视频数据编码和解码的制作方法

文档序号:7864916阅读:216来源:国知局
专利名称:视频数据编码和解码的制作方法
技术领域
本发明涉及视频数据编码和解码。
背景技术
存在若干种视频数据压缩和解压缩系统(作为编码和解码系统的示例),这些系统涉及将视频数据变换为频域表示,量化频域系数并且然后向量化后的系数应用某种形式的熵编码。在本上下文中,熵可被认为是对数据符号或符号序列的信息内容进行表示。熵编码的目的是利用表示数据符号序列的信息内容所需要的最少量编码数据比特(理想地)以无损方式来编码该数据符号序列。在实践中,熵编码被用来对经量化系数编码以使得经编码数据小于(在其比特数目方面)原始的经量化系数的数据大小。更高效的熵编码处理对于相同输入数据大小给出更小的输出数据大小。在视频数据压缩中使用的熵编码处理的重要部分涉及经量化系数被呈现用于编码的顺序。通常,数据扫描或重排序处理被应用于经量化系数。扫描处理的目的是对经量化的频率变换后数据进行冲排序以便将尽可能多的非零经量化经变换系数收集在一起,当然,因此,将尽可能多的零值化系数收集在一起。这些特征可允许高效地应用所谓的行程长度编码或类似技术(其通过定义了行程的长度的较少量数据比特来对零的连续序列或行程进行编码)。因此,扫描处理涉及从经量化经变换数据中选择系数,并且具体地,根据“扫描顺序”从与经变换和经量化的图像数据块相对应的系数块中选择系数,以使得(a)作为扫描的一部分,所有系数都被选择一次,并且(b)扫描倾向于提供所希望的重排序。在实践方面,频域变换级的输出通常包括一组频域系数,这些系数根据它们在原始图像块中表示的水平和垂直空间频率而变化。一般地,存在表示原始图像块中的样本的平均(DC)值的所谓的“DC”系数,以及表示低的或高的水平和垂直空间频率范围的各自排列的一连串系数。这些系数被排序以用于发送给数据扫描处理的方式当然是任意的,但是为了方便经常将系数当作数据阵列,其中DC系数在该阵列的左上角,增大的水平空间频率在该阵列中从左向右的方向上被表示出并且增大的垂直空间频率在该阵列中从上到下的方向上被表示出。在这种表示下,已发现可提供有用结果的数据扫描处理就是所谓的zigzag扫描,其以DC系数开始并且然后以zigzag方式逐个前进通过其余系数。zigzag扫描的一个示例在附图中的图16中示意性地被示出。该扫描图案意味着在DC系数之后被扫描的前两个系数是分别表示(a)和(b)的那些系数:(a)零垂直空间频率和最低水平空间频率范围;以及(b)零水平空间频率和最低垂直空间频率范围。此后,扫描继续进行以使得一次一个系数地扫描系数阵列中的连续斜线(在坐下至右上的方向上)。沿着每条斜线,水平频率分量(或阵列位置的水平部分)和垂直频率分量(或阵列位置的垂直部分)之和一般为常数。实际上,沿着每次斜线扫描,在图16的实施例中该和为常数。
zigzag扫描被认为是有益的,因为对于许多常规类型的图像,并且具体地对于从真实场景捕获的图像,信息内容的大部分倾向于位于DC和低频系数中。通常是许多或所有更高频系数为零的情况。在诸如所提出的“高效率视频编码”(HEVC)系统之类的对残差图像数据(即,表示实际图像与该图像的预测版本之间的差异的数据)编码的系统中尤其是这种情况。因此,通过首先扫描DC和较低频系数,非零值可倾向于被收集在一起并且零值也可倾向于被收集在一起。如上面提到的,这可带来更高效的熵编码处理。所谓的“推测”(“speculation”)可被用在解码处理中。基本地,特定数据值(例如,经量化DCT系数)的解码可能受到相邻数据值的解码的影响。例如,在称为CABAC(上下文自适应二进制算术编码)系统的熵编码系统中,诸如被用作编码和解码处理一部分的上下文值和所指派代码值之类的数据项可取决于在空间上位于附近的先前经编码系数数据的数据值以及在编码顺序上位于附近的数据的解码系数。在解码侧,如果数据按照它们被编码的顺序相同的串行顺序被解码,并且一个数据项的解码在任何相关数据需要被用于下一数据项的解码之前完成,则不难知道先前经编码数据的值从而生成用于解码下一数据项的所需上下文数据。但是,如果数据值被并行地解码,则将出现困难。在这样的并行解码操作中,解码将不按这种简单的串行顺序被处理,并且在先编码的解码结果不能及时地被获得以用作下一解码的一部分。因此,在实际数据值被解码之前,“推测”被用来生成所需附近数据值的一组可能的解码结果,以便针对当前数据项的经解码值解码出一组选项。因此,在给定了在先数据项的可能的(尚不知道的)解码结果的情况下,该组选项表示当前数据值的一组可能的解码。当所需附近数据值最终被解码时,该组选项中的正确的一个选项被选择。因此,这可比上述简单串行解码顺序要快,因为到在先编码的解码结果被知道的时间,关于下一解码项,剩余要做的所有事情是选择所预备的一组选项中的一个正确选项。但是,当然,推测也具有缺点,具体地,推测的程度越大,即,以这种方式处理的相链接的相互依赖的解码结果的数目越大,则可能结果的排列数目就越大。因此,尤其是在基于硬件系统的境况下,越大的推测的程度可带来如下代价:需要呈指数增长的推测解码器来生成各组选项。因此,希望致力于限制或减少对推测的需求。

发明内容
本发明提供了一种视频数据编码装置,其中,频域视频数据的阵列被重排序用于由编码器编码,该编码器使用与当前阵列元素的编码有关的编码参数,编码参数是从先前经编码的阵列元素和/或在视频数据的阵列中具有在当前阵列元素附近的位置的阵列元素得出的,装置包括:最后数据项检测器,用于根据搜索图案在当前阵列中搜索最后的非零阵列元素,搜索图案在恒定水平空间频率或恒定垂直空间频率的一个或多个集合中搜索分别跟随有根据连续子集被重排序的阵列的任何其余阵列元素的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的;以及数据扫描器,用于根据重排序图案来改变用于熵编码的阵列元素的顺序以便生成包含连续子集的经重排序的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的,重排序图案以最后数据项检测器所检测到的最后的非零阵列元素结束。本发明提供了用于编码和解码的经改进的技术,在本发明的实施例中,该技术能够减少对解码结果的推测的需要。本发明的其它相应方面和特征在所附权利要求中定义。


现在参考附图描述本发明的实施例,在附图中:图1示意性地图示出了使用视频数据压缩和解压缩的音频/视频(A/V)数据发送和接收系统;图2示意性地图示出了使用视频数据解压缩的视频显示系统;图3示意性地图示出了使用视频数据压缩和解压缩的音频/视频存储系统;图4示意性地图示出了使用视频数据压缩的视频相机;图5提供了视频数据压缩和解压缩装置的示意概况;图6示意性地图示出了预测图像的生成;图7示意性地图示出了最大编码单元(LCU);图8示意性地图示出了一组的四个编码单元(⑶);图9和图10示意性地图示出了图8的编码单元被细分成更小编码单元;图11示意性地图示出了预测单元(PU)的阵列;图12示意性地图示出了变换单元(TU)的阵列;图13示意性地图示出了经部分编码的图像;图14示意性地图示出了一组可能的预测方向;图15示意性地图示出了一组预测模式;图16示意性地图示出了 zigzag扫描;图17示意性地图示出了 CABAC熵编码器;图18示意性地图示出了 CAVLC熵编码处理;图19示意性地图示出了先垂直的凹形扫描顺序;图20示意性地图示出了先水平的凹形扫描顺序;图21示意性地图示出了碎片混合zig扫描顺序;图22示意性地图示出了垂直混合zig扫描顺序;图23示意性地图示出了矩形扫描顺序;图24示意性地图示出了关于4x4个子块的模式相关扫描;图25示意性地图示出了用于检测块的末尾的扫描;图26示意性地图示出了直到块的末尾的增强扫描;图27示意性地图示出了块的末尾位于最上系数行的情况中的扫描;图28A和图28B示意性地图示出了吞吐量友好的zig扫描;图29A和图29B示意性地图示出了依据与块相关联的内部模式预测方向对扫描顺序的选择;图30示意性地图示出了定义与块相关联的扫描顺序的数据字段;图31示意性地图示出了内部模式预测方向检测器;
图32示意性地图示出了运动向量检测器;图33示意性地图示出了编码器处的扫描顺序选择布置;以及图34示意性地图示出了解码器处的扫描顺序选择布置。
具体实施例方式现在参考附图,图1-4被提供来给出将结合本发明实施例描述的利用压缩和/或解压缩装置的装置或系统的示意图示。下面将描述的所有数据压缩和/或解压缩装置可以用硬件、在诸如通用计算机之类的通用数据处理装置上运行的软件来实现,被实现为诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)之类的可编程硬件或者这些的组合。在通过软件和/或固件实现这些实施例的情况中,将理解,这样的软件和/或固件以及用于存储或以其它方式提供这样的软件和/或固件的非临时性机器可读数据存储介质被认为是本发明的实施例。图1示意性地图示出了使用视频数据压缩和解压缩的音频/视频数据发送和接收系统。输入音频/视频信号10被提供给视频数据压缩装置20,视频数据压缩装置20至少压缩该音频/视频信号10的视频分量以用于沿着诸如线缆、光纤、无线链路等之类的传输路线30传输。经压缩信号由解压缩装置40处理以提供输出音频/视频信号50。对于返回路径,压缩装置60压缩音频/视频信号以用于沿着传输路线30传输给解压缩装置70。压缩装置20和解压缩装置70因此可形成传输链路的一个节点。解压缩装置40和压缩装置60可形成该传输链路的另一节点。当然,在传输链路为单向的情况中,这些节点中的仅一个节点需要压缩装置并且另一节点只需要解压缩装置。图2示意性地图示出了使用视频数据解压缩的视频显示系统。具体地,经压缩音频/视频信号100由解压缩装置110处理以提供可显示在显示器120上的解压缩信号。解压缩装置110可被实现为例如设置在与显示设备相同外壳内的显示器120的组成部分。替代地,解压缩装置110可被提供作为(例如)所谓的机顶盒(STB),注意表述“机顶”并不隐含着需要盒子相对于显示器120以任何特定朝向或位置被设置;其仅仅是本领域中用来指示可作为外围设备与显示器相连接的一种设备的术语。图3示意性地图示出了使用视频数据压缩和解压缩的音频/视频存储系统。输入音频/视频信号130被提供给压缩装置140,压缩装置140生成供存储设备150存储的压缩信号,存储设备150例如是磁盘设备、光盘设备、磁带设备、固态存储设备(诸如半导体存储器)或其它存储设备。在重放时,压缩数据从存储设备150被读取并被传递给解压缩装置160解压缩以提供输出音频/视频信号170。将理解,压缩信号或编码信号以及存储该信号的存储介质被认为是本发明的实施例。图4示意性地图示出了使用视频数据压缩的视频相机。在图4中,图像捕获设备180 (诸如电荷耦合器件(CCD)图像传感器和相关联的控制与读出电子设备)生成被传递给压缩装置190的视频信号。麦克风(或多个麦克风)200生成将被传递给压缩装置190的音频信号。压缩装置190生成将被存储和/或发送(大体地被示为示意级220)的经压缩音频/视频信号210。
下面描述的技术主要涉及视频数据压缩。将理解,许多现有技术可结合将要描述的视频数据压缩技术被用于音频数据压缩,以生成经压缩的音频/视频信号。因此,将不提供对音频数据压缩的单独讨论。还将理解,与视频数据,尤其是广播质量视频数据相关联的数据速率一般比与音频数据(无论是压缩的还是未经压缩的)相关联的数据速率高得多。因此,将理解,未经压缩音频数据可伴随着经压缩视频数据以形成经压缩音频/视频信号。还将理解,虽然这些示例(在图1-4中示出)涉及音频/视频数据,但是下面将描述的技术可在简单地处理(即,压缩、解压缩、存储、显示和/或发送)视频数据的系统中找到应用。即是说,实施例可适用于视频数据压缩而完全不必具有任何相关联的音频数据处理。图5提供了视频数据压缩和解压缩装置的示意概况。输入视频信号300的连续图像被提供给加法器310和图像预测器320。将参考图6更详细描述图像预测器320。加法器310实际上执行减法(负加法)操作,因为其在“ + ”输入端上接收输入视频信号300并且在输入端上接收图像预测器320的输出,以使得从输入图像减去预测出的图像。结果是生成表示实际图像与预测图像之差的所谓的残差图像信号330。生成残差图像信号的一个原因如下。将要描述的数据编码技术,即,将应用于残差图像信号的技术,倾向于在将被编码的图像中存在较少“能量”时工作得更高效。这里,术语“高效”是指生成少量的编码数据;对于特定的图像质量水平,希望切实可行地生成尽可能少的数据(并被认为是“高效”的)。对残差图像中的“能量”的引用涉及残差图像中包含的信息量。要是预测图像与真实图像相同,则二者之间的差异(即,残差图像)将不包含信息(零能量)并且将非常容易编码成少量的编码数据。一般地,如果可使预测处理相当良好地工作,则期望是残差图像数据与输入图像相比包含很少的信息(很少的能量)并且因此将更容易编码成少量的编码数据。残差图像数据330被提供给变换单元340,变换单元340生成残差图像数据的离散余弦变换(DCT)表示。DCT技术本身是公知的,因此将不在此详细描述。然而,将在下面更详细描述在本装置中使用的技术的各方面,尤其是涉及要应用DCT操作的数据的不同块的选择的方面。下面将参考图7-12讨论这些。变换单元340的输出,即,用于图像数据的每个经变换块的一组DCT系数,被提供给量化器350。在视频数据压缩领域中已知了各种量化技术,从简单地乘以量化比例因子到在量化参数的控制下应用复杂的查找表。一般目的是双重的。首先,量化处理减少了经变换数据的可能值的数目。其次,量化处理可增加经变换数据的值为零的可能性。这两者可使下面将描述的熵编码处理在生成较少量压缩视频数据方面更高效地工作。数据扫描处理由扫描单元360应用。扫描处理的目的是对经量化经变换数据进行重排序以便将尽可能多的非零经量化经变换系数收集在一起,当然,因此将尽可能多的零值化系数收集在一起。这些特征可允许高效地应用所谓的行程长度编码或类似技术。因此,扫描处理涉及从经量化经变换数据中选择系数,并且具体地根据“扫描顺序”从与经变换经量化的图像数据块相对应的系数块中选择系数,以使得(a)作为扫描的一部分,所有系数被选择一次,并且(b)扫描倾向于提供所希望的重排序。下面将描述用于选择扫描顺序的技术。可倾向于给出有用结果的一个示例扫描顺序是所谓的zigzag扫描顺序。经扫描系数然后被传递给熵编码器(EE)370。再次地,可以使用各种类型的熵编码。下面将描述的两个示例是所谓的CABAC(上下文自适应二进制算术编码)系统的变体以及所谓的CAVLC (上下文自适应可变长度编码)系统的变体。一般而言,CABAC被认为提供更好的效率,并且一些研究中显示,与CAVLC相比,对于可比较图像质量,在经编码输出数据数量上提供了 10-20%的降低。然而,CAVLC被认为与CABAC相比表现出低得多的复杂度水平(就其实现方式而言)。CABAC技术将在下面参考图17进行讨论,并且CAVLC技术将在下面参考图18和图19进行讨论。注意,扫描处理和熵编码处理被示为分开的处理,但是实际上可被组合起来或一起创建。即是说,将数据读进熵编码器可按扫描顺序发生。相应考虑适用于下面将描述的各个逆处理。熵编码器370的输出与例如定义了预测器320生成预测图像的方式的额外数据(上面提到的和/或下面讨论的)一起提供了经压缩输出视频信号380。然而,还提供了返回路径,因为预测器320本身的操作取决于压缩输出数据的解压缩版本。该特征的原因如下。在解压缩处理(下面将讨论的)中的适当级中,残差数据的解压缩版本被生成。该解压缩的残差数据必须被添加到预测图像中以生成输出图像(因为原始残差数据是输入图像与预测图像之差)。为了使该处理在压缩侧与解压缩侧指间是可比较的,由预测器320生成的预测图像在压缩处理期间和解压缩处理期间应当相同。当然,在解压缩时,装置无权访问原始输入图像,而仅有权访问解压缩图像。因此,在压缩时,预测器320使其预测(至少对于图像内编码而言)基于压缩图像的解压缩版本。由熵编码器370执行的熵编码处理被认为是“无损的”,即是说,其可被反转以获得最早被提供给熵编码器370的完全相同的数据。因此,返回路径可在熵编码级之前被实现。实际上,由扫描单元360执行的扫描处理也被认为是无损的,但是在本实施例中,返回路径390是从量化器350的输出到互补逆量化器420的输入。—般而言,熵解码器410、反向扫描单元400、逆量化器420和逆变换单元430分别提供熵编码器370、扫描单元360、量化器350和变换单元340的逆功能。现在,将继续讨论压缩处理;对输入的经压缩视频信号进行解压缩的处理将在下面单独讨论。在压缩处理中,经扫描的系数由返回路径390从量化器350传递给逆量化器420,逆量化器420执行扫描单元360的逆操作。逆量化和逆变换处理由单元420、430执行以生成经压缩-经解压缩的残差图像信号440。图像信号440在加法器450处被加到预测器320的输出以生成重构输出图像460。这形成了图像预测器320的一个输入,如下面将讨论的。现在转向被应用于所接收的压缩视频信号470的处理,该信号被提供给熵解码器410,并且在被加法器450加入图像预测器320的输出之前,从这被提供给反向扫描单元400、逆量化器420和逆变换单元430的链。简言之,加法器450的输出460形成了解压缩的输出视频信号480。在实际中,在该信号被输出之前可应用进一步的滤波。图6示意性地图示出了预测图像的生成以及具体地图像预测器320的操作。存在两种基本模式的预测:所谓的图像内预测和所谓的图像问或运动补偿(MC)预测。图像内预测使对图像块的内容的预测基于来自同一图像的数据。这对应于其它视频压缩技术中的所谓的I帧编码。与整个图像被进行内部编码的I帧编码相比,在本发明的实施例中,可以逐个块地在帧内编码和帧间编码之间进行选择,尽管在本发明的其它实施例中,该选择仍然逐个图像地进行。运动补偿预测利用运动信息,该运行信息试图定义在另一相邻或邻近图像中的将被编码在当前图像中的图像细节的源。因此,在理想示例中,预测图像中的图像数据块的内容可被非常简单地编码作为指向位于相邻图像中的相同或稍微不同位置处的对应块的参考(运动向量)。返回图6,示出了两个图像预测布置(对应于图像内和图像间预测),其结果在模式信号510的控制下由乘法器500来选择,以便提供预测图像的块用于提供给加法器310和450。该选择根据哪种选择给出最低“能量”(如上面讨论的,其可被认为是需要编码的信息内容)来进行,并且该选择在经编码输出数据流内被用信号传输给编码器。在此上下文中,例如,可以通过执行从输入图像试验地减去两个版本的预测图像的区域,对差图像的每个像素值进行平方,对平方值求和,并且识别这两个版本中哪个版本产生了与该图像区域有关的差图像的较低均方值,来选择图像能量。图像内编码系统中的实际预测是基于作为信号460 —部分被接收的图像块的,SP是说,该预测是基于经编码-经解码图像块的,以使得在解压缩装置处可以进行完全相同的预测。然而,可由内部模式选择器520从输入视频信号300得出数据以控制图像内预测器530的操作。对于图像内预测,运动补偿(MC)预测器540使用由运动估计器550从输入视频信号300得出的诸如运动向量之类的运动信息。这些运动向量由运动补偿预测器540应用于重构图像460的处理版本,以生成图像间预测块。现在描述应用于信号460的处理。首先,由滤波器单元560对该信号滤波。这涉及应用“解块”滤波器来移除或至少倾向于减少由变换单元340和后续操作执行的基于块的处理的影响。此外,利用通过处理重构信号460和输入视频信号300而得出的系数来应用自适应环路滤波器。自适应环路滤波器是这样的一类滤波器,其使用已知技术来将自适应滤波器系数应用于将被滤波的数据。即是说,滤波器系数可取决于各种因素而变化。定义了要使用哪种系数的数据被包括作为经编码输出数据流的一部分。来自滤波器单元560的经滤波输出实际上形成了输出视频信号480。其还被缓冲在一个或多个图像存储装置570中;连续图像的存储是对运动补偿预测处理的需求,并且具体地是运动向量的生成。为了节省存储需求,存储在图像存储装置570中的图像可以以压缩形式被保存并且然后被解压缩用于生成运动向量。为了这个特定的目的,可以使用任何已知的压缩/解压缩系统。所存储图像被传递给内插滤波器580,内插滤波器580生成所存储图像的更高分辨率版本;在此示例中,中间样本(子样本)被生成以使得由内插滤波器580输出的经内插图像的分辨率是存储在图像存储装置570中的图像的8倍(在每个维度中)。经内插图像作为输入被传递给运动估计器550并且还被传递给运动补偿预测器540。在本发明的实施例中,提供了另一可选级,其利用触发器600将输入视频信号的数据值乘以因子4 (实际上只是将数据值向左位移两位),并且使用除法器或右移器610在装置的输出处应用相应的除法操作(右移两位)。因此,左移和右移改变纯粹用于装置的内部操作的数据。随着任何数据舍入误差的影响被减小,该措施可以在装置内提供更高的计算精度。现在将描述将图像分割用于压缩处理的方式。在基本层面上,将被压缩的图像被当作样本的块的阵列。为了本讨论的目的,所关注的最大的这样的块是所谓的最大编码单元(IXU) 700 (图7),该单元表示64x64个样本的方阵列。这里,讨论涉及亮度样本。取决于色度模式,例如4:4: 4,4:2: 2,4:2:0或4:4:4: 4 (GBR加上键数据),将存在于亮度块相对应的不同数目的对应色度样本。将描述三种基本类型的块:编码单元、预测单元和变换单元。一般而言,IXU的递归细分允许以如下方式来分割输入图片:可根据将被编码的图像的具体特性来设置块大小和块编码参数(诸如预测或残差编码模式)两者。IXU可被细分成所谓的编码单元(⑶)。编码单元总是方形的并且大小在8x8个样本与IXU 700的整个大小之间。编码单元可被布置为一种树结构,以使得第一次细分可如图8所示那样产生,从而给出32x32个样本的编码单元710 ;后续细分然后可基于选择来进行从而给出16x16个样本的编码单元720 (图9)以及潜在地8x8个样本的一些编码单元730 (图10)。总体上,该处理可以提供CU块的内容自适应编码树结构,每个CU块可以有IXU那么大或者可以为8x8个样本那么小。对输出视频数据的编码基于该编码单元结构而进行。图11示意性地图示出了预测单元(PU)的阵列。预测单元是用于携带与图像预测处理有关的信息的基本单元,或者换言之,被添加到经过熵编码的残差图像数据以形成图5的装置的输出视频信号的额外数据。一般地,预测单元的形状不被约束为正方形。它们可采取其他形状,具体地,采取形成正方形编码单元之一的一半的矩形形状,只要编码单元大于最小(8x8)大小即可。目的在于允许相邻预测单元的边界与图片中的真实对象的边界相匹配(尽可能地接近),以使得不同预测参数可被应用于不同的真实对象。每个编码单元可以包含一个或多个预测单元。图12示意性地图示出了变换单元(TU)的阵列。变换单元是变换和量化处理的基本单元。变换单元总是方形的并且可以采取从4x4直到32x32个样本的大小。每个编码单元可以包含一个或多个变换单元。图12中的缩写词SDIP-P表示所谓的短距离阵内预测分害I]。在此布置中,仅使用了一维变换,因此4xN块经历N次变换,其中用于变换的输入数据是基于当前SDIP-P内的先前编码的相邻块以及先前编码的相邻行的。现在讨论图像内预测处理。一般而言,图像内预测涉及从同一图像中的先前经编码且经解码的样本中生成当前块(预测单元)的样本的预测。图13示意性地图示出了经部分编码的图像800。这里,该图像以IXU为基础从左上至右下被编码。在整个图像的处理中被编码的一个示例IXU被示为块810。块810以上和以左的阴影区域820已经被编码。块810的内容的图像内预测可以使用阴影区域820的任何部分,但是不能使用其下面的非阴影区域。块810表示IXU ;如上面讨论的,为了图像内预测处理的目的,其可被细分为一组更小的预测单元。预测单元830的示例在IXU 810内示出。图像内预测考虑到了当前IXU 810以上和/或以左的样本。从其预测出所需要样本的源样本可以位于LCU 810内相对于当前预测单元的不同位置或方向上。为了决定哪个方向适合于当前预测单元,将基于每个候选方向的试验预测结果相比较以便得知哪个候选方向给出与输入图像的对应块最接近的结果。给出最接近结果的候选方向被选为用于该预测单元的预测方向。图片也可以基于“切片”(slice)被编码。在一个示例中,切片是水平相邻的IXU的组。但是,更一般而言,整个残差图像可形成一个切片,或者切片可以是单个IXU,或者切片可以是一行LCU,等等。切片可给予对于误差的一定弹性,因为它们作为独立的单元被编码。编码器和解码器状态在切片边界处完全被重设。例如,图像内预测不会跨越切片边界执行;为此,切片边界被当做图像边界。图14示意性地图示出了一组可能的(候选)预测方向。完整的该组34个候选方向可用于8x8,16x16或32x32个样本的预测单元。预测单元大小为4x4和64x64个样本的特殊情况具有可供它们使用的减少了的候选方向组(分别为17个候选方向和5个候选方向)。方向是通过相对于当前块位置的水平和垂直移位(displacement)来确定的,但是被编码为预测“模式”,一组这样的预测“模式”在图15中示出。注意,所谓的DC模式表示周围的左上边样本的简单算术平均。图16示意性地图示出了作为可由扫描单元360应用的扫描图案的zigzag扫描。在图16中,该图案针对8x8个DCT系数的示例块被示出,其中,DC系数位于该块的左上位置840处,并且增大的水平和垂直空间频率由从左上位置840向下且向右的、增大的距离处的系数来表示。注意,在一些实施例中,系数可按反向顺序被扫描(利用图16的排序记号来说,从右下到左上)。此外,还应注意,在一些实施例中,在执行zigzag的其余系数之前,扫描可以从左向右经过少数(例如I与3之间)最上面的水平行。图17示意性地图示出了 CABAC熵编码器的操作。CABAC编码器相对于二进制数据,即,仅由两个符号I和O表示的数据进行操作。编码器利用所谓的上下文建模处理,该处理基于先前编码的数据来选择用于后续数据的“上下文”或概率模型。上下文的选择以确定性方式来执行以使得基于先前解码数据的同一确定可在解码器处被执行,而无需将其它数据(指定该上下文)添加到传递给解码器的经编码数据流中。参考图17,如果将被编码的输入数据尚未具有二进制形式,则其可被传递给二进制转换器900 ;如果该数据已经是二进制形式,则转换器900被旁路掉(通过示意开关910)。在本实施例中,二进制形式的转换实际上是通过将经量化的DCT系数数据表达为二进制“映射图”序列来执行的,这将在下面进一步描述。二进制数据然后可通过两条处理路径之一来处理,这两条处理路径是“常规”和“旁路”路径(其示意性地被示为分离的路径,但是在下面讨论的本发明的实施例中,实际上可以通过只是使用稍微不同参数的相同处理级来实现)。旁路路径采用所谓的旁路编码器920,该旁路编码器920不需要使用与常规路径相同形式的上下文建模。在CABAC编码的一些示例中,如果需要对成批数据进行特别快速的处理,则该旁路路径可被选择,但是在本实施例中,注意到所谓的“旁路”数据的两个特征:首先,旁路数据由只是使用表示50%概率的固定上下文模型的CABAC编码器(950,960)处理;其次,旁路数据与某些类别的数据(一个具体示例是系数符号数据)有关。另外,常规路径通过示意开关930、940来选择。这涉及通过编码引擎960后面的上下文建模器950来处理数据。
图17所示的熵编码器将数据块(即,例如,与残差图像的块有关的系数块所对应的数据)编码为单个值,如果该块完全由零值化数据形成的话。对于未落入此类别的每个块,即,包含至少一些非零数据的块,制备“重要性映射图”。该重要性映射图指示对于将被编码的数据块中的每个位置,该块中的对应系数是否为非零的。对二进制形式的重要性映射图数据进行自身的CABAC编码。重要性映射图的使用有助于进行压缩,因为对于重要性映射图指示其大小为零的系数,没有要编码的数据。此外,重要性映射图可以包括指示块中的最后的非零系数的特殊代码,以使得可免于对所有的最终高频/后补零系数进行编码。在经编码比特流中,重要性映射图之后跟随着定义该重要性映射图所指定的非零系数的值的数据。其它水平的映射数据也被制备并被进行CABAC编码。一个示例是这样的映射图,其定义作为二进制值(I =是,O =否)的,位于重要性映射图指示为“非零”的映射图位置处的系数数据实际上是否具有值“I”。另一映射图指定位于重要性映射图指示为“非零”的映射图位置处的系数数据实际上是否具有值“2”。又一映射图指示,对于重要性映射图已指示系数数据为“非零”的那些映射图位置,数据是否具有“大于2”的值。再次地对于被标识为“非零”的数据,另一映射图指示数据值的符号(对于+使用诸如I之类的预定二进制记号,对于-使用诸如O之类的预定二进制记号,或者当然,反过来也可以)。在本发明的实施例中,重要性映射图和其它映射图例如由扫描单元360从经量化DCT系数来生成,并且在经历CABAC编码之前经历zigzag扫描处理(或者根据图像内预测模式从zigzag、水平光栅和垂直光栅扫描中选出的扫描处理)。一般而言,CABAC编码涉及,对于将被编码的下一比特,基于在数据元素阵列中离当前数据元素具有邻近位置的数据元素和/或其它先前经编码数据,来预测上下文或者概率模型。如果该下一比特与通过概率模型被标识为“最可能”的比特相同,则可以极高效地对“下一比特与概率模型相符”的信息的编码进行编码。编码“下一比特不与概率模型相符”是不太高效的,因此上下文数据的推导对于编码器的良好操作来说是重要的。术语“自适应”是指上下文模型或概率模型在编码期间被改编或改变,以便提供与(尚未编码的)下一数据的良好匹配。使用一个简单的比喻,在书面英语中,字母“U”是相当罕见的。但是,在紧邻字母“Q”之后的字母位置中,实际上其是极常见的。因此,概率模型可将U的概率设为极低值,但是如果当前字母是“Q”,则“U”作为下一字母的概率模型可被设为极高的概率值。CABAC编码在本发明的布置中至少被用于重要性映射图以及指示非零值是I还是2的映射图。旁路处理在这些实施例中等同于CABAC编码,但是对于在I和O的相等(0.5: 0.5)概率分布处概率模型固定的事实,其至少被用于符号数据和指示值是否大于2的映射图。对于被标识为大于2的那些数据位置,单独的所谓的逃脱数据编码(escapedataencoding)可被用来对数据的实际值编码。这可以包括Golomb-Rice编码技术。因此,被应用于这里讨论的数据的CABAC处理和CAVLC处理是视频数据编码技术的示例(在本发明的实施例中由将要描述的装置实现),其中,利用与当前阵列元素有关的编码参数(例如,上下文变量)来对被重排序(例如通过本文中描述的扫描处理)以用于编码的频域视频数据的阵列进行编码,上述编码参数是从先前编码的阵列元素和/或在视频数据阵列中离当前阵列元素具有邻近位置的阵列元素得出的。
CABAC 上下文建模和编码处理在 WD4:Working Draft 4 of High-EfficiencyVideo Coding, JCTVC-F803_d5, Draft IS0/IEC 23008-HEVC ;201x (E) 2011-10-28 中有更详细的描述。图18示意性地图示出CAVLC熵编码处理。与上面讨论的CABAC —样,图18所示的熵编码处理跟随在扫描单元360的操作之后。已经注意到,经变换和经扫描的残差数据中的非零系数常常是±1的序列。CAVLC编码器通过称为“拖尾Is” (trailing Is, Tls)的变量来指示高频±1系数的数目。对于这些非零系数,通过使用不同的(上下文自适应)可变长度编码表来提高编码效率。参考图18,第一步1000生成值“C0eff_t0ken”(系数令牌)以对非零系数的总数和拖尾I的数目两者进行编码。在步骤1010,每个拖尾I的符号比特以反向扫描顺序被编码。在步骤1020,每个剩余非零系数被编码为“电平”变量,因此定义了这些系数的符号和大小。在步骤1030,变量total_zeix)S (总数_零)被用来对最后的非零系数之前的零的总数进行编码。最后,在步骤1040,变量rurubefore(行程_之前)被用来按反向扫描顺序对每个非零系数之前的连续零的数目进行编码。所收集的以上定义变量的输出形成了经编码数据。在CAVLC中,根据“上下文”来编码数据元素,该“上下文”可能是从先前经编码的数据元素和/或在空间上邻近的数据元素(或者在数据元素阵列中附近的数据元素)得出的。如上面提到的,由扫描单元360执行的扫描操作的默认扫描顺序,即,zigzag扫描在图16中示意性地示出。在其它布置中,使用进行图像内编码的四个块,可取决于图像预测方向(图15)和变换单兀(TU)大小来在zigzag扫描、水平光栅扫描和垂直光栅扫描之间作出选择。然而,在本发明的实施例中,可以采用不同扫描顺序。可以以各种不同方式来在扫描顺序之间作出选择,这些方式的示例将在下面描述。例如,如上面参考图15所示的模式组讨论的,可根据被建立用于图像内编码的预测方向(模式)来作出选择。另一示例涉及扫描顺序取决于由图6的运动估计器550得出的运动向量的特性的布置。方向信息是相关的的原因在于,取决于要压缩的块中的图像特征的方向或朝向,不同扫描顺序可给出后续熵编码处理的不同效率。在另一示例中,扫描模式是基于对要扫描的数据的特性的分析或者基于试验编码处理和对通过每种候选扫描技术产生的数据量的比较来选择的。在本发明的实施例中,这些变化适用于诸如CABAC熵编码和CAVLC熵编码之类的算术编码技术的运用。将在视频数据阵列被重排序用于熵编码的示例视频数据编码装置(例如上面描述的)的上下文中来描述以下布置,该装置包括:频域转换器,用于生成从输入视频信号得到的数据的频域表示,所述频域表示包含与每个图像区域有关的多个频域系数的阵列(将根据本发明的实施例被编码的阵列元素取决于频域系数);选择器,用于从两个或更多个候选重排序图案的集合中选择用于对频域系数的阵列进行重排序的重排序图案;数据扫描器,用于根据所选重排序图案改变频域系数的顺序以生成经重排序的系数;以及熵编码器,用于对经重排序的系数进行熵编码。在本发明的实施例中,量化器被提供来在频域系数被数据扫描器重排序之前量化这些系数。在本发明的实施例中,映射图生成器被提供用于生成二进制数据,所述二进制数据指示特定的相应值或特定的相应范围的值的系数在该频域系数阵列中的位置。如上面提到的,这些技术尤其适用于残差数据的编码,残差数据可能倾向于具有较低的图像能量并且因此更适合于熵编码。为此,如上所述,本发明的实施例包括图像预测器,用于生成输入视频信号的当前图像的预测版本;以及组合器,用于将当前图像与该图像的预测版本相组合以生成残差图像;频域转换器被配置为生成残差图像的频域表
/Jn ο图19-20分别示意性地图示出了先垂直凹形扫描顺序和先水平凹形扫描顺序。这些是被布置来重排序频域数据以使得重排序后的数据包含该频域数据的连续子集的第一重排序图案,每个子集包含表示一个维度中的恒定空间频率的数据,该一个维度随着子集而不同。常规地,使用这样的标记法,其中,DC系数被表示为附图中所示的系数阵列1100的左上角,并且由系数表示的水平和垂直空间频率分别朝着右边区域和下面区域而增大。在凹形扫描顺序中,在移动到另一方向上的下一列或行之前,一行或一列中的所有系数(尚未被扫描的)连续地被扫描为子集。图19和图20所示的两个扫描顺序根据在DC次数的扫描之后立即处理的是第一列还是第一行而不同。因此,在图19中,在DC系数之后,第一列被扫描。然后,DC系数之外的整个顶行被扫描。接下来扫描第一列中除去已经被扫描过的顶行上的系数之外的所有系数,等等。因此,在每个实例中,垂直列在对应的水平行之前被扫描。该图案是以一般的凹形扫描顺序构建的。相应讨论将适用于先水平凹形扫描顺序的命名。注意,这里将讨论的所有示例可被缩放以适当地适合于不同的块大小。如上面讨论的,已注意到,残差图像数据(图像与该图像的预测版本之间的差异)的变换通常包含与预测方向垂直的频率内容。图19或图20所示类型的凹形扫描顺序可以是有益的,因为即使在经变换数据包含许多垂直频率内容的情况中,凭经验已发现该数据通常在顶行中具有一些非零系数,其表示低的或为零的垂直频率处的水平频率内容。类似地,在经变换数据包含许多水平频率内容的情况中,凭经验已发现该数据通常在第一列中具有一些非零系数,其表示低的或为零的水平频率处的垂直频率内容。下面讨论在不同的潜在扫描顺序之间进行选择的技术。图21示意性地图示出了水平混合zig扫描顺序并且图22示意性地图示出了垂直混合zigzag扫描顺序。这些提供了第二重排序图案的示例,第二重排序图案被布置来重排序频域数据以使得指示恒定水平空间频率或恒定垂直空间频率的一个或多个集合的数据分别被布置在该频域数据的其余数据之前,其余频域数据根据连续子集被排序,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的系数一般为恒定的。“恒定(水平或垂直)空间频率的一个或多个子集”是指图21中的最上面的扫描行(恒定垂直空间频率的集合)和图22中的左侧垂直列(恒定水平空间频率的集合)。一个这样的子集(行或列)通过示例在图21和图22中示出,然而可以使用多于一个这样的子集,例如,图21中的上面两行或三行或者图22中的左边两列或三列。再次地,附图中所示的示例图案可以根据所需块大小而被缩放。注意,图案在此被称为“zig”扫描。这是因为该扫描稍微不同于图16的zigzag扫描,并且具体地,没有演示出于其他形式的zigzag扫描完全相同的来回斜线运动。换言之,术语“zigzag”型扫描被用于这样的扫描图案,其中,斜线扫描运动首先在一个斜线方向上,然后在相反的斜线方向上,然后在第一次的斜线方向上,等等。在图21和图22的zig图案中,扫描的斜线组分总是(对于特定扫描图案)在相同的斜线方向上。但是,与图16 —样,图21和图22中的经斜线扫描的子集通常在该子集内表现出水平和垂直频率分量的恒定和(即,在每种情况中沿着斜线扫描方向)。图21的水平混合zig扫描顺序与图15的图像内预测模式21、0和22 (B卩,具有与垂直最接近的方向的图像内预测模式)尤其相关,因为其在zig扫描之后包括第一级的水平扫描。类似地,特征在于zig扫描之后跟随者第一级垂直扫描的图22的垂直混合zig扫描顺序可以与图像内预测模式29、1和30(具有与水平最接近的预测方向的模式)尤其相关。混合zig扫描顺序允许在完整扫描系数阵列中的一个最低垂直频率行或一个最低水平频率列(或者,潜在地,包括上面定义的该行或该列的一个以上这样的行或列的相邻组)之后,zig扫描其余系数。这是基于水平或垂直图像内预测方向附近的经验观察的,通常在与预测方向垂直的系数中存在噪声(非零数据值,不一定表示真实图像内容)。因此,为了将所有这些基于噪声的系数收集起来,对与图像内预测方向垂直的行或列进行扫描是有利的并且将带来更高效的熵编码处理。此外,凭经验已经注意到,对于其它图像内预测方向可以观察到类似趋势,但是由于噪声可以更广泛地分布在系数阵列之中,因此使用混合zig扫描的益处被减弱。图23示意性地图示出了作为第三重排序图案的一个示例的矩形扫描顺序,其被布置来根据在恒定的和增加的水平空间频率与恒定的和增加的垂直空间频率之间交替的连续子集来重排序频域数据。该扫描顺序尤其适合于关于图像内预测模式3的选择,并且可能地适合子紧密相邻的方向的选择(图15)。在模式3中,预测方向为相对于水平方向的45°,结果,在此模式中生成的(例如,重要性映射图中的)块中的系数的分布一般沿着系数阵列的从左上到右下的斜线被导向。一种方法可能提供沿着该斜线方向的扫描,但是其可在解码侧产生困难,在解码侧中,通常出现正被扫描的当前样本以上和以左的系数样本被需要用于重要性映射图解码。因此,图23所示的矩形扫描图案(当然,其可被缩放为其它块大小)相比于这些情形中的熵编码可以提供有益的改进。图24示意性地图示出了关于CABAC编码系统中的4x4变换单元块的模式相关扫描的一个示例。这里,仅示出了用于变换单元块中的两个的扫描模式(为了示图的清楚性),即,用于左上变换单元块1110的垂直扫描和用于右下变换单元块1120的水平扫描。对于大的块大小(例如,64x64或32x32),上面讨论的混合zig扫描顺序不被认为是“吞吐量友好的”,即是说,它们不必让它们自己支持并行操作。术语“吞吐量友好的”实际上涉及解码处理中所谓的“推测”的运用。基本地,特定数据值(诸如经量化的DCT系数)的解码可能受相邻数据值的解码的影响。例如,在CABAC系统中,被用作编码和解码处理一部分的上下文值和所指派代码值可取决于在空间上位于附近的先前经编码系数数据的数据值以及在编码顺序上位于附近的数据的解码系数。在解码侧,如果数据按照它们被编码的顺序相同的串行顺序被解码,并且一个数据项的解码在任何相关数据需要被用于下一数据项的解码之前完成,则不难知道先前经编码数据的值从而生成用于解码下一数据项的所需上下文数据。但是,如果数据值被并行地解码,则可能出现困难。在这样的并行解码操作中,解码将不按这种简单的串行顺序被处理,并且在先编码的解码结果不能及时地被获得以用作下一解码的一部分。因此,在实际数据值被解码之前,“推测”被用来生成所需附近数据值的一组可能的解码结果,以便针对当前数据项的经解码值解码出一组选项。因此,在给定了在先数据项的可能的(尚不知道的)解码结果的情况下,该组选项表示当前数据值的一组可能的解码。当所需附近数据值最终被解码时,该组选项中的正确的一个选项被选择。因此,这可比上述简单串行解码顺序要快,因为到在先编码的解码结果被知道的时间,关于下一解码项,剩余要做的所有事情是选择所预备的一组选项中的一个正确选项。但是,当然,推测也具有缺点,具体地,推测的程度越大,S卩,以这种方式处理的相链接的相互依赖的解码结果的数目越大,则可能结果的排列数目就越大。因此,尤其是在基于硬件系统的境况下,越大的推测程度可带来如下代价:需要呈指数增长的推测解码器来生成各组选项。因此,希望致力于限制或减少对推测的需求。在诸如上下文之类的CABAC参数值对空间上相邻的系数的依赖性方面,可通过选择扫描顺序来潜在地降低对推测的需要,以使得相邻系数的解码结果在取决于这些结果的解码处理被执行之前的恰好时间被知道。在这些实例中,带着减少推测和/或提高编码效率的目的,zigzag扫描顺序对于编码CABAC系统中的重要性映射图来说被认为是可取的。但是,在本发明的实施例中,混合zig扫描可被用来检测块标志的末尾(指示扫描顺序中的最后一个非零数据项)在系数阵列中的位置,并且然后经修改的zigzag扫描可被用来对重要性映射图中的远至由初始混合zig扫描标识的最后数据项的数据值进行编码。这样的布置的示例在图25和图26中示意性地示出。在这些实施例中,块的末尾(或者块标志的末尾)在扫描顺序上可被当作该阵列中的最后一个非零数据项。在重要性映射图(其指示用于系数的零或非零)的情况中,块的末尾简单地被指定为重要性映射图中的最后的非零条目(最后的数据项)。在将要描述的实施例中,数据扫描器360充当最后数据项检测器,用于根据搜索图案来搜索针对最后的非零阵列元素的当前阵列,该搜索图案在恒定水平空间频率和恒定垂直空间频率的一个或多个集合中搜索其后跟随了根据连续子集被排序的阵列的任何其余阵列元素的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素一般是恒定的。然后,其允当数据扫描器,用于根据重排序图案来改变用于熵编码的阵列元素的顺序,以生成包含连续子集的重排序阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素一般是恒定的,该重排序图案以由该最后数据项检测器检测到的最后的非零阵列元素结束。因此搜索操作根据水平扫描、垂直扫描、混合水平zig扫描或混合垂直zig扫描来进行。重排序操作因此根据zig扫描来进行。搜索和/或重排序图案可以根据下而描述的用于依据图像预测参数、数据参数和/或试验编码选择扫描图案的技术来选择。参考图25,重要性映射图系数的阵列中的块标记的末尾被示为点1150。作为第一级,混合zig扫描(在此示例中,为水平混合zig扫描,但是该选择取决于图像内预测模式)被用来(图25)定位块标记的末尾1150。然后,使用zigzag扫描来编码数据值直到达到块标记的末尾为止,接下来扫描其余的顶行的系数(图26)。这里,如果依据图像内预测模式选择了垂直混合zig扫描,则图26的扫描将是在zigzag扫描之后跟随着对第一列中的其余系数的扫描。
在块标记的末尾被发现位于顶行的特殊情况中,则图26的扫描可被替换成图27示意性地示出的不同扫描。这里,无需zigzag扫描,并且因此仅远至块标记的末尾1150的顶行被扫描。换言之,对于最后的数据项具有阵列中的最低水平频率或阵列中的最低垂直频率的情况,数据扫描器被配置为分别在每种情况中以上升的频率顺序将阵列元素重排序为仅最低垂直频率或最低水平频率的子集并且在检测到的最后的数据项处结束。图28A和图28B示意性地图示出了吞吐量友好的zig扫描作为一个示例,从而该阵列使用水平(或垂直)扫描而被扫描以标识出最后的数据项,并且然后为了重排序的目的,使用以检测到的最后的数据项结束的zig扫描被扫描。当水平或垂直扫描被选择用于特定系数块时,图28A和图28B的布置关注如下描述的这些情形。在这些境况中吞吐量友好方法使用所选扫描方法(视情况,为水平或垂直光栅扫描)来定位块的末尾1150,并且然后使用zig扫描来扫描远至块的末尾的系数。图28A和图28B所示的示例(与示例8x8块有关,但不限于此)关注这样的情形,其中,由扫描选择逻辑为一个块选择水平扫描;水平光栅扫描因此被用来寻找块位置的末尾1150,并且使用zig扫描来扫描系数,在zig扫描中,斜线扫描开始于阵列的左上方并且是从右上到左下的方向。要是扫描选择逻辑选择了垂直扫描,贝1J垂直光栅扫描(第一列向下,然后第二列向下,等等)将被用于定位块的末尾,与之前一样随后是斜线扫描开始于阵列的左上方并且在从右上到左下的方向上进行的zig扫描。已发现,这些布置提供了不太需要推测的更好结果。在本发明的实施例中,例如,在图29A和图29B中定义的布置中,可使用双级扫描布置(标识最后的数据项,然后利用zig扫描进行扫描)来取代zigzag扫描。各种技术可被用来为系数块选择适当的扫描顺序。例如,最后数据项检测器和数据扫描器可被配置为依据图像预测器在生成当前图像的预测版本时使用的一个或多个参数来选择搜索顺序和/或重排序图案。这些参数可以包含表示与图像内预测有关的预测方向的图像方向,和/或表示指示在当前图像与另一图像之间检测到的图像运动的运动方向的图像方向。例如,可以依据与不同候选扫描顺序(例如:水平、垂直、先水平后凹形、先垂直后凹形、zig-zag)有关的度量的检测来选择运用上述凹形扫描顺序,该度量将要编码的特定映射图中的非零系数的出现次数相加,通过其“距离”(在候选扫描顺序中它们被处理时它们在顺序上的间距)的平方来进行加权。非零系数的数目当然与特定块的相同,而与扫描顺序无关,但是上面提到的加权和可被随着扫描顺序而不同。给出最低加权和的扫描顺序被选择。这有效地阻碍了在重要系数之间引入零的行程的扫描顺序(阻止对其的选择)。图29A和图29B示意性地图示出了依据与内部经编码块相关联的模式内预测方向(即,依据图像预测器在生成当前图像的预测版本时使用的一个或多个参数)来选择扫描顺序。这些附图中所示的示例涉及如下五个候选扫描顺序之间的选择:即,传统的zigzag扫描(O)、水平光栅扫描(I)、垂直光栅扫描(2)、水平混合zig扫描(3)和垂直混合zig扫描(4)。将明白,水平混合zig扫描往往被用于接近垂直的图像内预测方向,并且垂直混合zig扫描往往被用于接近水平的图像内预测方向,在这两种情况中都与较大的块大小有关。然而,更一般地,选择可以在包括如下中的至少一个的一组候选扫描顺序中进行:凹形扫描顺序、混合zig扫描顺序和矩形扫描顺序,如上所述。例如,混合zig扫描顺序可被选择用于具有占主导的水平或垂直图像方向(例如,图像内预测方向或运动向量方向)的图像区域,水平混合图案被选择用于占主导的垂直图像方向,并且反之亦然。关于占主导的水平或垂直图像方向,可以选择凹形扫描顺序。这里,占主导的水平或占主导的垂直例如可意味着在预定数目的(例如,一个)水平或垂直图像内预测(或相等角度的范围)模式内。关于占主导的斜线图像方向,可以选择矩形扫描顺序。这里,占主导的斜线例如可意味着在与水平或垂直方向成45度的或相等角度范围的模式的预定数目(例如,一个)的图像内预测模式。图30示意性地图示出了定义与块相关联的扫描顺序或重排序图案的数据字段或标志。在上面讨论的示例实例中,三个数据比特(XYZ)足以定义多达8种不同扫描顺序。因此,在该示例中,与扫描顺序的变化相关联的开销将为每个编码块三个数据比特。如果扫描顺序是从将被编码的数据块的特性中得出的(如上面提到的),则由于在需要在解码器处选择扫描处理之前,对于将进行的相同分析在解码器处不会获得该块,因此需要使用与经编码的输出视频信号相关联的这种(或另外)类型的数据字段的扫描顺序的明确信令。然而,如果将扫描顺序定义为与块相关联的诸如图像内预测方向或运动向量的特性之类的其它数据的确定性函数,则由于可以在解码器处使用相同的确定性推导来建立曾使用的扫描顺序,因此开销可能低至零。这里,期望例如通过扫描单元360所保存的查找表来在编码器和解码器两者处定义候选扫描顺序。图31示意性地图示出了由于依据模式内预测方向来建立扫描顺序的布置。图31的布置可以是扫描单元360的一部分或者可被建立作为单独的处理或设备。扫描顺序生成器1200从内部模式选择器520接收定义了为当前块选择的图像内预测模式的数据。参考查找表1210,扫描顺序生成器1200选择扫描顺序并将定义了所选扫描顺序的数据传递给扫描单元360。图32示意性地图示出了依据用于图像内预测的且是关于当前块得出的运动向量(再次地,其表示预测器使用的图像方向,指示当前图像与另一图像之间的图像运动)的特性来建立扫描顺序的类似布置。这里,扫描顺序生成器1220从运动估计器550接收表示当前运动向量的数据,并且参考查找表1230,生成将被传递给扫描单元360的、定义了扫描顺序的数据。可以使用与参考图28和图29描述的技术相同的基础技术来执行相对于运动向量方向推导扫描顺序,以使得指示近似垂直或近似水平运动的运动向量(例如,在垂直或水平运动的阈值角度偏差内)可以使扫描顺序生成器1220分别选择混合水平zigzag扫描或混合垂直zigzag扫描。图33示意性地图示出了基于试验编码的扫描顺序选择器。该布置可被用来在上面讨论的各种扫描顺序的任何扫描顺序之中进行选择。将被编码的实际数据(从量化器350)被传递给试验扫描器和编码器1300,该试验扫描器和编码器1300基于存储在扫描顺序存储器1310中的候选扫描顺序来执行多次扫描和编码操作。最佳结果选择器1320基于使用该扫描顺序生成的最小数目的输出数据比特来选择最适当的扫描顺序。将理解,不必是所有扫描顺序都要使用图33的布置被测试的情况;可以建立排除某些扫描顺序的规则,例如,垂直混合zigzag扫描可从图像内预测方向或占主导的运动向量位于垂直方向上的测试中被排除。替代地,可以执行穷尽测试。由于通过图33的布置对扫描顺序的选择不是基于与图像内预测方向或运动向量特性的确定性关系的,因此,需要与图30所示的类似的数据字段来将定义所选扫描顺序的数据发送给解码器。最后,图34示意性地图示出了在解码器处对扫描顺序的选择。查找表1400接收图30的数据字段,或者在扫描顺序是在编码器和解码器处确定性地得出的情况中,接收从其作出了确定性决定的源数据(诸如图像内预测方向),来作为输入。该查找表包含各种扫描顺序的细节并且将定义扫描图案的数据提供给反向扫描单元400。候选反向扫描图案分别是上面描述的扫描图案的逆转。
权利要求
1.一种视频数据编码装置,其中,频域视频数据的阵列被重排序用于由编码器编码,所述编码器使用与当前阵列元素的编码有关的编码参数,所述编码参数是从先前经编码的阵列元素和/或在视频数据的阵列中具有在所述当前阵列元素附近的位置的阵列元素得出的,所述装置包括: 最后数据项检测器,用于根据搜索图案在当前阵列中搜索最后的非零阵列元素,所述搜索图案在恒定水平空间频率或恒定垂直空间频率的一个或多个集合中搜索分别跟随有根据连续子集被重排序的阵列的任何其余阵列元素的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的;以及 数据扫描器,用于根据重排序图案来改变用于熵编码的阵列元素的顺序以便生成包含连续子集的经重排序的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的,所述重排序图案以所述最后数据项检测器所检测到的所述最后的非零阵列元素结束。
2.根据权利要求1所述的装置,所述装置包括: 频域转换器,用于生成从输入视频信号得到的数据的频域表示,所述频域表示包含与每个图像区域有关的多个频域系数的阵列,阵列元素取决于频域系数;以及 熵编码器,用于对经重排序的阵列元素进行熵编码。
3.根据权利要求1或2所述的装置,包括用于量化所述频域系数的量化器。
4.根据前面权利要求中任一项所述的装置,包括映射图生成器,用于生成作为二进制数据的阵列元素,所述二进制数据指示特定的相应值或特定的相应范围的值的系数在所述频域系数的阵列中的位置。
5.根据权利要求2所述的 装置,包括: 图像预测器,用于生成输入视频信号的当前图像的预测版本;以及 组合器,用于将所述当前图像与该图像的预测版本相组合以生成残差图像; 所述频域转换器被配置为生成所述残差图像的频域表示。
6.根据权利要求5所述的装置,其中,所述最后数据项检测器和所述数据扫描器被配置为依据所述图像预测器在生成所述当前图像的预测版本时使用的一个或多个参数来选择搜索顺序和/或重排序图案。
7.根据权利要求6所述的装置,其中,所述一个或多个参数包括表示与图像内预测有关的预测方向的图像方向。
8.根据权利要求6所述的装置,其中,所述一个或多个参数包括表示运动方向的图像方向,所述运动方向指示在所述当前图像与另外图像之间检测到的图像运动。
9.根据前面权利要求中任一项所述的装置,包括数据标志生成器,用于生成与经编码输出视频信号相关联的、指示所述数据扫描器所使用的重排序图案的数据。
10.根据前面权利要求中任一项所述的装置,其中,对于所述最后数据项具有阵列中的最低水平频率或阵列中的最低垂直频率的情况,所述数据扫描器被配置为分别将阵列元素重排序为仅所述最低垂直频率的子集或仅所述最低水平频率的子集,在每种情况中,都按上升的频率顺序并且以检测到的最后数据项结束。
11.一种视频数据压缩方法,其中,频域视频数据的阵列被重排序用于由编码器编码,所述编码器使用与当前阵列元素的编码有关的编码参数,所述编码参数是从先前经编码的阵列元素和/或在视频数据的阵列中具有在所述当前阵列元素附近的位置的阵列元素得出的,所述方法包括以下步骤: 根据搜索图案在当前阵列中搜索最后的非零阵列元素,所述搜索图案在恒定水平空间频率或恒定垂直空间频率的一个或多个集合中搜索分别跟随有根据连续子集被重排序的该阵列的任何其余阵列元素的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的;以及 根据重排序图案来改变用于熵编码的阵列元素的顺序以便生成包含连续子集的经重排序的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的,所述重排序图案以搜索步骤所检测到的所述最后的非零阵列元素结束。
12.一种通过权利要求11的编码方法被编码的视频数据。
13.一种存储根据权利要求12所述的视频数据的数据载体。
14.一种计算机软件,当其由计算机运行时使得所述计算机执行权利要求11的方法。
15.一种存储有根据权利要求14所述的计算机软件的非暂时性计算机可读存储介质。
16.一种视频数据捕获、传输和/或存储装置,包含根据权利要求1至10中任一项所述的装置。
全文摘要
本发明公开了视频数据编码和解码。一种视频数据编码装置,其中,频域视频数据的阵列被重排序用于由编码器编码,编码器使用与当前阵列元素的编码有关的编码参数,包括最后数据项检测器,用于根据搜索图案在当前阵列中搜索最后的非零阵列元素,搜索图案在恒定水平空间频率或恒定垂直空间频率的一个或多个集合中搜索分别跟随有根据连续子集被重排序的阵列的任何其余阵列元素的阵列元素,每个子集被选择为使得水平空间频率分量和垂直空间频率分量之和对于子集内的阵列元素来说通常是恒定的;以及数据扫描器,用于根据重排序图案来改变用于熵编码的阵列元素的顺序以便生成包含连续子集的经重排序的阵列元素,重排序图案以最后的非零阵列元素结束。
文档编号H04N7/26GK103096075SQ20121044220
公开日2013年5月8日 申请日期2012年11月7日 优先权日2011年11月7日
发明者詹姆斯·亚历山大·戈梅, 尼古拉斯·里安·桑德斯, 卡尔·詹姆斯·沙曼, 保罗·詹姆斯·西尔考克 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1