欢迎来到数据表示(Data Representation)的世界!

在本章中,我们将探讨计算机如何将我们身处这个混乱又「充满曲线」的世界(声音、颜色和景象)转化为它们唯一能理解的东西:位元模式(bit patterns)(由 0 和 1 组成的序列)。无论你是想成为游戏开发者,还是只想应付考试的同学,理解照片或歌曲实际上是如何被「储存」的,是整个计算机科学的基石。

如果起初觉得这些概念有点抽象,不用担心! 我们会将其拆解成简单的类比,让你轻松领悟。


1. 模拟(Analogue)与数字(Digital)

在储存数据之前,我们需要先了解「真实世界」与「计算机世界」之间的差异。

模拟数据与信号

模拟(Analogue)数据是连续的。想象一下公园里的滑梯,你可以处于滑梯上的任何高度。空气中的声波就是模拟信号,它们的频率和振幅一直在不断变化。

数字数据与信号

数字(Digital)数据是离散的。想象一组楼梯,你只会站在某个特定的阶梯上,不可能站在阶梯之间的「空中」。计算机使用数字数据,因为它们内部的晶体管(transistors)状态只有开启 (1)关闭 (0)

我们如何转换它们?

为了弥合两者之间的鸿沟,我们使用了两种特殊的硬件:
1. ADC(模数转换器,Analogue to Digital Converter):将连续信号(例如对着麦克风说话的声音)进行「采样」,转化为二进制数字。
2. DAC(数模转换器,Digital to Analogue Converter):将二进制数字转回连续信号(例如通过喇叭播放音乐)。

快速复习:
- 模拟(Analogue) = 连续的(像滑梯)。
- 数字(Digital) = 离散的(像楼梯)。
- ADC = 将现实世界转为计算机世界。
- DAC = 将计算机世界转为现实世界。


2. 图像表示:位图(Bitmapped Graphics)

计算机如何储存一张猫的照片?它使用位图(Bitmap)

基本概念

位图是由无数小点组成的图像,这些点称为像素(pixels)(即「图像元素」的简称)。每个像素都会被分配一个二进制模式来代表它的颜色。

位图的关键术语

分辨率(Resolution):通常以每英寸点数(DPI)表示。在给定区域内像素越多,分辨率越高,影像就越清晰。
像素尺寸(Size in Pixels):影像的总维度,计算方式为宽度(像素)× 高度(像素)
色彩深度(Colour Depth):用来代表单一像素颜色的位数(bits)
- 如果每个像素使用 1 个位,你只能有 2 种颜色(0=黑色,1=白色)。
- 如果使用 8 个位,则可以有 \( 2^8 = 256 \) 种颜色。

计算储存需求

要计算影像文件的大小(不计算元数据 metadata),请使用这个简单的公式:
文件大小(位) = 像素总数 × 色彩深度

例子: 一张影像宽 100 像素、高 100 像素,色彩深度为 8 位。
1. 总像素:\( 100 \times 100 = 10,000 \)
2. 文件大小:\( 10,000 \times 8 = 80,000 \) 位。
3. 若要换算成字节(bytes),需除以 8:\( 80,000 / 8 = 10,000 \) 字节。

什么是元数据(Metadata)?

元数据即「关于数据的数据」。它是文件开头的一小段标头(header),告知计算机如何显示这些位。常见的元数据包括影像宽度、影像高度色彩深度。没有它,计算机只会看到一长串的 1 和 0,根本不知道哪里是一行像素的结尾,哪里又是下一行的开头!

重点总结: 更多的像素或更多的颜色意味着更精美的影像,但同时也会导致文件体积大幅增加!


3. 声音表示

为了储存声音,计算机会在固定的时间间隔内对声波进行「采样(sampling)」。

采样过程

采样率(Sampling Rate):计算机每秒测量声波振幅的次数。单位为赫兹(Hz)
采样分辨率(Sample Resolution):用来储存每次测量结果(振幅)的位数。分辨率越高,音量层级就越准确。

奈奎斯特定理(Nyquist Theorem)

别被名字吓到了! 奈奎斯特定理简单来说,就是为了准确捕捉声音,你的采样率必须至少是声音最高频率的两倍。由于人类最高能听到 20,000 Hz 的声音,大多数音乐以 44,100 Hz(CD 品质)进行采样,以确保没有细节丢失。

计算声音文件大小

大小(位) = 采样率 × 采样分辨率 × 持续时间(秒)

你知道吗?
电话通话的采样率非常低,这就是为什么电话里的声音比起面对面交谈时,听起来比较「干瘪」或「平板」!


4. MIDI (乐器数字接口)

MIDI 与 MP3 等普通的音频文件完全不同。它根本不储存「声音」本身!

MIDI 的运作方式

MIDI 文件是一系列指令事件消息,用来告诉数字乐器(如电子琴或合成器)如何演奏一段音乐。这些消息包括:
- 弹奏哪个音符。
- 按键的力度(velocity)。
- 何时停止弹奏该音符。
- 使用哪种乐器的音色。

MIDI 的优点

1. 文件极小:因为它只是文字指令,所以文件比录制的音频小得多。
2. 易于编辑:你可以随时修改单个音符,或者一键将整首歌的乐器由钢琴换成小号。
3. 没有背景杂讯:因为它是合成产生的,所以不会有「嘶嘶声」或「杂音」。

类比: 普通音频文件就像音乐会的 CD 录音。而 MIDI 文件就像乐谱。乐谱本身不是声音,但它精准地告诉演奏者该做什么。


5. 数据压缩

我们压缩文件是为了节省储存空间,并加快在互联网上的下载或传输速度。

有损(Lossy)与无损(Lossless)压缩

无损压缩(Lossless Compression):数据不会丢失。当你解压缩文件时,它与原始文件 100% 相同。这对于文字文件或计算机程序来说至关重要。
有损压缩(Lossy Compression):部分数据会被永久移除以节省空间。它会丢弃人类眼睛或耳朵难以察觉的细节(例如极高频的声音)。JPEG 和 MP3 都是使用这种技术。

你需要掌握的两种无损压缩方法:

1. 行程长度编码(Run Length Encoding, RLE):它不储存每一个像素,而是储存颜色以及该颜色重复出现的次数。
例子: 它不储存「红、红、红、红、红」,而是储存「5 个红色」。这对于具有大面积相同颜色的图像(如标志)非常有效。
2. 基于字典的压缩方法(Dictionary-Based Methods):计算机建立一个常见模式的「字典」(就像书中重复出现的词汇,如 "the"),并用短的二进制代码来取代它们。这就像你在笔记中使用简写一样!

避免常见误区: 不要以为「有损压缩」一定很糟糕。虽然它会损失质量,但正是它让我们能在互联网上流媒体播放高画质视频。如果没有有损压缩,YouTube 和 Netflix 根本无法运作!


快速复习栏

1. 位图(Bitmaps) 使用像素和色彩深度。
2. 声音 使用采样率和采样分辨率。
3. MIDI 是一系列指令,而不是录制的声音。
4. RLE 是一种计算重复数据的无损压缩方法。
5. 元数据(Metadata) 告诉计算机如何解读这些位模式。