本发明涉及图像处理技术领域,尤其涉及一种运动矢量场编码方法和解码方法、编码和解码装置。
背景技术:
自从国际电信联盟(英文:internationaltelegraphunion,缩写:itu)在1984年推出第一个视频编码国际标准h.120以来,视频编码技术已经获得了迅猛蓬勃的发展,已成为了现代信息技术中不可或缺的重要组成部分。随着因特网(英文:internet)、无线通讯网和数字广播网的快速发展,人们对获取多媒体信息的需求日益旺盛,而视频编码技术是有效传输和存储视频信息的关键技术之一。
运动矢量场的压缩是大多数视频编码方案的一个重要部分。在视频编码中,一个运动场景所对应的视频包括一系列视频帧,每一个视频帧包括静止图像,该一系列视频帧形成运动的错觉是通过相对快速地显示连续图像,例如以每秒15至30帧的速率进行显示。由于相对快的帧速率,该系列视频帧内每一个视频帧上的图像很相似。取该系列视频帧中的一个视频帧作为参考图像,该系列视频帧中另一个视频帧的运动矢量场指的是该视频帧相对于参考图像的位移信息。需注意的是,该视频帧可以是与该参考图像相邻的图像,也可以不是与该参考图像相邻的图像。
具体来说,一个视频帧包括多个像素,可将视频帧中的图像分为多个图像单元,其中每一个图像单元内包括至少一个像素,而且每个图像单元内的所有像素的运动矢量相同,也即一个图像单元具有一个运动矢量。该视频帧的运动矢量场由所有图像单元的运动矢量构成。
然而,目前还没有能够有效地压缩运动矢量场的方法。
技术实现要素:
本发明实施例提供了一种运动矢量场编码方法和解码方法、编码和解码装置,能够提高了运动矢量场的压缩效率。
本发明实施例第一方面提供了一种视频编码方法,包括:
获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;
根据所述预测信号和所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;
将所述预测信息和所述预测残差信号写入码流。
结合第一方面,在在第一方面的第一种可能的实施方式中,所述获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,包括:
获取所述当前运动矢量场块的第一参考运动矢量场,所述第一参考运动矢量场为已编码并重建的运动矢量场,其中,所述第一参考运动矢量场为t1时刻的视频帧对应的运动矢量场,所述t1时刻的视频帧为与所述t时刻的视频帧邻近的视频帧;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为在对所述第一参考运动矢量场对应的视频帧进行帧间预测时所采用的参考视频帧对应的时刻;
根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同;
根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括所述用于指示所述第一参考运动矢量场的信息。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
根据计算式
结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
结合第一方面的第一种可能的实施方式,在第一方面的第四种可能的实施方式中,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
结合第一方面,在第一方面的第五种可能的实施方式中,所述获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,包括:
获取所述当前运动矢量场块的方向系数,其中,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量的第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
获取所述第一分量的重建值;
根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值;
根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述获取所述当前运动矢量场块的方向系数,包括:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
将拟合得到的所述预设函数的系数作为所述方向系数。
结合第一方面的第五种可能的实施方式,在第一方面的第七种可能的实施方式中,所述获取所述当前运动矢量场块的方向系数,包括:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数;
将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数;
取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
结合第一方面的第五种可能的实施方式,在第一方面的第八种可能的实施方式中,所述获取所述当前运动矢量场块的方向系数,包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
结合第一方面的第五种可能的实施方式,在第一方面的第九种可能的实施方式中,所述获取所述当前运动矢量场块的方向系数,包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数;
获取所述原始信号中至少一个采样点的运动矢量;
在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
本发明实施例第二方面提供了一种运动运动矢量场解码方法,包括:
获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
根据所述预测信息获取所述当前运动矢量场块的预测信号;
根据所述预测信号和所述预测残差信号,计算所述当前运动矢量场块的重建信号。
结合第二方面,在第二方面的在第一种可能的实施方式中,所述预测信息包括所述用于指示所述运动矢量场块的第一参考运动矢量场的信息;
所述根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
根据计算式
结合第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
结合第二方面的第一种可能的实施方式,在第二方面的第四种可能的实施方式中,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
结合第二方面,在第二方面的第五种可能的实施方式中,所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
所述根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
结合第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;
或者,
所述方向系数信息包括所述方向系数的值。
本发明实施例第三方面提供了一种编码装置,包括:
第一获取模块,用于获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
第二获取模块,用于获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;
计算模块,用于根据所述第二获取模块获取的所述预测信号和所述第一获取模块获取的所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;
编码模块,用于将所述第二获取模块获取的所述预测信息和所述计算模块计算得到的所述预测残差信号写入码流。
结合第三方面,在在第三方面的第一种可能的实施方式中,所述第二获取模块用于:
获取所述当前运动矢量场块的第一参考运动矢量场,所述第一参考运动矢量场为已编码并重建的运动矢量场,其中,所述第一参考运动矢量场为t1时刻的视频帧对应的运动矢量场,所述t1时刻的视频帧为与所述t时刻的视频帧邻近的视频帧;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为在对所述第一参考运动矢量场对应的视频帧进行帧间预测时所采用的参考视频帧对应的时刻;
根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同;
根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括所述用于指示所述第一参考运动矢量场的信息。
结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述第二获取模用于根据计算式
结合第三方面的第一种可能的实施方式,在第三方面的第三种可能的实施方式中,所述第二获取模用于确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
结合第三方面的第一种可能的实施方式,在第三方面的第四种可能的实施方式中,所述第二获取模用于获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
结合第三方面,在第三方面的第五种可能的实施方式中,所述第二获取模块用于:
获取所述当前运动矢量场块的方向系数,其中,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量的第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
获取所述第一分量的重建值;
根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值;
根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
结合第三方面的第五种可能的实施方式,在第三方面的第六种可能的实施方式中,所述第二获取模块用于:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
将拟合得到的所述预设函数的系数作为所述方向系数。
结合第三方面的第五种可能的实施方式,在第三方面的第七种可能的实施方式中,所述第二获取模块用于:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数;
将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数;
取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
结合第三方面的第五种可能的实施方式,在第三方面的第八种可能的实施方式中,所述第二获取模块用于:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
结合第三方面的第五种可能的实施方式,在第三方面的第九种可能的实施方式中,所述第二获取模块用于:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数;
获取所述原始信号中至少一个采样点的运动矢量;
在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
本发明实施例第四方面提供了一种解码装置,包括:
第一获取模块,用于获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
第二获取模块,用于根据所述预测信息获取所述当前运动矢量场块的预测信号;
计算模块,用于根据所述第二获取模块获取的所述预测信号和所述第一获取模块获取的所述预测残差信号,计算所述当前运动矢量场块的重建信号。
结合第四方面,在第四方面的在第一种可能的实施方式中,所述预测信息包括所述用于指示所述运动矢量场块的第一参考运动矢量场的信息;
所述第二获取模块用于:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
结合第四方面的第一种可能的实施方式,在第四方面的第二种可能的实施方式中,所述第二获取模块用于:
根据计算式
结合第四方面的第一种可能的实施方式,在第四方面的第三种可能的实施方式中,所述第二获取模块用于:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
结合第四方面的第一种可能的实施方式,在第四方面的第四种可能的实施方式中,所述第二获取模块用于:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
结合第四方面,在第四方面的第五种可能的实施方式中,所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
所述第二获取模块,用于获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
结合第四方面的第五种可能的实施方式,在第四方面的第六种可能的实施方式中,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;
或者,
所述方向系数信息包括所述方向系数的值。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,对当前块进行编码时,由于无需对当前运动矢量场块的原始信号进行编码,而是通过对预测信息和预测残差信号进行编码,提高了运动矢量场的压缩效率。
附图说明
图1为本发明的运动矢量场编码方法的一个实施例的流程图;
图2为连续切分和离散切分的示意图;
图3为图1所示实施例中获取所述当前块的预测信号的一个实施例的流程图;
图4为图3所示实施例中确定第一集合中各第一采样点的运动矢量的权数的一个实施例的流程图;
图5为图1所示实施例中获取所述当前块的预测信号的一个实施例的流程图;
图6为图5所示实施例中获取当前块的方向系数的一个实施例的流程图;
图7为图5所示实施例中获取当前块的方向系数的另一个实施例的流程图;
图8为图5所示实施例中获取当前块的方向系数的另一个实施例的流程图;
图9为本发明的运动矢量场解码方法的一个实施例的流程图;
图10为本发明的编码装置的一个实施例的结构示意图;
图11为本发明的解码装置的一个实施例的结构示意图;
图12是本发明的编码装置的另一个实施例的结构框图;
图13是本发明的解码装置的另一个实施例的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面先介绍本发明实施例提供的运动矢量场编码方法。本发明实施例提供的运动矢量场编码方法的执行主体是编码装置,其中,该编码装置可以是任何需要输出或存储视频的装置,如笔记本电脑、平板电脑、个人电脑、手机或视频服务器等设备。
本发明运动矢量场编码方法的一实施例,一种运动矢量场编码方法包括:获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;根据所述预测信号和所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;将所述预测信息和所述预测残差信号写入码流。
首先参见图1,图1为本发明的一实施例提供的一种运动矢量场编码方法的流程示意图,如图1所示,本发明的一实施例提供的一种运动矢量场编码方法可以包括以下内容:
101、获取当前运动矢量场块的原始信号。
运动矢量场为一幅图像相对于另一幅图像的运动信息。在视频压缩中,运动矢量场用于描述目标视频帧相对于该目标视频帧的参考视频帧的运动信息,其中,目标视频帧中包括多个图像块,每个图像块在参考视频帧中有相应的匹配块。运动矢量场中的各采样点与目标视频帧中的各图像块一一对应,每个采样点的值为该采样点对应的图像块的运动矢量,其中,该运动矢量为该图像块相对于该图像块在参考视频帧中的匹配块的位移信息。
本实施例中,在对t时刻的视频帧对应的运动矢量进行压缩时,将该运动矢量场划分为不同的运动矢量场块,通过对每个运动矢量场块压缩编码来对该运动矢量场压缩编码,其中一个运动矢量场块包括至少一个采样点。下文中,为描述方便,将当前待压缩的运动矢量场块称为当前块,将该当前块所在的运动矢量场称为当前场。
需要注意的是,在对运动矢量场分为不同的运动矢量场块时,各运动矢量场块和该运动矢量场所对应的视频帧所分成的各图像块并不一定相对应。对运动矢量场分块的方法可以参考对视频帧分块的方法,在此不作限制。
102、获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息。
获取预测信号的方法多种,例如,目前hevc标准中提供了视频帧的35种帧内预测模式,其中该35中帧内预测模式包括33个方向性预测模式,以及intra_dc和intra_planar模式。本实施例中,在获取运动矢量场块的预测信号时,将该帧内预测模式运用到当前场的帧内预测中。
具体的,确定一种帧内预测模式,将当前场上与当前块邻近的、已编码并重建的至少一个运动矢量场块作为该当前块的参考运动矢量场块;根据该帧内预测模式和该参考运动矢量场块获取当前块的预测信号。
其中,与当前块邻近的运动矢量场块可以是与该运动矢量场块相邻(也即与该运动矢量场块相接)的运动矢量场块,也可以是与该当前块相隔有预置数值个运动矢量场块的运动矢量场块,在此不作限制。实际应用中,由于对当前场中各运动矢量场块的编码顺序为从左到右,从上到下。因此,一般选择位于当前块的左方、左下方、上方或者右上方的、相邻的、已编码并重建的运动矢量场块作为参考运动矢量场块。
根据预测模式和参考运动矢量场块计算预测信号的方法有多种。例如,获取的帧内预测模式为所述33个方向性预测模式中的水平预测模式,那么当前块的参考运动矢量场块为与所述当前块位于同一行上的左边第一个运动矢量场块。将参考运动矢量场块的重建信号作为当前块的预测信号。
又例如,获取的帧内预测模式为intra_dc模式,获取到当前块的参考运动矢量场块后,将参考运动矢量场块的重建像素平均值作为当前块的预测信号。
那么,相对应的,预测信息为帧内预测模式的索引以及参考运动矢量场块的索引。
或者,预测信息可以不包括参考运动矢量场块的索引。编码装置和解码装置预先制定好每一种帧内预测模式所对应的当前块采用的参考运动矢量场块相对该当前块的位置。本实施例中,编码装置和解码装置还预先制定好每一种帧内预测模式所对应的计算预测信号的方法。这样,解码装置在接收到预测信息后,根据预测信息内的预测模式以及参考运动矢量场块的索引,采用预制的计算方法计算预测信号。
实际应用中,在获取当前块的预测信号时,可直接确定一种帧内预测模式,采用该帧内预测模式来计算当前块的预测信号,并将该帧内预测模式的索引包括到预测信息内。或者,也可以是遍历每一种帧内预测模式,采用每一种帧内预测模式计算当前块的预测信号,并将与当前块的原始信号差异(也即下文提到的预测残差信号)的能量最小的预测信号所对应的帧内预测模式的索引包括到预测信息内,且采用该预测信号来计算后续的预测残差信号。
103、根据所述预测信号和所述原始信号,计算所述当前运动矢量场块的预测残差信号。
所述预测残差信号用于指示所述原始信号和所述预测信号之间的差异,其中,该预测信号为根据预测信息所获取到的预测信号。获取到当前块的预测信号后,计算该当前块的原始信号和预测信号之间的差异,即可得到当前块的预测残差信号。
计算当前块的原始信号和预测信号之间的差异的方法为现有技术,在此不再赘述。
104、将所述预测信息和所述预测残差信号写入码流。
由于解码装置可以根据该预测信息对当前块进行预测,以获取当前块的预测信号,再结合当前块的预测残差信号,便可以计算出当前场的原始信号。因此,在编码装置,在对当前块进行压缩编码,只需将预测信息和预测残差信号写入码流发送到解码装置,即可让解码装置获取到当前块的原始信号。
本实施例中,对预测残差信号的编码可参考视频标准中对视频帧的预测残差信号的编码。实际中,在对预测残差信号编码时,先将预测残差信号进行压缩,再将压缩数据写入码流。
在对预测残差信号进行压缩时,一般分为有损压缩和无损压缩。无损压缩是指经过压缩后,重建的运动矢量场信号与原始信号完全一样,没有信息的损失。有损压缩是指经过压缩后,重建的运动矢量场信号与原始信号不完全一样,有一定的信息损失。无损压缩的过程可以包括变换和熵编码。有损压缩的过程可以包括变换、量化和熵编码。此为现有技术,在此不再赘述。
本实施例中,对当前块进行编码时,由于无需对当前块的原始信号进行编码,而是通过对预测信息和预测残差信号进行编码,大大减少了所要编码的信息量,提高了运动矢量场的编码效率;而且,由于预测信息为获取当前块的预测信号所需的信息,解码装置可以根据该预测信息获取到的预测信号与编码装置获取到的预测信号相同,这样,解码装置根据预测信息和预测残差信号可以高度还原出当前块的原始信号。
本实施例中,预测信息有多种,相对应的,根据预测信息来获取当前块的预测信号的方法有多种。下面对其中的几种举例说明。
举例一,可采用场内预测的方法,也即根据当前场来对该当前块进行预测。由于当前块与空间上相邻的运动矢量场之间存在一定的相关性,可以根据场内预测方法对当前块进行预测。
实际应用中,场内预测方法有多种。例如,场内预测方法包括角度预测和帧内区域划分预测。其中,角度预测的方法可采用步骤102的解释说明中所描述的根据帧内预测模式和当前块的参考运动矢量场块来获取当前块的预测信号。
帧内区域划分预测方法具体为:将当前块切分为至少两个区域,在每一个区域中获取一个运动矢量作为该区域的预测信号。因此,在帧内区域划分预测方法中,预测信息包括区域划分方法的信息以及确定每个区域的预测信号的方法的信息。其中,所述区域划分方法的信息用于指示所述区域划分方法,例如为所述区域划分方法的索引。所述确定每个区域的预测信号的方法的信息用于指示确定每个区域的预测信号的方法,例如为确定每个区域的预测信号的方法的索引。
或者,预测信息也可以不包括确定每个区域的预测信号的方法的信息,而是编码装置和解码装置内存储有预先制定的相同的确定每个区域的预测信号的方法。在此不作限制。
本实施例中,确定每个区域的预测信号的方法有多种,例如,可以将一个区域内所有采样点的运动矢量的平均值作为该区域的预测信号,也可以将该区域内的其中一个采样点的运动矢量作为该区域的预测信号,或者也可以是其他,在此不作限制。其中,取区域内的其中一个采样点的运动矢量作为该区域的预测信号时,可对该区域内所有采样点遍历一遍,并确定使得预测残差信号的能量最小的一个采样点的运动矢量作为预测信号。
本实施例中,将当前块划分的方法有多种。例如,首先将当前块切分为两个区域。再将该两个区域中的至少一个区域切分为两个区域,以此下去,直至满足预置条件时,停止对区域进行切分。
该预置条件有多种设置,例如,可以计算每一次切分后当前块的失真值,该失真值为该次切分后当前块中每个区域的预测信号与原始信号之间的差值中的最大值,当该失真值小于预置数值时,满足预置条件。当然,上述仅为对预置条件的举例描述,并不作限制。
又例如,可以预先设置好预置数值,每一次划分后,计算当前块所被划分成的区域的数量,当该数量达到预置数值时,满足预置条件。
其中,在将一个区域切分为两个区域时,其中一个区域或者其中两个区域的形状可以为梯形或者三角形。当然,该区域的形状也可以是其他形状,在此不作限制。
可选的,本实施例中,在对每一个区域切分时,遍历对该区域的每一种划分方法,并计算每一种切分方法下该区域内两个子区域的预测信号,并根据该两个子区域的预测信号来从中确定出最优的一种切分方法。具体的,可以采用率失真优化原则来确定出最优的一种切分方法。
本实施例中,在将当前块切分为不同区域时,可对当前块进行连续切分,也可以进行离散切分。下面结合图2对连续切分和离散切分进行解释。
如图2左图所示,连续切分指的是采用直线l直接将当前块s切分成两个区域p1和p2,离散切分指的是当前块s由多个像素块组成,切分时沿着当前场中的像素块的边缘对该当前块进行切分,将当前块s切分成两个区域p1和p2。
或者,在将当前块划分为不同区域时,还可以对当前块进行轮廓划分,也即根据当前块上的图像所表示的物体的轮廓来对当前块进行划分,在此不作限制。
举例二,可采用场间预测的方法,也即根据当前块与时间上邻近的运动矢量场之间的相关性,采用参考运动矢量场对当前块进行预测,其中该参考运动矢量场指的是与当前场时间上邻近的其他运动矢量场。
需注意的是,该邻近的运动矢量场可以是与当前场相邻的运动矢量场(也即在时间上与当前场对应的视频帧的下一个或者上一个视频帧的运动矢量场),也可以是与当前场相隔有至少一个运动矢量场(也即在时间上与当前场对应的视频帧相隔有至少一个视频帧的视频帧对应的运动矢量场)。其中,下面对场间预测的方法的其中的两种实施例进行举例描述。
实施例一:由于物体的运动在时间上存在一定的连贯性,因此,运动矢量场在时间上存在一定的相关性,也即当前块的至少部分会出现在参考运动矢量场中,但当前块在当前场中的位置和在参考运动矢量场中的位置不一定相同。
为描述清楚,在本文中,运动矢量场块在运动矢量场中的位置指的是该运动矢量场块在该运动矢量场中的坐标范围。那么,运动矢量场块p在运动矢量场p中的位置与运动矢量场块q在运动矢量场q中的位置相同,指的是运动矢量场块p在运动矢量场p中的坐标范围与运动矢量场块q在运动矢量场q中的坐标范围相同。
因此,本实施例中,获取所述当前块的预测信号具体包括:确定当前块的参考运动矢量场,在所述参考运动矢量场上查找所述当前块的匹配块,将所述匹配块的重建信号作为所述当前块的预测信号。查找匹配块的方法有多种,例如,可遍历参考运动矢量场上的每一个运动矢量场块,并计算该运动矢量场块与当前块的差异,将与当前块差异最小的运动矢量场块作为当前块的匹配块。
获取所述当前块的预测信息具体包括:将所述参考运动矢量场的信息和所述匹配块的信息作为所述预测信息,其中,所述参考运动矢量场的信息用于指示所述参考运动矢量场,所述匹配块的信息用于指示所述匹配块。具体的,所述参考运动矢量场的信息可以是该参考运动矢量场的索引,所述匹配块的信息可以是该匹配块的位置相对于参考运动矢量场中第一运动矢量场块的位置的位移信息,其中第一运动矢量场块在参考运动矢量场中的位置与当前块在当前场上的位置相同;或者,所述匹配块的信息也可以是所述匹配块的索引,在此不作限制。
实施例二:本实施例中,假设视频序列中所拍摄的同一物体在较短时间内的运动状态保持不变,也即运动方向和大小不变,那么可以根据参考运动矢量场推导出当前块的预测信号。
具体的,本实施例中,如图3所示,获取所述当前块的预测信号具体包括:
s11、获取所述当前运动矢量场块的第一参考运动矢量场。
所述第一参考运动矢量场为与所述当前场邻近的、已编码并重建的运动矢量场。为方便描述,将所述当前场对应的视频帧称为t时刻的视频帧,将所述第一参考运动矢量场对应的视频帧称为t1时刻的视频帧。其中,t1时刻可以在t时刻之前,也可以在t时刻之后,在此不作限制。
s12、根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻获取第二参考运动矢量场。
为理解方便,下面先对将描述到的运动矢量场和视频帧进行解释:目标物体在t1时刻的视频帧中的位置为a,该视频帧进行帧间预测时所采用的参考视频帧为t2时刻的视频帧,其中目标物体在该t2时刻的视频帧中的位置为b。那么,目标物体在第一参考运动矢量场中对应的第一采样点的运动矢量
假设目标物体的运动状态(包括速度和方向)维持不变,也即目标物体在t1-t2时间内对应的位移为
根据上述方法,将第一参考运动矢量场内每一个采样点看成一个目标物体,可以推导出每一个采样点在t时刻所移动到的位置。将所述第一参考运动矢量场中各采样点各自移动,其中,每一个采样点移动后的位置相比移动前的位置的位移
因此,获取第二参考运动矢量场时,根据计算式
本实施例中,将所述第一参考运动矢量场中各采样点移动以获取第二参考运动矢量场时,会出现第一参考运动矢量场中至少两个采样点在t时刻移动到运动矢量场内相同的位置上。
也就是说,第一参考运动矢量场中各采样点保持当前的速度和方向不变,在t时刻形成的运动矢量场(也即第二参考运动矢量场)时,可能出现第一参考运动矢量场中至少两个采样点移动到同一个位置上,而第二参考运动矢量场上该位置的采样点的取值有多种取法,例如,可以取其中一个采样点的运动矢量与(t-t1)/(t1-t2)的乘积作为该位置上的采样点的运动运动矢量。
或者,优选的,在这种情况下,采用如下方法确定该位置的运动矢量:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积。
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。为下文描述方便,将该第二采样点称为目标第二采样点,该第一参考运动矢量场的至少两个第一采样点称为第一集合。
其中,在确定第一集合中各第一采样点的运动矢量的权数时,可以预设该第一集合中各第一采样点的运动矢量的权数相等,也即将第一集合中各第一采样点的运动矢量的平均值作为目标第二采样点的运动矢量。
或者,如图4所示,确定第一集合中各第一采样点的运动矢量的权数具体包括:
s21、获取第二参考运动矢量场中位于目标第二采样点周围的至少一个第二采样点的运动矢量。
为描述方便,将位于目标第二采样点周围的至少一个第二采样点称为第二集合,每一个第二采样点为第二集合的一个元素。
可选的,该第二集合可以包括位于目标第二采样点周围且与目标第二采样点相邻的四个第二采样点中的至少一个。
s22、计算所述第一集合中第一采样点的运动矢量分别与所述第二集合的运动矢量的相似程度。
对第一集合中的每一个第一采样点,计算该第一采样点的运动矢量与第二集合中各采样点的运动矢量的相似程度。计算相似程度的方法有多种。例如,可以计算该第一采样点的运动矢量分别与第二集合中每一个元素的运动矢量的差值,再将各差值的和或者平均值作为该第一采样点的运动矢量与第二集合的运动矢量的相似程度,那么,差值的和或者平均值越小,相似程度越高。
当然,上述仅为举例,并不作限制。
s23、根据所述相似程度确定第一集合中各第一采样点的运动矢量的权数,其中,与第二集合的运动矢量的相似程度越高的第一采样点的运动矢量的权数越大。
确定第一集合中各元素的运动矢量分别对应的相似程度后,根据该相似程度的大小确定第一集合中各元素的运动矢量的权数,其中,相似程度越高的元素的运动矢量的权数越大。具体的,可以预先设置不同排名对应的权数,确定第一集合中各元素的相似程度的排名后,取该元素的排名对应的权数作为该元素的运动矢量的权数。
上面描述了第一参考运动矢量场中出现至少两个第一采样点在t时刻移动到参考运动矢量场内相同的位置上的情况。
实际应用中,第二参考运动矢量场上还可能会出现特殊位置,其中第一参考运动矢量场中没有采样点在t时刻移动到该特殊位置上。
在这种情况下,获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
为描述方便,下文将该至少一个第二采样点称为第三集合。
其中,在确定第三集合中各第二采样点的运动矢量的权数时,可以预设第三集合中各第二采样点的运动矢量的权数相等,也即将第三集合中各第二采样点的运动矢量的平均值作为目标第二采样点的运动矢量。
或者,所述确定第三集合中各第二采样点的运动矢量的权数具体包括:
获取第三集合中各第二采样点分别与目标第二采样点的距离,根据该距离分别确定定第三集合中各第二采样点的权数,其中,距离越近的第二采样点的运动矢量的权数越大。
当然,当第三集合中只有一个第二采样点时,该第三集合中第二采样点的运动矢量的加权平均值为该第二采样点的运动矢量。
具体举例来说,距离目标第二采样点左边最近的一个第二采样点(运动矢量为
s13、根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同。
由于第二参考运动矢量场是t时刻的预测运动矢量场,也即该第二参考运动矢量场是当前场的预测信号。由于当前场中的不同块采用的预测方法不一定全是本实施例中所描述的方法,因此,在当前块采样本实施例描述的方法时,将第二参考运动矢量场中位于当前块所在区域处的运动矢量场块的信号作为当前块的预测信号。
s14、根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括所述用于指示所述第一参考运动矢量场的信息。
由于在获取当前块的预测信号时只根据第一参考运动矢量场的内容即可确定当前块的预测信号,因此,只需将第一参考运动矢量场的信息作为预测信息,便可让解码装置计算出当前块的预测信号。其中,所述第一参考运动矢量场块的信息用于指示所述第一参考运动矢量场。例如,所述第一参考运动矢量场的信息为该第一参考运动矢量场的索引。
本实施例中,由于当前块的预测信息仅包括第一参考运动矢量场的信息,大大降低了对当前块码所需的比特数。
需注意的是,上文所描述的所有方法虽然是以运动矢量为例,但实际应用中也可以将运动矢量替换为该运动矢量的其中一个分量。
举例三,可采用运动矢量场分量间预测的方法,也即根据当前块的方向系数和当前块中各采样点的运动矢量的一个分量对另一个分量进行预测。
运动矢量包括方向和大小,可将运动矢量分解为水平和竖直两个分量。例如,对于一个运动矢量
具体的,请参阅图5,获取所述当前块的预测信号具体包括以下步骤:
s31、获取当前运动矢量场块的方向系数。
采样点的运动矢量可分解为垂直分量和水平分量。为描述方便,将运动矢量的垂直分量和水平分量中的其中一个分量称为第一分量,称另一个分量为运动矢量的第二分量。由于当前块中包括至少一个采样点,因此,当前块可分解为第一分量块和第二分量块,其中,第一分量块包括当前块中各采样点的第一分量,第二分量块包括当前块中各采样点的第二分量。
当前块的方向系数用于指示所述各采样点的第一分量的值与第二分量的值之间的关系,也即在对当前块进行预测时,假设当前块中所有采样点的第一分量和第二分量之间的函数关系相同。
s32、获取所述第一分量的重建值。
本实施例中,在对当前块进行压缩时,包括对当前块的第一分量块和第二分量块的压缩。在对第一分量块编码时,可采用如图1所示实施例中的方法,或者上文描述的场内预测或场间预测的方法来对第一分量块编码,在此不作限制。
在对第二分量块编码时,由于假设所有采样点的第一分量和第二分量之间的函数关系相同,因此,第二分量块中各采样点的预测值可由该采样点的第一分量与方向系数计算出来。
由于解码装置是根据方向系数和当前块中各采样点的第一分量的重建值来计算该采样点的第二分量的预测值。因此,在编码装置计算当前块的预测信号前,先获取方向系数和当前块中各采样点的第一分量的重建值,需注意的是,由于方向系数信息量较小,编码装置对方向系数一般为无损编码,因此编码装置无需获取方向系数的重建值,而是直接采样方向系数的原始值。
s33、根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值。
由于解码端可以获取到第一分量的重建值,因此,当前块的预测信号包括第二分量的预测值时,解码端即可根据该第二分量的预测值和第一分量的重建值获取当前块的预测信号。
对当前块中的每一个采样点,将当前块的方向系数作为该采样点的方向系数,也即根据该采样点的第一分量以及当前块的方向系数计算该采样点的第二分量。这样,当前块中每个采样点的预测信号包括第二分量的预测值。
s34、根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
本实施例中,由于当前块的预测信息包括一个方向系数,当前块编码所需的比特数较少。
图5所示实施例中,获取当前块的方向系数的方法有多种。下面对其中的几种进行举例描述。
例一、如图6所示,获取当前块的方向系数包括:
s41、获取所述原始信号的至少两个采样点的运动矢量。
s42、将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合,将拟合得到的所述预设函数的系数作为所述方向系数。
本实施例中,通过对当前块中至少两个采样点的运动矢量进行拟合,其中,在拟合时以各采样点的运动矢量的第一分量作为预设函数的自变量,第二分量作为该预设函数的函数值,以获取当前块中各采样点的第一分量和第二分量间的函数关系。
具体的,可以将各采样点拟合为一条直线。将各采样点拟合为一条直线时,该直线的预设函数方程为y=kx,k不等于0,或者,y=ax+b,a不等于0。在预设函数方程为y=kx的情况中,k为当前块的方向系数。这表示该当前块中所有点均做方向相同的直线运动。在预设函数方程为y=ax+b的情况中,a和b为当前块的方向系数。
也可以将所有点拟合为一条曲线,那么该曲线对应的函数方程中的系数为当前块的方向系数。例如,该曲线对应的预设函数方程为y=ax2+bx+c,那么a、b、c为当前块的方向系数。
本实施例中,作为预测信息的一部分的当前运动矢量场的方向系数信息具体包括方向系数的值。当然,编码装置和解码装置需预先制定好不同的系数个数分别对应的函数方程,这样,编码装置只需将方向系数写入码流,解码装置便可根据该方向系数中所包含的数值的个数确定对应的函数方程。
例二、如图7所示,获取当前块的方向系数包括:
s51、获取所述原始信号的至少两个采样点的运动矢量。
s52、将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合。
详细解释参考例一中的步骤s42的部分解释说明,在此不再赘述。
s53、获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数。
s54、将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数。
s55、取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
与例一不同的是,本实施例中,计算出当前块中的采样点的拟合函数的系数后,并不是直接将该拟合函数的系数作为当前块的方向系数。在位于当前块周围且与当前块相邻的所有已编码块中,当前块所对应的图像有可能与所述所有已编码块中的其中一个已编码块所对应的图像为同一个物体,那么,当前块的方向系数有可能与其中一个已编码块的方向系数相同。
因此,本实施例中,还获取所述所有已编码块的方向系数,并将所述拟合函数的系数和所述所有已编码块的方向系数作为所述当前块的候选方向系数集的候选方向系数,计算每一个候选方向系数对应的所述当前块的候选预测信号以及候选预测残差信号,将能力最小的候选预测残差信号所对应的候选方向系数作为所述当前块的方向系数。
本实施例中,当所述当前块的方向系数为所述函数的系数时,所述方向系数信息包括所述方向系数的值,当所述当前块的方向系数为所述已编码块的方向系数时,所述方向系数信息用于指示所述已编码块或者包括所述已编码块的方向系数的值,在此不作限制。
例三、获取当前块的方向系数包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
当与当前块相邻的至少两个已编码块的方向系数相同时时,可以推断该至少两个已编码块的图像属于同一个物体,进而假设该当前块的图像和该至少两个已编码块的图像属于同一个物体,因此,可以直接确定当前块的方向系数和该至少两个已编码块的方向系数相同。
本实施例中,当前运动矢量场的方向系数信息具体用于指示所述已编码块或者包括所述已编码块的方向系数的值,例如,所述方向系数信息包括所述已编码块的索引,在此不作限制。
例四、如图8所示,获取当前块的方向系数包括:
s61、当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
s62、将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数。
s63、获取所述原始信号中至少一个采样点的运动矢量,
在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数。
s64、获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
与例三不同的是,本实施例中,当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,并不是直接将该至少两个已编码运动矢量场块的方向系数作为当前块的方向系数。在与当前块相邻的已编码块中,当前块中的各采样点所对应的图像有可能为同一个物体,那么,当前块的方向系数有可能与其中一个采样点的方向系数相同。
因此,本实施例中,还获取所述原始信号中至少一个采样点的运动矢量,并将所述已编码块的方向系数以及所述至少一个采样点的运动矢量的第一分量与所述至少一个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数,或者,将所述已编码块的方向系数以及所述运动矢量的第一分量与所述运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数。
本实施例中,当所述当前块的方向系数为所述函数的系数时,所述方向系数信息包括所述方向系数的值,当所述当前块的方向系数为所述已编码块的方向系数时,所述方向系数信息用于指示所述已编码块或者包括所述已编码块的方向系数的值,在此不作限制。
上面对如何获取当前块的预测信号和预测信息的几种方法进行了解释说明。实际应用中,在对当前运动矢量场的各运动矢量场块进行压缩编码时,不同运动矢量场块获取预测信号和预测信息时可以采用相同的方法,也可以采用不同的方法。
在不同运动矢量场块采用的获取预测信号和预测信息的方法不同的情况中,确定当前块采用的获取预测信号和预测信息的方法有多种。例如,可在编码装置和解码装置预先制定好每一种获取方法对应的索引。在编码装置,获取当前块的预测信号和预测信息时,遍历每一种获取方法并计算每一种获取方法中的预测残差信号,选择能量最小的预测残差信号对应的获取方法确定为当前块的获取方法,并将该获取方法的索引包括到当前块的预测信息内。
上面对本发明实施例的运动矢量场编码方法进行了描述。下面介绍本发明实施例提供的运动矢量场解码方法,本发明实施例提供的运动矢量场解码方法的执行主体是解码装置,其中,该解码装置可以是任何需要输出、播放视频的装置,如手机,笔记本电脑,平板电脑,个人电脑等设备。
本发明运动矢量场解码方法的一实施例,一种运动矢量场解码方法包括:获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;根据所述预测信息获取所述当前运动矢量场块的预测信号;根据所述预测信号和所述预测残差信号,计算所述当前运动矢量场块的重建信号。
请参见图9,图9为本发明的另一实施例提供的一种运动矢量场解码方法的流程示意图,如图9所示,本发明的另一实施例提供的一种运动矢量场解码方法可以包括以下内容:
901、获取当前运动矢量场块的预测信息和预测残差信号。
解码装置接收到视频码流后,对该视频码流进行解码,以还原原始视频序列中的各视频图像。其中,在对每一个视频帧解码时,通过该视频帧的参考帧以及该视频帧的运动矢量场来对该视频帧解码。
因此,解码装置需先对视频帧的参考帧以及运动矢量场进行解码。本实施例中,将当前要解码的运动矢量场称为当前运动矢量场。所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场。
在对当前运动矢量场解码时,通过依次对当前运动矢量场中的每一个运动矢量场块进行重建来获得该当前运动矢量场的重建信号。在对当前块进行解码时,先从视频码流中获取到当前块的预测信息和预测残差信号。
902、根据所述预测信息获取所述当前运动矢量场块的预测信号。
预测信息所包含的内容不同,根据预测信息获取当前块的预测信号的方法也不同。
举例来说,在预测信息为帧内预测模式的索引以及参考运动矢量场块的索引的情况下,根据预测信息获取所述当前运动矢量场块的预测信号具体包括:根据帧内预测模式的索引确定帧内预测模式,根据参考运动矢量场块索引确定参考运动矢量场块,然后根据帧内预测模式和参考运动矢量场块的信号获取当前块的预测信号。
编码装置和解码装置预先制定好每一种帧内预测模式所对应的计算预测信号的方法。这样,解码装置在接收到预测信息后,根据预测信息内的预测模式以及参考运动矢量场块的索引,采用预制的计算方法计算预测信号。
例如,获取的帧内预测模式为hevc标准中提供的视频帧的35种帧内预测模式中的水平预测模式,那么将当前块的参考运动矢量场块的重建信号作为当前块的预测信号。
又例如,获取的帧内预测模式为所述35种帧内预测模式中的intra_dc模式,那么将参考运动矢量场块的重建像素平均值作为当前块的预测信号。
实际应用中,解码装置获取到的预测信息中也可以不包括参考运动矢量场块的索引,解码装置和编码装置预先指定好每一种帧内预测模式所对应的当前块采用的参考运动矢量场块相对该当前块的位置。这样,解码装置获取到预测信息后,根据预测信息内的帧内预测模式来确定当前块的参考运动矢量场。
903、根据所述预测信号和所述预测残差信号,计算所述当前运动矢量场块的重建信号。
所述预测残差信号用于指示所述当前块的原始信号和预测信号之间的差异。解码装置获取到当前块的预测信号后,通过预测残差信号对该预测信号进行修正,即可得到当前块的重建信号。
本实施例中,由于预测信息为获取当前块的预测信号所需的信息,解码装置可以根据该预测信息获取到的预测信号与编码装置获取到的预测信号相同,这样,解码装置根据预测信息和预测残差信号可以高度还原出当前块的原始信号。
本实施例中,预测信息有多种,相对应的,根据预测信息来获取当前块的预测信号的方法有多种。下面对其中的几种举例说明。
举例一:预测信息包括区域划分方法的信息以及确定每个区域的预测信号的方法的信息。
其中,所述区域划分方法的信息用于指示所述区域划分方法,例如为所述区域划分方法的索引。所述确定每个区域的预测信号的方法的信息用于指示确定每个区域的预测信号的方法,例如为确定每个区域的预测信号的方法的索引。
根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
根据区域划分方法的信息确定区域划分方法,并采用所述区域划分方法将所述当前块划分为不同区域。
根据所述确定每个区域的预测信号的方法的信息获取确定每个区域的预测信号的方法,并采用该方法获取每个区域的预测信号。
例如,所述确定每个区域的预测信号的方法的信息指示该区域的预测信号为该区域内所有采样点的运动矢量的平均值。那么,获取该区域的预测信号时,计算区域内所有采样点的运动矢量的平均值,将该平均值作为该区域的预测信号。
或者,
所述确定每个区域的预测信号的方法的信息指示该区域的预测信号为其中一个采样点的运动矢量。那么,获取该区域的预测信号时,根据该采样点的索引获取该采样点的运动矢量,将该采样点的运动矢量作为该区域的预测信号。
当然,上述描述仅为举例,在此不作限制。
或者,预测信息也可以不包括确定每个区域的预测信号的方法的信息,而是编码装置和解码装置内存储有预先制定的相同的确定每个区域的预测信号的方法。在此不作限制。
本实施例中,将当前块划分的方法有多种。具体可参考在运动矢量场编码方法中对获取预测信息和预测信号的举例一的解释描述中对当前块划分的方法的举例描述,在此不再赘述。
举例二:预测信息包括参考运动矢量场的信息和所述匹配块的信息,其中,所述参考运动矢量场的信息用于指示所述参考运动矢量场,所述匹配块的信息用于指示所述匹配块。
具体的,所述参考运动矢量场的信息可以是该参考运动矢量场的索引,所述匹配块的信息可以是该匹配块的位置相对于参考运动矢量场中第一运动矢量场块的位置的位移信息,其中第一运动矢量场块在参考运动矢量场中的位置与当前块在当前场上的位置相同;或者,所述匹配块的信息也可以是所述匹配块的索引,在此不作限制。
根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:根据参考运动矢量场的信息确定参考运动矢量场,根据匹配块的信息在参考运动矢量场中查找所述匹配块,将所述匹配块的重建信号作为当前块的预测信号。
举例三:预测信息包括所述用于指示所述运动矢量场块的第一参考运动矢量场的信息。
根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
本实施例中,为理解方便,下面先对将描述到的运动矢量场和视频帧进行解释:目标物体在t1时刻的视频帧中的位置为a,该视频帧进行帧间预测时所采用的参考视频帧为t2时刻的视频帧,其中目标物体在该t2时刻的视频帧中的位置为b。那么,目标物体在第一参考运动矢量场中对应的第一采样点的运动矢量
假设目标物体的运动状态(包括速度和方向)维持不变,也即目标物体在t1-t2时间内对应的位移为
根据上述方法,将第一参考运动矢量场内每一个采样点看成一个目标物体,可以推导出每一个采样点在t时刻所移动到的位置。将所述第一参考运动矢量场中各采样点各自移动,其中,每一个采样点移动后的位置相比移动前的位置的位移
因此,可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,具体包括:
根据计算式
本实施例中,将所述第一参考运动矢量场中各采样点移动以获取第二参考运动矢量场时,会出现第一参考运动矢量场中至少两个采样点在t时刻移动到运动矢量场内相同的位置上。
也就是说,第一参考运动矢量场中各采样点保持当前的速度和方向不变,在t时刻形成的运动矢量场(也即第二参考运动矢量场)时,可能出现第一参考运动矢量场中至少两个采样点移动到同一个位置上,而第二参考运动矢量场上该位置的采样点的取值有多种取法,例如,可以取其中一个采样点的运动矢量与(t-t1)/(t1-t2)的乘积作为该位置上的采样点的运动运动矢量。
或者,可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,具体包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
为下文描述方便,将该第二采样点称为目标第二采样点,该第一参考运动矢量场的至少两个第一采样点称为第一集合。
其中,在确定第一集合中各第一采样点的运动矢量的权数时,可以预设该第一集合中各第一采样点的运动矢量的权数相等,也即将第一集合中各第一采样点的运动矢量的平均值作为目标第二采样点的运动矢量。
或者,确定第一集合中各第一采样点的运动矢量的权数具体包括:
s71、获取第二参考运动矢量场中位于目标第二采样点周围的至少一个第二采样点的运动矢量。
为描述方便,将位于目标第二采样点周围的至少一个第二采样点称为第二集合,每一个第二采样点为第二集合的一个元素。
可选的,该第二集合可以包括位于目标第二采样点周围且与目标第二采样点相邻的四个第二采样点中的至少一个。
s72、计算所述第一集合中第一采样点的运动矢量分别与所述第二集合的运动矢量的相似程度。
对第一集合中的每一个第一采样点,计算该第一采样点的运动矢量与第二集合中各采样点的运动矢量的相似程度。计算相似程度的方法有多种。例如,可以计算该第一采样点的运动矢量分别与第二集合中每一个元素的运动矢量的差值,再将各差值的和或者平均值作为该第一采样点的运动矢量与第二集合的运动矢量的相似程度,那么,差值的和或者平均值越小,相似程度越高。
当然,上述仅为举例,并不作限制。
s73、根据所述相似程度确定第一集合中各第一采样点的运动矢量的权数,其中,与第二集合的运动矢量的相似程度越高的第一采样点的运动矢量的权数越大。
确定第一集合中各元素的运动矢量分别对应的相似程度后,根据该相似程度的大小确定第一集合中各元素的运动矢量的权数,其中,相似程度越高的元素的运动矢量的权数越大。具体的,可以预先设置不同排名对应的权数,确定第一集合中各元素的相似程度的排名后,取该元素的排名对应的权数作为该元素的运动矢量的权数。
上面描述了第一参考运动矢量场中出现至少两个第一采样点在t时刻移动到参考运动矢量场内相同的位置上的情况。
实际应用中,第二参考运动矢量场上还可能会出现特殊位置,其中第一参考运动矢量场中没有采样点在t时刻移动到该特殊位置上。
因此,可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,具体包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
举例三中的方案的具体解释可参考在运动矢量场编码方法中图3和图4所示实施例的解释描述,在此不再赘述。
举例四:所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系。
根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
其中,当前运动矢量场块的方向系数信息有多种。例如,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;或者,所述方向系数信息包括所述方向系数的值。
举例四中的方案的具体解释可参考在运动矢量场编码方法中图5所示实施例的解释描述,在此不再赘述。
上面对本发明的运动矢量场编码方法和运动矢量场解码方法进行了描述,下面对本发明的编码装置进行描述。
参见图10,本发明实施例提供的一种编码装置,包括:
第一获取模块1001,用于获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
第二获取模块1002,用于获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;
计算模块1003,用于根据所述第二获取模块获取的所述预测信号和所述第一获取模块获取的所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;
编码模块1004,用于将所述第二获取模块获取的所述预测信息和所述计算模块计算得到的所述预测残差信号写入码流。
本实施例中,编码装置对当前块进行编码时,由于无需对当前运动矢量场块的原始信号进行编码,而是通过对预测信息和预测残差信号进行编码,提高了运动矢量场的压缩效率。
在本发明的一些可能的实施方式中,所述第二获取模块1002用于:
确定一种帧内预测模式,将当前运动矢量场上与当前运动矢量场块邻近的、已编码并重建的至少一个运动矢量场块作为该当前块的参考运动矢量场块;根据该帧内预测模式和该参考运动矢量场块获取当前块的预测信号。
例如,获取的帧内预测模式为33个方向性预测模式中的水平预测模式,当前块的参考运动矢量场块为与所述当前块位于同一行上的左边第一个运动矢量场块。那么第二获取模块1002用于将参考运动矢量场块的重建信号作为当前块的预测信号。
又例如,获取的帧内预测模式为intra_dc模式,获取到当前块的参考运动矢量场块后,那么第二获取模块1002用于将参考运动矢量场块的重建像素平均值作为当前块的预测信号。
在本发明的一些可能的实施方式中,所述第二获取模块1002用于:
获取所述当前运动矢量场块的第一参考运动矢量场,所述第一参考运动矢量场为已编码并重建的运动矢量场,其中,所述第一参考运动矢量场为t1时刻的视频帧对应的运动矢量场,所述t1时刻的视频帧为与所述t时刻的视频帧邻近的视频帧;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为在对所述第一参考运动矢量场对应的视频帧进行帧间预测时所采用的参考视频帧对应的时刻;
根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同;
根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括所述用于指示所述第一参考运动矢量场的信息。
在本发明的一些可能的实施方式中,所述第二获取模1002用于根据计算式
在本发明的一些可能的实施方式中,所述第二获取模1002用于确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
在本发明的一些可能的实施方式中,所述第二获取模1002用于获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
在本发明的一些可能的实施方式中,所述第二获取模1002用于:
获取所述当前运动矢量场块的方向系数,其中,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量的第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
获取所述第一分量的重建值;
根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值;
根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
在本发明的一些可能的实施方式中,所述第二获取模1002用于:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
将拟合得到的所述预设函数的系数作为所述方向系数。
在本发明的一些可能的实施方式中,所述第二获取模1002用于:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数;
将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数;
取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
在本发明的一些可能的实施方式中,所述第二获取模1002用于:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
在本发明的一些可能的实施方式中,所述第二获取模1002用于:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数;
获取所述原始信号中至少一个采样点的运动矢量,在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
上面对本发明的运动矢量场编码方法、运动矢量场解码方法和编码装置进行了描述,下面对本发明的解码装置进行描述。
参见图11,本发明实施例提供的一种解码装置,包括:
第一获取模块1101,用于获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
第二获取模块1102,用于根据所述预测信息获取所述当前运动矢量场块的预测信号;
计算模块1103,用于根据所述第二获取模块获取的所述预测信号和所述第一获取模块获取的所述预测残差信号,计算所述当前运动矢量场块的重建信号。
在本发明的一些可能的实施方式中,所述预测信息包括所述用于指示所述运动矢量场块的第一参考运动矢量场的信息;所述第二获取模块1102用于:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
在本发明的一些可能的实施方式中,所述第二获取模1202用于:
根据计算式
在本发明的一些可能的实施方式中,所述第二获取模1202用于:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
在本发明的一些可能的实施方式中,所述第二获取模1202用于:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
在本发明的一些可能的实施方式中,所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
所述第二获取模块1102用于获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
在本发明的一些可能的实施方式中,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;或者,所述方向系数信息包括所述方向系数的值。
参见图12,图12是本发明的另一个实施例提供编码装置1200的结构框图。其中,编码装置1200可包括:至少1个处理器1201、存储器1205和至少1个通信总线1202。可选的,编码装置1200还可包括:至少1个网络接口1204和/或用户接口1203。其中,用户接口1203例如包括显示器(例如触摸屏、lcd、全息成像(holographic)、crt或者投影(projector)等)、点击设备(例如鼠标或轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器1205可以包括只读存储器和随机存取存储器,并向处理器1201提供指令和数据。存储器1205中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器1205存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统12051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块12052,包含各种应用程序,用于实现各种应用业务。
在本发明的实施例中,通过调用存储器1205存储的程序或指令,处理器1201用于:
获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;
根据所述预测信号和所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;
将所述预测信息和所述预测残差信号写入码流。
本发明实施例中,对当前块进行编码时,由于无需对当前运动矢量场块的原始信号进行编码,而是通过对预测信息和预测残差信号进行编码,提高了运动矢量场的压缩效率。
可选的,所述获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,包括:
获取所述当前运动矢量场块的第一参考运动矢量场,所述第一参考运动矢量场为已编码并重建的运动矢量场,其中,所述第一参考运动矢量场为t1时刻的视频帧对应的运动矢量场,所述t1时刻的视频帧为与所述t时刻的视频帧邻近的视频帧;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为在对所述第一参考运动矢量场对应的视频帧进行帧间预测时所采用的参考视频帧对应的时刻;
根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同;
根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括所述用于指示所述第一参考运动矢量场的信息。
可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
根据计算式
可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
可选的,所述获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,包括:
获取所述当前运动矢量场块的方向系数,其中,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量的第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
获取所述第一分量的重建值;
根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值;
根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
可选的,所述获取所述当前运动矢量场块的方向系数,包括:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
将拟合得到的所述预设函数的系数作为所述方向系数。
可选的,所述获取所述当前运动矢量场块的方向系数,包括:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数;
将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数;
取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
可选的,所述获取所述当前运动矢量场块的方向系数,包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
可选的,所述获取所述当前运动矢量场块的方向系数,包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数;
获取所述原始信号中至少一个采样点的运动矢量,在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
参见图13,图13是本发明的另一个实施例提供的解码装置1300的结构框图。其中,解码装置1300可包括:至少1个处理器1301、存储器1305和至少1个通信总线1302。可选的,视频解码装置1300还可包括:至少1个网络接口1304和/或用户接口1303。其中,用户接口1303例如包括显示器(例如触摸屏、lcd、全息成像(holographic)、crt或者投影(projector)等)、点击设备(例如鼠标或轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器1305可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1305中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器1305存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统13051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块13052,包含各种应用程序,用于实现各种应用业务。
在本发明的实施例中,通过调用存储器1305存储的程序或指令,处理器1301用于:
获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;
根据所述预测信息获取所述当前运动矢量场块的预测信号;
根据所述预测信号和所述预测残差信号,计算所述当前运动矢量场块的重建信号。
可选的,所述预测信息包括所述用于指示所述运动矢量场块的第一参考运动矢量场的信息;
所述根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
根据计算式
可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
可选的,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
可选的,所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
所述根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
可选的,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;或者,所述方向系数信息包括所述方向系数的值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种运动矢量场编码方法,其特征在于,包括:
获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场,其中,所述运动矢量场块为对运动矢量场划分得到的,每个所述运动矢量场块包括至少一个采样点,每个所述采样点的值为该采样点对应的图像块的运动矢量;
获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;
根据所述预测信号和所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;
将所述预测信息和所述预测残差信号写入码流。
2.根据权利要求1所述的运动矢量场编码方法,其特征在于,所述获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,包括:
获取所述当前运动矢量场块的第一参考运动矢量场,所述第一参考运动矢量场为已编码并重建的运动矢量场,其中,所述第一参考运动矢量场为t1时刻的视频帧对应的运动矢量场,所述t1时刻的视频帧为与所述t时刻的视频帧邻近的视频帧;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为在对所述第一参考运动矢量场对应的视频帧进行帧间预测时所采用的参考视频帧对应的时刻;
根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同;
根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括用于指示所述第一参考运动矢量场的信息。
3.根据权利要求2所述的运动矢量场编码方法,其特征在于,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
根据计算式
4.根据权利要求2所述的运动矢量场编码方法,其特征在于,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
5.根据权利要求2所述的运动矢量场编码方法,其特征在于,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
6.根据权利要求1所述的运动矢量场编码方法,其特征在于,所述获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,包括:
获取所述当前运动矢量场块的方向系数,其中,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量的第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
获取所述第一分量的重建值;
根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值;
根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
7.根据权利要求6所述的运动矢量场编码方法,其特征在于,
所述获取所述当前运动矢量场块的方向系数,包括:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
将拟合得到的所述预设函数的系数作为所述方向系数。
8.根据权利要求6所述的运动矢量场编码方法,其特征在于,所述获取所述当前运动矢量场块的方向系数,包括:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数;
将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
9.根据权利要求6所述的运动矢量场编码方法,其特征在于,
所述获取所述当前运动矢量场块的方向系数,包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
10.根据权利要求6所述的运动矢量场编码方法,其特征在于,所述获取所述当前运动矢量场块的方向系数,包括:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数;
获取所述原始信号中至少一个采样点的运动矢量;
在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
11.一种运动矢量场解码方法,其特征在于,包括:
获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场,其中,所述运动矢量场块为对运动矢量场划分得到的,每个所述运动矢量场块包括至少一个采样点,每个所述采样点的值为该采样点对应的图像块的运动矢量;
根据所述预测信息获取所述当前运动矢量场块的预测信号;
根据所述预测信号和所述预测残差信号,计算所述当前运动矢量场块的重建信号。
12.根据权利要求11所述的运动矢量场解码方法,其特征在于,所述预测信息包括用于指示所述运动矢量场块的第一参考运动矢量场的信息;
所述根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
13.根据权利要求12所述的运动矢量场解码方法,其特征在于,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
根据计算式
14.根据权利要求12所述的运动矢量场解码方法,其特征在于,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
15.根据权利要求12所述的运动矢量场解码方法,其特征在于,所述根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,包括:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
16.根据权利要求11所述的运动矢量场解码方法,其特征在于,所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
所述根据所述预测信息获取所述当前运动矢量场块的预测信号,包括:
获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
17.根据权利要求16所述的运动矢量场解码方法,其特征在于,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;
或者,
所述方向系数信息包括所述方向系数的值。
18.一种编码装置,其特征在于,包括:
第一获取模块,用于获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场,其中,所述运动矢量场块为对运动矢量场划分得到的,每个所述运动矢量场块包括至少一个采样点,每个所述采样点的值为该采样点对应的图像块的运动矢量;
第二获取模块,用于获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;
计算模块,用于根据所述第二获取模块获取的所述预测信号和所述第一获取模块获取的所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;
编码模块,用于将所述第二获取模块获取的所述预测信息和所述计算模块计算得到的所述预测残差信号写入码流。
19.根据权利要求18所述的编码装置,其特征在于,所述第二获取模块用于:
获取所述当前运动矢量场块的第一参考运动矢量场,所述第一参考运动矢量场为已编码并重建的运动矢量场,其中,所述第一参考运动矢量场为t1时刻的视频帧对应的运动矢量场,所述t1时刻的视频帧为与所述t时刻的视频帧邻近的视频帧;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为在对所述第一参考运动矢量场对应的视频帧进行帧间预测时所采用的参考视频帧对应的时刻;
根据所述第二参考运动矢量场获取所述预测信号,所述预测信号包括所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同;
根据所述第一参考运动矢量场获取所述预测信息,所述预测信息包括用于指示所述第一参考运动矢量场的信息。
20.根据权利要求19所述的编码装置,其特征在于,所述第二获取模用于根据计算式
21.根据权利要求19所述的编码装置,其特征在于,所述第二获取模用于确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
22.根据权利要求19所述的编码装置,其特征在于,所述第二获取模用于获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
23.根据权利要求18所述的编码装置,其特征在于,所述第二获取模块用于:
获取所述当前运动矢量场块的方向系数,其中,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量的第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
获取所述第一分量的重建值;
根据所述第一分量的重建值和所述方向系数计算所述预测信号,所述预测信号包括所述第二分量的预测值;
根据所述方向系数获取所述预测信息,所述预测信息包括用于指示所述方向系数的方向系数信息。
24.根据权利要求23所述的编码装置,其特征在于,所述第二获取模块用于:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为预设函数的自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
将拟合得到的所述预设函数的系数作为所述方向系数。
25.根据权利要求23所述的编码装置,其特征在于,所述第二获取模块用于:
获取所述原始信号的至少两个采样点的运动矢量;
将所述至少两个采样点的运动矢量的第一分量作为自变量,将所述至少两个采样点的运动矢量的第二分量作为所述自变量对应的函数值,将所述自变量和所述函数值进行拟合;
获取所述当前运动矢量场中与所述当前运动矢量场块邻近的至少一个已编码的运动矢量场块的方向系数;
将拟合出的函数的系数和所述至少一个已编码的运动矢量场块的方向系数作为所述当前运动矢量场块的候选方向系数集的候选方向系数;
取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
26.根据权利要求23所述的编码装置,其特征在于,所述第二获取模块用于:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同时,将所述至少两个已编码运动矢量场块的方向系数作为所述当前运动矢量场块的方向系数。
27.根据权利要求23所述的编码装置,其特征在于,所述第二获取模块用于:
当所述当前运动矢量场中与所述当前运动矢量场块相邻的至少两个已编码运动矢量场块的方向系数相同,并且所述至少两个已编码运动矢量场块的方向系数指示所述至少两个已编码运动矢量场块的采样点的运动矢量的第一分量与第二分量的比值时,执行以下步骤:
将所述至少两个已编码运动矢量场块的方向系数作为候选方向系数集的候选方向系数;
获取所述原始信号中至少一个采样点的运动矢量;
在所述至少一个采样点为一个采样点时,将所述一个采样点的运动矢量的第一分量与所述一个采样点的运动矢量的第二分量的比值作为所述候选方向系数集的候选方向系数;或者,
在所述至少一个采样点为至少两个采样点时,将所述至少两个采样点的运动矢量的第一分量与所述至少两个采样点的运动矢量的第二分量的比值的平均值作为所述候选方向系数集的候选方向系数;
获取所述候选方向系数集的候选方向系数对应的所述当前运动矢量场块的候选预测残差信号,将信号能量最小或者率失真最小的候选预测残差信号所对应的候选方向系数作为所述当前运动矢量场块的方向系数。
28.一种解码装置,其特征在于,包括:
第一获取模块,用于获取当前运动矢量场块的预测信息和预测残差信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场,其中,所述运动矢量场块为对运动矢量场划分得到的,每个所述运动矢量场块包括至少一个采样点,每个所述采样点的值为该采样点对应的图像块的运动矢量;
第二获取模块,用于根据所述第一获取模块获取的所述预测信息获取所述当前运动矢量场块的预测信号;
计算模块,根据所述第二获取模块获取的所述预测信号和所述第一获取模块获取的所述预测残差信号,计算所述当前运动矢量场块的重建信号。
29.根据权利要求28所述的解码装置,其特征在于,所述预测信息包括用于指示所述运动矢量场块的第一参考运动矢量场的信息;
所述第二获取模块用于:
根据所述预测信息获取所述第一参考运动矢量场,所述第一参考运动矢量场为t1时刻的视频帧的运动矢量场;
根据所述第一参考运动矢量场、所述t时刻、所述t1时刻以及t2时刻,获取第二参考运动矢量场,其中,所述t2时刻为所述第一参考运动矢量场对应的视频帧所采用的参考视频帧对应的时刻;
获取所述第二参考运动矢量场的运动矢量场块,其中,所述第二参考运动矢量场的运动矢量场块在所述第二参考运动矢量场中的坐标范围与所述当前运动矢量场块在所述当前运动矢量场中的坐标范围相同,所述预测信号包括所述第二参考运动矢量场的运动矢量场块。
30.根据权利要求29所述的解码装置,其特征在于,所述第二获取模块用于:
根据计算式
31.根据权利要求29所述的解码装置,其特征在于,所述第二获取模块用于:
确定所述第二参考运动矢量场的第二采样点,其中,所述第二采样点的位置与分别以所述第一参考运动矢量场的至少两个第一采样点各自的位置为起点,以所述至少两个第一采样点各自的移动矢量为位移,所移动到的位置为同一位置,所述至少两个第一采样点各自的移动矢量为所述至少两个第一采样点各自的运动矢量与(t-t1)/(t1-t2)的乘积;
将所述至少两个第一采样点的运动矢量的加权平均值与(t-t1)/(t1-t2)的乘积作为所述第二采样点的运动矢量。
32.根据权利要求29所述的解码装置,其特征在于,所述第二获取模块用于:
获取与所述第二参考运动矢量场的目标第二采样点邻近的至少一个第二采样点,其中,以所述第一参考运动矢量场的任意一个第一采样点的位置为起点,以
在所述至少一个第二采样点为一个第二采样点时,将所述一个第二采样点的加权值作为所述目标第二采样点的运动矢量;
在所述至少一个第二采样点为至少两个第二采样点时,将所述至少两个第二采样点的运动矢量的加权平均值作为所述目标第二采样点的运动矢量。
33.根据权利要求28所述的解码装置,其特征在于,所述预测信息包括用于指示所述当前运动矢量场块的方向系数的方向系数信息,所述方向系数用于指示所述当前运动矢量场块的采样点的运动矢量第一分量的值与所述采样点的运动矢量的第二分量的值之间的关系;
所述第二获取模块,用于获取所述第一分量的重建值,根据所述方向系数和所述第一分量的重建值计算所述第二分量的预测值,所述预测信号包括所述第二分量的预测值。
34.根据权利要求33所述的解码装置,其特征在于,所述方向系数信息包括用于指示所述当前运动矢量场中的已重建运动矢量场块的信息,所述方向系数包括所述已重建运动矢量场块的方向系数;
或者,
所述方向系数信息包括所述方向系数的值。
技术总结
本发明实施例公开了一种运动矢量场编码方法和解码方法、编码和解码装置。本发明实施例方法包括:获取当前运动矢量场块的原始信号,所述当前运动矢量场块通过将当前运动矢量场分块后获取得到,所述当前运动矢量场为t时刻的视频帧对应的运动矢量场;获取所述当前运动矢量场块的预测信号和所述当前运动矢量场块的预测信息,所述预测信息用于指示获取所述预测信号所需的信息;根据所述预测信号和所述原始信号,计算所述当前运动矢量场块的预测残差信号,所述预测残差信号用于指示所述原始信号和所述预测信号之间的残差;将所述预测信息和所述预测残差信号写入码流。本发明实施例能够提高了运动矢量场的压缩效率。
技术研发人员:张红;杨海涛
受保护的技术使用者:华为技术有限公司
技术研发日:.08.24
技术公布日:.02.21