Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

how the compression ratio is calculated

Asked by FIR

FIR

on 24 Dec 2012
Accepted Answer by Wayne King

Wayne King

i have a code 
X=imread(file);
wavelet='haar'
level=2;
[c,s] = wavedec2(X,2,wavelet);
alpha = 1.5; m = 2.7*prod(s(1,:));
[thr,nkeep] = wdcbm2(c,s,alpha,m)
[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,n,thr,'h');
disp('Compression Ratio');disp(perf0);
the size of xd and X is same,plz tell how compression ratio is calculated
both images look like same ,how we can say it is compressed ny 84%
perf0 is 84%

0 Comments

FIR

FIR

Products

No products are associated with this question.

1 Answer

Answer by Wayne King

Wayne King

on 24 Dec 2012
Accepted answer

perf0 is the percentage of zeros in the wavelet coefficients. So 84% indicates that 84 percent of the wavelet coefficients have been set to 0.

perfl2 is the ratio (as a percentage) between the L2 norm of the compressed wavelet coefficients and the original (before compression) wavelet coefficients.

Yes, the output compressed image is of course the same size as the input, the point is that it is constructed from a much smaller set of wavelet coefficients

5 Comments

FIR

FIR

on 24 Dec 2012

nnz(perf0) gives as 1

Wayne i sthere any compression that can make the image into smaller size,the code used me as of 3 to 4 lines as above,

Wayne King

Wayne King

on 24 Dec 2012

perf0 is just a scalar, so why would you use nnz() on that and expect something other than a 1?

FIR

FIR

on 24 Dec 2012

Wayne i sthere any compression that can make the image into smaller size, as of 3 to 4 lines as above,i tried huffman but matlab crashes

Wayne King

Wayne King

Contact us