我了解JPEG是一种有损压缩标准,而“质量”因素控制压缩程度和数据丢失的数量。
但是当质量数字设置为100时,生成的JPEG是否为无损压缩?
答案是否定的。即使在质量设置为100的情况下,JPEG仍然使用有损压缩算法,因此仍然会有数据丢失,虽然这种情况下的数据丢失可能会很小。
我了解JPEG是一种有损压缩标准,而“质量”因素控制压缩程度和数据丢失的数量。
但是当质量数字设置为100时,生成的JPEG是否为无损压缩?
答案是否定的。即使在质量设置为100的情况下,JPEG仍然使用有损压缩算法,因此仍然会有数据丢失,虽然这种情况下的数据丢失可能会很小。
如前面正确回答的那样,使用 “典型” JPEG 编码器并将质量设置为 100 并不能获得无损压缩。虽然存在无损 JPEG 编码,但它的性质不同且很少使用。
我只是想说一下为什么质量设置为 100 并不意味着无损。
在 JPEG 压缩中,信息大部分是在 DCT 系数量化步骤(8x8 系数块被 8x8 量化表划分,所以它们变小了-->“更易压缩”)期间丢失的。当您将 JPEG 质量设置为 100 时,实际上没有进行真正的量化(因为量化表将全部为 1,至少在标准 IJG-JPEG 表中是这样),因此您在这里不会失去信息。
但是,即使不进行量化,仍有主要两个因素导致信息丢失:
Jpeg无论设置为多少,都是有损压缩的。在100的设置下,您只能获得最小的损失。
这很容易测试。制作一个简单的 .bmp 文件,将其压缩为 q=100 的jpeg格式,然后重新提取回一个 .bmp 文件。使用 Gimp/Photoshop 对两个位图进行“差异”比较,您会看到损失 - 它将比 q=50 或 q=1 转换时不太明显,但仍然存在。
虽然存在无损JPEG的形式,但它没有得到广泛支持,并且您不能通过调整质量设置来获得它 - 这是完全不同的过程。