一维DCT
一维离散余弦变换公式为:
C(u)=α(u)∑x=0N−1f(x)cos[π(2x+1)u2N]
其中
N
表示一维序列的长度,下标从0开始,
x
表示原始图像坐标,
u
为对应的变换后的坐标,
f(x)
表示原图像的在
x
处的像素,
u(x)
定义如下:
α(u)=⎧⎩⎨⎪⎪1N−−√u=02N−−√u≠0
一维DCT逆变换:
f(x)=∑u=0N−1α(u)C(u)cos[π(2x+1)u2N]
二维DCT
这里讨论图像长款相等的情况,若长款不相等可以进行填充。
C(u,v)=α(u)α(v)∑x=0N−1∑y=0N−1f(x,y)cos[π(2x+1)u2N]cos[π(2y+x)v2N]
其中参数和一维的类似
二维DCT逆变换为:
f(x,y)=∑u=0N−1∑v=0N−1α(u)α(v)cos[π(2x+1)u2N]cos[π(2y+1)v2N]
二维DCT的矩阵形式
C=AFAT
其中:
A(u,v)=α(u)cos[π(2v+1)u2N]