JP6042526B2 - ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出 - Google Patents

ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出 Download PDF

Info

Publication number
JP6042526B2
JP6042526B2 JP2015501752A JP2015501752A JP6042526B2 JP 6042526 B2 JP6042526 B2 JP 6042526B2 JP 2015501752 A JP2015501752 A JP 2015501752A JP 2015501752 A JP2015501752 A JP 2015501752A JP 6042526 B2 JP6042526 B2 JP 6042526B2
Authority
JP
Japan
Prior art keywords
value
block
context
bin
video
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
JP2015501752A
Other languages
English (en)
Other versions
JP2015514355A5 (ja
JP2015514355A (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2015514355A publication Critical patent/JP2015514355A/ja
Publication of JP2015514355A5 publication Critical patent/JP2015514355A5/ja
Application granted granted Critical
Publication of JP6042526B2 publication Critical patent/JP6042526B2/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
    • 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
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Description

[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、2012年3月22日に出願された米国仮出願第61/614,178号、2012年4月4日に出願された米国仮出願第61/620,273号、および2012年6月29日に出願された米国仮出願第61/666,316号の利益を主張する。
[0002]本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part 10,Advanced Video Coding(AVC)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は2次元アレイで構成され、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
[0006]概して、本開示では、1つまたは複数の関数を使用してビデオデータに関連するシンタックス要素をコーディングするための技法について説明する。たとえば、デバイスは、(変換ユニットまたは「TU」などの)ビデオデータのブロックの最後有意係数の位置を示す値をコーディングするために本技法のうちの1つまたは複数を実装し得る。その値をコーディングするために、デバイスは、最後有意係数に対応する2値化値中の各ビット(または「ビン」)のインデックスの関数を使用し得、インデックスは、2値化値を表すビンのアレイにおけるビンの位置を示す。
[0007]一例では、方法は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを含む。
[0008]別の例では、ビデオデータをコーディングするためのデバイスは、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを行うように構成されたビデオコーダを含む。
[0009]別の例では、デバイスは、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定するための手段と、決定されたコンテキストを使用してビンをコーディングするための手段とを含む。
[0010]別の例では、コンピュータ可読記憶媒体が命令で符号化される。実行されたとき、命令は、ピンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとをコンピューティングデバイスのプログラマブルプロセッサに行わせる。
[0011]1つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面から、ならびに特許請求の範囲から明らかになろう。
[0012]ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 [0013]ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を実装し得るビデオエンコーダの一例を示すブロック図。 [0014]ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を実装し得るビデオデコーダの一例を示すブロック図。 [0015]ビデオデータの現在のブロックを符号化するための例示的な方法を示すフローチャート。 [0016]ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャート。
[0017]概して、本開示の技法はビデオコーディングに関する。ビデオコーディングでは、ピクチャのシーケンスは、空間予測(イントラ予測)または時間的予測(インター予測)のいずれかを使用して個々にコーディングされる。特に、ビデオコーダは、イントラ予測またはインター予測を使用してピクチャの個別のブロックをコーディングする。ビデオコーダはまた、ブロックについての残差データをコーディングし、残差データは、予測データと生のコーディングされていないデータとの間のピクセルごとの差分を表す残差ブロックに概して対応する。ビデオコーダは、残差データを変換し、量子化して、残差ブロックのための量子化変換係数を生成し得る。ビデオコーダは、さらに、係数が有意であるか(たとえば、0よりも大きい絶対値を有するか)どうか、有意係数のロケーション、走査順序での最後有意係数のロケーション、および有意係数のレベル値など、シンタックスデータをコーディングする。
[0018]本開示では、変換ユニット(TU)などのビデオデータのブロック中の最後有意係数を示す値をコーディングするための技法について説明する。特に、ブロック中の最後有意係数を示す値などのシンタックス要素をコーディングするために、ビデオコーダは、コンテキスト適応型バイナリ算術コーディング(CABAC)を適用するように構成され得る。CABACコーディングは、2値化された列の個別のビット(または「ビン」)が特定の値(たとえば、0または1)を有することになる可能性を概して示す、コンテキストインデックスによって示される様々なコンテキストの使用を伴う。詳細には、ブロック中の最後有意係数を示す値のビンをコーディングするためのコンテキストは、その値のビンごとに個々に決定され、すなわち、その値中のビンのロケーション(たとえば、値がビンのアレイとして表されると仮定して、ビンのインデックス)に基づく。
[0019]特定のビンをコーディングするために使用すべきコンテキストのためのコンテキストインデックスの指示を与えるマッピングテーブルを使用するのではなく、本開示の技法は、ビンをコーディングするために使用すべきコンテキストのコンテキストインデックスを決定するために関数を使用することを含む。特に、関数は、ビンのインデックスの関数であり得る。たとえば、ビンがコーディングされている値のi番目のビンであると仮定すると、関数はf(i)として定義され得、ここで、f(i)は、2値化値のビンiをコーディングするために使用すべきコンテキストに対応するコンテキストインデックス値を戻す。コンテキストは、上記で説明したように、ビンiが特定の値、たとえば、0または1を有する可能性を示し得る。
[0020]このようにして、本開示では、最後有意係数位置(最後の位置)のCABACコーディングの技法について説明する。符号化されるべき最後の位置のビンについて、それのCABACコンテキストのインデックスは、最後の位置のビンとCABACコンテキストとの間のマッピングテーブルが保存され得る(たとえば、記憶されない)ように関数を使用して導出され得る。CABACコーディングは、概して、2値化とCABACコーディングとの2つの部分を含む。2値化プロセスは、ブロックの最後有意係数のロケーションを2進列、たとえば、ビンのアレイに変換するために実行される。高効率ビデオコーディングテストモデル(HM:High Efficiency Video Coding Test Model)中で使用される2値化方法は短縮単項+固定長符号化である。短縮単項コード部分については、ビンは、CABACコンテキストを使用して符号化される。固定長部分については、ビンは、(コンテキストなしに)バイパスモードを使用して符号化される。32×32のTU(変換ユニット/変換ブロック)の例を以下の表1に示す。
Figure 0006042526
[0021]以下の表2は、従来のHMにおいて使用される例示的なコンテキストマッピングテーブルを示す。表2は、異なるロケーションにある最後の位置が同じコンテキストを共有することができることを示す。いくつかビン、たとえば、8×8ブロックのビン6〜7では、上記の表1に示すように、それらがコンテキストなしに(バイパスモード)符号化されているので、コンテキストが割り当てられていない。
Figure 0006042526
[0022]従来のHMは、最後の位置値(すなわち、ビデオデータのブロック中の最後有意係数の位置を示す値)のビンをコーディングするためのコンテキストを決定するために表2などのテーブルを使用するが、本開示の技法は、最後の位置値のビンをコーディングするためのコンテキストを決定するために関数の使用を含む。したがって、表2と同様のテーブルは、本開示の技法に従って構成されたビデオコーダ中に存在する必要はない。このようにして、最後の位置コーディングにおけるビンのためのCABACコンテキストインデックスを導出するために関数が使用され得、したがって、マッピングテーブル(表2)は除去され得る。シンタックス要素のビンをコーディングするためのコンテキストを決定するために関数を実行するように構成されたコーディングデバイスの様々な例について以下でより詳細に説明する。
[0023]図1は、ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0024]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0025]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージデバイスから、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0026]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0027]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0028]図1の図示のシステム10は一例にすぎない。ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話のための、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
[0029]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0030]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化されたビデオデータを受信し、宛先デバイス14に符号化されたビデオデータを与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
[0031]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0032]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part 10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例としては、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0033]ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格もしくはH.264仕様、またはH.264/AVC規格もしくは仕様と呼ぶことがある。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0034]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0035]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
[0036]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0037]4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、かつCUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUをリーフCUとも呼ぶ。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
[0038]CUは、CUがサイズの差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、もしくはTU、または他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0039]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、かつ形状が方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルを有するツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形(たとえば、矩形)であり得る。
[0040]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差クワッドツリー」(RQT:residual quad tree)として知られるクワッドツリー構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
[0041]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分に対応する空間的エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUについてのデータは、PUに対応するTUについてのイントラ予測モードを記述するデータを含み得る残差4分木(RQT)中に含まれ得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0042]1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上記で説明したように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、さらなるサブTUに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、概して、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値をTUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUはPUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0043]さらに、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、特に明記しない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0044]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、かつ指定のコーディング規格に応じてサイズが異なり得る。
[0045]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0046]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック中のピクセルは行と列で構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。
[0047]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
[0048]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0049]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(したがってより高い周波数)の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応型走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0050]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率判断は、シンボルに割り当てられたコンテキストに基づき得る。
[0051]本開示の技法によれば、ビデオエンコーダ20は、ビデオデータのブロックの最後有意係数の位置を表す値のビンの1つまたは複数の関数を使用して決定されるコンテキストを使用してその値を符号化し得る。同様に、ビデオデコーダ30は、ビデオデータのブロックの最後有意係数を表す値のビンの1つまたは複数の関数を使用して決定されるコンテキストを使用してその値を復号し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、本開示の技法を実行するために、以下でより詳細に説明する関数(1)〜(12)のいずれかまたは概念的に同様の関数を実行するように構成され得る。このようにして、ビデオエンコーダ20およびビデオデコーダ30は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを行うように構成されたビデオコーダの例を表す。
[0052]一例として、「Ctx_i」は、「最後の位置」の2進列におけるi番目のビンを符号化するためにビデオエンコーダ20によって使用されるコンテキストのインデックスを示し得る。ビデオエンコーダ20は、以下の式を使用してCtx_iを導出し得る。
Figure 0006042526
[0053]f(i)によって示される関数は線形または非線形であり得る。さらに、f(i)は、ビデオエンコーダ20とビデオデコーダ30の両方にとってアクセス可能である定義済関数であり得る。代替的に、f(i)は、ユーザによってまたはビデオエンコーダ20によって選択され、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、フレームヘッダ、スライスヘッダ、シーケンスヘッダ、または他のそのようなシンタックスシグナリングなど、1つまたは複数のタイプの高レベルシンタックスシグナリングを使用してビデオデコーダ30に送信され得る。ビデオエンコーダ20が実行し得る1つのそのような関数の例としては以下がある。
Figure 0006042526
ここで、「>>」は、二項右シフト演算子を示す。次に、f(i)の結果はCtx_iに対応し得る。すなわち、ビデオエンコーダ20は、f(i)を実行して、Ctx_iの値に等しい出力を生成し得る。より詳細には、ビデオエンコーダ20は、f(i)を実行して、i番目のビンをエントロピーコーディングするために使用されるべきコンテキストのコンテキストインデックスを生成し得る。
[0054]以下の表3に、上記で説明した例示的な関数(1)を使用して様々なブロック(たとえば、TU)サイズのための様々なビンインデックスにおいてビンをコーディングするためにビデオエンコーダ20が使用し得るコンテキストインデックスの一例を示す。表3が例示的な関数(1)の結果の説明のために与えられているが、表3などのテーブルがソースデバイス12および/または宛先デバイス14などのビデオコーディングデバイスに記憶される必要はないことを諒解されよう。代わりに、ビデオエンコーダ20とビデオデコーダ30の一方または両方は、上記の関数(1)を実行して、様々なビンインデックスに基づいて表3に示す結果を生成し得る。
Figure 0006042526
[0055]別の例として、ビデオエンコーダ20は、ビンインデックス(i)と対応するブロック(たとえば、TU)のサイズの両方に依存する関数を実行し得る。対応するブロックは、最後有意係数値によって記述される係数を含むブロックであり得る。一例として、コンテキストインデックスは、以下のような関数によって生成され得る。
Ctx_i=f(i,TUBlkSize)、ここで、「TUBlkSize」はブロックサイズを示す値である。本開示では、「TUBlkSize」および「block_size」という用語は、ブロックサイズを示すために互換的に使用され得る。
一例として、関数は以下の通りであり得る。
Figure 0006042526
[0056]以下の表4に、例示的な関数(2)を使用して様々なブロック(たとえば、TU)サイズのための様々なビンインデックスにおいてビンをコーディングするためにビデオエンコーダ20が使用するであろうコンテキストインデックスの一例を示す。表4が例示的な関数(2)の結果の説明のために与えられているが、表4などのテーブルがソースデバイス12および/または宛先デバイス14などのビデオコーディングデバイスに記憶される必要はないことを諒解されよう。代わりに、ビデオエンコーダ20とビデオデコーダ30の一方または両方は、上記で説明した例示的な関数(2)を実行して、表4に示す結果を生成し得る。
Figure 0006042526
[0057]別の例として、ビデオエンコーダ20は、Ctx_iを導出するために以下の関数を実行し得る。
Figure 0006042526
[0058]以下の表5に、例示的な関数(3)を使用して様々なブロック(たとえば、TU)サイズのための様々なビンインデックスにおいてビンをコーディングするためにビデオエンコーダ20が使用し得るコンテキストインデックスの一例を示す。表5が例示的な関数(3)の結果の説明のために与えられているが、表5などのテーブルがソースデバイス12および/または宛先デバイス14に記憶される必要はないことを諒解されよう。代わりに、ビデオエンコーダ20とビデオデコーダ30の一方または両方は、上記で説明した例示的な関数(3)を実行して、表5に示す結果を生成し得る。
Figure 0006042526
[0059]さらに別の例として、ビデオエンコーダ20は、Ctx_iを導出するために以下の関数を実行し得る。
Figure 0006042526
[0060]以下の表6に、例示的な関数(4)を使用して様々なブロック(たとえば、TU)サイズのための様々なビンインデックスにおいてビンをコーディングするためにビデオエンコーダ20が使用し得るコンテキストインデックスの一例を示す。表6が関数の結果の説明のために与えられているが、表6などのテーブルがソースデバイス12および/または宛先デバイス14などのビデオコーディングデバイスに記憶される必要はないことを諒解されよう。代わりに、ビデオエンコーダ20とビデオデコーダ30の一方または両方は、上記で説明した例示的な関数(4)を実行して、表6に示す結果を生成し得る。
Figure 0006042526
[0061]別の例として、関数は以下の通りであり得る。
Figure 0006042526
ここで、
Figure 0006042526
Figure 0006042526
Figure 0006042526
代替的に、例示的な関数(8)は、本開示では、n=(log2(block_size)−2)のように表され得る。
[0062]以下の表7に、例示的な関数(5)〜(8)を使用して様々なブロック(たとえば、TU)サイズのための様々なビンインデックスにおいてビンをコーディングするためにビデオエンコーダ20が使用し得るコンテキストインデックスの一例を示す。表7が関数の結果の説明のために与えられているが、表7などのテーブルがソースデバイス12および/または宛先デバイス14などのビデオコーディングデバイスに記憶される必要はないことを諒解されよう。代わりに、ビデオエンコーダ20とビデオデコーダ30の一方または両方は、上記の例示的な関数(5)〜(8)を実行して、表7に示す結果を生成し得る。
Figure 0006042526
[0063]以下の表8および表9に、ビデオエンコーダ20および/またはビデオデコーダ30が、統合された方法でのルーマ成分およびクロマ成分への「最後の位置」コーディングにおけるビンのための本開示の1つまたは複数の式ベースのコンテキスト導出技法を適用し得る別の例を示す。特に、表8に、様々なサイズのルーマTUのためのビンインデックスを示し、一方、表9に、様々なサイズのクロマTUのためのビンインデックスを与える。
Figure 0006042526
Figure 0006042526
[0064]表8に従うルーマTUの最後の位置コーディングおよび表9に従うクロマTUの最後の位置コーディングにおけるビンのためのコンテキストを導出するためにビデオエンコーダ20および/またはビデオデコーダ30が使用し得る関数の一例は以下の通りである。
Figure 0006042526
ここで、ルーマおよびクロマは同じ値kを共有し、k=(n+3)>>2であり、ここで、n=(log2(TUBlkSize)−2)である。
[0065]ビデオエンコーダ20および/またはビデオデコーダ30は、様々な関数を使用してTUがルーマTUであるのかまたはクロマTUであるのかに基づいて関数(9)の変数「offset」の値を決定し得る。そのような関数の例としては以下がある。
Figure 0006042526
Figure 0006042526
[0066]このようにして、関数(9)は、ビデオエンコーダ20および/またはビデオデコーダ30がコンテキストインデックスを生成するために実行し得る関数の一例を表す。次に、コンテキストインデックスは、ビンのインデックス(i)とブロックのサイズを示す値(log2(TUBlkSize)−2であるnに基づいて計算されるk)との関数としてビデオデータのブロックの最後有意係数を示す値のビンをコーディングするためのコンテキストを示し得る。この例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、例示的な関数(9)を実行して、たとえば、関数(10)および(11)に示すように、ブロックがクロマブロックであるのかまたはルーマブロックであるのかに基づいて決定されたオフセット値に基づいてコンテキストインデックスを生成し得る。
[0067]別の例として、ビデオエンコーダ20は、i番目のビンをエントロピーコーディングするために使用されるべきコンテキストのコンテキストインデックスを導出するためにステップ関数を実装し得る。より詳細には、ステップ関数は、たとえば、ビンインデックスiの値に応じて2つ以上の部分を有する関数を表し得る。したがって、ビデオエンコーダ20および/またはビデオデコーダ30は、最後の位置値中のビンを異なるサブセット、たとえば、Subset0、Subset1などに分割し得る。さらに、ビデオエンコーダ20および/またはビデオデコーダ30は、異なるサブセットに対して異なる関数を適用し得る(たとえば、Subset0に対してF0()、Subset1に対してF1()など)。たとえば、そのような関数は以下の通りであり得る。
Figure 0006042526
[0068]いくつかの実装形態では、サブセットは、あらかじめ定義され得、サブセットの定義は、ビデオエンコーダ20とビデオデコーダ30の両方にとってアクセス可能であり得る。代替的に、ビデオエンコーダ20(またはソースデバイス12のユーザ)はサブセットを選択し得、出力インターフェース22は、SPS、PPS、APS、フレームヘッダ、スライスヘッダ、シーケンスヘッダ、または他のそのようなシンタックスシグナリングなどの1つまたは複数の高レベルシンタックスシグナリング技法を使用して宛先デバイス14のビデオデコーダ30に選択されたサブセットを送信し得る。サブセットの定義はまた、ブロックサイズ(たとえば、TUサイズ)、ブロックに対応する残差4分木(RQT)深度、ブロックがルミナンス成分に対応するのかまたはクロミナンス成分に対応するのか、ブロックを含むフレームのための(たとえば、ピクセル解像度での)フレームサイズ、ブロックに対応する動き補償ブロック(たとえば、予測ユニット(PU))のための動き補償ブロックサイズ、ブロックを含むフレームのためのフレームタイプ(I/P/B)、対応する動き補償ブロックのためのインター予測方向、対応する動き補償ブロックのための動きベクトル振幅、および/または対応する動き補償ブロックの動きベクトルのための動きベクトル差分振幅など、様々な他のタイプの情報に依存し得る。
[0069]以下の表10に、例示的な関数(12)を使用して様々なブロック(たとえば、TU)サイズのための様々なビンインデックスにおいてビンをコーディングするためにビデオエンコーダ20が使用し得るコンテキストインデックスの一例を示す。表10が関数の結果の説明のために与えられているが、表10などのテーブルがソースデバイス12および/または宛先デバイス14などのビデオコーディングデバイスに記憶される必要はないことを諒解されよう。代わりに、ビデオエンコーダ20とビデオデコーダ30の一方または両方は、上記で説明した例示的な関数(12)を実行して、表10に示す結果を生成し得る。
Figure 0006042526
[0070]上記で説明した例示的な関数(1)〜(12)は、サイド情報の1つまたは複数の要素に少なくとも部分的に依存し得る。一例として、関数は、サイド情報を引数として受け入れ得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するサイド情報に基づいて異なる関数を選択し得る。サイド情報は、ブロックサイズ(たとえば、TUサイズ)、ブロックに対応する残差4分木(RQT)深度、ブロックがルミナンス成分に対応するのかまたはクロミナンス成分に対応するのか、ブロックを含むフレームのための(たとえば、ピクセル解像度での)フレームサイズ、ブロックに対応する動き補償ブロック(たとえば、予測ユニット(PU))のための動き補償ブロックサイズ、ブロックを含むフレームのためのフレームタイプ(I/P/B)、対応する動き補償ブロックのためのインター予測方向、対応する動き補償ブロックのための動きベクトル振幅、および/または対応する動き補償ブロックの動きベクトルのための動きベクトル差分振幅のいずれかまたはすべてを含み得る。一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、クロミナンスブロックに対してルミナンスブロックの最後有意係数位置を示す値のビンをコーディングするときに適用すべきコンテキストを導出するために異なる関数を選択し得る。
[0071]ビデオエンコーダ20は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述し得、かつフレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示し得る。
[0072]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0073]このようにして、ビデオエンコーダ20およびビデオデコーダ30は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを行うように構成されたビデオコーダの例を表す。
[0074]図2は、ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0075]図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーエンコーディングユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。また、デブロッキングフィルタに加えて追加のフィルタ(ループ内またはループ後)が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0076]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
[0077]その上、パーティションユニット48は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット48は、初めにフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、LCUをサブCUに区分することを示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUおよび1つまたは複数のTUを含み得る。
[0078]モード選択ユニット40は、たとえば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの1つを選択することができ、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器50に与え、かつ参照フレームとして使用するための符号化されたブロックを復元するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に与える。
[0079]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0080]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0081]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42および動き補償ユニット44は機能的に統合され得る。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42はルーマ成分に対して動き推定を実行し、かつ動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0082]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
[0083]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を判断する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。
[0084]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
[0085]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0086]量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接するブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングの後、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信するかまたは取り出すためにアーカイブされ得る。
[0087]特に、エントロピー符号化ユニット56は、量子化ユニット54から、TUに関連する量子化変換係数のセットを受信し得る。次に、エントロピー符号化ユニット56は、量子化変換係数のセットを走査し、走査された各係数が有意係数を含むかどうか、すなわち、係数が0値を有するのかまたは0でない値を有するのかを決定し得る。非ゼロ値は、特定の量子化変換係数が「有意」係数であることを示し得る。エントロピー符号化ユニット56が有意係数を検出する場合、エントロピー符号化ユニット56は、係数に関連する特定の値(たとえば、1、2など)を表すデータをコーディングし得る。そのようなデータは、たとえば、係数の符号の指示、係数の絶対値が1よりも大きいかどうか、および係数の絶対値が1よりも大きいとき、係数の絶対値が2よりも大きいかどうかを含み得る。さらに、有意係数が2よりも大きい絶対値を有する場合、エントロピー符号化ユニット56は、係数の絶対値から2を減算し、それによって、係数が2を超える値を取得し、この値をコーディングし得る。
[0088]量子化ユニット54から受信した量子化変換係数の全セットを走査することによって、エントロピー符号化ユニット56はまた、特定のTUに関連する(すなわち、走査順序で)最後有意係数を検出および識別し得る。さらに、エントロピー符号化ユニット56は、対応するTU内での最後有意係数の位置を決定し得る。たとえば、エントロピー符号化ユニット56は、TU内での最後有意係数の水平座標(x座標)および垂直座標(y座標)を識別し得る。
[0089]さらに、エントロピー符号化ユニット56は、2進値をまだ有していないシンタックス要素を2値化するように構成され得る。すなわち、シンタックス要素が2進列によってまだ表されていないとき、エントロピー符号化ユニット56は、シンタックス要素の値を表す2進列を決定し得る。2進列または2値化値は、概して、ビットのアレイに対応し、その各々が「0」または「1」の値を有し得る。アレイは0インデクシングされ得、したがって、アレイの順序第1のビットが位置0で生じ、アレイの順序第2のビットが位置1で生じ、以下同様である。したがって、エントロピー符号化ユニット56は、Nビットの長さを有する2値化値B[N]を形成し、各ビットは、それぞれの位置B[i]で生じ、ここで、0≦i≦N−1である。
[0090]次に、エントロピー符号化ユニット56は、最後有意係数のx座標およびy座標を表すデータをエントロピー符号化し得る。たとえば、エントロピー符号化ユニット56は、全体として、HEVCでは、最後有意係数のx座標およびy座標を走査順序で表す、シンタックス要素last_significant_coeff_x_prefix、last_significant_coeff_y_prefix、last_significant_coeff_x_suffixおよび/またはlast_significant_coeff_y_suffixをエントロピー符号化するように構成され得る。エントロピー符号化ユニット56は、f(i)によって示される関数を使用して最後有意係数の座標を表すデータをエントロピー符号化するために、本開示の1つまたは複数の技法を実装し得る。たとえば、エントロピー符号化ユニット56は、対応するシンタックス要素を表す値のビンの1つまたは複数の関数を使用して決定されたコンテキストを使用して、量子化ユニット54から受信した量子化変換係数のためのシンタックス要素および/またはTUの最後有意係数を表す値(たとえば、上記で説明したシンタックス要素)など、様々なシンタックス要素をエントロピー符号化し得る。
[0091]たとえば、「Ctx_i」は、表1〜表2および表8〜表9に関して上記で説明したように、最後有意係数の位置を表す2値化値中のi番目のビンを符号化するためにエントロピー符号化ユニット56によって使用されるコンテキストのインデックスを示し得る。ctx_iによってインデックス付けされるコンテキストは、概して、優勢シンボル(たとえば、「1」または「0」)ならびに優勢シンボルの確率を示す。エントロピー符号化ユニット56は、式Ctx_i=f(i)を使用してCtx_iの値を導出し得、ここで、f(i)は、エントロピー符号化ユニット56にとってアクセス可能な定義済関数であるか、またはユーザによって選択される関数であり得る。さらに、エントロピー符号化ユニット56は、ビデオデコーダ30が、関数f(i)についてのデータを復号し、f(i)を使用してCtx_iの値を取得し得るように、f(i)を表すデータを符号化し得る。このようにして、エントロピー符号化ユニット56は、ビンインデックス、すなわち、シンタックス要素を表す2値化値(すなわち、2進列)中のビンの位置の関数を使用して2値化シンタックス要素の特定のビンのためのコンテキストを決定することができる。
[0092]いくつかの例では、エントロピー符号化ユニット56は、上記で説明した式(5)〜(8)を使用して最後有意係数位置を表すデータのビンをコーディングするためのコンテキストを決定するように構成される。すなわち、エントロピー符号化ユニット56は、f(i)をCtx_idx=offset+(i>>k)のように計算し得る。さらに、エントロピー符号化ユニット56は、以下の式を使用してf(i)中で使用されるオフセット値およびkの値を導出し得る。
Figure 0006042526
[0093]他の実装形態では、エントロピー符号化ユニット56は、TUの最後有意係数の位置を表すデータのビンをエントロピー符号化するためのコンテキストを決定するときに、式(5)〜(8)に加えて、またはその代替として、例示的な関数(1)〜(4)および関数(9)〜(12)のうちの1つまたは複数を使用し得る。このようにして、ビデオエンコーダ20およびエントロピー符号化ユニット56などのそれの構成要素は、1つまたは複数の関数を使用して最後有意係数を表すデータを符号化するために本開示の技法を実装し得る。そのような関数は、テーブルよりもビデオエンコーダ20およびビデオデコーダ30のメモリ中により効率的に記憶され得る。したがって、本開示の技法は、たとえば、通常ならばテーブルに専用となるであろうメモリを他のデータに割り振ることによって、またはビデオエンコーダまたはビデオデコーダのために必要とされるメモリの量を減少させることによって、より効率的にメモリを利用するビデオエンコーダおよびビデオデコーダを実現し得る。
[0094]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0095]このようにして、図2のビデオエンコーダ20は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを行うように構成されたビデオエンコーダの一例を表す。さらに、ビデオエンコーダ20はまた、ビンのインデックスを値k右シフトし、オフセット値に右シフト値を加算することによって関数がコンテキストのためのコンテキストインデックスを生成するビデオエンコーダの一例を表し、オフセット値は、式offset=3*n+((n+1)>>2)に従って決定され、値kは、式k=(n+3)>>2に従って決定され、値nは、式n=(log2(block_size)−2)に従って決定される。
[0096]図3は、ビデオデータのブロックの最後有意係数を表す値をコーディングするために使用すべきコンテキストを決定するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
[0097]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0098]エントロピー復号ユニット70は、符号化ビデオビットストリームをエントロピー復号し、エントロピー復号された量子化係数をブロックに走査順序でポピュレートすることによって量子化係数のブロック(たとえば、TU)を生成し得る。たとえば、エントロピー復号ユニット70は、生成されるべきブロック中の有意係数のロケーションを決定するために、符号化ビデオビットストリームのシンタックス要素をエントロピー復号し得る。ブロックのロケーションが有意係数でない係数に対応する場合、エントロピー復号ユニット70は、ブロック中のそのロケーションにおける係数の値を0に設定し得る。一方、エントロピー復号ユニット70は、特定の量子化係数が有意係数であると決定する場合、エントロピー復号ユニット70は、ビデオエンコーダ20によって符号化ビデオビットストリーム中に与えられたデータに基づいて有意係数の値を設定し得る。
[0099]さらに、以下で説明するように、エントロピー復号ユニット70は、最後有意係数のx座標およびy座標を示すシンタックス要素に基づいてブロック中の最後有意係数の位置を決定し得る。本開示の技法によれば、以下でより詳細に説明するように、エントロピー復号ユニット70は、最後有意係数のx座標およびy座標を表す値のビンをエントロピー復号するためのコンテキストを決定するために関数を使用し得る。ビットストリームのデータが後続のシンタックス要素、すなわち、再生されているブロックのデータを表さないシンタックス要素を表すとき、ビデオデコーダ30は、決定するために最後有意係数の位置の指示を使用し得る。
[0100]エントロピー復号ユニット70は、符号化ビデオビットストリーム中で与えられるデータに基づいて、各有意係数の符号と各有意係数のレベル値を表すデータとを決定し得る。たとえば、エントロピー復号ユニット70は、符号を表すシンタックス要素、たとえば、coeff_sign_flagをエントロピー復号することを通して有意係数の符号を決定し得る。さらに、エントロピー復号ユニット70は、各有意係数のレベル値を表す1つまたは複数のシンタックス要素、たとえば、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、およびcoeff_abs_level_remainingを復号し得る。概して、coeff_abs_level_greater1_flagは、有意係数の絶対値が1よりも大きいかどうかを示し、coeff_abs_level_greater2_flagは、有意係数の絶対値が2よりも大きいかどうかを示し、coeff_abs_level_remainingは、2を減じた有意係数の絶対値を示す。
[0101]エントロピー復号ユニット70はまた、再生されているブロック(たとえば、TU)の最後有意係数の位置を決定し得る。より詳細には、エントロピー復号ユニット70は、符号化ビデオビットストリームに関連するTU内での最後有意係数の位置を(たとえば、x座標およびy座標を表すコード化シンタックス要素に基づいて)識別し得る。最後有意係数の位置を識別することに基づいて、エントロピー復号ユニット70は、走査順序にあるTU中の残りの係数の値を0に設定し得る。すなわち、ビデオデコーダ30は、最後有意係数以外に係数のためのいかなるシンタックス要素も受信する必要はなく、さらに、これらの係数に対して0の値を推論し得る。
[0102]さらに、エントロピー復号ユニット70は、概してf(i)によって示される関数、ただし、iは2値化値中のビンの位置に対応する、を使用して最後有意係数の位置のx座標およびy座標を表す2値化値のビンを復号するために本開示の1つまたは複数の技法を実装し得る。いくつかの例では、エントロピー復号ユニット70は、ビンの値、たとえば、「0」または「1」を再生するために、決定されたコンテキスト使用して符号化データを復号し得る。最後有意係数位置に対応するものとして説明したが、本開示の技法は、他のシンタックス要素をエントロピー復号することにも適用され得る。たとえば、エントロピー復号ユニット70は、対応するシンタックス要素を表す値のビンインデックスの1つまたは複数の関数を使用して決定されるコンテキストを使用して、動き補償ユニット72とイントラ予測ユニット74の一方または両方に送られる量子化係数のためのシンタックス要素、量子化変換係数を表すシンタックス要素、および/または符号化ビデオビットストリームに関連するTUの最後有意係数を表す値など、様々なシンタックス要素をエントロピー復号し得る。
[0103]たとえば、「Ctx_i」は、表1〜表2および表8〜表9に関して上記で説明したように、最後有意係数の位置を表す2値化値中のi番目のビンを復号するためにエントロピー復号ユニット70によって使用されるコンテキストのインデックスを示し得る。この例では、エントロピー復号ユニット70は、式Ctx_i=f(i)を使用してCtx_iの値を導出し得、ここで、f(i)は、(たとえば、ソースデバイス12によって通信される)エントロピー復号ユニット70にとってアクセス可能な定義済関数であるか、またはユーザによって選択される関数であり得る。さらに、エントロピー復号ユニット70は、Ctx_iの値を取得するためにf(i)を表すデータを使用するために、f(i)を表すデータを復号し得る。
[0104]いくつかの例では、エントロピー復号ユニット70は、上記で説明した式(5)〜(8)を使用して最後有意係数位置を表すデータのビンを復号するためのコンテキストを決定するように構成される。すなわち、エントロピー復号ユニット70は、f(i)をCtx_idx=offset+(i>>k)のように計算し得る。さらに、エントロピー復号ユニット70は、以下の式を使用してf(i)中で使用されるオフセット値およびkの値を導出し得る。
Figure 0006042526
[0105]他の実装形態では、エントロピー復号ユニット70は、符号化ビデオビットストリームによって表されるTUの最後有意係数を復号する際に、例示的な式(1)〜(4)および(9)〜(12)のうちの1つまたは複数にf(i)を設定し得る。このようにして、ビデオデコーダ30およびエントロピー復号ユニット70などのそれの構成要素は、1つまたは複数の関数を使用して最後有意係数を復号するために本開示の技法を実装し得る。そのような関数は、テーブルよりもビデオエンコーダ20およびビデオデコーダ30のメモリ中により効率的に記憶され得る。したがって、本開示の技法は、たとえば、通常ならばテーブルに専用となるであろうメモリを他のデータに割り振ることによって、またはビデオエンコーダまたはビデオデコーダのために必要とされるメモリの量を減少させることによって、より効率的にメモリを利用するビデオエンコーダおよびビデオデコーダを実現し得る。
[0106]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照フレームメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
[0107]動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を判断し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを判断するために、受信されたシンタックス要素のいくつかを使用する。
[0108]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
[0109]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、ビデオスライス中のビデオブロックごとにビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
[0110]逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0111]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックに加算することによって、復号されたビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照フレームメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のための、復号されたビデオを記憶する。
[0112]このようにして、図3のビデオデコーダ30は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを行うように構成されたビデオデコーダの一例を表す。さらに、ビデオデコーダ30はまた、ビンのインデックスを値k右シフトし、オフセット値に右シフト値を加算することによって関数がコンテキストのためのコンテキストインデックスを生成するビデオデコーダの一例を表し、オフセット値は、式offset=3*n+((n+1)>>2)に従って決定され、値kは、式k=(n+3)>>2に従って決定され、値nは、式n=(log2(block_size)−2)に従って決定される。
[0113]図4は、現在のブロックを符号化するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUまたは現在のCUの一部分を備え得る。ビデオエンコーダ20(図1および図2)に関して説明されるが、他のデバイスが図4の方法と同様の方法を実行するように構成され得ることを理解されたい。さらに、図4の例示的な方法は、これらの技法を使用してビデオブロックの最後有意係数の位置に関係するシンタックス要素をコーディングすることについて詳細に説明するが、これらの技法が他のシンタックス要素をコーディングすることにも適用され得ることを理解されたい。
[0114]この例では、ビデオエンコーダ20は、初めに、現在のブロックを予測する(150)。たとえば、ビデオエンコーダ20は、現在のブロックのための1つまたは複数の予測ユニット(PU)を計算し得る。ビデオエンコーダ20は、次いで、たとえば、変換ユニット(TU)を生成するために、現在のブロックのための残差ブロックを計算し得る(152)。残差ブロックを計算するために、ビデオエンコーダ20は、元のコーディングされていないブロックと現在のブロックのための予測ブロックとの間の差分を計算し得る。ビデオエンコーダ20は、次いで、残差ブロックの係数を変換し、量子化し得る(154)。次に、ビデオエンコーダ20は、残差ブロックの量子化変換係数を走査し得る(156)。走査中に、または走査の後に、ビデオエンコーダ20は、係数をエントロピー符号化し得る(158)。たとえば、ビデオエンコーダ20は、CAVLCまたはCABACを使用して係数を符号化し得る。
[0115]ビデオエンコーダ20はまた、TU中の最後有意係数の位置の値を決定し得る(160)。その値は、たとえば、上記の表1に関して説明したように、たとえば、最後有意係数の位置を表す2値化値を備え得る。その値のビンの最大数はCABACを使用してコーディングされ得、一方、最大数を超える他のビンは、やはり表1に関して説明したように、バイパスコーディングされ得る。特に、本開示の技法によれば、ビデオエンコーダ20は、関数を使用してその値のビンのためのコンテキストを決定し得る(162)。上記で説明したように、コンテキストは、特定の値、たとえば、「0」または「1」を有するビンの確率を記述し得る。関数は、上記で説明した関数(1)〜(12)のうちの1つまたは概念的に同様の関数に対応し得る。
[0116]関数(5)〜(8)の例に関して、ビデオエンコーダ20は、式offset+(i>>k)、ただし、offset=3*n+((n+1)>>2)、k=(n+3)>>2、およびn=(log2(block_size)−2)を使用して、最後有意係数の位置を表す2値化値の位置iにおけるビンのためのコンテキストctx_idxを決定し得る。すなわち、ビデオエンコーダ20は、エントロピー符号化されるべき各ビンにわたって反復し、上記に示した関数を実行して、現在反復のビンをコーディングするためのコンテキストを決定し得る。ビデオエンコーダ20は、次いで、決定されたコンテキストを使用してその値のビン(たとえば、ビンの最大数を上回っていないビン)を符号化し得る(164)。同様に、ビデオエンコーダ20は、その値の任意の残りのビンをバイパスコーディングし得る(166)。
[0117]このようにして、図4の方法は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを含む方法の一例を表す。さらに、関数は、ビンのインデックスを値k右シフトし、オフセット値に右シフト値を加算することによってコンテキストのためのコンテキストインデックスを生成し得、オフセット値は、式offset=3*n+((n+1)>>2)に従って決定され、値kは、式k=(n+3)>>2に従って決定され、値nは、式n=(log2(block_size)−2)に従って決定される。
[0118]図5は、ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUまたは現在のCUの一部分を備え得る。ビデオデコーダ30(図1および図3)に関して説明されるが、他のデバイスが図5の方法と同様の方法を実行するように構成され得ることを理解されたい。さらに、図4の例示的な方法は、これらの技法を使用してビデオブロックの最後有意係数の位置に関係するシンタックス要素をコーディングすることについて詳細に説明するが、これらの技法が他のシンタックス要素をコーディングすることにも適用され得ることを理解されたい。
[0119]ビデオデコーダ30は、現在のブロックのための予測ブロックを計算するために、たとえば、イントラまたはインター予測モードを使用して現在のブロックを予測し得る(200)。ビデオデコーダ30はまた、現在のブロックに対応する残差ブロックの係数についてのエントロピーコーディングされたデータなど、現在のブロックについてのエントロピーコーディングされたデータを受信し得る(202)。ビデオデコーダ30は、残差ブロックの係数を再生するために、エントロピーコーディングされたデータをエントロピー復号し得る(204)。
[0120]本開示の技法によれば、ビデオデコーダ30は、TU中の最後有意係数の位置を示す符号化値を受信し得る(206)。その値のビンの最大数はCABACを使用して復号され得、一方、最大数を超える他のビンは、表1に関して説明したように、バイパス復号され得る。特に、本開示の技法によれば、ビデオデコーダ30は、関数を使用してその値のビンのためのコンテキストを決定し得る(208)。上記で説明したように、コンテキストは、特定の値、たとえば、「0」または「1」を有するビンの確率を記述し得る。関数は、上記で説明した関数(1)〜(12)のうちの1つまたは概念的に同様の関数に対応し得る。
[0121]関数(5)〜(8)の例に関して、ビデオデコーダ30は、復号されている2値化値の位置iにおけるビンのためのコンテキストctx_idxを決定し得、ただし、2値化値は、式offset+(i>>k)、ただし、offset=3*n+((n+1)>>2)、k=(n+3)>>2、およびn=(log2(block_size)−2)を使用して、最後有意係数の位置を表す。すなわち、ビデオデコーダ30は、エントロピー復号されるべき各ビンを反復して復号し、上記に示した関数を実行して、現在反復のビンをコーディングするためのコンテキストを決定し得る。ビデオデコーダ30は、次いで、決定されたコンテキストを使用してその値のビン(たとえば、ビンの最大数を上回っていないビン)を復号し得る(210)。たとえば、ビデオデコーダ30は、その値のビンを再生するか、またはさもなければ取得するために決定されたコンテキストを使用してビデオエンコーダ20から受信した符号化データを復号し得る。同様に、ビデオデコーダ30は、その値の残りのビンをバイパス復号し得る(212)。
[0122]ビデオデコーダ30は、次いで、量子化変換係数のブロックを作成するために、最後有意係数の位置に基づいて再生係数を逆走査し得る(214)。すなわち、ビデオデコーダ30は、最後有意係数の位置において開始し、概してエンコーダによって使用される走査順序に対応する走査順序で続けてTU中の復号係数を配置し得る。ビデオデコーダ30は、次いで、残差ブロックを生成するために係数を逆量子化し、逆変換し得る(216)。ビデオデコーダ30は、最終的に、予測ブロックと残差ブロックとを組み合わせることによって現在のブロックを復号し得る(218)。
[0123]このようにして、図5の方法は、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値のビンをエントロピーコーディングするためのコンテキストを決定することと、決定されたコンテキストを使用してビンをコーディングすることとを含む方法の一例を表す。さらに、関数は、ビンのインデックスを値k右シフトし、オフセット値に右シフト値を加算することによってコンテキストのためのコンテキストインデックスを生成し得、オフセット値は、式offset=3*n+((n+1)>>2)に従って決定され、値kは、式k=(n+3)>>2に従って決定され、値nは、式n=(log2(block_size)−2)に従って決定される。
[0124]例によっては、本明細書で説明された技法のうちいずれかの、いくつかの行為またはイベントは、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明した作用またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して、同時に実行され得る。
[0125]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0126]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0127]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび/もしくはソフトウェアモジュール内に与えられ得、または複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実装され得る。
[0128]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0129]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピーコーディングするためのコンテキストを決定することと、
前記決定されたコンテキストを使用して前記ビンをコーディングすることと
を備える方法。
[C2]
前記関数が、前記ビンの前記インデックスを値k、右シフトし、オフセット値に前記右シフト値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
前記オフセット値が次式に従って決定され、
Figure 0006042526
前記値kが次式に従って決定され、
Figure 0006042526
前記値nが次式に従って決定される、
Figure 0006042526
C1に記載の方法。
[C3]
前記コンテキストを決定することが前記関数を実行することを備える、C1に記載の方法。
[C4]
前記関数が線形関数を備える、C1に記載の方法。
[C5]
前記関数が非線形関数を備える、C1に記載の方法。
[C6]
前記関数が、前記ビンの前記インデックスを1つ右シフトすることによって前記コンテキストのためのコンテキストインデックスを生成する、C1に記載の方法。
[C7]
前記関数が、前記ビンの前記インデックスと前記ブロックのサイズを示す値との両方の関数を備える、C1に記載の方法。
[C8]
前記ブロックの前記サイズを示す前記値がblock_sizeを備え、前記関数が、前記ビンの前記インデックスを(log2(block_size−2))に対応する値、右シフトすることによって前記コンテキストのためのコンテキストインデックスを生成する、C7に記載の方法。
[C9]
前記関数が、前記ビンの前記インデックスよりも1つ大きい値である値を1つ右シフトし、ブロックサイズオフセット値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、前記ブロックの前記サイズを示す前記値がblock_sizeを備え、ブロックサイズオフセット値が式[(log 2 (block_size−2)*(log 2 (block_size+1)/2))]に従って決定される、C7に記載の方法。
[C10]
前記関数が、前記ビンの前記インデックスを1つ右シフトし、ブロックサイズオフセット値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、前記ブロックの前記サイズを示す前記値がblock_sizeを備え、ブロックサイズオフセット値が式[(log 2 (block_size−2)*(log 2 (block_size+1)/2))]に従って決定される、C7に記載の方法。
[C11]
前記関数は、
前記ビンが、前記ブロックの前記最後有意係数を示す前記値の最後のビンであるとき、前記コンテキストインデックスを10に等しくなるように設定することと、
前記ビンが、前記ブロックの前記最後有意係数を示す前記値の最後のビンでないとき、前記ビンの前記インデックスを1つ右シフトし、ブロックサイズオフセット値を加算することによって、前記コンテキストインデックスを決定することであって、前記ブロックの前記サイズを示す前記値がblock_sizeを備え、ブロックサイズオフセット値が式[(log 2 (block_size−2)*(log 2 (block_size−1)/2))]に従って決定される、決定することと
を行うことによって前記コンテキストのためのコンテキストインデックスを生成する、C7に記載の方法。
[C12]
前記ブロックの前記サイズを示す前記値がblock_sizeを備え、前記関数が、前記ビンの前記インデックスを値k、右シフトし、オフセット値に前記右シフト値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
値nが次式に従って決定され、
Figure 0006042526
前記値kが次式に従って決定され、
Figure 0006042526
前記ブロックがルミナンスブロックを備えるとき、前記オフセット値が次式に従って決定され、
Figure 0006042526
前記ブロックがクロミナンスブロックを備えるとき、前記オフセット値が次式に従って決定される
Figure 0006042526
C7に記載の方法。
[C13]
前記関数が、前記ブロックの区分の深度と、前記ブロックを含むピクチャのサイズと、前記ブロックに対応する動き補償ブロックのサイズと、前記ブロックを含む前記ピクチャのためのフレームタイプと、前記ブロックに対応する前記動き補償ブロックのためのインター予測方向と、前記ブロックに対応する前記動き補償ブロックのための動きベクトルの振幅と、前記ブロックに対応する前記動き補償ブロックのための前記動きベクトルの動きベクトル差分値の振幅と、前記ブロックがルミナンス成分に対応するのかまたはクロミナンス成分に対応するのかとのうちの少なくとも1つに基づいて変化する、C1に記載の方法。
[C14]
ユーザから前記関数を受信することをさらに備える、C1に記載の方法。
[C15]
前記関数を定義するシンタックスデータを受信することをさらに備える、C1に記載の方法。
[C16]
前記関数が、引数として前記ビンの前記インデックスを含む、C1に記載の方法。
[C17]
前記ビンをコーディングすることが、前記ビンの値を再生するために前記決定されたコンテキストを使用して符号化データをエントロピー復号することを備える、C1に記載の方法。
[C18]
前記ビンをコーディングすることが、前記決定されたコンテキストを使用して前記ビンをエントロピー符号化することを備える、C1に記載の方法。
[C19]
ビデオデータをコーディングするためのデバイスであって、ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピーコーディングするためのコンテキストを決定することと、前記決定されたコンテキストを使用して前記ビンをコーディングすることとを行うように構成されたビデオコーダを備えるデバイス。
[C20]
前記関数が、前記ビンの前記インデックスを値k、右シフトし、オフセット値に前記右シフト値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
前記オフセット値が次式に従って決定され、
Figure 0006042526
前記値kが次式に従って決定され、
Figure 0006042526
前記値nが次式に従って決定される、
Figure 0006042526
C19に記載のデバイス。
[C21]
前記ビデオコーダが、前記関数を実行することに少なくとも部分的によって前記コンテキストを決定するように構成された、C19に記載のデバイス。
[C22]
前記関数が、前記ビンの前記インデックスと前記ブロックのサイズを示す値との両方の関数を備える、C19に記載のデバイス。
[C23]
前記関数が、前記ブロックの区分の深度と、前記ブロックを含むピクチャのサイズと、前記ブロックに対応する動き補償ブロックのサイズと、前記ブロックを含む前記ピクチャのためのフレームタイプと、前記ブロックに対応する前記動き補償ブロックのためのインター予測方向と、前記ブロックに対応する前記動き補償ブロックのための動きベクトルの振幅と、前記ブロックに対応する前記動き補償ブロックのための前記動きベクトルの動きベクトル差分値の振幅と、前記ブロックがルミナンス成分に対応するのかまたはクロミナンス成分に対応するのかとのうちの少なくとも1つに基づいて変化する、C19に記載のデバイス。
[C24]
前記ビデオコーダが、前記関数を定義するシンタックスデータを受信することを行うようにさらに構成された、C20に記載のデバイス。
[C25]
前記ビデオコーダが、前記ビンの値を再生するために前記決定されたコンテキストを使用して符号化データをエントロピー復号することに少なくとも部分的によって前記ビンをコーディングするように構成された、C19に記載のデバイス。
[C26]
前記ビデオコーダが、前記決定されたコンテキストを使用して前記ビンをエントロピー符号化することに少なくとも部分的によって前記ビンをコーディングするように構成された、C19に記載のデバイス。
[C27]
前記デバイスが、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと
のうちの少なくとも1つを備える、C19に記載のデバイス。
[C28]
ビデオデータをコーディングするためのデバイスであって、
ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピーコーディングするためのコンテキストを決定するための手段と、
前記決定されたコンテキストを使用して前記ビンをコーディングするための手段と
を備えるデバイス。
[C29]
前記関数が、前記ビンの前記インデックスを値k、右シフトし、オフセット値に前記右シフト値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
前記オフセット値が次式に従って決定され、
Figure 0006042526
前記値kが次式に従って決定され、
Figure 0006042526
前記値nが次式に従って決定される、
Figure 0006042526
C28に記載のデバイス。
[C30]
前記コンテキストを決定するための前記手段が前記関数を実行するための手段を備える、C28に記載のデバイス。
[C31]
前記関数が、前記ビンの前記インデックスと前記ブロックのサイズを示す値との両方の関数を備える、C28に記載のデバイス。
[C32]
前記関数が、前記ブロックの区分の深度と、前記ブロックを含むピクチャのサイズと、前記ブロックに対応する動き補償ブロックのサイズと、前記ブロックを含む前記ピクチャのためのフレームタイプと、前記ブロックに対応する前記動き補償ブロックのためのインター予測方向と、前記ブロックに対応する前記動き補償ブロックのための動きベクトルの振幅と、前記ブロックに対応する前記動き補償ブロックのための前記動きベクトルの動きベクトル差分値の振幅と、前記ブロックがルミナンス成分に対応するのかまたはクロミナンス成分に対応するのかとのうちの少なくとも1つに基づいて変化する、C28に記載のデバイス。
[C33]
前記関数を定義するシンタックスデータを受信するための手段をさらに備える、C28に記載のデバイス。
[C34]
実行されたとき、コンピューティングデバイスのプログラマブルプロセッサに、
ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピーコーディングするためのコンテキストを決定することと、
前記決定されたコンテキストを使用して前記ビンをコーディングすることと
を行わせる命令で符号化されたコンピュータ可読記憶媒体。
[C35]
前記関数が、前記ビンの前記インデックスを値k、右シフトし、オフセット値に前記右シフト値を加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
前記オフセット値が次式に従って決定され、
Figure 0006042526
前記値kが次式に従って決定され、
Figure 0006042526
前記値nが次式に従って決定される、
Figure 0006042526
C34に記載のコンピュータ可読記憶媒体。
[C36]
前記プログラマブルプロセッサに前記コンテキストを決定させる前記命令が、前記関数を実行することを前記プログラマブルプロセッサに行わせる命令をさらに含む、C34に記載のコンピュータ可読記憶媒体。
[C37]
前記関数が、前記ビンの前記インデックスと前記ブロックのサイズを示す値との両方の関数を備える、C34に記載のコンピュータ可読記憶媒体。
[C38]
前記関数が、前記ブロックの区分の深度と、前記ブロックを含むピクチャのサイズと、前記ブロックに対応する動き補償ブロックのサイズと、前記ブロックを含む前記ピクチャのためのフレームタイプと、前記ブロックに対応する前記動き補償ブロックのためのインター予測方向と、前記ブロックに対応する前記動き補償ブロックのための動きベクトルの振幅と、前記ブロックに対応する前記動き補償ブロックのための前記動きベクトルの動きベクトル差分値の振幅と、前記ブロックがルミナンス成分に対応するのかまたはクロミナンス成分に対応するのかとのうちの少なくとも1つに基づいて変化する、C34に記載のコンピュータ可読記憶媒体。
[C39]
実行されたとき、前記プログラマブルプロセッサに、前記関数を定義するシンタックスデータを受信することを行わせる命令でさらに符号化される、C34に記載のコンピュータ可読記憶媒体。

Claims (21)

  1. ビデオデータを符号化または復号する方法であって、
    ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピー符号化またはエントロピー復号するためのコンテキストを決定することであって、
    前記関数が、前記ビンの前記インデックスを値k右シフトし、オフセット値に前記値k右シフトされた前記インデックスを加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
    前記オフセット値が次式に従って決定され、
    Figure 0006042526
    前記値kが次式に従って決定され、
    Figure 0006042526
    前記値nが次式に従って決定され、
    Figure 0006042526
    前記値block_sizeが前記ブロックのサイズを示す値を備える、
    決定することと、
    前記決定されたコンテキストを使用して前記ビンを符号化または復号することと
    を備える方法。
  2. 前記コンテキストを決定することが前記関数を実行することを備える、請求項1に記載の方法。
  3. 前記関数が線形関数を備える、請求項1に記載の方法。
  4. 前記関数が非線形関数を備える、請求項1に記載の方法。
  5. 前記関数が、前記ビンの前記インデックスを1つ右シフトすることによって前記コンテキストのためのコンテキストインデックスを生成する、請求項1に記載の方法。
  6. ユーザから前記関数を受信することをさらに備える、請求項1に記載の方法。
  7. 前記関数を定義するシンタックスデータを受信することをさらに備える、請求項1に記載の方法。
  8. 前記ビンを符号化または復号することが、前記ビンの値を再生するために前記決定されたコンテキストを使用して符号化データをエントロピー復号することを備える、請求項1に記載の方法。
  9. 前記ビンを符号化または復号することが、前記決定されたコンテキストを使用して前記ビンをエントロピー符号化することを備える、請求項1に記載の方法。
  10. ビデオデータを符号化または復号するためのデバイスであって、
    前記ビデオデータを記憶するように構成されたメモリと、
    ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピー符号化またはエントロピー復号するためのコンテキストを決定することであって、
    前記関数が、前記ビンの前記インデックスを値k右シフトし、オフセット値に前記値k右シフトされた前記インデックスを加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
    前記オフセット値が次式に従って決定され、
    Figure 0006042526
    前記値kが次式に従って決定され、
    Figure 0006042526
    前記値nが次式に従って決定され、
    Figure 0006042526
    前記値block_sizeが前記ブロックのサイズを示す値を備える、
    決定することと、
    前記決定されたコンテキストを使用して前記ビンを符号化または復号することと
    を行うように構成された1つまたは複数のプロセッサと
    を備えるデバイス。
  11. 前記1つまたは複数のプロセッサが、前記関数を実行することに少なくとも部分的によって前記コンテキストを決定するように構成された、請求項10に記載のデバイス。
  12. 前記1つまたは複数のプロセッサが、前記関数を定義するシンタックスデータを受信することを行うようにさらに構成された、請求項10に記載のデバイス。
  13. 前記1つまたは複数のプロセッサが、前記ビンの値を再生するために前記決定されたコンテキストを使用して符号化データをエントロピー復号することに少なくとも部分的によって前記ビンを符号化または復号するように構成された、請求項10に記載のデバイス。
  14. 前記1つまたは複数のプロセッサが、前記決定されたコンテキストを使用して前記ビンをエントロピー符号化することに少なくとも部分的によって前記ビンを符号化または復号するように構成された、請求項10に記載のデバイス。
  15. 前記デバイスが、
    集積回路と、
    マイクロプロセッサと、
    デオコーダを含むワイヤレス通信デバイスと
    のうちの少なくとも1つを備える、請求項10に記載のデバイス。
  16. ビデオデータを符号化または復号するためのデバイスであって、
    ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピー符号化またはエントロピー復号するためのコンテキストを決定するための手段であって、
    前記関数が、前記ビンの前記インデックスを値k右シフトし、オフセット値に前記値k右シフトされた前記インデックスを加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
    前記オフセット値が次式に従って決定され、
    Figure 0006042526
    前記値kが次式に従って決定され、
    Figure 0006042526
    前記値nが次式に従って決定され、
    Figure 0006042526
    前記値block_sizeが前記ブロックのサイズを示す値を備える、
    決定するための手段と、
    前記決定されたコンテキストを使用して前記ビンを符号化または復号するための手段と
    を備えるデバイス。
  17. 前記コンテキストを決定するための前記手段が前記関数を実行するための手段を備える、請求項16に記載のデバイス。
  18. 前記関数を定義するシンタックスデータを受信するための手段をさらに備える、請求項16に記載のデバイス。
  19. 実行されたとき、コンピューティングデバイスのプログラマブルプロセッサに、
    ビンのインデックスの関数を使用してビデオデータのブロックの最後有意係数を示す値の前記ビンをエントロピー符号化またはエントロピー復号するためのコンテキストを決定することであって、
    前記関数が、前記ビンの前記インデックスを値k右シフトし、オフセット値に前記値k右シフトされた前記インデックスを加算することによって、前記コンテキストのためのコンテキストインデックスを生成し、
    前記オフセット値が次式に従って決定され、
    Figure 0006042526
    前記値kが次式に従って決定され、
    Figure 0006042526
    前記値nが次式に従って決定され、
    Figure 0006042526
    前記値block_sizeが前記ブロックのサイズを示す値を備える、
    決定することと、
    前記決定されたコンテキストを使用して前記ビンを符号化または復号することと
    を行わせる命令で符号化されたコンピュータ可読記憶媒体。
  20. 前記プログラマブルプロセッサに前記コンテキストを決定させる前記命令が、前記関数を実行することを前記プログラマブルプロセッサに行わせる命令をさらに含む、請求項19に記載のコンピュータ可読記憶媒体。
  21. 実行されたとき、前記プログラマブルプロセッサに、前記関数を定義するシンタックスデータを受信することを行わせる命令でさらに符号化される、請求項19に記載のコンピュータ可読記憶媒体。
JP2015501752A 2012-03-22 2013-03-13 ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出 Active JP6042526B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261614178P 2012-03-22 2012-03-22
US61/614,178 2012-03-22
US201261620273P 2012-04-04 2012-04-04
US61/620,273 2012-04-04
US201261666316P 2012-06-29 2012-06-29
US61/666,316 2012-06-29
US13/796,572 US9237344B2 (en) 2012-03-22 2013-03-12 Deriving context for last position coding for video coding
US13/796,572 2013-03-12
PCT/US2013/030886 WO2013142195A1 (en) 2012-03-22 2013-03-13 Deriving context for last position coding for video coding

Publications (3)

Publication Number Publication Date
JP2015514355A JP2015514355A (ja) 2015-05-18
JP2015514355A5 JP2015514355A5 (ja) 2016-04-21
JP6042526B2 true JP6042526B2 (ja) 2016-12-14

Family

ID=49211799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015501752A Active JP6042526B2 (ja) 2012-03-22 2013-03-13 ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出

Country Status (23)

Country Link
US (1) US9237344B2 (ja)
EP (1) EP2829061B1 (ja)
JP (1) JP6042526B2 (ja)
KR (1) KR101699600B1 (ja)
CN (1) CN104205835B (ja)
AU (1) AU2013235516B2 (ja)
BR (1) BR112014023466B1 (ja)
CA (1) CA2865616C (ja)
DK (1) DK2829061T3 (ja)
ES (1) ES2616486T3 (ja)
HK (1) HK1202741A1 (ja)
HU (1) HUE031741T2 (ja)
IL (1) IL234269A (ja)
MY (1) MY165949A (ja)
PH (1) PH12014502044A1 (ja)
PL (1) PL2829061T3 (ja)
PT (1) PT2829061T (ja)
RU (1) RU2629437C2 (ja)
SG (1) SG11201405150XA (ja)
SI (1) SI2829061T1 (ja)
TW (1) TWI523530B (ja)
WO (1) WO2013142195A1 (ja)
ZA (1) ZA201407494B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT2728866T (pt) * 2011-06-28 2019-02-21 Samsung Electronics Co Ltd Método e aparelho para codificar vídeo e método e aparelho para descodificar vídeo acompanhado com codificação aritmética
JP2014533058A (ja) * 2011-11-08 2014-12-08 サムスン エレクトロニクス カンパニー リミテッド ビデオの算術符号化方法及びその装置、並びにビデオの算術復号化方法及びその装置
AU2014202682A1 (en) * 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
US10425659B2 (en) * 2015-01-30 2019-09-24 Qualcomm Incorporated Coding escape pixels for palette coding
US10574993B2 (en) 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
EP3306924A1 (en) 2016-10-05 2018-04-11 Thomson Licensing Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data
GB2567861A (en) 2017-10-27 2019-05-01 Sony Corp Image data encoding and decoding
EP3490253A1 (en) 2017-11-23 2019-05-29 Thomson Licensing Encoding and decoding methods and corresponding devices
US11671598B2 (en) * 2019-01-02 2023-06-06 Lg Electronics Inc. Image decoding method and device using residual information in image coding system
US11218735B2 (en) * 2019-04-02 2022-01-04 Qualcomm Incorporated Context derivation for last position coding for video coding
US11336893B2 (en) * 2020-01-07 2022-05-17 Qualcomm Incorporated Context derivation and entropy coding initialization parameters for coordinates of last position coding in video coding

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434623A (en) * 1991-12-20 1995-07-18 Ampex Corporation Method and apparatus for image data compression using combined luminance/chrominance coding
US5734755A (en) * 1994-03-11 1998-03-31 The Trustees Of Columbia University In The City Of New York JPEG/MPEG decoder-compatible optimized thresholding for image and video signal compression
EP1933568A3 (en) 2001-09-14 2008-06-25 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
CN100483402C (zh) * 2002-08-28 2009-04-29 思科系统公司 用于执行高速上下文检索和数据模式特征描述的可编程规则处理设备
US7724818B2 (en) 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7570827B2 (en) * 2004-07-14 2009-08-04 Slipstream Data Inc. Method, system and computer program product for optimization of data compression with cost function
NO322043B1 (no) * 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
RU2336661C2 (ru) * 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
EP2091257B1 (en) 2006-11-30 2017-12-27 Panasonic Corporation Coder
WO2008084443A1 (en) 2007-01-09 2008-07-17 Nokia Corporation System and method for implementing improved decoded picture buffer management for scalable video coding and multiview video coding
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
US8891615B2 (en) * 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
KR100936208B1 (ko) * 2008-12-09 2010-01-12 주식회사세오 무손실 문맥적응적이진산술부호화를 위한 h.264/avc 부호화기, 상기 부호화기의 문맥적응적이진산술부호화방법
US20110110416A1 (en) * 2009-11-12 2011-05-12 Bally Gaming, Inc. Video Codec System and Method
HUE037656T2 (hu) 2010-04-13 2018-09-28 Fraunhofer Ges Forschung Valószínûség intervallum partícionáló kódoló és dekódoló
KR20230129624A (ko) 2010-05-12 2023-09-08 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 통합된 유효성 맵 코딩을 위한 방법 및 장치
US9591320B2 (en) 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
US9042440B2 (en) * 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US20120163472A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video block in video coding
US20120163456A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US8768080B2 (en) 2011-01-04 2014-07-01 Blackberry Limited Coding of residual data in predictive compression
US8687904B2 (en) 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
CN107517384B (zh) * 2011-06-16 2020-06-30 Ge视频压缩有限责任公司 解码器、编码器、解码方法、编码方法以及存储介质
US10536701B2 (en) * 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
US10390046B2 (en) * 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US9565435B2 (en) * 2012-02-04 2017-02-07 Google Technology Holdings LLC Devices and methods for context reduction in last significant coefficient position coding
US9386307B2 (en) * 2012-06-14 2016-07-05 Qualcomm Incorporated Grouping of bypass-coded bins for SAO syntax elements

Also Published As

Publication number Publication date
BR112014023466B1 (pt) 2023-02-23
SI2829061T1 (sl) 2017-02-28
PH12014502044B1 (en) 2014-11-24
MY165949A (en) 2018-05-18
CA2865616C (en) 2017-09-05
US20130251041A1 (en) 2013-09-26
TW201352010A (zh) 2013-12-16
WO2013142195A1 (en) 2013-09-26
RU2014142546A (ru) 2016-05-20
ES2616486T3 (es) 2017-06-13
BR112014023466A8 (pt) 2021-06-22
EP2829061B1 (en) 2016-11-16
PT2829061T (pt) 2017-02-15
ZA201407494B (en) 2017-08-30
CN104205835A (zh) 2014-12-10
KR101699600B1 (ko) 2017-01-24
EP2829061A1 (en) 2015-01-28
KR20140139570A (ko) 2014-12-05
PH12014502044A1 (en) 2014-11-24
CN104205835B (zh) 2017-10-31
JP2015514355A (ja) 2015-05-18
US9237344B2 (en) 2016-01-12
HUE031741T2 (en) 2017-07-28
CA2865616A1 (en) 2013-09-26
HK1202741A1 (en) 2015-10-02
IL234269A (en) 2017-07-31
DK2829061T3 (en) 2017-02-06
AU2013235516B2 (en) 2017-04-20
BR112014023466A2 (pt) 2017-06-20
AU2013235516A1 (en) 2014-09-25
TWI523530B (zh) 2016-02-21
SG11201405150XA (en) 2014-10-30
PL2829061T3 (pl) 2017-05-31
RU2629437C2 (ru) 2017-08-29

Similar Documents

Publication Publication Date Title
JP6542400B2 (ja) 係数走査のための係数グループおよび係数コーディング
JP6903644B2 (ja) ビデオコーディングのために位置依存の予測組合せを使用する改善されたビデオイントラ予測
JP5869008B2 (ja) ビデオコーディングにおける変換
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
JP5932050B2 (ja) ビデオコーディングにおけるクロマ成分のための変換ユニットパーティショニング
JP6042526B2 (ja) ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出
JP5902307B2 (ja) イントラモードビデオコーディング
JP6162150B2 (ja) ビデオコーディング用の残差4分木(rqt)コーディング
JP5869108B2 (ja) メモリ効率的コンテキストモデリング
JP5823623B2 (ja) ビデオコーディングのための動きベクトル予測子候補クリッピング削除
JP6151446B2 (ja) ビデオコーディングのための高精度明示的重み付け予測
JP5833249B2 (ja) ビデオコーディングのための適応的な中心帯域オフセットフィルタ
JP5922244B2 (ja) ビデオコーディングにおいて適応ループフィルタとマージされたサンプル適応オフセット
JP5940726B2 (ja) ビデオコーディングにおけるバイパスコーディングされたシンタックス要素のグループ化
JP6337009B2 (ja) ビデオコーディングにおける時間スケーラビリティを伴うプログレッシブ精緻化
JP5955955B2 (ja) リーフレベルコード化単位のサブセットについての変換係数のシンタックス要素の信号伝達
JP6239609B2 (ja) ビデオコーディングのための長期参照ピクチャをシグナリングすること
JP2018537908A (ja) ビデオデータの符号情報をコーディングすること
JP6301449B2 (ja) ビット深度に基づいたサンプル適応オフセットスケーリング
JP2018125863A (ja) ビデオプロパティの指示
JP2017523685A (ja) イントラブロックコピーイングのためのブロックベクトルコーディング
JP2017513342A (ja) ゼロアウトされた係数を使用した低複雑な順変換のためのシステムおよび方法
JP2016530775A (ja) インター色成分残差予測
JP2020039138A (ja) パレットモードコード化のためのエスケープ画素をコード化すること
JP2016534644A (ja) イントラブロックコピーのための残差予測

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160303

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160303

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160303

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160914

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161109

R150 Certificate of patent or registration of utility model

Ref document number: 6042526

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