在将原始图像编码为jpeg图像时,8x8数据单元被电平移位,使用2-D DCT变换,量化和霍夫曼编码。
我首先执行了行DCT,然后是DCT列,我将结果舍入到最接近的整数。我把这个块发送到量化模块。量化时我使用了以下Q表。这些表由IJG推荐,品质因数为99.
Luma表 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 2 2 1
1 1 1 1 1 2 2 2
1 1 1 1 2 2 2 2
1 1 2 2 2 2 2 2
1 2 2 2 2 2 2 2
1 1 1 1 2 2 2 2
1 1 1 1 2 2 2 2
1 1 1 2 2 2 2 2
1 1 2 2 2 2 2 2
2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2
在量化期间除以'2'时,我将结果舍入为零。 例如:11/2 = 6.因此,在解码时去量化期间,每个奇数都会加上+1的误差。
在另一个设置中,我改变了我的舍入技术。在这里,我将结果四舍五入为零。例如:11/2 = 5.因此,在解码时去量化期间,每个奇数将加上-1的误差。
在第二种情况下,我的文件大小非常少(768x512图像减少了近100 kb)和更多的PSNR。通过说,当量化为2时所有AC系数为1时,我能够解释文件大小越小,现在变为0而不是1.因此RLE使文件大小更小。但我无法解释为什么编码图像质量会提高。它增加了2-3 dB,它发生在我测试的所有图像上。
我的论点是,DCT基本上是A * DCTmatrix,两边的相等误差应该产生相同的损失。但这不是这种情况。