[翻译]H.264 探索 第一部分 色彩模型

H.264 探索 第一部分 色彩模型

原文地址html

目前,我正在作的H.264视频信号解码相关的一些研究工做。因此,我决定个人第一篇献给色彩模型。由于若是咱们抛开一切没必要要的(如今)的信息 - 咱们将看到,解码视频信号将规约为一个问题:如何从比特流中提取出像素颜色?spa

什么是数字信号?就像在数字世界中的一切 - 这是位序列。它能够储存,复制,传播或压缩。code

视频是一组图片,每个图片是由像素组成的。和每个像素具备其本身的色彩和/或亮度,并以数字形式存储此值。让咱们看看,咱们怎么能够存储色彩值。这经过色彩模型(色彩空间)来实现的.什么是色彩模型?它是一个数学模型,经过数字序列来表示色彩。让咱们先从最流行 的一种开始。视频

1.RGB模型

看看下面的图片,这是众所周知的RGB合成模型。htm

色彩模型

任何颜色能够在三个数字来表示。例如(255,0,0)表示红色。很清楚,但不是很实用:咱们须要知道全部三个数字以重建颜色。咱们确定须要更高效的模型,而且存在这种模型。blog

2.YCbCr色彩模型

那么,如何更有效地用数字表明色彩?
假设咱们用luminance代码色彩亮度,那么咱们能够用RGB来表示,图片

Y = krR + kgG + kbB

其中 Y – luminance (luma),
k – 权重 (described in ITU-R BT.601-7 recommendation)get

接下来计算计算色度(色差)表示的色彩信息:数学

Cr = R - Y
Cg = G - Y 
Cb = B - Y

如今咱们能够从ITU-R BT.601-7 recommendation得到权重,跳过一些数学计算,获得如下公式:it

Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B - Y)
Cr = 0.713(R - Y)
R = Y + 1.402Cr
B = Y + 1.772Cb
G = Y - 0.344Cb - 0.714Cr

如今咱们能够用亮度和两个色差来表明任何色彩。
因此,咱们有什么?表明一种颜色在YCbCr模型咱们须要3个数字。表明相同颜色的RGB模型咱们须要…等一下- 3数字。可是为何YCbCr应该更有效率呢?

要回答这个问题,让咱们视频分割成图片,检查其中一张图片。这张照片由像素组成。像这样:

像素

图片由一个像素集合组成:

4:4:4二次抽样

技巧在于:咱们能够不牺牲视觉损失的状况下减小色差值。例如,咱们能够这样表示咱们的图片:

4:2:2二次抽样

一行里的每一个像素都luma(亮度),奇数列有两个色差值.咱们仍然能够在减少数据量的同时得到相同的质量.咱们甚至能够这样作:

4:2:0二次抽样

这一个是真正的低成本二次抽样,而且质量依旧优良.能够没有质量显著损失的状况下大大下降图片的大小。

相关文章
相关标签/搜索