專利名稱:用于處理編碼的音頻數(shù)據(jù)的方法和裝置的制作方法
用于處理編碼的音頻數(shù)據(jù)的方法和裝置背景技術(shù)本發(fā)明總體涉及音頻解碼器,比如可以在便攜式音樂(lè)播放器或其他 多媒體設(shè)備中使用的音頻解碼器。音頻解碼器可以用于解碼存儲(chǔ)的音頻 文件,或解碼通過(guò)網(wǎng)絡(luò)提供的數(shù)據(jù)流。用于編碼音頻的多種標(biāo)準(zhǔn)是公知的。此外,用于將編碼的音頻數(shù)據(jù)封裝成數(shù)據(jù)流(其可以包括數(shù)據(jù)文件或通過(guò)網(wǎng)絡(luò)提供的數(shù)據(jù)流)的多種 標(biāo)準(zhǔn)也是公知的。用于將編碼的音頻數(shù)據(jù)封裝成數(shù)據(jù)流的標(biāo)準(zhǔn)的 一 個(gè)例子是音頻數(shù)據(jù)傳輸流(ADTS)格式,其一般用于封裝并傳輸根據(jù)廣泛使 用的高級(jí)音頻編碼(AAC)標(biāo)準(zhǔn)編碼的音頻數(shù)據(jù)。ADTS和其他格式將數(shù)據(jù)流組織成音頻數(shù)據(jù)幀,每個(gè)幀包括報(bào)頭。在 一些應(yīng)用中,可能必需的是,掃描數(shù)據(jù)流的一部分而尋找編碼的音頻幀 的開(kāi)端。所謂的同步字一般包括在幀報(bào)頭中以方便該掃描。同步字是固 定長(zhǎng)度、固定值的數(shù)據(jù)字段,其通常被放置在報(bào)頭內(nèi)一致的位置處,比 如報(bào)頭的開(kāi)端。盡管掃描數(shù)據(jù)流以檢測(cè)同步字的出現(xiàn)通常對(duì)定位幀報(bào)頭是有效的, 但是可能出現(xiàn)誤差。因?yàn)橥阶滞ǔR驗(yàn)閷?shí)際原因而被限于相對(duì)較短的 長(zhǎng)度(比如U位),所以明顯的同步字可以偶爾地在音頻有效載荷數(shù) 據(jù)中(即幀報(bào)頭的外部)出現(xiàn)。這種情況的發(fā)生將導(dǎo)致幀的誤檢測(cè)。盡 管用于從這種誤檢測(cè)中恢復(fù)的各種技術(shù)是可能的,但是誤檢測(cè)導(dǎo)致使用 寶貴的處理時(shí)間和周期。因此,需要一種用于有效定位編碼的音頻幀的數(shù)據(jù)流中的幀分界同 時(shí)減少誤檢測(cè)的方法。發(fā)明內(nèi)容提供 一 種用于解碼數(shù)據(jù)流中的音頻幀的音頻解碼器,其中每個(gè)幀包 括報(bào)頭。該音頻解碼器包括一個(gè)或多個(gè)電路,這些電路被配置為生成匹 配沖莫式(matching pattern),該匹配才莫式包括同步字和對(duì)應(yīng)于有效編 碼的音頻幀中報(bào)頭字段的至少一個(gè)預(yù)期值的一個(gè)或多個(gè)附加位;通過(guò)在 數(shù)據(jù)流的一部分中4叟索該匹配才莫式的一個(gè)或多個(gè)實(shí)例(instance)來(lái)枱r測(cè)幀分界;以及解碼在數(shù)據(jù)流中對(duì)應(yīng)于所檢測(cè)到的幀分界的點(diǎn)處開(kāi)始的 一個(gè)或多個(gè)音頻幀。
圖1示出具有編碼的音頻幀的數(shù)據(jù)流。圖2示出用于編碼的音頻幀的示范性報(bào)頭結(jié)構(gòu)。圖3示出用于本發(fā)明的實(shí)施例中的示范性匹配才莫式。圖4示出用于處理編碼的音頻幀的示范性方法。圖5是用于處理音頻幀的示范性音頻解碼器的框圖。
具體實(shí)施方式
本發(fā)明提供用于處理包括編碼的音頻數(shù)據(jù)的數(shù)據(jù)流的方法,其中該 數(shù)據(jù)流被組織成多個(gè)幀。本文所描述的方法減少了幀分界的誤檢測(cè),從 而在音頻解碼器設(shè)備中實(shí)現(xiàn)了改進(jìn)的誤差恢復(fù)和增強(qiáng)的音頻處理特征。 本發(fā)明適用于處理被組織成文件并被存儲(chǔ)在非易失性存儲(chǔ)器中的音頻 數(shù)據(jù)或在音頻或多媒體"流"中由網(wǎng)絡(luò)化設(shè)備接收的音頻數(shù)據(jù)。圖1示出數(shù)據(jù)流70,其包括多個(gè)編碼的音頻幀72。每一個(gè)編碼的 音頻幀72包括報(bào)頭80;每個(gè)報(bào)頭的開(kāi)端對(duì)應(yīng)于幀分界74。數(shù)據(jù)流70可以包括根據(jù)一種或多種已知的音頻編碼方案(例如MP3 (M£EG層2)編碼方案或高級(jí)音頻編碼(AAC)編碼方案)編碼的音頻 數(shù)據(jù)。AAC 已經(jīng);波標(biāo)準(zhǔn)化為 MPEG-2標(biāo)準(zhǔn)(凈皮正式稱為 ISO/IEC1 3818-7: 1997 )的第7部分以及MPEG-4標(biāo)準(zhǔn)(被正式稱為 IS0/IEC14496-3: 1999 )的第3部分。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到許多其 他的音頻編碼方案已經(jīng)存在或者可能將來(lái)會(huì)被開(kāi)發(fā),并且這些方案中的 每一個(gè)都可以包括用于壓縮并編碼音頻數(shù)據(jù)的多種技術(shù)。事實(shí)上,AAC 標(biāo)準(zhǔn)本身實(shí)際上包括許多不同的編碼方案,其被組織成"類(profi le )" 和/或"目標(biāo)類型"。編碼的音頻數(shù)據(jù)(比如用AAC編碼的)典型地由一系列數(shù)據(jù)塊組成。 已經(jīng)設(shè)計(jì)出多種用于封裝數(shù)據(jù)的方法。在這些方法中最簡(jiǎn)單的是那些旨 在用于編碼的數(shù)據(jù)被組織成文件并被作為完整的文件存儲(chǔ)在存儲(chǔ)器中 的情況中的方法。在這種情況中,音頻的封裝可以簡(jiǎn)單地由在數(shù)據(jù)文件 的開(kāi)端處插入單個(gè)報(bào)頭組成。該報(bào)頭可以包括指示音頻數(shù)據(jù)格式的數(shù)據(jù)以及各種其他數(shù)據(jù)。例如,音頻數(shù)據(jù)交換格式(ADIF)通常與AAC數(shù)據(jù) 一起使用以創(chuàng)建AAC文件。ADIF報(bào)頭包括標(biāo)識(shí)文件才各式的字段以及與版 權(quán)管理和特定于用于產(chǎn)生音頻數(shù)據(jù)的音頻編碼方案的一些細(xì)節(jié)有關(guān)的 其他數(shù)據(jù)。已經(jīng)開(kāi)發(fā)了用于封裝編碼的音頻數(shù)據(jù)的更復(fù)雜的方案以處理比如 在網(wǎng)絡(luò)環(huán)境中傳輸音頻或多媒體流的情況。在網(wǎng)絡(luò)流環(huán)境(例如可以結(jié) 合因特網(wǎng)廣播或在移動(dòng)通信中找到)中,比如可以用因特網(wǎng)收音機(jī)或在 移動(dòng)通信中找到,音頻解碼器可能不能在任何給定的時(shí)間訪問(wèn)完整的音 頻數(shù)據(jù)文件。此外,為了數(shù)據(jù)傳輸目的,音頻數(shù)據(jù)可以與其他多媒體數(shù) 據(jù)(比如視頻數(shù)據(jù))交織。為了適應(yīng)這些情況,已經(jīng)設(shè)計(jì)了多種方案以 用于封裝音頻數(shù)據(jù),其中音頻數(shù)據(jù)被組織成幀,比如圖1中描繪的編碼 的音頻幀72。這樣的被設(shè)計(jì)為與AAC數(shù)據(jù)一起使用的方案的一個(gè)例子是 音頻數(shù)據(jù)傳輸流(ADTS )格式。該格式在MPEG-2的部分7和MPEG-4的 部分3連同AAC中被標(biāo)準(zhǔn)化。ADTS格式化的數(shù)據(jù)通常被組織成數(shù)據(jù)流 70,該數(shù)據(jù)流被組織成編碼的音頻幀72,其中每個(gè)編碼的音頻幀72包 括報(bào)頭80,如圖1所示。無(wú)論是否使用ADTS,本領(lǐng)域的技術(shù)人員也會(huì)認(rèn)識(shí)到數(shù)據(jù)流可以包括 除編碼的音頻之外的其他數(shù)據(jù),例如視頻數(shù)據(jù)。因此, 一種使用格式化 為一系列編碼的音頻幀72的音頻數(shù)據(jù)的傳輸方案對(duì)于在數(shù)據(jù)流70中將 音頻數(shù)據(jù)與其他數(shù)據(jù)隔離開(kāi)是有用的。因此,編碼的音頻幀72不需要 被組織成連續(xù)的塊。此外,ADTS和使用音頻幀的其他傳輸方案不被限制 于涉及數(shù)據(jù)網(wǎng)絡(luò)中音頻流的應(yīng)用。盡管與較簡(jiǎn)單的格式(比如ADIF)相 比,基于幀的格式(比如ADTS)使用更多的開(kāi)銷,然而這些基于幀的格 式適合用于下列情況其中音頻數(shù)據(jù)被組織成文件并被存儲(chǔ)在存儲(chǔ)器中 以用于取回和重放。因此,本公開(kāi)所4吏用的術(shù)語(yǔ)"數(shù)據(jù)流"可以:故組織 成文件并被存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù),或在流應(yīng)用中(比如因特網(wǎng)廣播 (Internet radio))以下面的方式傳輸?shù)臄?shù)據(jù)音頻解碼器不能在給 定時(shí)間訪問(wèn)全部音頻數(shù)據(jù)。圖2示出可以在數(shù)據(jù)流70的每個(gè)編碼的音頻幀72中找到的示范性 報(bào)頭80。報(bào)頭80包括同步字82,其是用于指示幀報(bào)頭存在的位的固定 序列。在圖2中,同步字82由12個(gè)"1"位的序列組成,其出現(xiàn)在幀 報(bào)頭的開(kāi)端。ADTS格式使用如圖2所描繪的報(bào)頭,但是應(yīng)當(dāng)清楚,其他格式可以使用不同長(zhǎng)度的同步字,這些同步字具有不同的數(shù)據(jù),和/或與報(bào)頭80—起出現(xiàn)在不同位置處。然而,同步字82的一致特征是,其 結(jié)構(gòu)和內(nèi)容相對(duì)于給定的傳輸格式是固定的。因此,例如,每個(gè)針對(duì)ADTS 格式化的數(shù)據(jù)流將包括報(bào)頭80,其中每個(gè)報(bào)頭包括相同的同步字82。相反地,報(bào)頭80內(nèi)的其他字段可以根據(jù)數(shù)據(jù)流的不同而變化。例 如,圖2中的報(bào)頭80包括ID字段,其包括單個(gè)位。該字段在ADTS中 用于指示數(shù)據(jù)流70中的音頻數(shù)據(jù)是否已經(jīng)根據(jù)MPEG-2標(biāo)準(zhǔn)(ID字段-1 ) 或MPEG-4標(biāo)準(zhǔn)(ID字段=0)編碼。因此,該字段可以在不同的數(shù)據(jù)流 之間變化。圖2還示出層字段86 (其在ADTS中固定為"00"),以及 保護(hù)缺失字段(protection absent field) 88 (在ADTS中,為指示報(bào) 頭是否包括校驗(yàn)和的1位字段)和類字段(profile field) (90)(在 ADTS中,為指示若干AAC編碼方案中的哪一個(gè)已經(jīng)用于編碼音頻數(shù)椐的 2位字段)。最后,圖2中的報(bào)頭8 0包括CRC (循環(huán)冗余碼校驗(yàn))校驗(yàn) 和字段92,其在ADTS中是可選的并且可以用于驗(yàn)證報(bào)頭的完整性。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚,圖2示出僅僅一個(gè)示范性報(bào)頭結(jié)構(gòu)。各 種可替代方案是可能的,但是報(bào)頭80典型地將包括同步字以及其他字 段,其中同步字對(duì)于給定類型的所有數(shù)據(jù)流來(lái)說(shuō)是固定值,而所述其他 字段中的一些可以在給定類型的不同數(shù)據(jù)流70之間變化,并且一些可 以在單個(gè)數(shù)據(jù)流70的不同報(bào)頭80之間變化。例如,對(duì)于ADTS,在給定 的數(shù)據(jù)流70內(nèi),ID字段84、層字段86、保護(hù)缺失字段88以及類字段 90典型地將是固定的,但是對(duì)于不同的數(shù)據(jù)流70,這些字段中的一個(gè) 或多個(gè)也不同。另一方面,從一個(gè)報(bào)頭80到下一個(gè)報(bào)頭,CRC字段92 可以變化。因?yàn)橐粋€(gè)或多個(gè)字段在數(shù)據(jù)流內(nèi)可以是固定的,所以通常不 僅可以預(yù)期在任意給定報(bào)頭80中的同步字的值,還可以預(yù)期一個(gè)或多 個(gè)其他字段的值,假設(shè)預(yù)先知道有效報(bào)頭80的內(nèi)容。當(dāng)處理數(shù)據(jù)流70時(shí),可能必需的是,定位與幀報(bào)頭80的開(kāi)端相關(guān) 聯(lián)的幀分界74。盡管典型地以線性方式(即逐位或逐字)處理數(shù)據(jù)流 70,但是數(shù)據(jù)流70中被破壞的數(shù)據(jù)(corrupted data)的存在可能使 標(biāo)識(shí)并定位隨后的報(bào)頭80成為必要,根據(jù)該定位可以繼續(xù)數(shù)據(jù)流70的 處理。此外,音頻重放設(shè)備的更復(fù)雜的功能可能使重復(fù)標(biāo)識(shí)報(bào)頭成為必 要,使得可以跳過(guò)一個(gè)或多個(gè)編碼的音頻幀72。例如,快進(jìn)功能可能要 求數(shù)據(jù)處理在數(shù)據(jù)流70中的任意位置處暫停,并且以位于沿著數(shù)據(jù)流870中更遠(yuǎn)處的編碼的音頻幀72重新開(kāi)始。這樣的功能可能要求,跳過(guò) 編碼的音頻幀72直到發(fā)送了終止信號(hào)為止??商娲?,這樣的功能可 能要求,跳過(guò)預(yù)定數(shù)量的編碼的音頻幀72,并且在隨后的編碼的音頻幀 72處重新開(kāi)始重放(即解碼)。
典型地,可以順序地掃描數(shù)據(jù)流70,并且可以搜索與同步字82匹 配的位的序列的存在。因此,前進(jìn)到下一個(gè)編碼的音頻幀72通常是簡(jiǎn) 單的事情在數(shù)據(jù)流70中前向掃描直到找到與同步字82匹配的一系列 位為止,并且隨后處理在匹配的位的位置處開(kāi)始的編碼的音頻幀72。
然而,在給定任意實(shí)際長(zhǎng)度的同步字82的情況下,匹配同步字82 的位序列可以不被限制于報(bào)頭80的同步字位置。這些序列可以在編碼 的音頻數(shù)據(jù)內(nèi)的隨機(jī)位置處出現(xiàn)。在實(shí)踐中,例如在ADTS格式化的數(shù) 據(jù)中經(jīng)常觀察到這些序列的隨機(jī)出現(xiàn)。
結(jié)果,依賴于前述用于定位幀分界74的技術(shù)的對(duì)編碼的音頻的任 何處理可能經(jīng)受不可接受頻率的誤檢測(cè)。用于從這樣的誤檢測(cè)中恢復(fù)的 一種方法是, 一旦檢測(cè)到與同步字的匹配,便解析應(yīng)當(dāng)通常對(duì)應(yīng)于報(bào)頭 80余下部分的一系列數(shù)據(jù)位,并且如果這些位解析正確,則繼續(xù)處理隨 后的音頻數(shù)據(jù)。該解析可以包括CRC校驗(yàn)和字段92的評(píng)價(jià),其驗(yàn)證了 報(bào)頭80的完整性,并且因此隱含地驗(yàn)證有效報(bào)頭80已經(jīng)被定位。
然而,解析完整的報(bào)頭80是耗時(shí)的。因此,在處理周期受限的處 理環(huán)境中,從頻繁的幀分界誤檢測(cè)中恢復(fù)可能是非常不希望的,甚至在 幀分界的誤檢測(cè)的頻率相對(duì)較低時(shí)也是如此。
圖3示出可以用在本發(fā)明的某些實(shí)施例的匹配^^莫式60的結(jié)構(gòu)。匹 配模式60包括與在目標(biāo)數(shù)據(jù)流70的有效編碼的音頻幀72中找到的同 步字82相同的同步字62。匹配模式60還包括對(duì)應(yīng)于在數(shù)據(jù)流70中的 有效編碼的音頻幀72的報(bào)頭80中找到的一個(gè)或多個(gè)字段的期望值的附 加位64。附加數(shù)據(jù)位64的內(nèi)容將在下面進(jìn)一步討^侖。所述附加數(shù)據(jù)位 可以用于有效地?cái)U(kuò)展同步字。因?yàn)檎`檢測(cè)的頻率直接與同步字的長(zhǎng)度有 關(guān),所以同步字的擴(kuò)展降低了誤檢測(cè)的頻率。
圖4示出在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中用于處理數(shù)據(jù)流70中的 編碼的音頻幀72的示范性方法。首先,使用已知的對(duì)應(yīng)于數(shù)據(jù)流70的 信息生成匹配模式60 (方框IOO)。特別地,匹配^t式包括對(duì)應(yīng)于在目 標(biāo)數(shù)據(jù)流70的所有有效報(bào)頭80中找到的同步字82的同步字62。例如,如果目標(biāo)數(shù)據(jù)流7 0是ADTS格式化的數(shù)據(jù)流,則同步字62將由12個(gè)"1" 的序列組成。
方框100中生成的匹配才莫式60還包括一個(gè)或多個(gè)附加位64。這些 附加位64包括在特定數(shù)據(jù)流70的有效報(bào)頭80中找到的一個(gè)或多個(gè)字 段的期望值。如上所述,報(bào)頭80的某些字段的值在特定數(shù)據(jù)流70內(nèi)將 是固定的,即使這些字段的值可以在相同類型的不同數(shù)據(jù)流70之間變 化。因此,如果這些字段的值對(duì)于給定數(shù)據(jù)流70的一個(gè)報(bào)頭80是已知 的,則可以期望這些值在該數(shù)據(jù)流70的所有其他報(bào)頭80中出現(xiàn)。
回到圖2,可以看到ADTS報(bào)頭例如包括ID字段84、層字段86、保 護(hù)缺失字段88和類字段90。如果特定數(shù)據(jù)流70是針對(duì)ADTS而被#"式 化的,那么所有這些字段在該特定數(shù)據(jù)流70內(nèi)通常是固定的。相反, CRC校一瞼和字段92將從一個(gè)ADTS ;f各式報(bào)頭80到下一個(gè)而變化。
因此,音頻解碼器可以產(chǎn)生與ADTS格式的數(shù)據(jù)流70—起使用的匹 配模式60,該匹配沖莫式60包括12位的同步字62和對(duì)應(yīng)于ID字段84、 層字段86、保護(hù)缺失字段88和類字段90中一個(gè)或多個(gè)的期望值的附加 位64。在該非限制性例子中,所得的匹配模式60的長(zhǎng)度為18位??商?代地,匹配才莫式60可以包括12位同步字62,加上對(duì)應(yīng)于僅ID字段84、 層字段86和保護(hù)缺失字段88的期望值的附加位64。在這種情況下,匹 配模式60的長(zhǎng)度是16位或2個(gè)字節(jié)。該長(zhǎng)度在本發(fā)明的一些實(shí)施例中 可能更加適宜。
圖4的方框100示出匹配才莫式60的生成。匹配沖莫式60可以從同步 字62和附加位64的各種組合來(lái)構(gòu)建。如前面所述,這些附加位對(duì)應(yīng)于 包含在特定數(shù)據(jù)流70中的有效編碼的音頻幀72中的一個(gè)或多個(gè)報(bào)頭字 段的期望值??梢曰陉P(guān)于目標(biāo)數(shù)據(jù)流70的先驗(yàn)信息預(yù)期那些報(bào)頭字 段的值。該先驗(yàn)信息可以從解析包含在目標(biāo)數(shù)據(jù)流70中的一個(gè)報(bào)頭80 的內(nèi)容獲得,或者從單獨(dú)提供的、并與特定目標(biāo)數(shù)據(jù)流70有關(guān)的信息 獲得。例如,在流環(huán)境中,作為音頻流的來(lái)源的計(jì)算機(jī)服務(wù)器可以提供 描述分別來(lái)自數(shù)據(jù)流70本身的音頻流的參數(shù)。這些參數(shù)可以指示例如 數(shù)據(jù)流70包含按照MPEG-2標(biāo)準(zhǔn)進(jìn)行AAC編碼的數(shù)據(jù),以及數(shù)據(jù)流70 不包含報(bào)頭80中的CRC校驗(yàn)和字段92。因此,不管這些參數(shù)如何被格 式化,可以確定包含在報(bào)頭80內(nèi)的若干報(bào)頭字段的期望值,且不用首 先解碼報(bào)頭80。因此,音頻解碼器可以使用由解碼報(bào)頭80獲得的信息
10來(lái)生成匹配模式60,或者使用源自單獨(dú)提供的信息的數(shù)據(jù)來(lái)生成匹配模
式60。
圖4進(jìn)一步示出通過(guò)在數(shù)據(jù)流70的一部分中搜索匹配模式60的一 個(gè)實(shí)例來(lái)檢測(cè)幀分界74 (方框102)。該搜索可以以與上述同步字搜索 相似的方式進(jìn)行,即通過(guò)順序地掃描數(shù)據(jù)流70而尋找匹配所述匹配才莫 式60的位的序列來(lái)進(jìn)行搜索。這可以例如通過(guò)順序地經(jīng)由長(zhǎng)度等于匹 配模式的長(zhǎng)度的移位寄存器移位數(shù)據(jù)流來(lái)完成。在每個(gè)周期中,可以將 移位寄存器的內(nèi)容與匹配模式60進(jìn)行比較;匹配將指示檢測(cè)到了幀分 界??商娲?,數(shù)據(jù)流70的片段可以由配置為將匹配模式60與該片段 中每個(gè)可能的位置進(jìn)行比較的處理器從存儲(chǔ)器取回,于是,匹配指示檢 測(cè)到了幀分界。上面的例子是說(shuō)明性的,且不是限制性的。數(shù)據(jù)處理領(lǐng) 域的技術(shù)人員將認(rèn)識(shí)到,各種用于在數(shù)據(jù)流70的一部分中搜索匹配模 式60的一個(gè)實(shí)例的技術(shù)是可能的。
無(wú)論如何,因?yàn)槠ヅ淠J?0比同步字62長(zhǎng),所以匹配模式60與 數(shù)據(jù)流7 0之間隨機(jī)匹配的可能性低于單獨(dú)使用同步字6 2來(lái)完成匹配的 情況。根據(jù)包括在匹配模式60中的附加位64的數(shù)量,可以大大降低誤 檢測(cè)的概率。例如,假設(shè)編碼的音頻數(shù)據(jù)一般是隨機(jī)的,那么使用16 位的匹配模式60將使誤檢測(cè)率降低超過(guò)93%。當(dāng)然,在實(shí)踐中,所述改 進(jìn)可能會(huì)變化,然而甚至對(duì)于相對(duì)較少數(shù)量的附加位64,誤檢測(cè)率將顯 著降低。
方框102中所示的4全測(cè)步驟可以可選地包括在數(shù)據(jù)流70中搜索匹 配模式60的多次出現(xiàn)。在一個(gè)示范性方法中,順序地在數(shù)據(jù)流70的一 部分中搜索預(yù)定數(shù)量的匹配模式60的實(shí)例,并且所檢測(cè)到的幀分界74 對(duì)應(yīng)于最后一個(gè)實(shí)例。例如,該方法的應(yīng)用可能要求跳過(guò)5個(gè)幀。在這 種情況下,檢測(cè)步驟將包括在數(shù)據(jù)流70中搜索匹配;^莫式60的5個(gè)連續(xù) 的實(shí)例;所檢測(cè)到的幀分界74將對(duì)應(yīng)于上述5個(gè)連續(xù)的實(shí)例中的最后 一個(gè)。
在本發(fā)明的可替^(戈實(shí)施例中,可以順序地在數(shù)據(jù)流70中搜索匹配 模式60的多個(gè)實(shí)例,直到接收到終止信號(hào)為止。在該實(shí)施例中,在接 收到終止信號(hào)之前,所檢測(cè)到的幀分界74可以對(duì)應(yīng)于所檢測(cè)到的匹配 模式60的最后一個(gè)實(shí)例。
在本發(fā)明的又一個(gè)實(shí)施例中,數(shù)據(jù)流70中匹配模式60的實(shí)例的每
ii個(gè)檢測(cè)可能觸發(fā)指示匹配已經(jīng)出現(xiàn)的信號(hào),使得該信號(hào)可以用于生成終 止信號(hào)。例如,可以在數(shù)據(jù)流70中快速地搜索匹配沖莫式60的多個(gè)實(shí)例。 每個(gè)匹配可以導(dǎo)致信號(hào)產(chǎn)生脈沖,從而可以計(jì)數(shù)該脈沖,產(chǎn)生指示所檢
測(cè)的匹配的數(shù)量的參數(shù)。給定的應(yīng)用可能要求例如跳過(guò)6個(gè)幀,并且因 此使得搜索繼續(xù)直到計(jì)數(shù)了 60個(gè)匹配,這時(shí)該應(yīng)用生成終止信號(hào)。因 此,在該例子中,所檢測(cè)到的幀分界74可以對(duì)應(yīng)于在接收到終止信號(hào) 之前檢測(cè)的匹配模式60的最后一個(gè)實(shí)例。
在已經(jīng)檢測(cè)到幀分界74之后,可以繼續(xù)處理隨后的編碼的音頻幀 72。在本發(fā)明的一些實(shí)施例中,在音頻數(shù)據(jù)被解碼之前,可以使得包含 在對(duì)應(yīng)于所檢測(cè)到的幀分界74的編碼的音頻幀72中的報(bào)頭80生效, 如方框104所示。例如,可以評(píng)價(jià)CRC校-瞼和字段92以證實(shí)報(bào)頭80凈皮 正確地接收。萬(wàn)一發(fā)生幀誤檢測(cè)(利用本發(fā)明的實(shí)施例,發(fā)生的可能性 不大,但仍然可能發(fā)生),對(duì)CRC校驗(yàn)和字段92的評(píng)價(jià)將幾乎必定失 敗,這指示或者數(shù)據(jù)被破壞,或者幀分界74的檢測(cè)失敗。因此,對(duì) CRC校驗(yàn)和字段92的評(píng)價(jià)用于驗(yàn)證所檢測(cè)到的幀分界74對(duì)應(yīng)于有效報(bào) 頭80。
用于驗(yàn)證所檢測(cè)到的幀分界74對(duì)應(yīng)于有效報(bào)頭的其他技術(shù)也是可 能的。例如,如果報(bào)頭80包含指示幀長(zhǎng)度的信息,則處理器可以在數(shù) 據(jù)流中預(yù)測(cè)未來(lái)以驗(yàn)證有效同步字是存在的,其中期望隨后的報(bào)頭80。 然而,應(yīng)當(dāng)注意,用于驗(yàn)證所檢測(cè)到的幀分界74對(duì)應(yīng)于有效報(bào)頭的任 何處理通常將需要附加的處理步驟。因此,根據(jù)本公開(kāi)的教導(dǎo)減少誤檢 測(cè)也將減少專用于驗(yàn)證幀分界檢測(cè)的處理步驟。
如果所檢測(cè)到的幀報(bào)頭是有效的,則在數(shù)據(jù)流中對(duì)應(yīng)于所檢測(cè)到的 幀分界74的點(diǎn)處開(kāi)始對(duì)編碼的音頻幀72進(jìn)行解碼,如方框106所示。 根據(jù)適用的編碼方案實(shí)施對(duì)編碼的音頻幀72的解碼。因此,例如使用 AAC解碼器來(lái)對(duì)由AAC編碼器編碼的編碼的音頻幀72進(jìn)4于解碼。
圖5示出根據(jù)本發(fā)明的 一個(gè)或多個(gè)實(shí)施例的示范性音頻解碼器的簡(jiǎn) 化框圖。解碼器50至少包括控制邏輯塊52、匹配模式發(fā)生器54、幀分 界檢測(cè)器56和幀解碼器58。示出了解碼器50具有到存儲(chǔ)器40的接口 , 并且產(chǎn)生解碼的音頻輸出。
控制邏輯塊52提供對(duì)解碼器50的整體控制。它可以提供用于啟動(dòng) 和/或終止音頻解碼的觸發(fā)器。它還可以包括用于用戶接口的邏輯,比如鍵區(qū)或觸摸屏,以允許用戶對(duì)解碼器50進(jìn)行控制。可替代地或附加
地,控制邏輯52可以包括應(yīng)用程序接口 (API)的實(shí)現(xiàn)以用于與單獨(dú)的 軟件程序或程序模塊進(jìn)行通信。
匹配模式發(fā)生器54被配置為生成與目標(biāo)數(shù)據(jù)流7 0 —起使用的匹配 模式60,如上所述。匹配模式發(fā)生器54設(shè)有與數(shù)據(jù)流70相關(guān)的信息, 數(shù)據(jù)流70包括用在目標(biāo)類型的數(shù)據(jù)流中的同步字82。此外,匹配模式 發(fā)生器54設(shè)有與目標(biāo)數(shù)據(jù)流70中有效報(bào)頭80中的至少一個(gè)報(bào)頭字段 的期望值相關(guān)的信息。如上所述,該信息可以從實(shí)際地閱讀在目標(biāo)數(shù)據(jù) 流70中的報(bào)頭80獲得,或者可以從單獨(dú)提供的關(guān)于數(shù)據(jù)流70的信息 中獲得。在這兩種情況中的任意一種情況下,匹配模式發(fā)生器54構(gòu)建 匹配模式60,其包括同步字62 (其等同于同步字82)和對(duì)應(yīng)于有效報(bào) 頭80中的一個(gè)或多個(gè)報(bào)頭字段的期望值或多個(gè)期望值的附加字段64。
幀分界檢測(cè)器56使用匹配模式60來(lái)在數(shù)據(jù)流的一部分中搜索匹配 模式60的一個(gè)實(shí)例。匹配^t式60的每個(gè)實(shí)例通常將對(duì)應(yīng)于幀分界74。 在本發(fā)明的一些實(shí)施例中,幀分界檢測(cè)器74將在匹配模式60的第一實(shí) 例處停止其搜索,從而產(chǎn)生對(duì)應(yīng)的所;險(xiǎn)測(cè)到的幀分界74。在其他實(shí)施例 中,幀分界檢測(cè)器56可以被配置為繼續(xù)對(duì)數(shù)據(jù)流70進(jìn)行搜索,以檢測(cè) 匹配模式60的多個(gè)實(shí)例,直到它從控制邏輯52接收到終止信號(hào)為止。 在該例子中,所檢測(cè)到的幀分界74可以對(duì)應(yīng)于在接收到終止信號(hào)之前 最后檢測(cè)到的匹配^^莫式60的實(shí)例。
可替代地,如上所述,幀分界檢測(cè)器56可以:故配置為在數(shù)據(jù)流70 中搜索預(yù)定數(shù)量的匹配模式60的實(shí)例;在這種情況下,所檢測(cè)到的幀 分界74可以對(duì)應(yīng)于最后檢測(cè)到的實(shí)例。
無(wú)論如何,幀分界檢測(cè)器56將與所檢測(cè)到的幀分界74有關(guān)的信息 傳遞到幀解碼器58。幀解碼器58使用合適的解碼器算法對(duì)一個(gè)或多個(gè) 編碼的音頻幀72進(jìn)行解碼。幀解碼器58產(chǎn)生解碼的音頻輸出,其可以 包括未被壓縮的數(shù)字音頻流,例如脈沖碼調(diào)制(PCM)音頻流,以供音 頻應(yīng)用使用并且/或者用于轉(zhuǎn)換為模擬音頻。
解碼器50可以與存儲(chǔ)器40接口以訪問(wèn)數(shù)據(jù)流70。數(shù)據(jù)流70可以 被組織成文件并且存儲(chǔ)在存儲(chǔ)器40中,在這種情況下存儲(chǔ)器40可以是 隨機(jī)存取存儲(chǔ)器或非易失性存儲(chǔ)器,比如閃存或磁盤(pán)驅(qū)動(dòng)器。數(shù)據(jù)流70 還可以從數(shù)據(jù)網(wǎng)絡(luò)上的多媒體源或流音頻獲得,在這種情況下,存儲(chǔ)器40最有可能為緩沖數(shù)據(jù)流70的一部分的隨機(jī)存取存儲(chǔ)器。
控制邏輯塊52、匹配模式發(fā)生器54、幀分界檢測(cè)器56和幀解碼器 58可以使用數(shù)字邏輯硬件或運(yùn)行在微處理器上的軟件或二者的組合來(lái) 實(shí)現(xiàn)。任何塊可以通過(guò)專用處理器實(shí)現(xiàn),或者若干塊可以通過(guò)單個(gè)處理 器實(shí)現(xiàn)。特別地,幀解碼器58可以使用專用數(shù)字信號(hào)處理器(DSP)實(shí) 現(xiàn),但是所述塊中的任意一個(gè)可以整體地或部分地使用通用微處理器或 DSP實(shí)現(xiàn)。此外,任何塊的功能都可以在兩個(gè)或更多處理器或硬件塊之 間分割,而不脫離本發(fā)明的精神。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明寬泛地提供了用于快速有效地檢 測(cè)用在音頻解碼器中的編碼的音頻數(shù)據(jù)流中的幀分界的方法和設(shè)備。當(dāng) 然,在不脫離本發(fā)明的范圍和本質(zhì)特征的情況下,可以通過(guò)除本文所提 出方法之外的其他特定方法來(lái)實(shí)施本發(fā)明。因此,本發(fā)明不限于上面詳 細(xì)描述的特征和優(yōu)點(diǎn),而且不受附圖的限制。事實(shí)上,本發(fā)明僅僅由所 附權(quán)利要求及其法律等價(jià)物限定。
權(quán)利要求
1.一種用于解碼數(shù)據(jù)流(70)中的編碼的音頻幀(72)的方法,每個(gè)幀(72)包括報(bào)頭(80),該方法包括下列步驟生成匹配模式(60),該匹配模式包括同步字(62)和對(duì)應(yīng)于有效編碼的音頻幀(72)中的報(bào)頭(80)字段的至少一個(gè)期望值的一個(gè)或多個(gè)附加位(64);通過(guò)在所述數(shù)據(jù)流(70)的一部分中搜索所述匹配模式(60)的實(shí)例來(lái)檢測(cè)幀分界(74);以及解碼在所述數(shù)據(jù)流(70)中對(duì)應(yīng)于所檢測(cè)到的幀分界(74)的點(diǎn)處開(kāi)始的一個(gè)或多個(gè)編碼的音頻幀(72)。
2. 權(quán)利要求1的方法,其中檢測(cè)幀分界(74 )包括搜索預(yù)定數(shù)量的所述匹配模式(60)的實(shí)例,并且其中所檢測(cè)到的幀分界(74)對(duì)應(yīng)于所述實(shí)例的最后一個(gè)。
3. 權(quán)利要求l的方法,進(jìn)一步包括接收終止信號(hào),其中檢測(cè)幀分界(74)包括在所述數(shù)據(jù)流(70)的一部分中搜索所述匹配模式(60)的實(shí)例,直到接收到終止信號(hào)為止。
4. 權(quán)利要求3的方法,其中檢測(cè)幀分界(74 )包括檢測(cè)對(duì)應(yīng)于在收到所述終止信號(hào)之前所檢測(cè)到的所述匹配模式(60)的最后實(shí)例的幀分界(74)。
5. 權(quán)利要求4的方法,進(jìn)一步包括提供用于生成所述終止信號(hào)的幀檢測(cè)信號(hào),該幀檢測(cè)信號(hào)指示多個(gè)檢測(cè)到的所述匹配模式(60 )的實(shí)例。
6. 權(quán)利要求1的方法,其中所述編碼的音頻幀(72)包括高級(jí)音頻編解碼器原始數(shù)據(jù)塊。
7. 權(quán)利要求6的方法,其中所述幀報(bào)頭(80)包括音頻數(shù)據(jù)傳輸流(ADTS)報(bào)頭,并且其中所述匹配模式(60)包括12位的同步字(62)和對(duì)應(yīng)于1位ID字段(84 )、 2位層字段(86 )和1位保護(hù)缺失字段(88 )的期望值的附加位(64)。
8. 權(quán)利要求1的方法,進(jìn)一步包括檢測(cè)音頻處理誤差并標(biāo)識(shí)所述數(shù)據(jù)流(70)中對(duì)應(yīng)于所述音頻處理誤差的誤差位置;其中在所述數(shù)據(jù)流(70)的一部分中搜索所述匹配模式(60)的實(shí)例開(kāi)始于所述誤差位置。
9. 權(quán)利要求1的方法,其中檢測(cè)幀分界(74 )包括驗(yàn)證所檢測(cè)到的幀分界(74)對(duì)應(yīng)于有效報(bào)頭(80)。
10. 權(quán)利要求9的方法,其中驗(yàn)證所檢測(cè)到的幀分界(74)對(duì)應(yīng)于有效報(bào)頭(80)包括評(píng)價(jià)循環(huán)冗余校驗(yàn)和位以證實(shí)所檢測(cè)到的幀分界(70對(duì)應(yīng)于有效報(bào)頭(80)。
11. 一種用于解碼數(shù)據(jù)流(70)中的編碼的音頻幀(72)的音頻解碼器(50),包括匹配模式發(fā)生器(54),其被配置為生成匹配^^莫式(60),該匹配模式包括同步字(62)和對(duì)應(yīng)于有效編碼的音頻幀(72)中的報(bào)頭字段的至少一個(gè)期望值的一個(gè)或多個(gè)附加位(64);幀分界檢測(cè)器(56),其被配置為在所述數(shù)據(jù)流(70)的一部分中搜索所述匹配模式(60)的實(shí)例以檢測(cè)幀分界(74);以及幀解碼器(58),其被配置為解碼在所述數(shù)據(jù)流(70)中對(duì)應(yīng)于所檢測(cè)到的幀分界(74)的點(diǎn)處開(kāi)始的一個(gè)或多個(gè)編碼的音頻幀(72)。
12. 權(quán)利要求11的音頻解碼器(50),其中所述幀分界檢測(cè)器(56)被配置為搜索預(yù)定數(shù)量的所述匹配模式(60)的實(shí)例,并且其中所檢測(cè)到的幀分界(74)對(duì)應(yīng)于所述實(shí)例中的最后一個(gè)。
13. 權(quán)利要求11的音頻解碼器(50),其中所述幀分界檢測(cè)器(56)被配置為接收終止信號(hào),并且其中所述幀分界檢測(cè)器(56)被進(jìn)一步配置為搜索所述匹配模式(60)的實(shí)例,直到接收到終止信號(hào)為止。
14. 權(quán)利要求13的音頻解碼器(50),其中所述幀分界檢測(cè)器(56)被進(jìn)一步配置為提供用于生成所述終止信號(hào)的幀檢測(cè)信號(hào),該幀檢測(cè)信號(hào)指示多個(gè)檢測(cè)到的所述匹配模式(60)的實(shí)例。
15. 權(quán)利要求11的音頻解碼器(50),其中所述編碼的音頻幀(72)包括音頻數(shù)據(jù)傳輸(ADTS)報(bào)頭,并且其中所述匹配模式發(fā)生器(54)被配置為生成包括12位的同步字(62)和對(duì)應(yīng)于1位ID字段(84)、2位層字段(86 )和1位保護(hù)缺失字段(88 )的期望值的附加位(64 )的匹配沖莫式(60)。
16. 權(quán)利要求11的音頻解碼器(50),進(jìn)一步包括被配置為檢測(cè)音頻處理誤差并標(biāo)識(shí)所述數(shù)據(jù)流中對(duì)應(yīng)于所述音頻處理誤差的誤差位置的解碼誤差檢測(cè)器;其中所述幀分界檢測(cè)器(56)被進(jìn)一步配置為在所述誤差位置處開(kāi)始搜索。
17. 權(quán)利要求11的音頻解碼器(50),其中所述幀分界檢測(cè)器(56)被進(jìn)一步配置為驗(yàn)證所檢測(cè)到的幀分界(70對(duì)應(yīng)于有效報(bào)頭(80)。
18.權(quán)利要求17的音頻解碼器(50),其中所述幀分界檢測(cè)器(56)被配置為通過(guò)評(píng)價(jià)所述數(shù)據(jù)流(70)中的循環(huán)冗余校驗(yàn)和位以證實(shí)所檢測(cè)到的幀分界(74 )對(duì)應(yīng)于有效報(bào)頭(80 )來(lái)驗(yàn)證所檢測(cè)到的幀分界(74 )對(duì)應(yīng)于有效報(bào)頭(80)。
全文摘要
為了定位編碼的音頻幀分界(74)并在對(duì)應(yīng)于該幀分界(74)的點(diǎn)處開(kāi)始解碼音頻,音頻解碼器(50)生成包含同步字(62)和與編碼的音頻幀(72)的報(bào)頭(80)相關(guān)的附加位(64)的匹配模式(60)、通過(guò)在編碼的音頻幀(72)的數(shù)據(jù)流(70)中搜索該匹配模式(60)的實(shí)例來(lái)檢測(cè)音頻幀分界(74)、并且在數(shù)據(jù)流(70)中對(duì)應(yīng)于所檢測(cè)到的幀分界(74)的點(diǎn)處開(kāi)始解碼音頻幀(72)。
文檔編號(hào)G10L19/00GK101675473SQ200880013644
公開(kāi)日2010年3月17日 申請(qǐng)日期2008年1月31日 優(yōu)先權(quán)日2007年4月27日
發(fā)明者R·H·梅茨 申請(qǐng)人:索尼愛(ài)立信移動(dòng)通訊股份有限公司