关于yuv 的pack(紧缩格式)和planner(平面格式)格式 [转]

关于yuv 格式

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

几种常见的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 Y1

android  OMX 中  OMX_COLOR_FormatCbYCrY    //CbYCrY                 : Organized as 16bit UYVY (i.e. CbYCrY)

24bit RGB888 -> 16bit RGB565 的转换

24ibt RGB888 R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2 B1 B0

16bit RGB656 R7 R6 R5 R4 R3 G7 G6 G5 G4 G3 G2 B7 B6 B5 B4 B3

未完

时间: 2024-10-06 00:33:56

关于yuv 的pack(紧缩格式)和planner(平面格式)格式 [转]的相关文章

linux环境下deb格式文件转换成rpm格式

以 alien_8.87.tar.gz 为例: 下载.安装 alien_8.87.tar.gz [[email protected] ~]# wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.87.tar.gz [[email protected] ~]# tar zxvf alien_8.87.tar.gz [[email protected] ~]# cd alien [[email protected] alien

Linux下AT&amp;T汇编语法格式与Intel汇编语法格式异同

由于绝大多数的国内程序员以前只接触过Intel格式的汇编语言,很少或几乎没有接触过AT&T汇编语言,虽然这些汇编代码都是Intel风格的.但在Unix和Linux系统中,更多采用的还是AT&T格式,两者在语法格式上有着很大的不同,其实完全可以使用原来汇编的思路解决问题,只要掌握下面两者的不同: 一.在AT&T汇编格式中,寄存器名要加上' %'作为前缀:而在Intel汇编格式中,寄存器名不需要加前缀.例如: AT&T格式 Intel格式 pushl %eax push eax

RSA的密钥把JAVA格式转换成C#的格式(2)

把C#格式转换成Java:RSA的密钥把JAVA格式转换成C#的格式(1) 我已经在第一篇介绍过如何把C#格式转换成Java,现在来看看如何把Java格式转换成C#. /// <summary> /// RSA加密 /// </summary> /// <param name="publickey"></param> /// <param name="content"></param> ///

java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象==

我们经常会有需求,比如调用别人的接口,别人会返回给你json或者xml格式的数据,然后我们要转换为相应的对象供我们自己使用: 也有的时候是别人的调我们的接口,让我们提供xml格式的数据或者json格式的数据,json的话这里都不说了,很好处理,甚至springMvc本身就很容易支持. 下面只介绍xml和对象彼此转换 首先我们需要引入的jar包:xstream-1.4.8.jar 下面直接贴代码,代码是在springMvc环境下写的 @Controller public class Navigat

正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式

正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法.分享给大家供大家参考.具体代码codego.net提供方法如下: <html> <head><title>正则表达式</title></head> <body> <a href="./">返回列表</a> <form action="<? echo $PHP_SELF; ?>&qu

C#验证字符串是否是数字,是否包含中文,是否是邮箱格式,是否是电话格式

using System; using System.Web; using System.Text; using System.Web.UI.WebControls; using System.Text.RegularExpressions; public class ValidateHelper { private static Regex RegNumber = new Regex("^[0-9]+$"); private static Regex RegNumberSign =

[转] 将DOS格式文本文件转换成UNIX格式

点击此处阅读原文 用途说明 dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter).DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A.而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A.DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,.而Unix格式的文本文

【转】将 azw3 格式转换为 mobi 格式并保持原有排版格式

小伙伴多次向 Kindle 伴侣提出一个问题,那就是通过 Calibre 将排版精美的 azw3 格式电子书转换成 mobi 格式后推送到 Kindle,排版格式会发生很大的变化,比如行距过窄.内嵌字体丢失等等,有没有方法避免这种情况呢?答案当然是肯定的. 通过实测发现,先用 Calibre 将 azw3 格式电子书转换成 epub 格式,然后再用 Kindlegen 把 epub 格式转换成 mobi 格式,这样一来,转换后的 mobi 格式电子书将原汁原味地保持原 azw3 格式的排版风格.

Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式

Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式 找到eclipse安装目录下面的plugins目录,搜索 org.eclipse.text ,找到一个jar包, 例如我找到的jar包为:org.eclipse.text_3.5.300.v20130515-1451.jar 然后打开它,找到这个类: org.eclipse.jface.text.templates.GlobalTemplateVariables 我们重写这个类就行了.(可反编译,也可以找到源