在 JPEG 文件中,噪声有多少,图像有多少?

信息处理 噪音 JPEG
2022-02-22 18:18:53

我有一个 IP 网络摄像头,可以生成纯背景的低光图像。相机仅吐出 JPEG 文件。以下是这样的一个框架…… 原始帧 这是应用了图形均衡的 框架……均衡帧 您可以看到有很多噪点,但阶梯式镜头卡口的图像也很清晰。这些 JPEG 文件大小约为 20KB。

我想确定 20KB 的哪一部分是由于(镜头卡口的)固定图像,而哪一部分完全是由于噪声。重申一下,我只关心 JPEG 文件的比例,而不关心扩展的光栅图像,这一点很重要。

所以 noise.jpg(part) + mount.jpg(part) = 20KB。

我的直觉建议重复采样静态图像和帧堆叠以隔离镜头卡口。这根本行不通。

我怎样才能确定这些比例?

1个回答

您的问题是双重的:

  1. 图像噪声/由于黑暗导致的低 SNR
  2. 由于 JPEG 压缩导致的平均问题

第一点是我们本身无法真正改变的东西。你的平均方法肯定是一个很好的方法。

现在的第二个问题是由于 JPEG 压缩在您的相机中的工作方式:

  1. Gamma 校正首先应用于 RGB 图像。这是一种非线性操作,将高值“推到一起”并拉伸低值。这样一来,您就不会因为黑暗的图像而到处“漆黑”。可悲的是,这也使我们的量化噪声问题变得更加困难。
  2. 生成的 R'G'B' 像素数据将转换为 Y'C b C r颜色空间,这意味着您将三维红、绿、蓝信号转换为三维亮度、蓝差、红差信号。
  3. C b/r通道经过低通滤波和下采样
  4. 原始分辨率 Y' 和降低分辨率的 C b和 C r图像分别被分割成 8x8 像素块
  5. 这些块是单独的 DCT'ed
  6. 根据挑选质量/压缩折衷选择量化矩阵。这导致不同的 DCT 系数被省略,以更少或更多位保存。

如另一个答案所示,对重建的 RGB 图像进行平均是一个坏主意,因为随机噪声必须导致您基本上看到每个块中量化矩阵的 IDCT 的影响——嗯。

因此,首先,请注意,对于定义恒定强度偏移(“DC 分量”,EE 会说)的 DCT 系数,可以确定选择了最高量化级别。

相反,至少对于 8x8 块中的大多数高频分量,量化误差能量更高。

因此,从本质上讲,DCT 的常数 bin 是最可靠的——而且,它恰好是块中 64 个像素的平均值,因此已经减少了噪声(如果噪声的频率分布是白色的,那么所有组件都是这种情况,但它在相机中既不是可靠的白色,也不是伽马校正线性......)。

所以,你可能想做的第一步是

  • 在 Y'C b C r上工作,而不是 RGB 重建
  • 只看Y分量
  • 忽略每个 8x8 块中不是直流分量的所有内容

你会得到一张的图像,即原始照片的宽度和高度。它可能仍然会很嘈杂——散粒噪声可能与低光设置相关,这会影响每帧的平均值。但是,随着时间的推移平均会减少这种影响。18

您也可以通过将非零频率系数相加,用因子 < 1 对它们进行加权,然后从直流分量中减去它们来降低噪声。这背后的想法是,当您在 8x8 帧中设置单个像素时,您会在所有系数中获得能量(如果您考虑一下,狄拉克的余弦变换在所有频率上都有能量)。既然你获得所有系数,其中大多数被丢弃或大量量化,您将永远无法从平均系数中完全消除散粒噪声的影响 - 但至少平均而言,您可以减少影响。该因子的选择取决于相机传感器、伽马因子、量化矩阵、DCT 的实现方式(截断固定点?),因此未知数太多,但您可能只是凭经验尝试几个值并最小化方差多帧的结果。