code: def _shuffled_order(w, h):
      
      rowsize = 4 * w
      for row in range(0, rowsize * h, rowsize):
          for offset in range(row, row + w):
              for x in range(offset, offset + rowsize, w):
                  yield x
docs: Generator for the order of 4-byte values.
  
      32bit channels are also encoded using delta encoding,
      but it make no sense to apply delta compression to bytes.
      It is possible to apply delta compression to 2-byte or 4-byte
      words, but it seems it is not the best way either.
      In PSD, each 4-byte item is split into 4 bytes and these
      bytes are packed together: "123412341234" becomes "111222333444";
      delta compression is applied to the packed data.
  
      So we have to (a) decompress data from the delta compression
      and (b) recombine data back to 4-byte values.