一、YUV格式分为两大类:planar(平面)和packed(打包)。planar格式,先连续存储所有像素点的Y分量,紧接着存储所有像素点的U,随后存储所有像素点的V。packed格式,每个像素点的Y、U、V分量是连续存储的。

二、YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。用三个图来直观地表示采集的方式,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。如下:

1、YUV 4:4:4采样,每一个Y对应一组UV分量。

2、YUV 4:2:2采样,每两个Y共用一组UV分量。

3、YUV 4:2:0采样,每四个Y共用一组UV分量。

三、YUV各种存储格式

1、YUV420

(1)IYUV(I420)

IYUV(I420)是planar模式的YUV。

假设YUVI420视频的长为L,宽为W,则一帧YUV数据长度为L*W*3/2字节,一帧YUV数据中内存起始指针为P,Y数据的起始指针为P,U数据的起始指针为P+L*W,V数据的起始指针为P+L*W*5/4。

(2)YV12

YV12类似于IYUV(I420),只是U和V的顺序相反。

(3)NV12

NV12是two-planar模式的YUV。

(4)NV21

NV21类型与NV12,只是U和V的顺序相反。

2、YUV444

假设YUVI420视频的长为L,宽为W,则一帧YUV数据长度为L*W*3字节,一帧YUV数据中内存起始指针为P,Y数据的起始指针为P,U数据的起始指针为P+L*W,V数据的起始指针为P+L*W*2。

参考:

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

http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html

YUV的数据格式的更多相关文章

  1. 关于视频YUV

    这里有一篇摘自MSDN的文章.介绍了YUV视频数据格式. About YUV Video Digital video is often encoded in a YUV format. This ar ...

  2. 快速掌握MIPI开发攻略,对接百度人工智能计算卡EdgeBoard

    MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写,是MIPI联盟发起的为移动应⽤处理器制定的开放标准.MIPI采⽤高速串行接口传输数据,满⾜ ...

  3. 音视频开发-FFmpeg

    音视频开发是个非常复杂的,庞大的开发话题,初涉其中,先看一下结合 OEIP(开源项目) 新增例子. 可以打开flv,mp4类型文件,以及rtmp协议音视频数据,声音的播放使用SDL. 把采集的麦/声卡 ...

  4. 详解YUV与RGB数据格式-2016.01.20

    参考文献 什么是I帧,P帧,B帧 图文详解YUV420数据格式 RGB565 与 RGB888的相互转换 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)

  5. YUV数据格式

    概要: 与RGB编码方法类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它是指将亮度参量(Y:Luminance或Luma)和色度参量(UV:Chrominance或Chroma) ...

  6. 详解YUV数据格式

    我们在讲 FFmpeg 系列的时候,有提到 YUV 的.其中包括YUV播放器.简单的YUV格式介绍. 一.YUV简介 YUV,是一种颜色编码方法.常使用在各个影像处理元件中. YUV在对照片或影片编码 ...

  7. YUV格式介绍

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

  8. 【Android】直播必备之YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别

    说明 因工作方面接触到图像处理这一块,需要对手机摄像头采集的原始帧做Rotate或者Scale,但无奈对此的了解少之又少,于是网上搜了一顿,完事后将最近所学总结一下,以方便之后的人别踩太多坑. 首先想 ...

  9. 关于yuv格式

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

随机推荐

  1. docker 系列 - 企业级私有镜像仓库Harbor部署(转载)

     本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f  , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库, ...

  2. docker 系列 - Docker CheatSheet | Docker 配置与实践清单 (转载)

    本文转载自 (https://segmentfault.com/a/1190000016447161), 感谢作者.

  3. [Android] [putty连接Android设备] [Android设备网络调试]

    file: system/core/adb/adb.c line: 921 /* for the device, start the usb transport if the ** android u ...

  4. getnameinfo函数

    一.函数原型 #include <netdb.h> int getnamefo(const struct sockaddr *sockaddr, socklen_t addrlen, ch ...

  5. ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式

    一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...

  6. 001_twoSum

    #####solution01##### # def twoSum(nums, target): # res=[] # for i in range(0,len(nums)-1): # p1 = nu ...

  7. 利用html5中json的方法做对象的深拷贝解决引用的相互干扰

    var a=[name:'zs']; var str=Json.stringify(a); var b=Json.parse(str);//这里是将一个新对象赋值给b.与a没有引用同一个对象 b.na ...

  8. vue组件导航栏动态添加class

  9. mysql 8.0 ~ innodb与变量优化

    一  innodb的优化  1 已完全不支持myisam引擎  2 将自增主键的计数器持久化到redo log中.每次计数器发生改变,都会将其写入到redo log中.如果数据库发生重启,InnoDB ...

  10. python小练习---TCP服务器端

    针对于上一篇分享python小练习---TCP客户端 http://www.cnblogs.com/zhaijiahui/p/6926197.html我继续按书中内容,向下进行这里需要强调一个事py3 ...