首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 一种帧间预测方法和装置

一种间预测方法和装置

阅读:432发布:2020-05-12

专利汇可以提供一种间预测方法和装置专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种 帧 间预测方法和装置,涉及视频编解码技术领域,解决了 现有技术 中帧间预测模式获得的预测 像素 在 空域 上存在一定的不连续性,影响预测效率,造成预测残差 能量 较大的问题。具体方案为:解析码流,以获得待处理图像 块 的运动信息;基于运动信息对待处理图像块进行 运动补偿 ,以获得待处理图像块的预测块,待处理图像块的预测块中包括目标像素点的预测值;将一个或多个参考像素点的重构值和目标像素点的预测值进行加权计算,以更新目标像素点的预测值,其中,参考像素点与目标像素点具有预设的空域 位置 关系。,下面是一种间预测方法和装置专利的具体信息内容。

1.一种间预测方法,其特征在于,包括:
解析码流,以获得待处理图像的运动信息;
基于所述运动信息对所述待处理图像块进行运动补偿,以获得所述待处理图像块的预测块,所述待处理图像块的预测块中包括目标像素点的预测值;
将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算,以更新所述目标像素点的预测值,其中,所述参考像素点与所述目标像素点具有预设的空域位置关系。
2.根据权利要求1所述的方法,其特征在于,所述一个或多个参考像素点包括与所述目标像素点具有相同横坐标且具有预设纵坐标差的已重构像素点,或者,与所述目标像素点具有相同纵坐标且具有预设横坐标差的已重构像素点。
3.根据权利要求2所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:
根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置(xN-M1,yP),(xP,yN-M2)的所述参考像素点的重构值,w1,w2,w3,w4,w5,w6为预设常数,M1,M2为预设正整数。
4.根据权利要求3所述的方法,其特征在于,w1+w2=R1,或,w3+w4=R2,或,w5+w6+w7=R3,其中,R1,R2,R3分别为2的n次方,n为非负整数。
5.根据权利要求2所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:
根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3),recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3),(xP,yN-M4)的所述参考像素点的重构值,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11为预设常数,M1,M2,M3,M4为预设正整数。
6.根据权利要求5所述的方法,其特征在于,w1+w2+w3=S1,或,w4+w5+w6=S2,或,w7+w8+w9+w10+w11=S3,其中,S1,S2,S3分别为2的n次方,n为非负整数。
7.根据权利要求2所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:
根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置(xN-M1,yP),(xP,yN-M2)的所述参考像素点的重构值,w1,w2,w3为预设常数,M1,M2为预设正整数。
8.根据权利要求7所述的方法,其特征在于,w1+w2+w3=R,其中,R为2的n次方,n为非负整数。
9.根据权利要求2所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:
根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3),recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3),(xP,yN-M4)的所述参考像素点的重构值,w1,w2,w3,w4,w5预设常数,M1,M2,M3,M4为预设正整数。
10.根据权利要求9所述的方法,其特征在于,w1+w2+w3+w4+w5=S,其中,S为2的n次方,n为非负整数。
11.根据权利要求1所述的方法,其特征在于,所述一个或多个参考像素点包括以下像素点中的一个或多个:
与所述目标像素点具有相同横坐标且与所述待处理图像块的上边缘相邻接的已重构像素点;或者,
与所述目标像素点具有相同纵坐标且与所述待处理图像块的左边缘相邻接的已重构像素点;或者,
所述待处理图像块的右上角的已重构像素点;或者,
所述待处理图像块的左下角的已重构像素点;或者,
所述待处理图像块的左上角的已重构像素点。
12.根据权利要求11所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+nTbW*nTbH)>>(Log2(nTbW)+Log2(nTbH)+1),predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH))<<Log2(nTbW),predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1))<<Log2(nTbH),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP),recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP),(xN+nTbW,yN-1)的所述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所述待处理图像块的宽度和高度。
13.根据权利要求11所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+1)>>1,predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH)+(nTbH>>1))>>Log2(nTbH),predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1)+(nTbW>>1))>>Log2(nTbW),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP),recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP),(xN+nTbW,yN-1)的所述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所述待处理图像块的宽度和高度。
14.根据权利要求12或13所述的方法,其特征在于,w1和w2的和为2的n次方,其中,n为非负整数。
15.根据权利要求11所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale),wL(xP)=32>>((xP<<1)>>nScale),wTL(xP,yP)=((wL(xP)>>4)+(wT(yP)>>4)),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1),recon(xN-1,yP),recon(xN-1,yN-1)分别为位于坐标位置(xP,yN-
1),(xN-1,yP),(xN-1,yN-1)的所述参考像素点的重构值,nTbW和nTbH为所述待处理图像块的宽度和高度,clip1Cmp为钳位操作。
16.根据权利要求11所述的方法,其特征在于,所述更新所述目标像素点的预测值,包括:根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale),wL(xP)=32>>((xP<<1)>>nScale),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-1,yP),recon(xP,yN-1)分别为位于坐标位置(xN-1,yP),(xP,yN-1)的所述参考像素点的重构值,nTbW和nTbH为所述待处理图像块的宽度和高度,clip1Cmp为钳位操作。
17.根据权利要求1至16任一项所述的方法,其特征在于,所述将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算,包括:
当所述参考像素点的重构值不可用时,按照预设顺序确定与所述待处理图像块的上边沿和左边沿相邻的像素点的可用性,直到获取预设个数的可用的参考像素点;
将所述可用的参考像素点的重构值和所述目标像素点的预测值进行加权计算。
18.根据权利要求1至17任一项所述的方法,其特征在于,在所述将一个或多个参考像素点的重构值和所述待处理图像块中的目标像素点的预测值进行加权计算之前,包括:
当所述参考像素点位于所述待处理图像的上方时,对所述参考像素点的重构值和所述参考像素点的左右相邻像素点的重构值进行加权计算;
当所述参考像素点位于所述待处理图像块的左方时,对所述参考像素点的重构值和所述参考像素点的上下相邻像素点的重构值进行加权计算;
采用所述加权计算的结果更新所述参考像素点的重构值。
19.根据权利要求1至18任一项所述的方法,其特征在于,在所述基于所述运动信息对所述待处理图像块进行运动补偿之前,还包括:
通过第一预设算法对所述运动信息进行初始更新;
对应的,所述基于所述运动信息对所述待处理图像块进行运动补偿,包括:
基于所述初始更新后的运动信息对所述待处理图像块进行运动补偿。
20.根据权利要求1至19任一项所述的方法,其特征在于,在所述获得所述待处理图像块的预测块之后,还包括:
通过第二预设算法对所述预测块进行预更新;
对应的,所述将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算,包括:
将所述一个或多个参考像素点的重构值和所述目标像素点的预更新后的预测值进行加权计算。
21.根据权利要求1至19任一项所述的方法,其特征在于,在所述将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算,以更新所述目标像素点的预测值之后,还包括:
通过第二预设算法对所述目标像素点的预测值进行更新。
22.根据权利要求1至21任一项所述的方法,其特征在于,在所述将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算之前,还包括:
解析所述码流,以获得所述待处理图像块的预测模式;
确定所述预测模式为融合模式(merge)和/或帧间高级运动矢量预测模式(inter 
AMVP)。
23.根据权利要求1至22任一项所述的方法,其特征在于,在所述将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算之前,还包括:
解析所述码流,以获得所述待处理图像块的更新判别标识信息;
确定所述更新判别标识信息指示更新所述待处理图像块的预测块。
24.根据权利要求1至22任一项所述的方法,其特征在于,在所述将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算之前,还包括:
获取所述待处理图像块的预设的更新判别标识信息;
确定所述更新判别标识信息指示更新所述待处理图像块的预测块。
25.一种帧间预测装置,其特征在于,包括:
解析模块,用于解析码流,以获得待处理图像块的运动信息;
补偿模块,用于基于所述运动信息对所述待处理图像块进行运动补偿,以获得所述待处理图像块的预测块,所述待处理图像块的预测块中包括目标像素点的预测值;
计算模块,用于将一个或多个参考像素点的重构值和所述目标像素点的预测值进行加权计算,以更新所述目标像素点的预测值,其中,所述参考像素点与所述目标像素点具有预设的空域位置关系。
26.根据权利要求25所述的装置,其特征在于,所述一个或多个参考像素点包括与所述目标像素点具有相同横坐标且具有预设纵坐标差的已重构像素点,或者,与所述目标像素点具有相同纵坐标且具有预设横坐标差的已重构像素点。
27.根据权利要求26所述的装置,其特征在于,所述计算模块,具体用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置(xN-M1,yP),(xP,yN-M2)的所述参考像素点的重构值,w1,w2,w3,w4,w5,w6为预设常数,M1,M2为预设正整数。
28.根据权利要求27所述的装置,其特征在于,w1+w2=R1,或,w3+w4=R2,或,w5+w6+w7=R3,其中,R1,R2,R3分别为2的n次方,n为非负整数。
29.根据权利要求26所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3),recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3),(xP,yN-M4)的所述参考像素点的重构值,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11为预设常数,M1,M2,M3,M4为预设正整数。
30.根据权利要求29所述的装置,其特征在于,w1+w2+w3=S1,或,w4+w5+w6=S2,或,w7+w8+w9+w10+w11=S3,其中,S1,S2,S3分别为2的n次方,n为非负整数。
31.根据权利要求26所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置(xN-M1,yP),(xP,yN-M2)的所述参考像素点的重构值,w1,w2,w3为预设常数,M1,M2为预设正整数。
32.根据权利要求31所述的装置,其特征在于,w1+w2+w3=R,其中,R为2的n次方,n为非负整数。
33.根据权利要求26所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3),recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3),(xP,yN-M4)的所述参考像素点的重构值,w1,w2,w3,w4,w5预设常数,M1,M2,M3,M4为预设正整数。
34.根据权利要求33所述的装置,其特征在于,w1+w2+w3+w4+w5=S,其中,S为2的n次方,n为非负整数。
35.根据权利要求25所述的装置,其特征在于,所述一个或多个参考像素点包括以下像素点中的一个或多个:
与所述目标像素点具有相同横坐标且与所述待处理图像块的上边缘相邻接的已重构像素点;或者,
与所述目标像素点具有相同纵坐标且与所述待处理图像块的左边缘相邻接的已重构像素点;或者,
所述待处理图像块的右上角的已重构像素点;或者,
所述待处理图像块的左下角的已重构像素点;或者,
所述待处理图像块的左上角的已重构像素点。
36.根据权利要求35所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+nTbW*nTbH)>>(Log2(nTbW)+Log2(nTbH)+1),predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH))<<Log2(nTbW),predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1))<<Log2(nTbH),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP),recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP),(xN+nTbW,yN-1)的所述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所述待处理图像块的宽度和高度。
37.根据权利要求35所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+1)>>1,predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH)+(nTbH>>1))>>Log2(nTbH),predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1)+(nTbW>>1))>>Log2(nTbW),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP),recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP),(xN+nTbW,yN-1)的所述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所述待处理图像块的宽度和高度。
38.根据权利要求36或37所述的装置,其特征在于,w1和w2的和为2的n次方,其中,n为非负整数。
39.根据权利要求35所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale),wL(xP)=32>>((xP<<1)>>nScale),wTL(xP,yP)=((wL(xP)>>4)+(wT(yP)>>4)),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1),recon(xN-1,yP),recon(xN-1,yN-1)分别为位于坐标位置(xP,yN-
1),(xN-1,yP),(xN-1,yN-1)的所述参考像素点的重构值,nTbW和nTbH为所述待处理图像块的宽度和高度,clip1Cmp为钳位操作。
40.根据权利要求35所述的装置,其特征在于,所述计算模块,具体还用于根据所述目标像素点的更新前的预测值和所述参考像素点的重构值进行加权计算,获取所述目标像素点的更新后的预测值,所述目标像素点的更新后的预测值通过如下公式获得:
其中,refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale),wL(xP)=32>>((xP<<1)>>nScale),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xN-1,yP),recon(xP,yN-1)分别为位于坐标位置(xN-1,yP),(xP,yN-1)的所述参考像素点的重构值,nTbW和nTbH为所述待处理图像块的宽度和高度,clip1Cmp为钳位操作。
41.根据权利要求25至40任一项所述的装置,其特征在于,
所述计算模块,还用于当所述参考像素点的重构值不可用时,按照预设顺序确定与所述待处理图像块的上边沿和左边沿相邻的像素点的可用性,直到获取预设个数的可用的参考像素点;将所述可用的参考像素点的重构值和所述目标像素点的预测值进行加权计算。
42.根据权利要求25至41任一项所述的装置,其特征在于,所述计算模块还用于:
当所述参考像素点位于所述待处理图像块的上方时,对所述参考像素点的重构值和所述参考像素点的左右相邻像素点的重构值进行加权计算;
当所述参考像素点位于所述待处理图像块的左方时,对所述参考像素点的重构值和所述参考像素点的上下相邻像素点的重构值进行加权计算;
采用所述加权计算的结果更新所述参考像素点的重构值。
43.根据权利要求25至42任一项所述的装置,其特征在于,所述计算模块还用于:通过第一预设算法对所述运动信息进行初始更新;
对应的,所述补偿模块具体用于:
基于所述初始更新后的运动信息对所述待处理图像块进行运动补偿。
44.根据权利要求25至43任一项所述的装置,其特征在于,所述计算模块还用于:通过第二预设算法对所述预测块进行预更新;
对应的,所述计算模块具体用于:
将所述一个或多个参考像素点的重构值和所述目标像素点的预更新后的预测值进行加权计算。
45.根据权利要求25至43任一项所述的装置,其特征在于,所述计算模块还用于:通过第二预设算法对所述目标像素点的预测值进行更新。
46.根据权利要求25至45任一项所述的装置,其特征在于,所述解析模块还用于:
解析所述码流,以获得所述待处理图像块的预测模式;
确定所述预测模式为融合模式(merge)和/或帧间高级运动矢量预测模式(inter 
AMVP)。
47.根据权利要求25至46任一项所述的装置,其特征在于,所述解析模块还用于:
解析所述码流,以获得所述待处理图像块的更新判别标识信息;
确定所述更新判别标识信息指示更新所述待处理图像块的预测块。
48.根据权利要求25至46任一项所述的装置,其特征在于,所述计算模块还用于:
获取所述待处理图像块的预设的更新判别标识信息;
确定所述更新判别标识信息指示更新所述待处理图像块的预测块。
49.一种计算机存储介质,所述计算机存储介质中存储有计算机程序代码,其特征在于,当所述计算机程序代码在处理器上运行时,使得所述处理器执行如权利要求1-24任一项所述的帧间预测方法。

说明书全文

一种间预测方法和装置

[0001] 本申请要求于2018年9月21日提交中国专利局、申请号为201811109950.2、申请名称 为“一种视频编解码的方法与装置”的中国专利申请的优先权,其全部内容通过引用结合在 本申请中。

技术领域

[0002] 本申请实施例涉及视频编解码技术领域,尤其涉及一种帧间预测方法和装置。

背景技术

[0003] 数字视频技术可广泛应用于各种数字视频装置中,数字视频装置可以实施视频解码技术, 例如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分先进视频解码 (AVC)、ITU-T H.265(也被称作高效率视频解码HEVC)所定义的标准及这些标准的扩展 中所描述的视频解码技术。数字视频装置通过实施这些视频解码技术来更有效地发送、接收、 编码、解码和/或存储数字视频信息。
[0004] 目前,在视频编解码中主要利用了帧间预测和帧内预测技术来消除视频中的时域和空域 冗余。但由于帧间预测技术仅考虑图像邻近帧中的相同物体之间的时域相关性,而未考虑空 间域的相关性问题,这将造成现有的帧间预测模式获得的预测像素在空间域上存在一定的不 连续性,影响预测效率,造成预测残差能量较大。发明内容
[0005] 本申请实施例提供一种帧间预测方法和装置,能够对帧间编码的预测进行空域滤波, 提高编码效率。
[0006] 为达到上述目的,本申请实施例采用如下技术方案:
[0007] 本申请实施例的第一方面,提供一种帧间预测方法,该方法包括:解析码流,以获得待 处理图像块的运动信息;基于该运动信息对上述待处理图像块进行运动补偿,以获得该待处 理图像块的预测块,该待处理图像块的预测块中包括目标像素点的预测值;将一个或多个参 考像素点的重构值和上述目标像素点的预测值进行加权计算,以更新该目标像素点的预测值, 其中,上述参考像素点与上述目标像素点具有预设的空域位置关系。基于本方案,通过利用 周围邻近已重构像素对目标像素点的预测值进行空域滤波处理,能够提高编码压缩效率。
[0008] 结合第一方面,在一种可能的实现方式中,上述一个或多个参考像素点包括与上述目标 像素点具有相同横坐标且具有预设纵坐标差的已重构像素点,或者,与上述目标像素点具有 相同纵坐标且具有预设横坐标差的已重构像素点。基于本方案,通过与目标像素点具有预设 空域位置关系的参考像素点对目标像素点进行滤波处理,相比于现有技术,提高了编码效率。
[0009] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0010]
[0011] 其中,上述目标像素点的坐标为(xP,yP),待处理图像块内的左上像素点的坐标为 (xN,yN),predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的 更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的参考像素点的重构值,w1,w2,w3,w4,w5,w6为预设 常数,M1,M2为预设正整数。基于本方案,通过滤波处理能够得到目标像素点的更新后的 预测值。
[0012] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2=R1,或, w3+w4=R2,或,w5+w6+w7=R3,其中,R1,R2,R3分别为2的n次方,n为非负整数。 基于本方案,能够进一步提高编码效率。
[0013] 应理解,R1,R2,R3分别为2的n次方,并不限定R1,R2,R3相同,或者不同,示 例性的,R1,R2,R3可以均为8,或者R1,R2,R3可以分别为2,4,16。
[0014] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0015]
[0016] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的上述参考像素点的重构值,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10, w11为预设常数,M1,M2,M3,M4为预设正整数。基于本方案,通过滤波处理能够得到 目标像素点的更新后的预测值。
[0017] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2+w3=S1,或, w4+w5+w6=S2,或,w7+w8+w9+w10+w11=S3,其中,S1,S2,S3分别为2的n次方,n为 非负整数。基于本方案,能够进一步提高编码效率。
[0018] 应理解,S1,S2,S3分别为2的n次方,并不限定S1,S2,S3相同,或者不同,示例 性的,S1,S2,S3可以均为8,或者S1,S2,S3可以分别为2,4,16。
[0019] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0020]
[0021] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标 像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的上述参考像素点的重构值,w1,w2,w3为预设常数,M1, M2为预设正整数。基于本方案,通过滤波处理能够得到目标像素点的更新后的预测值。
[0022] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2+w3=R,其 中,R为2的n次方,n为非负整数。
[0023] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0024]
[0025] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的上述参考像素点的重构值,w1,w2,w3,w4,w5预设常数,M1,M2, M3,M4为预设正整数。基于本方案,通过滤波处理能够得到目标像素点的更新后的预测值。
[0026] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中, w1+w2+w3+w4+w5=S,其中,S为2的n次方,n为非负整数。基于本方案,能够进一步提 高编码效率。
[0027] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述一个或多个参 考像素点包括以下像素点中的一个或多个:与上述目标像素点具有相同横坐标且与上述待处 理图像块的上边缘相邻接的已重构像素点;或者,与上述目标像素点具有相同纵坐标且与上 述待处理图像块的左边缘相邻接的已重构像素点;或者,上述待处理图像块的右上角的已重 构像素点;或者,上述待处理图像块的左下角的已重构像素点;或者,上述待处理图像块的 左上角的已重构像素点。基于本方案,通过与目标像素点具有预设空域位置关系的参考像素 点对目标像素点进行滤波处理,相比于现有技术,提高了编码效率。
[0028] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0029] 其中, predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+nTbW*nTbH)>>(Log2(nTbW)+Log2(nTbH)+1), predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH))<<Log2(nTbW), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1))<<Log2(nTbH), 所述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标像素点的更 新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为上述待 处理图像块的宽度和高度。基于本方案,通过滤波处理能够得到目标像素点的更新后的预测 值。
[0030] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0031]
[0032] 其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+1)>>1, predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH)+(nTbH>>1))>>Log2(nTbH), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1)+(nTbW>>1))>>Log2(nTbW), 上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标像素点的更 新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的上述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为上 述待处理图像块的宽度和高度。基于本方案,通过滤波处理能够得到目标像素点的更新后的 预测值。
[0033] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,w1和w2的和为2 的n次方,其中,n为非负整数。基于本方案,能够进一步提高编码效率。
[0034] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0035]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),wTL(xP,yP)=((wL(xP)>>4)+(wT(yP)>>4)), nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),上述目标像素点的坐标为(xP,yP),上述待处理 图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预 测值,predQ(xP,yP)为上述目标像素点的更新后的预测值,recon(xP,yN-1), recon(xN-1,yP),recon(xN-1,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yP), (xN-1,yN-1)的参考像素点的重构值,nTbW和nTbH为上述待处理图像块的宽度和高度, clip1Cmp为钳位操作。基于本方案,通过滤波处理能够得到目标像素点的更新后的预测值。
[0036] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标像素 点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行 加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0037]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),上述目标 像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标像 素点的更新后的预测值,recon(xN-1,yP),recon(xP,yN-1)分别为位于坐标位置 (xN-1,yP),(xP,yN-1)的参考像素点的重构值,nTbW和nTbH为上述待处理图像块的宽度 和高度,clip1Cmp为钳位操作。基于本方案,通过滤波处理能够得到目标像素点的更新后的 预测值。
[0038] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述将一个或多个 参考像素点的重构值和上述目标像素点的预测值进行加权计算,包括:当上述参考像素点的 重构值不可用时,按照预设顺序确定与所述待处理图像块的上边沿和左边沿相邻的像素点的 可用性,直到获取预设个数的可用的参考像素点;将该可用的参考像素点的重构值和上述目 标像素点的预测值进行加权计算。基于本方案,能够在参考像素点的重构值不可用时,采用 预设顺序寻找待处理图像块的左侧和上方的重构值可用的参考像素点,使用该可用的参考像 素点的重构值值更新目标像素点的预测值。
[0039] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述按照预设顺序 确定与待处理图像块的上边沿和左边沿相邻的像素点的可用性,直到获取预设个数的可用的 参考像素点,包括:按照从坐标(xN-1,yN+nTbH-1)至坐标(xN-1,yN-1),接着从坐标(xN, yN-1)至坐标(xN+nTbW-1,yN-1)的顺序,获取可用的参考像素点。基于本方案,能够获 取可用的参考像素点的重构值。
[0040] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所有参考像素点 中至少有一个参考像素点可用时,若参考像素点(xN-1,yN+nTbH-1)的重构值不可用,按 照上述预设顺序从坐标(xN-1,yN+nTbH-1)至坐标(xN-1,yN-1),接着从坐标(xN,yN-1) 至坐标(xN+nTbW-1,yN-1)的顺序寻找可用的像素点,一旦找到可用的像素点,搜索就会 终止,若该可用的像素点为(x,y),则参考像素点(xN-1,yN+nTbH-1)的重构值被设置为 像素点(x,y)的重构值;在参考像素点(xN-1,yN+nTbH-M)集合中参考像素点(x,y) 的重构值不可用,其中,M大于等于2,小于等于nTbH+1,则参考像素点参考像素点(x,y) 的重构值被设置为像素点(x,y+1)的重构值;在参考像素点(xN+N,yN-1)集合中参考像 素点(x,y)的重构值不可用,其中,N大于等于0,小于等于nTbW-1,则参考像素点(x, y)的重构值被设置为参考像素点(x-1,y)的重构值。基于本方案,能够获取可用的参考像 素点的重构值。
[0041] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若参考像素点(xN-1, yN+nTbH-M)的重构值不可用,其中,M大于等于1,小于等于nTbH+1,可以从坐标(xN-1, yN+nTbH-M)开始,按照上述预设顺序寻找可用的参考像素点,若该可用的参考像素点为B, 那么参考像素点(xN-1,yN+nTbH-M)的重构值可以设置为参考像素点B的重构值;若参考 像素点坐标为(xN+N,yN-1)的重构值不可用,其中,N大于等于0,小于等于nTbW-1, 可以从坐标(xN+N,yN-1)开始,按照上述预设顺序寻找可用的参考像素点,若该可用的参 考像素点为C,那么参考像素点(xN+N,yN-1)的重构值可以设置为参考像素点C的重构值。 基于本方案,能够获取可用的参考像素点的重构值。
[0042] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若参考像素点(xN-1, yN+nTbH-1)的重构值不可用,按照上述预设顺序从坐标(xN-1,yN+nTbH-1)至坐标(xN-1, yN-1),接着从坐标(xN,yN-1)至坐标(xN+nTbW-1,yN-1)的顺序寻找可用的像素点,一 旦找到可用的像素点,搜索就会终止,若该可用的像素点为(x,y),则参考像素点(xN-1, yN+nTbH-1)的重构值被设置为像素点(x,y)的重构值;若参考像素点(xN-1,yN+nTbH-M) 的重构值不可用,其中,M大于1,小于等于nTbH+1,可以从坐标(xN-1,yN+nTbH-M) 开始,按照与上述预设顺序相反的顺序寻找可用的参考像素点,若该可用的参考像素点为C, 那么参考像素点(xN-1,yN+nTbH-M)的重构值可以设置为参考像素点C的重构值;若参考 像素点坐标为(xN+N,yN-1)的重构值不可用,其中,N大于等于0,小于等于nTbW-1, 可以从坐标(xN+N,yN-1)开始,按照上述预设顺序相反的顺序寻找可用的参考像素点,若 该可用的参考像素点为D,那么参考像素点(xN+N,yN-1)的重构值可以设置为参考像素点 D的重构值。基于本方案,能够获取可用的参考像素点的重构值。
[0043] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若确定上述待处理 图像块的上边沿和左边沿相邻的像素点均不可用,将上述参考像素点的重构值设置为1<< (bitDepth-1),其中,bitDepth为参考像素点采样值的位深。基于本方案,能够在参考像素点 和新的参考像素点的重构值均不可用时,基于位深设置参考像素点的重构值。
[0044] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个或多 个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,包括:当上述参考像 素点位于上述待处理图像块的上方时,对上述参考像素点的重构值和上述参考像素点的左右 相邻像素点的重构值进行加权计算;当上述参考像素点位于上述待处理图像块的左方时,对 上述参考像素点的重构值和上述参考像素点的上下相邻像素点的重构值进行加权计算;采用 该加权计算的结果更新上述参考像素点的重构值。基于本方案,在对目标像素点进行滤波处 理之前,通过对参考像素点的重构值进行滤波处理,能够进一步提高编码效率,减小预测残 差。
[0045] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述基于运动信 息对上述待处理图像块进行运动补偿之前,还包括:通过第一预设算法对上述运动信息进行 初始更新;对应的,上述基于上述运动信息对上述待处理图像块进行运动补偿,包括:基于 上述初始更新后的运动信息对上述待处理图像块进行运动补偿。基于本方案,通过在对当前 块进行运动补偿之前更新运动信息,并基于更新后的运动信息进行运动补偿,能够减小预测 残差。
[0046] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述获得上述待 处理图像块的预测块之后,还包括:通过第二预设算法对所述预测块进行预更新;对应的, 上述将一个或多个参考像素点的重构值和上述目标像素点的预测值进行加权计算,包括:将 上述一个或多个参考像素点的重构值和上述目标像素点的预更新后的预测值进行加权计算。 基于本方案,通过对当前块的预测块进行预更新,并根据与更新后的预测值和参考像素点的 重构值进行加权计算,能够减小预测残差。
[0047] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个或多 个参考像素点的重构值和上述目标像素点的预测值进行加权计算,以更新上述目标像素点的 预测值之后,还包括:通过第二预设算法对上述目标像素点的预测值进行更新。基于本方案, 能够将空域滤波处理后的目标像素点的预测值采用预设算法进行更新,减小预测残差。
[0048] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个或多 个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,还包括:解析上述码 流,以获得上述待处理图像块的预测模式;确定该预测模式为融合模式(merge)和/或帧间 高级运动矢量预测模式(inter AMVP);可以理解的,该帧间高级运动矢量预测模式(inter AMVP)也可称为帧间运动矢量预测模式(inter MVP)。基于本方案,能够在滤波处理之前确 定待处理图像块的预测模式。
[0049] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个或多 个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,还包括:解析上述码 流,以获得上述待处理图像块的更新判别标识信息;确定该更新判别标识信息指示更新上述 待处理图像块的预测块。基于本方案,能够通过解析码流获取待处理图像块的更新判别标识 信息,并确定更新待处理图像块的预测块。
[0050] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个或多 个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,还包括:获取上述待 处理图像块的预设的更新判别标识信息;确定该更新判别标识信息指示更新上述待处理图像 块的预测块。基于本方案,能够获取待处理图像块的更新判别标识信息,并根据该更新判别 标识信息确定更新待处理图像块的预测块。
[0051] 本申请实施例的第二方面,提供一种帧间预测装置,包括:解析模块,用于解析码流, 以获得待处理图像块的运动信息;补偿模块,用于基于该运动信息对上述待处理图像块进行 运动补偿,以获得该待处理图像块的预测块,该待处理图像块的预测块中包括目标像素点的 预测值;计算模块,用于将一个或多个参考像素点的重构值和所述目标像素点的预测值进行 加权计算,以更新所述目标像素点的预测值,其中,该参考像素点与上述目标像素点具有预 设的空域位置关系。
[0052] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述一个或多个参 考像素点包括与上述目标像素点具有相同横坐标且具有预设纵坐标差的已重构像素点,或者, 与上述目标像素点具有相同纵坐标且具有预设横坐标差的已重构像素点。
[0053] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算,获 取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0054]
[0055] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的上述参考像素点的重构值,w1,w2,w3,w4,w5,w6为 预设常数,M1,M2为预设正整数。
[0056] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2=R1,或, w3+w4=R2,或,w5+w6+w7=R3,其中,R1,R2,R3分别为2的n次方,n为非负整数。
[0057] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0058]
[0059] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的上述参考像素点的重构值,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10, w11为预设常数,M1,M2,M3,M4为预设正整数。
[0060] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2+w3=S1,或, w4+w5+w6=S2,或,w7+w8+w9+w10+w11=S3,其中,S1,S2,S3分别为2的n次方,n 为非负整数。
[0061] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0062]
[0063] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的上述参考像素点的重构值,w1,w2,w3为预设常数,M1, M2为预设正整数。
[0064] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2+w3=R,其 中,R为2的n次方,n为非负整数。
[0065] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0066]
[0067] 其中,上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的上述参考像素点的重构值,w1,w2,w3,w4,w5预设常数,M1,M2, M3,M4为预设正整数。
[0068] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中, w1+w2+w3+w4+w5=S,其中,S为2的n次方,n为非负整数。
[0069] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述一个或多个参 考像素点包括以下像素点中的一个或多个:与上述目标像素点具有相同横坐标且与上述待处 理图像块的上边缘相邻接的已重构像素点;或者,与上述目标像素点具有相同纵坐标且与上 述待处理图像块的左边缘相邻接的已重构像素点;或者,上述待处理图像块的右上角的已重 构像素点;或者,上述待处理图像块的左下角的已重构像素点;或者,上述待处理图像块的 左上角的已重构像素点。
[0070] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0071]
[0072] 其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+nTbW*nTbH)>>(Log2(nTbW)+Log2(nTbH)+1), predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH))<<Log2(nTbW), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1))<<Log2(nTbH), 上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标像素点的更 新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的上述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所 述待处理图像块的宽度和高度。
[0073] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0074]
[0075] 其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+1)>>1, predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH)+(nTbH>>1))>>Log2(nTbH), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1)+(nTbW>>1))>>Log2(nTbW), 上述目标像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标像素点的更 新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的上述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为上 述待处理图像块的宽度和高度。
[0076] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1和w2的和为2 的n次方,其中,n为非负整数。
[0077] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0078]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),wTL(xP,yP)=((wL(xP)>>4)+(wT(yP)>>4)), nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),上述目标像素点的坐标为(xP,yP),上述待处理 图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为上述目标像素点的更新前的预 测值,predQ(xP,yP)为上述目标像素点的更新后的预测值,recon(xP,yN-1), recon(xN-1,yP),recon(xN-1,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yP), (xN-1,yN-1)的上述参考像素点的重构值,nTbW和nTbH为上述待处理图像块的宽度和高 度,clip1Cmp为钳位操作。
[0079] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计算, 获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下公式获得:
[0080]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),上述目标 像素点的坐标为(xP,yP),上述待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为上述目标像素点的更新前的预测值,predQ(xP,yP)为上述目标像 素点的更新后的预测值,recon(xN-1,yP),recon(xP,yN-1)分别为位于坐标位置 (xN-1,yP),(xP,yN-1)的上述参考像素点的重构值,nTbW和nTbH为上述待处理图像块的 宽度和高度,clip1Cmp为钳位操作。
[0081] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,还 用于当上述参考像素点的重构值不可用时,按照预设顺序确定与所述待处理图像块的上边沿 和左边沿相邻的像素点的可用性,直到获取预设个数的可用的参考像素点;将该可用的参考 像素点的重构值和上述目标像素点的预测值进行加权计算。
[0082] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体用于按照从坐标(xN-1,yN+nTbH-1)至坐标(xN-1,yN-1),接着从坐标(xN,yN-1)至 坐标(xN+nTbW-1,yN-1)的顺序,获取可用的参考像素点的重构值。
[0083] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,当所有参考像素点 中至少有一个参考像素点可用时,若参考像素点(xN-1,yN+nTbH-1)的重构值不可用,按 照上述预设顺序从坐标(xN-1,yN+nTbH-1)至坐标(xN-1,yN-1),接着从坐标(xN,yN-1) 至坐标(xN+nTbW-1,yN-1)的顺序寻找可用的像素点,一旦找到可用的像素点,搜索就会 终止,若该可用的像素点为(x,y),则参考像素点(xN-1,yN+nTbH-1)的重构值被设置为 像素点(x,y)的重构值;在参考像素点(xN-1,yN+nTbH-M)集合中参考像素点(x,y) 的重构值不可用,其中,M大于等于2,小于等于nTbH+1,则参考像素点参考像素点(x,y) 的重构值被设置为像素点(x,y+1)的重构值;在参考像素点(xN+N,yN-1)集合中参考像 素点(x,y)的重构值不可用,其中,N大于等于0,小于等于nTbW-1,则参考像素点(x, y)的重构值被设置为参考像素点(x-1,y)的重构值。
[0084] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块,具 体用于若参考像素点(xN-1,yN+nTbH-M)的重构值不可用,其中,M大于等于1,小于等 于nTbH+1,从坐标(xN-1,yN+nTbH-M)开始,按照上述预设顺序寻找可用的参考像素点, 若该可用的参考像素点为B,那么参考像素点(xN-1,yN+nTbH-M)的重构值可以设置为参 考像素点B的重构值;若参考像素点坐标为(xN+N,yN-1)的重构值不可用,其中,N大于 等于0,小于等于nTbW-1,可以从坐标(xN+N,yN-1)开始,按照上述预设顺序寻找可用 的参考像素点,若该可用的参考像素点为C,那么参考像素点(xN+N,yN-1)的重构值可以 设置为参考像素点C的重构值。
[0085] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,若参考像素点(xN-1, yN+nTbH-1)的重构值不可用,按照上述预设顺序从坐标(xN-1,yN+nTbH-1)至坐标(xN-1, yN-1),接着从坐标(xN,yN-1)至坐标(xN+nTbW-1,yN-1)的顺序寻找可用的像素点,一 旦找到可用的像素点,搜索就会终止,若该可用的像素点为(x,y),则参考像素点(xN-1, yN+nTbH-1)的重构值被设置为像素点(x,y)的重构值;若参考像素点(xN-1,yN+nTbH-M) 的重构值不可用,其中,M大于1,小于等于nTbH+1,可以从坐标(xN-1,yN+nTbH-M) 开始,按照与上述预设顺序相反的顺序寻找可用的参考像素点,若该可用的参考像素点为C, 那么参考像素点(xN-1,yN+nTbH-M)的重构值可以设置为参考像素点C的重构值;若参考 像素点坐标为(xN+N,yN-1)的重构值不可用,其中,N大于等于0,小于等于nTbW-1, 可以从坐标(xN+N,yN-1)开始,按照上述预设顺序相反的顺序寻找可用的参考像素点,若 该可用的参考像素点为D,那么参考像素点(xN+N,yN-1)的重构值可以设置为参考像素点 D的重构值。
[0086] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,若确定上述待处理 图像块的上边沿和左边沿相邻的像素点均不可用,将上述参考像素点的重构值设置为1<< (bitDepth-1),其中,bitDepth为参考像素点采样值的位深。
[0087] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块还用 于:当上述参考像素点位于上述待处理图像块的上方时,对上述参考像素点的重构值和上述 参考像素点的左右相邻像素点的重构值进行加权计算;当上述参考像素点位于上述待处理图 像块的左方时,对上述参考像素点的重构值和上述参考像素点的上下相邻像素点的重构值进 行加权计算;采用上述加权计算的结果更新上述参考像素点的重构值。
[0088] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块还用 于:通过第一预设算法对上述运动信息进行初始更新;对应的,上述补偿模块具体用于:基 于上述初始更新后的运动信息对上述待处理图像块进行运动补偿。
[0089] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块还用 于:通过第二预设算法对上述预测块进行预更新;对应的,上述计算模块具体用于:将上述 一个或多个参考像素点的重构值和上述目标像素点的预更新后的预测值进行加权计算。
[0090] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块还用 于:通过第二预设算法对上述目标像素点的预测值进行更新。
[0091] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述解析模块还用 于:解析上述码流,以获得上述待处理图像块的预测模式;确定上述预测模式为融合模式 (merge)和/或帧间高级运动矢量预测模式(inter AMVP);可以理解的,该帧间高级运动矢 量预测模式(inter AMVP)也可称为帧间运动矢量预测模式(inter MVP)。
[0092] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述解析模块还用 于:解析上述码流,以获得上述待处理图像块的更新判别标识信息;确定上述更新判别标识 信息指示更新上述待处理图像块的预测块。
[0093] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块还用 于:获取上述待处理图像块的预设的更新判别标识信息;确定该更新判别标识信息指示更新 上述待处理图像块的预测块。
[0094] 本申请的第三方面,提供了提供了一种运动信息的预测设备,包括:处理器和耦合于所 述处理器的存储器;所述处理器用于执行上述第一方面所述的方法。
[0095] 本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储 有指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法。
[0096] 在本申请的第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上 运行时,使得计算机执行上述第一方面所述的方法。
[0097] 应理解,本申请的第二至五方面与本申请的第一方面的技术方案一致,各方面及对应的 可实施的设计方式所取得的有益效果相似,不再赘述。附图说明
[0098] 图1为示例性的可通过配置以用于本申请实施例的一种视频译码系统框图
[0099] 图2为示例性的可通过配置以用于本申请实施例的一种视频编码器的系统框图;
[0100] 图3为示例性的可通过配置以用于本申请实施例的一种视频解码器的系统框图;
[0101] 图4为示例性的可通过配置以用于本申请实施例的一种帧间预测模块的框图;
[0102] 图5为示例性的一种合并预测模式的实施流程图
[0103] 图6为示例性的一种高级运动矢量预测模式的实施流程图;
[0104] 图7为示例性的可通过配置以用于本申请实施例的一种由视频解码器执行的运动补偿的 实施流程图;
[0105] 图8为示例性的一种编码单元及与其关联的相邻位置图像块的示意图;
[0106] 图9为示例性的一种构建候选预测运动矢量列表的实施流程图;
[0107] 图10为示例性的一种将经过组合的候选运动矢量添加到合并模式候选预测运动矢量列 表的实施示意图;
[0108] 图11为示例性的一种将经过缩放的候选运动矢量添加到合并模式候选预测运动矢量列 表的实施示意图;
[0109] 图12为示例性的一种将零运动矢量添加到合并模式候选预测运动矢量列表的实施示意 图;
[0110] 图13为本申请实施例提供的一种帧间预测方法的示意性流程图;
[0111] 图14为本申请实施例提供的一种帧间预测方法的应用示意图一;
[0112] 图15为本申请实施例提供的一种帧间预测方法的应用示意图二;
[0113] 图16为本申请实施例提供的一种帧间预测方法的应用示意图三;
[0114] 图17为本申请实施例提供的一种帧间预测方法的应用示意图四;
[0115] 图18为本申请实施例提供的一种帧间预测装置的示意性框图;
[0116] 图19为本申请实施例提供的另一种帧间预测设备的示意性框图。

具体实施方式

[0117] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描 述。
[0118] 图1为本申请实施例中所描述的一种实例的视频译码系统的框图。如本文所使用,术语“视 频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码”或“译码”可 一般地指代视频编码或视频解码。视频译码系统的视频编码器100和视频解码器200用于根据 本申请提出的多种新的帧间预测模式中的任一种所描述的各种方法实例来预测当前经译码图 像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动 估算方法得到的运动矢量,从而编码时无需传送运动矢量差值,从而进一步的改善编解码性 能。
[0119] 如图1中所示,视频译码系统包含源装置10和目的地装置20。源装置10产生经编码视频数 据。因此,源装置10可被称为视频编码装置。目的地装置20可对由源装置10所产生的经编码 的视频数据进行解码。因此,目的地装置20可被称为视频解码装置。源装置10、目的地装置 20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。 所述存储器可包含但不限于RAM、ROM、EEPROM、快闪存储器或可用于以可由计算机存取 的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
[0120] 源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记 型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、 电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
[0121] 目的地装置20可经由链路30从源装置10接收经编码视频数据。链路30可包括能够将经编 码视频数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30 可包括使得源装置10能够实时将经编码视频数据直接发射到目的地装置20的一或多个通信媒 体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码视频数据, 且可将经调制的视频数据发射到目的地装置20。所述一或多个通信媒体可包含无线和/或有线 通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通 信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络 (例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10 到目的地装置20的通信的其它设备。
[0122] 在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入 接口240从存储装置40存取经编码数据。存储装置40可包含多种分布式或本地存取的数据存储 媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字通用光盘(digital video disc,DVD)、只 读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器, 或用于存储经编码视频数据的任何其它合适的数字存储媒体。
[0123] 在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码视频 的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的视频 数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射 到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协 议(file transfer protocol,FTP)服务器、网络附接式存储(network attached storage,NAS) 装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取 经编码视频数据。这可包含无线信道(例如,无线保真(wIreless-fidelity,Wi-Fi)连接)、有 线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于 存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置40的 传输可为流式传输、下载传输或两者的组合。
[0124] 本申请的运动矢量预测技术可应用于视频编解码以支持多种多媒体应用,例如空中电视 广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储于数据 存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在 一些实例中,视频译码系统可用于支持单向或双向视频传输以支持例如视频流式传输、视频 回放、视频广播和/或视频电话等应用。
[0125] 图1中所说明的视频译码系统仅为实例,并且本申请的技术可适用于未必包含编码装置与 解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中, 数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数 据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例 中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行 编码和解码。
[0126] 在图1的实例中,源装置10包含视频源120、视频编码器100和输出接口140。在一些实例 中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包括视频捕 获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收 视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来 源的组合。
[0127] 视频编码器100可对来自视频源120的视频数据进行编码。在一些实例中,源装置10经由 输出接口140将经编码视频数据直接发射到目的地装置20。在其它实例中,经编码视频数据还 可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
[0128] 在图1的实例中,目的地装置20包含输入接口240、视频解码器200和显示装置220。在一 些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储 装置40接收经编码视频数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。 一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种显示装置,例如,液 晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
[0129] 尽管图1中未图示,但在一些方面,视频编码器100和视频解码器200可各自与音频编码器 和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件软件,以处置共同 数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么解复  用器(MUX-DEMUX)单元可符合国际电信联盟(international telecommunication union,ITU) H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
[0130] 视频编码器100和视频解码器200各自可实施为例如以下各项的多种电路中的任一者:一 或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路 (application-specific integrated circuit,ASIC)、现场可编程阵列(field programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置 可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理 器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的 组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者 可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中 的组合编码器/解码器(编码解码器)的一部分。
[0131] 本申请可大体上将视频编码器100称为将某些信息“发信号通知”或“发射”到例如视频解 码器200的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解 码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经 过一段时间后发生,例如可在编码时在经编码码流中将语法元素存储到计算机可读存储媒体 时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
[0132] JCT-VC开发了H.265高效率视频编码(high efficiency video coding,HEVC)标准。HEVC 标准化基于称作HEVC测试模型(HEVC model,HM)的视频解码装置的演进模型。H.265 的最新标准文档可从http://www.itu.int/rec/T-REC-H.265获得,最新版本的标准文档为H.265 (12/16),该标准文档以全文引用的方式并入本文中。HM假设视频解码装置相对于 ITU-TH.264/AVC的现有算法具有若干额外能。例如,H.264提供9种帧内预测编码模式,而 HM可提供多达35种帧内预测编码模式。
[0133] JVET致力于开发H.266标准。H.266标准化的过程基于称作H.266测试模型的视频解码装 置的演进模型。H.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包 含于JVET-F1001-v2中,该算法描述文档以全文引用的方式并入本文中。同时,可从 https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/获得JEM测试模型的参考软件,同样以全 文引用的方式并入本文中。
[0134] 一般来说,HM的工作模型描述可将视频帧或图像划分成包含亮度色度样本两者的树块 或最大编码单元(largest coding unit,LCU)的序列,LCU也被称为编码树单元(coding tree unit,CTU)。树块具有与H.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可 将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元。例如, 可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成 另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解 码视频块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码 节点的最小大小。
[0135] 编码单元包含解码节点及预测块(prediction unit,PU)以及与解码节点相关联的变换单 元(transform unit,TU)。CU的大小对应于解码节点的大小且形状必须为正方形。CU的大小 的范围可为8×8像素直到最大64×64像素或更大的树块的大小。每一CU可含有一个或多个PU 及一个或多个TU。例如,与CU相关联的语法数据可描述将CU分割成一个或多个PU的情形。 分割模式在CU是被跳过或经直接模式编码、帧内预测模式编码或帧间预测模式编码的情形之 间可为不同的。PU可经分割成形状为非正方形。例如,与CU相关联的语法数据也可描述根 据四叉树将CU分割成一个或多个TU的情形。TU的形状可为正方形或非正方形。
[0136] HEVC标准允许根据TU进行变换,TU对于不同CU来说可为不同的。TU通常基于针对经 分割LCU定义的给定CU内的PU的大小而设定大小,但情况可能并非总是如此。TU的大小通 常与PU相同或小于PU。在一些可行的实施方式中,可使用称作“残余四叉树”(residual qualtree, RQT)的四叉树结构将对应于CU的残余样本再分成较小单元。RQT的叶节点可被称作TU。 可变换与TU相关联的像素差值以产生变换系数,变换系数可被量化。
[0137] 一般来说,PU包含与预测过程有关的数据。例如,在PU经帧内模式编码时,PU可包含 描述PU的帧内预测模式的数据。作为另一可行的实施方式,在PU经帧间模式编码时,PU可 包含界定PU的运动矢量的数据。例如,界定PU的运动矢量的数据可描述运动矢量的平分量、 运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精确度或八分之一像素精确 度)、运动矢量所指向的参考图像,和/或运动矢量的参考图像列表(例如,列表0、列表1或 列表C)。
[0138] 一般来说,TU使用变换及量化过程。具有一个或多个PU的给定CU也可包含一个或多个 TU。在预测之后,视频编码器100可计算对应于PU的残余值。残余值包括像素差值,像素差 值可变换成变换系数、经量化且使用TU扫描以产生串行化变换系数以用于熵解码。本申请通 常使用术语“视频块”来指CU的解码节点。在一些特定应用中,本申请也可使用术语“视频块” 来指包含解码节点以及PU及TU的树块,例如,LCU或CU。
[0139] 视频序列通常包含一系列视频帧或图像。图像群组(group of picture,GOP)示例性地包 括一系列、一个或多个视频图像。GOP可在GOP的头信息中、图像中的一者或多者的头信息 中或在别处包含语法数据,语法数据描述包含于GOP中的图像的数目。图像的每一条带可包 含描述相应图像的编码模式的条带语法数据。视频编码器100通常对个别视频条带内的视频块 进行操作以便编码视频数据。视频块可对应于CU内的解码节点。视频块可具有固定或变化的 大小,且可根据指定解码标准而在大小上不同。
[0140] 作为一种可行的实施方式,HM支持各种PU大小的预测。假定特定CU的大小为2N×2N, HM支持2N×2N或N×N的PU大小的帧内预测,及2N×2N、2N×N、N×2N或N×N的对称PU大小 的帧间预测。HM也支持2N×nU、2N×nD、nL×2N及nR×2N的PU大小的帧间预测的不对称分 割。在不对称分割中,CU的一方向未分割,而另一方向分割成25%及75%。对应于25%区段 的CU的部分由“n”后跟着“上(Up)”、“下(Down)”、“左(Left)”或“右(Right)”的指示 来指示。因此,例如,“2N×nU”指水平分割的2N×2NCU,其中2N×0.5NPU在上部且2N×1.5NPU 在底部。
[0141] 在本申请中,“N×N”与“N乘N”可互换使用以指依照垂直维度及水平维度的视频块的像素 尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y =16),且在水平方向上具有16个像素(x=16)。同样地,N×N块一股在垂直方向上具有N个 像素,且在水平方向上具有N个像素,其中N表示非负整数值。可将块中的像素排列成行及列。 此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。例如,块可包括N×M 个像素,其中M未必等于N。
[0142] 在使用CU的PU的帧内预测性或帧间预测性解码之后,视频编码器100可计算CU的TU的 残余数据。PU可包括空间域(也称作像素域)中的像素数据,且TU可包括在将变换(例如, 离散余弦变换(discrete cosine transform,DCT)、整数变换、小波变换或概念上类似的变换) 应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编码图像的像素与对应于 PU的预测值之间的像素差。视频编码器100可形成包含CU的残余数据的TU,且接着变换TU 以产生CU的变换系数。
[0143] 在任何变换以产生变换系数之后,视频编码器100可执行变换系数的量化。量化示例性地 指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过 程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m 位值,其中n大于m。
[0144] JEM模型对视频图像的编码结构进行了进一步的改进,具体的,被称为“四叉树结合二叉 树”(QTBT)的块编码结构被引入进来。QTBT结构摒弃了HEVC中的CU,PU,TU等概念, 支持更灵活的CU划分形状,一个CU可以正方形,也可以是长方形。一个CTU首先进行四叉 树划分,该四叉树的叶节点进一步进行二叉树划分。同时,在二叉树划分中存在两种划分模 式,对称水平分割和对称竖直分割。二叉树的叶节点被称为CU,JEM的CU在预测和变换的 过程中都不可以被进一步划分,也就是说JEM的CU,PU,TU具有相同的块大小。在现阶段 的JEM中,CTU的最大尺寸为256×256亮度像素。
[0145] 在一些可行的实施方式中,视频编码器100可利用预定义扫描次序来扫描经量化变换系数 以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器100可执行自适应性 扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器100可根据上下文自适应性可 变长度解码(context-based adaptive variable-length code,CAVLC)、上下文自适应性二进制算 术解码(context-based adaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应 性二进制算术解码(syntax-based adaptive binary arithmetic coding,SBAC)、概率区间分割熵  (probability interval partitioning entropy,PIPE)解码或其他熵解码方法来熵解码一维向量。 视频编码器100也可熵编码与经编码视频数据相关联的语法元素以供视频解码器200用于解码 视频数据。
[0146] 为了执行CABAC,视频编码器100可将上下文模型内的上下文指派给待传输的符号。上 下文可与符号的相邻值是否为非零有关。为了执行CAVLC,视频编码器100可选择待传输的 符号的可变长度码。可变长度解码(variable-length code,VLC)中的码字可经构建以使得相 对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以这个方式,VLC 的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率的目的。基于指派给 符号的上下文可以确定CABAC中的概率。
[0147] 在本申请实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。如前文所 描述,根据不同视频压缩编解码标准的规定,CU可具有一个或多个预测单元PU。换句话说, 多个PU可属于CU,或者PU和CU的尺寸相同。在本文中当CU和PU尺寸相同时,CU的分割模 式为不分割,或者即为分割为一个PU,且统一使用PU进行表述。当视频编码器执行帧间预测 时,视频编码器可用信号通知视频解码器用于PU的运动信息。示例性的,PU的运动信息可以 包括:参考图像索引、运动矢量和预测方向标识。运动矢量可指示PU的图像块(也称视频块、 像素块、像素集合等)与PU的参考块之间的位移。PU的参考块可为类似于PU的图像块的参 考图像的一部分。参考块可定位于由参考图像索引和预测方向标识指示的参考图像中。
[0148] 为了减少表示PU的运动信息所需要的编码比特的数目,视频编码器可根据合并预测模式 或高级运动矢量预测模式过程产生用于PU中的每一者的候选预测运动矢量(Motion Vector, MV)列表。用于PU的候选预测运动矢量列表中的每一候选预测运动矢量可指示运动信息。 由候选预测运动矢量列表中的一些候选预测运动矢量指示的运动信息可基于其它PU的运动 信息。如果候选预测运动矢量指示指定空间候选预测运动矢量位置或时间候选预测运动矢量 位置中的一者的运动信息,则本申请可将所述候选预测运动矢量称作“原始”候选预测运动矢 量。举例来说,对于合并模式,在本文中也称为合并预测模式,可存在五个原始空间候选预 测运动矢量位置和一个原始时间候选预测运动矢量位置。在一些实例中,视频编码器可通过 组合来自不同原始候选预测运动矢量的部分运动矢量、修改原始候选预测运动矢量或仅插入 零运动矢量作为候选预测运动矢量来产生额外候选预测运动矢量。这些额外候选预测运动矢 量不被视为原始候选预测运动矢量且在本申请中可称作人工产生的候选预测运动矢量。
[0149] 本申请的技术一般涉及用于在视频编码器处产生候选预测运动矢量列表的技术和用于在 视频解码器处产生相同候选预测运动矢量列表的技术。视频编码器和视频解码器可通过实施 用于构建候选预测运动矢量列表的相同技术来产生相同候选预测运动矢量列表。举例来说, 视频编码器和视频解码器两者可构建具有相同数目的候选预测运动矢量(例如,五个候选预 测运动矢量)的列表。视频编码器和解码器可首先考虑空间候选预测运动矢量(例如,同一 图像中的相邻块),接着考虑时间候选预测运动矢量(例如,不同图像中的候选预测运动矢量), 且最后可考虑人工产生的候选预测运动矢量直到将所要数目的候选预测运动矢量添加到列表 为止。根据本申请的技术,可在候选预测运动矢量列表构建期间针对某些类型的候选预测运 动矢量利用修剪操作以便从候选预测运动矢量列表移除重复,而对于其它类型的候选预测运 动矢量,可能不使用修剪以便减小解码器复杂性。举例来说,对于空间候选预测运动矢量集 合和对于时间候选预测运动矢量,可执行修剪操作以从候选预测运动矢量的列表排除具有重 复运动信息的候选预测运动矢量。然而,当将人工产生的候选预测运动矢量添加到候选预测 运动矢量的列表时,可在不对人工产生的候选预测运动矢量执行修剪操作的情况下添加人工 产生的候选预测运动矢量。
[0150] 在产生用于CU的PU的候选预测运动矢量列表之后,视频编码器可从候选预测运动矢量 列表选择候选预测运动矢量且在码流中输出候选预测运动矢量索引。选定候选预测运动矢量 可为具有产生最紧密地匹配正被解码的目标PU的预测子的运动矢量的候选预测运动矢量。候 选预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。视频 编码器还可基于由PU的运动信息指示的参考块产生用于PU的预测性图像块。可基于由选定候 选预测运动矢量指示的运动信息确定PU的运动信息。举例来说,在合并模式中,PU的运动信 息可与由选定候选预测运动矢量指示的运动信息相同。在AMVP模式中,PU的运动信息可基 于PU的运动矢量差和由选定候选预测运动矢量指示的运动信息确定。视频编码器可基于CU 的PU的预测性图像块和用于CU的原始图像块产生用于CU的一或多个残余图像块。视频编码 器可接着编码一或多个残余图像块且在码流中输出一或多个残余图像块。
[0151] 码流可包括识别PU的候选预测运动矢量列表中的选定候选预测运动矢量的数据。视频解 码器可基于由PU的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定 PU的运动信息。视频解码器可基于PU的运动信息识别用于PU的一或多个参考块。
在识别PU 的一或多个参考块之后,视频解码器可基于PU的一或多个参考块产生用于PU的预测性图像 块。视频解码器可基于用于CU的PU的预测性图像块和用于CU的一或多个残余图像块来重构 用于CU的图像块。
[0152] 为了易于解释,本申请可将位置或图像块描述为与CU或PU具有各种空间关系。此描述 可解释为是指位置或图像块和与CU或PU相关联的图像块具有各种空间关系。此外,本申请 可将视频解码器当前在解码的PU称作当前PU,也称为当前待处理图像块。本申请可将视频解 码器当前在解码的CU称作当前CU。本申请可将视频解码器当前在解码的图像称作当前图像。 应理解,本申请同时适用于PU和CU具有相同尺寸,或者PU即为CU的情况,统一使用PU来表 示。
[0153] 如前文简短地描述,视频编码器100可使用帧间预测以产生用于CU的PU的预测性图像块 和运动信息。在许多例子中,给定PU的运动信息可能与一或多个附近PU(即,其图像块在空 间上或时间上在给定PU的图像块附近的PU)的运动信息相同或类似。因为附近PU经常具有 类似运动信息,所以视频编码器100可参考附近PU的运动信息来编码给定PU的运动信息。参 考附近PU的运动信息来编码给定PU的运动信息可减少码流中指示给定PU的运动信息所需要 的编码比特的数目。
[0154] 视频编码器100可以各种方式参考附近PU的运动信息来编码给定PU的运动信息。举例来 说,视频编码器100可指示给定PU的运动信息与附近PU的运动信息相同。本申请可使用合并 模式来指代指示给定PU的运动信息与附近PU的运动信息相同或可从附近PU的运动信息导 出。在另一可行的实施方式中,视频编码器100可计算用于给定PU的运动矢量差(Motion Vector Difference,MVD)。MVD指示给定PU的运动矢量与附近PU的运动矢量之间的差。视频编码 器100可将MVD而非给定PU的运动矢量包括于给定PU的运动信息中。在码流中表示MVD比 表示给定PU的运动矢量所需要的编码比特少。本申请可使用高级运动矢量预测模式指代通过 使用MVD和识别候选者运动矢量的索引值来用信号通知解码端给定PU的运动信息。
[0155] 为了使用合并模式或AMVP模式来用信号通知解码端给定PU的运动信息,视频编码器 100可产生用于给定PU的候选预测运动矢量列表。候选预测运动矢量列表可包括一或多个候 选预测运动矢量。用于给定PU的候选预测运动矢量列表中的候选预测运动矢量中的每一者可 指定运动信息。由每一候选预测运动矢量指示的运动信息可包括运动矢量、参考图像索引和 预测方向标识。候选预测运动矢量列表中的候选预测运动矢量可包括“原始”候选预测运动矢 量,其中每一者指示不同于给定PU的PU内的指定候选预测运动矢量位置中的一者的运动信 息。
[0156] 在产生用于PU的候选预测运动矢量列表之后,视频编码器100可从用于PU的候选预测运 动矢量列表选择候选预测运动矢量中的一者。举例来说,视频编码器可比较每一候选预测运 动矢量与正被解码的PU且可选择具有所要码率-失真代价的候选预测运动矢量。视频编码器 100可输出用于PU的候选预测运动矢量索引。候选预测运动矢量索引可识别选定候选预测运 动矢量在候选预测运动矢量列表中的位置。
[0157] 此外,视频编码器100可基于由PU的运动信息指示的参考块产生用于PU的预测性图像块。 可基于由用于PU的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定 PU的运动信息。举例来说,在合并模式中,PU的运动信息可与由选定候选预测运动矢量指示 的运动信息相同。在AMVP模式中,可基于用于PU的运动矢量差和由选定候选预测运动矢量 指示的运动信息确定PU的运动信息。视频编码器100可如前文所描述处理用于PU的预测性图 像块。
[0158] 当视频解码器200接收到码流时,视频解码器200可产生用于CU的PU中的每一者的候选 预测运动矢量列表。由视频解码器200针对PU产生的候选预测运动矢量列表可与由视频编码 器100针对PU产生的候选预测运动矢量列表相同。从码流中解析得到的语法元素可指示在PU 的候选预测运动矢量列表中选定候选预测运动矢量的位置。在产生用于PU的候选预测运动矢 量列表之后,视频解码器200可基于由PU的运动信息指示的一或多个参考块产生用于PU的预 测性图像块。视频解码器200可基于由用于PU的候选预测运动矢量列表中的选定候选预测运 动矢量指示的运动信息确定PU的运动信息。视频解码器200可基于用于PU的预测性图像块和 用于CU的残余图像块重构用于CU的图像块。
[0159] 应理解,在一种可行的实施方式中,在解码端,候选预测运动矢量列表的构建与从码流 中解析选定候选预测运动矢量在候选预测运动矢量列表中的位置是相互独立,可以任意先后 或者并行进行的。
[0160] 在另一种可行的实施方式中,在解码端,首先从码流中解析选定候选预测运动矢量在候 选预测运动矢量列表中的位置,根据解析出来的位置构建候选预测运动矢量列表,在该实施 方式中,不需要构建全部的候选预测运动矢量列表,只需要构建到该解析出来的位置处的候 选预测运动矢量列表,即能够确定该位置出的候选预测运动矢量即可。举例来说,当解析码 流得出选定的候选预测运动矢量为候选预测运动矢量列表中索引为3的候选预测运动矢量时, 仅需要构建从索引为0到索引为3的候选预测运动矢量列表,即可确定索引为3的候选预测运动 矢量,可以达到减小复杂度,提高解码效率的技术效果。
[0161] 图2为本申请实施例中所描述的一种实例的视频编码器100的框图。视频编码器100用于将 视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的 视频实体的实例,例如媒体感知网络元件(MANE)或拼接/编辑装置。在一些情况下,后处 理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器100可为 单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频 编码器100的相同装置执行。在某一实例中,后处理实体41是图1的存储装置40的实例。
[0162] 在图2的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓 冲器(decoded picture buffer,DPB)107、求和器112、变换器101、量化器102和熵编码器103。 预测处理单元108包括帧间预测器110和帧内预测器109。为了图像块重构,视频编码器100还 包含反量化器104、反变换器105和求和器111。滤波器单元106既定表示一或多个环路滤波器, 例如去块滤波器、自适应环路滤波器(adaptive loop filter,ALF)和样本自适应偏移(sample adaptive offset,SAO)滤波器。尽管在图2中将滤波器单元106示出为环路内滤波器,但在其 它实现方式下,可将滤波器单元106实施为环路后滤波器。在一种示例下,视频编码器100还 可以包括视频数据存储器、分割单元(图中未示意)。
[0163] 视频数据存储器可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得 存储在视频数据存储器中的视频数据。DPB 107可为参考图像存储器,其存储用于由视频编 码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和 DPB 107可由多种存储器装置中的任一者形成,例如包含同步动态随机存储器(synchronous dynamic random access memory,SDRAM)的动态随机存取存储器(dynamic random access memory,DRAM)、磁阻式RAM(magnetic random access memory,MRAM)、电阻式RAM (resistive random access memory,RRAM),或其它类型的存储器装置。视频数据存储器和 DPB 107可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与 视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
[0164] 如图2所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储器中。 分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块, 例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片 (tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。 所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元108可选 择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个 帧间译码模式中的一者。预测处理单元108可将所得经帧内、帧间译码的块提供给求和器112 以产生残差块,且提供给求和器111以重构用作参考图像的经编码块。
[0165] 预测处理单元108内的帧内预测器109可相对于与待编码当前块在相同帧或条带中的一或 多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间 预测器110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编 码以去除时间冗余。
[0166] 具体的,帧间预测器110可用于确定用于编码当前图像块的帧间预测模式。举例来说,帧 间预测器110可使用码率-失真分析来计算候选帧间预测模式集合中的各种帧间预测模式的码 率-失真值,并从中选择具有最佳码率-失真特性的帧间预测模式。码率失真分析通常确定经 编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及 用于产生经编码块的位码率(也就是说,位数目)。例如,帧间预测器110可确定候选帧间预 测模式集合中编码所述当前图像块的码率失真代价最小的帧间预测模式为用于对当前图像块 进行帧间预测的帧间预测模式。
[0167] 帧间预测器110用于基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动 信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获 取或产生当前图像块的预测块。帧间预测器110可在参考图像列表中的一者中定位所述运动向 量指向的预测块。帧间预测器110还可产生与图像块和视频条带相关联的语法元素以供视频解 码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器110利用每个 子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测 块;应当理解的是,这里的帧间预测器110执行运动估计和运动补偿过程。
[0168] 具体的,在为当前图像块选择帧间预测模式之后,帧间预测器110可将指示当前图像块的 所选帧间预测模式的信息提供到熵编码器103,以便于熵编码器103编码指示所选帧间预测模 式的信息。
[0169] 帧内预测器109可对当前图像块执行帧内预测。明确地说,帧内预测器109可确定用来编 码当前块的帧内预测模式。举例来说,帧内预测器109可使用码率-失真分析来计算各种待测 试的帧内预测模式的码率-失真值,并从待测试模式当中选择具有最佳码率-失真特性的帧内 预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测器109可将指示当前 图像块的所选帧内预测模式的信息提供到熵编码器103,以便熵编码器
103编码指示所选帧内 预测模式的信息。
[0170] 在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器 100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器112表示执行此减 法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个TU中,并应用于变 换器101。变换器101使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频 数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。
[0171] 变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一步减 小位码率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或 者,熵编码器103可执行扫描。
[0172] 在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执 行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于 语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码 方法或技术。在由熵编码器103熵编码之后,可将经编码码流发射到视频解码器200,或经存 档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前图像块的语法元 素进行熵编码。
[0173] 反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构所述残差块,例 如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器110或 帧内预测器109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经重构图像 块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为参考块存储在经 解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧或图像中的块进行帧 间预测。
[0174] 应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图 像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应 地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产 生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或 者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元 106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。
[0175] 图3为本申请实施例中所描述的一种实例的视频解码器200的框图。在图3的实例中,视频 解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、 滤波器单元206以及DPB 207。预测处理单元208可以包括帧间预测器210和帧内预测器209。 在一些实例中,视频解码器200可执行大体上与相对于来自图2的视频编码器100描述的编码过 程互逆的解码过程。
[0176] 在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相 关联的语法元素的经编码视频码流。视频解码器200可从网络实体42接收视频数据,可选的, 还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待 由视频解码器200的组件解码的视频数据,例如经编码视频码流。存储在视频数据存储器中的 视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通 信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频 码流的经编码视频数据的经解码图像缓冲器(CPB)。因此,尽管在图3中没有示意出视频数 据存储器,但视频数据存储器和DPB 207可以是同一个的存储器,也可以是单独设置的存储 器。视频数据存储器和DPB 207可由多种存储器装置中的任一者形成,例如:包含同步DRAM (SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM), 或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器200的其它组件一 起集成在芯片上,或相对于那些组件设置在芯片外。
[0177] 网络实体42可例如为服务器、MANE、视频编辑器/剪接器,或用于实施上文所描述的技 术中的一或多者的其它此装置。网络实体42可包括或可不包括视频编码器,例如视频编码器 100。在网络实体42将经编码视频码流发送到视频解码器200之前,网络实体42可实施本申请 中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置 的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装 置执行。在一些情况下,网络实体42可为图1的存储装置40的实例。
[0178] 视频解码器200的熵解码器203对码流进行熵解码以产生经量化的系数和一些语法元素。 熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/ 或图像块层级处的语法元素。
[0179] 当视频条带被解码为经帧内解码(I)条带时,预测处理单元208的帧内预测器209可基于 发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前视频条带 的图像块的预测块。当视频条带被解码为经帧间解码(即,B或P)条带时,预测处理单元208 的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当前视频条带的当前 图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对所述当前图像块进行解码(例 如执行帧间预测)。具体的,帧间预测器210可确定是否对当前视频条带的当前图像块采用新 的帧间预测模式进行预测,如果语法元素指示采用新的帧间预测模式来对当前图像块进行预 测,基于新的帧间预测模式(例如通过语法元素指定的一种新的帧间预测模式或默认的一种 新的帧间预测模式)预测当前视频条带的当前图像块或当前图像块的子块的运动信息,从而 通过运动补偿过程使用预测出的当前图像块或当前图像块的子块的运动信息来获取或生成当 前图像块或当前图像块的子块的预测块。这里的运动信息可以包括参考图像信息和运动矢量, 其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对 应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生 预测块。视频解码器200可基于存储在DPB 207中的参考图像来建构参考图像列表,即列表0 和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例 中,可以是视频编码器100发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语 法元素,或者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪 一种新的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器210 执行运动补偿过程。
[0180] 反量化器204将在码流中提供且由熵解码器203解码的经量化变换系数逆量化,即去量化。 逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确 定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆变换应用于变换 系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
[0181] 在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器 200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得到重建 的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可使用环路滤 波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。 滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF) 以及样本自适应偏移(SAO)滤波器。尽管在图3中将滤波器单元206示出为环路内滤波器, 但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。在一种示例下,滤波器单元 206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧 或图像中的经解码图像块存储在DPB 207中,经DPB 207存储用于后续运动补偿的参考图像。 经DPB 207可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图 1的显示装置220)上呈现,或可与此类存储器分开。
[0182] 应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频码流。例如,视频 解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块或者图像 帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经反量化器204 和反变换器205处理。
[0183] 如前文所注明,本申请的技术示例性地涉及帧间解码。应理解,本申请的技术可通过本 申请中所描述的视频解码器中的任一者进行,视频解码器包含(例如)如关于图1到3所展示 及描述的视频编码器100及视频解码器200。即,在一种可行的实施方式中,关于图2所描述的 帧间预测器110可在视频数据的块的编码期间在执行帧间预测时执行下文中所描述的特定技 术。在另一可行的实施方式中,关于图3所描述的帧间预测器210可在视频数据的块的解码期 间在执行帧间预测时执行下文中所描述的特定技术。因此,对一般性“视频编码器”或“视频解 码器”的引用可包含视频编码器100、视频解码器200或另一视频编码或编码单元。
[0184] 应当理解的是,本申请的编码器100和解码器200中,针对某个环节的处理结果可以经 过进一步处理后,输出到下一个环节,例如,在插值滤波、运动矢量推导或环路滤波等环节 之后,对相应环节的处理结果进一步进行Clip或移位shift等操作。
[0185] 例如,对运动矢量的取值范围进行约束,使其在一定的位宽内。假设允许的运动矢量的 位宽为bitDepth,则运动矢量的范围为-2^(bitDepth-1)~2^(bitDepth-1)-1,其中“^”符号表示 幂次方。如bitDepth为16,则取值范围为-32768~32767。如bitDepth为18,则取值范围为 -131072~131071。可以通过以下两种方式进行约束:
[0186] 方式1,将运动矢量溢出的高位去除:
[0187] ux=(vx+2bitDepth)%2bitDepth
[0188] vx=(ux≥2bitDepth-1)?(ux-2bitDepth):ux
[0189] uy=(vy+2bitDepth)%2bitDepth
[0190] vy=(uy≥2bitDepth-1)?(uy-2bitDepth):uy
[0191] 例如vx的值为-32769,通过以上公式得到的为32767。因为在计算机中,数值是以二进 制的补码形式存储的,-32769的二进制补码为1,0111,1111,1111,1111(17位),计算机对于溢 出的处理为丢弃高位,则vx的值为0111,1111,1111,1111,则为32767,与通过公式处理得到 的结果一致。
[0192] 方法2,将运动矢量进行Clipping,如以下公式所示:
[0193] vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
[0194] vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
[0195] 其中Clip3的定义为,表示将z的值钳位到区间[x,y]之间:
[0196]
[0197] 图4为本申请实施例中帧间预测模块121的一种示意性框图。帧间预测模块121,示例性的, 可以包括运动估计单元和运动补偿单元。在不同的视频压缩编解码标准中,PU和CU的关系 各有不同。帧间预测模块121可根据多个分割模式将当前CU分割为PU。举例来说,帧间预测 模块121可根据2N×2N、2N×N、N×2N和N×N分割模式将当前CU分割为PU。在其他实施例中, 当前CU即为当前PU,不作限定。
[0198] 帧间预测模块121可对PU中的每一者执行整数运动估计(Integer Motion Estimation,IME) 且接着执行分数运动估计(Fraction Motion Estimation,FME)。当帧间预测模块121对PU执行 IME时,帧间预测模块121可在一个或多个参考图像中搜索用于PU的参考块。在找到用于PU 的参考块之后,帧间预测模块121可产生以整数精度指示PU与用于PU的参考块之间的空间位 移的运动矢量。当帧间预测模块121对PU执行FME时,帧间预测模块121可改进通过对PU执行 IME而产生的运动矢量。通过对PU执行FME而产生的运动矢量可具有子整数精度(例如,1/2 像素精度、1/4像素精度等)。在产生用于PU的运动矢量之后,帧间预测模块121可使用用于PU 的运动矢量以产生用于PU的预测性图像块。
[0199] 在帧间预测模块121使用AMVP模式用信号通知解码端PU的运动信息的一些可行的实施 方式中,帧间预测模块121可产生用于PU的候选预测运动矢量列表。候选预测运动矢量列表 可包括一个或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一个或多个额外 候选预测运动矢量。在产生用于PU的候选预测运动矢量列表之后,帧间预测模块121可从候 选预测运动矢量列表选择候选预测运动矢量且产生用于PU的运动矢量差(MVD)。用于PU的 MVD可指示由选定候选预测运动矢量指示的运动矢量与使用IME和FME针对PU产生的运动 矢量之间的差。在这些可行的实施方式中,帧间预测模块121可输出识别选定候选预测运动矢 量在候选预测运动矢量列表中的位置的候选预测运动矢量索引。帧间预测模块121还可输出 PU的MVD。下文详细描述图6中,本申请实施例中高级运动矢量预测(AMVP)模式的一种 可行的实施方式。
[0200] 除了通过对PU执行IME和FME来产生用于PU的运动信息外,帧间预测模块121还可对PU 中的每一者执行合并(Merge)操作。当帧间预测模块121对PU执行合并操作时,帧间预测模 块121可产生用于PU的候选预测运动矢量列表。用于PU的候选预测运动矢量列表可包括一个 或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一个或多个额外候选预测运 动矢量。候选预测运动矢量列表中的原始候选预测运动矢量可包括一个或多个空间候选预测 运动矢量和时间候选预测运动矢量。空间候选预测运动矢量可指示当前图像中的其它PU的运 动信息。时间候选预测运动矢量可基于不同于当前图像的对应的PU的运动信息。时间候选预 测运动矢量还可称作时间运动矢量预测(TMVP)。
[0201] 在产生候选预测运动矢量列表之后,帧间预测模块121可从候选预测运动矢量列表选择候 选预测运动矢量中的一个。帧间预测模块121可接着基于由PU的运动信息指示的参考块产生 用于PU的预测性图像块。在合并模式中,PU的运动信息可与由选定候选预测运动矢量指示的 运动信息相同。下文描述的图5说明Merge示例性的流程图。
[0202] 在基于IME和FME产生用于PU的预测性图像块和基于合并操作产生用于PU的预测性图 像块之后,帧间预测模块121可选择通过FME操作产生的预测性图像块或者通过合并操作产生 的预测性图像块。在一些可行的实施方式中,帧间预测模块121可基于通过FME操作产生的预 测性图像块和通过合并操作产生的预测性图像块的码率-失真代价分析来选择用于PU的预测 性图像块。
[0203] 在帧间预测模块121已选择通过根据分割模式中的每一者分割当前CU而产生的PU的预 测性图像块之后(在一些实施方式中,编码树单元CTU划分为CU后,不会再进一步划分为更 小的PU,此时PU等同于CU),帧间预测模块121可选择用于当前CU的分割模式。在一些实施 方式中,帧间预测模块121可基于通过根据分割模式中的每一者分割当前CU而产生的PU的选 定预测性图像块的码率-失真代价分析来选择用于当前CU的分割模式。帧间预测模块121可将 与属于选定分割模式的PU相关联的预测性图像块输出到残差产生模块102。帧间预测模块121 可将指示属于选定分割模式的PU的运动信息的语法元素输出到熵编码模块。
[0204] 在图4的示意图中,帧间预测模块121包括IME模块180A到180N(统称为“IME模块180”)、 FME模块182A到182N(统称为“FME模块182”)、合并模块184A到184N(统称为“合并模块 184”)、PU模式决策模块186A到186N(统称为“PU模式决策模块186”)和CU模式决策模块
188 (也可以包括执行从CTU到CU的模式决策过程)。
[0205] IME模块180、FME模块182和合并模块184可对当前CU的PU执行IME操作、FME操作和 合并操作。图4的示意图中将帧间预测模块121说明为包括用于CU的每一分割模式的每一PU 的单独IME模块180、FME模块182和合并模块184。在其它可行的实施方式中,帧间预测模块 121不包括用于CU的每一分割模式的每一PU的单独IME模块180、FME模块182和合并模块 
184。
[0206] 如图4的示意图中所说明,IME模块180A、FME模块182A和合并模块184A可对通过根据 2N×2N分割模式分割CU而产生的PU执行IME操作、FME操作和合并操作。PU模式决策模块 186A可选择由IME模块180A、FME模块182A和合并模块184A产生的预测性图像块中的一者。
[0207] IME模块180B、FME模块182B和合并模块184B可对通过根据N×2N分割模式分割CU而产 生的左PU执行IME操作、FME操作和合并操作。PU模式决策模块186B可选择由IME模块180B、 FME模块182B和合并模块184B产生的预测性图像块中的一者。
[0208] IME模块180C、FME模块182C和合并模块184C可对通过根据N×2N分割模式分割CU而产 生的右PU执行IME操作、FME操作和合并操作。PU模式决策模块186C可选择由IME模块180C、 FME模块182C和合并模块184C产生的预测性图像块中的一者。
[0209] IME模块180N、FME模块182N和合并模块184可对通过根据N×N分割模式分割CU而产生 的右下PU执行IME操作、FME操作和合并操作。PU模式决策模块186N可选择由IME模块 180N、FME模块182N和合并模块184N产生的预测性图像块中的一者。
[0210] PU模式决策模块186可基于多个可能预测性图像块的码率-失真代价分析选择预测性图像 块,且选择针对给定解码情形提供最佳码率-失真代价的预测性图像块。示例性的,对于带宽 受限的应用,PU模式决策模块186可偏向选择增加压缩比的预测性图像块,而对于其它应用, PU模式决策模块186可偏向选择增加经重建视频质量的预测性图像块。在PU模式决策模块186 选择用于当前CU的PU的预测性图像块之后,CU模式决策模块188选择用于当前CU的分割模 式且输出属于选定分割模式的PU的预测性图像块和运动信息。
[0211] 图5为本申请实施例中合并模式的一种实施流程图。视频编码器(例如视频编码器20)可 执行合并操作201。该合并操作201可以包括:S202、产生用于当前预测单元的候选者列表。 S204、产生与候选者列表中的候选者相关联的预测性视频块。S206、从候选者列表选择候选 者。S208、输出候选者。其中,候选者是指候选运动矢量或者候选运动信息。
[0212] 在其它可行的实施方式中,视频编码器可执行不同于合并操作201的合并操作。举例来说, 在其它可行的实施方式中,视频编码器可执行合并操作,其中视频编码器执行比合并操作201 多、少的步骤或与合并操作201不同的步骤。在其它可行的实施方式中,视频编码器可以不同 次序或并行地执行合并操作201的步骤。编码器还可对以跳跃(skip)模式编码的PU执行合并 操作201。
[0213] 在视频编码器开始合并操作201之后,视频编码器可产生用于当前PU的候选预测运动矢 量列表(S202)。视频编码器可以各种方式产生用于当前PU的候选预测运动矢量列表。举例 来说,视频编码器可根据下文关于图8到图12描述的实例技术中的一者产生用于当前PU的候 选预测运动矢量列表。
[0214] 如前文所述,用于当前PU的候选预测运动矢量列表可包括时间候选预测运动矢量。时间 候选预测运动矢量可指示时域对应(co-located)的PU的运动信息。co-located的PU可在空间 上与当前PU处于图像帧中的同一个位置,但在参考图像而非当前图像中。本申请可将包括时 域对应的PU的参考图像称作相关参考图像。本申请可将相关参考图像的参考图像索引称作相 关参考图像索引。如前文所描述,当前图像可与一个或多个参考图像列表(例如,列表0、列 表1等)相关联。参考图像索引可通过指示在参考图像某一个参考图像列表中的位置来指示参 考图像。在一些可行的实施方式中,当前图像可与组合参考图像列表相关联。
[0215] 在一些视频编码器中,相关参考图像索引为涵盖与当前PU相关联的参考索引源位置的PU 的参考图像索引。在这些视频编码器中,与当前PU相关联的参考索引源位置邻接于当前PU 左方或邻接于当前PU上方。在本申请中,如果与PU相关联的图像块包括特定位置,则PU可“涵 盖”所述特定位置。在这些视频编码器中,如果参考索引源位置不可用,则视频编码器可使用 零的参考图像索引。
[0216] 然而,可存在以下例子:与当前PU相关联的参考索引源位置在当前CU内。在这些例子 中,如果PU在当前CU上方或左方,则涵盖与当前PU相关联的参考索引源位置的PU可被视为 可用。然而,视频编码器可需要存取当前CU的另一PU的运动信息以便确定含有co-located PU 的参考图像。因此,这些视频编码器可使用属于当前CU的PU的运动信息(即,参考图像索 引)以产生用于当前PU的时间候选预测运动矢量。换句话说,这些视频编码器可使用属于当 前CU的PU的运动信息产生时间候选预测运动矢量。因此,视频编码器可能不能并行地产生 用于当前PU和涵盖与当前PU相关联的参考索引源位置的PU的候选预测运动矢量列表。
[0217] 根据本申请的技术,视频编码器可在不参考任何其它PU的参考图像索引的情况下显式地 设定相关参考图像索引。此可使得视频编码器能够并行地产生用于当前PU和当前CU的其它 PU的候选预测运动矢量列表。因为视频编码器显式地设定相关参考图像索引,所以相关参考 图像索引不基于当前CU的任何其它PU的运动信息。在视频编码器显式地设定相关参考图像 索引的一些可行的实施方式中,视频编码器可始终将相关参考图像索引设定为固定的预定义 预设参考图像索引(例如0)。以此方式,视频编码器可基于由预设参考图像索引指示的参考 帧中的co-located PU的运动信息产生时间候选预测运动矢量,且可将时间候选预测运动矢量 包括于当前CU的候选预测运动矢量列表中。
[0218] 在视频编码器显式地设定相关参考图像索引的可行的实施方式中,视频编码器可显式地 在语法结构(例如图像标头、条带标头、APS或另一语法结构)中用信号通知相关参考图像 索引。在此可行的实施方式中,视频编码器可用信号通知解码端用于每一LCU(即CTU)、CU、PU、TU或其它类型的子块的相关参考图像索引。举例来说,视频编码器可用信号通知: 用于CU的每一PU的相关参考图像索引等于“1”。
[0219] 在一些可行的实施方式中,相关参考图像索引可经隐式地而非显式地设定。在这些可行 的实施方式中,视频编码器可使用由涵盖当前CU外部的位置的PU的参考图像索引指示的参 考图像中的PU的运动信息产生用于当前CU的PU的候选预测运动矢量列表中的每一时间候选 预测运动矢量,即使这些位置并不严格地邻近当前PU。
[0220] 在产生用于当前PU的候选预测运动矢量列表之后,视频编码器可产生与候选预测运动矢 量列表中的候选预测运动矢量相关联的预测性图像块(S204)。视频编码器可通过基于所指示 候选预测运动矢量的运动信息确定当前PU的运动信息和接着基于由当前PU的运动信息指示 的一个或多个参考块产生预测性图像块来产生与候选预测运动矢量相关联的预测性图像块。 视频编码器可接着从候选预测运动矢量列表选择候选预测运动矢量中的一者(S206)。视频编 码器可以各种方式选择候选预测运动矢量。举例来说,视频编码器可基于对与候选预测运动 矢量相关联的预测性图像块的每一者的码率-失真代价分析来选择候选预测运动矢量中的一 者。
[0221] 在选择候选预测运动矢量之后,视频编码器可输出候选预测运动矢量索引(S208)。候选 预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。在一些 可行的实施方式中,候选预测运动矢量索引可表示为“merge_idx”。
[0222] 图6为本申请实施例中高级运动矢量预测(AMVP)模式的一种实施流程图。视频编码器 (例如视频编码器20)可执行AMVP操作210。该AMVP操作210可以包括:S211、产生用于 当前预测单元的一个或多个运动向量。S212、产生用于当前预测单元的预测性视频块。S213、 产生用于当前预测单元的候选者列表。S214、产生运动向量差。S215从候选者列表选择候选 者。S216、输出参考图片索引、候选者索引,和用于选定候选者的运动向量差。其中,候选 者是指候选运动矢量或者候选运动信息。
[0223] 在视频编码器开始AMVP操作210之后,视频编码器可产生用于当前PU的一个或多个运 动矢量(S211)。视频编码器可执行整数运动估计和分数运动估计以产生用于当前PU的运动 矢量。如前文所描述,当前图像可与两个参考图像列表(列表0和列表1)相关联。如果当前 PU经单向预测,则视频编码器可产生用于当前PU的列表0运动矢量或列表1运动矢量。列表0 运动矢量可指示当前PU的图像块与列表0中的参考图像中的参考块之间的空间位移。列表1运 动矢量可指示当前PU的图像块与列表1中的参考图像中的参考块之间的空间位移。如果当前 PU经双向预测,则视频编码器可产生用于当前PU的列表0运动矢量和列表1运动矢量。
[0224] 在产生用于当前PU的一个或多个运动矢量之后,视频编码器可产生用于当前PU的预测性 图像块(S212)。视频编码器可基于由用于当前PU的一个或多个运动矢量指示的一个或多个 参考块产生用于当前PU的预测性图像块。
[0225] 另外,视频编码器可产生用于当前PU的候选预测运动矢量列表(S213)。视频解码器可 以各种方式产生用于当前PU的候选预测运动矢量列表。举例来说,视频编码器可根据下文关 于图8到图12描述的可行的实施方式中的一个或多个产生用于当前PU的候选预测运动矢量列 表。在一些可行的实施方式中,当视频编码器在AMVP操作210中产生候选预测运动矢量列表 时,候选预测运动矢量列表可限于两个候选预测运动矢量。相比而言,当视频编码器在合并 操作中产生候选预测运动矢量列表时,候选预测运动矢量列表可包括更多候选预测运动矢量 (例如,五个候选预测运动矢量)。
[0226] 在产生用于当前PU的候选预测运动矢量列表之后,视频编码器可产生用于候选预测运动 矢量列表中的每一候选预测运动矢量的一个或多个运动矢量差(MVD)(S214)。视频编码器 可通过确定由候选预测运动矢量指示的运动矢量与当前PU的对应运动矢量之间的差来产生 用于候选预测运动矢量的运动矢量差。
[0227] 如果当前PU经单向预测,则视频编码器可产生用于每一候选预测运动矢量的单一MVD。 如果当前PU经双向预测,则视频编码器可产生用于每一候选预测运动矢量的两个MVD。第一 MVD可指示候选预测运动矢量的运动矢量与当前PU的列表0运动矢量之间的差。第二MVD可 指示候选预测运动矢量的运动矢量与当前PU的列表1运动矢量之间的差。
[0228] 视频编码器可从候选预测运动矢量列表选择候选预测运动矢量中的一个或多个(S215)。 视频编码器可以各种方式选择一个或多个候选预测运动矢量。举例来说,视频编码器可选择 具有最小误差地匹配待编码的运动矢量的相关联运动矢量的候选预测运动矢量,此可减少表 示用于候选预测运动矢量的运动矢量差所需的位数目。
[0229] 在选择一个或多个候选预测运动矢量之后,视频编码器可输出用于当前PU的一个或多个 参考图像索引、一个或多个候选预测运动矢量索引,和用于一个或多个选定候选预测运动矢 量的一个或多个运动矢量差(S216)。
[0230] 在当前图像与两个参考图像列表(列表0和列表1)相关联且当前PU经单向预测的例子中, 视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)或用于列表1的参考图像索引 (“ref_idx_11”)。视频编码器还可输出指示用于当前PU的列表0运动矢量的选定候选预测运动 矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。或者, 视频编码器可输出指示用于当前PU的列表1运动矢量的选定候选预测运动矢量在候选预测运 动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于 当前PU的列表0运动矢量或列表1运动矢量的MVD。
[0231] 在当前图像与两个参考图像列表(列表0和列表1)相关联且当前PU经双向预测的例子中, 视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)和用于列表1的参考图像索引 (“ref_idx_11”)。视频编码器还可输出指示用于当前PU的列表0运动矢量的选定候选预测运动 矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。另外, 视频编码器可输出指示用于当前PU的列表1运动矢量的选定候选预测运动矢量在候选预测运 动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于 当前PU的列表0运动矢量的MVD和用于当前PU的列表1运动矢量的MVD。
[0232] 图7为本申请实施例中由视频解码器(例如视频解码器30)执行的运动补偿的一种实施流 程图。
[0233] 当视频解码器执行运动补偿操作221时,视频解码器可接收用于当前PU的选定候选预测 运动矢量的指示(S222)。举例来说,视频解码器可接收指示选定候选预测运动矢量在当前PU 的候选预测运动矢量列表内的位置的候选预测运动矢量索引。
[0234] 如果当前PU的运动信息是使用AMVP模式进行编码且当前PU经双向预测,则视频解码器 可接收第一候选预测运动矢量索引和第二候选预测运动矢量索引。第一候选预测运动矢量索 引指示用于当前PU的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的 位置。第二候选预测运动矢量索引指示用于当前PU的列表1运动矢量的选定候选预测运动矢 量在候选预测运动矢量列表中的位置。在一些可行的实施方式中,单一语法元素可用以识别 两个候选预测运动矢量索引。
[0235] 另外,视频解码器可产生用于当前PU的候选预测运动矢量列表(S224)。视频解码器可 以各种方式产生用于当前PU的此候选预测运动矢量列表。举例来说,视频解码器可使用下文 参看图8到图12描述的技术来产生用于当前PU的候选预测运动矢量列表。当视频解码器产生 用于候选预测运动矢量列表的时间候选预测运动矢量时,视频解码器可显式地或隐式地设定 识别包括co-located PU的参考图像的参考图像索引,如前文关于图5所描述。
[0236] 在产生用于当前PU的候选预测运动矢量列表之后,视频解码器可基于由用于当前PU的候 选预测运动矢量列表中的一个或多个选定候选预测运动矢量指示的运动信息确定当前PU的 运动信息(S225)。举例来说,如果当前PU的运动信息是使用合并模式而编码,则当前PU的 运动信息可与由选定候选预测运动矢量指示的运动信息相同。如果当前PU的运动信息是使用 AMVP模式而编码,则视频解码器可使用由所述或所述选定候选预测运动矢量指示的一个或 多个运动矢量和码流中指示的一个或多个MVD来重建当前PU的一个或多个运动矢量。当前 PU的参考图像索引和预测方向标识可与所述一个或多个选定候选预测运动矢量的参考图像 索引和预测方向标识相同。在确定当前PU的运动信息之后,视频解码器可基于由当前PU的运 动信息指示的一个或多个参考块产生用于当前PU的预测性图像块(S226)。
[0237] 图8为本申请实施例中编码单元(CU)及与其关联的相邻位置图像块的一种示例性示意 图,说明CU250和与CU250相关联的示意性的候选预测运动矢量位置252A到252E的示意图。 本申请可将候选预测运动矢量位置252A到252E统称为候选预测运动矢量位置252。候选预测 运动矢量位置252表示与CU250在同一图像中的空间候选预测运动矢量。候选预测运动矢量位 置252A定位于CU250左方。候选预测运动矢量位置252B定位于CU250上方。候选预测运动矢 量位置252C定位于CU250右上方。候选预测运动矢量位置252D定位于CU250左下方。候选预 测运动矢量位置252E定位于CU250左上方。图8为用以提供帧间预测模块
121和运动补偿模块 可产生候选预测运动矢量列表的方式的示意性实施方式。下文将参考帧间预测模块121解释实 施方式,但应理解运动补偿模块可实施相同技术,且因此产生相同候选预测运动矢量列表。
[0238] 图9为本申请实施例中构建候选预测运动矢量列表的一种实施流程图。将参考包括五个候 选预测运动矢量的列表描述图9的技术,但本文中所描述的技术还可与具有其它大小的列表一 起使用。五个候选预测运动矢量可各自具有索引(例如,0到4)。将参考一般视频解码器描述 图9的技术。一般视频解码器示例性的可以为视频编码器(例如视频编码器20)或视频解码器 (例如视频解码器30)。
[0239] 为了根据图9的实施方式重建候选预测运动矢量列表,视频解码器首先考虑四个空间候选 预测运动矢量(902)。四个空间候选预测运动矢量可以包括候选预测运动矢量位置252A、 252B、252C和252D。四个空间候选预测运动矢量对应于与当前CU(例如,CU250)在同一图 像中的四个PU的运动信息。视频解码器可以特定次序考虑列表中的四个空间候选预测运动矢 量。举例来说,候选预测运动矢量位置252A可被第一个考虑。如果候选预测运动矢量位置252A 可用,则候选预测运动矢量位置252A可指派到索引0。如果候选预测运动矢量位置252A不可 用,则视频解码器可不将候选预测运动矢量位置252A包括于候选预测运动矢量列表中。候选 预测运动矢量位置可出于各种理由而不可用。举例来说,如果候选预测运动矢量位置不在当 前图像内,则候选预测运动矢量位置可能不可用。在另一可行的实施方式中,如果候选预测 运动矢量位置经帧内预测,则候选预测运动矢量位置可能不可用。在另一可行的实施方式中, 如果候选预测运动矢量位置在与当前CU不同的条带中,则候选预测运动矢量位置可能不可 用。
[0240] 在考虑候选预测运动矢量位置252A之后,视频解码器可接下来考虑候选预测运动矢量位 置252B。如果候选预测运动矢量位置252B可用且不同于候选预测运动矢量位置252A,则视频 解码器可将候选预测运动矢量位置252B添加到候选预测运动矢量列表。在此特定上下文中, 术语“相同”和“不同”指代与候选预测运动矢量位置相关联的运动信息。因此,如果两个候选 预测运动矢量位置具有相同运动信息则被视为相同,且如果其具有不同运动信息则被视为不 同。如果候选预测运动矢量位置252A不可用,则视频解码器可将候选预测运动矢量位置252B 指派到索引0。如果候选预测运动矢量位置252A可用,则视频解码器可将候选预测运动矢量 位置252指派到索引1。如果候选预测运动矢量位置252B不可用或与候选预测运动矢量位置 252A相同,则视频解码器跳过候选预测运动矢量位置252B且不将其包括于候选预测运动矢量 列表中。
[0241] 候选预测运动矢量位置252C由视频解码器类似地考虑以供包括于列表中。如果候选预测 运动矢量位置252C可用且不与候选预测运动矢量位置252B和252A相同,则视频解码器将候选 预测运动矢量位置252C指派到下一可用索引。如果候选预测运动矢量位置252C不可用或并非 不同于候选预测运动矢量位置252A和252B中的至少一者,则视频解码器不将候选预测运动矢 量位置252C包括于候选预测运动矢量列表中。接下来,视频解码器考虑候选预测运动矢量位 置252D。如果候选预测运动矢量位置252D可用且不与候选预测运动矢量位置252A、252B和 252C相同,则视频解码器将候选预测运动矢量位置252D指派到下一可用索引。如果候选预测 运动矢量位置252D不可用或并非不同于候选预测运动矢量位置252A、252B和252C中的至少 一者,则视频解码器不将候选预测运动矢量位置252D包括于候选预测运动矢量列表中。以上 实施方式大体上描述示例性地考虑候选预测运动矢量
252A到252D以供包括于候选预测运动 矢量列表中,但在一些实施方施中,可首先将所有候选预测运动矢量252A到252D添加到候选 预测运动矢量列表,稍后从候选预测运动矢量列表移除重复。
[0242] 在视频解码器考虑前四个空间候选预测运动矢量之后,候选预测运动矢量列表可能包括 四个空间候选预测运动矢量或者该列表可能包括少于四个空间候选预测运动矢量。如果列表 包括四个空间候选预测运动矢量(904,是),则视频解码器考虑时间候选预测运动矢量(906)。 时间候选预测运动矢量可对应于不同于当前图像的图像的co-located PU的运动信息。如果时 间候选预测运动矢量可用且不同于前四个空间候选预测运动矢量,则视频解码器将时间候选 预测运动矢量指派到索引4。如果时间候选预测运动矢量不可用或与前四个空间候选预测运动 矢量中的一者相同,则视频解码器不将所述时间候选预测运动矢量包括于候选预测运动矢量 列表中。因此,在视频解码器考虑时间候选预测运动矢量(906)之后,候选预测运动矢量列 表可能包括五个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量和框904处 考虑的时间候选预测运动矢量)或可能包括四个候选预测运动矢量(框902处考虑的前四个空 间候选预测运动矢量)。如果候选预测运动矢量列表包括五个候选预测运动矢量(908,是), 则视频解码器完成构建列表。
[0243] 如果候选预测运动矢量列表包括四个候选预测运动矢量(908,否),则视频解码器可考 虑第五空间候选预测运动矢量(910)。第五空间候选预测运动矢量可(例如)对应于候选预 测运动矢量位置252E。如果位置252E处的候选预测运动矢量可用且不同于位置252A、252B、 252C和252D处的候选预测运动矢量,则视频解码器可将第五空间候选预测运动矢量添加到候 选预测运动矢量列表,第五空间候选预测运动矢量经指派到索引4。如果位置
252E处的候选预 测运动矢量不可用或并非不同于候选预测运动矢量位置252A、252B、252C和252D处的候选 预测运动矢量,则视频解码器可不将位置252处的候选预测运动矢量包括于候选预测运动矢量 列表中。因此在考虑第五空间候选预测运动矢量(910)之后,列表可能包括五个候选预测运 动矢量(框902处考虑的前四个空间候选预测运动矢量和框910处考虑的第五空间候选预测运 动矢量)或可能包括四个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量)。
[0244] 如果候选预测运动矢量列表包括五个候选预测运动矢量(912,是),则视频解码器完成 产生候选预测运动矢量列表。如果候选预测运动矢量列表包括四个候选预测运动矢量(912, 否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括五个候选预测运 动矢量(916,是)为止。
[0245] 如果在视频解码器考虑前四个空间候选预测运动矢量之后,列表包括少于四个空间候选 预测运动矢量(904,否),则视频解码器可考虑第五空间候选预测运动矢量(918)。第五空 间候选预测运动矢量可(例如)对应于候选预测运动矢量位置252E。如果位置252E处的候选 预测运动矢量可用且不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则视频 解码器可将第五空间候选预测运动矢量添加到候选预测运动矢量列表,第五空间候选预测运 动矢量经指派到下一可用索引。如果位置252E处的候选预测运动矢量不可用或并非不同于已 包括于候选预测运动矢量列表中的候选预测运动矢量中的一者,则视频解码器可不将位置 252E处的候选预测运动矢量包括于候选预测运动矢量列表中。视频解码器可接着考虑时间候 选预测运动矢量(920)。如果时间候选预测运动矢量可用且不同于已包括于候选预测运动矢 量列表中的候选预测运动矢量,则视频解码器可将所述时间候选预测运动矢量添加到候选预 测运动矢量列表,所述时间候选预测运动矢量经指派到下一可用索引。如果时间候选预测运 动矢量不可用或并非不同于已包括于候选预测运动矢量列表中的候选预测运动矢量中的一 者,则视频解码器可不将所述时间候选预测运动矢量包括于候选预测运动矢量列表中。
[0246] 如果在考虑第五空间候选预测运动矢量(框918)和时间候选预测运动矢量(框920)之 后,候选预测运动矢量列表包括五个候选预测运动矢量(922,是),则视频解码器完成产生 候选预测运动矢量列表。如果候选预测运动矢量列表包括少于五个候选预测运动矢量(922, 否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括五个候选预测运 动矢量(916,是)为止。
[0247] 根据本申请的技术,可在空间候选预测运动矢量和时间候选预测运动矢量之后人工产生 额外合并候选预测运动矢量以使合并候选预测运动矢量列表的大小固定为合并候选预测运动 矢量的指定数目(例如前文图9的可行的实施方式中的五个)。额外合并候选预测运动矢量可 包括示例性的经组合双向预测性合并候选预测运动矢量(候选预测运动矢量1)、经缩放双向 预测性合并候选预测运动矢量(候选预测运动矢量2),和零向量Merge/AMVP候选预测运动 矢量(候选预测运动矢量3)。
[0248] 图10为本申请实施例中将经过组合的候选运动矢量添加到合并模式候选预测运动矢量列 表的一种示例性示意图。经组合双向预测性合并候选预测运动矢量可通过组合原始合并候选 预测运动矢量而产生。具体来说,原始候选预测运动矢量中的两个候选预测运动矢量(其具 有mvL0和refIdxL0或mvL1和refIdxL1)可用以产生双向预测性合并候选预测运动矢量。在图 10中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表中。一候选预测运动矢 量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测类型为列表1单向预测。在 此可行的实施方式中,mvL0_A和ref0是从列表0拾取,且mvL1_B和ref0是从列表1拾取,且接 着可产生双向预测性合并候选预测运动矢量(其具有列表0中的mvL0_A和ref0以及列表1中的mvL1_B和ref0)并检查其是否不同于已包括于候选预测运动矢量列表中的候选预测运动矢 量。如果其不同,则视频解码器可将双向预测性合并候选预测运动矢量包括于候选预测运动 矢量列表中。
[0249] 图11为本申请实施例中将经过缩放的候选运动矢量添加到合并模式候选预测运动矢量列 表的一种示例性示意图。经缩放双向预测性合并候选预测运动矢量可通过缩放原始合并候选 预测运动矢量而产生。具体来说,来自原始候选预测运动矢量的一候选预测运动矢量(其可 具有mvLX和refIdxLX)可用以产生双向预测性合并候选预测运动矢量。在图11的可行的实施 方式中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表中。一候选预测运动 矢量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测类型为列表1单向预测。 在此可行的实施方式中,mvL0_A和ref0可从列表0拾取,且ref0可复制到列表1中的参考索引 ref0′。接着,可通过缩放具有ref0和ref0′的mvL0_A而计算mvL0′_A。缩放可取决于POC(Picture Order Count)距离。接着,可产生双向预测性合并候选预测运动矢量(其具有列表0中的mvL0_A 和ref0以及列表1中的mvL0′_A和ref0′)并检查其是否为重复的。如果其并非重复的,则可将 其添加到合并候选预测运动矢量列表。
[0250] 图12为本申请实施例中将零运动矢量添加到合并模式候选预测运动矢量列表的一种示例 性示意图。零向量合并候选预测运动矢量可通过组合零向量与可经参考的参考索引而产生。 如果零向量候选预测运动矢量并非重复的,则可将其添加到合并候选预测运动矢量列表。对 于每一产生的合并候选预测运动矢量,运动信息可与列表中的前一候选预测运动矢量的运动 信息比较。
[0251] 在一种可行的实施方式中,如果新产生的候选预测运动矢量不同于已包括于候选预测运 动矢量列表中的候选预测运动矢量,则将所产生的候选预测运动矢量添加到合并候选预测运 动矢量列表。确定候选预测运动矢量是否不同于已包括于候选预测运动矢量列表中的候选预 测运动矢量的过程有时称作修剪(pruning)。通过修剪,每一新产生的候选预测运动矢量可与 列表中的现有候选预测运动矢量比较。在一些可行的实施方式中,修剪操作可包括比较一个 或多个新候选预测运动矢量与已在候选预测运动矢量列表中的候选预测运动矢量和不添加为 已在候选预测运动矢量列表中的候选预测运动矢量的重复的新候选预测运动矢量。在另一些 可行的实施方式中,修剪操作可包括将一个或多个新候选预测运动矢量添加到候选预测运动 矢量列表且稍后从所述列表移除重复候选预测运动矢量。
[0252] 下面介绍几种帧间预测的实施方式,本申请中的第一预设算法以及第二预设算法可以包 括其中的一种或多种。
[0253] 图片间预测利用图片之间的时间相关性来得到针对图像样本块的运动补偿预测 (motion-compensated prediction,MCP)。
[0254] 对于这种基于块的MCP,将视频图片划分成矩形块。假设一个块内均匀运动并且移动对 象大于一个块,则对于每个块,可以找到先前解码图片中的对应块作为预测值。使用平移运 动模型,由运动矢量(Δx,Δy)表示块在先前解码图片中的位置,其中Δx指定相对于当前块 位置的水平位移,Δy指定相对于当前块位置的竖直位移。运动矢量(Δx、Δy)可具有分数样 本精度以更精确地捕捉底层对象的移动。当对应的运动矢量具有分数样本精度时,对参考图 片应用内插以得到预测信号。先前解码图片被称为参考图片并由对应于参考图片列表的参考 索引Δt指示。这些平移运动模型参数,即运动矢量和参考索引,被进一步称为运动数据。现 代视频编码标准允许两种图片间预测,即单向预测和双向预测。
[0255] 在双向预测的情况下,使用两组运动数据(Δx0,Δy0,Δt0和Δx1,Δy1,Δt1)来生成两 个MCP(可能来自不同图片),然后将其组合以获得最终的MCP。默认情况下,这通过求平 均来完成,但是在加权预测的情况下,可以对每个MCP应用不同的权重,例如,以便补偿场 景淡出。可以在双向预测中使用的参考图片存储在两个单独的列表中,即列表0和列表1。为 了限制允许双向预测的片中的内存带宽,HEVC标准限制具有4×8和8×4个亮度预测块的PU仅 使用单向预测。使用运动估计过程在编码器处得到运动数据。视频标准中并未指定运动估计, 因此不同的编码器可以在其实施中使用不同的复杂度与质量的折衷。
[0256] 一个块的运动数据与相邻块相关。为了利用这种相关性,运动数据并不直接在码流中进 行编码,而是基于相邻运动数据进行预测编码。在HEVC中,为此使用了两个概念。在HEVC 中通过引入称为高级运动矢量预测(advanced motion vector prediction,AMVP)的新工具而 改进了运动矢量的预测编码,其中将每个运动块的最佳预测值用信号表示给解码器。另外, 称为帧间预测块合并的新技术从相邻块得到块的所有运动数据,从而替代H.264/AVC中的直 通和跳过模式。
[0257] 高级运动矢量预测
[0258] 如在先前的视频编码标准中一样,HEVC运动矢量根据水平(x)和竖直(y)分量被编 码为与所谓的运动矢量预测值(motion vector predictor,MVP)的差。两种运动矢量差(MVD) 分量的计算如方程式(1.1)和(1.2)所示。
[0259] MVDX=Δx-MVPX  (1.1)
[0260] MVDY=Δy-MVPY  (1.2)
[0261] 当前块的运动矢量通常与当前图片中或者较早的编码图片中的相邻块的运动矢量相关。 这是因为相邻块可能对应于具有相似运动的相同移动对象,并且对象的运动不可能随时间突 然改变。因此,使用相邻块中的运动矢量作为预测值减小了用信号表示的运动矢量差的大小。 MVP通常从同位图片中来自空间相邻块或来自时间相邻块的已经解码的运动矢量得到。在一 些情况下,还可以将零运动矢量用作MVP。在H.264/AVC中,这通过执行三个空间相邻运动 矢量的分量形式中值来完成。使用这种方法,不需要用信号表示预测值。来自同位图片的时 间MVP仅在H.264/AVC的所谓的时间直通模式中被考虑。H.264/AVC直通模式还用于得到除运 动矢量之外的其它运动数据。
[0262] 在HEVC中,隐式地得到MVP的方法由称为运动矢量竞争的技术所替代,所述技术显式 地用信号表示MVP列表中的哪个MVP用于运动矢量得到。HEVC中的可变编码四叉树块结构 可导致一个块使若干具有运动矢量的相邻块作为潜在MVP候选者。高级运动矢量预测 (Advanced Motion Vector Prediction,AMVP)的初始设计包含来自三个不同类别预测值的五 个MVP:来自空间相邻者的三个运动矢量、三个空间预测值的中值以及来自同位时间相邻块 的缩放运动矢量。此外,通过重新排序以将最可能的运动预测值放在第一位置并通过去除冗 余候选者以确保最小的信令开销来修改预测值列表。接着,开发AMVP设计的重要简化,例 如去除中值预测值、将列表中的候选者数量从五个减少到两个、固定列表中的候选者顺序, 以及减少冗余检查的数量。AMVP候选者列表构建的最终设计包含以下两个MVP候选者:a. 从五个空间相邻块得到的最多两个空间候选MVP;b.当两个空间候选MVP不可用或它们相同 时,从两个时间同位块得到的一个时间候选MVP;c.当空间候选者、时间候选者或这两者都 不可用时的零运动矢量。
[0263] 正如已经提到的,从五个空间相邻块得到两个空间MVP候选者A和B。对于AMVP和帧间 预测块合并,空间候选块的位置是相同的。对于候选者A,在两遍式方法中考虑来自左下角 的两个块A0和A1的运动数据。在第一遍中,检查是否有任何候选块含有的参考索引等于当前 块的参考索引。找到的第一运动矢量将作为候选者A。当来自A0和A1的所有参考索引指向与 当前块的参考索引不同的参考图片时,相关的运动矢量不能按原样使用。因此,在第二遍中, 需要根据候选参考图片与当前参考图片之间的时间距离来缩放运动矢量。方程式(1.3)示出 了如何根据缩放因子缩放候选运动矢量mvcand。基于当前图片与候选块td的参考图片之间的 时间距离以及当前图片与当前块tb的参考图片之间的时间距离来计算ScaleFactor。时间距离以 定义图片显示顺序的图片顺序编号(picture order count,POC)值之间的差表示。缩放操作基 本上与H.264/AVC中用于时间直通模式的方案相同。这种分解允许在片层级预先计算 ScaleFactor,因为它只取决于片头中用信号表示的参考图片列表结构。应注意,仅在当前参 考图片和候选参考图片都是短期参考图片时才执行MV缩放。参数td被定义为同位候选块的同 位图片与参考图片之间的POC差。
[0264] mv=sign(mvcand·ScaleFactor)·((|mvcand·ScaleFactor|+27)>>8)  (1.3)[0265] ScaleFactor=clip(-212,212-1,(tb·tx+25)>>6)  (1.4)
[0266]
[0267] 对于候选者B,以与在第一遍中检查A0和A1相同的方式依次检查候选者B0到B2。然而, 第二遍仅在块A0和A1不含有任何运动信息时执行,即,不可用或使用图片内预测来编码时执 行。接着,如果找到候选者A,则将候选者A设置成等于未缩放的候选者B,并且将候选者B 设置成等于候选者B的第二未缩放的或缩放的变体。第二遍搜索从候选者B0到B2得到的未缩 放的以及缩放的MV。总体而言,这种设计允许独立于B0、B1和B2来处理A0和A1。B的得到 应只了解A0和A1两者的可用性,以便搜索从B0到B2得到的缩放的或另外未缩放的MV。考虑 到它明显减少了候选者B的复杂运动矢量缩放操作,这种相依性是可接受的。减少运动矢量 缩放的数量表示运动矢量预测值得到过程中显着的复杂度降低。
[0268] 在HEVC中,已确定当前块的右下方和中心处的块为最适合提供良好的时间运动矢量预 测值(temporal motion vector predictor,TMVP)。这些候选者中C0表示右下相邻者,C1表示 中心块。这里同样首先考虑C0的运动数据,并且如果不可用,则使用来自中心处的同位候选 块的运动数据来得到时间MVP候选者C。当相关的PU属于当前CTU行之外的CTU时,C0的运 动数据也被视为不可用。这最大限度地减少了存储同位运动数据的内存带宽要求。与运动矢 量可能指代相同参考图片的空间MVP候选者对比,运动矢量缩放对于TMVP是强制性的。因 此,使用与空间MVP相同的缩放操作。
[0269] 虽然H.264/AVC中的时间直通模式总是参考第二参考图片列表、即列表1中的第一参考图 片,并且仅在双向预测片中被允许,但HEVC提供了为每个图片指示哪个参考图片被视为同 位图片的可能性。这是通过在片头中用信号表示同位参考图片列表和参考图片索引以及要求 图片中的所有片中的这些语法元素应指定相同的参考图片来完成的。
[0270] 由于时间MVP候选者引入了另外的相依性,因此出于差错鲁棒性原因,可能需要禁用其 使用。在H.264/AVC中,可能禁用片头中的双向预测片的时间直通模式(direct_spatial_mv_pred_flag)。HEVC语法通过允许在序列层级或在图片层级禁用TMVP (sps/slice_temporal_mvp_enabled_flag)来扩展此信令。尽管在片头中用信号表示标志,但是 对于一个图片中的所有片,其值应该是相同的,这是码流一致性的要求。由于图片层级标志 的信令取决于SPS标志,因此在PPS中用信号表示图片层级标志将引入SPS与PPS之间的解析 相依性。这种片头信令的另一个优点是,如果只想改变PPS中此标志的值而不改变其它参数, 则不需要发送第二PPS。
[0271] 通常,HEVC中的运动数据信令与H.264/AVC中的类似。图片间预测语法元素 inter_pred_idc用信号表示是否使用参考列表0、1或这两者。对于从一个参考图片列表获得的 每个MCP,对应的参考图片(Δt)由参考图片列表的索引ref_idx_l0/1用信号表示,并且MV (Δx,Δy)由MVP的索引mvp_l0/1_flag及其MVD表示。片头中新引入的标志mvd_l1_zero_flag 指示第二参考图片列表的MVD是否等于零且因此不在码流中用信号表示。当运动矢量被完全 重构时,最终剪切操作确保最终运动矢量的每个分量的值将始终在-215到215-1的范围内,包 含端点值。
[0272] 图片间预测布洛赫(Bloch)合并
[0273] AMVP列表仅含有一个参考列表的运动矢量,而合并候选者含有所有运动数据,包括是 使用一个还是两个参考图片列表以及每个列表的参考索引和运动矢量的信息。总的来说,合 并候选者列表基于以下候选者构建:a.从五个空间相邻块得到的最多四个空间合并候选者; b.从两个时间同位块得到的一个时间合并候选者;c.包含组合的双向预测候选者和零运动矢量 候选者的另外的合并候选者。
[0274] 合并候选者列表中的第一候选者是空间相邻者。通过依次循序检查A1、B1、B0、A0和 B2,最多可以在合并列表中以所述顺序插入四个候选者。
[0275] 替代仅仅检查相邻块是否可用并含有运动信息,在将相邻块的所有运动数据作为合并候 选者之前执行一些另外的冗余检查。这些冗余检查可以分为两类,用于两个不同的目的:a. 避免列表中存在具有冗余运动数据的候选者;b.防止合并两个可以用其它方式表示的会产生 冗余语法的分区。
[0276] 当N是空间合并候选者的数量时,完整的冗余检查将由 次运动数据比较组成。 在五个潜在空间合并候选者的情况下,将需要十次运动数据比较来确保合并列表中的所有候 选者具有不同的运动数据。在开发HEVC期间,对冗余运动数据的检查已经减少到一个子集, 从而在比较逻辑明显减少的同时保持编码效率。在最终设计中,对于每个候选者执行不超过 两次比较,从而产生总共五次比较。给定{A1,B1,B0,A0,B2}的顺序,B0只检查B1, A0只检查A1,且B2只检查A1和B1。在分区冗余检查的实施例中,通过选择候选者B1来 将2N×N分区的底部PU与顶部PU合并。这将产生一个CU具有两个具有相同运动数据的 PU,其可以被均等地用信号表示为2N×2N CU。总体而言,这种检查适用于矩形和不对称分 区
2N×N、2N×nU、2N×nD、N×2N、nR×2N和nL×2N的所有第二PU。应注意,对于空间合 并候选者,仅执行冗余检查,并且按原样从候选块复制运动数据。因此,这里不需要运动矢 量缩放。
[0277] 时间合并候选者的运动矢量的得到与TMVP的相同。由于合并候选者包括所有运动数据 并且TMVP仅是一个运动矢量,因此整个运动数据的得到仅取决于片的类型。对于双向预测 片,针对每个参考图片列表得到TMVP。取决于每个列表的TMVP的可用性,将预测类型设置 成双向预测或设置成TMVP可用的列表。所有相关的参考图片索引被设置成等于零。因此, 对于单向预测片,只连同等于零的参考图片索引一起得到列表0的TMVP。
[0278] 当至少一个TMVP可用并且时间合并候选者被添加到列表中时,不执行冗余检查。这使 得合并列表构建独立于同位图片,从而提高抗抗误码能力。考虑时间合并候选者将是多余的 并因此未包含在合并候选者列表中的情况。在丢失同位图片的情况下,解码器不能得到时间 候选者,因此不检查它是否是冗余的。所有后续候选者的索引将受此影响。
[0279] 出于解析鲁棒性原因,合并候选者列表的长度是固定的。在已经添加了空间和时间合并 候选者之后,可能出现所述列表还没有固定长度的情况。为了补偿与非长度自适应列表索引 信令一起出现的编码效率损失,生成另外的候选者。取决于片的类型,最多可以使用两种候 选者来完全填充列表:a.组合双向预测候选者;b.零运动矢量候选者。
[0280] 在双向预测片中,通过组合一个候选者的参考图片列表0运动数据与另一候选者的列表 1运动数据,可基于现有候选者生成另外的候选者。这通过从第一候选者等一个候选者复制 Δx0、Δy0、Δt0并且从第二候选者等另一候选者复制Δx1、Δy1、Δt1来完成。预定义不同的组 合并在表1.1中给出。
[0281] 表1.1
[0282]
[0283] 当添加组合的双向预测候选者之后或对于单向预测片来说列表仍然不完整时,计算零运 动矢量候选者以使列表完整。所有零运动矢量候选者对于单向预测片具有一个零位移运动矢 量,对于双向预测片具有两个零位移运动矢量。参考索引被设置成等于零,并且对于每个另 外的候选者递增一,直到达到参考索引的最大数量。如果是这种情况,并且还有其它候选者 缺失,则使用等于零的参考索引来创建这些候选者。对于所有另外的候选者,不执行冗余检 查,因为结果显示省略这些检查不会引起编码效率损失。
[0284] 对于以图片间预测模式编码的每个PU,所谓的merge_flag指示使用所述块合并来得到运 动数据。merge_idx进一步确定合并列表中提供MCP所需的所有运动数据的候选者。除了此 PU层级的信令之外,还在片头中用信号表示合并列表中的候选者的数量。由于默认值为五, 因此它表示为与五的差(five_minus_max_num_merge_cand)。这样,五利用0的短码字用信 号表示,而仅使用一个候选者则利用4的较长码字用信号表示。至于对合并候选者列表构建 过程的影响,整个过程保持不变,但是在列表含有最大数量合并候选者之后,所述过程终止。 在初始设计中,合并索引编码的最大值由列表中可用空间和时间候选者的数量给出。当例如 只有两个候选者可用时,索引可以高效地编码为一个标志。但是,为了解析合并索引,必须 构建整个合并候选者列表以了解候选者的实际数量。假设由于发送错误而导致不可用的相邻 块,将不可能再解析合并索引。
[0285] HEVC中的块合并概念的关键应用是与跳过模式的组合。在先前的视频编码标准中,使 用跳过模式指示这样的块:推测而不是显式地用信号表示运动数据,并且预测残差为零,即, 不发送变换系数。在HEVC中,在图片间预测片中的每个CU的开始处,用信号表示skip_flag, 这意味着以下方面:a.CU仅含有一个PU(2N×2N分区类型);b.使用合并模式来得到运动数 据(merge_flag等于1);c.码流中不存在残差数据。
[0286] 在HEVC中引入指示区域的并行合并估计层级,其中可以通过检查候选块是否位于所述 合并估计区域(MER)中而独立地得到合并候选者列表。相同MER中的候选块不包含在合 并候选者列表中。因此,它的运动数据不需要在列表构建时可用。当这个层级是例如32时, 那么32×32区域中的所有预测单元可以并行构建合并候选者列表,因为处于相同32×32MER 中的所有合并候选者都不插入列表中。第一PU0的所有潜在合并候选者都可用,因为它们在 第一32×32MER之外。对于第二MER,当MER内的合并估计应该独立时,PU 2-6的合并 候选者列表不能包含来自这些PU的运动数据。因此,例如在查看PU5时,没有合并候选者 可用且因此不插入合并候选者列表中。在这种情况下,PU5的合并列表仅由时间候选者(如 果可用)和零MV候选者组成。为了使编码器能够权衡并行性和编码效率,并行合并估计层 级是自适应的,并且在图片参数集中用信号表示为log2_parallel_merge_level_minus2。
[0287] 基于子CU的运动矢量预测
[0288] 在开发新的视频编码技术期间,使用QTBT,每个CU对于每个预测方向可以具有最多 一组运动参数。在编码器中通过将大CU分成子CU并且得到大CU的所有子CU的运动信息 来考虑两个子CU层级运动矢量预测方法。替代时间运动矢量预测(alternative temporal motion vector prediction,ATMVP)方法允许每个CU从同位参考图片中小于当前CU的多个块提取 多组运动信息。在时空运动矢量预测(spatial-temporal motion  vector prediction,STMVP)方 法中,通过使用时间运动矢量预测值和空间相邻运动矢量来递归地得到子CU的运动矢量。
[0289] 为了保留用于子CU运动预测的更精确的运动场,当前禁用参考帧的运动压缩。
[0290] 替代时间运动矢量预测
[0291] 在替代时间运动矢量预测(alternative temporal motion vector prediction,ATMVP)方法中, 通过从小于当前CU的块中提取多组运动信息(包含运动矢量和参考索引)来修改运动矢量 时间运动矢量预测(temporal motion vector prediction,TMVP)。子CU是正方形的N×N块(N 默认设置为4)。
[0292] ATMVP分两步预测CU内的子CU的运动矢量。第一步是使用所谓的时间矢量来标识参 考图片中的对应块。参考图片被称为运动源图片。第二步是将当前CU分成子CU,并从每个 子CU对应的块中获得每个子CU的运动矢量以及参考索引。
[0293] 在第一步中,通过当前CU的空间相邻块的运动信息来确定参考图片和对应块。为了避 免相邻块的重复扫描过程,使用当前CU的合并候选者列表中的第一合并候选者。将第一可 用运动矢量及其相关的参考索引设置成时间矢量和运动源图片的索引。这样,在ATMVP中, 与TMVP相比,可以更精确地标识对应块,其中对应块(有时称为同位块)始终位于相对于 当前CU的右下或中心位置。
[0294] 在第二步中,通过将时间矢量添加到当前CU的坐标,通过运动源图片中的时间矢量来 标识子CU的对应块。对于每个子CU,使用其对应块(覆盖中心样本的最小运动网格)的运 动信息来得到子CU的运动信息。在标识对应的N×N块的运动信息之后,以与HEVC的TMVP 相同的方式将其转换为当前子CU的运动矢量和参考索引,其中适用运动缩放和其它程序。 例如,解码器检查是否满足低延迟条件(即,当前图片的所有参考图片的POC小于当前图片 的POC)并且可能使用运动矢量MVx(与参考图片列表X相对应的运动矢量)来预测每个 子CU的运动矢量MVy(其中X等于0或1且Y等于1-X)。
[0295] 时空运动矢量预测
[0296] 在这种方法中,按照光栅扫描顺序递归地得到子CU的运动矢量。考虑含有四个4×4子 CU A、B、C和D的8×8CU。将当前帧中的相邻4×4块标记为a、b、c和d。
[0297] 子CU A的运动得到起始于标识其两个空间相邻者。第一相邻者是子CU A上方的N×N 块(块c)。如果这一块c不可用或被帧内编码,则检查子CU A上方的其它N×N块(从左到 右,从块c开始)。第二相邻者是子CU A左侧的块(块b)。如果块b不可用或被帧内编码, 则检查子CU A左侧的其它块(从上到下,从块b开始)。对于给定列表,将从每个列表的相 邻块获得的运动信息缩放到第一参考帧。接下来,通过遵循与HEVC中指定的TMVP得到相 同的过程来得到子块A的时间运动矢量预测值(temporal motion vector predictor,TMVP)。 提取位置D处的同位块的运动信息并相应地缩放。最后,在检索并缩放运动信息之后,分别 对每个参考列表的所有可用的运动矢量(最多3个)求平均。分配平均运动矢量作为当前子 CU的运动矢量。
[0298] 结合合并模式
[0299] 作为另外的合并候选者而启用子CU模式,并且不需要另外的语法元素来用信号表示模 式。将两个另外的合并候选者添加至每个CU的合并候选者列表以表示ATMVP模式和 STMVP模式。如果序列参数集指示ATMVP和STMVP已启用,则最多使用七个合并候选者。 另外的合并候选者的编码逻辑与HM中的合并候选者的编码逻辑相同,这意味着对于P或B 片中的每个CU,对两个另外的合并候选者需要多两次RD检查。
[0300] 仿射运动补偿预测
[0301] 通过两个控制点运动矢量描述块的仿射运动场。
[0302] 通过以下方程式描述块的运动矢量场(motion vector field,MVF):
[0303]
[0304] 其中(v0x,v0y)是左上角控制点的运动矢量,(v1x,v1y)是右上角控制点的运动矢量。
[0305] 为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。如方程式(1.7)中得到 子块大小M×N,其中MvPre是运动矢量分数精度(例如1/16),(v2x,v2y)是根据方程式(1.6) 计算的左下控制点的运动矢量。
[0306]
[0307] 在通过方程式(1.7)得到之后,应在必要时向下调整M和N,使其分别为w和h的除 数。
[0308] 为了得到每个M×N子块的运动矢量,根据方程式(1.6)计算每个子块的中心样本的运 动矢量,并舍入到1/16的分数精度。
[0309] 仿射帧间模式
[0310] 对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在码流中用信号表示CU 层级中的仿射标志以指示是否使用AF_INTER模式。在此模式中,使用相邻块构建具有运动 矢量对{(v0,v1)|v0={vA,vB,vC},v1={vD,vE}}的候选者列表。从块A、B或C的运动矢量中选择 v0。根据参考列表以及相邻块参考的POC、当前CU参考的POC和当前CU的POC之间的 关系来缩放来自相邻块的运动矢量。从相邻块D和E中选择v1的方法类似。如果候选者列表 的数量小于2,则通过复制每个AMVP候选者组成的运动矢量对来填充列表。当候选者列表 大于2时,首先根据相邻运动矢量的一致性(对候选者中的两个运动矢量的相似性)对候选 者进行排序,并且仅保留前两个候选者。使用RD成本检查来确定选择哪个运动矢量对候选 者作为当前CU的控制点运动矢量预测(control point motion vector prediction,CPMVP)。并 且在码流中用信号表示指示候选者列表中的CPMVP的位置的索引。在码流中用信号表示 CPMV与CPMVP的差。
[0311] 仿射合并模式
[0312] 当在AF_MERGE模式下应用CU时,它从有效的相邻重建块获得以仿射模式编码的第 一块。候选块的选择顺序是从左、上、右上、左下到左上。如果相邻左下块A以仿射模式编 码,则得到含有块A的CU的左上角、右上角和左下角的运动矢量v2、v3和v4。并且根据v2、 v3和v4计算当前CU上的左上角的运动矢量v0。其次,计算当前CU的右上方的运动矢量v1。
[0313] 为了标识当前CU是否用AF_MERGE模式编码,当存在至少一个相邻块以仿射模式编 码时,在码流中用信号表示仿射标志。
[0314] 模式匹配运动矢量得到
[0315] 模式匹配运动矢量得到(pattern matched motion vector derivation,PMMVD)模式是基于 帧率上变换(Frame-Rate Up Conversion,FRUC)技术。在这种模式下,不用信号表示块的 运动信息,而是在解码器端得到。
[0316] 当CU的合并标志为真时,用信号表示其FRUC标志。当FRUC标志为假时,用信号表 示合并索引并且使用常规合并模式。当FRUC标志为真时,用信号表示另外的FRUC模式标 志以指示将使用哪种方法(双边匹配或模板匹配)来得到块的运动信息。
[0317] 在编码器端,关于对CU是否使用FRUC合并模式的决定是基于对正常合并候选者所做 的RD成本选择。通过使用RD成本选择针对CU检查这两种匹配模式(双边匹配和模板匹 配)。将成本最低的一个进一步与其它CU模式进行比较。如果FRUC匹配模式是最有效的模 式,则CU的FRUC标志被设置为真,并使用相关的匹配模式。
[0318] FRUC合并模式中的运动得到过程有两个步骤。首先执行CU层级运动搜索,然后执行 子CU层级运动细化。在CU层级,基于双边匹配或模板匹配得到整个CU的初始运动矢量。 首先,生成MV候选者列表,并且选择使匹配成本最小的候选者作为用于进一步CU层级细 化的起始点。接着执行基于起始点周围的双边匹配或模板匹配的局部搜索,并且将使匹配成 本最小的MV作为整个CU的MV。随后,以得到的CU运动矢量作为起始点,在子CU层级 处对运动信息进行进一步细化。
[0319] 例如,针对W×H个CU运动信息得到执行以下得到过程。在第一阶段,得到整个W×H 个CU的MV。在第二阶段,将CU进一步分成M×M个子CU。如方程式(1.8)计算M的值, D是预定义的分割深度,在JEM中默认设置为3。然后得到每个子CU的MV。
[0320]
[0321] 使用双边匹配通过在两个不同的参考图片中找到沿着当前CU的运动轨迹的两个块之间 的最接近匹配来得到当前CU的运动信息。在连续运动轨迹的前提下,指向两个参考块的运 动矢量MV0和MV1应与当前图片与两个参考图片之间的时间距离、即TD0和TD1成比例。 在当前图片在时间上在两个参考图片之间并且从当前图片到两个参考图片的时间距离相同 时,双边匹配成为基于镜像的双向MV。
[0322] 在双边匹配合并模式中,由于基于在两个不同的参考图片中沿着当前CU的运动轨迹的 两个块之间的最近匹配来得到CU的运动信息,所以始终应用双向预测。对于模板匹配合并 模式没有此类限制。在模板匹配合并模式中,编码器可以在来自list0的单向预测、来自list1 的单向预测或针对CU的双向预测之间进行选择。基于模板匹配成本进行选择,如下:
[0323] 若costBi<=因子*min(cost0,cost1)
[0324] 使用双向预测;
[0325] 否则,若cost0<=cost1
[0326] 使用来自list0的单向预测;
[0327] 否则,
[0328] 使用来自list1的单向预测;
[0329] 其中cost0是list0模板匹配的SAD,cost1是list1模板匹配的SAD,costBi是双向预测 模板匹配的SAD。因子的值等于1.25,这意味着选择过程偏向于双向预测。帧间预测方向选 择仅适用于CU层级模板匹配过程。
[0330] 使用模板匹配通过找到当前图片中的模板(当前CU的顶部和/或左侧相邻块)与参考图 片中的块(与模板相同大小)之间的最接近匹配来得到当前CU的运动信息。除了前面提到 的FRUC合并模式外,模板匹配也适用于AMVP模式。使用模板匹配方法,得到新的候选者。 如果通过模板匹配新得到的候选者与第一现有AMVP候选者不同,则将其插入到所述AMVP 候选者列表的最开始,然后将列表大小设置为2(意味着除去第二现有AMVP候选者)。当应 用于AMVP模式时,仅应用CU层级搜索。
[0331] 设置在CU层级的MV候选者包括:a.如果当前CU处于AMVP模式,则选择原始AMVP 候选者;b.所有合并候选者;c.内插MV场中的几个MV;d.顶部和左侧的相邻运动矢量。
[0332] 应注意,上述内插MV场是在基于单边ME对整个图片的图片编码之前生成的。然后运 动场可以稍后用作CU层级或子CU层级MV候选者。首先,在4×4块层级遍历两个参考列 表中的每个参考图片的运动场。对于每个4×4块,如果与块相关的运动通过当前图片中的4×4 块,并且所述块尚未被分配任何内插运动,则根据时间距离TD0和TD1将参考块的运动缩 放到当前图片(与HEVC中的TMVP的MV缩放的方式相同),并且将缩放后的运动分配给 当前帧中的块。如果未将缩放MV分配给4×4块,则块的运动在内插运动场中被标记为不可 用。
[0333] 当使用双边匹配时,合并候选者的每个有效MV被用作输入以在假定双边匹配的情况下 生成MV对。例如,合并候选者的一个有效MV在参考列表A处为(MVa,refa)。然后,在 另一个参考列表B中找到其配对双边MV的参考图片refb,使得refa和refb在时间上处于当 前图片的不同侧。如果这样的refb在参考列表B中不可用,则将refb确定为与refa不同的参 考,并且其到当前图片的时间距离是列表B中的最小值。在确定refb之后,通过基于当前图 片与refa、refb之间的时间距离缩放MVa来得到MVb。
[0334] 来自内插MV场的四个MV也被添加到CU层级候选者列表。更具体地说,添加在当前 CU的位置(0,0)、(W/2,0)、(0,H/2)和(W/2,H/2)处的内插MV。
[0335] 当在AMVP模式中应用FRUC时,原始AMVP候选者也被添加到CU层级MV候选者 集。
[0336] 在CU层级,候选者列表中添加了最多15个AMVP CU的MV和最多13个合并CU的MV。
[0337] 设置在子CU层级的MV候选者包括:a.从CU层级搜索确定的MV;b.顶部、左侧、左 上和右上的相邻MV;c.来自参考图片的同位MV的缩放版本;d.最多4个ATMVP候选者; e.最多4个STMVP候选者。
[0338] 如下得到来自参考图片的缩放的MV。遍历两个列表中的所有参考图片。将参考图片中 的子CU的同位位置处的MV缩放成起始CU层级MV的参考。
[0339] ATMVP和STMVP候选者限于前四个。
[0340] 在子CU层级,将最多17个MV添加到候选者列表。
[0341] 运动矢量细化
[0342] 运动矢量可以通过结合不同帧间预测模式的不同方法来细化。
[0343] FRUC中的MV细化
[0344] MV细化是基于模式的MV搜索,具有双边匹配成本或模板匹配成本的标准。在当前的 开发中,支持两种搜索模式-分别在CU层级和子CU层级上的无限制中心偏置菱形搜索 (unrestricted center-biased diamond search,UCBDS)和用于MV细化的自适应交叉搜索。对 于CU和子CU层级MV的细化,以四分之一亮度样本MV精度直接搜索MV,然后是八分 之一亮度样本MV细化。用于CU和子CU步骤的MV细化的搜索范围被设置成等于8个亮 度样本。
[0345] 解码器端运动矢量细化
[0346] 在双向预测操作中,为了预测一个块区域,组合分别使用list0的MV和list1的MV形 成的两个预测块以形成单个预测信号。在解码器端运动矢量细化(decoder-side motion vector refinement,DMVR)方法中,通过双边模板匹配过程进一步细化双向预测的两个运动矢量。 在解码器中应用双边模板匹配以在双边模板与参考图片中的重构样本之间执行基于失真的搜 索,以便获得细化的MV而无需发送另外的运动信息。
[0347] 在DMVR中,分别从list0的初始MV0和list1的MV1生成双边模板作为两个预测块的 加权组合(即,平均值)。模板匹配操作由计算所生成的模板与参考图片中的样本区域(初始 预测块周围)之间的成本度量构成。对于两个参考图片中的每一个,产生最小模板成本的MV 被视为所述列表的更新MV以替换原始MV。在当前的开发中,每个列表都会搜索九个MV 候选者。九个MV候选者包含原始MV和8个周围MV,其中一个亮度样本沿水平或竖直方 向或这两者偏移到原始MV。最后,使用两个新的MV、即MV0′和MV1′生成最终的双向预 测结果。绝对差总和(sum of absolute differences,SAD)用作成本度量。
[0348] 将DMVR应用于双向预测的合并模式,其中一个MV来自过去的参考图片,另一MV 来自未来的参考图片,而无需发送另外的语法元素。
[0349] 运动数据精度和存储
[0350] 运动数据存储减小
[0351] 在AMVP以及合并模式中使用TMVP需要将运动数据(包含运动矢量、参考索引和编 码模式)存储在同位的参考图片中。考虑到运动表示的粒度,存储运动数据所需的内存大小 会很重要。HEVC采用运动数据存储减小(motion data storage reduction,MDSR)以通过对 参考图片中的运动数据进行二次采样来减小运动数据缓冲器和相关联的内存访问带宽的大 小。虽然H.264/AVC以4×4块为基础存储这些信息,但HEVC使用16×16块,其中,在对4×4 网格进行二次采样的情况下,存储左上4×4块的信息。由于这种二次采样,MDSR影响了时 间预测的质量。
[0352] 此外,在同位图片中使用的MV的位置与MDSR所存储的MV的位置之间存在紧密的相 关性。在HEVC的标准化过程中,结果表明,将左上块的运动数据与右下和中心TMVP候选 者一起存储在16×16区域内提供了编码效率和内存带宽减小之间的最佳折衷。
[0353] 更高的运动矢量存储精度
[0354] 在HEVC中,运动矢量精度是四分之一像素(对于4:2:0视频为四分之一亮度样本和八 分之一色度样本)。在当前的开发中,内部运动矢量存储和合并候选者的精度提高到1/16像 素。在运动补偿帧间预测中针对以跳过/合并模式编码的CU使用更高的运动矢量精度(1/16 像素)。对于以正常AMVP模式编码的CU,使用整数像素或四分之一像素运动。
[0355] 自适应运动矢量差分辨率
[0356] 在HEVC中,当片头中use_integer_mv_flag等于0时,以四分之一亮度样本为单位用信 号表示运动矢量差(motion vector difference,MVD)。在当前的开发中,引入了局部自适应 运动矢量分辨率(locally adaptive motion vector resolution,LAMVR)。MVD可以四分之一亮 度样本、整数亮度样本或四亮度样本为单位进行编码。在编码单元(coding unit,CU)层级 控制MVD分辨率,并且针对具有至少一个非零MVD分量的每个CU有条件地用信号表示 MVD分辨率标志。
[0357] 对于具有至少一个非零MVD分量的CU,用信号表示第一标志以指示在CU中是否使用 四分之一亮度样本MV精度。当第一标志(等于1)指示未使用四分之一亮度样本MV精度 时,用信号表示另一标志以指示是否使用整数亮度样本MV精度或四亮度样本MV精度。
[0358] 当CU的第一MVD分辨率标志为零或未针对CU编码(意味着CU中的所有MVD均为 零)时,对所述CU使用四分之一亮度样本MV分辨率。当CU使用整数亮度样本MV精度 或四亮度样本MV精度时,CU的AMVP候选者列表中的MVP被舍入到相应的精度。
[0359] 在编码器中,使用CU层级RD检查以确定针对CU使用哪个MVD分辨率。即,对于每 个MVD分辨率,执行三次CU层级RD检查。
[0360] 分数样本内插模块
[0361] 当运动矢量指向分数样本位置时,需要运动补偿内插。对于亮度内插滤波,如表1.2所 示,对于2/4精度样本,使用8抽头可分离的基于DCT的内插滤波器,对于1/4精度样本, 使用7抽头可分离的基于DCT的内插滤波器。
[0362] 表1.2
[0363]位置 滤波器系数
1/4 {-1,4,-10,58,17,-5,1}
2/4 {-1,4,-11,40,40,-11,4,-1}
3/4 {1,-5,17,58,-10,4,-1}
[0364] 类似地,对于色度内插滤波器,使用4抽头可分离的基于DCT的内插滤波器器,如表 1.3所示。
[0365] 表1.3
[0366]
[0367]
[0368] 对于4:2:2的竖直内插以及4:4:4色度通道的水平和竖直内插,不使用表1.3中的奇数位 置,从而产生1/4色度内插。
[0369] 对于双向预测,在对两个预测信号求平均之前,将内插滤波器的输出的保持为14位精度, 而不管源位深度如何。实际的求平均过程隐含在位深度减小过程中,如下所示:
[0370] predSamples[x,y]=(predSamplesL0[x,y]+predSamplesL1[x,y]+offset)>>shift   (1.9)
[0371] shift=15-BitDepth   (1.10)
[0372] offset=1<<(shift-1)   (1.11)
[0373] 为了降低复杂度,对双边匹配和模板匹配使用双边线性内插而不是常规的8抽头HEVC 内插。
[0374] 匹配成本的计算在不同的步骤中有些不同。当从CU层级的候选者集选择候选者时,匹 配成本是双边匹配或模板匹配的SAD。在确定起始MV之后,子CU层级搜索处的双边匹配 的匹配成本C计算如下:
[0375]
[0376] 其中w是经验地设定为4的加权因子,MV和MVs分别指示当前MV和起始MV。SAD 仍被用作子CU层级搜索处的模板匹配的匹配成本。
[0377] 在FRUC模式下,仅通过使用亮度样本得到MV。得到的运动将用于MC帧间预测的亮 度和色度。在确定MV之后,使用用于亮度的8抽头内插滤波器和用于色度的4抽头内插滤 波器来执行最终MC。
[0378] 运动补偿模块
[0379] 重叠块运动补偿
[0380] 对于所有运动补偿(motion compensation,MC)块边界执行重叠块运动补偿(Overlapped Block Motion Compensation,OBMC),除了当前开发中的CU的右边界和底部边界之外。此 外,它适用于亮度和色度两个分量。MC块对应于编码块。当CU以子CU模式(包含子CU 合并、仿射和FRUC模式)编码时,CU的每个子块是MC块。为了以统一的方式处理CU 边界,针对所有MC块边界在子块层级执行OBMC,其中子块大小被设置成等于4×4。
[0381] 当OBMC应用于当前子块时,除了当前运动矢量之外,如果四个连接的相邻子块的运动 矢量可用并与当前运动矢量不相同,还使用这四个连接的相邻子块的运动矢量来得到当前子 块的预测块。组合基于多个运动矢量的这些多个预测块以生成当前子块的最终预测信号。
[0382] 基于相邻子块的运动矢量的预测块标示为PN,其中N表示相邻的上、下、左和右子块 的索引,并且基于当前子块的运动矢量的预测块标示为PC。当PN是基于含有与当前子块相 同的运动信息的相邻子块的运动信息时,不从PN执行OBMC。否则,将每个PN样本添加 到PC中的相同样本中,即,将四行/列的PN添加到PC。对于PN使用加权因子{1/4,1/8,1/16, 1/32},对于PC使用加权因子{3/4,7/8,15/16,31/32}。例外的是小的MC块(即,当编码块的 高度或宽度等于4或者CU使用子CU模式编码时),对于这种块,只将两行/列的PN添加到 PC。在这种情况下,对于PN使用加权因子{1/4,1/8},对于PC使用加权因子{3/4,7/8}。对 于基于竖直(水平)相邻子块的运动矢量生成的PN,将PN的同一行(列)中的样本以相同 的加权因子添加到PC。
[0383] 在当前的开发中,对于大小小于或等于256个亮度样本的CU,用信号表示CU层级标志 以指示对于当前CU是否应用OBMC。对于大小大于256个亮度样本或未采用AMVP模式编 码的CU,默认地应用OBMC。在编码器处,当OBMC应用于CU时,在运动估计阶段将其 影响考虑在内。使用由OBMC利用顶部相邻块和左侧相邻块的运动信息形成的预测信号来补 偿当前CU的原始信号的顶部和左侧边界,然后应用正常运动估计处理。
[0384] 优化工具
[0385] 局部照度补偿
[0386] 局部照度补偿(Local Illumination Compensation,LIC)基于照度变化的线性模型,使用 比例因子a和偏移量b。并且其针对每个帧间模式编码的编码单元(coding unit,CU)自适应 地启用或禁用。
[0387] 当LIC应用于CU时,采用最小平方误差法通过使用当前CU的相邻样本及其对应的参 考样本来得到参数a和b。使用CU的二次采样的(2:1二次采样)相邻样本和参考图片中的 对应样本(由当前CU或子CU的运动信息标识)。得到IC参数并分别应用于每个预测方向。
[0388] 当CU以合并模式编码时,以类似于合并模式下的运动信息复制的方式从相邻块复制LIC 标志;否则,针对CU用信号表示LIC标志以指示LIC是否适用。
[0389] 当针对图片启用LIC时,需要另外的CU层级RD检查以确定LIC是否适用于CU。当针 对CU启用LIC时,使用均值移除绝对差总和(mean-removed sum of absolute difference, MR-SAD)和均值移除绝对阿达变换差总和(mean-removed sum of absolute Hadamard-transformed difference,MR-SATD)代替SAD和SATD分别用于整数像素运动搜索 和分数像素运动搜索。
[0390] 双向光流
[0391] 双向光流(Bi-directional Optical flow,BIO)是在双向预测的块方式运动补偿之上执行的 采样方式运动细化。样本层级运动细化不使用信令。
[0392] 假设I(k)是在块运动补偿之后来自参考k(k=0,1)的亮度值,且分别是 I(k)梯度的水平分量和竖直分量。假设光流是有效的,运动矢量场(vx,vy)通过方程式(1.13) 给出:
[0393]
[0394] 将此光流方程式与埃尔米特内插结合起来用于每个样本的运动轨迹,结果得到独特的三 阶多项式,它在两端与函数值I(k)和导数 都匹配。此多项式在t=0时的值 是BIO预测值:
[0395]
[0396] 这里,τ0和τ1表示到参考帧的距离。根据Ref0和Ref1的POC计算距离τ0和τ1:τ0=POC(当 前)-POC(Ref0),τ1=POC(Ref1)-POC(当前)。如果两个预测都来自同一时间方向(无论是 都来自过去还是都来自未来),正负号就不同(即τ0·τ1<0)。在这种情况下,只有当预测不 是来自相同时刻(即τ0≠τ1),两个参考区域都具有非零运动(MVx0,MVy0,MVx1,MVy1≠0) 并且块运动矢量与时间距离(MVx0/MVx1=MVy0/MVy1=-τ0/τ1)成比例时才应用BIO。
[0397] 运动矢量场(vx,vy)通过最小化点A和B(运动轨迹和参考帧平面的交点)中的值之间的 差值Δ来确定。模型仅使用Δ的局部泰勒展开式的第一个线性项:
[0398]
[0399] 方程式(1.15)中的所有值取决于样本位置(i',j'),目前从符号中省略。假设运动在局部 周围区域是一致的,则在以当前预测点(i,j)为中心的(2M+1)×(2M+1)方窗Ω内最小化Δ,其 中M等于2:
[0400]
[0401] 对于此优化问题,当前的开发使用了一种简化的方法,首先在竖直方向上最小化,然后 在水平方向上最小化。这得出:
[0402]
[0403]
[0404] 其中,
[0405]
[0406] 为了避免被零或非常小的值除,在方程式(1.17)和(1.18)中引入正则化参数r和m。
[0407] r=500·4d-8  (1.20)
[0408] m=700·4d-8  (1.21)
[0409] 这里d是视频样本的位深度。
[0410] 为了保持BIO的内存访问与常规双向预测运动补偿相同,仅针对当前块内的位置计算所 有的预测和梯度值I(k), 在方程式(1.19)中,以预测块的边界上的当前预 测点为中心的(2M+1)×(2M+1)方窗Ω需要访问块外的位置。在当前的开发中,块外的值 I(k), 被设置成等于块内最接近的可用值。例如,这可以实现为填
充。
[0411] 使用BIO时,可能会针对每个样本细化运动场,但为了降低计算复杂度,可以使用基于 块的BIO设计。基于4×4块计算运动细化。在基于块的BIO中,聚合4×4块中的所有样本在 方程式(1.19)中的值sn,然后使用聚合的值sn得到4×4块的BIO运动矢量偏移量。使用以 下公式进行基于块的BIO得到:
[0412]
[0413] 其中bk表示属于预测块的第k个4×4块的样本集合。方程式(1.17)和(1.18)中的sn 替换为((sn,bk)>>4)以得到相关的运动矢量偏移量。
[0414] 在一些情况下,由于噪音或不规则运动,BIO的MV方案可能不可靠。因此,在BIO中, MV方案的大小被截取为阈值thBIO。基于当前图片的参考图片是否都来自一个方向来确定所 述阈值。如果当前图片的所有参考图片均来自一个方向,则将所述阈值的值设置成12×214-d; 否则设置成12×213-d。
[0415] 使用与HEVC运动补偿过程一致的操作(2D可分离的FIR),与运动补偿内插同时地计 算BIO的梯度。此2D可分离的FIR的输入对于运动补偿过程和根据块运动矢量的分数部分 的分数位置(fracX,fracY)是相同的参考帧样本。在水平梯度 信号的情况下,首先使 用BIOfilterS对应于具有消除缩放位移d-8的分数位置fracY竖直内插,然后在水平方向上对 应于具有消除缩放位移18-d的分数位置fracX应用梯度滤波器BIOfilterG。在竖直梯度 的情况下,首先使用BIOfilterG对应于具有消除缩放位移d-8的分数位置fracY竖直应用梯度 滤波器,然后使用BIOfilterS在水平方向上对应于具有消除缩放位移18-d的分数位置fracX 执行信号位移。为了保持合理的复杂度,梯度计算BIOfilterG和信号位移BIOfilterF的内插滤 波器的长度较短(6抽头)。表1.4示出了用于BIO中块运动矢量的不同分数位置的梯度计算 的滤波器。表1.5示出了用于BIO中预测信号生成的内插滤波器。
[0416] 表1.4
[0417]分数像素位置 用于梯度的内插滤波器(BIOfilterG)
0 {8,-39,-3,46,-17,5}
1/16 {8,-32,-13,50,-18,5}
1/8 {7.-27,-20,54,-19,5}
3/16 {6,-21,-29,57,-18,5}
1/4 {4,-17,-36,60,-15,4}
5/16 {3,-9,-44,61,-15,4}
3/8 {1,-4,-48,61,-13,3}
7/16 {0,1,-54,60,-9,2}
1/2 {-1,4,-57,57,-4,1}
[0418] 表1.5
[0419]
[0420]
[0421] 在当前的开发中,当两个预测来自不同参考图片时,将BIO应用于所有双向预测块。当 针对CU启用LIC时,禁用BIO。在正常MC过程之后针对块应用OBMC。为了降低计算复 杂性,在OBMC过程中不应用BIO。这意味着仅在使用其自身的MV时在MC过程中应用 BIO,而在OBMC过程中使用相邻块的MV时在MC过程中不应用BIO。
[0422] 加权样本预测模块
[0423] 作为可选工具,HEVC提供加权预测(weighted prediction,WP)工具。WP的原理是用 线性加权预测信号P'(具有权重w和偏移量o)代替帧间预测信号P:
[0424] 单向预测:P'=w×P+o  (1.23)
[0425] 双向预测:P'=(w0×P0+o0+w1×P1+o1)/2  (1.24)
[0426] 由编码器选择适用的权重和偏移量并在码流内传送。L0和L1后缀分别定义参考图片列 表的List0和List1。对于内插滤波器,在对预测信号求平均之前,将位深度保持为14位精度。
[0427] 在每个列表L0和L1中具有可用的至少一个参考图片的双向预测的情况下,以下公式适 用于与亮度通道有关的加权预测参数的显式信令。对应的公式适用于色度通道和单向预测的 情况。
[0428]
[0429] 其中,
[0430] log2WD=luma_log2_weight_denom+14-bitDepth
[0431] w0=LumaWeightL0[refIdxL0],w1=LumaWeightL1[refIdxL1]
[0432] o0=luma_offset_l0[refIdxL0]*highPrecisionScaleFactor
[0433] o1=luma_offset_l1[refIdxL1]*highPrecisionScaleFactor
[0434] highPrecisionScaleFactor=(1<<(bitDepth-8))
[0435] 边界预测滤波(Boundary prediction filters)是对于预测像素最左列或最上列进行进一步 调整的帧内编码方法。在HEVC中,在针对竖直或水平内部模式已经产生内部预测块之后, 分别对预测样本的最左列或最顶行进行进一步调整。此方法可进一步扩展到若干个对角线内 部模式,并且使用双抽头(用于内部模式2和34)或三抽头滤波器(用于内部模式3到6和 30到33)进一步调整至多四列或四行的边界样本。
[0436] 在HEVC和之前的标准中,参考帧分为前向和后向两组,分别放置在两个参考帧列表 (reference picture list)中,一般命名为list0和list1。通过帧间预测方向指示当前块使用前向 预测、后向预测或双向预测其中的何种预测方向,根据预测的方向选择使用不同的参考帧列 表list0、list1或者list0和list1。对于选定的参考帧列表,通过参考帧索引指明参考帧。在选 定的参考帧中,通过运动矢量指示当前块的预测块在参考帧中的参考块相对当前帧中当前块 的位置偏移。然后根据预测方向,使用从list0、list1或者list0和list1中的参考帧中取得的预 测块生成最终的预测块。其中当预测方向为单向时,直接使用从list0或list1中的参考帧中取 得的预测块,当预测方向为双向时,将list0和list1中的参考帧中取得的预测块通过加权平均 的方式合成最终预测块。
[0437] 为了解决现有技术中帧间预测模式获得的预测像素在空域上存在一定的不连续性,影响 预测效率,造成预测残差能量较大的问题,本申请实施例提供一种帧间预测方法,能够在生 成预测像素之后,利用周围相邻已重构像素对于预测像素进行滤波,提高编码效率。
[0438] 图13为本申请实施例提供的一种帧间预测方法的示意性流程图,如图13所示,该方法 包括步骤S1301-S1307。
[0439] S1301、解析码流,以获得待处理图像块的运动信息。
[0440] 其中,该待处理图像块可以称为当前块,或当前CU。
[0441] 可以理解的,可由图1中的视频解码器200执行步骤S1301。
[0442] 示例性的,本申请实施例可以采用基于块的运动补偿技术,通过为当前编码块在已编码 块中寻找一个最佳匹配块,使得预测块与当前块残差尽可能的小,并计算当前块的偏移MV。
[0443] 示例性的,上述待处理图像块可以为图像中的任一分块,该待处理图像块的尺寸可以为 2*2、4*4、8*8、16*16、32*32、64*64、或128*128,本申请实施例对此并不进行限定。
[0444] 示例性的,若该待处理图像块(当前块)在编码端采用融合模式(merge)编码,可以将 与该当前块的空间候选和时域候选加入当前块的融合运动信息候选列表中,其方法与HEVC 中的方法相同。示例性的,融合运动信息候选列表的具体方法可以采用图8-图12描述的任一 技术。
[0445] 示例性的,若当前块为merge模式,则根据码流中携带的融合索引确定当前块的运动信 息。若当前块为Inter MVP模式,则根据码流中传送的帧间预测方向、参考帧索引、运动矢 量预测值索引、运动矢量残差值确定当前块运动信息。
[0446] 步骤S1301可以采用HEVC或者VTM中的方法进行,也可采用其他生成运动矢量预测 候选列表的方法,本申请实施例对此不作限定。
[0447] S1302、(可选的)确定更新待处理图像块的预测块。
[0448] 可以理解的,可由图1中的视频解码器200执行步骤S1302。
[0449] 上述待处理图像块的预测块即为当前块的预测块,可以基于一个或多个已编码块预测得 到。
[0450] 示例性的,可以根据待处理图像块的更新判别标识确定是否更新待处理图像块的预测块, 即可以根据待处理图像块的更新判别标识确定是否对该待处理图像块进行空域滤波。
[0451] 在一种可行的实施方式中,可以通过解析码流,获得待处理图像块的更新判别标识信息, 该更新判别标识信息用于指示是否更新该待处理图像块的预测块;根据该待处理图像块的更 新判别标识信息进一步确定更新待处理图像块的预测块。
[0452] 在另一种可行的实施方式中,可以通过获取待处理图像块的预设的更新判别标识信息, 该预设的更新判别标识信息用于指示是否更新该待处理图像块的预测块;根据该预设的更新 判别标识进一步确定更新待处理图像块的预测块。
[0453] 示例性的,若该更新判别标识为真,可以确定更新待处理图像块的预测块,即对待处理 图像块的预测块进行空域滤波;若该更新判别标识为假,确定不需要更新待处理图像块的预 测块。本申请实施例对于更新判别标识的具体形式并不进行限定,在此仅是以更新判别标识 为真或假进行示例性说明。
[0454] S1303、(可选的)确定待处理图像块的预测模式。
[0455] 可以理解的,可由图1中的视频解码器200执行步骤S1303。
[0456] 示例性的,上述待处理图像块的预测模式可以为融合模式(merge)和/或帧间高级运动 矢量预测模式(inter AMVP),本申请实施例对此并不进行限定。可以理解的,该待处理图像 块的预测模式可以仅为merge,也可以仅为inter AMVP,还可以为merge和inter AMVP两种 模式合并的预测模式。
[0457] 需要说明的是,上述帧间高级运动矢量预测模式(inter AMVP)也可称为帧间运动矢量 预测模式(inter MVP)。
[0458] 示例性的,上述确定待处理图像块的预测模式的方法可以通过解析码流,获取待处理图 像块的预测模式,确定该待处理图像块的预测模式为merge和/或inter AMVP模式。
[0459] 可以理解的,本申请实施例可以对在帧间编码块以merge和/或inter AMVP模式进行编 码的块执行空域滤波方法,即可以对以merge和/或inter AMVP模式编码的块在解码端解码 时进行滤波处理。
[0460] S1304、基于运动信息对待处理图像块进行运动补偿,以获得待处理图像块的预测块。
[0461] 其中,该待处理图像的预测块中包括目标像素点的预测值。
[0462] 可以理解的,可由图1中的视频解码器200执行步骤S1304。
[0463] 示例性的,运动补偿是通过参考图像来预测、补偿当前的局部图像,能够减少帧序列冗 余信息。
[0464] 示例性的,基于运动信息进行运动补偿时,可以利用参考帧方向、参考帧序号和运动矢 量,从参考帧中获得待处理图像块的预测块,其中,该参考帧方向可以为前向预测、后向预 测或双向预测,本申请实施例对此并不进行限定。
[0465] 示例性的,当参考帧方向为前向预测时,当前编码单元(CU)可以从前向参考图像集合 中选择一个参考图像获取参考块;当参考帧方向为后向预测时,当前编码单元(CU)可以从 后向参考图像集合中选择一个参考图像获取参考块;当参考帧方向为双向预测时,当前编码 单元(CU)可以从前向和后向参考图像集合中各选择一个参考图像获取参考块。
[0466] 需要说明的是,上述步骤S1304中基于运动信息对待处理图像块进行运动补偿的方法, 可以采用HEVC或者VTM中的方法,也可以采用其他方法获得待处理图像块的预测块,本 申请实施对此并不进行限定。
[0467] S1306、将一个或多个参考像素点的重构值和目标像素点的预测值进行加权计算,以更新 目标像素点的预测值。
[0468] 其中,参考像素点与目标像素点具有预设的空域位置关系。
[0469] 可以理解的,可由图1中的视频解码器200执行步骤S1306。
[0470] 示例性的,上述目标像素点为待处理图像块的预测块内的像素点,该目标像素点的预测 值可以根据参考块内像素点的像素值确定。
[0471] 示例性的,上述参考像素点可以为与当前CU(待处理图像块)在空间域上临近的已重构 像素点,具体的,该参考像素点可以为图像中除该当前CU块以外的块中的已重构像素点, 例如,参考像素点可以为当前CU的上方或左侧的CU块中的已重构像素点,本申请实施例 对此并不进行限定。
[0472] 可以理解的,上述步骤S1306是利用当前CU在空间域上临近的已重构像素点对目标像 素点的预测像素进行空域滤波,具体是采用当前CU在空间域上临近的已重构像素点的像素 值与当前块中的目标像素点的预测像素进行加权计算,得到更新的后的目标像素点的预测像 素。
[0473] 在一种可行的实施方式中,上述一个或多个参考像素点可以包括与目标像素点具有相同 横坐标且具有预设纵坐标差的已重构像素点,或者,与目标像素点具有相同纵坐标且具有预 设横坐标差的已重构像素点。
[0474] 示例性的,如图14所示,以图片的左上角为坐标系原点,坐标系的X轴方向沿图片上 边缘向右延伸,坐标系的y轴方向沿图像左边缘向下延伸,若待处理图像块(当前CU)中的 目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为(xN,yN),该目标像 素点的参考像素点可以为待处理图像块的上方或左侧的块中的已重构像素点,若该参考像素 点为待处理图像块的上方的块中的已重构像素点,由于该参考像素点为待处理图像块以外的 块中的已重构像素点,因此,该参考像素点的纵坐标为待处理图像块上边缘的纵坐标减预设 位置关系N,横坐标与待处理图像块的目标像素点的横坐标相同,即参考像素点的坐标为 (xP,yN-N);若该参考像素点为待处理图像块的左侧的块中的已重构像素点,由于该参考像 素点为待处理图像块以外的块中的已重构像素点,因此,该参考像素点的横坐标为待处理图 像块最左侧的横坐标减预设位置关系M,纵坐标与待处理图像块的目标像素点的纵坐标相同, 即参考像素点的坐标为(xN-M,yP),本申请实施例对于参考像素点与目标像素点所具有的具 体空域位置关系(M、N的具体取值)并不进行限定。
[0475] 在一种可行的实施方式中,可以根据以下公式更新目标像素点的预测值:
[0476]
[0477] 其中,上述目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的 更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的参考像素点的重构值,w1,w2,w3,w4,w5,w6为预设 常数,M1,M2为预设正整数。
[0478] 以下对待处理图像块内的左上角像素点的坐标(xN,yN)在不同情况时,计算目标像素点 的更新后的预测值的具体方法进行说明。
[0479] 第一种情况:若xN大于零,yN等于零,参考像素点(xN-M1,yP)位置的像素已编码重 构,目标像素点的更新后的预测值可以通过如下公式获得:
[0480]
[0481] 示例性的,如图15所示,以待处理图像块的大小为16*16为例进行说明,若待处理图像 块为CU1,该待处理图像块(CU1)的左上角像素点(xN,yN)为(16,0),待处理图像块中目 标像素点的坐标(xP,yP)为(18,3),由于当前CU(CU1)左上角的横坐标xN大于零,纵坐 标yN等于零,可以确定当前CU位于图像的上侧边缘位置,在对当前CU中的目标像素点进 行空域滤波时,由于当前CU在图像上边缘,上侧不存在已重构像素点,故该情况下参考像 素点为当前CU左侧的已重构像素点,且与目标像素点纵坐标相同,可以记为(16-M1,3), 该M1为参考像素点与目标像素点预设的空域位置关系,在此以M1取1为例进行说明,M1 取1时,目标像素点(18,3)的参考像素点可以为(15,3),同理,目标像素点(xP,yP)的参考像 素点均可以为(xN-1,yP)。
[0482] 若参考像素点(xN-1,yP)位置的像素已编码重构,可以通过参考像素点的重构值 recon(xN-1,yP)与目标像素点的预测值predP(xP,yP)进行加权计算,得到目标像素点的更 新后的预测值predQ(xP,yP)。
[0483] 第二种情况:若xN等于零,yN大于零,参考像素点(xP,yN-M2)位置的像素已编码重 构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0484]
[0485] 示例性的,如图15所示,若待处理图像块为CU2,该待处理图像块(CU2)的左上角像 素点(xN,yN)为(0,32),目标像素点的坐标(xP,yP)为(8,35),由于当前CU(CU2)左上角 的横坐标xN等于零,纵坐标yN大于零,可以确定当前CU位于图像的左侧边缘位置,在对 当前CU中的目标像素点进行空域滤波时,由于当前CU在图像左边缘,左侧不存在已重构 像素点,故该情况下参考像素点为当前CU上方的已重构像素点,且与目标像素点横坐标相 同,可以记为(8,32-M2),该M2为参考像素点与目标像素点预设的空域位置关系,在此以 M2取1为例进行说明,M2取1时,目标像素点(8,35)的参考像素点可以为(8,31),同理, 目标像素点(xP,yP)的参考像素点均可以为(xP,yN-M2)。
[0486] 若参考像素点(xP,yN-M2)位置的像素已编码重构,可以通过参考像素点的重构值 recon(xP,yN-M2)与目标像素点的预测值predP(xP,yP)进行加权计算,得到目标像素点的更 新后的预测值predQ(xP,yP)。
[0487] 第三种情况:若xN大于零,yN大于零,参考像素点(xN-M1,yP)、(xP,yN-M2)位置 的像素已编码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0488]
[0489] 示例性的,如图15所示,若待处理图像块为CU3,该待处理图像块(CU3)的左上角像 素点(xN,yN)为(48,32),目标像素点的坐标(xP,yP)为(56,33),由于当前CU(CU3)左上 角的横坐标xN大于零,纵坐标yN大于零,可以确定当前CU不在图像的边缘位置,在对当 前CU中的目标像素点进行空域滤波时,参考像素点可以为当前CU上方的已重构像素点以 及当前CU左侧的已重构像素点,且在该参考像素点为当前CU左侧的已重构像素点时,该 已重构像素点位置的纵坐标与目标像素点的纵坐标相同,可以为(xN-M1,33),在该参考像 素点为当前CU上方的已重构像素点时,该已重构像素点位置的横坐标与目标像素点的横坐 标相同,可以为(56,yN-M2),该M1和M2为参考像素点与目标像素点预设的空域位置关 系,在此以M1和M2取1为例进行说明,M1和M2取1时,目标像素点(56,33)的参考像素 点可以为(47,33)和(56,31),同理,目标像素点(xP,yP)的参考像素点可以为(xN-M1,yP)和(xP,yN-M2)。
[0490] 若参考像素点(xN-M1,yP)和(xP,yN-M2)位置的像素已编码重构,可以通过参考像素 点的重构值recon(xN-M1,yP)和recon(xP,yN-M2)与目标像素点的预测值predP(xP,yP)进 行加权计算,得到目标像素点的更新后的预测值predQ(xP,yP)。
[0491] 需要说明的是,本申请实施例对于上述加权系数w1,w2,w3,w4,w5和w6的取值, 以及M1和M2的取值并不进行限定,上述仅以M1和M2取1为例进行说明。
[0492] 示例性的,上述加权系数组(w1,w2)、(w3,w4)或(w5,w6,w7)可采取w1+w2、 w3+w4或w5+w6+w7等于2的整数次幂的数值组合,以减少除法运算。例如可以取(6,2)、 (5,3)、(4,4)或(6,1,1)、(5,2,1)等数值组合,本申请实施例对此并不进行限定, 在此仅是示例性说明。
[0493] 在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0494]
[0495] 其中,目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的 更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的参考像素点的重构值,w1,w2,w3为预设常数,M1,M2 为预设正整数。
[0496] 示例性的,上述加权系数组(w1,w2,w3)可采取w1+w2+w3等于2的整数次幂的数 值组合,以减少除法运算。例如可以取(6,1,1)、(5,2,1)等数值组合,本申请实施例 对此并不进行限定,在此仅是示例性说明。
[0497] 需要说明的是,该实现方式与前一实现方式的区别在于,该实现方式并不考虑待处理图 像块左侧和上侧的像素,若采用该实现方式更新上述目标像素点的预测值时,参考像素点的 重构值不可用,可采用下述步骤S13061-S13062的方法获取新的参考像素点,并根据新的参 考像素点更新目标像素点的预测值。
[0498] 在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0499]
[0500] 其中,目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的 更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的参考像素点的重构值,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10, w11为预设常数,M1,M2,M3,M4为预设正整数。
[0501] 以下对待处理图像块内的左上角像素点的坐标(xN,yN)在不同情况时,计算目标像素点 的更新后的预测值的方法进行具体说明。
[0502] 第一种情况:若xN大于零,yN等于零,参考像素点(xN-M1,yP)和(xN-M2,yP)位置 的像素已编码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0503]
[0504] 可以理解是,与第一种实施方式的第一种情况不同的是,本实施方式的参考像素点为两 个,若待处理图像块为CU1,该待处理图像块(CU1)的左上角像素点(xN,yN)为(16,0), 待处理图像块中目标像素点的坐标(xP,yP)为(18,3),参考像素点为当前CU左侧的已重构像 素点,且与目标像素点纵坐标相同,可以记为(16-M1,3)和(16-M2,3),该M1和M2为参 考像素点与目标像素点预设的空域位置关系,在此以M1取1、M2取2为例进行说明,M1 取
1、M2取2时,目标像素点(18,3)的参考像素点可以为(15,3)和(14,3),同理,目标像素点 (xP,yP)的参考像素点均可以为(xN-1,yP)和(xN-2,yP)。
[0505] 若参考像素点(xN-1,yP)和(xN-2,yP)位置的像素已编码重构,可以通过参考像素点的重 构值recon(xN-1,yP)和recon(xN-2,yP)与目标像素点的预测值predP(xP,yP)进行加权计 算,得到目标像素点的更新后的预测值predQ(xP,yP)。
[0506] 第二种情况:若xN等于零,yN大于零,参考像素点(xP,yN-M3)和(xP,yN-M4)位 置的像素已编码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0507]
[0508] 示例性的,与第一种实施方式的第二种情况不同的是,本实施方式的参考像素点为两个, 若待处理图像块为CU2,该待处理图像块(CU2)的左上角像素点(xN,yN)为(0,32),目标 像素点的坐标(xP,yP)为(8,35),参考像素点为当前CU上方的已重构像素点,且与目标像素 点横坐标相同,可以记为(8,32-M3)和(8,32-M4),该M3和M4为参考像素点与目标像素 点预设的空域位置关系,在此以M3取1、M4取2为例进行说明,M3取1、M4取2时,目 标像素点(8,35)的参考像素点可以为(8,31)和(8,30),同理,目标像素点(xP,yP)的参考像素 点均可以为(xP,yN-1)和(xP,yN-2)。
[0509] 若参考像素点(xP,yN-1)和(xP,yN-2)位置的像素已编码重构,可以通过参考像素点的 重构值recon(xP,yN-1)和recon(xP,yN-2)与目标像素点的预测值predP(xP,yP)进行加权计 算,得到目标像素点的更新后的预测值predQ(xP,yP)。
[0510] 第三种情况:若xN大于零,yN大于零,参考像素点(xN-M1,yP),(xN-M2,yP), (xP,yN-M3)和(xP,yN-M4)位置的像素已编码重构时,目标像素点的更新后的预测值可以 通过如下公式获得:
[0511]
[0512] 示例性的,与第一种实施方式的第三种情况不同的是,本实施方式的参考像素点在当前 CU的上方和左侧的已重构像素点分别有两个,若待处理图像块为CU3,该待处理图像块 (CU3)的左上角像素点(xN,yN)为(48,32),目标像素点的坐标(xP,yP)为(56,33),参考像 素点为当前CU左侧的已重构像素点时,该已重构像素点位置的纵坐标与目标像素点的纵坐 标相同,可以为(48-M1,33)和(48-M2,33),参考像素点为当前CU上方的已重构像素点时, 该已重构像素点位置的横坐标与目标像素点的横坐标相同,可以为(56,32-M3)和 (56,32-M4),该M1、M2、M3和M4为参考像素点与目标像素点预设的空域位置关系,在 此以M1和M3取1、M2和M4取2为例进行说明,M1和M3取1、M2和M4取2时,目 标像素点(56,33)的参考像素点可以为(47,33)、(46,33)、(56,31)和(56,30),同理,目标像素 点(xP,yP)的参考像素点可以为(xN-M1,yP),(xN-M2,yP),(xP,yN-M3)和 (xP,yN-M4)。
[0513] 若参考像素点(xN-M1,yP),(xN-M2,yP),(xP,yN-M3)和(xP,yN-M4)位置的像 素已编码重构,可以通过参考像素点的重构值recon(xN-M1,yP),recon(xN-M2,yP), recon(xP,yN-M3)和recon(xP,yN-M4)与目标像素点的预测值predP(xP,yP)进行加权计 算,得到目标像素点的更新后的预测值predQ(xP,yP)。
[0514] 需要说明的是,本申请实施例对于上述加权系数w1,w2,w3,w4,w5,w6,w7,w8, w9,w10和w11的取值,以及M1、M2、M3和M4的取值并不进行限定,上述仅以M1和 M3取1、M2和M4取2为例进行说明,可以理解的是,实际应用中M1和M3、M2和M4 的取值可以相同也可以不同,M1和M2、M3和M4的取值可以不同。
[0515] 示例性的,上述加权系数组(w1,w2,w3)、(w4,w5,w6)或(w7,w8,w9,w10, w11)可采取w1+w2+w3、w4+w5+w6或w7+w8+w9+w10+w11等于2的整数次幂的数值组合, 以减少除法运算。例如可以取(6,1,1)、(5,2,1)或(3,2,1,1,1)等数值组合,本 申请实施例对此并不进行限定,在此仅是示例性说明。
[0516] 在另一种实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0517]
[0518] 其中,目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的 更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的参考像素点的重构值,w1,w2,w3,w4,w5预设常数,M1,M2,M3, M4为预设正整数。
[0519] 示例性的,上述加权系数组(w1,w2,w3,w4,w5)可采取w1+w2+w3+w4+w5等于 2的整数次幂的数值组合,以减少除法运算。例如可以取(3,2,1,1,1)等数值组合,本 申请实施例对此并不进行限定,在此仅是示例性说明。需要说明的是,该实现方式与前一实 现方式的区别在于,该实现方式并不考虑待处理图像块左侧和上侧的像素,若采用该实现方 式更新上述目标像素点的预测值时,参考像素点的重构值不可用,可采用下述步骤 S13061-S13062的方法获取可用的参考像素点,并根据可用的参考像素点更新目标像素点的 预测值。
[0520] 在一种可行的实施方式中,上述一个或多个参考像素点包括以下像素点中的一个或多个: 与目标像素点具有相同横坐标且与待处理图像块的上边缘相邻接的已重构像素点;或者,与 目标像素点具有相同纵坐标且与待处理图像块的左边缘相邻接的已重构像素点;或者,待处 理图像块的右上角的已重构像素点;或者,待处理图像块的左下角的已重构像素点;或者, 待处理图像块的左上角的已重构像素点。
[0521] 在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0522]
[0523] 其中,目标像素点的坐标为(xP,yP),predP(xP,yP)为目标像素点的更新前的预测值, predQ(xP,yP)为目标像素点的更新后的预测值,w1,w2为预设常数。
[0524] 具体的:
[0525] 可以首先使用帧内预测中的平面模式(PLANAR),从空域临近像素预测得到第二预测像 素值predP1(xP,yP)。可以理解的,该PLANAR模式使用水平和垂直方向的两个线性滤波器, 并将二者的平均值作为当前块像素的预测值。
[0526] 示例性的,该第二预测像素值predP1(xP,yP)可以使用PLANAR模式获得: predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+nTbW*nTbH)>>(Log2(nTbW)+Log2(nTbH)+1), predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH))<<Log2(nTbW), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1))<<Log2(nTbH), 其中,如图16所示,待处理图像块内的左上角像素点的坐标为(xN,yN),recon(xP,yN-1), recon(xN-1,yN+nTbH),recon(xN-1,yP),recon(xN+nTbW,yN-1)分别为位于坐标位置 (xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP),(xN+nTbW,yN-1)的参考像素点的重构值, nTbW和nTbH为当前CU(待处理图像块)的宽度和高度。
[0527] 需要说明的是,生成第二预测像素值predP1(xP,yP)所使用平面模式(PLANAR)算法 不仅限于VTM中的算法,也可以使用HEVC和H.264中的PLANAR算法,本申请实施例对 此并不进行限定。
[0528] 需要说明的是,本申请实施例对于上述加权系数w1和w2的取值并不进行限定,示例性 的,上述加权系数组(w1,w2)可采取w1+w2等于2的整数次幂的数值组合,以减少除法 运算。例如可以取(6,2)、(5,3)、(4,4)等数值组合,本申请实施例对此并不进行限定, 在此仅是示例性说明。
[0529] 在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0530]
[0531] 其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+1)>>1, predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH)+(nTbH>>1))>>Log2(nTbH), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1)+(nTbW>>1))>>Log2(nTbW), 目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的更新后的预 测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为待处理 图像块的宽度和高度。
[0532] 在另一种可行的实施方式中,可以利用帧内预测中的基于位置的帧内预测联合处理技术 (Position-dependent intra prediction combination process)对于帧间预测块进行处理,目标像素 点的更新后的预测值predQ(xP,yP)可以采用VTM中帧内预测联合处理技术的DC模式的方 法获得。可以理解的,采用DC模式时,当前块的预测值可由其左侧和上方的参考像素的平 均值得到。
[0533] 示例性的,目标像素点的更新后的预测值predQ(xP,yP)可以通过下式得到:
[0534]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),wTL(xP,yP)=((wL(xP)>>4)+(wT(yP)>>4)), nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),如图
16所示,目标像素点的坐标为(xP,yP), 待处理图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为目标像素点的更新前的 预测值,predQ(xP,yP)为目标像素点的更新后的预测值,recon(xP,yN-1), recon(xN-1,yP),recon(xN-1,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yP), (xN-1,yN-1)的参考像素点的重构值,nTbW和nTbH为待处理图像块的宽度和高度, clip1Cmp为钳位操作。
[0535] 需要说明的是,上述目标像素点的更新后的预测值predQ(xP,yP)不仅可以使用VTM中 的帧内预测联合处理技术,也可以使用JEM中的算法。
[0536] 在一种可行的实施方式中,可以利用帧内预测中的基于位置的帧内预测联合处理技术对 于帧间预测块进行处理,目标像素点的更新后的预测值predQ(xP,yP)可以采用VTM中帧内 预测联合处理技术的PLANAR模式的方法获得,如下式:
[0537]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),如图16所 示,目标像素点的坐标为(xP,yP),待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为目标像素点的更新前的预测值,predQ(xP,yP)为目标像素点的更新后的预 测值,recon(xN-1,yP),recon(xP,yN-1)分别为位于坐标位置(xN-1,yP),(xP,yN-1)的 参考像素点的重构值,nTbW和nTbH为上述待处理图像块的宽度和高度,clip1Cmp为钳位 操作。
[0538] 需要说明的是,上述目标像素点的更新后的预测值predQ(xP,yP)不仅可以使用VTM中 的算法,也可以使用JEM中的算法。
[0539] 在一种可行的实施方式中,可以采用帧内预测中的边界滤波技术对帧间预测像素进行滤 波处理,边界滤波技术可以参照HEVC的方法进行,在此不再赘述。
[0540] 需要说明的是,根据上述任一方式更新目标像素点的预测值时,若参考像素点的重构值 不可用,上述步骤S1306还可以包括以下步骤S13061-S13062。
[0541] S13061、当参考像素点的重构值不可用时,按照预设顺序确定与待处理图像块的上边沿 和左边沿相邻的像素点的可用性,直到获取预设个数的可用的参考像素点。
[0542] 可以理解的,上述参考像素点的重构值不可用的情况可以包括:待处理图像块位于图片 的上方边缘位置时,坐标位置(xP,yN-M)的参考像素点的重构值不存在,或者待处理图像 块位于图片的左侧边缘位置时,坐标位置(xN-N,yP)的参考像素点的重构值不存在,或者参 考像素点的重置无法获得等,本申请实施例对于参考像素点的重构值不可用的具体情况并不 进行限定,在此仅是示例性说明。
[0543] 一种实现方式中,如图17所示,上述预设顺序可以为从坐标(xN-1,yN+nTbH-1)至坐 标(xN-1,yN-1),接着从坐标(xN,yN-1)至坐标(xN+nTbW-1,yN-1)的顺序。例如,可 以从坐标(xN-1,yN+nTbH-1)至坐标(xN-1,yN-1),接着从坐标(xN,yN-1)至坐标(xN+nTbW-1, yN-1)的顺序遍历所有像素点,寻找待处理图像块的上边沿和左边沿相邻的像素点中可用的 参考像素点。需要说明的是,本申请实施例对于上述预设顺序的具体顺序并不进行限定,在 此仅是示例性说明。
[0544] 示例性的,当所有参考像素点中至少有一个参考像素点可用时。若参考像素点(xN-1, yN+nTbH-1)的重构值不可用,按照上述预设顺序从坐标(xN-1,yN+nTbH-1)至坐标(xN-1, yN-1),接着从坐标(xN,yN-1)至坐标(xN+nTbW-1,yN-1)的顺序寻找可用的像素点,一 旦找到可用的像素点,搜索就会终止,若该可用的像素点为(x,y),则参考像素点(xN-1, yN+nTbH-1)的重构值被设置为像素点(x,y)的重构值;在参考像素点(xN-1,yN+nTbH-M) 集合中参考像素点(x,y)的重构值不可用,其中,M大于等于2,小于等于nTbH+1,则参 考像素点参考像素点(x,y)的重构值被设置为像素点(x,y+1)的重构值;在参考像素点 (xN+N,yN-1)集合中参考像素点(x,y)的重构值不可用,其中,N大于等于0,小于等 于nTbW-1,则参考像素点(x,y)的重构值被设置为参考像素点(x-1,y)的重构值。
[0545] 示例性的,若参考像素点(xN-1,yN+nTbH-M)的重构值不可用,其中,M大于等于1, 小于等于nTbH+1,可以从坐标(xN-1,yN+nTbH-M)开始,按照上述预设顺序寻找可用的 参考像素点,若该可用的参考像素点为B,那么参考像素点(xN-1,yN+nTbH-M)的重构值 可以设置为参考像素点B的重构值;若参考像素点坐标为(xN+N,yN-1)的重构值不可用, 其中,N大于等于0,小于等于nTbW-1,可以从坐标(xN+N,yN-1)开始,按照上述预设 顺序寻找可用的参考像素点,若该可用的参考像素点为C,那么参考像素点(xN+N,yN-1) 的重构值可以设置为参考像素点C的重构值。
[0546] 例如,若参考像素点(xN-1,yN+nTbH-3)的重构值不可用,可以从坐标(xN-1,yN+nTbH-3) 至坐标(xN-1,yN-1)的顺序确定待处理图像块的上边沿和左边沿相邻的像素点的可用性, 直到获取预设个数的可用的参考像素点,该参考像素点(xN-1,yN+nTbH-3)的重构值可以 使用该可用的参考像素点的重构值。若参考像素点坐标为(xN+3,yN-1)的重构值不可用, 从坐标(xN+3,yN-1)开始至坐标(xN+nTbW-1,yN-1)的顺序寻找可用的像素点,该参考 像素点(xN+3,yN-1)的重构值可以使用该可用的参考像素点的重构值。
[0547] 示例性的,若参考像素点(xN-1,yN+nTbH-1)的重构值不可用,按照上述预设顺序从 坐标(xN-1,yN+nTbH-1)至坐标(xN-1,yN-1),接着从坐标(xN,yN-1)至坐标(xN+nTbW-1, yN-1)的顺序寻找可用的像素点,一旦找到可用的像素点,搜索就会终止,若该可用的像素 点为(x,y),则参考像素点(xN-1,yN+nTbH-1)的重构值被设置为像素点(x,y)的重构 值;若参考像素点(xN-1,yN+nTbH-M)的重构值不可用,其中,M大于1,小于等于nTbH+1, 可以从坐标(xN-1,yN+nTbH-M)开始,按照与上述预设顺序相反的顺序寻找可用的参考像 素点,若该可用的参考像素点为C,那么参考像素点(xN-1,yN+nTbH-M)的重构值可以设 置为参考像素点C的重构值;若参考像素点坐标为(xN+N,yN-1)的重构值不可用,其中, N大于等于0,小于等于nTbW-1,可以从坐标(xN+N,yN-1)开始,按照上述预设顺序相 反的顺序寻找可用的参考像素点,若该可用的参考像素点为D,那么参考像素点(xN+N,yN-1) 的重构值可以设置为参考像素点D的重构值。
[0548] 例如,若参考像素点(xN-1,yN+nTbH-3)的重构值不可用,可以从坐标(xN-1,yN+nTbH-3) 至坐标(xN-1,yN+nTbH-1)的顺序确定待处理图像块的上边沿和左边沿相邻的像素点的可 用性,直到获取预设个数的可用的参考像素点,该参考像素点(xN-1,yN+nTbH-3)的重构 值可以使用该可用的参考像素点的重构值。若参考像素点坐标为(xN+3,yN-1)的重构值不 可用,从坐标(xN+3,yN-1)开始至坐标(xN,yN-1)的顺序寻找可用的像素点,该参考像 素点(xN+3,yN-1)的重构值可以使用该可用的参考像素点的重构值。
[0549] 需要说明的,上述新的参考像素点可以为按照上述预设顺序寻找的第一个可用的参考像 素点,也可以是按照上述预设顺序寻找的任一个可用的参考像素点,本申请实施例对此并不 进行限定。
[0550] 可以理解的,采用该方法,对于不可用的参考像素点,可以按照预设顺序寻找待处理图 像块的上边沿和左边沿相邻的像素点中可用的参考像素点,并使用该可用的参考像素点的重 构值作为不可用的参考像素点的重构值。
[0551] S13062、将可用的参考像素点的重构值和目标像素点的预测值进行加权计算,以更新目 标像素点的预测值。
[0552] 示例性的,可以根据新的参考像素点的重构值按照上述任一实施方式更新上述目标像素 点的预测值。
[0553] 需要说明的是,若参考像素点的重构值不可用,而且按照步骤S13061确定待处理图像块 的上边沿和左边沿相邻的像素点均不可用,则可以将参考像素点的重构值设置为1<< (bitDepth-1),其中,bitDepth为参考像素点采样值的位深。例如,待处理图像块位于图片左 上角位置时,该待处理图像块的左上角的坐标为(0,0),则该待处理图像块的上边沿和左边 沿相邻的像素点均不可用,可以将该待处理图像块的目标像素点对应的参考像素点的重构值 设置为1<<(bitDepth-1)。
[0554] 上述多种实施方式通过在生成帧间预测像素的过程中,对于帧间预测像素进行空域滤波, 相比于现有技术,提高了编码效率。
[0555] 一种可行的实施方式中,在上述步骤S1306之前还可以包括步骤S1305。
[0556] S1305、(可选的)对参考像素点进行滤波处理。
[0557] 可以理解的,可由图3中的视频解码器的滤波器单元206执行步骤S1305。
[0558] 示例性的,上述对参考像素点进行滤波处理可以包括:当参考像素点位于待处理图像块 的上方时,对参考像素点的重构值和参考像素点的左右相邻像素点的重构值进行加权计算; 当参考像素点位于所述待处理图像块的左方时,对参考像素点的重构值和参考像素点的上下 相邻像素点的重构值进行加权计算;采用加权计算的结果更新参考像素点的重构值。
[0559] 可以理解的,上述步骤S1305对参考像素点进行滤波处理后,在执行步骤S1306时,可 以采用经滤波处理后更新的参考像素点的重构值和目标像素点的预测值进行加权计算,以更 新目标像素点的预测值。
[0560] 需要说明的,上述对参考像素点进行滤波处理的具体方法可以参考步骤S1306的滤波方 法,在此不再赘述。
[0561] 可以理解的,通过对参考像素点进行滤波处理更新参考像素点的重构值,并利用更新以 后的参考像素点的重构值对目标像素点进行滤波处理,能够进一步提高编码效率,减小预测 残差。
[0562] 一种可行的实施方式中,在上述步骤S1306之前或S1306之后还可以包括步骤S1307。
[0563] S1307、(可选的)根据运动信息和码流信息,利用除本方法之外的帧间编码技术继续进 行帧间预测。
[0564] 可以理解的,可由图3中的视频解码器的帧间预测器210执行步骤S1307。
[0565] 例如,可使用HEVC或者VTM中的技术,包括并不仅限于双向光流方法、解码端运动 矢量改良方法,局部照度补偿技术(LIC)、通用加权预测(GBI)、重叠块运动补偿(OBMC)、 解码端运动矢量补偿(DMVD)技术。可以采用HEVC或者VTM中的方法进行,也可采用 其他生成运动矢量预测候选列表的方法,本申请实施例对此不作限定。
[0566] 需要说明的是,本申请实施例对于上述方法步骤S1301-S1307的执行顺序并不进行限定。 例如,步骤S1305可以在步骤S1307之前执行,也可以在步骤S1307之后执行,本申请实施 例对此并不进行限定。
[0567] 在一种可行的实施方式中,在所述基于运动信息对待处理图像块进行运动补偿之前,还 可以包括:通过第一预设算法对运动信息进行初始更新;对应的,所述基于所述运动信息对 所述待处理图像块进行运动补偿,包括:基于初始更新后的运动信息对待处理图像块进行运 动补偿。
[0568] 在另一种可行的实施方式中,在所述获得待处理图像块的预测块之后,还可以包括:通 过第二预设算法对预测块进行预更新;对应的,所述将一个或多个参考像素点的重构值和所 述目标像素点的预测值进行加权计算,包括:将所述一个或多个参考像素点的重构值和所述 目标像素点的预更新后的预测值进行加权计算。
[0569] 在另一种可行的实施方式中,在所述将一个或多个参考像素点的重构值和所述目标像素 点的预测值进行加权计算,以更新所述目标像素点的预测值之后,还包括:通过第二预设算 法对所述目标像素点的预测值进行更新。
[0570] 还应理解的是,在获得目标像素点的更新后的预测值之后,还可以包括:将最终帧间预 测图像与残差图像相加,得到当前块的重构图像。具体的,如果当前块存在残差,则将残差 信息和预测图像相加,获得当前块的重构图像;如果当前块没有残差,则预测图像为当前块 的重建图像。上述过程可采用与HEVC或者VTM相同的方法,也可采用其他运动补偿、图 像重建方法,不做限定。
[0571] 本申请实施例提供的帧间预测方法,通过解析码流,获得待处理图像块的运动信息;基 于运动信息对待处理图像块进行运动补偿,以获得待处理图像块的预测块;将一个或多个参 考像素点的重构值和目标像素点的预测值进行加权计算,以更新目标像素点的预测值,该参 考像素点与目标像素点具有预设的空域位置关系。本申请实施例获取待处理图像块的目标像 素点的预测值之后,通过利用周围邻近已重构像素对该目标像素点的预测值进行滤波处理, 能够提高编码压缩效率,提升PSNR BDrate 0.5%,相比于现有技术,在生成帧间预测像素的 过程中,对于帧间预测像素进行空域滤波,提高了编码效率。
[0572] 本申请实施例提供一种帧间预测装置,该装置可以为视频解码器,具体的,帧间预测装 置用于执行以上帧间预测方法中的解码装置所执行的步骤。本申请实施例提供的帧间预测装 置可以包括相应步骤所对应的模块。
[0573] 本申请实施例可以根据上述方法示例对帧间预测装置进行功能模块的划分,例如,可以 对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。 上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请 实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划 分方式。
[0574] 在采用对应各个功能划分各个功能模块的情况下,图18示出上述实施例中所涉及帧间预 测装置的一种可能的结构示意图。如图18所示,帧间预测装置1800可以包括解析模块1801、 补偿模块1802、计算模块1803。具体的,各模块功能如下:
[0575] 解析模块1801,用于解析码流,以获得待处理图像块的运动信息。
[0576] 补偿模块1802,用于基于所述运动信息对所述待处理图像块进行运动补偿,以获得所述 待处理图像块的预测块,该待处理图像块的预测块中包括目标像素点的预测值。
[0577] 计算模块1803,用于将一个或多个参考像素点的重构值和所述目标像素点的预测值进行 加权计算,以更新所述目标像素点的预测值,其中,所述参考像素点与所述目标像素点具有 预设的空域位置关系。
[0578] 在一种可行的实施方式中,所述一个或多个参考像素点包括与所述目标像素点具有相同 横坐标且具有预设纵坐标差的已重构像素点,或者,与所述目标像素点具有相同纵坐标且具 有预设横坐标差的已重构像素点。
[0579] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0580]
[0581] 其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的所述参考像素点的重构值,w1,w2,w3,w4,w5,w6为 预设常数,M1,M2为预设正整数。
[0582] 在一种可行的实施方式中,w1+w2=R,或,w3+w4=R,或,w5+w6+w7=R,其中,R为 2的n次方,n为非负整数。
[0583] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0584]
[0585] 其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的所述参考像素点的重构值,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10, w11为预设常数,M1,M2,M3,M4为预设正整数。
[0586] 在一种可行的实施方式中,w1+w2+w3=S,或,w4+w5+w6=S,或, w7+w8+w9+w10+w11=S,其中,S为2的n次方,n为非负整数。
[0587] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0588]
[0589] 其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xP,yN-M2)分别为位于坐标位置 (xN-M1,yP),(xP,yN-M2)的所述参考像素点的重构值,w1,w2,w3为预设常数,M1, M2为预设正整数。
[0590] 在一种可行的实施方式中,w1+w2+w3=R,其中,R为2的n次方,n为非负整数。
[0591] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0592]
[0593] 其中,所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标 为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目 标像素点的更新后的预测值,recon(xN-M1,yP),recon(xN-M2,yP),recon(xP,yN-M3), recon(xP,yN-M4)分别为位于坐标位置(xN-M1,yP),(xN-M2,yP),(xP,yN-M3), (xP,yN-M4)的所述参考像素点的重构值,w1,w2,w3,w4,w5预设常数,M1,M2, M3,M4为预设正整数。
[0594] 在一种可行的实施方式中,w1+w2+w3+w4+w5=S,其中,S为2的n次方,n为非负整 数。
[0595] 在一种可行的实施方式中,所述一个或多个参考像素点包括以下像素点中的一个或多个: 与所述目标像素点具有相同横坐标且与所述待处理图像块的上边缘相邻接的已重构像素点; 或者,与所述目标像素点具有相同纵坐标且与所述待处理图像块的左边缘相邻接的已重构像 素点;或者,所述待处理图像块的右上角的已重构像素点;或者,所述待处理图像块的左下 角的已重构像素点;或者,所述待处理图像块的左上角的已重构像素点。
[0596] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0597]
[0598] 其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+nTbW*nTbH)>>(Log2(nTbW)+Log2(nTbH)+1), predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH))<<Log2(nTbW), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1))<<Log2(nTbH), 所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更 新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的所述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所 述待处理图像块的宽度和高度。
[0599] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0600]
[0601] 其中,predP1(xP,yP)=(predV(xP,yP)+predH(xP,yP)+1)>>1, predV(xP,yP)=((nTbH-1-(yP-yN))*recon(xP,yN-1)+(yP-yN+1)*recon(xN-1,yN+nTbH)+(nTbH>>1))>>Log2(nTbH), predH(xP,yP)=((nTbW-1-(xP-xN))*recon(xN-1,yP)+(xP-xN+1)*recon(xN+nTbW,yN-1)+(nTbW>>1))>>Log2(nTbW), 所述目标像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为(xN,yN), predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像素点的更 新后的预测值,recon(xP,yN-1),recon(xN-1,yN+nTbH),recon(xN-1,yP), recon(xN+nTbW,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yN+nTbH),(xN-1,yP), (xN+nTbW,yN-1)的所述参考像素点的重构值,w1,w2为预设常数,nTbW和nTbH为所 述待处理图像块的宽度和高度。
[0602] 在一种可行的实施方式中,w1和w2的和为2的n次方,其中,n为非负整数。
[0603] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0604]其中, refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),wTL(xP,yP)=((wL(xP)>>4)+(wT(yP)>>4)), nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),所述目标像素点的坐标为(xP,yP),所述待处理 图像块内的左上角像素点的坐标为(xN,yN),predP(xP,yP)为所述目标像素点的更新前的预 测值,predQ(xP,yP)为所述目标像素点的更新后的预测值,recon(xP,yN-1), recon(xN-1,yP),recon(xN-1,yN-1)分别为位于坐标位置(xP,yN-1),(xN-1,yP), (xN-1,yN-1)的所述参考像素点的重构值,nTbW和nTbH为所述待处理图像块的宽度和高 度,clip1Cmp为钳位操作。
[0605] 在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的预测 值:
[0606]其中,refL(xP,yP)=recon(xN-1,yP),refT(xP,yP)=recon(xP,yN-1),wT(yP)=32>>((yP<<1)>>nScale), wL(xP)=32>>((xP<<1)>>nScale),nScale=((Log2(nTbW)+Log2(nTbH)-2)>>2),所述目标 像素点的坐标为(xP,yP),所述待处理图像块内的左上角像素点的坐标为 (xN,yN),predP(xP,yP)为所述目标像素点的更新前的预测值,predQ(xP,yP)为所述目标像 素点的更新后的预测值,recon(xN-1,yP),recon(xP,yN-1)分别为位于坐标位置 (xN-1,yP),(xP,yN-1)的所述参考像素点的重构值,nTbW和nTbH为所述待处理图像块的 宽度和高度,clip1Cmp为钳位操作。
[0607] 在一种可行的实施方式中,所述计算模块1803,还用于当所述参考像素点的重构值不可 用时,按照预设顺序确定与所述待处理图像块的上边沿和左边沿相邻的像素点的可用性,直 到获取预设个数的可用的参考像素点;将该可用的参考像素点的重构值和上述目标像素点的 预测值进行加权计算。
[0608] 在一种可行的实施方式中,所述计算模块1803还用于:当所述参考像素点位于所述待处 理图像块的上方时,对所述参考像素点的重构值和所述参考像素点的左右相邻像素点的重构 值进行加权计算;当所述参考像素点位于所述待处理图像块的左方时,对所述参考像素点的 重构值和所述参考像素点的上下相邻像素点的重构值进行加权计算;采用所述加权计算的结 果更新所述参考像素点的重构值。
[0609] 在一种可行的实施方式中,所述计算模块1803还用于:通过第一预设算法对所述运动信 息进行初始更新;对应的,所述补偿模块1802具体用于:基于所述初始更新后的运动信息对 所述待处理图像块进行运动补偿。
[0610] 在一种可行的实施方式中,所述计算模块1803还用于:通过第二预设算法对所述预测块 进行预更新;对应的,所述计算模块1803具体用于:将所述一个或多个参考像素点的重构值 和所述目标像素点的预更新后的预测值进行加权计算。
[0611] 在一种可行的实施方式中,所述计算模块1803还用于:通过第二预设算法对所述目标像 素点的预测值进行更新。
[0612] 在一种可行的实施方式中,所述解析模块1801还用于:解析所述码流,以获得所述待处 理图像块的预测模式;确定所述预测模式为融合模式(merge)和/或帧间高级运动矢量预测 模式(inter AMVP)。
[0613] 在一种可行的实施方式中,所述解析模块1801还用于:解析所述码流,以获得所述待处 理图像块的更新判别标识信息;确定所述更新判别标识信息指示更新所述待处理图像块的预 测块。
[0614] 在一种可行的实施方式中,所述计算模块1803还用于:获取所述待处理图像块的预设的 更新判别标识信息;确定所述更新判别标识信息指示更新所述待处理图像块的预测块。
[0615] 图19为本申请实施例中的帧间预测设备1900的一种示意性结构框图。具体的,包括: 处理器1901和耦合于所述处理器的存储器1902;所述处理器1901用于执行图13所示的实 施例以及各种可行的实施方式。
[0616] 其中,处理器1901可以是中央处理器(Central Processing Unit,CPU),通用处理器,数 字信号处理器(Digital Signal Processor,DSP),ASIC,FPGA或者其他可编程逻辑器件、晶 体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的 各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含 一个或多个微处理器组合,DSP和微处理器的组合等等。
[0617] 其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能 描述,在此不再赘述。
[0618] 虽然关于视频编码器100及视频解码器200已描述本申请的特定方面,但应理解,本申 请的技术可通过许多其它视频编码和/或编码单元、处理器、处理单元、例如编码器/解码器 (CODEC)的基于硬件的编码单元及类似者来应用。此外,应理解,仅作为可行的实施方式而 提供关于图13所展示及描述的步骤。即,图13的可行的实施方式中所展示的步骤无需必定 按图13中所展示的次序执行,且可执行更少、额外或替代步骤。
[0619] 此外,应理解,取决于可行的实施方式,本文中所描述的方法中的任一者的特定动作或 事件可按不同序列执行,可经添加、合并或一起省去(例如,并非所有所描述的动作或事件为 实践方法所必要的)。此外,在特定可行的实施方式中,动作或事件可(例如)经由多线程处理、 中断处理或多个处理器来同时而非顺序地执行。另外,虽然出于清楚的目的将本申请的特定 方面描述为通过单一模块或单元执行,但应理解,本申请的技术可通过与视频解码器相关联 的单元或模块的组合执行。
[0620] 在一个或多个可行的实施方式中,所描述的功能可以硬件、软件、固件或其任何组合来 实施。如果以软件来实施,那么功能可作为一个或多个指令或代码而存储于计算机可读媒体 上或经由计算机可读媒体来传输,且通过基于硬件的处理单元来执行。计算机可读媒体可包 含计算机可读存储媒体或通信媒体,计算机可读存储媒体对应于例如数据存储媒体的有形媒 体,通信媒体包含促进计算机程序(例如)根据通信协议从一处传送到另一处的任何媒体。
[0621] 以这个方式,计算机可读媒体示例性地可对应于(1)非暂时性的有形计算机可读存储媒 体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一个或多个计算机或一个或多 个处理器存取以检索用于实施本申请中所描述的技术的指令、代码和/或数据结构的任何可用 媒体。计算机程序产品可包含计算机可读媒体。
[0622] 作为可行的实施方式而非限制,此计算机可读存储媒体可包括RAM、ROM、EEPROM、 CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用于存 储呈指令或数据结构的形式的所要代码且可由计算机存取的任何其它媒体。同样,任何连接 可适当地称作计算机可读媒体。例如,如果使用同轴缆线、光纤缆线、双绞线、数字订户线 (DSL),或例如红外线、无线电及微波的无线技术而从网站、服务器或其它远端源传输指令, 那么同轴缆线、光纤缆线、双绞线、DSL,或例如红外线、无线电及微波的无线技术包含于 媒体的定义中。
[0623] 然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂 时性媒体,而替代地针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光 盘(CD)、雷射光盘、光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以 磁性方式再现数据,而光盘通过雷射以光学方式再现数据。以上各物的组合也应包含于计算 机可读媒体的范围内。
[0624] 可通过例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现 场可编程门阵列(FPGA)或其它等效集成或离散逻辑电路的一个或多个处理器来执行指令。因 此,如本文中所使用,术语“处理器”可指前述结构或适于实施本文中所描述的技术的任何 其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供于经配置以用于 编码及解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。同样,技术可完全 实施于一个或多个电路或逻辑元件中。
[0625] 本申请的技术可实施于广泛多种装置或设备中,包含无线手机、集成电路(IC)或IC的集 合(例如,芯片组)。本申请中描述各种组件、模块或单元以强调经配置以执行所揭示的技术 的装置的功能方面,但未必需要通过不同硬件单元实现。更确切来说,如前文所描述,各种 单元可组合于编码解码器硬件单元中或由互操作的硬件单元(包含如前文所描述的一个或多 个处理器)结合合适软件和/或固件的集合来提供。
[0626] 以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任 何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应 涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈