处理音频信号的装置和方法

文档序号:2830106阅读:269来源:国知局

专利名称::处理音频信号的装置和方法
技术领域
:本发明涉及一种处理音频信号的方法,尤其涉及一种编码和解码音频信号的方法和装置。
背景技术
:过去曾经以不同方法实现了音频信号的存储和重放。例如,音乐和语音业已通过留声技术(例如唱盘播放机)、磁技术(例如卡式磁带)和数字技术(例如光盘)来记录和保存。随着音频存储技术的发展,需要克服许多难题来优化音频信号的质量和可存储性。为了音乐信号的存档和宽带传输,无损重建在借助诸如MP3或AAC等在MPEG标准中定义的感性编码进行的压縮中正成为比高效率更为重要的特征。虽然DVD音频和超级CD音频包括专利无损压縮方案,但是在内容持有者和广播公司当中需要一种开放式和综合性的压縮方案。响应于这种需要,一种新的无损编码方案已经成为MPEG-4音频标准的延伸。无损音频编码法由于原始信号的完美重建而实现了没有任何质量损失的数字音频数据压縮。
发明内容本发明涉及处理音频信号的方法。在一个实施例中,音频信号的一个帧中的至少一个声道被再分成多个块以使至少两个块具有不同的长度,并产生指示将声道再分成若干块的信息。在该实施例中,帧长度是用户定义的值。例如,帧长度是由16比特表示的用户定义值,并且该值作为音频信号的配置信息的一部分被加至音频信号并帧长度被确定在预定值内。根据一个实施例,声道根据再分等级被再分。该再分等级具有一个以上的级,每个级关联于不同的块长度。例如,再分等级的高阶级关联于与低阶级关联的块长度的两倍。在一个实施例中,如果一个声道长度为N,则该声道被再分成多个块以使每个块具有N/2、N/4、N/8、N/16和N/32中的一个的长度。在一个实施例中,产生信息以使信息的长度取决于再分级别中的若干级。例如,产生信息以使该信息包括若干信息比特,这些信息比特指示将声道再分成若干块。更具体地,每个信息比特关联于再分级别中的阶级并且关联于所关联阶级的一个块,每个信息比特指示所关联的块是否被再分割。在一个实施例中,该信息还包括基于之前的数据采样预测声道中的当前数据采样。用于预测的之前的数据采样数被称为预测阶数。基于预测的数据采样获得当前数据采样的残数。在一个实施例中,当之前的数据采样变得可得时,通过渐进地增加预测阶数至希望的预测阶数实现预测。例如,可对随机存取帧执行该渐进预测过程,所述随机存取帧是一种帧,它被编码以使解码该帧不需要用到之前的帧。在另一实施例中,基于允许的最大预测阶数和块长度为每个块确定希望的预测阶数。本发明还涉及对音频信号进行编码的方法和装置以及对音频信号进行解码的方法和装置。包括于此以提供对本发明的进一步理解、并被结合在本申请中且构成其一部分的附图示出本发明的实施方式,其与说明书一起可用来解释本发明的原理。在附图中图1是根据本发明一个实施方式的编码器的示例图。图2是根据本发明一个实施方式的解码器的示例图。图3是根据本发明一个实施方式的压縮的M-声道文件的比特流结构的示例图。图4是根据本发明一个实施方式的分级块切换方法的概念图的示例图。图5是块切换示例及相应的块切换信息代码的示例图。图6是根据本发明实施方式的多个声道的块切换方法的示例图。具体实施方式下面将详细参考本发明的优选实施方式,其具体示例图示于附图中。只要有可能,即在所有附图中使用相同的附图标记表示相同或相似的部件。在对本发明进行叙述之前,应当指出的是本发明中揭示的大多数术语对应于本领域内公知的一般术语,但部分术语是由申请人根据需要选择的,并且将在本发明下文的描述中予以揭示。因此,由申请人定义的术语优选基于它们在本发明中的含义来理解。在无损音频编码方法中,由于编码过程必须是完全可逆而不会有信息损失的,因此编码器和解码器两者的若干部件必须以确定性的方式来实现。编解码器结构图1是根据本发明一个的编码器1的示例图。分割部件100将输入的音频数据分割成若干帧。在一帧内,每个声道还可进一步被细分成若干个音频采样块以做进一步处理。缓冲器110存储由分割部件100分割后的块和/或帧采样。系数估算部件120针对每个块估算最优的一组系数值。系数的数目,即预测器的阶数也可以自适应地做出选择。系数估算部件120针对数字音频数据块计算一组部分自相关系数(parcor)值。部分自相关系数值指示预测器系数的部分自相关系数表示。量化部件130将该组部分自相关系数值量化。第一熵编码部件140通过从部分自相关系数值减去一个偏移值来计算出部分自相关系数残差值,并使用由熵参数所定义的熵代码对部分自相关系数的残差值进行编码,其中偏移值和熵参数选自最优表。最优表是基于数字音频数据块的采样率从多个表中选择的。这多个表是分别对多个采样率范围预定义的以实现为传输而进行的数字音频数据的最优压縮。系数转换部件150将量化了的部分自相关系数转换成线性预测编码(LPC)系数。预测器160使用线性预测编码系数从存储在缓冲器110中的之前的原始采样估算当前预测值。减法器170使用存储在缓冲器110中的数字音频数据的原始值和在预测器160中估算出的预测值计算数字音频数据块的预测残差。第二熵编码部件180使用不同的熵代码编码预测残差并生成代码索引。所选代码的索引将作为辅助信息发送。第二熵编码部件180可使用具有不同复杂度的两种可供选择的编码技术之一对预测残差进行编码。一种编码技术是公知的Golomb-Rice编码(在下文中简称为Rice代码)法而另一种是公知的分块Gilbert-Moore代码(在下文中简称为BGMC)法。Rice代码复杂度低但仍然是高效率的。BGMC算术编码方案以比Rice代码复杂度稍高为代价提供更好的压縮。最后,多路复用部件190将编码的预测残差、代码索引、编码的部分自相关系数残差值和其它附加信息进行多路复用形成压縮的比特流。编码器1还提供循环冗余校验(CRC)校验和,它主要是供解码器验证解码的数据。在编码器方面,CRC可用来确保压縮的数据是能够进行无损解码的。其它编码选项包括灵活块切换方案、随机存取和联合声道编码。编码器1可使用这些选项提供若干具有不同复杂度的压縮级别。联合声道编码利用立体声声道或多声道信号之间的相关性。这可通过在能够比原始信道之一更高效率地编码两个声道之间的差异的片段(segments)中编码这种差异来实现。这些编码选项将在对根据本发明的示例性解码器进行说明之后更为详细地予以说明。图2是根据本发明的解码器2的示例图。更特别地,图2示出由于不必执行任何适应性调整因而复杂度显著低于编码器的无损音频信号解码器。多路分解部件200接收音频信号并将数字音频数据块的编码的预测残差、代码索引、编码的部分自相关系数残差值和其它附加信息多路分解。第一熵解码部件210使用由熵参数定义的熵代码对部分自相关系数残差值进行解码并通过将偏移值加至解码的部分自相关系数残差值来计算出一组部分自相关系数值;其中的偏移值和熵参数选自一个表,该表是由解码器基于数字音频数据块的采样率从多个表中选择的。第二熵解码部件220使用代码系数对经多路分解后的编码的预测残差进行解码。系数转换部件230将经熵解码的部分自相关系数值转换成LPC系数。预测器240使用LPC系数估算数字音频数据块的预测残差。加法器250将解码的预测残差加至估算的预测残差以获得原始的数字音频数据块。组装部件260将解码的块数据组装成帧数据。因此,解码器2将编码的预测残差和部分自相关系数残差值解码,将部分自相关系数残差值转换成LPC系数,并应用反向预测滤波器计算无损重建信号。解码器2的计算工作量取决于由编码器1选择的预测阶数。在大多数情形下,实时解码即使在低端系统中也是可能的。图3是根据本发明的包括多个声道(例如M个声道)的压縮音频信号的比特流结构的示例图。该比特流由至少一个包括多个声道(例如M个声道)的音频帧构成。比特流配置句法(见下面的表6)中的"channels"字段指示声道数。使用根据本发明的块切换方案将每个声道分成多个块,这将在后面详细说明。每个细分的块具有不同的大小并包括根据图1的编码法的编码数据。例如,一个再分块内的编码数据包含代码索引、预测阶数K、预测器系数和编码的残差值。如果在声道对之间使用联合编码法,则这两个声道的块分割是等同的,而且这些块以交织方式存储。比特流配置句法(表6)中的"js一stereo"字段指示联合立体声(声道差)是开启的还是关闭的,而frame—data句法(见下面的表7)中的"js—switch"字段指示是否选择联合立体声(声道差)。否则,每个声道的块分割是独立的。下面将参照附图及其后的句法详细地说明前面提到的块切换、随机存取、预测和熵编码选项。块切换本发明的一个方面涉及在使用实际编码方案之前将每个声道细分成多个块。在下文中,根据本发明的块分割(或细分)方法将被称为"块切换方法"。分级块切换图4是根据本发明的分级块切换方法的概念图的示例图。例如,图4示出将一个声道按分级方式细分成32个块的方法。当在单个帧中提供多个声道时,每个声道被细分(或分割)成最多达32个块,并且每个声道的细分块配置成一个帧。因此,根据本发明的块切换方法由图1所示的分割部件100执行。此外,如上所述,预测和熵编码在细分的块单元上执行。一般而言,传统的音频无损编码(ALS)包括相对简单的块切换机制。每一个N个采样的声道或者使用一个全长块(NB=N)进行编码,或者使用四个长度NB二N/4的块(例如l:4切换)进行编码,其中同一块分割法适用于所有声道。在某些情形下,该方案会具有某些局限性。例如,尽管只有l:l或l:4切换是能用的,但其他切换法(例如l:2、1:8及其组合)在某些情形下却效率更高。另外在传统ALS中,对所有声道以等同的方式执行切换,虽然不同声道或许会从不同的切换法受益(如果声道并不相关时则尤为如此)。因此,根据本发明实施方式的块切换方法提供相对灵活的块切换方案,其中一个帧的每个声道可按分级方式被细分成多个块。例如,图4示出能以分级方式细分成最多达32个块的声道。在根据所给出的实施方式的声道内,NB=N、N/2、N/4、N/8、N/16和N/32的块的任意组合是可能的,只要每个块是通过对双倍长度的上级块进行细分产生的即可。例如,如图4中的例子所示,分割成1^/4+N/4+N/2是可能的,而分割成N/4+N/2+N/4是不行的(例如在下面描述的在图5(e)和图5中示出的块切换示例)。换言之,声道被分成这多个块从而使每个块的长度等于N/(mi)中的一个值,其中1=1,2,……p,N是声道的长度,m是大于或等于2的一个整数,而p表示在细分分级结构中的级数。因此,在本发明的实施方式中,比特流包括指示块切换等级的信息以及指示块切换结果的信息。这里,与块切换相关的信息被包含在用于解码过程的语法中,这将在下面进行描述。例如,作出设定以使块切换处理后生成的最小块大小为NB二N/32。然而,这种设定仅仅是为简化本发明说明的一个示例。因此,根据本发明的设定不限于这一种设定。更具体地,当最小块大小为NB=N/32时,这表示块切换处理已按分级方式进行了5次,故将其称为5级块切换。或者,当最小块大小为NB二N/16时,这表示块切换处理已按分级方式进行了4次,故将其称为4级块切换。类似地,当最小块大小为NB二N/8时,这表示块切换处理己按分级方式进行了3次,故将其称为3级块切换。而当最小块大小为NB=N/4时,这表示块切换处理已按分级方式进行了2次,故将其称为2级块切换。当最小块大小为NB=N/2时,这表示块切换处理已按分级方式进行了l次,故将其称为l级块切换。最后,当最小块大小为NB二N时,这表示未执行分级块切换处理,故将其称为o级块切换。在本发明的实施方式中,指示块切换等级的信息被称为第一块切换信息。例如,第一块切换信息可由表6的语法中一个2比特字段"block—switching"表示,这将在后面的过程中予以说明。更具体地,"block—switching二00"表示0级,"block—switching二01"表示1级至3级中的任何一个,"block—switching-10"表示4级,而"block—switching-11"表示5级。另外,指示根据上述块切换等级对每个等级执行的块切换结果的信息在这些实施例中被称为第二块切换信息。这里,第二块切换信息可由"bs—info"字段表示,该字段在表7所示的语法中以8比特、16比特和32比特中的任何一个表示。更具体地说,如果"block—switching=01"(表示1级至3级的任何一个),则"bs—info"由8比特表示。如果"block—switching=10"(表示级4),则"bs—info"由16比特表示。换句话说,高达4级的块切换结果可用16比特表示。此外,如果"block—switching=11"(表示级5),则"bs—info"表示为32比特。换句话说,高达5级的块切换结果可用32比特指示。最后,如果"blocLswitching二00"(表示尚未进行块切换),则不发送"bs—info"。这表示一个声道构成一个块。分配给第二块切换信息的总比特数是基于第一块切换信息的等级值而确定的。这可能会减小最终的比特率。在下面的表1中简述第一块切换信息和第二块切换信息之间的关系。表l:块切换等级<table>tableseeoriginaldocumentpage11</column></row><table>下面将详细描述配置(或映射)第二块切换信息(bs—info)内每个比特的方法的一个实施方式。bs一info字段根据上述实施方式可包括最多达4个字节。关于1级至5级的比特映射可以是[(0)12233334444444455555555555555555]。可保留第一比特以指示是独立块切换还是同步块切换,这将在后面的独立/同步块切换一节中更为详细地描述。图5(a)—5(f)示出可发生3级块切换的一个声道的不同块切换示例。因此,在这些示例中,最小块长度为NB=N/8,且bs—info由一个字节构成。从最大块长度NB二N开始,如果块被进一步细分,则bs—info的比特被置位。例如,在图5(a)中,根本不存在细分,因此"bs—info"为(0)0000000。在图5(b)中,帧被细分((0)1……)而长度为N/2的第二块被进一步分((0)101……)成两个长度N/4的块;因此bs—info为(0)10100000。在图5(c)中,帧被细分((0)1...),且只有长度为N/2的第一块被进一步分((O)110...)成为两个长度为N/4的块;因此bs—info为(0)11000000。在图5(d)中,帧被细分((O)l……),长度为N/2的第一块和第二块被进一步分((O)lll……)成长度为N/4的两个块,并且只有长度为N/4的第二块被进一步分((O)11101……)成长度为N/8的两个块;因此"bs—info"为(0)1110100。如上所述,图5(e)和5(f)中的示例表示不被允许的块切换的情形,这是因为图5(e)中的N/2块和图5(f)中的第一个N/4块不可能是通过细分前一级的块来获得的。独立/同步块切换图6(a)—6(c)是根据本发明实施方式的块切换的示例图。更具体地,图6(a)示出未对声道l、2和3执行块切换的示例。图6(b)示出的是其中两个声道(声道1和2)配置成一个声道对、且在声道1和声道2中同步地执行块切换的示例。在本例中还应用了交织处理。图6(c)示出的是其中两个声道(声道1和2)配置成一个声道对、且独立地对声道1和声道2执行块切换的示例。在本发明中,"声道对"指两个任意的音频声道。关于哪些声道组成声道对的决定可由编码器自动做出或由用户人工做出。(例如L和R声道、Ls和Rs声道)。在独立块切换中,尽管在所有声道中每个声道的长度可以是相同的,但可对每个声道个别地执行块切换。即,如图6(c)所示,各声道可以不同方式分成块。如果一个声道对的两个声道彼此相关并且使用差分编码,则该声道对的两个声道可被同步地进行块切换。在同步块切换中,各声道以相同方式进行块切换(即分成块)。图6(b)示出这样的一个示例,并进一步示出这些块是可以被交织的。如果声道对的两个声道彼此不相关,则差分编码并无益处,因而不需要对声道同步地进行块切换。相反,独立地切换声道可能更合适。此外,根据本发明的另一实施方式,所描述的独立或同步块切换方法可应用于声道数大于或等于3的多声道组。例如,如果该多声道组的所有声道彼此相关,则可以同步切换多声道组的所有声道。另一方面,如果多声道组的所有声道彼此不相关,则可以独立地切换多声道组的每个声道。此外,"bs—info"字段被用作指示块切换结果的信息。另外,"bs—info"字段还被用作指示对配置成声道对的每个声道是独立地执行了块切换还是同步地执行了块切换的信息。在这种情况下,如上所述,可使用"bs—info"字段中的特定比特(例如第一比特)。例如,如果声道对的两个声道彼此独立,则"bs—info"字段的第一比特被置为"1"。另一方面,如果声道对的两个声道彼此同步,则"bs—info"字段的第一比特被置为"0"。下面将详细描述图6(a)、6(b)和6(c)。参照图6(a),由于没有一个声道执行块切换,因此并不生成相关的"bs—info"。参照图6(b),声道1和2配置成一个声道对,其中这两个声道彼此同步且同步执行了块切换。例如,在图6(b)中,声道1和声道2两者都被分割成长度为N/4的块,两者都具有相同的bs—info"bs—info=(Q)1010000"。因此,可针对每个声道对发送一个"bs一info",这导致比特率下降。此外,如果声道对是同步的,则声道对中的每个块会被要求彼此交织。这种交织是有益的(或有利的)。例如,一个声道对内的一个声道的块(例如图6(b)中的块1.2)对两个声道的之前的块(例如图6(b)中的块l.l和2.1)都有依赖关系,因此这些之前的块应当在当前块之前就已可用。参照图6(c),声道1和2配置成一个声道对。然而,在本例中,块切换是独立执行的。更具体地,声道l被分割成大小(或长度)达N/4的块,并且bs—info是"bs—info=(1)1010000"。声道2被分割成大小达N/2的块,并且bs—info是"bs_info=(1)1000000"。在图6(c)所示例子中,在每个声道间独立地进行块切换,因此并不执行块之间的交织处理。换言之,对于独立地进行了块切换的声道,声道数据可单独编排。联合声道编码联合声道编码——也被称为联合立体声——可利用立体声信号的两个声道之间或多声道信号的任何两个声道之间的相关性。尽管独立地处理两个声道&(n)和X2(n)更为直接,但利用声道之间相关性的简单方法是对差分信号进行编码d(n)=x2(n)—x!(n)而不是对xl(n)或x2(n)进行编码。可通过对个体信号加以比较,根据哪两个信号能被最高效率地编码,在每个块中的Xi(n)、X2(n)和d(n)之间进行切换。这种用切换的差分编码实现的预测在两个声道彼此非常相似的情形中是有利的。在多声道素材的情形中,可由编码器重新编排声道以指派合适的声道对。除了简单的差分编码,无损音频编解码器还支持更为复杂的利用多声道信号的任意声道之间的声道间冗余的方案。随机存取本发明涉及音频无损编码并能够支持随机存取。随机存取意味着对编码的音频信号任意部分的快速存取而无需浪费地对之前的各部分进行解码。这对采用压縮数据的査找、编辑或流送的应用是一个重要特征。为了实现随机存取,在随机存取单元内,编码器需要插入一个能在无需解码之前各帧的情况下进行解码的帧。插入的帧被称为"随机存取帧"。在此类随机存取帧中,没有任何来自之前各帧的采样可供用于预测。下面将详细描述根据本发明的用于实现随机存取的信息。参照配置句法(表6所示),与随机存取有关的信息作为配置信息发送。例如,"random—access"字段被用作指示是否允许随机存取的信息,它可用8比特表示。此外,如果允许随机存取,则该8比特"random—access"字段指定配置成一个随机存取单元的帧数。例如,当"random—access=00000000"时,不支持随机存取。换言之,当"random_access>0"时,则支持随机存取。更具体地,当"random—access=00000001"时,这指示配置成随机存取单元的帧数为1。这表示在所有的帧单元中均允许随机存取。此外,当"random_access=llll1111",这指示配置成随机存取单元的帧数为255。因此,"random_access"信息对应于当前随机存取单元内的随机存取帧与下一随机存取单元中的随机存取帧之间的距离。在本发明中,所述距离用帧数表达。一个32比特的"ra_unit_SiZe"字段被包含在比特流中并且被发送。在本发明中,"ra—imit一size"字段指示以字节计从当前随机存取帧到下一随机存取帧的大小。因此,"ra_unit—size"字段或者包含在配置句法(表6)中或者包含在帧数据句法(表7)中。配置句法(表6)还可包括指示"ra_unit_Size"信息在比特流中的存储位置的信息。该信息被表示为2比特的"ra—flag"字段。更具体地,例如,当"ra—flag=00"时,这表示"ra—unit_size"信息未存储在比特流中。当"ra_flag=01"时,这表示"ra—unit—size"信息被存储在比特流内的帧数据句法(表7)中。此外,当"rajlag=10"时,"ra—unit—size"信息被存储在比特流的配置句法(表6)。如果"ra_unit—size"信息被包含在配置句法中,则这表示"ra_unit_size"信息只在比特流上发送一次并且被等同地应用于所有随机存取单元。或者,如果"ra—unit_size"信息包含帧数据句法中,则这表示当前随机存取单元内的随机存取帧和下一随机存取单元内的随机存取帧内之间的距离。因此,针对比特流中的每一个随机存取单元发送"ra—unit_size"信息。因此,配置句法(表6)内的"random—access"字段也可被称为第一通用消息。另外,"ra—flag"字段也可被称为第二通用消息。在本发明的这个方面中,音频信号包括配置信息和多个随机存取单元,每个随机存取单元含有一个或多个音频数据帧,所述音频数据帧中的一个是随机存取帧,其中所述配置信息包括指示诸帧中的两相邻随机存取帧之间的距离的第一通用信息、以及指示每个随机存取单元的随机存取单元大小信息被存储在哪里的第二通用信息。随机存取单元大小信息指示以字节计两相邻随机存取帧之间的距离。或者,在本发明的这个方面,一种解码音频信号的方法包括接收具有配置信息和多个随机存取单元的音频信号,每个随机存取单元含有一个或多个音频数据帧,所述音频数据帧中的一个是随机存取帧;从配置信息读取第一通用信息,所述第一通用信息指示诸帧中两相邻随机存取帧之间的距离;以及从配置信息读取第二通用信息,所述第二通用信息指示每个随机存取单元的随机存取大小信息被存储在哪里,而随机存取单元大小信息指示以字节计两相邻随机存取帧之间的距离。声道配置如图3所示,音频信号包括根据本发明的多声道信息。例如,每个声道可按与音频扬声器的位置一一对应的关系来映射。配置句法(下面的表6)包括声道配置信息,它被表示为16比特的"chan—config—info"字段和16比特的"channels"字段。"chan—config—info"字段包括将声道映射到扬声器位置的信息,而16比特的"channels"字段包括指示声道总数的信息。例如,当"channels"字段等于"0"时,这表示声道对应于单声道。当"channels"字段等于"1"时,这表示这个声道对应于立体声声道中的一个。另外,当"channels"字段等于或大于"2"时,这表示这个声道对应于多声道中的一个。下面的表2示出配置成"chan—configjnfo"字段的每个比特以及与之对应的各个声道的示例。更具体地,当所发送的比特流中存在相应声道时,"chan—config—info"字段内的相应比特被置为"1"。或者,当所发送的比特流中不存在相应声道时,"chan—config—info"字段内的相应比特被置为"0"。本发明还包括指示配置句法(表6)内是否存在"chan_config—info"的信息。该信息被表示为1比特的"chan_config"标志。更具体地,"chan—config=0"指示"chan—config—info,,字段不存在。而"chan—config=1,,指示"chan—config—info"字段存在。因此,当"chan—config=0"时,这表示"chan—config—info"字段不是在配置句法(表6)内新定义的。表2:声道配置<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>如图3所示,根据本发明的音频信号包括多个声道或多声道。因此,当执行编码时,关于配置成一帧的多声道的数目的信息以及关于每个声道的采样数的信息被插入到比特流中并被发送。参照配置句法(表6),32比特的"samples"字段被用作指示配置成每个声道的音频数据采样总数的信息。此外,16比特的"frame—length"(帧长度)字段被用作指示相应帧内每个声道的采样数的信息。此外,"frame—length"字段的16比特值是由编码器所使用的值确定的,并且被称为用户定义值。换言之,用户定义值不是固定值,而是在编码过程中任意确定的值。例如,值可由编码过程的用户设定在"frame—length"字段的16比特值中。因此,在解码过程中,当通过图2所示的多路分解部件200接收到比特流时,应当首先获取每个声道的帧数。该值是根据下面所示的算法得到的frames二samples/frame—length;<formula>formulaseeoriginaldocumentpage16</formula>frlen—last=frame—length;更具体地,每个声道的帧总数是通过将经由比特流发送的"samples"字段确定的每个声道的采样总数除以由"frame—length"字段确定的每个声道的一个帧内的采样数来计算得到的。例如,当由"samples"字段确定的釆样总数恰好是由"frame—length"字段确定的每个帧内的采样数的倍数时,则该倍数值成为帧总数。然而,如果由"samples"字段确定的采样总数并非恰好是由"frame—length"字段确定的采样数的倍数,而是存在余数(或残数),则总帧数比倍数值增加"l"。此外,最末帧的采样数(frlen一last)被确定为该余数(或残数)。这表示仅最末帧的采样数与其之前的帧不同。通过如上所述地在编码器和解码器之间定义一套标准化的规则,编码器就可自由地确定并发送每个声道的采样总数("samples"字段)以及每个声道的一个帧内的采样数("frame—length"字段)。此外,解码器可通过对所发送信息上使用上述算法而精确地确定要用于解码的每个声道的帧数。线性预测在本发明中,应用线性预测以实现无损音频编码。图1所示的预测器160包括至少一个或多个滤波器系数以从之前的采样值预测当前的采样值。随后,第二熵编码部件180对与预测值和原始值之差相对应的残差值执行熵编码。另外,应用于预测器160的每个块的预测器系数值是作为最优值从系数估算部件120选择的。此外,预测器系数值由第一熵编码部件140进行熵编码处理。已由第一熵编码部件140和第二熵编码部件180编码的数据作为比特流的一部分由多路复用部件190插入且随后被发送。下面将详细描述根据本发明的执行线性预测的方法。用FIR滤波器的预测线性预测在许多应用场合中被用于实现语音和音频信号处理。在下文中,基于有限冲激响应(FIR)滤波器描述预测器160的示例性操作。然而,本例明显不是对本发明范围的限制。时间离散信号x(n)的当前采样可根据之前的采样x(n—k)大致地预测出。预测由以下方程式给出。苴由k县顿舰l喪的阶粉..如果预测的采样接近于原始采样,则如下所示的残数比x(n)本身的变化更小,因此能更有效地编码e(n)。从输入采样的片段估算预测器系数然后再对该片段进行滤波处理的程序被称为前向自适应。在这种情况下,应当发送这些系数。另一方面,如果是从之前已处理的片段或采样(例如从残差)估算系数,则称为后向自适应。后向适应程序的优点在于不需要发送系数,因为估算系数所需的数据对于解码器也是可用的。10阶左右的前向自适应预测方法被广泛地用于语音编码,并且可同样适用于无损音频编码。大多数前向自适应无损预测方案的最大阶数仍然相当小,例如K^32。一个例外是超级音频CD专用的1比特无损编解码器,它使用高达128的预测阶数。另一方面,具有几百个系数的后向自适应FIR滤波器通用于许多领域,例如声道均衡和回波抵消。这些系统大多数是基于LMS算法或其变型的,这些算法也被推荐用于无损音频编码。这类具有高阶数的基于LMS的编码方案是可行的,因为并非必须要将预测器系数作为辅助信息发送,因此它们的数目对数据速率不产生影响。然而,后向自适应的编解码器的缺点在于必须在编码器和解码器两者中作出自适应,这使解码器明显比前向自适应情况下的解码器更为复杂。前向自适应预测作为本发明的示例性实施方式,前向自适应预测将作为一个示例在本文的描述中给出。在前向自适应线性预测中,一般使用自相关方法或协方差方法由系数估算部件120估算每个块的最优预测器系数hk(在残差方差最小化的意义上)。使用传统的Levinson-Durbin算法的自相关方法的额外优点是提供了一种迭代式自适应调整预测器阶数的简单方法。此外,该算法本身也计算相应的部分自相关系数。前向自适应预测的另一方面是确定合适的预测阶数。阶数增大使预测误差的方差减小,这导致残差的比特率Rs变小。另一方面,预测器系数的比特率R。随着要被发送的系数的数目而提高。因此,任务是找到使总比特率最小化的最优阶数。这可通过关于预测阶数K使下面的等式最小化来表达其中K是预测阶数。由于预测增益随阶数升高而单调上升,因此Re随着K值而下降。另一方面,由于要发送的系数的数目增加,因此Rc随K值单调上升。搜索最优阶数可由系数估算部件120高效率地执行,所述系数估算部件120用递归方式确定阶数递增的所有预测器。对于每个阶数,计算完整的一组预测器系数。另外,可推导出相应残差的方差o/,从而得到残差的预期比特率的估算值。在每次迭代过程中——即针对每个预测阶数——在确定各系数的比特率的同时还可确定总比特率。最优阶数在总比特率不再减小的点找到。尽管从上述方程式可以清楚知道系数比特率对总比特率有直接的影响,但是,Rc缓慢的增长也使得Rt一的最小值移至较高的阶数(其中Re同样较小),这可产生更好的压縮。因此,预测器系数的高效率但仍准确的量化在实现最大压縮中发挥着重要作用。预测阶数在本发明中,确定了预测阶数K,预测阶数K决定用于进行线性预测的预测器系数的数目。预测阶数K也是由系数估算部件120予以确定。在本发明中,关于所确定的预测阶数的信息被包含在比特流中并随后被发送。配置句法(表6)包括与预测阶数K有关的信息。例如,1比特至10比特的"max一order"字段对应于指示最大阶数值的信息。1比特至10比特的"max—order"字段的最大值是1(=1023(例如10比特)。作为与预测阶数K有关的另一信息,配置句法(表6)包括l比特的"adapt—order"字段,它指示每个块是否存在最优阶数。例如,当"adapt—order=1"时,应当给每个块提供最优阶数。在block—data句法(表8)中,最优阶数作为1比特至10比特的"叩t—OTder"字段提供。此外,当"adapt—order=0"时,则不对每个块提供单独的最优阶数。在这种情况下,"max—order"字段即成为应用于所有块的最终阶数。最优阶数(opt—order)是基于max—order字段值和相应块的大小(NB)确定的。更具体地,例如当max—order被确定为IU二10并且"adapt—order=l"时,则可考虑相应块的大小确定每个块的opt—order。在某些情况下,大于max—order(K,=10)的opt—order值是可能的。特别地,本发明涉及较高的预测阶数。根据本发明的实施方式,在没有分级块切换的情形中,在长和短的块长度之间可能是4倍因数的关系(例如4096与1024或8192与2048)。另一方面,在采用了分级块切换的实施方式中,这个因数可以提高(例如高达32),以使范围更大(例如从16384下至512或甚至在高采样率下从32768至1024)。在执行了分级块切换的实施方式中,为了更好地使用非常长的块,可采用更高的最大预测阶数。最大阶数可以是^=1023。在这些实施方式中,K皿可由块长度Nb界定,例如Kmax<NB/8(例如当NB=2048时,Kmax=255)。因此,使用Kmax=1023需要至少Nb二8192的块长度。在这些实施方式中,配置句法(表6)中的"max—order"字段可高达IO比特而block_data句法(表8)中的"opt_order"字段同样可高达10比特。具体块中的实际比特数可取决于一个块所允许的最大阶数。如果块是短块,则本地预测阶数可小于全局预测阶数。在本发明中,本地预测阶数是通过考虑相应块长度NB确定的,而全局预测阶数是通过配置句法中的"max—order"KMX确定的。例如,如果IC1023,但Nb二2048,则由于本地预测阶数为255,因此"opt—order"字段被确定为8比特(而不是10比特)。更具体地,可基于下面的方程式确定opt—order:opt—order:opt—order=min(全局预测阶数,本地预测阶数);另外,全局和本地预测阶数可通过下面的方程式确定全局预测阶数二ceil(log2(最大预测阶数+l))本地预测阶数二1^乂(。6:11(1(^2((吡>>3)—1)),1)在这些实施方式中,预测了来自一个声道的细分块的数据采样。使用之前块的最末K个采样预测当前块的第一采样。K值是基于从上述方程式推导出的opt—order确定的。如果当前块是声道的第一个块,则不使用来自之前块的采样。在这种情形中,采用的是渐进阶数预测。例如,假设相应块的opt—order值为1(=5,则该块中的第一采样不执行预测。该块的第二采样使用该块的第一采样执行预测(如同K二1),该块的第三采样使用该块的第一采样和第二采样执行预测(如同1(=2)等。因此,从第六采样开始以及对于这之后的采样,根据K=5的opt—order执行预测。如上所述,预测阶数从K=l渐进地增加至K=5。当在随机存取帧中使用时,上述渐进阶数型预测是非常有利的。由于随机存取帧对应于随机存取单元的基准帧,因此随机存取帧不是通过使用之前的帧采样执行预测。即,这种渐进预测技术在随机存取帧的开头处就可应用。预测器系数的量化上述预测器系数在图1的量化部件130中量化。由于即便很小的量化误差也会导致大大偏离最优预测滤波器所需的频谱特性,因此预测系数hk的直接量化对发送而言不是非常高效率的。为此,预测器系数的量化是基于可由系数估算部件120计算得到的部分自相关(反射)系数rk。例如,如上所述,系数估算部件120是使用传统Levinson—Durbin算法处理的。头两个部分自相关系数(相应地为Y,和Y2)通过使用下面的函数被量化64(-而其余系数是使用简单的7比特的均匀量化器量化的:在所有情况下,所得量化值ak被约束在范围[一64,63]内。熵编码如图1所示,在本发明中应用了两种类型的熵编码。更具体地,第一熵编码部件140被用于编码上述预测器系数。另外,第二熵编码部件180被用来编码上述音频原始采样和音频残余采样。在下文中将详细说明这两种熵编码。预测器系数的第一熵编码相关技术的Rice码被用作根据本发明的第一熵编码方法。例如,量化系数&的发送是通过生成残余值执行的Sk=ak—offse"U,这些残差值进而是通过使用第一熵编码部件140——例如用Rice代码方法来编码的。该过程中使用的Rice代码的相应偏移和参数可从以下表3、4和5所示的诸组中的一个以全局方式进行选择。表索引(即2比特的"coef—table")在配置句法(表6)中指出。如果"coef—table=ll",则这表示未应用熵编码,并且量化的系数各自以7比特发送。在这种情形中,偏移始终是一64以获得被约束于的无符号值5k二ak+64。相反,如果"coeff—table=00",则选择下面的表3,而如果"coeff—table=01",则选择下面的表4。最后,如果"coeff—table=10",则选择表5。当接收到图2的解码器中的经量化的系数时,第一熵解码部件220通过使用将余数值Sk与偏移结合以生成部分自相关系数ak的量化索引的过程来重建预测器系数ak=Sk+offsetk其后,使用下面的方程式执行头两个系数(Yi和Y2)的重建Par2=j/22QJ=—r(2);其中2。表示重构的系数的整数表示所需的恒量(Q=20)比例因数,而r(.)是根据经验确定的映射表(未示出,因为映射表会根据实现而变化)。因此,是根据采样频率提供用于进行第一熵编码的这三种类型的系数表。例如,采样频率可被分成48kHz、96kHz和192kHz。这里,三个表3、4、5中的每一个分别提供给每种采样频率。可对整个文件选择三个不同的表中的一个,而不是使用单个表。一般应当根据采样率来选择表。对于44.lkHz的素材,本发明的申请人推荐使用48kHz表。然而,一般而言,也可按其它准则来选择表。表3:用于编码量化系数(48kHz)的Rice码参数<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>表4:用于编码量化系数(96kHz)的Rice码参数<table>tableseeoriginaldocumentpage23</column></row><table>表5:用于编码量化系数(192kHz)的Rice码参数<table>tableseeoriginaldocumentpage24</column></row><table>残数的第二熵编码本发明包含应用于图1的第二熵编码部件180的编码方法的两种不同的模式,这将在下面予以详细说明。在简单模式中,使用Rice代码对残差值e(n)进行熵编码。对于每个块,或者可使用同一Rice代码编码所有的值,或者可将块进一步分成四个部分,每个部分用一不同的Rice代码编码。如图1所示,发送所应用的代码的索引。由于存在不同的方法确定给定的一组数据的最优Rice代码,因此由编码器根据残差的统计结果选择合适的代码。或者,编码器可利用BGMC模式使用更为复杂和高效率的编码方案。在BGMC模式中,残差的编码是通过将分布划分成两个类别实现的。这两种类型包括属于分布的中心区域Ie(n)I〈e^的残差,以及属于其尾部的残差。尾部的余数仅仅是被重新居中(re-centered)(即对于e(n)>emax,提供et(n)=e(n)—e,)并使用如上所述的Rice代码编码。然而,为了编码处于分布中心的残差,BGMC首先将残差分成LSB和MSB分量,随后BGMC使用块Gilbert—Moore(算术)代码编码MSB。最后,BGMC使用直接固定长度代码发送LSB。可以对参数e,和直接发送的LSB的数目加以选择,使它们仅些微地影响这种方案的编码效率,同时使编码的复杂度明显降低。根据本发明的配置句法(表6)和block—data句法(表8)包括与Rice代码和BGMC代码的编码有关的信息。现在对这种信息进行详细说明。配置句法(表6)首先包括一个1比特的"bgrac—mode"字段。例如,"bgmc一raode"=0表示Rice代码,"bgmc—mode"=1表示BGMC代码。配置句法(表6)还包括一个1比特的"sb一part"字段。"sb一part"字段对应于与将块分割成子块并对经分割的子块进行编码的方法有关的信息。这里,"sb—part"的意义根据"bgmc—mode"字段的值而改变。例如,当"bgmc—mode=0"时,即当应用Rice代码时,"sb—part=0"表示块不被分割成子块。或者,"sb—part=l"表示以l:4子块分割比分割块。或者,当"bgmc—mode=1"时,即当采用BGMC代码时,"sb—part=0"表示以1:4子块分割比分割块。或者,"sb一part^l"表示以1:2:4:8子块分割比分割块。与包含在配置句法(表6)中的信息相对应的每个块的block—data句法(表8)包括0比特至2比特的可变"ec一sub"字段。更具体地,"ec一sub"字段指示存在于实际相应块中的子块的数目。这里,"ec一sub"字段的意义根据配置句法(表6)内的"bgmc—mode"字段+"sb一part"字段的值而变化。例如,"bgmc—mode+sb—part=0"表示Rice代码并不配置该子块。这里,"ec一sub"字段是个0比特字段,这表示不包含任何信息。除此之外,"bgmc—mode+sb—part=1"表示使用了Rice代码或BGMC代码来以1:4的比率将该块分割成若干子块。这里,只有1比特被指派给"ec_sub"字段。例如,"ec—subi"指示一个子块(即该块没有分割成多个子块),而"ec^sub^"指示配置了4个子块。此外,"bgmc—mode+sb—part=2"表示使用了BGMC代码来以1:2:4:8的比率将该块分割成若干子块。这里,2比特被指派给"ec_sub"字段。例如,"ec—sub=00"指示一个子块(即该块没有分割成多个子块),而"ec—sub=01"指示2个子块。另外,"ec—sub=10"指示4个子块,而"ec—sub=ll"指示8个子块。如上所述定义在每个块内的子块使用差分编码方法由第二熵编码部件180进行编码。下面描述使用Rice代码的一个示例。对于残差值的每个块,或者可使用同一Rice代码编码所有值,或者如果在配置句法中"sb—part"字段被设置,则该块可被分割成四个子块,每个编码的子块具有一不同的Rice代码。在后一种情况下,块数据句法(表8)中的"ec—sub"字段指示是使用一个块还是四个块。尽管第一子块的参数s[i二O]或者用4比特(分辨率《16比特)或者用5比特(分辨率〉16比特)直接发送,但仅发送下列参数s[iX)]的差分(s[i]—s[i一l])。这些差分还使用适当选择的Rice代码再行编码。在这种情况下,差分使用的Rice代码参数具有值"0"。句法根据本发明的实施方式,包含在音频位流中的各种信息的句法示出于下表中。表6示出音频无损编码的配置句法。这种配置句法可形成周期性地置于比特流中的头部,可形成每个帧的帧头等。表7示出一种帧一数据句法,而表8示出一种块一数据句法。表6:配置语法<table>tableseeoriginaldocumentpage27</column></row><table>表7:Frame_data(帧_数据)语法<table>tableseeoriginaldocumentpage28</column></row><table><table>tableseeoriginaldocumentpage29</column></row><table><table>tableseeoriginaldocumentpage30</column></row><table>压縮结果下面,将无损音频编解码器与两种最流行的无损音频压縮程序——即开放式源代码编解码器FLAC和Monkey氏音频(MAC3.97)作比较。这里,开放式源代码编解码器FLAC使用前向自适应预测,而Monkey氏音频(MAC3.97)是作为压縮方面的当前技术发展水平的算法使用的后向自适应编解码器。这两种编解码器均在有提供最大压縮的选项(即flac—8和mac—c4000)的情况下运行。编码器的结果是针对中等压縮等级(其预测阶数限制于K—60)以及最大压縮等级(K_1023)来确定的,两者均具有500ms的随机存取。测试是在有1024MB内存的1.7GHz奔腾-M系统上进行的。测试包括釆样率为48、96和192kHz、分辨率为16和24比特的将近lGB的立体声波形数据。压縮率下面,压縮率被定义为C=[(压縮的文件大小)/(原始文件大小)]*100%其中较小的值指示较好的压縮。所检测的音频格式的结果示于表9(FLAC编码解码器不支持192kHz的材料)。表9:不同音频格式的平均压縮率比较(kHz/比特)格式FLACMACALS中值ALS最大值48/1648.645.345.544.748/2468.463.263.362.796/2456.748.146.546.2192/24—39.137.737.6累计—48.948.347.8这些结果显示,最高等级的ALS在所有格式上性能都胜过FLAC和Monkey氏音频,但对于高清晰度素材(g卩,96kHz/24比特及以上)尤甚。即使在中间等级,ALS也提供最好的总压縮性。复杂度不同编解码器的复杂度强烈地取决于实际实现,尤其是编码器的实现。如上所述,本发明的音频信号编码器仍在发展之中。因此,我们将我们的分析限于解码器——简单的C语言代码实现而不作进一步的优化。压縮的数据由当前最佳的编码器实现生成。图10中示出了对在不同复杂度等级上编码的各种音频格式进行实时解码所用的平均CPU负荷。即使是对于最大复杂度,解码器的CPU负荷也只在20_25%左右,这进而表示基于文件的解码比实时解码快至少4一5倍。表10:根据音频格式(kHz/比特)和ALS编码器复杂度的平均CPU负载(在1.7GHz奔腾-M上的百分比)格式ALS低ALS中值ALS最大值48/161.64.918.748/241.85.819.696/243.612.023.8192/246.722.826.7编解码器被设计成可提供大范围的复杂度等级。尽管最大等级以最慢编码和解码速度为代价实现最高压縮,但较快的中间等级仅些微地降低压縮性,解码的复杂度却显著地低于最大等级(即对于48kHz速材将近5y。的CPU负荷)。使用低复杂度等级(即K—15,Rice编码)相比中间等级仅使压縮性降低1-1.5%,但解码器复杂度进一步降低3倍(即对于48kHz的素材而言低于2y。的CPU负荷)。因而,音频数据甚至可以在计算能力很低的硬件上完成解码。尽管编码器复杂度既会因较高的最大阶数也会因更复杂的块切换算法而增加(根据实施方式)而增大,但解码器会受到较高平均预测阶数的影响。前面的实施方式(例如分级块切换)和优点仅为示例性的,不应被解释为是对所附权利要求书的限制。本领域技术人员会明白,上述原理可应用于其它装置和方法。许多选择、修改和变化对本领域内技术人员而言是显而易见的。工业应用性本领域内技术人员可以理解,可对本发明作出各种修改和变化而不脱离本发明的精神或范围。例如,本发明的诸方面和实施方式很容易在如有损音频信号编解码器等的另一种音频信号编解码器中采用。因此,本发明旨在涵盖本发明的所有这些修改和变化。权利要求1.一种处理音频信号的方法,包括将音频信号的一个帧中的至少一个声道再分成多个块,诸个块中的至少两个块具有不同的长度,并且帧的长度被确定在预定值内;以及产生指示将声道再分成多个块的信息。2.如权利要求1所述的方法,其特征在于,所述再分步骤根据再分等级再分声道,所述再分等级具有一个以上的阶级,每个阶级关联于不同的块长度。3.如权利要求2所述的方法,其特征在于,再分等级的上位阶级关联于与下位阶级关联的块长度的两倍的块长度。4.如权利要求2所述的方法,其特征在于,再分步骤再分上位阶级的一个块以获得下位阶级的两个块。5.如权利要求2所述的方法,其特征在于,如果声道具有长度N,则再分步骤将声道再分成多个块,以使每个块具有N/2、N/4、N/8、N/16和N/32其中之一的长度。6.如权利要求2所述的方法,其特征在于,再分步骤将声道再分成多个块以使每个块的长度等于N/(nO1=1,2,……p中的一个,其中N是声道的长度,m是大于或等于2的整数,而p表示在再分等级中的阶层数。7.如权利要求6所述的方法,其特征在于,m二2并且p二5。8.如权利要求2所述的方法,其特征在于,产生步骤产生信息以使信息的长度取决于再分等级中的阶级数。9.如权利要求2所述的方法,其特征在于,产生步骤产生信息以使信息包括多个信息比特,并且所述信息比特指示将声道再分成若干个块。10.如权利要求9所述的方法,其特征在于,每个信息比特关联于再分等级中的一个阶级并且在相关阶级关联于的一个块,每个信息比特指示关联的块是否被再分。11.如权利要求io所述的方法,其特征在于,如果信息比特具有值l,则再分关联的块,并且如果信息比特具有值O,则关联的块不被再分。12.如权利要求l所述的方法,其特征在于,还包括发送所述信息。13.如权利要求l所述的方法,其特征在于,还包括基于之前的数据采样预测声道中的当前数据采样,在预测步骤中使用的之前的数据采样数作为预测阶数;以及基于预测的数据采样获得当前数据采样的残数。14.如权利要求13所述的方法,其特征在于,当之前的数据采样可得时,所述预测步骤渐进地增加预测阶数至希望的预测阶数。15.如权利要求14所述的方法,其特征在于,没有之前数据帧的最初数据采样的预测阶数为零,而预测步骤产生零作为预测的最初数据采样;并且获得步骤实际上不改变作为预测最初数据采样结果的值为零的最初数据采样。16.如权利要求14所述的方法,其特征在于,还包括基于最大允许预测阶数和块长度为每个块确定希望的预测阶数。17.如权利要求13所述的方法,其特征在于,还包括基于最大允许预测阶数和块长度为每个块确定最佳预测阶数。18.如权利要求17所述的方法,其特征在于,所述确定步骤包括基于最大允许的预测阶数确定全局预测阶数;基于块长度确定本地预测级数;以及选择全局预测阶数和本地预测阶数的最小值作为最佳预测阶数。19.如权利要求13所述的方法,其特征在于,如果帧是随机存取帧,即被如此编码的帧,以使得在解码所述帧时不需要用到之前帧,则当仅来自随机存取帧的之前数据采样变得可用时,所述预测步骤渐进地增加预测阶数至希望的预测阶数。20.如权利要求1所述的方法,其特征在于,所述帧长度是由16比特表示的用户定义值。21.如权利要求l所述的方法,其特征在于,还包括将帧长度添加至音频信号作为音频信号的配置信息的一部分。22.—种编码音频信号的方法,包括将音频信号的一个帧中的至少一个声道再分成多个块,其中至少两个块具有不同的长度并且帧长被确定在预定值内;产生指示将声道再分成若干个块的信息;以及编码多个块以产生包含信息的压縮比特流。23.—种解码音频信号的方法,包括接收具有至少一个声道的音频数据帧,所述声道被再分成多个块,其中至少两个块具有不同的长度。从音频信号获得指示将声道再分成若干块和帧长度的信息;以及基于获得的信息解码声道。24.—种编码音频信号的装置,包括编码器,所述编码器被配置成将音频信号的一个帧中的至少一个声道再分成多个块,其中至少两个块具有不同的长度并且帧长被确定在预定值范围内,并且所述编码器产生指示将所述声道再分成若干块的信息并编码多个块以产生包含信息的压縮比特流。25.—种解码音频信号的装置,包括解码器,所述解码器被配置成接收具有至少一个声道的音频数据帧,所述声道被再分成多个块,其中至少两个块具有不同的长度,所述解码器从音频信号获得指示将声道再分成若干块和帧长的信息,并且所述解码器基于所获得的信息解码声道。全文摘要在一个实施例中,音频信号的一个帧中的至少一个声道被再分成多个块以使其中至少两个块具有不同的长度。帧长度是用户定义值并且被确定在预定值范围内。此外,产生指示将声道再分成多个块的信息。文档编号G10L19/00GK101218629SQ200680025139公开日2008年7月9日申请日期2006年7月10日优先权日2005年7月11日发明者T·利伯成申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1