具体实施方式
本原理针对使用自适应几何划分进行视频编码和解码的方法和装置。
本描述例示了本原理。因此,将理解,本领域技术人员将能够开发尽管未在这里明确描述或示出但是体现本原理并且被包括在本原理的精神和范围之内的各种布置。
在此叙述的所有示例和条件性语言意欲用于教导的目的以便帮助读者理解本原理以及由发明人贡献以推动现有技术发展的构思,并且应该被解释为不局限于这样具体叙述的示例和条件。
另外,在这里叙述本原理的原理、方面和实施例及其具体示例的所有陈述意欲包括其结构和功能上的等效物。另外,意图是:这样的等效物包括当前已知的等效物以及将来开发的等效物二者,即所开发的执行相同功能的任何元件,而不论其结构如何。
因此,例如,本领域技术人员将认识到:在此呈现的框图表示体现本原理的例示性电路的概念性视图。类似地,将认识到:任何流程图示(flow chart)、流程图(flow diagram)、状态转换图、伪代码等表示实质上可以表示在计算机可读介质中并因此由计算机或处理器执行的各种处理,而不管是否明确地示出这样的计算机或处理器。
可以通过使用专用硬件以及与适当的软件相关联的能够执行软件的硬件来提供图中示出的各种元件的功能。当利用处理器来提供所述功能时,可以利用单个专用处理器、利用单个共享处理器、或者利用其中一些可被共享的多个独立处理器来提供所述功能。另外,术语“处理器”或“控制器”的明确使用不应该被解释为排他性地指代能够执行软件的硬件,而是可以隐含地没有限制地包括数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)、和非易失性存储装置。
还可以包括其它传统的和/或定制的硬件。类似地,图中示出的任何开关只是概念性的。它们的功能可以通过程序逻辑的运行、通过专用逻辑、通过程序控制和专用逻辑的交互、或者甚至手动地来执行,如从上下文更具体地理解的,实施者可选择具体技术。
在其权利要求中,被表示为用于执行指定功能的部件的任何元件意欲包含执行那个功能的任何方式,例如包括:a)执行那个功能的电路元件的组合或者b)与适当电路相组合的任何形式的软件,所述软件因此包括固件或微代码等,所述适当电路用于执行该软件以执行所述功能。由这种权利要求限定的本发明在于如下事实,即,以权利要求所要求的方式将由各种所叙述的部件提供的功能组合和集合到一起。因此认为可以提供那些功能的任何部件与在此示出的那些部件等效。
在本说明书中提到的本原理的“一个实施例”或“实施例”及其其它变型意味着:结合所述实施例描述的具体特征、结构、特性等被包括在本原理的至少一个实施例中。因此,在说明书各处出现的短语“在一个实施例中”和“在实施例中”、以及任何其它变型不一定都指代相同的实施例。
应当认识到,例如在“A/B”、“A和/或B”和“A和B中的至少一个”的情况中,“/”、“和/或”以及“至少一个”任何一个的使用意欲包括对于仅仅第一个列出的选项(A)的选择、或对于仅仅第二个列出的选项(B)的选择、或者对于两个选项(A和B)的选择。作为另一示例,在“A、B和/或C”以及“A、B和C中的至少一个”的情况中,这种措辞意欲包括对于仅仅第一个列出的选项(A)的选择、或对于仅仅第二个列出的选项(B)的选择、或对于仅仅第三个列出的选项(C)的选择、或对于仅仅第一个和第二个列出的选项(A和B)的选择、或对于仅仅第一个和第三个列出的选项(A和C)的选择、或对于仅仅第二个和第三个列出的选项(B和C)的选择、或者对于全部三个选项(A和B和C)的选择。如本领域和相关领域普通技术人员容易认识到的,这可以被扩展用于很多列出的条目。
此外,应理解,尽管这里关于MPEG-4AVC标准来描述本原理的一个或多个实施例,但本原理不仅仅限于该标准,并且因此可以关于其它视频编码标准、推荐、及其扩展(包括MPEG-4AVC标准的扩展)而被利用,同时保持本原理的精神。
而且,如这里所使用的,词语“画面”和“图像”被可互换地使用,并且指代静止图像或来自视频序列的画面。如已知的,画面可以是帧或场。
如这里所使用的,“高级语法”指代在层级上驻留在宏块层之上的比特流中表现的语法。例如,如这里所使用的,高级语法可以指代但不限于:码片首标级、补充增强信息(SEI)级、画面参数集(PPS)级、序列参数集(SPS)级、和网络抽象层(NAL)单元首标级处的语法。
此外,如这里所使用的,词语“发信号通知”指代向对应解码器指示某些内容(something)。例如,编码器可以发信号通知来自多个几何划分子集中的具体一个几何划分子集,以便使得解码器得知在编码器侧使用哪个具体子集。以此方式,在编码器侧和解码器侧两处可以使用相同的子集。因此,例如,编码器可以将子集传送到解码器,使得解码器可以使用相同的具体子集,或者如果解码器已经具有该具体子集以及其它子集,则可以使用信令(而非传送)来简单地允许解码器知道并选择该具体子集。通过避免传送任何实际子集,可以实现比特节省。应理解,可以以多种方式来完成发信号通知。例如,可以使用一个或多个语法元素、标志等来向对应解码器发信号通知信息。
另外,如这里所使用的,短语“画面区域”(或简单地简称为“区域”)指代包含例如一个或多个块或任何大小的任意形状、以及/或者另外由一个或多个块或任何大小的任意形状表示的画面的一部分。所述一个或多个块可能涉及例如超宏块、宏块、宏块划分、子宏块划分等等。在一个示例中,区域可以是块,在该情况下,划分边界可以是该块的边缘。给出这里提供的本原理的教导,本领域和相关领域中的普通技术人员容易确定可以被认为是(画面内的)区域以及可以被认为是区域的划分边界的这些和其它变型,同时保持本原理的精神。
此外,如这里所使用的,短语“随后区域”指代画面或视频序列中尚未被编码或解码的区域。该短语被用来区分正在被编码或解码的(当前)区域。
此外,如这里所使用的,短语“几何划分子集”指代比可能在强力(bruteforce)计算或列表中可用的所有几何划分小的几何划分编组。以此方式,减少了对应编码器或解码器需要考虑的几何划分的总数。
而且,如这里所使用的,短语“距离空间”指代几何模式的距离参数的所有允许值的集合。例如,对于16×16块,距离的最大值为11.312(主对角线的长度,16×1.414/2),而最小值为0(因为其不可能为负)。由于存在过多的距离参数的选择,在构造几何划分字典时,仅从整个空间中选择有限数量的值(该“选择”被称作“采样”)。
另外,如这里所使用的,短语“角度空间”指代角度参数的所有允许值的集合。当距离参数为0时,角度空间为[0,180)(即,其可以是等于或大于0但小于180的任何值)。当距离参数大于0时,角度空间为[0,360)(即,其可以是等于或大于0但小于360的任何值)。
如上面注意到的,本原理针对使用自适应几何划分进行视频编码和解码的方法和装置。
转到图1,由参考标号100总地指示能够依据MPEG-4AVC标准执行视频编码的视频编码器。视频编码器100包括帧排序缓冲器110,该帧排序缓冲器110具有与组合器185的非反相输入端进行信号通信的输出端。组合器185的输出端以信号通信方式与具有几何扩展的变换器和量化器125的第一输入端连接。具有几何扩展的变换器和量化器125的输出端以信号通信方式与具有几何扩展的熵编码器145的第一输入端以及具有几何扩展的逆变换器和逆量化器150的第一输入端连接。具有几何扩展的熵编码器145的输出端以信号通信方式与组合器190的第一非反相输入端连接。组合器190的输出端以信号通信方式与输出缓冲器135的第一输入端连接。
具有几何扩展的编码器控制器105的第一输出端以信号通信方式与帧排序缓冲器110的第二输入端、具有几何扩展的逆变换器和逆量化器150的第二输入端、画面类型判定模块115的输入端、具有几何扩展的宏块类型(MB类型)判定模块120的第一输入端、具有几何扩展的帧内预测模块160的第二输入端、具有几何扩展的去块滤波器165的第二输入端、具有几何扩展的运动补偿器170的第一输入端、具有几何扩展的运动估计器175的第一输入端、和参考画面缓冲器180的第二输入端连接。
具有几何扩展的编码器控制器105的第二输出端以信号通信方式与补充增强信息(SEI)插入器130的第一输入端、具有几何扩展的变换器和量化器125的第二输入端、具有几何扩展的熵编码器145的第二输入端、输出缓冲器135的第二输入端、以及序列参数集(SPS)和画面参数集(PPS)插入器140的输入端连接。
SEI插入器130的输出端以信号通信方式与组合器190的第二非反相输入端连接。
画面类型判定模块115的第一输出端以信号通信方式与帧排序缓冲器110的第三输入端连接。画面类型判定模块115的第二输出端以信号通信方式与具有几何扩展的宏块类型判定模块120的第二输入端连接。
序列参数集(SPS)和画面参数集(PPS)插入器140的输出端以信号通信方式与组合器190的第三非反相输入端连接。
具有几何扩展的逆量化器和逆变换器150的输出端以信号通信方式与组合器119的第一非反相输入端连接。组合器119的输出端以信号通信方式与具有几何扩展的帧内预测模块160的第一输入端和具有几何扩展的去块滤波器165的第一输入端连接。具有几何扩展的去块滤波器165的输出端以信号通信方式与参考画面缓冲器180的第一输入端连接。参考画面缓冲器180的输出端以信号通信方式与具有几何扩展的运动估计器175的第二输入端、以及具有几何扩展的运动补偿器170的第三输入端连接。具有几何扩展的运动估计器175的第一输出端以信号通信方式与具有几何扩展的运动补偿器170的第二输入端连接。具有几何扩展的运动估计器175的第二输出端以信号通信方式与具有几何扩展的熵编码器145的第三输入端连接。
具有几何扩展的运动补偿器170的输出端以信号通信方式与开关197的第一输入端连接。具有几何扩展的帧内预测模块160的输出端以信号通信方式与开关197的第二输入端连接。具有几何扩展的宏块类型判定模块120的输出端以信号通信方式与开关197的第三输入端连接。开关197的第三输入端确定开关的“数据”输入(与控制输入(即,第三输入端)相比)是由具有几何扩展的运动补偿器170提供还是由具有几何扩展的帧内预测模块160提供。开关197的输出端以信号通信方式与组合器119的第二非反相输入端和组合器185的反向输入端连接。
帧排序缓冲器110的第一输入端和具有几何扩展的编码器控制器105的输入端可用作编码器100的用于接收输入画面101的输入端。此外,补充增强信息(SEI)插入器130的第二输入端可用作编码器100的用于接收元数据的输入端。输出缓冲器135的输出端可用作编码器100的用于输出比特流的输出端。
转到图2,通过参考标号200总地指示能够依据MPEG-4AVC标准执行视频解码的视频解码器。视频解码器200包括输入缓冲器210,该输入缓冲器210具有以信号通信方式与具有几何扩展的熵解码器245的第一输入端连接的输出端。具有几何扩展的熵解码器245的第一输出端以信号通信方式与逆变换器和逆量化器250的第一输入端连接。具有几何扩展的逆变换器和逆量化器250的输出端以信号通信方式与组合器225的第二非反相输入端连接。组合器225的输出端以信号通信方式与具有几何扩展的去块滤波器265的第二输入端和具有几何扩展的帧内预测模块260的第一输入端连接。具有几何扩展的去块滤波器265的第二输出端以信号通信方式与参考画面缓冲器280的第一输入端连接。参考画面缓冲器280的输出端以信号通信方式与具有几何扩展的运动补偿器270的第二输入端连接。
具有几何扩展的熵解码器245的第二输出端以信号通信方式与具有几何扩展的运动补偿器270的第三输入端和具有几何扩展的去块滤波器265的第一输入端连接。具有几何扩展的熵解码器245的第三输出端以信号通信方式与具有几何扩展的解码器控制器205的输入端连接。具有几何扩展的解码器控制器205的第一输出端以信号通信方式与具有几何扩展的熵解码器245的第二输入端连接。具有几何扩展的解码器控制器205的第二输出端以信号通信方式与具有几何扩展的逆变换器和逆量化器250的第二输入端连接。具有几何扩展的解码器控制器205的第三输出端以信号通信方式与具有几何扩展的去块滤波器265的第三输入端连接。具有几何扩展的解码器控制器205的第四输出端以信号通信方式与具有几何扩展的帧内预测模块260的第二输入端、具有几何扩展的运动补偿器270的第一输入端、以及参考画面缓冲器280的第二输入端连接。
具有几何扩展的运动补偿器270的输出端以信号通信方式与开关297的第一输入端连接。具有几何扩展的帧内预测模块260的输出端以信号通信方式与开关297的第二输入端连接。开关297的输出端以信号通信方式与组合器225的第一非反相输入端连接。
输入缓冲器210的输入端可用作解码器200的用于接收输入比特流的输入端。具有几何扩展的去块滤波器265的第一输出端可用作解码器200的用于对输出画面进行输出的输出端。
如上面所注意的,已经将使用几何区域划分的帧间预测和帧内预测标识为改进视频编码效率的有前途的研究方向,但是增加的计算复杂度的问题是艰巨的并且仍然是有待解决的问题。因此,在本原理的实施例中,提供了使用自适应几何区域划分字典(例如,作为由强力方案所规定的汇编或列表的子集的所定义的汇编或列表)的机制。在保持编码效率的同时减少在编码器和解码器中考虑的几何划分的数量在编码器和解码器两处都提供了益处。
因此,在实施例中,提供了自适应几何划分字典(例如,所定义的汇编或列表)以便在仍保持良好编码效率的同时减少所考虑的几何模式的数量。其背后的基本构思在于:没有均匀地支持可用于强力计算和列表的所有距离和角度组合的划分。相反,距离步长和角度步长是从块(或区域)的所定义的点(例如,从中心或原点)到边界线的距离的函数。可以使用以下标记方法(nomenclature),即,Δρ=h(ρ),Δθ=g(ρ),其中和h()和g()可以是线性和/或非线性函数。此外,如上面注意到的,ρ和θ分别表示:沿着到边界线f(x,y)的正交方向从原点到f(x,y)的距离;以及到f(x,y)的正交方向关于水平坐标轴x的角度(参见,例如图8和图13)。
转到图3,通过参考标号300总地指示图像块的示例性几何划分。通过参考标号320总地指示整个图像块,分别通过参考标号330和340总地指示图像块320的位于斜线350相对侧的两个划分。
在实施例中,当ρ接近该块的中心(原点)时,支持密集的距离(Δρ小),而当ρ远离该块的中心(原点)时,支持稀疏的距离(Δρ大)(参见例如图8和图13)。
在实施例中,当ρ接近该块的中心(原点)时,支持密集的角度,而当ρ远离该块的中心(原点)时,支持稀疏的角度(Δρ大)(参见例如图8和图13)。
在实施例中,以默认字典(例如,所定义的汇编或列表)开始。该实施例可以被认为包含训练阶段和编码阶段。在编码了Mtraining个帧、码片或块(其可以被认为对应于训练阶段)之后,分析由已经编码的块选择的划分的统计,并且重新建立用于接下来的Ncoding个帧、码片或块的编码(其可以被认为对应于编码阶段)的字典。然后开始另一循环(训练阶段之后是编码阶段)。可以在一个或多个高级语法元素(例如,码片首标、SEI消息、PPS、SPS、NAL单元首标等等)中指定Mtraining和Ncoding的数量。它们还可以是预先定义的对于编码器和解码器两者都已知的常数。在解码器处应用相同的例程(参见例如图9和图14)。
在实施例中,从默认字典开始。在完成了编码当前块之后,根据为当前块选择的划分来调整用于编码下一块的字典。所述调整可以是移除远离由当前块选择的划分的一些划分。所述调整还可以如下:外推当前块的所选择的划分以便预测下一块的划分;以及用于下一块的字典基于该预测的划分。在解码器处应用相同的例程(参见例如图9和图14)。
在实施例中,从默认字典开始。对于一个块,基于某个率失真准则从默认集合中选择最佳划分,执行几何运动补偿以获得残差,并且编码所述残差。在编码器处重构预测残差,并且分析所述预测残差以便推断出新的划分字典,其包括所选择的划分和一些其它划分,并且将划分的索引发送给解码器。假设所述新的字典包括比所述默认集合更少的划分,使得需要更少的比特来将所选择的划分传递到解码器。在解码器侧,重构并且分析残差以便推断出与编码器所使用的字典相同的字典。利用所接收的索引,从该字典中选择划分用于重构该块。
时间上或空间上相邻的块可以具有相似的内容,并且因此趋于从所述默认字典中的有限数量的划分中选择。与使用具有许多划分的默认字典相比,使用具有更少划分的小字典可以节省编码时间以及用于发信号通知几何划分模式的比特。在实施例中,预先定义被预存储在编码器和解码器两者处的多个几何划分字典。这些字典中的每个字典是默认字典子集。使用索引来指示在编码器处当前使用哪个字典并且在一个或多个高级语法元素(例如,码片首标、SEI消息、PPS、SPS、NAL单元首标等等)中指定该索引,使得解码器可以与编码器同步。仅仅选择字典中的几何划分,以便减少在发送几何划分模式时的开销(参见例如图11和图16)。
在实施例中,对于编码器应用用户定义的字典,并且例如使用要被传送到解码器的一个或多个高级语法元素(例如,码片首标、SEI消息、PPS、SPS、NAL单元首标等等)在比特流中指定所述用户定义的字典(参见例如图10和图15)。
所有上面的实施例需要显式发信号通知所选择的几何划分。如果可以将划分索引嵌入在其它编码信息中,则可以节省编码比特并且可以改进编码效率。在实施例中,从默认字典开始。对于一个块,基于某个率失真准则从默认集合中选择最佳划分,执行几何运动补偿以获得残差,并且编码所述残差。在编码器侧,将几何划分信息嵌入到变换系数或量化系数中。解码器遵循相同的规则以便从所解码的比特流中推断出几何划分。将几何划分索引嵌入到变换系数或量化系数中的一个示例可以是如下。将划分索引信息嵌入到系数总和M中。如果划分索引为n,修改一些系数,使得M%k=n,其中,k为对于编码器和解码器两者都已知的常数,%为模运算。处理后的系数被传送到解码器,并且解码器可以精确地重构相同的残差。然后,其可以推断出该几何划分。因此,节省了用于几何划分的比特(参见例如图12和图17)。
以下是详细说明如何在压缩系统中构造并使用自适应几何划分字典的具体示例。尽管以下示例基于MPEG-4AVC标准,如上所述,本原理可以应用于其它视频编码标准、推荐及其扩展。
构造自适应字典:
假设编码块单元的大小为16×16。对于默认几何划分字典,假设将均匀的采样应用于角度参数和距离参数两者,其中,Δθ=11.25以及Δρ=1。该字典中可能划分的总数量为274。
在构造该示例的自适应字典时,首先执行距离ρ的非均匀采样。此外,对于ρ的不同值(距离),设Δθ的角度采样密度不同并且因此Δθ是ρ的函数,Δθ=g(ρ)。
具体地,在16×16编码块单元的假设下,可以从图3计算的ρ的最大距离为11(小于主对角线的长度的一半16×1.414/2=11.312的最大整数)。为了减小字典的大小,减小距离采样间隔并且仅仅考虑ρ≤7时的几何划分。类似地,我们减小角度采样间隔。
对于ρ的不同值,使用不同的采样密度来最大化地开发几何划分的效率且同时最小化开销。如下,表1对应于依据本原理的实施例的一种示例性采样方法:
表1
ρ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Δθ |
22.5 |
90 |
22.5 |
90 |
90 |
90 |
90 |
90 |
可能划分 |
6 |
4 |
16 |
4 |
4 |
4 |
4 |
4 |
表1中示出的采样方法对应于ρ≤7以及θ的非均匀的ρ依赖采样,产生总共仅仅46个可能划分。假设规则是先验的,编码器和解码器两者可以构造该字典,该字典的元素可以比默认字典的元素少得多。
使用自适应字典的编码和解码:
在编码器侧,首先执行搜索以找到最佳划分(其由(ρ,θ)表示)以及相关联的运动矢量。然后,使用某种熵编码方法编码ρ。一种可能的熵编码方法可以包括指数哥伦布码(Expo-Golomb code),然而应理解:本原理不限于仅仅前述的码,而是还可以使用其它码。此后,利用ρ和预先定义的规则Δθ=g(ρ),可以计算θ的可能的总数量和θ的索引。相应地,可以设计熵编码方法。一种可能的熵编码方法可以是N比特固定长度编码,其中可以从ρ和Δθ来计算N。
在解码器侧,首先解码ρ。利用ρ和预先定义的规则Δθ=g(ρ),可以计算θ的可能的总数量以便帮助解析θ的语法并重构其值。
语法
表2示出了依据本原理实施例的示例性码片级语法。
slice_header(){ |
描述符 |
.... |
|
adaptive_dictionary_flag |
u(1) |
if(adaptive_dictionary_flag==1) |
|
Geo_partition_derivation_adaptive() |
|
else |
|
Geo_partition_derivation_default() |
|
.... |
|
} |
|
在该示例中,假设:除了默认字典之外,在编码器和解码器两者处存储预先定义的自适应字典。
adaptive_dictionary_flag:
adaptive_dictionary_flag等于1指定在解码该码片中的所有几何划分块时利用自适应字典。在函数Geo_partition_derivation_adaptive()中定义解码操作,其中,从比特流中解析划分索引,并且从所述预先定义的自适应字典中选择划分。
adaptive_dictionary_flag等于0指定在解码该码片中的所有几何划分块时利用默认字典。在函数Geo_partition_derivation_default()中定义解码操作,其中,从比特流中解析划分索引,并且从所述预先定义的默认字典中选择划分。
转到图4,通过参考标号400来总地指示使用自适应几何划分编码画面数据的示例性方法。方法400包括开始块405,其将控制传递到功能块410。功能块410构造自适应几何划分字典,并将控制传递到功能块415。功能块415利用自适应几何划分字典搜索最佳几何划分,并将控制传递到功能块420。功能块420使用常规编码模式搜索最佳预测,将利用常规编码模式获得的预测与几何预测进行比较以便选择最佳预测,并将控制传递到判定块425。判定块425确定最佳预测模式是否是几何预测模式。如果是,则将控制传递到功能块430。否则,将控制传递到功能块435。
功能块430利用自适应几何划分字典执行用于(多个)几何划分模式的熵编码,并将控制传递到结束块499。
功能块435执行常规(传统)熵编码,并将控制传递到结束块499。
转到图5,通过参考标号500总地指示使用自适应几何划分字典的在编码器侧搜索最佳预测的示例性方法。方法500包括开始块505,其将控制传递到循环限制块510。循环限制块510对于字典中的可能距离ρ开始循环1,并将控制传递到循环限制块515。循环限制块515对于字典中的用于距离ρ的可能角度θ开始循环2,并将控制传递到功能块520。功能块520利用参数集合(ρ,θ)生成划分,并将控制传递到功能块525。功能块525在给定划分集合的情况下搜索最佳预测者,并将控制传递到循环限制块530。循环限制块530结束循环1,并将控制传递到循环限制块535。循环限制块535结束循环2,并将控制传递到结束块599。
转到图6,通过参考标号600总地指示使用自适应几何划分字典的用于几何划分模式的熵编码的示例性方法。方法600包括开始块605,其将控制传递到功能块610。功能块610对于所选择的距离ρ,在字典中查找以找到对应索引,编码该索引,并将控制传递到功能块615。功能块615对于所选择的角度,在字典中查找以便找到对应的索引,编码该索引,并将控制传递到功能块620。功能块620编码该块的剩余模式信息,并将控制传递到功能块625。功能块625编码该块的预测误差(残差),并将控制传递到结束块699。
转到图7,通过参考标号700总地指示使用自适应几何划分字典解码画面数据的示例性方法。方法700包括开始块705,其将控制传递到功能块710。功能块710构造自适应几何划分字典,并将控制传递到判定块715。判定块715确定当前模式是否是几何划分模式。如果是,则将控制传递到功能块720。否则,将控制传递到功能块730。
功能块720利用自适应几何划分字典执行用于几何划分模式块的熵解码,并将控制传递到功能块725。功能块725利用自适应划分字典执行用于几何划分模式块的预测和重构,并将控制传递到结束块799。
功能块730执行常规(传统)熵解码,并将控制传递到功能块735。功能块735执行常规(传统)预测和重构,并将控制传递到结束块799。
转到图8,通过参考标号800总地指示使用自适应几何划分编码画面数据的示例性方法。在方法800中,自适应几何划分字典基于划分边界的角度以及/或者其到该块中所定义的点的距离。方法800包括开始块805,其将控制传递到功能块810。功能块810选择多个划分,以便基于划分边界的角度以及/或者其到该块中所定义的点的距离来构造自适应几何划分字典,并将控制传递到功能块815。功能块815利用自适应几何划分字典搜索最佳几何预测,并将控制传递到功能块820。功能块820搜索用于常规(即,非几何)编码模式的最佳预测,将用于常规编码模式的预测与几何预测进行比较以便(例如基于率失真(RD)成本)选择最佳的预测,并将控制传递到判定块825。判定块825确定最佳预测是否是利用几何预测模式获得的。如果是,则将控制传递到功能块830。否则,将控制传递到功能块835。功能块830利用自适应几何划分字典熵编码用于几何划分模式的语法元素,并将控制传递到结束块899。功能块835执行常规(传统)熵编码,并将控制传递到结束块899。
转到图9,通过参考标号900来总地指示使用自适应几何划分编码画面数据的另一示例性方法。在方法900中,自适应几何划分字典基于先前编码区域的信息。方法900包括开始块905,其将控制传递到功能块910。功能块910基于先前编码的(多个)区域的信息,例如基于为先前编码的(多个)其它区域选择的划分和/或选择的划分的统计等等,来构造用于(要被编码的)当前块的自适应几何划分字典,并将控制传递到功能块915。功能块915利用自适应几何划分字典搜索最佳几何预测,并将控制传递到功能块920。功能块920搜索用于常规(即,非几何)编码模式的最佳预测,将用于常规编码模式的预测与几何预测进行比较以便(例如基于率失真(RD)成本)选择最佳的预测,并将控制传递到判定块925。判定块925确定最佳预测是否是利用几何预测模式获得的。如果是,则将控制传递到功能块930。否则,将控制传递到功能块935。功能块930利用自适应几何划分字典熵编码用于几何划分模式的语法元素,并将控制传递到结束块999。功能块935执行常规(传统)熵编码,并将控制传递到结束块999。
转到图10,通过参考标号1000来总地指示使用自适应几何划分编码画面数据的另一示例性方法。在方法1000中,自适应几何划分字典是用户定义的并被传送到解码器。方法1000包括开始块1005,其将控制传递到功能块1010。功能块1010基于用户输入来构造用于(要被编码的)当前块的自适应几何划分字典,并将控制传递到功能块1015。功能块1015将用户定义的字典发送到解码器,并将控制传递到循环限制块1020。循环限制块1020使用具有1到(例如当前画面中的)块数量(#)的范围的变量I在(例如当前画面中的)块上开始循环,并将控制传递到功能块1025。功能块1025利用自适应几何划分字典搜索最佳几何预测,并将控制传递到功能块1030。功能块1030搜索用于常规(即,非几何)编码模式的最佳预测,将用于常规编码模式的预测与几何预测进行比较以便(例如基于率失真(RD)成本)选择最佳的预测,并将控制传递到判定块1035。判定块1035确定最佳预测是否是利用几何预测模式获得的。如果是,则将控制传递到功能块1040。否则,将控制传递到功能块1045。功能块1040利用自适应几何划分字典熵编码用于几何划分模式的语法元素,并将控制传递到循环限制块1050。功能块1045执行常规(传统)熵编码,并将控制传递到循环限制块1050。循环限制块1050结束循环,将控制传递到结束块1099。
转到图11,通过参考标号1100来总地指示使用自适应几何划分编码画面数据的另一示例性方法。在方法1100中,自适应几何划分字典(即,几何划分子集)是从多个子集(每个子集是例如从默认字典获得的,而所述默认字典是使用例如强力方案获得的)中选择的,并且将该子集或者该子集的索引指示给解码器。方法1100包括开始块1105,其将控制传递到功能块1110。功能块1110从多个子集构造自适应几何划分字典(即,子集),并将控制传递到功能块1115。功能块1115指示所选择的几何划分子集或者指示所选择的子集的索引,并将控制传递到循环限制块1120。循环限制块1120使用具有1到例如当前画面中的块数量(#)的范围的变量I在(例如当前画面中的)块上开始循环,并将控制传递到功能块1125。功能块1125利用自适应几何划分字典搜索最佳几何预测,并将控制传递到功能块1130。功能块1130搜索用于常规(即,非几何)编码模式的最佳预测,将用于常规编码模式的预测与几何预测进行比较以便(例如基于率失真(RD)成本)选择最佳预测,并将控制传递到判定块1135。判定块1135确定最佳预测是否是利用几何预测模式获得的。如果是,则将控制传递到功能块1140。否则,将控制传递到功能块1145。功能块1140利用自适应几何划分字典熵编码用于几何划分模式的语法元素,并将控制传递到循环限制块1150。功能块1145执行常规(传统)熵编码,并将控制传递到循环限制块1150。循环限制块1150结束循环,将控制传递到结束块1199。
转到图12,通过参考标号1200来总地指示使用自适应几何划分编码画面数据的另一示例性方法。在方法1200中,几何划分模式是由解码器从所解码的残差中推断出的。方法1200包括开始块1205,其将控制传递到功能块1210。功能块1210利用默认几何划分字典搜索最佳几何预测,并将控制传递到功能块1215。功能块1215使用该最佳几何划分编码当前块,处理残差使得在解码器处从所解码的残差中仅能推断出所选择的划分,并且将控制传递到功能块1220。功能块1220搜索用于常规(即,非几何)编码模式的最佳预测,将用于常规编码模式的预测与几何预测进行比较以便(例如基于率失真(RD)成本)选择最佳的预测,并将控制传递到判定块1225。判定块1225确定最佳预测是否是利用几何预测模式获得的。如果是,则将控制传递到功能块1230。否则,将控制传递到功能块1240。功能块1230熵编码用于选择的几何划分模式的残留系数,并将控制传递到功能块135。功能块1235熵编码用于几何划分模式的、除了划分索引之外的其它语法元素,并将控制传递到结束块1299。功能块1240执行常规(传统)熵编码,并将控制传递到结束块1299。
这里,给出了如何处理残差使得在解码器处从所解码的残差中仅能推断出所选择的划分的一个示例:将划分信息嵌入到系数总和M中。如果划分索引为n,我们修改一些系数,使得M%k=n,其中,k为对于编码器和解码器两者都已知的常数,%为模运算。处理后的系数被传送到解码器,并且解码器可以精确地重构相同的残差。然后,其可以推断出该几何划分。
转到图13,通过参考标号1300总地指示使用自适应几何划分字典解码画面数据的示例性方法。在方法1300中,自适应几何划分字典基于划分边界的角度以及/或者其到该块中所定义的点的距离。方法1300包括开始块1305,其将控制传递到功能块1310。功能块1310通过基于划分边界的角度以及/或者其到该块中预先定义的点的距离选择多个划分来构造自适应几何划分字典,并将控制传递到判定块1315。判定块1315确定当前预测模式是否是几何预测模式。如果是,则将控制传递到功能块1320。否则,将控制传递到功能块1325。功能块1320利用自适应几何划分字典执行熵解码以便解码用于几何划分模式的语法元素,并将控制传递到功能块1325。功能块1325利用自适应几何划分字典执行用于几何划分模式的预测和重构,并将控制传递到结束块1399。功能块1330执行常规(传统)熵编码,并将控制传递到功能块1335。功能块1335执行常规(传统)预测和重构,并将控制传递到结束块1399。
转到图14,通过参考标号1400总地指示使用自适应几何划分字典解码画面数据的另一示例性方法。在方法1400中,自适应几何划分字典基于先前解码区域的信息。方法1400包括开始块1405,其将控制传递到功能块1410。功能块1410基于先前解码的(多个)区域的信息,例如基于为先前编码的(多个)其它区域选择的划分和/或选择的划分的统计等等,来构造用于(要被解码的)当前块的自适应几何划分字典,并将控制传递到判定块1415。判定块1415确定当前预测模式是否是几何预测模式。如果是,则将控制传递到功能块1420。否则,将控制传递到功能块1430。功能块1420利用自适应几何划分字典执行熵解码以便解码用于几何划分模式的语法元素,并将控制传递到功能块1425。功能块1425利用自适应几何划分字典执行用于所述几何划分模式的预测和重构,并将控制传递到结束块1499。功能块1430执行常规(传统)熵编码,并将控制传递到功能块1435。功能块1435执行常规(传统)预测和重构,并将控制传递到结束块1499。
转到图15,通过参考标号1500总地指示使用自适应几何划分字典解码画面数据的另一示例性方法。在方法1500中,自适应几何划分字典在比特流中传送并且被解码器解析。方法1500包括开始块1505,其将控制传递到功能块1510。功能块1510从比特流中解析用户定义的自适应几何划分字典,并将控制传递到循环限制块1515。循环限制块1515使用具有1到例如当前画面中的块数量(#)的范围的变量I在(例如当前画面中的)块上开始循环,并将控制传递到判定块1520。判定块1520确定当前预测模式是否是几何预测模式。如果是,则将控制传递到功能块1525。否则,将控制传递到功能块1535。功能块1525利用自适应几何划分字典执行熵解码以便解码用于几何划分模式的语法元素,并将控制传递到功能块1530。功能块1530利用自适应几何划分字典执行用于所述几何划分模式的预测和重构,并将控制传递到循环限制块1545。功能块1535执行常规(传统)熵编码,并将控制传递到功能块1540。功能块1540执行常规(传统)预测和重构,并将控制传递到循环限制块1545。循环限制块1545结束循环,并将控制传递到结束块1599。
转到图16,通过参考标号1600总地指示使用自适应几何划分字典解码画面数据的另一示例性方法。在方法1600中,自适应几何划分字典的索引在比特流中传送并且被解码器解析。方法1600包括开始块1605,其将控制传递到功能块1610。功能块1610解析子集的索引以便选择正确的子集并构造自适应几何划分字典,并将控制传递到循环限制块1615。循环限制块1615使用具有1到例如当前画面中的块数量(#)的范围的变量I在(例如当前画面中的)块上开始循环,并将控制传递到判定块1620。判定块1620确定当前预测模式是否是几何预测模式。如果是,则将控制传递到功能块1625。否则,将控制传递到功能块1635。功能块1625利用自适应几何划分字典执行熵解码以便解码用于几何划分模式的语法元素,并将控制传递到功能块1630。功能块1630利用自适应几何划分字典执行用于所述几何划分模式的预测和重构,并将控制传递到循环限制块1645。功能块1635执行常规(传统)熵编码,并将控制传递到功能块1640。功能块1640执行常规(传统)预测和重构,并将控制传递到循环限制块1645。循环限制块1645结束循环,并将控制传递到结束块1699。
转到图17,通过参考标号1700总地指示使用自适应几何划分字典解码画面数据的另一示例性方法。在方法1700中,解码器从所解码的残差中推断出几何划分模式。方法1700包括开始块1705,其将控制传递到判定块1710。判定块1710确定当前预测模式是否是几何预测模式。如果是,则将控制传递到功能块1715。否则,将控制传递到功能块1730。功能块1715执行熵解码以便解码残差系数,从重构的残差中推断出划分索引,并将控制传递到功能块1720。功能块1720执行熵解码以便解码用于几何划分模式的其它语法元素,并将控制传递到功能块1725。功能块1725利用自适应几何划分字典执行用于所述几何划分模式的预测和重构,并将控制传递到结束块。功能块1730执行常规(传统)熵编码,并将控制传递到功能块1735。功能块1735执行常规(传统)预测和重构,并将控制传递到结束块1799。
现在将描述本发明的许多伴随优点/特征中的一些,其中的一些已经在上面提及。例如,一个优点/特征是一种具有使用自适应几何划分对画面中区域的画面数据进行编码的编码器的装置,其中,响应于距离和角度中的至少一个来确定被用来编码该区域的画面数据的几何划分子集。所述距离是从该区域内定义的点到划分边界测量的。所述角度是相对于从该区域内的所定义的点到所述划分边界延伸的至少一条线而测量的。
另一优点/特征是具有上述编码器的装置,其中,所述区域内的所定义的点是所述区域的中心,以及响应于从所述区域的中心到划分边界的距离来确定所述几何划分子集。
另一优点/特征是具有所述编码器的装置,如上所述其中所述区域内的所定义的点是所述区域的中心以及响应于从所述区域的中心到划分边界的距离来确定所述几何划分子集,其中,使用距离步长和角度步长来对自适应几何划分的距离空间和角度空间进行采样以便构造几何划分字典,所述距离步长和角度步长是从所定义的点到所述划分边界的距离的函数,所述几何划分子集具有比所述几何划分字典少的几何划分。
另一优点/特征是具有所述编码器的装置,如上所述,其中所述区域内的所定义的点是所述区域的中心以及响应于从所述区域的中心到划分边界的距离来确定所述几何划分子集,其中,所述几何划分子集包括具有从所定义的点到所述划分边界的等于或小于阈值距离的距离的几何划分。
另一优点/特征是具有如上所述的编码器的装置,其中,所述几何划分子集基于所述区域和所述画面中先前编码的其它区域中的至少一个的先前编码信息。
另一优点/特征是具有所述编码器的装置,如上所述,其中所述几何划分子集基于所述区域和所述画面中先前编码的其它区域中的至少一个的先前编码信息,其中,所述几何划分子集基于为所述先前编码的其它区域选择的划分。
此外,另一优点/特征是具有所述编码器的装置,如上所述,其中所述几何划分子集基于为所述先前编码的其它区域选择的划分,其中,为所述区域选择的划分被外推以便预测用于随后区域的划分,并且用于编码随后区域的几何划分子集基于所预测的用于所述随后区域的划分。
此外,另一优点/特征是具有所述编码器的装置,如上所述,其中所述几何划分子集基于所述区域和所述画面中先前编码的其它区域中的至少一个的先前编码信息,其中,所述几何划分子集是基于为所述先前编码的其它区域选择的划分的统计而导出的。
而且,另一优点/特征是具有所述编码器的装置,如上所述,其中所述几何划分子集是基于为所述先前编码的其它区域选择的划分的统计而导出的,其中,所述画面被包含在视频序列中,使用与强力划分计算方案相对应的默认几何划分字典来编码所述视频序列中的一组画面,每个画面不具有所述区域,为该组画面选择的划分的统计被用来构造用于所述区域的所述几何划分子集,所述子集具有比所述默认字典少的几何划分。
另外,另一优点/特征是具有如上所述的编码器的装置,其中,对于所述自适应几何划分可用的所述几何划分子集是用户定义的并且在作为结果的比特流中显式地发信号通知。
此外,另一优点/特征是具有如上所述的编码器的装置,其中,所述子集是多个子集之一,其中,所述子集以及所述多个子集一起表示小于所有可能划分,所述多个子集是预先存储的,并且其中所述编码器使用一个或多个高级语法元素向解码器发送索引,所述索引指示要用于解码的多个子集中的具体一个或多个子集。
此外,另一优点/特征是具有如上所述的编码器的装置,其中,在比特流中向解码器传送供解码器在解码至少所述区域的画面数据时使用所述几何划分子集。
而且,另一优点/特征是具有如上所述的编码器的装置,其中,所述编码器基于率失真准则从默认几何划分字典中选择用于所述区域的划分,执行几何运动补偿以便获得所述区域的残差,以及重构所述残差,使得仅仅能够在解码器处从所述残差的随后重构中推断出从所述默认几何划分字典中的多个可用划分中选择的划分。
基于这里的教导,本领域普通技术人员可以容易确定本原理的这些和其它特征和优点。应理解本原理的教导可以以硬件、软件、固件、专用处理器、或其组合的各种形式来实现。
更优选地,本原理的教导被实现为硬件与软件的组合。此外,软件可以实现为有形地体现在程序存储单元上的应用程序。应用程序可以被上载到包括任何适当架构的机器并由该机器执行。优选地,在具有诸如一个或多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)、以及输入/输出(“I/O”)接口等的硬件的计算机平台上实现该机器。计算机平台还可以包括操作系统和微指令代码。这里描述的各种处理与功能可以是可能由CPU执行的微指令代码的一部分或是应用程序的一部分、或者是其任何组合。另外,各种其它外设单元可以连接到计算机平台,如附加数据存储单元以及打印单元。
还应理解,由于在附图中描绘的一些组成系统组件和方法优选地以软件实现,因此这些系统组件或处理功能块之间的实际连接可能取决于本原理被编程的方式而有所不同。给出这里的教导,本领域普通技术人员将能够预期本原理的这些和类似的实现方式或配置。
尽管这里已经参考附图描述了示例实施例,应理解本原理不限于那些确切的实施例,并且本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本原理的范围和精神。所有这些改变和修改意在被包括在所附权利要求阐述的本原理的范围之内。