智能型mp3檢錯法及相關裝置的製作方法
2023-06-11 18:45:26
專利名稱:智能型mp3檢錯法及相關裝置的製作方法
技術領域:
本發明是提供一種播放MP3(Moving Picture Experts Group Layer IIIAudio)文件時的智能型MP3檢錯法及相關裝置,尤指一種能在播放MP3時,如果MP3數據流中存在有可察覺的錯誤檢查欄位時提供予錯誤檢查保護,如果MP3數據流中不存在有可察覺的錯誤檢查欄位時則播放MP3數據流。
背景技術:
MPEG-1 audio layer III(MP3)是一種高品質且高效率的ISO/IEC(International Organization for Standardization and InternationalElectrotechnical Commission)音頻編碼標準。
請參閱圖1,一MP3文件包含一連串的數據幀,每一數據幀都包括一表頭欄位1、一錯誤檢查欄位2、一音頻數據欄位3、及一外部數據欄位4。其中表頭欄位1可進一步切割成提供文件型式、取樣速率及其它數據幀詳細消息的位群組。表頭欄位1的長度為32位,表頭欄位1中的第十六位稱為一保護位,其可顯示對應於表頭欄位1的數據幀是否有錯誤保護。如果表頭欄位1的第6位的值為0,則代表該數據幀有錯誤保護、而且表頭欄位1後會跟著一16位長的錯誤檢查欄位2。錯誤檢查欄位2中的錯誤檢查是使用一CRC(Cyclic Redundancy Checking)保護機制。當在MP3文件中使用該CRC錯誤檢查機制時,其移位緩衝器(shift register)初始狀態為『1111 11111111 1111』,且CRC的生成多項式(generator polynomial)為g(x)=x16+x15+x2+1;如果第16位其值為1,則該數據幀沒有錯誤保護、而且在表頭欄位1後也沒有錯誤檢查欄位2。編碼過的音頻樣本是存儲於音頻數據欄位3,外部數據欄位4包含編碼過的音頻樣本中的其它數據,例如像是名稱等等。
使用錯誤檢查欄位2對於MP3文件的編碼與解碼而言並不是必要的,就像其它錯誤抑制例行程序一樣,錯誤檢查可以在播放文件之前改正或排除錯誤的數據幀以改善效能。錯誤檢查欄位2可以用來決定音頻數據欄位3中的數據是否已被正確的寫入或讀取,且能有效地提供精確的MP3再生播放聲音,但是大多數僅適用於兼容的情形。不同的編碼器即使在相同的輸入下仍可能會產生不同的錯誤檢查欄位2,有些編碼器可能因不正確的生成多項式、不正確的初始狀態或僅因計算錯誤而產生不正確的錯誤檢查值,因此由任一編碼器所編碼的錯誤檢查欄位2不一定適用於其它解碼器,更甚者,有些編碼器會略過使用錯誤檢查、並標示該表頭欄位1的保護位為1,這表示在該數據幀中沒有錯誤檢查欄位2。
不同的MP3解碼器是採用不同的處理方式來解決這樣的問題,其中最常被使用的方法即為不播放帶有錯誤檢查欄位2的MP3數據幀,該方法可排除因個別錯誤數據幀所帶來的噪聲,然而,該方法也會無法播放由不兼容編碼器所產生的文件,甚至文件內其它數據都完整而正確、卻僅因缺少該檢查區而無法播放,所以本方法會限制只有能完全兼容於正確CEC編碼機制的MP3文件才能正常播放。
另一個常用的解決不兼容問題方法即是不管該錯誤檢查保護有效與否,均完全忽略該保護,允許播放所有MP3文件而不管編碼器,但該方法就不能排除兼容數據流中的錯誤數據幀的噪聲。
發明內容
因此本發明的主要目的在於提供一種能播放由不同編碼器產生的MP3文件的方法與相關裝置,以及提供一種當MP3文件有可查覺的錯誤檢查欄位時的錯誤檢查保護。該可查覺的錯誤檢查欄位是指該相關裝置利用數據幀中的錯誤檢查欄位可以成功判讀數據幀中的數據。
本發明的具有控制裝置的媒體文件再生方法,其中該媒體文件包含多個數據幀,每個數據幀都有一錯誤檢查欄位,以及一用以存儲已編碼音效樣本的音效數據欄位,該控制裝置包括一參數,該方法包含有如果該數據幀的錯誤檢查欄位欄位存在,則利用該錯誤檢查欄位欄位判斷該數據幀的完整性、如果該數據幀的完整性是完整的,則對音頻數據欄位內的音頻樣本解碼、如果該數據幀的完整性無法被證實是否是完整的,且該參數顯示該錯誤檢查欄位不再需要被用來判斷該數據幀的完整性時,則對音頻數據欄位的音頻樣本解碼、以及如果該數據幀的完整性無法被證實是否是完整的,且該參數顯示該錯誤檢查欄位是被用來判斷該數據幀的完整性時,則不需要存儲在音效數據欄位的音頻樣本解碼,但需將音效數據欄位存儲以供爾後參考之用。
本發明還提供一種用來將一媒體文件解碼及輸出的裝置,該媒體文件包含多個數據幀,該裝置包含有一控制裝置,如果該控制裝置無法通過該數據幀內的錯誤檢查欄位來判讀該數據幀內的音效數據的完整性時,該控制裝置能夠解碼並輸出該數據幀內的音效數據;如果在解碼並輸出音效數據的同時,該控制裝置也可通過該數據幀內的錯誤檢查欄位來判讀該數據幀內的音效數據的完整性,該控制裝置就可利用錯誤檢查欄作為錯誤檢查之用。
圖1是現有的MP3數據幀。
圖2是本發明的CRC檢測流程圖。
圖示的符號說明1表頭欄位 2錯誤檢查欄位3音頻數據欄位 4外部數據欄位具體實施方式
請參考圖2,圖2是本發明的具體流程圖,當欲對所有MP3文件的數據幀進行解碼時,不論錯誤檢查保護被使用與否,都有A、B、C和W四個初始參數,其中該等參數可以是變數、緩衝器或其它格式。
在MP3播放器製造過程中參數A、B和C一般都被預先定義為常數,而在解碼與播放過程中也仍維持常數的狀態。第一預設常數A表示一破壞因子,其是用於數據幀內的完整性無法被判讀時;第二預設常數B表示一建設因子,其是用於如果數據幀內的完整性可被成功判讀時;第三預設臨界值C表示在解碼並播放之時,能容忍錯誤檢查誤差的最大臨界值。在本發明的實施例中,參數A、B和C都被設為大於或等於0,但是如果在本發明的範圍內使用負數、並相對應地變動相對應的計算過程也應屬本發明的範疇。
參數W不是常數,而是表示檢錯法的狀態。如果數據幀內的完整性無法被判讀時,第一預設常數A的破壞值便會累加至參數W;如果數據幀內的完整性可被成功判讀時,第二預設常數B的建設值便會累減至參數W,如果參數W的值大於或等於第三預設臨界值C時,則其餘的MP3文件在沒有錯誤檢查保護下會被解碼並播放。參數W在MP3文件開始被解碼前的初始值為0。
本方法的第一步驟是在參數初始化後解析一數據幀中的表頭欄位1以據以判定錯誤檢查欄位2存在與否。在檢查該數據幀內的完整性是否可被成功判讀後,音頻數據欄位3將接著被解碼。如果參數W大於或等於第三預設臨界值C,則音頻數據欄位3會在沒有數據檢查保護下被解碼並播放,這將使得該MP3文件在不內含錯誤檢查欄位、或內含無法辨識的錯誤檢查欄位的情況下,仍可被適當地解碼並播放。
如果參數W不等於C(也就是說,參數W小於第三預設臨界值C),錯誤檢查會被執行。如果錯誤檢查的結果證實該數據幀的數據確實完整,則參數W會減去第二預設常數B內的建設因子,如果相減的結果小於0,則參數W會被重置為0。通過此步驟可使MP3文件若有一個以上的錯誤數據幀時,也能被持續地檢驗。因為一有效的加總核對碼已出現,因此通過減少參數W的值就能確保任何時候都能夠使用錯誤檢查,通過控制第二預設常數B與第三預設臨界值C的相關數值即為本方法的特點。在更新參數W的值後,該等數據幀可進一步被解碼並輸出播放。
然而,如果錯誤檢查的結果不正確,則第一預設常數A中的破壞因子會累加至參數W,如果累加後的參數W大於第三預設臨界值C,則參數W會被重置為與第三預設臨界值C相等的值,也能被持續地檢驗。一無效的加總核對碼的出現不必然表示錯誤檢查保護不適用於MP3文件的其它數據幀。如上述的方法,通過增加參數W,本發明的破壞因子可確保無論如何均可持續執行錯誤檢查,直到參數W的值達到第三預設臨界值C為止。由控制第一預設常數A與第三預設臨界值C的相關數值即為本方法的特點。
當參數W被重置更新後(表示有錯誤被檢查出來),如果參數W大於或等於第三預設臨界值C,即達對錯誤最大的容限臨界值,將不再進一步執行錯誤檢查,因此該數據幀內的數據會在無錯誤檢查保護之下進行解碼並輸出,如果參數W小於第三預設臨界值C,即不會達到對錯誤最大的容限臨界值,此時由於無法判定該錯誤數據幀是否被發現或整個文件是否包含錯誤檢查欄位,在這種情形下,音頻數據欄位3會被存儲到一緩衝區以供之後可能的參考,但不會被解碼及輸出。這個方法的特徵是為了預防在持續對該MP3文件提供錯誤檢查保護的同時,錯誤或遺漏的數據所產生的未預期噪聲。
相較於現有技術,本發明可播放由不同編碼器生成的MP3文件,同時進一步提供包含可察覺錯誤檢查欄位的MP3文件的錯誤檢查保護,此外預設的常數A、B和臨界值C可視所需的靈敏度而調整,舉例來說,當C>0,A=0且B>0時,本方法將可執行錯誤檢查,但當C=0時,本方法就無法執行錯誤檢查,這種可調整常數A、B和臨界值C的值就可提升MP3文件的解碼能力而不需再重新設計解碼器,且因可彈性選擇常數A、B和臨界值C,使得本發明可播放不同編碼器生成的MP3文件並在任何時候提供錯誤檢查保護。
除了MP3文件外,本發明也可應用在其它包含錯誤檢查欄位的媒體格式之中,如Dolby格式。
以上所述僅為本發明的優選實施例,凡依本發明權利要求所做的類似變化與修飾,都應屬本發明專利的涵蓋範圍。
權利要求
1.一種具有控制裝置的媒體文件再生方法,該媒體文件包含多個數據幀,每個數據幀都有一錯誤檢查欄位欄位,以及一用以存儲已編碼音效樣本的音效數據欄位,該控制裝置包括一參數,該方法包含有如果該數據幀的錯誤檢查欄位欄位存在,則利用該錯誤檢查欄位欄位判斷該數據幀的完整性;如果該數據幀的完整性是完整的,則對音頻數據欄位內的音頻樣本解碼;如果該數據幀的完整性無法被證實是否是完整的,且該參數顯示該錯誤檢查欄位不再需要被用來判斷該數據幀的完整性時,則對音頻數據欄位的音頻樣本解碼;以及如果該數據幀的完整性無法被證實是否是完整的,且該參數顯示該錯誤檢查欄位是被用來判斷該數據幀的完整性時,則不需要存儲在音效數據欄位的音頻樣本解碼,但需將音效數據欄位存儲以供爾後參考之用。
2.如權利要求1所示的方法,其中一第一預設常數是作為計算中的破壞因子,該破壞因子是用來決定是否繼續利用錯誤檢查欄位去判斷數據幀的數據的完整性。
3.如權利要求2所示的方法,其中一第二預設常數是作為計算中的建設因子,該建設因子是用來決定是否繼續利用錯誤檢查欄位去判斷數據幀的數據的完整性。
4.如權利要求3所示的方法,其中該參數是一累計器,用來累計在處理媒體文件時使用到的破壞因子與建設因子,以致於當累計器的值小於一預設值時,該方法會一直利用錯誤檢查欄位來判斷數據幀的完整性的完整性,而當累計器的值大於或等於該預設值時,該方法就不再利用錯誤檢查欄位欄位來判斷數據幀的完整性的完整性。
5.如權利要求4所示的方法,其中該累計器是一變數、一緩衝器、或一計數器。
6.如權利要求1所示的方法,其中該數據幀內的數據能被控制裝置用來判斷是否正確的區域不包含錯誤檢查欄位。
7.如權利要求1所示的方法,其中該媒體文件是MP3文件。
8.如權利要求1所示的方法,其中該控制裝置是由一電路或一算法所構成。
9.一種用來將一媒體文件解碼及輸出的裝置,該媒體文件包含多個數據幀,該裝置包含有一控制裝置,如果該控制裝置無法通過該數據幀內的錯誤檢查欄位來判讀該數據幀內的音效數據的完整性時,該控制裝置能夠解碼並輸出該數據幀內的音效數據;如果在解碼並輸出音效數據的同時,該控制裝置也可通過該數據幀內的錯誤檢查欄位來判讀該數據幀內的音效數據的完整性,該控制裝置就可利用錯誤檢查欄作為錯誤檢查之用。
10.如權利要求9所示的裝置,其另包含一解析器,用以解析一MP3文件內的數據幀,一解碼器,用以解碼該數據幀內的數據,以及緩衝器(buffer),用以存儲數據幀內的音效數據。
11.如權利要求9所示的裝置,其中該控制裝置是由一電路或一算法所構成。
全文摘要
本發明是提供一種智能型MP3檢錯法及相關裝置,其內的MP3文件可含有相容的加總核對碼(checksum)。本發明揭露一初始值為0的參數W,該參數W並非一常數且概念上其表示為檢查錯誤時的狀態,如果數據幀內的完整性無法被判讀時,一第一預設的破壞常數值便會與該參數W相加,如果數據幀內的完整性可被成功判讀時,一第二預設的建設常數值便會與該參數W相減,如果該參數W的值等於或大於一預設臨界值時,則其餘的MP3文件在沒有錯誤檢查保護下被解碼並播放。
文檔編號H03M13/00GK1467635SQ0310355
公開日2004年1月14日 申請日期2003年1月29日 優先權日2002年6月21日
發明者林宗瑤 申請人:聯發科技股份有限公司