一种帧间预测方法和装置与流程

文档序号:24126802发布日期:2021-03-02 14:09阅读:353来源:国知局
一种帧间预测方法和装置与流程
素点具有相同纵坐标且具有预设横坐标差的已重构像素点。基于本方案,通过与目标像 素点具有预设空域位置关系的参考像素点对目标像素点进行滤波处理,相比于现有技术, 提高了编码效率。
[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]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标 像素点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重 构值进行加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的 预测值通过如下公式获得:
构值进行加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的 预测值通过如下公式获得:
[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]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2)
[0030]
其中,
[0031]
predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+ntbw*ntbh)>>(log2(ntbw)+log2(ntbh)+ 1),predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0032]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0033]
在第一方面的一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0034]
predq(xp,yp)=(w1*predp(xp,yp) +w2*predv(xp,yp)
[0035]
+w3*predh(xp,yp)+((w1+w2+w3)/2))/(w1+w2+w3)
[0036]
其中,
[0037]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh)+ntbh/2)>>log2(ntbh),
[0038]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1)+ntbw/2)>>log2(ntbw), 所述目标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2, w3为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0039]
在第一方面的一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0040]
predq(xp,yp)=(((w1*predp(xp,yp))<<(log2(ntbw)+log2(ntbh)+1)) +w2*predv(xp,yp) +w3*predh(xp,yp) +(((w1+w2+w3)/2)<<(log2(ntbw)+log2(ntbh)+1))) /(((w1+w2+w3)<<(log2(ntbw)+log2(ntbh)+1)))
[0041]
其中,
[0042]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0043]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0044]
基于本方案,通过滤波处理能够得到目标像素点的更新后的预测值。
[0045]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标 像素点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重 构值进行加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的 预测值通过如下公式获得:
[0046]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2),
[0047][0048]
其中,predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+1)>>1,
[0049]
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),
[0050]
上述目标像素点的坐标为(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 为上述待处理图像块的宽度和高度。基于本方案,通过滤波处理能够得到目标像素点的 更新后的预测值。
[0051]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,w1和w2的和 为2的n次方,其中,n为非负整数。基于本方案,能够进一步提高编码效率。
[0052]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标 像素点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重 构值进行加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的 预测值通过如下公式获得:
[0053]
其 中,
[0054]
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为钳位操作。基于本方案,通过滤波处理能够得到目标像素点的更新后的 预测值。
[0055]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述更新目标 像素点的预测值,包括:根据上述目标像素点的更新前的预测值和上述参考像素点的重 构值进行加权计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的 预测值通过如下公式获得:
[0056]
其中, 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为钳位操作。基于本方案,通过滤波处理能够得到目标像素点的更新后的预测 值。
[0057]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述将一个或 多个参考像素点的重构值和上述目标像素点的预测值进行加权计算,包括:当上述参考 像素点的重构值不可用时,按照预设顺序确定与所述待处理图像块的上边沿和左边沿相 邻的像素点的可用性,直到获取预设个数的可用的参考像素点;将该可用的参考像素点 的重构值和上述目标像素点的预测值进行加权计算。基于本方案,能够在参考像素点的 重构
值不可用时,采用预设顺序寻找待处理图像块的左侧和上方的重构值可用的参考像 素点,使用该可用的参考像素点的重构值值更新目标像素点的预测值。
[0058]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述按照预设 顺序确定与待处理图像块的上边沿和左边沿相邻的像素点的可用性,直到获取预设个数 的可用的参考像素点,包括:按照从坐标(xn-1,yn+ntbh-1)至坐标(xn-1,yn-1), 接着从坐标(xn,yn-1)至坐标(xn+ntbw-1,yn-1)的顺序,获取可用的参考像素点。 基于本方案,能够获取可用的参考像素点的重构值。
[0059]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所有参考像 素点中至少有一个参考像素点可用时,若参考像素点(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)的重 构值。基于本方案,能够获取可用的参考像素点的重构值。
[0060]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若参考像素点 (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的重构值。基于本方案,能够获取可用的参考像素点 的重构值。
[0061]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若参考像素点 (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的重构值。基于本方 案,能够获取可用的参考像素点的重构值。
[0062]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若确定上述待 处理图像块的上边沿和左边沿相邻的像素点均不可用,将上述参考像素点的重构值设
置 为1<<(bitdepth-1),其中,bitdepth为参考像素点采样值的位深。基于本方案,能够 在参考像素点和新的参考像素点的重构值均不可用时,基于位深设置参考像素点的重构 值。
[0063]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个 或多个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,包括:当上 述参考像素点位于上述待处理图像块的上方时,对上述参考像素点的重构值和上述参考 像素点的左右相邻像素点的重构值进行加权计算;当上述参考像素点位于上述待处理图 像块的左方时,对上述参考像素点的重构值和上述参考像素点的上下相邻像素点的重构 值进行加权计算;采用该加权计算的结果更新上述参考像素点的重构值。基于本方案, 在对目标像素点进行滤波处理之前,通过对参考像素点的重构值进行滤波处理,能够进 一步提高编码效率,减小预测残差。
[0064]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述基于运 动信息对上述待处理图像块进行运动补偿之前,还包括:通过第一预设算法对上述运动 信息进行初始更新;对应的,上述基于上述运动信息对上述待处理图像块进行运动补偿, 包括:基于上述初始更新后的运动信息对上述待处理图像块进行运动补偿。基于本方案, 通过在对当前块进行运动补偿之前更新运动信息,并基于更新后的运动信息进行运动补 偿,能够减小预测残差。
[0065]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述获得上 述待处理图像块的预测块之后,还包括:通过第二预设算法对所述预测块进行预更新; 对应的,上述将一个或多个参考像素点的重构值和上述目标像素点的预测值进行加权计 算,包括:将上述一个或多个参考像素点的重构值和上述目标像素点的预更新后的预测 值进行加权计算。基于本方案,通过对当前块的预测块进行预更新,并根据与更新后的 预测值和参考像素点的重构值进行加权计算,能够减小预测残差。
[0066]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个 或多个参考像素点的重构值和上述目标像素点的预测值进行加权计算,以更新上述目标 像素点的预测值之后,还包括:通过第二预设算法对上述目标像素点的预测值进行更新。 基于本方案,能够将空域滤波处理后的目标像素点的预测值采用预设算法进行更新,减 小预测残差。
[0067]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个 或多个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,还包括:解 析上述码流,以获得上述待处理图像块的预测模式;确定该预测模式为融合模式(merge) 和/或帧间高级运动矢量预测模式(inter amvp);可以理解的,该帧间高级运动矢量预 测模式(inter amvp)也可称为帧间运动矢量预测模式(inter mvp)。基于本方案,能 够在滤波处理之前确定待处理图像块的预测模式。
[0068]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个 或多个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,还包括:解 析上述码流,以获得上述待处理图像块的更新判别标识信息;确定该更新判别标识信息 指示更新上述待处理图像块的预测块。基于本方案,能够通过解析码流获取待处理图像 块的更新判别标识信息,并确定更新待处理图像块的预测块。
[0069]
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述将一个 或多个参考像素点的重构值和上述目标像素点的预测值进行加权计算之前,还包括:获 取上述待处理图像块的预设的更新判别标识信息;确定该更新判别标识信息指示更新上 述待处理图像块的预测块。基于本方案,能够获取待处理图像块的更新判别标识信息, 并根据该更新判别标识信息确定更新待处理图像块的预测块。
[0070]
本申请实施例的第二方面,提供一种帧间预测装置,包括:解析模块,用于解析码 流,以获得待处理图像块的运动信息;补偿模块,用于基于该运动信息对上述待处理图 像块进行运动补偿,以获得该待处理图像块的预测块,该待处理图像块的预测块中包括 目标像素点的预测值;计算模块,用于将一个或多个参考像素点的重构值和所述目标像 素点的预测值进行加权计算,以更新所述目标像素点的预测值,其中,该参考像素点与 上述目标像素点具有预设的空域位置关系。
[0071]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述一个或多 个参考像素点包括与上述目标像素点具有相同横坐标且具有预设纵坐标差的已重构像素 点,或者,与上述目标像素点具有相同纵坐标且具有预设横坐标差的已重构像素点。
[0072]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权计 算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如下 公式获得:
[0073][0074]
其中,上述目标像素点的坐标为(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为预设正整数。
[0075]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2=r1,或, w3+w4=r2,或,w5+w6+w7=r3,其中,r1,r2,r3分别为2的n次方,n为非负整数。
[0076]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0077][0078]
其中,上述目标像素点的坐标为(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为预设正整数。
[0079]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2+w3=s1, 或,w4+w5+w6=s2,或,w7+w8+w9+w10+w11=s3,其中,s1,s2,s3分别为2的n 次方,n为非负整数。
[0080]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0081][0082]
其中,上述目标像素点的坐标为(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为预设正整数。
[0083]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1+w2+w3=r, 其中,r为2的n次方,n为非负整数。
[0084]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0085][0086]
其中,上述目标像素点的坐标为(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为预设正整数。
[0087]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中, w1+w2+w3+w4+w5=s,其中,s为2的n次方,n为非负整数。
[0088]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述一个或多 个参考像素点包括以下像素点中的一个或多个:与上述目标像素点具有相同横坐标且与 上述待处理图像块的上边缘相邻接的已重构像素点;或者,与上述目标像素点具有相同 纵坐标且与上述待处理图像块的左边缘相邻接的已重构像素点;或者,上述待处理图像 块的右上角的已重构像素点;或者,上述待处理图像块的左下角的已重构像素点;或者, 上述待处理图像块的左上角的已重构像素点。
[0089]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0090]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2)
[0091]
其中,
[0092]
predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+ntbw*ntbh)>>(log2(ntbw)+log2(ntbh)+ 1),predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0093]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0094]
在第二方面的一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0095]
predq(xp,yp)=(w1*predp(xp,yp) +w2*predv(xp,yp) +w3*predh(xp,yp)+((w1+w2+w3)/2))/(w1+w2+w3)
[0096]
其中,
[0097]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh)+ntbh/2)>>log2(ntbh),
[0098]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1)+ntbw/2)>>log2(ntbw), 所述目标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为(0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2, w3为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0099]
在第二方面的一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0100]
predq(xp,yp)=(((w1*predp(xp,yp))<<(log2(ntbw)+log2(ntbh)+1)) +w2*predv(xp,yp) +w3*predh(xp,yp) +(((w1+w2+w3)/2)<<(log2(ntbw)+log2(ntbh)+1))) /(((w1+w2+w3)<<(log2(ntbw)+log2(ntbh)+1)))
[0101]
其中,
[0102]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0103]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0104]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0105]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp)
[0106]
+((w1+w2)/2))/(w1+w2),
[0107][0108]
其中,predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+1)>>1,
[0109]
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),
[0110]
上述目标像素点的坐标为(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 为上述待处理图像块的宽度和高度。
[0111]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,w1和w2的和 为2的n次方,其中,n为非负整数。
[0112]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模
块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0113]
其中, 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为钳位操作。
[0114]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体还用于根据上述目标像素点的更新前的预测值和上述参考像素点的重构值进行加权 计算,获取上述目标像素点的更新后的预测值,该目标像素点的更新后的预测值通过如 下公式获得:
[0115]
其中, 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为钳位操作。
[0116]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 还用于当上述参考像素点的重构值不可用时,按照预设顺序确定与所述待处理图像块的 上边沿和左边沿相邻的像素点的可用性,直到获取预设个数的可用的参考像素点;将该 可用的参考像素点的重构值和上述目标像素点的预测值进行加权计算。
[0117]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块, 具体用于按照从坐标(xn-1,yn+ntbh-1)至坐标(xn-1,yn-1),接着从坐标(xn, yn-1)至坐标(xn+ntbw-1,yn-1)的顺序,获取可用的参考像素点的重构值。
[0118]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,当所有参考像 素点中至少有一个参考像素点可用时,若参考像素点(xn-1,yn+ntbh-1)的重构值不 可用,按照上述预设顺序从坐标(xn-1,yn+ntbh-1)至坐标(xn-1,yn-1),接着从 坐标(xn,yn-1)至坐标(xn+ntbw-1,yn-1)的顺序寻找可用的像素点,一旦找到可 用的像素点,搜索就会
将上述一个或多个参考像素点的重构值和上述目标像素点的预更新后的预测值进行加权 计算。
[0125]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块 还用于:通过第二预设算法对上述目标像素点的预测值进行更新。
[0126]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述解析模块 还用于:解析上述码流,以获得上述待处理图像块的预测模式;确定上述预测模式为融 合模式(merge)和/或帧间高级运动矢量预测模式(inter amvp);可以理解的,该帧 间高级运动矢量预测模式(inter amvp)也可称为帧间运动矢量预测模式(inter mvp)。
[0127]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述解析模块 还用于:解析上述码流,以获得上述待处理图像块的更新判别标识信息;确定上述更新 判别标识信息指示更新上述待处理图像块的预测块。
[0128]
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述计算模块 还用于:获取上述待处理图像块的预设的更新判别标识信息;确定该更新判别标识信息 指示更新上述待处理图像块的预测块。
[0129]
本申请的第三方面,提供了提供了一种运动信息的预测设备,包括:处理器和耦合 于所述处理器的存储器;所述处理器用于执行上述第一方面所述的方法。
[0130]
本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储 有指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法。
[0131]
在本申请的第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上 运行时,使得计算机执行上述第一方面所述的方法。
[0132]
应理解,本申请的第二至五方面与本申请的第一方面的技术方案一致,各方面及对 应的可实施的设计方式所取得的有益效果相似,不再赘述。
附图说明
[0133]
图1为示例性的可通过配置以用于本申请实施例的一种视频译码系统框图;
[0134]
图2为示例性的可通过配置以用于本申请实施例的一种视频编码器的系统框图;
[0135]
图3为示例性的可通过配置以用于本申请实施例的一种视频解码器的系统框图;
[0136]
图4为示例性的可通过配置以用于本申请实施例的一种帧间预测模块的框图;
[0137]
图5为示例性的一种合并预测模式的实施流程图;
[0138]
图6为示例性的一种高级运动矢量预测模式的实施流程图;
[0139]
图7为示例性的可通过配置以用于本申请实施例的一种由视频解码器执行的运动补 偿的实施流程图;
[0140]
图8为示例性的一种编码单元及与其关联的相邻位置图像块的示意图;
[0141]
图9为示例性的一种构建候选预测运动矢量列表的实施流程图;
[0142]
图10为示例性的一种将经过组合的候选运动矢量添加到合并模式候选预测运动矢 量列表的实施示意图;
[0143]
图11为示例性的一种将经过缩放的候选运动矢量添加到合并模式候选预测运动矢 量列表的实施示意图;
[0144]
图12为示例性的一种将零运动矢量添加到合并模式候选预测运动矢量列表的实施 示意图;
[0145]
图13为本申请实施例提供的一种帧间预测方法的示意性流程图;
[0146]
图14为本申请实施例提供的一种帧间预测方法的应用示意图一;
[0147]
图15为本申请实施例提供的一种帧间预测方法的应用示意图二;
[0148]
图16为本申请实施例提供的一种帧间预测方法的应用示意图三;
[0149]
图17为本申请实施例提供的一种帧间预测方法的应用示意图四;
[0150]
图18为本申请实施例提供的一种帧间预测装置的示意性框图;
[0151]
图19为本申请实施例提供的另一种帧间预测设备的示意性框图。
具体实施方式
[0152]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整 地描述。
[0153]
图1为本申请实施例中所描述的一种实例的视频译码系统的框图。如本文所使用,术 语“视频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码
”ꢀ
或“译码”可一般地指代视频编码或视频解码。视频译码系统的视频编码器100和视频解码 器200用于根据本申请提出的多种新的帧间预测模式中的任一种所描述的各种方法实例 来预测当前经译码图像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量 最大程度上接近使用运动估算方法得到的运动矢量,从而编码时无需传送运动矢量差值, 从而进一步的改善编解码性能。
[0154]
如图1中所示,视频译码系统包含源装置10和目的地装置20。源装置10产生经编码视 频数据。因此,源装置10可被称为视频编码装置。目的地装置20可对由源装置10所产生 的经编码的视频数据进行解码。因此,目的地装置20可被称为视频解码装置。源装置10、 目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处 理器的存储器。所述存储器可包含但不限于ram、rom、eeprom、快闪存储器或可用 于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如 本文所描述。
[0155]
源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、 笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电 话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机 或其类似者。
[0156]
目的地装置20可经由链路30从源装置10接收经编码视频数据。链路30可包括能够将 经编码视频数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中, 链路30可包括使得源装置10能够实时将经编码视频数据直接发射到目的地装置20的一或 多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经 编码视频数据,且可将经调制的视频数据发射到目的地装置20。所述一或多个通信媒体 可包含无线和/或有线通信媒体,例如射频(radio frequency,rf)频谱或一或多个物 理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例 如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由 器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
[0157]
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通
过 输入接口240从存储装置40存取经编码数据。存储装置40可包含多种分布式或本地存取的 数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字通用光盘(digital video disc, dvd)、只读光盘(compact disc read-only memory,cd-rom)、快闪存储器、易失性 或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
[0158]
在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码 视频的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存 储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的 视频数据发射到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于 网站)、文件传输协议(file transfer protocol,ftp)服务器、网络附接式存储(networkattached storage,nas)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接 (包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,无线保真 (wireless-fidelity,wi-fi)连接)、有线连接(例如,数字用户线路(digital subscriber line, dsl)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的 两者的组合。经编码视频数据从存储装置40的传输可为流式传输、下载传输或两者的组 合。
[0159]
本申请的运动矢量预测技术可应用于视频编解码以支持多种多媒体应用,例如空中 电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于 存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码, 或其它应用。在一些实例中,视频译码系统可用于支持单向或双向视频传输以支持例如 视频流式传输、视频回放、视频广播和/或视频电话等应用。
[0160]
图1中所说明的视频译码系统仅为实例,并且本申请的技术可适用于未必包含编码装 置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在 其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据 进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据 进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索 数据且解码数据的装置执行编码和解码。
[0161]
在图1的实例中,源装置10包含视频源120、视频编码器100和输出接口140。在一些 实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包 括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频 内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统, 或视频数据的此些来源的组合。
[0162]
视频编码器100可对来自视频源120的视频数据进行编码。在一些实例中,源装置10 经由输出接口140将经编码视频数据直接发射到目的地装置20。在其它实例中,经编码视 频数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
[0163]
在图1的实例中,目的地装置20包含输入接口240、视频解码器200和显示装置220。 在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和 /或从存储装置40接收经编码视频数据。显示装置220可与目的地装置20集成或可在目的 地装置20外部。一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种 显示装置,例如,液晶显示器(liquid crystal display,lcd)、等离子显示器、有机发光 二极管
点包括解码节点,例如,经解码视频块。与经解码码流相关联的语法数据可定义树块可 分裂的最大次数,且也可定义解码节点的最小大小。
[0170]
编码单元包含解码节点及预测块(prediction unit,pu)以及与解码节点相关联的变 换单元(transfbrm unit,tu)。cu的大小对应于解码节点的大小且形状必须为正方形。 cu的大小的范围可为8
×
8像素直到最大64
×
64像素或更大的树块的大小。每一cu可含有 一个或多个pu及一个或多个tu。例如,与cu相关联的语法数据可描述将cu分割成一个 或多个pu的情形。分割模式在cu是被跳过或经直接模式编码、帧内预测模式编码或帧间 预测模式编码的情形之间可为不同的。pu可经分割成形状为非正方形。例如,与cu相关 联的语法数据也可描述根据四叉树将cu分割成一个或多个tu的情形。tu的形状可为正 方形或非正方形。
[0171]
hevc标准允许根据tu进行变换,tu对于不同cu来说可为不同的。tu通常基于针 对经分割lcu定义的给定cu内的pu的大小而设定大小,但情况可能并非总是如此。tu 的大小通常与pu相同或小于pu。在一些可行的实施方式中,可使用称作“残余四叉树
”ꢀ
(residual qualtree,rqt)的四叉树结构将对应于cu的残余样本再分成较小单元。rqt 的叶节点可被称作tu。可变换与tu相关联的像素差值以产生变换系数,变换系数可被量 化。
[0172]
一般来说,pu包含与预测过程有关的数据。例如,在pu经帧内模式编码时,pu可 包含描述pu的帧内预测模式的数据。作为另一可行的实施方式,在pu经帧间模式编码时, pu可包含界定pu的运动矢量的数据。例如,界定pu的运动矢量的数据可描述运动矢量 的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精确度或 八分之一像素精确度)、运动矢量所指向的参考图像,和/或运动矢量的参考图像列表(例 如,列表0、列表1或列表c)。
[0173]
一般来说,tu使用变换及量化过程。具有一个或多个pu的给定cu也可包含一个或 多个tu。在预测之后,视频编码器100可计算对应于pu的残余值。残余值包括像素差值, 像素差值可变换成变换系数、经量化且使用tu扫描以产生串行化变换系数以用于熵解码。 本申请通常使用术语“视频块”来指cu的解码节点。在一些特定应用中,本申请也可使用 术语“视频块”来指包含解码节点以及pu及tu的树块,例如,lcu或cu。
[0174]
视频序列通常包含一系列视频帧或图像。图像群组(group of picture,gop)示例性 地包括一系列、一个或多个视频图像。gop可在gop的头信息中、图像中的一者或多者 的头信息中或在别处包含语法数据,语法数据描述包含于gop中的图像的数目。图像的 每一条带可包含描述相应图像的编码模式的条带语法数据。视频编码器100通常对个别视 频条带内的视频块进行操作以便编码视频数据。视频块可对应于cu内的解码节点。视频 块可具有固定或变化的大小,且可根据指定解码标准而在大小上不同。
[0175]
作为一种可行的实施方式,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在底部。
[0176]
在本申请中,“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。
[0177]
在使用cu的pu的帧内预测性或帧间预测性解码之后,视频编码器100可计算cu的 tu的残余数据。pu可包括空间域(也称作像素域)中的像素数据,且tu可包括在将变 换(例如,离散余弦变换(discrete cosine transform,dct)、整数变换、小波变换或概 念上类似的变换)应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编 码图像的像素与对应于pu的预测值之间的像素差。视频编码器100可形成包含cu的残余 数据的tu,且接着变换tu以产生cu的变换系数。
[0178]
在任何变换以产生变换系数之后,视频编码器100可执行变换系数的量化。量化示例 性地指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。 量化过程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降 值舍位到m位值,其中n大于m。
[0179]
jem模型对视频图像的编码结构进行了进一步的改进,具体的,被称为“四叉树结合 二叉树”(qtbt)的块编码结构被引入进来。qtbt结构摒弃了hevc中的cu,pu,tu 等概念,支持更灵活的cu划分形状,一个cu可以正方形,也可以是长方形。一个ctu 首先进行四叉树划分,该四叉树的叶节点进一步进行二叉树划分。同时,在二叉树划分 中存在两种划分模式,对称水平分割和对称竖直分割。二叉树的叶节点被称为cu,jem 的cu在预测和变换的过程中都不可以被进一步划分,也就是说jem的cu,pu,tu具有 相同的块大小。在现阶段的jem中,ctu的最大尺寸为256
×
256亮度像素。
[0180]
在一些可行的实施方式中,视频编码器100可利用预定义扫描次序来扫描经量化变换 系数以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器100可执行 自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器100可根据上下 文自适应性可变长度解码(context-based adaptive variable-length code,cavlc)、上下 文自适应性二进制算术解码(context-based adaptive binary arithmetic coding,cabac)、 基于语法的上下文自适应性二进制算术解码(syntax-based adaptive binary arithmeticcoding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)解码 或其他熵解码方法来熵解码一维向量。视频编码器100也可熵编码与经编码视频数据相关 联的语法元素以供视频解码器200用于解码视频数据。
[0181]
为了执行cabac,视频编码器100可将上下文模型内的上下文指派给待传输的符号。 上下文可与符号的相邻值是否为非零有关。为了执行cavlc,视频编码器100可选择待 传输的符号的可变长度码。可变长度解码(variable-length code,vlc)中的码字可经构 建以使得相对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以 这个方式,vlc的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率 的目的。基于指派给符号的上下文可以确定cabac中的概率。
[0182]
在本申请实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。如
像块。可基于由选定候选预测运动矢量指示的运动信息确定pu的运动信息。举例来说, 在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。在 amvp模式中,pu的运动信息可基于pu的运动矢量差和由选定候选预测运动矢量指示的 运动信息确定。视频编码器可基于cu的pu的预测性图像块和用于cu的原始图像块产生 用于cu的一或多个残余图像块。视频编码器可接着编码一或多个残余图像块且在码流中 输出一或多个残余图像块。
[0186]
码流可包括识别pu的候选预测运动矢量列表中的选定候选预测运动矢量的数据。视 频解码器可基于由pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动 信息确定pu的运动信息。视频解码器可基于pu的运动信息识别用于pu的一或多个参考 块。在识别pu的一或多个参考块之后,视频解码器可基于pu的一或多个参考块产生用于 pu的预测性图像块。视频解码器可基于用于cu的pu的预测性图像块和用于cu的一或多 个残余图像块来重构用于cu的图像块。
[0187]
为了易于解释,本申请可将位置或图像块描述为与cu或pu具有各种空间关系。此描 述可解释为是指位置或图像块和与cu或pu相关联的图像块具有各种空间关系。此外,本 申请可将视频解码器当前在解码的pu称作当前pu,也称为当前待处理图像块。本申请可 将视频解码器当前在解码的cu称作当前cu。本申请可将视频解码器当前在解码的图像称 作当前图像。应理解,本申请同时适用于pu和cu具有相同尺寸,或者pu即为cu的情况, 统一使用pu来表示。
[0188]
如前文简短地描述,视频编码器100可使用帧间预测以产生用于cu的pu的预测性图 像块和运动信息。在许多例子中,给定pu的运动信息可能与一或多个附近pu(即,其图 像块在空间上或时间上在给定pu的图像块附近的pu)的运动信息相同或类似。因为附近 pu经常具有类似运动信息,所以视频编码器100可参考附近pu的运动信息来编码给定pu 的运动信息。参考附近pu的运动信息来编码给定pu的运动信息可减少码流中指示给定 pu的运动信息所需要的编码比特的数目。
[0189]
视频编码器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的运动信息。
[0190]
为了使用合并模式或amvp模式来用信号通知解码端给定pu的运动信息,视频编码 器100可产生用于给定pu的候选预测运动矢量列表。候选预测运动矢量列表可包括一或 多个候选预测运动矢量。用于给定pu的候选预测运动矢量列表中的候选预测运动矢量中 的每一者可指定运动信息。由每一候选预测运动矢量指示的运动信息可包括运动矢量、 参考图像索引和预测方向标识。候选预测运动矢量列表中的候选预测运动矢量可包括“原 始”候选预测运动矢量,其中每一者指示不同于给定pu的pu内的指定候选预测运动矢量 位置
中的一者的运动信息。
[0191]
在产生用于pu的候选预测运动矢量列表之后,视频编码器100可从用于pu的候选预 测运动矢量列表选择候选预测运动矢量中的一者。举例来说,视频编码器可比较每一候 选预测运动矢量与正被解码的pu且可选择具有所要码率-失真代价的候选预测运动矢量。 视频编码器100可输出用于pu的候选预测运动矢量索引。候选预测运动矢量索引可识别 选定候选预测运动矢量在候选预测运动矢量列表中的位置。
[0192]
此外,视频编码器100可基于由pu的运动信息指示的参考块产生用于pu的预测性图 像块。可基于由用于pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动 信息确定pu的运动信息。举例来说,在合并模式中,pu的运动信息可与由选定候选预测 运动矢量指示的运动信息相同。在amvp模式中,可基于用于pu的运动矢量差和由选定 候选预测运动矢量指示的运动信息确定pu的运动信息。视频编码器100可如前文所描述 处理用于pu的预测性图像块。
[0193]
当视频解码器200接收到码流时,视频解码器200可产生用于cu的pu中的每一者的候 选预测运动矢量列表。由视频解码器200针对pu产生的候选预测运动矢量列表可与由视 频编码器100针对pu产生的候选预测运动矢量列表相同。从码流中解析得到的语法元素 可指示在pu的候选预测运动矢量列表中选定候选预测运动矢量的位置。在产生用于pu的 候选预测运动矢量列表之后,视频解码器200可基于由pu的运动信息指示的一或多个参 考块产生用于pu的预测性图像块。视频解码器200可基于由用于pu的候选预测运动矢量 列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频解码器200可 基于用于pu的预测性图像块和用于cu的残余图像块重构用于cu的图像块。
[0194]
应理解,在一种可行的实施方式中,在解码端,候选预测运动矢量列表的构建与从 码流中解析选定候选预测运动矢量在候选预测运动矢量列表中的位置是相互独立,可以 任意先后或者并行进行的。
[0195]
在另一种可行的实施方式中,在解码端,首先从码流中解析选定候选预测运动矢量 在候选预测运动矢量列表中的位置,根据解析出来的位置构建候选预测运动矢量列表, 在该实施方式中,不需要构建全部的候选预测运动矢量列表,只需要构建到该解析出来 的位置处的候选预测运动矢量列表,即能够确定该位置出的候选预测运动矢量即可。举 例来说,当解析码流得出选定的候选预测运动矢量为候选预测运动矢量列表中索引为3 的候选预测运动矢量时,仅需要构建从索引为0到索引为3的候选预测运动矢量列表,即 可确定索引为3的候选预测运动矢量,可以达到减小复杂度,提高解码效率的技术效果。
[0196]
图2为本申请实施例中所描述的一种实例的视频编码器100的框图。视频编码器100 用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码 视频数据的视频实体的实例,例如媒体感知网络元件(mane)或拼接/编辑装置。在一 些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41 和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描 述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图 1的存储装置40的实例。
[0197]
在图2的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图 像缓冲器(decoded picture buffer,dpb)107、求和器112、变换器101、量化器102和熵 编
语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下, 帧间预测器110利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块, 从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器110执行运动估计和运 动补偿过程。
[0203]
具体的,在为当前图像块选择帧间预测模式之后,帧间预测器110可将指示当前图像 块的所选帧间预测模式的信息提供到熵编码器103,以便于熵编码器103编码指示所选帧 间预测模式的信息。
[0204]
帧内预测器109可对当前图像块执行帧内预测。明确地说,帧内预测器109可确定用 来编码当前块的帧内预测模式。举例来说,帧内预测器109可使用码率-失真分析来计算 各种待测试的帧内预测模式的码率-失真值,并从待测试模式当中选择具有最佳码率-失真 特性的帧内预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测器 109可将指示当前图像块的所选帧内预测模式的信息提供到熵编码器103,以便熵编码器 103编码指示所选帧内预测模式的信息。
[0205]
在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编 码器100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器112表示 执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个tu中, 并应用于变换器101。变换器101使用例如离散余弦变换(dct)或概念上类似的变换等 变换将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换 到变换域,例如频域。
[0206]
变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一 步减小位码率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的 扫描。或者,熵编码器103可执行扫描。
[0207]
在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103 可执行上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、 基于语法的上下文自适应二进制算术编码(sbac)、概率区间分割熵(pipe)编码或另 一熵编码方法或技术。在由熵编码器103熵编码之后,可将经编码码流发射到视频解码器 200,或经存档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前 图像块的语法元素进行熵编码。
[0208]
反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构所述残差块, 例如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器 110或帧内预测器109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经 重构图像块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为 参考块存储在经解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧 或图像中的块进行帧间预测。
[0209]
应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某 些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处 理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码 器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变 换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而 不需
要经滤波器单元106处理;或者,视频编码器100中量化器102和反量化器104可以合 并在一起。
[0210]
图3为本申请实施例中所描述的一种实例的视频解码器200的框图。在图3的实例中, 视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和 器211、滤波器单元206以及dpb 207。预测处理单元208可以包括帧间预测器210和帧内预 测器209。在一些实例中,视频解码器200可执行大体上与相对于来自图2的视频编码器100 描述的编码过程互逆的解码过程。
[0211]
在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块 和相关联的语法元素的经编码视频码流。视频解码器200可从网络实体42接收视频数据, 可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存 储器可存储待由视频解码器200的组件解码的视频数据,例如经编码视频码流。存储在视 频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数 据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作 为用于存储来自经编码视频码流的经编码视频数据的经解码图像缓冲器(cpb)。因此, 尽管在图3中没有示意出视频数据存储器,但视频数据存储器和dpb207可以是同一个的 存储器,也可以是单独设置的存储器。视频数据存储器和dpb207可由多种存储器装置中 的任一者形成,例如:包含同步dram(sdram)的动态随机存取存储器(dram)、 磁阻式ram(mram)、电阻式ram(rram),或其它类型的存储器装置。在各种 实例中,视频数据存储器可与视频解码器200的其它组件一起集成在芯片上,或相对于那 些组件设置在芯片外。
[0212]
网络实体42可例如为服务器、mane、视频编辑器/剪接器,或用于实施上文所描述 的技术中的一或多者的其它此装置。网络实体42可包括或可不包括视频编码器,例如视 频编码器100。在网络实体42将经编码视频码流发送到视频解码器200之前,网络实体42 可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码 器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括 视频解码器200的相同装置执行。在一些情况下,网络实体42可为图1的存储装置40的实 例。
[0213]
视频解码器200的熵解码器203对码流进行熵解码以产生经量化的系数和一些语法元 素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带 层级和/或图像块层级处的语法元素。
[0214]
当视频条带被解码为经帧内解码(i)条带时,预测处理单元208的帧内预测器209可 基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前 视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,b或p)条带时,预 测处理单元208的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当 前视频条带的当前图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对所述 当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测器210可确定是否对当前 视频条带的当前图像块采用新的帧间预测模式进行预测,如果语法元素指示采用新的帧 间预测模式来对当前图像块进行预测,基于新的帧间预测模式(例如通过语法元素指定 的一种新的帧间预测模式或默认的一种新的帧间预测模式)预测当前视频条带的当前图 像块或当前图像块的子块的运动信息,从而通过运动补偿过程使用预测出的当前图像块 或当前图像块的子块的运动信息来获取或生成当前图像块或当前图像块的子块的预测块。 这里的
运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限 于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间 预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器200 可基于存储在dpb207中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的 参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频 编码器100发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语法元素,或 者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪一种新 的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器210 执行运动补偿过程。
[0215]
反量化器204将在码流中提供且由熵解码器203解码的经量化变换系数逆量化,即去 量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量 化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆 变换应用于变换系数,例如逆dct、逆整数变换或概念上类似的逆变换过程,以便产生 像素域中的残差块。
[0216]
在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码 器200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得 到重建的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可 使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式 改进视频质量。滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应 环路滤波器(alf)以及样本自适应偏移(sao)滤波器。尽管在图3中将滤波器单元206 示出为环路内滤波器,但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。 在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频 流输出。并且,还可以将给定帧或图像中的经解码图像块存储在dpb 207中,经dpb 207 存储用于后续运动补偿的参考图像。经dpb 207可为存储器的一部分,其还可以存储经解 码视频,以供稍后在显示装置(例如图1的显示装置220)上呈现,或可与此类存储器 分开。
[0217]
应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频码流。例如, 视频解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块 或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经 反量化器204和反变换器205处理。
[0218]
如前文所注明,本申请的技术示例性地涉及帧间解码。应理解,本申请的技术可通 过本申请中所描述的视频解码器中的任一者进行,视频解码器包含(例如)如关于图1 到3所展示及描述的视频编码器100及视频解码器200。即,在一种可行的实施方式中,关 于图2所描述的帧间预测器110可在视频数据的块的编码期间在执行帧间预测时执行下文 中所描述的特定技术。在另一可行的实施方式中,关于图3所描述的帧间预测器210可在 视频数据的块的解码期间在执行帧间预测时执行下文中所描述的特定技术。因此,对一 般性“视频编码器”或“视频解码器”的引用可包含视频编码器100、视频解码器200或另一 视频编码或编码单元。
[0219]
应当理解的是,本申请的编码器100和解码器200中,针对某个环节的处理结果可 以经过进一步处理后,输出到下一个环节,例如,在插值滤波、运动矢量推导或环路滤 波等环节之后,对相应环节的处理结果进一步进行clip或移位shift等操作。
[0220]
例如,对运动矢量的取值范围进行约束,使其在一定的位宽内。假设允许的运动矢 量的位宽为bitdepth,则运动矢量的范围为-2^(bitdepth-1)~2^(bitdepth-1)-1,其中“^
”ꢀ
符号表示幂次方。如bitdepth为16,则取值范围为-32768~32767。如bitdepth为18,则 取值范围为-131072~131071。可以通过以下两种方式进行约束:
[0221]
方式1,将运动矢量溢出的高位去除:
[0222]
ux=(vx+2
bitdepth
)%2
bitdepth
[0223]
vx=(ux≥2
bitdepth-1
)?(ux-2
bitdepth
):ux
[0224]
uy=(vy+2
bitdepth
)%2
bitdepth
[0225]
vy=(uy≥2
bitdepth-1
)?(uy-2
bitdepth
):uy
[0226]
例如vx的值为-32769,通过以上公式得到的为32767。因为在计算机中,数值是以 二进制的补码形式存储的,-32769的二进制补码为1,0111,1111,1111,1111(17位),计 算机对于溢出的处理为丢弃高位,则vx的值为0111,1111,1111,1111,则为32767,与通 过公式处理得到的结果一致。
[0227]
方法2,将运动矢量进行clipping,如以下公式所示:
[0228]
vx=clip3(-2
bitdepth-1
,2
bitdepth-1-1,vx)
[0229]
vy=clip3(-2
bitdepth-1
,2
bitdepth-1-1,vy)
[0230]
其中clip3的定义为,表示将z的值钳位到区间[x,y]之间:
[0231][0232]
图4为本申请实施例中帧间预测模块121的一种示意性框图。帧间预测模块121,示例 性的,可以包括运动估计单元和运动补偿单元。在不同的视频压缩编解码标准中,pu和 cu的关系各有不同。帧间预测模块121可根据多个分割模式将当前cu分割为pu。举例来 说,帧间预测模块121可根据2n
×
2n、2n
×
n、n
×
2n和n
×
n分割模式将当前cu分割为pu。 在其他实施例中,当前cu即为当前pu,不作限定。
[0233]
帧间预测模块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的预测性图像块。
[0234]
在帧间预测模块121使用amvp模式用信号通知解码端pu的运动信息的一些可行的 实施方式中,帧间预测模块121可产生用于pu的候选预测运动矢量列表。候选预测运动 矢量列表可包括一个或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一 个或多个额外候选预测运动矢量。在产生用于pu的候选预测运动矢量列表之后,帧间预 测模块121可从候选预测运动矢量列表选择候选预测运动矢量且产生用于pu的运动矢量 差(mvd)。用于pu的mvd可指示由选定候选预测运动矢量指示的运动矢量与使用ime 和fme针
根据2n
×
2n分割模式分割cu而产生的pu执行ime操作、fme操作和合并操作。pu模式决 策模块186a可选择由ime模块180a、fme模块182a和合并模块184a产生的预测性图像块 中的一者。
[0242]
ime模块180b、fme模块182b和合并模块184b可对通过根据n
×
2n分割模式分割cu 而产生的左pu执行ime操作、fme操作和合并操作。pu模式决策模块186b可选择由ime 模块180b、fme模块182b和合并模块184b产生的预测性图像块中的一者。
[0243]
ime模块180c、fme模块182c和合并模块184c可对通过根据n
×
2n分割模式分割cu 而产生的右pu执行ime操作、fme操作和合并操作。pu模式决策模块186c可选择由ime 模块180c、fme模块182c和合并模块184c产生的预测性图像块中的一者。
[0244]
ime模块180n、fme模块182n和合并模块184可对通过根据n
×
n分割模式分割cu而 产生的右下pu执行ime操作、fme操作和合并操作。pu模式决策模块186n可选择由ime 模块180n、fme模块182n和合并模块184n产生的预测性图像块中的一者。
[0245]
pu模式决策模块186可基于多个可能预测性图像块的码率-失真代价分析选择预测性 图像块,且选择针对给定解码情形提供最佳码率-失真代价的预测性图像块。示例性的, 对于带宽受限的应用,pu模式决策模块186可偏向选择增加压缩比的预测性图像块,而 对于其它应用,pu模式决策模块186可偏向选择增加经重建视频质量的预测性图像块。 在pu模式决策模块186选择用于当前cu的pu的预测性图像块之后,cu模式决策模块188 选择用于当前cu的分割模式且输出属于选定分割模式的pu的预测性图像块和运动信息。
[0246]
图5为本申请实施例中合并模式的一种实施流程图。视频编码器(例如视频编码器20) 可执行合并操作201。该合并操作201可以包括:s202、产生用于当前预测单元的候选者 列表。s204、产生与候选者列表中的候选者相关联的预测性视频块。s206、从候选者列 表选择候选者。s208、输出候选者。其中,候选者是指候选运动矢量或者候选运动信息。
[0247]
在其它可行的实施方式中,视频编码器可执行不同于合并操作201的合并操作。举例 来说,在其它可行的实施方式中,视频编码器可执行合并操作,其中视频编码器执行比 合并操作201多、少的步骤或与合并操作201不同的步骤。在其它可行的实施方式中,视 频编码器可以不同次序或并行地执行合并操作201的步骤。编码器还可对以跳跃(skip) 模式编码的pu执行合并操作201。
[0248]
在视频编码器开始合并操作201之后,视频编码器可产生用于当前pu的候选预测运 动矢量列表(s202)。视频编码器可以各种方式产生用于当前pu的候选预测运动矢量列 表。举例来说,视频编码器可根据下文关于图8到图12描述的实例技术中的一者产生用于 当前pu的候选预测运动矢量列表。
[0249]
如前文所述,用于当前pu的候选预测运动矢量列表可包括时间候选预测运动矢量。 时间候选预测运动矢量可指示时域对应(co-located)的pu的运动信息。co-located的pu 可在空间上与当前pu处于图像帧中的同一个位置,但在参考图像而非当前图像中。本申 请可将包括时域对应的pu的参考图像称作相关参考图像。本申请可将相关参考图像的参 考图像索引称作相关参考图像索引。如前文所描述,当前图像可与一个或多个参考图像 列表(例如,列表0、列表1等)相关联。参考图像索引可通过指示在参考图像某一个参 考图像列表中的位置来指示参考图像。在一些可行的实施方式中,当前图像可与组合参 考图像列表相关联。
[0250]
在一些视频编码器中,相关参考图像索引为涵盖与当前pu相关联的参考索引源位置 的pu的参考图像索引。在这些视频编码器中,与当前pu相关联的参考索引源位置邻接于 当前pu左方或邻接于当前pu上方。在本申请中,如果与pu相关联的图像块包括特定位 置,则pu可“涵盖”所述特定位置。在这些视频编码器中,如果参考索引源位置不可用, 则视频编码器可使用零的参考图像索引。
[0251]
然而,可存在以下例子:与当前pu相关联的参考索引源位置在当前cu内。在这些例 子中,如果pu在当前cu上方或左方,则涵盖与当前pu相关联的参考索引源位置的pu可 被视为可用。然而,视频编码器可需要存取当前cu的另一pu的运动信息以便确定含有 co-located pu的参考图像。因此,这些视频编码器可使用属于当前cu的pu的运动信息(即, 参考图像索引)以产生用于当前pu的时间候选预测运动矢量。换句话说,这些视频编码 器可使用属于当前cu的pu的运动信息产生时间候选预测运动矢量。因此,视频编码器可 能不能并行地产生用于当前pu和涵盖与当前pu相关联的参考索引源位置的pu的候选预 测运动矢量列表。
[0252]
根据本申请的技术,视频编码器可在不参考任何其它pu的参考图像索引的情况下显 式地设定相关参考图像索引。此可使得视频编码器能够并行地产生用于当前pu和当前cu 的其它pu的候选预测运动矢量列表。因为视频编码器显式地设定相关参考图像索引,所 以相关参考图像索引不基于当前cu的任何其它pu的运动信息。在视频编码器显式地设定 相关参考图像索引的一些可行的实施方式中,视频编码器可始终将相关参考图像索引设 定为固定的预定义预设参考图像索引(例如0)。以此方式,视频编码器可基于由预设参 考图像索引指示的参考帧中的co-located pu的运动信息产生时间候选预测运动矢量,且可 将时间候选预测运动矢量包括于当前cu的候选预测运动矢量列表中。
[0253]
在视频编码器显式地设定相关参考图像索引的可行的实施方式中,视频编码器可显 式地在语法结构(例如图像标头、条带标头、aps或另一语法结构)中用信号通知相关 参考图像索引。在此可行的实施方式中,视频编码器可用信号通知解码端用于每一lcu (即ctu)、cu、pu、tu或其它类型的子块的相关参考图像索引。举例来说,视频编 码器可用信号通知:用于cu的每一pu的相关参考图像索引等于“1”。
[0254]
在一些可行的实施方式中,相关参考图像索引可经隐式地而非显式地设定。在这些 可行的实施方式中,视频编码器可使用由涵盖当前cu外部的位置的pu的参考图像索引指 示的参考图像中的pu的运动信息产生用于当前cu的pu的候选预测运动矢量列表中的每 一时间候选预测运动矢量,即使这些位置并不严格地邻近当前pu。
[0255]
在产生用于当前pu的候选预测运动矢量列表之后,视频编码器可产生与候选预测运 动矢量列表中的候选预测运动矢量相关联的预测性图像块(s204)。视频编码器可通过 基于所指示候选预测运动矢量的运动信息确定当前pu的运动信息和接着基于由当前pu 的运动信息指示的一个或多个参考块产生预测性图像块来产生与候选预测运动矢量相关 联的预测性图像块。视频编码器可接着从候选预测运动矢量列表选择候选预测运动矢量 中的一者(s206)。视频编码器可以各种方式选择候选预测运动矢量。举例来说,视频 编码器可基于对与候选预测运动矢量相关联的预测性图像块的每一者的码率-失真代价 分析来选择候选预测运动矢量中的一者。
[0256]
在选择候选预测运动矢量之后,视频编码器可输出候选预测运动矢量索引
(s208)。 候选预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。 在一些可行的实施方式中,候选预测运动矢量索引可表示为“merge_idx”。
[0257]
图6为本申请实施例中高级运动矢量预测(amvp)模式的一种实施流程图。视频编 码器(例如视频编码器20)可执行amvp操作210。该amvp操作210可以包括:s211、 产生用于当前预测单元的一个或多个运动向量。s212、产生用于当前预测单元的预测性 视频块。s213、产生用于当前预测单元的候选者列表。s214、产生运动向量差。s215从 候选者列表选择候选者。s216、输出参考图片索引、候选者索引,和用于选定候选者的 运动向量差。其中,候选者是指候选运动矢量或者候选运动信息。
[0258]
在视频编码器开始amvp操作210之后,视频编码器可产生用于当前pu的一个或多个 运动矢量(s211)。视频编码器可执行整数运动估计和分数运动估计以产生用于当前pu 的运动矢量。如前文所描述,当前图像可与两个参考图像列表(列表0和列表1)相关联。 如果当前pu经单向预测,则视频编码器可产生用于当前pu的列表0运动矢量或列表1运动 矢量。列表0运动矢量可指示当前pu的图像块与列表0中的参考图像中的参考块之间的空 间位移。列表1运动矢量可指示当前pu的图像块与列表1中的参考图像中的参考块之间的 空间位移。如果当前pu经双向预测,则视频编码器可产生用于当前pu的列表0运动矢量 和列表1运动矢量。
[0259]
在产生用于当前pu的一个或多个运动矢量之后,视频编码器可产生用于当前pu的预 测性图像块(s212)。视频编码器可基于由用于当前pu的一个或多个运动矢量指示的一 个或多个参考块产生用于当前pu的预测性图像块。
[0260]
另外,视频编码器可产生用于当前pu的候选预测运动矢量列表(s213)。视频解码 器可以各种方式产生用于当前pu的候选预测运动矢量列表。举例来说,视频编码器可根 据下文关于图8到图12描述的可行的实施方式中的一个或多个产生用于当前pu的候选预 测运动矢量列表。在一些可行的实施方式中,当视频编码器在amvp操作210中产生候选 预测运动矢量列表时,候选预测运动矢量列表可限于两个候选预测运动矢量。相比而言, 当视频编码器在合并操作中产生候选预测运动矢量列表时,候选预测运动矢量列表可包 括更多候选预测运动矢量(例如,五个候选预测运动矢量)。
[0261]
在产生用于当前pu的候选预测运动矢量列表之后,视频编码器可产生用于候选预测 运动矢量列表中的每一候选预测运动矢量的一个或多个运动矢量差(mvd)(s214)。 视频编码器可通过确定由候选预测运动矢量指示的运动矢量与当前pu的对应运动矢量 之间的差来产生用于候选预测运动矢量的运动矢量差。
[0262]
如果当前pu经单向预测,则视频编码器可产生用于每一候选预测运动矢量的单一 mvd。如果当前pu经双向预测,则视频编码器可产生用于每一候选预测运动矢量的两个mvd。第一mvd可指示候选预测运动矢量的运动矢量与当前pu的列表0运动矢量之间的 差。第二mvd可指示候选预测运动矢量的运动矢量与当前pu的列表1运动矢量之间的差。
[0263]
视频编码器可从候选预测运动矢量列表选择候选预测运动矢量中的一个或多个 (s215)。视频编码器可以各种方式选择一个或多个候选预测运动矢量。举例来说,视 频编码器可选择具有最小误差地匹配待编码的运动矢量的相关联运动矢量的候选预测运 动矢量,此可减少表示用于候选预测运动矢量的运动矢量差所需的位数目。
[0264]
在选择一个或多个候选预测运动矢量之后,视频编码器可输出用于当前pu的一个
或 多个参考图像索引、一个或多个候选预测运动矢量索引,和用于一个或多个选定候选预 测运动矢量的一个或多个运动矢量差(s216)。
[0265]
在当前图像与两个参考图像列表(列表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。
[0266]
在当前图像与两个参考图像列表(列表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。
[0267]
图7为本申请实施例中由视频解码器(例如视频解码器30)执行的运动补偿的一种实 施流程图。
[0268]
当视频解码器执行运动补偿操作221时,视频解码器可接收用于当前pu的选定候选 预测运动矢量的指示(s222)。举例来说,视频解码器可接收指示选定候选预测运动矢 量在当前pu的候选预测运动矢量列表内的位置的候选预测运动矢量索引。
[0269]
如果当前pu的运动信息是使用amvp模式进行编码且当前pu经双向预测,则视频解 码器可接收第一候选预测运动矢量索引和第二候选预测运动矢量索引。第一候选预测运 动矢量索引指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动 矢量列表中的位置。第二候选预测运动矢量索引指示用于当前pu的列表1运动矢量的选 定候选预测运动矢量在候选预测运动矢量列表中的位置。在一些可行的实施方式中,单 一语法元素可用以识别两个候选预测运动矢量索引。
[0270]
另外,视频解码器可产生用于当前pu的候选预测运动矢量列表(s224)。视频解码 器可以各种方式产生用于当前pu的此候选预测运动矢量列表。举例来说,视频解码器可 使用下文参看图8到图12描述的技术来产生用于当前pu的候选预测运动矢量列表。当视 频解码器产生用于候选预测运动矢量列表的时间候选预测运动矢量时,视频解码器可显 式地或隐式地设定识别包括co-located pu的参考图像的参考图像索引,如前文关于图5所 描述。
[0271]
在产生用于当前pu的候选预测运动矢量列表之后,视频解码器可基于由用于当前pu 的候选预测运动矢量列表中的一个或多个选定候选预测运动矢量指示的运动信息确定当 前pu的运动信息(s225)。举例来说,如果当前pu的运动信息是使用合并模式而编码, 则当前pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。如果当前pu的 运动信息是使用amvp模式而编码,则视频解码器可使用由所述或所述选定候选预测运 动矢
量指示的一个或多个运动矢量和码流中指示的一个或多个mvd来重建当前pu的一 个或多个运动矢量。当前pu的参考图像索引和预测方向标识可与所述一个或多个选定候 选预测运动矢量的参考图像索引和预测方向标识相同。在确定当前pu的运动信息之后, 视频解码器可基于由当前pu的运动信息指示的一个或多个参考块产生用于当前pu的预 测性图像块(s226)。
[0272]
图8为本申请实施例中编码单元(cu)及与其关联的相邻位置图像块的一种示例性 示意图,说明cu250和与cu250相关联的示意性的候选预测运动矢量位置252a到252e的 示意图。本申请可将候选预测运动矢量位置252a到252e统称为候选预测运动矢量位置 252。候选预测运动矢量位置252表示与cu250在同一图像中的空间候选预测运动矢量。 候选预测运动矢量位置252a定位于cu250左方。候选预测运动矢量位置252b定位于 cu250上方。候选预测运动矢量位置252c定位于cu250右上方。候选预测运动矢量位置 252d定位于cu250左下方。候选预测运动矢量位置252e定位于cu250左上方。图8为用以 提供帧间预测模块121和运动补偿模块可产生候选预测运动矢量列表的方式的示意性实 施方式。下文将参考帧间预测模块121解释实施方式,但应理解运动补偿模块可实施相同 技术,且因此产生相同候选预测运动矢量列表。
[0273]
图9为本申请实施例中构建候选预测运动矢量列表的一种实施流程图。将参考包括五 个候选预测运动矢量的列表描述图9的技术,但本文中所描述的技术还可与具有其它大小 的列表一起使用。五个候选预测运动矢量可各自具有索引(例如,0到4)。将参考一般 视频解码器描述图9的技术。一般视频解码器示例性的可以为视频编码器(例如视频编码 器20)或视频解码器(例如视频解码器30)。
[0274]
为了根据图9的实施方式重建候选预测运动矢量列表,视频解码器首先考虑四个空间 候选预测运动矢量(902)。四个空间候选预测运动矢量可以包括候选预测运动矢量位置 252a、252b、252c和252d。四个空间候选预测运动矢量对应于与当前cu(例如,cu250) 在同一图像中的四个pu的运动信息。视频解码器可以特定次序考虑列表中的四个空间候 选预测运动矢量。举例来说,候选预测运动矢量位置252a可被第一个考虑。如果候选预 测运动矢量位置252a可用,则候选预测运动矢量位置252a可指派到索引0。如果候选预 测运动矢量位置252a不可用,则视频解码器可不将候选预测运动矢量位置252a包括于候 选预测运动矢量列表中。候选预测运动矢量位置可出于各种理由而不可用。举例来说, 如果候选预测运动矢量位置不在当前图像内,则候选预测运动矢量位置可能不可用。在 另一可行的实施方式中,如果候选预测运动矢量位置经帧内预测,则候选预测运动矢量 位置可能不可用。在另一可行的实施方式中,如果候选预测运动矢量位置在与当前cu不 同的条带中,则候选预测运动矢量位置可能不可用。
[0275]
在考虑候选预测运动矢量位置252a之后,视频解码器可接下来考虑候选预测运动矢 量位置252b。如果候选预测运动矢量位置252b可用且不同于候选预测运动矢量位置252a, 则视频解码器可将候选预测运动矢量位置252b添加到候选预测运动矢量列表。在此特定 上下文中,术语“相同”和“不同”指代与候选预测运动矢量位置相关联的运动信息。因此, 如果两个候选预测运动矢量位置具有相同运动信息则被视为相同,且如果其具有不同运 动信息则被视为不同。如果候选预测运动矢量位置252a不可用,则视频解码器可将候选 预测运动矢量位置252b指派到索引0。如果候选预测运动矢量位置252a可用,则视频解 码
器可将候选预测运动矢量位置252指派到索引1。如果候选预测运动矢量位置252b不可 用或与候选预测运动矢量位置252a相同,则视频解码器跳过候选预测运动矢量位置252b 且不将其包括于候选预测运动矢量列表中。
[0276]
候选预测运动矢量位置252c由视频解码器类似地考虑以供包括于列表中。如果候选 预测运动矢量位置252c可用且不与候选预测运动矢量位置252b和252a相同,则视频解码 器将候选预测运动矢量位置252c指派到下一可用索引。如果候选预测运动矢量位置252c 不可用或并非不同于候选预测运动矢量位置252a和252b中的至少一者,则视频解码器不 将候选预测运动矢量位置252c包括于候选预测运动矢量列表中。接下来,视频解码器考 虑候选预测运动矢量位置252d。如果候选预测运动矢量位置252d可用且不与候选预测运 动矢量位置252a、252b和252c相同,则视频解码器将候选预测运动矢量位置252d指派到 下一可用索引。如果候选预测运动矢量位置252d不可用或并非不同于候选预测运动矢量 位置252a、252b和252c中的至少一者,则视频解码器不将候选预测运动矢量位置252d 包括于候选预测运动矢量列表中。以上实施方式大体上描述示例性地考虑候选预测运动 矢量252a到252d以供包括于候选预测运动矢量列表中,但在一些实施方施中,可首先将 所有候选预测运动矢量252a到252d添加到候选预测运动矢量列表,稍后从候选预测运动 矢量列表移除重复。
[0277]
在视频解码器考虑前四个空间候选预测运动矢量之后,候选预测运动矢量列表可能 包括四个空间候选预测运动矢量或者该列表可能包括少于四个空间候选预测运动矢量。 如果列表包括四个空间候选预测运动矢量(904,是),则视频解码器考虑时间候选预测 运动矢量(906)。时间候选预测运动矢量可对应于不同于当前图像的图像的co-located pu 的运动信息。如果时间候选预测运动矢量可用且不同于前四个空间候选预测运动矢量, 则视频解码器将时间候选预测运动矢量指派到索引4。如果时间候选预测运动矢量不可用 或与前四个空间候选预测运动矢量中的一者相同,则视频解码器不将所述时间候选预测 运动矢量包括于候选预测运动矢量列表中。因此,在视频解码器考虑时间候选预测运动 矢量(906)之后,候选预测运动矢量列表可能包括五个候选预测运动矢量(框902处考 虑的前四个空间候选预测运动矢量和框904处考虑的时间候选预测运动矢量)或可能包括 四个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量)。如果候选预测 运动矢量列表包括五个候选预测运动矢量(908,是),则视频解码器完成构建列表。
[0278]
如果候选预测运动矢量列表包括四个候选预测运动矢量(908,否),则视频解码器 可考虑第五空间候选预测运动矢量(910)。第五空间候选预测运动矢量可(例如)对应 于候选预测运动矢量位置252e。如果位置252e处的候选预测运动矢量可用且不同于位置 252a、252b、252c和252d处的候选预测运动矢量,则视频解码器可将第五空间候选预测 运动矢量添加到候选预测运动矢量列表,第五空间候选预测运动矢量经指派到索引4。如 果位置252e处的候选预测运动矢量不可用或并非不同于候选预测运动矢量位置252a、 252b、252c和252d处的候选预测运动矢量,则视频解码器可不将位置252处的候选预测 运动矢量包括于候选预测运动矢量列表中。因此在考虑第五空间候选预测运动矢量(910) 之后,列表可能包括五个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢 量和框910处考虑的第五空间候选预测运动矢量)或可能包括四个候选预测运动矢量(框 902处考虑的前四个空间候选预测运动矢量)。
[0279]
如果候选预测运动矢量列表包括五个候选预测运动矢量(912,是),则视频解码器 完成产生候选预测运动矢量列表。如果候选预测运动矢量列表包括四个候选预测运动矢 量(912,否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括 五个候选预测运动矢量(916,是)为止。
[0280]
如果在视频解码器考虑前四个空间候选预测运动矢量之后,列表包括少于四个空间 候选预测运动矢量(904,否),则视频解码器可考虑第五空间候选预测运动矢量(918)。 第五空间候选预测运动矢量可(例如)对应于候选预测运动矢量位置252e。如果位置252e 处的候选预测运动矢量可用且不同于已包括于候选预测运动矢量列表中的候选预测运动 矢量,则视频解码器可将第五空间候选预测运动矢量添加到候选预测运动矢量列表,第 五空间候选预测运动矢量经指派到下一可用索引。如果位置252e处的候选预测运动矢量 不可用或并非不同于已包括于候选预测运动矢量列表中的候选预测运动矢量中的一者, 则视频解码器可不将位置252e处的候选预测运动矢量包括于候选预测运动矢量列表中。 视频解码器可接着考虑时间候选预测运动矢量(920)。如果时间候选预测运动矢量可用 且不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则视频解码器可将所 述时间候选预测运动矢量添加到候选预测运动矢量列表,所述时间候选预测运动矢量经 指派到下一可用索引。如果时间候选预测运动矢量不可用或并非不同于已包括于候选预 测运动矢量列表中的候选预测运动矢量中的一者,则视频解码器可不将所述时间候选预 测运动矢量包括于候选预测运动矢量列表中。
[0281]
如果在考虑第五空间候选预测运动矢量(框918)和时间候选预测运动矢量(框920) 之后,候选预测运动矢量列表包括五个候选预测运动矢量(922,是),则视频解码器完 成产生候选预测运动矢量列表。如果候选预测运动矢量列表包括少于五个候选预测运动 矢量(922,否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包 括五个候选预测运动矢量(916,是)为止。
[0282]
根据本申请的技术,可在空间候选预测运动矢量和时间候选预测运动矢量之后人工 产生额外合并候选预测运动矢量以使合并候选预测运动矢量列表的大小固定为合并候选 预测运动矢量的指定数目(例如前文图9的可行的实施方式中的五个)。额外合并候选预 测运动矢量可包括示例性的经组合双向预测性合并候选预测运动矢量(候选预测运动矢 量1)、经缩放双向预测性合并候选预测运动矢量(候选预测运动矢量2),和零向量 merge/amvp候选预测运动矢量(候选预测运动矢量3)。
[0283]
图10为本申请实施例中将经过组合的候选运动矢量添加到合并模式候选预测运动矢 量列表的一种示例性示意图。经组合双向预测性合并候选预测运动矢量可通过组合原始 合并候选预测运动矢量而产生。具体来说,原始候选预测运动矢量中的两个候选预测运 动矢量(其具有mvl0和refidxl0或mvl1和refidxl1)可用以产生双向预测性合并候选预 测运动矢量。在图10中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表 中。一候选预测运动矢量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测 类型为列表1单向预测。在此可行的实施方式中,mvl0_a和ref0是从列表0拾取,且mvl1_b 和ref0是从列表1拾取,且接着可产生双向预测性合并候选预测运动矢量(其具有列表0 中的mvl0_a和ref0以及列表1中的mvl1_b和ref0)并检查其是否不同于已包括于候选预 测运动矢量列表中的候选预测运动矢量。如果其不同,则视频解码器可将双向预测性合 并候选
预测运动矢量包括于候选预测运动矢量列表中。
[0284]
图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

) 并检查其是否为重复的。如果其并非重复的,则可将其添加到合并候选预测运动矢量列 表。
[0285]
图12为本申请实施例中将零运动矢量添加到合并模式候选预测运动矢量列表的一种 示例性示意图。零向量合并候选预测运动矢量可通过组合零向量与可经参考的参考索引 而产生。如果零向量候选预测运动矢量并非重复的,则可将其添加到合并候选预测运动 矢量列表。对于每一产生的合并候选预测运动矢量,运动信息可与列表中的前一候选预 测运动矢量的运动信息比较。
[0286]
在一种可行的实施方式中,如果新产生的候选预测运动矢量不同于已包括于候选预 测运动矢量列表中的候选预测运动矢量,则将所产生的候选预测运动矢量添加到合并候 选预测运动矢量列表。确定候选预测运动矢量是否不同于已包括于候选预测运动矢量列 表中的候选预测运动矢量的过程有时称作修剪(pruning)。通过修剪,每一新产生的候 选预测运动矢量可与列表中的现有候选预测运动矢量比较。在一些可行的实施方式中, 修剪操作可包括比较一个或多个新候选预测运动矢量与已在候选预测运动矢量列表中的 候选预测运动矢量和不添加为已在候选预测运动矢量列表中的候选预测运动矢量的重复 的新候选预测运动矢量。在另一些可行的实施方式中,修剪操作可包括将一个或多个新 候选预测运动矢量添加到候选预测运动矢量列表且稍后从所述列表移除重复候选预测运 动矢量。
[0287]
下面介绍几种帧间预测的实施方式,本申请中的第一预设算法以及第二预设算法可 以包括其中的一种或多种。
[0288]
图片间预测利用图片之间的时间相关性来得到针对图像样本块的运动补偿预测 (motion-compensated prediction,mcp)。
[0289]
对于这种基于块的mcp,将视频图片划分成矩形块。假设一个块内均匀运动并且移 动对象大于一个块,则对于每个块,可以找到先前解码图片中的对应块作为预测值。使 用平移运动模型,由运动矢量(δx,δy)表示块在先前解码图片中的位置,其中δx指定 相对于当前块位置的水平位移,δy指定相对于当前块位置的竖直位移。运动矢量(δx、 δy)可具有分数样本精度以更精确地捕捉底层对象的移动。当对应的运动矢量具有分数 样本精度时,对参考图片应用内插以得到预测信号。先前解码图片被称为参考图片并由 对应于参考图片列表的参考索引δt指示。这些平移运动模型参数,即运动矢量和参考索 引,被进一步称为运动数据。现代视频编码标准允许两种图片间预测,即单向预测和双 向预测。
[0290]
在双向预测的情况下,使用两组运动数据(δx0,δy0,δt0和δx1,δy1,δt1)来生 成两个mcp(可能来自不同图片),然后将其组合以获得最终的mcp。默认情况下,这 通过求平均来完成,但是在加权预测的情况下,可以对每个mcp应用不同的权重,例如, 以便补偿场景淡出。可以在双向预测中使用的参考图片存储在两个单独的列表中,即列 表0和列表1。为了限制允许双向预测的片中的内存带宽,hevc标准限制具有4
×
8和8
×
4 个亮度预测块的pu仅使用单向预测。使用运动估计过程在编码器处得到运动数据。视频 标准中并未指定运动估计,因此不同的编码器可以在其实施中使用不同的复杂度与质量 的折衷。
[0291]
一个块的运动数据与相邻块相关。为了利用这种相关性,运动数据并不直接在码流 中进行编码,而是基于相邻运动数据进行预测编码。在hevc中,为此使用了两个概念。 在hevc中通过引入称为高级运动矢量预测(advanced motion vector prediction,amvp) 的新工具而改进了运动矢量的预测编码,其中将每个运动块的最佳预测值用信号表示给 解码器。另外,称为帧间预测块合并的新技术从相邻块得到块的所有运动数据,从而替 代h.264/avc中的直通和跳过模式。
[0292]
高级运动矢量预测
[0293]
如在先前的视频编码标准中一样,hevc运动矢量根据水平(x)和竖直(y)分量被 编码为与所谓的运动矢量预测值(motion vector predictor,mvp)的差。两种运动矢量差 (mvd)分量的计算如方程式(1.1)和(1.2)所示。
[0294]
mvd
x
=δx-mvp
x
ꢀꢀꢀ
(1.1)
[0295]
mvd
y
=δy-mvp
y
ꢀꢀꢀ
(1.2)
[0296]
当前块的运动矢量通常与当前图片中或者较早的编码图片中的相邻块的运动矢量相 关。这是因为相邻块可能对应于具有相似运动的相同移动对象,并且对象的运动不可能 随时间突然改变。因此,使用相邻块中的运动矢量作为预测值减小了用信号表示的运动 矢量差的大小。mvp通常从同位图片中来自空间相邻块或来自时间相邻块的已经解码的 运动矢量得到。在一些情况下,还可以将零运动矢量用作mvp。在h.264/avc中,这通 过执行三个空间相邻运动矢量的分量形式中值来完成。使用这种方法,不需要用信号表 示预测值。来自同位图片的时间mvp仅在h.264/avc的所谓的时间直通模式中被考虑。 h.264/avc直通模式还用于得到除运动矢量之外的其它运动数据。
[0297]
在hevc中,隐式地得到mvp的方法由称为运动矢量竞争的技术所替代,所述技术 显式地用信号表示mvp列表中的哪个mvp用于运动矢量得到。hevc中的可变编码四叉 树块结构可导致一个块使若干具有运动矢量的相邻块作为潜在mvp候选者。高级运动矢 量预测(advanced motion vector prediction,amvp)的初始设计包含来自三个不同类别 预测值的五个mvp:来自空间相邻者的三个运动矢量、三个空间预测值的中值以及来自 同位时间相邻块的缩放运动矢量。此外,通过重新排序以将最可能的运动预测值放在第 一位置并通过去除冗余候选者以确保最小的信令开销来修改预测值列表。接着,开发 amvp设计的重要简化,例如去除中值预测值、将列表中的候选者数量从五个减少到两 个、固定列表中的候选者顺序,以及减少冗余检查的数量。amvp候选者列表构建的最 终设计包含以下两个mvp候选者:a.从五个空间相邻块得到的最多两个空间候选mvp; b.当两个空间候选mvp不可用或它们相同时,从两个时间同位块得到的一个时间候选 mvp;c.当空间候选者、时间候选者或这两者都不可用时的零运动矢量。
[0298]
正如已经提到的,从五个空间相邻块得到两个空间mvp候选者a和b。对于amvp和 帧间预测块合并,空间候选块的位置是相同的。对于候选者a,在两遍式方法中考虑来自 左下角的两个块a0和a1的运动数据。在第一遍中,检查是否有任何候选块含有的参考索 引等于当前块的参考索引。找到的第一运动矢量将作为候选者a。当来自a0和a1的所有 参考索引指向与当前块的参考索引不同的参考图片时,相关的运动矢量不能按原样使用。 因此,在第二遍中,需要根据候选参考图片与当前参考图片之间的时间距离来缩放运动 矢量。方程式(1.3)示出了如何根据缩放因子缩放候选运动矢量mvcand。基于当前图片 与候选块td的参考图片之间的时间距离以及当前图片与当前块tb的参考图片之间的时间 距离来计算scalefactor。时间距离以定义图片显示顺序的图片顺序编号(picture ordercount,poc)值之间的差表示。缩放操作基本上与h.264/avc中用于时间直通模式的方 案相同。这种分解允许在片层级预先计算scalefactor,因为它只取决于片头中用信号表 示的参考图片列表结构。应注意,仅在当前参考图片和候选参考图片都是短期参考图片 时才执行mv缩放。参数td被定义为同位候选块的同位图片与参考图片之间的poc差。
[0299]
mv=sign(mv
cand
·
scalefactor)
·
((|mv
cand
·
scalefactor|+27)>>8)
ꢀꢀꢀ
(1.3)
[0300]
scalefactor=clip(-2
12
,2
12-1,(tb
·
tx+25)>>6)
ꢀꢀꢀ
(1.4)
[0301][0302]
对于候选者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的复杂运动矢量缩放操作,这种相依 性是可接受的。减少运动矢量缩放的数量表示运动矢量预测值得到过程中显着的复杂度 降低。
[0303]
在hevc中,已确定当前块的右下方和中心处的块为最适合提供良好的时间运动矢量 预测值(temporal motion vector predictor,tmvp)。这些候选者中c0表示右下相邻者, c1表示中心块。这里同样首先考虑c0的运动数据,并且如果不可用,则使用来自中心处 的同位候选块的运动数据来得到时间mvp候选者c。当相关的pu属于当前ctu行之外的 ctu时,c0的运动数据也被视为不可用。这最大限度地减少了存储同位运动数据的内存 带宽要求。与运动矢量可能指代相同参考图片的空间mvp候选者对比,运动矢量缩放对 于tmvp是强制性的。因此,使用与空间mvp相同的缩放操作。
[0304]
虽然h.264/avc中的时间直通模式总是参考第二参考图片列表、即列表1中的第一参 考图片,并且仅在双向预测片中被允许,但hevc提供了为每个图片指示哪个参考图片被 视为同位图片的可能性。这是通过在片头中用信号表示同位参考图片列表和参考图片索 引以及要求图片中的所有片中的这些语法元素应指定相同的参考图片来完成的。
[0305]
由于时间mvp候选者引入了另外的相依性,因此出于差错鲁棒性原因,可能需要禁 用其使用。在h.264/avc中,可能禁用片头中的双向预测片的时间直通模式(direct_
预测片,针对每个参考图片列表得到tmvp。取决于每个列表的tmvp的可用性,将预测 类型设置成双向预测或设置成tmvp可用的列表。所有相关的参考图片索引被设置成等于 零。因此,对于单向预测片,只连同等于零的参考图片索引一起得到列表0的tmvp。
[0313]
当至少一个tmvp可用并且时间合并候选者被添加到列表中时,不执行冗余检查。这 使得合并列表构建独立于同位图片,从而提高抗抗误码能力。考虑时间合并候选者将是 多余的并因此未包含在合并候选者列表中的情况。在丢失同位图片的情况下,解码器不 能得到时间候选者,因此不检查它是否是冗余的。所有后续候选者的索引将受此影响。
[0314]
出于解析鲁棒性原因,合并候选者列表的长度是固定的。在已经添加了空间和时间 合并候选者之后,可能出现所述列表还没有固定长度的情况。为了补偿与非长度自适应 列表索引信令一起出现的编码效率损失,生成另外的候选者。取决于片的类型,最多可 以使用两种候选者来完全填充列表:a.组合双向预测候选者;b.零运动矢量候选者。
[0315]
在双向预测片中,通过组合一个候选者的参考图片列表0运动数据与另一候选者的 列表1运动数据,可基于现有候选者生成另外的候选者。这通过从第一候选者等一个候 选者复制δx0、δy0、δt0并且从第二候选者等另一候选者复制δx1、δy1、δt1来完成。预 定义不同的组合并在表1.1中给出。
[0316]
表1.1
[0317][0318]
当添加组合的双向预测候选者之后或对于单向预测片来说列表仍然不完整时,计算 零运动矢量候选者以使列表完整。所有零运动矢量候选者对于单向预测片具有一个零位 移运动矢量,对于双向预测片具有两个零位移运动矢量。参考索引被设置成等于零,并 且对于每个另外的候选者递增一,直到达到参考索引的最大数量。如果是这种情况,并 且还有其它候选者缺失,则使用等于零的参考索引来创建这些候选者。对于所有另外的 候选者,不执行冗余检查,因为结果显示省略这些检查不会引起编码效率损失。
[0319]
对于以图片间预测模式编码的每个pu,所谓的merge flag指示使用所述块合并来得 到运动数据。merge_idx进一步确定合并列表中提供mcp所需的所有运动数据的候选者。 除了此pu层级的信令之外,还在片头中用信号表示合并列表中的候选者的数量。由于 默认值为五,因此它表示为与五的差(five_minus_max_num_merge_cand)。这样,五利 用0的短码字用信号表示,而仅使用一个候选者则利用4的较长码字用信号表示。至于 对合并候选者列表构建过程的影响,整个过程保持不变,但是在列表含有最大数量合并 候选者之后,所述过程终止。在初始设计中,合并索引编码的最大值由列表中可用空间和 时间候选者的数量给出。当例如只有两个候选者可用时,索引可以高效地编码为一个标 志。但是,为了解析合并索引,必须构建整个合并候选者列表以了解候选者的实际数量。 假设由于发送错误而导致不可用的相邻块,将不可能再解析合并索引。
[0320]
hevc中的块合并概念的关键应用是与跳过模式的组合。在先前的视频编码标准中, 使用跳过模式指示这样的块:推测而不是显式地用信号表示运动数据,并且预测残差
为 零,即,不发送变换系数。在hevc中,在图片间预测片中的每个cu的开始处,用信 号表示skip_flag,这意味着以下方面:a.cu仅含有一个pu(2n
×
2n分区类型);b.使 用合并模式来得到运动数据(merge_flag等于1);c.码流中不存在残差数据。
[0321]
在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。
[0322]
基于子cu的运动矢量预测
[0323]
在开发新的视频编码技术期间,使用qtbt,每个cu对于每个预测方向可以具有最 多一组运动参数。在编码器中通过将大cu分成子cu并且得到大cu的所有子cu的运 动信息来考虑两个子cu层级运动矢量预测方法。替代时间运动矢量预测(alternativetemporal motion vector prediction,atmvp)方法允许每个cu从同位参考图片中小于当 前cu的多个块提取多组运动信息。在时空运动矢量预测(spatial-temporal motion vectorprediction,stmvp)方法中,通过使用时间运动矢量预测值和空间相邻运动矢量来递归 地得到子cu的运动矢量。
[0324]
为了保留用于子cu运动预测的更精确的运动场,当前禁用参考帧的运动压缩。
[0325]
替代时间运动矢量预测
[0326]
在替代时间运动矢量预测(alternative temporal motion vector prediction,atmvp) 方法中,通过从小于当前cu的块中提取多组运动信息(包含运动矢量和参考索引)来 修改运动矢量时间运动矢量预测(temporal motion vector prediction,tmvp)。子cu是 正方形的n
×
n块(n默认设置为4)。
[0327]
atmvp分两步预测cu内的子cu的运动矢量。第一步是使用所谓的时间矢量来标 识参考图片中的对应块。参考图片被称为运动源图片。第二步是将当前cu分成子cu, 并从每个子cu对应的块中获得每个子cu的运动矢量以及参考索引。
[0328]
在第一步中,通过当前cu的空间相邻块的运动信息来确定参考图片和对应块。为 了避免相邻块的重复扫描过程,使用当前cu的合并候选者列表中的第一合并候选者。 将第一可用运动矢量及其相关的参考索引设置成时间矢量和运动源图片的索引。这样, 在atmvp中,与tmvp相比,可以更精确地标识对应块,其中对应块(有时称为同位 块)始终位于相对于当前cu的右下或中心位置。
[0329]
在第二步中,通过将时间矢量添加到当前cu的坐标,通过运动源图片中的时间矢 量来标识子cu的对应块。对于每个子cu,使用其对应块(覆盖中心样本的最小运动网 格)的运动信息来得到子cu的运动信息。在标识对应的n
×
n块的运动信息之后,以与 hevc的tmvp相同的方式将其转换为当前子cu的运动矢量和参考索引,其中适用运 动缩放和其它程序。
例如,解码器检查是否满足低延迟条件(即,当前图片的所有参考 图片的poc小于当前图片的poc)并且可能使用运动矢量mvx(与参考图片列表x相 对应的运动矢量)来预测每个子cu的运动矢量mvy(其中x等于0或1且y等于1-x)。
[0330]
时空运动矢量预测
[0331]
在这种方法中,按照光栅扫描顺序递归地得到子cu的运动矢量。考虑含有四个4
×
4 子cu a、b、c和d的8
×
8cu。将当前帧中的相邻4
×
4块标记为a、b、c和d。
[0332]
子cu a的运动得到起始于标识其两个空间相邻者。第一相邻者是子cu a上方的 n
×
n块(块c)。如果这一块c不可用或被帧内编码,则检查子cu a上方的其它n
×
n 块(从左到右,从块c开始)。第二相邻者是子cu a左侧的块(块b)。如果块b不可 用或被帧内编码,则检查子cu a左侧的其它块(从上到下,从块b开始)。对于给定 列表,将从每个列表的相邻块获得的运动信息缩放到第一参考帧。接下来,通过遵循与 hevc中指定的tmvp得到相同的过程来得到子块a的时间运动矢量预测值(temporalmotion vector predictor,tmvp)。提取位置d处的同位块的运动信息并相应地缩放。最 后,在检索并缩放运动信息之后,分别对每个参考列表的所有可用的运动矢量(最多3 个)求平均。分配平均运动矢量作为当前子cu的运动矢量。
[0333]
结合合并模式
[0334]
作为另外的合并候选者而启用子cu模式,并且不需要另外的语法元素来用信号表 示模式。将两个另外的合并候选者添加至每个cu的合并候选者列表以表示atmvp模 式和stmvp模式。如果序列参数集指示atmvp和stmvp已启用,则最多使用七个合 并候选者。另外的合并候选者的编码逻辑与hm中的合并候选者的编码逻辑相同,这意 味着对于p或b片中的每个cu,对两个另外的合并候选者需要多两次rd检查。
[0335]
仿射运动补偿预测
[0336]
通过两个控制点运动矢量描述块的仿射运动场。
[0337]
通过以下方程式描述块的运动矢量场(motion vector field,mvf):
[0338][0339]
其中(v
0x
,v
0y
)是左上角控制点的运动矢量,(v
1x
,v
1y
)是右上角控制点的运动矢 量。
[0340]
为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。如方程式(1.7)中 得到子块大小m
×
n,其中mvpre是运动矢量分数精度(例如1/16),(v
2x
,v
2y
)是根 据方程式(1.6)计算的左下控制点的运动矢量。
[0341][0342]
在通过方程式(1.7)得到之后,应在必要时向下调整m和n,使其分别为w和h 的除数。
[0343]
为了得到每个m
×
n子块的运动矢量,根据方程式(1.6)计算每个子块的中心样本 的运动矢量,并舍入到1/16的分数精度。
[0344]
仿射帧间模式
[0345]
对于宽度和高度都大于8的cu,可以应用af_inter模式。在码流中用信号表示cu层级中的仿射标志以指示是否使用af_inter模式。在此模式中,使用相邻块构建 具有运动矢量对{(v0,v1)|v0={v
a
,v
b
,v
c
},v1={v
d
,v
e
}}的候选者列表。从块a、b或c的运 动矢量中选择v0。根据参考列表以及相邻块参考的poc、当前cu参考的poc和当前 cu的poc之间的关系来缩放来自相邻块的运动矢量。从相邻块d和e中选择v1的方法 类似。如果候选者列表的数量小于2,则通过复制每个amvp候选者组成的运动矢量对 来填充列表。当候选者列表大于2时,首先根据相邻运动矢量的一致性(对候选者中的 两个运动矢量的相似性)对候选者进行排序,并且仅保留前两个候选者。使用rd成本 检查来确定选择哪个运动矢量对候选者作为当前cu的控制点运动矢量预测(controlpoint motion vector prediction,cpmvp)。并且在码流中用信号表示指示候选者列表中的 cpmvp的位置的索引。在码流中用信号表示cpmv与cpmvp的差。
[0346]
仿射合并模式
[0347]
当在af_merge模式下应用cu时,它从有效的相邻重建块获得以仿射模式编码的 第一块。候选块的选择顺序是从左、上、右上、左下到左上。如果相邻左下块a以仿射 模式编码,则得到含有块a的cu的左上角、右上角和左下角的运动矢量v2、v3和v4。 并且根据v2、v3和v4计算当前cu上的左上角的运动矢量v0。其次,计算当前cu的右 上方的运动矢量v1。
[0348]
为了标识当前cu是否用af_merge模式编码,当存在至少一个相邻块以仿射模式 编码时,在码流中用信号表示仿射标志。
[0349]
模式匹配运动矢量得到
[0350]
模式匹配运动矢量得到(pattern matched motion vector derivation,pmmvd)模式是 基于帧率上变换(frame-rate up conversion,fruc)技术。在这种模式下,不用信号表 示块的运动信息,而是在解码器端得到。
[0351]
当cu的合并标志为真时,用信号表示其fruc标志。当fruc标志为假时,用信 号表示合并索引并且使用常规合并模式。当fruc标志为真时,用信号表示另外的fruc 模式标志以指示将使用哪种方法(双边匹配或模板匹配)来得到块的运动信息。
[0352]
在编码器端,关于对cu是否使用fruc合并模式的决定是基于对正常合并候选者 所做的rd成本选择。通过使用rd成本选择针对cu检查这两种匹配模式(双边匹配和 模板匹配)。将成本最低的一个进一步与其它cu模式进行比较。如果fruc匹配模式 是最有效的模
式,则cu的fruc标志被设置为真,并使用相关的匹配模式。
[0353]
fruc合并模式中的运动得到过程有两个步骤。首先执行cu层级运动搜索,然后执 行子cu层级运动细化。在cu层级,基于双边匹配或模板匹配得到整个cu的初始运动 矢量。首先,生成mv候选者列表,并且选择使匹配成本最小的候选者作为用于进一步 cu层级细化的起始点。接着执行基于起始点周围的双边匹配或模板匹配的局部搜索,并 且将使匹配成本最小的mv作为整个cu的mv。随后,以得到的cu运动矢量作为起始 点,在子cu层级处对运动信息进行进一步细化。
[0354]
例如,针对w
×
h个cu运动信息得到执行以下得到过程。在第一阶段,得到整个 w
×
h个cu的mv。在第二阶段,将cu进一步分成m
×
m个子cu。如方程式(1.8) 计算m的值,d是预定义的分割深度,在jem中默认设置为3。然后得到每个子cu的 mv。
[0355][0356]
使用双边匹配通过在两个不同的参考图片中找到沿着当前cu的运动轨迹的两个块 之间的最接近匹配来得到当前cu的运动信息。在连续运动轨迹的前提下,指向两个参 考块的运动矢量mv0和mv1应与当前图片与两个参考图片之间的时间距离、即td0和 td1成比例。在当前图片在时间上在两个参考图片之间并且从当前图片到两个参考图片 的时间距离相同时,双边匹配成为基于镜像的双向mv。
[0357]
在双边匹配合并模式中,由于基于在两个不同的参考图片中沿着当前cu的运动轨 迹的两个块之间的最近匹配来得到cu的运动信息,所以始终应用双向预测。对于模板 匹配合并模式没有此类限制。在模板匹配合并模式中,编码器可以在来自list0的单向预 测、来自list1的单向预测或针对cu的双向预测之间进行选择。基于模板匹配成本进行 选择,如下:
[0358]
若costbi<=因子*min(cost0,cost1)
[0359]
使用双向预测;
[0360]
否则,若cost0<=cost1
[0361]
使用来自list0的单向预测;
[0362]
否则,
[0363]
使用来自list1的单向预测;
[0364]
其中cost0是list0模板匹配的sad,cost1是list1模板匹配的sad,costbi是双向 预测模板匹配的sad。因子的值等于1.25,这意味着选择过程偏向于双向预测。帧间预 测方向选择仅适用于cu层级模板匹配过程。
[0365]
使用模板匹配通过找到当前图片中的模板(当前cu的顶部和/或左侧相邻块)与参 考图片中的块(与模板相同大小)之间的最接近匹配来得到当前cu的运动信息。除了 前面提到的fruc合并模式外,模板匹配也适用于amvp模式。使用模板匹配方法,得 到新的候选者。如果通过模板匹配新得到的候选者与第一现有amvp候选者不同,则将 其插入到所述amvp候选者列表的最开始,然后将列表大小设置为2(意味着除去第二 现有amvp候选者)。当应用于amvp模式时,仅应用cu层级搜索。
[0366]
设置在cu层级的mv候选者包括:a.如果当前cu处于amvp模式,则选择原始 amvp候选者;b.所有合并候选者;c.内插mv场中的几个mv;d.顶部和左侧的相邻运 动矢量。
[0367]
应注意,上述内插mv场是在基于单边me对整个图片的图片编码之前生成的。然 后运动场可以稍后用作cu层级或子cu层级mv候选者。首先,在4
×
4块层级遍历两 个参考列表中的每个参考图片的运动场。对于每个4
×
4块,如果与块相关的运动通过当 前图片中的4
×
4块,并且所述块尚未被分配任何内插运动,则根据时间距离td0和td1 将参考块的运动缩放到当前图片(与hevc中的tmvp的mv缩放的方式相同),并且 将缩放后的运动分配给当前帧中的块。如果未将缩放mv分配给4
×
4块,则块的运动在 内插运动场中被标记为不可用。
[0368]
当使用双边匹配时,合并候选者的每个有效mv被用作输入以在假定双边匹配的情 况下生成mv对。例如,合并候选者的一个有效mv在参考列表a处为(mva,refa)。 然后,在另一个参考列表b中找到其配对双边mv的参考图片refb,使得refa和refb在 时间上处于当前图片的不同侧。如果这样的refb在参考列表b中不可用,则将refb确定 为与refa不同的参考,并且其到当前图片的时间距离是列表b中的最小值。在确定refb 之后,通过基于当前图片与refa、refb之间的时间距离缩放mva来得到mvb。
[0369]
来自内插mv场的四个mv也被添加到cu层级候选者列表。更具体地说,添加在 当前cu的位置(0,0)、(w/2,0)、(0,h/2)和(w/2,h/2)处的内插mv。
[0370]
当在amvp模式中应用fruc时,原始amvp候选者也被添加到cu层级mv候选 者集。
[0371]
在cu层级,候选者列表中添加了最多15个amvp cu的mv和最多13个合并cu 的mv。
[0372]
设置在子cu层级的mv候选者包括:a.从cu层级搜索确定的mv;b.顶部、左侧、 左上和右上的相邻mv;c.来自参考图片的同位mv的缩放版本;d.最多4个atmvp候 选者;e.最多4个stmvp候选者。
[0373]
如下得到来自参考图片的缩放的mv。遍历两个列表中的所有参考图片。将参考图 片中的子cu的同位位置处的mv缩放成起始cu层级mv的参考。
[0374]
atmvp和stmvp候选者限于前四个。
[0375]
在子cu层级,将最多17个mv添加到候选者列表。
[0376]
运动矢量细化
[0377]
运动矢量可以通过结合不同帧间预测模式的不同方法来细化。
[0378]
fruc中的mv细化
[0379]
mv细化是基于模式的mv搜索,具有双边匹配成本或模板匹配成本的标准。在当 前的开发中,支持两种搜索模式-分别在cu层级和子cu层级上的无限制中心偏置菱形 搜索(unrestricted center-biased diamond search,ucbds)和用于mv细化的自适应交叉 搜索。对于cu和子cu层级mv的细化,以四分之一亮度样本mv精度直接搜索mv, 然后是八分之一亮度样本mv细化。用于cu和子cu步骤的mv细化的搜索范围被设 置成等于8个亮度样本。
[0380]
解码器端运动矢量细化
[0381]
在双向预测操作中,为了预测一个块区域,组合分别使用list0的mv和list1的mv 形成的两个预测块以形成单个预测信号。在解码器端运动矢量细化(decoder-side motionvector refinement,dmvr)方法中,通过双边模板匹配过程进一步细化双向预测的两个 运动矢量。在解码器中应用双边模板匹配以在双边模板与参考图片中的重构样本之间执 行基于失真的搜索,以便获得细化的mv而无需发送另外的运动信息。
[0382]
在dmvr中,分别从list0的初始mv0和list1的mv1生成双边模板作为两个预测 块
的加权组合(即,平均值)。模板匹配操作由计算所生成的模板与参考图片中的样本 区域(初始预测块周围)之间的成本度量构成。对于两个参考图片中的每一个,产生最 小模板成本的mv被视为所述列表的更新mv以替换原始mv。在当前的开发中,每个 列表都会搜索九个mv候选者。九个mv候选者包含原始mv和8个周围mv,其中一 个亮度样本沿水平或竖直方向或这两者偏移到原始mv。最后,使用两个新的mv、即 mv0

和mv1

生成最终的双向预测结果。绝对差总和(sum ofabsolute differences,sad) 用作成本度量。
[0383]
将dmvr应用于双向预测的合并模式,其中一个mv来自过去的参考图片,另一 mv来自未来的参考图片,而无需发送另外的语法元素。
[0384]
运动数据精度和存储
[0385]
运动数据存储减小
[0386]
在amvp以及合并模式中使用tmvp需要将运动数据(包含运动矢量、参考索引和 编码模式)存储在同位的参考图片中。考虑到运动表示的粒度,存储运动数据所需的内 存大小会很重要。hevc采用运动数据存储减小(motion data storage reduction,mdsr) 以通过对参考图片中的运动数据进行二次采样来减小运动数据缓冲器和相关联的内存访 问带宽的大小。虽然h.264/avc以4
×
4块为基础存储这些信息,但hevc使用16
×
16 块,其中,在对4
×
4网格进行二次采样的情况下,存储左上4
×
4块的信息。由于这种二 次采样,mdsr影响了时间预测的质量。
[0387]
此外,在同位图片中使用的mv的位置与mdsr所存储的mv的位置之间存在紧密 的相关性。在hevc的标准化过程中,结果表明,将左上块的运动数据与右下和中心 tmvp候选者一起存储在16
×
16区域内提供了编码效率和内存带宽减小之间的最佳折衷。
[0388]
更高的运动矢量存储精度
[0389]
在hevc中,运动矢量精度是四分之一像素(对于4:2:0视频为四分之一亮度样本 和八分之一色度样本)。在当前的开发中,内部运动矢量存储和合并候选者的精度提高 到1/16像素。在运动补偿帧间预测中针对以跳过/合并模式编码的cu使用更高的运动矢 量精度(1/16像素)。对于以正常amvp模式编码的cu,使用整数像素或四分之一像 素运动。
[0390]
自适应运动矢量差分辨率
[0391]
在hevc中,当片头中use_integer_mv_flag等于0时,以四分之一亮度样本为单位 用信号表示运动矢量差(motion vector difference,mvd)。在当前的开发中,引入了局 部自适应运动矢量分辨率(locally adaptive motion vector resolution,lamvr)。mvd 可以四分之一亮度样本、整数亮度样本或四亮度样本为单位进行编码。在编码单元(codingunit,cu)层级控制mvd分辨率,并且针对具有至少一个非零mvd分量的每个cu有 条件地用信号表示mvd分辨率标志。
[0392]
对于具有至少一个非零mvd分量的cu,用信号表示第一标志以指示在cu中是否 使用四分之一亮度样本mv精度。当第一标志(等于1)指示未使用四分之一亮度样本 mv精度时,用信号表示另一标志以指示是否使用整数亮度样本mv精度或四亮度样本 mv精度。
[0393]
当cu的第一mvd分辨率标志为零或未针对cu编码(意味着cu中的所有mvd 均为零)时,对所述cu使用四分之一亮度样本mv分辨率。当cu使用整数亮度样本 mv精度或四亮度样本mv精度时,cu的amvp候选者列表中的mvp被舍入到相应的 精度。
[0394]
在编码器中,使用cu层级rd检查以确定针对cu使用哪个mvd分辨率。即,对 于每个
mvd分辨率,执行三次cu层级rd检查。
[0395]
分数样本内插模块
[0396]
当运动矢量指向分数样本位置时,需要运动补偿内插。对于亮度内插滤波,如表1.2 所示,对于2/4精度样本,使用8抽头可分离的基于dct的内插滤波器,对于1/4精度 样本,使用7抽头可分离的基于dct的内插滤波器。
[0397]
表1.2
[0398][0399][0400]
类似地,对于色度内插滤波器,使用4抽头可分离的基于dct的内插滤波器器,如 表1.3所示。
[0401]
表1.3
[0402][0403]
对于4:2:2的竖直内插以及4:4:4色度通道的水平和竖直内插,不使用表1.3中的奇 数位置,从而产生1/4色度内插。
[0404]
对于双向预测,在对两个预测信号求平均之前,将内插滤波器的输出的保持为14位 精度,而不管源位深度如何。实际的求平均过程隐含在位深度减小过程中,如下所示:
[0405]
predsamples[x,y]=(predsamplesl0[x,y]+predsamplesl1[x,y]+offset)>>shift
[0406]
(1.9)
[0407]
shift=15-bitdepth
ꢀꢀꢀ
(1.10)
[0408]
offset=1<<(shift-1)
ꢀꢀꢀ
(1.11)
[0409]
为了降低复杂度,对双边匹配和模板匹配使用双边线性内插而不是常规的8抽头 hevc内插。
[0410]
匹配成本的计算在不同的步骤中有些不同。当从cu层级的候选者集选择候选者时, 匹配成本是双边匹配或模板匹配的sad。在确定起始mv之后,子cu层级搜索处的双 边匹配的匹配成本c计算如下:
[0411][0412]
其中w是经验地设定为4的加权因子,mv和mv
s
分别指示当前mv和起始mv。 sad仍被用作子cu层级搜索处的模板匹配的匹配成本。
[0413]
在fruc模式下,仅通过使用亮度样本得到mv。得到的运动将用于mc帧间预测 的亮度和色度。在确定mv之后,使用用于亮度的8抽头内插滤波器和用于色度的4抽 头内插滤波器来执行最终mc。
[0414]
运动补偿模块
[0415]
重叠块运动补偿
[0416]
对于所有运动补偿(motion compensation,mc)块边界执行重叠块运动补偿 (overlapped block motion compensation,obmc),除了当前开发中的cu的右边界和 底部边界之外。此外,它适用于亮度和色度两个分量。mc块对应于编码块。当cu以子 cu模式(包含子cu合并、仿射和fruc模式)编码时,cu的每个子块是mc块。为 了以统一的方式处理cu边界,针对所有mc块边界在子块层级执行obmc,其中子块 大小被设置成等于4
×
4。
[0417]
当obmc应用于当前子块时,除了当前运动矢量之外,如果四个连接的相邻子块的 运动矢量可用并与当前运动矢量不相同,还使用这四个连接的相邻子块的运动矢量来得 到当前子块的预测块。组合基于多个运动矢量的这些多个预测块以生成当前子块的最终 预测信号。
[0418]
基于相邻子块的运动矢量的预测块标示为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。
[0419]
在当前的开发中,对于大小小于或等于256个亮度样本的cu,用信号表示cu层级 标志以指示对于当前cu是否应用obmc。对于大小大于256个亮度样本或未采用amvp 模式编码的cu,默认地应用obmc。在编码器处,当obmc应用于cu时,在运动估 计阶段将其影响考虑在内。使用由obmc利用顶部相邻块和左侧相邻块的运动信息形成 的预测信号来补偿当前cu的原始信号的顶部和左侧边界,然后应用正常运动估计处理。
[0420]
优化工具
[0421]
局部照度补偿
[0422]
局部照度补偿(local illumination compensation,lic)基于照度变化的线性模型, 使用比例因子a和偏移量b。并且其针对每个帧间模式编码的编码单元(coding unit,cu) 自适应地启用或禁用。
[0423]
当lic应用于cu时,采用最小平方误差法通过使用当前cu的相邻样本及其对应 的参考样本来得到参数a和b。使用cu的二次采样的(2:1二次采样)相邻样本和参考 图片中的对应样本(由当前cu或子cu的运动信息标识)。得到ic参数并分别应用于 每个预测方向。
[0424]
当cu以合并模式编码时,以类似于合并模式下的运动信息复制的方式从相邻块复 制lic标志;否则,针对cu用信号表示lic标志以指示lic是否适用。
[0425]
当针对图片启用lic时,需要另外的cu层级rd检查以确定lic是否适用于cu。 当针
对cu启用lic时,使用均值移除绝对差总和(mean-removed sum of absolutedifference,mr-sad)和均值移除绝对阿达马变换差总和(mean-removed sum of absolutehadamard-transformed difference,mr-satd)代替sad和satd分别用于整数像素运动 搜索和分数像素运动搜索。
[0426]
双向光流
[0427]
双向光流(bi-directional optical flow,bio)是在双向预测的块方式运动补偿之上执 行的采样方式运动细化。样本层级运动细化不使用信令。
[0428]
假设i
(k)
是在块运动补偿之后来自参考k(k=0,1)的亮度值,且分 别是i
(k)
梯度的水平分量和竖直分量。假设光流是有效的,运动矢量场(v
x
,v
y
)通过方程式 (1.13)给出:
[0429][0430]
将此光流方程式与埃尔米特内插结合起来用于每个样本的运动轨迹,结果得到独特 的三阶多项式,它在两端与函数值i
(k)
和导数都匹配。此多项式在t=0 时的值是bio预测值:
[0431][0432]
这里,τ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。
[0433]
运动矢量场(v
x
,v
y
)通过最小化点a和b(运动轨迹和参考帧平面的交点)中的值之 间的差值δ来确定。模型仅使用δ的局部泰勒展开式的第一个线性项:
[0434][0435]
方程式(1.15)中的所有值取决于样本位置(i

,j

),目前从符号中省略。假设运动在 局部周围区域是一致的,则在以当前预测点(i,j)为中心的(2m+1)
×
(2m+1)方窗ω内最小 化δ,其中m等于2:
[0436][0437]
对于此优化问题,当前的开发使用了一种简化的方法,首先在竖直方向上最小化, 然后在水平方向上最小化。这得出:
[0438][0439][0440]
其中,
[0441][0442]
为了避免被零或非常小的值除,在方程式(1.17)和(1.18)中引入正则化参数r和 m。
[0443]
r=500
·4d-8
ꢀꢀꢀ
(1.20)
[0444]
m=700
·4d-8
ꢀꢀꢀ
(1.21)
[0445]
这里d是视频样本的位深度。
[0446]
为了保持bio的内存访问与常规双向预测运动补偿相同,仅针对当前块内的位置计 算所有的预测和梯度值i
(k)
,在方程式(1.19)中,以预测块的边界上的 当前预测点为中心的(2m+1)
×
(2m+1)方窗ω需要访问块外的位置。在当前的开发中,块 外的值i
(k)
,被设置成等于块内最接近的可用值。例如,这可以实现为填充。
[0447]
使用bio时,可能会针对每个样本细化运动场,但为了降低计算复杂度,可以使用 基于块的bio设计。基于4
×
4块计算运动细化。在基于块的bio中,聚合4
×
4块中的所 有样本在方程式(1.19)中的值sn,然后使用聚合的值sn得到4
×
4块的bio运动矢量偏 移量。使用以下公式进行基于块的bio得到:
[0448][0449]
其中bk表示属于预测块的第k个4
×
4块的样本集合。方程式(1.17)和(1.18)中 的sn替换为((sn,bk)>>4)以得到相关的运动矢量偏移量。
[0450]
在一些情况下,由于噪音或不规则运动,bio的mv方案可能不可靠。因此,在bio 中,mv方案的大小被截取为阈值thbio。基于当前图片的参考图片是否都来自一个方向 来
确定所述阈值。如果当前图片的所有参考图片均来自一个方向,则将所述阈值的值设 置成12
×214-d
;否则设置成12
×213-d

[0451]
使用与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中 预测信号生成的内插滤波器。
[0452]
表1.4
[0453]
分数像素位置用于梯度的内插滤波器(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}
[0454]
表1.5
[0455]
[0456][0457]
在当前的开发中,当两个预测来自不同参考图片时,将bio应用于所有双向预测块。 当针对cu启用lic时,禁用bio。在正常mc过程之后针对块应用obmc。为了降低 计算复杂性,在obmc过程中不应用bio。这意味着仅在使用其自身的mv时在mc过 程中应用bio,而在obmc过程中使用相邻块的mv时在mc过程中不应用bio。
[0458]
加权样本预测模块
[0459]
作为可选工具,hevc提供加权预测(weighted prediction,wp)工具。wp的原理 是用线性加权预测信号p

(具有权重w和偏移量o)代替帧间预测信号p:
[0460]
单向预测:p

=w
×
p+o
ꢀꢀꢀ
(1.23)
[0461]
双向预测:p

=(w0
×
p0+o0+w1
×
p1+o1)/2
ꢀꢀꢀ
(1.24)
[0462]
由编码器选择适用的权重和偏移量并在码流内传送。l0和l1后缀分别定义参考图 片列表的list0和list1。对于内插滤波器,在对预测信号求平均之前,将位深度保持为 14位精度。
[0463]
在每个列表l0和l1中具有可用的至少一个参考图片的双向预测的情况下,以下公 式适用于与亮度通道有关的加权预测参数的显式信令。对应的公式适用于色度通道和单 向预测的情况。
[0464][0465]
其中,
[0466]
log2wd=luma_log2_weight_denom+14-bitdepth
[0467]
w0=lumaweightl0[refidxl0],w1=lumaweightl1[refidxl1]
[0468]
o0=luma_offset_l0[refidxl0]*highprecisionscalefactor
[0469]
o1=luma_offset_l1[refidxl1]*highprecisionscalefactor
[0470]
highprecisionscalefactor=(1<<(bitdepth-8))
[0471]
边界预测滤波(boundary prediction filters)是对于预测像素最左列或最上列进行进 一步调整的帧内编码方法。在hevc中,在针对竖直或水平内部模式已经产生内部预测 块之后,分别对预测样本的最左列或最顶行进行进一步调整。此方法可进一步扩展到若 干个对角线内部模式,并且使用双抽头(用于内部模式2和34)或三抽头滤波器(用于 内部
模式3到6和30到33)进一步调整至多四列或四行的边界样本。
[0472]
在hevc和之前的标准中,参考帧分为前向和后向两组,分别放置在两个参考帧列 表(reference picture list)中,一般命名为list0和list1。通过帧间预测方向指示当前块使 用前向预测、后向预测或双向预测其中的何种预测方向,根据预测的方向选择使用不同 的参考帧列表list0、list1或者list0和list1。对于选定的参考帧列表,通过参考帧索引指 明参考帧。在选定的参考帧中,通过运动矢量指示当前块的预测块在参考帧中的参考块 相对当前帧中当前块的位置偏移。然后根据预测方向,使用从list0、list1或者list0和list1 中的参考帧中取得的预测块生成最终的预测块。其中当预测方向为单向时,直接使用从 list0或list1中的参考帧中取得的预测块,当预测方向为双向时,将list0和list1中的参 考帧中取得的预测块通过加权平均的方式合成最终预测块。
[0473]
为了解决现有技术中帧间预测模式获得的预测像素在空域上存在一定的不连续性, 影响预测效率,造成预测残差能量较大的问题,本申请实施例提供一种帧间预测方法, 能够在生成预测像素之后,利用周围相邻已重构像素对于预测像素进行滤波,提高编码 效率。
[0474]
图13为本申请实施例提供的一种帧间预测方法的示意性流程图,如图13所示,该 方法包括步骤s1301-s1307。
[0475]
s1301、解析码流,以获得待处理图像块的运动信息。
[0476]
其中,该待处理图像块可以称为当前块,或当前cu。
[0477]
可以理解的,可由图1中的视频解码器200执行步骤s1301。
[0478]
示例性的,本申请实施例可以采用基于块的运动补偿技术,通过为当前编码块在已 编码块中寻找一个最佳匹配块,使得预测块与当前块残差尽可能的小,并计算当前块的 偏移mv。
[0479]
示例性的,上述待处理图像块可以为图像中的任一分块,该待处理图像块的尺寸可 以为2*2、4*4、8*8、16*16、32*32、64*64、或128*128,本申请实施例对此并不进行 限定。
[0480]
示例性的,若该待处理图像块(当前块)在编码端采用融合模式(merge)编码,可 以将与该当前块的空间候选和时域候选加入当前块的融合运动信息候选列表中,其方法 与hevc中的方法相同。示例性的,融合运动信息候选列表的具体方法可以采用图8-图 12描述的任一技术。
[0481]
示例性的,若当前块为merge模式,则根据码流中携带的融合索引确定当前块的运 动信息。若当前块为inter mvp模式,则根据码流中传送的帧间预测方向、参考帧索引、 运动矢量预测值索引、运动矢量残差值确定当前块运动信息。
[0482]
步骤s1301可以采用hevc或者vtm中的方法进行,也可采用其他生成运动矢量 预测候选列表的方法,本申请实施例对此不作限定。
[0483]
s1302、(可选的)确定更新待处理图像块的预测块。
[0484]
可以理解的,可由图1中的视频解码器200执行步骤s1302。
[0485]
上述待处理图像块的预测块即为当前块的预测块,可以基于一个或多个已编码块预 测得到。
[0486]
示例性的,可以根据待处理图像块的更新判别标识确定是否更新待处理图像块的预 测块,即可以根据待处理图像块的更新判别标识确定是否对该待处理图像块进行空域
滤 波。
[0487]
在一种可行的实施方式中,可以通过解析码流,获得待处理图像块的更新判别标识 信息,该更新判别标识信息用于指示是否更新该待处理图像块的预测块;根据该待处理 图像块的更新判别标识信息进一步确定更新待处理图像块的预测块。
[0488]
在另一种可行的实施方式中,可以通过获取待处理图像块的预设的更新判别标识信 息,该预设的更新判别标识信息用于指示是否更新该待处理图像块的预测块;根据该预 设的更新判别标识进一步确定更新待处理图像块的预测块。
[0489]
示例性的,若该更新判别标识为真,可以确定更新待处理图像块的预测块,即对待 处理图像块的预测块进行空域滤波;若该更新判别标识为假,确定不需要更新待处理图 像块的预测块。本申请实施例对于更新判别标识的具体形式并不进行限定,在此仅是以 更新判别标识为真或假进行示例性说明。
[0490]
s1303、(可选的)确定待处理图像块的预测模式。
[0491]
可以理解的,可由图1中的视频解码器200执行步骤s1303。
[0492]
示例性的,上述待处理图像块的预测模式可以为融合模式(merge)和/或帧间高级 运动矢量预测模式(inter amvp),本申请实施例对此并不进行限定。可以理解的,该 待处理图像块的预测模式可以仅为merge,也可以仅为inter amvp,还可以为merge和 inter amvp两种模式合并的预测模式。
[0493]
需要说明的是,上述帧间高级运动矢量预测模式(inter amvp)也可称为帧间运动 矢量预测模式(inter mvp)。
[0494]
示例性的,上述确定待处理图像块的预测模式的方法可以通过解析码流,获取待处 理图像块的预测模式,确定该待处理图像块的预测模式为merge和/或inter amvp模式。
[0495]
可以理解的,本申请实施例可以对在帧间编码块以merge和/或inter amvp模式进 行编码的块执行空域滤波方法,即可以对以merge和/或inter amvp模式编码的块在解 码端解码时进行滤波处理。
[0496]
s1304、基于运动信息对待处理图像块进行运动补偿,以获得待处理图像块的预测块。
[0497]
其中,该待处理图像的预测块中包括目标像素点的预测值。
[0498]
可以理解的,可由图1中的视频解码器200执行步骤s1304。
[0499]
示例性的,运动补偿是通过参考图像来预测、补偿当前的局部图像,能够减少帧序 列冗余信息。
[0500]
示例性的,基于运动信息进行运动补偿时,可以利用参考帧方向、参考帧序号和运 动矢量,从参考帧中获得待处理图像块的预测块,其中,该参考帧方向可以为前向预测、 后向预测或双向预测,本申请实施例对此并不进行限定。
[0501]
示例性的,当参考帧方向为前向预测时,当前编码单元(cu)可以从前向参考图像 集合中选择一个参考图像获取参考块;当参考帧方向为后向预测时,当前编码单元(cu) 可以从后向参考图像集合中选择一个参考图像获取参考块;当参考帧方向为双向预测时, 当前编码单元(cu)可以从前向和后向参考图像集合中各选择一个参考图像获取参考块。
[0502]
需要说明的是,上述步骤s1304中基于运动信息对待处理图像块进行运动补偿的方 法,可以采用hevc或者vtm中的方法,也可以采用其他方法获得待处理图像块的预 测
块,本申请实施对此并不进行限定。
[0503]
s1306、将一个或多个参考像素点的重构值和目标像素点的预测值进行加权计算,以 更新目标像素点的预测值。
[0504]
其中,参考像素点与目标像素点具有预设的空域位置关系。
[0505]
可以理解的,可由图1中的视频解码器200执行步骤s1306。
[0506]
示例性的,上述目标像素点为待处理图像块的预测块内的像素点,该目标像素点的 预测值可以根据参考块内像素点的像素值确定。
[0507]
示例性的,上述参考像素点可以为与当前cu(待处理图像块)在空间域上临近的已 重构像素点,具体的,该参考像素点可以为图像中除该当前cu块以外的块中的已重构 像素点,例如,参考像素点可以为当前cu的上方或左侧的cu块中的已重构像素点,本 申请实施例对此并不进行限定。
[0508]
可以理解的,上述步骤s1306是利用当前cu在空间域上临近的已重构像素点对目 标像素点的预测像素进行空域滤波,具体是采用当前cu在空间域上临近的已重构像素 点的像素值与当前块中的目标像素点的预测像素进行加权计算,得到更新的后的目标像 素点的预测像素。
[0509]
在一种可行的实施方式中,上述一个或多个参考像素点可以包括与目标像素点具有 相同横坐标且具有预设纵坐标差的已重构像素点,或者,与目标像素点具有相同纵坐标 且具有预设横坐标差的已重构像素点。
[0510]
示例性的,如图14所示,以图片的左上角为坐标系原点,坐标系的x轴方向沿图片 上边缘向右延伸,坐标系的y轴方向沿图像左边缘向下延伸,若待处理图像块(当前cu) 中的目标像素点的坐标为(xp,yp),待处理图像块内的左上角像素点的坐标为(xn,yn), 该目标像素点的参考像素点可以为待处理图像块的上方或左侧的块中的已重构像素点, 若该参考像素点为待处理图像块的上方的块中的已重构像素点,由于该参考像素点为待 处理图像块以外的块中的已重构像素点,因此,该参考像素点的纵坐标为待处理图像块 上边缘的纵坐标减预设位置关系n,横坐标与待处理图像块的目标像素点的横坐标相同, 即参考像素点的坐标为(xp,yn-n);若该参考像素点为待处理图像块的左侧的块中的已 重构像素点,由于该参考像素点为待处理图像块以外的块中的已重构像素点,因此,该 参考像素点的横坐标为待处理图像块最左侧的横坐标减预设位置关系m,纵坐标与待处 理图像块的目标像素点的纵坐标相同,即参考像素点的坐标为(xn-m,yp),本申请实施 例对于参考像素点与目标像素点所具有的具体空域位置关系(m、n的具体取值)并不 进行限定。
[0511]
在一种可行的实施方式中,可以根据以下公式更新目标像素点的预测值:
[0512][0513]
其中,上述目标像素点的坐标为(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为预设正整数。
[0514]
以下对待处理图像块内的左上角像素点的坐标(xn,yn)在不同情况时,计算目标像 素点的更新后的预测值的具体方法进行说明。
[0515]
第一种情况:若xn大于零,yn等于零,参考像素点(xn-m1,yp)位置的像素已编 码重构,目标像素点的更新后的预测值可以通过如下公式获得:
[0516][0517]
示例性的,如图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)。
[0518]
若参考像素点(xn-1,yp)位置的像素已编码重构,可以通过参考像素点的重构值 recon(xn-1,yp)与目标像素点的预测值predp(xp,yp)进行加权计算,得到目标像素点的 更新后的预测值predq(xp,yp)。
[0519]
第二种情况:若xn等于零,yn大于零,参考像素点(xp,yn-m2)位置的像素已编 码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0520][0521]
示例性的,如图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)。
[0522]
若参考像素点(xp,yn-m2)位置的像素已编码重构,可以通过参考像素点的重构值 recon(xp,yn-m2)与目标像素点的预测值predp(xp,yp)进行加权计算,得到目标像素点 的更新后的预测值predq(xp,yp)。
[0523]
第三种情况:若xn大于零,yn大于零,参考像素点(xn-m1,yp)、(xp,yn-m2)位 置的
像素已编码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0524][0525]
示例性的,如图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)。
[0526]
若参考像素点(xn-m1,yp)和(xp,yn-m2)位置的像素已编码重构,可以通过参考像 素点的重构值recon(xn-m1,yp)和recon(xp,yn-m2)与目标像素点的预测值 predp(xp,yp)进行加权计算,得到目标像素点的更新后的预测值predq(xp,yp)。
[0527]
需要说明的是,本申请实施例对于上述加权系数w1,w2,w3,w4,w5和w6的取 值,以及m1和m2的取值并不进行限定,上述仅以m1和m2取1为例进行说明。
[0528]
示例性的,上述加权系数组(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)等数值组合,本申请 实施例对此并不进行限定,在此仅是示例性说明。
[0529]
在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0530][0531]
其中,目标像素点的坐标为(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为预设正整数。
[0532]
示例性的,上述加权系数组(w1,w2,w3)可采取w1+w2+w3等于2的整数次幂 的数值组合,以减少除法运算。例如可以取(6,1,1)、(5,2,1)等数值组合,本 申请实施例对此并不进行限定,在此仅是示例性说明。
[0533]
需要说明的是,该实现方式与前一实现方式的区别在于,该实现方式并不考虑待处 理图像块左侧和上侧的像素,若采用该实现方式更新上述目标像素点的预测值时,参考 像素点的重构值不可用,可采用下述步骤s13061-s13062的方法获取新的参考像素点, 并根据新的参考像素点更新目标像素点的预测值。
[0534]
在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0535][0536]
其中,目标像素点的坐标为(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为预设正整数。
[0537]
以下对待处理图像块内的左上角像素点的坐标(xn,yn)在不同情况时,计算目标像 素点的更新后的预测值的方法进行具体说明。
[0538]
第一种情况:若xn大于零,yn等于零,参考像素点(xn-m1,yp)和(xn-m2,yp)位 置的像素已编码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0539][0540]
可以理解是,与第一种实施方式的第一种情况不同的是,本实施方式的参考像素点 为两个,若待处理图像块为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)。
[0541]
若参考像素点(xn-1,yp)和(xn-2,yp)位置的像素已编码重构,可以通过参考像素点的 重构值recon(xn-1,yp)和recon(xn-2,yp)与目标像素点的预测值predp(xp,yp)进行加 权计算,得到目标像素点的更新后的预测值predq(xp,yp)。
[0542]
第二种情况:若xn等于零,yn大于零,参考像素点(xp,yn-m3)和(xp,yn-m4)位 置的像素已编码重构时,目标像素点的更新后的预测值可以通过如下公式获得:
[0543][0544]
示例性的,与第一种实施方式的第二种情况不同的是,本实施方式的参考像素点
为 两个,若待处理图像块为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)。
[0545]
若参考像素点(xp,yn-1)和(xp,yn-2)位置的像素已编码重构,可以通过参考像素点 的重构值recon(xp,yn-1)和recon(xp,yn-2)与目标像素点的预测值predp(xp,yp)进行 加权计算,得到目标像素点的更新后的预测值predq(xp,yp)。
[0546]
第三种情况:若xn大于零,yn大于零,参考像素点(xn-m1,yp),(xn-m2,yp), (xp,yn-m3)和(xp,yn-m4)位置的像素已编码重构时,目标像素点的更新后的预测值可 以通过如下公式获得:
[0547][0548]
示例性的,与第一种实施方式的第三种情况不同的是,本实施方式的参考像素点在 当前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)。
[0549]
若参考像素点(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)。
[0550]
需要说明的是,本申请实施例对于上述加权系数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的取值可以不同。
[0551]
示例性的,上述加权系数组(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)等数值组合,本申请实施例对此并不进行限定,在此仅是示例性说明。
[0552]
在另一种实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0553][0554]
其中,目标像素点的坐标为(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为预设正整数。
[0555]
示例性的,上述加权系数组(w1,w2,w3,w4,w5)可采取w1+w2+w3+w4+w5 等于2的整数次幂的数值组合,以减少除法运算。例如可以取(3,2,1,1,1)等数值 组合,本申请实施例对此并不进行限定,在此仅是示例性说明。需要说明的是,该实现 方式与前一实现方式的区别在于,该实现方式并不考虑待处理图像块左侧和上侧的像素, 若采用该实现方式更新上述目标像素点的预测值时,参考像素点的重构值不可用,可采 用下述步骤s13061-s13062的方法获取可用的参考像素点,并根据可用的参考像素点更 新目标像素点的预测值。
[0556]
在一种可行的实施方式中,上述一个或多个参考像素点包括以下像素点中的一个或 多个:与目标像素点具有相同横坐标且与待处理图像块的上边缘相邻接的已重构像素点; 或者,与目标像素点具有相同纵坐标且与待处理图像块的左边缘相邻接的已重构像素点; 或者,待处理图像块的右上角的已重构像素点;或者,待处理图像块的左下角的已重构 像素点;或者,待处理图像块的左上角的已重构像素点。
[0557]
在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0558]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2)
[0559]
其中,目标像素点的坐标为(xp,yp),predp(xp,yp)为目标像素点的更新前的预测值, predq(xp,yp)为目标像素点的更新后的预测值,w1,w2为预设常数。
[0560]
具体的:
[0561]
可以首先使用帧内预测中的平面模式(planar),从空域临近像素预测得到第二 预测像素值predp1(xp,yp)。可以理解的,该planar模式使用水平和垂直方向的两个线 性滤波器,并将二者的平均值作为当前块像素的预测值。
[0562]
示例性的,该第二预测像素值predp1(xp,yp)可以使用planar模式获得:
[0563]
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),
[0564]
其中,如图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(待处理图像块)的宽度和高度。
[0565]
在另一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0566]
predq(xp,yp)=(w1*predp(xp,yp) +w2*predv(xp,yp) +w3*predh(xp,yp)+((w1
+w2+w3)/2))/(w1+w2+w3)
[0567]
其中,
[0568]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh)+ntbh/2)>>log2(ntbh),
[0569]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1)+ntbw/2)>>log2(ntbw), 所述目标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0570]
在另一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0571]
predq(xp,yp)=(((w1*predp(xp,yp))<<(log2(ntbw)+log2(ntbh)+1)) +w2*predv(xp,yp) +w3*predh(xp,yp) +(((w1+w2+w3)/2)<<(log2(ntbw)+log2(ntbh)+1))) /(((w1+w2+w3)<<(log2(ntbw)+log2(ntbh)+1)))
[0572]
其中,
[0573]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0574]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0575]
需要说明的是,生成第二预测像素值predp1(xp,yp)所使用平面模式(planar)算 法不仅限于vtm中的算法,也可以使用hevc和h.264中的planar算法,本申请实 施例对此并不进行限定。
[0576]
需要说明的是,本申请实施例对于上述加权系数w1和w2的取值并不进行限定,示 例性的,上述加权系数组(w1,w2)可采取w1+w2等于2的整数次幂的数值组合,以 减少除法运算。例如可以取(6,2)、(5,3)、(4,4)等数值组合,本申请实施例 对此并不进行限定,在此仅是示例性说明。
[0577]
在另一种可行的实施方式中,可以根据以下公式更新上述目标像素点的预测值:
[0578]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2)
[0579]
其中,predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+1)>>1,
[0580]
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),
[0581]
目标像素点的坐标为(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为待 处理图像块的宽度和高度。
[0582]
在另一种可行的实施方式中,可以利用帧内预测中的基于位置的帧内预测联合处理 技术(position-dependent intra prediction combination process)对于帧间预测块进行处理, 目标像素点的更新后的预测值predq(xp,yp)可以采用vtm中帧内预测联合处理技术的 dc模式的方法获得。可以理解的,采用dc模式时,当前块的预测值可由其左侧和上方 的参考像素的平均值得到。
[0583]
示例性的,目标像素点的更新后的预测值predq(xp,yp)可以通过下式得到:
[0584]
其中, 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为待处理图像块的宽度和高度, cliplcmp为钳位操作。
[0585]
需要说明的是,上述目标像素点的更新后的预测值predq(xp,yp)不仅可以使用vtm 中的帧内预测联合处理技术,也可以使用jem中的算法。
[0586]
在一种可行的实施方式中,可以利用帧内预测中的基于位置的帧内预测联合处理技 术对于帧间预测块进行处理,目标像素点的更新后的预测值predq(xp,yp)可以采用vtm 中帧内预测联合处理技术的planar模式的方法获得,如下式:
[0587]
其中, 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为 钳位操作。
[0588]
需要说明的是,上述目标像素点的更新后的预测值predq(xp,yp)不仅可以使用vtm 中的算法,也可以使用jem中的算法。
[0589]
在一种可行的实施方式中,可以采用帧内预测中的边界滤波技术对帧间预测像素进 行滤波处理,边界滤波技术可以参照hevc的方法进行,在此不再赘述。
[0590]
需要说明的是,根据上述任一方式更新目标像素点的预测值时,若参考像素点的重 构值不可用,上述步骤s1306还可以包括以下步骤s13061-s13062。
[0591]
s13061、当参考像素点的重构值不可用时,按照预设顺序确定与待处理图像块的上 边沿和左边沿相邻的像素点的可用性,直到获取预设个数的可用的参考像素点。
[0592]
可以理解的,上述参考像素点的重构值不可用的情况可以包括:待处理图像块位于 图片的上方边缘位置时,坐标位置(xp,yn-m)的参考像素点的重构值不存在,或者待处 理图像块位于图片的左侧边缘位置时,坐标位置(xn-n,yp)的参考像素点的重构值不存 在,或者参考像素点的重置无法获得等,本申请实施例对于参考像素点的重构值不可用 的具体情况并不进行限定,在此仅是示例性说明。
[0593]
一种实现方式中,如图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)的顺序遍历所有像素点,寻找待处理图像块的上边 沿和左边沿相邻的像素点中可用的参考像素点。需要说明的是,本申请实施例对于上述 预设顺序的具体顺序并不进行限定,在此仅是示例性说明。
[0594]
示例性的,当所有参考像素点中至少有一个参考像素点可用时。若参考像素点(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)的重构值。
[0595]
示例性的,若参考像素点(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的重构值。
[0596]
例如,若参考像素点(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)的重构值可以使用该可 用的参考像素点的重构值。
[0597]
示例性的,若参考像素点(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的重构值。
[0598]
例如,若参考像素点(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)的重构值可以使用该可用的参考 像素点的重构值。
[0599]
需要说明的,上述新的参考像素点可以为按照上述预设顺序寻找的第一个可用的参 考像素点,也可以是按照上述预设顺序寻找的任一个可用的参考像素点,本申请实施例 对此并不进行限定。
[0600]
可以理解的,采用该方法,对于不可用的参考像素点,可以按照预设顺序寻找待处 理图像块的上边沿和左边沿相邻的像素点中可用的参考像素点,并使用该可用的参考像 素点的重构值作为不可用的参考像素点的重构值。
[0601]
s13062、将可用的参考像素点的重构值和目标像素点的预测值进行加权计算,以更 新目标像素点的预测值。
[0602]
示例性的,可以根据新的参考像素点的重构值按照上述任一实施方式更新上述目标 像素点的预测值。
[0603]
需要说明的是,若参考像素点的重构值不可用,而且按照步骤s13061确定待处理图 像块的上边沿和左边沿相邻的像素点均不可用,则可以将参考像素点的重构值设置为 1<<(bitdepth-1),其中,bitdepth为参考像素点采样值的位深。例如,待处理图像块 位于图片左上角位置时,该待处理图像块的左上角的坐标为(0,0),则该待处理图像 块的上边沿和左边沿相邻的像素点均不可用,可以将该待处理图像块的目标像素点对应 的参考像素点的重构值设置为1<<(bitdepth-1)。
[0604]
上述多种实施方式通过在生成帧间预测像素的过程中,对于帧间预测像素进行空域 滤波,相比于现有技术,提高了编码效率。
[0605]
一种可行的实施方式中,在上述步骤s1306之前还可以包括步骤s1305。
[0606]
s1305、(可选的)对参考像素点进行滤波处理。
[0607]
可以理解的,可由图3中的视频解码器的滤波器单元206执行步骤s1305。
[0608]
示例性的,上述对参考像素点进行滤波处理可以包括:当参考像素点位于待处理图 像块的上方时,对参考像素点的重构值和参考像素点的左右相邻像素点的重构值进行加 权计算;当参考像素点位于所述待处理图像块的左方时,对参考像素点的重构值和参考 像素点的上下相邻像素点的重构值进行加权计算;采用加权计算的结果更新参考像素点 的重构值。
[0609]
可以理解的,上述步骤s1305对参考像素点进行滤波处理后,在执行步骤s1306时, 可以采用经滤波处理后更新的参考像素点的重构值和目标像素点的预测值进行加权计算, 以更新目标像素点的预测值。
[0610]
需要说明的,上述对参考像素点进行滤波处理的具体方法可以参考步骤s1306的滤 波方法,在此不再赘述。
[0611]
可以理解的,通过对参考像素点进行滤波处理更新参考像素点的重构值,并利用更 新以后的参考像素点的重构值对目标像素点进行滤波处理,能够进一步提高编码效率, 减小预测残差。
[0612]
一种可行的实施方式中,在上述步骤s1306之前或s1306之后还可以包括步骤s1307。
[0613]
s1307、(可选的)根据运动信息和码流信息,利用除本方法之外的帧间编码技术继 续进行帧间预测。
[0614]
可以理解的,可由图3中的视频解码器的帧间预测器210执行步骤s1307。
[0615]
例如,可使用hevc或者vtm中的技术,包括并不仅限于双向光流方法、解码端 运动矢量改良方法,局部照度补偿技术(lic)、通用加权预测(gbi)、重叠块运动补 偿(obmc)、解码端运动矢量补偿(dmvd)技术。可以采用hevc或者vtm中的 方法进行,也可采用其他生成运动矢量预测候选列表的方法,本申请实施例对此不作限 定。
[0616]
需要说明的是,本申请实施例对于上述方法步骤s1301-s1307的执行顺序并不进行 限定。例如,步骤s1305可以在步骤s1307之前执行,也可以在步骤s1307之后执行, 本申请实施例对此并不进行限定。
[0617]
在一种可行的实施方式中,在所述基于运动信息对待处理图像块进行运动补偿之前, 还可以包括:通过第一预设算法对运动信息进行初始更新;对应的,所述基于所述运动 信息对所述待处理图像块进行运动补偿,包括:基于初始更新后的运动信息对待处理图 像块进行运动补偿。
[0618]
在另一种可行的实施方式中,在所述获得待处理图像块的预测块之后,还可以包括: 通过第二预设算法对预测块进行预更新;对应的,所述将一个或多个参考像素点的重构 值和所述目标像素点的预测值进行加权计算,包括:将所述一个或多个参考像素点的重 构值和所述目标像素点的预更新后的预测值进行加权计算。
[0619]
在另一种可行的实施方式中,在所述将一个或多个参考像素点的重构值和所述目标 像素点的预测值进行加权计算,以更新所述目标像素点的预测值之后,还包括:通过第 二预设算法对所述目标像素点的预测值进行更新。
[0620]
还应理解的是,在获得目标像素点的更新后的预测值之后,还可以包括:将最终帧 间预测图像与残差图像相加,得到当前块的重构图像。具体的,如果当前块存在残差, 则将残差信息和预测图像相加,获得当前块的重构图像;如果当前块没有残差,则预测 图像为当前块的重建图像。上述过程可采用与hevc或者vtm相同的方法,也可采用 其他运动补偿、图像重建方法,不做限定。
[0621]
本申请实施例提供的帧间预测方法,通过解析码流,获得待处理图像块的运动信息; 基于运动信息对待处理图像块进行运动补偿,以获得待处理图像块的预测块;将一个或 多个参考像素点的重构值和目标像素点的预测值进行加权计算,以更新目标像素点的
预 测值,该参考像素点与目标像素点具有预设的空域位置关系。本申请实施例获取待处理 图像块的目标像素点的预测值之后,通过利用周围邻近已重构像素对该目标像素点的预 测值进行滤波处理,能够提高编码压缩效率,提升psnr bdrate 0.5%,相比于现有技术, 在生成帧间预测像素的过程中,对于帧间预测像素进行空域滤波,提高了编码效率。
[0622]
本申请实施例提供一种帧间预测装置,该装置可以为视频解码器,具体的,帧间预 测装置用于执行以上帧间预测方法中的解码装置所执行的步骤。本申请实施例提供的帧 间预测装置可以包括相应步骤所对应的模块。
[0623]
本申请实施例可以根据上述方法示例对帧间预测装置进行功能模块的划分,例如, 可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理 模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式 实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现 时可以有另外的划分方式。
[0624]
在采用对应各个功能划分各个功能模块的情况下,图18示出上述实施例中所涉及帧 间预测装置的一种可能的结构示意图。如图18所示,帧间预测装置1800可以包括解析 模块1801、补偿模块1802、计算模块1803。具体的,各模块功能如下:
[0625]
解析模块1801,用于解析码流,以获得待处理图像块的运动信息。
[0626]
补偿模块1802,用于基于所述运动信息对所述待处理图像块进行运动补偿,以获得 所述待处理图像块的预测块,该待处理图像块的预测块中包括目标像素点的预测值。
[0627]
计算模块1803,用于将一个或多个参考像素点的重构值和所述目标像素点的预测值 进行加权计算,以更新所述目标像素点的预测值,其中,所述参考像素点与所述目标像 素点具有预设的空域位置关系。
[0628]
在一种可行的实施方式中,所述一个或多个参考像素点包括与所述目标像素点具有 相同横坐标且具有预设纵坐标差的已重构像素点,或者,与所述目标像素点具有相同纵 坐标且具有预设横坐标差的已重构像素点。
[0629]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0630][0631]
其中,所述目标像素点的坐标为(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为预设正整数。
[0632]
在一种可行的实施方式中,w1+w2=r,或,w3+w4=r,或,w5+w6+w7=r,其中, r为2
的n次方,n为非负整数。
[0633]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0634][0635]
其中,所述目标像素点的坐标为(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为预设正整数。
[0636]
在一种可行的实施方式中,w1+w2+w3=s,或,w4+w5+w6=s,或, w7+w8+w9+w10+w11=s,其中,s为2的n次方,n为非负整数。
[0637]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0638][0639]
其中,所述目标像素点的坐标为(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为预设正整数。
[0640]
在一种可行的实施方式中,w1+w2+w3=r,其中,r为2的n次方,n为非负整数。
[0641]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0642]
[0643]
其中,所述目标像素点的坐标为(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为预设正整数。
[0644]
在一种可行的实施方式中,w1+w2+w3+w4+w5=s,其中,s为2的n次方,n为非 负整数。
[0645]
在一种可行的实施方式中,所述一个或多个参考像素点包括以下像素点中的一个或 多个:与所述目标像素点具有相同横坐标且与所述待处理图像块的上边缘相邻接的已重 构像素点;或者,与所述目标像素点具有相同纵坐标且与所述待处理图像块的左边缘相 邻接的已重构像素点;或者,所述待处理图像块的右上角的已重构像素点;或者,所述 待处理图像块的左下角的已重构像素点;或者,所述待处理图像块的左上角的已重构像 素点。
[0646]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0647]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2)
[0648]
其中,
[0649]
predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+ntbw*ntbh)>>(log2(ntbw)+log2(ntbh)+ 1),predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0650]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0651]
在一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0652]
predq(xp,yp)=(w1*predp(xp,yp) +w2*predv(xp,yp) +w3*predh(xp,yp)+((w1+w2+w3)/2))/(w1+w2+w3)
[0653]
其中,
[0654]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh)+ntbh/2)>>log2(ntbh),
[0655]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1)+ntbw/2)>>log2(ntbw), 所述目标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0656]
在一种可行的实施方式中,根据以下公式更新所述目标像素点的预测值:
[0657]
predq(xp,yp)=(((w1*predp(xp,yp))<<(log2(ntbw)+log2(ntbh)+1)) +w2*
predv(xp,yp) +w3*predh(xp,yp) +(((w1+w2+w3)/2)<<(log2(ntbw)+log2(ntbh)+1))) /(((w1+w2+w3)<<(log2(ntbw)+log2(ntbh)+1)))
[0658]
其中,
[0659]
predv(xp,yp)=((ntbh-1-yp)*p(xp,-1)+(yp+1)*p(-1,ntbh))<<log2(ntbw),
[0660]
predh(xp,yp)=((ntbw-1-xp)*p(-1,yp)+(xp+1)*p(ntbw,-1))<<log2(ntbh),所述目 标像素点的坐标为(xp,yp),所述待处理图像块内的左上角像素点的坐标为 (0,0),predp(xp,yp)为所述目标像素点的更新前的预测值,predq(xp,yp)为所述目标像 素点的更新后的预测值,p(xp,-1),p(-1,ntbh),p(-1,yp),p(ntbw,-1)分别为位于坐 标位置(xp,-1),(-1,ntbh),(-1,yp),(ntbw,-1)的所述参考像素点的重构值,w1,w2 为预设常数,ntbw和ntbh为所述待处理图像块的宽度和高度。
[0661]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0662]
predq(xp,yp)=(w1*predp(xp,yp)+w2*predp1(xp,yp) +((w1+w2)/2))/(w1+w2),
[0663][0664]
其中,predp1(xp,yp)=(predv(xp,yp)+predh(xp,yp)+1)>>1,
[0665]
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),
[0666]
所述目标像素点的坐标为(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 为所述待处理图像块的宽度和高度。
[0667]
在一种可行的实施方式中,w1和w2的和为2的n次方,其中,n为非负整数。
[0668]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点的 预测值:
[0669]
其 中, 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为钳位操作。
[0670]
在一种可行的实施方式中,所述计算模块1803根据以下公式更新所述目标像素点
的 预测值:
[0671]
其中, 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为钳位操作。
[0672]
在一种可行的实施方式中,所述计算模块1803,还用于当所述参考像素点的重构值 不可用时,按照预设顺序确定与所述待处理图像块的上边沿和左边沿相邻的像素点的可 用性,直到获取预设个数的可用的参考像素点;将该可用的参考像素点的重构值和上述 目标像素点的预测值进行加权计算。
[0673]
在一种可行的实施方式中,所述计算模块1803还用于:当所述参考像素点位于所述 待处理图像块的上方时,对所述参考像素点的重构值和所述参考像素点的左右相邻像素 点的重构值进行加权计算;当所述参考像素点位于所述待处理图像块的左方时,对所述 参考像素点的重构值和所述参考像素点的上下相邻像素点的重构值进行加权计算;采用 所述加权计算的结果更新所述参考像素点的重构值。
[0674]
在一种可行的实施方式中,所述计算模块1803还用于:通过第一预设算法对所述运 动信息进行初始更新;对应的,所述补偿模块1802具体用于:基于所述初始更新后的运 动信息对所述待处理图像块进行运动补偿。
[0675]
在一种可行的实施方式中,所述计算模块1803还用于:通过第二预设算法对所述预 测块进行预更新;对应的,所述计算模块1803具体用于:将所述一个或多个参考像素点 的重构值和所述目标像素点的预更新后的预测值进行加权计算。
[0676]
在一种可行的实施方式中,所述计算模块1803还用于:通过第二预设算法对所述目 标像素点的预测值进行更新。
[0677]
在一种可行的实施方式中,所述解析模块1801还用于:解析所述码流,以获得所述 待处理图像块的预测模式;确定所述预测模式为融合模式(merge)和/或帧间高级运动 矢量预测模式(inter amvp)。
[0678]
在一种可行的实施方式中,所述解析模块1801还用于:解析所述码流,以获得所述 待处理图像块的更新判别标识信息;确定所述更新判别标识信息指示更新所述待处理图 像块的预测块。
[0679]
在一种可行的实施方式中,所述计算模块1803还用于:获取所述待处理图像块的预 设的更新判别标识信息;确定所述更新判别标识信息指示更新所述待处理图像块的预测 块。
[0680]
图19为本申请实施例中的帧间预测设备1900的一种示意性结构框图。具体的,包 括:处理器1901和耦合于所述处理器的存储器1902;所述处理器1901用于执行图13 所示的
实施例以及各种可行的实施方式。
[0681]
其中,处理器1901可以是中央处理器(central processing unit,cpu),通用处理 器,数字信号处理器(digital signal processor,dsp),asic,fpga或者其他可编程逻 辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公 开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功 能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。
[0682]
其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的 功能描述,在此不再赘述。
[0683]
虽然关于视频编码器100及视频解码器200已描述本申请的特定方面,但应理解, 本申请的技术可通过许多其它视频编码和/或编码单元、处理器、处理单元、例如编码器 /解码器(codec)的基于硬件的编码单元及类似者来应用。此外,应理解,仅作为可行的 实施方式而提供关于图13所展示及描述的步骤。即,图13的可行的实施方式中所展示 的步骤无需必定按图13中所展示的次序执行,且可执行更少、额外或替代步骤。
[0684]
此外,应理解,取决于可行的实施方式,本文中所描述的方法中的任一者的特定动 作或事件可按不同序列执行,可经添加、合并或一起省去(例如,并非所有所描述的动作 或事件为实践方法所必要的)。此外,在特定可行的实施方式中,动作或事件可(例如)经 由多线程处理、中断处理或多个处理器来同时而非顺序地执行。另外,虽然出于清楚的 目的将本申请的特定方面描述为通过单一模块或单元执行,但应理解,本申请的技术可 通过与视频解码器相关联的单元或模块的组合执行。
[0685]
在一个或多个可行的实施方式中,所描述的功能可以硬件、软件、固件或其任何组 合来实施。如果以软件来实施,那么功能可作为一个或多个指令或代码而存储于计算机 可读媒体上或经由计算机可读媒体来传输,且通过基于硬件的处理单元来执行。计算机 可读媒体可包含计算机可读存储媒体或通信媒体,计算机可读存储媒体对应于例如数据 存储媒体的有形媒体,通信媒体包含促进计算机程序(例如)根据通信协议从一处传送到另 一处的任何媒体。
[0686]
以这个方式,计算机可读媒体示例性地可对应于(1)非暂时性的有形计算机可读存储 媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一个或多个计算机或一 个或多个处理器存取以检索用于实施本申请中所描述的技术的指令、代码和/或数据结构 的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0687]
作为可行的实施方式而非限制,此计算机可读存储媒体可包括ram、rom、eeprom、 cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用 于存储呈指令或数据结构的形式的所要代码且可由计算机存取的任何其它媒体。同样, 任何连接可适当地称作计算机可读媒体。例如,如果使用同轴缆线、光纤缆线、双绞线、 数字订户线(dsl),或例如红外线、无线电及微波的无线技术而从网站、服务器或其它远 端源传输指令,那么同轴缆线、光纤缆线、双绞线、dsl,或例如红外线、无线电及微 波的无线技术包含于媒体的定义中。
[0688]
然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其 它暂时性媒体,而替代地针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包 含紧密光盘(cd)、雷射光盘、光盘、数字多功能光盘(dvd)、软性磁盘及蓝光光盘,其 中磁盘通
常以磁性方式再现数据,而光盘通过雷射以光学方式再现数据。以上各物的组 合也应包含于计算机可读媒体的范围内。
[0689]
可通过例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、 现场可编程门阵列(fpga)或其它等效集成或离散逻辑电路的一个或多个处理器来执行指 令。因此,如本文中所使用,术语“处理器”可指前述结构或适于实施本文中所描述的 技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供 于经配置以用于编码及解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。 同样,技术可完全实施于一个或多个电路或逻辑元件中。
[0690]
本申请的技术可实施于广泛多种装置或设备中,包含无线手机、集成电路(ic)或ic 的集合(例如,芯片组)。本申请中描述各种组件、模块或单元以强调经配置以执行所揭示 的技术的装置的功能方面,但未必需要通过不同硬件单元实现。更确切来说,如前文所 描述,各种单元可组合于编码解码器硬件单元中或由互操作的硬件单元(包含如前文所描 述的一个或多个处理器)结合合适软件和/或固件的集合来提供。
[0691]
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范 围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1