一种编解码方法、装置及其设备转让专利
申请号 : CN202110343163.X
文献号 : CN112887715B
文献日 : 2022-03-25
发明人 : 陈方栋
申请人 : 杭州海康威视数字技术股份有限公司
摘要 :
权利要求 :
1.一种解码方法,其特征在于,所述方法包括:在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值,并基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值,其中,所述确定所述当前块包括的各个子块的预测值,包括:
针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的25个运动矢量,将所述25个运动矢量确定为候选运动矢量;其中,所述25个运动矢量的搜索顺序依次为:{Mv(‑2,‑2),Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑
1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑
1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
2.一种编码方法,其特征在于,所述方法包括:在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值,并基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值,其中,所述确定所述当前块包括的各个子块的预测值,包括:
针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的25个运动矢量,将所述25个运动矢量确定为候选运动矢量;其中,所述25个运动矢量的搜索顺序依次为:{Mv(‑2,‑2),Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑
1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑
1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
3.一种解码方法,其特征在于,所述方法包括:在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值,并基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值,其中,所述确定所述当前块包括的各个子块的预测值,包括:
针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的21个运动矢量,将所述21个运动矢量确定为候选运动矢量;其中,所述21个运动矢量的搜索顺序依次为:{Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑1),Mv(1,‑1),Mv(2,‑
1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑1,1),Mv(0,1),Mv(1,
1),Mv(2,1),Mv(‑1,2),Mv(0,2),Mv(1,2)}。
4.一种编码方法,其特征在于,所述方法包括:在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值,并基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值,其中,所述确定所述当前块包括的各个子块的预测值,包括:
针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的21个运动矢量,将所述21个运动矢量确定为候选运动矢量;其中,所述21个运动矢量的搜索顺序依次为:{Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑1),Mv(1,‑1),Mv(2,‑
1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑1,1),Mv(0,1),Mv(1,
1),Mv(2,1),Mv(‑1,2),Mv(0,2),Mv(1,2)}。
5.一种解码装置,其特征在于,所述装置包括:用于在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值的模块;用于基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值的模块;其中,所述确定所述当前块包括的各个子块的预测值,包括:针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,所述以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的25个运动矢量,将所述25个运动矢量确定为候选运动矢量;其中,所述25个运动矢量的搜索顺序依次为:{Mv(‑2,‑2),Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑
1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑
1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
6.一种编码装置,其特征在于,所述装置包括:用于在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值的模块;用于基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值的模块;其中,所述确定所述当前块包括的各个子块的预测值,包括:针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,所述以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的25个运动矢量,将所述25个运动矢量确定为候选运动矢量;其中,所述25个运动矢量的搜索顺序依次为:{Mv(‑2,‑2),Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑
1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑
1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
7.一种解码装置,其特征在于,所述装置包括:用于在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值的模块;用于基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值的模块;其中,所述确定所述当前块包括的各个子块的预测值,包括:针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,所述以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的21个运动矢量,将所述21个运动矢量确定为候选运动矢量;其中,所述21个运动矢量的搜索顺序依次为:{Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑1),Mv(1,‑1),Mv(2,‑
1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑1,1),Mv(0,1),Mv(1,
1),Mv(2,1),Mv(‑1,2),Mv(0,2),Mv(1,2)}。
8.一种编码装置,其特征在于,所述装置包括:用于在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值的模块;用于基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值的模块;其中,所述确定所述当前块包括的各个子块的预测值,包括:针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,所述以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的21个运动矢量,将所述21个运动矢量确定为候选运动矢量;其中,所述21个运动矢量的搜索顺序依次为:{Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑1),Mv(1,‑1),Mv(2,‑
1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑1,1),Mv(0,1),Mv(1,
1),Mv(2,1),Mv(‑1,2),Mv(0,2),Mv(1,2)}。
9.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值,并基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值,其中,所述确定所述当前块包括的各个子块的预测值,包括:
针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的25个运动矢量,将所述25个运动矢量确定为候选运动矢量;其中,所述25个运动矢量的搜索顺序依次为:{Mv(‑2,‑2),Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑
1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑
1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
10.一种编码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:在当前块启用运动矢量调整模式时,确定所述当前块包括的各个子块的预测值,并基于所述当前块包括的各个子块的预测值,确定所述当前块的预测值,其中,所述确定所述当前块包括的各个子块的预测值,包括:
针对当前块包括的至少一个子块中的每个子块,根据所述子块的第一原始运动矢量确定所述子块对应的第一参考块,根据所述子块的第二原始运动矢量确定所述子块对应的第二参考块;以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量;其中,所述初始运动矢量为所述第一原始运动矢量或者所述第二原始运动矢量;
根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,获取所述初始运动矢量对应的代价值和各个候选运动矢量对应的代价值;根据所述初始运动矢量对应的代价值和所述各个候选运动矢量对应的代价值,从所述初始运动矢量和各个候选运动矢量中选择一个运动矢量作为最优运动矢量;
根据所述最优运动矢量确定第一整像素运动矢量调整值,根据所述最优运动矢量对应的代价值、与所述最优运动矢量对应的边缘运动矢量对应的代价值,确定第一分像素运动矢量调整值;根据所述第一整像素运动矢量调整值确定第二整像素运动矢量调整值,并根据所述第一分像素运动矢量调整值确定第二分像素运动矢量调整值;
根据所述第一整像素运动矢量调整值和所述第一分像素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量;
根据所述第二整像素运动矢量调整值和所述第二分像素运动矢量调整值,对所述第二原始运动矢量进行调整,得到所述第二原始运动矢量对应的第二目标运动矢量;
根据所述第一目标运动矢量和所述第二目标运动矢量,确定所述子块的预测值;
其中,以初始运动矢量为中心,从所述初始运动矢量周围的包括所述初始运动矢量的运动矢量中选择运动矢量,将选择的运动矢量确定为候选运动矢量,包括:以初始运动矢量为中心,以搜索范围为2搜索包括所述初始运动矢量在内的25个运动矢量,将所述25个运动矢量确定为候选运动矢量;其中,所述25个运动矢量的搜索顺序依次为:{Mv(‑2,‑2),Mv(‑1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑
1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑
1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
说明书 :
一种编解码方法、装置及其设备
技术领域
背景技术
编码,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的
像素,以达到有效去除视频时域冗余的目的。
考帧的视频图像B存在很强的时域相关性,在需要传输视频图像A的图像块A1(当前图像块)
时,则可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1(即参考图像
块),并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢
量。
A1占用的比特数,因此,上述方式可以节约大量比特。
高编码性能。但是,在当前块是双向块时,获得当前块的第一原始运动矢量和第二原始运动
矢量后,如何对第一原始运动矢量和第二原始运动矢量进行调整,目前并没有合理的解决
方案,也就是说,针对双向块的场景,存在预测质量不高,预测错误等问题,从而导致编码性
能较差。
发明内容
块的第二原始运动矢量确定所述当前块对应的第二参考块;根据所述第一参考块的第一像
素值和所述第二参考块的第二像素值,对第一原始运动矢量和第二原始运动矢量进行调
整,得到所述第一原始运动矢量对应的第一目标运动矢量和所述第二原始运动矢量对应的
第二目标运动矢量;根据所述第一目标运动矢量和所述第二目标运动矢量对所述当前块进
行编码或者解码。
块,根据所述当前块的第二原始运动矢量确定所述当前块对应的第二参考块;处理模块,用
于根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,对第一原始运动矢
量和第二原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目标运动矢量和
所述第二原始运动矢量对应的第二目标运动矢量;编解码模块,用于根据所述第一目标运
动矢量和所述第二目标运动矢量对所述当前块进行编码或者解码。
指令,以实现如下步骤:若当前块的特征信息满足特定条件,则根据所述当前块的第一原始
运动矢量确定所述当前块对应的第一参考块,根据所述当前块的第二原始运动矢量确定所
述当前块对应的第二参考块;根据所述第一参考块的第一像素值和所述第二参考块的第二
像素值,对第一原始运动矢量和第二原始运动矢量进行调整,得到所述第一原始运动矢量
对应的第一目标运动矢量和所述第二原始运动矢量对应的第二目标运动矢量;根据所述第
一目标运动矢量和所述第二目标运动矢量对所述当前块进行编码。
指令,以实现如下步骤:若当前块的特征信息满足特定条件,则根据所述当前块的第一原始
运动矢量确定所述当前块对应的第一参考块,根据所述当前块的第二原始运动矢量确定所
述当前块对应的第二参考块;根据所述第一参考块的第一像素值和所述第二参考块的第二
像素值,对第一原始运动矢量和第二原始运动矢量进行调整,得到所述第一原始运动矢量
对应的第一目标运动矢量和所述第二原始运动矢量对应的第二目标运动矢量;根据所述第
一目标运动矢量和所述第二目标运动矢量对所述当前块进行解码。
和第二目标运动矢量对当前块进行编码或者解码,而不是直接根据第一原始运动矢量和第
二原始运动矢量对当前块进行编码或者解码,从而解决预测质量不高,预测错误等问题,并
提高编码性能和编码效率。
附图说明
附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申
请实施例的这些附图获得其他的附图。
具体实施方式
式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一
个或多个相关联的列出项目的任何或所有可能组合。
在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以
被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或
“当……时”或“响应于确定”。
去除视频空域冗余的目的。帧内预测中规定了多种预测模式,每一种预测模式都对应一种
纹理方向(DC模式除外),当前块预测像素由其预测方向上相邻块的边界重构像素值生成。
举例说明,如果图像的纹理是呈现水平状排布的,那么选择水平预测模式可以更好的预测
图像信息。帧间预测是指,利用视频时域的相关性,由于视频序列通常包含有较强的时域相
关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的
目的。主要的视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为
当前图像的每一个像素块在之前的已编码图像中寻找一个最佳匹配块,该过程称为运动估
计(Motion Estimation,ME)。
码端,如果对每个块的运动矢量进行独立编码和传输,特别是划分成小尺寸的块时,需要消
耗相当多的比特。为了降低用于编码运动矢量的比特数,则利用相邻图像块之间的空间相
关性,根据相邻已编码块的运动矢量对当前待编码块的运动矢量进行预测,然后对预测差
进行编码。这样,可以有效地降低表示运动矢量的比特数。在对当前块的运动矢量编码过程
中,首先使用相邻已编码块的运动矢量预测当前块的运动矢量,然后对运动矢量的预测值
(MVP,Motion Vector Prediction)与运动矢量的真正估值之间的差值(MVD,MotionVector
Difference)进行编码,从而有效降低MV的编码比特数。
信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个
参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几
个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引
值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,
可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
的,帧间的预测像素指的是当前块从参考帧(重建像素帧)导出的像素值,由于像素位置离
散,需要通过插值运算来获取最终的预测像素。预测像素与原始像素越接近,两者相减得到
的残差能量越小,编码压缩性能越高。
素值Y1/2,则需要通过周围已有像素值X插值获得。若采用抽头数为N的插值滤波器,则需要
通过周围N个整像素插值获得。
解码框架实现本申请实施例的解码端处理流程。具体的,在视频编码框架和视频解码框架
中,包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变
换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流
程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
决方案。本申请实施例中,在当前块是双向块时,先判断当前块的特征信息是否满足特定条
件,如果是,则根据第一原始运动矢量确定当前块对应的第一参考块,根据当前块的第二原
始运动矢量确定第二参考块,并根据第一参考块的第一像素值和第二参考块的第二像素
值,对第一原始运动矢量和第二原始运动矢量进行调整,得到第一目标运动矢量和第二目
标运动矢量。
块进行编码或者解码,可以提高编码性能和编码效率。
考块。该特征信息包括但不限于以下一种或者多种:当前块对应的运动信息预测模式;当前
块对应的运动信息属性;当前块的尺寸信息。
模式,则可以确定当前块对应的运动信息预测模式满足特定条件;或者,若当前块对应的运
动信息预测模式为用于帧间预测值与帧内预测值联合生成新预测值的融合模式,则可以确
定当前块对应的运动信息预测模式满足特定条件。
不同方向的运动信息,则确定当前块对应的运动信息属性满足特定条件;或者,若当前块对
应的运动信息属性为当前块的运动信息包括两个不同方向的运动信息,两个不同方向的运
动信息对应的两个参考帧与当前帧的距离相同,则确定当前块对应的运动信息属性满足特
定条件;或者,若当前块对应的运动信息属性为当前块复用周围块的运动信息,则确定当前
块对应的运动信息属性满足特定条件;或者,若当前块对应的运动信息属性为当前块的每
个子块的运动信息相同,则确定当前块对应的运动信息属性满足特定条件。
帧的前面,第二参考帧位于当前块所处当前帧的后面。
于:若当前块的宽度值位于第一区间[第一阈值,第二阈值]的范围内,则可以确定当前块的
尺寸信息满足特定条件;或者,若当前块的高度值位于第二区间[第三阈值,第四阈值]的范
围内,则可以确定当前块的尺寸信息满足特定条件;或者,若当前块的宽度值与当前块的高
度值的面积位于第三区间[第五阈值,第六阈值]的范围内,则可以确定当前块的尺寸信息
满足特定条件;或者,若所述宽度值位于第一区间[第一阈值,第二阈值]的范围内、所述高
度值位于第二区间[第三阈值,第四阈值]的范围内、且所述面积位于第三区间[第五阈值,
第六阈值]的范围内,则可以确定当前块的尺寸信息满足特定条件。
第四阈值均不做限制,例如,第三阈值可以为8,第四阈值可以为128。第五阈值可以小于第
六阈值,对此第五阈值和第六阈值均不做限制,例如,第五阈值可以为64,第六阈值可以为
128*128
当前块的第一原始运动矢量,从第一参考帧中确定当前块对应的第一参考块;基于当前块
的第二原始运动矢量,从第二参考帧中确定当前块对应的第二参考块。第一参考块中每个
像素点的第一像素值,是通过对第一参考块中的相邻像素点的像素值进行插值得到,或者,
通过对第一参考块中的相邻像素点的像素值进行拷贝得到;第二参考块中每个像素点的第
二像素值,是通过对第二参考块中的相邻像素点的像素值进行插值得到,或者,通过对第二
参考块中的相邻像素点的像素值进行拷贝得到。第一参考块的尺寸与第二参考块的尺寸相
同,第一参考块的宽度值基于当前块的宽度值与搜索范围确定,第一参考块的高度值基于
当前块的高度值与搜索范围确定。
和第二原始运动矢量对应的第二目标运动矢量。
的第一目标运动矢量和第二目标运动矢量。
一像素值和第二像素值,确定子块的第一整像素运动矢量调整值和第二整像素运动矢量调
整值、和/或,子块的第一分像素运动矢量调整值和第二分像素运动矢量调整值。然后,可以
根据第一整像素运动矢量调整值和/或第一分像素运动矢量调整值,对第一原始运动矢量
进行调整,得到子块的第一目标运动矢量。根据第二整像素运动矢量调整值和/或第二分像
素运动矢量调整值,对第二原始运动矢量进行调整,得到子块的第二目标运动矢量。
动矢量调整值,可以包括:将第一原始运动矢量或者第二原始运动矢量确定为中心运动矢
量;确定与中心运动矢量对应的边缘运动矢量;根据第一像素值和第二像素值,获取中心运
动矢量对应的第一代价值、边缘运动矢量对应的第二代价值;然后,根据第一代价值和第二
代价值,从中心运动矢量和边缘运动矢量中选择一个运动矢量作为最优运动矢量,并判断
是否满足结束条件;如果否,则将最优运动矢量确定为中心运动矢量,返回执行确定与中心
运动矢量对应的边缘运动矢量;如果是,则根据最优运动矢量确定子块的第一整像素运动
矢量调整值和第二整像素运动矢量调整值;根据最优运动矢量确定子块的第一分像素运动
矢量调整值和第二分像素运动矢量调整值。
S)、边缘运动矢量(x+S,y)、边缘运动矢量(x‑S,y)、边缘运动矢量(x+right,y+down);或者,
将中心运动矢量(x,y)向不同方向偏移S,顺序得到不同方向的边缘运动矢量(x,y‑S)、边缘
运动矢量(x,y+S)、边缘运动矢量(x‑S,y)、边缘运动矢量(x+S,y)、边缘运动矢量(x+right,
y+down)。边缘运动矢量(x+right,y+down)的默认值为(x‑S,y‑S);若边缘运动矢量(x+S,y)
的代价值小于边缘运动矢量(x‑S,y)的代价值,则right为S;若边缘运动矢量(x,y+S)的代
价值小于边缘运动矢量(x,y‑S)的代价值,则down为S;或者,若边缘运动矢量(x+S,y)的代
价值小于或等于边缘运动矢量(x‑S,y)的代价值,则right为S;若边缘运动矢量(x,y+S)的
代价值小于或等于边缘运动矢量(x,y‑S)的代价值,则down为S。
未下采样的第二像素值,获取中心运动矢量对应的第一代价值、边缘运动矢量对应的第二
代价值。或者,对第一像素值进行下采样操作,对第二像素值进行下采样操作;然后,根据下
采样后的第一像素值和下采样后的第二像素值,获取中心运动矢量对应的第一代价值、边
缘运动矢量对应的第二代价值。或者,对第一像素值进行移位和下采样操作,对第二像素值
进行移位和下采样操作;然后,根据操作后的第一像素值和操作后的第二像素值,获取中心
运动矢量对应的第一代价值、边缘运动矢量对应的第二代价值。
动矢量调整值,可以包括:以第一原始运动矢量或者第二原始运动矢量为中心,从周围的运
动矢量中选择部分或全部运动矢量,将选择的运动矢量作为候选运动矢量;根据第一像素
值和第二像素值,获取第一原始运动矢量或第二原始运动矢量对应的第三代价值、候选运
动矢量对应的第四代价值;根据第三代价值和第四代价值,从第一原始运动矢量或第二原
始运动矢量、候选运动矢量中选择一个运动矢量作为最优运动矢量;根据最优运动矢量确
定子块的第一整像素运动矢量调整值和第二整像素运动矢量调整值;根据最优运动矢量确
定子块的第一分像素运动矢量调整值和第二分像素运动矢量调整值。
整像素运动矢量调整值,根据第一整像素运动矢量调整值确定子块的第二整像素运动矢量
调整值。
应的代价值,确定子块的第一分像素运动矢量调整值,并根据第一分像素运动矢量调整值
确定子块的第二分像素运动矢量调整值。
块进行编码处理;对于解码端来说,解码端可以根据第一目标运动矢量和第二目标运动矢
量对当前块进行解码处理。
三参考块的第三像素值和第四参考块的第四像素值进行加权,得到子块的预测值;根据每
个子块的预测值确定当前块的预测值。
运动矢量,从第二参考帧中确定子块对应的第六参考块,并对第六参考块中的像素值进行
插值,得到第四参考块。
得到第三参考块;基于子块的第二目标运动矢量,从第二参考帧中确定子块对应的第九参
考块,利用第九参考块中的像素值构造第十参考块,并对第十参考块中的像素值进行插值,
得到第四参考块。
标运动矢量和该第二目标运动矢量用于当前帧的环路滤波、该第一目标运动矢量和该第二
目标运动矢量用于后续帧的时域参考、和/或,该第一目标运动矢量和该第二目标运动矢量
用于当前帧的空域参考。
和第二目标运动矢量对当前块进行编码或者解码,而不是直接根据第一原始运动矢量和第
二原始运动矢量对当前块进行编码或者解码,从而解决预测质量不高,预测错误等问题,并
提高编码性能和编码效率。
用运动矢量调整模式(即本申请技术方案),执行步骤302。
二参考块。为了区分方便,将第一参考块中每个像素点的像素值称为第一像素值,将第二参
考块中每个像素点的像素值称为第二像素值。
双向运动信息,对此获取方式不做限制。该双向运动信息包括第一参考帧和第一原始运动
矢量、第二参考帧和第二原始运动矢量。
帧。当然,上述只是一个示例,二者的距离也可以不同。
始运动矢量为(‑2.5,‑3.5)。当然,上述只是一个示例,第一原始运动矢量和第二原始运动
矢量也可以不存在镜像对称关系。
端根据第一参考块的第一像素值和第二参考块的第二像素值,对第二原始运动矢量进行调
整,得到该子块的第二目标运动矢量。
微调,以获得更好的第一目标运动矢量和第二目标运动矢量,继而利用第一目标运动矢量
和第二目标运动矢量来生成失真更小的预测值。
后,该子块对应第一目标运动矢量和第二目标运动矢量。
对子块B,子块B对应第一原始运动矢量B1和第二原始运动矢量B2,进行调整后,子块B对应
第一目标运动矢量B3和第二目标运动矢量B4。
始运动矢量B2可以相同,均是当前块的第二原始运动矢量。
的第二原始运动矢量分别进行调整,因此,子块A对应的第二目标运动矢量A4与子块B对应
的第二目标运动矢量B4可以相同或者不同。
量和第二目标运动矢量对子块A进行运动补偿,并利用子块B的第一目标运动矢量和第二目
标运动矢量对子块B进行运动补偿。
块的运动信息不够准确,因此,启用运动矢量调整模式,执行步骤402。如果当前块的特征信
息不满足特定条件,则说明当前块的运动信息已经足够准确,因此,不启用运动矢量调整模
式,不需要采用本申请提出的运动矢量调整方式。
二参考块。为了区分方便,将第一参考块中每个像素点的像素值称为第一像素值,将第二参
考块中每个像素点的像素值称为第二像素值。
端根据第一参考块的第一像素值和第二参考块的第二像素值,对第二原始运动矢量进行调
整,得到该子块的第二目标运动矢量。
启用运动矢量调整模式。否则,不启用运动矢量调整模式。
用子块运动信息预测模式。当前块对应的运动信息属性包括:当前块的运动信息包括两个
不同方向的运动信息。当前块的尺寸信息包括:当前块的尺寸在限定范围内,对此尺寸在限
定范围内,在后续实施例介绍。
启用运动矢量调整模式。否则,不启用运动矢量调整模式。
对应的运动信息预测模式不采用MMVD模式(即用于编码运动信息差值的融合模式)、SB
Merge模式(即采用子块运动信息的融合模式)、或TPM模式(即用于三角预测的融合模式)。
包括:当前块的尺寸在限定范围内。
动信息差的融合模式(称为MMVD模式);采用子块运动信息的融合模式(称为SB Merge模
式);用于帧间预测值与帧内预测值联合生成新预测值的融合模式(称为CIIP模式)。
启用运动矢量调整模式。否则,不启用运动矢量调整模式。
三角预测的融合模式);或者,当前块对应的运动信息预测模式不采用MMVD模式(即用于编
码运动信息差值的融合模式)、或SB Merge模式(即采用子块运动信息的融合模式)。
包括:当前块的尺寸在限定范围内。
启用运动矢量调整模式。否则,不启用运动矢量调整模式。
角预测的融合模式)、或MMVD模式(即用于编码运动信息差值的融合模式);或者,当前块对
应的运动信息预测模式不采用SB Merge模式(即采用子块运动信息的融合模式)。
包括:当前块的尺寸在限定范围内。
启用运动矢量调整模式。否则,不启用运动矢量调整模式。
信息预测模式采用Normal Merge模式、CIIP模式、或TPM模式;当前块对应的运动信息预测
模式不采用MMVD模式、或SB Merge模式;或者,当前块对应的运动信息预测模式采用Normal
Merge模式、CIIP模式、TPM模式、或MMVD模式;当前块对应的运动信息预测模式不采用SB
Merge模式。
这个限制条件移除。当前块的尺寸信息包括:当前块的尺寸在限定范围内。
示例性的,第一阈值、第二阈值、第三阈值、第四阈值,均可以为2的n次方,n为大于等于1的
整数。当前块的面积在[第五阈值,第六阈值]范围内,第五阈值可以为64,第六阈值可以为
128*128=16384。示例性的,第五阈值、第六阈值,均可以为4的m次方,m为大于等于1的整
数。在上述例子中,表达式[a,b]可以表示大于等于a,且小于等于b。
始运动矢量,从第二参考帧中确定当前块对应的第二参考块,第二参考块中每个像素点的
像素值称为第二像素值,以下对此进行说明。
二参考块中每个像素点的第二像素值,是通过对第二参考块中的相邻像素点的像素值进行
插值得到,或者,通过对第二参考块中的相邻像素点的像素值进行拷贝得到。第一参考块的
尺寸与第二参考块的尺寸相同,第一参考块/第二参考块的宽度值基于当前块的宽度值与
搜索范围确定,第一参考块/第二参考块的高度值基于当前块的高度值与搜索范围确定。
1)*(H+FS‑1)的整像素块,将这个整像素块记为整像素块A。从第二原始运动矢量MV1在第二
参考帧的对应位置,得到面积为(W+FS‑1)*(H+FS‑1)的整像素块,将这个整像素块记为整像
素块B。
记为第一参考块。基于面积为(W+FS‑1)*(H+FS‑1)的整像素块B,可以通过双线性插值的方
式,获得尺寸为(W+2*SR)*(H+2*SR)的初始参考像素块,可以将这个初始参考像素块记为第
二参考块。
记为第一参考块。基于面积为(W+FS‑1)*(H+FS‑1)的整像素块B,可以通过直接拷贝的方式,
获得尺寸为(W+2*SR)*(H+2*SR)的初始参考像素块,将这个初始参考像素块记为第二参考
块。
获得尺寸为(W+2*SR)*(H+2*SR)的初始参考像素块,即第一参考块(如Pred_Inter0)和第二
参考块(如Pred_Inter1)。
到,对此不做限制。通过拷贝获得第一参考块/第二参考块是指:第一参考块/第二参考块中
每个像素点的像素值,通过对第一参考块/第二参考块中的相邻像素点的像素值进行拷贝
得到,对此不做限制。
第二参考块的高度值为H+2*SR。W为当前块的宽,H为当前块的高,SR为搜索范围,即后续实
施例的迭代次数,SR即目标运动矢量与原始运动矢量最大水平/竖直分量插值,如SR可以为
2等。
运动矢量;根据第一参考块的第一像素值和第二参考块的第二像素值,对第二原始运动矢
量进行调整,得到子块的第二目标运动矢量。
将第一原始运动矢量(4,4)确定为中心运动矢量为例,将第二原始运动矢量(‑4,‑4)确定为
中心运动矢量的流程类似。
动矢量(x+right,y+down)。right可以为S或者‑S,down可以为S或者‑S,right和down的确定
方式,参见后续实施例。
(0,1),边缘运动矢量(0,‑1),边缘运动矢量(1,0),边缘运动矢量(‑1,0),边缘运动矢量(1,
1)。
且子参考块A1是第一参考块中最中心的W*H的块。
参考块B1是第二参考块中最中心的W*H的块。
参考块A2是第一参考块中的W*H的块。
小为当前块的大小,是第二参考块中的W*H的块。
5、边缘运动矢量(1,1)对应的代价值6。
量。例如,假设边缘运动矢量(0,1)对应的代价值2最小,则可以将代价值2对应的边缘运动
矢量(0,1)作为最优运动矢量。
过程。若迭代次数/搜索范围已经达到2次,即步骤a2‑步骤a4已经执行两次,则满足结束条
件;否则,不满足结束条件。
素运动矢量调整值与第一整像素运动矢量调整值对称。
此完成迭代过程,则第一整像素运动矢量调整值为(0,2),即边缘运动矢量(0,1)与边缘运
动矢量(0,1)的和。
心进行第二次迭代,第二次迭代过程,最优运动矢量为边缘运动矢量(0,1),即最优运动矢
量可以对应最优运动矢量(4,6)。
4)的差,即第一整像素运动矢量调整值为(0,2)。
动矢量调整值确定第二分像素运动矢量调整值。
=1、2、4和8。然后,将(x0,y0)赋值给deltaMv,SPMV=deltaMv/2N,若当前为1/16的运动矢
量像素精度,则SPMV为(x0/16,y0/16)。
8,N为4,运动矢量像素精度为1/16,N为8。
心,最优运动矢量(0,0)的边缘运动矢量(1,0)的代价值;E(0,‑1)是以最优运动矢量为中
心,最优运动矢量(0,0)的边缘运动矢量(0,‑1)的代价值;E(0,1)是以最优运动矢量为中
心,最优运动矢量(0,0)的边缘运动矢量(0,1)的代价值。针对各运动矢量的代价值,其确定
方式可以参见上述实施例,在此不再赘述。
矢量调整值的对称值。例如,若第一分像素运动矢量调整值为(1,0),则第二分像素运动矢
量调整值为(‑1,0),即(1,0)的对称值。
运动矢量;根据第一参考块的第一像素值和第二参考块的第二像素值,对第二原始运动矢
量进行调整,得到子块的第二目标运动矢量。
第二原始运动矢量记为Org_MV1,对第一原始运动矢量Org_MV0进行调整后,得到的第一目
标运动矢量记为Refined_MV0,对第二原始运动矢量Org_MV1进行调整后,得到的第二目标
运动矢量记为Refined_MV1。
先将IntegerDeltaMV初始化为(0,0),每次迭代执行如下过程:
运动矢量在第二参考块中的参考像素,复制获得预测值块B1(即第二参考块最中心的W*H的
块)。基于预测值块A1和预测值块B1获得初始代价值cost(初始代价值为基于预测值块A1和
预测值块B1的SAD(绝对值差和,sum of abstract distortion),确定方式参见后续实施
例)。若该初始代价值cost小于4*dx*dy/2,dx和dy是当前子块的宽度和高度,则直接跳过后
续搜索过程,执行步骤b2,并将notZeroCost设为false。
这五个偏移MV的代价值的计算与比较过程。
参考块中进行中心位置偏移‑MVOffset(与MVOffset相反)的W*H块),计算两个预测值块的
下采样SAD作为MVOffset的代价值。
次数达到SR,则执行步骤b2,若迭代次数未达到SR,则将最优MV作为中心,进行下一次迭代
搜索过程,即返回步骤b11。
为(0,0),然后执行如下过程:
IntegerDeltaMV和SPMV对原始运动矢量进行调整。
y0)为:x0=N*(E(‑1,0)–E(1,0))/(E(‑1,0)+E(1,0)–2*E(0,0)),y0=N*(E(0,‑1)–E(0,1))/
(E(0,‑1)+E(0,1)–2*E(0,0))。
度,则SPMV可以为(x0/16,y0/16)。
IntegerDeltaMV+SPMV。
二整像素运动矢量调整值,‑SPMV是SPMV的对称值,即第二分像素运动矢量调整值,因此,‑
BestMVoffset=(‑IntegerDeltaMV)+(‑SPMV)时,即第二整像素运动矢量调整值与第二分
像素运动矢量调整值的和。
MV1,实现方式与实施例12类似,不同之处在于:
是继续后续搜索过程,即需要执行步骤b12。
MV1,实现方式与实施例12类似,不同之处在于:
是继续后续搜索过程,即需要执行步骤b12。
也可以进行下一次迭代搜索过程。
MV1,实现方式与实施例12类似,不同之处在于:
程(即步骤b22),而不是只有当notZeroCost不为false、且deltaMV为(0,0)时,才可以进行
分像素偏移计算过程。
MV1,实现方式与实施例12类似,不同之处在于:
notZeroCost不为false,且当前最优整像素的上下左右相隔1个整像素的四个点的代价值
已在步骤b1计算获得时,才进行后续处理,否则,直接利用IntegerDeltaMV对原始运动矢量
进行调整”。
相隔1个整像素的四个点的代价值”,是必要条件。
MV1,实现方式与实施例12类似,不同之处在于:
像素的上下左右相隔1个整像素的四个点的代价值已在步骤b1计算获得时,才进行后续处
理(即分像素偏移计算过程),否则,直接利用IntegerDeltaMV对原始运动矢量进行调整”。
MV1,实现方式与实施例12类似,不同之处在于:
素的上下左右相隔1个整像素的四个点的代价值已在步骤b1计算获得时,才进行后续处理
(步骤b22的分像素偏移计算过程),否则采用步骤b23进行处理”。
然后,以MV_inter_nearest为中心,进行步骤b22的分像素偏移计算过程,也就是说,以MV_
inter_nearest为中心获取SPMV。
像素点MV_inter_nearest,且整像素点MV_inter_nearest的上下左右相隔1个整像素的四
个点的代价值,均已经在步骤b1计算获得。
小于‑2N,则可以将x0/y0赋值为‑2N。对于1/2、1/4、1/8和1/16的运动矢量像素精度,则N=1、
2、4和8。
边缘运动矢量(x,y+S)、边缘运动矢量(x,y‑S)、边缘运动矢量(x+S,y)、边缘运动矢量(x‑S,
y)、边缘运动矢量(x+right,y+down)。或者,可以将中心运动矢量(x,y)向不同方向偏移S,
顺序得到不同方向的边缘运动矢量(x,y‑S)、边缘运动矢量(x,y+S)、边缘运动矢量(x‑S,
y)、边缘运动矢量(x+S,y)、边缘运动矢量(x+right,y+down)。
0)、(right,down)的顺序,得到5个边缘运动矢量。
(从‑S修改为S);若边缘运动矢量(x,y+S)的代价值小于边缘运动矢量(x,y‑S)的代价值,则
down为S(从‑S修改为S)。或者,若边缘运动矢量(x+S,y)的代价值小于或等于边缘运动矢量
(x‑S,y)的代价值,则right为S(从‑S修改为S);若边缘运动矢量(x,y+S)的代价值小于或等
于边缘运动矢量(x,y‑S)的代价值,则down为S(从‑S修改为S)。
量(‑1,0)的代价值,则right为1;若边缘运动矢量(0,1)的代价值小于边缘运动矢量(0,‑1)
的代价值,则down为1。或者,若边缘运动矢量(1,0)的代价值小于或等于边缘运动矢量(‑1,
0)的代价值,则right为1;若边缘运动矢量(0,1)的代价值小于或等于边缘运动矢量(0,‑1)
的代价值,则down为1。
量(‑1,0)的代价值,则right为1;若边缘运动矢量(0,1)的代价值小于边缘运动矢量(0,‑1)
的代价值,则down为1。或者,若边缘运动矢量(1,0)的代价值小于或等于边缘运动矢量(‑1,
0)的代价值,则right为1;若边缘运动矢量(0,1)的代价值小于或等于边缘运动矢量(0,‑1)
的代价值,则down为1。
动矢量;根据第一参考块的第一像素值和第二参考块的第二像素值对第二原始运动矢量进
行调整,得到子块的第二目标运动矢量。
从第二参考块中复制获取第二原始运动矢量对应的子参考块B1,子参考块B1是第二原始运
动矢量在第二参考块中的子参考块,子参考块B1的大小为当前块的大小。然后,利用子参考
块A1的第一像素值和子参考块B1的第二像素值,获取第一原始运动矢量对应的第三代价
值。
的大小。从第二参考块中复制获取候选运动矢量的对称运动矢量对应的子参考块B2,子参
考块B2是对称运动矢量在第二参考块中的子参考块,子参考块B2的大小为当前块的大小。
利用子参考块A2的第一像素值和子参考块B2的第二像素值,获取候选运动矢量对应的第四
代价值。
矢量、或任意一个候选运动矢量)作为最优运动矢量。
以根据最优运动矢量和第一原始运动矢量确定第一整像素运动矢量调整值,并根据第一整
像素运动矢量调整值确定第二整像素运动矢量调整值,第二整像素运动矢量调整值与第一
整像素运动矢量调整值对称。
调整值为最优运动矢量(4,6)与第一原始运动矢量(4,4)的差,即第一整像素运动矢量调整
值为(0,2)。
动矢量调整值确定第二分像素运动矢量调整值。
=1、2、4和8。然后,将(x0,y0)赋值给deltaMv,SPMV=deltaMv/2N,若当前为1/16的运动矢
量像素精度,则SPMV为(x0/16,y0/16)。
以最优运动矢量为中心,最优运动矢量(0,0)的边缘运动矢量(1,0)的代价值;E(0,‑1)是以
最优运动矢量为中心,最优运动矢量(0,0)的边缘运动矢量(0,‑1)的代价值;E(0,1)是以最
优运动矢量为中心,最优运动矢量(0,0)的边缘运动矢量(0,1)的代价值。针对各运动矢量
的代价值,确定方式参见上述实施例。
矢量调整值的对称值。例如,若第一分像素运动矢量调整值为(1,0),则第二分像素运动矢
量调整值为(‑1,0),即(1,0)的对称值。
动矢量;根据第一参考块的第一像素值和第二参考块的第二像素值对第二原始运动矢量进
行调整,得到子块的第二目标运动矢量。
MV0,将第二原始运动矢量记为Org_MV1,将第一目标运动矢量记为Refined_MV0,将第二目
标运动矢量记为Refined_MV1。
的25个点中选择部分或者全部运动矢量,将其作为候选运动矢量。然后,确定第一原始运动
矢量的代价值,并确定每个候选运动矢量的代价值。然后,将代价值最小的运动矢量作为最
优运动矢量。
迭代再选取部分运动矢量。基于此,由于一次性的选取所有待处理的候选运动矢量,因此,
可以对这些候选运动矢量进行并行处理,得到每个候选运动矢量的代价值,从而减少计算
复杂度,提高编码性能。
MV1,实现方式与实施例21、实施例22类似。
运动矢量,确定这些运动矢量的代价值,并确定每个运动矢量的代价值。然后,将代价值最
小的运动矢量作为最优运动矢量。
MV1,实现方式与实施例21、实施例22类似。本实施例中,由于一次性的选取所有待处理的候
选运动矢量,因此,可以对这些候选运动矢量进行并行处理,得到每个候选运动矢量的代价
值,从而减少计算复杂度,提高编码性能。
(2*SR+1)*(2*SR+1)个点中,选择N个(N大于等于1,小于等于(2*SR+1)*(2*SR+1))候选点。
确定这N个点对应的运动矢量的代价值。按一定顺序扫描这N个点的代价值,选择最小代价
值的运动矢量作为最优运动矢量。若代价值相等则优先选取顺序靠前的候选点。
1,‑2),Mv(0,‑2),Mv(1,‑2),Mv(2,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑1),Mv(1,‑1),Mv(2,‑
1),Mv(‑2,0),Mv(‑1,0),Mv(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑1,1),Mv(0,1),Mv(1,
1),Mv(2,1),Mv(‑2,2),Mv(‑1,2),Mv(0,2),Mv(1,2),Mv(2,2)}。
素运动矢量调整值,确定方式参见上述实施例。
Mv(1,‑2),Mv(‑2,‑1),Mv(‑1,‑1),Mv(0,‑1),Mv(1,‑1),Mv(2,‑1),Mv(‑2,0),Mv(‑1,0),Mv
(0,0),Mv(1,0),Mv(2,0),Mv(‑2,1),Mv(‑1,1),Mv(0,1),Mv(1,1),Mv(2,1),Mv(‑1,2),Mv
(0,2),Mv(1,2)}。确定这21个点的运动矢量对应的代价值,并按照上述顺序进行扫描,获得
代价值最小的运动矢量作为最优偏移MV,利用最优偏移MV可以确定整像素运动矢量调整值
和分像素运动矢量调整值,确定方式参见上述实施例。
以为:{Mv(0,0),Mv(‑1,0),Mv(0,‑1),Mv(1,0),Mv(0,1),Mv(‑1,1),Mv(‑1,‑1),Mv(1,‑1),
Mv(1,1),Mv(0,2),Mv(‑2,0),Mv(0,‑2),Mv(2,0),Mv(1,2),Mv(‑1,2),Mv(‑2,1),Mv(‑2,‑
1),Mv(‑1,‑2),Mv(1,‑2),Mv(2,‑1),Mv(2,1),Mv(‑2,2),Mv(‑2,‑2),Mv(2,‑2),Mv(2,2)}。
确定这25个点的运动矢量对应的代价值,并按照上述顺序进行扫描,获得代价值最小的运
动矢量作为最优偏移MV,利用最优偏移MV可以确定整像素运动矢量调整值和分像素运动矢
量调整值,确定方式参见上述实施例。
{Mv(0,0),Mv(‑1,0),Mv(0,‑1),Mv(1,0),Mv(0,1),Mv(‑1,1),Mv(‑1,‑1),Mv(1,‑1),Mv(1,
1),Mv(0,2),Mv(‑2,0),Mv(0,‑2),Mv(2,0),Mv(1,2),Mv(‑1,2),Mv(‑2,1),Mv(‑2,‑1),Mv(‑
1,‑2),Mv(1,‑2),Mv(2,‑1),Mv(2,1)}。
素运动矢量调整值,确定方式参见上述实施例。
{Mv(0,0),Mv(‑1,0),Mv(0,‑1),Mv(1,0),Mv(0,1),Mv(‑1,1),Mv(‑1,‑1),Mv(1,‑1),Mv(1,
1),Mv(0,2),Mv(‑2,0),Mv(0,‑2),Mv(2,0)}。确定这13个点的运动矢量对应的代价值,并按
照上述顺序进行扫描,获得代价值最小的运动矢量作为最优偏移MV,利用最优偏移MV可以
确定整像素运动矢量调整值和分像素运动矢量调整值,确定方式参见上述实施例。
MV1,实现方式与实施例21、实施例22类似。本实施例中,由于一次性的选取所有待处理的候
选运动矢量,因此,可以对这些候选运动矢量进行并行处理,得到每个候选运动矢量的代价
值,从而减少计算复杂度,提高编码性能。
(2*SR+1)*(2*SR+1)个点中,选择N个(N大于等于1,小于等于(2*SR+1)*(2*SR+1))候选点。
确定这N个点对应的运动矢量的代价值。按一定顺序扫描这N个点的代价值,选择最小代价
值的运动矢量作为最优运动矢量。若代价值相等则优先选取顺序靠前的候选点。
与原始运动矢量的大小无关,而距离中心的第二层候选点,顺序与原始运动矢量的大小有
关。这些候选点的顺序为:{Mv(0,0),Mv(‑1,0),Mv(0,‑1),Mv(1,0),Mv(0,1),Mv(‑1,1),Mv
(‑1,‑1),Mv(1,‑1),Mv(1,1),Mv(sign_H*2,0),Mv(sign_H*2,sign_V*1),Mv(0,sign_V*2),
Mv(0,sign_V*2)}。第一原始运动矢量记为MV0,水平分量为MV0_Hor,垂直分量为MV0_Ver。
若MV0_Hor大于等于0,则sign_H=1;否则sign_H=‑1;若MV0_Ver大于等于0,则sign_V=1;
否则sign_V=‑1。
素运动矢量调整值,确定方式参见上述实施例。
与原始运动矢量的大小无关,而距离中心的第二层候选点,顺序与原始运动矢量的大小有
关,这些候选点的顺序为:{Mv(0,0),Mv(‑1,0),Mv(0,‑1),Mv(1,0),Mv(0,1),Mv(‑1,1),Mv
(‑1,‑1),Mv(1,‑1),Mv(1,1),Mv(sign_H*2,0),Mv(sign_H*2,sign_V*1),Mv(0,sign_V*2),
Mv(0,sign_V*2)}。第一原始运动矢量记为MV0,水平分量为MV0_Hor,垂直分量为MV0_Ver。
若MV0_Hor大于0,则sign_H=1;否则sign_H=‑1;若MV0_Ver大于0,则sign_V=1;否则
sign_V=‑1。
素运动矢量调整值,确定方式参见上述实施例。
参考块的第一像素值和第二参考块的第二像素值,获取第一原始运动矢量对应的第三代价
值、候选运动矢量对应的第四代价值。
应的第三代价值、候选运动矢量对应的第四代价值。
的第一代价值、边缘运动矢量对应的第二代价值、第一原始运动矢量对应的第三代价值、候
选运动矢量对应的第四代价值。
矢量对应的第一代价值、边缘运动矢量对应的第二代价值、第一原始运动矢量对应的第三
代价值、候选运动矢量对应的第四代价值。
制获取中心运动矢量的对称运动矢量对应的子参考块B1,利用子参考块A1的第一像素值和
子参考块B1的第二像素值,获取中心运动矢量对应的代价值。为了获取边缘运动矢量对应
的代价值,可以从第一参考块中复制获取边缘运动矢量对应的子参考块A2,从第二参考块
中复制获取边缘运动矢量的对称运动矢量对应的子参考块B2,利用子参考块A2的第一像素
值和子参考块B2的第二像素值,获取边缘运动矢量对应的代价值,以此类推。
用两个子参考块的像素值获取该运动矢量对应的代价值。
未下采样的像素值),获取运动矢量对应的代价值。
子参考块pred0和子参考块pred1的像素进行垂直下采样。
第i列第j行的像素值,abs(x)表示x的绝对值。
样后的像素值)和下采样后的第二像素值(即第二参考块中的子参考块的下采样后的像素
值),获取运动矢量对应的代价值。
有像素值的SAD确定代价值时,对子参考块pred0和子参考块pred1的像素值进行垂直N倍(N
为大于0的整数,可以为2)下采样。
+N(i‑1)列第j行的像素值,pred1(1+N(i‑1),j)表示子参考块pred1的第1+N(i‑1)列第j行的
像素值,abs(x)表示x的绝对值。
和下采样后的像素值)和操作后的第二像素值(第二参考块中的子参考块的移位和下采样
后的像素值),获取运动矢量对应的代价值。
行存储,pred1中的每个像素值均采用D比特进行存储。
进行垂直N倍(N为大于0的整数,可以为2)下采样。基于子参考块pred0和子参考块pred1的所
有像素值,代价值计算公式为:
+N(i‑1)列第j行的像素值,pred1(1+N(i‑1),j)表示子参考块pred1的第1+N(i‑1)列第j行的
像素值,abs(x)表示x的绝对值,综上可以看出,即仅计算第1行,第N+1行,第2N+1行…的差
的绝对值和。
算的存储代价,8位的存储可以实现更高并行度。
的第一目标运动矢量确定该子块对应的第三参考块,并根据该子块的第二目标运动矢量确
定该子块对应的第四参考块。根据第三参考块的第三像素值和第四参考块的第四像素值进
行加权,得到该子块的预测值。
素,所以需要插值)。根据第三参考块的第三像素值和第四参考块的第四像素值进行加权,
得到最终的预测值(三个分量)。
的第二目标运动矢量,从第二参考帧中确定该子块对应的第六参考块,并对第六参考块中
的像素值进行插值,得到第四参考块。
不做限制。通过对第五参考块中的像素值进行插值,可以得到大小为W*H的第三参考块,对
此插值方式不做限制。可以基于第二目标运动矢量从第二参考帧中确定大小为A*B的第六
参考块,第六参考块的大小A*B与插值方式有关,A大于W,B大于H。通过对第六参考块中的像
素值进行插值,可以得到大小为W*H的第四参考块,对此插值方式不做限制。
值进行插值,得到第三参考块。基于子块的第二目标运动矢量,从第二参考帧中确定该子块
对应的第九参考块,利用第九参考块中的像素值构造第十参考块,并对第十参考块中的像
素值进行插值,得到第四参考块。
此构造方式不做限制。第八参考块的大小A*B与插值方式有关,A大于W,B大于H,对此不做限
制。通过对第八参考块中的像素值进行插值,可以得到大小为W*H的第三参考块,对此插值
方式不做限制。
对此构造方式不做限制。第十参考块的大小A*B与插值方式有关,A大于W,B大于H,对此不做
限制。通过对第十参考块中的像素值进行插值,可以得到大小为W*H的第四参考块,对此插
值方式不做限制。
块的预测值),并加权获得最终的预测值。参见图5所示,黑色区域和白色区域,是从参考帧
中获取的像素值,针对灰色区域的像素值,不需要从参考帧中获取,而是可以采用拷贝相邻
像素值的方式获得。
的像素值。然后,可以将白色区域第一列的H+FS‑1个像素值以及上下各SR个已获得的灰色
区域的像素值,复制给灰色区域的前SR列的像素值。将白色区域最后一列的H+FS‑1个像素
值以及上下各SR个已获得的灰色区域的像素值,复制给灰色区域的最后SR列的像素值。
列的像素值。然后,将白色区域第一行的W+FS‑1个像素值以及左右各SR个已获得的灰色区
域的像素值,复制给灰色区域的前SR行的像素值。将白色区域的最后一行的W+FS‑1个像素
值以及左右各SR个已获得的灰色区域的像素值,复制给灰色区域最后SR行的像素值。
预测值),并加权获得最终的预测值。参见图5所示,黑色区域和白色区域,是从参考帧中获
取的像素值,针对灰色区域的像素值,直接从参考帧对应区域拷贝获得,而不是采用拷贝相
邻像素值的方式获得。这种方法简单、性能可能更好,但增加了对于参考帧的访问数据量。
第三参考块的预测值和第四参考块的预测值),并加权获得最终的预测值。参见图5所示,黑
色区域和白色区域,可以是从参考帧中获取的像素值。由于抽头数比较少,因此,不需要灰
色区域的像素值。
值后,通过加权平均获得最终的预测值,两个预测值的权值可以不同。例如,两个预测值的
权值比例可以为1:2,1:3,2:1等。
比例,通过加权平均获得最终的预测值。
比例,基于权值比例通过加权平均获得最终的预测值。
示,权重比为10:‑2,即最终预测值=(预测值1*(10)+预测值2*(‑2)),即(10*预测值1‑2*预
测值2)/8。权重“3”表示权重比为3:5。权重“5”表示权重比为5:3。权重“4”表示权重比为4:
4,即权重“4”表示权重相同。
参考。例如,第一目标运动矢量和第二目标运动矢量用于当前帧的环路滤波;第一目标运动
矢量和第二目标运动矢量用于后续帧的时域参考;和/或,第一目标运动矢量和第二目标运
动矢量用于当前帧的空域参考。
动矢量和第二目标运动矢量,可以用于当前块的运动补偿,也可以用于当前块的环路滤波
过程,还可以用于后续帧的时域参考。
可以用于当前帧的空域参考,以下对此进行说明。
到下,从左到右,因此,当前块的运动矢量可以被当前LCU内的其他块参考,也可以被后续相
邻LCU内的块参考。由于获得的目标运动矢量所需要的计算量较大,若后续块参考当前块的
目标运动矢量,则需要等待较长时间。为了避免过多等待引起的时延,只允许少数空域相邻
块参考当前块的目标运动矢量,其他块则参考当前块的原始运动矢量。参见图8所示,这些
少数的块包括位于当前LCU下侧的下侧LCU和右下侧LCU内的子块,而位于右侧LCU和左侧
LCU内的子块,则不可参考当前块的目标运动矢量。
直接从参考帧中复制,否则需要进行插值获得。
FS‑1)*(H+FS‑1)的三个分量的整像素块。
面积为(W+FS‑1+2*SR)*(H+FS‑1+2*SR)的三个分量的整像素块,记为Pred_Inter0和Pred_
Inter1,参考图5所示。
1)的整像素参考块,通过双线性插值获得两块尺寸为(W+2*SR)*(H+2*SR)的初始参考预测
值(记为Pred_Bilinear0和Pred_Bilinear1),FS为滤波器抽头数,默认为8,SR为搜索范围,
即目标运动矢量与原始运动矢量最大水平/竖直分量插值,默认为2。Pred_Bilinear0/1用
于步骤e3的使用。
W*H的块),基于这两个预测值块,获得初始代价值,也就是两个方向预测值块的垂直2倍下
采样后的SAD。
行这五个偏移MV的代价值的计算与比较过程。
Bilinear1中进行中心位置偏移‑MVOffset(与list0相反)的W*H的块),计算这两个块的下
采样SAD作为MVOffset的代价值。保留代价值最小的MVOffset(存于deltaMV),作为下一次
迭代的新的中心偏移点。
执行步骤e32,若迭代次数未达到SR,则将最优MV作为中心,进行下一次迭代搜索过程,即返
回上述步骤e311。
(x0,y0)为:x0=N*(E(‑1,0)–E(1,0))/(E(‑1,0)+E(1,0)–2*E(0,0)),y0=N*(E(0,‑1)–E(0,
1))/(E(0,‑1)+E(0,1)–2*E(0,0))。
度,则SPMV可以为(x0/16,y0/16)。
BestMVoffset可以获得两个方向的目标运动矢量:Refined_MV0=Org_MV0+BestMVoffset;
Refined_MV1=Org_MV1‑BestMVoffset。
Refined_MV1,在步骤e2准备的Pred_Inter0/1中,通过插值获得对应预测块(运动矢量可能
为分像素,需插值才能获得对应像素块)。
例13和实施例15组合实现,实施例13和实施例24组合实现,实施例13和实施例29组合实现,
实施例15和实施例24组合实现,实施例15和实施例29组合实现,实施例24和实施例29组合
实现,实施例13、实施例15和实施例24组合实现,实施例13、实施例15和实施例29组合实现,
实施例15、实施例24和实施例29组合实现,实施例13、实施例15、实施例24和实施例29组合
实现,等等,当然,上述只是几个示例,对此不做限制,本申请涉及的所有实施例,均可以单
独实现或者组合实现。
定所述当前块对应的第二参考块;处理模块92,用于根据所述第一参考块的第一像素值和
所述第二参考块的第二像素值,对第一原始运动矢量和第二原始运动矢量进行调整,得到
所述第一原始运动矢量对应的第一目标运动矢量和所述第二原始运动矢量对应的第二目
标运动矢量;编解码模块93,用于根据所述第一目标运动矢量和所述第二目标运动矢量对
所述当前块进行编码或者解码。
动信息预测模式满足特定条件;或者,若所述当前块对应的运动信息预测模式为用于帧间
预测值与帧内预测值联合生成新预测值的融合模式,则确定所述当前块对应的运动信息预
测模式满足特定条件。
则确定所述当前块对应的运动信息属性满足特定条件;或者,若所述当前块对应的运动信
息属性为所述当前块的运动信息包括两个不同方向的运动信息,所述两个不同方向的运动
信息对应的两个参考帧与当前帧的距离相同,则确定所述当前块对应的运动信息属性满足
特定条件;或者,若所述当前块对应的运动信息属性为所述当前块复用周围块的运动信息,
则确定所述当前块对应的运动信息属性满足特定条件;或者,若所述当前块对应的运动信
息属性为所述当前块的每个子块的运动信息相同,则确定所述当前块对应的运动信息属性
满足特定条件。
第一区间[第一阈值,第二阈值]的范围内,则确定所述当前块的尺寸信息满足特定条件;或
者,若所述当前块的高度值位于第二区间[第三阈值,第四阈值]的范围内,则确定所述当前
块的尺寸信息满足特定条件;或者,若所述当前块的宽度值与高度值的面积位于第三区间
[第五阈值,第六阈值]的范围内,则确定所述当前块的尺寸信息满足特定条件;或者,若所
述宽度值位于第一区间[第一阈值,第二阈值]的范围内、所述高度值位于第二区间[第三阈
值,第四阈值]的范围内、且所述面积位于第三区间[第五阈值,第六阈值]的范围内,则确定
所述当前块的尺寸信息满足特定条件。
用于:基于所述当前块的第一原始运动矢量,从第一参考帧中确定所述当前块对应的第一
参考块;基于所述当前块的第二原始运动矢量,从第二参考帧中确定所述当前块对应的第
二参考块;其中,所述第一参考块中每个像素点的第一像素值,是通过对所述第一参考块中
的相邻像素点的像素值进行插值得到,或者,通过对所述第一参考块中的相邻像素点的像
素值进行拷贝得到;所述第二参考块中每个像素点的第二像素值,是通过对所述第二参考
块中的相邻像素点的像素值进行插值得到,或者,通过对所述第二参考块中的相邻像素点
的像素值进行拷贝得到。
应的第一目标运动矢量和所述第二原始运动矢量对应的第二目标运动矢量时具体用于:
得到所述子块的第一目标运动矢量和第二目标运动矢量。
整值和第二分像素运动矢量调整值;根据所述第一整像素运动矢量调整值和/或第一分像
素运动矢量调整值,对所述第一原始运动矢量进行调整,得到所述子块的第一目标运动矢
量;根据所述第二整像素运动矢量调整值和/或第二分像素运动矢量调整值,对所述第二原
始运动矢量进行调整,得到所述子块的第二目标运动矢量。
值和第二分像素运动矢量调整值时具体用于:
调整值和第二分像素运动矢量调整值。
矢量(x+right,y+down);或者,
矢量(x+right,y+down);
者,若边缘运动矢量(x+S,y)的代价值小于或等于边缘运动矢量(x‑S,y)的代价值,则right
为S;若边缘运动矢量(x,y+S)的代价值小于或等于边缘运动矢量(x,y‑S)的代价值,则down
为S。
值、所述边缘运动矢量对应的第二代价值;或者,
一代价值、所述边缘运动矢量对应的第二代价值。
值和第二分像素运动矢量调整值时具体用于:
第二分像素运动矢量调整值。
动矢量确定所述子块的第一整像素运动矢量调整值,并根据所述第一整像素运动矢量调整
值确定所述子块的第二整像素运动矢量调整值。
最优运动矢量对应的边缘运动矢量对应的代价值,确定所述子块的第一分像素运动矢量调
整值,根据第一分像素运动矢量调整值确定所述子块的第二分像素运动矢量调整值。
的每个子块,根据所述子块的第一目标运动矢量确定所述子块对应的第三参考块,并根据
所述子块的第二目标运动矢量确定所述子块对应的第四参考块;根据所述第三参考块的第
三像素值和所述第四参考块的第四像素值进行加权,得到子块的预测值;根据每个子块的
预测值确定所述当前块的预测值。
于:基于所述子块的第一目标运动矢量,从第一参考帧中确定所述子块对应的第五参考块,
对所述第五参考块中的像素值进行插值,得到所述第三参考块;
于:基于所述子块的第一目标运动矢量,从第一参考帧中确定所述子块对应的第七参考块,
利用所述第七参考块中的像素值构造第八参考块,并对所述第八参考块中的像素值进行插
值,得到所述第三参考块;基于所述子块的第二目标运动矢量,从第二参考帧中确定所述子
块对应的第九参考块,利用所述第九参考块中的像素值构造第十参考块,并对所述第十参
考块中的像素值进行插值,得到所述第四参考块。
波、所述第一目标运动矢量和第二目标运动矢量用于后续帧的时域参考、和/或,所述第一
目标运动矢量和第二目标运动矢量用于当前帧的空域参考。
有能够被所述处理器101执行的机器可执行指令;所述处理器101用于执行机器可执行指
令,以实现本申请上述示例公开的方法。例如,处理器用于执行机器可执行指令,以实现如
下步骤:
的第二参考块;根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,对第
一原始运动矢量和第二原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目
标运动矢量和所述第二原始运动矢量对应的第二目标运动矢量;根据所述第一目标运动矢
量和所述第二目标运动矢量对所述当前块进行解码。
有能够被所述处理器111执行的机器可执行指令;所述处理器111用于执行机器可执行指
令,以实现本申请上述示例公开的方法。例如,处理器用于执行机器可执行指令,以实现如
下步骤:
的第二参考块;根据所述第一参考块的第一像素值和所述第二参考块的第二像素值,对第
一原始运动矢量和第二原始运动矢量进行调整,得到所述第一原始运动矢量对应的第一目
标运动矢量和所述第二原始运动矢量对应的第二目标运动矢量;根据所述第一目标运动矢
量和所述第二目标运动矢量对所述当前块进行编码。
实现本申请上述示例公开的编解码方法。其中,上述机器可读存储介质可以是任何电子、磁
性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器
可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失
性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd
等),或者类似的存储介质,或者它们的组合。
以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放
器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的
任意几种设备的组合。
施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的
计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机
程序产品的形式。
流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程
序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以
产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于
实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装
置。
包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一
个方框或者多个方框中指定的功能。
或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图
一个方框或多个方框中指定的功能的步骤。
替换、改进等,均应包含在本申请的权利要求范围之内。