liv*_*ing 2 handbrake grayscale video-conversion image-processing
当我们将视频转换为灰度时,像素中的所有 3 种颜色 (RGB) 都被分配相同的数字(而不是 3 个不同的数字)。因此理论上我们必须将尺寸减小近 66%。我知道有一些元数据和声音数据,但最大的数据是像素数据。
我使用 Handbrake 转换了输出大小为 4.17 MB 的视频,然后使用相同的设置(除了选中“灰度”框)进行转换,然后输出文件大小变为 3.88 MB。为什么尺寸只减少了 7%?对于另一个视频:3.08 MB 和 2.97 MB(几乎 6%)。
我还使用“Corel Video Studio”的“单色”过滤器进行了灰度化,并得到了类似的结果(8.70 MB 和 8.32 MB --> 5%)。有什么算法或其他东西可以得到更好的结果吗?
问题是您保存的底层格式除了每像素 24 位颜色之外无法理解任何内容。如果底层容器或格式专门满足 8 位灰度(或一般的 8 位格式),那么您将看到预期的大小减小。
例如,您可以将图像另存为 .BMP 或 PNG,您通常可以选择设置输出的位深度(至少如果您使用 Paint.NET,则可以这样做),然后转换为灰度会带来好处。
如果我没记错的话,JPEG 并不严格支持较低的位深度,如果大多数现代视频编码器都支持较低的位深度,我会感到惊讶,因为它们 99% 的使用都是用于颜色源。