📄 dct_2d.m
字号:
function y = dct_2d(N,X)
%dct2d Two-dimensional Discrete Cosine Transform
%
%Y=dct2d(N,X) returns the 2-d discrete cosine transform of X
%The input vector X has to be two-dimensional (N by N).
%The output vector Y will have the same dimensions as X.
%The input scalar N specify the dimension of the input vector X.
%
%Note: This yields a prescaled version of the DCT transform.
% In most cases, the scaling can be combined with the quantization stage.
for ym = 1:N
for yn = 1:N
y(ym,yn)=0;
end
end
for ym = 1:N
for yn = 1:N
for xi = 1:N
for xj = 1:N
cosA = cos((2*(xi-1)+1)*(ym-1)*pi/(2*N));
cosB = cos((2*(xj-1)+1)*(yn-1)*pi/(2*N));
y(ym,yn) = y(ym,yn) + ( X(xi,xj)*cosA*cosB);
end
end
if ym==1
em=1/sqrt(2);
else
em=1;
end
if yn==1
en=1/sqrt(2);
else
en=1;
end
scaling=(2/N)*em*en;
%y(ym,yn) = scaling*y(ym,yn);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -