色度抽樣

在數位圖像處理領域中，**色彩採樣**是指在表示圖像時使用較亮度資訊為低的解析度來表示色彩（_色度_）資訊。當對類比分量影片或者 YUV 訊號進行數字抽樣時，一般會用到色彩採樣。

## 原理

由於儲存及傳送的限制，訊號處理中大多數會偏向被減少（或被壓縮）以減低負荷。由於人眼對色度的敏感度不及對亮度的敏感度，圖像的色度分量不需要有和亮度分量相同的解析度，所以許多視訊系統在色差通道上進行較低（相對亮度通道）解析度（例如，抽樣頻率）的抽樣。這樣在不明顯降低畫面品質的同時降低了影像訊號的總頻寬。因抽樣而丟失的色度值用內插值，或者前一色度值來替代。在壓縮影像中，以 4:2:2 Y'CbCr 作例，它只需 R'G'B'（4:4:4）三分之二的頻寬。頻寬的減少在肉眼上幾乎沒有影像上差別。

## 色彩採樣的用法

由於人類的視覺系統對顏色的位置及移動不及對亮度敏感，頻寬上可以以儲存較多的亮度細節、較少的色度細節作優化。在一般影像觀看距離時，色度細節在較低的取樣率下仍不引起可察覺的損失。於影片系統中，可以以不同顏色分部的取樣而達成以上結果。影片訊號可分別為一個亮度分量（Y'）及兩個不同顏色分量（色度）。

色彩採樣是顏色科學的分支，在顏色科學亮度及色度分量是以一個伽瑪校正（三重刺激）的 R'G'B' 分量的加權總和形成，代替線性（三重刺激）的 R'G'B' 分量。因此，明度及顏色細節並非完全互相獨立。在亮度及色度分量之間會存在著一些明度及顏色資訊的「溢位」（"Bleeding"）現象（如下圖所示）。此誤差尤其於高飽和的顏色情況下出現，其現象在彩條測試圖（經色彩採樣）中洋紅色及綠色之間會輕微顯著。在工程學的概算下（即是將「伽瑪校正」及「組成加權總和」兩個步驟逆向進行），使色彩採樣方式更容易實行。

 
原圖，未經色彩採樣，200% 放大。

 
經色彩採樣的圖像（以 Sony Vegas DV 編碼器壓縮，套用 Box 濾鏡）

## 抽樣系統及比例

影片系統的抽樣系統中通常用一個三分比值表示：_J:a:b_（例如 4:2:2），形容一個以 J 個像素寬及兩個像素高的概念上區域，有時候會以四分比值表示（例如 4:2:2:4）。依序列出為：

* _J_：水平抽樣參照（概念上區域的寬度）。通常為 4。
* _a_：在 _J_ 個像素第一行中的色度抽樣數目（Cr, Cb）。
* _b_：在 _J_ 個像素第二行中的額外色度抽樣數目（Cr, Cb）。
* _Alpha_：水平因數（與首數值有關連）。若沒有此部分者可忽略，或存在時與 _J_ 相同。

以下連結中的一幅教學圖片解釋了不同抽樣系統的運作：http://lea.hamradio.si/~s51kq/subsample.gif （頁面存檔備份，存於網際網路檔案館） （資料來源："Basics of Video" ）以及 （頁面存檔備份，存於網際網路檔案館）由 Douglas Kerr 所著的 "Chrominance Subsampling in Digital Images" （頁面存檔備份，存於網際網路檔案館）。

以上例圖僅給出理論上的範例。以及注意圖中並沒有表明任何色度過濾（防止疊影的措施）。

在計算與 4:4:4 抽樣（或 4:4:4:4）有關的頻寬係數時，把各係數加總再除以 12（當有 Alpha 時除以 16）。

在比較圖像品質時，這三個值之間的比值才是重要的，所以 4:4:4 可以簡化為 1:1:1；但是習慣上亮度樣本的數量值總為 4，其他兩個值依此類推。

有時抽樣率為四分比值，如 4:2:2:4。這時第四個值是調製通道的抽樣頻率比值。事實上，因為在調製應用中非常需要高品質圖像，所以這個值在任何情況下都為 4。

## 各種抽樣系統介紹

### 4:4:4 Y'CbCr

每三個 Y'CbCr 分量都有相同抽樣率。此系統有時候用作高階底片掃瞄器及電影後期製作中。通常會以兩條 SDI 通道連線來承載 4:4:4 頻寬訊號：通道 A 會盛載 4:2:2 的訊號，通道 B 則會承載 0:2:2 的訊號，合併成 4:4:4 訊號。

### 4:4:4 R'G'B'（沒有抽樣）

需要注意的是，有時候 "4:4:4" 也表示在 RGB 色度空間中，全部沒有作任何色度抽樣。如 HDCAM SR 等格式可以以雙通道 HD-SDI 記錄 4:4:4 R'G'B' 訊號。

### 4:2:2

每個色差通道的抽樣率是亮度通道的一半，即水平色差解析度分半。這樣從無壓縮影片中可減少了三分之一的頻寬，當中的視覺差別僅僅少量甚至不存在。

大多數高端數位影片格式採用這一比率，如：

* AVC-Intra 100
* Digital Betacam
* DVCPRO50 及 DVCPRO HD
* Digital-S
* CCIR 601 / 串列數位介面 / D1
* ProRes（HQ, 422, LT, and Proxy）
* XDCAM HD422
* Canon MXF HD422

### 4:2:1

雖然此系統己在技術上定義存在，但只有非常少的軟、硬體編解碼器使用。Cb 水平解析度為 Cr 的兩倍，以及亮度解析度的四分之一。這樣為證明了人的肉眼對於藍色和黃色的空間上敏感度，比紅色和綠色的弱。NTSC 系統相似以上演算法，將藍色和黃色的解析度減弱，令其解析度比亮度為低。

### 4:1:1

4:1:1 色彩取樣中，水平色度解析度為四分之一，為全頻寬的一半。起初 DV 格式的 4:1:1 色彩取樣不被考慮用作廣播級用途，被低階及家用產品應用。當代的 DV 格式（一些包括 4:1:1 色度抽樣）都被用作如電子新聞採訪等專業級用途。DV 格式偶爾被用作數位電影攝影。

NTSC 系統中，若亮度以 13.5 MHz 取樣，表示 Cr 及 Cb 的訊號都以 3.375 MHz 取樣，符合最高 1.6875 MHz 的奈奎斯特頻寬。而傳統「高端廣播級 NTSC 類比訊號編碼器」，在 I/Q 波段中只有分別 1.5 MHz 及 0.5 MHz 的奈奎斯特頻寬。不過在大部分器材中，尤其是廉價電視機及 VHS/Betamax 錄影機中，色度波段只有 0.5 MHz 的頻寬給 Cr 及 Cb 分量使用。所以儘管和全頻寬數位訊號比較，僅有四分之一的色度頻寬，其實 DV 系統提供了比高階 NTSC 色差類比規格更優質的色彩頻寬。

使用 4:1:1 色彩取樣的格式包括：

* DVCPRO
* NTSC DV 及 DVCAM
* D-7

### 4:2:0

4:2:0 又稱 **I420**。I420 是 YUV 格式的一種，屬於 planar format。4:2:0 並不意味著只有 Y,Cb 而沒有 Cr 分量。它指的是對每行掃描線來說，只有一種色度分量以 2:1 的抽樣率儲存。相鄰的掃描行儲存不同的色度分量，也就是說，如果一行是 4:2:0 的話，下一行就是 4:0:2，再下一行是 4:2:0... 以此類推。對每個色度分量來說，水平方向和豎直方向的抽樣率都是 2:1，所以可以說色度的抽樣率是 4:1。PAL 格式和 SECAM 格式的色彩系統特別適合於用這種方式來儲存。絕大多數影片編解碼器都採用這種格式作為標準的輸入格式。對非壓縮的 8 位元量化的影片來說，每個由 2x2 個 2 行 2 列相鄰的像素組成的宏像素需要占用 6 位元組記憶體。

**對映：**

碼流

```
Yo0 Uo0 Yo1 Yo2 Uo2 Yo3  

Ye0 Ve0 Ye1 Ye2 Ve2 Ye3
```

將被對映為下面的兩行各四個像素：

```
[Yo0 Uo0 Ve0] [Yo1 Uo0 Ve0] [Yo2 Uo2 Ve2] [Yo3 Uo2 Ve2]  

[Ye0 Uo0 Ve0] [Ye1 Uo0 Ve0] [Ye2 Uo2 Ve2] [Ye3 Uo2 Ve2]
```

使用這種方法的品質很接近於 4:1:1, 通常應用於下面的格式：

* 所有版本的 MPEG，包括如 DVD 等 MPEG-2 成品（雖然有些 MPEG-4 profile 容許如 4:4:4 的更高品質採樣）
* PAL DV 及 DVCAM
* HDV
* AVCHD
* 最常見的 JPEG/JFIF、H.261，及 MJPEG 成品
* VC-1

### 4:1:0

這種格式雖然是存在的（也確實有些編解碼器支援這種格式），但是並沒有得到廣泛的應用，因為它在色度方面的解析度比傳統的 VHS 錄影帶還要差。這種方法對水平方向進行 4:1 的色彩採樣，對豎直方向進行 2:1 的色彩採樣。比起 4:4:4，它的色度資料量僅僅是 1/8 大小。對非壓縮的 8 位元量化的影片來說，每個由 4x2 個 2 行 4 列相鄰的像素組成的宏像素需要占用 10 位元組記憶體。

**對映：**

碼流

```
Yo0 Uo0 Yo1 Yo2 Yo3  

Ye0 Ve0 Ye1 Ye2 Ye3
```

將被對映為下面的兩行各四個像素：

```
[Yo0 Uo0 Ve0] [Yo1 Uo0 Ve0] [Yo2 Uo0 Ve0] [Yo3 Uo0 Ve0]  

[Ye0 Uo0 Ve0] [Ye1 Uo0 Ve0] [Ye2 Uo0 Ve0] [Ye3 Uo0 Ve0]
```

## 色彩抽樣實例

### 4:2:0 抽樣及還原實例

* 注意 4:2:0 色彩抽樣為失真壓縮 (lossy compression)，無可避免地會損失一些資料，導致重建時有些許失真。

 

* 對 RGB 圖像做抽樣 (壓縮)
  * 基本思路 (pseudo code)
    1. 輸入 (input) 一張 RGB 圖片。
    2. 將其轉成 Y-Cb-Cr 之格式。
      * Y = 0.299\*R + 0.587\*G + 0.114\*B
      * Cb = -0.169\*R + -0.331\*G + 0.500\*B
      * Cr = 0.500\*R + -0.419\*G + -0.081\*B
    3. 對 Cb 和 Cr 做抽樣動作，(2+0)/(4+4)=0.25，即只留下四分之一的資料量。可以考慮只留下偶數行列或奇數行列之資料。
    4. Y 分量則保持不變，如此便完成抽樣。
* 將抽樣之資料還原
  * 基本思路 (pseudo code)
    1. 輸入經過 4:2:0 抽樣之 YCbCr 資料。
    2. 使用插值法 (interpolation) 來重建 Cb 和 Cr 的資料。
    3. 將 YCbCr 資料重新轉換回 RGB。
      * R = 1.000\*Y + (-219/236311)\*Cb+ (331234/236311)\*Cr
      * G = 1.000\*Y + (-81219/236311)\*Cb+ (-168766/236311)\*Cr
      * B = 1.000\*Y + (418781/236311)\*Cb+ (234/236311)\*Cr
    4. 如此便完成 4:2:0 之重建，可輸出 (output) 圖像確認。

 

* 程式實例 (matlab)

## 參考資料

Jian-Jiun Ding, Advanced Digital Signal Processing class note, the Department of Electrical Engineering, National Taiwan University (NTU), Taipei, Taiwan, 2020.

## 參見

* 色彩空間
* SMPTE - Society of Motion Picture and Television Engineers
* Digital video
* HDTV
* YCbCr
* YPbPr
* CCIR 601 4:2:2 SDTV
* YUV
* Color
* color vision
  * Rod cell
  * cone cells