发明内容
因而,本发明设计用于解决前述问题,提供了一种视频数据编码/解码装置和方法,通过使用相同的信息识别方法其可以对由依照每种标准(例如MPEG-1、MPEG-2、MPEG-4、MPEG-4 AVC)的各种类型(语法和语义)编码的比特流进行解码。
同样,本发明提供一种视频数据编码/解码装置和方法,其能够通过使用相同的信息分析方法解析由各种方法压缩的比特流并且通过使用所解析的数据有机地控制用于解码的每个功能单元。
同样,本发明提供一种视频数据编码/解码装置和方法,其可以将一种语法分析方法共同用于解码各种类型的比特流。
同样,本发明提供一种视频数据编码/解码装置和方法,其可以在语法单元改变或添加时容易地解码比特流。
此外,本发明提供一种视频数据编码/解码装置和方法,其可以共享用于所分析语法元素信息(即语法解析结果)的比特流解码的单元。
此外,本发明提供一种视频数据编码/解码装置和方法,其可以将所分析语法的元素信息用于分析后续比特流的语法单元。
此外,本发明提供一种视频数据编码/解码装置和方法,其能够国际标准化用于比特流解码的编解码器集成的概念和结构。
通过下面的描述,本发明解决的其他问题将更加显而易见。
为了解决上述问题,本发明一方面特征在于一种可以通用于各种标准的编码器/解码器和/或集成编解码装置。
依照本发明的一个实施例,提供了一种解码装置,其包括:语法解析单元,将通过使用描述信息对比特流的语法解析产生的多个元素信息存储在元素信息存储单元中,所述描述信息和所述比特流从编码器提供;连接控制单元,通过使用所述描述信息相继选择多个功能单元,并且选择输入预定用于存储在所述元素信息存储单元中的多个元素信息的所选择功能单元的元素信息;以及处理单元,至少包括用于通过使用由所述连接控制单元输入的所述元素信息执行预定处理并且输出相应结果数据的功能单元。
所述解码装置可以进一步包括通用比特流分析单元,如果所述比特流和所述描述信息作为通用比特流输入,则将所述通用比特流分离为所述比特流和所述描述信息、将所述比特流输入到所述语法解析单元、以及将所述描述信息存储在描述信息存储单元中。
所述描述信息可以作为独立数据或比特流输入。
先激活的功能单元的结果数据可以输入到由所述连接控制单元相继选择的多个功能单元中后续激活的功能单元。
所述语法解析单元可以将所述比特流转换为连续的预定尺寸宏块并且将所述宏块输入到所述处理单元。
所述描述信息可以由二进制码组成。
所述描述信息可以包括:语法单元表(SET),指产生关于比特流语法的信息的处理以及对应于所述比特流语法的元素信息;语法规则表(S-RT),指所述比特流语法之间的连接规则;控制信号和文本信息表(CSCIT),指所述元素信息的细节;功能单元列表(FL),指所述功能单元的列表;功能单元规则表(F-RT),相继选择所述功能单元;以及功能单元CSCIT(FU-CSCIT),指待输入到所述所选择功能单元中的元素信息。
在这种情况下,所述语法解析单元可以通过使用所述S-RT选择待处理的比特流语法,通过使用写入所述SET中的处理产生所述元素信息,并且将所产生的元素信息存储在所述元素信息存储单元中以对应所述CSCIT。
同样,所述连接控制单元通过使用所述F-RT选择任意一个功能单元,通过使用所述FL识别所述功能单元的性质,通过使用FU-CSCIT和所述CSCIT从所述元素信息存储单元提取待输入到所选择功能单元的元素信息,以及将所提取的元素信息输入到所选择的功能单元中。
依照本发明的另一个实施例,一种编码装置包括:编码单元,通过相继使用多个功能单元依照预定编码方法将所输入的视频数据转换为比特流;描述信息产生单元,依照所述比特流的语法信息和所述功能单元的连接关系产生描述信息,其中所述比特流和所述描述信息一起提供给解码器。
所述比特流和所述描述信息可以产生作为通用比特流并且提供给所述解码器。
所述描述信息可以作为独立的数据或比特流提供给所述解码器。
所述描述信息可以包括:语法单元表(SET),指产生关于比特流语法的信息的处理以及对应于所述比特流语法的元素信息;语法规则表(S-RT),指所述比特流语法之间的连接规则;控制信号和文本信息表(CSCIT),指所述元素信息的细节;功能单元列表(FL),指所述功能单元的列表;功能单元规则表(F-RT),相继选择所述功能单元;以及功能单元CSCIT(FU-CSCIT),指待输入到所述所选择功能单元中的元素信息。
为了解决上述问题,本发明另一个方面特征在于可以通用于各种标准的一种解码方法/编码方法和/或记录用于执行该方法的程序的一种记录介质。
依照本发明的一个实施例,存在一种解码方法,包括:从编码装置接收比特流和描述信息;将使用所述描述信息通过所述比特流的语法解析产生的多个元素信息存储在元素信息存储单元中;将所述比特流转换为连续的预定尺寸宏块并且输出所述宏块;通过使用所述描述信息选择功能单元,并且选择性地输入预定用于存储在所述元素信息存储单元中多个元素信息的所选功能单元的元素信息;以及所选择功能单元通过使用所输入的元素信息执行预定处理并且输出相应的结果数据,其中重复所述选择所述功能单元并且选择性地输入预定用于所选择功能单元的元素信息的步骤以及所述所选择功能单元执行所述处理的步骤,直至所述结果数据为对应于所述宏块的视频数据。
所述描述信息可以包括:语法单元表(SET),指产生关于比特流语法的信息的处理以及对应于所述比特流语法的元素信息;语法规则表(S-RT),指所述比特流语法之间的连接规则;控制信号和文本信息表(CSCIT),指所述元素信息的细节;功能单元列表(FL),指所述功能单元的列表;功能单元规则表(F-RT),相继选择所述功能单元;以及功能单元CSCIT(FU-CSCIT),指待输入到所述所选择功能单元中的元素信息。
在这种情况下,所述将多个元素信息存储在所述元素信息存储单元中的步骤可以包括:通过使用所述S-RT选择待处理的比特流语法;通过使用写入所述SET的处理产生所述元素信息;以及将所产生的元素信息存储在所述元素信息存储单元中以对应于所述CSCIT。在此,可以重复上述三个步骤直到产生并且存储对应于全部比特流语法的元素信息。
所述选择所述功能单元以及选择性地输入元素信息的步骤可以包括:通过使用所述F-RT选择任意一个功能单元;通过使用FU-CSCIT和所述CSCIT从所述元素信息存储单元中提取待输入到所选择功能单元中的元素信息,以对应于通过使用所述FL识别的功能单元的性质;以及将所提取的元素信息输入到所选择的功能单元。
如果所述比特流和所述描述信息作为通用比特流输入,则可以首先执行所述将通用比特流分离为所述比特流和所述描述信息、将所述比特流输入到所述语法解析单元、以及将所述描述信息存储在描述信息存储单元中的步骤。
所述描述信息作为独立数据或比特流输入。
先激活的功能单元的结果数据可以输入到相继选择的多个功能单元中后续功能化的单元。
所述描述信息可以由二进制码组成。
具体实施方式
通过下面的描述并且参考附图,上面所述的目标、特征和优点将更加显而易见。
由于本发明存在各种各样的实施例和置换,将参照附图阐明和描述特定的实施例。然而,这决不是为了将本发明限定为特定的实施例,而应当解释为包含本发明实质和范围所覆盖的所有置换、等效和替代。在所有附图中,相似的单元使用相似的附图标记。在本发明的所有描述中,在特定技术的描述确定为与本发明的要点无关时,将省略这些相关的详细描述。
在描述各种单元中可能使用诸如“第一”“第二”的术语,但上述单元不应当限制为上述术语。上述的术语仅用于将单元彼此区分。例如,在不脱离本发明权利要求范围的情况下,第一单元可以命名为第二单元,反之亦然。术语“和/或”应当包含多个所列举项的组合或者多个所列举项的任意一个。
当描述一个单元与另一个单元“连接”或者“接入”时,应当解释为直接连接或者接入到另一个单元,但同样可能在两者之间存在另一个单元。另一个方面,如果一个单元描述为“直接连接”或者“直接接入”另一个单元,应当解释为两者之间不存在其他单元。
描述中使用的术语仅是为了描述特定的实施例,而决不是为了限制本发明。除非明确说明,单数表述包含复数含义。在当前的描述中,诸如“包括”或者“由......组成”的表述意图指明特征、数字、步骤、操作、单元、部件或者其组合,而不应当解释为排除一个或多个其他特征、数字、步骤、操作、单元、部件或其组合的存在或者可能性。
除非给出定义,这里所用的所有术语、包括技术术语和科学术语具有如本发明所属领域技术人员通常理解的相同含义。在通用词典中有定义的任意术语,应当解释为在相关领域的环境下具有相同的含义,除非明确定义不应当解释为具有理想的或者过分形式化的含义。
在下文中,将参考附图详细描述优选的实施例。相同的或者相应的单元将给出相同的附图标记,而无论附图编号,并且相同或相应单元的任何冗长描述将不再重复。
图1是图示典型解码器结构的简化方框图,而图2是图示典型编码器结构的简化方框图。
如图1中所示,MPEG-4解码器100通常包含可变长度解码单元110、反扫描单元115、反DC/AC预测单元120、逆量化单元125、反离散余弦变换单元130和VOP重构单元135。
显然,解码器100可以具有根据应用标准而改变的结构,并且某些单元可以用其他元件替代。
如果所传输的比特流是经过语法解析的并且提取了相应的头部信息和相应的图像数据,则可变长度解码单元110通过使用预定的Huffman表构成量化的离散余弦变换(DCT)系数,反扫描单元115通过执行反扫描产生具有与相关视频数据相同的顺序的数据。换句话说,反扫描单元115通过各种方法以反向于扫描的顺序输出数值。在编码中,执行量化之后,扫描方向可以根据频率范围的分布进行定义。通常,可以使用锯齿状Z字形(zig-zag)扫描方法。然而,依照编解码器可以使用各种扫描方法。
语法解析可以以集成方式在可变长度解码单元110中执行,或者在可变长度解码器110前面的用于处理比特流的单元中执行。这样的话,由于相同的标准应用于对应的编码器和解码器,仅通过预定的设置来处理语法解析,以与相关的标准一致。
通过在频率范围内使用DCT系数的尺寸,反DC/AC预测单元120确定用于预测的参考块方向。
逆量化单元125执行经过反扫描的数据的逆量化。换句话说,通过使用在编码处理中设计的量化参数(OP),逆量化单元125返回DC和AC系数。
通过执行反离散余弦变换,反离散余弦变换单元130计算实际视频数据像素值以产生视频对象平面(VOP)。
通过使用由反离散余弦变换单元130产生的VOP,VOP重构单元135解码视频信号并且输出经过解码的信号。
如图2所示,MPEG-4编码器200通常包含离散余弦变换单元210、量化单元215、DC/AC预测单元220、扫描单元230和可变长度编码单元235。
编码器200中包含的每个单元执行编码器100中相应单元的倒转功能。这对于本领域技术人员来说是众所周知的。简要来说,编码器200通过DCT和量化将视频信号(即数字视频像素值)转换为频率值并且执行编码。然后,编码器200执行可变长度编码以根据信息的频率数区分位长度,并且输出压缩的比特流格式。
图3是图示依照本发明一个实施例的解码器结构的简化方框图,而图4是图示依照本发明实施例的通用比特流结构的简化方框图。图5是简化方框图,图示了依照本发明实施例的语法解析组的结构。图6是简化方框图,图示了依照本发明实施例的基于宏块处理组的结构。图7是简化方框图,图示了依照本发明实施例的功能单元的连接结构。
如图3所示,本发明的解码器310具有不同于常规解码器(参见图1)的功能。
换句话说,依照本发明实施例的解码器310包含语法解析组315、表存储单元320、解码控制单元325和基于宏块的处理组330。
语法解析组315对输入的通用比特流进行分析并且将元素信息作为经过语法解析的结果存储在CSCI存储单元380中。典型的比特流(即通用比特流的单元,在下文中称作‘常规比特流’)是经过语法解析的并且为头部和图像数据的熵确定。然后,输出具有预定宏块尺寸的相关视频数据到基于宏块的处理组330。
显然,语法解析组315可以将具有宏块尺寸的视频数据存储在CSCI存储单元380中,并且连接控制单元385可以将具有宏块尺寸的所存储视频数据输入到选择的功能单元中。然而,下面的描述主要涉及这样的情况,由语法解析组315输出的具有宏块尺寸的视频数据直接输入到基于宏块的处理组330中。
例如,元素信息可以是控制信号/上下文信息(CSCI)。由语法解析单元315解析并且存储在CSCI存储单元380中的元素信息可以是相关步骤的解析结果数值,并且同时可以是用于确定后续比特流的语法的输入数值。
如图4所示,通用比特流400除了典型的比特流之外还包含解码描述信息。
解码描述信息包含比特流结构信息以及与比特流编码方法(或功能)相关的信息,其使用普通的分析方法解析由各种编码方法编码的第一比特流和/或由用户在各种功能中选择的功能编码的第二比特流。本领域技术人员显而易见并且易于理解,解码描述信息可以包含在通用比特流中并且被提供给解码器310或者可以通过附加的比特流格式或数据提供给解码器310。解码描述信息可以由文本描述方法或二进制描述方法来描述。
解码描述信息可以包含语法元素表(SET)410、语法规则表(S-RT)420、控制信号和上下文信息表(CSCIT)430、功能单元列表(FL)440、功能单元规则表(F-RT)450和功能单元CSCIT(FU-CSCIT)460。显然,可以以各种顺序安排解码描述信息中的每一个表。
在此,SET 410、S-RT 420和CSCIT 430可以称为“用于常规比特流解析的解码描述信息(必要时称为第一描述信息)”。同样,CSCIT 430、FL 440和F-RT 450可以称为“用于设定包含在语法解析组315和/或基于宏块的处理组330中每个功能单元的柔性连接的解码描述信息(必要时称为第二描述信息)”。FU-CSCIT 460可以称为“用于将包含在基于宏块的处理组330中的每个功能单元映射到存储在CSCI存储单元380中的元素信息的解码描述信息”。在这种情况下,元素信息可以像用于控制包含在基于宏块的处理组330中的每个功能单元的变量一样发挥功能。每个解码描述信息的类型和功能将在下面说明。
语法解析组315执行常规比特流470的解析,并且将相关的元素信息(例如CSCI)作为结果存储在CSCI信息中。语法解析组315可以实现为软件程序(包括程序代码的组合)。
为了便于理解,下面逐个功能单元地描述语法解析组315的功能。
如图5所示,语法解析组315可以包含网络抽象层解析功能单元(NALP FU)510、语法解析功能单元(SYNP FU)520、上下文确定功能单元(CTX FU)530,可变长度解码功能单元(VLD FU)540,行程解码功能单元(RLD FU)550和宏块发生器功能单元(MBG FU)560。当然,显然语法解析组315可以包含用于语法解析的所有功能单元而跟所应用的标准无关,可以重新添加技术发展过程所要求的功能,可以改进先前的功能单元并且可以删除不需要的功能单元。同样显而易见,在不依赖于每种标准而独立提供并且无论标准如何而相同处理的情况下,包含在语法解析单元315中的每个功能模块可以集成为一个功能单元。由于每个功能单元的功能对于本领域技术人员来说是众所周知的,将进行详细描述。
NALP FU 510是对MPEG-4 AVC的网络抽象层进行解析的功能单元,而SYNP FU 520是对比特流的语法进行解析的功能单元。SYNP FU520可以包含在VLD FU540中。
CTX FU 530是确定MPEG-4 AVC的VLC表的功能单元,而VLD FU540是执行熵解码的功能单元。
RLD FU 550是执行AC数值的熵解码的功能单元,而MBG FU是通过将DC数值和AC数值进行耦合产生宏块数据的功能单元。与前述语法解析单元315中所有或某些功能单元相对应的功能可以包含在VLD FU 540中,这取决于系统实现方法。
如上面描述,语法解析单元315可以实现为一个软件程序或多个软件程序(例如VLD FU 540实现为独立的软件程序)。
同样,语法解析单元315可以进一步包含将常规比特流中的二进制数据转换为语法解析单元315可以分析的表格的单元(例如软件程序)。当然,在语法解析单元315不包含该相关单元的情况下,该单元必须包含在语法解析单元315之前。由该单元转换的表格(即解码描述信息)存储在表存储单元320中。
在下文中将描述这样的处理,语法解析单元315通过使用第一描述信息(即SET 410、S-RT 420和CSCIT 430)提取或产生元素信息,并且将元素信息存储在CSCI存储单元380中。
首先,SET410是表格,由与所输入常规比特流的语法相关的信息组成。
SET 410包含每个语法的索引、单元名称、输入数据、输出数据和处理。在此,索引是标识符S,识别用于S-RT 420的每个语法。单元名称可以依照语法的含义或功能,以语法的名称命名。输入数据是指在比特流中一次输入数据的标称位长度。输出数据代表CSCIT 430的列表,当存储所获取数据时称作元素信息(即CSCI)。该处理描述了在接收作为输出数据的比特流的每个语法之后经历怎样的处理操作以产生元素信息。
下面是SET 410的例子:
【表1】
索引 | 单元名称 | 输入数据 | 输出数据 | 由SET-PROC处理 |
M | 标记位 | 1位 | C0 | READ 1 >C0; |
S0 | 可视对象序列起始代码 | 32位 | C0 | READ 32 B;(C0=($IBS==HEX:B0)); |
S1 | 简档和等级指示 | 8位 | C2 | READ 8 >C2; |
S2 | 可视对象序列终结代码 | 32位 | C0 | READ 32 B;(C0=($IBS==HEX:1B1)); |
S3 | 是用户数据吗? | 32位 | C1 | SEEK 32 B;(C1=($IBS==HEX:1B2)); |
S4 | 用户数据起始代码 | 32位 | C0 | READ 32B;(C0=($IBS==HEX:1B2); |
S5 | 用户数据 | 8位(阵列) | C3 | SEEK 24;WHILE($IBS!=1){READ 8;(C3@$IBS);SEEK 24;} |
S6 | 可视对象起始代码 | 32位 | C0 | READ 32 B;(C0=($IBS==HEX:1B5));DEFAULT C4,C5; |
| … | … | … | … |
作为例子,通过使用类似于‘SET{(process),(...)}’的脚本语言,SET410可以表示表格的关键最小数据。下面是实际的例子。
SET{
("READ 32 B;(C0=($IBS==HEX:B0));"),
("READ 8 >C2;"),
("READ 32 B;(C0=($IBS==HEX:1B1));")
…
)
作为另一个例子,SET 410可以通过如下的位变换以二进制代码格式表示。在这种情况下,表示SET的识别代码表示为‘00’的2位指示符。表格的结束部分由表格结束(EOT)表示。假设对每个语法安排可变长度的文本数据,比特编译。
00
000100000...
01010000000010...
00010...
…
EOT
虽然SET 410可以表示为如上所述的各种格式,但每种格式表示相同的含义。
然后,S-RT 420是指比特流中每个语法之间的连接规则。换句话说,S-RT具有指示调用每个语法和移动到下一个语法的信息。语法解析单元315使用R-ST 420读取相关的比特流或者定义存储和/或更新CSCI存储单元380中元素信息的顺序。
如下面表2中所示,S-RT 420包含索引R、语法索引S、输入数据C、分支数量和分支信息。
索引R识别每个连接规则。由于语法索引S指明特定连接索引处理的语法,语法解析单元315访问SET 410并且执行相关语法的指定处理。
输入数据是指对于用于控制相关连接索引的连接的条件确定所使用的元素信息列表。
分支数量是指对应连接索引的分支路线的全部数量,作为能够连接到后续语法的情况的数量。
分支信息是指条件确定算法,确定下一时机将处理哪一个连接。同样,还提供对应于分支数量的分支信息。分支信息可以直接确定待读取数据的顺序和内容。如下面表2中所示,如果分支数量是1,没有提供输入数据并且相关操作直接前进到处理由分支信息指定的连接索引。然而,如果分支数量是2或者大于2,则执行条件确定(包括条件文本之后的后续连接)并且相关操作前进到处理相应的连接索引。
通过处理相关连接索引中定义的语法,语法解析单元315更新CSCI存储单元380。然后,通过查阅CSCI存储单元380的元素信息,语法解析单元315读取更新后的数据,将其用于分支条件确定。这是因为例如,索引R1的分支信息的分支条件是‘C0==1’并且处理语法S0之后的元素信息C0。
【表2】
索引 | 语法 | 输入数据 | 分支数量 | 分支信息(以SET-PROC语法写) |
OK | - | - | - | None. |
ERR | - | - | - | None. |
R0 | - | - | 1 | 1:GO R1; |
R1 | S0 | C0 | 2 | 1:(C0==1)GO R2;2:GO ERR; |
R2 | S1 | - | 1 | 1:GO R3; |
R3 | S3 | C1 | 2 | 1:(C1==1)GO R4;2:GO R6; |
R4 | S4 | - | 1 | 1:GO R5; |
R5 | S5 | - | 1 | 1:GO R6; |
R6 | S6 | C0 | 2 | 1:(C0==1)GO R7;2:GO ERR; |
… | … | … | … | … |
【表3】
索引 | 单元名称 | 长度/类型 | 全局/局部 | 缺省值 |
C0 | 解码OK | 1位 | 局部 | |
C1 | 分支条件 | 8位 | 局部 | |
C2 | 简档和等级指示 | 8位 | 全局 | |
C3 | 用户数据 | 8位(阵列) | 全局 | |
C4 | 可视对象verID | 4位 | 全局 | 1 |
C5 | 可视对象优先权 | 3位 | 全局 | 1 |
C6 | 可视对象类型 | 4位 | 全局 | |
C7 | 视频格式 | 4位 | 全局 | 5 |
C8 | 视频范围 | 1位 | 全局 | |
C9 | 基色 | 8位 | 全局 | 1 |
C10 | (未使用) | | | |
C11 | 矩阵系数 | 8位 | 全局 | 1 |
C12 | 随机存取VOL | 1位 | 全局 | |
作为例子,通过使用类似于‘RT{(syntax id,branch_info),(...)}’的脚本语言,S-RT 420可以代表表格的关键最小数据。下面是实际的例子。
S-RT{
(none,"1:GO R1"),
("1:(C0==1)GO R2;2:GO ERR;"),
("1:GO R3;"),
}
作为另一个例子,S-RT 420可以通过如下的位变换表示为二进制代码格式。在这种情况下,参阅S-RT的标识代码表示位2位指示符‘10’。表格的结束部分由表格结束(EOT)表示,并且每个语法索引在10位中表示。假设安排使用分支信息进行位编译的可变长度文本数据。
10
0000000010 10101...
0000000100 101110100101...
0000000101 0100101...
…
EOT
虽然S-RT 420可以表示为如上所述的各种格式,但每种格式表示相同的含义。
最后,CSCI T430描述元素信息(例如CSCI)的细节,作为语法解析单元315通过使用SET 410和S-RT 420处理的信息结果。换句话说,CSCIT 430具有全部有意义的数据(即元素信息),其从比特流被处理、存储在CSCI存储单元380中并且由基于宏块的处理组330使用。
CSCIT 430包含作为标识符的索引C,其是相关元素信息的固有数字、相关元素信息的名称、用于指定相关元素信息的数据结构性质的状态(例如相关元素信息的存储空间尺寸以及相关元素信息是否是阵列类型)、全局的/局部的表示是否相关元素信息仅用于该语法解析处理或者用于所有的解码处理、以及缺省值存储当没有接收到用于对应于特定语法的元素信息的指令或者接收到初始化指令时的待指定的初始数值。缺省数值可以用于当依照比特流环境所请求的语法被跳过时补充数据空白。
作为例子,通过使用类似于‘CSCIT{(type,default=0),(...)}’的脚本语言,CSCIT 430可以表示表格的关键最小数据。下面时实际的例子。
CSCIT{
(integer),
(integer),
(integer),
(array),
(integer,1),
…
}
作为另一个例子,CSCIT 430可以通过如下的位变换表示为二进制码格式。在这种情况下,查阅CSCIT的标识代码表示为2位标志‘01’。表格的结束部分由表格结束(EOT)表示,并且类型由1位表示(例如integer=0,Array=1)。假设在具有缺省数值的情况下(缺省标志为1),缺省数值由8位表示。
01
0 0
1 0
0 1 00000010
0 1 00000000
1 0
…
EOT
虽然CSCIT 430可以表示为如上所述的各种格式,但每种格式表示相同的含义。
如上所述,语法解析单元315通过使用S-RT 420确定待处理的语法、通过SET 410处理相关语法、并且产生元素信息(例如CSCI)以将其存储在CSCI存储单元380中。在这种情况下,存储对应于CSCI T430的元素信息。然后,如果存在提供相关元素信息作为输入数据的分支条件,则语法解析单元315确定连接索引以前进通过分支条件的置换。然而,如果不存在分支条件,后续的连接索引推进。通过重复前面提到的参考S-RT 420的处理,语法解析单元315可以将所期望的元素信息存储在CSCI存储单元380中。
简要来说,例如,如果语法解析单元315尝试处理S-RT 420的连接索引R2,语法解析单元315识别出待处理的语法索引为S1并且参考SET410的语法索引S1待处理的处理操作为‘READ 8 >C2;’。换句话说,语法解析单元315读取比特流中适当位置的8位,并且将其与元素信息C2的索引存储在CSCI存储单元380中。元素信息C2由CSCIT 430识别为‘简档和等级指示’。同样,元素信息C2在满足指定的格式之后被存储在CSCI T420中。然后,由于分支数量为1,语法解析单元315前进到处理连接索引R3。
类似地,如果语法解析单元315尝试处理S-RT 420的连接索引R3,语法解析单元315识别出待处理的语法索引为R3并且参考SET 410的语法索引S3待处理的处理操作为‘SEEK 32 B;(C1=($IBS==HEX1B2));’。换句话说,语法解析单元315通过字节对准读取比特流适当位置的32位。然后,如果所读取$IBS以16位与1B2相同(HEX==1B2),则语法解析单元315与元素信息C1的索引在CSCI存储单元380中存储1。如果所读取$IBS以16位与1B2不同(HEX==1B2),则语法解析单元315与元素信息C1的索引在CSCI存储单元380中存储0。元素信息C1由CSCIT 430识别为‘分支条件’。同样,元素信息C1在满足指定格式之后将被存储在CSCIT 420中。然后,语法解析单元315通过所存储的元素信息C1确定使用哪个连接索引,以确定分支信息中指定的条件文本。换句话说,当S-RT 420中建议的条件信息为‘1:(C1==1)GO R4;2:GO R6,’时,如果所读取的元素信息C1为1,则使用连接索引R4。然而,否则的话,使用连接索引R6。
用于当前描述所使用的解码描述信息的指令可以有READ、SEEK、CLEAR和DEFAULT。例如,READ和SEEK可以用于读取和解释。然而,READ可以在读取当前数据之后读取下一个数据,而SEEK在读取当前数据之后不移动以读取下一个数据。同样,在数据初始化时使用CLEAR和DEFAULT。然而,CLEAR删除元素信息的所有阵列单元,而DEFAULT将正数的元素信息初始化为预定的缺省值(在没有缺省值的情况下为零值)。
从而,通过前述表1、2和3,有语法解析单元315执行的语法解析流程与下面表4相同。
【表4】
控制流程 | 分支控制 | 设置 | CSCIT | 描述 |
0 | R0 | | | 可视对象序列起始代码 |
1 | R1 | S0 | C0 | 简档和等级指示 |
2 | R2 | S1 | - | 可视对象序列结束代码 |
3 | R3 | S3 | C1 | 是不是用户数据 |
4 | R4 | S4 | - | 用户数据起始代码 |
5 | R5 | S5 | | 用户数据 |
6 | R6 | S6 | - | 可视对象起始代码 |
7 | R7 | S7 | C1 | 是可视对象标识符 |
8 | R8 | S8 | - | 可视对象verID |
9 | R9 | S9 | | 可视对象优先权 |
… | | | | |
如上面描述的,每个表可以表示为二进制码格式、分析和使用。从而,在编码器以二进制码格式将相应表格传输到解码器的情况下,所传输的数据量可以是最小化的。
以二进制码格式传输表格的例子与下面表5相同。
【表5】
二进制码 | 描述 |
00 | 设置索引 |
010100101010... | 可变长度处理 |
… | … |
0xFFFFFF11 | 32位(或更少)EOT |
01 | CSCIT索引 |
1 | 类型 |
0 | 缺省标志 |
0 | 类型 |
1 | 缺省标志 |
00000001 | 缺省值 |
… | … |
0xFFFFFF11 | 32位(或更少)EOT |
10 | S-RT索引 |
0000000010 | 10位语法ID |
01010101000100... | 可变长度分支信息. |
… | … |
0xFFFFFF11 | 32位(或更少)EOT |
再次参见图3,解码控制单元325包括CSCI存储单元380和连接控制单元385。
CSCI存储单元380存储元素信息(例如CSCI)作为通过使用SET 410和S-RT 420进行语法解析的结果以与CSCIT 430对应。例如,CSCI存储单元380可以是缓冲存储器。
存储在CSCI存储单元380中的元素信息可以作为由语法解析单元315用于执行SET 410的处理的输入数据,以及作为控制变量用于确定S-RT 420中的后续连接索引。
同样,存储在CSCI存储单元380中的元素信息可以作为由连接控制单元385用于确定F-RT 540中的后续连接索引的控制变量,或者可以在FU-CSCIT 460中用于将特定功能单元的输入CSCI映射到存储在CSCI存储单元380中的元素信息。
换句话说,存储在CSCI存储单元380中的元素信息具有将语法解析单元315连接到基于宏块的处理组330的功能。
连接控制单元385设定基于宏块处理组330中每个功能单元的连接关系,以便解码通过各种标准编码的比特流。换句话说,连接控制单元385在基于宏块处理组330的每个功能单元中选择恰当的一个,并且确定所选择功能单元之间的的执行序列。为此,连接控制单元385通过使用FL 440、F-RT 450和CSCIT 430连接相关功能单元,并且通过使用由语法解析单元315从每个功能单元提供的元素信息以宏块为单元解码视频数据。
连接控制单元385使用CSCIT 430、FL 440、F-RT 450和FU-CSCIT460执行前述功能。
首先,如下面表6所示,FL 440是具有基于宏块处理组330中每个功能单元的列表的表格。FL 440具有作为用于识别每个功能单元的标识符的索引F、每个功能单元的名称FU Name、输入控制(CSCI)变量的数量以及输入数据和输出数据。
由连接控制单元385选择的特定功能单元从连接控制单元385接收输入数据,并且执行预定处理以产生输出数据。在此,功能单元包含在连接控制单元385中,并且执行一系列处理操作(例如功能操作、算法或功能),即执行输入数据的预定处理并且产生输出数据。表6中所示的功能单元将在下面与连接控制单元385一起描述。
【表6】
索引号 | FU name | 输入CS/CI的# | 输入数据 | 输出数据 |
F1 | DCR | 4 | QFS | QFSP |
F2 | IS | 2 | QFSP | PQF |
F3 | IAP | 3 | PQF | QF |
F4 | IQ | 1 | QF | F |
F5 | IT | 0 | F | f |
F6 | FFR | 0 | f | D |
F7 | SPR | 3 | f | r |
… | … | … | … | … |
由于表6中的QFS、QFSP、PQF和QF对于本领域(例如MPEG领域)技术人员来说是众所周知的,因而省略相关的描述。作为例子,OFS是指可变长度编码的输出数值。
通过使用类似的脚本语言,FL 440可以表示表格的关键最小数据。FL 440也可以通过位变换表示为二进制码格式。
然后,F-RT 450提供功能单元的连接,这些功能单元用于解码所输入的常规比特流470。
如下面表7所示,F-RT 450包含识别每个连接规则的索引R、对应于相关连接索引的功能单元F、连接控制所需要的元素信息C、能够与后续功能单元连接的分支数量以及对应于分支数量所需要的每个分支信息(#1、#2、#3...)。仅在分支数量为2或更多的情况下才存在所期望的元素信息。这种情况下,通过使用所期望的元素信息,可以根据确定条件文本的结果改变连接索引。换句话说,如果分支数量为1则不存在所希望的元素信息,相关操作前进到分支信息中指示的连接索引。在相应条件文本之后,建议后续连接索引。
【图7】
索引号 | FU | 输入 | 分支的# | 分支信息 |
END | | | - | |
R0 | - | - | 1 | 1:GO R1; |
R1 | F1 | - | 1 | 1:GO R2; |
R2 | F2 | C64 | 2 | 1:(C64==1)GO R3;2:(C64==0)GO R4; |
R3 | F3 | - | 1 | 1:GO R4; |
R4 | F4 | - | 1 | 1:GO R5; |
R5 | F5 | C32 | 2 | 1:(C32==1)GO R6;2:(C32==0)GO R7; |
R6 | F6 | - | 1 | 1:GO END; |
R7 | F7 | - | 1 | 1:GO R6; |
通过使用类似的脚本语言,F-RT 450可以表示表格的关键最小数据。F-RT 450也可以通过位变换表示为二进制码格式。
最后,FU-CSCIT 460是用于将存储在CSCI存储单元380中的元素信息与每个功能单元所需要元素信息(输入CSCI)进行连接的表格。
如图8所示,FU-CSCIT 460包含排列为元素信息对的索引F-C和FL440的索引,相关元素信息、用于在CSCIT 430中映射的索引C以及元素信息的数据类型。
例如,如果输入四项的素信息到FU-CSCIT 460中的F1中,FU-CSCIT460列出每个功能单元的元素信息。换句话说,列出F1-C1、F1-C2、F1-C3和F1-C4,并且通过使用像C32、C34、C2和C5的CSCIT 430的引C对每个元素信息进行映射。类似地,如果2项的素信息输入到F2中,列出F2-C1和F2-C2,并且使用C39和C8映射每个元素信息。
【表8】
索引号 | CSCI信息 | CSCI | 数据类型 |
F1-C1 | Quantiser_step | C56 | 9位整数 |
F1-C2 | CBP | C58 | 2位整数 |
F1-C3 | Ac_pred_flag | C64 | 1位标志 |
F1-C4 | #MB | | 14位整数 |
F2-C1 | CBP | C58 | 2位整数 |
F2-C2 | Ac_pred_flag | C64 | 1位标志 |
F3-C1 | Quantiser_scale | | 9位整数 |
F3-C2 | Ac_pred_flag | C64 | 1位标志 |
F3-C3 | #MB | | 14位整数 |
F4-C1 | Quantiser_scale | | 9位整数 |
… | … | … | … |
通过使用相似的脚本语言,FU-CSCIT 460可以表示表格的关键最小数据。FU-CSCIT460也可以通过位变换表示为二进制码格式。
如上所述,连接控制单元385首先参照F-RT 450设定每个功能单元的连接关系。换句话说,连接控制单元385规定对应于当前连接索引的能单元,并且检查在FL440中需要多少项的元素信息作为输入数据。然后,连接控制单元385通过FU-CSCIT 460确定相关功能单元需要什么元素信息。然后,连接控制单元385参照写入FU-CSCIT 460中的CSCIT 430索引从CSCI存储单元380提取对应的元素信息,并且将其提供给相关功能单元。之后,相关操作前进到后续连接索引并且重复前述的处理。然而在此情况下,如果分支数量为2或者更多,分支路线可以根据相关元素信息而改变。
通过相互查阅每个表格设定每个功能单元连接关系的一系列处理与语法解析单元315的情况相同或者相似。因而,将此省略。
通过前述表格3、6、7和8,由连接控制单元385执行的语法解析流程与下面表9和表10相同。换句话说,可以设定不同功能单元的连接关系。这在图7中显示。
【表9】
控制流程 | 分支控制 | FL | CSCIT | 描述 |
0 | R0 | - | - | |
1 | R1 | F1 | - | DCR |
2 | R2 | F2 | C64 | IS |
3 | R3 | F3 | - | IAP |
4 | R4 | F4 | - | IQ |
5 | R5 | F5 | C32 | IT |
6 | R6 | F6 | - | FFR |
7 | END | - | - | - |
【表10】
控制流程 | 分支控制 | FL | CSCIT | 描述 |
0 | R0 | - | - | |
1 | R1 | F1 | - | DCR |
2 | R2 | F2 | C64 | IS |
3 | R4 | F4 | - | IQ |
4 | R5 | F5 | C32 | IT |
5 | R7 | F7 | - | SPR |
6 | R6 | F6 | - | FFR |
7 | END | - | - | - |
再次参见图3,基于宏块的处理组330以从语法解析单元315输入的宏块单元形式解码视频数据,并且输出具有预定尺寸的经解码的视频数据。基于宏块的处理组330可以包含用于执行对应于每个标准的前述功能的功能单元。
因而,基于宏块的处理组330可以被认为是一种工具箱。可以通过独立的处理模块(例如软件程序、指令代码和功能的组合)实现每个功能单元,或者基于宏块的处理组330可以被实现为一个处理模块。
如表6所示,基于宏块的处理组330包含去块功能单元(DF FU)610、VOP重建功能单元(VR FU)615、帧场重排序功能单元(FFR FU)620、内部预测和图像重构功能单元(IPR FU)630、逆变换功能单元(IT FU)635、逆量化功能单元645、反AC预测功能单元(LAP FU)655、反扫描功能单元(IS FU)660和DC重构(DCR FU)665。IT 4×4FU 640、IQ4×4FU 650和DCR 4×4处理具有4×4尺寸的块。这是因为存在这样的情况:MPEG-1/2/4在变换、量化和预测中处理8×8尺寸的块,而MPEG-4AVC处理4×4尺寸的块。
显而易见,基于宏块的处理组330可以包含用于数据解码而与所应用标准无关的所有功能单元,可以新添加用于技术发展过程所需要的功能,先前的功能单元可以被修改并且可以删除不需要的功能单元。例如,在额外需要IS 4×4FU处理4×4块尺寸的数据的情况下,基于宏块的处理组330可以进一步包含例如IS 4×4 FU的相关功能单元。同样,基于宏块的处理组330还可以包含用于在MPEG-4 AVC执行内部预测的专用预测功能单元(SPR FU)。
显而易见,在每个功能单元在每个标准被独立地提供并且可以被相同处理而与标准无关的情况下,包含在基于宏块的处理组330中的每个功能单元可以集成为一个功能单元。由于每个功能单元的功能对于本领域技术人员来说是众所周知的,将进行详细描述。
DF FU 610是MPEG-4 AVC的去块滤波器,而VER FU 615是存储解码像素的功能单元。
FER FU 620是用于交叉方式的功能单元,而IPR FU 630是执行MPEG-4AVC的内部预测并且存储解码像素的功能单元。如上所述,可以由SPR FU执行MPEG-4 AVC的内部预测。
IT FU 635是执行DC和AC的逆变换的功能单元,而IQ FU 645是执行AC的逆量化的功能单元。
LAP FU 655是执行AC的反AC预测的功能单元,而IS FU 660是执行反扫描的功能单元。DCR FU 665是执行DC的反预测和逆量化的功能单元。
不要必要的是:前述语法解析单元315和基于宏块的处理组330的每个操作必须连续执行(即基于宏块的处理组330的操作必须在语法解析单元的操作完成之后开始)。显而易见,这两个操作可以同时执行。这是因为,如果仅当前操作功能单元所需要的最小元素信息由语法解析单元315存储在CSCI存储单元中,这便是足够的。
为了实现集成编解码,必须有机地控制每个单元,从而通过对由各种编码方法压缩的比特流进行解析,可以使用对应于相关编码方法的解码方法来解码比特流。
在此情况下,相关比特流可以是混合各种标准(编解码器)的各种形状的比特流,或者由一个标准中各种编码方法产生的各种形状的另一种比特流。同样,为了支撑各种编码/解码方法,需要将各种功能分成多个独立单元并且可以在多个独立单元中选择所期望的单元以构造一个编解码器(编码器和解码器)。
同样如上所述,通过一起提供解码描述信息,通过使用相同信息分析方法而和与比特流一起编码的编码方法无关,本发明可以有机地连接和控制每个单元。
同样,仅通过修改相关信息或插入附加的信息,本发明可以处理比特流的语法的变化或新的添加。通过允许用户在比特流层级、帧层级和宏块层级的处理单元中选择所期望的功能并且构成F-RT 450,本发明还可以设定相关解码器的基于宏块处理组330和功能单元的连接关系。
图8是方框图,图示了依照本发明实施例的编码器结构。
与参照图2描述的常规编码器200相比,本发明的编码器800进一步包含通用比特流产生和输出单元810。通过使用先前处理所产生的常规比特流470的产生处理操作的控制信息(例如所使用功能单元和输入数据的列表和连接关系、相关功能单元的语法信息和语法连接信息),通用比特流产生和输出单元810产生解码描述信息。同样,通过使用所产生的解码描述以及待传输到解码器800的常规比特流470以产生通用比特流。由于产生描述信息的方法对于本领域技术人员来说是充分显而易见的,因而将省略相关的描述。
同样,可变长度编码单元230仅指在编码器800中最终执行编码以产生比特流的单元(例如编码单元),但本发明不限于可变长度编码单元230。同样,这不限制本发明的权利要求的范围。
图8假设如下情况,将通过使用解码描述信息和常规比特流470以产生的通用比特流400提供给相关解码器。
然而如上所述,解码描述信息可以通过附加数据格式和比特流格式提供给解码器800。在这种情况下在可变长度编码单元235之后没有提供通用比特流产生和输出单元810,并且独立于常规编码单元200提供通用比特流产生和输出单元810以将独立产生的信息提供给解码器800,这显然是可行的。
在当前描述中,主要基于解码器描述了依照本发明的集成编解码装置和方法。考虑到解码器和编码器之间的关系对于本领域技术人员来说是众所周知的,并且根据仅涉及解码器的描述可以容易地构造编码器,显然本发明不限于解码器。
如上所述,本发明的集成编解码装置和方法使得易于分析标准(或编解码器)中的或者不同标准之间的语法单元,或者易于控制相关功能单元的连接。换句话说,在本发明中,改变依照特定标准产生的比特流中语法单元的顺序、插入新的单元以及删除先前的语法单元都没有问题。
同样,依照现有技术存在一个问题,在语法单元的操作中解码器不能够正确地解码相对应的比特流。例如,如果ABC比特流信息的结构变化为ACB结构,解码器可能无法识别ACB结构从而不能执行正确的解码。类似的,对于通过添加F得到的ABFC结构或者通过删除B得到的另一个结构AC,解码器可能无法识别该结构从而不能执行正确的解码。
然而,在本发明的集成编解码装置和方法中,由于包含在通用比特流中的解码描述或者解码描述作为独立数据被提供给解码器800,解码器800可以执行正确的解码操作。
上面基于MPEG-4 AVC描述了依照本发明的用于解码装置和比特流解码的语法分析方法。然而显而易见,本发明可以同样地应用于MPEG-1、MPEG-2、MPEG-4和其他视频数据编码/解码标准而没有任何限制。
附图和详细说明仅仅是本发明的例子,仅用于描述本发明而决不是限制或者约束本发明的实质和范围。因而,任何本领域技术人员应当理解,可能存在大量的置换和其他等效实施例。本发明的实际范围必须仅由所附权利要求的实质进行定义。