用于视频图像编码和解码的方法、编码设备和解码设备与流程

文档序号:13950071阅读:156来源:国知局
用于视频图像编码和解码的方法、编码设备和解码设备与流程

本发明涉及视频图像处理领域,尤其涉及用于视频图像编码和解码的方法、编码设备和解码设备。



背景技术:

在各种视频编解码器中,运动估计/运动补偿是一种影响编码性能的关键技术。在现有的各种视频编解码器中,假设物体的运动总是满足平动运动,整个物体的各个部分有相同的运动,采用基于块的运动补偿技术。但是这些方法都是建立在平动模型(translationalmotionmodel)的基础上,都是基于块运动补偿的方法进行的各种改进。现实世界中运动有多样性,仿射,缩放,旋转和剪切运动等非规则运动普遍存在,这些运动的存在会造成基于块运动补偿的运动预测效果不理想。在上世纪90年代开始,视频编码专家就意识到了非规则运动的普遍性,并通过引进非规则运动模型,例如仿射运动模型,来提高视频编码效率。

在现有技术中,通过仿射运动模型编码,可以根据率失真优化原则比较使用该仿射参数模型对当前块编码的拉格朗日代价和编码器中其他模式的代价,如果仿射参数模型编码的代价小于其他编码模式的代价,则最终选定当前块按仿射参数模型编码,把量化后的仿射模型参数编写入码流,以便解码器能利用该参数重建当前块。但现有技术中,需要使用六参数仿射运动参数模型,即需要在每个块中使用额外的比特来编码6个仿射运动模型参数,制约了编码效率的进一步提高。



技术实现要素:

本发明提供了一种用于视频图像编码和解码的方法、编码设备和解码设备,能够提高编解码效率。

第一方面,提供了一种用于视频图像编码的方法,该方法包括:确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个运动矢量;根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;根据该第一分量集合的预测值,确定该第一分量集合的待传输值;对该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。

结合第一方面,在第一方面的一种实现方式中,该根据该第一分量集合的预测值,确定该第一分量集合的待传输值,包括:确定该当前编码块的运动模型优化向量;根据该第一分量集合的预测值和该运动模型优化向量,确定该第一分量集合的待传输值。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该方法还包括:根据该当前编码块的尺寸和精度信息,确定运动模型量化精度;相应的,该根据该第一分量集合的预测值和该运动模型优化向量,确定该第一分量集合的待传输值,包括:根据该运动模型量化精度,对该运动模型优化向量进行量化;根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该当前编码块的尺寸包括该当前编码块的宽度和该当前编码块的高度,该精度信息包括该运动矢量组的量化精度;相应的,该根据该当前编码块的尺寸和精度信息,确定该运动模型量化精度,包括:根据下面的公式确定该运动模型量化精度q:

q=1/(s×p),s=max(w,h)

其中,p为该运动矢量组的量化精度,w为该当前编码块的宽度,h为该当前编码块的高度。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该运动模型初始向量和该运动模型优化向量分别包括六个分量,该运动模型初始向量的六个分量与该运动模型优化向量的六个分量一一对应,该运动矢量组包括三个运动矢量,该三个运动矢量与该当前编码块中三个像素点相对应。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量的六个分量中的至少一个分量,该运动模型初始向量的六个分量ai由下式确定:

a0=-vx0

a1=-vy0

其中,i=0,1,2,3,4,5,w为该当前编码块的宽度,h为该当前编码块的高度,vxj为该运动矢量vj在x方向上的分量,vyj为该运动矢量vj在y方向上的分量,j=0,1,2。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的两个分量;该根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值,包括:确定该第一分量集合的待传输值,该第一分量集合的待传输值包括δa0和δa1,其中,为与该第一分量集合对应的量化后的该运动模型优化向量,为该第一分量集合的预测值a0和a1经过量化后得到的数值。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的六个分量;该根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值,包括:确定该第一分量集合的待传输值,该第一分量集合的待传输值包括δai,i=0,1,2,3,4,5,其中,为量化后的该运动模型优化向量,ai为该第一分量集合的预测值。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该确定当前编码块的运动矢量组,包括:确定该当前编码块的多个候选块,该多个候选块中的每个候选块为该当前编码块相邻的已编码块;确定该多个候选块中的每个候选块的运动矢量对应的预测块与该当前编码块的匹配误差值;将该多个候选块对应的多个匹配误差值中最小的匹配误差值对应的候选块,确定为该当前编码块的目标候选块;获取该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号;根据该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值,确定该运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同;根据该第一运动矢量,确定该运动矢量组。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该确定当前编码块的运动矢量组,包括:确定该当前编码块中同一个像素点对应的多个候选块,该多个候选块中的每个候选块为该当前编码块相邻的已编码块;确定该多个候选块中的每个候选块的运动矢量对应的预测块与该当前编码块的匹配误差值;将该多个候选块对应的多个匹配误差值中最小的匹配误差值对应的候选块,确定为该当前编码块的目标候选块;将该目标候选块的运动矢量,确定为该运动矢量组中的第一运动矢量;根据该第一运动矢量,确定该运动矢量组中的第二运动矢量;根据该第一运动矢量和该第二运动矢量,确定该运动矢量组。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该确定当前编码块的运动矢量组,包括:确定该当前编码块的多个候选运动矢量组,该多个候选运动矢量组中的每个候选运动矢量组包括三个候选运动矢量;确定该多个候选运动矢量组中每个候选运动矢量组对应的候选参考帧;对于该每个候选运动矢量组,确定该当前编码块中每个像素点在该候选参考帧中对应的预测点的坐标值;对于该每个候选运动矢量组,根据该当前编码块中每个像素点的坐标值和该每个像素点在该候选参考帧中对应的预测点的坐标值,确定该当前编码块的匹配误差值;将该当前编码块的匹配误差值最小时对应的该候选运动矢量组确定为该当前编码块的运动矢量组。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该确定该当前编码块的运动模型优化向量,包括:根据该运动模型初始向量确定该当前编码块的第一预测块;确定该当前编码块与该第一预测块的第一匹配误差值;从该当前编码块的参考帧包括的多个预测块中确定与该当前编码块匹配误差值最小的第二预测块;确定该当前编码块与该第二预测块的第二匹配误差值;根据该第一匹配误差值和该第二匹配误差值确定该当前编码块的该运动模型优化向量。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该根据该第一匹配误差值和该第二匹配误差值确定该当前编码块的该运动模型优化向量,包括:当该第一匹配误差值小于该第二匹配误差值时,确定该运动模型初始向量为该运动模型优化向量;或当该第一匹配误差值大于该第二匹配误差值时,根据该第二预测块的像素点与该当前编码块的像素点确定该运动模型优化向量。

第二方面,提供了一种用于视频图像解码的方法,该方法包括:根据码流,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括该当前解码块的至少一个运动矢量,该运动模型传输向量包括至少四个分量;根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于根据该运动模型优化向量对该当前解码块进行解码。

结合第二方面,在第二方面的一种实现方式中,该方法还包括:确定该当前解码块的运动模型量化精度;根据该运动模型量化精度,对该运动模型优化向量进行量化;根据量化后的运动模型优化向量,对该当前解码块进行解码。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该确定该当前解码块的运动模型量化精度,包括:根据该当前解码块的尺寸和精度信息,确定该运动模型量化精度。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该当前解码块的尺寸包括该当前解码块的宽度和该当前解码块的高度,该精度信息包括该运动矢量组的量化精度;相应的,该根据该当前解码块的尺寸和精度信息,确定该运动模型量化精度,包括:根据下面的公式确定该运动模型量化精度q:

q=1/(s×p),s=max(w,h)

其中,p为该运动矢量组的量化精度,w为该当前解码块的宽度,h为该当前解码块的高度。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该运动模型初始向量、该运动模型传输向量和该运动模型优化向量分别包括六个分量,该运动矢量组包括三个运动矢量,该三个运动矢量与该当前解码块中三个像素点一一对应。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量的六个分量中的至少一个分量,该运动模型初始向量的六个分量ai由下式确定:

a0=-vx0

a1=-vy0

其中,i=0,1,2,3,4,5,w为该当前解码块的宽度,h为该当前解码块的高度,vxj为该运动矢量vj在x方向上的分量,vyj为该运动矢量vj在y方向上的分量,j=0,1,2。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的两个分量;该根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,包括:确定该当前解码块的运动模型优化向量为(a0',a1',a2',a3',a4',a5'),其中,(δa2,δa3,δa4,δa5)=(a2',a3',a4',a5'),δai为该运动模型传输向量,为该第一分量集合的预测值a0和a1经过量化后得到的数值。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的六个分量;该根据该运动模型的预测参数和该运动模型的解码参数,确定该当前解码块的该运动模型的最优参数,包括:确定该当前解码块的运动模型优化向量为(a0',a1',a2',a3',a4',a5'),其中,δai=ai'-ai,δai为该运动模型传输向量,ai为该第一分量集合的预测值,i=0,1,2,3,4,5。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该确定当前解码块的运动矢量组和运动模型传输向量,包括:根据码流,确定该当前解码块的目标候选块和该目标候选块的运动矢量;获取该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号;根据该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值,确定该运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同;根据该第一运动矢量,确定该运动矢量组。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该根据码流,确定当前解码块的运动矢量组和运动模型传输向量,包括:根据码流,确定该当前解码块的目标候选块的运动矢量;确定该当前解码块的目标候选块的运动矢量为该运动矢量组中的第一运动矢量;根据该第一运动矢量,确定该运动矢量组中的第二运动矢量;根据该第一运动矢量和该第二运动矢量,确定该运动矢量组。

第三方面,提供了一种编码设备,该编码设备包括:第一确定模块,用于确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个运动矢量;第二确定模块,用于根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;第三确定模块,用于根据该第一分量集合的预测值,确定该第一分量集合的待传输值;编码模块,用于对该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。

结合第三方面,在第三方面的一种实现方式中,该第三确定模块具体用于:确定该当前编码块的运动模型优化向量;根据该第一分量集合的预测值和该运动模型优化向量,确定该第一分量集合的待传输值。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第三确定模块具体用于:根据该当前编码块的尺寸和精度信息,确定运动模型量化精度;根据该运动模型量化精度,对该运动模型优化向量进行量化;根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该当前编码块的尺寸包括该当前编码块的宽度和该当前编码块的高度,该精度信息包括该运动矢量组的量化精度;该第三确定模块具体用于:根据下面的公式确定该运动模型量化精度q:

q=1/(s×p),s=max(w,h)

其中,p为该运动矢量组的量化精度,w为该当前编码块的宽度,h为该当前编码块的高度。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该运动模型初始向量和该运动模型优化向量分别包括六个分量,该运动模型初始向量的六个分量与该运动模型优化向量的六个分量一一对应,该运动矢量组包括三个运动矢量,该三个运动矢量与该当前编码块中三个像素点相对应。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第二确定模块具体用于:该第一分量集合包括该运动模型初始向量的六个分量中的至少一个分量,该运动模型初始向量的六个分量ai由下式确定:

a0=-vx0

a1=-vy0

其中,i=0,1,2,3,4,5,w为该当前编码块的宽度,h为该当前编码块的高度,vxj为该运动矢量vj在x方向上的分量,vyj为该运动矢量vj在y方向上的分量,j=0,1,2。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的两个分量;该第二确定模块具体用于:确定该第一分量集合的待传输值,该第一分量集合的待传输值包括δa0和δa1,其中,为与该第一分量集合对应的量化后的该运动模型优化向量,为该第一分量集合的预测值a0和a1经过量化后得到的数值。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的六个分量;该第二确定模块具体用于:确定该第一分量集合的待传输值,该第一分量集合的待传输值包括δai,i=0,1,2,3,4,5,其中,为量化后的该运动模型优化向量,ai为该第一分量集合的预测值。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第一确定模块具体用于:确定该当前编码块的多个候选块,该多个候选块中的每个候选块为该当前编码块相邻的已编码块;确定该多个候选块中的每个候选块的运动矢量对应的预测块与该当前编码块的匹配误差值;将该多个候选块对应的多个匹配误差值中最小的匹配误差值对应的候选块,确定为该当前编码块的目标候选块;获取该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号;根据该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值,确定该运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同;根据该第一运动矢量,确定该运动矢量组。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第一确定模块具体用于:确定该当前编码块中同一个像素点对应的多个候选块,该多个候选块中的每个候选块为该当前编码块相邻的已编码块;确定该多个候选块中的每个候选块的运动矢量对应的预测块与该当前编码块的匹配误差值;将该多个候选块对应的多个匹配误差值中最小的匹配误差值对应的候选块,确定为该当前编码块的目标候选块;将该目标候选块的运动矢量,确定为该运动矢量组中的第一运动矢量;根据该第一运动矢量,确定该运动矢量组中的第二运动矢量;根据该第一运动矢量和该第二运动矢量,确定该运动矢量组。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第一确定模块具体用于:确定该当前编码块的多个候选运动矢量组,该多个候选运动矢量组中的每个候选运动矢量组包括三个候选运动矢量;确定该多个候选运动矢量组中每个候选运动矢量组对应的候选参考帧;对于该每个候选运动矢量组,确定该当前编码块中每个像素点在该候选参考帧中对应的预测点的坐标值;对于该每个候选运动矢量组,根据该当前编码块中每个像素点的坐标值和该每个像素点在该候选参考帧中对应的预测点的坐标值,确定该当前编码块的匹配误差值;将该当前编码块的匹配误差值最小时对应的该候选运动矢量组确定为该当前编码块的运动矢量组。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第三确定模块具体用于:根据该运动模型初始向量确定该当前编码块的第一预测块;确定该当前编码块与该第一预测块的第一匹配误差值;从该当前编码块的参考帧包括的多个预测块中确定与该当前编码块匹配误差值最小的第二预测块;确定该当前编码块与该第二预测块的第二匹配误差值;根据该第一匹配误差值和该第二匹配误差值确定该当前编码块的该运动模型优化向量。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,该第三确定模块具体用于:当该第一匹配误差值小于该第二匹配误差值时,确定该运动模型初始向量为该运动模型优化向量;或当该第一匹配误差值大于该第二匹配误差值时,根据该第二预测块的像素点与该当前编码块的像素点确定该运动模型优化向量。

第四方面,提供了一种解码设备,该解码设备包括:第一确定模块,用于根据码流,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括该当前解码块的至少一个运动矢量,该运动模型传输向量包括至少四个分量;第二确定模块,用于根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;第三确定模块,用于根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于根据该运动模型优化向量对该当前解码块进行解码。

结合第四方面,在第四方面的一种实现方式中,该第三确定模块具体用于:确定该当前解码块的运动模型量化精度;根据该运动模型量化精度,对该运动模型优化向量进行量化;根据量化后的运动模型优化向量,对该当前解码块进行解码。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该第三确定模块具体用于:根据该当前解码块的尺寸和精度信息,确定该运动模型量化精度。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该当前解码块的尺寸包括该当前解码块的宽度和该当前解码块的高度,该精度信息包括该运动矢量组的量化精度;该第三确定模块具体用于:根据下面的公式确定该运动模型量化精度q:

q=1/(s×p),s=max(w,h)

其中,p为该运动矢量组的量化精度,w为该当前解码块的宽度,h为该当前解码块的高度。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该运动模型初始向量、该运动模型传输向量和该运动模型优化向量分别包括六个分量,该运动矢量组包括三个运动矢量,该三个运动矢量与该当前解码块中三个像素点一一对应。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该第二确定模块具体用于:该第一分量集合包括该运动模型初始向量的六个分量中的至少一个分量,该运动模型初始向量的六个分量ai由下式确定:

a0=-vx0

a1=-vy0

其中,i=0,1,2,3,4,5,w为该当前解码块的宽度,h为该当前解码块的高度,vxj为该运动矢量vj在x方向上的分量,vyj为该运动矢量vj在y方向上的分量,j=0,1,2。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的两个分量;该第二确定模块具体用于:确定该当前解码块的运动模型优化向量为(a0',a1',a2',a3',a4',a5'),其中,(δa2,δa3,δa4,δa5)=(a2',a3',a4',a5'),δai为该运动模型传输向量,为该第一分量集合的预测值a0和a1经过量化后得到的数值。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该第一分量集合包括该运动模型初始向量中的六个分量;该第二确定模块具体用于:确定该当前解码块的运动模型优化向量为(a0',a1',a2',a3',a4',a5'),其中,δai=ai'-ai,δai为该运动模型传输向量,ai为该第一分量集合的预测值,i=0,1,2,3,4,5。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该第一确定模块具体用于:根据码流,确定该当前解码块的目标候选块和该目标候选块的运动矢量;获取该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号;根据该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值,确定该运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同;根据该第一运动矢量,确定该运动矢量组。

结合第四方面及其上述实现方式,在第四方面的另一种实现方式中,该第一确定模块具体用于:根据码流,确定该当前解码块的目标候选块的运动矢量;确定该当前解码块的目标候选块的运动矢量为该运动矢量组中的第一运动矢量;根据该第一运动矢量,确定该运动矢量组中的第二运动矢量;根据该第一运动矢量和该第二运动矢量,确定该运动矢量组。

基于上述技术方案,本发明实施例的用于视频图像编码和解码的方法、编码设备和解码设备,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的用于视频图像编码的方法的示意性流程图。

图2是根据本发明实施例的当前编码块或当前解码块与候选块的示意图。

图3是根据本发明另一实施例的用于视频图像解码的方法的示意性流程图。

图4是根据本发明另一实施例的用于视频图像解码的方法的另一示意性流程图。

图5是根据本发明实施例的编码设备的示意性框图。

图6是根据本发明实施例的解码设备的示意性框图。

图7是根据本发明实施例的编码设备的另一示意性框图。

图8是根据本发明实施例的解码设备的另一示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

图1是根据本发明一个实施例的用于视频图像编码的方法的示意性流程图。图1所示的方法可以由编码设备执行,例如编码器。具体地,如图1所示,方法100包括:

s110,确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个运动矢量;

s120,根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;

s130,根据该第一分量集合的预测值,确定该第一分量集合的待传输值;

s140,对该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。

具体地,确定当前编码块的运动矢量组,该运动矢量组包括当前编码块中至少一个像素点对应的运动矢量;根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量中第一分量集合的预测值,该运动模型初始向量包括至少四个分量,第一分量集合包括该运动模型初始向量中的至少一个分量;再根据该当前编码块,确定该运动模型量化精度和运动模型优化向量,根据该量化精度对该运动模型优化向量进行量化;可以根据该运动模型初始向量中第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值,将该第一分量集合的待传输值进行编码,并发送至解码端,以便于解码端进行解码操作;还可以根据量化后的该运动模型优化向量,确定该当前编码块的预测样本,根据该预测样本对当前编码块进行编码并传输。

因此,本发明实施例的用于视频图像编码的方法,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。

在本发明实施例中,对于各个编码标准,针对视频图像的编码过程,对于帧间预测,在运动补偿的计算过程中,采用多种运动模型,例如可以为仿射运动,或一般运动模型,或透视模型,这里以仿射运动模型为例进行说明,但本发明并不限于此。

在s110中,确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个运动矢量,每个运动矢量可以与该当前编码块中的一个像素点对应。对于不同的运动模型,描述该运动模型所需参数的数量不同,对于具有2n个参数的运动模型,确定当前编码块的运动矢量组一般可以包括n个运动矢量。例如,对于仿射运动,将当前编码块中各个像素点通过仿射运动模型表示时,一般需要可以表示为即该仿射运动模型具有6个参数,则该运动矢量组包括至少3个运动矢量。对于一般的运动模型,一般涉及12个参数,则该运动矢量组至少包括6个运动矢量。可选地,确定该运动矢量组中至少一个运动矢量,可以确定该运动矢量组中一个运动矢量,或确定n个运动矢量,或该运动矢量组中的全部运动矢量。例如,对于仿射运动,确定当前编码块的运动矢量组,该运动矢量组可以包括至少3个运动矢量,可以确定该运算矢量组中的一个运动矢量,或3个运动矢量,或全部运动矢量,本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,可以确定该运算矢量组中的至少一个运动矢量。对于hevc(highefficiencyvideocoding)标准,可以通过amvp(advancedmotionvectorprediction)技术确定当前编码块的运动矢量组中的第一运动矢量。具体地,在该当前编码块的周围已编码块中,先确定该当前编码块的多个候选块,可以根据坐标位置确定该多个候选块,该多个候选块与当前编码块相邻,例如,如图2所示,对于当前编码块,一般可以将a-g确定为该当前编码块的多个候选块。然后,确定每个候选块的运动矢量对应的预测块与当前编码块的匹配误差值,具体地,可以根据候选块的运动矢量与当前编码块,在参考帧中确定该候选块的运动矢量对应的预测块,再计算该预测块与当前编码块的匹配误差值,将匹配误差值最小时对应的候选块确定为该当前编码块的目标候选块。然后,分别确定当前编码块和该目标候选块的参考帧的播放序号(poc),根据该当前编码块的参考帧的播放序号(poc)和该目标候选块的参考帧的播放序号(poc)的比值,对该目标候选块的运动矢量进行缩放,并将缩放后的该目标候选块的运动矢量确定为该当前编码块的运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同。

在本发明实施例中,可以将确定的该目标候选块的运动矢量作为后续运动估计的搜索起始点。对于编码设备,可以将该目标候选块的对应的索引值进行编码并发送至解码端,以便于解码端解码并确定该目标候选块及该目标候选块的运动矢量。

在本发明实施例中,可以通过下面的方法确定每个候选块的运动矢量对应的预测块与当前编码块的匹配误差值。具体地,对于当前编码块中的每个像素点,可以通过下面的公式(1)-(4)确定每个像素点的匹配误差值:

φ(xi,yj)=s(xi,yj)-s'(xi,yj)(2)

f(xi,yj)=(gxi,gyj,xigxi,xigyj,yjgxi,yjgyj,)(3)

其中,s(xi,yj)为该像素点的原始像素值,s'(xi,yj)为该像素点在候选块所指向帧中的预测像素值,xi和yi为该像素点的坐标值,gxi是该像素点所在位置的水平梯度,gyi是该像素点所在位置的垂直梯度,这些梯度可以用索贝尔(sobel)算子计算得到。

在本发明实施例中,根据上面的公式可以确定该当前编码块中每个像素点相对于候选块的运动矢量对应的预测块的匹配误差值,将该当前编码块中所有像素点的匹配误差值的绝对值求和,即可得到候选块对应的预测块与该当前编码块的匹配误差值,但本发明并不限于此。根据上面的方法依次确定当前编码块与每个候选块对应的预测块的匹配误差值,从而将匹配误差值最小时对应的候选块作为当前编码块的目标候选块。

可选地,作为一个实施例,以仿射运动为例,确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,通过上述方法确定了该运动矢量组中的一个运动矢量第一运动矢量后,根据图2所示,该第一运动矢量可以对应为该当前编码块的一个顶点的运动矢量,可选地,可以选择与该当前编码块的顶点相邻的两个顶点的运动矢量,作为该运动矢量组中其它运动矢量。该运动矢量组可以表示为{v0,v1,v2},它们的坐标分别是(0,0),(w,0),(0,h),其中,w为该当前编码块的宽度,h为该当前编码块的高度。

可选地,作为一个实施例,以仿射运动为例,确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,可以确定该运动矢量组中的每个运动矢量。具体地,可以先将当前编码块周围多个已编码块确定为多个候选块,该多个候选块对应该当前编码块的同一个像素点,可选地,该像素点可以为当前编码块的顶点,例如,如图2所示,可以确定a、b和c为当前编码块的多个候选块。根据公式(1)-(4),分别确定当前编码块中每个像素点相对于每个候选块的运动矢量对应的预测块的匹配误差值,进而将所有像素点的匹配误差值的绝对值求和,确定当前编码块对于每个候选块的匹配误差值,选择匹配误差值最小时对应的候选块为该当前编码块的目标候选块,并将该目标候选块的运动矢量确定为该当前编码块的运动矢量组中的第一运动矢量,将该目标候选块的参考帧确定为当前编码块的参考帧。将该目标候选块的运动矢量作为当前编码块的第一运动矢量,还可以将该第一运动矢量作为后续运动估计的搜索起始点。对于编码设备,可以将该目标候选块的对应的索引值进行编码并发送至解码端,以便于解码端解码并确定该目标候选块及该目标候选块的运动矢量。

在本发明实施例中,确定该当前编码块的运动矢量组中的第一运动矢量后,根据该第一运动矢量,确定该当前编码块运动矢量组中的第二运动矢量,该第二运动矢量是指该运动矢量组中除了第一运动矢量的其它运动矢量。具体地,先在该当前编码块周围的已编码块中确定该当前编码块的多个候选块,该多个编码块对应该当前编码块的同一个像素点,可选地,该像素点可以为当前编码块的顶点,该像素点与确定第一运动矢量时的多个候选块对应的像素点不同,例如图2所示,该候选块可以包括d和e,该多个候选块不包括确定第一运动矢量时的候选块。然后,确定每个候选块的参考帧,若候选块的参考帧与第一运动矢量对应的目标候选块的参考帧,即当前编码块的参考帧,不是同一帧时,根据该当前编码块的目标候选块的参考帧的播放顺序poc号和候选块的参考帧的播放顺序poc号的比值,将候选块的运动矢量进行缩放,使得当前块与候选块的参考帧的播放顺序号之间的比例,与当前块与候选块的运动矢量之间的比例相同。分别比较每个候选块缩放后的运动矢量与第一运动矢量,当缩放后的候选块的运动矢量与第一运动矢量不相同,且差值最小时,将该候选块确定为当前编码块的第二目标候选块,将该目标候选块对应的缩放后的运动矢量确定为当前编码块的运动矢量组中的第二运动矢量。

在本发明实施例中,根据上述方法,可以确定多个第二运动矢量,例如,当该当前编码块的运动矢量组中包括3个运动矢量时,确定该运动矢量组中的一个第一运动矢量后,可以通过上述方法确定两个第二运动矢量,但本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,还可以通过下面的方法确定该运动矢量组中的每个运动矢量。具体地,确定该当前编码块的多个候选块,该多个候选块均为与当前编码块相邻的已编码块,例如图2所示,a-f为当前编码块的多个候选块。再根据该多个候选块,确定当前编码块的多个候选运动矢量组,每个候选运动矢量组包括3个运动矢量,三个运动矢量对应当前编码块的三个像素点,可选地,可以在多个候选块中选择几个候选块的运动矢量作为候选运动矢量组,例如图2所示,对于多个a-f候选块,可以在对应同一个像素点的候选块a、b和c中任选一个块的运动矢量,在对应另一个像素点的d和e中任选一个块的运动矢量,在对应另一个像素点的f和g中任选一个块的运动矢量,将该三个运动矢量构成一个候选运动矢量组,由于有不同选择,这些候选块可以构成12个候选运动矢量组。确定第一候选运动矢量组中每个运动矢量的参考帧,该第一候选运动矢量组为多个候选运动矢量组中的任意一个候选运动矢量组,将该第一候选运动矢量组中每个运动矢量对应的候选块的参考帧的索引号和播放序号进行等比例缩放,使得该第一候选运动矢量组中的三个运动矢量对应同一个参考帧索引号和播放序号。

在本发明实施例中,可以根据下面的公式(5)和(6)确定当前编码块中每个像素点在该第一候选运动矢量组的参考帧中的预测位置:

其中,w为该当前编码块的宽度,h为该当前编码块的高度,vxj为第一候选运动矢量组中第j个候选运动矢量vj在x方向上的分量,vyj为第一候选运动矢量组中第j个候选运动矢量vj在y方向上的分量,j=0,1,2,x和y为该当前编码块中每个像素点的坐标值,x'和y'为该像素点在第一候选运动矢量组的参考帧中对应的预测点的坐标值。

根据该当前编码块中每个像素点的坐标值和该参考帧中对应的预测点的坐标值,再根据公式(1)确定对于该第一候选运动矢量组,该当前编码块中每个像素点与该第一候选运动矢量组的参考帧中对应的预测点的匹配误差值;其中,将每个像素点对于第一候选运动矢量组的匹配误差值求绝对值再求和,确定该当前编码块相对应第一候选运动矢量组的匹配误差值。同样地,确定当前编码块对于每个候选运动矢量组的匹配误差值,并将多个候选运动矢量组对应的多个匹配误差值中最小值对应的该候选运动矢量组,确定为该当前编码块的运动矢量组。将该运动矢量组包括的运动矢量的索引值进行编码,并发送至解码端,以便与解码端根据索引值确定该运动矢量组。

在本发明实施例中,对于确定的运动矢量组,可以将该运动矢量组中的任意一个运动矢量作为后续运动估计的搜索起始点,可选地,如图2所示,也可以将该当前编码块的左上角顶点的预测位置作为后续运动估计的搜索起始点,本发明并不限于此。

在s120中,根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量,该第一分量集合包括该运动模型初始向量中的至少一个分量。具体地,以仿射运动模型为例,仿射模型可以用六个参数表示,该六个参数可以表示为则可以根据下面的公式(7)确定当前编码块中的每个像素点在参考帧中的位置:

其中,x和y为该当前编码块中任意像素点的坐标值,x'和y'为该像素点在参考帧中对应的预测点的坐标值;vx和vx为当前编码块中任意像素点的运动矢量。则可以得到下面的公式(8):

根据s110中确定的运动矢量组,该运动矢量组可以表示为{v0,v1,v2},由于该运动矢量组对应的目标候选块为如图2所示的a-g中的块,则它们的坐标可以分别表示为(0,0),(w,0),(0,h),其中,w为该当前编码块的宽度,h为该当前编码块的高度,代入公式(8)即可得到下面的公式(9):

其中,vxj为第一候选运动矢量组中第j个候选运动矢量vj在x方向上的分量,vyj为第一候选运动矢量组中第j个候选运动矢量vj在y方向上的分量,j=0,1,2。则对应地,即可以得到仿射运动模型中的各个参数,如公式(6)所示,将该当前编码块的运动矢量组{v0,v1,v2}代入公式(6)中,即可确定该当前编码块的运动模型初始向量该运动模型初始向量为六维向量,可选地,对于其他运动模型,该初始向量为至少四维向量。根据该运动模型初始向量,可以确定第一分量集合的预测值,该第一分量集合的预测值可以包括该运动模型初始向量中至少一个分量。

在s130中,根据该第一分量集合的预测值,确定该第一分量集合的待传输值。具体地,可以根据当前编码块,确定运动模型量化精度和该运动模型优化向量,根据运动模型量化精度对该运动模型优化向量进行量化,根据该运动模型第一分量集合的预测值和量化后的运动模型优化向量,确定该第一分量集合的待传输值。

在本发明实施例中,可以先确定该运动模型优化向量。可选地,可以根据现有技术确定运动模型优化向量。具体地,可以根据公式(1)-(4)确定当前编码块的匹配误差值,在该当前编码块的参考帧的一定范围内进行梯度迭代搜索当前编码块的候选块,将匹配误差值最小时的候选块确定为该当前编码块的目标候选块,并根据公式(4)确定此时对应的运动模型的参数为该当前编码块优化向量。

可选地,还可以根据公式(6)确定当前编码块的运动模型初始向量,将该运动模型初始向量确定为运动模型优化向量。

可选地,还可以根据公式(6)确定当前编码块的运动模型初始向量,并根据公式(7)计算此时的当前编码块中各个像素点在参考帧中的对应位置,并利用公式(1)和(6)计算此时的该当前编码块的匹配误差值。将该匹配误差值与上述利用现有技术和公式(1)-(4)确定的运动模型参数对应的匹配误差值相比,选择最小的匹配误差值对应的运动模型的参数为该当前编码块优化向量,本发明并不限于此。

在本发明实施例中,还要确定运动模型量化精度,以便于对运动模型优化向量进行量化。具体地,该运动模型优化向量中包括两个平动参数,即a0'和a1',这两个平动参数的量化精度可以为1/16或1/4,本发明并不限于此。该运动模型优化向量中的其它参数(a2',a3',a4',a5')的量化精度可以为1/512,也可以根据当前编码块的尺寸和精度信息确定量化精度,其中,当前编码块的尺寸可以包括该当前编码块的宽度和高度,精度信息可以包括该当前编码块的运动矢量组的量化精度。具体地,根据公式(6)可知,该运动模型的后四个参数与当前编码块的宽度和高度相关,因此可以通过下面的公式(10)确定量化精度:

q=1/(s×p),s=max(w,h)(10)

其中,p可以根据该当前编码块的精度信息来确定,具体地,1/p为当前编码块的运动矢量组的量化精度,可选地,该运动矢量组的量化精度一般为1/4,则p=4,w为该当前编码块的宽度,h为该当前编码块的高度。例如,当前编码块的宽度是16,高度是32,则它们的量化精度是1/(32×4)=1/128;如果编码块的宽度是16,高度是8,则量化精度是1/(16×4)=1/64。

在本发明实施例中,根据确定的量化精度,对运动模型优化向量进行量化,得到量化后的运动模型优化向量

在本发明实施例中,根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。具体地,可以通过下面的方法确定。这里以仿射运动为例,根据公式(6)确定了运动模型初始向量,在该运动模型初始向量中,a0和a1为平动参数,与运动矢量组中的第一运动矢量v0有关,可选地,可以将a0和a1确定为第一分量集合,根据公式(6)确定的a0和a1的值为第一分量集合的预测值,可选地,这两个参数的量化精度可以为1/16或1/4,以1/16为例,即先将v0放大四倍,使得v0的精度从1/4放大到1/16,再用1/16的精度的v0计算得到精度同样为1/16的量化后的a0和a1为即得到为量化后的第一分量集合的预测值。

在本发明实施例中,根据量化后的第一分量集合的预测值和确定的运动模型优化向量,确定当前编码块的第一分量集合的待传输值,该当前编码块的运动模型传输值可以为(δa0,δa1,δa2,δa3,δa4,δa5),其中,第一分量集合可以包括两个分量,该第一分量集合的传输值可以为δa0和δa1,则其它传输值为为量化后的该运动模型优化向量,为量化后的第一分量集合的预测值a0和a1。此时,由于编码传输的参数中有两个参数为量化后的第一分量集合和运动模型优化向量的差值,该差值比直接编码传输量化后的运动模型优化向量占用的比特数少,减少了传输的数据量。

可选地,作为一个实施例,根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。具体地,还可以通过下面的方法确定。根据公式(6)确定了运动模型初始向量的六个分量ai,i=0,1,2,3,4,5,再确定该第一分量集合也包括6个参数,则可以确定该当前编码块的运动模型传输值,也就是该第一分量集合的传输值为(δa0,δa1,δa2,δa3,δa4,δa5),其中,为量化后的该运动模型优化向量,ai为第一分量集合的预测值。

在s140中,对确定的该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。具体地,可以将确定的当前编码块的运动模型待传输向量进行编码,并发送至解码端。此外,还可以根据运动模型量化精度对运动模型优化向量进行量化,从而确定当前编码块各个像素样本的预测像素样本,进而确定当前编码块的预测残差,将该预测残差进行编码并发送至解码端。具体地,对于运动模型优化向量将其中的各个参数ai'根据公式(10)确定的运动模型量化精度进行量化,得到量化后的运动模型优化向量代入公式(7)中即可获得当前编码块中每个像素点精度为q的参考偏移位置(x',y'),在该参考偏移位置计算得到当前编码块的各个像素样本的预测像素样本,进而确定当前编码块的预测残差,将该预测残差进行编码并发送至解码端。可选地,该像素样本可以为一个像素点,或多个像素点构成的小像素块,本发明并不限于此。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

因此,本发明实施例的用于视频图像编码的方法,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。另外,由于确定该运动模型优化向量并对该优化向量进行量化时,确定的量化精度是根据当前编码块的尺寸和当前编码块运动矢量的量化精度进行确定的,也能够减少编码参数所需的比特数。

图3示出了根据本发明实施例的用于视频图像解码的方法200的示意性流程图。图3所示的方法可以用于图像或视频的解码过程中,由解码设备执行。如图3所示,该方法包括:

s210,根据码流,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括该当前解码块的至少一个运动矢量,该运动模型传输向量包括至少四个分量;

s220,根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;

s230,根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于根据该运动模型优化向量对该当前解码块进行解码。

具体地,解码端接收到编码端发送的码流,根据码流解码,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括当前解码块的至少一个像素点对应的运动矢量;根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量,该第一分量集合包括该运动模型初始向量中的至少一个分量;根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量。再根据量化后的该运动模型优化向量,确定该当前解码块的预测样本,根据该预测样本对当前解码块进行解码重建。

因此,本发明实施例的用于视频图像解码的方法,根据接收到的码流,确定当前解码块的运动矢量组和运动模型传输向量,并根据该运动矢量组确定该当前解码块的运动模型初始向量,根据该运动模型初始向量和运动模型传输向量确定该运动模型优化向量,并将该运动模型优化向量进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。

在s210中,解码设备根据码流,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括当前解码块的至少一个运动矢量,每个运动矢量分别与当前解码块中的一个像素点对应。可选地,对于不同的运动模型,描述该运动模型所需参数的数量不同,对于具有2n个参数的运动模型,解码端确定的运动模型传输向量为2n维向量,确定当前解码块的运动矢量组一般可以包括n个运动矢量。例如,对于仿射运动,将当前解码块中各个像素点通过仿射运动模型表示时,一般需要可以表示为即该仿射运动模型具有6个参数,则该运动矢量组可以包括3个运动矢量。对于一般的运动模型,一般涉及12个参数,则该运动矢量组可以包括6个运动矢量。可选地,确定该运动矢量组,可以确定该运动矢量组中至少一个运动矢量,可以确定该运动矢量组中一个运动矢量,或确定n个运动矢量,或该运动矢量组中的全部运动矢量。例如,对于仿射运动,确定当前解码块的运动矢量组,该运动矢量组可以包括至少3个运动矢量,可以确定该运算矢量组中的一个运动矢量,或3个运动矢量,或全部运动矢量,根据编码端确定的运动矢量的个数,解码端也相应的确定相应的运动矢量,本发明并不限于此。

在本发明实施例中,解码端可以根据接收到的码流确定该当前解码块的运动模型传输向量以及运动矢量组。具体地,解码端可以先根据接收到的码流确定该当前解码块的运动模型传输向量,该运动模型传输向量的全部分量可以为运动模型初始向量和运动模型优化向量的差值,或该运动模型传输向量的部分分量为运动模型初始向量和运动模型优化向量的差值,部分分量为运动模型优化向量,本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,当确定当前解码块的运动矢量组,该运动矢量组包括3个运动矢量,可以根据码流先确定该运算矢量组中的至少一个运动矢量。具体地,当解码端确定该运动模型传输向量的部分分量为运动模型初始向量和运动模型优化向量的差值,部分分量为运动模型优化向量时,解码端可以根据码流确定该运算矢量组中的至少一个运动矢量。解码端解码视频码流,确定当前解码块的目标候选块,并确定该目标候选块的运动矢量和该目标候选块的参考帧。分别获取该目标候选块的参考帧和当前解码块的参考帧的播放顺序号poc,再根据当前解码块的参考帧的播放顺序号poc和该目标候选块的参考帧的播放顺序号poc的比值,对该目标候选块的运动矢量进行缩放,并将缩放后的运动矢量确定为该当前解码块的运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同。

可选地,作为一个实施例,以仿射运动为例,确定当前解码块的运动矢量组,该运动矢量组包括3个运动矢量,可以根据码流确定该运动矢量组中的每个运动矢量。具体地,当解码端确定该运动模型传输向量的全部分量可以为运动模型初始向量和运动模型优化向量的差值时,可以根据码流确定该运动矢量组中的每个运动矢量。可以先根据码流中的索引值,确定当前解码块的目标候选块,将该目标候选块的参考帧确定为当前解码块的参考帧,将该目标候选块的运动矢量作为该当前解码块的运动矢量组中的第一运动矢量。

在本发明实施例中,确定该当前解码块的运动矢量组中的第一运动矢量后,根据该第一运动矢量,确定该当前解码块运动矢量组中的第二运动矢量,该第二运动矢量是指该运动矢量组中除了第一运动矢量的其它运动矢量。具体地,先在该当前解码块周围的相邻的已解码块中确定该当前解码块的多个候选块,该多个候选块对应同一个像素点,可选地,该像素点可以为当前解码块的顶点,例如图2所示,对于当前解码块,该候选块可以包括d和e,该多个候选块不包括确定的第一运动矢量对应的当前解码块的目标候选块。然后,确定每个候选块的参考帧,若候选块的参考帧与第一运动矢量对应的目标候选块的参考帧,即当前解码块的参考帧,不是同一帧时,根据该目标候选块的参考帧的播放顺序poc号和候选块的参考帧的播放顺序poc号的比值,将候选块的运动矢量进行缩放,使得当前块与候选块的参考帧的播放顺序号之间的比例与运动矢量之间的比例相同。分别比较每个候选块缩放后的运动矢量与第一运动矢量,当候选块的运动矢量与第一运动矢量不相同,且差值最小时,该候选块确定为当前解码块的目标候选块,将该目标候选块候选对应的缩放后的运动矢量确定为当前解码块的运动矢量组中的第二运动矢量。

在本发明实施例中,根据上述方法,可以确定多个第二运动矢量,例如,当该当前解码块的运动矢量组中包括3个运动矢量时,确定该运动矢量组中的第一运动矢量后,可以通过上述方法确定两个第二运动矢量,进而确定了运动矢量组中的每个运动矢量,但本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,确定当前解码块的运动矢量组,该运动矢量组包括3个运动矢量,还可以通过码流解码确定该运动矢量组中的每个运动矢量。具体地,当解码端确定该运动模型传输向量的全部分量可以为运动模型初始向量和运动模型优化向量的差值时,可以根据码流确定该运动矢量组中的每个运动矢量,根据码流直接获得该当前解码块的运动矢量组中每个运动矢量值,且该运动矢量组中的每个运动矢量对应的当前解码块的目标候选块具有同一个参考帧,该参考帧为该当前解码块的参考帧。

在s220中,根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量,该第一分量集合包括该运动模型初始向量中的至少一个分量。具体地,以仿射运动模型为例,仿射模型可以用六个参数表示,该六个参数可以表示为则可以根据公式(7)确定当前解码块中的每个像素点在参考帧中的位置,其中,x和y为该当前解码块中任意像素点的坐标值,x'和y'为该像素点在参考帧中对应的预测点的坐标值;vx和vx为当前解码块中任意像素点的运动矢量,则可以得到公式(8)。根据s210中确定的运动矢量组,该运动矢量组可以表示为{v0,v1,v2},它们的坐标可以分别是(0,0),(w,0),(0,h),其中,w为该当前解码块的宽度,h为该当前解码块的高度,代入公式(8)即可得到公式(9),其中,vxj为第一候选运动矢量组中第j个候选运动矢量vj在x方向上的分量,vyj为第一候选运动矢量组中第j个候选运动矢量vj在y方向上的分量,j=0,1,2。则对应地,即可以得到仿射运动模型中的各个参数,如公式(6)所示,将该当前解码块的运动矢量组代入公式(6)中,即可确定该当前解码块的运动模型初始向量该运动模型初始向量为六维向量,可选地,对于其他运动模型,该初始向量为至少四维向量。根据该运动模型初始向量,可以确定第一分量集合的预测值,该第一分量集合的预测值可以包括该运动模型初始向量中至少一个分量。

在s230中,根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于解码端根据该运动模型优化向量进行解码。具体地,该当前解码块的运动模型传输向量可以表示为(δa0,δa1,δa2,δa3,δa4,δa5),其中,第一分量集合的传输值可以表示为δa0和δa1,且为第一分量集合的预测值a0和a1经过量化后得到的数值,而当前解码块的其它参数传输值可以表示为(δa2,δa3,δa4,δa5)=(a2',a3',a4',a5'),则可以确定出ai',ai'为当前解码块的运动模型优化向量。

在本发明实施例中,可以对第一分量集合的预测值a0和a1进行量化,确定量化后的第一分量集合的预测值具体地,以仿射运动为例,根据公式(6)确定了运动模型初始向量,在该运动模型初始向量中,a0和a1为平动参数,与运动矢量组中的第一运动矢量v0有关,可以将a0和a1确定为第一分量集合。可选地,这两个参数的量化精度可以为1/16或1/4,以1/16为例,即先将v0放大四倍,使得v0的精度从1/4放大到1/16,再用1/16的精度的v0计算得到精度同样为1/16的量化后的a0和a1为即得到为量化后的第一分量集合的预测值。

可选地,作为一个实施例,可以根据公式(6)确定了运动模型初始向量的第一分量集合预测值ai,该第一分量集合为该运动模型初始向量的所以分量,即该第一分量集合包括6个参数,而确定该当前解码块的运动模型传输值,也就是该第一分量集合的传输值为(δa0,δa1,δa2,δa3,δa4,δa5),则δai=ai'-ai,确定ai'即为当前解码块的运动模型优化向量。

在本发明实施例中,图4是根据本发明实施例的用于视频图像解码的方法的另一示意性流程图。图4所示的方法可以由解码设备执行,例如解码器。具体地,如图4所示,方法200还包括:

s240,确定该当前解码块的运动模型量化精度;

s250,根据该运动模型量化精度,对该运动模型优化向量进行量化;

s260,根据量化后的运动模型优化向量,对该当前解码块进行解码。

具体地,可以根据当前解码块,确定运动模型量化精度,根据运动模型量化精度对该运动模型优化向量进行量化,根据量化后的运动模型优化向量对当前解码块进行解析解码重建。

在s240中,确定该当前解码块的运动模型量化精度。具体地,可以根据的当前解码块尺寸和精度信息确定量化精度,其中,该当前解码块的尺寸包括该当前解码块的宽度和该当前解码块的高度,该精度信息包括该运动矢量组的量化精度。具体地,根据公式(6)可知,该运动模型的参数与当前解码块的宽度和高度相关,因此可以通过公式(10)确定量化精度,其中,1/p为当前解码块的运动矢量组的量化精度,可选地,该运动矢量组的量化精度一般为1/4,则p=4,w为该当前解码块的宽度,h为该当前解码块的高度。例如,当前解码块的宽度是16,高度是32,则它们的量化精度是1/(32×4)=1/128;如果当前解码的宽度是16,高度是8,则量化精度是1/(16×4)=1/64。

在s250中,根据确定的量化精度,对确定的运动模型优化向量进行量化,得到量化后的运动模型优化向量

在s260中,根据量化后的运动模型优化向量,对该当前解码块进行解码。具体地,对于运动模型优化向量代入公式(7)中即可获得当前解码块中每个像素点精度为q的参考偏移位置(x',y'),在该参考偏移位置计算得到当前解码块的各个像素样本的预测像素样本,再根据接收的码流中确定的当前解码块的预测残差,对预测像素样本进行解码重建。可选地,该像素样本可以为一个像素点,或多个像素点构成的小像素块,本发明并不限于此。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

因此,本发明实施例的用于视频图像解码的方法,根据接收到的码流,确定当前解码块的运动矢量组和运动模型传输向量,并根据该运动矢量组确定该当前解码块的运动模型初始向量,根据该运动模型初始向量和运动模型传输向量确定该运动模型优化向量,并将该运动模型优化向量进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。另外,由于确定该运动模型优化向量并对该优化向量进行量化时,确定的量化精度是根据当前解码块的尺寸和当前解码块运动矢量的量化精度进行确定的,也能够减少传输参数时所需的比特数。

为了更好的证明本发明实施例相对比现有技术的有益效果,将本发明的实施例实现在最新视频编码标准hevc的编码器上,以hm12.0为基准,通过实验比较了各种方法,发现以本发明实施例的方法得到的效果明显好于case1的hm12.0的方法。

如表1所示:

表1

其中,case1:没有对参数进行预测,a0,a1采用1/16精度量化,a2,a3,a4,a5采用1/512精度量化和基准比较的结果;

case2:只对a0,a1参数进行预测,a0,a1采用1/16精度量化,a2,a3,a4,a5采用1/512精度量化和基准比较的结果;

case3:对a0,a1,a2,a3,a4,a5参数进行预测,a0,a1采用1/16精度量化,a2,a3,a4,a5采用1/512精度量化和基准比较的结果;

case4:只对a0,a1参数进行预测,a0,a1采用1/16精度量化,a2,a3,a4,a5采用公式(10)计算的量化精度和基准比较的结果;

case5:只对a0,a1参数进行预测,a0,a1采用1/4精度量化,a2,a3,a4,a5采用公式(10)计算的量化精度和基准比较的结果。

因此,本发明实施例的用于视频图像编解码的方法,编码端确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,解码端根据接收到的码流,确定该运动模型待传输值,并根据该运动模型传输值进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。

上文中结合图1至图4,详细描述了根据本发明实施例的用于视频图像编解码和解码的方法,下面将结合图5和图6,描述根据本发明实施例的编码设备和解码设备。

图5示出了根据本发明实施例的编码设备300的示意性流程图,该编码设备既可以为用户设备,例如ue等;也可以为网络设备,例如rnc、enb等。如图5所示,该编码设备300包括:

第一确定模块310,用于确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个运动矢量;

第二确定模块320,用于根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;

第三确定模块330,用于根据该第一分量集合的预测值,确定该第一分量集合的待传输值;

编码模块340,用于对该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。

具体地,第一确定模块310确定当前编码块的运动矢量组,该运动矢量组包括当前编码块中至少一个像素点对应的运动矢量;第二确定模块320根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量中第一分量集合的预测值,该运动模型初始向量包括至少四个分量,第一分量集合包括该运动模型初始向量中的至少一个分量;再根据该当前编码块,确定该运动模型量化精度和运动模型优化向量,根据该量化精度对该运动模型优化向量进行量化;第三确定模块330可以根据该运动模型初始向量中第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值,将该第一分量集合的待传输值进行编码,并发送至解码端,以便于解码端进行解码操作;还可以根据量化后的该运动模型优化向量,确定该当前编码块的预测样本,根据该预测样本对当前编码块进行编码并传输。

因此,本发明实施例的编码设备,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。

在本发明实施例中,对于各个编码标准,针对视频图像的编码过程,对于帧间预测,在运动补偿的计算过程中,采用多种运动模型,例如可以为仿射运动,或一般运动模型,或透视模型,这里以仿射运动模型为例进行说明,但本发明并不限于此。

在本发明实施例中,第一确定模块310确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个像素点对应的运动矢量。对于不同的运动模型,描述该运动模型所需参数的数量不同,对于具有2n个参数的运动模型,确定当前编码块的运动矢量组一般可以包括n个运动矢量。例如,对于仿射运动,将当前编码块中各个像素点通过仿射运动模型表示时,一般需要可以表示为即该仿射运动模型具有6个参数,则该运动矢量组包括至少3个运动矢量。对于一般的运动模型,一般涉及12个参数,则该运动矢量组至少包括6个运动矢量。可选地,确定该运动矢量组中至少一个运动矢量,可以确定该运动矢量组中一个运动矢量,或确定n个运动矢量,或该运动矢量组中的全部运动矢量。例如,对于仿射运动,确定当前编码块的运动矢量组,该运动矢量组可以包括至少3个运动矢量,可以确定该运算矢量组中的一个运动矢量,或3个运动矢量,或全部运动矢量,本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,第一确定模块310确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,可以确定该运算矢量组中的至少一个运动矢量。对于hevc(highefficiencyvideocoding)标准,可以通过amvp(advancedmotionvectorprediction)技术确定当前编码块的运动矢量组中的第一运动矢量。具体地,在该当前编码块的周围已编码块中,先确定该当前编码块的多个候选块,可以根据坐标位置确定该多个候选块,该多个候选块与当前编码块相邻,例如,如图2所示,对于当前编码块,一般可以将a-g确定为该当前编码块的多个候选块。然后,确定每个候选块的运动矢量对应的预测块与当前编码块的匹配误差值,具体地,可以根据候选块的运动矢量与当前编码块,在参考帧中确定该候选块的运动矢量对应的预测块,再计算该预测块与当前编码块的匹配误差值,将匹配误差值最小时对应的候选块确定为该当前编码块的目标候选块。然后,分别确定当前编码块和该目标候选块的参考帧的播放序号(poc),根据该当前编码块的参考帧的播放序号(poc)和该目标候选块的参考帧的播放序号(poc)的比值,对该目标候选块的运动矢量进行缩放,并将缩放后的该目标候选块的运动矢量确定为该当前编码块的运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同。

在本发明实施例中,可以将确定的该目标候选块的运动矢量作为后续运动估计的搜索起始点。对于编码设备,可以将该目标候选块的对应的索引值进行编码并发送至解码端,以便于解码端解码并确定该目标候选块及该目标候选块的运动矢量。

在本发明实施例中,第一确定模块310可以通过下面的方法确定每个候选块的运动矢量对应的预测块与当前编码块的匹配误差值。具体地,对于当前编码块中的每个像素点,可以通过公式(1)-(4)确定每个像素点的匹配误差值,其中,s(xi,yj)为该像素点的原始像素值,s'(xi,yj)为该像素点在候选块的运动矢量所指向的帧中的预测像素值,xi和yi为该像素点的坐标值,gxi是该像素点所在位置的水平梯度,gyi是该像素点所在位置的垂直梯度,这些梯度可以用索贝尔(sobel)算子计算得到。

在本发明实施例中,第一确定模块310根据公式(1)-(4)可以确定该当前编码块中每个像素点相对于候选块的运动矢量对应的预测块的匹配误差值,将该当前编码块中所有像素点的匹配误差值的绝对值求和,即可得到候选块对应的预测块与该当前编码块的匹配误差值,但本发明并不限于此。根据上面的方法依次确定当前编码块与每个候选块对应的预测块的匹配误差值,从而将匹配误差值最小时对应的候选块最为当前编码块的目标候选块。

可选地,作为一个实施例,以仿射运动为例,第一确定模块310确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,通过上述方法确定了该运动矢量组中的一个运动矢量第一运动矢量后,根据图2所示,该第一运动矢量可以对应为该当前编码块的一个顶点的运动矢量,可选地,可以选择与该当前编码块的顶点相邻的两个顶点的运动矢量,作为该运动矢量组中其它运动矢量。该运动矢量组可以表示为{v0,v1,v2},它们的坐标分别是(0,0),(w,0),(0,h),其中,w为该当前编码块的宽度,h为该当前编码块的高度。

可选地,作为一个实施例,以仿射运动为例,第一确定模块310确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,可以确定该运动矢量组中的每个运动矢量。具体地,可以先将当前编码块周围多个已编码块确定为多个候选块,该多个候选块对应该当前编码块的同一个像素点,可选地,该像素点可以为当前编码块的顶点,例如,如图2所示,可以确定a、b和c为当前编码块的多个候选块。根据公式(1)-(4),分别确定当前编码块中每个像素点相对于每个候选块的运动矢量对应的预测块的匹配误差值,进而将所有像素点的匹配误差值的绝对值求和,确定当前编码块对于每个候选块的匹配误差值,选择匹配误差值最小时对应的候选块为该当前编码块的目标候选块,并将该目标候选块的运动矢量确定为该当前编码块的运动矢量组中的第一运动矢量,将该目标候选块的参考帧确定为当前编码块的参考帧。将该目标候选块的运动矢量为当前编码块的第一运动矢量,可以将该第一运动矢量作为后续运动估计的搜索起始点。对于编码设备,可以将该目标候选块的对应的索引值进行编码并发送至解码端,以便于解码端解码并确定该目标候选块及该目标候选块的运动矢量。

在本发明实施例中,第一确定模块310确定该当前编码块的运动矢量组中的第一运动矢量后,根据该第一运动矢量,确定该当前编码块运动矢量组中的第二运动矢量,该第二运动矢量是指该运动矢量组中除了第一运动矢量的其它运动矢量。具体地,先在该当前编码块周围的已编码块中确定该当前编码块的多个候选块,该多个编码块对应该当前编码块的同一个像素点,可选地,该像素点可以为当前编码块的顶点,该像素点与确定第一运动矢量时的多个候选块对应的像素点不同,例如图2所示,该候选块可以包括d和e,该多个候选块不包括确定第一运动矢量时的候选块。然后,确定每个候选块的参考帧,若候选块的参考帧与第一运动矢量对应的目标候选块的参考帧,即当前编码块的参考帧,不是同一帧时,根据该目标候选块的参考帧的播放顺序poc号和候选块的参考帧的播放顺序poc号的比值,将候选块的运动矢量进行缩放,使得当前块与候选块的参考帧的播放顺序号之间的比例,与当前块与候选块的运动矢量之间的比例相同。分别比较每个候选块缩放后的运动矢量与第一运动矢量,当缩放后的候选块的运动矢量与第一运动矢量不相同,且差值最小时,将该候选块确定为当前编码块的第二目标候选块,将该目标候选块对应的缩放后的运动矢量确定为当前编码块的运动矢量组中的第二运动矢量。

在本发明实施例中,第一确定模块310根据上述方法,可以确定多个第二运动矢量,例如,当该当前编码块的运动矢量组中包括3个运动矢量时,确定该运动矢量组中的一个第一运动矢量后,可以通过上述方法确定两个第二运动矢量,但本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,第一确定模块310确定当前编码块的运动矢量组,该运动矢量组包括3个运动矢量,还可以通过下面的方法确定该运动矢量组中的每个运动矢量。具体地,确定该当前编码块的多个候选块,该多个候选块均为与当前编码块相邻的已编码块,例如图2所示,a-f为当前编码块的多个候选块。再根据该多个候选块确定当前编码块的多个候选运动矢量组,每个候选运动矢量组包括3个运动矢量,三个运动矢量对应当前编码块的三个像素点,可选地,可以在多个候选块中选择几个候选块的运动矢量作为候选运动矢量组,例如图2所示,对于多个a-f候选块,可以在对应同一个像素点的候选块a、b和c中任选一个块的运动矢量,在对应另一个像素点的d和e中任选一个块的运动矢量,在对应另一个像素点的f和g中任选一个块的运动矢量,将该三个运动矢量构成一个候选运动矢量组,由于有不同选择,这些候选块可以构成12个候选运动矢量组。确定第一候选运动矢量组中每个运动矢量的参考帧,该第一候选运动矢量组为多个候选运动矢量组中的任意一个候选运动矢量组,将该第一候选运动矢量组中每个运动矢量对应的候选块的参考帧的索引号和播放序号进行等比例缩放,使得该第一候选运动矢量组中的三个运动矢量对应同一个参考帧索引号和播放序号。

在本发明实施例中,第一确定模块310可以根据公式(5)和(6)确定当前编码块中每个像素点在该第一候选运动矢量组的参考帧中的预测位置,其中,w为该当前编码块的宽度,h为该当前编码块的高度,vxj为第一候选运动矢量组中第j个候选运动矢量vj在x方向上的分量,vyj为第一候选运动矢量组中第j个候选运动矢量vj在y方向上的分量,j=0,1,2,x和y为该当前编码块中每个像素点的坐标值,x'和y'为该像素点在第一候选运动矢量组的参考帧中对应的预测点的坐标值。

根据该当前编码块中每个像素点的坐标值和该参考帧中对应的预测点的坐标值,再根据公式(1)确定对于该第一候选运动矢量组,该当前编码块中每个像素点与该第一候选运动矢量组的参考帧中对应的预测点的匹配误差值;其中,将每个像素点对于第一候选运动矢量组的匹配误差值求绝对值,确定该当前编码块中所有像素点的匹配误差值的和为当前编码块对于第一候选运动矢量组的匹配误差值。同样地,确定当前编码块对于每个候选运动矢量组的匹配误差值,并将多个候选运动矢量组对应的多个匹配误差值中最小值对应的该候选运动矢量组,确定为该当前编码块的运动矢量组。将该运动矢量组的索引值进行编码并发送至解码端,以便于解码端根据索引值确定该运动矢量组。

在本发明实施例中,对于第一确定模块310确定的运动矢量组,可以将该运动矢量组中的任意一个运动矢量作为后续运动估计的搜索起始点,可选地,如图2所示,也可以将该当前编码块的左上角顶点的预测位置作为后续运动估计的搜索起始点,本发明并不限于此。

在本发明实施例中,第二确定模块320根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量,该第一分量集合包括该运动模型初始向量中的至少一个分量。具体地,以仿射运动模型为例,仿射模型可以用六个参数表示,该六个参数可以表示为则可以根据公式(7)确定当前编码块中的每个像素点在参考帧中的位置,其中,x和y为该当前编码块中任意像素点的坐标值,x'和y'为该像素点在参考帧中对应的预测点的坐标值;vx和vx为当前编码块中任意像素点的运动矢量。则可以得到公式(8),根据第一确定模块310确定的运动矢量组,该运动矢量组可以表示为{v0,v1,v2},由于该运动矢量组对应的目标候选块为如图2所示的a-g中的块,则它们的坐标可以分别是(0,0),(w,0),(0,h),其中,w为该当前编码块的宽度,h为该当前编码块的高度,代入公式(8)即可得到公式(9),其中,vxj为第一候选运动矢量组中第j个候选运动矢量vj在x方向上的分量,vyj为第一候选运动矢量组中第j个候选运动矢量vj在y方向上的分量,j=0,1,2。则对应地,即可以得到仿射运动模型中的各个参数,如公式(6)所示,将该当前编码块的运动矢量组{v0,v1,v2}代入公式(6)中,即可确定该当前编码块的运动模型初始向量该运动模型初始向量为六维向量,可选地,对于其他运动模型,该初始向量为至少四维向量。根据该运动模型初始向量,可以确定第一分量集合的预测值,该第一分量集合的预测值可以为该运动模型初始向量中至少一个分量。

在本发明实施例中,第三确定模块330根据该第一分量集合的预测值,确定该第一分量集合的待传输值。具体地,第三确定模块330可以根据当前编码块,确定运动模型量化精度和该运动模型优化向量,根据运动模型量化精度对该运动模型优化向量进行量化,根据该运动模型第一分量集合的预测值和量化后的运动模型优化向量,确定该第一分量集合的待传输值。

在本发明实施例中,第三确定模块330可以先确定该运动模型优化向量。可选地,可以根据现有技术确定运动模型优化向量。具体地,可以根据公式(1)-(4)确定当前编码块的匹配误差值,在该当前编码块的参考帧的一定范围内进行梯度迭代搜索当前编码块的预测块,将匹配误差值最小时的预测块确定为该当前编码块的预测块,并根据公式(4)确定此时对应的运动模型的参数为该当前编码块优化向量。

可选地,第三确定模块330还可以根据公式(6)确定当前编码块的运动模型初始向量,将该运动模型初始向量确定为运动模型优化向量。

可选地,还可以根据公式(6)确定当前编码块的运动模型初始向量,并根据公式(7)计算此时的当前编码块中各个像素点在参考帧中得到对应位置,并利用公式(1)和(6)计算此时的该当前编码块的匹配误差值。将该匹配误差值与上述利用现有技术和公式(1)-(4)确定的运动模型参数对应的匹配误差值相比,选择最小的匹配误差值对应的运动模型的参数为该当前编码块优化向量,本发明并不限于此。

在本发明实施例中,第三确定模块330还要确定运动模型量化精度,以便于对运动模型优化向量进行量化。具体地,该运动模型优化向量中包括两个平动参数,即a0'和a1',这两个平动参数的量化精度可以为1/16或1/4,本发明并不限于此。该运动模型优化向量中的其它参数(a2',a3',a4',a5')的量化精度可以为1/512,也可以根据当前编码块的尺寸和精度信息确定量化精度,其中,当前编码块的尺寸可以包括该当前编码块的宽度和高度,精度信息可以包括该当前编码块的运动矢量组的量化精度。具体地,根据公式(6)可知,该运动模型的后四个参数与当前编码块的宽度和高度相关,因此可以通过公式(10)确定量化精度,其中,p可以根据该当前编码块的精度信息来确定,具体地,1/p为当前编码块的运动矢量组的量化精度,可选地,该运动矢量组的量化精度一般为1/4,则p=4,w为该当前编码块的宽度,h为该当前编码块的高度。例如,当前编码块的宽度是16,高度是32,则它们的量化精度是1/(32×4)=1/128;如果编码块的宽度是16,高度是8,则量化精度是1/(16×4)=1/64。

在本发明实施例中,第三确定模块330根据确定的量化精度,对运动模型优化向量进行量化,得到量化后的运动模型优化向量

在本发明实施例中,第三确定模块330根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。具体地,可以通过下面的方法确定。这里以仿射运动为例,根据公式(6)确定了运动模型初始向量,在该运动模型初始向量中,a0和a1为平动参数,与运动矢量组中的第一运动矢量v0有关,可以将a0和a1确定为第一分量集合,根据公式(6)确定的a0和a1的值为第一分量集合的预测值,可选地,这两个参数的量化精度可以为1/16或1/4,以1/16为例,即先将v0放大四倍,使得v0的精度从1/4放大到1/16,再用1/16的精度的v0计算得到精度同样为1/16的量化后的a0和a1为即得到为量化后的第一分量集合的预测值。

在本发明实施例中,第三确定模块330根据量化后的第一分量集合的预测值和确定的运动模型优化向量,确定当前编码块的第一分量集合的待传输值,该当前编码块的运动模型传输值可以为(δa0,δa1,δa2,δa3,δa4,δa5),其中,第一分量集合可以包括两个分量,该第一分量集合的传输值可以为δa0和δa1,则其它传输值为为量化后的该运动模型优化向量,为量化后的第一分量集合的预测值a0和a1。此时,由于编码传输的参数中有两个参数为量化后的第一分量集合和运动模型优化向量的差值,该差值比直接编码传输量化后的运动模型优化向量占用的比特数少,减少了传输的数据量。

可选地,作为一个实施例,第三确定模块330根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。具体地,还可以通过下面的方法确定。根据公式(6)确定了运动模型初始向量的六个分量ai,i=0,1,2,3,4,5,再确定该第一分量集合包括6个参数,即ai,i=0,1,2,3,4,5,则可以确定该当前编码块的运动模型传输值,也就是该第一分量集合的传输值为(δa0,δa1,δa2,δa3,δa4,δa5),其中,为量化后的该运动模型优化向量,ai为第一分量集合的预测值。

在本发明实施例中,编码模块340可以将第三确定模块330确定的该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。具体地,编码模块340可以将当前编码块的运动模型待传输向量进行编码,并发送至解码端。此外,编码模块340还可以根据第三确定模块330确定的运动模型量化精度对运动模型优化向量进行量化,从而确定当前编码块各个像素样本的预测像素样本,进而确定当前编码块的预测残差,将该预测残差进行编码并发送至解码端。具体地,对于运动模型优化向量将其中的各个参数ai'根据公式(10)确定的运动模型量化精度进行量化,得到量化后的运动模型优化向量代入公式(7)中即可获得当前编码块中每个像素点精度为q的参考偏移位置(x',y'),在该参考偏移位置计算得到当前编码块的各个像素样本的预测像素样本,进而确定当前编码块的预测残差,将该预测残差进行编码并发送至解码端。可选地,该像素样本可以为一个像素点,或多个像素点构成的小像素块,本发明并不限于此。

应理解,根据本发明实施例的编码设备300可对应于执行本发明实施例中的用于视频图像编码的方法方法100,并且编码设备300中的各个模块的上述和其它操作和/或功能分别为了实现图1至图2中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的编码设备,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。另外,由于确定该运动模型优化向量并对该优化向量进行量化时,确定的量化精度是根据当前编码块的尺寸和当前编码块运动矢量的量化精度进行确定的,也能够减少编码参数所需的比特数。

图6示出了根据本发明实施例的解码设备400的示意性框图。该解码设备既可以为用户设备,例如ue等;也可以为网络设备,例如rnc、enb等。如图6所示,该解码设备400包括:

第一确定模块410,用于根据码流,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括该当前解码块的至少一个运动矢量,该运动模型传输向量包括至少四个分量;

第二确定模块420,用于根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;

第三确定模块430,用于根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于根据该运动模型优化向量对该当前解码块进行解码。

具体地,第一确定模块410解码端接收到编码端发送的码流,根据码流解码,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括当前解码块的至少一个像素点对应的运动矢量;第二确定模块420根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量,该第一分量集合包括该运动模型初始向量中的至少一个分量;第三确定模块430根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量。再根据量化后的该运动模型优化向量,确定该当前解码块的预测样本,根据该预测样本对当前解码块进行解码重建。

因此,本发明实施例的解码设备,根据接收到的码流,确定当前解码块的运动矢量组和运动模型传输向量,并根据该运动矢量组确定该当前解码块的运动模型初始向量,根据该运动模型初始向量和运动模型传输向量确定该运动模型优化向量,并将该运动模型优化向量进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。

在本发明实施例中,解码设备根据码流解码,第一确定模块410确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括当前解码块的至少一个运动矢量,每个运动矢量分别与当前解码块中的一个像素点对应。可选地,对于不同的运动模型,描述该运动模型所需参数的数量不同,对于具有2n个参数的运动模型,解码端确定的运动模型传输向量为2n维向量,确定当前解码块的运动矢量组一般可以包括n个运动矢量。例如,对于仿射运动,将当前解码块中各个像素点通过仿射运动模型表示时,一般需要可以表示为即该仿射运动模型具有6个参数,则该运动矢量组可以包括3个运动矢量。对于一般的运动模型,一般涉及12个参数,则该运动矢量组可以包括6个运动矢量。可选地,确定该运动矢量组,可以确定该运动矢量组中至少一个运动矢量,可以确定该运动矢量组中一个运动矢量,或确定n个运动矢量,或该运动矢量组中的全部运动矢量。例如,对于仿射运动,确定当前解码块的运动矢量组,该运动矢量组可以包括至少3个运动矢量,可以确定该运算矢量组中的一个运动矢量,或3个运动矢量,或全部运动矢量,根据编码端确定的运动矢量的个数,解码端也相应的确定相应的运动矢量,本发明并不限于此。

在本发明实施例中,解码设备的第一确定模块410可以根据接收到的码流确定该当前解码块的运动模型传输向量以及运动矢量组。具体地,解码端可以先根据接收到的码流确定该当前解码块的运动模型传输向量,该运动模型传输向量的全部分量可以为运动模型初始向量和运动模型优化向量的差值,或该运动模型传输向量的部分分量为运动模型初始向量和运动模型优化向量的差值,部分分量为运动模型优化向量,本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,当第一确定模块410确定当前解码块的运动矢量组,该运动矢量组包括3个运动矢量,可以根据码流先确定该运算矢量组中的至少一个运动矢量。具体地,当解码设备第一确定模块410确定该运动模型传输向量的部分分量为运动模型初始向量和运动模型优化向量的差值,部分分量为运动模型优化向量时,解码端可以根据码流确定该运算矢量组中的至少一个运动矢量。解码端解码视频码流,确定当前解码块的目标候选块,并确定该目标候选块的运动矢量和该目标候选块的参考帧。分别获取该目标候选块的参考帧和当前解码块的参考帧的播放顺序号poc,再根据当前解码块的参考帧的播放顺序号poc和该目标候选块的参考帧的播放顺序号poc的比值,对该目标候选块的运动矢量进行缩放,使得目标候选块和当前解码块的参考帧的播放顺序号poc的比值,与缩放前和缩放后运动矢量的比值相同,并将缩放后的运动矢量确定为该当前解码块的运动矢量组中的第一运动矢量,则该第一运动矢量与该目标候选块的运动矢量的比值,与该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同。

可选地,作为一个实施例,以仿射运动为例,第一确定模块410确定当前解码块的运动矢量组,该运动矢量组包括3个运动矢量,可以根据码流确定该运动矢量组中的每个运动矢量。具体地,当解码端第一确定模块410确定该运动模型传输向量的全部分量可以为运动模型初始向量和运动模型优化向量的差值时,可以根据码流确定该运动矢量组中的每个运动矢量。可以先根据码流中的索引值,确定当前解码块的目标候选块,将该目标候选块的参考帧确定为当前解码块的参考帧,将该目标候选块的运动矢量作为该当前解码块的运动矢量组中的第一运动矢量。

在本发明实施例中,第一确定模块410确定该当前解码块的运动矢量组中的第一运动矢量后,根据该第一运动矢量,确定该当前解码块运动矢量组中的第二运动矢量,该第二运动矢量是指该运动矢量组中除了第一运动矢量的其它运动矢量。具体地,先在该当前解码块周围的相邻的已解码块中确定该当前解码块的多个候选块,该多个候选块对应同一个像素点,可选地,该像素点可以为当前解码块的顶点,例如图2所示,对于当前解码块,该候选块可以包括d和e,该多个候选块不包括确定的第一运动矢量的目标候选块。然后,确定每个候选块的参考帧,若候选块的参考帧与第一运动矢量对应的目标候选块的参考帧,即当前解码块的参考帧,不是同一帧时,根据该目标候选块的参考帧的播放顺序poc号和候选块的参考帧的播放顺序poc号的比值,将候选块的运动矢量进行缩放,使得当前块与候选块的参考帧的播放顺序号之间的比例与运动矢量之间的比例相同。分别比较每个候选块缩放后的运动矢量与第一运动矢量,当候选块的运动矢量与第一运动矢量不相同,且差值最小时,该候选块确定为当前解码块的目标候选块,将该目标候选块对应的缩放后的运动矢量确定为当前解码块的运动矢量组中的第二运动矢量。

在本发明实施例中,根据上述方法,第一确定模块410可以确定多个第二运动矢量,例如,当该当前解码块的运动矢量组中包括3个运动矢量时,确定该运动矢量组中的第一运动矢量后,可以通过上述方法确定两个第二运动矢量,进而确定了运动矢量组中的每个运动矢量,但本发明并不限于此。

可选地,作为一个实施例,以仿射运动为例,第一确定模块410确定当前解码块的运动矢量组,该运动矢量组包括3个运动矢量,还可以通过码流解码确定该运动矢量组中的每个运动矢量。具体地,当解码端确定该运动模型传输向量的全部分量可以为运动模型初始向量和运动模型优化向量的差值时,可以根据码流确定该运动矢量组中的每个运动矢量,根据码流直接获得该当前解码块的运动矢量组中每个运动矢量值,且该运动矢量组中的每个运动矢量对应的当前解码块的目标候选块具有同一个参考帧,该参考帧为该当前解码块的参考帧。

在本发明实施例中,第二确定模块420根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量,该第一分量集合包括该运动模型初始向量中的至少一个分量。具体地,以仿射运动模型为例,仿射模型可以用六个参数表示,该六个参数可以表示为则可以根据公式(7)确定当前解码块中的每个像素点在参考帧中的位置,其中,x和y为该当前解码块中任意像素点的坐标值,x'和y'为该像素点在参考帧中对应的预测点的坐标值;vx和vx为当前解码块中任意像素点的运动矢量,则可以得到公式(8)。根据s210中确定的运动矢量组,该运动矢量组可以表示为{v0,v1,v2},它们的坐标可以分别是(0,0),(w,0),(0,h),其中,w为该当前解码块的宽度,h为该当前解码块的高度,代入公式(8)即可得到公式(9),其中,vxj为第一候选运动矢量组中第j个候选运动矢量vj在x方向上的分量,vyj为第一候选运动矢量组中第j个候选运动矢量vj在y方向上的分量,j=0,1,2。则对应地,即可以得到仿射运动模型中的各个参数,如公式(6)所示,将该当前解码块的运动矢量组代入公式(6)中,即可确定该当前解码块的运动模型初始向量该运动模型初始向量为六维向量,可选地,对于其他运动模型,该初始向量为至少四维向量。根据该运动模型初始向量,可以确定第一分量集合的预测值,该第一分量集合的预测值可以为该运动模型初始向量中至少一个分量。

在本发明实施例中,第三确定模块430根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于解码端根据该运动模型优化向量进行解码。具体地,该当前解码块的运动模型传输值可以表示为(δa0,δa1,δa2,δa3,δa4,δa5),其中,第一分量集合的传输值可以表示为δa0和δa1,为量化后的第一分量集合的预测值,而当前解码块的其它参数传输值可以表示为(δa2,δa3,δa4,δa5)=(a2',a3',a4',a5'),则可以确定出ai',ai'为当前解码块的运动模型优化向量。

在本发明实施例中,第三确定模块430可以对第一分量集合的预测值a0和a1进行量化,确定量化后的第一分量集合的预测值具体地,以仿射运动为例,根据公式(6)确定了运动模型初始向量,在该运动模型初始向量中,a0和a1为平动参数,与运动矢量组中的第一运动矢量v0有关,可以将a0和a1确定为第一分量集合。可选地,这两个参数的量化精度可以为1/16或1/4,以1/16为例,即先将v0放大四倍,使得v0的精度从1/4放大到1/16,再用1/16的精度的v0计算得到精度同样为1/16的量化后的a0和a1为即得到为量化后的第一分量集合的预测值。

可选地,作为一个实施例,第三确定模块430可以根据公式(6)确定了运动模型初始向量的第一分量集合预测值ai,该第一分量集合为该运动模型初始向量的所以分量,即该第一分量集合包括6个参数,而确定该当前解码块的运动模型传输值,也就是该第一分量集合的传输值为(δa0,δa1,δa2,δa3,δa4,δa5),则δai=ai'-ai,确定ai'即为当前解码块的运动模型优化向量。

在本发明实施例中,第三确定模块430可以根据当前解码块,确定运动模型量化精度,根据运动模型量化精度对该运动模型优化向量进行量化,根据量化后的运动模型优化向量对当前解码块进行解析解码重建。

具体地,第三确定模块430确定该当前解码块的运动模型量化精度。具体地,可以根据的当前解码块尺寸和精度信息确定量化精度,其中,该当前解码块的尺寸包括该当前解码块的宽度和该当前解码块的高度,该精度信息包括该运动矢量组的量化精度。具体地,根据公式(6)可知,该运动模型的参数与当前解码块的宽度和高度相关,因此可以通过公式(10)确定量化精度,其中,1/p为当前解码块的运动矢量组的量化精度,可选地,该运动矢量组的量化精度一般为1/4,则p=4,w为该当前解码块的宽度,h为该当前解码块的高度。例如,当前解码块的宽度是16,高度是32,则它们的量化精度是1/(32×4)=1/128;如果当前解码的宽度是16,高度是8,则量化精度是1/(16×4)=1/64。

具体地,在本发明实施例中,第三确定模块430根据确定的量化精度,对确定的运动模型优化向量进行量化,得到量化后的运动模型优化向量

具体地,在本发明实施例中,第三确定模块430根据量化后的运动模型优化向量,对该当前解码块进行解码。具体地,对于运动模型优化向量代入公式(7)中即可获得当前解码块中每个像素点精度为q的参考偏移位置(x',y'),在该参考偏移位置计算得到当前解码块的各个像素样本的预测像素样本,再根据接收的码流中确定的当前解码块的预测残差,对预测像素样本进行解码重建。可选地,该像素样本可以为一个像素点,或多个像素点构成的小像素块,本发明并不限于此。

应理解,根据本发明实施例的解码设备400可对应于执行本发明实施例中的用于视频图像解码的方法200,并且解码设备400中的各个模块的上述和其它操作和/或功能分别为了实现图3至图4中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的解码设备,根据接收到的码流,确定当前解码块的运动矢量组和运动模型传输向量,并根据该运动矢量组确定该当前解码块的运动模型初始向量,根据该运动模型初始向量和运动模型传输向量确定该运动模型优化向量,并将该运动模型优化向量进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。另外,由于确定该运动模型优化向量并对该优化向量进行量化时,确定的量化精度是根据当前解码块的尺寸和当前解码块运动矢量的量化精度进行确定的,也能够减少传输参数时所需的比特数。

如图7所示,本发明实施例还提供了一种编码设备500,包括处理器510、存储器520和总线系统530。其中,处理器510和存储器520通过总线系统530相连,该存储器520用于存储指令,该处理器510用于执行该存储器520存储的指令。编码设备500的存储器520存储程序代码,且处理器510可以调用存储器520中存储的程序代码执行以下操作:确定当前编码块的运动矢量组,该运动矢量组包括该当前编码块的至少一个运动矢量;根据该运动矢量组中的至少一个运动矢量,确定该当前编码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;根据该第一分量集合的预测值,确定该第一分量集合的待传输值;对该第一分量集合的待传输值进行编码,并向解码端发送该编码后的该第一分量集合的待传输值。

因此,本发明实施例的编码设备,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。

应理解,在本发明实施例中,该处理器510可以是中央处理单元(centralprocessingunit,简称为“cpu”),该处理器510还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器520可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器520的一部分还可以包括非易失性随机存取存储器。例如,存储器520还可以存储设备类型的信息。

该总线系统530除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统530。

在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器520,处理器510读取存储器520中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:确定该当前编码块的运动模型优化向量;根据该第一分量集合的预测值和该运动模型优化向量,确定该第一分量集合的待传输值。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:根据该当前编码块的尺寸和精度信息,确定运动模型量化精度;根据该运动模型量化精度,对该运动模型优化向量进行量化;根据该第一分量集合的预测值和量化后的该运动模型优化向量,确定该第一分量集合的待传输值。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:该当前编码块的尺寸包括该当前编码块的宽度和该当前编码块的高度,该精度信息包括该运动矢量组的量化精度;根据公式(10)确定该运动模型量化精度q,其中,p为该运动矢量组的量化精度,w为该当前编码块的宽度,h为该当前编码块的高度。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:该第一分量集合包括该运动模型初始向量的六个分量中的至少一个分量,该运动模型初始向量的六个分量ai由公式(6)确定,其中,i=0,1,2,3,4,5,w为该当前编码块的宽度,h为该当前编码块的高度,vxj为该运动矢量vj在x方向上的分量,vyj为该运动矢量vj在y方向上的分量,j=0,1,2。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:该第一分量集合包括该运动模型初始向量中的两个分量;确定该第一分量集合的待传输值,该第一分量集合的待传输值包括δa0和δa1,其中,为与该第一分量集合对应的量化后的该运动模型优化向量,为该第一分量集合的预测值a0和a1经过量化后得到的数值。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:该第一分量集合包括该运动模型初始向量中的六个分量;确定该第一分量集合的待传输值,该第一分量集合的待传输值包括δai,i=0,1,2,3,4,5,其中,为量化后的该运动模型优化向量,ai为该第一分量集合的预测值。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:确定该当前编码块的多个候选块,该多个候选块中的每个候选块为该当前编码块相邻的已编码块;确定该多个候选块中的每个候选块的运动矢量对应的预测块与该当前编码块的匹配误差值;将该多个候选块对应的多个匹配误差值中最小的匹配误差值对应的候选块,确定为该当前编码块的目标候选块;获取该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号;根据该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值,确定该运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前编码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同;根据该第一运动矢量,确定该运动矢量组。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:确定该当前编码块中同一个像素点对应的多个候选块,该多个候选块中的每个候选块为该当前编码块相邻的已编码块;确定该多个候选块中的每个候选块的运动矢量对应的预测块与该当前编码块的匹配误差值;将该多个候选块对应的多个匹配误差值中最小的匹配误差值对应的候选块,确定为该当前编码块的目标候选块;将该目标候选块的运动矢量,确定为该运动矢量组中的第一运动矢量;根据该第一运动矢量,确定该运动矢量组中的第二运动矢量;根据该第一运动矢量和该第二运动矢量,确定该运动矢量组。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:确定该当前编码块的多个候选运动矢量组,该多个候选运动矢量组中的每个候选运动矢量组包括三个候选运动矢量;确定该多个候选运动矢量组中每个候选运动矢量组对应的候选参考帧;对于该每个候选运动矢量组,确定该当前编码块中每个像素点在该候选参考帧中对应的预测点的坐标值;对于该每个候选运动矢量组,根据该当前编码块中每个像素点的坐标值和该每个像素点在该候选参考帧中对应的预测点的坐标值,确定该当前编码块的匹配误差值;将该当前编码块的匹配误差值最小时对应的该候选运动矢量组确定为该当前编码块的运动矢量组。可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:根据该运动模型初始向量确定该当前编码块的第一预测块;确定该当前编码块与该第一预测块的第一匹配误差值;从该当前编码块的参考帧包括的多个预测块中确定与该当前编码块匹配误差值最小的第二预测块;确定该当前编码块与该第二预测块的第二匹配误差值;根据该第一匹配误差值和该第二匹配误差值确定该当前编码块的该运动模型优化向量。

可选地,作为一个实施例,处理器510可以调用存储器520中存储的程序代码执行以下操作:当该第一匹配误差值小于该第二匹配误差值时,确定该运动模型初始向量为该运动模型优化向量;或当该第一匹配误差值大于该第二匹配误差值时,根据该第二预测块的像素点与该当前编码块的像素点确定该运动模型优化向量。

应理解,根据本发明实施例的编码设备500可对应于本发明实施例中的编码设备300,并可以对应于执行根据本发明实施例的方法100中的相应主体,并且编码设备500中的各个模块的上述和其它操作和/或功能分别为了实现图1至图2中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的编码设备,通过确定当前编码块的运动矢量组,并根据该运动矢量组确定该当前编码块的运动模型初始向量,根据该运动模型初始向量确定该运动模型待传输值,并将该运动模型待传输值进行编码传输,以便于解码端根据该运动模型待传输值进行解码,从而能够减少编解码传输的数据量和占用的比特数。另外,由于确定该运动模型优化向量并对该优化向量进行量化时,确定的量化精度是根据当前编码块的尺寸和当前编码块运动矢量的量化精度进行确定的,也能够减少编码参数所需的比特数。

如图8所示,本发明实施例还提供了一种解码设备600,包括处理器610、存储器620和总线系统630。其中,处理器610和存储器620通过总线系统630相连,该存储器620用于存储指令,该处理器610用于执行该存储器620存储的指令。解码设备600的存储器620存储程序代码,且处理器610可以调用存储器620中存储的程序代码执行以下操作:根据码流,确定当前解码块的运动矢量组和运动模型传输向量,该运动矢量组包括该当前解码块的至少一个运动矢量,该运动模型传输向量包括至少四个分量;根据该运动矢量组中的至少一个运动矢量,确定该当前解码块的运动模型初始向量的第一分量集合的预测值,该运动模型初始向量包括至少四个分量;根据该第一分量集合的预测值和该运动模型传输向量,确定该当前解码块的运动模型优化向量,以便于根据该运动模型优化向量对该当前解码块进行解码。

因此,本发明实施例的解码设备,根据接收到的码流,确定当前解码块的运动矢量组和运动模型传输向量,并根据该运动矢量组确定该当前解码块的运动模型初始向量,根据该运动模型初始向量和运动模型传输向量确定该运动模型优化向量,并将该运动模型优化向量进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。

应理解,在本发明实施例中,该处理器610可以是中央处理单元(centralprocessingunit,简称为“cpu”),该处理器610还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器620可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器620的一部分还可以包括非易失性随机存取存储器。例如,存储器620还可以存储设备类型的信息。

该总线系统630除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统630。

在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器620,处理器610读取存储器620中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:确定该当前解码块的运动模型量化精度;根据该运动模型量化精度,对该运动模型优化向量进行量化;根据量化后的运动模型优化向量,对该当前解码块进行解码。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:根据该当前解码块的尺寸和精度信息,确定该运动模型量化精度。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:该当前解码块的尺寸包括该当前解码块的宽度和该当前解码块的高度,该精度信息包括该运动矢量组的量化精度;根据公式(10)确定该运动模型量化精度q,其中,p为该运动矢量组的量化精度,w为该当前解码块的宽度,h为该当前解码块的高度。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:该第一分量集合包括该运动模型初始向量的六个分量中的至少一个分量,该运动模型初始向量的六个分量ai由公式(6)确定,其中,i=0,1,2,3,4,5,w为该当前解码块的宽度,h为该当前解码块的高度,vxj为该运动矢量vj在x方向上的分量,vyj为该运动矢量vj在y方向上的分量,j=0,1,2。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:该第一分量集合包括该运动模型初始向量中的两个分量;确定该当前解码块的运动模型优化向量为(a0',a1',a2',a3',a4',a5'),其中,(δa2,δa3,δa4,δa5)=(a2',a3',a4',a5'),δai为该运动模型传输向量,为该第一分量集合的预测值a0和a1经过量化后得到的数值。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:该第一分量集合包括该运动模型初始向量中的六个分量;确定该当前解码块的运动模型优化向量为(a0',a1',a2',a3',a4',a5'),其中,δai=ai'-ai,δai为该运动模型传输向量,ai为该第一分量集合的预测值,i=0,1,2,3,4,5。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:根据码流,确定该当前解码块的目标候选块和该目标候选块的运动矢量;获取该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号;根据该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值,确定该运动矢量组中的第一运动矢量,该第一运动矢量与该目标候选块的运动矢量的比值,与该当前解码块的参考帧的播放序号和该目标候选块的参考帧的播放序号的比值相同;根据该第一运动矢量,确定该运动矢量组。

可选地,作为一个实施例,处理器610可以调用存储器620中存储的程序代码执行以下操作:根据码流,确定该当前解码块的目标候选块的运动矢量;确定该当前解码块的目标候选块的运动矢量为该运动矢量组中的第一运动矢量;根据该第一运动矢量,确定该运动矢量组中的第二运动矢量;根据该第一运动矢量和该第二运动矢量,确定该运动矢量组。

应理解,根据本发明实施例的解码设备600可对应于本发明实施例中的解码设备400,并可以对应于执行根据本发明实施例的方法200中的相应主体,并且解码设备600中的各个模块的上述和其它操作和/或功能分别为了实现图3和图4中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的解码设备,根据接收到的码流,确定当前解码块的运动矢量组和运动模型传输向量,并根据该运动矢量组确定该当前解码块的运动模型初始向量,根据该运动模型初始向量和运动模型传输向量确定该运动模型优化向量,并将该运动模型优化向量进行解码重建,从而能够减少编解码传输的数据量和占用的比特数。另外,由于确定该运动模型优化向量并对该优化向量进行量化时,确定的量化精度是根据当前解码块的尺寸和当前解码块运动矢量的量化精度进行确定的,也能够减少传输参数时所需的比特数。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1