歡迎來到數據表示法:文字、聲音與圖像!

各位 IGCSE 的同學大家好!這一章非常精彩,因為它解答了一個根本性的問題:電腦只認識 0 和 1,究竟是怎麼儲存你最愛的歌曲、文字訊息和高解析度照片的呢?

電腦處理的所有內容——無論是文字、音符,還是深藍色——都必須先轉換為二進制(binary)。我們將探討處理文字、聲音和圖像的具體方法,並了解這些檔案為什麼會變大,以及為什麼我們需要將它們壓縮!


1. 文字表示法(字元集)

1.1 為什麼文字需要轉換為二進制

當你在鍵盤上輸入字母 'A' 時,電腦看到的不是一個形狀,而是一串 0 和 1 的序列。字元集(character set)本質上是一個預定義的列表,將每個字母、數字和符號映射到唯一的二進制代碼。可以把它想像成一本電腦使用的密碼本或字母表。

1.2 字元集標準:ASCII 與 Unicode

你需要了解兩種主要的標準:

(i) ASCII(美國資訊交換標準代碼)
  • 所需位元:最初為 7 位元,後來擴展為 8 位元。
  • 最大字元數:使用 8 位元,可以表示 \(2^8 = 256\) 個不同的字元。
  • 用途:這足以涵蓋英文字母(大小寫)、數字(0-9)和常用符號(如 @, %, $)。
(ii) Unicode
  • ASCII 的問題:256 個字元不足以表示世界上所有的語言(例如中文、阿拉伯文,甚至是表情符號)。
  • 解決方案:開發了 Unicode 來解決這個問題。它為每個字元使用了更多的位元(通常是 16 或 32 位元)。
  • 範圍更廣:由於它使用更多位元,Unicode 可以表示更廣泛的字元和符號,幾乎包括了所有書寫語言和現代表情符號。
  • 取捨:缺點是 Unicode 檔案比 ASCII 檔案佔用更多儲存空間,因為每個字元都需要更多的位元來儲存。
快速複習:文字

位元越多 = 可用字元越多(如 Unicode) = 檔案容量越大。


2. 聲音表示法

2.1 將類比聲音轉換為數位訊號

現實世界中的聲音是類比(analogue)的,它是一道連續的波。然而,電腦只懂數位數據(0 和 1)。為了儲存聲音,我們必須將連續的類比波轉換為離散的數位測量值。這個過程稱為採樣(sampling)

採樣流程步驟:
  1. 以固定的時間間隔測量類比聲波。
  2. 記錄每個間隔處波的高度(振幅)。
  3. 將這些測量值轉換為二進制數值
  4. 電腦處理並儲存這些二進制數據。

2.2 影響聲音品質與檔案大小的關鍵因素

兩個因素決定了數位錄音的準確度(品質)和檔案大小:

(i) 採樣率(頻率)
  • 定義:每秒採樣的次數。單位為赫茲 (Hz) 或千赫茲 (kHz)。
  • 類比:想像拍攝快速移動物體的照片。你拍照的速度越快(採樣率越高),捕捉到的運動細節就越豐富。
  • 影響:較高的採樣率代表數位錄音與原始類比聲音越接近,這會帶來更高的品質更大的檔案大小
(ii) 採樣解析度(位元深度)
  • 定義:用於儲存每個採樣數值的位元數量
  • 類比:這就像你能記錄多少級別的音量(0 到 100,或 0 到 65,535)。
  • 影響:較高的採樣解析度(每個採樣有更多位元)可以對聲音振幅進行更精細、更準確的測量,帶來更高的品質更大的檔案大小
記住這一點:

要提高聲音品質,必須同時增加採樣率和採樣解析度。這兩個動作都會增加檔案大小。


3. 圖像表示法

3.1 像素與二進制轉換

數位圖像(如 JPEG 或 PNG)由數百萬個稱為像素(pixels)的小方塊組成(Picture Elements 的縮寫)。

每個像素都包含一個顏色值。儲存圖像時,電腦會將每個像素的顏色值轉換為二進制

3.2 影響圖像品質與檔案大小的關鍵因素

兩個主要因素決定了圖像的品質和儲存需求:

(i) 解析度(Resolution)
  • 定義:圖像中的像素數量(通常表示為 寬 x 高)。
  • 範例:螢幕解析度 1920 x 1080 代表水平有 1920 個像素,垂直有 1080 個像素。
  • 影響:更高的解析度意味著使用更多的像素來捕捉細節,導致更高的品質更大的檔案大小
(ii) 色彩深度(位元深度)
  • 定義:用於表示每個獨立像素顏色的位元數量
  • 類比:如果你的色彩深度是 1 bit,你只能有 2 種顏色(\(2^1\))——通常是黑與白。如果色彩深度是 24 bits,你可以擁有超過 1600 萬種顏色(\(2^{24}\))。
  • 影響:更高的色彩深度意味著圖像可以顯示更豐富的顏色範圍,導致更高的品質更大的檔案大小

4. 數據儲存與檔案大小計算

4.1 數據儲存計量單位 (1.3.1)

在計算檔案大小時,必須了解標準單位及其正確的轉換因子(KiB、MiB 等使用的是 1024,而不是 1000)。

  • 位元 (bit):單個二進制數字(0 或 1)。
  • 半位元組 (nibble):4 位元。
  • 位元組 (byte):8 位元。
  • 千位元組 (Kibibyte, KiB):1024 位元組。
  • 百萬位元組 (Mebibyte, MiB):1024 KiB。
  • 吉比位元組 (Gibibyte, GiB):1024 MiB。
  • 太比位元組 (Tebibyte, TiB):1024 GiB。
學習小撇步:轉換技巧

從位元 (bits) 轉換為位元組 (Bytes),請除以 8

從位元組轉換為 KiB、MiB、GiB 等,每升一級都要除以 1024

4.2 計算圖像檔案大小 (1.3.2)

檔案總大小(以位元為單位)是透過將總像素數乘以色彩深度計算得出。

圖像檔案大小公式:
\[File\ Size\ (bits) = Resolution\ (Width \times Height)\ \times\ Colour\ Depth\ (bits\ per\ pixel)\]

(通俗來說:檔案大小 = 總像素數量 × 每個像素的位元數)

分步範例:

一張圖像解析度為 100 x 50 像素,色彩深度為 8 bits。

  1. 計算總像素: \(100 \times 50 = 5000\) 像素。
  2. 計算總位元: \(5000 \times 8 = 40000\) 位元。
  3. 轉換為位元組: \(40000 \div 8 = 5000\) 位元組。
  4. 轉換為 KiB: \(5000 \div 1024 \approx 4.88\) KiB。

4.3 計算聲音檔案大小 (1.3.2)

錄音檔案的大小取決於採樣率、採樣解析度和聲音持續時間(音軌長度)。

聲音檔案大小公式:
\[File\ Size\ (bits) = Sample\ Rate\ \times\ Sample\ Resolution\ \times\ Length\ of\ Track\ (seconds)\]

(通俗來說:檔案大小 = 每秒採樣數 × 每個採樣的位元數 × 秒數)

分步範例:

一段 10 秒的聲音片段,採樣率為 44,100 Hz,採樣解析度為 16 bits。

  1. 計算總位元: \(44100 \times 16 \times 10 = 7,056,000\) 位元。
  2. 轉換為位元組: \(7056000 \div 8 = 882,000\) 位元組。

5. 數據壓縮

5.1 壓縮的目的與需求 (1.3.3)

數據壓縮是減少檔案大小的過程。我們為什麼需要它?

  • 減少頻寬需求:較小的檔案代表數據能在網路(如網際網路)上傳輸得更快。
  • 減少儲存空間需求:你可以在硬碟、SSD 或隨身碟中放入更多檔案。
  • 縮短傳輸時間:下載和上傳速度更快。

5.2 壓縮類型:失真壓縮 vs. 無失真壓縮 (1.3.4)

(i) 失真壓縮 (Lossy Compression)
  • 定義:失真壓縮會永久刪除檔案中的數據以減少大小。刪除的數據通常是人類不太容易察覺的資訊(例如極高頻的音訊或細微的顏色差異)。
  • 影響:它能實現最大的檔案壓縮率,但無法將檔案還原到原始品質。
  • 範例:
    • 降低圖像的色彩深度解析度
    • 降低聲音檔案的採樣率解析度
    • 常見檔案格式: JPEG (圖像)、MP3 (音訊)、MPEG (視訊)。
(ii) 無失真壓縮 (Lossless Compression)
  • 定義:無失真壓縮透過識別並移除數據中的冗餘(重複模式)來縮小檔案大小,且不會永久丟失任何資訊
  • 影響:原始數據可以從壓縮後的檔案中完美重現。檔案大小的縮減程度不如失真壓縮那麼顯著。
  • 技術範例:遊程編碼 (Run Length Encoding, RLE)。RLE 對於具有大面積相同顏色的圖像(如卡通或旗幟)效果極佳。它不會儲存「白、白、白、白、黑、黑」,而是儲存為「(4 個白), (2 個黑)」。
  • 範例:如果一個圖像檔案包含連續 100 個白色像素,RLE 會將其儲存為顏色(白)和計數(100)。
關鍵總結:壓縮

LossLess (無失真) = 尋找模式 (Look for patterns),數據不會永久丟失 (Loss is not permanent)(例如 ZIP 檔案)。

LossY (失真) = 數據永遠消失了 (例如 MP3)。