我希望利用一组相似 colored JPG
图像之间的冗余。Set redundancy compression
已成功用于类似8-bit grayscale
图像。他们基本上找到一组图像的MAX
和MIN
,并将原始图像编码为differences
相对于 MAX 或 MIN 图像,取决于较小的差异。除了 gzip 或 bzip 等普通压缩工具外,使用这种方法对灰度图像进行了大约 20-50%的额外压缩。我执行以下操作:
- 将 JPG 图像解压缩到 RGB 字符缓冲区
- 计算 MIN 和 MAX 字符缓冲区
- 将差异字符缓冲区编码为 JPG 图像
问题是要从差异图像中检索原始图像,理想情况下我需要对差异进行无损编码。但是,libjpeg 中没有lossless
从 RGB->JPG 的转换,即使质量=1.0,因为差异系数很小(1~10),我最终丢失了几乎所有信息(几乎所有解码数据都是 1~3) .
为了解决这个问题,我尝试使用huffman encoding
差异字符缓冲区。
- 使用 Huffman 编码对差异字符缓冲区进行编码
原始 JPG 图像的大小约为 256 KB,相应的 RGB 缓冲区约为 7.8 MB,霍夫曼编码的差异图像大小约为 2.2 MB。因此,霍夫曼编码确实节省了大量空间 wrt RGB 缓冲区,但原始 JPG 等价物要小得多。
- 有什么建议可以有效地存储这些差异缓冲区的大小与 256 KB 原始文件相当吗?
JPG
- 有没有办法将这些差异缓冲区保存
low valued data coefficients
为 JPG 图像而不会丢失大量信息?