2011-10-22 98 views
0

我正在做一些与图像压缩有关的项目,我需要一种方法来保存JPEG压缩中丢失的数据(比如像素位数)。我想我需要为此构建一个自定义libjpeg。欣赏关于这个主题的任何建议/帮助(甚至可以指导源代码中要修改的部分)。获取JPEG冗余数据

在此先感谢!

编辑:为了澄清我自己,我没有考虑嵌入隐藏的信息。我正在寻找一种方法来获取JPEG压缩过程中丢失的数据。我也可以从重新压缩JPEG图像(从90到80)获取数据丢失。

回答

0

如果您需要将私有数据嵌入到JPEG比特流中,则可能需要利用APPn标记。有一些伟大的事情对他们:

  • 图像仍然是可读的,与软件有
  • 兼容的格式很简单,让你可以离开的libjpeg或您的另一喜爱JPEG库完好,并添加/读出的数据直接

JPEG File Interchange Format修改比特流是使用APP0APP1,你可以阅读细节,还有像APP2更多可用的标记,你可以使用你的目的。

+0

我尝试过程中为JPEG压缩过程中获得丢失的数据一些研究项目。我需要数据很容易处理(比如像素,矩阵等)。 –

+1

我看,问题其实是不一样的。至于测量压缩损失的部分,为什么不使用现有的JPEG压缩库,并解压缩压缩的图像,并从原始减去它?这会让你有所不同,而不需要深入研究JPEG压缩代码? –

0

至少有四个步骤,您可以通过jpeg压缩丢失信息。我真的不知道你在做什么。如果你想测量丢失的信息,你可以压缩/解压缩并与原始数据进行比较。

我想你想将RGB编码为标准JFIF,然后在颜色转换,二次采样中丢失信息之后,你必须做FDCT,我不认为这是完全可逆的,所以你在那一步失去了信息然后你有量化步骤。除非你有包含所有的量化表,否则你也将失去信息。

概括起来:

  1. 颜色转换
  2. Subsamling
  3. FDCT/IDCT
  4. 量化