JP5961189B2 - 算術符号化及び終了のための方法及び装置 - Google Patents

算術符号化及び終了のための方法及び装置 Download PDF

Info

Publication number
JP5961189B2
JP5961189B2 JP2013549569A JP2013549569A JP5961189B2 JP 5961189 B2 JP5961189 B2 JP 5961189B2 JP 2013549569 A JP2013549569 A JP 2013549569A JP 2013549569 A JP2013549569 A JP 2013549569A JP 5961189 B2 JP5961189 B2 JP 5961189B2
Authority
JP
Japan
Prior art keywords
value
arithmetic
bin
bitstream
equal
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.)
Active
Application number
JP2013549569A
Other languages
English (en)
Other versions
JP2014507868A (ja
Inventor
フランク ジャン ボッセン,
フランク ジャン ボッセン,
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2014507868A publication Critical patent/JP2014507868A/ja
Application granted granted Critical
Publication of JP5961189B2 publication Critical patent/JP5961189B2/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/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
    • 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
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

関連出願
[0001]本特許文書は、2011年1月14日に出願された米国特許仮出願第61/433,051号の、米国特許法第119条(e)に基づく出願日の利益を主張するものであり、この仮出願は参照により本明細書に組み込まれる。
背景
1.技術分野の主題
[0002]本発明は、算術符号化に関し、特に、算術符号化の終了のための方法及び装置に関する。
2.背景情報
[0003]算術符号化は、画像やオーディオなどのメディアデータの圧縮にうまく応用されてきた。参照により本明細書に組み込まれる、ITU−T及びMPEGによって提案された最も新しいビデオ符号化標準であるH.264/AVCは、H.263やMPEG2など以前の符号化標準に勝る、大幅な性能向上を達成する。H.264/AVC標準は、2つの異なるエントロピー符号化方法、すなわち、コンテキストベースの適応可変長符号化(CAVLC、Context−based Adaptive Variable Length Coding)及びコンテキストベースの適応2値算術符号化(CABAC、Context−based Adaptive Binary Arithmetic Coding)をサポートする。CABACは、CAVLCと比較して、9%〜14%の平均ビットレート節約で、より高い符号化効率をもたらす。参照により本明細書に組み込まれる、Li Liu及びXinhua Zhuang「CABAC Based Bit Estimation for First H.264 Rd Optimization Decision」、IEEE、2009年を参照されたい。
[0004]CABAC符号化プロセスの基本的な考え方は、再帰的な区間分割である。CABACエンジンは、2つのレジスタを保持する。第1のレジスタは、9ビットのレンジレジスタである。第2のレジスタは、通常モードでは9ビットでありバイパスモードでは10ビットであるオフセットレジスタである。レンジレジスタは、現在の区間の幅を常に把握している。オフセットは、ビットストリームからのものであり、レンジ内の現在位置をポイントする。ビン(bin)を復号するとき、レンジは、ビンに固有の発生確率に応じて、2つのサブ区間に分割される。ビンが復号された後、レンジ及びオフセットは更新される。1つのビンを復号した後、レンジ及びオフセットは再正規化されて、次のビンを復号するための精度が維持されることになる。これにより、9ビットレジスタのレンジの最上位ビットが常に1であることが確実になる。
[0005]算術符号化の終了は、通常、算術エンコーダがスライスの終わりに到達したときに発生する。スライス中のマクロブロックの数が可変なので、CABACの実施のためには、H.264/AVCは、スライス中の各マクロブロックにつき、「end_of_slice_flag」と呼ばれる終了シンタックス要素を符号化して、符号化済みスライスの終わりをデコーダにシグナリングすることを必要とする。所与のマクロブロックがスライス中の最後のマクロブロックでない場合は、このフラグが0にセットされてデコーダにシグナリングされるが、所与のマクロブロックがスライス中の最後のマクロブロックである場合は、このフラグが1にセットされてデコーダにシグナリングされる。このフラグは、終了しないマクロブロックのイベントが、最も可能性の高いMPS確率に関係するように、特に指定された非適応確率モデルを使用して符号化される。end_of_slice_flagにより、デコーダは、符号化済みスライス中の最後のマクロブロックが復号されたかどうか判定することができる。
[0006]図1に、H.264/AVC標準において指定される、終了前のCABAC符号化手順を例示するフローチャートを示す。H.264/AVCの図9−11を参照されたい。図1では、ステップ101で、codIRangeの値が2つデクリメントされる。次いで、ステップ102で、符号化されているビン値(binVal)が0に等しくないかどうか判定される。ビン値が0に等しい場合、又は、0に等しい終了シンタックス要素のイベントをビンが含む場合は(これは、エンコーダがスライスの終わりに到達していないことを意味する)、ステップ103で再正規化手順が実施され、終了シンタックス要素(=0)が符号化される。符号化されているビン値が0に等しくない場合、又は、1に等しい終了シンタックス要素のイベントをビンが含む場合は(これは、エンコーダがスライスの終わりに到達したことを意味する)、CABAC符号化は終了し、ステップ104で、codILowの値が、codILowの値とcodIRangeの値との合計に設定される。次いで、プロセスはステップ105に進み、ここで、エンコーダフラッシング手順が実施され、終了シンタックス要素(=1)が符号化される。例示的なエンコーダフラッシング手順が、H.264/AVCの図9−12に指定されている。最後に、ステップ106で、BinCountsInNALunitsが1つインクリメントされる。
[0007]図2に、H.264/AVCにおいて指定される、終了前のCABAC復号プロセスを例示するフローチャートを示す。H.264/AVCの図9−6を参照されたい。図2では、ステップ201で、codIRangeの値が2つデクリメントされる。次いで、ステップ202で、codIOffesetの値がcodIRangeの値以上であるかどうか判定される。そうでない場合は、ステップ203で、ビン値が0にセットされるが、これは、デコーダが符号化済みスライスの終わりに到達していないことを意味する。次いで、プロセスはステップ204に進んで、再正規化手順を実施する。codIOffesetの値がcodIRangeの値以上である場合は(これは、デコーダが符号化済みスライスの終わりに到達したことを意味する)、ステップ205でビン値が1にセットされ、CABAC復号手順は終了する。
[0008]図1に示す符号化プロセスは、スライス中の各マクロブロックにつき実施されることに留意されたい。スライス中のそれぞれのマクロブロックごとに繰り返されるので、終了シンタックス要素の符号化は必然的に、ビットストリーム中のビットが増加する結果となり、これは望ましくない。終了シンタックス要素を符号化する結果として生じるビット増加に対して支払うことになるコストは、それほど大きくないと考えられるかもしれないが、このコストは、スライスの粒度が増大するのに伴って増加する。例えば、スライスは、従来の16×16マクロブロックではなく、8×8マクロブロックなど、増大した粒度で定義されることがある。粒度の増大は、ターゲットビット数により近いビット数でスライスを定義できるという点で、有益である。しかし、粒度が16×16から8×8に増大した場合、終了シンタックス要素を符号化することによって増加するビットのオーバヘッドは、4倍になる。
[0009]従来の算術コーダが被る上記の問題に鑑みて、本発明は、終了区分要素を符号化する結果として生じるビットの増加を回避するために、終了シンタックス要素をスライス中のそれぞれのマクロブロックごとに符号化することを不要にする。
[0010]本発明は、算術エンコーダ、及び、算術エンコーダ中で実施される方法を提供する。エンコーダは、まず、ビン値が算術符号化の終了を示すかどうか判定する。ビン値が算術符号化の終了を示さないと判定された場合は、そのように判定されたビン値についてビットストリーム中にビットは書き込まれない。ビン値が算術符号化の終了を示すと判定された場合は、ビットストリーム中に停止ビットが書き込まれる。
[0011]ビン値が算術符号化の終了を示すと判定された場合、エンコーダは、オフセット値を、オフセット値と、レンジ値を所定数デクリメントした値との合計に設定する。所定数は、2以外の数であって、最低確率シンボルに割当て可能な最小区間以下の数とすることができる。所定数は、2の累乗に等しいものとすることができる。
[0012]本発明はまた、算術デコーダ、及び、算術デコーダ中で実施される方法を提供する。本発明は終了シンタックスをスライス中の各マクロブロックにつき符号化することを不要にするので、デコーダは、符号化済みスライス中のビットの数と、デコーダによって取り込まれたビットの数とを比較することによって、コードスライスの終わりを検出する。符号化済みスライス中のビットの数は、エンコーダから受け取ったビットストリームに含まれるビットの数から導出される。特に、符号化済みスライス中のビットの数は、ビットストリーム中の最後のバイトに含まれる停止ビットに先立つビットの数である。
[0013]復号プロセスが符号化済みスライスの終わりに到達していないとデコーダが判定した場合は、デコーダは、ビン値を、そのように判定された復号プロセスを示す第1の値に設定する。一方、復号プロセスが符号化済みスライスの終わりに到達したとデコーダが判定した場合は、デコーダはさらに、オフセット値が、レンジ値を所定数デクリメントした値以上であるかどうか判定する。オフセット値が、レンジ値を所定数デクリメントした値以上であると判定された場合は、デコーダは、ビン値を、復号プロセスが符号化済みスライスの終わりに到達したことを示す第2の値に設定する。オフセット値がそうでないと判定された場合は、デコーダは、ビン値を第1の値に設定する。
[0014]デコーダ中で使用される所定数は、2以外の数であって、最低確率シンボルに割当て可能な最小区間以下の数とすることができる。所定数は、2の累乗に等しいものとすることができる。
[0015] 従来の、終了前の符号化手順を示すフローチャートである。
[0016] 従来の、終了前の復号手順を示すフローチャートである。
[0017] 本発明を実現できるコンピュータの例示的なハードウェアアーキテクチャを示すブロック図である。
[0018] 本発明を適用できるビデオエンコーダの概観を示すブロック図である。
[0019] 本発明を適用できるビデオデコーダの概観を示すブロック図である。
[0020] 本発明の一実施形態によるエントロピーコーダの機能モジュールを示すブロック図である。
[0021] 本発明の別の実施形態によるエントロピーデコーダの機能モジュールを示すブロック図である。
[0022] 本発明の一実施形態による、例示的な終了前の符号化手順を示すフローチャートである。
[0023] 図8のステップ803で実施される例示的なフラッシング手順を示すフローチャートである。
[0024] 本発明の別の実施形態による復号手順の概観を示すフローチャートである。
[0025] 本発明の実施形態による、例示的な終了前の符号化手順を示すフローチャートである。
[0026]図3に、本発明を実現できるコンピュータ300の例示的なハードウェアアーキテクチャを示す。図3に示すハードウェアアーキテクチャは、本発明の実施形態を実現するビデオエンコーダとビデオデコーダの両方において一般的なものとすることができることに留意されたい。コンピュータ300は、プロセッサ301と、メモリ302と、記憶デバイス305と、1つ又は複数の入力及び/又は出力(I/O)デバイス306(又は周辺装置)とを備え、これらはローカルインタフェース307を介して通信可能に結合される。ローカルインタフェース305は、例えば、当技術分野で知られるように1つ又は複数のバス又は他の有線若しくはワイヤレス接続とすることができるが、これらに限定されない。
[0027]プロセッサ301は、ソフトウェア、特に、メモリ302に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサ301は、任意のカスタムメード若しくは市販のプロセッサ、中央処理装置(CPU)、コンピュータ300に関連するいくつかのプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップ若しくはチップセットの形の)、又は一般に、ソフトウェア命令を実行するための任意のデバイスとすることができる。
[0028]メモリ302は、揮発性メモリ要素(例えばランダムアクセスメモリ(DRAM、SRAM、SDRAMなどのRAM))及び不揮発性メモリ要素(例えばROM、ハードドライブ、テープ、CDROMなど)のうちの任意の1つ又は組合せを含みうるコンピュータ可読媒体を含む。さらに、メモリ302は、電子、磁気、光学、及び/又は他のタイプの記憶媒体を組み込むことができる。コンピュータ可読媒体は、命令実行システム、装置、又はデバイスによって使用するか又はこれらと共に使用するためのプログラムを、記憶、通信、伝搬、又は移送することのできる、任意の手段とすることができる。留意されたいが、メモリ302は分散アーキテクチャを有してもよく、その場合、様々な構成要素は、相互から離れて位置するが、プロセッサ301によってアクセスすることができる。
[0029]メモリ302中のソフトウェア303は、1つ又は複数の別々のプログラムを含むことができ、各プログラムは、後述するようなコンピュータ300の論理的機能を実現するための実行可能命令の順序付きリストを含む。図3の例では、メモリ302中のソフトウェア303は、本発明による、コンピュータ300のビデオ符号化又はビデオ復号の機能を定義する。加えて、必須ではないが、メモリ302がオペレーティングシステム(O/S)304を含むことも可能である。オペレーティングシステム304は本質的に、コンピュータプログラムの実行を制御し、スケジューリング、入出力制御、ファイル及びデータの管理、メモリ管理、並びに、通信制御及び関連サービスを提供する。
[0030]コンピュータ300の記憶デバイス305は、固定記憶デバイス又はポータブル記憶デバイスを含めた、多くの異なるタイプの記憶デバイスのうちの1つとすることができる。例として、記憶デバイス305は、磁気テープ、ディスク、フラッシュメモリ、揮発性メモリ、又は異なる記憶デバイスとすることができる。加えて、記憶デバイス305は、セキュアなディジタルメモリカード、又はいずれか他の取外し可能な記憶デバイス305とすることもできる。
[0031]I/Oデバイス306は、入力デバイスを含むことができ、入力デバイスは、例えばタッチスクリーン、キーボード、マウス、スキャナ、マイクロホン、又は他の入力デバイスだが、これらに限定されない。さらに、I/Oデバイス306は、出力デバイスを含むことができ、出力デバイスは、例えば表示装置又は他の出力デバイスだが、これらに限定されない。I/Oデバイス306は、入力と出力の両方を介して通信するデバイスをさらに含むことができ、このようなデバイスは、例えば、変調器/復調器(別のデバイスやシステムやネットワークにアクセスするための、モデム)、無線周波数(RF)やワイヤレスや他のトランシーバ、電話インタフェース、ブリッジ、ルータ、又は、入力と出力の両方として機能する他のデバイスだが、これらに限定されない。
[0032]当業者には周知のように、ビデオ圧縮は、ビデオシーケンス中の冗長情報を除去することによって達成される。多くの異なるビデオ符号化標準が存在するが、例としては、MPEG−1、MPEG−2、MPEG−4、H.261、H.263、及びH.264/AVCが挙げられる。本発明は、いずれか特定のビデオ符号化標準の適用において限定されるものとはしないことに留意されたい。しかし、H.264/AVC標準は最も新しいビデオ符号化標準なので、本発明に関する以下の記述は、H.264/AVC標準の例を用いて提供する。H.264/AVCでは、ビデオの各フレーム又はピクチャをいくつかのスライスに分けることができる。次いでスライスは、マクロブロックと呼ばれる16×16画素のブロックに分割され、次いでマクロブロックは、8×16、16×8、8×8、4×8、8×4、そして4×4に至るまでの画素のブロックにさらに分割することができる。
[0033]図4に、本発明を適用できるビデオエンコーダの概観を示す。図示のブロックは、プロセッサ301がメモリ302中のソフトウェア303を実行することによって実現される機能モジュールを表す。ビデオフレームのピクチャ400が、ビデオプリコーダ401に供給される。ビデオプリコーダは、ピクチャ400を、マクロブロック400Aの単位で扱う。各マクロブロックは、ピクチャ400の、いくつかのピクチャサンプルを含む。各マクロブロックに対して、変換係数への変換が実施され、それに続いて変換係数レベルへの量子化が実施される。さらに、符号化ステップを、画素データに対して直接に実施するのではなく、予測された画素値に対する画素データの差に対して実施して、それによってより圧縮しやすい小さい値を達成するために、フレーム内予測又は動き補償が使用される。
[0034]各スライスにつき、プリコーダ401はいくつかのシンタックス要素を生成するが、これらのシンタックス要素は、それぞれのスライスのマクロブロックの符号化済みバージョンを形成する。シンタックス要素中の全ての残差データ要素は、変換係数レベル、又はスキップされた変換係数レベルを示す有効性マップなど、変換係数の符号化に関係し、残差データシンタックス要素と呼ばれる。これらの残差データシンタックス要素の他に、プリコーダ401によって生成されるシンタックス要素は、制御情報シンタックス要素も含み、制御情報シンタックス要素は、各マクロブロックがどのように符号化されたものであってどのように復号されなければならないかのそれぞれに関する制御情報を含む。言い換えれば、シンタックス要素は、2つのカテゴリに分割可能である。第1のカテゴリである制御情報シンタックス要素は、例えば、マクロブロックタイプに関係する要素、サブマクロブロックタイプに関係する要素、空間タイプと時間タイプの両方の予測モードに関する情報に関係する要素、並びに、スライスベースとマクロブロックベースの制御情報に関係する要素を含む。第2のカテゴリ中では、量子化済み変換係数のブロック内の全ての有効係数の位置と、量子化ステップに対応するレベルの単位で示される有効係数の値とを示す有効性マップなど、全ての残差データ要素が組み合わされて、残差データシンタックス要素になる。
[0035]プリコーダ401は、シンタックス要素をエントロピーコーダ402に出力する。エントロピーコーダ402はCABACエンコーダであり、エントロピーコーダ402については後でより詳細に説明する。エントロピーコーダ402は、各スライスにつき、算術コードワード又はビットストリームを生成する。スライスについてのビットストリームを生成するとき、エントロピーコーダ402は、ビデオ信号中のシンタックス要素のデータ値の間の統計的依存関係を利用する。エントロピーコーダ402は、ピクチャ400の各スライスについてのビットストリームを、図5に示されるエントロピーデコーダに出力する。
[0036]図5に、本発明を適用できるビデオデコーダの概観を示す。同様に、図示のブロックは、プロセッサ301がメモリ302中のソフトウェア303を実行することによって実現される機能モジュールを表す。エントロピーデコーダ501はCABACデコーダであり、エントロピーデコーダ501については後でより詳細に論じる。エントロピーデコーダ501は、ビットストリームを受け取り、復号してシンタックス要素に戻す。プリコードデコーダ502が、シンタックス要素を使用して、マクロブロックごとに、次いでスライスからスライスへと、ピクチャ500中の画素のピクチャサンプルを取り出す。
[0037]図6に、シンタックス要素をビットストリームに符号化するためのエントロピーコーダ402の機能モジュールを示す。これらの機能モジュールは、プロセッサ301がメモリ302中のソフトウェア303を実行することによって実現される。CABAC符号化プロセスは、3つの処理段階、すなわち、2値化、コンテキストモデル化、及び2値算術符号化を含む。第1の処理段階を実施するために、エントロピーコーダ402は、2値化器601を備える。2値化器601の入力は、スイッチ603を介して入力602に接続される。入力602は、エントロピーコーダ402によって符号化されることになるシンタックス要素を提供する。スイッチ603は、入力602に到達するシンタックス要素を、2値化器601に渡すか、又は、2値化出力604に渡してそれにより2値化器601を迂回することができる。スイッチ603は、2進値でないシンタックス要素を2値化器601に渡すように機能する。2値化された形でないシンタックス要素の例としては、動きベクトル差分及び変換係数レベルがある。スイッチ603はまた、シンタックス要素がすでに2値化された形である場合に、シンタックス要素を入力602から2値化出力604に直接渡すように機能する。
[0038]2値化器601によって出力されたビンストリングは、2値化出力604に直接渡されずに、2値化器601の出力と出力604との間に配置されるビンループオーバ手段605によって、出力604に制御可能に渡されてもよい。それにより、2値化器601によって出力されたビンストリングと、2値化器601を迂回するすでに2進値であるシンタックス要素とが、出力604で単一のビットストリームにマージされる。
[0039]第2の処理段階を実施するために、エントロピーコーダ602は、コンテキストモデラ606並びにスイッチ607を備える。コンテキストモデラ606の入力は、スイッチ607を介して2値化出力604に接続される。コンテキストモデラ606の出力は、通常符号化エンジン608に接続される。スイッチ607は、ビンシーケンスのビット又はビンを、コンテキストモデラ606に渡すか、又は、バイパス符号化エンジン609に渡してそれによりコンテキストモデラ606を迂回するように機能する。
[0040]コンテキストモデラ606は、到着した各ビンにつき、コンテキストモデルを選択する。コンテキストモデルは、ビンストリング中のビンの値の間における確率分布モデル化の統計的依存関係を見積もるものであり、また、ビンストリング中のそれぞれのビンの発生確率を推定するために通常符号化エンジン608によって使用される。入来したビンにコンテキストモデルを割り当てた後、コンテキストモデラ606は、ビンを割り振られたコンテキストモデルと共に、ビンを通常符号化エンジン608に渡す。通常符号化エンジン608は、第3の処理段階を実施し、コンテキストモデラ606から渡されたビンの値を、やはりコンテキストモデラ606から渡されたコンテキストモデルを使用して算術符号化する。さらに、通常符号化エンジン608は、コンテキストモデル更新のためのビン値を、フィードバックライン610を介してコンテキストモデラ606に渡す。
[0041]バイパス符号化エンジン609は、静的な所定の確率推定値を使用してビンストリングを算術符号化するためのものである。2値化器601によって出力されたビンストリング中のビンのいくつかは、ほぼ等確率分布を示す。このことは、ビンストリング中のビンに対応するビットが1である可能性と0である可能性が半々であることを意味する。これらのビンは、バイパス符号化エンジン609に供給され、等確率の確率推定値を使用して算術符号化される。この等確率の確率推定値は、一定であり、したがって、コンテキストモデルを選択すること及び確率推定値を更新することに関連する計算オーバヘッドをなくす。
[0042]通常符号化エンジン608及びバイパス符号化エンジン609から出力されたビットストリームは、スイッチ612により、出力611で単一のビットストリームにマージされる。このビットストリームは、入力端子602に入力されたシンタックス要素の2値算術コードワードを表す。通常符号化エンジン608及びバイパス符号化609は、協働して、適応確率推定と静的確率推定のいずれかに基づいて算術符号化を実施する。
[0043]図7に、エンコーダから受け取ったビットストリームを復号してシンタックス要素に戻すためのエントロピーデコーダ501の機能モジュールを示す。これらの機能モジュールは、プロセッサがメモリ302中のソフトウェア303を実行することによって実現される。図7では、スイッチ703の動作により、通常復号エンジン701とバイパス復号エンジン702のいずれかによってビットストリームが受け取られる。スイッチ703は、通常符号化エンジン608によって出力されたビットストリームを通常復号エンジン701に、また、バイパス符号化エンジン609によって出力されたビットストリームをバイパス復号エンジン702に、選択的に渡すように機能する。通常復号エンジン701は、コンテキストモデラ704によって提供されたコンテキストモデルに従って適応確率推定を使用して、受け取ったビットストリームを復号済みビンに復号する。バイパス復号エンジン702は、等確率の静的確率推定値を使用して、受け取ったビットストリームを復号済みビンに復号する。復号済みビンは、スイッチ706の動作によって、逆2値化のために逆2値化器705に進むか、又は逆2値化器705を迂回する。逆2値化器705は、復号済みビンをシンタックス要素に逆2値化する。シンタックス要素は、通常復号エンジン701に提供されることになるコンテキストモデルの更新のために、コンテキストモデラ704にフィードバックされる。通常復号エンジン701は、算術コードワードを復号する度に、前に復号された少なくとも1つのビンに基づいて確率推定値を更新する。
[0044]次に、エントロピーコーダ402及びエントロピーデコーダ501の詳細な動作に移る。添付のフローチャートに、CABAC符号化及び復号のためにエントロピーコーダ402及びエントロピーデコーダ501によって実施されるソフトウェアプロセスを示す。添付のフローチャートに記述する符号化プロセス及び復号プロセスは、図6及び7に示すエントロピーコーダ402及びエントロピーデコーダ501の機能モジュールによって共同で実施され、これらの機能モジュールはプロセッサ301がメモリ302中のソフトウェア303を実行することによって実現されることを理解されたい。また、本明細書で特に論じない本発明の算術符号化及び復号の手順は、参照により本明細書に組み込まれるH.264/AVCのセクション9.3.3及び9.3.4並びにそれぞれのサブセクションにおいて指定される手順に従うことにも留意されたい。
[0045]図8は、本発明の一実施形態による例示的な終了前の符号化手順を示すフローチャートである。このフローチャートでは、ステップ801で、ビン値(binVal)が0に等しくないかどうか判定される。ビン値が0に等しい場合は、動作は実施されず、したがって、ビットストリームにビットは書き込まれない。ビン値が0に等しいことは、エンコーダがスライスの終わりに到達していないことを意味する。ビン値が0に等しくない場合は、CABAC符号化は終了し、プロセスはステップ802に進み、ここで、codILowの値が、codILowの値と、codIRangeの値を2つデクリメントした値との合計に設定される。その後、ステップ803でフラッシング手順が適用される。
[0046]図9は、図8のステップ803で実施される例示的なフラッシング手順を示すフローチャートである。図9のステップ901で、codIRangeの値が2に設定される。次いでプロセスはステップ902に進み、ここで、再正規化手順が実施される。例示的な再正規化手順が、H.264/AVCの図9−8に指定されており、関連するセクションで論じられている。その後、プロセスはステップ903に進み、ここで、codILowの値を右に9ビット位置だけシフトして1Hexの値との論理積をとった値に等しい値に対して、プットビット(put bit)手順が実施される。codILowのシフトされた値に対して論理積演算を実施する結果、最近有効ビットから数えて10番目の位置のビットが生成され、その後、出力される。例示的なプットビット手順が、H.264/AVCの図9−9に指定されており、関連するセクションで論じられている。最後に、プロセスはステップ903に進み、codILowの値を右に7ビット位置だけシフトして3Hexの値との論理積をとってから1Hexとの論理和をとった値に等しい2ビットを、ビットストリームに書き込む。1Hexとの論理和演算は、停止ビットをビットストリームに書き込むために実施される。
[0047]このように、本発明では、エンコーダがスライスの終わりに到達するまで、終了シンタックス要素を示すビットがビットストリームに書き込まれることはなく、エンコーダがスライスの終わりに到達したときに、停止ビットがビットストリームに書き込まれる。したがって、本発明によれば、CABACエンコーダは、従来のCABACエンコーダによって生成され送信されるビットよりも少ないビットを含むビットストリームを生成して送信する。より小さいマクロブロックでスライスを定義することによってスライスの粒度が増大したときでも、本発明を使用することにより、ビットストリーム中のビットの増加を回避することができる。
[0048]次に、本発明による復号プロセスに移る。添付のフローチャートに、エントロピーデコーダ501によって実施される復号プロセスを示すが、この復号プロセスでは、ビットストリームが復号されてシンタックス要素に戻される。復号プロセスは基本的に、エントロピーエンコーダ402によって実施された処理を取り消すための、符号化プロセスの逆である。添付のフローチャートに示す復号プロセスは、図7に示す機能モジュールによって共同で実現され、これらの機能モジュールは、前に説明したように、プロセッサ301がメモリ302中のソフトウェア303を実行することによって実現されることを理解されたい。
[0049]図10は、単一のビンに対する復号手順の概観を示すフローチャートである。図10では、まずステップ1001で、bypassFlagの値が1に等しいかどうか判定される。そうである場合は、ステップ1002で、バイパス復号手順が実施される。例示的なバイパス手順が、H.264/AVCの図9−5に指定されている。bypassFlagの値が1に等しくない場合は、プロセスはステップ1003に進み、ここで、ctxIdxの値が276に等しいかどうか判定される。276に等しいctxIdxの値は、終了シンタックス要素に関連する。ctxIdxの値が276に等しい場合は、プロセスはステップ1004に進んで、終了前の復号手順を実施する。これについては後で詳細に論じる。そうでない場合は、ステップ1005で、2値決定のための復号手順が実施される。例示的な、2値決定のための復号手順が、H.264/AVCの図9−3に指定されている。
[0050]図11は、図10のステップ1004で実施される、本発明による終了前の復号手順を示すフローチャートである。本発明のエンコーダは、終了シンタックス要素を示すビットを含まないビットストリームを送るので、本発明のデコーダは、符号化済みスライスの終わりを検出するための手順を実施して、元のマクロブロックを適正に再構築する。この効果のために、ステップ1101で、復号手順の間にデコーダが符号化済みスライスの終わりに到達したかどうか判定される。デコーダが符号化済みスライスの終わりに到達していない場合は、ステップ1102で、ビン値(binVal)が0にセットされる。その後、プロセスは終了する。したがって、符号化済みスライスの終わりに到達していない場合は、それ以上の手順は実施されない。デコーダが符号化済みスライスの終わりに到達した場合は、さらにステップ1103で、codIOffsetの値が、codIRangeの値を2つデクリメントした値以上であるかどうか判定される。この判定が必要なのは、符号化済みスライス中の最後のビットが、2つ以上のマクロブロックを記述するデータを含むことがあるからである。codIOffsetの値が、codIRangeの値を2つデクリメントした値以上である場合は、ステップ1104で、ビン値は1にセットされる。そうでない場合は、ステップ1102で、ビン値は0にセットされる。
[0051]ステップ1101で実施される判定プロセスは、いくつかの方法で実施することができる。符号化済みスライスを構成するビットの数を、ビットストリームのサイズによって決定することができる。NumBytesInNalunitと呼ばれるシンタックス要素が、ネットワークアダプティブレイヤにおけるバイトの数を示すが、この数はビットストリームのサイズに等しい。ビットストリーム中の最後のバイトは、停止ビットを含み、この停止ビットは、符号化済みスライスの終わりを示す。したがって、符号化済みスライスを構成するビットの数は、停止ビットに先立つビットの数であり、この数はNumBytesInNalunitの値を使用して計算することができる。ビットストリームがIPパケットネットワークを介して送信されるときは、パケットのサイズは、NumBytesInNalunitの値に等しい。したがって、NumBytesInNalunitの値を使用する代わりに、パケットのサイズを使用して、符号化済みスライスを構成するビットの数を決定することもできる。ビットストリームがブロードキャストチャネルを介してストリームビデオデータ中で送信されるときは、ストリームビデオデータに含まれる開始コードを探す必要がある。開始コードは、ビットストリームの始まりを示す。隣接する2つの開始コード間で送信されるビットを数えることにより、ビットストリーム中のビットの数を決定することができ、この数を使用して、符号化済みスライスを構成するビットの数が決定される。
[0052]算術デコーダは、デコーダによって取り込まれたビットを数えるためのビットカウンタを有する。ビットカウンタは、ビットストリームからビットを取り込む度にインクリメントする。本発明は、ビットカウンタを使用して、デコーダが符号化済みスライスの終わりに到達したかどうか判定する。特に、ビットカウンタのカウントが、上で計算されたビット数と比較される。ビットカウンタのカウントが、計算されたビット数よりも小さい間は、図11のステップ1101で行われる判定は「いいえ」であり、プロセスはステップ1101からステップ1102に進む。ビットカウンタのカウントが、計算されたビット数に等しくなったとき、プロセスはステップ1101からステップ1103に進む。前述のビットカウンタの代わりに、ビット位置カウンタを使用してもよいことに留意されたい。ビット位置カウンタは、デコーダによって取り込まれているビットの、ビットストリーム中での位置を示す情報を出力する。
[0053]図8のステップ802及び図11のステップ1103でcodIRangeの値から引かれ、図9のステップ901でcodIRangeの値に設定される定数は、最低確率シンボル(LPS)に割り当てることのできる最小区間以下である限り、2である必要はないことに留意されたい。この定数は、2の累乗であることが好ましい。H.264/AVCの表9−44は、最低確率シンボルに割当て可能な区間を示すが、この表によれば、例えば、pStateIdxの値が62に等しく、qCodIRangeIdxの値が0に等しいとき、最低確率シンボルに割当て可能な最小区間は6である。したがって、図8のステップ802及び図11のステップ1103でcodIRangeの値から引かれ、図9のステップ901でcodIRangeの値に設定される定数値は、2の代わりに4とすることもできる。この値が4である場合、ビットストリームは、この値が2であるときに含むビットよりも1つ少ないビットを含む。図12のステップ1201で符号化済みスライスを構成するビットの数を決定するときには、このことを考慮しなければならない。
[0054]以上の記述を読んだ後には、本発明の多くの改変及び修正が当業者にはおそらく明らかになるであろうが、例証として図示及び記述したどんな特定の実施形態も、限定と見なされるものとは決してしないことを理解されたい。したがって、様々な実施形態の詳細への言及は、特許請求の範囲を限定するものとはせず、特許請求の範囲はそれ自体で、本発明に不可欠であると見なされる特徴のみを列挙する。

Claims (16)

  1. コンピュータシステムのプロセッサと、プログラムを記憶するメモリとを備える算術エンコーダであって、
    符号化単位ごとに繰り返し算術符号化処理を行なってビットストリームを生成する際において、
    符号化単位ごとに生成された終了シンタックス要素に対応するビン値を外部から入力し、
    入力された前記符号化単位ごとに生成された終了シンタックス要素に対応するビン値が算術符号化の終了を示すかどうか判定し、
    前記ビン値が算術符号化の終了を示さないと判定された場合に、示さないと判定された前記ビン値についてビットストリーム中にビットを書き込まず、
    前記ビン値が算術符号化の終了を示すと判定された場合に停止ビットを算術符号化したビットストリームを生成するように、前記プログラムが前記プロセッサによって実行可能である、算術エンコーダ。
  2. 前記プロセッサがさらに、前記ビン値が算術符号化の終了を示すと判定された場合に、レンジ値により示される確率区間の下限値と、前記レンジ値を所定数デクリメントした値との合計を新たな下限値に設定し、前記所定数が、2以外の数であって、最低確率シンボルに割当て可能な最小区間の範囲を示す数値以下の数である、請求項1に記載の算術エンコーダ。
  3. 前記所定数が2の累乗に等しい、請求項2に記載の算術エンコーダ。
  4. 符号化単位ごとに繰り返し算術符号化処理を行なってビットストリームを生成するステップと、
    符号化単位ごとに生成された終了シンタックス要素に対応するビン値を外部から入力するステップと、
    入力された前記符号化単位ごとに生成された終了シンタックス要素に対応するビン値が算術符号化の終了を示すかどうか判定するステップと、
    前記ビン値が算術符号化の終了を示さないと判定された場合に、示さないと判定された前記ビン値についてビットストリーム中にビットを書き込まないステップと、
    前記ビン値が算術符号化の終了を示すと判定された場合に停止ビットを算術符号化したビットストリームを生成するステップとを実施するようにビデオエンコーダのプロセッサによって実行されるコンピュータ実行可能ステップを含む、算術符号化方法。
  5. 前記ビン値が算術符号化の終了を示すと判定された場合に、レンジ値により示される確率区間の下限値と、前記レンジ値を所定数デクリメントした値との合計を新たな下限値に設定するステップをさらに含み、前記所定数が、2以外の数であって、最低確率シンボルに割当て可能な最小区間の範囲を示す数値以下の数である、請求項4に記載の方法。
  6. 前記所定数が2の累乗に等しい、請求項5に記載の方法。
  7. コンピュータシステムのプロセッサと、プログラムを記憶するメモリとを備える算術デコーダであって、
    入力された算術符号化されたビットストリームを算術復号処理している間に、復号されたビットストリーム中のビットの数に基づいて、復号プロセスが符号化済みスライスの終わりに到達したかどうか判定し、
    前記復号プロセスが前記符号化済みスライスの前記終わりに到達していないと判定された場合に、ビン値を、前記復号プロセスが前記符号化済みスライスの前記終わりに到達していないことを示す第1の値に設定するように、前記プログラムが前記プロセッサによって実行可能である、算術デコーダ。
  8. 前記復号プロセスが前記符号化済みスライスの前記終わりに到達したと判定された場合に、前記プロセッサがさらに、
    レンジ値により示される確率区間の現在位置を示すオフセット値が、前記レンジ値を所定数デクリメントした値以上であるかどうか判定し、
    前記オフセット値が、レンジ値を所定数デクリメントした値以上であると判定された場合に、前記ビン値を、前記復号プロセスが前記符号化済みスライスの前記終わりに到達したことを示す第2の値に設定し、
    前記オフセット値が、レンジ値を所定数デクリメントした値以上でないと判定された場合に、前記ビン値を前記第1の値に設定する、請求項7に記載の算術デコーダ。
  9. 前記所定数が、2以外の数であって、最低確率シンボルに割当て可能な最小区間の範囲を示す数値以下の数である、請求項8に記載の算術デコーダ。
  10. 前記所定数が2の累乗に等しい、請求項9に記載の算術デコーダ。
  11. 前記プロセッサが、前記ビットストリーム中の最後のバイト中に位置する停止ビットに先立つビットの数に基づいて、前記復号プロセスが符号化済みスライスの終わりに到達したかどうか判定する、請求項7に記載の算術デコーダ。
  12. 入力された算術符号化されたビットストリームを算術復号処理している間に、復号されたビットストリーム中のビットの数に基づいて、復号プロセスが符号化済みスライスの終わりに到達したかどうか判定するステップと、
    前記復号プロセスが前記符号化済みスライスの前記終わりに到達していないと判定された場合に、ビン値を、前記復号プロセスが前記符号化済みスライスの終わりに到達していないことを示す第1の値に設定するステップとを実施するようにビデオデコーダのプロセッサによって実行されるコンピュータ実行可能ステップを含む、算術復号方法。
  13. 前記復号プロセスが前記符号化済みスライスの前記終わりに到達したと判定された場合に、レンジ値により示される確率区間の現在位置を示すオフセット値が、前記レンジ値を所定数デクリメントした値以上であるかどうか判定するステップと、
    前記オフセット値が、レンジ値を所定数デクリメントした値以上であると判定された場合に、前記ビン値を、前記復号プロセスが前記符号化済みスライスの前記終わりに到達したことを示す第2の値に設定するステップと、
    前記オフセット値が、レンジ値を所定数デクリメントした値以上でないと判定された場合に、前記ビン値を前記第1の値に設定するステップとをさらに含む、請求項12に記載の方法。
  14. 前記所定数が、2以外の数であって、最低確率シンボルに割当て可能な最小区間の範囲を示す数値以下の数である、請求項13に記載の方法。
  15. 前記所定数が2の累乗に等しい、請求項14に記載の方法。
  16. 復号プロセスが符号化済みスライスの終わりに到達したかどうか判定するステップが、前記ビットストリーム中の最後のバイト中に位置する停止ビットに先立つビットの数に基づいて、前記復号プロセスが符号化済みスライスの終わりに到達したかどうか判定するサブステップを含む、請求項12に記載の方法。
JP2013549569A 2011-01-14 2012-01-13 算術符号化及び終了のための方法及び装置 Active JP5961189B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161433051P 2011-01-14 2011-01-14
US61/433,051 2011-01-14
PCT/US2012/021240 WO2012097250A1 (en) 2011-01-14 2012-01-13 Method and apparatus for arithmetic coding and termination

Publications (2)

Publication Number Publication Date
JP2014507868A JP2014507868A (ja) 2014-03-27
JP5961189B2 true JP5961189B2 (ja) 2016-08-02

Family

ID=46507459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549569A Active JP5961189B2 (ja) 2011-01-14 2012-01-13 算術符号化及び終了のための方法及び装置

Country Status (3)

Country Link
US (1) US10070127B2 (ja)
JP (1) JP5961189B2 (ja)
WO (1) WO2012097250A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5961189B2 (ja) * 2011-01-14 2016-08-02 株式会社Nttドコモ 算術符号化及び終了のための方法及び装置
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
GB2523347B (en) * 2014-02-20 2016-01-13 Gurulogic Microsystems Oy Encoder, decoder and method
WO2018049594A1 (en) * 2016-09-14 2018-03-22 Mediatek Inc. Methods of encoder decision for quad-tree plus binary tree structure

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2264603B (en) * 1992-02-28 1995-08-23 Sony Broadcast & Communication Multiplexing and demultiplexing image data
US6058473A (en) 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US5512896A (en) * 1993-11-30 1996-04-30 Texas Instruments Incorporated Huffman encoding method, circuit and system employing most significant bit change for size detection
US6906647B2 (en) * 2002-09-20 2005-06-14 Ntt Docomo, Inc. Method and apparatus for arithmetic coding, including probability estimation state table creation
ES2915662T3 (es) * 2002-09-20 2022-06-24 Ntt Docomo Inc Método y aparato para codificación aritmética
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US8306125B2 (en) * 2006-06-21 2012-11-06 Digital Video Systems, Inc. 2-bin parallel decoder for advanced video processing
US7554468B2 (en) * 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
US8542727B2 (en) * 2007-12-31 2013-09-24 Intel Corporation Systems and apparatuses for performing CABAC parallel encoding and decoding
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
KR101527085B1 (ko) * 2009-06-30 2015-06-10 한국전자통신연구원 인트라 부호화/복호화 방법 및 장치
US8705623B2 (en) * 2009-10-02 2014-04-22 Texas Instruments Incorporated Line-based compression for digital image data
US8654860B2 (en) * 2010-11-01 2014-02-18 Mediatek Inc. Apparatus and method for high efficiency video coding using flexible slice structure
JP5961189B2 (ja) * 2011-01-14 2016-08-02 株式会社Nttドコモ 算術符号化及び終了のための方法及び装置

Also Published As

Publication number Publication date
WO2012097250A1 (en) 2012-07-19
JP2014507868A (ja) 2014-03-27
US10070127B2 (en) 2018-09-04
US20130243102A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
JP6067776B2 (ja) ビデオデータをコンテキスト適応型コーディングすること
JP5770311B2 (ja) ビデオコーディングにおけるサブスライス
JP5869108B2 (ja) メモリ効率的コンテキストモデリング
JP6151277B2 (ja) ビデオコーディングにおけるデブロッキングフィルタパラメータのシグナリング
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
JP5736032B2 (ja) 算術符号化のための適応型2値化
TWI554082B (zh) 於視訊寫碼處理中用於係數階層寫碼之萊斯(rice)參數更新
TWI657692B (zh) 於視訊寫碼程序中用於係數層級寫碼之萊斯(rice)參數初始化
JP4828925B2 (ja) 符号化装置
CN111183647B (zh) 用于解码视频数据的方法、装置和计算机可读媒体
JP5955955B2 (ja) リーフレベルコード化単位のサブセットについての変換係数のシンタックス要素の信号伝達
JP5961189B2 (ja) 算術符号化及び終了のための方法及び装置
TW201711468A (zh) 使用一全文自適應二進位算術寫碼設計來寫碼資料
KR20140037264A (ko) 비디오 코딩에서의 계수 스캐닝
JP2004135251A (ja) 画像情報符号化方法及び画像情報復号方法
JP2009038746A (ja) 画像情報符号化装置
US9628800B2 (en) Adaptive control for transforms in video coding
JP2017514353A (ja) メッシュベースの計算を使用した低複雑な順変換のためのシステムおよび方法
CN110536133B (zh) 视频数据解码方法及装置
EP3369250A1 (en) Parallel arithmetic coding techniques
Gao et al. An enhanced entropy coding scheme for HEVC

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160426

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: 20160621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160624

R150 Certificate of patent or registration of utility model

Ref document number: 5961189

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