Class: ZIMG::JPEG::Lossless::Component
- Inherits:
-
Object
- Object
- ZIMG::JPEG::Lossless::Component
- Defined in:
- lib/zimg/jpeg/lossless.rb
Instance Attribute Summary collapse
-
#h ⇒ Object
readonly
attributes set from JPEG data.
-
#huffman_table_ac ⇒ Object
externally-calculated values.
-
#huffman_table_dc ⇒ Object
externally-calculated values.
-
#id ⇒ Object
readonly
attributes set from JPEG data.
-
#qid ⇒ Object
readonly
attributes set from JPEG data.
-
#results ⇒ Object
readonly
self-calculated values.
-
#v ⇒ Object
readonly
attributes set from JPEG data.
Instance Method Summary collapse
-
#decoded_lines ⇒ Object
TODO: optimize.
-
#initialize(id, hv, qid) ⇒ Component
constructor
A new instance of Component.
- #inspect ⇒ Object
- #prepare(frame) ⇒ Object
- #to_enum(_width, _height) ⇒ Object
Constructor Details
#initialize(id, hv, qid) ⇒ Component
Returns a new instance of Component.
30 31 32 33 34 35 36 |
# File 'lib/zimg/jpeg/lossless.rb', line 30 def initialize(id, hv, qid) @id = id @qid = qid # quantization_idx @h = hv >> 4 @v = hv & 0x0f raise "Invalid sampling factor, expected values above 0" if @h <= 0 || @v <= 0 end |
Instance Attribute Details
#h ⇒ Object (readonly)
attributes set from JPEG data
24 25 26 |
# File 'lib/zimg/jpeg/lossless.rb', line 24 def h @h end |
#huffman_table_ac ⇒ Object
externally-calculated values
28 29 30 |
# File 'lib/zimg/jpeg/lossless.rb', line 28 def huffman_table_ac @huffman_table_ac end |
#huffman_table_dc ⇒ Object
externally-calculated values
28 29 30 |
# File 'lib/zimg/jpeg/lossless.rb', line 28 def huffman_table_dc @huffman_table_dc end |
#id ⇒ Object (readonly)
attributes set from JPEG data
24 25 26 |
# File 'lib/zimg/jpeg/lossless.rb', line 24 def id @id end |
#qid ⇒ Object (readonly)
attributes set from JPEG data
24 25 26 |
# File 'lib/zimg/jpeg/lossless.rb', line 24 def qid @qid end |
#results ⇒ Object (readonly)
self-calculated values
26 27 28 |
# File 'lib/zimg/jpeg/lossless.rb', line 26 def results @results end |
#v ⇒ Object (readonly)
attributes set from JPEG data
24 25 26 |
# File 'lib/zimg/jpeg/lossless.rb', line 24 def v @v end |
Instance Method Details
#decoded_lines ⇒ Object
TODO: optimize
47 48 49 |
# File 'lib/zimg/jpeg/lossless.rb', line 47 def decoded_lines [@results.pack("C*")] end |
#inspect ⇒ Object
38 39 40 |
# File 'lib/zimg/jpeg/lossless.rb', line 38 def inspect format("<%d %d %d %d>", id, h, v, qid) end |
#prepare(frame) ⇒ Object
42 43 44 |
# File 'lib/zimg/jpeg/lossless.rb', line 42 def prepare(frame) @results = [0] * frame.width * frame.height end |
#to_enum(_width, _height) ⇒ Object
51 52 53 |
# File 'lib/zimg/jpeg/lossless.rb', line 51 def to_enum(_width, _height) @results.to_enum end |