首页 / 专利库 / 视听技术与设备 / 运动补偿时间滤波 / 视频解码方法和设备以及视频编码方法和设备

视频解码方法和设备以及视频编码方法和设备

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

专利汇可以提供视频解码方法和设备以及视频编码方法和设备专利检索,专利查询,专利分析的服务。并且公开了一种视频解码方法,包括:通过使用包括在第一参考 块 和第二参考块中的参考 像素 的值,而不使用与位于第一参考块和第二参考块的边界外部的像素有关的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在 水 平方向或垂直方向上每单位时间的位移矢量;并且基于第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量来执行当前块的块单位 运动补偿 和像素组单位运动补偿以获取当前块的预测块,其中,像素组可包括至少一个像素。,下面是视频解码方法和设备以及视频编码方法和设备专利的具体信息内容。

1.一种视频解码方法,包括:
从比特流获得关于当前画面中的当前的运动预测模式信息;
当获得的运动预测模式信息指示双向运动预测模式时,从比特流获得关于第一运动矢量的信息和关于第二运动矢量的信息,其中,第一运动矢量指示当前块在第一参考画面中的第一参考块,第二运动矢量指示当前块在第二参考画面中的第二参考块;
通过使用关于包括在第一参考块和第二参考块中的参考像素的值,而不使用位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在平方向或垂直方向上每单位时间的位移矢量;
通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿来获得当前块的预测块;
从比特流获得关于当前块的残差块的信息;并且
基于预测块和残差块对当前块进行重构,
其中,当前像素组包括至少一个像素。
2.如权利要求1所述的视频解码方法,其中,
获得当前块的预测块的步骤还包括:
通过将水平方向或垂直方向的梯度滤波器应用于第一参考块或第二参考块中的分数位置处的像素的像素值,来计算第一相应参考像素或第二相应参考像素在水平方向或垂直方向上的梯度值,
所述梯度滤波器是5抽头滤波器,并且
所述分数位置处的像素均是指示像素的位置的坐标的水平分量或垂直分量中的至少一个具有分数值的像素。
3.如权利要求2所述的视频解码方法,其中,
第一参考块或第二参考块中的所述分数位置处的像素的像素值是通过将水平方向或垂直方向的插值滤波器应用于整数位置处的像素的像素值而被计算出的。
4.如权利要求1所述的视频解码方法,其中,
当前像素组的尺寸基于当前块的高度值和宽度值之中的最小值被确定。
5.如权利要求1所述的视频解码方法,其中,
关于当前像素组的在水平方向或垂直方向上每单位时间的位移矢量是通过使用以下项确定的每单位时间的位移矢量:第一参考画面中的与当前像素组相应的第一相应参考像素组中的第一相应参考像素的像素值和第一相应参考像素的邻近像素的像素值、第二参考画面中的第二相应参考像素组中的第二相应参考像素的像素值以及第二相应参考像素的邻近像素的像素值、梯度值、第一参考画面与当前画面之间的第一画面顺序计数(POC)差以及第二参考画面与当前画面之间的第二POC差。
6.如权利要求1所述的视频解码方法,其中,
确定当前块的所述多个像素在水平方向或垂直方向上每单位时间的位移矢量的步骤包括:
当第一相应参考像素或第二相应参考像素是与第一参考块或第二参考块的边界内部相邻的边界邻近像素时,
通过使用所述边界邻近像素的像素值来推导位于第一参考块或第二参考块的边界外部的像素的像素值和梯度值,并且
基于所述边界邻近像素的像素值和梯度值以及位于当前块的边界外部的像素的像素值和梯度值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量,其中,所述位于当前块的边界外部的像素的像素值和梯度值是通过使用所述边界邻近像素的像素值而被推导出的。
7.如权利要求1所述的视频解码方法,其中,
确定当前块的所述多个像素在水平方向或垂直方向上每单位时间的位移矢量的步骤包括:
通过使用第一参考块中包括的第一相应参考像素的像素值、第二参考块中包括的第二相应参考像素的像素值、第一相应参考像素的梯度值、第二相应参考像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于当前像素的值;
通过使用第一相应参考像素的第一相应邻近像素的像素值、第二相应参考像素的第二相应邻近像素的像素值、第一相应邻近像素的梯度值、第二相应邻近像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于邻近像素的值;
通过使用所述关于当前像素的值、所述关于邻近像素的值以及权重来计算针对当前像素的用于计算水平方向或垂直方向上每单位时间的位移矢量所需的加权平均值;并且通过使用计算出的针对当前像素的所述加权平均值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量。
8.如权利要求7所述的视频解码方法,其中,
针对当前像素的所述加权平均值是通过在垂直方向和水平方向上将指数平滑技术应用于第一参考块和第二参考块中包括的像素的值而计算出的值。
9.一种视频解码设备,包括:
获得器,被配置为:从比特流获得关于当前画面中的当前块的运动预测模式信息,当获得的运动预测模式信息指示双向运动预测模式时,从比特流获得关于指示当前块在第一参考画面中的第一参考块的第一运动矢量的信息和关于指示当前块在第二参考画面中的第二参考块的第二运动矢量的信息,并且从比特流获得关于当前块的残差块的信息;
间预测器,被配置为:通过使用关于包括在第一参考块和第二参考块中的参考像素的值,而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量,并且通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿来获得当前块的预测块;
解码器,被配置为基于预测块和残差块对当前块进行重构,
其中,当前像素组包括至少一个像素。
10.如权利要求9所述的视频解码设备,其中,
帧间预测器被配置为通过将水平方向或垂直方向的梯度滤波器应用于第一参考块或第二参考块中的分数位置处的像素的像素值,来计算第一相应参考像素或第二相应参考像素在水平方向或垂直方向上的梯度值,
所述梯度滤波器是5抽头滤波器,并且
所述分数位置处的像素均是指示像素的位置的坐标的水平分量或垂直分量中的至少一个具有分数值的像素。
11.如权利要求9所述的视频解码设备,其中,
关于当前像素组的在水平方向或垂直方向上每单位时间的位移矢量是由帧间预测器使用以下项确定的每单位时间的位移矢量:第一参考画面中的与当前像素组相应的第一相应参考像素组中的第一相应参考像素的像素值和第一相应参考像素的邻近像素的像素值、第二参考画面中的第二相应参考像素组中的第二相应参考像素的像素值以及第二邻近像素的邻近像素的像素值、梯度值、第一参考画面与当前画面之间的第一画面顺序计数(POC)差以及第二参考画面与当前画面之间的第二POC差。
12.如权利要求9所述的视频解码设备,其中,
帧间预测器被配置为:
通过使用第一参考块中包括的第一相应参考像素的像素值、第二参考块中包括的第二相应参考像素的像素值、第一相应参考像素的梯度值、第二相应参考像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于当前像素的值;
通过使用第一相应参考像素的第一相应邻近像素的像素值、第二相应参考像素的第二相应邻近像素的像素值、第一相应邻近像素的梯度值、第二相应邻近像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于邻近像素的值;
通过使用所述关于当前像素的值、所述邻近像素的值以及权重来计算针对当前像素的用于计算水平方向或垂直方向上每单位时间的位移矢量所需的加权平均值;并且通过使用计算出的针对当前像素的所述加权平均值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量。
13.一种视频编码方法,包括:
通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量;并且
生成包括关于第一运动矢量和第二运动矢量的信息以及指示当前块的运动预测模式是双向运动预测模式的运动预测模式信息的比特流,
其中,针对像素组单位运动补偿的像素组包括至少一个像素,
其中,第一运动矢量是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,
其中,第二运动矢量是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量,
其中,当前块的预测块是通过使用以下项对当前块执行块单位运动补偿和像素组单位运动补偿而得到的:第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量,并且其中,当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量是通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值而被确定的。
14.一种视频编码设备,包括:
帧间预测器,被配置为通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量;以及
比特流生成器,被配置为生成包括关于第一运动矢量和第二运动矢量的信息以及指示当前块的运动预测模式是双向运动预测模式的运动预测模式信息的比特流,其中,针对像素组单位运动补偿的像素组包括至少一个像素,
其中,第一运动矢量是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,并且第二运动矢量是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量,
其中,当前块的预测块是通过使用以下项对当前块执行块单位运动补偿和像素组单位运动补偿而得到的:第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量,并且其中,当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量是通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值而被确定的。
15.一种记录有程序的计算机可读记录介质,所述程序用于执行权利要求1所述的视频解码方法。

说明书全文

视频解码方法和设备以及视频编码方法和设备

技术领域

[0001] 本公开涉及一种视频解码方法和设备以及视频编码方法和设备。更具体地,本公开涉及用于以双向运动预测模式执行间预测的视频解码方法和设备以及视频编码方法和设备。

背景技术

[0002] 随着能够再现和存储高分辨率或高清晰度视频内容的硬件的发展和普及,对有效地编码或解码高分辨率或高清晰度视频内容的视频编解码器的需求正在增加。根据现有的视频编解码器,视频基于具有树结构的编码单元根据有限的编码方案被编码。
[0003] 空间域中的图像数据通过使用频率变换被变换为频域中的系数。为了在频率变换中执行快速计算,视频编解码器将图像划分成具有预定尺寸的,对每个块执行离散余弦变换(DCT)的变换,从而对每个块单元中的频率系数进行编码。与空间域中的图像数据相比,频域中的系数易于压缩。因为空间域中的图像像素值由视频编解码器经由帧间预测或帧内预测被表示为预测误差,所以当对预测误差执行频率变换时,可将大量数据变换为0。视频编解码器通过将按顺序重复出现的数据改变为小尺寸数据来减少数据量。
发明内容
[0004] 技术问题
[0005] 根据各种实施例,可通过不仅在双向运动预测模式下使用第一参考画面的第一参考块的像素值和第二参考画面的第二参考块的像素值,而且使用第一参考块的第一梯度值和第二参考块的第二梯度值来生成当前块的预测像素值。因此,可生成与原始块相似的预测块,使得可提高编码和解码效率。
[0006] 当执行像素组单位运动补偿时,第一参考块的像素值、第二参考块的像素值、第一参考块的第一梯度值以及第二参考块的第二梯度值可用于确定当前块在平方向或垂直方向上的位移矢量。具体地,为了确定当前块中的当前像素在水平方向或垂直方向上的位移矢量,不仅使用第一参考块中的与当前像素相应的第一参考像素的像素值和梯度值以及第二参考块中的第二参考像素的像素值和梯度值,还使用关于第一参考像素和第二参考像素的具有预定尺寸的窗口中包括的邻近像素的像素值和梯度值。因此,在当前像素位于边界时,存在需要另外访问存储器的问题,这是因为当与当前像素相应的参考像素的邻近像素位于参考块外部时,必须参照位于参考块外部的像素的像素值和梯度值。
[0007] 根据各种实施例,当前块在水平方向或垂直方向上的位移矢量通过仅参照位于参考块中的像素的像素值和梯度值,而不参照针对位于参考块外部的像素而存储的像素值和梯度值被确定,使得可最小化存储器访问的次数。
[0008] 根据各种实施例,为了确定参考像素在水平方向或垂直方向上的梯度值,使用整数像素的像素值的输入的水平方向或垂直方向的梯度滤波器和插值滤波器不被使用,而是通过将插值滤波器应用于整数像素的像素值来确定分数像素单位的位置处的像素的像素值,通过将水平方向或垂直方向的梯度滤波器应用于分数像素单位的位置处的像素的像素值来确定参考像素在水平方向或垂直方向上的梯度值,其中,梯度滤波器具有相对较短的长度,使得可最小化复杂的乘法运算的次数。
[0009] 根据各种实施例,以像素组为单位执行运动补偿,使得与以像素为单位执行的运动补偿相比,可最小化复杂的乘法运算的次数。
[0010] 提供了一种计算机可读记录介质,其中,在计算机可读记录介质上记录有用于执行根据各种实施例的方法的程序。
[0011] 各种实施例的技术问题不限于前述特征,并且鉴于以下描述,本领域普通技术人员将清楚地理解其他未说明的技术问题。
[0012] 技术方案
[0013] 本公开的技术问题不限于前述特征,并且鉴于以下描述,本领域普通技术人员将清楚地理解其他未说明的技术问题。
[0014] 根据各种实施例,一种视频解码方法可包括:从比特流获得关于当前画面中的当前块的运动预测模式信息;当获得的运动预测模式信息指示双向运动预测模式时,从比特流获得关于第一运动矢量的信息和关于第二运动矢量的信息,其中,第一运动矢量指示当前块在第一参考画面中的第一参考块,第二运动矢量指示当前块在第二参考画面中的第二参考块;通过使用关于包括在第一参考块和第二参考块中的参考像素的值,而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量;通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿,以获得当前块的预测块;从比特流获得关于当前块的残差块的信息;并且基于预测块和残差块对当前块进行重构,其中,当前像素组包括至少一个像素。
[0015] 在根据各种实施例的视频解码方法中,获得当前块的预测块的步骤还可包括:通过将水平方向或垂直方向的梯度滤波器应用于第一参考块或第二参考块中的分数位置处的像素的像素值,来计算第一相应参考像素或第二相应参考像素在水平方向或垂直方向上的梯度值,其中,所述梯度滤波器是5抽头滤波器,并且所述分数位置处的像素均是指示像素的位置的坐标的水平分量或垂直分量中的至少一个具有分数值的像素。
[0016] 在根据各种实施例的视频解码方法中,第一参考块或第二参考块中的分数位置处的像素的像素值可通过将水平方向或垂直方向的插值滤波器应用于整数位置处的像素的像素值被计算。
[0017] 在根据各种实施例的视频解码方法中,当前像素组的尺寸可基于当前块的高度值和宽度值之中的最小值被确定。
[0018] 在根据各种实施例的视频解码方法中,关于当前像素组的在水平方向或垂直方向上每单位时间的位移矢量可以是通过使用以下项被确定的每单位时间的位移矢量:第一参考画面中的与当前像素组相应的第一相应参考像素组中的第一相应参考像素的像素值和第一相应参考像素的邻近像素的像素值、第二参考画面中的第二相应参考像素组中的第二相应参考像素的像素值以及第二相应参考像素的邻近像素的像素值、梯度值、第一参考画面与当前画面之间的第一画面顺序计数(POC)差以及第二参考画面与当前画面之间的第二POC差。
[0019] 在根据各种实施例的视频解码方法中,确定当前块的所述多个像素在水平方向或垂直方向上每单位时间的位移矢量的步骤可包括:当第一相应参考像素或第二相应参考像素是与第一参考块或第二参考块的边界内部相邻的边界邻近像素时,通过使用所述边界邻近像素的像素值来推导位于第一参考块或第二参考块的边界外部的像素的像素值和梯度值,并且基于所述边界邻近像素的像素值和梯度值以及位于当前块的边界外部的像素的像素值和梯度值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量,其中,所述位于当前块的边界外部的像素的像素值和梯度值是通过使用所述边界邻近像素的像素值而被推导出的。
[0020] 在根据各种实施例的视频解码方法中,确定当前块的所述多个像素在水平方向或垂直方向上每单位时间的位移矢量的步骤可包括:通过使用第一参考块中包括的第一相应参考像素的像素值、第二参考块中包括的第二相应参考像素的像素值、第一相应参考像素的梯度值、第二相应参考像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于当前像素的值;通过使用第一相应参考像素的第一相应邻近像素的像素值、第二相应参考像素的第二相应邻近像素的像素值、第一相应邻近像素的梯度值、第二相应邻近像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于邻近像素的值;通过使用所述关于当前像素的值、所述关于邻近像素的值以及权重来计算针对当前像素的用于计算水平方向或垂直方向上每单位时间的位移矢量所需的加权平均值;并且通过使用计算出的针对当前像素的所述加权平均值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量。
[0021] 在根据各种实施例的视频解码方法中,针对当前像素的所述加权平均值可以是通过在垂直方向和水平方向上将指数平滑技术应用于第一参考块和第二参考块中包括的像素的值而计算出的值。
[0022] 根据各种实施例,一种视频解码设备可包括:获得器,被配置为从比特流获得关于当前画面中的当前块的运动预测模式信息,当获得的运动预测模式信息指示双向运动预测模式时,从比特流获得关于指示第一参考画面中的当前块的第一参考块的第一运动矢量的信息和关于指示第二参考画面中的当前块的第二参考块的第二运动矢量的信息,并且从比特流获得关于当前块的残差块的信息;帧间预测器,被配置为通过使用关于包括在第一参考块和第二参考块中的参考像素的值,而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量,并且通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿以获得当前块的预测块;以及解码器,被配置为基于预测块和残差块对当前块进行重构,其中,当前像素组包括至少一个像素。
[0023] 在根据各种实施例的视频解码设备中,帧间预测器可被配置为通过将水平方向或垂直方向的梯度滤波器应用于第一参考块或第二参考块中的分数位置处的像素的像素值,来计算第一相应参考像素或第二相应参考像素在水平方向或垂直方向上的梯度值,其中,所述梯度滤波器是5抽头滤波器,并且所述分数位置处的像素均是指示像素的位置的坐标的水平分量或垂直分量中的至少一个具有分数值的像素。
[0024] 在根据各种实施例的视频解码设备中,关于当前像素组的在水平方向或垂直方向上每单位时间的位移矢量可以是由帧间预测器使用以下项确定的每单位时间的位移矢量:第一参考画面中的与当前像素组相应的第一相应参考像素组中的第一相应参考像素的像素值和第一相应参考像素的邻近像素的像素值、第二参考画面中的第二相应参考像素组中的第二相应参考像素的像素值以及第二相应参考像素的邻近像素的像素值、梯度值、第一参考画面与当前画面之间的第一画面顺序计数(POC)差以及第二参考画面与当前画面之间的第二POC差。
[0025] 在根据各种实施例的视频解码设备中,帧间预测器可被配置为:通过使用第一参考块中包括的第一相应参考像素的像素值、第二参考块中包括的第二相应参考像素的像素值、第一相应参考像素的梯度值、第二相应参考像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于当前像素的值;通过使用第一相应参考像素的第一相应邻近像素的像素值、第二相应参考像素的第二相应邻近像素的像素值、第一相应邻近像素的梯度值、第二相应邻近像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于邻近像素的值;通过使用所述关于当前像素的值、所述关于邻近像素的值以及权重来计算针对当前像素的用于计算水平方向或垂直方向上每单位时间的位移矢量所需的加权平均值;并且通过使用计算出的针对当前像素的所述加权平均值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量。
[0026] 根据各种实施例,一种视频编码方法可包括:通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量;并且生成包括关于第一运动矢量和第二运动矢量的信息以及指示当前块的运动预测模式是双向运动预测模式的运动预测模式信息的比特流,其中,针对像素组单位运动补偿的像素组包括至少一个像素,其中,第一运动矢量是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,其中,第二运动矢量是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量,其中,当前块的预测块是通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿而得到的,并且其中,当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量是通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值而被确定的。
[0027] 根据各种实施例,一种视频编码设备可包括:帧间预测器,被配置为通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量;以及比特流生成器,被配置为生成包括关于第一运动矢量和第二运动矢量的信息以及指示当前块的运动预测模式是双向运动预测模式的运动预测模式信息的比特流,其中,针对像素组单位运动补偿的像素组包括至少一个像素,其中,第一运动矢量是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,并且第二运动矢量是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量,其中,当前块的预测块是通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿而得到的,并且其中,当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量是通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值而被确定的。
[0028] 提供了一种记录有程序的计算机可读记录介质,所述程序用于执行根据各种实施例的方法。
[0029] 有益效果
[0030] 根据各种实施例,通过在双向运动预测模式下使用参考画面的参考块的梯度值对当前块执行帧间预测来预测与当前块的原始块的值相似的值,使得可提高编码和解码效率。附图说明
[0031] 图1a示出了根据各种实施例的视频解码设备的框图
[0032] 图1b示出了根据各种实施例的视频解码方法的流程图
[0033] 图1c示出了根据各种实施例的视频编码设备的框图。
[0034] 图1d示出了根据各种实施例的视频编码方法的流程图。
[0035] 图1e示出了根据各种实施例的图像解码器的框图。
[0036] 图1f示出了根据各种实施例的图像编码器的框图。
[0037] 图2是根据实施例的用于描述基于块的双向运动预测和补偿处理的参考图。
[0038] 图3a至图3c是根据实施例的用于描述执行像素组单位运动补偿的处理的参考图。
[0039] 图4是用于描述根据实施例的计算在水平方向和垂直方向上的梯度值的处理的参考图。
[0040] 图5是用于描述根据另一实施例的计算在水平方向和垂直方向上的梯度值的处理的参考图。
[0041] 图6a至图6b是用于描述根据实施例的通过使用1D滤波器确定水平方向和垂直方向上的梯度值的处理的示图。
[0042] 图7a至图7e是示出根据实施例的用于确定分数像素单位的分数像素位置处的像素值以及水平方向和垂直方向上的梯度值的滤波器的滤波器系数的表。
[0043] 图8a是用于描述根据实施例的确定关于像素的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0044] 图8b是用于描述根据实施例的确定关于像素组的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0045] 图8c是用于描述根据实施例的确定关于像素的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0046] 图8d是用于描述根据实施例的确定关于像素组的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0047] 图9a是用于描述根据实施例的在执行滤波之后添加偏移值并且通过执行去缩放来确定水平方向或垂直方向上的梯度值的处理的示图。
[0048] 图9b是用于描述根据另一实施例的在执行滤波之后添加偏移值并且通过执行去缩放来确定水平方向或垂直方向上的梯度值的处理的示图。
[0049] 图9c是用于描述在对当前块执行像素单位运动补偿的处理期间确定水平方向位移矢量和垂直方向位移矢量的必要输入范围的示图。
[0050] 图9d至图9e是根据各种实施例的用于确定在执行像素单位运动补偿的处理中使用的区域的输入范围的示图。
[0051] 图9f是用于描述在不扩大参考块的情况下确定水平方向位移矢量和垂直方向位移矢量的处理的示图。
[0052] 图9g至图9i是用于描述根据其他实施例的在不扩大参考块的情况下确定水平方向位移矢量和垂直方向位移矢量的处理的示图。
[0053] 图9j是用于描述根据实施例的在不扩大块的情况下通过参照参考块的像素值和梯度值通过在垂直方向和水平方向上应用指数平滑技术来确定关于每个像素的水平方向位移矢量和垂直方向位移矢量的处理的示图。
[0054] 图9k是用于描述根据实施例的通过使用滤波器确定参考块中的参考像素在水平方向和垂直方向上的像素值和梯度值以对当前块执行运动补偿的处理的示图。
[0055] 图9l是用于描述根据另一实施例的通过使用滤波器确定参考块中的参考像素在水平方向和垂直方向上的像素值和梯度值以对当前块执行运动补偿的处理的示图。
[0056] 图10示出了根据实施例的通过对当前编码单元进行划分来确定至少一个编码单元的处理。
[0057] 图11示出了根据实施例的通过对非正方形的编码单元进行划分来确定至少一个编码单元的处理。
[0058] 图12示出了根据实施例的基于块形状信息和划分形状信息中的至少一条信息对编码单元进行划分的处理。
[0059] 图13示出了根据实施例的从奇数个编码单元之中确定预定编码单元的方法。
[0060] 图14示出了根据实施例的当通过对当前编码单元进行划分确定多个编码单元时处理所述多个编码单元的顺序。
[0061] 图15示出了根据实施例的当编码单元不能以预定顺序处理时确定当前编码单元将被划分为奇数个编码单元的处理。
[0062] 图16示出了根据实施例的通过对第一编码单元进行划分来确定至少一个编码单元的处理。
[0063] 图17示出了根据实施例的当通过对第一编码单元进行划分来确定具有非正方形形状的第二编码单元并且第二编码单元满足预定条件时对第二编码单元可划分为的形状进行限制。
[0064] 图18示出了根据实施例的当划分形状信息指示正方形编码单元不被划分成四个正方形编码单元时对正方形编码单元进行划分的处理。
[0065] 图19示出根据实施例的可依据对编码单元进行划分的处理来改变多个编码单元之间的处理顺序。
[0066] 图20示出了根据实施例的当编码单元被递归地划分以确定多个编码单元确定时随着编码单元的形状和尺寸改变确定编码单元的深度的处理。
[0067] 图21示出了根据实施例的基于编码单元的形状和尺寸可确定的深度以及用于区分编码单元的部分索引(PID)。
[0068] 图22示出了根据实施例的基于画面中包括的多个预定数据单元来确定多个编码单元。
[0069] 图23示出了根据实施例的用作用于确定包括在画面中的参考编码单元的确定顺序的单元的处理块。
[0070] 最佳实施方式
[0071] 根据各种实施例,一种视频解码方法可包括:从比特流获得关于当前画面中的当前块的运动预测模式信息;当获得的运动预测模式信息指示双向运动预测模式时,从比特流获得关于第一运动矢量的信息和关于第二运动矢量的信息,其中,第一运动矢量指示当前块在第一参考画面中的第一参考块,第二运动矢量指示当前块在第二参考画面中的第二参考块;通过使用关于包括在第一参考块和第二参考块中的参考像素的值,而不使用位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量;通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿以获得当前块的预测块;从比特流获得关于当前块的残差块的信息;并且基于预测块和残差块对当前块进行重构,其中,当前像素组包括至少一个像素。
[0072] 根据各种实施例,一种视频解码设备包括:获得器,被配置为从比特流获得关于当前画面中的当前块的运动预测模式信息,当获得的运动预测模式信息指示双向运动预测模式时,从比特流获得关于指示当前块在第一参考画面中的第一参考块的第一运动矢量的信息和关于指示当前块在第二参考画面中的第二参考块的第二运动矢量的信息,并且从比特流获得关于当前块的残差块的信息;帧间预测器,被配置为通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量,并且通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿以获得当前块的预测块;以及解码器,被配置为基于预测块和残差块对当前块进行重构,其中,当前像素组包括至少一个像素。
[0073] 根据各种实施例,一种视频编码方法包括:通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量;并且生成包括关于第一运动矢量和第二运动矢量的信息以及指示当前块的运动预测模式是双向运动预测模式的运动预测模式信息的比特流,其中,针对像素组单位运动补偿的像素组包括至少一个像素,其中,第一运动矢量是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,其中,第二运动矢量是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量,其中,当前块的预测块是通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿而得到的,并且其中,当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量是通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值而被确定的。
[0074] 根据各种实施例,一种视频编码设备包括:帧间预测器,被配置为通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量;以及比特流生成器,被配置为生成包括关于第一运动矢量和第二运动矢量的信息以及指示当前块的运动预测模式是双向运动预测模式的运动预测模式信息的比特流,其中,针对像素组单位运动补偿的像素组包括至少一个像素,其中,第一运动矢量是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,并且第二运动矢量是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量,其中,当前块的预测块是通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿而得到的,并且其中,当前块的包括与当前块的边界内部相邻的像素的多个像素在水平方向或垂直方向上每单位时间的位移矢量是通过使用关于包括在第一参考块和第二参考块中的参考像素的值而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值而被确定的。
[0075] 根据各种实施例,一种计算机可读记录介质可包括用于执行所述方法的所记录的程序。
[0076] 具体实施例方式
[0077] 在下文中,“图像”可指示视频的静止图像,或者可指示作为视频本身的运动画面。
[0078] 在下文中,“样点”可指代被分配到图像的采样位置并且是处理目标的数据。例如,空间域的图像中的像素可以是样点。
[0079] 在下文中,“当前块”可指代将被编码或解码的图像的块。
[0080] 图1a示出了根据各种实施例的视频解码设备的框图。
[0081] 根据各种实施例的视频解码设备100包括获得器105、帧间预测器110和重构器125。
[0082] 获得器105接收包括关于当前块的预测模式信息、关于当前块的运动预测模式信息和运动矢量信息的比特流。
[0083] 获得器105可从接收到的比特流获得关于当前块的预测模式信息、关于当前块的运动预测模式信息和运动矢量信息。此外,获得器105可从接收到的比特流获得指示先前已被解码的画面之中的参考画面的参考画面索引。
[0084] 在当前块的预测模式是帧间预测模式时,帧间预测器110对当前块执行帧间预测。也就是说,帧间预测器110可通过使用在包括当前块的当前画面之前已被解码的画面中的至少一个画面来生成当前块的预测像素值。例如,在当前块的运动预测模式是双向运动预测模式时,帧间预测器110可通过使用在当前画面之前已被解码的两个画面来生成当前块的预测像素值。也就是说,当从比特流接收到的运动预测模式信息指示双向运动预测模式时,帧间预测器110可通过使用在当前画面之前已被解码的两个画面来生成当前块的预测像素值。
[0085] 帧间预测器110可包括块单位运动补偿器115和像素组单位运动补偿器120。
[0086] 块单位运动补偿器115可对当前块执行块单位运动补偿。
[0087] 块单位运动补偿器115可通过使用从比特流获得的参考画面索引来确定先前已被解码的画面之中的至少一个参考画面。在这方面,参考画面索引可指代关于包括L0方向和L1方向的各个预测方向的参考画面索引。这里,关于L0方向的参考画面索引指代指示L0参考画面列表中包括的画面之中的参考画面的索引,并且关于L1方向的参考画面索引指代指示L1参考画面列表中包括的画面之中的参考画面的索引。
[0088] 块单位运动补偿器115可通过使用从比特流接收到的运动矢量信息来确定当前块的位于至少一个参考画面中的参考块。在这方面,参考画面中的与当前画面中的当前块相应的相应块可以是参考块。也就是说,块单位运动补偿器115可通过使用从当前块指示参考块的运动矢量来确定当前块的参考块。在这方面,运动矢量意为指示当前画面中的当前块的参考坐标与参考画面中的参考块的参考坐标之间的变化的矢量。例如,在当前块的左上坐标是(1,1),并且参考画面中的参考块的左上坐标是(3,3)时,运动矢量可以是(2,2)。
[0089] 在这方面,运动矢量信息可包括运动矢量的差值,并且块单位运动补偿器115可通过使用运动矢量的预测因子和从比特流获得的运动矢量的差值对运动矢量进行重构,并且可通过使用重构的运动矢量来确定当前块的位于至少一个参考画面中的参考块。运动矢量的差值可指示与包括L0方向和L1方向的各个预测方向有关的运动矢量的差值。在这方面,关于L0方向的运动矢量的差值指代指示L0参考画面列表中包括的参考画面中的参考块的运动矢量的差值,并且关于L1方向的运动矢量的差值指代指示L1参考画面列表中包括的参考画面中的参考块的运动矢量的差值。
[0090] 块单位运动补偿器115可通过使用参考块的像素值对当前块执行块单位运动补偿。块单位运动补偿器115可通过使用参考块中的与当前块中的当前像素相应的参考像素的值对当前块执行块单位运动补偿。在这方面,参考像素可以是参考块中包括的像素,并且可与当前块中的当前像素相应。
[0091] 块单位运动补偿器115可通过分别使用多个参考画面中包括的多个参考块对当前块执行块单位运动补偿。例如,在当前块的运动预测模式是双向运动预测模式时,块单位运动补偿器115可确定先前已被编码的画面之中的两个参考画面,并且可确定两个参考画面中包括的两个参考块。
[0092] 块单位运动补偿器115可通过使用两个参考块中的两个参考像素的像素值对当前块执行块单位运动补偿。块单位运动补偿器115可通过使用关于两个参考像素的像素值的平均值或加权和对当前块执行块单位运动补偿来生成块单位运动补偿值。
[0093] 参考块的参考位置可以是整数像素的位置,但不限于此,并且因此可以是分数像素的位置。在这方面,整数像素可指代位置分量是整数并处于整数像素位置的像素。分数像素可指代位置分量是分数并处于分数像素位置的像素。
[0094] 例如,在当前块的左上坐标是(1,1),并且运动矢量是(2.5,2.5)时,参考画面中的参考块的左上坐标可以是(3.5,3.5)。在这方面,分数像素的位置可按照1/4或1/16像素元素(pel)单位被确定。然而,本公开不限于此,因此可根据各种分数pel单位来确定分数像素的位置。
[0095] 当参考块的参考位置是分数像素的位置时,块单位运动补偿器115可对包括由第一运动矢量指示的第一参考块的像素之中的第一像素的第一邻近区域以及包括由第二运动矢量指示的第二参考块的像素之中的第二像素的第二邻近区域应用插值滤波器,因此可生成第一像素的像素值和第二像素的像素值。
[0096] 也就是说,参考块中的参考像素的值可通过使用预定方向分量是整数的邻近像素的像素值被确定。在这方面,预定方向可以是水平方向或垂直方向。
[0097] 例如,块单位运动补偿器115可通过使用插值滤波器对预定方向分量是整数的像素的像素值执行滤波,可将一参考像素值确定为滤波的结果,并且可通过使用该参考像素值来确定关于当前块的经块单位运动补偿的值。可通过使用关于参考像素的加权和的值或关于参考像素的平均值来确定经块单位运动补偿的值。在这方面,插值滤波器可以是基于离散余弦变换(DCT)的M抽头插值滤波器。基于DCT的M抽头插值滤波器的系数可从DCT和逆离散余弦变换(IDCT)被推导出。在这方面,插值滤波器的系数可以是被缩放为整数系数以在执行滤波时减少实数运算的滤波器系数。在这方面,插值滤波器可以是水平方向或垂直方向上的一维(1D)插值滤波器。例如,当像素的位置被表示为x和y正交坐标分量时,水平方向可指代与x轴平行的方向。垂直方向可指代与y轴平行的方向。
[0098] 块单位运动补偿器115可首先通过使用1D垂直方向插值滤波器对整数位置处的像素的值执行滤波,然后可通过使用1D水平方向插值滤波器对经由滤波生成的值执行滤波来确定分数像素的位置处的参考像素值。
[0099] 当使用缩放的滤波器系数时,经由滤波生成的值可大于使用未被缩放的滤波器系数的情况。因此,块单位运动补偿器115可对经由滤波生成的值执行去缩放。
[0100] 块单位运动补偿器115可通过使用1D垂直方向插值滤波器对整数位置处的像素的值执行滤波,然后可执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于输入图像的样点的比特深度被确定。例如,去缩放比特的数量可以是通过从样点的比特深度减去8而获得的值。
[0101] 此外,块单位运动补偿器115可通过使用1D垂直方向插值滤波器对整数位置处的像素的值执行滤波,可通过使用1D水平方向插值滤波器对经由滤波生成的值执行滤波,然后可执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于1D垂直方向插值滤波器的缩放比特数、1D水平方向插值滤波器的缩放比特数以及样点的比特深度被确定。例如,当1D垂直方向插值滤波器的缩放比特数p是6,1D水平方向插值滤波器的缩放比特数q是6,并且样点的比特深度是b时,去缩放比特的数量可以是p+q+8-b,即20-b。
[0102] 当块单位运动补偿器115通过使用1D插值滤波器对预定方向分量是整数的像素执行滤波,然后按照去缩放比特的数量向右执行比特移位时,可能发生舍入误差。因此,块单位运动补偿器115可通过使用1D插值滤波器对预定方向分量是整数的像素执行滤波,可与偏移值相加,然后可执行去缩放。在这方面,偏移值可以是2^(去缩放比特的数量-1)。
[0103] 像素组单位运动补偿器120可通过对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。在当前块的运动预测模式是双向运动预测模式时,像素组单位运动补偿器120可通过对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。
[0104] 像素组单位运动补偿器120可通过基于第一参考画面和第二参考画面的像素组的光流对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。将在下面的描述中参照图3a描述光流。
[0105] 像素组单位运动补偿器120可通过对当前块的参考块中包括的像素组执行像素组单位运动补偿来生成经像素组单位运动补偿的值。像素组可包括至少一个像素。例如,像素组可以是像素。可选地,像素组可以是包括两个或更多个像素的多个像素。像素组可以是尺寸为K×K(其中,K是整数)的块中包括的多个像素。
[0106] 像素组单位运动补偿器120可确定像素组,并且可基于确定的像素组对当前块执行像素组单位运动补偿。
[0107] 像素组单位运动补偿器120可基于当前块的尺寸确定像素组的尺寸。例如,像素组单位运动补偿器120可将从2和通过将当前块的宽度和高度之中的最小值除以8而获得的值之中选择的最大值确定为像素组的高度和宽度。
[0108] 与按照高图像分辨率以像素为单位执行运动补偿的情况相比,像素组单位运动补偿器120可以以包括多个像素的像素组为单位执行运动补偿,因此可降低编码/解码的复杂度。此外,与按照高帧率以像素为单位执行运动补偿的情况相比,像素组单位运动补偿器120可以以包括多个像素的像素组为单位执行运动补偿,因此可降低编码/解码的复杂度。
[0109] 获得器105可获得包括在比特流中的像素组尺寸信息。当像素组的尺寸是K×K时,像素组尺寸信息可以是指示高度或宽度K的信息。像素组尺寸信息可被包括在高级语法载体中。
[0110] 像素组单位运动补偿器120可确定包括像素组中包括的多个像素之中的具有相似像素值的像素的至少一个像素组分区,并且可对像素组分区执行运动补偿。在这方面,包括具有相似像素值的像素的像素组分区很可能是相同的对象并且运动彼此相似,因此,像素组单位运动补偿器120可以以像素组为单位执行进一步的详细运动补偿。
[0111] 当运动预测模式信息指示双向运动预测模式时执行像素组单位运动补偿,但即使在这种情况下,也不用一直执行像素组单位运动补偿,而是可选择性地执行像素组单位运动补偿。
[0112] 像素组单位运动补偿器120可确定参考块中的与当前块的当前像素组相应的参考像素组,并且可确定参考像素组的梯度值。例如,像素组单位运动补偿器120可通过使用参考像素组中包括的至少一个像素值的梯度值来确定参考像素组的梯度值。
[0113] 像素组单位运动补偿器120可通过使用参考像素组的梯度值对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。
[0114] 像素组单位运动补偿器120可将滤波器应用于由第一运动矢量指示的像素组之中的第一像素组的包括第一像素组的第一相邻区域以及由第二运动矢量指示的像素组之中的第二像素组的包括第二像素组的第二邻近区域,因此可生成第一像素组的梯度值和第二像素组的梯度值。
[0115] 像素组单位运动补偿器120可针对第一参考画面中的第一像素组确定包括第一像素组的预定尺寸的第一窗口中的像素的像素值和梯度值,并且可针对第二参考画面中的第二像素组确定包括第二像素组的预定尺寸的第二窗口中的像素的像素值和梯度值。
[0116] 像素组单位运动补偿器120可通过使用第一窗口中的像素的像素值和梯度值和第二个窗口中的像素的像素值和梯度值来确定关于当前像素组在每单位时间的位移矢量。在这方面,关于当前像素组在每单位时间的位移矢量的值可通过正则化参数被调整。正则化参数是用于防止在关于当前像素组在每单位时间的病态位移矢量被确定用于对像素组执行运动补偿时发生误差的参数。像素组单位运动补偿器120可基于关于在水平方向或垂直方向上每单位时间的位移矢量的正则化参数,对当前块执行像素组单位运动补偿。正则化参数将在下面参照图8a的描述中被描述。
[0117] 像素组单位运动补偿器120可通过使用关于当前像素组在每单位时间的位移矢量和参考像素的梯度值对当前块执行像素组单位运动补偿。
[0118] 参考块的参考位置可以是整数像素的位置,但不限于此,并且因此可以是分数像素的位置。
[0119] 当参考块的参考位置是分数像素的位置时,参考块中的参考像素的梯度值可通过使用预定方向分量是整数的邻近像素的像素值被确定。
[0120] 例如,像素组单位运动补偿器120可通过使用梯度滤波器对预定方向分量是整数的邻近像素的像素值执行滤波,并且可将参考像素的梯度值确定为滤波的结果值。在这方面,可通过使用针对基于DCT的插值滤波器预先确定的系数来确定梯度滤波器的滤波器系数。梯度滤波器的系数可以是被缩放为整数系数以在执行滤波时减少实数运算的滤波器系数。
[0121] 在这方面,梯度滤波器可以是1D水平方向梯度滤波器或1D垂直方向梯度滤波器。
[0122] 像素组单位运动补偿器120可通过使用1D水平方向梯度滤波器或1D垂直方向梯度滤波器对相应的方向分量为整数的邻近像素执行滤波,以确定关于参考像素在水平方向或垂直方向上的梯度值。
[0123] 例如,像素组单位运动补偿器120可通过使用1D水平方向梯度滤波器,对与参考像素相邻的像素之中的位于从水平方向分量是整数的像素开始的水平方向上的像素执行滤波,因此可确定关于参考像素在水平方向上的梯度值。
[0124] 当参考像素的位置是(x+α,y+β)(其中,x和y是整数并且α和β是分数)时,像素组单位运动补偿器120可通过使用1D垂直方向插值滤波器对(x,y)位置处的像素以及垂直分量是整数并在位于从(x,y)位置处的像素开始的垂直方向上的像素之中的像素执行滤波,并且可将(x,y+β)的像素值确定为滤波的结果值。
[0125] 像素组单位运动补偿器120可通过使用水平方向梯度滤波器对(x,y+β)位置处的像素的值以及水平分量是整数并在位于从(x,y+β)位置开始的水平方向上的像素之中的像素执行滤波,并且可将(x+α,y+β)位置处的梯度值确定为滤波的结果值。
[0126] 使用1D梯度滤波器和1D插值滤波器的顺序不受限制。在以上描述中,首先,通过使用1D垂直方向插值滤波器对整数位置处的像素执行滤波来生成垂直方向上的插值滤波值,然后通过使用1D水平方向梯度滤波器对垂直方向上的插值滤波值执行滤波。然而,可首先通过使用1D水平方向梯度滤波器对整数位置处的像素执行滤波来生成水平方向上的插值滤波值,然后可通过使用1D垂直方向插值滤波器对水平方向上的插值滤波值执行滤波。
[0127] 在以上描述中,已经具体描述了由像素组单位运动补偿器120执行的确定(x+α,y+β)位置处的水平方向上的梯度值的方法。像素组单位运动补偿器120按照与确定水平方向上的梯度值的方式相似的方式来确定(x+α,y+β)位置处的垂直方向上的梯度值,因此省略其详细描述。
[0128] 在以上描述中,已经具体描述了由像素组单位运动补偿器120执行的使用1D梯度滤波器和1D插值滤波器以确定分数像素的位置处的梯度值的方法。然而,本公开不限于此,并且梯度滤波器和插值滤波器也可被用于确定整数像素的位置处的梯度值。即使整数像素的像素值可在不使用插值滤波器的情况下被确定,但是为了与对分数像素中的处理一致的处理,仍可通过使用插值滤波器对整数像素和预定方向分量是整数的邻近像素执行滤波来确定整数像素的像素值。例如,整数像素处的插值滤波器系数可以是{0,0,64,0,0},并且因为与邻近整数像素有关的插值滤波器系数是0,所以可通过仅使用当前整数像素的像素值来执行滤波,并且作为结果,可通过使用插值滤波器对当前整数像素和邻近整数像素执行滤波以确定当前整数像素的像素值。
[0129] 像素组单位运动补偿器120可在通过使用1D垂直方向插值滤波器对整数位置处的像素执行滤波之后执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于样点的比特深度被确定。此外,去缩放比特的数量可基于块中的特定输入数据被确定。
[0130] 例如,去缩放比特的数量可以是通过从样点的比特深度减去8而获得的值。
[0131] 像素组单位运动补偿器120可在使用水平方向梯度滤波器对经由去缩放生成的值执行滤波之后执行去缩放。同样地,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于1D垂直方向插值滤波器的缩放比特数、1D水平方向梯度滤波器的缩放比特数以及样点的比特深度被确定。例如,当1D插值滤波器的缩放比特数p是6,1D梯度滤波器的缩放比特数q是4,并且样点的比特深度是b时,去缩放比特的数量可以是p+q+8-b,即18-b。
[0132] 当像素组单位运动补偿器120在执行滤波之后仅对经由滤波生成的值按照去缩放比特的数量执行向右比特移位时,可能发生舍入误差,使得像素组单位运动补偿器120可将偏移值与经由滤波生成的值相加,然后可执行去缩放。这里,偏移值可以是2^(去缩放比特的数量-1)。
[0133] 帧间预测器110可通过使用关于当前块的经像素组单位运动补偿的值和经块单位运动补偿的值来生成当前块的预测像素值。例如,帧间预测器110可通过将关于当前块的经块单位运动补偿的值与经像素组单位运动补偿的值相加来生成当前块的预测像素值。在这方面,经块单位运动补偿的值指代通过执行块单位运动补偿生成的值,像素组单位运动补偿值指代通过执行像素组单位运动补偿生成的值,其中,经块单位运动补偿的值可以是关于参考像素的平均值或加权和,经像素组单位运动补偿的值可以是基于关于当前像素在每单位时间的位移矢量和参考像素的梯度值所确定的值。
[0134] 像素组单位运动补偿器120可在基于样点的比特深度、插值计算或梯度计算中使用的滤波器的输入范围以及滤波器的系数中的至少一个执行插值计算或梯度计算之后获得用于去缩放的移位值。像素组单位运动补偿器120可通过使用用于去缩放的移位值来执行关于包括在第一参考块和第二参考块中的像素的插值计算或梯度计算,然后可执行去缩放。
[0135] 帧间预测器110可在执行块单位运动补偿的同时使用运动矢量,并且可存储运动矢量。在这方面,运动矢量的单位可以是4×4尺寸的块。当在执行块单位运动补偿之后存储运动矢量时,运动矢量存储单位的尺寸可以不是4×4,而可以是具有各种尺寸的块(例如,R×R尺寸的块;其中,R是整数)。在这方面,运动矢量存储单位可以是尺寸大于4×4的块。例如,运动矢量存储单位可以是16×16尺寸的块。
[0136] 当执行像素组单位运动补偿时,将被执行像素组单位运动补偿的目标块的尺寸可基于当前块的尺寸、窗口的尺寸和插值滤波器的长度被扩大。与当前块的尺寸相比,目标块的尺寸基于窗口的尺寸被扩大的原因是:对于位于当前块的边缘处的像素,对当前块的像素组单位运动补偿通过使用窗口基于位于当前块的边缘处的像素和邻近像素被执行。
[0137] 因此,为了减少存储器访问的次数并减少乘法运算的执行,在通过使用窗口执行像素组单位运动补偿时,像素组单位运动补偿器120可将所述窗口中的像素之中的偏离当前块的像素的位置调整到与当前块的内部相邻的像素的位置,因此可确定在调整后的像素的位置处的像素值和梯度值,使得可减少存储器访问的次数和乘法运算的次数。
[0138] 像素组单位运动补偿器120可不使用整数位置处的像素的像素值,来确定作为像素组单位运动补偿的必要值的参考像素的梯度值。也就是说,像素组单位运动补偿器120可通过将水平方向梯度滤波器或垂直方向梯度滤波器应用于分数位置处的像素的像素值来计算第一参考块中的第一相应参考像素在水平方向或垂直方向上的梯度值或第二参考块中的第二相应参考像素的梯度值。在这方面,梯度滤波器的长度可以是5。梯度滤波器的系数可具有相对于滤波器的中心系数对称的系数。分数位置处的像素可以是指示像素的位置的水平方向分量和垂直方向分量中的至少一个具有分数值的像素。
[0139] 可通过将水平方向插值滤波器或垂直方向插值滤波器应用于整数位置处的像素的像素值来计算第一参考块或第二参考块中的分数位置处的像素的像素值。
[0140] 关于当前像素组的在水平方向或垂直方向上每单位时间的位移矢量可以是通过使用以下项所确定的每单位时间的位移矢量:第一参考画面中的与当前像素组相应的第一相应参考像素组中的第一相应参考像素的像素值、第二参考画面中的第二相应参考像素组中的第二相应参考像素的像素值以及第一相应参考像素和第二相应参考像素的邻近像素的像素值、梯度值、第一参考画面和当前画面之间的第一画面顺序计数(POC)差以及第二参考画面和当前画面之间的第二POC差。
[0141] 当第一相应参考像素或第二相应参考像素是与第一参考块或第二参考块的边界内部相邻的边界邻近像素时,像素组单位运动补偿器120可通过使用边界邻近像素的像素值来推导位于第一参考块或第二参考块的边界外部的像素的像素值。
[0142] 像素组单位运动补偿器120可基于边界邻近像素的像素值和位于当前块的边界外部的像素的像素值来确定当前块在水平方向或垂直方向上每单位时间的位移矢量,其中,位于当前块的边界外部的像素的像素值通过使用边界邻近像素的像素值被推导出。也就是说,位于边界外部的像素可存在于关于边界邻近像素的窗口中包括的像素中,并且在这方面,位于边界外部的像素的像素值和梯度值可以是不包括在存储器中的像素的像素值和梯度值,而是从边界邻近像素被推导出的像素的像素值和梯度值。
[0143] 像素组单位运动补偿器120可通过使用第一参考块中包括的第一相应参考像素的像素值、第二参考块中包括的第二相应参考像素的像素值、第一相应参考像素的梯度值、第二相应参考像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于当前像素的值。也就是说,关于当前像素的值可以是基于每个参考画面的相应参考像素的像素值、梯度值和每个参考画面与当前画面之间的POC差的函数的结果值。
[0144] 像素组单位运动补偿器120可通过使用第一相应参考像素的第一相应邻近像素的像素值、第一相应邻近像素的梯度值、第二相应参考像素的第二相应邻近像素的像素值、第二相应邻近像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于邻近像素的值。也就是说,关于邻近像素的值可以是基于每个参考画面的相应参考像素的像素值、每个参考画面的相应参考像素的梯度值以及每个参考画面与当前画面之间的POC差的函数的结果值。也就是说,关于邻近像素的值可以是基于每个参考画面的相应邻近像素的像素值、梯度值以及每个参考画面与当前画面之间的POC差的函数的结果值。
[0145] 像素组单位运动补偿器120可通过使用关于当前像素的值、关于邻近像素的值和权重来计算针对当前像素的用于计算水平方向上每单位时间的位移矢量所需的加权平均值。在这方面,所述权重可基于以下项被确定:当前像素和邻近像素之间的距离、像素和块的边界之间的距离、位于边界外部的像素的数量或者像素是位于边界内部还是边界外部。
[0146] 针对当前像素的加权平均值可以是通过在垂直方向和水平方向上将指数平滑技术应用于关于包括在第一参考块和第二参考块中的像素的值而计算的值。通过在垂直方向和水平方向上将指数平滑技术应用于关于包括在第一参考块和第二参考块中的像素的值而针对当前像素计算的值可以是这样的值:针对当前像素的值的权重最大并且针对当前像素的邻近像素的值的权重根据与当前像素的距离而指数地减小。
[0147] 像素组单位运动补偿器120可通过使用当前像素的加权平均值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量。
[0148] 重构器125可从比特流获得当前块的残差块,并且可通过使用当前块的预测块和残差块对当前块进行重构。例如,重构器125可通过将来自比特流的当前块的残差块的像素值与当前块的预测块的像素值求和来生成重构块的像素值。
[0149] 视频解码设备100可包括图像解码器(未示出),并且图像解码器(未示出)可包括获得器105、帧间预测器110和重构器125。将参照图1e来描述图像解码器。
[0150] 图1b示出了根据各种实施例的视频解码方法的流程图。
[0151] 在操作S105,视频解码设备100可从比特流获得关于当前画面中的当前块的运动预测模式信息。视频解码设备100可接收包括关于当前画面中的当前块的运动预测模式信息的比特流,并且可从接收到的比特流获得关于当前块的运动预测模式信息。视频解码设备100可从比特流获得关于当前块的运动预测模式信息,并且可基于运动预测模式信息来确定当前块的预测模式。在这方面,在当前块的预测模式是帧间预测模式时,视频解码设备100可获得关于当前块的运动预测模式信息。
[0152] 例如,视频解码设备100可基于关于当前块的运动预测模式信息,将当前块的预测模式确定为帧间预测模式。在当前块的预测模式是帧间预测模式时,视频解码设备100可从比特流获得关于当前块的运动预测模式信息。
[0153] 在操作S110,当运动预测模式信息指示双向运动预测模式时,视频解码设备100可从比特流获得指示当前块在第一参考画面中的第一参考块的第一运动矢量和指示当前块在第二参考画面中的第二参考块的第二运动矢量。
[0154] 也就是说,视频解码设备100可接收包括关于第一运动矢量和第二运动矢量的信息的比特流,并且可从接收到的比特流获得第一运动矢量和第二运动矢量。视频解码设备100可从比特流获得参考画面索引,并且可基于参考画面索引确定先前已被解码的多个画面之中的第一参考画面和第二参考画面。
[0155] 在操作S115,视频解码设备100可通过使用关于包括在第一参考块和第二参考块中的参考像素的值,而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值来确定当前块的像素(该像素包括与当前块的边界内部相邻的像素)在水平方向或垂直方向上的位移矢量。在这方面,关于位于第一参考块和第二参考块的边界外部的像素的存储值以及第一参考块和第二参考块中包括的参考像素的值可以是相关像素的像素值或者相关像素在水平方向上的梯度值或者相关像素在垂直方向上的梯度值。可选地,关于位于第一参考块和第二参考块的边界外部的像素的存储值以及关于包括在第一参考块和第二参考块中的参考像素的值可以是通过使用相关像素的像素值或相关像素的梯度值而确定的值。
[0156] 在操作S120,视频解码设备100可通过使用第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上的位移矢量对当前块执行块单位运动补偿和像素组单位运动补偿来获得当前块的预测块。
[0157] 也就是说,视频解码设备100可通过基于第一运动矢量和第二运动矢量对当前块执行块单位运动补偿和像素组单位运动补偿来生成当前块的预测块。视频解码设备100可通过使用由第一运动矢量指示的第一参考块的像素值和由第二运动矢量指示的第二参考块的像素值对当前块执行块单位运动补偿。此外,视频解码设备100可通过使用第一参考块中的与当前块中的当前像素组中包括的至少一个像素相应的至少一个第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与所述至少一个像素相应的至少一个第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上的位移矢量对当前像素组执行像素组单位运动补偿。
[0158] 视频解码设备100可通过使用经由对当前块执行块单位运动补偿而生成的经块单位运动补偿的值以及经由对当前像素组执行像素组单位运动补偿而生成的经像素组单位运动补偿的值来获得当前块的预测块。
[0159] 在操作S125,视频解码设备100可从比特流获得关于当前块的残差块的信息。
[0160] 在操作S130,视频解码设备100可基于预测块和残差块对当前块进行重构。也就是说,视频解码设备100可通过对由关于当前块的残差块的信息所指示的残差块的像素值和预测块的预测像素值进行求和来生成当前块的重构块的像素值。
[0161] 图1c示出了根据各种实施例的视频编码设备的框图。
[0162] 根据各种实施例的视频编码设备150包括帧间预测器155和比特流生成器170。
[0163] 帧间预测器155基于率失真代价通过参考各种块对当前块执行帧间预测。也就是说,帧间预测器155可通过使用在包括当前块的当前画面之前已被编码的画面中的至少一个画面来生成当前块的预测像素值。
[0164] 帧间预测器155可包括块单位运动补偿器160和像素组单位运动补偿器165。
[0165] 块单位运动补偿器160可通过对当前块执行块单位运动补偿来生成经块单位运动补偿的值。
[0166] 块单位运动补偿器160可确定先前已被解码的画面之中的至少一个参考画面,并且可确定当前块的位于所述至少一个参考画面中的参考块。
[0167] 块单位运动补偿器160可通过使用参考块的像素值对当前块执行块单位运动补偿来生成经块单位运动补偿的值。块单位运动补偿器160可通过使用参考块的与当前块的当前像素相应的参考像素的值对当前块执行块单位运动补偿来生成经块单位运动补偿的值。
[0168] 块单位运动补偿器160可通过使用分别包括在多个参考画面中的多个参考块对当前块执行块单位运动补偿来生成经块单位运动补偿的值。例如,在当前块的运动预测模式指示双向预测模式时,块单位运动补偿器160可确定先前被编码的画面之中的两个参考画面,并且可确定两个参考画面中包括的两个参考块。在这方面,双向预测可不限于使用显示顺序在当前块之前的画面和显示顺序在当前块之后的画面的帧间预测,并且可指示使用在当前画面之前已被编码的两个画面的帧间预测,而不管显示顺序如何。
[0169] 块单位运动补偿器160可通过使用两个参考块中的两个参考像素的值对当前块执行块单位运动补偿来生成经块单位运动补偿的值。块单位运动补偿器160可通过使用两个参考像素的平均像素值或加权和对当前块执行块单位运动补偿来生成经块单位运动补偿的值。
[0170] 块单位运动补偿器160可输出指示先前被编码的画面之中的用于对当前块进行运动补偿的参考画面的参考画面索引。
[0171] 块单位运动补偿器160可确定起点是当前块并且终点是当前块的参考块的运动矢量,并且可输出该运动矢量。运动矢量可意为指示当前块在当前画面中的参考坐标与参考块在参考画面中的参考坐标之间的位移的矢量。例如,在当前块的左上坐标是(1,1),并且参考块在参考画面中的左上坐标是(3,3)时,运动矢量可以是(2,2)。
[0172] 参考块的参考位置可以是整数像素的位置,但不限于此,并且因此可以是分数像素的位置。在这方面,分数像素的位置可按照1/4像素单位或1/16像素单位被确定。然而,本公开不限于此,因此可根据各种分数像素单位来确定分数像素的位置。
[0173] 例如,当参考块的参考位置是(1.5,1.5),并且当前块的左上的坐标是(1,1)时,运动矢量可以是(0.5,0.5)。当运动矢量按照1/4或1/16像素单位被确定以指示参考块的参考位置(即分数像素的位置)时,可通过缩放该运动矢量来确定整数的运动矢量,并且可通过使用放大的运动矢量来确定参考块的参考位置。当参考块的参考位置是分数像素的位置时,参考块的参考像素的位置也可以是分数像素的位置。因此,可通过使用预定方向上的分量是整数的邻近像素的像素值来确定参考块中的分数像素位置处的像素值。
[0174] 例如,块单位运动补偿器160可将通过使用插值滤波器对预定方向上的分量是整数的邻近像素的像素值执行滤波而获得的值确定为分数像素位置处的参考像素的像素值,并且可通过使用参考像素的像素值以块为单位来确定关于当前块的经运动补偿的值。在这方面,插值滤波器可以是基于DCT的M抽头插值滤波器。基于DCT的M抽头插值滤波器的系数可从DCT和IDCT被推导出。在这方面,插值滤波器的系数可以是被缩放为整数系数以在执行滤波时减少实数运算的滤波器系数。
[0175] 在这方面,插值滤波器可以是水平方向或垂直方向上的1D插值滤波器。
[0176] 块单位运动补偿器160可通过首先使用1D垂直方向插值滤波器对邻近整数像素执行滤波,然后使用1D水平方向插值滤波器对已执行了滤波的值执行滤波来确定分数像素位置处的参考像素的像素值。当使用缩放的滤波器系数时,块单位运动补偿器160可在通过使用1D垂直方向插值滤波器对整数位置处的像素执行滤波之后对已执行了滤波的值执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于样点的比特深度被确定。例如,去缩放比特的数量可以是通过从样点的比特深度减去8而获得的值。
[0177] 此外,块单位运动补偿器160可通过使用1D垂直方向插值滤波器对水平方向分量是整数的像素执行滤波,然后可按照去缩放比特的数量执行向右比特移位。去缩放比特的数量可基于关于1D垂直方向插值滤波器的系数的缩放比特数、关于1D水平方向插值滤波器的系数的缩放比特数以及样点的比特深度被确定。
[0178] 当块单位运动补偿器160仅按照去缩放比特的数量执行向右比特移位时,可能发生舍入误差。因此,块单位运动补偿器160可通过在预定方向上使用1D插值滤波器对预定方向分量是整数的像素执行滤波,可将偏移值与已执行了滤波的值相加,然后可对已添加了偏移值的值执行去缩放。在这方面,偏移值可以是2^(去缩放比特的数量-1)。
[0179] 在上文中,已经描述了在使用1D垂直方向插值滤波器进行滤波之后基于样点的比特深度来确定去缩放比特的数量的操作,但是本公开不限于此,并且因此去缩放比特的数量不仅可基于样点的比特深度被确定,还可基于针对插值滤波器系数缩放的比特的数量被确定。也就是说,去缩放比特的数量可在不发生溢出的范围内、在考虑在滤波期间使用的寄存器的大小和存储在滤波期间生成的值的缓冲器的大小的同时基于样点的比特深度和针对插值滤波器系数被缩放的比特的数量被确定。
[0180] 像素组单位运动补偿器165可通过对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。在这方面,当运动预测模式是双向运动预测模式时,像素组单位运动补偿器165可通过对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。
[0181] 像素组单位运动补偿器165可通过使用当前块的参考块中包括的像素的梯度值对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。
[0182] 像素组单位运动补偿器165可通过将滤波器应用于第一参考画面中的第一参考块的像素之中的第一像素的第一邻近区域和第二参考画面中的第二参考块的像素之中的第二像素的第二邻近区域来获得第一像素的梯度值和第二像素的梯度值。
[0183] 像素组单位运动补偿器165可确定关于第一参考画面中的第一参考像素的具有预定尺寸并包括第一参考像素的第一窗口中的像素的像素值和梯度值,并且可确定关于第二参考画面中的第二参考像素的具有预定尺寸并包括第二参考像素的第二窗口中的像素的像素值和梯度值。像素组单位运动补偿器165可通过使用第一窗口中的像素的像素值和梯度值以及第二窗口中的像素的像素值和梯度值来确定关于当前像素在每单位时间的位移矢量。
[0184] 像素组单位运动补偿器165可通过使用每单位时间的位移矢量和参考像素的梯度值对当前块执行像素组单位运动补偿来生成经像素组单位运动补偿的值。
[0185] 参考像素的参考位置可以是整数像素的位置,但不限于此,并且因此可以是分数像素的位置。
[0186] 当参考块的参考位置是分数像素的位置时,可通过使用预定方向分量是整数的邻近像素的像素值来确定参考块中的参考像素的梯度值。
[0187] 例如,像素组单位运动补偿器165可将通过使用梯度滤波器对预定方向分量是整数的邻近像素的像素值执行滤波而获得的结果值确定为参考像素的梯度值。在这方面,梯度滤波器的滤波器系数可通过使用针对基于DCT的插值滤波器预先确定的系数被确定。
[0188] 梯度滤波器的系数可以是被缩放到整数系数以在执行滤波时减少实数运算的滤波器系数。在这方面,梯度滤波器可以是1D水平方向梯度滤波器或1D垂直方向梯度滤波器。
[0189] 像素组单位运动补偿器165可通过使用1D水平方向梯度滤波器或1D垂直方向梯度滤波器对相应的方向分量是整数的邻近像素执行滤波,以确定关于参考像素在水平方向或垂直方向上的梯度值。
[0190] 例如,像素组单位运动补偿器165可通过使用1D垂直方向插值滤波器对从与参考像素相邻的整数像素开始的垂直方向上的像素之中的垂直分量是整数的像素执行滤波来确定垂直分量是分数的像素的像素值。
[0191] 关于位于与相邻于参考像素的整数像素相邻的另一列中的像素,像素组单位运动补偿器165可通过使用1D垂直方向插值滤波器对垂直方向上的邻近整数像素执行滤波来确定位于所述另一列中的分数像素位置的像素值。在这方面,位于所述另一列中的像素的位置可以是垂直方向上的分数像素的位置和水平方向上的整数像素的位置。
[0192] 也就是说,当参考像素的位置是(x+α,y+β)(其中,x和y是整数并且α和β是分数)时,像素组单位运动补偿器165可通过使用垂直方向插值滤波器对从(x,y)位置开始的垂直方向上的邻近整数像素执行滤波来确定(x,y+β)位置处的像素值。
[0193] 像素组单位运动补偿器165可通过使用水平方向梯度滤波器对(x,y+β)位置处的像素值以及位于从(x,y+β)位置处的像素值开始的水平方向上的像素之中的水平分量是整数的像素的像素值执行滤波来确定水平方向上的(x+α,y+β)位置处的梯度值。
[0194] 使用1D梯度滤波器和1D插值滤波器的顺序不受限制。如上所述,首先可通过使用1D垂直方向插值滤波器对整数位置处的像素执行滤波来生成垂直方向上经插值滤波的值,然后可通过使用1D水平方向梯度滤波器对垂直方向上经插值滤波的值执行滤波,但本发明不限于此,因此,可首先通过使用1D水平方向梯度滤波器对整数位置处的像素执行滤波来生成水平方向上经梯度滤波的值,然后可通过使用1D垂直方向插值滤波器对在水平方向上经梯度滤波的值执行滤波。
[0195] 在上文中,已经详细描述了像素组单位运动补偿器165确定(x+α,y+β)位置处的水平方向上的梯度值。
[0196] 像素组单位运动补偿器165可按照与确定水平方向上的梯度值相似的方式来确定(x+α,y+β)位置处的垂直方向上的梯度值。
[0197] 像素组单位运动补偿器165可通过使用1D垂直方向梯度滤波器对在从与参考像素相邻的整数像素开始的垂直方向上的邻近整数像素执行滤波来确定参考像素在垂直方向上的梯度值。对于与参考像素相邻并位于另一列中的像素,像素组单位运动补偿器165可通过使用1D垂直方向梯度滤波器对垂直方向上的邻近整数像素执行滤波来确定关于与参考像素相邻并位于所述另一列的像素的在垂直方向上的梯度值。在这方面,像素的位置可以是分数像素在垂直方向上的位置和整数像素在水平方向上的位置。
[0198] 也就是说,当参考像素的位置是(x+α,y+β)(其中,x和y是整数并且α和β是分数)时,像素组单位运动补偿器165可通过使用垂直方向梯度滤波器对从(x,y)位置开始的垂直方向上的邻近整数像素执行滤波来确定在(x,y+β)位置处的垂直方向上的梯度值。
[0199] 像素组单位运动补偿器165可通过使用水平方向插值滤波器对(x,y+β)位置处的梯度值和位于从(x,y+β)位置开始的水平方向上的邻近整数像素的梯度值执行滤波来确定(x+α,y+β)位置处的垂直方向上的梯度值。
[0200] 使用1D梯度滤波器和1D插值滤波器的顺序不受限制。如上所述,首先可通过使用1D垂直方向梯度滤波器对整数位置处的像素执行滤波来生成垂直方向上经梯度滤波的值,然后可通过使用1D水平方向插值滤波器对垂直方向上经梯度滤波的值执行滤波,但是本公开不限于此,因此,可首先通过使用1D水平方向插值滤波器对整数位置处的像素执行滤波来生成水平方向上经插值滤波的值,然后可通过使用1D垂直方向梯度滤波器对水平方向上经插值滤波的值执行滤波。
[0201] 在上文中,已经详细描述了像素组单位运动补偿器165使用梯度滤波器和插值滤波器以确定分数像素位置处的梯度值。然而,本公开不限于此,因此,梯度滤波器和插值滤波器可被用于确定整数像素位置处的梯度值。
[0202] 在整数像素的情况下,虽然整数像素的像素值可在不使用插值滤波器的情况下被确定,但是为了与分数像素中的处理一致的处理,可通过使用插值滤波器对整数像素和邻近整数像素执行滤波。例如,整数像素处的插值滤波器系数可以是{0,0,64,0,0},并且因为与邻近整数像素有关的插值滤波器系数是0,所以可通过仅使用当前整数像素的像素值来执行滤波,并且作为结果,可通过使用插值滤波器对当前整数像素和邻近整数像素执行滤波,以确定当前整数像素的像素值。
[0203] 当使用缩放的滤波器系数时,像素组单位运动补偿器165可通过使用1D水平方向梯度滤波器对整数位置处的像素执行滤波,然后可对已执行了滤波的值执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于样点的比特深度被确定。例如,去缩放比特的数量可以是通过从样点的比特深度减去8而获得的值。
[0204] 像素组单位运动补偿器165可通过使用垂直方向插值滤波器对垂直方向分量是整数的像素执行滤波,然后可执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。去缩放比特的数量可基于1D垂直方向插值滤波器的缩放比特数、1D水平方向梯度滤波器的缩放比特数和样点的比特深度被确定。
[0205] 当像素组单位运动补偿器165仅按照去缩放比特的数量执行向右比特移位时,可能发生舍入误差。因此,在通过使用1D插值滤波器执行滤波之后,可将偏移值与已执行了滤波的值相加,并且可对已添加了偏移值的值执行去缩放。在这方面,偏移值可以是2^(比特位移数-1)。
[0206] 帧间预测器110可在执行块单位运动补偿的同时使用运动矢量,并且可存储运动矢量。在这方面,运动矢量的单位可以是4×4尺寸的块。当在执行块单位运动补偿之后存储运动矢量时,运动矢量存储单位可以不是4×4尺寸,而可以是具有各种尺寸的块(例如,R×R尺寸的块;其中,R是整数)。在这方面,运动矢量存储单位可以是大于4×4尺寸的块。例如,运动矢量存储单位可以是16×16尺寸的块。
[0207] 当执行像素组单位运动补偿时,将被执行像素组单位运动补偿的目标块的尺寸可基于当前块的尺寸、窗口的尺寸和插值滤波器的长度被扩大。与当前块的尺寸相比,目标块的尺寸基于窗口的尺寸被扩大的原因是:对于位于当前块的边缘处的像素,对当前块的像素组单位运动补偿通过使用窗口基于位于当前块的边缘处的像素和邻近像素被执行。
[0208] 因此,为了减少存储器访问的次数并减少乘法运算的执行,在通过使用窗口执行像素组单位运动补偿时,像素组单位运动补偿器120将所述窗口中的像素之中的偏离当前块的像素的位置调整到与当前块的内部相邻的像素的位置,因此可确定在调整后的像素的位置处的像素值和梯度值,使得可减少存储器访问的次数和乘法运算的次数。
[0209] 像素组单位运动补偿器120可以不使用整数位置处的像素的像素值,以确定作为像素组单位运动补偿的必要值的参考像素的梯度值。也就是说,像素组单位运动补偿器120可通过将水平方向梯度滤波器或垂直方向梯度滤波器应用于分数位置处的像素的像素值来计算第一参考块中的第一相应参考像素在水平方向或垂直方向上的梯度值或者第二参考块中的第二相应参考像素的梯度值。在这方面,梯度滤波器的长度可以是5。梯度滤波器的系数可具有相对于滤波器的中心系数对称的系数。分数位置处的像素可以是指示像素的位置的水平方向分量和垂直方向分量中的至少一个具有分数值的像素。
[0210] 可通过将水平方向插值滤波器或垂直方向插值滤波器应用于整数位置处的像素的像素值来计算第一参考块或第二参考块中的分数位置处的像素的像素值。
[0211] 关于当前像素组的在水平方向或垂直方向上每单位时间的位移矢量可以是通过使用以下项所确定的每单位时间的位移矢量:第一参考画面中的与当前像素组相应的第一相应参考像素组中的第一相应参考像素、第二参考画面中的与当前像素组相应的第二相应参考像素组中的第二相应参考像素、第一相应参考像素和第二相应参考像素的邻近像素的像素值、第一相应参考像素和第二相应参考像素的梯度值以及第一相应参考像素和第二相应参考像素的的邻近像素的梯度值、第一参考画面和当前画面之间的第一POC差以及第二参考画面和当前画面之间的第二POC差。
[0212] 当第一相应参考像素或第二相应参考像素是与第一参考块或第二参考块的边界内部相邻的边界邻近像素时,像素组单位运动补偿器120可通过使用边界邻近像素的像素值来推导位于第一参考块或第二参考块的边界外部的像素的像素值。
[0213] 像素组单位运动补偿器120可基于边界邻近像素的像素值和位于当前块的边界外部的像素的像素值来确定当前块在水平方向或垂直方向上每单位时间的位移矢量,其中,位于当前块的边界外部的像素的像素值通过使用边界邻近像素的像素值被推导出。也就是说,位于边界外部的像素可存在于关于边界邻近像素的窗口中包括的像素中,并且在这方面,位于边界外部的像素的像素值和梯度值可以是不包括在存储器中的像素的像素值和梯度值,而是从边界邻近像素被推导出的像素的像素值和梯度值。
[0214] 像素组单位运动补偿器120可通过使用第一参考块中包括的第一相应参考像素的像素值、第二参考块中包括的第二相应参考像素的像素值、第一相应参考像素的梯度值、第二相应参考像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于当前像素的值。也就是说,关于当前像素的值可以是基于每个参考画面的相应参考像素的像素值、梯度值和每个参考画面与当前画面之间的POC差的函数的结果值。
[0215] 像素组单位运动补偿器120可通过使用第一相应参考像素的第一相应邻近像素的像素值、第一相应邻近像素的梯度值、第二相应参考像素的第二相应邻近像素的像素值、第二相应邻近像素的梯度值、第一参考画面与当前画面之间的第一POC差以及第二参考画面与当前画面之间的第二POC差来计算关于邻近像素的值。也就是说,关于邻近像素的值可以是基于每个参考画面的相应参考像素的像素值、梯度值以及每个参考画面与当前画面之间的POC差的函数的结果值。也就是说,关于相应邻近像素的值可以是基于每个参考画面的相应邻近像素的像素值、梯度以及每个参考画面与当前画面之间的POC差的函数的结果值。
[0216] 像素组单位运动补偿器120可通过使用关于当前像素的值、关于相应邻近像素的值和权重来计算针对当前像素的用于计算水平方向上每单位时间的位移矢量所需的加权平均值。在这方面,所述权重可基于以下项被确定:当前像素和邻近像素之间的距离、像素和块的边界之间的距离、位于边界外部的像素的数量或者像素是位于边界内部还是边界外部。
[0217] 针对当前像素的加权平均值可以是通过在垂直方向和水平方向上将指数平滑技术应用于关于包括在第一参考块和第二参考块中的像素的值而计算的值。通过在垂直方向和水平方向上将指数平滑技术应用于关于包括在第一参考块和第二参考块中的像素的值而针对当前像素计算的值可以是这样的值:针对关于当前像素的值的权重最大并且针对关于当前像素的邻近像素的值的权重根据与当前像素的距离而指数地减小。
[0218] 像素组单位运动补偿器120可通过使用当前像素的加权平均值来确定当前像素在水平方向或垂直方向上每单位时间的位移矢量。
[0219] 帧间预测器155可通过使用关于当前块的经块单位运动补偿的值和关于当前块的经像素组单位运动补偿的值来生成当前块的预测像素值。例如,帧间预测器155可通过将关于当前块的经块单位运动补偿的值和经像素组单位运动补偿的值相加来生成当前块的预测像素值。具体地,在当前块的运动预测模式是双向运动预测模式时,帧间预测器155可通过使用关于当前块的经块单位运动补偿的值和经像素组单位运动补偿的值来生成当前块的预测像素值。
[0220] 在当前块的运动预测模式为单向运动预测模式时,帧间预测器155可通过使用关于当前块的经块单位运动补偿的值和经像素组单元运动补偿的值来生成当前块的预测像素值。在这方面,单向指示使用先前被编码的画面之中的一个参考画面。所述一个参考画面不限于按照显示顺序在当前画面之前的画面,而可以是在当前画面之后显示的画面。
[0221] 帧间预测器155可确定当前块的运动预测模式,并且可输出指示当前块的运动预测模式的信息。例如,帧间预测器155可将当前块的运动预测模式确定为双向运动预测模式,并且可输出指示双向运动预测模式的信息。在这方面,双向运动预测模式是指通过使用两个解码参考画面中的参考块来预测运动的模式。
[0222] 比特流生成器170可生成包括指示参考块的运动矢量的比特流。比特流生成器170可对指示参考块的运动矢量进行编码,并且可生成包括被编码的运动矢量的比特流。比特流生成器170可对指示参考块的运动矢量的差值进行编码,并且可生成包括被编码的运动矢量的差值的比特流。在这方面,运动矢量的差值可指示运动矢量和该运动矢量的预测因子之间的差。在这方面,运动矢量的差值可指示关于分别与包括L0方向和L1方向的预测方向有关的参考画面的运动矢量的差值。在这方面,关于L0方向的运动矢量的差值可表示指示L0参考画面列表中包括的参考画面中的参考块的运动矢量的差值,并且,关于L1方向的运动矢量的差值可表示指示L1参考画面列表中包括的参考画面中的参考块的运动矢量的差值。
[0223] 此外,比特流生成器170可生成还包括指示当前块的运动预测模式的信息的比特流。比特流生成器170可对指示先前编码的画面之中的当前块的参考画面的参考画面索引进行编码,并且可生成包括编码的参考画面索引的比特流。在这方面,参考画面索引可指示关于包括L0方向和L1方向的预测方向中的每一个预测方向的参考画面索引。在这方面,关于L0方向的参考画面索引可表示指示L0参考画面列表中包括的画面之中的参考画面的索引,并且关于L1方向的参考画面索引可表示指示L1参考画面列表中包括的画面之中的参考画面的索引。
[0224] 视频编码设备150可包括图像编码器(未示出),并且图像编码器可包括帧间预测器155和比特流生成器170。下面将参照图1f描述图像编码器。
[0225] 图1d示出了根据各种实施例的视频编码方法的流程图。
[0226] 参照图1d,在操作S150,视频编码设备150可通过对当前块执行运动补偿和像素组单位运动补偿来获得当前块的预测块、第一运动矢量和第二运动矢量以及关于像素组单位运动补偿的参数。
[0227] 在操作S155,视频编码设备150可生成包括关于第一运动矢量和第二运动矢量的信息和运动预测模式信息的比特流,其中,运动预测模式信息指示当前块的运动预测模式是双向运动预测模式。在这方面,第一运动矢量可以是从当前块指示第一参考画面的与当前画面中的当前块相应的第一参考块的运动矢量,并且第二运动矢量可以是从当前块指示第二参考画面的与当前画面中的当前块相应的第二参考块的运动矢量。
[0228] 视频编码设备150可对当前块的残差块进行编码,并且可生成还包括被编码的残差信号的比特流,其中,当前块的残差块指示当前块的预测块的像素与当前块的原始块之间的差。视频编码设备150可对关于当前块的预测模式的信息和参考画面索引进行编码,并且可生成还包括被编码的关于当前块的预测模式的信息和被编码的参考画面索引的比特流。例如,视频编码设备150可对指示当前块的预测模式是帧间预测模式的信息和指示先前解码的画面之中的至少一个画面的参考画面索引进行编码,并且可生成还包括被编码的关于当前块的预测模式的信息和被编码的参考画面索引的比特流。
[0229] 视频编码设备150可通过使用以下项对当前块执行块单位运动补偿和像素组单位运动补偿:第一参考块中的与当前块中的当前像素组中包括的当前像素相应的第一相应参考像素在水平方向或垂直方向上的梯度值、第二参考块中的与当前像素相应的第二相应参考像素在水平方向或垂直方向上的梯度值、第一相应参考像素的像素值、第二相应参考像素的像素值以及当前像素在水平方向或垂直方向上每单位时间的位移矢量。视频编码设备150可通过对当前块执行块单位运动补偿和像素组单位运动补偿来获得当前块的预测块。
[0230] 在这方面,可通过使用关于第一参考块和第二参考块中包括的参考像素的值,而不使用关于位于第一参考块和第二参考块的边界外部的像素的存储值来确定包括与当前块的边界内部相邻的像素的当前块的像素在水平方向或垂直方向上每单位时间的位移矢量。关于第一参考块和第二参考块中包括的参考像素的值可以是参考像素的像素值或梯度值。
[0231] 图1e示出了根据各种实施例的图像解码器600的框图。
[0232] 根据各种实施例的图像解码器600执行由视频解码设备100的图像解码器(未示出)执行的操作以对图像数据进行解码。
[0233] 参照图1e,熵解码器615从比特流605解析将被解码的编码图像数据和解码所需的编码信息。编码图像数据是量化的变换系数,并且反量化器620和逆变换器625从量化的变换系数重构残差数据。
[0234] 帧内预测器640按照块执行帧内预测。帧间预测器635按照块通过使用从重构画面缓冲器630获得的参考图像来执行帧间预测。图1e的帧间预测器635可与图1a的帧间预测器110相应。
[0235] 可通过将由帧内预测器640或帧间预测器635生成的每个块的预测数据和残差数据相加来对关于当前图像605的块的空间域的数据进行重构,并且去块单元645和样点自适应偏移(SAO)执行器650可通过对重构的空间域的数据执行回路滤波来输出经滤波的重构图像660。此外,存储在重构画面缓冲器630中的重构图像可作为参考图像被输出。
[0236] 为了使视频解码设备100的解码器(未示出)对图像数据进行解码,可按照块执行根据各种实施例的图像解码器600的逐步操作。
[0237] 图1f示出了根据各种实施例的图像编码器的框图。
[0238] 根据各种实施例的图像编码器700执行由视频编码设备150的图像编码器(未示出)执行的操作以对图像数据进行编码。
[0239] 也就是说,帧内预测器720按照块对当前图像705执行帧内预测,帧间预测器715通过使用当前图像705和从重构画面缓冲器710获得的参考图像按照块来执行帧间预测。在这方面,图1e的帧间预测器715可与图1c的帧间预测器155相应。
[0240] 可通过从关于当前图像705的编码块的数据中减去关于从帧内预测器720或帧间预测器715输出的每个块的预测数据来生成残差数据,并且变换器725和量化器730可通过对残差数据执行变换和量化来输出按照块量化的变换系数。反量化器745和逆变换器750可通过对量化的变换系数执行反量化和逆变换对空间域的残差数据进行重构。可将空间域的重构残差数据与关于从帧内预测器720或帧间预测器715输出的每个块的预测数据进行相加,以被重构为关于当前图像705的块的空间域中的数据。去块单元755和SAO执行器760通过对空间域的重构数据执行环路滤波来生成经滤波的重构图像。生成的重构图像被存储在重构画面缓冲器710中。存储在重构画面缓冲器710中的重构图像可用作用于另一图像的帧间预测的参考图像。熵编码器735可对量化的变换系数进行熵编码,并且经熵编码的系数可作为比特流740被输出。
[0241] 为了将根据各种实施例的图像编码器700应用于视频编码设备150,可按照块执行根据各种实施例的图像编码器700的逐步操作。
[0242] 图2是根据实施例的用于描述基于块的双向运动预测和补偿处理的参考图。
[0243] 参照图2,视频编码设备150执行双向运动预测,在双向运动预测中,在第一参考画面210和第二参考画面220中搜索与将被编码的当前画面200的当前块201最相似的区域。在这方面,假设第一参考画面210是在当前画面200之前的画面,第二参考画面220是在当前画面200之后的画面。作为双向运动预测的结果,视频编码装置150从第一参考画面210确定与当前块201最相似的第一相应区域212,并且从第二参考画面220确定与当前块201最相似的第二相应区域222。在这方面,第一相应区域212和第二相应区域222可以是当前块201的参考区域。
[0244] 视频编码设备150可基于第一相应区域212与第一参考画面210的在和当前块201相同的位置处的块211之间的位置差来确定第一运动矢量MV1,并且可基于第二相应区域222与第二参考画面220的在和当前块201相同的位置处的块221之间的位置差来确定第二运动矢量MV2。
[0245] 视频编码设备150通过使用第一运动矢量MV1和第二运动矢量MV2对当前块201执行块单位双向运动补偿。
[0246] 例如,当位于第一参考画面210的(i,j)处的像素值是P0(i,j),位于第二参考画面220的(i,j)处的像素值是P1(i,j),MV1=(MVx1,MVy1),MV2=(MVx2,MVy2),其中,i和j是整数时,当前块201的(i,j)位置处的像素的块单位双向运动补偿值P_BiPredBlock(i,j)可根据以下等式被计算:P_BiPredBlock(i,j)={P0(i+MVx1,j+MVy1)+P1(i+MVx2,j+MVy2)}/2。
以此方式,视频编码设备150可通过使用由第一运动矢量MV1指示的第一相应区域212和由第二运动矢量MV2指示的第二相应区域222中的像素的平均值或加权和对当前块201执行块单位运动补偿来生成经块单位运动补偿的值。
[0247] 图3a至图3c是根据实施例的用于描述执行像素组单位运动补偿的处理的参考图。
[0248] 在图3a中,假设第一相应区域310和第二相应区域320分别与图2的第一相应区域212和第二相应区域222相应,并且通过使用双向运动矢量MV1和MV2移位成与当前块300重叠。
[0249] 此外,P(i,j)指示当前块300的在(i,j)位置(其中,i和j是整数)处的被双向预测的像素,P0(i,j)指示第一参考画面的与被双向预测的当前块300的像素P(i,j)相应的第一参考像素值,并且P1(i,j)指示第二参考画面的与被双向预测的当前块300的像素P(i,j)相应的第二参考像素值。
[0250] 换句话说,第一参考像素值P0(i,j)是由指示第一参考画面的双向运动矢量MV1确定的与当前块300的像素P(i,j)相应的像素的像素值,并且第二参考像素值P1(i,j)是由指示第二参考画面的双向运动矢量MV2确定的与当前块300的像素P(i,j)相应的像素的像素值。
[0251] 此外,定义 指示第一参考像素在水平方向上的梯度值, 指示第一参考像素在垂直方向上的梯度值, 指示第二参考像素在水平方向上的梯度
值,并且 指示第二参考像素在垂直方向上的梯度值。此外,定义τ0指示当前块300所属的当前画面与第一相应区域310所属的第一参考画面之间的时间距离,并且τ1指示当前画面与第二相应区域320所属的第二参考画面之间的时间距离。在这方面,画面之间的时间距离可指示画面的POC的差。
[0252] 当视频序列中存在均匀的小运动时,第一参考画面的第一相应区域310中的与被执行双向像素组单位运动补偿的像素P(i,j)最相似的像素不是第一参考像素P0(i,j),而是第一参考像素P0(i,j)被移动预定的位移矢量后的第一位移参考像素PA。因为如上所述,假设在视频序列中存在均匀运动,所以第二参考画面的第二相应区域320中的与像素P(i,j)最相似的像素可以是第二参考像素P1(i,j)被移动预定的位移矢量后的第二位移参考像素PB。
[0253] 位移矢量可包括x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy。因此,像素组单位运动补偿器165计算位移矢量中包括的x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy,并且可通过使用位移矢量来执行像素组单位运动补偿。
[0254] 光流指示由场景和观察者(眼睛或视频图像获得设备(诸如相机))之间的相对运动引起的在对象或表面上的表观运动的图案。在视频序列中,可用计算在任意时间t和t+Δt获得的帧之间的运动来表示光流。位于时间t的帧中的(x,y)处的像素值可被定义为I(x,y,t)。也就是说,I(x,y,t)可以是在时间上和空间上变化的值。I(x,y,t)可根据等式1相对于时间t被求微分。
[0255] [等式1]
[0256]
[0257] 当对于块中的小运动,像素值根据运动而改变但是不根据时间而改变时,dI/dt为0。此外,当假设像素值的变化的运动根据时间是常数时,dx/dt可指示像素值I(x,y,t)在x轴方向上的位移矢量Vx,并且dy/dt可指示像素值I(x,y,t)在y轴方向上的位移矢量Vy,因此,等式1可被表示为等式2。
[0258] [等式2]
[0259]
[0260] 在这方面,x轴方向上的位移矢量Vx的大小和y轴方向上的位移矢量Vy的大小可具有小于在双向运动预测中使用的像素精度的值。例如,当在双向运动预测期间像素精度是1/4或1/16时,位移矢量Vx和Vy的大小可具有小于1/4或1/16的值。
[0261] 像素组单位运动补偿器165根据等式2计算x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy,并通过使用位移矢量Vx和位移矢量Vy来执行像素组单位运动补偿。在等式2中,因为像素值I(x,y,t)是原始信号的值,所以当原始信号的值被无变化地使用时,在编码期间可能导致高开销。因此,像素组单位运动补偿器165可通过使用作为执行双向块单位运动补偿的结果而被确定的第一参考画面和第二参考画面的像素,根据等式2计算位移矢量Vx和Vy。也就是说,像素组单位运动补偿器165确定x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy,其中,Δ在具有预定尺寸并包括在被执行了双向运动补偿的像素P(i,j)周围的邻近像素的窗口Ωij中最小。Δ可以是0,但是针对窗口Ωij中的所有像素而言满足Δ=0的x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy可能不存在,因此Δ最小的x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy被确定。将参照图8a详细描述获得位移矢量Vx和Vy的处理。
[0262] 为了确定当前像素的预测像素值,可根据等式3确定关于t的函数P(t)。
[0263] [等式3]
[0264] P(t)=a3*t3+a2*t2+a1*t+a0
[0265] 在这方面,假设当t=0时的画面是包括当前块的当前画面。因此,当t为0时,当前块中包括的当前像素的预测像素值可被定义为P(t)的值。
[0266] 在当前画面与第一参考画面(第一参考画面在时间上在当前画面之前)之间的时间距离是τ0并且当前画面与第二参考画面(第二参考画面在时间上在当前画面之后)之间的时间距离是τ1时,第一参考画面中的参考像素值等于P(-τ0),并且第二参考画面中的参考像素值等于P(τ1)。在下文中,为了便于计算,假设τ0和τ1都等于τ。
[0267] 可根据等式4确定P(t)的每个等级的系数。这里,P0(i,j)可指示第一参考画面的(i,j)位置处的像素值,以及P1(i,j)可指示第二参考画面的(i,j)位置处的像素值。
[0268] [等式4]
[0269]
[0270]
[0271]
[0272]
[0273] 因此,可根据等式5确定当前块中的当前像素的预测像素值P(0)。
[0274] [等式5]
[0275]
[0276] 考虑到等式2,等式5可被表示为等式6。
[0277] [等式6]
[0278]
[0279] 因此,可通过使用位移矢量Vx、位移矢量Vy、第一参考像素在水平方向和垂直方向上的梯度值以及第二参考像素在水平方向和垂直方向上的梯度值来确定当前像素的预测像素值。在这方面,与位移矢量Vx和Vy无关的部分(P0(i,j)+P1(i,j))/2)可以是经块单位运动补偿的值,并且与位移矢量Vx和Vy有关的部分可以是经像素组单位运动补偿的值。作为结果,可通过将经块单位运动补偿的值与经像素组单位运动补偿的值相加来确定当前像素的预测像素值。
[0280] 在上文中,为了便于描述,描述了在第一参考画面与当前画面之间的时间距离以及第二参考画面与当前画面之间的时间距离均为τ并因此相同时确定当前像素的预测像素值的处理,但是第一参考画面和当前画面之间的时间距离可以是τ0,并且第二参考画面和当前画面之间的时间距离可以是τ1。这里,可根据等式7确定当前像素的预测像素值P(0)。
[0281] [等式7]
[0282]
[0283] 考虑等式2,等式7可被表示为等式8。
[0284] [等式8]
[0285]
[0286] 根据前面的描述,第一参考画面在时间上位于当前画面之后并且第二参考画面在时间上位于当前画面之前,但是第一参考画面和第二参考画面两者可以在时间上均位于当前画面之前或当前画面之后。
[0287] 例如,如图3b所示,包括第一相应区域310的第一参考画面和包括第二相应区域320的第二参考画面两者可在时间上均位于包括当前块300的当前画面之前。
[0288] 在这种情况下,可根据等式9确定当前像素的预测像素值P(0),在等式9中,用-τ1代替了在参照图3a所示的等式8中指示第二参考画面与当前画面之间的时间距离的τ1。
[0289] [等式9]
[0290]
[0291] 例如,如图3c所示,包括第一相应区域310的第一参考画面和包括第二相应区域320的第二参考画面两者可在时间上均位于包括当前块300的当前画面之后。
[0292] 在这种情况下,可根据等式10确定当前像素的预测像素值P(0),在等式10中,用-τ0代替了在参照图3a所示的等式8中指示第一参考画面和当前画面之间的时间距离的τ0。
[0293] [等式10]
[0294]
[0295] 然而,当如图3b和图3c所示第一参考画面和第二参考画面两者在时间上均位于当前画面之前或者在当前画面之后时,像素组单位运动补偿可在第一参考画面和第二参考画面不是同一参考画面时被执行。此外,在这种情况下,可仅在双向运动矢量MV1和MV2均具有非零分量时执行像素组单位运动补偿。此外,在这种情况下,可仅在运动矢量MV1和MV2的比率跟第一参考画面和当前画面之间的时间距离与第二参考画面和当前画面之间的时间距离的比率相同时执行像素组单位运动补偿。例如,当运动矢量MV1的x分量与运动矢量MV2的x分量的比率跟运动矢量MV1的y分量与运动矢量MV2的y分量的比率相同,并且跟第一参考画面和当前画面之间的时间距离τ0与第二参考画面和当前画面之间的时间距离τ1的比率相同时,可执行像素组单位运动补偿。
[0296] 图4是用于描述根据实施例的计算在水平方向和垂直方向上的梯度值的处理的参考图。
[0297] 参照图4,可通过获得在水平方向上与第一参考像素P0(i,j)410相邻的邻近分数像素位置处的像素值的变化以及在垂直方向上与第一参考像素P0(i,j)410相邻的邻近分数像素位置处的像素值的变化来计算第一参考画面的第一参考像素P0(i,j)410在水平方向上的梯度值 和第一参考像素P0(i,j)410在垂直方向上的梯度值 也就是说,根据等式11,可通过计算在水平方向上与P0(i,j)相距h的分数像素P0(i-h,j)460和分数像素P0(i+h,j)470的像素值的变化来计算水平方向上的梯度值 其中,h是小于1的分数值,并且可通过计算在垂直方向上与P0(i,j)相距h的分数像素P0(i,j-h)480和分数像素P0(i,j+h)490的像素值的变化来计算垂直方向上的梯度值
[0298] [等式11]
[0299]
[0300]
[0301] 可通过使用通用插值来计算分数像素P0(i-h,j)460、P0(i+h,j)470、P0(i,j-h)480和P0(i,j+h)490的像素值。此外,还可与等式11类似地计算另一第二参考画面的第二参考像素在水平方向和垂直方向上的梯度值。
[0302] 根据实施例,可通过使用预定滤波器来计算参考像素处的梯度值,来代替如等式11中那样通过计算分数像素位置处的像素值的变化来计算梯度值。根据滤波器的线性度,可基于用于获得分数像素位置处的像素值的插值滤波器的系数确定预定滤波器的滤波器系数。
[0303] 图5是用于描述根据另一实施例的计算在水平方向和垂直方向上的梯度值的处理的参考图。
[0304] 根据另一实施例,可通过将预定滤波器应用于参考画面的像素来确定梯度值。参照图5,视频解码设备100可基于将被获得当前水平梯度值的参考像素P0 500通过将预定滤波器应用于Mmax个左侧像素520和|Mmin|个右侧像素510来计算参考像素P0 500在水平方向上的梯度值。可根据如图7a至图7d所示的指示用于确定窗口尺寸的Mmax个整数像素和Mmin个整数像素之间的插值位置(分数pel位置)的值α来确定这里使用的滤波器系数。例如,参照图7a,当用于确定窗口尺寸的Mmin和Mmax分别为-2和3,并且与参考像素P0 500相距1/4,即α=1/4时,图7a的第二行中的滤波器系数{4,-17,-36,60,-15,4}被应用于邻近像素P-2、P-1、P0、P1、P2和P3。在这种情况下,可根据使用滤波器系数和邻近像素的加权和来计算参考像素P0 500在水平方向上的梯度值 诸如等式类似地,还可通过根据插值位置以及用于确定窗口
尺寸的Mmin和Mmax将图7a至图7e中示出的滤波器系数应用于邻近像素来计算垂直方向上的梯度值。
[0305] 图6a至图6b是用于描述根据实施例的通过使用1D滤波器确定水平方向和垂直方向上的梯度值的处理的示图。
[0306] 参照图6a,可通过针对整数像素使用多个1D滤波器来执行滤波,以确定参考画面中的参考像素在水平方向上的梯度值。像素组单位运动补偿是在块单位运动补偿被执行之后执行的另外的运动补偿。因此,在块单位运动补偿期间由运动矢量指示的当前块的参考块的参考位置可以是分数像素位置,并且可对参考块中的分数像素位置处的参考像素执行像素组单位运动补偿。因此,考虑到确定了分数像素位置处的像素的梯度值,可执行滤波。
[0307] 参照图6a,首先,视频解码设备100可通过使用第一1D滤波器对位于从参考画面中的参考像素的邻近整数像素开始的水平方向或垂直方向上的像素执行滤波。同样地,视频解码设备100可通过使用第一1D滤波器对在与所述参考像素不同的行或列中的邻近整数像素执行滤波。视频解码设备100可通过使用第二1D滤波器对经由滤波生成的值执行滤波来生成参考像素在水平方向上的梯度值。
[0308] 例如,当参考像素的位置是(x+α,y+β)处的分数像素的位置(其中,x和y是整数并且α和β是分数)时,可通过对水平方向上的整数像素(x,y)、(x-1,y)、(x+1,y)至(x+Mmin,y)和(x+Mmax,y)(其中,Mmin和Mmax是整数)使用1D垂直插值滤波器,根据等式12执行滤波。
[0309] [等式12]
[0310]
[0311] 这里,fracFilterβ可指示用于确定垂直方向上的分数像素位置β处的像素值的插值滤波器,并且fracFilterβ[j']可指示将被应用于(i,j')位置处的像素的插值滤波器的系数。I[i,j']可指示(i,j')位置处的像素值。
[0312] 也就是说,第一1D滤波器可以是用于确定垂直方向上的分数像素值的插值滤波器。offset1可指示用于防止舍入误差的偏移,并且shift1可指示去缩放比特的数量。Temp[i,j+β]可指示分数像素位置(i,j+示)处的像素值。Temp[i',j+i](其中,i'是从i+Mmin到i+Mmax的除i之外的整数)也可根据等式12通过用i'替换i被确定。
[0313] 之后,视频解码设备100可通过使用第二1D滤波器对分数像素位置(i,j+分)处的像素值和分数像素位置(i',j+β)处的像素值执行滤波。
[0314] [等式13]
[0315]
[0316] 在这方面,gradFilterα可以是用于确定水平方向上的分数像素位置α处的梯度值的梯度滤波器。gradFilterα[i']可指示将被应用于(i',j+β)位置处的像素的插值滤波器的系数。也就是说,第二1D滤波器可以是用于确定水平方向上的梯度值的梯度滤波器。offset2可指示用于防止舍入误差的偏移,并且shift2可指示去缩放比特的数量。
[0317] 也就是说,根据等式13,视频解码设备100可通过使用梯度滤波器gradFilterα对像素位置(i,j+β)处的像素值(Temp[i,j+β]和位于从像素位置(i,j+β)开始的垂直方向上的像素值(Temp[i',j+β])执行滤波来确定在(i+α,j+β)处的水平方向上的梯度值[0318] 在上文中,通过首先应用插值滤波器然后应用梯度滤波器来确定水平方向上的梯度值,但是本公开不限于此,并且因此,可通过首先应用梯度滤波器然后应用插值滤波器来确定水平方向上的梯度值。在下文中,现在将描述通过应用梯度滤波器然后应用插值滤波器来确定水平方向上的梯度值的实施例。
[0319] 例如,当参考像素的位置是(x+α,y+β)(其中,x和y是整数并且α和β是分数)处的分数像素的位置时,可根据等式14通过针对水平方向上的整数像素(x,y)、(x-1,y)、(x+1,y)至(x+Mmin,y)和(x+Mmax,y)(其中,Mmin和Mmax是整数)使用第一1D滤波器来执行滤波。
[0320] [等式14]
[0321]
[0322] 在这方面,gradFilterα可指示用于确定水平方向上的分数像素位置α处的梯度值的梯度滤波器,并且gradFilterα[i']可指示将被应用于(i',j)位置处的像素的梯度滤波器的系数。I[i',j]可指示(i',j)位置处的像素值。
[0323] 也就是说,第一1D滤波器可以是用于确定水平方向上的像素的梯度值的插值滤波器,其中,像素位置的水平分量是分数位置。offset3可指示用于防止舍入误差的偏移,并且shift3可指示去缩放比特的数量。Temp[i+α,j]可指示水平方向上的像素位置(i+α,j)处的梯度值。Temp[i+α,j'](其中,j'是从j+Mmin至j+Mmax的除j之外的整数)也可根据等式14通过将j替换为j'被确定。
[0324] 然后,视频解码设备100可根据等式15,通过使用第二1D滤波器对水平方向上的像素位置(i+α,j)处的梯度值和水平方向上的像素位置(i+α,j')处的梯度值执行滤波。
[0325] [等式15]
[0326]
[0327] 在这方面,fracFilterβ可以是用于确定垂直方向上的分数像素位置β处的像素值的插值滤波器。fracFilterβ[j']可指示将被应用于(i+β,j')位置处的像素的插值滤波器的系数。也就是说,第二1D滤波器可以是用于确定垂直方向上的分数像素位置β处的像素值的插值滤波器。offset4可指示用于防止舍入误差的偏移,并且shift4可指示去缩放比特的数量。
[0328] 也就是说,根据等式15,视频解码设备100可通过使用梯度滤波器fracFilterβ对水平方向上的像素位置(i+α,j)处的梯度值(Temp[i+α,j])以及位于从像素位置(i+α,j)开始的垂直方向的像素在水平方向上的梯度值(Temp[i+α,j'])执行滤波来确定(i+α,j+β)处的水平方向上的梯度值
[0329] 参照图6b,可通过针对整数像素使用多个1D滤波器来执行滤波,以确定参考画面中的参考像素在垂直方向上的梯度值。像素组单位运动补偿是在块单位运动补偿被执行之后执行的另外的运动补偿。因此,在块单位运动补偿期间由运动矢量指示的当前块的参考块的参考位置可以是分数像素位置,并且可对参考块中的分数像素位置处的参考像素执行像素组单位运动补偿。因此,考虑到确定了分数像素位置处的像素的梯度值,可执行滤波。
[0330] 参照图6b,首先,视频解码设备100可通过使用第一1D滤波器对位于从参考画面中的参考像素的邻近整数像素开始的水平方向或垂直方向上的像素执行滤波。同样地,视频解码设备100可通过使用第一1D滤波器对与参考像素不同的行或列中的邻近像素执行滤波。视频解码设备100可通过使用第二1D滤波器对经由滤波生成的值执行滤波来生成参考像素在垂直方向上的梯度值。
[0331] 例如,当参考像素的位置是(x+α,y+β)处的分数像素的位置(其中,x和y是整数并且α和β是分数)时,可根据公式16,通过针对水平方向上的整数像素(x,y)、(x-1,y-1)、(x+1,y+1)至(x+Mmin,y+Mmin)和(x+Mmax,y+Mmax)(其中,Mmin和Mmax是整数)使用第一1D滤波器来执行滤波。
[0332] [等式16]
[0333]
[0334] 在这方面,fracFilterα可指示用于确定水平方向上的分数像素位置α处的像素值的插值滤波器,并且fracFilterα[i']可指示将被应用于(i',j)位置处的像素的插值滤波器的系数。I[i',j]可指示(i',j)位置处的像素值。
[0335] 也就是说,第一1D滤波器可以是用于确定水平方向上的分数像素位置α处的像素值的插值滤波器。offset5可指示用于防止舍入误差的偏移,并且shift5可指示去缩放比特的数量。
[0336] Temp[i+α,j]可指示分数像素位置(i+α,j)处的像素值。Temp[i+α,j'](其中,j'是从j+Mmin至j+Mmax的除j之外的整数)也可根据等式16通过将j替换为j'被确定。
[0337] 之后,视频解码设备100可根据等式17通过使用第二1D滤波器对像素位置(i+α,j)处的像素值和像素位置(i+α,j')处的像素值执行滤波。
[0338] [等式17]
[0339]
[0340] 在这方面,gradFilterβ可以是用于确定垂直方向上的分数像素位置β处的梯度值的梯度滤波器。gradFilterβ[j']可指示将被应用于(i+α,j')位置处的像素的插值滤波器的系数。也就是说,第二1D滤波器可以是用于确定分数像素位置β处的垂直方向上的梯度值的梯度滤波器。offset6可指示用于防止舍入误差的偏移,并且shift6可指示去缩放比特的数量。
[0341] 也就是说,根据等式17,视频解码设备100可通过使用梯度滤波器gradFilterβ对像素位置(i+α,j)处的像素值(Temp[i+α,j])以及位于从像素位置(i+α,j)开始的垂直方向上的像素值(Temp[i+α,j'])执行滤波来确定(i+α,j+β)处的垂直方向上的梯度值[0342] 根据前面的描述,通过首先应用插值滤波器然后应用梯度滤波器来确定垂直方向上的梯度值,但是本公开不限于此,并且因此,可通过首先应用梯度滤波器然后应用插值滤波器来确定垂直方向上的梯度值。在下文中,现在将描述通过应用梯度滤波器然后应用插值滤波器来确定垂直方向上的梯度值的实施例。
[0343] 例如,当参考像素的位置是(x+α,y+β)处的分数像素的位置(其中,x和y是整数并且α和β是分数)时,可根据等式18,通过针对垂直方向上的整数像素(x,y)、(x,y-1)、(x,y+1)至(x,y+Mmin)和(x,y+Mmax)(其中,Mmin和Mmax是整数)使用第一1D滤波器来执行滤波。
[0344] [等式18]
[0345]
[0346] 在这方面,gradFilterβ可指示用于确定垂直方向上的分数像素位置β处的梯度值的梯度滤波器,并且gradFilterβ[j']可指示将被应用于(i,j')位置处的像素的梯度滤波器的系数。I[i,j']可指示(i,j')位置处的像素值。
[0347] 也就是说,第一1D滤波器可以是用于确定垂直方向上的像素的梯度值的插值滤波器,其中,像素位置的垂直分量是分数位置。offset7可指示用于防止舍入误差的偏移,并且shift7可指示去缩放比特的数量。
[0348] Temp[i,j+β]可指示垂直方向上的像素位置(i,j+β)处的梯度值。Temp[i',j+β](其中,i'是从i+Mmin至i+Mmax的除i之外的整数)也可根据等式18通过用i'替换i被确定。
[0349] 之后,视频解码设备100可根据公式19,通过使用第二1D滤波器对垂直方向上的像素位置(i,j+β)处的梯度值和垂直方向上的像素位置(i',j+β)处的梯度值执行滤波。
[0350] [等式19]
[0351]
[0352] 在这方面,fracFilterα可以是用于确定水平方向上的分数像素位置α处的像素值的插值滤波器。fracFilterα[i']可指示将被应用于(i',j+β)位置处的像素的插值滤波器的系数。也就是说,第二1D滤波器可以是用于确定水平方向上的分数像素位置α处的像素值的插值滤波器。offset8可指示用于防止舍入误差的偏移,并且shift8可指示去缩放比特的数量。
[0353] 也就是说,根据等式19,视频解码设备100可通过使用梯度滤波器fracFilterα对垂直方向上的像素位置(i,j+β)处的梯度值(Temp[i,j+β])以及位于从像素位置(i,j+β)开始的水平方向的像素在垂直方向上的梯度值(Temp[i',j+β])执行滤波来确定(i+α,j+β)处的垂直方向上的梯度值
[0354] 根据实施例,在视频解码设备100中,可根据上述各种滤波器的组合来确定(i+α,j+β)处的水平方向和垂直方向上的梯度值。例如,为了确定水平方向上的梯度值,用于确定垂直方向上的像素值的插值滤波器可用作第一1D滤波器,并且用于确定水平方向上的梯度值的梯度滤波器可用作第二1D滤波器。用于确定垂直方向上的梯度值的梯度滤波器可用作第一1D滤波器,并且用于确定水平方向上的像素值的插值滤波器可用作第二1D滤波器。
[0355] 图7a至图7e是示出根据实施例的用于确定分数像素单位的分数像素位置处的像素值以及水平方向和垂直方向上的梯度值的滤波器的滤波器系数的表。
[0356] 图7a至图7b是示出用于确定水平方向或垂直方向上的1/4pel单位的分数像素位置处的梯度值的滤波器的滤波器系数的表。
[0357] 如上所述,1D梯度滤波器和1D插值滤波器可用于确定水平方向或垂直方向上的梯度值。参照图7a,示出了1D梯度滤波器的滤波器系数。在这方面,6抽头滤波器可用作1D梯度滤波器。1D梯度滤波器的滤波器系数可以是被缩放2^4倍的系数。Mmin指示中心整数像素的位置与在基于中心整数像素的被应用于滤波器的负方向上的整数像素之中的最远像素的位置之间的差,并且Mmax指示中心整数像素的位置与在基于中心整数像素的被应用于滤波器的正方向上的整数像素之中的最远像素的位置之间的差。例如,分数像素位置α在水平方向上是1/4的用于获得水平方向上的像素的梯度值的梯度滤波器系数可以是{4,-17,-36,60,-15,-4}。分数像素位置α在水平方向上是0、1/2或3/4的用于获得水平方向上的像素的梯度值的梯度滤波器系数也可通过参照图7a被确定。
[0358] 参照图7b,示出了1D插值滤波器的滤波器系数。在这方面,6抽头滤波器可用作1D插值滤波器。1D插值滤波器的滤波器系数可以是被缩放2^6倍的系数。Mmin指示中心整数像素的位置与在基于中心整数像素的被应用于滤波器的负方向上的整数像素之中的最远像素的位置之间的差,并且Mmax指示中心整数像素的位置与在基于中心整数像素的被应用于滤波器的正方向上的整数像素之中的最远像素的位置之间的差。
[0359] 图7c是示出用于确定1/4pel单位的分数像素位置处的像素值的1D插值滤波器的滤波器系数的表。
[0360] 如上所述,可在水平方向和垂直方向上使用两个相同的1D插值滤波器,以确定分数像素位置处的像素值。
[0361] 参照图7c,示出了1D插值滤波器的滤波器系数。在这方面,6抽头滤波器可用作1D插值滤波器。1D插值滤波器的滤波器系数可以是被缩放2^6倍的系数。Mmin指示中心整数像素的位置与在基于中心整数像素的被应用于滤波器的负方向上的整数像素之中的最远像素的位置之间的差,并且Mmax指示中心整数像素的位置与在基于中心整数像素的被应用于滤波器的正方向上的整数像素之中的最远像素的位置之间的差。
[0362] 图7d是示出用于确定1/16pel单位的分数像素位置处的水平方向或垂直方向上的梯度值的滤波器的滤波器系数的表。
[0363] 如上所述,1D梯度滤波器和1D插值滤波器可用于确定水平方向或垂直方向上的梯度值。参照图7d,示出了1D梯度滤波器的滤波器系数。在这方面,6抽头滤波器可用作1D梯度滤波器。1D梯度滤波器的滤波器系数可以是被缩放2^4倍的系数。例如,分数像素位置α在水平方向上是1/16的用于获得水平方向上的像素的梯度值的梯度滤波器系数可以是{8,-32,-13,50,-18,5}。分数像素位置α在水平方向上是0、1/8、3/16、1/4、5/16、3/8、7/16或1/2的用于获得水平方向上的像素的梯度值的梯度滤波器系数也可通过参照图7d被确定。分数像素位置α在水平方向上是9/16、5/8、11/16、3/4、13/16、7/8或15/16的用于获得水平方向上的像素的梯度值的梯度滤波器系数可通过使用基于α=1/2的滤波器系数的对称性被确定。也就是说,基于α=1/2的右侧分数像素位置处的滤波器系数可通过使用如图7d所示的基于α=1/2的左侧分数像素位置处的滤波器系数被确定。例如,α=15/16处的滤波器系数可通过使用作为基于α=1/2的对称位置的α=1/16处的滤波器系数{8,-32,-13,50,-18,5}被确定。也就是说,通过按照相反的顺序排列{8,-32,-13,50,-18,5}可将α=15/16处的滤波器系数确定为{5,-18,50,-13,-32,8}。
[0364] 参照图7e,示出了1D插值滤波器的滤波器系数。在这方面,6抽头滤波器可用作1D插值滤波器。1D插值滤波器的滤波器系数可以是被缩放2^6倍的系数。例如,分数像素位置α在水平方向上是1/16的用于获得水平方向上的像素的像素值的1D插值滤波器系数可以是{1,-3,64,4,-2,0}。分数像素位置α在水平方向上是0、1/8、3/16、1/4、5/16、3/8、7/16或1/2的用于获得水平方向上的像素的像素值的插值滤波器系数也可通过参照图7e被确定。另外,分数像素位置α在水平方向上是9/16、5/8、11/16、3/4、13/16、7/8或15/16的用于获得水平方向上的像素的像素值的插值滤波器系数可通过使用基于α=1/2的滤波器系数的对称性被确定。也就是说,基于α=1/2的右侧分数像素位置处的滤波器系数可通过使用如图7e所示的基于α=1/2的左侧分数像素位置处的滤波器系数被确定。例如,α=15/16处的滤波器系数可通过使用作为基于α=1/2的对称位置的α=1/16处的滤波器系数{1,-3,64,4,-2,0}被确定。也就是说,通过按照相反的顺序排列{1,-3,64,4,-2,0}可将α=15/16处的滤波器系数确定为{0,-2,4,64,-3,1}。
[0365] 图8a是用于描述根据实施例的确定关于像素的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0366] 参照图8a,具有预定尺寸的窗口Ωij 800针对当前块的被双向预测的像素P(i,j)具有(2M+1)*(2N+1)(其中,M和N是整数)的尺寸。
[0367] 当P(i',j')表示在窗口Ωij 800中被双向预测的当前块的像素(其中,i-M≤i'≤i+M且j-N≤j'≤j+N,(i',j')∈Ωij)时,P0(i',j')指示第一参考画面810的与被双向预测的当前块的像素P(i',j')相应的第一参考像素的像素值,P1(i',j')指示第二参考画面820的与被双向预测的当前块的像素P(i',j')相应的第二参考像素的像素值, 指示第一参考像素在水平方向上的梯度值, 指示第一参考像素在垂直方向上的梯度值,指示第二参考像素在水平方向上的梯度值,并且 指示第二参考像素在垂直方向上的梯度值,第一位移相应像素PA'和第二位移相应像素PB'可根据等式20被确定。在这方面,第一位移相应像素PA'和第二位移相应像素PB'可通过使用局部泰勒展开的第一个线性项被确定。
[0368] [等式20]
[0369]
[0370]
[0371] 在等式20中,x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy可根据像素P(i,j)的位置而改变(即,取决于(i,j)),因此,位移矢量Vx和Vy可被表示为Vx(i,j)和Vy(i,j)。
[0372] 第一位移相应像素PA'和第二位移相应像素PB'之间的差值△i'j'可根据等式21被确定。
[0373] [等式21]
[0374]
[0375] 使第一位移相应像素PA'和第二位移相应像素PB'之间的差值△i'j'最小化的x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy可通过使用如等式22中的差值△i'j'的平方和Φ(Vx,Vy)被确定。
[0376] [等式22]
[0377]
[0378] 也就是说,可通过使用Φ(Vx,Vy)的最大值或最小值来确定位移矢量Vx和Vy。Φ(Vx,Vy)指代位移矢量Vx和Vy是参数的函数,并且,可通过以下操作来确定最大值或最小值:计算通过根据等式23使关于τVx和τVy整理的Φ(Vx,Vy)相对于τVx和τVy进行偏微分变为0的值。在下文中,为了便于计算,假设τ0和τ1等于τ。
[0379] [等式23]
[0380]
[0381] 如等式24中的Vx(i,j)和Vy(i,j)作为变量的两个线性等式可通过使用等式和等式 被获得。
[0382] [等式24]
[0383] τVx*s1+τVy(i,j)*s2=s3
[0384] τVx*s4+τVy(i,j)*s5=s6
[0385] 在等式24中,根据等式25计算s1至s6。
[0386] [等式25]
[0387]
[0388]
[0389]
[0390]
[0391]
[0392] 通过求解等式24的联立方程,可基于克莱默公式根据τ*Vx(i,j)=-det1/det和τ*Vy(i,j)=-det2/det来计算Vx(i,j)和Vy(i,j)的值。在这方面,det1=s3*s5-s2*s6,det2=s1*s6-s3*s4,det=s1*s5-s2*s2。
[0393] 可通过首先在水平方向上执行最小化然后在垂直方向上执行最小化确定上述等式的简化解。也就是说,例如,当假设仅改变水平方向上的位移矢量时,在等式24的第一等式中,Vy可以是0,因此可确定等式τVx=s3/s1。
[0394] 然后,当等式24的第二等式通过使用等式τVx=s3/s1被整理时,可确定等式τVy=(s6-τVx*S2)/s5。
[0395] 在这方面,梯度值 和 可在不改变结果值Vx(i,j)和Vy(i,j)的情况下被缩放。然而,前提是不会发生溢出并且不产生舍入误差。
[0396] 当计算Vx(i,j)和Vy(i,j)时,可引入调节参数r和m以防止执行除以0或非常小的值的除法运算。
[0397] 为方便起见,假设Vx(i,j)和Vy(i,j)与图3a中所示的方向相反。例如,除了符号之外,基于图3a中所示的Vx(i,j)和Vy(i,j)的方向由等式24推导出的Vx(i,j)和Vy(i,j)可具有与被确定为与图3a的方向相反的Vx(i,j)和Vy(i,j)相同的值。
[0398] 可根据等式26确定第一位移相应像素PA'和第二位移相应像素PB'。在这方面,可通过使用局部泰勒展开的第一个线性项来确定第一位移相应像素PA'和第二位移相应像素PB'。
[0399] [等式26]
[0400]
[0401]
[0402] 可根据等式27确定第一位移相应像素PA'和第二位移相应像素PB'之间的差值△i'j'。
[0403] [等式27]
[0404]
[0405]
[0406] 可通过使用如等式28中的差值△的平方和Φ(Vx,Vy)来确定使第一位移相应像素PA'和第二位移相应像素PB之间的差值△i'j'最小化的x轴方向上的位移矢量Vx和y轴方向上的位移矢量Vy。也就是说,当Φ(Vx,Vy)如公式29中那样最小时的位移矢量Vx和Vy可被确定,并且可通过使用Φ(Vx,Vy)的最大值或最小值被确定。
[0407] [等式28]
[0408]
[0409] [等式29]
[0410] (Vx,Vy)=argminVx,VyΦ(Vx,Vy)
[0411] Φ(Vx,Vy)是位移矢量Vx和Vy作为参数的函数,并且,可通过计算如等式30中使Φ(Vx,Vy)相对于位移矢量Vx和Vy进行偏微分而变为0的值来确定所述最大值或最小值。
[0412] [等式30]
[0413]
[0414] 也就是说,使Φ(Vx,Vy)的值最小化的位移矢量Vx和Vy可被确定。为了解决优化问题,可首先在垂直方向上执行最小化,然后可首先在水平方向上执行最小化。根据最小化,可根据等式31确定位移矢量Vx。
[0415] [等式31]
[0416]
[0417] 在这方面,函数clip3(x,y,z)是这样的函数:当zy时,该函数输出y,当xm时,位移矢量Vx可以是clip3(-thBIO,thBIO,-s3/(s1+r)),并且当s1+r≤m时,位移矢量Vx可以是0。
[0418] 根据最小化,可根据等式32确定位移矢量Vy。
[0419] [等式32]
[0420]
[0421] 在这方面,函数clip3(x,y,z)是这样的函数:当zy时,该函数输出y,当xm时,位移矢量Vy可以是clip3(-thBIO,thBIO,-(s6-Vx*s2/2/(s5+r)),并且当s5+r≤m时,位移矢量Vy可以是0。
[0422] 在这方面,可根据等式33确定s1、s2、s3和s5。s4可具有与s2的值相同的值。
[0423] [等式33]
[0424]
[0425]
[0426]
[0427]
[0428]
[0429] 如上所述,r和m可以是被引入以避免除法运算的结果值为0或小于0的调节参数,并且可基于输入视频的内部比特深度d根据等式34被确定。也就是说,调节参数m可以是最小允许分母,并且调节参数r可以是被引入以防止当梯度值为0时通过将0用作分母来执行除法的调节参数。
[0430] [等式34]
[0431] r=500*4d-8
[0432] m=700*4d-8
[0433] 位移矢量Vx和Vy可具有上限和下限±thBIO。因为可能存在像素组单位运动补偿由于噪声或不规则运动而不可靠的情况,所以位移矢量Vx和Vy可由特定阈值thBIO限幅。可基于所有参考画面的方向是否相同来确定调节参数thBIO。例如,当所有参考画面的方向相同时,可将调节参数thBIO确定为12^(d-8-1)或12*2^(14-d)。当所有参考画面的方向不同时,可将调节参数thBIO确定为12^(d-8-1)/2或12*2^(13-d)。
[0434] 然而,本公开不限于此,并且可基于从比特流获得的关于调节参数的信息来确定调节参数r、m和thBIO的值。在这方面,关于调节参数的信息可被包括在条带头、画面参数集、序列参数集或各种高级语法载体中。
[0435] 此外,可根据时间上不同的双向预测是否可用来确定调节参数。例如,在时间上不同的双向预测可用的情况下的调节参数thBIOdiff大于在时间上相同的双向预测不可用的情况下的调节参数thBIOsame,并且调节参数thBIOdiff的值可以是调节参数thBIOsame的值的两倍。
[0436] 图8b是用于描述根据实施例的确定关于像素组的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0437] 参照图8b,具有预定尺寸的窗口Ωij 810针对尺寸为K×K且包括当前块中的多个像素的像素组820(而不是针对被双向预测的像素)具有(2M+K+1)*(2N+K+1)(其中,M和N是整数)的尺寸。
[0438] 在这方面,与图8a不同的是,窗口的尺寸增大,并且除了该区别之外,可按照与图8a相同的方式确定针对像素组的水平方向位移矢量和垂直方向位移矢量。
[0439] 图8c是用于描述根据实施例的确定关于像素的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0440] 参照图8c,视频解码设备100可确定关于每个像素830的水平方向位移矢量和垂直方向位移矢量。因此,可确定关于每个像素830在每单位时间的位移矢量835。在这方面,可根据等式35确定关于每个像素830在每单位时间的位移矢量835的水平方向位移矢量Vx[i,j]和垂直方向位移矢量Vy[i,j]。在这方面,i和j可指示像素的坐标的x分量和y分量。此外,σ1[i,j]、σ2[i,j]、σ3[i,j]、σ5[i,j]和σ6[i,j]可分别是等式33的s1、s2、s3、s5和s6。
[0441] [等式35]
[0442]
[0443]
[0444] 图8d是用于描述根据实施例的确定关于像素组的水平方向位移矢量和垂直方向位移矢量的处理的参考图。
[0445] 参照图8d,视频解码设备100可根据上述等式35确定关于每个像素组840中包括的每个像素的σ1[i,j]、σ2[i,j]、σ3[i,j]、σ5[i,j]和σ6[i,j]。
[0446] 视频解码设备100可根据等式36通过使用像素的σ1[i,j]和σ3[i,j]来确定关于每个像素组840的水平方向位移矢量Vx[i,j]。在这方面,i和j可指示像素组的左上坐标的x分量和y分量。
[0447] [等式36]
[0448]
[0449] 视频解码设备100可通过使用计算水平方向位移矢量的类似方法来计算像素组的垂直方向位移矢量。也就是说,可通过向分母添加变量并且通过向分子添加变量来计算像素组的垂直方向位移矢量,其中,添加到分母的变量由关于每个像素的分母使用以计算像素组的垂直方向位移矢量,添加到分子的变量由关于每个像素的分子使用以计算像素组的垂直方向位移矢量。
[0450] 视频解码设备100可根据等式37通过使用像素的σ2[i,j]、σ5[i,j]、σ6[i,j]和Vx[i,j]来确定关于每个像素组840的垂直方向位移矢量Vy[i,j]。在这方面,水平方向位移矢量V x[i,j]可根据等式36被确定。
[0451] [等式37]
[0452]
[0453] 如图8c所示,当针对每个像素确定水平方向位移矢量和垂直方向位移矢量时,必须对每个像素执行两次除法运算。然而,如图8d所示,在针对每个组确定水平方向位移矢量和垂直方向位移矢量的情况下,当像素组的尺寸是L×L(其中,L是整数)时,必须对每个像素执行2/(L^2)除法运算。因此,当针对每个组确定水平方向位移矢量和垂直方向位移矢量时,减少了所需的除法运算的次数,使得可降低硬件复杂度并且可减少计算时间。
[0454] 在上文中,参照图8d详细描述了像素组具有2×2的尺寸,但是本公开不限于此,并且因此,像素组可具有L×L的尺寸(其中,L是整数)。
[0455] 在这方面,可根据等式38确定像素组的尺寸L。W和H可分别指代当前块的宽度和高度。
[0456] [等式38]
[0457]
[0458] 在视频解码设备100将像素组单位运动补偿与通过窗口尺寸的块扩大一起执行,并且视频解码设备100仅执行像素组单位运动补偿时,视频解码设备100可执行与根据下面表1的每种情况的存储器访问次数和乘法运算次数一样多的存储器访问操作和乘法运算。在这方面,假设信号滤波器的长度T是8,梯度滤波器的长度T是6,像素组的尺寸是L×L,块的尺寸是N×N,并且每个像素的窗口尺寸2M+1是5。
[0459] [表1]
[0460]
[0461] 也就是说,当视频解码设备100执行像素组单位运动补偿时,视频解码设备100可通过将除法运算的次数减少通过将与像素组的尺寸相应的值除以L^2而获得的值来执行除法运算。
[0462] 图9a是用于描述根据实施例的在执行滤波之后添加偏移值并且通过执行去缩放来确定水平方向或垂直方向上的梯度值的处理的示图。
[0463] 参照图9a,视频解码设备100可通过使用第一1D滤波器和第二1D滤波器对预定方向分量处于整数位置的像素执行滤波来确定水平方向或垂直方向上的梯度值。然而,通过使用第一1D滤波器或第二1D滤波器对预定方向分量处于整数位置的像素执行滤波而获得的值可能超出预定范围。这种现象被称为溢出现象。可将1D滤波器的系数确定为用于执行整数运算(而非不准确且复杂的分数运算)的整数。1D滤波器的系数可被缩放以被确定为整数。当通过使用经缩放的1D滤波器的系数执行滤波时,可执行整数运算,但是与通过使用未被缩放的1D滤波器的系数执行滤波的情况相比,已被执行了滤波的值会增大,使得可能发生溢出现象。因此,为了防止溢出现象,可在通过使用1D滤波器执行滤波之后执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量向右比特移位。在使计算的准确性最大化的同时,可基于用于滤波操作的寄存器的最大比特数和存储滤波操作结果的临时缓冲器的最大比特数来确定去缩放比特的数量。具体地,去缩放比特的数量可基于内部比特深度、插值滤波器的缩放比特数和梯度滤波器的缩放比特数被确定。
[0464] 在下文中,将描述在通过以下方式生成垂直方向上的经插值滤波的值的处理期间执行去缩放的处理:首先通过使用垂直方向的插值滤波器对整数位置处的像素执行滤波以确定水平方向上的梯度值,然后通过使用水平方向的梯度滤波器对垂直方向上的经插值滤波的值执行滤波。
[0465] 根据上述等式12,视频解码设备100可首先通过使用垂直方向的插值滤波器对整数位置处的像素执行滤波以确定水平方向上的梯度值。在这方面,shift1可被确定为b-8。在这方面,b可指示输入图像的内部比特深度。在下文中,参照表2,现在将描述当基于shift1实际执行去缩放时寄存器的比特深度(Reg Bitdepth)和临时缓冲器的比特深度(Temp Bitdepth)。
[0466] [表2]
[0467]
[0468]
[0469] 在这方面,可根据等式39确定表2中的变量的值。
[0470] [等式39]
[0471] RegMin=Min(I)*FilterSumPos+Max(I)*FilterSumNeg
[0472] RegMax=Max(I)*FilterSumPos+Min(I)*FilterSumNeg
[0473] Reg BitDepth=ceiling(log2(RegMax-RegMin)+1)
[0474] TempMin=(RegMin+offset1)>>shift1
[0475] TempMax=(RegMax+offset1)>>shift1
[0476] Temp BitDepth=ceiling(log2(TempMax-TempMin)+1)
[0477] 在这方面,Min(I)可指示由内部比特深度确定的像素值I的最小值,并且Max(I)可指示由内部比特深度确定的像素值I的最大值。FilterSumPos指示正滤波器系数之和的最大值,FilterSumNeg指示负滤波器系数之和的最小值。
[0478] 例如,当假设使用图7c中的以1/4pel为单位的梯度滤波器FracFilter时,FilterSumPos可以是88并且FilterSumNeg可以是-24。
[0479] 函数Ceiling(x)可以是关于实数x的输出等于或大于x的整数之中的最小整数的函数。offset1是与已被执行了滤波的值相加以防止在通过使用shift1执行去缩放时可能发生的舍入误差的偏移值,并且offset1可被确定为2^(shift1-1)。
[0480] 参照表2,当内部比特深度b是8时,寄存器的比特深度(Reg Bitdepth)可以是16,当内部比特深度b是9时,寄存器的比特深度可以是17,当内部比特深度b是10、11、12和16时,寄存器的比特深度可以是18、19、20和24。当用于执行滤波的寄存器是32位寄存器时,因为表2中所有寄存器的比特深度不超过32,所以不会发生溢出现象。
[0481] 同样地,当内部比特深度b是8、9、10、11、12和16时,临时缓冲器的比特深度(Temp BitDepth)都是16。当用于存储被执行了滤波然后被执行去缩放的值的临时缓冲器是16位缓冲器时,因为表2中的所有临时缓冲器的比特深度是16并且因此不超过16,所以不会发生溢出现象。
[0482] 根据等式12,视频解码设备100可通过首先使用垂直方向插值滤波器对整数位置处的像素执行滤波来生成垂直方向上的经插值滤波的值以便确定水平方向上的梯度值,然后可根据等式13通过使用水平方向的梯度滤波器对垂直方向上的经插值滤波的值执行滤波。在这方面,可将shift2确定为p+q-shift1。在这方面,p可指示针对包括图7c中所示的滤波器系数的插值滤波器被缩放的比特数,并且q可指示针对包括图7a中所示的滤波器系数的梯度滤波器被缩放的比特数。例如,p可以是6,并且q可以是4,因此,shift2=18-b。
[0483] 如上所述确定shift2的原因是因为shift1+shift2(即去缩放比特数量的总和)应该等于针对滤波器被放大的比特数量的总和(p+q),使得即使在滤波器系数被放大以及滤波器系数未被放大的情况下,最终滤波结果值也是相同的。
[0484] 在下文中,现在将参照表3描述当基于shift2实际执行去缩放时寄存器的比特深度(Reg Bitdepth)和临时缓冲器的比特深度(Temp Bitdepth)。
[0485] [表3]
[0486]
[0487] 在这方面,表3中的变量的值可根据等式40被确定。
[0488] [等式40]
[0489] RegMin=TempMin*FilterSumPos+TempMax*FilterSumNeg
[0490] RegMax=TempMax*FilterSumPos+TempMin*FilterSumNeg
[0491] Reg BitDepth=ceiling(log2(RegMax-RegMin)+1)
[0492] TempMin=(RegMin+offset2)>>shift2
[0493] TempMax=(RegMax+offset2)>>shift2
[0494] Temp BitDepth=ceiling(log2(TempMax-TempMin)+1)
[0495] 在这方面,TempMax可指示表3的TempMax,并且TempMin可指示表的TempMin。FilterSumPos指示正滤波器系数之和的最大值,并且FilterSumNeg指示负滤波器系数之和的最小值。例如,当假设使用图7c中所示的以1/4pel为单位的梯度滤波器gradFilter时,FilterSumPos可以是68并且FilterSumNeg可以是-68。
[0496] offset2是与已被执行了滤波的值相加以防止在通过使用shift2执行去缩放时可能发生的舍入误差的偏移值,并且offset2可被确定为2^(shift2-1)。
[0497] shift1和shift2可如上所述被确定,但是本公开不限于此,并且因此,shift1和shift2可按照这样的方式被不同地确定:shift1和shift2的总和可等于针对滤波器的缩放比特数的总和。在这方面,shift1和shift2的值可基于不发生溢出现象的前提被确定。shift1和shift2可基于输入图像的内部比特深度和针对滤波器的缩放比特数被确定。
[0498] 然而,shift1和shift2可不必被确定为使shift1和shift2的总和等于针对滤波器的缩放比特数的总和。例如,shift1可被确定为d-8,并且shift2可被确定为固定数。
[0499] 当shift1与先前相同并且shift2是固定数7时,可改变参照表3描述的OutMax、OutMin和Temp Bitdepth。在下文中,现在将参照表4描述临时缓冲器的比特深度(Temp Bitdepth)。
[0500] [表4]
[0501]b OutMax OutMin Temp Bitdepth
8 15173 -15174 16
9 15203 -15204 16
10 15218 -15219 16
11 15225 -15226 16
12 15229 -15230 16
16 15233 -15234 16
[0502] 与表3不同,在表4中,临时缓冲器的比特深度(Temp Bitdepth)在所有b中等于16,并且当假设通过使用16位临时缓冲器存储结果数据时,临时缓冲器的比特深度(Temp Bitdepth)小于16,使得对于所有输入图像的内部比特深度不会发生溢出现象。另一方面,参照表3,在输入图像的内部比特深度为12和16的情况下,当假设通过使用16位临时缓冲器存储结果数据时,临时缓冲器的比特深度(Temp Bitdepth)大于16,使得可能发生溢出现象。
[0503] 当shift2是固定数时,通过在不使用被缩放的滤波器系数的情况下执行滤波而获得的结果值可与通过使用被缩放的滤波器系数执行滤波然后执行去缩放而获得的结果值不同。在这种情况下,对于本领域普通技术人员显而易见的是,需要另外执行去缩放。
[0504] 在上文中,已经描述了在以下处理期间执行去缩放的处理:首先使用垂直方向插值滤波器对整数位置处的像素执行滤波来产生垂直方向上的经插值滤波的值以便确定水平方向上的梯度值,然后通过使用水平方向的梯度滤波器对垂直方向上的经插值滤波的值执行滤波,但是对于本领域普通技术人员显而易见的是,当对预定方向分量是整数的像素执行滤波时,可按照相似的方式来执行去缩放,以经由各种1D滤波器的组合来确定水平方向和垂直方向上的梯度值。
[0505] 图9b是用于描述根据另一实施例的在执行滤波之后添加偏移值的处理以及通过执行去缩放来确定水平方向或垂直方向上的梯度值的处理的示图。
[0506] 参照图9b,视频解码设备100可基于参考像素的分数像素和整数像素的输入来执行滤波。在这方面,假设参考画面的分数像素已通过对参考像素的整数像素应用水平方向和垂直方向上的1D滤波器被确定。
[0507] 视频解码设备100可通过使用水平方向或垂直方向上的1D滤波器对预定方向位置分量是分数的像素以及整数像素执行滤波来确定水平方向或垂直方向上的梯度值。然而,通过使用第一1D滤波器对预定方向位置分量是分数的像素以及整数像素执行滤波而获得的值可能超出预定范围。这种现象被称为溢出现象。可将1D滤波器的系数确定为用于执行整数运算(而非不准确且复杂的分数运算)的整数。1D滤波器的系数可被缩放以被确定为整数。当通过使用经缩放的1D滤波器的系数执行滤波时,可执行整数运算,但是与通过使用未被缩放的1D滤波器的系数执行滤波的情况相比,已被执行了滤波的值会增大,使得可能发生溢出现象。因此,为了防止溢出现象,可在通过使用1D滤波器执行滤波之后执行去缩放。在这方面,去缩放的步骤可包括按照去缩放比特的数量(shift1)向右比特移位。在使计算的准确性最大化的同时,可基于用于滤波操作的寄存器的最大比特数和存储滤波操作结果的临时缓冲器的最大比特数确定去缩放比特的数量。具体地,去缩放比特的数量可基于内部比特深度和梯度滤波器的缩放比特数被确定。
[0508] 图9c是用于描述在对当前块执行像素单位运动补偿的处理期间确定水平方向位移矢量和垂直方向位移矢量的必要范围的示图。
[0509] 参照图9c,在对与当前块相应的参考块910执行像素单位运动补偿的处理期间,视频解码设备100可通过使用在位于参考块910中左上方的像素915周围的窗口920来确定像素915处的水平方向上每单位时间的位移矢量和垂直方向上每单位时间的位移矢量。在这方面,可通过使用位于超出参考块910的范围内的像素的像素值和梯度值来确定水平方向或垂直方向上每单位时间的位移矢量。同样,在确定针对位于参考块910的边界处的像素的水平方向位移矢量和垂直方向位移矢量的处理期间,视频解码设备100可确定位于超出参考块910的范围内的像素的像素值和梯度值。因此,视频解码设备100可通过使用范围大于参考块910的块925来确定水平方向位移矢量和垂直方向位移矢量。例如,在当前块的尺寸是A×B,并且每个像素的窗口尺寸为(2M+1)×(2N+1)时,用于确定水平方向位移矢量和垂直方向位移矢量的范围的大小可以是(A+2M)×(B+2N)。
[0510] 图9d至图9e是根据各种实施例的用于确定在执行像素单位运动补偿的处理中使用的区域的范围的示图。
[0511] 参照图9d,在执行像素单位运动补偿的处理期间,视频解码设备100可基于块935,确定针对包括在参考块930中的每个像素的水平方向位移矢量和垂直方向位移矢量,其中,块935具有被扩大了位于参考块930的边界处的像素的窗口的尺寸的范围。然而,当确定水平方向位移矢量和垂直方向位移矢量时,视频解码设备100需要位于块935中的像素的像素值和梯度值,并且为了获得所述像素值和梯度值,视频解码设备100可使用插值滤波器或梯度滤波器。在对块935的边界像素使用插值滤波器或梯度滤波器的处理期间,可使用邻近像素的像素值,并且因此,可使用位于块边界外部的像素。因此,可通过使用块940来执行像素单位运动补偿,其中,块940的范围基于通过从插值滤波器或梯度滤波器的抽头的数量减去1而获得的值而另外地被扩大。因此,在块的尺寸是N×N,每个像素的窗口的尺寸是(2M+1)×(2M+1),并且插值滤波器或梯度滤波器的长度是T的情况下,块940的尺寸可以是(N+2M+T-1)×(N+2M+T-1)。
[0512] 参照图9e,在执行像素单位运动补偿的处理期间,视频解码设备100可在不基于位于参考块945的边界处的像素的窗口的尺寸扩大参考块945的情况下,通过使用位于参考块945中的像素的像素值和梯度值来确定关于每个像素的水平方向位移矢量和垂直方向位移矢量。将参照图9e描述由视频解码设备100执行的在不扩大参考块的情况下确定水平方向上每单位时间的位移矢量和垂直方向上每单位时间的位移矢量的特定处理。在这方面,可针对参考块945使用插值滤波器或梯度滤波器以获得像素的像素值和梯度值,并且可通过使用扩大的块950来执行像素单位运动补偿。因此,在块的尺寸为N×N,每个像素的窗口尺寸为(2M+1)×(2M+1),并且插值滤波器或梯度滤波器的长度为T的情况下,块950的尺寸可以是(N+T-1)×(N+T-1)。
[0513] 图9f是用于描述在不扩大参考块的情况下确定水平方向位移矢量和垂直方向位移矢量的处理的示图。
[0514] 参照图9f,对于位于参考块955的边界外部的像素,视频解码设备100可将所述像素的位置调整到最接近所述像素且在位于参考块955的边界内的像素之中的可用像素的位置,并且可将位于所述边界外部的像素的像素值和梯度值确定为在最近位置处的所述可用像素的像素值和梯度值。在这方面,视频解码设备100可根据等式i′=i′<O?O:i′;i′>H-1?H-1:i′和等式j′=j′O?O:j′;j′>W-1?W-1:j′将位于参考块955的边界外部的像素的位置调整到最近位置处的所述可用像素的位置。
[0515] 在这方面,i'可指示像素的x坐标值,j'可指示像素的y坐标值,并且H和W可指示参考块的高度和宽度。在这方面,假设参考块中的左上位置是(0,0)。当参考块中的左上位置是(xP,yP)时,最终像素的位置可以是(i'+xP,j'+yP)。
[0516] 参照回图9d,在被扩大了每个像素的窗口的尺寸的块935中并且位于参考块930的边界外部的像素的位置可被调整到与参考块930的边界内部相邻的像素的位置,因此,如图9e所示,视频解码设备100可通过使用参考块945的像素值和梯度值来确定关于参考块945中的每个像素的水平方向位移矢量和垂直方向位移矢量。
[0517] 因此,视频解码设备100在不将参考块945扩大每个像素的窗口的尺寸的情况下执行像素单位运动补偿,使得可减少用于参照像素值的存储器访问的次数,可减少乘法运算的次数,因此可降低运算中的复杂度。
[0518] 当视频解码设备100执行块单位运动补偿(如在根据高效视频编码(HEVC)标准的操作中)时、使用通过窗口尺寸的块扩大来执行像素单位运动补偿时、以及在不进行块扩大的情况下执行像素单位运动补偿时,视频解码设备100可执行与根据下面表5的每种情况的存储器访问次数和乘法运算次数一样多的存储器访问操作和乘法运算。在这方面,假设信号(插值)滤波器的长度是8,梯度滤波器的长度是6,块的尺寸是N×N,并且每个像素的窗口尺寸2M+1是5。
[0519] [表5]
[0520]
[0521] 在根据HEVC标准的块单位运动补偿中,8抽头插值滤波器用于一个样点,因此,需要8个邻近样点。因此,当参考块的尺寸是N×N时,8抽头插值需要(N+7)×(N+7)个参考样点,并且因为将执行双向运动预测补偿,所以将使用两个参考块,因此,在根据HEVC标准的块单位运动补偿中,需要进行2*(N+7)×(N+7)次存储器访问,如表5所示。在使用块扩大执行像素单位运动补偿的情况下,在M=2时,当通过使用8抽头插值滤波器或梯度滤波器对扩大后的尺寸为(N+4)×(N+4)的块执行像素单位运动补偿时,需要(N+4+7)×(N+4+7)个参考样点,并且因为将执行双向运动预测补偿,所以将使用两个参考块,因此,在使用块扩大执行的像素单位运动补偿中,如表5所示,需要进行2×(N+4+7)×(N+4+7)次存储器访问。
[0522] 在不使用块扩大执行像素单位运动补偿的情况下,因为不存在针对块的扩大,所以如根据HEVC标准的单位运动补偿中一样需要(N+7)×(N+7)个参考样点,并且因为将执行双向运动预测补偿,所以将使用两个参考块,因此,在不进行块扩大的情况下执行的像素单位运动补偿中,如表5所示,需要进行2*(N+7)×(N+7)次存储器访问。
[0523] 在根据HEVC标准的块单位运动补偿中,8抽头插值滤波器用于一个样点,因此,在水平方向上执行第一插值所需的样点是(N+7)×N样点。在垂直方向上执行第二插值所需的样点是N×N样点。每个8抽头插值滤波器所需的乘法运算的次数是8,并且因为将执行双向运动预测补偿,所以将使用两个参考块,因此,在根据HEVC标准的块单位运动补偿中,如表5所示,需要进行2*8*{(N+7)*N+N*N)}次乘法运算。
[0524] 在使用块扩大执行像素单位运动补偿的情况下,块的尺寸被扩大以执行像素单位运动补偿,因此,为了针对扩大后的尺寸为(N+4)×(N+4)的块通过使用8抽头插值滤波器来确定分数像素位置处的像素值,如表5所示,需要进行2*8*{(N+4+7)×(N+4)+(N+4)×(N+4)}的总和次乘法运算。
[0525] 在使用块扩大执行像素单位运动补偿的情况下,6抽头梯度滤波器和6抽头插值滤波器被用于确定水平方向或垂直方向上的梯度值。因为块的尺寸已被扩大,所以如表5所示,需要进行2*6*{(N+4+5)×(N+4)+(N+4)×(N+4)}*2的总和次乘法运算,以针对扩大后的尺寸为(N+4)×(N+4)的块通过使用6抽头梯度滤波器和6抽头插值滤波器来确定所述梯度值。
[0526] 在不使用块扩大执行像素单位运动补偿的情况下,因为不存在块扩大,所以如根据HEVC标准的块单位运动补偿中一样需要(N+7)×(N+7)个参考样点,并且因为将执行双向运动预测补偿,所以将使用两个参考块,因此,在不进行块扩大的情况下执行的像素单位运动补偿中,需要进行2*8*{(N+7)×N+N×N}的总和次乘法运算,以针对尺寸为N×N的块通过使用8抽头插值滤波器来确定分数像素位置处的像素值。
[0527] 当在不进行块扩大的情况下执行像素单位运动补偿时,6抽头梯度滤波器和6抽头插值滤波器被用于确定水平方向或垂直方向上的梯度值。为了针对尺寸为N×N的块通过使用6抽头梯度滤波器和6抽头插值滤波器来确定梯度值,如表5所示,需要进行2*6*{(N+5)×N+N×N}*2的总和次乘法运算。
[0528] 图9g至图9i是用于描述根据其他实施例的在不扩大参考块的情况下确定水平方向位移矢量和垂直方向位移矢量的处理的示图。
[0529] 如上参照图9d所述,在执行像素单位运动补偿的处理期间,视频解码设备100可基于块935确定参考块930中包括的每个像素的水平方向位移矢量和垂直方向位移矢量,其中,块935的范围被扩大了位于参考块930的边界处的像素的窗口的尺寸。例如,在窗口的尺寸是(2M+1)×(2M+1)的情况下,当所述窗口被应用于位于参考块930的边界处的像素时,视频解码设备100可通过参照超出参考块930达M的像素的像素值和梯度值来确定每个像素的水平方向位移矢量和垂直方向位移矢量。
[0530] 在下文中,现在将描述由视频解码设备100执行的根据另一实施例的通过仅使用与当前块相应的参考块的像素值和梯度值,而不参照参考块外部的像素的像素值和梯度值来确定用于确定关于每个像素的水平方向位移矢量和垂直方向位移矢量的值(等式33的s1至s6)的方法。这里,假设窗口的尺寸是5×5。为方便起见,现在仅描述关于当前像素位于水平方向上的像素。对于本领域普通技术人员显而易见的是,权重可针对关于当前像素位于垂直方向上的像素被相同地确定。
[0531] 视频解码设备100对关于以下项的函数执行计算:像素值(P0(i',j')和P1(i',j'))、水平方向或垂直方向上的梯度值( 和 )以及针对每个像素的当前画面的POC和参考画面的POC之间的差(τ0,τ1),其中,所述每个像素包括在关于水平方向位移矢量或垂直方向位移矢量将被确定的当前像素的窗口中,并且视频解码设备100通过将对每个像素执行的计算的结果值相加来确定用于确定关于每个像素的水平方向位移矢量和垂直方向位移矢量的值(等式33的s1至s6)。
[0532] 在这方面,视频解码设备100可通过向每个像素分配相同的权重,将所述权重乘以对每个像素执行的计算的每个结果值,然后通过对相乘后的值求和来确定用于确定关于每个像素的水平方向位移矢量和垂直方向位移矢量的值(等式33的s1至s6)。
[0533] 参照图9g,在确定关于当前块960中的当前像素961的水平方向位移矢量和垂直方向位移矢量的处理期间,视频解码设备100可确定窗口中的像素具有相同的权重1。视频解码设备100可通过将针对各个像素确定的权重乘以针对各个像素的各个计算的结果值,然后对其各个结果值进行求和来确定用于确定关于当前像素的水平方向位移矢量和垂直方向位移矢量的值(等式33的s1至s6)。
[0534] 参照图9h,在当前像素971在当前块970中紧邻当前块970的边界时,视频解码设备100可将用于像素的权重确定为3,该像素位于当前块970内部同时与当前块970的边界相邻。视频解码设备100可将用于其他像素973的权重确定为1。
[0535] 参照图9h,在当前像素981在当前块980中靠近当前块980的边界时(在当前像素981与所述边界相距一个像素时),视频解码设备100可将用于位于当前块980的边界外部的像素982的权重确定为0,并且可将用于与当前块980的边界紧邻的像素983的权重确定为2。
视频解码设备100可将用于其他像素984的权重确定为1。
[0536] 如参照图9g至图9i所述,视频解码设备100可通过根据当前像素的位置向窗口中的像素分配不同的权重,通过使用位于与当前块相应的参考块中的像素的像素值和梯度值,而不参照所述参考块外部的像素的像素值和梯度值来确定用于确定关于每个像素的水平方向位移矢量和垂直方向位移矢量的值(等式33的s1至s6)。
[0537] 图9j是用于描述根据实施例的在不扩大块的情况下通过参照参考块的像素值和梯度值通过在垂直方向和水平方向上应用指数平滑技术来确定关于每个像素的水平方向位移矢量和垂直方向位移矢量的处理的示图。
[0538] 参照图9j,视频解码设备100可对关于以下项的函数执行计算:相应参考块中包括的相应参考像素的像素值(P0(i',j')和P1(i',j'))、相应参考块的像素中包括的相应参考像素在水平方向或垂直方向上的梯度值以及关于当前块990中包括的每个像素的参考画面的POC与当前画面的POC之间的差(τ0,τ
1)。
[0539] 视频解码设备100可通过对当前像素的函数计算的结果值和邻近像素的函数计算的结果值进行求和来确定用于确定关于当前像素的水平方向位移矢量和垂直方向位移矢量的值(s1至s6;σk(k=1、2、3、4、5、6))。也就是说,用于确定关于当前像素的水平方向位移矢量和垂直方向位移矢量的值(s1至s6)可被表示为根据下面的等式41通过关于当前像素和邻近像素计算的值的加权平均值。在这方面,窗口Ω中包括的像素的位置坐标是(i',j')。此外,W[i',j']可指示用于窗口Ω中包括的像素的权重。在这方面,窗口Ω的尺寸可以是(2M+1)×(2M+1)(其中,M是整数)。此外,函数Ak[i',j']的值可以是关于以下项的函数的值:针对窗口Ω中包括的(i',j')位置处的像素的相应参考像素的像素值(P0(i',j')和P1(i',j'))、相应参考块的像素中包括的相应参考像素在水平方向或垂直方向上的梯度值(Ix,y[i',j'](0,1))以及参考画面的POC与当前画面的POC之间的差(τ0,τ1)。
[0540] [等式41]
[0541]
[0542] 例如,视频解码设备100可通过对当前像素的函数计算的结果值和关于当前像素的窗口中的像素的函数计算的结果值进行无变求和来确定用于确定关于当前像素的水平方向位移矢量和垂直方向位移矢量的值(s1至s6)。当假设窗口的尺寸是5×5时,需要参照关于针对像素991的窗口992中的像素的计算的结果值,以确定用于确定位于当前块990的边界处的像素991的水平方向位移矢量和垂直方向位移矢量所需的值,因此,需要参照关于与当前块990相比在水平方向和垂直方向上被扩大了2个像素的块996的像素的函数计算的结果值。可如下面的表6所示确定函数Ak[i',j']的值。
[0543] [表6]
[0544]
[0545] 在这方面,Ix(0)[i',j']和Ix(1)[i',j']可以分别是 和 Iy(0)[i',j']和Iy(1)[i',j']可以分别是 和 并且I(0)[i',j']和I(1)[i',
j']可以分别是P0(i',j')和P1(i',j')。
[0546] 视频解码设备100可通过在垂直方向和水平方向上将指数平滑技术应用于Ak[i',j']来执行平均,以确定关于Ak[i',j']的加权平均值。
[0547] 参照图9j,视频解码设备100可在水平方向上将指数平滑技术应用于Ak[i',j']。在下文中,现在将详细描述由视频解码设备100执行的通过在水平方向上将指数平滑技术应用于Ak[i',j']来确定关于Ak[i',j']的加权平均值的处理。
[0548] 首先,现在将描述视频解码设备100通过应用指数平滑技术在右方向上执行平均的内容。视频解码设备100可通过使用如下的伪代码1在右方向上对Ak[i',j']执行平均。在这方面,H可指示当前块的高度,W可指示当前块的宽度,并且Stride可指示1D阵列中的一行与下一行之间的距离。也就是说,二维(2D)阵列A[i,j]可被表示为1D阵列的A[i+j*Stride]。
[0549] [伪代码1]
[0550]
[0551] 例如,在当前块的尺寸是4×4,并且A[0]、A[1]、A[2]和A[3]是a、b、c和d时,使用伪代码1的处理的结果值可以是:A'[0]可以是2a,A'[1]可以是A[0]/2+b=a+b,A'[2]可以是A[1]/2+c=a/2+b/2+c,A'[3]可以是A[2]/2+d=a/4+b/4+c/2+d。
[0552] 在下文中,现在将描述视频解码设备100通过应用指数平滑技术在左方向上执行平均的内容。视频解码设备100可通过使用如下的伪代码2在左方向上对Ak[i',j']执行平均。在这方面,H可指示当前块的高度,W可指示当前块的宽度,并且Stride可指示1D阵列中的一行与下一行之间的距离。也就是说,2D阵列A[i,j]可被表示为1D阵列的A[i+j*Stride]。
[0553] [伪代码2]
[0554]
[0555] 例如,在当前块的尺寸是4×4,并且已在右方向上被平均的A'[0]、A'[1]、A'[2]和A'[3]是2a、a+b、a/2+b/2+c和a/4+b/4+c/2+d时,使用伪代码2的处理的结果值可以是:A[3]可以是2*A'[3]=a/2+b/2+c+2d,A[2]可以是A'[2]+A[3]/2=a/2+b/2+c+a/4+b/4+c/2+d=3a/4+3b/4+3c/2+d,A[1]可以是A'[1]+A[2]/2...,A[0]可以是A'[0]+A[1]/2。
[0556] 在下文中,现在将描述视频解码设备100通过应用指数平滑技术在向下方向上执行平均的内容。视频解码设备100可通过使用如下的伪代码3在向下方向上对Ak[i',j']执行平均。在这方面,H可指示当前块的高度,W可指示当前块的宽度,并且Stride可指示1D阵列中的一行与下一行之间的距离。也就是说,2D阵列A[i,j]可被表示为1D阵列的A[i+j*Stride]。
[0557] [伪代码3]
[0558]
[0559] 在下文中,现在将描述视频解码设备100通过应用指数平滑技术在向上方向上执行平均的内容。视频解码设备100可通过使用如下的伪代码4在向上方向上对Ak[i',j']执行平均。在这方面,H可指示当前块的高度,W可指示当前块的宽度,并且Stride可指示1D阵列中的一行与下一行之间的距离。也就是说,2D阵列A[i,j]可被表示为1D阵列的A[i+j*Stride]。
[0560] [伪代码4]
[0561]
[0562] 也就是说,视频解码设备100可通过使用指数平滑技术在垂直方向和水平方向上对Ak[i',j']执行平均,并且,通过执行平均被确定的每个像素的结果值可变为σk[i,j],其中,σk[i,j]是用于确定关于每个像素的水平方向位移矢量或垂直方向位移矢量所需的值。在这方面,当通过使用指数平滑技术执行平均时,当前像素具有关于当前像素的位置的最大权重,并且随着像素变得远离当前像素时,关于该像素的权重呈指数下降。
[0563] 因此,视频解码设备100可通过使用指数平滑技术在垂直方向和水平方向上对当前块990执行平均来确定σk[i,j],其中,σk[i,j]是用于确定关于每个像素的水平方向位移矢量或垂直方向位移矢量所需的加权平均值。也就是说,视频解码设备100可通过仅参照与当前块990相应的参考块的像素值和梯度值而无需参照与从当前块990扩大后的块996相应的参考块的像素值和梯度值来确定关于每个像素的水平方向位移矢量或垂直方向位移矢量。
[0564] 图9k是用于描述根据实施例的通过使用滤波器确定参考块中的参考像素在水平方向和垂直方向上的像素值和梯度值以对当前块执行运动补偿的处理的示图。
[0565] 参照图9k,视频解码设备100可通过使用与当前块相应的参考块中的参考像素的像素值和梯度值对当前块执行像素单位运动补偿和块单位运动补偿。因此,为了对当前块执行像素单位运动补偿和块单位运动补偿,必须确定与当前块相应的参考块中的参考像素的像素值和梯度值。在这方面,参考块中的参考像素的像素值和梯度值的单位可以是分数像素单位。例如,参考块中的参考像素的像素值和梯度值的单位可以是1/16pel单位。
[0566] 视频解码设备100可对参考块中的整数像素的像素值执行滤波,以确定参考块中的参考像素的分数像素单位的像素值和梯度值。
[0567] 首先,视频解码设备100可通过将水平8抽头信号滤波器(也称为插值滤波器)和垂直8抽头信号滤波器应用于参考块中的整数像素的像素值来确定参考块中的参考像素的像素值。
[0568] 视频解码设备100可通过将水平方向8抽头信号滤波器应用于参考块中的整数像素的像素值来执行滤波以确定在水平方向上具有分数像素单位的位置分量的参考像素的像素值,并且可将所确定的像素值存储在缓冲器中。视频解码设备100可通过将垂直方向8抽头信号滤波器应用于在垂直方向上具有整数单位的位置分量的参考像素的像素值来确定在垂直方向上具有分数像素单位的位置分量的参考像素的像素值。
[0569] 视频解码设备100可通过首先将垂直方向6抽头信号滤波器应用于参考块中的整数像素的像素值然后对其应用水平方向6抽头梯度滤波器来执行滤波以确定参考块中的参考像素在水平方向上的梯度值。
[0570] 也就是说,视频解码设备100可通过将垂直方向6抽头信号滤波器应用于参考块中的整数像素的像素值来执行滤波以确定在垂直方向上具有分数像素单位的位置分量的参考像素的像素值,并且可将确定的像素值存储在缓冲器中。
[0571] 视频解码设备100可通过将水平方向6抽头梯度滤波器应用于在水平方向上具有整数单位的位置分量的参考像素的像素值来确定在水平方向上具有分数像素单位的位置分量的参考像素在水平方向上的梯度值。
[0572] 视频解码设备100可通过首先将垂直方向6抽头信号滤波器应用于参考中的整数像素的像素值,然后对其应用水平方向6抽头梯度滤波器来执行滤波以确定参考块中的参考像素在水平方向上的梯度值。
[0573] 也就是说,视频解码设备100可通过将垂直方向6抽头信号滤波器应用于参考块中的整数像素的像素值来执行滤波以确定在垂直方向上具有分数像素单位的位置分量的参考像素的梯度值,并且可将确定的梯度值存储在缓冲器中。
[0574] 视频解码设备100可通过将水平方向6抽头梯度滤波器应用于在水平方向上具有整数单位的位置分量的参考像素在垂直方向上的梯度值来确定在水平方向上具有分数像素单位的位置分量的参考像素在垂直方向上的梯度值。
[0575] 也就是说,视频解码设备100可应用两个1D滤波器以分别确定参考块中的参考像素的像素值、参考块中的参考像素在水平方向上的梯度值以及参考块中的参考像素在垂直方向上的梯度值,并且在这方面,可对每个滤波器的系数和关于相应像素的值执行乘法运算。例如,为了确定参考块中的参考像素在水平方向上的梯度值,可使用6抽头信号滤波器和6抽头梯度滤波器,并且可对每个像素执行12次乘法运算。此外,为了确定参考块中的参考像素在垂直方向上的梯度值,可使用6抽头信号滤波器和6抽头梯度滤波器,并且可对每个像素执行12次乘法运算。
[0576] 图9l是用于描述根据另一实施例的通过使用滤波器确定参考块中的参考像素在水平方向和垂直方向上的像素值和梯度值以对当前块执行运动补偿的处理的示图。
[0577] 参照图9l,视频解码设备100可通过使用与当前块相应的参考块中的参考像素的像素值和梯度值对当前块执行像素单位运动补偿和块单位运动补偿。因此,为了对当前块执行像素单位运动补偿和块单位运动补偿,必须确定与当前块相应的参考块中的参考像素的像素值和梯度值。在这方面,参考块中的参考像素的像素值和梯度值的单位可以是分数像素单位。例如,参考块中的参考像素的像素值和梯度值的单位可以是1/16pel单位。
[0578] 视频解码设备100可对参考块中的整数像素的像素值执行滤波,以确定参考块中的参考像素的分数像素单位的像素值和梯度值。
[0579] 与关于图9k的描述不同,视频解码设备100可通过首先将水平8抽头信号滤波器和垂直8抽头信号滤波器应用于参考块中的整数像素的像素值,然后将水平5抽头梯度滤波器应用于参考块中的参考像素的像素值来确定参考块中的参考像素在水平方向上的梯度值。此外,视频解码设备100可通过将垂直5抽头梯度滤波器应用于参考块中的参考像素的像素值来确定参考块中的参考像素在垂直方向上的梯度值。
[0580] 视频解码设备100可通过应用两个1D信号(插值)滤波器确定具有分数像素单位的位置的参考像素的像素值,然后通过将两个1D梯度滤波器并行应用于分数像素单位的位置处的参考像素的像素值来确定参考块中的参考像素在水平方向或垂直方向上的梯度值。
[0581] 视频解码设备可根据下面的等式42通过将水平方向5抽头梯度滤波器(滤波器系数是{9,-48,0,48,9};但滤波器系数不限于此)应用于参考块中的参考像素的像素值来确定所述参考像素在水平方向上的梯度值Ix(k)。在这方面,k可具有0和1中的一个的值,其中,0和1分别指示参考画面0和1。I(k)[i,j]可以是在参考块中的参考像素的(i,j)位置处的像素值。i可指示像素在水平方向上的位置分量,j可指示像素在垂直方向上的位置分量,其中,i和j的单位是分数像素单位。
[0582] [等式42]
[0583] Ix(k)[i,j]=-9*(I(k)[i+2,j]-I(k)[i-2,j])+48*(I(k)[i+1,j]-I(k)[i-1,j])[0584] 因此,视频解码设备100可通过对每个样点仅执行两次乘法运算来确定参考块中的参考像素在水平方向上的梯度值Ix(k)。
[0585] 此外,视频解码设备100可通过将垂直方向5抽头梯度滤波器(其中,滤波器系数是{9,-48,0,48,9};但不限于此)应用于参考块中的参考像素的像素值来确定所述参考像素在垂直方向上的梯度值Iy(k)。在这方面,k可以具有0和1中的一个的值,其中,0和1分别指示参考画面0和1。I(k)[i,j]可以是在参考块中的参考像素的(i,j)位置处的像素值。i可指示像素在水平方向上的位置分量,j可指示像素在垂直方向上的位置分量,其中,i和j的单位是分数像素单位。
[0586] [等式43]
[0587] Iy(k)[i,j]=-9*(I(k)[i,j+2]-I(k)[i,j-2])+48*(I(k)[i,j+1]-I(k)[i,j-1])[0588] 因此,视频解码设备100可通过对每个样点仅执行两次乘法运算来确定参考块中的参考像素在垂直方向上的梯度值Iy(k)。
[0589] 当视频解码设备100使用根据窗口尺寸的块扩大来执行像素单位运动补偿,并通过减小梯度滤波器的长度来执行像素单位运动补偿时,视频解码设备100可执行与根据下面表7的每种情况的存储器访问次数和乘法运算次数一样多的存储器访问操作和乘法运算。在这方面,假设信号滤波器的长度T是8,梯度滤波器的长度T是6,减小后的梯度滤波器的长度T是5,块的尺寸是N×N,并且每个像素的窗口尺寸2M+1是5。
[0590] [表7]
[0591]
[0592] 也就是说,因为视频解码设备100根据等式41和42针对每个1D梯度滤波器执行两次乘法运算,梯度滤波器被应用于两个参考块,并且梯度滤波器被应用于基于窗口尺寸被扩大的尺寸为(N+4)×(N+4)的参考块,所以可执行总共2*2*{(N+4)×(N+4)}*2次乘法运算以确定参考像素在水平方向和垂直方向上的梯度值。
[0593] 当视频解码设备100使用根据窗口尺寸的块扩大执行像素单位运动补偿,以及在不进行块扩大的情况下通过减小梯度滤波器的长度来执行像素组单位运动补偿时,视频解码设备100可执行与根据下面表8的每种情况的存储器访问次数和乘法运算次数一样多的存储器访问操作和乘法运算。在这方面,假设信号滤波器的长度T是8,梯度滤波器的长度T是6,减小后的梯度滤波器的长度T是5,像素组的尺寸是L×L,块的尺寸是N×N,并且每个像素的窗口尺寸2M+1是5。
[0594] [表8]
[0595]
[0596] 因此,与在使用块扩大来执行像素单位运动补偿的情况下的存储器访问次数、乘法运算次数以及除法运算次数相比,在视频解码设备100通过减小梯度滤波器的长度而不使用块扩大来执行像素组单位运动补偿的情况下的存储器访问次数、乘法运算次数和除法运算次数可显著减少。
[0597] 在下文中,将参照图10至图23描述确定可在根据实施例的视频解码设备100对图像进行解码时使用的数据单元的方法。视频编码设备150的操作可与下面描述的视频解码设备100的操作的各种实施例相似或相反。
[0598] 图10示出了根据实施例的由视频解码设备100执行的通过对当前编码单元进行划分来确定至少一个编码单元的处理。
[0599] 根据实施例,视频解码设备100可通过使用块形状信息来确定编码单元的形状,并且可通过使用划分形状信息来确定编码单元的划分方法。也就是说,可基于由视频解码设备100使用的块形状信息所指示的块形状来确定由划分形状信息指示的编码单元划分方法。
[0600] 根据实施例,视频解码设备100可使用指示当前编码单元具有正方形形状的块形状信息。例如,视频解码设备100可基于划分形状信息来确定是否不对正方形编码单元进行划分,是否对正方形编码单元进行垂直划分,是否对正方形编码单元进行水平划分,或者是否将正方形编码单元划分成四个编码单元。参照图10,在当前编码单元1000的块形状信息指示正方形形状时,视频解码器100可基于指示不执行划分的划分形状信息来确定具有与当前编码单元1000相同尺寸的编码单元1010a不被划分,或者可确定基于指示预定划分方法的划分形状信息而被划分出的编码单元1010b、1010c或1010d。
[0601] 参照图10,根据实施例,视频解码设备100可基于指示沿垂直方向执行划分的划分形状信息,确定通过沿垂直方向对当前编码单元1000进行划分而获得的两个编码单元1010b。视频解码设备100可基于指示沿水平方向执行划分的划分形状信息,确定通过沿水平方向对当前编码单元1000进行划分而获得的两个编码单元1010c。视频解码设备100可基于指示沿垂直方向和水平方向执行划分的划分形状信息,确定通过沿垂直方向和水平方向对当前编码单元1000进行划分而获得的四个编码单元1010d。然而,正方形编码单元的划分方法不限于上述方法,并且划分形状信息可指示各种方法。下面将结合各种实施例详细描述对正方形编码单元进行划分的预定划分方法。
[0602] 图11示出了根据实施例的由视频解码设备100执行的通过对非正方形编码单元进行划分来确定至少一个编码单元的处理。
[0603] 根据实施例,视频解码设备100可使用指示当前编码单元具有非正方形形状的块形状信息。视频解码设备100可基于划分形状信息来确定是否不对非正方形的当前编码单元进行划分或者是否通过使用预定划分方法对非正方形的当前编码单元进行划分。参照图11,在当前编码单元1100或1150的块形状信息指示非正方形形状时,视频解码设备100可基于指示不执行划分的划分形状信息来确定具有与当前编码单元1100或1150相同尺寸的编码单元1110或1160不被划分,或者确定基于指示预定划分方法的划分形状信息而被划分出的编码单元1120a和1120b、1130a至1130c、1170a和1170b、或1180a至1180c。下面将结合各种实施例详细描述对非正方形编码单元进行划分的预定划分方法。
[0604] 根据实施例,视频解码设备100可通过使用划分形状信息来确定编码单元的划分方法,并且在这种情况下,划分形状信息可指示通过对编码单元进行划分而生成的一个或更多个编码单元的数量。参照图11,当划分形状信息指示将当前编码单元1100或1150划分成两个编码单元时,视频解码设备100可通过基于划分形状信息对当前编码单元1100或1150进行划分来确定包括在当前编码单元1100或1150中的两个编码单元1120a和1120b、或者是1170a和1170b。
[0605] 根据实施例,当视频解码设备100基于划分形状信息对非正方形的当前编码单元1100或1150进行划分时,可考虑非正方形的当前编码单元1100或1150的长边的位置。例如,考虑到当前编码单元1100或1150的形状,视频解码设备100可通过对当前编码单元1100或
1150的长边进行划分来确定多个编码单元。
[0606] 根据实施例,当划分形状信息指示将编码单元划分成奇数个块时,视频解码设备100可确定包括在当前编码单元1100或1150中的奇数个编码单元。例如,当划分形状信息指示将当前编码单元1100或1150划分成三个编码单元时,视频解码设备100可将当前编码单元1100或1150划分成三个编码单元1130a、1130b和1130c、或者是1180a、1180b和1180c。根据实施例,视频解码设备100可确定包括在当前编码单元1100或1150中的奇数个编码单元,并且并非确定的所有编码单元可具有相同的尺寸。例如,确定的奇数个编码单元1130a、
1130b和1130c、或者是1180a、1180b和1180c之中的预定编码单元1130b或1180b可具有与其他编码单元1130a和1130c或者是1180a和1180c的尺寸不同的尺寸。也就是说,可通过对当前编码单元1100或1150进行划分而确定的编码单元可具有多种尺寸,并且在一些情况下,所有奇数个编码单元1130a、1130b和1130c、或者是1180a、1180b和1180c可具有不同的尺寸。
[0607] 根据实施例,当划分形状信息指示将编码单元划分为奇数个块时,视频解码设备100可确定包括在当前编码单元1100或1150中的奇数个编码单元,并且可对通过划分当前编码单元1100或1150而生成的奇数个编码单元之中的至少一个编码单元设置预定限制。参照图11,视频解码设备100可允许编码单元1130b或1180b的解码方法与其他编码单元1130a和1130c或者是1180a和1180c的解码方法不同,其中,编码单元1130b或1180b位于通过对当前编码单元1100或1150进行划分而生成的三个编码单元1130a、1130b和1130c或者是
1180a、1180b和1180c之中的中心位置。例如,与其他编码单元1130a和1130c、或者是1180a和1180c不同,视频解码设备100可将中心位置处的编码单元1130b或1180b限制为不再被划分或者仅被划分预定次数。
[0608] 图12示出了根据实施例的由视频解码设备100执行的基于块形状信息和划分形状信息中的至少一条信息对编码单元进行划分的处理。
[0609] 根据实施例,视频解码设备100可基于块形状信息和划分形状信息中的至少一条信息来确定是否将正方形的第一编码单元1200划分为多个编码单元。根据实施例,当划分形状信息指示沿水平方向对第一编码单元1200进行划分时,视频解码设备100可通过沿水平方向对第一编码单元1200进行划分来确定第二编码单元1210。根据实施例使用的第一编码单元、第二编码单元和第三编码单元是用于理解在对编码单元进行划分之前和之后的关系的术语。例如,可通过对第一编码单元进行划分来确定第二编码单元,并且可通过对第二编码单元进行划分来确定第三编码单元。将理解的是,第一编码单元、第二编码单元和第三编码单元的结构遵循以上描述。
[0610] 根据实施例,视频解码设备100可基于块形状信息和划分形状信息中的至少一条信息来确定是否将确定的第二编码单元1210划分成多个编码单元。参照图12,视频解码设备100基于块形状信息和划分形状信息中的至少一条信息可或可不将通过对第一编码单元1200进行划分而确定的非正方形的第二编码单元1210划分成一个或更多个第三编码单元
1220a或者是第三编码单元1220b、1220c和1220d。视频解码设备100可获得块形状信息和划分形状信息中的至少一条信息,并且基于块形状信息和划分形状信息中的所获得的至少一条信息通过对第一编码单元1200进行划分来确定多个不同形状的第二编码单元(例如,
1210),并且第二编码单元1210可基于块形状信息和划分形状信息中的至少一条信息通过使用第一编码单元1200的划分方法被划分。根据实施例,当第一编码单元1200基于第一编码单元1200的块形状信息和划分形状信息中的至少一条信息被划分为第二编码单元1210时,第二编码单元1210也可基于第二编码单元1210的块形状信息和划分形状信息中的至少一条信息被划分为第三编码单元1220a或者是第三编码单元1220b、1220c和1220d。也就是说,可基于每个编码单元的块形状信息和划分形状信息中的至少一条信息来递归地对编码单元进行划分。因此,可通过对非正方形编码单元进行划分来确定正方形编码单元,并且可通过递归地对正方形编码单元进行划分来确定非正方形编码单元。参照图12,通过对非正方形的第二编码单元1210进行划分而确定的奇数个第三编码单元1220b、1220c和1220d之中的预定编码单元(例如,中心位置处的编码单元或正方形编码单元)可被递归地划分。根据实施例,奇数个第三编码单元1220b、1220c和1220d之中的正方形的第三编码单元1220c可沿水平方向被划分成多个第四编码单元。可将所述多个第四编码单元之中的非正方形的第四编码单元1240划分为多个编码单元。例如,非正方形的第四编码单元1240可被划分成奇数个编码单元1250a、1250b和1250c。
[0611] 下面将结合各种实施例描述可用于递归地对编码单元进行划分的方法。
[0612] 根据实施例,视频解码设备100可基于块形状信息和划分形状信息中的至少一条信息来确定将第三编码单元1220a或者是第三编码单元1220b、1220c和1220d中的每一个划分成多个编码单元或不对第二编码单元1210进行划分。根据实施例,视频解码设备100可将非正方形的第二编码单元1210划分成奇数个第三编码单元1220b、1220c和1220d。视频解码设备100可对奇数个第三编码单元1220b、1220c和1220d之中的预定第三编码单元设置预定限制。例如,视频解码设备100可将奇数个第三编码单元1220b、1220c和1220d之中的中心位置处的第三编码单元1220c限制为不再被划分或者被划分可设定的次数。参照图12,视频解码设备100可将包括在非正方形的第二编码单元1210中的奇数个第三编码单元1220b、1220c和1220d之中的位于中心位置处的第三编码单元1220c限制为不再被划分、通过使用预定的划分方法(例如,仅被划分成四个编码单元或通过使用第二编码单元1210的划分方法进行划分)被划分、或者仅被划分预定次数(例如,仅被划分n次(其中n>0))。然而,对中心位置处的第三编码单元1220c的限制不限于上述示例,并且可包括用于与其他第三编码单元1220b和1220d不同地对中心位置处的第三编码单元1220c进行解码的各种限制。
[0613] 根据实施例,视频解码设备100可从当前编码单元中的预定位置获得用于对当前编码单元进行划分的块形状信息和划分形状信息中的至少一条信息。
[0614] 图13示出了根据实施例的由视频解码设备100执行的从奇数个编码单元之中确定预定编码单元的方法。参照图13,可从当前编码单元1300中包括的多个样点之中的预定位置的样点(例如,中心位置的样点1340)获得当前编码单元1300的块形状信息和划分形状信息中的至少一条信息。然而,当前编码单元1300中的可从其获得块形状信息和划分形状信息中的至少一条信息的预定位置不限于图13中的中心位置,并且可包括当前编码单元1300中包括的各种位置(例如,顶部、底部、左侧、右侧、左上方、左下方、右上方和右下方位置)。视频解码设备100可从预定位置获得块形状信息和划分形状信息中的至少一条信息,并且确定将当前编码单元划分成各种形状和各种尺寸的编码单元或者不对当前编码单元进行划分。
[0615] 根据实施例,在当前编码单元被划分为预定数量的编码单元时,视频解码设备100可选择所述编码单元中的一个编码单元。如下面将结合各种实施例进行描述的,可使用各种方法来选择多个编码单元中的一个编码单元。
[0616] 根据实施例,视频解码设备100可将当前编码单元划分为多个编码单元,并且可确定预定位置处的编码单元。
[0617] 图13示出根据实施例的由视频解码设备100执行的从奇数个编码单元之中确定预定位置的编码单元的方法。
[0618] 根据实施例,视频解码设备100可使用指示奇数个编码单元的位置的信息来确定奇数个编码单元之中的中心位置处的编码单元。参照图13,视频解码设备100可通过对当前编码单元1300进行划分来确定奇数个编码单元1320a、1320b和1320c。视频解码设备100可通过使用关于奇数个编码单元1320a至1320c的位置的信息来确定中心位置处的编码单元1320b。例如,视频解码设备100可通过基于指示编码单元1320a、1320b和1320c中包括的预定样点的位置的信息来确定编码单元1320a、1320b和1320c的位置以确定中心位置的编码单元1320b。具体地,视频解码设备100可通过基于指示编码单元1320a、1320b和1320c的左上方样点1330a、1330b和1330c的位置的信息来确定编码单元1320a、1320b和1320c的位置以确定中心位置处的编码单元1320b。
[0619] 根据实施例,指示分别包括在编码单元1320a、1320b和1320c中的左上方样点1330a、1330b和1330c的位置的信息可包括关于编码单元1320a、1320b和1320c在画面中的位置或坐标的信息。根据实施例,指示分别包括在编码单元1320a、1320b和1320c中的左上方样点1330a、1330b和1330c的位置的信息可包括指示包括在当前编码单元1300中的编码单元1320a、1320b和1320c的宽度或高度的信息,并且宽度或高度可相应于指示画面中的编码单元1320a、1320b和1320c的坐标之间的差的信息。也就是说,视频解码设备100可通过直接使用关于编码单元1320a、1320b和1320c在画面中的位置或坐标的信息,或者通过使用关于编码单元的与坐标之间的差值相应的高度或宽度的信息来确定中心位置处的编码单元
1320b。
[0620] 根据实施例,指示上方编码单元1320a的左上方样点1330a的位置的信息可包括坐标(xa,ya),指示中间编码单元1320b的左上方样点1330b的位置的信息可包括坐标(xb,yb),并且指示下方编码单元1320c的左上方样点1330c的位置的信息可包括坐标(xc,yc)。视频解码设备100可通过使用分别包括在编码单元1320a、1320b和1320c中的左上方样点
1330a、1330b和1330c的坐标来确定中间编码单元1320b。例如,当左上方样点1330a、1330b和1330c的坐标以升序或降序排序时,中心位置处的包括样点1330b的坐标(xb,yb)的编码单元1320b可被确定为通过对当前编码单元1300进行划分而确定的编码单元1320a、1320b和1320c之中的中心位置处的编码单元。然而,指示左上方样点1330a、1330b和1330c的位置的坐标可包括指示画面中的绝对位置的坐标,或者可使用指示中间编码单元1320b的左上方样点1330b相对于上方编码单元1320a的左上方样点1330a的位置的相对位置的坐标(dxb,dyb)以及指示下方编码单元1320c的左上方样点1330c相对于上方编码单元1320a的左上方样点1330a的相对位置的坐标(dxc,dyc)。通过使用包括在编码单元中的样点的坐标作为指示样点的位置的信息来确定预定位置处的编码单元的方法不限于上述方法,并且可包括能够使用样点的坐标的各种算术方法。
[0621] 根据实施例,视频解码设备100可将当前编码单元1300划分成多个编码单元1320a、1320b和1320c,并基于预定标准来选择编码单元1320a、1320b和1320c中的一个编码单元。例如,视频解码设备100可从编码单元1320a、1320b和1320c之中选择具有与其他编码单元的尺寸不同的尺寸的编码单元1320b。
[0622] 根据实施例,视频解码设备100可通过使用指示上方编码单元1320a的左上方样点1330a的位置的坐标(xa,ya)、指示中间编码单元1320b的左上方样点1330b的位置的坐标(xb,yb)以及指示下方编码单元1320c的左上方样点1330c的位置的坐标(xc,yc)来确定编码单元1320a、1320b和1320c的宽度或高度。视频解码设备100可通过使用指示编码单元
1320a、1320b和1320c的位置的坐标(xa,ya)、(xb,yb)和(xc,yc)来确定编码单元1320a、
1320b和1320c的各个尺寸。
[0623] 根据实施例,视频解码设备100可将上方编码单元1320a的宽度确定为xb-xa,并将上方编码单元1320a的高度确定为yb-ya。根据实施例,视频解码设备100可将中间编码单元1320b的宽度确定为xc-xb,并将中间编码单元1320b的高度确定为yc-yb。根据实施例,视频解码设备100可通过使用当前编码单元1300的宽度或高度或者上方编码单元1320a和中间编码单元1320b的宽度或高度来确定下方编码单元1320c的宽度或高度。视频解码设备100可基于确定的编码单元1320a至1320c的宽度和高度来确定具有与其他编码单元的尺寸不同的尺寸的编码单元。参照图13,视频解码设备100可将具有与上方编码单元1320a和下方编码单元1320c的尺寸不同的尺寸的中间编码单元1320b确定为预定位置的编码单元。然而,由视频解码设备100执行的确定具有与其他编码单元的尺寸不同的尺寸的编码单元的上述方法仅相应于通过使用基于样点的坐标确定的编码单元的尺寸来确定预定位置处的编码单元的示例,因此通过对基于预定样点的坐标确定的编码单元的尺寸进行比较来确定预定位置处的编码单元的各种方法可被使用。
[0624] 然而,被认为用于确定编码单元的位置的样点的位置不限于上述左上方位置,并且可使用关于编码单元中包括的样点的任意位置的信息。
[0625] 根据实施例,考虑到当前编码单元的形状,视频解码设备100可从通过对当前编码单元进行划分所确定的奇数个编码单元之中选择预定位置处的编码单元。例如,在当前编码单元具有宽度比高度长的非正方形形状时,视频解码设备100可确定水平方向上的预定位置处的编码单元。也就是说,视频解码设备100可确定水平方向上的不同位置处的编码单元之一,并对该编码单元设置限制。在当前编码单元具有高度比宽度长的非正方形形状时,视频解码设备100可确定垂直方向上的预定位置处的编码单元。也就是说,视频解码设备100可确定垂直方向上的不同位置处的编码单元之一,并对该编码单元设置限制。
[0626] 根据实施例,视频解码设备100可使用指示偶数个编码单元的位置的信息来确定偶数个编码单元之中的预定位置处的编码单元。视频解码设备100可通过对当前编码单元进行划分来确定偶数个编码单元,并且通过使用关于偶数个编码单元的位置的信息来确定预定位置处的编码单元。与其相关的操作可相应于已在上面结合图13详细描述的确定奇数个编码单元之中的预定位置(例如,中心位置)处的编码单元的操作,因此,这里不提供其详细描述。
[0627] 根据实施例,当非正方形的当前编码单元被划分成多个编码单元时,可在划分操作中使用关于预定位置处的编码单元的预定信息,以确定所述多个编码单元之中的预定位置处的编码单元。例如,视频解码设备100可在划分操作中使用被存储在中心位置处的编码单元中所包括的样点中的块形状信息和划分形状信息中的至少一条信息,以确定通过对当前编码单元进行划分而确定的多个编码单元之中的中心位置处的编码单元。
[0628] 参照图13,视频解码设备100可基于块形状信息和划分形状信息中的至少一条信息将当前编码单元1300划分成多个编码单元1320a、1320b和1320c,并且确定多个编码单元1320a、1320b和1320c之中的中心位置处的编码单元1320b。此外,考虑到获得块形状信息和划分形状信息中的至少一条信息的位置,视频解码设备100可确定中心位置处的编码单元
1320b。也就是说,当前编码单元1300的块形状信息和划分形状信息中的至少一条信息可从当前编码单元1300的中心位置处的样点1340被获得,并且在当前编码单元1300基于块形状信息和划分形状信息中的至少一条信息被划分成多个编码单元1320a、1320b和1320c时,包括样点1340的编码单元1320b可被确定为中心位置处的编码单元。然而,用于确定中心位置处的编码单元的信息不限于块形状信息和划分形状信息中的至少一条信息,并且各种类型的信息可被用于确定中心位置处的编码单元。
[0629] 根据实施例,可从包括在将被确定的编码单元中的预定样点获得用于识别预定位置处的编码单元的预定信息。参照图13,视频解码设备100可使用从当前编码单元1300中的预定位置处的样点(例如,当前编码单元1300的中心位置处的样点)获得的块形状信息和划分形状信息中的至少一条信息来确定通过对当前编码单元1300进行划分而确定的多个编码单元1320a、1320b和1320c之中的预定位置处的编码单元(例如,多个划分出的编码单元之中的中心位置处的编码单元)。也就是说,视频解码设备100可通过考虑当前编码单元1300的块形状来确定预定位置处的样点,确定通过对当前编码单元1300进行划分而确定的多个编码单元1320a、1320b和1320c之中的包括可获得预定信息(例如,块形状信息和划分形状信息中的至少一条信息)的样点的编码单元1320b,并对编码单元1320b设置预定限制。
参照图13,根据实施例,在解码操作中,视频解码设备100可将当前编码单元1300的中心位置处的样点1340确定为可获得预定信息的样点,并且对包括样点1340的编码单元1320b设置预定限制。然而,可获得预定信息的样点的位置不限于上述位置,并且可包括将被确定用于限制的编码单元1320b中包括的样点的任意位置。
[0630] 根据实施例,可基于当前编码单元1300的形状来确定可从其获得预定信息的样点的位置。根据实施例,块形状信息可指示当前编码单元是具有正方形形状还是非正方形形状,并且可基于该形状确定可从其获得预定信息的样点的位置。例如,视频解码设备100可通过使用关于当前编码单元的宽度的信息和关于当前编码单元的高度的信息中的至少一个将位于用于将当前编码单元的宽度和高度中的至少一个分成两半的边界上的样点确定为可从其获得预定信息的样点。作为另一示例,在当前编码单元的块形状信息指示非正方形形状时,视频解码设备100可将与用于将当前编码单元的长边分成两半的边界相邻的样点之一确定为可从其获得预定信息的样点。
[0631] 根据实施例,在当前编码单元被划分为多个编码单元时,视频解码设备100可使用块形状信息和划分形状信息中的至少一条信息来确定所述多个编码单元之中的预定位置处的编码单元。根据实施例,视频解码设备100可从编码单元中的预定位置处的样点获得块形状信息和划分形状信息中的至少一条信息,并且通过使用从对当前编码单元进行划分而生成的多个编码单元中的每个编码单元中的预定位置的样点获得的划分形状信息和块形状信息中的至少一条信息对所述多个编码单元进行划分。也就是说,可基于从每个编码单元中的预定位置处的样点获得的块形状信息和划分形状信息中的至少一条信息来递归地对编码单元进行划分。上面已经结合图12描述了递归地对编码单元进行划分的操作,因此,这里将不提供其详细描述。
[0632] 根据实施例,视频解码设备100可通过对当前编码单元进行划分来确定一个或更多个编码单元,并基于预定块(例如,当前编码单元)确定对所述一个或更多个编码单元进行解码的顺序。
[0633] 图14示出了根据实施例的当视频解码设备100通过对当前编码单元进行划分来确定多个编码单元时处理多个编码单元的顺序。
[0634] 根据实施例,视频解码设备100可基于块形状信息和划分形状信息通过沿垂直方向对第一编码单元1400进行划分来确定第二编码单元1410a和1410b,通过沿水平方向对第一编码单元1400进行划分来确定第二编码单元1430a和1430b,或者通过沿垂直方向和水平方向对第一编码单元1400进行划分来确定第二编码单元1450a至1450d。
[0635] 参照图14,视频解码设备100可确定以水平方向顺序1410c处理通过沿垂直方向对第一编码单元1400进行划分而确定的第二编码单元1410a和1410b。视频解码设备100可确定以垂直方向顺序1430c处理通过沿水平方向对第一编码单元1400进行划分而确定的第二编码单元1430a和1430b。视频解码设备100可确定以用于处理一行中的编码单元然后再处理下一行中的编码单元的预定顺序(例如,以光栅扫描顺序或Z扫描顺序1450e)来处理通过沿垂直方向和水平方向对第一编码单元1400进行划分而确定的第二编码单元1450a至1450d。
[0636] 根据实施例,视频解码设备100可递归地对编码单元进行划分。参照图14,视频解码设备100可通过对第一编码单元1400进行划分来确定多个编码单元1410a、1410b、1430a、1430b、1450a、1450b、1450c和1450d,并且递归地对所确定的多个编码单元1410a、1410b、
1430a、1430b、1450a、1450b、1450c和1450d中的每一个进行划分。多个编码单元1410a、
1410b、1430a、1430b、1450a、1450b、1450c和1450d的划分方法可与第一编码单元1400的划分方法相应。这样,多个编码单元1410a、1410b、1430a、1430b、1450a、1450b、1450c和1450d中的每一个可独立地被划分为多个编码单元。参照图14,视频解码设备100可通过沿垂直方向对第一编码单元1400进行划分来确定第二编码单元1410a和1410b,并且确定独立地对第二编码单元1410a和1410b中的每一个进行划分或不对第二编码单元1410a和1410b中的每一个进行划分。
[0637] 根据实施例,视频解码设备100可通过沿水平方向对左侧的第二编码单元1410a进行划分来确定第三编码单元1420a和1420b,并且可不对右侧的第二编码单元1410b进行划分。
[0638] 根据实施例,可基于对编码单元进行划分的操作来确定编码单元的处理顺序。换句话说,可基于紧接在被划分之前的编码单元的处理顺序来确定划分出的编码单元的处理顺序。视频解码设备100可与右侧的第二编码单元1410b独立地来确定通过对左侧的第二编码单元1410a进行划分而确定的第三编码单元1420a和1420b的处理顺序。因为第三编码单元1420a和1420b是通过沿水平方向对左侧的第二编码单元1410a进行划分被确定的,所以可以以垂直方向顺序1420c处理第三编码单元1420a和1420b。因为左侧的第二编码单元1410a和右侧的第二编码单元1410b以水平方向顺序1410c被处理,所以可在包括在左侧的第二编码单元1410a中的第三编码单元1420a和1420b以垂直方向顺序1420c被处理之后来处理右侧的第二编码单元1410b。基于被划分之前的编码单元确定编码单元的处理顺序的操作不限于上述示例,并且各种方法可被用于独立地以预定的顺序处理被划分并被确定为各种形状的编码单元。
[0639] 图15示出了根据实施例的由视频解码设备100执行的当编码单元不能以预定顺序处理时确定当前编码单元将被划分成奇数个编码单元的处理。
[0640] 根据实施例,视频解码设备100可基于获得的块形状信息和划分形状信息来确定当前编码单元是否被划分为奇数个编码单元。参照图15,正方形的第一编码单元1500可被划分为非正方形的第二编码单元1510a和1510b,并且第二编码单元1510a和1510b可被独立地划分为第三编码单元1520a和1520b以及第三编码单元1520c至1520e。根据实施例,视频解码设备100可通过沿水平方向对左侧的第二编码单元1510a进行划分来确定多个第三编码单元1520a和1520b,并且将右侧的第二编码单元1510b划分为奇数个第三编码单元1520c至1520e。
[0641] 根据实施例,视频解码设备100可通过判定第三编码单元1520a和1520b以及第三编码单元1520c至1520e是否可按预定顺序被处理来确定是否将任意编码单元划分为奇数个编码单元。参照图15,视频解码设备100可通过递归地对第一编码单元1500进行划分来确定第三编码单元1520a和1520b以及第三编码单元1520c至1520e。视频解码设备100可基于块形状信息和划分形状信息中的至少一条信息确定第一编码单元1500、第二编码单元1510a和1510b、第三编码单元1520a和1520b以及1520c、1520d和1520e中的任意一个是否被划分为奇数个编码单元。例如,右侧的第二编码单元1510b可被划分为奇数个第三编码单元
1520c、1520d和1520e。包括在第一编码单元1500中的多个编码单元的处理顺序可以是预定顺序(例如,Z字形扫描顺序1530),并且视频解码设备100可判定通过将右侧的第二编码单元1510b划分为奇数个编码单元而确定的第三编码单元1520c、1520d和1520e是否满足以预定顺序进行处理的条件。
[0642] 根据实施例,视频解码设备100可确定包括在第一编码单元1500中的第三编码单元1520a和1520b以及第三编码单元1520c、1520d和1520e是否满足以预定顺序进行处理的条件,并且所述条件与第二编码单元1510a和1510b的宽度和高度中的至少一个是否沿第三编码单元1520a和1520b以及第三编码单元1520c、1520d和1520e的边界被划分成两半有关。例如,通过将非正方形的左侧第二编码单元1510a的高度划分成两半而确定的第三编码单元1520a和1520b满足所述条件。然而,因为通过将右侧的第二编码单元1510b划分为三个编码单元而确定的第三编码单元1520c、1520d和1520e的边界未将右侧的第二编码单元1510b的宽度或高度划分成两半,所以可确定第三编码单元1520c、1520d和1520e不满足所述条件。当如上所述不满足所述条件时,视频解码设备100可判定扫描顺序的不连续性,并且基于判定结果确定右侧的第二编码单元1510b被划分为奇数个编码单元。根据实施例,当一个编码单元被划分为奇数个编码单元时,视频解码设备100可对划分出的编码单元之中的预定位置处的编码单元设置预定限制。上面已经结合各种实施例描述了限制或预定位置,因此这里将不提供其详细描述。
[0643] 图16示出了根据实施例的由视频解码设备100执行的通过对第一编码单元1600进行划分来确定至少一个编码单元的处理。根据实施例,视频解码设备100可基于由获得器105获得的块形状信息和划分形状信息中的至少一条信息对第一编码单元1600进行划分。
正方形的第一编码单元1600可被划分为四个正方形的编码单元,或者可被划分为多个非正方形的编码单元。例如,参照图16,当块形状信息指示第一编码单元1600具有正方形形状并且划分形状信息指示将第一编码单元1600划分为非正方形的编码单元时,视频解码设备
100可将第一编码单元1600划分为多个非正方形的编码单元。具体地,当划分形状信息指示通过沿水平方向或垂直方向对第一编码单元1600进行划分以确定奇数个编码单元时,视频解码设备100可将正方形的第一编码单元1600划分为奇数个编码单元,例如,通过沿垂直方向对正方形的第一编码单元1600进行划分而确定的第二编码单元1610a、1610b和1610c,或者通过沿水平方向对正方形的第一编码单元1600进行划分而确定的第二编码单元1620a、
1620b和1620c。
[0644] 根据实施例,视频解码设备100可确定包括在第一编码单元1600中的第二编码单元1610a、1610b、1610c、1620a、1620b和1620c是否满足以预定顺序进行处理的条件,并且所述条件与第一编码单元1600的宽度和高度中的至少一个是否沿第二编码单元1610a、1610b、1610c、1620a、1620b和1620c的边界被分成两半有关。参照图16,因为通过沿垂直方向对正方形的第一编码单元1600进行划分而确定的第二编码单元1610a、1610b和1610c的边界未将第一编码单元1600的宽度划分为两半,所以可确定第一编码单元1600不满足用于以预定顺序进行处理的所述条件。此外,因为通过沿水平方向对正方形的第一编码单元
1600进行划分而确定的第二编码单元1620a、1620b和1620c的边界未将第一编码单元1600的宽度划分为两半,所以可确定第一编码单元1600不满足以预定顺序进行处理的所述条件。当如上所述不满足所述条件时,视频解码设备100可判定扫描顺序的不连续性,并且可基于判定结果确定第一编码单元1600被划分为奇数个编码单元。根据实施例,当编码单元被划分为奇数个编码单元时,视频解码设备100可对划分出的编码单元之中的预定位置处的编码单元设置预定限制。上面已经结合各种实施例描述了限制或预定位置,因此这里将不提供其详细描述。
[0645] 根据实施例,视频解码设备100可通过对第一编码单元进行划分来确定各种形状的编码单元。
[0646] 参照图16,视频解码设备100可将正方形的第一编码单元1600或非正方形的第一编码单元1630或1650划分为各种形状的编码单元。
[0647] 图17示出了根据实施例的当通过对第一编码单元1700进行划分而确定的具有非正方形形状的第二编码单元满足预定条件时对第二编码单元可被视频解码设备100划分为的形状限制。
[0648] 根据实施例,视频解码设备100可基于由获得器105获得的块形状信息和划分形状信息中的至少一条信息来确定将正方形的第一编码单元1700划分为非正方形的第二编码单元1710a、1710b、1720a和1720b。第二编码单元1710a、1710b、1720a和1720b可独立地被划分。这样,视频解码设备100可基于第二编码单元1710a、1710b、1720a和1720b中的每一个的块形状信息和划分形状信息中的至少一条信息来确定是否将第一编码单元1700划分为多个编码单元。根据实施例,视频解码设备100可通过沿水平方向对通过沿垂直方向对第一编码单元1700进行划分而确定的非正方形的左侧的第二编码单元1710a进行划分来确定第三编码单元1712a和1712b。然而,当左侧的第二编码单元1710a沿水平方向被划分时,视频解码设备100可将右侧的第二编码单元1710b限制为不沿左侧的第二编码单元1710a被划分的水平方向被划分。当通过沿水平方向对右侧的第二编码单元1710b进行划分来确定第三编码单元1714a和1714b时,因为左侧的第二编码单元1710a和右侧的第二编码单元1710b沿水平方向被独立地划分,所以可确定第三编码单元1712a、1712b、1714a和1714b。然而,这种情况同样地用于视频解码设备100基于块形状信息和划分形状信息中的至少一条信息将第一编码单元1700划分为四个正方形的第二编码单元1730a、1730b、1730c和1730d的情况,但是在图像解码方面可能是低效的。
[0649] 根据实施例,视频解码设备100可通过沿垂直方向对通过沿水平方向对第一编码单元1700进行划分而确定的非正方形的第二编码单元1720a或1720b进行划分来确定第三编码单元1722a、1722b、1724a和1724b。然而,当第二编码单元(例如,上方的第二编码单元1720a)沿垂直方向被划分时,由于上述原因,视频解码设备100可将另一个第二编码单元(例如,下方的第二编码单元1720b)限制为不沿上方的第二编码单元1720a被划分的垂直方向被划分。
[0650] 图18示出了根据实施例的由视频解码设备100执行的当划分形状信息指示正方形的编码单元将不被划分为四个正方形的编码单元时对该正方形的编码单元进行划分的处理。
[0651] 根据实施例,视频解码设备100可通过基于块形状信息和划分形状信息中的至少一条信息对第一编码单元1800进行划分来确定第二编码单元1810a、1810b、1820a、1820b等。划分形状信息可包括关于对编码单元进行划分的各种方法的信息,但是关于各种划分方法的信息可不包括用于将编码单元划分为四个正方形的编码单元的信息。根据这个划分形状信息,视频解码设备100可不将正方形的第一编码单元1800划分为四个正方形的第二编码单元1830a、1830b、1830c和1830d。视频解码设备100可基于划分形状信息确定非正方形的第二编码单元1810a、1810b、1820a、1820b等。
[0652] 根据实施例,视频解码设备100可独立地对非正方形的第二编码单元1810a、1810b、1820a、1820b等进行划分。第二编码单元1810a、1810b、1820a、1820b等中的每一个可以预定顺序被递归地划分,并且该划分方法可与基于块形状信息和划分形状信息中的至少一条信息对第一编码单元1800进行划分的方法相应。
[0653] 例如,视频解码设备100可通过沿水平方向对左侧的第二编码单元1810a进行划分来确定正方形的第三编码单元1812a和1812b,并且可通过沿水平方向对右侧的第二编码单元1810b进行划分来确定正方形的第三编码单元1814a和1814b。此外,视频解码设备100可通过沿水平方向对左侧的第二编码单元1810a和右侧的第二编码单元1810b两者进行划分来确定正方形的第三编码单元1816a、1816b、1816c和1816d。在这种情况下,可确定与从第一编码单元1800划分出的四个正方形的第二编码单元1830a、1830b、1830c和1830d具有相同形状的编码单元。
[0654] 作为另一示例,视频解码设备100可通过沿垂直方向对上方的第二编码单元1820a进行划分来确定正方形的第三编码单元1822a和1822b,并且可通过沿垂直方向对下方的第二编码单元1820b进行划分来确定正方形的第三编码单元1824a和1824b。此外,视频解码设备100可通过沿垂直方向对上方第二编码单元1820a和下方的第二编码单元1820b两者进行划分来确定正方形的第三编码单元1822a、1822b、1824c和1824d。在这种情况下,可确定与从第一编码单元1800划分出的四个正方形的第二编码单元1830a、1830b、1830c和1830d具有相同形状的编码单元。
[0655] 图19示出了根据实施例的多个编码单元之间的处理顺序可依据对编码单元进行划分的处理而改变。
[0656] 根据实施例,视频解码设备100可基于块形状信息和划分形状信息对第一编码单元1900进行划分。当块形状信息指示正方形形状并且划分形状信息指示沿水平方向和垂直方向中的至少一个方向对第一编码单元1900进行划分时,视频解码设备100可通过对第一编码单元1900进行划分来确定第二编码单元1910a、1910b、1920a、1920b、1930a、1930b、1930c和1930d。参照图19,通过仅沿水平方向或垂直方向对第一编码单元1900进行划分而确定的非正方形的第二编码单元1910a、1910b、1920a和1920b可基于每个编码单元的块形状信息和划分形状信息被独立地划分。例如,视频解码设备100可通过沿水平方向对通过沿垂直方向对第一编码单元1900进行划分而生成的第二编码单元1910a和1910b进行划分来确定第三编码单元1916a、1916b、1916c和1916d,并且通过沿水平方向对通过沿水平方向对第一编码单元1900进行划分而生成的第二编码单元1920a和1920b进行划分来确定第三编码单元1926a、1926b、1926c和1926d。上面已经结合图17描述了对第二编码单元1910a、
1910b、1920a和1920b进行划分的操作,因此,这里将不提供其详细描述。
[0657] 根据实施例,视频解码设备100可以以预定顺序处理编码单元。上面已经结合图14描述了以预定顺序处理编码单元的操作,因此,这里将不提供其详细描述。参照图19,视频解码设备100可通过对正方形的第一编码单元1900进行划分来确定四个正方形的第三编码单元1916a、1916b、1916c和1916d以及第三编码单元1926a、1926b、1926c和1926d。根据实施例,视频解码设备100可基于第一编码单元1900的划分方法确定第三编码单元1916a、1916b、1916c和1916d以及第三编码单元1926a、1926b、1926c和1926d的处理顺序。
[0658] 根据实施例,视频解码设备100可通过沿水平方向对通过沿垂直方向对第一编码单元1900进行划分而生成的第二编码单元1910a和1910b进行划分来确定第三编码单元1916a、1916b、1916c和1916d,并且可以以下面的处理顺序1917来处理第三编码单元1916a、
1916b、1916c和1916d:初始沿垂直方向处理包括在左侧的第二编码单元1910a中的第三编码单元1916a和1916c,然后沿垂直方向处理包括在右侧的第二编码单元1910b中的第三编码单元1916b和1916d。
[0659] 根据实施例,视频解码设备100可通过沿垂直方向对通过沿水平方向对第一编码单元1900进行划分而生成的第二编码单元1920a和1920b进行划分来确定第三编码单元1926a、1926b、1926c和1926d,并且可以以下面的处理顺序1927处理第三编码单元1926a、
1926b、1926c和1926d:初始沿水平方向处理包括在上方的第二编码单元1920a中的第三编码单元1926a和1926b,然后沿水平方向处理包括在下方的第二编码单元1920b中的第三编码单元1926c和1926d。
[0660] 参照图19,可通过分别对第二编码单元1910a、1910b、1920a和1920b进行划分来确定正方形的第三编码单元1916a、1916b、1916c和1916d以及第三编码单元1926a、1926b、1926c和1926d。尽管通过沿垂直方向对第一编码单元1900进行划分来确定第二编码单元
1910a和1910b不同于通过沿水平方向对第一编码单元1900进行划分来确定第二编码单元
1920a和1920b,但是从第二编码单元1910a和1910以及第二编码单元1920a和1920b划分出的第三编码单元1916a、1916b、1916c和1916d以及第三编码单元1926a、1926b、1926c和
1926d最终显示为从第一编码单元1900划分出的相同形状的编码单元。这样,通过基于块形状信息和划分形状信息中的至少一条信息以不同的方式递归地对编码单元进行划分,即使在多个编码单元最终被确定为相同形状时,视频解码设备100也可以以不同顺序处理多个编码单元。
[0661] 图20示出了根据实施例的当递归地对编码单元进行划分以确定多个编码单元时随着编码单元的形状和尺寸变化而确定编码单元的深度的处理。
[0662] 根据实施例,视频解码设备100可基于预定标准确定编码单元的深度。例如,预定标准可以是编码单元的长边的长度。当被划分之前的编码单元的长边的长度是划分出的当前编码单元的长边的长度的2n(n>0)倍时,视频解码设备100可确定当前编码单元的深度从被划分之前的编码单元的深度增加n。在以下描述中,具有增加的深度的编码单元被表示为深度更深的编码单元。
[0663] 参照图20,根据实施例,视频解码设备100可通过基于指示正方形形状的块形状信息(例如,块形状信息可被表示为“0:SQUARE”)对正方形的第一编码单元2000进行划分来确定深度更深的第二编码单元2002和第三编码单元2004。假设正方形的第一编码单元2000的尺寸是2N×2N,则通过将第一编码单元2000的宽度和高度划分为1/21而确定的第二编码单元2002可具有N×N的尺寸。此外,通过将第二编码单元2002的宽度和高度减小到1/2而确定的第三编码单元2004可具有N/2×N/2的尺寸。在这种情况下,第三编码单元2004的宽度和高度是第一编码单元2000的宽度和高度的1/22倍。当第一编码单元2000的深度是D时,第二编码单元2002的深度可以是D+1,并且第三编码单元2004的深度可以是D+2,其中,第二编码单元2002的宽度和高度是第一编码单元2000的宽度和高度的1/21倍,第三编码单元2004的宽度和高度是第一编码单元2000的宽度和高度的1/22倍。
[0664] 根据实施例,视频解码设备100可通过基于指示非正方形形状的块形状信息(例如,块形状信息可被表示为指示高度比宽度长的非正方形形状的“1:NS_VER”,或者表示为指示宽度比高度长的非正方形形状的“2:NS_HOR”)对非正方形的第一编码单元2010或2020进行划分来确定深度更深的第二编码单元2012或2022以及第三编码单元2014或2024。
[0665] 视频解码设备100可通过对尺寸为N×2N的第一编码单元2010的宽度和高度中的至少一个进行划分来确定第二编码单元2002、2012或2022。也就是说,视频解码设备100可通过沿水平方向对第一编码单元2010进行划分来确定尺寸为N×N的第二编码单元2002或尺寸为N×N/2的第二编码单元2022,或者通过沿水平方向和垂直方向对第一编码单元2010进行划分来确定尺寸为N/2×N的第二编码单元2012。
[0666] 根据实施例,视频解码设备100可通过对尺寸为2N×N的第一编码单元2020的宽度和高度中的至少一个进行划分来确定第二编码单元2002、2012或2022。也就是说,视频解码设备100可通过沿垂直方向对第一编码单元2020进行划分来确定尺寸为N×N的第二编码单元2002或尺寸为N/2×N的第二编码单元2012,或者可通过沿水平方向和垂直方向对第一编码单元2020进行划分来确定尺寸为N×N/2的第二编码单元2022。
[0667] 根据实施例,视频解码设备100可通过对尺寸为N×N的第二编码单元2002的宽度和高度中的至少一个进行划分来确定第三编码单元2004、2014或2024。也就是说,视频解码设备100可通过沿垂直方向和水平方向对第二编码单元2002进行划分确定尺寸为N/2×N/2的第三编码单元2004、尺寸为N/22×N/2的第三编码单元2014、或者尺寸为N/2×N/22的第三编码单元2024。
[0668] 根据实施例,视频解码设备100可通过对尺寸为N/2×N的第二编码单元2012的宽度和高度中的至少一个进行划分来确定第三编码单元2004、2014或2024。也就是说,视频解码设备100可通过沿水平方向对第二编码单元2012进行划分来确定尺寸为N/2×N/2的第三编码单元2004或尺寸为N/2×N/22的第三编码单元2024,或者通过沿垂直方向和水平方向对第二编码单元2012进行划分来确定尺寸为N/22×N/2的第三编码单元2014。
[0669] 根据实施例,视频解码设备100可通过对尺寸为N×N/2的第二编码单元2022的宽度和高度中的至少一个进行划分来确定第三编码单元2004、2014或2024。也就是说,视频解码设备100可通过沿垂直方向对第二编码单元2022进行划分来确定尺寸为N/2×N/2的第三编码单元2004或尺寸为N/22×N/2的第三编码单元2014,或者通过沿垂直方向和水平方向对第二编码单元2022进行划分来确定尺寸为N/2×N/22的第三编码单元2024。
[0670] 根据实施例,视频解码设备100可沿水平方向或垂直方向对正方形的编码单元2000、2002或2004进行划分。例如,视频解码设备100可通过沿垂直方向对尺寸为2N×2N的第一编码单元2000进行划分来确定尺寸为N×2N的第一编码单元2010,或者通过沿水平方向对第一编码单元2000进行划分来确定尺寸为2N×N的第一编码单元2020。根据实施例,当基于编码单元的最长边的长度确定深度时,通过沿水平方向或垂直方向对尺寸为2N×2N的第一编码单元2000、2002或2004进行划分而确定的编码单元的深度可与第一编码单元
2000、2002或2004的深度相同。
[0671] 根据实施例,第三编码单元2014或2024的宽度和高度可以是第一编码单元2010或2020的宽度和高度的1/22倍。当第一编码单元2010或2020的深度为D时,第二编码单元2012或2022的深度可以是D+1,并且第三编码单元2014或2024的深度可以是D+2,其中,第二编码单元2012或2022的宽度和高度是第一编码单元2010或2020的宽度和高度的1/2倍,第三编码单元2014或2024的宽度和高度是第一编码单元2010或2020的宽度和高度的1/22倍。
[0672] 图21示出了根据实施例的基于编码单元的形状和尺寸可确定的深度以及用于区分编码单元的部分索引(PID)。
[0673] 根据实施例,视频解码设备100可通过对正方形的第一编码单元2100进行划分来确定各种形状的第二编码单元。参照图21,视频解码设备100可通过基于划分形状信息沿垂直方向和水平方向中的至少一个方向对第一编码单元2100进行划分来确定第二编码单元2102a、2102b、2104a、2104b、2106a、2106b、2106c和2106d。也就是说,视频解码设备100可基于第一编码单元2100的划分形状信息来确定第二编码单元2102a、2102b、2104a、2104b、
2106a、2106b、2106c和2106d。
[0674] 根据实施例,基于正方形的第一编码单元2100的划分形状信息确定的第二编码单元2102a、2102b、2104a、2104b、2106a、2106b、2106c和2106d的深度可以是基于它们的长边的长度确定的。例如,因为正方形的第一编码单元2100的边长等于非正方形的第二编码单元2102a、2102b、2104a和2104b的长边的长度,所以第一编码单元2100和非正方形的第二编码单元2102a、2102b、2104a和2104b可具有相同的深度,例如,D。然而,当视频解码设备100基于划分形状信息将第一编码单元2100划分为四个正方形的第二编码单元2106a、2106b、2106c和2106d时,因为正方形的第二编码单元2106a、2106b、2106c和2106d的边长是第一编码单元2100的边长的1/2倍,所以第二编码单元2106a、2106b、2106c和2106d的深度可以是比第一编码单元2100的深度D深1的D+1。
[0675] 根据实施例,视频解码设备100可通过基于划分形状信息沿水平方向对高度比宽度长的第一编码单元2110进行划分来确定多个第二编码单元2112a、2112b、2114a、2114b和2114c。根据实施例,视频解码设备100可通过基于划分形状信息沿垂直方向对宽度比高度长的第一编码单元2120进行划分来确定多个第二编码单元2122a、2122b、2124a、2124b和
2124c。
[0676] 根据实施例,基于非正方形的第一编码单元2110或2120的划分形状信息确定的第二编码单元2112a、2112b、2114a、2114b、2116a、2116b、2116c和2116d的深度可基于它们的长边的长度被确定。例如,因为正方形的第二编码单元2112a和2112b的边长是具有高度比宽度长的非正方形形状的第一编码单元2110的长边的长度的1/2倍,所以正方形的第二编码单元2102a、2102b、2104a和2104b的深度是比非正方形的第一编码单元2110的深度D深1的D+1。
[0677] 此外,视频解码设备100可基于划分形状信息将非正方形的第一编码单元2110划分为奇数个第二编码单元2114a、2114b和2114c。奇数个第二编码单元2114a、2114b和2114c可包括非正方形的第二编码单元2114a和2114c以及正方形的第二编码单元2114b。在这种情况下,因为非正方形的第二编码单元2114a和2114c的长边的长度和正方形的第二编码单元2114b的边长是第一编码单元2110的长边的长度的1/2倍,所以第二编码单元2114a、2114b和2114c的深度可以是比非正方形的第一编码单元2110的深度D深1的D+1。视频解码设备100可通过使用上述确定从第一编码单元2110划分出的编码单元的深度的方法来确定从具有宽度比高度长的非正方形形状的第一编码单元2120划分出的编码单元的深度。
[0678] 根据实施例,当奇数个被划分出的编码单元不具有相等尺寸时,视频解码设备100可基于编码单元之间的尺寸比率来确定用于识别被划分出的编码单元的PID。参照图21,奇数个被划分出的编码单元2114a、2114b和2114c之中的中心位置的编码单元2114b可具有与其他编码单元2114a和2114c的宽度相等的宽度并且高度是其他编码单元2114a和2114c的高度的两倍。也就是说,在这种情况下,中心位置处的编码单元2114b可包括两个其他编码单元2114a或2114c。因此,当中心位置处的编码单元2114b的PID基于扫描顺序是1时,位于编码单元2114b旁边的编码单元2114c的PID可增加2,因此可以是3。也就是说,可能存在PID值的不连续性。根据实施例,视频解码设备100可基于用于识别被划分出的编码单元的PID是否存在不连续性来确定奇数个被划分出的编码单元是否不具有相等的尺寸。
[0679] 根据实施例,视频解码设备100可基于用于识别通过对当前编码单元进行划分而确定的多个编码单元的PID值来确定是否使用特定划分方法。参照图21,视频解码设备100可通过对具有高度比宽度长的矩形形状的第一编码单元2110进行划分来确定偶数个编码单元2112a和2112b或奇数个编码单元2114a、2114b和2114c。视频解码设备100可使用PID来识别各个编码单元。根据实施例,可从每个编码单元的预定位置的样点(例如,左上方样点)获得PID。
[0680] 根据实施例,视频解码设备100可通过使用用于区分编码单元的PID来确定被划分出的编码单元之中的预定位置处的编码单元。根据实施例,当具有高度比宽度长的矩形形状的第一编码单元2110的划分形状信息指示将编码单元划分为三个编码单元时,视频解码设备100可将第一编码单元2110划分为三个编码单元2114a、2114b和2114c。视频解码设备100可将PID分配给三个编码单元2114a、2114b和2114c中的每一个。视频解码设备100可对奇数个被划分出的编码单元的PID进行比较,以确定奇数个被分出的编码单元之中的中心位置处的编码单元。视频解码设备100可将具有与编码单元的PID之中的中间值相应的PID的编码单元2114b确定为通过对第一编码单元2110进行划分而确定的编码单元之中的中心位置处的编码单元。根据实施例,当被划分出的编码单元不具有相等尺寸时,视频解码设备
100可基于被划分出的编码单元之间的尺寸比率来确定用于区分被划分出的编码单元的PID。参照图21,通过对第一编码单元2110进行划分而生成的编码单元2114b可具有与其他编码单元2114a和2114c的宽度相等的宽度并且高度是其他编码单元2114a和2114c的高度的两倍。在这种情况下,当中心位置处的编码单元2114b的PID是1时,位于编码单元2114b旁边的编码单元2114c的PID可增加2,因此可以是3。当如上所述不均匀地增加PID时,视频解码设备100可确定编码单元被划分为包括具有与其他编码单元的尺寸不同的尺寸的编码单元的多个编码单元。根据实施例,当划分形状信息指示将一个编码单元划分为奇数个编码单元时,视频解码设备100可以以奇数个编码单元之中的预定位置的编码单元(例如,中心位置的编码单元)具有与其他编码单元的尺寸不同的尺寸这样的方式对当前编码单元进行划分。在这种情况下,视频解码设备100可通过使用编码单元的PID来确定具有不同尺寸的中心位置的编码单元。然而,预定位置的编码单元的PID和尺寸或位置不限于上述示例,并且编码单元的各种PID以及各种位置和尺寸可被使用。
[0681] 根据实施例,视频解码设备100可使用预定数据单元,其中,编码单元从所述预定数据单元开始被递归地划分。
[0682] 图22示出了根据实施例的基于画面中包括的多个预定数据单元确定多个编码单元。
[0683] 根据实施例,预定数据单元可被定义为这样的数据单元:通过使用块形状信息和划分形状信息中的至少一个从该数据单元开始对编码单元递归地进行划分。也就是说,预定数据单元可与最高深度的编码单元相应,其中,最高深度的编码单元用于确定从当前画面划分出的多个编码单元。在以下描述中,为了便于解释,将预定数据单元称为参考数据单元。
[0684] 根据实施例,参考数据单元可具有预定的尺寸和和预定的尺寸形状。根据实施例,参考数据单元可包括M×N个样点。这里,M和N可彼此相等,并且可以是表示为2的倍数的整数。也就是说,参考数据单元可具有正方形或非正方形形状,并且可以被划分为整数个编码单元。
[0685] 根据实施例,视频解码设备100可将当前画面划分为多个参考数据单元。根据实施例,视频解码设备100可通过使用关于每个参考数据单元的划分信息对从当前画面划分出的多个参考数据单元进行划分。对参考数据单元进行划分的操作可与使用四叉树结构的划分操作相应。
[0686] 根据实施例,视频解码设备100可预先确定包括在当前画面中的参考数据单元所允许的最小尺寸。这样,视频解码设备100可确定尺寸等于或大于最小尺寸的各种参考数据单元,并且参照所确定的参考数据单元通过使用块形状信息和划分形状信息来确定一个或更多个编码单元。
[0687] 参照图22,视频解码设备100可使用正方形的参考编码单元2200或非正方形的参考编码单元2202。根据实施例,可基于能够包括一个或更多参考编码单元的各种数据单元(例如,序列、画面、条带、条带片段、最大编码单元等)来确定参考编码单元的形状和尺寸。
[0688] 根据实施例,视频解码设备100的获得器105可从比特流获得关于各种数据单元中的每一个的参考编码单元形状信息和参考编码单元尺寸信息中的至少一条信息。上面已经结合对图10的当前编码单元1000进行划分的操作描述了将正方形的参考编码单元2200划分为一个或更多个编码单元的操作,并且上面已经结合对图11的当前编码单元1100或1150进行划分的操作描述了将非正方形的参考编码单元2200划分为一个或更多个编码单元的操作。因此,这里将不提供其详细描述。
[0689] 根据实施例,视频解码设备100可使用用于识别参考编码单元的尺寸和形状的PID,以根据先前基于预定条件确定的一些数据单元来确定参考编码单元的尺寸和形状。也就是说,获得器105可从比特流仅获得PID,其中,PID用于识别关于各种数据单元(例如,序列、画面、条带、条带片段、最大编码单元等)之中的作为满足预定条件的数据单元(例如,数据单元的尺寸等于或小于条带)的每个条带、条带片段或最大编码单元的参考编码单元的尺寸和形状。视频解码设备100可通过使用PID来确定关于满足预定条件的每个数据单元的参考数据单元的尺寸和形状。当根据具有相对小尺寸的每个数据单元从比特流获得并使用参考编码单元形状信息和参考编码单元尺寸信息时,因为使用比特流的效率可能不高,所以可仅获得并使用PID,而不直接获得参考编码单元形状信息和参考编码单元尺寸信息。在这种情况下,可预先确定与用于识别参考编码单元的尺寸和形状的PID相应的参考编码单元的尺寸和形状中的至少一个。也就是说,视频解码设备100可通过基于PID选择先前确定的参考编码单元的尺寸和形状中的至少一个来确定包括在用作用于获得PID的单元的数据单元中的参考编码单元的尺寸和形状中的至少一个。
[0690] 根据实施例,视频解码设备100可使用包括在最大编码单元中的一个或更多个参考编码单元。也就是说,从画面划分出的最大编码单元可包括一个或更多个参考编码单元,并且可通过递归地对每个参考编码单元进行划分来确定编码单元。根据实施例,最大编码单元的宽度和高度中的至少一个可以是参考编码单元的宽度和高度中的至少一个的整数倍。根据实施例,可通过基于四叉树结构将最大编码单元划分n次来获得参考编码单元的尺寸。也就是说,根据各种实施例,视频解码设备100可通过基于四叉树结构将最大编码单元划分n次来确定参考编码单元,并且基于块形状信息和划分形状信息中的至少一条信息对参考编码单元进行划分。
[0691] 图23示出了根据实施例的用作用于确定包括在画面2300中的参考编码单元的确定顺序的单元的处理块。
[0692] 根据实施例,视频解码设备100可确定从画面划分出的一个或更多个处理块。处理块是包括从画面划分出的一个或更多个参考编码单元的数据单元,并且可根据特定顺序确定处理块中包括的一个或更多个参考编码单元。也就是说,在每个处理块中确定的一个或更多个参考编码单元的确定顺序可与用于确定参考编码单元的各种类型的顺序之一相应,并且可依据处理块而变化。针对每个处理块确定的参考编码单元的确定顺序可以是各种顺序(例如,光栅扫描顺序、Z字形扫描、N字形扫描、右上对角扫描、水平扫描和垂直扫描)之一,但不限于上述扫描顺序。
[0693] 根据实施例,视频解码设备100可获得处理块尺寸信息并确定包括在画面中的一个或更多个处理块的尺寸。视频解码设备100可从比特流获得处理块尺寸信息,并确定画面中包括的一个或更多个处理块的尺寸。处理块的尺寸可以是数据单元的由处理块尺寸信息指示的预定尺寸。
[0694] 根据实施例,视频解码设备100的获得器105可根据每个特定数据单元从比特流获得处理块尺寸信息。例如,可按照诸如图像、序列、画面、条带或条带片段的数据单元从比特流获得处理块尺寸信息。也就是说,获得器105可根据各种数据单元中的每一个从比特流获得处理块尺寸信息,并且视频解码设备100可通过使用获得的处理块尺寸信息确定从画面划分出的一个或更多个处理块的尺寸。处理块的尺寸可以是参考编码单元的尺寸的整数倍。
[0695] 根据实施例,视频解码设备100可确定画面2300中包括的处理块2302和2312的尺寸。例如,视频解码设备100可基于从比特流获得的处理块尺寸信息来确定处理块的尺寸。参照图23,根据实施例,视频解码设备100可将处理块2302和2312的宽度确定为参考编码单元的宽度的四倍,并且可将处理块2302和2312的高度确定为参考编码单元的高度的四倍。
视频解码设备100可确定一个或更多个处理块中的一个或更多个参考编码单元的确定顺序。
[0696] 根据实施例,视频解码设备100可基于处理块的尺寸来确定包括在画面2300中的处理块2302和2312,并且可确定在处理块2302和2312中的一个或更多个参考编码单元的确定顺序。根据实施例,参考编码单元的确定可包括确定参考编码单元的尺寸。
[0697] 根据实施例,视频解码设备100可从比特流获得一个或更多个处理块中包括的一个或更多个参考编码单元的确定顺序信息,并基于获得的确定顺序信息确定关于一个或更多个参考编码单元的确定顺序。确定顺序信息可被定义为用于确定处理块中的参考编码单元的顺序或方向。也就是说,可针对每个处理块独立地确定参考编码单元的确定顺序。
[0698] 根据实施例,视频解码设备100可根据每个特定数据单元从比特流获得参考编码单元的确定顺序信息。例如,获得器105可根据诸如图像、序列、画面、条带、条带片段或处理块的每个数据单元从比特流获得参考编码单元的确定顺序信息。因为参考编码单元的确定顺序信息指示用于确定处理块中的参考编码单元的顺序,所以可针对包括整数个处理块的每个特定数据单元获得确定顺序信息。
[0699] 根据实施例,视频解码设备100可基于确定的确定顺序来确定一个或更多个参考编码单元。
[0700] 根据实施例,获得器105可从比特流获得参考编码单元的确定顺序信息作为与处理块2302和2312有关的信息,并且视频解码设备100可确定包括在处理块2302和2312中的一个或更多个的参考编码单元的确定顺序,并基于确定顺序确定包括在画面2300中的一个或更多个参考编码单元。参照图23,视频解码设备100可分别确定处理块2302和2312中的一个或更多个参考编码单元的确定顺序2304和2314。例如,当针对每个处理块获得参考编码单元的确定顺序信息时,可针对处理块2302和2312获得参考编码单元的不同类型的确定顺序信息。当处理块2302中的参考编码单元的确定顺序2304是光栅扫描顺序时,包括在处理块2302中的参考编码单元可以根据光栅扫描顺序被确定。与此不同的,当另一处理块2312中的参考编码单元的确定顺序2314是逆光栅扫描顺序时,包括在处理块2312中的参考编码单元可以根据逆光栅扫描顺序被确定。
[0701] 根据实施例,视频解码设备100可对确定的一个或更多个参考编码单元进行解码。视频解码设备100可基于如上所述确定的参考编码单元对图像进行解码。对参考编码单元进行解码的方法可包括各种图像解码方法。
[0702] 根据实施例,视频解码设备100可从比特流获得指示当前编码单元的形状的块形状信息或指示当前编码单元的划分方法的划分形状信息,并使用所获得的信息。块形状信息或划分形状信息可被包括在与各种数据单元有关的比特流中。例如,视频解码设备100可使用包括在序列参数集、画面参数集、视频参数集、条带头或条带片段头中的块形状信息或划分形状信息。此外,视频解码设备100可根据每个最大编码单元、每个参考编码单元或每个处理块从比特流获得与块形状信息或划分形状信息相应的语法,并使用所获得的语法。
[0703] 虽然已经参照本公开的实施例具体示出并描述了本公开,但是本领域普通技术人员将理解,在不脱离由权利要求所定义的本公开的范围的情况下,可在形式和细节上进行各种改变。因此,实施例应仅被认为是描述性的意义,而不是为了限制的目的。因此,本公开的范围不是由本公开的详细描述限定,而是由权利要求限定,并且该范围内的所有差异将被解释为包括在本公开中。
[0704] 另外,本公开的前述实施例可被编写为能够在计算机上执行的程序,并且可在通过使用计算机可读记录介质执行所述程序的通用数字计算机中被实现。计算机可读记录介质的示例包括磁存储介质(例如,ROM、软盘硬盘等)、光学记录介质(例如,CD-ROM或DVD)等。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈