Repository navigation
0.2.0
New features:
- Progressive JPEG decoding (SOF2) with spectral selection and successive approximation
Image#each_rgbfor iterating pixels without per-pixel struct allocationPureJPEG::DecodeErrorexception class for all decoding errors- Validation of custom quantization tables (length and value range)
Performance:
- Packed integer pixel storage in
Imageeliminates per-pixel object allocation on decode (~6x faster decode) - Fast path for encoder pixel extraction from packed sources (
ChunkyPNGSource,Image) BitReader#read_bitsfast path when buffer already has enough bitsBitWriterbuilds aStringdirectly instead ofArray+packHuffman.build_tablereturns anArrayfor O(1) lookup instead ofHash- Faster scan data extraction using
String#index
Fixes:
- JPEG data detection uses SOI marker check instead of null-byte heuristic
RawSourcepixels default to black instead ofnilBitReaderbounds check for truncated 0xFF sequencesJFIFReaderbounds check when reading past end of data- Fixed dead tautological check in AC encoding EOB logic