对于彩色图像,我知道您必须转换为 YCbCr 格式,然后进行下采样是基于人类看到 Y 的差异而不是 Cb 或 Cr 的差异这一事实。
除了灰度(或单色)图像,我该如何做这些事情?
对于彩色图像,我知道您必须转换为 YCbCr 格式,然后进行下采样是基于人类看到 Y 的差异而不是 Cb 或 Cr 的差异这一事实。
除了灰度(或单色)图像,我该如何做这些事情?
通常,单色图像应存储为具有单通道的图像。但是,我已经看到具有三个通道的数字图像包含相同的值。这导致显示的图像看起来是灰度的。
在压缩多通道数据之前,通常对通道进行去相关。对于 RGB,人们经常将它们与亮度和色度相协调。可以看到几个公式,线性和非线性,将、和转换为和两个:
在大多数情况下,我知道,对于相同的重复通道(比如,但无论如何),
更具体地说,使用经典的线性 YUV 转换:
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
并且因为:
0.299 + 0.587 + 0.114 = 1
-0.147 - 0.289 + 0.436 = 0
0.615 - 0.515 - 0.100 = 0
可以看到色度图像为零(或非线性变换接近于零),并且在 DCT 和二次采样之后的幅度仍然非常小,并且在 JPEG 压缩中将不明显。
JPEG 通常会将单个灰度编码为单个颜色通道。
可能会有一些奇怪的应用程序将灰度图像扩展为 rgb,然后将矩阵扩展为 YCbCr,然后调用 jpeg 编码器,但我不明白它为什么会这样做,除了克服错误的解码器实现。
我将分享我在图像优化方面的经验... 起初,我不得不通过 Photoshop 手动压缩所有图片。顺便说一句,最免费的选择(除了 Photoshop 许可证的费用)。但是如果网站上的图片超过10-20张,这个过程会花费很多时间。毕竟每张图片都要经过人工处理,然后再上传到网站上。这样的过程很乏味......现在我使用这项服务 - https://optipic.io/它节省了很多时间)它自己工作 - 自动 - 只需 1 次需要连接到站点。谷歌很满意)