以下では、所望されるランダム・アクセスされたピクチャを正しくデコーディングする目的でデコーディングが求められているピクチャを識別するための好適な装置および考えられるメカニズムをさらに詳細に説明する。この点に関して、第1に図1および図2の参照が指示されるが、図1は、本発明の一実施形態に係るコーデックを包含することのできる例示的装置または電子デバイス50の概略図として、一例示的実施形態に係るビデオ・コーディング・システムのブロック図を示している。図2は、一例示的実施形態に係る装置のレイアウトを示す。図1および2の要素について次に説明する。
電子デバイス50は、例えば無線通信システムの移動体端末またはユーザー機器であることができる。しかしながら、本発明の実施形態を、ビデオ画像のエンコーディングとデコーディングまたは、エンコーディングまたはデコーディングを必要とする任意の電子デバイスまたは装置の内部で実装できることが認識されると考えられる。
装置50は、デバイスを包含し保護するためのハウジング30を備えることができる。装置50はさらに、液晶ディスプレーの形をしたディスプレー32を備えることができる。本発明の他の実施形態において、ディスプレーは、画像または映像を表示するのに好適である任意の好適なディスプレー技術であることができる。装置50は、さらに、キーパッド34を含むことができる。本発明の他の実施形態において、任意の好適なデータまたはユーザー・インターフェース・メカニズムを利用することができる。例えば、ユーザー・インターフェースをタッチセンサー式ディスプレーの一部としての仮想キーボードまたはデータ・エントリ・システムとして実装することができる。
装置は、デジタルまたはアナログ信号入力端であることのできるマイクロホン36または任意の好適な音声入力端を備えることができる。装置50はさらに、本発明の実施形態においてはイヤホーン38、スピーカー、またはアナログまたはデジタル出力接続のうちのいずれか1つであることのできる音声出力デバイスをさらに備えることができる。装置50は同様に、バッテリ40を備えることもできる(または、本発明の他の実施形態においては、デバイスは、太陽電池、燃料電池またはぜんまい式発電機などの任意の好適な移動体エネルギー・デバイスにより動力供給可能である)。装置はさらに、画像および/または映像を記録または捕捉することのできるカメラを備えることができる。装置50はさらに、他のデバイスに対する短可視距離通信のための赤外線ポートを備えることができる。他の実施形態において、装置50はさらに、Bluetooth(登録商標)無線接続またはUSB/ファイヤ・ワイヤー有線接続などの任意の好適な短距離通信ソリューションを備えることができる。
装置50は、装置50を制御するためのコントローラ56またはプロセッサを備えることができる。コントローラ56をメモリ58に接続することができ、このメモリ58は、本発明の実施形態において、画像および音声データの形をしたデータを両方共記憶でき、および/または同様にコントローラ56上での実装のための命令を記憶することもできる。コントローラ56はさらに、音声データおよび/または映像データのコーディングおよびデコーディングを実施するかまたはコントローラにより実施されるコーディングおよびデコーディングを補助するのに好適なコーデック回路54に接続可能である。
装置50はさらに、ユーザー情報を提供するため、およびネットワークにおいてユーザーの認証および許可向けの認証情報を提供するのに好適であるために、例えばUICCおよびUICCリーダーなどの、カード・リーダー48およびスマート・カード46を備えることができる。
装置50は、例えばセルラー通信ネットワーク、無線通信システムまたは無線ローカル・エリア・ネットワークとの通信のために、無線通信信号を生成するのに好適で、コントローラに接続された無線インターフェース回路52を備えることができる。装置50はさらに、他の装置に対して無線インターフェース回路52において生成された無線周波数信号を伝送し、他の装置から無線周波数信号を受信するため、無線インターフェース回路52に接続されたアンテナ44を備えることができる。
装置50は、個別のフレームを記録また検出することのできるカメラを備えることができ、これらのフレームは次に、処理のためコーデック54またはコントローラにパスされる。装置は、伝送および/または記憶の前に別のデバイスから処理のためのビデオ画像データを受信することができる。装置50は同様に、無線でまたは有線接続によって、コーディング/デコーディングのための画像を受信することもできる。
図3に関しては、本発明の実施形態を内部で使用できるシステムの一例が示されている。システム10は、1つ以上のネットワークを通して通信できる多数の通信デバイスを備えている。システム10は、非限定的に無線セルラーホン・ネットワーク(例えばGSM(登録商標)、UMTS、CDMAネットワークなど)、例えばIEEE802.X規格のいずれかによって定義されている無線ローカル・エリア・ネットワーク(WLAN)、Bluetoothパーソナル・エリア・ネットワーク、イーサネット(登録商標)・ローカル・エリア・ネットワーク、トークン・リング・ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークおよびインターネットを含む、有線または無線ネットワークの任意の組合せを備えることができる。
システム10は、本発明の実施形態を実装するのに好適な有線または無線の両方の通信デバイスまたは装置50を含むことができる。
例えば、図3に示されたシステムは、移動体電話ネットワーク11およびインターネット28の一表現を示す。インターネット28に対する接続性は、非限定的に、長距離無線接続、短距離無線接続および、非限定的に電話線、ケーブル回線、電力線、および類似の通信経路を含めたさまざまな有線接続を含むことができる。
システム10に示された例示的通信デバイスは、非限定的に、電子デバイスまたは装置50、携帯情報端末(PDA)と携帯電話の組合せ14、PDA16、統合通信デバイス(IMD)18、デスクトップ・コンピュータ20、ノート型コンピュータ22を含むことができる。装置50は、静止型であるかまたは移動中の人物により搬送される移動体であることができる。装置50は同様に、車、トラック、タクシー、バス、列車、船、飛行機、自転車、オートバイまたは任意の類似の好適な輸送手段を非限定的に含めた輸送手段の中に位置設定されることもできる。
実施形態は同様に、セット・トップ・ボックス、すなわちディスプレーまたは無線能力を有するまたは有さない可能性のあるデジタルTV受信機内、ハードウェアまたはソフトウェアまたはエンコーダ/デコーダ実装の組合せを有する、タブレットまたは(ラップトップ)コンピュータ(PC)内、さまざまなオペレーティングシステム内、およびハードウェア/ソフトウェアベースのコーディングを提供するチップセット、プロセッサ、DSPおよび/または埋込み型システム内でも実装可能である。
いくつかのまたはさらなる装置は、基地局24への無線接続25を通して呼出しおよびメッセージを送信し受信し、サービス・プロバイダと通信することができる。基地局24を、携帯電話ネットワーク11とインターネット28の間の通信を可能にするネットワークサーバー26に接続することができる。システムは、追加の通信デバイスおよびさまざまなタイプの通信デバイスを含むことができる。
通信デバイスは、符号分割多元接続(CDMA)、移動体通信用グローバル・システム(GSM)、汎用移動体遠隔通信システム(UMTS)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、伝送制御プロトコル・インターネット・プロトコル(TCP−IP)、ショート・メッセージ・サービス(SMS)、マルチメディア・メッセージ・サービス(MMS)、Eメール、インスタント・メッセージ・サービス(IMS)、Bluetooth、IEEE802.11および任意の類似の無線通信技術を非限定的に含めたさまざまな伝送技術を用いて通信することができる。本発明のさまざまな実施形態の実装に関与する通信デバイスは、無線、赤外線、レーザー、ケーブル接続および任意の好適な接続を非限定的に含めたさまざまなメディアを用いて、通信することができる。
ビデオ・コーデックは、入力ビデオを記憶/伝送に好適な圧縮表現へと変換するエンコーダと、圧縮されたビデオ表現を元の可視形態へと復元できるデコーダとで構成される。典型的には、エンコーダは、ビデオをよりコンパクトな形態で(すなわちより低いビットレートで)表現するため原ビデオ・シーケンス内の一部の情報を廃棄する。ビデオ・エンコーダは、同様に、ビデオ・デコーダから分離したものであることもできる。換言すると、エンコーディングおよびデコーディングは別個のエンティティにより行うことができ、エンコーディングまたはデコーディングのいずれかを行うこともできる。
典型的なハイブリッド・ビデオ・コーデック、例えばITU−T H.263およびH.264の多くのエンコーダ実装は、ビデオ情報を2段階でエンコーディングする。第1段階では、或るピクチャ・エリア(または「ブロック」)内の画素値が、例えば(コーディング内のブロックに密に対応する先にコーディングされたビデオ・フレームの1つの中の1つのエリアを発見し標示する)動き補償手段によって、または(特定された方法でコーディングされるべきブロックの周りの画素値を用いる)空間手段によって予測される。第2段階では、予測エラー、すなわち予測された画素ブロックと原画素ブロック間の差異がコーディングされる。これは典型的には、規定された変換(例えば離散コサイン変換(DCT)またはその変形形態)を用いて画素値の差を変換し、係数を量子化し、量子化係数をエントロピー・コーディングすることにより行なわれる。量子化プロセスの忠実度を変動させることによって、エンコーダは、画素表現の精度(画質)と結果として得られるコーディングされたビデオ表現のサイズ(ファイル・サイズまたは伝送ビットレート)との間のバランスを制御することができる。
時間予測、動き補償または動き補償された予測とも呼ぶことのできるインター予測は、時間冗長性を削減する。インター予測において、予測ソースは、先にデコーディングされたピクチャである。イントラ予測は、同じピクチャ内の隣接する画素が相関される確率が高いという事実を利用する。イントラ予測は、空間ドメインまたは変換ドメイン内で行なわれ得る。すなわちサンプル値または変換係数のいずれかを予測することができる。イントラ予測は典型的に、インター予測が全く適用されていないイントラ・コーディングにおいて活用される。
コーディングプロシージャの1つの成果は、動きベクトルおよび量子化変換係数などの1組のコーディング・パラメータである。多くのパラメータは、それらが最初に空間的または時間的に隣接するパラメータから予測される場合、より効率的にエントロピー・コーディングされ得る。例えば、動きベクトルは、空間的に隣接する動きベクトルから予測可能であり、動きベクトル予測子に比べた差異のみをコーディングすることができる。コーディング・パラメータの予測とイントラ予測を集合的に、インピクチャ予測と呼ぶことができる。
図4は、本発明の実施形態を利用するのに好適なビデオ・エンコーダのブロック図を示す。図4は、2層用のエンコーダを提示しているが、提示されたエンコーダを類似の形で拡張して2層を超える層をエンコーディングすることが可能であることも認識されると考えられる。図4は、ベース層のための第1のエンコーダセクション500とエンハンスメント層のための第2のエンコーダセクション502とを含むビデオ・エンコーダの実施形態を例示する。第1のエンコーダセクション500および第2のエンコーダセクション502の各々は、入来するピクチャをエンコーディングするための類似の要素を含むことができる。エンコーダセクション500、502は、画素予測子302、402、予測エラー・エンコーダ303、403、および予測エラー・デコーダ304、404を含むことができる。図4は同様に、インター予測子306、406、イントラ予測子308、408、モード・セレクタ310、410、フィルター316、416および参照フレーム・メモリ318、418を含むものとして、画素予測子302、402の一実施形態を示す。第1のエンコーダセクション500の画素予測子302は、(動き補償された参照フレーム318と画像間の差異を決定する)インター予測子306と(現行フレームまたはピクチャのすでに処理済みの部分のみに基づいて画像ブロックについての予測を決定する)イントラ予測子308の両方においてエンコーディングされるべきビデオ・ストリームの300のベース層画像を受信する。インター予測子とイントラ予測子の両方の出力は、モード・セレクタ310にパスされる。イントラ予測子308は、2つ以上のイントラ予測モードを有することができる。したがって各モードは、イントラ予測を行い、予測された信号をモード・セレクタ310に提供することができる。モード・セレクタ310は同様に、ベース層ピクチャ300のコピーも受信する。それに相応して、第2のエンコーダセクション502の画素予測子402は、(画像と動き補償された参照フレーム418との間の差異を決定する)インター予測子406と(現行フレームまたはピクチャのすでに処理済みの部分のみに基づいて画像ブロックについての予測を決定する)イントラ予測子408の両方においてエンコーディングされるべきビデオ・ストリームの400個のエンハンスメント層画像を受信する。インター予測子とイントラ予測子の両方の出力は、モード・セレクタ410にパスされる。イントラ予測子408は、2つ以上のイントラ予測モードを有することができる。したがって各モードは、イントラ予測を行い、予測された信号をモード・セレクタ410に提供することができる。モード・セレクタ410は同様に、エンハンスメント層ピクチャ400のコピーも受信する。
現行ブロックをエンコーディングするためにどのエンコーディングモードが選択されたかに応じて、イントラ予測子306、406の出力、または任意のイントラ予測子モードの一つの出力、またはモード・セレクタ内の表面エンコーダの出力が、モード・セレクタ310、410の出力端にパスされる。モード・セレクタの出力は、第1の加算デバイス321、421にパスされる。第1の加算デバイスは、ベース層ピクチャ300/エンハンスメント層ピクチャ400から画素予測子302、402の出力を減算して第1の予測エラー信号320、420を生成することができ、この信号は予測エラー・エンコーダ303、403に入力される。
画素予測子302、402はさらに、予備再構成装置339、439から、画像ブロック312、412の予測表現と予測エラー・デコーダ304、404の出力338、438の組合せを受信する。予備再構成された画像314、414は、イントラ予測子308、408およびフィルター316、416にパスすることができる。予備表現を受信したフィルター316、416は、予備表現をフィルタリングし、再構成された最終画像340、440を出力することができ、この再構成最終画像は、参照フレーム・メモリ318、418内にセーブすることができる。参照フレーム・メモリ318は、参照画像として使用されるようにインター予測子306に接続され得、インター予測オペレーションにおいてこの参照画像に対して将来のベース層ピクチャ300が比較される。ベース層が、いくつかの実施形態に係るエンハンスメント層の層間動き情報予測および/または層間サンプル予測のためのソースとなるものとして選択され標示された場合、参照フレーム・メモリ318は同様に、インター予測オペレーションにおいて将来のエンハンスメント層ピクチャ400が比較される参照画像として使用されるようにインター予測子406に接続される可能性もある。その上、インター予測オペレーションにおいて将来のエンハンスメント層ピクチャ400が比較される参照画像として使用されるようにインター予測子406に参照フレーム・メモリ418を接続することもできる。
いくつかの実施形態に係るエンハンスメント層のフィルタリング・パラメータを予測するためのソースとなるようにベース層が選択され標示された場合、第1のエンコーダセクション500のフィルター316からのフィルタリング・パラメータを、第2のエンコーダセクション502に提供することができる。
予測エラー・エンコーダ303、403は、変換ユニット342、442および量子化器344、444を備える。変換ユニット342、442は、第1の予測エラー信号320、420を変換ドメインに変換する。この変換は、例えばDCT変換である。量子化器344、444は、変換ドメイン信号、例えばDCT係数を量子化して、量子化係数を形成する。
予測エラー・デコーダ304、404は、予測エラー・エンコーダ303、403からの出力を受信し、予測エラー・エンコーダ303、403とは反対のプロセスを行って、デコーデッド予測エラー信号338、438を生成し、この信号は、第2の加算デバイス339、439において画像ブロック312、412の予測表現と組合わされたとき、予備再構成画像314、414を生成する。予測エラー・デコーダは、変換信号を再構成するため例えばDCT係数などの量子化係数値を逆量子化する逆量子化器361、461、および再構成済み変換信号への逆変換を行う逆変換ユニット363、463を備え、ここで逆変換ユニット363、463の出力は再構成されたブロックを格納している。予測エラー・デコーダは、同様に、さらなるデコーデッド情報およびフィルター・パラメータにしたがって、再構成されたブロックをフィルタリングできるブロック・フィルターも備えることができる。
エントロピー・エンコーダ330、430は、予測エラー・エンコーダ303、403の出力を受信し、信号に対して好適なエントロピー・エンコーディング/可変長エンコーディングを行って、エラー検出および補正能力を提供することができる。エントロピー・エンコーダ330、430の出力を、例えばマルチプレクサ508によってビットストリーム内に挿入することができる。
H.264/AVC規格は、国際通信連合(ITU−I)の遠隔通信標準化部門のビデオ・コーディング専門家グループ(VCEG)と、国際標準化機構(ISO)/国際電気標準会議(IEC)の動画専門家グループ(MPEG)の合同ビデオ・チーム(JVT)によって開発された。H.264/AVC規格は、その元となる両方の標準化機構によって公開されており、MPEG−4 Part10 Ad−vanced Video Coding(AVC)としても知られているISO/IEC国際規格14496−10号およびITU−P勧告H.264として呼称されている。H.264/AVC仕様に対して新たな拡張または特徴を統合したH.264/AVC規格の多数のバージョンが存在してきた。これらの拡張には、スケーラブル−ビデオ・コーディング(SVC)およびマルチビュー・ビデオ・コーディング(MVC)が含まれる。
高効率ビデオ・コーディング(H.265/HEVC)規格は、VCEGおよびMPEGの合同協力チーム−ビデオ・コーディング(JCT−VC)によって開発された。現在、H.265/HEVC規格は、ISO/IECおよびITU−Tにおける最終承認投票の対象となっている。この規格は、元となる両方の標準化機構により公開されたものであり、MPEG−H Part2 High Efficiency Video Coding(HEVC)としても知られているISO/IEC国際規格23008−2号およびITU−T勧告H.265と呼称されている。HEVCのスケーラブル、マルチビュー、3次元およびレンジ拡張機能の開発は完了しており、これらの拡張機能は、H.265/HEVCの第2版の一部として公開される予定である。現在、3次元およびスクリーン・コンテンツ・コーディング拡張機能を含めた、H.265/HEV.Cに対するさらなる拡張機能を開発するための標準化プロジェクトが進行中である。
本節においては、いくつかの主要な定義、ビットストリームおよびコーディング構造、ならびにH.264/AVCおよびHEVCのコンセプトが、実施形態を実装できるビデオ・エンコーダ、デコーダ、エンコーディング方法、デコーディング方法、およびビットストリーム構造の一例として説明される。主要な定義、ビットストリームおよびコーディング構造、ならびにH.264/AVCのコンセプトのいくつかは、HEVC規格の場合と同じであり、したがって、これらについては、以下で合同で説明される。本発明の実施形態は、H.264/AVCまたはHEVCに限定されず、むしろ、本発明をそれに基づいて部分的にまたは完全に実施することのできる1つの考えられる基礎として、この説明は提供されている。
多くの早期のビデオ・コーディング規格と同様、ビットストリーム・シンタックスおよびセマンティクスならびに無エラー・ビットストリームのためのデコーディング・プロセスは、H.264/AVCおよびHEVCの中で規定されている。エンコーディング・プロセスは規定されていないが、エンコーダは、適合するビットストリームを生成する。ビットストリームとデコーダの適合性は、仮想参照デコーダ(HRD)を用いて確認可能である。規格は、伝送エラーおよび損失に対処する上で一助となるコーディング・ツールを含むが、エンコーディングの際のこれらのツールの使用は任意であり、誤ったビットストリームについてのデコーディング・プロセスは全く規定されていない。
既存の規格の説明ならびに例示的実施形態の説明において、シンタックス要素を、ビットストリーム内で表現されるデータの一要素として定義することができる。一シンタックス構造は、ビットストリーム内に規定の順序で共に存在するゼロ以上のシンタックス要素として定義することができる。
プロファイルは、デコーディング/コーディング規格または仕様書によって規定されているビットストリーム・シンタックス全体のサブセットとして定義することができる。所与のプロファイルのシンタックスにより課せられる境界の内部では、デコーデッド・ピクチャの規定サイズなどのビットストリーム内のシンタックス要素がとる値に応じて、エンコーダおよびデコーダの性能の非常に大きな変動を求めることがなおも可能である。多くの利用分野において、特定のプロファイル内でシンタックスの全ての仮想使用に対処できるデコーダを実装することは、実用的でも経済的でもない可能性がある。この問題に対処するため、レベルを使用することができる。レベルとは、ビットストリーム内のシンタックス要素の値またはデコーディング/コーディング規格または仕様書中で規定された変数に対して課せられる規定された1組の制約として定義づけすることができる。これらの制約は、値に対する単純な制限であることができる。代替的または付加的には、これらは、値の算術的組合せに対する制約の形をとることができる(例えば、ピクチャ幅×ピクチャ高さ×毎秒デコーディングされるピクチャ数)。レベルについての制約を規定するための他の手段も同じく使用することができる。1レベル内で規定される制約のいくつかは例えば、秒などの一時間周期あたりのマクロブロックなどのコーディング・ユニットの観点から見た最大ピクチャ・サイズ、最大ビット・レート、および最大データ転送レートに関係する。全てのプロファイルについて同じレベル・セットを定義することができる。異なるプロファイル全体にわたり各レベルの定義のいくつかのまたは全ての様相が共通であり得ることが、例えば異なるプロファイルを実装する端末の相互運用性を増大させるために好ましいことであり得る。
H.264/AVCまたはHEVCエンコーダに対する入力およびH.264/AVCまたはHEVCデコーダの出力それぞれのための基本ユニットは、ピクチャである。エンコーダに対する入力として与えられるピクチャは、ソース・ピクチャとも呼ぶことができ、デコーダによってデコーデッド・ピクチャは、デコーデッド・ピクチャと呼ぶことができる。
ソースおよびデコーデッド・ピクチャは各々、以下のサンプル・アレイセットのうちの1つなどの、1つ以上のサンプル・アレイで構成される。
− ルマ(Y)のみ(モノクロ)、
− ルマと2つのクロマ(YC6CrまたはYCgCo)、
− 緑、青および赤(RGBとしても知られるGBR)、
− 他の未規定のモノクロまたは三刺激カラーサンプリング(例えば、XYZとしても知られるYZX)。
以下では、これらのアレイは、ルマ(またはLまたはY)およびクロマと呼ばれ、ここで2つのクロマ・アレイは、使用されている実際の色表現方法の如何に関わらず、CbおよびCrと呼ぶことができる。使用されている実際の色表現方法は、例えばH.264/AVCおよび/またはHEVCのビデオ・ユーザビリティ情報(VUI)シンタックスを用いて、例えばコーデッド・ビットストリームの形で標示することのできるものである。成分は、アレイまたは3つのサンプル・アレイ(ルマおよび2つのクロマ)のうちの1つからの単一のサンプル、または、モノクロ・フォーマットでピクチャを構成するアレイまたはそのアレイの単一のサンプルとして定義づけできる。
H.264/AVCおよびHEVCにおいて、ピクチャは、フレームまたはフィールドのいずれかであることができる。フレームは、ルマ・サンプルのマトリックスおよび場合によっては、対応するクロマ・サンプルを含む。フィールドは、フレームの交番するサンプル行のセットであり、ソース信号がインターレースされている場合にこれをエンコーダ入力として使用することができる。クロマ・サンプル・アレイは、不在であることができ(したがってモノクロ・サンプリング・アレイが使用中である場合がある)、またはルマ・サンプル・アレイと比較したとき、クロマ・サンプル・アレイをサブサンプリングすることができる。クロマ・フォーマットは、次の通りに要約できる:
− モノクロ・サンプリングにおいては、1つのサンプリング・アレイしか存在せず、これを名目上、ルマ・アレイとみなすことができる。
− 4:2:0サンプリングにおいては、2つのクロマ・アレイはルマ・アレイの半分の高さと半分の幅を有する。
− 4:2:2サンプリングにおいては、2つのクロマ・アレイの各々は、ルマ・アレイと同じ高さおよびその半分の幅を有する。
− 4:4:4サンプリングにおいては、2つのクロマ・アレイの各々は、ルマ・アレイと同じ高さおよび同じ幅を有する。
H.264/AVCおよびHEVCにおいては、サンプル・アレイを別個のカラー・プレーンとしてビットストリーム内にコーディングし、それぞれにこのビットストリームからコーデッド・カラー・プレーンを別個にデコーディングすることが可能である。別個のカラー・プレーンが使用されている場合、その各々は、モノクロ・サンプリングを用いて1つのピクチャとして別個に(エンコーダおよび/またはデコーダによって)処理される。
クロマ・サブサンプリングが使用されている場合、(例えば4:2:0または4:2:2クロマサンプリング)、ルマ・サンプルとの関係におけるクロマ・サンプルの場所は、エンコーダ側で(例えば前処理ステップとしてまたはエンコーディングの一部として)決定可能である。ルマ・サンプルの位置との関係におけるクロマ・サンプルの位置は、例えばコーディング規格、例えばH.264/AVCまたはHEVC中で予め定義されるかまたは、例えばH.264/AVCまたはHEVCのVUIの一部としてビットストリーム内に標示されることができる。
パーティショニングは、1つのセットの各要素が、厳密にサブセットの1つの中に入るように、セットをサブセットに分割することとして定義することができる。
H.264/AVCにおいては、マクロブロックは、ルマ・サンプルの16×16のブロックおよび対応するクロマ・サンプルのブロックである。例えば、4:2:0のサンプリング・パターンにおいて、マクロブロックは、各クロマ成分あたり1つの8×8のクロマ・サンプルブロックを格納している。H.264/AVCにおいては、1つのピクチャが1つ以上のスライス・グループにパーティショニングされ、1スライス・グループは1つ以上のスライスを格納する。H.264/AVCにおいては、1つのスライスは、特定のスライス・グループ内部でのラスター走査において連続して順序付けされた整数の数のマクロブロックで構成されている。
HEVCエンコーディングおよび/またはデコーディングのオペレーションを説明する場合、以下の用語を使用することができる。コーディング・ブロックとは、コーディング・ツリー・ブロックのコーディング・ブロックへの分割がパーティショニングとなるようなNの或る値について、NxNのサンプル・ブロックとして定義することができる。コーディング・ツリー・ブロック(CTB)とは、1成分のコーディング・ツリー・ブロックへの分割がパーティショニングとなるようなNの或る値について、NxNのサンプル・ブロックとして定義することができる。コーディング・ツリー・ユニット(CTU)とは、ルマ・サンプルのコーディング・ツリー・ブロック、3つのサンプル・アレイを有するピクチャのクロマ・サンプルの2つの対応するコーディング・ツリー・ブロック、またはサンプルをコーディングするのに使用される3つの別個のカラー・プレーンおよびシンタックス構造を用いてコーディングされるピクチャまたはモノクロ・ピクチャのサンプルのコーディング・ツリー・ブロックとして定義することができる。コーディング・ユニット(CU)とは、ルマ・サンプルのコーディング・ブロック、3つのサンプル・アレイを有するピクチャのクロマ・サンプルの2つの対応するコーディング・ブロック、またはサンプルをコーディングするのに使用される3つの別個のカラー・プレーンおよびシンタックス構造を用いてコーディングされるピクチャまたはモノクロ・ピクチャのサンプルのコーディング・ブロックとして定義することができる。
高効率ビデオ・コーディング(HEVC)コーデックなどのいくつかのビデオ・コーデックにおいて、ビデオ・ピクチャはピクチャのエリアをカバーするコーディング・ユニット(CU)に分割される。CUは、CU内部のサンプルのための予測プロセスを定義する1つ以上の予測ユニット(PU)および前記CU内のサンプルのための予測エラー・コーディング・プロセスを定義する1つ以上の変換ユニット(TU)で構成される。典型的には、CUは、考えられるCUサイズの予め定義されたセットから選択可能なサイズを有する正方形のブロックで構成される。最大許容サイズを有するCUは、LCU(最大コーディング・ユニットまたはコーディング・ツリー・ユニット(CTU)と命名することができ、ビデオ・ピクチャは、重複しないLCUへと分割される。LCUはさらに、例えばLCUおよび結果として得られたCUをくり返し分割することによって、より小さいCUの組合せへと分割することができる。結果として得られる各々のCUは、典型的に少なくとも1つのPUおよびそれに結び付けられた少なくとも1つのTUを有する。各々のPUおよびTUはさらに、それぞれ予測および予測エラー・コーディング・プロセスの粒度を増大させるために、より小さいPUおよびTUに分割され得る。各PUには、そのPU内の画素のためにどのような種類の予測を適用すべきかを定義する予測情報(例えばインター予測されたPUについては動きベクトル情報、およびイントラ予測されたPUについてはイントラ予測方向性情報)が結び付けられている。
HEVC規格では、矩形で整数のLCUを格納するタイルの形に、ピクチャをパーティショニングすることができる。HEVC規格では、タイルへのパーティショニングが、規則的なグリッドを形成し、ここでタイルの高さおよび幅は、互いに最大で1LCU分だけ異なっている。HEVCでは、スライスとは、1つの独立したスライス・セグメントおよび同じアクセス・ユニット内の次の独立したスライス・セグメント(存在する場合)に先行する全ての後続する従属スライス・セグメント(存在する場合)に格納された整数の数のコーディング・ツリー・ユニットであるものとして定義される。HEVC規格において、スライス・セグメントは、タイル走査内に連続して順序づけされ単一のNALユニット内に格納される整数の数のコーディング・ツリー・ユニットであるものとして定義される。各ピクチャのスライス・セグメントへの分割は、パーティショニングである。HEVC規格では、独立スライス・セグメントとは、先行するスライス・セグメントについての値からスライス・セグメント・ヘッダーのシンタックス要素の値が推測されないスライス・セグメントとして定義され、従属スライス・セグメントは、デコーディング順で先行する独立スライス・セグメントについての値からスライス・セグメント・ヘッダーのいくつかのシンタックス要素の値が推測されるスライス・セグメントとして定義される。HEVC規格では、スライス・ヘッダーは、現行のスライス・セグメントであるかまたは現行の従属スライス・セグメントに先行する独立スライス・セグメントである独立スライス・セグメントのスライス・セグメント・ヘッダーとして定義され、スライス・セグメント・ヘッダーは、そのスライス・セグメント内で表現される第1のまたは全てのコーディング・ツリー・ユニットに関係するデータ要素を格納するコーデッド・スライス・セグメントの一部分として定義される。CUは、タイル内、またはタイルが使用されていない場合、ピクチャ内で、LCUのラスター走査順で走査される。LCUの内部では、CUは特定の走査順序を有する。
デコーダは、(エンコーダにより作成され圧縮表現で記憶された動き情報または空間的情報を用いて)画素ブロックの予測された表現を形成するためにエンコーダに類似する予測手段を適用することによっておよび予測エラー・デコーディング(空間的画素ドメイン内の量子化された予測エラー信号を回収する予測エラー・コーディングの逆のオペレーション)によって、出力ビデオを再構成する。予測および予測エラー・デコーディング手段を適用した後、デコーダは、予測および予測エラー信号(画素値)を合計して、出力ビデオ・フレームを形成する。デコーダ(およびエンコーダ)は、同様に、表示のためにパスするおよび/またはビデオ・シーケンス内で来たるべきフレームのための予測参照として記憶する前に出力ビデオの品質を改善するために追加のフィルタリング手段を適用することもできる。フィルタリングは、例えば、以下のもののうちの1つ以上を含むことができる:デブロッキング、サンプル適応オフセット(SAO)、および/または適応ループ・フィルタリング(ALF)。
典型的なビデオ・コーデックにおいて、動き情報は、各々の動き補償された画像ブロックと結び付けられた動きベクトルと共に標示される。これらの動きベクトルの各々は、(エンコーダ側では)コーディングされるべきまたは(デコーダ側では)デコーディングされるべきピクチャ内の画像ブロックの、および先にコーディングまたはデコーデッド・ピクチャの1つの中の予測ソース・ブロックの変位を表わす。動きベクトルを効率良く表現するために、これらのベクトルは典型的に、ブロック特定的な予測された動きベクトルとの関係において差動的にコーディングされる。典型的なビデオ・コーデックにおいて、予測された動きベクトルは、既定の方法で、例えば隣接するブロックのエンコーデッドまたはデコーデッド動きベクトルの中央値を計算して作成される。動きベクトル予測を作成するための別の方法は、時間参照ピクチャ内の隣接ブロックおよび/またはコロケーテッド・ブロックから候補予測リストを生成し、選択された候補を動きベクトル予測子としてシグナリングすることにある。動きベクトル値を予測することに加えて、動き補償された予測のためにどの参照ピクチャが使用されるかを予測することができ、この予測情報は、例えば先にコーデッド/デコーデッド・ピクチャの参照指標によって表現されることができる。参照指標は典型的に、時間参照ピクチャ内の隣接ブロックおよび/またはコロケーテッド・ブロックから予測される。その上、典型的な高効率ビデオ・コーデックは、多くの場合マージング/マージ・モードと呼ばれる追加の動き情報コーディング/デコーディング・メカニズムを利用し、ここで、各々の利用可能な参照ピクチャ・リストについての動きベクトルおよび対応する参照ピクチャ指標を含む全ての動きフィールド情報が予測され、いかなる修正/補正も無く使用される。同様に、動きフィールド情報の予測が、時間参照ピクチャ内の隣接ブロックおよび/またはコロケーテッド・ブロックの動きフィールド情報を用いて実施され、使用された動きフィールド情報は、利用可能な隣接/コロケート・ブロックの動きフィールド情報が記入された動きフィールド候補リストの中でシグナリングされる。
典型的なビデオ・コーデックは、(デ)コーディングされつつあるブロックのために単一の予測ブロックが使用される単方向予測、および2つの予測ブロックが組合わされて(デ)コーディング中のブロックのための予測を形成する双方向予測の使用を可能にする。いくつかのビデオ・コーデックは、重み付き予測を可能にし、この場合、予測ブロックのサンプル値は、残留情報を加える前に重み付けされる。例えば、乗法重み付け係数および加法オフセットを適用することができる。いくつかのビデオ・コーデックにより可能にされる明示的重み付き予測においては、例えば各々の許容可能な参照ピクチャ指標のためのスライス・ヘッダーの中で、重み付け係数およびオフセットをコーディングすることができる。いくつかのビデオ・コーデックにより可能にされる暗示的重み付き予測では、重み付け係数および/またはオフセットはコーディングされず、例えば参照ピクチャの相対的ピクチャ順序カウント(POC)に基づいて導出される。
第1のピクチャについての直接的参照ピクチャは、第1のピクチャ内の予測のための参照として使用される、または使用できる、参照ピクチャとして定義することができる。第1のピクチャについての間接的参照ピクチャは、第1のピクチャ内で予測のための参照として使用されないものの、第1のピクチャの直接的または間接的参照ピクチャについての直接的参照ピクチャである参照ピクチャとして定義することができる。
典型的なビデオ・コーデックにおいて、動き補償の後の予測剰余は、第1に変換カーネル(DCTなど)を用いて変換され、その後コーディングされる。その理由は、多くの場合、剰余間でなおも何らかの相関関係が存在し、変換が多くの場合においてこの相関関係を削減しより効率の良いコーディングを提供する一助となり得るからである。
典型的なビデオ・エンコーダは、最適なコーディング・モード、例えば所望されるマクロブロック・モードおよび付随する動きベクトルを見出すために、ラグランジュ・コスト関数を使用する。この種のコスト関数は、損失を伴うコーディング方法に起因する(正確なまたは推定上の)画像歪みと画像エリア内の画素値を表現するのに求められる(正確なまたは推定上の)情報量とを結び付けるために重み付け係数λを用いる。すなわち、
C=D+λR、 (1)
式中、Cは最小化すべきラグランジュ・コストであり、Dは、モードおよび動きベクトルを考慮に入れた画像歪み(例えば平均2乗誤差)であり、Rは、(候補動きベクトルを表現するためのデータの量を含めた)デコーダ内の画像ブロックを再構成するために求められるデータを表現するのに必要なビットの数である。
ビデオ・コーディング規格および仕様書は、エンコーダがコーデッド・ピクチャをコーデッド・スライスなどに分割することを可能にすることができる。典型的にスライスの境界に跨るインピクチャ予測は無効化される。こうして、スライスは、コーデッド・ピクチャを独立してデコーディング可能な部片に分割する方法とみなすことができる。H.264/AVCおよびHEVCにおいては、スライスの境界に跨るイン−ピクチャ予測は無効化され得る。こうして、スライスは、コーデッド・ピクチャを独立してデコーディング可能な部片に分割する方法とみなすことができ、したがってスライスは多くの場合、伝送のための基本ユニットとみなされる。多くの場合において、エンコーダはビットストリーム内で、どのタイプのインピクチャ予測がスライス境界に跨ってオフ切替えされているかを標示することができ、デコーダのオペレーションでは、例えばどの予測ソースが利用可能であるかを結論付ける場合に、この情報が考慮される。例えば、隣接するマクロブロックまたはCUが異なるスライス内にある場合、隣接するマクロブロックまたはCUからのサンプルは、イントラ予測には利用不可能なものとみなされる場合がある。
それぞれH.264/AVCまたはHEVCエンコーダの出力およびH.264/AVCまたはHEVCデコーダの入力のための基本ユニットは、ネットワーク抽象層(NAL)ユニットである。パケット指向ネットワーク上でのトランスポートまたは構造化されたファイル内への記憶のためには、NALユニットをパケットまたは類似の構造内にカプセル化することができる。H.264/AVCおよびHEVCにおいては、フレーミング構造を提供しない伝送または記憶環境のためにバイトストリーム・フォーマットが規定された。バイトストリーム・フォーマットは、各NALユニットの前にスタート・コードをアタッチすることによって、NALユニットを互いに分離する。NALユニットの境界の誤検出を回避するため、エンコーダは、スタート・コードが他の形で発生してしまった場合にNALユニットのペイロードにエミュレーション防止バイトを加えるバイト指向スタート・コドン・エミュレーション防止アルゴリズムを実行する。パケット指向システムとストリーム指向システムの間の簡単なゲートウェイ・オペレーションを可能にするため、バイトストリーム・フォーマットが使用されているか否かに関わらず、つねにスタート・コード・エミュレーション防止を行うことができる。NALユニットは、追従すべきデータのタイプの標示および必要に応じてエミュレーション防止バイトが散在するRBSPの形でこのデータを格納するバイトを格納するシンタックス構造として定義することができる。生バイト・シーケンス・ペイロード(RBSP)は、NALユニット中にカプセル化された整数の数のバイトを格納するシンタックス構造として定義することができる。RBSPは、空であるかまたは、RBSPストップ・ビットが後続しかつゼロまたは0に等しいより多くの後続ビットが後続するシンタックス要素を格納するデータ・ビットのストリングの形を有するかのいずれかである。
NALユニットは、ヘッダーとペイロードで構成される。H.264/AVCおよびHEVCにおいて、NALユニット・ヘッダーは、NALユニットのタイプを標示する。H.264/AVCでは、NALユニット・ヘッダーは、NALユニット内に格納されたコーデッド・スライスが参照ピクチャの一部であるかまたは非参照ピクチャの一部であるかを指示する。
H.264/AVCNALユニット・ヘッダーは、0に等しい場合NALユニット内に格納されたコーデッド・スライスが非参照ピクチャの一部であることを標示し、0より大きい場合にはNALユニット内に格納されたコーデッド・スライスが参照ピクチャの一部であることを標示する、2ビットのnal_ref_idcシンタックス要素を含む。SVCおよびMVCNALユニットのためのヘッダーは、さらに、スケーラビリティおよびマルチビュー階層に関係するさまざまな標示を格納することができる。
HEVC規格においては全ての規定されたNALユニット・タイプのために、2バイトのNALユニット・ヘッダーが使用される。NALユニット・ヘッダーは、1つの予約ビット、6ビットNALユニット・タイプ標示、時間レベルのための3ビットnuh_temporal_id_plus1標示(1以上であることが求められる場合がある)およびnuh_layer_idとしても言及される6ビットの予約フィールドを格納する。temporal_idシンタックス要素をNALユニットのための時間識別子とみなすことができ、ゼロベースのTemporalId変数は以下のように導出可能である。TemporalId=temporal_id_plus1−1。0に等しいTemporal Idは、最下位の時間レベルに対応する。temporal_id_plus1の値は、2つのNALユニット・ヘッダー・バイトが関与するスタート・コード・エミュレーションを回避するため非ゼロであることが求められる。6ビットの予約フィールド(nuh_layer_id)は、スケーラビリティ階層上で情報を搬送するため、多層拡張により使用される。
NALユニットは、ビデオ・コーディング層(VCL)NALユニットおよび非VCLNALユニットに分類可能である。H.264/AVCにおいて、VCLNALユニットは典型的に、コーデッド・スライスNALユニットであり、コーデッド・スライスNALユニットは、各々展開されたピクチャ内のサンプル・ブロックに対応する1つ以上のコーデッド・マクロブロックを表わすシンタックス要素を格納する。HEVCでは、VCLNALユニットは、1つ以上のCUを表わすシンタックス要素を格納する。
H.264/AVCでは、コーデッド・スライスNALユニットは、瞬間デコーディング・リフレッシュ(IDR)ピクチャ内のコーデッド・スライスまたは非IDRピクチャ内のコーデッド・スライスであるものとして標示され得る。
HEVCでは、VCLNALユニットは以下のタイプの1つであるものとして標示され得る。
HEVC規格において、ピクチャ・タイプについての略号は、以下のように定義できる:トレーリング(TRAIL)ピクチャ、時間サブレイヤー・アクセス(TSA)、段階的時間サブレイヤー・アクセス(STSA)、ランダム・アクセス・デコーディング可能リーディング(RADL)ピクチャ、ランダム・アクセス・スキップ・リーディング(RASL)ピクチャ、ブロークン・リンク・アクセス(BLA)ピクチャ、瞬間デコーディング・リフレッシュ(IDR)ピクチャ、クリーン・ランダム・アクセス(CRA)ピクチャ。
イントラ・ランダム・アクセス・ポイント(IRAP)ピクチャとしても言及できるランダム・アクセス・ポイント(RAP)ピクチャは、16以上23以下の範囲内のnal_unit_typeを各スライスまたはスライス・セグメントが有しているピクチャである。RAPピクチャは、イントラ・コーデッド・スライスのみを格納し、BLAピクチャ、CRAピクチャまたはIDRピクチャであることができる。ビットストリーム内の第1のピクチャは、RAPピクチャである。所要のパラメータ・セットを活動化させる必要がある場合にそれらが利用可能であることを条件として、RAPピクチャおよびデコーディング順の全ての後続する非RASLピクチャは、デコーディング順でRAPピクチャに先行するいずれのピクチャのデコーディング・プロセスも行わずに、正しくデコーディングされ得る。ビットストリーム内には、非RAPピクチャであるイントラ・コーデッド・スライスのみを格納するピクチャが存在し得る。
HEVCでは、CRAピクチャは、デコーディング順でビットストリーム内の最初のピクチャであること、またはビットストリーム内でさらに後で出現することができる。HEVC内のCRAピクチャは、デコーディング順でCRAピクチャに後続するものの出力順ではそれに先行しているいわゆるリーディング・ピクチャを許容する。リーディング・ピクチャのいくつか、つまりいわゆるRASLピクチャは、参照としてCRAピクチャの前にデコーデッド・ピクチャを使用することができる。デコーディング順および出力順の両方でCRAピクチャに後続するピクチャは、CRAピクチャにおいてランダム・アクセスが行なわれる場合にデコーディング可能であり、したがって、IDRピクチャのクリーン・ランダム・アクセス機能性と同様に、クリーン・ランダム・アクセスが達成される。
CRAピクチャは、結び付けられたRADLまたはRASLピクチャを有することができる。CRAピクチャが、ビットストリーム内でデコーディング順で最初のピクチャである場合、CRAピクチャは、デコーディング順でコーデッド・ビデオ・シーケンスの最初のピクチャであり、いずれの結び付けられたRASLピクチャも、それらがビットストリーム内に存在しないピクチャに対する参照を格納し得ることから、デコーダによって出力されず、デコーディング不能である場合がある。
リーディング・ピクチャは、出力順で、結び付けられたRAPピクチャに先行するピクチャである。結び付けられたRAPピクチャは、(存在する場合)デコーディング順で先行するRAPピクチャである。リーディング・ピクチャは、RADLピクチャまたはRASLピクチャのいずれかである。
全てのRASLピクチャは、結び付けられたBLAまたはCRAピクチャのリーディング・ピクチャである。結び付けられたRAPピクチャがBLAピクチャであるかまたはビットストリーム内の最初のコーデッド・ピクチャである場合、RASLピクチャは、ビットストリーム内に存在しないピクチャに対する参照を格納できることから出力されず、正しくデコーディング可能でない場合がある。しかしながら、デコーディングがRASLピクチャの結び付けられたRAPピクチャの前のRAPピクチャから開始した場合、RASLピクチャは正しくデコーディングされ得る。RASLピクチャは、非RASLピクチャのデコーディング・プロセスのための参照ピクチャとして使用されない。存在する場合、全てのRASLピクチャはデコーディング順で、同じ結び付けられたRAPピクチャの全てのトレーリング・ピクチャに先行する。HEVC規格のいくつかの初期のドラフトにおいて、RASLピクチャは、廃棄タグ付き(TFD)ピクチャと呼ばれていた。
全てのRADLピクチャは、リーディング・ピクチャである。RADLピクチャは、同じ結び付けられたRAPピクチャのトレーリング・ピクチャのデコーディング・プロセスのための参照ピクチャとして使用されない。存在する場合、全てのRADLピクチャは、デコーディング順で、同じ結び付けられたRAPピクチャの全てのトレーリング・ピクチャに先行する。RADLピクチャは、デコーディング順で結び付けられたRAPピクチャに先行するいずれのピクチャをも参照とせず、したがって、デコーディングが結び付けられたRAPピクチャから開始する場合正しくデコーディングされ得る。HEVC規格のいくつかの初期のドラフトにおいて、RADLピクチャは、デコーディング可能リーディング・ピクチャ(DLP)と呼ばれていた。
CRAピクチャから開始するビットストリームの一部分が別のビットストリーム内に含まれる場合、CRAピクチャと結び付けられたRASLピクチャは、その参照ピクチャのいくつかが、組合されたビットストリーム内に存在しない場合があることから、正しくデコーディングできない可能性がある。このようなスプライシング・オペレーションを簡単にするため、CRAピクチャのNALユニット・タイプを変更して、それがBLAピクチャであることを標示することができる。BLAピクチャと結び付けられたRASLピクチャは、出力/表示されないことから、正しくデコーディング可能でない場合がある。その上、BLAピクチャと結び付けられたRASLピクチャは、デコーディングから削除できる。
BLAピクチャは、ビットストリーム内でデコーディング順に最初のピクチャであること、またはビットストリーム内で後に出現することができる。各BLAピクチャは、新しいコーデッド・ビデオ・シーケンスを始め、デコーディング・プロセスに対してIDRピクチャと類似の効果を有する。しかしながら、BLAピクチャは、空でない参照ピクチャ・セットを規定するシンタックス要素を格納する。BLAピクチャがBLA_W_LPに等しいnal_unit_typeを有する場合、それは結び付けられたRASLピクチャを有することができ、これらの結び付けられたRASLピクチャは、ビットストリーム内に存在しないピクチャに対する参照を格納できることから、デコーダによって出力されず、デコーディング不能である可能性がある。BLAピクチャは、BLA_W_LPに等しいnal_unit_typeを有する場合、同様に、デコーディングすべきものとして規定されている結び付けられたRADLピクチャを有する場合がある。BLAピクチャは、BLA_W_DLPに等しいnal_unit_typeを有する場合、結び付けられたRASLピクチャを有していないが、デコーディングすべきものとして規定されている結び付けられたRADLピクチャを有することができる。BLAピクチャは、BLA_N_LPに等しいnal_unit_typeを有する場合、いかなる結び付けられたリーディング・ピクチャも有していない。
IDR_N_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリーム内に存在する結び付けられたリーディング・ピクチャを有していない。IDR_W_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリーム内に存在する結び付けられたRASLピクチャを有していないが、ビットストリーム内に結び付けられたRADLピクチャを有することができる。
nal_unit_typeの値が、TRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12またはRSV_VCL_N14に等しい場合、デコーデッド・ピクチャは、同じ時間サブレイヤーの他のいずれのピクチャのための参照としても使用されない。すなわち、HEVC規格において、nal_unit_typeの値がTRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12またはRSV_VCL_N14に等しい場合、デコーデッド・ピクチャは、同じTemparal Id値を有するいずれのピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfterおよびRefPicSetLtCurrのいずれの中にも含まれない。TRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12またはRSV_VCL_N14に等しいnal_unit_typeを有するコーデッド・ピクチャを、同じTemporalIdの値を有する他のピクチャのデコーディング可能性に影響を及ぼすことなく、廃棄することができる。
トレーリング・ピクチャは、出力順で、結び付けられたRAPピクチャに後続するピクチャとして定義できる。トレーリング・ピクチャであるいずれのピクチャも、RADL_N、RADL_R、RASL_NまたはRASL_Rに等しいnal_unit_typeを有していない。リーディング・ピクチャであるあらゆるピクチャは、デコーディング順で、同じRAPピクチャと結び付けられた全てのトレーリング・ピクチャに先行するように制約を受ける可能性がある。ビットストリーム内には、BLA_W_DLPまたはBLA_N_LPに等しいnal_unit_typeを有するBLAピクチャと結び付けられたいかなるRASLピクチャも存在しない。ビットストリーム内には、BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャと結び付けられた、またはIDR_N_LPに等しいnal_unit_typeを有するIDRピクチャと結び付けられたいかなるRADLピクチャも存在しない。CRAまたはBLAピクチャと結び付けられたあらゆるRASLピクチャが、出力順でCRAまたはBLAピクチャと結び付けられたあらゆるRADLピクチャに先行するように制約を受ける可能性がある。CRAピクチャと結び付けられたあらゆるRASLピクチャが、デコーディング順でCRAピクチャに先行する他のあらゆるRAPピクチャに出力順で後続するように制約を受ける可能性がある。
HEVCでは、時間サブレイヤー・スイッチング・ポイントを標示するために使用可能である2つのピクチャ・タイプ、すなわちTSAおよびSTSAピクチャ・タイプが存在する。最高NのTemporalIdを有する時間サブレイヤーがTSAまたはSTSAピクチャ(排他的)までデコーディングされており、TSAまたはSTSAピクチャがN+1に等しいTemporalIdを有する場合、TSAまたはSTSAピクチャは、N+1に等しいTemporalIdを有する(デコーディング順での)全ての後続するピクチャのデコーディングを可能にする。TSAピクチャ・タイプは、TSAピクチャ自体およびデコーディング順でTSAピクチャに後続する同じサブレイヤー内の全てのピクチャに対し、制約を課すことができる。これらのピクチャのいずれも、デコーディング順でTSAピクチャに先行する同じサブレイヤー内のいずれかのピクチャからのインター予測を使用することを許容されない。TSAの定義はさらに、デコーディング順でTSAピクチャに後続するより上位のサブレイヤー内のピクチャに対して制約を課すことができる。これらのピクチャのいずれも、TSAピクチャと同じかまたはより上位のサブレイヤーに属するピクチャである場合は、デコーディング順でTSAピクチャに先行するピクチャを参照することは許容されない。TSAピクチャは、0より大きいTemporalIdを有する。STSAはTSAピクチャと類似しているが、デコーディング順でSTSAピクチャに後続するより上位のサブレイヤー内のピクチャに対し制約を課すことはなく、したがってSTSAピクチャが存在するサブレイヤー上のみへのアップ・スイッチングを可能にする。
非VCLNALユニットは、例えば、以下のタイプの1つであることができる。すなわちシーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、補足エンハンスメント情報(SEI)NALユニット、アクセス・ユニット・デリミター、ローカル・エリア・ネットワーク終了NALユニット、ストリーム終了NALユニット、またはフィルター・データNALユニット。
デコーデッド・ピクチャの再構成のためにはパラメータ・セットが必要とされ得るが、一方、デコーデッド・サンプル値の再構成のために、他の非VCLNALユニットの多くが必要でない。
コーデッド・ビデオ・シーケンス全体を通して未変更のままであるパラメータを、シーケンス・パラメータ・セット内に含むことができる。デコーディング・プロセスによって必要とされ得るパラメータに加えて、シーケンス・パラメータ・セットは、任意には、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース予約にとって重要である可能性のあるパラメータを含むビデオ・ユーザビリティ情報(VUI)を格納することができる。H.264/AVC内には、シーケンス・パラメータ・セットを搬送するように規定された3つのNALユニットが存在する。すなわち、シーケンス内のH.264/AVCVCLNALユニットのための全てのデータを格納するシーケンス・パラメータ・セットNALユニット、補助的コーデッド・ピクチャのためのデータを格納するシーケンス・パラメータ・セット拡張NALユニットおよびMVCおよびSVC VCLNALユニットのためのサブセット・シーケンス・パラメータ・セット。HEVC規格において、シーケンス・パラメータ・セットRBSPは、1つ以上のピクチャ・パラメータ・セットRBSPまたはバッファリング周期SEIメッセージを格納する1つ以上のSEINALユニットによって参照され得るパラメータを含む。ピクチャ・パラメータ・セットは、複数のコーデッド・ピクチャ内で未変更である確率の高いパラメータを格納する。ピクチャ・パラメータ・セットRBSPは、1つ以上のコーデッド・ピクチャのコーデッド・スライスNALユニットによって参照され得るパラメータを含むことができる。
HEVCでは、ビデオ・パラメータ・セット(VPS)は、各スライス・セグメント・ヘッダー内に見られるシンタックス要素により参照されるPPS内に見出されるシンタックス要素により参照されるSPS内に見出されるシンタックス要素のコンテンツによって決定されるようなゼロ以下の全コーデッド・ビデオ・シーケンス全体にあてはまるシンタックス要素を格納するシンタックス構造として定義される可能性がある。
ビデオ・パラメータ・セットRBSPは、1つ以上のシーケンス・パラメータ・セットRBSPにより参照され得るパラメータを含むことができる。
ビデオ・パラメータ・セット(VPS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)の間の関係および階層は、以下のように説明することができる。VPSは、パラメータ・セット階層内およびスケーラビリティおよび/または3Dビデオのコンテキスト内で、SPSよりも1レベル上に存在する。VPSは、全コーデッド・ビデオ・シーケンス内の全ての(スケーラビリティまたはビュー)層に跨る全てのスライスについて共通であるパラメータを含むことができる。SPSは、全コーデッド・ビデオ・シーケンス内の特定の(スケーラビリティまたはビュー)層内の全てのスライスについて共通であるパラメータを含み、多数の(スケーラビリティまたはビュー)層によって共有されることができる。PPSは、特定の層表現(1つのアクセス・ユニット内の1つのスケーラビリティまたはビューの表現)内の全てのスライスについて共通であるパラメータを含み、多数の層表現内の全てのスライスにより共有される確率が高い。
VPSは、ビットストリーム内の層の依存性関係についての情報ならびに、全コーデッド・ビデオ・シーケンス内の全ての(スケーラビリティまたはビュー)層を横断して全てのスライスに対して適用可能である多くの他の情報を提供できる。HEVCの多層拡張において、VPSは、例えば、1つ以上のスケーラビリティ次元値に対するNALユニット・ヘッダーから導出されたnuh_layer_idのマッピングを含むこと、例えば、SVCおよびMVCに類似した形で定義された層についてのdependency_id、quality_id、view_idおよびdepth_flagに対応することができる。VPSは、1つ以上の層についてのプロファイルおよびレベル情報、ならびに層表現の(一定のTemporal_id値以下のVCLNALユニットからなる)1つ以上の時間サブレイヤーについてのプロファイルおよび/またはレベルを含むことができる。
H.264/AVCおよびHEVCシンタックスは、多くのパラメータ・セット・インスタンスを許容し、各インスタンスは、一意識別子で識別される。パラメータ・セットに必要とされるメモリ使用量を制限する目的で、パラメータ・セット識別子のための値範囲は制限されてきた。H.264/AVCおよびHEVC規格において、各スライス・ヘッダーは、そのスライスを格納するピクチャのデコーディングのためにアクティブであるピクチャ・パラメータ・セットの識別子を含み、各ピクチャ・パラメータ・セットは、アクティブなシーケンス・パラメータ・セットの識別子を格納する。その結果、ピクチャおよびシーケンス・パラメータ・セットの伝送をスライスの伝送と正確に同期する必要はない。その代りに、アクティブ・シーケンスとピクチャ・パラメータ・セットが、参照される前の任意の瞬間において受信されるだけで充分であり、こうして、スライス・データのために用いられるプロトコルと比べてより信頼性の高い伝送メカニズムを用いて「帯域外」のパラメータ・セットの伝送が可能になる。例えば、実時間トランスポート・プロトコル(RTP)・セッションのためのセッション記述の中に1つのパラメータとしてパラメータ・セットを含むことができる。パラメータ・セットが帯域内伝送される場合、エラー・ロバストネスを改善するためにこれらを反復することができる。
パラメータ・セットは、スライスからまたは別のアクティブ・パラメータ・セットから、またはいくつかの場合においてはバッファリング周期SEIメッセージなどの別のシンタックス構造からの参照によって活動化されることができる。
SEINALユニットは、出力ピクチャのデコーディングのためには必要とされないもののピクチャ出力タイミング、レンダリング、誤り検出、誤り隠蔽およびリソース予約などの関連するプロセスを補助することのできる1つ以上のSEIメッセージを格納することができる。H.264/AVCおよびHEVCには、いくつかのSEIメッセージが規定されており、ユーザー・データ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におけるコーデッド・ピクチャは、ピクチャのデコーディングに求められるVCLNALユニットを含む。H.264/AVCでは、コーデッド・ピクチャは一次コーデッド・ピクチャまたは冗長コーデッド・ピクチャであり得る。一次コーデッド・ピクチャは、有効ビットストリームのデコーディング・プロセス内で使用され、一方、冗長コーデッド・ピクチャは、一次コーデッド・ピクチャがうまくデコーディングされ得ない場合にのみデコーディングされるべき冗長表現である。HEVCでは、冗長コーデッド・ピクチャは全く規定されていない。
H.264/AVCにおいて、アクセス・ユニットは、一次コーデッド・ピクチャおよびそれに結び付けられたNALユニットを含む。H.264/AVCでは、アクセス・ユニット内部のNALユニットの出現順序は、以下のような制約を受ける。任意のアクセス・ユニット・デリミターNALユニットが、アクセス・ユニットの開始を標示することができる。それには、ゼロ以上のSEINALユニットが続く。一次コーデッド・ピクチャのコーデッド・スライスは、その次に現われる。H.264/AVCにおいて、一次コーデッド・ピクチャのコーデッド・スライスの後には、ゼロ以上の冗長コーデッド・ピクチャのためのコーデッド・スライスが続くことができる。冗長コーデッド・ピクチャは、ピクチャまたはピクチャの一部分のコーディングされた表現である。一次コーデッド・ピクチャが、例えば伝送損失または物理的記憶媒体内のデータ破損に起因してデコーダにより受信されない場合、冗長コーデッド・ピクチャがデコーディングされる可能性がある。
H.264/AVCでは、アクセス・ユニットは同様に、一次コーデッド・ピクチャを補足し例えば表示プロセスにおいて使用できるピクチャである補助コーデッド・ピクチャを含むこともできる。補助コーデッド・ピクチャを、例えばデコーデッド・ピクチャ内のサンプルの透明性レベルを規定するアルファ・チャネルまたはアルファ・プレーンとして使用することができる。少なくとも部分的に透明であるピクチャを互いに重ね合わせることによって出力ピクチャが形成される層状電子組版またはレンダリング・システムにおいて、アルファ・チャネルまたはプレーンを使用することができる。補助コーデッド・ピクチャは、モノクロ冗長コーデッド・ピクチャと同じシンタックスおよびセマンティクス上の制約を有する。H.264/AVCでは、補助コーデッド・ピクチャは、一次コーデッド・ピクチャと同じ数のマクロブロックを格納する。
HEVCでは、アクセス・ユニットを、規定された分類規則にしたがって互いに結び付けられ、デコーディング順に連続し、正確に1つのコーデッド・ピクチャを格納する1組のNALユニットとして定義することができる。コーデッド・ピクチャのVCLNALユニットを格納することに加えて、アクセス・ユニットは、同様に非VCLNALユニットを格納することもできる。アクセス・ユニットのデコーディングはつねに、デコーデッド・ピクチャを結果としてもたらす。
H.264/AVCでは、コーデッド・ビデオ・シーケンスは、IDRアクセス・ユニットを含めて、このIDRアクセス・ユニットから、次のIDRアクセス・ユニットを含めずにこの次のIDRアクセス・ユニットまでか、あるいはビットストリームの終りまで、のいずれか先に出現する方までのデコーディング順で、連続するアクセス・ユニットのシーケンスであるものとして定義される。HEVC規格では、コーデッド・ビデオ・シーケンスは、デコーディング順で、ビットストリーム内の最初のアクセス・ユニットであるCRAアクセス・ユニット、IDRアクセス・ユニットまたはBLAアクセス・ユニットと、それに続いて任意の後続するIDRまたはBLAアクセス・ユニットを含めずに、このIDRまたはBLAアクセス・ユニットまでの全ての後続するアクセス・ユニットを含めたゼロ以上の非IDRおよび非BLAアクセス・ユニットと、で構成されるアクセス・ユニットのシーケンスであるものとして定義することができる。
ビットストリームは、コーデッド・ピクチャおよび1つ以上のコーデッド・ビデオ・シーケンスを形成する結び付けられたデータの表現を形成する、NALユニット・ストリームまたはバイト・ストリームの形をしたビット・シーケンスとして定義することができる。第1のビットストリームの後には、時として同じ基本ストリームとも呼ばれる通信プロトコルの同じ接続内または同じファイル内など、同じ論理チャネル内の第2のビットストリームが続くことができる。第1のビットストリームの終りは、特定のNALユニットにより表示され、このNALユニットはビットストリーム終結(EOB)NALユニットと呼ぶことができ、これはビットストリームの最後のNALユニットである。HEVCおよびその現在のドラフト拡張では、EOBNALユニットは、0に等しいnuh_layer_idを有することが求められる。
ピクチャ・グループ(GOP)およびその特徴は、以下のように定義できる。GOPは、いずれかの先行するピクチャがデコーディングされたか否かとは無関係にデコーディング可能である。オープンGOPとは、デコーディングがオープンGOPの最初のイントラ・ピクチャから開始しない場合、出力順で最初のイントラ・ピクチャに先行するピクチャが正しくデコーディングされない可能性のあるピクチャ・グループである。換言すると、オープンGOPのピクチャは、(インター予測において)先行するGOPに属するピクチャを参照することができる。H.264/AVCデコーダは、H.264/AVCビットストリーム内の回復点SEIメッセージからオープンGOPを開始するイントラ・ピクチャを認識することができる。HEVCデコーダは、特定のNALユニット・タイプ、つまりCRANALユニット・タイプがそのコーデッド・スライスのために使用可能であることから、オープンGOPを開始するイントラ・ピクチャを認識することができる。クローズドGOPは、デコーディングがクローズドGOPの最初のイントラ・ピクチャから開始する場合に全てのピクチャが正しくデコーディングされ得るピクチャ・グループである。換言すると、クローズドGOP内のいずれのピクチャも、先行するGOP内のピクチャを参照しない。H.264/AVCおよびHEVCにおいて、クローズドGOPは、IDRアクセス・ユニットから開始するものとみなされる場合がある。その結果として、クローズドGOP構造には、オープンGOP構造に比べて、より高い誤り耐性の潜在力があるが、その代償として、圧縮効率が削減される可能性がある。オープンGOPコーディング構造は、参照ピクチャの選択の融通性がより大きいものであることから、潜在的により圧縮効率が高い。
H.264/AVCおよびHEVCは、ピクチャ順序カウント(POC)の概念を含む。POCの値は、各ピクチャについて導出され、出力順でピクチャ位置の増加に伴って減少しない。したがって、POCは、ピクチャの出力順を標示する。POCは、例えば、双方向予測スライスの時間直接モードにおける動きベクトルの暗示的スケーリングのため、重み付き予測における暗示的に導出された重みのため、および参照ピクチャ・リストの初期化のためのデコーディング・プロセスにおいて使用可能である。さらに、出力順の適合性を確認する上でPOCを使用することができる。H.264/AVCにおいて、POCは、先行するIDRピクチャまたは、全てのピクチャを「参照として未使用」としてマーキングするメモリ管理制御オペレーションを格納するピクチャとの関係において規定される。
H.265/HEVCでは、多層拡張が使用されない場合、ピクチャ順序カウント(デ)コーディングおよび導出は、以下のように実施される。
POCは、1に等しいNoRaslOutputFlagを有する先行するIRAPピクチャとの関係において規定される。NoRaslOutputFlagの値は、デコーディング順でビットストリーム内の最初のピクチャであるか、デコーディング順でシーケンス終結NALユニットに続く最初のピクチャであるか、または1に等しいHandleCraAsBlaFlagを有する、各IDRピクチャ、各BLAピクチャおよび各CRAピクチャについて1に等しい。
(LSBのためのIDRピクチャ以外の)各ピクチャについて、POC値の最下位ビット(LSB)の4〜16ビットが、ビットストリーム内にエンコーディングされ、および/またはビットストリームからデコーディングされる。より具体的には、LSBは、(IDRピクチャ以外のピクチャ・タイプについて)スライス・セグメント・ヘッダー内に存在するu(v)−コーデッドslice_pic_order_cnt_lsbシンタックス要素によって表現される。slice_pic_order_cnt_lsbシンタックス要素のビット数は、シーケンス・パラメータ・セットシンタックス構造内のue(v)−コーデッドlog2_max_pic_order_cnt_lsb_minus4シンタックス要素によって規定される。log2_max_pic_order_cnt_lsb_minus4は同様に、
MaxPicOrderCntLsb=2(log2_max_pic_order_cnt_lsb_minus4+4)
というピクチャ順序カウントのためのデコーディング・プロセス中で使用される変数MaxPicOrderCntLsbの値をも規定する。log2_max_pic_order_cnt_lsb_minus4の値は、0以上12以下の範囲内にある。
シグナリングされたPOC LSBは、現行ピクチャのPOC値が、0に等しいTemporalIdを有しRASCピクチャ、RADLピクチャまたはサブレイヤー非参照ピクチャでないデコーディング順で先行するピクチャのPOC値よりも小さいか大きいかを決定するために使用される。この先行するピクチャは、H.265/HEVCデコーディング・プロセスにおいてprevTid0Picと呼ばれる。
現行ピクチャのピクチャ順序カウント、PicOrderCutValを導出するデコーディング・プロセスは、以下のように実施される。
現行ピクチャが、1に等しいNoRaslOutputFlagを有するIRAPピクチャでない場合、変数prevPicOrderCntLsbおよびprevPicOrderCntMsbは、以下のように導出される。
− prevTid0Picを、0に等しいTemporalIdを有し、RASLピクチャ、RAPLピクチャまたはサブレイヤー非参照ピクチャでないデコーディング順で先行するピクチャとする。
− 変数prevPicOrderCntLsbは、prevTid0Picのslice_pic_order_cnt_lsbに等しくセットされる。
− 変数prevPicOrderCntMsbは、prevTid0PicのPicOrderCntMsbに等しくセットされる。
現行ピクチャの変数PicOrderCntMsbは、以下のように導出される。
− 現行ピクチャが1に等しいNoRaslOutputFlagを有するIRAPピクチャである場合、PicOrderCntMsbは0に等しくセットされる。
− そうでなければ、PicOrderCntMsbは以下のように導出される。
((slice_pic_order_cnt_lsb<prevPicOrderCntLsb)&&
((prevPicOrderCntLsb−slice_pic_order_cnt_lsb)>=(MaxPicOrderCntLsb/2)))である場合、
PicOrderCntMsb=prevPicOrderCntMsb+MaxPicOrderCntLsb
さもなければ、((slice_pic_order_cnt_lsb>prevPicOrderCntLsb)&&
((slice_pic_order_cnt_lsb−prevPicOrderCntLsb)>(MaxPicOrderCntLsb/2)))である場合、
PicOrderCntMsb=prevPicOrderCntMsb−MaxPicOrderCntLsb
あるいは、
PicOrderCntMsb=prevPicOrderCntMsb
PicOrderCntValは、以下のように導出される。
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
上述のプロセスには、slice_pic_order_cnt_lsbがIDRピクチャについて0であると推論され、prevPicOrderCntLsbおよびprevPicOrderCntMsbが両方共0に等しいことから、全てのIDRピクチャが0に等しいPicOrderCntValを有することになるという影響がある。
関数PicOrderCnt(picX)は、以下のように規定される。
PicOrderCnt(PicX)=ピクチャpicXのPicOrderCntVal
関数DiffPicOrderCnt(picA,picB)は、以下のように規定される。
DiffPicOrderCnt(picA,picB)=PicOrderCnt(picA)−PicOrderCnt(picB)
H.265/HEVCでは、いかなる多層拡張も使用されていない場合、PicOrderOntValの値は、−231以上231−1以下の範囲内にあることが求められる。1つのコーデッド・ビデオ・シーケンス内で、任意の2つのコーデッド・ピクチャについてのPicOrderCntVal値は異なるものである。さらに、H.265/HEVCでは、−215以上215−1以下の範囲内にないデコーディング・プロセス内で使用されるDiffPicOrderCnt(picA、picB)の値を結果としてもたらすデータをビットストリームが格納していないことが求められる。
H.264/AVCおよびHEVCのビットストリーム・シンタックスは、特定のピクチャが、任意の他のピクチャのインター予測のための参照ピクチャであるか否かを標示する。任意のコーディングタイプ(I,P、B)のピクチャが、H.264/AVCおよびHEVC内の参照ピクチャまたは非参照ピクチャとなることができる。
H.264/AVCは、デコーダ内のメモリ消費を制御する目的でデコーデッド参照ピクチャ・マーキングのためのプロセスを規定する。Mと呼ばれるインター予測のために使用される参照ピクチャの最大数は、シーケンス・パラメータ・セット内で決定される。参照ピクチャがデコーディングされた場合、それは「参照として使用」とマーキングされる。参照ピクチャのデコーディングがM個超のピクチャに対する「参照として使用」のマーキングをひき起こした場合、少なくとも1つのピクチャは「参照として未使用」のマーキングが付される。デコーデッド参照ピクチャ・マーキングのオペレーションには、2つのタイプが存在する。すなわち、適応メモリ制御とスライディング・ウィンドウである。デコーデッド参照ピクチャ・マーキングのオペレーション・モードは、ピクチャ・ベースで選択される。適応メモリ制御は、どのピクチャが「参照として未使用」とマーキングされているかの明示的シグナリングを可能にし、同様に、ショート・ターム参照ピクチャに対しロング・ターム指標も割当てる。適応メモリ制御は、ビットストリーム内にメモリ管理制御オペレーション(MMCO)パラメータが存在することを必要とする。MMCOパラメータは、デコーデッド参照ピクチャ・マーキング・シンタックス構造中に含まれることができる。スライディング・ウィンドウ・オペレーション・モードが使用されており、「参照として使用」とマーキングされたM個のピクチャが存在する場合、「参照として使用」とマーキングされたショート・ターム参照ピクチャのうちの最初のデコーデッド・ピクチャであったショート・ターム参照ピクチャは、「参照として未使用」としてマーキングされる。換言すると、スライディング・ウィンドウ・オペレーション・モードは、ショート・ターム参照ピクチャ中の先入れ先出しバッファリングオペレーションを結果としてもたらす。
H.264/AVCにおけるメモリ管理制御オペレーションの1つは、現行ピクチャ以外の全ての参照ピクチャを「参照として未使用」とマーキングさせる。瞬間デコーディング・リフレッシュ(IDR)ピクチャは、イントラ・コーデッド・スライスのみを格納し、参照ピクチャの類似の「リセット」をひき起こす。
HEVC規格では、参照ピクチャ・マーキング・シンタックス構造および関連するデコーディング・プロセスは使用されず、代りに、類似の目的で参照ピクチャ・セット(RPS)シンタックス構造およびデコーディング・プロセスが使用される。1つのピクチャについて有効またはアクティブである参照ピクチャ・セットは、そのピクチャのための参照として使用される全ての参照ピクチャおよびデコーディング順で後続する任意のピクチャについて「参照として使用」とマーキングされたままである全ての参照ピクチャを含む。すなわちRefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurrおよびRefPicSetLtFollと呼ばれる参照ピクチャ・セットのサブセットが6個存在する。この6個のサブセットの表記法は、以下の通りである。「Curr」は、現行ピクチャの参照ピクチャ・リスト内に含まれる参照ピクチャを意味し、したがって、現行ピクチャのためのインター予測参照として使用することができる。「Foll」は、現行ピクチャの参照ピクチャ・リスト内に含まれていないもののデコーディング順で後続するピクチャ内で参照ピクチャとして使用できる参照ピクチャを意味する。「St」は、概してそのPOC値の一定数の最下位ビットを通して識別可能なショート・ターム参照ピクチャを意味する。「Lt]は、特定的に識別され概して、言及された一定数の最下位ビットにより表現できるものよりも大きい現行ピクチャと比べたPOC値の差を有するロング・ターム参照ピクチャを意味する。「0」は、現行ピクチャのPOC値に比べて小さいPOC値を有する参照ピクチャを意味する。「1」は、現行ピクチャのPOC値よりも大きいPOC値を有する参照ピクチャを意味する。RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0およびRefPicSetStFoll1は、集合的に参照ピクチャ・セットのショート・ターム・サブセットと呼ばれる。RefPicSetLtCurrおよびRefPicSetLtFollは、集合的に参照ピクチャ・セットのロング・ターム・サブセットと呼ばれる。
HEVC規格では、参照ピクチャ・セットを、シーケンス・パラメータ・セット内で規定し、スライス・ヘッダー内で参照ピクチャ・セットに対する指標を通して使用することができる。参照ピクチャ・セットを同様に、スライス・ヘッダー内で規定することもできる。参照ピクチャ・セットのロング・ターム・サブセットは、概してスライス・ヘッダー内でのみ規定され、一方、同じ参照ピクチャ・セットのショート・ターム・サブセットは、ピクチャ・パラメータ・セットまたはスライス・ヘッダー内で規定することができる。参照ピクチャ・セットは独立してコーディングできるか、または別の参照ピクチャ・セットから予測することもできる(インターRPC予測として知られる)。参照ピクチャが独立してコーディングされた場合、シンタックス構造は、異なるタイプの参照ピクチャ全体にわたって反復する最高3つのループを含む。すなわち、現行ピクチャよりも低いPOC値を有するショート・ターム参照ピクチャ、現行ピクチャよりも高いPOC値を有するショート・ターム参照ピクチャおよびロング・ターム参照ピクチャである。各ループ・エントリは、「参照として使用」とマーキングされるべきピクチャを規定する。概して、ピクチャは差動POC値と共に規定される。インターRPS予測は、現行のピクチャの参照ピクチャ・セットが、先にデコーディングされたピクチャの参照ピクチャ・セットから予測可能であるという事実を有効利用する。これは、現行ピクチャの全ての参照ピクチャが、先行するピクチャの参照ピクチャであるかまたは先にデコーディングされたピクチャ自体であるからである。これらのピクチャのうちのいずれが参照ピクチャとなり現行ピクチャの予測のために使用されるべきかを標示することしか必要でない。両方のタイプの参照ピクチャ・セット・コーディングにおいて、各々の参照ピクチャについて追加で、現行のピクチャによる参照のために参照ピクチャが使用される(*Currリストに含まれる)か否か(*Follリストに含まれる)を標示するフラグ(used_by_curr_pie_X_flag)が送信される。現行スライスにより使用される参照ピクチャ・セットに含まれたピクチャは、「参照として使用」とマーキングされ、現行スライスにより使用される参照ピクチャ・セット内にないピクチャは、「参照として未使用」とマーキングされる。現行ピクチャがIDRピクチャである場合、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurrおよびRefPicSetLtFollは全て、空にセットされる。
デコーデッド・ピクチャ・バッファ(DPB)を、エンコーダおよび/またはデコーダ内で使用することができる。デコーデッド・ピクチャをバッファリングする理由は2つある。すなわち、インター予測での参照のためと、デコーデッド・ピクチャを出力順に再順序付けするためである。H.264/AVCおよびHEVCは参照ピクチャ・マーキングおよび出力再順序付けの両方のための高い融通性を提供することから、参照ピクチャ・バッファリングおよび出力ピクチャ・バッファリングのために別々のバッファを使うことは、メモリ・リソースを浪費する可能性がある。したがって、DPBは、参照ピクチャおよび出力再順序付けのための統一型デコーデッド・ピクチャバッファリング・プロセスを含む。デコーデッド・ピクチャは、それがもはや参照として使用されず出力のために必要とされなくなった時点で、DPBから削除することができる。
H.264/AVCおよびHEVCの多くのコーディング・モードにおいて、インター予測のための参照ピクチャは、参照ピクチャ・リストに指標と共に標示される。指標は、通常比較的小さい指標が対応するシンタックス要素について比較的短い値を有するようにする可変長コーディングを用いてコーディングすることができる。H.264/AVCおよびHEVCでは、各々の双方向予測(B)スライスのために2つの参照ピクチャ・リスト(参照ピクチャ・リスト0と参照ピクチャ・リスト1)が生成され、各インター・コーデッド(P)スライスのためには、1つの参照ピクチャ・リスト(参照ピクチャ・リスト0)が形成される。
参照ピクチャ・リスト0および参照ピクチャ・リスト1などの参照ピクチャ・リストは、典型的に次の2つのステップで作成される。すなわち、第1に、初期参照ピクチャが生成される。初期参照ピクチャ・リストは、frame_num、POC、temporal_id、またはGOP構造などの予測階層についての情報、あるいはそれらの任意の組合せに基づいて生成可能である。第2に、スライス・ヘッダー内に格納できる参照ピクチャ・リスト修正シンタックス構造としても知られている参照ピクチャ・リスト再順序付け(RPLR)コマンドによって、初期参照ピクチャ・リストを再順序付けすることができる。H.264/AVCでは、RPLRコマンドは、それぞれの参照ピクチャ・リストの始めに順序付けされるピクチャを標示する。この第2のステップは、同様に、参照ピクチャ・リスト修正プロセスと呼ぶこともでき、RPLRコマンドを参照ピクチャ・リスト修正シンタックス構造中に含ませることができる。参照ピクチャ・セットが使用される場合、RefPicSetStCurr0を、最初に、それに続いてRefPicSetStCurr1、それに続いてRefPicSetLtCurrを格納するように、参照ピクチャ・リスト0を初期化することができる。参照ピクチャ・リスト1は、まずはRefPicSetStCurr1、それに続いてRefPicSetStCurr0を格納するように初期化することができる。HEVCでは、参照ピクチャ・リスト修正シンタックス構造を通して初期参照ピクチャ・リストを修正でき、ここで、初期参照ピクチャ・リスト内のピクチャは、このリストに対するエントリ指標を通して識別可能である。換言すると、HEVCでは、参照ピクチャ・リスト修正は、最終的参照ピクチャ・リスト内の各エントリ全体にわたり1つのループを含むシンタックス構造へとエンコーディングされ、ここで各ループ・エントリは、初期参照ピクチャ・リストに対する固定長のコーデッド指標であり、最終的参照ピクチャ・リスト内において上昇位置順でピクチャを標示する。
H.264/AVCおよびHEVCを含めた多くのコーディング規格が、多数の参照ピクチャのうちのどれが特定のブロックについてのインター予測のために使用されるかを標示するのに使用できる、参照ピクチャ、・リストに対する参照ピクチャ指標を導出するためのデコーディング・プロセスを有することができる。参照ピクチャ指標は、いくつかのインター・コーディング・モードでエンコーダによってビットストリームへとコーディングされることができるか、または、例えばいくつかのインター・コーディング・モードで隣接するブロックを用いて、(エンコーダおよびデコーダによって)導出されることができる。
ビットストリームで効率良く動きベクトルを表現するために、ブロック特定的な予測動きベクトルとの関係において差動的に動きベクトルをコーディングすることができる。多くのビデオ・コーデックにおいて、予測動きベクトルは、例えば、隣接ブロックのコーデッドまたはデコーデッド動きベクトルの中央値を計算することによって、既定の方法で作成される。アドバンスト動きベクトル予測(AMVP)と呼ばれることもある動きベクトル予測を作成するための別の方法は、時間的参照ピクチャ内の隣接ブロックおよび/またはコロケーテッド・ブロックから候補予測リストを生成し、選択された候補を動きベクトル予測子としてシグナリングすることにある。動きベクトル値を予測することに応えて、先にコーディング/デコーディングされたピクチャの参照指標を予測することができる。参照指標は、典型的には、時間的参照ピクチャ内の隣接ブロックおよび/またはコロケーテッド・ブロックから予測される。動きベクトルの差動コーディングは、典型的に、スライス境界に跨って無効化されている。
HEVCコーデックなどの多くの高効率ビデオ・コーデックは、多くの場合マージング/マージ・モード/プロセス/メカニズムと呼ばれる追加の動き情報コーディング/デコーディング・メカニズムを利用し、ここでブロック/PUの全ての動き情報が予測され、いかなる修正/補正もなく使用される。
スケーラブル・ビデオ・コーディングとは、1つのビットストリームが異なるビットレート、解像度またはフレーム・レートで多数のコンテンツの表現を格納することのできるコーディング構造を意味する。これらの場合において、受信機は、その特性(ディスプレー・デバイスに最も適合する解像度など)に応じて所望の表現を抽出することができる。代替的には、サーバーまたはネットワーク要素が、例えばネットワーク特性または受信機の処理能力に応じて、受信機に対し伝送すべきビットストリームの部分を抽出することができる。スケーラブル・ビットストリームは典型的には、利用可能な最低画質のビデオを提供する「ベース層」と、受信され下位層と合わせてデコーディングされたときビデオ画質を強化する1つ以上のエンハンスメント層とで構成されている。エンハンスメント層のためのコーディング効率を改善するために、この層のコーディングされた表現は、典型的に下位層に依存している。例えば、エンハンスメント層の動きおよびモード情報を、下位層から予測することができる。同様に、下位層の画素データを用いて、エンハンスメント層のための予測を作成することが可能である。
いくつかのスケーラブル・ビデオ・コーディング・スキームにおいては、ビデオ信号をベース層および1つ以上のエンハンスメント層にエンコーディングすることができる。エンハンスメント層は、時間解像度(すなわちフレーム・レート)、空間解像度、または単純に別の層またはその一部分により表現されるビデオ・コンテンツの画質を強化することができる。各層はその従属層と合わせて、一定の空間解像度、時間解像度および画質レベルでのビデオ信号の1つの表現である。本明細書では、スケーラブル層をその従属層全てと合わせて「スケーラブル層表現」と呼んでいる。スケーラブル層表現に対応するスケーラブル・ビットストリームの部分を抽出し、デコーディングして、一定の忠実度で原信号の表現を作り出すことができる。
いくつかのコーディング規格が、スケーラブル・ビットストリームの作成を可能にしている。スケーラブル・ビットストリームの一定の部分のみをデコーディングすることによって、意味のあるデコーデッド表現を作り出すことができる。スケーラブル・ビットストリームは、例えば、ストリーミング・サーバー内の予めエンコーディングされたユニキャスト・ストリームのレート適応のため、および異なる能力および/または異なるネットワーク条件を有する端末への単一ビットストリームの伝送のために使用可能である。スケーラブル・ビデオ・コーディングのいくつかの他の使用事例リストは、ISO/IEC JTC1 SC29 WG11(MPEG)成果文書N5540、「Applications and Requirements for Scalable Video Coding」、the 64th MPEG meeting、March 10〜14、2003、Pattaya、Thailand中に見出すことができる。
利用可能なメディア・ファイル・フォーマット規格としては、ISOベース・メディア・ファイル・フォーマット(ISO/IEC14496−12、これはISOBMFFと略すことができる)、MPEG−4ファイル・フォーマット(ISO/IEC14496−14、これはMP4フォーマットとしても知られている)、AVCファイル・フォーマット(ISO/IEC14496−15)および3GPPファイル・フォーマット(3GPPTS26.244、これは3GPフォーマットとしても知られている)が含まれる。SVCおよびMVCファイル・フォーマットは、AVCファイル・フォーマットの補正として規定されている。ISOファイル・フォーマットは、(ISOファイル・フォーマット自体を除く)上述の全てのファイル・フォーマットを導出するための基礎である。これらのファイル・フォーマット(ISOファイル・フォーマット自体を含む)は、概してISOファイル・フォーマット・ファミリーと呼ばれる。
ISOベース・メディア・ファイル・フォーマット内の基本的構成要素は、ボックスと呼ばれる。各ボックスはヘッダーとペイロードを有する。ボックス・ヘッダーは、ボックスのタイプおよびバイト数によるボックスのサイズを標示する。ボックスは、他のボックスを包み込むことができ、ISOファイル・フォーマットは、一定のタイプのボックス内にどのボックス・タイプが許容されるかを規定する。さらに、一部のボックスの存在は、各ファイル内で義務的であるのに対し、他のボックスの存在は任意であることができる。さらに、一部のボックス・タイプについては、1つのファイル内に2つ以上のボックスが存在することも許容可能である。こうして、ISOベース・メディア・ファイル・フォーマットは、ボックスの階層構造を規定するものとみなすことができる。
ISOファイル・フォーマット・ファミリーによると、1つのファイルは、ボックス内にカプセル化されるメディア・データおよびメタデータを含む。各ボックスは、4文字コード(4CC)によって識別され、ボックスのタイプおよびサイズを知らせるヘッダーで始まる。ISOBMFFボックス構造の例示的格納階層は、図5に示されている。
例示的実施形態において、メディア・データを、メディア・データ「mdat」ボックス内で提供することができ、ムービー「moov」ボックスを用いてメタデータを包み込むことができる。いくつかの場合においては、ファイルが動作可能となるためには、「mdat」および「moov」ボックスの両方が存在する必要がある可能性がある。ムービー「moov」ボックスは、1つ以上のトラックを含み、各トラックは、1つの対応するトラック「trak」ボックス内に存在することができる。トラックは、メディア、ヒント、タイムド・メタデータのうちの1つのタイプであることができる。メディア・トラックは、メディア圧縮フォーマット(およびそのISOベース・メディア・ファイル・フォーマットへのカプセル化)にしたがってフォーマッティングされたサンプルを参照する。ヒント・トラックは、標示された通信プロトコル上での通信のためにパケットを構築するためのクックブック命令を格納するヒント・サンプルを参照する。クックブック命令は、パケット・ヘッダー構成用のガイダンスを含み、パケット・ペイロード構成を含むことができる。パケット・ペイロード構成においては、他のトラックまたは項目内に存在するデータを参照することができる。こうして、例えば、特定のトラックまたは項目内のどのデータがパケット構成プロセス中にパケット内にコピーされるように命令されているかについての参照によって、他のトラックまたは項目内に存在するデータを標示することができる。タイムド・メタデータ・トラックは、参照されたメディアおよび/またはヒント・サンプルを記述するサンプルを参照することができる。1つのメディア・タイプの提示のためには、典型的に1つのメディア・トラックが選択される。1つのトラックのサンプルは、標示されたサンプルのデコーディング順で1だけ増分されたサンプル番号と暗黙に結び付けることができる。トラック内の第1のサンプルを、サンプル番号1と結び付けることができる。
ISOベース・メディア・ファイル・フォーマットによる単純化されたファイル構造の一例を以下のように説明することができる。ファイルは、「「moov」ボックス」および「「mdat」ボックス」を含むことができ、「「moov」ボックス」は、それぞれ映像および音声に対応する1つ以上のトラックを含むことができる。
ISOベース・メディア・ファイル・フォーマットにしたがってフォーマティングされた多くのファイルが、ftypボックスとも呼ばれるファイル・タイプ・ボックスで始まる。ftypボックスは、ファイルをラべリングするブランドの情報を格納する。ftypボックスは、1つの主要ブランドの標示および互換ブランドのリストを含む。主要ブランドは、ファイルをパースするために使用するのに最も好適なファイル・フォーマット仕様を識別する。互換ブランドは、どのファイル・フォーマット仕様および/または適合点にファイルが適合しているかを標示する。ファイルが多数の仕様に適合していることも可能である。これらの仕様に対する互換性を示す全てのブランドが列挙されて、互換ブランドの1つのサブセットのみを理解するリーダーが、そのファイルがパース可能であることの標示を得ることができるようにすることが必要である。互換ブランドは同様に、特定のファイル・フォーマット仕様のファイル・パーサーがftypボックス内の同じ特定のファイル・フォーマットを格納するファイルを処理するための許可も与える。ファイル・プレイヤは、1つのファイルのftypボックスが、ファイル・プレイヤによってサポートされているブランドを含んでいるか否かをチェックすることができ、ファイル・プレイヤによってサポートされるいずれかのファイル・フォーマット仕様が互換ブランドの中に列挙されている場合にのみ、ファイルをパースし再生させることができる。
ISOBMFFに適合するファイルは、メタ・ボックス(fourCC:‘meta’)内に任意の非タイムド・メタデータ・オブジェクトを格納できる。メタ・ボックスは、ムービー・ボックス(fourCC:‘moov’)の内部、およびトラック・ボックス(fourCC:‘trak’)の内部では、ファイルの頂部レベルに存在できるが、ファイル・レベル、ムービー・レベル、またはトラック・レベルの各々において、多くとも1つのメタ・ボックスしか発生できない。メタ・ボックスは、「meta」ボックス・コンテンツの構造またはフォーマットを標示する「hdlr」ボックスを格納するよう求められる可能性がある。メタ・ボックスは、参照され得る任意の数のメタデータ項目を列挙し特徴づけすることができ、それらの項目の各々は、1つのファイル名と結びつけられ得、整数である項目識別子(item_id)によりファイルと共に一意的に識別される。メタデータ項目は、例えばメタ・ボックス内またはmdatボックス内に記憶されるかまたは別個のファイル内に存在することができる。メタデータがファイルの外部に位置設定される場合には、その場所は、DataInformationBox(fourCC:‘dinf’)により申告され得る。メタデータがXMLシンタックスを用いてフォーマッティングされ、Meta Box内に直接記憶されるよう求められている具体的事例においては、メタデータをXMLBox(fourCC:‘xml’)またはBinaryXMLBox(fourcc:‘bxml’)のいずれかにカプセル化することができる。
階層の任意のレベル(ファイル、ムービーまたはトラック)において2つ以上のメタ・ボックスをサポートするためには、1つのISOベース・メディア・ファイル・フォーマットとして、メタ・ボックス・コンテナ・ボックス(「meco」)を使用することができる。メタ・ボックス・コンテナ・ボックスは、階層の任意のレベル(ファイル、ムービーまたはトラック)において、任意の数の追加のメタ・ボックスを持つことができる。これにより、例えば、同じメタデータが2つの異なる代替的メタ・データ・システム内で提示されていることを可能にすることができる。メタ・ボックス・リレーション・ボックス(「mere」)は、異なるメタ・ボックスが互いにどのように関係するか、例えばそれらが全く同じメタデータ(ただし異なるスキームで記述されている)を格納しているか否か、または一方が他方のスーパーセットを表わしているか否かを説明できるようにする可能性がある。
ISOベース・メディア・ファイル・フォーマットは、提示を1つのファイル内に格納されるようには限定しない。したがって、提示は複数のファイル内部に含まれることができる。一例として、1つのファイルは、提示全体のためのメタデータを含むことができ、こうして、提示を自己完結型にするために全てのメディア・データを含むことができる。他のファイルが使用される場合、これらはISOベース・メディア・ファイル・フォーマットにフォーマティングする必要がない可能性があり、メディア・データを含むために使用され得、同様に未使用メディア・データまたは他の情報を含むことができる。ISOベース・メディア・ファイル・フォーマットは、提示ファイルの構造のみに関係する。メディア・データ・ファイルのフォーマットは、メディア・ファイル内のメディア・データがISOベース・メディア・ファイル・フォーマットまたはその派生フォーマット内で規定されている通りにフォーマティングされているという点でのみ、ISOベース・メディア・ファイル・フォーマットまたはその派生フォーマティングによる制約を受けることができる。
外部ファイルを参照する能力は、データ参照を通して実現可能である。いくつかの例において、各トラック内に含まれるサンプル記述「stsd」ボックスは、各々使用されるコーディングタイプについての詳細な情報およびコーディングのために必要とされる任意の初期化情報を提供するサンプル・エントリー・リストを提供することができる。1つのチャンクの全てのサンプルおよび1つのトラック・フラグメントの全てのサンプルは、同じサンプル・エントリを使用できる。チャンクは、1つのトラックのための連続するサンプル・セットとして定義できる。同様に各トラックに含まれているData Reference「dref」ボックスは、ユニフォーム・リソース・ロケーター(URL)、ユニフォーム・リソース・ネーム(URN)および/またはメタデータを格納するファイルに対する自己参照の指標付きリストを定義することができる。サンプル・エントリは、Data Referenceボックスの1つの指標をポイントし、これにより、それぞれのチャンクまたはトラック・フラグメントのサンプルを格納するファイルを標示することができる。
ムービー・フラグメントは、記録アプリケーションがクラッシュするか、メモリ・スペースが無くなるか、または他のインシデントが発生した場合のデータ損失を回避するためにISOファイルに記録コンテンツを記録するときに使用することができる。ムービー・フラグメントが無いと、ファイル・フォーマットは、例えばムービー・ボックスなどの全てのメタデータがファイルの1つの隣接エリア内に書込まれることを典型的に要求し得ることから、データ損失が発生する可能性がある。さらに、ファイルを記録する場合、利用可能な記憶のサイズに対してムービー・ボックスをバッファリングするのに充分な量のメモリ・スペースがない場合があり、ムービーを閉じたときにムービー・ボックスのコンテンツを再計算する速度が過度に低い可能性がある。その上、ムービー・フラグメントは、正規のISOファイル・パーサーを用いてファイルの同時記録・再生を可能にすることができる。最後に、ムービー・フラグメントが使用され、ムービー・フラグメント無く構造化された同じメディア・コンテンツを有するファイルと比べて初期ムービー・ボックスが小さい場合、例えばファイルの同時受信・再生などの漸進的なダウンロードのために、初期バッファリングの持続時間がより短いものであることが求められる可能性がある。
ムービー・フラグメント機能は、従来ムービー・ボックス内に存在すると考えられるメタデータを多数のピースに分割することを可能にすることができる。各ピースは、トラックについての一定の時間周期に対応することができる。換言すると、ムービー・フラグメント機能は、ファイル・メタデータおよびメディア・データのインターリービングを可能にすることができる。その結果、ムービー・ボックスのサイズは制限され、上述の使用事例を実現することができる。
いくつかの例において、ムービー・フラグメントのためのメディア・サンプルは、それらがmoovボックスと同じファイル内にある場合、通常通りmadtボックス内に存在することができる。しかしながら、ムービー・フラグメントのメタデータについては、moofボックスを提供することができる。moofボックスは、従来moovボックス内にあったと考えられる一定の再生持続時間についての情報を含むことができる。moovボックスは、なおも単独で有効なムービーを表現できるが、さらに、ムーブ・フラグメントが同じファイル内で後続する予定であることを標示するmvexボックスを含むことができる。ムービー・フラグメントは、時間的にmoovボックスに結び付けられている提示を延長することができる。
ムーブ・フラグメントの内部には、1トラックあたりゼロないし複数までのいずれかを含めたトラック・フラグメント・セットが存在できる。トラック・フラグメントはそれ自体、ゼロないし複数のいずれかのトラック・ランを含むことができ、そのドキュメントの各々がそのトラックのためのサンプルの隣接ランである。これらの構造の内部では、多くのフィールドが任意であり、デフォルトにされ得る。moofボックスに含むことができるメタデータを、moovボックス内に含むことができるメタデータのサブセットに限定することができ、いくつかの事例で異なる形でコーディングできる。moofボックス内に含むことができるボックスに関する詳細は、ISOベース・メディア・ファイル・フォーマット仕様から見出すことができる。
ISOベース・メディア・ファイル・フォーマットおよびその派生物、例えばAVCファイル・フォーマットおよびSVCファイル・フォーマットなどの中でのサンプル・グループ化は、グループ化参照に基づいて1つのサンプル・グループの一員とするべくトラック内に各サンプルを割当てることとして定義できる。サンプル・グループ化におけるサンプル・グループは、隣接サンプルであることに限定されず、非隣接サンプルを格納することができる。1トラック内のサンプルについては2つ以上のサンプル・グループ化が存在できることから、各サンプル・グループ化は、グループ化のタイプを標示するためのタイプ・フィールドを有する。サンプル・グループ化は、次の2つの結合されたデータ構造によって表現される。すなわち(1)SampleToGroupボックス(sbgpボックス)は、サンプル・グループに対するサンプルの割当てを表現し、(2)SampleGroupDescriptionボックス(sgpdボックス)は、グループの特性を記述する各サンプル・グループのためのサンプル・グループ・エントリを格納する。異なるグループ化参照に基づいて、SampleToGroupおよびSampleGroupDescriptionボックスの多数のインスタンスが存在できる。これらは、グループ化のタイプを標示するために使用されるタイプ・フィールドによって区別される。
サンプル・グループ・ボックス(SampleGroupDescription BoxおよびSampleToGroup Box)は、ムービー(moov)ボックス内のメディア情報(minf)、メディア(mdia)およびトラック(trak)ボックス(この順序で)内に包み込まれている、サンプル・テーブル(stbl)ボックス内に存在する。SampleToGroupボックスは、ムーブ・フラグメント内に存在することができる。したがって、サンプル・グループ化は、フラグメント毎に行うことができる。
画像バーストとも呼ばれる画像シーケンスを、さまざまな手段を用いて得ることができ、あるいは以下のものの1つ以上を非限定的に含めたさまざまな目的のために使用することができる。
− 画像シーケンスは、例えばバースト写真撮影などを用いて連続して捕捉されたピクチャを表現できる。
− 画像シーケンスは、焦点スタック、露光スタックなどを表現でき、ここでカメラは、おおよそ静止状態に保たれているものとみなされ、補足パラメータは、この画像シーケンスのピクチャ間で異なっていた。
− 画像シーケンスは、パノラマを表現でき、この場合、カメラはパン(あるいはそれと同等のこと)を行い、時間および/または並進運動に関してほぼ等しい距離のピクチャがカメラ・ムーブメントの間に撮影される。
− 画像シーケンスは、アニメーションまたはシネマグラフを表現できる。シネマグラフは、わずかな反復運動しか発生しないスチル・ピクチャとして定義できる。
画像シーケンスは、空間予測手段を用いてコーディングされたスチル・ピクチャまたは空間および時間予測手段を用いてコーディングされたインター・ピクチャのいずれかのシーケンスとして圧縮可能である。個別のピクチャを編集するためのランダム・アクセスおよびサポートを伴う画像シーケンスは従来、独立してコーディングされた一連のイントラ・ピクチャとしてシーケンスを表現することによって有効化されてきた。このようなフォーマットには、例えばMotion JPEG、アニメーションGIFおよびH.264のイントラ・プロファイルが含まれる。
画像のシーケンスが一連のスチル・ピクチャとして表現される場合、コーディング効率は典型的に低く、高解像度シーケンスのためのファイル・サイズ要件は、莫大なものとなり得る。シーケンスが時間予測を用いてビデオとしてコーディングされる場合、シーケンスをどのようにデコーディングする必要があるか、シーケンスをどのように再生でき、ユーザーがシーケンス内の画像のいくつかを編集したいと考えるときにそれをどのように発行できるかについての厳しい制限が存在する。
コンテナ・ファイルは、コンテンツ、例えばメディア・データおよびコンテンツに関連するメタデータを格納することができる。異なるデータ・タイプを識別しインタリーブするために、コンテナ・ファイルを使用することができる。マルチメディア・コンテナ・ファイルは、例えば、音声、映像および画像を格納できる。マルチメディア・コンテナ・ファイルは、マルチメディア・コンテンツの制作、操作、伝送および消費という連鎖の中で使用される要素として使用することができる。コーディング・フォーマット(基本ストリーム・フォーマットまたはビットストリーム・フォーマットとしても知られる)とコンテナ・ファイル・フォーマットとの間には、実質的な差異が存在し得る。コーディング・フォーマットは、コンテンツ情報をビットストリームへとコーディングする特定的コーディングまたは圧縮アルゴリズムのアクションに関係し得る。コンテナ・ファイル・フォーマットは、例えば、全てさまざまな記憶およびトランスポート・アーキテクチャを利用して、ローカル・デコーディングおよび再生のためにアクセスされるが、ファイルとして転送されるかまたはストリーミングされ得るように、生成されたビットストリームを組織するためのシンタックスおよびセマンティクスを規定することができる。さらに、ファイル・フォーマットは、メディアの交換および編集ならびに受信した実時間ストリームのファイルへの記録を容易にすることができる。
ISOベース・メディア・ファイル・フォーマットは、音声、映像およびテレテキストなどのタイムド・メディアの記憶およびトランスポートのための包括的構造を規定する。近年、静止画像および画像シーケンスのハンドリングをも可能にするようにISOBMFFの能力を拡張することに向けて、研究作業が開始されてきた。画像シーケンスの記憶およびトランスポートを可能にするために、画像ファイル・フォーマットは、MPEG−H Part12としても知られているISO/IEC23008−12内で定義されており、この定義は、ISOベース・メディア・ファイル・フォーマットに基づいている。
ISO/IEC23008−12内で定義されたフォーマットは、高効率ビデオ・コーディング(HEVC)または他の任意の画像またはビデオ・コーデックを用いてコーディングされた画像の交換、編集および表示、およびこれらの画像と結び付けられたメタデータの搬送を可能にする。画像ファイル・フォーマットは、単一の画像、画像コレクションおよび画像シーケンスのための相互運用可能な記憶フォーマットを定義するため、ISOベース・メディア・ファイル・フォーマットで定義されたツールを基礎としている。画像ファイル・フォーマットは、ファイル内に記憶された画像をコーディングするのに使用されるコーデックを制約しない構造ブランド、およびコーデッド画像のためのHEVCの使用を必要とするHEVCベースのブランドを含む。
静止画像をエンコーディングするためのHEVCビデオコーダの使用は、単一画像および独立してコーディングされた画像の記憶ならびに画像シーケンスの記憶をカバーするため画像ファイル・フォーマットによってサポートされ、ここで任意にはプレイヤおよび/またはデコーダにおいてタイミングが使用され、画像は他の画像に依存することができる。
画像ファイル・フォーマットに適合するファイルは、静止画像および画像シーケンスの両方を含むことができ、単一のファイルをさまざまなニーズに応えるように構築することができるようになっている(例えば、印刷のための単一の画像、および画像を合成するために使用された画像バーストの記録)。概して、静止画像のサポートは、タイミングもピクチャ間コーディング依存性も必要とされない場合などの事例のために使用される。トラックのために利用可能なタイミングまたはISOベース・メディア・ファイル・フォーマットからの他のツールが必要とされる(例えば単一の動画)場合または、ピクチャがピクチャ間コーディング依存性を用いてコーディングされる場合には、トラックとして記憶された画像シーケンスを使用することができる。
画像シーケンスの記憶のためには、ISOBMFFのトラック構造が使用される。しかしながら、ビデオおよび画像シーケンスを判別するために、「pict」と呼ばれる新たなハンドラが定義された。サンプル(視覚的アクセス単位)自体は、「mdat」ボックス内および/または画像ファイル・フォーマットにしたがってフォーマティングされたファイルとは別個の1つ以上のファイル内に記憶される。サンプル・テーブル・ボックス「stbl」は、サンプルの場所、長さおよびデコーディング順序を記録する。コーデック特定的初期化情報は、サンプル記述ボックス「stsd」内で搬送される。
ISOBMFFおよびその派生仕様は、タイムド・メディア・コンテンツを適正に伝送、編集、デコーディングおよび提示するように設計されている。タイムド・メディア・コンテンツは、デコーディングおよび提示順序と結び付けられ、この順序は、ISOBMFFを用いてクライアントに知らされる。例えば、全てのコーデッド・サンプルはデコーディング順に記憶され、各サンプルには、メディア・タイムライン内で一意的コンポジション時間を与えることができる。コンポジション時間がサンプルと結び付けられない場合には、クライアントは、デコーディング時間が同様にコンポジション時間でもあることを暗黙の内に仮定できる。
コーデッド画像シーケンスの各サンプルは、幾分かの最大許容遅延を伴ってランダム・アクセス可能であることができる。いくつかのサンプルはイントラ・コーディングされ得、一方いくつかのサンプルは、参照として他のサンプルを使用することができる。サンプルにランダム・アクセスするために予測コーディングが使用される場合、ランダム・アクセスすべきサンプルをデコーディングする前に全ての直接および間接参照サンプルがデコーディングされなければならない場合がある。
ISOBMFFでは、独立使い捨てサンプルと呼ばれるボックス、すなわち「sdtp」ボックスが存在する。ボックスは各サンプルについて、そのサンプルが、(a)デコーディングのために他のサンプルに依存するか、(b)他のサンプルにより参照として使用されるか、および(c)冗長コーディングされたサンプルであるか、を記録する。ISOBMFF仕様によって文書化されたこのボックスの用途は、トリック・モード・オペレーションを実行しているときに独立してデコーディング可能なサンプルを識別すること、またはランダム・アクセス回復点を識別し、デコーディングされたサンプルを提示することが必要となる時点まで非参照サンプルを繰上げ廃棄することにある。その参照サンプルのみを使用するための任意のサンプルに対するランダム・アクセスは保証されていない。
ファイル・プレイヤは、コンテナ・ファイルをパース、デコーディング、およびレンダリング(例えば表示)するソフトウェア、ハードウェア、またはそれらの組合せとして定義することができる。ファイル・リーダーとも呼ぶことのできるファイル・パーサーは、コンテナ・ファイルの構造をパースしデコーディングのために1つ以上のデコーダについてのメディア・データを提供できるソフトウェア、ハードウェアまたはそれらの組合せとして定義することができる。
ファイル・レコーダーは、メディア・コンテンツを捕捉または獲得し、メディア・コンテンツを1つ以上のビットストリーム内にエンコーディングし、1つ以上のビットストリームをコンテナ・ファイル内にカプセル化するソフトウェア、ハードウェアまたはそれらの組合せとして定義することができる。ファイル・ライターと呼ぶこともできるファイル・クリエータは、1つ以上のビットストリームをコンテナ・ファイル内にカプセル化するソフトウェア、ハードウェアまたはそれらの組合せとして定義することができる。ファイル・クリエータは、さらに、メタデータを作成しこれをコンテナ・ファイル内に含むことができる。
予測されたピクチャにアクセスするため、デコーダ、ファイル・プレイヤ、ファイル・パーサーまたはいくつかの他のエンティティはどの参照ピクチャが最初にデコーディングすることを求められているかについての結論を下す必要がある。先行するIDRピクチャなどから出発して全てのピクチャをデコーディングするのではなくむしろ、参照として使用されるピクチャのみがデコーディングされる場合、遅延を大幅に削減することができる。
したがって、所望のランダム・アクセスされたピクチャを正しくデコーディングする目的で、デコーディングされることが求められているピクチャを識別するための改良型方法を導入することが所望される。
ここでランダム・アクセスの有効化を強化する目的で、参照ピクチャまたは参照ピクチャを含むファイル・フォーマット・サンプルをシグナリングするための改良型方法を、以下で提示する。以下では、サンプルなる用語は、ピクチャのサンプル・アレイのサンプルではなくむしろファイル・フォーマット・サンプルを意味するように使用される。
多くの実施形態が、以下のステップを含む。
− 少なくとも各々の参照ピクチャに対し1つの識別子を割当てるステップ、
− ファイル内で、インター・コーデッド・ピクチャの数、および存在する場合にはその参照ピクチャの識別子を標示するステップ、
− インター・コーデッド・ピクチャ、識別子および数、ならびに存在する場合にはその参照ピクチャの識別子の各々の一意的組合せに対し、指標を割当てるステップ、
− ファイル内で前記指標に対するピクチャのマッピングを標示するステップ。
多くの実施形態が、以下のステップを含む。
− ファイルから、指標に対するピクチャのマッピングをパースするステップ、
− このファイルから、このピクチャの識別子および数、ならびに、そのピクチャがインター・コーデッド・ピクチャである場合には、ピクチャの参照ピクチャの識別子の、指標に対応する組合せをパースするステップ、
− このピクチャの参照ピクチャの識別子に基づいて、ピクチャの参照ピクチャを解像するステップ。
一実施形態は、ビットストリーム内でエンコーディングされるべき画像シーケンスの参照サンプルをシグナリングするため、または同等のものとして、図6中に開示されているコンテナ・ファイル内にカプセル化されるべきエンコーデッド画像シーケンスの参照サンプルをシグナリングするための方法に関する。方法は、画像シーケンスのサンプルを参照サンプルおよび非参照サンプルに分類するステップ(600)と、一意識別子を各参照サンプルに提供するステップ(602)と、少なくとも画像シーケンスのインター・コーデッド・サンプルについて、サンプル識別子と画像シーケンスのサンプルのための少なくとも1つの参照サンプル識別子の全ての一意的組合せを決定するステップ(604)であって、特定のサンプルのための少なくとも1つの参照サンプル識別子は、前記サンプルを参照する全てのサンプルを識別する、ステップと、イントラ・コーデッド参照サンプルには、少なくともその一意識別子を割当て、インター・コーデッド参照サンプルには、そのサンプル識別子と少なくとも1つの参照サンプル識別子の対応する一意的組合せを割当てるステップ(606)と、を含む方法。
一実施形態によると、イントラ・コーデッド参照ピクチャには、その一意的識別子と同じ値を有する参照サンプル識別子を割当てることができる。
一実施形態によると、各非参照サンプルに共通識別子を提供することができる。
各参照サンプルに一意識別子を提供し、各非参照サンプルに共通の識別子を提供するステップの代替として、該方法は、サンプルが参照サンプルであるか非参照サンプルであるかの標示を提供し、各参照サンプルに一意識別子を提供するステップを含むことができる。
こうして、上述のプロシージャは、予測された画像サンプルをデコーディングするための参照として使用されるサンプルのみを識別して、これにより、画像シーケンス内の任意のサンプルをデコーディングする目的でデコーディングされることが求められるサンプルをファイル・リーダーに知らせるためのコンパクトなメカニズムを提供することを可能にする。このことは、それ自体、コーデッド画像シーケンスの任意のサンプルへのランダム・アクセスを可能にする。
一実施形態によると、参照サンプルは、イントラ・コーデッド・サンプルおよび/またはインター・コーデッド参照サンプルを含む。画像シーケンスの観点からすると、サンプルは次の4つのクラスのうちの1つに分類され得る。(a)イントラ・コーデッド参照サンプル、(b)イントラ・コーデッド非参照サンプル、(c)インター・コーデッド参照サンプルおよび(d)インター・コーデッド非参照サンプル。イントラ・コーデッド参照サンプルは、それが正しくデコーディングされるために、他のいかなるサンプルもデコーディングされることを必要としない。インター・コーデッド参照サンプルは、それがデコーディングされ得る前に、少なくとも1つのイントラ・コーデッド参照サンプルまたは少なくとも1つのインター・コーデッド参照サンプルがデコーディングされることを必要とする。イントラ・コーデッド非参照サンプルは、それ自体が他のいずれのサンプルのための参照としても使用されないという点を除いて、イントラ・コーデッド参照サンプルと類似している。インター・コーデッド非参照サンプルは、それ自体が他のいずれのサンプルのため参照としても使用されないという点を除いて、インター・コーデッド参照サンプルに類似している。
イントラ・コーデッド参照サンプルおよびイントラ・コーデッド非参照サンプルは両方共、それらが正しくデコーディングされるために、他のいずれかのサンプルがデコーディングされることを必要としないという意味合いで、特殊な事例を成す。このことは、シグナリングにおいてイントラ・コーデッド参照サンプルおよびイントラ・コーデッド非参照サンプルがハンドリングされる方法についてさまざまなオプションを提供する。
上述した通り、イントラ・コーデッド参照サンプルには、その一意識別子のみを提供することができ、あるいは代替的には、その一意識別子と同じ値を有する参照サンプル識別子を提供することもできる。
一実施形態によると、イントラ・コーデッド非参照サンプルはシグナリングに含まれない。イントラ・コーデッド非参照サンプルは、他のいずれのサンプルのための参照としても使用されないことから、これらをシグナリングから外すことができる。
一変形実施形態によると、イントラ・コーデッド非参照サンプルは、他の非参照サンプルと同じ共通識別子が提供されるようにシグナリング内に含まれる。さらなる実施形態によると、イントラ・コーデッド非参照サンプルにはいずれの参照サンプル識別子も提供されない。
いくつかの実施形態において、全てのイントラ・コーデッド・サンプルは、参照サンプルとして処理され、したがって、イントラ・コーデッド・サンプルおよびインター・コーデッド参照サンプルの両方を参照サンプルとみなすことができる。
一実施形態によると、各参照サンプルのための一意識別子は、正の非ゼロ整数であり、非参照サンプルのための共通識別子はゼロである。こうして、参照サンプルを明確に識別するため、および参照サンプルと非参照サンプルを区別するための容易な方法が提供される。
一実施形態によると、イントラ・コーデッド・サンプルについて、サンプル識別子および参照サンプル識別子は同じである。
一実施形態によると、この方法はさらに、全てのイントラ・コーデッド・サンプルおよびインター・コーデッド参照サンプルに異なる識別子値を割当てることのできる、一つの範囲内の整数値のプールから各々の参照サンプルのための一意識別子を決定するステップを含む。こうして、画像シーケンスの全ての参照サンプルが一意的に識別され得るように、画像シーケンス内の参照サンプルの数に基づいて、整数値の範囲を決定することができる。すなわち、同じトラック内のどの2つの参照サンプルも、同じサンプル識別子を有することを許容されない。いくつかの実施形態において、1つのファイルは、正確に1つの画像シーケンスを含むことができ、したがって、そのファイル内に含まれる全ての参照サンプルは一意的に識別され得る。
一実施形態によると、該方法は、サンプル識別子と少なくとも1つの参照サンプル識別子の各一意的組合せについて指標を割当てるステップと、サンプルを、サンプル識別子と少なくとも1つの参照サンプル識別子の一意的組合せに対応する指標にマッピングするステップと、をさらに含む。本明細書においては、2つ以上の非参照サンプルが、サンプル識別子と少なくとも1つの参照サンプル識別子との同じ組合せを有することができ、したがって2つ以上のサンプルが同じ指標にマッピングされる可能性があるということが指摘される。
一実施形態によると、該方法は、同様にビットストリームを含むまたは該ビットストリームを参照するコンテナ・ファイル内で前記マッピングを表示するステップ、をさらに含む。
一実施形態によると、コンテナ・ファイル・フォーマットは、ISOベース・メディア・ファイル・フォーマット(ISOBMFF)に適合し、コンテナ・ファイルは、論理的にサンプルを含むトラックを含み、トラックのサンプルはピクチャを含み、該方法は、
ピクチャ識別子とゼロ以上の1つの参照ピクチャ識別子の一意的組合せをコンテナ・ファイル内に、サンプル・グループ記述エントリとして含むステップであって、サンプル・グループ記述子エントリにはそれぞれの指標が割当てられているステップと、
コンテナ・ファイル内に、ピクチャがサンプル・グループ記述エントリのそれぞれの指標にマッピングされていることのサンプル・トゥー・グループ・データ構造内部の標示を含むステップと、
を含む。
ISOMBFFは、この実施形態内で使用可能であるサンプル・グループ化メカニズムを提供する。それは、2つの統合されたボックス・データ構造、すなわち(a)SampleToGroupBoxおよび(b)SampleGroupDescriptionBoxの形のサンプル・グループ化メカニズムを可能にする。SampleToGroupボックスは、サンプル・グループへのサンプルの割当てを表わし、SampleGroupDescriptionボックスは、グループの特性を記述する各サンプル・グループのためのサンプル・グループ記述エントリを格納する。
一実施形態によると、例えばReferencedSamplesList(「refs」)と呼ぶことのできる新規視覚的サンプル・グループ・エントリが、ISOBMFF用に定義される。このサンプル・グループ・エントリは少なくとも次のフィールドを含む:すなわち、(a)例えばシンタックス要素名sample_idを有することのできるサンプル識別子、および(b)例えばシンタックス要素名reference_sample_idを有することのできる参照サンプル識別子リスト。上述のように、画像シーケンス内の全ての参照サンプルには、非ゼロの正の整数の識別子が与えられる。他のサンプルを参照する非参照サンプルには、ゼロという共通の識別子値が割当てられる。reference_sample_id値のリストは、sample_idを有するサンプルが参照するsample_id値のリストである。いくつかの実施形態において、reference_sample_id値のリストは、現行サンプルのsample_id値も含むことができ、こうして、1つのイントラ・コーデッド参照サンプルについて、1つの値のみがreference_sample_idリスト内にコーディングされ、この値は、前記イントラ・コーデッド参照サンプルのsample_idと同じである。
一実施形態において、ISOベース・メディア・ファイル・フォーマットとして参照サンプルおよび非参照サンプルの標示を実装するためには、ファイル・クリエータがsample_idおよびreference_sample_idリストの全ての一意的組合せをコンパイルし、一意的組合せの値は、「refs」サンプル・グループ・エントリ内にコレーティングされ、「refs」サンプル・グループ・エントリはリストとして「refs」サンプル・グループ記述ボックス内に挿入される。画像シーケンス内の各サンプルは、次にサンプル・トゥー・グループ・ボックスを用いて適切なサンプル・グループ・エントリにマッピングされる。いくつかの実施形態において、非参照イントラ・コーデッド・サンプルは、このサンプル・グループ・エントリ・リスト内のどのエントリにも属さず、したがって、そのgroup_description_index値はゼロにセットされる。
「refs」サンプル・グループ記述エントリのシンタックスおよびセマンティクスは、例えば、以下のように実装することができる。
Syntax
class ReferencedSamplesList()
extends VisualSampleGroupEntry(’refs’){
unsigned int(32) sample_id;
unsigned int(8) num_referenced_samples;
for(i=0;i<num_referenced_samples;i++){
unsigned int(32)reference_sample_id;
}
}
他の実施形態を、類似のまたは等価のシンタックス構造で同様に実現することができるということを理解すべきである。例えば、他の実施形態においては、シンタックス要素の長さを、例えば符号なし整数(32)から符号なし整数(64)まで変更することができる。
セマンティクス
sample_id:このフィールドの値は、正の整数であることが求められる場合がある。サンプル記述グループ・エントリを参照とするサンプルが、1参照サンプルである場合、このフィールドの値は、非ゼロの正の整数であることが求められる可能性がある。このフィールドのための値は、このグループに属するサンプルが非参照ピクチャである場合、ゼロであることが求められる可能性がある。
num_referenced_samples:予測されたサンプルをデコーディングするのに必要とされる直接参照サンプルの数。このフィールドの値は、イントラ・コーデッド・サンプルのコレクションであるグループについて、1にセットされるものとする。
reference_sample_id:このフィールドの値は、このグループに属するサンプルがそこから予測される直接参照サンプルのsample_id値にセットされるものとする。イントラ・コーデッド参照サンプルを記録するサンプル・グループ・エントリは、このサンプル・グループ・エントリ内のsample_idにより記録されたものと同じ値にセットされたこの値を有するものとする。
代替的には、num_referenced_samplesおよびreference_sample_idのセマンティクスを以下のように規定することができる。
num_referenced_samples:予測されたサンプルをデコーディングするために必要とされる直接参照サンプルの数。イントラ・コーデッド・サンプルについては、reference_sample_idは0である。
reference_sample_id:このフィールドの値は、このグループに属するサンプルがそこから予測される直接参照サンプルのsample_id値にセットされるものとする。
「refs」サンプル・グループ化の使用について、以下の実施例においてより詳細に例示する。
図7aは、サンプルが提示順に示されている、コーデッド画像シーケンスを示す。サンプル間の予測依存性は、矢印で標示されている。図中の「I」は、サンプルがイントラ・コーディングされていることを標示し、一方「P」は単一の参照サンプルからサンプルが予測されることを標示している。例えばサンプルP1、P2およびP3は、イントラ・コーデッド・サンプルI0から予測され、したがって、このサンプルI0はサンプルP1、P2およびP3の参照サンプルである。サンプルP5、P6およびP7は、それ自体、イントラ・コーデッド・サンプルI4から予測され、このサンプルI4は、サンプルP5、P6およびP7の後の提示順を有するが、それでもサンプルP5、P6およびP7のための参照サンプルである。図7bは、予測依存性が考慮されたデコーディング順でのコーデッド画像シーケンスを示す。
コーデッド画像シーケンスのサンプルは、参照サンプル、すなわちサンプル{I0、I4}および非参照サンプル、すなわち{P1、P2、P3、P5、P6、P7}に分類される。以上で設定されたルールを適用すると、全ての参照サンプルに一意識別子が与えられ、全ての非参照インター・コーデッド・サンプルの識別子はゼロにセットされている。この実施例では、参照サンプルのための正の非ゼロ識別子は101から始まる。したがって、識別子をセットするためのルールを用いると、サンプル/サンプル識別子対は、以下の通りである。
{(I0、101)、(I4、102)、(P1、0)、(P2、0)、(P3、0)、(P5、0)、(P6、0)、(P7、0)}。
次に、reference_sample_idリストを構築するためのルールを用いると、イントラ・コーデッド・サンプルのためのreference_sample_idの値がsample_id自体と同じである事例を、第1に考慮に入れる必要がある。したがって、このシーケンス内のイントラ・コーデッド・サンプルのためのsample/reference_sample_idリスト対のセットは、以下の通りである。
{(I0、101)、(I4、102)}。
他の全てのサンプルについて、reference_sample_idは、それが参照するサンプルを記録する。したがって、残りのサンプルのためのsample/reference_sample_idリスト対のセットは、以下の通りである。
{(P1、101)、(P2、101)、(P3、101)、(P5、102)、(P6、102)、(P7、102)}。
以上のことが、図8の表中にまとめられており、ここには、サンプルが、エンコーディング/デコーディング順にサンプルのシーケンス番号、サンプルのタイプ、サンプルと結び付けられたsample_id、および各サンプルについてのreference_sample_idリストと共に列挙されている。
このリストから、画像シーケンスのサンプルについてのサンプル識別子と少なくとも1つの参照サンプル識別子の全ての一意的組合せを決定することができる。表8の表は、次の4つの一意的なsample_id/reference_sample_id組合せを含む。{(101、101)、(0、101)、(102、102)、(0、102)}。
sample_id/reference_sample_idリスト対の一意的組合せは、視覚的サンプル・グループ・エントリ「refs」のリストとして収集され、エントリのための指標(Idx)を提供するサンプル・グループ記述ボックス内に挿入される。図9aの表は、サンプル・グループ記述ボックス内に「refs」エントリとしてコーディングされる4つの一意的sample_id−reference_sample_id組合せのリストを示す。最後に、全てのサンプルには、これらのサンプルに対応するサンプル識別子と少なくとも1つの参照サンプル識別子の一意的組合せが割当てられる。図9bは、構築された「refs」サンプル・グル−プ内に記録されたサンプル・グループ・エントリのグループ記述指標に対する画像シーケンス内のサンプルのマッピングを例示する。
図10aは、サンプルが提示順に示されている、別のコーデッド画像シーケンスを示す。イントラ・コーデッド「I」サンプルおよび単一の参照「P」サンプルに加えて、画像シーケンスは、2つの参照サンプルから双方向予測されたものとしてコーディングされる「B」サンプルを含む。本明細書では、サンプルP1およびP2は、イントラ・コーデッド・サンプルI0から予測され、サンプルP4およびP7は、それ自体、イントラ・コーデッド・サンプルI3から予測され、サンプルB5およびB6は両方共、サンプルP2およびP4から双方向で予測される。図10bは、予測依存性が考慮された、デコーディング順のコーデッド画像シーケンスを示す。
コーデッド画像シーケンスのサンプルは、参照サンプル、すなわちイントラ・コーデッド・サンプル{I0、I3}およびインター・コーデッド参照サンプル{P2、P4}、および非参照サンプル、すなわち{P1、B5、B6、P7}へと分類される。以上で設定されたルールを適用すると、全ての参照サンプルには、一意識別子が与えられ、全ての非参照インター・コーデッド・サンプルの識別子はゼロにセットされる。この実施例中でもまた、参照サンプルのための正の非ゼロ識別子は101から始まる。以上で設定されたルールを適用すると、サンプル/sample_id対のセットは、以下の通りである。{(I0、101)、(P1、0)、(P2、102)、(I3、103)、(P4、104)、(B5、0)、(B6、0)、(P7、0)}。
サンプルのためのsample−reference_sample_idリスト対のセットは、以下の通りである。
{(I0、101)、(P1、101)、(P2、101)、(I3、103)、(P4、103)、(B5、[102、104])、(B6、[102、104])、(P7、103)}。
この情報は、図11の表中にまとめられており、ここには、サンプルが、エンコーディング/デコーディング順にサンプルのシーケンス番号、サンプルのタイプ、サンプルと結び付けられたsample_id、および各サンプルについてのreference_sample_idリストと共に列挙されている。
このリストから、画像シーケンスのサンプルについてのサンプル識別子と少なくとも1つの参照サンプル識別子の全ての一意的組合せを決定することができる。表11の表は、次の7つの一意的なsample_id/reference_sample_id組合せを含む。{(101、101)、(0、101)、(102、101)、(103、103)、(104、103)、(0、[102、104])、(0、103)}。
ここでもまた、sample_id/reference_sample_idリスト対の一意的組合せは、視覚的サンプル・グループ・エントリ「refs」のリストとして収集され、エントリのための指標(Idx)を提供するサンプル・グループ記述ボックス内に挿入される。図12aの表は、サンプル・グループ記述ボックス内に「refs」エントリとしてコーディングされる7つの一意的sample_id−reference_sample_id組合せのリストを示す。最後に、全てのサンプルには、これらのサンプルに対応するサンプル識別子と少なくとも1つの参照サンプル識別子の一意的組合せが割当てられる。図12bは、構築された「refs」サンプル・グル−プ内に記録されたサンプル・グループ・エントリのグループ記述指標に対する画像シーケンス内のサンプルのマッピングを例示する。
該方法は、多くの形で実装可能である。例えば、説明された処理ステップを異なる順番で行うことができるということは明白である。その上、参照ピクチャおよび/または非参照ピクチャを標示する方法は1つ以上存在することができる。同様に、デコーディング・プロセスに参照ピクチャおよび/または非参照ピクチャとしてピクチャを処理させる方法も、1つ以上存在することができる。
別の実施形態は、デコーダがエンコーデッド・ビットストリームを受信したときのデコーダのオペレーションを説明している。図13は、本発明の実施形態を利用するのに好適なビデオ・デコーダのブロック図を示す。図13は、2層デコーダの構造を描いているが、デコーディング・オペレーションを単層デコーダでも同様に利用できるということが認識されると思われる。
ビデオ・デコーダ550は、ベース・ビュー・コンポーネントのための第1のデコーダ・セクション552と、非ベース・ビュー・コンポーネントのための第2のデコーダ・セクション554とを含む。ブロック556は、第1のデコーダ・セクション552に対してベース・ビュー・コンポーネントに関する情報を送出するため、および第2のデコーダ・セクション554に対して非ベース・ビュー・コンポーネントに関する情報を送出するためのデマルチプレクサを示す。参照記号P’nは、画像ブロックの予測された表現を表わす。参照記号D’nは、再構成された予測エラー信号を表わす。ブロック704、804は、予備再構成画像(I’n)を示す。参照記号R’nは、最終的再構成画像を表わす。ブロック703、803は、逆変換(T-1)を示す。ブロック702、802は、逆量子化(Q-1)を示す。ブロック701、801は、エントロピー・デコーディング(E-1)を示す。ブロック705、805は、参照フレーム・メモリ(RFM)を示す。ブロック706、806は、予測(P)(インター予測またはイントラ予測のいずれか)を示す。ブロック707、807は、フィルタリング(F)を示す。ブロック708、808は、デコーデッド予測エラー情報を予測ベース・ビュー/非ベース・ビュー・コンポーネントと組み合わせて予備再構成画像(I’n)を得るために使用できる。予備再構成されフィルタリングされたベース・ビュー画像は、第1のデコーダ・セクション552から出力され得709、予備再構成されフィルタリングされたベース・ビュー画像は、第1のデコーダ・セクション554から出力され得る809。
したがって、デコーディング・オペレーションは、従来知られているように実施することができる。しかしながら、エンコーデッド画像シーケンス内でのサンプルのデコーディングの開始前に、ファイル・リーダーが、シグナリングからのサンプルをデコーディングするために必要とされる参照サンプルを決定することが好ましい。図14に示されているこのような方法においては、少なくとも1つの一意サンプル識別子についての標示が、イントラ・コーデッド参照サンプルについて決定され、サンプル識別子および少なくとも1つの参照サンプル識別子の一意的組合せがインター・コーデッド・サンプルについて決定され(1400)、特定のインター・コーデッド・サンプルのための少なくとも1つの参照サンプルから、前記インター・コーデッド・サンプルを参照する全てのサンプルが決定される(1402)。
図10〜12中に説明されている実施例を参照することによって、シグナリングからのサンプルをデコーディングするために必要とされる参照サンプルをファイル・リーダーが決定するプロセスを示すことができる。実施例中のサンプルB5を考慮してみよう。B5は、サンプル・トゥー・グループ・ボックスのgroup_description_index(Idx=6)を通して「refs」サンプル・グループの6番目のエントリに対してマッピングされた。この「refs」サンプル・グループ・エントリのフィールドは、sample_id=0およびreference_sample_idリスト=[102、104]を決定する。フィールドsample_id=0の値から、このグループに属するサンプルが画像シーケンス内の他のどのサンプルによっても参照として使用されていないという結論を下すことができる。reference_sample_idリストは、sample_id値102および104を有するサンプルであるサンプルB5をデコーディングするために必要とされるサンプルに対して直接的参照を提供する。ファイル・リーダーは、次にsample_id=102についてサンプル・グループ記述ボックス内をチェックし、sample_id101がsample_id102のreference_sample_idリスト内にあることを発見する。このsample_idは、サンプルB5をデコーディングするために必要とされるsample_idのリストに追加され、今やリストは[101、102、104]となる。reference_sample_idリストの値(101)は、sample_idの値(101)と同じであるため、ファイル・リーダーは、これがイントラ・コーデッド・サンプルのグループであり、このパス内でさらなる参照サンプルをサーチする必要が全くないという結論を下す。
ファイル・リーダーは同様に、sample_id104についてサンプル・グループ記述ボックスをチェックし、それがsample_id103を参照とすることを発見し、このsample_id103は、サンプルB5をデコーディングするために必要とされるsample_idのリストに追加される。ここでもまた、ファイル・リーダーは、これがイントラ・コーデッド・サンプルである(reference_sample_idリストがsample_idと同じであるため)との結論を下し、さらなる参照サンプルのサーチを停止する。このグループのためにデコーディングされるべきサンプルのリストは、リスト内のsample_id[101、102、103、104]を有するサンプルである。これらのsample_idを伴うgroup_description_indexを通して「refs」サンプル・グループのエントリに対してマッピングされたサンプルは全て、サンプルB5のための直接的および間接的参照ピクチャである。換言すると、B5をデコーディングするためには、サンプル{I0、P2、I3およびP4}がデコーディングされる必要がある。
さらに、上述のようなデコーディング順序、表示順序またはデコーディング順序と表示順序の組合せに関する標示をデコーディングするようにデコーダを配置すること、およびデコーダおよびデコーダを含む装置のオペレーションを制御して、それに応じてデコーデッド画像シーケンスを構築するようにデコーダを配置することができる。
有向非巡回グラフとは、有向周期を全く伴わない有向グラフとして定義することができる。有向非巡回グラフは、頂点と有向辺の収集によって形成されると考えることができ、各辺は、1つの頂点を別の頂点に結び付け、こうして、或る頂点υで出発し、最終的に再びυにループ・バックする一連の辺を追従することはできないようになっている。
一実施形態によると、例えばファイル・クリエータによって実装可能な方法は、画像シーケンスのピクチャのインター予測依存性にしたがって有向非巡回グラフを形成することができる。ノード(頂点としても知られる)がピクチャを表現し、有向辺が、有向辺の出発点における予測および有向辺の到着点における予測のための参照ピクチャとの予測依存性を表現する。各イントラ・コーデッド・ピクチャは、ルート・ノードである。グラフは、森であることができる。すなわち2本以上の木で構成され得る。方法は各ノードについて分枝識別子を割当てることができる。デコーディング順で第1のピクチャの分枝識別子を最初に割当てることができ、デコーディング順に各ピクチャについて分枝識別子を割当てることができる。
参照ピクチャについての分枝識別子値は、以下のように決定することができる。すなわち
− 参照ピクチャrefPicAが、インター予測において、互いに同じ分枝識別子を有する参照ピクチャrefPicSetAを参照する場合で、しかも参照ピクチャrefPicSetAの少なくともいくつかを参照するもののrefPicAを参照しないデコーディング順で後続するピクチャが存在しない場合、refPicAの分枝識別子は、参照ピクチャrefPicSetAの分枝識別子値に等しくセットされる。
− そうでない場合、refPicAの分枝識別子値には、先に割振られていないかまたは使用されていない値が割当てられる。
非参照ピクチャについての分枝識別子値は、以下のように決定することができる。
− 非参照ピクチャnonRefPicAが参照ピクチャrefPicSetBを参照し、同じ参照ピクチャrefPicSetBを参照するデコーディング順でより早期の非参照ピクチャnonRefPicBが存在する場合、非参照ピクチャnonRefPicAの分枝識別子の値は、非参照ピクチャnonRefPicBの分枝識別子値に等しくセットされる。
− そうでなければ、nonRefPicAの分枝識別子値には、先に割振られていないかまたは使用されていない値が割当てられる。
一実施形態によると、該方法はさらに、分枝識別子の各々の一意的組合せのための指標、および参照ピクチャまたは非参照ピクチャを標示するフラグを割当てるステップを含む。代替的には、該方法はさらに、各々の一意分枝識別子のための指標を割当てるステップを含み、該方法は同様に、参照ピクチャおよび非参照ピクチャを標示するメタデータをビットストリームのためのコンテナ・ファイル内でエンコーディングまたは書込みするステップをも含む。
一実施形態によると、コンテナ・ファイル・フォーマットは、ISOベース・メディア・ファイル・フォーマット(ISOBMFF)であり、ここで出力ピクチャは、画像シーケンスまたは画像セットがISOMBFFのトラック構造を用いて記憶されるように、サンプル・グループ化メカニズムを用いて標示される。
一実施形態によると、例えば依存性ツリー(「dptr」)と呼ぶことのできる新しい視覚的サンプル・グループ・エントリが、ISOBMFFのために定義される。このサンプル・グループ・エントリは、少なくとも以下のフィールドを含む。(a)例えばシンタックス名branch_idを有することのできる分枝識別子;(b)このサンプル・グループ記述エントリに対してマッピングされたピクチャのための参照として使用することのできるピクチャを識別する(例えばシンタックス名reference_branch_idを伴う)参照された分枝識別子値のリスト;(c)例えば、マッピングされたサンプルが参照ピクチャであるか否かを標示するシンタックス名ref_pic_flagを有することのできるフラグ。
一実施形態において、ISOベース・メディア・ファイル・フォーマットとして参照サンプルおよび非参照サンプルの標示を実装するために、ファイル・クリエータは、「dptr」タイプの全ての一意的サンプル・グループ記述エントリをコンパイルし、「dptr」サンプル・グループ・エントリは、1つのリストとして「dptr」サンプル・グループ記述ボックス内に挿入される。次に、画像シーケンス内の各サンプルが、サンプル・トゥー・グループ・ボックスを用いて適切なサンプル・グループ・エントリに対しマッピングされる。いくつかの実施形態において、非参照イントラ・コーデッド・サンプルは、このサンプル・グループ・エントリ・リスト内のどのエントリにも属さず、したがってそのgroup_description_index値はゼロにセットされる。
「dptr」サンプル・グループ記述エントリのシンタックスを、例えば以下のように実装することができる。
class DependencyTreeEntry()
extends VisualSampleGroupEntry(’dptr’){
unsigned int(1)ref_pic_flag;
unsigned int(31)branch_id;
unsigned int(8)num_references;
for(i=0;i<num_references;i++){
unsigned int(1)reserved;
unsigned int(31)reference_branch_id;
}
}
同様のまたは同等のシンタックス構造を用いて他の実施形態を実施できるということを理解すべきである。例えば、他の実施形態では、シンタックスの長さを変更することができる。別の実施例では、first_sample_flagと呼ぶことのできる別のフラグを、サンプル・グループ記述エントリシンタックス内に含むことができ、num_referencesおよびreference_branch_idは、first_sample_flagが1に等しい場合にのみ存在し、特定のbranch_id値を有するデコーディング順に第1のサンプルのみが、1に等しいfirst_sample_flagを用いて、サンプル・グループ記述エントリに対してマッピングされる。
一実施形態において、例えばファイル・プレイヤ内で実装できる方法には、特定のピクチャに対するランダム・アクセスを行うため、すなわち、デコーディングが再初期化された場合またはより早期のピクチャが全くデコーディングされていない状況から出発して、特定のピクチャをデコーディングするために、以下のステップが含まれる。
第1に、サンプルがsyncサンプルである場合、それは直ちにデコーディングされ、さらなる処理は全く不要である。そうでなければ、特定のピクチャのための分枝識別子およびref_pic_flag(など)は、例えば(特定のピクチャに対応する)サンプルに対応する(「dptr」タイプのグループ化の)サンプル・グループ記述指標を発見することによって、ファイル内に記憶された情報に基づいて結論付けされる。サンプル・グループ記述指標から、対応するサンプル・グループ記述エントリは、「dptr」タイプのグループ化のためサンプル・グループ記述ボックスから位置設定される。分枝識別子およびref_pic_flag(など)は、サンプル・グループ記述エントリから発見される。
第2に、デコーディングされるべき参照ピクチャについてのbranch_id値のリストdecBranchIdListが、「dptr」タイプのサンプル・グループ化のサンプル・グループ記述エントリを調査することによって導出される。ランダム・アクセスされたピクチャのbranch_idは、最初に、decBranchIdListの中に含まれる。以下のプロセスが再帰的に実行され、初期入力は、ランダム・アクセスされたピクチャのbranch_id値である。
− サンプル・グループ記述エントリが調査される。プロセスへの入力として与えられたbranch_id値に等しいreferen_branch_idを有する各々のサンプル・グループ記述エントリについて、プロセスへの入力として与えられたbranch_id値は、decBranchIdList内に含まれ(それがすでにdecBranchIdList内に存在していたのでないかぎり)、プロセスは、発見されたサンプル・グループ記述エントリのbranch_id値を入力されたbranch_id値として提供することによって、再帰的に反復される。
第3に、デコーディング順でランダム・アクセスされたサンプルに先行し、リストDecBranchIdList内の1つの値に等しいbranch_id値に(「dptr」サンプル・グループ化を用いて)マッピングされている全ての参照サンプルが、デコーディングされる。その後、ランダム・アクセスされたサンプルはデコーディングされる。
他の任意の実施形態と共にまたはそれとは独立して適用できる一実施形態においては:
− 1画像シーケンスのためのインター予測パターンを決定するかまたは獲得するステップであって、インター予測パターンは、どのピクチャがイントラ・コーディングされるか、どのピクチャがインターコーディングされるか、どのピクチャが参照ピクチャであるか、どのピクチャが非参照ピクチャであるか、およびインター・コーデッド・ピクチャを予測するための参照としてどのピクチャを使用できるか、の情報を提供し、コーディングされるべきピクチャの数がパターンの長さよりも大きい場合、パターンが反復されるステップ、および
− 抽出されたビットストリームが適合しているように、エンコーデッド・ビットストリームからの任意のピクチャをその直接的および間接的参照ピクチャと共に抽出できるようにするエンコーディングのためのパラメータを選択するステップ、
を含む方法が存在する。
一実施形態において、抽出されたビットストリームは、そのデコーディングの結果、全ビットストリームがデコーディングされたときのそれぞれのデコーデッド・サンプルと同じサンプル値(すなわち画素値)がもたらされる場合、および抽出されたビットストリームをデコーディングするときのピクチャの出力順序が、全ビットストリームがデコーディングされるときのそれぞれのピクチャの出力順序と同じである場合に、適合しているとみなすことができる。
一実施形態において、HEVCのシーケンス・パラメータ・セットのlog2_max_pic_order_cnt_lsb_minus4シンタックスなどによって表現することのできる、最大POC値または等価のものとしてのPOCサイクル長は、抽出されたビットストリームをデコーディングするときの任意のピクチャのPOCが、全ビットストリームをデコーディングするときのそれぞれのピクチャのPOCと同じになるようにセットされる。
一実施形態において、該方法はさらに、抽出されたビットストリームが適合していることを第1の標示を用いて標示するステップを含み、ここで抽出されたビットストリームは、その直接的および間接的参照ピクチャと合わせてエンコーデッド・ビットストリームから任意のピクチャを抽出することによって形成される。
一実施形態において、前記第1の標示は、エンコーデッド・ビットストリームを同様に含むまたは参照するコンテナ・ファイル内に含まれる。
一実施形態において、前記第1の標示は、他の実施形態で説明されている画像シーケンスのシグナリング参照サンプルである。他の実施形態で説明されている画像シーケンスのシグナリング参照サンプルがファイル内に存在する場合、抽出されたビットストリームが適合していることも同様に義務付けられ、ここで抽出されたビットストリームは、エンコーデッド・ビットストリームから任意のピクチャをその直接的および間接的参照ピクチャと合わせて抽出することによって形成される。
一実施形態において、前記第1の標示は、他の実施形態で説明されている画像シーケンス内のピクチャのための分枝識別子および参照分枝識別子のシグナリングである。ファイル中に画像シーケンス内のピクチャのための分枝識別子および参照分枝識別子のシグナリングが存在する場合、抽出されたビットストリームが適合していることも同様に義務付けられ、ここで、抽出されたビットストリームは、エンコーデッド・ビットストリームから任意のピクチャをその直接的および間接的参照ピクチャと合わせて抽出することによって形成される。
こうして、上述した方法は、最小限の遅延でランダム・アクセス機能を可能にする予測コーディング構造をシグナリングするための手段、および圧縮画像シーケンス内で個別のピクチャを編集する可能性を提供する。
参照サンプルなる用語に関連して実施形態を説明してきた。いくつかの実施形態では、参照サンプルは、直接的参照サンプルとみなされ、したがって間接的参照サンプルではない。他の実施形態では、参照サンプルは、直接的および間接的参照サンプルの両方の総称である。
参照ピクチャなる用語に関連して実施形態を説明してきた。いくつかの実施形態では、参照ピクチャは、直接的参照ピクチャとみなされ、したがって間接的参照ピクチャではない。他の実施形態では、参照ピクチャは、直接的および間接的参照ピクチャの両方の総称である。
以上で説明した本発明の実施形態のいくつかは、関与するプロセスの理解を助ける目的で、エンコーダおよびデコーダ装置が別個であるものとして、コーデックについて記載している。しかしながら、装置、構造およびオペレーションを単一のエンコーダ・デコーダ装置/構造/オペレーションとして実装できることが認識されると考えられる。さらに、本発明のいくつかの実施形態において、コーダおよびデコーダは、いくつかのまたは全ての共通要素を共用することができる。
以上で説明した本発明の実施形態のいくつかは、関与するプロセスの理解を助ける目的で、ファイル書込みおよびファイル読取りのための別個の装置について記載している。しかしながら、装置、構造およびオペレーションを単一のファイル・ライター・リーダー/構造/オペレーションとして実装できることが認識されると思われる。さらに、本発明のいくつかの実施形態において、ファイル・ライターおよびファイル・リーダーは、いくつかのまたは全ての共通要素を共用することができる。
以上の実施例は、電子デバイス内のコーデック、ファイル・プレイヤ、またはファイル・レコーダー内で動作する本発明の実施形態を説明しているものの、クレーム中に定義されている本発明を、任意のビデオ・コーデック、任意のファイル・プレイヤまたは任意のファイル・レコーダーの一部として実装できることが認識されると思われる。したがって、例えば、本発明の実施形態を、固定のまたは有線の通信パス上でそれぞれビデオ・コーディング、ファイル再生またはファイル記録を実装できるビデオ・コーデック、ファイル・プレイヤ、またはファイル・レコーダーの形で実装することができる。
こうして、ユーザー機器は、以上の本発明の実施形態中で説明されているものなどのビデオ・コーデック、ファイル・プレイヤ、またはファイル・レコーダーを含むことができる。ユーザー機器なる用語が、任意の好適なタイプの無線ユーザー機器、例えば携帯電話、ポータブルデータ処理デバイスまたはポータブル・ウェブ・ブラウザなどをカバーするように意図されていることが認識されるものとする。
さらに、地上波公共移動通信ネットワーク(PLMN)の要素も同様に、上述のビデオ・コーデック、ファイル・プレイヤまたはファイル・レコーダーを含むことができる。
概して、本発明のさまざまな実施形態は、ハードウェアまたは専用回路、ソフトウェア、論理またはそれらの任意の組合せの形で実装可能である。例えば、一部の実施形態をハードウェアの形で実装することができ、一方他の実施形態を、コントローラ、マイクロプロセッサまたは他の計算デバイスにより実行され得るファームウェアまたはソフトウェアの形で実装することができるが、本発明はそれらに限定されるわけではない。本発明のさまざまな実施形態を、ブロック図、流れ図として、または他のいくつかの図的表現を用いて例示できるものの、本明細書中で説明されているこれらのブロック、装置、システム、技術または方法を、非限定的例として、ハードウェア、ソフトウェア、ファームウェア、専用回路または論理、汎用ハードウェアまたはコントローラまたは他の計算デバイスまたはそれらのいくつかの組合せの形で実装できることは、充分に理解される。
本発明の実施形態は、例えばプロセッサー・エンティティ内の移動体デバイスのデータ・プロセッサによって実行可能なコンピュータ・ソフトウェアによってまたはハードウェアによって、またはソフトウェアとハードウェアの組合せによって、実装可能である。さらにこの点に関して、図中にあるような論理の流れのいずれのブロックもプログラム・ステップ、または相互連結された論理回路、ブロックおよび機能、またはプログラム・ステップおよび論理回路、ブロックおよび機能の組合せを表現できることを指摘しておくべきである。ソフトウェアは、プロセッサ内部に実装されたメモリ・ブロックまたはメモリ・チップなどの物理媒体、ハード・ディスクまたはフロッピー・ディスクなどの磁気媒体、および例えばDVDおよびそのデータ変形形態、CDなどの光学媒体上に記憶可能である。
メモリは、局所的技術環境に好適なあらゆるタイプのものであることができ、半導体ベースのメモリ・デバイス、磁気メモリ・デバイスおよびシステム、光学メモリ・デバイスおよびシステム、固定メモリおよびリムーバブル・メモリなどの任意の好適なデータ記憶技術を用いて実装可能である。データ・プロセッサは、局所的技術環境に好適な任意のタイプのものであることができ、汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)およびマルチ・コア・プロセッサ・アーキテクチャのうちの1つ以上を非限定的例として含むことができる。
本発明の実施形態は、集積回路モジュールなどのさまざまなコンポーネントの形で実施可能である。集積回路の設計は、概して高度に自動化されたプロセスである。論理レベルの設計を半導体基板上で直ちにエッチングし形成できる状態の半導体回路の設計へと転換するために、複雑で強力なソフトウェア・ツールが利用可能である。
Mountain View、CaliforniaのSynopsys.IncおよびSan Jose、CaliforniaのCadence Designにより提供されているもののようなプログラムは、導体を自動的に経路指定し、確立した設計規則ならびに予め記憶された設計モジュールのライブラリを用いて、半導体チップ上にコンポーネントを位置設定する。半導体回路のための設計が、ひとたび完成すると、規格化された電子フォーマット(例えばOpus、GDSIIなど)での結果として得られた設計を半導体製造施設または製造を略して「fab」へと伝送することができる。
以上の説明は、例示的で非限定的な実施例を用いて、本発明の例示的実施形態の完全で詳細な説明を提供している。しかしながら、当業者にとっては、付随する図面および添付のクレームと併せて読んだ場合に以上の説明を考慮して、さまざまな修正および適応化が明らかになる可能性がある。ただし、本発明の教示のこのようなおよび類似の修正は、なおも本発明の範囲内に入るものである。