專利名稱:一種cabac硬件加速方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編碼領(lǐng)域,特別是一種CABAC硬件加速算法。
背景技術(shù):
H. 264/AVC作為ITU和MPEG聯(lián)合開發(fā)的最新視頻標(biāo)準(zhǔn),比傳統(tǒng)的視頻標(biāo)準(zhǔn)獲得了 很大的提高,引入了很多先進(jìn)技術(shù)。基于上下文自適應(yīng)的二進(jìn)制算術(shù)熵編碼(簡稱CABAC, 以下出現(xiàn)都簡寫為CABAC)就是其中之一。CABAC在取得了以往各個(gè)熵編碼都達(dá)不到的高效 的同時(shí),也帶來了運(yùn)算上的復(fù)雜。根據(jù)H.264/AVC標(biāo)準(zhǔn)中的JM7.3,CABAC消耗了解碼中的 10 %的時(shí)間,而對(duì)此并未有優(yōu)化技術(shù)提出。
發(fā)明內(nèi)容
在H. ^4/AVC標(biāo)準(zhǔn)中對(duì)CABAC定義了 3個(gè)變量和5個(gè)表。3個(gè)變量為codlOffset、 codlRange、MPS(最可能符號(hào))。5 個(gè)表為 context 表、initial 表、qCodlRangeldx 表、 transIdxLPS 表禾口 transIdxMPS 表。在一個(gè)片組開始處,CABAC解碼器從initial表創(chuàng)建context表,然后通過比特流 中的前兩個(gè)字節(jié)初始化codlOffset和codlRange,之后進(jìn)入宏塊級(jí)解碼。在宏塊層,CABAC 解碼器首先確定哪個(gè)SE (語法元素,以下出現(xiàn)都簡寫為SE)被解碼,然后根據(jù)上面、左面和 當(dāng)前的宏塊計(jì)算上下文,最后進(jìn)入3階段的解碼過程正常解碼過程、旁路解碼過程、最終 解碼過程。本CABAC硬件加速算法就是以減少CABAC解碼的耗時(shí),提升CABAC性能為目的的。本發(fā)明的目的是通過以下步驟實(shí)現(xiàn)1、完成硬件框架設(shè)計(jì),包括8個(gè)邏輯塊和4個(gè)存儲(chǔ)塊。Initial表存儲(chǔ)塊完成 對(duì)initial表的存儲(chǔ),context表創(chuàng)建邏輯塊完成context表的創(chuàng)建,使用組合電路完成 transIdxLPS表邏輯塊和qCodlRangeldx表邏輯塊的搭建,CABAC數(shù)據(jù)通道邏輯塊將在 CABAC有限狀態(tài)機(jī)邏輯塊的控制下完成解碼過程,鄰近語法元素查找邏輯塊從宏塊存儲(chǔ)塊 中取得左邊和上邊的語法元素。2、描述硬件存儲(chǔ)管理為針對(duì)框架設(shè)計(jì)中的4個(gè)存儲(chǔ)塊,Initial表存儲(chǔ)塊使用只 讀存儲(chǔ)器ROM構(gòu)成;2個(gè)系數(shù)存儲(chǔ)塊可以在其中一個(gè)由CABAC解碼器寫操作的時(shí)候,對(duì)另一 個(gè)進(jìn)行反DCT變換器的讀取操作;宏塊存儲(chǔ)塊由雙口 SRAM構(gòu)成。3、完成解碼過程級(jí)的有限狀態(tài)機(jī)。其中正常解碼過程包括正常解碼狀態(tài)和恢復(fù)正 常解碼狀態(tài);最終解碼過程包括最終解碼狀態(tài)和恢復(fù)正常解碼狀態(tài);旁路解碼過程包括讀 取比特狀態(tài)和旁路解碼狀態(tài)。4、完成語法元素級(jí)的有限狀態(tài)機(jī)。各語法元素應(yīng)用如下表1 :
權(quán)利要求
1.一種CABAC硬件加速算法,其特征在于,包括如下部分1)硬件框架設(shè)計(jì)。2)硬件存儲(chǔ)管理設(shè)計(jì)。3)解碼過程級(jí)的有限狀態(tài)機(jī)設(shè)計(jì)。4)語法元素級(jí)的有限狀態(tài)機(jī)設(shè)計(jì)。
2.如權(quán)利要求1所述的CABAC硬件加速算法,其特征在于所述步驟1)中硬件框架設(shè) 計(jì),描述為硬件框架包括8個(gè)邏輯塊和4個(gè)存儲(chǔ)塊。Initial表存儲(chǔ)塊完成對(duì)initial表的存儲(chǔ), context表創(chuàng)建邏輯塊完成context表的創(chuàng)建,使用組合電路完成transIdxLPS表邏輯塊 和qCodlRangeldx表邏輯塊的搭建,CABAC數(shù)據(jù)通道邏輯塊將在CABAC有限狀態(tài)機(jī)邏輯塊 的控制下完成解碼過程,鄰近語法元素查找邏輯塊從宏塊存儲(chǔ)塊中取得左邊和上邊的語法 元素。
3.如權(quán)利要求1所述的CABAC硬件加速算法,其特征在于所述步驟幻中硬件存儲(chǔ)管理 設(shè)計(jì),描述為針對(duì)框架設(shè)計(jì)中的4個(gè)存儲(chǔ)塊,Initial表存儲(chǔ)塊使用只讀存儲(chǔ)器ROM構(gòu)成;2個(gè)系數(shù) 存儲(chǔ)塊可以在其中一個(gè)由CABAC解碼器寫操作的時(shí)候,對(duì)另一個(gè)進(jìn)行反DCT變換器的讀取 操作;宏塊存儲(chǔ)塊由雙口 SRAM構(gòu)成。
4.如權(quán)利要求1所述的CABAC硬件加速算法,其特征在于所述步驟幻中解碼過程級(jí)的 有限狀態(tài)機(jī)設(shè)計(jì),描述為其中正常解碼過程包括正常解碼狀態(tài)和恢復(fù)正常解碼狀態(tài);最終解碼過程包括最終解 碼狀態(tài)和恢復(fù)正常解碼狀態(tài);旁路解碼過程包括讀取比特狀態(tài)和旁路解碼狀態(tài)。
5.如權(quán)利要求1所述的CABAC硬件加速算法,其特征在于所述步驟1)中語法元素級(jí)的 有限狀態(tài)機(jī)設(shè)計(jì),具體設(shè)計(jì)描述見圖5,語法元素描述見表1 表1。
全文摘要
一種CABAC硬件加速算法,本算法以減少CABAC解碼的耗時(shí),提升CABAC性能為目的。經(jīng)大量測試后,解碼一個(gè)I幀片組宏塊平均用1661個(gè)時(shí)鐘周期,解碼一個(gè)B幀片組宏塊平均用328個(gè)時(shí)鐘周期,解碼一個(gè)P幀片組宏塊平均用576個(gè)時(shí)鐘周期。本算法可以滿足CIF視頻30fps的實(shí)時(shí)解碼要求。
文檔編號(hào)H04N7/26GK102148968SQ20101010604
公開日2011年8月10日 申請日期2010年2月4日 優(yōu)先權(quán)日2010年2月4日
發(fā)明者楊華嵐 申請人:成都市世嘉電子實(shí)業(yè)有限公司