Logo
Section 1 / 5

数据中的冗余

在本课程中,您将学习数据冗余的相关知识。

导入

数据中的冗余

在本课程中,您将学习数据冗余的相关知识。

冗余优化

假设你的工作需要完成三项任务:

  • A:在电脑上工作。

  • B:列出每日支出清单。

  • C:阅读一本书。

你将 50% 的时间用于任务 A,每项任务 B 和 C 各占 25% 的时间。现在你可以对其中一项任务进行速度优化。你会选择哪一项以最快的速度完成?任务 A,因为这是你最常做的任务,优化它能为你节省最多时间,提高效率最高。

...
Figure 1: Three tasks at work.

类似地,我们可以用更少的比特来编码出现频率最高的数据值。更具体地说,我们会为每个值分配长度与其出现频率成反比的编码。

灰度直方图与彩色直方图

图 2 所示的灰度图像大小为 640 × 360 像素。灰度直方图在 x 轴上显示从 0 到 255 的灰度值,在 y 轴上显示像素数量。图 1 所示的彩色图像大小为 1280 × 850 像素。彩色直方图在 x 轴上显示从 0 到 255 的 R、G、B 值,在 y 轴上显示像素数量。

...
Figure 2: Histogram of a grayscale image (top) and a colored image (bottom) from https://pixabay.com.

这两个直方图展示了从 0 到 255 每个值对应的像素数量。更重要的是,它们表明图像中存在大量重复的数据值。例如,在灰度图像中,灰度值介于 150 到 200 之间的像素数量超过 2000,这意味着图像中存在海量冗余数据。此外,还观察到相邻像素具有相同或相似的灰度值或 RGB 值。

压缩

数据中的冗余使得我们可以将文件压缩为更小的文件。例如,如果灰度图像中实际上只使用了大约 60 个不同的值,那么我们只需每像素 6 位,而不是每像素 8 位。每像素节省两位,对于包含数百万像素的图片来说,可以节省大量存储空间。

Python 中的图像、音频和视频表示

有损压缩