本文均为原文截取片段。文中我在原文作者的内容上再补充一些正文,对重点也会以红色字体标记进去。

版权申明:本文为CSDN博主「~HardBoy~」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
原文链接:https://blog.csdn.net/fanzong...

四,视频编码

4.1,色彩空间
YCbCr色调空间和它的变形(有时被称为YUV)是最罕用的无效的示意彩色图像的办法。Y是图像的亮度(luminance/luma)重量,应用以下公式计算,为R,G,B重量的加权平均值:

        Y = kr R + kgG + kbB

        其中k是权重因数。

其中每个色差重量为R,G,B值和亮度Y的差值:

 Cb = B -Y(正文:蓝色的色差)

 Cr  = R -Y

    Cg = G- Y

其中,Cb+Cr+Cg是一个常数(其实是一个对于Y的表达式),所以,只须要其中两个数值联合Y值就可能计算出原来的RGB值。所以,咱们仅保留亮度和蓝色、红色的色差值,这就是(Y,Cb,Cr)。

相比RGB色调空间,YCbCr色调空间有一个显著的长处。Y的存储能够采纳和原来画面一样的分辨率,然而Cb,Cr的存储能够应用更低的分辨率。

在RGB格局中,对于宽度为w,高度为h的画面,须要wh3个字节(正文:一个像素用1个字节)来存储其每个像素的rgb信息,画面的像素数据是间断排列的.

在YUV格局中,以YUV420格局为例。宽度为w高度为h的画面,其亮度Y数据须要wh个字节来示意(每个像素点一个亮度)。而Cb和Cr数据则是画面中4个像素共享一个Cb,Cr值。这样Cb用wh/4个字节,Cr用w*h/4个字节。

YUV的长处:

1、YUV表示法的重要性是它的亮度信号(Y)和色度信号(U、V)是互相独立的 。

2、YUV表示法的另一个长处是能够利用人眼的个性来升高数字彩色图像所须要的存储容量。
————————————————
版权申明:本文为CSDN博主「~HardBoy~」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
原文链接:https://blog.csdn.net/fanzong...

版权申明:本文为CSDN博主「异界工程师」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
原文链接:https://blog.csdn.net/huayu_h...

4.yuv采样

yuv的采样是uv的采样率比y低,但又不会升高视觉品质,因为人眼对于亮度会敏感度较高,对于黑白信息的敏感度较低,色度信号并不是用全分辨率存储的,所以没必要全采样。

目前有YUV444,YUV422,YUV420,YUV411等采样形式。

YUV444:示意每4点Y采样(正文:我了解采样就是对一帧画面的像素做采样),就有4点Cb和4点Cr,每个象素都有与之对应的色度和亮度采样信息;

YUV422:示意每4点Y采样,就有2点Cb和2点Cr,当4:2:2信号被解码的时候,“缺失”的色度采样,通常由肯定的内插补点算法通过它两侧的色度信息运算补充;

YUV420:依照字面上了解,4:2:0应该是每4点Y采样,就有2点Cb和0点Cr,但事实上齐全不是 这样。事实上,4:2:0的意思是,色度采样在每条横向扫描线上只有亮度采样的一半,扫描线的条数上,也只有亮度的一半!换句话说,无论是横向还是纵向, 色度信号的分辨率都只有亮度信号的一半。举个例子,如果整张画面的尺寸是720480,那么亮度信号是720480,色度信号只有360*240。在 4:2:0中,“缺失”的色度采样不单单要由左右相邻的采样通过内插补点计算补充,整行的色度采样也要通过它高低两行的色度采样通过内插补点运算取得

YUV411:示意每4点Y采样,就有1点Cb和1点Cr,但不是支流的采样形式,这里吉祥解;
————————————————
版权申明:本文为CSDN博主「异界工程师」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
原文链接:https://blog.csdn.net/huayu_h...

版权申明:本文为CSDN博主「刘长福」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
原文链接:https://blog.csdn.net/u012618...

4:4:4
示意色度没有下采样, 每一个Y对应一组UV重量 即每一个像素都有 y u v 重量, 没有下采样, 跟rgb一样,用的较少。

 如图, 圆圈为uv重量,叉为y重量, 它们的对应关系为一对一, 这图好多博客里有, 源自微软对yuv的官网阐明, 我看这图也蒙了良久, 这是怎么存的呢, 想了良久这图跟存储没有任何关系,就是代表对应关系,如何存储就是看FOURCC和packed、planar。
4:2:2
示意2:1的程度下采样,没有竖直下采样。每条扫描线蕴含4个y对应2个u或者v。即每两个Y共用一组UV重量

4:2:0
示意2:1的程度下采样, 2:1的竖直下采样,每四个Y共用一组UV重量, 这4个y不是一条线上的4个是一个正方形的4个,
它有两种对应关系, 一种是mpeg1 一种是mpeg2

上图为mpeg1规定的对应形式

上图为mpeg2规定的对应形式
————————————————
版权申明:本文为CSDN博主「刘长福」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
原文链接:https://blog.csdn.net/u012618...

正文:

视频原文件每一帧每一个像素其实就用色彩,而且就是由RGB三种色彩的混合。因为人眼对亮度比拟敏感,对色度并不是那么敏感,因而能够对RGB做编码,计算出亮度Y,而后色度只需计算杰出差就行,反正未来解码时能够依据色差还原出原色。把RGB换算成YUV后,每一帧画面的大小就大大减小了。

对于YUV4:2:0而言,转换为YUV格局时,一帧的所有像素点都要采样亮度,而且是每采样4个像素点,这4个像素点是2 X 2的正方形,也就是程度上采样2个像素点,垂直上采样2个像素点,U和V采样个数是程度和垂直上的Y的一半,这么一算在这个正方形中就只有一个U重量和一个V重量。