YUV,是一种颜色编码方法,Y表示明亮度(Luminance、Luma),U和V则是色度、浓度(Chrominance、Chroma)。

YUV,Y`UV,YCbCr,YPbPr等都可以称为YUV,彼此有重叠。

YUV和Y`UV通常用来描述模拟信号,YCbCr与YPbPr则是用来描述数位的影像信号。

YUV颜色编码方法相比于RGB的优势体现在两个方面:

将亮度信息与色彩信息分离,没有色彩信息可以显示完整的图像,很好地解决了彩色电视机与黑白电视的兼容问题;

YUV不像RGB要求三个独立的视频信号同时传输,用YUV方式传送占用极少的频宽。

YUV存储格式,主要描述像素的Y、U、V分量排列方式,分为两种格式:紧缩格式和平面格式。

紧缩格式(packed formats):将Y、U、V值储存成Macro Pixels阵列,和RGB的存放方式类似。

平面格式(planar formats):将Y、U、V的三个分量分别存放在不同的矩阵中。

YUV采样方式,主要描述像素Y、U、V分量采样比例,即表达每个像素时,Y、U、V分量的数目,通常有三种方式:YUV4:4:4,YUV4:2:2,YUV4:2:0。

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

YUV4:4:4采样,每一个Y对应一组UV分量;YUV4:2:2采样,每两个Y共用一组UV分量;YUV4:2:0采样,每四个Y共用一组UV分量。

常见YUV格式说明:YV12、IYUV、I420、NV12、NV21 采样方式都是4:2:0,其存储格式都是平面格式,下面简要说明以上常见格式的内存布局。

YV12

  所有 Y 样例都会作为不带正负号的char值组成的数组首先显示在内存中。此数组后面紧接着所有 V (Cr) 样例。V 平面的跨距为 Y 平面跨距的一半,V 平面包含的行为 Y 平面包含行的一半。V 平面后面紧接着所有 U (Cb) 样例,它的跨距和行数与 V 平面相同。

IYUV和I420

   IYUV、I420和YV12的内存布局格式是一样的,只是U、V分量的顺序是相反的,IYUV和I420格式中,U分量紧跟Y分量后,V分量紧跟U分量后,如图所示。

NV12

  所有 Y 样例都会作为由不带正负号的char值组成的数组首先显示在内存中,并且行数为偶数。Y 平面后面紧接着一个由不带正负号的char值组成的数组,其中包含了打包的 U (Cb) 和 V (Cr) 样例,如图 所示。当组合的 U-V 数组被视为一个由 little-endian WORD值组成的数组时,LSB 包含 U 值,MSB 包含 V 值。NV12 是用于 DirectX VA 的首选 4:2:0 像素格式。预期它会成为支持 4:2:0 视频的 DirectX VA 加速器的中期要求。

NV21

  NV21和NV12的内存布局是一样的,只是U、V分量交错存储的顺序是相反的,NV21格式中,是以V-U的交错方式存储,如图所示。

参考资料:

http://www.fourcc.org/yuv.php

http://wenzongliang.iteye.com/blog/1902608

【视频处理】YUV格式说明的更多相关文章

  1. avi视频格式转yuv格式与播放yuv视频

    因为要用到yuv格式视频.而眼下仅仅有avi格式的视频,所以须要转换,而且opencv不支持yuv编码的视频播放.所以须要转换为rgb编码.而后播放.写了两个程序.以供參考: 1,avi格式视频转yu ...

  2. Android中使用MediaCodec硬件解码,高效率得到YUV格式帧,快速保存JPEG图片(不使用OpenGL)(附Demo)

    MediaCodec的使用demo: https://github.com/vecio/MediaCodecDemo https://github.com/taehwandev/MediaCodecE ...

  3. 使用X264编码yuv格式的视频帧使用ffmpeg解码h264视频帧

    前面一篇博客介绍在centos上搭建点击打开链接ffmpeg及x264开发环境.以下就来问个样例: 1.利用x264库将YUV格式视频文件编码为h264格式视频文件 2.利用ffmpeh库将h264格 ...

  4. 图像视频编码和FFmpeg(2)-----YUV格式介绍和应用

    本文不讲FFmpeg,而是讲YUV图像格式.因为摄像头拍摄出来的原始图像一般都是YUV格式.在FFmpeg中,视频是通过多张YUV图像而得到. YUV图像格式是什么,这个可以看一下维基百科.这个超链接 ...

  5. YUV格式介绍

    原文链接:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html YUV格式有两大类:planar和packed.对于plana ...

  6. YUV格式分析

    转自:http://www.cnblogs.com/armlinux/archive/2012/02/15/2396763.html Andrew Huang <bluedrum@163.com ...

  7. 关于yuv格式

    首先,内存分布        1:YUV420          (1):I420:              YYYYYYYY UU VV    =>YUV420P          (2): ...

  8. YUV格式&像素

    一幅彩色图像的基本要素是什么? 说白了,一幅图像包括的基本东西就是二进制数据,其容量大小实质即为二进制数据的多少.一幅1920x1080像素的YUV422的图像,大小是1920X1080X2=4147 ...

  9. 【转】YUV格式&像素

    一幅彩色图像的基本要素是什么? 说白了,一幅图像包括的基本东西就是二进制数据,其容量大小实质即为二进制数据的多少.一幅1920x1080像素的YUV422的图像,大小是1920X1080X2=4147 ...

随机推荐

  1. Javascript原型模式总结梳理

    在大多数面向对象语言中,对象总是由类中实例化而来,类和对象的关系就像模具跟模件一样.Javascript中没有类的概念,就算ES6中引入的class也不过是一种语法糖,本质上还是利用原型实现.在原型编 ...

  2. [.net 面向对象编程基础] (21) 委托

    [.net 面向对象编程基础] (20)  委托 上节在讲到LINQ的匿名方法中说到了委托,不过比较简单,没了解清楚没关系,这节中会详细说明委托. 1. 什么是委托? 学习委托,我想说,学会了就感觉简 ...

  3. 走进AngularJs(八) ng的路由机制

    在谈路由机制前有必要先提一下现在比较流行的单页面应用,就是所谓的single page APP.为了实现无刷新的视图切换,我们通常会用ajax请求从后台取数据,然后套上HTML模板渲染在页面上,然而a ...

  4. 我所了解的CSS

    我真的了解css吗? 我这样问自己. 我的思考和这几天的学习来自于看了寒冬winter大神的这篇blog:谈谈面试与面试题 .说实话, 我边看,脑袋里面边翻篇一样的过着我的那点css知识,看完了,整个 ...

  5. [体感游戏] 1、MPU6050数据采集传输与可视化

    最近在研究体感游戏,到目前为止实现了基于51单片机的MPU6050数据采集.利用蓝牙模块将数据传输到上位机,并利用C#自制串口数据高速采集软件,并且将数据通过自制的折线图绘制模块可视化地展示出来等功能 ...

  6. [ACM_几何] Fishnet

      http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28417#problem/C 本题大意:有一个1X1的矩形,每边按照从小到大的顺序给n ...

  7. easy-ui JOB 及 小记录

    $:获取  $.ajax({             type: "POST" ,             url: "" ,             cont ...

  8. MVVM架构~knockoutjs与MVC配合,实现列表的增删改功能

    返回目录 MVC与MVVM的模型 在MVC实例项目中,为我们提供了简单的增删改查功能,而这种功能的实现与具体的Model很有关系,或者说它与后台数据库的关系过于紧密了,而对于开发人员来说当页面布局修改 ...

  9. [Java集合] 彻底搞懂HashMap,HashTable,ConcurrentHashMap之关联.

    注: 今天看到的一篇讲hashMap,hashTable,concurrentHashMap很透彻的一篇文章, 感谢原作者的分享. 原文地址: http://blog.csdn.net/zhanger ...

  10. 合法提交Html标签(2)

    提交合法的HTML标签(2) 上面用到了一个Inherits属性,它用来设置页面与后台代码中相关联的类.我们打开CodeFile属性所指的文件,会找到该属性所指的类名.但是这里仅仅存放的是用户定义的事 ...