在图像的标准 JPEG 格式中,使用离散余弦变换。但不是对整个图像应用变换,而是首先将图像划分为块并对每个块应用变换。因此,在量化过程中,我们移除了较高频率的小系数。这些步骤在此处进行了详细说明。
但正如我们所知,在DCT 中,我们只能有 N 个频率系数。如果我们在整个图像上应用 DCT,我们将能够获得更高的频率系数。
有人可以强调一次在整个图像上应用 DCT 的任何缺点吗?
在图像的标准 JPEG 格式中,使用离散余弦变换。但不是对整个图像应用变换,而是首先将图像划分为块并对每个块应用变换。因此,在量化过程中,我们移除了较高频率的小系数。这些步骤在此处进行了详细说明。
但正如我们所知,在DCT 中,我们只能有 N 个频率系数。如果我们在整个图像上应用 DCT,我们将能够获得更高的频率系数。
有人可以强调一次在整个图像上应用 DCT 的任何缺点吗?
有损 JPEG 压缩不仅仅去除高频中的小系数。它以相对于(相对粗略的)视觉感知模型的精度对它们进行编码;最值得注意的是,水平和垂直频率的量化精度不同。与许多压缩格式一样,它本质上假设数据是本地静止的。
如果对整个图像应用 DCT,并量化 DCT 系数,这种量化将影响整个图像。想象一张背景为棋盘格图案的图像,前景中有一只小斑马。使用整体 DCT 压缩,斑马可能会失去条纹,因为它们的能量相对于棋盘的能量可以忽略不计。更重要的是,由于 JPEG 也将 DCT 应用于色度,通过下采样,颜色系数量化可能会在它们不属于的地方产生假色。当块大小大于大约时,几个有意义的图像梯度(对象边缘的一部分)更有可能在同一个补丁中同时发生。
块可以获得稍好的结果。那是感知部分。
还有一个计算部分。小的非重叠块更容易处理,并且需要更少的内存,这仍然是电子设备的昂贵部分。早期的 JPEG 2000,在整个图像上应用小波,尽管结果更好,但未能采用,部分原因是它们的内存占用。现在,随着 GPU 的出现,处理块变得非常有吸引力。最后,2 的幂 ( ) 和巧妙的技巧使块 DCT 非常有效。在现代编码器中,标准通常使用不同的、 ... 块大小。
最后但并非最不重要的一点是,它不是模块化的,因为您需要为每个图像大小实现 DCT。尽管可以通过软件实现,但芯片制造商不太可能喜欢硬件部分。
因此,在整个图像上应用 DCT:
话虽如此,非常静止的图像会更好地使用全尺寸 DCT 进行压缩。
我们的听力似乎受益于大的变换尺寸(精细的频率分辨率)。因此,对于音频编解码器而言,1024 个样本的 MDCT 并非闻所未闻。
相比之下,我们的愿景似乎可以更好地分析为紧凑的变换大小(“更接近未变换”)。
将长滤波器或大变换应用于视觉应用程序往往会引入预振铃和讨厌。