色度抽樣

在數點陣圖像處理領域中，色彩取樣是指在表示影像時使用較亮度資訊低的解析度來表示色彩（色度）資訊。當對模擬分量影片或者 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.1 4:4:4 Y'CbCr

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

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

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

4.3 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.4 4:2:1

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

4.5 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.6 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.7 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

色彩抽樣例項

5.1 4:2:0 抽樣及還原例項

注意 4:2:0 色彩抽樣為失真壓縮 (lossy compression)，無可避免地會損失一些資料，導致重建時有些許失真。
對 RGB 影像做抽樣 (壓縮)
基本思路 (pseudo code)
# 輸入 (input) 一張 RGB 圖片。
# 將其轉成 Y-Cb-Cr 之格式。
# Y = 0.299R + 0.587G + 0.114B
# Cb = -0.169R + -0.331G + 0.500B
# Cr = 0.500R + -0.419G + -0.081B
# 對 Cb 和 Cr 做抽樣動作，(2+0)/(4+4)=0.25，即只留下四分之一的資料量。可以考慮只留下偶數行列或奇數行列之資料。
# Y 分量則保持不變，如此便完成抽樣。
將抽樣之資料還原
基本思路 (pseudo code)
# 輸入經過 4:2:0 抽樣之 YCbCr 資料。
# 使用插值法 (interpolation) 來重建 Cb 和 Cr 的資料。
# 將 YCbCr 資料重新轉換回 RGB。
# R = 1.000Y + (-219/236311)Cb+ (331234/236311)Cr
# G = 1.000Y + (-81219/236311)Cb+ (-168766/236311)Cr
# B = 1.000Y + (418781/236311)Cb+ (234/236311)Cr
# 如此便完成 4:2:0 之重建，可輸出 (output) 影像確認。
程式例項 (matlab)

% 此程式範例基於 matlab 語言編寫

% 目的是將原影像 (pictureA) 做 4:2:0 之色彩取樣

% 再將取樣過後的資料做重建並輸出 (pictureB)

clear all

picA=double (imread ('pictureA.jpg')); % input pictureA, 轉成 double 格式

ROW,COL,DIM = size (picA); % 提取 SIZE

yA = picA (:,:,1) 0.299 + picA (:,:,2) 0.587 + picA (:,:,3) * 0.114; % pictureA RGB to YCbCr

cbA = picA (:,:,1) -0.169 + picA (:,:,2) -0.331 + picA (:,:,3) * 0.500;

crA = picA (:,:,1) 0.500 + picA (:,:,2) -0.419 + picA (:,:,3) *-0.081;

yC = yA;

cbC = cbA;

crC = crA;

for i=1:ceil (ROW/2) % 4:2:0 compress, cb cr 只取偶數行列

cbC (i,:)=;

crC (i,:)=;

end

for i=1:ceil (COL/2)

cbC (:,i)=;

crC (:,i)=;

end

% 完成 4:2:0 抽樣

% 重建並輸出成 pictureB

yB = zeros (ROW,COL);

cbB = zeros (ROW,COL);

crB = zeros (ROW,COL);

yB = yC;

for i=1:ROW

for j=1:COL

if rem (i,2)==0

if rem (j,2)==0

cbB (i,j)=cbC (i/2,j/2);

crB (i,j)=crC (i/2,j/2);

end

end

end

end

for i=1:ROW % 還原 row

if i==1

cbB (i,:)=cbB (i+1,:); % 在首行則與第二行資料一致

crB (i,:)=crB (i+1,:);

elseif (rem (i,2)==1) & (i