Contents

Jpeg decoder to PPM | Ensimag's Project

The project

This project is about building from scratch a functional JPEG to PPM decoder. I teamed up with 2 other students to build the decoder using C.

How it works

JPEG format compress images using mathematical methods and algorithms that are described on the official JPEG documentation.

/posts/jpeg_decoder/codec.png
process of encoding and decoding

Huffman coding:

The output from Huffman’s algorithm can be viewed as a variable-length code table for encoding a source symbol. The Huffman table is found using the frequency of each character of the input file.

Quantification tables:

This is a special algorithm for JPEG documentation that results in tansforming frequential data to spacial data.

IDCT

This step consist of computing the inverse of the discrete cosine transform.

Up sampling

When upsampling is performed on a sequence of samples of a signal or other continuous function, it produces an approximation of the sequence that would have been obtained by sampling the signal at a higher rate

YCbCr to RGG

This is a special step simply changing the way every pixel is encoded.

What is YCbCr?
This is a way of encoding colors. The $Y$ value is the luma component and $C_b$ and $C_r$ are the blue and red difference chroma components. Learn more

What we built

The decoder we created can process multiple JPEG images in baseline sequential mode (non progressive).
Because I am not the only owner of this code, I will not publish it. However, you can contact me to access the code.