掌桥专利:专业的专利平台
掌桥专利
首页

指数分区的方法与系统

文献发布时间:2023-06-19 11:34:14


指数分区的方法与系统

相关申请的交叉引用

本申请要求享有以下美国临时申请的优先权权益:2018年10月1日提交的、题为“指数分区(EXPONENTIAL PARTITIONING)”的第62/739,446号美国临时申请;2018年10月1日提交的、题为“预测指数分区参数(PREDICTING EXPONENTIAL PARTITIONINGPARAMETERS)”的第62/739,677号美国临时申请;以及2018年10月1日提交的、题为“用于指数分区的块的形状自适应离散余弦变换(SHAPE ADAPTIVE DISCRETE COSINETRANSFORMATION FOR EXPONENTIALLY PARTITIONED BLOCKS)”的第62/739,531号美国临时申请。这些美国临时申请均通过引用以全文并入本文中。

技术领域

本发明一般涉及数字视频压缩与解压技术领域,包括解码与编码。特别地,本发明针对用于编码单元指数分区的方法和系统。

背景技术

视频编码解码器可以包含压缩或解压数字视频的电子电路或软件。它可以将未压缩的视频转换成压缩格式,也可将压缩视频解压成未压缩格式。在视频压缩的情况下,压缩视频(和/或执行其某些功能)的设备通常被称为编码器,解压视频(和/或执行其某些功能)的设备被称为解码器。

压缩数据的格式可以符合视频压缩规范标准。压缩文件可能是有损的,因为压缩的视频缺失源视频中存在的某些信息。随之而来的后果是,由于没有充足的信息去准确地重构原始视频,因此被压缩过的视频经解压后可能比未经压缩的原始视频质量低。

视频质量、用于表示视频的数据量(例如,由比特率决定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、便于编辑、随机访问、端到端延迟(例如,时延)等之间可存在复杂的关系。

发明内容

在本发明的一个方面,解码器可包括可配置为接收比特流的电路。在一实施例中,电路可以进一步被配置为确定是否启用指数分区模式,并且根据曲线将块分区为第一区域和第二区域。在一实施例中,电路还可以被配置为使用曲线来重构块的像素数据,其中第一区域和第二区域可以是非矩形的。

该解码器还可进一步以单独或组合方式包括下列特征中的一个或多个。在一实施例中,可以在比特流中用信号发送指数分区模式。在一实施例中,将块分区为第一区域和第二区域的曲线可以由预定义模板表征。在另一个实施例中,将该块分区为第一区域和第二区域的曲线可以由预定义系数值表征。此外,在一实施例中,指数分区模式能够用于大于或等于8x8亮度样本的块大小。在另一个实施例中,重构像素数据可以包括使用包含在比特流中的相关运动向量计算第一区域的预测值(predictor)。在另一个实施例中,解码器还可以包括熵解码器处理器,该熵解码器处理器可被配置为接收比特流并将该比特流解码为量化系数。解码器还可以包括可配置为处理量化系数,包括执行逆离散余弦变换的逆量化和逆变换处理器。此外,该解码器可以包括解块滤波器、帧缓冲器;以及帧内预测处理器。在一实施例中,所述比特流可以包括指示是否为块启用指数分区模式的参数。在另一个实施例中,该块可以构成四叉树加二叉决策树的一部分。此外,该块可以是四叉树加二叉决策树的非叶节点。在一实施例中,该块可以是编码树单元或编码单元。在另一个实施例中,该第一区域可以是编码单元或预测单元。

在本发明的另一方面,一种方法可以包括:通过解码器接收比特流,并且通过该解码器确定是否启用了指数分区模式。该方法还可以包括:通过解码器确定将块分区为第一区域和第二区域的曲线,并且通过解码器对块的像素数据进行重构,并利用所述曲线。

该方法可以单独或组合的方式进一步包括以下特征中的一个或多个。在一实施例中,可以在比特流中用信号发送指数分区模式。在另一个实施例中,将块分区为第一区域和第二区域的曲线可以通过预定义模板来表征。在一实施例中,将块分区为第一区域和第二区域的曲线可以通过预定系数值来表征。在一实施例中,指数分区模式可用于大于或等于8×8亮度样本的块大小。在另一个实施例中,重构像素数据可以包括使用包含在比特流中的相关联的运动向量来计算用于第一区域的预测值。在另一个实施例中,解码器可以包括熵解码器处理器,该熵解码器处理器可以被配置为接收比特流并将比特流解码为量化系数。解码器还可以包括逆量化和逆变换处理器,该逆量化和逆变换处理器可以被配置为处理量化系数,包括执行逆离散余弦变换。此外,解码器可以包括解块滤波器、帧缓冲器和帧内预测处理器。在一实施例中,比特流可以包括指示是否对该块启用了指数分区模式的参数。在另一个实施例中,该块可以形成四叉树加二叉决策树的一部分。同样,该块可以是四叉树加二叉决策树的非叶节点。在另一个实施例中,块可以是编码树单元或编码单元。在一实施例中,第一区域可以是编码单元或预测单元。

非暂时性计算机程序产品(即物理化的计算机程序产品)也被描述为存储指令,当一个或多个计算系统的一个或多个数据处理器执行这些指令时,使得至少一个数据处理器执行本文描述的操作。同样,还描述了可包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器的计算机系统。该存储器可以临时或永久存储导致至少一个处理器执行本文的一个或多个操作的指令。此外,方法可以由单个计算系统内或分布在两个或多个计算系统中的一个或多个数据处理器实施。此类计算机系统可以被连接,和可以通过一个或多个连接(包括通过网络的连接(如互联网、无线广域网、局域网、广域网、有线网络等))或者通过一个或多个计算机系统之间的直接连接交换数据和/或命令或其他指令等。

在所附附图和以下描述中阐述了本文描述的主题的一个或多个变型的细节。从描述和附图以及从权利要求中,本文描述的主题的其他特征和优点将是明显的。

附图说明

图1是示出像素块分区示例的示意图;

图2是示出几何分区示例的示意图;

图3A是根据当前主题的某些方面的指数分区示例的示意图,其可以提高压缩效率;

图3B是示出示例性模板指数分区的一系列示意图;

图3C示出了与4个预定义系数相关联的示例性曲线,其可以定义示例性指数函数;

图3D示出了另一示例性块,显示出了分区矩形块的不同的开始P

图4是示出能够执行指数分区的示例性视频编码器的系统框图;

图5A是过程流程图,示出了根据当前主题的某些方面使用指数分区对视频进行编码的示例性过程,这些方面可以在提高压缩效率的同时降低编码复杂度;

图5B是过程流程图,示出了根据当前主题的某些方面使用分区参数对视频进行指数分区编码的示例性过程;

图5C是说明根据当前主题的某些方面的使用形状自适应离散余弦变换对视频进行指数分区编码的示例性过程的过程流程图;

图6示出能够使用指数分区解码比特流的示例性解码器的系统框图;

图7是说明使用指数分区来解码比特流的示例性过程的过程流程图;

图8示出了帧的四叉树加二叉决策树分区的示例;

图9示出了在图8所示的四叉树加二叉决策树的CU级别上的指数分区的示例;

图10示出了一图像,该图像包含可能无法通过直线段有效分区的苹果;

图11是示出了根据指数分区来分区的另一示例性块的示意图;

图12是表示当前块从空间相邻的块中继承到的指数分区参数的示意图;

图13示出了当前块在空间上相邻的块的示例;和

图14示出了具有时间上相邻的块的示例性当前块,当前块从该时间上相邻的块中继承指数分区参数。

各个附图中相似的参考符号表示相似的元素。

具体实施方式

当前主题的一些实施方式与指数分区有关。在指数分区中,可以利用曲线而非直线段将矩形块分区为非矩形区域。使用曲线对块进行分区可以使分区更紧密地遵循对象边界,从而降低运动补偿预测误差,减小残差,从而提高了压缩效率。在一些实施方式中,曲线可以由指数函数表征。可以使用预定义的系数和/或模板来确定曲线(例如,指数函数),该预定义的系数和/或模板可以在比特流中用信号发送以供解码器使用。在一些实施方式中,指数分区可用于大于或等于8×8的亮度样本。通过用曲线对矩形块进行分区,与仅限于直线段分区的技术(例如采用几何分区)相比,对于某些对象可以实现更高的压缩效率。

而且,当前主题的一些实施方式涉及使用空间和/或时间参考块来预测指数分区参数。在一些实施方式中,对于一个给定的当前块,可以用信号发送指数分区合并变量,以指示给定的当前块可以从另一个块继承所有或某些指数分区参数。另一个块可以在空间或时间上相邻。通过允许块继承其他块的指数分区参数,可以减少比特流中的信号发送量,从而可以实现更高的压缩效率。

此外,当前主题的一些实施方式可以包括:在已经被利用曲线而非直线段分区为非矩形区域的区域(例如,块)上执行形状自适应离散余弦变换(SADCT)。在对块进行指数分区的情况下,所得区域(例如,分区)可能会导致一个区域的预测误差较小,而另一区域的预测误差较大。因此,当前主题可以包括对预测误差较小的区域执行SADCT。通过对预测误差较小的区域执行SADCT,可以提高压缩效率。并且在一些实施方式中,在解码期间,可以对通过指数分区的一个区域执行逆SADCT。在一些实施方式中,可以在比特流中用信号发送逆SADCT,作为针对预测误差较小的段的全块离散余弦变换(DCT)的附加变换选择。在一些实施方式中,可以基于指数分区参数来执行逆SADCT,而不必在比特流中显式地发出要执行逆SADCT的信号。

运动补偿可包括这样一种方法,其在给定先前帧和/或未来帧的基础上,通过考虑摄像机和/或视频中的对象的运动来预测视频帧或其一部分。它可用于对视频数据进行编码和解码,用于视频压缩,例如在编码和解码中使用运动图像专家组(MPEG)-2(也称为高级视频编码(AVC))标准。运动补偿可以根据参考图片到当前图片的变换来描述图片。与当前图片相比,参考图片可以是过去的图片,也可以是将来的照片。当可以从先前传输和/或存储的图像中准确地合成图像时,可以提高压缩效率。

块分区可以指代视频编码中的找到相似运动的区域的一种方法。可以在视频编解码器标准中找到某种形式的块分区,包括MPEG-2、H.264(也称为AVC或MPEG-4第10部分)和H.265(也称为高效视频编码(HEVC))。在示例性块分区方法中,视频帧的非重叠块可以被分区为矩形子块,以找到包含具有相似运动的像素的块分区。当块分区的所有像素具有相似的运动时,该方法可以很好地发挥作用。可以相对于先前编码的帧确定块中像素的运动。

图1是根据实施例示出像素块分区示例的示意图。本身可以是子块(例如,编码树内的节点)的初始矩形图片或块100可以被分区为矩形子块。例如,在110,块100被分成两个矩形子块110a和110b。然后可以分别处理子块110a和110b。作为另一示例,再如在120处,将100被分为四个矩形子块120a、120b、120c和120d。子块本身可以进一步划分,直到确定子块内的像素共享相同的运动,达到最小块大小,或其他标准。当一个子块中的像素具有相似的运动时,运动向量可以描述该区域中所有像素的运动。

视频编码的一些方法可以包括几何分区,其中矩形块(例如,如图1所示)被直线段进一步划分为两个可能是非矩形的区域。例如,图2是示出几何分区示例的示意图。可以沿着直线段P1P2 205将示例性矩形块200(可以具有M个像素的宽度和N个像素的高度,表示为MxN个像素)分成两个区域(区域0和区域1)。当区域0中的像素具有相似的运动时,运动向量可以描述该区域中所有像素的运动。运动向量可以用于压缩区域0。类似地,当区域1中的像素具有相似的运动时,关联的运动向量可以描述区域1中的像素的运动。这样的几何分区可以通过信号发送给接收器(例如,解码器),方法是对视频比特流中的位置P1和P2(或位置P1和P2的表示)进行编码。

当利用几何分区对视频数据进行编码时,可以确定直线段205(或更具体地,点P1和P2)。但是,直线段可能无法以反映对象边界的方式对块进行分区。因此,用直线段分区可能不能以有效的方式分区块(例如,使得任何产生的残差很小)。当块可以包含表示具有曲形(例如,非直线)边界的对象或边界的像素(例如,亮度样本)时,这是正确的。例如,现在参照图10,示出了包含苹果的图像,该图像可能无法被直线段有效地分区。苹果包括指示图像的部分的几个矩形块,如果根据几何分区使用直线段来分区,则该分区可能不会紧紧跟随对象(例如,苹果)边界。

当前主题的一些实施方式包括:利用曲线而非直线段将矩形块分区为非矩形区域。使用曲线对块进行分区可以使分区更紧密地遵循对象边界,从而得到较低的预测误差,较小的残差,从而提高了压缩效率。在一些实施方式中,曲线可以由指数函数表示。可以使用预定义的系数和/或索引来表示曲线(例如,指数函数),该预定义的系数和/或索引可以在比特流中用信号发送以供解码器使用。在一些实施方式中,指数分区可用于具有大于或等于8×8个亮度样本的块。通过用曲线分区矩形块,当前主题对于某些对象可以实现比仅限于直线段分区的技术(例如几何分区)更高的压缩效率。

图3A是示出根据当前主题的一些方面的指数分区示例的示意图,其可以增加压缩效率。矩形块300包括像素(例如,亮度样本)。矩形块300可以具有例如8×8个像素(例如,亮度样本)或更大的尺寸。

在图3A中,矩形块300可以通过曲线305被分区为两个区域(例如,分别为区域0和区域1,分别由310和315表示)。区域310内的所有亮度样本可以被认为具有相同或相似的运动,且可以用相同的运动向量表示。类似地,区域315内的所有亮度样本可以被认为具有相同或相似的运动,并且可以由相同的运动向量表示。在一些实施方式中,在划分矩形块300的曲线段305的左侧或上方的所有亮度样本可以被认为属于区域0(310)。在一些实施方式中,在划分矩形块300的曲线段305的右侧或下方的所有亮度样本可以被认为属于区域1(315)。在一些实施方式中,通过其划分矩形块300的曲线段的所有亮度样本都属于区域0(310)。在一些实施方式中,通过其划分矩形块300的曲线段的所有亮度样本可以被认为属于区域1(315)。其他实施方式也是可能的。

在一些实施方式中,通过执行指数分区,可以减少可能发生的分区的数量(例如,与几何分区相比),这可以减少评估运动估计以识别适当的分区(例如,识别分区块的最佳线段)的计算需求。在一些实施方式中,通过执行指数分区,与使用几何分区对视频进行编码相比,非矩形区域(例如310和315)可更紧密地遵循对象边界,从而减小预测误差、残余大小并增加压缩效率。

指数分区可以在比特流中表示。在一些实施方式中,可以利用指数分区模式,并且可以在比特流中用信号发送适当的参数。例如,指数分区可以通过用信号发送预定的指数分区模板来在比特流中表示。图3B是示出根据实施例的示例性模板分区的一系列示意图。这些规则的指数分区可以指定一组预先确定的方向。在一些实施方式中,可通过包含对预定义的这些规则(例如,模板)指数分区中的一个或多个的索引来执行信号发送。例如,图3C示出了根据一个实施例的与4个预定义模板(1、2、3、4)相关联的示例性曲线。在一些实施方式中,模板曲率的数量可能有所不同。

作为另一示例,可以通过发信号发送指示曲率度的预定系数来在比特流中表示指数分区,这可以允许附加的指数函数。

在一些实施方式中,在指数分区模式中使用的预定义模板可以指示直线段。例如,在图3C中,系数1索引的段是直线,可以认为是指数分区的特例,并且可以导致类似于几何分区的结果。

在一些实施方式中,既可以利用图3B所示的方向模板,也可以利用图3C所示的预定义模板,有效地对大量潜在的指数分区发出信号。

在一些实施方式中,起始和结束索引可以预先确定。例如,图3A示出了根据实施例开始于矩形块300的左下角,结束于矩形块300的右上角的曲线线段。在一些实施方式中,起始和结束索引可以在比特流中显式地表示。例如,图3D示出了另一个示例性块,显示了不同的起始P1和结束P2索引,它们分区了矩形块300。起始索引P1和结束索引P2可以直接通过信号发送,也可以由一组预先确定的值的索引指示。在一些实施方式中,其他参数是可能的。

在一些实施方式中,无需对于经历指数分区的每个块(例如,指数分区模式为真)都将指数分区参数包含在比特流中。例如,对于给定的当前块,指数分区参数可以从另一个块(有时称为父块)继承。父块可以在空间上和/或时间上相邻。父块可以在比特流中由一个预先确定的列表的索引来指示,和/或至少可以通过构造一个候选列表来指示,该候选列表的索引在比特流中用信号来发送。

图4是示出能够例如利用SADCT执行指数分区的视频编码器400的示例性实施例的系统框图。示例性视频编码器400接收输入视频405,该输入视频405可以根据诸如树形结构宏块分区方案(例如,四叉树加二叉决策树(QTBT))之类的处理方案被初始地分区或划分。树形结构宏块分区方案的示例可以包括将图片帧分区为称为编码树单元(CTU)的大块元素。在一些实施方式中,每个CTU可以进一步被一次或多次分区为多个称为编码单元(CU)的子块。该分区的结果可以包括可以称为预测单元(PU)的一组子块。也可以使用变换单元(TU)。这样的分区方案可以包括根据当前主题的一些方面执行指数分区。例如,图8示出了帧的QTBT分区的示例,图9示出了在图8中示出的QTBT的CU级别上的指数分区的示例。

示例性视频编码器400包括帧内预测处理器415、能够支持指数分区的运动估计/补偿处理器420(也称为帧间预测处理器)、变换/量化处理器425、逆量化/逆变换处理器430、环内滤波器435、解码图片缓冲器440和熵编码处理器445。在一些实施方式中,运动估计/补偿处理器420可以执行指数分区,包括确定当前块是否可以从另一个块继承指数分区参数,以及从哪个块继承。在一些实施方式中,变换/量化处理器425可以执行SADCT。可以将指示指数分区模式和继承的比特流参数输入到熵编码处理器445,以包括在输出比特流450中。

在操作中,对于输入视频405的帧的每个块,可以确定是经由帧内图片预测还是使用运动估计/补偿来处理该块。可以将块提供给帧内预测处理器410或运动估计/补偿处理器420。如果要经由帧内预测来处理该块,则帧内预测处理器410可以执行处理以输出预测值。如果要经由运动估计/补偿来处理块,则运动估计/补偿处理器420可以执行包括使用指数分区以输出预测值的处理。

残差可以通过从输入视频中减去预测值来形成。残差可以由变换/量化处理器425接收,其可以执行变换处理(例如,SADCT)以产生可以被量化的系数。可以将量化系数和任何相关联的信号发送信息提供给熵编码处理器445,以用于熵编码并将其包括在输出比特流450中。熵编码处理器445可以支持对与指数分区有关的信号发送信息进行编码。另外,可以将量化系数提供给逆量化/逆变换处理器430,其可以再现像素,该像素可以与预测值组合并由环内滤波器435进行处理,环路滤波器的输出存储在解码图片缓冲器440中,以供由能够支持指数分区的运动估计/补偿处理器420使用。

图5A是示出根据当前主题的一些方面的用指数分区对视频进行编码的示例性过程500A的过程流程图,该示例性过程500A可以减少编码复杂度同时增加压缩效率。在510A,视频帧可以例如使用树形结构宏块分区方案经历初始块分区,其可以包括将图片帧分区成CTU和CU。在520处,可以选择用于指数分区的块。该选择可以包括根据度量规则来识别将根据指数分区模式来处理该块。

在530A处,可以确定指数分区。可以确定一条曲线(例如305),该曲线将根据其帧间运动将包含在块内的像素分为两个非矩形区域(例如,区域0和区域1),从而使一个区域(例如,区域0)内的像素(例如,亮度样本)具有相似的运动,而另一个区域(例如,区域1)内的像素具有相似的运动。在550A时,可以在比特流中用信号发送所确定的指数分区。比特流中的信号发送可以包括例如将索引包括在一个或多个预定义模板和/或系数中。

图5B是一个过程流程图,示出了根据当前主题的某些方面使用指数分区对视频进行编码的示例性过程500B,其可以在提高压缩效率的同时降低编码复杂度。在510B,视频帧可以例如使用树形结构宏块分区方案经历初始块分区,其可以包括将图片帧分区成CTU和CU。在520B,可以选择用于指数分区的块。该选择可以包括根据度量规则来识别将根据指数分区模式来处理该块。

在530B处,可以确定指数分区。可以确定一条曲线(例如305),该曲线将根据其帧间运动将包含在块内的像素分为两个非矩形区域(例如,区域0和区域1),从而使一个区域(例如,区域0)内的像素(例如,亮度样本)具有相似的运动,而另一个区域(例如,区域1)内的像素具有相似的运动。

在540B处,可以确定分区参数表示,其可以包括确定当前块是否从另一个块继承指数分区参数以及当前块将从哪个其他块继承。

在550B处,可以在比特流中用信号发送所确定的指数分区。比特流中的信号发送可以包括,例如,将索引包括到空间和时间上相邻的块的预定列表中。

图5C是示出了根据当前主题的一些方面的利用指数分区和SADCT对视频进行编码的示例性过程500C的过程流程图,该过程可以减少编码复杂度同时增加压缩效率。在510C,视频帧可以例如使用树形结构宏块分区方案经历初始块分区,其可以包括将图片帧分区成CTU和CU。在520C,可以选择用于指数分区的块。该选择可以包括根据度量规则来识别将根据指数分区模式来处理该块。

在530C处,可以确定指数分区。可以确定一条曲线(例如305),该曲线将根据其帧间运动将包含在块内的像素分为两个非矩形区域(例如,区域0和区域1),从而使一个区域(例如,区域0)内的像素(例如,亮度样本)具有相似的运动,而另一个区域(例如,区域1)内的像素具有相似的运动。在540C,可以针对区域0和区域1中的一个或多个确定适当的变换。例如,可以确定区域0或区域1是否具有低预测误差。响应于确定区域0具有低的预测误差,可以使用SADCT对区域0进行编码。响应于确定区域1具有低的预测误差,可以使用SADCT对区域1进行编码。在一些实施方式中,当预测误差低于预定阈值时,可以认为区域具有低预测误差。

在550C处,可以在比特流中用信号发送所确定的指数分区和变换选择。比特流中的信号发送可以包括例如将索引包括在一个或多个预定义模板和/或系数中。比特流中的信号发送可以包括,例如,用信号发送SADCT作为对具有低预测误差的区域(例如,区域0或区域1)的全块DCT的附加变换选择。

图6是示出了示例性解码器600的系统框图,该示例性解码器600能够使用指数分区和/或逆SADCT来解码比特流670。解码器600包括熵解码器处理器610、逆量化和逆变换处理器620、解块滤波器630、帧缓冲器640、运动补偿处理器650和帧内预测处理器660。在一些实施方式中,比特流670包括以信号发送指数分区模式的参数。在一些实施方式中,比特流670包括用信号发送要应用的逆变换的类型的参数(例如,逆块DCT或逆SADCT)。运动补偿处理器650可以使用如本文所述的指数分区和/或逆SADCT来重构像素信息。

在操作中,解码器600可以接收比特流670,并将其输入到熵解码器处理器610,熵解码器处理器610将比特流熵解码为量化系数。可以将量化系数提供给逆量化和逆变换处理器620,其可以利用逆SADCT并根据比特流中的信号来执行逆量化和逆变换。逆变换可以创建残差信号,该残差信号可以根据处理模式被添加到运动补偿处理器650或帧内预测处理器660的输出。运动补偿处理器650和帧内预测处理器660的输出可以包括基于先前解码的块的块预测。预测和残差之和可以由解块滤波器630处理,并存储在帧缓冲器640中。对于给定的块(例如,CU或PU),当比特流670用信号发送分区模式是指数分区时,运动补偿处理器650可以基于本文描述的指数分区方案来构造预测,包括针对当前块,从比特流中提取空间和时间上相邻的块的预定列表的索引,并且针对所指示的块使用指数分区参数来重构当前块。

图7是示出了使用指数分区对比特流进行解码的示例性过程700的过程流程图,在一些实施方式中,该指数分区可以使用逆SADCT。在710,接收块(例如,CTU,CU,PU)。接收可以包括从比特流中提取和/或解析块以及相关联的信号发送信息。在720,可以确定是否对该块启用了指数分区模式(例如,真)。如果未启用指数分区模式(例如,假),则解码器可以使用诸如几何分区之类的替代分区模式来处理该块。如果启用了指数分区模式(例如,真),则在730,解码器可以提取和/或确定表征指数分区和变换的一个或多个参数。这些参数可以包括例如指数系数索引、指数系数值、方向模板索引和/或曲线的起点和终点的索引(例如,P1P2)。提取参数可以包括从比特流中识别和检索参数(例如,解析比特流)。所述参数可以包括例如可以指示是否使用逆SADCT来处理块的变换参数。此外,确定表征指数分区的一个或多个参数可以包括确定已经用信号发送了指数分区合并,并且使用包含在比特流中的索引,确定当前块从其继承指数分区参数的相邻块。在740,可以根据指数分区来处理该块(例如,以产生预测),包括确定每个区域的关联运动信息。在一些实施方式中,在740,可以利用逆SADCT来进一步处理该块。

尽管上面已经详细描述了一些变化,但是其他修改或添加是可能的。例如,在一些实施方式中,指数分区可以应用于对称块(8x8、16x16、32x32、64x64、128x128等)以及各种非对称块(8x4、16x8等)。

在一些实施方式中,可针对16×16或更大的亮度块大小(例如64x64和/或128x128)执行空间和时间指数参数预测。在一些实施方式中,可以强加最小块大小为16x16。

可以基于编码器中的速率失真决策在比特流中用信号发送分区。编码可以基于常规预定义分区(例如,模板)、分区的时间和空间预测以及附加偏移量的组合。每个指数分区的区域可以利用运动补偿的预测或帧内预测。在添加残差之前,可以平滑预测区域的边界。对于残差编码,编码器可以在整块的矩形DCT和每个区域的形状自适应DCT之间进行选择。

在一些实施方式中,可以实现四叉树加二叉决策树(QTBT)。在QTBT中,在编码树单元级别,动态地导出QTBT的分区参数以适应局部特征,而无需传输任何开销。随后,在编码单元(CU)级别,联合分类器决策树结构可以消除不必要的迭代并控制错误预测的风险。在一些实施方式中,指数分区可以作为在QTBT的每个叶节点上可用的附加分区选项来使用。在一些实施方式中,指数分区可用作QTBT分区的CU级别上的附加编码工具。例如,图8示出了帧的QTBT分区的示例,图8示出了帧的QTBT分区的示例。图9示出了在图8中示出的QTBT的CU级别上的指数分区的示例。

在一些实施方式中,解码器包括指数分区处理器,该指数分区处理器为当前块生成指数分区,并为从属过程提供所有与分区有关的信息。指数分区处理器可以直接影响运动补偿,因为在块被指数分区的情况下可以分段执行。此外,分区处理器可以将形状信息提供给帧内预测处理器和变换编码处理器。

在一些实施方式中,可以在比特流的不同层次级别处用信号发送附加的语法元素。为了对整个序列启用指数分区,可以在序列参数集(SPS)中编码启用标记。此外,可以在编码树单元(CTU)级别对CTU标记进行编码,以指示是否有任何编码单元(CU)使用指数分区。CU标记可以被编码以指示当前编码单元是否利用指数分区。可以对指定块上的曲线的参数进行编码。对于每个区域,可以对标记进行解码,该标记指定当前区域是帧间预测还是帧内预测。

在一些实施方式中,可以指定最小区域大小。

现在参考图11,呈现了示出根据指数分区而分区的另一示例性块1100的示意图。因为指数分区将很可能用于包含具有曲形对象边界的对象的块(例如,编码单元),所以该分区将有可能导致一个区域具有低预测误差,而另一区域具有高预测误差。例如,在图11中,根据指数分区用曲线分区块。假设块内的亮度样本表示一个球和背景,则两个区域(S0和S1)将分别包括对应于背景和球的亮度样本。结果,区域S0将具有高预测误差,因为区域S0与背景有关,而区域S1将具有低预测误差,因为区域S1与球有关。因此,当前主题的一些方面可以包括对具有低预测误差的区域执行SADCT。通过对具有低预测误差的区域执行SADCT,而不是执行全块DCT,可以提高压缩效率。

在一些实施方式中,在解码期间,可以从指数分区参数中推断出用于执行逆SADCT的参数。例如,可以从指数分区模板索引确定变换大小。

在一些实施方式中,可以针对尺寸为64x64和/或128x128的块来实施SADCT。在一些实施方式中,对于具有低预测误差的段,可以将SADCT作为附加变换选择用信号发送给全块DCT。

现在参考图12,呈现了当前块1205从空间上相邻的块1210继承指数分区参数的示意图。曲线指示图像中的对象边界1215。当前块1205和在空间上相邻的块1210指示四叉树加二叉决策树(QTBT)中的编码单元或预测单元块。如图所示,对象边界1215通常包括相对均匀的曲率。相邻块1210和当前块1205都将使用指数分区来分区。使用当前主题的一些实施方式,而不是发送所有指数分区参数(例如,形状和/或方向模板、系数的索引、起始索引、结束索引等),可以在特流中连同相邻块1210的索引用信号发送指数分区合并。在当前块的解码期间,当前块可以从所指示的相邻块继承一些或全部指数分区参数。图13示出了当前块的空间相邻块的示例。在空间上相邻的块可以包括与A0(左下)、A1(左)、B0(右上)、B1(上方)和B2(左上方)处于同一位置(例如重叠)的块。

另外,给定当前块从其继承指数分区参数的相邻块可以在时间上相邻。图14示出了示例性当前块1405,其具有在时间上相邻的块1410,当前块1405从其继承指数分区参数。如图14,参考图片1415包括具有相关运动向量1420的相邻块1410,其表征相邻块1410从参考图片1415到包含当前块1405的当前图片1425的运动。使用当前主题的一些实施方式,而不是发送所有指数分区参数(例如,形状和/或方向模板、系数的索引等),可以在比特流中用信号发送指数分区合并以及相邻块1410的索引。在当前块1405的解码期间,当前块1405可以从所指示的相邻块1410继承一些或全部指数分区参数。

在一些实施方式中,父块不必是相邻块,例如,可以是当前帧中先前已被解码的另一块。

在一些实施方式中,当前块只能从另一个块继承某些指数分区参数。例如,当前块可以从第一父块继承第一参数(例如,形状模板),并且附加参数(例如,起点、终点、方向模板等)可以被包括在比特流中。

本文描述的主题提供许多技术优点。例如,当前主题的一些实施方式可以提供对块的分区,以增加压缩效率。在一些实施方式中,通过以更紧密地遵循对象边界的方式实施分区,可以实现有效的视觉效果。类似地,在一些实施方式中,通过以更紧密地遵循对象边界的方式来实施分区,可以减少对象边界处的阻塞伪像。在一些实施方式中,通过将SADCT实施为对全块DCT的附加变换选择并将SADCT应用于具有低预测误差的指数分区的区域,可以提高压缩效率并且可以降低复杂度。

可以在数字电子电路、集成电路、专门设计的专用集成电路(ASIC)、现场可编程门阵列(FPGA)计算机硬件、固件、软件和/或其组合中实现本文所述主题的一个或多个方面或特征。这些各种方面或特征可以包括在一个或多个计算机程序中的实施方式,该计算机程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的,其耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。可编程系统或计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。

这些计算机程序(也可以称为程序、软件、软件应用程序、应用程序、组件或代码)包括用于可编程处理器的机器指令,并且可以以高级过程语言、面向对象的程序设计语言、功能性编程语言、逻辑编程语言和/或汇编/机器语言来实施。如本文所用,术语“机器可读介质”是指用于提供机器指令和/或数据到可编程处理器的任何计算机程序产品、装置和/或设备,例如磁盘、光盘、存储器和可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非暂时性地存储这种机器指令,例如非暂时性固态存储器或磁性硬盘驱动器或任何等效存储介质所实现的。机器可读介质可以替代地或另外地以瞬时方式存储这样的机器指令,例如处理器缓存或与一个或多个物理处理器核相关联的其他随机存取存储器所实现的。

为了提供与用户的交互,本文描述的主题的一个或多个方面或特征可以在具有显示设备的计算机上实现,该显示设备例如是用于向用户显示信息的阴极射线管(CRT)或液晶显示器(LCD)或发光二极管(LED)监视器以及键盘和定点设备(例如鼠标或轨迹球),用户可通过该定点设备向计算机提供输入。其他种类的设备也可以用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。其他可能的输入设备包括触摸屏或其他触敏设备,例如单点或多点电阻或电容触控板、语音识别硬件和软件、光学扫描仪、光学指示器、数字图像捕获设备和相关的解释软件等。

在上述说明书和权利要求书中,诸如“……中的至少一个”或“……中的一个或多个”的短语可以后跟一连串的要素或特征。术语“和/或”也可能出现在由两个或两个以上要素或特征组成的列表中。除非以明示或暗示的方式与其所使用的上下文相矛盾,否则这个短语是指列出的要素或特征中的任何单独的一个,或者是指所列举的任何要素或特征中的任何一个与任何一个其他要素或特征相结合。例如,短语“A和B中的至少一个”、“A和B中的一个或多个”和“A和/或B”分别意指“仅A、仅B、或A和B两者”。对于包含三个或三个以上项的列表也适用类似的解释。例如,短语“A、B和C中的至少一个”、“A、B和C中的一个或多个”、和“A、B和/或C”意指“仅A、仅B、仅C、A和B两者、A和C两者、B和C、或A和B和C三者。”此外,在上述和权利要求书中使用术语“基于”意指“至少部分基于”,使得未提及的特征或要素也是允许的。

本文所描述的主题可以根据所需的配置体现在系统、设备、方法和/或物品中。上述说明书中所述的实施方式并不代表与本文所述主题一致的所有实施方式。相反,它们只是与所描述的主题相关的方面相一致的一些例子。虽然上面已经详细描述了一些变化,但其他的修改或添加是可能的。特别地,除了本文所阐述的那些以外,还可以提供进一步的特征和/或变型。例如,上面描述的实施方式可以涉及所公开的特征的各种组合和子组合,以及/或上面所公开的几个进一步特征的组合和子组合。此外,在附图和/或本文中描述的逻辑流并不一定要求显示的特定顺序、或次序,以达到理想的结果。其他实施方式可能在以下权利要求书的范围内。

相关技术
  • 指数分区的方法与系统
  • 对储物装置进行分区管理的方法及系统、能够实现对储物装置进行分区管理的系统
技术分类

06120112978936