Here I have mentioned three methods for finding the compression ratio in Matlab .Kindly help me to identify which one is theoretically correct.

clear all

clc

%Read the input image

Ao=imread('Lena.bmp');

Ao = imresize(Ao,[256 256]);

in = imfinfo('Lena.bmp')

% figure,

subplot(221)

imshow(Ao);

title('input image')

A=double(Ao);

%

% A=[10 2 3 4;5 6 7 8];

% display(A);

e=A;

tic

%Perform prediction error

for i = 1:size(A,1)

for j = 2:size(A,2)

e(i,j)=e(i,j)-A(i,j-1);

end

end

display(e);

%Huffman coding

C=reshape(e,[],1);

[D1,x]=hist(C,min(min(e)):max(max(e)));

sym=x(D1>0);

prob=D1(D1>0)/numel(e);

[dict,avglen] = huffmandict(sym,prob);

compressed = huffmanenco(C,dict);

imwrite(uint8(compressed),'comp.bmp')

cmprsd = imfinfo('comp.bmp');

%Three methods for finding the compression ratio

Compression_Ratio_1 = in.FileSize/length(compressed)

Compression_Ratio_2 = (in.Width*in.Height*in.BitDepth/8)/cmprsd.FileSize

Compression_Ratio_3 =(in.Width*in.Height*in.BitDepth/8)/length(compressed)

More Renjith V Ravi's questions See All
Similar questions and discussions