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