Niveaux de gris de l'image compression en utilisant le Codage de Huffman dans MATLAB

Je suis en train de compresser une image en niveaux de gris en utilisant le codage de Huffman en MATLAB, et ont essayé le code suivant.

J'ai utilisé une image en niveaux de gris de taille 512x512 en tif format. Mon problème est que la taille de l'image compressée (longueur de comprimé de mots de code) devient plus grande que la taille de l'image non compressée. Le taux de compression est d'arriver à moins de 1.

clc;
clear all;
A1 = imread('fig1.tif');
[M N]=size(A1);
A = A1(:);
count = [0:1:255]; % Distinct data symbols appearing in sig
total=sum(count);
for i=1:1:size((count)');                  
    p(i)=count(i)/total;
end

[dict,avglen]=huffmandict(count,p) % build the Huffman dictionary
comp= huffmanenco(A,dict);         %encode your original image with the dictionary you just built
compression_ratio= (512*512*8)/length(comp)   %computing the compression ratio

%% DECODING
Im = huffmandeco(comp,dict); % Decode the code
I11=uint8(Im);

decomp=reshape(I11,M,N);
imshow(decomp);

OriginalL'auteur parvathy | 2014-09-22