获取JPEG冗余数据

时间:2011-10-22 21:13:11

标签: c image jpeg libjpeg

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

提前致谢!

编辑:为了澄清自己,我不打算嵌入隐藏的信息。我正在寻找一种方法来在JPEG压缩期间丢失数据。我也可以通过重新压缩JPEG图像(从90到80)来丢失数据。

2 个答案:

答案 0 :(得分:0)

如果您需要将私有数据嵌入JPEG比特流,您可能希望利用APPn标记。他们几乎没有什么好处:

  • 图像仍然可读并与那里的软件兼容
  • 格式足够简单,以便您可以保留libjpeg或您喜欢的另一个JPEG库,并添加/读取直接修改比特流的数据

JPEG File Interchange Format正在使用APP0APP1,您可以阅读详细信息,还有更多可用的标记,例如APP2,您可以将它们用于您的目的。

答案 1 :(得分:0)

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

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

总结一下:

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