歡迎來到數據表示(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) 告訴電腦如何解讀這些位元模式。