JP5852133B2 - ビデオコーディングにおいてビデオブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用すること - Google Patents

ビデオコーディングにおいてビデオブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用すること Download PDF

Info

Publication number
JP5852133B2
JP5852133B2 JP2013546387A JP2013546387A JP5852133B2 JP 5852133 B2 JP5852133 B2 JP 5852133B2 JP 2013546387 A JP2013546387 A JP 2013546387A JP 2013546387 A JP2013546387 A JP 2013546387A JP 5852133 B2 JP5852133 B2 JP 5852133B2
Authority
JP
Japan
Prior art keywords
block
scan order
probable
coding
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013546387A
Other languages
English (en)
Other versions
JP2014504813A (ja
Inventor
コバン、ムハンメド・ゼイド
ジェン、ユンフェイ
ソール・ロジャルス、ジョエル
カークゼウィックズ、マルタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014504813A publication Critical patent/JP2014504813A/ja
Application granted granted Critical
Publication of JP5852133B2 publication Critical patent/JP5852133B2/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/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/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
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Description

本出願は、各々の内容全体が参照により本明細書に組み込まれる、2010年12月22日に出願された米国仮出願第61/426,431号、2010年12月22日に出願された米国仮出願第61/426,426号、および2011年10月14日に出願された米国仮出願第61/547,530号の利益を主張する。
本開示は、ビデオコーディングに関し、より詳細には、ビデオブロックの係数に関係するシンタックス情報のコーディングに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部)はビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット(CU:coding unit)および/またはコーディングノードと呼ばれることがある。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
空間的または時間的予測の結果として、コーディングされるべきブロックのための予測ブロックがもたらされる。残差データは、コーディングされるべき元のブロックと、予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され得、結果として、その後量子化され得る残差変換係数がもたらされる。最初は2次元アレイに構成される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
本開示は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングするための技法を含む、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための技法について説明する。本開示の技法は、特定のブロックのための最確走査順序を識別する情報を使用してブロックの走査順序情報をコーディングすることによって、ビデオデータのブロックをコーディングするために使用されるブロックの走査順序情報のコーディングの効率を改善し得る。言い換えれば、本技法は、ブロックの走査順序情報がコーディングされるとき、その情報の圧縮を改善し得る。
一例では、コーディング効率は、ビデオデータのブロックのための最確走査順序を判断することと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序が最確走査順序であるかどうかの指示をコーディングすることとによって改善され得る。この例では、ブロックに関連する走査順序が最確走査順序である場合、ブロックについてさらなる走査順序情報はコーディングされなくてよい。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合、本技法は、ブロックに関連する走査順序の指示をコーディングすることをさらに含み得る。定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされない。その結果、ブロックについての走査順序情報は、他の技法を使用したときよりも、たとえば、ブロック全体の走査順序情報を常にコーディングしたときよりも少ない情報を使用してコーディングされ得る。
別の例として、コーディング効率は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することによって改善され得る。この場合も、定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序が最確走査順序であるかどうかの初期指示は、数多くの場合、ブロック全体の走査順序情報を示すことになり、さらなる走査順序情報をコーディングする必要はなくなる。さらに、ブロックに関連する走査順序が最確走査順序でない場合、ブロックを効率的にコーディングするためには、ブロックに関連する走査順序の指示をコーディングするのではなく、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することで十分であり得る。たとえば、係数をより効率的に走査し得る別の走査順序を使用するのではなく、係数をコーディングするためにジグザグ走査順序を使用することの悪影響を、上記で説明したブロックについての走査順序情報のコーディングの低減が上回り得る。
さらに別の例として、コーディング効率は、ブロックのための最確走査順序にジグザグ走査順序を指定することによって改善され得る。この例では、ジグザグ走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得るので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされないことがある。さらに、最確走査順序にジグザグ走査順序を指定することによって、コーディング効率は、上記で説明したように、ブロックのための実際の最確走査順序を判断することを回避することにより、改善され得る。
上記で説明した例の各々では、コーディング効率は、ブロックについての走査順序情報、すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とのうちの1つまたは複数をエントロピー符号化することによってさらに改善され得る。たとえば、走査順序情報は、コンテキスト適応型エントロピーコーディングプロセス、たとえば、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスを実行することによってエントロピー符号化され得る。上記で説明した例では、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得、それにより、コンテキストモデル内に含まれる確率推定値は、他の技法を使用して判断された確率推定値よりも正確になり得る。その結果、ブロックの走査順序情報はより効率的にコーディングされ得る。たとえば、この情報は、他の技法を使用したときよりも、たとえば、この情報をコーディングするために他のあまり正確でない確率推定値を使用したときよりも少ないビットを使用してコーディングされ得る。
本開示の技法は、いくつかの例では、CABAC、確率間隔区分エントロピーコーディング(PIPE:probability interval partitioning entropy coding)、または別のコンテキスト適応型エントロピーコーディング方法を含む、任意のコンテキスト適応型エントロピーコーディング方法とともに使用され得る。CABACは、本開示においては、本開示で広く説明する技法に関する限定なしに、説明のために記載している。また、本技法は、たとえば、ビデオデータに加えて、一般に他のタイプのデータのコーディングに適用され得る。
したがって、本開示の技法は、ビデオデータの1つまたは複数のブロックについての走査順序情報をコーディングするとき、他の方法よりも効率的なコーディング方法を使用することを可能にし得る。このようにして、本開示の技法を使用すると、この情報を含むコード化ビットストリームについての相対的なビット節約があり得る。
一例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法は、ブロックに関連する走査順序を識別する情報をコーディングすることであって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを含む、コーディングすることを含む。
別の例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置が、ブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダを含み、ブロックに関連する走査順序を識別する情報をコーディングするために、ビデオコーダは、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成される。
別の例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスは、ブロックに関連する走査順序を識別する情報をコーディングするための手段であって、ブロックのための最確走査順序を判断するための手段と、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングするための手段とを含む、コーディングするための手段を含む。
本開示において説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装され得る。ハードウェアで実装する場合、装置は、集積回路、プロセッサ、ディスクリート論理、またはそれらの任意の組合せとして実現され得る。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはデジタル信号プロセッサ(DSP)など、1つまたは複数のプロセッサで実行され得る。本技法を実行するソフトウェアは、最初に有形コンピュータ可読媒体に記憶され、プロセッサにロードされて実行され得る。
したがって、本開示はまた、実行されたとき、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングすることをプロセッサに行わせる命令を備えるコンピュータ可読媒体を企図し、これらの命令は、ブロックに関連する走査順序を識別する情報をコーディングすることをプロセッサに行わせ、ブロックに関連する走査順序を識別する情報をコーディングすることをプロセッサに行わせる命令は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとをプロセッサに行わせる命令を備える。
1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法を実装し得るビデオ符号化および復号システムの一例を示すブロック図。 本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的に符号化するために最確走査順序を使用するための技法を実装し得るビデオエンコーダの一例を示すブロック図。 本開示の技法に一致する、ビデオデータのブロックについての符号化された走査順序情報を効率的に復号するために最確走査順序を使用するための技法を実装し得るビデオデコーダの一例を示すブロック図。 ビデオデータのブロックの一例を示す概念図。 対応する有効係数位置情報の一例を示す概念図。 対応する最後有効係数位置情報の一例を示す概念図。 ジグザグ走査順序を使用して走査されるビデオデータのブロックの例を示す概念図。 水平走査順序を使用して走査されるビデオデータのブロックの例を示す概念図。 垂直走査順序を使用して走査されるビデオデータのブロックの例を示す概念図。 本開示の技法に一致する、様々なサイズを有するブロックビデオデータの例を示す概念図。 本開示の技法に一致する、予測データを生成するために様々な予測モードが使用されるビデオデータのブロックの例を示す概念図。 本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための方法の一例を示すフローチャート。 本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的に符号化するために最確走査順序を使用するための方法の一例を示すフローチャート。 本開示の技法に一致する、ビデオデータのブロックについての符号化された走査順序情報を効率的に復号するために最確走査順序を使用するための方法の一例を示すフローチャート。
本開示は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングするための技法を含む、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための技法について説明する。本開示の技法は、特定のブロックのための最確走査順序を識別する情報を使用してブロックの走査順序情報をコーディングすることによって、ビデオデータのブロックをコーディングするために使用されるブロックの走査順序情報のコーディングの効率を改善し得る。言い換えれば、本技法は、ブロックの走査順序情報がコーディングされるとき、走査順序情報の圧縮を改善し得る。
本開示では、「コーディング」という用語は、エンコーダにおいて行われる符号化、またはデコーダにおいて行われる復号を指す。同様に、コーダという用語は、一般に、エンコーダ、デコーダ、または複合エンコーダ/デコーダ(コーデック)を指す。コーダ、エンコーダ、デコーダおよびコーデックという用語はすべて、本開示に一致する、ビデオデータのコーディング(符号化および/または復号)のために設計された特定の機械を指す。
概して、これらの技法の開発において実行された経験的テストにより、ビデオデータのブロックに関連する予測モードおよびサイズと、そのブロックに関連する走査順序、すなわち、そのブロックをコーディングするために使用される走査順序との間の相関が証明されている。たとえば、ブロックに関連する走査順序は、ブロックの予測データを生成するために使用される予測モードと、ブロックのサイズとに依存し得る。言い換えれば、特定の走査順序は、ブロックに関連する予測モードおよびサイズに応じて、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得る。
ビデオデータのブロックをコーディングするために使用されるブロックについての走査順序情報のコーディングのコーディング効率は、上記で説明した相関を利用することによって改善され得る。特に、コーディング効率は、特定のブロックのための最確走査順序を識別する情報を使用してそのブロックの走査順序情報をコーディングすることによって改善され得る。いくつかの例では、特定のブロックのための最確走査順序は、そのブロックに関連するイントラ予測モードおよびサイズに基づいて判断され得る。たとえば、エンコーダおよびデコーダは、両方とも、ブロックに関連するイントラ予測モードおよびサイズに基づいてブロックのための最確走査順序を定義するようにプログラムされ得、エンコーダによってブロックを符号化するために最確走査順序が実際に使用されたかどうかをデコーダに示すための情報がエンコーダによってシグナリングされ得る。
一例では、コーディング効率は、ビデオデータのブロックのための最確走査順序を判断することと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序が最確走査順序であるかどうかの指示をコーディングすることとによって改善され得る。この例では、ブロックに関連する走査順序が最確走査順序である場合、ブロックについてさらなる走査順序情報はコーディングされなくてよい。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合、本技法は、ブロックに関連する走査順序の指示をコーディングすることをさらに含み得る。定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされない。その結果、ブロックについての走査順序情報は、他の技法を使用したときよりも、たとえば、ブロック全体の走査順序情報を常にコーディングしたときよりも少ない情報を使用してコーディングされ得る。
別の例として、コーディング効率は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することによって改善され得る。この場合も、定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序が最確走査順序であるかどうかの初期指示は、数多くの場合、ブロック全体の走査順序情報を示すことになり、さらなる走査順序情報をコーディングする必要はなくなる。さらに、ブロックに関連する走査順序が最確走査順序でない場合、ブロックを効率的にコーディングするためには、ブロックに関連する走査順序の指示をコーディングするのではなく、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することで十分であり得る。たとえば、係数をより効率的に走査し得る別の走査順序を使用するのではなく、係数をコーディングするためにジグザグ走査順序を使用することの悪影響を、上記で説明したブロックについての走査順序情報のコーディングの低減が上回り得る。
さらに別の例として、コーディング効率は、ブロックのための最確走査順序にジグザグ走査順序を指定することによって改善され得る。この例では、ジグザグ走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得るので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされないことがある。さらに、最確走査順序にジグザグ走査順序を指定することによって、コーディング効率は、上記で説明したように、ブロックのための実際の最確走査順序を判断することを回避することにより、改善され得る。
上記で説明した例の各々では、コーディング効率は、ブロックについての走査順序情報、すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とのうちの1つまたは複数をエントロピー符号化することによってさらに改善され得る。たとえば、走査順序情報は、コンテキスト適応型エントロピーコーディングプロセス、たとえば、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型バイナリ算術コーディング(CABAC)プロセスを実行することによってエントロピー符号化され得る。上記で説明した例では、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得、それにより、コンテキストモデル内に含まれる確率推定値は、他の技法を使用して判断された確率推定値よりも正確になり得る。その結果、ブロックの走査順序情報はより効率的にコーディングされ得る。たとえば、この情報は、他の技法を使用したときよりも、たとえば、この情報をコーディングするために他のあまり正確でない確率推定値を使用したときよりも少ないビットを使用してコーディングされ得る。
上記で説明した方法でビデオデータの1つまたは複数のブロックについての走査順序情報をコーディングすることにより、他の方法よりも効率的なコーディング方法を使用することが可能になり得る。このようにして、本開示の技法を使用すると、この情報を含むコード化ビットストリームについての相対的なビット節約があり得る。
本開示の技法は、いくつかの例では、CABAC、確率間隔区分エントロピーコーディング(PIPE)、または別のコンテキスト適応型エントロピーコーディング方法を含む、任意のコンテキスト適応型エントロピーコーディング方法とともに使用され得る。CABACは、本開示においては、本開示で広く説明する技法に関する限定なしに、説明のために記載している。また、本技法は、たとえば、ビデオデータに加えて、一般に他のタイプのデータのコーディングに適用され得る。
図1は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法を実装し得るビデオ符号化および復号システム10の一例を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスを備えるか、あるいは、通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである、任意のワイヤレスデバイスを備え得る。
ただし、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用することに関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。これらの技法は、概して、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ストリーミングインターネットビデオ送信、記憶媒体上に符号化されるか、または記憶媒体から取り出されて復号される符号化デジタルビデオを含む、符号化または復号が実行される任意のシナリオ、あるいは他のシナリオに適用され得る。したがって、通信チャネル16は必要とされず、本開示の技法は、たとえば、符号化デバイスと復号デバイスとの間にいかなるデータ通信もなしに、符号化が適用される、または復号が適用される設定に適用され得る。
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20および/または宛先デバイス14のビデオデコーダ30は、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
図1の図示のシステム10は一例にすぎない。ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのために、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。この場合も、上記で説明したビデオ符号化プロセスは、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するために本明細書で説明する技法のうちの1つまたは複数を実装し得る。チャネル16を介して通信される情報は、同じくビデオデコーダ30によって使用される、ビデオエンコーダ20によって定義されたシンタックス情報を含み得、そのシンタックス情報は、ビデオデータのブロック(たとえば、マクロブロック、またはコーディングユニット)の特性および/または処理、たとえば、ブロックの走査順序情報、および他の情報を記述するシンタックス要素を含む。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
図1の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。他の例では、符号化または復号デバイスは、そのようなデバイス間で通信することなく本開示の技法を実装し得る。たとえば、符号化デバイスは、本開示の技法に一致して符号化ビットストリームを符号化および記憶し得る。代替的に、復号デバイスが、符号化ビットストリームを受信するかまたは取り出し、本開示の技法と一致してビットストリームを復号し得る。
ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part10、アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、MPEG−2、ITU−T H.263、および現在開発中の高効率ビデオコーディング(HEVC)規格がある。概して、本開示の技法について、HEVCに関して説明するが、これらの技法は、他のビデオコーディング規格と併せて同様に使用され得ることを理解されたい。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよびデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ(GOP)は、概して、一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれるいくつかのフレームを記述するシンタックスデータを、GOPのヘッダ中、GOPの1つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームのための符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ、たとえば、ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ITU−T H.264規格によれば、ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。他の規格、たとえば、下記でより詳細に説明するHEVCによれば、ビデオブロックは、コーディングユニット(たとえば、最大コーディングユニット)、またはコーディングユニットのパーティションに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは、複数のスライス、すなわち、ビデオフレームの部分を含み得る。各スライスは複数のビデオブロックを含み得、それらのビデオブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
指定のコーディング規格に応じて、ビデオブロックは、16×16、8×8、4×4、2×2など、様々な「N×N」サブブロックサイズに区分され得る。本開示では、「N×(x)N」と「N×(by)N」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、16×(x)16ピクセルまたは16×(by)16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。一例として、ITU−T H.264規格では、サイズが16×16ピクセルであるブロックはマクロブロックと呼ばれることがあり、16×16ピクセルよりも小さいブロックは、16×16マクロブロックのパーティションと呼ばれることがある。他の規格、たとえば、HEVCでは、ブロックはより一般的にそれらのサイズに関連して、たとえば、各々が固定サイズではなく可変サイズを有するコーディングユニットおよびそのパーティションとして定義され得る。
ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、所与のビデオブロックのための残差データへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得、残差データは、ブロックのビデオデータと、ブロックのために生成される予測データとの間のピクセル差分を表す。場合によっては、ビデオブロックは、変換領域中に量子化変換係数のブロックを備え得、所与のビデオブロックのための残差データへの変換の適用後に、得られた変換係数も量子化される。
ブロック区分は、ブロックベースのビデオコーディング技法において重要な目的を果たす。ビデオデータをコーディングするためにより小さいブロックを使用すると、高レベルのディテールを含むビデオフレームのロケーションに関するデータの予測がより良好になり得、したがって、残差データとして表される生じる誤差(すなわち、ソースビデオデータからの予測データの偏差)が低減し得る。残差データを低減する可能性がある一方、そのような技法は、しかしながら、ビデオフレームに対してブロックがどれだけより小さく区分されるかを示す追加のシンタックス情報を必要とし得、結果としてコード化ビデオビットレートが増加し得る。したがって、いくつかの技法では、ブロック区分は、追加のシンタックス情報に起因するコード化ビデオデータのビットレートの生じる増加に対して、残差データの望ましい低減の釣り合いをとることに依存し得る。
概して、ブロック、およびその様々なパーティション(すなわち、サブブロック)は、ビデオブロックと見なされ得る。加えて、スライスは、複数のビデオブロック(たとえば、マクロブロック、もしくはコーディングユニット)、および/またはサブブロック(マクロブロックのパーティション、もしくはサブコーディングユニット)であると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。さらに、シーケンスとも呼ばれるGOPが復号可能なユニットとして定義され得る。
高効率ビデオコーディング(HEVC)と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。新生のHEVC規格はH.265と呼ばれることもある。この規格化の取り組みは、HEVCテストモデル(HM:HEVC Test Model)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU−T H.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを与えるが、HMは、たとえば、イントラ予測コーディングされるブロックのサイズに基づいて、35個ものイントラ予測符号化モードを与える。
HMでは、ビデオデータのブロックをコーディングユニット(CU)と呼ぶ。CUは、圧縮のために様々なコーディングツールが適用される基本ユニットとしての役割を果たす矩形の画像領域を指し得る。H.264では、これはマクロブロックと呼ばれることもある。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大CUである最大コーディングユニット(LCU:largest coding unit)を定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUはサブCUに区分、または「分割」され得る。
LCUは、LCUがどのように区分されるかを示す4分木データ構造に関連し得る。概して、4分木データ構造は、LCUのCUごとに1つのノードを含み、ルートノードがLCUに対応し、他のノードはLCUのサブCUに対応する。所定のCUが4つのサブCUに分割された場合、分割されたCUに対応する4分木中のノードは4つの子ノードを含み、子ノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックス情報を与え得る。たとえば、4分木のノードは、そのノードに対応するCUが4つのサブCUに分割されるかどうかを示す、CUの分割フラグを含み得る。所与のCUのシンタックス情報は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。
分割されないCU(すなわち、所与の4分木の末端、または「リーフ」ノードに対応するCU)は、1つまたは複数の予測ユニット(PU:prediction unit)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、CUの予測を実行するためにそのPUの参照サンプルを取り出すためのデータを含む。たとえば、CUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、CUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルがポイントする参照フレーム、および/または動きベクトルの参照リスト(たとえば、リスト0もしくはリスト1)を記述し得る。CUの1つまたは複数のPUを定義するCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。
1つまたは複数のPUを有するCUはまた、1つまたは複数の変換ユニット(TU:transform unit)を含み得る。上記で説明したように、1つまたは複数のPUを使用してCUを予測した後に、ビデオエンコーダは、1つまたは複数のPUに対応するCUのそれぞれの部分について1つまたは複数の残差ブロックを計算し得る。残差ブロックは、CUのビデオデータと、1つまたは複数のPUのための予測データとの間のピクセル差分を表し得る。残差値のセットは、変換され、走査され、量子化されて、量子化変換係数のセットが定義され得る。TUは、CUに関して上記で説明した4分木データ構造と実質的に同様である変換係数のパーティション情報を示すパーティションデータ構造を定義し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、同じCUの対応するPUよりも大きいことも小さいこともある。いくつかの例では、TUの最大サイズは、対応するCUのサイズに対応し得る。一例では、CUに対応する残差サンプルが、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。この場合、RQTのリーフノードは、TUとして参照され得、これについて対応する残差サンプルが変換され、量子化され得る。
予測データと残差データとを生成するためのイントラ予測符号化またはインター予測符号化の後に、および変換係数を生成するための(H.264/AVCにおいて使用される4×4または8×8整数変換、あるいは離散コサイン変換DCTなどの)任意の変換の後に、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
量子化後に、量子化データ(すなわち、量子化変換係数)のエントロピーコーディングが実行され得る。エントロピーコーディングは、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用することに関して本開示の技法に準拠し得、また、コンテキスト適応型可変長コーディング(CAVLC)、CABAC、PIPE、または別のエントロピーコーディング方法など、他のエントロピーコーディング技法を使用し得る。たとえば、量子化変換係数の絶対値および対応する符号(たとえば、「+1」または「−1」)として表される係数値が、エントロピーコーディング技法を使用して符号化され得る。
上記で説明した予測、変換、および量子化は、指定のコーディング規格に応じて、ビデオデータの任意のブロックについて、たとえば、CUのPUおよび/またはTU、あるいはマクロブロックに対して実行され得ることに留意されたい。したがって、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用することに関係する本開示の技法は、ビデオデータの任意のブロック、たとえば、マクロブロック、またはCUのTUを含む、量子化変換係数の任意のブロックに適用され得る。さらに、ビデオデータのブロック(たとえば、マクロブロック、またはCUのTU)は、対応するビデオデータのルミナンス成分(Y)、第1のクロミナンス成分(U)、および第2のクロミナンス成分(V)の各々を含み得る。したがって、本開示の技法は、ビデオデータの所与のブロックのY、U、およびV成分の各々に対して実行され得る。
上記で説明したようにビデオデータのブロックを符号化するために、所与のブロック内の有効係数の位置に関する情報も、生成および符号化され得る。その後、有効係数の値は、上記で説明したように符号化され得る。H.264/AVCおよび新生のHEVC規格では、コンテキスト適応型エントロピーコーディングプロセス、たとえば、CABACプロセスを使用するとき、ビデオデータのブロック内の有効係数の位置は、有効係数の値を符号化するより前に符号化され得る。ブロック内のすべての有効係数の位置を符号化するプロセスは、有効性マップ(SM:significance map)符号化と呼ばれることがある。下記でより詳細に説明する図4A〜図4Cは、量子化変換係数の4×4ブロックおよび対応するSMデータの例を示す概念図である。
典型的なSM符号化プロシージャは、次のように説明され得る。ビデオデータの所与のブロックについて、SMは、ブロック内に少なくとも1つの有効係数がある場合にのみ符号化され得る。ビデオデータの所与のブロック内に有効係数が存在することは、コード化ブロックパターンにおいて(たとえば、シンタックス要素「coded_block_pattern」すなわちCBPを使用して)示され得、これは、ビデオデータ中のピクセル領域に関連する(ルミナンスブロックおよびクロミナンスブロックなどの)ブロックのセットに対してコーディングされるバイナリ値である。CBP中の各ビットは、(たとえば、シンタックス要素「coded_block_flag」に対応する)コード化ブロックフラグと呼ばれ、それの対応するブロック内に少なくとも1つの有効係数があるかどうかを示すために使用される。言い換えれば、コード化ブロックフラグは、変換係数の単一ブロックの内部に有効係数があるかどうかを示す1ビットシンボルであり、CBPは、関連するビデオデータブロックのセットのためのコード化ブロックフラグのセットである。
コード化ブロックフラグが、対応するブロック内に有効係数がない(たとえば、フラグが「0」に等しい)ことを示す場合、そのブロックについてさらなる情報は符号化されないことがある。しかしながら、コード化ブロックフラグが、対応するブロック内に少なくとも1つの有効係数が存在することを示す(たとえば、フラグが「1」に等しい)場合、そのブロックに関連する係数走査順序に従うことによって、そのブロックについてSMが符号化され得る。走査順序は、ブロック内の各係数の有効性が符号化される順序をSM符号化の一部として定義し得る。言い換えれば、走査は、係数の有効性を求めるために、係数の2次元ブロックを1次元表現に直列化し得る。様々な走査順序(たとえば、ジグザグ、水平、および垂直)が使用され得る。同じく下記でより詳細に説明する図5A〜図5Cは、8×8ブロックのビデオデータのために使用され得る様々な走査順序のうちのいくつかの例を示す。ただし、本開示の技法は、対角走査順序と、ジグザグ、水平、垂直、および/または対角走査順序の組合せである走査順序と、部分的にジグザグ、部分的に水平、部分的に垂直、および/または部分的に対角である走査順序とを含む、多種多様な他の走査順序に対しても適用され得る。加えて、本開示の技法はまた、ビデオデータの前にコーディングされたブロック(たとえば、現在コーディングされているブロックと同じブロックサイズまたはコーディングモードを有するブロック)に関連する統計値に基づいて、それ自体が適応的である走査順序を考慮し得る。たとえば、適応走査順序は、場合によっては、最確走査順序であり得る。
所与のブロック内に少なくとも1つの有効係数が存在することを示すコード化ブロックフラグ、およびそのブロックに関する走査順序が与えられれば、そのブロックのSMは次のように符号化され得る。最初に、量子化変換係数の2次元ブロックが、走査順序を使用して1次元アレイにマッピングされ得る。アレイ中の係数ごとに、走査順序に従って、(たとえば、シンタックス要素「significant_coeff_flag」に対応する)1ビット有効係数フラグが符号化され得る。すなわち、アレイ中の各位置にバイナリ値が割り当てられ得、バイナリ値は、対応する係数が有効である場合には「1」に設定され、有効でない(すなわち、ゼロである)場合には「0」に設定され得る。
所与の有効係数フラグが、対応する係数が有効であることを示す「1」に等しい場合、(たとえば、シンタックス要素「last_significant_coeff_flag」に対応する)追加の1ビットの最後有効係数フラグも符号化され得、これは、対応する係数がアレイ内の(すなわち、走査順序を与えられているブロック内の)最後有効係数であるかどうかを示し得る。具体的には、各最後有効係数フラグは、対応する係数がアレイ内の最後有効係数である場合は「1」に設定され、そうでない場合は「0」に設定され得る。このようにして最後のアレイ位置に達し、SM符号化プロセスが「1」に等しい最後有効係数フラグによって終了しなかった場合、アレイ(したがって、走査順序を与えられているブロック)中の最後の係数は有効であることが推測され得、その最後のアレイ位置について最後有効係数フラグは符号化されない場合がある。
図4B〜図4Cは、アレイ形式ではなくマップで表された、図4Aに示すブロックのSMデータに対応する有効係数フラグおよび最後有効係数フラグのセットの例をそれぞれ示す概念図である。上記で説明した有効係数フラグおよび最後有効係数フラグは、他の例では異なる値に設定され得る(たとえば、有効係数フラグは、対応する係数が有効である場合は「0」に設定され、対応する係数が有効でない場合は「1」に設定され得、最後有効係数フラグは、対応する係数が最後有効係数である場合は「0」に設定され、対応する係数が最後有効係数でない場合は「1」に設定され得る)ことに留意されたい。
上記で説明したように、SMが符号化された後、ブロック中の各有効係数の値(すなわち、たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の絶対値および符号)も符号化され得る。
いくつかの技法によれば、上記で説明したように、ビデオデータのブロックをコーディングするために、固定走査順序、たとえば、ジグザグ走査順序が使用され得る。他の技法によれば、ブロックをコーディングするために複数の走査順序が使用され得る。いくつかの例では、走査順序が経時的に適応され、所与の時間に係数の特定のブロックをコーディングするために現在適応されている走査順序が使用される、「適応係数走査」(ACS:adaptive coefficient scanning)が使用され得る。さらに他の技法では、ビデオエンコーダ20は、1つまたは複数の圧縮効率メトリックに基づいていくつかの走査順序をテストし、ブロックを符号化するために最良の走査順序を選択し得る。さらに、ビデオエンコーダ20は、(たとえば、ジグザグ走査順序ではインデックス0、水平走査順序では1、垂直走査順序では2を使用して)いくつかの走査順序のうちのいずれか1つを表し得るACSインデックスを符号化することによって、ビデオデコーダ30に走査順序を示し得る。
いくつかの技法によれば、ビデオエンコーダ20は、最後有効係数が走査順序において(「DC」位置と通常呼ばれるブロック内の左上位置に対応する)最初の位置にないときのみ、ACSインデックスを符号化し得る。以下で同じくより詳細に説明する図5に示すように、すべての可能な走査順序はDC位置から開始し得るので、ブロック内の最後(唯一)有効係数がDC位置にある場合、ビデオデコーダ30は、ビデオエンコーダ20によって使用された走査順序の指示を必要としないので、ビデオエンコーダ20はこのようにしてACSインデックスを符号化し得る。
ブロック内の最後有効係数がDC位置にない場合、ビデオエンコーダ20は以下の方法でACSインデックスを符号化し得る。ビデオエンコーダ20は、走査順序がジグザグ走査順序であるか(たとえば、bin1=「0」)否か(たとえば、bin1=「1」)を示す第1の信号(たとえば、「bin1」)を符号化し得る。走査順序がジグザグ走査順序でない場合、ビデオエンコーダ20は、走査順序が水平走査順序であるか(たとえば、bin2=「0」)垂直走査順序であるか(たとえば、bin2=「1」)を示す第2の信号(たとえば、「bin2」)を符号化し得る。同様に、ビデオデコーダ30は、ACSインデックスを判断するために、第1の信号と第2の信号とを受信し、復号し得る。したがって、ACSインデックスを常にコーディングするのではなく、ビデオエンコーダ20および/またはビデオデコーダ30は、最後有効係数がDC位置にないときのみ、ACSインデックスをコーディングし得る。
上記で説明した技法の1つの欠点は、ビデオデータのブロックの走査順序情報をコーディングするとき、ビデオエンコーダ20および/またはビデオデコーダ30が常にこの情報を全体としてコーディングし得ることである。言い換えれば、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序に応じて、たとえば、1〜2ビットまたは「ビン」を使用して、常にブロックの走査順序情報全体をコーディングし得る。さらに、ビデオエンコーダ20および/またはビデオデコーダ30がブロックの走査順序情報をコーディングするとき、上記で説明した技法は、ブロックに関連する予測モードおよびサイズと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序との間の相関を利用することができない。これらの場合、常にブロックの走査順序情報を全体としてコーディングし、上記で説明した相関を利用することなしにこの情報をコーディングすると、他の技法を使用してその情報をコーディングするときよりも、たとえば、より多くのビンを使用して、その情報をコーディングする際の効率が低くなり得る。
上記で説明した技法の別の欠点は、ビデオエンコーダ20および/またはビデオデコーダ30が、コンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって、たとえば、1〜2個のビンを使用して表される、ブロックの走査順序情報をさらにエントロピーコーディングするとき、本技法は、他の方法を使用して判断された確率推定値よりも正確でない確率推定値を含んでいるコンテキストモデルを使用し得ることである。そのような確率推定値を使用してブロックの走査順序情報をエントロピー符号化すると、この場合も、他の技法を使用して、たとえば、より正確な確率推定値を使用してその情報をエントロピーコーディングするときよりも、たとえば、より多くのビットを使用して、その情報をコーディングする際の効率が低くなり得る。
したがって、本開示では、他の技法よりも効率的にビデオデータのブロックについての走査順序情報をコーディングすることを可能にし得る技法について説明する。一例として、走査順序情報は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序が最確走査順序であるかどうかの指示をコーディングすることとによって、より効率的にコーディングされ得る。ブロックに関連する走査順序が最確走査順序である場合、ブロックについてさらなる走査順序情報はコーディングされなくてよい。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合、本技法は、ブロックに関連する走査順序の指示をコーディングすることをさらに含み得る。定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするため使用されることになるので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされない。その結果、ブロックの走査順序情報は、他の技法を使用したときよりも少ない情報を使用してコーディングされ得る。
別の例として、走査順序情報は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することよってより効率的にコーディングされ得る。この場合も、定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序が最確走査順序であるかどうかの初期指示は、数多くの場合、ブロック全体の走査順序情報を示すことになり、さらなる走査順序情報をコーディングする必要はなくなる。さらに、ブロックに関連する走査順序が最確走査順序でない場合、ブロックを効率的にコーディングするためには、ブロックに関連する走査順序の指示をコーディングするのではなく、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することで十分であり得る。たとえば、係数をより効率的に走査し得る別の走査順序を使用するのではなく、係数をコーディングするためにジグザグ走査順序を使用することの悪影響を、上記で説明したブロックについての走査順序情報のコーディングの低減が上回り得る。
さらに別の例として、走査順序情報は、ブロックのための最確走査順序にジグザグ走査順序を指定することによってより効率的にコーディングされ得る。この例では、ジグザグ走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得るので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされなくてよい。さらに、最確走査順序にジグザグ走査順序を指定することによって、コーディング効率は、上記で説明したように、ブロックのための実際の最確走査順序を判断することを回避することにより、改善され得る。
上記で説明した例の各々において、走査順序情報は、ブロックの走査順序情報、すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とのうちの1つまたは複数をさらにエントロピー符号化することによって、より効率的にコーディングされ得る。たとえば、走査順序情報は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってエントロピー符号化され得る。上記で説明した例では、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得、それにより、コンテキストモデル内に含まれる確率推定値は、他の技法を使用して判断された確率推定値よりも正確になり得る。その結果、ブロックの走査順序情報はより効率的にコーディングされ得る。たとえば、この情報は、他の技法を使用したときよりも、たとえば、この情報をコーディングするために他のあまり正確でない確率推定値を使用したときよりも少ないビットを使用してコーディングされ得る。
上記で説明した例では、最確走査順序は、ブロックをコーディングするために使用されるコーディングモードと、ブロックに関連するサイズとに基づいて、エンコーダおよびデコーダにおいて定義され得る。コーディングモードは、イントラ予測モードおよびインター予測モードのうちの1つであり得るが、これらの技法は、イントラ予測モードを使用してコーディングされるブロックに最も適用可能であり得る。したがって、いくつかの例では、最確走査順序の判断は、ブロックをコーディングするために複数のイントラ予測モードのうちのどれが使用されるかに基づき得る。ブロックに関連するサイズは、ブロックに関連する、CUサイズ、PUサイズ、TUサイズ、あるいは場合によってはCU、PUおよび/またはTUサイズのいくつかの組合せさえをも指し得る。
本開示の技法は、上記で説明したSMコーディングのための技法、ならびに走査順序情報をコーディングするための他の技法を含む、ビデオデータのブロックについての走査順序情報をコーディングする任意の方法に適用可能であることに留意されたい。たとえば、本開示の技法は、ブロックのSMデータ(すなわち、最後有効係数位置情報および有効係数位置情報)とは無関係に、本明細書で説明する方法でビデオデータのブロックについての走査順序情報をコーディングすることを含み得る。一例として、本技法は、ブロックについて、最後有効係数位置情報をコーディングした後に、および有効係数位置情報をコーディングする前に走査順序情報をコーディングすることを含み得る。
いくつかの例では、ソースデバイス12のビデオエンコーダ20は、ビデオデータのいくつかのブロック(たとえば、1つまたは複数のマクロブロック、あるいはCUのTU)を符号化するように構成され得、宛先デバイス14のビデオデコーダ30は、ビデオエンコーダ20から、たとえば、モデム28および受信機26から符号化されたビデオデータを受信するように構成され得る。本開示の技法によれば、一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングするように構成され得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成され得る。この例では、ブロックに関連する走査順序と、最確走査順序との各々は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。この場合も、ジグザグ走査順序、水平走査順序、および垂直走査順序は例にすぎず、本開示の技法に一致する他の走査順序も定義または使用され得る。
ブロックのための最確走査順序を判断するために、ビデオエンコーダ20および/またはビデオデコーダ30は、図6A〜図6Bを参照しながら以下でより詳細に説明するように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断するように構成され得る。
さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
別の例では、ブロックの走査順序情報をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する走査順序の指示をコーディングするようにさらに構成され得る。
この例では、ブロックに関連する走査順序の指示をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、この場合も、ビデオエンコーダ20および/またはビデオデコーダ30が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、この場合も、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
したがって、この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示をコーディングすることによってブロックの走査順序情報をコーディングするように構成され得る。
別の例では、ブロックの走査順序情報をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用するようにさらに構成され得る。したがって、この例では、ブロックのための最確走査順序を判断し、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングした後に、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックについての追加の走査順序情報をコーディングしないように構成され得る。
さらに別の例では、ブロックのための最確走査順序を判断するために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックのための最確走査順序にジグザグ走査順序を指定するように構成され得る。この例では、上記で説明したのと同様の方法で、ブロックの走査順序情報をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)でない場合、ブロックに関連する走査順序の指示をコーディングするようにさらに構成され得る。言い換えれば、この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、たとえば、前にコーディングされたブロックの走査順序情報を使用して、ブロックのための最確走査順序の実際の判断を実行するのではなく、ジグザグ走査順序がブロックのための最確走査順序であると仮定するように構成され得る。
この例では、ブロックに関連する走査順序の指示をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、この場合も、ビデオエンコーダ20および/またはビデオデコーダ30が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、この場合も、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
したがって、この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序がジグザグ走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示をコーディングすることによってブロックの走査順序情報をコーディングするように構成され得る。
この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序に従うブロック内の最後非0係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報をコーディングするようにさらに構成され得る。さらに、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロック内のすべての他の非0係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報をコーディングするようにさらに構成され得る。前に説明したように、ブロックについての最後有効係数位置情報および有効係数位置情報は、ブロックについてのSMデータと総称されることがある。
いずれの場合も、上記で説明した方法で、ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報、すなわち、SMデータをコーディングした後に、ビデオエンコーダ20および/またはビデオデコーダ30はまた、ブロック内の各有効係数の値(たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の絶対値および符号)をコーディングし得る。
したがって、本開示の技法により、ビデオエンコーダ20および/またはビデオデコーダ30は、他の方法を使用したときよりも効率的にブロックの走査順序情報をコーディングすることが可能になり得る。このようにして、本開示の技法を使用すると、走査順序情報を含むコード化ビットストリームについての相対的なビット節約があり得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
図2は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的に符号化するために最確走査順序を使用するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、マクロブロック、CU、およびそれらのパーティションまたはサブパーティションを含む、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内のビデオデータの現在ブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、メモリ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。
符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して所与の受信ビデオブロックのインター予測コーディングを実行し得る。イントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して所与の受信ビデオブロックのイントラ予測コーディングを実行し得る。
モード選択ユニット40は、コーディング結果(たとえば、得られたコーディングレートおよびひずみレベル)に基づいて、およびコーディングされている所与の受信ブロックを含むフレームまたはスライスについてのフレームまたはスライスタイプに基づいて、コーディングモードのうちの1つ、すなわち、1つのモードまたは複数のイントラもしくはインターコーディングモードを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に供給し、参照フレームまたは参照スライス中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に供給し得る。概して、イントラ予測は、隣接する、前にコーディングされたブロックに対して現在ブロックを予測することを伴い、一方、インター予測は、現在ブロックを時間的に予測するために動き推定および動き補償を伴う。
動き推定ユニット42および動き補償ユニット44は、ビデオエンコーダ20のインター予測要素を表す。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム(または他のコード化ユニット)内でコーディングされている現在ブロックに対する予測参照フレーム(または他のコード化ユニット)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、ブロックのパーティションの変位を指示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。
動き推定ユニット42は、ビデオブロックをメモリ64中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算し得る。動き補償ユニット44はまた、この比較のために、参照フレーム、たとえば、IフレームまたはPフレームのサブ整数ピクセルを補間し得る。一例として、ITU H.264規格には、符号化されている現在フレームよりも前の表示順序を有する参照フレームを含むリスト0、および符号化されている現在フレームよりも後の表示順序を有する参照フレームを含むリスト1という2つのリストが記載されている。したがって、メモリ64に記憶されたデータは、これらのリストに従って編成され得る。
動き推定ユニット42は、メモリ64からの1つまたは複数の参照フレームのブロックを、現在フレーム、たとえば、PフレームまたはBフレームの符号化されるべきブロックと比較し得る。メモリ64中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット42によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット42および/または動き補償ユニット44はまた、サブ整数ピクセル位置の値がメモリ64に記憶されていない場合、メモリ64に記憶された参照フレームのサブ整数ピクセル位置の値を計算するように構成され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送り得る。動きベクトルによって識別される参照フレームブロックは、インター予測ブロック、または、より一般的に、予測ブロックと呼ばれることがある。動き補償ユニット44は、予測ブロックに基づいて予測データを計算し得る。
イントラ予測モジュール46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在ブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測モジュール46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を判断する。イントラ予測モジュール46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化されたブロックについてのひずみおよびレートから比率を計算し得る。
たとえば、イントラ予測またはインター予測を使用して、現在ブロックを予測した後に、ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測モジュール46によって計算された予測データを減算することによって残差ビデオブロックを形成し得る。加算器50は、この減算演算を実行し得る1つまたは複数の構成要素を表す。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用して、残差変換係数値を備えるビデオブロックを生成し得る。変換モジュール52は、概念的にDCTと同様である、H.264規格によって定義された変換などの他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換モジュール52は、変換を残差ブロックに適用して、残差変換係数のブロックを生成し得る。変換は、残差情報をピクセル領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートをさらに低減するために残差変換係数を量子化し得る。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
量子化の後に、エントロピー符号化ユニット56は、CAVLC、CABAC、PIPE、または別のエントロピーコーディング技法を含み得る、量子化変換係数をエントロピー符号化し得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、上記で説明したエントロピーコーディング量子化変換係数に加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、符号化ビデオビットストリーム中で送信するのに適切なシンタックス要素を用いて、ブロック(たとえば、マクロブロック、CU、またはLCU)あるいはブロックを含んでいるビデオフレームについてのヘッダ情報を構築し得る。いくつかのコーディング規格によれば、そのようなシンタックス要素は、前に説明したように、ブロックの走査順序情報を含み得る。同じく前に説明したように、走査順序情報は、非効率的にコーディングされた場合、全体的な圧縮ビデオビットレートのうちの高いパーセンテージを消費し得る。したがって、本開示では、他の方法を使用したときよりも効率的にブロックの走査順序情報をコーディングすることを可能にし得る技法について説明する。
いくつかの例として、ビデオエンコーダ20のエントロピー符号化ユニット56は、ビデオデータのいくつかのブロック(たとえば、1つまたは複数のマクロブロック、あるいはCUのTU)を符号化するように構成され得る。本開示の技法によれば、一例として、エントロピー符号化ユニット56は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化するように構成され得る。たとえば、エントロピー符号化ユニット56は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化することとを行うように構成され得る。この例では、ブロックに関連する走査順序と、最確走査順序との各々は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。この場合も、ジグザグ走査順序、水平走査順序、および垂直走査順序は例にすぎず、本開示の技法に一致する他の走査順序も定義または使用され得る。
ブロックのための最確走査順序を判断するために、エントロピー符号化ユニット56は、図6A〜図6Bを参照しながら以下でより詳細に説明するように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断するように構成され得る。たとえば、エントロピー符号化ユニット56は、前に符号化されたブロック、たとえば、現在符号化されているブロックと同じ関連する予測モードおよびサイズをもつブロックについての走査順序情報を使用して最確走査順序を判断し得る。
さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化するために、エントロピー符号化ユニット56は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
さらに、指示は単一ビットまたは「ビン」を備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が最確走査順序であるか(たとえば、bin=「0」)そうでないか(たとえば、bin=「1」)を示すようにビンを符号化し得る。
別の例では、ブロックの走査順序情報を符号化するために、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する走査順序の指示を符号化するようにさらに構成され得る。
この例では、ブロックに関連する走査順序の指示を符号化するために、エントロピー符号化ユニット56は、この場合も、エントロピー符号化ユニット56が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
さらに、ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)を示すようにビンを符号化するように構成され得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー符号化ユニット56は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を符号化するように構成され得る。
したがって、この例では、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を符号化することによってブロックの走査順序情報を符号化するように構成され得る。
以下は、上記で説明した例に一致する、本開示の技法を実行するために使用され得るコンピュータコードの一例である。たとえば、このコンピュータコードは、ビデオデータのブロックのための最確走査順序に対応する走査順序インデックスの2次元アレイを構成するためのアルゴリズムを含む。この例では、特定のブロックのための最確走査順序は、そのブロックに関連するイントラ予測モードおよびサイズに基づいて判断される。したがって、2次元アレイの各行は、ビデオデータのブロックに関連するサイズに対応し、アレイの各列は、ブロックに関連するイントラ予測モードに対応する。言い換えれば、2次元アレイ内の各位置は、特定のイントラ予測モードおよびサイズに関連しているビデオデータのブロックのための最確走査順序を示す。たとえば、2次元アレイによって示されるブロックのための最確走査順序は、前に符号化されたブロックに対応する走査順序情報を使用して判断され得る。
この例では、特定のブロックのための最確走査順序は、3つの走査順序インデックス、すなわち、「0」、「1」、および「2」のうちの1つを使用して示される。一例として、走査順序インデックスはそれぞれ、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを表し得る。他の例では、走査順序インデックスは、他の走査順序を表し得、より多いまたはより少ないインデックスを備え得る。
コンピュータコードはまた、ブロックの走査順序情報を符号化するために(上記で説明した2次元アレイを使用してブロックに関連するイントラ予測モードおよびサイズに基づいて判断される)特定のブロックのための最確走査順序を使用する符号化アルゴリズムを含む。たとえば、このアルゴリズムは、1つと2つとの間のビンを使用してブロックの走査順序情報を符号化し、各ビンは、最確走査順序とイントラ予測モードとサイズとを含むコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって符号化される。前に説明したように、コンテキストは、特定のビンを符号化するためのコンテキストモデル内の確率推定値を選択するために使用される。特に、確率推定値は、ビンが所与の値(たとえば、「0」または「1」)を有する可能性を示す。
Figure 0005852133
別の例では、ブロックの走査順序情報をコーディングするために、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数を符号化するためにジグザグ走査順序を使用するようにさらに構成され得る。したがって、この例では、ブロックのための最確走査順序を判断し、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化した後に、エントロピー符号化ユニット56は、ブロックについての追加の走査順序情報を符号化しないように構成され得る。
さらに別の例では、ブロックのための最確走査順序を判断するために、エントロピー符号化ユニット56は、ブロックのための最確走査順序にジグザグ走査順序を指定するように構成され得る。この例では、上記で説明したのと同様の方法で、ブロックの走査順序情報を符号化するために、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)でない場合、ブロックに関連する走査順序の指示を符号化するようにさらに構成され得る。言い換えれば、この例では、エントロピー符号化ユニット56は、たとえば、前に符号化されたブロックの走査順序情報を使用して、ブロックのための最確走査順序の実際の判断を実行するのではなく、ジグザグ走査順序がブロックのための最確走査順序であると仮定するように構成され得る。
この例では、ブロックに関連する走査順序の指示を符号化するために、エントロピー符号化ユニット56は、この場合も、エントロピー符号化ユニット56が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
ブロックに関連する走査順序の指示は、この場合も、単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)を示すようにビンを符号化し得る。この例では、第1の走査順序および第2の走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー符号化ユニット56は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を符号化し得る。
したがって、この例では、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を符号化することによってブロックの走査順序情報を符号化するように構成され得る。
以下は、上記で説明した例に一致する、本開示の技法を実行するために使用されるコンピュータコードの別の例である。たとえば、このコンピュータコードは、ビデオデータのブロックのためのコンテキストインデックスの2次元アレイを構成するためのアルゴリズムを含む。この例では、特定のブロックのための各コンテキストインデックスは、ブロックに関連するイントラ予測モードおよびサイズに基づいて判断される。したがって、2次元アレイの各行は、ビデオデータのブロックに関連するサイズに対応し、アレイの各列は、ブロックに関連するイントラ予測モードに対応する。言い換えれば、2次元アレイ内の各位置は、特定のイントラ予測モードおよびサイズに関連しているビデオデータのブロックのためのコンテキストインデックスを含む。
この例では、特定のブロックのための各コンテキストインデックスは、3つのインデックス、すなわち、「0」、「1」、および「2」のうちの1つを備える。他の例では、コンテキストインデックスはより多いまたはより少ないインデックスを備え得る。
コンピュータコードはまた、ブロックの走査順序情報を符号化するために(上記で説明した2次元アレイを使用してブロックに関連するイントラ予測モードおよびサイズに基づいて判断される)特定のブロックのためのコンテキストインデックスを使用する符号化アルゴリズムを含む。たとえば、このアルゴリズムは、1つと2つとの間のビンを使用してブロックの走査順序情報を符号化し、各ビンは、コンテキストインデックスとイントラ予測モードとサイズとを含むコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって符号化される。前に説明したように、コンテキストは、特定のビンを符号化するためのコンテキストモデル内の確率推定値を選択するために使用される。特に、確率推定値は、ビンが所与の値(たとえば、「0」または「1」)を有する可能性を示す。
Figure 0005852133
上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビン(すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビン)を符号化するために、対応するコンテキストモデルは、ビンが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。エントロピー符号化ユニット56は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを符号化するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロック、たとえば、現在符号化されているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの走査順序情報を符号化し得る。
この例では、エントロピー符号化ユニット56は、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報を符号化するようにさらに構成され得る。たとえば、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。さらに、エントロピー符号化ユニット56は、ブロック内のすべての他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報を符号化するようにさらに構成され得る。たとえば、ブロックの有効係数位置情報は、前に説明したように、同じく有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー符号化ユニット56は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってそれぞれのシーケンスの各フラグを符号化することによって最後有効係数位置情報と有効係数位置情報とを符号化し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロックのための対応する最後有効係数フラグと有効係数フラグとの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックについての最後有効係数位置情報と有効係数位置情報とを符号化し得る。他の例では、エントロピー符号化ユニット56は、他の技法を使用してブロックの最後有効係数位置情報と有効係数位置情報とを符号化し得ることに留意されたい。
いずれの場合も、上記で説明した方法で、ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報、すなわち、SMデータを符号化した後に、エントロピー符号化ユニット56はまた、ブロック内の各有効係数の値(たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の絶対値および符号)を符号化し得る。
したがって、本開示の技法により、エントロピー符号化ユニット56は、他の方法を使用したときよりも効率的にブロックの走査順序情報を符号化することが可能になり得る。このようにして、本開示の技法を使用すると、走査順序情報を含むコード化ビットストリームについての相対的なビット節約があり得る。
逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックをメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、メモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
このように、ビデオエンコーダ20は、ビデオデータのブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダの一例を表し、ブロックに関連する走査順序を識別する情報をコーディングするために、ビデオコーダは、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成される。
図3は、本開示の技法に一致する、ビデオデータのブロックについての符号化された走査順序情報を効率的に復号するために最確走査順序を使用するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測モジュール74と、逆量子化ユニット76と、逆変換モジュール78と、メモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得る。
いくつかの例では、ビデオデコーダ30は、ビデオエンコーダ20から符号化ビデオデータ(たとえば、1つまたは複数のマクロブロック、またはCUのTU)を受信するように構成され得る。本開示の技法によれば、一例として、エントロピー復号ユニット70は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号するように構成され得る。たとえば、エントロピー復号ユニット70は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号することとを行うように構成され得る。この例では、ブロックに関連する走査順序と、最確走査順序との各々は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。この場合も、ジグザグ走査順序、水平走査順序、および垂直走査順序は例にすぎず、本開示の技法に一致する他の走査順序も定義または使用され得る。
ブロックのための最確走査順序を判断するために、エントロピー復号ユニット70は、図6A〜図6Bを参照しながら以下でより詳細に説明するように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断するように構成され得る。
さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号するために、エントロピー復号ユニット70は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
さらに、指示は単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、符号化された走査順序データを受信し、その走査順序データを復号して、走査順序が最確走査順序であるか(たとえば、bin=「0」)そうでないか(たとえば、bin=「1」)をビンが示すようにビンを判断し得る。
別の例では、ブロックの走査順序情報を復号するために、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する走査順序の指示を復号するようにさらに構成され得る。
この例では、ブロックに関連する走査順序の指示を復号するために、エントロピー復号ユニット70は、この場合も、エントロピー復号ユニット70が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
さらに、ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、追加の符号化された走査順序データを受信し、その追加の走査順序データを復号して、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)をビンが示すようにビンを判断するように構成され得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー復号ユニット70は、他の技法を使用して、たとえば、複数のビンを判断するために追加の走査順序データを復号して、ブロックに関連する走査順序の指示を復号するように構成され得る。
したがって、この例では、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を復号することによってブロックの走査順序情報を復号するように構成され得る。
別の例では、ブロックの走査順序情報を復号するために、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数を復号するためにジグザグ走査順序を使用するようにさらに構成され得る。したがって、この例では、ブロックのための最確走査順序を判断し、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号した後に、エントロピー復号ユニット70は、ブロックについての追加の走査順序情報を復号しないように構成され得る。
さらに別の例では、ブロックのための最確走査順序を判断するために、エントロピー復号ユニット70は、ブロックのための最確走査順序にジグザグ走査順序を指定するように構成され得る。この例では、上記で説明したのと同様の方法で、ブロックの走査順序情報を復号するために、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)でない場合、ブロックに関連する走査順序の指示を復号するようにさらに構成され得る。言い換えれば、この例では、エントロピー復号ユニット70は、たとえば、前に復号されたブロックの走査順序情報を使用して、ブロックのための最確走査順序の実際の判断を実行するのではなく、ジグザグ走査順序がブロックのための最確走査順序であると仮定するように構成され得る。
この例では、ブロックに関連する走査順序の指示を復号するために、エントロピー復号ユニット70は、この場合も、エントロピー復号ユニット70が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。
ブロックに関連する走査順序の指示は、この場合も、単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、追加の符号化された走査順序データを受信し、その追加の走査順序データを復号して、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)をビンが示すようにビンを判断し得る。この例では、第1の走査順序および第2の走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー復号ユニット70は、他の技法を使用して、たとえば、複数のビンを判断するために追加の走査順序データを復号して、ブロックに関連する走査順序の指示を復号し得る。
したがって、この例では、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序(すなわち、この特定の例では、ジグザグ走査順序)であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を復号することによってブロックの走査順序情報を復号するように構成され得る。
上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビン(すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビン)を復号するために、対応するコンテキストモデルは、ビンが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。エントロピー復号ユニット70は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを復号するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロック、たとえば、現在復号されているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの走査順序情報を復号し得る。
この例では、エントロピー復号ユニット70は、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報を復号するようにさらに構成され得る。たとえば、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。さらに、エントロピー復号ユニット70は、ブロック内のすべての他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報を復号するようにさらに構成され得る。たとえば、ブロックの有効係数位置情報は、前に説明したように、同じく有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー復号ユニット70は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってそれぞれのシーケンスの各フラグを復号することによって最後有効係数位置情報と有効係数位置情報とを復号し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロックのための対応する最後有効係数フラグと有効係数フラグとの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックについての最後有効係数位置情報と有効係数位置情報とを復号し得る。他の例では、エントロピー復号ユニット70は、他の技法を使用してブロックの最後有効係数位置情報と有効係数位置情報とを復号し得ることに留意されたい。
いずれの場合も、上記で説明した方法で、ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報、すなわち、SMデータを復号した後に、エントロピー復号ユニット70はまた、ブロック内の各有効係数の値(たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の絶対値および符号)を復号し得る。
したがって、本開示の技法により、エントロピー復号ユニット70は、他の方法を使用したときよりも効率的にブロックの走査順序情報を復号することが可能になり得る。このようにして、本開示の技法を使用すると、走査順序情報を含むコード化ビットストリームについての相対的なビット節約があり得る。
動き補償ユニット72は、ビットストリーム中で受信された動きベクトルを使用して、メモリ82中の参照フレーム中の予測ブロックを識別し得る。イントラ予測モジュール74は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。
イントラ予測モジュール74は、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化されたブロックをイントラ予測するために、符号化されたブロックのイントラ予測モードの指示を使用し得る。ブロックがインター予測モード符号化される例では、動き補償ユニット72は、符号化されたブロックについての動き補償予測データを取り出すために、動きベクトルを定義する情報を受信し得る。いずれの場合も、動き補償ユニット72またはイントラ予測モジュール74は、予測ブロックを定義する情報を加算器80に供給し得る。
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、H.264復号規格によって定義される、またはHEVCテストモデルによって実行されるなど、従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、各ブロックについてビデオエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。
逆変換モジュール78は、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
動き補償ユニット72は、符号化ブロックのためのシンタックス情報のいくつかを使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されるブロックのサイズと、符号化ビデオシーケンスのフレームまたはスライスの各ブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化ブロックまたはパーティションのための1つまたは複数の参照フレーム(および参照フレームリスト)と、符号化ビデオシーケンスを復号するための他の情報とを判断する。イントラ予測モジュール74はまた、たとえば、上記で説明したように、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために、符号化ブロックのシンタックス情報を使用し得る。
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測モジュール74によって生成された対応する予測ブロックと合計して、復号ブロックを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理し得る。復号ビデオブロックは、次いで、メモリ82に記憶され、メモリ82は、参照ブロックを後続の動き補償に供給し、また、(図1のディスプレイデバイス32などの)ディスプレイデバイス上での提示のために復号ビデオを生成する。
このように、ビデオデコーダ30は、ビデオデータのブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダの一例を表し、ブロックに関連する走査順序を識別する情報をコーディングするために、ビデオコーダは、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成される。
図4A〜図4Cは、ビデオデータのブロックと、対応する有効係数位置情報および最後有効係数位置情報との一例を示す概念図である。図4Aに示すように、ビデオデータのブロック、たとえば、マクロブロック、またはCUのTUは、量子化変換係数を含み得る。たとえば、図4Aに示すように、ブロック400は、前に説明した予測、変換、および量子化技法を使用して生成される量子化変換係数を含み得る。この例では、ブロック400は2N×2Nのサイズを有し、Nは2に等しいと仮定する。したがって、同じく図4Aに示すように、ブロック400は4×4のサイズを有し、16個の量子化変換係数を含む。さらに、ブロック400に関連する走査順序は、下記でより詳細に説明する図5Aに示すようにジグザグ走査順序であると仮定する。
この例では、ジグザグ走査順序に従うブロック400内の最後有効係数は、ブロック400内の位置406に位置する「1」に等しい量子化変換係数である。他の例では、上記で説明したように、ブロックは、ブロック400のサイズよりも小さいかまたは大きいサイズを有し得、ブロック400よりも多いかまたは少ない量子化変換係数を含み得る。さらに他の例では、ブロック400に関連する走査順序は異なる走査順序、たとえば、水平走査順序、垂直走査順序、対角走査順序、または別の走査順序であり得る。
図4Bは、有効係数フラグデータ、すなわち、前に説明したようにマップまたはブロック形式で表される有効係数フラグの一例を示す。図4Bの例では、ブロック402は、図4Aに示すブロック400に対応し得る。言い換えれば、ブロック402の有効係数フラグは、ブロック400の量子化変換係数に対応し得る。図4Bに示すように、ブロック402の「1」に等しい有効係数フラグは、ブロック400の有効係数に対応する。同様に、ブロック402の「0」に等しい有効係数フラグは、ブロック400のゼロまたは非有効係数に対応する。
この例では、ジグザグ走査順序に従うブロック400内の最後有効係数に対応するブロック402の有効係数フラグは、ブロック402内の位置408に位置する「1」に等しい有効係数フラグである。他の例では、有効係数または非有効係数を示すために使用される有効係数フラグの値は異なり得る(たとえば、「0」に等しい有効係数フラグが有効係数に対応し得、「1」に等しい有効係数フラグが非有効係数に対応し得る)。
図4Cは、最後有効係数フラグデータ、すなわち、同じく前に説明したようにマップまたはブロック形式で表される最後有効係数フラグの一例を示す。図4Cの例では、ブロック404は、それぞれ図4Aおよび図4Bに示すブロック400およびブロック402に対応し得る。言い換えれば、ブロック404の最後有効係数フラグは、ブロック400の量子化変換係数と、ブロック402の有効係数フラグとに対応し得る。
図4Cに示すように、ブロック404内の位置410に位置するブロック404の「1」に等しい最後有効係数フラグは、ジグザグ走査順序に従う、ブロック400の最後有効係数と、ブロック402の「1」に等しい有効係数フラグのうちの最後のものとに対応する。同様に、ブロック404の「0」に等しい最後有効係数フラグ(すなわち、すべての残りの最後有効係数フラグ)は、ブロック400のゼロまたは非有効係数と、ブロック402の「1」に等しいすべての有効係数フラグの、ジグザグ走査順序に従うそのような有効係数フラグの最後のもの以外のものとに対応する。
走査順序に従う最後有効係数を示すために使用される最後有効係数フラグの値は異なり得る(たとえば、「0」に等しい最後有効係数フラグが、走査順序に従う最後有効係数に対応し得、「1」に等しい最後有効係数フラグがすべての残りの係数に対応し得る)。いずれの場合も、ブロック402の有効係数フラグと、ブロック404の最後有効係数フラグとは、ブロック400のSMデータと総称されることがある。
上記で説明したように、ビデオデータのブロックについての有効係数位置情報は、ブロックに関連する走査順序を使用して、ブロックの有効係数フラグを、図4Bに示すブロック402に示されるような2次元ブロック表現から1次元アレイに直列化することによって示され得る。図4A〜図4Bに示すブロック400〜402の例では、再びジグザグ走査順序を仮定すると、ブロック400の有効係数位置情報は、ブロック402の有効係数フラグを1次元アレイに直列化することによって示され得る。すなわち、ブロック400の有効係数位置情報は、ジグザグ走査順序に従ってブロック402の有効係数フラグのシーケンスを生成することによって示され得る。
この例では、生成されるシーケンスは、ジグザグ走査順序に従うブロック402の最初の6つの有効係数フラグを表す値「111111」に対応し得る。生成されるシーケンスは、ジグザグ走査順序における最初のブロック位置(すなわち、DC位置)から開始して、ジグザグ走査順序に従うブロック400の最後有効係数に対応する(すなわち、ブロック404の「1」に等しい最後有効係数フラグに対応する)ブロック位置で終わる、ブロック400内のブロック位置の範囲に対応する有効係数フラグを含んでいることがあることに留意されたい。
同じく上記で説明したように、ブロックの最後有効係数位置情報は、ブロックに関連する走査順序を使用して、ブロックの最後有効係数フラグを、図4Cに示すブロック404に示されるような2次元ブロック表現から1次元アレイに直列化することによって示され得る。図4A〜図4Cに示すブロック400〜404の例では、再びジグザグ走査順序を仮定すると、ブロック400の最後有効係数位置情報は、ブロック404の最後有効係数フラグを1次元アレイに直列化することによって示され得る。すなわち、ブロック400の最後有効係数位置情報は、ジグザグ走査順序に従ってブロック404の最後有効係数フラグのシーケンスを生成することによって示され得る。この例では、生成されるシーケンスは、ジグザグ走査順序に従うブロック404の最初の6つの最後有効係数フラグを表す値「000001」に対応し得る。
この場合も、生成されるシーケンスは、ジグザグ走査順序における最初のブロック位置から開始して、ジグザグ走査順序に従うブロック400の最後有効係数に対応する(すなわち、ブロック404の「1」に等しい最後有効係数フラグに対応する)ブロック位置で終わる、ブロック400内のブロック位置の範囲に対応する最後有効係数フラグを含んでいることがあることに留意されたい。したがって、この例では、ジグザグ走査順序に従う「1」に等しい最後有効係数フラグに続く最後有効係数フラグは、シーケンス中に含まれない。概して、ビデオデータのブロックに関連する走査順序に従う「1」に等しい最後有効係数フラグに続く最後有効係数フラグは、ブロックの最後有効係数位置情報を示すことを必要とされないことがあり得る。したがって、いくつかの例では、これらのフラグは、この情報を指示するために使用される最後有効係数フラグの生成されるシーケンスから省略される。
上記で説明したように、最後有効係数が走査順序に従う最後のブロック位置(たとえば、右下のブロック位置)内に位置する場合には、最後のブロック位置はブロックの最後有効係数を含んでいると推測され得るので、生成されるシーケンスはその位置に対応する最後有効係数フラグを含まないことがあることにも留意されたい。したがって、この例では、生成されるシーケンスは、「000000000000000」の値に対応し得、最後のブロック位置に対応する最後有効係数フラグはこのシーケンス中に含まれておらず、「1」に等しいと推測される。
図5A〜図5Cは、それぞれジグザグ走査順序、水平走査順序、および垂直走査順序を使用して走査されるビデオデータのブロックの例を示す概念図である。図5A〜図5Cに示すように、ビデオデータの8×8ブロック、たとえば、マクロブロック、またはCUのTUは、円を用いて示されている、対応するブロック位置中の64個の量子化変換係数を含み得る。たとえば、ブロック500〜504はそれぞれ、この場合も、前に説明した予測、変換、および量子化技法を使用して生成される64個の量子化変換係数を含み得、各対応するブロック位置が円を用いて示されている。この例では、ブロック500〜504は2N×2Nのサイズを有し、Nは4に等しいと仮定する。したがって、ブロック500〜504は8×8のサイズを有する。
図5Aに示すように、ブロック500に関連する走査順序はジグザグ走査順序である。ジグザグ走査順序は、ブロック500の量子化変換係数を、図5Aの矢印によって示されるように対角様式で走査する。同様に、図5Bおよび図5Cに示すように、ブロック502および504に関連する走査順序は、それぞれ水平走査順序および垂直走査順序である。同じく図5Bおよび図5Cの矢印によって示されるように、水平走査順序は、ブロック502の量子化変換係数を、水平線ごとに、または「ラスタ」様式で走査し、一方、垂直走査順序は、ブロック504の量子化変換係数を、垂直線ごとに、または「回転ラスタ」様式で走査する。
他の例では、上記で説明したように、ブロックは、ブロック500〜504のサイズよりも小さいかまたは大きいサイズを有し得、より多いまたはより少ない量子化変換係数および対応するブロック位置を含み得る。これらの例では、ブロックに関連する走査順序は、ブロックの量子化変換係数を、図5A〜図5Cの8×8ブロック500〜504の例において示したのと実質的に同様の方法で走査し得、たとえば、4×4ブロック、または16×16ブロックが、前に説明した走査順序のいずれかに従って走査され得る。
前に説明したように、本開示の技法は、対角走査順序と、ジグザグ、水平、垂直、および/または対角走査順序の組合せである走査順序と、部分的にジグザグ、部分的に水平、部分的に垂直、および/または部分的に対角である走査順序とを含む、多種多様な他の走査順序に対しても適用され得る。
図6A〜図6Bは、本開示の技法に一致する、様々なサイズを有するブロックビデオデータの例と、予測データを生成するために様々な予測モードが使用されるビデオデータのブロックの例とを示す概念図である。図6Aに示すように、ブロック600、たとえば、ビデオデータのマクロブロック、またはCUのTUは、特定のサイズを有し得る。この例では、ブロック600のサイズが2N×2Nであり、Nは32に等しいと仮定する。したがって、ブロック600は64×64のサイズを有する。さらに、ブロック600は、図1を参照しながら前に説明したように、同じく図6Aに示されているブロック602〜608を含む、より小さいブロックに再帰的に区分または分割されると仮定する。たとえば、ブロック602は32×32のサイズを有し、ブロック604は16×16のサイズを有し、ブロック606は8×8のサイズを有し、ブロック608は4×4のサイズを有すると仮定する。他の例では、ブロック600は、ブロック602〜608よりも多いかまたは少ないより小さいブロックに区分され得る。さらに他の例では、ブロック600およびそれの任意のパーティションは、ブロック600〜608のサイズとは異なるサイズを有し得る。
図6Bに示すように、ブロック610A〜610Iはそれぞれ、様々な予測モードのうちの1つを使用してコーディングされ得る。図6Bの様々な図は、様々な図に示す方向性矢印に従って隣接ピクセルデータから予測データが取得または導出され得る、様々な方向性予測モードを示している。DCモード、平面モード、または他の方向性予測モードなど、他のイントラ予測モードも使用されることができる。場合によっては、33個の異なるイントラ予測モードがサポートされ得る。いずれの場合も、図6Bに示すように、ブロック610A〜610Iの各々は、ブロック610A〜610Iの各々について示されているように一意のイントラ予測モードを使用してコーディングされ得、それぞれのブロックのピクセルを予測するためにビデオデータの隣接ブロックのピクセルが使用される。他の例では、ブロック610A〜610Iは、図6Bに示されていない他の予測モードを使用してコーディングされ得る。
したがって、本開示の技法によれば、図6Aに示すブロック600〜608に関連するブロックサイズと、図6Bに示すブロック610A〜610Iに関連する予測モードとのうちの少なくとも1つがそれぞれ、前に説明したように、ブロック600〜608および610A〜610Iのうちの特定の1つについての走査順序情報をコーディングするためにコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行するときにコンテキストとして使用され得る。
図7は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための例示的な方法を示すフローチャートである。図7の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図7の技法について、ビデオエンコーダ20(図1および図2)および/またはビデオデコーダ30(図1および図3)に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図7に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
初めに、いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30が、ビデオデータのブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す情報、すなわち、ブロックの最後有効係数位置情報をコーディングする(700)。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。さらに、ブロックに関連する走査順序は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。このようにして、図7の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。
いくつかの例では、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってシーケンスの各最後有効係数フラグをコーディングすることによって最後有効係数位置情報をコーディングし得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの前にコーディングされたブロックの対応する最後有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続してコーディングされるブロックの最後有効係数位置情報をコーディングし得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、他の技法を使用してブロックの最後有効係数位置情報をコーディングし得ることに留意されたい。
ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロックのための最確走査順序を判断する(702)。たとえば、ブロックのための最確走査順序を判断するために、ビデオエンコーダ20および/またはビデオデコーダ30は、図6A〜図6Bを参照しながら前に説明したように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断し得る。一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、前にコーディングされたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックの走査順序情報を使用してこの判断を行い得る。最確走査順序はまた、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。
ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングする(704)。たとえば、ビデオエンコーダ20は、図8の例示的な方法においてより詳細に説明するようにこの指示を符号化し得、ビデオデコーダ30は、図9の例示的な方法においてより詳細に説明するようにこの指示を復号し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって指示をコーディングし得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。指示は単一ビットまたは「ビン」を備え得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、走査順序が最確走査順序であるか(たとえば、bin=「0」)そうでないか(たとえば、bin=「1」)を示すようにビンをコーディングし得る。
ブロックに関連する走査順序が最確走査順序である場合(706)、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングすることを停止する(710)。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素のコーディングに進み得る。
しかしながら、ブロックに関連する走査順序が最確走査順序でない場合(706)、ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロックに関連する走査順序の指示をコーディングする(708)。この場合も、ビデオエンコーダ20および/またはビデオデコーダ30は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって指示をコーディングし得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)を示すようにビンをコーディングし得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示をコーディングし得る。
上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビン(すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビン)をコーディングするために、対応するコンテキストモデルは、ビンが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンをコーディングするためにビンのための確率推定値を使用し得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの前にコーディングされたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続してコーディングされるブロックの走査順序情報をコーディングし得る。
いずれの場合も、ブロックに関連する走査順序の指示をコーディングした後に(708)、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングすることを停止する(710)。この場合も、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素のコーディングに進み得る。
いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報をコーディングする(712)。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってシーケンスの各有効係数フラグをコーディングすることによって有効係数位置情報をコーディングし得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの前にコーディングされたブロックの対応する有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続してコーディングされるブロックの有効係数位置情報をコーディングし得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、他の技法を使用してブロックの有効係数位置情報をコーディングし得ることに留意されたい。
このように、図7の方法は、ビデオデータのブロックに関連する走査順序を識別する情報をコーディングする方法であって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを含む、方法の一例を表す。
図8は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的に符号化するために最確走査順序を使用するための例示的な方法を示すフローチャートである。図8の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図8の技法について、エントロピー符号化ユニット56(図2)に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図8に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
最初に、エントロピー符号化ユニット56が、ビデオデータのブロックを受信し得る(800)。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。いくつかの例では、エントロピー符号化ユニット56は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す情報、すなわち、ブロックの最後有効係数位置情報を符号化する(802)。たとえば、ブロックに関連する走査順序は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。このようにして、図8の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。
いくつかの例では、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー符号化ユニット56は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってシーケンスの各最後有効係数フラグを符号化することによって最後有効係数位置情報を符号化し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロックのための対応する最後有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの最後有効係数位置情報を符号化し得る。他の例では、エントロピー符号化ユニット56は、他の技法を使用してブロックの最後有効係数位置情報を符号化し得ることに留意されたい。
エントロピー符号化ユニット56は、さらに、ブロックのための最確走査順序を判断する(804)。たとえば、ブロックのための最確走査順序を判断するために、エントロピー符号化ユニット56は、図6A〜図6Bを参照しながら前に説明したように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断し得る。一例として、エントロピー符号化ユニット56は、前に符号化されたブロック、たとえば、現在符号化されているブロックと同じ関連する予測モードおよびサイズをもつブロックの走査順序情報を使用してこの判断を行い得る。最確走査順序はまた、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。
エントロピー符号化ユニット56は、さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化する(806)。エントロピー符号化ユニット56は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって指示を符号化し得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。指示は単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が最確走査順序であるか(たとえば、bin=「0」)そうでないか(たとえば、bin=「1」)を示すようにビンを符号化し得る。
ブロックに関連する走査順序が最確走査順序である場合(808)、エントロピー符号化ユニット56は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化することを停止する(816)。たとえば、エントロピー符号化ユニット56は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。
しかしながら、ブロックに関連する走査順序が最確走査順序でない場合(808)、エントロピー符号化ユニット56は、さらに、ブロックに関連する走査順序の指示を符号化する(810)。この場合も、エントロピー符号化ユニット56は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって指示をコーディングし得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)を示すようにビンを符号化し得、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備える。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー符号化ユニット56は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を符号化し得る。
上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビン(すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビン)を符号化するために、対応するコンテキストモデルは、ビンが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。エントロピー符号化ユニット56は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを符号化するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの走査順序情報を符号化し得る。
いずれの場合も、ブロックに関連する走査順序の指示を符号化した後に(810)、エントロピー符号化ユニット56は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化することを停止する(812)。この場合も、たとえば、エントロピー符号化ユニット56は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。
いくつかの例では、エントロピー符号化ユニット56は、さらに、ブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を符号化する(814)。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー符号化ユニット56は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによってシーケンスの各有効係数フラグを符号化することによって有効係数位置情報を符号化し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロックのための対応する有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの有効係数位置情報を符号化し得る。他の例では、エントロピー符号化ユニット56は、他の技法を使用してブロックの有効係数位置情報を符号化し得ることに留意されたい。
最後に、エントロピー符号化ユニット56は、ブロックを符号化することを停止する(816)。たとえば、エントロピー符号化ユニット56は、上記で説明したように、他のコーディングタスク、たとえば、後続のブロックの符号化に進み得る。
このように、図8の方法は、ビデオデータのブロックに関連する走査順序を識別する情報を符号化する方法であって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを含む、方法の一例を表す。
図9は、本開示の技法に一致する、ビデオデータのブロックについての符号化された走査順序情報を効率的に復号するために最確走査順序を使用するための例示的な方法を示すフローチャートである。図9の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図9の技法について、エントロピー復号ユニット70(図3)に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図9に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
初めに、エントロピー復号ユニット70は、ビデオデータのブロックについての符号化された有効性データを受信する(900)。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。エントロピー復号ユニット70は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す情報、すなわち、ブロックの最後有効係数位置情報を判断するために有効性データを復号する(902)。たとえば、ブロックに関連する走査順序は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。このようにして、図9の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。
いくつかの例では、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー復号ユニット70は、シーケンスの各最後有効係数フラグを生成するために有効性データを復号することによって最後有効係数位置情報を判断するために有効性データを復号し得る。たとえば、エントロピー復号ユニット70は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行し得、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロックのための対応する最後有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの最後有効係数位置情報を復号し得る。他の例では、エントロピー復号ユニット70は、他の技法を使用してブロックの最後有効係数位置情報を復号し得ることに留意されたい。
エントロピー復号ユニット70は、さらに、ブロックのための最確走査順序を判断する(904)。たとえば、ブロックのための最確走査順序を判断するために、エントロピー復号ユニット70は、図6A〜図6Bを参照しながら前に説明したように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断し得る。一例として、エントロピー復号ユニット70は、前に復号されたブロック、たとえば、現在復号されているブロックと同じ関連する予測モードおよびサイズをもつブロックの走査順序情報を使用してこの判断を行い得る。最確走査順序はまた、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。
エントロピー復号ユニット70は、さらに、ブロックについての符号化された走査順序データを受信する(906)。エントロピー復号ユニット70は、さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を判断するために走査順序データを復号する(908)。エントロピー復号ユニット70は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって指示を判断するために走査順序データを復号し得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。指示は単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、走査順序データを復号して、走査順序が最確走査順序であるか(たとえば、bin=「0」)そうでないか(たとえば、bin=「1」)をビンが示すようにビンを判断し得る。
ブロックに関連する走査順序が最確走査順序である場合(910)、エントロピー復号ユニット70は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号することを停止する(916)。たとえば、エントロピー復号ユニット70は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。
しかしながら、ブロックに関連する走査順序が最確走査順序でない場合(910)、エントロピー復号ユニット70は、さらに、ブロックについての追加の符号化された走査順序データを受信する(912)。エントロピー復号ユニット70は、さらに、ブロックに関連する走査順序の指示を判断するためにこの追加の走査順序データを復号する(914)。この場合も、エントロピー復号ユニット70は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行することによって指示を判断するために追加の走査順序データを復号し得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、追加の走査順序データを復号して、走査順序が第1の走査順序であるか(たとえば、bin=「0」)第2の走査順序であるか(たとえば、bin=「1」)をビンが示すようにビンを判断し得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数(たとえば、3つ、4つ、5つ、...など)の走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー復号ユニット70は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を判断するために追加の走査順序データを復号し得る。
上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビン(すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビン)を判断するために、対応するコンテキストモデルは、ビンが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。エントロピー復号ユニット70は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを判断するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの走査順序情報を復号し得る。
いずれの場合も、ブロックに関連する走査順序の指示を判断するために追加の走査順序データを復号した後に(914)、エントロピー復号ユニット70は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号することを停止する(916)。この場合も、たとえば、エントロピー復号ユニット70は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。
いくつかの例では、エントロピー復号ユニット70は、さらに、ブロックについての残りの符号化された有効性データを受信する(918)。エントロピー復号ユニット70は、さらに、ブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を判断するために残りの有効性データを復号する(920)。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー復号ユニット70は、シーケンスの各有効係数フラグを生成するために残りの有効性データを復号することによって有効係数位置情報を判断するために残りの有効性データを復号し得る。たとえば、エントロピー復号ユニット70は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス(たとえば、CABACプロセス)を実行し得、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。
これらの例では、コンテキストモデルは、各フラグが所与の値(たとえば、「0」または「1」)を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロックのための対応する有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの有効係数位置情報を復号し得る。他の例では、エントロピー復号ユニット70は、他の技法を使用してブロックの有効係数位置情報を復号し得ることに留意されたい。
最後に、エントロピー復号ユニット70は、ブロックを復号することを停止する(922)。たとえば、エントロピー復号ユニット70は、上記で説明したように、他のコーディングタスク、たとえば、後続のブロックの復号に進み得る。
このように、図9の方法は、ビデオデータのブロックに関連する走査順序を識別する情報を復号する方法であって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号することとを含む、方法の一例を表す。
したがって、本開示の技法によれば、符号化ビットストリームは、ビデオデータのブロックについての走査順序情報、すなわち、ブロックに関連する係数を備え得る。具体的には、ビデオエンコーダ20は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化し得る。いくつかの例では、ブロックに関連する走査順序が最確走査順序でない場合、ビデオエンコーダ20は、さらに、ブロックに関連する走査順序の指示を符号化し得る。同様に、ビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号し得る。いくつかの例では、ブロックに関連する走査順序が最確走査順序でない場合、ビデオデコーダ30は、さらに、ブロックに関連する走査順序の指示を復号し得る。
したがって、本開示はまた、符号化ビットストリームを含む、その上に記憶されたデータ構造を備えるコンピュータ可読媒体を企図する。コンピュータ可読媒体に記憶された符号化ビットストリームは、特定のフォーマットを使用して符号化されたビデオデータと、1つまたは複数の指示を使用して表される、ビデオデータのブロックに関連する走査順序を識別する符号化情報(すなわち、ブロックの走査順序情報)とを備え得る。ビットストリーム内でブロックの走査順序情報が符号化される特定のフォーマットは、ブロックに関連する走査順序がブロックのための最確走査順序であるかどうかに依存する。より具体的には、ビットストリームは、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を含み得る。いくつかの例では、走査順序が最確走査順序を備えない場合、ビットストリームは、さらに、ブロックに関連する走査順序の指示を含み得る。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
「C1」
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序を識別する情報をコーディングすることであって、前記ブロックのための最確走査順序を判断することと、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングすることとを含む、コーディングすること
を備える、方法。
[C2]
前記ブロックのための前記最確走査順序を判断することが、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断することを備える、C1に記載の方法。
[C3]
前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングすることが、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C1に記載の方法。
[C4]
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用すること
をさらに備える、C1に記載の方法。
[C5]
前記ブロックに関連する前記走査順序を識別する前記情報をコーディングすることは、
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングすること
をさらに含む、C1に記載の方法。
[C6]
前記ブロックに関連する前記走査順序の前記指示をコーディングすることが、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C5に記載の方法。
[C7]
前記ブロックのための前記最確走査順序を判断することが、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定することを備える、C1に記載の方法。
[C8]
前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、C1に記載の方法。
[C9]
前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングすることをさらに備える、C1に記載の方法。
[C10]
前記ブロック内の非0係数の位置を識別する情報をコーディングすることをさらに備える、C1に記載の方法。
[C11]
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置が、
前記ブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダを備え、前記ブロックに関連する前記走査順序を識別する前記情報をコーディングするために、前記ビデオコーダは、前記ブロックのための最確走査順序を判断することと、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングすることとを行うように構成された、装置。
[C12]
前記ブロックのための前記最確走査順序を判断するために、前記ビデオコーダが、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断するように構成された、C11に記載の装置。
[C13]
前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C11に記載の装置。
[C14]
前記ビデオコーダは、
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用する
ようにさらに構成された、C11に記載の装置。
[C15]
前記ブロックに関連する前記走査順序を識別する前記情報をコーディングするために、前記ビデオコーダは、
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングする
ようにさらに構成された、C11に記載の装置。
[C16]
前記ブロックに関連する前記走査順序の前記指示をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C15に記載の装置。
[C17]
前記ブロックのための前記最確走査順序を判断するために、前記ビデオコーダが、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定するように構成された、C11に記載の装置。
[C18]
前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、C11に記載の装置。
[C19]
前記ビデオコーダが、前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングするようにさらに構成された、C11に記載の装置。
[C20]
前記ビデオコーダが、前記ブロック内の非0係数の位置を識別する情報をコーディングするようにさらに構成された、C11に記載の装置。
[C21]
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと
のうちの少なくとも1つを備える、C11に記載の装置。
[C22]
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序を識別する情報をコーディングするための手段であって、前記ブロックのための最確走査順序を判断するための手段と、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングするための手段とを含む、コーディングするための手段
を備える、デバイス。
[C23]
前記ブロックのための前記最確走査順序を判断するための前記手段が、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断するための手段を備える、C22に記載のデバイス。
[C24]
前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングするための前記手段が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するための手段を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C22に記載のデバイス。
[C25]
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用するための手段
をさらに備える、C22に記載のデバイス。
[C26]
前記ブロックに関連する前記走査順序を識別する前記情報をコーディングするための前記手段は、
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングするための手段
をさらに含む、C22に記載のデバイス。
[C27]
前記ブロックに関連する前記走査順序の前記指示をコーディングするための前記手段が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するための手段を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C26に記載のデバイス。
[C28]
前記ブロックのための前記最確走査順序を判断するための前記手段が、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定するための手段を備える、C22に記載のデバイス。
[C29]
前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、C22に記載のデバイス。
[C30]
前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングするための手段をさらに備える、C22に記載のデバイス。
[C31]
前記ブロック内の非0係数の位置を識別する情報をコーディングするための手段をさらに備える、C22に記載のデバイス。
[C32]
実行されたとき、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングすることをプロセッサに行わせる命令を備えるコンピュータ可読媒体であって、前記命令が、
前記ブロックに関連する走査順序を識別する情報をコーディングすることを前記プロセッサに行わせ、前記ブロックに関連する前記走査順序を識別する前記情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記ブロックのための最確走査順序を判断することと、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングすることとを前記プロセッサに行わせる命令を備える、コンピュータ可読媒体。
[C33]
前記ブロックのための前記最確走査順序を判断することを前記プロセッサに行わせる前記命令が、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断することを前記プロセッサに行わせる命令を備える、C32に記載のコンピュータ可読媒体。
[C34]
前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングすることを前記プロセッサに行わせる前記命令が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを前記プロセッサに行わせる命令を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、[C32]に記載のコンピュータ可読媒体。
[C35]
前記ビデオコーディングプロセス中に前記ブロックに関連する前記係数をコーディングすることを前記プロセッサに行わせる前記命令は、
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用すること
を前記プロセッサにさらに行わせる、C32に記載のコンピュータ可読媒体。
[C36]
前記ブロックに関連する前記走査順序を識別する前記情報をコーディングすることを前記プロセッサに行わせる前記命令は、
前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングすること
を前記プロセッサに行わせる命令をさらに備える、C32に記載のコンピュータ可読媒体。
[C37]
前記ブロックに関連する前記走査順序の前記指示をコーディングすることを前記プロセッサに行わせる前記命令が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを前記プロセッサに行わせる命令を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、C36に記載のコンピュータ可読媒体。
[C38]
前記ブロックのための前記最確走査順序を判断することを前記プロセッサに行わせる前記命令が、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定することを前記プロセッサに行わせる命令を備える、C32に記載のコンピュータ可読媒体。
[C39]
前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、C32に記載のコンピュータ可読媒体。
[C40]
前記ビデオコーディングプロセス中に前記ブロックに関連する前記係数をコーディングすることを前記プロセッサに行わせる前記命令が、
前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングすること
を前記プロセッサにさらに行わせる、C32に記載のコンピュータ可読媒体。
[C41]
前記ビデオコーディングプロセス中に前記ブロックに関連する前記係数をコーディングすることを前記プロセッサに行わせる前記命令が、
前記ブロック内の非0係数の位置を識別する情報をコーディングすること
を前記プロセッサにさらに行わせる、C32に記載のコンピュータ可読媒体。

Claims (39)

  1. ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
    可能な走査順序のセットから前記ブロックのための最確走査順序を選択することと、ここにおいて、前記選択することは、前記可能な走査順序のセット内の前記最確走査順序に前記ブロックに関連する予測モードおよび前記ブロックに関連するサイズをマッピングすることを備える、およびここにおいて、前記可能な走査順序のセットのそれぞれは各決まった走査順序を備える、
    前記ブロックに関連する走査順序が前記最確走査順序であるかどうかの指示をコーディングすることと、
    前記ブロックに関連する前記走査順序が前記最確走査順序であることに応答して、前記最確走査順序を使用して前記ブロックをコーディングすることと、
    前記ブロックに関連する前記走査順序が前記最確走査順序でないことに応答して、前記最確走査順序とは異なる、異なる走査順序を使用して前記ブロックをコーディングすることと、
    前記ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報をコーディングした後に、前記ブロック内の各有効係数の絶対値(coeff_abs_level_minus1)および符号(coeff_sign_flag)をコーディングすることと、
    を備える、方法。
  2. 前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングすることが、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項1に記載の方法。
  3. 前記異なる走査順序を使用して前記ブロックをコーディングすることが、前記ブロックに関連する前記走査順序の追加の指示を受信することなしに前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用することを備える、請求項1に記載の方法。
  4. 前記異なる走査順序を使用して前記ブロックをコーディングすることが、前記ブロックに関連する前記走査順序の追加の指示をコーディングすることを備える、請求項1に記載の方法。
  5. 前記ブロックに関連する前記走査順序の前記追加の指示をコーディングすることが、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する前記予測モードと、前記ブロックに関連する前記サイズとのうちの1つを含む、請求項4に記載の方法。
  6. 前記ブロックのための前記最確走査順序を判断することが、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定することを備える、請求項1に記載の方法。
  7. 前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項1に記載の方法。
  8. 前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングすることをさらに備える、請求項1に記載の方法。
  9. 前記ブロック内の非0係数の位置を識別する情報をコーディングすることをさらに備える、請求項1に記載の方法。
  10. コーディングすることが、符号化することを備える、請求項1に記載の方法。
  11. コーディングすることが、復号することを備える、請求項1に記載の方法。
  12. ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
    前記ビデオデータを格納するように構成されたメモリと、
    可能な走査順序のセットから前記ブロックのための最確走査順序を選択することと、ここにおいて、前記最確走査順序を選択するために、ビデオコーダは、前記可能な走査順序のセット内の前記最確走査順序に前記ブロックに関連する予測モードおよび前記ブロックに関連するサイズをマッピングするように構成される、およびここにおいて、前記可能な走査順序のセットのそれぞれは各決まった走査順序を備える、
    前記ブロックに関連する走査順序が前記最確走査順序であるかどうかの指示をコーディングすることと、
    前記ブロックに関連する前記走査順序が前記最確走査順序であることに応答して、前記最確走査順序を使用して前記ブロックをコーディングすることと、
    前記ブロックに関連する前記走査順序が前記最確走査順序でないことに応答して、前記最確走査順序とは異なる、異なる走査順序を使用して前記ブロックをコーディングすることと
    前記ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報をコーディングした後に、前記ブロック内の各有効係数の絶対値(coeff_abs_level_minus1)および符号(coeff_sign_flag)をコーディングすることと、
    を行うように構成されたビデオコーダを備える、装置。
  13. 前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項12に記載の装置。
  14. 前記ビデオコーダが、
    前記ブロックに関連する前記走査順序が前記最確走査順序でないことに応答して、前記ブロックに関連する前記走査順序の追加の指示を受信することなしに前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用する
    ようにさらに構成された、請求項12に記載の装置。
  15. 前記ビデオコーダが、
    前記ブロックに関連する前記走査順序が前記最確走査順序でないことに応答して、前記ブロックに関連する前記走査順序の追加の指示をコーディングする
    ようにさらに構成された、請求項12に記載の装置。
  16. 前記ブロックに関連する前記走査順序の前記追加の指示をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する前記予測モードと、前記ブロックに関連する前記サイズとのうちの1つを含む、請求項15に記載の装置。
  17. 前記ブロックのための前記最確走査順序を判断するために、前記ビデオコーダが、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定するように構成された、請求項12に記載の装置。
  18. 前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項12に記載の装置。
  19. 前記ビデオコーダが、前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングするようにさらに構成された、請求項12に記載の装置。
  20. 前記ビデオコーダが、前記ブロック内の非0係数の位置を識別する情報をコーディングするようにさらに構成された、請求項12に記載の装置。
  21. 前記装置が、
    集積回路と、
    マイクロプロセッサと、
    前記ビデオコーダを含むワイヤレス通信デバイスと
    のうちの少なくとも1つを備える、請求項12に記載の装置。
  22. ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
    可能な走査順序のセットから前記ブロックのための最確走査順序を選択するための手段と、ここにおいて、前記選択するため手段は、前記可能な走査順序のセット内の前記最確走査順序に前記ブロックに関連する予測モードおよび前記ブロックに関連するサイズをマッピングするための手段を備える、およびここにおいて、前記可能な走査順序のセットのそれぞれは各決まった走査順序を備える、
    前記ブロックに関連する走査順序が前記最確走査順序であるかどうかの指示をコーディングするための手段と、
    前記ブロックに関連する前記走査順序が前記最確走査順序であることに応答して、前記最確走査順序を使用して前記ブロックをコーディングするための手段と、
    前記ブロックに関連する前記走査順序が前記最確走査順序でないことに応答して、前記最確走査順序とは異なる、異なる走査順序を使用して前記ブロックをコーディングするための手段と
    前記ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報をコーディングした後に、前記ブロック内の各有効係数の絶対値(coeff_abs_level_minus1)および符号(coeff_sign_flag)をコーディングするための手段と、
    を備える、デバイス。
  23. 前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングするための前記手段が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するための手段を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項22に記載のデバイス。
  24. 前記異なる走査順序を使用して前記ブロックをコーディングするための前記手段が、前記ブロックに関連する前記走査順序の追加の指示を受信することなしに前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用するための手段を備える、請求項22に記載のデバイス。
  25. 前記異なる走査順序を使用して前記ブロックをコーディングするための前記手段が、前記ブロックに関連する前記走査順序の追加の指示をコーディングするための手段を備える、請求項22に記載のデバイス。
  26. 前記ブロックに関連する前記走査順序の前記追加の指示をコーディングする前記手段が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するための手段を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する前記予測モードと、前記ブロックに関連する前記サイズとのうちの1つを含む、請求項25に記載のデバイス。
  27. 前記ブロックのための前記最確走査順序を判断するための前記手段が、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定するための手段を備える、請求項22に記載のデバイス。
  28. 前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項22に記載のデバイス。
  29. 前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングするための手段をさらに備える、請求項22に記載のデバイス。
  30. 前記ブロック内の非0係数の位置を識別する情報をコーディングするための手段をさらに備える、請求項22に記載のデバイス。
  31. 実行されたとき、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングすることを1つまたは複数のプロセッサに行わせる命令を備えるコンピュータ可読媒体であって、前記命令は、可能な走査順序のセットから前記ブロックのための確走査順序を選択することと、ここにおいて、前記最確走査順序を選択するために、前記命令は、前記可能な走査順序のセット内の前記最確走査順序に前記ブロックに関連する予測モードおよび前記ブロックに関連するサイズをマッピングすることを前記プロセッサに行わせる、およびここにおいて、前記可能な走査順序のセットのそれぞれは各決まった走査順序を備える、
    前記ブロックに関連する走査順序が前記最確走査順序であるかどうかの指示をコーディングすることと、
    前記ブロックに関連する前記走査順序が前記最確走査順序であることに応答して、前記最確走査順序を使用して前記ブロックをコーディングすることと、
    前記ブロックに関連する前記走査順序が前記最確走査順序でないことに応答して、前記最確走査順序とは異なる、異なる走査順序を使用して前記ブロックをコーディングすることと
    前記ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報をコーディングした後に、前記ブロック内の各有効係数の絶対値(coeff_abs_level_minus1)および符号(coeff_sign_flag)をコーディングすることと、
    を前記1つまたは複数のプロセッサに行わせる、コンピュータ可読媒体。
  32. 実行されたとき、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングすることを前記1つまたは複数のプロセッサに行わせる命令をさらに備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する前記予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項31に記載のコンピュータ可読媒体。
  33. 実行されたとき、前記ブロックに関連する前記走査順序の追加の指示を受信することなしに前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用することを備える、前記異なる走査順序を使用して前記ブロックをコーディングすることを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項31に記載のコンピュータ可読媒体。
  34. 実行されたとき、前記異なる走査順序を使用して前記ブロックをコーディングすることを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項31に記載のコンピュータ可読媒体。
  35. 実行されたとき、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを前記1つまたは複数のプロセッサに行わせる命令をさらに備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する前記予測モードと、前記ブロックに関連する前記サイズとのうちの1つを含む、請求項34に記載のコンピュータ可読媒体。
  36. 実行されたとき、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定することを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項31に記載のコンピュータ可読媒体。
  37. 前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項31に記載のコンピュータ可読媒体。
  38. 実行されたとき、前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングすることを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項31に記載のコンピュータ可読媒体。
  39. 実行されたとき、前記ブロック内の非0係数の位置を識別する情報をコーディングすることを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項31に記載のコンピュータ可読媒体。
JP2013546387A 2010-12-22 2011-12-21 ビデオコーディングにおいてビデオブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用すること Active JP5852133B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201061426426P 2010-12-22 2010-12-22
US201061426431P 2010-12-22 2010-12-22
US61/426,431 2010-12-22
US61/426,426 2010-12-22
US201161547530P 2011-10-14 2011-10-14
US61/547,530 2011-10-14
US13/332,054 2011-12-20
US13/332,054 US20120163456A1 (en) 2010-12-22 2011-12-20 Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
PCT/US2011/066609 WO2012088325A1 (en) 2010-12-22 2011-12-21 Using a most probable scanning order to efficiently code scanning order information for a video block in video coding

Publications (2)

Publication Number Publication Date
JP2014504813A JP2014504813A (ja) 2014-02-24
JP5852133B2 true JP5852133B2 (ja) 2016-02-03

Family

ID=45470729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013546387A Active JP5852133B2 (ja) 2010-12-22 2011-12-21 ビデオコーディングにおいてビデオブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用すること

Country Status (6)

Country Link
US (2) US20120163456A1 (ja)
EP (1) EP2656608B1 (ja)
JP (1) JP5852133B2 (ja)
KR (1) KR101529409B1 (ja)
CN (1) CN103299620B (ja)
WO (1) WO2012088325A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105731136B (zh) * 2016-05-05 2017-04-19 滑县天华机械设备制造有限公司 全自动绷带机

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076239B2 (en) * 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
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
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
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
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
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
CN103597834B (zh) 2011-08-04 2016-12-21 寰发股份有限公司 基于上下文自适应二进制算术编码的方法及装置
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
CN107465922B (zh) 2011-11-08 2020-10-09 株式会社Kt 利用解码装置对视频信号进行解码的方法
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
ES2733057T3 (es) * 2012-04-13 2019-11-27 Jvc Kenwood Corp Dispositivo de decodificación de imágenes, procedimiento de decodificación de imágenes, programa de decodificación de imágenes
US9621921B2 (en) * 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9264713B2 (en) * 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
KR101835360B1 (ko) 2012-10-01 2018-03-08 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
US9872040B2 (en) * 2014-01-02 2018-01-16 Qualcomm Incorporated Color index coding for palette-based video coding
US10477232B2 (en) 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
CN109661819B (zh) 2016-08-31 2023-11-07 株式会社Kt 用于处理视频信号的方法和设备
GB2558314B (en) * 2017-01-02 2020-07-29 Canon Kk Improved attribute mapping to encode and decode 3D models
GB2563019B (en) * 2017-05-29 2021-07-28 Canon Kk Improved valence-based encoding and decoding of connectivity data in a 3D model
US10382758B2 (en) * 2017-12-15 2019-08-13 Google Llc Transform block-level scan order selection for video coding
WO2020012023A1 (en) * 2018-07-13 2020-01-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Partitioned intra coding concept

Family Cites Families (163)

* 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
JP2670201B2 (ja) 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
KR960006762B1 (ko) * 1992-02-29 1996-05-23 삼성전자주식회사 화상부호화를 위한 효율적인 2차원 데이타의 주사선택회로
US6680975B1 (en) 1992-02-29 2004-01-20 Samsung Electronics Co., Ltd. Signal encoding and decoding system and method
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
EP1802134A3 (en) 1995-03-15 2008-12-31 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems
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
ES2170745T3 (es) 1996-05-28 2002-08-16 Matsushita Electric Ind Co Ltd Dispositivo de prediccion y de decodificado de imagen.
JP4166305B2 (ja) 1996-09-20 2008-10-15 エイ・ティ・アンド・ティ・コーポレーション ビデオの画像コーディング及びイントラコーディングのための暗黙の係数予測及び走査適合化を提供するビデオコーダー
SG116400A1 (en) * 1997-10-24 2005-11-28 Matsushita Electric Ind Co Ltd A method for computational graceful degradation inan audiovisual compression system.
US6054943A (en) 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
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
JP2000013609A (ja) 1998-06-23 2000-01-14 Fujitsu Ltd 符号化装置
US6553147B2 (en) 1998-10-05 2003-04-22 Sarnoff Corporation Apparatus and method for data partitioning to improving error resilience
US6850649B1 (en) 1999-03-26 2005-02-01 Microsoft Corporation Image encoding using reordering and blocking of wavelet coefficients combined with adaptive encoding
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
US6771828B1 (en) 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
US6658159B1 (en) 2000-03-17 2003-12-02 Hewlett-Packard Development Company, L.P. Block entropy coding in embedded block coding with optimized truncation image compression
CN1237465C (zh) 2001-01-10 2006-01-18 皇家菲利浦电子有限公司 编码
US6650707B2 (en) 2001-03-02 2003-11-18 Industrial Technology Research Institute Transcoding apparatus and method
US20020122483A1 (en) 2001-03-02 2002-09-05 Matsushita Electric Industrial Co., Ltd. Encoding circuit and method
US6696993B2 (en) * 2001-03-23 2004-02-24 Nokia Corporation Variable length coding
US6870963B2 (en) 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
US7113646B2 (en) 2001-06-29 2006-09-26 Equator Technologies, Inc. Decoding of predicted AC coefficient without division
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
EP2222083A2 (en) 2001-11-16 2010-08-25 NTT DoCoMo, Inc. Image coding and decoding method
US7190840B2 (en) 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
JP3866580B2 (ja) 2002-01-30 2007-01-10 日本電信電話株式会社 画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム及びそれらのプログラムを記録したコンピュータ読み取り可能な記録媒体
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 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
ES2277174T3 (es) 2002-05-02 2007-07-01 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Codificacion aritmetica de coeficientes de transformacion.
US7376280B2 (en) 2002-07-14 2008-05-20 Apple Inc Video encoding and decoding
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
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
US7782954B2 (en) 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive 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
US20060008009A1 (en) 2004-07-09 2006-01-12 Nokia Corporation Method and system for entropy coding for scalable video codec
CN1860796B (zh) * 2004-07-12 2010-06-16 索尼株式会社 编码方法、编码装置、解码方法、及解码装置
KR100612015B1 (ko) 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
KR100648258B1 (ko) 2004-08-02 2006-11-23 삼성전자주식회사 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
US7505043B2 (en) 2004-08-30 2009-03-17 Qualcomm Incorporated Cache efficient rasterization of graphics 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
CN100584013C (zh) 2005-01-07 2010-01-20 日本电信电话株式会社 视频编码方法及装置、视频解码方法及装置
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
US20060256854A1 (en) 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
CN1719903A (zh) 2005-06-24 2006-01-11 清华大学 用于图象算术编码中的一种二值化和概率模型选择方法
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
KR100736086B1 (ko) 2005-09-06 2007-07-06 삼성전자주식회사 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치
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. 画像符号化装置、画像復号化装置及びこれらの方法
EP1958453B1 (en) * 2005-11-30 2017-08-09 Koninklijke Philips N.V. Encoding method and apparatus applying coefficient reordering
CN100488254C (zh) 2005-11-30 2009-05-13 联合信源数字音视频技术(北京)有限公司 一种基于上下文的熵编码方法及解码方法
US20090067503A1 (en) 2006-01-07 2009-03-12 Electronics And Telecommunications Research Institute Method and apparatus for video data encoding and decoding
WO2007079782A1 (en) 2006-01-13 2007-07-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable picture coding with particular transform coefficient scan path
CN100546390C (zh) 2006-03-16 2009-09-30 清华大学 在图象编码过程中实现自适应扫描的方法
EP1859630B1 (en) 2006-03-22 2014-10-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding scheme enabling precision-scalability
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
US8233544B2 (en) 2006-07-13 2012-07-31 Qualcomm Incorporated Video coding with fine granularity scalability using cycle-aligned fragments
KR100882949B1 (ko) 2006-08-17 2009-02-10 한국전자통신연구원 화소 유사성에 따라 적응적인 이산 코사인 변환 계수스캐닝을 이용한 부호화/복호화 장치 및 그 방법
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
US20100111432A1 (en) 2006-12-27 2010-05-06 Joerg Mohr Device and Method for Coding a Transformation Coefficient Block
WO2008086828A1 (en) 2007-01-18 2008-07-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable video data stream
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
RU2420911C1 (ru) 2007-03-14 2011-06-10 Ниппон Телеграф Энд Телефон Корпорейшн Аппаратура и способ оценки объема кода, а также носитель информации для его реализации
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
US8619853B2 (en) * 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
WO2009001793A1 (ja) 2007-06-26 2008-12-31 Kabushiki Kaisha Toshiba 画像符号化と画像復号化の方法及び装置
WO2009031648A1 (ja) 2007-09-06 2009-03-12 Nec Corporation 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化あるいは復号プログラム
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
US8483282B2 (en) 2007-10-12 2013-07-09 Qualcomm, Incorporated Entropy coding of interleaved sub-blocks of a video block
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
KR20090097689A (ko) 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
CN101262603B (zh) * 2008-03-27 2011-08-31 方春 一种自适应码率控制方法
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
JP2010004284A (ja) 2008-06-19 2010-01-07 Toshiba Corp 画像復号装置及び画像復号方法
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
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US9100646B2 (en) * 2008-09-03 2015-08-04 Sk Telecom Co., Ltd. Device and method for image encoding/decoding using prediction direction conversion and selective encoding
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
US8737613B2 (en) 2008-11-20 2014-05-27 Mediatek Inc. Scanning methods of transform-based digital data processing that conditionally adjust scan order according to characteristics information and related apparatus thereof
CN102273080A (zh) 2008-12-03 2011-12-07 诺基亚公司 在dct系数编码模式之间切换
US8004431B2 (en) * 2008-12-09 2011-08-23 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes
US20110249755A1 (en) 2008-12-16 2011-10-13 Youji Shibahara Moving image coding method, moving image decoding method, moving image coding apparatus, moving image decoding apparatus, program, and integrated circuit
BRPI0924155B1 (pt) * 2009-01-27 2021-09-14 Interdigital Vc Holdings, Inc Métodos e aparelho para transformar a seleção em codificação e decodificação de video
JP5004986B2 (ja) 2009-03-19 2012-08-22 キヤノン株式会社 スキャン変換装置及び画像符号化装置、並びにそれらの制御方法
JP5302769B2 (ja) 2009-05-14 2013-10-02 キヤノン株式会社 スキャン変換装置及び画像符号化装置及びそれらの制御方法
KR101805531B1 (ko) 2009-06-07 2018-01-10 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
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
WO2011007478A1 (ja) 2009-07-17 2011-01-20 日本電気株式会社 ウェーブレット変換符号化/復号方法および装置
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
CN102045560B (zh) 2009-10-23 2013-08-07 华为技术有限公司 一种视频编解码方法及设备
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
CN102714730B (zh) 2010-01-15 2016-05-04 汤姆森特许公司 使用压缩感测的视频编解码
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
US8929440B2 (en) * 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
EP2559166B1 (en) 2010-04-13 2017-11-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
CN113556554A (zh) 2010-04-13 2021-10-26 Ge视频压缩有限责任公司 显著性图和变换系数块的编码
US20110280314A1 (en) 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
SG195591A1 (en) 2010-07-09 2013-12-30 Samsung Electronics Co Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
US9215470B2 (en) * 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
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
US8913666B2 (en) 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
US20120082235A1 (en) * 2010-10-05 2012-04-05 General Instrument Corporation Coding and decoding utilizing context model selection with adaptive scan pattern
PL2628299T3 (pl) 2010-10-14 2019-12-31 Interdigital Vc Holdings, Inc. Sposób i urządzenie do ulepszonego kodowania i dekodowania entropijnego
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
US9049444B2 (en) * 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
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
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
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
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
CN102685503B (zh) 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
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
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
US9756360B2 (en) 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
US9621894B2 (en) 2012-01-13 2017-04-11 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
CN107302705B (zh) 2012-01-20 2020-09-18 Ge视频压缩有限责任公司 从数据流解码具有变换系数级别的多个变换系数的装置
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9363510B2 (en) 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding
US9538175B2 (en) 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105731136B (zh) * 2016-05-05 2017-04-19 滑县天华机械设备制造有限公司 全自动绷带机

Also Published As

Publication number Publication date
EP2656608B1 (en) 2022-11-02
CN103299620A (zh) 2013-09-11
CN103299620B (zh) 2016-06-22
US20120163456A1 (en) 2012-06-28
JP2014504813A (ja) 2014-02-24
KR101529409B1 (ko) 2015-06-16
US11330272B2 (en) 2022-05-10
WO2012088325A1 (en) 2012-06-28
EP2656608A1 (en) 2013-10-30
US20200099934A1 (en) 2020-03-26
KR20130105893A (ko) 2013-09-26

Similar Documents

Publication Publication Date Title
JP5852133B2 (ja) ビデオコーディングにおいてビデオブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用すること
JP5746363B2 (ja) ビデオコーディングにおいてブロックの走査順序に基づいてビデオブロック内の最後有効係数の位置をコーディングすること
RU2563681C2 (ru) Отдельное кодирование позиции последнего значимого коэффициента видеоблока при кодировании видео
US20120163448A1 (en) Coding the position of a last significant coefficient of a video block in video coding
US20120163472A1 (en) Efficiently coding scanning order information for a video block in video coding
JP2014531873A (ja) ビデオコーディングのための動きベクトル予測子候補クリッピング削除
JP5937205B2 (ja) ビデオコーディングのためのランモードベース係数コーディング

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151203

R150 Certificate of patent or registration of utility model

Ref document number: 5852133

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

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