Learn how JPEG works by reinventing the library. Focus will be on bare minimum amount of code and the workings of code are understandable.
- Encode only
- Portable Pixmap Format P6 input file format only
- Quality set to 75%, no other quality
- No Chroma subsampling
- Width and Height are divisible by 16
- Only Lossy and Baseline sequential process
- No optimisation
- Use precomputed or provided numbers
- Convert RGB to YCbCr
Chroma Subsampling 4:2:0- Pixels block to 8x8
- Discrete Cosine Transform (DCT II)
- Quantization
- Encode
- Zigzag
- Huffman
- Run-length encoding
- Store Header + Data
- Wikipedia JPEG
- Wikipedia Netpbm
- JPEG File Interchange Format
- JPEG Header Information
- YCbCr
- Chroma subsampling
- Huffman Coding
- Run-length Encoding
- JPEG File Layout and Format
- Go JPEG library
- Colourspaces (JPEG Pt0)- Computerphile
- JPEG 'files' & Colour (JPEG Pt1)- Computerphile
- JPEG DCT, Discrete Cosine Transform (JPEG Pt2)- Computerphile
- ITU-T T.81
- JPEG File Interchange Format
- JPEG Standard
- Chapter 9 Image Compression Standards - Rutgers CS