欢迎来到数据存储与压缩!
在本章中,我们将探索如何衡量文件的“数字重量”,以及如何将文件缩小,好让它们不会占用过多空间。无论你是正在下载一个 50GB 的游戏,还是传送一张 2MB 的相片给朋友,你都在处理数据存储(Data storage)和压缩(Compression)的问题。
如果起初看到这些数字觉得很庞大,请别担心——只要看出当中的规律,计算起来就像移动小数点一样简单(嗯,应该说是二进制小数点!)。
第一节:衡量数据
就像我们用克和公斤来衡量重量一样,我们用位元(bits)和字节(bytes)来衡量数字数据。由于电脑使用二进制(binary)(由 1 和 0 组成),这些测量单位都是以 2 的倍数为基础。
基础组件
- 位元(Bit):数据的最小单位,是一个单独的 1 或 0。
- 半字节(Nibble):4 个位元(半个字节)。
- 字节(Byte):8 个位元。这是衡量单个文本字符的标准单位。
二进制倍数
过去,人们常用“千字节(kilobytes)”来表示 1000 或 1024。为了精确起见,你的 Edexcel 课程采用了 IEC(国际电工委员会)的标准。这些单位以 1024 为倍数递增。
记忆小贴士:"Kitchens Make Great Toast"(厨房能做出很棒的吐司)- Kibibyte (KiB):\(1024\) bytes
- Mebibyte (MiB):\(1024\) kibibytes
- Gibibyte (GiB):\(1024\) mebibytes
- Tebibyte (TiB):\(1024\) gibibytes
你知道吗? 我们使用 "kibi" 和 "mebi" 而不是 "kilo" 和 "mega",是为了标示我们使用的是 1024 (\(2^{10}\)) 而非 1000 (\(10^{3}\))。
快速复习:
8 bits = 1 byte
1024 bytes = 1 KiB
1024 KiB = 1 MiB
1024 MiB = 1 GiB
1024 GiB = 1 TiB
第二节:计算文件大小
你需要学会“构建算式”(写出数学式),来计算文件有多大,或是它能否存入磁盘中。在考试中,你通常不需要算出最后那个巨大的数字,但你必须展示你是如何得出该结果的!
计算图像文件大小
要计算位图(bitmap image)的大小,请使用此公式:
\(分辨率 (宽 \times 高) \times 色彩深度\)
范例: 一张图像宽 100 像素、高 100 像素,色彩深度为 24-bit。
算式: \(100 \times 100 \times 24\) bits。
要得到以 bytes(字节)为单位的答案,需除以 8:\(\frac{100 \times 100 \times 24}{8}\)
计算声音文件大小
要计算声音文件的大小,请使用此公式:
\(采样率 (Hz) \times 采样时间 (秒) \times 位元深度\)
范例: 一段 10 秒的录音,采样率为 44,100Hz,位元深度为 16-bit。
算式: \(44,100 \times 10 \times 16\) bits。
容量需求
如果你需要知道 2MiB 的文件在 10GiB 的 USB 闪存盘中能存多少个:
1. 将所有单位转换成一致(将 GiB 转换为 MiB)。
2. \(10 \times 1024 = 10,240\) MiB。
3. 用总容量除以文件大小:\(10,240 / 2 = 5,120\) 个文件。
常见错误: 忘了除以 8!考试题目通常要求以 bytes 为单位,但你的初步计算结果通常是 bits。
重点提示: 务必检查你的单位!如果题目要求以 KiB 为单位,你得将总字节数除以 1024。
第三节:数据压缩
压缩(Compression)是将文件缩小的过程。我们为什么要这样做?
1. 为了占用更少的存储空间。
2. 为了让文件在网络上传输得更快(流媒体/下载)。
1. 有损压缩 (Lossy Compression)
有损(Lossy)压缩通过永久删除部分数据来缩小文件。它会寻找人类眼睛或耳朵不易察觉的数据并将其移除。
- 范例: JPEG(图像)、MP3(声音)、MP4(视频)。
- 优点: 大幅缩减文件大小。
- 缺点: 损失了部分品质;文件无法还原成原始状态。
2. 无损压缩 (Lossless Compression)
无损(Lossless)压缩在不丢失任何信息的情况下缩小文件。它会寻找数据中的规律,并以更有效率的方式记录它们。当你“解压缩(unzip)”文件时,它与原始文件完全相同。
- 范例: PNG(图像)、ZIP(文件)、FLAC(声音)。
- 优点: 画质或音质无损。
- 缺点: 文件缩小的程度不如有损压缩显著。
压缩的类比
想象你在传送信息。
无损(Lossless)就像用 "don't" 代替 "do not"。虽然变短了,但含义 100% 被完美保留。
有损(Lossy)就像传送 "c u ltr"。你删除了字母(数据),虽然朋友看得懂,但它已经不是原本那句正式的句子了。
快速复习:
有损(Lossy): 文件更小,品质较低,数据永远消失。
无损(Lossless): 文件略微缩小,品质完美,数据完整保留。
总结:我们学到了什么?
- 电脑以二进制倍数(基数 1024)来衡量数据。
- 我们使用 bits, bytes, KiB, MiB, GiB, 及 TiB 来衡量存储大小。
- 文件大小算式能帮助我们规划所需的存储空间。
- 有损压缩通过删除数据来缩小文件(适合相片/音乐)。
- 无损压缩通过重新组织数据来缩小文件(适合文字/程序代码)。