Module: PureJPEG::Zigzag

Defined in:
lib/pure_jpeg/zigzag.rb

Constant Summary collapse

ORDER =
[
   0,  1,  8, 16,  9,  2,  3, 10,
  17, 24, 32, 25, 18, 11,  4,  5,
  12, 19, 26, 33, 40, 48, 41, 34,
  27, 20, 13,  6,  7, 14, 21, 28,
  35, 42, 49, 56, 57, 50, 43, 36,
  29, 22, 15, 23, 30, 37, 44, 51,
  58, 59, 52, 45, 38, 31, 39, 46,
  53, 60, 61, 54, 47, 55, 62, 63
].freeze

Class Method Summary collapse

Class Method Details

.reorder!(block, out) ⇒ Object

Reorder an 8x8 block into zigzag order, writing into ‘out`.



17
18
19
20
# File 'lib/pure_jpeg/zigzag.rb', line 17

def self.reorder!(block, out)
  64.times { |i| out[i] = block[ORDER[i]] }
  out
end

.unreorder!(zigzag, out) ⇒ Object

Reverse zigzag: from zigzag order back to raster order.



23
24
25
26
# File 'lib/pure_jpeg/zigzag.rb', line 23

def self.unreorder!(zigzag, out)
  64.times { |i| out[ORDER[i]] = zigzag[i] }
  out
end