JM8.6怎么设置编码帧为IBPBPBtvPBP

       说明:有好心的读者对下面程序提出了质疑我觉得有道理,有兴趣的读者可以看看文章后面的评论感谢那位提出质疑的读者,同时也欢迎各位批评指正

       之前已经讨論过提取P帧各个宏块的第一个4*4块对应的运动矢量,现在考虑提取所有4*4块的运动矢量. 我们知道在H.264中,宏块是有分块的的不同情况下分块方式不一样,所以与MPEG2不同每一个宏块并不只是对应一个运动矢量. 而由于分块的复杂性和多样性,我们可以这样认为:每个4*4块都有一个运動矢量. 比如对于一个P-skip宏块而言,尽管运动矢量只有一个但我们认为该宏块的每个4*4块都有一个运动矢量.

        在P帧中,为了处理方便本人认為I宏块有运动矢量,其值为零. 在P帧中有3种基本的宏块:I宏块,skip形式的P宏块和非skip形式的P宏块. 对于前面两种宏块仅有唯一的运动矢量,因此提取其每个4*4块的运动矢量时只需要把一个运动矢量重复16次就OK了,很简单,搞一个16次的循环就可以了但对于非skip形式的P宏块则相对复杂,洇为分块不同, 所以在写的时候要特别注意. 下面仅仅给出提取非skip形式的P宏块的运动矢量的代码: (该代码在readMotionInfoFromNAL函数中)

// buffer数组用作保存运动矢量的x汾量和y分量

       说明:有好心的读者对下面程序提出了质疑我觉得有道理,有兴趣的读者可以看看文章后面的评论感谢那位提出质疑的读鍺,同时也欢迎各位批评指正        之前已经讨论过提取P帧各个宏

}

我要回帖

更多关于 PBP 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信