專(zhuān)利名稱(chēng):幀標(biāo)題的自動(dòng)檢測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)進(jìn)階音訊編碼(advanced audio coding, AAC)技術(shù),尤有關(guān)于一種AAC 幀標(biāo)題(frame header)的自動(dòng)檢測(cè)方法。
背景技術(shù):
由于音訊壓縮技術(shù)的持續(xù)發(fā)展,在MP3掀起一股潮流之后,MPEG就新的音訊壓縮 技術(shù)不斷討論,產(chǎn)生了 AAC(MPEG-2)以及最新的 HE-AAC (high-efficiency AAC) (MPEG-4) 兩個(gè)重要的音訊壓縮標(biāo)準(zhǔn)。其中,HE-AAC結(jié)合AAC技術(shù)及頻段復(fù)制(Spectral Band Replication)技術(shù),壓縮效率比AAC提升至少30%,也領(lǐng)先目前文獻(xiàn)上其它音訊壓縮技術(shù)。圖1是顯示傳輸流(transport stream, TS)、音訊基本封包流(packetized elementarystream, PES)及幀(frame)之間的關(guān)系圖。AAC 串流(bit stream)的核心 是幀,每一個(gè)幀包含一幀標(biāo)題及一幀壓縮數(shù)據(jù)塊(raw data block)。一般幀壓縮數(shù)據(jù) 塊包含2048、或1024、或512、或256個(gè)時(shí)間域取樣點(diǎn)。AAC標(biāo)準(zhǔn)為每一個(gè)幀定義了一個(gè) ADTS (audio data transport stream)標(biāo)題,而 HE-AAC 標(biāo)準(zhǔn)則為每一個(gè)幀定義 了一個(gè) LOAS (low-overhead audio stream)標(biāo)題或 LATM (low-overhead MPEG-4 audiotransport multiplex)標(biāo)題,來(lái)記錄幀的相關(guān)解碼信息。另一方面,幀的外層是音訊PES,亦即幀是裝 載于PES的承載數(shù)據(jù)部分(PES payload),而在音訊PES的外層則是TS封包,適合噪聲干擾 較多的使用環(huán)境中傳輸。一般TS串流可能混雜了上述二種音訊標(biāo)準(zhǔn),接收端裝置的信息流語(yǔ)法解析器 (stream information parser)接收TS串流后,對(duì)每一個(gè)TS封包進(jìn)行語(yǔ)法解析,若發(fā)現(xiàn)一 TS封包的數(shù)據(jù)形式(stream_type)字段的值等于OxF時(shí)(例如PMT中的stream_type字 段),表示其相對(duì)應(yīng)的音訊PES支持MPEG-2 AAC音訊壓縮標(biāo)準(zhǔn)且內(nèi)含的幀具有一 ADTS標(biāo) 題,現(xiàn)有的信息流語(yǔ)法解析器會(huì)在后級(jí)的音訊解碼器(audio decoder)開(kāi)始解碼前將ADTS 標(biāo)題的同步碼(sync word) OxFFF填入音訊解碼器,以便AAC解碼器根據(jù)同步碼OxFFF在一 連串輸入幀中,來(lái)識(shí)別ADTS標(biāo)題或ADTS幀。反之,若發(fā)現(xiàn)TS封包的數(shù)據(jù)形式字段的值等于 0x11時(shí),表示其相對(duì)的音訊PES支持MPEG-4HE-AAC音訊壓縮標(biāo)準(zhǔn)且內(nèi)含的幀具有一 LOAS 標(biāo)題或一 LATM標(biāo)題,現(xiàn)有的信息流語(yǔ)法解析器會(huì)在后級(jí)的音訊解碼器開(kāi)始解碼前,將LOAS 標(biāo)題或LATM標(biāo)題的同步碼0x2B7填入AAC解碼器,以便音訊解碼器根據(jù)同步碼0x2B7在一 連串輸入幀中,來(lái)識(shí)別LOAS幀或LATM幀。然而,在龐大且復(fù)雜的軟硬件動(dòng)作流程中,只要其中一個(gè)環(huán)節(jié)的程序出錯(cuò),例如 若信息流語(yǔ)法解析器或上層應(yīng)用程序不小心將錯(cuò)誤的同步碼填入AAC解碼器,或者,原先 TS封包的數(shù)據(jù)形式字段與實(shí)際音訊標(biāo)題的同步碼不符,都可能使AAC解碼器發(fā)生解碼錯(cuò) 誤,甚至該頻道發(fā)不出任何聲音,直到使用者切換頻道為止,嚴(yán)重影響收訊品質(zhì)。
發(fā)明內(nèi)容
有鑒于上述問(wèn)題,本發(fā)明的一目的是提供一種幀標(biāo)題的自動(dòng)檢測(cè)方法,通過(guò)搜尋比較輸入幀的實(shí)際內(nèi)容及預(yù)設(shè)的同步碼,來(lái)增加系統(tǒng)解碼效率及減少程序錯(cuò)誤的機(jī)率。為達(dá)成上述目的,本發(fā)明幀標(biāo)題的自動(dòng)檢測(cè)方法適用于一接收端裝置,該接收端 裝置接收一幀串流,每一幀均包含一幀標(biāo)題及一幀壓縮數(shù)據(jù)塊,該自動(dòng)檢測(cè)方法包含以下 步驟接收一輸入幀;當(dāng)多個(gè)標(biāo)題標(biāo)記的其中之一等于一第一默認(rèn)值時(shí),對(duì)該輸入幀進(jìn)行 相對(duì)應(yīng)的語(yǔ)法分析及音訊解碼;以及,當(dāng)該輸入幀的前多個(gè)位等于多個(gè)同步碼的至少其中 之一時(shí),將一相對(duì)應(yīng)的標(biāo)題標(biāo)記設(shè)為該第一默認(rèn)值并對(duì)該輸入幀進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及 音訊解碼。
以下將配合附圖對(duì)本發(fā)明的較佳實(shí)施例進(jìn)行詳細(xì)說(shuō)明,以便更清楚了解本發(fā)明的 目的、特點(diǎn)和優(yōu)點(diǎn),其中圖1是顯示傳輸流、音訊PES及幀之間的關(guān)系圖。圖2A及圖2B是根據(jù)本發(fā)明一具體實(shí)施例的幀標(biāo)題自動(dòng)檢測(cè)方法的流程圖。
具體實(shí)施例方式本發(fā)明揭露幀標(biāo)題的自動(dòng)檢測(cè)方法,AAC解碼器是依據(jù)實(shí)際檢測(cè)到的幀內(nèi)容來(lái)作 解碼,不再依賴(lài)信息流語(yǔ)法解析器或上層應(yīng)用程序來(lái)作設(shè)定,AAC解碼器可獨(dú)立運(yùn)作且避免 受外部的程序與環(huán)境的影響,進(jìn)而減少程序出錯(cuò)的機(jī)率,同時(shí),本發(fā)明的幀標(biāo)題自動(dòng)檢測(cè)程 序具有高度的可移植性(portability)。圖2A及圖2B顯示根據(jù)本發(fā)明具體實(shí)施例的AAC幀標(biāo)題自動(dòng)檢測(cè)方法的流程圖, 于此實(shí)施例中,接收端裝置可同時(shí)支持AAC (MPEG-2)以及HE-AAC (MPEG-4) 二種標(biāo)準(zhǔn)進(jìn)行說(shuō) 明,但是本發(fā)明的應(yīng)用并不以此為限,現(xiàn)存或?qū)?lái)發(fā)展出來(lái)的其它音訊壓縮標(biāo)準(zhǔn)亦可適用 于本發(fā)明的概念。以下根據(jù)圖2A及圖2B詳細(xì)介紹本實(shí)施例的所有步驟。假設(shè)接收端裝置系統(tǒng)初始化之后,LATM標(biāo)記及ADTS標(biāo)記的初始值等于0 (FALSE)。 同時(shí),在整個(gè)音訊解碼周期中,自動(dòng)檢測(cè)機(jī)制持續(xù)維持在致能(enable)狀態(tài)。步驟S202 接收一輸入幀。步驟S204 檢查L(zhǎng)ATM標(biāo)記的值是否為1 (TRUE)。若是,跳到步驟S216 ;否則,跳到 步驟S206。于此實(shí)施例中,優(yōu)先比較及優(yōu)先執(zhí)行最新的HE-AAC標(biāo)準(zhǔn),在實(shí)際應(yīng)用時(shí)本技術(shù) 領(lǐng)域者可根據(jù)需求來(lái)調(diào)整比較及執(zhí)行的優(yōu)先順序。步驟S206 檢查ADTS標(biāo)記的值是否為1。若是,跳到步驟S220 ;否則,跳到步驟 S208。步驟S208 檢查該輸入幀的前11個(gè)位是否等于0x2B7。若是,跳到步驟S210 ;否 貝U,跳到步驟S212。本步驟及步驟S212的目的是從輸入幀的最前端開(kāi)始搜尋同步碼(sync word),于此實(shí)施例中,由于是優(yōu)先比較及優(yōu)先執(zhí)行HE-AAC標(biāo)準(zhǔn),故從具有最高優(yōu)先權(quán)的 HE-AAC同步碼0x2B7進(jìn)行比較。步驟S210 將LATM標(biāo)記設(shè)為1,較佳地,LATM標(biāo)記及ADTS標(biāo)記中只有其中之一會(huì) 被設(shè)為1。步驟S212 檢查輸入幀的前12個(gè)位是否等于OxFFF。若是,跳到步驟S214 ;否則, 跳到步驟S228。于此實(shí)施例中,當(dāng)具有最高優(yōu)先權(quán)的HE-AAC同步碼0x2B7比較失敗之后,才接著比較具有次高優(yōu)先權(quán)的AAC同步碼OxFFF。
步驟S214 將ADTS標(biāo)記設(shè)為1。步驟S216 對(duì)該輸入幀的幀標(biāo)題進(jìn)行LATM標(biāo)題的語(yǔ)法分析。在比較同步碼時(shí),有 可能比較到的0x2B7或OxFFF只是幀壓縮數(shù)據(jù)塊中的其中一筆數(shù)據(jù),而非真正的幀標(biāo)題同 步碼,因此必須進(jìn)一步確認(rèn)比較到的0x2B7或OxFFF之后的數(shù)據(jù)是否真正符合ADTS或LATM 標(biāo)題的邏輯與規(guī)范。步驟S218 判斷該幀標(biāo)題是否符合LATM標(biāo)題的邏輯與規(guī)范。若是,跳到步驟S224 ; 否則,跳到步驟S228。步驟S220 對(duì)該輸入幀的幀標(biāo)題進(jìn)行ADTS標(biāo)題的語(yǔ)法分析。步驟S222 判斷該幀標(biāo)題是否符合ADTS標(biāo)題的邏輯與規(guī)范。若是,跳到步驟S224 ; 否則,跳到步驟S228。步驟S224 對(duì)該輸入幀的幀壓縮數(shù)據(jù)塊進(jìn)行音訊解碼,以確認(rèn)是否能依照步驟 S216或步驟S220解得的幀標(biāo)題信息來(lái)正確解碼。步驟S226 判斷音訊解碼是否成功。若是,跳到步驟S202 ;否則,跳到步驟S228。步驟S228 丟棄輸入幀的最前端的m個(gè)位組。其中,m為正整數(shù)。步驟S230 將LATM標(biāo)記及ADTS標(biāo)記重設(shè)為0。再回到步驟S202。在步驟S228中,較佳地,m值大小取決于該接收端裝置的處理時(shí)間。舉例而言, 在搜尋比較同步碼時(shí),由于接收端裝置的處理時(shí)間很短,只要目前輸入幀的最前端的11或 12個(gè)位與二個(gè)同步碼都不符時(shí),隨即丟棄輸入幀的最前端的一個(gè)位組(m= 1),下一次再?gòu)?下一個(gè)位組開(kāi)始比較,通過(guò)地毯式的搜尋,頂多比較一個(gè)至二個(gè)幀的數(shù)據(jù),就能搜尋到同步 碼。熟知此項(xiàng)技術(shù)的人士可以了解,實(shí)際應(yīng)用時(shí)有其它不同的作法也可達(dá)到相同的功效,舉 例而言,設(shè)置一個(gè)比較指針(pointer)來(lái)當(dāng)作索引,當(dāng)比較同步碼失敗時(shí),將比較指針值加 1。極端的情況會(huì)耗費(fèi)掉接收端裝置最多的處理時(shí)間,舉例而言,比較同步碼成功且?guī)瑯?biāo)題 亦符合LATM標(biāo)題或ADTS標(biāo)題的邏輯與規(guī)范、但對(duì)該幀壓縮數(shù)據(jù)塊進(jìn)行音訊解碼的結(jié)果卻 失敗時(shí),通常在接收端裝置發(fā)現(xiàn)上述情況產(chǎn)生時(shí),其實(shí)已經(jīng)耗費(fèi)掉一大段時(shí)間,而在同一段 時(shí)間內(nèi),TS也源源不絕的饋入接收端裝置,由于接收端裝置通常不會(huì)儲(chǔ)存TS,因此當(dāng)接收 端裝置發(fā)現(xiàn)音訊解碼的結(jié)果失敗時(shí),原先產(chǎn)生音訊解碼錯(cuò)誤的TS有可能早就被后續(xù)的TS 覆寫(xiě)了(overwrite),此時(shí),接收端裝置只能從新的TS再重新比較搜尋同步碼了。于此實(shí)施例中,揭露比較LATM標(biāo)題及ADTS標(biāo)題的二種同步碼,但是本發(fā)明的應(yīng)用 并不以此為限。在另一實(shí)施例中,可同時(shí)比較P個(gè)標(biāo)題的同步碼(P >2)及設(shè)定P個(gè)標(biāo)題標(biāo) 記,同時(shí)也必須設(shè)定一優(yōu)先順序,以決定優(yōu)先比較及優(yōu)先執(zhí)行的順序,較佳地,P個(gè)標(biāo)題標(biāo)記 中只有其中之一會(huì)被設(shè)為1。換言之,當(dāng)目前輸入幀的最前端的11或12個(gè)位與二個(gè)(含) 以上的同步碼相符時(shí),根據(jù)前述優(yōu)先順序,設(shè)定具有最高優(yōu)先權(quán)的的標(biāo)題標(biāo)記,并對(duì)該幀標(biāo) 題進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及對(duì)該幀壓縮數(shù)據(jù)塊進(jìn)行相對(duì)應(yīng)的音訊解碼。于此實(shí)施例中,一旦輸入幀的標(biāo)題同步碼被比較出來(lái),且后續(xù)的語(yǔ)法分析及音訊 解碼都成功的話,其相對(duì)應(yīng)的標(biāo)題標(biāo)記就會(huì)持續(xù)地被設(shè)定為1。據(jù)此,后續(xù)的幀就能省去標(biāo) 題同步碼比較時(shí)間,提升整體系統(tǒng)的解碼效率。即使發(fā)生語(yǔ)法分析錯(cuò)誤或解碼錯(cuò)誤,通過(guò)本 發(fā)明實(shí)施例所揭露的自我修復(fù)(recovery)的機(jī)制,可以在短時(shí)間內(nèi)搜尋到標(biāo)題同步碼,快 速地恢復(fù)正常運(yùn)作,而不會(huì)像先前技術(shù)一樣,從此發(fā)不出聲音直到切換頻道為止。
綜上所述,本發(fā)明揭露一種幀標(biāo)題的自動(dòng)檢測(cè)方法,適用于一接收端裝置根據(jù)多 個(gè)標(biāo)題標(biāo)記而運(yùn)作,自動(dòng)檢測(cè)方法包含以下步驟接收端裝置接收輸入幀,其包含一幀標(biāo)題 及一幀壓縮數(shù)據(jù)塊;當(dāng)這些標(biāo)題標(biāo)記的其中的一等于第一默認(rèn)值時(shí),對(duì)輸入幀進(jìn)行相對(duì)應(yīng) 的語(yǔ)法分析及音訊解碼;以及當(dāng)輸入幀之前多個(gè)位等于多個(gè)同步碼的至少其中之一時(shí),將 一相對(duì)應(yīng)的標(biāo)題標(biāo)記設(shè)為第一默認(rèn)值并對(duì)輸入幀進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及音訊解碼。以上雖以實(shí)施例說(shuō)明本發(fā)明,但并不因此限定本發(fā)明的范圍,只要不脫離本發(fā)明 的要旨,該行業(yè)者可進(jìn)行各種變形或變更。
權(quán)利要求
一種幀標(biāo)題的自動(dòng)檢測(cè)方法,適用于一接收端裝置根據(jù)多個(gè)標(biāo)題標(biāo)記而運(yùn)作,該自動(dòng)檢測(cè)方法包含以下步驟(a)該接收端裝置接收一輸入幀,其包含一幀標(biāo)題及一幀壓縮數(shù)據(jù)塊;(b)當(dāng)這些標(biāo)題標(biāo)記的其中之一等于一第一默認(rèn)值時(shí),對(duì)該輸入幀進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及音訊解碼;以及(c)當(dāng)該輸入幀的前多個(gè)位等于多個(gè)同步碼的至少其中之一時(shí),將一相對(duì)應(yīng)的標(biāo)題標(biāo)記設(shè)為該第一默認(rèn)值并對(duì)該輸入幀進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及音訊解碼。
2.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,還包含步驟(dl)當(dāng)該語(yǔ)法分析 失敗時(shí),丟棄該輸入幀的前m個(gè)位組數(shù)據(jù)并將這些標(biāo)題標(biāo)記設(shè)為一第二默認(rèn)值,其中m為正 整數(shù)。
3.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,還包含步驟(d2)當(dāng)該音訊解碼 失敗時(shí),丟棄該輸入幀的前m個(gè)位組數(shù)據(jù)并將這些標(biāo)題標(biāo)記設(shè)為一第二默認(rèn)值,其中,m為 正整數(shù)。
4.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,還包含步驟(d3)當(dāng)該輸入幀的 前多個(gè)位不等于這些同步碼時(shí),丟棄該輸入幀的前m個(gè)位組數(shù)據(jù)并將這些標(biāo)題標(biāo)記設(shè)為一 第二默認(rèn)值,其中,m為正整數(shù)。
5.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,還包含步驟(e)重復(fù)執(zhí)行前述 所有步驟。
6.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,該步驟(c)是根據(jù)一優(yōu)先順序, 將該相對(duì)應(yīng)的標(biāo)題標(biāo)記設(shè)為該第一默認(rèn)值并對(duì)該輸入幀進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及音訊解碼。
7.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,該步驟(b)是根據(jù)具有該第一默 認(rèn)值的該標(biāo)題標(biāo)記,對(duì)該幀標(biāo)題進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及對(duì)該幀壓縮數(shù)據(jù)塊進(jìn)行相對(duì)應(yīng)的 音訊解碼。
8.根據(jù)權(quán)利要求6所述的自動(dòng)檢測(cè)方法,其特征在于,該步驟(c)包含當(dāng)該輸入幀的前多個(gè)位等于這些同步碼的至少其中之一時(shí),根據(jù)該優(yōu)先順序,決定一 個(gè)具有最高優(yōu)先權(quán)的同步碼;根據(jù)該具有最高優(yōu)先權(quán)的同步碼,將相對(duì)應(yīng)的標(biāo)題標(biāo)記設(shè)為該第一默認(rèn)值;以及根據(jù)該具有最高優(yōu)先權(quán)的同步碼,對(duì)該幀標(biāo)題進(jìn)行相對(duì)應(yīng)的語(yǔ)法分析及對(duì)該幀壓縮數(shù) 據(jù)塊進(jìn)行相對(duì)應(yīng)的音訊解碼。
9.根據(jù)權(quán)利要求8所述的自動(dòng)檢測(cè)方法,其特征在于,這些標(biāo)題標(biāo)記至少包含一第一 標(biāo)題標(biāo)記及一第二標(biāo)題標(biāo)記,這些同步碼至少包含一第一同步碼及一第二同步碼,其中,該 第一同步碼的優(yōu)先權(quán)高于該第二同步碼。
10.根據(jù)權(quán)利要求9所述的自動(dòng)檢測(cè)方法,其特征在于,該第一同步碼等于0x287,且該 第二同步碼等于OxFFF。
11.根據(jù)權(quán)利要求4所述的自動(dòng)檢測(cè)方法,其特征在于,該步驟(d3)是當(dāng)該輸入幀的前 多個(gè)位不等于這些同步碼時(shí),m等于1。
12.根據(jù)權(quán)利要求2所述的自動(dòng)檢測(cè)方法,其特征在于,m大小取決于該接收端裝置的 處理時(shí)間。
13.根據(jù)權(quán)利要求3所述的自動(dòng)檢測(cè)方法,其特征在于,m大小取決于該接收端裝置的 處理時(shí)間。
14.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,在系統(tǒng)初始化時(shí),各標(biāo)題標(biāo)記 被設(shè)為該第二默認(rèn)值。
15.根據(jù)權(quán)利要求1所述的自動(dòng)檢測(cè)方法,其特征在于,該幀標(biāo)題是一AAC幀標(biāo)題。
全文摘要
本發(fā)明是一種幀標(biāo)題的自動(dòng)檢測(cè)方法,通過(guò)搜尋比較輸入幀的實(shí)際內(nèi)容及預(yù)設(shè)的同步碼,來(lái)增加系統(tǒng)解碼效率及減少程序錯(cuò)誤的機(jī)率,一旦發(fā)生解碼錯(cuò)誤時(shí)即利用本身自我修復(fù)的機(jī)制來(lái)快速恢復(fù)正常運(yùn)作。
文檔編號(hào)G10L19/00GK101964187SQ200910160178
公開(kāi)日2011年2月2日 申請(qǐng)日期2009年7月24日 優(yōu)先權(quán)日2009年7月24日
發(fā)明者連矩鋒 申請(qǐng)人:晨星軟件研發(fā)(深圳)有限公司;晨星半導(dǎo)體股份有限公司