專利名稱:用于上下文算術編解碼的運算單元的制作方法
技術領域:
本發(fā)明涉及視頻解碼系統(tǒng)領域,尤其是一種用于上下文算術編解碼的運算單元。
背景技術:
在視頻解碼系統(tǒng)中,包括用于上下文算術編解碼的運算單元也稱作CABAC編解碼 CABAC (Context-based Adaptive Binary Arithmetic Coding,白勺自iSiS胃
術編碼)是國際視頻編碼標準H. 264采用的一種熵編碼方案。CABAC有較高的壓縮效率,但是實現(xiàn)起來也較復雜。熵編碼器的功能是將每個宏塊(MB,micro block)中所有的語法元素的值按照一定的順序編碼到碼流中。一個語法元素在二進制化之后包含一個以上的二進制位,每一個二進制位稱為一個bin,CABAC對一個bin的解碼流程大致為1選擇上下文概率模型,讀取上下文變量pStateIdX(概率狀態(tài)索引)和 valMPS (大概率符號值)2根據上下文變量pMateldx把解碼區(qū)間codIRange劃分為兩個子區(qū)間小概率符號區(qū)間(用變量codIRangeLPS表示)和大概率符號區(qū)間(用變量codIRange表示)。3根據變量codIOffset (解碼偏移)的大小,輸出當前解碼bin (二進制位)的值, 如果codIOffset落在大概率符號區(qū)間中,則解碼區(qū)間更新為大概率符號區(qū)間,否則,解碼區(qū)間更新為小概率符號區(qū)間。4根據當前解碼bin的值來自適應的更新上下文變量pMateldx和valMPS的值。5 對 codIRange 禾口 codIOffset 進行重歸一化。當一個語法元素的所有bin解碼完畢,則將這些bin轉換成語法元素的值。以上僅是關于CABAC解碼的原理性描述,有關CABAC解碼的詳細過程可以參考 H. 264標準,此處不再贅述。一個CABAC解碼器的性能指標主要包含解碼速度和存儲器消耗量,一個高性能的 CABAC解碼器應該在消耗盡量少的存儲器的情況下獲得盡量高的解碼速度。限制CABAC解碼器性能提高的主要因素也就可以分成兩個方面,一方面是限制解碼速度提高的因素,一方面是限制存儲器消耗量降低的因素。限制解碼速度提高的主要因素是解碼的竄行性以及對存儲器的頻繁訪問,解碼的竄行性體現(xiàn)在當前bin的解碼依賴于先前已解碼bin的值并且解碼過程中用到的變量是逐次傳遞的,這給流水線的實現(xiàn)造成了困難,于是限制住了解碼器的解碼速度和吞吐量;對存儲器的頻繁訪問體現(xiàn)在對概率模型和相鄰信息的讀取。限制存儲器消耗量降低的主要因素在于存儲上下文概率模型和已解碼的相鄰宏塊信息。目前已經公開的硬件CABAC解碼器往往解碼速度不夠高,或者存儲器消耗量過大,也就是性能還有待于進一步優(yōu)化。
發(fā)明內容
為了克服已有視頻解碼系統(tǒng)的CABAC編解碼器的解碼速度較低、存儲器消耗量過大的不足,本發(fā)明提供一種解碼速度較快、降低存儲器消耗量的用于上下文算術編解碼的運算單元。本發(fā)明解決其技術問題所采用的技術方案是一種用于上下文算術編解碼的運算單元,所述運算單元包括所述CABAC解碼控制模塊,用于控制整個CABAC解碼;語法元素解碼控制模塊,用于控制各個語法元素的解碼,主要負責計算上下文概率模型的索引和判斷各個語法元素解碼的結束,并在語法元素解碼結束的時候根據解碼的 bin串得出語法元素的值,以及計算在一個語法元素的解碼過程中從碼流中讀入的bit數(shù);所述運算單元還包括概率模型緩存模塊,用于緩存當前解碼所需的概率模型;存儲器訪問控制模塊,用于控制對RAM的訪問,控制RAM和概率模型緩存模塊之間的數(shù)據交互,當概率模型緩存模塊中不含有當前解碼所需的概率模型時,對概率模型緩存模塊中的數(shù)據進行保存并對概率模型緩存模塊中的數(shù)據進行更新;解碼引擎模塊,用于進行算術解碼,并計算在一個bin的解碼過程中從碼流中讀入的bit數(shù)。進一步,所述解碼引擎模塊包括概率模型更新子模塊,用于根據解碼bin的值對相應的概率模型進行更新;解碼bin選擇子模塊,用于從四個解碼引擎的解碼bin輸出中選出有效的位,當前工作的解碼引擎的輸出bin即為有效的位;解碼引擎選擇子模塊,用于根據控制信號產生四個解碼引擎的使能信號;重歸一化子模塊,用于對解碼引擎狀態(tài)變量codIRange和codIOffset進行重歸一化;四個解碼引擎子模塊,用于進行算術解碼,包含一個常規(guī)解碼引擎、一個結束解碼引擎和兩個旁路解碼引擎,兩個旁路解碼引擎并行工作,在一個時鐘周期中解碼出兩個 bin。再進一步,所述概率模型緩存模塊包含16個7位的寄存器,所述16個寄存器作為
一組來進行管理。更進一步,所述語法元素解碼控制模塊包括一元解碼控制子模塊,用于控制采用一元二值化的語法元素的解碼,包括ref_ idx—10、ref—idx—11 禾口 mb—qp—delta ;截尾一元解碼控制子模塊,用于控制采用截尾一元二值化的語法元素的解碼,包括intra—chroma—pred—mode、coded—block—pattern、mvdlO/l
禾口 coeff—abs_level_ minusl ;指數(shù)哥倫布解碼控制子模塊,用于控制采用指數(shù)哥倫布二值化的語法元素的解碼,包括mvdl0/l
和 coeff_abs_level_minusl ;固定長度解碼控制子模塊,用于控制采用固定長度二值化的語法元素的解碼,包括rem—intra—4x4—pred—mode、coded—block—pattern 禾口 pre_intra—4x4—pred—mode ;宏塊類型解碼控制子模塊,用于控制語法元素mb_type的解碼;子宏塊類型解碼控制子模塊,用于控制語法元素SUb_mb_type的解碼;
5
宏塊略過標志解碼控制子模塊,用于控制語法元素mb_Skip_flag的解碼,并調用固定長度解碼控制子模塊;宏塊場解碼標志解碼控制子模塊,用于控制語法元素mb_field_deCOding_flag 的解碼,該并調用固定長度解碼控制子模塊;殘差解碼控制子模塊,用于控制和殘差相關的語法元素包括COded_blOCk_flag、 significant_coeff_flag、 last_significant_coeff_flag、 coeff—abs_level—minusl 禾口 coeff—sign_flag ;運動矢量解碼控制子模塊,用于控制語法元素mvd的解碼;編碼塊類型解碼控制子模塊,用于控制語法元素COded_blOCk_pattern的解碼。本發(fā)明的技術構思為采用緩存模塊保存當前解碼需要使用的一組概率模型,以減少對RAM(隨機訪問存儲器)的訪問次數(shù);采用兩個旁路解碼引擎,增強解碼的并行性。本發(fā)明的有益效果主要表現(xiàn)在用全硬件的方式實現(xiàn)了 CABAC解碼器,同時實現(xiàn)了兩個旁路解碼引擎,解碼速度較快,消耗的存儲器較少。
圖1是本發(fā)明提供的CABAC解碼器的結構框圖。圖2是本發(fā)明提供的CABAC解碼器中的CABAC解碼控制模塊的工作流程圖。圖3是本發(fā)明提供的CABAC解碼器中的語法元素解碼控制模塊的結構框圖。圖4是本發(fā)明提供的CABAC解碼器中的存儲器訪問控制模塊的工作流程圖。圖5是本發(fā)明提供的CABAC解碼器中的概率模型緩存模塊的結果框圖。圖6是本發(fā)明提供的CABAC解碼器中的解碼引擎模塊的結構框圖。圖7是存儲器訪問控制模塊的工作流程圖。圖8是概率模型緩存模塊的結構框圖。 圖9是解碼引擎模塊的結構框圖。
圖10是解碼引擎模塊的工作流程圖。 圖11是常規(guī)解碼的邏輯電路圖。 圖12是旁路解碼引擎核心的結構框圖。 圖13是實現(xiàn)旁路解碼的邏輯電路圖。 圖14是實現(xiàn)結束解碼的邏輯電路圖。
具體實施例方式
下面結合附圖對本發(fā)明作進一步描述。
參照圖1 圖14,一種用于上下文算術編解碼的運算單元(CABAC解碼器),所述解碼器包括五個模塊,分別是CABAC解碼控制模塊、語法元素解碼控制模塊、存儲器訪問控制模塊、概率模型緩存模塊和解碼引擎模塊。其中所述CABAC解碼控制模塊,用于控制整個CABAC解碼,由一個有限狀態(tài)機來實現(xiàn)。所述語法元素解碼控制模塊,用于控制各個語法元素的解碼,主要負責計算上下文概率模型的索引和判斷各個語法元素解碼的結束,并在語法元素解碼結束的時候根據解碼的bin串得出語法元素的值。該模塊的另一個作用是計算在一個語法元素的解碼過程中從碼流中讀入的bit (碼流中的一個二進制位)數(shù)。所述存儲器訪問控制模塊,用于控制對RAM的訪問,該模塊是RAM和概率模型緩存模塊之間的橋梁,當概率模型緩存模塊中不含有當前解碼所需的概率模型時,該模塊負責對概率模型緩存模塊中的數(shù)據進行保存并對概率模型緩存模塊中的數(shù)據進行更新。所述概率模型緩存模塊,用于緩存當前解碼所需的概率模型,以減少對RAM的訪問次數(shù),提高解碼速度。所述解碼引擎模塊,用于進行算術解碼,該模塊的另一個作用是計算在一個bin 的解碼過程中從碼流中讀入的bit數(shù)。所述概率模型緩存模塊包含16個7位的寄存器,這16個寄存器作為一組來進行管理。所述解碼引擎模塊包含八個模塊,分別是概率模型更新子模塊、解碼bin選擇子模塊、解碼引擎選擇子模塊、重歸一化子模塊和四個解碼引擎子模塊。其中概率模型更新子模塊,用于根據解碼bin的值對相應的概率模型進行更新。解碼bin選擇子模塊,用于從四個解碼引擎的解碼bin輸出中選出有效的位,當前工作的解碼引擎的輸出bin即為有效的位。解碼引擎選擇子模塊,用于根據控制信號產生四個解碼引擎的使能信號。重歸一化子模塊,用于對解碼引擎狀態(tài)變量codIRange和codIOffset進行重歸一化。四個解碼引擎子模塊,用于進行算術解碼,這四個解碼引擎包含一個常規(guī)解碼引擎、一個結束解碼引擎和兩個旁路解碼引擎。兩個旁路解碼引擎在一定的條件下并行工作, 同時解碼出兩個bin,提高解碼速度。所述語法元素解碼控制模塊包含十一個模塊,分別是一元解碼控制子模塊、截尾一元解碼控制子模塊、指數(shù)哥倫布解碼控制子模塊、固定長度解碼控制子模塊、宏塊類型解碼控制子模塊、子宏塊類型解碼控制子模塊、宏塊掠過標志解碼控制子模塊、宏塊場解碼標志解碼控制子模塊、殘差解碼控制子模塊、運動矢量解碼控制子模塊和編碼塊類型解碼控制子模塊。這十一個子模塊分別控制相應的一些語法元素的解碼,它們都是通過有限狀態(tài)機來實現(xiàn)。其中一元解碼控制子模塊,用于控制采用一元二值化的語法元素的解碼,包括ref_ idx_10(前向參考索引)、ref_idx_ll(后向參考索引)和mb_qp_delta(宏塊量化參數(shù)增
量)O截尾一元解碼控制子模塊,用于控制采用截尾一元二值化的語法元素的解碼,包括intra_chroma_pred_mode (中貞內色度預測模式)、coded_block_pattern (編碼塊模式的后綴)、mvdl0/l
(運動矢量差值的前綴)和c0eff_abS_level_minuSl (系數(shù)絕對值減一的前綴)。指數(shù)哥倫布解碼控制子模塊,用于控制采用指數(shù)哥倫布二值化的語法元素的解碼,包括mvdl0/l
(運動矢量差值的后綴)和c0eff_abS_level_minuSl (系數(shù)絕對值減一的后綴)。固定長度解碼控制子模塊,用于控制采用固定長度二值化的語法元素的解碼,包括:rem_intra_4x4_pred_mode (推薦的幀內 4x4 分塊預測模式)、coded_block_
7pattern (編碼塊模式的前綴)和pre_intra_4x4_pred_mode (前一個幀內4x4分塊預測模式)O宏塊類型解碼控制子模塊,用于控制語法元素mb_type (宏塊類型)的解碼。子宏塊類型解碼控制子模塊,用于控制語法元素SUb_mb_type (子宏塊類型)的解碼。宏塊略過標志解碼控制子模塊,用于控制語法元素mb_Skip_flag (宏塊略過標志)的解碼,該模塊在滿足一定的條件時調用固定長度解碼控制子模塊。 宏塊場解碼標志解碼控制子模塊,用于控制語法元素mb_field_deCOding_ flag(宏塊場解碼標志)的解碼,該模塊在滿足一定的條件時調用固定長度解碼控制子模塊。殘差解碼控制子模塊,用于控制和殘差相關的語法元素包括COded_blOCk_ flag(編碼塊標志)、significant_coeff_flag(有效系數(shù)標志)、last_significant_ coeff_flag (最后有效系數(shù)標志)、coeff_abs_level_minusl (系數(shù)絕對值減一)和coeff_ Sign_flag(系數(shù)符號標志)。運動矢量解碼控制子模塊,用于控制語法元素mvd(運動矢量差值)的解碼。編碼塊類型解碼控制子模塊,用于控制語法元素COded_blOCk_pattern (編碼塊模式)的解碼。圖1示出了本發(fā)明提供的CABAC解碼器的整體結構,描述了各個模塊之間的連接關系和信息傳遞關系。其中的CABAC解碼控制模塊用于控制整個CABAC解碼,由一個狀態(tài)機實現(xiàn)(稱為 CABAC解碼控制狀態(tài)機)。該模塊受視頻解碼系統(tǒng)的控制信息控制,當開始解碼宏塊層的語法元素時,如果視頻的熵編碼方式是CABAC,則視頻解碼系統(tǒng)在此時會給出CABAC解碼的使能信號,當CABAC解碼控制模塊收到使能信號,整個CABAC解碼器就開始工作了。該模塊的工作流程如圖3所示步驟一狀態(tài)機開始處于空閑狀態(tài),解碼開始后,首先檢查是否需要對上下文概率模型以及解碼引擎進行初始化,如果需要進行初始化,則進行步驟二,否則進行步驟三。步驟二 該步驟狀態(tài)機處于初始化狀態(tài)。當一個slice (條帶)解碼完畢(即語法元素end_0f_Slice_flag(條帶結束標志)的解碼值為1)就對上下文概率模型和解碼引擎進行初始化;當一個I_PCM(幀內立即刷新)宏塊解碼完畢(即語法元素mb_type(宏塊類型)的解碼值為I_PCM)就對解碼引擎進行初始化,初始化完畢之后狀態(tài)機回到空閑狀態(tài)。步驟三該步驟狀態(tài)機處于解碼狀態(tài)。對一個語法元素進行解碼。一個語法元素解碼完畢之后,狀態(tài)機回到空閑狀態(tài)。CABAC解碼控制狀態(tài)機為CABAC解碼器的頂層控制狀態(tài)機,在該狀態(tài)機的各個狀態(tài)會觸發(fā)其他模塊的子狀態(tài)機工作。 當CABAC解碼控制狀態(tài)機處于初始化狀態(tài)時,可能對存儲概率模型的RAM和解碼引擎中的一個或者兩個進行初始化。當對存儲概率模型的RAM進行初始化時,需要使用存儲在ROM (只讀存儲器)中的兩個變量m和n,以及變量qp (量化參數(shù))的值來進行計算而得出每個概率模型的具體數(shù)值。當對解碼引擎進行初始化時,則將表示解碼引擎狀態(tài)的兩個變量codIRange和codIOffset分別初始化為OxlFE和read_bits (9)(表示從碼流中讀入9個比特)。當CABAC解碼控制狀態(tài)機處于解碼狀態(tài)時,CABAC解碼控制模塊就會給出語法元素解碼控制模塊的使能信號。使能信號有效之后,語法元素解碼控制模塊就開始工作了,其工作流程如圖5所示步驟一狀態(tài)機首先處于空閑狀態(tài),解碼開始后,將變量bin_idX( 二進制位索引) 設置為0,然后進行步驟二。步驟二 進行算術解碼。如果語法元素的解碼沒有結束,則進行步驟三,否則進行步驟四。步驟三將變量binjdx增加1,然后進行步驟二。步驟四對解碼bin串進行反二進制化,然后狀態(tài)機回到空閑狀態(tài)。在步驟二中,根據解碼的語法元素的不同,會調用語法元素解碼控制模塊中的一個或幾個子模塊來控制語法元素的解碼。如果語法元素為ref_idX_10、ref_idX_ll或者 mb_qp_delta,則會調用一元解碼控制模塊。如果語法元素為intra_Chr0ma_pred_m0de、 coded_block_pattern(后綴)、mvdlO/1
(前綴)或者 coeff_abs_level_minusl (前綴),則會調用截尾一元解碼控制模塊。如果語法元素為mvdlO/1
(后綴)或者 coeff_abs_level_minusl (后綴),則會調用指數(shù)哥倫布解碼控制模塊。如果語法元素為 rem_intra_4x4_pred_mode、coded_block_pattern (前綴)、coded_block_flag 或者 pre_ intra_4x4_pred_mode,則會調用固定長度解碼控制模塊。如果語法元素為mb_type,則會調用宏塊類型解碼控制模塊。如果語法元素為sUb_mb_type,則會調用子宏塊類型解碼控制模塊。如果語法元素為mb_Skip_flag,則會調用宏塊略過標志解碼控制模塊。如果語法元素為mb_field_deC0ding_flag,則會調用宏塊場解碼標志解碼控制模塊。有一些語法元素是由前綴和后綴級聯(lián)而成,包括COded_blOCk_pattern、 mvdl0/l
和c0eff_abS_level_minuSl,在解碼這幾個語法元素時,首先會調用這幾個語法元素對應的解碼控制模塊,這些解碼控制模塊會在解碼前綴和后綴時分別調用對應的解碼控制模塊。和殘差相關的語法元素,包括coded_block_flag、significant_coeff_flag、 last_significant_coeff_flag> coeff_abs_level_minusl 禾口 coefT_sign_flag,它們是緊密相關的一組語法元素,于是由一個殘差解碼控制模塊在整體上來對它們的解碼進行控制,該模塊的工作流程如圖6所示步驟一狀態(tài)機首先處于空閑狀態(tài),當使能信號、概率模型有效標志和碼流有效標志三個信號都有效之后,就開始解碼語法元素c0ded_bl0ck_flag。如果語法元素coded_ block_flag的值為1,則進行步驟二,否則狀態(tài)機回到空閑狀態(tài)。步驟二 解碼語法元素 significant_coeff_flag 禾口 last_significant_coeff_ flag,當這兩個語法元素解碼完畢,進行步驟三。步驟三解碼語法元素coeff_abs_level_mimusl 和 coeff_sign_flag,當這兩個語法元素解碼完畢,狀態(tài)機回到空閑狀態(tài)。在每個步驟中,殘差解碼控制模塊會調用該步驟解碼的語法元素相對應的解碼控制模塊來控制解碼。語法元素解碼控制模塊除了用于控制各個語法元素的解碼,提供解碼控制信號之外,還要負責計算上下文概率模型的索引,這需要根據相鄰已解碼的宏塊信息,或者是當前解碼的語法元素的已解碼bin的值來確定具體的概率模型的索引。并且,概率模型的索引和概率模型在RAM中的存儲形式有關,這會在對存儲器訪問控制模塊進行詳細介紹的時候進一步說明。語法元素解碼控制模塊的另一個作用是計算在一個語法元素的解碼過程中從碼流中讀入的bit (碼流中的一個二進制位)數(shù),這通過累加解碼引擎?zhèn)鬟f過來的bit_ num(在一個bin的解碼過程中從碼流中讀入的比特數(shù))來實現(xiàn)。存儲器訪問控制模塊用于控制對RAM的訪問,該模塊是RAM和概率模型緩存模塊之間的橋梁,當概率模型緩存模塊中不含有當前解碼所需的概率模型時,該模塊負責對概率模型緩存模塊中的數(shù)據進行保存并對概率模型緩存模塊中的數(shù)據進行更新。該模塊設計的好壞對整個CABAC解碼器的解碼速度影響很大。只有通過高效的存儲器管理,才能使解碼過程盡量少的被讀寫RAM所打斷。為了實現(xiàn)這個目的,本發(fā)明提供的存儲器訪問模塊對需要使用到的395個概率模型進行了優(yōu)化的分類,分類的基本原則為在解碼順序上相鄰的語法元素需要使用的概率模型歸入同一組,同一個語法元素需要使用的概率模型歸入同一組。一組概率模型包含的概率模型個數(shù)也需要綜合考慮兩個因素來選取,一組概率模型包含的概率模型個數(shù)越多,則對MM的讀寫概率越小,有利于提高解碼速度;一組概率模型包含的概率模型個數(shù)越少,則對概率模型緩存模塊的一次讀寫所消耗的時間越少,有利于提高解碼速度。所以這兩個因素是矛盾的,需要折中考慮。本發(fā)明中一組概率模型包含的概率模型個數(shù)的最大值取16,概率模型的分組如表1所示
權利要求
1.一種用于上下文算術編解碼的運算單元,所述運算單元包括 CABAC解碼控制模塊,用于控制整個CABAC解碼;語法元素解碼控制模塊,用于控制各個語法元素的解碼,主要負責計算上下文概率模型的索引和判斷各個語法元素解碼的結束,并在語法元素解碼結束的時候根據解碼的bin 串得出語法元素的值,以及計算在一個語法元素的解碼過程中從碼流中讀入的bit數(shù); 其特征在于所述運算單元還包括 概率模型緩存模塊,用于緩存當前解碼所需的概率模型;存儲器訪問控制模塊,用于控制對RAM的訪問,控制RAM和概率模型緩存模塊之間的數(shù)據交互,當概率模型緩存模塊中不含有當前解碼所需的概率模型時,對概率模型緩存模塊中的數(shù)據進行保存并對概率模型緩存模塊中的數(shù)據進行更新;解碼引擎模塊,用于進行算術解碼,并計算在一個bin的解碼過程中從碼流中讀入的 bit 數(shù)。
2.如權利要求1所述的用于上下文算術編解碼的運算單元,其特征在于所述解碼引擎模塊包括概率模型更新子模塊,用于根據解碼bin的值對相應的概率模型進行更新; 解碼bin選擇子模塊,用于從四個解碼引擎的解碼bin輸出中選出有效的位,當前工作的解碼引擎的輸出bin即為有效的位;解碼引擎選擇子模塊,用于根據控制信號產生四個解碼引擎的使能信號; 重歸一化子模塊,用于對解碼引擎狀態(tài)變量codIRange和codIOffset進行重歸一化; 四個解碼引擎子模塊,用于進行算術解碼,包含一個常規(guī)解碼引擎、一個結束解碼引擎和兩個旁路解碼引擎,兩個旁路解碼引擎并行工作,在一個時鐘周期中解碼出兩個bin。
3.如權利要求1或2所述的用于上下文算術編解碼的運算單元,其特征在于所述概率模型緩存模塊包含16個7位的寄存器,所述16個寄存器作為一組來進行管理。
4.如權利要求1或2所述的用于上下文算術編解碼的運算單元,其特征在于所述語法元素解碼控制模塊包括一元解碼控制子模塊,用于控制采用一元二值化的語法元素的解碼,包括ref_idx_ 10、ref—idx_ll 禾口 mb—qp—delta ;截尾一元解碼控制子模塊,用于控制采用截尾一元二值化的語法元素的解碼,包括 intra—chroma—pred—mode、coded—block—pattern、mvdlO/1
禾口 coeff_abs_level_ minusl ;指數(shù)哥倫布解碼控制子模塊,用于控制采用指數(shù)哥倫布二值化的語法元素的解碼,包括mvdl0/l
和 coeff_abs_level_minusl ;固定長度解碼控制子模塊,用于控制采用固定長度二值化的語法元素的解碼,包括 rem—intra—4x4—pred—mode、coded—block—pattern 禾口 pre_intra—4x4—pred—mode ; 宏塊類型解碼控制子模塊,用于控制語法元素mb_type的解碼; 子宏塊類型解碼控制子模塊,用于控制語法元素sub_mb_type的解碼; 宏塊略過標志解碼控制子模塊,用于控制語法元素mb_Skip_flag的解碼,并調用固定長度解碼控制子模塊;宏塊場解碼標志解碼控制子模塊,用于控制語法元素mb_field_deC0ding_flag的解碼,該并調用固定長度解碼控制子模塊;殘差解碼控制子模塊,用于控制和殘差相關的語法元素包括COded_blOCk_flag、 significant_coeff_flag> last_significant_coeff_flag> coeff_abs_level_minusl 禾口 coeff_sign_flag ;運動矢量解碼控制子模塊,用于控制語法元素mvd的解碼;編碼塊類型解碼控制子模塊,用于控制語法元素c0ded_bl0Ck_pattern的解碼。
全文摘要
一種用于上下文算術編解碼的運算單元,包括CABAC解碼控制模塊,用于控制整個CABAC解碼;語法元素解碼控制模塊,用于控制各個語法元素的解碼;概率模型緩存模塊,用于緩存當前解碼所需的概率模型;存儲器訪問控制模塊,用于控制對RAM的訪問,控制RAM和概率模型緩存模塊之間的數(shù)據交互,當概率模型緩存模塊中不含有當前解碼所需的概率模型時,對概率模型緩存模塊中的數(shù)據進行保存并對概率模型緩存模塊中的數(shù)據進行更新;解碼引擎模塊,用于進行算術解碼,并計算在一個bin的解碼過程中從碼流中讀入的bit數(shù)。本發(fā)明解碼速度較快、降低存儲器消耗量。
文檔編號H04N7/26GK102231830SQ20101055524
公開日2011年11月2日 申請日期2010年11月23日 優(yōu)先權日2010年11月23日
發(fā)明者嚴曉浪, 朱朋, 葛海通, 黃凱 申請人:浙江大學