本出願は概して、ビデオを符号化するおよび復号する装置,方法およびコンピュータプログラムに関する。
背景
本節では、特許請求の範囲で記載される本発明の背景や関連について説明する。本節の説明は、追求されうる概念を含むこともあり、必ずしも既に着想又は追求されてきたものだけを含むわけではない。したがって、本願中で特段の指摘がない限り、本節で記述される内容は、本願の明細書および特許請求の範囲に対する先行技術ではなく、本節で記述されていることのみをもって先行技術と認定してはならない。
多くのビデオ符号化規格では、シンタックス構造がレイヤ毎に構成され、レイヤの中には、枝分かれのない階層関係におけるシンタックス的な構造群の1つとして定義されるものもある。一般に、上位レイヤは下位レイヤを含むことができる。符号化レイヤは例えば、符号化ビデオシーケンス、ピクチャ、スライスおよびツリーブロックの各レイヤで構成されてもよい。ビデオ符号化規格によっては、パラメータセットの概念を導入している。パラメータセットの例は、全ピクチャやピクチャ群(GOP)、ピクチャサイズやディスプレイウィンドウ、採用されたオプション符号化モード、マクロブロック割当マップ等のシーケンスレベルデータを含んでもよい。パラメータセットの各例は、固有識別子を含んでもよい。各スライスヘッダはパラメータセット識別子に対する参照を含んでもよく、参照されたパラメータセットのパラメータ値はそのスライスを復号するときに使われてもよい。パラメータセットは、まれにしか変化しないピクチャやGOP、およびシーケンスやGOP、ピクチャの境界からのシーケンスレベルデータの伝送と復号の順序を分断するのに用いられてもよい。パラメータセットは、参照前に復号される限り、信頼性のある伝送プロトコルを用いて帯域外で伝送されることもある。パラメータセットは、帯域内で伝送される場合、従来のビデオ符号化方式よりもエラー耐性を高めるために複数回繰り返されることもある。パラメータセットは、セッションセットアップ時間に伝送されてもよい。しかし、主にブロードキャストシステム等の一部のシステムでは、パラメータセットの帯域外伝送は実現できないこともあり、パラメータセットNALユニットにおいて帯域内で運ばれる。
摘要
本発明の例示的実施形態によれば、パラメータセットを送受信し、パラメータセットに識別子を与え、識別子によってパラメータセットの有効性を決定できるようにする方法や装置、コンピュータプログラム製品が提供される。実施形態によっては、こうしたパラメータセットは適応パラメータセットである。実施形態によっては、1つ以上のパラメータセットの識別値は、そのパラメータセットが有効であるかを決定するのに用いられる。
本発明の種々の態様は、詳細な説明に提示されている。
本発明の第1の態様によれば、次の方法が提示される。この方法は、
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を含む。
本発明の第2の態様によれば、次の方法が提示される。この方法は、
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を前記第1のパラメータセットに付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を含む。
本発明の第3の態様によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置が提示される。前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサを用いて、前記装置に:
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させように構成される。
本発明の第4の態様によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置が提示される。前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサを用いて、前記装置に:
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を前記第1のパラメータセットに付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させように構成される。
本発明の第5の態様によれば、1つ以上の命令の1つ以上のシーケンスを含むコンピュータプログラム製品が提示される。前記1つ以上の命令の1つ以上のシーケンスは、1つ以上のプロセッサによって実行されると、装置に少なくとも次のこと:
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させる。
本発明の第6の態様によれば、1つ以上の命令の1つ以上のシーケンスを含むコンピュータプログラム製品が提示される。前記1つ以上の命令の1つ以上のシーケンスは、1つ以上のプロセッサによって実行されると、装置に少なくとも次のこと:
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させように構成される。
本発明の第7の態様によれば、次の装置が提示される。この装置は、
第1のパラメータセットを受取る手段と;
前記第1のパラメータセットの識別子を取得する手段と;
第2のパラメータセットを受取る手段と;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定する手段と;
を備える。
本発明の第8の態様によれば、次の装置が提示される。この装置は、
第1のパラメータセットを符号化する手段と;
前記第1のパラメータセットの識別子を付与する手段と;
第2のパラメータセットを符号化する手段と;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定する手段と;
を備える。
本発明の第9の態様によれば、次のビデオデコーダが提示される。このビデオデコーダは、
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行するように構成される。
本発明の第10の態様によれば、次のビデオエンコーダが提示される。このビデオエンコーダは、
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を前記第1のパラメータセットに付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行するように構成される。
本発明の例示的実施形態をより詳細に理解するために、次の添付図面と合わせて以下の説明を参照されたい。
本発明の実施形態を採用する電子デバイスを概略的に示す。
本発明の実施形態に適したユーザ装置を概略的に示す。
本発明の実施形態を採用し、無線および有線ネットワーク接続を用いて接続される複数の電子デバイスも概略的に示す。
エンコーダ内に組込まれる本発明の実施形態を概略的に示す。
本発明の実施形態に従うインター予測器の実施形態を概略的に示す。
DIBRベースの3DVシステムの簡易モデルを示す。
立体カメラセットアップの簡易2次元モデルを示す。
アクセスユニットの定義および符号化順序の実施例を示す。
テクスチャビューおよび深度ビューを符号化できるエンコーダに関する実施形態の高水準フローチャートを示す。
テクスチャビューおよび深度ビューを復号できるデコーダに関する実施形態の高水準フローチャートを示す。
実施形態の詳細な説明
本発明の複数の実施形態を、ビデオ符号化構成を背景にして以下で説明する。ただし、本発明はこうした特定の構成に限定されるものではないことに留意されたい。実際に、リファレンスピクチャの取扱いの改良が要求される環境下において、様々な実施形態を幅広く適用できる。例えば、本発明はストリーミングシステム等のビデオ符号化システムやDVDプレーヤー、デジタルテレビ受像機、パーソナルビデオレコーダーやシステム、パーソナルコンピュータや携帯コンピュータ、通信デバイスで実行されるコンピュータプログラムに対して適用可能でもよい。さらに、ビデオデータを取扱うトランスコーダやクラウドコンピューティング構成などのネットワーク要素に対して適用可能でもよい。
H.264/AVC規格は、ITU-T(国際電気通信連合の電気通信標準化部門)のビデオ符号化専門家グループ(VCEG)およびISO(国際標準化機構)/IEC(国際電気標準会議)の動画専門家グループ(MPEG)による統合ビデオチーム(JVT)によって開発された。H.264/AVC規格はその元となる両標準化機構によって公開されており、ITU-T勧告H.264およびISO/IEC国際規格14496-10と呼ばれる。ISO/IEC14496-10はMPEG-4パート10アドバンスドビデオ符号化(Advanced Video Coding;AVC)として知られている。H.264/AVC規格には複数のバージョンがあり、それぞれが規格に新たな拡張や仕様を統合している。こうした拡張には、スケーラブルビデオ符号化(Scalable Video Coding;SVC)とマルチビュービデオ符号化(Multiview Video Coding;MVC)が含まれる。
また現在では、VCEGとMPEGの共同研究開発チーム(JCT-VC)によって高効率ビデオ符号化(High Efficiency Video Coding;HEVC)の標準化プロジェクトが進められている。
本節では、H.264/AVCおよびHEVCの重要な定義やビットストリーム、符号化構造、概念の一部が、ビデオのエンコーダやデコーダ、符号化方法、復号方法、ビットストリーム構造の例として説明される。本発明の実施形態はこうした例に実装されてもよい。H.264/AVCの重要な定義やビットストリーム、符号化構造、概念の中には、HEVCドラフト規格にあるものと同一のものもある。したがって、以下ではこれらも一緒に説明される。本発明の態様はH.264/AVCやHEVCに限定されるものではない。本明細書は、本発明の一部または全部が実現される上での可能な原理を説明するためのものである。
数ある従来のビデオ符号化規格と同様にH.264/AVCとHEVCでも、エラーの無いビットストリームの復号処理だけでなくビットストリームの構文と意味についても規定されている。符号化処理は規定されていないが、エンコーダは必ずビットストリームの確認を行わなくてはならない。ビットストリームとデコーダの適合性は、仮想リファレンスデコーダ(Hypothetical Reference Decoder;HRD)を用いて検証できる。標準規格は伝送エラーや伝送損失対策を助ける符号化ツールを含む。しかし、こうしたツールを符号化で使用するのは任意選択であって、誤ったビットストリームに対する復号処理は何も規定されていない。
H.264/AVCまたはHEVCのエンコーダへの入力およびH.264/AVCまたはHEVCのデコーダからの出力のための基本単位はそれぞれピクチャである。H.264/AVCおよびHEVCでは、ピクチャはフレームまたはフィールドの何れかでもよい。フレームは輝度(luma)サンプルと対応する色差(chroma)サンプルの行列を含む。フィールドはフレームの代替サンプル行の組であり、ソース信号がインターレースである場合、エンコーダ入力として用いられてもよい。色差ピクチャは、輝度ピクチャと比較されるときにサブサンプリングされてもよい。例えば4:2:0サンプリングパターンでは、色差ピクチャの空間解像度は両座標軸で輝度ピクチャの半分である。
H.264/AVCでは、16×16ブロックの輝度サンプルと対応する色差サンプルのブロックがマクロブロックである。例えば4:2:0サンプリングパターンでは、マクロブロックは各色差成分で8×8ブロックの色差サンプルを含む。H.264/AVCでは、ピクチャは1つ以上のスライスグループに分割され、スライスグループは1つ以上のスライスを含む。H.264/AVCでは、スライスは整数のマクロブロックから成り、特定のスライスグループ内でラスタースキャンの順で連続している。
HEVCドラフト規格では、ビデオピクチャは、ピクチャ領域を覆う複数の符号化単位(CU)に分割される。CUは1つ以上の予測単位(PU)と1つ以上の変換単位(TU)から成る。PUはCU内のサンプルに対する予測処理を規定し、TUはCUのサンプルに対する予測誤差の符号化処理を規定する。通常CUは、正方形のサンプルブロックから成り、既定されている可能なCUサイズのセットから選択可能なサイズを持つ。最大許容サイズのCUは通常、LCU(最大符号化単位)と呼ばれ、ビデオピクチャは重なり合わないLCUに分割される。LCUは、例えば、LCUと分割の結果得られるCUを再帰的に分割することによって更に小さいCUの組合せに分割されることもある。分割の結果得られる各CUは通常、少なくとも1つのPUとそれに関連する少なくとも1つのTUを有する。PUとTUはそれぞれ、予測処理と予測誤差符号化処理の粒度を上げるために、更に小さい複数のPUとTUに分割されることもある。PU分割は、CUを同じサイズの4つの正方形PUに分割することで行われてもよい。あるいは、対称的または非対称的方法でCUを縦または横で2つの長方形PUに分割することで行われてもよい。ピクチャをCUに分割し、CUをPUとTUに分割することは通常、デコーダがこうした単位から目的の構造を再生できるようにビットストリーム信号で伝えられる。
HEVCドラフト規格では、ピクチャはタイルに分割される。タイルは長方形で、整数のLCUを含む。HEVCドラフト規格では、タイル分割(パーティショニング)は規則的なグリッドを形成し、タイルの高さと幅は最大のLCUによって互いに異なる。HEVCドラフトでは、スライスは整数のCUから成る。CUは、タイル内、またはタイルが使われない場合はピクチャ内でLCUのラスタースキャン順にスキャンされる。LCU内では、CUは特定のスキャン順序を持つ。
HEVCのワーキングドラフト(WD)5では、ピクチャのパーティショニングに関する主要既定と概念が次のように定義されている。パーティショニングとは、1つのセットの各要素が正確にサブセットの1つであるように、そのセットを複数のサブセットに分割することとして定義される。
HEVC WD5の基本符号化単位はツリーブロックである。ピクチャのツリーブロックは、N×Nブロックの輝度サンプルと対応する2ブロックの色差サンプルという3つのサンプル配列持つ。あるいは、モノクロピクチャや3つの別々の色平面を用いて符号化されるピクチャに関するN×Nブロックのサンプルである。ツリーブロックは、別々の符号化および復号処理用に分割されてもよい。ツリーブロック分割(パーティショニング)は、ピクチャのツリーブロック分割によって得られる1ブロックの輝度サンプルと対応する2ブロックの色差サンプルという3つのサンプル配列持つ。あるいは、モノクロピクチャや3つの別々の色平面を用いて符号化されるピクチャのツリーブロック分割によって得られるに関する1ブロックの輝度サンプルである。各ツリーブロックには、イントラまたはインター予測符号化用のブロックサイズと変換符号化用ブロックサイズを識別するパーティション信号が割当てられる。パーティショニングは再帰的4分木パーティショニングである。4分木の根はツリーブロックに関連付けられる。4分木は、符号化ノードとも呼ばれる葉ノードに到達するまで分割される。符号化ノードは、予測ツリーと変換ツリーの2つのツリーの根ノードである。予測ツリーは予測ブロックの位置とサイズを特定する。予測ツリーと関連する予測データは予測単位と呼ばれる。変換ツリーは変換ブロックの位置とサイズを特定する。変換ツリーと関連する変換データは変換単位と呼ばれる。輝度および色差の分割情報は予測ツリーでは同一であるが、変換ツリーでは同一でも異なっていてもどちらでもよい。符号化ノードと関連する予測単位・変換単位は合わせて符号化単位を形成する。
HEVC WD5では、ピクチャはスライスとタイルに分割される。スライスはツリーブロックのシーケンスでもよいが、(いわゆる高精細スライスと呼ばれる場合は)ツリーブロック内の変換単位と予測単位が一致する場所に境界があってもよい。スライス内のツリーブロックは、ラスタースキャン順序で符号化され復号される。最初の符号化ピクチャに対して、各ピクチャをスライスに分割することがパーティショニングである。
HEVC WD5では、タイルは、1つの列または行に存在する整数のツリーブロックとして定義され、このツリーブロックはタイル内でラスタースキャン順に連続している。最初の符号化ピクチャに対して、各ピクチャをタイルに分割することもパーティショニングである。タイルはピクチャ内でラスタースキャン順に連続している。スライスはそこでラスタースキャン順に連続するツリーブロックを含むが、こうしたツリーブロックがピクチャ内でラスタースキャン順に連続している必要はない。また、スライスとタイルは同一のツリーブロック列を含む必要はない。タイルは複数のスライスに含まれるツリーブロックを含んでもよい。同様に、1つのスライスが複数のスライスに含まれるツリーブロックを含んでもよい。
H.264/AVCおよびHEVCでは、ピクチャ内でスライス境界を跨ぐ予測が無効でもよい。したがって、スライスは符号化ピクチャを独立して復号される部分に分割する方法だと考えられることもあり、それ故しばしば、伝送の基本単位と見做される。多くの場合、エンコーダは、ピクチャ内予測のどの種類がスライス境界を跨ぐ際に止められているかをビットストリームで示してもよい。この情報は、デコーダの動作によって、どの予測ソースが利用可能であるかを決定する際などで考慮される。例えば、隣接するマクロブロックやCUが別のスライスに存在する場合、その隣接するマクロブロックやCUからのサンプルはイントラ予測には利用できないと見做されてもよい。
シンタックス要素はビットストリームで表わされるデータの要素として定義される。シンタックス構造は、特定の順序のビットストリームで表わされる0以上のデータの要素として定義される。
H.264/AVCまたはHEVCのエンコーダからの出力およびH.264/AVCまたはHEVCのデコーダへの入力のための基本単位はそれぞれ、ネットワーク抽象化層(Network Abstraction Layer;NAL)ユニットである。パケット指向ネットワークでの伝送や構造化ファイルへの格納に対して、NALユニットはパケットや同様の構造にカプセル化されてもよい。H.264/AVCおよびHEVCでは、フレーム構造を提供しない伝送や格納の環境に対してバイトストリーム・フォーマットが特定されている。バイトストリーム・フォーマットは、各NALユニットの先頭に開始コードを付与することによってNALユニット同士を分離する。NALユニット境界の誤検出を防止するために、エンコーダはバイト指向開始コードエミュレーション防止アルゴリズムを実行する。これは、開始コードが別の形で生じた場合にNALユニットペイロードにエミュレーション防止バイトを追加する。パケット指向システムとストリーム指向システムとの間の直接的なゲートウェイ動作を可能とするために、バイトストリーム・フォーマットが使用されているか否かに関係なく常に開始コードエミュレーション防止が行われてもよい。NALユニットは、後続データの種類の標示を含むシンタックス構造と、RBSP(raw byte sequence payload)の形態で必要に応じてエミュレーション・プリベンション(emulation prevention)バイトと一緒に散在するデータを含む複数バイトとして定義されてもよい。RBSPは、NALユニットにカプセル化される整数値を含むシンタックス構造として定義されてもよい。RBSPは空であるか、RBSPストップビットおよび0に等しいシーケンスビット0個以上に続くシンタックス構造要素を含むデータビット列の形態を持つかの何れかである。
NALユニットはヘッダとペイロードから成る。H.264/AVCおよびHEVCでは、NALユニットヘッダはNALユニットの種類と、NALユニットに含まれる符号化スライスがリファレンスピクチャであるか非リファレンスピクチャであるかを示す。H.264/AVCは2ビットのシンタックス要素nal_ref_idcを含み、これが0のときはNALユニットに含まれる符号化スライスが非リファレンスピクチャの一部であることを示し、0を超えるときはNALユニットに含まれる符号化スライスがリファレンスピクチャの一部であることを示す。HEVCドラフト規格は1ビットのシンタックス要素nal_ref_idcを含み、nal_ref_flagとも呼ばれる。これが0のときはNALユニットに含まれる符号化スライスが非リファレンスピクチャの一部であることを示し、1のときはNALユニットに含まれる符号化スライスがリファレンスピクチャの一部であることを示す。SVCおよびMVCのNALユニットヘッダは、拡張性とマルチビュー階層の関連する様々な標示を追加で含んでもよい。HEVCでは、NALユニットヘッダはシンタックス要素temporal_idを含み、NALユニットに対する時間識別子を特定する。
NALユニットはビデオ符号化層(Video Coding Layer;VCL)NALユニットと非VCL-NALユニットに分類できる。VCL-NALユニットは通常、符号化スライスNALユニットである。H.264/AVCでは、符号化スライスNALユニットは1つ以上の符号化マクロブロックを表わすシンタックス要素を含み、それぞれが非圧縮ピクチャのサンプルブロックに対応する。HEVCでは、符号化スライスNALユニットは1つ以上のCUを表わすシンタックス要素を含む。H.264/AVCおよびHEVCでは、符号化スライスNALユニットは瞬時復号リフレッシュ(Instantaneous Decoding Refresh;IDR)ピクチャの符号化スライスまたは非IDRピクチャの符号化スライスであると示されることもある。HEVCでは、符号化スライスNALユニットはクリーン復号リフレッシュ(Clean Decoding Refresh;CDR)ピクチャ(クリーン・ランダムアクセス(Clean Random Access)ピクチャまたはCRAピクチャとも呼ばれる)の符号化スライスであると示されることもある。
非VCL-NALユニットは例えば、次のタイプの1つでもよい:シーケンスパラメータセット;ピクチャパラメータセット;補助強化情報(supplemental enhancement information;SEI)NALユニット;アクセスユニット区切り;シーケンスNALユニットの一部;ストリームNALユニットの一部;または補充データNALユニット。パラメータセットは復号ピクチャの再構成に必要であってもよいが、他の非VCL-NALユニットの多くは、復号サンプル値の再構成には必要ない。
符号化ビデオシーケンスで不変のパラメータがシーケンスパラメータセットに含まれてもよい。復号処理に必要なパラメータに加え、シーケンスパラメータセットがビデオユーザビリティ情報(video usability information;VUI)を含んでもよい。これは、バッファリングやピクチャ出力タイミング、レンダリング、リソース予約に重要なパラメータを含む。H.264/AVCでは、シーケンスパラメータセットを含む3つのNALユニットが規定されている。シーケンスパラメータセットNALユニットは、H.264/AVCのVCL-NALユニット用データ全てをシーケンスに含む。シーケンスパラメータセット拡張NALユニットは補助符号化ピクチャ用データを含む。サブセット・シーケンスパラメータセットNALユニットはMVCとSVCのVCL-NALユニット用である。ピクチャパラメータセットは、複数の符号化ピクチャで不変であるようなパラメータを含む。
HEVCドラフトでは、適応パラメータセット(Adaptation Parameter Set;APS)と呼ばれる第3のタイプのパラメータセットがある。これは、複数の符号化ピクチャで不変であるが、例えばピクチャ毎または幾つかのピクチャ毎では変化しうるようなパラメータを含む。HEVCドラフトでは、APSシンタックス構造は、量子化マトリクス(quantization matrix;QM)や適応サンプルオフセット(adaptive sample offset;SAO),適応ループフィルタリング(adaptive loop filtering;ALF),デブロッキング・フィルタリングに関連するパラメータまたはシンタックス要素を含む。HEVCドラフトでは、APSは他のNALユニットから参照または予測されずに符号化されるNALユニットである。シンタックス要素aps_idと呼ばれる識別子はAPS-NALユニットに含まれる。これはスライスヘッダにも含まれ、特定のAPSを表わすために用いられる。
H.264/AVCおよびHEVCのシンタックスは様々なパラメータインスタンスを許容し、各インスタンスは固有の識別子で識別される。パラメータセットに必要なメモリ使用量を制限するために、パラメータセット識別値域は制限されている。H.264/AVCおよびHEVCドラフト規格では、各スライスヘッダは、そのスライスを含むピクチャの復号に対してアクティブなピクチャパラメータセットの識別子を含む。各ピクチャパラメータセットは、アクティブなシーケンスパラメータセットの識別子を含む。HEVC規格では、スライスヘッダは追加的にAPS識別子を含む。その結果、ピクチャとシーケンスパラメータセットの伝送がスライスの伝送と正確に同期されている必要がない。実際に、アクティブシーケンスとピクチャパラメータセットはそれらが参照される前までに受取られていれば十分であり、スライスデータ用のプロトコルよりも高い信頼性のある伝送機構を使って「帯域外」でパラメータセットを伝送することが可能になる。例えば、パラメータセットはリアルタイム転送プロトコル(Real-time Transport Protocol;RTP)セッション用のセッション記述でのパラメータとして含まれてもよい。パラメータセットは、帯域内で伝送される場合、エラー耐性を高めるために繰り返されることもある。
SEI-NALユニットは1つ以上のSEIメッセージを含んでもよい。これらは出力ピクチャの復号には必要ないが、ピクチャ出力タイミングやエラー検出、エラー隠蔽、リソース予約などの関連処理を補助してもよい。複数のSEIメッセージがH.264/AVCおよびHEVCで規定され、ユーザデータのSEIメッセージによって組織や企業が独自に使用するSEIメッセージを規定できる。H.264/AVCおよびHEVCは、規定されたSEIメッセージのシンタックスと意味を含むが、受信側でメッセージを取扱う処理については何も定義されない。その結果、エンコーダはSEIメッセージを作成する際、H.264/AVC規格やHEVC規格に従い、デコーダもそれぞれH.264/AVC規格やHEVC規格に準拠する必要がある。しかし、SEIメッセージを出力規定に準じて処理する必要はない。H.264/AVCおよびHEVCでSEIメッセージのシンタックスと意味を含める理由の1つは、異なるシステム仕様でも補助情報を同じ様に解釈し相互運用を可能にすることである。システム仕様は符号化側と復号側の両方で特定のSEIメッセージを使用できるように要求するものであり、受信側で特定のSEIメッセージを取扱う処理も規定されてもよい。
符号化ピクチャはピクチャの符号化された表現である。H.264/AVCでの符号化ピクチャは、ピクチャの復号に必要なVCL-NALユニットを含む。H.264/AVCでは、符号化ピクチャはプライマリ符号化ピクチャまたは冗長符号化ピクチャである。プライマリ符号化ピクチャは有効なビットストリームの復号処理で使用される。一方、冗長符号化ピクチャは、プライマリ符号化ピクチャが正しく復号されない場合にだけ復号される冗長表現である。HEVCドラフトでは、冗長符号化ピクチャは規定されていない。
H.264/AVCおよびHEVCでは、アクセスユニットがプライマリ符号化ピクチャとそれに関連付けられるNALユニットを含む。H.264/AVCでは、アクセスユニット内でのNALユニットの出現順序が次の通りに制限されている。追加アクセスユニット区切りのNALユニットは、アクセスユニットの起点を示すことができる。この後に0以上のSEI-NALユニットが続く。プライマリ符号化ピクチャの符号化スライスが次に現われる。H.264/AVCでは、プライマリ符号化ピクチャの符号化スライスの後に0以上の冗長符号化ピクチャの符号化スライスが続いてもよい。冗長符号化ピクチャは、ピクチャまたはピクチャの一部の符号化された表現である。冗長符号化ピクチャは、伝送損失や物理記憶媒体でのデータ破損などによってデコーダがプライマリ符号化ピクチャを受取れない場合に復号されてもよい。
H.264/AVCでは、アクセスユニットは補助符号化ピクチャを含んでもよい。これは、プライマリ符号化ピクチャを補助/補完し、表示処理などで使用できるピクチャである。補助符号化ピクチャは例えば、復号ピクチャのサンプルの透過レベルを特定するアルファチャンネルやアルファ面として使用されてもよい。アルファチャンネルまたはアルファ面は、レイヤ成分やレンダリングシステムで使用されてもよい。出力ピクチャは、互いに表面で少なくとも一部が透過しているピクチャを重ね合わせることで作成される。補助符号化ピクチャは、モノクロ冗長符号化ピクチャとして同一のシンタックスと意味の制限がある。H.264/AVCでは、補助符号化ピクチャはプライマリ符号化ピクチャと同数のマクロブロックを含む。
符号化ビデオシーケンスは、連続するアクセスユニットのシーケンスとして定義される。このシーケンスは復号処理の順序であって、IDRアクセスユニットを含んでそこから、次のIDRアクセスユニットを含まずその直前かビットストリームの最後のうち先に出現するところまでの順序である。
ピクチャーグループ(GOP)とその特性は次の通りに定義されてもよい。GOPは、その前のピクチャが復号されたどうかに関係なく復号される。オープンGOPとは、復号処理がその最初のイントラピクチャから開始する場合に、出力順で最初のイントラピクチャより先のピクチャが正しく復号できない様なピクチャーグループである。換言すれば、オープンGOPのピクチャは、その前のGOPに属するピクチャを(インター予測で)参照してもよい。H.264/AVCデコーダは、H.264/AVCビットストリームでのリカバリポイントのSEIメッセージによって、オープンGOPの始めのイントラピクチャを認識できる。HEVCデコーダはオープンGOPの始めのイントラピクチャを認識できる。これは、符号化スライスに対して特別なNALユニットタイプであるCRA-NALユニットタイプが使用されるからである。クローズドGOPとは、復号処理がその最初のイントラピクチャから開始する場合に、全ピクチャが正しく復号される様なピクチャーグループである。換言すれば、クローズドGOPではその前のGOPに属するピクチャを参照するピクチャは存在しない。H.264/AVCおよびHEVCでは、クローズドGOPはIDRアクセスユニットから始まる。その結果、クローズドGOPの構造はオープンGOPの構造よりも高いエラー回復能力を持つ。しかし、圧縮効率を減らす可能性があるという代償を伴う。オープンGOPの符号化構造は、リファレンスピクチャの選択における高い柔軟性によって、より効率的な圧縮を可能にする。
H.264/AVCおよびHEVCのビットストリームシンタックスは、特定のピクチャが別のピクチャのイントラ予測のためのリファレンスピクチャであるかを示す。任意の符号化タイプ(I,P,B)のピクチャは、H.264/AVCおよびHEVCのリファレンスピクチャまたは非リファレンスピクチャであり得る。NALユニットヘッダはNALユニットの種類と、NALユニットに含まれる符号化スライスがリファレンスピクチャであるか非リファレンスピクチャであるかを示す。
H.264/AVCおよびHEVCを含む多くのハイブリッドビデオコーデックは、ビデオ情報を2段階で符号化する。第1段階では、特定のピクチャ領域または「ブロック」のピクセル値またはサンプル値が予測される。こうしたピクセル値またはサンプル値は、例えば動き補償機構によって予測できる。この機構には、符号化されるブロックに近くて対応する、先に符号化されたビデオフレームの1つにある領域の検索と標示が含まれる。加えて、ピクセル値またはサンプル値は、空間領域の関係性の検索と標示を含む空間機構によって予測されてもよい。
先に符号化された画像からの画像情報を用いた予測アプローチは、インター予測法とも呼ばれ、また、時間予測および動き補償とも呼ばれる。同一画像内の画像情報を用いた予測アプローチは、イントラ予測法とも呼ばれる。
第2段階は、ピクセルまたはサンプルの予測ブロックとそのピクセルまたはサンプルの元のブロックとの間の誤差の符号化の1つである。これは、特定の変換を用いてピクセル値またはサンプル値の差を変換することによって達成されてもよい。この変換は、離散コサイン変換(Discrete Cosine Transform;DCT)やその変形でもよい。差の変換後、変換された差は量子化されエントロピー符号化される。
量子化処理の忠実性を変えることによって、エンコーダはピクセルまたはサンプル表現の正確性(すなわち、ピクチャの視覚的品質)と結果として得られる符号化ビデオ表現のサイズ(すなわち、ファイルサイズや伝送ビットレート)との間のバランスを制御できる。
デコーダは、予測されたピクセルまたはサンプルのブロック表現を形成して予測誤差を復号するために、エンコーダが用いたのと同様の予測機構を適用することによって出力ビデオを再構成する(ここで、予測表現の形成は、エンコーダが作成し、画像の圧縮表現に格納された動き情報や空間情報を使用し、予測誤差の復号は、空間領域で量子化された予測誤差信号を回復する、予測誤差符号化の逆操作を使用して行われる)。
ピクセルまたはサンプルの予測および誤差復号処理の後、デコーダは、出力ビデオフレームを形成するために、予測信号と予測誤差信号(ピクセル値またはサンプル値)を合成する。
デコーダ(およびエンコーダ)は、出力ビデオをディスプレイに送る、および/またはビデオシーケンスにおける後続ピクチャ用の予測リファレンスとして格納する前に、出力ビデオの品質を向上するために追加のフィルタリング処理を適用してもよい。
H.264/AVCおよびHEVCを含む多くのビデオコーデックでは、動き情報は、動き補償された画像ブロックのそれぞれに関連する動きベクトルによって示される。こうした動きベクトルはそれぞれ、(エンコーダで)符号化されるピクチャまたは(デコーダで)復号されるピクチャの画像ブロックと、先に符号化または復号された画像(またはピクチャ)の1つにおける予測元ブロックとの間の移動量を表わす。H.264/AVCおよびHEVCは、その他多くのビデオ圧縮規格と同様にピクチャを長方形のメッシュに分割する。これらの長方形のそれぞれに対し、リファレンスピクチャの1つにある同じブロックがインター予測用に示される。予測ブロックの位置は、符号化されるブロックに対する予測ブロックの相対位置を示す動きベクトルとして符号化される。
インター予測処理は、次のファクタの1つ以上によって特徴付けられてもよい。
動きベクトル表現の正確さ。
例えば、動きベクトルは4分の1ピクセルの精度であって、分数ピクセルの位置でのサンプル値は、有限インパルス応答(finite impulse response;FIR)フィルタを用いて得られてもよい。
インター予測用のブロック分割(パーティショニング)。
H.264/AVCおよびHEVCを含む多くの符号化規格では、エンコーダでの動き補償予測用に適用される動きベクトルのためにブロックのサイズと形状を選択でき、エンコーダで行われた動き補償予測をデコーダが再構成できるように、選択されたサイズと形状をビットストリームで示すことができる。
インター予測用リファレンスピクチャの数。
インター予測の元データは、先に復号されたピクチャである。H.264/AVCおよびHEVCを含む多くの符号化規格では、インター予測用に複数のリファレンスピクチャを格納し、ブロックバイアスに応じて使用されるリファレンスピクチャを選択できる。例えば、リファレンスピクチャは、H.264/AVCでのマクロブロックまたはマクロブロックパターンのバイアスや、HEVCのPUまたはCUのバイアスに関して選択されてもよい。H.264/AVCおよびHEVCなどの多くの符号化規格は、デコーダが1つ以上のリファレンスピクチャ・リストを作成できるシンタックス構造をビットストリームに含む。リファレンスピクチャ・リストを示すリファレンスピクチャ・インデクスは、複数のリファレンスピクチャの中のどれが特定のブロックに対するインター予測用として使用されるかを示すのに使われてもよい。リファレンスピクチャ・インデクスは、エンコーダによって何らかのインター符号化法でビットストリームに符号化されてもよく、あるいは、他のインター符号化法によって、隣接ブロック等を使って(エンコーダおよびデコーダによって)引出されてもよい。
動きベクトル予測。
動きベクトルをビットストリームに効率よく表現するために、動きベクトルは、ブロック毎の予測動きベクトルに関して差動符号化されてもよい。多くのビデオコーデックでは、予測動きベクトルは所定の方法、例えば、隣接ブロックの符号化/復号動きベクトルの中央値を計算することによって生成される。動きベクトル予測を行う別の方法は、時間軸上のリファレンスピクチャにおける隣接ブロックおよび/または共存ブロックから予測候補のリストを作成し、選択された候補を動きベクトルの予測として信号で伝えるものである。動きベクトルの値の予測に加え、先に符号化/復号されたピクチャのリファレンスインデクスが予測されてもよい。リファレンスインデクスは通常、時間軸上のリファレンスピクチャにおける隣接ブロックおよび/または共存ブロックから予測される。動きベクトルの差動符号化は通常、スライス境界を跨ぐときは無効にされる。
多仮説動き補償予測。
H.264/AVCおよびHEVCでは、Pスライスで単一の予測ブロックを使用できる(このため、Pスライスは単予測スライスと呼ばれる)。また、Bスライスとも呼ばれる双予測スライスに対しては2つの動き補償予測ブロックの線形結合を使用できる。Bスライスの個別ブロックは双予測や単予測,イントラ予測されたものでもよく、Pスライスの個別ブロックは単予測またはイントラ予測されたものでもよい。双予測ピクチャ用のリファレンスピクチャは、出力順で後続ピクチャと先行ピクチャに限定しなくてもよく、任意のリファレンスピクチャが使用されてもよい。H.264/AVCおよびHEVCなどの多くの符号化規格では、リファレンスピクチャ・リスト0と呼ばれる特定のリファレンスピクチャ・リストがPスライス用に構成され、2つのリファレンスピクチャ・リストであるリスト0およびリスト1がBスライス用に構成される。Bスライスに関して、前方予測はリファレンスピクチャ・リスト0のリファレンスピクチャからの予測のことであり、後方予測はリファレンスピクチャ・リスト1のリファレンスピクチャからの予測のことである。ここで、予測用リファレンスピクチャは互いに、または現ピクチャに関連する復号処理や出力順序を持っていてもよい。
加重予測。
多くの符号化規格は、インター(P)ピクチャの予測ブロックに対して予測重み1、Bピクチャの各予測ブロックに対して予測重み0.5を(結果として平均するのに)用いる。H.264/AVCでは、PとBの両スライスで加重予測を行える。陰加重予測では、重みはピクチャ順序カウント(picture order count)に比例し、陽加重予測では、予測の重みは明示的に示される。
多くのビデオコーデックでは、動き補償後の予測残差は最初に(DCTのような)変換カーネルで変換され、次に符号化される。これは、通常残差間にも相関があり、こうした変換が多くの場合でこのような相関を小さくするのに役立ち、より高い効率での符号化を可能にするからである。
HEVCドラフトでは、各PUは、それぞれのPU内のピクセルに適用される予測の種類を定義する、それぞれのPUに関連した予測情報(例えば、インター予測されたPUに対しては動きベクトルの情報、イントラ予測されたPUに対してはイントラ予測の方向情報など)を持つ。同様に、各TUは、それぞれのTU内のサンプルに対する予測誤差復号処理を記述する情報(DCT係数情報なども含む)に関連付けられる。各CUに対して予測誤差符号化が適用されるか否かがCUレベルで伝達されてもよい。CUに関連する予測誤差の残差がない場合、そのCUに対するTUが存在しないと見做される。
符号化フォーマットやコーデックによっては、いわゆる短期リファレンスピクチャと長期リファレンスピクチャとが区別される。こうした区別は、時間ダイレクトモードや陰加重予測における動きベクトルのスケーリングとして一部の復号処理に影響を与えることもある。時間ダイレクトモードに使われるリファレンスピクチャが両方とも短期リファレンスピクチャである場合、予測で使われる動きベクトルは、現ピクチャと各リファレンスピクチャとの間のピクチャ順序カウント(POC)の差に応じてスケールされてもよい。しかし、時間ダイレクトモード用の少なくとも1つのリファレンスピクチャが長期リファレンスピクチャである場合、デフォルトの動きベクトルスケーリングが使用されてもよく、例えば、動きを半分にスケールしてもよい。同様に、陰加重予測で短期リファレンスピクチャが使われる場合、予測の重みは、現ピクチャのPOCとリファレンスピクチャのPOCのPOC差に応じてスケールされてもよい。しかし、陰加重予測で長期リファレンスピクチャが使われる場合、デフォルトの予測重みが使用されてもよく、双予測ブロックに対する陰加重予測では0.5などでもよい。
H.264/AVC等のビデオ符号化フォーマットでは、シンタックス要素frame_numを含み、複数のリファレンスピクチャに関連する様々な復号処理に使用される。H.264/AVCでは、IDRピクチャのframe_num値は0である。非IDRピクチャのframe_num値は0復号順で先のリファレンスピクチャのframe_numに1を加えた値に等しい(モジュロ(modulo)演算の場合、frame_num値は、その最大値の次が0に戻る(ラップアラウンドする))。
H.264/AVCおよびHEVCはピクチャ順序カウント(POC)の概念を含む。POC値は各ピクチャに与えられ、出力におけるピクチャの順番が増えても減ることはない。したがって、POCはピクチャの出力順序を示す。POCは復号処理で使用されてもよく、例えば、双予測スライスの時間ダイレクトモードでの動きベクトルの陰スケーリングや加重予測で陰に生成される重み,リファレンスピクチャ・リストの初期化などに使用される。また、POCは出力順序適合性の検証に使用されてもよい。H.264/AVCでは、POCは先のIDRピクチャや、全てのピクチャを「リファレンスに未使用」とマークするメモリ管理制御操作を含むピクチャに関連して特定される。
H.264/AVCは、デコーダでのメモリ消費を制御するために、復号リファレンスピクチャのマーキング処理を特定する。インター予測に用いるリファレンスピクチャの数の最大値はMで表わし、シーケンスパラメータセットで決定される。リファレンスピクチャは、復号されるときに「リファレンスに使用済」とマークされる。リファレンスピクチャの復号で「リファレンスに使用済」とマークされるピクチャの数がMを超える場合、少なくとも1つのピクチャは「リファレンスに未使用」とマークされる。復号リファレンスピクチャのマーキング動作には適応メモリ制御とスライディングウィンドウの2種類がある。復号リファレンスピクチャのマーキング動作モードはピクチャに基づいて選択される。適応メモリ制御は、どのピクチャが「リファレンスに未使用」とマークされているかを明示的に信号で伝えられ、短期リファレンスピクチャに長期インデクスを割当ててもよい。適応メモリ制御は、ビットストリームにメモリ管理制御操作(memory management control operation;MMCO)パラメータの存在を要求してもよい。MMCOパラメータは、復号リファレンスピクチャ・マーキングのシンタックス要素に含まれてもよい。スライディングウィンドウ動作モードが使われ、M枚のピクチャが「リファレンスに使用済」とマークされている場合、「リファレンスに使用済」とマークされている短期リファレンスピクチャの中で最初に復号された短期リファレンスピクチャは「リファレンスに未使用」とマークされる。換言すれば、スライディングウィンドウ動作モードは、短期リファレンスピクチャに関して先入れ先出し(first-in-first-out)バッファ動作となる。
H.264/AVCのメモリ管理制御操作によっては、現ピクチャ以外の全てのリファレンスピクチャを「リファレンスに未使用」とマークする。瞬時復号リフレッシュ(IDR)ピクチャはイントラ符号化スライスのみを含み、リファレンスピクチャに対する同一「リセット」を行う。
HEVCドラフト規格では、リファレンスピクチャ・マーキングのシンタックス構造と関連する復号処理は使用されない。その代わり、リファレンスピクチャセット(reference picture set;RPS)のシンタックス構造と復号処理が同じ目的で使用される。特定のピクチャに有効またはアクティブなリファレンスピクチャセットは、そのピクチャに対するリファレンスとして使われる全てのリファレンスピクチャと、復号順で後続の任意のピクチャに対して「リファレンスに使用済」とマークされたままである全てのリファレンスピクチャを含む。リファレンスピクチャセットには6つのサブセットがあり、それぞれRefPicSetStCurr0,RefPicSetStCurr1,RefPicSetStFoll0,RefPicSetStFoll1,RefPicSetLtCurr,およびRefPicSetLtFollと呼ばれる。この6つのサブセットの表記法は次の通りである。「Curr」は現ピクチャのリファレンスピクチャ・リストに含まれるリファレンスピクチャを表わす。このため、現ピクチャに対するインター予測リファレンスとして使用されてもよい。「Foll」は現ピクチャのリファレンスピクチャ・リストに含まれないリファレンスピクチャを表わす。ただし、復号順で後続のピクチャではリファレンスピクチャとして使用されてもよい。「St」は短期リファレンスピクチャを表わし、通常、POC値の特定数の最下位ビットで識別される。「Lt」は長期リファレンスピクチャを表わし、特定の方法で識別される。通常、現ピクチャに対するPOC値の差は、前述した特定数の最下位ビットによって表わされるものよりも大きい。「0」は現ピクチャのPOC値よりも小さいPOC値を持つリファレンスピクチャを表わす。「1」は現ピクチャのPOC値よりも大きいPOC値を持つリファレンスピクチャを表わす。RefPicSetStCurr0,RefPicSetStCurr1,RefPicSetStFoll0およびRefPicSetStFoll1はまとめて、リファレンスピクチャセットの短期サブセットと呼ばれる。RefPicSetLtCurrおよびRefPicSetLtFollはまとめて、リファレンスピクチャセットの長期サブセットと呼ばれる。
HEVCドラフト規格では、リファレンスピクチャセットは、シーケンスパラメータセットで特定され、リファレンスピクチャセットへのインデクスを介してスライスヘッダ用に取込まれてもよい。リファレンスピクチャセットはスライスヘッダで特定されてもよい。リファレンスピクチャセットの長期サブセットは通常スライスヘッダでのみ特定されるが、同じリファレンスピクチャセットの短期サブセットはピクチャパラメータセットで特定されてもよく、スライスヘッダで特定されてもよい。リファレンスピクチャセットは独立して符号化されてもよく、別のリファレンスピクチャセットから予測されてもよい(インターRPS予測と呼ばれる)。リファレンスピクチャセットが独立して符号化される場合、シンタックス構造はタイプの異なるリファレンスピクチャの繰り返しを3ループまで含める。こうしたリファレンスピクチャとは、現ピクチャより小さいPOC値を持つ短期リファレンスピクチャと現ピクチャより大きいPOC値を持つ短期リファレンスピクチャ、長期リファレンスピクチャである。各ループエントリは、「リファレンスに使用済」とマークされるピクチャを特定する。一般に、ピクチャは異なるPOC値で特定される。インターRPS予測は、現ピクチャのリファレンスピクチャセットが先に復号済みのピクチャのリファレンスピクチャセットから予測可能であるという事実を利用する。これは、現ピクチャの全てのリファレンスピクチャは、前のピクチャのリファレンスピクチャであるか、先に復号済みのピクチャそのものであるかの何れかであるからである。したがって、これらのピクチャの中のどれがリファレンスピクチャであり、現ピクチャの予測に用いられるかを示すことだけが必要となる。リファレンスピクチャセット符号化の両方の種類で、各リファレンスピクチャに対してフラグ(used_by_curr_pic_X_flag)が追加で送信される。このフラグは、そのリファレンスピクチャがリファレンスとして現ピクチャに用いられる(*Curr listに含まれる)か、そうでない(*Foll listに含まれる)か、を示す。現在のスライス(現スライス)が使うリファレンスピクチャセットに含まれるピクチャは「リファレンスに使用済」とマークされ、現スライスが使うリファレンスピクチャセットに含まれないピクチャは「リファレンスに未使用」とマークされる。現ピクチャがIDRピクチャである場合、RefPicSetStCurr0,RefPicSetStCurr1,RefPicSetStFoll0,RefPicSetStFoll1,RefPicSetLtCurr,およびRefPicSetLtFollは全て空に設定される。
復号ピクチャバッファ(Decoded Picture Buffer;DPB)はエンコーダおよび/またはデコーダで使用されてもよい。復号ピクチャをバッファする理由は2つある。一つはインター予測で参照するためで、もう一つは復号ピクチャを出力順に並べ直すためである。H.264/AVCおよびHEVCはリファレンスピクチャのマーキングと出力の並べ換えの両方で相当な柔軟性を与えるため、リファレンスピクチャのバッファリングと出力ピクチャのバッファリングで別々のバッファを使うことはメモリリソースを浪費する可能性がある。このためDPBは、リファレンスピクチャと出力並び替えのための統合された復号ピクチャバッファリング処理を備えてもよい。復号ピクチャは、リファレンスとして使用されず出力される必要がなくなると、DPBから削除されてもよい。
H.264/AVCおよびHEVC等の多くの符号化モードでは、インター予測用リファレンスピクチャはリファレンスピクチャ・リストへのインデクスで示される。このインデクスは可変長符号化で符号化されてもよい。可変長符号化によって多くの場合、インデクスを小さくして対応するシンタックス要素に対してより小さい値を持つことができる。H.264/AVCおよびHEVCでは、双予測(B)スライスにはそれぞれ2つのリファレンスピクチャ・リスト(リファレンスピクチャ・リスト0およびリファレンスピクチャ・リスト1)が作成され、インター予測(P)スライスにはそれぞれ1つのリファレンスピクチャ・リスト(リファレンスピクチャ・リスト0)が形成される。加えて、HEVCのBスライスでは、最終リファレンスピクチャ・リスト(リスト0およびリスト1)が作成された後に統合リスト(リストC)が作成される。統合リストはBスライス内での単予測(単方向予測とも呼ばれる)に用いられてもよい。
リファレンスピクチャ・リスト0およびリファレンスピクチャ・リスト1等のリファレンスピクチャ・リストは通常、2つのステップで作成される。第1ステップでは、初期リファレンスピクチャ・リストが作成される。初期リファレンスピクチャ・リストは例えば、frame_numやPOC,temporal_id,GOP構造などの予測階層に関する情報、またはこれらの組合せに基づいて作成されてもよい。第2ステップでは、リファレンスピクチャ・リスト並び替え(reference picture list reordering;RPLR)命令によって初期リファレンスピクチャ・リストが並び替えられてもよい。RPLR命令はリファレンスピクチャ・リスト変更シンタックス構造とも呼ばれ、スライスヘッダに含まれてもよい。RPLR命令は、各リファレンスピクチャ・リストの先頭に並べられるピクチャを示す。第2ステップはリファレンスピクチャ・リスト変更処理とも呼ばれ、RPLR命令がリファレンスピクチャ・リスト変更シンタックス構造に含まれてもよい。リファレンスピクチャセットが用いられる場合、リファレンスピクチャ・リスト0はRefPicSetStCurr0,RefPicSetStCurr1,RefPicSetLtCurrをこの順序で含むように初期化されてもよい。リファレンスピクチャ・リスト1はRefPicSetStCurr1,RefPicSetStCurr0をこの順序で含むように初期化されてもよい。初期リファレンスピクチャ・リストはリファレンスピクチャ・リスト変更シンタックス構造を通じて変更されてもよい。初期リファレンスピクチャ・リストのピクチャはリストに対するエントリインデクスを通じて識別されてもよい。
HEVCの統合リストは次のように作成されてもよい。統合リストの変更フラグがゼロである場合、統合リストは特定の暗黙的機構で作成される。そうでない場合、ビットストリームに含まれるリファレンスピクチャ統合命令によって作成される。この暗黙的機構では、リストCのリファレンスピクチャは、リスト0とリスト1からのリファレンスピクチャにマッピングされる。このマッピングは、リスト0の最初のエントリから始まってリスト1の最初のエントリが続くといったインターリーブ方式で行われる。既にリストCにマッピング済みのリファレンスピクチャが再度マッピングされることはない。明示的機構では、リストCのエントリ数が信号で伝えられ、次にリスト0またはリスト1のエントリからリストCのエントリへのマッピングが行われる。加えて、リスト0とリスト1が同一である場合は、エンコーダはref_pic_list_combination_flagを0に設定するオプションを備える。これは、リスト1からリファレンスピクチャがマッピングされておらず、リストCがリスト0と等価であることを示す。HEVCドラフトコーデック等の典型的な高効率ビデオコーデックでは追加的な動き情報符号化/復号機構を用い、通常、マージング処理/機構またはマージモード処理/機構と呼ばれる。これにより、ブロック/PUの全ての動き情報が予測され、変更/修正をせずに使用される。PUに対する前述の動き情報は次のものを含む:1)PUがリファレンスピクチャ・リスト0のみを用いて単予測されるか、PUがリファレンスピクチャ・リスト1のみを用いて単予測されるか、またはPUがリファレンスピクチャ・リスト0およびリファレンスピクチャ・リスト1の両方を用いて単予測されるかに関する情報;2)リファレンスピクチャ・リスト0に対応する動きベクトル値;3)リファレンスピクチャ・リスト0におけるリファレンスピクチャ・インデクス;4)リファレンスピクチャ・リスト1に対応する動きベクトル値;5)リファレンスピクチャ・リスト1におけるリファレンスピクチャ・インデクス。同様に、動き情報の予測は、時間軸上のリファレンスピクチャにおける隣接ブロックおよび/または共存ブロックの動き情報を用いて行われる。通常、利用可能な隣接/共存ブロックに関連する動き予測候補を含めることによってマージリストと呼ばれるリストが構成され、リスト中で選択された動き予測候補のインデクスが信号で伝えられる。こうして、選択された候補の動き情報は現PUの動き情報にコピーされる。CU全体でマージ機構が用いられ、CU用予測信号が再構成信号として使用される場合、すなわち、予測残差が処理されない場合、CUに対するこの種の符号化/復号は通常、スキップモードやマージベース・スキップモードと呼ばれる。各PUに対しては、スキップモードに加えてマージ機構も使用され、この場合、予測の質を向上させるために予測残差が利用されてもよい。この種の予測モードは通常、インターマージモードと呼ばれる。
復号リファレンスピクチャ・マーキング用シンタックス構造がビデオ符号化システムに存在してもよい。例えば、ピクチャの復号が完了したとき、復号リファレンスピクチャのマーキングシンタックス構造が存在する場合には、それが「リファレンスに未使用」または「長期リファレンスに使用済」としてピクチャを適応的にマークするのに用いられてもよい。復号リファレンスピクチャのマーキングシンタックス構造が存在せず、「リファレンスに使用済」とマークされたピクチャの数がそれ以上増えることがない場合、スライディングウィンドウのリファレンスピクチャ・マーキングが用いられてもよい。これは基本的には、(復号順で)最初に復号されたリファレンスピクチャをリファレンスに未使用としてマークする。
スケーラブルビデオ符号化では、ビデオ信号はベースレイヤおよび1つ以上の拡張レイヤに符号化される。拡張レイヤは時間分解能(すなわち、フレームレート)や空間分解能を上げたり、別のレイヤやその一部によって表わされるビデオコンテンツの品質を単に上げたりしてもよい。各レイヤは、それぞれの全ての従属レイヤと合わせて、特定の空間分解能,時間分解能および品質レベルでのビデオ信号の一表現となる。本願では、全ての従属レイヤを伴うスケーラブルレイヤを「スケーラブルレイヤ表現」と呼ぶ。特定の忠実度で元の信号表現を生成するために、スケーラブルレイヤ表現に対応するスケーラブルビットストリームの一部が抽出され復号される。
場合によっては、特定の位置または任意の位置の後で拡張レイヤのデータが切り捨てられてもよい。ここで切り捨て位置はそれぞれ、視覚的品質を高めて表現する追加データを含んでもよい。こうしたスケーラビリティは細粒度スケーラビリティ(fine-grained/granularity scalability;FGS)と呼ばれる。FGSはSVC規格のドラフトバージョンの一部に含まれていたが、最終版SVC規格からは除外された。よって以降では、FGSはSVC規格のドラフトバージョンの一部を背景として説明される。切り捨てされない拡張レイヤによって提供されるスケーラビリティは、粗粒度スケーラビリティ(coarse-grained/granularity scalability;CGS)と呼ばれる。これは、従来の品質(SNR)スケーラビリティと空間スケーラビリティを合わせて含む。SVC規格はいわゆる中粒度スケーラビリティ(medium-grained/granularity scalability;MGS)をサポートする。MGSでは、高品質ピクチャがSNRスケーラブルレイヤピクチャと同様に符号化されるが、FGSレイヤピクチャと同じ高水準シンタックス要素を用いて、シンタックス要素quality_idが0を超えることによって示される。
SVCはレイヤ間予測機構を用い、現在再構成済みのレイヤ以外のレイヤまたは次の下位レイヤから特定の情報を予測できる。レイヤ間予測できた情報は、イントラテクスチャと動き,残差のデータを含む。レイヤ間動き予測は、ブロック符号化モードやヘッダ情報などの予測を含み、下位レイヤからの動きが上位レイヤの予測に用いられてもよい。イントラ符号化の場合、下位レイヤの周囲マクロブロックや共存マクロブロックからの予測が可能である。こうした予測技術は先に符号化済みのアクセスユニットからの情報を使わないため、イントラ予測技術と呼ばれる。また、下位レイヤからの残差データも現レイヤの予測に用いることができる。
SVCは単一ループ復号と呼ばれる概念を特定する。これは制約テクスチャ内予測モードを用いることで可能となる。レイヤ間テクスチャ内予測はマクロブロック(MB)であって、そのMB内にベースレイヤの対応するブロックが位置するMBに対して適用可能である。同時に、ベースレイヤにおけるこうしたイントラMBは、制約イントラ予測を使用する(例えば、シンタックス要素"constrained_intra_pred_flag"が1に等しい)。単一ループ復号では、デコーダは再生に望ましいスケーラブルレイヤ(「希望レイヤ」または「ターゲットレイヤ」と呼ばれる)に対してだけ動き補償および完全ピクチャ再構成を遂行する。こうして、復号における複雑さを大幅に減らせる。希望レイヤ以外の全てのレイヤは完全に復号される必要がない。これは、レイヤ間予測(レイヤ間テクスチャ内予測,レイヤ間動き予測またはレイヤ間残差予測)に使用されないMBデータの全てまたは一部が希望レイヤの再構成に必要ないからである。
単一復号ループは殆どのピクチャの復号に必要であるが、第2の復号ループはベース表現を再構成するために選択的に適用される。このベース表現は、予測リファレンスとして必要であるが、出力または表示される必要はないので、いわゆるキーピクチャ("store_ref_base_pic_flag"が1に等しい)に対してのみ再構成される。
SVCドラフトにおけるスケーラビリティ構造は"temporal_id","dependency_id","quality_id"の3つのシンタックス要素で特徴付けられる。シンタックス要素"temporal_id"は、時間スケーラビリティ階層または間接的にはフレームレートを示すのに用いられる。"temporal_id"の最大値が小さいピクチャを含むスケーラブルレイヤ表現のフレームレートは、"temporal_id"の最大値が大きいピクチャを含むスケーラブルレイヤ表現のフレームレートよりも低い。所与の時間レイヤは通常、下位時間レイヤ(すなわち、"temporal_id"がより小さい値の時間レイヤ)に依存するが、どの上位時間レイヤにも依存しない。シンタックス要素"dependency_id"は、CGSレイヤ間符号化依存階層を示すのに用いられる(前述の通り、SNRと空間スケーラビリティの両方を含む)。どの時間レベル位置でも、"dependency_id"値が小さいピクチャは、"dependency_id"値が大きいピクチャの符号化におけるレイヤ間予測に用いられてもよい。シンタックス要素"quality_id"は、FGSまたはMGSレイヤの品質レベル階層を示すのに用いられる。どの時間レベル位置でも、同一の"dependency_id"値であれば、"quality_id"値がQLに等しいピクチャは"quality_id"値がQL-1に等しいピクチャをレイヤ間予測に使用する。0を超える"quality_id"を持つ符号化スライスは、切り捨て可能なFGSスライスまたは切り捨て不可能なMGSスライスの何れかとして符号化されてもよい。
単純化するために、同一の"dependency_id"値を持つアクセスユニットにおける全てのデータユニット(SVCの場合、ネットワーク抽象化層ユニット/NALユニットなど)は、依存ユニットまたは依存表現と呼ばれる。1依存ユニット内では、同一の"quality_id"値を持つ全てのデータユニットは、品質ユニットまたはレイヤ表現と呼ばれる。
復号ベースピクチャとも呼ばれるベース表現は、"quality_id"値が0に等しい依存ユニットにおけるビデオ符号化レイヤ(VCL)NALユニットの復号結果から得られる復号ピクチャで、"store_ref_base_pic_flag"が1に設定される。復号ピクチャとも呼ばれる拡張表現は通常の復号処理結果から得られ、最大依存表現に対して存在する全てのレイヤ表現が復号される。
前述の通り、CGSは空間スケーラビリティとSNRスケーラビリティの両方を含む。空間スケーラビリティは最初に、解像度の異なるビデオ表現をサポートするように設計される。各時間インスタンスに対して、VCL-NALユニットは同一アクセスユニットで符号化され、これらのVCL-NALユニットが別々の解像度に対応している。復号中、低解像度VCL-NALユニットは動きフィールドおよび残差を提供する。これらは、高解像度ピクチャの最終復号および再構成によって引き継がれてもよい。従来のビデオ圧縮規格と比較した場合、SVCの空間スケーラビリティは、ベースレイヤが拡張レイヤをクロップおよびズームしたバージョンとなれるように一般化されている。
MGS品質レイヤはFGS品質レイヤと同様に"quality_id"で示される。各依存ユニット(同一の"dependency_id"を持つ)に対して、"quality_id"が0に等しいレイヤが存在し、"quality_id"が0を超える他のレイヤも存在し得る。"quality_id"が0を超えるこうしたレイヤは、スライスが切り捨て可能スライスとして符号化されたかどうかに応じてMGSレイヤまたはFGSレイヤの何れかである。
FGS拡張レイヤの基本形では、レイヤ間予測のみが使用される。したがって、FGS拡張レイヤは、復号シーケンスで誤差を伝播させず自由に切り捨てできる。しかし、FGSの基本形は圧縮効率が低くなる。この問題は、インター予測リファレンスに低品質ピクチャのみが使用されることで生じる。したがって、インター予測リファレンスとしてFGS拡張ピクチャの使用が提案されている。しかしこうした提案でも、FGSデータの一部が捨てられる際、ドリフトと呼ばれる符号化・復号間の不整合が生じ可能性がある。
SVCドラフト規格の特徴はFGS-NALユニットが自由にドロップされたり、切り捨てられたりできるが、SVCV規格の特徴は、MGS-NALユニットがビットストリームの適合性を損なわず自由にドロップされることができる(しかし、切り捨てられることはできない)。前述の通り、符号化時にこうしたFGSまたはMGSデータがインター予測リファレンスに対して使用される場合、データのドロップまたは切り捨てはデコーダ側とエンコーダ側との間で復号ピクチャの不整合を生じさせる。この不整合がドリフトと呼ばれる。
FGSまたはMGSデータのドロップまたは切り捨てによるドリフトを制御するために、SVCは次の解決方法を適用してきた。特定の依存ユニットにおいて、("quality_id"が0に等しいCGSピクチャのみの復号とそれに依存する全ての下位レイヤデータによる)ベース表現は復号ピクチャバッファに格納される。同一の"dependency_id"値を持つ次の依存ユニットを符号化する際、FGS-NALまたはMGS-NALユニットを含む全てのNALユニットはインター予測リファレンス用にベース表現を使用する。その結果、先のアクセスユニットにおけるFGS/MGS-NALユニットのドロップまたは切り捨てによるドリフトは全て、このアクセスユニットで止められる。同一の"dependency_id"値を持つ他の依存ユニットに対して、全てのNALユニットは、高い符号化効率のために、インター予測リファレンス用にこの復号ピクチャを使用する。
NALユニットはそれぞれのNALユニットヘッダにシンタックス要素"use_ref_base_pic_flag"を含む。この要素の値が1に等しい場合、NALユニットの復号ではインター予測処理時にリファレンスピクチャのベース表現を使用する。シンタックス要素"store_ref_base_pic_flag"は、後のピクチャに対してインター予測用に現ピクチャのベース表現を格納するか(値が1の場合)否か(値が0の場合)を特定する。
"quality_id"が0を超えるNALユニットはリファレンスピクチャ・リスト作成および加重予測に関するシンタックス要素を含まない。すなわち、シンタックス要素"num_ref_active_lx_minus1"(xは0または1)やリファレンスピクチャ・リスト並び替えシンタックステーブル,加重予測シンタックステーブルは存在しない。その結果、MGSまたはFGSレイヤは、必要に応じて同一の依存ユニットにおける"quality_id"が0に等しいNALユニットからこうしたシンタックス要素を引き継がなくてはならない。
SVCでは、リファレンスピクチャ・リストはベース表現のみ("use_ref_base_pic_flag"が1の場合)または「ベース表現」とマークされていない復号ピクチャのみ("use_ref_base_pic_flag"が0の場合)の何れかから構成され、同時に両方から構成されることはない。
前に示した通り、MVCはH.264/AVCの拡張である。H.264/AVCの定義や概念,シンタックス構造,意味,復号処理の多くはそのまま、または特定の一般化や制約を伴ってMVCにも適用される。MVCの定義や概念,シンタックス構造,意味,復号処理の一部は以下で説明される。
MVCのアクセスユニットは、復号順に連続するNALユニットのセットと定義され、1つ以上のビューコンポーネントから成る単一のプライマリ符号化ピクチャを含む。アクセスユニットは、プライマリ符号化ピクチャの他に1つ以上の冗長符号化ピクチャや補助符号化ピクチャ,符号化ピクチャのスライスまたはスライスデータ分割を含む他のNALユニットを含んでもよい。アクセスユニットの復号の結果、復号誤差やビットストリーム誤差,復号に影響を及ぼす可能性のある他の誤差が生じなければ、1つ以上の復号ビューコンポーネントから成る1つの復号ピクチャが得られる。換言すれば、MVCのアクセスユニットは、1つの出力時間インスタンスに対して複数のビューのビューコンポーネントを含む。
MVCのビューコンポーネントは単一アクセスユニットにおけるビューの符号化表現とも呼ばれる。
MVCではビュー間予測が使用されてもよく、同一アクセスユニットにおける別々のビューコンポーネントの復号サンプルからビューコンポーネントの予測を参照する。MVCでは、ビュー間予測はインター予測と同様にして実現される。例えば、ビュー間リファレンスピクチャはインター予測用リファレンスピクチャとして同一の(1つまたは複数の)リファレンスピクチャ・リストに配置され、動きベクトルだけでなくリファレンスインデクスも、ビュー間およびリファレンスピクチャ間で同様に符号化または推定される。
アンカーピクチャは符号化ピクチャであって、その中の全スライスが同一アクセスユニット内のスライスのみを参照できる。すなわち、ビュー間予測が使用可能であるが、インター予測は使用されず、出力順で後になる全ての符号化ピクチャは、復号順で符号化ピクチャの前のどのピクチャからもインター予測を使用しない。ビュー間予測は、非ベースビューの一部であるIDRビューコンポーネント用に使用されてもよい。MVCのベースビューは、符号化ビデオシーケンスでビュー順序インデクスの最大値を持つビューである。ベースビューは他のビューとは独立して復号でき、ビュー間予測を使用しない。ベースビューは、H.264/AVCのベースプロファイル(Baseline Profile)やハイプロファイル(High Profile)などの単一ビュープロファイルのみをサポートするH.264/AVCデコーダによって復号可能である。
MVC規格では、MVC復号処理のサブ処理の多くは、H.264/AVC規格のサブ処理の仕様にある「ピクチャ」,「フレーム」,「フィールド」という語句をそれぞれ「ビューコンポーネント」,「フレーム・ビューコンポーネント」,「フィールド・ビューコンポーネント」と置き換えることによって、H.264/AVC規格の各サブ処理を利用できる。これと同様に以下では、「ピクチャ」,「フレーム」,「フィールド」という語句がそれぞれ「ビューコンポーネント」,「フレーム・ビューコンポーネント」,「フィールド・ビューコンポーネント」を意味するものとして頻繁に用いられる。
スケーラブル・マルチビュー符号化では、同一ビットストリームが複数のビューの符号化ビューコンポーネントを含んでもよく、符号化ビューコンポーネントの少なくとも一部は品質および/または空間スケーラビリティを用いて符号化されてもよい。
テクスチャビューは通常のビデオコンテンツを示すビューを指す。これは例えば、普通のカメラで撮影されたもので、通常ディスプレイへのレンダリングに適している。テクスチャビューは通常、1つの輝度(luma)成分と2つの色差(chroma)の3つのコンポーネントを持つピクチャを含む。以下では、テクスチャピクチャは通常、輝度テクスチャピクチャと色差テクスチャピクチャという語句などで示されない限り、そのコンポーネントのピクチャまたはカラーコンポーネントの全てを含む。
深度拡張ビデオは、1つ以上の深度ビューを持つ深度ビデオに関連する1つ以上のビューを持つテクスチャビデオを指す。深度拡張ビデオに関する様々なアプローチが用いられてもよく、ビデオ+深度(video plus depth;V+D)やマルチビュービデオ+深度(multiview video plus depth;MVD),レイヤ深度ビデオ(layered depth video;LDV)の使用を含む。ビデオ+深度(V+D)表現では、単一のテクスチャビューと関連する深度ビューがそれぞれ、テクスチャピクチャと深度ピクチャのシーケンスとして表現される。MVDは複数のテクスチャビューとそれぞれの深度ビューを含む。LDV表現では、中央ビューのテクスチャと深度が従来通りに表現されるが、他のビューのテクスチャと深度は部分的に表現され、中間ビューの正確なビュー合成に関しては遮蔽されていない領域のみをカバーする。
深度拡張ビデオは、テクスチャと深度が互いに独立して符号化される方式で符号化されてもよい。例えば、テクスチャビューはMVCビットストリームとして符号化され、深度ビューは別のMVCビットストリームとして符号化されてもよい。あるいは、深度拡張ビデオは、テクスチャと深度が統合して符号化される方式で符号化されてもよい。テクスチャおよび深度ビューの統合符号化が深度拡張ビデオ表現に適用される場合、テクスチャピクチャの復号サンプルの一部またはテクスチャピクチャの復号用データ要素の一部は、深度ピクチャの復号サンプルの一部または深度ピクチャの復号処理で得られたデータ要素の一部から予測または導出される。あるいは、または加えて、深度ピクチャの復号サンプルの一部または深度ピクチャの復号用データ要素の一部は、テクスチャピクチャの復号サンプルの一部またはテクスチャピクチャの復号処理で得られたデータ要素の一部から予測または導出される。
マルチビュー3次元ビデオ(3DV)アプリケーションに対するソリューションは、限定された入力ビュー数だけ、例えば、モノラルまたはステレオビューと付加データだけを持ち、必要なビューの全てをデコーダでローカルにレンダリング(すなわち、合成)するというものだと理解される。幾つかの利用可能なビューレンダリング技術から、深度イメージベース・レンダリング(depth image-based rendering;DIBR)は競合代替技術であると見られている。
DIBRベースの3DVシステムの簡易モデルを図5に示す。3Dビデオコーデックの入力は、立体ビデオと立体ベースラインb0と共に対応する深度情報を含む。3Dビデオコーデックは、ベースライン(bi < b0)と共に、2つの入力ビュー間の複数の仮想ビューを合成する。DIBRアルゴリズムは2つの入力ビュー間だけでなく、その外側のビューを外挿することもできる。同様に、DIBRアルゴリズムは単一のテクスチャビューと対応する深度ビューからビューを合成することもできる。しかし、DIBRベースのマルチビューレンダリングを可能にするために、テクスチャデータが対応する深度データと共にデコーダ側で利用可能であるべきである。
こうした3DVシステムでは、各ビデオフレームに対して深度情報が(深度マップと呼ばれる)深度ピクチャの形式で、エンコーダ側で作成される。深度マップは、ピクセル毎の深度情報を伴う画像である。深度マップの各サンプルは、カメラが配置された面からそれぞれのテクスチャサンプルまでの距離を表わす。換言すれば、z軸がカメラの撮影方向に沿う(したがって、カメラが配置された面に対して直交する)場合、深度マップのサンプルはz軸の値を表わす。
深度情報は様々な手段で取得することができる。例えば、3Dシーンの深度は、撮影するカメラによって記録される視差から計算されてもよい。深度推定アルゴリズムは、立体ビューを入力として受取り、そのビューに関する2つのオフセット画像間のローカルな視差を計算する。各画像は重複ブロックでピクセル毎に処理され、各ピクセルブロックに対してオフセット画像において一致するブロックが水平方向でローカルに探索される。ピクセル方向の視差が計算されると、対応する深度の値zが式(1)によって計算される。
z = (f・b)/(d + Δd) ... 式(1)
ここで、fはカメラの焦点距離、bはカメラ間のベースライン距離であり、図6に示されている。さらに、dは2つのカメラの間で観測される視差を表わし、カメラオフセットΔdは2つのカメラの光学中心に関して生じ得る水平方向の位置のずれを示す。ただし、アルゴリズムはブロックの一致に基づくため、深度を通じた視差推定の質はコンテンツに依存し、殆どの場合正確ではない。例えば、質感がなく非常に滑らかな領域や高いノイズレベルを含む画像部分に対しては、直接深度推定を行うことは不可能である。
ISO/IEC国際規格23002-3で既定されるparallax mapのような格差/視差マップは、深度マップと同様に処理されてもよい。深度と視差には直接的な対応関係があり、数学的方程式を介して一方から他方を算出することができる。
アクセスユニット内のテクスチャおよび深度ビューコンポーネントに関する符号化および復号順序は通常、符号化ビューコンポーネントのデータが他の符号化ビューコンポーネントによってインターリーブされないようになっており、アクセスユニット用データもビットストリームまたは復号順で他のアクセスユニットによってインターリーブされない。例えば、図7に示すように、別々のアクセスユニット(t, t+1, t+2)に2組のテクスチャ・深度ビュー(T0t, T1t, T0t+1, T1t+1, T0t+2, T1t+2, D0t, D1t, D0t+1, D1t+1, D0t+2, D1t+2)が存在してもよい。ここで、テクスチャ・深度ビューコンポーネント(T0t,T1t, D0t,D1t)から成るアクセスユニットtは、ビットストリームおよび復号順でテクスチャ・深度ビューコンポーネント(T0t+1,T1t+1, D0t+1,D1t+1)から成るアクセスユニットt+1よりも先である。
アクセスユニット内のビューコンポーネントの符号化および復号順序は、符号化フォーマットに従ってもよく、エンコーダによって決定されてもよい。テクスチャビューコンポーネントは、同一ビューの関連する深度ビューコンポーネントよりも先に符号化されてもよい。それ故、こうした深度ビューコンポーネントが同一ビューの関連するテクスチャビューコンポーネントから予測されてもよい。こうしたテクスチャビューコンポーネントは例えば、MVCエンコーダで符号化され、MVCデコーダで復号されてもよい。拡張テクスチャビューコンポーネントは本願では、同一ビューの関連する深度ビューコンポーネントの後に符号化されるテクスチャビューコンポーネントを表わす。したがって、関連する深度ビューコンポーネントから予測されてもよい。同一アクセスユニットのテクスチャ・深度ビューコンポーネントは通常、ビューに依存する順序で符号化される。テクスチャ・深度ビューコンポーネントは、前述の制約に従う限りで互いに任意の順序で並べ替えることができる。
テクスチャビューと深度ビューは、テクスチャビューの一部がH.264/AVCおよび/またはMVC等の1つ以上のビデオ規格に準拠した単一ビットストリームに符号化されてもよい。換言すれば、デコーダはこうしたビットストリームのテクスチャビューの一部を復号でき、残りのテクスチャビューと深度ビューを除外できてもよい。
こうした背景では、1つ以上のテクスチャ・深度ビューを単一のH.264/AVCおよび/またはMVC準拠ビットストリームに符号化するエンコーダは、3DV-ATMエンコーダとも呼ばれる。こうしたエンコーダによって生成されたビットストリームは、3DV-ATMビットストリームと呼ぶことができる。3DV-ATMビットストリームはH.264/AVCおよび/またはMVCデコーダが復号できない一部のテクスチャビューと深度ビューを含んでもよい。3DV-ATMビットストリームからのビュー全てを復号できるデコーダは3DV-ATMデコーダと呼ぶこともできる。
3DV-ATMビットストリームはAVC/MVC準拠テクスチャビューを選択された数だけ含むことができる。AVC/MVC準拠テクスチャビューに対する深度ビューは、テクスチャビューから予測されてもよい。残りのテクスチャビューは拡張テクスチャ符号化を利用し、深度ビューが深度符号化を利用してもよい。
テクスチャビューおよび深度ビューを符号化できるエンコーダ200の実施形態の高レベルフローチャートを図8に示し、テクスチャビューおよび深度ビューを復号できるデコーダ210を図9に示す。これらの図で、実線は一般的なデータフローを表わし、破線は制御情報信号を表わす。エンコーダ200は、テクスチャエンコーダ202で符号化されるテクスチャコンポーネント201と深度エンコーダ204で符号化される深度マップコンポーネント203を受取ってもよい。エンコーダ200がAVC/MVCに従ってテクスチャコンポーネントを符号化中は、第1のスイッチ205がオフに切替えられてもよい。エンコーダ200が拡張テクスチャコンポーネントを符号化中は、深度エンコーダ204が生成する情報がテクスチャエンコーダ202に提供されるように、第1のスイッチ205がオンに切替えられてもよい。この実施例のエンコーダは、次のように制御される第2のスイッチ206も備える。第2のスイッチ206は、エンコーダがAVC/MVCビューの深度情報を符号化中はオンに切替えられ、エンコーダが拡張テクスチャビューの深度情報を符号化中はオフに切替えられる。エンコーダ200は符号化ビデオ情報を含むビットストリーム207を出力してもよい。
デコーダ210は、少なくとも一部が逆順である以外は同様に動作してもよい。デコーダ210は符号化ビデオ情報を含むビットストリーム207を受信してもよい。デコーダ210は、テクスチャ情報を復号するテクスチャデコーダ211と深度情報を復号する深度デコーダ212を備える。第3のスイッチ213は深度デコーダ212からテクスチャデコーダ211への情報配信を制御するために提供されてもよく、第4のスイッチ214はテクスチャデコーダ211から深度デコーダ212への情報配信を制御するために提供されてもよい。デコーダ210がAVC/MVCテクスチャビューを復号する際は、第3のスイッチ213がオフに切替えられてもよく、デコーダ210が拡張テクスチャビューを復号する際は、第3のスイッチ213がオンに切替えられてもよい。デコーダ210がAVC/MVCテクスチャビューの深度を復号する際は、第4のスイッチ214がオンに切替えられてもよく、デコーダ210が拡張テクスチャビューの深度を復号する際は、第4のスイッチ214がオフに切替えられてもよい。デコーダ210は再構成テクスチャコンポーネント215および再構成深度マップコンポーネント216を出力してもよい。
多くのビデオエンコーダは、レート歪み最適符号化モード、例えば、希望マクロブロックモードと関連する動きベクトルを探索するために、ラグランジュ費用関数(Lagrangian cost function)を利用する。この種の費用関数は、非可逆符号化法による正確なまたは推定された画像歪みと、画像領域のピクセル/サンプル値を表現するのに必要である正確なまたは推定された情報量を一緒に固定するために、加重ファクタまたはλを用いる。ラグランジュ費用関数は次式で表わすことができる:
C = D + λR
ここで、Cは最小化すべきラグランジュ費用、Dはこのモードと現在考慮される動きベクトルによる画像歪み(例えば、元の画像ブロックと符号化画像ブロックとの間のピクセル/サンプル値の平均二乗誤差)、λはラグランジュ係数、Rはデコーダで画像ブロックを再構成するために要求されるデータ(候補の動きベクトルを表わすためのデータ量を含む)を表わすのに必要なビット数である。
符号化規格は、サブビットストリーム抽出処理を含んでもよく、こうした処理はSVCやMVC、HEVC等で特定されている。サブビットストリーム抽出処理は、NALユニットを削除してビットストリームをサブビットストリームに変換することに関連する。サブビットストリームもまた、規格に準拠している。例えばHEVCドラフト規格では、選択された値以上のtemporal_idを持つ全てのVCL-NALユニットを除外し、それ以外の全てのVCL-NALユニットを含めることによって、生成されたビットストリームも準拠している。その結果、TIDと等しいtemporal_idを持つピクチャは、TIDを超えるtemporal_idを持つどのピクチャもインター予測リファレンスとして使用しない。
図1は例示的実施形態に従うビデオ符号化システムのブロック図を示す。このブロック図は、本発明の実施形態に従うコーデックを組込む例示的装置または例示的電子デバイス50の概略を示すブロック図として示されている。図2は、例示的実施形態に従う装置のレイアウトを示す。図1および2の各要素は以下で説明される。
電子デバイス50は例えば、移動端末や無線通信システムにおけるユーザ機器であってもよい。ただし、本発明の実施形態は、符号化および復号、またはビデオ画像の符号化や復号を要する任意の電子デバイスや装置に実装できることを理解されたい。
装置50は、デバイスを組込んで保護するハウジング30を備えてもよい。装置50はまた、液晶表示の形態でディスプレイ32を備えてもよい。本発明の他の実施形態では、ディスプレイは画像やビデオを表示するのに適した任意適当なディスプレイ技術によるものでもよい。装置50はまた、キーパッド34を備えてもよい。本発明の他の実施形態では、任意適当なデータインタフェースやユーザインタフェースの機構が用いられてもよい。例えば、ユーザインタフェースはタッチセンサ式ディスプレイの一部に仮想キーボードやデータ入力システムとして実装されてもよい。装置はマイクロフォン36や、デジタルまたはアナログ信号の任意適当な音声入力を備えてもよい。装置50はまた、音声出力デバイスを備えてもよく、本発明の実施形態では次の何れか1つでもよい:イヤホン38,スピーカ,アナログ音声またはデジタル音声出力接続。装置50はまた、バッテリ40を備えてもよい(または、本発明の他の実施形態では、太陽電池や燃料電池,時計仕掛けの発電機などの任意適当な携帯エネルギー装置によって電源供給されてもよい)。装置はまた、他のデバイスと短可視距離通信するための赤外線ポート42を備えてもよい。他の実施形態では、装置50はさらに、ブルートゥース無線通信やUSB/FireWire有線接続などの任意適当な短距離通信ソリューションを備えてもよい。
装置50は、装置50を制御するコントローラ56またはプロセッサを備えてもよい。コントローラ56はメモリ58に接続されてもよい。本発明の実施形態では、メモリは、画像形態におけるデータと音声データの両方を格納してもよく、および/または、コントローラ56に実装される命令を格納してもよい。また、コントローラ56はコーデック回路54に接続されてもよい。コーデック回路は、音声および/またはビデオデータの符号化・復号の遂行や、コントローラ56が遂行する符号化・復号を補助するのに適している。
装置50はまた、カードリーダー48とスマートカード46を備えてもよい。例えば、ユーザ情報を提供し、ネットワークでユーザ認証および認可のための認証情報を提供するのに適したUICCおよびUICCリーダーを備えてもよい。
装置50は、コントローラに接続され、無線通信信号を生成するのに適した無線インタフェース回路52を備えてもよい。無線通信は例えば、携帯通信ネットワークや無線通信システム,無線ローカルエリアネットワークでの通信である。また、装置50は無線インタフェース回路52に接続されたアンテナ44を備えてもよい。アンテナは、無線インタフェース回路52で生成された無線信号を他の(1または複数の)装置へ送信し、無線信号を他の(1または複数の)装置から受信する。
本発明の実施形態によっては、装置50は個別のフレームを記録または検出できるカメラを備え、このフレームは処理用のコーデック54またはコントローラに渡される。本発明の実施形態によっては、装置は、別のデバイスから処理用ビデオ画像データを、送信および/または格納する前に受信してもよい。本発明の実施形態によっては、装置50は、符号化用/復号用画像を無線または有線の何れかで受信してもよい。
図3は、例示的実施形態に従う複数の装置,ネットワークおよびネットワーク要素を含むビデオ符号化構成を示す。図3では、本発明の実施形態において利用可能なシステムの実施例が示されている。システム10は、1つ以上のネットワークを通じて通信できる複数の通信デバイスを含む。システム10は任意の無線または有線ネットワークの組合せを含んでよく、無線携帯電話ネットワーク(GSM(登録商標)やUMTS,CDMAネットワーク等)やIEEE 802.xの何れかの規格で規定される無線ローカルエリアネットワーク(WLAN),ブルートゥース・パーソナルエリアネットワーク,イーサネット(登録商標)・ローカルエリアネットワーク,トークンリング・ローカルエリアネットワーク,広域ネットワーク,インターネットを含んでもよい。ただし、これらに限定されない。
システム10は無線・有線両方の通信デバイスを含んでもよく、本発明の実施形態を実装するのに適した装置50を含んでもよい。例えば、図3に示すシステムは、携帯電話ネットワーク11とインターネット28を表わす表現を示している。インターネット28への接続は長距離無線接続や短距離無線接続,様々な有線接続を含んでもよいが、これらに限定されない。有線接続には電話回線やケーブル線,電力線,その他同様の通信線が含まれるが、これらに限定されない。
システム10に示される例示的通信デバイスは電子デバイスや装置50,携帯情報端末(PDA)16,PDAと携帯電話14の組合せ,統合通信デバイス(integrated messaging device; IMD)18,デスクトップコンピュータ20,ノート型コンピュータ22を含んでもよい。ただし、これらに限定されない。装置50は固定型でもよく、移動する人が持ち運べる携帯型でもよい。また、装置50は移動手段に配置されてもよい。こうした移動手段には自動車やトラック,タクシー,バス,列車,船/ボート,飛行機,自転車,バイク,その他類似の移動手段が含まれるが、これらに限定されない。
さらに装置によっては、電話・メッセージを送受信したり、基地局24との無線接続25を通じてサービスプロバイダと通信できたりしてもよい。基地局24は、携帯電話ネットワーク11とインターネット28間の通信を可能にするネットワークサーバ26に接続されてもよい。システムは、付加的な通信デバイスと様々な種類の通信デバイスを含んでもよい。
通信デバイスは様々な伝送技術を用いて通信してもよく、こうした技術には符号分割多元接続(CDMA)やGSM(登録商標),ユニバーサル携帯電話システム(UMTS),時分割多元接続(TDMA),周波数分割多元接続(FDMA),TCP-IP(transmission control protocol-internet protocol),ショートメッセージサービス(SMS),マルチメディアメッセージサービス(MMS),電子メール,IMS(instant messaging service),ブルートゥース, IEEE 802.11,その他類似の無線通信技術を含む。ただし、これらに限定されない。本発明の様々な実施形態への実装に含まれる通信デバイスは、様々な媒体を介して通信できる。こうした媒体として、無線,赤外線,レーザー,ケーブル接続,その他適切な接続が含まれるが、これらに限定されない。
図4aおよび4bは、例示的実施形態に従うビデオ符号化・復号のブロック図を示す。
図4aは、ピクセル予測器302と予測誤差エンコーダ303,予測誤差デコーダ304を備えるようなエンコーダを示す。図4aはまた、インター予測器306とイントラ予測器308,モードセレクタ310,フィルタ316,リファレンスフレームメモリ318を備えるようなピクセル予測器302の実施形態を示す。この実施形態では、モードセレクタ310はブロックプロセッサ381とコスト評価器382を備える。エンコーダはまた、ビットストリームのエントロピー符号化を行うエントロピーエンコーダ330を備えてもよい。
図4bはインター予測器306の実施形態を示す。インター予測器306は、1または複数のリファレンスフレームを選択するリファレンスフレームセレクタ360と動きベクトル定義器361,予測リスト作成器363,動きベクトルセレクタ364を備える。こうした構成要素またはその一部は、予測プロセッサ362の一部であってもよく、他の手段で実装されてもよい。
ピクセル予測器302は、インター予測器306とイントラ予測器308の両方で符号化される画像300を受信する(インター予測器306はこの画像と動き補償リファレンスフレーム318との間の差を決定し、イントラ予測器308は現フレームまたはピクチャで処理済みの部分のみに基づいて画像ブロックの予測を決定する)。インター予測器とイントラ予測器の両方からの出力はモードセレクタ310に送られる。インター予測器306とイントラ予測器308の両方とも、複数のイントラ予測モードを持っていてよい。したがって、インター予測とイントラ予測は各モードで遂行され、
予測信号がモードセレクタ310に提供されてもよい。モードセレクタ310も画像300のコピーを受信する。
モードセレクタ310は現ブロックの符号化に使用する符号化モードの種類を決定する。モードセレクタ310は、インター予測モードの使用を決定すると、インター予測器306の出力をモードセレクタ310の出力に送る。モードセレクタ310は、イントラ予測モードの使用を決定すると、イントラ予測モードの1つに関する出力をモードセレクタ310の出力に送る。
モードセレクタ310は、符号化モードとそのパラメータ値を選択するために、コスト評価器ブロック382では例えばラグランジュ費用関数を用いてもよい。ここでパラメータ値とは、通常ブロックに基づく動きベクトルやリファレンスインデクス,イントラ予測の向き等である。この種の費用関数は、非可逆符号化法による(正確なまたは推定された)画像歪みと、画像領域のピクセル/サンプル値を表現するのに必要である(正確なまたは推定された)情報量を一緒に固定するために、加重ファクタλを用いる。C = D + λ × R。 ここで、Cは最小化すべきラグランジュ費用、Dはこのモードとそのパラメータによる画像歪み(平均二乗誤差など)、Rはデコーダで画像ブロックを再構成するために要求されるデータ(候補の動きベクトルを表わすためのデータ量を含んでもよい)を表わすのに必要なビット数である。
モードセレクタの出力は第1の加算器321に送られる。第1の加算器は、予測誤差エンコーダ303への入力である第1の予測誤差信号320を生成するために、画像300からピクセル予測器302の出力を引いてもよい。
ピクセル予測器302はさらに、画像ブロック312の予測表現と予測誤差デコーダ304の出力338の合成を仮再構成器339から受取る。仮再構成器された画像314は、イントラ予測器308とフィルタ316に送られてもよい。仮表現を受取るフィルタ316は、その仮表現をフィルタリングし、リファレンスフレームメモリ318に保存される最終再構成画像340を出力する。リファレンスフレームメモリ318は、後の画像300がインター予測動作で比較されるためのリファレンス画像として使用されるように、インター予測器306に接続されてもよい。多くの実施形態では、リファレンスフレームメモリ318は複数の復号ピクチャを格納できる。そうした復号ピクチャの1つ以上は、後の画像300がインター予測動作で比較されるためのリファレンスピクチャとして、インター予測器306で使用されてもよい。場合によっては、リファレンスフレームメモリ318は復号ピクチャバッファとも呼ばれる。
ピクセル予測器302の動作は、本技術分野で周知のあらゆるピクセル予測アルゴリズムを遂行するように構成されてもよい。
ピクセル予測器302はまた、予測値をピクセル予測器302から出力する前にフィルタリングするフィルタ385を備えてもよい。
予測誤差エンコーダ302および予測誤差デコーダ304の動作は以降で詳述される。次の実施例では、エンコーダは、画像を16×16ピクセルのマクロブロック単位で生成する。こうした画像はフル画像またはピクチャを形成するようになる。ただし、図4aは16×16のブロックサイズに限定されるものではなく、任意のサイズおよび形状のブロックが一般に使用できることに留意されたい。同様に、図4aはピクチャのマクロブロック分割に限定されるものではなく、その他任意のピクチャ分割によって符号化単位として使用可能なブロックに分割されてもよいことにも留意されたい。したがって、以下の実施例に関して、ピクセル予測器302は16×16ピクセルサイズの予測マクロブロック列を出力し、第1の加算器321は、画像300の第1のマクロブロックと予測マクロブロック(ピクセル予測器302の出力)との間の差を表わす16×16ピクセルの残差データマクロブロック列を出力する。
予測誤差エンコーダ303は、変換ブロック342と量子化器344を備える。変換ブロック342は第1の予測誤差信号320を変換ドメインに変換する。この変換は例えば、DCT変換やその異型である。量子化器344は、量子化係数を得るために、DCT係数などの変換ドメイン信号を量子化する。
予測誤差デコーダ304は予測誤差エンコーダ303からの出力を受取り、復号予測誤差信号338を生成する。復号予測誤差信号は第2の加算器339で画像ブロック312の予測表現と合成され、仮再構成画像314を生成する。予測誤差デコーダは、近似的に変換信号を再構成するために、DCT係数などの量子化係数値を逆量子化(dequantize)する逆量子化器(dequantizer)346と、再構成された変換信号に対して逆変換を行う逆変換ブロック348を備えるように構成されてもよい。逆変換ブロック348の出力は、(1つまたは複数の)再構成ブロックを含む。予測誤差デコーダはまた、さらに復号された情報とフィルタパラメータに従って再構成マクロブロックをフィルタリングできるマクロブロックフィルタを備えてもよい(図示せず)。
次に、インター予測器306の例示的実施形態の動作を詳述する。インター予測器306はインター予測用に現ブロックを受取る。ここで現ブロックに対して、1つ以上の符号化済み隣接ブロックが既に存在し、それに関する動きベクトルも定義済みであると仮定する。例えば、現ブロックの左側のブロックおよび/または上側のブロックがそうしたブロックであってもよい。現ブロックに対する空間動きベクトルの予測は、例えば、同一スライスまたはフレームの符号化済み隣接ブロックおよび/または非隣接ブロックの動きベクトルを用いて行うことができる。または、空間動きベクトル予測の線形関数または非線型関数を用いたり、様々な空間動きベクトル予測器を線形動作または非線形動作で組合せたり、あるいは、時間リファレンス情報を使用しない任意適切な手段によって予測が行われてもよい。また、1つ以上の符号化ブロックの空間予測と時間予測の両方の情報を組合せて動きベクトル予測器を構成することも可能である。この種の動きベクトル予測器は、時空間(spatio-temporal)動きベクトル予測器とも呼ばれる。
符号化で使用されるリファレンスフレームはリファレンスフレームメモリに格納されてもよい。各リファレンスフレームは、1つ以上のリファレンスピクチャ・リストに含まれてもよい。リファレンスピクチャ・リスト内では、各エントリがリファレンスフレームを識別するリファレンスインデクスを持つ。リファレンスフレームは、リファレンスとしてもう使用されない場合、リファレンスフレームメモリから削除されてもよく、「リファレンスに未使用」とマークされたり、そのリファレンスフレームの格納位置が新規のリファレンスフレームによって占有されて非リファレンスフレームとなったりしてもよい。
前述の通り、アクセスユニットは別のコンポーネントタイプ(例えば、主テクスチャコンポーネントや冗長テクスチャコンポーネント,補助コンポーネント,深度/視差コンポーネント)や別のビュー,別のスケーラブルレイヤのスライスを含んでもよい。
従来通りに、スライスヘッダに含まれていたシンタックス要素の少なくとも1つのサブセットがエンコーダによってGOS(スライス群)パラメータセットに含められることも提案されている。エンコーダはGOSパラメータセットをNALユニットとして符号化してもよい。GOSパラメータセットのNALユニットは、符号化スライスNALユニットなどと共にビットストリームに含まれてもよいが、前述した他のパラメータセットの場合と同様に帯域外で伝送されてもよい。
GOSパラメータセットのシンタックス構造は識別子を含み、例えば、スライスヘッダや別のGOSパラメータセットから特定のGOSパラメータセットインスタンスを参照する際に使用されてもよい。あるいは、GOSパラメータセットのシンタックス構造が識別子を含まず、エンコーダおよびデコーダの両方が、例えば、GOSパラメータセットのシンタックス構造に関するビットストリームの順序と既定の番号付けスキームを用いて識別子を推定してもよい。
エンコーダおよびデコーダは、符号化済みまたは復号済みであるか、ビットストリームに既存の他のシンタックス構造からGOSパラメータセットの内容やインスタンスを推定してもよい。例えば、ベースビューのテクスチャビューにおけるスライスヘッダからGOSパラメータセットが暗黙的に作成されてもよい。エンコーダおよびデコーダは、こうした推定GOSパラメータセットに対して識別値を推定してもよい。例えば、ベースビューのテクスチャビューにおけるスライスヘッダから作成されたGOSパラメータセットが0に等しい識別値を持つと推定されてもよい。
GOSパラメータセットはそれに関連する特定のアクセスユニット内で有効でもよい。例えば、GOSパラメータセットのシンタックス構造が特定のアクセスユニットに関するNALユニットシーケンスに含まれ、そのシーケンスは復号順またはビットストリームの順で、GOSパラメータセットはその出現位置からアクセスユニットの最後まで有効であってもよい。あるいは、GOSパラメータセットは様々なアクセスユニットで有効でもよい。
エンコーダは、1つのアクセスユニットに対して様々なGOSパラメータセットを符号化してもよい。スライスヘッダで符号化されるシンタックス要素の値の少なくとも1つのサブセットが後続のスライスヘッダと同一であることが分かっている場合、または予測/推定される場合、エンコーダはGOSパラメータセットを符号化すると決定してもよい。
GOSパラメータセット識別子には、限られた番号付けスペースが使用される。例えば、固定長符号が使用されたり、特定の範囲内の符号なし整数値として判断されたりしてもよい。エンコーダは、最初のGOSパラメータセットに対して特定のGOSパラメータセット識別値を使用してもよい。次に、最初のGOSパラメータセットが、例えば何れのスライスヘッダやGOSパラメータセットによっても参照されない場合には、2番目のGOSパラメータセットに対しても同じGOSパラメータセット識別値を使用してもよい。エンコーダは、例えば伝送エラーに対する高い頑健性を得るために、ビットストリーム内でGOSパラメータセットのシンタックス構造を繰り返してもよい。
多くの実施形態では、GOSパラメータセットに含まれうるシンタックス構造は、概念的に複数のシンタックス要素のセットにまとめられる。GOSパラメータセットのシンタックス要素セットは、例えば次の原則の1つ以上に基づいて形成されてもよい:
− スケーラブルレイヤおよび/または他のスケーラブル特性を示すシンタックス要素;
− ビューおよび/または他のマルチビュー特性を示すシンタックス要素;
− 深度/視差など特定のコンポーネントタイプに関連するシンタックス要素;
− アクセスユニット識別や復号順序および/または出力順序および/またはアクセスユニットの全スライスに対して不変である他のシンタックス要素に関連するシンタックス要素;
− ビューコンポーネントの全スライスで不変であるシンタックス要素;
− リファレンスピクチャ・リスト変更に関連するシンタックス要素;
− 使用されるリファレンスピクチャのセットに関連するシンタックス要素;
− 復号リファレンスピクチャ・マーキングに関連するシンタックス要素;
− 加重予測用の予測重みテーブルに関連するシンタックス要素;
− デブロッキング・フィルタリングを制御するシンタックス要素;
− 適応ループフィルタリングを制御するシンタックス要素;
− サンプル適応オフセットを制御するシンタックス要素;
− 上記セットの任意の組合せ。
各シンタックス要素セットに対して、エンコーダはGOSパラメータセットを符号化する際に次のオプションの1つ以上を持っていてもよい:
− シンタックス要素セットはGOSパラメータセットのシンタックス構造に符号化されてもよい。すなわち、シンタックス要素セットの符号化されたシンタックス要素の値は、GOSパラメータセットのシンタックス構造に含められてもよい。
− シンタックス要素セットは、参照によってGOSパラメータセットに含められてもよい。この参照は、識別子として別のGOSパラメータセットに与えられてもよい。エンコーダは、シンタックス要素セット毎に別々のリファレンスGOSパラメータセットを使用してもよい。
− シンタックス要素セットは、GOSパラメータセットに存在しないことが示されてもよく、推定されてもよい。
エンコーダがGOSパラメータセットを符号化する際、特定のシンタックス要素セットに対して選択可能なオプションは、そのシンタックス要素セットの種類に依存してもよい。例えば、スケーラブルレイヤに関連するシンタックス要素セットはGOSパラメータセットに常時存在してもよい。一方、ビューコンポーネントの全スライスで不変なシンタックス要素のセットは、参照によって包含されるように利用可能ではなく、オプションとしてGOSパラメータセットに存在していてもよい。加えて、リファレンスピクチャ・リスト変更に関連するシンタックス要素は、参照によって含められるか、直接そのままで含められてもよく、あるいはGOSパラメータセットのシンタックス構造に存在しなくてもよい。エンコーダは、GOSパラメータセットのシンタックス構造などのビットストリームにあって、符号化に使用されたオプションの種類を示す標示を符号化してもよい。符号化テーブルおよび/またはエントロピー符号化は、シンタックス要素の種類に依存してもよい。デコーダは、復号されるシンタックス要素の種類に基づいて、エンコーダで使用された符号化テーブルおよび/またはエントロピー符号化に位置する符号化テーブルおよび/またはエントロピー復号を使用してもよい。
エンコーダは、シンタックス要素セットとそのシンタックス要素セットの値に対して元々使用されたGOSパラメータセットとの間の関連を示す複数の手段を備えていてもよい。例えば、エンコーダはシンタックス要素のループを符号化してもよい。こうしたループの各エントリは、参照として使用されたGOSパラメータセットの識別値を示し、参照GOPパラメータセットからコピーされるシンタックス要素セットを識別するシンタックス要素として符号化される。別の実施例では、エンコーダは複数のシンタックス要素でそれぞれがGOSパラメータセットを示すシンタックス要素を符号化してもよい。特定のシンタックス要素セットを含むループにおける最後のGOSパラメータセットは、エンコーダが現在ビットストリームに符号化しているときのGOSパラメータセットにあるシンタックス要素セットに対するリファレンスである。デコーダは、ビットストリームから符号化GOSパラメータセットを解析し、エンコーダと同一のGOSパラメータセットを再生するようにする。
適応パラメータセット(APS)のNALユニットのサイズを減らし、APS-NALユニットを運ぶビットレートを小さくすることを目的としたAPS用部分更新機構を持つことも提案されている。適応パラメータセット(APS)はスライスレベルで共通のピクチャ適用情報を共有する効果的な方法を提供するが、APSのパラメータが先行するAPSの1つ以上と比べて一部だけ変更している場合、APS-NALユニットを独立で符号化することが次善の方法となりうる。
JCTVC-H0069文書(http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H0069-v4.zip)では、APSシンタックス構造は複数のシンタックス要素群にサブ分割され、それぞれが特定の符号化技術(適応ループフィルタリング(ALF)や適応サンプルオフセット(SAO)等)に関連付けられている。APSシンタックス構造におけるこれらの要素群の各々には、それぞれの存在を示すフラグが先行する。APSシンタックス構造はまた、別のAPSに対する条件付き参照を含む。ref_aps_flagは、現APSによって参照されるリファレンスref_aps_idの存在を信号で伝える。こうしたリンク機構を用いて、複数のAPSのリンク済みリストを作成することができる。APSがアクティブである間の復号処理は、リンク済みリストの最初のAPSを指定するためにスライスヘッダの参照を使用する。関連するフラグ(aps_adaptive_loop_filter_data_present_flag等)が設定されたこうしたシンタックス要素群は、元のAPSから復号される。復号後、リンク済みリストから次のリンク済みAPSに進む(存在する場合、ref_aps_flagが1であることによって示される)。 予めその存在を信号で伝えられなかった要素群だけでなく、現APSに存在すると伝えられた要素群も現APSから復号される。こうした機構は、リンク済みAPSのリストに沿って、次の3条件のうちの1つが満たされるまで継続する:(1)要求される全てのシンタックス要素群(SPSやPPS、プロファイル/レベルで示される)がリンク済みAPSの連鎖から復号されたとき;(2)リストの最後が検出されたとき;(3)固定の、またあるいはプロファイル依存の複数のリンクが続いたとき(ただし、リンク数は1でもよい)。要素群がどのリンク済みAPSにも存在しないと示される場合、関連する復号手段はこのピクチャには使用されない。条件(2)は循環参照ループを排除する。こうした参照機構の複雑さは、有限サイズのAPS対応表によって更に制限される。JCTVC-H0069では、APSがアクティブ化される度に逆参照、すなわち、各シンタックス要素群の参照元の決定を行うことが提案されている。APSは通常、スライスの復号開始に一度だけアクティブにされる。
またJCTVC-H0255文書では、スライスヘッダに複数のAPS識別子を含み、それぞれが特定のシンタックス要素群に対する元APSを特定することも提案されている。例えば、あるAPSは量子化行列の元APSであり、別のAPSはALFパラメータの元APSであるといったことを特定してもよい。JCTVC-H0381文書では、APSパラメータの各タイプに対する「コピー」フラグが提案されている。このフラグによって、APSパラメータのタイプを別のAPSからコピーすることができる。JCTVC-H0505文書では、グループパラメータセット(GPS)が導入されている。これは、様々なタイプのパラメータセット(SPSやPPS、APS)のパラメータセット識別子を集めたもので、複数のAPSパラメータセット識別子を含んでもよい。JCTVC-H0505 では更に、スライスヘッダがGPS識別子を含み、そのスライスを復号する際、GPS識別子が個別のPPSおよびAPS識別子の代わりに用いられることも提案されている。
適応パラメータセットの符号化に関する前述の選択肢には、以下の短所の1つ以上が存在しうる。
APS-NALユニットの欠損を検出できず、誤ったAPSパラメータ値が復号に使用される可能性。これは、別のAPSシンタックス構造で使用済みのAPS識別値を使用するAPSシンタックス構造が、符号化され送信される可能性である。しかし、APSシンタックス構造は伝送中に欠落することもある。特に、APS-NALユニットが帯域内伝送される場合および/または信頼度の低い伝送機構で伝送される場合にこうした可能性がある。APS-NALユニットの欠落を検出する手段はこれまで存在しなかった。APS識別子が再利用されてもよいため、欠落したAPS-NALユニットに使用されたAPS識別値に対する参照(例えば、スライスヘッダやAPSパラメータの部分更新に用いる別のAPS-NALユニットからの参照)は、同一のAPS識別値を持つ前のAPS-NALユニットを指してもよい。その結果、スライス復号処理やAPSパラメータの部分更新等で誤ったシンタックス要素値が使用されることになる。こうした誤ったシンタックス要素値の使用により、復号時に深刻な影響を及ぼす可能性がある。例えば、復号ピクチャにはっきりと視認できるエラーが存在したり、復号処理が完全に失敗したりする可能性がある。
メモリ使用量の増加。前段に示した欠落回復問題を回避する選択肢として、APS-NALユニットでAPS識別値を再利用しないことも可能である。しかしこれは、APS識別値の値域が広い、あるいは無制限であることを要する可能性に繋がる。適応パラメータセットの符号化に対する前述の選択肢では、前と同じAPS識別値が使用されるまで、デコーダは全ての適応パラメータセットをメモリに保持することになる。前と同じAPS識別値が使用されると、前の適応パラメータセットが新しいものに置換される。このように、APS識別値の値域が広い、あるいは無制限であることにより、メモリ使用量が増加することになる。しかも、最悪のメモリ使用量を規定することも困難となる。
APS-NALユニットの伝送がビデオ符号化NALユニットと同期されていなくてはならなく、そうでない場合、誤ったAPSパラメータ値が復号に使用される可能性。前述したように、パラメータセットは帯域外および帯域内の両方で伝送可能なように設計されている。帯域外伝送の利点は、信頼性の高い伝送機構を用いることでエラー回復能力が高いことである。パラメータセットを帯域外伝送する場合、パラメータセットはアクティブ化前に利用可能になっていなくてはならないが、これはH.264/AVCのSPSとPPSの設計でもよく知られている特徴である。そのため、帯域外伝送されるパラメータセットとビデオ符号化レイヤのNALユニットとが大まかなレベルで同期されている必要がある。しかしJCTVC-H0069文書では、APSがアクティブ化される度に部分更新APSの逆参照、すなわち、各シンタックス要素群の参照元の決定を行うことが提案されている。APSは通常、スライスの復号開始に一度だけアクティブにされる。スライスヘッダにより参照されるAPS-NALユニットが前のスライスヘッダと比べて変化していなかったとしても、部分更新機構を通じて作成されたリンク済みリストにより参照されるAPS-NALユニットの中には、再送されたものもありうる。その結果、現スライスヘッダにより参照されたAPS-NALユニットのAPSパラメータ値の中にも、変化したものがある可能性もある。したがって、APS-NALユニットの伝送はVCL-NALユニットと同期されていなくてはならない。そうでなければ、逆参照されたAPSがエンコーダおよびデコーダで異なる可能性があるからである。あるいはデコーダが、受信したAPS-NALユニットを、エンコーダでそれを作成または使用したのと同じ順序でVCL-NALユニットに同期しなくてはならない。
例示的実施形態では、H.264/AVCやHEVCドラフト等で規定されているような算術演算子や論理演算子,関係演算子,二値演算子,代入演算子,範囲表記といった共通表記が用いられてもよい。また、H.264/AVCやHEVCドラフト等で規定されているような共通の数学的関数が用いられてもよい。演算の優先順位・実行順序に関する共通規則は、H.264/AVCやHEVCドラフト等で規定されているように使用されてもよい。
例示的実施形態では、各シンタックス要素の解析処理を規定するために、次の記述子が用いられる。
− b(8):任意パターンのビット列を持つバイト(8ビット)。
− se(v):左ビットを先頭とする符号付き整数型の指数ゴロム(Exp-Golomb)符号化シンタックス要素。
− u(n):nビットの符号無し整数。シンタックステーブルでnが"v"であるときは、ビット数が他のシンタックス要素の値に依存して変化する。この記述子に対する解析処理は、最初に記述された最上位ビットを伴う符号無し整数の2進表現として解釈されたビットストリームから、次のnビットによって規定される。
− ue(v):左ビットを先頭とする符号無し整数型のExp-Golomb符号化シンタックス要素。
Exp-Golombビット列は、例えば、次の表を用いて符号番号(codeNum)に変換されてもよい。
Exp-Golombビット列に対応する符号番号は、例えば、次の表を用いてse(v)に変換されてもよい。
種々の実施形態では、エンコーダがAPS-NALユニットを符号化または作成してもよい。作成されたAPS-NALユニットの順序は、APS復号順序として参照される。APS-NALユニットにおけるAPS識別値は、所定の番号付け方式に従ってAPS復号順に割当てられてもよい。例えば、APS識別値は、APS復号順でAPS毎に1ずつ増えてもよい。実施形態によっては、番号付け方式がエンコーダで決定され、シーケンスパラメータセット等に示されてもよい。実施形態によっては、番号付け方式の初期値が既定であって、例えば、符号化ビデオシーケンス用に伝送された最初のAPS-NALユニットに対して値0が用いられてもよい。他の実施形態では、番号付け方式の初期値がエンコーダで決定されてもよい。実施形態によっては、番号付け方式が、temporal_id and nal_ref_flagの値といったAPS-NALユニットの他のシンタックス要素値に依存してもよい。例えば、APS識別値が、符号化される現APS-NALユニットと同一のtemporal_id値を持つ前のAPS-NALユニットより1だけ増やされてもよい。APS-NALユニットが1つの非リファレンスピクチャにしか使用されない場合、エンコーダはAPS-NALユニットのnal_ref_flagを0に設定してもよい。APS識別値は、nal_ref_flagが1であるAPS-NALユニットにおけるAPS識別値よりも増やされているだけでもよい。APS識別値は、別の符号化方式で符号化されてもよい。こうした符号化方式は例えば符号化規格で既定のものでもよいし、エンコーダで決定されシーケンスパラメータセット等で示されてもよい。例えば、符号無し整数型Exp-Golomb符号化等の可変長符号化ue(v)は、APSシンタックス構造のAPS識別値を符号化するのに用いられてもよく、いつでもAPS識別値がAPS-NALユニットを参照するのに用いられる。別の実施例では、固定長符号化u(n),が用いられてもよい。ここでnは所定であるか、エンコーダで決定されシーケンスパラメータセットに示されてもよい。実施形態によっては、符号化APS識別値域が制限されていてもよい。こうした値域の制限はAPS識別値の符号化から推定されてもよい。例えば、APS識別値が固定長符号化u(n)されている場合、エンコーダおよびデコ-ダの両方で値域は0からn-1までであると推定されてもよい。実施形態によっては、値域が符号化規格等で既定されていてもよく、エンコーダで決定されシーケンスパラメータセット等に示されてもよい。例えば、APS識別値が可変長符号化ue(v)され、値域が0から値Nまでと定義されていてもよい。ここでNは、このシーケンスパラメータセットのシンタックス構造におけるシンタックス要素を通じて示される。APS識別子の番号付け方式はモジュロ(modulo)演算を用いてもよい。これは例えば、識別子が値域の最大値を超えると、その値域の最小値に戻る(ラップアラウンドする)ような演算である。例えば、APS識別子がAPS復号順で1ずつ増え、値域が0からNまでの場合、識別値は(prevValue + 1) % (N+1)と決定されてもよい。ここで、prevValueは前のAPS識別値で、%はモジュロ演算を表わす。
APS識別値をAPS復号順で番号付けする方式が所定または信号で伝達済みであることによって、APS-NALユニットの欠落および/または順序通りでない伝送を、例えばデコーダの受信側で検出することができる。換言すれば、APS識別子に関してデコーダは、エンコーダが使用したのと同じ番号付け方式を用いてもよく、そのために、APS識別値は次に受信されるAPS-NALユニットに必ず存在することが分かる。APS識別値が異なるAPS-NALユニットが受信された場合、欠落または順序通りでない伝送であると結論が出されてもよい。実施形態によっては、エラーロバスト性を得るためにAPS-NALユニットの反復が許容されてもよい。これにより、受信順で前のAPS-NALユニットのAPS識別値と同じ値を持つAPS-NALユニットが受信されれば、欠落も順序通りでない伝送も無かったと結論が出される。前述の通り、番号付け方式はtemporal_idやnal_ref_flag等、APS-NALユニットにおける他のパラメータ値に依存してもよい。この場合、受信したAPS-NALユニットのAPS識別値は所定の期待値と比較され、その所定の期待値は、その前のAPS-NALユニットで、番号付け方式で既定される必要条件を満たしているものと比較されてもよい。例えば、実施形態によっては、temporal_idに基づく番号付け方式が用いられてもよい。この場合、デコーダは、前のAPS-NALユニットが現APS-NALユニットと同じtemporal_id値を持つとき、APS識別値は前のAPS-NALユニットに対して1だけ増えていると想定する。デコーダが別のAPS識別値を持つAPS-NALユニットを受信した場合、欠落および/または順序通りでない伝送であると結論を出してもよい。実施形態によっては、受信機またはデコーダ等は、APS-NALユニットを受信した順序から、APS識別値に用いた番号付け方式に基づく復号順序に並び替えするためのバッファおよび/または処理を備えてもよい。
しかし実施形態によっては、APS識別値の差がAPS-NALユニットの意図的削除や偶発的欠落を示すこともある。APS-NALユニットは例えば、サブビットストリーム抽出処理を通じて意図的に削除されてもよい。こうした処理は、ビットストリームからスケーラブルレイヤまたはビュー等を削除する。こうして実施形態によっては、APS-NALユニットに想定されるAPS識別値の割当における差は、デコーダで次のように処理されてもよい。第1に、APS復号順でAPS-NALユニットにおける前のAPS識別値と現APS識別値との間で欠落したAPS識別値が決定される。例えば、前のAPS識別値が3で現APS識別値が6であり、APS識別値は使用する番号付け方式に従ってAPS-NALユニット毎に1だけ増える場合、識別値が4と5のAPS-NALユニットが欠落していると結論が出されてもよい。欠落したAPS識別値に対する適応パラメータセットは具体的に「存在しない」等とマークされてもよい。「存在しない」APSが復号処理で、例えばスライスヘッダのAPS参照識別子を用いたり、APS部分更新機構を通じて参照されたりした場合、デコーダはAPSの偶発的欠落があると結論を出してもよい。
次に、適応パラメータセットが符号化および復号用のメモリまたはバッファに保持されているかを決定する別の選択肢を説明する。この説明では、「バッファから削除」といった表現が使われたとしても、適応パラメータセットはメモリやバッファから削除されず、単に無効、未使用、存在しない、非アクティブ、あるいは、符号化および復号に使われないことを示すその他の表現でマークされるだけでよいことに留意されたい。同様に、この説明では、「バッファに保持」といった表現が使われる場合、適応パラメータセットは任意タイプのメモリ構成や他のストレージに維持され、単に有効、使用中、存在する、アクティブ、あるいは、符号化および復号に使われることを示すその他の表現でマークされるだけでよい。適応パラメータセットの有効性が調べられる、または決定される場合、「バッファに保持」される、または有効、使用中、存在する、アクティブ等とマークされた適応セットは、有効であると決定され、「バッファから削除」された、または無効、未使用、存在しない、非アクティブ等とマークされた適応セットは、無効であると決定されてよい。
実施形態によっては、エンコーダおよびデコーダがメモリに保持する適応パラメータセットの最大数はmax_apsで表わされ、例えば符号化規格において既定であるか、エンコーダで決定されシーケンスパラメータセット等の符号化ビットストリームに示されてもよい。実施形態によっては、エンコーダおよびデコーダの両方がバッファメモリで適応パラメータセットを先入れ先出しでバッファリングしてもよい(スライドウィンドウバッファリングとも呼ばれる)。バッファメモリはmax_apsのスロットを持ち、1スロットで1つの適応パラメータセットを保持できる。 「存在しない」APSがスライドウィンドウバッファリングされてもよい。APSスライドウィンドウバッファの全スロットが占有され、新たなAPSが復号される場合、APS復号順で最古のAPSがスライドウィンドウバッファから削除される。実施形態によっては、番号付け方式が、APS-NALユニットの他のパラメータに依存し、複数のスライドウィンドウバッファと復号動作があってもよい。例えば、番号付け方式がtemporal_id値に固有である場合、temporal_id値毎にそれぞれのスライドウィンドウバッファがあり、それぞれのmax_apsが示されてもよい。実施形態によっては、エンコーダは、指し示されたAPS識別値を使ってスライドウィンドウバッファからAPSを削除するといった特定のAPSバッファ管理動作をビットストリームに符号化してもよい。デコーダはこうしたAPSバッファ管理動作を復号し、それによって、APSスライドウィンドウバッファをエンコーダのものと同一の状態に保つ。実施形態によっては、特定の適応パラメータセットが長期適応パラメータセットとしてエンコーダによって割当てられてもよい。こうした長期割当ては、例えば通常の適応パラメータセットのAPS識別値に予約されている値域以外のAPS識別値を用いるか、特定のAPSバッファ管理動作を通じて行われてもよい。長期適応パラメータセットはスライドウィンドウ動作の影響を受けない。つまり、長期適応パラメータセットはAPS復号順で最古であったとしても、スライドウィンドウバッファから削除されることはない。長期APSの数または最大数は、シーケンスパラメータセット等で示されてもよい。あるいは、適応パラメータセットの割当てが長期であることに基づいてデコーダがその数を推定してもよい。実施形態によっては、スライドウィンドウバッファは、max_apsから長期適応パラメータセットの数または最大数を引いた差に等しい数のスロットを持つように調節されてもよい。例えば符号化規格で、ビットストリームが符号化される際、長期適応パラメータセット用APS識別値が同一の符号化ビデオシーケンス内で別の長期適応パラメータセットによって再利用されないようにすることが要求されてもよい。あるいは、その前の長期適応パラメータセットを無効にするAPS-NALユニットが送信されると直ぐに、APS-NALユニットが信頼できるような伝送が要求または推奨されてもよい。
実施形態によっては、エンコーダおよびデコーダによってメモリに保持される最大のAPS識別値の差を特定する値は、例えば符号化規格で既定されていてもよく、あるいはエンコーダで決定されシーケンスパラメータセット等のビットストリームに示されてもよい。この値はmax_aps_id_diffと呼ばれる。エンコーダおよびデコーダは、特定の適応パラメータセットのAPS識別値に対して、max_aps_id_diffにより決まる制限内にあるAPS識別値を持つような適応パラメータセットのみをメモリに保持する、および/または「使用済」とマークしてもよい。こうしたAPSはAPSの復号順で最後のAPS-NALユニットや、temporal_idが0であるAPS-NALユニットで、APS復号順で最後のもの等である。以下の実施例では、APS識別子は0からmax_aps_idまでの明確な値域を持ち、max_aps_idの値は、例えば符号化規格で既定されていてもよく、あるいはエンコーダで決定されシーケンスパラメータセット等のビットストリームに示されてもよいと仮定する。APS識別値がcurr_aps_idであるAPS-NALユニットが符号化または復号されるとき、curr_aps_idに等しいrp_aps_idを割当てることで次のことが行われてもよい。rp_aps_id >= max_aps_id_diffの場合、APS識別値がrp_aps_idを超えrp_aps_id - max_aps_id_diff未満である全ての適応パラメータセットがバッファから削除される。rp_aps_id < max_aps_id_diffの場合、APS識別値がrp_aps_idを超えmax_aps_id - (max_aps_id_diff - (rp_aps_id + 1))以下である全ての適応パラメータセットが削除される。それ以外の適応パラメータセットはメモリ/バッファに保持される。メモリ/バッファから削除される適応パラメータセットが復号処理で参照される場合、例えばスライスヘッダのAPS識別子の参照や部分APS更新機構を通じて、デコーダは参照されたAPSの偶発的欠落があると結論を出してもよい。
実施形態によっては、エンコーダおよびデコーダは参照ポイントのAPS識別値rp_aps_idを次のように保持してもよい。符号化ビデオシーケンスに対する最初のAPS-NALユニットが符号化または復号されるとき、rp_aps_idは最初のAPS-NALユニットのAPS識別値に設定される。APS識別値がcurr_aps_idである次のAPS-NALユニットが符号化またはAPS復号順で復号される度に、curr_aps_idがrp_aps_idから増える場合にrp_aps_idはcurr_aps_idに更新されてもよい。APS識別値にモジュロ演算が使用されうるため、curr_aps_idがrp_aps_idから増えたかという比較には、max_aps_id後のラップアラウンドを考慮する必要がある。(モジュロ演算において)rp_aps_idから増加したcurr_aps_idとrp_aps_idから減少したcurr_aps_idを区別するために、可能な最大減少分は閾値を持ち、max_aps_id_diffに等しいまたは関連してもよく、あるいはエンコーダで決定されシーケンスパラメータセット等のビットストリームに示されてもよいと仮定する。例えば、次のように行われる。curr_aps_id > rp_aps_idかつcurr_aps_id < rp_aps_id + max_aps_id - 閾値である場合、rp_aps_idはcurr_aps_idに設定されてもよい。curr_aps_id < rp_aps_id - 閾値である場合、rps_aps_idはcurr_aps_idに設定されてもよい。それ以外では、rp_aps_idは変わらない。メモリから削除される適応パラメータセットとメモリに保持されるものの決定は、前述の段落で説明したように行われてもよい。この際、各APS-NALユニットに対してrp_aps_idはcurr_aps_idと等しくなるように割当てられるのではなく、この段落に記載する方式に従って行われるという相違点がある。この段落で記載する方式は、例えばエラー回復を目的としたAPS-NALユニットの再送を許容してもよい。
実施形態によっては、エンコーダは、符号化適応パラメータセットの各々または一部に対してmax_aps_id_diff値等を決定し、max_aps_id_diffを適応パラメータセットNALユニットに含めてもよい。次にデコーダは、シーケンスパラメータセット等、ビットストリームの何れかにある等価のシンタックス要素ではなく、この適応パラメータセットNALユニットを使用してもよい。
実施形態によっては、APSシンタックス構造は、適応パラメータセット用リファレンスセット(APSRS)を含み、リファレンスセットの各項目がAPS識別値を通じて識別されてもよい。APSRSはエンコーダのバッファおよびデコーダに保持される適応パラメータセットを決定してもよい。一方、APSRSにない識別値を持つその他の適応パラメータセットはメモリ/バッファから削除される。メモリ/バッファから削除される適応パラメータセットが復号処理で参照される場合、例えばスライスヘッダのAPS識別子の参照や部分APS更新機構を通じて、デコーダは参照されたAPSの偶発的欠落があると結論を出してもよい。実施形態によっては、特にサブビットストリーム抽出が適用されなかったとき、APSRSがバッファにないAPSの識別値を含む場合、デコーダはそのAPSの偶発的欠落があると結論を出してもよい。
実施形態によっては、1つ以上の特定のタイプのピクチャでAPS-NALユニットがメモリから削除されてもよい。例えば、IDRピクチャでは、全てのAPS-NALユニットがメモリから削除されてもよい。実施例によっては、CRAピクチャで全てのAPS-NALユニットがメモリから削除されてもよい。
実施形態によっては、APSシンタックス構造で部分APS更新機構が例えば次のように有効化されていてもよい。シンタックス要素の各群(OM、ALF、SAO、デブロッキングフィルタのパラメータ等)に対して、エンコーダは、APSシンタックス構造を符号化する際に次のオプションの1つ以上を持っていてもよい:
− シンタックス要素群は、APSシンタックス構造に符号化されてもよい。すなわち、シンタックス要素セットの符号化されたシンタックス要素の値は、APSパラメータセットのシンタックス構造に含められてもよい。
− シンタックス要素群は、参照によってAPSパラメータセットに含められてもよい。この参照は、別のAPSに対する識別子として与えられてもよい。エンコーダは、シンタックス要素群毎に別々のリファレンスAPS識別子を使用してもよい。
− シンタックス要素群は、APSに存在しないことが示されてもよく、推定されてもよい。
エンコーダがAPSを符号化する際、特定のシンタックス要素群に対して選択可能なオプションは、そのシンタックス要素群の種類に依存してもよい。例えば、特定種類のシンタックス要素群がAPSシンタックス構造に常に存在することが要求されてもよい。一方、他のシンタックス要素群は参照によって含められたり、APSシンタックス構造に存在したりしてもよい。エンコーダは、APSシンタックス構造等のビットストリームにあって、符号化に使用されたオプションの種類を示す標示を符号化してもよい。符号化テーブルおよび/またはエントロピー符号化は、シンタックス要素群の種類に依存してもよい。デコーダは、復号されるシンタックス要素群の種類に基づいて、エンコーダで使用された符号化テーブルおよび/またはエントロピー符号化に位置する符号化テーブルおよび/またはエントロピー復号を使用してもよい。
エンコーダは、シンタックス要素群とそのシンタックス要素セットの値の由来として使用されたAPSとの間の関連を示す複数の手段を備えてもよい。例えば、エンコーダはシンタックス要素のループを符号化してもよい。こうしたループの各エントリは、参照として使用されたAPS識別値を示し、参照APSからコピーされるシンタックス要素セットを識別するシンタックス要素として符号化される。別の実施例では、エンコーダは複数のシンタックス要素でそれぞれがAPSを示すシンタックス要素を符号化してもよい。特定のシンタックス要素群を含むループにおける最後のAPSは、エンコーダが現在ビットストリームに符号化しているAPSにあるシンタックス要素群に対するリファレンスである。デコーダは、ビットストリームから符号化適応パラメータセットを解析し、エンコーダと同一の適応パラメータセットを再生するようにする。
実施形態によっては、APS-NALユニットをVCL-NALユニットに同期するまたは順序を合わせる要件が次の通りとなる。APS-NALユニットが帯域外伝送される場合、復号順のAPS-NALユニットが伝送中に維持されるか、前述したような受信側でのバッファリングでAPS復号順序が再構成されることで十分である。加えて、符号化スライスNALユニット等のVCL-NALユニットからAPS-NALユニットが参照される前にAPS-NALユニットが復号されるように、帯域外伝送機構および/または同期機構がなくてはならない。APS識別値が再利用される場合、伝送および/または同期機構は、同一識別値を持つ前のAPS-NALユニットに対する最後の参照を含むNALユニットが復号されるまで、APS-NALユニットは復号されないことに注意しなくてはならない。しかし、JCTVC-H0069の並列更新方式で要求されるような、APSおよびVCLのNALユニットのそれぞれの符号化順序を解決できるようにするといった正確な同期は不要である。前述の要件を満たすAPS-NALユニットとVCL-NALユニットの同期または順序合わせは、様々な手段で行われてもよい。例えば、最初の符号化ビデオシーケンスまたはGOPの全ピクチャの復号に必要な全ての適応パラメータセットは、セッション確立段階で伝送され、それによって、セッションが確立され最初のVCLデータが復号側に到達するときに復号できるようになってもよい。次の符号化ビデオシーケンスまたはGOPに対する適応パラメータセットは、最初の符号化ビデオシーケンスまたはGOPに使われたものとは異なる識別値を用いて直後に行われる。こうして、第1の符号化ビデオシーケンスまたはGOPのVCLデータが伝送されるとき、第2の符号化ビデオシーケンスまたはGOPに対する適応パラメータセットが伝送される。次の符号化ビデオシーケンスまたはGOPに対する適応パラメータセットの伝送も同様に扱われてもよい。
実施形態によっては、APS-NALユニットの逆参照または復号は、APS-NALユニットがAPS復号順で復号される限り、APSがVCL-NALユニットから参照される前の任意の時点で行われてもよい。APS-NALユニットの復号は、参照を解決して参照されたシンタックス要素群を復号されるAPSにコピーすることで行われてもよい。実施形態によっては、APS-NALユニットの逆参照または復号は、VCL-NALユニットが最初にそれを参照するときに行われてもよい。実施形態によっては、APS-NALユニットの逆参照または復号は、VCL-NALユニットがそれを参照する度に行われてもよい。
例示的実施形態では、シンタックス構造とシンタックス要素の意味,復号処理は次の通りに規定されてもよい。ビットストリーム中のシンタックス要素は太字体で表わされる。各シンタックス要素はそれぞれの名前(下線文字を伴い全て小文字)で記述され、1または2のシンタックスカテゴリーが使用されたり、符号化表現方法として1または2の記述子が使用されたりすることもある。復号処理はシンタックス要素の値と先に復号済みのシンタックス要素の値に従って行われる。シンタックス要素の値は、シンタックステーブルまたはテキストで使用される際は通常の(太字でない)書式で表わされる。場合によっては、シンタックステーブルはシンタックス要素値から派生する他の変数の値を用いてもよい。こうした変数は、下線文字を伴わず小文字と大文字を用いてシンタックステーブルまたはテキストに表わされる。大文字で始まる変数は、現在のシンタックス構造とそれに従属する全てのシンタックス構造の復号用に生成される。大文字で始まる変数は、その変数の元のシンタックス構造を示さずに後のシンタックス構造用として復号処理に使用されてもよい。小文字で始まる変数は、その変数が生成されたコンテキスト内でも使用される。場合によっては、シンタックス要素値または変数値の数値と変換可能な「ニーモニック」名も使用される。「ニーモニック」名は数値とは無関係に使用されることもある。数値と名前の関連はテキストに規定されている。名前は下線文字で分けられた1つ以上の文字列で構成される。各文字列は大文字で始まり、途中で大文字を含んでもよい。
例示的実施形態では、シンタックス構造は次のように規定されてもよい。丸括弧内の一連の文は複文であり、機能的には単文として扱われる。"while"構文は、条件が真であるかどうかの判断を規定し、条件が真であれば、その条件が真でなくなるまで、単文(または複文)の評価を繰り返し指定する。"do…while"構文は、一旦文の評価を規定した後、条件が真であるかどうかの判断が続き、条件が真であれば、その条件が真でなくなるまで、文の評価を繰り返し指定する。"if…else"構文は、条件が真であるかどうかの判断を規定し、条件が真であれば最初の文の評価を指定し、そうでなければ、代替文の評価を指定する。この構文の"else"節と関連する代替文は、代替文の評価が不要であれば省略できる。"for"構文は、初期値文の評価を指定し、条件判断が続き、条件が真であれば、その条件が真でなくなるまで、最初の文と後に続く文の評価を繰り返し指定する。
実施形態によっては、シーケンスパラメータセットのシンタックス構造におけるシンタックスが、次のようにmax_aps_idとmax_aps_id_diffのシンタックス要素を含んで追加されてもよい。
max_aps_idとmax_aps_id_diffのシンタックス要素の意味は次の通りに規定されてもよい。max_aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、aps_idの最大許容値を規定する。max_aps_id_diff(原文では太字であり、ビットストリーム中のシンタックス要素である)は、「使用済」とマークされた適応パラメータセットのaps_id値の値域を規定する。
例示的実施形態によっては、適応パラメータセットRBSPのシンタックスであるaps_rbsb( )は次の通りに規定されてもよい。
aps_rbsp( )の意味は次の通りに規定されてもよい。
aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、適応パラメータセットを識別する識別値を規定する。
partial_update_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、参照でこのAPSに含まれるシンタックス要素が存在しないことを規定する。partial_update_flag equalが1の場合、参照でこのAPSに含まれるシンタックス要素が存在することを規定する。
common_reference_aps_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、参照でこのAPSに含まれるシンタックス要素の各群が、異なるAPS識別値で識別される別のソースAPSに由来する可能性を規定する。common_reference_aps_flagが1の場合、参照でこのAPSに含まれるシンタックス要素の各群が、同一のソースAPSに由来することを規定する。
common_reference_aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、参照でこのAPSに含まれるシンタックス要素の全群に対するソースAPSのAPS識別値を規定する。
aps_scaling_list_data_present_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、1の場合、スケーリングリストパラメータがこのAPSに存在することを規定する。0の場合、スケーリングリストパラメータがこのAPSに存在しないことを規定する。
aps_scaling_list_data_referenced_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、スケーリングリストパラメータがこのaps_rbsp( )に存在することを規定する。aps_scaling_list_data_referenced_flagが1の場合、スケーリングリストパラメータが参照でこのAPSに含まれることを規定する。
aps_scaling_list_data_reference_aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、参照でこのAPSに含まれるスケーリングリストパラメータのソースAPSのAPS識別値を規定する。
aps_deblocking_filter_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、1の場合、デブロッキングパラメータがこのAPSに存在することを規定する。aps_deblocking_filter_flagが0の場合、デブロッキングパラメータがこのAPSに存在しないことを規定する。
aps_deblocking_filter_referenced_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、デブロッキングパラメータがこのaps_rbsp( )に存在することを規定する。aps_deblocking_filter_referenced_flagが1の場合、デブロッキングパラメータが参照でこのAPSに含まれることを規定する。
aps_deblocking_filter_reference_aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、参照でこのAPSに含まれるデブロッキングパラメータのソースAPSのAPS識別値を規定する。
aps_sao_interleaving_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、1の場合、SAOパラメータが現APSを参照するスライスに対するスライスデータにインターリーブされていることを規定する。0の場合、SAOパラメータが現APSを参照するスライスに対するAPSにあることを規定する。アクティブなAPSが存在しない場合、aps_sao_interleaving_flagは0であると推定される。
aps_sample_adaptive_offset_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、1の場合、SAOが現APSを参照するスライスに対してオンであることを規定する。0の場合、SAOが現APSを参照するスライスに対してオフであることを規定する。アクティブなAPSが存在しない場合、aps_sample_adaptive_offset_flag値は0であると推定される。
aps_sao_referenced_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、SAOパラメータがこのaps_rbsp( )に存在することを規定する。aps_sao_referenced_flagが1の場合、SAOパラメータが参照でこのAPSに含まれることを規定する。
aps_sao_reference_aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、参照でこのAPSに含まれるSAOパラメータのソースAPSのAPS識別値を規定する。
aps_adaptive_loop_filter_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、1の場合、ALFが現APSを参照するスライスに対してオンであることを規定する。0の場合、ALFが現APSを参照するスライスに対してオフであることを規定する。アクティブなAPSが存在しない場合、aps_adaptive_loop_filter_flag値は0であると推定される。
aps_alf_referenced_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、ALFパラメータがこのaps_rbsp( )に存在することを規定する。aps_alf_referenced_flagが1の場合、ALFパラメータが参照でこのAPSに含まれることを規定する。
aps_alf_reference_aps_id(原文では太字であり、ビットストリーム中のシンタックス要素である)は、参照でこのAPSに含まれるALFパラメータのソースAPSのAPS識別値を規定する。
aps_extension_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は、0の場合、aps_extension_data_flagシンタックス要素がピクチャパラメータセットのRBSPシンタックス構造に存在しないことを規定する。aps_extension_flagは、この推奨規格または国際規格に準拠するビットストリームでは0でなくてはならない。aps_extension_flagの値1は、ITU-TまたはISO/IECが将来使用するために予約されている。デコーダは、ピクチャパラメータセットのNALユニットにおけるaps_extension_flagが値1の場合、それに続く全データを無視しなくてはならない。
aps_extension_data_flag(原文では太字であり、ビットストリーム中のシンタックス要素である)は任意の値でよい。この値は、この推奨規格または国際規格に規定されるプロファイルに適合するデコーダに影響を与えない。
実施形態によっては、適応パラメータセットの全部または一部、および関連するシンタックス要素であるaps_id、common_reference_aps_id、aps_XXX_referenced_aps_id(XXXはscaling_list_data、deblocking_filter、alf、またはsaoである)、max_aps_id_diff等は、u(v)として符号化されてもよい。前述のu(v)符号化シンタックス要素の長さは、max_aps_idの値で決定されてもよい。例えば、Ceil( Log2( max_aps_id + 1 )ビットがこうしたシンタックス要素に用いられてもよい。ここで、Ceil( x ) はx以上である最小の整数であり、Log2( x ) は2を底とするxの対数を返す。多くに例示的実施形態でmax_aps_idがシーケンスパラメータセットに含まれるため、適応パラメータセットのシンタックス構造は、その適応パラメータセットの識別子を含むように追加されてもよい。
実施形態によっては、 aps_rbsp( )シンタックス構造等が、aps_extension_flagが1である事等を通じて拡張されてもよい。こうした拡張は例えば、スケーラブル拡張やマルチビュー、3次元拡張に関連するシンタックス要素群を扱うのに用いられてもよい。aps_extension_flagが0であるAPSシンタックス構造は、参照されるAPSでaps_extension_flagが1であったとしても、aps_extension_flag equalが0であるaps_rbsp( )シンタックス構造に含まれるようなタイプのシンタックス要素群を参照で含んでもよい。
実施形態によっては、適応パラメータセットのNALユニットは次の順序のステップで復号されてもよい。
− currApsIdは、復号される適応パラメータセットのNALユニットのaps_id値であるとする。
− currApsIdがmax_aps_id_diff以上の場合、aps_id値がcurrApsIdを超えcurrApsId - max_aps_id_diff未満である全ての適応パラメータセットが「未使用」とマークされる。
− currApsIdがmax_aps_id_diff未満の場合、aps_id値がcurrApsIdを超えmax_aps_id - ( max_aps_id_diff - ( currApsId + 1 ) )以下である全ての適応パラメータセットが「未使用」とマークされる。
− partial_update_flagが1かつaps_scaling_list_data_referenced_flagが1の場合、scaling_list_param( )シンタックス構造におけるシンタックス要素の値は、APS-NALユニットに対するscaling_list_param( )シンタックス構造にあるものと同じ値を持つと推定される。ここで、APS-NALユニットのaps_idは、common_reference_aps_idがあればcommon_reference_aps_id、そうでなければaps_scaling_list_data_reference_aps_idに等しい。
− partial_update_flagが1かつaps_deblocking_filter_flagが1の場合、disable_deblocking_filter_flagとbeta_offset_div2、tc_offset_div2の値はそれぞれ、APS-NALユニットにあればそのdisable_deblocking_filter_flagとbeta_offset_div2、同じくあればそのtc_offset_div2と同じ値を持つと推定される。ここで、APS-NALユニットのaps_idは、common_reference_aps_idがあればcommon_reference_aps_id、そうでなければaps_deblocking_filter_reference_aps_idに等しい。
− partial_update_flagが1かつaps_sao_interleaving_flagが0かつaps_sample_adaptive_offset_flagが1の場合、aps_sao_param( )シンタックス構造におけるシンタックス要素の値は、APS-NALユニットに対するaps_sao_param( )シンタックス構造にあるものと同じ値を持つと推定される。ここで、APS-NALユニットのaps_idは、common_reference_aps_idがあればcommon_reference_aps_id、そうでなければaps_sao_reference_aps_idに等しい。
− partial_update_flagが1かつaps_adaptive_loop_filter_flagが1の場合、alf_param( ) シンタックス構造におけるシンタックス要素の値は、APS-NALユニットに対するalf_param( ) シンタックス構造にあるものと同じ値を持つと推定される。ここで、APS-NALユニットのaps_idは、common_reference_aps_idがあればcommon_reference_aps_id、そうでなければaps_alf_reference_aps_idに等しい。
− 復号される適応パラメータセットのNALユニットは「使用済」とマークされる。
前述の例示的実施形態は、ビットストリームのシンタックスを用いて記述されていた。しかし、対応する構成および/またはコンピュータプログラムがビットストリームを生成するエンコーダおよび/またはビットストリームを復号するデコーダに存在できることも理解されるべきである。同様に、エンコーダを参照して例示的実施形態が記述されていたことに対して、結果として得られるビットストリームとデコーダに対応する要素が備わることも理解されるべきである。同様に、デコーダを参照して例示的実施形態が記述されていたことに対して、デコーダによって復号されるビットストリームを生成する構成および/またはコンピュータプログラムをエンコーダが備えることも理解されるべきである。
前述では、適応パラメータセットに関連して実施形態が説明されている。しかし、こうした実施形態は、GOSパラメータセットやピクチャパラメータセット、シーケンスパラメータセット等の任意タイプのパラメータセットを用いて実現されうることを理解する必要がある。
前述の実施例は電子デバイスのコーデックにおいて動作する本発明の実施形態を記述しているが、以下で記述されるように本発明が任意のビデオコーデックの一部として実装され得ることを理解されたい。したがって例えば、本発明の実施形態は、固定または有線の通信経路を通じてビデオ符号化を実装し得るビデオコーデックに実装されてもよい。
そしてユーザ装置は、前述の本発明の実施形態に記述されるこうしたビデオコーデックを備えてもよい。「ユーザ機器」との語句は、如何なる種類の無線ユーザ機器を表してもよく、例えば携帯電話やポータブルデータ処理装置、ポータブルWebブラウザであってもよい。
さらに、地上波公共移動通信ネットワーク(public land mobile network;PLMN)が、前述のビデオコーデックを含んでもよい。
一般に、様々な実施形態が、ハードウェアまたは特定用途向け回路、ソフトウェア、ロジック、またはそれらの組み合わせで実装されてもよい。例えば、ある場合ではハードウェアで実装されてもよく、一方別の場合では、コントローラやマイクロプロセッサ等のコンピュータデバイスによって実行されるファームウェアやソフトウェアで実装されてもよい。本発明の種々の形態はブロック図,フローチャート,または他の図的記述を使用して記述ないし図示される。これらのブロック,装置,システム,技術,またはここで記述される方法は、非限定的な例として、ハードウェア,ソフトウェア,ファームウェア,特定用途向け回路やロジック,汎用ハードウェア,コントローラや他のコンピュータデバイス,またはそれらの組み合わせで実装されてもよいと理解されるべきである。
そして本発明の実施形態は、移動デバイスのデータプロセッサによって実行可能なコンピュータソフトウェア,ハードウェア,またはソフトウェアとハードウェアの組合せによって実装されてもよい。またこの点に関して、添付する図面に示される論理フローの任意のブロックが、プログラムのステップや相互接続された論理回路・ブロック・機能、またはプログラムのステップ、論理回路・ブロック・機能の組合せを表現してもよいことに留意されたい。ソフトウェアは、メモリチップ等の物理メディアやプロセッサ内に実装されるメモリブロック,ハードディスクやフレキシブルディスク等の磁気メディア,DVDやそのデータ異形態であるCD等の光学式メディアに格納されてもよい。
本発明の様々な実施形態は、メモリに存在するコンピュータプログラムコードを用いて実装でき、関連する装置に本発明を遂行させられる。例えば、端末装置は、データの処理・送受信を行う回路および電子装置と、メモリにコンピュータプログラムコードと、プロセッサを備えてもよい。プロセッサは、コンピュータプログラムコードを実行すると、端末装置に本実施形態の構成を遂行させる。また更に、ネットワーク装置は、データの処理・送受信を行う回路および電子装置と、メモリにコンピュータプログラムコードと、プロセッサを備えてもよい。プロセッサは、コンピュータプログラムコードを実行すると、ネットワーク装置に本実施形態の構成を遂行させる。
メモリは、ローカルな技術環境に適したあらゆる種類のものであってよい。例えば、半導体ベースのメモリデバイス,磁気メモリデバイス・システム,光学式メモリデバイス・システム,固定式・移動式メモリ等の様々な適合するデータ格納技術を用いて実装されてもよい。-データプロセッサは、ローカルな技術環境に適したあらゆる種類のものであってよく、非限定的な例として、一つ以上の汎用コンピュータ,特定用途向けコンピュータ,マイクロプロセッサ,デジタル信号プロセッサ(DSP),マルチコアプロセッサ・アーキテクチャに基づくプロセッサを含んでもよい。--
本発明の実施形態は、集積回路モジュールのような、様々な要素で実施されることもできる集積回路の設計は多くは自動化されたプロセスである。論理レベルの設計を、半導体基板上にエッチング・形成するための半導体回路設計に変換する複雑で強力なソフトウェアツールが利用可能である。
カリフォルニア州マウンテンビューのSynopsys, Incや、カリフォルニア州サンノゼのCadence Designのような業者が提供するプログラムは、定評のある設計ルールと実績のある設計モジュールのライブラリに基づいて、半導体チップ上に導電経路や要素を配する。-半導体回路の設計が完了すると、それは、OpusやGDSII等の標準的な電子フォーマットの形で半導体製造設備または、いわゆるfabに送られる。
前述の説明は、本発明の非限定的な実施例を十分かつ詳細に記述している。しかし、こうした前述の説明を、添付する図面および特許請求の範囲と併せて考慮すれば、種々の変更および適応が可能であることは、本願に関連する技術分野の当業者には明らかであろう。さらに、本発明が教示するこうした事項の全ておよび類似する変形は、その全てが本発明の範囲内にある。
さらに、幾つかの実施例を以下に示す。
第1の実施例によれば、次の方法が提示され、この方法は:
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を含む。
実施形態によっては、前記方法は識別値有効範囲を定義することを含む。
実施形態によっては、前記方法は:
識別値の最大差を定義することと;
最大識別値を定義することを更に含み、
前記方法は、次の条件:
− 前記第2のパラメータセット識別子が前記第1のパラメータセットの識別子よりも大きく、かつ、前記第2のパラメータセット識別子と前記第1のパラメータセットの識別子との差が前記識別値の最大差以下であること;
− 前記第1のパラメータセット識別子が前記第2のパラメータセットの識別子よりも大きく、かつ、前記第2のパラメータセット識別子が前記識別値の最大差以下であり、かつ、前記第1のパラメータセット識別子と前記第2のパラメータセットの識別子との差が、前記最大識別値と前記識別値の最大差との差よりも大きいこと;
の1つが真である場合、前記第1のパラメータセットが有効であると決定することを含む。
実施形態によっては、前記方法は、前記第1のパラメータセットと前記第2のパラメータセットとの間で符号化される第3のパラメータセットが受取られなかったかを決定するために、前記第2のパラメータセット識別子と前記第1のパラメータセットの識別子との差を使用することを含む。
実施形態によっては、前記方法は:
前記第2のパラメータセットを復号することと;
前記第2のパラメータセットが、有効であると決定されなかった前記第1のパラメータセットに対するリファレンスを含むかを調べることと;
を含む。
実施形態によっては、前記方法は:
前記第1のパラメータセットおよび前記第2のパラメータセットをバッファに保存することと;
前記第1のパラメータセットが有効でないと決定される場合、該パラメータセットを未使用にすることと;
を更に含む。
第2の実施例によれば、次の方法が提示され、この方法は:
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を前記第1のパラメータセットに付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を含む。
実施形態によっては、前記方法は識別値有効範囲を定義することを含む。
実施形態によっては、前記方法は前記識別子を前記識別値有効範囲から選択すること
を含む。
実施形態によっては、前記方法は:
識別値の最大差を定義することと;
最大識別値を定義することを更に含む。
実施形態によっては、前記方法は、前記第1のパラメータセット識別子が有効であると決定された場合、前記第1のパラメータセットから識別子の異なる前記第2のパラメータセットの識別子を設定することを含む。
実施形態によっては、前記方法は:
前記第1のパラメータセット識別子が有効であると決定された場合、前記第2のパラメータセットが前記第1のパラメータセットを参照できるようにすることを含む。
第3の実施例によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置が提示される。前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサを用いて、前記装置に:
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させるように構成される。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に、識別子有効範囲を定義させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に:
識別値の最大差を定義することと;
最大識別値を定義することと;
次の条件:
− 前記第2のパラメータセット識別子が前記第1のパラメータセットの識別子よりも大きく、かつ、前記第2のパラメータセット識別子と前記第1のパラメータセットの識別子との差が前記識別値の最大差以下であること;
− 前記第1のパラメータセット識別子が前記第2のパラメータセットの識別子よりも大きく、かつ、前記第2のパラメータセット識別子が前記識別値の最大差以下であり、かつ、前記第1のパラメータセット識別子と前記第2のパラメータセットの識別子との差が、前記最大識別値と前記識別値の最大差との差よりも大きいこと;
の1つが真である場合、前記第1のパラメータセットが有効であると決定することと;
を遂行させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に、前記第1のパラメータセットと前記第2のパラメータセットとの間で符号化される第3のパラメータセットが受取られなかったかを決定するために、前記第2のパラメータセット識別子と前記第1のパラメータセットの識別子との差を使用させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に:
前記第2のパラメータセットを復号することと;
前記第2のパラメータセットが、有効であると決定されなかった前記第1のパラメータセットに対するリファレンスを含むかを調べることと;
を遂行させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に:
前記第1のパラメータセットおよび前記第2のパラメータセットをバッファに保存することと;
前記第1のパラメータセットが有効でないと決定される場合、該パラメータセットを未使用にすることと;
を遂行させる。
第4の実施例によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置が提示される。前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサを用いて、前記装置に:
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を前記第1のパラメータセットに付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を添付し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させるように構成される。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に、識別子有効範囲を定義させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に、前記識別子を前記識別値有効範囲から選択させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に:
識別値の最大差を定義することと;
最大識別値を定義することと;
を遂行させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に、前記第1のパラメータセット識別子が有効であると決定された場合、前記第1のパラメータセットから識別子の異なる前記第2のパラメータセットの識別子を設定させる。
前記装置の実施形態によっては、前記コードを格納する少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると前記装置に更に、前記第1のパラメータセット識別子が有効であると決定された場合、前記第2のパラメータセットが前記第1のパラメータセットを参照できるように遂行させる。
第5の実施例によれば、1つ以上の命令の1つ以上のシーケンスを含むコンピュータプログラム製品が提示される。前記1つ以上の命令の1つ以上のシーケンスは、1つ以上のプロセッサによって実行されると、装置に少なくとも、
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させる。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも、識別子有効範囲を定義させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも:
識別値の最大差を定義することと;
最大識別値を定義することと;
次の条件:
− 前記第2のパラメータセット識別子が前記第1のパラメータセットの識別子よりも大きく、かつ、前記第2のパラメータセット識別子と前記第1のパラメータセットの識別子との差が前記識別値の最大差以下であること;
− 前記第1のパラメータセット識別子が前記第2のパラメータセットの識別子よりも大きく、かつ、前記第2のパラメータセット識別子が前記識別値の最大差以下であり、かつ、前記第1のパラメータセット識別子と前記第2のパラメータセットの識別子との差が、前記最大識別値と前記識別値の最大差との差よりも大きいこと;
の1つが真である場合、前記第1のパラメータセットが有効であると決定することと;
を遂行させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記方法は、前記第1のパラメータセットと前記第2のパラメータセットとの間で符号化される第3のパラメータセットが受取られなかったかを決定するために、前記第2のパラメータセット識別子と前記第1のパラメータセットの識別子との差を使用することを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも:
前記第2のパラメータセットを復号することと;
前記第2のパラメータセットが、有効であると決定されなかった前記第1のパラメータセットに対するリファレンスを含むかを調べることと;
を遂行させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも:
前記第1のパラメータセットおよび前記第2のパラメータセットをバッファに保存することと;
前記第1のパラメータセットが有効でないと決定される場合、該パラメータセットを未使用にすることと;
を遂行させる、前記1つ以上のシーケンスを含む。
第6の実施例によれば、1つ以上の命令の1つ以上のシーケンスを含むコンピュータプログラム製品が提示される。前記1つ以上の命令の1つ以上のシーケンスは、1つ以上のプロセッサによって実行されると、装置に少なくとも、
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を付与することと;
第2のパラメータセットを符号化することと;前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を添付し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行させる。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも、識別子有効範囲を定義させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも、前記識別子を前記識別値有効範囲から選択させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも:
識別値の最大差を定義することと;
最大識別値を定義することと;
を遂行させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも、前記第1のパラメータセット識別子が有効であると決定された場合、前記第1のパラメータセットから識別子の異なる前記第2のパラメータセットの識別子を設定させる、前記1つ以上のシーケンスを含む。
実施形態によっては、前記コンピュータプログラム製品は、1つ以上の命令の1つ以上のシーケンスであって、1つ以上のプロセッサによって実行されると、装置に少なくとも、前記第1のパラメータセット識別子が有効であると決定された場合、前記第2のパラメータセットが前記第1のパラメータセットを参照できるように遂行させる、前記1つ以上のシーケンスを含む。
第7の実施例によれば、次の装置が提示され、この装置は、
第1のパラメータセットを受取る手段と;
前記第1のパラメータセットの識別子を取得する手段と;
第2のパラメータセットを受取る手段と;前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定する手段と;
を備える。
第8の実施例によれば、次の装置が提示され、この装置は、
第1のパラメータセットを符号化する手段と;
前記第1のパラメータセットの識別子を付与する手段と;
第2のパラメータセットを符号化する手段と;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を添付し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定する手段と;
を備える。
第9の実施例によれば、次のビデオデコーダが提示され、このビデオデコーダは、
第1のパラメータセットを受取ることと;
前記第1のパラメータセットの識別子を取得することと;
第2のパラメータセットを受取ることと;前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットにおいて有効識別値リストを受取り、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットにおいて前記第2のパラメータセットの識別子を受取り、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行するように構成される。
第10の実施例によれば、次のビデオエンコーダが提示され、このビデオエンコーダは、
第1のパラメータセットを符号化することと;
前記第1のパラメータセットの識別子を前記第1のパラメータセットに付与することと;
第2のパラメータセットを符号化することと;
前記第1のパラメータセットの有効性を次のこと:
− 前記第2のパラメータセットに有効識別値リストを付与し、前記第1のパラメータセットの識別子が前記有効識別値リストにある場合に前記第1のパラメータセットが有効であると決定すること;
− 前記第2のパラメータセットに前記第2のパラメータセットの識別子を付与し、前記第1のパラメータセットの識別子および前記第2のパラメータセットの識別子に基づいて、前記第1のパラメータセットが有効であると決定すること;
の少なくとも1つに基づいて決定することと;
を遂行するように構成される。