X264运动搜索算法总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 起始搜索点的确定 (1)
2 整数像素运动搜索过程 (3)
2.1 六边形(HEX,hexagon) (3)
2.2 小菱形(DIA,diamond) (4)
2.3 非对称十字多层六边形(UHM,Uneven-cross Multi-Hexagon-grid) (5)
3 分数像素运动搜索过程 (6)
firstime
2010年1月
1起始搜索点的确定
1、利用下采样图像得到的MV
2、利用空间相邻宏块得到的MV:左、上、左上、右上
3、利用时间相关宏块得到的MV:
4、预测MV
说明:
(1)、1/2 参考平面已经在参考帧解码过程中插出,因此如果计算分数精度代价时,MV指向1/2像素,则可以直接取1/2 平面;
(2)、最后确定的最佳运动矢量一定是指向最佳点的整像素位置,无论整像素位置是否是最佳。
2 整数像素运动搜索过程
2.1 六边形(HEX ,hexagon )
1、 原理图:
其中:红色标记处为起始搜索点。 流程图:
2.2
小菱形(DIA ,
diamond )
1、 原理图:
2、流程图:
2.3 非对称十字多层六边形(UHM,Uneven-cross Multi-Hexagon-grid)1、原理图:
流程图:
3分数像素运动搜索过程
说明:
(1)、是否进行1/4精度的2倍步长和1倍步长搜索由变量subpel_refine 决定。通过该变
量去查表示运算次数的常量表,查到的运算次数不为0 则需要搜索;
(2)、因为当subpel_refine < 3 时,整数像素ME过程中并没有对中值预测MV 进行分数精度搜索,因此当“需要2倍步长搜索,且subpel_refine < 3”时需要进行预测MV 的分数精度搜索;
(3)、“计算最优点四邻域2倍步长点代价”和“计算最优点四邻域1倍步长点代价”两个过程中,如果最优点是中心点,则退出代价计算过程而不用等预定的搜索次数完成;(4)、“计算最优点四邻域2倍步长点代价”和“计算最优点四邻域1倍步长点代价”两个过程中,MV 可能指向1/4 像素点;
(5)、计算色度分量代价过程中是否采用SATD 有待确认;
(6)、是否进行色度ME由两个条件决定:
b_chroma_me = h->mb.b_chroma_me && i_pixel <= PIXEL_8x8;
(7)、“计算最优点四邻域1倍步长点代价”过程中,也要对是否进行色度分量ME 进行判断;
(8)、色度分量ME的代价合入亮度分量ME的代价一起作为宏块代价;
(9)、该过程的输入可能整数点,也可能是1/2、1/4像素点。
待解决的问题:
1、查证X264 的MVD 代价表是否跟JM 一致;
2、计算代价什么时候用SAD,什么时候用SATD;
3、运动搜索范围的确定;
4、运动矢量范围的确定。