JP5951772B2 - ビデオコーディングのための変換係数のコーディング - Google Patents

ビデオコーディングのための変換係数のコーディング Download PDF

Info

Publication number
JP5951772B2
JP5951772B2 JP2014525076A JP2014525076A JP5951772B2 JP 5951772 B2 JP5951772 B2 JP 5951772B2 JP 2014525076 A JP2014525076 A JP 2014525076A JP 2014525076 A JP2014525076 A JP 2014525076A JP 5951772 B2 JP5951772 B2 JP 5951772B2
Authority
JP
Japan
Prior art keywords
transform coefficients
subset
transform
coefficients
block
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
JP2014525076A
Other languages
English (en)
Other versions
JP2014527358A (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
Priority claimed from US13/413,497 external-priority patent/US20120230418A1/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014527358A publication Critical patent/JP2014527358A/ja
Application granted granted Critical
Publication of JP5951772B2 publication Critical patent/JP5951772B2/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with 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/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

Description

優先権の主張
本出願は、2011年8月5日に出願された米国仮出願第61/515,711号の利益を主張し、2012年3月6日に出願された米国出願第13/413,497号の一部継続出願であり、その両方の全体が参照により組み込まれる。
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングプロセスによって生成される変換係数を走査し、コーディングするための技法に関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,Advanced Video Coding(AVC)によって定義された規格、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
[0005]インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は2次元アレイに構成される、量子化された変換係数は、特定の順序で走査されて、エントロピーコーディングのための変換係数の1次元ベクトルが生成され得る。
[0006]概して、本開示では、ビデオコーディングプロセスにおいて残差ビデオデータのブロックに関連する変換係数をコーディングするためのデバイスおよび方法について説明する。本開示で説明する技法、構造および方法は、変換係数に関係するシンタックス要素をコーディングするためにエントロピーコーディング(たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding))を使用するビデオコーディングプロセスに適用可能である。本開示の態様は、変換係数のための、有意性(significance)コーディングとレベルおよび符号コーディングの両方のための走査順序の選択、ならびに選択された走査順序に一致するエントロピーコーディングのためのコンテキストの選択を含む。本開示の技法、構造および方法は、ビデオエンコーダとビデオデコーダの両方における使用に適用可能である。
[0007]本開示では、変換係数の有意性マップと変換係数のレベルとの両方をコーディングするための走査順序の調和を提案する。すなわち、いくつかの例では、有意性マップコーディングとレベルコーディングとのための走査順序は、同じパターンおよび方向を有するべきである。別の例では、有意性マップのための走査順序が逆方向(すなわち、より高い周波数のための係数からより低い周波数のための係数へ)であるべきことを提案する。さらに別の例では、有意性マップコーディングとレベルコーディングとのための走査順序は、各々が逆方向に進むように調和されるべきであることを提案する。
[0008]本開示では、いくつかの例では、変換係数がサブセットにおいて走査されることをも提案する。特に、変換係数は、走査順序に従っていくつかの連続係数からなるサブセットにおいて走査される。そのようなサブセットは、有意性マップ走査と係数レベル走査との両方に適用可能であり得る。
[0009]さらに、本開示では、いくつかの例では、有意性マップ走査と係数レベル走査とが、連続走査でおよび同じ走査順序に従って実行されることを提案する。一態様では、走査順序は逆方向走査順序である。連続走査はいくつかの走査パスを含み得る。各走査パスはシンタックス要素走査パスを含み得る。たとえば、第1の走査は(変換係数のレベルのビン0とも呼ばれる)有意性マップ走査であり、第2の走査は各サブセット中の変換係数のレベルのビン1(すなわち、1よりも大きいレベルを有する変換係数)の走査であり、第3の走査は各サブセット中の変換係数のレベルのビン2(すなわち、2よりも大きいレベルを有する変換係数)の走査であり得、第4の走査は変換係数のレベルの残りのビン(すなわち、2よりも大きい残りのレベル)の走査であり、第5の走査は変換係数のレベルの符号(すなわち、プラスまたはマイナス符号)の走査である。符号パスは、有意性マップパスの後の任意のポイントにあり得る。さらに、パスごとに2つ以上のシンタックス要素をコーディングすることによって走査パスの数が低減され得る。たとえば、コード化ビンを使用したシンタックス要素のための1つの走査パスと、バイパスビン(たとえば、残りのレベルおよび符号)を使用したシンタックス要素のための第2の走査パスとがあり得る。このコンテキストでは、ビンは、エントロピーコーディングされたビンストリングの一部である。所与の非バイナリ値シンタックス要素がバイナリシーケンス(いわゆるビンストリング)にマッピングされる。
[0010]本開示では、いくつかの例では、変換係数が、2つの異なるコンテキスト領域においてCABACを使用してエントロピーコーディングされることをも提案する。第1のコンテキスト領域のためのコンテキスト導出は変換係数の位置に依存し、第2の領域のためのコンテキスト導出は変換係数の因果的ネイバー(causal neighbor)に依存する。別の例では、第2のコンテキスト領域は、変換係数のロケーションに応じて2つの異なるコンテキストモデルを使用することができる。
[0011]本開示の一例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法を提案する。本方法は、走査順序に基づいて変換係数のブロックを変換係数の1つまたは複数のサブセットに構成する(arrange)ことと、各サブセット中の変換係数のレベルの第1の部分をコーディングすることと、レベルの第1の部分は各サブセット中の変換係数の少なくとも有意性(significance)を含み、各サブセット中の変換係数のレベルの第2の部分をコーディングすることと、を備える。
[0012]本開示の別の例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのシステムを提案する。本システムは、走査順序に基づいて変換係数のブロックを変換係数の1つまたは複数のサブセットに構成する(arrange)ことと、各サブセット中の変換係数のレベルの第1の部分をコーディングすることと、レベルの第1の部分は各サブセット中の変換係数の少なくとも有意性を含み、各サブセット中の変換係数のレベルの第2の部分をコーディングすることと、を行うように構成されたビデオコーティングユニットを備える。
[0013]本開示の別の例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのシステムを提案する。本システムは、走査順序に基づいて変換係数のブロックを変換係数の1つまたは複数のサブセットに構成する(arrange)手段と、各サブセット中の変換係数のレベルの第1の部分をコーディングする手段と、レベルの第1の部分が各サブセット中の変換係数の少なくとも有意性を含み、各サブセット中の変換係数のレベルの第2の部分をコーディングする手段とを備える。
[0014]本開示の別の例では、コンピュータプログラム製品は、実行されたとき、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのデバイスのプロセッサに、走査順序に基づいて変換係数のブロックを変換係数の1つまたは複数のサブセットに構成する(arrange)ことと、各サブセット中の変換係数のレベルの第1の部分をコーディングすることと、レベルの第1の部分が各サブセット中の変換係数の少なくとも有意性を含み、各サブセット中の変換係数のレベルの第2の部分をコーディングすることと、を行わせる命令を記憶したコンピュータ可読記憶媒体を備える。
[0015]本開示の別の例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法は、1つまたは複数の第1のパスにおいて走査順序に従って残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングすることと、1つまたは複数の第2のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングすることと、1つまたは複数の第2のパスは1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの第1のセットはコーディングプロセスの第1のモードでコーディングされ、1つまたは複数の第3のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングすることと、1つまたは複数の第3のパスは1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの第2のセットはコーディングプロセスの第2のモードでコーディングされる、を備える。
[0016]本開示の別の例では、残差ビデオデータに関連する変換係数をコーディングするための装置は、1つまたは複数の第1のパスにおいて走査順序に従って残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングすることと、1つまたは複数の第2のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングすることと、1つまたは複数の第2のパスは1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの第1のセットはコーディングプロセスの第1のモードでコーディングされ、1つまたは複数の第3のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングすることと、1つまたは複数の第3のパスは1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの第2のセットはコーディングプロセスの第2のモードでコーディングされる、を行うように構成された1つまたは複数のプロセッサを備える。
[0017]本開示の別の例では、残差ビデオデータに関連する変換係数をコーディングするための装置は、1つまたは複数の第1のパスにおいて走査順序に従って残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングする手段と、1つまたは複数の第2のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングする手段と、1つまたは複数の第2のパスは1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの第1のセットはコーディングプロセスの第1のモードでコーディングされ、1つまたは複数の第3のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングする手段と、1つまたは複数の第3のパスは1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの第2のセットはコーディングプロセスの第2のモードでコーディングされる、を備える。
[0018]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されたときに1つまたは複数のプロセッサに、1つまたは複数の第1のパスにおいて走査順序に従って残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングすることと、1つまたは複数の第2のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングすることと、1つまたは複数の第2のパスは1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの第1のセットはコーディングプロセスの第1のモードでコーディングされ、1つまたは複数の第3のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングすることと、1つまたは複数の第3のパスは1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの第2のセットはコーディングプロセスの第2のモードでコーディングされる、を実行させる命令を記憶する。
[0019]1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
有意性マップコーディングプロセスを示す概念図。 有意性マップコーディングのための走査パターンと方向とを示す概念図。 変換ユニットのレベルコーディングのための走査技法を示す概念図。 例示的なビデオコーディングシステムを示すブロック図。 例示的なビデオエンコーダを示すブロック図。 有意性マップコーディングと係数レベルコーディングとのための逆方向走査順序を示す概念図。 逆方向対角走査順序に従って走査される変換係数の第1のサブセットを示す概念図。 逆方向水平走査順序に従って走査される変換係数の第1のサブセットを示す概念図。 逆方向垂直走査順序に従って走査される変換係数の第1のサブセットを示す概念図。 有意性マップコーディングのためのコンテキスト領域を示す概念図。 逆方向走査順序を使用した有意性マップコーディングのための例示的なコンテキスト領域を示す概念図。 順方向走査順序を使用したエントロピーコーディングのための例示的な因果的ネイバー(causal neighbor)を示す概念図。 逆方向走査順序を使用したエントロピーコーディングのための例示的な因果的ネイバーを示す概念図。 逆方向走査順序を使用したエントロピーコーディングのための例示的なコンテキスト領域を示す概念図。 逆方向走査順序を使用したエントロピーコーディングのための例示的な因果的ネイバーを示す概念図。 逆方向走査順序を使用したCABACのためのコンテキスト領域の別の例を示す概念図。 逆方向走査順序を使用したCABACのためのコンテキスト領域の別の例を示す概念図。 逆方向走査順序を使用したCABACのためのコンテキスト領域の別の例を示す概念図。 例示的なエントロピーコーディングユニットを示すブロック図。 例示的なビデオデコーダを示すブロック図。 例示的なエントロピー復号ユニットを示すブロック図。 調和された走査順序を用いた有意性マップ走査と係数レベル走査とのための例示的なプロセスを示すフローチャート。 有意性マップおよび係数レベル走査とエントロピーコーディングコンテキスト導出とのための例示的なプロセスを示すフローチャート。 有意性マップおよび係数レベル走査とエントロピーコーディングコンテキスト導出とのための別の例示的なプロセスを示すフローチャート。 有意性マップおよび係数レベル走査とエントロピーコーディングコンテキスト導出とのための別の例示的なプロセスを示すフローチャート。 逆走査方向を使用した有意性マップコーディングのための例示的なプロセスを示すフローチャート。 変換係数のサブセットによる有意性マップおよび係数レベル走査のための例示的なプロセスを示すフローチャート。 変換係数のサブセットによる有意性マップおよび係数レベル走査のための別の例示的なプロセスを示すフローチャート。 変換係数のサブセットによる有意性マップおよび係数レベル走査のための別の例示的なプロセスを示すフローチャート。 複数の領域を使用したエントロピーコーディングのための例示的なプロセスを示すフローチャート。 残差ビデオデータに関連する変換係数をコーディングするためのビンの例示的な順序付けを示す概念図。 残差ビデオデータに関連する変換係数をコーディングするためのビンの例示的な順序付けおよびグループ化を示す概念図。 残差ビデオデータに関連する変換係数をコーディングするための例示的なビデオコーディングプロセスを示すフローチャート。
[0053]デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するためのビデオ圧縮技法を実装する。ビデオ圧縮プロセスは、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(フレーム内)予測および/または時間的(フレーム間)予測技法を適用し得る。
[0054]一例として、Joint Cooperative Team for Video Coding(JCT−VC)によって現在開発中の高効率ビデオコーディング(HEVC)規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。以下でHEVC WD7と呼ぶ、HEVCの最新のワーキングドラフト(WD)は、http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v5.zipから入手可能であり、より最近のバージョンは、http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v6.zipから入手可能であり、その両方が、全文が本明細書に記載されているかのように参照により本明細書に組み込まれる。
[0055]HEVCによれば、コーディングユニットは、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。コーディングユニットは、(必ずしもそうであるとは限らないが)一般に方形であり、たとえば、ITU−T H.264などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のHEVC規格の提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、H.264または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
[0056]望ましいコーディング効率を達成するために、コーディングユニット(CU)はビデオコンテンツに応じて可変サイズを有し得る。さらに、コーディングユニットは、予測または変換のためにより小さいブロックに分割され得る。具体的には、各コーディングユニットは、予測ユニット(PU)と変換ユニット(TU)とにさらに区分され得る。予測ユニットは、H.264規格などの他のビデオコーディング規格の下でのいわゆるパーティションと同様であると見なされ得る。変換ユニット(TU)は、概して、変換係数を生成するために変換が適用される残差データのブロックを指す。
[0057]コーディングユニットは、通常、Yとして示されるルミナンス成分と、UおよびVとして示される2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプル数で表されるUおよびV成分のサイズは、Y成分のサイズと同じであるかまたはそれとは異なり得る。
[0058]ブロック(たとえば、ビデオデータの予測ユニット)をコーディングするために、ブロックの予測子が最初に導出される。予測ブロックとも呼ばれる予測子は、イントラ(I)予測(すなわち、空間的予測)またはインター(PまたはB)予測(すなわち時間的予測)のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム(またはスライス)中の隣接参照ブロック中の参照サンプルに関する空間的予測を使用してイントラコーディング(I)され得、他の予測ユニットは、前にコーディングされた他のフレーム(またはスライス)中の参照サンプルのブロックに関して単方向にインターコーディング(P)されるかまたは双方向にインターコーディング(B)され得る。各場合において、参照サンプルは、コーディングされるべきブロックの予測ブロックを形成するために使用され得る。
[0059]予測ブロックの識別時に、元のビデオデータブロックとそれの予測ブロックとの間の差分が判断される。この差分は予測残差データと呼ばれることがあり、コーディングされるべきブロック中のピクセル値と、コード化ブロックを表すように選択された予測ブロック中のピクセル値との間のピクセル差分を示す。より良好な圧縮を達成するために、予測残差データは、たとえば、離散コサイン変換(DCT)、整数変換、カルーネンレーベ(Karhunen-Loeve)(K−L)変換、または別の変換を使用して変換され得る。
[0060]TUなどの変換ブロック中の残差データは、空間的ピクセル領域に存在するピクセル差分値の2次元(2D)アレイで構成され得る。変換は、周波数領域などの変換領域において残差ピクセル値を変換係数の2次元アレイに変換する。さらなる圧縮のために、変換係数は、エントロピーコーディングに先立って量子化され得る。次いで、エントロピーコーダは、量子化された変換係数にコンテキスト適応型可変長コーディング(CAVLC:Context Adaptive Variable Length Coding)、コンテキスト適応型バイナリ算術コーディング(CABAC)、確率間隔区分エントロピーコーディング(PIPE:Probability Interval Partitioning Entropy Coding)などのエントロピーコーディングを適用する。
[0061]量子化された変換係数のブロックをエントロピーコーディングするために、ブロック中の量子化された変換係数の2次元(2D)アレイが、特定の走査順序に従って変換係数の順序付き1次元(1D)アレイ、すなわちベクトルにおいて処理されるように、走査プロセスが通常実行される。エントロピーコーディングは変換係数の1D順序で適用される。変換ユニット中の量子化された変換係数の走査は、エントロピーコーダのために変換係数の2Dアレイをシリアル化する。有意(すなわち、非0)係数の位置を示すための有意性マップが生成され得る。走査は、有意(すなわち、非0)係数のレベルを走査するために、および/または有意係数の符号をコーディングするために適用され得る。
[0062]一例として、DCTでは、しばしば、2D変換ユニットの左上隅(すなわち、低周波数領域)のほうが非0係数の確率がより高くなる。係数のシリアル化ランの一方の端部において非0係数を一緒にグループ化する確率を増加させる方法で係数を走査して、0値係数がシリアル化ベクトルの別の端部のほうへ一緒にグループ化され、ゼロのランとしてより効率的にコーディングされることを可能にすることが望ましいことがある。この理由で、走査順序は効率的なエントロピーコーディングのために重要であり得る。
[0063]一例として、HEVC規格において量子化変換係数を走査する際に使用するために、いわゆる対角(または波面)走査順序が採用されている。代替的に、ジグザグ、水平、垂直、または他の走査順序が使用され得る。変換および量子化を介して、上述のように、変換がDCTである例では、非0変換係数は、概して、ブロックの左上領域のほうの低周波数エリアに位置する。その結果、最初に左上領域を横断し得る対角走査プロセスの後に、非0変換係数は、通常、走査の前部分に位置する可能性が高くなる。最初に右下領域を横断する対角走査プロセスの場合、非0変換係数は、通常、走査の後ろ部分に位置する可能性が高くなる。
[0064]走査方向に応じて、より高い周波数において低減されたエネルギーにより、また量子化の効果により、いくつかの0値係数は、一般に、走査の一方の端部においてグループ化されることになり、量子化は、ビット深度の低減により、いくつかの非0係数が0値係数になり得る。シリアル化1Dアレイ内の係数分布のこれらの特性は、コーディング効率を改善するためにエントロピーコーダ設計において利用され得る。言い換えれば、何らかの適切な走査順序を介して1Dアレイの一部分に非0係数が効果的に構成され得る場合、より良好なコーディング効率が、多くのエントロピーコーダの設計により期待され得る。
[0065]1Dアレイの一方の端部により多くの非0係数を配置するこの目的を達成するために、ビデオエンコーダデコーダ(コーデック)において、変換係数をコーディングするための異なる走査順序が使用され得る。ある場合には、対角走査が効果的であり得る。他の場合には、ジグザグ、垂直または水平走査など、異なるタイプの走査がより効果的であり得る。
[0066]異なる走査順序は様々な方法で生成され得る。1つの例は、変換係数の各ブロックについて、いくつかの利用可能な走査順序から「最良」の走査順序が選定され得ることである。次いで、ビデオエンコーダが、各ブロックについて、それぞれのインデックスによって示される走査順序のセットのうちの最良の走査順序のインデックスの指示をデコーダに与え得る。最良の走査順序の選択は、いくつかの走査順序を適用することと、1Dベクトルの始端または終端の近くに非0係数を配置する際に最も効果的である走査順序を選択することとによって決定され、それにより効率的なエントロピーコーディングが促進され得る。
[0067]別の例では、現在ブロックの走査順序は、予測モード(I、B、P)、ブロックサイズ、変換または他のファクタなど、関連する予測ユニットのコーディングに関係する様々なファクタに基づいて決定され得る。場合によっては、エンコーダ側とデコーダ側の両方において同じ情報、たとえば、予測モードが推論され得るので、デコーダに走査順序インデックスの指示を与える必要はないことがある。代わりに、ビデオデコーダは、ブロックの予測モードの知識と、予測モードを特定の走査順序にマッピングする1つまたは複数の基準とが与えられれば、適切な走査順序を示す構成データを記憶し得る。
[0068]コーディング効率をさらに改善するために、利用可能な走査順序は常に一定であるとは限らない。代わりに、たとえば、すでにコーディングされた係数に基づいて走査順序が適応的に調整されるように、何らかの適応が可能にされ得る。概して、走査順序適応は、選択された走査順序に従って、0および非0係数が一緒にグループ化される可能性が高いような方法で行われ得る。
[0069]いくつかのビデオコーデックでは、最初の利用可能な走査順序は、純水平、純垂直、純対角、または純ジグザグ走査など、極めて規則的な形態であり得る。代替的に、走査順序は、トレーニングプロセスを通して導出され得、したがって、いくぶんランダムであるように見え得る。トレーニングプロセスは、たとえば、上述のように、非0係数と0値係数との効率的な配置に関して望ましい結果を生成する走査順序を識別するための、ブロックまたは一連のブロックへの異なる走査順序の適用を伴い得る。
[0070]走査順序がトレーニングプロセスから導出される場合、または多種多様な走査順序が選択され得る場合、エンコーダ側とデコーダ側の両方において特定の走査順序を保存することが有益であり得る。そのような走査順序を指定するデータはかなりの量であり得る。たとえば、32×32変換ブロックでは、1つの走査順序は1024個の変換係数位置を含んでいることがある。別様にサイズ決定されたブロックがあり得、変換ブロックの各サイズについて、いくつかの異なる走査順序があり得るので、保存される必要があるデータの総量は無視できない。対角、水平、垂直またはジグザグ順序などの規則的走査順序は、ストレージを必要としないかまたは最小のストレージを必要とし得る。しかしながら、対角、水平、垂直またはジグザグ順序は、トレーニングされた走査順序と同等であるコーディング性能を与えるのに十分な多様性を与えないことがある。
[0071]1つの例では、H.264と現在開発中のHEVC規格のために、CABACエントロピーコーダが使用されるとき、変換ブロック(すなわち、HEVCにおける変換ユニット)中の有意係数(すなわち、非0変換係数)の位置は、係数のレベルより前に符号化される。有意係数のロケーションをコーディングするプロセスは、有意性マップコーディングと呼ばれる。係数の有意性は、係数レベルのビン0と同じである。図1に示すように、量子化変換係数11の有意性マップコーディングが有意性マップ13を生成する。有意性マップ13は1および0のマップであり、1は有意係数のロケーションを示す。有意性マップは、一般に、高い割合のビデオビットレートを必要とする。また、本開示の技法は、他のエントロピーコーダ(たとえば、PIPE)とともに使用するために適用可能であり得る。
[0072]有意性マップをコーディングするための例示的なプロセスは、D.Marpe、H.Schwarz、およびT.Wiegand「Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard」、IEEE Trans. Circuits and Systems for Video Technology、vol.13、no.7、2003年7月、に記載されている。このプロセスでは、有意性マップは、コード化ブロックフラグ(CBF:Coded Block Flag)によって示されるように、ブロック中に少なくとも1つの有意係数がある場合にコーディングされ、コード化ブロックフラグは次のように定義される。
コード化ブロックフラグ:coded_block_flagは1ビットシンボルであり、これは、変換係数の単一のブロック内に、コード化ブロックパターンが非0エントリを示す有意、すなわち、非0係数があるかどうかを示す。coded_block_flagが0である場合、関係するブロックについてさらなる情報は送信されない。
[0073]ブロック中に有意係数がある場合、有意性マップは、以下のようにブロック中の変換係数の走査順序に従うことによって符号化される。
変換係数の走査:coded_block_flagが非0エントリを示すサブブロックの変換係数レベルの2次元アレイが、最初に、所与の走査パターンを使用して1次元リストにマッピングされる。言い換えれば、有意係数をもつサブブロックが走査パターンに従って走査される。
[0074]上記走査パターンを仮定すれば、有意性マップは以下のように走査される。
有意性マップ:coded_block_flagが、ブロックが有意係数を有することを示す場合、バイナリ値有意性マップが符号化される。走査順序における各変換係数について、1ビットシンボルsignificant_coeff_flagが送信される。significant_coeff_flagシンボルが1である場合、すなわち、非0係数がこの走査位置に存在する場合、さらなる1ビットシンボルlast_significant_coeff_flagが送られる。このシンボルは、現在の有意係数がブロック内の最後の有意係数であるかどうか、またはさらなる有意係数が続くかどうかを示す。最後の走査位置に達し、有意性マップ符号化が、値1のlast_significant_coeff_flagによってまだ終了されていなかった場合、最後の係数が有意でなければならないことは明らかである。
[0075]HEVCについての最近の提案はlast_significant_coeff flagを除去した。それらの提案では、有意性マップを送る前に、最後有意係数の位置のXおよびY位置の指示が送られる。
[0076]HEVCのための1つの提案では、有意性マップのために3つの走査パターン、すなわち、対角、垂直、および水平が使用されることが提案されている。図2に、ジグザグ走査17と、垂直走査19と、水平走査21と、対角走査15との一例を示す。図2に示すように、これらの走査の各々は順方向に、すなわち、変換ブロックの左上隅におけるより低い周波数の変換係数から変換ブロックの右下隅におけるより高い周波数の変換係数に進む。有意性マップがコーディングされた後、各有意変換係数(すなわち、係数値)のための残りのレベル情報(ビン1〜N、ここでNはビンの総数である)がコーディングされる。
[0077]H.264規格において前に規定されたCABACプロセスでは、4×4サブブロックの処理の後に、変換係数レベルの各々が、たとえば、単項コードに従って、2値化されて、一連のビンが生成される。H.264では、各サブブロックのためのCABACコンテキストモデルセットは2×5個のコンテキストモデルからなり、変換係数の絶対値を符号化するcoeff_abs_level_minus_oneシンタックス要素の第1のビンと(第14のビンまでを含む)すべての残りのビンの両方のための5つのモデルがある。特に、HEVCの1つの提案されるバージョンでは、残りのビンはビン1とビン2とのみを含む。係数レベルの残りは、ゴロムライスコーディングと指数ゴロムコードとでバイパスコーディングされる。バイパスコーディングは、バイパスコーディングされたビンのためにCABACコーディングエンジンをバイパスする。
[0078]HEVCでは、コンテキストモデルの選択は、H.264規格について提案された元のCABACプロセスの場合のように実行され得る。ただし、異なるサブブロックのためにコンテキストモデルの異なるセットが選択され得る。特に、所与のサブブロックのためのコンテキストモデルセットの選定は、前にコーディングされたサブブロックのいくつかの統計値に依存する。
[0079]図3に、変換ユニット25中の変換係数のレベル(レベルの絶対値およびレベルの符号)を符号化するためのHEVCプロセスの1つの提案されるバージョンが従う走査順序を示す。より大きいブロックの4×4サブブロックの走査のための順方向ジグザグパターン27、および各サブブロック内の変換係数のレベルを走査するための逆方向ジグザグパターン23があることに留意されたい。言い換えれば、一連の4×4サブブロックは、それらのサブブロックがシーケンスにおいて走査されるように、順方向ジグザグパターンで走査される。次いで、各サブブロック内で、サブブロック内の変換係数のレベルを走査するために逆方向ジグザグ走査が実行される。したがって、変換ユニットによって形成される2次元アレイ中の変換係数は、所与のサブブロック中で逆走査された係数の後に、次いで、次に続くサブブロック中で逆走査された係数が続くように、1次元アレイにシリアル化される。
[0080]一例では、図3に示すサブブロック走査手法に従って走査される係数のCABACコーディングは、60個のコンテキスト、すなわち、以下で説明するように分布された、それぞれ10個のコンテキストの6つのセットを使用し得る。4×4ブロックの場合、表1に示すように、10個のコンテキストモデルが使用され得る(ビン1のための5つのモデルと、ビン2〜14のための5つのモデル)。
Figure 0005951772
[0081]表1に従って、コンテキストセット中のコンテキストモデル0〜4のうちの1つは、それぞれ、サブブロック中で走査されている現在符号化されている係数が、サブブロック内で1よりも大きい係数が符号化された後に符号化される場合、現在符号化されている係数がサブブロック中で走査される最初の係数であるか、またはサブブロック中にトレイリング1(trailing ones)がない(前に符号化された係数がない)場合、サブブロック中に1つのトレイリング1がある(すなわち、1は符号化されたが、1よりも大きい係数は符号化されていない)場合、サブブロック中に2つのトレイリング1がある場合、あるいはサブブロック中に3つ以上のトレイリング1がある場合、ビン1のために使用される。ビン2〜14の各々について(ただし、HEVCのための少なくとも1つの提案は、CABACを使用してビン2のみをコーディングし、係数レベルの次に続くビンは指数ゴロムコードでコーディングされる)、コンテキストモデル0〜4のうちの1つは、それぞれ、係数がサブブロック中で走査される最初の係数であるか、または1よりも大きい前にコーディングされた係数が0個である場合、1よりも大きい1つの前にコーディングされた係数がある場合、1よりも大きい2つの前にコーディングされた係数がある場合、1よりも大きい3つの前にコーディングされた係数がある場合、あるいは1よりも大きい4つの前にコーディングされた係数がある場合、使用され得る。
[0082]サブブロックの順方向走査における前のコード化4×4サブブロック中の1よりも大きい係数の数に応じて、これらの10個のモデルの6つの異なるセットがある。
Figure 0005951772
[0083]表2に従って、コンテキストモデルのセット0〜5が、それぞれ、サブブロックサイズが4×4である場合、前にコーディングされたサブブロック中に1よりも大きい0〜3つの係数がある場合、前にコーディングされたサブブロック中に1よりも大きい4〜7つの係数がある場合、前にコーディングされたサブブロック中に1よりも大きい8〜11個の係数がある場合、前にコーディングされたサブブロック中に1よりも大きい12〜15個の係数がある場合、あるいは所与のサブブロックが第1の4×4サブブロック(左上のサブブロック)であるか、または前にコーディングされたサブブロック中に1よりも大きい16個の係数がある場合、所与のサブブロックのために使用される。
[0084]H.264について上記で説明したコーディングプロセスと、HEVCについて一部の人々によって提案されているプロセスは、いくつかの欠点を有する。図3に示すように、1つの欠点は、係数レベルのための走査が、サブブロックの走査の場合は順方向に進むが(すなわち、左上のサブブロックから開始する)、次いで、各サブブロック内の係数レベルの走査の場合は逆方向に進む(すなわち、各サブブロック中の右下の係数から開始する)ことである。この手法は、ブロック内で往復して進むことを暗示し、これは、データフェッチをより複雑にし得る。
[0085]別の欠点は、係数レベルの走査順序が有意性マップの走査順序とは異なることから生じる。HEVCでは、有意性マップのための3つの異なる提案される走査順序、すなわち、図2に示した順方向対角、順方向水平および順方向垂直がある。レベル走査が逆方向に進むので、有意係数走査のすべてが、HEVCの提案における係数レベルの走査とは異なる。係数レベル走査の方向およびパターンが有意性走査の方向およびパターンと一致していないので、より多くの係数レベルが検査されなければならない。たとえば、有意性マップのために水平走査が使用され、係数の第1の行の終端において最後有意係数が見つかると仮定する。HEVCにおける係数レベル走査は、第1の行のみが0とは異なる係数レベルを実際に含んでいるとき、レベル走査のために複数の行にわたる対角走査を必要とするであろう。そのような走査プロセスは不要な非効率をもたらし得る。
[0086]HEVCについての提案では、有意性マップの走査は、ブロックの左上隅において見られるDC係数からブロックの右下隅において一般に見られる最高周波数係数へ、ブロック中で順方向に進み、係数レベルのための走査は、各4×4サブブロック内で逆方向である。このことも、より複雑でより非効率的なデータフェッチを生じ得る。
[0087]いくつかのHEVC提案に対する別の欠点はコンテキストセットから生じる。CABACのためのコンテキストセット(上記の表2参照)は、ブロックサイズ4×4の場合、他のブロックサイズの場合とは異なる。本開示によれば、異なるコンテキストセットを記憶するためのメモリが少なくなるように、すべてのブロックサイズにわたってコンテキストを調和させることが望ましいであろう。
[0088]また、以下でより詳細に説明するように、HEVCのための有意性マップのためのいくつかの提案されているCABACコンテキストは、走査順序が順方向である場合のみ有効である。したがって、これは逆方向有意性マップ走査を可能にしないであろう。
[0089]さらに、量子化係数のレベルを符号化するための上記で説明したコンテキストは、係数レベルの局所相関を活用することを試みる。これらのコンテキストは、4×4サブブロックの間の相関(表2中のコンテキストセット参照)と各サブブロック内の相関(表1中のコンテキストモデル参照)とに依存する。これらのコンテキストの欠点は依存性があまりないことがある(すなわち、サブブロックごとに、いくつかの他の係数によって互いに分離された係数間に低い依存性がある)ことである。また、各サブブロック内で、依存性が弱いことがある。
[0090]本開示では、上記で説明した欠点の一部を減らすかまたはなくし得るいくつかの異なる特徴を提案する。いくつかの例では、これらの特徴は、ビデオコーディングにおいて変換係数のより効率的で調和された走査順序を与え得る。本開示の他の例では、これらの特徴は、提案される走査順序に一致する変換係数のCABACベースのエントロピーコーディングにおいて使用されるべきコンテキストのより効率的なセットを与える。本開示で説明する技法のすべては、独立して使用され得るかまたは任意の組合せで一緒に使用され得ることに留意されたい。
[0091]図4は、本開示の例による、変換係数をコーディングするための技法を利用するように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。図4に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。符号化ビデオはまた、記憶媒体34またはファイルサーバ36に記憶され得、必要に応じて宛先デバイス14によってアクセスされ得る。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。
[0092]本開示の例による、変換係数をコーディングするための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0093]図4の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
[0094]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
[0095]ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。
[0096]ファイルサーバ36は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、または両方の組合せを含み得る。
[0097]図4の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
[0098]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0099]図4の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0100]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはMPEG−2およびITU−T H.263がある。
[0101]図4には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0102]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0103]ビデオエンコーダ20は、ビデオコーティングプロセスにおける変換係数の符号化を改善するために本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ30は、ビデオコーティングプロセスにおける変換係数の復号を改善するためにこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
[0104]本開示の一例では、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダが、ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングするように構成され得る。ビデオコーダは、走査順序に従って複数の変換係数のための有意係数を示す情報をコーディングすることと、上記走査順序に従って複数の変換係数のレベルを示す情報をコーディングすることとを行うように構成され得る。
[0105]本開示の別の例では、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダが、ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングするように構成され得る。ビデオコーダは、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数のブロック中の有意変換係数を示す情報をコーディングするように構成され得る。
[0106]本開示の別の例では、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダが、ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングするように構成され得る。ビデオコーダは、走査順序に基づいて変換係数のブロックを変換係数の1つまたは複数のサブセットに構成する(arrange)ことと、各サブセット中の変換係数のレベルの第1の部分をコーディングすることと、レベルの第1の部分は各サブセット中の変換係数の少なくとも1つの有意性(significance)を含み、各サブセット中の変換係数のレベルの第2の部分をコーディングすることと、を行うように構成され得る。
[0107]本開示の別の例では、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダが、走査順序に従って複数の変換係数のための有意係数を示す情報をコーディングすることと、コーディングされた情報を少なくとも第1の領域と第2の領域とに分割することと、コンテキスト導出基準を使用してコンテキストの第1のセットに従って第1の領域中のコーディングされた情報をエントロピーコーディングすることと、第1の領域と同じコンテキスト導出基準を使用してコンテキストの第2のセットに従って第2の領域中のコーディングされた情報をエントロピーコーディングすることとを行うように構成され得る。
[0108]図5は、本開示で説明する、変換係数をコーディングするための技法を使用し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20について、例示のためにHEVCコーディングのコンテキストにおいて説明するが、変換係数の走査を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
[0109]図5に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図5の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測モジュール46と、参照フレームバッファ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。図5に示す変換モジュール52は、残差データのブロックに実際の変換を適用するモジュールであり、CUの変換ユニット(TU)と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図5に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。
[0110]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット(LCU)に分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
[0111]モード選択ユニット40は、たとえば、各モードについての誤差(すなわち、ひずみ)結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器62に与える。いくつかのビデオフレームはIフレームに指定され得、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測モジュール46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行し得る。
[0112]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ユニットの値をフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。
[0113]動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。いくつかの例では、ビデオエンコーダ20は、参照フレームバッファ64に記憶された参照フレームのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照フレームの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUの動きベクトルによって識別される参照サンプルを取り出すことによって、現在CUの予測ユニットについての予測値を計算し得る。
[0114]イントラ予測モジュール46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信ブロックをイントラ予測符号化し得る。イントラ予測モジュール46は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを符号化し得る。イントラ予測モジュール46は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測モジュール46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、たとえば、33個の方向性予測モードで構成され得る。
[0115]イントラ予測モジュール46は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をPU中の1つまたは複数のピクセル位置に適用するための機能を含み得る。PU中のすべてのピクセル位置の値が計算されると、イントラ予測モジュール46は、PUと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測モジュール46は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測モジュール46は、次いで、PUを加算器50に送り得る。
[0116]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測モジュール46によって計算された予測データを減算することによって残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の2次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するPU中のピクセルの数と同じである。残差ブロック中の値は、PU中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
[0117]変換モジュール52は、残差ブロックから1つまたは複数の変換ユニット(TU)を形成し得る。変換モジュール52は、離散コサイン変換(DCT)、方向性変換、または概念的に同様の変換などの変換をTUに適用して、変換係数を備えるビデオブロックを生成する。変換スキップモードなど、いくつかのビデオコーディングモードでは、変換処理モジュール52は、変換を実行することなしに、残差ブロックを量子化ユニット54に直接送り得る。そのような場合、残差値には変換が実際に適用されないにもかかわらず、本明細書では残差値を依然として「変換係数」と呼ぶことがある。
[0118]変換モジュール52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。次いで、エントロピー符号化ユニット56が、指定された走査順序に従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット56が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット54などの他の処理ユニットが走査を実行し得ることを理解されたい。
[0119]上述のように、変換係数の走査は2つの走査を伴い得る。1つの走査は、有意性マップを形成するために係数のうちのどれが有意(すなわち、非0)であるかを識別し、別の走査は、変換係数のレベルをコーディングする。一例では、本開示では、ブロック中の係数レベルをコーディングするために使用される走査順序が、ブロックのための有意性マップ中の有意係数をコーディングするために使用される走査順序と同じであることを提案する。HEVCでは、ブロックは変換ユニットであり得る。本明細書で使用する走査順序という用語は、走査の方向および/または走査のパターンのいずれかを指し得る。したがって、有意性マップと係数レベルとのための走査は、走査パターンおよび/または走査方向が同じであり得る。すなわち、一例として、有意性マップを形成するために使用される走査順序が順方向での水平走査パターンである場合、係数レベルのための走査順序も順方向での水平走査パターンであるべきである。同様に、別の例として、有意性マップのための走査順序が逆方向での垂直走査パターンである場合、係数レベルのための走査順序も逆方向での垂直走査パターンであるべきである。同じことが、対角、ジグザグまたは他の走査パターンに当てはまり得る。
[0120]図6に、変換係数のブロック、すなわち、変換ブロックのための逆方向走査順序の例を示す。変換ブロックは、たとえば、離散コサイン変換(DCT)など、変換を使用して形成され得る。逆方向対角パターン9、逆方向ジグザグパターン29、逆方向垂直パターン31、および逆方向水平パターン33の各々は、変換ブロックの右下隅におけるより高い周波数の係数から変換ブロックの左上隅におけるより低い周波数の係数に進むことに留意されたい。したがって、本開示の一態様は、有意性マップのコーディングと係数レベルのコーディングとのための統合された走査順序を提示する。走査は、有意性マップのコーディングと係数レベルのコーディングとのための走査が、同じ方向に、たとえば、より高い周波数の係数からより低い周波数の係数に逆方向に進みおよび/または同じ走査パターンで進むという意味において、統合され得る。提案される技法は、有意性マップのために使用される走査順序を係数レベルコーディングのために使用される走査順序に適用する。概して、水平、垂直および対角走査パターンは、うまく動作し、したがって追加の走査パターンの必要を低減することが示されている。ただし、本開示の一般的な技法は、任意の走査パターンとともに使用するために適用可能である。
[0121]別の態様によれば、本開示では、有意性走査が、変換ユニット中の最後有意係数から変換ユニット中の最初の係数(すなわち、DC係数)への、逆方向走査として実行されることを提案する。逆方向走査順序の例は図6に示されている。特に、有意性走査は、より高い周波数の位置における最後有意係数からより低い周波数の位置における有意係数に進み、最終的にDC係数位置に進む。
[0122]逆方向走査を可能にするために、最後有意係数を識別するための技法が使用され得る。最後有意係数を識別するためのプロセスは、J.Sole、R.Joshi、I.−S.Chong、M.Coban、M.Karczewicz、「Parallel Context Processing for the significance map in high coding efficiency」、JCTVC−D262、4th JCT−VC Meeting、Daegu、KR、2011年1月、に記載されており、また、「Encoding of the position of the last significant transform coefficient in video coding」と題する、Joel Sole Rojalsらの、2010年12月3日に出願された米国仮特許出願第61/419,740号に記載されている。ブロック中の最後有意係数が識別されると、逆方向走査順序が有意性マップと係数レベルとの両方に適用され得る。
[0123]本開示では、有意性走査および係数レベル走査が、それぞれ逆方向および順方向でなく、代わりに同じ走査方向、より詳細には、ブロック中でただ1つの方向を有することをも提案する。詳細には、有意性走査および係数レベル走査が両方とも、たとえば、変換ユニット中の最後有意係数から最初の係数への、逆方向走査順序を使用することを提案する。したがって、一例では、有意性走査は、最後有意係数から最初の係数(DC係数)へ逆方向に実行される(HEVCのためのいくつかの提案されている走査に対する逆方向走査)。本開示のこの態様は、有意性マップのコーディングと係数レベルのコーディングとのための統合された単方向走査順序を提示する。特に、統合された単方向走査順序は、統合された逆方向走査順序であり得る。統合された逆方向走査パターンによる有意性走査と係数レベル走査とのための走査順序は、図6に示すように逆方向対角、逆方向ジグザグ、逆方向水平または逆方向垂直であり得る。ただし、任意の走査パターンが使用され得る。
[0124]CABACコンテキスト導出の目的のために図3に示したように2次元サブブロックにおいて係数のセットを定義する代わりに、本開示では、走査順序に従って連続的に走査されるいくつかの係数として係数のセットを定義することを提案する。特に、係数の各セットは、ブロック全体にわたる走査順序での連続係数を備え得る。セットの任意のサイズが考えられ得るが、走査セット中の16個の係数のサイズが、うまく動作することがわかっている。セットサイズは固定または適応型であり得る。この定義により、セットは、(サブブロック走査方法が使用される場合は)2Dブロック、(水平または垂直走査が使用される場合は)矩形、または(ジグザグまたは対角走査が使用される場合は)対角形であることが可能になる。係数の対角形セットは、対角形状の一部、連続する対角形状、または連続する対角形状の一部であり得る。
[0125]図7〜図9に、固定4×4ブロックにおいて構成される以外に、特定の走査順序に従って16個の係数のサブセットに構成された係数の例を示す。図7は、逆方向対角走査順序における最初の16個の係数からなる16個の係数のサブセット51を示している。次のサブセットは、この例では、単に、逆方向対角走査順序に沿った次の16個の連続係数からなるであろう。同様に、図8は、逆方向水平走査順序における最初の16個の係数のための16個の係数のサブセット53を示している。図9は、逆方向垂直走査順序における最初の16個の係数のための16個の係数のサブセット55を示している。
[0126]この技法は、有意性マップのための走査順序と同じである係数レベルのための走査順序に適合する。この場合、図3に示した走査順序など、係数レベルのための異なる(および時々煩雑な)走査順序の必要がない。係数レベル走査は、変換ユニット中の最後有意係数の位置からDC係数位置に進む順方向走査として形成され得る。
[0127]HEVCのためのいくつかの提案されるプロセスでは、CABACを使用したエントロピーコーディングの場合、変換係数は以下のようにして符号化される。最初に、有意性マップを符号化するための、完全変換ユニット上の(有意性マップ走査順序における)1つのパスがある。次いで、レベルのビン1(第1のパス)と、係数レベルの残り(第2のパス)と、係数レベルの符号(第3のパス)とを符号化するための(係数レベル走査順序における)3つのパスがある。係数レベルコーディングのためのこれらの3つのパスは完全変換ユニットに対して行われない。代わりに、各パスは、図3に示したように、4×4サブブロックにおいて行われる。3つのパスが1つのサブブロックにおいて完了したとき、次のサブブロックは、同じ3つの符号化パスを連続的に実行することによって処理される。この手法は符号化の並列化を可能にする。
[0128]上記で説明したように、本開示では、係数レベルのための走査順序が、有意性マップを形成するための有意係数の走査順序と同じであるように、より調和された方法で変換係数を走査することを提案する。さらに、係数レベルと有意係数とのための走査が、ブロック中の最後有意係数からブロック中の最初の係数(DC成分)に進む逆方向に実行されることを提案する。この逆方向走査は、HEVCのためのいくつかの提案に従って有意係数のために使用される走査の逆である。
[0129]図7〜図9を参照しながら前に説明したように、本開示では、一例では、(有意性マップを含む)係数レベルのためのコンテキストがサブセットに分割されることをさらに提案する。すなわち、係数の各サブセットについてコンテキストが決定される。したがって、この例では、必ずしも同じコンテキストが係数の走査全体のために使用されるとは限らない。代わりに、変換ブロック内の係数の異なるサブセットが、各サブセットについて個別に決定された異なるコンテキストを有し得る。各サブセットは、走査順序で連続的に走査された係数の1次元アレイを備え得る。したがって、係数レベル走査は最後有意係数から最初の係数(DC成分)に進み、その場合、その走査は、走査順序に従って連続的に走査された係数の異なるサブセットにおいて概念的に区分される。たとえば、各サブセットは、特定の走査順序について、n個の連続的に走査された係数を含み得る。サブセット中の係数をそれらの走査順序に従ってグループ化することは、係数間のより良い相関を実現し、したがってより効率的なエントロピーコーディングを実現し得る。
[0130]本開示では、有意性マップのための追加のパスを含むために係数レベルのいくつかのパスの概念を拡張することによって変換係数のCABACベースのエントロピーコーディングの並列化を高めることをさらに提案する。したがって、4つのパスを用いた一例は、すべて同じ走査順序での、(1)たとえば、有意性マップを形成するための、変換係数のための有意係数フラグ値のコーディングと、(2)変換係数のためのレベル値のビン1のコーディングと、(3)係数レベル値の残りのビンのコーディングと、(4)係数レベルの符号のコーディングとを含み得る。本開示で説明する技法を使用して、上記で概説した4パスコーディングが可能になり得る。すなわち、高周波数係数から低周波数係数へ逆方向に進む、同じ走査順序で、有意係数と変換係数のためのレベルとを走査することは、上記で説明した複数パスコーディング技法の性能をサポートする。
[0131]別の例では、5パス走査技法が、(1)たとえば、有意性マップを形成するための、変換係数のための有意係数フラグ値のコーディングと、(2)変換係数のためのレベル値のビン1のコーディングと、(3)変換係数のためのレベル値のビン2のコーディングと、(4)(たとえば、バイパスモードで)係数レベルの符号をコーディングすることと、(5)(たとえば、バイパスモードでの)係数レベル値の残りのビンのコーディングとを含み得、すべてのパスは同じ走査順序を使用する。
[0132]より少数のパスを用いた一例も採用され得る。たとえば、レベル情報と符号情報とが並列に処理される2パス走査は、(1)パスにおいて正規パスビン(たとえば、有意性、ビン1レベル、およびビン2レベル)をコーディングすることと、(2)別のパスにおいてバイパスビン(たとえば、残りのレベルおよび符号)をコーディングすることとを含み得、各パスは同じ走査順序を使用する。正規ビンは、コンテキスト導出基準によって決定された更新されたコンテキストを使用してCABACで符号化されるビンである。たとえば、以下でより詳細に説明するように、コンテキスト導出基準は、現在の変換係数に対する因果的ネイバー係数のコーディングされたレベル情報を含み得る。バイパスビンは、固定コンテキストを有する、CABACで符号化されるビンであり得る。いくつかの例では、バイパスビンは、ゴロムライスコーディングと指数ゴロムコードとを使用してコーディングされ得る。
[0133]上記で説明したいくつかの走査パスの例は、係数レベルの第1の部分の第1の走査パスであって、第1の部分が有意性パスを含む、第1の走査パスと、係数レベルの第2の部分の第2の走査パスとを含むものとして一般化され得る。
[0134]上記で与えた例の各々では、パスは各サブセットにおいて連続的に実行され得る。連続的に走査された係数を備える1次元サブセットの使用が望ましいことがあるが、複数パス方法は、4×4サブブロックなど、サブブロックにも適用され得る。連続的に走査されたサブセットのための例示的な2パスおよび4パスプロセスを以下でより詳細に概説する。
[0135]簡略化された2パスプロセスでは、変換ユニットの各サブセットについて、第1のパスは、走査順序に従ってサブセット中の係数の有意性をコーディングし、第2のパスは、同じ走査順序に従ってサブセット中の係数の係数レベルをコーディングする。走査順序は、走査方向(順方向または逆方向)と走査パターン(たとえば、水平、垂直、または対角)とによって特徴づけられ得る。そのアルゴリズムは、上記で説明したように、各サブセット中の両方のパスが同じ走査順序に従う場合、並列処理により適していることがある。
[0136]より改良された4パスプロセスでは、変換ユニットの各サブセットについて、第1のパスは、サブセット中の係数の有意性をコーディングし、第2のパスは、サブセット中の係数の係数レベルのビン1をコーディングし、第3のパスは、サブセット中の係数の係数レベルの残りのビンをコーディングし、第4のパスは、サブセット中の係数の係数レベルの符号をコーディングする。この場合も、並列処理により適しているように、各サブセット中のすべてのパスが同じ走査順序を有するべきである。上記で説明したように、逆方向を用いた走査順序が、うまく動作することが示されている。第4のパス(すなわち、係数レベルの符号のコーディング)は、第1のパス(すなわち、有意性マップのコーディング)の直後に、または係数レベルの残りの値のパスの直前に行われ得ることに留意されたい。
[0137]いくつかの変換サイズでは、サブセットは変換ユニット全体であり得る。この場合、変換ユニット全体のための有意係数のすべてに対応する単一のサブセットがあり、有意性走査とレベル走査とは同じ走査順序で進む。この場合、サブセット中の限られた数のn(たとえば、n=16)個の係数の代わりに、サブセットは変換ユニットのための単一のサブセットであり得、単一のサブセットはすべての有意係数を含む。
[0138]図5に戻ると、変換係数が走査された後、エントロピー符号化ユニット56は、それらの係数にCAVLCまたはCABACなどのエントロピーコーディングを適用し得る。さらに、エントロピー符号化ユニット56は、動きベクトル(MV:motion vector)情報と、ビデオデコーダ30においてビデオデータを復号する際に有用な様々なシンタックス要素のいずれかとを符号化し得る。シンタックス要素は、特定の係数が有意(たとえば、非0)であるかどうかを示す有意係数フラグをもつ有意性マップ、および特定の係数が最後有意係数であるかどうかを示す最後有意係数フラグを含み得る。ビデオデコーダ30は、これらのシンタックス要素を使用して符号化ビデオデータを再構成し得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ30などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
[0139]シンタックス要素をエントロピー符号化するために、エントロピー符号化ユニット56は、CABACを実行し、たとえば、前に走査されたN個の係数の中の有意係数の数に基づいてコンテキストモデルを選択し得、ただし、Nは、走査されているブロックのサイズに関係し得る整数値である。エントロピー符号化ユニット56はまた、変換係数のブロックに変換された残差データを計算するために使用される予測モードと、その残差データを変換係数のブロックに変換するために使用される変換のタイプとに基づいてコンテキストモデルを選択し得る。対応する予測データがイントラ予測モードを使用して予測されたとき、エントロピー符号化ユニット56はさらに、イントラ予測モードの方向に基づいてコンテキストモデルの選択を行い得る。
[0140]さらに、本開示の別の態様によれば、CABACのためのコンテキストが係数のサブセット(たとえば、図7〜図9に示したサブセット)に分割されることを提案する。各サブセットがブロック全体にわたる走査順序での連続係数から構成されることを提案する。サブセットの任意のサイズが考えられ得るが、走査サブセット中の16個の係数のサイズが、うまく動作することがわかっている。この例では、サブセットは、サブブロック、対角、ジグザグ、水平、および垂直走査パターンを含む、任意の走査パターンであり得る、走査順序での16個の連続係数であり得る。この提案によれば、係数レベル走査はブロック中の最後有意係数から進む。したがって、係数レベル走査は最後有意係数からブロック中の最初の係数(DC成分)に進み、その場合、その走査は、適用すべきコンテキストを導出するために係数の異なるサブセットにおいて概念的に区分される。たとえば、その走査は、走査順序でのn個の連続係数のサブセットにおいて構成される。最後有意係数は、(ブロックの右下隅の近くで一般に見られる)ブロックの最高周波数係数からブロックのDC係数(ブロックの左上隅)に向かう逆方向走査において遭遇する最初の有意係数である。
[0141]本開示の別の態様では、CABACコンテキスト導出基準がすべてのブロックサイズについて調和されることを提案する。言い換えれば、上記で説明したようにブロックサイズに基づいて異なるコンテキスト導出を有する代わりに、あらゆるブロックサイズがCABACコンテキストの同じ導出に依拠することになる。この方法では、ブロックのためのCABACコンテキストを導出するために特定のブロックサイズを考慮に入れる必要がない。また、コンテキスト導出は、有意性コーディングと係数レベルコーディングとの両方に対して同じである。
[0142]また、CABACコンテキストセットが、サブセットがサブセット0(最低周波数のための係数をもつサブセットとして定義され、すなわち、DC係数と隣接低周波係数とを含んでいる)であるか否か(すなわち、コンテキスト導出基準)に依存することを提案する。以下の表3aおよび表3bを参照されたい。
Figure 0005951772
[0143]上記の表3aに従って、コンテキストモデルのセット0〜2は、それぞれ、前にコーディングされたサブセット中の1よりも大きい係数が0個である場合、前にコーディングされたサブセット中に1よりも大きい1つの係数がある場合、または前にコーディングされたサブセット中に1よりも大きい2つ以上の係数がある場合、最低周波数走査サブセット(すなわち、n個の連続係数のセット)のために使用される。コンテキストモデルのセット3〜5は、それぞれ、前にコーディングされたサブセット中の1よりも大きい係数が0個である場合、前にコーディングされたサブセット中に1よりも大きい1つの係数がある場合、または前にコーディングされたサブセット中に1よりも大きい2つ以上の係数がある場合、最低周波数サブセットよりも高いすべてのサブセットのために使用される。
Figure 0005951772
[0144]表3bは、前のサブセット中の1よりも大きい係数の数のより正確なカウントを考慮するので良好な性能を示した、コンテキストセットの表を示している。表3bは、上記の表3aの代替として使用され得る。
[0145]表3cに、同じく代替的に使用され得るコンテキスト導出基準を用いた簡略化されたコンテキストセットの表を示す。
Figure 0005951772
[0146]さらに、変換ユニット中の最後有意係数を含んでいるサブセットが、一意のコンテキストセットを利用し得る。
[0147]本開示では、サブセットのためのコンテキストが、前のサブセット中の1よりも大きい係数の数になお依存することをも提案する。たとえば、前のサブセット中の係数の数がスライディングウィンドウである場合、この数をuiNumOneとする。現在のサブ走査セットのためのコンテキストを決定するためにこの値が検査されると、その値は0に設定されない。代わりに、この値は正規化される(たとえば、uiNumOne>>=2と等価であるuiNumOne=uiNumOne/4、またはuiNumOne>>=1と等価であるuiNumOne=uiNumOne/2を使用する)。これを行うことによって、現在コーディングされているサブセットのためのCABACコンテキスト決定におけるより小さい重みを仮定すれば、直前のサブセットより前のサブセットの値がさらに考慮され得る。特に、所与のサブセットのためのCABACコンテキスト決定は、直前のサブセット中の1よりも大きい係数の数だけでなく、前にコーディングされたサブセット中の1よりも大きい係数の重み付けされた数をも考慮に入れる。
[0148]さらに、コンテキストセットは、(1)現在走査されているサブセット中の有意係数の数と、(2)現在のサブセットが、有意係数をもつ最後のサブセットであるかどうか(すなわち、逆方向走査順序を使用すると、これは、そのサブセットが、その係数レベルについて走査された最初のサブセットであるか否かを指す)とに依存することがある。さらに、係数レベルのためのコンテキストモデルは、現在の係数が最後の係数であるかどうかに依存することがある。
[0149]HEVCにおいて変換係数の16×16および32×32ブロックの有意性マップコーディングについて極めて適応型のコンテキスト選択手法がすでに提案されている。このコンテキスト選択手法はすべてのブロックサイズに拡張され得ることに留意されたい。図10に示すように、この手法は16×16ブロックを4つの領域に分割し、ここで、より低い周波数の領域41中の各係数(16×16ブロックの例では、x,y座標位置[0,0]、[0,1]、[1,0]、[1,1]における左上隅における4つの係数であり、ここで、[0,0]は左上隅、DC係数を示す)はそれ自体のコンテキストを有し、上領域37中の係数(16×16ブロックの例では、x,y座標位置[2,0]から[15,0]までの最上行における係数)は3つのコンテキストを共有し、左領域35中の係数(16×16ブロックの例では、x,y座標位置[0,2]から[0,15]までの左列における係数)は別の3つのコンテキストを共有し、残りの領域39中の係数(16×16ブロック中の残りの係数)は5つのコンテキストを共有する。領域39中の変換係数Xのためのコンテキスト選択は、一例として、5つの変換係数B、E、F、H、およびIの最大値の有意性の和に基づく。Xが、走査方向(この例では、ジグザグまたは対角走査パターン)に沿ったXの同じ対角線上の他の位置とは無関係であるので、走査順序における対角線に沿った変換係数の有意性のコンテキストは、走査順序における前の対角線から並列に計算され得る。
[0150]図10に示す、有意性マップのための提案されるコンテキストは、逆方向走査が使用される場合はコンテキストがデコーダにおいて非因果的になるので、走査順序が順方向である場合のみ有効である。すなわち、デコーダは、逆方向走査が使用される場合、図10に示す係数B、E、F、HおよびIをまだ復号していない。その結果、ビットストリームは復号可能でない。
[0151]しかしながら、本開示では、逆走査方向の使用を提案する。したがって、有意性マップは、図6に示したように、走査順序が逆方向であるとき、係数の間の関係する相関を有する。したがって、有意性マップのための逆方向走査を使用することは、上記で説明したように、望ましいコーディング効率を与える。また、有意性マップのための逆方向走査の使用は、係数レベルと有意性マップとのコーディングのために使用される走査を調和させるのに役立つ。有意係数の逆方向走査をサポートするために、コンテキストは、それらが逆方向走査に適合するように変更される必要がある。有意係数のコーディングが、逆方向走査に関して因果的であるコンテキストを利用することを提案する。
[0152]本開示では、一例では、図11に示すコンテキストを利用する有意性マップコーディングのための技法をさらに提案する。より低い周波数の領域43中の各係数(16×16ブロックの例では、x,y座標位置[0,0]、[0,1]、[1,0]における左上隅における3つの係数であり、ここで、[0,0]は左上隅、DC係数を示す)はそれ自体のコンテキスト導出を有する。上領域45中の係数(16×16ブロックの例では、x,y座標位置[2,0]から[15,0]までの最上行における係数)は、上領域45中の2つの前の係数(たとえば、コーディングされるべき係数のすぐ右の2つの係数であり、ここで、そのような係数は、逆方向走査を仮定すれば、復号目的のための因果的ネイバーである)の有意性に依存するコンテキストを有する。
[0153]左領域47中の係数(16×16ブロックの例では、x,y座標位置[0,2]から[0,15]までの左列における係数)は、2つの前の係数(たとえば、コーディングされるべき係数のすぐ下の2つの係数であり、ここで、そのような係数は、逆方向走査配向を仮定すれば、復号目的のための因果的ネイバーである)の有意性に依存するコンテキストを有する。図11中の上領域45と左領域47との中のこれらのコンテキストは、図10に示したコンテキスト(たとえば、図10において、上領域37中の係数は、左の係数に依存するコンテキストを有し、左領域35中の係数は、上の係数に依存するコンテキストを有する)の逆であることに留意されたい。図11に戻ると、残りの領域49中の係数(すなわち、より低い周波数の領域43と、上領域45と、左領域47との外の残りの係数)のためのコンテキストは、I、H、F、E、およびBで示された位置における係数の有意性の和(または他の関数)に依存する。
[0154]別の例では、上領域45と左領域47との中の係数は、領域49中の係数とまったく同じコンテキスト導出を使用し得る。逆方向走査では、それは、I、H、F、E、およびBで示された隣接位置が上領域45と左領域47との中の係数のために利用可能であるので、可能である。行/列の端部において、因果的係数I、H、F、EおよびBのための位置はブロック外にあり得る。その場合、そのような係数の値は0(すなわち、非有意)であると仮定される。
[0155]コンテキストを選定する際に多くのオプションがある。基本概念は、走査順序に従ってすでにコーディングされた係数の有意性を使用することである。図10に示した例では、位置Xにおける係数のコンテキストは、位置B、E、F、HおよびIにおける係数の有意性の和に基づいて導出される。これらのコンテキスト係数は、有意性マップについて本開示で提案する逆方向走査順序において現在の係数の前に来る。順方向走査において因果的だったコンテキストは、逆方向走査順序において非因果的に(利用可能でなく)なる。この問題に対処するための方法は、図10中の従来の場合のコンテキストを、逆方向走査のために図11に示すコンテキストにミラーリングすることである。最後有意係数からDC係数位置へ逆方向に進む有意性走査の場合、係数Xのためのコンテキスト近傍は係数B、E、F、H、Iから構成され、それらの係数は、係数Xの位置に対してより高い周波数の位置に関連し、それらの係数は、係数Xのコーディングより前に、逆方向走査において、エンコーダまたはデコーダによってすでに処理されている。
[0156]上記で説明したように、表1および表2に示したコンテキストおよびコンテキストモデルは、4×4サブブロックの間の係数レベルの局所相関を活用することを試みる。しかしながら、その依存性はあまりに低いことがある。すなわち、たとえば、サブブロックごとに、いくつかの係数によって互いに分離された係数間に低い依存性があることがある。また、各サブブロック内で、係数間の依存性が弱いことがある。本開示では、より局所のコンテキスト近傍を活用する係数レベルのためのコンテキストのセットの作成によってこれらの問題に対処するための技法について説明する。
[0157]本開示では、たとえば、HEVCまたは他の規格によるビデオコーディングにおいて、変換係数レベルのコンテキストの導出のための局所近傍を使用することを提案する。この近傍は、現在の係数のレベルとの高い相関を有する、すでに符号化された(または復号された)係数から構成される。それらの係数は、コーディングされるべき係数に空間的に隣接し得、図11または図13に示すような、コーディングされるべき係数の境界を画定する係数と他の近くの係数との両方を含み得る。特に、コンテキスト導出のために使用される係数はサブブロックまたは前のサブブロックに制約されない。代わりに、局所近傍は、コーディングされるべき係数の近くに空間的に位置する係数を備え得るが、それらの係数は、それらの係数がサブブロックにおいて構成される場合、必ずしも、コーディングされるべき係数と同じサブブロック中に存在するとは限らず、または互いと同じサブブロック中に存在するとは限らないであろう。固定サブブロック中に位置する係数に依拠するのではなく、本開示では、使用される特定の走査順序を仮定すれば、利用可能である(すなわち、すでにコーディングされた)隣接係数を使用することを提案する。
[0158]たとえば、係数の前にコーディングされたサブセットに基づいて、係数の異なるサブセットのために異なるCABACコンテキストセットが指定され得る。係数の所与のサブセット内で、コンテキストは、コンテキスト近傍と呼ばれることがある、係数の局所近傍に基づいて導出される。本開示によれば、コンテキスト近傍の一例が図12に示されている。コンテキスト近傍中の係数は、コーディングされるべき係数の近くに空間的に位置し得る。
[0159]図12に示すように、順方向走査の場合、変換係数Xのためのレベルのコンテキストは、係数B、E、F、H、およびIの値に依存する。順方向走査では、係数B、E、F、H、およびIは、係数Xの位置に対してより低い周波数の位置に関連し、それらの係数は、係数Xのコーディングより前にエンコーダまたはデコーダによってすでに処理されている。
[0160]CABACのためのビン1を符号化するために、コンテキストは、このコンテキスト近傍中の有意係数(すなわち、この例では、係数B、E、F、HおよびI)の数の和に依存する。コンテキスト近傍中の係数がブロックの外に出る場合、すなわち、データ損失により、その値は、係数Xのコンテキストを決定するために、0であると見なされ得る。CABACのためのビンの残りを符号化するために、コンテキストは、1に等しい近傍中の係数の数の和に、ならびに1よりも大きい近傍中の係数の数の和に依存する。別の例では、ビン1のためのコンテキストは、局所コンテキスト近傍中の係数のビン1値の和に依存し得る。別の例では、ビン1のためのコンテキストは、このコンテキスト近傍中の有意係数の和とビン1値の和との組合せに依存し得る。
[0161]コンテキスト近傍の選択のための多くの候補がある。ただし、コンテキスト近傍は、エンコーダおよびデコーダが両方とも同じ情報へのアクセスを有するような係数から構成されるべきである。特に、近傍中の係数B、F、E、I、およびHは、それらが、前に符号化または復号されており、係数Xのためのコンテキストを決定する際に参照のために利用可能であるという意味で、因果的ネイバーであるべきである。
[0162]図12を参照しながら上記で説明したコンテキストは多くの候補のうちの1つである。そのようなコンテキストは、HEVCにおける使用について現在提案されている3つの走査、すなわち、対角、水平および垂直のいずれかに適用され得る。本開示では、係数レベルのためのコンテキストを導出するために使用されるコンテキスト近傍が、有意性マップのためのコンテキストを導出するために使用されるコンテキスト近傍と同じであり得ることを提案する。たとえば、係数レベルのためのコンテキストを導出するために使用されるコンテキスト近傍は、有意性マップのコーディングの場合のように、局所近傍であり得る。
[0163]上記でより詳細に説明したように、本開示では、有意性マップを形成するための有意係数の走査のための逆方向走査順序の使用を提案する。逆方向走査順序は、図6に示したように逆方向ジグザグパターン、垂直パターンまたは水平パターンであり得る。係数レベル走査のための走査順序も逆方向パターンである場合、図12に示すコンテキスト近傍は非因果的になるであろう。本開示では、そのコンテキスト近傍が逆方向走査順序に関して因果的であるように、そのコンテキスト近傍の位置を反転させる(reverse)ことを提案する。図13に、逆方向走査順序のためのコンテキスト近傍の一例を示す。
[0164]図13に示すように、最後有意係数からDC係数位置へ逆方向に進むレベル走査の場合、係数Xのためのコンテキスト近傍は係数B、E、F、H、およびIから構成され、それらの係数は、係数Xの位置に対してより高い周波数の位置に関連する。逆方向走査を仮定すれば、係数B、E、F、H、およびIは、係数Xのコーディングより前に、エンコーダまたはデコーダによってすでに処理されており、したがって、それらの係数が利用可能であるという意味で、因果的である。同様に、このコンテキスト近傍は係数レベルに適用され得る。
[0165]本開示では、一例では、逆方向走査をサポートするために選択されたコンテキストを利用する有意性マップコーディングのための別の技法をさらに提案する。上記で説明したように、変換係数の16×16および32×32ブロックの有意性マップコーディングのためにHEVCについて極めて適応型のコンテキスト選択手法が提案されている。たとえば、上記で図10に関して説明したように、この手法は16×16ブロックを4つの領域に分割し、ここで、領域41中の各位置はコンテキストのそれ自体のセットを有し、領域37はコンテキストを有し、領域35は別の3つのコンテキストを有し、領域39は5つのコンテキストを有する。変換係数Xのためのコンテキスト選択は、一例として、5つの位置B、E、F、H、Iの最大値の有意性の和に基づく。Xが、走査方向に沿ったXの同じ対角線上の他の位置とは無関係であるので、走査順序における対角線に沿った変換係数の有意性のコンテキストは、走査順序における前の対角線から並列に計算され得る。
[0166]HEVCのための少なくとも1つの提案される手法では、コンテキスト導出はいくつかの欠点を有する。1つの問題はブロックごとのコンテキストの数である。より多くのコンテキストを有することは、コンテキストがリフレッシュされるたびに、より多くのメモリおよびより多くの処理を暗示する。したがって、少ないコンテキストと、また、コンテキストを生成するための少ない(たとえば、前の例における4つの方法、すなわち、4つのパターンよりも少ない)方法とを有するアルゴリズムを有することが有益であろう。
[0167]そのような欠点に対処するための1つの方法は、逆方向順序での、すなわち、最後有意係数(より高い周波数)からDC成分(最低周波数)への、有意性マップのコーディングである。逆方向順序でのこのプロセスの結果は、順方向走査のためのコンテキストがもはや有効でなくなることである。上記で説明した技法は、逆走査方向における前にコーディングされた有意係数に基づいて、有意係数のうちの現在の有意係数を示す情報のコンテキスト適応型バイナリ算術コーディング(CABAC)のためのコンテキストを決定するための方法を含む。逆方向ジグザグ走査の一例では、前にコーディングされた有意係数は、有意係数のうちの現在の有意係数が存在する走査線の右の位置に存在する。
[0168]コンテキスト生成は、少なくとも、境界からの距離とDC成分からの距離とに基づいて、変換ブロックの異なる位置に対して異なり得る。上記で説明した例示的な技法では、有意性マップコーディングが、図11に示したコンテキストのセットを利用することを提案した。
[0169]本開示では、ブロックごとのコンテキストの数の低減によってより高い性能につながり得る逆方向有意性マップ走査のためのコンテキストのセットを提案する。再び図11を参照すると、左領域47および上領域45が残りの領域49と同じコンテキスト導出を使用することを可能にすることによって、ブロックごとのコンテキストの数の低減が達成され得る。逆方向走査では、それは、I、H、F、E、およびBで示された隣接位置が領域47および45における係数のために利用可能であるので、可能である。
[0170]図14に、この例によるコンテキスト導出の一例を示す。この例では、2つのコンテキスト領域のみ、すなわち、DC係数のための低周波数領域57と、すべての他の係数のための残りの領域59とがある。したがって、この例では、コンテキストを導出するためのわずか2つの方法を提案する。低周波数領域57(x,y位置[0,0]におけるDC係数)では、コンテキストはその位置に基づいて導出され、すなわち、DC係数はそれ自体のコンテキストを有する。残りの領域57では、コンテキストは、コーディングされるべき各係数のための局所近傍中のネイバー係数の有意性に基づいて導出される。この例では、コンテキストは、図14中のI、H、F、EおよびBによって示される5つのネイバーの有意性の和に応じて導出される。
[0171]したがって、ブロック内のコンテキストを導出するための方法の数は4から2に低減される。また、コンテキストの数は、図11中の前の例に対して8だけ低減される(より低い周波数の領域43について2つ、ならびに上領域45および左領域47の各々について3つ)。別の例では、DC係数はブロックの残りと同じ方法を使用し得、したがってブロック内のコンテキストを導出するための方法の数は1に低減される。
[0172]図15に、係数Xの現在の位置により、ネイバー係数の一部(この場合HおよびB)が現在ブロックの外にある、例を示す。現在の係数のネイバーのいずれかがブロック外にある場合、そのようなネイバー係数は0の有意性を有する(すなわち、それらは0値であり、したがって非有意である)と仮定され得る。代替的に、右下における1つまたは複数の係数のために1つまたは複数の特殊コンテキストが指定され得る。このようにして、より高い周波数の係数が、DC係数と同様にして、位置に応じたコンテキストを有し得る。ただし、ネイバーが0であると仮定することは、特に、右下の係数が、有意係数、または少なくとも大きい値の有意係数を有する低い確率を通常有することになるので、十分な結果を与え得る。
[0173]図14の例におけるコンテキストの数の低減は実装に適している。しかしながら、それにより性能がわずかに低下し得る。本開示では、性能を改善しながら依然としてコンテキストの数を低減するための、さらなる技法を提案する。特に、同じくネイバー係数に基づく、コンテキストの第2のセットを有することを提案する。コンテキスト導出アルゴリズムはまったく同じであるが、異なる確率モデルを用いたコンテキストの2つのセットが使用される。使用されるコンテキストのセットは、変換ユニット内のコーディングされるべき係数の位置に依存する。
[0174]より詳細には、より低い周波数(たとえば、係数の左上x,y座標位置)における係数のためのコンテキストモデルとは異なる、より高い周波数の係数(たとえば、係数の右下x,y座標位置)のためのコンテキストモデルを使用するとき、性能の向上が示されている。より高い周波数の係数からより低い周波数の係数を分離するための、したがって各々のために使用されるコンテキストモデルを分離するための、1つの方法は、係数のためのx+y値を計算することであり、上式で、xは水平位置であり、yは係数の垂直位置である。この値が何らかのしきい値(たとえば、4はうまく動作することが示されている)よりも小さい場合、コンテキストセット1が使用される。その値がしきい値に等しいかそれよりも大きい場合、コンテキストセット2が選択される。ここでも、コンテキストセット1および2は異なる確率モデルを有する。
[0175]図16に、この例のためのコンテキスト領域の一例を示す。この場合も、位置(0,0)におけるDC係数は、それ自体のコンテキスト領域61を有する。より低い周波数のコンテキスト領域63は、4のしきい値に等しいかそれよりも小さいx+y位置における(DC係数を含まない)変換係数からなる。より高い周波数のコンテキスト領域65は、4のしきい値よりも大きいx+y位置における変換係数からなる。4のしきい値は、一例として使用されており、より良い性能を提供する任意の数に調整され得る。別の例では、しきい値はTUサイズに依存し得る。
[0176]より低い周波数のコンテキスト領域63とより高い周波数のコンテキスト領域65とのためのコンテキスト導出は、コンテキストを選択するためにネイバーが使用される方法に関してまったく同じであるが、採用される確率(すなわち、コンテキスト)は異なる。特に、ネイバーに基づくコンテキスト選択のための同じ基準が使用され得るが、異なる係数位置がコンテキストの異なるセットに関連し得るので、そのような基準の適用は、異なる係数位置のための異なるコンテキストの選択につながる。このようにして、異なる係数のための異なるコンテキストセットが使用され得るように、より低い周波数の係数と高い周波数の係数とが異なる統計値を有するという知識がアルゴリズムに組み込まれる。
[0177]他の例では、x+y関数は、係数の位置に応じて他の関数に変更され得る。たとえば、あるオプションは、x<Tおよびy<Tであり、Tがしきい値である、すべての係数にコンテキストの同じセットを与えることである。図17に、これらのコンテキスト領域をもつ変換係数のブロックの一例を示す。この場合も、位置(0,0)におけるDC係数は、それ自体のコンテキスト領域61を有し得る。より低い周波数のコンテキスト領域73は、それのxまたはy位置が4のしきい値よりも小さいかそれに等しい、(DC係数を含まない)すべての変換係数からなる。より高い周波数のコンテキスト領域は、それのxまたはy位置が4のしきい値よりも大きい、すべての変換係数からなる。この場合も、4のしきい値は、一例として使用されており、より良い性能を提供する任意の数に調整され得る。一例では、しきい値はTUサイズに依存し得る。
[0178]図16および図17に示した上記で説明した技法は、5つのコンテキストの2つのセットを有し、これは、依然として、図10に示したコンテキストの数よりも少ないコンテキストの数であり、より高い性能を示す。これは、ブロックを異なるエリアに分離することと、異なるエリア中の係数のために異なるコンテキストセットを指定することと、ただし、依然として同じコンテキスト導出基準を各エリアに適用することとによって、達成される。
[0179]図18に、コンテキスト領域をもつ変換係数のブロックの別の例を示す。この例では、領域81中のDC係数と、領域83および85中のx,y位置(1,0)および(0,1)における係数とは、それぞれそれら自体のコンテキストを有する。残りの領域87はさらに別のコンテキストを有する。図18に示す例の変形形態では、領域83および85はコンテキストを共有する。
[0180]概して、上記で説明した技法は、有意性マップを形成するために変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆方向に変換係数のブロック中の有意係数を走査することと、ブロック中の前に走査された係数の局所近傍に基づいて有意性マップの有意係数のコンテキスト適応型バイナリ算術コーディング(CABAC)のためのコンテキストを決定することとを含み得る。コンテキストは、有意係数の各々について、それぞれの変換係数よりも高い周波数を有する、局所近傍中の前に走査された変換係数に基づいて、決定され得る。いくつかの例では、コンテキストは、コンテキスト近傍の前に走査された係数中の有意係数の数の和に基づいて決定され得る。コーディングされるべき有意係数の各々のための局所近傍は、ブロック中のそれぞれの係数に空間的に隣接する複数の変換係数を備え得る。
[0181]変換係数のブロックのDC(たとえば、最左上)位置における有意係数のためのコンテキストは、DC位置における有意係数のために指定された個別のコンテキストに基づいて決定され得る。また、コンテキストは、ブロックの左側エッジおよび上部エッジにおける係数について、ブロックの左側エッジおよび上部エッジにない係数のためのコンテキストを決定するために使用される基準と実質的に同様または同等の基準を使用して決定され得る。いくつかの例では、ブロックの最右下位置における係数のためのコンテキストは、ブロックの外の隣接係数が0値係数であると仮定する基準を使用して判断され得る。また、いくつかの例では、コンテキストを判断することは、変換係数のブロック内の係数の位置に基づいて、コンテキストセット内のコンテキストの選択のための実質的に同様または同等の基準、ただし異なるコンテキストセットを使用して、係数のためのコンテキストを決定することを備え得る。
[0182]本開示での上、下、右、左などへの言及は、概して、従来の方法で、左上に向かってより低い周波数の係数を有し、ブロックの右下に向かってより高い周波数の係数を有するように構成された、変換係数のブロック中のより高い周波数の係数とより低い周波数の係数との相対位置を指すために便宜上使用されており、より高い周波数の係数とより低い周波数の係数とが、異なる非従来の方法で構成され得る場合について、限定的であると見なされるべきでない。
[0183]図5に戻ると、いくつかの例では、変換モジュール52は、いくつかの変換係数(すなわち、いくつかのロケーションにおける変換係数)をゼロアウトするように構成され得る。たとえば、変換モジュール52は、変換後のTUの左上象限の外部にあるすべての変換係数をゼロアウトするように構成され得る。別の例として、エントロピー符号化ユニット56は、アレイ内のある位置の後に来るアレイ内の変換係数をゼロアウトするように構成され得る。いずれの場合も、ビデオエンコーダ20は、たとえば、走査の前または後に、変換係数のある部分をゼロアウトするように構成され得る。「ゼロアウトする」という句は、係数の値を0に等しく設定することを意味するために使用されるが、必ずしも係数をスキップまたは廃棄することを意味するとは限らない。いくつかの例では、0への係数のこの設定は、量子化から生じ得るゼロアウトに加えて行われ得る。
[0184]逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームバッファ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0185]図19は、図5のビデオエンコーダにおいて使用するエントロピー符号化ユニット56の一例を示すブロック図である。図19は、CABACエントロピーコーディングにおいて使用される走査順序と対応するコンテキストセットとを選択するためのエントロピー符号化ユニット56の様々な機能的態様を示している。エントロピー符号化ユニット56は、走査順序およびコンテキスト選択ユニット90と、2D−1D走査ユニット92と、エントロピー符号化エンジン94と、走査順序メモリ96とを含み得る。
[0186]走査順序およびコンテキスト選択ユニット90は、有意性マップ走査と係数レベル走査とのために2D−1D走査ユニット92によって使用されるべき走査順序を選択する。上記で説明したように、走査順序は、走査パターンと走査方向との両方からなる。走査メモリ96は、特定の状況のためにどの走査順序を使用すべきかを定義する命令および/またはデータを記憶し得る。例として、走査順序を選択するために、フレームまたはスライスの予測モード、ブロックサイズ、変換、または使用されるビデオデータの他の特性が使用され得る。HEVCについての1つの提案では、イントラ予測モードの各々が特定の走査順序(サブブロック対角、水平または垂直)に割り当てられる。デコーダは、イントラ予測モードをパースし、ルックアップテーブルを使用して適用すべき走査順序を決定する。最も頻繁な有意係数の統計値を追跡するために適応型の方法が使用され得る。別の例では、走査は、走査順序における最初の最も頻繁に使用される係数に基づき得る。別の例として、走査順序およびコンテキスト選択ユニット90は、すべての状況についてあらかじめ決定された走査順序を使用し得る。上記で説明したように、走査順序およびコンテキスト選択ユニット90は、有意性マップ走査と係数レベル走査との両方のための走査順序を選択し得る。本開示の技法によれば、それらの2つの走査は、同じ走査順序を有し得、特に、両方とも逆方向であり得る。
[0187]選択された走査順序に基づいて、走査順序およびコンテキスト選択ユニット90は、図11および図13〜図18を参照しながら上記で説明したコンテキストなど、エントロピー符号化エンジン94においてCABACのために使用されるべきコンテキストをも選択する。
[0188]2D−1D走査ユニット92は、選択された走査を変換係数の2次元アレイに適用する。特に、2D−1D走査ユニット92は、図7〜図9を参照しながら上記で説明したように、サブセット中の変換係数を走査し得る。特に、変換係数は、走査順序に従っていくつかの連続係数からなるサブセットにおいて走査される。そのようなサブセットは、有意性マップ走査と係数レベル走査との両方に適用可能である。さらに、2D−1D走査ユニット92は、連続走査としておよび同じ走査順序に従って、有意性マップ走査と係数レベル走査とを実行し得る。連続走査は、上記で説明したように、いくつかの走査からなり得る。一例では、第1の走査は有意性マップ走査であり、第2の走査は各サブセット中の変換係数のレベルのビン1の走査であり、第3の走査は変換係数のレベルの残りのビンの走査であり、第4の走査は変換係数のレベルの符号の走査である。
[0189]エントロピー符号化エンジン94は、走査順序およびコンテキスト選択ユニット90からの選択されたコンテキストを使用してエントロピー符号化プロセスを走査された係数に適用する。いくつかの例では、CABACのために使用されるコンテキストはすべての場合についてあらかじめ決定され得、したがって、コンテキストを選択するためのプロセスまたはユニットの必要がないことがある。エントロピー符号化プロセスは、係数が完全に走査されて1Dベクトルになった後に、または各係数が1Dベクトルに追加されるときに、係数に適用され得る。他の例では、係数は、走査順序を使用して2Dアレイにおいて直接処理される。場合によっては、エントロピー符号化エンジン94は、速度および効率を上げるためにエントロピー符号化プロセスの並列化を促進するために、1Dベクトルの異なるセクションを並列に符号化するように構成され得る。エントロピー符号化エンジン94は、符号化ビデオを搬送するビットストリームを生成する。ビットストリームは、別のデバイスに送信されるか、または後で取り出すためにデータ記憶アーカイブに記憶され得る。残差変換係数データに加えて、ビットストリームは、動きベクトルデータと、ビットストリーム中の符号化ビデオを復号する際に有用な様々なシンタックス要素とを搬送し得る。
[0190]さらに、エントロピー符号化ユニット56は、CABACプロセスにおいて使用される走査順序および/またはコンテキストを示すために、符号化ビデオビットストリーム中のシグナリングを与え得る。走査順序および/またはコンテキストは、たとえば、フレーム、スライス、LCU、CUレベルまたはTUレベルなど、様々なレベルにおいてシンタックス要素としてシグナリングされ得る。あらかじめ決定された走査順序および/またはコンテキストが設定される場合、符号化ビットストリーム中のシグナリングを与える必要がないことがある。また、いくつかの例では、ビデオデコーダ30は、シグナリングなしにパラメータ値のいくつかを推論することが可能であり得る。異なるTUのための異なる走査順序の定義を可能にするために、TUレベルにおいて、たとえば、TU4分木ヘッダ中でそのようなシンタックス要素をシグナリングすることが望ましいことがある。例示のために符号化ビデオビットストリーム中のシグナリングについて説明するが、パラメータ値または関数を示す情報はサイド情報中でアウトオブバンドでシグナリングされ得る。
[0191]このコンテキストでは、符号化ビットストリーム中で走査順序および/またはコンテキストをシグナリングすることは、エンコーダからデコーダへのそのような要素のリアルタイム送信を必要とせず、むしろ、そのようなシンタックス要素がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、(たとえば、ビデオ会議における)リアルタイム送信、ならびに(たとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、DVD、ブルーレイなどにおける)デコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。
[0192]説明しやすいように別個の機能的ユニットとして示されているが、走査順序およびコンテキスト選択ユニット90、2D−1D走査ユニット92、エントロピー符号化エンジン94、および走査順序メモリ96の構造および機能は互いに高度に統合され得ることに留意されたい。
[0193]図20は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図20の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測モジュール74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図5)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
[0194]エントロピー復号70は、図5のエントロピー符号化ユニット56によって使用されたプロセスの逆であるプロセスにおいて符号化ビデオをエントロピー復号する。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得る。イントラ予測モジュール74は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
[0195]いくつかの例では、エントロピー復号ユニット70(または逆量子化ユニット76)は、ビデオエンコーダ20のエントロピー符号化ユニット56(または量子化ユニット54)によって使用された走査順序をミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット76において実行され得るが、走査については、例示のために、エントロピー復号ユニット70によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、および他のユニットの構造および機能は互いに高度に統合され得る。
[0196]本開示の技法によれば、ビデオデコーダ30は、同じ走査順序に従って変換係数の有意性マップと変換係数のレベルとの両方を走査し得る。すなわち、有意性マップコーディングとレベルコーディングとのための走査順序は、同じパターンおよび方向を有するべきである。さらに、ビデオエンコーダ30は、逆方向である、有意性マップのための走査順序を使用し得る。別の例として、ビデオエンコーダ30は、逆方向において調和された、有意性マップコーディングとレベルコーディングとのための走査順序を使用し得る。
[0197]本開示の別の態様では、ビデオデコーダ30はサブセット中の変換係数を走査し得る。特に、変換係数は、走査順序に従っていくつかの連続係数からなるサブセットにおいて走査される。そのようなサブセットは、有意性マップ走査と係数レベル走査との両方に適用可能である。さらに、ビデオデコーダ30は、同じ走査順序に従って連続走査として有意性マップ走査と係数レベル走査とを実行し得る。一態様では、走査順序は逆方向走査順序である。連続走査は、いくつかの走査からなり得る。一例では、第1の走査は有意性マップ走査であり、第2の走査は各サブセット中の変換係数のレベルのビン1の走査であり、第3の走査は変換係数のレベルの残りのビンの走査であり、第4の走査は変換係数のレベルの符号の走査である。
[0198]ビデオデコーダ30は、符号化ビットストリームから、ビデオエンコーダ20によってCABACのために使用された走査順序および/またはコンテキストを識別するシグナリングを受信し得る。追加または代替として、走査順序およびコンテキストは、予測モード、ブロックサイズなど、コーディングされたビデオの特性、または他の特性に基づいて、ビデオデコーダ30によって推論され得る。別の例として、ビデオエンコーダ20およびビデオデコーダ30は、すべての使用事例についてあらかじめ決定された走査順序とコンテキストとを使用し得、したがって、符号化ビットストリーム中のシグナリングは必要とされないであろう。
[0199]走査順序がどのように決定されるかにかかわらず、エントロピー復号ユニット70は、走査順序の逆を使用して1Dベクトルを走査して2Dアレイにする。エントロピー復号ユニット70によって生成された変換係数の2Dアレイは、量子化され得、変換係数の1Dベクトルを生成するためにビデオエンコーダ20のエントロピー符号化ユニット56によって走査された変換係数の2Dアレイに概して一致し得る。
[0200]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、HEVCのために提案されたプロセスまたはH.264復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPの使用を含み得る。逆量子化ユニット76は、係数が1Dベクトルから2Dアレイに変換される前または変換された後に変換係数を逆量子化し得る。
[0201]逆変換モジュール78は、逆変換、たとえば、逆DCT、逆整数変換、逆KLT、逆回転変換、逆方向性変換、または別の逆変換を適用する。いくつかの例では、逆変換モジュール78は、ビデオエンコーダ20からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの1つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換モジュール78は、現在ブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。いくつかの例では、逆変換モジュール78はカスケード逆変換を適用し得る。
[0202]動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0203]動き補償ユニット72およびイントラ予測モジュール74は、HEVCの例では、(たとえば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されたLCUのサイズを決定し得る。動き補償ユニット72およびイントラ予測モジュール74はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報を決定断し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード(たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各インター符号化PUについての1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含んでいる参照リスト)と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
[0204]加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測モジュール74によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ82に記憶され、参照フレームバッファ82は、その後の動き補償のための参照ブロックを与え、また、(図4のディスプレイデバイス32などの)ディスプレイデバイス上での提示のために復号ビデオを生成する。
[0205]上述のように、本開示で提示する、変換係数を走査するための技法は、エンコーダとデコーダの両方に適用可能である。ビデオエンコーダは、走査順序を適用して、変換係数を走査して2次元アレイから1次元アレイにし得、ビデオデコーダは、たとえば、エンコーダとは逆に走査順序を適用して、変換係数を走査して1次元アレイから2次元アレイにし得る。代替的に、ビデオデコーダは、走査順序を適用して、変換係数を走査して1次元アレイから2次元アレイにし得、ビデオエンコーダは、デコーダとは逆に走査順序を適用して、変換係数を走査して2次元アレイから1次元アレイにし得る。したがって、コーダによる走査は、エンコーダによる2D−1D走査またはデコーダによる1D−2D走査を指し得る。さらに、走査順序に従う走査は、2D−1D走査のための走査順序での走査、1D−2D走査のための走査順序での走査、1D−2D走査のための走査順序の逆での走査、または2D−1D走査のための走査順序の逆での走査を指し得る。したがって、走査順序は、エンコーダによる走査またはデコーダによる走査のために確立され得る。
[0206]ビデオデコーダ30は、ビデオエンコーダ20の方法と本質的に対称的な方法で動作し得る。たとえば、ビデオデコーダ30は、符号化されたPUデータとTUデータとを含む符号化されたCUを表す、エントロピー符号化されたデータを受信し得る。ビデオデコーダ30は、この受信データを逆エントロピー符号化して符号化量子化係数を形成し得る。ビデオエンコーダ20が算術コーディングアルゴリズム(たとえば、CABAC)を使用してデータをエントロピー符号化したとき、ビデオデコーダ30は、データを符号化するためにビデオエンコーダ20によって使用されたのと同じコンテキストモデルに対応するコンテキストモデルを使用して、そのデータを復号し得る。
[0207]ビデオデコーダ30はまた、ビデオエンコーダ20によって使用された走査をミラーリングする逆方向走査を使用して、復号された係数を逆走査し得る。係数を逆走査するために、ビデオデコーダ30は、ビデオエンコーダ20によって使用されたのと同じ走査順序を選択し、その走査順序は、デコーダにおいて記憶され得るかまたは符号化ビットストリーム中でエンコーダによってシグナリングされ得る。この走査順序を使用して、ビデオデコーダ30は、それによって、エントロピー復号プロセスから得られた量子化変換係数の1次元ベクトルから2次元行列を形成する。特に、ビデオデコーダ30は、ビデオエンコーダ20によって使用された走査順序に従って係数を逆走査して1次元アレイから2次元アレイにする。
[0208]次に、ビデオデコーダ30は、走査順序に従って実行された逆方向走査によって生成された2次元行列中の係数を逆量子化し得る。ビデオデコーダ30は、次いで、2次元行列に1つまたは複数の逆変換を適用し得る。逆変換は、ビデオエンコーダ20によって適用された変換に対応し得る。ビデオデコーダ30は、たとえば、現在復号されているCUに対応する4分木のルートにおいてシグナリングされた情報に基づいて、または適切な逆変換を示す他の情報を参照して、適用すべき逆変換を決定し得る。(1つまたは複数の)逆変換の適用時に、ビデオデコーダ30は、ピクセル領域において残差ビデオデータを復元し、適用可能なとき、イントラ予測復号またはインター予測復号を適用して元のビデオデータを再構成する。
[0209]図21は、図20のビデオデコーダにおいて使用するエントロピー復号ユニット70の一例を示すブロック図である。図21は、ビデオ復号プロセスにおけるCABAC復号のために使用される走査順序とコンテキストとを選択するためのエントロピー復号ユニット70の様々な機能的態様を示している。図21に示すように、エントロピー符号化ユニット70は、走査順序およびコンテキスト選択ユニット100と、1D−2D走査ユニット102と、エントロピー復号エンジン104と、走査順序メモリ106とを含み得る。
[0210]エントロピー復号エンジン104は、ビデオデコーダ30に送信されたかまたは記憶デバイスからビデオデコーダ30によって取り出された符号化ビデオをエントロピー復号する。たとえば、エントロピー復号エンジン104は、符号化ビデオを搬送するビットストリームにエントロピー復号プロセス、たとえば、CAVLC、CABACまたは別のプロセスを適用して、変換係数の1Dベクトルを復元し得る。残差変換係数データに加えて、エントロピー復号エンジン104は、エントロピー復号を適用して、動きベクトルデータと、ビットストリーム中の符号化ビデオを復号する際に有用な様々なシンタックス要素とを再生し得る。エントロピー復号エンジン104は、符号化ビデオビットストリーム中のシグナリングに基づいて、またはビットストリーム中の他の情報から適切なプロセスを推論することによって、どのエントロピー復号プロセス、たとえば、CAVLC、CABACまたは別のプロセスを選択すべきかを決定し得る。
[0211]本開示の技法によれば、エントロピー復号エンジン104は、2つの異なるコンテキスト領域に従ってCABACを使用して符号化ビデオをエントロピー復号し得る。走査順序およびコンテキスト選択ユニット100は、エントロピー復号エンジン104にコンテキスト導出を与え得る。本開示の例によれば、第1のコンテキスト領域のためのコンテキスト導出は変換係数の位置に依存し、第2の領域のためのコンテキスト導出は変換係数の因果的ネイバーに依存する。別の例では、第2のコンテキスト領域は、変換係数のロケーションに応じて2つの異なるコンテキストモデルを使用することができる。
[0212]また、走査順序およびコンテキスト選択ユニット100は、符号化ビデオビットストリーム中のシグナリングに基づいて、走査順序、および/または走査順序の指示を決定し得る。たとえば、エントロピー復号ユニット70は、走査順序を明示的にシグナリングするシンタックス要素を受信し得る。この場合も、例示のために符号化ビデオビットストリーム中のシグナリングについて説明するが、走査順序は、サイド情報中でアウトオブバンドでエントロピー復号ユニット70によって受信され得る。また、いくつかの例では、走査順序およびコンテキスト選択ユニット100は、シグナリングなしに走査順序を推論することが可能であり得る。走査順序は、予測モード、ブロックサイズ、変換、または符号化ビデオの他の特性に基づき得る。図19のメモリ96のように、図21の走査順序メモリ106は、走査順序を定義する命令および/またはデータを記憶し得る。
[0213]1D−2D走査ユニット102は、走査順序およびコンテキスト選択ユニット100から走査順序を受信し、走査順序を直接または逆に適用して、係数の走査を制御する。本開示の技法によれば、有意性マップ走査と係数レベルとの両方のために同じ走査順序が使用され得る。本開示の別の態様では、有意性マップ走査は逆方向であり得る。本開示の別の態様では、有意性マップ走査と係数レベル走査との両方が逆方向であり得る。
[0214]本開示の別の態様によれば、1D−2D走査ユニット102は、変換係数の1次元アレイを走査して変換係数の1つまたは複数のサブセットにし、各サブセット中の変換係数の有意性をコーディングし、各サブセット中の変換係数のレベルをコーディングし得る。本開示の別の態様では、有意性マップ走査と係数レベル走査とが、同じ走査順序に従って連続走査において実行される。一態様では、走査順序は逆方向走査順序である。連続走査はいくつかの走査からなり得、その場合、第1の走査は有意性マップ走査であり、第2の走査は各サブセット中の変換係数のレベルのビン1の走査であり、第3の走査は変換係数のレベルの残りのビンの走査であり、第4の走査は変換係数のレベルの符号の走査である。
[0215]エンコーダ側では、変換係数のコーディングは、変換係数の1次元アレイを形成するために、走査順序に従って変換係数を符号化することを備え得る。デコーダ側では、変換係数をコーディングすることは、変換ブロック中の変換係数の2次元アレイを再構成するために、走査順序に従って変換係数を復号することを備え得る。
[0216]説明しやすいように別個の機能的ユニットとして示されているが、走査順序およびコンテキスト選択ユニット100、1D−2D走査ユニット102、エントロピー復号エンジン104、および走査順序メモリ106の構造および機能は互いに高度に統合され得ることに留意されたい。
[0217]図22は、調和された走査順序を用いた有意性マップ走査と係数レベル走査とのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングする方法を提案する。本方法は、図4のビデオエンコーダ20またはビデオデコーダ30など、ビデオコーダによって実行され得る。ビデオコーダは、走査順序を選択する(120)ように構成され得る。走査順序は、予測モード、ブロックサイズ、変換、または他のビデオ特性に基づいて選択され得る。さらに、走査順序はデフォルト走査順序であり得る。走査順序は、走査パターンと走査方向との両方を定義する。一例では、走査方向は、複数の変換係数中のより高い周波数の係数から複数の変換係数中のより低い周波数の係数に進む逆走査方向である。走査パターンは、ジグザグパターン、対角パターン、水平パターンまたは垂直パターンのうちの1つを含み得る。
[0218]ビデオコーダは、走査順序に従って複数の変換係数のための有意係数を示す情報をコーディングする(122)ことと、有意係数の複数のサブセットのための有意係数のレベルをコーディングするためのコンテキストを決定することと、複数のサブセットの各々は、上記走査順序に従って走査された1つまたは複数の有意係数を備える(124)、を行うようにさらに構成され得る。ビデオコーダはまた、上記走査順序に従って複数の変換係数のレベルを示す情報をコーディングする(126)。サブセットは異なるサイズのサブセットであり得る。レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ122、124および126は交互配置され得ることに留意されたい。
[0219]図23は、有意性マップ走査と係数レベル走査とCABACコンテキスト導出とのための別の例示的なプロセスを示すフローチャートである。異なるサイズのブロックのコンテキストが同じコンテキスト導出基準を使用し得るので、図23の方法は、図22に示した方法とはわずかに異なる。一例として、ビデオコーダは、コンテキスト導出基準に従って変換係数の第1のブロックのための第1のコンテキストを導出することと、第1のブロックは第1のサイズを有し、第1のブロックと同じコンテキスト導出基準に従って変換係数の第2のブロックのための第2のコンテキストを導出することと、第2のブロックは第2の異なるサイズを有し、を行う(123)。図22のように、レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ122、123および126は交互配置され得る。
[0220]図24は、有意性マップ走査と係数レベル走査とCABACコンテキスト導出とのための別の例示的なプロセスを示すフローチャートである。サブセット中のDC係数の存在に基づいてサブセットのためのコンテキストが決定されるので、図24の方法は、図22に示した方法とはわずかに異なる。一例として、ビデオコーダは、係数の異なるサブセットのためのコンテキストの異なるセットを、それぞれのサブセットが変換係数のDC係数を含んでいるかどうかに基づいて決定する(125)。図22のように、レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ122、125および126は交互配置され得る。
[0221]図25は、有意性マップ走査と係数レベル走査とCABACコンテキスト導出とのための別の例示的なプロセスを示すフローチャートである。他の前のサブセット中の有意係数の重み付けされた数に基づいてコンテキストが決定されるので、図25の方法は、図22に示した方法とはわずかに異なる。一例として、ビデオコーダは、係数の異なるサブセットのためのコンテキストの異なるセットを、係数の直前のサブセット中の有意係数の数と、係数の他の前のサブセット中の有意係数の重み付けされた数とに基づいて、決定する(127)。図22のように、レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ122、127および126は交互配置され得る。
[0222]図26は、逆走査方向を使用した有意性マップコーディングのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法を提案する。本方法は、図4のビデオエンコーダ20またはビデオデコーダ30など、ビデオコーダによって実行され得る。ビデオコーダは、逆方向を用いた走査順序を選択する(140)ことと、逆走査方向における前にコーディングされた有意係数に基づいて、有意係数のうちの現在の有意係数を示す情報のコンテキスト適応型バイナリ算術コーディング(CABAC)のためのコンテキストを決定する(142)こととを行うように構成され得る。ビデオコーダは、有意性マップを形成するために逆走査方向に沿って有意変換係数を示す情報をコーディングする(146)ようにさらに構成され得る。
[0223]一例では、上記走査は対角パターンを有し、前にコーディングされた有意係数は、有意係数のうちの現在の有意係数が存在する走査線の右の位置に存在する。別の例では、上記走査は水平パターンを有し、前にコーディングされた有意係数は、有意係数のうちの現在の有意係数が存在する走査線の下の位置に存在する。別の例では、上記走査は垂直パターンを有し、前にコーディングされた有意係数は、有意係数のうちの現在の有意係数が存在する走査線の右の位置に存在する。
[0224]ビデオコーダは、有意変換係数のレベルを示す情報をコーディングする(148)ようにさらに構成され得る。有意変換係数のレベルを示す情報をコーディングするステップは、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進み得る。図22のように、レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ142、146および148は交互配置され得る。
[0225]図27は、変換係数のサブセットによる有意性マップ走査と係数レベル走査とのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法を提案する。本方法は、図4のビデオエンコーダ20またはビデオデコーダ30など、ビデオコーダによって実行され得る。ビデオコーダは、変換係数のブロックを変換係数の1つまたは複数のサブセットに構成する(160)ことと、各サブセット中の変換係数の有意性をコーディングする(162)ことと、各サブセット中の変換係数のレベルをコーディングする(164)こととを行うように構成され得る。一例では、変換係数のブロックを構成することは、変換係数のブロックを変換ユニット全体に対応する変換係数の単一のセットに構成することを含み得る。別の例では、変換係数のブロックを構成することは、走査順序に基づいて変換係数のブロックを変換係数の1つまたは複数のサブセットに構成することを含み得る。
[0226]ビデオコーダは、走査順序に従って各サブセット中の変換係数の有意性をコーディングすることと、上記走査順序に従って変換係数のレベルをコーディングすることとを行うように構成され得る。有意性マップをコーディングする(162)ことと、レベルをコーディングする(164)こととは、サブセット上で2つ以上の連続走査パスにおいて一緒に実行され得る(165)。
[0227]図28は、変換係数のサブセットによる有意性マップ走査と係数レベル走査とのための別の例示的なプロセスを示すフローチャートである。ビデオエンコーダは、最初に、サブセット中の変換係数の有意性をそれぞれのサブセット中の変換係数の第1の走査においてコーディングする(170)ことによって、連続走査を実行し得る(165)。
[0228]各サブセット中の係数レベルのコーディング(164)は、それぞれのサブセット中の変換係数の少なくとも第2の走査を含む。第2の走査は、サブセット中の変換係数のレベルのビン1をそれぞれのサブセット中の変換係数の第2の走査においてコーディングする(172)ことと、サブセット中の変換係数のレベルの残りのビンをそれぞれのサブセット中の変換係数の第3の走査においてコーディングする(174)ことと、サブセット中の変換係数のレベルの符号をそれぞれのサブセット中の変換係数の第4の走査においてコーディングする(176)こととを含み得る。
[0229]図29は、変換係数のサブセットによる有意性マップ走査と係数レベル走査とのための別の例示的なプロセスを示すフローチャートである。この例では、変換係数のレベルの符号のコーディング(176)は、レベルをコーディングする(172、174)前に実行される。
[0230]図30は、複数の領域を使用したエントロピーコーディングのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングする方法を提案する。本方法は、図4のビデオエンコーダ20またはビデオデコーダ30など、ビデオコーダによって実行され得る。ビデオコーダは、走査順序に従って複数の変換係数のための有意係数を示す情報をコーディングする(180)ことと、コーディングされた情報を第1の領域と第2の領域とに分割する(182)ことと、コンテキスト適応型バイナリ算術コーディングを使用してコンテキストの第1のセットに従って第1の領域中のコーディングされた情報をエントロピーコーディングする(184)ことと、コンテキスト適応型バイナリ算術コーディングを使用してコンテキストの第2のセットに従って第2の領域中のコーディングされた情報をエントロピーコーディングする(186)こととを行うように構成され得る。一例では、走査順序は、逆方向と対角走査パターンとを有する。本方法は3つ以上の領域にも適用され得、各領域はコンテキストのセットを有する。
[0231]第1の領域と第2の領域とは、いくつかの方法で分割され得る。一例では、第1の領域は、複数の変換係数の少なくともDC成分を含んでおり、第2の領域は、第1の領域中にない残りの複数の変換係数を含んでいる。
[0232]別の例では、第1の領域は、x+y<Tによって画定された領域内のすべての変換係数を含んでおり、上式で、xは変換係数の水平位置であり、yは変換係数の垂直位置であり、Tはしきい値である。第1の領域は、DC係数を含んでいることがある。第2の領域は、第1の領域中にない残りの複数の変換係数を含んでいる。
[0233]別の例では、第1の領域は、x<Tおよびy<Tによって画定された領域内のすべての変換係数を含んでおり、上式で、xは変換係数の水平位置であり、yは変換係数の垂直位置であり、Tはしきい値である。第2の領域は、第1の領域中にない残りの複数の変換係数を含んでいる。
[0234]別の例では、第1の領域は、DC係数を含んでおり、第2の領域は、x<Tおよびy<Tによって画定された領域内の(DC係数を除く)すべての変換係数を含んでおり、上式で、xは変換係数の水平位置であり、yは変換係数の垂直位置であり、Tはしきい値であり、第3の領域は、第1の領域または第2の領域中にない残りの複数の変換係数を含んでいる。別の例では、上記で説明した第2の領域および第3の領域は、コンテキストを導出するための同じ方法を使用し得るが、各領域のための異なるコンテキストセットが使用される。
[0235]別の例では、第1の領域は、DC成分と、位置(1,0)および(0,1)における変換係数とを含む。第2の領域は、第1の領域中にない残りの複数の変換係数を含んでいる。
[0236]別の例では、第1の領域は、複数の変換係数のDC成分のみを含んでおり、第2の領域は、残りの複数の変換係数を含んでいる。
[0237]概して、第1の領域中の各変換係数のための第1のコンテキストは、第1の領域中の各変換係数の位置に基づき、第2の領域中の各変換係数のための第2のコンテキストは、各変換係数の因果的ネイバーのコーディングされた情報に基づく。いくつかの例では、第2のコンテキストは、第2の領域中の各変換係数の位置にさらに基づく。別の例では、第2の領域中の各変換係数のための第2のコンテキストは、各変換係数の5つの因果的ネイバーのコーディングされた情報に基づく。
[0238]図31に、残差ビデオデータに関連する変換係数をコーディングするためのビン190の例示的な順序付けを示す。(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、2つの異なるコーディングモードを使用してビン190をコーディングし得る。たとえば、ビデオコーダは、コンテキスト適応型コーディングモード、たとえば、(本明細書ではその各々を「正規」モードと呼ぶ)CABACまたは別のコンテキスト適応型プロセス、あるいは(バイパスモードと呼ぶ)バイパスコーディングモードを使用してビン190をコーディングすべきかどうかを決定し得る。図31に示す例では、ビデオコーダは、ビン192(影なしブロック)を正規モードでコーディングし得、ビン194(影つきブロック)をバイパスモードでコーディングし得る。正規モードでコーディングされるビン192は「正規ビン192」と呼ばれることがあり、バイパスモードでコーディングされるビン194は「バイパスビン194」と呼ばれることがある。
[0239]ビン192を正規コーディングモードでコーディングするために、ビデオコーダは、上記で説明したように、たとえば、通常のCABACコーディングエンジンを使用することによってコンテキスト適応型確率モデルを使用し得る。すなわち、CABACプロセスの正規モードは、上記で説明したように、たとえば、エントロピー符号化ユニット56またはエントロピー復号ユニット70に対して適応コンテキストモデルを使用し得る。対照的に、ビン194をバイパスモードでコーディングするために、ビデオコーダは、固定の確率を有する簡略化された算術コーディングプロセスを使用し得る。たとえば、ビデオコーダは、バイパスモードとして固定コンテキストを有するCABACを用いてバイパスビン194をコーディングし得る。いくつかの例では、ビデオコーダは、バイパスコーディングモードとしてゴロムライスコーディングおよび/または指数ゴロムコードを使用してバイパスビン194をコーディングし得る。ビデオコーダは、たとえば、変換係数のブロック中でビンがどのくらい一様に分布しているかに基づいて、正規モードを使用すべきかバイパスモードを使用すべきかを決定し得る。いくつかの例では、ビデオコーダは、いくつかのビンを正規モードでコーディングし、他のビンをバイパスモードでコーディングするように事前構成され得る。
[0240]図31に示す例では、ビン190は、B1(ビン1)と、B2(ビン2)と、GR−EG(ゴロムライス−指数ゴロム)バイパスコード化ビンと、S(符号)と、cu_headerとを含み、それらのすべてはCU中で与えられ得る。ビン190は以下のシンタックス要素に対応し得る。B1はcoeff_abs_level_greater1_flagに対応し得、B2はcoeff_abs_level_greater2_flagに対応し得、GR−EGはcoeff_abs_level_minus3に対応し得、Sはcoeff_sign_flagに対応し得、cu_headerはCU中のすべての他のシンタックス要素に対応し得る。すなわち、概して、特定の変換係数のためのビン1は、特定の変換係数が1よりも大きい値を有するかどうかを識別し得る。同様に、特定の変換係数のためのビン2は、特定の変換係数が2よりも大きい値を有するかどうかを識別し得る。他の例では、ビン190を用いてより多いまたはより少ないシンタックス要素が表され得る。
[0241]上述のように、一例では、HEVC規格とともに使用するために提案されるものとして、ビデオコーダは、走査と呼ばれることがある、複数のコーディングパスにおいて変換係数をコーディングし得る。たとえば、ビデオコーダは、TU中の変換係数の有意性をコーディングするために完全TUに対して有意性マップ走査順序で第1のパスを実行し得る。ビデオコーダは、次いで、係数レベル走査順序で変換係数のサブセットのために3つの追加のパスを実行し得る。これらの3つのパスは、係数レベルの絶対値の第1のビン(ビン1)のための第1のパスと、係数レベルの絶対値の第2のビン(ビン2)のための第2のパスと、係数レベルの残りの値および係数レベルの符号のための第3のパスとを含み得る。ここでも、いくつかの例では、3つの係数レベルパスの各々は、上記で説明したように、走査順序でn個(たとえば、n=16)の連続係数のサブセットにおいて実行され得る。3つのパスが1つのサブセットにおいて完了したとき、ビデオコーダは、同じ3つのコーディングパスを実行することによって連続的に次のサブセットを処理し得る。このサブセットコーディング手法は、変換係数のレベルのためのコーディングの並列化を可能にし得る。
[0242]本開示の態様によれば、上述のように、ビデオコーダは、データの並べ替えのさらなる改善によって(たとえば、CABACなどのコンテキスト適応型コーディングプロセスを使用して)残差データコーディングの並列化とスループットとをさらに向上させ得る。たとえば、上記で説明したように、ビデオコーダは、(たとえば、走査順序に従って)サブセット中の変換係数の有意性をコーディングするために1つまたは複数のパスを実行し得る。ビデオコーダは、次いで、(たとえば、同じ走査順序に従って)サブセット中の係数の係数レベルをコーディングするために1つまたは複数の追加のパスを実行し得る。走査順序は、走査方向(順方向または逆方向)と走査パターン(たとえば、水平、垂直、対角、ジグザグなど)とによって特徴づけられ得る。概して、パスは、走査順序に従うサブセットまたは変換ユニット全体中の係数の走査を指し得る。サブセットが使用される例では、ビデオコーダは、サブセット単位でサブセットに対してパスを実行し得、サブセットはn個の変換係数(たとえば、連続走査順序でn=16個の連続係数)の任意のセットを含んでいる。さらに、ビデオコーダは、各サブセット内で連続的にパスを実行し得る。いくつかの例では、連続的に走査された係数を備える1次元サブセットの使用が使用され得るが、コーディングプロセスは、4×4サブブロックなど、サブブロックにも適用され得る。
[0243]一例では、上記で説明した3つのコーディングパスに加えて、ビデオコーダは、有意性情報のために第4のコーディングパスを実行し得る。すなわち、係数レベルのために上記で説明した3つのコーディングパスを実行することに加えて、ビデオコーダは、有意性情報をコーディングするために追加のコーディングパスを実行し得る。したがって、一例では、ビデオコーダは、以下の4つのパス、すなわち、すべて同じ走査順序での、(1)たとえば、有意性マップに関連する、変換係数のための有意係数フラグ値をコーディングすることと、(2)変換係数のためのレベル値のビン1とビン2とをコーディングすることと、(3)係数レベル値の残りのビンをコーディングすることと、(4)係数レベルの符号をコーディングすることとを実行し得る。ビデオコーダは、同じ走査順序で変換係数のための有意係数フラグおよびレベルを走査し得、走査順序は高い周波数の係数から低い周波数の係数に進む。
[0244]しかしながら、ビデオコーダが上記で説明した3つまたは4つのコーディングパスを実行するとき、ビデオコーダは、最終コーディングパス中にバイパスビン194とともにいくつかの正規ビン192をコーディングし得る。すなわち、図31に示す例では、正規ビンB2は、ビンストリングにおいてバイパスビンGR−EGおよびSでインターリーブされる。したがって、ビデオコーダは、最終コーディングパス中に正規モードとバイパスモードとの間で切り替わらなければならない。コーディングモードの間で切り替わることは、いくつかの事例では、コーディング性能に悪影響を及ぼし得る。
[0245]図32に、残差ビデオデータに関連する変換係数をコーディングするためのビン200の例示的な順序付けを示す。図31に示した例に関して説明したように、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、正規モード(たとえば、CABACまたは他のコンテキスト適応型モード)とバイパスモードとを含む2つの異なるコーディングモードを使用してビン200をコーディングし得る。バイパスモードはコンテキスト適応型でないモードであり得る。たとえば、バイパスモードは、固定コンテキストバイナリ算術コーディングモード、ゴロムライスコーディングモード、指数ゴロムコーディングモード、またはそれらの任意の組合せであり得る。図32に示す例では、ビデオコーダは、ビン202(影なしブロック)を正規モードでコーディングし得、ビン204(影つきブロック)をバイパスモードでコーディングし得る。正規モードでコーディングされるビン202は「正規ビン202」と呼ばれることがあり、バイパスモードでコーディングされるビン204は「バイパスビン204」と呼ばれることがある。
[0246]図32に示す例では、ビン200は、有意性情報と、B1(ビン1)と、B2(ビン2)と、GR−EG(ゴロムライス−指数ゴロム)と、S(符号)と、cu_headerとを含み、それらのすべては1つのコーディングユニット(CU)中で与えられ得る。ビン200は以下のシンタックス要素に対応し得る。SIGは有意性フラグに対応し得、B1はcoeff_abs_level_greater1_flagに対応し得、B2はcoeff_abs_level_greater2_flagに対応し得、GR−EGはcoeff_abs_level_minus3に対応し得、Sはcoeff_sign_flagに対応し得、cu_headerはCU中のすべての他のシンタックス要素に対応し得る。他の例では、ビン200を用いてより多いまたはより少ないシンタックス要素が表され得る。
[0247]図32に示す例では、ビデオコーダは、正規ビン202(すなわち、正規モードでコーディングされたビン)と(すなわち、バイパスモードでコーディングされたビン)バイパスビン204とをグループ化する方法でコーディングパスを実行し得る。すなわち、ビデオコーダは、両方ともバイパスモードでコーディングされる、符号(S)と残りのレベル(GR−EG)とをコーディングするためのパスを実行するより前に、両方とも正規モードでコーディングされる、有意性(SIG)と係数レベルの第1のビン(ビン1)および第2のビン(ビン2)とをコーディングするためのパスを実行し得る。このようにして、符号および残りのレベルのためのビンなど、バイパスコード化要素は一緒にグループ化され得る。すなわち、バイパスビンは、正規モードでコーディングされたビンによって分離されない連続コーディング順序であり得る。いくつかの例では、図31の例に関して説明したように、ビデオコーダは、上記で説明したように、走査順序でn個(たとえば、n=16)の連続係数のサブセット中のビン200に対してコーディングパスを実行し得る。ビデオコーダが変換係数の1つのサブセットをコーディングすることを完了したとき、ビデオコーダは、同じコーディングパスを実行することによって連続的に次のサブセットを処理し得る。
[0248]コーディング中にバイパスビン204を一緒にグループ化すると、バイパスビン204がコンテキストフェッチおよび適応を必要としないので、スループットが最大になり得る。さらに、ビデオコーダは、正規モードとバイパスモードとの間で切り替わる必要がない。その結果、多くのバイパスビン204が単一サイクルでコーディングされ得る。
[0249]本開示の態様によれば、ビデオコーダは、上記で説明したように、有意性情報コーディングパスと係数レベルコーディングパスとを実行し、ならびに正規コード化ビンとバイパスコード化ビンとをグループ化し得る。すなわち、たとえば、ビデオコーダは、図31に関して説明したように、最初に(たとえば、走査順序に従って)サブセット中の変換係数の有意性をコーディングし、その後、(たとえば、同じ走査順序に従って)サブセット中の係数の係数レベルをコーディングし得る。さらに、ビデオコーダは、図32に示すように、正規コード化ビンとバイパスコード化ビンとをグループ化し得る。
[0250]一例では、変換係数のブロック中の各サブセットについて、ビデオコーダは、以下のパス、すなわち、(1)ある走査順序に従ってサブセット中の係数の有意性をコーディングすることと、(2)その走査順序に従ってサブセット中の係数の係数レベルのビン1をコーディングすることと、(3)その走査順序に従ってサブセット中の係数の係数レベルのビン2をコーディングすることと、(4)その走査順序に従ってサブセット中のバイパスモードを使用するビン(たとえば、係数の係数レベルの絶対値の残りと係数レベルの符号と)をコーディングすることとを実行し得る。
[0251]上記の例では、変換係数のセット中の変換係数のための有意性情報が、第1のパスにおいて走査順序に従ってコーディングされる。変換係数のための情報の1つまたは複数のビン(たとえば、ビン1およびビン2)の第1のセットが、第1のパスとは異なる1つまたは複数の第2のパスにおいて走査順序に従ってコーディングされる。第1のセット中の1つまたは複数のビン(ビン1およびビン2)は、コーディングプロセス(たとえば、CABACプロセス)の第1のモード、たとえば、正規モードでコーディングされる。変換係数のための情報(たとえば、係数の係数レベルの残りの絶対値および符号)の1つまたは複数のビンの第2のセットが、第1および第2のパスとは異なる1つまたは複数の第3のパスにおいて走査順序に従ってコーディングされる。1つまたは複数のビンの第2のセットは、コーディングプロセスの第2のモード、たとえば、バイパスモードでコーディングされる。
[0252]別の例では、上記の図7〜図9に関して上記で説明したように、上記で説明した第4のパスは、2つの別個のパス(たとえば、レベルの残りの部分のためのパスと、レベルの符号のためのパスと)に分割され得る。すなわち、ビデオコーダは、以下のパス、すなわち、(1)変換係数のための有意係数フラグ値のコーディングと、(2)変換係数のためのレベル値のビン1をコーディングすることと、(3)変換係数のためのレベル値のビン2のコーディングすることと、(4)(たとえば、バイパスモードで)係数レベルの符号をコーディングすることと、(5)(たとえば、バイパスモードで)係数レベル値の残りのビンのコーディングすることとを実行し得、すべてのパスは同じ走査順序を使用する。
[0253]さらに他の例では、ビデオコーダは、変換係数をコーディングするためにより少ないパスを使用し得る。たとえば、ビデオコーダは、レベル情報と符号情報とが並列に処理される2パス走査を実行し得る。この例では、ビデオコーダは、以下のパス、すなわち、(1)正規ビン(たとえば、有意性、ビン1レベル、およびビン2レベル)をコーディングすることと、(2)バイパスビン(たとえば、残りのレベルおよび符号)をコーディングすることとを実行し得、各パスは同じ走査順序を使用する。
[0254]これらの例では、バイパスビンは一緒にグループ化される。すなわち、バイパスビンは、ビンストリング中で正規ビンによって分離されることなしにコーディングされる。他の例では、異なるビンがコンテキストコーディングまたはバイパスコーディングされ得る。そのような例では、ビデオコーダは、バイパスビンがグループ化されるように、バイパスビンより前に正規ビンがコーディングされる同様のコーディングパスを実行し得、またはその逆も同様である。いくつかの例では、上述のように、ビデオコーダは、ブロック中の最後有意係数から走査を開始し得る。
[0255]サブセット(たとえば、走査順序での16個の変換係数のサブセット)中のすべての変換係数データの処理は、コーディング並列化に利益を与え得る。すなわち、1つのサブセットがコーディングされている間、ビデオコーダは、次のサブセットのためのCABACコンテキストをも事前計算し得る。したがって、ビデオコーダは、前のサブセットがコーディングされ終わったとき、次のサブセットのコーディングを開始するための準備ができていることがある。また、データフェッチがサブセットのサイズ(たとえば、一度に16個の係数)に制限され、それは、いくつかのハードウェアアーキテクチャのための利益を有し得る。
[0256]ただし、上記で説明した走査は、TU中の変換係数のサブセットに対して実行されることに限定されない。たとえば、上記で説明した各コーディングパスは、TU全体(すなわち、TUの変換係数のすべて)を含む変換係数のセットについて実行され得る。この例では、各走査はTU全体に及び得る。したがって、一例では、ビデオコーダは、以下のパス、すなわち、(1)走査順序に従ってTU中の係数の有意性をコーディングすることと、(2)走査順序に従ってTU中の係数の係数レベルのビン1をコーディングすることと、(3)走査順序に従ってTU中の係数の係数レベルのビン2をコーディングすることと、(4)走査順序に従ってTU中のバイパスモードを使用するビン(たとえば、係数の係数レベルの絶対値の残りと係数レベルの符号と)をコーディングすることとを実行し得る。別の例では、上記で説明したように、ビデオコーダは、第4のパスを2つの別個のパス(たとえば、レベルの残りのためのパスと、レベルの符号のためのパスと)に分割し得る。この例では、バイパスビンは、依然として一緒にグループ化される。
[0257]コーディングパスが1つのTU全体に対して実行される例では、ビデオコーダは、サブセットサイズをTUサイズに本質的に等しくする。この手法は、(nが、たとえば、16であり得る、n個の係数の)比較的小さいサブセットについて上記で説明した並列化能力のいくつかを失い得る。しかしながら、TU全体に対してコーディングパスを実行することは、並列化の損失を上回り得る他の利益を有することがある。たとえば、残差データコーディングの終了時にTU中のバイパスビンのすべてを一緒にグループ化すると、多くのバイパスビンが単一サイクルでコーディングされ得るので、上記で説明したように、スループットが増加し得る。すなわち、ビデオコーダは、バイパスモードでコーディングされたビンをコーディングするより前に、正規モードでコーディングされたビンのすべてをコーディングし得る。
[0258]さらに、ビデオコーダがTU全体に対してコーディングパスを実行するとき、各シンタックス要素は、TU内の残りのシンタックス要素とは別個にコーディングされる。たとえば、最初に、ビデオコーダは、係数のための有意性情報のすべてをコーディングする。ビデオコーダは、次いで、係数レベルのビン1のすべてをコーディングし、その後、係数レベルのビン2のすべてをコーディングし、その後、バイパスビン(たとえば、2つのパスに分離されるかまたは同じパスにおいてコーディングされ得る、残りの係数レベルおよび符号)をコーディングする。したがって、TUのシンタックス要素は、他のシンタックス要素を用いたインターリーブ様式ではなく、他のシンタックス要素とは別個に、ビンストリング中で一緒に含まれ得る。シンタックス要素のインターリービングを回避することは投機的コーディングプロセスに利益を与え得る。すなわち、いくつかの事例では、ビデオコーダは(並列コーディングのために)投機的コーディングを実行し得る。そのような事例では、ビデオコーダは、値を事前計算するためにいくつかのビン値を推定し得る。ビデオコーダは、後続の(コーディングされていない)ビンのために必要とされる推定がより少なくなるので、事前に処理されるべきシンタックス要素を知ることから恩恵を受け得る。全TUについて各シンタックス要素が残りのシンタックス要素から分離されるとき、分離はTU中でそれの最大に達する。そのような事例では、ビデオコーダは、投機的コーディングを実行し、並列にコーディングされ得るビンの数を最大にし得る。
[0259]図33は、残差ビデオデータに関連する変換係数をコーディングするための例示的なビデオコーディングプロセスを示すフローチャートである。図33に示す例について、概して(ビデオエンコーダ20および/またはビデオデコーダ30などの)ビデオコーダに関して説明するが、本技法は、様々な他のプロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などハードウェアベースのコーディングユニットなどによって実行され得ることを理解されたい。さらに、図33に示す例は概して「変換係数」に言及するが、いくつかの事例では、ビデオコーダは、残差データに対して変換を実行せず、代わりに(たとえば、「変換スキップモード」を実行するときに)残差値に対して直接量子化を実行し得ることを理解されたい。したがって、「変換係数」は、概して、変換された残差ビデオデータ、ならびに変換されない残差ビデオデータを含み得る。
[0260]図33に示す例では、ビデオコーダは、1つまたは複数の第1のパスにおいて走査順序に従って残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報(たとえば、有意性マップ)をコーディングする(210)。いくつかの例では、変換係数のセットは、TU中の変換係数のすべてよりも少ない変換係数を含む変換係数のサブセットに対応し得る。たとえば、サブセットはn個の係数を含み得、ただし、nはTU中の変換係数の数よりも小さい。一例では、nは16個の変換係数であり得る。他の例では、変換係数のセットは、TU中の変換係数の全セット(すなわち、TU中の変換係数のすべて)に対応し得る。
[0261]ビデオコーダはまた、1つまたは複数の第2のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングし、1つまたは複数の第2のパスは1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの第1のセットはコーディングプロセスの第1のモードでコーディングされる(212)。たとえば、情報の1つまたは複数のビンの第1のセットは、変換係数に関連するレベル情報を含み得る。さらに、コーディングプロセスの第1のモードは、CABACなどのコンテキスト適応型コーディングプロセスの正規モードであり得る。したがって、ビデオコーダは、変換係数に関連するあるレベル情報を、有意性情報と同じ走査順序で、正規モードでコーディングし得る。いくつかの例では、正規コーディングモードは、有意性情報をコーディングするためにも使用され得る。
[0262]さらに、ビデオコーダは、1つまたは複数の第3のパスにおいて走査順序に従って変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングし、1つまたは複数の第3のパスは1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの第2のセットはコーディングプロセスの第2のモードでコーディングされる(214)。たとえば、情報の1つまたは複数のビンの第2のセットは、1つまたは複数のビンの第1のセット中に含まれない変換係数に関連する残りのレベル情報を含み得る。さらに、コーディングプロセスの第2のモードは、CABACなどのコンテキスト適応型コーディングプロセスのバイパスモードであり得る。バイパスモードは固定コンテキストを使用し得る。いくつかの例では、バイパスビンは、ゴロムライスコーディングおよび/または指数ゴロムコードを使用してコーディングされ得る。したがって、ビデオコーダは、変換係数に関連するある残りのレベル情報を、有意性情報および1つまたは複数のビンの第1のセットと同じ走査順序で、しかしバイパスモードでコーディングし得る。すなわち、バイパスモードを使用してコーディングされたビンは、正規モードでコーディングされたビンによって分離されることなしにコーディング順序でグループ化され得る。
[0263]したがって、少なくとも1つの例では、ビデオコーダは、残差ビデオデータのブロックに関連する変換係数をコーディングするために4つのパスコーディングプロセスを実行し得る。たとえば、図7〜図9に関して上記で説明したように、ビデオコーダはパスのために以下を実行し得る。
1.サブセット中の係数の有意性をコーディングする。
2.サブセット中の係数の係数レベルのビン1をコーディングする。
3.サブセット中の係数の係数レベルのビン2をコーディングする。
4.サブセット中のバイパスモードを使用するビン(たとえば、係数の係数レベルの絶対値の残りと係数レベルの符号と)をコーディングする。
[0264]この例では、1つまたは複数のビンの第1のセットはビン1およびビン2を含み得、ビデオコーダは、(たとえば、CABAC、CAVLC、PIPEなどを使用して)正規モードを使用してそれらのビン1およびビン2をコーディングするが、バイパスモードで残りのビンをコーディングし得る。さらに、1つまたは複数のビンの第2のセットは、バイパスモードを使用するビンを含み得る。すなわち、ビデオコーダは、ビン3〜ビンn(ビンnが最終ビンを表す)を一緒にグループ化し、それらのビンをシングルパスでコーディングし得る。他の例では、ビデオコーダは、変換係数をコーディングするためにより多いまたはより少ないパスを使用し得る。たとえば、ビデオコーダは、単一の第1のパスにおいて1つまたは複数のビンの第1のセットをコーディングし、第2のパスにおいて1つまたは複数のビンの第2のセットをコーディングし得る。別の例では、上記で説明した第4のパスは(符号と残りのレベルとのために)2つの分離されたパスに分割され得る。
[0265]第2のコーディングモード(たとえば、バイパスビン)を使用してコーディングされたビンをグループ化することはコーディング効率およびスループットを高め得る。たとえば、(たとえば、コンテキスト適応型コーディングのために必要とされるように)各ビンが符号化された後にコンテキストモデルが更新されるのを待つ必要があるのではなく、バイパスビンは、(たとえば、バイパス符号化のために使用される固定の確率により)連続して直ちにコーディングされ得る。さらに、バイパスビンの1つのセットがコーディングされている間、ビデオコーダは、バイパスビンの次のセットのためのコンテキストを事前計算し得る。したがって、前のビンが完了したとき、ビデオコーダはコーディングプロセスを開始するための準備ができている。
[0266]上述のように、変換係数のセットは、TU中の変換係数のすべてよりも少ない変換係数を含む変換係数のサブセットに対応し得る。そのような例では、いくつかのハードウェアアーキテクチャのための利益があり得る。たとえば、サブセット中の変換係数をコーディングすることは、コーディング中に記憶され、アクセスされなければならないデータがより少なくなるので、メモリ使用量に関してより効率的であり得る。さらに、ビデオコーダは、サブセットのうちの1つまたは複数を並列にコーディングし得る。
[0267]他の例では、変換係数のセットは、TU中の変換係数の全セット(すなわち、TU中の変換係数のすべて)に対応し得る。TU全体の変換係数をコーディングすると、何らかの並列化互換性が失われることになり得る。しかしながら、TUの変換係数をコーディングすることにはいくつかの利益があり得る。たとえば、残差データコーディングの終了時にTU全体のバイパスビンのすべてを一緒にグループ化すると、上記で説明したように、スループットが増加し得る。さらに、ビデオコーダは、上記で説明したように、いくつかのシンタックス要素の投機的コーディングを実行し得る。
[0268]図33に関して図示し説明したステップは単に一例として与えられたものにすぎないことを理解されたい。すなわち、図33の方法のステップは必ずしも図33に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
[0269]1つまたは複数の例では、本開示において説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、それらの機能は、コンピュータ可読命令またはコードの形態でソフトウェアを実行する、1つまたは複数のプロセッサなど、ハードウェアベースの処理ユニットによって実行され得る。そのような命令またはコードは、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形の非一時的媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0270]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD−ROMを備えることができ、あるいは光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイスを含む、任意の他のソリッドステート光学または磁気データ記憶媒体を備えることができ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、有形コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
[0271]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
[0272]本開示の技法は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスまたは装置によって実行され得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。さらに、そのような技法は、集積回路(IC)またはICのセット(たとえば、チップセット)によって実装され得る。本開示の技法を実行するように構成されたデバイスは、上述のデバイスのいずれかを含み得、場合によっては、ハードウェアと、ソフトウェアと、ファームウェアとの組合せによって形成され得る、ビデオエンコーダまたはビデオデコーダ、または複合ビデオエンコーダデコーダ、すなわち、ビデオコーデックであり得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明することがあるが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0273]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法であって、
1つまたは複数の第1のパスにおいて走査順序に従って前記残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングすることと、
1つまたは複数の第2のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングすることと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの前記第1のセットはコーディングプロセスの第1のモードでコーディングされ、
1つまたは複数の第3のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングすることと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの前記第2のセットは前記コーディングプロセスの第2のモードでコーディングされる、
を備える方法。
[2] 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、[1]に記載の方法。
[3] 前記CABACプロセスの前記正規モードは、ビンをコーディングするために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンをコーディングするために固定の確率を使用する、[1]に記載の方法。
[4] ビンの前記第1のセットは、変換係数の前記セット中の前記変換係数の係数レベルの第1のビンと第2のビンとを含み、ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の残りの係数レベルのためのビンを含む、[1]に記載の方法。
[5] ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の前記係数レベルの符号のためのビンを含む、[1]に記載の方法。
[6] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットに対応する、[1]に記載の方法。
[7] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットのすべてよりも少ない変換係数を備えるサブセットに対応する、[1]に記載の方法。
[8] 前記TU中の変換係数の複数のサブセットの各々の前記コーディングを繰り返すことをさらに備え、各サブセットは、前記TU中の変換係数の前記全セットのすべてよりも少ない変換係数を備える、[7]に記載の方法。
[9] 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、[7]に記載の方法。
[10] 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、[7]に記載の方法。
[11] 前記変換係数の有意性をコーディングすることは、走査順序に従って有意性をコーディングすることを備え、1つまたは複数のビンの前記第1および第2のセットをコーディングすることは、前記走査順序に従って1つまたは複数のビンの前記第1および第2のセットをコーディングすることを備える、[7]に記載の方法。
[12] 情報の1つまたは複数のビンの前記第1のセットをコーディングすることは、前記変換係数の前記レベルの第1のビンと第2のビンとをコーディングすることを備え、
情報の1つまたは複数のビンの前記第2のセットをコーディングすることは、前記変換係数の前記レベルの残りのビンと前記変換係数の前記レベルの符号とをコーディングすることを備える、
[7]に記載の方法。
[13] コーディングすることは符号化することを備え、符号化することは、符号化されたビットストリーム中に、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を含めることを備える、[1]に記載の方法。
[14] コーディングすることは復号することを備え、復号することは、符号化されたビットストリーム中で、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を受信することを備える、[1]に記載の方法。
[15] 復号することは、
前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す前記情報からビデオデータのブロックのための変換係数を決定することと、
残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用することと、
ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成することと、
をさらに備える、[14]に記載の方法。
[16] 残差ビデオデータに関連する変換係数をコーディングするための装置であって、
1つまたは複数の第1のパスにおいて走査順序に従って前記残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングすることと、
1つまたは複数の第2のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングすることと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの前記第1のセットはコーディングプロセスの第1のモードでコーディングされ、
1つまたは複数の第3のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングすることと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの前記第2のセットは前記コーディングプロセスの第2のモードでコーディングされる、
を行うように構成された1つまたは複数のプロセッサを備える装置。
[17] 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセス正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、[16]に記載の装置。
[18] 前記CABACプロセスの前記正規モードは、ビンをコーディングするために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンをコーディングするために固定の確率を使用する、[16]に記載の装置。
[19] ビンの前記第1のセットは、変換係数の前記セット中の前記変換係数の係数レベルの第1のビンと第2のビンとを含み、ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の残りの係数レベルのためのビンを含む、[16]に記載の装置。
[20] ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の前記係数レベルの符号のためのビンを含む、[16]に記載の装置。
[21] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットに対応する、[16]に記載の装置。
[22] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットのすべてよりも少ない変換係数を備えるサブセットに対応する、[16]に記載の装置。
[23] 前記1つまたは複数のプロセッサは、前記TU中の変換係数の複数のサブセットの各々の前記コーディングを繰り返すようにさらに構成され、各サブセットは、前記TU中の変換係数の前記全セットのすべてよりも少ない変換係数を備える、[22]に記載の装置。
[24] 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、[22]に記載の装置。
[25] 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、[22]に記載の装置。
[26] 前記変換係数の有意性をコーディングするために、前記1つまたは複数のプロセッサは、走査順序に従って有意性をコーディングするように構成され、1つまたは複数のビンの前記第1および第2のセットをコーディングするために、前記1つまたは複数のプロセッサは、前記走査順序に従って1つまたは複数のビンの前記第1および第2のセットをコーディングするように構成された、[22]に記載の装置。
[27] 情報の1つまたは複数のビンの前記第1のセットをコーディングするために、前記1つまたは複数のプロセッサは、前記変換係数の前記レベルの第1のビンと第2のビンとをコーディングするように構成され、
情報の1つまたは複数のビンの前記第2のセットをコーディングするために、前記1つまたは複数のプロセッサは、前記変換係数の前記レベルの残りのビンと前記変換係数の前記レベルの符号とをコーディングするように構成された、
[22]に記載の装置。
[28] コーディングするために、前記1つまたは複数のプロセッサは符号化するように構成され、符号化することは、符号化されたビットストリーム中に、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を含めることを備える、[16]に記載の装置。
[29] コーディングするために、前記1つまたは複数のプロセッサは復号するように構成され、復号することは、符号化されたビットストリーム中で、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を受信することを備える、[16]に記載の装置。
[30] 復号するために、前記1つまたは複数のプロセッサは、
前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す前記情報からビデオデータのブロックのための変換係数を決定することと、
残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用することと、
ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成することと、
を行うようにさらに構成された、[29]に記載の装置。
[31] 残差ビデオデータに関連する変換係数をコーディングするための装置であって、
1つまたは複数の第1のパスにおいて走査順序に従って前記残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングする手段と、
1つまたは複数の第2のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングする手段と、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの前記第1のセットはコーディングプロセスの第1のモードでコーディングされ、
1つまたは複数の第3のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングする手段と、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの前記第2のセットは前記コーディングプロセスの第2のモードでコーディングされる、
を備える装置。
[32] 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、[31]に記載の装置。
[33] 前記CABACプロセスの前記正規モードは、ビンをコーディングするために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンをコーディングするために固定の確率を使用する、[31]に記載の装置。
[34] ビンの前記第1のセットは、変換係数の前記セット中の前記変換係数の係数レベルの第1のビンと第2のビンとを含み、ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の残りの係数レベルのためのビンを含む、[31]に記載の装置。
[35] ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の前記係数レベルの符号のためのビンを含む、[31]に記載の装置。
[36] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットに対応する、[31]に記載の装置。
[37] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットのすべてよりも少ない変換係数を備えるサブセットに対応する、[31]に記載の装置。
[38] 前記TU中の変換係数の複数のサブセットの各々の前記コーディングを繰り返す手段をさらに備え、各サブセットは、前記TU中の変換係数の前記全セットのすべてよりも少ない変換係数を備える、[37]に記載の装置。
[39] 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、[37]に記載の装置。
[40] 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、[37]に記載の装置。
[41] 前記変換係数の有意性をコーディングする手段は、走査順序に従って有意性をコーディングする手段を備え、1つまたは複数のビンの前記第1および第2のセットをコーディングする手段は、前記走査順序に従って1つまたは複数のビンの前記第1および第2のセットをコーディングする手段を備える、[37]に記載の装置。
[42] 情報の1つまたは複数のビンの前記第1のセットをコーディングする手段は、前記変換係数の前記レベルの第1のビンと第2のビンとをコーディングする手段を備え、
情報の1つまたは複数のビンの前記第2のセットをコーディングする手段は、前記変換係数の前記レベルの残りのビンと前記変換係数の前記レベルの符号とをコーディングする手段を備える、
[37]に記載の装置。
[43] コーディングする手段は符号化する手段を備え、符号化する手段は、符号化されたビットストリーム中に、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を含める手段を備える、[31]に記載の装置。
[44] コーディングする手段は復号する手段を備え、復号する手段は、符号化されたビットストリーム中で、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を受信する手段を備える、[31]に記載の装置。
[45] 復号する手段は、
前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す前記情報からビデオデータのブロックのための変換係数を決定する手段と、
残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用する手段と、
ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成する手段と、
をさらに備える、[44]に記載の装置。
[46] 命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、1つまたは複数のプロセッサに、
1つまたは複数の第1のパスにおいて走査順序に従って前記残差ビデオデータに関連する変換係数のセット中の変換係数の有意性情報をコーディングすることと、
1つまたは複数の第2のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第1のセットをコーディングすることと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは異なり、1つまたは複数のビンの前記第1のセットはコーディングプロセスの第1のモードでコーディングされ、
1つまたは複数の第3のパスにおいて前記走査順序に従って前記変換係数のための情報の1つまたは複数のビンの第2のセットをコーディングすることと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは異なり、1つまたは複数のビンの前記第2のセットは前記コーディングプロセスの第2のモードでコーディングされる、
を行わせる、非一時的コンピュータ可読記憶媒体。
[47] 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、[46]に記載の非一時的コンピュータ可読記憶媒体。
[48] 前記CABACプロセスの前記正規モードは、ビンをコーディングするために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンをコーディングするために固定の確率を使用する、[46]に記載の非一時的コンピュータ可読記憶媒体。
[49] ビンの前記第1のセットは、変換係数の前記セット中の前記変換係数の係数レベルの第1のビンと第2のビンとを含み、ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の残りの係数レベルのためのビンを含む、[46]に記載の非一時的コンピュータ可読記憶媒体。
[50] ビンの前記第2のセットは、変換係数の前記セット中の前記変換係数の前記係数レベルの符号のためのビンを含む、[46]に記載の非一時的コンピュータ可読記憶媒体。
[51] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットに対応する、[46]に記載の非一時的コンピュータ可読記憶媒体。
[52] 変換係数の前記セットは、変換ユニット(TU)中の変換係数の全セットのすべてよりも少ない変換係数を備えるサブセットに対応する、[46]に記載の非一時的コンピュータ可読記憶媒体。
[53] 前記1つまたは複数のプロセッサに、前記TU中の変換係数の複数のサブセットの各々の前記コーディングを繰り返すことを行わせる命令をさらに備え、各サブセットは、前記TU中の変換係数の前記全セットのすべてよりも少ない変換係数を備える、[52]に記載の非一時的コンピュータ可読記憶媒体。
[54] 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、[52]に記載の非一時的コンピュータ可読記憶媒体。
[55] 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、[52]に記載の非一時的コンピュータ可読記憶媒体。
[56] 前記1つまたは複数のプロセッサに、前記変換係数の有意性をコーディングすることを行わせる前記命令は、走査順序に従って有意性がコーディングされるようにする命令を備え、
前記1つまたは複数のプロセッサに、1つまたは複数のビンの前記第1および第2のセットをコーディングすることを行わせる前記命令は、前記走査順序に従って1つまたは複数のビンの前記第1および第2のセットがコーディングされるようにする命令を備える、[52]に記載の非一時的コンピュータ可読記憶媒体。
[57] 前記1つまたは複数のプロセッサに、情報の1つまたは複数のビンの前記第1のセットをコーディングすることを行わせる前記命令は、前記1つまたは複数のプロセッサに、前記変換係数の前記レベルの第1のビンと第2のビンとをコーディングする行わせる命令を備え、
前記1つまたは複数のプロセッサに、情報の1つまたは複数のビンの前記第2のセットをコーディングすることを行わせる前記命令は、前記1つまたは複数のプロセッサに、前記変換係数の前記レベルの残りのビンと前記変換係数の前記レベルの符号とをコーディングすることを行わせる命令を備える、
[52]に記載の非一時的コンピュータ可読記憶媒体。
[58] コーディングすることは符号化することを備え、前記命令は、前記1つまたは複数のプロセッサに、符号化されたビットストリーム中に、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を含めることを行わせる、[46]に記載の非一時的コンピュータ可読記憶媒体。
[59] コーディングすることは復号することを備え、前記命令は、前記1つまたは複数のプロセッサに、符号化されたビットストリーム中で、前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す情報を受信することを行わせる、[46]に記載の非一時的コンピュータ可読記憶媒体。
[60] 前記命令は、前記1つまたは複数のプロセッサに、
前記有意性情報と、1つまたは複数のビンの前記第1のセットと、1つまたは複数のビンの前記第2のセットとを表す前記情報からビデオデータのブロックのための変換係数を決定することと、
残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用することと、
ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成することと、
をさらに行わせる、[59]に記載の非一時的コンピュータ可読記憶媒体。

Claims (52)

  1. ビデオ復号プロセスにおいて残差ビデオデータに関連する変換係数を復号するための装置が実行する方法であって、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える前記残差ビデオデータに関連する変換係数のサブセットを復号することを備え、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、復号中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを復号することは、
    1つまたは複数の第1のパスにおいて復号プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を復号することと、
    前記変換係数のサブセットの前記有意性情報を前記復号することの後に、1つまたは複数の第2のパスにおいて前記復号プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを、前記サブセットの前記復号された有意性情報と、前記サブセットのための復号された第1のビンと、前記サブセットのための復号された第2のビンとが前記サブセットのために一緒にグループ化されるように、復号することと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり
    1つまたは複数の第3のパスにおいて前記復号プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を復号することと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個である、
    を備える、方法。
  2. ビデオ符号化プロセスにおいて残差ビデオデータに関連する変換係数を符号化するための装置が実行する方法であって、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える前記残差ビデオデータに関連する変換係数のサブセットを符号化することと、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、符号化中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを符号化することは、
    1つまたは複数の第1のパスにおいて符号化プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を符号化することと、
    1つまたは複数の第2のパスにおいて前記符号化プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを符号化することと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり、前記符号化された有意性情報と、前記符号化された第1のビンおよび前記符号化された第2のビンとは一緒にグループ化され、
    1つまたは複数の第3のパスにおいて前記符号化プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を符号化することと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個であり、
    符号化されたビットストリーム中に、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を含めることと、
    を備える、方法。
  3. 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、請求項1または2に記載の方法。
  4. 前記CABACプロセスの前記正規モードは、ビンを復号するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを復号するために固定の確率を使用する、請求項3に記載の方法。
  5. 前記ブロック中の変換係数の複数のサブセットの各々の前記復号を繰り返すことをさらに備え、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項1に記載の方法。
  6. 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、請求項1または2に記載の方法。
  7. 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、請求項1または2に記載の方法。
  8. 前記1つまたは複数の第1のパスの前記有意性情報と、前記1つまたは複数の第2のパスの前記復号された第1のビンおよび前記復号された第2のビンとは、前記サブセットの復号のために一緒にグループ化される、請求項1に記載の方法。
  9. 復号することは、符号化されたビットストリーム中で、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を受信することを備える、請求項1に記載の方法。
  10. 復号することは、
    前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す前記情報からビデオデータのブロックのための変換係数を決定することと、
    残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用することと、
    ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成することと、
    をさらに備える、請求項9に記載の方法。
  11. 残差ビデオデータに関連する変換係数を復号するための装置であって、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える前記残差ビデオデータに関連する変換係数のサブセットを復号することを行うように構成された1つまたは複数のプロセッサを備え、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、復号中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを復号するために、前記1つまたは複数のプロセッサは、
    1つまたは複数の第1のパスにおいて復号プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を復号することと、
    前記変換係数のサブセットの前記有意性情報を前記復号することの後に、1つまたは複数の第2のパスにおいて前記復号プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを、前記サブセットの前記復号された有意性情報と、前記サブセットのための復号された第1のビンと、前記サブセットのための復号された第2のビンとが前記サブセットのために一緒にグループ化されるように、復号することと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり
    1つまたは複数の第3のパスにおいて前記復号プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を復号することと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個である、
    を行うように構成される、装置。
  12. 残差ビデオデータに関連する変換係数を符号化するための装置であって、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える前記残差ビデオデータに関連する変換係数のサブセットを符号化することを行うように構成された1つまたは複数のプロセッサを備え、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、符号化中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを符号化するために、前記1つまたは複数のプロセッサは、
    1つまたは複数の第1のパスにおいて符号化プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を符号化することと、
    1つまたは複数の第2のパスにおいて前記符号化プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを符号化することと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり、前記符号化された有意性情報と、前記符号化された第1のビンと、前記符号化された第2のビンとは一緒にグループ化され、
    1つまたは複数の第3のパスにおいて前記符号化プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を符号化することと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個であり、
    符号化されたビットストリーム中に、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を含めることと、
    を行うように構成される、装置。
  13. 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、請求項11または12に記載の装置。
  14. 前記CABACプロセスの前記正規モードは、ビンを復号するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを復号するために固定の確率を使用する、請求項13に記載の装置。
  15. 前記1つまたは複数のプロセッサは、前記ブロック中の変換係数の複数のサブセットの各々の前記復号を繰り返すようにさらに構成され、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項11に記載の装置。
  16. 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、請求項11または12に記載の装置。
  17. 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、請求項11または12に記載の装置。
  18. 前記1つまたは複数の第1のパスの前記有意性情報と、前記1つまたは複数の第2のパスの前記復号された第1のビンおよび前記復号された第2のビンとは、前記サブセット復号のために一緒にグループ化される、請求項11に記載の装置。
  19. 復号することは、符号化されたビットストリーム中で、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を受信することを備える、請求項11に記載の装置。
  20. 復号するために、前記1つまたは複数のプロセッサは、
    前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す前記情報からビデオデータのブロックのための変換係数を決定することと、
    残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用することと、
    ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成することと、
    を行うようにさらに構成された、請求項19に記載の装置。
  21. 残差ビデオデータに関連する変換係数を復号するための装置であって、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える前記残差ビデオデータに関連する変換係数のサブセットを復号する手段を備え、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、復号中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを復号する前記手段は、
    1つまたは複数の第1のパスにおいて復号プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を復号する手段と、
    前記変換係数のサブセットの前記有意性情報を前記復号することの後に、1つまたは複数の第2のパスにおいて前記復号プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを、前記サブセットの前記復号された有意性情報と、前記サブセットのための復号された第1のビンと、前記サブセットのための復号された第2のビンとが前記サブセットのために一緒にグループ化されるように、復号する手段と、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり
    1つまたは複数の第3のパスにおいて前記復号プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を復号する手段と、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個である、
    を備える、装置。
  22. 残差ビデオデータに関連する変換係数を符号化するための装置であって、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える前記残差ビデオデータに関連する変換係数のサブセットを符号化する手段を備え、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、符号化中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを符号化する前記手段は、
    1つまたは複数の第1のパスにおいて符号化プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を符号化する手段と、
    1つまたは複数の第2のパスにおいて前記符号化プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを符号化する手段と、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり、前記符号化された有意性情報と、前記符号化された第1のビンと、前記符号化された第2のビンとは一緒にグループ化され、
    1つまたは複数の第3のパスにおいて前記符号化プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を符号化する手段と、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個であり、
    符号化されたビットストリーム中に、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を含める手段と、
    を備える、装置。
  23. 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、請求項21または22に記載の装置。
  24. 前記CABACプロセスの前記正規モードは、ビンを復号するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを復号するために固定の確率を使用する、請求項23に記載の装置。
  25. 前記ブロック中の変換係数の複数のサブセットの各々の前記復号を繰り返す手段をさらに備え、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項21に記載の装置。
  26. 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、請求項21または22に記載の装置。
  27. 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、請求項21または22に記載の装置。
  28. 前記1つまたは複数の第1のパスの前記有意性情報と、前記1つまたは複数の第2のパスの前記復号された第1のビンおよび前記復号された第2のビンとは、前記サブセットの復号のために一緒にグループ化される、請求項21に記載の装置。
  29. 復号する手段は、符号化されたビットストリーム中で、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を受信する手段を備える、請求項21に記載の装置。
  30. 復号する手段は、
    前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す前記情報からビデオデータのブロックのための変換係数を決定する手段と、
    残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用する手段と、
    ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成する手段と、
    をさらに備える、請求項29に記載の装置。
  31. 命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、1つまたは複数のプロセッサに、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える残差ビデオデータに関連する変換係数のサブセットを復号することを行わせ、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、復号中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを復号するために、前記命令は、前記1つまたは複数のプロセッサに、
    1つまたは複数の第1のパスにおいて復号プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を復号することと、
    前記変換係数のサブセットの前記有意性情報を前記復号することの後に、1つまたは複数の第2のパスにおいて前記復号プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを、前記変換係数の前記サブセットの前記復号された有意性情報と、前記サブセットのための復号された第1のビンと、前記サブセットのための復号された第2のビンとが前記サブセットのために一緒にグループ化されるように、復号することと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり
    1つまたは複数の第3のパスにおいて前記復号プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を復号することと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個である、
    を行わせる、非一時的コンピュータ可読記憶媒体。
  32. 命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、1つまたは複数のプロセッサに、
    複数のパスを使用して、ブロックのすべての変換係数よりも少ない変換係数を備える残差ビデオデータに関連する変換係数のサブセットを符号化することを行わせ、前記複数のパスの各パスは、走査順序での前記変換係数のサブセットの走査を備え、前記走査順序は、符号化中に前記変換係数のサブセットが処理される順序を備え、前記変換係数のサブセットを符号化するために、前記命令は、前記1つまたは複数のプロセッサに、
    1つまたは複数の第1のパスにおいて符号化プロセスの第1のモードを使用して前記変換係数のサブセットの有意性情報を符号化することと、
    1つまたは複数の第2のパスにおいて前記符号化プロセスの前記第1のモードを使用して前記変換係数のサブセットのための前記変換係数のレベルの第1のビンおよび第2のビンを符号化することと、前記1つまたは複数の第2のパスは前記1つまたは複数の第1のパスとは別個であり、前記符号化された有意性情報と、前記符号化された第1のビンと、前記符号化された第2のビンとは一緒にグループ化され、
    1つまたは複数の第3のパスにおいて前記符号化プロセスの第2のモードを使用して前記変換係数のサブセットのための前記変換係数の前記レベルの残りのビンおよび前記変換係数の前記レベルの符号を符号化することと、前記1つまたは複数の第3のパスは前記1つまたは複数の第1および第2のパスとは別個であり、
    符号化されたビットストリーム中に、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を含めることと、
    を行わせる、非一時的コンピュータ可読記憶媒体。
  33. 前記第1のモードはコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスの正規モードであり、前記第2のモードは前記CABACプロセスのバイパスモードである、請求項31または32に記載の非一時的コンピュータ可読記憶媒体。
  34. 前記CABACプロセスの前記正規モードは、ビンを復号するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを復号するために固定の確率を使用する、請求項33に記載の非一時的コンピュータ可読記憶媒体。
  35. 前記1つまたは複数のプロセッサに、前記ブロック中の変換係数の複数のサブセットの各々の前記復号を繰り返すことを行わせる命令をさらに備え、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項31に記載の非一時的コンピュータ可読記憶媒体。
  36. 前記サブセットの各々は、前記走査順序で16個の連続係数を備える、請求項31または32に記載の非一時的コンピュータ可読記憶媒体。
  37. 前記サブセットの各々は、前記走査順序で変換係数のサブブロックを備える、請求項31または32に記載の非一時的コンピュータ可読記憶媒体。
  38. 前記1つまたは複数の第1のパスの前記有意性情報と、前記1つまたは複数の第2のパスの前記復号された第1のビンおよび前記復号された第2のビンとは、前記サブセットの復号のために一緒にグループ化される、請求項31に記載の非一時的コンピュータ可読記憶媒体。
  39. 前記命令は、前記1つまたは複数のプロセッサに、符号化されたビットストリーム中で、前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す情報を受信することを行わせる、請求項31に記載の非一時的コンピュータ可読記憶媒体。
  40. 前記命令は、前記1つまたは複数のプロセッサに、
    前記有意性情報、前記変換係数の前記レベルの前記第1のビンおよび前記第2のビン、前記変換係数の前記レベルの前記残りのビンおよび前記変換係数の前記レベルの前記符号を表す前記情報からビデオデータのブロックのための変換係数を決定することと、
    残差ビデオデータのブロックを生成するために前記決定された変換係数に逆変換を適用することと、
    ビデオデータの再構成ブロックを形成するために残差ビデオデータの前記ブロックをビデオデータの予測ブロックと合成することと、
    をさらに行わせる、請求項39に記載の非一時的コンピュータ可読記憶媒体。
  41. 前記CABACプロセスの前記正規モードは、ビンを符号化するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを符号化するために固定の確率を使用する、請求項3に記載の方法。
  42. 前記ブロック中の変換係数の複数のサブセットの各々の前記符号化を繰り返すことをさらに備え、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項2に記載の方法。
  43. 前記1つまたは複数の第1のパスの前記有意性情報前記1つまたは複数の第2のパスの前記符号化された第1のビンおよび前記符号化された第2のビンとは、前記サブセットの符号化のために一緒にグループ化される、請求項2に記載の方法。
  44. 前記CABACプロセスの前記正規モードは、ビンを符号化するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを符号化するために固定の確率を使用する、請求項13に記載の装置。
  45. 前記1つまたは複数のプロセッサは、前記ブロック中の変換係数の複数のサブセットの各々の前記符号化を繰り返すようにさらに構成され、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項12に記載の装置。
  46. 前記1つまたは複数の第1のパスの前記有意性情報前記1つまたは複数の第2のパスの前記符号化された第1のビンおよび前記符号化された第2のビンとは、前記サブセットの符号化のために一緒にグループ化される、請求項12に記載の装置。
  47. 前記CABACプロセスの前記正規モードは、ビンを符号化するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを符号化するために固定の確率を使用する、請求項23に記載の装置。
  48. 前記ブロック中の変換係数の複数のサブセットの各々の前記符号化を繰り返す手段をさらに備え、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項22に記載の装置。
  49. 前記1つまたは複数の第1のパスの前記有意性情報前記1つまたは複数の第2のパスの前記符号化された第1のビンおよび前記符号化された第2のビンとは、前記サブセットの符号化のために一緒にグループ化される、請求項22に記載の装置。
  50. 前記CABACプロセスの前記正規モードは、ビンを符号化するために適応コンテキストモデルを使用し、前記CABACプロセスの前記バイパスモードは、ビンを符号化するために固定の確率を使用する、請求項33に記載の非一時的コンピュータ可読記憶媒体。
  51. 前記1つまたは複数のプロセッサに、前記ブロック中の変換係数の複数のサブセットの各々の前記符号化を繰り返すことを行わせる命令をさら備え、各サブセットは、前記ブロック中の変換係数の全セットのすべてよりも少ない変換係数を備える、請求項32に記載の非一時的コンピュータ可読記憶媒体。
  52. 前記1つまたは複数の第1のパスの前記有意性情報前記1つまたは複数の第2のパスの前記符号化された第1のビンおよび前記符号化された第2のビンとは、前記サブセットの符号化のために一緒にグループ化される、請求項32に記載の非一時的コンピュータ可読記憶媒体。
JP2014525076A 2011-08-05 2012-08-03 ビデオコーディングのための変換係数のコーディング Active JP5951772B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161515711P 2011-08-05 2011-08-05
US61/515,711 2011-08-05
US13/413,497 2012-03-06
US13/413,497 US20120230418A1 (en) 2011-03-08 2012-03-06 Coding of transform coefficients for video coding
US13/565,621 US9106913B2 (en) 2011-03-08 2012-08-02 Coding of transform coefficients for video coding
US13/565,621 2012-08-02
PCT/US2012/049518 WO2013022748A1 (en) 2011-08-05 2012-08-03 Coding of transform coefficients for video coding

Publications (2)

Publication Number Publication Date
JP2014527358A JP2014527358A (ja) 2014-10-09
JP5951772B2 true JP5951772B2 (ja) 2016-07-13

Family

ID=47668826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014525076A Active JP5951772B2 (ja) 2011-08-05 2012-08-03 ビデオコーディングのための変換係数のコーディング

Country Status (14)

Country Link
US (1) US9106913B2 (ja)
EP (1) EP2740269A1 (ja)
JP (1) JP5951772B2 (ja)
KR (1) KR101656964B1 (ja)
CN (1) CN103718554B (ja)
AU (1) AU2012294683B2 (ja)
BR (1) BR112014002770B1 (ja)
CA (1) CA2844138C (ja)
IL (1) IL230364A (ja)
MX (1) MX2014001422A (ja)
MY (2) MY194171A (ja)
RU (1) RU2562381C1 (ja)
WO (1) WO2013022748A1 (ja)
ZA (1) ZA201401626B (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2618917T3 (es) * 2010-04-23 2017-06-22 M&K Holdings Inc. Aparato de codificación de imagen
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
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
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of 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
US8634669B2 (en) * 2011-01-13 2014-01-21 Sony Corporation Fast implementation of context selection of significance map
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
BR112013002450B1 (pt) * 2011-06-24 2022-10-25 Velos Media International Limited Método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem, e aparelho de codificação e decodificação de imagem.
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US20130003858A1 (en) * 2011-06-30 2013-01-03 Vivienne Sze Simplified Context Selection For Entropy Coding of Transform Coefficient Syntax Elements
US20130114667A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Binarisation of last position for higher throughput
US9860527B2 (en) * 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
PL2805419T3 (pl) * 2012-01-20 2017-10-31 Ge Video Compression Llc Kodowanie i dekodowanie współczynnika transformacji
JP6036822B2 (ja) * 2012-06-28 2016-11-30 日本電気株式会社 映像量子化パラメータ符号化方法、映像量子化パラメータ復号方法、装置およびプログラム
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9549182B2 (en) 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
CN105165012B (zh) * 2013-04-23 2020-04-03 高通股份有限公司 视频译码中的预测残余块的再定位方法、装置及计算机可读媒体
US9955163B2 (en) * 2013-06-17 2018-04-24 Google Llc Two pass quantization of video data
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
KR102125601B1 (ko) 2013-07-24 2020-06-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비변환 코딩을 위한 스캐닝 순서 조정 기법
US9456210B2 (en) * 2013-10-11 2016-09-27 Blackberry Limited Sign coding for blocks with transform skipped
US9264724B2 (en) * 2013-10-11 2016-02-16 Blackberry Limited Sign coding for blocks with transform skipped
US20160044314A1 (en) * 2014-08-08 2016-02-11 Qualcomm Incorporated System and method for reusing transform structure for multi-partition transform
US9848198B2 (en) * 2014-10-06 2017-12-19 Qualcomm Incorporated Diagonal copy for palette mode coding
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
US20160269747A1 (en) * 2015-03-12 2016-09-15 NGCodec Inc. Intra-Picture Prediction Processor with Dual Stage Computations
WO2017138831A1 (en) 2016-02-12 2017-08-17 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
CA3014299A1 (en) 2016-02-12 2017-08-17 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
EP3466077A4 (en) * 2016-05-23 2020-07-22 Kakadu R & D Pty Ltd IMAGE COMPRESSION PROCESS AND APPARATUS
EP3264763A1 (en) 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
WO2018097691A2 (ko) * 2016-11-28 2018-05-31 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US10194147B2 (en) 2017-01-19 2019-01-29 Google Llc DC coefficient sign coding scheme
WO2018143670A1 (ko) * 2017-01-31 2018-08-09 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
KR20180089290A (ko) * 2017-01-31 2018-08-08 세종대학교산학협력단 영상의 부호화/복호화 방법 및 장치
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding
CN106991391A (zh) * 2017-03-30 2017-07-28 理光图像技术(上海)有限公司 文档处理装置以及文档处理和识别系统
CN108664835A (zh) * 2017-04-02 2018-10-16 田雪松 一种编码图案有效性的识别方法和识别装置
CN110999293B (zh) * 2017-07-31 2022-11-04 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
WO2019050299A1 (ko) * 2017-09-06 2019-03-14 가온미디어 주식회사 변화계수 서브그룹 스캐닝 방법에 따른 부/복호화 방법 및 장치
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10869060B2 (en) * 2018-01-30 2020-12-15 Google Llc Efficient context model computation design in transform coefficient coding
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US10771783B2 (en) 2018-06-11 2020-09-08 Google Llc Transforms for large video and image blocks
US10992937B2 (en) * 2018-06-18 2021-04-27 Qualcomm Incorporated Coefficient coding with grouped bypass bins
CN115379220A (zh) * 2018-08-22 2022-11-22 寰发股份有限公司 转换系数编码或解码的方法与装置
US11128866B2 (en) * 2018-10-18 2021-09-21 Qualcomm Incorporated Scans and last coefficient position coding for zero-out transforms
JP2021510943A (ja) * 2018-12-17 2021-04-30 エルジー エレクトロニクス インコーポレイティド 高周波ゼロイングに基づいて変換係数スキャン順序を決定する方法及び装置
US11102490B2 (en) * 2018-12-31 2021-08-24 Tencent America LLC Coefficient scanning methods on adaptive angle mode
US11595656B2 (en) * 2019-01-25 2023-02-28 Hfi Innovation Inc. Method and apparatus of transform coefficient coding with TB-level constraint
CN109831670B (zh) * 2019-02-26 2020-04-24 北京大学深圳研究生院 一种反量化方法、系统、设备及计算机可读介质
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
US11375236B2 (en) * 2019-05-22 2022-06-28 Tencent America LLC Method and apparatus for video coding
CN111988617A (zh) * 2019-05-22 2020-11-24 腾讯美国有限责任公司 视频解码方法和装置以及计算机设备和存储介质
EP3985973A4 (en) * 2019-06-14 2022-07-27 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD
CN114513663A (zh) * 2020-11-17 2022-05-17 腾讯科技(深圳)有限公司 视频解码方法、装置及电子设备
US11606568B1 (en) 2021-08-18 2023-03-14 Meta Platforms, Inc. End-of-block detection of quantized transform coefficient matrices in video encoding
US20230319260A1 (en) * 2022-04-04 2023-10-05 Tencent America LLC Systems and methods for frequency-dependent coefficient sign coding

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1679903A (en) 1928-01-12 1928-08-07 Chase Appliance Corp Anticreeping device for railway rails
US5295203A (en) 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
JPH06205388A (ja) 1992-12-28 1994-07-22 Canon Inc 画像符号化装置
EP0607484B1 (en) 1993-01-20 1998-09-09 Samsung Electronics Co. Ltd. Method and device for encoding and decoding image data
DE69637067T2 (de) 1995-03-15 2008-01-10 Kabushiki Kaisha Toshiba System zur variablen Längendekodierung
US5838825A (en) 1996-01-17 1998-11-17 Matsushita Electric Industrial Co., Ltd. Apparatus for decompressing image data which has been compressed using a linear transform
US5818877A (en) 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
US6301304B1 (en) 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
US6553147B2 (en) 1998-10-05 2003-04-22 Sarnoff Corporation Apparatus and method for data partitioning to improving error resilience
EP1041826A1 (en) 1999-04-01 2000-10-04 Lucent Technologies Inc. Apparatus for coding data and apparatus for decoding block transform coefficients
US6775414B1 (en) 1999-11-19 2004-08-10 Ati International Srl Variable-length code decoder
US6680974B1 (en) 1999-12-02 2004-01-20 Lucent Technologies Inc. Methods and apparatus for context selection of block transform coefficients
US20020122483A1 (en) 2001-03-02 2002-09-05 Matsushita Electric Industrial Co., Ltd. Encoding circuit and method
US6650707B2 (en) 2001-03-02 2003-11-18 Industrial Technology Research Institute Transcoding apparatus and method
WO2002078355A1 (en) 2001-03-23 2002-10-03 Nokia Corporation Variable length coding
JP2003022485A (ja) 2001-07-10 2003-01-24 Oki Electric Ind Co Ltd 病院向け自動取引装置
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
CN100499810C (zh) 2001-11-16 2009-06-10 株式会社Ntt都科摩 图像的编码方法和装置、译码方法和装置、以及传送系统
US7190840B2 (en) 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
US7099387B2 (en) 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
JP4090862B2 (ja) 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
PT1467491E (pt) * 2002-05-02 2007-03-30 Fraunhofer Ges Forschung Codificação aritmética de coeficientes de transformação
US7376280B2 (en) 2002-07-14 2008-05-20 Apple Inc Video encoding and decoding
US7483575B2 (en) 2002-10-25 2009-01-27 Sony Corporation Picture encoding apparatus and method, program and recording medium
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US20050036549A1 (en) 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US7688894B2 (en) 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
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
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7522774B2 (en) 2004-03-10 2009-04-21 Sindhara Supermedia, Inc. Methods and apparatuses for compressing digital image data
US20060078049A1 (en) 2004-10-13 2006-04-13 Nokia Corporation Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability
NO322043B1 (no) 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
US8311119B2 (en) * 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US7609904B2 (en) 2005-01-12 2009-10-27 Nec Laboratories America, Inc. Transform coding system and method
JP2006211304A (ja) 2005-01-28 2006-08-10 Matsushita Electric Ind Co Ltd 映像符号化装置、映像復号化装置、映像符号化方法、映像復号化方法、映像符号化プログラムおよび映像復号化プログラム
US20060227865A1 (en) 2005-03-29 2006-10-12 Bhaskar Sherigar Unified architecture for inverse scanning for plurality of scanning scheme
EP1768415A1 (en) 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US20070071331A1 (en) 2005-09-24 2007-03-29 Xiteng Liu Image compression by economical quaternary reaching method
WO2007043583A1 (ja) 2005-10-11 2007-04-19 Matsushita Electric Industrial Co., Ltd. 画像符号化装置、画像復号化装置及びこれらの方法
WO2007063472A2 (en) 2005-11-30 2007-06-07 Koninklijke Philips Electronics N.V. Encoding method and apparatus applying coefficient reordering
KR100867995B1 (ko) * 2006-01-07 2008-11-10 한국전자통신연구원 동영상 데이터 인코딩/디코딩 방법 및 그 장치
US7884742B2 (en) 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
US8275045B2 (en) 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US8599926B2 (en) * 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US8942292B2 (en) 2006-10-13 2015-01-27 Qualcomm Incorporated Efficient significant coefficients coding in scalable video codecs
US7369066B1 (en) 2006-12-21 2008-05-06 Lsi Logic Corporation Efficient 8×8 CABAC residual block transcode system
US8098735B2 (en) 2006-12-21 2012-01-17 Lsi Corporation Efficient 8×8 CABAC residual block decode
WO2008080516A1 (de) 2006-12-27 2008-07-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und verfahren zum kodieren eines transformationskoeffizientenblockes
BRPI0720806B1 (pt) 2007-01-18 2023-03-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Corrente de dados de vídeo de qualidade escalonável
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
CN101682772B (zh) 2007-03-14 2012-03-21 日本电信电话株式会社 码量推定方法、装置、其程序和记录介质
US7813567B2 (en) 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US7885473B2 (en) 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8488668B2 (en) 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US7535387B1 (en) 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
US8204327B2 (en) 2007-10-01 2012-06-19 Cisco Technology, Inc. Context adaptive hybrid variable length coding
US20090273796A1 (en) 2008-04-30 2009-11-05 Kodak Graphic Communications Canada Company Peeling imaged media from a substrate
KR101394153B1 (ko) 2007-12-11 2014-05-16 삼성전자주식회사 양자화 방법 및 장치, 역양자화 방법 및 장치
US9008171B2 (en) 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
US8977064B2 (en) 2008-02-13 2015-03-10 Qualcomm Incorporated Rotational transcoding for JPEG or other coding standards
KR101375668B1 (ko) 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
EP2154894A1 (en) 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
EP2182732A1 (en) 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
CA2745314A1 (en) 2008-12-03 2010-06-10 Nokia Corporation Switching between dct coefficient coding modes
US8004431B2 (en) 2008-12-09 2011-08-23 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes
JPWO2010070897A1 (ja) 2008-12-16 2012-05-24 パナソニック株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、プログラム、及び集積回路
KR20170116216A (ko) 2009-01-27 2017-10-18 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
JP5004986B2 (ja) 2009-03-19 2012-08-22 キヤノン株式会社 スキャン変換装置及び画像符号化装置、並びにそれらの制御方法
JP5302769B2 (ja) 2009-05-14 2013-10-02 キヤノン株式会社 スキャン変換装置及び画像符号化装置及びそれらの制御方法
WO2010143853A2 (ko) 2009-06-07 2010-12-16 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
KR20100136890A (ko) 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
WO2011002914A1 (en) 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
JP4650592B1 (ja) 2009-07-17 2011-03-16 日本電気株式会社 ウェーブレット変換符号化/復号方法および装置
US8619866B2 (en) 2009-10-02 2013-12-31 Texas Instruments Incorporated Reducing memory bandwidth for processing digital image data
US8477845B2 (en) 2009-10-16 2013-07-02 Futurewei Technologies, Inc. Predictive adaptive scan ordering for video coding
KR20110045949A (ko) 2009-10-28 2011-05-04 삼성전자주식회사 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치
KR101457894B1 (ko) 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
TW201119407A (en) 2009-11-19 2011-06-01 Thomson Licensing Method for coding and method for reconstruction of a block of an image
WO2011087908A1 (en) 2010-01-15 2011-07-21 Thomson Licensing Video coding using compressive sensing
US8588536B2 (en) 2010-02-22 2013-11-19 Texas Instruments Incorporated Guaranteed-rate tiled image data compression
WO2011126288A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image and method and apparatus for decoding image using adaptive coefficient scan order
CN108777790B (zh) 2010-04-13 2021-02-09 Ge视频压缩有限责任公司 解码显著性图的装置以及编码显著性图的装置和方法
SI2592832T1 (sl) 2010-07-09 2016-10-28 Samsung Electronics Co., Ltd. Postopek in naprava za entropijsko kodiranje/dekodiranje transformacijskega koeficienta
US9215470B2 (en) 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
US9591320B2 (en) * 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
US20120027081A1 (en) 2010-07-30 2012-02-02 Cisco Technology Inc. Method, system, and computer readable medium for implementing run-level coding
US9154801B2 (en) 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
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
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video 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
US20130343454A1 (en) 2011-01-07 2013-12-26 Agency For Science, Technology And Research Method and an apparatus for coding an image
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
US8891617B2 (en) 2011-01-18 2014-11-18 Google Inc. Method and system for processing video data
US20120207400A1 (en) 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
US8861599B2 (en) 2011-03-08 2014-10-14 Sony Corporation Context reduction for last transform position coding
US8861593B2 (en) 2011-03-15 2014-10-14 Sony Corporation Context adaptation within video coding modules
US8446301B2 (en) 2011-04-15 2013-05-21 Research In Motion Limited Methods and devices for coding and decoding the position of the last significant coefficient
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
PL2805419T3 (pl) 2012-01-20 2017-10-31 Ge Video Compression Llc Kodowanie i dekodowanie współczynnika transformacji

Also Published As

Publication number Publication date
CA2844138A1 (en) 2013-02-14
JP2014527358A (ja) 2014-10-09
BR112014002770A2 (pt) 2017-02-21
KR20140046046A (ko) 2014-04-17
US9106913B2 (en) 2015-08-11
EP2740269A1 (en) 2014-06-11
ZA201401626B (en) 2017-01-25
US20130058407A1 (en) 2013-03-07
CN103718554A (zh) 2014-04-09
MX2014001422A (es) 2014-03-21
CA2844138C (en) 2017-09-12
IL230364A (en) 2017-06-29
BR112014002770B1 (pt) 2022-08-23
MY193779A (en) 2022-10-27
RU2562381C1 (ru) 2015-09-10
KR101656964B1 (ko) 2016-09-12
WO2013022748A1 (en) 2013-02-14
AU2012294683A1 (en) 2014-02-20
AU2012294683B2 (en) 2015-11-19
MY194171A (en) 2022-11-16
CN103718554B (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
JP6599489B2 (ja) ビデオコーディングのための変換係数のコーディング
JP5951772B2 (ja) ビデオコーディングのための変換係数のコーディング
AU2015249109A1 (en) Coding of transform coefficients for video coding

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160608

R150 Certificate of patent or registration of utility model

Ref document number: 5951772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250