README ¶ Learn JPEG in Go Learn how JPEG works by reinventing the library. Focus will be on bare minimum amount of code and the workings of code are understandable. Limitation (to speed up dev, learn and reduce complexity) 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 Order 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 References 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 Expand ▾ Collapse ▴ Documentation ¶ There is no documentation for this package. Source Files ¶ View all Source files header.go main.go main2.go pixel.go ppm.go quantization.go Click to show internal directories. Click to hide internal directories.