如何高效压缩三色图片

问题描述

在我的应用中,有很多双色和三色图片。两色图片是黑白的,我把图片转换成单色模式,从8位到1位。三色图片是黑、白、红。有没有类似的mechasim把图片转成2bit?

解决方法

看来您正在寻找一种 indexed color 存储模型,具有 2 位索引值,因此每个字节存储 4 个像素。

来自链接的维基百科文章:

indexed color

2 位索引彩色图像。每个像素的颜色由一个数字表示;每个数字(索引)对应于颜色表(调色板)中的一种颜色。

,

另一种处理方法是将 3 色黑白红色图像编码为两个 2 色图像:

  • 黑色/白色图像,其中 1 代表黑色
  • 红色/非红色图像,其中 1 代表红色

例如颜色可以映射如下:

  • 黑色 -> (1,0)
  • 白色 -> (0,0)
  • 红色 -> (?,1) 在哪里?可以是 0 或 1。

然后可以分别压缩/解压缩两个 2 色图像。 3 色 2 色转换可以通过简单的像素过滤和组合操作进行。如果需要在 GPU 上完成转换,后者可能会很有用。

(这种表示的信息密度与 Andreas 的索引颜色存储模型相同。2 位代表原始图像中的每个像素。)