前言

YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将 YUV 分量存放在同一个数组中,
通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放 YUV 三个分量,就像
是一个三维平面一样。

一、YUV420、YUV420P和YUV420SP区别

  1. YUV420: 即打包格式的YUV420
  2. YUV420P: 即YUV420 Planar,Y\U\V数据是分开存放的
  3. YUV420SP:即YUV420 semi planar, 这个格式的数据量跟YUV420 Planar的一样,但是U、V是交叉存放的

YUV420P

YUV420SP

二、几种常见的yuv格式

1.YUV422 Planar

这里,Y\U\V数据是分开存放的,每两个水平Y采样点,有一个Cb和一个Cr采样点,如下图

ffmpeg 中的定义  PIX_FMT_YUV422P,   ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)  android  OMX  中的定义  OMX_COLOR_FormatYUV422Planar     //*  YUV422Planar           : Three arrays Y,U,V.

2. YUV420 Planar

这个格式跟YUV422 Planar 类似,但对于Cb和Cr的采样在水平和垂直方向都减少为2:1,如下图

ffmpeg 中定义  PIX_FMT_YUV420P    //< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)android OMX 中定义  OMX_COLOR_FormatYUV420Planar     //  *  YUV420Planar           : Three arrays Y,U,V

3.YUV422 Semi-Planar

Semi 是’半‘的意思 我的理解这个半平面模式,这个格式的数据量跟YUV422 Planar的一样,但是U、V是交叉存放的,如下图。

ffmpeg 中 未找到定义android  OMX  中 OMX_COLOR_FormatYUV422SemiPlanar    YUV422SemiPlanar       : Two arrays, one is all Y, the other is U and V

4.YUV420 Semi-Planar

这个格式的数据量跟YUV420 Planar的一样,但是U、V是交叉存放的,如下图。

ffmpeg 中定义  PIX_FMT_NV12,      ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)android   OMX  中定义 OMX_COLOR_FormatYUV420SemiPlanar    //YUV420SemiPlanar       : Two arrays, one is all Y, the other is U and V

5.YUV422 Interleaved Interleaved – 交错

这个格式的数据量跟YUV422 Planar的一样,但是Y、U、V是交叉存放的,如下图。 这个是打包(packed)模式的

ffmpeg  中  PIX_FMT_UYVY422   ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1android  OMX 中  OMX_COLOR_FormatCbYCrY    //CbYCrY                 : Organized as 16bit UYVY (i.e. CbYCrY)

YUV422 YUV420 Planar Semi-Planar详解相关推荐

  1. mysql semi join详解_MySQL中的semi-join

    http://www.linuxidc.com/Linux/2015-05/117523.htm 1. 背景介绍 什么是semi-join? 所谓的semi-join是指semi-join子查询. 当 ...

  2. html5拖放详解,HTML5拖拽/拖放(drag drop)详解

    H5中拖拽属性: draggable: auto | true | false 拖动事件: - dragstart 在元素开始被拖动时触发 - dragend 在拖动操作完成时触发 - drag 在元 ...

  3. 全志 android 编译,全志Android SDK编译详解(二)

    注意要确定安装了jdk) 第一步: cd  lichee; ./build.sh  -p sun5i_elite -k 3.0  (apt-get install uboot-mkimage需要安装m ...

  4. gray code java_格雷码Gray Code详解

    格雷码简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又 ...

  5. YUV420 Planar 和YUV420 Semi-Planar详解

    参考:https://blog.csdn.net/qq_25005909/article/details/79480935 前言 YUV 格式通常有两大类:打包(packed)格式和平面(planar ...

  6. 图文详解YUV420/YUV422数据格式(转)

    一.YUV格式与RGB格式的换算 以下是标准公式 RGB 转换成 YUV Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16 Cr = V = (0.43 ...

  7. 图像和流媒体 -- 详解YUV数据格式

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78283369 我们在讲 FFmpeg 系列的时候,有提到 YUV 的.其中包 ...

  8. FFmpeg入门详解之121:颜色空间转换RGB和YUV的原理与实战

    5.颜色空间转换RGB和YUV的原理与实战 三种颜色空间模型:RGB.YUV.HSV 一.概述 颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间. 但被描述 ...

  9. 安卓camera2 API获取YUV420_888格式详解

    安卓音视频开发中的一个环节是摄像头采集数据,Android平台上摄像头采集的API有两套,camera1和camera2.本文主要讲的是camera2这套API采集数据,并指明YUV420_888格式 ...

最新文章

  1. php百合网,来百合网直播,做最真实的自己
  2. 001——数组(一)数组知识及foreach函数应用
  3. 石化总部java面试题_中国石化面试经验
  4. Wise Package Studio介绍
  5. [xcode]instruments来检验你的app
  6. docker harbor 域名_docker 安装Harbor
  7. 懒人的小技巧, 批处理修改IP
  8. python创建学生类和教师类_python基础知识 ——类
  9. 关于Google Instant 你必须知道的6件事情,互联网营销
  10. pycharm设置工程运行环境
  11. win10 更新后任务栏问题及如何关闭windows自动更新
  12. 计算机通识必修课程学什么内容,计算机通识课程教学平台研究与探索.doc
  13. WPF字体图标——FontAwesom
  14. 机器学习训练过程中常见问题
  15. 6-OG488 acid,195136-53-9,6-OG488羧酸与OregonGreen488羧酸,6-异构体是相同的分子
  16. Android修改ro.debuggable 的四种方法
  17. 寄生感知共质心 FinFET 布局和布线以实现电流比匹配
  18. 在OpenCV里实现内旋轮线
  19. 微服务架构实践心得小结
  20. 【通俗易懂】现场总线与工业以太网

热门文章

  1. Python程序退出方式小结
  2. python有趣小程序春节祝福-轻松玩转Python发送新春祝福给指定好友
  3. PCIe的XDMA应用
  4. 全国车牌和省市对应关系表
  5. 六个方法助你提高背书效率
  6. stm32中空的I/O管脚是高电平还是低电平
  7. 权限管理系统设计方案
  8. MOOS - Ivp 第一个程序
  9. 通过SimpleApp例程理解绑定的流程(三)
  10. 计算机cpu 二级缓存,Windowsxp系统开启cpu二级缓存的两种方法