歡迎來到數據表示(Data Representation)!

你有沒有想過,一部電腦明明只能理解「1」和「0」,卻能為你播放高清電影或你最愛的歌曲?在本章中,我們將探討現實世界中的數據(如圖像聲音)是如何轉換成電腦可以處理的二進制模式(bit patterns)。別擔心,即使起初有些數學計算看起來很棘手——我們會帶你一步步拆解!

1. 模擬(Analogue)與數碼(Digital)

在儲存數據之前,我們需要了解它是哪種類型。在現實世界中,大多數事物都是模擬(Analogue)的。這意味著它們是連續(continuous)的,具有無限的可能數值。想像一下傳統的旋轉調光開關,你可以將其滑動到任何亮度等級。而數碼(Digital)數據則是離散(discrete)的,意味著它只有特定、分隔的數值(就像開/關按鈕一樣)。

模擬轉數碼轉換(ADC)

由於電腦無法儲存無限的「模擬」波形,它們使用模擬轉數碼轉換器(Analogue to Digital Converter, ADC)。該裝置會定期對模擬訊號進行「採樣」(sampling),並將其轉換為二進制數值。你可以在模擬感應器(如溫度計)和麥克風中找到 ADC 的身影。

為了將聲音播放出來,我們使用數碼轉模擬轉換器(Digital to Analogue Converter, DAC)。它將二進制位元模式轉回連續訊號,讓喇叭可以藉此推動空氣產生聲音。

快速回顧:
模擬(Analogue): 連續的(現實世界)。
數碼(Digital): 離散/二進制的(電腦)。
ADC: 模擬輸入 → 二進制輸出。
DAC: 二進制輸入 → 模擬輸出。

2. 圖像表示

電腦表示圖像主要有兩種方式:點陣圖(Bitmaps)向量圖(Vectors)

點陣圖(Bitmapped Graphics)

點陣圖就像一張方格紙,每一個小方格(稱為像素 Pixel)都填滿了特定的顏色。

點陣圖關鍵術語:
解像度(Resolution): 每英吋的像素數量(通常稱為每英吋點數 DPI)。解像度越高,圖像就越清晰。
像素尺寸(Size in Pixels): 計算方式為 \( \text{width} \times \text{height} \)。
色深(Colour Depth): 用來表示單個像素顏色的位元(bits)數。如果使用 1 bit,就只能有 2 種顏色(黑和白)。如果使用 8 bits,則可以有 \( 2^8 = 256 \) 種顏色。

計算儲存需求:
要找出點陣圖檔案的大小(不計算中繼資料 Metadata),請使用以下公式:
\( \text{Storage Requirement} = \text{Width in pixels} \times \text{Height in pixels} \times \text{Colour Depth} \)

例子:一張 100x100 像素、色深為 8 bits 的圖像。
\( 100 \times 100 \times 8 = 80,000 \text{ bits} \)。要換算成位元組(bytes),請除以 8:\( 10,000 \text{ bytes} \)。

向量圖(Vector Graphics)

與其儲存每個像素,向量圖儲存的是一系列物件列表(list of objects)。每個物件(例如圓形、直線或矩形)都有各自的屬性(properties),如位置、線條粗細和顏色。

類比:點陣圖就像一張蛋糕的照片;而向量圖則是烘焙該蛋糕的食譜。

點陣圖 vs 向量圖:
點陣圖最適合照片,因為照片中的每個像素顏色可能都不同。當你放大時,它們會出現「鋸齒」(模糊)。
向量圖最適合標誌(logos)、字型和圖示。它們可以無限放大到摩天大樓般大小也不會失真,而且檔案大小通常小得多!

你知道嗎? 點陣圖檔案還包含中繼資料(Metadata)。這是「關於數據的數據」——即額外的資訊,如圖像寬度、高度、色深以及拍攝日期。

3. 聲音表示

要將聲波轉換為數字,我們會在特定的時間點對其振幅(高度)進行「採樣」。

採樣原則

採樣率(Sampling Rate): 每秒採樣的次數,以赫茲(Hz)為單位。
採樣解像度(Sample Resolution): 用來儲存每個採樣數值的位元數。位元數越多,記錄波形「高度」的準確度就越高。

奈奎斯特定理(Nyquist Theorem): 為了準確記錄聲音,採樣率必須至少是聲音中最高頻率的兩倍
\( \text{Sampling Rate} \ge 2 \times \text{Highest Frequency} \)

計算音訊檔案大小:
\( \text{Size in bits} = \text{Sampling Rate} \times \text{Sample Resolution} \times \text{Seconds} \)

樂器數碼介面(MIDI)

MIDI 並不是聲音的錄音!它是一組事件訊息(event messages)(指令),告訴數碼樂器該播放什麼。它儲存的內容包括「音符開啟(Note On)」、「音符關閉(Note Off)」、「音高(Pitch)」和「音量(Volume)」。

MIDI 的優點:
• 檔案非常小(適合慢速網絡或舊裝置)。
• 易於編輯(你可以瞬間將鋼琴音色改為結他音色)。
• 不會錄入任何背景雜音。

4. 數據壓縮

4K 影片等檔案太大,難以傳送,因此我們使用壓縮(compression)來縮減其體積。

有損(Lossy)與無損(Lossless)壓縮

有損壓縮(Lossy Compression): 永久刪除人類可能察覺不到的數據(例如極高頻的聲音或細微的色彩變化)。例子:JPEG, MP3。
無損壓縮(Lossless Compression): 在不丟失任何數據的情況下縮小檔案。當你「解壓縮」時,它與原始檔案完全相同。例子:PNG, ZIP。

無損壓縮技術

1. 遊程編碼(Run Length Encoding, RLE): 與其儲存「AAAAA」,它會儲存「5A」。這對於含有大面積相同顏色的圖像非常有效。
2. 字典編碼(Dictionary-based methods): 電腦會建立一個常見模式的「字典」。與其重複儲存整個模式,它只需儲存該模式在字典中的簡短參照編碼即可。

常見誤區: 學生常以為有損壓縮總是「壞的」。實際上,它對於串流影片或音樂非常有用,因為它能將檔案縮小到足以透過互聯網即時傳輸!

5. 加密(Encryption)

加密是將數據擾亂的過程,只有持有正確金鑰(key)的人才能讀取。原始訊息稱為明文(plaintext),而擾亂後的訊息稱為密文(ciphertext)

凱撒密碼(Caesar Cipher)

這是一種簡單的「位移」密碼。例如,位移值為 3 時,'A' 會變成 'D'。
弱點: 使用頻率分析(frequency analysis)(統計字母出現的頻率)或僅嘗試所有 25 種可能的位移(暴力破解)非常容易破解。

維納姆密碼(Vernam Cipher / One-Time Pad)

維納姆密碼是唯一能提供完美安全性(perfect security)的密碼,前提是必須遵守以下規則:
金鑰必須是真正隨機的。
金鑰長度必須至少與明文一樣長。
金鑰只能使用一次(因此稱為「一次性密碼本」)。

在維納姆密碼中,明文與金鑰會使用互斥或(XOR)邏輯運算進行結合。由於金鑰是隨機的,產生的密文也完全隨機,若沒有金鑰,根本無法破解。

關鍵要點:
凱撒密碼依賴於演算法的隱蔽性(這很容易被猜到),而維納姆密碼則依賴於運算安全性(computational security)金鑰的隨機性