How ericthered2007/java_jpg_decoder works
This is a command-line JPEG image viewer backed by a Java decoder. The user supplies a JPEG path; the viewer invokes decoding, which parses markers and scans, reconstructs coefficients, transforms blocks into samples, converts them into a BufferedImage, and schedules Swing display. The README documents baseline and progressive Huffman JPEG support, grayscale/RGB/YCbCr conversion, and restart intervals. The decoder excerpt and README establish the principal calls; decoder internals are grouped where the excerpt does not expose distinct calls.
Main entry points: JpegDecoder.java JPEG decoder · JpegViewer.java Viewer entry · HuffmanTable.java Huffman tables · JpegIdct.java Inverse DCT
Components 11
JPEG decoding
- JPEG decoder
JpegDecoder.java - Marker and scan parsing
JpegDecoder.java - Entropy bit reader
EntropyBitReader.java - Huffman tables
HuffmanTable.java - Component coefficients
JpegComponent.java
Image rendering
- Inverse DCT
JpegIdct.java - Pixel conversion
JpegDecoder.java - Buffered image
JpegDecoder.java
Desktop display
- Viewer entry
JpegViewer.java - Swing window
JpegViewer.java
Other components
- User
Connections 14
- User → Viewer entry: launches with path
README.md - Viewer entry → JPEG decoder: calls decode
JpegViewer.java - JPEG decoder → Marker and scan parsing: parses markers
JpegDecoder.java - Marker and scan parsing → Entropy bit reader: creates reader
README.md - JPEG decoder → Huffman tables: decodes codes
README.md - Huffman tables → Entropy bit reader: reads bits
HuffmanTable.java - JPEG decoder → Component coefficients: stores coefficients
JpegDecoder.java - JPEG decoder → Inverse DCT: transforms blocks
README.md - Inverse DCT → Component coefficients: writes samples
README.md - JPEG decoder → Pixel conversion: converts samples
README.md - Pixel conversion → Buffered image: builds pixels
JpegDecoder.java - JPEG decoder → Viewer entry: returns image
README.md - Viewer entry → Swing window: schedules display
JpegViewer.java - Swing window → User: displays image
README.md