專(zhuān)利名稱(chēng):增強(qiáng)抗丟包的音頻編解碼方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音頻編碼解碼技術(shù)領(lǐng)域,尤其涉及一種增強(qiáng)抗丟包的音頻編解碼方法及系統(tǒng)。
背景技術(shù):
目前的主流音頻或語(yǔ)音編解碼器大都支持非固定速率的編碼方式。比如MP3、 AAC(Advanced Audio Coding,高級(jí)音頻編碼)等采用的即是這種非固定速率的編碼方式。和固定速率的編碼方式相比,非固定速率編碼方式的區(qū)別之一在于每幀的編碼輸出的字節(jié)數(shù)不是固定的,而且少于固定速率的編碼方式生成的字節(jié)數(shù)。目前,采用非固定速率編碼方式進(jìn)行音頻編碼時(shí),在音頻碼流傳輸過(guò)程中容易丟包,從而導(dǎo)致音頻效果不佳,影響用戶體驗(yàn)效果。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種增強(qiáng)抗丟包的音頻編解碼方法及系統(tǒng),以解決音頻碼流傳輸過(guò)程中丟包導(dǎo)致的音頻效果不佳的問(wèn)題。為了達(dá)到上述目的,本發(fā)明提出一種增強(qiáng)抗丟包的音頻編解碼方法,包括編碼端根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;所述編碼端根據(jù)所述可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);當(dāng)解碼端檢測(cè)到所述下一幀丟失時(shí),所述解碼端根據(jù)所述編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)所述下一幀進(jìn)行重建。優(yōu)選地,所述編碼端根據(jù)所述可用空間對(duì)下一幀進(jìn)行預(yù)測(cè)的步驟包括所述編碼端計(jì)算與下一幀相關(guān)的所述預(yù)測(cè)參數(shù);計(jì)算所述預(yù)測(cè)參數(shù)所需要的空間;將所述可用空間與所述預(yù)測(cè)參數(shù)所需要的空間進(jìn)行比較;當(dāng)所述可用空間夠用時(shí),將所述預(yù)測(cè)參數(shù)放入所述可用空間;否則,放棄操作。優(yōu)選地,所述當(dāng)解碼端檢測(cè)到所述下一幀丟失時(shí),所述解碼端根據(jù)所述編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)所述下一幀進(jìn)行重建的步驟包括當(dāng)所述解碼端檢測(cè)到所述下一幀丟失時(shí),從所述可用空間存儲(chǔ)獲取所述預(yù)測(cè)參數(shù);根據(jù)所述預(yù)測(cè)參數(shù)對(duì)所述下一幀進(jìn)行重建。優(yōu)選地,所述預(yù)測(cè)參數(shù)至少包括當(dāng)前幀與下一幀編碼MDCT或臨近頻帶的能量差、下一幀的比例因子。優(yōu)選地,該方法還包括所述解碼端根據(jù)傳輸音頻碼流的RTP頭攜帶的幀序列號(hào)判斷是否丟包。本發(fā)明還提出一種增強(qiáng)抗丟包的音頻編解碼系統(tǒng),包括編碼端和解碼端;其中
所述編碼端包括計(jì)算模塊,用于根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;預(yù)測(cè)模塊,用于根據(jù)所述可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);所述解碼端,用于當(dāng)檢測(cè)到所述下一幀丟失時(shí),根據(jù)所述預(yù)測(cè)模塊預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)所述下一幀進(jìn)行重建。優(yōu)選地,所述預(yù)測(cè)模塊包括計(jì)算單元,用于計(jì)算與下一幀相關(guān)的所述預(yù)測(cè)參數(shù);以及所述預(yù)測(cè)參數(shù)所需要的空間;比較單元,用于將所述可用空間與所述預(yù)測(cè)參數(shù)所需要的空間進(jìn)行比較;存儲(chǔ)單元,用于當(dāng)所述可用空間夠用時(shí),將所述預(yù)測(cè)參數(shù)放入所述可用空間;否則,放棄操作。優(yōu)選地,所述解碼端還用于當(dāng)檢測(cè)到所述下一幀丟失時(shí),從所述可用空間存儲(chǔ)獲取所述預(yù)測(cè)參數(shù);根據(jù)所述預(yù)測(cè)參數(shù)對(duì)所述下一幀進(jìn)行重建。優(yōu)選地,所述預(yù)測(cè)參數(shù)至少包括當(dāng)前幀與下一幀編碼MDCT或臨近頻帶的能量差、下一幀的比例因子。優(yōu)選地,所述解碼端還用于根據(jù)傳輸音頻碼流的RTP頭攜帶的幀序列號(hào)判斷是否丟包。本發(fā)明提出的一種增強(qiáng)抗丟包的音頻編解碼方法及系統(tǒng),充分利用帶寬資源,利用每幀對(duì)應(yīng)的允許最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,對(duì)下一幀進(jìn)行預(yù)測(cè),在解碼時(shí),根據(jù)預(yù)測(cè)參數(shù)對(duì)丟包進(jìn)行重建,從而改善由于丟包導(dǎo)致的音頻不佳的狀況,給用戶以更好的聽(tīng)覺(jué)效果;同時(shí)保證了和對(duì)應(yīng)的標(biāo)準(zhǔn)解碼器的兼容性。
圖1是本發(fā)明增強(qiáng)抗丟包的音頻編解碼方法一實(shí)施例的流程示意圖;圖2是本發(fā)明增強(qiáng)抗丟包的音頻編解碼方法一實(shí)施例中編碼端根據(jù)可用空間對(duì)下一幀進(jìn)行預(yù)測(cè)的流程示意圖;圖3是本發(fā)明增強(qiáng)抗丟包的音頻編解碼系統(tǒng)一實(shí)施例的結(jié)構(gòu)示意圖;圖4是本發(fā)明增強(qiáng)抗丟包的音頻編解碼系統(tǒng)一實(shí)施例中編碼端的結(jié)構(gòu)示意圖;圖5是本發(fā)明增強(qiáng)抗丟包的音頻編解碼系統(tǒng)一實(shí)施例中預(yù)測(cè)模塊的結(jié)構(gòu)示意圖。為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進(jìn)一步詳述。
具體實(shí)施例方式本發(fā)明實(shí)施例解決方案主要是充分利用帶寬資源,用每幀對(duì)應(yīng)的允許最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,對(duì)下一幀進(jìn)行預(yù)測(cè),在解碼時(shí),根據(jù)預(yù)測(cè)參數(shù)對(duì)丟包進(jìn)行重建,以解決音頻碼流傳輸過(guò)程中丟包導(dǎo)致的音頻效果不佳的問(wèn)題。如圖1所示,本發(fā)明一實(shí)施例提出一種增強(qiáng)抗丟包的音頻編解碼方法,包括步驟S101,編碼端根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;
本實(shí)施例方法運(yùn)行環(huán)境涉及編碼端和解碼端,在音頻碼流傳輸過(guò)程中,編碼端首先創(chuàng)建當(dāng)前幀和下一幀的緩存,并對(duì)接收到的當(dāng)前幀和下一幀進(jìn)行編碼;然后,根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間,該可用空間是指當(dāng)前幀對(duì)應(yīng)的最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,利用該空間差可對(duì)下一幀進(jìn)行預(yù)測(cè),以便解碼端對(duì)丟包進(jìn)行盡可能的復(fù)原,從而改善音頻效果。步驟S102,編碼端根據(jù)可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);編碼端在對(duì)下一幀進(jìn)行預(yù)測(cè)時(shí),需要計(jì)算下一幀相關(guān)的主要預(yù)測(cè)參數(shù),同時(shí)需要計(jì)算上述主要預(yù)測(cè)參數(shù)所需用到的空間,然后,根據(jù)上述計(jì)算得到的可用空間與預(yù)測(cè)參數(shù)所需用到的空間判斷可用空間是否夠用。若夠用,編碼端則將預(yù)測(cè)參數(shù)存儲(chǔ)于該可用空間內(nèi),否則,放棄操作。上述預(yù)測(cè)參數(shù)包括當(dāng)前幀與下一幀編碼MDCT(modified discrete cosine transform,改進(jìn)離散余弦變換)或臨近頻帶的能量差,以及下一幀的比例因子等。步驟S103,當(dāng)解碼端檢測(cè)到下一幀丟失時(shí),解碼端根據(jù)編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)下一幀進(jìn)行重建。在音頻碼流的傳輸過(guò)程中,解碼端根據(jù)傳輸音頻碼流的RTP (Real-time Transport Protocol,實(shí)時(shí)傳送協(xié)議)頭攜帶的幀序列號(hào)判斷是否丟包,解碼端檢測(cè)到下一幀丟失時(shí),解碼端根據(jù)可用空間中存儲(chǔ)的、編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)下一幀進(jìn)行重建。雖然重建的效果達(dá)不到原始幀的效果,但是卻避免了丟包導(dǎo)致的雜音,較明顯的改善了聲音質(zhì)量。具體實(shí)施過(guò)程中,如圖2所示,上述步驟S102包括步驟S1021,編碼端計(jì)算與下一幀相關(guān)的預(yù)測(cè)參數(shù);步驟S1022,計(jì)算預(yù)測(cè)參數(shù)所需要的空間;步驟S1023,將可用空間與預(yù)測(cè)參數(shù)所需要的空間進(jìn)行比較;當(dāng)可用空間夠用時(shí), 進(jìn)入步驟SlOM ;否則,放棄操作,結(jié)束流程;步驟S1024,將預(yù)測(cè)參數(shù)放入可用空間。相比現(xiàn)有技術(shù),本實(shí)施例在充分利用帶寬資源和不用解碼庫(kù)反饋機(jī)制的情況下, 利用每幀對(duì)應(yīng)的最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,對(duì)下一幀進(jìn)行預(yù)測(cè),在解碼時(shí)根據(jù)這些預(yù)測(cè)信息對(duì)丟包進(jìn)行重建,達(dá)到改善網(wǎng)絡(luò)丟包導(dǎo)致音頻效果不佳的狀況,給用戶以更好的聽(tīng)覺(jué)效果,尤其在不是連續(xù)丟包的情況下,音頻效果改善特別明顯,并可與標(biāo)準(zhǔn)的解碼器保持兼容。如圖3所示,本發(fā)明一實(shí)施例提出一種增強(qiáng)抗丟包的音頻編解碼系統(tǒng),包括編碼端301和解碼端302 ;其中編碼端301,用于根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;并根據(jù)可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);解碼端302,用于當(dāng)檢測(cè)到下一幀丟失時(shí),根據(jù)編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)下一幀
進(jìn)行重建。本實(shí)施例增強(qiáng)抗丟包的音頻編解碼系統(tǒng)的基本原理為在音頻碼流傳輸過(guò)程中,編碼端302首先創(chuàng)建當(dāng)前幀和下一幀的緩存,并對(duì)接收到的當(dāng)前幀和下一幀進(jìn)行編碼;然后,根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間,該可用空間是指當(dāng)前幀對(duì)應(yīng)的最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,編碼端301利用該空間差可對(duì)下一幀進(jìn)行預(yù)測(cè)。以便解碼端302對(duì)丟包進(jìn)行盡可能的復(fù)原,從而改善音頻效果。編碼端301在對(duì)下一幀進(jìn)行預(yù)測(cè)時(shí),需要計(jì)算下一幀相關(guān)的主要預(yù)測(cè)參數(shù),同時(shí)需要計(jì)算上述主要預(yù)測(cè)參數(shù)所需用到的空間,然后,根據(jù)上述計(jì)算得到的可用空間與預(yù)測(cè)參數(shù)所需用到的空間判斷可用空間是否夠用。若夠用,編碼端301則將預(yù)測(cè)參數(shù)存儲(chǔ)于該可用空間內(nèi),否則,放棄操作。上述預(yù)測(cè)參數(shù)包括當(dāng)前幀與下一幀編碼MDCT(modified discrete cosine transform,改進(jìn)離散余弦變換)或臨近頻帶的能量差,以及下一幀的比例因子等。在音頻碼流的傳輸過(guò)程中,解碼端302根據(jù)傳輸音頻碼流的RTP (Real-time Transport Protocol,實(shí)時(shí)傳送協(xié)議)頭攜帶的幀序列號(hào)判斷是否丟包,解碼端檢測(cè)到下一幀丟失時(shí),解碼端302根據(jù)可用空間中存儲(chǔ)的、編碼端301預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)下一幀進(jìn)行重建。雖然重建的效果達(dá)不到原始幀的效果,但是卻避免了丟包導(dǎo)致的雜音,較明顯的改善了聲音質(zhì)量。具體地,如圖4所示,本實(shí)施例中編碼端301包括計(jì)算模塊3011以及預(yù)測(cè)模塊 3012,其中計(jì)算模塊3011,用于根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;預(yù)測(cè)模塊3012,用于根據(jù)可用空間對(duì)下一幀進(jìn)行預(yù)測(cè)。如圖5所示,上述預(yù)測(cè)模塊3012包括計(jì)算單元30121、比較單元30122以及存儲(chǔ)單元30123,其中計(jì)算單元30121,用于計(jì)算與下一幀相關(guān)的預(yù)測(cè)參數(shù);以及預(yù)測(cè)參數(shù)所需要的空間;比較單元30122,用于將可用空間與預(yù)測(cè)參數(shù)所需要的空間進(jìn)行比較;存儲(chǔ)單元30123,用于當(dāng)可用空間夠用時(shí),將預(yù)測(cè)參數(shù)放入可用空間;否則,放棄存儲(chǔ)操作。本發(fā)明實(shí)施例增強(qiáng)抗丟包的音頻編解碼方法及系統(tǒng),充分利用帶寬資源,利用每幀對(duì)應(yīng)的允許最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,對(duì)下一幀進(jìn)行預(yù)測(cè),在解碼時(shí),根據(jù)預(yù)測(cè)參數(shù)對(duì)丟包進(jìn)行重建,從而改善由于丟包導(dǎo)致的音頻不佳的狀況,給用戶以更好的聽(tīng)覺(jué)效果,并提高了帶寬利用率;同時(shí)也可以只把實(shí)際編碼的字節(jié)數(shù)作為解碼端的輸入,由此可保證和對(duì)應(yīng)的標(biāo)準(zhǔn)的解碼器的兼容性。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種增強(qiáng)抗丟包的音頻編解碼方法,其特征在于,包括編碼端根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;所述編碼端根據(jù)所述可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);當(dāng)解碼端檢測(cè)到所述下一幀丟失時(shí),所述解碼端根據(jù)所述編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)所述下一幀進(jìn)行重建。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述編碼端根據(jù)所述可用空間對(duì)下一幀進(jìn)行預(yù)測(cè)的步驟包括所述編碼端計(jì)算與下一幀相關(guān)的所述預(yù)測(cè)參數(shù);計(jì)算所述預(yù)測(cè)參數(shù)所需要的空間;將所述可用空間與所述預(yù)測(cè)參數(shù)所需要的空間進(jìn)行比較;當(dāng)所述可用空間夠用時(shí),將所述預(yù)測(cè)參數(shù)放入所述可用空間;否則,放棄操作。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)解碼端檢測(cè)到所述下一幀丟失時(shí), 所述解碼端根據(jù)所述編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)所述下一幀進(jìn)行重建的步驟包括當(dāng)所述解碼端檢測(cè)到所述下一幀丟失時(shí),從所述可用空間存儲(chǔ)獲取所述預(yù)測(cè)參數(shù); 根據(jù)所述預(yù)測(cè)參數(shù)對(duì)所述下一幀進(jìn)行重建。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述預(yù)測(cè)參數(shù)至少包括當(dāng)前幀與下一幀編碼改進(jìn)離散余弦變換MDCT或臨近頻帶的能量差、下一幀的比例因子。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括所述解碼端根據(jù)傳輸音頻碼流的RTP頭攜帶的幀序列號(hào)判斷是否丟包。
6.一種增強(qiáng)抗丟包的音頻編解碼系統(tǒng),其特征在于,包括編碼端和解碼端;其中 所述編碼端包括計(jì)算模塊,用于根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;預(yù)測(cè)模塊,用于根據(jù)所述可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);所述解碼端,用于當(dāng)檢測(cè)到所述下一幀丟失時(shí),根據(jù)所述預(yù)測(cè)模塊預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)所述下一幀進(jìn)行重建。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述預(yù)測(cè)模塊包括計(jì)算單元,用于計(jì)算與下一幀相關(guān)的所述預(yù)測(cè)參數(shù);以及所述預(yù)測(cè)參數(shù)所需要的空間;比較單元,用于將所述可用空間與所述預(yù)測(cè)參數(shù)所需要的空間進(jìn)行比較; 存儲(chǔ)單元,用于當(dāng)所述可用空間夠用時(shí),將所述預(yù)測(cè)參數(shù)放入所述可用空間;否則,放棄操作。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述解碼端還用于當(dāng)檢測(cè)到所述下一幀丟失時(shí),從所述可用空間存儲(chǔ)獲取所述預(yù)測(cè)參數(shù);根據(jù)所述預(yù)測(cè)參數(shù)對(duì)所述下一幀進(jìn)行重建。
9.根據(jù)權(quán)利要求6、7或8所述的系統(tǒng),其特征在于,所述預(yù)測(cè)參數(shù)至少包括當(dāng)前幀與下一幀編碼MDCT或臨近頻帶的能量差、下一幀的比例因子。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述解碼端還用于根據(jù)傳輸音頻碼流的實(shí)時(shí)傳送協(xié)議RTP頭攜帶的幀序列號(hào)判斷是否丟包。
全文摘要
本發(fā)明涉及一種增強(qiáng)抗丟包的音頻編解碼方法及系統(tǒng),其方法包括編碼端根據(jù)當(dāng)前幀編碼允許輸出的最大字節(jié)數(shù)與當(dāng)前幀編碼生成的碼流大小計(jì)算可用空間;編碼端根據(jù)可用空間對(duì)下一幀進(jìn)行預(yù)測(cè);當(dāng)解碼端檢測(cè)到下一幀丟失時(shí),解碼端根據(jù)編碼端預(yù)測(cè)的預(yù)測(cè)參數(shù),對(duì)下一幀進(jìn)行重建。本發(fā)明充分利用帶寬資源,利用每幀對(duì)應(yīng)的允許最大字節(jié)數(shù)和實(shí)際編碼生成的字節(jié)數(shù)的空間差,對(duì)下一幀進(jìn)行預(yù)測(cè),在解碼時(shí),根據(jù)預(yù)測(cè)參數(shù)對(duì)丟包進(jìn)行重建,從而改善由于丟包導(dǎo)致的音頻不佳的狀況,給用戶以更好的聽(tīng)覺(jué)效果;同時(shí)保證了和對(duì)應(yīng)的標(biāo)準(zhǔn)解碼器的兼容性。
文檔編號(hào)G10L19/02GK102446509SQ20111037324
公開(kāi)日2012年5月9日 申請(qǐng)日期2011年11月22日 優(yōu)先權(quán)日2011年11月22日
發(fā)明者孫濤 申請(qǐng)人:中興通訊股份有限公司