TWI487295B - 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法 - Google Patents

高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法 Download PDF

Info

Publication number
TWI487295B
TWI487295B TW101107238A TW101107238A TWI487295B TW I487295 B TWI487295 B TW I487295B TW 101107238 A TW101107238 A TW 101107238A TW 101107238 A TW101107238 A TW 101107238A TW I487295 B TWI487295 B TW I487295B
Authority
TW
Taiwan
Prior art keywords
value
bit
mps
decoding
range
Prior art date
Application number
TW101107238A
Other languages
English (en)
Other versions
TW201249113A (en
Inventor
Gwo Giun Lee
He Yuan Lin
jia wei Liang
Ching Jui Hsiao
Original Assignee
Univ Nat Cheng Kung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Cheng Kung filed Critical Univ Nat Cheng Kung
Publication of TW201249113A publication Critical patent/TW201249113A/zh
Application granted granted Critical
Publication of TWI487295B publication Critical patent/TWI487295B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)

Description

高產出平行化AVC/H.264前後文適應性二位元算數解 碼器之方法
本發明涉及高產出平行化AVC/H.264前後文適應性二位元算數解碼器(CABAC decoder)之方法,尤指一種具有一步驟:「估測一對應於一發生機率最高之符號(most probable symbol,MPS)之路徑和事先解碼出該路徑所包含的一第一二位元;」之高產出平行化AVC/H.264前後文適應性二位元算數解碼器之方法。
前後文適應性二位元算數解碼是AVC/H.264的一個重要技術,且因前後文適應性二位元算數解碼器在編碼中能夠有效率地提升壓縮效率,故其不只已在AVC/H.264的影像壓縮標準中佔有一席之地,在未來新訂的影像壓縮標準中更是一個不可或缺的編碼方式。
如果能藉由提高CABAC解碼器在二進制算術解碼上的平行度,以有效地提升CABAC解碼器的輸出率,以及使其能配合支援高規格之架構,則可大幅改善前後文適應性二位元算數解碼器之效率。
職是之故,發明人鑒於習知技術之缺失,乃思及改良發明之意念,終能發明出本案之「高產出平行化AVC/H.264前後文適應性二位元算數解碼器之方法」。
本案之主要目的在於提供一種AVC/H.264內文適應性二位元算數解碼器的演算法,此項技術具有高吞吐量的優勢;透過由上到下的設計方法、演算法分析和資料流模型在高粒度和低粒度的比較與歸納,實現出所設計的架構;對所提出之演算法做更進一步分析後,可統整出CABAC解碼器和維特比(Viterbi)解碼器之間的相似性,並藉此相似性提高CABAC解碼器的平行度,有效地提升CABAC解碼器的輸出率。
本案之又一主要目的在於提供一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值;接收該二位元(bin)並產生一語法元素(syntax element);接收該或然率模式更新值、一前後文信息、一序列信息、一圖像信息、一切片(slice)信息與一初始化前後文變數,以產生該MPS值與該或然率值;使用該前後文信息以於解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的各該二位元;接收該切片信息,用以產生該初始化前後文變數;以及除非結束,否則回到該接收一位元串步驟。
本案之另一主要目的在於提供一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值;接收該或然率模式更新值、一前後文信息、一序列信息、一圖像信息、一切片信息與一初始化前後文變數,以產生該MPS值與該或然率值,其中該前後文信息用於在解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的該二位元;當進行一旁道二進位算數解碼時,亦事先解碼出一對應於該旁道二進位算數解碼之路徑所包含的該二位元,以提高該方法之一平行度;以及除非結束,否則回到該接收一位元步驟。
本案之再一主要目的在於提供一種解碼方法,包含下列之步驟:接收一發生機率最高之符號(MPS)值與一或然率值,用以產生一或然率模式更新值;以及接收該或然率模式更新值,以產生該MPS值與該或然率值,其中當該或然率值顯示一MPS發生時,估測一對應於該MPS之路徑和事先解碼出該路徑所包含的一第一二位元。
為了讓本發明之上述目的、特徵、和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
依據本發明構想之較佳實施例所提出之二位元算數解碼平行化機制,一個平行的高產出平行化AVC/H.264前後文適應性二位元算數解碼器之方法被提出。本發明擴展了二位元算數解碼之平行化。依據本發明之實驗結果,所提出之前後文適應性二位元算數解碼器在應用方面可以支援AVC/H.264高端類(High Profile)、水準4.2(Level 4.2),且所支援的解析度為1920×1088,幀率為64fps;藉由提高平行度後的CABAC解碼器可以大幅增加二位元解碼之吞吐量,當其工作於108MHz時,跟原本循序二位元解碼的吞吐量做比較後,發現大約可改善3.5倍左右。
另,因為HEVC為一個尚未制定之新興標準,所以其在設計時的彈性程度較高。在JCTVC的會議文件中,Qualcomm提出了前後文模組不要連續地更新,而是透過延遲不同數量的二位元來達到可以提高產出的方法,但其實這方式則是會降低編碼的BD-rate。而Panasonic則提出延遲部分的語法元素到每個區塊結束,再更新前後文模組。參考文獻為JCTVC-G576以及JCTVC-G349。而本發明的編碼績效卻不會因為平行化而降低,這也是本發明的特點之一。
下列之表一為依據本發明構想之較佳實施例所提出的架構與其他設計(亦即設計[1],[2]與[3],其中[1]為:Yao-Chang Yang and Jiun-In Guo,“A High Throughput H.264/AVC High Profile CABAC Decoder for HDTV Applications,”IEEE Transactions on Circuits and Systems for Video Technology,Volume 19,Issue 9,pp. 1395-1399,Sep. 2009.;[2]為:Pin-Chih Lin,Tzu-Der Chuang,and Liang-Gee Chen,“A Branch Selection Multi-symbol High Throughput CABAC Decoder Architecture for H.264/AVC,”IEEE International Symposium on Circuits and Systems,pp. 365-368,May 2009.;[3]為:Peng Zhang,Don Xie,and Wen Gao,“Variable-Bin-Rate CABAC Engine for H.264/AVC High Definition Real-Time Decoding,”IEEE Transactions on Very Large Scale Integration(VLSI) Systems,Volume 17,Issue 3,pp. 417-426,Mar. 2009.)之比較。設計[1]在105MHz時,只能支援幀率30fps,且每秒解碼的二位元是90.3M。設計[2]使用90奈米技術來增加產出,但是在222MHz時,僅能支援幀率30fps。設計[3]在222MHz時,只能支援AVC/H.264主要類(Main Profile)、水準4.0(Level 4.0),1080i以及幀率30fps,且產出是每秒102M二位元。
本發明主要的特點在於將維特比解碼器的演算法應用到CABAC解碼器,使得我們設計的硬體在解碼二位元時能夠利用前後文信息估測出發生機率較大的路徑,並事先解碼出這些較可能發生路徑下的二位元,如此即可在較大的機率下不需每次都要等到當前的二位元被解碼出來後,才能依據所解出的二位元繼續往下解碼下一個二位元。當MPS發生時,即會增加解二位元的效率,若MPS沒有發生,則僅能解出一個二位元,並重新另一個新的估測路徑。利用這樣子的概念,雖只實現出機率較大路徑的解碼二位元硬體,卻獲得極大的平行效益,在硬體成本與平行化程度上取得良好的取捨。
如第一圖所示,維特比解碼器(Viterbi decoder)使用機率以找出可能的解碼結果。在第一圖中包含一維特比解碼器之解碼程序的架構1。雖然精確的解碼結果與路徑並未預先知曉,探索較可能路徑則可擴展平行度。因此,在階段1時,轉移機率可使用前後文信息(context information)而被計算。在階段1所導出之機率將被使用於階段2與3,以降低平行化的成本。由需要一額外輸入符號之狀態轉移所產生之解碼結果在階段2執行,而用於不需要一額外輸入符號之狀態轉移之程序在階段3執行。
維特比解碼器有兩種類型的弦,非艾普西龍弦(non-epsilon arcs)與艾普西龍弦(epsilon arcs)。在第二圖中包含一維特比解碼器之狀態轉移的架構2。如第二圖所示,非艾普西龍弦使用一輸入符號來完成一狀態轉移,但艾普西龍弦則穿越而未使用任何輸入符號來完成一狀態轉移。此一解碼程序類似於前後文適應性二位元算數解碼器之解碼程序,因為他們均使用前後文信息來產生一符號的機率,而精確的路徑直到符號被解碼前都是未知的。非艾普西龍弦正像一發生機率最低之符號(least probable symbol,LPS),因為都需要額外的輸入。而艾普西龍弦是類近於一發生機率最高之符號,這兩者通常都不需要更多的輸入(MPS可能很罕有的最多需要一個二位元)。因此,在維特比解碼器中之此一平行化概念也可以用在前後文適應性二位元算數解碼器中。
因為MPS是發生機率最高之符號,其機率亦較大,且其包含較少之信息,以至於一較短的範圍可以代表它,而該範圍代表用於在二進位算數解碼程序中目前剩餘之信息。換句話說,該LPS具有較多信息,且會被一較長之範圍所代表。如果目前之範圍較長,其包含較多之信息在此範圍中,而這一較長之信息代表一系列的MPSs或一LPS。藉由上述理由,當機率較大時,一個MPS更可能是解碼決策,而因此,連續的MPSs的發生可被假定為抽取出更多 的平行度。使用旁道二進位算數解碼所解碼的符號也可以被平行解碼,但是當一LPS發生時,其平行度則降低。由於可變動長度的編碼,因此平行可能度是變動的,一個具有可變動粒度的平行架構被提出,此一粒度可以是數個二位元或者是單一二位元。
該平行可能度取決於三個因數:第一,即從由前後文信息編為索引的機率狀態轉移表得知的該MPS範圍的一長度(一個MPS發生的機率),第二,該現有範圍的一長度(隨後符號之信息)與第三,該現有偏移量的一長度(記錄二位元解碼程序進度之標誌)。該等語法元素的轉移有時取決於其自身的值,因此下一個二位元所屬語法元素的類型是未知的。為萃取平行,在用於語法元素轉移之預測錯誤中存在著間接費用。上述之三個因素全都用於計算該平行可能度,因此與平行擴充有關之間接費用可以被降低。因此,在二位元算數解碼之前,需要先計算,以在平行解碼前找出該平行可能度。
平行度越高,硬體的成本越高,而當該時脈增加時,該平行之可行度則降低了。為了這些原因,在本平行機制中所選擇之最大平行度是五。依據CCIR601,基於系統限制之時脈是設於108MHz。為確保資料是在以系統粒度為單元之近似時間內通過模組間的正確路徑(8x8區塊),高階資料流模組是藉由本地記憶體尺寸限制與模組間先進先出 緩衝器而建立。每一資料流模組之輸入埠與輸出需要被確定在同一階層之資料(序列、圖像、切片、宏塊,以及8x8區塊準位)被包裝進入不同準位之對應資料結構。在系統粒度中必要的資料需要被儲存在模組的本地緩衝器中。為模式化從一個模組到另一個模組之資料流,在每一個模組中之本地緩衝器的尺寸是受到限制的。因此,在模式化資料流之前,其尺寸要被精確的評估。
在執行與整合SystemC中之高階資料流模式後,吾人可以精確定義每一模組之細節,(例如,輸入/輸出位元寬度,本地記憶體構型,控制及狀態暫存器)來形成低階資料流模式。藉由軟體/硬體共同設計,如以中央控制器來同步以及控制所有的模組,當較低階之分析器(宏塊與區塊)以及其他的模組是由硬體劃分時,該高階之分析器(序列、圖像及切片)是被劃分來嵌進軟體中。因此系統準位的架構是基於數據流模式而產生的。
藉由組合平行機制、低階資料流以及系統架構,如第三圖所示之CABAC解碼器被推導而提出。在第三圖中包含一本發明較佳實施例之CABAC解碼器3。開始於序列層級而移向圖像層級,而後又移向切片層級,此一CABAC解碼器模組從對應層級的控制暫存器讀入編碼信息。機率初始化是在每一切片的開始時執行。藉由接收前後文信息以及在前一個宏塊中的宏塊位元,該模組編碼是推導與適 用於平行二位元解碼。在二位元被解碼後,解二位元化程序反轉該二位元串為語法元素類型,其儲存於輸出的先進先出緩衝器。在第四圖中包含一本發明較佳實施例之二位元解碼單元0(41)。如第四圖所示,一二位元解碼單元0(41)的資料路徑是由複數減法器(圖中標示為sub之裝置)、複數多工器(multiplexer,圖中標示為MUX之裝置)、一變流器、一個LPS機率表以及重標準化單元所組成。位元及計數形成比特流緩衝器,而比特流是位元串的組合。ofs是偏移量,r是範圍,且兩者均用於二位元算數解碼程序。模式、狀態與valMPS是從前後文(機率)模組而來,以獲得對應的機率。輸出是二位元與有效旗標,代表該解碼的二位元之有效與否。所提出之架構的平行度是五,因此有五個二位元解碼單元彼此連結如第五圖所示。在第五圖中包含一本發明較佳實施例之平行二位元解碼器4,其中該平行二位元解碼器4包括一本發明較佳實施例之二位元解碼單元0(41)、一本發明較佳實施例之二位元解碼單元1(42)、一本發明較佳實施例之二位元解碼單元2(43)、一本發明較佳實施例之二位元解碼單元3(44)與一本發明較佳實施例之二位元解碼單元4(45)。在第四圖與第五圖中包含多個英文與阿拉伯數字所組成之符號,其中在一串英文後方的數字,0、1、2、3與4指的是解碼單元的編號(因為在此專利的實施例中,例子是利用了5個解碼單元,所以編號從0~4。) 故下方將以X表示編號。以及圖四則為圖五中的一個二位元解碼單元。MPS是「較高機會出現符號」,valMPSX是「輸入至解碼單元X的較高機會出現符號的值」,可從當下的機率模型得知。stateX是「輸入至解碼單元X的二位元算數解碼程序中的狀態」,從當下的機率模型得知。ModeX是「輸入至解碼單元X的解碼此二位元算數編碼的模式」,從當下的機率模型得知。bitsX是「輸入至解碼單元X的位元(bits=bitstream)」,從串流碼中提取。countX是「輸入至解碼單元X的二位元碼個數」。ofs是「offset」,此為二位元算數編碼中的習知。rX,其中r是「範圍」(range),此為二位元算數編碼(arithmetic coding)中的習知)」。CX是「解碼單元X所解出的二位元碼的個數」。olpsX是「解碼單元X在較低機會出現符號的offset」(offset of LPS in decoding unit X)。binX是「解碼單元X所解出的二位元碼」。validX是「此二位元算數解碼的結果是否可以當成真正的二位元碼」(故本架構之平行度為一變數)。RLPS是「較低機會出現符號的機率範圍(Range of LPS)」。reMPS是「重新正規化較高機會出現符號的機率範圍(renormalization of MPS)」。reLPS是「重新正規化較低機會出現符號的機率範圍(renormalization of LPS)」。reMPS與reLPS此兩模組的操作模式,在本領域是習知行為,可以參考AVC/H.264視訊壓縮標準文件(specification)以及參考算數編碼 (arithmetic coding)的方式。位元及計數是用於本平行二位元解碼器的比特流緩衝器。範圍(r0~r5)以及偏移量(ofs0~ofs5)是二位元算數解碼程序中的區間。二位元及有效是解碼後的二位元。當所有的有效旗標為真,輸出二位元的數目確實為五。在最壞的情況下(LPS發生時),有效旗標為偽,而輸出二位元的數目降低。
實施例:
1.一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值;接收該二位元(bin)並產生一語法元素(syntax element);接收該或然率模式更新值、一前後文信息、一序列信息、一圖像信息、一切片(slice)信息與一初始化前後文變數,以產生該MPS值與該或然率值;使用該前後文信息以於解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的各該二位元;接收該切片信息,用以產生該初始化前後文變數;以 及除非結束,否則回到該接收一位元串步驟。
2.根據實施例1所述之方法,其中該解碼器包括一前後文模組(context model)與一或然率估測模組(probability estimation model),該接收該或然率模式更新值步驟更包括下列之步驟:透過該前後文模組接收一二位元(bin)、一前一二位元值(last bin value)與該前後文信息以產生一前後文模組編號(number of context model);以及透過該或然率估測模組接收該前後文模組編號與該前一二位元值,以產生該或然率值與該MPS值。
3.根據實施例1或2所述之方法,其中該接收該二位元步驟更包括一步驟:從該前後文信息產生一LPS範圍,從該MPS值產生一MPS範圍和初始化一現有範圍(current range)與一現有偏移量(current offset)。
4.根據以上任一實施例所述之方法,其中該接收該二位元步驟更包括下列之步驟:進行一標準二進位算數解碼(regular binary arithmetic decoding);當該現有偏移量≧該MPS範圍時,使該二位元之一值=一發生機率最低之符號(LPS)值,且當該現有偏移量<該MPS範圍時,使該二位元之該值=該MPS值;以及 當該現有範圍≧(1/2)x(一上限)時,則進行下一二位元解碼程序,且當該現有範圍<(1/2)x(一上限)時,則設定該更新範圍=該現有範圍x2,且使一更新偏移量=(該現有偏移量<<1)∥(從該位元串讀入一位元)。
5.根據以上任一實施例所述之方法,其中該接收該二位元步驟更包括下列之步驟:進行一旁道二進位算數解碼(bypass binary arithmetic decoding);當該現有偏移量≧現有範圍時,則該二位元值=1,且進行下一二位元解碼程序;以及當該現有偏移量<現有範圍時,則該二位元值=0,且進行該下一二位元解碼程序,其中該旁道二進位算數解碼需使用一個位元,且可被平行解碼。
6.根據以上任一實施例所述之方法,其中在代表該MPS時,需使用較少的信息與一較短的範圍,且該MPS極罕見地需要一額外的信息;在代表該LPS時,需使用較多的信息與一較長的範圍,且該MPS確定需要一額外的信息;該現有範圍是選自由一系列的MPSs、一系列的MPSs後碰到一LPS、第一個為一LPS和一系列的MPSs、第一個為一LPS和一系列的MPSs後碰到一LPS和連續碰到兩個LPSs所組成的群組其中之一,而該方法是將一較可能的路徑先執行,進而可以節省一硬體上的成本。
7.根據以上任一實施例所述之方法,更包括一平行可能度(probable degree of parallelism),其中該平行可能度決定於三個因數,即該MPS範圍的一長度,該現有範圍的一長度與該現有偏移量的一長度,該方法所選擇之一最大平行度為5,是指該方法可同時平行處理之最大數量為5;而該方法是從一序列層級(sequence level)開始,再移至一圖像層級(picture level),之後移至一切片層級(slice level),最後移至一宏塊層級(macro block level);該解碼器在各該層級從一控制暫存器(control register)讀取解碼信息(coding information),當各個切片程序開始時,將執行一或然率之初始化,且該語法元素是屬於該宏塊層級。
8.根據以上任一實施例所述之方法,其中該接收該二位元步驟更包括下列之步驟:使用該MPS範圍的該長度、該現有範圍的該長度與該現有偏移量的該長度以計算該平行可能度;以及依據該計算所得之平行可能度,以進行一平行二進位算數解碼。
9.一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值; 接收該或然率模式更新值、一前後文信息、一序列信息、一圖像信息、一切片信息與一初始化前後文變數,以產生該MPS值與該或然率值,其中該前後文信息用於在解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的該二位元;當進行一旁道二進位算數解碼時,亦事先解碼出一對應於該旁道二進位算數解碼之路徑所包含的該二位元,以提高該方法之一平行度;以及除非結束,否則回到該接收一位元步驟。
10.一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值;接收該或然率模式更新值、一前後文信息、一序列信息、一圖像信息、一切片信息與一初始化前後文變數,以產生該MPS值與該或然率值,其中該前後文信息用於在解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的該二位元;當進行一旁道二進位算數解碼時,亦事先解碼出一對應於該旁道二進位算數解碼之路徑所包含的該二位元,以提高該方法之一平行度;以及 除非結束,否則回到該接收一位元步驟。
根據實施例10所述之方法,適用於一前後文適應性二位元算數解碼器(CABAC decoder),且更包括下列之步驟:當該或然率模式更新值指示該MPS未發生時,解碼一對應於一發生機率最低之符號(LPS)之一第二二位元;以及當進行一旁道二進位算數解碼時,亦事先解碼出一對應於該旁道二進位算數解碼之路徑所包含的一第三二位元,以提高該方法之一平行度。
綜上所述,本發明在於提供一種AVC/H.264內文適應性二位元算數解碼器(CABAC)的演算法,此項技術具有高吞吐量的優勢;透過由上到下的設計方法、演算法分析和資料流模型在高粒度和低粒度的比較與歸納,實現出所設計的架構;對所提出之演算法做更進一步分析後,可統整出CABAC解碼器和維特比(Viterbi)解碼器之間的相似性,並藉此相似性提高CABAC解碼器的平行度,有效地提升CABAC解碼器的輸出率,故其確實具有進步性與新穎性。
是以,縱使本案已由上述之實施例所詳細敘述而可由熟悉本技藝之人士任施匠思而為諸般修飾,然皆不脫如附申請專利範圍所欲保護者。
1‧‧‧維特比解碼器之解碼程序的架構
2‧‧‧維特比解碼器之狀態轉移的架構
3‧‧‧本發明較佳實施例之CABAC解碼器
4‧‧‧本發明較佳實施例之平行二位元解碼器
41‧‧‧本發明較佳實施例之二位元解碼單元0
42‧‧‧本發明較佳實施例之二位元解碼單元1
43‧‧‧本發明較佳實施例之二位元解碼單元2
44‧‧‧本發明較佳實施例之二位元解碼單元3
45‧‧‧本發明較佳實施例之二位元解碼單元4
第一圖:其係顯示一維特比解碼器中平行度之示意圖;第二圖:其係顯示一維特比解碼器狀態轉移之示意圖;第三圖:其係顯示一依據本發明構想之較佳實施例之前後文適應性二位元算數解碼器;第四圖:其係顯示一依據本發明構想之較佳實施例的一二位元解碼單元之資料路徑的示意圖;以及第五圖:其係顯示一依據本發明構想之較佳實施例的一平行二位元解碼器之示意圖。
3‧‧‧本發明較佳實施例之CABAC解碼器

Claims (11)

  1. 一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值;接收該二位元(bin)並產生一語法元素(syntax element);接收該或然率模式更新值、一前後文信息、一序列息、一圖像信息、一切片(slice)信息與一初始化前後文變數,以產生該MPS值與該或然率值;使用該前後文信息以於解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的各該二位元;接收該切片信息,用以產生該初始化前後文變數;以及除非結束,否則回到該接收一位元串步驟。
  2. 如申請專利範圍第1項所述之方法,其中該解碼器包括一前後文模組(context model)與一或然率估測模組(probability estimation model),該接收該或然率模式更新值步驟更包括下列之步驟:透過該前後文模組接收一二位元(bin)、一前一二位 元值(last bin value)與該前後文信息以產生一前後文模組編號(number of context model);以及透過該或然率估測模組接收該前後文模組編號與該前一二位元值,以產生該或然率值與該MPS值。
  3. 如申請專利範圍第1項所述之方法,其中該接收該二位元步驟更包括一步驟:從該前後文信息產生一LPS範圍,從該MPS值產生一MPS範圍和初始化一現有範圍(current range)與一現有偏移量(current offset)。
  4. 如申請專利範圍第3項所述之方法,其中該接收該二位元步驟更包括下列之步驟:進行一標準二進位算數解碼(regular binary arithmetic decoding);當該現有偏移量≧該MPS範圍時,使該二位元之一值=一發生機率最低之符號(LPS)值,且當該現有偏移量<該MPS範圍時,使該二位元之該值=該MPS值;以及當該現有範圍≧(1/2)x(一上限)時,則進行下一二位元解碼程序,且當該現有範圍<(1/2)x(一上限)時,則設定該更新範圍=該現有範圍x2,且使一更新偏移量=(該現有偏移量<<1)∥(從該位元串讀入一位元)。
  5. 如申請專利範圍第4項所述之方法,其中該接收該二位元步驟更包括下列之步驟:進行一旁道二進位算數解碼(bypass binary arithmetic decoding);當該現有偏移量≧現有範圍時,則該二位元值=1,且進行下一二位元解碼程序;以及當該現有偏移量<現有範圍時,則該二位元值=0,且進行該下一二位元解碼程序,其中該旁道二進位算數解碼需使用一個位元,且可被平行解碼。
  6. 如申請專利範圍第4項所述之方法,其中在代表該MPS時,需使用較少的信息與一較短的範圍,且該MPS極罕見地需要一額外的信息;在代表該LPS時,需使用較多的信息與一較長的範圍,且該MPS確定需要一額外的信息;該現有範圍是選自由一系列的MPSs、一系列的MPSs後碰到一LPS、第一個為一LPS和一系列的MPSs、第一個為一LPS和一系列的MPSs後碰到一LPS和連續碰到兩個LPSs所組成的群組其中之一,而該方法是將一較可能的路徑先執行,進而可以節省一硬體上的成本。
  7. 如申請專利範圍第3項所述之方法,更包括一平行可能度(probable degree of parallelism),其中該平行可能度決定於三個因數,即該MPS範圍的一長度,該現有範圍的一長度與該現有偏移量的一長度,該方法所選擇之一最大平行度為5,是指該方法可同時平行處理之最大數量為5;而該方法是從一序列層級(sequence level)開始,再移至一圖像層級(picture level),之後移至一切片層級(slice level),最後移至一宏塊層級(macro block level);該解碼器在各該層級從一控制暫存器(control register)讀取解碼信息(coding information),當各個切片程序開始時,將執行一或然率之初始化,且該語法元素是屬於該宏塊層級。
  8. 如申請專利範圍第7項所述之方法,其中該接收該二位元步驟更包括下列之步驟:使用該MPS範圍的該長度、該現有範圍的該長度與該現有偏移量的該長度以計算該平行可能度;以及依據該計算所得之平行可能度,以進行一平行二進位算數解碼。
  9. 一種用於一前後文適應性二位元算數解碼器(CABAC decoder)的方法,包含下列之步驟:接收一位元串(bitstream)、一更新範圍(range update)、一發生機率最高之符號(MPS)值與一或然率值,用以產生一二位元(bin)與一或然率模式更新值;接收該或然率模式更新值、一前後文信息、一序列信息、一圖像信息、一切片信息與一初始化前後文變數,以產生該MPS值與該或然率值,其中該前後文信息用於在解碼該二位元時估測出一發生機率較大之路徑和事先解碼出該路徑所包含的該二位元;當進行一旁道二進位算數解碼時,亦事先解碼出一對應於該旁道二進位算數解碼之路徑所包含的該二位元,以 提高該方法之一平行度;以及除非結束,否則回到該接收一位元步驟。
  10. 一種解碼方法,包含下列之步驟:接收一發生機率最高之符號(MPS)值與一或然率值,用以產生一或然率模式更新值;以及接收該或然率模式更新值,以產生該MPS值與該或然率值,其中當該或然率值顯示一MPS發生時,估測一對應於該MPS之路徑和事先解碼出該路徑所包含的一第一二位元。
  11. 如申請專利範圍第10項所述之方法,適用於一前後文適應性二位元算數解碼器(CABAC decoder),且更包括下列之步驟:當該或然率模式更新值指示該MPS未發生時,解碼一對應於一發生機率最低之符號(LPS)之一第二二位元;以及當進行一旁道二進位算數解碼時,亦事先解碼出一對應於該旁道二進位算數解碼之路徑所包含的一第三二位元,以提高該方法之一平行度。
TW101107238A 2011-05-17 2012-03-03 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法 TWI487295B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161486869P 2011-05-17 2011-05-17

Publications (2)

Publication Number Publication Date
TW201249113A TW201249113A (en) 2012-12-01
TWI487295B true TWI487295B (zh) 2015-06-01

Family

ID=47156168

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101107238A TWI487295B (zh) 2011-05-17 2012-03-03 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法

Country Status (3)

Country Link
US (1) US8482440B2 (zh)
CN (1) CN102790879B (zh)
TW (1) TWI487295B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US9379736B2 (en) * 2011-06-03 2016-06-28 Qualcomm Incorporated Context-adaptive coding video data
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2013113580A1 (en) * 2012-01-30 2013-08-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Binary arithmetic coding scheme
RU2608465C1 (ru) * 2013-01-04 2017-01-18 Самсунг Электроникс Ко., Лтд. Способ энтропийного кодирования сегмента слайса и устройство для него и способ энтропийного декодирования сегмента слайса и устройство для него
CN105025296B (zh) * 2014-04-30 2018-02-23 北京大学 一种高级算术编码器及其实现方法
US9948934B2 (en) * 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
US10148961B2 (en) * 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
US10419772B2 (en) 2015-10-28 2019-09-17 Qualcomm Incorporated Parallel arithmetic coding techniques
CN107801033B (zh) * 2016-09-06 2021-05-11 联发科技股份有限公司 应用于数字音视频编解码技术标准系统的解码方法及解码装置
KR20180031944A (ko) 2016-09-21 2018-03-29 삼성전자주식회사 비디오 디코더 및 이를 포함하는 전자 시스템
CN110495170A (zh) * 2018-04-02 2019-11-22 北京大学 上下文的概率更新方法与装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060028359A1 (en) * 2004-08-05 2006-02-09 Samsung Electronics Co., Ltd. Context-based adaptive binary arithmetic coding method and apparatus
US20070080832A1 (en) * 2005-10-12 2007-04-12 Huawei Technologies Co., Ltd. Decoding system and method based on context-based adaptive binary arithmetic coding
US20070103347A1 (en) * 2005-11-08 2007-05-10 Samsung Electronics Co., Ltd. Method and device for decoding syntax element in CABAC decoder
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US7522076B1 (en) * 2007-10-16 2009-04-21 Mediatek Inc. Parallel context adaptive binary arithmetic coding
US8319672B2 (en) * 2010-04-09 2012-11-27 Korea Electronics Technology Institute Decoding device for context-based adaptive binary arithmetic coding (CABAC) technique

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060028359A1 (en) * 2004-08-05 2006-02-09 Samsung Electronics Co., Ltd. Context-based adaptive binary arithmetic coding method and apparatus
US20070080832A1 (en) * 2005-10-12 2007-04-12 Huawei Technologies Co., Ltd. Decoding system and method based on context-based adaptive binary arithmetic coding
US20070103347A1 (en) * 2005-11-08 2007-05-10 Samsung Electronics Co., Ltd. Method and device for decoding syntax element in CABAC decoder
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof

Also Published As

Publication number Publication date
TW201249113A (en) 2012-12-01
CN102790879B (zh) 2015-07-08
CN102790879A (zh) 2012-11-21
US20120293343A1 (en) 2012-11-22
US8482440B2 (en) 2013-07-09

Similar Documents

Publication Publication Date Title
TWI487295B (zh) 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法
US8604951B2 (en) System and method for optimizing context-adaptive binary arithmetic coding
KR20200136515A (ko) 저-지연을 위한 샘플 배치 코딩
US9001882B2 (en) System for entropy decoding of H.264 video for real time HDTV applications
KR102123620B1 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
US20080075173A1 (en) Systems and Methods for Context Adaptive Video Data Preparation
Zhou et al. A high-performance CABAC encoder architecture for HEVC and H. 264/AVC
WO2018218950A1 (zh) 熵解码方法、装置及存储介质
Liao et al. A highly efficient VLSI architecture for H. 264/AVC level 5.1 CABAC decoder
Wen et al. Multiple-symbol parallel CAVLC decoder for H. 264/AVC
KR101151352B1 (ko) H.264/avc를 위한 문맥 적응적 가변 길이 복호화기
Gomes et al. Area and power efficient 8K real-time design for AV1 arithmetic decoding
Li et al. A vlsi implement of cabac encoder for h. 265/hevc
Lee et al. A design of high-performance pipelined architecture for H. 264/AVC CAVLC decoder and low-power implementation
Lee et al. High-throughput low-cost VLSI architecture for AVC/H. 264 CAVLC decoding
Liang et al. A high throughput parallel AVC/H. 264 context-based adaptive binary arithmetic decoder
Li et al. A pipelined architecture for 4× 4 intra frame mode decision in the high efficiency video coding
Saggiorato et al. HEVC residual syntax elements generation architecture for high-throughput CABAC design
Li et al. A VLSI architecture design of an edge based fast intra prediction mode decision algorithm for H. 264/AVC
Zezza et al. A novel decoder architecture for error resilient JPEG2000 applications based on MQ arithmetic
JP2007074648A (ja) Cabac復号化装置
JP2015005903A (ja) コンプレッサ、デコンプレッサ及び画像処理装置
Chen et al. Architecture and 28 nm CMOS Design of a 1886 MBin/sec Context-Adaptive Binary Arithmetic Coder (CABAC) Encoder
Tsai et al. Highly efficient cavlc encoder for mpeg-4 avc/h. 264
Lee et al. A multisymbol context-based arithmetic coding architecture for MPEG-4 shape coding