辐射4动力核心:MV预测过程详解(转载) - wpf的日志 - 网易博客

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 09:06:46

MV预测过程详解(转载)

h.264和AVS的学习 2009-08-06 10:42:00 阅读78 评论0   字号: 订阅

原文地址:http://bbs.chinavideo.org/viewthread.php?tid=1067

===========第一步:确定相邻块===========

      MV 预测以宏块分割(或亚宏块分割,如果宏块存在亚分割)为单位,同一个宏块分割(或亚宏块分割)内所有 4*4 块 MV 预测值相同。以每个宏块分割(或亚宏块分割)的左上角像素 pixel1 和右上角像素 pixel2 为参考点来确定相邻块则:

      pixel1 左侧相邻像素所在 4*4 块为当前宏块分割(或亚宏块分割)的相邻块 A

      pixel1 上方相邻像素所在 4*4 块为当前宏块分割(或亚宏块分割)的相邻块 B

      pixel2 右上对角线像素所在 4*4 块为当前宏块分割(或亚宏块分割)的相邻块 C

      pixel1 左上对角线像素所在 4*4 块为当前宏块分割(或亚宏块分割)的相邻块 D

MV预测示意图.JPG (85.25 KB)

2006-9-29 11:14 AM

      以最复杂的 8*8 宏块分割类型为例(此时只存在亚宏块分割),分析如下:

      假设图中黑色框表示宏块、每个绿色框表示一个 4*4 块、每个红色框表示一个 8*8 块。当前宏块的宏块分割模式为 8*8(如图中红色线),其亚宏块分割模式分别为:第一个 8*8 块为 8*8,第二个 8*8 块为 4*4(如图中蓝色线),第三个 8*8 块为 4*8(如图中蓝色线),第四个 8*8 块为 8*4(如图中蓝色线)。则按照上述方法来确定相邻块的方法如下:

      第一个预测对象为第一个 8*8 块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 7 号 4*4 块,B 为 2 号 4*4 块,C 为 4 号 4*4 块,D 为 1 号 4*4 块。9、14、15 与 8 具有相同 MV 预测值

      第二个预测对象为第二个 8*8 块的第一个 4*4 块,即 10 号块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 9 号4*4块,B 为 4 号4*4块,C 为 5 号 4*4 块, D 为 3 号 4*4 块

      第三个预测对象为第二个 8*8 块的第二个 4*4 块,即 11 号块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 10 号4*4块,B 为 5 号4*4块,C 为 6 号 4*4 块,D 为 4 号 4*4 块

      第四个预测对象为第二个 8*8 块的第三个 4*4 块,即 16 号块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 15 号4*4块,B 为 10 号4*4块,C 为 11 号 4*4 块,D 为 9 号 4*4 块

      第五个预测对象为第二个 8*8 块的第四个 4*4 块,即 17 号块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 16 号4*4块,B 为 11 号4*4块,C 为 12 号 4*4 块,D 为 10 号 4*4 块

      第六个预测对象为第三个 8*8 块的第一个 4*8 块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 19 号 4*4 块,B 为 14 号 4*4 块,C 为 15 号 4*4 块,D 为 13 号 4*4 块。26 与 20 具有相同 MV 预测值

      第七个预测对象为第三个 8*8 块的第二个 4*8 块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 20 号 4*4 块,B 为 15 号 4*4 块,C 为 16 号 4*4 块,D 为 14 号 4*4 块。27 与 21 具有相同 MV 预测值

      第八个预测对象为第四个 8*8 块的第一个 8*4 块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 21 号 4*4 块,B 为 16 号 4*4 块,C 为 18 号 4*4 块,D 为 15 号 4*4 块。23 与 22 具有相同 MV 预测值

     第九个预测对象为第四个 8*8 块的第二个 8*4 块,以其左上角像素 pixel1 和右上角像素 pixel2 为参考点,则:A 为 27 号 4*4 块,B 为 22 号 4*4 块,C 为 24 号 4*4 块,D 为 21 号 4*4 块。29 与 28 具有相同 MV 预测值

===========第二步:确定 A、B、C 的可用性===========

根据 A、B、C 所在宏块是否存在或者是否允许参与预测来判断。如果 C 不可用,采用 D 代替 C

===========第三步:预测 MV ===========

1、如果 A、B、C 三个参考块中只有一个与当前预测对象为同一参考帧,则选取该参考块的 MV 作为最终 MV 预测值

2、当前宏块是否为 8*16 或者 16*8 分割:

(1)、如果当前宏块为 8*16 分割类型:

          对于左边 8*16 分割,如果 A 与当前分割为同一参考帧,则采用 A 的 MV 为该分割的最终 MV 预测值

          对于右边 8*16 分割,如果 C 与当前分割为同一参考帧,则采用 C 的 MV 为该分割的最终 MV 预测值

(2)、如果当前宏块为 16*8 分割类型:

          对于上边 16*8 分割,如果 B 与当前分割为同一参考帧,则采用 B 的 MV 为该分割的最终 MV 预测值

          对于下边 16*8 分割,如果 A 与当前分割为同一参考帧,则采用 A 的 MV 为该分割的最终 MV 预测值

3、其余情况并且 B、C 中有一个可用或者两者都可用,则采用中值预测(取 A、B、C 三者中MV的中值为最终 MV 预测值)

4、其余情况并且 B、C 皆不可用,则采用 A 的 MV 为最终 MV 预测值

【注】:1、宏块分割时的相邻块确定方法与第一步所述过程雷同:16*16 相当于 8*8,8*16、16*8 分别相当于 4*8、8*4

            2、对于不可用的相邻块,其 MV 仍然可能参与 MV 预测,但其值为 0。例如:A 不可用,B、C 可用,则最终可能仍然是在 A、B、C 中取中值,但此时 A 的 MV 为 0;

            3、对于不可用的相邻块,其参考帧索引被设置为 -1,即必然与当前预测对象非同一参考帧;

            4、可以验证:同时满足第三步的第一、第二两种情况时,按第一种情况计算 MV 预测值与按第二种情况计算 MV 预测值等效;

            5、该预测过程即为标准 8.4.1.3 小节的内容,在 JM86 中对应的代码为 SetMotionVectorPredictor 函数;

            6、MBAFF 情况下的相邻块均指对应位置(co-locate)块。

MV预测过程详解(转载) - wpf的日志 - 网易博客 [原创] MV预测过程详解(附图) !!!外文投稿过程详解 - 微笑的日志 - 网易博客 预测大盘(指标公式) - senher的日志 - 网易博客 一款背心拼接的过程 转载 - 红阳聚宝的日志 - 网易博客 处理黄玉蝉的过程 - sdlz7856的日志 - 网易博客 唐山大地震是否有预测 - 丁东的日志 - 网易博客 神奇小六壬预测法 - zz.rlx的日志 - 网易博客 再发时尚背心编织过程 - wsd661982的日志 - 网易博客 饭局(转载) - 闲散人也的日志 - 网易博客 白想(转载) - 香儿的日志 - 网易博客 初中语文新课程标准(转载) - 宋怀明的日志 - 网易博客 史海钩陈:吴清源升九段(转载) - Accelerate的日志 - 网易博客 新年寄语 (转载) - 1949ncxn的日志 - 网易博客 女人哲学(转载) - wind_dancer7的日志 - 网易博客 仲尼梦奠帖 - 闲散人也的日志 - 网易博客(转载) MP4文件格式解析(转载) - eastnapoleon的日志 - 网易博客 各种秘方!(转载) - 北方客的日志 - 网易博客 低年级家长会发言稿(转载) - 石榴石的日志 - 网易博客 【转载】 裸睡...... - kcskcs的日志 - 网易博客 暗恋奶茶的人必听之歌 --- 刘若英唯美伤感MV - 午夜风的日志 - 网易博客 【娱乐】春节喜庆歌曲MV - 秋夢園主☆秋的日志 - 网易博客 【引用】纪录片:追杀本.拉登【高清MV】 - 舒情的日志 - 网易博客 2011年郑州市第一次质量预测卷(语文)参考答案 - 岳小伟的日志 - 网易博客