專利名稱:多路并行可變長(zhǎng)碼解碼的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于高清晰度數(shù)字電視全I(xiàn)幀解碼器領(lǐng)域,具體涉及一種多路并行可變長(zhǎng)碼解碼的方法。
背景技術(shù):
當(dāng)前,通用的數(shù)字電視編碼技術(shù)是MPEG-2技術(shù),它由ISO/IEC13818文件描述,該文件只規(guī)定了視頻碼流中可變長(zhǎng)碼的碼表,但是并未對(duì)具體的解碼方法做出限制性規(guī)定。由于高清晰度電視視頻編碼器的運(yùn)算量十分巨大,通需要通過(guò)硬件實(shí)現(xiàn)。尤其是在全I(xiàn)幀的解碼過(guò)程中對(duì)可變長(zhǎng)解碼器吞吐率的要求非常高,一般的DSP和專用芯片無(wú)法實(shí)現(xiàn)。
可變長(zhǎng)解碼器可以分為固定輸入型和固定輸出型兩種。固定輸入型是指解碼器按照固定的速率,例如每個(gè)時(shí)鐘周期1個(gè)比特,接收輸入的碼流,當(dāng)解碼器完成一個(gè)碼字的解碼時(shí)輸出結(jié)果,結(jié)果的輸出是不定時(shí)的。因此常常無(wú)法保證解碼的速率。固定輸出型是指解碼器按照固定的速率輸出解碼結(jié)果。固定輸出速率型可以保證解碼速率,但是存在以下兩方面問(wèn)題,一方面長(zhǎng)度累加器、對(duì)齊緩沖區(qū)和后綴分析模塊構(gòu)成一個(gè)反饋回路,對(duì)齊緩沖區(qū)必須在上一個(gè)碼字的長(zhǎng)度記入累加器得到比特位置指示之后,才可以開始調(diào)整對(duì)齊緩沖區(qū)中的內(nèi)容;另一方而,對(duì)齊緩沖區(qū)的移位和更新操作需要一定的時(shí)間,對(duì)齊緩沖區(qū)更新完畢之后前分析模塊才能繼續(xù)工作。假設(shè)這個(gè)反饋回路需要3個(gè)時(shí)鐘周期,為了使每個(gè)系統(tǒng)時(shí)鐘周期內(nèi)可以解出一個(gè)碼字,解碼器時(shí)鐘必須是系統(tǒng)時(shí)鐘周期的3倍。對(duì)于MPEG-2@HL 4:2:2格式的視頻的采樣率達(dá)到74.25MHz,則要求解碼器時(shí)鐘達(dá)到300M,因此這個(gè)反饋回路成為制約VLD解碼器吞吐量和解碼速率的關(guān)鍵。
每個(gè)可變長(zhǎng)碼的長(zhǎng)度足不同的,一般由前綴和后綴兩部分組成,通過(guò)確定碼字的前綴可以判斷整個(gè)碼字的長(zhǎng)度。而后綴部分可以進(jìn)一步區(qū)分有相同前綴的碼字,從而最終解碼。可變長(zhǎng)編碼得到的碼字長(zhǎng)度不同,但是連續(xù)地放入碼流之中傳輸,碼字之間沒有間隔保護(hù)或者任何標(biāo)志。這樣在解碼的時(shí)候只有在解出當(dāng)前碼字之后才能根據(jù)當(dāng)前碼字的長(zhǎng)度確定下一個(gè)碼字的開始位置。可變長(zhǎng)碼的這種遞歸特性限制了解碼速率。
圖1是現(xiàn)有可變長(zhǎng)解碼器的基本原理框圖,如圖1所示,多比特的輸入碼流進(jìn)入輸入鎖存器后,經(jīng)移位器,由前綴分析器分析出當(dāng)前碼字的長(zhǎng)度等信息,并將長(zhǎng)度信息反饋給長(zhǎng)度累加器,長(zhǎng)度累加器對(duì)所有已經(jīng)完成解碼的碼字的長(zhǎng)度進(jìn)行累計(jì),并控制移位器移除當(dāng)前完成解碼的碼字,此外長(zhǎng)度累加器還控制輸入鎖存器獲得新的輸入碼流。移位器移除已經(jīng)完成解碼的碼字,使得下一個(gè)碼字位于移位器的開始,即左對(duì)齊下一個(gè)碼字。前綴分析器通過(guò)分析碼字的開始的幾個(gè)比特確定它屬于那一組碼字,地址生成器利用前綴分析器的輸出以及碼字的其余部分確定解碼碼字在碼表中的地址,最終通過(guò)查表完成解碼。
從上面的敘述可以發(fā)現(xiàn),移位器,前綴分析器和長(zhǎng)度累加器構(gòu)成一個(gè)反饋回路。移位器必須等待前綴分析器的分析出當(dāng)前碼字長(zhǎng)度的結(jié)果。輸入鎖存器每次保存N比特等待解碼的比特流。移位器在長(zhǎng)度累加器的控制下把還沒有解碼的比特片斷輸送給前綴分析器,前綴分析器根據(jù)比特片斷的前幾位判斷出當(dāng)前碼字的長(zhǎng)度,長(zhǎng)度累加器累加完當(dāng)前碼字的長(zhǎng)度之后,才能控制移位器把當(dāng)前碼字移除,為下一個(gè)碼字的解碼做準(zhǔn)備。因此如果這個(gè)反饋的延遲是m個(gè)時(shí)鐘周期,那么這個(gè)系統(tǒng)的工作效率為1/m。由此可見其效率低下。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種同時(shí)支持多路并行可變長(zhǎng)碼解碼的方法,該方法使用宏觀并行,微觀串行的方式,即宏觀上多個(gè)碼流使用同一個(gè)解碼器內(nèi)核進(jìn)行解碼,而在解碼器內(nèi)部的任何一個(gè)模塊(即一級(jí)流水線)的某一個(gè)時(shí)鐘周期只為一個(gè)碼流服務(wù),使得解碼器可以全速工作而不必等待反饋回路依次完成操作,從而提高解碼器的工作效率。
為達(dá)上述目的,本發(fā)明是這樣實(shí)現(xiàn)的一種多路并行可變長(zhǎng)碼解碼的方法,包括以下步驟n路輸入碼流進(jìn)入與碼流數(shù)量對(duì)應(yīng)的碼流緩沖器,并在緩沖器中緩沖;所述碼流緩沖器中的輸入碼流由多路復(fù)用器選擇后,經(jīng)過(guò)移位器至前綴分析器,所述前綴分析器根據(jù)比特片斷的前幾位判斷當(dāng)前碼字的長(zhǎng)度,將長(zhǎng)度信息送入m級(jí)遲延長(zhǎng)度累加器;經(jīng)所述多路復(fù)用器選擇但未進(jìn)入移位器的輸入碼流在所述m級(jí)遲延輸入鎖存器中保存m個(gè)時(shí)鐘周期后輸出;所述m級(jí)遲延長(zhǎng)度累加器根據(jù)獲得的當(dāng)前碼字的長(zhǎng)度信息對(duì)所有已經(jīng)完成解碼的碼字的長(zhǎng)度進(jìn)行累計(jì),并控制所述移位器移除當(dāng)前完成解碼的碼字,所述m級(jí)遲延長(zhǎng)度累加器將當(dāng)前的相加結(jié)果保存與m個(gè)時(shí)鐘周期之后的輸入相加;地址生成器利用所述前綴分析器的輸出以及碼字的其余部分確定解碼碼字的碼表中的地址,經(jīng)過(guò)查表后,由解多路復(fù)用器分配給對(duì)應(yīng)解碼結(jié)果,完成解碼;其中m,n≥2,且m≥n,所述多路復(fù)用器、移位器、前綴分析器、部分m級(jí)遲延長(zhǎng)度累加器構(gòu)成的一個(gè)反饋回路,將該反饋回路分成m級(jí)流水線,每一級(jí)流水線在某一個(gè)時(shí)鐘周期內(nèi)只為一個(gè)碼流服務(wù)。
較佳的,將所述反饋分成4至6級(jí)流水線。
本發(fā)明的有益效果是提高數(shù)字視頻解碼器中可變長(zhǎng)解碼模塊的工作效率,而且可以根據(jù)工作負(fù)荷的大小啟動(dòng)多路復(fù)用器中的任何一路或者多路,具有可配置可調(diào)節(jié)的優(yōu)點(diǎn)。
圖1為現(xiàn)有可變長(zhǎng)碼解碼器的基本原理框2為支持多路碼流可變長(zhǎng)碼解碼的流程3為多個(gè)節(jié)目共享一個(gè)多路并行可變長(zhǎng)解碼器圖4為一個(gè)節(jié)目分割成宏塊條并行解碼具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出實(shí)施案例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例一如圖2所示,多輸入碼流共同使用一個(gè)解碼內(nèi)核的系統(tǒng)框圖。假定有來(lái)自同一個(gè)節(jié)目或不同節(jié)目的3個(gè)碼流。此3個(gè)碼流首先在各自的緩沖區(qū)中緩沖。然后由多路復(fù)用器選擇某一路有新的碼流進(jìn)入后續(xù)步驟,或者某一路的保存在6級(jí)碼流緩沖器的碼流作為后續(xù)模塊處理的輸入。其中移位器,前綴分析器,地址生成器,碼表等模塊的工作原理與圖1現(xiàn)有可變長(zhǎng)碼解碼器中相應(yīng)模塊的工作原理完全相同。
多路復(fù)用器,移位器,前綴分析器,以及6級(jí)遲延長(zhǎng)度累加器的一部分構(gòu)成的反饋遲延為6個(gè)時(shí)鐘周期,或者說(shuō)多路復(fù)用器,移位器,前綴分析器,以及6級(jí)累加器的一部分的構(gòu)成了6級(jí)流水線。在輸入碼流為3路的情況下,此時(shí)3個(gè)碼流的解碼工作可以依次分布在反饋回路的6級(jí)流水線中的不同級(jí)中進(jìn)行,并且或不干擾。當(dāng)完成查表之后,解碼的結(jié)果屬于不同的碼流,還需要經(jīng)過(guò)解多路復(fù)用器,分配給不同的碼流進(jìn)行進(jìn)一步的處理。這樣解碼器可以全速工作而不必等待反饋依次完成操作。與現(xiàn)有可變長(zhǎng)解碼器相比,其解碼效率提高了三倍。
實(shí)施例二如圖3所示,當(dāng)多個(gè)節(jié)目共享一個(gè)多路并行可變長(zhǎng)解碼器時(shí),可經(jīng)過(guò)節(jié)目前處理之后,變?yōu)槎嗦份斎氪a流,進(jìn)入多路并行可變長(zhǎng)解碼器,經(jīng)過(guò)解碼,解碼的結(jié)果再經(jīng)過(guò)節(jié)目后處理之后,得到解碼圖像。有時(shí)因?yàn)橐宦芬曨l碼流的碼率過(guò)大,而原有的可變長(zhǎng)碼解碼器無(wú)法達(dá)到速率的要求,此時(shí)可以采用圖4的方式將一個(gè)節(jié)目分成若干宏塊條,通過(guò)對(duì)宏塊條進(jìn)行并行解碼的方式以提高可變長(zhǎng)碼的解碼速率。
權(quán)利要求
1.一種多路并行可變長(zhǎng)碼解碼的方法,包括以下步驟1)n路輸入碼流進(jìn)入與碼流數(shù)量對(duì)應(yīng)的碼流緩沖器,并在緩沖器中緩沖;2)所述碼流緩沖器中的輸入碼流由多路復(fù)用器選擇后,經(jīng)過(guò)移位器至前綴分析器,所述前綴分析器根據(jù)比特片斷的前幾位判斷當(dāng)前碼字的長(zhǎng)度,將長(zhǎng)度信息送入m級(jí)遲延長(zhǎng)度累加器;經(jīng)所述多路復(fù)用器選擇但未進(jìn)入移位器的輸入碼流在m級(jí)遲延輸入鎖存器中保存m個(gè)時(shí)鐘周期后輸出;3)所述m級(jí)遲延長(zhǎng)度累加器根據(jù)獲得的當(dāng)前碼字的長(zhǎng)度信息對(duì)所有已經(jīng)完成解碼的碼字的長(zhǎng)度進(jìn)行累計(jì),并控制所述移位器移除當(dāng)前完成解碼的碼字,所述m級(jí)遲延長(zhǎng)度累加器將當(dāng)前的相加結(jié)果保存與m個(gè)時(shí)鐘周期之后的輸入相加;4)地址生成器利用所述前綴分析器的輸出以及碼字的其余部分確定解碼碼字的碼表中的地址,經(jīng)過(guò)查表后,由解多路復(fù)用器分配給對(duì)應(yīng)解碼結(jié)果,完成解碼;在上述步驟中,m,n≥2,且m≥n,所述多路復(fù)用器、移位器、前綴分析器、部分m級(jí)遲延長(zhǎng)度累加器構(gòu)成的一個(gè)反饋回路,將該反饋回路分成m級(jí)流水線,每一級(jí)流水線在某一個(gè)時(shí)鐘周期內(nèi)只為一個(gè)碼流服務(wù)。
2.根據(jù)權(quán)利要求1所述的多路并行可變長(zhǎng)碼解碼的方法,其特征在于將所述反饋分成4至6級(jí)流水線。
全文摘要
本發(fā)明提供一種多路并行可變長(zhǎng)碼解碼的方法,該方法使用宏觀并行,微觀串行的方式,即宏觀上多個(gè)碼流使用同一個(gè)解碼器內(nèi)核進(jìn)行解碼,而在解碼器內(nèi)部的任何一個(gè)模塊(即一級(jí)流水線)的某一個(gè)時(shí)鐘周期只為一個(gè)碼流服務(wù),使得解碼器可以全速工作而不必等待反饋回路依次完成操作,從而提高了數(shù)字視頻解碼器中可變長(zhǎng)解碼模塊的工作效率,而且可以根據(jù)工作負(fù)荷的大小啟動(dòng)多路復(fù)用器中的任何一路或者多路,具有可配置可調(diào)節(jié)的優(yōu)點(diǎn)。
文檔編號(hào)H04N7/24GK1662064SQ200410016508
公開日2005年8月31日 申請(qǐng)日期2004年2月24日 優(yōu)先權(quán)日2004年2月24日
發(fā)明者孫軍, 司馬苗, 唐澤鵬, 胡廣 申請(qǐng)人:上海交通大學(xué)