我在与DCT相关的文章中一次又一次地发现这一点,人们声称DCT矩阵的第0个系数是该值的平均值或平均值值被转换。
例如,请参见here,here,甚至在JPEG圣经here中。
但是,这根本不是真的...如果DCT-II的公式是
(来自Matlab的公式),得出和之外的系数最终为1/8。这绝不是手段。相反,它是总和除以8。要求平均值,必须再有一个1/8项。我不明白为什么会这样,有人可以解释吗?
答案 0 :(得分:3)
在您的link to the MATLAB documentation中,它显示两个α值分别为1/sqrt(M)
和1/sqrt(N)
。这是一个惯例。 Wikipedia shows DCT-II完全没有任何归一化(α)项。
基本上,要使图像 I 的正向DCT的逆DCT等于 I ,则需要在某处进行一些归一化。一些作者将其放入正向变换中,一些作者将其放入逆变换中,而另一些人则将其拆分并放入两者中。看来MATLAB遵循了后一种约定。
因此,取决于使用哪种归一化,DC项(第0系数)是平均值,总和或一半。
傅立叶变换也是如此。常见的归一化是逆变换中的1/N
,但是有时您会在正向和后向变换中看到1/sqrt(N)
的归一化,或者仅在正向变换中看到1/N
的归一化