学习指南

数据压缩

CIE A-Level 计算机科学· 第一单元:信息表示· 20 分钟阅读

1. 数据压缩的目的★★☆☆☆⏱ 5 min

数据压缩减少了存储或传输数字数据所需的比特数。它通过移除冗余数据实现:即对最终用户没有额外意义的重复或不必要数据。

📘 定义

数据压缩

通过比原始未压缩表示更少的比特对信息编码,以降低存储需求和缩短传输时间的过程。

例:

一张10MB的未压缩图像可压缩为2MB,用于网页展示。

📐 例题

一个5分钟的未压缩音频文件大小为50MB,在移动连接下需要10秒下载。压缩后文件大小为8MB。假设比特率恒定,压缩后的下载时间是多少?

  1. 1

    计算原始下载速度:

  2. 2
    Speed=50 MB10 s=5 MB/s\text{Speed} = \frac{50 \text{ MB}}{10 \text{ s}} = 5 \text{ MB/s}
  3. 3

    计算压缩文件的新下载时间:

  4. 4
    Time=8 MB5 MB/s=1.6 秒\text{Time} = \frac{8 \text{ MB}}{5 \text{ MB/s}} = 1.6 \text{ 秒}
  5. 5

    在本示例中,压缩将下载时间减少了84%。

Exam tip:

考试中经常要求你列出压缩的三个优势:更小的存储体积、更快的传输速度、更低的带宽成本。

2. 无损压缩 vs 有损压缩★★☆☆☆⏱ 7 min

所有压缩方法都可分为两大类,区分依据是压缩后能否完美重建原始数据。

📘 定义

无损压缩

可以完美重建原始未压缩数据、不丢失任何信息的压缩方式。

例:

用于压缩文档的ZIP文件采用无损压缩。

📘 定义

有损压缩

永久从原始文件中移除部分数据,获得更高压缩比,但无法完美重建原始数据的压缩方式。

例:

MP3音频文件会移除人耳听不到的频率来减小体积。

  • 无损压缩通常可获得2:1到4:1的压缩比(压缩后文件是原始大小的25%-50%)。

  • 有损压缩可获得10:1到100:1的压缩比(压缩后文件是原始大小的1%-10%)。

  • 当任何数据丢失都会损坏文件时必须使用无损压缩:文本文档、电子表格、可执行程序等。

  • 有损压缩用于微小损失不会被察觉的媒体:图像、音频、视频。

📐 例题

针对每种文件类型,说明有损压缩还是无损压缩更合适:(a) 学校作文 (b) 用于社交媒体的手机照片 (c) 考试成绩电子表格 (d) 流媒体播客

  1. 1

    (a) 作文:文本的任何改动都会改变内容,因此适合使用无损压缩。

  2. 2

    (b) 社交媒体照片:为了获得更小的文件,小幅质量降低是可接受的,因此适合使用有损压缩。

  3. 3

    (c) 考试成绩电子表格:数据准确性至关重要,因此适合使用无损压缩。

  4. 4

    (d) 流媒体播客:小幅质量损失不会被察觉,还能降低带宽成本,因此适合使用有损压缩。

Exam tip:

你始终需要将压缩类型的选择和完美重建的需求关联起来,为你的选择提供依据。

3. 常见的无损压缩算法★★★☆☆⏱ 8 min

CIE 9618 要求你掌握两种广泛使用的无损压缩算法:游程编码(RLE)和伦佩尔-齐夫-韦尔奇编码(LZW)。

📘 定义

游程编码(RLE)

一种简单的无损算法,它将连续重复出现的相同值替换为单个(计数,值)对,而不是单独存储每个重复值。

📐 例题

使用RLE压缩以下16个像素值序列:00 00 00 00 00 11 11 11 11 22 22 22 33 33 33 33。将输出写为(计数,值)对,并计算压缩比。

  1. 1

    对连续相同的值分组:5 × 00,4 × 11,3 × 22,4 × 33

  2. 2

    转换为(计数,值)对:

  3. 3
    (5,00),(4,11),(3,22),(4,33)(5, 00), (4, 11), (3, 22), (4, 33)
  4. 4

    原始大小:16 × 8 比特 = 128 比特。压缩后大小:8 对 × 8 比特 = 64 比特。压缩比 = 2:1。

📘 定义

伦佩尔-齐夫-韦尔奇编码(LZW)

基于字典的无损算法,它将重复数据序列替换为更短的索引码,索引指向从输入数据构建的字典中的条目。

LZW用于GIF、TIFF和PDF等常见文件格式。它的工作方式是扫描输入,将新序列添加到字典中,然后将重复序列替换为更短的索引。

✓ 快速检测

测试你的理解:

  1. 对于包含大面积纯色区域的图像,哪种无损算法效果最好?

    • 游程编码

    • LZW

4. 常见的有损压缩方法★★★☆☆⏱ 8 min

有损压缩方法是针对特定媒体类型设计的,它利用人类感知的局限性,移除大多数用户不会注意到的冗余数据。

📘 定义

JPEG压缩

数字图像最常用的有损压缩方式,它将图像分为8×8的块,移除人眼不易察觉的高频细节。

📘 定义

MP3压缩

数字音频的有损压缩方式,它利用心理声学掩蔽效应移除大多数人耳听不到的声音频率。

📐 例题

一张分辨率为1920 × 1080像素的24位彩色位图未压缩。计算未压缩文件的大小(单位MB),然后计算经过JPEG压缩(压缩比25:1)后的压缩大小。

  1. 1

    计算总像素数:

  2. 2
    1920×1080=2,073,600 像素1920 \times 1080 = 2{,}073{,}600 \text{ 像素}
  3. 3

    计算总比特数:

  4. 4
    2,073,600×24=49,766,400 比特2{,}073{,}600 \times 24 = 49{,}766{,}400 \text{ 比特}
  5. 5

    转换为兆字节:

  6. 6
    49,766,4008×1024×10245.93 MB(未压缩)\frac{49{,}766{,}400}{8 \times 1024 \times 1024} \approx 5.93 \text{ MB(未压缩)}
  7. 7

    计算压缩比为25:1时的压缩大小:

  8. 8
    5.93250.24 MB=240 KB\frac{5.93}{25} \approx 0.24 \text{ MB} = 240 \text{ KB}

Exam tip:

计算文件大小时一定要检查单位转换:这是这类问题中最常见的丢分错误。

5. 常见陷阱

错误做法:

在选择适用场景时混淆有损压缩和无损压缩

原因:

许多学生会混淆这两类压缩,尤其是对于在线共享的媒体文件

正确做法:

永远记住:如果需要完美重建原始数据,使用无损压缩;如果可以接受质量权衡,使用有损压缩。

错误做法:

计算压缩文件大小时忘记在比特和字节之间转换

原因:

压缩比与单位无关,但题目几乎总是要求以字节或兆字节为单位作答

正确做法:

始终检查原始大小的单位和题目要求的最终答案单位,在给出最终结果前正确转换单位。

错误做法:

认为压缩后的文件大小一定比原始文件更小

原因:

压缩依赖冗余;高度随机、没有重复模式的数据没有可移除的冗余

正确做法:

对于随机数据,压缩后的文件可能比原始文件稍大,因为压缩算法会在输出中添加元数据。

错误做法:

认为RLE只能用于位图图像

原因:

学生通常只将RLE和图像压缩关联,因此他们在考试答案中错误地限制了RLE的应用范围

正确做法:

RLE可以应用于任何包含连续重复值的数据序列,包括文本、声音和其他数据类型。

6. 速查表

特性

无损压缩

有损压缩

是否可以完美重建原始数据

典型压缩比

2:1 到 4:1

10:1 到 100:1

常见适用场景

文本、电子表格、可执行程序

图像、音频、视频

常见算法

RLE、LZW、ZIP

JPEG、MP3、H.264

最大文件大小减少量

中等

非常大

真题中的出现

AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。

  • 2022 · 11

    比较有损压缩和无损压缩

  • 2023 · 12

    计算RLE压缩后的文件大小

  • 2024 · 13

    说明数据压缩的优势

深入阅读

下一步

理解数据压缩是处理数字媒体和数据传输的基础,这是CIE 9618试卷1和实践评估的核心主题。你将在此知识基础上学习特定媒体文件格式、压缩如何影响网络传输的带宽需求,以及现代数字系统中使用的高级编码技术。掌握有损压缩和无损压缩的区别以及文件大小计算,可以帮助你在选择题和扩展回答题中轻松得分。