在数位图像处理领域中，**色彩採樣**是指在表示图像时使用较亮度信息低的分辨率来表示色彩（*色度*）信息。当对模拟分量视频或者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*相同。

以下連結中的一幅教學圖片解釋了不同抽樣系統的運作： （页面存档备份，存于） （資料來源："Basics of Video" ）以及 （页面存档备份，存于）由Douglas Kerr所著的"Chrominance Subsampling in Digital Images" （页面存档备份，存于）。

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|  | **4:1:1** |  |       | **4:2:0** |  |       | **4:2:2** |  |       | **4:4:4** |  |       | **4:4:0** |  |
| **Y'CrCb** |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |
|   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |
|  | **=** |  | **=** |  | **=** |  | **=** |  | **=** |  |
| **Y'**  |     |     |     |     |  |     |     |     |     |  |     |     |     |     |  |     |     |     |     |  |     |     |     |     |  |
|   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |   |   |   |   |  |
|  | **+** |  | **+** |  | **+** |  | **+** |  | **+** |  |
|  | 1 | 2 | 3 | 4 |  J = 4 | 1 | 2 | 3 | 4 |  J = 4 | 1 | 2 | 3 | 4 |  J = 4 | 1 | 2 | 3 | 4 |  J = 4 | 1 | 2 | 3 | 4 |  J = 4 |
| **(Cr, Cb)** | **1** |  a = **1** | **1** | **2** |  a = **2** | **1** | **2** |  a = **2** | **1** | **2** | **3** | **4** |  a = **4** | **1** | **2** | **3** | **4** |  a = **4** |
| *1* |  b = *1* |   |   |  b = *0* | *1* | *2* |  b = *2* | *1* | *2* | *3* | *4* |  b = *4* |   |   |   |   |  b = *0* |
|  | ¼水平解析度，全垂直解析度 | ½水平解析度，½垂直解析度 | ½水平解析度，全垂直解析度 | 全水平解析度，全垂直解析度 | 全水平解析度，½垂直解析度 |

以上例图仅给出理论上的示例。以及注意圖中並沒有表明任何色度過濾（防止疊影的措施）。

在計算與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)

```
%此程式範例基於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<ROW)
 cbB(i,:)=(cbB(i+1,:)+cbB(i-1,:))/2; %缺少資料的奇數行利用隔壁之偶數行資料進行插值重建
 crB(i,:)=(crB(i+1,:)+crB(i-1,:))/2;
 elseif (rem(i,2)==1) & (i==ROW)
 cbB(i,:)=cbB(i-1,:); %在末行則與隔壁行一致
 crB(i,:)=crB(i-1,:);
 end
end

for i=1:COL %還原col
 if i==1
 cbB(:,i)=cbB(:,i+1); %在首列則與第二列資料一致
 crB(:,i)=crB(:,i+1);
 elseif (rem(i,2)==1) & (i<COL)
 cbB(:,i)=(cbB(:,i+1)+cbB(:,i-1))/2; %缺少資料的奇數列利用隔壁之偶數列資料進行插值重建
 crB(:,i)=(crB(:,i+1)+crB(:,i-1))/2;
 elseif (rem(i,2)==1) & (i==COL)
 cbB(:,i)=cbB(:,i-1); %在末列則與隔壁列一致
 crB(:,i)=crB(:,i-1);
 end
end

YCCB(:,:,1)=yB; %重建YCbCr格式的pictureB
YCCB(:,:,2)=cbB;
YCCB(:,:,3)=crB;

RB = yB \* 1 + cbB \* -219/236311 + crB \* 331234/236311; % pictureB YCbCr to RGB
GB = yB \* 1 + cbB \* -81219/236311 + crB \* -168766/236311;
BB = yB \* 1 + cbB \* 418781/236311 + crB \* 234/236311;

RGBB(:,:,1)=RB; %重建RGB格式的pictureB
RGBB(:,:,2)=GB;
RGBB(:,:,3)=BB;

image(RGBB/255) % SHOW
imwrite(RGBB/255,'pictureB.jpg') % output

```

參考資料
----

1. ↑  Jennings, Roger; Bertel Schmitt.. DV Central. 1997  [2008-08-29]. （原始内容存档于2008-07-02）.  引文使用过时参数`coauthors` (帮助); 外部链接存在于`|work=` (帮助)
2. ↑  Wilt, Adam J.. adamwilt.com. 2006  [2008-08-29]. （原始内容存档于2021-04-16）.  外部链接存在于`|work=` (帮助)

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

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
方法 |
| --- |
|  |
| 理论 | 
* 熵
* 语法（英语：）
* 信息论
* 柯氏复杂度
* 量化
* 率失真理论
* 

 |
|  |
|  | 

|  |  |
| --- | --- |
| 熵編碼 | 
* 算术编码
* 非对称数字系统编码（英语：）
* 格倫布編碼
* 霍夫曼编码
	+ 适应性
	+ 范型
	+ 改进
* 區間編碼
* 香农编码
* 香农-范诺编码
* 香農-范諾-埃利西斯編碼
* Tunstall编码（英语：）
* 一元编码（英语：）
* 通用編碼（英语：）
	+ 指數格倫布編碼
	+ 斐波那契編碼
	+ 以利亞伽瑪編碼
	+ 萊文斯坦編碼（英语：）

 |
|  |
| 字典編碼（英语：） | 
* 字节对编码
* LZ77 / LZ78
	+ 842（英语：）
	+ Brotli
	+ Deflate
	+ LZ4
	+ LZFSE
	+ LZJB（英语：）
	+ LZMA
	+ LZO
	+ LZRW（英语：）
	+ LZS（英语：）
	+ LZSS
	+ LZW
	+ LZWL（英语：）
	+ LZX
	+ Snappy
	+ Zstandard

 |
|  |
| 其他 | 
* BWT
* CTW（英语：）
* 差分编码
* DMC
* 差分脉冲编码调制
* 无损离散余弦变换
* MTF
* PAQ（英语：）
* PPM（英语：）
* RLE

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 变换编码 | 
* DCT
	+ MDCT
* DST
* FFT
* 小波变换
	+ 多贝西
	+ DWT
	+ SPIHT（英语：）

 |
|  |
| 预测编码 | 
* DPCM
	+ ADPCM（英语：）
* LPC
	+ ACELP（英语：）
	+ CELP
	+ LAR（英语：）
	+ LSP（英语：）
	+ WLPC（英语：）
* 运动
	+ 运动补偿
	+ 运动预测
	+ 运动矢量
* 心理声学

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 概念 | 
* 码率
	+ 平均码率
	+ 恒定码率
	+ 可变码率
* 压扩（英语：）
* 卷积
* 动态范围
* 延迟（英语：）
* 采样
* 采样定理
* 音质
* 语音编码
* 子带编码

 |
|  |
| 编解码组件 | 
* A-law（英语：）
* μ-law（英语：）
* DPCM
	+ ADPCM（英语：）
	+ DM
* FT
	+ FFT
* LPC
	+ ACELP（英语：）
	+ CELP
	+ LAR（英语：）
	+ LSP（英语：）
	+ WLPC（英语：）
	+ CELP
	+ MDCT
* 心理聲學模型

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 概念 | 
* 色度抽样
* 编码树单元
* 色彩空間
* 壓縮失真
* 图像分辨率
* 宏块
* 像素
* 峰值信噪比
* 量化
* 标准测试图像

 |
|  |
| 方法 | 
* DCT
* Deflate
* 分形压缩
* K-L变换
* LP（英语：）
* RLE
* 小波变换
	+ 多贝西
	+ DWT
	+ SPIHT（英语：）

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 概念 | 
* 码率
	+ 平均码率
	+ 恒定码率
	+ 可变码率
* 显示分辨率
* 帧（英语：）
* 帧率
* 帧类型
* 隔行扫描
* 視訊特性
* 視訊質量

 |
|  |
| 编解码组件 | 
* DCT
* DPCM
* 去区块滤波器
* 重叠变换（英语：）
* 运动
	+ 运动补偿
	+ 运动预测
	+ 运动矢量
* 量化

 |

 |
|  |
| 另见压缩格式和数据压缩 |

 |