head 1.1; branch 1.1.1; access; symbols MDCT_REL_B1_6:1.1.1.1 MDCT_REL_B1_5:1.1.1.1 MDCT_REL_B1_4:1.1.1.1 MDCT_REL_B1_3:1.1.1.1 MDCT_REL_B1_2:1.1.1.1 MDCT_REL_B1_1:1.1.1.1 MDCT_B10:1.1.1.1 GNU:1.1.1; locks; strict; comment @// @; 1.1 date 2006.04.15.12.56.44; author mikel262; state Exp; branches 1.1.1.1; next ; commitid 7ea94440ed874567; 1.1.1.1 date 2006.04.15.12.56.44; author mikel262; state Exp; branches; next ; commitid 7ea94440ed874567; desc @@ 1.1 log @Initial revision @ text @ Q = [ 16,11,10,16,24,40,51,61; 12,12,14,19,26,58,60,55; 14,13,16,24,40,57,69,56; 14,17,22,29,51,87,80,62; 18,22,37,56,68,109,103,77; 24,35,55,64,81,104,113,92; 49,64,78,87,103,121,120,101; 72,92,95,98,112,100,103,99 ]; N = 8; K = 8; x = [ 139,144,149,153,155,155,155,155; 144,151,153,156,159,156,156,156; 150,155,160,163,158,156,156,156; 159,161,162,160,160,159,159,159; 159,160,161,162,162,155,155,155; 161,161,161,161,160,157,157,157; 162,162,161,163,162,157,157,157; 162,162,161,161,163,158,158,158; ]; xn=x-128; X = [ zeros(1,N);zeros(1,N);zeros(1,N);zeros(1,N);zeros(1,N);zeros(1,N);zeros(1,N);zeros(1,N)]; Xq=X; xi=X; % 2D dct for v = 0:N-1 if v == 0 Cv = 1/sqrt(2); else Cv = 1; end for u = 0:N-1 if u == 0 Cu = 1/sqrt(2); else Cu = 1; end for j = 0:N-1, for i = 0:N-1 X(u+1,v+1) = X(u+1,v+1) + (2/N)*Cu*Cv*xn(i+1,j+1)*cos( ((2*i+1)*u*pi)/(2*N))*cos( ((2*j+1)*v*pi)/(2*N)); end end end end X; % idct for i = 0:N-1 for j = 0:N-1 for u = 0:N-1 if u == 0 Cu = 1/sqrt(2); else Cu = 1; end for v = 0:N-1 if v == 0 Cv = 1/sqrt(2); else Cv = 1; end xi(i+1,j+1) = xi(i+1,j+1) + (2/N)*Cu*Cv*X(u+1,v+1)*cos( ((2*i+1)*u*pi)/(2*N))*cos( ((2*j+1)*v*pi)/(2*N)); end end end end xi+128 % quantization for i = 0:N-1 for j = 0:N-1 Xq(i+1,j+1) = round( X(i+1, j+1)/Q(i+1,j+1)); end end Xq; @ 1.1.1.1 log @Initial import (Beta Release) @ text @@