2012-05-28 107 views
7

为什么JPEG压缩是通过8x8块来处理图像,而不是对整个图像应用离散余弦变换?为什么JPEG压缩是通过8x8块来处理图像?

+0

认为DCT善于压缩,而平滑区域与低频的内容,但在压缩高频内容领域相当糟糕。 –

+0

相同的问题:http://stackoverflow.com/questions/11147666/why-do-image-compression-algorithms-process-the-image-by-sub-blocks/11147696#11147696 –

+0

早先相同的问题:http:// stackoverflow.com/questions/74892/is-there-a-quality-file-size-or-other-benefit-to-jpeg-sizes-being-multiples-of –

回答

1

因为,这将需要“永远”解码。我现在不记得了,但我认为你至少需要与块中像素一样多的系数。如果你把整个图像编码为一个单独的块,我认为你需要对每个像素遍历所有的DCT系数。

我不太擅长大O计算,但我想复杂性会是O(“永远”)。 ;-)

对于现代视频编解码器,我认为他们已经开始使用16x16块了。

+2

如果您需要在每次迭代中迭代所有内容,则为O (n^2),而不是“永远”,这是O(n!)。 – Triang3l

2

经过多次其他尺寸的实验后,选择了8×8。

实验的结论是: 1.任何尺寸大于8×8的矩阵难以进行数学运算(如变换等),或者硬件不支持或需要较长的时间。 2.任何尺寸小于8 X 8的矩阵都没有足够的信息与管道一起继续。它导致压缩图像质量差。

读,我的博客,http://nboddula.blogspot.com/2013/05/image-compression-how-jpeg-works.html