|
|
JPEG File Formats
Squeeze more pixels per bytes... |
|
|
|
Exploring, Decoding, Hacking, Breaking, Coding,.. ... the JPG File Format
by bkenwright@xbdev.net
Well everyone has come across the jpg file format! Its biggest popularity has come because of the boom in the internet, people using a 56k modem can't be downloading images of 100-500k... it would take ages! So the jpg format fixes that my compressing the the image format ... so where you would have a typical .bmp file of 200k you could expect to reduce this to a 20k .jpg file.
I've put together some pieces of code and tutorials in the hope that it will open your eyes to the internal workings of the jpg file format and its reasons. Again its an advanced topic... it involved for one thing loads of bit shifting and hex!
The tutorials/code will be broken into pieces... I'll be outlining the parts of the jpeg, then expanding on each sub-section as I go along... I'll also be putting together some hex dumps so you can actually see what each part of the file is doing! For example a hex dump of the SOS (Start Of Scan) data section contains the variable length data bits, by looking at this data closely and looking at the corresponding Huffman tables you can de-duce what is going on better I think.
| Tutorials | |
• JPEG File Format Basics
• Coding a decoder - Dumping Tags
• Tags - Image Dimensions, Tag Names, ...
| Ideas and Hints | |
• JPG File Layout
• SOS Section in Detail
• JPEG Gems - Code Snippets
• JPEG Decoder Source Code (DumpJpeg)
| Demo Code | |
• Full Simplified Jpeg Encoder & Decoder Source Code Demo
• 'Robust' version of the Jpg Decoder/Encoder Demo
• JPG Hex Viewer Javascript Browser Code
|
|