视频数据处理系统的制作方法

文档序号:11207190阅读:787来源:国知局
视频数据处理系统的制造方法与工艺

本发明涉及视频数据的处理,并且具体来说,涉及用于对视频图像数据编码和解码的方法和装置。



背景技术:

视频图像数据(例如,rgb或yuv值)通常被编码,然后,例如在按经编码的比特流的格式发送之后,根据如vp9这样的预定的视频编码格式被解码。诸如vp9的视频编码格式能够显著缩减视频图像数据的文件大小,而图像质量不会有显著的可见损失。

在经编码的视频数据中,通常各视频帧被划分成该帧的多个像素组块(通常为矩形)(在vp9编码中,组块可以在指定帧内具有不同的大小),并且各组块被单独编码然后解码。在诸如vp9这样的“差分”视频编码标准中,视频图像数据内的各像素组块通常相对于其它经编码的数据来编码,例如,来自基准帧的基准组块(诸如基准帧中的对应的经编码的像素组块)。因此,各经编码的数据组块通常包括指向用于基准帧的数据的矢量值(所称的“运动矢量”)和描述在当前数据组块中编码的数据与基准经编码数据之间的差异的数据(“残差”)。(这由此允许从由该运动矢量所指向的经编码的视频数据和描述该组块与当前视频帧的组块之间的差异的差异数据来构造用于(当前)帧的组块的视频数据)。

该数据组块接着可以被编码,例如通过将残差变换成一组系数(例如,利用近似离散余弦变换(dct)),该组系数接着被量化。在多个帧的比特流内,甚至在多个组块的帧内,该编码可以按多个不同方式或者根据一组可变编码参数来执行,例如,依赖于各组块中的视频图像数据或者相对于基准经编码数据。

为了使经编码的数据被正确解码,可以在各组块被编码时将编码指示符(如vp9编码中的所称的“段id”)与该组块相关联,其指示该组块是如何被编码的,即,使解码器知道如何对经编码的数据解码。该编码指示符(例如,在vp9编码中具有从0至7的整数值的段id)通常提供对在所关注的组块的编码时使用的预定的一组参数值(例如,包括量化参数、环路滤波器强度、跳过指示等)的引用。由此,当对视频图像数据的帧编码时,可以产生一组编码指示符(例如,段id),例如,各组块一个编码指示符,例如,采用编码指示符映射(“段映射”)的形式,因此可以在解码经编码的帧时取得和使用。

在诸如vp9这样的视频编码标准中,对于被解码(或编码)的帧序列中的指定帧的诸如运动矢量和编码指示符这样的编码信息在用于解码(或编码)当前帧(它们所涉及的帧)的同时,也被用于确定(当确定时)用于该视频帧序列中的下一帧的编码信息。由此,当对该序列中的下一帧解码(或编码)时,用于当前帧的该信息会需要可用。

而且,在vp9编码中,例如,针对任何指定帧,可以应用多个编码或解码模式中的一种,例如逐个帧地,该模式确定是否针对所关注的帧生成(当编码时)或提供(当解码时)新的一组编码指示符(例如,段映射),或者例如针对先前帧的编码指示符是否要被用于所关注的帧,或者是否针对所关注的帧不生成/提供编码指示符(例如,可以针对该帧禁用编码指示符)。因此,可用的一组编码指示符可能不是总是与各帧一起被编码(例如,没有编码指示符或者相反可能提供默认的一组编码指示符)。



技术实现要素:

本发明寻求提供用于编码和解码视频图像数据的改进的方法和装置。

当从第一方面看时,本发明提供一种用于对视频数据帧序列中的帧进行解码的方法,该视频数据帧序列以表示所述视频数据帧序列的经编码的视频图像数据的比特流来提供,该方法包括以下步骤:

针对经编码的视频图像数据的所述比特流所表示的帧:

解析用于所述帧的所述经编码的视频图像数据,以针对视频帧已经出于编码目的而划分成的各组块得到一组编码信息;

提供从用于所述帧的所述经编码的视频图像数据得到的所述编码信息,以供用于对用于所述帧的所述经编码的视频图像数据进行解码以提供用于所述帧的输出视频图像数据;以及

反馈用于所述帧的编码信息,以供当解析在所述比特流中编码的帧序列中的下一帧的所述经编码的视频图像数据时使用;

其中:

反馈用于所述帧的所述编码信息的步骤包括:

反馈用于所述视频帧已经出于编码目的而划分成的各数据组块的至少编码指示符;其中:

反馈用于所述帧的组块的编码指示符的步骤包括:

在当对用于所述帧的所述视频图像数据进行编码时用于所述帧的所述组块的所述编码指示符被禁用的情况下,针对所述帧的所述组块,反馈从用于视频帧序列中的先前帧的所述经编码的视频图像数据得到的编码指示符。

当从本发明的第二方面看时,提供了一种用于对视频数据帧序列中的帧进行解码的装置,该视频数据帧序列以表示所述视频数据帧序列的经编码的视频图像数据的比特流来提供,该装置包括:

处理电路,该处理电路被构造成接收经编码的视频图像数据的比特流;

解析处理电路,该解析处理电路被构造成针对经编码的视频图像数据的比特流所表示的帧:

解析用于所述帧的所述经编码的视频图像数据,以针对所述视频帧已经出于编码目的而划分成的各组块得到一组编码信息;

以及

提供从用于所述帧的所述经编码的视频图像数据得到的所述编码信息,以供用于对用于所述帧的所述经编码的视频图像数据进行解码以提供用于所述帧的输出视频图像数据;

以及

反馈电路,该反馈电路被构造成向所述解析处理电路反馈用于帧的编码信息,以供当解析在所接收的比特流中编码的帧序列中的下一帧的所述经编码的视频图像数据时使用;

其中:

所述反馈电路被构造成通过以下来反馈用于帧的所述编码信息:

反馈用于视频帧已经出于编码目的而划分成的各数据组块的至少编码指示符;

以及被构造成:

通过以下来反馈用于帧的组块的编码指示符:

在当对用于所述帧的所述视频图像数据进行编码时用于所述帧的所述组块的所述编码指示符被禁用的情况下,针对所述帧的所述组块,反馈从用于视频帧序列中的先前帧的所述经编码的视频图像数据得到的编码指示符。

在本发明中,解析经编码的视频图像数据的比特流,以得到在编码该视频图像数据时使用的编码信息,如相应组块大小、运动矢量值以及编码指示符(例如,段id),以供在对经编码的视频图像数据进行解码时使用,从而生成用于输出的视频帧。

然而,不但提供该编码信息以供在解码所关注的帧的经编码的视频图像数据时使用,用于当前被处理并解码的视频帧的编码信息还被反馈以供在得到用于该序列中的下一视频帧的编码信息时使用。这促进接着使用用于当前视频帧的编码信息来得到用于该序列中的下一视频帧的编码信息(其如上所述,在诸如vp9这样的某些视频编码标准中可能需要)。

而且,在本发明中,被反馈以供在得到用于该序列中的下一帧的编码信息时使用的编码信息被构造成总是包括用于该帧的多个组块的一组编码指示符。这通过反馈针对先前帧得到的编码指示符(在该帧被编码时该编码指示符被禁用并因此不用于对该帧的编码的情况下)作为针对当前帧反馈的编码信息的一部分来实现。(在该帧的组块被编码时编码指示符被启用(并因此该编码指示符用于对该帧的组块的编码)的情况下,被反馈以供在得到用于下一帧的编码信息时使用的编码信息优选为用于对该帧的组块进行编码的编码指示符。)

这因而确保了当得到用于该帧序列中的后续帧的编码信息时,适当的一组编码指示符总是可用于(如果需要)使用,即使是在如上所讨论的针对一些帧可能禁用了编码指示符(并因此这些帧可以具有与其相关联的默认的一组编码指示符(并与其一起编码))的情况下,使得在例如对于在已经将编码指示符禁用的帧后面的帧可能需要来自先前帧的编码指示符的情况下编码指示符可用。

换句话说,本发明的方法和装置反馈用于各帧的编码指示符以在解析级可用。这有助于确保尽管编码指示符可能对于特定帧的解码不需要并因此可能在用于该帧的经编码的视频图像数据中被禁用,也可以为该帧的多个数据组块提供一组编码指示符(即,使用针对先前帧的编码指示符),使得当在该经编码的帧的序列中遇到依赖于来自先前帧的编码指示符(其可能发生,如上所述)的随后的经编码的帧时,一组编码指示符可供在该随后帧的解码时使用,而与用于当前帧的经编码的视频图像数据中是否存在有意义(例如,非默认)的一组编码指示符无关。

而且,反馈针对各帧的编码指示符和至少一些其它编码信息可以使得所反馈的值能够被组合成单个数据流,特别是在视频图像数据被连续流送和解码的系统中,可以帮助最小化系统的复杂性,缩减存储器存储和存取需求等(并由此,例如降低功耗、存储器带宽等)。由此,在优选实施方式中,反馈至该解析级的编码信息在单个数据流中反馈。因此,优选的是,反馈用于帧的编码信息的步骤包括(并且反馈电路被构造成):将该编码指示符和要针对各数据组块反馈的任何其它编码信息组合成单个数据流,并且在单个数据流中反馈该编码指示符和针对各数据组块的其它编码信息。

类似的是,所提供的编码信息的至少一些(例如,从对该经编码的视频图像数据的解析得到)可以在单个数据流中提供(例如,向存储部提供),该编码信息用于对用于该帧的经编码的视频图像数据进行解码从而提供用于该帧的输出视频图像数据。因此,优选的是,提供该编码信息以供用于对用于该帧的经编码的视频图像数据进行解码的步骤包括(并且该解析处理电路被构造成):将该编码指示符(在被提供时)和要针对各数据组块提供的其它编码信息的至少一些组合成单个数据流,并且在该单个数据流中提供该编码指示符和针对单个数据流中的各数据组块的其它编码信息的至少一些。在优选实施方式中,在单个数据流中提供编码信息的一些但非全部,该编码信息被提供以供用于对用于该帧的经编码的视频图像数据进行解码,从而提供用于该帧的输出视频图像数据。例如,用于该帧的组块的残差优选地在分开的数据流中提供。

在本发明中提供并解码的该视频数据帧序列可以是任何合适和希望的视频帧序列。在该视频帧序列中将具有至少两个帧,但该视频帧序列中优选地具有超过两个的帧。

该帧序列按表示视频数据帧序列的经编码的视频图像数据的比特流的形式来提供,视频数据帧序列接着按本发明的方式进行解码,以提供输出视频帧的序列,例如并且优选地,用于显示的目的。

该视频帧按逐个块的方式在经编码的视频图像数据的比特流中编码,即,经编码的各视频帧被划分成表示该视频帧的相应区域(范围)的相应像素组块(采样位置),这些组块接着分别在经编码的视频图像数据比特流内被单个地编码(即,使得可以从经编码的视频图像数据标识并解码相应的单个组块)。

该视频帧为了编码处理而被细分成的数据组块可以是该视频帧的任何合适和希望的组块。它们在形状上优选为矩形,例如,正方形。该矩形块可以采取任何合适和希望的大小。优选的是,该矩形组块皆具有在8×8像素和64×64像素之间并且包括8×8像素和64×64像素的大小,优选地,该矩形块的各边缘具有2n个像素的大小,其中,n是整数(例如在3与6之间并且包括3和6)。

在优选实施方式中,指定帧可以包括多个不同大小的组块,例如,在该帧的范围上密铺(tessellation),和/或这些块的大小和数量可以在不同帧之间改变,例如,依赖于该帧的视频图像数据。

在本发明中用于对视频图像数据进行编码的编码处理(以及对应地用于对经编码的视频图像数据进行解码的解码处理)尤其使用一组编码信息,其优选地包括组块大小指示。对于组块可以(并且是)使用的该一组编码信息优选地还包括运动矢量和编码指示符中的一个或更多个(并且优选为两者)(尽管这些参数可以不被用于(和编码)视频帧序列中的每个帧)。

该编码信息可以按任何合适和希望的方式来提供和表示,例如,依赖于所使用的视频编码标准的要求。

在例如组块大小的情况下,其优选地根据块内的像素来指示,并且优选地指示矩形块的边缘的大小。

该运动矢量应当并且优选地确实指示与其相关(与其相关联)的组块中的数据与基准帧(例如,并且优选地,在所解码的该帧序列中)中的数据组块相比的位置的差异。

用于数据组块的编码指示符应该并且优选地确实指示要用于在编码所关注的数据组块时使用(并且对应地,应当在解码所关注的数据组块时使用)的特定的、优选选择的、优选预定义的一组编码参数的特定的、优选选择的、优选预定义的一组值。该编码指示符所涉及的该组参数可以包括用于执行编码(并且对应地被需要以执行解码)的任何合适和希望的编码参数,例如,并且优选地,依赖于所使用的视频编码标准。在优选实施方式中,该编码指示符所涉及的该一组编码参数包括以下中的一个或更多个,并且优选地全部:量化参数、环路滤波器强度、跳过指示以及基准帧指示符。

该编码指示符可以指示该一组编码参数中的在编码所关注的组块时使用的编码参数的值,但优选地,该编码指示符指示该组编码参数,并且这些参数的值被单独发送,例如,在用于该帧的经编码的视频图像数据的帧“报头”数据字中,使得解码器知道怎样解码经编码的数据。

在具体优选实施方式中,该编码指示符指示多组预定义编码参数中的一组。由此,例如,该编码指示符例如可以指示已经使用了不同的四组或八组预定义编码参数中的哪一个。

对于vp9编码的情况来说,该编码指示符将作为段id,并且将对应地指示0与7之间的值,指示在对所关注的数据组块进行编码时已经使用了预定义的八组编码参数中的哪一个。

本发明可以被用于使用编码指示符的逐块编码处理的任何形式的视频编码。这种视频编码标准的示例是vp9(在这种情况下,该编码指示符如上所述为段id)。由此,在具体优选实施方式中,该视频数据帧序列已经利用vp9编码进行了编码。然而,若需要的话,可以使用按相似或相应方式操作的其它视频编码处理和标准,例如,vp8视频编码标准。

解析可以按任何合适和希望的方式来执行,该解析用于该比特流中的帧的经编码的视频图像数据,以针对该视频帧已经出于编码目的而划分成的各组块得到一组编码信息。该处理应当解析该经编码的视频图像数据以得到用于所关注的帧块的经编码的视频图像数据中的任何编码信息。

可以还包括,并且在优选实施方式中确实还包括,使用来自该比特流中的先前帧的反馈编码信息,来得到用于当前解码的帧的编码信息(例如,通过将该反馈编码信息与从当前解码(解析)的帧得到的编码信息适当组合)。

例如,尤其可以利用被反馈至该解析级的针对当前帧中多个数据组块的组块大小,来得到针对下一帧中的组块的运动矢量值。例如,该组块大小可以被用于确定怎样从该经编码的比特流解包运动矢量值。优选的是,针对下一帧中的组块的运动矢量值依赖于在当前帧中的指定相对空间位置处的、来自经编码的比特流的解包的运动矢量值的值。

针对该视频帧已经出于编码目的而划分成的各组块所得到的编码信息可以按任何合适和希望的方式来提供,例如,依赖于所使用的视频编码标准的要求。

针对该视频帧已经出于编码目的而划分成的各组块得到的编码信息至少包括针对所关注的组块的组块大小指示。

该组块大小优选地以该块内的像素来指示,并且优选地指示矩形块的边缘的大小。

如果用于帧的经编码的视频图像数据包括针对该帧已经出于编码目的而划分成的各组块的运动矢量值,则用于该帧的经编码的视频图像数据的解析优选地还针对该视频帧已经出于编码目的而划分成的各组块得到运动矢量值。因此,在这种情况下,针对该视频帧已经出于编码目的而划分成的各组块得到的该组编码信息将包括针对该组块的组块大小指示和运动矢量值。

通常,相对于基准帧编码的被解码的该视频帧序列中的各帧(即,各“帧间”帧(“inter”frame))将包括经编码的运动矢量值(尽管这种帧可向其它帧(例如,随后帧)提供基准)。由此,在优选实施方式中,对被解码的该视频帧序列中的帧间帧的经编码的视频图像数据的解析优选地包括针对该视频帧已经出于编码目的而划分成的各组块得到用于该组块的运动矢量值。

对应地,如果经编码的视频图像数据不包括针对视频帧(例如,“帧内”帧(“intra”frame)(在vp9中也称为“关键”帧))的各块的运动矢量值,则针对该帧已经出于编码目的而划分成的各组块得到的该一组编码信息将不包括针对该组块的运动矢量值(即,将优选地包括组块大小指示,并且如果存在的话,则针对该组块的编码指示符)。针对该视频帧已经出于编码目的而划分成的各组块所得到的该一组编码信息还可以包括其他信息,例如,帧内预测模式。

该运动矢量应当并且优选地确实允许确定指示该组块中的数据与基准帧(例如,并且优选地,在被解码的该帧序列中)中的数据组块相比的位置差异的运动矢量。该运动矢量值例如可以并且在优选实施方式中确实采用差值的形式,该差值例如将与先前的运动矢量值组合以提供所关注的运动矢量。

如果用于帧的经编码的视频图像数据包括针对该帧已经出于编码目的而划分成的各组块的编码指示符(并由此,该编码指示符在对用于该帧的视频图像数据进行编码时被启用),则对用于该帧的经编码的视频图像数据的解析优选地还针对该视频帧已经出于编码目的而划分成的各组块得到编码指示符(例如,使用包括针对该帧的两个不同编码指示符在内的一组编码指示符)。因此,在这种情况下,针对该视频帧已经出于编码目的而划分成的组块(并且针对各组块)得到的该一组编码信息将包括用于该组块的组块大小指示和编码指示符(并且,若存在的话,用于该组块的运动矢量值)。

对应地,如果针对帧的多个组块的编码指示符在用于该视频帧的经编码的视频图像数据中被禁用,则针对该帧已经出于编码目的而划分成的各组块得到的该一组编码信息可以不包括用于该组块的编码指示符(即,将优选地包括组块大小指示,并且如果存在的话,则用于该组块的运动矢量值),或者可以包括用于该组块的默认编码指示符(例如,具有等于0的值)。然而,如下所讨论,可以在用于被解码的帧的编码信息中提供从先前帧反馈(从其得到)的一组编码指示符,使得这些可以被反馈用于后续帧(以在需要时供用于解码该后续帧)。

而且,如果经编码的视频图像数据是指用于该比特流中的先前帧的编码指示符(其例如被用于编码用于当前帧的视频图像数据),并因此用于该帧的经编码的视频图像数据可以不包括用于该组块的一组编码指示符,则可以在用于被解码的帧的编码信息中提供从先前帧反馈(从其得到)的一组编码指示符,以用于对该经编码的视频图像数据帧进行解码,并且使得这些编码指示符可以被反馈以用于后续帧(以在需要时供用于解码该后续帧)。该编码指示符引用的所述先前帧可以是任何合适和希望的帧。在优选实施方式中,所引用的编码指示符是来自其中对该视频图像数据时编码指示符被启用的紧前一帧的那些编码指示符。

得到的用于该帧的各组块的该组编码信息还可以适当和期望地包括任何其它编码信息(例如,依赖于所使用的视频编码标准)。例如,针对该帧已经出于编码目的而划分成的各组块得到的该一组编码信息还可以包括帧内预测模式和/或变换大小。

通过解析用于该帧的经编码的视频图像数据而得到的用于该帧的各块的该一组编码信息被提供以供用于对用于该帧的经编码的视频图像数据进行解码。在这方面提供的以供用于解码经编码的视频图像数据的该组编码信息应当至少包括通过解析操作解码而得到的针对帧的编码信息。因此,优选的是,针对该帧已经出于编码目的而划分成的各块,其将包括以下中的一个或更多个(并且优选地包括全部):编码指示符(当未被禁用时)、组块大小指示符,以及若存在的话,则运动矢量值。

如果这种编码指示符针对该帧的各组块被编码(即,存在于用于该帧的经编码的视频图像数据中,并且例如包括用于至少两个相应组块的两个不同编码指示符),则应当并且优选地被提供针对被解码的该帧得到的那些编码指示符以供用于对用于该帧的经编码的视频图像数据进行解码。

如果已经禁用针对该帧的编码指示符,并由此针对该帧的经编码的视频图像数据可以编码针对该帧的默认的一组编码指示符,则优选地,提供从先前帧反馈(从其得到)的一组编码指示符作为针对被解码的该帧的编码指示符,以供用于对用于该帧的经编码的视频图像数据(若需要的话)进行解码。因而,这也确保总有一组(非默认)编码指示符可用于反馈,以供后续帧使用(和/或供在帧的解码时使用),即使针对该帧本身的经编码的视频图像数据仅包括针对该帧的默认的一组编码指示符(由于该编码指示符在编码该视频图像数据时被禁用)。然而,如下将讨论的,可以提供该默认的一组编码指示符,以供对用于该帧的经编码的视频图像数据进行解码时使用,以指示是在不使用编码指示符的情况下对帧的组块编码的,并由此对用于该帧的经编码的视频图像数据进行解码可以不需要任何编码指示符。

在优选实施方式中,不仅提供从先前帧反馈的编码指示符,还可以针对被解码的帧(例如,在“报头”数据字中)提供默认或预定义的一组编码参数值(例如,与默认的一组编码指示符相关联的编码参数值),以供用于对用于该帧的经编码的视频图像数据进行解码。这允许在解码该帧时使用这些默认或预定义的参数值(例如,简单地指示在对用于该帧的经编码的视频图像数据进行解码时不使用编码指示符),同时提供从先前帧反馈的编码指示符使得这些编码指示符可用于后续帧(若需要的话)。

如果用于该帧的编码指示符是指用于该比特流中的先前帧的编码指示符,则还优选地提供从先前帧反馈(从其得到)的一组编码指示符,作为针对被解码的该帧的编码指示符,以供用于对用于该帧的经编码的视频图像数据进行解码,其又可用于反馈,以供后续帧使用(例如,如果该后续帧引用这些编码指示符)。

可以提供被提供以供用于对用于该帧的经编码的视频图像数据进行解码以提供针对该帧的输出视频图像数据的编码信息,以供用于按任何合适和希望的方式来对用于该帧的经编码的视频图像数据进行解码。因此,其例如可以作为数据流(被流送)提供给适当的解码器(解码级)。

在具体优选实施方式中,存储该编码信息,使得其可以接着被准备用于对用于该帧的经编码的视频图像数据进行解码以提供针对该帧的输出视频图像数据。

由此,在优选实施方式中,提供从用于该帧的经编码的视频图像数据得到的编码信息(和任何附加编码信息)以供用于对用于该帧的经编码的视频图像数据进行解码以提供用于该帧的输出视频图像数据的处理包括存储该编码信息,使得其接着可以被取得以供用于对用于该帧的经编码的视频图像数据进行解码。对应地,本发明的装置优选地包括存储部,该存储部用于存储从针对该帧的经编码的视频图像数据得到的所述编码信息(和任何附加编码信息)以供用于解码用于该帧的经编码的视频图像数据。

用于帧的编码信息被提供到的存储部可以包括任何合适和希望的存储部。优选的是,该存储部包括主存储器。这允许在大小上可能较大的编码信息在其被用于对经编码的视频数据进行解码之前被保持。优选的是,存储器(例如,主存储器)使用直接存储器存取(dma),并由此,优选地,该装置包括被构造成控制针对该存储部的读取和写入访问的dma控制器。这种(例如,容忍延迟的)存储器访问缩减向和从该存储部读取和写入编码信息的存储器延迟的影响,特别是在该存储部包括主存储器的时候。

当该编码信息中的至少一些作为单个数据流来提供和/或反馈时,这也可以帮助使存储器访问(例如,利用dma)更有效。当然,其它方案也是可以的。

所提供的编码信息优选地(接着)被用于解码针对帧的经编码的视频图像数据,以提供例如并且优选地用于显示的输出帧。这可以按任何合适和希望的方式(例如,根据并且依靠所使用的视频编码标准)完成,并且可以使用从针对该帧的经编码的视频图像数据得到的所提供的编码信息(以及任何附加编码信息)。

由此,在具体优选实施方式中,本发明的处理还包括利用从用于该帧的经编码的视频图像数据得到的编码信息(或者通过参照先前帧),以解码用于该帧的经编码的视频图像数据从而提供用于该帧的输出视频图像数据。对应地,本发明的装置优选地包括解码处理电路,该解码处理电路可操作以使用从来自该帧的经编码的视频图像数据得到的编码信息,以解码用于该帧的经编码的视频图像数据从而提供用于该帧的输出视频图像数据。

该解码处理应当使用对于解码所关注的帧来说是必需的编码信息。

由此,例如,如果该经编码的帧要使用针对该帧已经出于编码目的而被划分成的各组块的编码指示符,则将合适的一组编码指示符用于该解码处理(并且优选地,在合适的情况下,与所关注的帧一起编码的一组编码指示符,或者来自先前帧的一组编码指示符)。

由此,在该优选实施方式中,如果被提供以供用于对用于该帧的经编码的视频图像数据进行解码的该组编码信息还包括针对该帧的各组块的(例如,非默认)编码指示符(例如,如果该编码指示符在编码用于该帧的视频图像数据时被启用,并因此例如包括至少两个不同的编码指示符),则在该编码指示符要被用于该解码操作的情况下,该解码处理将使用在提供以供用于对用于该帧的经编码的视频图像数据进行解码的该组编码信息中提供的编码指示符(该编码指示符可以是从用于所关注的帧(被解码的)的经编码的视频图像数据得到的编码指示符(其中该经编码的视频图像数据包括用于该帧的编码指示符),或者如上所述,它们可以是从该帧序列中的先前帧提供(和从其得到)的编码指示符)。

相反的是,如果针对该经编码的帧禁用了该编码指示符(并因此,例如,包括默认的一组编码指示符),则优选地,该编码指示符在解码该帧时不被使用。

对于针对该经编码的帧禁用该编码指示符的情况来说,可以按任何希望和合适的方式来处理编码指示符优选地不被用于解码该帧的事实,例如,其适于被使用的视频编码标准。因此,例如,默认和/或预定义的一组编码参数值可以被用于解码该帧的经编码的视频图像数据,其中,针对该帧的组块的特定编码指示符未被指示(待使用)(并且在一个优选实施方式中,这就是所做的),例如通过将针对该编码指示符的编码参数值构造成同一值。该默认和/或预定义的一组编码参数值可以在与该帧相关联的“报头”数据字中提供。

在解码针对帧的经编码的视频数据时需要或以其它方式使用编码指示符可以按任何合适和希望的方式来指示和确定,例如依靠,并且根据被使用的视频编码处理(例如,标准)。不需要使用编码指示符可以由默认和/或预定义的一组编码参数值来指示(例如,针对各参数,该帧的所有组块具有相同(例如,默认)的值(例如0)),例如,在与该帧相关联的“报头”数据字中提供。由此,反之亦然,在解码针对一帧的经编码的视频数据时需要使用编码指示符可以通过存在的非默认的一组编码参数值(例如,包括两个不同的参数值)来指示,例如再次在与该帧相关联的“报头”数据字中提供。

然而,优选地,当解码针对帧的经编码的视频图像数据时是否需要使用编码指示符由在针对该帧的视频图像数据中编码的模式指示符来指示,例如,在与该帧相关联的“报头”数据(帧报头)中提供。在优选实施方式中,该模式指示符指示三种编码模式中的一种,即:i)编码指示符的使用在编码视频图像数据时被启用,并且要使用的编码指示符在针对该帧的比特流中被编码(例如,由于该编码指示符已经针对当前帧被更新);ii)编码指示符的使用在编码针对该帧的视频图像数据时被启用,但利用针对先前帧的编码指示符(例如,由于该编码指示符没有针对当前帧更新;在这种情况下,优选地,编码指示符没有在用于该帧的比特流中编码);以及iii)编码指示符的使用在编码针对该帧的视频图像数据时被禁用(并由此,在解码针对该帧的经编码的视频数据时将不使用编码指示符)。

因此,应当清楚,当对用于该帧的视频图像数据进行编码和解码时存在使用的三种主要模式。在第一模式中,当对用于该帧的视频图像数据进行编码时,启用了针对该帧已经更新的编码指示符(例如,段映射)。按这种模式,该编码指示符在用于该帧的视频图像数据中被编码,并因此被提供用于解码该帧。

在第二模式中,该编码指示符在编码用于该帧的视频图像数据时被启用,但尚未针对该帧进行更新,因此针对编码用于当前帧的视频图像数据,引用并使用来自一先前帧的编码指示符。按这种模式,该编码指示符优选地不被编码在用于该帧的视频图像数据中,而相反,将针对先前帧的基准(例如,模式指示符)编码在用于该帧的比特流中,例如,在与该帧相关联的报头数据中,使得可以提供来自该先前帧的该组编码指示符(例如,已经从先前帧反馈的),用于对帧该进行解码。

在第三模式中,该编码指示符在对用于该帧的视频图像数据进行编码时被禁用。按这种模式,优选地,将默认的一组编码指示符编码在针对该帧的视频图像数据中(例如,以指示该编码指示符在编码该视频图像数据时被禁用),但优选地没有使用编码指示符来对该经编码的视频图像数据进行解码(例如,由于没有编码指示符已经被用于编码该视频图像数据)。

因此,优选地,从针对该帧的经编码的视频图像数据得到(通过解析级)的编码信息包括模式指示符(其指示当编码该视频图像数据时是否针对该帧启用了编码指示符,并且如果将它们启用,则是否针对该帧更新了该编码指示符,或者使用来自先前帧的编码指示符),其接着优选地被提供用于对用于该帧的经编码的视频图像数据进行解码。

还应清楚,上述三种模式被分成两类:或者反馈针对当前帧的编码指示符(当在对用于该帧的组块的视频图像数据进行编码时启用该编码指示符并且针对该帧更新该组编码指示符时),或者反馈针对先前帧的编码指示符(或者当在经编码的视频图像数据时禁用了该编码指示符时,或者当用于经编码的视频图像数据的编码指示符是从先前帧使用(并因此引用)的那些编码指示符时)。

因而,优选的是,当在对用于该帧的组块的视频图像数据进行编码时启用了该编码指示符并且针对该帧更新了该一组编码指示符时(并因此优选地,用于该帧的经编码的视频图像数据包括用于该帧的各组块的编码指示符(例如,具有针对具有不同值的至少两个相应组块的至少两个编码指示符)),反馈用于该帧的组块的编码指示符包括反馈从针对该帧的经编码的视频图像数据得到的、用于该帧的组块的编码指示符。

而且优选地,如果该编码指示符没有针对该帧更新,则反馈用于该帧的组块的编码指示符包括针对该帧的组块,反馈从用于视频帧序列中的先前帧的经编码的视频图像数据得到的编码指示符。在优选实施方式中,由于编码指示符被禁用或者在经编码的视频图像数据时引用来自先前帧的编码指示符,因而该编码指示符不被更新。

不仅提供必需编码信息以供在解码针对该帧序列的帧的经编码的视频图像数据时使用(如上所述),还反馈从用于该序列证中的帧的经编码的视频图像数据得到的编码信息,以供当解析在该比特流中编码的该帧序列中的下一帧的经编码的视频图像数据时使用。

在这方面反馈的编码信息至少包括针对当前视频帧(即,刚刚被解析的)已经出于编码目的而被划分成的各数据组块的编码指示符。

反馈的编码信息优选地还包括已经从用于该帧的经编码的视频图像数据得到的任何其它编码信息。由此,其优选地还包括针对该帧已经出于编码目的而划分成的各组块(在存在的情况下)的组块大小指示和/或运动矢量值。

要反馈的编码信息优选地在单个数据流中被反馈到解析级。这可以按任何合适和希望的方式来完成。例如,可能存在来自解析级的输出的反馈路径,其将编码信息反馈回至解析级的输入。在该优选实施方式中,如果编码信息被提供给存储部(例如,主存储器)以供用于接着解码针对该帧的经编码的视频数据,则在一优选实施方式中,将该编码信息从存储部反馈回至该解析级。当然,其它方案也是可以的。

在优选实施方式中,被反馈的数据流包括优选固定大小的数据字序列,例如,32比特字,其中写入了针对该帧的组块的编码信息(例如,组块大小指示符、编码指示符和/或运动矢量值)。各种编码信息值可以按任何合适和希望的方式配置和配合到数据流中的数据字中,例如,依赖于它们相对于数据字的大小的大小。

在优选实施方式中,针对各编码信息值提供各(例如,固定长度)数据字内的固定数目的比特。例如,各数据字可以并且优选地确实包括多个(例如,四个)字段,用于提供编码信息值。

如果针对一个组块要反馈比一个数据字中的相关字段可提供的多的编码信息,则优选地通过利用针对所关注的组块的一个或更多个附加数据字来完成(在适当时候)。在这种情况下,针对该组块的第一数据字优选地包括指示(例如,标志),以指示针对该组块的另一信息被包括在附加数据字(或多个字)中。换句话说,当需要超过一个的数据字来提供针对组块的反馈编码信息时,附加数据字优选与针对该组块的初始数据字一起提供。下面将对其加以进一步讨论。

在这点上,应当清楚,该数据流将包括针对该视频帧已经出于编码目的而划分成的各数据(像素)块的一组编码信息。因此,该数据流例如将包括并且优选地包括用于各帧的一序列数据字,其中存在包括用于该帧的第一组块的编码信息的一个或更多个数据字,后面是包含该帧中的下一个组块的编码信息的一个或更多个其它数据字,后面是包含该帧中的下一个组块的编码信息的一个或更多个另一数据字,以此类推。

应当按适当的顺序在该数据流中提供用于该帧的组块的反馈编码信息,例如,并且优选地按这些组块在该经编码的视频图像数据中编码的次序(即,按针对该视频帧已被划分成的组块的处理次序)。

对应地,包含来自一个帧的编码信息的数据字(例如,在数据流中)将跟随包含针对该帧序列中的下一个帧的编码信息的另一数据字(例如,在流中),等等。当反馈针对该帧的组块的编码信息时,优选地,该帧被划分成个条带,各条带都包括用于多个组块的编码信息。一个或更多个条带中的编码信息可以在(例如,连续)数据流中反馈。因此,可以在多个数据流(并且各流都包括一个或更多个条带)中反馈针对一帧的编码信息,例如,逐个。该数据流之间的划分可以是帧边界或条带的末尾,按照合适和希望的样子。

如上所讨论的,针对该视频帧已经被划分成的各数据组块,将至少编码指示符(并且优选地,组块大小指示符和运动矢量值)反馈至解析级。就涉及该运动矢量值(在提供的情况下)和组块大小指示而言,那么由于针对该帧的经编码的视频图像数据将包含针对该帧中的各组块的这种值,因而,针对指定数据组块的反馈值可以,并且优选地确实,仅仅对应于从用于针对所关注的组块的该帧的经编码的视频图像数据得到的值。

然而,如上所述,在编码针对该帧中的数据组块的指示符的情况下,该编码指示符在针对帧的视频图像数据进行编码时可能已经被禁用。由此,用于针对视频帧已经出于编码目的而被划分成的各数据组块反一编码指示符的方案被构造成允许这一点,并且在优选实施方式中,或者反馈针对该帧的组块的、从用于该帧的经编码的视频图像数据得到的编码指示符(在针对该帧的经编码的视频图像数据包括针对该帧的各组块的(非默认)编码指示符的情况下,其中,例如,由于该编码指示符已经在编码针对该帧的视频图像数据时被启用并因此在用于该帧的比特流中被编码,因而针对该帧中的组块的两个编码指示符不同),或者反馈针对该帧的组块的、从针对该帧序列中的先前帧的经编码的视频图像数据得到的编码指示符(在该编码指示符在编码用于该帧的视频图像数据时被禁用的情况下,并且优选地还在针对该帧的经编码的视频图像数据引用来自该先前帧的编码指示符时,这些编码指示符优选地已经被用于编码针对该帧的视频图像数据)。

换句话说,在优选实施方式中,当在对用于该帧的视频图像数据进行编码时启用了该编码指示符并且这些编码指示符与该经编码的视频图像数据一起编码时(例如,由于该编码指示符已经针对该帧被更新),即,当用于该帧的经编码的视频图像数据包括用于该帧的各组块的编码指示符时(例如,具有针对具有不同值的至少两个相应组块的至少两个编码指示符),针对该帧的组块反馈的编码指示符是从针对该帧的经编码的视频图像数据得到的那些编码指示符,否则(例如,由于该编码指示符已经在编码针对该帧的视频图像数据时被禁用或者由于该编码指示符已经被启用但引用来自先前帧的编码指示符,并由此,例如,当针对该帧的经编码的视频图像数据在针对该帧的组块的该组编码指示符中不包括两个不同编码指示符时),针对该帧的组块反馈的编码指示符是从用于该帧序列中的先前帧的经编码的视频图像数据得到的编码指示符。

优选的是,如果用于该帧的经编码的视频图像数据是指来自先前帧的编码指示符,则反馈用于该帧的组块的编码指示符包括,针对该帧的组块,反馈从用于该视频帧序列中的先前帧的经编码的视频图像数据得到的编码指示符。

不仅该编码指示符在对用于帧的经编码的视频图像数据进行编码时使用(或不使用),要反馈的编码指示符可以按任何合适和希望的方式来指示和确定。在优选实施方式中,针对帧反馈的该组编码指示符由在针对该帧的视频图像数据中编码的模式指示符来指示,例如,在与该帧相关联的报头数据中提供。因而,优选的是,如上所述,该模式指示符指示当该编码指示符在经编码的视频图像数据时被启用时并且这些编码指示符被编码在针对该帧的比特流中(例如,在该编码指示符被更新时),当该编码指示符在编码针对该帧的视频图像数据时被启用(即,使用)时但引用针对先前帧的编码指示符(例如,在该编码指示符未被更新,并由此使用来自先前帧的一组编码指示符),或者当该编码指示符在编码针对该数据的视频图像数据时被禁用时。

在针对被解析和解码的该帧的经编码的视频图像数据包括针对该帧的各组块的(非默认)编码指示符的情况下(例如,由于该编码指示符已经在编码针对该帧的视频图像数据时被启用并且该编码指示符已经针对该帧更新),在用于该帧的经编码的视频图像数据中将具有用于该帧中的各组块的编码指示符值(例如,具有针对具有不同值的至少两个相应组块的至少两个编码指示符),因此各组块都可以简单地具有针对其“反馈”的相应编码指示符。

因此,在这种情况下,将存在针对该帧中的各数据组块提供的单个编码指示符,作为用于该帧的、针对该经编码的视频图像数据中的该组块包括的编码指示符。

对于编码指示符在编码针对要被解析和解码的帧的组块的视频图像数据时被禁用的情况来说(并且优选地,还在针对该帧的经编码的视频图像数据引用来自先前帧的编码指示符的情况下),那么,如上所述,针对该帧的组块的、从针对该视频帧序列中的先前帧的编码图像数据得到的编码指示符将被用于针对被反馈至解析级的当前帧的各组块提供编码指示符。

在这点上,应当注意,编码指示符被使用(被反馈)的先前帧可以是该视频帧序列的恰好前一帧,但不必须是,而可以是该视频帧序列中的较早帧(例如,其中存在该序列中的、不使用编码指示符和/或编码指示符的使用已被禁用的中间帧)。如果用于该帧的经编码的视频图像数据是指来自先前帧的编码指示符,则优选地,所引用的编码指示符是来自针对其的编码指示符在编码该视频图像数据时启用的恰好前一帧的那些编码指示符。

在这方面要被使用(反馈)的针对前一帧的编码指示符可以按任何合适和希望的方式提供。例如,如果该编码信息在解析级之后被提供给存储部(例如,主存储器),则用于先前帧的编码指示符可以在它们所相关的帧已经被解码之后被保持在存储部中,使得它们接着可用于反馈,如果后面帧的需要的话。

在具体优选实施方式中,如上所述,如果被提供以供用于解码编码视频帧(例如,其存储在存储部(例如,主存储器)中)的编码信息包括组编码指示符,而不管当前解析的帧是否包括一组(非默认)编码指示符,则随着从当前处理的帧得到的编码信息提供的那些编码指示符可以是,并且优选地作为来自前一帧的编码指示符来反馈。

换句话说,用于前一帧的编码指示符实际上将被提供用于通过解析级反馈至该解析级,该解析级包括其已经在其输出的编码信息中接收到的反馈编码指示符(从针对前一帧反馈的)(其中针对所关注的帧的经编码的视频数据不包括新的一组(非默认)编码指示符),使得那些先前编码指示符接着可用于再次反馈至解析级(并且再次被反馈回至该解析级)。

由此,“当前”该组编码指示符实际上将在解析级连续循环,例如,经由存储部,使得它们总是可以通过从解析级输出并且反馈回至该解析级而可用(直到包括新的一组(非默认)编码指示符的编码视频帧出现在该视频帧序列中为止,在这种情况下,该新的一组编码指示符将接着成为要使用的“当前”一组编码指示符)。

在一个实施方式中,经编码的视频图像数据帧的比特流可以被构造成能够被独立解码的多组帧。优选的是,该序列每组帧中的第一帧是“帧内”帧(或vp9中的“关键”帧)。该帧内帧不是相对于任何其它(例如,基准)帧来编码,并由此能够独立于任何其它帧来解码。在这个实施方式中,优选的是,当在比特流中遇到帧内帧时,停止当前一组编码指示符循环回至解析级,并接着针对在开始时具有该帧内帧的该新的一组帧恢复,例如,编码指示符不从先前帧向前运送至该帧内帧(或实际上针对任何后续帧)。

由此,在优选实施方式中:

当在对用于该帧的视频图像数据进行编码时启用该编码指示符并且这些编码指示符与该经编码的视频图像数据一起编码时(例如,由于该编码指示符已经针对该帧被更新),即,当用于帧的经编码的视频图像数据的比特流包括用于该帧的各组块的(非默认)编码指示符时(其中,针对该帧的编码指示符例如包括两个不同的编码指示符),针对各组块得到的该组编码信息包括针对当前被处理的帧的组块的编码指示符(其接着随用于该帧的编码信息提供,以供用于对用于该帧的经编码的视频图像数据进行解码,并反馈至解析处理电路以供在解析下一帧的经编码的视频图像数据时使用);并且

当该编码指示符在编码该视频图像数据时被禁用时(并由此,例如,用于帧的经编码的视频图像数据的比特流包括针对该帧的各组块的默认编码指示符),针对各组块提供的该组编码信息包括从针对该视频帧序列中的先前帧的组块的经编码的视频图像数据得到的编码指示符(其随用于该帧的所得到编码信息提供,以供用于对用于该帧的经编码的视频图像数据(若需要的话)进行解码,并反馈至解析处理电路以供在解析下一帧的经编码的视频图像数据时使用)。

优选的是,而且,如果用于该帧的经编码的视频图像数据是指来自先前帧的编码指示符,则针对各组块提供的该组编码信息包括从针对该视频帧序列中的先前帧的组块的经编码的视频图像数据得到的编码指示符(其随用于该帧的所得到编码信息提供,以供用于对用于该帧的经编码的视频图像数据进行解码,并反馈至解析处理电路,以供在解析下一帧的经编码的视频图像数据时使用)。

对应地,在优选实施方式中,当在对用于该帧的视频图像数据进行编码时启用该编码指示符并且这些编码指示符与该经编码的视频图像数据一起编码时(例如,由于该编码指示符已经针对该帧被更新),例如,当用于帧的经编码的视频图像数据的比特流包括用于该帧的各组块的(非默认)编码指示符时(例如,针对该帧的编码指示符包括两个不同的编码指示符),针对用于在在该比特流中编码的所述帧序列中的下一帧和后续帧的编码信息,提供并反馈该组编码指示符,直到具有当对用于该帧的视频图像数据进行编码时启用的编码指示符并且与该经编码的视频图像数据一起编码了这些编码指示符的新帧(例如,包括针对该帧的各组块的(非默认)编码指示符的新帧)出现在该帧序列中为止(在该点上,针对用于在在该比特流中编码的该帧序列中的下一帧和后续帧的编码信息,提供并反馈针对该新帧的该组编码指示符,直到具有当对用于所述帧的所述视频图像数据进行编码时启用的编码指示符并且与所述经编码的视频图像数据一起编码了这些编码指示符的新帧出现在所述帧序列中为止,等等)。

本申请人还已经认识到,可能的情况是,当前视频帧已经出于编码目的而被划分成的组块可能(在位置和/或大小方面)不匹配其编码指示符值将被使用的先前帧出于编码目的而被划分成的组块,即,在当前帧的组块与将采取其要被反馈的编码指示符的该帧或多帧的组块之间可能不存在精确匹配。

因此,为了允许这样,采用本发明的方式的操作可操作以通过下面的步骤来确定针对当前帧(在其将要完成的情况下)的相应组块的、从针对要反馈的前一帧的经编码的视频图像数据得到的编码指示符:将当前帧的组块映射至要采取其编码指示符的先前帧的一个或多个对应组块(即,具有(至少部分地)该帧内的相同位置),并接着,由此选择针对当前帧块反馈的编码指示符。

在具体优选实施方式中,该处理操作以从先前帧标识单个编码指示符,以作为针对该帧中的当前块的编码指示符来反馈。

该处理优选地操作如下。

首先,如果当前帧中的组块直接映射至从其获取编码指示符的先前帧中的组块,或者完全落入先前帧中的较大组块内,则提供针对该先前帧中的对应组块或较大组块的值,作为针对该帧中的当前组块的编码指示符。

另一方面,对于当前帧中的组块与先前帧中的多个组块(各都具有相应编码指示符)交叠(至少部分地)的情况来说,那么,优选的是,选择针对先前帧中的、当前帧组块所交叠的组块之一的编码指示符,并将其提供为针对当前帧中的组块的编码指示符。

可以按照希望选择出于该目的而选择的编码指示符(和/或其编码指示符被选择的先前帧中的块)。在优选实施方式中,当前帧中的组块所交叠(至少部分地)的该一组组块的最低值编码指示符被选择为针对当前帧组块反馈的编码指示符。当然,其它方案也是可以的。

由此,在具体优选实施方式中,如果从该帧序列中的先前帧的经编码的视频图像数据得到的编码指示符要被反馈用于当前帧的组块,则选择针对该帧的组块的、来自该视频帧序列中的先前帧的单个编码指示符,作为要针对(当前)帧的指定组块反馈的编码指示符(优选地,采用上述方式)。

尽管如此,但是如上所讨论的,在这些情况下优选地针对当前帧的各组块反馈从由该帧序列的先前帧得到的编码指示符所获取的单个编码指示符,但本申请人进一步认识到,如果当前帧中的数据组块与从其获取编码指示符的先前帧中的多个数据组块对应(例如,如果前一帧中的这些数据组块小于或部分地交叠当前帧中的数据组块),则有利的是,除了已经被选择用于当前帧中的所述组块的该单个编码指示符以外,还在该数据流中包括(并且反馈)针对该先前帧中的、当前帧中的所述数据组块对应于(即,指示部分地交叠)的全部所述多个数据组块的编码指示符。

这接着允许在该数据流中保持附加的先前帧编码指示符信息,使得如果后续帧需要比当前帧中的数据组块精细的分辨率的编码信息(例如,因为该后续帧中的数据组块小一倍),那么就可以重建该更精细分辨率的编码指示符信息(因为该更精细分辨率的编码指示符信息仍然存在于反馈的数据流中)。

由此,在具体优选实施方式中,如果当前帧中的数据组块与从其获取编码指示符的先前帧中的多个数据组块(例如,如果先前帧中的数据组块小于或部分地交叠当前帧中的数据组块)对应,则针对当前帧中的数据组块,反馈(关联)针对从其获取编码指示符的先前帧中的所述多个数据组块的所述多个编码指示符。

由此,如果当前帧中的数据组块与从其获取编码指示符的先前帧中的多个数据组块对应,则优选地,针对当前帧中的数据组块提供(和反馈)的编码指示符信息包括表示从其获取编码指示符的先前帧中的对应数据组块中的编码指示符的单个值(例如,该编码指示符中的最小值)(即,按粗略分辨率),和对应于当前帧中的数据组块的、针对从其获取编码指示符的先前帧中的所述多个数据组块的所述多个编码指示符(即,按精细分辨率)两者。

这有助于避免丢失来自前一帧的更精细分辨率的编码指示符信息,例如,因为由较粗略的数据组块形成的帧,并且对于其来说。该信息可能以其它方式被丢弃。这由此允许后续帧(例如,其可以具有多个数据组块,所述多个数据组块的分辨率更好地匹配从其最初获取编码指示符的先前帧中的数据组块)针对其组块使用更精细分辨率的编码指示符(而不是丢失该信息)。

如果一组附加的更精细分辨率的编码指示符要针对该帧的组块反馈,则那些编码指示符可以按任何合适和希望的方式来反馈。优选的是,它们在反馈数据流中的数据字中提供,优选地利用(若需要的话)针对所关注的当前帧中的数据组块的附加数据字,例如,进一步直至可以写入针对该组块的选定单一编码指示符的数据字。由此,如果该进一步的信息要被包括在该数据流中,则额外数据字优选地能够在该适当点被包括在数据流中以容纳。

在具体优选实施方式中,该数据流中存在任何附加数据字被指示。这优选地通过利用诸如标志的指示符指示在针对数据组块的数据流中存在附加数据字(和/或处于更精细的分辨率级别的编码指示符)来实现。该指示符优选地被包括在针对所关注的组块的流中的第一数据字中。

在优选实施方式中,每当要针对该帧的组块反馈一组附加的更精细分辨率的编码指示符,那么就利用针对该数据组块的数据流中的一个或更多个附加数据字来反馈那些编码指示符(优选地,与在针对所关注的组块的初始数据字中设置标志一起,来指示存在附加数据字或多个字)。

用于该附加编码指示符的附加数据字的数量优选地依赖于当前帧中的数据组块的大小(并由此,取决于当前块所覆盖的先前帧中的较小组块的最大数量),和/或指定数据字可以指示的编码指示符的数量。

例如,如果当前帧中的数据组块仅覆盖多达在单个附加数据字中可以输送针对其的编码指示符的较小块的数量,则优选地,仅使用单个附加数据字来提供该组附加的更精细分辨率的编码指示符。

其将是这种情况,例如,其中帧的组块的最小大小被划分成8×8像素,指定(例如,32位)数据字可以支持多达八个编码指示符,并且当前帧中的数据组块小于32×32像素。

对于当前帧中的数据组块覆盖多于可以利用单个数据字来输送针对其的编码指示符的先前帧中的较小组块的数量的情况来说,那么优选地使用多个附加数据字来提供该组附加的更精细分辨率的编码指示符。这将是上述示例中的情况,其中当前帧中的数据组块是32×32像素或更大。

在这种情况下,在优选实施方式中,该附加数据字优选地配置如下。首先,优选地存在具有皆表示当前帧的所述组块内的相应一组较小组块(如皆表示对应于一组8个8×8组块的32×16组块)的相应编码指示符字段的“报头”数据字。接着,如果由报头数据字的指定编码指示符字段表示的该组较小组块内的各较小组块都具有相同的编码指示符,则优选地,指定该组较小组块的报头数据字中的字段被构造成该编码指示符值,并且被解释为指示该组较小组块内的所有较小组块具有该编码指示符值。

另一方面,如果在报头数据字中的编码指示符字段对应于的、该组较小组块内的较小块具有不同的编码指示符值,则优选地将针对报头数据字中的该组较小组块的编码指示符字段构造成指示(例如,并且优选地,构造成指示较小数据组块可以具有不同数据值的预定义值)的值,并接着,在该数据流中包括另一附加数据字,该附加数据字指定针对在报头数据字中的编码指示符字段所对应于的该组较小组块内的各较小组块的编码指示符值。

使用标志或其它指示来指示以更精细分辨率附加地为数据流中的数据组块提供编码指示符,并且通过在数据流中提供附加数据字来包括那些更精细分辨率的编码指示符,提供特别有效的机制用于在需要时在数据流中以更精细的分辨率级别提供编码指示符,并且例如可以避免需要总是简单地以视频帧可能出于编码目的而被划分成的组块的最精细潜在分辨率来提供和反馈一组编码指示符。这还易于仅在需要的地方直接提供更精细级别分辨率的编码指示符信息,而不是总是横跨整个帧提供更精细级别分辨率的编码信息。

如果按这种方式为当前帧中的数据组块提供更精细分辨率的一组编码指示符,则那些编码指示符优选地以光栅扫描次序来提供(并且包括在反馈数据流中)。优选的是,提供编码指示符的最精细分辨率是8×8像素的组块(采样位置)。

解析经编码的视频数据、提供所得到的编码信息以供用于解码该经编码的视频数据(和解码经编码的视频数据),以及反馈来自帧的编码信息以供在解析针对该序列中的下一帧的经编码的视频数据时使用的处理优选地针对该帧序列中的各帧重复(适当地)。

在这点上,应当清楚,从被解码的该帧序列中的相应连续帧得到和/或被用于解码该相应连续帧的编码信息,并且对应地,被反馈以供在解析该帧序列中的下一帧的经编码的视频数据时使用的编码信息,将依赖于什么编码信息与该序列中的指定帧一起编码而变化(例如,并且具体来说,关于经编码的帧是否包括一组编码指示符,是否针对帧启用或禁用编码指示符的使用,经编码的帧是否引用不同帧中的该组编码指示符等)。

为例示,下面,对按本发明优选实施方式的方式来解析经编码的视频图像数据的一对示例帧序列进行描述。

首先,考虑表示由用于解码的处理电路接收的经编码的视频图像数据的连续帧序列的经编码的视频图像数据的比特流具有第一帧,对于其来说,(例如,经更新的一组)编码指示符在编码针对该帧的视频图像数据时被启用,并且包括用于该帧的各组块的(非默认)编码指示符时(例如,针对该帧中的组块的编码指示符包括两个不同的编码指示符),第二帧,对于其来说,该编码指示符在编码针对该帧的视频图像数据时被禁用,以及第三帧,对于其来说,该编码指示符引用来自先前帧的该组编码指示符(即,针对第三帧的视频图像数据利用来自先前帧的编码指示符进行编码)。

在这个实施方式中,该方法包括以下步骤(并且该装置被构造成),针对经编码的视频图像数据的三个连续帧的序列:

解析针对第一帧的经编码的视频图像数据,以针对第一帧已经出于编码目的而划分成的各组块,从该数据得到针对该组块的编码指示符;

提供从用于第一帧的经编码的视频图像数据得到的编码指示符以供用于解码用于第一帧的经编码的视频图像数据,以提供用于第一帧的输出视频图像数据;

反馈从用于第一帧的经编码的视频图像数据得到的编码指示符,以供在对该比特流中编码的第二帧的经编码的视频图像数据进行解析时使用;

解析针对第二帧的经编码的视频图像数据,并且提供从用于第一帧的经编码的视频图像数据得到的编码指示符以供用于解码用于第二帧的经编码的视频图像数据,以提供用于第二帧的输出视频图像数据;

反馈从用于第一帧的经编码的视频图像数据得到的编码指示符,以供在对该比特流中编码的第三帧的经编码的视频图像数据进行解析时使用;以及

解析针对第三帧的经编码的视频图像数据,并且提供从用于第一帧的经编码的视频图像数据得到的编码指示符以供用于解码用于第三帧的经编码的视频图像数据,以提供用于第三帧的输出视频图像数据。

在该示例中,将会看到,即使为了解码第二帧的经编码的视频图像数据而不需要一组编码指示符,在解码第三帧的经编码的视频图像数据需要来自先前帧的一组编码指示符的情况下(此外,在不存在一组编码指示符在针对第三帧的经编码的视频图像数据中可用的情况下,即,因为第三帧利用来自先前帧的编码指示符(即,从第一帧反馈的编码指示符)来编码)),用于第一帧的该编码指示符也被提供为用于第二帧的编码信息的一部分(即,针对第二帧得到的该组编码指示符是用于第一帧的该组编码指示符),并接着被反馈以供在解析第三帧的经编码的视频图像数据时使用(由于该编码指示符已针对第二帧被禁用)。

第二,考虑表示由用于解码的处理电路接收的经编码的视频图像数据的连续帧的序列的经编码的视频图像数据的比特流具有第一帧,对于其来说,(例如,经更新的一组)编码指示符在编码针对该帧的视频图像数据时被启用,并且包括针对该帧的各组块的(非默认)编码指示符,第二帧,对于其来说,该编码指示符在编码针对该帧的视频图像数据时被禁用,以及第三帧,对于其来说,(例如,经更新的一组)编码指示符在编码针对该帧的视频图像数据时被启用,并且包括用于该帧的各组块的(非默认)编码指示符。

在这个实施方式中,该方法包括以下步骤(并且该装置被构造成),针对经编码的视频图像数据的三个连续帧的序列:

解析针对第一帧的经编码的视频图像数据,以针对第一帧已经出于编码目的而划分成的各组块,从该数据得到针对该组块的编码指示符;

提供从用于第一帧的经编码的视频图像数据得到的编码指示符以供用于解码用于第一帧的经编码的视频图像数据,以提供用于第一帧的输出视频图像数据;

反馈从用于第一帧的经编码的视频图像数据得到的编码指示符,以供在对该比特流中编码的第二帧的经编码的视频图像数据进行解析时使用;

解析针对第二帧的经编码的视频图像数据,并且提供从用于第一帧的经编码的视频图像数据得到的编码指示符以供用于解码用于第二帧的经编码的视频图像数据,以提供用于第二帧的输出视频图像数据;

反馈从用于第一帧的经编码的视频图像数据得到的编码指示符,以供在对该比特流中编码的第三帧的经编码的视频图像数据进行解析时使用;

解析针对第三帧的经编码的视频图像数据,以针对第三帧已经出于编码目的而划分成的各组块,从该数据得到针对该组块的编码指示符;以及

提供从用于第三帧的经编码的视频图像数据得到的编码信息以供用于解码用于第三帧的经编码的视频图像数据,以提供用于第三帧的输出视频图像数据(并且优选地,反馈从用于第三帧的经编码的视频图像数据得到的编码指示符,以供在对该比特流中编码的下一帧的经编码的视频图像数据进行解析时使用)。

在该示例中,可以看出,针对第一帧的编码指示符被反馈至解析级(由于该编码指示符已针对第二帧被禁用)直到在包括一组(非默认)编码指示符的比特流(即,第三帧)中接收到经编码的视频图像数据的帧为止。当接收到这样的帧(第三帧)时,被提供用于对经编码的视频图像数据进行解码(然后被反馈以解析后续帧)的编码指示符接着成为随后(即,第三)帧的该组编码指示符。

尽管上面具体参照解码视频数据对本发明进行了描述,但本申请人已经认识到,在经编码的视频图像数据时,也可以使用本发明的技术。

由此,当从本发明的第三方面看时,提供了一种用于对视频数据帧序列中的帧进行编码的方法,该视频数据帧序列以表示所述视频数据帧序列的视频图像数据的比特流来提供,该方法包括以下步骤:

针对视频图像数据的所述比特流所表示的帧:

处理用于所述帧的所述视频图像数据,以出于编码目的而将视频帧划分成多个组块,并且针对视频帧已经出于编码目的而划分成的各组块得到一组编码信息;

提供针对用于所述帧的所述视频图像数据得到的所述编码信息,以供用于对用于所述帧的所述视频图像数据进行编码以提供用于所述帧的输出的经编码的视频图像数据;以及

反馈用于所述帧的编码信息以供当处理所述比特流中的所述帧序列中的下一帧的所述视频图像数据时使用;

其中:

反馈用于所述帧的所述编码信息的步骤包括:

反馈用于所述视频帧已经出于编码目的而划分成的各数据组块的至少编码指示符;其中:

反馈用于所述帧的组块的编码指示符的步骤包括:

在当对用于所述帧的所述视频图像数据进行处理时用于所述帧的所述组块的所述编码指示符被禁用的情况下,针对所述帧的所述组块,反馈用于所述视频帧序列中的先前帧的所得到的编码指示符。

当从本发明的第四方面看时,提供了一种用于对视频数据帧序列中的帧进行编码的装置,该视频数据帧序列以表示所述视频数据帧序列的视频图像数据的比特流来提供,该装置包括:

处理电路,该处理电路被构造成接收视频图像数据的比特流;

分析处理电路,该分析处理电路被构造成针对视频图像数据的比特流所表示的帧:

处理用于所述帧的所述视频图像数据,以出于编码目的而将视频帧划分成多个组块,并且针对所述视频帧已经出于编码目的而划分成的各组块得到一组编码信息;

以及

提供针对用于所述帧的所述视频图像数据得到的所述编码信息,以供用于对用于所述帧的所述视频图像数据进行编码以提供用于所述帧的输出的经编码的视频图像数据;

以及

反馈电路,该反馈电路被构造成向所述分析处理电路反馈用于帧的编码信息以供当处理所接收的比特流中的所述帧序列中的下一帧的所述视频图像数据时使用;

其中:

所述反馈电路被构造成通过以下来反馈用于帧的所述编码信息:

反馈用于所述视频帧已经出于编码目的而划分成的各数据组块的至少编码指示符;

以及所述反馈电路被构造成:

通过以下来反馈用于帧的组块的编码指示符:

在当对用于帧的所述视频图像数据进行处理时用于所述帧的所述组块的所述编码指示符被禁用的情况下,针对所述帧的所述组块,反馈用于视频帧序列中的先前帧的所得到的编码指示符。

如本领域技术人员应当清楚,本发明的这些方面在适当时候可以并且优选地包括在此讨论的本发明的优选和可选特征中的任一个或更多个或全部。

具体来说,优选的是,该编码处理对应地包括上面关于解码处理所关注的优选和可选特征。由此,例如,优选的是,当在对用于帧的视频图像数据进行处理时启用该编码指示符并且针对该帧更新该编码指示符时(并因此优选地,处理用于帧的视频图像数据包括得到用于该帧的各组块的编码指示符,例如,具有针对具有不同值的至少两个相应组块的至少两个编码指示符),反馈用于该帧的组块的编码指示符包括反馈针对该帧的组块的得到编码指示符。

而且,优选的是,当在对用于帧的视频图像数据进行处理时启用该编码指示符并且这些编码指示符引用来自先前帧的编码指示符时,反馈用于该帧的组块的编码指示符包括针对该帧的组块,反馈针对视频帧序列中的先前帧得到的编码指示符。

而且,例如,针对要编码的帧得到的该组编码信息优选地具有上面讨论的形式。

对应地,该组编码信息,例如,运动矢量值、组块大小指示符和/或编码指示符,优选地被反馈和/或提供以供用于在单个数据流中经编码的视频图像数据。

类似的是,至于该解码方法和装置,优选地,设置存储部并且用于存储针对用于该帧的经编码的视频图像数据得到的编码信息(和任何附加编码信息),以供用于编码用于该帧的视频图像数据。

类似的是,在优选实施方式中,被反馈以供在对该帧序列中的下一帧进行编码时使用的编码指示符优选地包括任何更精细分辨率的编码指示符信息(如上文关于解码处理所关注的),其可以从已编码的先前帧出现,例如,并且优选地,按与上面关于解码方法和装置所关注的方式相同的方式。

处理视频图像数据以得到针对该帧的各组块的一组编码信息可以包括任何希望和合适的这种处理。在优选实施方式中,其包括相对于基准帧执行针对用于该帧的视频图像数据的运动估计,以针对该视频帧已经出于编码目的而划分成的各组块,得到针对该组块的运动矢量值。

对应地,该分析处理电路优选地包括运动估计电路,该运动估计电路被构造成,针对要编码的视频图像数据的帧:相对于基准帧执行针对用于该帧的视频图像数据的运动估计,以针对该视频帧已经出于编码目的而划分成的各组块,得到针对该组块的运动矢量值。

被用于相对于被编码的输入视频图像数据的帧执行运动估计的基准帧可以包括视频图像数据的任何合适和希望的帧。例如,对于要编码的视频图像数据的所有(或至少多个)帧来说,该基准帧可以是同一(例如,静态)帧。优选的是,该基准帧包括视频图像数据的该帧序列中的先前帧。

一旦已经从用于当前帧的输入视频图像数据生成了该组编码信息,那么优选地,将针对当前和先前帧中的所述多个数据组块的编码信息(例如,运动矢量值、组块大小指示符和/或编码指示符)例如并且优选地确实提供给编码处理电路,以供用于对编码用于当前帧的视频图像数据。优选的是,该编码处理包括熵或差分编码器。优选地,针对视频图像数据的该帧序列的经编码的视频图像数据接着被优选地作为视频图像数据的编码流,而输出至存储部和/或用于传送。

本发明可以在任何合适的视频处理系统中实现,如适当配置的基于微处理器的系统。在实施方式中,本发明在计算机和/或基于微处理器的系统中实现。优选的是,本发明在视频解码器、编码器和/或处理器中实现(或者实现为视频解码器、编码器和/或处理器)。

该系统可以包括任何合适和希望的组件或部件,以允许按本发明的方式进行操作,举例来说,如用于渲染的渲染单元(例如从解码处理电路向其提供输出(解码)视频图像数据)、从渲染单元向其提供渲染视频帧的输出部(例如,显示器),以及存储器,该存储器用于存储所需数据(如未编码的视频数据、随后的经编码的数据组块以及随后的输出(解码)视频数据)。

如果已经生成经编码的视频图像数据(例如,作为经编码的数据的比特流),则可以根据需要处理以供将来使用,例如,通过适当地存储和/或通过发送至用于解码的解码器(其优选为本发明的用于解码经编码的视频图像数据的装置)。接着,该解码器可以例如根据本发明的解码方法,随后解码经编码的视频数据。

本发明的各种功能可以按任何希望和合适方式来执行。例如,本发明的功能可以如所希望地按硬件或软件来实现。由此,例如,除非以其它方式指出,本发明的各种功能性部件、级,和“装置”可以包括合适的处理器或多个处理器、控制器或多个控制器、功能性单元、电路、处理逻辑、微处理器方案等,其可操作以执行各种功能等,如可以被编程成按希望方式操作的适当专用的硬件部件(处理电路)和/或可编程硬件部件(处理电路)。

在此,还应注意到,如本领域技术人员应当清楚,本发明的各种功能等可以在指定处理器上复制和/或并行执行。等同地,若希望的话,各种处理级可以共用处理电路等。

针对必需执行上述特定功能的任何硬件的主旨,该视频处理器可以以其它方式包括视频编码器、解码器,以及处理器包括的常见功能单元等中的任一个或更多个或全部。

本领域技术人员还应清楚,本发明的全部描述实施方式在合适时候,可以(并且在实施方式中)包括在此描述的特征中的任一个或更多个或全部。

根据本发明的方法可以至少部分地利用软件(例如,计算机程序)来实现。由此,可以看到,当从本发明的另一些实施方式观看时,提供当安装在数据处理器上时具体适于执行在此所描述的方法的计算机软件,包括当在数据处理器上运行该程序部件时用于执行在此所描述的方法的计算机软件代码的计算机程序部件,以及包括当在数据处理系统上运行该程序时适于执行在此所描述的方法的或多个方法的全部步骤的代码的计算机程序。该数据处理器可以是微处理器系统、可编程fpga(现场可编程门阵列)等。

本发明还扩展至包括这种软件的计算机软件载体,其在被用于操作包括数据处理器的图形处理器、渲染器或微处理器系统时,使与所述数据处理器、所述处理器、渲染器或系统结合地执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,如rom芯片、cdrom、ram、闪速存储器,或磁盘,或者可以是诸如通过导线的电子信号的信号、光学信号或诸如针对卫星的无线电信号等。

还应清楚,不是本发明方法的所有步骤都需要通过计算机软件来执行,并由此,根据本发明的更广泛实施方式提供安装在计算机软件载体上的、用于执行在此阐述的方法的步骤中的至少一个步骤的计算机软件和这种软件。

因此,本发明的装置可以适当地具体实施为供与计算机系统一起使用的计算机程序产品。这种实现可以包括在诸如计算机可读介质(例如,软盘、cdrom、rom、ram、闪速存储器,或硬盘)的有形非暂时介质上固定的一系列计算机可读指令。其还可以包括可通过有形介质(包括但不限于光学或模拟通信线路),或者利用无线技术(包括但不限于微波、红外线或其他传输技术)无形地,经由调制解调器或其它接口装置传送至计算机系统的一系列计算机可读指令。该系列计算机可读指令具体实施先前在此描述的全部或部分功能。

本领域技术人员应当清楚,这种计算机可读指令可以采用多个编程语言来编写,以供随多个计算机架构或操作系统一起使用。而且,这种指令可以利用当前或将来的任何存储器技术来存储,包括但不限于半导体、磁性,或光学,或者利用当前或将来的任何通信技术来传送,包括但不限于光学、红外线,或微波。设想的是,这种计算机程序产品可以分布为具有附随打印或电子文档(例如,收缩包装软件)的可去除介质,利用计算机系统预先加载(例如,预先加载在系统rom或固定盘上),或者通过网络(例如,因特网或万维网)从服务器或电子公告板分布。

附图说明

下面,仅通过示例的方式并且参照附图,对本发明的多个优选实施方式进行描述,其中:

图1示出了根据本发明实施方式的用于对经编码的视频图像数据进行解码的装置的示意图;

图2示出了包含要在图1和图3所示装置中的视频图像数据的编码和解码中使用的编码指示符的段映射的示例;以及

图3示出了根据本发明实施方式的用于对视频图像数据进行编码的装置的示意图。

具体实施方式

在根据vp9编码格式对视频图像数据进行编码和解码的背景下,对本发明的优选实施方式进行描述。

在vp9编码方案中,视频图像数据的各帧被划分成该帧的多个矩形像素组块,并且各组块被单独地编码和解码。指定数据组块可以具有指向基准帧中的对应数据组块的关联运动矢量,和描述当前数据组块中的数据与该基准帧中的数据之间的差异的残差。

在vp9编码中,视频帧的组块可以按多个不同方式编码,尤其是根据针对一组可变编码参数(其指定vp9编码格式定义)为该组块设置的值。该组编码参数包括:跳过指示、量化参数、环路滤波器强度以及基准帧指示符。要被用于(和用于)针对组块的该组编码参数的该组值由用于该组块的编码指示符指示,称作“段id”。当用于帧时,针对被编码的各数据组块提供段id,并且针对帧的组段id一起形成针对所关注的帧的所称的“段映射”。

允许八个不同的段id,其中各不同的段id指示针对用于所关注的视频帧块的编码参数的特定一组值。然而,一些帧可以在不引用针对所关注的帧的编码参数的情况下被编码,即,该编码指示符在对用于这些帧的视频图像数据进行编码时被禁用。针对这样的帧,可以将帧id0(段id可以采用的8个不同值中的一个)指配为针对用于该帧的各组块的段id的默认值,以指示该帧在编码指示符被禁用的情况下被编码。

而且,在vp9编码中,针对任何指定帧,可以应用多个编码或解码模式中的一种,其确定针对该帧的视频图像数据是否利用一组编码指示符来编码或解码(即,启用编码指示符,并因此生成(在编码时)或提供(在解码时)新的一组编码指示符(即,段映射)用于所关注的帧,或者是否要将用于先前帧的编码指示符(段映射)用于所关注的帧),或者是否在不利用一组编码指示符的情况下对用于该帧的视频图像数据进行编码或解码(即,编码指示符被禁用,并因此要针对所关注的帧生成/提供默认的一组编码指示符(无段映射)(即,针对该帧禁用该段映射))。

该编码模式或解码模式在各帧的帧“报头”中被指示为经编码的视频图像数据的比特流的一部分。

首先,参照图1和图2,对vp9经编码的视频数据的帧序列的比特流的解码进行描述。

图1示出了根据本发明实施方式的用于对经编码的视频图像数据(例如,如所描述利用图3所示装置编码的)进行解码的装置101的示意图。

装置101包括解析单元102,其接收要解码的经编码的视频图像数据的比特流,该比特流包括用于多个帧的序列的经编码的视频图像数据。该装置101还包括缓冲器104,其从解析单元102接收针对各帧的组编码信息。该缓冲器104还被构造成将针对该帧的该一组编码信息反馈至解析单元102。

装置101还包括渲染单元106,其从缓冲器104接收针对各帧的该组编码信息。最后,装置101包括帧缓冲器108,其从渲染单元106接收用于各帧的解码视频图像数据(通常采用yuv格式),使得其可以被显示。

下面,参照图1,对根据该实施方式的用于解码经编码的视频图像数据的装置101的操作进行描述。

在操作中,解析单元102接收表示视频帧序列的经编码的视频图像数据流。解析单元102读取用于该序列中的指定帧n的经编码的视频图像数据,并且从其生成一组编码信息以供用于针对帧n的视频图像数据的后续解码和渲染。该组编码信息包括运动矢量,组块大小和编码指示符(其存在于针对所关注的帧的经编码的视频图像数据中)。

将针对帧n的该组编码信息写入缓冲器104(设置在主存储器中(例如,设置在直接随机存取存储器(dram)中)),以供临时存储。接着,将针对帧n的该组编码信息提供给渲染单元106,该渲染单元利用针对帧n的该组编码信息生成yuv图像数据。接着,将针对帧n的yuv图像数据发送至帧缓冲器108,例如用于显示。

如图1所示,针对帧n的该组编码信息还从缓冲器104反馈至解析单元102,以使解析单元102能够生成用于下一帧即帧n+1的编码信息。

该组编码信息作为单个数据流被反馈至解析单元102,其采用数据字的序列的形式,各数据字都包含用于该帧的组块的相应编码信息。针对该帧已经被划分成的各组块存在至少一个数据字,其中一些组块潜在地具有附加数据字(如下面将进一步讨论的)。

如下将进一步讨论的,针对指定的经编码的帧得到的编码信息以及针对该帧反馈至解析单元的编码信息,针对该帧已经出于编码目的而划分成的各组块,将包括以下中的一个或更多个:组块大小指示、运动矢量值,以及用于该组块的编码指示符(段id)。通过解析单元针对组块得到这些值中的哪些值并且针对该组块提供这些值尤其取决于在用于所关注的组块的经编码的比特流中编码了什么信息。该操作将在下面进行更详细地讨论。

针对帧内的数据组块的每条信息(例如,包括组块大小、段id以及运动矢量)在针对各组块的初始(例如,32位)数据字内被保留固定比特数。

根据本发明,针对从缓冲器104反馈至解析单元102以供用于生成针对下一帧n+1的该组编码信息的一帧的该组编码信息总是包括用于视频图像数据的该帧的一组编码指示符(“段映射”)。即使针对该编码图像数据组块的编码指示符未在比特流中提供(其如上所述有时可能是这样,取决于被用于经编码的视频图像数据的模式),这也允许为视频图像数据的各帧提供一组编码指示符(“段映射”)。

针对帧反馈至解析单元102的该组编码指示符(段映射)取决于当前被解码的该帧是否利用编码参数进行编码(并因此包括非默认段映射)。这种(编码或解码模式)在各帧的帧“报头”中被指示为经编码的视频图像数据的比特流的一部分。

当被解码的编码视频图象数据的帧在经更新段映射被启用的情况下被编码,并由此该编码视频图象数据包括(非默认)段映射(即,包含至少两个不同的段id)时,解析单元102解析经编码的数据,并生成包括针对该帧的段映射的该组编码信息,以提供给缓冲器104并且反馈至解析单元102。

当被解码的经编码的视频图像数据的帧具有其被禁用的段映射(即,使得经编码的数据包括默认段映射)时,将针对该帧序列中的先前帧的段映射反馈给解析单元102。为此,解析单元102解析针对当前帧的数据,以生成用于当前帧的该组编码信息,并接着在提供给缓冲器104的编码信息中,随该编码信息一起包括针对先前帧的段映射(其已经从缓冲器104反馈至解析单元102,使得其可用于此目的)。

由于针对先前帧反馈给解析单元102的编码信息包括来自先前帧的段映射,因而,这确保来自先前帧的段映射总是可用于引用先前帧中的段映射的经编码的视频图像数据的帧。

图2示出了在利用图1所示的装置解码视频图像数据时,针对示例性视频帧序列的所反馈编码信息数据流的示例,包括段id(编码指示符)。

图2示出了视频图像数据的三个示例性帧50、70、80(帧0、帧1、帧2),连同编码信息数据90、91、92一起,其被反馈以供在针对该例示帧序列来解析该序列中的下一帧时使用。

如图2所示,各帧被分成多个方形数据组块,并且最小允许数据组块是8×8像素。各块还具有关联段id(编码指示符)。

按光栅扫描次序,帧0包括具有编码指示符(段id)0的32×32组块51,具有编码指示符3的16×16组块52,具有编码指示符3的另一个16×16组块53,具有编码指示符0的8×8组块54,具有编码指示符1的8×8组块55,具有编码指示符1的另一8×8组块56,具有编码指示符2的8×8组块57,具有编码指示符3的16×16组块58,具有编码指示符1的8×8组块59,具有编码指示符0的8×8组块60,具有编码指示符2的8×8组块61,具有编码指示符1的8×8组块62。

(图2中所示的帧大小被限制仅用于解释的目的;在现实中,视频图像数据的帧可能要大得多。而且,编码指示符(段id)已经被限制成0与3之间的值;在vp9中,编码指示符(段id)从0进行至7)。

作为第一帧50,帧0(其在经更新的分段映射启用的情况下被编码)包括针对该帧的各组块的段id(以及在帧50的组块的至少两个不同的段id),针对该第一帧(帧0)反馈的数据流90针对该帧中的各组块,包括针对该组块的组块大小指示和段id。由此,如图2所示,针对该帧反馈至解析单元102的数据流包括包含以下编码信息的数据字流:

32×32组块,段id0,16×16组块,段id3,16×16组块,段id3,8×8组块,段id0,8×8组块,段id1,8×8组块,段id1,8×8组块,段id0,8×8组块,段id1,8×8组块,段id2,8×8组块,段id2,8×8组块,段id1,16×16组块,段id3

如图2所示,该序列中的下一帧70(帧1)具有被禁用的段映射特征,即,在针对该帧的经编码的视频图像数据的比特流中携带默认的一组段id(编码指示符)并由此,针对用于帧1中的各组块的编码指示符(段id)设置默认值0。然而,来自帧0的组块大小在帧1中被保持。

在该示例中还假定,针对帧1中的各组块,提供运动矢量(mv)值,其引用该序列中的第一帧(帧0)中的对应像素组块(其因此将充当针对该视频帧序列的基准帧)。(由于帧0是该序列(一组)帧中的第一帧,所以不针对帧0提供运动矢量,并由此,帧0能够独立地解码,而不引用另一帧(即,帧0是“帧内”或“关键”帧))。

因此,在这种情况下,作为来自帧1的编码信息被反馈至解析单元102的数据流中的数据91针对帧1的各组块,包括组块大小指示和运动矢量值,如图2所示。

然而,如还在图2中示出,除了从针对帧1的经编码的视频数据得到的这些值之外,来自针对帧0中的对应组块的段id被另外针对帧1中的对应组块而反馈(因此,在帧1的该组编码信息中提供针对帧0的段映射信息)。

由此,如图2所示,针对帧1反馈至解析单元102的数据流包括以下信息:

32×32组块,段id0+mv,16×16组块,段id3+mv,16×16组块,段id3+mv,8×8组块,段id0+mv,8×8组块,段id1+mv,8×8组块,段id1+mv,8×8组块,段id0+mv,8×8组块,段id1+mv,8×8组块,段id2+mv,8×8组块,段id2+mv,8×8组块,段id1+mv,16×16组块,段id3+mv

如可以看出,针对帧1反馈的段id与针对帧0提供的段id相同,但针对帧1的反馈编码信息还包括表示帧0与1之间的像素组块的移动的运动矢量值。尽管针对帧1反馈的段id与针对帧0提供的段id相同,但将默认的该组段id(对于该帧中的所有组块来说,等于0)提供给解码级,以指示该帧的组块在不利用段id(并因此也不利用编码参数)的情况下被编码,并由此不需要任何段id(及其关联编码参数),来对用于该帧的经编码的视频图像数据进行解码。

接着,假定该序列中的下一个帧80(帧2)被构造成编码模式,其中,将使用该帧序列中的先前段映射(其在这种情况下是第一帧(帧0)的段映射)。然而,如可以看出,帧2中的组块大小已经相对于帧0和1中的组块大小改变。

因此,在这种情况下,针对帧2中的各组块,选择针对要使用其段映射的帧(因此针对帧0)中的组块的段id(编码指示符)的最小值作为编码指示符,以供用于帧2中的组块。

由此,如图2所示,按光栅扫描次序,帧2包括其编码指示符(段id)被构造成0的16×16组块81,其编码指示符被构造成0的另一16×16组块82,其编码指示符被构造成3的16×16组块83,其编码指示符被构造成0的16×16组块84,其编码指示符被构造成0的另一16×16组块85,其编码指示符被构造成3的16×16组块86,其编码指示符被构造成0的16×16组块87,其编码指示符被构造成1的16×16组块88,以及其编码指示符被构造成3的16×16组块89。

在该示例中还假定,针对帧2中的各组块,提供运动矢量(mv)值,其引用该序列中的第二帧70(帧1)中的对应像素组块,

因此,在这种情况下,作为来自帧2的编码信息被反馈至解析单元102的数据流中的数据92针对帧2的各组块,包括组块大小指示和运动矢量值,如图2所示。

然而,如还在图2中示出,除了从针对帧2的经编码的视频数据得到的这些值之外,从帧0中的对应组块中选择的段id另外针对帧2中的对应组块被反馈。

除此以外,如图2所示,其中,帧2中的组块包含从其获取编码指示符(段id)的先前帧(帧0)中的多个块,针对帧2反馈的数据流另外包括针对该组块的编码指示符,其具有相对于从其获取段id(段映射)的先前帧(在这种情况下为帧0)更精细的分辨率。

由此,例如,针对具有段id0的帧2的16×16组块87,针对形成帧2中的16×16组块87的、来自帧0的对应四个8×8组块54、55、59、60的段id也在针对帧2的反馈的该组编码信息中提供(作为“映射(0、1、1、0)”)。类似的是,针对具有段id1的16×16组块88,针对来自帧0的对应四个8×8组块56、57、61、62的段id也在针对帧2的反馈的该组编码信息中提供(作为“映射(1、2、2、1)”)。接着,这允许后续帧,其具有按该更精细分辨率的对应块,以使用这些更精细分辨率的编码指示符。

由此,如图2所示,针对帧2反馈至解析单元102的数据流包括以下信息:

16×16组块,段id0+mv,16×16组块,段id0+mv,16×16组块,段id0+mv,16×16组块,段id0+mv,16×16组块,段id3+mv,16×16组块,段id3+mv,16×16组块,段id0+mv+映射(0、1、1、0),16×16组块,段id1+mv+映射(1、2、2、1),16×16组块,段id3+mv

通过在针对所关注的组块的数据流中包括一个或更多个附加数据字,在该数据流中传送用于一组块的附加的、更精细分辨率的段id信息。尽管在该示例中未示出,但如果针对多个组块的更精细分辨率的段id信息都具有相同的段id值,则可能没有必要在该数据流中携带更精细分辨率的段id信息,例如,对于具有相同段id值的所有组块来说,该数据流可以仅包括段id一次。

这些附加数据字的存在通过在针对所关注的组块的数据流中的初始数据字中设置一标志来指示(该初始数据字尤其还包括组块大小指示、运动矢量值(如果有的话)以及要用于该组块的段id)。

在本实施方式中,假定使用32位数据字、8×8像素的最小组块大小以及0-7的段id值,在该数据流中使用附加数据字被配置如下。

如果当前组块的大小小于32×32像素,则该组块包含至多8个8×8像素组块,并因此使用如下配置的单个附加数据字:

seg[k]值是当前组块内的按光栅扫描次序的8×8像素组块k的段id。

如果当前块的大小为32x32像素或更大,则使用针对当前组块内按光栅扫描次序的各32×16像素组块的具有4位的附加报头数据字,其后跟随多达八个附加数据字,如下:

如果报头数据字中的hdr[k]处于0-7的范围内,则32×16像素组块编号k的所有子组块具有该段id。

另一方面,如果hdr[k]等于8,则32×16像素组块编号k在其内具有不同的段id。在这种情况下,如上所示针对小于32×32像素组块大小配置的另一附加数据字ext[k]被用于给出针对包含在所关注的32×16像素组块中的八个8×8像素组块的段映射。

当然,其它方案也是可以的。

下面,参照图3,对根据本发明实施方式的对视频图像数据帧的序列的编码进行描述。该编码处理基本上按与上述解码处理相对应的方式来操作。

图3示出了根据本发明实施方式的、用于对视频图像数据进行编码的装置1的示意图。

装置1包括分析单元2,其接收要编码的视频图像数据的比特流,该比特流包括视频图像数据的多个帧的序列。装置1还包括缓冲器4(在主存储器中),其针对各帧从分析单元2接收一组编码信息。该缓冲器4还被构造成将用于该帧的该组编码信息反馈至分析单元2。最后,装置1包括编码器6,其从针对当前帧和先前帧的缓冲器接收多组编码信息,并输出经编码的视频图像数据的经编码的比特流。

下面,参照图3,对根据本实施方式的用于经编码的视频图像数据的装置1的操作进行描述。

在操作中,分析单元2接收包括连续视频数据帧的视频图像数据流。分析单元2分析这些帧中的视频图像数据,将该帧划分成用于编码目的的组块,并且生成用于后续编码针对各帧的各组块的视频图像数据的一组编码信息。该分析例如包括针对该帧的组块执行运动估计。

由分析单元2针对帧的组块生成的该组编码信息包括运动矢量、组块大小以及编码指示符中的一个或更多个。

针对帧n的该组编码信息被写入缓冲器4,用于临时存储。这时,缓冲器4还包含针对帧n-1的该组编码信息。接着,将针对帧n-1和帧n的该组编码信息转发至编码器6,其使用该数据根据vp9标准对帧n进行编码。

经编码的比特流(即,针对一帧序列的经编码的视频图像数据流)从编码器6输出,例如,用于发送。

如图3所示,针对帧n的该组编码信息也从缓冲器4反馈至分析单元2,以供分析单元2在生成针对下一帧(帧n+1)的编码信息时使用。

如在上面讨论的解码情况中,该组编码信息作为单个数据流被反馈至分析单元2,采用数据字序列的形式,各数据字都包含用于该帧的组块的相应编码信息。针对该帧已经被划分成的各组块存在至少一个数据字,其中一些组块潜在地具有附加数据字(如上所述)。利用上面讨论的用于解码操作的格式来反馈编码信息。

针对指定帧得到的编码信息和针对帧反馈至分析单元的编码信息,针对该帧已经出于编码目的而划分成的各组块,将包括以下中的一个或更多个:组块大小指示、运动矢量值,以及用于该组块的编码指示符(段id)。通过分析单元针对组块得到这些值中的哪些值并且针对该组块提供这些值尤其依赖于该分析单元怎样决定编码所关注的组块。

根据本发明,针对从缓冲器4反馈至分析单元2以供在生成针对下一帧n+1的该组编码信息时使用的一帧的该组编码信息总是包括用于视频图像数据的该帧的一组编码指示符(“段映射”)。即使在编码该视频图像数据帧(并且因此编码默认的一组编码指示符)时,针对所关注的帧的组块禁用编码指示符,这也允许为视频图像数据的各帧提供一组编码指示符(“段映射”)。

针对帧反馈至分析单元2的该组编码指示符(段映射)取决于是否针对当前被编码的该帧生成(非默认)段映射,即,针对所关注的帧的组块是否禁用编码指示符,以及针对当前被编码的帧是否引用针对先前帧的段映射,例如,是否出于编码的目的而提供更新的段映射。

当针对当前帧生成(例如,经更新的)段映射时,该段映射被反馈至分析单元102。

当编码指示符被禁用并且针对当前帧生成默认段映射时,将针对该帧序列中的先前帧的段映射反馈至分析单元2。为此,分析单元2在提供给缓冲器104的编码信息中,随其针对当前帧而生成的该组编码信息一起包括针对先前帧的段映射(其已经从缓冲器4反馈至分析单元2,使得其可用于此目的)。

当针对当前被编码的帧引用针对先前帧的段映射时,将针对该帧序列中的先前帧的段映射反馈至分析单元2。为此,分析单元2在提供给缓冲器104的编码信息中,随其针对当前帧而生成的该组编码信息一起包括针对先前帧的段映射(其已经从缓冲器4反馈至分析单元2,使得其可用于此目的)。

从上述可以看出,本发明的方法和装置针对在解析/分析级可用的各帧反馈编码指示符(段id)。这有助于确保即使在编码指示符(段id)可能不呈现为用于帧的经编码的视频图像数据的一部分的情况下,用于帧的组块的一组编码指示符也可用于在需要时使用,而不管针对一帧的经编码的视频图像数据中存不存在编码指示符。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1