快速离散余弦变换

7

JPEG压缩过程中生成DCT系数的标准公式是DCT公式,如下所示:

我了解到这种实现方式很耗时(慢),有更快的方法吗?是否有明确的公式可以更快速地生成DCT系数?

2个回答

7

是的,这个通用版本很慢,非常慢。有更快的近似方法。

最快的软件DCT变换可以在BinDCT系列中找到。

它们只需要一些基本的加法和移位,因此非常快,但牺牲了一些精度。

一个很好的介绍:关于实现图像压缩的最佳BinDCT配置的进程(特别是第12页)


PPT链接失效了...您有兴趣更新为实时副本吗? - Nayuki
谢谢@Nayuki,我已经更新了链接。
你有兴趣更新到实时副本吗?
  • 不确定你的意思,也不知道如何操作。
- Cyan
没问题 - 你提供的副本是有效的。 - Nayuki

7
现代视频编解码器如MPEG4-AVC使用Hadamard变换而不是DCT作为空间变换。
Hadamard变换是一种精确的低复杂度变换,其结果类似于DCT(可以视为DCT的近似),但不需要乘法。因此,HT的实现非常快速。

警告!Hadamard变换的简单和快速性是以牺牲频率和样本的可逆性为代价的。图像压缩是通过选择一组子频率来完成的,这些子频率与相应的采样选择结合起来会导致不可逆性。为了防止这种情况发生,算法可能会使用更大的频率分布,这与图像压缩的目的相抵触。请参考DFT的类似情况:https://math.stackexchange.com/questions/4498591/is-the-amount-of-zero-valued-minors-of-a-size-n-discrete-fourier-transform-matri - David Jonsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接