Skip to content

Commit 7c57903

Browse files
committed
Bump version to 0.2.0
1 parent 4b9ad06 commit 7c57903

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Changelog
22

3+
## 0.2.0
4+
5+
New features:
6+
7+
- Progressive JPEG decoding (SOF2) with spectral selection and successive approximation
8+
- `Image#each_rgb` for iterating pixels without per-pixel struct allocation
9+
- `PureJPEG::DecodeError` exception class for all decoding errors
10+
- Validation of custom quantization tables (length and value range)
11+
12+
Performance:
13+
14+
- Packed integer pixel storage in `Image` eliminates per-pixel object allocation on decode (~6x faster decode)
15+
- Fast path for encoder pixel extraction from packed sources (`ChunkyPNGSource`, `Image`)
16+
- `BitReader#read_bits` fast path when buffer already has enough bits
17+
- `BitWriter` builds a `String` directly instead of `Array` + `pack`
18+
- `Huffman.build_table` returns an `Array` for O(1) lookup instead of `Hash`
19+
- Faster scan data extraction using `String#index`
20+
21+
Fixes:
22+
23+
- JPEG data detection uses SOI marker check instead of null-byte heuristic
24+
- `RawSource` pixels default to black instead of `nil`
25+
- `BitReader` bounds check for truncated 0xFF sequences
26+
- `JFIFReader` bounds check when reading past end of data
27+
- Fixed dead tautological check in AC encoding EOB logic
28+
329
## 0.1.0
430

531
Initial release.

lib/pure_jpeg/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module PureJPEG
4-
VERSION = "0.1.0"
4+
VERSION = "0.2.0"
55
end

0 commit comments

Comments
 (0)