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

文档序号:7638588阅读:202来源:国知局

专利名称::处理音频信号的装置和方法
技术领域
:本发明涉及一种处理音频信号的方法,更具体地涉及一种编码和解码音频信号的方法和装置。
背景技术
:过去曾经以不同方法实现了音频信号的存储和重放。例如,音乐和语音业已通过留声技术(例如唱盘播放机)、磁技术(例如卡式磁带)和数字技术(例如光盘)来记录和保存。随着音频存储技术的发展,需要克服许多难题来优化音频信号的质量和可存储性。为了音乐信号的存档和宽带传输,无损重建成为比借助诸如MP3或AAC等在MPEG标准中定义的感知编码高效率压縮更为重要的特征。虽然DVD音频和超级CD音频包括专用的无损压縮方案,但是在内容持有者和广播公司当中需要一种开放和综合性的压縮方案。响应于这种需要,一种新的无损编码方案已经成为MPEG-4音频标准的延伸。无损音频编码法由于原始信号的完美重建而实现了没有任何质量损失的数字音频数据压縮。
发明内容本发明涉及处理音频信号的方法。在一个实施例中,声道映射信息被加至音频信号的配置信息。该声道映射信息指示音频信号中的每个声道被映射到再现装置中的哪个扬声器。例如,声道映射信息包括多个比特,其中每个比特关联于一个扬声器并指示在关联的扬声器的音频信号中是否存在声道。在另一实施例中,将指示比特位添加于配置信息以指示配置信息中是否包含声道映射信息。在又一实施例中,具有配置信息和多个声道的音频信号被接收。声道映射信息被读取自配置信息。声道映射信息指示音频信号中的每个声道被映射至再现装置中的哪个扬声器。基于声道映射信息处理诸个声道。例如,声道映射信息可包括多个比特,每个比特关联于一个扬声器并指示在关联的扬声器的音频信号中是否存在声道。本发明还涉及编码音频信号的方法和装置以及解码音频信号的方法和装置。包括于此以提供对本发明的进一步理解,并被结合在本申请内且构成其一部分的附图示出本发明的实施例,其与说明书一起用来解释本发明的原理。在附图中图1是根据本发明一个实施例的编码器的示例图。图2是根据本发明一个实施例的解码器的示例图。图3是根据本发明一个实施例的压縮的M声道文件的比特流结构的示例图。图4是根据本发明一个实施例的分层块切换方法的理念图的示例图。图5是块切换例和相应的块切换信息编码的示例图;图6是根据本发明实施例的多个声道的块切换方法的示例图。具体实施方式下面将详细参考本发明的较佳实施例,其具体例子示于附图中。不管在何处,所有附图中相同的参考标号被用来表示相同或相似的部分。在阐述本发明前,应当注意本发明中公开的多数术语对应于业内公知的通常术语,但某些术语已由申请人根据需要选择并且将在本发明后面的描述中予以公开。因此,基于它们在本发明中的含义理解由申请人定义的术语是较佳的。在无损音频编码方法中,由于编码进程必须可以完美逆转而没有信息损失,因此编码器和解码器两者的若干部件必须以确定性方式予以实现。编解码器结构图1是根据本发明的编码器1的示例图。分割部件100将输入的音频数据分割成若干帧。在一个帧中,每个声道还可进一步被细分成若干音频采样块以做进一步处理。缓存器iio存储由分割部件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将编码的预测残数、代码索引、编码的部分自相关系数残数值和其它附加信息多路复用以形成压縮的比特流。编码器l还提供循环冗余校验(CRC)校验和,它主要被提供给解码器以校验解码的数据。在编码器方面,CRC用来保证压縮的数据能被无损地解码。其它编码选项包括柔性块切换方案、随机存取和联合声道编码。编码器1可使用这些选项提供若干具有不同复杂度的压縮级别。联合声道编码利用立体声声道或多声道信号之间的相关性。这可通过在某些段中编码两声道之间的差来实现,在这些段中能够比原始声道之一更为有效地编码这种差。这些编码选项将在参数根据本发明的示例性解码器的说明之后更为详细地予以说明。图2是根据本发明的解码器2的示例图。更详细地说,图2示出由于不必执行任何调整因而复杂度明显低于编码器的无损音频信号解码器。多路分解部件200接收音频信号并将数字音频数据块的编码的预测残数、代码索引、编码的部分自相关系数残数值和其它附加信息多路分解。第一熵解码部件210使用由熵参数定义的熵代码以解码部分自相关系数残数值并通过将偏移值加上解码的部分自相关系数残数值计算一组部分自相关系数值;其中偏移值和熵参数被选自一个表,该表是由解码器从基于数字音频数据块的采样速率的多个表中选择的。第二熵解码部件220使用代码系数解码多路分解的编码的预测残数。系数转换部件230将熵解码的自相关系数值转换成LPC系数。预测器240使用LPC系数估算数字音频数据块的预测残数。加法器250将解码的预测残数与估算的预测残数相加以获得数字音频数据的原始块。组装部件260将解码的块数据组装成帧数据。因此,解码器2将编码的预测残数和自相关系数残数解码,将自相关系数残数值转换成LPC系数,并运用逆预估滤波器以计算无损重构信号。解码器2的计算强度取决于由编码器1选择的预测阶数。在多数情形下,实时解码即使在低端系统中也是可行的。图3是根据本发明的包括多个声道的(例如M声道)压縮音频信号的比特流结构的示例图。比特流由包括多个声道(例如M声道)的至少一个音频帧构成。比特流配置语法(见下面的表6)中的"channels"字段指示声道数。使用根据本发明的块切换方案将每个声道再分成多个块,这将在后面详细说明。每个再分块具有不同的大小并包括根据图l编码的编码数据。例如,一个再分块中的编码数据包含代码索引、预测阶数K、预测器系数和编码的残数值。如果使用声道对之间的联合编码,则所有声道的块分割是相同的,并且这些块以交织方式被存储。比特流配置语法(表6)中的"js—stereo"字段指示联合立体声(声道差)是开启的还是关闭的,而frame_data语法(见下面的表7)中的"js—switch"字段指示是否选择联合立体声(声道差)。否则,每个声道的块分割是独立的。下面将详细参照附图和后面的语法详细说明前面提到的块切换、随机存取、预测和熵编码选项。块切换本发明的一个方面涉及在使用实际编码方案前将每个声道再分成多个块。下面,根据本发明的块分割(或再分)方法被称为"块切换方法"。分层块切换图4是根据本发明的分层块切换方法的理念图的示例图。例如,图4示出将一个声道按分层再分成32个块的方法。当在单个帧中提供多个声道时,每个声道被再分(或分割)成高达32个块,并且每个声道的再分块构成一个帧。因此,根据本发明的块切换方法由图1所示的分割部件100执行。此外,如上所述,预测编码和熵编码执行于再分块单元。总地来说,传统音频无损编码(ALS)包括相对简单的块切换方案。N个采样的每个声道或者使用一个全长块(NB=N)或者四个长度块NB=N/4(例如1:4切换)编码,其中相同的块分割应用于所有声道。在某些情形下,该方案具有某些局限性。例如,尽管只有l:l或l:4切换是可行的,然而不同的切换(例如1:2、h8及其组合)在某些情形下是更有效的。另外在传统ALS中,对所有声道以相同方式执行切换,尽管不同声道可能得益于不同的切换(如果声道不是相关的则尤为如此)。因此,根据本发明实施例的块切换方法提供相对灵活的块切换方案,其中一个帧的每个声道按分层被再分成多个块。例如,图4示出能分分层地再分成高达32个块的声道。在根据本实施例的一个声道中,NB=N、N/2、N/4、N/8、N/16和N/32的任意块组合是可行的,只要每个块是通过双倍长度的高层块的再分产生的。例如,如图4中的例子所示,尽管至N/4+N/2+N/4的分割是不可行的,然而至N/4+N/4+N/2的分割是可行的(例如下面在图5(e)和图5中示出的块切换实例)。换句话说,声道被分成多个块以使每个块的长度等于N/(mi)中的一个值,其中i二l,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时,这表示块切换处理已按分层执行了1次,故将其称为1层块切换。最后,当最小块大小为Ns二N时,这表示尚未执行块切换处理,故将其称为0层块切换。在本发明的实施例中,指示块切换层的信息被称为第一块切换信息。例如,第一块切换信息可由表6中的语法中的2比特字段"block—switching"表示,这将在后面的处理中予以说明。更具体地说,"block一switching二OO"表示层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的任何一个),贝lj"bs—info"由8比特表示。如果"block—switching-10"(表示层4),则"bs—info"由16比特表示。换句话说,高达4层的块切换结果可用16比特表示。此外,如果"block—switching=11"(表示层5),贝lj"bs_info"表示为32比特。换句话说,高达5层的块切换结果可用32比特指示。最后,如果"block—switching=00"(表示尚未进行块切换),则不发送"bs—info"。这表示一个声道构成一个块。分配给第二块切换信息的总比特数是基于第一块切换信息的层值而确定的。这可能会减小最终的比特率。在下面的表1中简述第一块切换信息和第二块切换信息之间的关系。表1:块切换层最大层数最小NB"bs_info"的字节数0("block—swithing二00")N01("blockswithing=01")N/21(=8比特)2("block—swithing=01")N/41(=8比特)3(,,blockswWiing=01,,)薦1(=8比特)4("block—swithing二10")N/162(=16比特)5("block—swhhing=11")N/324(=32比特)下面,将详细描述配置(或映射)第二块切换信息(bs—info)中每个比特的的方法的一个实施例。bsjnfo字段根据上述实施例可包括高达4个字节。关于层1至层5的比特映射可以是[(0)1223333444444445555555555555555]。可预留第一比特以指示独立或同步块切换,这将在后面的独立/同步块切换章节更为详细地说明。图5(a)—5(f)示出一个声道的不同块切换实例,其中发生3层块切换。因此,在这些实例中,最小块长度为NB=N/8,并且bs—info由一个字节构成。从最大块长度Nb二N幵始,如果块被进一步再分,则设定bs一info比特。例如,在图5(a)中,根本不存在再分,因此"bs一info"为(O)OOO0000。在图5(b)中,帧被再分((0)1……)而长度为N/2的第二块被进一步分成((0)101……)两个长度块N/4;因此bsjnfo为(O)IOIO0000。在图5(c)中,帧被再分((O)l……),并且只有长度N/2的第一块被进一步分割成((0)110……)长度为N/4的两个块;因此"bs一info"为(O)llOO0000。在图5(d)中,帧被再分((O)l……),长度为N/2的第一块和第二块被进一步分割((0)U1……)成长度为N/4的两个块,并且只有长度为N/4的第二块被进一步分割((0)11101……)成长度为N/8的两个块;因此"bs一info"为(O)lll0100。如上所述,图5(e)和5(f)中的实例表示不允许块切换的情形,这是因为图5(e)中的N/2块和图5(f)中的第一个N/4块无法通过再分前一层的块而获得。独立/同步块切换图6(a)—6(c)是根据本发明实施例的块切换的示例图。更具体地说,图6(a)示出尚未对块1、2和3执行块切换的实例。图6(b)示出一个实例,其中两个声道(声道1和2)构成一个声道对,并且在声道1和声道2中同步地执行块切换。交织也被应用于本例中。图6(c)示出一个实例,其中两个声道(声道1和2)构成一个声道对,并且声道1和声道2的块切换独立地进行。这里,声道对指两个任意的音频声道。关于哪些声道被分组声道对的判决可由编码器自动作出或由用户手动作出(例如L和R声道、Ls和Rs声道)。在独立块切换中,尽管在所有声道中每个声道的长度可以是相同的,然而可对每个声道独立地执行块切换。即,如图6(c)所示,声道以不同方式被分成两个块。如果一个声道对的两个声道彼此相关并且使用差编码,则声道对的两个声道被同步地块切换。在同步块切换中,声道以相同方式被块切换(即被分成若干个块)。图6(b)示出这样的一个实例,并进一步示出这些块可以被交织。如果声道对的两个声道不彼此相关,则差编码是无益的,因此不需要同步地块切换诸个声道。相反,更适合独立地切换声道。此外,根据本发明的另一实施例,可将所述独立或同步块切换方法应用于声道数大于或等于3的多声道组。例如,如果多声道组的所有声道彼此相关,则可以同步切换多声道组的所有声道。另一方面,如果多声道组的所有声道不彼此相关,则可以独立切换多声道组的每个声道。此外,"bsjnfo"字段被用作指示块切换结果的信息。另外,"bs—info"字段也被用作指示对构成声道对的每个声道是否已独立执行或同步执行块切换的信息。在这种情形下,如上所述,可使用"bsjnfo"字段中的特定比特(例如第一比特)。例如,如果声道对的两个声道彼此独立,则"bs一info"字段的第一比特被置为"1"。另一方面,如果声道对的两个声道彼此同步,贝ij"bs-info"字段的第一比特被置为"0"。下面,将详细说明图6(a)、6(b)和6(c)。参照图6(a),由于没有声道执行块切换,因此不产生关联的"bsjnfo"。参照图6(b),声道1和2构成一个声道对,其中两个声道彼此同步并且同步执行块切换。例如,在图6(b)中,声道1和声道2被分割成长度为N/4的若干块,这些块都具有相同的bsjnfo"bs—info=(Q)1010000"。因此,对每个声道对发送一个"bs—info",这导致比特率降低。此外,如果声道对是同步的,则声道对中的每个块需要彼此交织。这种交织是有益的(或有利的)。例如,一个声道对中的一个声道的块(例如图6(b)中的块1.2)依赖于来自两声道的之前的块(例如图6(b)中的块1.1和2.1),并因此这些之前的块可在当前块之前获得。参照图6(c),声道1和2构成一个声道对。然而,在本例中,块切换是独立执行的。更具体地说,声道l被分割成大小(或长度)高达N/4的块并具有"bs—info=(丄)1010000"的bs—info。声道2被分割成大小高达N/2的块并具有"bs—info=(I)1000000"的bs—info。在图6(c)所示例子中,在每个声道间独立地进行块切换,并因此不执行块之间的交织处理。换句话说,对于具有独立切换的块的声道,可独立地配置声道数据。联合声道编码联合声道编码一一也被称为联合立体声一一利用立体声信号的两声道之间或多声道信号的任何两个声道之间的相关性。尽管是独立地直接处理两声道)d(n)和x2(n),然而利用声道之间相关性的简单方法是编码差信号d(n)二X2(n)—x(n)每个块中的x,(n)、X2(n)和d(n)之间的切换可通过比较各信号根据哪两个信号能被最有效率地编码来实现,而不是xl(n)或x2(n)。这种用切换的差编码实现的预测在两个声道彼此非常相似的情形下是有利的。在多声道材料的情形下,可通过编码器重新配置声道以分配适当的声道对。除了简单的差编码,无损音频编解码也支持更为复杂的方案以利用多声道信号的任意声道之间的声道间冗余。随机存取本发明涉及音频无损编码并能够支持随机存取。随机存取支持对已编码的音频信号任何部分的快速存取而不浪费地解码之前的部分。这是采用压縮数据的査找、编辑或流传送的场合下的一个重要特征。为了实现随机存取,在随机存取单元中,编码器需要插入一个帧,该帧能被解码而无需解码之前的帧。插入帧被称为"随机存取帧"。在该随机存取帧中,没有来自之前的帧的采样被用于预测。下面,将详细说明根据本发明的随机存取的信息。参照配置语法(图6所示),关联于随机存取的信息作为配置信息被发送。例如,"random—access"字段被用作指示是否允许随机存取的信息,它由8比特表示。此外,如果允许随机存取,则8比特"random—access"字段指定构成随机存取单元的帧数。例如,当"random—access=00000000"时,不支持随机存取。换句话说,当"random—access>0"时,则支持随机存取。更具体地说,当"random—access=00000001"时,这指示构成随机存取单元的帧数为1。这表示在所有的帧单元中均允许随机存取。此外,当"random—access-11111111"时,这指示构成随机存取单元的帧数为255。因此,"random—access"信息对应于当前随机存取单元中的随机存取帧和下一随机存取单元中的随机存取帧之间的距离。这里,所述距离由帧数表达。32比特的"ra一unit—size"字段被包含在比特流中并被发送。这里,"ra一unit—size"字段表示以字节为单位的随机存取单元的大小,并因此表示以字节为单位的从当前随机存取帧至下一随机存取帧的距离。"ra—unit—size"字段或者包含在配置语法(表6)中或者包含在帧一数据语法(表7)中。配置语法(表6)还包括指示比特流中存储"ra—unit—size"信息的位置的信息。该信息被表示为2比特的"ra—flag"字段。更具体地说,例如,当"m—flag=00"时,这表示"ra—unit—size"信息不被存储在比特流中。当"ra—flag=01"时,这表示"ra—unit—size"信息被存储在比特流的帧数据语法(表7)中。此外,当"ra_flag=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—config—info"字段的每个比特以及与之对应的每个声道的实例。更具体地说,当发送的比特流中存在相应声道的情形下,"chan一configjnfo"字段中的相应比特被置为"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"时,这表示在配置语法(表6)中最近没有定义"chan—conflgjnfo"字段。表2<table>tableseeoriginaldocumentpage15</column></row><table>此外,声道配置会使相互关联的声道在音频数据的结构中或音频信号中不彼此毗邻。因此,重置声道数据以使相互关联的声道毗邻是有利的。重置声道的方法可在配置信息(表6)的chanjx)s字段中给出。此外,配置信息(表6)可包括指示chanjos字段的声道重置信息是否存在的chan一sort字段。基于读取上述的各种声道信息,解码器处理音频信号以使正确的声道被送至正确的扬声器。帧长度如图3所示,根据本发明的音频信号包括多个声道或多声道。因此,当执行编码时,关于构成一个帧的多声道的数目的信息以及关于每个声道的采样数的信息被插入到比特流中并被发送。参照配置语法(表6),32比特的"samples"字段被用作指示构成每个声道的音频数据采样总数的信息。此外,16比特的"frame—length"(帧长度)字段被用作指示相应帧中的每个声道的采样数的信息。此外,"frame—length"字段的16比特的值是通过由编码器使用的值确定的,并且被称为用户定义值。换句话说,用户定义值不是固定值,而是在编码处理时任意确定的值。例如,该值可由编码处理的用户设定。因此,在解码处理中,当通过图2所示的多路分解部件200接收比特流时,应首先获得每个声道的帧数。该值是根据下面所示的算法得到的。frame二samples/frame—length;rest=samples%frame—length;if(rest)frame++;frlen—last=rest;elsefrlen一last=frame—length;更具体地说,每个声道的总帧数是通过将经由比特流发送的"samples"字段确定的每个声道的采样总数除以由"framejength"字段确定的每个声道的一个帧中的采样数而计算得到的。例如,当由"samples"字段确定的采样总数恰好为由"frame—length"字段确定的每个帧中的采样数的倍数时,则该倍数值成为帧总数。然而,如果由"samples"字段确定的采样总数不恰好是由"frame—length"字段确定的采样数的倍数并且存在余数(或剩余数),则总帧数比倍数值增加"1"。此外,最末帧(frlen—last)的采样数被确定为余数(或剩余数)。这表示仅最末帧的采样数与其之前帧不同。通过如上所述地定义编码器和解码器之间标准化的规则,编码器可自由地确定并发送每个声道的采样总数("samples"字段)以及每个声道的一个帧中的采样数("frame—length"字段)。此外,解码器可通过使用发送信息上的上述算法准确地确定用于解码的每个声道的帧数。线性预测在本发明中,线性预测被应用于无损音频编码。图1所示的预测器160包括至少一个或多个滤波器系数以从之前的采样值预测当前的采样值。随后,第二熵编码部件180在对应于预测值和原始值之间的差的残数值上执行熵编码。另外,作用于预测器160的每个块的预测器系数值被选为来自系数估算部件120的最佳值。此外,预测器系数值被第一熵编码部件140熵编码。由第一熵编码部件和第二熵编码部件180编码的数据作为比特流的一部分由多路复用部件190插入并随后被发送。下面将详细说明根据本发明的执行线性预测的方法。用FIR滤波器的预测线性预测适用于语音和音频信号处理的许多场合。在下文中基于有限脉冲响应(FIR)滤波器描述预测器160的示例性操作。然而,本例明显不构成对本发明范围的限制。时间离散信号x(n)的当前采样可从之前的采样x(n—k)大致地预测出。本说明是通过下式给出的。<formula>formulaseeoriginaldocumentpage17</formula>其中K是预测器的阶数。如果预测的采样接近原始采样,则残数如下所示<formula>formulaseeoriginaldocumentpage17</formula>它具有比x(n)本身更小的方差,因此能更有效地编码e(n)。从输入采样的段开始在对段进行滤波前估算预测器系数的程序被成为前向自适应。在这种情形下,应当发送系数。另一方面,如果从之前处理的段或采样(例如从残数)估算系数,则参照向后自适应。向后自适应程序的优点在于由于估算系数所需的数据是解码器可得的,因而不需要系数发送。10阶左右的前向自适应预测方法被广泛地用于语音编码,并且同样适用于无损音频编码。大多数前向自适应无损预测方案的最大阶数仍然相当小,例如K二32。一种例外是超级音频CD的专门的1比特无损编解码,它使用高达128的预测阶数。另一方面,具有几百个系数的向后自适应FIR滤波器通用于许多领域,例如声道均衡和回声对消。多数这些系统是基于LMS算法或其变化形式的,这些算法也被推荐用于无损音频编码。由于不一定要将预测器系数作为辅助信息发送,这类具有高阶数的基于LMS的编码方案在实践中是可行的,因此它们的数目不对数据速率产生影响。然而,向后自适应的编解码器的缺点在于必须在编码器和解码器两者中作出适应,这使解码器明显比前向自适应情形下的解码器更为复杂。前向自适应预测作为本发明的示例性实施例,前向自适应预测作为一个实例被给出于本文的描述中。在前向自适应线性预测中,一般使用自相关方法或协方差方法通过系数估算部件120估算每个块的最佳预测器参数hk(根据残数的最小方差)。使用传统的Levinson-Durbin算法的自相关方法的额外优点是提供一种迭代地适应预测器阶数的简单方法。此外,该算法本身也计算相应的部分自相关系数。前向自适应预测的另一方面是确定合适的预测阶数。阶数增加使预测误差的方差减少,这导致残数的较小比特率Re。另一方面,预测器系数的比特率Rc随着要被发送的系数的数目而提高。因此,其任务是找到使总比特率最小的最佳阶数。这可通过相对预测阶数K使下式最小来表达由于预测增益随着更高的阶数单调上升,因此Re随着K值下降。另一方面,由于要发送数量递增的系数,因此Rc单调地随着K值上升。最佳阶数的搜索可通过系数估算部件120被高效率地执行,所述系数估算部件120用递增的阶数递归地确定所有预测器。对于每个阶数计算预测器系数的完整组。另外,可推导出相应残数的方差o卩变化,这导致残数的可望比特率的估算。可在每次重复过程中一一例如对于每个预测阶数一一确定总比特率连同诸个系数的比特率。最佳阶数被发现于总比特率不再减少的那个点上。尽管从上式可以清楚知道系数比特率对总比特率具有直接的影响,然而Rc较慢的增加还使Rt。tai的最小值偏移至较高的阶(其中Re同样较小),这实现更好的压縮。因此,预测器系数的高效并且仍旧准确的量化在实现最大压縮过程中扮演一个重要的角色。预测阶数在本发明中确定预测阶数K,所述预测阶数K确定线性预测的预测器系数的数目。预测阶数K还通过系数估算部件120予以确定。这里,关于确定的预测阶数的信息被包含在比特流中并随后被发送。配置语法(表6)包括关联于预测阶数K的信息。例如,1比特至10比特的"max—order"字段对应于指示最大阶数值的信息。1比特至10比特的"max—order"字段的最高值是K=1023(例如10比特)。作为关联于预测阶数K的另一消息,配置语法(表6)包括1比特的"adapt—order"字段,它指示每个块是否存在最佳阶数。例如,当"adapt—order=1"时,可以给每个块提供最佳阶数。在block—data语法(表8)中,最佳阶数被提供为1比特至10比特的"叩t—order"字段。此外,当"adapt—order=0"时,则不对每个块提供单独的最佳阶数。在这种情形下,"max—order"字段成为被作用于所有块的最末阶数。最佳阶数(opt—order)基于max_order字段值和相应块的大小(NB)得以确定。更具体地说,例如当max—order被确定为K隨二10并且"adapt—order=1"时,则考虑相应块的大小即可确定每个块的opt—order。在某些情形下,opt—order值可能会大于max—order(Kmax=10)。尤其,本发明涉及更高的预测阶数。根据本发明的实施例,在没有分层块切换的情形下,在长块长度和短块长度之间可以存在4的倍数(例如4096&1024或8192&2048)。另一方面,在采用分层块切换的实施例中,该倍数可以增加(例如高达32),从而实现更大的范围(例如对于16384下至512或甚至高采样速率的32768-1024)。在执行分层块切换的实施例中,为了更好地使用非常长的块,可采用更高的最大预测阶数。最大阶数可以是K,二1023。在本实施例中,K^,可由块长度Nb限定,例如Kmax<NB/8(例如当NB=2048时,Kraax=255)。因此,使用Kmax=1023需要至少Nb二8192的块长度。在本实施例中,配置语法(表6)中的"max—order"字段可高达10比特而block—data语法(表8)中的"opt—order"字段同样可高达10比特。具体块中的实际比特数取决于一个块所允许的最大阶数。如果该块是短块,本地预测阶数可小于全局预测阶数。这里,本地预测阶数是通过考虑相应块长度Nb碗定的,而全局预测阶数是通过配置语法中的"max—order"Kmax确定的。例如,如果Kmax二1023,但NB=2048,由于本地预测阶数为255,"opt—order"字段被确定为8比特(而不是10比特)。更具体地说,可基于下式确定叩t—order:opt—order二min(全局预测阶数,本地预测阶数);另外,全局和本地预测阶数可通过下式确定全局预测阶数^ceil(log2(最大预测阶数+1))本地预测阶数二max(ceil(log2((Nb〉>3)—l)),1)在本实施例中,预测来自一个声道的再分块的数据采样。使用之前块的最末K个采样预测当前块的第一采样。K值是基于从上述等式推导出的opt_0rder确定的。如果当前块是声道的第一个块,则没有来自之前块的采样以供使用。在这种情形下,采用具有渐进阶数(progressiveorder)的预测。例如,假设相应块的opt—order值为K=5,则块中的第一采样不执行预测。块的第二采样使用块的第一采样以执行预测(如同k二l),块的第三采样使用块的第一采样和第二采样以执行预测(如同k^2)等。因此,从第六采样开始的以及在这之后的采样,根据k二5的opt—order执行预测。如上所述,预测阶数从k二1至k二5渐进地增加。当用于随机存取帧时,上述渐进阶数型预测是非常有利的。由于随机存取帧对应于随机存取单元的基准帧,随机存取帧不通过使用之前的帧采样执行预测。即,该渐进预测技术可应用于随机存取帧的开头。预测器系数的量化上述预测器系数在图1的量化部件130中被量化。由于非常小的量化误差也会导致最佳预测滤波器的要求频谱特性的很大的偏差,因此预测系数hk的直接量化对发送而言不是非常有效的。为此,预测器系数的量化基于通过系数估算部件120计算得到的部分自相关(反映)系数rk。如上所述,例如系数估算部件120是使用传统Levinson—Durbin算法处理的。开头的两个部分自相关系数(对应^和Y2)通过使用下面的函数被量化《=64(-1+a/^/寸2+1);而其余系数是使用简单的7比特的均匀量化器量化的在所有情形下,结果量化值ak被约束在范围[一64,63]内。熵编码如同1所示,两种类型的熵编码被用于本发明。更具体地说,第一熵编码部件140用于编码上述预测器系数。另外,第二熵编码部件180用来编码上述音频原始采样和音频残数采样。在下文中将详细说明这两种熵编码。预测器系数的第一熵编码相关技术的Rice码被用作根据本发明的第一熵编码方法。例如,量化系数ak的发送是通过生成残数值执行的Sk=ak—offsstk它是通过使用第一熵编码部件140编码的,例如Rice码方法。用于该处理的Rice码的相应偏移和参数可从下述表3、4和5所示的诸组中的一个全局地进行选择。表索引(即2比特的"coef—table")在配置语法中给出(表6)。如果"coef—table=ll",这表示不采用熵编码,并且量化的系数每次7比特地发送。在这种情形下,偏移一直为一64以获得局限于的无符号值Sk-ak+64。相反,如果"coeff—table=00",则选择下面的表3,并且如果"coeff—table=01",则选择下面的表4。最后,如果"coeff—table二10",则选择表5。当接收到图2的解码器中的经量化系数时,第一熵解码部件220通过使用将残数值Sk与偏移组合以生成部分自相关系数ak的量化索引的处理来重构预测器系数&=5k+offsetk此后,使用下面的等式执行开头的两个系数(Y,和Y2)的重构par!par2-j/22Q」=—r("2);其中29表示重构的系数的整数表示所需的常数(Q-20)缩放因数,而r(.)是根据经验确定的映射表(未示出为映射表是因为会根据场合而变化)。因此,根据采样频率提供用于第一熵编码的这三种系数表。例如,采样频率可被分成48kHz、96kHz和192kHz。这里,三个表3、4、5被分别提供给每个采样频率。作为使用一个表的代替,可对整个文件选择三个不同表中的一个。一般根据采样速率选择表。对于44.1kHz的材料,本发明的申请人推荐使用48kHz表。然而,总地来说,也可通过其它标准选择表。表3:用于编码量化系数(48kHz)的Rice码参数<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>表4:用于编码量化系数(96kHz)的Rice码参数<table>tableseeoriginaldocumentpage23</column></row><table><table>tableseeoriginaldocumentpage24</column></row><table>表5;用于编码量化系数(192kHz)的Rice码参数<table>tableseeoriginaldocumentpage24</column></row><table><table>tableseeoriginaldocumentpage25</column></row><table>残数的第二熵编码本发明包含适用于图1的第二熵编码部件180的编码方法的两种不同的模式,这将在下面予以详细说明。在简单模式中,使用Rice码对残数值e(n)进行熵编码。对于每个块,或者使用相同的Rice码编码所有的值,或者将块进一步分成四个部分,每个部分用不同的Rice码编码。如图1所示那样发送这种应用的代码索引。由于存在不同的方法以确定所给出的数据组的最佳Rice码,因此编码器根据残数的统计选择合适的代码。或者,编码器可使用基于BGMC模式的更为复杂和高效的编码方案。在BGMC模式中,残数的编码是通过将分布曲线划分成两种类型实现的。这两种类型包括属于分布的中心区域的残数Ie(n)I<emax,以及属于其尾端的残数。尾端的残数可简单地仅重定中心(即对于e(n)〉emax,则提供et(n)=e(n)—emax)并使用如上所述的Rice码编码。然而,为了编码处于分布曲线中心的残数,BGMC首先将残数分成LSB和MSB部分,随后BGMC使用分组Gilbert—Moore(算术)码编码MSB。最后,BGMC使用固定长度的直接代码发送LSB。可选择直接发送的LSB的参数e^x和数目以使它们仅略微地影响这种方案的编码效率,同时使编码的复杂度明显降低。根据本发明的配置语法(表6)和block—data语法(表8)包括关联于Rice码和BGMC码的编码的信息。现在对这种信息进行详细说明。配置语法(表6)首先包括1比特的"bgmc—mode"字段。例如,"bgmc—mode"二O表示Rice码。配置语法(表6)还包括1比特的"sb_part"字段。"sb_part"字段对应于与将块分割成子块并对分割的子块编码的方法相关的信息。这里,"sb_part"的意义根据"bgmc—mode"字段值而改变。25例如,当"bgmc—mode=0"时,也就是当采用Rice码时,"sb_part=0"表示块不被分割成子块。另外,"sb_part=l"表示以l:4子块分割比分割块。另外,当"bgmc—mode=l"时,也就是当采用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"字段+"sbjwt"字段的值而变化。例如,"bgmc—mode+sb_part=0"表示Rice码不配置子块。这里,"ec—sub"字段是0比特字段,这表示不包含任何信息。另外,"bgmc—mode+sb_part=1"表示Rice码或BGMC码用来以h4的比例将块分割成若干子块。这里,只有1比特被分配给"ec—sub"字段。例如,"ec—sub=0"表示一个子块(即该块不被分割成若干子块),而"ec—sub=l"指示以配置4个子块。此外,"bgmc—mode+sb_part=2"表示BGMC码被用来以1:2:4:8的比例将块分割成若干子块。这里,2比特被分配给"ec—sub"字段。例如,"ec—sub=0"表示一个子块(即该块不被分割成若干子块),而"ec_SUb=01"指示2个子块。另外,"ec—sub=10"指示4个子块,而"ec—sub=l1"指示8个子块。如上所述定义在每个块中的子块使用不同的编码方法由第二熵编码部件180编码。下面描述使用Rice码的一个实例。对于残数值的每个块,或者使用同样的Rice码编码所有值,或者如果设定配置语法中的"Sb_part"字段则块被分割成四个子块,每个编码的子块具有不同的Rice码。在后一种情形下,块数据语法(表8)中的"ec—sub"字段表示是使用一个块还是四个块。尽管第一子块的参数s[i二0]或者用4比特(分辨率《16比特)或者用5比特(分辨率〉16比特)被直接发送,然而仅发送下列参数s[i〉0]的差(s[i]—s[i—1])。使用适当选择的Rice码再次编码这些差。在这种情形下,用作差的Rice码参数具有值"0"。语法根据本发明的实施例,包含在音频比特流中的各种信息的语法示出于下表中。表6示出音频无损编码的配置语法。这种配置语法可形成分周期地处于比特流中的帧头,可形成每个帧的帧头等。表7示出一种帧一数据语法,而表8示出一种块一数据语法。表6:配置语法<table>tableseeoriginaldocumentpage27</column></row><table>表7:Framedata语法<table>tableseeoriginaldocumentpage28</column></row><table>表8:Block—data语法<table>tableseeoriginaldocumentpage29</column></row><table>压縮结果下面,将无损音频编解码与两种最流行的无损音频压縮程序一一即开放源代码编解码FLAC和Money式音频(MAC3.97)作比较。这里,开放源代码编解码FLAC使用前向自适应预测,而Monkey式音频(MAC3.97)是作为压縮方面的当前技术发展水平的向后自适应编解码。两种编解码方案均涉及提供最大的压縮的选项(即flac—8和mac—c4000)。编码器的结果确定中等压縮水平(其预测阶数限制于K一60)以及最大压縮水平(K_1023),两者均具有500ms的随机存取。测试执行于1024MB内存的1.7GHz奔腾-M系统。测试包括具有48、96和192kHz的采样速率和16、24比特分辨率的将近1GB的立体声波形数据。压縮比下面,压縮比被定义为(:=[(压縮的文件大小)/(原始文件大小)]*100%其中更小的值代表更好的压縮。检测的音频格式的结果示出于表9(FLAC编解码不支持192kHz的资料)。表9:不同音频格式的平均压縮比的比较(kHz/比特)<table>tableseeoriginaldocumentpage30</column></row><table>该结果表示最高水平的ALS胜过所有格式的FLAC和Monkey式音频,但尤其适用于高分辨率资料(例如96kHz/24比特及以上)。即使在中等水平,ALS也提供最好的总压縮性。复杂度不同编解码的复杂度强烈地取决于实际应用,尤其是编码器的应用。如前面提到的那样,本发明的音频信号编码器正处于发展中。因此,我们将我们的分析局限于解码器、简单的C语言代码实现而不作进一步的优化。压縮的数据是通过当前最佳的编码器实现产生的。图10中示出以不同复杂程度编码的用于各种音频格式实时解码的平均CPU负载。即使是最大复杂度,解码器的CPU负载仅在20-25%左右,这表示基于文件的解码比实时解码快至少4一5倍。表10:平均CPU负载(在1.7GHz奔腾-M上的百分比),取决于音频格式(kHz/比特)和ALS编码器复杂度。格式ALS低ALS平均ALS最大48/161.64.918.748/241.85.819.696/243.612.023.8192/246.722.826.7编解码器被设计成提供大范围的复杂程度。尽管最大复杂程度以最低的编码和解码速度的代价实现最高的压縮,然而更快的中等复杂程度仅略微地损害压縮性,但对于最大程度而言(即48kHz资料的将近5%的CPU负载),解码的复杂度明显降低。适用低复杂度水平(即K一15,Rice编码)相比中等程度仅使压縮性降低1-1.5%,但是解码复杂性进一步降低3倍(即对48kHz资料而言小于2。/。CPU负载)。因此,音频数据即使在计算能力很低的硬件上也能被解码。尽管编码器复杂度可能因为更高的最大阶数和更精良的块切换算法而增加(根据实施例),然而解码器更容易受到较高的平均预测阶数的影响。前面的实施例(例如分层块切换)和优点仅为示例性的并且不被解释为对所附权利要求书构成限制。上述原理可应用于其它装置和方法,并为业内技术人员所理解。许多选择、修改和变化对本领域内技术人员而言是明显的。工业应用本领域内技术人员可以理解可对本发明作出各种修改和变化而不脱离本发明的精神或范围。例如,本发明的诸方面和实施例可轻易地适用于另一音频信号编解码器,例如无损音频信号编解码器。因此,本发明旨在覆盖本发明所有这些修改和变化。权利要求1.一种处理音频信号的方法,所述方法包括将声道映射信息添加至音频信号的配置信息,所述声道映射信息指示音频信号中的每个声道被映射至再现装置中的哪个扬声器。2.如权利要求1所述的方法,其特征在于,所述声道映射信息包括多个比特,而每个比特与扬声器关联并指示是否有声道存在于已关联的扬声器的音频信号中。3.如权利要求2所述的方法,其特征在于,所述多个比特为16比特。4.如权利要求l所述的方法,其特征在于,还包括将指示符添加于配置信息,所述指示符指示配置信息中是否包含声道映射信息。5.如权利要求l所述的方法,其特征在于,还包括如果声道的音频数据被重置,则将声道重置信息添加于配置信息,所述声道重置信息指示声道的音频数据的重置。6.如权利要求5所述的方法,其特征在于,还包括将指示符添加至配置信息,所述指示符指示配置信息中是否包含声道重置信息。7.如权利要求l所述的方法,其特征在于,还包括将声道信息添加至配置信息,所述声道信息指示音频信号中的声道数。8.—种处理音频信号的方法,所述方法包括接收具有配置信息和多个声道的音频信号;从配置信息读取声道映射信息,所述声道映射信息指示音频信号中的每个声道被映射至再现装置中的哪个扬声器;以及基于声道映射信息处理多个声道。9.如权利要求8所述的方法,其特征在于,所述声道映射信息包括多个比特,每个比特与扬声器关联并指示已关联的扬声器的音频信号中是否存在声道。10.如权利要求9所述的方法,其特征在于,所述多个比特为16比特。11.如权利要求8所述的方法,其特征在于,还包括从配置信息读取一指示符,所述指示符指示在配置信息中是否包含声道映射信息;以及基于指示符执行读取声道映射信息的步骤。12.如权利要求8所述的方法,其特征在于,还包括从配置信息读取声道重置信息,所述声道重置信息指示多个声道的音频数据的重置;并且其中处理声道的步骤基于声道映射信息和声道重置信息处理声道。13.如权利要求12所述的方法,其特征在于,还包括从配置信息读取指示符,所述指示符指示配置信息中是否包含声道重置信息;以及基于指示符执行读取声道重置信息的步骤。14.如权利要求8所述的方法,其特征在于,还包括从配置信息读取声道信息,所述声道信息指示音频信号中的声道数;并且其中处理声道的步骤基于声道映射信息和声道信息处理声道。15.—种处理音频信号的装置,包括编码器,所述编码器被配置成将声道映射信息添加至音频信号的配置信息,所述声道映射信息指示音频信号中的每个声道被映射至再现装置中的哪个扬声器。16.—种处理音频信号的装置,包括解码器,被配置成接收具有配置信息和多个声道的音频信号,并从配置信息读取声道映射消息,所述声道映射消息指示音频信号中的每个声道被映射到再现装置中的哪个扬声器;以及解码器,被配置成基于声道映射信息处理诸声道。全文摘要在一个实施例中,声道映射消息被添加至音频信号的配置信息。所述声道映射消息指示音频信号中的每个声道被映射至再现装置中的哪个扬声器。例如,声道映射信息可包括多个比特,其中每个比特关联于一个扬声器并指示关联的扬声器的音频信号中是否存在声道。文档编号H04S3/00GK101218852SQ200680024866公开日2008年7月9日申请日期2006年7月10日优先权日2005年7月11日发明者T·利伯成申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1