财位放什么好:博客聚合 - MSDK格式转化篇(六)从IMC3到NV12 : sokerspace.com

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 19:50:50

MSDK格式转化篇(六)从IMC3到NV12


作者: Yanqing Wang (Intel) |英特尔® 软件网络博客 - 中文
日期: 2010/8/3 15:48
点击: 1

MSDK格式转化篇(四)从IMC1到NV12

MSDK格式转化篇(五)从IMC2到NV12

文章讲述了将IMC1和IMC2转化为NV12格式,本篇博客将会讲述如何将IMC3转为NV12格式。


这个格式是非常有意思的格式,在讲解之前,让我们先看看这个格式如何,如图1所示。



                                                                               图1 IMC3格式


IMC3有几个特点:

1)UV的stride必须和Y的stride一致,图1已经很好的表示这种意思。

2)UV的高度和宽度必须是16的倍数,这个就决定了W1,H1是需要更具Y的H计算出来的。


NV12格式如图2所示:



                                                                               图2 NV12格式


程序伪代码实现IMC3转成NV12

1. 拷贝Y数据

memcpy( NV12->Y, IMC3->Y, Height * Stride );

2. 拷贝UV数据

while ( 有数据 )

{

NV12->U[ index ] = IMC3->U[ index ];

NV12->V[ index ] = IMC3->V[ index ];

++ NV12->U;

++ NV12->V;

++ IMC3->U;

++ IMC3->V;

++ index

}


【小结】

- IMC3类似于IMC1格式,仅仅UV位置互换了。

- UV的高度必须是16的倍数,


<< MeeGo for IVI V1.0发布我在google code上建了一个项目。 >>
URL:http://www.sokerspace.com/modules/planet/view.article.php/905
Trackback:http://www.sokerspace.com/modules/planet/trackback.php/905