具有不完整MCU的JPEG - 填充方法

时间:2017-04-06 07:42:51

标签: encoding jpeg

基于此主题的评论https://stackoverflow.com/a/35791309/187650我对此提出了一个问题,因为目前尚不清楚。

我有一个9px(宽度)x 17px(高度)RGB的位图。 目标是使用垂直方向的半色度子采样将其编码为jpeg,使用3个分量进行质量默认(50)。

对于垂直方向上的半度色度子采样,我应该使用8x16(宽x高)的MCU。

我做的步骤:

  1. 将RGB转换为YCbCr图像(3个分量:Y,Cb,Cr)。
  2. 制作2dim。 Y,Cb和Cr组件的数组更大,这样我就可以创建完整的8x16 MCU模块。
  3. 拆分为8x16的MCU块 - >得到Y0Y1CbCr 8x8块
  4. 使用Y0Y1CbCr 8x8块进行DCT
  5. ...
  6. 在步骤2中,我有Y,Cb和Cr为2dim。数组大小为[17,9]。 我计算了我应该添加多少行和列以获得8x16的完整MCU块,因此我创建了一个大小为[32,16]的新数组,其中包含较小数组的原始值。

    现在问题是:我如何填充或填充额外的值,因为新数组更大。

    1. 用零填充(0' s)?
    2. 用(1' s)填充?
    3. 用最后一行和最后一列填充? (第一个填充行或第一列?)
    4. 用另一个值填充?
    5. 原始位图:

      original bitmap

      使用零填充结果:

      padding zeros

      结果填充为:

      padding with ones

      正如您所看到的,当使用0或1填充时,结果会在底部显示绿色。

      欢迎任何建议。

0 个答案:

没有答案