对一种颜色进行编码的方法统称为"颜色空间"或"色域",RGB和YUV,都是颜色空间的种类,

Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠

分量视频信号(色差信号),通常采用YCbCr和YPbPr两种标识,

YUV(YCbCr)是525i/625i(480i/576i)隔行分量输入接口

YPbPr是从480i到720p的分量输入接口标准(不区分隔行和逐行),隔行分量端子和逐行分量端子共用,端子标识为YPbPr,无论隔行还是逐行分量信号都从这个端口输入。

Y'PbPr是为了满足高质量视频传输而设计的色彩分量形式及接口形式,采用并行传输的方式。PbPr也是由B'-Y'及R'-Y'经过限幅得到的,目前,这种接口多见于模拟分量录像机、高清摄录一体机及DVD播放机等。模拟分量传输绕过了PAL编码与解码,减轻了亮/色串扰等编解码对图像的损失,但传输距离受到限制。

Y'CbCr是数字电视标准化时,为了兼容亮度、色差这种色彩编码方式而采用的一种类似于Y'PbPr的分量形式。

YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。与RGB视频信号传输相比,它最大的优点在于只需占用极少的带宽(RGB要求三个独立的视频信号同时传输)。

其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;

而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

“亮度”是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面—色调与饱和度,分别用Cr和CB来表示。其中,Cr反映了GB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异; YUV经常有另外的名字,YCbCr ,其中Y与YUV 中的Y含义一致,Cb , Cr同样都指色彩,,只是在表示方法上不同而已,Cb Cr 就是本来理论上的“分量/色差”的标识。C代表分量(是component的缩写)Cr、Cb分别对应r(红)、b(蓝)分量信号,Y除了g(绿)分量信号,还叠加了亮度信号。

以下是标准公式

RGB转换成YUV

Y      = (0.257 * R) + (0.504 * G) + (0.098 * B) +16

Cr    = V =(0.439 * R) -  (0.368 * G) - (0.071 * B) +128

Cb   = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128

YUV转换成RGB

B =1.164(Y - 16) + 2.018(U - 128)

G =1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)

R =1.164(Y - 16) + 1.596(V - 128)

RGB取值范围均为0~255,Y=0~255,U=-122~+122,V=-157~+157

以下是经过简化的公式,运算量比上述公式要小一些。

RGB转YUV

Y =0.299R + 0.587G + 0.114B

U'=(BY)*0.565

V'=(RY)*0.713

YUV转RGB

R = Y+ 1.403V'

G = Y- 0.344U' - 0.714V'

B = Y+ 1.770U'

YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0;

用三个图来直观地表示采集的方式吧,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。

先记住下面这段话,以后提取每个像素的YUV分量会用到。

YUV4:4:4采样,每一个Y对应一组UV分量

YUV4:2:2采样,每两个Y共用一组UV分量

YUV4:2:0采样,每四个Y共用一组UV分量

4:4:4表示色度值(UV)没有减少采样。即Y,U,V各占一个字节,加上Alpha通道一个字节,总共占4字节.这个格式其实就是24bpp的RGB格式了。

4:2:2表示UV分量采样减半,比如第一个像素采样Y,U,第二个像素采样Y,V,依次类推,这样每个点占用2个字节.二个像素组成一个宏像素.

4:2:0这种采样并不意味着只有Y,Cb而没有Cr分量,这里的0说的U,V分量隔行才采样一次。比如第一行采样4:2:0 ,第二行采样4:0:2 ,依次类推...在这种采样方式下,每一个像素占用16bits或10bits空间.

4:1:1可以参考4:2:2分量,是进一步压缩,每隔四个点才采一次U和V分量。一般是第0点采Y,U,第1点采Y,第3点采YV,第四点采Y,依次类推。

下面我用图的形式给出常见的YUV码流的存储方式,并在存储方式后面附有取样每个像素点的YUV数据的方法,其中,Cb、Cr的含义等同于U、V。

YUYV格式

YUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr,分析,对于像素点Y'00、Y'01 而言,其Cb、Cr的值均为 Cb00、Cr00,其他的像素点的YUV取值依次类推。

UYVY格式

UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不同的是UV的排列顺序不一样而已,还原其每个像素点的YUV值的方法与上面一样。

YUV422P格式

YUV422P也属于YUV422的一种,它是一种Plane模式,即打包模式,并不是将YUV数据交错存储,而是先存放所有的Y分量,然后存储所有的U(Cb)分量,最后存储所有的V(Cr)分量,如上图所示。其每一个像素点的YUV值提取方法也是遵循YUV422格式的最基本提取方法,即两个Y共用一个UV。比如,对于像素点Y'00、Y'01而言,其Cb、Cr的值均为Cb00、Cr00。

YV12,YU12

格式

YU12和YV12属于YUV420格式,也是一种Plane模式,将Y、U、V分量分别打包,依次存储。其每一个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y分量共用一组UV。注意,上图中,Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00,其他依次类推。

NV12,NV21格式

NV12和NV21属于YUV420格式,是一种two-plane模式,即Y和UV分为两个Plane,但是UV(CbCr)为交错存储,而不是分为三个plane。其提取方式与上一种类似,即Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00

I420格式

I420就是YUV420P格式;存储方式参考YUV422P;

一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的size=width×heigth×4,如果是I420(即YUV标准格式4:2:0)的数据量是 size=width×heigth×1.5 Bit。

在采集到RGB24数据后,需要对这个格式的数据进行第一次压缩。即将图像的颜色空间由RGB2YUV。因为,X264在进行编码的时候需要标准的YUV(4:2:0)。但是这里需要注意的是,虽然YV12也是(4:2:0),但是YV12和I420的却是不同的,在存储空间上面有些区别。如下:

YV12:亮度(行×列)+U(行×列/4) +V(行×列/4)

I420:亮度(行×列)+V(行×列/4) +U(行×列/4)

可以看出,YV12和I420基本上是一样的,就是UV的顺序不同。

YUV420 planar数据,以720×488大小图象YUV420 planar为例,其存储格式是:共大小为(720×480×3>>1)字节,

分为三个部分:Y,U和V

Y分量:    (720×480)个字节

U(Cb)分量:(720×480>>2)个字节

V(Cr)分量:(720×480>>2)个字节

三个部分内部均是行优先存储,三个部分之间是Y,U,V 顺序存储。即YUV数据的

0 - 720×480字节是Y分量值,

720×480 - 720×480×5/4字节是U分量

720×480×5/4 - 720×480×3/2字节是V分量。

4:2:2和4:2:0转换:

最简单的方式:

YUV4:2:2 --->YUV4:2:0  Y不变,将U和V信号值在行(垂直方向)在进行一次隔行抽样。 YUV4:2:0 --->YUV4:2:2  Y不变,将U和V信号值的每一行分别拷贝一份形成连续两行数据。

ycrcb各分量含义_YCrCb与YPrPb的含义与区别相关推荐

  1. python玫瑰花数量的含义_玫瑰花数量的含义?玫瑰花个数的含义?

    鲜花有万紫千红,唯独玫瑰被公认为爱情的象征.她高贵清新,娇艳不失典雅,不同颜色,乃至不同的数量都有着不同的感情寓意.玫瑰花数量的含义?玫瑰花个数的含义? 时下,比较常见且受欢迎的是11朵.19朵.29 ...

  2. YCrCb与YPrPb的含义与区别

    对一种颜色进行编码的方法统称为"颜色空间"或"色域",RGB和YUV,都是颜色空间的种类, Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YU ...

  3. mysql explain中的type列含义和extra列的含义

    很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是"访问类型" ...

  4. 机器学习recall含义_机器学习的业务含义

    机器学习recall含义 by Drew Breunig 通过德鲁·布鲁尼格 机器学习的业务含义 (The Business Implications of Machine Learning) 这与它 ...

  5. 配置win2003 server IIS的总结,为什么IIs的工作进程会在空闲时间释放的问题。同时学会了throw的真正含义,throw的真正含义就是导致程序停止,崩溃,很简单,网摘也有记录。...

    项目背景:242后期,别人写的代码出现问题,我测试中发现的. 当时在内存中设立了一个队列,用arrylist存放任务队列,但是经过一段时间后,发现队列中信息没有了,还以为是出现异常的原因,最后,在网友 ...

  6. mysql中的extra是什么意思_1130mysql explain中的type列含义和extra列的含义

    很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是"访问类型" ...

  7. 台达编码器型号含义_光电编码器型号含义_光电编码器应用实例

    光电编码器型号含义 例型号是:ZKX-6A-50BM7.5T-G05E.厂家:长春光学有限公司 型号含义如下: ZKX产品型号,外径38盲孔轴8:6A是顺序号:50BM是500脉冲,B指的是AB相位差 ...

  8. linux文件 含义,Linux各个文件及其含义

    树状目录结构: 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及 ...

  9. linux命令的含义,Linux常见命令及含义

    1.查看目录结构 ls(list) :列出 ll :列出当前目录下的文件信息 ls -al :列出当前目录下的文件信息(包括隐藏文件,特殊目录) ll /bin/ :列出根目录下bin目录下的文件信息 ...

最新文章

  1. cidr斜线记法地址块网络前缀_学习笔记之《计算机网络》- 网络层(一)
  2. synchronized关键字原理
  3. MySQL: ERROR 1040: Too many connections”的异常情况1
  4. HihoCoder - 1441 后缀自动机一·基本概念(模拟,后缀自动机入门好题)
  5. springboot页面乱码问题
  6. matlab与树莓派通信
  7. mysql 去除warning_zabbix监控mysql之去掉烦人的warning告警语句
  8. des加密出的字符串有特殊字符吗_纯干货分享丨内网渗透很难学吗?
  9. Js中Currying的应用
  10. python连接不上数据库_详解pycharm连接不上mysql数据库的解决办法
  11. 学习记录—HTML标签
  12. 新工作上班九天心得(附 bootstrap分页写法)
  13. git21天打卡-day8 本地分支push到远程服务器
  14. hdu 4619 Warm up 2(并查集)
  15. IDC评述网:1月下旬国内域名注册商净增量Top10
  16. 使用putty上传文件到linux
  17. pandas将字符串转换成时间_数据处理利器 pandas 实例详解 (下)
  18. 一文说清长安链ChainMaker同步模块
  19. 【NLP】Transformer框架原理详解-1
  20. R语言使用order函数降序排序向量数据、设置decreasing参数进行降序排序

热门文章

  1. 运动圈(运动社交)App
  2. 攻防世界:command_execution
  3. 地址栏是about:blank,页面有内容,不能保存和查看源文件
  4. java templates_java中如何设定new template
  5. Ubuntu 加入开机自启动命令(rc.local)
  6. Linux字符串处理函数strdup、strndup、strndupa、strdupa
  7. excel柱状图加折线图组合怎么做
  8. java script特效
  9. 网页特效java代码,网页特效代码(关于javasript)
  10. CSDN平台上怎么样才能赚钱?