前段时间搞x264编码测试,传参的时候需要告诉编码器我的原始数据格式是什么,其中在x264.h头文件中定义了如下一堆类型。

但是这个定义只是对于这个应用而言,对于其他的应用或者场景中,相同的数据格式却有着不同的名字,于是为了弄懂他们的差别关系,检索了一大堆信息,整理了一个图文出来如下。

首先要介绍的是YUV444,这种格式占用空间最大,每个像素点有一个Y分量+一个U分量+一个V分量所以和rgb一样每个像素点占用3个字节!

但是根据UV存储顺序不一样,又有两种不同的格式。

接下来是YUV422 每两个Y分量公用一个UV分量,所以一个像素占用两个字节,根据存储顺序不同又分为四种不同的格式。

还有一种变态的V210格式,好像是苹果搞出来的。

接下来是YUV420 每四个y分量公用一个UV分量,所以每个像素点占用1.5个字节空间,根据存储顺序不一样又分为四个不同的类型。

YUV是一种颜色编码方法,Y表示亮度(Luma),也就是灰度值。U分量和V分量重存储了是色度(Chroma)信息,主要作用是描述了视频的色彩及饱和度,用于指定每个像素的颜色。主要用于电视系统以及模拟视频领域,它将亮度信息Y与色彩信息UV分离,没有UV信息一样可以显示完整的图像,显示出来将是黑白效果,解决了彩色电视机和黑白电视机之间的兼容问题。早期的黑白电视机只有亮度值Y,后面彩色电视的出现引入了UV分量,形成了现有的YUV格式,又称为YCbCr格式。
YUV格式的优点。由于人眼对亮度敏感而对色度不敏感的特点,因此在YUV格式中减少了UV的数据量,在不影响用户观看的情况下有效的压缩了总体的数据量。所以YUV与RGB格式相比,占用更少的存储空间,相对应的在传输过程中也会减少带宽的消耗量。

常见的YUV格式有YUV444、YUV422、YUV420。
对于YUV444格式,一个Y分量对应一组UV分量,及完全采样。如下图所示:

对于YUV422格式,每两个Y公用一组UV分量。如下图所示:

对于YUV420格式,并不是说只有Y分量和U分量,没有V分量。U分量和V分量是交替出现的,例如第一行为4:2:0,则第二行为4:0:2,如此反复依次交替。

YUV444、YUV422、YUV420几种格式中最常用的就是YUV420格式了。YUV420格式又可以细分为YUV420P和YUV420SP两种类型。

YUV420P是三平面存储,Y、U、V三个分量分别占用一个平面。数据的排列方式有I420,YV12。
I420,YYYYYYYY UUVV
YV12,YYYYYYYY VVUU

YUV420SP是两平面存储,Y分量占用一个平面,UV分量公用一个平面。有两种排列方式NV12、NV21。
NV12,YYYYYYYY UVUV
NV21,YYYYYYYY VUVU

RGB是一种对颜色进行编码的方式。由RGB(红、绿、蓝)经过叠加组合可以展现出所有的色彩,每种颜色都可以由这三个变量的不同值组合而成。记录一张图像时,最常用的编码方式就是RGB。

YUV的主要优势在于可以兼容之前的黑白电视,单独只有Y数据就可以显示完整的黑白图像,UV是后期加入的色彩参数。并且经过多年的发展,YUV的压缩算法得到了改进,使得图像的压缩率大大增加。使得YUV比RGB占用更少的存储空间。虽然YUV很有优势,但是在最终显示的时候其本质上也都是显示的RGB数据,一些支持YUV输入的设备,内部也是做了相应的转换。

图像原始格式 YUV444 YUV422 YUV420 详细解析相关推荐

  1. 图像原始格式(YUV444 YUV422 YUV420)一探究竟

    前段时间搞x264编码测试,传参的时候需要告诉编码器我的原始数据格式是什么,其中在x264.h头文件中定义了如下一堆类型. /* Colorspace type */ #define X264_CSP ...

  2. 音视频编解码: YUV采样格式中的YUV444,YUV422,YUV420理解

    YUV各种采样格式的说明 通常我们用RGB表示一种彩色.计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色. 而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像 ...

  3. YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)

    如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额1元起步,多少随意 锋影 email:174176320@qq.com YUV图解 (YUV444, YUV422, YUV ...

  4. YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)-- 转

    YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)

  5. YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)

    YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...

  6. yuv图解(YUV444,YUV422,YUV420,YV12,NV12,NV21)

    参考文章 图解YUV YUV是什么 YUV(444,422,420) And YUV(Packed,Planar,Semi-Planar) 知识点 YUV是用一个称为Y(相当于灰度)的亮度分量和两个色 ...

  7. 图像视频信息库改直播服务器,短视频直播系统,开发流程详细解析

    原标题:短视频直播系统,开发流程详细解析 短视频直播系统的开发也分Android端和iOS端,不同端口对应不同的开发方式,使用不同的开发协议,与直播系统的开发流程相同,也是分五个步骤,今天就给大家详细 ...

  8. YUV422 YUV420 Planar \ Semi-Planar \ Interleaved格式详解

    很多人对YUV数据格式不清楚,以至于在做视频的时候出现了一些不可预知的错误(比如说图像带有点.颜色不对等).今晚是周末放假,我就抽点时间来给大家介绍一下. 提示: 读下面的文字时,希望大家结合图片看, ...

  9. mysql grant 语法格式_MySQL grant 语法的详细解析

    我们今天主要向大家介绍的是MySQL grant 语法的详细解析,同时本文还介绍了其实际应用代码的介绍,希望在你今后的学习中会有所帮助. 以下的文章是MySQL grant 语法的详细解析,如果你对M ...

  10. RGBYUV图像视频格式

    一.参考资料 对于YUV420sp格式图像的copy and paste RGB 与YUV颜色模型及存储格式 二.相关介绍 2.1 问题引入 OpenCV中如果是单通道或者三通道一样的大的图像,直接使 ...

最新文章

  1. 15 年腾讯老兵谈技术人成长之路
  2. 阿里面试官:接口的幂等性怎么设计?
  3. Hibernate智能化分页
  4. 模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度
  5. 数据分析pandas属性实现统计分析
  6. c++读取文件–结束条件的判断
  7. 悲痛!高校一研究生在校内被撞身亡,肇事者为该校博导,警方已介入
  8. linux一级常用目录,小蚂蚁学习Linux(3)——Linux一级目录说明和常用命令解释...
  9. mysql关联表id_mysql join联表 + id自增
  10. pandas dataframe多重索引常用操作
  11. 在Windows上搭建Go开发环境
  12. 26.逻辑卷管理器(Logical Volume Manager)
  13. Intel 平台编程总结----SIMD技术
  14. 如何让vs2005的网站编译成一个DLL
  15. 微信取消分享后还是执行成功函数
  16. Atitit node.js问题解决总结t99 目录 1.1. 找不到node程序 1 1.2. GBK编码问题 1 2. 按行读取gbk编码问题 2 2.1. 先写入txt utf8 encode
  17. Pytorch使用tensorboardX可视化
  18. android实现半透明属性,Activity透明/半透明效果的设置transparent(两种实现方法)
  19. TX2(linux系统、Ubuntu系统)输入法不显示拼音候选框、下拉框
  20. 数据结构简单模拟银行排队系统

热门文章

  1. java时间格式化工具类_java日期格式化工具类
  2. 开元酒店在中国的签约及在营酒店规模正式超过600家
  3. Android -- WiFi的NUD检测机制浅析
  4. Office Tool Plus v8.2.4.0 安装Office组件小工具
  5. Feem(局域网文件传输工具)v4.3.0官方版
  6. 百度前员工因内网发布“女优一览表”被辞退,自诉:想转鉴黄师
  7. 使用BCDboot工具,修复windows 系统启动,双启动菜单丢失故障
  8. linux snmp 命令oid,snmpwalk命令_Linux snmpwalk命令使用详解:通过SNMP GET-NEXT类型PDU
  9. 射频电路学习之滤波电路
  10. 为什么世界是由数学构成的