8 × 88×8块矩阵?

信息处理 图像处理 图片 压缩 图像压缩
2022-01-16 05:29:38

在图像的标准 JPEG 格式中,使用离散余弦变换。但不是对整个图像应用变换,而是首先将图像划分为8×8块并对每个块应用变换。因此,在量化过程中,我们移除了较高频率的小系数。这些步骤在此处进行了详细说明

但正如我们所知,在NsamplesDCT 中,我们只能有 N 个频率系数。如果我们在整个图像上应用 DCT,我们将能够获得更高的频率系数。

有人可以强调一次在整个图像上应用 DCT 的任何缺点吗?

2个回答

有损 JPEG 压缩不仅仅去除高频中的小系数。它以相对于(相对粗略的)视觉感知模型的精度对它们进行编码;最值得注意的是,水平和垂直频率的量化精度不同。与许多压缩格式一样,它本质上假设数据是本地静止的。

如果对整个图像应用 DCT,并量化 DCT 系数,这种量化将影响整个图像。想象一张背景为棋盘格图案的图像,前景中有一只小斑马。使用整体 DCT 压缩,斑马可能会失去条纹,因为它们的能量相对于棋盘的能量可以忽略不计。更重要的是,由于 JPEG 也将 DCT 应用于色度,通过下采样,颜色系数量化可能会在它们不属于的地方产生假色。当块大小大于大约8×8时,几个有意义的图像梯度(对象边缘的一部分)更有可能在同一个补丁中同时发生。

可以获得稍好的结果。那是感知部分。16×16

还有一个计算部分。小的非重叠块更容易处理,并且需要更少的内存,这仍然是电子设备的昂贵部分。早期的 JPEG 2000,在整个图像上应用小波,尽管结果更好,但未能采用,部分原因是它们的内存占用。现在,随着 GPU 的出现,处理块变得非常有吸引力。最后,2 的幂 ( ) 和巧妙的技巧使块 DCT 非常有效。在现代编码器中,标准通常使用不同的 ... 块大小。8=232×44×4

最后但并非最不重要的一点是,它不是模块化的,因为您需要为每个图像大小实现 DCT。尽管可以通过软件实现,但芯片制造商不太可能喜欢硬件部分。

因此,在整个图像上应用 DCT:

  1. 对非静止图像有害,并且浪费一些局部方向,
  2. 在内存和硬件方面可能很昂贵,
  3. 不是很模块化,计算效率也不高。

话虽如此,非常静止的图像会更好地使用全尺寸 DCT 进行压缩。

我们的听力似乎受益于大的变换尺寸(精细的频率分辨率)。因此,对于音频编解码器而言,1024 个样本的 MDCT 并非闻所未闻。

相比之下,我们的愿景似乎可以更好地分析为紧凑的变换大小(“更接近未变换”)。

将长滤波器或大变换应用于视觉应用程序往往会引入预振铃和讨厌。