发明内容
技术问题
为了解决上述问题,本发明提出能够通过使用相同的信息识别方法来对以对应于各种标准(例如,MPEG-1,MPEG-2,MPEG-4和MPEG-4AVC)的各种类型(语法、语义)所编码的位流进行解码的位流编码/解码设备和方法。
本发明还提出能够执行正常解码操作而不管在编码位流时语法的变化的位流编码/解码设备和方法。
本发明还提出能够以统一的方式参照语义相似性管理各种标准的各种语法结构的位流编码/解码设备和方法。
本发明还提出能够容易地分析位流语法以便利用统一的编解码器和/或一般的编解码器来解码各种类型的位流的解码器,以及用于解码位流的语法分析方法。
本发明还提出能够通常采用语法分析方法来解码各种类型的位流的解码器以及用于解码位流的语法分析方法。
本发明还提出能够允许被用于解码位流的元件共享所分析的语法的元素信息(即通过语法元素分析所产生的信息)的解码器,以及用于解码位流的语法分析方法。
本发明还提出能够使用元素信息(即通过语法元素分析所产生的信息)来对随后的位流进行语法元素分析的解码器,以及用于解码位流的语法分析方法。
本发明提出用于统一的位流解码的概念和结构的国际标准化。从下文描述的优选实施例能够更清楚地理解本发明的其它目的。
技术方案
按照本发明的一个方面,提供一种解码器,包括:条件信息提取单元,该条件信息提取单元使用语法树信息和规则描述信息来产生识别信息,该语法树信息指示在分别对应于输入位流的位的语法元素之间的分级结构,该规则描述信息指示该语法元素之间的连通性,其中所述语法元素包括组元素和信息元素;和解码单元,该解码单元使用所述识别信息将位流中包含的数据解码为运动图像数据。
所述语法树信息可以指示在多个组元素和多个信息元素之间的分级相关性(dependence),并且所述识别信息可以包括对应于位流的位的语法信息和对应于语法信息的语义。在此,语法信息可以包括语法顺序、语法长度和语法数据类型中的至少一个。
由规则描述信息表示的连通性可以包括组元素和信息元素之间的连通性信息和分支信息。在此,该分支信息可以根据对预定条件的满足改变连接到当前信息元素的信息元素。
解码器可以独立地接收所述规则描述信息和所述位流,或者可以接收将规则描述信息和位流统一在一个数据中的全位流。
解码器还可以接收语法树信息和由已经产生该位流的编码器所采用的标准信息中的至少一个。
能够添加、删除或更新语法树信息中所包括的语法元素、语法元素之间的分级关系和对应于语法元素的语义中的至少一个。
按照本发明的另一方面,提供一种编码器,包括:按照预定标准将输入运动图像编码为位流的编码单元;和条件信息产生单元,该条件信息产生单元产生与对应于位流的位的语法元素相对应的规则信息并且将该规则信息发送给编码单元,其中所述语法元素包括多个组元素和多个信息元素,并且所述规则信息指示该组元素和信息元素之间的连通性。在此,编码单元可以将位流和规则信息独立地发送给解码器,或者产生统一了位流和规则信息的全位流并且将该全位流发送给解码器。
所述条件信息产生单元可以存储指示语法元素之间的分级相关性的语法树信息,并且可以使用与语法树信息中位的语法元素对应的信息来产生规则信息。
所述规则信息可以包括所述组元素和信息元素之间的连通性信息和分支信息。在此,分支信息可以根据对预定条件的满足改变与当前信息元素连接的信息元素。
所述全位流可以以规则信息、报头信息和压缩数据的顺序来构建,或者以报头规则信息、报头信息、数据规则信息和压缩数据的顺序来构建。
所述规则信息可以进一步包括由已经产生该全位流的编码器采用的标准信息。
能够添加、删除或更新语法树信息中所包含的语法元素、语法元素之间的分级关系和对应于语法元素的语义中的至少一个。
按照本发明的另一方面,提供一种解码器,包括:存储与位流语法元素对应的信息的元素信息存储单元;语法分析单元,使用语法规则信息指定输入位流的报头区域中所包含的位流语法元素的分析顺序,以语法元素的指定顺序使用语法元素信息来产生控制信号和上下文信息,并且在所述元素信息存储单元中存储该控制信号和上下文信息;和解码单元,使用该控制信号和上下文信息将位流中所包含的数据解码为运动图像数据。
所述语法分析单元可以产生所述控制信号和上下文信息,并且使用该控制信号和上下文信息来产生对应值,并且随后可以在元素信息存储单元中存储所产生的信息。
所述语法规则信息、语法元素信息、控制信号和上下文信息可以通过二进制代码来实施。
所述语法分析单元可以从元素信息存储单元中所存储的控制信号和上下文信息中读出合适的控制信号和上下文信息并且随后可以分析当前的语法元素。
按照本发明的另一方面,提供了一种解码器的位流解码方法,该方法包括:接收位流;使用语法树信息和规则描述信息来产生识别信息,该语法树信息指示该位流的语法元素之间的分级结构,该规则描述信息指示该语法元素之间的连通性,其中语法元素包括组元素和信息元素;和使用该识别信息将该位流中包含的数据解码为运动图像数据。
所述语法树信息可以指示多个组元素和多个信息元素之间的分级相关性,并且所述识别信息可以包括对应于位流的位的语法信息和对应于该语法信息的语义。在此,语法信息可以包括语法顺序、语法长度和语法数据类型中的至少一个。
由规则描述信息表示的连通性可以包括组元素和信息元素之间的连通性信息和分支信息。在此,分支信息可以根据对预定条件的满足改变与当前信息元素连接的信息元素。
所述解码器可以独立地接收规则描述信息和位流,或者可以接收将规则描述信息和位流统一在一个数据中的全位流。
按照本发明的另一个方面,提供了一种编码器中的位流产生方法,该方法包括以下步骤:按照预定标准将输入运动图像编码为位流;产生与对应于位流的位的语法元素相对应的规则信息,其中该语法元素包括多个组元素和多个信息元素,并且该规则信息指示该组元素和信息元素之间的连通性;以及将该位流和规则信息发送给解码器。
所述发送步骤可以包括以下步骤:产生将位流和规则信息统一的全位流;以及通过通信网络将该全位流发送给解码器。
全位流可以以规则信息、报头信息和压缩数据的顺序来构建,或者以报头规则信息、报头信息、数据规则信息和压缩数据的顺序来构建。
具体实施方式
通过下面的参照附图的说明,上述目的、特征和优点将变得更显而易见。
因为可以存在本发明的多种置换和实施例,将参照附图举例说明和描述某些实施例。然而,这并决不是将本发明限制于某些实施例,而是应该被理解为包括由本发明的精神和范围所覆盖的所有置换、等价物或替换物。在所有附图中,相似的元件被给予相似的参考数字。在对本发明的描述中,当描述某种技术被确定为回避本发明的要点时,将省略相关的详细描述。
在描述各种元件时可以使用诸如“第一”和“第二”的术语,但是不应将上述元件限于上述术语。上述术语只用于将一个元件与其它元件区分开。例如,第一元件可以被命名为第二元件,反之亦然,而不偏离本发明的权利要求的范围。术语“和/或”应该包括多个所列出的项的组合或该多个所列出的项中的任何项。
当将一个元件描述为“连接”或“接入”到另一个元件时,该元件应该被理解为直接连接或接入到另一个元件,但是也可能在中间有另一个元件。另一方面,如果将一个元件描述为“直接连接”或“直接接入”到另一个元件,则应被理解为在中间没有其它元件。
说明书中使用的术语仅意图用于描述某些实施例,决不应该限制本发明。除非清楚地使用,否则单数表述包括复数含意。在本说明书中,诸如“包括”或“构成”这样的表述意图指明特征、数量、步骤、操作、元件、部件或其组合,并且不应该被理解为排除一个或多个其它特征、数量、步骤、操作、元件、部件或其组合的任何存在或可能性。
除非另外定义,这里所使用的所有术语,包括技术术语和科学术语,具有与本发明所属领域的普通技术人员通常所理解的含意相同的含意。在普通字典中定义的任何术语应该被理解为具有与相关领域的上下文中相同的含意,并且除非另外明确定义,不应该被解释为具有理想主义的或过分形式主义的含意。
在下文中,将参照附图详细描述优选实施例。相同或对应的元件将不管图号如何而被给予相同的参考数字,并且将不重复相同或对应的元件的任何冗余描述。
已知的解码器和编码器
图1是示意性示出已知解码器的配置的图示,并且图2是示意性示出已知编码器的配置的图示。
如图1中所示,MPEG-4解码器100通常包括可变长度解码单元110、反扫描单元115、反DC/AC预测单元120、反量化单元125、反离散余弦变换(反DCT)单元130和运动图像重构(VOP(视频对象平面)重构)单元135。显然解码器100的配置根据所采用的标准而不同并且一些元件可以用其它元件来代替。
当输入位流经受语法分析操作并且提取出除了报头之外的图像数据时,可变长度解码单元110使用霍夫曼(Huffman)表来产生量化的DCT系数,并且反扫描单元115执行反扫描操作以产生具有运动图像的相同顺序的数据。也就是说,反扫描单元115以在编码时扫描值的顺序的相反顺序输出该值。在编码时扫描方向可以按照在执行量化操作之后频域中的值分布来定义。一般来说,使用Z字形扫描方法,但是可以根据编解码器使用各种类型的扫描方法。
语法分析操作可以由可变长度解码单元110或者由在可变长度解码单元110之前操作位流的任何元件以统一方式执行。在这种情况下,因为编码器和解码器使用相同的标准,所以只使用预定的参考来执行语法分析操作,以便符合于对应标准。
反DC/AC预测单元120使用频域中DCT系数的大小来确定预测参考块的方向性。
反量化单元125对反扫描的数据进行反量化。也就是说,反量化单元125使用在编码时所指定的量化参数来重构DC和AC系数。
反DCT单元130执行反DCT操作并且获取实际运动图像的像素值以产生视频对象平面(VOP)。运动图像重构单元135使用由反DCT单元130所产生的VOP来重构并输出运动图像信号。
如图2中所示,MPEG-4编码器200通常包括DCT单元210、量化单元215、DC/AC预测单元220、扫描单元230和可变长度编码单元235。
对本领域技术人员来说,显然编码器200的元件分别执行与解码器100的元件的相反操作。简而言之,编码器200通过DCT操作、量化操作等将运动图像信号(也就是说数字图像的像素值)变换为频率值,执行对频率值的编码,按照信息频率执行区分位长度的可变编码操作,并且随后输出压缩的位流。
按照本发明的优选实施例的解码器
图3是示意性示出按照本发明的优选实施例的解码器的配置的图示,并且图4是示出按照本发明的优选实施例的语法树的图示。
如图3中所示,按照本发明的优选实施例的解码器300除了已知的解码器100(在下文中称为“解码单元”)外进一步包括条件信息提取单元310。所示出的解码单元100的配置是一个实例。任何配置只要其能够将输入位流重构为运动图像就可以被采用,并且可以根据所采用的标准对该配置进行不同修改。
条件信息提取单元310可以如图3中所示依赖性地耦合到可变长度解码单元110,可以被插入到可变长度解码单元110中,或者可以被布置在可变长度解码单元110的前级。例如,条件信息提取单元310可以被实施为有限状态机(FSM)。本说明书中的可变长度解码单元110只表示解码器300中的用于分析位流的元件(例如,分析单元),但是本发明的范围并不由此而受限。
条件信息提取单元310使用从全位流(universal bitstream)中提取出的规则信息和先前存储的语法树来识别语法信息(也就是说语法顺序、语法长度、数据类型等等)和对应于语法信息的语义,并且将所识别的信息提供给可变长度解码单元110。所述全位流由编码器600产生(参见图6),以便包括由已知编码器200产生的位流和规则信息。当然,当按照本发明的优选实施例由编码器600产生规则信息作为独立的电子文件(或数据)并且将该规则信息提供给解码器300时,显然该位流可以以只具有一般报头信息和压缩数据的已知位流类型被编码。然而,在这个实施例中,假定编码器600使用规则信息和所述位流产生一个全位流,并且解码器300使用该全位流中所包含的规则信息对该位流中所包含的压缩数据进行解码。
规则信息被插入到或添加到已知位流的任何区域以形成全位流。优选地,将规则信息被放置在已知位流的报头信息之前。规则信息可以包括在编码器600中产生位流时所采用的标准信息(例如,MPEG-1,MPEG-2,MPEG-4和MPEG-4 AVC)、具有预定类型(例如文本类型或二进制代码类型)的规则描述信息(参见图5和表2)。
当条件信息提取单元310是可变长度解码单元110的下级时,如图3中所示,可变长度解码单元110从接收到的全位流中提取规则信息并且将提取出的该规则信息提供给条件信息提取单元310。随后,当从条件信息提取单元310接收到识别信息(即语法信息和语义)时,可变长度解码单元110执行分析操作以便与识别信息相对应。在可变长度解码单元110包括条件信息提取单元310的情况下确实如此。
当条件信息提取单元310位于可变长度解码单元110的前级时,条件信息提取单元310从全位流中提取规则信息,产生识别信息,并且随后将该识别信息和位流提供给可变长度解码单元110。
条件信息提取单元310可以以多种形式来实施,其中它与可变长度解码单元110并行设置等等。当可变长度解码单元110能够由条件信息提取单元310提供识别信息时,同样如此而没有任何限制。
下面将具体描述按照本发明的优选实施例的条件信息提取单元310。
条件信息提取单元310可以包括条件信息存储部分(未示出)和识别部分(未示出)。
条件信息存储部分存储具有预定结构的语法树。如图4中所示,该语法树包括指示层的组元素和构成相应组的信息元素。在MPEG-4的情况下,组元素的例子可以包括VS(可视会话)、VO(可视对象)、VOL(视频对象层)、VOP(视频对象平面)、MB(宏块)和B(块)。信息元素的例子可以包括“visual_object_sequence_start_code(可视_对象_序列_开始_代码)”和“user_data(用户_数据)”。在信息元素中记录诸如位数、实际内容(语法值)和与位流中的相关信息元素对应的语义的信息。组元素和信息元素可以通过对应的索引相互区分,并且索引在全位流中可以被用作标识符。一个组元素中所包含的信息元素可以通过分级索引相互区分。
语法树可以在考虑到标准中所使用的语法元素(也就是说,组元素和/或信息元素)的相似点和不同点的情况下来产生。例如,MPEG-2中的元素“sequence_header_code(序列_报头_代码)”是指示运动图像的起始部分的代码,类似于MPEG-4中的“visual_object_start_code(可视_对象_起始_代码)”。因此,可以将两者认为是一个信息元素,尽管两者是不同的标准。但是,在标准之间不同的代码可以单独地被管理。也就是说,被用于编码/解码全位流的语法树可以说是标准(例如,MPEG-1,MPEG-2,MPEG-4,和MPEG-4AVC)的语法元素的并集。
即使当标准中所使用的语法元素之间的语义彼此类似并且因而该语法元素被认为是一个信息元素但是具有不同特征的时候,它们也优选地单独地被管理。例如,位流的位数、语法值、语义等等可能根据标准而不同。
在表1中示出了语法树中所包含的元素的细节。这里,表1仅示出对于MPEG-4内仅编码/解码操作来说必要的元素,并且因此显然可以将对应于其它标准(例如,MPEG-1,MPEG-2和MPEG-4 AVC)的元素附加地包括在其中。
[表1]
表1:语法表
语法元素 |
|
MPEG-4 |
组元素 |
元素 |
索引 |
分级索引 |
位数 |
语法值 |
语义 |
VS |
|
0 |
|
|
|
|
VO |
|
1 |
|
|
|
|
VOL |
|
2 |
|
|
|
|
VOP |
|
3 |
|
|
|
|
MB |
|
4 |
|
|
|
|
B |
|
5 |
|
|
|
|
VS |
可视_对象_序列_起始_代码 |
6 |
0.1 |
32 |
|
VS起始代码 |
VS |
简档_和_级别_指示 |
7 |
0.2 |
8 |
|
|
VS |
用户_数据_起始_代码 |
8 |
0.3 |
32 |
|
|
VS |
用户_数据 |
9 |
0.4 |
8 |
|
|
VS |
VO |
1 |
0.5 |
|
|
VO(循环) |
VS |
可视_对象_序列_结束_代码 |
10 |
0.6 |
32 |
|
VS结束代码 |
VO |
可视_对象_起始_代码 |
11 |
0.5.1 |
32 |
|
VO起始代码 |
… |
… |
… |
… |
… |
… |
… |
VO |
VOL |
2 |
0.5.14 |
|
|
VOL(循环) |
VOL |
视频_对象_层_起始_代码 |
24 |
0.5.14.1 |
32 |
|
VOL起始代码 |
… |
… |
… |
… |
… |
… |
… |
VOL |
VOP |
3 |
0.5.14.27 |
|
|
VOP(循环) |
VOP |
Vop_起始_代码 |
50 |
0.5.14.27.1 |
32 |
|
VOP起始代码 |
… |
… |
… |
… |
… |
… |
… |
VOP |
MB |
4 |
0.5.14.27.11 |
|
|
MB(循环) |
MB |
Mcpbc |
70 |
0.5.1 |
(1 |
|
|
|
|
|
4.27.11.1 |
~9) |
|
|
… |
… |
… |
… |
… |
… |
… |
MB |
B |
5 |
0.5.14.27.11.5 |
|
|
B(循环) |
B |
dct_dc_大小_亮度 |
74 |
0.5.14.31.12.5.1 |
(2~11) |
|
|
… |
… |
… |
… |
… |
… |
… |
如表1中所示,语法树中所包含的元素可以与在全位流中作为标识符的索引相对应,并且该元素可以与组中作为标识符的分级索引、位流中的位数、语法值和语义相对应。
所述全位流可以由符合标准的编码器单独地产生。因此,编码器可以具有用于产生全位流中所包含的规则信息的语法树。在这种情况下,语法树可以包含所有可适用的标准的语法元素。当然,编码器600可以只具有所采用的标准的语法树并且与其它标准对应的语法元素可以被省略。
显然,由于标准的改变、增加等等,可以对语法树中所包含的语法元素、语法元素之间的分级关系和与该语法元素相对应的语义进行添加、修改或删除。
条件信息提取单元310的识别部分使用从全位流中提取出来的或者由分析单元(例如,可变长度解码单元110)提供的规则信息(规则描述信息)和存储部分中所存储的语法树来产生识别信息,并且随后将所产生的识别信息发送给分析单元。该识别信息包括语法信息(即语法顺序、语法长度、数据类型等等)和与语法信息相对应的语义。
一般来说,由符合标准(例如,MPEG-1,MPEG-2,MPEG-4,和MPEG-4AVC)的编码器600产生的位流只包括对于该标准来说必需的信息。因此,存在只有符合该标准的解码器才能够将该位流重构为运动图像的局限性。然而,按照本发明的优选实施例的编码器600从先前所存储的语法树中提取对于相应标准来说所必需的信息并且产生包含所产生的规则信息的全位流。按照本发明的优选实施例的解码器300能够不管编码器所采用的标准如何通过使用该全位流中所包含的规则信息来将位流重构为运动图像。
所述规则描述信息包括位流中的元素之间的连通性信息和由对应于语法元素的语法树的索引表示的分支信息。连通性信息是关于组元素和/或信息元素之间的连续连接的信息,并且分支信息是关于依赖于对某一条件的满足在信息元素之间的不连续连接(例如,信息元素的配置变化和组元素的变化)的信息。规则信息可以例如以文本类型或二进制代码类型被包含在全位流中。
图5是以图表示出组元素规则的图示。该规则的文本描述在表2中被示出。图5和表2中所标记的数字是表1中的索引。
如图5中所示,各个组元素中所包含的信息元素以预定关系排列。也就是说,与标准对应的规则信息可以通过在位流的分级结构的基础上组合分级组元素的规则信息来构建。例如,在MPEG-4的情况下,组元素可以以根、VS、VO、VOL、VOP、MB、和B的顺序排列。这里,“根”以相同方式被用于所有标准,并且指示起始部分。组元素VS能够以6->7->8->9->1->10的信息元素顺序来构建位流。连通性信息以(当前节点、后续节点)的形式来表示,其总是起始于S(起始)节点,经由连续信息节点,结束于E(结束)节点。参考图5中所示的组元素VS的规则,存在两个分支。信息元素“7”可以根据条件分叉到信息元素“8”和信息元素“1”。信息元素“1”可以分叉到信息元素“1”和信息元素“10”。这里,信息元素“1”指示如表1中所示的不同组元素(即VO),并且大部分组元素具有循环结构。例如,这是因为一个运动图像具有几张图像连续被表示的特征。
表2示出图5中以图表的形式示出的规则的文本描述。也就是说,连通性信息和分支信息以文本描述(TD)被记录。在全位流中,可以在某一位置上包含预定类型的信息(例如,文本形式的规则描述信息或二进制代码形式的规则描述信息)。
[表2]
表2:文本描述
组 |
规则信息 |
元素 |
|
根 |
根连通性(S,0),(0,E) |
VS |
VS连通性(S,6),(6,7),(7,8),(7,1),(8,9),(9,1),(1,1),(1,E)分支后续位(32)==用户_数据_起始_代码,情况1(8),情况2(1)分支VO循环,情况1(1),情况2(E) |
VO |
VO连通性(S,11),(11,12),(12,13),(13,14),(14,15),(15,16),(16,17),(17,18),(18,19),(19,20),(20,21),(21,22),(22,23),(23,2),(2,2),(2,E)分支VO循环,情况1(2),情况2(E) |
VOL |
VOL连通性 |
|
(S,24),(24,25),(25,26),(26,27),(27,28),(28,29),(29,30),(30,31),(31,32),(32,33),(33,34),(34,35),(35,36),(36,37),(37,38),(38,39),(39,40),(41,42),(42,43),(43,44),(44,45),(45,46),(46,47),(47,48),(48,49),(49,3),(3,3)(3,E)分支VO循环,情况1(3),情况2(E) |
VOP |
VOP连通性(S,50),(50,51),(51,52),(52,53),(53,54),(54,55),(55,56),(56,57),(57,58),(58,59),(59,4),(4,4),(4,60),(60,61),(61,62),(62,63),(63,64),(64,65),(65,66),(66,67),(67,68),(68,69),(69,4),(4,4),(4,E)分支MB循环,情况1(4),情况2(60)分支MB循环,情况1(4),情况2(E) |
MB |
MB连通性(S,70),(70,71),(71,72),(72,73),(73,5),(5,5),(5,E)分支B循环,情况1(5),情况2(E) |
|
B |
B |
连通性(S,74),(74,75),(75,76),(76,77),(77,78),(78,E) |
如上所述,连通性信息总是起始于S(起始)节点,经由连续信息元素,并且结束于E(结束)节点。如表2中所示,当组元素“VS”的规则以文本表示时,信息元素“7”和信息元素“1”的分支信息能够以对应于条件的输入部分和根据输入条件而分叉的目标信息元素来表示。在连通性信息的两个或更多当前节点所定位的信息元素(例如,在VS的情况下(7,8)和(7,1),(1,1)和(1,E)等)处判断输入条件。所述分支信息以两个或更多当前节点所位于的信息元素的顺序连续地被使用。例如,关于信息元素“7”的分支信息是“分支后续位(32)==用户_数据_起始_代码,情况1(8),情况2(1)”,当后续32位是“用户_数据_起始_代码(user_data_start_code)”时,该信息元素“7”分叉到信息元素(8),否则分叉到信息元素“1”。类似地,关于信息元素“1”的分支信息是“分支VO循环,情况1(1),情况2(E)”。分支信息中所包括的情况()的数目可以等于分支的数目。
所述识别部分可以使用全位流中所包含的(或独立于位流接收到的)规则信息(或规则描述信息)和先前存储的(或全位流中所包含的)语法树来产生识别信息(即语法信息(诸如语法顺序、语法长度和数据类型)和对应于该语法信息的语义)。所产生的识别信息被提供给分析单元,从而分析该位流。识别信息可以进一步包括在产生位流时所采用的标准信息(例如,MPEG-1,MPEG-2,MPEG-4,和MPEG-4AVC)。当按照本发明的优选实施例的解码器300单独地或并行地包括用于解码与标准对应的位流的元件时,可以使用识别信息中所包含的标准信息来确定位流的解码路径(即连续的元素的选择路径)。
按照本发明的优选实施例的编码器
图6是示意性示出按照本发明的优选实施例的编码器的配置的图示。
如图6中所示,按照本发明的优选实施例的编码器600除了已知编码器200(在下文中,称为“编码单元”)的元件之外进一步包括条件信息产生单元610。编码器600的所示出的配置只是一个例子。任何配置只要其能够将输入运动图像编码为位流就可以被采用,并且可以根据所采用的标准对该配置进行不同修改。
条件信息产生单元610可以如图6中所示依赖性地耦合到可变长度编码单元235,可以被插入到可变长度编码单元235中,或者可以被布置在可变长度编码单元235的后级。当然,显然可以将条件信息产生单元610另外设置在开始编码操作的最前级,以便产生关于位流的报头部分的规则信息。例如,可以将条件信息产生单元610实施为有限状态机(FSM)。本说明书中的可变长度编码单元235只指示在编码器600中用于最终执行编码操作以产生位流的元件(例如,编码单元),但是其并不限制本发明的范围。
条件信息产生单元610包括存储部分和产生部分,该存储部分存储语法树以便产生全位流的(或对应于全位流的)规则信息,产生部分在产生位流时使用该语法树产生与位对应的规则信息。规则信息可以包括语法信息(诸如语法顺序、语法长度和数据类型)和与语法信息对应的语义。规则信息可以进一步包括在编码器600中产生该位流所采用的标准信息。当事先指定规则信息与相应编码器600相对应时,显然规则信息不是独立地被产生的,而是可以使用预先指定的规则信息。
编码单元(例如,可变长度编码单元235)产生全位流,在该全位流中在其预定区域中包含有由条件信息产生单元610提供的规则信息(和标准信息)。该全位流可以以规则信息、报头信息和数据的顺序被构建,或者以报头规则信息、报头信息、数据规则信息和数据的顺序被构建。如上所述,也显然的是,按照本发明的优选实施例的编码器600可以通过以独立电子文件(或数据)的形式管理规则信息来以只具有一般报头信息和压缩数据的已知位流的形式来编码位流。编码单元可以允许将存储部分中所存储的语法树插入到全位流中。当语法树被插入到全位流中时,解码器300可以在不单独具有语法树的情况下将该全位流重构为运动图像。
本领域技术人员基于在解码器300中使用语法树来产生识别信息的方法可以容易地理解在编码器600中使用先前存储的语法树来产生与位流中的位相对应的规则信息的方法,因而将省略对该方法的说明。
如上所述,按照本发明的优选实施例的全位流编码/解码方法能够促进一种标准中或不同标准(或编解码器)之间的语法变化。也就是说,在按照特定标准所产生的位流中,可以改变语法顺序,以便插入新的语法或删除现有语法。
然而,按照现有技术,存在在改变语法时解码器不能正常地解码位流的问题。例如,当具有信息ABC的位流被改变为具有信息ACB时,解码器不能够识别该变化并且不能正常地解码该位流。当新插入F以构成位流信息ABFC时,或者将B删除以构成位流信息AC时,存在相同问题。
然而,在按照本发明的优选实施例的全位流编码/解码方法和设备中,因为将相应位流的规则信息包含在全位流中,条件信息提取单元310使用语法树产生识别信息并且使用该识别信息来分析该位流,因此即使在上述情况下也能够执行平滑的解码操作。
按照本发明的另一个实施例的解码器和语法分析方法
图7是示意性示出按照本发明的另一优选实施例的解码器的配置的图示;图8是示意性示出按照本发明的另一优选实施例的语法分析单元的配置的图示;以及图9是示出按照本发明的另一优选实施例的语法分析过程的图示。
如图7中所示,按照本发明的解码器700除了已知的解码器100(在下文中称为“解码单元”)的配置外进一步包括语法分析单元710。解码器700可以进一步包括元素信息存储单元720。
解码器700的所示出的配置只是一个例子。任何配置只要其能够将输入位流重构为运动图像就可以被采用,并且可以根据所采用的标准对该配置进行不同修改。已知的解码单元100可以进一步包括用于分析语法的元件,但是在两者之间在处理语法的过程方面存在许多差异。可以从以下说明容易地理解该差异。
语法分析单元710可以如图7中所示被设置在可变长度解码单元110前面。在这种情况下,当按照位流的报头区域中所包含的信息读取特定长度范围的数据、执行霍夫曼解码操作并且产生语义数据的时候,可变长度解码单元110可以使用由该语法分析单元710分析/产生的元素信息。
当然,语法分析单元710可以被插入到可变长度解码单元110中或者可以与可变长度解码单元110并行耦合。应该给与可变长度解码单元110并行耦合的语法分析单元710提供由可变长度解码单元110接收的位流(或报头区域的信息),以便分析/产生元素信息并且将该元素信息存储在元素信息存储单元720中。
语法分析单元710可以通过有限状态机(FSM)来实施。
语法分析单元710通过使用从全位流中提取出的语法规则信息、先前存储的语法元素表和控制信号/上下文信息表来顺序地分析与语法元素对应的元素信息(例如,语法元素的顺序、语法元素的长度、语法元素的语法类型、语法元素之间的关系、和使用该语法元素的其它元素的范围),并且随后将所分析的元素信息存储在元素信息存储单元720中。也就是说,元素信息包括稍后将描述的SET输出值和CSCIT输出值。
可变长度解码单元110可以使用元素信息存储单元720中所存储的元素信息来产生语义数据。
在另一种方法中,语法分析单元710可以将所分析的元素信息发送给可变长度解码单元110,按照需要对相应的元素信息进行熵解码,并且将解码后的元素信息存储在元素信息存储单元720中。
以此方式,元素信息存储单元720中存储元素信息的主体可以是语法分析单元710或可变长度解码单元110,并且可以根据设计或实施的便利而被指定。存储元素信息的主体可以是语法分析单元710和可变长度解码单元110,并且各单元中所存储的元素信息的类型可以彼此不同地被指定。对于下面的说明来说就是如此。
在本说明书中,全位流意味着除了由已知的编码器200产生的一般位流外在某一区域中进一步包括语法规则表的位流。语法规则信息被插入到或添加到一般位流的区域中以构成全位流。优选地,规则信息被设置在一般位流中的报头信息之前的级处。
显然,除了语法规则表之外,全位流可以进一步包括语法元素表和控制信号/上下文信息表中的至少一个。然而,当全位流不包括语法元素表和控制信号/上下文信息表中的至少一个时,解码器700或语法分析单元710应该包括它们。
为了方便起见,语法规则表、语法元素表和控制信号/上下文信息表以表格的形式来示出和描述,但是在实践中该信息可以顺序地被排列和显示。
例如,语法规则表、语法元素表和控制信号/上下文信息表可以以二进制代码的形式来进行信息示出和/或描述。因此,可以简化信息的表示并且简化语法元素表的过程(参见图4)的表示,从而简化对它们的实现和编译。可以使用语法分析功能来分析各种标准的位流。
按照本发明的优选实施例的解码器700可以从编码器接收全位流并且解码该全位流中所包含的运动图像数据,或者可以只从编码器接收位流。在这种情况下,解码器700应该以附加数据或电子文件的形式从编码器接收语法规则信息(和语法元素表和控制信号/上下文信息表中的至少一个)。
在本发明的该实施例中,假定编码器1000使用语法规则信息和位流来产生一个全位流,并且解码器700使用该全位流中所包含的规则信息来解码该位流中所包含的压缩数据。
当语法分析单元710如图7中所示被布置在可变长度解码单元110的前级时,可变长度解码单元110可以使用元素信息存储单元720中所存储的元素信息根据输入位流产生语义数据。可变长度解码单元110可以按照需要对从语法分析单元710接收到的元素信息进行熵解码(entropically decode),并且可以如上所述将该元素信息存储在元素信息存储单元720中。
在图8中示意性示出了语法分析单元710的配置。
如图8中所示,语法分析单元710包括分析处理器。该分析处理器810使用语法元素表820、CSCI(控制信号/上下文信息)表830和语法规则表840来分析位流的报头区域中所包含的语法元素,提取或产生元素信息,并且随后将该元素信息存储在元素信息存储单元720中。如上所述,该分析处理器810可以将所提取或所产生的元素信息(例如,所分析的值)发送给可变长度解码单元110,并且可变长度解码单元110可以将所接收到的元素信息转化为语义数据并且将该语义数据存储在元素信息存储单元720中。
语法元素表820和CSCI表830可以被布置在语法分析单元710中。例如,当语法分析单元710由程序代码组合来实施时,对应于语法元素表820和CSCI表830的信息可以一起被包括在内。
在语法元素表820和CSCI表830被存储在附加的存储单元中的状态下,它们可以由分析处理器810在语法分析时进行参考。
类似地,全位流中所包含的或作为附加数据接收的语法规则表840可以被插入到语法分析单元810中以用于语法分析单元710的操作,或者可以被存储在附加的存储单元中以供参考。
元素信息存储单元720中所存储的元素信息可以由操作用于分析后续的位流语法和/或解码该位流的元件参考。
元素信息存储单元720中所存储的元素信息可以包括使用语法元素表820、CSCI表830和语法规则表840所分析的元素的名称和实际值。
在分析语法元素的时候由语法元素表820、CSCI表830和语法规则表840提供的元素信息可以包括语法元素的顺序、语法元素的长度、语法元素的语法类型、语法元素之间的关系和使用该语法元素的其它元素的范围。
在下文中,将具体描述分析处理器810的语法分析方法。为了方便解释,将语法元素表820称为“SET”,将CSCI表830称为“CSCIT”,并且将语法规则表840称为“RT”。
分析处理器810从接收到的全位流中提取出RT 840,或者作为附加数据接收RT 840。
RT 840可以如表3中所示被构建。
[表3]
表3:RT的配置
索引号 |
nput |
分支号 |
分支1 |
分支2 |
RE |
|
- |
|
|
R0 |
|
1 |
TRUE→(S1,R1) |
|
R1 |
1 |
2 |
C1==FALSE→(NULL,RE) |
C1==TRUE→(S2,R2) |
R2 |
|
1 |
TRUE→(S3,R3) |
|
R3 |
1 |
2 |
C1==FALSE→(S5,R4) |
C1==TRUE→(S4,R5) |
R4 |
1 |
2 |
C1==FALSE→(NULL,RE) |
C1==TRUE→(S6,R6) |
R5 |
|
1 |
TRUE→(S5,R4) |
|
R6 |
4 |
2 |
C4==FALSE→(S9,R9) |
C4==TRUE→(S7,R7) |
R7 |
|
1 |
TRUE→(S8,R8) |
|
R8 |
|
1 |
TRUE→(S9,R9) |
|
R9 |
1 |
2 |
C1==FALSE→(NULL,RE) |
C1==TRUE→(S10,R10) |
1)RE:语法解码错误
分析处理器810可以通过使用RT来识别输入位流中的语法元素之间的连通性信息。
如表3中所示,RT 840包括用于标识语法元素之间的连通性的字段“索引号”、指示用于控制语法元素之间的连通性的输入值(也就是说先前存储在元素信息存储单元720中的任何元素信息(控制信号和上下文信息))的字段“输入”、指示可以被连接到当前语法元素的元素的编号的字段“分支号”、和指示与分支条件对应的分支路径的字段“分支#”。
只有当可连接的语法元素的数量是复数时,字段“输入”才存在,并且可以使用值来控制分支。例如,因为“索引号”R2没有分支,所以其输入值不存在,但是因为“索引号”R3有分支,所以其输入值存在。
字段“分支#”具有用于使相应路径分叉的分支条件(例如,C4==FALSE(假))。当不存在分支条件时,与“索引号”R5类似,字段“分支#”总是被识别为“TRUE(真)”。在分支条件的后面,描述了语法元素指定信息(例如,SET 820中的索引号“S9”)和RT 840中的下一连通性信息(例如,RT 840中诸如“R9”的索引号)。
以这种方式,按照本发明的优选实施例的解码器700具有如下优点:即使当建立了新的标准或改变了(例如,更正、添加或删除)现有标准的语法结构的时候,也可以通过只改变(例如,更正、添加或删除)RT 840中的相应的信息来分析输入位流的语法元素。
分析处理器810使用参考SET 820的语法元素指定信息来提取或产生SET输出值,并且将所提取或所产生的元素信息存储在元素信息存储单元720中。如上所述,显然,分析处理器810能够将所提取或所产生的元素信息(例如所分析的值)发送给可变长度解码单元110,并且可变长度解码单元110能够将接收到的元素信息转化为语义数据并且将该语义数据存储在元素信息存储单元720中。该SET输出值可以是控制信号和上下文信息。
SET 820可以如表4中所示被配置。
[表4]
表4:SET的配置
索引号 |
语法元素的名称 |
输入 |
输出 |
过程 |
S1 |
Vo_序列_起始_代码 |
32位字符串 |
1 |
Read ibsif ibs==0x000001B1,C1= |
|
|
|
|
TRUEelse C1=FALSE |
S2 |
简档_级别_指示 |
8位整数 |
2 |
Read ibsC2=ibs |
S3 |
用户_数据_起始_代码 |
32位字符串 |
1 |
Read ibsIf ibs==0x000001B2,C1=TRUEElse C1=FALSE |
S4 |
用户_数据 |
8位字符串 |
3 |
Char a1,a2;While(TRUE)Read ibs;If(ibs==0x00)A1=ibs;Read ibs;if(ibs==0x00)A2=ibs;Read ibs; |
|
|
|
|
If(ibs==0x00||ibs==0x01)Unread ibs;Unread a2;Unread a1;Break;Elseconcatenate(C3,A1);concatenate(C3,A2);concatenate(C3,ibs);Elseconcatenate(C3,A1);concatenate(C3,ibs);Else concatenate(C3,ibs); |
S5 |
Vo_起始_代码 |
32位字符串 |
1 |
Read ibsIf ibs==0x000001B5,C1=TRUEElse C1=FALSE |
S6 |
是_VO_标识符 |
1位标志 |
4 |
Read ibsC4=ibs |
S7 |
VO_verid |
|
5 |
Read ibsC5=ibs |
S8 |
VO_优先权 |
3位 |
6 |
Read ibsC6=ibs |
S9 |
VO_类型 |
4位 |
1 |
Read ibsIf(ibs==′001′C1=TRUEElse C1=FALSE |
S10 |
视频_信号_类型 |
1位 |
7 |
Read ibsC7=ibs |
… |
… |
… |
|
… |
1)ibs:输入位串
2)vbs:可变位串
3)在描述SET的过程中,可能存在重复的操作(诸如S6,S7,S8,S10)。
如表4中所示,SET 820包括每个语法元素的索引、名称、输入数据、输出数据和过程。
索引是用作RT 840中的语法元素指定信息的标识符,并且输入数据指示作为位流的数据的相应数据的长度。输出数据用作控制信号和上下文信息,并且通过每个语法元素索引所指定的过程来产生或提取。顺带提及,一般为了执行指定的过程,应该通过可变长度解码单元110将输出数据转化为语义数据。这是在可变长度表中存在相应数据的情况。然而,当可变长度表不是必需的时候,在指定的过程中处理初始语法值。在表4中部分地重复标记了用于标识对应于语法元素的输出(CSCI)数据的符号(例如,C1),但是这是为了该符号与CSCIT 830的索引一致。如果只能够产生对应的CSCIT输出值,可以不重复指定与所有语法元素对应的符号(例如,C1)。
例如,索引是“S1”的语法元素的名称是“Vo_sequence_start_code(Vo_序列_起始_代码)”,输入数据是位流中的32位字符串,并且产生或提取与过程对应的SET输出值。
分析处理器810可以在使用SET 820产生或提取SET输出值的时候对某个语法元素(例如,索引S2,S6,S7,S8,S10等)执行重复操作。
关于由分析处理器810使用SET 820产生或提取并且存储在元素信息存储单元720中的SET输出值的详细信息(也就是说CSCIT输出值)使用CSCIT 830来产生,并且所产生的CSCIT输出值被存储在元素信息存储单元720中。这里,CSCIT输出值可以包括CSCIT的语义和对应的实际值。
CSCIT 830可以如表5中所示被配置。
[表5]
表5:CSCIT的配置
C1 |
解码_OK |
布尔1位标志 |
语法FU |
C2 |
简档_级别_指示 |
8位整数 |
所有 |
C3 |
用户_数据 |
8位整数* |
所有 |
C4 |
是_VO_标识符 |
1位标志 |
语法FU |
C5 |
VO_VER_ID |
4位标志 |
所有 |
C6 |
VO_优先权 |
3位 |
所有 |
C7 |
视频_信号_类型 |
1位 |
语法FU |
… |
… |
… |
… |
1)*:序列或阵列
2)全局/局部:如果CSCI只在语法分析FU(功能单元)中被使用,则它是局部的。
如表5中所示,CSCIT 830包括由SET输出值的标识符(例如C1)标识的索引、该SET输出值的名称、该SET输出值的特征、该SET输出值的使用范围(也就是说,整个解码过程或整个解码过程的一部分(例如,语法分析过程))。
在下文中,将参考图9简要地描述语法分析单元710在位流的报头区域中进行的语法分析过程。图9所示的空圆形指示“空”值(参见RT 840)。
首先,当输入位流的时候,语法分析单元710使用RT 840(参见表3)从索引号“R0”开始它的操作。
因为语法分析单元710在对RT 840中的索引号“R0”的处理中不需要输入值,所以语法分析单元710分析条件“真(True)”被满足并且随后处理SET 820的索引号“S1”(参见表4)。也就是说,如表4中所示,RT 840的索引号“R0”的分支条件被指定为“TRUE->(S1,R1)”。当条件“真”被满足时,语法分析单元710处理SET 820的索引号“S1”(参见表4)并且随后处理RT 840的索引号“R1”。
为了处理SET 820中的索引号“S1”,语法分析单元710从位流的报头区域中读取由32位字符串形成的语法元素“Vo_sequence_start_data”。从位流的报头区域中读出语法元素的方法对于本领域技术人员来说是显而易见的,所以将省略对其的描述。随后,语法分析单元710根据所述过程(即,如果ibs==0x000001B1)确定读出值是否为“真”或“假(False)”,并且将所确定的值作为SET输出值存储在元素信息存储单元720中。如上所述,元素信息在元素信息存储单元720中的存储可以由可变长度解码单元110执行。
语法分析单元710通过使用CSCIT 830来读出与所确定的SET输出值(即C1)对应的CSCIT输出值(即CSCI的语义和对应的值),并且将读出值存储在元素信息存储单元720中。
语法分析单元710在处理了SET 820中的索引号“S1”之后处理RT 840中的索引号“R1”。
因为语法分析单元710为了处理RT 840中的索引号“R1”而需要输入值“C1”,所以语法分析单元710通过处理索引号“R0”来读出元素信息存储单元720中所存储的控制信号和上下文信息,并且使用读出信息作为输入值。
这样,按照本发明的优选实施例的语法分析单元710在语法元素分析的时候能够使用由先前的语法元素分析所提取或产生的信息。类似地,在解码位流的时候,元素信息存储单元720中所存储的元素信息(即作为SET输出值和CSCIT输出值输出的信息)可以由其它元件使用。
当从元素信息存储单元720读出的用于处理RT 840中的索引号“R1”的CSCIT信息为“真”的时候,语法分析单元710处理SET 820中的索引号“S2”(并且根据CSCIT 830产生与SET 820中的索引号“S2”的处理结果对应的CSCIT输出值),并且随后处理RT 840中的索引号“R2”。然而,当读出CSCIT信息为“假”的时候,语法分析单元710处理“NULL(空)”以确定语法解码错误(索引号“RE”)。
通过重复上述过程,可以完成图9中所示的对位流的报头区域的语法分析过程。在该语法分析过程中所提取或所产生的元素信息被存储在元素信息存储单元720中,并且能够被用于后续语法元素的分析或解码。
在表6中示出了上述语法分析过程。
[表6]
表6:语法分析流程
控制流程 |
分支控制 |
SET |
CSCIT |
描述 |
1 |
R0 |
|
|
|
2 |
|
S1 |
C1 |
Vo_序列_起始_代码 |
3 |
R1 |
|
C1 |
|
4 |
|
S2 |
C2 |
简档_级别_指示 |
5 |
R2 |
|
|
|
6 |
|
S3 |
C1 |
用户_数据_起始_代码 |
7 |
R3 |
|
C1 |
|
8 |
|
S4 |
C3 |
用户_数据 |
9 |
R5 |
|
|
|
10 |
|
S5 |
|
Vo_起始_代码 |
11 |
R4 |
|
|
|
12 |
|
S6 |
|
是_VO_标识符 |
13 |
R6 |
|
|
|
14 |
|
S9 |
|
VO_类型 |
… |
… |
… |
… |
… |
表6中所示的流程以Z字形顺序从左上端被分析。也就是说,分析处理器810以R0、S1和C1的顺序执行语法元素分析,其中C1被用作R1的输入值,并且随后以S2和C2的顺序执行语法元素分析。
按照本发明的另一个示范实施例的编码器
图10是示意性示出按照本发明的另一个示范实施例的编码器的配置的图示。
如图10中所示,按照本发明的该示范实施例的编码器1000除了已知的编码器200(在下文中称为“编码单元”)的元件外进一步包括RT信息产生单元1010。编码器1000的所示出的配置只是一个例子。任何配置只要其能够将输入运动图像编码为位流就可以被采用,并且可以根据所采用的标准对该配置进行不同改变。
RT信息产生单元1010可以如图10中所示依赖性地耦合到可变长度编码单元235,可以被插入到可变长度编码单元235中,或者可以被布置在可变长度编码单元235的后级。这是因为在编码过程中RT 840通常是连续地且相继地产生的。当然,RT信息产生单元1010的位置可以根据设计和实现方法进行不同修改。例如,RT信息产生单元1010可以被实施为有限状态机(FSM)。
参照上面对解码器700的描述,允许RT信息产生单元1010产生RT信息的方法能够容易地被理解,所以将省略对该方法的描述。RT信息产生单元1010产生RT信息所需的元素对本领域技术人员来说将是显而易见的,所以也将省略对其的描述。
RT信息产生单元1010能够产生全位流,或者请求可变长度编码单元235产生该全位流,其中所产生的RT信息被添加到该全位流中。RT信息产生单元1010所产生的RT信息可以以独立数据或文件的形式从RT信息产生单元1010或可变长度编码单元235被发送到解码器700。如上所述,除了将RT 840提供给解码器700之外,RT信息产生单元1010可以提供SET 820和CSCIT 830中的至少一个。
本说明书中的可变长度编码单元235只指示解码器300中的用于最后执行编码操作以产生位流的元件(例如,编码单元),但是本发明的范围并不由此受限制。
如上所述,按照本发明的解码器和语法分析方法能够促进对一个标准(或编解码器)或不同标准(或编解码器)之间的语法元素的分析。也就是说,可以改变按照特定标准所产生的位流中的语法元素的顺序,以便在其中插入新的语法元素或删除现有的语法元素。
按照已知技术,存在在改变语法元素的时候解码器不能正常地解码位流的问题。例如,当具有信息ABC的位流被改变为具有信息ACB时,解码器不能够识别该变化并且不能正常地解码该位流。当新插入F以构成具有信息ABFC的位流的时候,或者当将B删除以构成具有信息AC的位流的时候,存在相同问题。
然而,在按照本发明的用于解码位流的解码器和语法分析方法中,因为在全位流中包含RT 840或者作为独立数据提供RT 840,所以解码器能够执行平滑的解码操作。
尽管已经参考MPEG-4描述了按照本发明的用于解码位流的解码器和语法分析方法,但是本发明可以适用于MPEG-1、MPEG-2、MPEG-4AVC和其它运动图像编码/解码标准而没有任何限制。
本发明的附图和详细描述意图用于例示本发明,而不是意图限制所附权利要求中所述的本发明的范围。本领域技术人员能够理解可以在其中进行各种修改。因此,本发明的技术保护范围将以所附权利要求中所述的技术精神和范围来确定。