跳到正文
IGCSE·Tuition
计算机科学 · 课程

区分无损压缩与有损压缩

压缩题要你选择用哪种方法,只写“让文件变小”这样模糊的答案得不到几分。

本页内容
  1. 用简单的话说,区别在哪里?
  2. 游程编码如何运作?
  3. 例题
  4. 要留意的错误
  5. 自我检测
  6. 接下来学什么

无损压缩(lossless) 让文件变小,并且能完全还原原始内容。有损压缩(lossy) 通过永久删除一部分数据让文件更小,所以无法恢复原样。题目会要求你定义两者、为某个情境选择其中一种,并说明理由。

这一课承接采样音频大小,因为压缩的目的就是减小你刚算出的庞大数值。

用简单的话说,区别在哪里?

无损方法寻找规律,把数据存得更有效率,什么都不丢弃。文本文件、程序文件以及必须保持精确的数据都需要它。

有损方法丢弃人们不太可能察觉的细节。JPEG 格式的照片和 MP3 格式的音频是日常的例子。质量会略有下降,压缩得越多,丢失得越多。

特点无损有损
能否还原原样能不能
文件缩小程度较小通常小得多
质量不变降低
适合文本、程序、医学扫描观看用的照片、音乐、视频

游程编码如何运作?

游程编码(run-length encoding,RLE)是一种无损方法。它把连续相同的值替换成“值 + 次数”。

下面是用剑桥风格伪代码写的思路,字符串存放在 Data 中:

Count ← 1
FOR i ← 2 TO LENGTH(Data)
   IF MID(Data, i, 1) = MID(Data, i - 1, 1) THEN
      Count ← Count + 1
   ELSE
      OUTPUT MID(Data, i - 1, 1), Count
      Count ← 1
   ENDIF
NEXT i
OUTPUT MID(Data, LENGTH(Data), 1), Count

用 Data = “AAABCC”(6 个字符)追踪:

i比较动作Count
开始1
2A, A相同,加 12
3A, A相同,加 13
4B, A不同:输出 A 31
5C, B不同:输出 B 11
6C, C相同,加 12
循环结束后输出 C 2

结果:A3 B1 C2。你可以在伪代码追踪训练器里逐步追踪这样的循环。

例题

黑白图像的一行存成 W W W W W W W W B B W W W W(14 个像素,W 为白色,B 为黑色)。用 RLE 压缩它,并说明这个方法是否无损。

第 1 步,把连续的值分组: 8 个白、2 个黑、4 个白。

第 2 步,写出值和次数: W8 B2 W4。

第 3 步,解码检查: W×8、B×2、W×4 正好还原出原来的 14 个像素。

结论: 14 个值变成 3 对,共 6 个存储项。因为解码能完全还原原始数据,所以 RLE 是无损的。

要留意的错误

常见的失误是以为压缩一定会让数据变小。

错误的答案: “ABCD” 压缩成 A1B1C1D1,所以更小。

学生数错了字符。A1B1C1D1 有 8 个字符,比原来的 4 个还多。

纠正:RLE 只有在值重复时才有帮助。没有连续重复的数据反而会变大。好的答案会说明节省的程度取决于数据中的规律。

自我检测

试做这些题,然后打开答案。

1. 用游程编码对 WWWBBWWWWW 编码。

显示答案

连续段:3 个 W、2 个 B、5 个 W。答案:W3 B2 W5。解码得到 WWW BB WWWWW,即原来的 10 个字符。

2. 一家医院保存用于诊断的扫描图像。应该用无损还是有损压缩?说明一个理由。

显示答案

无损。 有损压缩会永久删除细节,而医学图像中缺失的细节可能改变诊断。无损压缩保留每一个像素。

3. 说出流媒体音乐服务可能选择有损压缩的一个理由。

显示答案

有损文件小得多,所以下载更快、用的数据更少,而且大多数听众很难察觉质量的损失。

接下来学什么

在不同方法之间做选择,其实就是在大小与质量之间取舍,所以接着学习解释质量与存储的取舍。然后用练习集做综合题。

如果定义已经扎实,但情境回答仍然松散,老师可以在线上一对一计算机科学补习中为你反复训练。

常见问题

无损压缩和有损压缩有什么区别?

无损压缩(lossless)缩小文件,并且能完全还原原始数据。有损压缩(lossy)为了得到更小的文件而永久删除一部分数据,所以无法恢复原样。有损文件通常更小,但质量较低。

无损压缩有可能让文件变大吗?

有可能。游程编码需要重复的值才能省空间。对于没有连续重复的数据,例如 ABCD,每个项目都附上计数,结果反而更长。只有数据存在该方法可以利用的规律时,压缩才有帮助。

文本或程序文件该用哪一种?

用无损压缩。文档里改变一个字符,或程序里改变一条指令,就可能让文件损坏。有损方法适合图像、声音和视频,因为小小的损失人眼人耳很难察觉。

更新于:

下一步

如果你能写出两种压缩的定义,却难以为具体情境说明选择的理由,一对一的老师可以陪你练习简短的情境回答,直到推理变成习惯。

一小时付费试听课,按所安排老师确认的收费,RM80 起。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

家长:在这里咨询

  • 已通过我们的服务帮助 9,000+ 名学生
  • 9+ 年帮助 IGCSE 学生