本發明專利技術屬于數字高清視頻壓縮編解碼技術領域,具體為一種適用于HEVC標準的二進制算術編碼模塊。本發明專利技術設計的二進制算術編碼模塊分為4級流水線,其中,第一級根據待編碼字符bin的狀態索引查表得到RangeLPS和shift候選值;第二級用于更新Range值;第三級用于更新low值;最后一級用于將low值不在變化的比特位移出打包作為輸出;本發明專利技術采用每個時鐘周期處理4個編碼字符的編碼方式,并對二進制算術編碼中的Regular模式,Bypass模式,Terminal模式分開處理,極大的提高了系統的吞吐率。
【技術實現步驟摘要】
本專利技術屬于數字高清視頻壓縮編解碼
,針對HEVC視頻編解碼標準,具體涉及一種適用于HEVC視頻編碼標準的、二進制算術編碼模塊。
技術介紹
作為下一代視頻編解碼標準,HEVC(High Efficiency Video Coding)是于 2013年由國際電信組織(ITU)和運動圖像專家組(MPEG)聯合成立的組織JCTVC所提出。其目標是,與上一代標準H.264/AVC相比,在相同的視覺效果的前提下,比特率減少50%。上一代視頻編解碼標準H.264/AVC采用了兩種編碼方式:基于上下文的可變長編碼CAVLC和基于上下文的二進制算術編碼CABAC。而在HEVC標準的軟件模型HM前期版本中也是采用了這兩種編碼方式,只是在編碼過程,編碼語法元素上做了修改。但是大量測試發現,在相同的編碼內容上,CABAC比CAVLC節省了 8%~14%碼流,因此在HM6.0以后HEVC只保留了 CABAC —種編碼方式而不再支持CAVLC編碼。在HEVC中米用的二進制算術編碼模塊是基于傳統的算術編碼改進而來。該編碼方式有以下特點: (1)無損編碼方式,適用于圖像壓縮處理; (2)被編碼信息數據的符號序列表示成實數O和I之間的一個小數,無論信息有多長,其輸出僅僅是一個數,而且是一個介于O和I之間的二進制小數; (3)在編碼過程中需要不斷計算被編碼字符的概率。算術編碼過程可總結如下: (1)編碼器在開始時將“當前間隔”設置為; (2)對每一個編碼字符編碼器在當前間隔進行如下遞歸處理: Ca)將“當前間隔”按照各個編碼字符的概率進行分割; (b)選中當前待編碼字符編碼器的分割區間為“當前間隔”,并回到(a)繼續編碼; (3)最后輸出的“當前間隔”的下邊界就是給定編碼序列的算術編碼。在硬件當中,整數計算比浮點數計算簡單方便,而且在計算編碼字符的概率當中除法也需要消耗較大的資源,因此HEVC中采用的二進制算術編碼對傳統的算術編碼進行了以下改進: (1)編碼器在開始時將“當前間隔”改為; (2)對當前的待編碼字符概率計算由傳統的除法運算改為查表計算,并設置了有64個狀態的狀態表,通過當前待編碼字符在狀態表中的索引查表計算概率; (3)HEVC建立399個上下文概率模型,不同的語法元素,同一個語法元素二進制序列的不同位對應不同的上下文概率模型,通過概率模型查表可得到相應的狀態表索引。
技術實現思路
本專利技術的目的在于設計一種工作頻率高、吞吐率高的適用于HEVC標準的二進制算術編碼模塊。本專利技術設計的二進制算術編碼模塊,如圖1所示,分為4級流水線,其中,第一級根據待編碼字符bin的狀態索引查表,得到4個RangeLPS候選值以及相應的4個移位shift候選值;第二級用于更新Range值;第三級用于更新low值;最后一級用于將low值不在變化的比特位移出,打包作為輸出。每一級流水線具體計算如下: 第一級計算RangeLPS。為了折中由乘法帶來的計算復雜度,CABAC將所有的RangeLPS可能取值保存到一個64x4的表格內,而每個待編碼字符bin的RangeLPS值需要根據其狀態索引PState和當前Range值通過查找表格得到。因為第2、第3、第4個帶編碼字符bin的Range值在第一級流水線還不能計算出,所以不能確定具體的RangeLPS,為了不影響后續流水線的操作,這里只通過PState變量將4個RangeLPS全部取出,在第二級流水線Range值確定時再確定具體的RangeLPS的值。第二級計算劃分區間Range,Range的計算公式由當前待編碼字符bin和MPS來決定,當bin不等于MPS時則取概率區間RangeLPS。在編碼過程中當Low的值過于小時,會對其進行修正操作,保證二進制計算過程正確進行,為了保證Range和Low值能--對應,對Range也要進行同樣的計算操作,以保證計算過程在合理的區間范圍內。如果將修正過程放到最后,就不能實現算術編碼的四級流水,所以該設計中將修正過程前置,在更新Range的過程中完成Range修正重置計算,同時修正過程中用到的移位shift值由第一級查表得到。第三級計算劃分區間下限Low值,同Range的計算過程類似,Low值的計算也是由bin和MPS來決定,并且在計算Low值的過程中還要完成修正的操作過程,經過逐步的移位操作,當計算達到一定程度時,Low值的高位數字不再變化,這時可以將它的高位輸出到最終的bit流中去。第四級將Low的更新過程中移位出來的bit進行打包,形成最終的碼流。二進制算術編碼模塊每個周期處理4個待編碼字符bin ;每個bin的輸入包括其狀態索引PState,當前小概率字符LPS以及當前bin的模式MODE,如圖2所示。二進制算術編碼中有四種編碼模式:regular模式,bypass模式,mult1-bypass模式和terminal模式,本專利技術將bypass模式,mult1-bypass模式合為一種模式mbypasss,并在每級流水線中將mbypass,regular和terminal模式分開處理,減小關鍵路徑長度。【附圖說明】圖1:4級編碼流水結構。圖2:單個bin的算術編碼流水結構。【具體實施方式】下面結合附圖,對本專利技術做進一步的描述。首先結合附圖1,介紹4個輸入之間的數據依賴性。在二進制算術編碼模塊設計中,每個時鐘周期處理4個待編碼字符bin,如圖1所示。每個bin的輸入包括其狀態索引PState,當前小概率字符LPS以及當前bin的模式MODE,如圖2所示。在第一級流水線中,根據輸入PState值會對表格Range Table和Shift Table進行查表,分別得到4個RangeLPS和Shift候選值。在本級中所用到數據只依賴于輸入,各個bin之間無數據依賴性,因此4個bin的第一級是完全并行的。在第二級流水線中,4個bin都要更新Range,并且要用到前一個bin的更新后的Range值,因此4個bin之間存在嚴重數據依賴性:只有前一個bin的Range計算完成之后才能更新當前bin的Range值。第三級同第二級流水線相同,4個bin都要更新Low,并且要要用到前一個bin的更新后的Low值,因此4個bin之間存在嚴重數據依賴性:只有前一個bin的Low計算完成之后才能更新當前bin的Low值。4個輸入bin的第四級流水線是合在一起計算完成bit pack的,沒有數據依賴性。然后結合附圖2,介紹每個輸入bin的計算過程。在第一級流水線中,根據編碼字符bin的狀態索引PState對表格Range Table和Shift Table進行查表,分別得到4個RangeLPS和Shift候選值;并對這些候選值,輸入的小概率字符LPS以及當前bin的模式MODE用寄存器保存下來,進入第二級流水線。在第二級流水線中,首先用前一個bin的Range值作為4_1選擇器的輸入從4個RangeLPS和Shift候選值中選出正確的RangeLPS和Shift值,然后根據這兩個值以及前一bin個Range值分別算出Regular模式,Mbypass模式,Terminal模式以及Invalid模式下的當前bin的Range值,圖中Inva本文檔來自技高網...
【技術保護點】
一種適用于HEVC標準的二進制算術編碼模塊,其特征在于:所述二進制算術編碼模塊分為4級流水線,其中,第一級根據待編碼字符bin的狀態索引查表得到RangeLPS和shift候選值;第二級用于更新Range值;第三級用于更新low值;最后一級用于將low值不在變化的比特位移出打包作為輸出;二進制算術編碼模塊每個周期處理4個待編碼字符bin;每個bin的輸入包括其狀態索引PState,當前小概率字符LPS以及當前bin的編碼模式MODE;二進制算術編碼中有四種編碼模式:Regular模式,Bypass模式,Multi?bypass模式和Terminal模式,其中Bypass模式和Multi?bypass模式合為一種模式Mbypasss,并在每級流水線中將Mbypass、Regular和Terminal模式分開處理,以減小關鍵路徑長度。
【技術特征摘要】
【專利技術屬性】
技術研發人員:范益波,程魏,郭勇,黃磊磊,金怡澤,曾曉洋,
申請(專利權)人:復旦大學,
類型:發明
國別省市:上海;31
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。