JPEG压缩编码过程将给定图像分成8x8像素的块,在将来的有损和无损压缩中使用这些块.[资源]
还提到如果图像是多个1MCU块(定义为最小编码单元,'通常在两个方向上为16个像素'),则可以执行对JPEG的无损改变.[资源]
我正在处理产品图片,并想知道在我的最终图像尺寸中使用16的倍数(例如,使用尺寸为480像素×360像素的图像)与非倍数相比,是否可以获得多少益处16(如484x362).在这个例子中,我对最终图像的进一步改动,编辑或再压缩不感兴趣.
为了更接近我所知道的特定答案,必须有很大的一般性:给定480x360图像为64k并在Photoshop中以最高质量保存[示例]:
我可以预期484x362的图像会有任何质量损失
我可以期望增加多少文件大小(对于此示例,额外空间将是白色像素)
增长大于8px网格还有其他缺点吗?
我知道使用这个特定的例子是任意的,但它仍然有用(对我来说,可能是任何其他人在思考图像大小),以了解我在打破非8px网格时要处理的妥协程度.
这里的关键问题是我所讨论的是8像素可分割图像是否比不能被8像素整除的图像质量更高.
8个像素是截止值.原因是JPEG图像只是一个8x8 DCT块的数组; 如果图像分辨率在两个方向上都不是mod8,则编码器必须将两侧填充到下一个mod8分辨率.这在实践中并不是非常昂贵的一点点; 更糟糕的是当图像具有不在块边界上的尖锐黑线(例如信箱图像)时的情况.这在视频编码中尤其成问题.这是一个问题的原因是尖线的频率变换是系数的高斯分布 - 导致大量的位编码.
对于那些好奇的人来说,在帧内压缩中填充边缘的最常用方法(例如JPEG图像)是在边缘之前镜像像素线.例如,如果需要填充三条线而线X是边,则线X + 1等于线X,线X + 2等于线X-1,线X + 3等于线X- 2.这非常有效地最小化了额外线的变换系数的成本.
然而,在帧间编码中,填充算法通常简单地复制最后一行,因为镜像方法不适用于帧间压缩,例如在视频压缩中.