專(zhuān)利名稱(chēng):一種基于faac及faad2的單聲道固定比特率的音頻實(shí)時(shí)編解碼糾錯(cuò)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編解碼糾錯(cuò) 方法,其糾錯(cuò)方法對(duì)AAC數(shù)據(jù)幀具有糾錯(cuò)能力,屬于通信領(lǐng)域。
背景技術(shù):
先進(jìn)音頻編碼(Advanced Audio Coding,簡(jiǎn)稱(chēng)AAC)是在MP3基礎(chǔ)上發(fā)展起來(lái)的新 一代感知音頻壓縮編解碼技術(shù),該技術(shù)綜合了多種主流音頻編解碼技術(shù)的優(yōu)點(diǎn),具有信號(hào) 壓縮比高,重建音質(zhì)好,編解碼過(guò)程高度模塊化和聲道配置靈活等特點(diǎn)。在實(shí)時(shí)編解碼系統(tǒng)中,AAC數(shù)據(jù)幀在傳輸過(guò)程中,不可以避免地出現(xiàn)誤碼,采用循 環(huán)冗余校驗(yàn)碼進(jìn)行檢錯(cuò),如果發(fā)生誤碼,AAC編碼器必須重傳誤碼數(shù)據(jù)幀才能保證解碼輸出 音頻的不間斷性,但采用此方法會(huì)導(dǎo)致傳輸控制機(jī)制復(fù)雜、系統(tǒng)資源增加、魯棒性差。實(shí)際 上,在保證硬件平臺(tái)可靠性的前提下,數(shù)據(jù)在傳輸鏈路中誤碼率很低,因此可采取在AAC碼 流中添加糾錯(cuò)校驗(yàn)信息,保證數(shù)據(jù)誤碼后能夠進(jìn)行糾錯(cuò),得到正確的數(shù)據(jù)幀,使得解碼輸出 音頻不中斷,且傳輸控制機(jī)制不受影響、不增加系統(tǒng)資源、魯棒性高。
發(fā)明內(nèi)容
為了保證AAC數(shù)據(jù)幀的正確性,本發(fā)明提供了一種基于FAAC及FAAD2的單聲道固 定比特率的音頻實(shí)時(shí)編解碼糾錯(cuò)方法。該糾錯(cuò)方法主要包括編碼器對(duì)固定及可變幀頭分 別進(jìn)行海明編碼,將ID_SCE、SCETAG、全局比例因子及ID_END歸為一組進(jìn)行海明編碼,邊信 息海明編碼,數(shù)據(jù)區(qū)根據(jù)填充數(shù)據(jù)區(qū)的大小進(jìn)行分組,對(duì)每組數(shù)據(jù)進(jìn)行海明編碼;從各海明 碼中分離出校驗(yàn)位數(shù)據(jù),依次存入填充數(shù)據(jù)區(qū);解碼器從填充數(shù)據(jù)區(qū)獲取校驗(yàn)位數(shù)據(jù),對(duì)相 應(yīng)的數(shù)據(jù)位進(jìn)行海明碼查錯(cuò)與糾錯(cuò)。本發(fā)明在保證AAC幀結(jié)構(gòu)完整性的前提下,對(duì)AAC數(shù) 據(jù)幀具有糾錯(cuò)能力。具體步驟如下步驟一編碼器對(duì)固定及可變幀頭分別進(jìn)行海明編碼;步驟二編碼器將ID_SCE、SCETAG、全局比例因子及ID_END歸為一組進(jìn)行海明編 碼;步驟三編碼器對(duì)邊信息進(jìn)行海明編碼;步驟四編碼器將數(shù)據(jù)區(qū)根據(jù)填充數(shù)據(jù)區(qū)的大小進(jìn)行分組,對(duì)每組數(shù)據(jù)進(jìn)行海明編 碼;步驟五編碼器從各海明碼中分離出校驗(yàn)位數(shù)據(jù),依次存入填充數(shù)據(jù)區(qū);步驟六解碼器從填充數(shù)據(jù)區(qū)獲取校驗(yàn)位數(shù)據(jù),對(duì)相應(yīng)的數(shù)據(jù)位進(jìn)行海明碼查錯(cuò)與 糾錯(cuò)。其中,所述的步驟一中AAC編碼器完成對(duì)一幀脈沖編碼調(diào)制(Pulse Code Modulation,簡(jiǎn)稱(chēng)PCM)數(shù)據(jù)編碼后,再對(duì)固定及可變幀頭分別進(jìn)行海明編碼,在本發(fā)明中 AAC數(shù)據(jù)幀格式為音頻數(shù)據(jù)傳輸流格式。
3
其中,所述的步驟四中本發(fā)明的固定比特率為128kbps,AAC編碼器對(duì)不同類(lèi)型 音頻信號(hào)進(jìn)行編碼所需的比特?cái)?shù)不固定,填充數(shù)據(jù)區(qū)的大小也不固定,因此需要根據(jù)填充 數(shù)據(jù)區(qū)的大小對(duì)編碼后的數(shù)據(jù)區(qū)進(jìn)行合理分組,之后應(yīng)用海明編碼,將校驗(yàn)位數(shù)據(jù)存入填 充數(shù)據(jù)區(qū),保證AAC幀結(jié)構(gòu)的完整性,在沒(méi)有相應(yīng)海明碼查錯(cuò)與糾錯(cuò)的AAC解碼器平臺(tái)上也 可以進(jìn)行正常解碼。其中,所述的步驟五中校驗(yàn)位數(shù)據(jù)依次存入填充數(shù)據(jù)區(qū)指一組數(shù)據(jù)完成海明編 碼后,分離出校驗(yàn)位數(shù)據(jù)存入填充數(shù)據(jù)區(qū),覆蓋相應(yīng)比特?cái)?shù)的填充數(shù)據(jù),接著處理一組數(shù) 據(jù)。其中,所述的步驟六中AAC解碼器接收到AAC數(shù)據(jù)幀后,首先進(jìn)行正常解碼,如解 碼出錯(cuò),則從出錯(cuò)數(shù)據(jù)幀的填充數(shù)據(jù)區(qū)取出校驗(yàn)位數(shù)據(jù)進(jìn)行海明碼查錯(cuò)與糾錯(cuò),然后對(duì)糾 錯(cuò)后的數(shù)據(jù)幀再進(jìn)行解碼,因此要求AAC解碼器的運(yùn)行速度至少是實(shí)時(shí)解碼的2倍。本發(fā)明的原理在AAC數(shù)據(jù)幀的填充數(shù)據(jù)區(qū)添加海明碼糾錯(cuò)校驗(yàn)信息,在保證AAC 幀結(jié)構(gòu)完整性的前提下,對(duì)AAC數(shù)據(jù)幀具有糾錯(cuò)能力。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于1、不破壞AAC的幀結(jié)構(gòu);2、傳輸控制機(jī)制不受影響、不增加系統(tǒng)資源、魯棒性高。
圖1是本發(fā)明提出的糾錯(cuò)方法整體示意圖;圖2是本發(fā)明的編碼流程圖;圖3是本發(fā)明的填充數(shù)據(jù)幀結(jié)構(gòu)1 ;圖4是本發(fā)明的填充數(shù)據(jù)幀結(jié)構(gòu)2 ;圖5是本發(fā)明的填充數(shù)據(jù)幀結(jié)構(gòu)3 ;圖6是本發(fā)明的解碼流程圖。
具體實(shí)施例方式下面結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步說(shuō)明。本發(fā)明提供了一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編解碼糾 錯(cuò)方法。參見(jiàn)附圖1,該糾錯(cuò)方法主要包括編碼器對(duì)固定(101)及可變(102)幀頭分別進(jìn) 行海明編碼(110),將 ID_SCE(103)、SCETAG(104)、全局比例因子(105)及 ID_END(109)歸 為一組進(jìn)行海明編碼,邊信息(106)海明編碼,數(shù)據(jù)區(qū)(107)根據(jù)填充數(shù)據(jù)區(qū)(108)的大小 進(jìn)行分組,對(duì)每組數(shù)據(jù)進(jìn)行海明編碼;從各海明碼中分離出校驗(yàn)位數(shù)據(jù),依次存入填充數(shù)據(jù) 區(qū)(108);解碼器從填充數(shù)據(jù)區(qū)獲取校驗(yàn)位數(shù)據(jù),對(duì)相應(yīng)的數(shù)據(jù)位進(jìn)行海明碼查錯(cuò)與糾錯(cuò) (111)。本發(fā)明在保證AAC幀結(jié)構(gòu)完整性的前提下,對(duì)AAC數(shù)據(jù)幀具有糾錯(cuò)能力。編碼程序的處理流程參見(jiàn)附圖2,AAC編碼器首先完成正常的編碼(201);接著判 斷填充數(shù)據(jù)是否大于等于15(202);如果小于15,則無(wú)法對(duì)此幀數(shù)據(jù)進(jìn)行海明編碼(203); 否則,繼續(xù)判斷填充數(shù)據(jù)是否大于等于25(204);如果小于25,則對(duì)此幀數(shù)據(jù)采用填充數(shù)據(jù) 幀結(jié)構(gòu)1進(jìn)行海明編碼(205);否則,繼續(xù)判斷填充數(shù)據(jù)是否大于等于39(206);如果小于 39,則對(duì)此幀數(shù)據(jù)采用填充數(shù)據(jù)幀結(jié)構(gòu)2進(jìn)行海明編碼(207);否則,對(duì)此幀數(shù)據(jù)采用填充數(shù)據(jù)幀結(jié)構(gòu)3進(jìn)行海明編碼(208)。填充數(shù)據(jù)大于等于15且小于25時(shí),采用填充數(shù)據(jù)幀結(jié)構(gòu)1進(jìn)行海明編碼,參見(jiàn)附 圖3,首先設(shè)置3bit校驗(yàn)標(biāo)志(301) = 100;接著,對(duì)28bit固定幀頭使用6bit校驗(yàn)位進(jìn)行 海明編碼,之后將6bit校驗(yàn)位存入校驗(yàn)信息1 (302);然后,對(duì)28bit可變幀頭使用6bit校 驗(yàn)位進(jìn)行海明編碼,最后將6bit校驗(yàn)位存入校驗(yàn)信息2(303)。填充數(shù)據(jù)大于等于25且小于39時(shí),采用填充數(shù)據(jù)幀結(jié)構(gòu)2進(jìn)行海明編碼,參見(jiàn)附 圖4,首先設(shè)置3bit校驗(yàn)標(biāo)志(401) = 110;接著,對(duì)28bit固定幀頭使用6bit校驗(yàn)位進(jìn)行 海明編碼,之后將6bit校驗(yàn)位存入校驗(yàn)信息1 (402);其次,對(duì)28bit可變幀頭使用6bit校 驗(yàn)位進(jìn)行海明編碼;之后將6bit校驗(yàn)位存入校驗(yàn)信息2(403);然后,將ID_SCE、SCETAG、全 局比例因子及ID_END歸為一組,使用5bit校驗(yàn)位進(jìn)行海明編碼;之后將5bit校驗(yàn)位存入 校驗(yàn)信息3 (404);最后,對(duì)邊信息使用5bit校驗(yàn)位進(jìn)行海明編碼,完成后將5bit校驗(yàn)位存 入校驗(yàn)信息4 (405)。填充數(shù)據(jù)大于等于39時(shí),采用填充數(shù)據(jù)幀結(jié)構(gòu)3進(jìn)行海明編碼,參見(jiàn)附圖4,首 先設(shè)置3bit校驗(yàn)標(biāo)志(501) = 111 ;設(shè)置6bit校驗(yàn)組數(shù),校驗(yàn)組數(shù)的計(jì)算方法下文介紹; 設(shè)置2bit分組信息,分組信息的計(jì)算方法下文介紹;接著,對(duì)28bit固定幀頭使用6bit校 驗(yàn)位進(jìn)行海明編碼,之后將6bit校驗(yàn)位存入校驗(yàn)信息1(504);其次,對(duì)28bit可變幀頭使 用6bit校驗(yàn)位進(jìn)行海明編碼;之后將6bit校驗(yàn)位存入校驗(yàn)信息2(505);然后,將ID_SCE、 SCETAG、全局比例因子及ID_END歸為一組,使用5bit校驗(yàn)位進(jìn)行海明編碼;之后將5bit校 驗(yàn)位存入校驗(yàn)信息3(506);下一步,對(duì)邊信息使用5bit校驗(yàn)位進(jìn)行海明編碼,之后將5bit 校驗(yàn)位存入校驗(yàn)信息4 (507);最后,數(shù)據(jù)區(qū)分組進(jìn)行海明編碼,完成后將校驗(yàn)位存入剩余 緩沖區(qū)(508)。分組信息與校驗(yàn)組數(shù)的計(jì)算方法如下a)可用于數(shù)據(jù)區(qū)海明編碼的比特?cái)?shù)=填 充數(shù)據(jù)個(gè)數(shù)_3bit校驗(yàn)信息_6bit校驗(yàn)組數(shù)_2bit分組信息_6bit校驗(yàn)信息l_6bit校驗(yàn) 信息2-5bit校驗(yàn)信息3-5bit校驗(yàn)信息4 ;b)2bit分組信息,表示數(shù)據(jù)區(qū)分組共4類(lèi),00代 表每組為57bit,需要6比特校驗(yàn)位,01代表每組為120bit,需要7比特校驗(yàn)位,10代表每 組為247bit,需要8比特校驗(yàn)位,11代表每組為502bit,需要9比特校驗(yàn)位,并且當(dāng)分組后 最后一組數(shù)據(jù)比特?cái)?shù)不足,則補(bǔ)零;c)根據(jù)可用于數(shù)據(jù)區(qū)海明編碼的比特?cái)?shù)對(duì)數(shù)據(jù)區(qū)進(jìn)行 分組,分組原則是首先分組最多;其次對(duì)數(shù)據(jù)校驗(yàn)最多。例如,可用于數(shù)據(jù)區(qū)海明編碼的比 特?cái)?shù)=16,則00、01及10類(lèi)型分組,分組數(shù)都為2,但是10類(lèi)型分組,可以對(duì)2*247bit進(jìn) 行校驗(yàn),所以2bit分組信息=10,數(shù)據(jù)區(qū)有2組數(shù)據(jù)需要進(jìn)行海明編碼,當(dāng)前數(shù)據(jù)幀共有6 組數(shù)據(jù)需要進(jìn)行海明編碼,所以6bi t校驗(yàn)組數(shù)=000110。AAC編碼器完成編碼后,將數(shù)據(jù)發(fā)送至傳輸鏈路,AAC解碼器中傳輸鏈路中獲取 AAC數(shù)據(jù)幀進(jìn)行解碼,處理流程參見(jiàn)附圖6。AAC解碼器獲取AAC數(shù)據(jù)幀后,首先進(jìn)行解碼 (601);接著判斷是否正確解碼(602);如果正確解碼則結(jié)束,否則利用填充數(shù)據(jù)區(qū)中的校 驗(yàn)信息進(jìn)行查錯(cuò)與糾錯(cuò)(603);再次進(jìn)行解碼(604)。說(shuō)明書(shū)附圖中出現(xiàn)的英文縮寫(xiě),其含義如下CRC 循環(huán)冗余校驗(yàn)碼;ID_SCE 單聲道身份標(biāo)識(shí)符;SCETAG 單聲道標(biāo)簽;
ID_END 結(jié)束標(biāo)識(shí)符。
權(quán)利要求
一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編解碼糾錯(cuò)方法,其特征在于該方法具體包括以下步驟(1)編碼器對(duì)固定及可變幀頭分別進(jìn)行海明編碼;(2)編碼器將ID_SCE、SCETAG、全局比例因子及ID_END歸為一組進(jìn)行海明編碼;(3)編碼器對(duì)邊信息進(jìn)行海明編碼;(4)編碼器將數(shù)據(jù)區(qū)根據(jù)填充數(shù)據(jù)區(qū)的大小進(jìn)行分組,對(duì)每組數(shù)據(jù)進(jìn)行海明編碼;(5)編碼器從各海明碼中分離出校驗(yàn)位數(shù)據(jù),依次存入填充數(shù)據(jù)區(qū);(6)解碼器從填充數(shù)據(jù)區(qū)獲取校驗(yàn)位數(shù)據(jù),對(duì)相應(yīng)的數(shù)據(jù)位進(jìn)行海明碼查錯(cuò)與糾錯(cuò)。
2.根據(jù)權(quán)利要求1所述的一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編 解碼糾錯(cuò)方法,其特征在于所述的步驟(1)中AAC編碼器完成對(duì)一幀PCM數(shù)據(jù)編碼后, 再對(duì)固定及可變幀頭分別進(jìn)行海明編碼,在本發(fā)明中AAC數(shù)據(jù)幀格式為音頻數(shù)據(jù)傳輸流格 式。
3.根據(jù)權(quán)利要求1所述的一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編 解碼糾錯(cuò)方法,其特征在于所述的步驟⑷中本發(fā)明的固定比特率為128kbps,AAC編碼 器對(duì)不同類(lèi)型音頻信號(hào)進(jìn)行編碼所需的比特?cái)?shù)不固定,填充數(shù)據(jù)區(qū)的大小也不固定,因此 需要根據(jù)填充數(shù)據(jù)區(qū)的大小對(duì)編碼后的數(shù)據(jù)區(qū)進(jìn)行合理分組,之后應(yīng)用海明編碼,將校驗(yàn) 位數(shù)據(jù)存入填充數(shù)據(jù)區(qū),保證AAC幀結(jié)構(gòu)的完整性,在沒(méi)有相應(yīng)海明碼查錯(cuò)與糾錯(cuò)的AAC解 碼器平臺(tái)上也可以進(jìn)行正常解碼。
4.根據(jù)權(quán)利要求1所述的一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編 解碼糾錯(cuò)方法,其特征在于所述的步驟(5)中校驗(yàn)位數(shù)據(jù)依次存入填充數(shù)據(jù)區(qū)指一組數(shù) 據(jù)完成海明編碼后,分離出校驗(yàn)位數(shù)據(jù)存入填充數(shù)據(jù)區(qū),覆蓋相應(yīng)比特?cái)?shù)的填充數(shù)據(jù),接著 處理一組數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編 解碼糾錯(cuò)方法,其特征在于所述的步驟(6)中AAC解碼器接收到AAC數(shù)據(jù)幀后,首先進(jìn)行 正常解碼,如解碼出錯(cuò),則從出錯(cuò)數(shù)據(jù)幀的填充數(shù)據(jù)區(qū)取出校驗(yàn)位數(shù)據(jù)進(jìn)行海明碼查錯(cuò)與 糾錯(cuò),然后對(duì)糾錯(cuò)后的數(shù)據(jù)幀再進(jìn)行解碼,因此要求AAC解碼器的運(yùn)行速度至少是實(shí)時(shí)解 碼的2倍。
全文摘要
本發(fā)明提供了一種基于FAAC及FAAD2的單聲道固定比特率的音頻實(shí)時(shí)編解碼糾錯(cuò)方法。該糾錯(cuò)方法主要包括編碼器對(duì)固定及可變幀頭分別進(jìn)行海明編碼,將ID_SCE、SCETAG、全局比例因子及ID_END歸為一組進(jìn)行海明編碼,邊信息海明編碼,數(shù)據(jù)區(qū)根據(jù)填充數(shù)據(jù)區(qū)的大小進(jìn)行分組,對(duì)每組數(shù)據(jù)進(jìn)行海明編碼;從各海明碼中分離出校驗(yàn)位數(shù)據(jù),依次存入填充數(shù)據(jù)區(qū);解碼器從填充數(shù)據(jù)區(qū)獲取校驗(yàn)位數(shù)據(jù),對(duì)相應(yīng)的數(shù)據(jù)位進(jìn)行海明碼查錯(cuò)與糾錯(cuò)。本發(fā)明在保證AAC幀結(jié)構(gòu)完整性的前提下,對(duì)AAC數(shù)據(jù)幀具有糾錯(cuò)能力。
文檔編號(hào)G10L19/00GK101968962SQ20101028774
公開(kāi)日2011年2月9日 申請(qǐng)日期2010年9月19日 優(yōu)先權(quán)日2010年9月19日
發(fā)明者毛峽, 邵偉國(guó) 申請(qǐng)人:北京航空航天大學(xué)