JP2009100474A - コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法 - Google Patents

コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法 Download PDF

Info

Publication number
JP2009100474A
JP2009100474A JP2008265241A JP2008265241A JP2009100474A JP 2009100474 A JP2009100474 A JP 2009100474A JP 2008265241 A JP2008265241 A JP 2008265241A JP 2008265241 A JP2008265241 A JP 2008265241A JP 2009100474 A JP2009100474 A JP 2009100474A
Authority
JP
Japan
Prior art keywords
bin
syntax element
value
clock cycle
index value
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2008265241A
Other languages
English (en)
Other versions
JP4886755B2 (ja
Inventor
Yuan-Teng Chang
元騰 張
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
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 Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of JP2009100474A publication Critical patent/JP2009100474A/ja
Application granted granted Critical
Publication of JP4886755B2 publication Critical patent/JP4886755B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • 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

Abstract

【課題】コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法を提供する。
【解決手段】コンテキスト適応バイナリ算術符号化と復号化のシステムであって、前記システムは、符号化される第1ビンと復号化される第2ビンの1つのインデックス値を計算する計算装置、クラスタにコンテキストモデルを保存し、前記第1ビンと前記第2ビンの1つのインデックス値が前記コンテキストモデルの1つに関連したメモリ、及び前記1つのコンテキストモデルに基づいて前記第1ビンを符号化する符号器と、前記1つのコンテキストモデルに基づいて前記第2ビンを復号化する復号器の1つとして構成されるバイナリ算術ユニットを含むシステム。
【選択図】 図4

Description

本発明は、画像符号化と復号化に関し、特に、コンテキスト適応バイナリ算術符号化(CABAC)と復号化のシステム及び方法に関するものである。
コンテキスト適応バイナリ算術符号化(CABAC)は、H.264/AVCメインプロファイルとハイプロファイルの規格に準拠したエントロピー符号化方式である。図1は、例えばH.264規格におけるH.264/AVCハイプロファイルのレベル4.1ビットストリームのビットストリーム10の構造の概略図である。図1を参照下さい。ビットストリーム10は、複数のデータスライス(番号付けされていない)を含むことができ、各データスライスは、スライスヘッダ層11とスライスデータ層12を含むことができる。スライスデータ層12は、複数のマクロブロック(MBs)13を含むことができ、各MBs13は、1つまたは複数のシンタックス(syntax)要素(SE)14を含むことができる。各SE14は、数値を有し、1つまたは複数のビン(bin)15、言い換えるとバイナリ値、即ち0または1のバイナリ値を更に含むことができる。
コンテキスト適応バイナリ算術符号化(CABAC)と復号化のアルゴリズムを下記に簡単に説明する。図2Aは、CABACの符号化のアルゴリズムを解説する流れ図である。図2Aを参照下さい。スライスデータ層の第1SEを符号化する前に、459セットの数のコンテキスト(context)モデル(CMs)がステップ20で初期化される。各CMsは、6ビットの発生確率テーブルを参照するためのインデックス(pStateIdx)とバイナリ値を有する1ビットの発生確率の高いシンボル値(valMPS)とを含む。SEを符号化するには、2値化と、コンテキストモデルの選択と、バイナリ算術符号化と、ビット発生とを含む4つの主なステップが必要な可能性がある。ステップ21では、SEは、その値を1つまたは複数のバイナリビットからなるバイナリ文字列に変換させる。次に459セットのCMsの中の1つが、ステップ22でコンテキストモデルインデックス(ctxIdx)に基づいてバイナリ文字列の各ビンに対して選択されることができる。選択されたCMに対応して、バイナリ算術符号器(BAC)がステップ23でビンを符号化することができる。ビンを符号化した後、BACは、ステップ24で選択されたCMの再規格化と更新を行う。続いて、符号化されたビットデータがステップ25で発生されることができる。
図2Bは、CABACの復号化のアルゴリズムを説明する流れ図である。図2Bを参照下さい。SEのビンを復号化する前に、459セットのCMsがステップ20で初期化される。SEの各ビンを復号化するために、コンテキストモデルの選択と、バイナリ算術復号化と、逆2値化(de−binarization)とを含む3つの主なステップが必要な可能性がある。ステップ22では、ビンのCMは、ctxIdxに基づいて選択され、常数、または予め復号化されたビン、または隣接のブロックからの情報によって決められた値であることができる。選択されたCMに対応して、バイナリ算術復号器(BAD)がステップ26でビンを復号化することができる。また、BADは、ステップ24で選択されたCMを更新して上述のビンの値を出力する。CMの更新とビン値の出力のステップは、バイナリ文字列がSEに発生されるまで繰り返される。続いて、復号化されたバイナリ文字列が逆2値化されてSEの値を発生する。
図2Aと2Bより分るように、例えばCMの初期化とCMの選択などのいくつかのプロセスが符号化と復号化スキームに共通される可能性がある。よって、CABACの符号化と復号化スキームを統合するシステムを有することが望ましい。また、パイプライン構造でCABACの符号化と復号化を行えるシステムを有することが望ましい。
本発明の実施例は、コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法を提供する。
コンテキスト適応バイナリ算術符号化と復号化のシステムは、符号化される第1ビンと復号化される第2ビンの1つのインデックス値を計算する計算装置、クラスタにコンテキストモデルを保存し、第1ビンと第2ビンの1つのインデックス値がコンテキストモデルの1つに関連したメモリと、1つのコンテキストモデルに基づいて第1ビンを符号化する符号器、または1つのコンテキストモデルに基づいて第2ビンを復号化する復号器の1つとして構成されるバイナリ算術ユニットを含む。
本発明のいくつかの実施例は、パイプラインフローのコンテキスト適応バイナリ算術符号化と復号化の方法も提供する。前記方法は、第1クロックサイクルで、複数のMビンを有するシンタックス要素に関連したコンテキストモデルを読み出し、少なくとも1つの隣接のブロックから情報を得て、シンタックス要素の少なくとも1つの隣接のブロックからの情報に基づいて変数を計算するステップ、第2クロックサイクルで、変数に基づいてシンタックス要素の第1ビンの第1インデックス値を計算し、第1インデックス値に基づいて第1ビンのコンテキストモデルの1つを読み込むステップ、第3クロックサイクルで、第1ビンに関連した1つのコンテキストモデルに基づいて符号化プロセスと復号化プロセスの1つの第1ビンを処理し、第1ビンを処理した後、前記1つのコンテキストモデルを更新するステップ、第3クロックサイクルで、変数に基づいてシンタックス要素の第2ビンの第2インデックス値を計算し、第2インデックス値に基づいて第2ビンのコンテキストモデルの1つを読み込むステップ、及び第4クロックサイクルで、第2ビンに関連した1つのコンテキストモデルに基づいて符号化プロセスと復号化プロセスの1つの第2ビンを処理し、第2ビンを処理した後、前記1つのコンテキストモデルを更新するステップを含む。
本発明の実施例は、パイプラインフローのコンテキスト適応バイナリ算術符号化と復号化の方法も提供する。前記方法は、第1クロックサイクルで、第1シンタックス要素に関連したコンテキストモデルを読み出し、少なくとも1つの隣接のブロックから情報を得て、少なくとも1つの隣接のブロックからの情報に基づいて変数を計算するステップ、第2クロックサイクルで、変数に基づいて第1シンタックス要素の第1ビンの第1インデックス値を計算し、前記第1インデックス値に基づいて第1シンタックス要素の第1ビンのコンテキストモデルの1つを読み込むステップ、第2クロックサイクルで、第2シンタックス要素に関連したコンテキストモデルを読み取り、第1シンタックス要素と第2シンタックス要素がデータ処理プロセス中に同時に生じるステップ、第3クロックサイクルで、第1シンタックス要素の第1ビンに関連した1つのコンテキストモデルに基づいて第1シンタックス要素の第1ビンを復号化し、第1シンタックス要素の第1ビンの値を得るステップ、第1シンタックス要素の第1ビンの値の1つのレベルに対応した第3クロックサイクルで、変数に基づいて第2シンタックス要素の第1ビンの第1インデックス値を計算し、前記第1インデックス値に基づいて第2シンタックス要素の第1ビンのコンテキストモデルの1つを読み込むステップ、及び第1シンタックス要素の第1ビンの値の他の1つのレベルに対応した第3クロックサイクルで、変数に基づいて第1シンタックス要素の第2ビンの第2インデックス値を計算し、前記第2インデックス値に基づいて第1シンタックス要素の第2ビンのコンテキストモデルの1つを読み込むステップを含む。
本発明のコンテキスト適応バイナリ算術符号化(CABAC)と復号化のシステム及び方法によれば、CABACの符号化と復号化スキームを統合するシステムを有することができ、パイプライン構造でCABACの符号化と復号化を行えるシステムを有することもできる。
本発明についての目的、特徴、長所が一層明確に理解されるよう、以下に実施形態を例示し、図面を参照にしながら、詳細に説明する。
以下、本発明の実施例を添付の図面と合わせて詳細な説明を行う。なお、同一、または類似の部分には同じ符号が用いられている。
図3Aは、本発明に基づいたシステムのCABACの符号化のパイプラインの段階を説明する概略的な流れ図である。図3Aを参照下さい。CABACの符号化のパイプラインの段階は、例えば、2値化と、コンテキストモデル(CM)の選択と、バイナリ算術符号化と、ビット発生との段階を含むことができる。2値化の段階では、シンタックス要素(SE)の値は、バイナリ文字列に変換されることができる。CABACは、SEの種類に基づいて5種類の2値化方式を採用している。この5種類の方式は、固定長(FL)と、単項(U)と、切り捨てられた単項(truncated unary, TU)と、ツリー構造と、Concatenated Unary/k−th Order Exponential Golomb (UEGK)方式とを更に含む。この5種類の方式とバイナリ文字列の最大の長さが下記の表に示される。
Figure 2009100474
CMの選択の段階では、459セットのコンテキストモデル(CMs)の中の1つが、コンテキストモデルインデックス(ctxIdx)に基づいてSEの各ビンに対して選択され、シンタックス要素の各‘正規’のビンの符号化を促進することができる。ctxIdxは、下記の方程式(1)によって得られる。
ctxIdx = ctxCatOffset + ctxIdxOffset + ctxIdxInc (1)
ctxIdxOffsetとctxCatOffsetは、SEの種類と剰余ブロックの種類によってそれぞれ分類されることができ、ctxIdxIncは、下記の方程式(2)と(3)によって得られることができる。
condTermFlag = a*condTermFlagA + b*condTermFlagB + c (2)
Figure 2009100474
その中の方程式(2)のa、bと、cは、常数であり、方程式(3)のcondTermFlagAとcondTermFlagBは、隣接のブロックからの情報に基づいて算出される。例えば、condTermFlagAは、左ブロックまたはマクロブロックからの情報によって得られ、condTermFlagBは、上ブロックまたはマクロブロックからの情報によって得られることができる。
CMの選択の段階は、4つのサブ段階、隣接ブロック情報の取得(getting neighbor block information, GNB)と、condTermFlagの計算(culculationg condTermFlag、CTF)と、ctxIdxの計算(CCI)と、CMの取得(CML)とに更に分割されることができる。GNBのサブ段階は、CTFのサブ段階の前に行われ、GNBとCTFのサブ段階は、2値化の段階と平行して行われることができる。
バイナリ算術符号化の段階では、‘標準(regular)’エンジンと、‘バイパス(bypass)’エンジンと、‘終止(terminate)エンジン’とを含む3つの符号化エンジンが用いられることができる。変数codILowとcodIRangeは、スライスの第1マクロブロックの符号化の始めに初期化されることができる。codILowとcodIRangeの値は、符号化のプロセス中に変えられることができる。バイナリ文字列内の各ビンは、3つの符号化エンジンの中の1つによって符号化され、その中の6ビットのpStateIdxと1ビットのvalMPSからなる対応のCMが標準エンジンに求められてビンを符号化する。また、選択されたCMは、標準の符号化のプロセス中に更新されることができる。
codIRangeの値が256より小さい時、再規格化プロセスがバイナリ算術符号化の段階に求められる可能性がある。codIRangeとcodILowは、それらの値が256より小さくない時、倍にされることができる。同時に符号化されたビットデータは、ビット発生の段階で反復して発生されることができる。
図3Bは、本発明に基づいたシステムのCABACの復号化のパイプラインの段階を説明する概略的な流れ図である。図3Bを参照下さい。CABACの復号化のパイプラインの段階は、例えば、CMの選択と、バイナリ算術復号化と、逆2値化の段階とを含む。CMの選択の段階では、CMは、算出されたctxIdxに基づいて選択されることができ、前述のように、ctxIdxに基づいて選択され、常数、または予め復号化されたビン、または隣接のブロックからの情報によって決定された値であることができる。SEのビンは、選択されたCMに基づいて、バイナリ算術の段階に復号化されることができる。また、選択されたCMは、更新されることができ、ビンの値が発生されることができる。CMの更新とビン値の出力のステップは、バイナリ文字列がSEに発生されるまで繰り返されることができる。続いて、復号化されたバイナリ文字列が逆2値化されてSEの値を発生する。また、再規格化のプロセスは、codIRangeの値が256より小さい時、バイナリ算術復号化の段階の標準復号化エンジンに求められる可能性がある。codIRangeは、codIRangeが256より小さくなくなるまで、倍にされることができ、codIOffsetは、復号化されたビットストリームからの1ビットデータを連結することができる。
図3Cは、本発明に基づいたシステムのCABACの符号化/復号化のパイプラインの段階を説明する概略的な流れ図である。図3Cを参照下さい。CABACの符号化/復号化のパイプラインの段階は、図3Aに示されたCABACの符号化の段階と図3Bに示されたCABACの復号化の段階を統合している。CABACの符号化プロセス中に、2値化とビット発生の段階が行われ、逆2値化の段階が行われない。一方、CABACの復号化のプロセス中に、2値化とビット発生の段階が行われず、逆2値化の段階が行われる。
図4は、本発明に基づいたCABACの符号化と復号化のシステム40の図である。図4を参照下さい。システム40は、バイナリ変換器(BZ)41と、計算装置42と43と、バイナリ算術ユニット(BAU)44と、逆バイナリ変換器(DB)45と、ビット発生器(BG)46と、メモリ素子31と39とを含むことができる。符号化と復号化のプロセスの前に、CMが初期化されることができる。この459セットのCMを初期化する変数は、メモリ31、例えば、1762×16ビットの読み出し専用メモリ(ROM)に保存されることができる。初期化モジュール47は、459セットのCMを初期化するように構成され、次にスライスヘッダ層で初期化されたCMをメモリ32、例えば、単一ポートランダムアクセスメモリ(RAM)のクラスタに保存することができる。制御器(図示せず)の制御のもとで、“コンテキストモデル読み出し(read)”(CMR)演算を通して、CMクラスタの1つがメモリ32から取り出され、メモリ33内に読み込まれる。メモリ33は、レジスタバンクを含むことも可能であるがこれを限定するものではない。CMR演算は、GNB/CTF/BZの段階で実行されることもできる。この段階は、2値化の段階と一部のCMの選択の段階を含むこともできる。
バイナリ変換器41は、GNB/CTF/BZの段階でSE(SE_valueで標示)の値をバイナリ文字列に2値化するように構成されることができる。同じステージ中に、1つまたは複数の隣接のブロックからの情報が得られることができる(GNBの段階)。例えば、上ブロックまたはマクロブロックからの情報がバッファ34に保存されることができ、左ブロックまたはマクロブロックからの情報が他のバッファ35に保存されることができる。第1計算装置42は、上述の方程式(2)に従って、1つまたは複数の隣接のブロックからの情報に基づいて、バイナリ文字列のビンに対応するcondTermFlagを算出するように構成されることができる。上述の表1に挙げたシンタックス要素mb_skip_flagを例にすれば、左マクロブロックのmb_skip_flagが1または左マクロブロックが得られない場合、condTermFlagAは、0に設定される。そうでなければ、condTermFlagAは、1に設定される。同様に、condTermFlagBは、上ブロックまたはマクロブロックからの情報によって決定されることができる。バイナリ変換器41と第1計算装置42からの出力は、第1レジスタ36に保存されることができる。
CMの選択の段階の他の部分であるCCI/CMLの段階では、第2計算装置43は、上述の方程式(1)に基づいてCMインデックス(ctxIdx)を計算するように構成されることができる。第2計算装置43から算出されたCMインデックスに基づくと、CMがメモリ33から取り出されることができる。メモリ33からのCMに基づくと、第1rLPS(range of least probable symbol、発生確率の低いシンボル値の範囲)は、例えば、8×256ビット参照テーブル(LUT)の第1参照テーブル(LUT)51から発生されることができる。第1rLPSの値は、上述のCMの6ビットpStateIdxによって、第1LUT51から得られることができ、BAU44の後に続く符号化または復号化のプロセスに用いられることができる。第1rLPSは、マルチプレクサ48への第1入力となることができる。第2LUT52からの第2rLPSは、マルチプレクサ48への第2入力となることができる。第2rLPSは、BAU44からの更新されたCMに基づいて第2LUT52によって発生されることができる。第1rLPSと第2rLPSの中の1つは、マルチプレクサ48によって選択され、第2レジスタ37に保存されることができる。1つの実施例では、マルチプレクサ48は、現在のビンに選択されたCMインデックスが前のビンに選択されたCMインデックスと異なる場合、第1rLPSを出力することができ、現在のビンに選択されたCMインデックスが前のビンに選択されたCMインデックスと同じ場合、第2rLPSを出力することができる。現実施例では、第1LUT51と第2LUT52は、異なるLUTsである。しかし他の実施例では、第1LUT51と第2LUT52は、同じLUTである。
BAU44は、SEの種類とビンインデックス(binIdx)に基づいて、標準ビンと、バイパスビンと、終止ビンを符号化するように構成されることができる。いくつかのシンタックス要素とそれと対応する符号化エンジンが下記の表2に示される。
Figure 2009100474
初期化されたCMsは、“コンテキストモデル読み出し”(CMR)演算を通して、メモリ32からメモリ33に読み込まれることができる。標準ビンが処理された場合、更新されたCMは、メモリ33に書き込まれなければならない可能性がある。続いて、符号化されたビンは、ビット発生器46に転送されることができ、符号化されたビットストリームを発生するように構成されることができる。ビット発生器46は、例えば811ビットレジスタの先入れ先出し(FIFO)装置38から、例えば、“EncodeFlush”、“low_renorm”と、“range_lnz_renorm”などのパラメータを取り出して、ビット長(bits_len)とビットデータ(bits_data)を含む符号化されたビットストリームのデータを発生することができる。CMの選択とバイナリ算術符号化の段階は、SEの全てのビンが完全に符号化されるまで繰り返されることができる。
BAU44は、SEの種類とビンインデックスに基づいて、標準ビンと、バイパスビンと、終止ビンを復号化するように構成されることもできる。初期化されたCMsは、“コンテキストモデル読み出し”(CMR)演算を通して、メモリ32からメモリ33に読み込まれることができる。復号化されたビンは、バッファ39に転送されることができる。ビンが符号化された場合、選択されたCMは、更新され、メモリ33に書き戻されることができる。逆バイナリ変換器45は、SEの全てのビンが復号化されて、SEの復号化が完了した時、バッファ39内の復号化されたビンに基づいて、SE値(SE_value)を出力するかどうかを決める。SE_Value信号は、H.264解析器(parser)ユニット(図示せず)または剰余(residual)ユニット(図示せず)に伝送されて、剰余ブロックの解析フローを行うことができる。1つの実施例では、SE_Value信号は、“隣接バッファ更新”(NBU)演算によって第1バッファ34と第2バッファ35に書き込まれることができる。CMの選択とバイナリ算術符号化/逆2値化の段階は、逆バイナリ変換器45がSEの復号化を完了し、且つ完了信号SE_Validを例えば高ロジックレベルに設定したことを検出するまで繰り返されることができる。SEの全てのビンが復号化された場合、メモリ33の中の更新されたCMは、CMW演算によってメモリ32に書き戻されることができる。
図5Aは、本発明の実施例に基づいたCABACの符号化のパイプライン構造を説明する概略図である。図5Aと、図3Aと、図3Cと、図4も参照下さい。サイクル0では、SE値は、ビン0と、ビン1と、ビン2とを含むバイナリストリームの中に、2値化されることができる(BZ)。隣接のブロックからの情報が得られることができ(GNBの段階)、condTermFlagが計算されることができる(CTFの段階)。また、初期化されたCMsが読み取られることができる(CMRの段階)。GNBからCTFに向けた点線の矢印は、GNBがCTFの前に実行されることを表している。
サイクル1では、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン0のCMが選択されて読み込まれることができる(CML)。
サイクル2では、ビン0が符号化されることができ(BAU)、続いて選択されたビン0のCMが更新されることができる(CMU)。また、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン1のCMが選択されて読み込まれることができる(CML)。
サイクル3では、ビン0のビットストリームが発生されることができる(BG)。ビン1は、符号化されることができ(BAU)、続いて選択されたビン1のCMが更新されることができる(CMU)。また、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン2のCMが選択されて読み込まれることができる(CML)。
サイクル4では、ビン1のバイナリストリームが発生されることができる(BG)。ビン2は、符号化されることができ(BAU)、続いて選択されたビン2のCMが更新されることができる(CMU)。
サイクル5では、ビン2のバイナリストリームが発生されることができる(BG)。
パイプライン構造では、データ転送テクニックがCMLとCMU間のデータ依存性を処理するのに用いられることができる。ビン(i+1)のctxIdxがビンiのctxIdxと同じ場合、BAUの段階からのビンiの更新されたCMは、マルチプレクサ48によって選択されることができる。他のデータ依存性は、CCIとBAUの段階で生じる可能性があり、その中のビン(i+1)のCCI演算は、ビンiの値を要する可能性がある。データ依存性のパイプライン処理は、1つのマクロブロックに多くて5サイクル要する可能性がある。特に、ビン1は、サイクル0とサイクル1の間の2サイクルで停止状態にあり、ビン2は、サイクル0〜サイクル2の間の3サイクルで停止状態にある。
図5Bは、本発明の実施例に基づいたCABACの複号化のパイプライン構造を説明する概略図である。図5Bと、図3Bと、図3Cと、図4も参照下さい。サイクル0では、隣接のブロックからの情報が得られることができ(GNBの段階)、condTermFlagが計算されることができる(CTFの段階)。また、初期化されたCMsが読み取られることができる(CMRの段階)。
サイクル1では、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン0のCMが選択されて読み込まれることができる(CML)。
サイクル2では、ビン0が復号化されることができ(BAU)、続いて選択されたビン0のCMが更新されることができる(CMU)。更新されたCMは、メモリ33に伝送されることができる。ビン0の復号化されたビン値は、バッファ39に保存されることができる。逆バイナリ変換器(DB)45は、SEの復号化プロセスが完了してなく、且つ信号SE_Validを例えば低ロジックレベルに設定していることを検出することができる。また、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン1のCMが選択されて読み込まれることができる(CML)。
サイクル3では、ビン1は、復号化されることができ(BAU)、続いて選択されたビン1のCMが更新されることができる(CMU)。更新されたCMは、メモリ33に伝送されることができる。ビン1の復号化されたビン値は、バッファ39に保存されることができる。逆バイナリ変換器(DB)45は、SEの復号化プロセスが完了してなく、且つ信号SE_Validを低ロジックレベルに保持していることを検出することができる。また、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン2のCMが選択されて読み込まれることができる(CML)。
サイクル4では、サイクル3に類似しており、ビン2が復号化されることができ(BAU)、続いて選択されたビン2のCMが更新されることができる(CMU)。更新されたCMは、メモリ33に伝送されることができる。ビン2の復号化されたビン値は、バッファ39に保存されることができる。逆バイナリ変換器(DB)45は、SEの復号化プロセスが完了してなく、且つ信号SE_Validを低ロジックレベルに保持していることを検出することができる。また、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビン3のCMが選択されて読み込まれることができる(CML)。
サイクル5では、ビン3が復号化されることができ(BAU)、続いて選択されたビン3のCMが更新されることができる(CMU)。更新されたCMは、メモリ33に伝送されることができる。ビン3の復号化されたビン値は、バッファ39に保存されることができる。逆バイナリ変換器(DB)45は、SEの復号化プロセスが完了し、且つ信号SE_Validを高ロジックレベルに設定していることを検出することができる。
続いてサイクル6では、メモリ33に保存された更新されたCMsは、CMW演算によってメモリ32に書き戻されることができる。また、逆バイナリ変換器45は、SE値、即ち、SE_Valueを発生して、NBU演算によって信号SE_Valueを第1バッファ34と第2バッファ35に書き込むことができる。
図5Aと図5Bを再度参照下さい。CMRの演算は、1つのクロック内で実行されることができる。CMRが1つのクロックサイクル内で完了されることができるように確保するために、同じSEで用いられるコンテキストモデルは、メモリ33の同じアドレスに配置されることができる。図6Aは、従来技術のメモリのコンテキストモデル(CMs)の配置方式を説明する概略図である。各CMが7ビットの長さを有することから、メモリの最小データバス幅は、105ビット(157ビット)となることができて、SE“significant_coeff_flag”は、15セットのCMを用いることができ、全てのシンタックス要素の中で最も長いSEとなる。しかし、このような配置は、メモリ空間が効果的に用いられないことになる。
図6Bは、本発明に基づいたメモリのコンテキストモデル(CMs)の配置方式を説明する概略図である。1つの実施例では、459セットのCMsは、下記に示されるように38のクラスタに分割される。
(1) mb_skip_flag and mb_field_decoding_flag for I and P slice;
(2) mb_skip_flag and mb_field_decoding_flag for B slice;
(3) mb_type and sub_mb_type for I and P slice;
(4) mb_type and sub_mb_type for B slice;
(5)prev_intra4x4_pred_mode_flag, prev_intra8x8_pred_mode_flag, rem_intra4x4_pred_mode, rem_intra8x8_pred_mode, intra_chroma_pred_mode and mb_qp_delta;
(6) mvd_l0 and mvd_l1;
(7) ref_idx_l0, ref_idx_l1 and transform_size_8x8_flag;
(8) coded_block_pattern;
(9) coded_block_flag and coeff_abs_level_minus1 for luma DC block;
(10) coded_block_flag and coeff_abs_level_minus1 for luma AC block;
(11) coded_block_flag and coeff_abs_level_minus1 for 4x4 luma block;
(12) coded_block_flag and coeff_abs_level_minus1 for chroma DC block;
(13) coded_block_flag and coeff_abs_level_minus1 for chroma AC block;
(14) coded_block_flag and coeff_abs_level_minus1 for 8x8 luma block;
(15) significant_coeff_flag for frame-coded luma DC block;
(16) last_significant_coeff_flag for frame-coded luma DC block;
(17) significant_coeff_flag for field-coded luma DC block;
(18) last_significant_coeff_flag for field-coded luma DC block;
(19) significant_coeff_flag for frame-coded luma AC block;
(20) last_significant_coeff_flag for frame-coded luma AC block;
(21) significant_coeff_flag for field-coded luma AC block;
(22) last_significant_coeff_flag for field-coded luma AC block;
(23) significant_coeff_flag for frame-coded 4x4 luma block;
(24) last_significant_coeff_flag for frame-coded 4x4 luma block;
(25) significant_coeff_flag for field-coded 4x4 luma block;
(26) last_significant_coeff_flag for field-coded 4x4 luma block;
(27) significant_coeff_flag for frame-coded chroma DC block;
(28) last_significant_coeff_flag for frame-coded chroma DC block;
(29) significant_coeff_flag for field-coded chroma DC block;
(30) last_significant_coeff_flag for field-coded chroma DC block;
(31) significant_coeff_flag for frame-coded chroma AC block;
(32) last_significant_coeff_flag for frame-coded chroma AC block;
(33) significant_coeff_flag for field-coded chroma AC block;
(34) last_significant_coeff_flag for field-coded chroma AC block;
(35) significant_coeff_flag for frame-coded 8x8 luma block;
(36) last_significant_coeff_flag for frame-coded 8x8 luma block;
(37) significant_coeff_flag for field-coded 8x8 luma block;
(38) last_significant_coeff_flag for field-coded 8x8 luma block
上述の38のクラスタは、下記の規則に基づいてメモリの中に配置されることができる。
規則1: #CMs (SEi) + #CMs (SEi+1) + … + #CMs (SEi+n) ≦ 15
SEは、第i個目のシンタックス要素を表し、#CMs(SE)は、SEはの符号化または復号化に用いられるコンテキストモデルの数を表している。
規則2は、SE、SEi+1、 ...、SEi+n は、符号化または復号化の順序で配列する。
規則1と規則2を用いることで、CMsの数が15に等しい、または15より小さい場合、SEに用いられるCMsは、メモリの同じアドレスでクラスタに配置されることができる。図6Bを参照下さい。各クラスタは、1つのメモリ空間を占有し、1つのクロックサイクルで、15個の7ビットレジスタからなるレジスタバンクに読み込まれることができる。このような配置方式は、メモリ空間の使用量を例えば662バイトから460バイトに減少することができる。また、このような配置は、メモリのアクセス頻度を低下させることができる。例えば、SEのCMsは、“mb_skip_flag”を処理した後、SEsの両方が同じクラスタに属し(2)、SEmb_skip_flagの復号化中に既に読み込まれることができることから、SE“mb_field_decoding_flag”のCMsは、別に読み込まれる必要がなくなる。図6Aに示された配置に比べると、図6Bに示された本発明に基づいた配置は、より効率の良いメモリ空間の使用を達成している。
図7Aは、シンタックス要素SCF[i]とLSCF[i]との間のコンテキストモデルの切り替えを説明する概略図である。図7Aを参照下さい。H.264標準に規格されるように、1ビン(1−bin)SE“last_significant_coeff_flag[i]”(LSCF[i])は、1ビンSE“significant_coeff_flag[i]”(SCF[i])が処理されるまで処理されない。SCF[i]とLSCF[i]の処理は、符号化と復号化を含むことができる。本実施例では、CMの切り替えは、SCF[i]の復号化プロセスが完了した時のサイクル3とLSCF[i]の復号化プロセスが開始した時のサイクル4との間で生じることができる。1ビンLSCF[i]は、位置iにある係数が非ゼロであるかどうかを決めることができ、1ビンSCF[i]は、位置iの後のSCFsが全てゼロであるかどうかを指している。SCF[i]の値が1の場合、LSCF[i]が存在する。このような状況では、LSCF[i]の値も1の場合、続くSCFsは、全てゼロであり、処理される必要がなくなる。一方、SCF[i]の値が0の場合、LSCF[i]は、処理される必要がなくなり、SCF[i+1]は、下記の表3に示すように符号化されることができる。
Figure 2009100474
図7Bに示されたパイプライン構造に比べると、CMの切り替えは、H.264標準に基づいてパイプラインの動作中で3つの停止したサイクルを要する可能性がある。図7Bは、本発明の実施例に基づいたシンタックス要素SCF[i]とLSCF[i]とを処理するパイプライン構造を説明する概略図である。また、図7Cは、本発明の実施例に基づいたシンタックス要素LSCFの専用レジスタバンクを含むメモリ70の概略図である。図7Bを参照下さい。サイクル0では、隣接のブロックからの情報が得られることができ(GNBの段階)、condTermFlagが計算されることができる(CTFの段階)。また、初期化されたCMs、またはSCFのCMクラスタが図7Cに示されたメモリ70のレジスタバンク72に読み込まれることができる(CMRの段階)。
サイクル1では、CMインデックス“ctxIdx”が計算されることができ(CCI)、SCF[i]のCMが選択されて読み込まれることができる(CML)。また、初期化されたCMs、またはLSCFのCMクラスタがメモリ70のレジスタバンク71に読み込まれることができる(CMRの段階)。
サイクル2では、ビンSCF[i]が符号化されることができ(BAU)、続いて選択されたビンSCF[i]のCMが更新されることができる(CMU)。ビンSCF[i]の復号化されたビン値が1の場合、LSCF[i]が存在することを意味し、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビンLSCF[i]のCMが選択されて読み込まれることができる(CML)。ビンSCF[i]の復号化されたビン値が0の場合、LSCF[i]は、処理される必要がなく、CMインデックス“ctxIdx”が計算されることができ(CCI)、ビンSCF[i+1]のCMが選択されて読み込まれることができる(CML)。
サイクル3では、ビンLSCF[i]またはSCF[i+1]が符号化されることができ(BAU)、続いて選択されたビンLSCF[i]またはSCF[i+1]のCMが更新されることができる(CMU)。下記の表4は、解像度1920×1080の画像シーケンス(video sequence)での8M、22M、47Mと、51Mbpsの異なるビット率で、各スライスのコンテキストモデル切り替えの数を示している。本発明に基づいたパイプライン構造は、51Mbpsのビット率で各スライス毎に約3×382284クロックサイクル節約することができる。
Figure 2009100474
図8は、本発明の実施例に基づいたバイナリ変換器80の回路図である。バイナリ変換器80は、SE値と種類に基づいた長さのバイナリ文字列を発生するように構成されることができる。図8を参照下さい。バイナリ変換器80は、5つのROMテーブル81〜85を含むことができる。ツリー構造テーブル81は、SEs“mb_type and sub_mb_type”で用いられ、バイナリ文字列を発生することができる。切り捨て(truncated)テーブル82は、SE“intra_chroma_pred_mode”で用いられることができる。単項(unary)テーブル83は、SEs“ref_idxと“mb_qp_delta” で用いられることができる。SEs“mvd”と“coefficient_abs_level_minusl”の値は、それぞれ接頭部と接尾部から構成されることができる。これらの2つのSEsの接頭部は、切り捨てられた単項コードを含むことができる。mvdの接尾部は、UEG3コードであり、coefficient_abs_level_minuslの接尾部は、UEG0コードである。よって、マルチプレクサ801と802と連結したUEG0テーブル84とUEG3テーブル85は、これらの2つのSEsの接尾部をそれぞれ2値化するように用いられることができる。単項テーブル83とマルチプレクサ803は、接頭部を2値化するように用いられることができる。それぞれマルチプレクサ803と804からのバイナリ文字列の接頭部と接尾部は、連結装置86で互いに連結される。続いて、SEの種類をセレクタ(selector)信号として用い、マルチプレクサ805からバイナリ文字列が発生されることができる。バイナリ変換器80の回路動作は、図12Aを参照にしながら後に説明する。
図9は、本発明の実施例に基づいたバイナリ算術ユニット(BAU)90の回路図である。BAU90は、CABACの符号化と復号化の標準エンジンと、バイパスエンジンと、終止エンジンを含むことができる。変数codIRange(rangeで図示される)とcodILow(Lowで図示される)は、バイナリ算術符号化のプロセス中に更新されることができる。一方、変数codIRangeと他のcodIOffset(Offsetで図示される)は、バイナリ算術復号化のプロセス中に更新されることができる。H.264標準の規格に基づいて、変数codIRangeと、codILowと、codIOffsetを更新するアルゴリズムを下記の表5と、表6と、表7にそれぞれ表示する。
Figure 2009100474
Figure 2009100474
Figure 2009100474
表5〜7は、異なるエンジンと条件において、3つの変数の値が再代入されることができるかどうかを示している。図9を参照下さい。可変Lowと、Offsetと、rangeに加え、変数“bin Val”、“valMPS”と、“rLPS”がBAU90に入力されることができる。変数bin Valの値は、図8に示されたバイナリ変換器80のマルチプレクサ805から発生されることができ、valMPSと、rLPSの値は、対応するCMが決定された時、決定されることができる。BAU90は、rangeと、Offsetと、Lowの値を更新して、更新されたnew_rangeと、new_Offsetと、new_Lowの値を出力することができる。BAU90の回路動作は、図12Bを参照しながら後に説明する。
BAU90は、再規格化装置を含むことができ、BAUの符号器と復号器のcodIRangeが256より小さい時、再規格化のプロセスを行う。図10は、本発明の実施例に基づいた再規格化装置100の回路図である。図10を参照下さい。再規格化装置100は、BAU90からnew_rangeと、new_Offsetと、new_Lowの値を受けることができる。先行ゼロ検出(LZD)装置101は、codIRangeと、codILowと、codIOffsetに左シフトされるビット数を決定するのに用いられることができる。CABACが符号化モードにあり、codIRangeが256より小さい時、3つのパラメータrange_lzn_renormと、low_renormと、EncodeFlushは、FIFO102に入れられることができる。再規格化装置100の回路動作は、図12Cを参照しながら後に説明する。
図11は、本発明の実施例に基づいたビット発生器110の回路図である。図11を参照下さい。ビット発生器110は、実行の流れを制御するための有限状態機械(FSM)を含むことができる。LZD装置111は、変数low_muxの先行ゼロ数を検出するのに用いられることができ、low_muxは、図10に示されたFIFO102からのlow_renormから選択される。先行1検出(leading one detection、LOD)装置112は、変数low_muxの先行1の数を検出するのに用いられることができる。ビット発生器110は、3つの出力信号“bit−write−enable”(bwe)と、“bits_len”と、“bits”を発生することができる。信号bitsは、符号化されたビットストリームを示し、“bits_len”は、符号化されたビットストリームの長さを示し、bweは、信号bitsが有効であることを示している。ビット発生器110の回路動作は、図12Dを参照しながら後に説明する。
図1に挙げられたSE“mb_type”の符号化の回路動作を参照にしながら図12A〜12Dを説明する。図12Aは、図8に示されたバイナリ変換器80の回路動作である。図12Aを参照下さい。SEmb_typeは、I−スライスの種類と例えば25の値を有する。また、表1に見られるように、mb_typeの2値化の種類は、ツリー構造である。mb_typeのSEのスライスの種類とSE値に対応して、ツリー構造テーブル81は、2ビットの長さのバイナリ値“11”を示す出力2’b11を発生することができる。マルチプレクサ805は、0に設定されたセレクタ信号se_typeに基づいて出力値2’b11を出力として選択する。よって、バイナリ変換器80は、25のSE値に基づいて、SEをバイナリ文字列2’b11に2値化する。
図12Bは、図9に示されたBAU90の回路動作である。図12Bを参照下さい。バイナリ文字列2’b11(即ち、11)の第1バイナリ値である、変数“binVal”の初期値は、1である。バイナリ文字列2’b11の第2で、最後でもあるバイナリ値である、変数“binVal”の次の値も1である。表示1(1)では、括弧外の第1の“1”は、binValの初期値を指しており、第2の“1”は、binValの次の値を指している。また、第1binValを符号化している時、変数valMPSと、Lowと、rangeと、rLPSは、それぞれ0、374、458と、150の初期値を有すると仮定することができる。変数“Offset”は、復号化のプロセスに用いられ、符号化のプロセスに用いられないため、数値がない。
binValとvalMPSの値を比べることで、比較装置901が0の値を出力することができる。第1加算器905は、“range”の値から“rLPS”の値を引いて308の値を出力する。マルチプレクサ902、903、906、907と、910のセレクタ信号“decoder”は、符号化プロセス中、“0”に設定されることができ、マルチプレクサ902、903、906、907と、910は、“0”入力端子での値を出力として選択することができる。他の実施例では、復号化プロセス中のセレクタ信号“decoder”は、“1”に設定されることができる。このように、BAU90は、マルチプレクサの選択ピンの値に基づいて、符号化のプロセス中、CABAC符号器となることができ、復号化のプロセス中、CABAC復号器となることができる。また、マルチプレクサ904のセレクタ信号“bypass”は、標準ビンを符号化する時、“0”に設定されることができる。また、マルチプレクサ909のセレクタ信号“dec_mode”は、標準ビンを符号化する時、“00”に設定されることができる。第2加算器912は、マルチプレクサ904と906からの出力値374と308を加えることで682の値を出力する。マルチプレクサ907と908のセレクタ信号は、マルチプレクサ902からの出力によって決定する。続いてマルチプレクサ909からの変数new_rangeの値は、150であり、マルチプレクサ910からの変数new_offsetとnew_lowの値は、682である。変数new_rangeの値が256より小さいことから、再規格化プロセスが求められる可能性がある。
図12Cは、図10に示された再規格化装置100の回路動作である。図12Cを参照下さい。BAU90からの出力変数new_rangeとnew_offsetと、new_lowは、再規格化装置100への出力となることができる。LZD101の入力値が150であり、150のバイナリフォームが010010110であることから、先行0の数は1となるため、LZD101は、1の値を出力することができる。LZDの出力に基づいて、第1左シフター103は、バイナリフォーム010010110を1ビット、左にシフトすることができ、新しいバイナリフォーム100101100、または300の値となる。300の値は、256より大きく、変数new_rangeの150の入力値の倍である。即ち、図12Bの変数“range”は、300の新しい値によって更新され、次のビンの符号化に用いられることができる。また、LZDの出力に基づいて、第2左シフター108は、マルチプレクサ104の680の出力値のバイナリフォーム1010101010を1ビット、左にシフトすることができ、新しいバイナリフォーム0101010100、または340の値となる。AND−ゲートモジュール107は、新しいバイナリフォーム0101010100と10’hlffのmask_bitsにロジック演算(logic AND function)を行うことができる。その中の10’hlffは、10ビットの16進値1ffまたは0111111111であり、340の値となる。
変数new_renormとrange_lzn_renormの値は、それぞれマルチプレクサ105と106の出力値によって決定する。変数EncodeFlushの値は、現在、終止エンジンによって符号化された終止ビンが非ゼロ値を有した場合、0に設定され、終止ビンがゼロ値を有した場合、1にセットされる。変数low_renormと、range_lzn_renormと、EncodeFlushの値は、FIFO102に送り込まれる。
図12Dは、図11に示されたビット発生器110の回路動作である。図12Dを参照下さい。変数low_renormは、バイナリフォームが1010101010の682の値を有し、変数range_lznは、再規格化装置100で決定された1の値を有する。ビット9からビット4、即ち101010は、マルチプレクサ113によって変数low_renormのバイナリフォーム1010101010から取り出され、変数low_muxに割り当てられる。LOD111は、マルチプレクサ114によって選択された、変数low_muxの先行1の数が1であるのを検出する。マルチプレクサ114からの出力に基づいて、左シフター115は、バイナリフォーム1010101010を1ビット、左にシフトし、新しいバイナリフォーム0101010100となる。変数bitOutStandingの値が2とした場合、増加されない。信号bweは、高ロジックであるため、0の値を有する2ビットコードビットストリームが発生されることができる。
図12Bを再度参照下さい。第1ビンが符号化された後、第2と最後のビンも符号化されることができる。変数lowとrangeは、第1ビンを符号化している時に、再規格化装置100でそれぞれ340と300として更新される。valMPSとrLPSの値は、それぞれ0と2と仮定される。マルチプレクサ909のセレクタ信号“dec_mode”は、最後のビンが符号化されるため、終止モードであり“10”に設定される。変数new_rangeは、298であり、256より大きいため、再規格化装置100で倍にされない。図12Cを再度参照下さい。変数range_outは、298に等しい。
以上、本発明の好適な実施例を例示したが、これは本発明を限定するものではなく、本発明の精神及び範囲を逸脱しない限りにおいては、当業者であれば行い得る少々の変更や修飾を付加することが可能である。従って、本発明が請求する保護範囲は、特許請求の範囲を基準とする。
H.264規格におけるビットストリームの構造の概略図である。 コンテキスト適応バイナリ算術符号化(CABAC)の符号化のアルゴリズムを説明する流れ図である。 コンテキスト適応バイナリ算術符号化(CABAC)の復号化のアルゴリズムを説明する流れ図である。 本発明に基づいたシステムのCABACの符号化のパイプラインの段階を説明する概略的な流れ図である。 本発明に基づいたシステムのCABACの復号化のパイプラインの段階を説明する概略的な流れ図である。 本発明に基づいたシステムのCABACの符号化と復号化のパイプラインの段階を説明する概略的な流れ図である。 本発明に基づいたCABACの符号化と復号化のシステム図である。 本発明の実施例に基づいたCABACの符号化のパイプライン構造を説明する概略図である。 本発明の実施例に基づいたCABACの復号化のパイプライン構造を説明する概略図である。 従来技術のメモリのコンテキストモデル(CMs)の配置方式を説明する概略図である。 本発明に基づいたメモリのコンテキストモデル(CMs)の配置方式を説明する概略図である。 シンタックス要素SCF[i]とLSCF[i]との間のコンテキストモデルの切り替えを説明する概略図である。 本発明の実施例に基づいたシンタックス要素SCF[i]とLSCF[i]とを処理するパイプライン構造を説明する概略図である。 本発明の実施例に基づいたシンタックス要素LSCFの専用レジスタバンクを含むメモリの概略図である。 本発明の実施例に基づいたバイナリ変換器の回路図である。 本発明の実施例に基づいたバイナリ算術ユニット(BAU)の回路図である。 本発明の実施例に基づいた再規格化装置の回路図である。 本発明の実施例に基づいたビット発生器の回路図である。 図8に示されたバイナリ変換器の回路動作である。 図9に示されたBAUの回路動作である。 図10に示された再規格化装置の回路動作である。 図11に示されたビット発生器の回路動作である。
符号の説明
10…ビットストリーム
11…スライスヘッダ層
12…スライスデータ層
13…マクロブロック
14…シンタックス要素
15…ビン(バイナリ値)
20…コンテキストモデルの初期化
21、41、80…バイナリ変換器
22…コンテキストモデルセレクター
23…バイナリ算術符号器
24…コンテキストモデルの更新
25、46、110…ビット発生器
26…バイナリ算術復号器
27、45…逆バイナリ変換器
31、32、33、39…メモリ
34、35…バッファ
36…第1レジスタ
37…第2レジスタ
38、102…先入れ先出し装置
40…CABACの符号化と復号化のシステム
42、43…計算装置
44、90…バイナリ算術ユニット(BAU)
47…初期化モジュール
48、801、802、803、804、805、902、903、904、906、907、908、909、910、104、105、106、113、114…マルチプレクサ
51…第1参照テーブル
52…第2参照テーブル
81…ツリー構造テーブル
82…切り捨て(truncated)テーブル
83…単項(unary)テーブル
84…UEG0テーブル
85…UEG3テーブル
86…連結装置
901…比較装置
905…第1加算器
912…第2加算器
100…再規格化装置
101、112…先行ゼロ検出装置
103…第1左シフター
107…AND−ゲートモジュール
108…第2左シフター
111…先行1検出装置
115…左シフター
SE_Value、SE_Valid…信号
ctxIdx…コンテキストモデルインデックス
EncodeFlush、low_renorm、range_lnz_renorm…パラメータ
bits_len、bits_data、bwe、bits…信号
mb_skip_flag、mb_field_decoding_flag、 mb_type、sub_mb_type、prev_intra4x4_pred_mode_flag、coded_block_flag、significant_coeff_flag、last_significant_coeff_flag、coeff_abs_level_minusl、SCF[i]、LSCF[i]、SCF[i+1]、mvd…シンタックス要素
ctxBlockCat…シンタックスブロック種類
Slice_type…シンタックス種類
se_value…シンタックス要素値
UEG_Prefix_Bins…バイナリ文字列の接頭部
UEG_Suffix_Bins…バイナリ文字列の接尾部
BinString…バイナリ文字列
bin Val、valMPS、Low、Offset、range、rLPS、rMPS、mask_bits、new_range、new_offset、new_low、range_out、offset_out、low_out、bitOutStanding、low_mux…変数
decorder、bypass、Decoder&Terminate、dec_mode…セレクタ信号

Claims (30)

  1. コンテキスト適応バイナリ算術符号化と復号化のシステムであって、前記システムは、
    符号化される第1ビンと復号化される第2ビンの1つのインデックス値を計算する計算装置、
    クラスタにコンテキストモデルを保存し、前記第1ビンと前記第2ビンの1つのインデックス値が前記コンテキストモデルの1つに関連したメモリ、及び
    前記1つのコンテキストモデルに基づいて前記第1ビンを符号化する符号器と、前記1つのコンテキストモデルに基づいて前記第2ビンを復号化する復号器の1つとして構成されるバイナリ算術ユニットを含むシステム。
  2. シンタックス要素の値に基づいて、前記シンタックス要素をバイナリ文字列に2値化するバイナリ変換器を更に含む請求項1に記載のシステム。
  3. 前記バイナリ算術ユニットは、前記第1ビンと前記第2ビンの1つの符号化状態と復号化状態の1つに関連した値を有するセレクタ信号によって制御された少なくとも1つのマルチプレクサを含む請求項1または2に記載のシステム。
  4. 前記バイナリ算術ユニットは、前記バイナリ算術ユニットによって発生された第1出力のバイナリフォームの先行ゼロの数(N)を検出する先行ゼロ検出器と、前記第1出力が既定値より小さい場合、前記第1出力の前記バイナリフォームをNビット、左にシフトする左シフターとを含む請求項1〜3のいずれかに記載のシステム。
  5. 前記バイナリ文字列の各ビンのビット文字列を発生するビット発生器を更に含む請求項2〜4のいずれかに記載のシステム。
  6. シンタックス要素の各ビンのビン値を保存するバッファ、及び
    前記シンタックス要素の復号化プロセスが完了されたかどうかを検出し、前記シンタックス要素の復号化プロセスが完了された時、前記各ビンの前記ビン値に基づいて前記シンタックス要素の値を出力する逆バイナリ変換器を更に含む請求項1〜5のいずれかに記載のシステム。
  7. 上ブロックからの情報を保存する第1バッファと、左ブロックからの情報を保存する第2バッファとを更に含み、前記計算装置は、前記第1バッファと前記第2バッファからの前記情報に基づいて第1変数を計算する第1計算モジュールを含む請求項1〜6のいずれかに記載のシステム。
  8. 前記計算装置は、前記第1変数に基づいて前記インデックス値を計算する第2計算モジュールを含む請求項7に記載のシステム。
  9. 前記バイナリ算術ユニットは、前記1つのコンテキストモデルを更新し、前記メモリ素子に更新されたコンテキストモデルを保存する請求項1〜8のいずれかに記載のシステム。
  10. 前記1つのコンテキストモデルに対応して第2変数の第1値を発生する第1参照テーブル、
    前記更新されたコンテキストモデルに対応して前記第2変数の第2値を発生する第2参照テーブル、及び
    前記第1値と前記第2値の1つを選択するマルチプレクサを更に含む請求項9に記載のシステム。
  11. 前記メモリ素子は、シンタックス要素“last_significant_coeff_flag”(LSCF)のコンテキストモデルクラスタを保存する第1レジスタバンクと、他のシンタックス要素のコンテキストモデルクラスタを保存する第2レジスタバンクを含む請求項1〜10のいずれかに記載のシステム。
  12. 前記メモリ素子は、複数のアドレスにコンテキストモデルクラスタを保存し、前記各アドレスに保存されたコンテキストモデルクラスタは、
    #CMs(SE)+#CMs(SEi+1)+…+#CMs(SEi+n) ≦ P
    の条件を満たし、
    SEは、第i個目のシンタックス要素を表し、#CMs(SE)は、処理する順序で配列された、SE、SEi+1、SEi+n の処理プロセスに用いられたコンテキストモデルの数を表しており、Pは、全てのシンタックス要素の中のシンタックス要素のシンタックスモデルのセットの最大数を表している請求項1〜11のいずれかに記載のシステム。
  13. パイプラインフローのコンテキスト適応バイナリ算術符号化と復号化の方法であって、前記方法は、
    第1クロックサイクルで、複数のMビンを有するシンタックス要素に関連したコンテキストモデルを読み出し、少なくとも1つの隣接のブロックから情報を得て、前記シンタックス要素の少なくとも1つの隣接のブロックからの情報に基づいて変数を計算するステップ、
    第2クロックサイクルで、前記変数に基づいて前記シンタックス要素の第1ビンの第1インデックス値を計算し、前記第1インデックス値に基づいて前記第1ビンの前記コンテキストモデルの1つを読み込むステップ、
    第3クロックサイクルで、前記第1ビンに関連した1つの前記コンテキストモデルに基づいて符号化プロセスと復号化プロセスの1つの前記第1ビンを処理し、前記第1ビンを処理した後、前記1つのコンテキストモデルを更新するステップ、
    前記第3クロックサイクルで、前記変数に基づいて前記シンタックス要素の第2ビンの第2インデックス値を計算し、前記第2インデックス値に基づいて前記第2ビンの前記コンテキストモデルの1つを読み込むステップ、及び
    第4クロックサイクルで、前記第2ビンに関連した前記1つのコンテキストモデルに基づいて、前記符号化プロセスと前記復号化プロセスの1つの前記第2ビンを処理し、前記第2ビンを処理した後、前記1つのコンテキストモデルを更新するステップを含む方法。
  14. 第(i+1)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第i個目のビンの第i個目のインデックス値を計算し、前記第i個目のインデックス値に基づいて前記第i個目のビンの前記コンテキストモデルの1つを読み込むステップ、及び
    i≦ Mの第(i+2)クロックサイクルで、前記第i個目のビンに関連した前記1つのコンテキストモデルに基づいて、前記符号化プロセスと前記復号化プロセスの1つの前記第i個目のビンを処理し、前記第i個目のビンを処理した後、前記コンテキストモデルを更新するステップを更に含む請求項13に記載の方法。
  15. 第(i+1)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第i個目のビンの第i個目のインデックス値を計算し、前記第i個目のインデックス値に基づいて前記第i個目のビンの前記コンテキストモデルの1つを読み込むステップ、及び
    第(i+2)クロックサイクルで、前記第i個目のビンを符号化し、前記第i個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    第(i+3)クロックサイクルで、前記第i個目のビンの符号化されたビット文字列を発生するステップを更に含む請求項13または14に記載の方法。
  16. 前記第(i+1)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第(i+1)個目のビンの第(i+1)個目のインデックス値を計算し、前記第(i+1)個目のインデックス値に基づいて前記第(i+1)個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(i+3)クロックサイクルで、前記第(i+1)個目のビンを符号化し、前記第(i+1)個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    第(i+4)クロックサイクルで、前記第(i+1)個目のビンの符号化されたビット文字列を発生するステップを更に含む請求項15に記載の方法。
  17. 前記第(i+2)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第(i+2)個目のビンの第(i+2)個目のインデックス値を計算し、前記第(i+2)個目のインデックス値に基づいて前記第(i+2)個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(i+4)クロックサイクルで、前記第(i+2)個目のビンを符号化し、前記第(i+2)個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    第(i+5)クロックサイクルで、前記第(i+2)個目のビンの符号化されたビット文字列を発生するステップを更に含む請求項16に記載の方法。
  18. 第(i+1)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第i個目のビンの第i個目のインデックス値を計算し、前記第i個目のインデックス値に基づいて前記第i個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(i+2)クロックサイクルで、前記第i個目のビンを復号化し、前記第i個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    前記第(i+2)クロックサイクルで、前記第i個目のビンの復号化されたビン値を保存し、前記シンタックス要素の前記復号化プロセスが完了されたかどうかを検出するステップを更に含む請求項13〜17のいずれかに記載の方法。
  19. 第(i+2)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第(i+1)個目のビンの第(i+1)個目のインデックス値を計算し、前記第(i+1)個目のインデックス値に基づいて前記第(i+1)個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(i+3)クロックサイクルで、前記第(i+1)個目のビンを復号化し、前記第(i+1)個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    前記第(i+3)クロックサイクルで、前記第(i+1)個目のビンの復号化されたビン値を保存し、前記シンタックス要素の前記復号化プロセスが完了されたかどうかを検出するステップを更に含む請求項18に記載の方法。
  20. 第(i+3)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第(i+2)個目のビンの第(i+2)個目のインデックス値を計算し、前記第(i+2)個目のインデックス値に基づいて前記第(i+2)個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(i+4)クロックサイクルで、前記第(i+2)個目のビンを復号化し、前記第(i+2)個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    前記第(i+4)クロックサイクルで、前記第(i+2)個目のビンの復号化されたビン値を保存し、前記シンタックス要素の前記復号化プロセスが完了されたかどうかを検出するステップを更に含む請求項19に記載の方法。
  21. 第(M+1)クロックサイクルで、前記変数に基づいて前記シンタックス要素の第M個目のビンの第M個目のインデックス値を計算し、前記第M個目のインデックス値に基づいて前記第M個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(M+2)クロックサイクルで、前記第M個目のビンを復号化し、前記第M個目のビンに関連した前記1つのコンテキストモデルを更新するステップ、及び
    前記第(M+2)クロックサイクルで、前記第M個目のビンの復号化されたビン値を保存し、前記シンタックス要素の前記復号化プロセスが完了されたかどうかを検出するステップを更に含む請求項20に記載の方法。
  22. 前記第(M+2)クロックサイクルで、前記シンタックス要素を逆2値化し、前記シンタックス要素の値を得るステップ、及び
    第(M+3)クロックサイクルで、前記各第i個目(i=1〜M)のビンに関連したコンテキストモデルを書き戻すステップを更に含む請求項21に記載の方法。
  23. 前記第(M+3)クロックサイクルで、前記シンタックス要素の値を上ブロックからの情報を保存する第1バッファと左ブロックからの情報を保存する第2バッファに書き込むステップを更に含む請求項22に記載の方法。
  24. 前記第1クロックサイクルで、前記シンタックス要素の値に基づいて前記シンタックス要素をバイナリ文字列内に2値化する請求項13〜23のいずれかに記載の方法。
  25. コンテキストモデルクラスタを前記メモリ素子の複数のアドレスのクラスタに保存し、前記各アドレスに保存されたコンテキストモデルクラスタは、
    #CMs(SE)+#CMs(SEi+1)+…+#CMs(SEi+n) ≦ P
    の条件を満たすステップを更に含み、
    SEは、第i個目のシンタックス要素を表し、#CMs(SE)は、処理する順序で配列された、SE、SEi+1、SEi+n の処理プロセスに用いられたコンテキストモデルの数を表しており、Pは、全てのシンタックス要素の中のシンタックス要素のシンタックスモデルのセットの最大数を表している請求項13〜24のいずれかに記載の方法。
  26. パイプラインフローのコンテキスト適応バイナリ算術符号化と復号化の方法であって、前記方法は、
    第1クロックサイクルで、第1シンタックス要素に関連したコンテキストモデルを読み出し、少なくとも1つの隣接のブロックから情報を得て、少なくとも1つの隣接のブロックからの情報に基づいて変数を計算するステップ、
    第2クロックサイクルで、前記変数に基づいて前記第1シンタックス要素の第1ビンの第1インデックス値を計算し、前記第1インデックス値に基づいて前記第1シンタックス要素の前記第1ビンの前記コンテキストモデルの1つを読み込むステップ、
    前記第2クロックサイクルで、第2シンタックス要素に関連したコンテキストモデルを読み取り、前記第1シンタックス要素と前記第2シンタックス要素がデータ処理プロセス中に同時に生じるステップ、
    第3クロックサイクルで、前記第1シンタックス要素の前記第1ビンに関連した前記1つのコンテキストモデルに基づいて前記第1シンタックス要素の前記第1ビンを復号化し、前記第1シンタックス要素の前記第1ビンの値を得るステップ、
    前記第1シンタックス要素の前記第1個目のビンの値の1つのレベルに対応した第3クロックサイクルで、前記変数に基づいて前記第2シンタックス要素の第1ビンの第1インデックス値を計算し、前記第1インデックス値に基づいて前記第2シンタックス要素の前記第1ビンの前記コンテキストモデルの1つを読み込むステップ、及び
    前記第1シンタックス要素の前記第1個目のビンの値の他の1つのレベルに対応した第3クロックサイクルで、前記変数に基づいて前記第1シンタックス要素の第2ビンの第2インデックス値を計算し、前記第2インデックス値に基づいて前記第1シンタックス要素の前記第2ビンの前記コンテキストモデルの1つを読み込むステップを含む方法。
  27. 前記第1シンタックス要素は、“significant_coeff_flag”を含み、前記第1シンタックス要素は、“last_significant_coeff_flag”を含む請求項26に記載の方法。
  28. 第(i+1)クロックサイクルで、前記変数に基づいて前記第1シンタックス要素の第i個目のビンの第i個目のインデックス値を計算し、前記第i個目のインデックス値に基づいて前記第1シンタックス要素の前記第i個目のビンの前記コンテキストモデルの1つを読み込むステップ、
    第(i+2)クロックサイクルで、前記第1シンタックス要素の前記第i個目のビンに関連した前記1つのコンテキストモデルに基づいて前記第1シンタックス要素の前記第i個目のビンを復号化し、前記第1シンタックス要素の前記第i個目のビンの値を得るステップ、
    前記第1シンタックス要素の前記第i個目のビンの値の1つのレベルに対応した前記第(i+2)クロックサイクルで、前記変数に基づいて前記第2シンタックス要素の第i個目のビンの第i個目のインデックス値を計算し、前記第i個目のインデックス値に基づいて前記第2シンタックス要素の前記第i個目のビンの前記コンテキストモデルの1つを読み込むステップ、及び
    前記第1シンタックス要素の前記第i個目のビンの値の他の1つのレベルに対応した前記第(i+2)クロックサイクルで、前記変数に基づいて前記第1シンタックス要素の第(i+1)個目のビンの第(i+1)個目の(i+1)インデックス値を計算し、
    前記第(i+1)個目のインデックス値に基づいて前記第1シンタックス要素の前記第(i+1)個目のビンの前記コンテキストモデルの1つを読み込むステッを更に含む請求項26または27に記載の方法。
  29. コンテキストモデルクラスタを前記メモリ素子の複数のアドレスのクラスタに保存し、前記各アドレスに保存されたコンテキストモデルクラスタは、
    #CMs(SE)+#CMs(SEi+1)+…+#CMs(SEi+n) ≦ P
    の条件を満たすステップを更に含み、
    SEは、第i個目のシンタックス要素を表し、#CMs(SE)は、処理する順序で配列された、SE、SEi+1、SEi+n の処理プロセスに用いられたコンテキストモデルの数を表しており、Pは、全てのシンタックス要素の中のシンタックス要素のシンタックスモデルのセットの最大数を表している請求項26〜28のいずれかに記載の方法。
  30. 前記第2シンタックス要素“last_significant_coeff_flag”(LSCF)のコンテキストモデルクラスタを保存する第1レジスタバンクを指定するステップ、及び
    前記第1シンタックス要素を含む他のシンタックス要素のコンテキストモデルクラスタを保存する第2レジスタバンクを指定するステップを更に含む請求項26〜29のいずれかに記載の方法。
JP2008265241A 2007-10-16 2008-10-14 コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法 Active JP4886755B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US98025607P 2007-10-16 2007-10-16
US60/980,256 2007-10-16
US12/189,457 US7777654B2 (en) 2007-10-16 2008-08-11 System and method for context-based adaptive binary arithematic encoding and decoding
US12/189,457 2008-08-11

Publications (2)

Publication Number Publication Date
JP2009100474A true JP2009100474A (ja) 2009-05-07
JP4886755B2 JP4886755B2 (ja) 2012-02-29

Family

ID=40352378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008265241A Active JP4886755B2 (ja) 2007-10-16 2008-10-14 コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法

Country Status (5)

Country Link
US (1) US7777654B2 (ja)
EP (3) EP2978136A1 (ja)
JP (1) JP4886755B2 (ja)
KR (1) KR100955418B1 (ja)
TW (1) TWI396446B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515894A (ja) * 2011-04-01 2014-07-03 エルジー エレクトロニクス インコーポレイティド エントロピ復号方法及びそれを利用する復号装置
JP2014533058A (ja) * 2011-11-08 2014-12-08 サムスン エレクトロニクス カンパニー リミテッド ビデオの算術符号化方法及びその装置、並びにビデオの算術復号化方法及びその装置
JP2015510319A (ja) * 2012-01-20 2015-04-02 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 変換係数符号化
KR20150103044A (ko) * 2010-07-28 2015-09-09 노키아 코포레이션 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008289125A (ja) * 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
JP4382840B2 (ja) * 2007-08-20 2009-12-16 Nttエレクトロニクス株式会社 2値算術符号化装置
US20100040136A1 (en) * 2008-08-13 2010-02-18 Horizon Semiconductors Ltd. Method for performing binarization using a lookup table
TWI482499B (zh) * 2008-10-03 2015-04-21 Ind Tech Res Inst 影像訊號處理裝置和方法
CN101500164B (zh) * 2008-12-31 2011-09-28 深圳市同洲电子股份有限公司 算术编码的打包输出的方法和装置
KR101527085B1 (ko) * 2009-06-30 2015-06-10 한국전자통신연구원 인트라 부호화/복호화 방법 및 장치
CN102667921B (zh) 2009-10-20 2014-09-10 弗兰霍菲尔运输应用研究公司 音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法
MX2012008075A (es) 2010-01-12 2013-12-16 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio, metodo para codificar e informacion de audio, metodo para decodificar una informacion de audio y programa de computacion utilizando una modificacion de una representacion de un numero de un valor de contexto numerico previo.
US7961122B1 (en) * 2010-02-03 2011-06-14 Himax Media Solutions, Inc. Multi-bin CABAC bypass bin decoder
DK2559246T3 (en) 2010-04-13 2016-09-19 Ge Video Compression Llc Fusion of sample areas
KR101447796B1 (ko) 2010-04-13 2014-10-07 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 평면 간 예측
JP5856143B2 (ja) 2010-04-13 2016-02-09 ジーイー ビデオ コンプレッション エルエルシー 細分割を使用した2次元情報信号の空間的なサンプリングの符号化
PT3301648T (pt) 2010-04-13 2020-04-20 Ge Video Compression Llc Herança em matriz de amostras em subdivisão multitree
TWI403170B (zh) * 2010-05-21 2013-07-21 Univ Nat Chiao Tung 背景調適性二進制算術解碼裝置及其解碼方法
US9591320B2 (en) 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
KR101530285B1 (ko) * 2010-08-17 2015-06-19 삼성전자주식회사 가변적 트리 구조의 변환 단위를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법 및 그 장치
CN102231830B (zh) * 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
CN102595108B (zh) * 2011-01-05 2017-02-01 中兴通讯股份有限公司 一种语法元素的编码方法及装置
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
EP4228264A1 (en) 2011-06-23 2023-08-16 Sun Patent Trust Image decoding device, image encoding device
TWI581615B (zh) 2011-06-24 2017-05-01 Sun Patent Trust A decoding method, a coding method, a decoding device, an encoding device, and a coding / decoding device
WO2012176465A1 (ja) 2011-06-24 2012-12-27 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
EP2725793A4 (en) 2011-06-27 2014-12-03 Panasonic Ip Corp America IMAGE DECODING METHOD, IMAGE ENCODING METHOD, IMAGE DECODING DEVICE, IMAGE ENCODING DEVICE, AND IMAGE ENCODING / DECODING DEVICE
MX352866B (es) * 2011-06-28 2017-12-13 Nec Corp Metodo para codificar parametro de cuantificacion de video y metodo para decodificar parametro de cuantificacion de video.
RU2602671C2 (ru) 2011-06-28 2016-11-20 Сан Пэтент Траст Способ декодирования изображений, способ кодирования изображений, устройство декодирования изображений, устройство кодирования изображений и устройство кодирования и декодирования изображений
KR102006032B1 (ko) 2011-06-29 2019-07-31 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
US9258565B1 (en) * 2011-06-29 2016-02-09 Freescale Semiconductor, Inc. Context model cache-management in a dual-pipeline CABAC architecture
US8798139B1 (en) 2011-06-29 2014-08-05 Zenverge, Inc. Dual-pipeline CABAC encoder architecture
WO2013001769A1 (ja) 2011-06-30 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
CN107181948B (zh) 2011-06-30 2020-03-13 太阳专利托管公司 图像编码方法、图像编码装置及图像编码解码装置
AU2012278484B2 (en) 2011-07-01 2016-05-05 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding using hierarchical data unit, and method and apparatus for decoding
RU2714371C2 (ru) 2011-07-11 2020-02-14 Сан Пэтент Траст Способ декодирования изображений, способ кодирования изображений, устройство декодирования изображений, устройство кодирования изображений и устройство кодирования и декодирования изображений
MX2013015212A (es) 2011-08-04 2014-03-21 Mediatek Inc Metodo y aparato para la binarizacion reordenada de elementos de sintaxis en la codificacion aritmetica binaria adaptativa basada en el contexto.
IN2014KN00990A (ja) 2011-11-11 2015-10-09 Fraunhofer Ges Forschung
WO2013068548A2 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient multi-view coding using depth-map estimate for a dependent view
EP2781087A4 (en) * 2011-11-15 2015-08-12 Intel Corp VIDEO ENCODER WITH CODING CABO WITH TWO CELLS PER CLOCK
EP3739886A1 (en) 2011-11-18 2020-11-18 GE Video Compression, LLC Multi-view coding with efficient residual handling
US9729884B2 (en) 2012-01-18 2017-08-08 Lg Electronics Inc. Method and device for entropy coding/decoding
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US10616581B2 (en) * 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
CN103220509B (zh) * 2012-01-21 2017-12-15 中兴通讯股份有限公司 自适应控制算术编码bin数量的方法、编码器和解码器
TWI514851B (zh) * 2012-02-15 2015-12-21 Novatek Microelectronics Corp 影像編碼/解碼系統與其方法
CN103260023A (zh) * 2012-02-21 2013-08-21 联咏科技股份有限公司 图像编码/解码系统与其方法
JP6156723B2 (ja) * 2012-03-08 2017-07-05 サン パテント トラスト 画像符号化方法、画像復号化方法、画像符号化装置および画像復号化装置
US9584802B2 (en) * 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
CN104350753B (zh) * 2012-06-01 2019-07-09 威勒斯媒体国际有限公司 算术解码装置、图像解码装置、算术编码装置以及图像编码装置
KR102257542B1 (ko) 2012-10-01 2021-05-31 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
US10009606B2 (en) * 2012-10-11 2018-06-26 Nvidia Corporation Low power context adaptive binary arithmetic decoder engine
WO2015003554A1 (en) * 2013-07-08 2015-01-15 Mediatek Singapore Pte. Ltd. Method of simplified cabac coding in 3d video coding
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
CN112040247B (zh) * 2018-09-10 2021-09-21 华为技术有限公司 视频解码方法、视频解码器以及计算机可读存储介质
CN113038140A (zh) * 2019-12-24 2021-06-25 扬智电子科技(中国)有限公司 视频解码方法与视频解码装置
CN113141508B (zh) * 2020-01-17 2024-03-26 阿里巴巴集团控股有限公司 算术编码器及实现算术编码的方法和图像编码方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09148941A (ja) * 1995-11-24 1997-06-06 Matsushita Graphic Commun Syst Inc 算術符号化・復号化装置
JPH11103257A (ja) * 1997-09-29 1999-04-13 Canon Inc 算術符号化復号化装置
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2007116501A (ja) * 2005-10-21 2007-05-10 Victor Co Of Japan Ltd 算術符号復号化装置。
JP2008113348A (ja) * 2006-10-31 2008-05-15 Sony Corp 符号化復号装置、復号方法、並びにプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US20050259747A1 (en) 2004-05-21 2005-11-24 Broadcom Advanced Compression Group, Llc Context adaptive binary arithmetic code decoder for decoding macroblock adaptive field/frame coded video data
JP4327036B2 (ja) * 2004-07-15 2009-09-09 株式会社東芝 算術符号復号化方法及びその装置
KR100648258B1 (ko) 2004-08-02 2006-11-23 삼성전자주식회사 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US7224412B2 (en) 2004-08-16 2007-05-29 Rightech Corporation Ceiling suction type digital television device
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
KR100694098B1 (ko) 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
US7804903B2 (en) 2005-06-27 2010-09-28 Intel Corporation Hardware-based CABAC decoder
CN100584025C (zh) * 2005-08-04 2010-01-20 华为技术有限公司 一种基于内容自适应的算术解码系统及装置
CN100466739C (zh) * 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
KR100644713B1 (ko) 2005-10-31 2006-11-10 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치
KR100717052B1 (ko) 2005-11-08 2007-05-10 삼성전자주식회사 Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치
KR100717055B1 (ko) * 2005-11-18 2007-05-10 삼성전자주식회사 Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09148941A (ja) * 1995-11-24 1997-06-06 Matsushita Graphic Commun Syst Inc 算術符号化・復号化装置
JPH11103257A (ja) * 1997-09-29 1999-04-13 Canon Inc 算術符号化復号化装置
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2007116501A (ja) * 2005-10-21 2007-05-10 Victor Co Of Japan Ltd 算術符号復号化装置。
JP2008113348A (ja) * 2006-10-31 2008-05-15 Sony Corp 符号化復号装置、復号方法、並びにプログラム

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150103044A (ko) * 2010-07-28 2015-09-09 노키아 코포레이션 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치
KR101638300B1 (ko) 2010-07-28 2016-07-08 노키아 코포레이션 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치
JP2019193299A (ja) * 2011-04-01 2019-10-31 エルジー エレクトロニクス インコーポレイティド ビデオ符号化方法及びビデオ符号化装置
JP2015111960A (ja) * 2011-04-01 2015-06-18 エルジー エレクトロニクス インコーポレイティド エントロピ復号方法及びそれを利用する復号装置
US10015523B2 (en) 2011-04-01 2018-07-03 Lg Electronics Inc. Entropy decoding method, and decoding apparatus using same
JP2016123119A (ja) * 2011-04-01 2016-07-07 エルジー エレクトロニクス インコーポレイティド エントロピ復号方法及びそれを利用する復号装置
JP2018113703A (ja) * 2011-04-01 2018-07-19 エルジー エレクトロニクス インコーポレイティド エントロピ復号方法及びそれを利用する復号装置
US9420313B2 (en) 2011-04-01 2016-08-16 Lg Electronics Inc. Entropy decoding method, and decoding apparatus using same
JP7250892B2 (ja) 2011-04-01 2023-04-03 エルジー エレクトロニクス インコーポレイティド 映像符号化方法及び映像に対するデータの送信方法
US9602843B2 (en) 2011-04-01 2017-03-21 Lg Electronics Inc. Entropy decoding method using context information
US11616989B2 (en) 2011-04-01 2023-03-28 Lg Electronics Inc. Entropy decoding method, and decoding apparatus using same
JP2017139776A (ja) * 2011-04-01 2017-08-10 エルジー エレクトロニクス インコーポレイティド エントロピ復号方法及びそれを利用する復号装置
JP2022036088A (ja) * 2011-04-01 2022-03-04 エルジー エレクトロニクス インコーポレイティド 映像符号化方法及び映像に対するデータの送信方法
JP2020191689A (ja) * 2011-04-01 2020-11-26 エルジー エレクトロニクス インコーポレイティド ビデオ符号化方法及びビデオ符号化装置
US10841622B2 (en) 2011-04-01 2020-11-17 Lg Electronics Inc. Entropy encoding method, entropy decoding method, and apparatus using same
JP2014515894A (ja) * 2011-04-01 2014-07-03 エルジー エレクトロニクス インコーポレイティド エントロピ復号方法及びそれを利用する復号装置
JP2014533058A (ja) * 2011-11-08 2014-12-08 サムスン エレクトロニクス カンパニー リミテッド ビデオの算術符号化方法及びその装置、並びにビデオの算術復号化方法及びその装置
US9888263B2 (en) 2011-11-08 2018-02-06 Samsung Electronics Co., Ltd. Method and device for arithmetic coding of video, and method and device for arithmetic decoding of video
US9888261B2 (en) 2011-11-08 2018-02-06 Samsung Electronics Co., Ltd. Method and device for arithmetic coding of video, and method and device for arithmetic decoding of video
US9438933B2 (en) 2011-11-08 2016-09-06 Samsung Electronics Co., Ltd. Method and device for arithmetic coding of video, and method and device for arithmetic decoding of video
US9888262B2 (en) 2011-11-08 2018-02-06 Samsung Electronics Co., Ltd. Method and device for arithmetic coding of video, and method and device for arithmetic decoding of video
US9888264B2 (en) 2011-11-08 2018-02-06 Samsung Electronics Co., Ltd. Method and device for arithmetic coding of video, and method and device for arithmetic decoding of video
US10462487B2 (en) 2012-01-20 2019-10-29 Ge Video Compression, Llc Transform coefficient coding
US10757447B2 (en) 2012-01-20 2020-08-25 Ge Video Compression, Llc Transform coefficient coding
US10582219B2 (en) 2012-01-20 2020-03-03 Ge Video Compression, Llc Transform coefficient coding
US10045049B2 (en) 2012-01-20 2018-08-07 Ge Video Compression Llc Transform coefficient coding
JP2015510319A (ja) * 2012-01-20 2015-04-02 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 変換係数符号化
US9712844B2 (en) 2012-01-20 2017-07-18 Ge Video Compression, Llc Transform coefficient coding
US11616982B2 (en) 2012-01-20 2023-03-28 Ge Video Compression, Llc Transform coefficient coding
US10271068B2 (en) 2012-01-20 2019-04-23 Ge Video Compression, Llc Transform coefficient coding
US11968395B2 (en) 2012-01-20 2024-04-23 Ge Video Compression, Llc Transform coefficient coding

Also Published As

Publication number Publication date
KR20090038808A (ko) 2009-04-21
US7777654B2 (en) 2010-08-17
EP2922208A1 (en) 2015-09-23
EP2978136A1 (en) 2016-01-27
TWI396446B (zh) 2013-05-11
EP2051383A3 (en) 2014-08-06
TW200920141A (en) 2009-05-01
US20090096643A1 (en) 2009-04-16
JP4886755B2 (ja) 2012-02-29
KR100955418B1 (ko) 2010-05-04
EP2051383A2 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
JP4886755B2 (ja) コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法
JP6560393B2 (ja) エントロピー符号化におけるコンテキスト初期化
US7385535B2 (en) Decoding system and method based on context-based adaptive binary arithmetic coding
JP5006451B2 (ja) 最適cabac復号器
US7817864B2 (en) Coding apparatus and decoding apparatus
JP4313771B2 (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
US7365660B2 (en) Method and device for decoding syntax element in CABAC decoder
US7710296B2 (en) N-bin arithmetic coding for context adaptive binary arithmetic coding
KR100717055B1 (ko) Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
JPH10107645A (ja) 符号化器及び符号化システム
US20200177883A1 (en) Context initialization in entropy coding
Pastuszak High-speed architecture of the CABAC probability modeling for H. 265/HEVC encoders
KR102109768B1 (ko) Uhd 영상의 고속 처리를 위한 cabac 이진 산술 부호화기
KR0159296B1 (ko) 영상신호의 가변장 부호화 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4886755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250