本模块讲计算机如何把图片和声音存成二进制数据、如何计算这些数据的大小、压缩(compression)如何把它变小,以及如何换算字节与 KiB 等单位。这是计算机科学里最稳定的计算得分点之一,同时也考查你能否把假设写清楚。
请到 Cambridge IGCSE Computer Science 0478 课程大纲页面查看你所考年份的确切措辞和变动。我们的计算机科学学习指南展示了本模块在整个科目中的位置。
开始之前需要懂什么?
你需要熟悉位(bit)、字节(byte)和二进制的位值。如果二进制与十进制的转换还很慢,请先复习二进制与十进制转换和位深度,因为每一道大小计算都从“一个项目需要多少位”开始。
引导例题
一幅很小的图像宽 4 个像素、高 4 个像素,每个像素用 2 位。未压缩的图像需要多少字节?
第 1 步,像素数: 4 × 4 = 16 个像素。
第 2 步,位数: 16 × 2 = 32 位。
第 3 步,字节数: 32 ÷ 8 = 4 字节。
检查: 2 位可以表示 4 种颜色(00、01、10、11)。如果背景是单一颜色,用游程编码压缩会小得多,这正是本模块接下来的内容。
这一道题用到了图像大小的方法、字节换算和位深度。声音的算法一样,只是用采样率、位深度、时长和声道取代了宽和高。
应该按什么顺序学习?
- 计算未压缩图像的大小:像素数 × 位深度,以及为什么要写出假设。
- 计算采样音频的大小:采样率 × 位深度 × 时间 × 声道数。
- 区分无损压缩与有损压缩:保留什么、丢失什么,以及一个可运行的算法。
- 解释质量与存储的取舍:把改变同时与大小和质量联系起来,写成能得分的句子。
- 按指定约定换算存储单位:把庞大的位数变成容易阅读的答案。
之后做综合练习。伪代码追踪训练器可以帮你逐步追踪游程编码的例子,Python 推理沙盒让你把大小公式当作代码来测试。
哪些陷阱最容易绊倒学生?
- 把颜色数当成位深度。 256 种颜色是 8 位,不是 256 位。
- 题目要字节时忘了除以 8。
- 采样率按秒计算,时间却仍用分钟。
- 换算时混用 1000 和 1024。 请使用题目或大纲给出的约定。
- 取舍题只写“质量更好”,却不写原因。
每一课都会完整展示其中一个错误,然后纠正它。
应该怎样使用练习?
先在纸上做每一题,并写出每一步。方法很重要,因为考试的分数通常同时来自过程和最终数值。做完之后才打开答案,再阅读末尾的指引,回到它指出的那一课。
把那一课补好,几天后再做一道相似的题。如果同一个错误一再出现,例如总是忘了除以 8,线上一对一计算机科学补习的老师可以陪你找出背后的习惯,再用新的题目练到稳。