The*_*ist 11 theory math jpeg dct discrete-mathematics
在研究JPEG文件的这篇文章时,我在上述文件的第7.3节中遇到了" 八法则 ".
尽管使用SmartScale扩展引入了1到16的其他块大小,超出原始JPEG标准中的固定大小8,但事实仍然是8的块大小仍然是默认值,而所有其他大小的DCT根据标准8x8 DCT进行缩放.
" 八法则 "解释了为什么大小8是DCT大小的正确默认值和参考值.
我的问题是
从历史上看,是否进行了一项研究,评估了样本中的大量图像,得出的结论是8x8图像块包含足够的冗余数据以支持使用DCT的压缩技术?像8M(4Kx4K)这样非常大的图像尺寸在大多数数字图像/视频中迅速成为常态,这种假设是否仍然有效?
将宏块限制为8x8的另一个历史原因是较大宏块的计算上禁止的图像数据大小.使用现代超标量体系结构(例如CUDA),限制不再适用.
此前类似的问题存在- 1,2和3.但他们都没有打扰任何关于这个神秘的基本" 八法则 "的细节/链接/参考.
1.原始研究的参考/摘录/细节将受到高度赞赏,因为我想用具有非常大尺寸图像的现代数据集重复它以测试8x8宏块的最佳有效性.
2.如果最近进行了类似的研究,也欢迎提及它.
我确实理解SmartScale是有争议的.没有任何明显的潜在好处1,充其量只能与jpeg标准2的其他向后兼容扩展相媲美.我的目标是了解选择8x8作为DCT块大小(在jpeg图像压缩标准中)的原始原因是否仍然相关,因此我需要知道八个定律是什么.
我的理解是,八定律只是对 Baseline JPEG 算法规定 8x8 作为其唯一块大小这一事实的幽默引用。
PS 换句话说,“八定律”是通过引入历史角度来解释为什么“所有其他尺寸的 DCT 都参考 8x8 DCT 进行缩放”的一种方式——缺乏对任何其他尺寸的支持。原始标准及其事实上的实施。
下一个问题是:为什么是八?(请注意,尽管这是一个有效的问题,但这不是当前讨论的主题,即使历史上选择了另一个值,例如“十法则”或“三十二法则”,这仍然是相关的。)这个问题的答案是:因为问题的计算复杂性随着增长O(N^2)
(除非采用 FCT 类算法,其增长速度较慢,但O(N log N)
在嵌入式平台的原始硬件上更难实现,因此适用性有限),因此较大的块大小很快就会变得不切实际的。这就是选择 8x8 的原因,它足够小,可以在各种平台上实用,但又足够大,可以对不同频率的量化级别进行不太粗略的控制。
由于该标准明显满足了人们的需求,整个生态圈很快就围绕它发展起来,包括针对 8x8 作为其唯一支持的块大小进行优化的实现。一旦生态圈就位,就不可能在不破坏现有实现的情况下改变区块大小。由于这是非常不希望出现的情况,因此对 DCT/量化参数的任何调整都必须与纯 8x8 解码器保持兼容。我想这个考虑一定就是所谓的“八法则”。
虽然不是专家,但我不知道更大的块大小有什么帮助。首先,一个块中值的动态范围平均会增加,需要更多的位来表示它们。其次,从“所有”(由块表示)到“像素”的频率相对量化必须保持相同(毕竟这是由人类感知偏差决定的),量化会变得更平滑,仅此而已。对于相同的压缩级别,潜在的质量提升可能不会明显。