Media SDK的decoder,vpp,encoder对输入输出格式有着严格的限制,现在仅仅支持NV12。那么如何从其他格式转化为NV12是日常工作中经常遇到的事情。本篇文章以此为目的,讨论如何将YV12格式转化为NV12格式。

YV12格式是常用的CODEC格式,它的格式如图1所示。

图1 YV12格式

图1中:
W表示图像的宽度,即Width的缩写。
H表示图像的高度,即Height的缩写
Stride表示图像行的跨度,超出Width部分为填充数据,主要目的是为了字节对齐,一般以16字节或者32字节对齐居多。

NV12是英特尔定义的视频格式,它在英特尔硬件平台上是原生态支持,它的格式如图2所示。

图2 NV12格式

从图1,图2可以看出,YV12和NV12基本上相似:
- Y有相同的格式
- U和V不同。YV12将VU分开存储,而NV12将其交叉存储。

程序伪代码实现YV12转成NV12
1. 拷贝Y数据
memcpy( NV12->Y, YV12->Y, Height * Stride );
2. 拷贝UV数据
while ( 有数据 )
{
NV12->U[ index ] = YV12->U[ index ];
NV12->V[ index ] = YV12->V[ index ];
++ NV12->U;
++ NV12->V;
++ YV12->U;
++ YV12->V;
++ index
}

从YV12到NV12的更多相关文章

  1. (转)YV12 and NV12

    用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 YV ...

  2. YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24(转载)

    转自:http://www.latelee.org/my-study/yuv-learning-yuv420p-to-rgb24.html 对于YUV420的格式,网上有一大堆资料,这里就不说了.直奔 ...

  3. YV12和NV12格式

    害怕搞忘 直接保存图片

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

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

  5. 【Android】YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别

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

  6. YV12 NV12区别

    用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 YV ...

  7. 【图像处理与医学图像处理】NV12与YV12的区别

    用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪YV1 ...

  8. 利用FFmpeg玩转Android视频录制与压缩(二)<转>

    转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...

  9. X264参考手册

    艺搜简介 基本语法: x264 [options]-o outfile infile 注意与ffmpeg的输入输出文件位置恰好相反: ffmpeg[options][[infile options]- ...

随机推荐

  1. 【CodeForces 987C】Three displays

    [链接] 我是链接,点我呀:) [题意] [题解] 动态规划 设dp[i][j]表示前i个数字,选了j个的最小花费. dp[i][j] = min(dp[k][j-1]+b[i]);//其中a[i]& ...

  2. 启动 Appium 自带模拟器

    1.先在sclipse中新建并打开一个设备 2.启动appium 3.安装apk 打开cmd  并在sdk安装目录的tools文件夹下输入安装命令adb install xxx.apk(在这之前需要把 ...

  3. SGU 185 Two shortest

    Two shortest Time Limit: 500ms Memory Limit: 4096KB This problem will be judged on SGU. Original ID: ...

  4. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclips

    警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclips ...

  5. APS.NET webform中的isPostBack

    IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开. 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者th ...

  6. android 分享到QQ空间的全部操作

    http://wiki.open.qq.com/wiki/mobile/SDK下载   <!-- QZone分享必须加上以下两个activity -->                &l ...

  7. Milk(杭电1070)

    Milk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. Android Activity组件的启动过程

    0.总图 1.总图中的第一步,Laucher主线程向ActivityManagerService进程发出START_ACTIVITY_TRANSACTION 如图:第一步 ~/Android/fram ...

  9. 2015.04.27,外语,读书笔记-《Word Power Made Easy》 12 “如何奉承朋友” SESSION 35

    1.how to look 拉丁词根specto,to look的意思,是许多常见英文词语的来源,如spectacle(['spektәkl] n. 值得看的东西, 光景, 眼镜).spectator ...

  10. CountDownTimer,0,0

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...