專利名稱::處理音頻信號的裝置和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種處理音頻信號的方法,更具體地涉及一種編碼和解碼音頻信號的方法和裝置。
背景技術(shù):
:過去曾經(jīng)以不同方法實現(xiàn)了音頻信號的存儲和重放。例如,音樂和語音業(yè)已通過留聲技術(shù)(例如唱盤播放機)、磁技術(shù)(例如卡式磁帶)和數(shù)字技術(shù)(例如光盤)來記錄和保存。隨著音頻存儲技術(shù)的發(fā)展,需要克服許多難題來優(yōu)化音頻信號的質(zhì)量和可存儲性。為了音樂信號的存檔和寬帶傳輸,無損重建在借助諸如MP3或AAC等在MPEG標準中定義的感性編碼進行的壓縮中正成為比高效率更為重要的特征。雖然DVD音頻和超級CD音頻包括專利無損壓縮方案,但是在內(nèi)容持有者和廣播公司當中需要一種開放式和綜合性的壓縮方案。響應(yīng)于這種需要,一種新的無損編碼方案已經(jīng)成為MPEG-4音頻標準的延伸。無損音頻編碼法由于原始信號的完美重建而實現(xiàn)了沒有任何質(zhì)量損失的數(shù)字音頻數(shù)據(jù)壓縮。
發(fā)明內(nèi)容本發(fā)明涉及處理音頻信號的方法。在一個實施例中,隨機存取單元信息被添加至包含多個隨機存取單元的音頻信號中。每個隨機存取單元包括若干幀并且其中至少一個幀是隨機存取幀。每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀。隨機存取單元信息指示按字節(jié)計這些隨機存取幀中的至少兩個之間的距離。例如,隨機存取單元信息可被添加至音頻信號的配置信息,并且隨機存取單元信息指示按字節(jié)計連續(xù)隨機存取幀之間的距離。在一個實施例中,隨機存取單元信息被與至少一個隨機存取幀相關(guān)聯(lián)地添加至音頻信號,并且該隨機存取單元信息指示按字節(jié)計該相關(guān)聯(lián)的隨機存取幀和下一隨機存取幀之間的距離。在一個實施例中,該方法還包括將通用信息添加至配置信息。通用信息指示按幀計連續(xù)隨機存取幀之間的距離。另一實施例還包括將通用信息添加至配置信息,其中通用信息指示隨機存取單元信息是否是與隨機存取幀相關(guān)聯(lián)地定位和位于配置信息中這兩者之一。在一個實施例中,隨機存取單元信息可指示按字節(jié)計隨機存取單元的大小。在本發(fā)明的一個實施例中,接收具有多個隨機存取單元的音頻信號。每個隨機存取單元包括多個幀并且其中至少一個幀是隨機存取幀,每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀。隨機存取單元信息自音頻信號中被讀取,并且該隨機存取單元信息指示按字節(jié)計這些隨機存取幀中的至少兩個之間的距離。這些隨機存取幀中的至少一個是基于隨機存取單元信息來解碼的。在一個實施例中,隨機存取單元信息自音頻信號的配置信息中被讀取,并且該隨機存取單元信息指示按字節(jié)計連續(xù)隨機存取幀之間的距離。在另一實施例中,相關(guān)聯(lián)的隨機存取幀的隨機存取單元信息自音頻信號中與該相關(guān)聯(lián)的隨機存取幀相關(guān)聯(lián)的位置被讀取,并且該隨機存取單元信息指示按字節(jié)計該相關(guān)聯(lián)的隨機存取幀與下一隨機存取幀之間的距離。在一個實施例中,通用信息自配置信息中被讀取,其中通用信息指示按幀計連續(xù)隨機存取幀之間的距離。這些隨機存取幀中的至少一個基于隨機存取單元信息和通用信息來被解碼。在又一實施例中,通用信息自配置信息中被讀取,其中通用信息指示隨機存取單元信息是否是與隨機存取幀相關(guān)聯(lián)地定位和位于配置信息中這兩者之一。隨機存取單元信息基于通用信息被讀出。本發(fā)明還涉及編碼音頻信號的方法和裝置以及解碼音頻信號的方法和裝置。包括于此以提供對本發(fā)明的進一步理解、并被結(jié)合在本申請中且構(gòu)成其一部分的附圖示出本發(fā)明的實施方式,其與說明書一起可用來解釋本發(fā)明的原理。在附圖中圖1是根據(jù)本發(fā)明一個實施方式的編碼器的示例圖。圖2是根據(jù)本發(fā)明一個實施方式的解碼器的示例圖。圖3是根據(jù)本發(fā)明一個實施方式的壓縮的M-聲道文件的比特流結(jié)構(gòu)的示例圖。圖4是根據(jù)本發(fā)明一個實施方式的分級塊切換方法的概念圖的示例圖。圖5是塊切換示例及相應(yīng)的塊切換信息代碼的示例圖。圖6是根據(jù)本發(fā)明實施方式的多個聲道的塊切換方法的示例圖。具體實施方式下面將詳細參考本發(fā)明的優(yōu)選實施方式,其具體示例圖示于附圖中。只要有可能,即在所有附圖中使用相同的附圖標記表示相同或相似的部件。在對本發(fā)明進行敘述之前,應(yīng)當指出的是本發(fā)明中揭示的大多數(shù)術(shù)語對應(yīng)于本領(lǐng)域內(nèi)公知的一般術(shù)語,但部分術(shù)語是由申請人根據(jù)需要選擇的,并且將在本發(fā)明下文的描述中予以揭示。因此,由申請人定義的術(shù)語優(yōu)選基于它們在本發(fā)明中的含義來理解。在無損音頻編碼方法中,由于編碼過程必須是完全可逆而不會有信息損失的,因此編碼器和解碼器兩者的若干部件必須以確定性的方式來實現(xiàn)。編解碼器結(jié)構(gòu)圖1是根據(jù)本發(fā)明一個的編碼器1的示例圖。分割部件100將輸入的音頻數(shù)據(jù)分割成若干幀。在一幀內(nèi),每個聲道還可進一步被細分成若干個音頻采樣塊以做進一步處理。緩沖器110存儲由分割部件100分割后的塊和/或幀采樣。系數(shù)估算部件120針對每個塊估算最優(yōu)的一組系數(shù)值。系數(shù)的數(shù)目,即預(yù)測器的階數(shù)也可以自適應(yīng)地做出選擇。系數(shù)估算部件120針對數(shù)字音頻數(shù)據(jù)塊計算一組部分自相關(guān)系數(shù)(parcor)值。部分自相關(guān)系數(shù)值指示預(yù)測器系數(shù)的部分自相關(guān)系數(shù)表示。量化部件130將該組部分自相關(guān)系數(shù)值量化。第一熵編碼部件140通過從部分自相關(guān)系數(shù)值減去一個偏移值來計算出部分自相關(guān)系數(shù)殘差值,并使用由熵參數(shù)所定義的熵代碼對部分自相關(guān)系數(shù)的殘差值進行編碼,其中偏移值和熵參數(shù)選自最優(yōu)表。最優(yōu)表是基于數(shù)字音頻數(shù)據(jù)塊的采樣率從多個表中選擇的。這多個表是分別對多個采樣率范圍預(yù)定義的以實現(xiàn)為傳輸而進行的數(shù)字音頻數(shù)據(jù)的最優(yōu)壓縮。系數(shù)轉(zhuǎn)換部件150將量化了的部分自相關(guān)系數(shù)轉(zhuǎn)換成線性預(yù)測編碼(LPC)系數(shù)。預(yù)測器160使用線性預(yù)測編碼系數(shù)從存儲在緩沖器110中的之前的原始采樣估算當前預(yù)測值。減法器170使用存儲在緩沖器IIO中的數(shù)字音頻數(shù)據(jù)的原始值和在預(yù)測器160中估算出的預(yù)測值計算數(shù)字音頻數(shù)據(jù)塊的預(yù)測殘差。第二熵編碼部件180使用不同的熵代碼編碼預(yù)測殘差并生成代碼索引。所選擇的代碼索引作為輔助信息被發(fā)送。第二熵代碼部件180使用具有不同復(fù)雜度的兩種選擇性編碼技術(shù)之一編碼預(yù)測殘差。一種編碼技術(shù)是公知的Golomb-Rice編碼(在下文中簡稱為"Rice代碼")法而另一種是公知的分塊Gilbert-Moore代碼(在下文中簡稱為"BGMC")法。Rice代碼具有低復(fù)雜度但仍然是高效率的。BGMC算法編碼方案以相比Rice代碼復(fù)雜度稍高的代價提供更好的壓縮。最后,多路復(fù)用部件190將編碼的預(yù)測殘差、代碼索引、編碼的部分自相關(guān)系數(shù)殘差值和其它附加信息多路復(fù)用以形成壓縮的比特流。編碼器1還提供循環(huán)冗余校驗(CRC)校驗和,它主要被提供給解碼器以校驗解碼的數(shù)據(jù)。在編碼器方面,CRC用來保證壓縮的數(shù)據(jù)能被無損地解碼。其它編碼選項包括柔性塊切換方案、隨機存取和聯(lián)合聲道編碼。編碼器1可使用這些選項提供若干具有不同復(fù)雜度的壓縮級別。聯(lián)合聲道編碼利用立體聲聲道或多聲道信號之間的相關(guān)性。這可通過在能夠比原始信道之一更高效率地編碼兩個聲道之間的差異的片段(segments)中編碼這種差異來實現(xiàn)。這些編碼選項將在參數(shù)根據(jù)本發(fā)明的示例性解碼器的說明之后更為詳細地予以說明。圖2是根據(jù)本發(fā)明的解碼器2的示例圖。更特別地,圖2示出由于不必執(zhí)行任何適應(yīng)性調(diào)整因而復(fù)雜度顯著低于編碼器的無損音頻信號解碼器。多路分解部件200接收音頻信號并將數(shù)字音頻數(shù)據(jù)塊的編碼的預(yù)測殘差、代碼索引、編碼的部分自相關(guān)系數(shù)殘差值和其它附加信息多路分解。第一熵解碼部件210使用由熵參數(shù)定義的熵代碼以解碼部分自相關(guān)系數(shù)殘差值并通過將偏移值加至解碼的部分自相關(guān)系數(shù)殘差值計算一組部分自相關(guān)系數(shù)值;其中偏移值和熵參數(shù)被選自一個表,該表是由解碼器從基于數(shù)字音頻數(shù)據(jù)塊的采樣速率的多個表中選擇的。第二熵解碼部件220使用代碼系數(shù)對經(jīng)多路分解后的編碼的預(yù)測殘差進行解碼。系數(shù)轉(zhuǎn)換部件230將熵解碼的部分自相關(guān)系數(shù)值轉(zhuǎn)換成LPC系數(shù)。預(yù)測器240使用LPC系數(shù)估算數(shù)字音頻數(shù)據(jù)塊的預(yù)測殘差。加法器250將解碼的預(yù)測殘差與估算的預(yù)測殘差相加以獲得數(shù)字音頻數(shù)據(jù)的原始塊。組裝部件260將解碼的塊數(shù)據(jù)組裝為幀數(shù)據(jù)。因此,解碼器2將編碼的預(yù)測殘差和部分自相關(guān)系數(shù)殘差解碼,將部分自相關(guān)系數(shù)殘差值轉(zhuǎn)換成LPC系數(shù),并運用逆預(yù)估濾波器以計算無損重構(gòu)信號。解碼器2的計算工作量取決于由編碼器1選擇的預(yù)測階數(shù)。在多數(shù)情形下,實時解碼即使在低端系統(tǒng)中也是可行的。圖3是根據(jù)本發(fā)明的包括多個聲道的(例如M聲道)壓縮音頻信號的比特流結(jié)構(gòu)的示例圖。該比特流由包括多個聲道(例如M聲道)的至少一個音頻幀構(gòu)成。比特流配置語法(見下面的表6)中的"channels"字段指示聲道數(shù)。使用根據(jù)本發(fā)明的塊切換方案將每個聲道分成多個塊,這將在后面詳細說明。每個再分塊具有不同的大小并包括根據(jù)圖1編碼的編碼數(shù)據(jù)。例如,一個再分塊中的編碼數(shù)據(jù)包含代碼索引、預(yù)測階數(shù)K、預(yù)測器系數(shù)和編碼的殘差值。如果使用聲道對之間的聯(lián)合編碼法,則這兩個聲道的塊分割是等同的,而且這些塊以交織方式存儲。比特流配置句法(表6)中的"js_Stereo"字段指示聯(lián)合立體聲(聲道差)是開啟的還是關(guān)閉的,而frame_data句法(見下面的表7)中的"js—switch"字段指示是否選擇聯(lián)合立體聲(聲道差)。否則,每個聲道的塊分割是獨立的。下面將參照附圖及其后的句法詳細地說明前面提到的塊切換、隨機存取、預(yù)測和熵編碼選項。塊切換本發(fā)明的一個方面涉及在使用實際編碼方案前將每個聲道再分成多個塊。下面,根據(jù)本發(fā)明的塊分割(或再分)方法被稱為"塊切換方法"。分級塊切換圖4是根據(jù)本發(fā)明的分級塊切換方法的概念圖的示例圖。例如,圖4示出將一個聲道按分級方式細分成32個塊的方法。當在單個幀中提供多個聲道時,每個聲道被細分(或分割)成最多達32個塊,并且每個聲道的細分塊配置成一個幀。因此,根據(jù)本發(fā)明的塊切換方法由圖1所示的分割部件100執(zhí)行。此外,如上所述,預(yù)測和熵編碼在細分的塊單元上執(zhí)行。一般而言,傳統(tǒng)的音頻無損編碼(ALS)包括相對簡單的塊切換機制。每一個N個采樣的聲道或者使用一個全長塊(NB=N)進行編碼,或者使用四個長度Ns二N/4的塊(例如1:4切換)進行編碼,其中同一塊分割法適用于所有聲道。在某些情形下,該方案會具有某些局限性。例如,盡管只有l(wèi):l或l:4切換是用的,但其他切換法(例如l:2、1:8及其組合)在某些情形下卻效率更高。另外在傳統(tǒng)ALS中,對所有聲道以等同的方式執(zhí)行切換,雖然不同聲道或許會從不同的切換法受益(如果聲道并不相關(guān)時則尤為如此)。因此,根據(jù)本發(fā)明實施方式的塊切換方法提供相對靈活的塊切換方案,其中一個幀的每個聲道可按分級方式被細分成多個塊。例如,圖4示出能以分級方式細分成最多達32個塊的聲道。在根據(jù)所給出的實施方式的聲道內(nèi),NB=N、N/2、N/4、N/8、N/16和N/32的塊的任意組合是可能的,只要每個塊是通過對雙倍長度的上級塊進行細分產(chǎn)生的即可。例如,如圖4中的例子所示,分割成N/4+N/4+N/2是可能的,而分割成N/4+N/2+N/4是不行的(例如在下面描述的在圖5(e)和圖5中示出的塊切換示例)。換言之,聲道被分成這多個塊從而使每個塊的長度等于N/(mi)中的一個值,其中i二l,2,p,N是聲道的長度,m是大于或等于2的一個整數(shù),而p表示在細分分級結(jié)構(gòu)中的級數(shù)。因此,在本發(fā)明的實施例中,比特流包括指示塊切換等級的信息以及指示塊切換結(jié)果的信息。這里,與塊切換相關(guān)的信息被包含在用于解碼處理的語法中,這將在下面進行描述。例如,作出設(shè)定以使塊切換處理后產(chǎn)生的最小塊尺寸為NB二N/32。然而,這種設(shè)定僅為簡化本發(fā)明說明的一個實例。因此,根據(jù)本發(fā)明的設(shè)定不局限于這一種設(shè)定。更具體地說,當最小塊大小為NB二N/32時,這表示塊切換處理已按分級方式進行了5次,故將其稱為5級塊切換。或者,當最小塊大小為NB二N/16時,這表示塊切換處理己按分級方式執(zhí)行了4次,故將其稱為4級塊切換。同樣,當最小塊大小為NB=N/8時,這表示塊切換處理已按分級方式執(zhí)行了3次,故將其稱為3級塊切換。而當最小塊大小為NB==N/4時,這表示塊切換處理已按分級方式執(zhí)行了2次,故將其稱為2級塊切換。.當最小塊大小為NB-N/2時,這表示塊切換處理己按分級方式執(zhí)行了1次,故將其稱為l級塊切換。最后,當最小塊大小為Ne二N時,這表示尚未執(zhí)行塊切換處理,故將其稱為0級塊切換。在本發(fā)明的實施例中,指示塊切換等級的信息被稱為第一塊切換信息。例如,第一塊切換信息可由表6中的語法中的2比特字段"block—switching"表示,這將在后面的處理中予以說明。更具體地說,"block—switching=00"表示0級,"block—switching=01"表示1級至3級中的任何一個,"block_switching=10"表示4級,而"block—switching=11"表示5級。另外,指示根據(jù)上述塊切換等級對每個等級執(zhí)行的塊切換結(jié)果的信息在這些實施例中被稱為第二塊切換信息,這里,第二塊切換信息可由"bsjnfb"字段表示,該字段在表7所示的語法中以8比特、16比特和32比特中的任何一個表示。更具體地說,如果"block—switching=01"(表示1級至3級的任何一個),則"bsJnfo"由8比特表示。如果"block—switching-10"(表示級4),則"bs—info"由16比特表示。換句話說,高達4級的塊切換結(jié)果可用16比特表示。此外,如果"bbck_switching=ll"(表示級5),貝ij"bs—info"表示為32比特。換句話說,高達5級的塊切換結(jié)果可用32比特指示。最后,如果"block—switching=00"(表示尚未進行塊切換),則不發(fā)送"bs—info"。這表示一個聲道構(gòu)成一個塊。分配給第二塊切換信息的總比特數(shù)是基于第一塊切換信息的等級值而確定的。這可能會減小最終的比特率。在下面的表1中簡述第一塊切換信息和第二塊切換信息之間的關(guān)系。表l:塊切換等級<table>tableseeoriginaldocumentpage13</column></row><table>下面,將詳細描述配置(或映射)第二塊切換信息(bs一info)中每個比特的的方法的一個實施例。bsjnfo字段根據(jù)上述實施方式可包括最多達4個字節(jié)。關(guān)于1級至5級的比特映射可以是[(0)12233334444444455555555555555555]。可保留第一比特以指示是獨立塊切換還是同步塊切換,這將在后面的獨立/同步塊切換一節(jié)中更為詳細地描述。圖5(a)—5(f)示出可發(fā)生3級塊切換的一個聲道的不同塊切換示例。因此,在這些示例中,最小塊長度為NB=N/8,且bsjnfo由一個字節(jié)構(gòu)成。從最大塊長度NB二N開始,如果塊被進一步細分,貝l』bsjnfo的比特被置位。例如,在圖5(a)中,根本不存在細分,因此"bs—info"為(0)0000000。在圖5(b)中,幀被細分((O)l……)而長度為N/2的第二塊被進一步分((0)101……)成兩個長度N/4的塊;因此bs一info為(O)IOIO0000。在圖5(c)中,幀被細分((O)l...),且只有長度為N/2的第一塊被進一步分((O)llO...)成為兩個長度為N/4的塊;因此bsjnfo為(O)UOO0000。在圖5(d)中,幀被細分((O)l……),長度為N/2的第一塊和第二塊被進一步分((0)111……)成長度為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)是根據(jù)本發(fā)明實施例的塊切換的示例圖。更具體地,圖6(a)示出未對聲道1、2和3執(zhí)行塊切換的示例。圖6(b)示出的是其中兩個聲道(聲道1和2)配置成一個聲道對、且在聲道1和聲道2中同步地執(zhí)行塊切換的示例。在本例中還應(yīng)用了交織處理。圖6(c)示出的是其中兩個聲道(聲道1和2)配置成一個聲道對、且獨立地對聲道1和聲道2執(zhí)行塊切換的示例。在本發(fā)明中,"聲道對"指兩個任意的音頻聲道。關(guān)于哪些聲道組成聲道對的決定可由編碼器自動做出或由用戶人工做出。(例如L和R聲道、Ls和Rs聲道)。在獨立塊切換中,盡管在所有聲道中每個聲道的長度可以是相同的,但可對每個聲道個別地執(zhí)行塊切換。即,如圖6(c)所示,各聲道可以不同方式分成塊。如果一個聲道對的兩個聲道彼此相關(guān)并且使用差分編碼,則該聲道對的兩個聲道可被同步地進行塊切換。在同步塊切換中,各聲道以相同方式進行塊切換(即分成塊)。圖6(b)示出這樣的一個示例,并進一步示出這些塊是可以被交織的。如果聲道對的兩個聲道彼此不相關(guān),則差分編碼并無益處,因而不需要對聲道同步地進行塊切換。相反,獨立地切換聲道可能更合適。此外,根據(jù)本發(fā)明的另一實施方式,所描述的獨立或同步塊切換方法可應(yīng)用于聲道數(shù)大于或等于3的多聲道組。例如,如果該多聲道組的所有聲道彼此相關(guān),則可以同步切換多聲道組的所有聲道。另一方面,如果多聲道組的所有聲道彼此不相關(guān),則可以獨立地切換多聲道組的每個聲道。此外,"bs—info"字段被用作指示塊切換結(jié)果的信息。另外,"bs—info"字段還被用作指示對配置成聲道對的每個聲道是獨立地執(zhí)行了塊切換還是同步地執(zhí)行了塊切換的信息。在這種情況下,如上所述,可使用"bs一info"字段中的特定比特(例如第一比特)。例如,如果聲道對的兩個聲道彼此獨立,則"bs—info"字段的第一比特被置為"l"。另一方面,如果聲道對的兩個聲道彼此同步,則"bsjnfo"字段的第一比特被置為"0"。下面,將詳細說明圖6(a)、6(b)和6(c)。參照圖6(a),由于沒有一個聲道執(zhí)行塊切換,因此并不生成相關(guān)的"bsjnfo"。參照圖6(b),聲道1和2配置成一個聲道對,其中這兩個聲道彼此同步且同步執(zhí)行了塊切換。例如,在圖6(b)中,聲道1和聲道2兩者都被分割成長度為N/4的塊,兩者都具有相同的bs一info"bs—info=(Q)1010000"。因此,可針對每個聲道對發(fā)送一個"bsjnfo",這導(dǎo)致比特率下降。此外,如果聲道對是同步的,則聲道對中的每個塊會被要求彼此交織。這種交織是有益的(或有利的)。例如,一個聲道對內(nèi)的一個聲道的塊(例如圖6(b)中的塊1.2)對兩個聲道的之前的塊(例如圖6(b)中的塊1.1和2.1)都有依賴關(guān)系,因此這些之前的塊應(yīng)當在當前塊之前就已可用。參照圖6(c),聲道1和2配置成一個聲道對。然而,在本例中,塊切換是獨立執(zhí)行的。更具體地,聲道l被分割成大小(或長度)達N/4的塊,并且bs一info是"bs—info二(i)1010000"。聲道2被分割成大小達N/2的塊,并且bs—info是"bs—info二(丄)1000000"。在圖6(c)所示例子中,在每個聲道間獨立地進行塊切換,因此并不執(zhí)行塊之間的交織處理。換言之,對于獨立地進行了塊切換的聲道,聲道數(shù)據(jù)可單獨編排。聯(lián)合聲道編碼聯(lián)合聲道編碼——也被稱為聯(lián)合立體聲——可利用立體聲信號的兩個聲道之間或多聲道信號的任何兩個聲道之間的相關(guān)性。盡管獨立地處理兩個聲道x"n)和X2(n)更為直接,但利用聲道之間相關(guān)性的簡單方法是對差分信號進行編碼d(n"X2(n)—x"n)而不是對xl(n)或x2(n)進行編碼??赏ㄟ^對個體信號加以比較,根據(jù)哪兩個信號能被最高效率地編碼,在每個塊中的Xi(ri)、X2(n)和d(n)之間進行切換。這種用切換的差分編碼實現(xiàn)的預(yù)測在兩個聲道彼此非常相似的情形中是有利的。在多聲道素材的情形中,可由編碼器重新編排聲道以指派合適的聲道對。除了簡單的差分編碼,無損音頻編解碼器還支持更為復(fù)雜的利用多聲道信號的任意聲道之間的聲道間冗余的方案。隨機存取本發(fā)明涉及音頻無損編碼并能夠支持隨機存取。隨機存取意味著對編碼的音頻信號任意部分的快速存取而無需浪費地對之前的各部分進行解碼。這對采用壓縮數(shù)據(jù)的查找、編輯或流送的應(yīng)用是一個重要特征。為了實現(xiàn)隨機存取,在隨機存取單元內(nèi),編碼器需要插入一個能在無需解碼之前各幀的情況下進行解碼的幀。插入的幀被稱為"隨機存取幀"。在此類隨機存取幀中,沒有任何來自之前各幀的采樣可供用于預(yù)測。下面將詳細描述根據(jù)本發(fā)明的用于實現(xiàn)隨機存取的信息。參照配置句法(表6所示),與隨機存取有關(guān)的信息作為配置信息發(fā)送。例如,"random_access"字段被用作指示是否允許隨機存取的信息,它可用8比特表示。此外,如果允許隨機存取,則該8比特"random—access"字段指定配置成一個隨機存取單元的幀數(shù)。例如,當"random—access=00000000"時,不支持隨機存取。換言之,當"random_access〉0"時,則支持隨機存取。更具體地,當"random_access=00000001"時,這指示配置成隨機存取單元的幀數(shù)為1。這表示在所有的幀單元中均允許隨機存取。此外,當"random—access-11111111",這指示配置成隨機存取單元的幀數(shù)為255。因此,"random一access"信息對應(yīng)于當前隨機存取單元內(nèi)的隨機存取幀與下一隨機存取單元中的隨機存取幀之間的距離。在本發(fā)明中,所述距離用幀數(shù)表達。一個32比特的"ra—unit—size"字段被包含在比特流中并且被發(fā)送。在本發(fā)明中,"ra—unit—size"字段指示以字節(jié)計的隨機存取單元的大小并因此指示以字節(jié)計從當前隨機存取幀到下一隨機存取幀的距離。"m_unit—size"字段或者包含在配置句法(表6)中或者包含在幀數(shù)據(jù)句法(表7)中。配置句法(表6)還可包括指示"ra—unit—size"信息在比特流中的存儲位置的信息。該信息被表示為2比特的"ra—flag"字段。更具體地,例如,當"ra—flag-00"時,這表示"rajnit—size"信息未存儲在比特流中。當"ra—flag=01"時,這表示"ra—unit—size"信息被存儲在比特流內(nèi)的幀數(shù)據(jù)句法(表7)中。此外,當"ra_flag=10"時,"ra—unit—size"信息被存儲在比特流的配置句法(表6)。如果"ra—unit_size"信息被包含在配置句法中,則這表示"ra—unit—size"信息只在比特流上發(fā)送一次并且被等同地應(yīng)用于所有隨機存取單元。或者,如果"ra—unit—size"信息包含幀數(shù)據(jù)句法中,則這表示當前隨機存取單元內(nèi)的隨機存取幀和下一隨機存取單元內(nèi)的隨機存取幀內(nèi)之間的距離。因此,由于距離會改變,針對比特流中的每一個隨機存取單元發(fā)送"ra—unit—size"信息。因此,配置句法(表6)內(nèi)的"random—access"字段也可被稱為第一通用消息。另外,"ra_flag"字段也可被稱為第二通用消息。在本發(fā)明的這個方面中,音頻信號包括配置信息和多個隨機存取單元,每個隨機存取單元含有一個或多個音頻數(shù)據(jù)幀,所述音頻數(shù)據(jù)幀中的一個是隨機存取幀,其中所述配置信息包括指示諸幀中的兩相鄰隨機存取幀之間的距離的第一通用信息、以及指示每個隨機存取單元的隨機存取單元大小信息被存儲在哪里的第二通用信息。隨機存取單元大小信息指示以字節(jié)計兩相鄰隨機存取幀之間的距離。或者,在本發(fā)明的這個方面,一種解碼音頻信號的方法包括接收具有配置信息和多個隨機存取單元的音頻信號,每個隨機存取單元含有一個或多個音頻數(shù)據(jù)幀,所述音頻數(shù)據(jù)幀中的一個是隨機存取幀;從配置信息讀取第一通用信息,所述第一通用信息指示諸幀中兩相鄰隨機存取幀之間的距離;以及從配置信息讀取第二通用信息,所述第二通用信息指示每個隨機存取單元的隨機存取大小信息被存儲在哪里,而隨機存取單元大小信息指示以字節(jié)計兩相鄰隨機存取幀之間的距離。解碼器隨后訪問隨機存取單元大小信息并使用該信息以及第一和第二通用信息來執(zhí)行對音頻信號中的音頻數(shù)據(jù)的隨機存取。聲道配置如圖3所示,音頻信號包括根據(jù)本發(fā)明的多聲道信息。例如,每個聲道可按與音頻揚聲器的位置一一對應(yīng)的關(guān)系來映射。配置句法(下面的表6)包括聲道配置信息,它被表示為16比特的"chan—eonfig—info"字段和16比特的"channels"字段。"chan—conflg—info"字段包括將聲道映射到揚聲器位置的信息,而16比特的"channels"字段包括指示聲道總數(shù)的信息。例如,當"channels"字段等于"0"時,這表示聲道對應(yīng)于單聲道。當"channels"字段等于"1"時,這表示這個聲道對應(yīng)于立體聲聲道中的一個。另外,當"channels"字段等于或大于"2"時,這表示這個聲道對應(yīng)于多聲道中的一個。下面的表2示出配置成"ehan一conflgjnfo"字段的每個比特以及與之對應(yīng)的各個聲道的示例。更具體地,當所發(fā)送的比特流中存在相應(yīng)聲道時,"chan—eonfig—info"字段內(nèi)的相應(yīng)比特被置為"1"?;蛘?,當所發(fā)送的比特流中不存在相應(yīng)聲道時,"chan一configjnfo"字段內(nèi)的相應(yīng)比特被置為"0"。本發(fā)明還包括指示配置句法(表6)內(nèi)是否存在"chan—config—info"的信息。該信息被表示為1比特的"chan—config"標志。更具體地,"chan—config=0"指示"chan—config_info"字段不存在。而"ehan_config=1"指示"chan_config—info"字段存在。因此,當"chan—config=0"時,這表示"chan—config—info"字段不是在配置句法(表6)內(nèi)新定義的。表2:聲道配置<table>tableseeoriginaldocumentpage18</column></row><table>如圖3所示,根據(jù)本發(fā)明的音頻信號包括多個聲道或多聲道。因此,當執(zhí)行編碼時,關(guān)于配置成一幀的多聲道的數(shù)目的信息以及關(guān)于每個聲道的采樣數(shù)的信息被插入到比特流中并被發(fā)送。參照配置句法(表6),32比特的"samples"字段被用作指示配置成每個聲道的音頻數(shù)據(jù)采樣總數(shù)的信息。此外,16比特的"frame—length"(幀長度)字段被用作指示相應(yīng)幀內(nèi)每個聲道的采樣數(shù)的信息。此外,"frame—length"字段的16比特值是由編碼器所使用的值確定的,并且被稱為用戶定義值。換言之,用戶定義值不是固定值,而是可在編碼過程中任意確定的值。例如,該值可由編碼過程的用戶設(shè)定。因此,在解碼過程中,當通過圖2所示的多路分解部件200接收到比特流時,應(yīng)當首先獲取每個聲道的幀數(shù)。該值是根據(jù)下面所示的算法得到的。frame=samples/frame—length;rest=samples%frame—length;if(rest)frame++;frlen—last=rest;elsefrlen—last=frame—length;更具體地,每個聲道的幀總數(shù)是通過將經(jīng)由比特流發(fā)送的"samples"字段確定的每個聲道的采樣總數(shù)除以由"frame—length"字段確定的每個聲道的一個幀內(nèi)的采樣數(shù)來計算得到的。例如,當由"samples"字段確定的采樣總數(shù)恰好是由"frame—length"字段確定的每個幀內(nèi)的采樣數(shù)的倍數(shù)時,則該倍數(shù)值成為幀總數(shù)。然而,如果由"samples"字段確定的采樣總數(shù)并非恰好是由"frame—length"字段確定的采樣數(shù)的倍數(shù),而是存在余數(shù)(或殘差),則總幀數(shù)比倍數(shù)值增加"l"。此外,最末幀的采樣數(shù)(frlen—last)被確定為該余數(shù)(或殘差)。這表示僅最末幀的采樣數(shù)與其之前的幀不同。通過如上所述地在編碼器和解碼器之間定義一套標準化的規(guī)則,編碼器就可自由地確定并發(fā)送每個聲道的采樣總數(shù)("samples"字段)以及每個聲道的一個幀內(nèi)的采樣數(shù)("frame」ength"字段)。此外,解碼器可通過對所發(fā)送信息上使用上述算法而精確地確定要用于解碼的每個聲道的幀數(shù)。線性預(yù)測在本發(fā)明中,應(yīng)用線性預(yù)測以實現(xiàn)無損音頻編碼。圖1所示的預(yù)測器160包括至少一個或多個濾波器系數(shù)以從之前的采樣值預(yù)測當前的采樣值。隨后,第二熵編碼部件180對與預(yù)測值和原始值之差相對應(yīng)的殘差值執(zhí)行熵編碼。另外,應(yīng)用于預(yù)測器160的每個塊的預(yù)測器系數(shù)值是作為最優(yōu)值從系數(shù)估算部件120選擇的。此外,預(yù)測器系數(shù)值由第一熵編碼部件140進行熵編碼處理。已由第一熵編碼部件140和第二熵編碼部件180編碼的數(shù)據(jù)作為比特流的一部分由多路復(fù)用部件190插入且隨后被發(fā)送。下面將詳細說明根據(jù)本發(fā)明的執(zhí)行線性預(yù)測的方法。用FIR濾波器的預(yù)測線性預(yù)測在許多應(yīng)用場合中被用于實現(xiàn)語音和音頻信號處理。在下文中,基于有限沖激響應(yīng)(FIR)濾波器描述預(yù)測器160的示例性操作。然而,本例明顯不是對本發(fā)明范圍的限制。時間離散信號x(n)的當前采樣可根據(jù)之前的采樣x(n—k)大致地預(yù)測出。預(yù)測由以下方程式給出。其中K是預(yù)測器的階數(shù)。如果預(yù)測的采樣接近原始采樣,則殘差如下所示它具有比x(n)本身更小的變化,因此能更有效地編碼e(n)。從輸入采樣的片段估算預(yù)測器系數(shù)然后再對該片段進行濾波處理的程序被稱為前向自適應(yīng)。在這種情況下,應(yīng)當發(fā)送這些系數(shù)。另一方面,如果是從之前已處理的片段或采樣(例如從殘差)估算系數(shù),則稱為后向自適應(yīng)。后向適應(yīng)程序的優(yōu)點在于不需要發(fā)送系數(shù),因為估算系數(shù)所需的數(shù)據(jù)對于解碼器也是可用的。10階左右的前向自適應(yīng)預(yù)測方法被廣泛地用于語音編碼,并且可同樣適用于無損音頻編碼。大多數(shù)前向自適應(yīng)無損預(yù)測方案的最大階數(shù)仍然相當小,例如K=32。一個例外是超級音頻CD專用的1比特無損編解碼器,它使用高達128的預(yù)測階數(shù)。另一方面,具有幾百個系數(shù)的后向自適應(yīng)FIR濾波器通用于許多領(lǐng)域,例如聲道均衡和回波抵消。這些系統(tǒng)大多數(shù)是基于LMS算法或其變型的,這些算法也被推薦用于無損音頻編碼。這類具有高階數(shù)的基于LMS的編碼方案是可行的,因為并非必須要將預(yù)測器系數(shù)作為輔助信息發(fā)送,因此它們的數(shù)目對數(shù)據(jù)速率不產(chǎn)生影響。然而,后向自適應(yīng)的編解碼器的缺點在于必須在編碼器和解碼器兩者中作出自適應(yīng),這使解碼器明顯比前向自適應(yīng)情況下的解碼器更為復(fù)雜。向前適應(yīng)預(yù)測作為本發(fā)明的示例性實施方式,前向自適應(yīng)預(yù)測將作為一個示例在本文的描述中給出。在前向自適應(yīng)線性預(yù)測中,一般使用自相關(guān)方法或協(xié)方差方法由系數(shù)估算部件120估算每個塊的最優(yōu)預(yù)測器系數(shù)hk(在殘差方差最小化的意義上)。使用傳統(tǒng)的Levinson-Durbin算法的自相關(guān)方法的額外優(yōu)點是提供了一種迭代式自適應(yīng)調(diào)整預(yù)測器階數(shù)的簡單方法。此外,該算法本身也計算相應(yīng)的部分自相關(guān)系數(shù)。前向自適應(yīng)預(yù)測的另一方面是確定合適的預(yù)測階數(shù)。階數(shù)增大使預(yù)測誤差的方差減小,這導(dǎo)致殘差的比特率&變小。另一方面,預(yù)測器系數(shù)的比特率Rc隨著要被發(fā)送的系數(shù)的數(shù)目而提高。因此,任務(wù)是找到使總比特率最小化的最優(yōu)階數(shù)。這可通過關(guān)于預(yù)測階數(shù)K使下面的等式最小化來表達及,。W(〖卜及e(iQ+及c(iQ,其中K是預(yù)測階數(shù)。由于預(yù)測增益隨階數(shù)升高而單調(diào)上升,因此Re隨著K值而下降。另一方面,由于要發(fā)送的系數(shù)的數(shù)目增加,因此Rc隨K值單調(diào)上升。搜索最優(yōu)階數(shù)可由系數(shù)估算部件120高效率地執(zhí)行,所述系數(shù)估算部件120用遞歸方式確定階數(shù)遞增的所有預(yù)測器。對于每個階數(shù),計算完整的一組預(yù)測器系數(shù)。另外,可推導(dǎo)出相應(yīng)殘差的方差oe2,從而得到殘差的預(yù)期比特率的估算值。在每次迭代過程中——即針對每個預(yù)測階數(shù)——在確定各系數(shù)的比特率的同時還可確定總比特率。最優(yōu)階數(shù)在總比特率不再減小的點找到。盡管從上述方程式可以清楚知道系數(shù)比特率對總比特率有直接的影響,但是,Rc緩慢的增長也使得Rt。^的最小值移至較高的階數(shù)(其中Re同樣較小),這可產(chǎn)生更好的壓縮。因此,預(yù)測器系數(shù)的高效率但仍準確的量化在實現(xiàn)最大壓縮中發(fā)揮著重要作用。預(yù)測階數(shù)在本發(fā)明中,確定了預(yù)測階數(shù)K,預(yù)測階數(shù)K決定用于進行線性預(yù)測的預(yù)測器系數(shù)的數(shù)目。預(yù)測階數(shù)K也是由系數(shù)估算部件120予以確定。在本發(fā)明中,關(guān)于所確定的預(yù)測階數(shù)的信息被包含在比特流中并隨后被發(fā)送。配置句法(表6)包括與預(yù)測階數(shù)K有關(guān)的信息。例如,1比特至10比特的"max一order"字段對應(yīng)于指示最大階數(shù)值的信息。1比特至10比特的"max_order"字段的最大值是&=1023(例如10比特)。作為與預(yù)測階數(shù)K有關(guān)的另一信息,配置句法(表6)包括1比特的"adapt_order"字段,它指示每個塊是否存在最優(yōu)階數(shù)。例如,當"adapt—order=l"時,應(yīng)當給每個塊提供最優(yōu)階數(shù)。在block_data句法(表8)中,最優(yōu)階數(shù)作為1比特至10比特的"0pt_order"字段提供。此外,當"adapt—order=0"時,則不對每個塊提供單獨的最優(yōu)階數(shù)。在這種情況下,"max—order"字段即成為應(yīng)用于所有塊的最終階數(shù)。最優(yōu)階數(shù)(opt—order)是基于max—order字段值和相應(yīng)塊的大小(NB)確定的。更具體地,例如當max—order被確定為K匪二10并且"adapt—order=l"時,則可考慮相應(yīng)塊的大小確定每個塊的opt_order。在某些情況下,大于max_order(Kmax=10)的叩tjrder值是可能的。特別地,本發(fā)明涉及較高的預(yù)測階數(shù)。根據(jù)本發(fā)明的實施方式,在沒有分級塊切換的情形中,在長和短的塊長度之間可能是4倍因數(shù)的關(guān)系(例如4096與1024或8192與2048)。另一方面,在采用了分級塊切換的實施方式中,這個因數(shù)可以提高(例如高達32),以使范圍更大(例如從16384下至512或甚至在高采樣率下從32768至1024)。在執(zhí)行了分級塊切換的實施方式中,為了更好地使用非常長的塊,可采用更高的最大預(yù)測階數(shù)。最大階數(shù)可以是Kmax=1023。在這些實施方式中,Km^可由塊長度NB界定,例如Kn^〈NB/8(例如當NB=2048時,Kmax=255)。因此,使用Kmax=1023需要至少Nb-8192的塊長度。在這些實施方式中,配置句法(表6)中的"max—order"字段可高達10比特而block—data句法(表8)中的"opt_order"字段同樣可高達10比特。具體塊中的實際比特數(shù)可取決于一個塊所允許的最大階數(shù)。如果塊是短塊,則本地預(yù)測階數(shù)可小于全局預(yù)測階數(shù)。在本發(fā)明中,本地預(yù)測階數(shù)是通過考慮相應(yīng)塊長度Nb碗定的,而全局預(yù)測階數(shù)是通過配置句法中的"max—order"K,確定的。例如,如果Kmax=1023,但Nb:2048,則由于本地預(yù)測階數(shù)為255,因此"opt—order"字段被確定為8比特(而不是10比特)。更具體地說,可基于下面的等式確定optorder:opt—order二min(全局預(yù)測階數(shù),本地預(yù)測階數(shù));另外,全局和本地預(yù)測階數(shù)可通過下面的等式確定全局預(yù)測階數(shù)二ceil(log2(最大預(yù)測階數(shù)+1))本地預(yù)測階數(shù)二max(ceil(log2((Nb〉>3)—1)),1)在這些實施方式中,預(yù)測了來自一個聲道的細分塊的數(shù)據(jù)采樣。使用之前塊的最末K個采樣預(yù)測當前塊的第一采樣。K值是基于從上述方程式推導(dǎo)出的opt_order確定的。如果當前塊是聲道的第一個塊,則不使用來自之前塊的采樣。在這種情形中,采用的是漸進階數(shù)預(yù)測。例如,假設(shè)相應(yīng)塊的op^order值為K-5,則該塊中的第一采樣不執(zhí)行預(yù)測。該塊的第二采樣使用該塊的第一采樣執(zhí)行預(yù)測(如同K-1),該塊的第三采樣使用該塊的第一采樣和第二采樣執(zhí)行預(yù)測(如同K-2)等。因此,從第六采樣開始以及對于這之后的采樣,根據(jù)K=5的opt—order執(zhí)行預(yù)測。如上所述,預(yù)測階數(shù)從K二1漸進地增加至K二5。當在隨機存取幀中使用時,上述漸進階數(shù)型預(yù)測是非常有利的。由于隨機存取幀對應(yīng)于隨機存取單元的基準幀,因此隨機存取幀不是通過使用之前的幀采樣執(zhí)行預(yù)測。即,這種漸進預(yù)測技術(shù)在隨機存取幀的開頭處就可應(yīng)用。預(yù)測器系數(shù)的量化上述預(yù)測器系數(shù)在圖1的量化部件130中量化。由于即便很小的量化誤差也會導(dǎo)致大大偏離最優(yōu)預(yù)測濾波器所需的頻譜特性,因此預(yù)測系數(shù)hk的直接量化對發(fā)送而言不是非常高效率的。為此,預(yù)測器系數(shù)的量化是基于可由系數(shù)估算部件120計算得到的部分自相關(guān)(反射)系數(shù)rk。例如,如上所述,系數(shù)估算部件120是使用傳統(tǒng)Levinson—Durbin算法處理的。頭兩個部分自相關(guān)系數(shù)(相應(yīng)地為Yi和Y2)通過使用下面的函數(shù)被量化<formula>formulaseeoriginaldocumentpage23</formula>而其余系數(shù)是使用簡單的7比特的均勻量化器量化的在所有情況下,所得量化值ak被約束在范圍[一64,63]內(nèi)熵編碼如圖1所示,在本發(fā)明中應(yīng)用了兩種類型的熵編碼。更具體地,第一熵編碼部件140被用于編碼上述預(yù)測器系數(shù)。另外,第二熵編碼部件180被用來編碼上述音頻原始采樣和音頻殘差采樣。在下文中將詳細說明這兩種類型的熵編碼。預(yù)測器系數(shù)的第一熵編碼相關(guān)技術(shù)的Rice代碼被用作根據(jù)本發(fā)明的第一熵編碼方法。例如,量化系數(shù)ak的發(fā)送是通過生成殘差值執(zhí)行的5k=a「offsetk這些殘差值進而是通過使用第一熵編碼部件140——例如用Rice代碼方法來編碼的。該過程中使用的Rice代碼的相應(yīng)偏移和參數(shù)可從以下表3、4和5所示的諸組中的一個以全局方式進行選擇。表索引(即2比特的"coef—table")在配置句法(表6)中指出。如果"coef_table=ll",則這表示未應(yīng)用熵編碼,并且量化的系數(shù)各自以7比特發(fā)送。在這種情形中,偏移始終是一64以獲得被約束于的無符號值S^ak+64。相反,如果"coeff—table=00",則選擇下面的表3,而如果"coeff—table=01",則選擇下面的表4。最后,如果"coeff—table=10",則選擇表5。當在圖2的解碼器中接收到這些經(jīng)量化的系數(shù)時,第一熵解碼部件220通過使用將殘差值5k與偏移結(jié)合以生成部分自相關(guān)系數(shù)ak的量化索引的過程來重建預(yù)測器系數(shù)ak=Sk+0ffsetk其后,通過使用下面的方程式執(zhí)行頭兩個系數(shù)(Y,和Y2)的重建-par,如Q」-r(q);Par2=j/22?!?—r(a2);其中29表示重構(gòu)的系數(shù)的整數(shù)表示所需的恒量(Q=20)比例因數(shù),而r(.)是根據(jù)經(jīng)驗確定的映射表(未示出,因為映射表會根據(jù)實現(xiàn)而變化)。因此,是根據(jù)采樣頻率提供用于進行第一熵編碼的這三種類型的系數(shù)表。例如,采樣頻率可被分成48kHz、96kHz和192kHz。這里,三個表3、4、5中的每一個分別提供給每種采樣頻率??蓪φ麄€文件選擇三個不同的表中的一個,而不是使用單個表。一般應(yīng)當根據(jù)采樣率來選擇表。對于44.1kHz的素材,本發(fā)明的申請人推薦使用48kHz表。然而,一般而言,也可按其它準則來選擇表。<table>tableseeoriginaldocumentpage24</column></row><table><table>tableseeoriginaldocumentpage25</column></row><table>表4:用于編碼量化系數(shù)(96kHz)的Rice碼參數(shù)<table>tableseeoriginaldocumentpage25</column></row><table><table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage27</column></row><table>殘差的第二熵編碼本發(fā)明包含應(yīng)用于圖1的第二熵編碼部件180的編碼方法的兩種不同的模式,這將在下面予以詳細說明。在簡單模式中,使用Rice代碼對殘差值e(n)進行熵編碼。對于每個塊,或者可使用同一Rice代碼編碼所有的值,或者可將塊進一步分成四個部分,每個部分用一不同的Rice代碼編碼。如圖1所示,發(fā)送所應(yīng)用的代碼的索引。由于存在不同的方法確定給定的一組數(shù)據(jù)的最優(yōu)Rice代碼,因此由編碼器根據(jù)殘差的統(tǒng)計結(jié)果選擇合適的代碼?;蛘?,編碼器可利用BGMC模式使用更為復(fù)雜和高效率的編碼方案。在BGMC模式中,殘差的編碼是通過將分布劃分成兩個類別實現(xiàn)的。這兩種類型包括屬于分布的中心區(qū)域Ie(n)1<emax的殘差,以及屬于其尾部的殘差。尾部的余數(shù)僅僅是被重新居中(re-centered)(即對于e(n)>emax,提供et(n)=e(n)—emax)并使用如上所述的Rice代碼編碼。然而,為了編碼處于分布中心的殘差,BGMC首先將殘差分成LSB和MSB分量,隨后BGMC使用塊Gilbert_Moore(算術(shù))代碼編碼MSB。最后,BGMC使用直接固定長度代碼發(fā)送LSB。可以對參數(shù)em^和直接發(fā)送的LSB的數(shù)目加以選擇,使它們僅些微地影響這種方案的編碼效率,同時使編碼的復(fù)雜度明顯降低。根據(jù)本發(fā)明的配置句法(表6)和block—data句法(表8)包括與Rice代碼和BGMC代碼的編碼有關(guān)的信息?,F(xiàn)在對這種信息進行詳細說明。配置句法(表6)首先包括一個1比特的"bgmC_mode"字段。例如,"bgmc—mode"=0表示Rice代碼,"bgmc_mode"=1表示BGMC代碼。配置句法(表6)還包括一個1比特的"sb_part"字段。"sb_part"字段對應(yīng)于與將塊分割成子塊并對經(jīng)分割的子塊進行編碼的方法有關(guān)的信息。這里,"sb_part"的意義根據(jù)"bgmc—mode"字段的值而改變。例如,當"bgmc_mode=0"時,即當應(yīng)用Rice代碼時,"sb_part=0"表示該塊并不被分割成子塊。或者,"sb_part=l"表示以1:4子塊分割比分割該塊。或者,當"bgmc—mode=l"時,即當采用BGMC代碼時,"sb_part=0"表示以1:4子塊分割比分割該塊?;蛘?,"sb_part=l"表示以1:2:4:8子塊分割比分割該塊。與包含在配置句法(表6)中的信息相對應(yīng)的每個塊的blod^data句法(表8)包括0比特至2比特的可變"ec_sub"字段。更具體地,"ec—sub"字段指示存在于實際相應(yīng)塊中的子塊的數(shù)目。這里,"ec—sub"字段的意義根據(jù)配置句法(表6)內(nèi)的"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—sub=0"指示一個子塊(即該塊沒有分割成多個子塊),而"ec_sub=l"指示配置了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個子塊。如上所述定義在每個塊內(nèi)的子塊使用差分編碼方法由第二熵編碼部件180進行編碼。下面描述使用Rice代碼的一個示例。對于殘差值的每個塊,或者可使用同一Rice代碼編碼所有值,或者如果在配置句法中"sb_part"字段被設(shè)置,則該塊可被分割成四個子塊,每個編碼的子塊具有一不同的Rice代碼。在后一種情況下,塊數(shù)據(jù)句法(表8)中的"ec—sub"字段指示是使用一個塊還是四個塊。盡管第一子塊的參數(shù)3[1=0]或者用4比特(分辨率《16比特)或者用5比特(分辨率〉16比特)直接發(fā)送,但僅發(fā)送下列參數(shù)s[iX)]的差分(s[i]—s[卜l])。這些差分還使用適當選擇的Rice代碼再行編碼。在這種情況下,差分使用的Rice代碼參數(shù)具有值"0"。語法根據(jù)本發(fā)明的實施方式,包含在音頻位流中的各種信息的句法示出于下表中。表6示出音頻無損編碼的配置句法。這種配置句法可形成周期性地置于比特流中的頭部,可形成每個幀的幀頭等。表7示出一種幀一數(shù)據(jù)句法,而表8示出一種塊一數(shù)據(jù)句法。表6:配置語法<table>tableseeoriginaldocumentpage30</column></row><table><formula>formulaseeoriginaldocumentpage31</formula>表7:Frame_data語法<table>tableseeoriginaldocumentpage31</column></row><table><table>tableseeoriginaldocumentpage32</column></row><table><formula>formulaseeoriginaldocumentpage33</formula>壓縮結(jié)果下面,將無損音頻編解碼器與兩種最流行的無損音頻壓縮程序——即開放式源代碼編解碼器FLAC和Monkey氏音頻(MAC3.97)作比較。這里,開放式源代碼編解碼器FLAC使用前向自適應(yīng)預(yù)測,而Monkey氏音頻(MAC3.97)是作為壓縮方面的當前技術(shù)發(fā)展水平的算法使用的后向自適應(yīng)編解碼器。這兩種編解碼器均在有提供最大壓縮的選項(即flac—8和mac—c4000)的情況下運行。編碼器的結(jié)果是針對中等壓縮等級(其預(yù)測階數(shù)限制于K_60)以及最大壓縮等級(K_1023)來確定的,兩者均具有500ms的隨機存取。測試是在有1024MB內(nèi)存的1.7GHz奔騰-M系統(tǒng)上進行的。測試包括采樣率為48、96和192kHz、分辨率為16和24比特的將近1GB的立體聲波形數(shù)據(jù)。壓縮率下面,壓縮率被定義為:〔=[(壓縮的文件大小)/(原始文件大小)]*100%其中越小的值指示越好的壓縮。所檢査的音頻格式的結(jié)果示于表9(FLAC編解碼器不支持192kHz的素材)。表9:不同音頻格式的平均壓縮率比較(kHz/比特)<table>tableseeoriginaldocumentpage34</column></row><table>這些結(jié)果顯示,最高等級的ALS在所有格式上性能都勝過FLAC和Monkey氏音頻,但對于高清晰度素材(即,96kHz/24比特及以上)尤甚。即使在中間等級,ALS也提供最好的總壓縮性。復(fù)雜度不同編解碼器的復(fù)雜度強烈地取決于實際實現(xiàn),尤其是編碼器的實現(xiàn)。如上所述,本發(fā)明的音頻信號編碼器仍在發(fā)展之中。因此,我們將我們的分析限于解碼器一簡單的C語言代碼實現(xiàn)而不作進一步的優(yōu)化。壓縮的數(shù)據(jù)由當前最佳的編碼器實現(xiàn)生成。圖IO中示出了對在不同復(fù)雜度等級上編碼的各種音頻格式進行實時解碼所用的平均CPU負荷。即使是對于最大復(fù)雜度,解碼器的CPU負荷也只在20-25%左右,這進而表示基于文件的解碼比實時解碼快至少4一5倍。表10:根據(jù)音頻格式(kHz/比特)和ALS編碼器復(fù)雜度的平均CPU負載(在1.7GHz奔騰-M上的百分比)<table>tableseeoriginaldocumentpage34</column></row><table>編解碼器被設(shè)計成可提供大范圍的復(fù)雜度等級。盡管最大等級以最慢編碼和解碼速度為代價實現(xiàn)最高壓縮,但較快的中間等級僅些微地降低壓縮性,解碼的復(fù)雜度卻顯著地低于最大等級(即對于48kHz速材將近5。/。的CPU負荷)。使用低復(fù)雜度等級(即K—15,Rice編碼)相比中間等級僅使壓縮性降低1-1.5%,但解碼器復(fù)雜度進一步降低3倍(即對于48kHz的素材而言低于2Q/。的CPU負荷)。因而,音頻數(shù)據(jù)甚至可以在計算能力很低的硬件上完成解碼。盡管編碼器復(fù)雜度既會因較高的最大階數(shù)也會因更復(fù)雜的塊切換算法而增加(根據(jù)實施方式)而增大,但解碼器會受到較高平均預(yù)測階數(shù)的影響。前面的實施方式(例如分級塊切換)和優(yōu)點僅為示例性的,不應(yīng)被解釋為是對所附權(quán)利要求書的限制。本領(lǐng)域技術(shù)人員會明白,上述原理可應(yīng)用于其它裝置和方法。許多選擇、修改和變化對本領(lǐng)域內(nèi)技術(shù)人員而言是顯而易見的。工業(yè)應(yīng)用本領(lǐng)域內(nèi)技術(shù)人員可以理解,可對本發(fā)明作出各種修改和變化而不脫離本發(fā)明的精神或范圍。例如,本發(fā)明的諸方面和實施方式很容易在如有損音頻信號編解碼器等的另一種音頻信號編解碼器中采用。因此,本發(fā)明旨在涵蓋本發(fā)明的所有這些修改和變化。權(quán)利要求1.一種處理音頻信號的方法,所述方法包括將隨機存取單元信息添加至包含多個隨機存取單元的音頻信號中,每個隨機存取單元包括若干個幀且其中至少一個幀是隨機存取幀,每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀,并且所述隨機存取單元信息指示按字節(jié)計所述各隨機存取幀中的至少兩個之間的距離。2.如權(quán)利要求1所述的方法,其特征在于,所述添加步驟將所述隨機存取單元信息添加至所述音頻信號的配置信息中,并且所述隨機存取單元信息指示按字節(jié)計連續(xù)隨機存取幀之間的距離。3.如權(quán)利要求2所述的方法,其特征在于,所述隨機存取單元信息指示按字節(jié)計所述隨機存取單元之間的大小。4.如權(quán)利要求2所述的方法,其特征在于,還包括將第一通用消息添加至所述配置信息中,所述第一通用信息指示按幀計連續(xù)隨機存取幀之間的距離。5.如權(quán)利要求4所述的方法,其特征在于,還包括將第二通用信息添加至所述配置信息中,所述第二通用信息指示所述隨機存取單元信息位于所述配置信息中。6.如權(quán)利要求2所述的方法,其特征在于,還包括將位置信息添加至所述配置信息中,所述位置信息指示所述隨機存取單元信息位于所述配置信息中。7.如權(quán)利要求1所述的方法,其特征在于,所述添加步驟將所述隨機存取單元信息與至少一個隨機存取幀相關(guān)聯(lián)地添加至所述音頻信號中,并且所述隨機存取單元大小信息表示按字節(jié)計所述相關(guān)聯(lián)的隨機存取幀與下一隨機存取幀之間的距離。8.如權(quán)利要求7所述的方法,其特征在于,所述隨機存取單元信息表示按字節(jié)計包含所述相關(guān)聯(lián)的隨機存取幀的隨機存取單元的大小。9.如權(quán)利要求7所述的方法,其特征在于,還包括將第一通用信息添加至所述配置信息中,所述第一通用信息指示按幀計連續(xù)隨機存取幀之間的距離。10.如權(quán)利要求9所述的方法,其特征在于,還包括11.如權(quán)利要求7所述的方法,其特征在于,還包括將位置信息添加至所述配置信息中,所述位置信息指示所述隨機存取單元信息與所述隨機存取幀相關(guān)聯(lián)地定位。12.如權(quán)利要求11所述的方法,其特征在于,所述位置信息指示所述隨機存取單元信息位于所述相關(guān)聯(lián)的隨機存取幀的前面。13.如權(quán)利要求l所述的方法,其特征在于,所述隨機存取單元信息表示按字節(jié)計一個隨機存取單元的大小。14.如權(quán)利要求l所述的方法,其特征在于,還包括將第一通用信息添加至所述配置信息中,所述第一通用信息指示按幀計連續(xù)隨機存取幀之間的距離。15.如權(quán)利要求14所述的方法,其特征在于,還包括將第二通用信息添加至所述配置信息中,所述第二通用信息指示所述隨機存取單元信息是否是與所述隨機存取幀相關(guān)聯(lián)地定位和位于所述配置信息中這兩者之一。16.如權(quán)利要求ll所述的方法,其特征在于,還包括將位置信息添加至所述配置信息中,所述位置信息指示所述隨機存取單元信息是否是與所述隨機存取幀相關(guān)聯(lián)地定位和位于所述配置信息中這兩者之17.—種處理音頻信號的方法,所述方法包括接收具有多個隨機存取單元的音頻信號,每個隨機存取單元包括多個幀且其中至少一個幀是隨機存取幀,每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀;從所述音頻信號讀取隨機存取單元信息,所述隨機存取單元信息指示按字節(jié)計所述各隨機存取幀中的至少兩個之間的距離;以及基于所述隨機存取單元信息解碼所述各隨機存取幀中的至少一個D18.如權(quán)利要求17所述的方法,其特征在于,所述讀取步驟從所述音頻信號的配置信息中讀取所述隨機存取單元信息,并且所述隨機存取單元信息指示按字節(jié)計連續(xù)隨機存取幀之間的距離。19.如權(quán)利要求18所述的方法,其特征在于,所述隨機存取單元信息指示按字節(jié)計所述隨機存取單元的大小。20.如權(quán)利要求18所述的方法,其特征在于,還包括從所述配置信息中讀取第一通用信息,所述第一通用信息指示按幀計連續(xù)隨機存取幀之間的距離;所述解碼步驟基于所述隨機存取單元信息和所述第一通用信息解碼所述各隨機存取幀中的至少一個。21.如權(quán)利要求20所述的方法,其特征在于,還包括從所述配置信息中讀取第二通用信息,所述第二通用信息指示所述隨機存取單元信息位于所述配置信息中,并且其中所述讀取隨機存取單元的信息步驟基于所述第二通用信息來讀取所述隨機存取單元信息。22.如權(quán)利要求18所述的方法,其特征在于,還包括從所述配置信息中讀取位置信息,所述位置信息指示所述隨機存取單元信息位于所述配置信息中;并且其中所述讀取隨機存取單元信息的步驟基于所述位置信息來讀取所述隨機存取單元信息。23.如權(quán)利要求17所述的方法,其特征在于,所述讀取步驟從所述音頻信號中與一相關(guān)聯(lián)的隨機存取幀相關(guān)聯(lián)的位置讀取關(guān)于該相關(guān)聯(lián)的隨機存取幀的隨機存取單元信息,并且所述隨機存取單元信息指示按字節(jié)計所述相關(guān)聯(lián)的隨機存取幀與下一隨機存取幀之間的距離。24.如權(quán)利要求23所述的方法,其特征在于,所述隨機存取單元信息指示按字節(jié)計包含所述相關(guān)聯(lián)的隨機存取幀的隨機存取單元的大小。25.如權(quán)利要求23所述的方法,其特征在于,還包括.-從所述配置信息中讀取第一通用信息,所述第一通用信息指示按幀計連續(xù)隨機存取幀之間的距離;并且其中所述解碼步驟基于所述隨機存取單元信息和所述第一通用信息來解碼至少一個隨機存取幀。26.如權(quán)利要求25所述的方法,其特征在于,還包括從所述配置信息中讀取第二通用信息,所述第二通用信息指示所述隨機存取單元信息與所述隨機存取幀相關(guān)聯(lián)地定位;并且其中所述讀取隨機存取單元信息的步驟基于所述第二通用信息來讀取所述隨機存取單元信息。27.如權(quán)利要求23所述的方法,其特征在于,還包括從所述配置信息讀取位置信息,所述位置信息指示所述隨機存取單元信息與所述隨機存取幀相關(guān)聯(lián)地定位;并且所述讀取隨機存取單元信息的步驟基于所述位置信息來讀取所述隨機存取單元信息。28.如權(quán)利要求27所述的方法,其特征在于,所述位置信息指示所述隨機存取單元信息位于所述相關(guān)聯(lián)的隨機存取幀的前面。29.如權(quán)利要求17所述的方法,其特征在于,所述隨機存取單元信息指示按字節(jié)計一個隨機存取幀的大小。30.如權(quán)利要求17所述的方法,其特征在于,還包括-從所述配置信息中讀取第一通用信息,所述第一通用信息指示按幀計連續(xù)隨機存取幀之間的距離;并且所述解碼步驟基于所述隨機存取單元信息和所述第一通用信息來解碼所述隨機存取幀中的至少一個。31.如權(quán)利要求30所述的方法,其特征在于,還包括從所述配置信息中讀取第二通用信息;所述第二通用信息指示所述隨機存取單元信息是否是與所述隨機存取幀相關(guān)聯(lián)地定位和位于所述配置信息中這兩者之一;并且其中所述讀取隨機存取單元信息的步驟基于所述第二通用信息來讀取所述隨機存取單元信息。32.如權(quán)利要求17所述的方法,其特征在于,還包括從所述配置信息中讀取位置信息,所述位置信息指示所述隨機存取單元信息是否是與所述隨機存取幀相關(guān)聯(lián)地定位和位于所述配置信息中這兩者之一;并且其中所述讀取隨機存取單元信息的步驟基于所述位置信息來讀取所述隨機存取單元信息。33.—種用于處理音頻信號的裝置,包括編碼器,所述編碼器被配置成將隨機存取單元信息添加至含多個隨機存取單元的音頻信號中,每個隨機存取單元包括多個幀且其中至少一個幀是隨機存取幀,每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀,并且所述隨機存取單元信息表示按字節(jié)計所述各隨機存取幀中的至少兩個之間的距離。34.—種用于處理音頻信號的裝置,包括解碼器,所述解碼器被配置成接收具有多個隨機存取單元的音頻信號,每個隨機存取單元包括多個幀且其中至少一個幀是隨機存取幀,每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀;所述解碼器被配置成從所述音頻信號中讀取隨機存取單元信息,所述隨機存取單元信息指示按字節(jié)計所述各隨機存取幀中的至少兩個之間的距離;并且所述解碼器被配置成基于所述隨機存取單元信息來解碼所述各隨機存取幀中的至少一個。全文摘要在一個實施例中,隨機存取單元信息被添加至含多個隨機存取單元的音頻信號。每個隨機存取單元包括多個幀,并且這些幀中的至少一個為隨機存取幀。每個隨機存取幀是以使得解碼該隨機存取幀不需要用到之前的幀的方式編碼的幀。隨機存取單元信息指示按字節(jié)計各隨機存取幀中的至少兩個之間的距離。文檔編號G10L19/02GK101218631SQ200680025137公開日2008年7月9日申請日期2006年7月10日優(yōu)先權(quán)日2005年7月11日發(fā)明者T·利伯成申請人:Lg電子株式會社