递归 DCT 实现
信息处理
转换
dct
lms
2022-01-28 19:59:05
1个回答
可以将 DCT8 分解为交错输入的 DCT4 和 DST4 的组合。假设我们的输入是一个向量 {x0,x1,x2,x3,x4,x5,x6,x7}。然后让我们计算交错输入的 DCT4 和 DST4:
{y00,y10,y20,y30} = DCT4({x0,x2,x4,x6})
{y01,y11,y21,y31} = DCT4({x1,x3,x5,x7})
{z00,z10,z20,z30} = DST4({x0,x2,x4,x6})
{z01,z11,z21,z31} = DST4({x1,x3,x5,x7})
那么 DCT8 将是:
DCT8({x0,x1,x2,x3,x4,x5,x6,x7}) = {
cos(pi/32) *(y00 + y01) + sin(pi/32) *(z00 - z01)
cos(3pi/32) *(y10 + y11) + sin(3pi/32)*(z10 - z11)
cos(5pi/32) *(y20 + y21) + sin(5pi/32)*(z20 - z21)
cos(7pi/32) *(y30 + y31) + sin(7pi/32)*(z30 - z31)
cos(9pi/32) *(y40 + y41) + sin(9pi/32)*(z40 - z41)
cos(11pi/32)*(y50 + y51) + sin(11pi/32)*(z50 - z51)
cos(13pi/32)*(y60 + y61) + sin(13pi/32)*(z60 - z61)
cos(15pi/32)*(y70 + y71) + sin(15pi/32)*(z70 - z71)
}
同样,您可以将任何 DCT N 分解为 DCT N/2 和 DST N/2 的组合。
其它你可能感兴趣的问题