JP6022586B2 - ビデオコーディングのための隣接するビデオユニットの利用可能性の検出 - Google Patents

ビデオコーディングのための隣接するビデオユニットの利用可能性の検出 Download PDF

Info

Publication number
JP6022586B2
JP6022586B2 JP2014537071A JP2014537071A JP6022586B2 JP 6022586 B2 JP6022586 B2 JP 6022586B2 JP 2014537071 A JP2014537071 A JP 2014537071A JP 2014537071 A JP2014537071 A JP 2014537071A JP 6022586 B2 JP6022586 B2 JP 6022586B2
Authority
JP
Japan
Prior art keywords
video unit
video
unit
current
adjacent
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.)
Expired - Fee Related
Application number
JP2014537071A
Other languages
English (en)
Other versions
JP2014532384A (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 JP2014532384A publication Critical patent/JP2014532384A/ja
Application granted granted Critical
Publication of JP6022586B2 publication Critical patent/JP6022586B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/192Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

関連出願の相互参照
本出願は2011年10月18日に出願された米国仮特許出願第61/548,630号の利益を主張し、その全内容は参照により本明細書に組み込まれる。
本出願は、ビデオコーディングの分野、例えば、ビデオ符号化およびビデオ復号に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む広い範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、Advanced Video Coding(AVC)によって定義された規格、およびこうした規格の拡張版に記載されるようなビデオ圧縮技法を実施する。MPEGとITU−Tとのコラボレーションである「Joint Collaborative Team−Video Coding」(JCT−VC)によって開発されているHigh Efficiency Video Coding(HEVC)規格のような新しいビデオコーディング規格が開発されつつある。新生のHEVC規格は、H.265と呼ばれることもあるが、そのような命名は公式になされたものでない。
本開示の技法は一般に、隣接するビデオユニット(neighboring video units)の利用可能性をビデオコーディング中に判定することに関する。より具体的には、ビデオコーダが現在のビデオユニット(current video unit)に対するビデオコーディング動作を行う。ビデオコーディング動作を行うことの一部として、いくつかの例で、ビデオコーダが現在のビデオユニットの親ビデオユニット(parent video unit)の利用可能性に基づいて参照テーブル内のエントリーを特定できる。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。このようにして、参照テーブルは、ビデオコーダが現在のビデオユニットに隣接するビデオユニットの利用可能性を検出することを可能にする。ビデオコーダは現在のビデオユニットに隣接するビデオユニットの利用可能性に基づいて現在のビデオユニットに対するコーディング動作を行う。
一例において、本開示は、ビデオデータをコーディングするための方法を説明する。この方法は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定することを備える。現在のビデオユニットはビデオデータのピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。さらに、この方法は、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行うことを備える。
別の例において、本開示は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定するように構成される1つまたは複数のプロセッサを備えるビデオコーディング装置を説明する。現在のビデオユニットはピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。1つまたは複数のプロセッサはさらに、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行うように構成される。
別の例において、本開示は、ビデオデータをコーディングするためのビデオコーディング装置を説明する。ビデオコーディング装置は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定するための手段を備える。現在のビデオユニットはビデオデータのピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。ビデオコーディング装置はさらに、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行うための手段を備える。
別の例において、本開示は、実行されたときに1つまたは複数のプロセッサに現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定させる命令を記憶した、コンピュータ可読媒体を備えるコンピュータプログラム製品を説明する。現在のビデオユニットは、ピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。加えて、命令は、実行されたときに、1つまたは複数のプロセッサに、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行わせる。
本開示の1つまたは複数の態様の詳細は、添付の図面および以下の説明に記載される。本開示で説明される技法の他の特徴、目的、および利点は、これらの説明および図面、並びに特許請求の範囲から明らかになろう。
本開示の技法を利用できる例示的なビデオコーディングシステムを示すブロック図。 ツリーブロックおよびスライスへのピクチャの例示的な区分を示す概念図。 ピクチャのツリーブロックの例示的なラスタースキャン順序を示す概念図。 より小さなビデオコーディングユニットへ次第に区分される例示的なツリーブロックを示す概念図。 ツリーブロックを区分するための例示的な4分木データ構造を示す概念図。 zスキャン順序に従ったツリーブロックの区分されていないコーディングユニットの例示的な順序付けを示す概念図。 ビデオシーケンスを符号化するビデオエンコーダの一例を示すブロック図。 符号化されたビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。 現在のビデオユニットの隣接ユニットの利用可能性を判定するための例示的な再帰的動作を示すフローチャート。 ビデオユニットの例示的な隣接ユニットを示す概念図。 副分割されたノンリーフビデオユニットと隣接するビデオユニットとの間の例示的な関係を示す概念図。 ノンリーフビデオユニットの左上のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。 ノンリーフビデオユニットの右上のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。 ノンリーフビデオユニットの左下のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。 ノンリーフビデオユニットの右下のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。 現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作を示すフローチャート。 64個の基本ビデオユニットへと区分されたLCUの概念図。 左下の隣接ユニットのための例示的な参照テーブル(LUT)を示す概念図。 左の隣接ユニットのための例示的なLUTを示す概念図。 左上の隣接ユニットのための例示的なLUTを示す概念図。 上の隣接ユニットのための例示的なLUTを示す概念図。 右上の隣接ユニットのための例示的なLUTを示す概念図。 現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作を示すフローチャート。
添付の図面は、例を示す。添付の図面における、参照番号で指示される要素は、以下の説明における、同じ参照番号で指示される要素に対応する。本開示において、順序を示す言葉(例えば、「第1の」、「第2の」、「第3の」など)で始まる名称をもつ要素は、それらの要素が特定の順序を有することを必ずしも示唆しない。そうではなく、そのような順序を示す言葉は、同じまたは同様のタイプの異なる要素を指すのに使われるにすぎない。
本開示の技法は、ビデオコーダがピクチャのビデオユニットの隣接ユニットの利用可能性を判定し得る効率を向上できる。本明細書に記載され使用されるように、用語「ビデオコーダ」はビデオエンコーダとビデオデコーダとの両方を総称して指す。本開示では、用語「ビデオコーディング」または「コーディング」はビデオ符号化とビデオ復号とを総称して指し得る。「ビデオユニット」はピクセル値の連続的なグループに対応し得る。第1のビデオユニットの1つまたは複数のピクセル値がピクチャにおいて第2のビデオユニットの1つまたは複数のピクセル値に隣接する場合には、第1のビデオユニットが第2のビデオユニットの隣接ユニットであり得る(すなわち、第1のビデオユニットが第2のビデオユニットに隣接する)。
ビデオユニットに対するビデオコーディング処理を行うとき、ビデオコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットをコーディングすることが可能であれば、隣接するビデオユニットは「利用可能」であり得る。ビデオコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットをコーディングすることが不可能であれば、隣接するビデオユニットは「利用不可能」であり得る。例えば、ビデオエンコーダがビデオユニットに対するビデオ符号化処理を行うとき、ビデオエンコーダが隣接するビデオユニットをまだ符号化していない場合、隣接するビデオユニットが存在しない場合、隣接するビデオユニットがビデオユニットとは異なるスライス内にある場合、または、他の理由でビデオエンコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットを符号化することが不可能である場合に、隣接するビデオユニットは利用不可能であり得る。ビデオデコーダがビデオブロックに対するビデオ復号処理を行うとき、ビデオデコーダが隣接するビデオユニットをまだ復号していない場合、隣接するビデオユニットが存在しない場合、隣接するビデオユニットがビデオユニットと異なるスライス内にある場合、または、他の理由でビデオデコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットを復号することが不可能である場合に、隣接するビデオユニットは利用不可能であり得る。
イントラ予測または動きベクトル予測のためなどの、隣接するビデオユニットが利用可能かどうかをビデオコーダが判定する必要があり得る様々な理由があり得る。例えば、ビデオエンコーダまたはビデオデコーダは、現在のビデオユニットのピクセル値をイントラ予測するために、隣接するビデオユニットのピクセル値を入手(access)できる必要があり得る。この例では、ビデオデコーダが隣接するビデオユニットをまだ復号していない場合、ビデオデコーダは、隣接するビデオユニットのピクセル値を入手することが不可能であり得る。別の例では、動きベクトル予測において、ビデオエンコーダまたはビデオデコーダは、現在のビデオユニットの動きデータを生成するために、例えば、マージモードもしくはスキップモードにおいて、または発展型動きベクトル予測(AMVP:advanced motion vector prediction)モードにおいて使用するために、隣接するビデオユニットの動きデータを入手できる必要があり得る。他の例では、隣接するビデオユニットの利用可能性は、様々なシンタックス要素のエントロピーコーディングのためのコンテキストを判定するために必要とされ得る。これらの例では、ビデオエンコーダが隣接するビデオユニットをまだ符号化していない場合にビデオエンコーダが隣接するビデオユニットの動きデータを入手することが不可能であり得る。
本開示の技法によれば、ビデオコーダが、複数のエントリーを含む参照テーブル(LUT)を記憶できる。ビデオコーダは、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいてLUT内の特定のエントリーをアクセスできる。LUT内のそのエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を規定し得る。こうして、ビデオコーダは、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて現在のビデオユニットに隣接するビデオユニットの利用可能性を判定するためにLUTを使用できる。このように隣接するビデオユニットの利用可能性を判定することは、隣接するビデオユニットの利用可能性を判定するためにこれまでに提案されてきた技法よりも少ないメモリアクセスしか必要としないことができ、比較的早い利用可能性の検出を促進し得る。
図1は、本開示で説明される技法を利用できる例示的なビデオコーディングシステム10を示すブロック図である。図1の例に示されるように、ビデオコーディングシステム10はソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は符号化されたビデオデータを生成する。宛先デバイス14は、符号化されたビデオデータを後で復号できる。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、電話ハンドセット、「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイス、車内コンピュータ、またはビデオデータを符号化し復号することが可能な他のタイプのコンピューティングデバイスを含む広範なデバイスのうちのいずれかを備え得る。
宛先デバイス14は、通信チャネル16を介して符号化されたビデオデータを受信できる。通信チャネル16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移すことが可能な媒体またはデバイスを備え得る。一例において、通信チャネル16は、ソースデバイス12が符号化されたビデオデータを宛先デバイス14にリアルタイムに直接送信することを可能にする通信媒体を備え得る。ソースデバイス12または別のデバイスは、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオデータを変調できる。通信媒体は、高周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路のような任意のワイヤレスまたは有線通信媒体を備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成できる。通信チャネル16は、ソースデバイス12から宛先デバイス14への符号化されたビデオデータの通信を可能にするために有用な、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
いくつかの例では、ソースデバイス12および宛先デバイス14がワイヤレス通信のために装備され得る。しかしながら、本開示の技法は、必ずしもワイヤレス用途または設定に限定されない。本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途のような様々なマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ソースデバイス12および宛先デバイス14は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
さらに、いくつかの例では、ソースデバイス12が符号化されたビデオデータを記憶システム34に出力できる。同様に、宛先デバイス14は、記憶システム34上に記憶された符号化されたビデオデータをアクセスできる。様々な例において、記憶システム34は様々な分散型またはローカルアクセス型データ記憶媒体を含み得る。例示的なタイプのデータ記憶媒体は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、ソリッドステートメモリユニット、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータの記憶に適した他のデジタル記憶媒体を含むが、それらに限定されない。
いくつかの例では、記憶システム34が、ソースデバイス12によって生成された符号化されたビデオを記憶できる、ファイルサーバまたは別の中間記憶デバイスを備え得る。宛先デバイス14は、記憶システム34からの記憶されたビデオデータに、ストリーミングまたはダウンロードを介してアクセスできる。ファイルサーバは、符号化されたビデオデータを記憶すること、およびその符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用)、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続のようなデータ接続を通じて、符号化されたビデオデータをアクセスできる。データ接続は、ファイルサーバに記憶された符号化されたビデオデータをアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。記憶システム34からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
図1の例では、ソースデバイス12が、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22が、変調器/復調器(モデム)および/または送信機も含み得る。ビデオソース18はビデオエンコーダ20にビデオデータを与え得る。様々な例において、ビデオソース18は、ビデオデータを与えるための様々なタイプのデバイスおよび/またはシステムを備え得る。例えば、ビデオソース18はビデオカメラなどのビデオキャプチャデバイスを備え得る。別の例では、ビデオソース18が事前にキャプチャされたビデオを含むビデオアーカイブを備え得る。さらに別の例では、ビデオソース18が、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースを備え得る。さらに別の例では、ビデオソース18がコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムを備え得る。
以下に詳細に説明されるように、ビデオエンコーダ20はビデオソース18によって与えられたビデオデータを符号化できる。いくつかの例では、ソースデバイス12が出力インターフェース22を介して宛先デバイス14に符号化されたビデオデータを直接送信できる。さらに、いくつかの例では、記憶システム34が符号化されたビデオデータを記憶し、宛先デバイス14または他のデバイスによって後でアクセスするようにできる。
本開示は、一般に、ビデオデコーダ30のような別のデバイスにある情報を「シグナリング」するものとしてビデオエンコーダ20に言及し得る。しかしながら、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化された部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化された部分のヘッダに記憶することによってデータを「シグナリング」し得る。いくつかの場合には、そのようなシンタックス要素は、ビデオデコーダ30によって受信および復号される前に、符号化および記憶され(例えば、記憶システム34に記憶され)得る。従って、「シグナリング」という用語は一般に、圧縮されたビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに生じ得る。代替的に、そのような通信は、ある長さの時間にわたって生じてよく、例えば、符号化時にシンタックス要素を媒体に記憶するときに起こってもよく、復号デバイスが次いで、これらの要素を、この媒体に記憶された後の任意の時間に取り出すことができる。
図1の例において、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、通信チャネル16および/または記憶システム34から符号化されたビデオデータを受信する。ビデオデコーダ30は、入力インターフェース28によって受信された符号化されたビデオデータを復号する。宛先デバイス14は、復号されたビデオデータを、ディスプレイデバイス32での表示のためにレンダリングできる。
ディスプレイデバイス32は、宛先デバイス14と一体であってよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14が一体型ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースするように構成されてよい。様々な例において、ディスプレイデバイス32は、様々なタイプのディスプレイデバイスを備え得る。例えば、ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスを備え得る。
図1に示されないが、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム内のオーディオおよびビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠できる。
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアのような種々の好適な回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスはソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、その命令をハードウェアにおいて実行して本開示の技法を行うために1つまたは複数のプロセッサを使用できる。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダに含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格などのビデオ圧縮規格に従って動作でき、HEVC Test Model(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格のような、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。規格に対する例示的な拡張は、H.264/AVC規格に対するスケーラブルビデオコーディング(SVC)拡張とMultiview Video Coding(MVC)拡張とを含む。本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263がある。
上で手短に述べられたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャのシーケンスを備え得る。ピクチャの各々は静止画像である。いくつかの事例では、ピクチャが「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20がビットストリームを生成し得る。ビットストリームは、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットのシーケンスを含む。コーディングされたピクチャとは、ピクチャのコーディングされた表現である。
ビットストリームを生成するために、ビデオエンコーダ20はビデオデータ内のピクチャのシーケンスのための符号化動作(encoding operation)を行い得る。ビデオエンコーダ20がピクチャのシーケンスのための符号化動作を行うとき、ビデオエンコーダ20が一連のコーディングされたピクチャおよび関連付けられるデータを生成できる。加えて、ビデオエンコーダ20は、ピクチャのシーケンスに適用可能なパラメータを含むシーケンスパラメータセット(SPS)を生成できる。さらに、ビデオエンコーダ20は、全体としてピクチャに適用可能なパラメータを含むピクチャパラメータセット(PPS)を生成できる。
コーディングされたピクチャを生成するために、ビデオエンコーダ20はピクチャを1つまたは複数のツリーブロックに区分できる。ツリーブロックは、2Dブロックのビデオデータである。いくつかの事例では、ツリーブロックが最大コーディングユニット(LCU)とも呼ばれ得る。HEVCのツリーブロックは、H.264/AVCのような従来の規格のマクロブロックに、広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されず、1つまたは複数のコーディングユニット(CU)を含み得る。
いくつかの例では、ビデオエンコーダ20がピクチャを複数のスライスに区分できる。スライスの各々は整数個のCUを含み得る。いくつかの事例では、スライスが整数個のツリーブロックを備える。他の事例では、スライスの境界がツリーブロックの範囲内にあり得る。スライスの境界がツリーブロックの範囲内にある場合、スライスが高粒度スライスと呼ばれ得る。図2は、LCUへと区分されたピクチャ50を示す。ピクチャ50の水平中間点に近い比較的濃い線52は、ピクチャ50のスライス54とスライス56との間の境界を示す。図2の例において、ピクチャ50の範囲内のセル58はツリーブロックに対応し得る。
ピクチャのための符号化動作を行うことの一部として、ビデオエンコーダ20は、ピクチャの各スライスのための符号化動作を行い得る。スライスのための符号化動作は、スライスに関連付けられた符号化されたデータを生成し得る。スライスに関連付けられた符号化されたデータは、「コーディングされたスライス(coded slice)」と呼ばれ得る。コーディングされたスライスは、スライスヘッダとスライスデータとを含み得る。スライスデータは一連の連続するコーディングユニットをコーディングの順序で含み得る。スライスヘッダは、スライスの最初のまたはすべてのツリーブロックに関するデータ要素を含み得る。
スライスに対するコーディングされたスライスデータを生成するために、ビデオエンコーダ20はスライス内の各ツリーブロックに対する符号化動作を行い得る。ビデオエンコーダ20はスライス内のツリーブロックに対する符号化動作をラスタースキャン順序に従って行い得る。図3はピクチャ50のツリーブロックの例示的なラスタースキャン順序を示す概念図であり、各ツリーブロック内の数字はツリーブロックのラスタースキャンの例示的な順序を示す(例えば、図3の例では1〜56)。ビデオエンコーダ20がツリーブロックに対する符号化動作を行うと、このビデオエンコーダ20がコーディングされたツリーブロックを生成できる。コーディングされたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
コーディングされたツリーブロックを生成するために、ビデオエンコーダ20はツリーブロックに対する4分木区分を再帰的に行い、ツリーブロックを次第により小さなCUへ区分できる。例えば、ビデオエンコーダ20はツリーブロックを4つの等しいサイズのサブCUに区分し、サブCUのうちの1つまたは複数を4つの等しいサイズのサブサブCUに区分でき、以下同様に続く。ビットストリーム内の1つまたは複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックを区分できる最大の回数を示し得る。シンタックス要素は、最小コーディングユニット(SCU)も示し得る。いくつかの例では、CUが形状において正方形であり得る。他の例では、CUが長方形または別の形状であり得る。所与の現在のビデオユニットの親ビデオユニットは、現在のビデオユニットに対応する4分木ノードのすぐ上の4分木ノードに対応し得る。ビデオエンコーダ20が4分木区分を使用して所与のビデオユニットを4つの等しいサイズのビデオユニットに区分する場合、その所与のビデオユニットは、本開示で、4つの等しいサイズのビデオユニットの親ビデオユニットと呼ばれる。
図4は、次第により小さなCUへ区分されるツリーブロック60を示す概念図である。図4の例では、ツリーブロック60が13個の区分されていないCU62へと区分される。他の例では、ビデオエンコーダ20が他の方法でツリーブロックを区分できる。
ツリーブロックのための符号化動作を行うことの一部として、ビデオエンコーダ20はツリーブロックのための階層4分木データ構造を生成できる。例えば、ツリーブロックが4分木データ構造のルートノードに対応し得る。ビデオエンコーダ20がツリーブロックを4つのサブCUに区分する場合、ルートノードが4分木データ構造内に4つの子ノードを有する。子ノードの各々はサブCUのうちの1つに対応する。ビデオエンコーダ20がサブCUのうちの1つを4つのサブサブCUに区分する場合、サブCUに対応するノードが4つの子ノードを有することができ、その各々がサブサブCUのうちの1つに対応する。4分木データ構造の各ノードは対応するCUのためのシンタックスデータを与え得る。例えば、4分木内のノードは、このノードに対応するCUが4つのサブCUに区分(すなわち、分割)されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は再帰的に定義されてよく、CUがサブCUに分割されるかどうかに依存し得る。区分されていないCUは4分木データ構造におけるリーフノードに対応し得る。4分木データ構造におけるリーフノードは「コーディングノード(coding node)」と呼ばれ得る。ツリーブロックの符号化されたバージョンを表すデータは、ツリーブロックのための4分木データ構造に基づくデータを含み得る。
図5は、ツリーブロックを区分するための例示的な4分木データ構造70を示す概念図である。図5の例の4分木データ構造70は図4のツリーブロック60の区分に対応しない。図5の例では、4分木データ構造70がツリーブロックに対応するルートノード72を含む。ビデオエンコーダ20はツリーブロックを4つのサブCUに区分する。これらサブCUは4分木データ構造70の子レベルにあるノード74に対応する。さらに、図5の例では、ビデオエンコーダ20が第2のサブCUを4つのサブサブCUに区分している。これらサブサブCUは4分木データ構造70の孫レベルにあるノード76に対応する。図5では、ビデオエンコーダ20が第4のサブサブCUを4つのサブサブサブCUに区分している。これらサブサブサブCUは4分木データ構造70の曾孫レベルにあるノード78に対応する。
ビデオエンコーダ20がツリーブロックに対する符号化動作を行うとき、ビデオエンコーダ20がツリーブロックの4分木の範囲内の各レベルでツリーブロックのCUの順番をzスキャン順序に従って決定できる。例えば、ビデオエンコーダ20は、子レベルにあるサブCUをzスキャン順序に従って順序付け、第1のサブCUのサブサブCUをzスキャン順序に従って順序付け、第2のサブCUのサブサブCUをzスキャン順序に従って順序付け、サブサブCUのサブサブサブCUをzスキャン順序に従って順序付けることができ、以下同様である。ビデオエンコーダ20は次いで、ツリーブロックの各CUに対する符号化動作を決定されたCUの順番に基づいて行い得る。図6は、zスキャン順序に従った、ツリーブロック60の区分されていないCUの例示的な順序付けを示す概念図である。具体的には、各CUの範囲内の数字は、CUがスキャンされる順序を他のCUの順序に対して示す(例えば、図6の例では0〜12)。
区分されていないCUに対する符号化動作を行うことの一部として、ビデオエンコーダ20がCUの予測データを生成できる。ビデオエンコーダ20はCUの予測データを生成するためにイントラ予測またはインター予測を使用できる。ビデオエンコーダ20がCUの予測データを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20が、CUを含むピクチャの復号されたピクセル値からCUの予測データを導出できる。例えば、ビデオエンコーダ20は、現在のビデオユニットに隣接するビデオユニットの1つまたは複数のピクセル値に基づいて、現在のビデオユニットの予測データを生成できる。ビデオエンコーダ20がCUの予測データを生成するためにインター予測を使用する場合、ビデオエンコーダ20が、CUを含むピクチャ以外の参照ピクチャの復号された値からCUの予測データを導出する。
ビデオエンコーダ20がCUの予測データを生成した後、ビデオエンコーダ20はCUの残差データを生成できる。例えば、ビデオエンコーダ20はCUの残差データをCUの予測データに基づいて生成できる。このCUの残差データは、CUの予測データにおけるピクセル値とCUのオリジナルピクセル値との間の差を示し得る。
さらに、区分されていないCUに対する符号化動作を行うことの一部として、ビデオエンコーダ20はCUに対して再帰的な4分木区分を行い、CUを1つまたは複数の変換ユニット(TU)に区分できる。本開示は、CUおよびTUを「ビデオユニット(video units)」と総称して指し得る。CUの各TUはCUの残差データの異なる部分に関連付けられ得る。ビデオエンコーダ20がツリーブロックの範囲内のCUを順序付けるのと同様の方式で、ビデオエンコーダ20がCUのTUをzスキャン順序に従って順序付けることができる。ビデオエンコーダ20はCUの各TUのための変換動作(transform operations)をzスキャン順序に従って行い得る。ビデオエンコーダ20がTUのための変換動作を行うとき、ビデオエンコーダ20が、TUに関連付けられる残差データに対して変換を適用することによって少なくとも部分的に変換係数ブロック(すなわち、1ブロックの変換係数)を生成できる。例えば、ビデオエンコーダ20は、1つまたは複数の変換係数ブロックを生成するために1つまたは複数の変換を残差データに対して適用できる。変換係数ブロックは係数の2D行列であり得る。
変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対する量子化およびエントロピー符号化動作(quantization and entropy encoding operations)を行うことによって変換係数ブロックの符号化されたバージョンを生成できる。ビデオエンコーダ20は変換係数ブロックの符号化されたバージョンをビデオデータのためのビットストリームで出力できる。言い換えると、ビデオエンコーダ20は、変換係数ブロックを表す符号化されたデータを含むビットストリームを出力できる。
ビデオデコーダ30によって行われるビデオ復号処理は一般に、ビデオエンコーダ20によって行われる符号化処理と逆(reciprocal)であり得る。例えば、ビデオデコーダ30がビットストリームを受信すると、ビデオデコーダ30は、ビットストリーム内のピクチャの各シーケンスに対する復号動作(decoding operation)を行い得る。ピクチャのシーケンスに対する復号動作を行うことの一部として、ビデオデコーダ30は、ピクチャのシーケンスにおいて各ピクチャに対する復号動作を行い得る。ピクチャに対する復号動作を行うことの一部として、ビデオデコーダ30はピクチャの各スライスに対する復号動作を行い得る。スライスに対する復号動作を行うことの一部として、ビデオデコーダ30はスライス内の各ツリーブロックに対する復号動作をラスタースキャン順序に従って行い得る。ツリーブロックに対する復号動作を行うことの一部として、ビデオデコーダ30はツリーブロックの各CUに対する復号動作をzスキャン順序に従って行い得る。
いくつかの事例では、ビデオデコーダ30が1つまたは複数の隣接するビデオユニットのための復号動作を完了するまで、ビデオデコーダ30はツリーブロックの範囲内のビデオユニット(例えば、CUまたはTU)のための何らかの復号動作を行うことが不可能であり得る。例えば、ビデオデコーダ30が、左下の隣接ビデオユニット、左の隣接ビデオユニット、左上の隣接ビデオユニット、上の隣接ビデオユニット、および/または右上の隣接ビデオユニットを復号するまで、ビデオデコーダ30はビデオユニットのための何らかの復号動作を行うことが不可能であり得る。所与のビデオユニットの左下の隣接ビデオユニットは所与のビデオユニットの下および左に存在する。所与のビデオユニットの左の隣接ビデオユニットは所与のビデオユニットの左に存在する。所与のビデオユニットの左上の隣接ビデオユニットは所与のビデオユニットの左上に存在する。所与のビデオユニットの上の隣接ビデオユニットは所与のビデオユニットの上に存在する。右上の隣接ビデオユニットは所与のビデオユニットの右上に存在する。ビデオデコーダ30はツリーブロックに対する復号動作をラスタースキャン順序に従って行い、ツリーブロックのCUおよびTUに対する復号動作をzスキャン順序に従って行うので、ビデオデコーダ30はビデオユニットに対する復号動作を行うためにビデオユニットの右、右下、または下の隣接ユニットの利用可能性を判定する必要がないことがある。
1つまたは複数の隣接するビデオユニットが復号されるまでビデオデコーダ30が所与のビデオユニットに対する復号動作を行い得ない様々な理由があり得る。例えば、ビデオエンコーダ20はCUのピクセル値を符号化するためにイントラ予測を行っていることがある。イントラ予測を行うことの一部として、ビデオエンコーダ20は、CUの予測データを生成するために、隣接するCUからのピクセル値を使用し得る。ビデオデコーダ30がCUに対する復号動作を行うとき、ビデオデコーダ30は、隣接するCUがすでに復号されているかどうかを判定し得る。言い換えると、ビデオデコーダ30は、隣接するCUが利用可能であるかどうかを判定し得る。特定の隣接するCUが利用可能である場合、ビデオデコーダ30は、CUの予測データを生成するために、隣接するCUからのピクセル値を使用し得る。しかしながら、隣接するCUが利用可能ではない場合、ビデオデコーダ30は隣接するCUからのピクセル値を入手できない。従って、ビデオデコーダ30は隣接するCUからのピクセル値を使用する代わりにデフォルトのピクセル値を使用し得る。
いくつかの事例において、ビデオエンコーダ20は、CUの隣接するCUが符号化されているかどうかを判定することも必要であり得る。例えば、ビデオエンコーダ20は、CUの動きベクトルを示す動きベクトル候補を生成するために、CUの隣接するCUが符号化されているかどうかを判定する必要があり得る。ビデオエンコーダ20およびビデオデコーダ30は、所与のビデオユニットの隣接するビデオユニットが符号化または復号されているかどうか(すなわち、隣接するビデオユニットが利用可能かどうか)を判定するために、様々なアルゴリズムを使用できる。CUおよびTUのようなビデオユニットは、4分木データ構造の様々なレベル(または深度)に関連付けられ得るので、これらアルゴリズムは複雑であり得る。言い換えると、ビデオユニットの隣接ユニットは、ビデオユニットとは異なるレベルの4分木に関連付けられ得る。従って、所与のビデオユニットのすぐ上には、実際には2つのビデオユニットがあり得る。いくつかのこれまでに提案されたアルゴリズムは複雑であり、多数のメモリアクセスを必要とし得る。複雑なアルゴリズムを処理しメモリアクセスを行うことは時間と電気エネルギーとを消費するので、ビデオエンコーダ20またはビデオデコーダ30がそのような複雑なアルゴリズムを行うことは望ましくないことがある。
いくつかの例において、本開示の技法は、ビデオユニットの隣接するビデオユニットがすでに符号化または復号されているかどうかを判定する際の複雑さを低減できる。説明の容易さのために、用語「ビデオコーダ(video coder)」がビデオエンコーダまたはビデオデコーダのいずれかを指すために使用され得る。本開示の技法によれば、ビデオコーダは参照テーブル(LUT)を使用してビデオユニットの隣接ユニットの利用可能性の検出を加速させる。様々な例において、ビデオコーダは、異なる方法で異なるLUTを使用して、ビデオユニットの隣接ユニットの利用可能性の検出を加速させる。例えば、ビデオコーダは、ビデオユニットの隣接ユニットの利用可能性を規定するLUTへのインデックスとして、ビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を使用できる。言い換えると、ビデオコーダは、ビデオユニットの隣接ユニットの利用可能性に基づいて、ビデオユニットのサブユニットの隣接ユニットの利用可能性を判定できる。
こうして、ビデオコーダがビデオデータをコーディングするための方法を行い得る。この方法では、ビデオコーダが現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定できる。この方法では、現在のビデオユニットがビデオデータのピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示し得る。この方法はまた、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作(coding operation)を行うことを含み得る。コーディング動作は、ビデオ符号化動作(video encoding operation) またはビデオ復号動作(video decoding operation)であり得る。いくつかの事例では、現在のビデオユニットに対するコーディング動作を行うことが、現在のビデオユニットに隣接するビデオユニットに関連付けられるデータに基づいて、現在のビデオユニットに対するコーディング動作を行うことを備える。ビデオコーダはこの方法をビデオ符号化動作またはビデオ復号動作中に行って、イントラ予測を行い、マージ/スキップまたはAMVPモードで動き情報を取得し、エントロピーコーディングにおけるコンテキスト情報を取得し、または、ビデオ符号化動作もしくはビデオ復号動作の他の部分を行い得る。
他の例では、ビデオコーダがラスタースキャン順序またはzスキャン順序に従ってツリーブロックの範囲内のビデオユニットのインデックスを決定する。ビデオコーダは次いで、LUT内のエントリーを特定するためにこのインデックスを使用できる。ビデオコーダは、ビデオユニットの隣接ユニットの利用可能性を判定するために特定されたエントリーを使用できる。以下に詳述される図16および図23が隣接ユニットの利用可能性を判定するための例示的な動作をこれら例に従って示す。
図7は、ビデオシーケンスを符号化するビデオエンコーダ20の構成の一例を示すブロック図である。図7は、説明の用途で提供されており、本開示において広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示は、HEVCコーディングの脈絡でビデオエンコーダ20を説明する。しかしながら、本開示の技法は他のコーディング規格または方法にも適用可能であり得る。
図7の例では、ビデオエンコーダ20が複数の機能コンポーネントを含む。ビデオエンコーダ20の機能コンポーネントは、モード選択モジュール100と、動き推定モジュール102と、動き補償モジュール104と、イントラ予測モジュール106と、残差生成モジュール110と、変換モジュール112と、量子化モジュール114と、エントロピー符号化モジュール116と、逆量子化モジュール118と、逆変換モジュール120と、復元モジュール122と、復号ピクチャバッファ124とを含む。他の例では、ビデオエンコーダ20が、より多数の、より少数の、または異なる機能コンポーネントを含んでよい。例えば、ビデオエンコーダ20は、復元モジュール122の出力をフィルタリングし、復元されたビデオからブロッキネスアーティファクトを取り除くためのデブロッキングフィルタを含み得る。さらに、動き推定モジュール102と動き補償モジュール104は高度に統合され得るが、図7の例では説明のために別々に表されている。
ビデオエンコーダ20はビデオデータを受信できる。様々な例において、ビデオエンコーダ20は様々なソースからビデオデータを受信し得る。例えば、ビデオエンコーダ20はビデオソース18(図1)または別のソースからビデオデータを受信し得る。ビデオデータはピクチャのシーケンスを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20はピクチャの各シーケンスに対する符号化動作を行い得る。ピクチャのシーケンスに対する符号化動作を行うことの一部として、ビデオエンコーダ20はピクチャのシーケンスの範囲内の各ピクチャに対する符号化動作を行い得る。ピクチャに対する符号化動作を行うことの一部として、ビデオエンコーダ20はピクチャにおける各スライスに対する符号化動作を行い得る。スライスに対する符号化動作を行うことの一部として、ビデオエンコーダ20はスライス内の各ツリーブロックに対する符号化動作を行い得る。
ツリーブロックに対する符号化動作を行うことの一部として、ビデオエンコーダ20はツリーブロックを1つまたは複数のCUに区分できる。いくつかの例において、CUのサイズは8×8ピクセルから最大で64×64ピクセル以上のツリーブロックのサイズにまで及び得る。本開示では、「N×N(NxN)」および「N×N(N by N)」が、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、例えば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、但し、Nは非負の整数値を表す。変換係数ブロックの寸法を示すために、同様の表記が使用され得る。
ビデオエンコーダ20は、ツリーブロックの各々の区分されていないCUに対する符号化動作を行い得る。ビデオエンコーダ20が区分されていないCUに対する符号化動作を行うとき、ビデオエンコーダ20は区分されていないCUの符号化されたバージョンを表すデータを生成する。
CUのための符号化動作を行うことの一部として、動き推定モジュール102および動き補償モジュール104はCUに対するインター予測を行う。言い換えると、動き推定モジュール102および動き補償モジュール104は、CUを含むピクチャ以外の参照ピクチャの復号されたピクセル値に基づいて、CUの予測データを生成できる。インター予測は時間圧縮を実現し得る。
CUに対するインター予測を行うために、ビデオエンコーダ20はCUを1つまたは複数の予測ユニット(PU)に区分できる。ビデオエンコーダ20およびビデオデコーダ30は様々なPUサイズをサポートできる。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は2N×2N、N×N、2N×N、またはN×2NというPUサイズをサポートできる。ビデオエンコーダ20およびビデオデコーダ30は、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズに対する非対称区分もサポートできる。いくつかの例において、ビデオエンコーダ20はCUの辺と直角にならない境界に沿ってCUを複数のPUに区分できる。
動き推定モジュール102は、CUの各PUに関して動き推定動作を行い得る。動き推定モジュール102がPUに関して動き推定動作を行うと、動き推定モジュール102は、PUの1つまたは複数の動きベクトルを生成する。例えば、スライスは、Iスライス、Pスライス、またはBスライスであり得る。動き推定モジュール102および動き補償モジュール104は、CUがIスライス内にあるか、Pスライス内にあるか、またはBスライス内にあるかに応じて、CUのPUのための異なる動作を行い得る。Iスライス内では、全CUがイントラ予測される。従って、CUがIスライス内にある場合、動き推定モジュール102および動き補償モジュール104がCUに対するインター予測を行わない。
CUがPスライス内にある場合、CUを含むピクチャが「リスト0」と呼ばれる参照ピクチャのリストに関連付けられる。リスト0における参照ピクチャの各々は、復号の順序における後続ピクチャのインター予測に使用され得るピクセル値を含む。動き推定モジュール102がPスライス内のPUに関して動き推定動作を行うとき、動き推定モジュール102がPUの参照サンプルを求めてリスト0における参照ピクチャを検索する。PUの参照サンプルは、PUのピクセル値に最も密接に対応するピクセル値のセットであり得る。動き推定モジュール102は、参照ピクチャにおけるピクセル値のセットがどの程度密接にPUのピクセル値に対応するかを判定するために様々なメトリック(metrics)を使用できる。例えば、動き推定モジュール102は、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって、参照ピクチャにおけるピクセル値のセットがどの程度密接にPUのピクセル値に対応するかを判定できる。
Pスライス内にあるCUのPUの参照サンプルを特定した後、動き推定モジュール102は、参照サンプルを含むリスト0における参照ピクチャを示す参照インデックスと、PUおよび参照サンプルの間の空間変位を示す動きベクトルとを生成できる。様々な例において、動き推定モジュール102は動きベクトルを可変の精度で生成できる。例えば、動き推定モジュール102は、1/4ピクセル精度、1/8ピクセル精度、または他の分数ピクセル精度で、動きベクトルを生成できる。動き推定モジュール102は、参照インデックスと動きベクトルとを、エントロピー符号化モジュール116および動き補償モジュール104に出力できる。動き補償モジュール104は、PUの参照サンプルを特定して取り出すために、CUのPUの参照インデックスと動きベクトルとを使用できる。動き補償モジュール104は次いで、CUの予測データを生成するためにPUの参照サンプルのピクセル値を使用できる。
CUがBスライス内にある場合、CUを含むピクチャが「リスト0」および「リスト1」と呼ばれる2つの参照ピクチャのリストに関連付けられ得る。リスト0における参照ピクチャの各々は、復号の順序での後続ピクチャのインター予測に使用され得るピクセル値を含む。リスト1における参照ピクチャは復号の順序においてピクチャの前に現れるが、提示の順序においてピクチャの後に現れる。いくつかの例では、Bスライスを含むピクチャは、リスト0とリスト1の組合せであるリスト組合せに関連付けられ得る。
さらに、CUがBスライス内にある場合、動き推定モジュール102がCUのPUに対する単方向予測または双方向予測を行い得る。動き推定モジュール102がPUに対する単方向予測を行うとき、動き推定モジュール102がPUに対する参照サンプルを求めてリスト1の参照ピクチャを検索し得る。動き推定モジュール102は次いで、参照サンプルを含むリスト1における参照ピクチャを示す参照インデックスと、PUと参照サンプルの間の空間変位を示す動きベクトルとを生成できる。動き推定モジュール102は、CUのPUの参照インデックスと動きベクトルとを、エントロピー符号化モジュール116および動き補償モジュール104に出力できる。動き補償モジュール104は、PUの参照サンプルを特定して取り出すためにCUのPUの参照インデックスと動きベクトルとを使用できる。動き補償モジュール104は次いで、CUの予測データを生成するためにPUの参照サンプルのピクセル値を使用できる。
動き推定モジュール102がPUに対する双方向予測を行うとき、動き推定モジュール102がPUの参照サンプルを求めてリスト0における参照ピクチャを検索することができ、また、PUの別の参照サンプルを求めてリスト1における参照ピクチャを検索できる。動き推定モジュール102は次いで、参照サンプルを示す参照インデックスと、参照サンプルとPUの間の空間変位を示す動きベクトルとを生成できる。動き推定モジュール102は、参照インデックスと動きベクトルとをエントロピー符号化モジュール116および動き補償モジュール104に出力できる。動き補償モジュール104は、PUの参照サンプルを特定して取り出すために参照インデックスと動きベクトルとを使用できる。動き補償モジュール104は次いで、CUのPUの参照サンプルにおけるピクセル値からCUの予測データのピクセル値を補間できる。
いくつかの例において、動き推定モジュール102は動き補償モジュール104またはビデオデコーダ30がCUのPUの動きベクトルを予測し得るデータを生成し得る。このような例では、動き補償モジュール104またはビデオデコーダ30がCUのPUの動きベクトルを予測するために隣接するCUからのデータと動きデータとを使用できる。しかしながら、隣接するCUが利用可能ではない場合、動き推定モジュール102がこのようなデータを生成するために隣接するCUの動きベクトルを使用できない。従って、動き推定モジュール102は隣接するCUの利用可能性を判定するために本開示の技法を使用できる。隣接するCUは様々な理由で利用不可能であり得る。例えば、ビデオエンコーダ20がまだ隣接するCUを符号化していない場合、隣接するCUが存在しない場合、隣接するCUがCUと異なるスライス内にある場合、または、他の理由でビデオエンコーダ20がCUのPUの動きベクトルを予測するために隣接するCUに関連付けられるデータを使用することができない場合に、隣接するCUが利用不可能であり得る。
CUに対する符号化動作を行うことの一部として、イントラ予測モジュール106がCUに対するイントラ予測を行い得る。言い換えると、イントラ予測モジュール106は、CUと同じスライス内の復号されたピクセル値に基づいて、CUの予測データを生成できる。イントラ予測は空間圧縮を実現し得る。
CUに対するイントラ予測を行うために、イントラ予測モジュール106は複数のイントラ予測モードを使用してCUの予測データの複数のセットを生成できる。イントラ予測モジュール106がCUの予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測モジュール106がイントラ予測モードに関連付けられた方向および/または勾配でCUにまたがって隣接するCUからピクセル値を広げることができる。隣接するCUは、CUおよびツリーブロックに対して左から右、上から下(すなわち、zスキャン)の符号化順序を仮定すると、現在のCUの上、上と右、上と左、または左にあり得る。イントラ予測モジュール106は、CUのサイズに応じて様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用できる。
隣接するCUが利用不可能である場合、イントラ予測モジュール106がCUの予測データを生成するために隣接するCUのピクセル値を使用することが不可能であり得る。隣接するCUは様々な理由で利用不可能であり得る。例えば、ビデオエンコーダ20がまだ隣接するCUを符号化していない場合、隣接するCUが存在しない場合、隣接するCUがCUと異なるスライス内にある場合、または、他の理由でイントラ予測モジュール106がCUの予測データを生成するために隣接するCUのピクセル値を使用することができない場合に、隣接するCUは利用不可能であり得る。従って、イントラ予測モジュール106は、隣接するCUが利用可能かどうかを判定する必要があり得る。いくつかの例において、イントラ予測モジュール106は隣接するCUの利用可能性を判定するために本開示の技法を使用できる。
いくつかの例では、隣接するCUが存在しないとイントラ予測モジュール106が判定する場合、イントラ予測モジュール106が、隣接するCUの実際のピクセル値の代わりに、デフォルトのピクセル値を使用してCUの予測データを生成できる。さらに、いくつかの例では、隣接するCUが存在しないとイントラ予測モジュール106が判定する場合、イントラ予測モジュール106が、隣接するCUの実際のピクセル値の代わりに、合成されたピクセル値を使用してCUの予測データを生成できる。イントラ予測モジュール106は、利用可能な隣接するCUのピクセル値に基づいて、合成されたピクセル値を生成できる。
イントラ予測モジュール106は、CUの予測データのセットのうちの1つを選択できる。様々な例において、イントラ予測モジュール106はCUの予測データのセットを様々な方法で選択できる。例えば、イントラ予測モジュール106は、予測データのセットに対する歪み率を算出し、歪み率が最も低い予測データのセットを選択することによって、CUの予測データのセットを選択できる。
モード選択モジュール100は、CUのために動き補償モジュール104によって生成された予測データ、またはCUのためにイントラ予測モジュール106によって生成された予測データのうちから、CUの予測データを選択できる。いくつかの例では、モード選択モジュール100が予測データのセットにおける誤差(すなわち、歪み)に基づいてCUの予測データを選択する。いくつかの例では、モード選択モジュール100が、結果のコーディングされたデータでの歪みに対してコーディングビットの数をバランスさせるレート歪みメトリックに基づいて、CUの予測データを選択する。
モード選択モジュール100がCUの予測データを選択した後、残差生成モジュール110は、CUの予測されたデータに基づいて、CUの残差データを生成する残差生成動作(residual generation operation)を行い得る。CUの残差データは、CUのオリジナルピクセル値とCUの予測データとの間のピクセル値における差分を示し得る。いくつかの例において、残差生成動作を行うことは、CUのピクセル値からCUの予測データを減算することを備え得る。CUの残差データは、CU内のピクセルの様々なピクセル成分に対応する2D残差ブロックを含み得る。例えば、残差データは、CUの予測データにおけるピクセルの輝度成分とCUのオリジナルピクセルのピクセルの輝度成分との間の差分に対応する残差ブロックを含み得る。加えて、CUの残差データは、CUの予測データにおけるピクセルのクロミナンス成分とCUのオリジナルピクセルのクロミナンス成分との間の差分に対応する残差ブロックを含み得る。
上述されたように、CUは1つまたは複数のTUを有し得る。CUの各TUはCUの残差データの異なる部分に対応し得る。CUのTUのサイズは、CUのPUのサイズに基づいても、基づかなくてもよい。いくつかの例において、ビデオエンコーダ20はCUをTUへと副分割するために再帰的な4分木区分を使用できる。得られるデータ構造は、「残差4分木」(RQT)と呼ばれ得る。RQT内の各ノードはCUのTUに対応し得る。本開示の技法に従って隣接ユニットの利用可能性を判定するとき、ビデオコーダがRQTをツリーブロックのCUの4分木の拡張として使用できる。
変換モジュール112は、TUに対応する残差データに変換を適用することによって、CUの各々の区分されていないTUに対する変換係数ブロックを生成できる。例えば、変換モジュール112は、変換係数ブロックを生成するために残差データの特定の部分に対して変換を適用できる。変換係数ブロックの各々は、係数の2D行列であり得る。様々な例において、変換モジュール112は、TUに対応する残差データに様々な変換を適用できる。例えば、変換モジュール112は、離散コサイン変換(DCT)、方向変換、または概念的に同様の変換を適用できる。
変換モジュール112がTUに対する変換係数ブロックを生成した後、量子化モジュール114は変換係数ブロック内の係数を量子化できる。量子化は、一般に、変換係数ブロック内の係数が係数を表すために用いられるデータの量をできるだけ減らすために量子化されて、さらなる圧縮をもたらす処理を指す。量子化は、係数の一部または全部に関連付けられるビット深度(bit depth)を低減できる。例えば、量子化中にnビット値がmビット値へと切り捨てられてよく、但し、nはmよりも大きい。
量子化モジュール114が変換係数ブロックを量子化した後、エントロピー符号化モジュール116は変換係数ブロックに対するエントロピー符号化動作(entropy encoding operation)を行い得る。様々な例において、ビデオエンコーダ20は変換係数ブロックに対する様々なタイプのエントロピー符号化動作を行い得る。例えば、ビデオエンコーダ20は、コンテキスト適応型可変長コーディング(CAVLC)動作、コンテキスト適応型バイナリ算術コーディング(CABAC)動作、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)動作、Probability Interval Partitioning Entropy(PIPE)コーディング動作、または別のタイプのエントロピー符号化動作を変換係数ブロックに対して行い得る。ビデオエンコーダ20はまた、ビデオデータに関連付けられるシンタックス要素に対するエントロピー符号化動作を行い得る。
CABACを行うために、エントロピー符号化モジュール116は、送信されるべきシンボルにコンテキストモデルを割り当てることができる。コンテキストは、例えば、シンボルの隣接する値が0ではないかどうかに関係し得る。CAVLCを行うために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構築され得る。このようにして、VLCの使用は、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
いくつかの例では、エントロピー符号化モジュール116が変換係数ブロックに対するエントロピー符号化動作を行う場合、エントロピー符号化モジュール116が、変換係数ブロックに関連付けられるTUに隣接するTUに関連付けられるデータに基づいて、変換係数ブロックを符号化するための1つまたは複数のコンテキストモデルを選択できる。しかしながら、エントロピー符号化モジュール116は、隣接するTUが利用不可能である場合、変換係数ブロックを符号化するためのコンテキストモデルを選択することが不可能であり得る。隣接するTUは様々な理由で利用不可能であり得る。例えば、エントロピー符号化モジュール116がまだ隣接するTUに対するエントロピー符号化動作を行っていない場合、または、他の理由でエントロピー符号化モジュール116が隣接するTUに対するエントロピー符号化動作を行うことによって生成されるデータを入手できない場合に、隣接するTUは利用不可能であり得る。従って、エントロピー符号化モジュール116は、隣接するTUが利用可能かどうかを判定できる。いくつかのそのような例では、エントロピー符号化モジュール116が、TUに隣接するTUの利用可能性を判定するために、本開示の技法を使用できる。同様の考え方が、CUの他のシンタックス要素に対するエントロピー符号化動作を行うときに当てはまり得る。
逆量子化モジュール118および逆変換モジュール120は、それぞれ、変換係数ブロックに逆量子化および逆変換を適用し、変換係数ブロックからコーディングユニットの残差データを復号できる。復元モジュール122は、動き補償モジュール104またはイントラ予測モジュール106によって生成された予測データに復元された残差データを加えて、復号ピクチャバッファ124へ記憶される復元されたビデオブロックを生成できる。言い換えると、復元モジュール122は、ビデオユニットの予測データおよびビデオユニットの残差データに基づいて、ビデオユニットのピクセル値を復元できる。動き推定モジュール102および動き補償モジュール104は、後続のピクチャのCUに対するインター予測を行うために、復元されたビデオブロックを含む参照ピクチャを使用し得る。ビデオデコーダ30はピクチャを出力することができ、ピクチャは現在のビデオユニットのピクセル値を含む。
ビデオエンコーダ20が変換係数ブロックに対するエントロピー符号化を行った後、ビデオエンコーダ20は、ビデオデータのためのビットストリームに、エントロピー符号化された変換係数ブロックを表すデータを含め得る。ビットストリームは、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットのシーケンスであり得る。ビットストリームは一連のネットワーク抽象化レイヤ(NAL)ユニットを備え得る。NALユニットの各々は、NALユニット内のデータのタイプの指示とデータを含むバイトとを含むシンタックス構造であり得る。例えば、NALユニットは、PPS、コーディングされたスライス、補助強化情報、アクセスユニット区切り文字、フィラーデータ、または別のタイプのデータを表すデータを含み得る。NALユニットのデータは、エミュレーション防止ビットがちりばめられたロウバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形式であり得る。RBSPは、NALユニットの範囲内にカプセル化された整数個のバイトを含む、シンタックス構造であり得る。
図8は、本開示の技法を実装するように構成されたビデオエンコーダ30の例示的な構成を示すブロック図である。図8は、説明の用途で提供されており、本開示において広く例示され説明される技法に対する限定ではない。説明のために、本開示は、HEVCコーディングの脈絡でビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
図8の例において、ビデオエンコーダ30は複数の機能コンポーネントを含む。ビデオデコーダ30の機能コンポーネントは、エントロピー復号モジュール150と、動き補償モジュール152と、イントラ予測モジュール154と、逆量子化モジュール156と、逆変換モジュール158と、復元モジュール160と、復号ピクチャバッファ162とを含む。いくつかの例では、ビデオデコーダ30は、図7のビデオエンコーダ20に関して説明された符号化経路とは全般に逆の復号経路を行い得る。他の例では、ビデオデコーダ30が、より多数の、より少数の、または異なる機能コンポーネントを含み得る。例えば、ビデオデコーダ30は、復元モジュール160の出力をフィルタリングし、復元されたビデオからブロッキネスアーティファクトを取り除くためのデブロッキングフィルタを含み得る。
ビデオデコーダ30は、符号化されたビデオデータを備えるビットストリームを受信し得る。ビデオデコーダ30がビットストリームを受信するとき、ビデオデコーダ30がビットストリームに対する復号動作を行い、ビデオデータの各ピクチャにおけるピクセル値を復元する。ビットストリームに対する復号動作を行うことの一部として、ビデオデコーダ30はビデオデータ内の各ピクチャの各ツリーブロックに対する復号動作を行い得る。ビデオデコーダ30は、ピクチャの範囲内のツリーブロックに対する復号動作をラスタースキャン順序で行い得る。ツリーブロックに対する復号動作を行うことの一部として、ビデオデコーダ30は、ツリーブロックの4分木の各レベルで、このレベルにおけるツリーブロックのCUに対する復号動作をzスキャン順序で行い得る。
区分されていないCUに対する復号動作を行うことの一部として、ビデオデコーダ30は、区分されていないCUの残差4分木の各レベルで、CUの各TUに対する復号動作をzスキャン順序で行い得る。CUの各TUのための復号動作を行うことによって、ビデオデコーダ30はCUの残差データを復元できる。
区分されていないTUのための復号動作を行うことの一部として、エントロピー復号モジュール150はTUに関連付けられる変換係数ブロックの符号化されたバージョンに対するエントロピー復号動作を行い得る。いくつかの例では、エントロピー復号モジュール150が変換係数ブロックを復号するためにCABACを使用できる。そのような例では、エントロピー復号モジュール150が、隣接するTUに関連付けられる変換係数ブロックに対するエントロピー復号動作を行うことによって生成されたデータに基づいて、コンテキストモデルを選択できる。エントロピー復号モジュール150は、変換係数ブロックを復号するために、選択されたコンテキストモデルを使用できる。
しかしながら、エントロピー復号モジュール150は、隣接するTUが利用不可能である場合、隣接するTUに関連付けられる変換係数ブロックに対するエントロピー復号動作を行うことによって生成されたデータに基づいて、コンテキストモデルを選択することが不可能であり得る。隣接するTUは様々な理由で利用不可能であり得る。例えば、エントロピー復号モジュール150がまだ隣接するTUのためのエントロピー復号動作を行っていない場合、または、他の理由でエントロピー復号モジュール150が隣接するTUのためのエントロピー復号動作を行うことによって生成されるデータを使用できない場合に、隣接するTUは利用不可能であり得る。従って、エントロピー復号モジュール150は隣接するTUが利用可能かどうかを判定できる。このような例では、エントロピー復号モジュール150は、隣接するTUが利用可能かどうかを判定するために本開示の技法を使用できる。このようにして、ビデオコーダ(例えば、ビデオエンコーダ20またはビデオデコーダ30)は、所与のビデオユニットに隣接するビデオユニットに関連付けられるデータに基づいて、コンテキストモデルを選択し、選択されたコンテキストモデルに基づいて、所与のビデオユニットに関連付けられるデータに対するエントロピーコーディング動作を行い得る。
さらに、区分されていないTUに対する復号動作を行うことの一部として、逆量子化モジュール156はTUに関連付けられた変換係数ブロックを逆量子化、すなわち、量子化解除できる。逆量子化モジュール156は、HEVCのために提案される、またはH.264復号規格によって定義される逆量子化処理と同様の方式で、変換係数ブロックを逆量子化できる。逆量子化モジュール156は、変換係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPを使用して量子化の程度を判定し、同様に、逆量子化モジュール156のために適用すべき逆量子化の程度を判定できる。
逆量子化モジュール156が変換係数ブロックを逆量子化した後、逆変換モジュール158は変換係数ブロックに関連付けられたTUの残差データを生成できる。逆変換モジュール158は、変換係数ブロックに逆変換を適用することによって少なくとも部分的にTUの残差データを生成できる。例えば、逆変換モジュール158は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用できる。いくつかの例では、逆変換モジュール158が、ビデオエンコーダ20からのシグナリングに基づいて、変換係数ブロックに適用するべき逆変換を判定できる。そのような例では、逆変換モジュール158が、変換係数ブロックに関連付けられたツリーブロックの4分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を判定できる。他の例では、逆変換モジュール158が、ブロックサイズ、コーディングモードなどのような、1つまたは複数のコーディング特性から逆変換を推測できる。いくつかの例では、逆変換モジュール158が直列の逆変換を適用できる。
動き補償モジュール152は、CUの予測データを生成するために動き補償を行い得る。動き補償を行うために、動き補償モジュール152は、CUに隣接するCUのPUの動き情報に基づいて、CUのPUの動き情報を予測できる。いくつかの例では、動き補償モジュール152がマージ/スキップモードまたはAMVPモードを使用してPUの動き情報を予測できる。動き補償モジュール152は、PUの参照サンプルを特定するためにCUのPUの動き情報を使用できる。動き補償モジュール152は次いで、CUの予測データを生成するためにPUのための参照サンプルを使用できる。
しかしながら、隣接するCUが利用不可能である場合、動き補償モジュール152が、隣接するCUのPUの動き情報に基づいて、CUのPUの動き情報を予測することが不可能であり得る。隣接するCUは様々な理由で利用不可能であり得る。例えば、ビデオデコーダ30がまだ隣接するCUを符号化していない場合、隣接するCUが存在しない場合、隣接するCUがCUと異なるスライス内にある場合、または、他の理由で動き補償モジュール152がCUのPUの動き情報を予測するために隣接するCUに関連付けられるデータを使用することができない場合に、隣接するCUは利用不可能であり得る。従って、動き補償モジュール152は、隣接するCUが利用可能かどうかを判定できる。動き補償モジュール152は、隣接するCUが利用可能かどうかを判定するために本開示の技法を使用できる。
いくつかの例では、動き補償モジュール152が、補間フィルタに基づく補間を行うことによって、CUの予測データを精緻化できる。サブピクセル精度をもつ動き補償に使用されるべき補間フィルタの識別子はシンタックス要素内に含まれ得る。動き補償モジュール152は、参照ブロックのサブ整数ピクセルに対する補間された値を計算するために、CUの予測データの生成中にビデオエンコーダ20によって使用される同じ補間フィルタを使用できる。動き補償モジュール152は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判定し、予測データを生成するためにその補間フィルタを使用し得る。
イントラ予測モジュール154は、CUの予測データを生成するためにイントラ予測を行い得る。例えば、イントラ予測モジュール154は、ビットストリーム内のシンタックス要素に基づいて、CUのためのイントラ予測モードを決定できる。イントラ予測モジュール154は次いで、隣接するCUのピクセル値に基づいてCUの予測データ(例えば、予測されるピクセル値)を生成するためにイントラ予測モードを使用できる。
しかしながら、隣接するCUが利用不可能である場合、イントラ予測モジュール154が隣接するCUのピクセル値を使用することが不可能であり得る。隣接するCUは様々な理由で利用不可能であり得る。例えば、ビデオデコーダ30がまだ隣接するCUを復号していない場合、隣接するCUが存在しない場合、隣接するCUがCUと異なるスライス内にある場合、または、他の理由でイントラ予測モジュール154がCUの予測データを生成するために隣接するCUのピクセル値を使用することができない場合に、隣接するCUは利用不可能であり得る。従って、イントラ予測モジュール154は、隣接するCUが利用可能かどうかを判定できる。イントラ予測モジュール154は、隣接するCUが利用可能かどうかを判定するために本開示の技法を使用できる。CUのイントラ予測モードが利用不可能な隣接するCUのピクセル値の使用を伴う場合、イントラ予測モジュール154は、利用不可能な隣接するCUのピクセル値を使用する代わりに、デフォルトのまたは合成されたピクセル値を使用してCUの予測データを生成できる。
動き補償モジュール152およびイントラ予測モジュール154は、HEVCの例において、(例えば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化されたビデオシーケンスの(1つまたは複数の)ピクチャを符号化するために使用されるツリーブロックのサイズと、符号化されたビデオシーケンスのピクチャの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報と、各CUがどのように符号化されるかを示すモード(例えば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各々のインター予測されたCUに対する1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含む参照ピクチャリスト)と、符号化されたビデオシーケンスを復号するための他の情報とを決定し得る。
復元モジュール160は、CUのピクセル値を復元するためにCUの残差データとCUの予測データとを使用できる。いくつかの例において、ビデオデコーダ30は、スライスまたはピクチャの復元ピクセル値フィルタからブロッキネスアーティファクトを取り除くためにデブロッキングフィルタを適用できる。復号ピクチャバッファ162は、ビデオデータのピクチャに対する復号されたピクセル値を記憶できる。復号ピクチャバッファ162は、後に続く動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを与えることができる。
図9は、現在のビデオユニットの隣接ユニットの利用可能性を判定するための例示的な再帰的動作200を示すフローチャートである。本開示の他の箇所で説明されるように、ビデオエンコーダ20およびビデオデコーダ30のようなビデオコーダは、様々な理由で、隣接するビデオユニットが利用可能であるかどうかを判定できる。ビデオコーダはそのような理由のいずれかのために動作200を行い得る。例えば、ビデオコーダがビデオエンコーダである場合、CUのPUの動き情報を決定する際にビデオコーダが動作200を行い得る。この例では、ビデオコーダが隣接するCUの利用可能性を判定し、利用可能な隣接するCUの1つのPUの動き情報に基づいてPUの動き情報をシグナリングできる。別の例では、ビデオコーダがビデオデコーダである場合、CUのためのイントラ予測動作(intra prediction operation)を行う際にビデオコーダが動作200を行い得る。この例では、ビデオコーダが隣接するCUの利用可能性を判定し、CUのイントラ予測モードが利用不可能なCUのピクセル値の使用を伴う場合にデフォルトのまたは合成されたピクセル値を使用できる。
ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30のような)が現在のビデオユニットの隣接するビデオユニットの利用可能性を判定するとき、ビデオコーダは、現在のビデオユニットがツリーブロックかどうかを判定する(202)。現在のビデオユニットがツリーブロックである場合(202の「はい」)、ビデオコーダは、現在のビデオユニットの水平インデックスおよび垂直インデックスと、現在のビデオユニットを含むスライスについての情報とに基づいて、隣接するビデオユニットの利用可能性を判定できる(204)。例えば、現在のビデオユニットがツリーブロックであると判定した後、ビデオコーダは、ピクチャの範囲内の現在のビデオユニットの位置に基づいて、現在のビデオユニットの隣接ユニットの利用可能性を判定できる。
例えば、現在のビデオユニットがツリーブロックである場合、現在のビデオユニットが1である水平インデックスと1である垂直インデックスとを有してよく、すなわち、現在のビデオユニットは座標(1,1)にある。この例では、ツリーブロックがラスタースキャン順序に従ってコーディングされ得る。よって、現在のビデオユニットの左上のツリーブロック(すなわち、左上の隣接ユニット)、現在のビデオユニットの上のツリーブロック(すなわち、上の隣接ユニット)、現在のビデオユニットの右上のツリーブロック(すなわち、右上の隣接ユニット)、現在のビデオユニットの左のツリーブロック(すなわち、左の隣接ユニット)がツリーブロックと同じスライス内にある場合に、左上の隣接ユニット、上の隣接ユニット、右上の隣接ユニット、および左の隣接ユニットは利用可能である。しかしながら、現在のビデオユニットの一番左下のツリーブロック(すなわち、左下の隣接ユニット)は利用可能ではない。この例では、ビデオコーダがラスタースキャン順序に従ってツリーブロックをコーディングし、現在のビデオユニットがラスタースキャン順序で左下の隣接ユニットより前に現れるので、左下の隣接ユニットは利用可能ではない。
現在のビデオユニットがツリーブロックではない場合(202の「いいえ」)、現在のビデオユニットがツリーブロックのサブユニットである。従って、現在のビデオユニットの隣接ユニットが利用可能かどうかを判定するために、ビデオコーダは現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を判定できる(206)。現在のビデオユニットの親ビデオユニットは、現在のビデオユニットに対応する4分木ノードのすぐ上の4分木ノードに対応し得る。図5は、連続するサブCUレベルを伴う例示的な4分木区分の階層を示す。
親ビデオユニットの隣接ユニットの利用可能性を判定するために、ビデオコーダは動作200を再帰的に呼び出すことができる。すなわち、ビデオコーダは、現在のビデオユニットの上位ビデオユニット(ancestor video units)の隣接ユニットの利用可能性を判定するための動作を再帰的に行うことによって少なくとも部分的に親ビデオユニットの隣接ユニットの利用可能性を判定できる。上位ビデオユニットは、4分木データ構造において現在のビデオユニットの上のビデオユニットであり得る。ビデオコーダが動作200を再帰的に呼び出すとき、現在のノードの親ビデオユニットは「現在の」ノードである。従って、親ビデオユニットがツリーブロックである場合、ビデオコーダが、上述されたように、親ビデオユニットの水平インデックスおよび垂直インデックスに基づいて、親ビデオユニットの隣接ユニットの利用可能性を判定できる。一方、親ビデオユニットがツリーブロックではない場合、ビデオコーダが、親ビデオユニットの親ビデオユニット(すなわち、祖父母ビデオユニット)の隣接ユニットの利用可能性を判定できる。
祖父母ビデオユニット(grandparent video unit)がツリーブロックである場合、ビデオコーダは、上述されたように、祖父母ビデオユニットの水平インデックスおよび垂直インデックスを使用して祖父母ビデオユニットの隣接ユニットの利用可能性を判定できる。祖父母ビデオユニットがツリーブロックではない場合、ビデオコーダが、祖父母ビデオユニットの親ビデオユニット(すなわち、曾祖父母ビデオユニット(great-grandparent video unit))の利用可能性を判定できる。現在のビデオユニットの上位ビデオユニットを通じて上方に進行するこの処理は、ツリーブロック(すなわち、原型のツリーブロック)に達し、ビデオコーダが原型のツリーブロックの隣接ユニットの利用可能性を判定することが可能になるまで続き得る。ビデオコーダが現在のビデオユニットの原型のツリーブロックの利用可能性を判定すると、ビデオコーダが現在のビデオユニットの上位ビデオユニットを通じて下方に動作できる。各世代におけるビデオユニットに対し、ビデオコーダはビデオユニットの親ビデオユニットの利用可能性を使用してLUT内のエントリーを特定する。LUTは、親ビデオユニットの隣接ユニットの利用可能性の複数の組合せのエントリーを含み得る。特定されたエントリーはビデオユニットの隣接ユニットの利用可能性を示す。
ビデオコーダが現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を判定した後、ビデオコーダが現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を使用してLUT内のエントリーを特定する(208)。特定されたエントリーは一連の値を含んでよく、それらの値の各々は現在のビデオユニットの異なる隣接ユニットの利用可能性を示す。ビデオコーダは次いで、特定されたエントリーに基づいて、現在のビデオユニットの隣接ユニットの利用可能性を特定できる(210)。現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を使用して特定されたエントリーは、現在のビデオユニットの隣接ユニットの利用可能性を示す。
以下は、例示的なLUTである。
Figure 0006022586
表1の例示的なLUTは、5個の列と32個の行とを含む。第1の列は、現在のビデオユニットの親ビデオユニットの隣接ユニットのあり得る利用可能性を規定する。第2の列は、現在のビデオユニットが親ビデオユニットの一番左上のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。第3の列は、現在のビデオユニットが親ビデオユニットの一番右上のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。第4の列は、現在のビデオユニットが親ビデオユニットの一番左下のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。第5の列は、現在のビデオユニットが親ビデオユニットの一番右下のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。従って、LUTは、現在のビデオユニットの親ビデオユニットの他の子ビデオユニットに対するエントリーを含んでよく、他の子ビデオユニットに対するエントリーは、他の子ビデオユニットの隣接ユニットの利用可能性を示す。
表1の例示的なLUTでは、ビデオユニットの隣接ユニットの利用可能性は、5ビットのバイナリ数として表される。バイナリ数の各ビットは、異なる隣接ユニットの利用可能性に対応する。例えば、第1の(すなわち、右端の)ビットは左下の隣接ユニットに対応してよく、第2のビットは左の隣接ユニットに対応してよく、第3のビットは左上の隣接ユニットに対応してよく、第4のビットは上の隣接ユニットに対応してよく、第5の(すなわち、左端の)ビットは右上の隣接ユニットに対応してよい。ビットが0である場合、対応する隣接ユニットは利用可能ではない。ビットが1である場合、対応する隣接ユニットは利用可能である。
表1の例示的なLUTを使用して現在のビデオユニットの隣接ユニットの利用可能性を判定するために、ビデオコーダは第1に、現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性に対応する第1の列(すなわち、親の隣接ユニット)に値を有するLUT内の行を特定できる。第2に、ビデオコーダは、現在のビデオユニットが、親ビデオユニットの一番左上、一番右上、一番左下、または一番右下のサブユニットであるかどうかに基づいて、LUT内の列を特定する。ビデオコーダは次いで、現在のビデオユニットの隣接ユニットの利用可能性を判定するためにLUTの特定された行および列における値を使用する。
このようにして、ビデオユニットの隣接ユニットの利用可能性を与えられると、ビデオコーダはビデオユニットのサブユニットを直ちに決定できる。結果として、ツリーブロックの水平インデックスおよび垂直インデックスと、ツリーブロックのスライス情報とによって導出され得る、ツリーブロックの隣接ユニットの利用可能性に基づいて、ツリーブロックの4分木の範囲内の任意の深度における任意のビデオユニットの隣接ユニットの利用可能性が再帰的に判定され得る。すなわち、4分木の範囲内の任意の個々のビデオユニットに対して、ビデオユニットの隣接ユニットの利用可能性は、ルートから再帰的に取得され得る。従って、ビデオユニットの隣接ユニットの利用可能性の検出は、4分木の深度におけるビデオユニットの位置、およびビデオユニットの親ビデオユニットの隣接ユニットの利用可能性という、2つの要因のみを必要とし得る。また、すべての5個の隣接するビデオユニットの利用可能性は、1つの単一のLUT動作によって一緒に判定され得る。これは、非常に効率的であり得る。
ステップ204または210において、現在のビデオユニットの隣接ユニットの利用可能性を特定した後、ビデオコーダは現在のビデオユニットの隣接ユニットの利用可能性を動作200の呼び出し側に返す(212)。例えば、現在のビデオユニットが区分される場合、動作200の呼び出し側は動作200のもう一方のインスタンスであり得る。この例では、ビデオコーダが現在のビデオユニットの隣接ユニットの利用可能性を動作200のもう一方のインスタンスに返すことができる。別の例では、現在のビデオユニットが区分されていないビデオユニットである場合、動作200の呼び出し側はイントラ予測処理であり得る。この例では、ビデオコーダが現在のビデオユニットの隣接ユニットの利用可能性をイントラ予測処理に返すことができる。
以下の擬似Cコードは、現在のビデオユニットと現在のビデオユニットの範囲内の各サブユニットとに隣接するビデオユニットの利用可能性を出力するための例示的な再帰関数を示す。
Figure 0006022586
上の擬似コードでは、関数「HEVC_NeighborAvail」が、現在のビデオユニットに隣接するビデオユニットの利用可能性を示すパラメータ「nAvail」を受け取る。関数「HEVC_NeighborAvail」は次いで、現在のビデオユニットがサブユニットに分割されるかどうかを判定する。分割される場合、関数「HEVC_NeighborAvail」は、現在のビデオユニットに隣接するビデオユニットの利用可能性を使用して現在のビデオユニットの各サブユニットに隣接するビデオユニットの利用可能性をLUTにおいて探す。関数「HEVC_NeighborAvail」は、現在のビデオユニットのサブユニットに隣接するビデオユニットの利用可能性を示すパラメータを使用して自身を再帰的に呼び出すことができる。現在のビデオユニットがサブユニットに分割されない場合、関数「HEVC_NeighborAvail」が現在のビデオユニットに隣接するビデオユニットの利用可能性を出力できる。このようにして、関数「HEVC_NeighborAvail」は、現在のビデオユニットと現在のビデオユニットの範囲内の各サブユニットとに隣接するビデオユニットの利用可能性を出力できる。
動作200は再帰的動作(recursive operation)として提示されるが、ビデオコーダは、現在のビデオユニットの隣接ユニットの利用可能性を判定するために、LUTと現在のビデオユニットの親の利用可能性とを使用する非再帰的動作(non-recursive operation)を行い得る。言い換えると、ビデオコーダは、現在のビデオユニットの上位ビデオユニットの隣接ユニットの利用可能性を判定するための非再帰的動作を行うことによって少なくとも部分的に親ビデオユニットの隣接ユニットの利用可能性を判定できる。非再帰的動作は、上述された再帰的動作と同様の効率性を有し得る。以下は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、LUT内のエントリーを特定する非再帰的動作を実施する例示的なコードであり、特定されたエントリーは現在のビデオユニットの隣接ユニットの利用可能性を示す。
Figure 0006022586
Figure 0006022586
Figure 0006022586
上で与えられたコードにおいて、LUT「anNeighborAvailabilityLut」が初期化される。関数「main()」は、関数「HEVC_ProcessQuadTree()」を呼び出す。上のコードは、現在のLCUの利用可能性が5(すなわち、00101)であると仮定する。他の例では、現在のLCUの利用可能性のために複数の値が使用され得る。
関数「HEVC_ProcessQuadTree()」は、現在のLCUの範囲内の各CUの利用可能性をプリントする。関数「HEVC_ProcessQuadTree()」は、「for」ループを含む。「for」ループは、現在のLCUにおいて各ビデオユニットに隣接するビデオユニットの利用可能性を判定する。「for」ループは、深度を最も優先する検索パターンに従って利用可能性を判定する。
「for」ループの各繰り返し中、ビデオコーダは第1の「while」ループを行い得る。第1の「while」ループは、現在のLCUの4分木の最大深度の1つ上のレベルである現在のビデオユニットに分析を移すために、現在の深度を上げる。第1の「while」ループが4分木の下方へと分析を移動すると、第1の「while」ループはLUTを使用して、一番左上のサブユニットに隣接するビデオユニットの利用可能性を判定する。「for」ループは次いで、LUTを使用して現在のビデオユニットの各サブユニットについて繰り返し、現在のビデオユニットのサブユニットに隣接するビデオユニットの利用可能性を判定する。
現在のビデオユニットのサブユニットの各々に隣接するビデオユニットの利用可能性を判定した後、「for」ループ内の第2の「while」ループは、その深度においてまだ分析されていないCUが存在する深度に達するまで、現在の深度を下げる。「for」ループは次いで、現在のレベルにおいて次のビデオユニットに隣接するビデオユニットの利用可能性を判定する。「for」ループは次いで、次のビデオユニットに関してこの動作を繰り返して、次のビデオユニットのサブユニットに隣接するビデオユニットの利用可能性を判定できる。「for」ループは、現在のLCUにおいて各ビデオユニットに隣接するビデオユニットの利用可能性が判定されるまで、この方式で続き得る。上で与えられたコードは、特定のビデオユニットに隣接するビデオユニットの利用可能性のみを特定するように修正され得る。
図10は、所与のビデオユニット250と隣接するビデオユニットとの関係を示す概念図である。図11は、ビデオユニット250の隣接するビデオユニットに対する、ビデオユニット250の4個のサブユニット252A、252B、252C、および252D(まとめて、「サブユニット252」)の関係を示す。
サブユニット252の隣接ユニットの利用可能性は、次のように要約され得る。サブユニット252Aの隣接ユニットの利用可能性は、次のようにビデオユニット250の利用可能性と関連し得る。
Figure 0006022586
上の表記において、「BelowLeft(SubU0)」は、サブユニット252Aの左下の隣接ユニットの利用可能性を示す。「Left(U)」は、ビデオユニット250の左の隣接ユニットの利用可能性を示す。「Left(SubU0)」は、サブユニット252Aの左の隣接ユニットの利用可能性を示す。「AboveLeft(SubU0)」は、サブユニット252Aの左上の隣接ユニットの利用可能性を示す。「AboveLeft(U)」は、ビデオユニット250の左上の隣接ユニットの利用可能性を示す。「Above(SubU0)」は、サブユニット252Aの上の隣接ユニットの利用可能性を示す。「Above(U)」は、ビデオユニット250の上の隣接ユニットの利用可能性を示す。「AboveRight(SubU0)」は、サブユニット252Aの右上の隣接ユニットの利用可能性を示す。図12は、サブユニット252Aの隣接ユニットを示す概念図である。
252Bの隣接ユニットの利用可能性は、次のようにビデオユニット250の利用可能性と関連し得る。
Figure 0006022586
「FALSE」は、隣接するビデオユニットが利用可能ではないことを示す。「TRUE」は、隣接するビデオユニットが利用可能であることを示す。上の表記において、「BelowLeft(SubU1)」は、サブユニット252Bの左下の隣接ユニットの利用可能性を示す。「Left(SubU1)」は、サブユニット252Bの左の隣接ユニットの利用可能性を示す。「AboveLeft(SubU1)」は、サブユニット252Bの左上の隣接ユニットの利用可能性を示す。「Above(SubU1)」は、サブユニット252Bの上の隣接ユニットの利用可能性を示す。「Above(U)」は、ビデオユニット250の上の隣接ユニットの利用可能性を示す。「AboveRight(SubU1)」は、サブユニット252Bの右上の隣接ユニットの利用可能性を示す。「AboveRight(U)」は、ビデオユニット250の右上の隣接ユニットの利用可能性を示す。図13は、サブユニット252Bの隣接ユニットを示す概念図である。
サブユニット252Cの隣接ユニットの利用可能性は、次のようにビデオユニット250の利用可能性と関連し得る。
Figure 0006022586
上の表記において、「BelowLeft(SubU2)」は、サブユニット252Cの左下の隣接ユニットの利用可能性を示す。「BelowLeft(U)」は、ビデオユニット250の左下の隣接ユニットの利用可能性を示す。「Left(SubU2)」は、サブユニット252Cの左の隣接ユニットの利用可能性を示す。「Left(U)」は、ビデオユニット250の左の隣接ユニットの利用可能性を示す。「AboveLeft(SubU2)」は、サブユニット252Cの左上の隣接ユニットの利用可能性を示す。「Above(SubU2)」は、サブユニット252Cの上の隣接ユニットの利用可能性を示す。「AboveRight(SubU2)」は、サブユニット252Cの右上の隣接ユニットの利用可能性を示す。図14は、サブユニット252Cの隣接ユニットを示す概念図である。
サブユニット252Dの隣接ユニットの利用可能性は、次のようにビデオユニット250の利用可能性と関連し得る。
Figure 0006022586
「BelowLeft(SubU3)」は、サブユニット252Dの左下の隣接ユニットの利用可能性を示す。「Left(SubU3)」は、サブユニット252Dの左の隣接ユニットの利用可能性を示す。「AboveLeft(SubU3)」は、サブユニット252Dの左上の隣接ユニットの利用可能性を示す。「Above(SubU3)」は、サブユニット252Dの上の隣接ユニットの利用可能性を示す。「AboveRight(SubU3)」は、サブユニット252Dの右上の隣接ユニットの利用可能性を示す。図15は、サブユニット252Dの隣接ユニットを示す概念図である。
図16は、現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作300を示すフローチャートである。現在のビデオユニットは、コーディングユニットまたは変換ユニットであり得る。次の説明は、ビデオコーダが動作300を行うことを説明する。上述されたように、ビデオエンコーダは、ビデオエンコーダ20のようなビデオエンコーダ、または、ビデオデコーダ30のようなビデオデコーダであり得る。
動作300が開始した後、ビデオコーダは現在のLCUを1つまたは複数の基本ビデオユニットに区分できる(302)。現在のLCUは、現在のビデオユニットを含むLCUである。現在のLCUの基本ビデオユニットは等しいサイズにある。基本ビデオユニットは、最小の許容可能なコーディングユニットまたは変換ユニットのサイズを有する。例えば、現在のLCUが8×8であり、最小の許容されるコーディングユニットのサイズが4×4である場合、ビデオコーダは、現在のLCUを4つの4×4の基本ビデオユニットに区分できる。
次に、ビデオコーダは、現在のビデオユニットのターゲットビデオユニットを特定する(304)。ビデオコーダは、現在のビデオユニットのどの隣接ユニットが注目する隣接ユニット(neighbor of interest)であるかに基づいてターゲットビデオユニットを特定できる。ビデオコーダが、注目する隣接ユニットの利用可能性を判定することを試みている。ビデオコーダが現在のビデオユニットの上の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの第1の(すなわち、左上の)基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの左の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの第1の基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの左上の隣接ユニットの利用可能性を判定している場合、ビデオコーダが第1の基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの右上の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの一番右上の基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの左下の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの一番左下の基本ビデオユニットをターゲットビデオユニットとして特定する。
図17は、64個の基本ビデオユニットへ区分されたLCU340の概念図である。図17の例では、LCU340が32×32であってよく、基本ビデオユニットが4×4であってよい。LCU340の一番左上の角にある影付きの基本ビデオユニットが現在のビデオユニットにおける基本ビデオユニットを示す。図17の例では、現在のビデオユニットが16×16のCUまたはTUであり得る。注目する隣接ユニットが現在のビデオユニットの上、左上、または左の隣接ユニットである場合、ターゲットビデオユニットは「1」と名付けられた基本ビデオユニットである。注目する隣接ユニットが現在のビデオユニットの右上の隣接ユニットである場合、ターゲットビデオユニットは「2」と名付けられた基本ビデオユニットである。注目する隣接ユニットが現在のビデオユニットの左下の隣接ユニットである場合、ターゲットビデオユニットは「3」と名付けられた基本ビデオユニットである。
続いて、ここで図16の例が参照される。ターゲットビデオユニットを特定した後、ビデオコーダはターゲットビデオユニットのインデックスを決定できる(306)。いくつかの例では、ビデオコーダがLCUの基本ビデオユニットの順番をラスタースキャン順序に従って決定できる。ビデオコーダは次いで、ラスタースキャン順序に従った基本ビデオユニットの順序付けに基づいて、ターゲットビデオユニットのインデックスを決定できる。ターゲットビデオユニットがターゲットビデオユニットの第1の基本ビデオユニットである場合、ビデオコーダが現在のLCUの範囲内の現在のビデオユニットの位置に基づいてターゲットビデオユニットのラスタースキャンインデックスを決定できる。例えば、いくつかの状況では、ビデオコーダが現在のビデオユニットのラスタースキャンインデックスに4を乗算することによってターゲットビデオユニットのラスタースキャンインデックスを決定できる。ターゲットビデオユニットが現在のビデオユニットの一番右上の基本ビデオユニットである場合、ビデオコーダが次のようにターゲットビデオユニットのラスタースキャンインデックスを決定できる。
Figure 0006022586
注目する隣接ユニットが現在のビデオユニットの左下の隣接ユニットである場合(308の「はい」)、ビデオコーダがターゲットビデオユニットのインデックスに基づいて左下の隣接ユニットに対するLUT内のエントリーを特定できる(310)。図18は、左下の隣接ユニットのための例示的なLUTを示す概念図である。注目する隣接ユニットが現在のビデオユニットの左下の隣接ユニットでなく(308の「いいえ」)、注目する隣接ユニットが現在のビデオユニットの左の隣接ユニットである(312の「はい」)場合、ビデオコーダがターゲットビデオユニットのインデックスに基づいて左の隣接ユニットに対するLUT内のエントリーを特定できる(314)。図19は、左の隣接ユニットのための例示的なLUTを示す概念図である。注目する隣接ユニットが現在のビデオユニットの左の隣接ユニットでなく(312の「いいえ」)、注目する隣接ユニットが現在のビデオユニットの左上の隣接ユニットである(316の「はい」)場合、ビデオコーダがターゲットビデオユニットのインデックスに基づいて左上の隣接ユニットに対するLUT内のエントリーを特定できる(318)。図20は、左上の隣接ユニットのための例示的なLUTを示す概念図である。
注目する隣接ユニットが現在のビデオユニットの左上の隣接ユニットでなく(316の「いいえ」)、注目する隣接ユニットが現在のビデオユニットの上の隣接ユニットである(320の「はい」)場合、ビデオコーダがターゲットビデオユニットのインデックスに基づいて上の隣接ユニットに対するLUT内のエントリーを特定できる(322)。図21は、上の隣接ユニットのための例示的なLUTを示す概念図である。注目する隣接ユニットが現在のビデオユニットの上の隣接ユニットでなく(320の「いいえ」)、注目する隣接ユニットが現在のビデオユニットの右上の隣接ユニットである(324の「はい」)場合に、ビデオコーダはターゲットビデオユニットのインデックスに基づいて右上の隣接ユニットに対するLUT内のエントリーを特定できる(326)。図22は、右上の隣接ユニットのための例示的なLUTを示す概念図である。LUTのうちの1つにおけるエントリーを特定した後、ビデオコーダは、注目する隣接ユニットの利用可能性を判定するために、特定されたエントリーを使用できる(328)。
ビデオコーダは、ターゲットビデオユニットの位置に対応する位置を有するLUT内のエントリーを特定することによって図18〜図22のLUT内のエントリーを特定できる。例えば、ターゲットビデオユニットが現在のLCUの座標(4,3)にある場合、ビデオコーダがLUTの1つの座標(4,3)におけるエントリーを特定できる。
図18〜図22では、LCUのサイズが32×32であると仮定され、基本ビデオユニットのサイズが4×4であると仮定される。異なるサイズのLCUおよび/または基本ビデオユニットによる例では、ビデオコーダが図18〜図22に示されたものとは異なるLUTを使用できる。LCUは、LCUのサイズごとに1度生成されるだけでよいことがある。図18〜図22では、各セルが対応するLUTのエントリーに対応する。エントリーが数「1」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは利用可能である。エントリーが数「0」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは利用可能ではない。エントリーが文字「A」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のLCUの上の隣接するLCUが現在のLCUと同じスライス内にあれば、利用可能である。現在のLCUは、現在のビデオユニットを含むLCUである。エントリーが文字「L」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のLCUの左の隣接するLCUが現在のLCUと同じスライス内にあれば、利用可能である。エントリーが文字「AL」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のLCUの左上の隣接するLCUが現在のLCUと同じスライス内にあれば、利用可能である。エントリーが文字「AR」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のLCUの右上の隣接するLCUが現在のLCUと同じスライス内にあれば、利用可能である。
図23は、現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作350を示すフローチャートである。現在のビデオユニットは、コーディングユニットまたは変換ユニットであり得る。次の説明は、ビデオコーダが動作350を行うことを説明する。上述のように、ビデオエンコーダは、ビデオエンコーダ20のようなビデオエンコーダ、または、ビデオデコーダ30のようなビデオデコーダであり得る。
本開示の他の箇所で説明されるように、ビデオエンコーダ20およびビデオデコーダ30のようなビデオコーダは、様々な理由で、隣接するビデオユニットが利用可能であるかどうかを判定できる。ビデオコーダは、そのような理由のいずれかのために動作350を行い得る。例えば、ビデオコーダがビデオエンコーダである場合、ビデオコーダがCUのPUの動き情報を決定する際に動作350を行い得る。この例では、ビデオコーダが隣接するCUの利用可能性を判定し、利用可能な隣接するCUの1つのPUの動き情報に基づいてPUの動き情報をシグナリングできる。別の例では、ビデオコーダがビデオデコーダである場合、ビデオコーダがCUのイントラ予測動作を行う際に動作350を行い得る。この例では、ビデオコーダが隣接するCUの利用可能性を判定し、CUのイントラ予測モードが利用不可能なCUのピクセル値の使用を伴う場合にデフォルトのまたは合成されたピクセル値を使用できる。
ビデオコーダが動作350を開始した後、ビデオコーダは現在のLCUを1つまたは複数の基本ビデオユニットに区分できる(352)。ビデオコーダは、次いで、現在のビデオユニットのターゲットビデオユニットを特定できる(354)。ビデオコーダは、図16に関して上述された方式で現在のLCUを区分し、ターゲットビデオユニットを特定できる。
ターゲットビデオユニットを特定した後、ビデオコーダはターゲットビデオユニットのインデックスを決定できる(356)。いくつかの例では、ビデオコーダが、図16に関して上述されたように、ターゲットビデオユニットのラスタースキャンインデックスを決定できる。他の例では、ビデオコーダは、ターゲットビデオユニットのzスキャンインデックスを決定できる。
ターゲットビデオユニットのインデックスを特定した後、ビデオコーダはターゲットビデオユニットのインデックスに基づいてLUT内のエントリーを特定する(358)。LUTは、基本ビデオユニットのラスタースキャンインデックスに対する列と、基本ビデオユニットのzスキャンインデックスに対する列と、基本ビデオユニットの左下の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの左の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの左上の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの上の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの右上の隣接ユニットの利用可能性に対する列とを含み得る。
表2は、例示的なLUTを示す。
Figure 0006022586
Figure 0006022586
Figure 0006022586
ビデオコーダは、異なるサイズのLCUおよび基本ビデオユニットに対して異なるLUTを記憶し得る。例えば、LCUが32×32であり基本ビデオユニットが4×4であるとき、ビデオコーダが表2の例示的なLUTを使用できる。他の例では、LCUが64×64であり基本ビデオユニットが4×4であるとき、ビデオコーダが異なるLUTを使用できる。さらに別の例では、LCUが32×32であり基本ビデオユニットが8×8であるとき、ビデオコーダがさらに別のLUTを使用できる。
表2の例示的なLUTにおいて、値「bAboveLCU」は、現在のLCUと同じスライス内に現在のLCUの上のLCUがある場合に「真」と評価され、そうではない場合に「偽」と評価される。値「bAboveLeftLCU」は、現在のLCUと同じスライス内に現在のLCUの左上のLCUがある場合に「真」と評価され、そうではない場合に「偽」と評価される。値「bAboveRightLCU」は、現在のLCUと同じスライス内に現在のLCUの右上のLCUがある場合に「真」と評価され、そうではない場合に「偽」と評価される。値「bLeftLCU」は、現在のLCUと同じスライス内に現在のLCUの左のLCUがある場合に「真」と評価され、そうではない場合に「偽」と評価される。ビデオコーダは、隣接するLCUおよび現在のLCUの水平インデックスおよび垂直インデックスに基づいて、現在のLCUと同じスライス内に隣接するLCUがあるかどうかを判定できる。
図23の例では、注目する隣接ユニットが利用可能であることを特定されたエントリーが示す場合(360の「はい」)、ビデオコーダは、注目する隣接ユニットが利用可能であると判定できる(362)。注目する隣接ユニットが利用可能であることを特定されたエントリーが示さない場合(360の「いいえ」)、ビデオコーダは、特定されたエントリーが左のLCUを確認するようにビデオコーダに指示しているかどうかを判定できる(364)。例えば、ビデオコーダは、特定されたエントリーが、注目する隣接ユニットに対して「bLeftLCU」を示すかどうかを判定できる。特定されたエントリーが左のLCUを確認するようにビデオコーダに指示する場合(364の「はい」)、ビデオコーダは、現在のLCUの左側で隣接するLCUが現在のLCUと同じスライスの範囲内にあるかどうかを判定できる(366)。現在のLCUの左側で隣接するLCUが現在のLCUと同じスライスの範囲内にある場合(366の「はい」)、ビデオコーダは、注目する隣接ユニットが利用可能であると判定する(368)。そうではなく、現在のLCUの左側で隣接するLCUが現在のLCUと同じスライスの範囲内にない場合(366の「いいえ」)、ビデオコーダは、注目する隣接ユニットが利用可能ではないと判定できる(370)。
特定されたエントリーが、左のLCUを確認するようにビデオコーダに指示しない場合(364の「いいえ」)、ビデオコーダは、特定されたエントリーが左上のLCUを確認するようにビデオコーダに指示しているかどうかを判定できる(372)。例えば、ビデオコーダは、特定されたエントリーが、注目する隣接ユニットに対して「bAboveLeftLCU」を示すかどうかを判定できる。特定されたエントリーが左上のLCUを確認するようにビデオコーダに指示する場合(372の「はい」)、ビデオコーダは、現在のLCUの左上のLCUが現在のLCUと同じスライスの範囲内にあるかどうかを判定できる(374)。現在のLCUの左上のLCUが現在のLCUと同じスライスの範囲内にある場合(374の「はい」)、ビデオコーダは、注目する隣接ユニットが利用可能であると判定できる(376)。そうではなく、現在のLCUの左上のLCUが現在のLCUと同じスライスの範囲内にない場合(374の「いいえ」)、ビデオコーダは、注目する隣接ユニットが利用可能ではないと判定できる(370)。
特定されたエントリーが、左上のLCUを確認するようにビデオコーダに指示しない場合(372の「いいえ」)、ビデオコーダは、特定されたエントリーが右上のLCUを確認するようにビデオコーダに指示しているかどうかを判定できる(378)。例えば、ビデオコーダは、特定されたエントリーが、注目する隣接ユニットに対して「bAboveRightLCU」を示すかどうか判定できる。特定されたエントリーが右上のLCUを確認するようにビデオコーダに指示する場合(378の「はい」)、ビデオコーダは、現在のLCUの右上のLCUが現在のLCUと同じスライスの範囲内にあるかどうかを判定できる(380)。現在のLCUの右上のLCUが現在のLCUと同じスライスの範囲内にある場合(380の「はい」)、ビデオコーダは、注目する隣接ユニットが利用可能であると判定できる(382)。そうではなく、特定されたエントリーが、右上のLCUを確認するようにビデオコーダに指示しない場合(378の「いいえ」)、または、現在のLCUの右上のLCUが現在のLCUと同じスライスの範囲内にない場合(380の「いいえ」)、ビデオコーダは、注目する隣接ユニットが利用可能ではないと判定できる(370)。
いくつかの事例では、図16および図23に示される例示的な動作は、次の論理の最適化された実装であり得る。注目する隣接ユニットがターゲットビデオユニットの上の隣接ユニットであり、ターゲットビデオユニットが現在のLCUの一番上の行にある場合に、注目する隣接ユニットは、現在のLCUの上の隣接するLCUが現在のLCUと同じスライスの範囲内にあれば、利用可能である。注目する隣接ユニットは、現在のLCUの上の隣接するLCUが現在のLCUと同じスライスの範囲内にない場合に、利用可能ではない。注目する隣接ユニットは、ターゲットビデオユニットが現在のLCUの一番上の行にない場合に、利用可能である。
注目する隣接ユニットがターゲットビデオユニットの左の隣接ユニットであり、ターゲットビデオユニットが現在のLCUの左の列にある場合に、注目する隣接ユニットは、現在のLCUの左の隣接するLCUが現在のLCUと同じスライスの範囲内にあれば、利用可能である。注目する隣接ユニットは、現在のLCUの左の隣接するLCUが現在のLCUと同じスライスの範囲内にない場合に、利用可能ではない。注目する隣接ユニットは、ターゲットビデオユニットが現在のLCUの左の列にない場合に、利用可能である。
注目する隣接ユニットがターゲットビデオユニットの左上の隣接ユニットである場合、ターゲットビデオユニットは現在のLCUの一番左上のピクセルを含み、現在のLCUの左上のLCUは現在のLCUと同じスライスの範囲内にあり、注目する隣接ユニットは利用可能である。そうではなく、現在のLCUの左上のLCUが現在のLCUと同じスライスの範囲内にない場合に、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のLCUの一番上の行にある(しかしLCUの一番左上のビデオユニットではない)場合に、現在のLCUの上のLCUが現在のLCUと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。ターゲットビデオユニットが現在のLCUの一番上の行にある場合に、現在のLCUの上のLCUが現在のLCUと同じスライスの範囲内になければ、注目する隣接ユニットは利用可能ではない。注目する隣接ユニットが現在のLCUの左の列にある(しかし一番左上ではない)場合に、現在のLCUの左のLCUが現在のLCUと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。注目する隣接ユニットが現在のLCUの左の列にある(しかし一番左上ではない)場合に、現在のLCUの左のLCUが現在のLCUと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能ではない。そうではない場合に、注目する隣接ユニットは利用可能である。
注目する隣接ユニットがターゲットビデオユニットの左下の隣接ユニットであり、ターゲットビデオユニットが現在のLCUの一番左下のピクセルを含む場合に、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のLCUの一番下の行にあるが、現在のLCUの一番左下のピクセルを含まない場合に、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のLCUの左の列にある(しかし一番左下ではない)場合に、現在のLCUの左のLCUが現在のLCUと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。ターゲットビデオユニットが現在のLCUの左の列にある(しかし一番左下ではない)場合に、現在のLCUの左のLCUが現在のLCUと同じスライスの範囲内になければ、注目する隣接ユニットは利用可能ではない。上述されたように、ビデオコーダは、zスキャン順序に従って、現在のLCUの範囲内のビデオユニットをコーディングできる。従って、ビデオコーダは、より小さいzスキャンインデックスを有するビデオユニットをコーディングした後、より大きいzスキャンインデックスを有するビデオユニットをコーディングできる。従って、ターゲットビデオユニットが現在のLCUの一番下の行または左の列にない場合に、注目する隣接ユニットのzスキャンインデックスがターゲットビデオユニットのzスキャンインデックスより小さければ、注目する隣接ユニットは利用可能である。注目する隣接ユニットのzスキャンインデックスがターゲットビデオユニットのzスキャンインデックスより小さくない(すなわち、より大きい)場合に、注目する隣接ユニットは利用可能ではない。
注目する隣接ユニットがターゲットビデオユニットの右上の隣接ユニットであり、ターゲットビデオユニットが現在のLCUの一番右上の角にある場合に、注目する隣接ユニットは、現在のLCUの右上のLCUが現在のLCUと同じスライスの範囲内にあれば、利用可能である。注目する隣接ユニットは、現在のLCUの右上のLCUが現在のLCUと同じスライスの範囲内にない場合に、利用可能ではない。ターゲットビデオユニットが現在のLCUの一番上の行にある(しかし現在のLCUの一番右上の基本ビデオユニットではない)場合に、現在のLCUの上のLCUが現在のLCUと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。ターゲットビデオユニットが現在のLCUの一番上の行にある(しかし現在のLCUの一番右上の基本ビデオユニットではない)場合に、現在のLCUの上のLCUが現在のLCUと同じスライスの範囲内になければ、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のLCUの右の列にある(しかし、現在のLCUの一番右上の基本ビデオユニットではない)場合に、注目する隣接ユニットは利用可能ではない。そうではなく、ターゲットビデオユニットが一番上の行または右の列にない場合に、注目する隣接ユニットのzスキャンインデックスがターゲットビデオユニットのzスキャンインデックスより小さければ、注目する隣接ユニットは利用可能である。注目する隣接ユニットのzスキャンインデックスがターゲットビデオユニットのzスキャンインデックスより小さくない場合に、注目する隣接ユニットは利用可能ではない。
実施形態によっては、本明細書で説明された方法のうちいずれかの、いくつかの動作またはイベントは、異なる順番で行われてよく、追加、統合、または完全に除外されてよい(例えば、すべての説明された動作またはイベントが、本方法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの実施形態では、動作またはイベントは、連続してではなくむしろ、同時に、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて行われ得る。
本明細書で開示される方法、システムおよび装置と関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムのステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は認識するであろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装できるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
その上、本明細書で開示された実施形態は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはその他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェアコンポーネントのような、電子デバイスまたは回路、あるいは本明細書で説明された機能を行うように設計されたそれらの任意の組合せによって、実施されまたは行われ得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成としても実施され得る。
本明細書で開示される実施形態に関して説明される方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこの2つの組合せで直接具体化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体はASIC内に存在し得る。ASICは、ユーザ端末内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別コンポーネントとして存在し得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングするための方法であって、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定することであって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、特定することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて前記現在のビデオユニットに対するコーディング動作を行うこととを備える、方法。
[C2]
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータに基づいて、前記現在のビデオユニットに対する前記コーディング動作を行うことを備える、C1に記載の方法。
[C3]
隣接ユニットに関連付けられる前記データを使用して、前記現在のビデオユニットに対する前記コーディング動作を行うことが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピーコーディング動作を行うこととを備える、C2に記載の方法。
[C4]
前記現在のビデオユニットに隣接する前記ビデオユニットが、前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、C1に記載の方法。
[C5]
前記現在のビデオユニットがコーディングユニットまたは変換ユニットである、C1に記載の方法。
[C6]
前記現在のビデオユニットがツリーブロックかどうか判定することと、
前記現在のビデオユニットがツリーブロックではないと判定した後、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することとをさらに備える、C1に記載の方法。
[C7]
前記現在のビデオユニットがツリーブロックであると判定した後、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することをさらに備える、C6に記載の方法。
[C8]
前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの上位ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための動作を再帰的に行うことを備える、C6に記載の方法。
[C9]
前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの前記上位ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための非再帰的動作を行うことを備える、C6に記載の方法。
[C10]
前記特定されたエントリーが一連の値を備え、前記値が前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、C1に記載の方法。
[C11]
前記参照テーブルが、前記親ビデオユニットに隣接する前記ビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、C1に記載の方法。
[C12]
前記参照テーブルが前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが前記他の子ビデオユニットに隣接するビデオユニットの利用可能性を示す、C11に記載の方法。
[C13]
前記コーディング動作が符号化動作の一部である、C1に記載の方法。
[C14]
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
前記方法が、
前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成することと、
1つまたは複数の変換係数ブロックを生成するために前記残差データに対して1つまたは複数の変換を適用することと、
前記変換係数ブロックを表す符号化されたデータを含むビットストリームを出力することとをさらに備える、方法。
[C15]
前記コーディング動作が復号動作の一部である、C1に記載の方法。
[C16]
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
前記方法が、
前記現在のビデオユニットの残差データを復号することと、
前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとをさらに備える、方法。
[C17]
1つまたは複数のプロセッサを備えるビデオコーディング装置であって、前記1つまたは複数のプロセッサが、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、特定することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて、前記現在のビデオユニットに対するコーディング動作を行うこととを行うように構成される、ビデオコーディング装置。
[C18]
前記1つまたは複数のプロセッサが、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータに基づいて、前記現在のビデオユニットに対する前記コーディング動作を行うように構成される、C17に記載のビデオコーディング装置。
[C19]
前記1つまたは複数のプロセッサが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択し、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピーコーディング動作を行うように構成される、C18に記載のビデオコーディング装置。
[C20]
前記現在のビデオユニットに隣接する前記ビデオユニットが、前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、C17に記載のビデオコーディング装置。
[C21]
前記現在のビデオユニットがコーディングビデオユニットである、C17に記載のビデオコーディング装置。
[C22]
前記1つまたは複数のプロセッサが、
前記現在のビデオユニットがツリーブロックかどうか判定し、
前記現在のビデオユニットがツリーブロックではないと判定した後、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するように構成される、C17に記載のビデオコーディング装置。
[C23]
前記1つまたは複数のプロセッサが、前記現在のビデオユニットがツリーブロックであると判定した後、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するように構成される、C22に記載のビデオコーディング装置。
[C24]
前記1つまたは複数のプロセッサが、前記現在のビデオユニットの上位ビデオユニットに隣接するビデオユニットの前記利用可能性を判定するための動作を再帰的に行うように構成される、C22に記載のビデオコーディング装置。
[C25]
前記1つまたは複数のプロセッサが、前記現在のビデオユニットの前記上位ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための非再帰的動作を行うように構成される、C22に記載のビデオコーディング装置。
[C26]
前記エントリーが一連の値を備え、前記値が前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、C17に記載のビデオコーディング装置。
[C27]
前記参照テーブルが、前記親ビデオユニットに隣接する前記ビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、C17に記載のビデオコーディング装置。
[C28]
前記参照テーブルが、前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが、前記他の子ビデオユニットに隣接するビデオユニットの利用可能性を示す、C27に記載のビデオコーディング装置。
[C29]
前記コーディング動作が符号化動作の一部である、C17に記載のビデオコーディング装置。
[C30]
前記1つまたは複数のプロセッサが、
現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成し、
前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成し、
1つまたは複数の変換係数ブロックを生成するために前記残差データに対して1つまたは複数の変換を適用し、
前記変換係数ブロックを表す符号化されたデータを含むビットストリームを出力するように構成される、C29に記載のビデオコーディング装置。
[C31]
前記コーディング動作が復号動作の一部である、C17に記載のビデオコーディング装置。
[C32]
前記1つまたは複数のプロセッサが、
現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することと、
前記現在のビデオユニットの残差データを復号することと、
前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとを行うように構成される、C31に記載のビデオコーディング装置。
[C33]
ビデオデータをコーディングするためのビデオコーディング装置であって、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定するための手段であって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、手段と、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて、前記現在のビデオユニットに対するコーディング動作を行うための手段とを備える、ビデオコーディング装置。
[C34]
隣接ユニットに関連付けられるデータに基づいて前記現在のビデオユニットに対する前記コーディング動作を行って、前記現在のビデオユニットに対する前記コーディング動作を行うための手段を備える、C33に記載のビデオコーディング装置。
[C35]
前記現在のビデオユニットがツリーブロックかどうか判定するための手段と、
前記現在のビデオユニットがツリーブロックである場合、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための手段と、
前記現在のビデオユニットがツリーブロックではない場合、前記現在のビデオユニットの上位ビデオユニットに隣接するビデオユニットの前記利用可能性を判定するための動作を再帰的に行うための手段とをさらに備える、C33に記載のビデオコーディング装置。
[C36]
前記特定されたエントリーが一連の値を備え、前記値が、前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、C33に記載のビデオコーディング装置。
[C37]
前記コーディング動作が符号化動作の一部である、C33に記載のビデオコーディング装置。
[C38]
前記コーディング動作が復号動作の一部である、C33に記載のビデオコーディング装置。
[C39]
命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記命令が実行されたときに、1つまたは複数のプロセッサに、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、特定することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて、前記現在のビデオユニットに対するコーディング動作を行うこととを行わせる、コンピュータプログラム製品。
[C40]
前記命令が、前記1つまたは複数のプロセッサに、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータに基づいて、前記現在のビデオユニットに対する前記コーディング動作を行わせる、C39に記載のコンピュータプログラム製品。
[C41]
前記命令が、前記1つまたは複数のプロセッサに、
前記現在のビデオユニットがツリーブロックかどうか判定させ、
前記現在のビデオユニットがツリーブロックである場合、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定させ、
前記現在のビデオユニットがツリーブロックではない場合、前記現在のビデオユニットの上位ビデオユニットに隣接するビデオユニットの利用可能性を判定するための動作を再帰的に行わせる、C39に記載のコンピュータプログラム製品。
[C42]
前記特定されたエントリーが一連の値を備え、前記値が、前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、C39に記載のコンピュータプログラム製品。
[C43]
前記コーディング動作が符号化動作の一部である、C39に記載のコンピュータプログラム製品。
[C44]
前記コーディング動作が復号動作の一部である、C39に記載のコンピュータプログラム製品。

Claims (36)

  1. ビデオデータを符号化するための方法であって、
    現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定することであって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用することと、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うこととを備える、方法。
  2. 前記現在のビデオユニットに対する前記符号化動作を行うことが、
    前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
    前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー符号化動作を行うこととを備える、請求項に記載の方法。
  3. ビデオデータを復号するための方法であって、
    現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定することであって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用することと、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うこととを備える、方法。
  4. 前記現在のビデオユニットに対する前記復号動作を行うことが、
    前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
    前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー復号動作を行うこととを備える、請求項に記載の方法。
  5. 前記現在のビデオユニットがコーディングユニットまたは変換ユニットである、請求項1または請求項に記載の方法。
  6. 前記現在のビデオユニットがツリーブロックかどうか判定することと、
    前記現在のビデオユニットがツリーブロックではないこと基づいて、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することとをさらに備える、請求項1または請求項に記載の方法。
  7. 前記祖父母ビデオユニットがツリーブロックであることに基づいて、前記ピクチャの範囲内の前記祖父母ビデオユニットの位置に基づいて、前記祖父母ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することをさらに備える、請求項1または請求項に記載の方法。
  8. 前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの上位ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定するための動作を再帰的に行うことを備える、請求項に記載の方法。
  9. 前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための非再帰的動作を行うことを備える、請求項に記載の方法。
  10. 前記特定された第のエントリーが一連の値を備え、前記一連の値の各それぞれの値が前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項1または請求項に記載の方法。
  11. 前記参照テーブルが、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、請求項1または請求項に記載の方法。
  12. 前記参照テーブルが前記現在のビデオユニットの前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが前記他の子ビデオユニットに隣接する複数のビデオユニットの利用可能性を示す、請求項11に記載の方法。
  13. 前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
    前記方法が、
    前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成することと、
    1つまたは複数の変換係数ブロックを生成するために前記残差データに対して1つまたは複数の変換を適用することと、
    前記変換係数ブロックを表す符号化されたデータを含むビットストリームを出力することとをさらに備える、請求項1に記載の方法。
  14. 前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
    前記方法が、
    前記現在のビデオユニットの残差データを復号することと、
    前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
    前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとをさらに備える、請求項に記載の方法。
  15. ビデオデータを記憶するように構成された1つまたは複数のデータ記憶媒体と、
    1つまたは複数のプロセッサと、
    を備え、前記1つまたは複数のプロセッサが、
    前記ビデオデータの現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用することと、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うこととを行うように構成される、装置。
  16. 前記1つまたは複数のプロセッサが、
    前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択し、
    前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー符号化動作を行うように構成される、請求項15に記載の装置。
  17. ビデオデータを記憶するように構成された1つまたは複数のデータ記憶媒体と、
    1つまたは複数のプロセッサと、
    を備え、前記1つまたは複数のプロセッサが、
    前記ビデオデータの現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用することと、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うこととを行うように構成される、装置。
  18. 前記現在のビデオユニットに対する前記復号動作を行うことが、
    前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
    前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー復号動作を行うこととを備える、請求項17に記載の装置。
  19. 前記現在のビデオユニットがコーディングビデオユニットまたは変換ユニットである、請求項15または請求項17に記載の装置。
  20. 前記1つまたは複数のプロセッサが、
    前記現在のビデオユニットがツリーブロックかどうか判定し、
    前記現在のビデオユニットがツリーブロックではないことに基づいて、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定するように構成される、請求項15または請求項17に記載の装置。
  21. 前記1つまたは複数のプロセッサが、前記祖父母ビデオユニットがツリーブロックであることに基づいて、前記ピクチャの範囲内の前記祖父母ビデオユニットの位置に基づいて、前記祖父母ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するように構成される、請求項15または請求項17に記載の装置。
  22. 前記1つまたは複数のプロセッサが、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための動作を再帰的に行うように構成される、請求項20に記載の装置。
  23. 前記1つまたは複数のプロセッサが、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための非再帰的動作を行うように構成される、請求項20に記載の装置。
  24. 前記特定された第のエントリーが一連の値を備え、前記一連の値の各それぞれの値が前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項15または請求項17に記載の装置。
  25. 前記参照テーブルが、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、請求項15または請求項17に記載の装置。
  26. 前記参照テーブルが、前記現在のビデオユニットの前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが、前記他の子ビデオユニットに隣接する複数のビデオユニットの利用可能性を示す、請求項25に記載の装置。
  27. 前記1つまたは複数のプロセッサが、
    前記現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成し、
    前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成し、
    1つまたは複数の変換係数ブロックを生成するために前記残差データに対して1つまたは複数の変換を適用し、
    前記1つまたは複数の変換係数ブロックを表す符号化されたデータを含むビットストリームを出力するように構成される、請求項15に記載の装置。
  28. 前記1つまたは複数のプロセッサが、
    前記現在のビデオユニットに隣接する前記ビデオユニットの1つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することと、
    前記現在のビデオユニットの残差データを復号することと、
    前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
    前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとを行うように構成される、請求項17に記載の装置。
  29. ビデオデータを符号化するための装置であって、
    現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定するための手段であって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定するための手段と、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用するための手段であって、前記第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用するための手段と、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うための手段とを備える、装置。
  30. ビデオデータを復号するための装置であって、
    現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定するための手段であって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定するための手段と、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用するための手段であって、前記第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用するための手段と、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うための手段とを備える、装置。
  31. 前記現在のビデオユニットがツリーブロックかどうか判定するための手段と、
    前記現在のビデオユニットがツリーブロックではないことに基づいて、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための動作を再帰的に行うための手段とをさらに備える、請求項29または請求項30に記載の装置。
  32. 前記特定された第のエントリーが一連の値を備え、前記一連の値の各それぞれの値が、前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項29または請求項30に記載の装置。
  33. 複数の命令を備えるコンピュータプログラムであって、前記複数の命令が実行されたときに、1つまたは複数のプロセッサに、
    現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記異なる第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用することと、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うこととを行わせる、コンピュータプログラム。
  34. 複数の命令を備えるコンピュータプログラムであって、前記複数の命令が実行されたときに、1つまたは複数のプロセッサに、
    現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第1のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第1のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
    前記参照テーブル内の異なる第2のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記異なる第2のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの4分木に関連付けられる、使用することと、
    前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うこととを行わせる、コンピュータプログラム。
  35. 前記複数の命令が、前記1つまたは複数のプロセッサに、
    前記現在のビデオユニットがツリーブロックかどうか判定させ、
    前記現在のビデオユニットがツリーブロックではないことに基づいて、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの利用可能性を判定するための動作を再帰的に行わせる、請求項33または請求項34に記載のコンピュータプログラム。
  36. 前記特定された第1のエントリーが一連の値を備え、前記一連の値の各それぞれの値が、前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項33または請求項34に記載のコンピュータプログラム。
JP2014537071A 2011-10-18 2012-09-14 ビデオコーディングのための隣接するビデオユニットの利用可能性の検出 Expired - Fee Related JP6022586B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161548630P 2011-10-18 2011-10-18
US61/548,630 2011-10-18
US13/418,107 US9838692B2 (en) 2011-10-18 2012-03-12 Detecting availabilities of neighboring video units for video coding
US13/418,107 2012-03-12
PCT/US2012/055462 WO2013058910A1 (en) 2011-10-18 2012-09-14 Detecting availabilities of neighboring video units for video coding

Publications (2)

Publication Number Publication Date
JP2014532384A JP2014532384A (ja) 2014-12-04
JP6022586B2 true JP6022586B2 (ja) 2016-11-09

Family

ID=48085988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014537071A Expired - Fee Related JP6022586B2 (ja) 2011-10-18 2012-09-14 ビデオコーディングのための隣接するビデオユニットの利用可能性の検出

Country Status (7)

Country Link
US (1) US9838692B2 (ja)
EP (2) EP2769546A1 (ja)
JP (1) JP6022586B2 (ja)
KR (1) KR101647904B1 (ja)
CN (1) CN103891281B (ja)
IN (1) IN2014CN02627A (ja)
WO (1) WO2013058910A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4236315A3 (en) * 2012-06-26 2023-09-06 LG Electronics Inc. Video decoding method, video encoding method and storage medium storing encoded video information
US10075728B2 (en) * 2012-10-01 2018-09-11 Inria Institut National De Recherche En Informatique Et En Automatique Method and device for motion information prediction refinement
US11789769B2 (en) 2013-09-20 2023-10-17 Qualcomm Incorporated System and method for generation of event driven, tuple-space based programs
US10564949B2 (en) * 2013-09-20 2020-02-18 Reservoir Labs, Inc. System and method for generation of event driven, tuple-space based programs
WO2015057947A1 (en) * 2013-10-17 2015-04-23 Huawei Technologies Co., Ltd. Improved reference pixel selection and filtering for intra coding of depth map
KR102319384B1 (ko) * 2014-03-31 2021-10-29 인텔렉추얼디스커버리 주식회사 템플릿 매칭 기반의 화면 내 픽쳐 부호화 및 복호화 방법 및 장치
CN103929642B (zh) * 2014-04-24 2017-04-12 北京航空航天大学 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
CN104363459A (zh) * 2014-10-29 2015-02-18 复旦大学 一种适用于hevc标准中帧内预测的参考像素的硬件填充方法
JP6485045B2 (ja) * 2015-01-06 2019-03-20 沖電気工業株式会社 インデックス演算装置、プログラム及び方法
CN104869457B (zh) * 2015-05-21 2019-04-26 京东方科技集团股份有限公司 显示器、显示装置、播放器、播放装置及播放显示系统
KR20180109927A (ko) 2016-02-12 2018-10-08 톰슨 라이센싱 예측 트리 및 변환 트리에 의존하는, 픽처 데이터를 포함하는 코딩 단위를 인트라-예측 인코딩/디코딩하기 위한 방법 및 디바이스
WO2018045944A1 (en) * 2016-09-06 2018-03-15 Mediatek Inc. Methods and apparatuses of candidate set determination for binary-tree splitting blocks
US10841575B2 (en) * 2018-04-15 2020-11-17 Arris Enterprises Llc Unequal weight planar motion vector derivation
BR112020024142A2 (pt) 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
WO2020003282A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Managing motion vector predictors for video coding
EP4322533A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN110662030B (zh) * 2018-06-29 2022-06-14 北京字节跳动网络技术有限公司 一种视频处理方法和装置
TWI719525B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 Lut與amvp之間的交互
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
CN114900694A (zh) 2018-06-29 2022-08-12 抖音视界(北京)有限公司 哪个查找表需要更新或不更新
EP3794825A1 (en) 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Update of look up table: fifo, constrained fifo
TWI748202B (zh) 2018-07-02 2021-12-01 大陸商北京字節跳動網絡技術有限公司 Lamvr中取整和修剪的順序
CN110891180B (zh) 2018-09-10 2023-11-17 华为技术有限公司 视频解码方法及视频解码器
CN111064961B (zh) 2018-09-12 2023-06-09 北京字节跳动网络技术有限公司 视频处理方法和装置
WO2020143741A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Invoke of lut updating
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113302937A (zh) 2019-01-16 2021-08-24 北京字节跳动网络技术有限公司 运动候选推导
CA3131692A1 (en) * 2019-03-09 2020-09-17 Tencent America LLC Determination of block vector for a block in a region of a coding tree block
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN117321997A (zh) * 2021-04-05 2023-12-29 抖音视界有限公司 防止重复分割

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274841A (ja) 1992-03-26 1993-10-22 Sony Corp 情報記録装置
US9154808B2 (en) 2005-01-14 2015-10-06 Thomson Licensing Method and apparatus for INTRA prediction for RRU
EP2047687B1 (en) * 2006-08-02 2018-05-16 Thomson Licensing DTV Adaptive geometric partitioning for video encoding
US8233537B2 (en) 2007-03-19 2012-07-31 Texas Instruments Incorporated Efficient implementation of H.264 4 by 4 intra prediction on a VLIW processor
WO2008117963A1 (en) 2007-03-23 2008-10-02 Lg Electronics Inc. A method and an apparatus for decoding/encoding a video signal
US8045489B2 (en) * 2007-03-30 2011-10-25 Cisco Technology, Inc. Method and system for the automatic configuration of conference resources
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
CN101605255B (zh) 2008-06-12 2011-05-04 华为技术有限公司 一种视频编解码的方法及装置
US8634457B2 (en) 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
KR101456498B1 (ko) 2009-08-14 2014-10-31 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US20120039383A1 (en) * 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags

Also Published As

Publication number Publication date
JP2014532384A (ja) 2014-12-04
WO2013058910A1 (en) 2013-04-25
KR20140085510A (ko) 2014-07-07
US20130094580A1 (en) 2013-04-18
IN2014CN02627A (ja) 2015-06-26
CN103891281A (zh) 2014-06-25
EP2769546A1 (en) 2014-08-27
CN103891281B (zh) 2018-07-27
US9838692B2 (en) 2017-12-05
EP3396956A1 (en) 2018-10-31
KR101647904B1 (ko) 2016-08-11

Similar Documents

Publication Publication Date Title
JP6022586B2 (ja) ビデオコーディングのための隣接するビデオユニットの利用可能性の検出
KR102546382B1 (ko) 비디오 코딩을 위한 가변 수의 인트라 모드들
JP6914951B2 (ja) ビデオコーディングのための固定フィルタからのフィルタ係数を予測すること
JP5792381B2 (ja) 最後の有意変換係数のコーディング
JP6162150B2 (ja) ビデオコーディング用の残差4分木(rqt)コーディング
JP5932049B2 (ja) ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定
JP5774780B2 (ja) ビデオコーディングにおけるイントラ予測のための境界画素のパディング
JP6144333B2 (ja) レートひずみ最適量子化におけるレベル決定
JP5770311B2 (ja) ビデオコーディングにおけるサブスライス
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
TWI528788B (zh) 用於寫碼視訊資料之方法、裝置及電腦可讀媒體
JP5893747B2 (ja) コード化スライスnalユニット中のセグメントのパディング
JP2019515580A (ja) イントラ予測モードのネイバーベースのシグナリング
JP2018142972A (ja) Bスライス中の予測ユニットの単方向インター予測への制限
JP6553181B2 (ja) パレットモードコーディングのための方法
JP2018537908A (ja) ビデオデータの符号情報をコーディングすること
JP2018524906A (ja) イントラブロックコピーモードでの参照ピクチャリスト構成
TW201711464A (zh) 使用一全文自適應二進位算術寫碼設計來寫碼資料
JP2018530246A (ja) ビデオコーディングのために位置依存の予測組合せを使用する改善されたビデオイントラ予測
JP2017513342A (ja) ゼロアウトされた係数を使用した低複雑な順変換のためのシステムおよび方法
US9420285B2 (en) Inter-layer mode derivation for prediction in scalable video coding
JP2017521964A (ja) サブブロックパレットモード
JP2023015264A (ja) パレットモードを用いたビデオコーディングの方法および装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161005

R150 Certificate of patent or registration of utility model

Ref document number: 6022586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees