前段时间搞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. mysql hibernate 延迟_Hibernate+Spring数据延迟加载问题解决方案
  2. 火蚁机器人_适度偷懒提高整体效率:火蚁工作方式启发机器人群组协作
  3. Python:list 和 array的对比以及转换时的注意事项
  4. Spring 2.5中文版手册
  5. c语言2048项目报告,c语言----项目_小游戏2048
  6. python之验证身份证号合法性的库:id_validator
  7. python中赋值,深拷贝,浅拷贝区别
  8. excel打印字被表格遮住_Excel表格太大无法打印在一页纸上?这几个打印技巧你值得学习...
  9. urlencode与unquote
  10. 笔记本电脑热点手机无法连接解决方案
  11. 39、C++定义一个类,实现向量的加减运算
  12. 倒水c语言,洛谷 P1432 倒水问题
  13. 【解决】电脑开给手机开热点问题
  14. HBuilder:安装使用Less
  15. 7.微信小程序(布局适配与物理逻辑像素)
  16. 应用于素描人脸识别的迁移学习
  17. TICKScript简介
  18. 让NodeJS出错退出之后自动重启的办法
  19. 积极思考综合调查表--调查自己的积极思考品质
  20. 软件项目管理MOOC(北邮)——第七章测试答案

热门文章

  1. 汉字常用字unicode码表
  2. 1.C语言0基础自学-从第一行代码开始
  3. USB接线定义和链接摄像头
  4. ROS操作系统基本命令汇总
  5. 如何搭建积分商城软件活动功能
  6. cron表达式案例+cron在线生成器
  7. Java实现数组排序
  8. 通过python获取浏览器cookie
  9. 整流管与稳压管的参数和选择原则
  10. 【雷达信号处理】---模糊函数与仿真