两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

帶多級碼本和冗余編碼的子帶話音編解碼器的制作方法

文檔序號:2830078閱讀:256來源:國知局

專利名稱::帶多級碼本和冗余編碼的子帶話音編解碼器的制作方法
技術(shù)領(lǐng)域
:描述的工具和技術(shù)涉及音頻編解碼器,尤其涉及子帶編碼、碼本、和/或冗余編碼。
背景技術(shù)
:隨著數(shù)字無線電話網(wǎng)絡(luò)的出現(xiàn),經(jīng)因特網(wǎng)的流媒體音頻、以及因特網(wǎng)電話技術(shù)、數(shù)字傳輸和語音傳送己經(jīng)變得很平常了。工程師利用多種技術(shù)在保證質(zhì)量的同時(shí)來有效處理語音。了解這些技術(shù)有助于理解音頻信息是如何在計(jì)算機(jī)中被表示和處理的。I.計(jì)算機(jī)內(nèi)的音頻信息的表示計(jì)算機(jī)將音頻信息作為一系列表示音頻的數(shù)字處理。單個(gè)數(shù)字能夠表示一個(gè)音頻樣本,它是一特定時(shí)刻處的幅值。許多因素會(huì)影響音頻的質(zhì)量,包括樣本深度和采樣速率。樣本深度(或精確度)顯示了用來表示樣本的數(shù)字的范圍。因?yàn)槟軌虮硎靖鼮榧?xì)微的幅度變化,所以通常每個(gè)樣本的可能值越多則輸出質(zhì)量就會(huì)越高。一個(gè)8位樣本具有256個(gè)可能值,而16位樣本則具有65,536個(gè)可能值。采樣速率(一般被測量作為每秒鐘的采樣數(shù))也會(huì)影響質(zhì)量。因?yàn)槟軌虮硎靖哳l率的聲音,所以采樣速率越高,質(zhì)量就越高。一些常見的采樣速率是8,000、11,025、22,050、32,000、44,100、48,000以及96,000采樣/秒(Hz)。表l示出了帶有不同質(zhì)量等級的多個(gè)音頻格式,及其相應(yīng)的原始比特率成本。<table>tableseeoriginaldocumentpage5</column></row><table>表l:不同質(zhì)量的,的比特率如表1所示,高質(zhì)量音頻的成本對應(yīng)高比特率。高質(zhì)量音頻信息消耗大量的計(jì)算機(jī)存儲(chǔ)和傳輸容量。許多計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)缺少用來處理原始數(shù)字音頻的資源。壓縮(也成為編碼或譯碼)通過將信息轉(zhuǎn)換為較低比特率的形式來降低存儲(chǔ)及傳輸音頻信息的成本。壓縮可能是無損耗的(其中質(zhì)量不受損害)或有損耗的(其中質(zhì)量受到損害,但是從隨后的無損壓縮得到的比特率降低更為顯著)。解壓縮(也成為解碼)從壓縮形式中提取原始信息的重構(gòu)版本。編解碼器是一種編碼器/解碼器系統(tǒng)。II.語音編碼器和解碼器音頻壓縮的一個(gè)目標(biāo)是數(shù)字化表示音頻信號,從而為給定的比特?cái)?shù)量提供最佳的信號質(zhì)量。換句話說,這一目標(biāo)是在給定的質(zhì)量等級下用最少的比特來表示音頻信號。由編碼/傳送/解碼引起的諸如傳輸誤差的恢復(fù)能力以及對整體延遲的限制的其他目標(biāo)也可以應(yīng)用于一些場景。。不同類型的音頻信號具有不同的特征。音樂以大范圍的頻率和振幅為特征,并且通常包含兩個(gè)或多個(gè)信道。另一方面,語音以小范圍的頻率和振幅為特征,并且一般在一個(gè)信道內(nèi)表示。特定的編解碼器以及處理技術(shù)適用于音樂和普通音頻;其他編解碼器及其處理技術(shù)則適用于語音。一類常規(guī)語音編解碼器使用線性預(yù)測來實(shí)現(xiàn)壓縮。該語音編碼包含多級。該編碼器找出并量化用于線性預(yù)測濾波器的系數(shù),該濾波器用于預(yù)測各樣本值作為在前樣本值的線性組合。殘留信號(被表示為"激勵(lì)"信號)表示未被濾波器精確預(yù)測的那部分原始信號。在某些級,語音編解碼器使用對濁音段(以嗓音的聲帶振動(dòng)為特征)、清音段、以及無聲段使用不同的壓縮技術(shù),這是因?yàn)椴煌愋偷恼Z音具有不同的特征。濁音段通常呈現(xiàn)出高度重復(fù)的發(fā)音模式,即使是在殘留域中。對于濁音段,該編碼器通過將當(dāng)前殘留信號與在前的殘留周期進(jìn)行比較并根據(jù)相對于在前周期的延遲或滯后信息對當(dāng)前殘留信號進(jìn)行編碼而實(shí)現(xiàn)進(jìn)一步的壓縮。該編碼器使用專門設(shè)計(jì)的碼本來處理原始信號與經(jīng)預(yù)測的、被編碼表示之間的其他差異。許多語音編解碼器通過一些方法在信號中使用暫時(shí)冗余度。如上所述,一種常用的方法是根據(jù)相對于在前激勵(lì)周期延遲或滯后,使用基音(pitch)參數(shù)的長期預(yù)測來預(yù)測當(dāng)前激勵(lì)信號。使用暫時(shí)冗余度能夠在質(zhì)量和比特率方面大幅提高壓縮效率,但會(huì)把記憶依賴性引入編解碼器,即解碼器依靠該信號的一個(gè)在前解碼部分才能正確解碼該信號的另一部分。許多有效的語音編解碼器都具有明顯的記憶依賴。盡管上面所描述的語音編解碼器對許多應(yīng)用而言具有良好的整體性能,但是它們?nèi)匀挥腥舾扇毕?。更具體地,當(dāng)語音編解碼器被用來與動(dòng)態(tài)網(wǎng)絡(luò)資源一起使用時(shí)就會(huì)遇到若干缺陷。在此場景中,編碼的語音可能會(huì)由于暫時(shí)的帶寬不足或其他問題而丟失。A.窄帶和寬帶編解碼器許多標(biāo)準(zhǔn)語音編解碼器被設(shè)計(jì)用于帶有8kHz采樣速率的窄帶信號。雖然8kHz采樣速率在許多情況下是足夠的,在其他情況下也可以使用更高的采樣速率,諸如用來表示更高的頻率。帶有至少16kHz采樣速率的語音信號通常被稱為寬帶語音。雖然這些寬帶編解碼器正適于表示高頻率語音模式,但是它們通常需要比窄帶編解碼器更高的比特率。這樣高的的比特率在一些網(wǎng)絡(luò)類型中或在一些網(wǎng)絡(luò)條件下是不可行的。B.動(dòng)態(tài)網(wǎng)絡(luò)條件中低效的記憶依賴當(dāng)編碼語音由諸如丟失、延遲、破壞或由其他方面造成在傳輸中不可用而有所缺失,則語音編解碼器的性能會(huì)由于對丟失信息的記憶依賴而受到損害。有關(guān)激勵(lì)信號的信息丟失妨礙了隨后依賴于那些丟失信號的重建。如果丟失了在前周期,則滯后信息因?yàn)槠渲赶蛄私獯a器不具有的信息而會(huì)變得無用。記憶依賴的另一個(gè)例子是濾波器系數(shù)插值(用來平滑在各不同合成濾波器之間的轉(zhuǎn)換,尤其是針對濁音信號)。如果丟失了某一幀的濾波器系數(shù),則用于隨后幀的濾波器系數(shù)可能具有不正確的值。解碼器使用各種技術(shù)來隱蔽由于分組丟失和其他信息丟失所導(dǎo)致的差錯(cuò),但是這些隱蔽技術(shù)很少能夠完全隱蔽這些差錯(cuò)。例如,解碼器基于被正確解碼的信息重復(fù)在前的參數(shù)或估計(jì)參數(shù)。然而,滯后信息可能非常敏感,并且現(xiàn)有技術(shù)無法很有效的進(jìn)行隱蔽。在大部分情況下,解碼器最終會(huì)從由于丟失信息所導(dǎo)致的差錯(cuò)中恢復(fù)。隨著分組的接收和解碼,參數(shù)被逐漸調(diào)整到它們正確的值。但是質(zhì)量很可能劣化直到解碼器能夠恢復(fù)正確的內(nèi)部狀態(tài)。在許多最為高效的語音編解碼器中,回放質(zhì)量會(huì)在一延長時(shí)段(例如,長至一秒)內(nèi)劣化,引起高度失真并通常將語音描繪地難以理解。恢復(fù)時(shí)間在發(fā)生例如無聲幀的明顯變化時(shí)更快,因?yàn)檫@為許多參數(shù)提供了一自然重置點(diǎn)。一些編解碼器比較不容易出現(xiàn)分組丟失,因?yàn)樗鼈円瞥藥g依賴。然而,這種編解碼器需要明顯更高的比特率來完成與帶有幀間依賴的傳統(tǒng)CELP編解碼器相同的話音質(zhì)量在此給出了在計(jì)算機(jī)系統(tǒng)內(nèi)用于表示語音信號的壓縮和解壓縮的重要性,因而語音的壓縮和解壓引起了對其的研究和標(biāo)準(zhǔn)化的行為就不足為奇了。無論現(xiàn)有技術(shù)和工具有怎樣的優(yōu)點(diǎn),但它們都不具有這里描述的技術(shù)和工具的優(yōu)點(diǎn)。
發(fā)明內(nèi)容總的說來,詳細(xì)描述涉及用于音頻編解碼器的各種技術(shù)和工具,尤其涉及有關(guān)子帶編碼、音頻編解碼器碼本、和/或冗余編碼的工具和技術(shù)。描述的實(shí)施例執(zhí)行了一個(gè)或多個(gè)所描述的技術(shù)和工具,包括但不限于以下各項(xiàng)一個(gè)方面,音頻信號的比特流包括用于當(dāng)前幀并參考了一段在前幀用以解碼當(dāng)前幀的主要編碼信息,以及用于解碼該當(dāng)前幀的冗余編碼信息。該冗余編碼信息包括與在前幀被參考段相關(guān)聯(lián)的信號歷史信息。另一方面,音頻信號的比特流包括用于當(dāng)前編碼單元并參考了一段在前編碼單元用以解碼當(dāng)前編碼單元的主要編碼信息,以及用于解碼該當(dāng)前編碼單元的冗余編碼信息。該冗余編碼信息包括用于僅當(dāng)在前編碼單元不可用時(shí)被用來解碼當(dāng)前編碼單元的有關(guān)一個(gè)或多個(gè)額外碼本級的一個(gè)或多個(gè)參數(shù)。另一個(gè)方面,比特流包括多個(gè)編碼音頻單元,且每個(gè)編碼單元包括字段。該字段指示了編碼單元是否包括表示一段音頻信號的主要編碼信息,以及編碼單元是否包括用于解碼該主要編碼信息的冗余編碼信息。在另一個(gè)方面,音頻信號被解壓成多個(gè)頻率子帶。每個(gè)子帶都根據(jù)激勵(lì)編碼(code-excited)線性預(yù)測模型而被編碼。該比特流可能包含各自表示一段音頻信號的多個(gè)編碼單元,其中上述多個(gè)編碼單元包括表示第一多個(gè)頻率子帶的第一編碼單元以及表示第二多個(gè)頻率子帶的第二編碼單元,該第二多個(gè)子帶與第一多個(gè)子帶會(huì)因?yàn)榕c第一編碼單元或第二編碼單元有關(guān)的子帶信息的下降特性而有所不同。第一子帶可以根據(jù)第一編碼模式來編碼,且第二子帶可以根據(jù)不同的第二編碼模式來編碼。該第一和第二編碼模式可以使用不同數(shù)量的碼本級。每個(gè)子帶可以被分別編碼。此外,實(shí)時(shí)語音編碼器可以處理比特流,包括將音頻信號解壓為多個(gè)頻率子帶并編碼上述多個(gè)頻率子帶。處理比特流可能包括解碼多個(gè)頻率子帶并合成多個(gè)頻率子帶。另一方面,用于音頻信號的比特流包括與用于表示音頻信號第一段的第一組碼本級有關(guān)的參數(shù),第一組碼本級包括多個(gè)固定碼本級的第一集合。多個(gè)固定碼本級的第一集合可以包括多個(gè)隨機(jī)固定的碼本級。固定碼本級可以包括脈沖碼本級和隨機(jī)碼本級。第一組碼本級可以進(jìn)一步包括自適應(yīng)碼本級。比特流可以進(jìn)一步包括與用于表示音頻信號第二段的第二組碼本級有關(guān)的參數(shù),該第二組具有和第一組不同數(shù)量的碼本級。第一組碼本級中的碼本級的數(shù)量可以基于包括音頻信號第一段的一個(gè)或多個(gè)特征在內(nèi)的一個(gè)或多個(gè)因素中選擇。第一組碼本級中的碼本級的數(shù)量可以基于包括編碼器和解碼器之間的網(wǎng)絡(luò)傳輸條件的一個(gè)或多個(gè)因素中選擇。該比特流可以包括用于多個(gè)固定碼本級中每一個(gè)的分離的碼本索引和分離的增益。利用該分離的增益有助于信號匹配,并且利用該分離的碼本索引則能夠簡化碼本搜索。另一方面,比特流對于使用自適應(yīng)碼本描述的多個(gè)可參數(shù)化的單元中的每個(gè)單元而言,包括指示自適應(yīng)碼本參數(shù)是否用于該單元的字段。該單元可以是多個(gè)音頻信號幀的子幀。諸如實(shí)時(shí)語音編碼器的音頻處理工具可以處理比特流,包括確定是否在每個(gè)單元使用自適應(yīng)碼本參數(shù)。確定是否使用自適應(yīng)碼本參數(shù)可以包括確定自適應(yīng)碼本增益是否在閾值之上。同樣,確定是否使用自適應(yīng)碼本參數(shù)可以包括估計(jì)該幀的一個(gè)或多個(gè)特征。此外,確定是否使用自適應(yīng)碼本參數(shù)可以包括估計(jì)編碼器和解碼器之間的一個(gè)或多個(gè)網(wǎng)絡(luò)傳輸特征。該字段可以是每個(gè)濁音單元一個(gè)的一比特標(biāo)記。該字段可以是音頻信號的濁音幀的每個(gè)子幀一個(gè)的一比特標(biāo)記,并且其他類型的各幀可能不需要包括該字段。各種技術(shù)和工具可以被組合或獨(dú)立地使用。其他特征和優(yōu)點(diǎn)從下面參考附圖的不同實(shí)施例的詳細(xì)描述中將變得顯而易見。圖1是一種在其中可以實(shí)現(xiàn)一個(gè)或多個(gè)描述的實(shí)施例的適合計(jì)算機(jī)環(huán)境的框圖。圖2是結(jié)合其可以實(shí)現(xiàn)一個(gè)或多個(gè)描述的實(shí)施例的網(wǎng)絡(luò)環(huán)境的框圖。圖3是描繪了可以用于子帶編碼的有關(guān)一子帶結(jié)構(gòu)的一組頻率響應(yīng)的圖示。圖4是一種結(jié)合其可以實(shí)現(xiàn)一個(gè)或多個(gè)描述的實(shí)施例的實(shí)時(shí)語音頻帶編碼器的框圖。圖5是描繪一實(shí)現(xiàn)中的碼本參數(shù)確定的流程圖。圖6是一種結(jié)合其可以實(shí)現(xiàn)一個(gè)或多個(gè)描述的實(shí)施例的實(shí)時(shí)語音頻帶解碼器的框圖。圖7是包括當(dāng)前幀和在前幀的重新編碼部分的激勵(lì)信號歷史的圖示。圖8是描繪一實(shí)現(xiàn)中有關(guān)一額外隨機(jī)碼本級的碼本參數(shù)確定的流程圖。圖9是使用額外的隨機(jī)碼本級的實(shí)時(shí)語音頻帶解碼器的框圖。圖IO是有關(guān)各幀的比特率格式的框圖,其中上述幀包括有關(guān)可與某些實(shí)施例一并使用的不同冗余編碼技術(shù)的信息。圖11是有關(guān)各分組的比特率格式的框圖,其中上述分組包括具有可與某些實(shí)施例一并使用的冗余編碼信息的各幀。具體實(shí)施例方式描述的實(shí)施例涉及用于在編碼和解碼中處理音頻信息的技術(shù)和工具。使用這些技術(shù)就能夠改善從諸如實(shí)時(shí)語音編解碼器之類的語音編解碼器中所得到的語音質(zhì)量。這種提高可以是分別或組合地利用各種技術(shù)和工具的結(jié)果。這些技術(shù)和工具可以包括使用諸如CELP之類的線性預(yù)測技術(shù)而對子帶的編碼和/或解碼。該技術(shù)還可以包括具有包括脈沖和/或隨機(jī)固定碼本在內(nèi)的固定碼本的多級。碼本級的數(shù)量可以改變從而為給定比特率提供最佳質(zhì)量。另外,取決于諸如期望的比特率以及當(dāng)前幀或子幀的特征之類的因素,可以打開或關(guān)閉自適應(yīng)碼本。此外,幀可以包括有關(guān)當(dāng)前幀依賴在前幀的部分或全部的冗余編碼信息。這種信息可由解碼器在在前幀丟失的情況下用來解碼當(dāng)前幀,而不無需請求多次發(fā)送整個(gè)在前幀。這些信息可以與當(dāng)前或在前幀一樣以相同的比特率被編碼,或以更低的比特率被編碼。此外,該信息可以包括近似激勵(lì)信號的期望部分的隨機(jī)碼本信息,而非該激勵(lì)信號的期望部分的整個(gè)重新編碼。盡管出于表示的目的以具體的順序描述了各種技術(shù)的操作方法,但應(yīng)該理解,除非要求一具體次序,否則這種描述的方法涵蓋了在操作順序的可選重新排列。例如,隨后描述的操作在一些情況下可以被重新排列或并發(fā)執(zhí)行。此外,出于簡化的目的,流程圖沒有示出在其中特定技術(shù)可與其他技術(shù)結(jié)合使用的各種方法。I.計(jì)算環(huán)境圖1示出了在其中可以實(shí)現(xiàn)一個(gè)或多個(gè)描述的實(shí)施例的適合計(jì)算環(huán)境(100)的概括示例。該計(jì)算環(huán)境(100)并不旨在暗示對本發(fā)明的使用或功能范圍的任何限制,因?yàn)楸景l(fā)明可以在完全不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參考圖1,計(jì)算環(huán)境(100)包括至少一個(gè)處理單元(110)和存儲(chǔ)器(120)。圖1中,在虛線范圍內(nèi)包括最基本配置(130)。處理單元(110)執(zhí)行計(jì)算機(jī)可執(zhí)行指令并且可以是真實(shí)的或虛擬的處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令來增加處理功率。存儲(chǔ)器(120)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,ROM、EEPROM、閃存等)、或者這兩者的組合。存儲(chǔ)器(120)存儲(chǔ)用于為語音編碼器或解碼器執(zhí)行子帶編碼、多級碼本、和/或冗佘編碼技術(shù)的軟件(180)。計(jì)算環(huán)境(100)可以具有額外的特征件。圖1中,計(jì)算環(huán)境(100)包括存儲(chǔ)(140)、一個(gè)或多個(gè)輸入設(shè)備(150)、一個(gè)或多個(gè)輸出設(shè)備(160)、以及一個(gè)或多個(gè)通信連接(170)。諸如總線、控制器、或網(wǎng)絡(luò)的互連機(jī)構(gòu)(未示出)互連計(jì)算環(huán)境(100)的各部件。通常操作系統(tǒng)軟件(未示出)為在計(jì)算環(huán)境(100)中執(zhí)行的其他軟件提供操作環(huán)境,并且協(xié)調(diào)計(jì)算環(huán)境(100)部件的活動(dòng)。存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,并且可以包括磁盤,磁帶或盒式錄音帶、CD-ROM、CD-RW、DVD、或其他任何能夠存儲(chǔ)信息并且能夠在計(jì)算環(huán)境(100)中被訪問的介質(zhì)。存儲(chǔ)(140)存儲(chǔ)軟件(180)的指令。輸入設(shè)備(150)可以是觸摸式輸入設(shè)備,例如鍵盤、鼠標(biāo)、筆、或跟蹤球、話音輸入設(shè)備、掃描設(shè)備、網(wǎng)絡(luò)適配器、或提供輸入到計(jì)算環(huán)境(100)的另一設(shè)備。對于音頻,輸入設(shè)備(150)可以是聲卡、麥克風(fēng)或其他以模擬或數(shù)字格式接受音頻輸入的設(shè)備、或提供音頻樣本到計(jì)算環(huán)境(100)的CD/DVD讀卡器。輸出設(shè)備(160)以是顯示器、打印機(jī)、揚(yáng)聲器、CD/DVD寫入器、網(wǎng)絡(luò)適配器、或者或提供來自計(jì)算環(huán)境(100)的輸出的另一設(shè)備。通信連接(170)能夠經(jīng)通信介質(zhì)和另一個(gè)計(jì)算實(shí)體通信。通信介質(zhì)傳送信息,諸如計(jì)算機(jī)可執(zhí)行指令、壓縮語音信息、或其他已調(diào)制數(shù)據(jù)信號。已調(diào)制數(shù)據(jù)信號指的是這樣一種信號,其一個(gè)或多個(gè)特征以在信號中編碼信息的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括用電、光學(xué)、RF、紅外線、聲學(xué)的或其他載體實(shí)現(xiàn)的有線或無線技術(shù)。本發(fā)明可以在計(jì)算機(jī)可讀介質(zhì)的通用上下文中描述。計(jì)算機(jī)可讀介質(zhì)是任何能夠在計(jì)算環(huán)境中被訪問的可用介質(zhì)。作為示例而非限制,結(jié)合計(jì)算環(huán)境(100),計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)器(120)、存儲(chǔ)(140)、通信介質(zhì)、以及上述任何組合。本發(fā)明可以在諸如那些包括在程序模塊中的計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述,以在目標(biāo)真實(shí)或虛擬處理器上計(jì)算環(huán)境中執(zhí)行的。程序模塊通常包括例程程序、庫、對象、類、部件和數(shù)據(jù)結(jié)構(gòu)等,用以執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型??梢园葱柙诓煌瑢?shí)施例中的編程模式之間組合或分割各程序模塊。用于程序模塊的計(jì)算機(jī)可執(zhí)行指令可以是在本地或分布的計(jì)算環(huán)境中執(zhí)行。出于表示的目的,詳細(xì)描述使用像"確定"、"生成"、"調(diào)整"以及"應(yīng)用"之類的術(shù)語來描述在計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語是由計(jì)算機(jī)執(zhí)行操作的高級抽象,并且不應(yīng)該與人執(zhí)行的動(dòng)作相混淆。對應(yīng)于這些術(shù)語的實(shí)際計(jì)算機(jī)操作則根據(jù)執(zhí)行而變化。II.概括的網(wǎng)絡(luò)環(huán)境及實(shí)時(shí)語音編解碼器圖2是結(jié)合一個(gè)或多個(gè)所述實(shí)施例被執(zhí)行的概括的網(wǎng)絡(luò)環(huán)境(200)的框圖。網(wǎng)絡(luò)(250)區(qū)分各種編碼器側(cè)的部件和各種解碼器側(cè)的部件。編碼器側(cè)和解碼器側(cè)的部件的主要功能分別是語音編碼和解碼。在編碼器側(cè),輸入緩沖器(210)接受并存儲(chǔ)語音輸入(202)。語音編碼器(230)從輸入緩沖器(210)中獲取語音輸入(202)并對其編碼。更具體地,幀分裂器(212)將語音輸入(202)的樣本分成各幀。在一個(gè)實(shí)現(xiàn)中,幀統(tǒng)一為20ms長——8kHz輸入下的160個(gè)樣本以及16kHz輸入下的320個(gè)樣本。在其他實(shí)現(xiàn)中,幀具有不同的持續(xù)時(shí)間,且不均勻或重疊,和/或輸入(202)的采樣速率不同。幀可以在超幀/幀、幀/子幀、或其他用以編碼和解碼各不同級的配置中被組織。幀分類器(214)根據(jù)一個(gè)或多個(gè)準(zhǔn)則進(jìn)行幀分類,這些準(zhǔn)則諸如可以是信號能量、零交叉率、長期預(yù)測增益、增益微分和/或其他用于子幀或整個(gè)幀的準(zhǔn)則。基于該準(zhǔn)則,幀分類器(214)將不同幀分為諸如無聲的、清音的、濁音的、和過渡的(例如,從清音到濁音)的各類。另外,可以根據(jù)冗余編碼的類型(用于幀,如果有的話)對幀進(jìn)行分類。幀分類會(huì)影響將用于計(jì)算編碼幀的參數(shù)。另外,幀分類會(huì)影響用其編碼的參數(shù)的解析和丟失恢復(fù)能力,以便為更重要的幀分類和參數(shù)提供更多的解和丟失恢復(fù)能力。例如,無聲幀通常以極慢的速率編碼,若丟失則可由隱蔽簡單地恢復(fù),并且無需丟失防護(hù)。濁音幀通常以略高的速率編碼,若丟失則可由隱蔽合理簡單地恢復(fù),并且無需顯著的丟失防護(hù)。清音和過渡幀通常取決于幀的復(fù)雜性以及過渡的呈現(xiàn)而用更多的比特進(jìn)行編碼。清音和過渡幀若有丟失則難以恢復(fù),因而需要更為顯著的丟失防護(hù)??蛇x地,幀分類器(214)利用其他的和/或額外的幀分類。在向有關(guān)幀的子帶信息應(yīng)用諸如CELP編碼模型的編碼模型之前,可以將輸入語音信號分為子帶信號。可以利用一系列的一個(gè)或多個(gè)分析濾波器列(例如QMF分析濾波器)(216)來實(shí)現(xiàn)。例如,如果使用3頻帶結(jié)構(gòu),則使用通過讓信號穿過低通濾波器來分出低頻頻帶。同樣地,使用通過讓信號穿過高通濾波器來分出高頻帶。使用通過讓信號穿過順序包括一個(gè)低通濾波器和一個(gè)高通濾波器的帶通濾波器來分出中間頻帶??蛇x的,使用可以使用用于子帶分解和/或?yàn)V波定時(shí)(例如,在幀分配之前)的其他濾波器排列類型。如果近對部分信號解碼一個(gè)頻帶,則該部分繞過該分析濾波器列(216)。CELP編碼在語音信號時(shí)通常比ADPCM和MLT具有更高的編碼效率。頻帶的數(shù)量n可由采樣速率確定。例如,在一實(shí)現(xiàn)中,單個(gè)頻帶結(jié)構(gòu)使用被用于8kHz采樣速率。對于16kHz和22.05kHz采樣速率而言,則可使用如圖3所示的3頻帶結(jié)構(gòu)。在圖3的3頻帶結(jié)構(gòu)中,低頻頻帶(310)延伸至全部帶寬F的一半(從0到0.5F)。帶寬的另一半在中間頻帶(320)和高頻頻帶(330)之間等分。頻帶的交叉點(diǎn)附近,響應(yīng)于一頻帶的頻率會(huì)逐漸地從通過級減至向停止級,其特征隨著交叉點(diǎn)的接近而衰減信號的兩側(cè)。也可以使用頻率帶寬的其他劃分。例如,對于32kHz采樣速率而言,可以使用等分的4頻帶結(jié)構(gòu)。低頻頻帶通常是語音信號最重要的頻帶,因?yàn)樾盘柲芰恳话愠哳l率范圍而衰減。因此,低頻頻帶通常使用比其他頻帶更多的比特來編碼。相比較單個(gè)頻帶編碼結(jié)構(gòu)而言,子帶結(jié)構(gòu)更靈活,并且允許更好地控制橫跨各頻段的比特分布/量化噪聲。因此,可以相信通過使用子帶結(jié)構(gòu)能有效提高所感知的話音質(zhì)量。圖2中,每個(gè)子帶如編碼部件(232,234)所示的那樣被分別編碼。部件雖然分別示出了頻帶編碼部件(232,234),但是所有的頻帶編碼可以由一個(gè)編碼器來完成,或者它們可以通過分開的編碼器來編碼。這樣的頻帶編碼將在以下參考圖4來更詳細(xì)地描述??蛇x地,編解碼器可以作為一單獨(dú)的編解碼器操作。通過多路復(fù)用器("MUX")(236)將編碼語音的結(jié)果提供給用于一個(gè)或多個(gè)網(wǎng)絡(luò)層(240)的軟件。網(wǎng)絡(luò)層(240)處理編碼的語音以供經(jīng)網(wǎng)絡(luò)(250)的傳輸。例如,該網(wǎng)絡(luò)層軟件將編碼的語音信息打包成遵循RTP協(xié)議的分組,這些分組經(jīng)使用UDP、IP、和各種物理層協(xié)議的網(wǎng)絡(luò)來中繼??蛇x地,使用還可以使用其他和/或附加的軟件層或網(wǎng)絡(luò)協(xié)議。該網(wǎng)絡(luò)(250)是分組交換的廣域網(wǎng),例如因特網(wǎng)??蛇x地,網(wǎng)絡(luò)(250)也可以是局域網(wǎng)或其他種類的網(wǎng)絡(luò)。在解碼器側(cè),用于一個(gè)或多個(gè)網(wǎng)絡(luò)層(260)的軟件接收并處理被傳輸?shù)臄?shù)據(jù)。解碼器-側(cè)網(wǎng)絡(luò)層(260)內(nèi)的網(wǎng)絡(luò)、傳輸及更高層協(xié)議和軟件一般與編碼器側(cè)網(wǎng)絡(luò)層(240)中的那些部件相對應(yīng)。網(wǎng)絡(luò)層通過多路分配器("DEMUX")(276)向語音解碼器(270)提供編碼的語音信息。解碼器(270)如解碼模塊(272,274)中描述的那樣分別解碼每個(gè)子帶。所有的子帶可以由單個(gè)解碼器解碼,或者可由分開的頻帶解碼器解碼。該解碼子帶接著在輸出解碼語音(292)的一系列的一個(gè)或多個(gè)合成濾波器列(例如,QMF合成濾波器)(280)中合成??蛇x地,使用可以使用其他類型的濾波器排列以供子帶合成。如果僅僅出現(xiàn)單個(gè)頻帶,則該解碼頻帶可以繞過濾波器列(280)。該解碼語音輸出(292)也可以被傳遞通過一個(gè)或多個(gè)后置濾波器(284)來提高所得的經(jīng)濾波語音輸出(294)的質(zhì)量。同樣,每個(gè)頻帶可以在進(jìn)入濾波器列(280)之前分別通過一個(gè)或多個(gè)后置濾波器。下面參考圖6描述一種概括的實(shí)時(shí)語音頻帶解碼器,但是也可以代替地使用其他的語音解碼器。另外,描述的部分或全部工具和技術(shù)都可以結(jié)合例如音樂編碼器和解碼器,或通用型音頻編碼器和解碼器的其他類型的音頻編碼器及解碼器來使用。除了這些主要編碼和解碼功能,部件也可以共享信息(圖2中用虛線表示的)以控制編碼語音的速率、質(zhì)量、和/或丟失恢復(fù)能力。該速率控制器(220)考慮多種因素,諸如輸入緩沖器(210)中當(dāng)前輸入的復(fù)雜性、編碼器(230)或其他設(shè)備中輸出緩沖器的緩沖充滿度、期望的輸出速率、當(dāng)前網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)擁堵/噪音條件和/或解碼器丟失速率。解碼器(270)向速率控制器(220)反饋解碼器丟失速率信息。網(wǎng)絡(luò)層(240,260)收集或估計(jì)有關(guān)當(dāng)前網(wǎng)絡(luò)帶寬以及擁堵/噪音條件的信息,則這些信息則被反饋到速率控制器(220)??蛇x地,速率控制器(220)考慮其他和/或附加的因素。速率控制器(220)引導(dǎo)語音編碼器(230)改變被編碼語音的速率、質(zhì)量、和/或丟失恢復(fù)能力。編碼器(230)可以通過調(diào)整有關(guān)參數(shù)的量化因素或改變表示參數(shù)的熵碼的解來改變速率和質(zhì)量。另外,編碼器通過調(diào)整冗余編碼的速率或類型還可以改變丟失恢復(fù)能力。因此,編碼器(230)可以取決于網(wǎng)絡(luò)條件來改變主要編碼功能和丟失恢復(fù)能力功能之間的比特分配。速率控制器(220)可以基于若干因素為每個(gè)幀的每個(gè)子帶確定編碼模式。這些要素可以包括每個(gè)子帶的信號特征、比特流緩沖歷史、以及目標(biāo)比特速率。例如,如上所述的,例如清音和無聲幀之類的較簡單的幀通常需要的比特較少,而像過渡幀的更復(fù)雜的幀需要的比特則較多。另外,例如高頻頻帶之類的某些頻帶需要的比特較少。此外,如果比特流歷史緩沖器中的平均比特率小于目標(biāo)平均比特率,則可為當(dāng)前幀使用更高的比特率。如果平均比特率小于目標(biāo)平均比特率,則可為當(dāng)前幀選擇較低的比特率以降低平均比特率。另外,可以從一個(gè)或多個(gè)幀中省略一個(gè)或多個(gè)頻帶。例如,從清音幀中省略中間幀和高頻幀,或者它們從所有幀中被忽略一段時(shí)間,從而降低在那段時(shí)間內(nèi)的比特率。圖4是結(jié)合一個(gè)或多個(gè)所描述的實(shí)施例來實(shí)現(xiàn)的概括的語音頻帶編碼器(400)的框圖。頻帶編碼器(400)通常與圖2的頻帶編碼器(232,234)中的任一個(gè)相對應(yīng)。頻帶編碼器(400)在信號(例如,當(dāng)前幀)被分成多個(gè)頻帶情況下接受來自濾波器列(或其他濾波器)的頻帶輸入。如果當(dāng)前幀沒有被分為多個(gè)頻帶,則頻帶輸入(402)包括表示整個(gè)帶寬的采樣。該頻帶編碼器產(chǎn)生編碼的頻帶輸出(492)。如果信號被分為多個(gè)頻帶,則下采樣部件(420)可以對每個(gè)頻帶上執(zhí)行下采樣。作為例子,如果采樣速率被設(shè)置為16kHz且每個(gè)幀的持續(xù)時(shí)間是20ms,則每個(gè)幀包括320個(gè)樣本。如果沒有執(zhí)行下采樣且?guī)环譃閳D3所示的3頻帶結(jié)構(gòu),則會(huì)對該幀進(jìn)行樣本個(gè)數(shù)3倍的(即,每頻帶320個(gè)樣本,或總共960個(gè)樣本)編碼和解碼。然而,每個(gè)頻帶可以被下采樣。例如,低頻頻帶(310)可以從320個(gè)樣本下采樣至160個(gè)樣本,且每個(gè)中間頻帶(320)和高頻頻帶(330)可以從320個(gè)樣本下采樣至80個(gè)樣本,這里頻帶(310,320,330)分別疏至頻率范圍的一半,四分之一和四分之一。(在該實(shí)現(xiàn)中下采樣(420)程度的變化與頻帶(310,320,330)的頻率范圍有關(guān)。然而,其他實(shí)現(xiàn)也是可能的。在隨后的各級中,頻帶越高使用的比特通常較少,因?yàn)樾盘柲芰客ǔ3哳l率范圍衰減。)因此,這就為該幀提供了總共320個(gè)樣本來進(jìn)行編碼和解碼??梢韵嘈啪退闶褂昧嗣總€(gè)頻帶的下采樣,該子帶編解碼器仍可比單個(gè)頻帶編解碼器生成更高的話音質(zhì)量輸出,因?yàn)樵撟訋Ь幗獯a器更靈活。例如,它可以更靈活地以每個(gè)頻帶為基礎(chǔ)控制量化噪聲,若不是對整個(gè)頻譜使用相同的手段。多個(gè)頻帶的每一個(gè)都能夠被編碼帶有不同的屬性(例如,以下將會(huì)討論的不同數(shù)量和/或類型的碼本級)。這些屬性可以按包括每個(gè)子帶的信號特征、比特流緩沖歷史以及目標(biāo)比特率在內(nèi)的上述若干因素的基礎(chǔ)而由速率控制來確定。如上所述,諸如清音幀和無聲幀的"簡單"幀通常需要較少的比特,而諸如過渡幀的"復(fù)雜"幀則需要更多的比特。如果比特流歷史緩沖器中的平均比特率小于目標(biāo)平均比特率,可以為當(dāng)前幀使用較高的比特速率。否則就選擇較低的比特速率以降低平均比特率。在子帶編解碼器中,每個(gè)頻帶可以以這種方式為特征并被相應(yīng)地編碼,而非以相同的方式特征化整個(gè)頻譜。另外,速率控制通過為一個(gè)或多個(gè)幀忽略一個(gè)或多個(gè)較高頻率的頻帶就能夠降低比特率。LP分析部件(430)計(jì)算線性預(yù)測系數(shù)(432)。在一實(shí)現(xiàn)中,LP濾波器對8kHz輸入使用10個(gè)系數(shù)而對16kHz輸入使用16個(gè)系數(shù),并且LP部件分析部件(430)為每個(gè)頻帶計(jì)算每幀的一組線性預(yù)測系數(shù)。可選地,LP分析部件(430)為每個(gè)頻帶計(jì)算每幀的兩組系數(shù),每組各用于以不同位置為中心上的兩個(gè)窗口中的一個(gè),或者LP分析部件(430)計(jì)算每頻帶和/或每幀的不同數(shù)量的系數(shù)。LPC處理部件(435)接收并處理線性預(yù)測系數(shù)(432)。通常LPC處理部件(435)為了更有效地量化并編碼部件而把LPC值轉(zhuǎn)換為不同表示。例如,LPC處理部件(435)將LPC值轉(zhuǎn)換為線光譜對["LSP"]表示,并且該LSP值被量化(例如通過矢量量化)并編碼。LSP值可被內(nèi)編碼或從其他LSP值預(yù)測。各種表示、量化技術(shù)和編碼技術(shù)都有可能用于LPC值。以一些格式來提供的LPC值作為編碼頻帶輸出(492)的一部分用于分組和傳輸(連同任何量化參數(shù)以及重建所需的其他信息一起)。對于編碼器(400)中隨后的使用,LPC處理部件(435)重建LPC值。該LPC處理部件(435)可以為LPC值(諸如,等效的LSP表示或另一表示)執(zhí)行插值,以平滑不同的LPC系數(shù)組之間的轉(zhuǎn)換或者用于幀的不同子幀使用的LPC系數(shù)之間的轉(zhuǎn)換。合成(或"短期預(yù)測")濾波器(440)接收重建的LPC值(438)并將它們合并到濾波器中。合成濾波器(440)接受一激勵(lì)信號并生成原始信號的近似值。對于指定幀,合成濾波器(440)會(huì)緩沖來自預(yù)測開始之前的在前幀中的多個(gè)重建樣本(例如,1每IO接頭濾波器IO個(gè))。感知加權(quán)部件(450,455)將感知加權(quán)應(yīng)用于原始數(shù)據(jù)以及合成濾波器(440)的模型化輸出,以便選擇性地削減語音信號共振峰結(jié)構(gòu)的重要性,從而使聽覺系統(tǒng)對量化誤差不那么敏感。感知加權(quán)部件(450,455)使用例如掩蔽的心理聲學(xué)現(xiàn)象。在一實(shí)現(xiàn)中,感知加權(quán)部件(450,455)基于從LP分析部件(430)中導(dǎo)出的原始LPC值(422)應(yīng)用權(quán)重??蛇x地,感知加權(quán)部件(450,455)應(yīng)用其他和/或額外權(quán)重。感知加權(quán)部件(450,455)之后,編碼器(400)計(jì)算被感知加權(quán)的原始信號和被感知加權(quán)的合成濾波器輸出之間的區(qū)別,以產(chǎn)生差信號(434)??蛇x地,編碼器(400)利用不同的技術(shù)來計(jì)算語音參數(shù)。在最小化被感知加權(quán)的原始值與合成信號(根據(jù)被加權(quán)的均方誤差或其他準(zhǔn)則)之間差異方面,激勵(lì)參數(shù)化部件(460)搜索并找出自適應(yīng)碼本索引、固定的碼本索引以及增益碼本索引的最佳好組合??梢詾槊恳蛔訋?jì)算許多參數(shù),但是更普遍的是為每一個(gè)超幀、幀、或子幀計(jì)算參數(shù)。如上所述,用于幀或子幀的不同頻帶的參數(shù)可以不同。表2示出了在一實(shí)現(xiàn)中用于不同幀分類的可用參數(shù)類型。<table>tableseeoriginaldocumentpage17</column></row><table>表2:用于不同幀分類的圖4中,激勵(lì)參數(shù)化部件(460)將幀分為子幀并為每個(gè)子幀適當(dāng)?shù)赜?jì)算碼本索引和增益。例如,要使用的碼本級的數(shù)量和類型使用、以及碼本索引的解都可由一編碼模式來最初確定,其中該模式可由上述速率控制部件來規(guī)定。一具體模式也可以規(guī)定除了碼本級的數(shù)量和類型之外的編碼和解碼參數(shù),例如,碼本索引的解析。每個(gè)碼本級的參數(shù)通過優(yōu)化參數(shù)來確定,以最小化目標(biāo)信號與碼本級對合成信號的貢獻(xiàn)(contribution)之間的誤差。(使用在此使用的術(shù)語"優(yōu)化"表示相對于執(zhí)行參數(shù)空間上的完全搜索,而在諸如失真降低、參數(shù)搜索時(shí)間、參數(shù)搜索復(fù)雜性、參數(shù)比特率等的應(yīng)用限制下找到合適的解決方案。類似的,術(shù)語"最小化"可以在可用限制下找到合適的解決方案這一方面進(jìn)行理解)。例如,可以使用修改的均方誤差技術(shù)來實(shí)現(xiàn)優(yōu)化。每一級的目標(biāo)信號是殘留信號與各在前碼本級(如果有的話)對合成信號的貢獻(xiàn)總和之間的差異。可選地,可以使用其他優(yōu)化技術(shù)。圖5根據(jù)一實(shí)現(xiàn)示出了一種確定碼本參數(shù)的技術(shù)。激勵(lì)參數(shù)化部件(460)潛在地結(jié)合例如速率控制器的其他部件來執(zhí)行該技術(shù)??蛇x地,編碼器中的其他部件執(zhí)行該技術(shù)。參照圖5,對于濁音或過渡幀內(nèi)的每個(gè)子幀,激勵(lì)參數(shù)化部件(460)確定(510)自適應(yīng)碼本(ACB)是否可被用于當(dāng)前子幀。(例如,速率控制可以規(guī)定沒有自適應(yīng)碼本被用于一特定幀。)如果自適應(yīng)碼本不被使用,隨后自適應(yīng)碼本轉(zhuǎn)換將指示沒有自適應(yīng)碼本被使用(535)。例如,這可以通過在幀層處設(shè)置指示了沒有自適應(yīng)碼本被用于該幀的一比特標(biāo)記來實(shí)現(xiàn),或者通過為每個(gè)子幀設(shè)置指示了沒有自適應(yīng)碼本被用于該子幀的一比特標(biāo)記來實(shí)現(xiàn)。例如,速率控制部件可以排除用于幀的自適應(yīng)碼本,從而移除幀之間最為明顯的記憶依賴。尤其對于濁音幀而言,一種典型的激勵(lì)信號以周期模式為特征。該自適應(yīng)碼本包括表示滯后的索引,該滯后指示了歷史緩沖器內(nèi)一段激勵(lì)的位置。該段在前激勵(lì)被調(diào)節(jié)為自適應(yīng)碼本對該激勵(lì)信號的貢獻(xiàn)。在解碼器上,自適應(yīng)碼本信息通常對重建激勵(lì)信號相當(dāng)重要。如果在前幀丟失且自適應(yīng)碼本索引指回在前幀的的一段,則該自適應(yīng)碼本索引一般沒有用,因?yàn)樗赶虿淮嬖诘臍v史信息。即使執(zhí)行隱蔽技術(shù)來恢復(fù)該丟失信息,將來的重建也要基于這一未完善恢復(fù)的信號。這將會(huì)導(dǎo)致隨后個(gè)幀內(nèi)的誤差,因?yàn)闇笮畔⑼ǔJ敲舾械?。因此,受到隨后自適應(yīng)碼本依賴的分組的丟失會(huì)導(dǎo)致擴(kuò)大化的劣化,這種劣化需要等到許多分組已經(jīng)被解碼之后或者在遇到?jīng)]有自適應(yīng)碼本的幀時(shí)才會(huì)逐漸消失。這一問題可以通過有規(guī)律地在分組流之間插入在各幀之間沒有記憶依賴的所謂"內(nèi)部幀"來減輕。這樣,誤差將只會(huì)傳播直到下一個(gè)內(nèi)部幀。因此,在較好的話音質(zhì)量和較好的分組丟失性能之間存在一折衷,因?yàn)樽赃m應(yīng)碼本的編碼效率通常要高于固定的碼本的編碼效率。速率控制部件可以確定什么時(shí)候阻止用于特定幀的自適應(yīng)碼本是有利的。該自適應(yīng)碼本轉(zhuǎn)換被用于防止用于特定幀的自適應(yīng)碼本的使用,從而消除通常最為顯著的對在前各幀的依賴(LPC插值以及合成濾波器記憶在某種程度上也依賴于在前各幀)。因此,該自適應(yīng)碼本轉(zhuǎn)換可由速率控制部件動(dòng)態(tài)地基于諸如分組丟失速率之類的因素來創(chuàng)建準(zhǔn)內(nèi)部幀(quasi-intra-frame)(即,當(dāng)分組丟失速率高時(shí),可以插入更多的內(nèi)部幀以允許更快的記憶重置)。仍然參照圖5,如果使用自適應(yīng)碼本,則部件(460)確定自適應(yīng)碼本參數(shù)。那些參數(shù)包括指示了激勵(lì)信號歷史的期望段的索引、或基音值、以及要應(yīng)用于該期望段的增益。在圖4和5中,部件(460)執(zhí)行一個(gè)閉環(huán)基音搜索(520)。該搜索由圖4中可選開環(huán)基音搜索部件(425)所確定的基音開始。開環(huán)基音搜索部件(425)分析由加權(quán)部件(450)生成的加權(quán)信號以估計(jì)其基音。由此估計(jì)的基音開始,閉環(huán)基音搜索(520)優(yōu)化該基音值以減少目標(biāo)信號與從激勵(lì)信號歷史的指示段中生成的加權(quán)合成信號之間的誤差。自適應(yīng)碼本增益值(525)也被優(yōu)化。該自適應(yīng)碼本增益值指示應(yīng)用于基音預(yù)測值(該值來自于激勵(lì)信號歷史的指示段)的乘法器,以調(diào)整上述各值比例。乘以基音預(yù)測值的該增益是自適應(yīng)碼本對用于當(dāng)前幀或子幀的激勵(lì)信號的貢獻(xiàn)。增益優(yōu)化(525)產(chǎn)生增益值以及索引值,該索引值最小化目標(biāo)信號與由自適應(yīng)碼本貢獻(xiàn)的加權(quán)合成信號之間的誤差。當(dāng)確定基音和增益值之后,就確定(530)自適應(yīng)碼本貢獻(xiàn)是否顯著到足以使其值得由各自適應(yīng)碼本參數(shù)使用的比特?cái)?shù)。如果自適應(yīng)碼本增益小于閾值,則關(guān)閉自適應(yīng)碼本來為如下討論的固定碼本保存比特。在一個(gè)實(shí)施例中,使用閾值0.3,盡管其他可選值也可以作為閾值。作為例子,如果當(dāng)前編碼模式使用自適應(yīng)碼本加上具有5個(gè)脈沖的脈沖碼本,則可以在關(guān)閉自適應(yīng)碼本時(shí)使用7脈沖碼本,,并且比特總數(shù)將仍會(huì)相同或更少。如上所述,可以用于每個(gè)子幀的一比特標(biāo)記可用來指示有關(guān)該子幀的自適應(yīng)碼本轉(zhuǎn)換。因此,如果沒有使用自適應(yīng)碼本,設(shè)置該轉(zhuǎn)換以指示在子幀中沒有使用自適應(yīng)碼本(535)。同樣地,如果使用自適應(yīng)碼本,則設(shè)置該轉(zhuǎn)換以指示在子幀中使用了自適應(yīng)碼本并且在比特流中發(fā)信號通知這些自適應(yīng)碼本參數(shù)(540)。盡管圖5示出了在確定之后發(fā)信號通知,但是也可以直到技術(shù)完成一幀或超幀才成批處理信號。該激勵(lì)參數(shù)化部件(460)同樣確定(550)是否使用脈沖碼本(pulseCB)。在一個(gè)實(shí)施例中,使用或不使用脈沖碼本被作為用于當(dāng)前幀的整個(gè)編碼模式的一部分來指示,或者也可在其他方面被指示或確定。脈沖碼本是一類指定要對該激勵(lì)信號做出貢獻(xiàn)的一個(gè)或多個(gè)脈沖的固定碼本,來組成激勵(lì)信號。該脈沖碼本參數(shù)包括索引和符號(增益可能是正的或負(fù)的)對。每一對指示一個(gè)被包含在激勵(lì)信號內(nèi)的脈沖,其中索引指示脈沖位置而符合則指示脈沖極性。包含在脈沖碼本內(nèi)并用于貢獻(xiàn)激勵(lì)信號的脈沖數(shù)量會(huì)依賴于編碼模式而變化。此外,脈沖數(shù)量還依賴于是否使用自適應(yīng)碼本。如果使用脈沖碼本,則優(yōu)化脈沖碼本參數(shù)(555)來最小化指示脈沖的貢獻(xiàn)和目標(biāo)信號之間的誤差。如果沒有使用自適應(yīng)碼本,目標(biāo)信號就是加權(quán)的原始信號。如果使用自適應(yīng)碼本,則目標(biāo)信號是加權(quán)原始信號和自適應(yīng)碼本對加權(quán)合成信號的貢獻(xiàn)之間的差。在一些點(diǎn)上(未示出),脈沖碼本參數(shù)接著在比特流中發(fā)信號通知。激勵(lì)參數(shù)化部件(460)也能確定(565)是否使用任何隨機(jī)固定碼本。隨機(jī)碼本級的數(shù)量(如果有的話)被指示作為用于當(dāng)前幀的全部編碼模式的一部分,盡管可以在其他方面被指示或確定。隨機(jī)碼本是一類為其編碼的值使用預(yù)定義信號模型的固定碼本。該碼本參數(shù)可以包括用于信號模型指示段的起始點(diǎn)以及可能或正或負(fù)的符號。該指示段的長度或范圍通常是固定的,因此一般不用信號通知,但是另外也可發(fā)信號通知指示段的長度或范圍。增益乘以指示段中的值以生成隨機(jī)碼本對激勵(lì)信號的貢獻(xiàn)。如果至少使用一個(gè)隨機(jī)碼本(randomCB)級,則優(yōu)化適用于該碼本級的碼本級參數(shù)(570)從而最小化隨機(jī)碼本級的貢獻(xiàn)與目標(biāo)信號之間的誤差。目標(biāo)信號是加權(quán)的原始信號與自適應(yīng)碼本(如果有的話)、脈沖碼本(如果有的話)、以及在前確定的隨機(jī)碼本級(如果有的話)對加權(quán)合成信號的貢獻(xiàn)總和之間的差。在一些點(diǎn)上(未示出),接著在比特流中發(fā)信號通知該隨機(jī)碼本參數(shù)。部件(460)接著確定(580)是否要使用任何更多的隨機(jī)碼本級。如果是,接著優(yōu)化(570)下一個(gè)隨機(jī)碼本級的各參數(shù)并如上所述那樣發(fā)信號通知。這將持續(xù)直到用于隨機(jī)碼本的所有參數(shù)都被確定。所有隨機(jī)碼本級可以使用相同的信號模型,雖然它們可是指示與該模型不同的段并具有不同的增益值??蛇x地,可以為不同的隨機(jī)碼本級使用不同的信號模型。每個(gè)激勵(lì)增益可以被獨(dú)立地量化,或兩個(gè)或多個(gè)增益可以被同時(shí)量化,正如由速率控制器和/或其他部件所確定的那樣。雖然己在此闡述了用于優(yōu)化各不同碼本參數(shù)的特定次序,也可以使用其他次序和優(yōu)化技術(shù)。因此,雖然圖5示出了不同碼本參數(shù)的順序計(jì)算,但另外也可以共同優(yōu)化兩個(gè)或更多不同的碼本參數(shù)(例如,根據(jù)一些非線性優(yōu)化技術(shù)共同改變參數(shù)并估計(jì)結(jié)果)。此外,可以使用碼本的其他配置或激勵(lì)信號參數(shù)。在該實(shí)現(xiàn)中的激勵(lì)信號是自適應(yīng)碼本、脈沖碼本、以及一個(gè)或多個(gè)隨機(jī)碼本級的任何貢獻(xiàn)之和。可選地,部件(460)可以為激勵(lì)信號計(jì)算其他的和/或附加的參數(shù)。參照圖4,用于激勵(lì)信號的碼本參數(shù)被發(fā)信號通知或通過其他方式被提供給本地解碼器(465)(在圖4中用虛線圈出)以及頻帶輸出(492)。因此,對于每個(gè)頻帶而言,編碼器輸出(492)包括來自上述LPC處理部件(435)的輸出,以及來自激勵(lì)參數(shù)化部件(460)的輸出。輸出(492)的比特率部分依賴于碼本所用的參數(shù),并且編碼器(400)可以通過在不同的碼本索引集合之間轉(zhuǎn)換,使用嵌入式編碼,或使用其他技術(shù)來控制比特率和/或質(zhì)量。碼本類型和級的不同組合可以產(chǎn)生用于不同幀、頻帶、和/或子幀的不同編碼模型。例如,一種清音幀可以僅使用一個(gè)隨機(jī)碼本級。自適應(yīng)碼本以及脈沖碼本可以用于低速率濁音幀。高速率幀則可以使用自適應(yīng)碼本、脈沖碼本、以及一個(gè)或多個(gè)隨機(jī)碼本級來編碼。在一幀中,對于所有子帶的所有這些編碼模式的組合被統(tǒng)稱為模式集合。存在用于每個(gè)采樣速率的若干預(yù)定義的模式集合,這些模式集合帶有與不同編碼比特率相對應(yīng)的不同模式。速率控制模塊能夠確定或影響用于每個(gè)幀的模式集合。可能的比特率范圍對于所描述的實(shí)現(xiàn)而言可能非常大,并且會(huì)對所得質(zhì)量產(chǎn)生顯著的改進(jìn)。在標(biāo)準(zhǔn)編碼器中,用于脈沖碼本的比特的數(shù)量也可被改變,但是太多比特可以僅僅產(chǎn)生過度密集的脈沖。類似地,當(dāng)僅使用單個(gè)碼本時(shí),添加更多的比特就能使用更大的信號模型。但這會(huì)顯著增加用于該模型優(yōu)化段搜索的復(fù)雜度。相反,可以添加碼本的附加類型以及附加的隨機(jī)碼本級而不會(huì)顯著增加各自碼本搜索的復(fù)雜度(與搜索單個(gè)的組合碼本相比)。此外,多個(gè)隨機(jī)碼本級和多類固定碼本允許多個(gè)增益因素來提供更靈活的波形匹配。仍然參照圖4,激勵(lì)參數(shù)化部件(460)的輸出被碼本重建部件(470,472,474,476)以及與參數(shù)化部件(460)所用的各碼本相對應(yīng)的增益應(yīng)用部件(480,482,484,486)接收。碼本級(470,472,474,476)以及相應(yīng)的增益應(yīng)用部件(480,482,484,486)重建碼本的貢獻(xiàn)??傆?jì)這些貢獻(xiàn)以產(chǎn)生激勵(lì)信號(490),該信號由合成濾波器(440)接收,在其中該信號連同后繼的線性預(yù)測由此產(chǎn)生"預(yù)測"樣本一起使用。激勵(lì)信號的延遲部分還由自適應(yīng)碼本重建部件(470)用作激勵(lì)歷史信號來重建后繼的自適應(yīng)碼本參數(shù)(例如,基音貢獻(xiàn)),并由參數(shù)化部件(460)來計(jì)算后繼的自適應(yīng)碼本參數(shù)(例如,基音索引以及基音增益值)。參照回圖2,由MUX(236)接收用于每個(gè)頻帶的頻帶輸出,以及其他參數(shù)。這些其他參數(shù)包括來自幀分類器(214)的幀分類信息(222)和幀編碼模式的信息。MUX(236)構(gòu)造應(yīng)用層分組來傳遞給其他軟件,或者M(jìn)UX(236)遵循例如RTP的協(xié)議而將數(shù)據(jù)放入到分組的凈荷。該MUX緩沖參數(shù)以允許選擇性的重復(fù)參數(shù),以供在隨后各分組中的前向糾錯(cuò)。在一實(shí)現(xiàn)中,MUX(236)將有關(guān)一幀的主要編碼語音信息,連同有關(guān)全部或部分的一個(gè)或多個(gè)在前幀的向前誤差糾正信息一起打包成一個(gè)獨(dú)立的分組。MUX(236)出于速率控制的目的提供諸如當(dāng)前緩沖充滿度之類的反饋。更一般地,編碼器(230)的各個(gè)部件(包括幀分類器(214)和MUX(236))可以向諸如圖2所示那樣的速率控制器(220)提供信息。圖2中的比特流DEMUX(276)接收編碼語音信息作為輸入并解析它來識別和處理參數(shù)。這些參數(shù)可以包括幀分類、LPC值的一些表示、以及碼本參數(shù)。幀分類可以指示對于給定幀存在那些其他參數(shù)。更具體地,DEMUX(276)使用編碼器(230)所用的協(xié)議并從編碼器(230)打包成的分組中提取參數(shù)。對于經(jīng)動(dòng)態(tài)分組轉(zhuǎn)換網(wǎng)絡(luò)接收分組,DEMUX(276)包括抖動(dòng)緩沖器,用來平滑給定時(shí)段內(nèi)分組速率內(nèi)的短期波動(dòng)。在一些情況下,解碼器(270)調(diào)節(jié)緩沖器延遲并管理何時(shí)從緩沖器中讀取分組以便把延遲、質(zhì)量控制、遺漏幀的隱蔽等歸并到一起來解碼。在其他情況下,應(yīng)用程序?qū)硬考芾矶秳?dòng)緩沖器,而該抖動(dòng)緩沖器則以可變速率填充并通過解碼器(270)以一恒定或相對恒定速率耗盡。DEMUX(276)可以接收用于給定段的各參數(shù)的多個(gè)版本,包括主要編碼版本以及一個(gè)或多個(gè)次要糾錯(cuò)版本。當(dāng)糾錯(cuò)失敗時(shí),解碼器(270)則基于被正確接收的信息而使用諸如參數(shù)重復(fù)或估計(jì)的隱蔽技術(shù)。圖6是一種結(jié)合其可以實(shí)現(xiàn)一個(gè)或多個(gè)描述的實(shí)施例的實(shí)時(shí)語音頻帶解碼器的框圖。頻帶解碼器(600)—般對應(yīng)于圖2中頻帶解碼部件(272,274)的任何一個(gè)。頻帶解碼器(600)接收用于頻帶(可以是完整頻帶,或多個(gè)子帶之一)的編碼語音信息作為輸入并在解碼之后生成重建的輸出(602)。該解碼器部件(600)具有編碼器(400)內(nèi)對應(yīng)的部件,但是整體上解碼器(600)更為簡單,因?yàn)樗鼪]有用于感知加權(quán)、激勵(lì)處理循環(huán)以及速率控制的部件。LPC處理部件(635)接收帶有由頻帶編碼器(400)提供的格式的表示LPC值的信息(以及重建所需的任何量化參數(shù)和其他信息)。LPC處理部件(635)使用先前應(yīng)用與LPC值的變換、量化、編碼等的逆來重建LPC值(638)。LPC處理部件(635)還可以為LPC值執(zhí)行插值(在LPC表示或例如LSP的另一表示中)來平滑LPC系數(shù)不同集合之間的過渡。碼本級(670,672,674,676)以及增益應(yīng)用部件(680,682,684,686)解碼用于激勵(lì)信號的任何相應(yīng)碼本級的參數(shù)并計(jì)算所使用的每個(gè)碼本級的貢獻(xiàn)。更具體地,碼本級(670,672,674,676)和增益部件(680,682,684,686)的配置和操作對應(yīng)于編碼器(400)中的碼本級(470,472,474,476)和增益部件(480,482,484,486)的配置和操作。總計(jì)所用的碼本級貢獻(xiàn),并將所得激勵(lì)信號(690)送入合成濾波器(640)。激勵(lì)信號(690)的延遲值也在計(jì)算用于激勵(lì)信號后繼部分的自適應(yīng)碼本的貢獻(xiàn)中由該自適應(yīng)碼本(670)用作激勵(lì)歷史。合成濾波器(640)接收重建的LPC值(638)并將它們并入濾波器。該合成濾波器(640)存儲(chǔ)在前重建的樣本用于處理。激勵(lì)信號(690)被傳遞通過合成濾波器以形成原始語音信號的近似值。參見回到圖2,如上所述,如果存在有多個(gè)子帶,就在濾波器列(280)中合成用于每個(gè)子帶的子帶輸出以形成語音輸出(292)。如圖2-6所示的關(guān)系指示了一般信息流;為了簡化沒有示出其他關(guān)系。取決于實(shí)現(xiàn)及期望的壓縮類型,各部件可以被添加,省略,分割成多個(gè)部件,與其他部件組合,和/或由類似部件替換。例如,在圖2所示的環(huán)境(200)中,速率控制器(220)可以與語音編碼器(230)相組合??赡芴砑拥牟考ǘ嗝襟w編碼器(或回放)應(yīng)用,它管理語音編碼器(或解碼器)以及其他編碼器(或解碼器)并收集網(wǎng)絡(luò)和解碼器條件信息,并且執(zhí)行自適應(yīng)糾錯(cuò)功能。在可選的實(shí)施例中,各部件的不同組合及配置使用這里描述的技術(shù)來處理語音信息。III.冗余編碼技術(shù)語音編解碼器的一種可能的應(yīng)用是針對IP網(wǎng)絡(luò)電話(voiceoverIPnetwork)或其他分組轉(zhuǎn)換網(wǎng)絡(luò)。這些網(wǎng)絡(luò)具有優(yōu)于現(xiàn)有電路轉(zhuǎn)換基礎(chǔ)設(shè)施的一些優(yōu)點(diǎn)。然而,在IP網(wǎng)絡(luò)電話中,分組經(jīng)常會(huì)由于網(wǎng)絡(luò)擁堵而被延遲或衰落。許多標(biāo)準(zhǔn)語音編解碼器具有較高的內(nèi)部幀依賴。于是對于這些編解碼器而言,一幀的丟失會(huì)導(dǎo)致殃及隨后許多幀的嚴(yán)重話音質(zhì)量劣化。在其他編解碼器中可以獨(dú)立地解碼每一幀。這樣的幀可以應(yīng)付分組丟失。然而就質(zhì)量和比特速率而言,編碼效率則由于不允許內(nèi)部幀依賴而顯著下降。因此,這些編解碼器通常需要更高的比特率來實(shí)現(xiàn)與傳統(tǒng)的CELP編碼器相似的話音質(zhì)后一里。在一些實(shí)施例中,下面將討論的冗余編碼技術(shù)有助于在不顯著增加比特率的情況下實(shí)現(xiàn)良好的分組丟失恢復(fù)性能。該技術(shù)可以一并的用于編解碼器中,也可以分開使用。在如上參照圖2和4所述的編碼器實(shí)現(xiàn)中,自適應(yīng)碼本信息通常是對其他幀的主要依賴源。如上所述,該自適應(yīng)碼本索引指示了歷史緩沖器中一段激勵(lì)信號的位置。在前激勵(lì)信號的這一段被(根據(jù)增益值)調(diào)節(jié)成當(dāng)前幀(或子幀)激勵(lì)信號的自適應(yīng)碼本貢獻(xiàn)。如果包含用于重建在前的編碼激勵(lì)信號的信息的在前分組丟失,則該當(dāng)前幀(或子幀)滯后信息因?yàn)樗赶蚍乾F(xiàn)存的歷史信息而不可用。因?yàn)闇笮畔⑹敲舾械?,所以這通常會(huì)導(dǎo)致所得語音輸出的擴(kuò)大化的劣化,這種劣化需要等到許多分組已經(jīng)被解碼之后才會(huì)逐漸消失。下面的技術(shù)被設(shè)計(jì)用來至少在某種程度上去除當(dāng)前激勵(lì)信號對來自因被延遲或丟失的不可用在前幀的重建信息的依賴。諸如上述參考圖2所示的編碼器(230)之類的編碼器能夠基于逐幀或其他而在下列的各編碼技術(shù)之間轉(zhuǎn)換。諸如上述參考圖2所示的解碼器(270)之類的解碼器則能夠基于逐幀或其他而轉(zhuǎn)換相應(yīng)的分析/解碼技術(shù)。可選地,另一編碼器、解碼器、或音頻處理工具也可以執(zhí)行以下技術(shù)的一個(gè)或多個(gè)。A.主要自適應(yīng)碼本歷史重新編碼/解碼在主要自適應(yīng)碼本歷史重新編碼/解碼中,激勵(lì)歷史緩沖器不用于解碼當(dāng)前幀的激勵(lì)信號,即使激勵(lì)歷史緩沖器在解碼器處可用(在前幀的分組接收,在前幀解碼等)。代替地,在編碼器上,為當(dāng)前幀分析基音信息以確定需要多少激勵(lì)歷史。激勵(lì)歷史的必要部分被重新編碼并連同有關(guān)當(dāng)前幀的編碼信息(例如,濾波器參數(shù)、碼本索引以及增益)被一起發(fā)送。當(dāng)前幀的自適應(yīng)碼本貢獻(xiàn)參考了連同當(dāng)前幀一起發(fā)送的重新編碼激勵(lì)信號。這樣就為每一幀確保了冗余激勵(lì)歷史對解碼器可用。這種冗余編碼在諸如清音幀的當(dāng)前幀沒有使用自適應(yīng)碼本的情況下不是必要的。激勵(lì)歷史的被參考部分的重新編碼可以連同當(dāng)前幀的編碼一起完成,并且可以通過與如上所述對有關(guān)當(dāng)前幀的激勵(lì)信號的編碼相同的方式來完成。在一些實(shí)現(xiàn)中,激勵(lì)信號的編碼基于子幀完成,并且該段重新編碼激勵(lì)信號從包括當(dāng)前子幀的當(dāng)前幀的開始部分延伸回到超出對當(dāng)前幀的最遠(yuǎn)自適應(yīng)碼本依賴的子幀邊界。重新編碼的激勵(lì)信號因此可用于參考與該幀內(nèi)的多個(gè)子幀有關(guān)的基音信息。可選地,激勵(lì)信號的編碼可以基于諸如逐幀的其他方式來實(shí)現(xiàn)。圖7中示出了一個(gè)描述了激勵(lì)歷史(710)的例子。幀邊界(720)和子幀邊界(730)分別由較大和較小的虛線描述。使用自適應(yīng)碼本來編碼當(dāng)前幀(740)的子幀。線(750)描述了用于當(dāng)前幀的子幀的任何自適應(yīng)滯后索引的最遠(yuǎn)依賴點(diǎn)。因此,重新編碼歷史(760)從當(dāng)前幀的開始處延伸越過最遠(yuǎn)點(diǎn)(750)的下一子幀邊界。該最依賴遠(yuǎn)點(diǎn)可以使用上述的開環(huán)基音搜索(425)的結(jié)果來估計(jì)。因?yàn)樵撍阉鞑痪_,然而有可能該自適應(yīng)碼本依賴超出了估計(jì)的最遠(yuǎn)點(diǎn)的激勵(lì)信號的某些部分,除非隨后的基音搜索被限定。因此,重新編碼歷史可以包括超出估計(jì)的最遠(yuǎn)依賴點(diǎn)的附加樣本,從而為尋找匹配基音信息提供額外的空間。在一實(shí)現(xiàn)中,至少有十個(gè)超出估計(jì)的最遠(yuǎn)依賴點(diǎn)的附加樣本被包括在重新編碼歷史中。當(dāng)然,也可以包括十個(gè)以上樣本,從而增加重新編碼歷史延伸到足以包括匹配當(dāng)前子幀內(nèi)各基音周期的基音周期的概率??蛇x地,僅有當(dāng)前幀的子幀內(nèi)被實(shí)際參考的先前激勵(lì)信號的各段被重新編碼。例如,具有適當(dāng)持續(xù)時(shí)間的一段先前激勵(lì)信號被重新編碼以供解碼該持續(xù)時(shí)間內(nèi)的單個(gè)當(dāng)前段使用。主要自適應(yīng)碼本歷史重新編碼/解碼消除了對先前幀的激勵(lì)歷史的依賴。同時(shí),它允許使用自適應(yīng)碼本,并且不需要重新編碼整個(gè)在前幀(或者甚至是在前幀的整個(gè)激勵(lì)歷史)。然而,相比下面描述的技術(shù)而言,重新編碼自適應(yīng)碼本記憶需要非常高的比特率,尤其是在該重新編碼歷史被用來以與帶有內(nèi)部幀依賴的編碼/解碼相同的質(zhì)量級別而進(jìn)行主要編碼/解碼時(shí)。作為主要自適應(yīng)碼本歷史重新編碼/解碼的副產(chǎn)品,重新編碼激勵(lì)信號可用于恢復(fù)用于在前丟失幀的激勵(lì)信號的至少部分。例如,在當(dāng)前幀的各子幀解碼期間重建重新編碼激勵(lì)信號,并且把重新編碼激勵(lì)信號輸入使用實(shí)際或估計(jì)的濾波器系數(shù)重建的LPC合成濾波器中。所得的重建輸出信號可用作部分在前幀輸出。該技術(shù)還有助于估計(jì)用于當(dāng)前幀的合成濾波器記憶的原始狀態(tài)。使用重新編碼歷史以及估計(jì)的合成濾波器記憶,就能夠以與常規(guī)編碼相同的方式生成當(dāng)前幀的輸出。B.次要自適應(yīng)碼本歷史重新編碼/解碼在次要自適應(yīng)碼本歷史重新編碼/解碼技術(shù)中,當(dāng)前幀的主要自適應(yīng)碼本編碼不變。類似地,當(dāng)前幀的主要解碼不變;它在接收到在前幀的情況下使用在前幀激勵(lì)歷史。使用時(shí),如果先前激勵(lì)歷史沒被重建,則使用與前述主要自適應(yīng)碼本歷史重新編碼/解碼技術(shù)相同的方式來順序地重新編碼激勵(lì)歷史緩沖器。然而相較于主要編碼/解碼,只有很少的比特是用于重新編碼,這是因?yàn)樵跊]有分組丟失的情況下話音質(zhì)量不受重新編碼信號的影響。用來重新編碼激勵(lì)歷史的比特?cái)?shù)量能夠通過改變各種參數(shù)而降低,諸如使用更少的固定碼本級,或者在脈沖碼本中使用更少的脈沖。當(dāng)在前幀丟失時(shí),重新編碼的激勵(lì)歷史被用于在解碼器中生成用于當(dāng)前幀的自適應(yīng)碼本激勵(lì)信號。正如在主要自適應(yīng)碼本歷史重新編碼/解碼技術(shù)中那樣,重新編碼的激勵(lì)歷史還可用于恢復(fù)與在前丟失幀有關(guān)的至少部分激勵(lì)信號。同樣地,所得的重建輸出信號可用作在前幀輸出的部分。這一技術(shù)還有助于估計(jì)有關(guān)該當(dāng)前幀的合成濾波器記憶的原始狀態(tài)。使用重新編碼的激勵(lì)歷史和估計(jì)的合成濾波器記憶,就能夠使用與常規(guī)編碼相同的方式來生成當(dāng)前幀的輸出。C.額外碼本級正如次要自適應(yīng)碼本歷史重新編碼/解碼技術(shù)中那樣,在額外碼本級技術(shù)中,主激勵(lì)信號編碼與參照圖2-5所述的常規(guī)編碼相同。然而,也可以確定用于額外碼本級的參數(shù)。在如圖8所示的這種編碼技術(shù)中,假設(shè)(810)在當(dāng)前幀開始處的在前激勵(lì)歷史緩沖器全部為零,因此不存在來自在前激勵(lì)歷史緩沖器的貢獻(xiàn)。除了用于當(dāng)前幀的主編碼信息之外,一個(gè)或多個(gè)額外碼本級也可用于使用自適應(yīng)碼本的每個(gè)子幀或其他段。例如,額外碼本級使用了隨機(jī)的固定碼本,諸如參照圖4描述的那些碼本。在此技術(shù)中,通常編碼當(dāng)前幀以產(chǎn)生當(dāng)在前幀可用的情況下供解碼器使用的主編碼信息(可以包括用于主碼本級的主碼本參數(shù)),。在編碼器側(cè),假設(shè)沒有來自在前幀的激勵(lì)信息,則在閉環(huán)內(nèi)確定用于一個(gè)或多個(gè)額外碼本級的冗余參數(shù)。在第一順序中,這一確定可以在不使用任何主碼本參數(shù)的情況下做出??蛇x地,在第二實(shí)現(xiàn)中,確定使用用于當(dāng)前幀的至少部分主碼本參數(shù)。那些主碼本參數(shù)可以連同額外碼本級參數(shù)一起用來在如下所述在前幀丟失的情況下解碼當(dāng)前幀。一般說來,該第二實(shí)現(xiàn)可以使用額外碼本級所需的更少比特來實(shí)現(xiàn)與第一實(shí)現(xiàn)類似的質(zhì)量。根據(jù)圖8,額外碼本級的增益以及最后存在的脈沖或隨機(jī)碼本的增益被共同地在編碼器閉環(huán)搜索中優(yōu)化,從而最小化編碼誤差。在常規(guī)編碼中形成的大部分參數(shù)被保存并在優(yōu)化中使用。在優(yōu)化中,確定(820)是否有任何隨機(jī)或脈沖碼本級在普通編碼中使用。如果是,則優(yōu)化(830)最后存在的隨機(jī)或脈沖碼本級(諸如,圖4中的隨機(jī)碼本級n)的校正增益,從而最小化該碼本級的貢獻(xiàn)與目標(biāo)信號之間的誤差。用于該優(yōu)化的目標(biāo)信號是殘留信號與任何前述隨機(jī)碼本級(即,所有前述碼本級,但是來自在前幀各段的自適應(yīng)碼本貢獻(xiàn)被設(shè)置為零)的貢獻(xiàn)總和之間的差。額外隨機(jī)碼本級的索引和增益參數(shù)被類似地優(yōu)化(840)以最小化該碼本貢獻(xiàn)與目標(biāo)信號之間的誤差。用于該額外隨機(jī)碼本級的目標(biāo)信號是殘留信號與自適應(yīng)碼本、脈沖碼本(如果有的話)以及任何常規(guī)隨機(jī)碼本(連同具有修正增益的最后存在的常規(guī)隨機(jī)或脈沖碼本)的貢獻(xiàn)總和之間的區(qū)別。最后存在的常規(guī)隨機(jī)或脈沖碼本的校正增益與額外隨機(jī)碼本級的增益可以被分別或共同優(yōu)化。當(dāng)處于常規(guī)解碼模式時(shí),解碼器不使用額外隨機(jī)碼本級,且根據(jù)以上描述(例如,如圖6所示)來解碼信號。圖9A示出了一種可以在自適應(yīng)碼本索引指向已經(jīng)丟失的一段在前幀的情況下使用額外碼本級的子帶解碼器。該框架通常與在圖6中描述并示出的解碼框架相同,且圖9子帶解碼器(900)中的許多部件和信號的功能與圖6中相應(yīng)的部件和信號相同。例如,接收編碼子帶信息(992),LPC處理部件(935)使用該信息重建線性預(yù)測系數(shù)(938),并將這些系數(shù)提供給合成濾波器(940)。然而當(dāng)在前幀缺失時(shí),重置部件(996)發(fā)信號通知零歷史部件(994),用來將用于缺失幀的激勵(lì)歷史設(shè)置為零,并將該歷史提供給自適應(yīng)碼本(970)。增益(980)被應(yīng)用于自適應(yīng)碼本的貢獻(xiàn)。自適應(yīng)碼本(970)于是在其索引指向與該缺失幀的歷史緩沖器時(shí)就具有零貢獻(xiàn),但是在前索引指向當(dāng)前幀內(nèi)部一段時(shí)則可能具有一些非零貢獻(xiàn)。固定碼本級(972,974,976)應(yīng)用它們用子帶信息(992)接收的常規(guī)索引。類似地,除了最近常規(guī)碼本部件(986)之外的固定碼本增益部件(982,984)也應(yīng)用它們的常規(guī)索引來生成對激勵(lì)信號(990)的各自貢獻(xiàn)。如果額外隨機(jī)碼本級(998)可用并且在前幀缺失,那么重置部件(996)發(fā)信號通知轉(zhuǎn)換(998)傳遞帶有殘留增益(987)的最后常規(guī)碼本級(976)的貢獻(xiàn)來與其他碼本貢獻(xiàn)進(jìn)行總計(jì),而非優(yōu)于傳遞帶有常規(guī)增益(986)的最后常規(guī)碼本級(976)貢獻(xiàn)來用于總計(jì)。校正增益在有關(guān)在前幀的激勵(lì)歷史被設(shè)置為零的情況下被優(yōu)化。此外,額外碼本級(978)應(yīng)用其索引而在相應(yīng)的碼本中指示該隨機(jī)碼本模型信號的一段,并且隨機(jī)碼本增益部件(988)對那一段應(yīng)用有關(guān)該額外隨機(jī)碼本級的增益。轉(zhuǎn)換(998)傳遞要與在前碼本級(970,972,974,976)進(jìn)行總計(jì)的額外碼本級貢獻(xiàn)以產(chǎn)生激勵(lì)信號(990)。因此,用于額外隨機(jī)碼本級的冗余信息(例如額外級索引和增益)以及最后主隨機(jī)碼本級的校正增益(代替有關(guān)最后主隨機(jī)碼本級的常規(guī)增益使用)被用來將當(dāng)前幀快速重置到一已知狀態(tài)??蛇x地,該常規(guī)增益可用于最后主隨機(jī)碼本級和/或一些其他參數(shù)可用于發(fā)信號通知額外級隨機(jī)碼本。額外碼本級技術(shù)所需的比特如此之少以致于對其使用的比特率損失通常是無關(guān)緊要的。另一方面,它能夠顯著減少當(dāng).存在內(nèi)部幀依賴時(shí)由幀丟失所導(dǎo)致的質(zhì)量劣化。圖9B示出了與圖9A類似但是沒有常規(guī)隨機(jī)碼本級的子帶解碼器。于是在該實(shí)現(xiàn)中,校正增益(987)在有關(guān)在前丟失幀的殘留歷史被設(shè)置為零時(shí)為脈沖碼本(972)而被優(yōu)化。因此,當(dāng)幀缺失時(shí),各自適應(yīng)碼本(970)(連同有關(guān)在前缺失幀的殘留歷史被設(shè)置為零)、脈沖碼本(972)(連同校正增益)、以及額外隨機(jī)碼本級(978)的貢獻(xiàn)被總計(jì)以產(chǎn)生激勵(lì)信號(990)。在有關(guān)缺失幀的殘留歷史被設(shè)置為零的情況下被優(yōu)化的額外碼本級可以結(jié)合碼本的實(shí)現(xiàn)和組合和/或殘留信號的其他表示一起使用。D.在各冗余編碼技術(shù)之間的折衷相比其他的而言,上述三個(gè)冗余編碼技術(shù)中的每一個(gè)都具有優(yōu)點(diǎn)和缺點(diǎn)。表3示出了被認(rèn)為是在這三種冗余編碼技術(shù)之間折衷的概括性結(jié)論。比特率損失指的是200680利用該技術(shù)所需的比特總量。例如,假設(shè)與在常規(guī)編碼/解碼中使用的比特率相同,則在標(biāo)準(zhǔn)解碼期間,較高的比特速率損失通常對應(yīng)于較低的質(zhì)量,這是因?yàn)闀?huì)有更多的比特被用于冗余編碼,于是則是更少的比特被用于常規(guī)編碼信息。降低記憶依賴的效率指的是當(dāng)有一個(gè)或多個(gè)在前幀丟失時(shí)用于改進(jìn)所得語音輸出質(zhì)量的技術(shù)的效率。用于恢復(fù)在前幀的有效性指的是當(dāng)在前幀丟失時(shí)使用冗余編碼信息來恢復(fù)一個(gè)或多個(gè)在前幀的能力。表中的結(jié)論是概括性的,并且無需在特定實(shí)現(xiàn)中應(yīng)用。<table>tableseeoriginaldocumentpage28</column></row><table>表3:各冗,碼S^:之間的折衷編碼器可以在編碼期間為任何空中(onthefly)幀選擇任一種冗余編碼方案。冗余編碼對一些幀分類可能完全無用(例如,用于濁音幀,不用于無聲或清音幀),并且如果它被使用,自需要以諸如每十幀的周期為基礎(chǔ)或以某些其他基礎(chǔ)來用于每個(gè)幀。這可以由諸如速率控制部件的部件在考慮各種因素的情況下來控制,各因素諸如上述的折衷,可用信道帶寬,以及有關(guān)分組丟失狀態(tài)的解碼器反饋。E.冗余編碼比特流格式該冗余編碼信息可以以各種不同的格式在比特流中發(fā)送。以下是用于發(fā)送上述冗余編碼信息以及向解碼器用信號通知其表示的一種格式的實(shí)現(xiàn)。在該實(shí)現(xiàn)中,比特流內(nèi)的每一幀都以被稱為幀類型的兩比特字段開始。幀類型用于識別有關(guān)如下各比特的冗余編碼模式,并且也可以用于編碼和解碼中其他目的。表4給出了表示幀類型字段的冗余編碼模式。<table>tableseeoriginaldocumentpage28</column></row><table>表4:幀,比特的描述圖IO示出了在比特流幀格式中這些代碼的四種不同的組合,其中這些代碼用信號通知常規(guī)幀和/或各冗余編碼類型的存在。對于包括有關(guān)該幀的主編碼信息而沒有任何冗余編碼位的常規(guī)幀(1010)而言,跟隨在幀開始處的字節(jié)邊界(1015)之后的是幀類型代碼00。幀類型代碼之后則跟有有關(guān)常規(guī)幀的主編碼信息。對于帶有主要自適應(yīng)碼本歷史的冗余編碼信息的幀(1020)而言,跟隨在幀開始處字節(jié)邊界(1025)之后的是幀類型代碼10,該代碼用信號通知有關(guān)該幀的主要自適應(yīng)碼本歷史信息的存在。幀類型代碼之后則跟有與帶有主編碼信息和自適應(yīng)碼本歷史信息的幀有關(guān)的編碼單元。當(dāng)次要?dú)v史冗余編碼信息被包括在幀(1030)內(nèi)時(shí),跟隨在幀開始處字節(jié)邊界(1035)之后的是包括幀類型代碼00(用于常規(guī)幀的代碼)的編碼單元,而代碼00之后則跟隨有關(guān)常規(guī)幀的主編碼信息。然而,跟隨在主編碼信息結(jié)尾處的字節(jié)邊界(1045)之后,另一編碼單元包括幀類型11,該代碼11用來指示將有可任選的次要?dú)v史信息(1040)(而不是有關(guān)幀的主編碼信息)跟隨。因?yàn)榇我獨(dú)v史信息(1040)僅當(dāng)在前幀丟失時(shí)才使用,所以可以給予分組器或其他部件選擇省略該信息的可選項(xiàng)。這樣做可能出于不同的原因,諸如當(dāng)整體比特率需要被減少時(shí),分組丟失率較低時(shí),或者在前幀被包含在帶有當(dāng)前幀的分組內(nèi)時(shí)?;蛘撸梢越o予多路分配器或其他部件當(dāng)常規(guī)幀(1030)被成功接收時(shí)選擇跳過該次要?dú)v史信息的可選項(xiàng)。類似地,當(dāng)額外碼本級冗余編碼信息被包括在幀(1050)內(nèi)時(shí),跟隨在編碼單元開始處的字節(jié)邊界(1055)之后的是幀類型代碼00(用于常規(guī)幀的代碼),而代碼00之后則跟隨有關(guān)常規(guī)幀的主編碼信息。然而,跟隨在主編碼信息結(jié)尾處的字節(jié)邊界U065)之后,另一編碼單元包括幀類型Ol,該代碼01用來指示將有可任選的額外碼本級信息(1060)跟隨。如同次要?dú)v史信息(1040)—樣,額外碼本級信息(1060)僅當(dāng)在前幀丟失時(shí)才使用。因此仍如同次要?dú)v史信息一樣,可以給予分組器或其他部件選擇省略該額外碼本級信息的可選項(xiàng),或者可以給予多路分配器或其他部件選擇跳過該額外碼本級信息的可選項(xiàng)。應(yīng)用程序(例如,執(zhí)行傳輸層分組的應(yīng)用程序)可以決定將多個(gè)幀進(jìn)行組合以形成更大的分組來降低分組報(bào)頭所需的額外比特。在該分組內(nèi)部,應(yīng)用程序通過掃描比特流可以確定幀邊界。圖11示出了具有四個(gè)幀(1110,1120,1130,1140)的多個(gè)分組(1100)的可能比特流??梢约僭O(shè)該單個(gè)分組內(nèi)的所有幀在它們中任何一個(gè)被接收的情況下都將被接收(即,沒有部分?jǐn)?shù)據(jù)訛誤),并且自適應(yīng)碼本滯后,或基音通常小于幀長度。在這個(gè)例子中,一般不為幀2(1120)、幀3(1130)、以及幀4(1140)使用任何可任選的冗佘編碼信息,因?yàn)槿绻?dāng)前幀存在則在前幀通常也存在。因此,可以移除分組(1110)內(nèi)用于除了第一幀之外所有幀的可任選冗余編碼信息。這樣就得到了壓縮分組(1150),其中幀l(1160)包括可任選的額外碼本級信息,但是所有可任選的冗余編碼信息都己經(jīng)從殘留幀(1170,1180,1190)中移除。如果編碼器使用主要?dú)v史冗余編碼技術(shù),應(yīng)用程序會(huì)在把各幀一起打包為單個(gè)分組時(shí)丟掉任何這些比特,,因?yàn)闊o論在前幀是否丟失都要使用該主要?dú)v史冗余編碼信息。然而,該應(yīng)用程序如果知道這一幀將在多幀分組內(nèi)并且不會(huì)是這一分組中的第一幀,則會(huì)迫使編碼器像編碼常規(guī)一樣地對這一幀進(jìn)行編碼。雖然圖10和ll及其相關(guān)描述示出了在各幀與信息類型之間的字節(jié)對準(zhǔn)邊界,但是可選地,這些邊界也可以不是字節(jié)對準(zhǔn)的。此外,圖10和11及其相關(guān)模式示出了示例性的幀類型代碼和幀類型的組合??蛇x地,編碼器和解碼器使用其他和/或附加的幀類型或幀類型的組合。己經(jīng)參考描述的實(shí)施例描述并示出了本發(fā)明的原理,將會(huì)認(rèn)識到所描述的實(shí)施例可以在排列和細(xì)節(jié)上進(jìn)行修改且不背離這些原理。應(yīng)該理解除非另外指出,否則在此描述的程序、進(jìn)程或方法并不關(guān)聯(lián)于或限制于任何特定類型的計(jì)算環(huán)境。各種類型的通用或?qū)S糜?jì)算環(huán)境都可與根據(jù)在此描述教示的操作一并使用或執(zhí)行。軟件中示出的所述實(shí)施例的元素也可以由硬件實(shí)現(xiàn),并且反之亦然。權(quán)利要求1.一種方法,包括在音頻處理工具處,處理有關(guān)音頻信號的比特流,其中所述比特流包括用于當(dāng)前幀的主編碼信息,所述主編碼信息參考要在解碼當(dāng)前幀時(shí)使用的一段在前幀;以及用于解碼所述當(dāng)前幀的冗余編碼信息,所述冗余編碼信息包括與所述在前幀的被參考段相關(guān)聯(lián)的信號歷史信息;以及輸出結(jié)果。2.如權(quán)利要求l所述的方法,其特征在于,所述音頻處理工具是實(shí)時(shí)語音編碼器,所述結(jié)果是編碼語音。3.如權(quán)利要求l所述的方法,其特征在于,所述信號歷史信息包括用于所述被參考段的激勵(lì)歷史,但是不包括用于所述在前幀的一個(gè)或多個(gè)非被參考段的激勵(lì)歷史。4.如權(quán)利要求1所述的方法,其特征在于,所述音頻處理工具是語音解碼器,所述處理包括無論所述在前幀對所述解碼器是否可用,都在解碼所述當(dāng)前幀中使用所述冗余編碼信息。5.如權(quán)利要求所述的方法,其特征在于,所述音頻處理工具是語音解碼器,所述處理包括僅在所述在前幀對所述解碼器不可用的情況下,才在解碼所述當(dāng)前幀中使用所述冗余編碼信息。6.如權(quán)利要求l所述的方法,其特征在于,所述信號歷史信息以至少部分依賴于在解碼所述當(dāng)前幀時(shí)使用所述冗余編碼信息的概率而設(shè)置的質(zhì)量級別被編碼。7.如權(quán)利要求1所述的方法,其特征在于,所述音頻處理工具是語音解碼器,所述處理包括在所述在前幀對所述解碼器不可用的情況下,在解碼所述在前幀中使用所述冗余編碼信息。8.—種方法,包括在音頻處理工具處,處理有關(guān)音頻信號的比特流,其中所述比特流包括用于當(dāng)前編碼單元的主編碼信息,所述主編碼信息參考要被用于解碼當(dāng)前編碼單元的一段在前編碼單元;以及用于解碼所述當(dāng)前編碼單元的冗余編碼信息,所述冗余編碼信息包括僅在所述在前編碼單元不可用的情況下才在解碼所述當(dāng)前編碼單元時(shí)使用的用于一個(gè)或多個(gè)額外碼本級的一個(gè)或多個(gè)參數(shù);以及輸出結(jié)果。9.如權(quán)利要求8所述的方法,其特征在于,用于所述當(dāng)前編碼單元的主編碼信息包括殘留信號參數(shù),所述殘留信號參數(shù)表示在用于所述當(dāng)前編碼單元的重建和用于所述當(dāng)前編碼單元的預(yù)測之間的一個(gè)或多個(gè)差異。10.如權(quán)利要求8所述的方法,其特征在于所述音頻處理工具是音頻編碼器;以及處理所述比特流包括生成可任選的冗余編碼信息,其中生成所述可任選的冗余編碼信息包括在假設(shè)沒有激勵(lì)信息用于所述在前編碼單元的閉環(huán)編碼器搜索中確定用于所述一個(gè)或多個(gè)額外碼本級的所述一個(gè)或多個(gè)參數(shù)。11.如權(quán)利要求8所述的方法,其特征在于所述音頻處理工具是語音解碼器;以及如果所述在前編碼單元對所述解碼器不可用,則用于所述碼本的所述一個(gè)或多個(gè)參數(shù)就被所述解碼器在解碼所述當(dāng)前編碼單元時(shí)使用;以及如果所述在前編碼單元對所述解碼器可用,則用于所述碼本的所述一個(gè)或多個(gè)參數(shù)就不被所述解碼器在解碼所述當(dāng)前編碼單元時(shí)使用。12.如權(quán)利要求8所述的方法,其特征在于,所述碼本是跟隨在自適應(yīng)碼本級之后的固定碼本級中的固定碼本,并且其中用于一個(gè)或多個(gè)額外碼本級的所述一個(gè)或多個(gè)參數(shù)包括碼本索引和增益。13.如權(quán)利要求12所述的方法,其特征在于,用于所述自適應(yīng)碼本級中的自適應(yīng)碼本的一個(gè)或多個(gè)參數(shù)表示參考用于所述在前編碼單元的激勵(lì)歷史的所述當(dāng)前編碼單元的激勵(lì)信號,但是用于所述固定碼本的一個(gè)或多個(gè)參數(shù)表示不參考所述激勵(lì)歷史的所述激勵(lì)信號。14.如權(quán)利要求8所述的方法,其特征在于所述音頻處理工具是音頻解碼器;以及處理比特流包括如果所述在前編碼單元不可用,就在解碼所述當(dāng)前編碼單元時(shí)使用所述主編碼信息的至少一部分以及用于所述一個(gè)或多個(gè)額外碼本級的所述一個(gè)或多個(gè)參數(shù);以及如果在前編碼單元可用,就在解碼所述當(dāng)前編碼單元時(shí)使用所述主編碼信息,但不使用用于所述一個(gè)或多個(gè)額外碼本級的所述一個(gè)或多個(gè)參數(shù)。15.—種方法,包括在音頻處理工具處,處理包括多個(gè)編碼音頻單元的比特流,其中所述多個(gè)編碼單元中的每個(gè)編碼單元都包括字段,所述字段指示所述編碼單元是否包括表示一段所述音頻信號的主編碼信息;以及所述編碼單元是否包括在解碼主編碼信息時(shí)使用的冗余編碼信息。16.如權(quán)利要求15所述的方法,其特征在于,用于每個(gè)編碼單元的所述字段指示所述編碼單元是否包括主編碼信息和冗余編碼信息兩者;主編碼信息,但沒有冗余編碼信息;或冗余編碼信息,但沒有主編碼信息。17.如權(quán)利要求5所述的方法,其特征在于,所述處理包括打包所述多個(gè)編碼單元的至少一部分,其中包含用于解碼相應(yīng)的主編碼信息的冗余編碼信息但不包括所述相應(yīng)的主編碼信息的每個(gè)打包的編碼單元被包括在帶有所述相應(yīng)的主編碼信息的分組內(nèi)。18.如權(quán)利要求15所述的方法,其特征在于,所述處理包括確定在所述多個(gè)編碼單元的當(dāng)前編碼單元內(nèi)的冗余編碼信息是否是可任選的。19.如權(quán)利要求18所述的方法,其特征在于,所述處理還包括在所述當(dāng)前編碼單元內(nèi)的冗余編碼信息是可任選的情況下,確定是否打包所述當(dāng)前編碼單元內(nèi)的所述冗余編碼信息。20.如權(quán)利要求15所述的方法,其特征在于,如果所述多個(gè)編碼單元的當(dāng)前編碼單元包括冗余編碼信息,則用于所述當(dāng)前編碼單元的所述字段就指示用于所述當(dāng)前編碼單元的所述冗余編碼信息的分類。全文摘要描述了涉及音頻信息編碼和解碼的技術(shù)和工具。例如,用于解碼當(dāng)前幀的冗余編碼信息包括僅與在前幀一部分相關(guān)聯(lián)的信號歷史信息。作為另一個(gè)示例,用于解碼編碼單元的冗余編碼信息包括有關(guān)一碼本級的各參數(shù),該碼本級僅當(dāng)在前編碼單元不可用時(shí)用于解碼該當(dāng)前編碼單元。作為又一個(gè)示例,每個(gè)編碼音頻單元包括一字段,該字段用以指示編碼單元是否包括表示一段音頻信號的主編碼信息,以及編碼單元是否包括用于解碼主編碼信息的冗余編碼信息。文檔編號G10L19/04GK101189662SQ200680019541公開日2008年5月28日申請日期2006年4月5日優(yōu)先權(quán)日2005年5月31日發(fā)明者H·A·海莉爾,K·科什達(dá),T·王,W-G·陳,X·孫申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
双牌县| 古浪县| 锡林浩特市| 北票市| 大新县| 静海县| 三台县| 金川县| 湟源县| 利川市| 金阳县| 惠安县| 宣威市| 淮安市| 东山县| 常熟市| 邹平县| 鹤庆县| 泾源县| 嘉荫县| 友谊县| 张家港市| 乐业县| 遂川县| 漠河县| 玛沁县| 昌宁县| 乌鲁木齐县| 金乡县| 廉江市| 陈巴尔虎旗| 柏乡县| 景东| 定远县| 二连浩特市| 朝阳县| 呼和浩特市| 临夏县| 丹江口市| 安宁市| 车险|