YUV的数据格式
一、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的数据格式的更多相关文章
- 关于视频YUV
这里有一篇摘自MSDN的文章.介绍了YUV视频数据格式. About YUV Video Digital video is often encoded in a YUV format. This ar ...
- 快速掌握MIPI开发攻略,对接百度人工智能计算卡EdgeBoard
MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写,是MIPI联盟发起的为移动应⽤处理器制定的开放标准.MIPI采⽤高速串行接口传输数据,满⾜ ...
- 音视频开发-FFmpeg
音视频开发是个非常复杂的,庞大的开发话题,初涉其中,先看一下结合 OEIP(开源项目) 新增例子. 可以打开flv,mp4类型文件,以及rtmp协议音视频数据,声音的播放使用SDL. 把采集的麦/声卡 ...
- 详解YUV与RGB数据格式-2016.01.20
参考文献 什么是I帧,P帧,B帧 图文详解YUV420数据格式 RGB565 与 RGB888的相互转换 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)
- YUV数据格式
概要: 与RGB编码方法类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它是指将亮度参量(Y:Luminance或Luma)和色度参量(UV:Chrominance或Chroma) ...
- 详解YUV数据格式
我们在讲 FFmpeg 系列的时候,有提到 YUV 的.其中包括YUV播放器.简单的YUV格式介绍. 一.YUV简介 YUV,是一种颜色编码方法.常使用在各个影像处理元件中. YUV在对照片或影片编码 ...
- YUV格式介绍
原文链接:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html YUV格式有两大类:planar和packed.对于plana ...
- 【Android】直播必备之YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别
说明 因工作方面接触到图像处理这一块,需要对手机摄像头采集的原始帧做Rotate或者Scale,但无奈对此的了解少之又少,于是网上搜了一顿,完事后将最近所学总结一下,以方便之后的人别踩太多坑. 首先想 ...
- 关于yuv格式
首先,内存分布 1:YUV420 (1):I420: YYYYYYYY UU VV =>YUV420P (2): ...
随机推荐
- docker 系列 - 企业级私有镜像仓库Harbor部署(转载)
本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库, ...
- docker 系列 - Docker CheatSheet | Docker 配置与实践清单 (转载)
本文转载自 (https://segmentfault.com/a/1190000016447161), 感谢作者.
- [Android] [putty连接Android设备] [Android设备网络调试]
file: system/core/adb/adb.c line: 921 /* for the device, start the usb transport if the ** android u ...
- getnameinfo函数
一.函数原型 #include <netdb.h> int getnamefo(const struct sockaddr *sockaddr, socklen_t addrlen, ch ...
- ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式
一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...
- 001_twoSum
#####solution01##### # def twoSum(nums, target): # res=[] # for i in range(0,len(nums)-1): # p1 = nu ...
- 利用html5中json的方法做对象的深拷贝解决引用的相互干扰
var a=[name:'zs']; var str=Json.stringify(a); var b=Json.parse(str);//这里是将一个新对象赋值给b.与a没有引用同一个对象 b.na ...
- vue组件导航栏动态添加class
- mysql 8.0 ~ innodb与变量优化
一 innodb的优化 1 已完全不支持myisam引擎 2 将自增主键的计数器持久化到redo log中.每次计数器发生改变,都会将其写入到redo log中.如果数据库发生重启,InnoDB ...
- python小练习---TCP服务器端
针对于上一篇分享python小练习---TCP客户端 http://www.cnblogs.com/zhaijiahui/p/6926197.html我继续按书中内容,向下进行这里需要强调一个事py3 ...