JPEG Image compression using Huffman encoding and decoding

17 visualizzazioni (ultimi 30 giorni)
Hi everyone,
i would need some help, im trying to encode a JPEG Image using Huffman coding. i know Matlab has huffmanenco, huffmandict functions. i tried both methods, doesn't work, because the problem is :
Matlab read Images as Matrix. While the function huffmanenco & huffmandict only accept inputs in vector. So it gives me the error saying : "Input must be a Vector" or sort like that.
But it doesn't work as well. or at least i still dont know the input for codewords.
im still working on it.
anyone can help ?
  2 Commenti
omar
omar il 7 Dic 2012
(zigzag scan) this function transforms the matrix to vector but this is not it's main purpose which is to to group low frequency coefficients in top of vector.you cannot find this function in matlab directly here u are go to that link http://www.mathworks.com/matlabcentral/fileexchange/15317-zigzag-scan/content/zigzag/zigzag.m
copy this code i a new m-file and save it and then add it's path to matlab path now u can use zigzag function
Walter Roberson
Walter Roberson il 7 Dic 2012
zigzag is not relevant for huffman encoding. huffman encoding depends upon actual probability distribution, by analyzing all occurrences of the symbols, and so is not sensitive to the order of the symbols.

Accedi per commentare.

Risposte (2)

Walter Roberson
Walter Roberson il 5 Dic 2012
So reshape() the matrix as a vector. Include the array sizes in what you send. At the decoding stage, decode the vector, extract the array sizes, and reshape() what is left according to the sizes.

Said BOUREZG
Said BOUREZG il 27 Feb 2015
Here in my code you can find the steps to compress it's not a Jpeg but it have the same idea and I use the Huffman coding, take a look and I'm here if you want any explication: DCT Based on Image Compression

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by