專利名稱:H.264/avc輸入碼流用解碼器及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是通信調(diào)制技術(shù)領(lǐng)域的裝置及控制方法,具體涉及一種H. 264/AVC 輸入碼流用解碼器及其控制方法。
背景技術(shù):
H. 264/AVC是由ITU-T和MPEG組織聯(lián)合提出的新一代的數(shù)字視頻編碼標(biāo)準(zhǔn)。 H. 264/AVC標(biāo)準(zhǔn)顯著提高了數(shù)據(jù)壓縮效率。在相同圖像質(zhì)量下,H. 264/AVC標(biāo)準(zhǔn)可在更低 碼率信道上獲得更高的視頻質(zhì)量。但它的實(shí)時(shí)性能和高質(zhì)量是以可靠的、低延遲的輸入碼 流和復(fù)雜計(jì)算為基礎(chǔ)的。在對(duì)H. 264/AVC解碼器設(shè)計(jì)中,研究如何提高計(jì)算能力的方法多, 而如何使輸入碼流和計(jì)算引擎速度配合的方法研究極少。其實(shí)在碼流輸入過(guò)程中產(chǎn)生的延 遲,是會(huì)影響整個(gè)系統(tǒng)的性能。經(jīng)過(guò)對(duì)現(xiàn)有技術(shù)文獻(xiàn)的檢索發(fā)現(xiàn),譚立地等,在《江西科學(xué)》第26卷第4期、2008 年8月第608-661頁(yè)發(fā)表的“一種H. 264/AVC解碼器關(guān)鍵技術(shù)的設(shè)計(jì)”中提出了一種H. 264 解碼器系統(tǒng)結(jié)構(gòu)圖,結(jié)構(gòu)圖中的硬件解碼部分并沒(méi)有提到對(duì)輸入碼流的控制方法,文獻(xiàn)中 提出的對(duì)關(guān)鍵技術(shù)闡述,也沒(méi)有涉及對(duì)輸入碼流的控制方法。事實(shí)上,只有當(dāng)H. 264/AVC輸 入碼流和硬件速度的配合才會(huì)提高系統(tǒng)的整體性能。上述文獻(xiàn)的不足之處就是并沒(méi)有提出 解決碼流和硬件引擎的處理速度差異時(shí)應(yīng)該采用的技術(shù)方法。在目前查到的有關(guān)文獻(xiàn)中也 沒(méi)有提到解碼器中需要對(duì)碼流輸入控制的方法。在現(xiàn)代計(jì)算機(jī)技術(shù)中,高速的CPU和存儲(chǔ) 器RAM之間是采用緩沖存儲(chǔ)器Cache來(lái)解決速度的差異,進(jìn)而提高計(jì)算機(jī)系統(tǒng)的整體運(yùn)算 性能。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提供一種H. 264/AVC輸入碼流用解碼器及 其控制方法,針對(duì)H. 264/AVC Baseline Profile硬件解碼器中的輸入碼流,提出采用硬件 桶形緩沖存儲(chǔ)器的方法,實(shí)現(xiàn)輸入碼流和計(jì)算引擎的速度匹配,可以提高系統(tǒng)的性能。本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明涉及一種H. 264/AVC輸入碼流用解碼器,包括地址緩沖隔離控制電路、地址生成器、時(shí)鐘發(fā)生器、數(shù)據(jù)緩沖隔離控制電路以及隨機(jī)存儲(chǔ)器,其中地址生成器的輸入 端與時(shí)鐘發(fā)生器相連接以接收時(shí)鐘信號(hào),地址生成器的輸出端分別與地址緩沖隔離控制電 路以及數(shù)據(jù)緩沖隔離控制電路相連接以輸出控制信號(hào),地址生成器的地址端與地址緩沖隔 離控制電路的地址端通過(guò)地址總線相連接,地址緩沖隔離控制電路的輸出端與臨時(shí)寄存器 相連接以輸出地址信息,臨時(shí)寄存器與數(shù)據(jù)緩沖隔離控制電路相連接以傳輸碼流信息,所 述的隨機(jī)存儲(chǔ)器由緩沖區(qū)A和緩沖區(qū)B構(gòu)成。所述的控制信號(hào)包括對(duì)桶形緩沖區(qū)進(jìn)行讀操作信號(hào)和對(duì)桶形緩沖區(qū)進(jìn)行寫操作信號(hào)。所述的隨機(jī)存儲(chǔ)器為兩塊SRAM構(gòu)成的128bit的桶形碼流緩沖區(qū),該桶形碼流緩沖區(qū)是片外碼流從存儲(chǔ)器輸入到片內(nèi)H. 264解碼器之間的接口電路。所述的地址生成器產(chǎn)生兩個(gè)環(huán)形變化的地址數(shù)據(jù)指針PA和地址數(shù)據(jù)指針PB并分別指向?qū)?yīng)的緩沖區(qū)A和緩沖區(qū)B中的地址,循環(huán)時(shí)鐘的每一個(gè)周期內(nèi)當(dāng)?shù)刂窋?shù)據(jù)指針 PA增加到周長(zhǎng)一半時(shí),地址數(shù)據(jù)指針PB歸零,當(dāng)?shù)刂窋?shù)據(jù)指針PB增加到周長(zhǎng)一半時(shí),地址 數(shù)據(jù)指針PA歸零。本發(fā)明涉及上述H. 264/AVC輸入碼流用解碼器的控制方法,包括以下步驟第一步、在地址生成器的作用下,SDRAM中的碼流寫入到桶形碼流緩沖區(qū);當(dāng)?shù)刂?范圍達(dá)到桶形碼流緩沖區(qū)的周長(zhǎng)的一半時(shí),即寫滿緩沖區(qū)A時(shí)啟動(dòng)數(shù)據(jù)緩沖隔離控制電路 并從緩沖區(qū)A中讀出數(shù)據(jù),開始解碼器計(jì)算;第二步、當(dāng)從緩沖區(qū)A中讀出數(shù)據(jù)完畢后,啟動(dòng)地址生成器并將SDRAM中的碼流繼 續(xù)寫入到緩沖區(qū)B;當(dāng)緩沖區(qū)B中數(shù)據(jù)寫滿時(shí),啟動(dòng)數(shù)據(jù)緩沖隔離控制電路并繼續(xù)從緩沖區(qū) B中讀出數(shù)據(jù)進(jìn)行解碼器計(jì)算,同時(shí)將緩沖區(qū)A清零;第三步、啟動(dòng)地址生成器并將SDRAM中的碼流寫入到緩沖區(qū)A中直至緩沖區(qū)A寫 滿,然后啟動(dòng)數(shù)據(jù)緩沖隔離控制電路并繼續(xù)從緩沖區(qū)A中讀出數(shù)據(jù)進(jìn)行解碼器計(jì)算,同時(shí) 將緩沖區(qū)B清零。上述過(guò)程的地址發(fā)生器和控制電路的時(shí)序信號(hào),可以重復(fù)進(jìn)行。一直到碼流數(shù)據(jù) 完成。桶形的結(jié)構(gòu)使得讀和寫的地址具有相同的長(zhǎng)度范圍,故控制電路設(shè)計(jì)時(shí)可較簡(jiǎn)單,并 且讀和寫的操作可以分別進(jìn)行,效率最大。采用兩塊SRAM構(gòu)成的桶形緩沖區(qū)的地址長(zhǎng)度要比一次運(yùn)算所需的數(shù)據(jù)的地址長(zhǎng) 度范圍要大,這樣保證了在讀緩沖區(qū)數(shù)據(jù)的同時(shí),還能同步向緩沖區(qū)寫數(shù)據(jù),而且不會(huì)發(fā)生 讀寫數(shù)據(jù)操作的沖突。本發(fā)明通過(guò)以下方式進(jìn)行工作首先通過(guò)一個(gè)16bit寬的數(shù)據(jù)總線將碼流從外部 存儲(chǔ)器SDRAM輸入到隨機(jī)存儲(chǔ)器中,當(dāng)桶形緩沖區(qū)的碼流達(dá)到桶形周長(zhǎng)的一半時(shí),即半滿 狀態(tài)后,由控制電路發(fā)出中斷請(qǐng)求信號(hào),解碼器內(nèi)核就開始讀入緩沖區(qū)中的碼流,并開始解 碼計(jì)算過(guò)程。而桶形緩沖區(qū)可通過(guò)一個(gè)自動(dòng)填充的控制電路,連續(xù)從外部存儲(chǔ)器SDRAM中 讀入碼流,由緩沖區(qū)連續(xù)提供給解碼器作計(jì)算。這里的關(guān)鍵技術(shù)就是采用了桶形緩沖區(qū)的 技術(shù),使得寫入數(shù)據(jù)和讀出數(shù)據(jù)可以同時(shí)進(jìn)行。在H. 264/AVC解碼器運(yùn)算中,碼流的桶形緩沖存儲(chǔ)器對(duì)解碼器運(yùn)算速度提高有重 要的作用。它直接關(guān)系到整個(gè)系統(tǒng)能否滿足實(shí)時(shí)解碼并達(dá)到所需要吞吐效率。本發(fā)明隨機(jī)存儲(chǔ)器設(shè)計(jì)兩塊獨(dú)立的單端RAM電路和單獨(dú)的地址生成器,目的是讓 外部存儲(chǔ)器SDRAM中的數(shù)據(jù)碼流能按地址生成器產(chǎn)生的地址順序進(jìn)入寫緩沖區(qū),假設(shè)是A 緩沖區(qū);而同時(shí)解碼器芯片內(nèi)的運(yùn)算部件能夠按另一個(gè)地址生成器產(chǎn)生的地址順序接收從 緩沖器中送出的碼流。由于寫緩沖區(qū)和讀緩沖區(qū)的操作可以同時(shí)進(jìn)行,省去了每次向SDRAM 讀寫數(shù)據(jù)的操作過(guò)程,提高了系統(tǒng)的速度。桶形的目的是使得讀和寫的地址具有相同的周 長(zhǎng)度范圍,使得控制電路設(shè)計(jì)時(shí)達(dá)到簡(jiǎn)單可靠的目地,并且讀和寫的操作可以分別進(jìn)行,效 率最大。
圖1為本發(fā)明結(jié)構(gòu)示意圖。
圖2為隨機(jī)存儲(chǔ)器示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保擴(kuò)范圍不限于下 述的實(shí)施例。如圖1所示,本實(shí)施例包括地址緩沖隔離控制電路、地址生成器、時(shí)鐘發(fā)生器、數(shù) 據(jù)緩沖隔離控制電路以及隨機(jī)存儲(chǔ)器,其中地址生成器的輸入端與時(shí)鐘發(fā)生器相連接以 接收時(shí)鐘信號(hào),地址生成器的輸出端分別與地址緩沖隔離控制電路以及數(shù)據(jù)緩沖隔離控制 電路相連接以輸出控制信號(hào),地址生成器的地址端與地址緩沖隔離控制電路的地址端通過(guò) 地址總線相連接,地址緩沖隔離控制電路的輸出端與臨時(shí)寄存器相連接以輸出地址信息, 臨時(shí)寄存器與數(shù)據(jù)緩沖隔離控制電路相連接以傳輸碼流信息。所述的地址發(fā)生器通過(guò)地址隔離控制器后形成兩個(gè)獨(dú)立的地址指針,分別代表緩 沖區(qū)A和緩沖區(qū)B地址。在控制電路中C信號(hào)出現(xiàn)時(shí),在保證互斥條件下,SDRAM和解碼器 中的數(shù)據(jù)碼流和地址信號(hào)能分別到達(dá)桶形結(jié)構(gòu)的A緩沖區(qū)和B緩沖區(qū)。為說(shuō)明工作過(guò)程, 用1、2、3、4分別表示生成緩沖區(qū)A和緩沖區(qū)B的地址。用5、6、7、8分別表示緩沖區(qū)A和緩 沖區(qū)B。當(dāng)控制信號(hào)C = 1時(shí),地址緩沖器1,4和數(shù)據(jù)緩沖器5,8打開,而地址緩沖器2、3 和數(shù)據(jù)緩沖器6、7關(guān)閉,此時(shí)防問(wèn)緩沖器A的地址由地址生成器提供,使來(lái)自SDRAM的數(shù)據(jù) 碼流進(jìn)入到緩沖區(qū)A。而訪問(wèn)緩沖區(qū)B的地址則由解碼器提供,使得解碼器能從緩沖器B中 讀出已存的數(shù)據(jù)。當(dāng)向緩沖區(qū)A寫數(shù)據(jù)的操作完成后,同時(shí)從緩沖區(qū)B讀數(shù)據(jù)的操作也完 成后,控制信號(hào)C = 0。此時(shí)情況翻轉(zhuǎn),數(shù)據(jù)和地址緩沖器1、4、5、8關(guān)閉,而緩沖器2、3、6、 7打開,緩沖區(qū)A變?yōu)樽x出數(shù)據(jù)碼流,而緩沖區(qū)B變?yōu)榱藢懭霐?shù)據(jù)碼流。由于控制信號(hào)C的 不斷變化,兩塊SRAM的讀和寫操作功能交替循環(huán)發(fā)生變化。如圖2所示,所述的隨機(jī)存儲(chǔ)器為兩塊SRAM構(gòu)成的128bit的桶形碼流緩沖區(qū),本 實(shí)施例具體通過(guò)以下方式實(shí)現(xiàn)緩存的處理第一步、在地址生成器的作用下,SDRAM中的碼流寫入到對(duì)應(yīng)地址的緩沖區(qū)。當(dāng)?shù)?址指針PA達(dá)到周長(zhǎng)的一半時(shí),即緩沖區(qū)A寫滿時(shí),在控制信號(hào)C作用下,開始從緩沖區(qū)A中 讀出數(shù)據(jù),進(jìn)行解碼器計(jì)算。第二步、當(dāng)從緩沖區(qū)A中讀出數(shù)據(jù)同時(shí),在地址指針PB的作用下,SDRAM中的碼流 繼續(xù)緩沖區(qū)B寫數(shù)據(jù),當(dāng)緩沖區(qū)B中數(shù)據(jù)寫滿時(shí),在控制信號(hào)C作用下,繼續(xù)再?gòu)木彌_區(qū)B 中讀出數(shù)據(jù),進(jìn)行解碼器計(jì)算。緩沖區(qū)A清零。第三步、當(dāng)從緩沖區(qū)B中讀出數(shù)據(jù),做解碼計(jì)算同時(shí)。在地址指針PA作用下,SDRAM 中的碼流又寫入到緩沖區(qū)A中,當(dāng)緩沖區(qū)A寫滿后,在控制信號(hào)C作用下,繼續(xù)再?gòu)木彌_區(qū) A中讀出數(shù)據(jù),進(jìn)行解碼器計(jì)算。緩沖區(qū)B清零。假設(shè)PA是A緩沖區(qū)的地址指針,PB是B緩沖區(qū)的地址指針。當(dāng)SDRAM按地址指 針PA增加的方向,將數(shù)據(jù)碼流寫入A緩沖區(qū)時(shí),由于可以將對(duì)稱的桶形結(jié)構(gòu)想象為類似鐘 表盤面,所以同時(shí),解碼器也按地址指針PB增加的方向從B緩沖區(qū)讀出數(shù)據(jù),讀數(shù)據(jù)和寫數(shù) 據(jù)的操作在桶形緩沖區(qū)中可以分別同時(shí)進(jìn)行。當(dāng)指針PA到達(dá)圓周長(zhǎng)一半時(shí),表明A緩沖區(qū) 中數(shù)據(jù)已寫滿了 ;而與此同時(shí)指針PB也達(dá)到了圓周長(zhǎng)的另一半位置,表明B緩沖區(qū)的數(shù)據(jù)已經(jīng)讀完了。接下來(lái)的操作正好相反,解碼器從A緩沖區(qū)讀已經(jīng)寫入的數(shù)據(jù)碼流,而SDRAM向B緩沖區(qū)寫入新的數(shù)據(jù)碼流。當(dāng)?shù)刂分羔樤俅蔚竭_(dá)周長(zhǎng)的一半時(shí),讀數(shù)據(jù)和寫數(shù)據(jù)的操 作過(guò)程又發(fā)生交換,于是讀和寫的工作在桶形緩沖區(qū)中可以周期交替進(jìn)行。本實(shí)施例中所述的存儲(chǔ)器SRAM是普通的集成電路中的靜態(tài)存儲(chǔ)器,它的主要特 點(diǎn)是速度比SDRAM快,功耗低,容易與其它總線接口,不需要額外的電路。本實(shí)施例中所述的地址生成器是一種能夠產(chǎn)生與存儲(chǔ)器單元一一對(duì)應(yīng)關(guān)系的通用電路,是由異步計(jì)數(shù)器和譯碼邏輯電路等共同構(gòu)成。地址生成器在桶形緩沖區(qū)的作用是分別向SRAM發(fā)出讀和寫操作的發(fā)出同步信 號(hào),在本例設(shè)計(jì)中采用了觸發(fā)器構(gòu)成的異步計(jì)數(shù)器電路結(jié)構(gòu),當(dāng)每次輸入一個(gè)時(shí)鐘信號(hào),就 產(chǎn)生一個(gè)新地址,將其中的輸出的最高位作為控制信號(hào)C,而將其它的低位輸出作為地址, 實(shí)現(xiàn)桶形緩沖區(qū)的交替讀寫操作過(guò)程。
權(quán)利要求
一種H.264/AVC輸入碼流用解碼器,其特征在于,包括地址緩沖隔離控制電路、地址生成器、時(shí)鐘發(fā)生器、數(shù)據(jù)緩沖隔離控制電路以及隨機(jī)存儲(chǔ)器,其中地址生成器的輸入端與時(shí)鐘發(fā)生器相連接以接收時(shí)鐘信號(hào),地址生成器的輸出端分別與地址緩沖隔離控制電路以及數(shù)據(jù)緩沖隔離控制電路相連接以輸出控制信號(hào),地址生成器的地址端與地址緩沖隔離控制電路的地址端通過(guò)地址總線相連接,地址緩沖隔離控制電路的輸出端與臨時(shí)寄存器相連接以輸出地址信息,臨時(shí)寄存器與數(shù)據(jù)緩沖隔離控制電路相連接以傳輸碼流信息,所述的隨機(jī)存儲(chǔ)器由緩沖區(qū)A和緩沖區(qū)B構(gòu)成。
2.根據(jù)權(quán)利要求1所述的H.264/AVC輸入碼流用解碼器,其特征是,所述的隨機(jī)存儲(chǔ)器 為兩塊SRAM構(gòu)成的128bit的桶形碼流緩沖區(qū),該桶形碼流緩沖區(qū)是片外碼流從存儲(chǔ)器輸 入到片內(nèi)H. 264解碼器之間的接口電路。
3.根據(jù)權(quán)利要求1所述的H.264/AVC輸入碼流用解碼器,其特征是,所述的地址生成器 產(chǎn)生兩個(gè)環(huán)形變化的地址數(shù)據(jù)指針PA和地址數(shù)據(jù)指針PB并分別指向?qū)?yīng)的緩沖區(qū)A和緩 沖區(qū)B中的地址,循環(huán)時(shí)鐘的每一個(gè)周期內(nèi)當(dāng)?shù)刂窋?shù)據(jù)指針PA增加到周長(zhǎng)一半時(shí),地址數(shù) 據(jù)指針PB歸零,當(dāng)?shù)刂窋?shù)據(jù)指針PB增加到周長(zhǎng)一半時(shí),地址數(shù)據(jù)指針PA歸零。
4.根據(jù)權(quán)利要求1所述的H.264/AVC輸入碼流用解碼器,其特征是,所述的控制信號(hào)包 括對(duì)桶形緩沖區(qū)進(jìn)行讀操作信號(hào)和對(duì)桶形緩沖區(qū)進(jìn)行寫操作信號(hào)。
5.一種根據(jù)權(quán)利要求1所述的H. 264/AVC輸入碼流用解碼器的控制方法,其特征在于, 包括以下步驟第一步、在地址生成器的作用下,SDRAM中的碼流寫入到桶形碼流緩沖區(qū);當(dāng)?shù)刂贩秶?達(dá)到桶形碼流緩沖區(qū)的周長(zhǎng)的一半時(shí),即寫滿緩沖區(qū)A時(shí)啟動(dòng)數(shù)據(jù)緩沖隔離控制電路并從 緩沖區(qū)A中讀出數(shù)據(jù),開始解碼器計(jì)算;第二步、當(dāng)從緩沖區(qū)A中讀出數(shù)據(jù)完畢后,啟動(dòng)地址生成器并將SDRAM中的碼流繼續(xù)寫 入到緩沖區(qū)B ;當(dāng)緩沖區(qū)B中數(shù)據(jù)寫滿時(shí),啟動(dòng)數(shù)據(jù)緩沖隔離控制電路并繼續(xù)從緩沖區(qū)B中 讀出數(shù)據(jù)進(jìn)行解碼器計(jì)算,同時(shí)將緩沖區(qū)A清零;第三步、啟動(dòng)地址生成器并將SDRAM中的碼流寫入到緩沖區(qū)A中直至緩沖區(qū)A寫滿,然 后啟動(dòng)數(shù)據(jù)緩沖隔離控制電路并繼續(xù)從緩沖區(qū)A中讀出數(shù)據(jù)進(jìn)行解碼器計(jì)算,同時(shí)將緩沖 區(qū)B清零。
全文摘要
一種通信解碼技術(shù)領(lǐng)域的H.264/AVC輸入碼流用解碼器及其控制方法,包括地址緩沖隔離控制電路、地址生成器、時(shí)鐘發(fā)生器、數(shù)據(jù)緩沖隔離控制電路以及隨機(jī)存儲(chǔ)器。所述的隨機(jī)存儲(chǔ)器由緩沖區(qū)A和緩沖區(qū)B構(gòu)成。所述的地址生成器產(chǎn)生兩個(gè)環(huán)形變化的地址數(shù)據(jù)指針PA和地址數(shù)據(jù)指針PB并分別指向?qū)?yīng)的緩沖區(qū)A和緩沖區(qū)B中的地址,循環(huán)時(shí)鐘的每一個(gè)周期內(nèi)當(dāng)?shù)刂窋?shù)據(jù)指針PA增加到周長(zhǎng)一半時(shí),地址數(shù)據(jù)指針PB歸零,當(dāng)?shù)刂窋?shù)據(jù)指針PB增加到周長(zhǎng)一半時(shí),地址數(shù)據(jù)指針PA歸零。本發(fā)明實(shí)現(xiàn)輸入碼流和計(jì)算引擎的速度匹配,可以提高系統(tǒng)的性能。
文檔編號(hào)H04N7/50GK101848395SQ201010199489
公開日2010年9月29日 申請(qǐng)日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者劉文江, 劉濤, 戎蒙恬, 李斌, 王永棟 申請(qǐng)人:上海交通大學(xué)