JPEG图像压缩

use*_*617 5 compression png jpeg image-processing libpng

我正在研究将多个JPEG图像作为单个较大图像存储在一起时减少存储空间的问题.基本的直觉是图像往往具有一些相似之处(比如在同一位置或大约相同的时间点拍摄的图像),我们可以利用这种相似性来节省空间吗?

总体流程为:输入JPG图像 - >每个图像转换为RGB图像平铺 - >重新组织相似的RGB图块 - >再次转换为JPG格式.当然,在检索图像时,我们需要反转该过程.

使用Y分量的DC系数作为用于区块重组的相似性度量,我获得了10个图像的约8%的空间节省.当我为100张图像执行此操作时,节省的成本降低到约3%.

  • 如何在磁贴重组后获得节省 - 即JPEG编码过程的哪一部分利用此图像磁贴重组?

  • 除了Y分量的DC系数之外,还有一些其他可以想到的指标,可以通过JPEG编码更好地利用


修订:

除了JPG之外还有其他一些图像格式可以在聚合多个图像时更好地利用这种相似性吗?比如PNG?

Rah*_*jee 5

您最有可能使用JFIF进行编码.

我不确定您希望这种方法如何工作.如果我理解正确,你将图像分割成图块,将它们聚合成一个巨型图像,"相似"的图块彼此靠近排列.

AFAIK,JPEG实现在图像中为每个单独的8x8图块执行单独的DCT,称为宏块.换句话说,JPEG不能利用相邻宏块之间的一致性(这似乎是压缩技术的基本假设).

如果您自己的磁贴大于宏块,则除了图像标题空间的节省之外,您将看不到任何改进.

例如:10个JPG图像标题替换为1将为您节省90%的空间,但仅限于标题.查看整个文件时,标题只占整个文件的一小部分,因此节省的空间很少.将100个图像标题替换为1时,可以节省99%,但仅在标题上保存.在这两种情况下,所有宏块仍然像以前一样被编码和存储.