JP6258288B2 - 高効率ビデオコーディングのためのハイレベルシンタックスの拡張 - Google Patents

高効率ビデオコーディングのためのハイレベルシンタックスの拡張 Download PDF

Info

Publication number
JP6258288B2
JP6258288B2 JP2015500629A JP2015500629A JP6258288B2 JP 6258288 B2 JP6258288 B2 JP 6258288B2 JP 2015500629 A JP2015500629 A JP 2015500629A JP 2015500629 A JP2015500629 A JP 2015500629A JP 6258288 B2 JP6258288 B2 JP 6258288B2
Authority
JP
Japan
Prior art keywords
picture
motion vector
view
block
reference picture
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
JP2015500629A
Other languages
English (en)
Other versions
JP2015511090A5 (ja
JP2015511090A (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 JP2015511090A publication Critical patent/JP2015511090A/ja
Publication of JP2015511090A5 publication Critical patent/JP2015511090A5/ja
Application granted granted Critical
Publication of JP6258288B2 publication Critical patent/JP6258288B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

優先権の主張
本出願は、各々の内容全体が参照により本明細書に組み込まれる、2012年3月16日に出願された米国仮出願第61/611,959号、2012年4月16日に出願された米国仮出願第61/624,990号、2012年6月11日に出願された米国仮出願第61/658,344号、2012年6月22日に出願された米国仮出願第61/663,484号、および2012年12月27日に出願された米国仮出願第61/746,476号の利益を主張する。
本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part 10,Advanced Video Coding(AVC)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初に2次元アレイで構成され、変換係数の1次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
[0006]一般に、本開示は、ハイレベルシンタックスの変更しか伴わずに、来たる高効率ビデオコーディング(HEVC)規格のようなコーディング規格の拡張をサポートするための様々な技法を説明する。たとえば、本開示は、HEVCベース仕様と、ベースビューがHEVCベース仕様に適合する、マルチビュービデオコーデックおよび/または3次元(3D)ビデオコーデックのHEVC拡張との両方における技法を説明する。一般に、「ベースビデオコーディング仕様」は、2次元の単一レイヤのビデオデータをコーディングするために使用される、HEVCベース仕様のようなビデオコーディング仕様に相当し得る。ベースビデオコーディング仕様に対する拡張は、3Dビデオコーディングおよび/またはマルチレイヤビデオコーディングを可能にするように、ベースビデオコーディング仕様の機能を拡張し得る。HEVCベース仕様は、ベースビデオコーディング仕様の例を代表し、一方、HEVCベース仕様に対するMVCおよびSVC拡張は、ベースビデオコーディング仕様に対する拡張の例を代表する。
[0007]一例では、方法は、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を復号することと、第1のピクチャの第2次元ピクチャ識別子を復号することと、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号することと、を含む。第2次元ピクチャ識別子はさらに、ピクチャのタイプ、たとえば、ピクチャが長期ピクチャであるか短期ピクチャであるか、または、ピクチャが参照ピクチャである場合、そのピクチャが、そのピクチャを参照するピクチャと同じピクチャ順序カウント(POC)値を有するかどうか、へと簡略化され得る。隣接ブロックから動きベクトル候補を生成するとき、候補が、予測されることになる動きベクトルとは異なる第2次元ピクチャ識別子を有する場合、その候補は利用不可能であると見なされ得、その第2次元ピクチャ識別子は、この動きベクトルが指し、ターゲット参照インデックスによって特定されるピクチャである。
[0008]別の例では、方法は、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を符号化することと、第1のピクチャの第2次元ピクチャ識別子を符号化することと、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化することとを含む。
[0009]別の例では、デバイスは、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を復号し、第1のピクチャの第2次元ピクチャ識別子を復号し、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号するように構成されるビデオデコーダを含む。
[0010]別の例では、デバイスは、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を符号化し、第1のピクチャの第2次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化するように構成されるビデオエンコーダを含む。
[0011]別の例では、デバイスは、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を復号する手段と、第1のピクチャの第2次元ピクチャ識別子を復号する手段と、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号する手段とを含む。
[0012]別の例では、デバイスは、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を符号化する手段と、第1のピクチャの第2次元ピクチャ識別子を符号化する手段と、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化する手段とを含む。
[0013]別の例では、実行されるとプロセッサに、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を復号させ、第1のピクチャの第2次元ピクチャ識別子を復号させ、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号させる命令を記憶するコンピュータ可読記憶媒体。
[0014]別の例では、実行されるとプロセッサに、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を符号化させ、第1のピクチャの第2次元ピクチャ識別子を符号化させ、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化させる命令を記憶するコンピュータ可読記憶媒体。
[0015]1つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオエンコーダの例を示すブロック図。 ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオデコーダの例を示すブロック図。 例示的なMVC予測パターンを示す概念図。 ハイレベルシンタックスのみのHEVC拡張を達成するために克服されるべき潜在的な問題を示す概念図。 ハイレベルシンタックスのみのHEVC拡張を達成するために克服されるべき潜在的な問題を示す概念図。 ハイレベルシンタックスのみのHEVC拡張を達成するために克服されるべき潜在的な問題を示す概念図。 ハイレベルシンタックスのみのHEVC拡張を達成するために克服されるべき潜在的な問題を示す概念図。 ハイレベルシンタックスのみのHEVC拡張を達成するために克服されるべき潜在的な問題を示す概念図。 動きベクトル予測において使用するための現在のブロックに対する隣接ブロックの例示的なセットを示す概念図。 本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャート。 本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャート。
[0024]一般に、本開示は、ハイレベルシンタックス(HLS)の変更しか伴わずに、来たる高効率ビデオコーディング(HEVC)規格のようなコーディング規格の拡張をサポートするための様々な技法を説明する。たとえば、本開示は、HEVCベース仕様と、ベースビューがHEVCベース仕様に適合する、マルチビュービデオコーディング(MVC)および/または3次元ビデオ(3DV)コーディングのHEVC拡張との両方における技法を説明する。
[0025]本開示は、HEVC拡張仕様においてハイレベルシンタックスのみのプロファイルを可能にするための、いくつかの技法を説明する。MVC/3DVの文脈における「ビュー間」という用語は、スケーラブルビデオコーディング(SVC)の文脈では「レイヤ間」により置き換えられ得る。すなわち、これらの技法の説明は主に「ビュー間」予測を中心とするが、同じまたは同様の考えが、HEVCのHLSのみのSVC拡張に対する「レイヤ間」参照ピクチャに適用され得る。
[0026]図1は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
[0027]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、高周波(RF)スペクトルあるいは1つまたは複数の物理伝送線路のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0028]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような、種々の分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0029]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、dynamic adaptive streaming over HTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、種々のマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0030]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他のコンポーネントまたは構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0031]図1の示されるシステム10は一例にすぎない。ビデオコーディング規格のハイレベルシンタックスのみの拡張によるビデオデータをコーディングするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化コンポーネントとビデオ復号コンポーネントとを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話のための、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートすることができる。
[0032]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータにより生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、上述のように、本開示で説明される技法は、全般にビデオコーディングに適用可能であってよく、ワイヤレスおよび/または有線の適用例に適用可能であってよい。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0033]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたは有線ネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化されたビデオデータを受信し、宛先デバイス14に符号化ビデオデータを与え得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを製造することができる。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0034]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備え得る。
[0035]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作することができ、HEVC Test Model(HM)に準拠することができる。「HEVC Working Draft 7」または「WD7」と呼ばれるHEVCの最近のドラフトは、文書JCTVC−I1003、Brossら、「High Efficiency Video Coding(HEVC) Text Specification Draft 7」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第9回会合:スイス、ジュネーブ、2012年4月27日から2012年5月7日に記載されており、これは2012年6月22日の時点で、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC−I1003−v3.zipからダウンロード可能である。上で述べられたように、本開示は、ハイレベルシンタックスを使用してHEVCを拡張するための技法を説明する。したがって、ビデオエンコーダ20およびビデオデコーダ30は、ハイレベルシンタックスを使用して拡張されるHEVCのバージョンに従って動作し得る。
[0036]代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格のような、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。やはり、これらの拡張は、ハイレベルシンタックスを使用して達成され得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、適切なMUX−DEMUXユニット、または他のハードウェアとソフトウェアとを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0037]ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示で説明される技法は、一般にH.264規格に準拠するデバイスに適用され得る。H.264規格は、ITU−T研究グループによる2005年3月付けのITU−T勧告H.264、Advanced Video Coding for generic audiovisual servicesに記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ばれ得る。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0038]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアのような、種々の適切なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
[0039]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVC Test Model(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
[0040]一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記載する。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。一般に、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0041]4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義されてよく、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUもリーフCUと呼ばれる。たとえば、16×16サイズのCUがこれ以上分割されない場合、この16×16CUがまったく分割されなくても、4つの8×8サブCUもリーフCUと呼ばれる。
[0042]CUは、CUがサイズ差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割されてよく、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、また、コーディングノードの最小サイズを定義することもできる。それに応じて、ビットストリームは最小コーディングユニット(SCU)も定義することができる。本開示では、HEVCの文脈におけるCU、PU、またはTU、あるいは他の規格の文脈における同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0043]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルを有するツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が正方形または非正方形(たとえば、矩形)であり得る。
[0044]HEVC規格は、CUごとに異なり得るTUに従った変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは通常、PUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
[0045]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。一般に、PUは、対応するCUのすべてまたは一部分に対応する空間的エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUのデータは、PUに対応するTUのイントラ予測モードを記述するデータを含み得る、残差4分木(RQT)中に含まれ得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述し得る。
[0046]1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上で論じられたように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、さらなるサブTUに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれ得る。一般に、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、一般に、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUはPUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUについて対応するリーフTUと同じ位置にあり得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0047]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造と関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般にリーフCUに対応し、CU4分木のルートノードは一般にツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。全般に、本開示では、別段明記されない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0048]ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定のサイズまたは可変のサイズを有してよく、指定されるコーディング規格に応じてサイズが異なり得る。
[0049]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUへと水平方向に区分された2N×2N CUを指す。
[0050]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック内のピクセルは行と列で構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えてよく、ただし、Mは必ずしもNに等しいとは限らない。
[0051]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備えてよく、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
[0052]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減することができる。たとえば、量子化中にnビット値がmビット値に切り捨てられてよく、nはmよりも大きい。
[0053]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(したがってより高い周波数)の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成し得る。他の例では、ビデオエンコーダ20は適応走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化することができる。
[0054]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択することができる。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCを使用すると、たとえば、送信されるべきシンボルごとに等長コードワードを使用するよりも、ビットの節約を実現することができる。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
[0055]ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述することができ、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示すことができる。
[0056]一般に、本開示は、HEVCのような、ビデオコーディング規格のハイレベルシンタックス(HLS)のみの拡張を可能にするための解決法の様々な例を説明する。たとえば、これらの技法は、MVCまたはSVCのようなHEVCのプロファイルに対するHLSのみの拡張を開発するために使用され得る。様々な例が以下で説明される。様々な例が別々に説明されるが、例のいずれかまたはすべての要素は任意の組合せで組み合わされ得ることを理解されたい。
[0057]第1の例では、現在のHEVCベース仕様に対する変更はない。HEVC拡張では、ピクチャ(たとえば、ビュー成分)は、ピクチャ順序カウント(POC)値および第2次元ピクチャ識別子、たとえばview_id値(ピクチャが存在するビューを識別し得る)という、2つの特性によって識別され得る。ビデオエンコーダ20は、長期参照ピクチャとしてビュー間予測のために使用されるべきビュー成分を示すことが要求され得る。
[0058]第2の例では、現在のHEVCベース仕様に対する変更はない。HEVC拡張では、次の変更が適用され得る。ピクチャ(たとえば、ビュー成分)は、POC値および第2次元ピクチャ識別子、たとえばview_idという2つの特性によって識別され得る。この第2の例では、すべてのビュー間参照ピクチャを長期参照ピクチャとしてマークするために、現在のビュー成分をコーディングする直前に、追加のピクチャマーキングプロセスが導入され得る。各ビュー間参照ピクチャを、現在のビュー成分がコーディングされる前の以前マークされた状態と同一である、長期、短期、または「参照に使用されない」のいずれかとしてマークするために、現在のビュー成分をコーディングした直後に、別のピクチャマーキングプロセスが導入され得る。
[0059]第3の例では、第2の例の技法が使用され、次のように補足される。第2の例の技法に加えて、各ビュー間参照ピクチャに対して、長期参照ピクチャとしてマークされた後、ピクチャのPOC値が、任意の既存の参照ピクチャのPOC値と等しくない新たなPOC値にマッピングされる。現在のビュー成分を復号した後、各ビュー間参照ピクチャに対して、そのPOC値が、現在のビュー成分に等しい元のPOC値へと再びマッピングされる。たとえば、現在のビュー成分はビュー3に属し(ビュー識別子がビュー順序インデックスに等しいと仮定して)、5に等しいPOC値を有し得る。2つのビュー間参照ピクチャは、自身のPOC値(両方とも5である)を、たとえば1025および2053へと変換させ得る。現在のビュー成分を復号した後、ビュー間ピクチャのPOC値は再び5に変換され得る。
[0060]第4の例では、第2の例と第3の例のいずれかの技法が使用され、次のように補足され得る。上で言及されたような第1の例または第2の例の技法に加えて、HEVCベース仕様において、特に発展型動きベクトル予測(AMVP:advanced motion vector prediction)の間に、短期ピクチャを参照する任意の動きベクトルと長期ピクチャを参照する別の動きベクトルとの間の予測をディセーブルにするために、追加のフック(hook)が使用され得る。

[0061]第5の例では、HEVC拡張において、ピクチャは、POC値および第2次元ピクチャ識別情報、たとえばview_idという2つの特性によって識別され得る。HEVCベース仕様において、次のフックの1つまたは複数が(単独でまたは任意の組合せで)追加され得る。一例(例5.1と呼ばれる)では、AMVPおよびマージモードの間に参照ピクチャを識別するとき、第2次元ピクチャ識別情報、たとえば、ビュー順序インデックスが、POCと一緒に使用され得る。HEVCベース仕様における二次元2Dビデオ復号のコンテキストでは、第2次元ピクチャ識別情報は常に0に等しく設定され得る。
[0062]別の例(例5.2)では、時間的動きベクトルとビュー間動きベクトルとの間の予測は、AMVP(時間的動きベクトル予測(TMVP)を含む)の間はディセーブルにされる。動きベクトルの性質が、参照ピクチャを識別する関連する参照インデックスによって決定され得るかどうか、および、たとえば、長期参照ピクチャ、短期参照ピクチャ、またはビュー間参照ピクチャのような、動きベクトルを含むピクチャによってどのように参照ピクチャが参照されているか。別の例(例5.3)では、時間的短期動きベクトルと時間的長期動きベクトルとの間の予測が(たとえば、明示的にまたは暗黙的に)ディセーブルにされ得る。別の例(例5.4)では、時間的短期動きベクトルと時間的長期動きベクトルとの間の予測が(たとえば、明示的にまたは暗黙的に)イネーブルにされ得る。
[0063]別の例(例5.5)では、2つの異なるビュー間参照ピクチャを参照する動きベクトルの間の予測が(たとえば、明示的にまたは暗黙的に)ディセーブルにされ得る。2つのビュー間参照ピクチャは、それらの第2次元ピクチャ識別子の値が異なる場合、タイプが異なると見なされ得る。別の例(例5.6)では、2つの異なるビュー間参照ピクチャを参照する動きベクトルの間の予測が(たとえば、明示的にまたは暗黙的に)イネーブルにされ得る。別の例(例5.7)では、長期ピクチャを参照する動きベクトルとビュー間を参照する動きベクトルの間の予測が(たとえば、明示的にまたは暗黙的に)イネーブルにされ得る。別の例(例5.8)では、長期ピクチャを参照する動きベクトルとビュー間を参照する動きベクトルの間の予測が(たとえば、明示的にまたは暗黙的に)ディセーブルにされ得る。
[0064]上の例のいずれにおいても、2つの異なる時間的短期参照ピクチャを参照する2つの動きベクトルの間の予測が常にイネーブルにされ、POC値に基づき一方から他方へのスケーリングがイネーブルにされ得る。加えて、または代替的に、上の例のいずれにおいても、2つの異なる長期ピクチャを参照する動きベクトルの間の予測はディセーブルにされ得る。上で説明された様々な例のいくつかの詳細が、以下でより詳細に論じられる。
[0065]一般に、本開示は、参照インデックス(すなわち、参照ピクチャへのポインタ)と、動きベクトル自体のx座標およびy座標とを含むものとして、「動きベクトル」または「動きベクトルデータ」に言及する。視差動きベクトルと時間的動きベクトルの両方が、一般に「動きベクトル」と呼ばれ得る。参照インデックスに対応する参照ピクチャは、動きベクトルが参照する参照ピクチャと呼ばれ得る。動きベクトルが同じビューの中の参照ピクチャを参照する場合、それは時間的動きベクトルと呼ばれる。動きベクトルが異なるビューの参照ピクチャを参照する場合、それは視差動きベクトルと呼ばれる。
[0066]時間的動きベクトルは、短期の時間的動きベクトル(「短期動きベクトル」)または長期の時間的動きベクトル(「長期動きベクトル」)であり得る。たとえば、動きベクトルが短期参照ピクチャを参照する場合、その動きベクトルは短期であり、動きベクトルが長期参照ピクチャを参照する場合、その動きベクトルは長期である。別段言及されない限り、視差動きベクトルおよび長期動きベクトルは一般に、たとえば、それぞれビュー間予測および時間的ビュー内予測のための、異なるカテゴリーの動きベクトルを表す。短期参照ピクチャおよび長期参照ピクチャは、時間的参照ピクチャの例を代表する。
[0067]ビデオエンコーダ20およびビデオデコーダ30は、参照ピクチャメモリとして実装され得る、復号ピクチャバッファ(DPB)から参照ピクチャを識別するように構成され得る。DPBから参照ピクチャを識別するプロセスは、本開示で説明される技法の例のいずれかにおいて使用され得る。DPBから参照ピクチャを識別するプロセスは、HEVC拡張仕様において、参照ピクチャセット構築、参照ピクチャリスト構築、および/または参照ピクチャマーキングの目的で使用され得る。
[0068]ビュー成分、テクスチャビュー成分、深度ビュー成分、またはスケーラブルレイヤ(たとえば、dependency_idとquality_idの固有の組合せを伴う)が、ピクチャ順序カウント(POC)値および第2次元ピクチャ識別情報によって識別され得る。第2次元ピクチャ識別情報は、マルチビューのコンテキストにおけるビューID(view_id)、マルチビューのコンテキストにおけるビュー順序インデックス、3DV(深度を伴うマルチビュー)のコンテキストにおけるビュー順序インデックスとdepth_flag(現在のビュー成分がテクスチャか深度かを示す)との組合せ、たとえば、2にdepth_flagの値を足した数により乗算されるビュー順序インデックス、SVCのコンテキストにおけるレイヤID(スケーラブルコーディング環境では、たとえばAVCベースのSVCでは、レイヤIDは、16にquality_idを足した数により乗算されるdependency_idに等しくてよい)、または、一般的なレイヤID(layer_id)、たとえば、HEVCベース仕様において規定されるようなreserved_one_5bitから1を引いた値、のうちの1つまたは複数を含み得る。一般的なレイヤIDは、3DV(深度を伴うマルチビュー)シナリオとスケーラビリティシナリオとの混合に対して適用可能であり得ることに留意されたい。上で言及された例は、たとえば、ビューとして各レイヤを見なすことによって、スケーラブルビデオコーデックを含む、任意の複数レイヤコーデックに当てはまり得る。言い換えると、マルチビュービデオコーディングでは、様々なビューが、別個のレイヤとして見なされ得る。
[0069]いくつかのシナリオでは、ベースレイヤまたは従属(dependent)ビューは、たとえば、異なるアップサンプリング/スムージングフィルタの使用が原因で、または、予測のためにビューが合成されたピクチャを使用するという事実が原因で、複数の表現を有することがあるので、1つのビュー位置において、使用の準備ができている2つのピクチャが存在することがあり、ここで一方のピクチャは通常の復元された従属ビューピクチャであり、他方のピクチャは合成されたビューピクチャであり、両方が同じview_idまたはビュー順序インデックスを伴う。この場合、第3次元のピクチャ識別情報が使用され得る。
[0070]ビデオエンコーダ20およびビデオデコーダ30はまた、参照ピクチャリストから参照ピクチャを識別するように構成され得る。復号ピクチャバッファ(DPB)は、参照ピクチャリスト、たとえば、現在のピクチャのPOC値よりも小さいPOC値を有する潜在参照ピクチャを含むRefPicList0と、現在のピクチャのPOC値よりも大きいPOC値を有する潜在参照ピクチャを含むRefPicList1とを含む。参照ピクチャリストから参照ピクチャを識別するための技法は、現在のHEVCベース仕様書に対するフックとして使用される。定義された機能は、AMVPおよびマージモードの間に、ビデオエンコーダまたはビデオデコーダによって複数回呼び出され得る。
[0071]ビュー成分、テクスチャビュー成分、深度ビュー成分、またはスケーラブルレイヤ(たとえば、dependency_idとquality_idの固有の組合せを伴う)は、POC値および第2次元ピクチャ識別情報によって識別されてよく、第2次元ピクチャ識別情報は、マルチビューと3DVのいずれかのコンテキストにおけるビュー順序インデックスの1つであり得る。関数viewOIdx(pic)は、「pic」として識別されるピクチャが属するビューのビュー順序インデックスを返す。この関数は、ベースビューの任意のビュー成分、テクスチャビュー成分、または深度ビュー成分に対しては0を返し、ビューID(view_id)を返し、3DVのコンテキストではビュー順序インデックスとdepth_flag(現在のビュー成分がテクスチャか深度かを示す)との組合せ、すなわち、2にdepth_flagの値を足した数により乗算されるビュー順序インデックスを返し、SVCのコンテキストではレイヤID(スケーラブルコーディング環境では、たとえばAVCベースのSVCでは、レイヤIDは、16にquality_idを足した数により乗算されるdependency_idに等しくてよい)を返し、または、一般的なレイヤID(layer_id)、たとえば、HEVCベース仕様において規定されるようなreserved_one_5bitから1を引いた値を返す。関数layerId(pic)は、ピクチャpicのlayer_idを返す。layerId(pic)は、ベースビューの任意の(テクスチャ)ビュー成分に対しては0を返す。layerId(pic)は、SVCベースレイヤの任意のピクチャ(またはレイヤ表現)に対しては0を返す。一般的なレイヤIDは、3DV(深度を伴うマルチビュー)およびスケーラビリティシナリオの混合に対して適用可能であり得ることに留意されたい。
[0072]いくつかの状況では、ベースレイヤまたは従属ビューは、たとえば、異なるアップサンプリング/平滑フィルタの使用が原因で、または、予測のためにビューが合成されたピクチャを使用するという事実が原因で、複数の表現を有することがあるので、1つのビュー位置において、使用の準備ができている2つのピクチャが存在することがあり、一方のピクチャは通常の復元された従属ビューピクチャであり、他方のピクチャは合成されたビューピクチャであり、両方が同じview_idまたはビュー順序インデックスを伴う。この場合、第3次元のピクチャ識別情報が使用され得る。
[0073]上で言及された第2次元および/または第3次元ピクチャ識別情報の1つまたは複数は、関数AddPicId(pic)を使用することによって定義され得る。
[0074]ビデオエンコーダ20およびビデオデコーダ30はまた、参照ピクチャリスト中のエントリーのタイプを識別するように構成され得る。これは、現在のHEVCベース仕様に対するフックとして使用され得る。以下で定義される関数のいずれかまたはすべてが、AMVPおよび/またはマージモードの間に、ビデオエンコーダ20および/またはビデオデコーダ30によって複数回呼び出され得る。以下の例示的な技法のいずれかまたはすべては、参照ピクチャリスト中のエントリーのタイプを識別するために使用され得る。一例では、関数「RefPicType(pic)」は、ピクチャpicが時間的参照ピクチャである場合は0を返し、ピクチャpicが時間的参照ピクチャではない場合は1を返す。別の例では、関数「RefPicType(pic)」は、ピクチャpicが現在のピクチャと同じPOCを有する場合は0を返し、ピクチャpicが現在のピクチャとは異なるPOCを有する場合は1を返す。
[0075]別の例では、上で論じられた例の結果は、「pic」(関数の引数)のPOCが現在のピクチャのPOCに等しいかどうかを単に確認することによって、関数RefPicType(pic)の使用を置き換えることで達成され得る。いくつかの例では、ビュー間参照ピクチャは、「参照に使用されない」としてマークされ得る。ビュー間参照ピクチャは、「参照に使用されない」としてマークされ得る。簡単にするために、そのようなピクチャは、HEVCベース仕様では非参照ピクチャと呼ばれる。いくつかの例では、「長期参照に使用される」と「短期参照に使用される」のいずれかとしてマークされたピクチャは、HEVCベース仕様において参照ピクチャと呼ばれ得る。いくつかの例では、関数RefPicType(pic)は、ピクチャpicが「長期参照に使用される」または「短期参照に使用される」としてマークされる場合は0を返し、ピクチャpicが「参照に使用されない」としてマークされる場合は1を返す。加えて、いくつかの例では、HEVC拡張において、復号の直後のビュー成分は、nal_ref_flagシンタックス要素の値とは無関係に、「参照に使用されない」としてマークされ得る。
[0076]アクセスユニット全体がコーディングされた後、nal_ref_flagが真である場合、アクセスユニットのビュー成分は、「短期参照に使用される」または「長期参照に使用される」としてマークされ得る。あるいは、ビュー成分は、後続のビュー成分の参照ピクチャセット(RPS)が導出された直後に、ビュー成分が後続のビュー成分のRPSに、同じビューの中に復号の順序で含まれる場合にのみ、「短期参照に使用される」または「長期参照に使用される」とマークされ得る。加えて、HEVCベース仕様では、現在のピクチャは、復号の直後に、「参照に使用されない」とマークされ得る。
[0077]いくつかの例では、RefPicType(picX、refIdx、LX)は、picXが現在のピクチャであった時点でのRefPicType(pic)の値を返し、ここで、picは、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャである。
[0078]「第4の例」として上で呼ばれる例に関して、ビデオエンコーダ20およびビデオデコーダ30は、AMVPおよびTMVPの間の、スケーリングを伴わない長期参照ピクチャの間の予測を可能にするように構成され得る。AMVPに関して、ビデオエンコーダ20およびビデオデコーダ30は、動きベクトル予測子(MVP)の候補の修正された導出プロセスを実行するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP、yP)と、ルーマ、nPSW、およびnPSHに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスrefIdxLX(Xは0または1である)とを含み得る。このプロセスの出力は、(図10の例で示されるように、NはAとBのいずれかで置き換えられ、Aは左側の隣接する候補に対応し、Bは上側の隣接する候補に対応する)隣接予測ユニットの動きベクトルmvLXNと、隣接予測ユニットの利用可能性フラグavailableFlagLXNとを含み得る。Xが0または1である変数isScaledFlagLXは、0に等しく設定され得る。
[0079]一例では、ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXAと利用可能性フラグavailableFlagLXAとを次の順序付けられたステップで導出することができ、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 2つのサンプル位置のセットを(xAk,yAk)とし、k=0,1であり、サンプル位置を、xAk=xP-1、yA0=yP+nPSH、およびyA1=yA0−MinPuSizeにより規定する。サンプル位置のセット(xAk,yAk)は、左側の区分境界とその延長線のすぐ左側のサンプル位置を表す。
2. 利用可能性フラグavailableFlagLXAが最初に0に等しく設定されるようにして、mvLXAの両方の成分が0に等しく設定される。
3. 次の条件の1つまたは複数が真である場合、この例では、変数isScaledFlagLXが1に等しく設定される。
−ルーマ位置(xA0,yA0)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではない。
−ルーマ位置(xA1,yA1)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではない。
4. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、次のことが、availableFlagLXAが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、参照インデックスrefIdxLX[xAk][yAk]が現在の予測ユニットの参照インデックスrefIdxLXに等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能である場合[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、PicOrderCnt(RefPicListY[refIdxLY[xAk][yAk]])がPicOrderCnt(RefPicListX[refIdxLX])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定され、mvLXAがmvLXAに等しく設定される。
5. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、この例では、次のことが、availableFlagLXAが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、RefPicListX[refIdxLX]とRefPicListX[refIdxLX[xA k ][yA k ]]が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、RefPicListX[refIdxLX]とRefPicListY[refIdxLY[xA k ][yA k ]]が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定される。
−availableFlagLXAが1に等しく、RefPicListA[refIdxA]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXAは以下で規定されるように導出される(ここで、8−###という表記は、HEVCの現在のドラフト、すなわちWD7のセクションを指す)。
tx=(16384+(Abs(td)>>1))/td (8-126)
DistScaleFactor=Clip3(−4096,4095,(tb * tx+32)>>6) (8-127)
mvLXA=Clip3(−8192,8191.75,Sign(DistScaleFactor * mvLXA)*
((Abs(DistScaleFactor * mvLXA)+127)>>8)) (8-128)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListA[refIdxA])) (8-129)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX])) (8-130)
[0080]一例では、ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXBと利用可能性フラグavailableFlagLXBとを次の順序付けられたステップで導出するように構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 3つのサンプル位置のセットを(xBk,yBk)とし、k=0,1,2であり、xB0=xP+nPSW、xB1=xB0-MinPuSize、xB2=xP-MinPuSize、およびyBk=yP-1によりサンプル位置を規定する。サンプル位置のセット(xBk,yBk)は、上側の区分境界とその延長線のすぐ上側のサンプル位置を表す。[Ed.(BB):SPS中でMinPuSizeを定義するが、導出はAMPフラグの使用に依存すべきである]
2. yP−1が((yC>>Log2CtbSize)<<Log2CtbSize)より小さい場合、次のことが適用する。
xB0 = (xB0>>3)<<3)+((xB0>>3)&1)*7 (8-131)
xB1 = (xB1>>3)<<3)+((xB1>>3)&1)*7 (8-132)
xB2 = (xB2>>3)<<3)+((xB2>>3)&1)*7 (8-133)
3. 利用可能性フラグavailableFlagLXBが最初に0に等しく設定されるようにして、mvLXBの両方の成分が0に等しく設定される。
4. xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、次のことが、availableFlagLXBが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、参照インデックスrefIdxLX[xBk][yBk]が現在の予測ユニットの参照インデックスrefIdxLXに等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではななく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、PicOrderCnt(RefPicListY[refIdxLY[xBk][yBk]])がPicOrderCnt(RefPicListX[refIdxLX])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
5. isScaledFlagLXが0に等しく、availableFlagLXBが1に等しい場合、mvLXAはmvLXBに等しく設定され、refIdxAはrefIdxBに等しく設定され、availableFlagLXAは1に等しく設定される。
6. isScaledFlagLXが0に等しく、xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しく設定されている場合、次のことが、availableFlagLXBが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、RefPicListX[refIdxLX]とRefPicListX[refIdxLX[xB k ][yB k ]]が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではなく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、RefPicListX[refIdxLX]とRefPicListY[refIdxLY[xB k ][yB k ]]が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
−availableFlagLXBが1に等しく、PicOrderCnt(RefPicListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくなく、RefPicListB[refIdxB]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXBは以下で規定されるように導出され得る(ここで、8−###という表記は、HEVCの現在のドラフトのセクションを指す)。
tx=(16384+(Abs(td)>>1))/td (8-134)
DistScaleFactor=Clip3(−4096,4095,(tb * tx + 32) >>6) (8-135)
mvLXB=Clip3(−8192,8191.75,Sign(DistScaleFactor * mvLXA)*
((Abs(DistScaleFactor * mvLXA) + 127)>>8)) (8-136)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListB[refIdxB])) (8-137)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX])) (8-138)
[0081]ビデオエンコーダ20およびビデオデコーダ30はまた、輝度ブロックの動きベクトルをコーディングするための時間的動きベクトル予測(TMVP)のための、修正された導出プロセスを実行するように構成され得る。一例では、このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP、yP)と、ルーマ、nPSW、およびnPSHに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスrefIdxLX(Xは0または1である)とを含む。このプロセスの出力は、動きベクトル予測mvLXColと利用可能性フラグavailableFlagLXColとを含み得る。
[0082]一例では、ビデオエンコーダ20およびビデオデコーダ30は、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャのピクチャ順序カウントPicOrderCntValを返す、関数RefPicOrderCnt(picX,refIdx,LX)を実行し得る。この関数は次のように規定されてよく、(8−141)およびこの説明における同様の参照は、HEVC WD7のセクションを指す。
RefPicOrderCnt( picX, refIdx, LX )
= PicOrderCnt(RefPicListX[ refIdx ] of the picture picX) (8 141)
[0083]slice_type、collocated_from_l0_flag、およびcollocated_ref_idxの値に応じて、コロケート区分を含むピクチャを規定する変数colPicは、次のように導出され得る。
−slice_typeがBに等しく、collocated_from_l0_flagが0に等しい場合、変数colPicは、RefPicList1[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
−そうではない場合(slice_typeがBに等しく、collocated_from_l0_flagが1に等しく、またはslice_typeがPに等しい)、変数colPicは、RefPicList0[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
[0084]変数colPuおよびその位置(xPCol,yPCol)は、次の順序付けられたステップを使用して導出され得る。
1. 変数colPuは次のように導出され得る。
yPRb=yP+nPSH (8-139)
−(yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
xPRb=xP+nPSH (8-140)
によって定義され、変数colPuはcolPicの内側の、((xPRb>>4)<<4,(yPRb>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定される。
−そうではない場合((yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)と等しくない)、colPuは「利用不可能である」とマークされる。
2. colPuがイントラ予測モードでコーディングされる場合、またはcolPuが「利用不可能」とマークされる場合、次のことが適用する。
−現在の予測ユニットの中心のルーマ位置は、
xPCtr=(xP+(nPSW>>1) (8-141)
yPCtr=(yP+(nPSW>>1) (8-142)
によって定義される。
−変数colPuは、colPicの内側の、((xPCtr>>4)<<4,(yPCtr>>4)<<4)によって与えられる修正された位置を包含する予測ユニットとして設定される。
(xPCol,yPCol)は、colPicの一番左上のルーマサンプルに対するcolPuの一番左上のルーマサンプルに等しく設定される。
[0085]関数LongTermRefPic(picX,refIdx,LX)は、次のように定義され得る。picXが現在のピクチャであった時点で、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、LongTermRefPic(picX,refIdx,LX)は1を返し、それ以外の場合、LongTermRefPic(pic,refIdx,LX)は0を返す。
[0086]変数mvLXColおよびavailableFlagLXColは次のように導出されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。
−次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
−colPuはイントラ予測モードでコーディングされる。
−colPuは「利用不可能」とマークされる。
−pic_temporal_mvp_enable_flagは0に等しい。
−そうではない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
−PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
−そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
−PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
−そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割当てが行われる。
−それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
−そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
次の条件の1つが真である場合、変数availableFlagLXColは0に等しく設定される。
RefPicListX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は0に等しい。
RefPicListX[refIdxLX]は短期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しい。
そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである場合、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい場合、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、
mvLXCol = mvCol (8-143)
である。
−そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
tx=(16384+(Abs(td)>>1))/td (8-144)
DistScaleFactor=Clip3(−4096, 4095, (tb * tx+ 32 )>> 6) (8-145)
mvLXCol = Clip3(−8192, 8191.75, Sign(DistScaleFactor * mvCol)*
((Abs(DistScaleFactor * mvCol)+127)>>8)) (8-146)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128, 127, PicOrderCnt(colPic)−
RefPicOrderCnt(colPic, refIdxCol, listCol)) (8-147)
tb=Clip3(−128, 127, PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX])) (8-148)
[0087]上の例では、TMVPの間に使用されるコロケート(co-located)ブロックの利用可能性は、コロケートブロックについての参照ピクチャのピクチャタイプ(たとえば、ピクチャが短期参照ピクチャか長期参照ピクチャか)にも依存し得る。すなわち、(subcaluseにおけるステップ1の後で)TMVPについての一番右下のブロックが利用可能である場合であっても、一番右下のブロックはさらに、ブロック中の動きベクトルが、ターゲット参照ピクチャとは異なるピクチャタイプ(短期または長期)を指す場合、利用不可能となるように設定され得る。同様に、中心ブロックがTMVPのためにさらに使用され得る。
[0088]たとえば、ビデオエンコーダ20およびビデオデコーダ30は、次の詳細な例に従って、ルーマ動きベクトルのための動きベクトル予測子を導出するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30によって実施されるプロセスに対する入力は、
−現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP,yP)と、
−ルーマのための予測ユニットの幅と高さとを規定する変数、nPSWおよびnPSHと、
−現在の予測ユニットの区分refIdxLX(Xは0または1である)の参照インデックスと、を含み得る。
[0089]プロセスからの出力は、
−動きベクトル予測mvLXColと、
−利用可能性フラグavailableFlagLXColと、を含み得る。
[0090]関数RefPicOrderCnt(picX,refIdx,LX)は、ビデオエンコーダ20および/またはビデオデコーダ30によって実行されると、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャのピクチャ順序カウントPicOrderCntValを返すことができる。この関数の例示的な実装が、次のように規定される。
RefPicOrderCnt( picX, refIdx, LX ) =
PicOrderCnt(ピクチャpicXのRefPicListX[refIdx])
(8-141)
[0091]slice_type、collocated_from_l0_flag、およびcollocated_ref_idxの値に応じて、コロケート(collocated)区分を含むピクチャを規定する変数colPicは、次のように導出され得る。
−slice_typeがBに等しく、collocated_from_l0_flagが0に等しい場合、変数colPicは、RefPicList1[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
−そうではない場合(slice_typeがBに等しく、collocated_from_l0_flagが1に等しく、またはslice_typeがPに等しい)、変数colPicは、RefPicList0[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
[0092]ビデオエンコーダ20およびビデオデコーダ30は、次の順序付けられたステップを使用して、変数colPuとその位置(xPCol,yPCol)とを導出することができる。
1. ビデオエンコーダ20およびビデオデコーダ30は、次のように変数colPuを導出することができる。
yPRb = yP + nPSH (8-139)
−(yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
xPRb = xP + nPSW (8-140)
によって定義され得、変数colPuはcolPicの内側の、((xPRb>>4)<<4,(yPRb>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定され得る。
−そうではない場合((yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)に等しくない)、ビデオエンコーダ20およびビデオデコーダ30は、colPuを「利用不可能」とマークすることができる。
2. colPuがイントラ予測モードでコーディングされる場合、またはcolPuが「利用不可能」とマークされる場合、この例では、次のことが適応する。
−現在の予測ユニットの中心のルーマ位置は、
xPCtr = ( xP + ( nPSW >> 1 ) (8-141)
yPCtr = ( yP + ( nPSH >> 1 ) (8-142)
によって定義される。
−変数colPuは、colPicの内側の、((xPCtr>>4)<<4,(yPCtr>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定される。
3. ビデオエンコーダ20およびビデオデコーダ30は、(xPCol,yPCol)を、colPicの一番左上のルーマサンプルに対するcolPuの一番左上のルーマサンプルと等しく設定し得る。
[0093]関数LongTermRefPic(picX,refIdx,LX)は、次のように定義され得る。picXが現在のピクチャであった時点で、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、LongTermRefPic(picX,refIdx,LX)は1を返し、それ以外の場合、LongTermRefPic(pic,refIdx,LX)は0を返す。
[0094]ビデオエンコーダ20およびビデオデコーダ30は、次のように変数mvLXColとavailableFlagLXColとを導出し得る。
availableFlagLXColは0に設定され、numTestBlockは0に等しい。
numTestBlockが2未満でありavailableFlagLXColが0に等しい間は、次のことが順番に実行される。
xPCtr = ( xP + ( nPSW >> 1 )
yPCtr = ( yP + ( nPSH >> 1 )
−colPuがcolPicの内側の((xPCtr>>4)<<4,(yPCtr>>4)<<4)によって与えられる位置をカバーする場合、numTestBlockは1に設定される。
−そうではなく、numTestBlockが1に等しいとき、colPuは、colPicの内側の((xPCtr>>4)<<4,(yPCtr>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定され、(xPCol,yPCol)は、colPicの一番左上のルーマサンプルに対するcolPuの一番左上のルーマサンプルに等しく設定される。
−numTestBlock++
−次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
−colPuはイントラ予測モードでコーディングされる。
−colPuは「利用不可能」とマークされる。
−pic_temporal_mvp_enable_flagは0に等しい。
−そうではない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
−PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
−そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
−PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
−そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割当てが行われる。
−それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
−そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
−次の条件の1つが真である場合、変数availableFlagLXColは0に等しく設定される。
−RefPicListX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は0に等しい。
−RefPicListX[refIdxLX]は短期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しい。
−そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである場合、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい場合、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、
mvLXCol = mvCol (8-143)
−そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
tx = ( 16384 + ( Abs( td ) >>1 ) ) / td (8-144)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-145)
mvLXCol = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvCol ) *
( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ) ) (8-146)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCnt( colPic ) −
RefPicOrderCnt( colPic, refIdxCol, listCol ) )
(8-147)
tb = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX [ refIdxLX ] ) )
(8-148)
[0095]代替的な例では、長期動きベクトルは、参照ピクチャのPOC値が同じではない場合、別の長期動きベクトルからは決して予測されない。ビデオエンコーダ20およびビデオデコーダ30は、動きベクトル予測子の候補を導出するための次のプロセスに従って構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。
[0096]Xが0または1である変数isScaledFlagLXは0に等しく設定され得る。動きベクトルmvLXAおよび利用可能性フラグavailableFlagLXAは次の順序付けられたステップにおいて導出され、省略部分は、HEVCの現在のドラフトと同じテキストを表し、下線は、HEVCの現在のドラフトに対する変更を表す。
1. ・・・
2. ・・・
3. ・・・
4. ・・・
5. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが、availableFlagLXAが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、RefPicListX[refIdxLX]とRefPicListX[refIdxLX[xA k ][yA k ]]が両方とも異なるPOC値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、RefPicListX[refIdxLX]とRefPicListY[refIdxLY[xA k ][yA k ]]が両方とも異なるPOC値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定される。
−availableFlagLXAが1に等しく、RefPicListA[refIdxA]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXAは以下で規定されるように導出される。
Tx = ( 16384 + ( Abs( td ) >> 1 )) / td (8-126)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-127)
mvLXA = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 )) (8-128)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListA[ refIdxA ] ))
(8-129)
tb = Clip3(−128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX[ refIdxLX ] ))
(8-130)
[0097]ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXBと利用可能性フラグavailableFlagLXBとを次の順序付けられたステップを使用して導出することができ、省略部分はやはり、HEVC WD7と同じテキストを表す。
1. ・・・
2. ・・・
3. ・・・
4. ・・・
5. ・・・
6. B0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しく設定され、isScaledFlagLXが0に等しい場合、次のことが、availableFlagLXBが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、RefPicListX[refIdxLX]とRefPicListX[refIdxLX[xB k ][yB k ]]が両方とも異なるPOC値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではない場合、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、RefPicListX[refIdxLX]とRefPicListY[refIdxLY[xB k ][yB k ]]が両方とも異なるPOC値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
−availableFlagLXBが1に等しく、PicOrderCnt(RefPicListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくなく、RefPicListB[refIdxB]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXBは以下で規定されるように導出される。
tx = ( 16384 + ( Abs( td ) >> 1 )) / td (8-134)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-135)
mvLXB =Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 )) (8-136)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListB[ refIdxB ] ))
(8-137)
tb = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX[ refIdxLX ] ) )
(8-138)
[0098]ビデオエンコーダ20およびビデオデコーダ30は、次のプロセスに従って時間的ルーマ動きベクトル予測子を導出するように構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。変数mvLXColおよびavailableFlagLXColは、次のように導出され得る。
−次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
−colPuはイントラ予測モードでコーディングされる。
−colPuは「利用不可能」とマークされる。
−pic_temporal_mvp_enable_flagは0に等しい。
−そうではない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
−PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
−そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
−PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
−そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割当てが行われる。
−それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
−そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
次の条件の1つが真である場合、変数availableFlagLXColは0に等しく設定される。
RefPicListX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は0に等しい。
RefPicListX[refIdxLX]は短期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しい。
RefPicListX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しく、RefPicOrderCnt(colPic,refIdxCol,listCol)はPicOrderCnt(RefPicListX[refIdxLX])に等しくない。
そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである場合、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい場合、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、
mvLXCol = mvCol (8-143)
−そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
tx = (16384 + ( Abs( td ) >>1 ) ) / td (8-144)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-145)
mvLXCol = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvCol ) *
( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ) ) (8-146)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCnt( colPic ) − RefPicOrderCnt( colPic,
refIdxCol, listCol ) ) (8-147)
tb = Clip3( −128, 127, PicOrderCntVal − PicOrderCnt( RefPicListX [ refIdxLX ] ) )
(8-148)
[0099]さらに別の例として、ビュー間参照ピクチャは、「参照に使用されない」としてマークされ得る。簡単にするために、そのようなピクチャは、HEVCベース仕様では非参照ピクチャと呼ばれることがあり、「長期参照に使用される」と「短期参照に使用される」のいずれかとしてマークされたピクチャは、HEVCベース仕様では参照ピクチャと呼ばれ得る。「参照ピクチャ」および「非参照ピクチャ」という用語は、「「参照に使用される」とマークされたピクチャ」および「「参照に使用されない」とマークされたピクチャ」によって置き換えられ得る。
[0100]関数UnusedRefPic(picX,refIdx,LX)は、次のように定義され得る。picXが現在のピクチャであった時点で、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxをもつ参照ピクチャが「参照に使用されない」とマークされた場合、UnusedRefPic(picX,refIdx,LX)は1を返し、それ以外の場合、UnusedRefPic(pic,refIdx,LX)は0を返す。
[0101]ビデオエンコーダ20およびビデオデコーダ30は、次のように動きベクトル予測子の候補に対する導出プロセスを実行するように構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表し、省略部分はHEVC WD7と同じテキストを表す。
Xが0または1である変数isScaledFlagLXは、0に等しく設定され得る。
動きベクトルmvLXAおよび利用可能性フラグavailableFlagLXAは、次の順序付けられたステップで導出され得る。
1. ・・・
2. ・・・
3. ・・・
4. ・・・
5. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが、availableFlagLXAが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、RefPicListX[refIdxLX]とRefPicListX[refIdxLX[xA k ][yA k ]]が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、RefPicListX[refIdxLX]とRefPicListY[refIdxLY[xA k ][yA k ]]が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定される。
− availableFlagLXAが1に等しく、RefPicListA[refIdxA]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXAは以下で規定されるように導出される。
Tx = ( 16384 + ( Abs( td ) >> 1 ) ) / td (8-126)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-127)
mvLXA = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ) ) (8-128)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListA[ refIdxA ] ) ) (8-129)
tb = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX[ refIdxLX ] ) ) (8-130)
[0102]ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXBと利用可能性フラグavailableFlagLXBとを次の順序付けられたステップを使用して導出するように構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. ・・・
2. ・・・
3. ・・・
4. ・・・
5. ・・・
6. B0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、isScaledFlagLXが0に等しく、availableFlagLXBが0に等しく設定される場合、次のことが、availableFlagLXBが1に等しくなるまで繰り返し適用する。
− ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、RefPicListX[refIdxLX]とRefPicListX[refIdxLX[xB k ][yB k ]]が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
− そうではない場合、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、RefPicListX[refIdxLX]とRefPicListY[refIdxLY[xB k ][yB k ]]が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
− availableFlagLXBが1に等しく、PicOrderCnt(RefPicListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくなく、RefPicListB[refIdxB]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXBは以下で規定されるように導出される。
tx =( 16384 + ( Abs( td ) >> 1 ) ) / td (8-134)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-135)
mvLXB =Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ) ) (8-136)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListB[ refIdxB ] ) ) (8-137)
tb = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX[ refIdxLX ] ) ) (8-138)
[0103]ビデオエンコーダ20およびビデオデコーダ30は、次のように時間的ルーマ動きベクトル予測子を導出するように構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。
変数mvLXColおよびavailableFlagLXColは、次のように導出され得る。
− 次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
− colPuはイントラ予測モードでコーディングされる。
− colPuは「利用不可能」とマークされる。
− pic_temporal_mvp_enable_flagは0に等しい。
− そうではない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
− PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
− そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
− PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
− そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割当てが行われる。
− それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
− そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
次の条件の1つが真である場合、変数availableFlagLXColは0に等しく設定される。
RefPicListX[refIdxLX]は非参照ピクチャであり、UnusedRefPic(colPic,refIdxCol,listCol)は0に等しい。
RefPicListX[refIdxLX]は参照ピクチャであり、UnusedRefPic(colPic,refIdxCol,listCol)は1に等しい。
そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである場合、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい場合、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、
mvLXCol = mvCol (8-143)
である。
− そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
Tx = ( 16384 + ( Abs( td ) >>1 ) ) / td (8-144)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )
(8-145)
mvLXCol = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvCol ) *
( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 )) (8-146)
ここで、tdおよびtbは、次のように導出される。
td = Clip3( −128, 127, PicOrderCnt( colPic )
− RefPicOrderCnt( colPic, refIdxCol, listCol )) (8-147)
tb = Clip3( −128, 127, PicOrderCntVal
− PicOrderCnt( RefPicListX [refIdxLX])) (8-148)
[0104]「第5の例」として上で呼ばれる例に関して、ビデオエンコーダ20およびビデオデコーダ30は、次の技法のいずれかまたはすべてに従って実行するように構成され得る。この例では、異なる長期参照ピクチャを指す動きベクトルの間の予測はディセーブルにされてよく、異なるビュー間参照ピクチャを指す動きベクトルの間の予測はディセーブルにされてよく、ビュー間参照ピクチャを指す動きベクトルと長期参照ピクチャを指す動きベクトルとの間の予測はディセーブルにされてよい。
[0105]この例では、関数AddPicId(pic)は、ピクチャpicが属するビューまたはレイヤのビュー順序インデックスまたはレイヤIDを返す。したがって、ベースビューまたはベースレイヤに属する任意のピクチャ「pic」に対して、AddPicId(pic)は0を返す。HEVCベース仕様では、次のことが当てはまり得る。すなわち、関数AddPicId(pic)は、AddPicId(pic)が0(またはreserved_one_5ビット引く1)を返すというように定義され得る。この例では、AddPicId(pic)が0に等しくない場合、ピクチャpicは、時間的参照ピクチャではない(すなわち、短期参照ピクチャでも長期参照ピクチャでもない)。AddPicId(picX,refIdx,LX)はAddPicId(pic)を返すことができ、picは、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャである。
[0106]ビデオエンコーダ20およびビデオデコーダ30は、動きベクトル予測子の候補の導出プロセスを実行するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP、yP)と、ルーマ、nPSW、およびnPSHに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスrefIdxLX(Xは0または1である)とを含み得る。このプロセスの出力は、隣接予測ユニットの動きベクトルmvLXNと、隣接予測ユニットの利用可能性フラグavailableFlagLXNとを含み得る(ここで、NはAまたはBにより置き換えられ得る)。
[0107]Xが0または1である変数isScaledFlagLXは、0に等しく設定され得る。ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXAと利用可能性フラグavailableFlagLXAとを次の順序付けられたステップを使用して導出するように構成されてよく、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 2つのサンプル位置のセットを(xAk,yAk)とし、k=0,1であり、xAk=xP-1、yA0=yP+nPSH、およびyA1=yA0−MinPuSizeによりサンプル位置を規定する。サンプル位置のセット(xAk,yAk)は、左側の区分境界とその延長線のすぐ左側のサンプル位置を表す。
2. 利用可能性フラグavailableFlagLXAが最初に0に等しく設定されるようにして、mvLXAの両方の成分が0に等しく設定される。
3. 次の条件の1つまたは複数が真である場合、変数isScaledFlagLXが1に等しく設定される。
− ルーマ位置(xA0,yA0)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではない。
− ルーマ位置(xA1,yA1)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではない。
4. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが適用する。
− ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、参照インデックスrefIdxLX[xAk][yAk]が現在の予測ユニットの参照インデックスrefIdxLXに等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
− そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListY[refIdxLY[xA k ][yA k ]])に等しく、PicOrderCnt(RefPicListY[refIdxLY[xAk][yAk]])がPicOrderCnt(RefPicListX[refIdxLX])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定され、mvLXAがmvLXAに等しく設定される。
availableFlagLXAが1に等しい場合、次の1つまたは複数が真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListA[refIdxA]のうちの1つのみが長期参照ピクチャである。
RefPicListX[refIdxLX]とListA[refIdxA]の両方が長期参照ピクチャであり、PicOrderCnt(ListA[refIdxA])がPicOrderCnt(RefPicListX[refIdxLX])に等しくない。
5. availableFlagLXAが0に等しいとき、yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが適用する。
− ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、AddPicId(RefPicListLX[refIdxLX])がAddPicId(RefPicListLX[refIdxLX[xA k ][yA k ]])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
− そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、AddPicId(RefPicListLX[refIdxLX])がAddPicId(RefPicListLY[refIdxLY[xA k ][yA k ]])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定される。
availableFlagLXAが1に等しい場合、次の1つまたは複数が真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListA[refIdxA]のうちの1つのみが長期参照ピクチャである。
RefPicListX[refIdxLX]とListA[refIdxA]の両方が長期参照ピクチャであり、PicOrderCnt(ListA[refIdxA])がPicOrderCnt(RefPicListX[refIdxLX])に等しくない。
− availableFlagLXAが1に等しく、RefPicListA[refIdxA]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXAは以下で規定されるように導出される。
tx = ( 16384 + ( Abs( td ) >> 1 ) ) / td (8-126)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-127)
mvLXA= Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 )) (8-128)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListA[ refIdxA ] ) ) (8-129)
tb = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX [ refIdxLX ] ) ) (8-130)
[0108]ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXBと利用可能性フラグavailableFlagLXBとを次の順序付けられたステップを使用して導出するように構成され得、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 3つのサンプル位置のセットを(xBk,yBk)とし、k=0,1,2であり、xB0=xP+nPSW、xB1=xB0-MinPuSize、xB2=xP-MinPuSize、およびyBk=yP-1によりサンプル位置を規定する。サンプル位置のセット(xBk,yBk)は、上側の区分境界とその延長線のすぐ上側のサンプル位置を表す。[Ed.(BB):SPS中でMinPuSizeを定義するが、導出はAMPフラグの使用に依存すべきである]
2. yP−1が((yC>>Log2CtbSize)<<Log2CtbSize)より小さい場合、次のことが適用する。
xB0 = (xB0>>3)<<3) + ((xB0>>3)&1)*7 (8-131)
xB1 = (xB1>>3)<<3) + ((xB1>>3)&1)*7 (8-132)
xB2 = (xB2>>3)<<3) + ((xB2>>3)&1)*7 (8-133)
3. 利用可能性フラグavailableFlagLXBが最初に0に等しく設定されるようにして、mvLXBの両方の成分が0に等しく設定される。
4. xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しい場合、次のことが適用する。
− ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、参照インデックスrefIdxLX[xBk][yBk]が現在の予測ユニットの参照インデックスrefIdxLXに等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
− そうではなく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListLY[refIdxY[xB k ][yB k ]])に等しく、PicOrderCnt(RefPicListY[refIdxLY[xBk][yBk]])がPicOrderCnt(RefPicListX[refIdxLX])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
availableFlagLXAが1に等しい場合、次の1つまたは複数が真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListB[refIdxB]のうちの1つのみが長期参照ピクチャである。
AddPicId(RefPicListX[refIdxLX])がAddPicId(ListB[refIdxB])に等しくない。
RefPicListX[refIdxLX]とListB[refIdxB]の両方が長期参照ピクチャであり、PicOrderCnt(ListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくない。
5. isScaledFlagLXが0に等しく、availableFlagLXBが1に等しい場合、mvLXAはmvLXBに等しく設定され、refIdxAはrefIdxBに等しく設定され、availableFlagLXAは1に等しく設定される。
6. isScaledFlagLXが0に等しく、availableFlagLXBが0に等しく設定され、xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しい場合、次のことが適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListX[refIdxLX[xB k ][yB k ]])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではなく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListY[refIdxLY[xB k ][yB k ]])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
availableFlagLXAが1に等しい場合、次の1つまたは複数が真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListB[refIdxB]のうちの1つのみが長期参照ピクチャである。
RefPicListX[refIdxLX]とListB[refIdxB]の両方が長期参照ピクチャであり、PicOrderCnt(ListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくない。
−availableFlagLXBが1に等しく、PicOrderCnt(RefPicListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくなく、RefPicListB[refIdxB]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXBは以下で規定されるように導出される。
tx =( 16384 + ( Abs( td ) >> 1 ) ) / td (8-134)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-135)
mvLXB =Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
((Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 )) (8-136)
ここで、tdおよびtbは、次のように導出され得る。
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListB[refIdxB])) (8-137)
tb =Clip3(−128,127,PicOrderCntVal −
PicOrderCnt(RefPicListX[refIdxLX])) (8-138)
[0109]ビデオエンコーダ20およびビデオデコーダ30は、次のように時間的ルーマ動きベクトル予測子を導出するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP、yP)と、ルーマ、nPSW、およびnPSHに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスrefIdxLX(Xは0または1である)とを含み得る。このプロセスの出力は、動きベクトル予測mvLXColと利用可能性フラグavailableFlagLXColとを含み得る。
[0110]ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャのピクチャ順序カウントPicOrderCntValを返し得る関数RefPicOrderCnt(picX,refIdx,LX)は、次のように規定され得る。
RefPicOrderCnt( picX, refIdx, LX ) =
PicOrderCnt(ピクチャpicX のRefPicListX[ refIdx ]) (8 141)
[0111]slice_type、collocated_from_l0_flag、およびcollocated_ref_idxの値に応じて、ビデオエンコーダ20およびビデオデコーダ30は、コロケート区分を含むピクチャを規定する変数colPicを、次のように導出し得る。
−slice_typeがBに等しく、collocated_from_l0_flagが0に等しい場合、変数colPicは、RefPicList1[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
−そうではない場合(slice_typeがBに等しく、かつcollocated_from_l0_flagが1に等しい、またはslice_typeがPに等しい)、変数colPicは、RefPicList0[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
[0112]ビデオエンコーダ20およびビデオデコーダ30は、変数colPuとその位置(xPCol,yPCol)とを次の順序付けられたステップを使用して導出することができ、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 変数colPuは次のように導出され得る。
yPRb = yP + nPSH (8-139)
−(yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
yPRb = yP + nPSH (8-139)
によって定義され、変数colPuはcolPicの内の((xPRb>>4)<<4,(yPRb>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定される。
−そうではない場合((yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)と等しくない)、colPuは「利用不可能である」とマークされる。
2. colPuがイントラ予測モードでコーディングされる場合、またはcolPuが「利用不可能」とマークされる場合、次のことが適用する。
−現在の予測ユニットの中心のルーマ位置は、
xPCtr = ( xP + ( nPSW >> 1 ) (8-141)
yPCtr = ( yP + ( nPSH >> 1 ) (8-142)
と定義される。
−変数colPuは、colPic内の((xPCtr>>4)<<4,(yPCtr>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定される。
3. (xPCol,yPCol)は、colPicの一番左上のルーマサンプルに対するcolPuの一番左上のルーマサンプルに等しく設定される。
関数LongTermRefPic(picX,refIdx,LX)は、次のように定義される。picXが現在のピクチャであった時点で、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、LongTermRefPic(picX,refIdx,LX)は1を返し、それ以外の場合、LongTermRefPic(pic,refIdx,LX)は0を返す。
関数AddPicId(picX,refIdx,LX)はAddPicId(pic)を返し、picは、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャである。
変数mvLXColおよびavailableFlagLXColは、次のように導出される。
−次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
−colPuはイントラ予測モードでコーディングされる。
−colPuは「利用不可能」とマークされる。
−pic_temporal_mvp_enable_flagは0に等しい。
−そうではない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
−PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
−そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
−PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
−そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割り当てが行われる。
−それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
−そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
次の条件の1つが真である場合、変数availableFlagLXColは0に等しく設定される。
AddPicId(RefPicListX[refIdxLX])がAddPicId(colPic,refIdxCol,listCol)に等しくない。
RefPicListX[refIdxLX]は短期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しい。
RefPicListX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は0に等しい。
RefPicListLX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しく、RefPicOrderCnt(colPic,refIdxCol,listCol)はPicOrderCnt(RefPicListLX[refIdxLX])に等しくない。
そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、
mvLXCol = mvCol (8-143)
−そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
tx=(16384+(Abs(td)>>1))/td (8-144)

DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 ) (8-145)
mvLXCol = Clip3(−8192, 8191.75, Sign( DistScaleFactor * mvCol ) *
((Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 )) (8-146)
ここで、tdおよびtbは、次のように導出され得る。
td= Clip3(−128, 127, PicOrderCnt(colPic)
− RefPicOrderCnt( colPic,refIdxCol,listCol)) (8-147)
Tb = Clip3( −128, 127, PicOrderCntVal − PicOrderCnt(RefPicListX
[refIdxLX] )) (8-148)
[0113]ビデオエンコーダ20およびビデオデコーダ30は、組み合わされた双方向予測マージ候補についての次の導出プロセスを実行するように構成され得る。このプロセスの入力は、マージ候補リストmergeCandListと、mergeCandListの中にある各々の候補Nの参照インデックスrefIdxL0NおよびrefIdxL1Nと、mergeCandListの中にある各々の候補Nの予測リスト利用フラグpredFlagL0NおよびpredFlagL1Nと、mergeCandListの中にある各々の候補Nの動きベクトルmvL0NおよびmvL1Nと、mergeCandList内の要素の数numMergeCandと、空間的および時間的なマージ候補導出プロセスの後の、mergeCandList内の要素の数numOrigMergeCandとを含み得る。このプロセスの出力は、マージ候補リストmergeCandListと、mergeCandList内の要素の数numMergeCandと、このプロセスの呼出しの間にmergeCandListに追加されている各々の新たな候補combCandkの参照インデックスrefIdxL0combCandkおよびrefIdxL1combCandkと、このプロセスの呼出しの間にmergeCandListに追加されている各々の新たな候補combCandkの予測リスト利用フラグpredFlagL0combCandkおよびpredFlagL1combCandkと、このプロセスの呼出しの間にmergeCandListに追加されている各々の新たな候補combCandkの動きベクトルmvL0combCandkおよびmvL1combCandkとを含み得る。
[0114]numOrigMergeCandが1よりも大きくMaxNumMergeCandより小さい場合、変数numInputMergeCandはnumMergeCandに設定され、変数combIdxおよびcombCntは0に設定され、変数combStopはFALSEに設定され、combStopがTRUEに等しくなるまで次のステップが繰り返され得る(ここで、省略部分はHEVC WD7で与えられるものと同じステップを表し、下線が引かれたテキストはHEVC WD7に対する変更を表す)。
1. 変数l0CandIdxおよびl1CandIdxは、表8−8において規定されるようにcombIdxを使用して導出される。
2. 次の割当ては、マージ候補リストmergeCandList中の、位置l0CandIdxにおける候補であるl0Candおよび位置l1CandIdxにおける候補であるl1Candについて行われる(l0Cand=mergeCandList[l0CandIdx]、l1Cand=mergeCandList[l1CandIdx])。
3. 次の条件のすべてが真である場合、
- predFlagL0l0Cand == 1
- predFlagL1l1Cand == 1
- AddPicId(RefPicListL0[refIdxL0l0Cand])!=
AddPicId(RefPicListL1[refIdxL1l1Cand])||PicOrderCnt(RefPicList0[refIdxL0l0Cand])
!= icOrderCnt(RefPicList1 [refIdxL1l1Cand] ) || mvL0l0Cand != mvL1l1Cand
次のことが適用する。
-・・・
4. ・・・
5. ・・・
[0115]ある代替形態として、2つの長期参照ピクチャの間の予測は、スケーリングを伴わずにイネーブルされ、2つのビュー間参照ピクチャの間の予測は、スケーリングを伴わずにイネーブルされ得る。ビデオエンコーダ20およびビデオデコーダ30は、次のように動きベクトル予測子の候補に対する導出プロセスを実行するように構成され得、下線が引かれたテキストはHEVC WD7に対する変更を表し、省略部分はHEVC WD7と同じテキストを表す。
Xが0または1である変数isScaledFlagLXは、0に等しく設定され得る。
動きベクトルmvLXAおよび利用可能性フラグavailableFlagLXAは、次の順序付けられたステップで導出され得る。
1. ・・・
2. ・・・
3. ・・・
4. ・・・
5. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが、availableFlagLXAが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、RefPicType(RefPicListX[refIdxLX])がRefPicType(RefPicListX[refIdxLX[xA k ][yA k ]])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、RefPicType(RefPicListX[refIdxLX])がRefPicType(RefPicListY[refIdxLY[xA k ][yA k ]])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定される。
−availableFlagLXAが1に等しく、RefPicListA[refIdxA]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXAは以下で規定されるように導出される。
tx=(16384+(Abs(td)>>1))/td (8-126)
DistScaleFactor=Clip3(−4096,4095,(tb * tx + 32 ) >> 6 ) (8-127)
mvLXA=Clip3(−8192,8191.75, Sign( DistScaleFactor * mvLXA ) *
((Abs( DistScaleFactor * mvLXA)+127)>>8)) (8-128)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128, 127, PicOrderCntVal −
PicOrderCnt(RefPicListA[refIdxA])) (8-129)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX])) (8-130)
[0116]ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXBと利用可能性フラグavailableFlagLXBとを次の順序付けられたステップを使用して導出し得、下線が引かれたテキストはHEVC WD7に対する変更を表し、省略部分はHEVC WD7と同じテキストを表す。
1. ・・・
2. ・・・
3. ・・・
4. ・・・
5. ・・・
6. xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しく設定され、isScaledFlagLXが0に等しい場合、次のことが、availableFlagLXBが1に等しくなるまで繰り返し適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、RefPicType(RefPicListX[refIdxLX])がRefPicType(RefPicListX[refIdxLX[xB k ][yB k ]])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではなく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、RefPicType(RefPicListX[refIdxLX])がRefPicType(RefPicListY[refIdxLY[xB k ][yB k ]])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
−availableFlagLXBが1に等しく、PicOrderCnt(RefPicListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくなく、RefPicListB[refIdxB]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXBは以下で規定されるように導出される。
tx = (16384+(Abs(td)>>1))/td (8-134)
DistScaleFactor = Clip3(−4096, 4095,(tb * tx + 32 )>>6) (8-135)
mvLXB=Clip3(−8192, 8191.75, Sign(DistScaleFactor*mvLXA)*
((Abs(DistScaleFactor * mvLXA ) + 127 ) >> 8)) (8-136)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListB[refIdxB])) (8-137)
tb=Clip3(−128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX[refIdxLX])) (8-138)
[0117]ビデオエンコーダ20およびビデオデコーダ30は、次のように、時間的ルーマ動きベクトル予測の導出プロセスを実行するように構成され得る。
変数mvLXColおよびavailableFlagLXColは、次のように導出され得る。
−次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
−colPuはイントラ予測モードでコーディングされる。
−colPuは「利用不可能」とマークされる。
−pic_temporal_mvp_enable_flagは0に等しい。
−それ以外の場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
−PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
−そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
−PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
−そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割当てが行われる。
−それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
−そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
RefPicType(RefPicListX[refIdxLX])がRefPicType(colPic,refIdxCol,listCol)に等しくない場合、変数availableFlagLXColは0に等しく設定される。
そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、mvLXCol=mvCol (8-143)
−そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
tx=(16384+(Abs(td)>>1))/td (8-144)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6) (8-145)
mvLXCol=Clip3(−8192,8191.75,Sign(DistScaleFactor*mvCol)*
((Abs(DistScaleFactor*mvCol)+127)>>8)) (8-146)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128,127,PicOrderCnt(colPic)−
RefPicOrderCnt( colPic, refIdxCol, listCol)) (8-147)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt( RefPicListX [refIdxLX])) (8-148)
この例では、HEVC WD7のセクション8.5.2.1.3は同じままであり得る。
[0118]ある代替的な例では、異なる長期参照ピクチャを指す動きベクトルの間の予測はディセーブルにされ、ビュー間参照ピクチャを指す動きベクトルと長期参照ピクチャを指す動きベクトルとの間の予測はディセーブルにされ、異なるビュー間参照ピクチャを指す動きベクトルの間の予測はイネーブルにされ得る。この例では、以下で説明されるように、ビデオエンコーダ20およびビデオデコーダ30は、動きベクトル予測子の候補の導出プロセスを実行するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP、yP)と、ルーマ、nPSW、およびnPSHに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックス(Xは0または1である)とを含み得る。このプロセスの出力は、隣接予測ユニットの動きベクトルmvLXNと、隣接予測ユニットの利用可能性フラグavailableFlagLXNとを含み得る(NはAまたはBにより置き換えられ得る)。
[0119]Xが0または1である変数isScaledFlagLXは、0に等しく設定され得る。ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXAと利用可能性フラグavailableFlagLXAとを次の順序付けられたステップを使用して導出することができ、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 2つのサンプル位置のセットを(xAk,yAk)とし、k=0,1であり、xAk=xP-1、yA0=yP+nPSH、およびyA1=yA0−MinPuSizeによりサンプル位置を規定する。サンプル位置のセット(xAk,yAk)は、左側の区分境界とその延長線のすぐ左側のサンプル位置を表す。
2. 利用可能性フラグavailableFlagLXAが最初に0に等しく設定されるようにして、mvLXAの両方の成分が0に等しく設定される。
3. 次の条件の1つまたは複数が真である場合、変数isScaledFlagLXが1に等しく設定される。
−ルーマ位置(xA0,yA0)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではない。
−ルーマ位置(xA1,yA1)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではない。
4. yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、参照インデックスrefIdxLX[xAk][yAk]が現在の予測ユニットの参照インデックスrefIdxLXに等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListY[refIdxLY[xA k ][yA k ]])に等しく、PicOrderCnt(RefPicListY[refIdxLY[xAk][yAk]])がPicOrderCnt(RefPicListX[refIdxLX])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定され、mvLXAがmvLXAに等しく設定される。
availableFlagLXAが1に等しい場合、次のことが真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListA[refIdxA]のうちの1つのみが長期参照ピクチャである。
5. availableFlagLXAが0に等しいとき、yA1=yA0−MinPuSizeである、(xA0,yA0)から(xA1,yA1)までの(xAk,yAk)に対して、availableFlagLXAが0に等しい場合、次のことが適用する。
−ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xAk][yAk]が1に等しく、AddPicId(RefPicListLX[refIdxLX])がAddPicId(RefPicListLX[refIdxLX[xA k ][yA k ]])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLX[xAk][yAk]に等しく設定され、refIdxAがrefIdxLX[xAk][yAk]に等しく設定され、ListAがListXに等しく設定される。
−そうではなく、ルーマ位置(xAk,yAk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xAk][yAk](Y=!Xである)が1に等しく、AddPicId(RefPicListLX[refIdxLX])がAddPicId(RefPicListLY[refIdxLY[xA k ][yA k ]])に等しい場合、availableFlagLXAが1に等しく設定され、動きベクトルmvLXAが動きベクトルmvLY[xAk][yAk]に等しく設定され、refIdxAがrefIdxLY[xAk][yAk]に等しく設定され、ListAがListYに等しく設定される。
availableFlagLXAが1に等しい場合、次のことが真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListA[refIdxA]のうちの1つのみが長期参照ピクチャである。
−availableFlagLXAが1に等しく、RefPicListA[refIdxA]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXAは以下で規定されるように導出される。
tx=(16384+(Abs(td)>>1))/td (8-126)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6) (8-127)
mvLXA=Clip3(−8192,8191.75,Sign(DistScaleFactor*mvLXA)*
((Abs(DistScaleFactor*mvLXA)+127)>>8)) (8-128)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListA[refIdxA])) (8-129)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt( RefPicListX [refIdxLX])) (8-130)
[0120]ビデオエンコーダ20およびビデオデコーダ30は、動きベクトルmvLXBと利用可能性フラグavailableFlagLXBとを次の順序付けられたステップを使用して導出するように構成され得、下線が引かれたテキストはHEVC WD7に対する変更を表す。
1. 3つのサンプル位置のセットを(xBk,yBk)とし、k=0,1,2であり、xB0=xP+nPSW、xB1=xB0-MinPuSize、xB2=xP-MinPuSize、およびyBk=yP-1によりサンプル位置を規定する。サンプル位置のセット(xBk,yBk)は、上側の区分境界とその延長線のすぐ上側のサンプル位置を表す。[Ed.(BB):SPS中でMinPuSizeを定義するが、導出はAMPフラグの使用に依存すべきである]
2. yP−1が((yC>>Log2CtbSize)<<Log2CtbSize)より小さい場合、次のことが適用する。
xB0 = (xB0>>3)<<3)+((xB0>>3)&1)*7 (8-131)
xB1 = (xB1>>3)<<3)+((xB1>>3)&1)*7 (8-132)
xB2 = (xB2>>3)<<3)+((xB2>>3)&1)*7 (8-133)
3. 利用可能性フラグavailableFlagLXBが最初に0に等しく設定されるようにして、mvLXBの両方の成分が0に等しく設定される。
4. xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しい場合、次のことが適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、参照インデックスrefIdxLX[xBk][yBk]が現在の予測ユニットの参照インデックスrefIdxLXに等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではなく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListLY[refIdxY[xB k ][yB k ]])に等しく、PicOrderCnt(RefPicListY[refIdxLY[xBk][yBk]])がPicOrderCnt(RefPicListX[refIdxLX])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
availableFlagLXAが1に等しい場合、次のことが真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListB[refIdxB]のうちの1つのみが長期参照ピクチャである。
5. isScaledFlagLXが0に等しく、availableFlagLXBが1に等しい場合、mvLXAはmvLXBに等しく設定され、refIdxAはrefIdxBに等しく設定され、availableFlagLXAは1に等しく設定される。
6. isScaledFlagLXが0に等しく、availableFlagLXBが0に等しく設定された場合、xB0=xP+nPSW、xB1=xB0-MinPuSize、およびxB2=xP-MinPuSizeである、(xB0,yB0)から(xB2,yB2)までの(xBk,yBk)に対して、availableFlagLXBが0に等しく設定されるとき、次のことが適用する。
−ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLX[xBk][yBk]が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListX[refIdxLX[xB k ][yB k ]])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLX[xBk][yBk]に等しく設定され、refIdxBがrefIdxLX[xBk][yBk]に等しく設定され、ListBがListXに等しく設定される。
−そうではなく、ルーマ位置(xBk,yBk)をカバーする予測ユニットが利用可能であり[Ed.(BB):MinCbAddrZS[][]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える]、PredModeがMODE_INTRAではなく、predFlagLY[xBk][yBk](Y=!Xである)が1に等しく、AddPicId(RefPicListX[refIdxLX])がAddPicId(RefPicListY[refIdxLY[xB k ][yB k ]])に等しい場合、availableFlagLXBが1に等しく設定され、動きベクトルmvLXBが動きベクトルmvLY[xBk][yBk]に等しく設定され、refIdxBがrefIdxLY[xBk][yBk]に等しく設定され、ListBがListYに等しく設定される。
availableFlagLXAが1に等しい場合、次のことが真であれば、availableFlagLXAは0に設定される。
RefPicListX[refIdxLX]とListB[refIdxB]のうちの1つのみが長期参照ピクチャである。
−availableFlagLXBが1に等しく、PicOrderCnt(RefPicListB[refIdxB])がPicOrderCnt(RefPicListX[refIdxLX])に等しくなく、RefPicListB[refIdxB]とRefPicListX[refIdxLX]の両方が短期参照ピクチャである場合、mvLXBは以下で規定されるように導出される。
tx=(16384+(Abs(td)>>1))/td (8-134)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6) (8-135)
mvLXB=Clip3(−8192,8191.75,Sign(DistScaleFactor*mvLXA)*
((Abs(DistScaleFactor*mvLXA)+127)>>8)) (8-136)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListB[refIdxB])) (8-137)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX])) (8-138)
[0121]ビデオエンコーダ20およびビデオデコーダ30は、以下で論じられるように、時間的ルーマ動きベクトル予測の導出プロセスを実施するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置(xP、yP)と、ルーマ、nPSW、およびnPSHに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスrefIdxLX(Xは0または1である)とを含み得る。このプロセスの出力は、動きベクトル予測mvLXColと利用可能性フラグavailableFlagLXColとを含み得る。
[0122]一例では、関数RefPicOrderCnt(picX,refIdx,LX)は、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャのピクチャ順序カウントPicOrderCntValを返し、次のように規定され得る。
RefPicOrderCnt( picX, refIdx, LX ) =
PicOrderCnt(ピクチャpicXのRefPicListX[ refIdx ]) (8-141)
[0123]slice_type、collocated_from_l0_flag、およびcollocated_ref_idxの値に応じて、ビデオエンコーダ20およびビデオデコーダ30は、コロケート区分を含むピクチャを規定する変数colPicを、次のように導出し得る。
−slice_typeがBに等しく、collocated_from_l0_flagが0に等しい場合、変数colPicは、RefPicList1[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
−そうではない場合(slice_typeがBに等しくcollocated_from_l0_flagが1に等しい、またはslice_typeがPに等しい)、変数colPicは、RefPicList0[collocated_ref_idx]によって規定されるようなコロケート区分を含むピクチャを規定する。
[0124]ビデオエンコーダ20およびビデオデコーダ30は、次の順序付けられたステップを使用して、変数colPuとその位置(xPCol,yPCol)とを導出することができる。
1. 変数colPuは次のように導出される。
yPRb=yP+nPSH (8-139)
−(yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
xPRb=xP+nPSW (8-140)
によって定義され、変数colPuはcolPic内の、((xPRb>>4)<<4,(yPRb>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定される。
−そうではない場合((yP>>Log2CtbSize)が(yPRb>>Log2CtbSize)と等しくない)、colPuは「利用不可能である」とマークされる。
2. colPuがイントラ予測モードでコーディングされる場合、またはcolPuが「利用不可能」とマークされる場合、次のことが適用する。
−現在の予測ユニットの中心のルーマ位置は、
xPCtr=(xP+(nPSW>>1) (8-141)
yPCtr=(yP+(nPSH>>1) (8-142)
によって定義される。
−変数colPuは、colPic内の、((xPCtr>>4)<<4,(yPCtr>>4)<<4)によって与えられる修正された位置をカバーする予測ユニットとして設定される。
3. (xPCol,yPCol)は、colPicの一番左上のルーマサンプルに対するcolPuの一番左上のルーマサンプルに等しく設定される。
[0125]関数LongTermRefPic(picX,refIdx,LX)は次のように定義され得る。picXが現在のピクチャであった時点で、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、LongTermRefPic(picX,refIdx,LX)は1を返し、それ以外の場合、LongTermRefPic(picX,refIdx,LX)は0を返す。
[0126]ビデオエンコーダ20およびビデオデコーダ30は、HEVCの「AddPicId()」関数の修正されたバージョンを実装し得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、この関数がAddPicId(pic)を返すようにAddPicId(picX,refIdx,LX)を実装することができ、「pic」は、ピクチャpicXの参照ピクチャリストLXからのインデックスrefIdxを伴う参照ピクチャである。
[0127]ビデオエンコーダ20およびビデオデコーダ30は、次のように変数mvLXColとavailableFlagLXColとを導出することができ、下線が引かれたテキストはHEVC WD7に対する変更を表す。
−次の条件の1つまたは複数が真である場合、mvLXColの両方の成分は0に等しく設定され、availableFlagLXColは0に等しく設定される。
−colPuはイントラ予測モードでコーディングされる。
−colPuは「利用不可能」とマークされる。
−pic_temporal_mvp_enable_flagは0に等しい。
−そうではない場合、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは次のように導出される。
−PredFlagL0[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL1[xPCol][yPCol]、RefIdxL1[xPCol][yPCol]、およびL1に等しく設定される。
−そうではない場合(PredFlagL0[xPCol][yPCol]が1に等しい)、次のことが適用する。
−PredFlagL1[xPCol][yPCol]が0に等しい場合、mvCol、refIdxCol、およびlistColはそれぞれ、MvL0[xPCol][yPCol]、RefIdxL0[xPCol][yPCol]、およびL0に等しく設定される。
−そうではない場合(PredFlagL1[xPCol][yPCol]が1に等しい)、次の割当てが行われる。
−それぞれの参照ピクチャリスト中のそれぞれのピクチャpicのPicOrderCnt(pic)がPicOrderCntVal以下である場合、mvCol、refIdxCol、およびlistColは、MvLX[xPCol][yPCol]、RefIdxLX[xPCol][yPCol]、およびLXに等しく設定され、それぞれ、Xは、このプロセスが呼び出されるXの値である。
−そうではない場合(少なくとも1つの参照ピクチャリスト中の少なくとも1つのピクチャpicのPicOrderCnt(pic)がPicOrderCntValより大きい)、mvCol、refIdxCol、およびlistColは、MvLN[xPCol][yPCol]、RefIdxLN[xPCol][yPCol]、およびLNに等しく設定され、それぞれ、Nは、collocated_from_l0_flagの値である。
次の条件の1つが真である場合、変数availableFlagLXColは0に等しく設定される。
AddPicId(RefPicListX[refIdxLX])がAddPicId(colPic,refIdxCol,listCol)に等しくない。
RefPicListX[refIdxLX]は短期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は1に等しい。
RefPicListX[refIdxLX]は長期参照ピクチャであり、LongTermRefPic(colPic,refIdxCol,listCol)は0に等しい。
そうではない場合、変数availableFlagLXColは1に等しく設定され、次のことが適用する。
−RefPicListX[refIdxLX]が長期参照ピクチャである、またはLongTermRefPic(colPic,refIdxCol,listCol)が1に等しい、またはPicOrderCnt(colPic)−RefPicOrderCnt(colPic,refIdxCol,listCol)がPicOrderCntVal−PicOrderCnt(RefPicListX[refIdxLX])に等しい場合、
mvLXCol=mvCol (8-143)
−そうではない場合、mvLXColは、以下で規定されるような動きベクトルmvColのスケーリングされたバージョンとして導出される。
tx=(16384+(Abs(td)>>1))/td (8-144)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6) (8-145)
mvLXCol= Clip3(−8192,8191.75,Sign(DistScaleFactor*mvCol)*
((Abs(DistScaleFactor*mvCol)+127)>>8)) (8-146)
ここで、tdおよびtbは、次のように導出され得る。
td=Clip3(−128,127,PicOrderCnt(colPic) −
RefPicOrderCnt(colPic,refIdxCol, listCol)) (8-147)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX])) (8-148)
[0128]ビデオエンコーダ20およびビデオデコーダ30は、組み合わされた双方向予測マージ候補の導出プロセスを実行するように構成され得る。このプロセスの入力は、マージ候補mergeCandListと、mergeCandListの中にある各々の候補Nの参照インデックスrefIdxL0NおよびrefIdxL1Nと、mergeCandListの中にある各々の候補Nの予測リスト利用フラグpredFlagL0NおよびpredFlagL1Nと、mergeCandListの中にある各々の候補Nの動きベクトルmvL0NおよびmvL1Nと、mergeCandList内の要素の数numMergeCandと、空間的および時間的なマージ候補導出プロセスの後の、mergeCandList内の要素の数numOrigMergeCandとを含み得る。このプロセスの出力は、マージ候補リストmergeCandListと、mergeCandList内の要素の数numMergeCandと、このプロセスの呼出しの間にmergeCandListに追加されている各々の新たな候補combCandkの参照インデックスrefIdxL0combCandkおよびrefIdxL1combCandkと、このプロセスの呼出しの間にmergeCandListに追加されている各々の新たな候補combCandkの予測リスト利用フラグpredFlagL0combCandkおよびpredFlagL1combCandkと、このプロセスの呼出しの間にmergeCandListに追加されている各々の新たな候補combCandkの動きベクトルmvL0combCandkおよびmvL1combCandkとを含み得る。
[0129]このプロセスは次のように定義され得、下線が引かれたテキストはHEVC WD7に対する変更を表し、省略部分はHEVC WD7と同じテキストを表す。numOrigMergeCandが1よりも大きくMaxNumMergeCandより小さい場合、変数numInputMergeCandはnumMergeCandに設定され、変数combIdxおよびcombCntは0に設定され、変数combStopはFALSEに設定され、combStopがTRUEに等しくなるまで次のステップが繰り返され得る。
1. 変数l0CandIdxおよびl1CandIdxは、表8−8において規定されるようにcombIdxを使用して導出される。
2. 次の割当ては、マージ候補リストmergeCandList中の、位置l0CandIdxにおける候補であるl0Cand、および位置l1CandIdxにおける候補であるl1Candについて行われる(l0Cand=mergeCandList[l0CandIdx]、l1Cand=mergeCandList[l1CandIdx])。
3. 次の条件のすべてが真である場合、
- predFlagL0l0Cand==1
- predFlagL1l1Cand==1
- AddPicId(RefPicListL0[refIdxL0l0Cand]) != AddPicId(RefPicListL1[refIdxL1l1Cand]) || PicOrderCnt( RefPicList0 [refIdxL0l0Cand] ) != PicOrderCnt( RefPicList1 [refIdxL1l1Cand])|| mvL0l0Cand !=mvL1l1Cand
次のことが適用する。
4. ・・・
5. ・・・
[0130]いくつかの例では、2つの異なる長期参照ピクチャを指す2つの動きベクトルの間の予測がディセーブルにされ得る。他の例では、2つの異なるビュー間参照ピクチャを指す2つの動きベクトルの間の予測がディセーブルにされ得る。
[0131]このようにして、ビデオエンコーダ20およびビデオデコーダ30は、ビデオデータの第1のピクチャについてのピクチャ順序カウント(POC)値をコーディングし、第1のピクチャの第2次元ピクチャ識別子をコーディングし、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャをコーディングするように構成される、ビデオコーダの例を表す。第1のピクチャのPOC値と第2次元ピクチャ識別子とに基づいて第2のピクチャをコーディングすることは、第1のピクチャのPOC値と第2次元ピクチャ識別子との両方を使用して第1のピクチャを識別することを含み得る。
[0132]その上、上で示されたように、第2のピクチャをコーディングすることは、第1のピクチャのPOC値および第2次元ピクチャ識別子と、候補動きベクトル予測子が参照する参照ピクチャのPOC値および第2次元ピクチャ識別子とに基づいて、第1のピクチャを参照する動きベクトルについての動きベクトル予測をイネーブルまたはディセーブルにすることを含み得る。たとえば、第1のピクチャが短期ピクチャであることを第1のピクチャの第2次元ピクチャ識別子が示し、参照ピクチャが長期参照ピクチャであることを参照ピクチャの第2次元ピクチャ識別子が示す場合、ビデオエンコーダ20およびビデオデコーダ30は、第1のピクチャを参照する動きベクトルと参照ピクチャを参照する動きベクトルとの間の動きベクトル予測をディセーブルにし得る。
[0133]さらに、上でも示されたように、第2のピクチャをコーディングすることは、上で述べられたように、第1のピクチャを参照する第2のピクチャのブロックの動きベクトルをコーディングすることを含み得る。そのようなコーディングは、動きベクトル予測子が異なるPOC値を有する参照ピクチャを参照する場合には、ビデオエンコーダ20およびビデオデコーダ30が、第1のピクチャと第2のピクチャとの間でのPOC値の差と、参照ピクチャと第2のピクチャとの間でのPOC値の差とに基づいて動きベクトル予測子をスケーリングするように構成され得るという点で、第1のピクチャのPOC値に基づき得る。
[0134]ビデオエンコーダ20およびビデオデコーダ30は、上で説明された例のいずれかまたはすべての技法を、単独で、または任意の組合せで実行するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、適宜、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、種々の好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして各々実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、それらのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合されてよい。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または、携帯電話もしくはタブレットコンピュータのようなワイヤレス通信デバイスを備え得る。
[0135]図2は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0136]図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロックの復元のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。復元されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングする、デブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは一般に、加算器62の出力をフィルタリングすることになる。また、デブロッキングフィルタに加えて追加のフィルタ(ループ内またはループ後)が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタリングし得る。
[0137]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的な予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。動き補償ユニット44は、たとえば、発展型動きベクトル予測(AMVP:advanced motion vector prediction)、時間的動きベクトル予測(TMVP:temporal motion vector prediction)、またはマージモードコーディングの間に、本開示の技法に従って動きベクトルをコーディングし得る。イントラ予測ユニット46は代替的に、空間的な予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
[0138]その上、区分ユニット48は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、初めにフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、LCUをサブCUに区分することを示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0139]モード選択ユニット40は、たとえば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの1つを選択し得、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器50に与え、参照フレームとして使用するための符号化ブロックを復元するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に与える。
[0140]動き推定ユニット42および動き補償ユニット44は高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるブロックに精密に一致することがわかっているブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0141]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0142]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器50は、以下で説明されるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42はルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0143]イントラ予測ユニット46は、上で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別々の符号化パスの間に、様々なイントラ予測モードを使用して、現在のブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例において、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
[0144]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。
[0145]ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロック用に選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、(コードワードマッピングテーブルとも呼ばれる)複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルと、様々なブロック用の符号化コンテキストの定義と、最確イントラ予測モードの指示とを含み得る送信されるビットストリーム構成データの中に、コンテキストの各々について使用する、イントラ予測モードインデックステーブルと修正されたイントラ予測モードインデックステーブルとを含めることができる。
[0146]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0147]量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングの後、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されてよく、または後で送信するかもしくは取り出すために保管され得る。
[0148]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを復元する。動き補償ユニット44は、残差ブロックを参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、復元された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、復元された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
[0149]ビデオエンコーダ20は、図1に関して論じられた様々な例示的な技法のいずれかまたはすべてを、単独で、または任意の組合せで実行するように構成され得る。たとえば、本開示の技法によれば、ビデオエンコーダ20は、参照ピクチャのピクチャ順序カウント(POC)値と参照ピクチャの第2次元の識別子とに基づいてピクチャを符号化することができる。すなわち、ビデオエンコーダ20は、第1のピクチャ(この例では参照ピクチャ)のPOC値とともに、第1のピクチャの第2次元ピクチャ識別子を符号化することができる。第2次元ピクチャ識別子は、たとえば、第1のピクチャを含むビューのビュー識別子、第1のピクチャを含むビューのビュー順序インデックス、ビュー順序インデックスと深度フラグの組合せ、第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子を備え得る。
[0150]加えて、または代替的に、第2次元の識別子は、第1のピクチャが長期参照ピクチャか短期参照ピクチャかを示す値を備え得る。あるいは、POC値および第2次元ピクチャ識別子に加えて、別個の値が、第1のピクチャが長期参照ピクチャか短期参照ピクチャかを示すことができる。いくつかの例では、参照ピクチャが長期か短期かを示すものは、参照ピクチャが時間的参照ピクチャかビュー間参照ピクチャかを示し得る。たとえば、長期参照ピクチャは時間的参照ピクチャ(すなわち、同じレイヤまたはビューの中の参照ピクチャ)に対応してよく、短期参照ピクチャは、ビュー間参照ピクチャに対応してよい。別の例として、長期参照ピクチャはビュー間参照ピクチャに対応してよく、短期参照ピクチャは時間的参照ピクチャに対応してよい。
[0151]同様に、ビデオエンコーダ20は、様々なタイプの動きベクトルの間の動きベクトル予測をディセーブルにし得る。動きベクトルの「タイプ」は、たとえば、時間的参照ピクチャ(すなわち、符号化されている現在のピクチャと同じビューの中のピクチャ)を指す時間的動きベクトル、および、ビュー間参照ピクチャ(すなわち、現在のピクチャを含むビューとは異なるビューの中のピクチャ)を指す視差動きベクトルを含み得る。通常、ビュー間参照ピクチャは、現在のピクチャと同じPOC値を有する。すなわち、通常、ビュー間参照ピクチャおよび現在のピクチャは、同じアクセスユニット中に現れる。ビデオエンコーダ20は、様々なタイプの動きベクトルの間の動きベクトル予測をディセーブルにし得る。すなわち、現在のピクチャの現在の動きベクトルが時間的動きベクトルであるとき、ビデオエンコーダ20は、視差動きベクトルに対する動きベクトル予測をディセーブルにし得る。同様に、現在の動きベクトルは視差動きベクトルであるとき、ビデオエンコーダ20は、時間的動きベクトルに対する動きベクトル予測をディセーブルにし得る。ビデオエンコーダ20は、そうでなければ、発展型動きベクトル予測(AMVP)またはマージモードのような動きベクトルコーディングプロセスを使用して、現在の動きベクトルを符号化することができる。
[0152]いくつかの例では、ビデオエンコーダ20は、第1のピクチャ(たとえば、マルチビュービデオコーディングにおけるビュー成分)が長期参照ピクチャかどうかを示す値を、第1のピクチャがビュー間予測に使用されるかどうかに少なくとも一部基づいてコーディングするように構成され得る。たとえば、ビデオエンコーダ20は、第1のピクチャが、第1のピクチャを含むシーケンスに対応するシーケンスパラメータセット(SPS)において長期参照ピクチャか短期参照ピクチャかを示す、シンタックス要素を符号化することができる。
[0153]加えて、または代替的に、ビデオエンコーダ20は、少なくとも一時的に、長期参照ピクチャとしてビュー間参照ピクチャをマークするように構成され得る。ビデオエンコーダ20はさらに、ビュー間参照ピクチャの現在の状態を記憶することができ、ここで、状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え得る。したがって、第1のピクチャがビュー間ピクチャを備える場合、ビデオエンコーダ20は、第1のピクチャを長期参照ピクチャとしてマークし得る。第1のピクチャに対して第2のピクチャをコーディングした後、ビデオエンコーダ20は、記憶された状態に基づいて、ビュー間参照ピクチャの状態を取り戻すことができる。
[0154]加えて、または代替的に、ビデオエンコーダ20は一時的に、新たなPOC値をビュー間参照ピクチャに割り当てつつ、第2のピクチャを符号化することができる。たとえば、ビデオエンコーダ20は、現在の時間的参照ピクチャに対するPOC値のセットを決定し、使用されていないPOC値をビュー間参照ピクチャに割り当てることができる。ビデオエンコーダ20はまた、各々のビュー間参照ピクチャに対して、それぞれの現在のPOC値を記憶することができる。第2のピクチャを符号化した後、ビデオエンコーダ20は、ビュー間参照ピクチャに対する記憶された(すなわち、オリジナルの)POC値をリストアし得る。ビュー間参照ピクチャは通常、第2のピクチャ(すなわち、現在符号化されているピクチャ)と同じアクセスユニット中にあるので、いくつかの例では、代わりに、ビデオエンコーダ20は単に、ビュー間参照ピクチャについてのPOC値を、第2のピクチャ、すなわち符号化されている現在のピクチャのPOC値と等しく設定し、その結果、POC値の記憶が必須ではなくなる。
[0155]このようにして、図2のビデオエンコーダ20は、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を符号化し、第1のピクチャの第2次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化するように構成されるビデオエンコーダの例を表す。ベースビデオコーディング仕様はHEVCを備え得る。加えて、ビデオエンコーダ20は、ベースビデオコーディング仕様の拡張、たとえば、HEVCのSVCまたはMVC拡張に従って、ピクチャを符号化するように構成され得る。したがって、ビデオエンコーダ20はまた、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を符号化し、第1のピクチャの第2次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様の拡張に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化するように構成されるビデオエンコーダの例を表す。
[0156]図3は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオデコーダ30の例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成することができ、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
[0157]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0158]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(たとえば、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築し得る。
[0159]本開示の技法によれば、エントロピー復号ユニット70は、現在のピクチャの現在のブロックに対する動き情報を表す、エントロピー符号化データを復号することができる。たとえば、AMVPに従って、エントロピー復号ユニット70は、現在のブロックに対する動きベクトル差分(MVD)値を復号することができる。動き補償ユニット72(または、エントロピー復号ユニット70のようなビデオデコーダ30の別のユニット)は、MVD値のような、エントロピー復号された動き情報を使用して、現在のブロックに対する動きベクトルを復元することができる。たとえば、動き補償ユニット72は、たとえば、現在の動きベクトルが長期参照ピクチャまたは短期参照ピクチャ(または時間的参照ピクチャまたはビュー間参照ピクチャ)を参照するかどうか、および、候補参照ピクチャのセットも長期参照ピクチャまたは短期参照ピクチャ(または、時間的参照ピクチャまたはビュー間参照ピクチャ)を指すかどうかに基づいて、現在の動きベクトルに対する利用可能な動きベクトル予測子のセットを決定することができる。
[0160]上で論じられたように、動き補償ユニット72は、異なるタイプの候補動きベクトル予測子が現在の動きベクトルを予測するために使用できないと決定し得る。たとえば、現在の動きベクトルが時間的動きベクトルである場合、動き補償ユニット72は、視差動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用できないと決定し得る。同様に、現在の動きベクトルが視差動きベクトルである場合、動き補償ユニット72は、時間的動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用できないと決定し得る。いくつかの例では、動き補償ユニット72は、長期参照ピクチャと短期参照ピクチャの間の動きベクトル予測を、同様に、または代替的にディセーブルにし得る。
[0161]現在の動きベクトルが視差動きベクトルである場合、動き補償ユニット72はまた、動きベクトル予測子のスケーリングを避けることができる(このことは同様に、視差動きベクトルにも対応し得る)。加えて、または代替的に、動き補償ユニット72は、視差動きベクトル予測子が視差動きベクトルの動きベクトル予測の間に参照するビュー間参照ピクチャに、時間的POC値を割り当て得る。
[0162]いずれの場合でも、動き補償ユニット72またはビデオデコーダ30の別の要素は、たとえば、AMVPまたはマージモードを使用して、現在のブロックに対する動きベクトルを再現することができる。動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスの参照ピクチャリストのうちの1つまたは複数に対する構成情報、スライスの各インター符号化ビデオブロックに対する動きベクトル、スライスの各インターコード化ビデオブロックに対するインター予測ステータス、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のいくつかを使用する。動き補償ユニット72は、たとえば、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、またはマージモードコーディングの間に、本開示の技法に従って動きベクトルをコーディングし得る。
[0163]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0164]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ30によって計算された量子化パラメータQPYの使用を含み得る。逆変換ユニット78は、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用して、ピクセル領域において残差ブロックを生成する。
[0165]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化し、またはそうではなくビデオ品質を改善するために、(コーディングループ内またはコーディングループ後の)他のループフィルタも使用され得る。所与のフレームまたはピクチャの中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32のようなディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
[0166]このようにして、図3のビデオデコーダ30は、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を復号し、第1のピクチャの第2次元ピクチャ識別子を復号し、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号するように構成される、ビデオデコーダの例を表す。ベースビデオコーディング仕様はHEVCを備え得る。加えて、ビデオデコーダ30は、ベースビデオコーディング仕様の拡張、たとえば、HEVCのSVCまたはMVC拡張に従って、ピクチャを符号化するように構成され得る。したがって、ビデオデコーダ30はまた、ビデオデータの第1のピクチャに対するピクチャ順序カウント(POC)値を復号し、第1のピクチャの第2次元ピクチャ識別子を復号し、ベースビデオコーディング仕様の拡張に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号するように構成されるビデオデコーダの例を表す。
[0167]図4は、例示的なMVC予測パターンを示す概念図である。マルチビュービデオコーディング(MVC)は、ITU−T H.264/AVCの拡張である。同様の技法が、HEVCに適用され得る。図4の例では、(ビューID「S0」〜「S7」を有する)8つのビューが示され、各ビューについて12個の時間位置(「T0」〜「T11」)が示されている。すなわち、図4中の各行はビューに対応し、各列は時間位置を示す。
[0168]MVCはH.264/AVCデコーダによって復号可能であるいわゆるベースビューを有し、ステレオビューペアはMVCによってサポートされ得るが、MVCの1つの利点は、MVCが、3Dビデオ入力として3つ以上のビューを使用し複数のビューによって表されるこの3Dビデオを復号する例を、サポートできることである。MVCデコーダを有するクライアントのレンダラは、複数のビューを伴う3Dビデオコンテンツを予想することができる。
[0169]典型的なMVCの復号順序の構成は、時間優先コーディングと呼ばれる。アクセスユニットは、1つの出力時間インスタンスのためのすべてのビューのコード化ピクチャを含み得る。たとえば、時刻T0のピクチャの各々は、共通のアクセスユニットに含まれてよく、時刻T1のピクチャの各々は、第2の共通のアクセスユニットに含まれてよく、以下同様である。復号順序は、出力または表示順序と必ずしも同一とは限らない。
[0170]図4中のフレーム、すなわちピクチャは、対応するフレームがイントラコーディングされる(すなわち、Iフレームである)のか、一方向に(すなわち、Pフレームとして)インターコーディングされるのか、複数の方向に(すなわち、Bフレームとして)インターコーディングされるのかを指定する、文字を含む影付きブロックを使用して、図4中の各行と各列との交差部において示されている。一般に、予測は矢印によって示され、ここで矢印の終点のフレームは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間位置T0にあるビューS2のPフレームは、時間位置T0にあるビューS0のIフレームから予測される。
[0171]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングのビデオシーケンスのフレームは、異なる時間位置におけるフレームに関して予測的に符号化され得る。たとえば、時間位置T1におけるビューS0のbフレームは、時間位置T0におけるビューS0のIフレームからそのbフレームに向けられた矢印を有し、その矢印は、bフレームがIフレームから予測されることを示す。しかしながら、加えて、マルチビュービデオ符号化のコンテキストでは、フレームは、ビュー間予測され得る。すなわち、ビュー成分は、参照のために他のビュー中のビュー成分を使用することができる。MVCでは、たとえば、別のビュー中のビュー成分がインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
[0172]H.264/AVCのMVC拡張では、一例として、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にする。2つのビューのコーディングは、MVCによってサポートされ得るが、一般に、ステレオスコピックビューと呼ばれる。MVCの利点の1つは、MVCエンコーダが3Dビデオ入力として3つ以上のビューをとらえることができ、MVCデコーダがそのようなマルチビュー表現を復号できることである。したがって、MVCデコーダを有するレンダリングデバイスは、3つ以上のビューを伴う3Dビデオコンテンツを予測することができる。
[0173]MVCでは、ビュー間予測(IVP)は、同じアクセスユニット(すなわち、同じ時間インスタンスを有する)内の画像間で可能になる。アクセスユニットは、一般に、共通の時間インスタンスのすべてのビュー成分(たとえば、すべてのNALユニット)を含むデータユニットである。したがって、MVCにおいて、ビュー間予測は、同じアクセスユニットにおけるピクチャ間で許可される。非ベースビューの1つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンス内にある(たとえば、同じPOC値を有し、したがって同じアクセスユニットの中にある)場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
[0174]通常、Bピクチャの第1または第2の参照ピクチャリストに対する参照ピクチャリスト構成は、2つのステップ、すなわち参照ピクチャリスト初期化と、参照ピクチャリスト並べ替え(修正)とを含む。参照ピクチャリスト初期化は、参照ピクチャメモリ(復号ピクチャバッファとしても知られる)中の参照ピクチャを、POC(ピクチャの表示順でアラインされるPicture Order Count)値の順序に基づいてリストに入れる際に従う、明確なメカニズムである。
[0175]ビデオコーダは、参照ピクチャリスト並べ替えメカニズムを使用して、参照ピクチャリスト初期化中にリストに入れられたピクチャの位置を任意の新しい位置へと修正し、または参照ピクチャメモリ中の任意の参照ピクチャを、そのピクチャが初期化リストに属さなくても、任意の位置に入れる。参照ピクチャリスト並べ替え(修正)後のいくつかのピクチャは、リスト中の離れた位置に入れられる場合がある。しかしながら、ピクチャの位置が、リストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終参照ピクチャリストのエントリーとは見なされない。アクティブな参照ピクチャの数は、リストごとにスライスヘッダでシグナリングされ得る。参照ピクチャリストが構築された後(たとえば、利用可能であれば、RefPicList0およびRefPicList1)、参照ピクチャリストへの参照インデックスは、参照ピクチャリストに含まれる任意の参照ピクチャを識別するために使用され得る。
[0176]時間的動きベクトル予測子(TMVP)を得るために、まず、コロケートピクチャが識別されることになる。現在のピクチャがBスライスである場合、collocated_from_l0_flagは、コロケートピクチャがRefPicList0からのものかRefPicList1からのものかを示すために、スライスヘッダにおいてシグナリングされる。参照ピクチャリストが識別された後、スライスヘッダでシグナリングされるcollocated_ref_idxが、リスト中のピクチャの中のピクチャを識別するために使用される。コロケートPUが次いで、コロケートピクチャをチェックすることによって識別される。このPUを含むCUの一番右下のPUの動きと、このPUを含むCUの中心PU内の一番右下のPUの動きのいずれかが、使用される。上記のプロセスによって識別される動きベクトルが、AMVPまたはマージモードのための動き候補を生成するために使用される場合、動きベクトルは、時間的な位置(POCに反映される)に基づいてスケーリングされる必要がある。
[0177]HEVCでは、シーケンスパラメータセット(SPS)は、フラグsps_temporal_mvp_enable_flagを含み、スライスヘッダは、sps_temporal_mvp_enable_flagが1に等しい場合、フラグpic_temporal_mvp_enable_flagを含む。ある特定のピクチャに対してpic_temporal_mvp_enable_flagとtemporal_idの両方が0に等しい場合、復号順序においてその特定のピクチャの前にあるピクチャからの動きベクトルは、当該特定のピクチャまたは復号順序で当該特定のピクチャの後にあるピクチャの復号において、時間的動きベクトル予測子として使用されない。
[0178]現在、Moving Pictures Experts Group(MPEG)は、HEVCに基づいて3DV規格を開発しており、その3DV規格に対して、規格化の努力の一部は、HEVCに基づくマルチビュービデオコーデックの規格化も含む。同様に、HEVCベースの3DVでは、異なるビューから復元されたビュー成分に基づくビュー間予測がイネーブルにされる。
[0179]拡張が実際に「HLSオンリー」(ハイレベルシンタックスのみ)という要件を満たすような方式で、AVCはマルチビュー拡張によって拡張された。「HLSオンリー」という要件は、AVC中のマクロブロックレベルにおけるモジュールが再設計される必要がなく、完全にマルチビュービデオコーディング(MVC)に対して再使用され得るように、MVCにおいてハイレベルシンタックス(HLS)の変更しか存在しないことを保証する。「HLSオンリー」という要件は、HEVCのMVC/3DV拡張に対して、また、マルチループ復号が受け入れ可能であると考えられる場合には、HEVCのスケーラブルビデオコーディング(SVC)拡張に対しても満たされ得ることが可能である。
[0180]ビュー間予測を可能にするために、HLSの変更が、ピクチャの識別という目的のために行われてよく、ここで、参照ピクチャリストの構築およびマーキングは、特定のビューの中のピクチャを識別することが可能である必要がある。
[0181]HLSの変更は、H.264/MVCにおける「HLSオンリー」という要件を満たすには十分ではなく、それは、ローレベルコーディングモジュールが、たとえばゼロ動き関連スケーリングを処理する状況に決して遭遇しないように、他の制約、仮定が行われるからである。そのような制約、修正、および仮定は以下の通りである。
・コロケートピクチャがビュー間(のみ)参照ピクチャである場合、時間ダイレクトモードをディセーブルにする
・短期ではないものとしてビュー間(のみ)参照ピクチャを見なす:空間ダイレクトに関する
・暗黙的加重予測をディセーブルにする
[0182]「HLSオンリー」という要件を満たすために、拡張におけるそのような修正は、ハイレベルシンタックスのみにおいて行われなければならない。したがって、スライスヘッダのもとにあるシンタックス要素に対しては修正はあるべきではなく、拡張仕様に対するCUレベルの復号プロセスの変更はない。たとえば、HEVC拡張仕様の動きベクトル予測は、HEVCベース仕様における動きベクトル予測と厳密に同じであるべきである。HLSの変更は、拡張仕様の規範的なデコーダの変更であるが、ベース仕様の観点からは、そのような変更は、必ずしも既知である必要はなく、義務的ではなくてよい。
[0183]効率的なビュー間予測のような機能を可能にするために、HEVC拡張における修正とベース仕様の両方が実装され得る。通常の復号プロセスまたは基本HEVCデコーダのコーディング効率に影響を与えないが、拡張仕様における機能をイネーブルにすることをターゲットとするベース仕様の変更は、フックと呼ばれる。多くの場合、「HLSオンリー」という要件は、ベース仕様におけるフックと拡張仕様におけるHLSの変更の両方により満たされる。ベース仕様におけるフックが良好に定義されなければ、ある所望の機能が、拡張仕様においてイネーブルにされないことがあり、または、拡張仕様において多くの修正を必要とすることがある。
[0184]HLSオンリーSVCでは、場合によってはアップサンプリングおよび/またはフィルタリングの後で、ベースレイヤの表現が、現在のレイヤの現在のピクチャの参照ピクチャリストへと入れられ得る。そのようなピクチャは、レイヤ間参照ピクチャと呼ばれる。
[0185]ベース仕様と、HLSオンリーHEVC修正の拡張仕様との両方において、様々な修正が行われ得る。ある所望の機能を考えると、ベース仕様と拡張仕様の両方の設計が修正され得る段階において、ベース仕様の修正と拡張仕様の修正との間でトレードオフの問題がある。
[0186]図5〜図9は、HLSオンリーHEVC拡張を達成するために克服されるべき潜在的な問題を示す概念図である。図5は、たとえば、現在のピクチャ100が、様々な予測技法を使用して予測された、ブロック102および104のようなブロックを含む例を示す。具体的には、現在のピクチャ100は非ベースビューのピクチャに対応するが、ビュー間参照ピクチャ110はベースビューのピクチャである。現在のピクチャ100のブロック102は、(視差動きベクトル106を使用して)ビュー間参照ピクチャ110に対してビュー間予測されるが、ブロック104は、(時間的動きベクトル108を使用して)同じ非ベースビューの短期(ST)参照ピクチャ112に対するインター予測を使用して予測される。したがって、図5は、時間的動きベクトル(時間的動きベクトル108)とビュー間動きベクトル(視差動きベクトル、すなわち視差動きベクトル106とも呼ばれる)の両方を伴う隣接ブロックを現在のピクチャが含む例を示す。
[0187]本開示は、いくつかの例では、視差動きベクトルは時間的動きベクトルを予測するためにスケーリングされるべきではないことを認識する。加えて、本開示は、いくつかの例では、時間的動きベクトルは視差動きベクトルを予測するためにスケーリングされるべきではないことも認識する。本開示は、たとえばAMVPの間に、時間的短期動きベクトルから視差動きベクトルを予測するのをディセーブルにすることと、視差動きベクトルからの時間的動きベクトルの予測をディセーブルにすることとが可能であるべきであることも認識する。視差動きベクトルは通常、異なるビューにおける同じオブジェクトの局所的な視差に対応する。しかしながら、時間的動きベクトルは通常、オブジェクトの動きに対応する。3DV参照ソフトウェアであるHTMでは、上記の2つのカテゴリーの動きベクトル間の予測はディセーブルにされる。
[0188]図6は、異なるビューのビュー間参照ピクチャを使用して予測されるブロックを現在のピクチャが含む例を示す。具体的には、この例では、ビュー間参照ピクチャ120はビュー0の中にあり、ビュー間参照ピクチャ122はビュー1の中にある。現在のピクチャ124はビュー2の中にある。現在のピクチャ124は、ビュー0のビュー間参照ピクチャ120とビュー1のビュー間参照ピクチャ122の両方から、ビュー間予測を使用して予測される、ブロック126、128を含む。具体的には、この例では、ブロック126はビュー間参照ピクチャ122から予測され、ブロック128はビュー間参照ピクチャ120から予測される。
[0189]ブロック126および128は、異なる視差動きベクトルを使用して予測される。すなわち、ブロック126は視差動きベクトル130を使用して予測され、視差動きベクトル130はビュー間参照ピクチャ122の一部分を参照し、一方、ブロック128は視差動きベクトル132を使用して予測され、視差動きベクトル132はビュー間参照ピクチャ120の一部分を参照する。したがって、図6は、異なるビューのビュー間参照ピクチャを参照するビュー間動きベクトルを伴う隣接ブロックを現在のピクチャが含む例を表す。
[0190]本開示は、2つの視差動きベクトルが同じ参照ピクチャに対応するかどうかを識別することが可能であるべきであることを認識する。RefPicList0のエントリーおよびRefPicList1のエントリーが両方ともビュー間参照ピクチャである場合、AMVPの間にこれらの2つの参照ピクチャが同じかどうかを識別することが可能であるべきである。RefPicListX(「X」は、たとえば0または1という値を表し得る)がビュー間参照ピクチャである2つのエントリーを含む場合、AMVPの間にこれらの2つの参照ピクチャが同じかどうかを識別することが可能であるべきである。さらに、図6に示されるように、たとえば、2つのエントリーが異なるビューに対応する場合、同じPOC値を伴う2つのエントリーは同一ではないことがある。
[0191]図7は、ベースビューの中のビュー間参照ピクチャに対するビュー間予測と、非ベースビューの中の長期(LT)参照ピクチャに対するインター予測との両方を使用して予測されるブロックを、非ベースビューの中の現在のピクチャが含む例を示す。すなわち、図7は、現在のピクチャ140が、時間的動きベクトル152(長期参照ピクチャ144を参照する)とビュー間動きベクトル150(ビュー間参照ピクチャ142を参照する)との両方を伴う隣接ブロック146、148を含む例を示す。ビュー間動きベクトル150はまた、「視差動きベクトル150」と呼ばれ得る。本開示は、時間的動きベクトル152のような時間的長期動きベクトルから視差動きベクトル150のような視差動きベクトルを予測することをディセーブルにし、視差動きベクトルから時間的長期動きベクトルを予測することをディセーブルにすることが可能であるべきであることを認識する。
[0192]図8は、長期(LT)参照ピクチャと短期(ST)参照ピクチャの両方からの非ベースビューのインター予測を使用して予測されるブロックを非ベースビューの中の現在のピクチャが含む例を示す。すなわち、図8は、時間的長期動きベクトルと時間的短期動きベクトルの両方を伴う隣接ブロック166、168を現在のピクチャ160が含む例を示す。具体的には、ブロック166は時間的動きベクトル170を使用して予測され、時間的動きベクトル170は長期参照ピクチャ162を参照するが、ブロック168は時間的動きベクトル172を使用して予測され、時間的動きベクトル172は短期参照ピクチャ164を参照する。したがって、時間的動きベクトル170は長期動きベクトルまたは長期時間的動きベクトルと呼ばれ、一方時間的動きベクトル172は短期動きベクトルまたは短期時間的動きベクトルと呼ばれ得る。本開示は、たとえばAMVPの間の、時間的短期動きベクトルと時間的長期動きベクトルとの間の予測をディセーブルにすることが可能であるべきであることを認識する。
[0193]図9は、インター予測を使用して予測されるブロックを非ベースビューの中の現在のピクチャが含み、非ベースビューの異なる長期(LT)参照ピクチャに対してブロックが予測される例を示す。すなわち、図9は、長期ピクチャ184、182をそれぞれ参照する時間的動きベクトル190、192を伴う隣接ブロック186、188を現在のピクチャ180が含む例を示す。具体的には、この例では、ブロック186は時間的動きベクトル190を使用して予測され、時間的動きベクトル190は長期参照ピクチャ184の一部分を参照し、一方、ブロック188は時間的動きベクトル192を使用して予測され、時間的動きベクトル192は長期参照ピクチャ182の一部分を指す。本開示は、AMVPの間の、時間的長期動きベクトルの予測をイネーブルおよび/またはディセーブルにすることが可能であるべきであることを認識する。
[0194]図10は、現在のブロックに対する隣接ブロックの例示的なセットを示す概念図である。具体的には、この例では、現在のブロックは、A0およびA1とラベルされた左側の隣接ブロックと、上側の隣接ブロックB0、B1、およびB2とを有する。現在のブロックは、インター予測、たとえば時間的予測またはビュー間予測を使用してコーディングされ得る。したがって、ビデオエンコーダ20またはビデオデコーダ30のようなビデオコーダは、動きベクトルを使用して現在のブロックをコーディングし得る。その上、ビデオコーダは動きベクトルをコーディングし得る。様々な例において、ビデオコーダは、たとえば、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、またはマージモードのために、上で説明される技法を使用して現在のブロックに対する動きベクトルをコーディングし得る。TMVP予測子は、以前にコーディングされたピクチャの中の現在のブロックと同じ位置にある(co-located)ブロックに対する動きベクトルに対応し得る。
[0195]隣接ブロックA0、A1、B0、B1、およびB2の1つまたは複数の動きベクトルは、現在のブロックをコーディングするために使用される動きベクトルとは異なるタイプであり得る。たとえば、現在のブロックは長期動きベクトルを使用してコーディングされてよく、一方ブロックA0、A1、B0、B1、およびB2の1つまたは複数は短期動きベクトルを使用してコーディングされてよい。別の例として、現在のブロックは短期動きベクトルを使用してコーディングされてよく、一方ブロックA0、A1、B0、B1、およびB2の1つまたは複数は長期動きベクトルを使用してコーディングされてよい。さらに別の例として、現在のブロックは視差動きベクトルを使用してコーディングされてよく、一方ブロックA0、A1、B0、B1、およびB2の1つまたは複数は時間的動きベクトルを使用してコーディングされてよい。さらに別の例として、現在のブロックは時間的動きベクトルを使用してコーディングされてよく、一方ブロックA0、A1、B0、B1、およびB2の1つまたは複数は視差動きベクトルを使用してコーディングされてよい。そのような場合、上で説明されたように、ビデオエンコーダ20またはビデオデコーダ30のようなビデオコーダは、異なるタイプの動きベクトルの間での動きベクトル予測をディセーブルにし得る。
[0196]図10の例は、空間動きベクトル予測子の候補を示す。しかしながら、時間的動きベクトル予測(TMVP)のために時間的動きベクトル予測子の候補も考慮され得ることを理解されたい。そのようなTMVPの候補は、以前にコーディングされたピクチャ内のコロケートブロック、すなわち、図10で「現在のブロック」とラベルされたブロックと同じ位置にあるブロックに対する動き情報に対応し得る。加えて、本開示の技法によれば、TMVPの候補は、TMVPの候補の動き情報および現在のブロックの動きベクトルが異なるタイプのピクチャ、たとえば、短期参照ピクチャおよび長期参照ピクチャを指す場合、動きベクトル予測子として使用することが不可能であると見なされ得る。
[0197]図11は、本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャートである。いくつかの例では、図11の例示的な方法のステップは、代替的に、異なる順序で、または実質的に並列に実行され得る。同様に、いくつかのステップが省略されてよく、かつ/または他のステップが追加されてよい。ビデオエンコーダ20によって実行されるものとして説明されるが、他のビデオ符号化デバイスが実質的に同様の方法を実行するように構成され得ることを理解されたい。
[0198]この例では、ビデオエンコーダ20は、現在のピクチャに対する参照ピクチャのピクチャ順序カウント(POC)値を符号化する(200)。たとえば、ビデオエンコーダ20は、現在のピクチャを含むシーケンスに対するシーケンスパラメータセット(SPS)データ構造の中のいくつかの参照ピクチャに対するPOC値、またはPOC値を表すデータ(最下位ビット(LSBs)など)を符号化し得る。ビデオエンコーダ20はまた、加えて、または代替的に、現在のピクチャの現在のスライスのスライスヘッダ中の1つまたは複数の参照ピクチャに対するPOC値を符号化し得る。いくつかの例では、ビデオエンコーダ20は、SPS中の長期参照ピクチャのPOC値とスライスヘッダ中の短期参照ピクチャのPOC値とを表すデータを符号化し得る。ビデオエンコーダ20はまた、SPS中、スライスヘッダ中、または別の場所にあるビュー間参照ピクチャのPOC値を符号化し得る。一般に、ビュー間参照ピクチャのPOC値は、符号化されている現在のピクチャのPOC値と同じである。
[0199]ビデオエンコーダ20はまた、参照ピクチャの第2次元の識別子を符号化し得る(202)。第2次元の識別子は、参照ピクチャを含むビューのビュー識別子、参照ピクチャを含むビューのビュー順序インデックス、ビュー順序インデックスと深度フラグの組合せ、参照ピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および/または一般的なレイヤ識別子のうちの1つまたは複数を含み得る。このようにして、参照ピクチャに対するPOC値と参照ピクチャの第2次元の識別子との組合せが、参照ピクチャを識別するために使用され得る。
[0200]ビデオエンコーダ20はさらに、現在のピクチャの現在のブロックに対する動き探索を実行し得る。すなわち、動き推定ユニット42は、現在のブロックに最も近く一致する参照ブロックに対する参照ピクチャを探索し得る。このことは、当該参照ブロックを参照し、また、当該参照ブロックが現れる参照ピクチャも参照する動きベクトルを含む動き情報をもたらし得る。したがって、ビデオエンコーダ20の動き補償ユニット44は、参照ピクチャの1つを指す動きベクトルを使用して、現在のブロックを予測し得る(204)。
[0201]ビデオエンコーダ20はまた、たとえば、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP、)またはマージモードを使用して、動きベクトルを符号化し得る。具体的には、ビデオエンコーダ20は、利用可能な候補動きベクトル予測子のセットを決定し得る(206)。たとえば、図10を参照すると、ビデオエンコーダ20は、隣接ブロックA0、A1、B0、B1、およびB2に対する動きベクトルが利用可能かどうかを決定し得る。具体的には、本開示の技法によれば、ビデオエンコーダ20は、隣接ブロックの動きベクトルが現在のブロックに対する動きベクトルとは異なるタイプである場合、これらの隣接ブロックの1つの動きベクトルが利用可能ではないと決定し得る。同様に、ビデオエンコーダ20は、TMVP候補が現在のブロックの動きベクトルをコーディングするための予測子として使用されることが可能であるかどうかを決定する際、時間的動きベクトル予測子の候補についての動きベクトルが現在のブロックについての動きベクトルとは異なるタイプの参照ピクチャを参照しているかどうかを決定し得る。
[0202]上で説明されたように、例示的な異なるタイプの動きベクトルは、長期動きベクトルと、短期動きベクトルと、時間的動きベクトルと、視差動きベクトルとを含む。したがって、ビデオエンコーダ20は、現在のブロックの動きベクトルのタイプ、さらには、隣接ブロックの動きベクトルのタイプを決定し、現在のブロックの現在の動きベクトルのタイプとは異なるタイプの隣接ブロックの動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用されることは不可能であると決定し得る。タイプを決定するために、ビデオエンコーダ20は、候補動きベクトルが参照する参照ピクチャのPOC値、現在の動きベクトルが参照する参照ピクチャのPOC値、候補動きベクトルが参照する参照ピクチャの第2次元識別子、および/または、現在の動きベクトルが参照する参照ピクチャの第2次元識別子を参照し得る。
[0203]続いて、ビデオエンコーダ20は、現在の動きベクトルに対する動きベクトル予測子として、隣接ブロック(これは、以前にコーディングされたピクチャ中のコロケートブロックおよび/または異なるビューのピクチャ中の対応するブロックを含み得る)から利用可能な候補動きベクトル予測子の1つを選択し得る(208)。ビデオエンコーダ20は次いで、選択された動きベクトル予測子を使用して現在の動きベクトルを符号化し得る(210)。
[0204]さらに、ビデオエンコーダ20は、現在のブロックに対する残差ブロックを計算することができる(212)。図2に関して説明されたように、加算器50は、元のコーディングされていないブロックと、動き補償ユニット44によって形成された予測ブロックとのピクセルごとの差分を計算し得る。変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56は次いで、それぞれ、残差ブロックを変換し、量子化し、走査し得る(214)。具体的には、変換処理ユニット52は、残差ブロックを変換して変換係数のブロックを生成し、量子化ユニット52は変換係数を量子化し、エントロピー符号化ユニット56は量子化変換係数を走査し得る。エントロピー符号化ユニット56は次いで、量子化変換係数と、符号化動きベクトル情報とをエントロピー符号化し得る(216)。
[0205]このようにして、図11の方法は、ビデオデータの第1のピクチャについてのピクチャ順序カウント(POC)値を符号化することと、第1のピクチャの第2次元ピクチャ識別子を符号化することと、ベースビデオコーディング仕様(またはベースビデオコーディング仕様の拡張)に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを符号化することとを含む、方法の例を表す。加えて、方法は、
第2のピクチャの第1のブロックの第1の動きベクトルと(ここで前記第1の動きベクトルは短期参照ピクチャを参照し)、第2のピクチャの第2のブロックの第2の動きベクトル(ここで第2の動きベクトルは長期参照ピクチャを参照し)との間の動きベクトル予測をディセーブルにすることを含み得る。加えて、または代替的に、方法は、第2のピクチャの第1のブロックの第1の動きベクトル(ここで前記第1の動きベクトルはビュー間参照ピクチャを参照し)と、第2のピクチャの第2のブロックの第2の動きベクトル(ここで前記第2の動きベクトルは時間的参照ピクチャを参照し)との間の動きベクトル予測をディセーブルにすることを含み得る。
[0206]図12は、本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャートである。いくつかの例では、図12の例示的な方法のステップは、代替的に、異なる順序で、または実質的に並列に実行され得る。同様に、いくつかのステップが省略されてよく、かつ/または他のステップが追加されてよい。ビデオデコーダ30によって実行されるものとして説明されるが、他のビデオ復号デバイスが実質的に同様の方法を実行するように構成され得ることを理解されたい。
[0207]この例では、ビデオデコーダ30は、現在のピクチャに対する参照ピクチャのPOC値を復号する(230)。たとえば、ビデオデコーダ30は、現在のピクチャを含むシーケンスに対するシーケンスパラメータセット(SPS)データ構造の中のいくつかの参照ピクチャに対するPOC値、またはPOC値を表すデータ(最下位ビット(LSBs)など)を復号し得る。ビデオデコーダ30は、たとえば以前に復号された完全なPOC値から導出されたそれぞれのMSBにLSBを付加することによって、POC値に対する復号されたLSBから当該POC値を復元し得る。ビデオデコーダ30はまた、加えて、または代替的に、現在のピクチャの現在のスライスのスライスヘッダ中の1つまたは複数の参照ピクチャに対するPOC値を復号し得る。いくつかの例では、ビデオデコーダ30は、SPS中の長期参照ピクチャのPOC値と、スライスヘッダ中の短期参照ピクチャのPOC値とを表すデータを復号し得る。ビデオデコーダ30はまた、SPS中、スライスヘッダ中、または別の場所にあるビュー間参照ピクチャのPOC値を復号し得る。一般に、ビュー間参照ピクチャのPOC値は、符号化されている現在のピクチャのPOC値と同じである。
[0208]ビデオエンコーダ30はまた、参照ピクチャの第2次元識別子を復号し得る(232)。第2次元識別子は、参照ピクチャを含むビューのビュー識別子、参照ピクチャを含むビューのビュー順序インデックス、ビュー順序インデックスと深度フラグの組合せ、参照ピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および/または一般的なレイヤ識別子のうちの1つまたは複数を含み得る。このようにして、参照ピクチャについてのPOC値と参照ピクチャの第2次元識別子との組合せが、参照ピクチャを識別するために使用され得る。したがって、参照ピクチャを識別するために、動き情報は、参照ピクチャについてのPOC値と第2次元識別子との両方を含み得る。
[0209]ビデオエンコーダ30はまた、現在のピクチャの現在のブロックに対する動きベクトルを復号し得る。具体的には、ビデオデコーダ30は、利用可能な候補動きベクトル予測子のセットを決定し得る(234)。たとえば、図10を参照すると、ビデオデコーダ30は、隣接ブロックA0、A1、B0、B1、およびB2についての動きベクトルが利用可能かどうかを決定し得る。具体的には、本開示の技法によれば、ビデオデコーダ30は、隣接ブロックの動きベクトルが現在のブロックに対する動きベクトルとは異なるタイプである場合、これらの隣接ブロックの1つの動きベクトルが利用可能ではないと決定し得る。同様に、ビデオデコーダ30は、TMVP候補が現在のブロックの動きベクトルをコーディングするための予測子として使用されることが可能であるかどうかを決定する際、時間的動きベクトル予測子の候補についての動きベクトルが現在のブロックについての動きベクトルとは異なるタイプの参照ピクチャを参照しているかどうかを決定し得る。
[0210]上で説明されたように、例示的な異なるタイプの動きベクトルは、長期動きベクトルと、短期動きベクトルと、時間的動きベクトルと、視差動きベクトルとを含む。したがって、ビデオデコーダ30は、現在のブロックの動きベクトルのタイプ、さらには、隣接ブロックの動きベクトルのタイプを決定し、現在のブロックの動きベクトルのタイプとは異なるタイプの隣接ブロックの動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用されることは不可能であると決定し得る。タイプを決定するために、ビデオデコーダ30は、候補動きベクトルが参照する参照ピクチャのPOC値、現在の動きベクトルが参照する参照ピクチャのPOC値、候補動きベクトルが参照する参照ピクチャの第2次元識別子、および/または、現在の動きベクトルが参照する参照ピクチャの第2次元識別子を参照し得る。
[0211]続いて、ビデオデコーダ30は、現在の動きベクトルに対する動きベクトル予測子として、隣接ブロック(これは、以前にコーディングされたピクチャ中のコロケートブロックおよび/または異なるビューのピクチャ中の対応するブロックを含み得る)から利用可能な候補動きベクトル予測子の1つを選択し得る(236)。ビデオデコーダ30は次いで、選択された動きベクトル予測子を使用して現在の動きベクトルを復号し得る(238)。たとえば、AMVPを使用して、ビデオデコーダ30は、現在の動きベクトルについての動きベクトル差分(MVD)値を復号し、次いで、選択された動きベクトル予測子にMVD値を適用し得る。すなわち、ビデオデコーダ30は、MVD値のx成分を選択された動きベクトル予測子のx成分に加え、MVD値のy成分を選択された動きベクトル予測子のy成分に加え得る。
[0212]ビデオデコーダ30の動き補償ユニット72は次いで、参照ピクチャの1つを指す動きベクトルを使用して、現在のブロックを予測し得る(240)。すなわち、動きベクトル自体に加えて、ビデオデコーダ30は、POC値および第2次元の識別値のような、動きベクトルが対応するブロックについての参照ピクチャ識別情報を復号し得る。このようにして、ビデオデコーダ30は、POC値と第2次元の識別値とを使用して、動きベクトルが指す参照ピクチャを決定し得る。したがって、動き補償ユニット72は、動きベクトルと、参照ピクチャ識別情報、すなわちPOC値および第2次元の識別値とを使用して、現在のブロックに対する予測ブロックを形成し得る。
[0213]エントロピー復号ユニット70はさらに、現在のブロックに対応する残差ブロックについての量子化残差係数をエントロピー復号し得る(242)。エントロピー復号ユニット70、逆量子化ユニット76、および逆変換ユニット78はそれぞれ、量子化変換係数を逆走査、量子化、変換して、残差ブロックを再現し得る(244)。ビデオデコーダ30の加算器80は次いで、予測ブロックと残差ブロックとを組み合わせて(すなわち、ピクセルごとに加算して)、現在のブロックを再現し得る(246)。
[0214]このようにして、図12の方法は、ビデオデータの第1のピクチャについてのピクチャ順序カウント(POC)値を復号することと、第1のピクチャの第2次元ピクチャ識別子を復号することと、ベースビデオコーディング仕様(またはベースビデオコーディング仕様の拡張)に従って、第1のピクチャのPOC値および第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号することとを含む、方法の例を表す。加えて、方法は、短期参照ピクチャを指す、第2のピクチャの第1のブロックの第1の動きベクトルと、長期参照ピクチャを指す、第2のピクチャの第2のブロックの第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることを含み得る。加えて、または代替的に、方法は、ビュー間参照ピクチャを指す、第2のピクチャの第1のブロックの第1の動きベクトルと、時間的参照ピクチャを指す、第2のピクチャの第2のブロックの第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることを含み得る。
[0215]例によっては、本明細書で説明された技法のうちいずれかの、いくつかの行為またはイベントは、異なる順番で実行される可能性があり、追加され、統合され、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて実行され得る。
[0216]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいは、コンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する、任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0217]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。同様に、いかなる接続も適切にコンピュータ可読媒体と称される。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0218]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明される技法の実装に好適な他の構造のいずれかを指す。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内で与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中で完全に実装され得る。
[0219]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、または相互動作ハードウェアユニットの集合によって与えられてよい。
[0220]様々な例が説明されてきた。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータを復号する方法であって、
ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を復号することと、
前記第1のピクチャについて第2次元ピクチャ識別子を復号することと、
ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第2のピクチャを復号することと、
を備える方法。
[2] 前記第2のピクチャの第1のブロックの第1の動きベクトルと、ここで前記第1の動きベクトルは短期参照ピクチャを参照し、
前記第2のピクチャの第2のブロックの第2の動きベクトルと、ここで前記第2の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにすることをさらに備える、[1]に記載の方法。
[3] 前記第2のピクチャをコーディングすることは、
前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別することと、
前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分を復号することと、
を備える、[1]に記載の方法。
[4] 前記第1のピクチャを識別することは、前記第2のピクチャのブロックについての動きベクトルの復号の間に前記第1のピクチャを識別することを備え、前記動きベクトルのコーディングは、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルをコーディングすることを備える、[3]に記載の方法。
[5] 前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにすることと、
前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングすることと、
をさらに備える、[1]に記載の方法。
[6] 前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値を復号することをさらに備える、[1]に記載の方法。
[7] 前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第3のピクチャを復号することをさらに備える、[1]に記載の方法。
[8] 前記第3のピクチャを復号する前に、前記第1のピクチャを含むすべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、[7]に記載の方法。
[9] 前記第3のピクチャについて前記ビュー間参照ピクチャの各々についての状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え、前記ビュー間参照ピクチャは前記第1のピクチャを含み、
前記第2のピクチャをコーディングした後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
をさらに備える、[8]に記載の方法。
[10] 前記ベースビデオコーディング仕様は高効率ビデオコーディング(HEVC)ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記HEVCベース仕様に対するスケーラブルビデオコーディング(SVC)拡張と、前記HEVCベース仕様に対するマルチビュービデオコーディング(MVC)拡張とのうちの1つを備える、[7]に記載の方法。
[11] 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、[7]に記載の方法。
[12] 前記第3のピクチャを復号した後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つとしてマークすることをさらに備える、[7]に記載の方法。
[13] ビュー間参照ピクチャを長期参照ピクチャとしてマークした後で、現在使用されていない新たなPOC値を前記ビュー間参照ピクチャに割り当てることと、
前記第2のピクチャを復号した後、前記ビュー間参照ピクチャについての元のPOC値をリストアすることと、
をさらに備える、[12]に記載の方法。
[14] 前記元のPOC値は、前記第1のピクチャの前記POC値を備える、[13]に記載の方法。
[15] ビデオデータを符号化する方法であって、
ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を符号化することと、
前記第1のピクチャについて第2次元ピクチャ識別子を符号化することと、
ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第2のピクチャを符号化することと、
を備える方法。
[16] 前記第2のピクチャの第1のブロックの第1の動きベクトルと、ここで前記第1の動きベクトルは短期参照ピクチャを参照し、
前記第2のピクチャの第2のブロックの第2の動きベクトルと、ここで前記第2の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにすることをさらに備える、[15]に記載の方法。
[17] 前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別することと、
前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分をコーディングすることと、
をさらに備える、[15]に記載の方法。
[18] 前記第1のピクチャを識別することは、前記第2のピクチャのブロックについての動きベクトルのコーディングの間に前記第1のピクチャを識別することを備え、前記動きベクトルのコーディングは、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルをコーディングすることを備える、[17]に記載の方法。
[19] 前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにすることと、
前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングすることと、
をさらに備える、[15]に記載の方法。
[20] 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、[15]に記載の方法。
[21] 前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値をコーディングすることをさらに備える、[15]に記載の方法。
[22] 前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第3のピクチャを符号化することをさらに備える、[15]に記載の方法。
[23] 前記第3のピクチャを符号化する前に、すべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、[22]に記載の方法。
[24] 前記ビュー間参照ピクチャの各々の状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え、
前記第2のピクチャをコーディングした後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
をさらに備える、[23]に記載の方法。
[25] 前記ベースビデオコーディング仕様は高効率ビデオコーディング(HEVC)ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記HEVCベース仕様に対するスケーラブルビデオコーディング(SVC)拡張と、前記HEVCベース仕様に対するマルチビュービデオコーディング(MVC)拡張との1つを備える、[22]に記載の方法。
[26] 前記第3のピクチャをコーディングした後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つとしてマークすることをさらに備える、[15]に記載の方法。
[27] ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなPOC値を前記ビュー間参照ピクチャに割り当てることと、
前記第2のピクチャをコーディングした後、前記ビュー間参照ピクチャについての元のPOC値をリストアすることと、
をさらに備える、[26]に記載の方法。
[28] 前記元のPOC値は、前記第2のピクチャの前記POC値を備える、[27]に記載の方法。
[29] ビデオデータを復号するためのデバイスであって、
ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を復号し、前記第1のピクチャについて第2次元ピクチャ識別子を復号し、ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値および前記第2次元ピクチャ識別子に少なくとも一部基づいて、第2のピクチャを復号するように構成されるビデオデコーダを備える、デバイス。
[30] 前記ビデオデコーダは、
前記第2のピクチャの第1のブロックの第1の動きベクトルと、ここで前記第1の動きベクトルは短期参照ピクチャを参照し、
前記第2のピクチャの第2のブロックの第2の動きベクトルと、ここで前記第2の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにするように構成される、[29]に記載のデバイス。
[31] 前記ビデオデコーダは、前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別し、前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分を復号するように構成される、[29]に記載のデバイス。
[32] 前記ビデオデコーダは、前記第2のピクチャのブロックについての動きベクトルのコーディングの間に前記第1のピクチャを識別するように構成され、前記ビデオデコーダは、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルを復号するように構成される、[31]に記載のデバイス。
[33] 前記ビデオデコーダは、前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにし、前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングするように構成される、[29]に記載のデバイス。
[34] 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子の少なくとも1つを備える、[29]に記載のデバイス。
[35] 前記ビデオデコーダは、前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値を復号するように構成される、[29]に記載のデバイス。
[36] 前記ビデオデコーダはさらに、前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第3のピクチャを復号するように構成される、[29]に記載のデバイス。
[37] 前記ビデオデコーダは、
前記第3のピクチャを復号する前に、前記第1のピクチャを含む前記第3のピクチャについてのすべてのビュー間参照ピクチャを長期参照ピクチャとしてマークし、
前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前は参照に使用されない、のうちの1つを備え、
前記第3のピクチャを復号した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々についての新たな状態を設定するように構成される、[36]に記載のデバイス。
[38] 前記ビデオデコーダはさらに、
前記第1のピクチャを含む前記第3のピクチャについての各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および前記第3のピクチャを復号した後は参照に使用されない、のうちの1つとしてマークし、
ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなPOC値を、前記ビュー間参照ピクチャの各々に割り当て、
前記第2のピクチャをコーディングした後、前記ビュー間参照ピクチャについての元のPOC値をリストアするように構成される、[36]に記載のデバイス。
[39] 集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも1つを備える、[29]に記載のデバイス。
[40] ビデオデータを符号化するためのデバイスであって、
ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を符号化し、前記第1のピクチャについて第2次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値および前記第2次元ピクチャ識別子とに少なくとも一部基づいて、第2のピクチャを符号化するように構成されるビデオエンコーダを備える、デバイス。
[41] 前記ビデオエンコーダは、
前記第2のピクチャの第1のブロックの第1の動きベクトルと、ここで前記第1の動きベクトルは短期参照ピクチャを参照し、
前記第2のピクチャの第2のブロックの第2の動きベクトルと、ここで前記第2の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにするように構成される、[40]に記載のデバイス。
[42] 前記ビデオエンコーダは、前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別し、前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分を符号化するように構成される、[40]に記載のデバイス。
[43] 前記ビデオエンコーダは、前記第2のピクチャのブロックについての動きベクトルのコーディングの間に前記第1のピクチャを識別するように構成され、前記ビデオエンコーダは、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルを符号化するように構成される、[42]に記載のデバイス。
[44] 前記ビデオエンコーダは、前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにし、前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングするように構成される、[40]に記載のデバイス。
[45] 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、[40]に記載のデバイス。
[46] 前記ビデオエンコーダは、前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値を符号化するように構成される、[40]に記載のデバイス。
[47] 前記ビデオエンコーダは、さらに、前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第3のピクチャを符号化するように構成される、[40]に記載のデバイス。
[48] 前記ビデオエンコーダは、
前記第3のピクチャを符号化する前に、前記第1のピクチャを含む前記第3のピクチャについてのすべてのビュー間参照ピクチャを長期参照ピクチャとしてマークし、
前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前は参照に使用されない、のうちの1つを備え、
前記第3のピクチャを符号化した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々について新たな状態を設定するように構成される、[47]に記載のデバイス。
[49] 前記ビデオエンコーダは、さらに、
前記第1のピクチャを含む前記第3のピクチャについての各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および前記第3のピクチャを符号化した後は参照に使用されない、のうちの1つとしてマークし、
ビュー間参照ピクチャを長期参照ピクチャとして標識した後、現在使用されていない新たなPOC値を前記ビュー間参照ピクチャの各々に割り当て、
前記第2のピクチャをコーディングした後、前記ビュー間参照ピクチャについての元のPOC値をリストアするように構成される、[47]に記載のデバイス。
[50] ビデオデータを符号化するためのデバイスであって、
ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を符号化する手段と、
前記第1のピクチャについて第2次元ピクチャ識別子を符号化する手段と、
ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第2のピクチャを符号化する手段と、
を備えるデバイス。
[51] 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を復号させ、
前記第1のピクチャについて第2次元ピクチャ識別子を復号させ、
ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて第2のピクチャを復号させる、
コンピュータ可読記憶媒体。

Claims (47)

  1. ビデオデータを復号する方法であって、
    ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を参照する第2のピクチャのデータを復号することと、
    前記第1のピクチャについて第2次元ピクチャ識別子を参照する前記第2のピクチャのデータを復号することと
    ースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて前記第2のピクチャを復号することと、
    前記第2のピクチャの第1のブロックの第1の動きベクトルが短期参照ピクチャを参照すると決定することと、
    前記第2のピクチャの第2のブロックの第2の動きベクトルが長期参照ピクチャを参照すると決定することと、
    前記第1の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第2の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルと前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることと、
    を備え、ここで、前記第1のブロックおよび前記第2のブロックは、前記第2のピクチャにおいて空間的に隣接するブロックであり、前記第1の動きベクトルと前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることは、前記第1の動きベクトルを予測するために前記第2の動きベクトルを使用することなしに前記第1の動きベクトルを復号することと、前記第2の動きベクトルを予測するために前記第1の動きベクトルを使用することなしに前記第2の動きベクトルを復号することと、を備える、
    方法。
  2. 前記第2のピクチャを復号することは、
    前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別することと、
    前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分を復号することと、
    を備える、請求項1に記載の方法。
  3. 前記第1のピクチャを識別することは、前記第2のピクチャのブロックについての動きベクトルの復号の間に前記第1のピクチャを識別することを備え、前記動きベクトルの復号は、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルを復号することを備える、請求項に記載の方法。
  4. 前記ビデオデータの前記第1のピクチャが長期参照ピクチャを備えるかどうかを示す値を復号することをさらに備え、前記第のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第1のピクチャがビュー間予測に使用されるかどうかを示す、請求項1に記載の方法。
  5. 前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて前記のピクチャを復号することをさらに備える、請求項1に記載の方法。
  6. 前記第2のピクチャを復号する前に、前記第1のピクチャを含む、すべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、請求項5に記載の方法。
  7. 前記第2のピクチャについて前記ビュー間参照ピクチャの各々の状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え、前記ビュー間参照ピクチャは、前記第1のピクチャを含み、
    前記第2のピクチャを復号した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
    をさらに備える、請求項に記載の方法。
  8. 前記ベースビデオコーディング仕様は高効率ビデオコーディング(HEVC)ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記HEVCベース仕様に対するスケーラブルビデオコーディング(SVC)拡張と、前記HEVCベース仕様に対するマルチビュービデオコーディング(MVC)拡張とのうちの1つを備える、請求項に記載の方法。
  9. 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、請求項に記載の方法。
  10. 前記のピクチャを復号した後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つとしてマークすることをさらに備える、請求項に記載の方法。
  11. ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなPOC値を前記ビュー間参照ピクチャに割り当てることと、
    前記第2のピクチャを復号した後、前記ビュー間参照ピクチャについての元のPOC値をリストアすることと
    をさらに備える、請求項10に記載の方法。
  12. 前記元のPOC値は、前記第1のピクチャの前記POC値を備える、請求項11に記載の方法。
  13. ビデオデータを符号化する方法であって、
    ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を参照する第2のピクチャのデータを符号化することと、
    前記第1のピクチャについて第2次元ピクチャ識別子を参照する前記第2のピクチャのデータを符号化することと
    ースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて前記第2のピクチャを符号化することと、
    前記第2のピクチャの第1のブロックの第1の動きベクトルが短期参照ピクチャを参照すると決定することと、
    前記第2のピクチャの第2のブロックの第2の動きベクトルが長期参照ピクチャを参照すると決定することと、
    前記第1の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第2の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルと前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることと、
    を備え、ここで、前記第1のブロックおよび前記第2のブロックは、前記第2のピクチャにおいて空間的に隣接するブロックであり、前記第1の動きベクトルと前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることは、前記第1の動きベクトルを予測するために前記第2の動きベクトルを使用することなしに前記第1の動きベクトルを符号化することと、前記第2の動きベクトルを予測するために前記第1の動きベクトルを使用することなしに前記第2の動きベクトルを符号化することと、を備える、
    方法。
  14. 前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別することと、
    前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分をコーディングすることと、
    をさらに備える、請求項13に記載の方法。
  15. 前記第1のピクチャを識別することは、前記第2のピクチャのブロックについての前記動きベクトルの符号化の間に前記第1のピクチャを識別することを備え、前記動きベクトルの符号化は、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルを符号化することを備える、請求項14に記載の方法。
  16. 前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにすることと、
    前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングすることと、
    をさらに備える、請求項13に記載の方法。
  17. 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、請求項13に記載の方法。
  18. 前記ビデオデータの前記第1のピクチャが長期参照ピクチャを備えるかどうかを示す値を符号化することをさらに備え、前記第1のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第1のピクチャがビュー間予測に使用されるかどうかを示す、請求項13に記載の方法。
  19. 前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて、前記第2のピクチャを符号化することをさらに備える、請求項13に記載の方法。
  20. 前記第2のピクチャを符号化する前に、すべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、請求項19に記載の方法。
  21. 前記ビュー間参照ピクチャの各々の状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え、
    前記第2のピクチャを符号化した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
    をさらに備える、請求項20に記載の方法。
  22. 前記ベースビデオコーディング仕様は高効率ビデオコーディング(HEVC)ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記HEVCベース仕様に対するスケーラブルビデオコーディング(SVC)拡張と、前記HEVCベース仕様に対するマルチビュービデオコーディング(MVC)拡張とのうちの1つを備える、請求項19に記載の方法。
  23. 前記第2のピクチャを符号化した後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つとしてマークすることをさらに備える、請求項19に記載の方法。
  24. ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなPOC値を前記ビュー間参照ピクチャに割り当てることと、
    前記第2のピクチャを符号化した後、前記ビュー間参照ピクチャについての元のPOC値をリストアすることと、
    をさらに備える、請求項23に記載の方法。
  25. 前記元のPOC値は、前記第2のピクチャの前記POC値を備える、請求項24に記載の方法。
  26. ビデオデータを復号するためのデバイスであって、
    ビデオデータを記憶するように構成されたメモリと、
    前記ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を参照する第2のピクチャのデータを復号し、
    前記第1のピクチャについて第2次元ピクチャ識別子を参照する前記第2のピクチャのデータを復号し
    ースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値前記第2次元ピクチャ識別子に少なくとも一部基づいて前記第2のピクチャを復号し、
    前記第2のピクチャの第1のブロックの第1の動きベクトルが短期参照ピクチャを参照すると決定し、
    前記第2のピクチャの第2のブロックの第2の動きベクトルが長期参照ピクチャを参照すると決定し、
    前記第1の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第2の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルと前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにする
    ように構成されたビデオデコーダと、
    を備え、ここで、前記第1のブロックおよび前記第2のブロックは、前記第2のピクチャにおいて空間的に隣接するブロックであり、前記第1の動きベクトルと前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにするために、前記ビデオデコーダは、前記第1の動きベクトルを予測するために前記第2の動きベクトルを使用することなしに前記第1の動きベクトルを復号し、前記第2の動きベクトルを予測するために前記第1の動きベクトルを使用することなしに前記第2の動きベクトルを復号するように構成される、
    デバイス。
  27. 前記ビデオデコーダは、前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別し、前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分を復号するように構成される、請求項26に記載のデバイス。
  28. 前記ビデオデコーダは、前記第2のピクチャのブロックについての動きベクトルの復号の間に前記第1のピクチャを識別するように構成され、前記ビデオデコーダは、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルを復号するように構成される、請求項27に記載のデバイス。
  29. 前記ビデオデコーダは、前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにし、前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングするように構成される、請求項26に記載のデバイス。
  30. 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、請求項26に記載のデバイス。
  31. 前記ビデオデコーダは、前記ビデオデータの前記第1のピクチャが長期参照ピクチャを備えるかどうかを示す値を復号するように構成され、前記第1のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第1のピクチャがビュー間予測に使用されるかどうかを示す、請求項26に記載のデバイス。
  32. 前記ビデオデコーダは、前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて、前記第2のピクチャを復号するようにさらに構成される、請求項26に記載のデバイス。
  33. 前記ビデオデコーダは、
    前記第1のピクチャを含む、前記第2のピクチャについてのすべてのビュー間参照ピクチャを、前記第2のピクチャを復号する前に、長期参照ピクチャとしてマークし、
    前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前の、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え、
    前記第2のピクチャを復号した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定する、
    ように構成される、請求項32に記載のデバイス。
  34. 前記ビデオデコーダは、
    前記第1のピクチャを含む、前記第2のピクチャについての各ビュー間参照ピクチャを、前記第2のピクチャを復号した後に、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つとしてマークし、
    ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなPOC値を、前記ビュー間参照ピクチャの各々に割り当て、
    前記第2のピクチャを復号した後、前記ビュー間参照ピクチャについての元のPOC値をリストアするようにさらに構成される、請求項32に記載のデバイス。
  35. 集積回路と、
    マイクロプロセッサと、
    前記ビデオデコーダを含むワイヤレス通信デバイスと、
    のうちの少なくとも1つを備える、請求項26に記載のデバイス。
  36. ビデオデータを符号化するためのデバイスであって、
    ビデオデータを記憶するように構成されたメモリと、
    ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を参照する第2のピクチャのデータを符号化し、
    前記第1のピクチャについて第2次元ピクチャ識別子を参照する前記第2のピクチャのデータを符号化し、
    ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて前記第2のピクチャを符号化し、
    前記第2のピクチャの第1のブロックの第1の動きベクトルが短期参照ピクチャを参照すると決定し、
    前記第2のピクチャの第2のブロックの第2の動きベクトルが長期参照ピクチャを参照すると決定し、
    前記第1の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第2の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルと前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにする
    ように構成されたビデオエンコーダと、
    を備え、ここで、前記第1のブロックおよび前記第2のブロックは、前記第2のピクチャにおいて空間的に隣接するブロックであり、前記第1の動きベクトルと前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにするために、前記ビデオエンコーダは、前記第1の動きベクトルを予測するために前記第2の動きベクトルを使用することなしに前記第1の動きベクトルを符号化し、前記第2の動きベクトルを予測するために前記第1の動きベクトルを使用することなしに前記第2の動きベクトルを符号化するように構成される、
    デバイス。
  37. 前記ビデオエンコーダは、前記POC値と前記第2次元ピクチャ識別子とを使用して前記第1のピクチャを識別し、前記第1のピクチャに対して前記第2のピクチャの少なくとも一部分を符号化するように構成される、請求項36に記載のデバイス。
  38. 前記ビデオエンコーダは、前記第2のピクチャのブロックについての動きベクトルの符号化の間に前記第1のピクチャを識別するように構成され、前記ビデオエンコーダは、発展型動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、およびマージモードのうちの少なくとも1つに従って前記動きベクトルを符号化するように構成される、請求項37に記載のデバイス。
  39. 前記ビデオエンコーダは、前記第2のピクチャの第1の短期動きベクトルと前記第2のピクチャの第2の短期動きベクトルとの間の予測をイネーブルにし、前記第1の短期動きベクトルによって参照される第1の短期参照ピクチャについてのPOC値と、前記第2の短期動きベクトルによって参照される第2の短期参照ピクチャについてのPOC値とに基づいて、前記第1の短期動きベクトルと前記第2の短期動きベクトルとのうちの少なくとも1つをスケーリングするように構成される、請求項36に記載のデバイス。
  40. 前記第2次元ピクチャ識別子は、前記第1のピクチャを含むビューのビュー識別子、前記第1のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第1のピクチャを含むスケーラブルビデオコーディング(SVC)レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも1つを備える、請求項36に記載のデバイス。
  41. 前記ビデオエンコーダは、前記ビデオデータの前記第1のピクチャが長期参照ピクチャを備えるかどうかを示す値を符号化するように構成され、ここで、前記第1のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第1のピクチャがビュー間予測に使用されるかどうかを示す、請求項36に記載のデバイス。
  42. 前記ビデオエンコーダはさらに、前記ベースビデオコーディング仕様への拡張に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて、第2のピクチャを符号化するように構成される、請求項36に記載のデバイス。
  43. 前記ビデオエンコーダは、
    前記第2のピクチャを符号化する前に、前記第1のピクチャを含む前記第2のピクチャについてのすべてのビュー間参照ピクチャを長期参照ピクチャとしてマークし、
    前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前の、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つを備え、
    前記第2のピクチャを符号化した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々について新たな状態を設定するように構成される、請求項42に記載のデバイス。
  44. 前記ビデオエンコーダはさらに、
    前記第1のピクチャを含む前記第2のピクチャについての各ビュー間参照ピクチャを、前記第2のピクチャを符号化した後に、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの1つとしてマークし、
    ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなPOC値を前記ビュー間参照ピクチャの各々に割り当て、
    前記第2のピクチャを符号化した後、前記ビュー間参照ピクチャについての元のPOC値をリストアするように構成される、請求項42に記載のデバイス。
  45. ビデオデータを符号化するためのデバイスであって、
    ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を参照する第2のピクチャのデータを符号化する手段と、
    前記第1のピクチャについて第2次元ピクチャ識別子を参照する前記第2のピクチャのデータを符号化する手段と
    ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて前記第2のピクチャを符号化する手段と、
    前記第2のピクチャの第1のブロックの第1の動きベクトルが短期参照ピクチャを参照すると決定する手段と、
    前記第2のピクチャの第2のブロックの第2の動きベクトルが長期参照ピクチャを参照すると決定する手段と、
    前記第1の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第2の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルと前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにする手段と、
    を備え、ここで、前記第1のブロックおよび前記第2のブロックは、前記第2のピクチャにおいて空間的に隣接するブロックであり、前記第1の動きベクトルと前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにする前記手段は、前記第1の動きベクトルを予測するために前記第2の動きベクトルを使用することなしに前記第1の動きベクトルを符号化する手段と、前記第2の動きベクトルを予測するために前記第1の動きベクトルを使用することなしに前記第2の動きベクトルを符号化する手と、を備える、
    デバイス。
  46. 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
    ビデオデータの第1のピクチャについてピクチャ順序カウント(POC)値を参照する第2のピクチャのデータを復号することと、
    前記第1のピクチャについて第2次元ピクチャ識別子を参照する前記第2のピクチャのデータを復号することと、
    ベースビデオコーディング仕様に従って、前記第1のピクチャの前記POC値と前記第2次元ピクチャ識別子とに少なくとも一部基づいて前記第2のピクチャを復号することと、
    前記第2のピクチャの第1のブロックの第1の動きベクトルが短期参照ピクチャを参照すると決定することと、
    前記第2のピクチャの第2のブロックの第2の動きベクトルが長期参照ピクチャを参照すると決定することと、
    前記第1の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第2の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルと前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることと、
    を行わせ、ここで、前記第1のブロックおよび前記第2のブロックは、前記第2のピクチャにおいて空間的な隣接するブロックであり、
    前記プロセッサに、前記第1の動きベクトルと前記第2の動きベクトルとの間の動きベクトル予測をディセーブルにすることを行わせる前記命令は、前記プロセッサに、前記第1の動きベクトルを予測するために前記第2の動きベクトルを使用することなしに前記第1の動きベクトルを復号することと、前記第2の動きベクトルを予測するために前記第1の動きベクトルを使用することなしに前記第2の動きベクトルを復号することとを行わせる命令を備える、
    ンピュータ可読記憶媒体。
  47. 前記第2のピクチャの前記第1のブロックの前記第1の動きベクトルが前記短期参照ピクチャを参照すると決定することは、前記第1の動きベクトルが、短期参照に使用されるとマークされた第1の参照ピクチャを参照すると決定することを備え、
    前記第2のピクチャの前記第2のブロックの前記第2の動きベクトルが前記長期参照ピクチャを参照すると決定することは、前記第2の動きベクトルが、長期参照に使用されるとマークされた第2の参照ピクチャを参照すると決定することを備える、
    請求項1に記載の方法。
JP2015500629A 2012-03-16 2013-03-14 高効率ビデオコーディングのためのハイレベルシンタックスの拡張 Active JP6258288B2 (ja)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201261611959P 2012-03-16 2012-03-16
US61/611,959 2012-03-16
US201261624990P 2012-04-16 2012-04-16
US61/624,990 2012-04-16
US201261658344P 2012-06-11 2012-06-11
US61/658,344 2012-06-11
US201261663484P 2012-06-22 2012-06-22
US61/663,484 2012-06-22
US201261746476P 2012-12-27 2012-12-27
US61/746,476 2012-12-27
US13/801,731 2013-03-13
US13/801,731 US10200709B2 (en) 2012-03-16 2013-03-13 High-level syntax extensions for high efficiency video coding
PCT/US2013/031573 WO2013138639A1 (en) 2012-03-16 2013-03-14 High-level syntax extensions for high efficiency video coding

Publications (3)

Publication Number Publication Date
JP2015511090A JP2015511090A (ja) 2015-04-13
JP2015511090A5 JP2015511090A5 (ja) 2016-04-07
JP6258288B2 true JP6258288B2 (ja) 2018-01-17

Family

ID=49157622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015500629A Active JP6258288B2 (ja) 2012-03-16 2013-03-14 高効率ビデオコーディングのためのハイレベルシンタックスの拡張

Country Status (17)

Country Link
US (1) US10200709B2 (ja)
EP (1) EP2826248B1 (ja)
JP (1) JP6258288B2 (ja)
KR (1) KR102156947B1 (ja)
CN (1) CN104322070B (ja)
AU (1) AU2013231961B2 (ja)
CA (1) CA2865949C (ja)
DK (1) DK2826248T3 (ja)
ES (1) ES2900751T3 (ja)
HK (1) HK1202745A1 (ja)
HU (1) HUE056925T2 (ja)
IL (1) IL234160B (ja)
PH (1) PH12014502012B1 (ja)
RU (1) RU2636692C2 (ja)
SG (2) SG11201405073QA (ja)
WO (1) WO2013138639A1 (ja)
ZA (1) ZA201407492B (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
JP5747559B2 (ja) * 2011-03-01 2015-07-15 富士通株式会社 動画像復号方法、動画像符号化方法、動画像復号装置、及び動画像復号プログラム
US9247249B2 (en) 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
GB2559226B (en) * 2011-09-09 2018-11-28 Kt Corp Method for deriving a temporal predictive motion vector
MX353235B (es) * 2011-09-29 2018-01-08 Sharp Kk Star Dispositivo de decodificación de imágenes, método de decodificación de imágenes y dispositivo de codificación de imágenes.
CN107835414B (zh) 2011-10-18 2020-11-06 株式会社Kt 视频信号解码方法
RU2566973C2 (ru) * 2011-11-08 2015-10-27 Самсунг Электроникс Ко., Лтд. Способ и устройство для определения вектора движения в кодировании или декодировании видео
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10200709B2 (en) 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding
CN104521236B (zh) * 2012-07-27 2017-10-20 寰发股份有限公司 三维视频编码或解码方法
US9860558B2 (en) * 2012-09-28 2018-01-02 Intel Corporation Inter-layer intra mode prediction
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
KR20140087971A (ko) 2012-12-26 2014-07-09 한국전자통신연구원 계층적 비디오 부호화에서 다중참조계층을 적용한 화면간 부/복호화 방법 및 그 장치
US10194146B2 (en) 2013-03-26 2019-01-29 Qualcomm Incorporated Device and method for scalable coding of video information
KR102177831B1 (ko) * 2013-04-05 2020-11-11 삼성전자주식회사 멀티 레이어 비디오의 복호화 방법 및 장치, 멀티 레이어 비디오의 부호화 방법 및 장치
KR20140122835A (ko) * 2013-04-11 2014-10-21 삼성전자주식회사 프로세스 병렬 처리 장치 및 방법
JP5789004B2 (ja) * 2013-08-09 2015-10-07 ソニー株式会社 送信装置、送信方法、受信装置、受信方法、符号化装置および符号化方法
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
US9716884B2 (en) * 2014-03-20 2017-07-25 Hfi Innovation Inc. Method of signaling for mode selection in 3D and multi-view video coding
CN104935921B (zh) * 2014-03-20 2018-02-23 寰发股份有限公司 发送从模式组中选择的一个或多个编码模式的方法和设备
US10158867B2 (en) 2014-06-20 2018-12-18 Qualcomm Incorporated Picture order count reset for multi-layer codecs
KR102658290B1 (ko) * 2015-06-08 2024-04-16 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 인트라 블록 카피 모드
WO2017069505A1 (ko) * 2015-10-19 2017-04-27 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
US11595652B2 (en) 2019-01-28 2023-02-28 Op Solutions, Llc Explicit signaling of extended long term reference picture retention
US9984314B2 (en) * 2016-05-06 2018-05-29 Microsoft Technology Licensing, Llc Dynamic classifier selection based on class skew
CN109089119B (zh) 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
US20190141320A1 (en) * 2017-11-07 2019-05-09 Qualcomm Incorporated Enhanced reference picture management in video coding
US11991394B2 (en) 2018-06-07 2024-05-21 Interdigital Vc Holdings, Inc. Syntax elements for video encoding or decoding
TWI719525B (zh) * 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 Lut與amvp之間的交互
EP3794825A1 (en) 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Update of look up table: fifo, constrained fifo
WO2020003282A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Managing motion vector predictors for video coding
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN114900694A (zh) 2018-06-29 2022-08-12 抖音视界(北京)有限公司 哪个查找表需要更新或不更新
EP4322533A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
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
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
TWI748202B (zh) 2018-07-02 2021-12-01 大陸商北京字節跳動網絡技術有限公司 Lamvr中取整和修剪的順序
CN111064961B (zh) 2018-09-12 2023-06-09 北京字节跳动网络技术有限公司 视频处理方法和装置
CN111010571B (zh) 2018-10-08 2023-05-16 北京字节跳动网络技术有限公司 组合仿射Merge候选的生成和使用
US11128866B2 (en) * 2018-10-18 2021-09-21 Qualcomm Incorporated Scans and last coefficient position coding for zero-out transforms
WO2020093999A1 (en) 2018-11-05 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
GB2580084B (en) 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
CN113196771B (zh) 2018-12-21 2023-12-22 北京字节跳动网络技术有限公司 基于运动矢量精度的运动矢量范围
WO2020138958A1 (ko) * 2018-12-27 2020-07-02 에스케이텔레콤 주식회사 양방향 예측 방법 및 영상 복호화 장치
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 北京字节跳动网络技术有限公司 运动候选推导
EP3918801A4 (en) * 2019-01-28 2022-06-15 OP Solutions, LLC ONLINE AND OFFLINE CHOICE OF EXTENDED LONG-TERM REFERENCE IMAGE STORAGE
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
KR102662616B1 (ko) 2019-05-21 2024-04-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드를 위한 적응적 모션 벡터 차이 해상도
KR20240005165A (ko) 2019-06-14 2024-01-11 엘지전자 주식회사 움직임 벡터 차분들을 이용한 영상 코딩 방법 및 장치
WO2021018031A1 (en) * 2019-07-27 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Restrictions of usage of tools according to reference picture types
CN113596456B (zh) * 2019-09-23 2022-07-01 杭州海康威视数字技术股份有限公司 编解码方法、装置及设备
WO2021073630A1 (en) 2019-10-18 2021-04-22 Beijing Bytedance Network Technology Co., Ltd. Syntax constraints in parameter set signaling of subpictures
EP4115605A4 (en) * 2020-03-30 2023-11-15 ByteDance Inc. CONSTRAINTS ON COLLOCATED IMAGES IN VIDEO CODING
CN115668924A (zh) * 2020-05-21 2023-01-31 字节跳动有限公司 参考图片信息的约束

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1411729B1 (en) 2002-04-19 2016-03-23 Panasonic Intellectual Property Corporation of America Motion vector calculating method
JP2004023458A (ja) 2002-06-17 2004-01-22 Toshiba Corp 動画像符号化/復号化方法及び装置
US7023921B2 (en) 2002-08-06 2006-04-04 Motorola, Inc. Method and apparatus for determining block match quality
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
KR100584603B1 (ko) 2004-08-03 2006-05-30 학교법인 대양학원 다시점 영상의 다이렉트 모드 움직임 예측 방법 및 장치
US20070014346A1 (en) 2005-07-13 2007-01-18 Nokia Corporation Coding dependency indication in scalable video coding
WO2007011147A1 (en) 2005-07-18 2007-01-25 Electronics And Telecommunications Research Institute Apparatus of predictive coding/decoding using view-temporal reference picture buffers and method using the same
KR101227601B1 (ko) 2005-09-22 2013-01-29 삼성전자주식회사 시차 벡터 예측 방법, 그 방법을 이용하여 다시점 동영상을부호화 및 복호화하는 방법 및 장치
US8644386B2 (en) 2005-09-22 2014-02-04 Samsung Electronics Co., Ltd. Method of estimating disparity vector, and method and apparatus for encoding and decoding multi-view moving picture using the disparity vector estimation method
KR101276720B1 (ko) 2005-09-29 2013-06-19 삼성전자주식회사 카메라 파라미터를 이용하여 시차 벡터를 예측하는 방법,그 방법을 이용하여 다시점 영상을 부호화 및 복호화하는장치 및 이를 수행하기 위한 프로그램이 기록된 기록 매체
WO2007037645A1 (en) 2005-09-29 2007-04-05 Samsung Electronics Co., Ltd. Method of estimating disparity vector using camera parameters, apparatus for encoding and decoding multi-view picture using the disparity vectors estimation method, and computer-redadable recording medium storing a program for executing the method
ZA200805337B (en) 2006-01-09 2009-11-25 Thomson Licensing Method and apparatus for providing reduced resolution update mode for multiview video coding
EP1982517A4 (en) 2006-01-12 2010-06-16 Lg Electronics Inc MULTIVATE VIDEO PROCESSING
KR100966567B1 (ko) 2006-03-30 2010-06-29 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
ZA200900102B (en) 2006-07-06 2010-05-26 Thomson Licensing Method and apparatus for decoupling frame number and/or picture order count (poc) for multi-view video encoding and decoding
MX339121B (es) 2006-07-06 2016-05-12 Thomson Licensing Metodo y aparato para desacoplar el numero de cuadro y/o la cuenta del orden de imagen (poc) para la codificación y decodificación de video de múltiples vistas.
KR101370919B1 (ko) 2006-07-12 2014-03-11 엘지전자 주식회사 신호처리방법 및 장치
US8179969B2 (en) 2006-08-18 2012-05-15 Gwangju Institute Of Science And Technology Method and apparatus for encoding or decoding frames of different views in multiview video using global disparity
CN102780883B (zh) * 2006-10-13 2015-03-04 汤姆逊许可公司 用于包含多视点视频编码的参考图像管理的方法
ES2492923T3 (es) 2006-10-16 2014-09-10 Nokia Corporation Sistema y procedimiento para implementar una administración eficiente de memoria intermedia decodificada en codificación de video de vistas múltiples
KR20090085581A (ko) 2006-10-24 2009-08-07 톰슨 라이센싱 다중-뷰 비디오 코딩을 위한 화상 관리
BRPI0717639A2 (pt) 2006-10-30 2013-11-12 Nippon Telegraph & Telephone Método de geração de informações de referência preditas, métodos de codificação de decodificação de vídeo, aparelhos destinados aos mesmos, programas destinados aos mesmos, e mídias de armazenamento que armazenam os programas
JP5023739B2 (ja) 2007-02-28 2012-09-12 ソニー株式会社 画像情報符号化装置及び符号化方法
JP2010520697A (ja) 2007-03-02 2010-06-10 エルジー エレクトロニクス インコーポレイティド ビデオ信号のデコーディング/エンコーディング方法及び装置
US20080240242A1 (en) 2007-03-27 2008-10-02 Nokia Corporation Method and system for motion vector predictions
KR101946376B1 (ko) 2007-10-16 2019-02-11 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR101385884B1 (ko) 2008-01-30 2014-04-16 고려대학교 산학협력단 다시점 동영상의 부호화 및 복호화 방법 및 장치
ES2812473T3 (es) 2008-03-19 2021-03-17 Nokia Technologies Oy Vector de movimiento combinado y predicción de índice de referencia para la codificación de vídeo
EP2338281A4 (en) 2008-10-17 2012-08-15 Nokia Corp SHARING THE MOTION VECTOR IN 3D VIDEO CODING
KR101590511B1 (ko) 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US20100246683A1 (en) 2009-03-27 2010-09-30 Jennifer Lois Harmon Webb Error Resilience in Video Decoding
KR20110139304A (ko) 2009-04-22 2011-12-28 엘지전자 주식회사 다시점 영상의 참조 픽쳐 리스트 변경 방법
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
KR101768207B1 (ko) 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US20120189060A1 (en) 2011-01-20 2012-07-26 Industry-Academic Cooperation Foundation, Yonsei University Apparatus and method for encoding and decoding motion information and disparity information
US9749657B2 (en) 2011-01-21 2017-08-29 Sharp Kabushiki Kaisha Buffer compression for motion vector competition
KR20120095610A (ko) 2011-02-21 2012-08-29 삼성전자주식회사 다시점 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
JP5664762B2 (ja) 2011-03-17 2015-02-04 富士通株式会社 動画像復号方法、動画像符号化方法、動画像復号装置及び動画像復号プログラム
KR20120118780A (ko) 2011-04-19 2012-10-29 삼성전자주식회사 다시점 비디오의 움직임 벡터 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9247249B2 (en) 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
JP2013034171A (ja) 2011-06-30 2013-02-14 Sony Corp 画像処理装置および方法
US10567786B2 (en) 2011-08-19 2020-02-18 Telefonaktiebolaget Lm Ericsson (Publ) Motion vector processing
US20130229485A1 (en) 2011-08-30 2013-09-05 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10200709B2 (en) 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding

Also Published As

Publication number Publication date
EP2826248B1 (en) 2021-11-24
ES2900751T3 (es) 2022-03-18
CA2865949A1 (en) 2013-09-19
RU2636692C2 (ru) 2017-11-27
PH12014502012A1 (en) 2014-11-24
SG10201607529SA (en) 2016-10-28
US20130243081A1 (en) 2013-09-19
PH12014502012B1 (en) 2014-11-24
JP2015511090A (ja) 2015-04-13
AU2013231961A1 (en) 2014-09-25
CA2865949C (en) 2020-03-24
US10200709B2 (en) 2019-02-05
SG11201405073QA (en) 2014-10-30
AU2013231961B2 (en) 2017-07-13
KR20140140073A (ko) 2014-12-08
WO2013138639A1 (en) 2013-09-19
DK2826248T3 (da) 2021-12-20
HUE056925T2 (hu) 2022-03-28
CN104322070B (zh) 2017-12-08
CN104322070A (zh) 2015-01-28
IL234160B (en) 2019-09-26
KR102156947B1 (ko) 2020-09-16
EP2826248A1 (en) 2015-01-21
HK1202745A1 (en) 2015-10-02
RU2014141644A (ru) 2016-05-10
ZA201407492B (en) 2020-05-27

Similar Documents

Publication Publication Date Title
JP6258288B2 (ja) 高効率ビデオコーディングのためのハイレベルシンタックスの拡張
JP6585200B2 (ja) ビデオコード化における視差ベクトル予測
CN110431845B (zh) 约束通过解码器侧运动向量推导导出的运动向量信息
JP6215295B2 (ja) Hevcおよびその拡張における動きベクトルのコーディングおよび双予測
CN109891890B (zh) 用于解码视频数据的方法、编码视频数据的方法及相关设备
CN110741639B (zh) 视频译码中的运动信息传播
US9420286B2 (en) Temporal motion vector prediction in HEVC and its extensions
KR102264104B1 (ko) 백워드 뷰 합성 예측
US9674542B2 (en) Motion vector prediction for video coding
US9948950B2 (en) Disparity vector and/or advanced residual prediction for video coding
US9438926B2 (en) Constraints on neighboring block based disparity vector (NBDV) techniques for 3D video
JP2016529791A (ja) ビデオコーディングのための照明補償を処理すること
JP2016530848A (ja) 非対称動き分割を使用するビデオコーディング技法
JP2016536817A (ja) 3dビデオコーディング用の結合双予測マージング候補
JP2015515227A (ja) ビデオコーディングのためのビュー間予測のための視差ベクトル生成
JP2016525319A (ja) ビデオコード化における視差ベクトルを使用するブロック識別

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170509

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171206

R150 Certificate of patent or registration of utility model

Ref document number: 6258288

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250