在创建压缩 JPEG 图像之前确定生成的像素值

信息处理 图像处理 dct 压缩 JPEG
2022-01-31 03:29:51

是否可以在实际创建压缩的 jpeg 图像之前确定生成的像素值并对其进行修改?

例如,我正处于已经拥有原始图像的量化 DCT 系数的阶段,并且我想将结果图像的所有像素的(255, 255, 0)值更改为(255, 254, 0).

我在想的是,如果可能的话,我需要:

  1. 获取原始图像的等效DCT系数并进行量化
  2. 确定生成的像素值并进行所需的更改
  3. 获得将导致它的新 DCT 系数
  4. 继续进行霍夫曼编码

在霍夫曼编码期间可以完成以下操作吗?

  1. 从 YCbCr 获取等效的 DCT 系数并进行量化
  2. 进行霍夫曼编码并修改所需的像素
1个回答

为了给您一个预先的答案,您想要确定的问题pixelvaluesDCTCoefficients可能世界上没有什么比做 IDCT 本身更好的了!

但是,抛开一些含糊不清,我可以重新表述您的问题:

如果我有一个算法 x - 定义为在像素上工作,这就是我所做的:
DCT-Coeffs -> IDCT -> 像素 Algorithm_X -> 像素 DCT -> DCT-Coeffs
(忽略其他外围的东西)。

问题是:这种蛮力是否有一条捷径,我显然要撤消在第一阶段完成的一些事情?

您指的是通常称为压缩域处理​​的内容。

DCT-Coeffs -> Compressed_Domain_Algorithm_X -> DCT-Coeffs

基本上,所有压缩域算法都利用了 DCT 的线性。例如

Y=αX1+βX2
然后,
DCT(Y)=αDCT(X1)+βDCT(X2)
在哪里α β是标量。

有很多事情是可能的,而很多事情不是。回答所有可能的压缩域算法集实在是太庞大了,但我会推荐一些关键的阅读材料,这将为你搭建一个很好的舞台。

  1. Brian C. Smith, Lawrence A. Rowe Real-Time Imaging (1996) 对 JPEG 编码图像的压缩域处理

  2. Brian C. Smith Proc 的压缩域处理​​技术调查。NSF 重新连接科学研讨会

  3. 处理压缩图像的算法,Brian C. Smith,Lawrence A. Rowe,IEEE 计算机图形学和应用,1993 年 9 月,第 13 卷,(第 5 期):34-42。

  4. MC-DCT 压缩视频的处理和合成 作者:Shih-Fu Chang, David G. Messerschmitt IEEE Journal on Selected Areas in Communications, 1995/1, Volume 13 Issue 1

  5. Susie Wee、Bo Shen、John Apostolopoulo 惠普实验室技术报告 2002 的压缩域视频处理。

细节:如果您使用的是libjpeg,您实际上可以直接获得量化的 DCT 系数。然而,大多数上述文献都提到了未量化的 DCT 系数。