以下では、視点切替えを開始するための好適な装置および考えられるメカニズムについて詳細に説明する。この点において、まず、図1および2が参照され、ここで図1は、本発明の一実施形態に係るコーデックを組込むことのできる例示的装置または電子デバイス50の概略的ブロック図として、一例示的実施形態に係るビデオ・コーディング・システムのブロック図を示す。図2は、一例示的実施形態に係る装置のレイアウトを示す。図1および2のエレメントについて、次に説明する。
電子デバイス50は例えば、移動体端末または無線通信システムのユーザー機器であることができる。しかしながら、本発明の実施形態は、ビデオ画像のエンコーディングとデコーディングまたはエンコーディングまたはデコーディングを必要とする可能性のある任意の電子デバイスまたは装置内で実装可能であるということが認識されると思われる。
装置50は、デバイスを組込み、保護するためのハウジング30を備えることができる。装置50はさらに、液晶ディスプレイの形をしたディスプレイ32をさらに備えることができる。本発明の他の実施形態において、ディスプレイは、画像または映像を表示するのに好適である任意の好適なディスプレイ技術であることができる。装置50はさらに、キーパッド34を含むことができる。本発明の他の実施形態においては、任意の好適なデータまたはユーザー・インターフェース・メカニズムを利用することができる。例えば、ユーザー・インターフェースを、タッチ・センサー式ディスプレイの一部として仮想キーパッドまたはデータ・エントリー・システムとして実装することができる。
装置は、マイクロホン36または、デジタルまたはアナログ信号入力端であることのできる任意の好適な音響入力端を備えることができる。装置50はさらに、本発明の実施形態においてはイヤーピース38、スピーカーまたはアナログ音響出力またはデジタル音響出力接続のうちのいずれか1つであることのできる音響出力デバイスを備えることができる。装置50は同様に、バッテリ40を備えることもできる(または、本発明の他の実施形態において、デバイスは、太陽電池などの任意の好適な移動体エネルギー・デバイスによる動力を受けることができる)。装置はさらに、画像および/または映像を記録および/または捕捉する能力を有するカメラ42を備えることができる。装置50はさらに、他のデバイスに対する短距離見通し通信のための赤外線ポートを備えることができる。他の実施形態において、装置50はさらに、例えばBluetooth無線接続またはUSB/ファイアーワイヤ有線接続などの任意の好適な短距離通信ソリューションを備えることができる。
装置50は、装置50を制御するためのコントローラ56またはプロセッサを備えることができる。コントローラ56は、本発明の実施形態においては画像および音響データの形をした両方のデータを記憶でき、および/または同様にコントローラ56上での実施のための命令も記憶できるメモリ58に接続されることができる。コントローラ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)、ブルートゥース(登録商標)、IEEE802.11および任意の類似の無線通信テクノロジーを非限定的に含むさまざまな伝送技術を用いて通信することができる。本発明のさまざまな実施形態の実装に関与する通信デバイスは、無線、赤外線、レーザー、ケーブル接続、および任意の好適な接続を非限定的に含むさまざまな媒体を用いて通信することができる。
電気通信およびデータネットワークにおいて、チャネルは、物理チャネルまたは論理チャネルのいずれかを意味することができる。物理チャネルは、ワイヤなどの物理的伝送媒体を意味することができ、一方論理チャネルは、複数の論理チャネルを搬送する能力を有する多重化された媒体上の論理的接続を意味する。チャネルは、例えばビットストリームなどの情報信号を1つ以上の送信者(または送信機)から1つ以上の受信機まで搬送するために使用可能である。
実時間転送プロトコル(RTP)は、音響および映像などのタイムド・メディアの実時間転送のために広く使用されている。RTPは、ユーザー・データグラム・プロトコル(UDP)上で動作でき、UDPはそれ自体インターネット・プロトコル(IP)上で動作できる。RTPは、www.ietf.org/rfc/rfc3550.txtから入手可能であるインターネット・エンジニアリング・タスク・フォース(IETF)リクエスト・フォー・コメント(RFC)3550中で規定されている。RTP転送では、メディア・データは、RTPパケット内にカプセル化される。典型的に、各メディア・タイプまたはメディア・コーディング・フォーマットは、専用RTPペイロード・フォーマットを有する。
RTPセッションは、RTPと通信する参加者グループの間のつながりである。それは、一定数のRTPストリームを潜在的に運ぶことのできるグループ通信チャネルである。RTPストリームは、メディア・データを含むPTPパケットのストリームである。RTPストリームは、特定のRTPセッションに属するSSRCによって識別される。SSRCは、RTPパケット・ヘッダー内の32ビットのSSRCフィールドである同期化ソースまたは同期化ソース識別子のいずれかを意味する。同期化ソースは、同期化ソースからの全てのパケットが同じタイミングおよびシーケンス番号空間の一部を成し、したがって受信機は、再生のために同期化ソースによりパケットをグループ化することができることを特徴とする。同期化ソースの例としては、マイクロホンまたはカメラ、またはPTPミキサーなどの信号源から派生したパケット・ストリームの送信者が含まれる。各々のRTPストリームは、RTPセッション内で一意的であるSSRCによって識別される。RTPストリームは、論理チャネルとみなすことができる。
ISO/IEC13818−1内または、同等にITU−T勧告H.222.0内に規定されているMPEG−2転送ストリーム(TS)が、多重化されたストリーム内で音響、映像および他の媒体ならびにプログラム・メタデータまたは他のメタデータを運ぶためのフォーマットである。TS内で基本ストリーム(パケット化された基本ストリームとしても知られている)を識別するためには、パケット識別子(PID)が使用される。したがって、MPEG−2TS内の論理チャネルを、特定のPID値に対応するものとみなすことができる。
映像コーデックは、入力映像を、記憶/伝送のために好適である圧縮された表現に変換するエンコーダおよび、圧縮された映像表現をビューイングできる形態に戻るよう展開することのできるデコーダからなる。映像エンコーダおよび/または映像デコーダは、同様に、互いに分離したものであることもできる。すなわちコーデックを形成する必要はない。典型的には、エンコーダは、映像をよりコンパクトな形で、(すなわちより低いビットレートで)表現するために、原初の映像シーケンス内のいくつかの情報を破棄する。後続して定義するように、画像シーケンスをエンコードするために、映像エンコーダを使用することができ、コード化された画像シーケンスをデコードするために、映像デコーダを使用することができる。映像エンコーダまたは映像エンコーダのイントラ・コーディング部分または画像エンコーダを、画像をエンコードするために使用することができ、コード化された画像をデコードするためには、映像デコーダまたは映像デコーダのインター・デコーディング部分または画像デコーダを使用することができる。
典型的なハイブリッド映像エンコーダ、例えばITU−TH.263およびH.264の多くのエンコーダ実装は、2段階で映像情報をエンコードする。第1に、一部のピクチャ・エリア(または「ブロック」)内の画素値が、例えば、(先にコード化された映像フレームの1つの中で、コーディング中のブロックに密に対応するもののエリアを発見し標示する)動き補償手段によってか、あるいは(規定された方法でコーディングすべきブロックの周りの画素値を使用する)空間的手段によって、予測される。第2に、予測エラー、すなわち予測された画素ブロックと原初の画素ブロックの間の差は、コーディングされる。これは典型的には、規定された変換(例えば離散的コサイン変換(DCT)またはその変形形態)を使用して画素値の差を変換し、係数を量子化し、量子化係数をエントロピー・コーディングすることによって行われる。量子化プロセスの忠実度を変動させることにより、エンコーダは、画素表現の精度(ピクチャ品質)と結果としてのコーデッド映像表現のサイズ(ファイル・サイズまたは伝送ビットレート)との間のバランスを制御することができる。
時間予測、動き補償または動き補償予測とも呼ぶことのできるインター予測は、時間冗長性を低減させる。インター予測において、予測ソースは、先にデコード化されたピクチャである。イントラ予測は、同じピクチャ内の隣接する画素が相関される確率が高いという事実を利用する。イントラ予測は、空間または変換ドメイン内で行われる可能性がある。すなわち、サンプル値または変換係数のいずれかが予測され得る。イントラ予測は、典型的には、いかなるインター予測も適用されないイントラ・コーディング内で運用される。
コーディング・プロシージャの1つの成果は、例えば動きベクトルおよび量子化変換係数などのコーディング・パラメータのセットである。最初に空間的または時間的に隣接するパラメータから予測されている場合、多くのパラメータをより効率良くエントロピー・コーディングすることができる。例えば、動きベクトルを、空間的に近接する動きベクトルから予測することができ、動きベクトル予測との関係における差のみをコーディングすることができる。コーディング・パラメータの予測およびイントラ予測を、集合的にイン・ピクチャ予測と呼ぶことができる。
図4は、本発明の実施形態を利用するのに好適である映像エンコーダのブロック図を示す。図4は、2つのレイヤのためのエンコーダを提示しているが、提示されたエンコーダは同様に、1レイヤのみをエンコードするように単純化されるかまたは3つ以上のレイヤをエンコードするように拡張されることも可能であるということが認識されると思われる。図4は、ベース・レイヤ用の第1のエンコーダ・セクション500および強化レイヤ用の第2のエンコーダ・セクションを含む映像エンコーダの一実施形態を例示する。第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は、インター予測子306(画像と動き補償参照フレーム318との間の差を決定する)およびイントラ予測子308(現行フレームまたはピクチャのすでに処理された部分のみに基づいて画像についての予測を決定する)の両方におけるエンコードされるべき映像ストリームのベース・レイヤ画像を受信する300。インター予測子およびイントラ予測子の両方の出力は、モード・セレクタ310に渡される。イントラ予測子308は、2つ以上のイントラ予測モードを有することができる。したがって、各モードは、イントラ予測を行ない、予測された信号をモード・セレクタ310に提供することができる。モード・セレクタ310は同様に、ベース・レイヤ・ピクチャのコピーも受信する300。対応して、第2のエンコーダ・セクション502の画素予測子402は、インター予測子406(画像と動き補償参照フレーム418の間の差を決定する)およびイントラ予測子408(現行フレームまたはピクチャのすでに処理された部分にのみ基づいて画像ブロックについての予測を決定する)の両方においてエンコードされるべき映像ストリームの強化レイヤ画像を受信する400。インター予測子およびイントラ予測子の両方の出力は、モード・セレクタ410に渡される。イントラ予測子408は、2つ以上のイントラ予測モードを有することができる。したがって、各モードは、イントラ予測を行ない、モード・セレクタに対して予測された信号を提供することができる。モード・セレクタ410は同様に、強化レイヤピクチャ400のコピーも受信する。
現行ブロックをエンコードするためにどのエンコーディング・モードが選択されるかに応じて、インター予測子306、406の出力または、任意のイントラ予測子モードの1つの出力、またはモード・セレクタ内の表面エンコーダの出力は、モード・セレクタ310、410の出力端に渡される。モード・セレクタの出力は、第1の加算デバイス321、421に渡される。第1の加算デバイスは、予測エラーエンコーダ303、403に対して入力される第1の予測エラー信号320、420を生成するために、画素予測子302、402の出力をベース・レイヤ・ピクチャ300/強化レイヤピクチャ400から減算することができる。
画素予測子302、402はさらに、予備再構成器339、439から、画像ブロック312、412の予測表現と予測エラーデコーダ304、404の出力338、438との組合せを受信する。予備再構成された画像314、414は、イントラ予測子308、408およびフィルター316、416に渡されることができる。予備表現を受信したフィルター316、416は、予備表現をフィルタリングし、参照フレーム・メモリ318、418内にセーブすることのできる最終的な再構築画像340、440を出力することができる。参照フレーム・メモリ318は、将来のベース・レイヤ・ピクチャ300がインター予測動作において比較される参照画像として使用されるために、インター予測子306に接続されることができる。いくつかの実施形態に係る強化レイヤのインター・レイヤサンプル予測および/またはインター・レイヤ動き情報予測のためのソースとなるようにベース・レイヤが選択され標示されることを受けて、参照フレーム・メモリ318は同様に、将来の強化レイヤピクチャ400がインター予測動作において比較される参照画像として使用されるためにインター予測子406に接続されることができる。その上、参照フレーム・メモリ418は、将来の強化レイヤピクチャ400がインター予測動作において比較される参照画像として使用されるためにインター予測子406に接続されることができる。
第1のエンコーダ・セクション500のフィルター316からのフィルタリング・パラメータは、いくつかの実施形態に係る強化レイヤのフィルタリング・パラメータを予測するためのソースとなるようにベース・レイヤが選択され標示されることを受けて、第2のエンコーダ・セクション502に対して提供されることができる。
予測エラーエンコーダ303、403は、変換ユニット342、442および量子化器344、444を含む。変換ユニット342、442は、第1の予測エラー信号320、420を変換ドメインへと変換する。変換は、例えばDCT変換である。量子化器344、444は、量子化係数を形成するために、変換ドメイン信号、例えばDCT係数を量子化する。
予測エラーデコーダ304、404は、予測エラーエンコーダ303、403からの出力を受信し、第2の加算デバイス339、439における画像ブロック312、412の予測表現と組合わされた時点で予備再構成された画像314、414を生成するデコーデッド予測エラー信号338、438を生成するために、予測エラーエンコーダ303、403の反対のプロセスを行う。予測エラーデコーダは、変換信号を再構築するために、例えばDCT係数などの量子化係数値を脱量子化する脱量子化器361、461および、再構築された変換信号に対する逆変換を行う逆変換ユニット363、463を備えるものとみなされることができ、ここで逆変換ユニット363、463の出力は、再構築されたブロックを格納している。予測エラーデコーダは、同様に、さらなるデコーデッド情報およびフィルターパラメータにしたがって再構築ブロックをフィルタリングすることのできるブロック・フィルタをも含むことができる。
エントロピー・エンコーダ330、430は、予測エラーエンコーダ303、403の出力を受信し、エラー検出および補正能力を提供するために、信号に対し好適なエントロピー・エンコーディング/可変長エンコーディングを行うことができる。エントロピー・エンコーダ330、430の出力を、例えばマルチプレクサ508によって、ビットストリーム内に挿入することができる。
H.264/AVC規格は、国際電気通信連合の電気通信標準化部門(ITU−T)の映像コーディング専門家グループ(VCEG)と、国際標準化機構(ISO)/国際電気技術委員会(IEC)の動画専門家グループ(MPEG)の合同映像チーム(JVT)によって開発された。H.264/AVC規格は、両方の親標準化機構によって公開されており、ITU−T勧告H.264および、MPEG−4Part10アドバンスト映像コーディング(AVC)としても知られるISO/IEC国際規格14496−10と呼ばれている。仕様に対して新たな拡張または特徴を統合する、H.264/AVC規格の多数のバージョンが存在してきた。これらの拡張には、スケーラブル映像コーディング(SVC)およびマルチビュー映像コーディング(MVC)が含まれる。
高効率映像コーディング(HEVCとしても知られるH.265/HEVC)規格のバージョン1は、VCEGとMPEGの合同協力チーム−映像コーディング(JCT−VC)によって開発された。規格は、両方の親標準化機構によって公開されており、ITU−T勧告H.265および、MPEG−HPart2高効率映像コーディング(HEVC)としても知られるISO/IEC国際規格23008−2と呼ばれている。H.265/HEVCのバージョン2は、それぞれSHVC、MV−HEVC、およびREXTと省略できる、スケーラブル、マルチビュー、および忠実度範囲拡張を含んでいた。H.265/HEVCのバージョン2は、ITU−T勧告H.265(10/2014)として予め公開されたものであり、2015年にISO/IEC23008−2の第2版として公開される見込みである。現在、それぞれ3D−HEVCおよびSCCと省略できる3次元およびスクリーン・コンテンツ・コーディング拡張を含めた、H.265/HEVCに対するさらなる拡張を開発するための進行中の標準化プロジェクトが存在している。
SHVC、MV−HEVCおよび3D−HEVCは、HEVC規格のバージョン2の付録F中に規定された、共通基準仕様を使用する。この共通基準は、例えば、インター・レイヤ依存性などの、ビットストリームのレイヤの特性のいくつかならびにデコーディング・プロセス、例えばマルチ・レイヤ・ビットストリームについてのインター・レイヤ参照ピクチャおよびピクチャ・オーダー・カウントの導出を含めた参照ピクチャ・リスト構築を規定する、ハイレベル・シンタックスおよびセマンティクスを含む。付録Fは、同様に、HEVCの潜在的な後続マルチ・レイヤ拡張において使用可能である。以下では、SHSCおよび/またはMV−HEVCなどの特定の拡張を参照して、映像エンコーダ、映像デコーダ、エンコーディング方法、デコーディング方法、ビットストリーム構造および/または実施形態を説明することができるものの、これらは、概してHEVCのあらゆるマルチ・レイヤ拡張に対して適用可能であり、さらに一般に、任意のマルチ・レイヤ映像コーディングスキームに対して適用可能である、ということを理解すべきである。
H.264/AVCおよびHEVCのいくつかの主要な定義、ビットストリームおよびコーディング構造および概念は、該実施形態を実装することのできる、映像エンコーダ、デコーダ、エンコーディング方法、デコーディング方法およびビットストリーム構造の一例として、本節において説明されている。H.264/AVCの主要な定義、ビットストリームおよびコーディング構造および概念のいくつかは、HEVCの場合と同じであり、したがって、これらは以下で合同で説明される。本発明の態様は、H.264/AVCまたはHEVCに限定されず、むしろ説明は、その上に本発明を部分的または完全に実現することのできる1つの考えられる基礎について提供されている。
初期の多くの映像コーディング規格と同様に、エラーのないビットストリームのためのビットストリーム・シンタックスおよびセマンティクスならびにデコーディング・プロセスは、H.264/AVCおよびHEVC内で規定されている。エンコーディングプロセスは規定されていないが、エンコーダは、適合ビットストリームを生成しなければならない。ビットストリームおよびデコーダ適合性は、仮想参照デコーダ(HRD)を用いて確認可能である。規格は、伝送エラーおよび損失に対処する上で一助となるコーディング・ツールを含むが、エンコーディングにおけるツールの使用は任意であり、誤ったビットストリームについては、いかなるデコーディング・プロセスも規定されていない。
既存の規格の説明内ならびに例示的実施形態の説明内において、シンタックス・エレメントは、ビットストリームで表現されたデータ・エレメントとして定義することができる。シンタックス構造は、規定の順序でビットストリーム内に共存するゼロまたはそれ以上のシンタックス・エレメントとして定義することができる。既存の規格の説明内ならびに例示的実施形態の説明内においては、「外部手段によって」または「外部手段を通して」なる言い回しを使用することができる。例えば、デコーディング・プロセス中で使用されるシンタックス構造または変数の値などのエンティティは、「外部手段によって」デコーディング・プロセスに提供されることができる。「外部手段によって」なる言い回しは、そのエンティティが、エンコーダによって作成されたビットストリーム内に含まれず、むしろ例えば制御プロトコルを用いてビットストリームから外部的に搬送される、ということを標示することができる。それは、代替的にまたは付加的に、エンティティがエンコーダによって作成されず、むしろ例えばプレーヤ内またはデコーダを使用しているデコーディング制御論理またはそれに類するものの中で作成され得ることを意味することができる。デコーダは、可変値などの外部手段を入力するためのインターフェースを有することができる。
プロファイルとは、デコーディング/コーディング規格または仕様によって規定される全ビットストリーム・シンタックスのサブセットと定義することができる。所与のプロファイルのシンタックスによって課せられた限界の内部では、デコーデッド・ピクチャの規定サイズなどのビットストリーム内のシンタックス・エレメントがとる値に応じて、エンコーダおよびデコーダの性能に非常に大きな変動を求めることがなおも可能である。多くの利用分野において、特定のプロファイル内のシンタックスの全ての仮説的使用を取り扱う能力を有するデコーダを実装することは、実用的でも経済的でもない可能性がある。この問題に対処するために、レベルを使用することができる。レベルは、デコーディング/コーディング規格または仕様において規定された変数およびビットストリーム内のシンタックス・エレメントの値に課せられる制約の規定されたセットとして定義することができる。これらの制約は、値に対する単なる限界であることができる。代替的にまたは付加的には、これらは、値の算術的組合せ(例えば、ピクチャの幅×ピクチャの高さ×毎秒デコーディングされるピクチャの数)に対する制約の形をとることができる。レベルのための制約を規定する他の手段も、使用することができる。1つのレベル内で規定される制約のいくつかは、例えば、最大ピクチャサイズ、最大ビットレートおよび、1秒などの時間あたりのマイクロブロックなどのコーディング・ユニットの観点から見た最大データ・レートに関するものであることができる。同じレベル・セットを、全てのプロファイルについて定義することができる。例えば、異なるプロファイルを実装する端末のインターオペラビリティを増大させるために、各レベルの定義の大部分または全ての側面が異なるプロファイルを横断して共通であることができることが好ましい場合がある。ティアとは、ビットストリーム内のシンタックス・エレメントの値に対して課せられるレベル制約の規定のカテゴリとして定義でき、ここでレベル制約は1つのティア内でネスティングされ、一定のティアおよびレベルに適合するデコーダが、そのレベルまたはそれより下位の任意のレベルの同じティアまたはより低いティアに適合する全てのビットストリームをデコーディングする能力を有するものと考えられる。
いくつかの事例において、適合性ポイントは、特定のプロファイルと特定のレベルの組合せ、または特定のプロファイル、特定のティアおよび特定のレベルの組合せとして定義することができる。適合性ポイントを代替的な方法で定義することもできるが、ビットストリームの特性および限界および/またはデコーダの特性および(最大)リソースを規定するというその意図は変更なく保つことができるという点を理解する必要がある。
それぞれH.264/AVCまたはHEVCエンコーダに対する入力およびH.264/AVCまたはHEVCデコーダの出力のための基本ユニットはピクチャである。エンコーダに対する入力として提供されたピクチャは、ソース・ピクチャとも呼ぶことができ、デコーダによりデコードされたピクチャは、デコーデッド・ピクチャと呼ぶことができる。
ソース・ピクチャおよびデコーデッド・ピクチャは、各々、以下のサンプル・アレイ・セットの1つなどの1つ以上のサンプル・アレイで構成される。
− ルマ(Y)のみ(モノクロ)、
− ルマおよび2つのクロマ(YCbCrまたはYCgCo)、
− 緑、青および赤(GBR、RGBとしても知られる)、
− 他の未規定モノクロまたは三刺激カラー・サンプリングを表わすアレイ(例えばYZX、XYZとしても知られる)。
以下では、これらのアレイは、ルマ(またはLまたはY)およびクロマと呼ぶことができ、ここで、使用されている実際の色表現方法とは無関係に、2つのクロマ・アレイをCbおよびCrと呼ぶことができる。使用されている実際の色表現方法は、例えばH.264/AVCおよび/またはHEVC.AのVideo Usability Information(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つのピクチャとして(デコーダおよび/またはデコーダによって)別個に処理される。
パーティショニングは、セットの各エレメントがサブセットのうちの正確に1つの中にあるように、1つのセットをサブセットに分割することとして定義される。
H.264/AVCにおいて、マクロブロックは、ルマ・サンプルの16×16ブロックと、クロマ・サンプルの対応するブロックである。例えば、4:2:0のサンプリング・パターンでは、マクロブロックは、各クロマ構成要素あたり1つのクロマ・サンプルの8×8ブロックを格納する。H.264/AVCにおいて、ピクチャは、1つ以上のスライス・グループにパーティショニングされ、スライス・グループは、1つ以上のスライスを格納する。H.264/AVCにおいて、スライスは、特定のスライス・グループ内でのラスター走査内で連続して順序づけされた整数のマクロブロックからなる。
HEVCエンコーディングおよび/またはデコーディングの動作を説明するとき、以下の用語を使用することができる。コーディング・ブロックは、コーディング・ブロックへのコーディング・ツリー・ブロックの分割が1パーティショニングとなるような、何らかのNの値についてのサンプルのN×Nブロックとして定義することができる。コーディング・ツリー・ブロック(CTB)は、コーディング・ツリー・ブロックへの一構成要素の分割が1パーティショニングとなるような、何らかのNの値についてのサンプルのN×Nブロックとして定義することができる。コーディング・ツリー・ユニット(CTU)は、ルマ・サンプルの1コーディング・ツリー・ブロック、3つのサンプル・アレイを有するピクチャのクロマ・サンプルの2つの対応するコーディング・ツリー・ブロック、または、サンプルをコーディングするために使用される3つの別個の色平面およびシンタックス構造を用いてコーディングされるピクチャまたはモノクロ・ピクチャのサンプルのコーディング・ツリー・ブロックとして定義することができる。コーディング・ユニット(CU)は、ルマ・サンプルの1つのコーディング・ブロック、3つのサンプル・アレイを有するピクチャのクロマ・サンプルの2つの対応するコーディング・ブロック、または、サンプルをコーディングするために使用される3つの別個の色平面およびシンタックス構造を用いてコーディングされるピクチャまたはモノクロ・ピクチャのサンプルのコーディング・ブロックとして定義することができる。
高効率映像コーディング(HEVC)コーデックなどのいくつかの映像コーデックにおいて、映像ピクチャは、ピクチャのエリアをカバーするコーディング・ユニット(CU)に分割される。CUは、CU内のサンプルのための予測プロセスを定義する1つ以上の予測ユニット(PU)と、前記CU内のサンプルのための予測エラーコーディング・プロセスを定義する1つ以上の変換ユニット(TU)とで構成される。典型的には、CUは、考えられるCUサイズの既定のセットから選択可能な1つのサイズを有する方形のサンプル・ブロックで構成される。許容された最大サイズを有するCUを、LCU(最大コーディング・ユニット)またはコーディング・ツリー・ユニット(CTU)と名付けることができ、映像ピクチャは、非重複LCUへと分割される。LCUはさらに、例えばLCUおよび結果としてのCUの再帰的スプリッティングによって、より小さいCUの組合せへとさらにスプリットされ得る。結果としてのCUは各々、典型的に少なくとも1つのPUとそれに結び付けられた少なくとも1つのTUとを有する。各PUおよびTUは、さらに、それぞれ予測および予測エラーコーディング・プロセスの粒度を増大させるためにより小さいPUおよびTUへとスプリットされ得る。各PUは、そのPU内の画素についてどの種類の予測を適用すべきかを定義する、このPUに結び付けられた情報を有する(例えば、インター予測されたPUについては動きベクトル情報および、イントラ予測されたPUについてはイントラ予測方向性情報)。
各TUは、前記TU内のサンプルのための予測エラーデコーディング・プロセスを記述する情報(例えばDCT係数情報を含む)と結び付けられ得る。典型的には、CUレベルにおいて、予測エラー・コーディングが各CUについて適用されるか否かがシグナリングされる。CUに付随する予測エラー剰余が全く存在しない場合には、前記CUのためのTUが全くないとみなすことができる。CUへの画像の分割およびPUおよびTUへのCUの分割は、典型的に、ビットストリーム内でシグナリングされ、これらのユニットの意図された構造をデコーダが再現できるようにする。
HEVCでは、ピクチャを、矩形で整数のLCUを格納するタイルの形にパーティショニングすることができ、タイルへのパーティショニングは正規グリッドを形成し、ここではタイルの高さおよび幅は互いに最大で1LCUしか異ならない。HEVCでは、スライスは、1つの独立したスライス・セグメントおよび同じアクセス・ユニット内部の次の独立したスライス・セグメント(あれば)に先行する全ての後続する従属スライス・セグメント(あれば)内に格納された整数のコーディング・ツリー・ユニットとして定義される。HEVCでは、スライス・セグメントは、タイル走査において連続して順序づけされ単一のNALユニット内に格納された整数のコーディング・ツリー・ユニットであるものとして定義される。各ピクチャのスライス・セグメントへの分割は、パーティショニングである。HEVCでは、独立スライス・セグメントは、スライス・セグメント・ヘッダーのシンタックス・エレメントの値を先行するスライス・セグメントについての値から推論できないスライス・セグメントとして定義づけされ、従属スライス・セグメントは、先行する独立スライス・セグメントについての値からデコーディング順でスライス・セグメント・ヘッダーのいくつかのシンタックス・エレメントの値が推論されるスライス・セグメントとして定義される。HEVCでは、スライス・ヘッダーは、現行スライス・セグメントであるかまたは現行従属スライス・セグメントに先行する独立スライス・セグメントである独立スライス・セグメントのスライス・セグメント・ヘッダーとして定義され、スライス・セグメント・ヘッダーは、スライス・セグメント内で表現される第1のおよび全てのコーディング・ツリー・ユニットに関係するデータ・エレメントを格納するコーデッド・スライス・セグメントの一部分として定義される。CUは、タイル内またはタイルが使用されていない場合はピクチャ内でのLCUのラスター走査順で走査される。LCU内で、CUは特定の走査順序を有する。
デコーダは、(エンコーダにより作成され圧縮表現で記憶された動きまたは空間情報を用いて)画素ブロックの予測された表現を形成するためにエンコーダに類似する予測手段を適用することによって、および予測エラー・デコーディング(空間画素ドメイン内で量子化予測エラー信号を回復する予測エラー・コーディングの逆動作)を適用することによって、出力映像を再構築する。予測および予測エラー・デコーディング手段を適用した後、デコーダは、予測および予測エラー信号(画素値)を総計して、出力映像フレームを形成する。デコーダ(およびエンコーダ)は、同様に、表示のため渡すおよび/または映像シーケンス内の次回のフレームのための予測参照としてそれを記憶する前に、出力映像の品質を向上させるための追加のフィルタリング手段を適用することもできる。
フィルタリングは、例えば、デブロッキング、サンプル・アダプティブ・オフセット(SAO)および/またはアダプティブ・ループ・フィルタリング(ALF)のうちの1つ以上を含むことができる。H.264/AVCは、デブロッキングを含み、一方HEVCは、デブロッキングおよびSAOの両方を含む。
典型的な映像コーデックにおいて、動き情報は、予測ユニットなど、各々の動き補償された画像ブロックと結び付けられた動きベクトルと共に標示される。これらの動きベクトルの各々は、コーディング(エンコーダ側)またはデコーディング(デコーダ側)すべきピクチャ内の画像ブロックおよび先にコーディングまたはデコード化されたピクチャの1つの中の予測ソース・ブロックの変位を表現する。動きベクトルを効率良く表現するために、これらのベクトルは、ブロック特定的な予測された動きベクトルとの関係において差分コーディングされる。典型的な映像コーデックにおいて、予測された動きベクトルは、例えば隣接ブロックのエンコーデッドまたはコーデッド動きベクトルの中央値を計算することなど、既定の方法で作成される。動きベクトル予測を作成する別の方法は、時間的参照ピクチャ内の隣接ブロックおよび/またはコロケートされたブロックから候補予測リストを生成し、選択された候補を動きベクトル予測子としてシグナリングすることにある。動きベクトル値を予測することに加えて、動き補償された予測のためにどの参照ピクチャが使用されるかが予測され得、この予測情報は、先にコーディング/デコード化されたピクチャの基準指標などにより表現されることができる。参照指標は、典型的には、時間的参照ピクチャ内の隣接ブロックおよび/またはコロケートされたブロックから予測される。その上、典型的な高効率映像コーデックは、多くの場合マージング/マージ・モードと呼ばれる追加の動き情報コーディング/デコーディング・メカニズムを利用し、ここで、各々の利用可能な参照ピクチャ・リストについての動きベクトルおよび対応する参照ピクチャ指標を含む全ての動きフィールド情報が予測され、いかなる修正/補正もなく使用される。同様にして、動きフィールド情報の予測は、時間的参照ピクチャ内の隣接ブロックおよび/またはコロケートされたブロックの動きフィールド情報を用いて実施され、利用可能な隣接/コロケートされたブロックの動きフィールド情報が記入された動きフィールド候補リストの中で、使用済み動きフィールド情報はシグナリングされる。
典型的な映像コーデックは、(デ)コーディングされつつあるブロックのために単一の予測ブロックが使用される単方向予測の使用を有効化し、(デ)コーディングされつつあるブロックのための予測を形成するために2つの予測ブロックが組合わされる双方向予測の使用を有効化する。いくつかの映像コーデックは、残留情報を追加する前に予測ブロックのサンプル値が重み付けされる重み付き予測を有効化する。例えば、乗法重み付け係数および加法オフセットを適用することができる。いくつかの映像コーデックによって有効化される明示的重み付き予測においては、重み付け係数およびオフセットを、例えば各々の許容可能な参照ピクチャ指標についてスライス・ヘッダー内でコーディングすることができる。いくつかの映像コーデックにより有効化される黙示的重み付き予測においては、重み付け係数および/またはオフセットはコーディングされず、例えば、参照ピクチャの相対的ピクチャ・オーダー・カウント(POC)距離に基づいて導出される。
典型的映像コーデックにおいて、動き補償後の予測剰余は、まず変換カーネル(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/AVCNALユニット・ヘッダーは、0に等しい場合NALユニット内に格納されたコーデッド・スライスが非参照ピクチャの一部であることを標示し、0より大きい場合NALユニット内に格納されたコーデッド・スライスが参照ピクチャの一部であることを標示する、2ビットのnal_ref_idcシンタックス・エレメントを含む。SVCおよびMVC NALユニットのためのヘッダーは、さらに、スケーラビリティおよびマルチビュー階層に関連するさまざまな標示を格納することができる。
HEVCでは、規定された全てのNALユニットタイプのために、2バイトNALユニット・ヘッダーが使用される。NALユニット・ヘッダーは、1つの予約されたビット、6ビットのNALユニットタイプ標示、(1以上であることが求められる場合のある)時間的レベルについての3ビットのnuh_temporal_id_plus1標示、および6ビットのnuh_layer_idシンタックス・エレメントを格納する。temporal_id_plus1シンタックス・エレメントは、NALユニットのための時間的識別子とみなされることができ、ゼロベースのTemporalId変数を、以下のように導出することができる。TemporalId=temporal_id_plus1−1。0に等しいTemporalIdは、最低の時間的レベルに対応する。temporal_id_plus1の値は、2つのNALユニット・ヘッダー・バイトが関与する開始コード・エミュレーションを回避するために、非ゼロであることが求められる。選択された値以上のTemporalIdを有する全てのVCL NALユニットを除外し、他の全てのVCL NALユニットを内含することによって作成されたビットストリームは、適合するものであり続ける。その結果、TIDに等しいTemporalIdを有するピクチャは、インター予測参照としてTIDより大きいTemporalIdを有するいずれのピクチャも使用しない。サブレイヤまたは時間的サブレイヤは、TemporalId変数の特定の値を伴うVCL NALユニットおよび結び付けられた非VCL NALユニットで構成される時間的スケーラブル・ビットストリームの時間的スケーラブル・レイヤとして定義されることができる。nuh_layer_idは、スケーラビリティ・レイヤ識別子として理解されることができる。
NALユニットは、映像コーディングレイヤ(VCL)NALユニットと非VCL NALユニットに分類可能である。VCL NALユニットは、典型的には、コーデッド・スライスNALユニットである。H.264/AVCにおいて、コーデッド・スライスNALユニットは、各々が非圧縮ピクチャ内のサンプル・ブロックに対応する1つ以上のコーデッド・マクロブロックを表現するシンタックス・エレメントを格納する。HEVCでは、VCL NALユニットは、1つ以上のCUを表現するシンタックス・エレメントを格納する。
H.264/AVCでは、コーデッド・スライスNALユニットが、瞬間デコーディング・リフレッシュ(IDR)ピクチャ内のコーデッド・スライスまたは非IDRピクチャ内のコーデッド・スライスであるものとして標示され得る。
HEVCでは、コーデッド・スライスNALユニットは、以下のタイプの1つであるものと標示され得る。
HEVCでは、ピクチャタイプについての略称は以下のように定義することができる。トレーリング(TRAIL)ピクチャ、時間的サブレイヤ・アクセス(TSA)、ステップワイズ時間的サブレイヤ・アクセス(STSA)、ランダム・アクセス・デコーダブル・リーディング(RADL)ピクチャ、ランダム・アクセス・スキップド・リーディング(RASL)ピクチャ、破壊リンク・アクセス(BLA)ピクチャ、瞬間デコーディング・リフレッシュ(IDR)ピクチャ、クリーン・ランダム・アクセス(CRA)ピクチャ。
イントラ・ランダム・アクセス・ポイント(IRAP)ピクチャとも呼ぶことのできるランダム・アクセス・ポイント(RAP)ピクチャは、各スライスまたはスライス・セグメントが、16〜23の範囲(16、23を含む)内のnal_unit_typeを有するピクチャである。独立レイヤ内のIRAPピクチャは、イントラ・コーデッド・スライスのみを格納する。nuh_layer_id値currLayerIdを伴う予測されたレイヤに属するIRAPピクチャは、P、BおよびIスライスを格納し、currLayerIdに等しいnuh_layer_idを伴う他のピクチャからのインター予測を使用できず、その直接参照レイヤからのインター・レイヤ予測を使用することができる。HEVCの現在のバージョンでは、IRAPピクチャは、BLAピクチャ、CRAピクチャまたはIDRピクチャであることができる。ベース・レイヤを格納するビットストリーム内の最初のピクチャは、ベース・レイヤにあるIRAPピクチャである。必要なパラメータ・セットをアクティブにする必要がある場合に、これらのパラメータ・セットが利用可能であることを条件として、独立レイヤにある1つのIRAPピクチャおよびデコーディング順で独立レイヤにある全ての後続する非RASLピクチャは、デコーディング順でIRAPピクチャに先行するいずれかのピクチャのデコーディング・プロセスを行うことなく、適正にデコードされ得る。nuh_layer_id値currLayerIdを伴う予測されたレイヤに属するIRAPピクチャおよびデコーディング順でcurrLayerIdに等しいnuh_layer_idを伴う全ての後続する非RASLピクチャは、必要なパラメータ・セットをアクティブにする必要があるときにこれらのパラメータ・セットが利用可能である場合、およびcurrLayerIdに等しいnuh_layer_idを伴うレイヤの各々の直接参照レイヤのデコーディングが初期化された場合(すなわち、LayerInitialized Flag[refLayerId]が、currLayerIdに等しいnuh_layer_idを伴うレイヤの直接参照レイヤの全てのnuh_layer_id値に等しいrefLayerIdについて1に等しい場合)、デコーディング順でIRAPピクチャに先行するcurrLayerIdに等しいnuh_layer_idを伴ういずれかのピクチャのデコーディング・プロセスを行うことなく、適正にデコードされ得る。ビットストリーム内には、IRAPピクチャでないイントラ・コーデッド・スライスのみを格納するピクチャが存在する場合がある。
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ピクチャは、RASLピクチャのデコーディング・プロセスの前にRAPピクチャからデコーディングが開始した場合、適正にデコードされ得る。RASLピクチャは、非RASLピクチャのデコーディング・プロセスのための参照ピクチャとして使用されない。存在する場合、全てのRASLピクチャは、デコーディング順で、同じ結び付けられたRAPピクチャの全てのトレーリング・ピクチャに先行する。HEVC規格のいくつかの草案において、RASLピクチャは、タッグド・フォー・ディスカード(TFD)ピクチャと呼ばれていた。
全てのRADLピクチャは、リーディング・ピクチャである。RADLピクチャは、同じ結び付けられたRAPピクチャのトレーリング・ピクチャのデコーディング・プロセスのための参照ピクチャとして使用されない。存在する場合、全てのRADLピクチャは、デコーディング順で、同じ結び付けられたRAPピクチャの全てのトレーリング・ピクチャに先行する。RADLピクチャは、デコーディング順で結び付けられたRAPピクチャに先行するいずれのピクチャも参照せず、したがって、結び付けられたRAPピクチャからデコーディングが開始した場合、適正にデコードされ得る。HEVC規格のいくつかの草案において、RADLピクチャは、デコーダブル・リーディング・ピクチャ(DLP)と呼ばれていた。
CRAピクチャから始まるビットストリームの一部が別のビットストリーム内に内含される場合、CRAピクチャに結び付けられたRASLピクチャは、組合わされたビットストリーム内にその参照ピクチャのいくつかが存在しないことが考えられることから、適切にデコーディング可能でない場合があると思われる。このようなスプライシング動作を単純なものにするため、BLAピクチャであることを標示するように、CRAピクチャのNALユニットタイプを変更することができる。BLAピクチャと結び付けられたRASLピクチャは、出力/表示されないことから、適切にデコーディングできない場合がある。さらに、BLAピクチャと結び付けられたRASLピクチャを、デコーディングから削除することができる。
BLAピクチャは、デコーディング順でビットストリーム内の最初のピクチャであることができ、または、ビットストリーム中で後に出現することができる。各BLAピクチャは、新しいコーデッド映像シーケンスを開始し、デコーディング・プロセスに対してIDRピクチャと類似の効果を有する。しかしながら、BLAピクチャは、空でない参照ピクチャ・セットを規定するシンタックス・エレメントを格納する。BLAピクチャがBLA_W_LPに等しいnal_unit_typeを有する場合、このピクチャは、ビットストリーム内に存在しないピクチャに対する参照を格納し得ることからデコーダによって出力されずデコーディングできない可能性のある結び付けられた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に等しい場合、デコーデッド・ピクチャは、TemporalIdの同じ値を伴ういずれかのピクチャの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ピクチャと結び付けられたビットストリーム内にいかなるRADLピクチャも存在しない。BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャと結び付けられたまたはIDR_N_LPに等しいnal_unit_typeと結び付けられたいかなる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ピクチャが存在するサブレイヤへのアップ・スイッチングのみを有効化する上位のサブレイヤ内のピクチャに対し制約条件を課さない。
非VCL NALユニットは、例えば、以下のタイプのうちの1つであることができる。シーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、補足的強化情報(SEI)NALユニット、アクセス・ユニット・デリミタ―、エンド・オブ・シーケンスNALユニット、エンド・オブ・ビットストリームNALユニットまたは、フィラー・データNALユニット。パラメータ・セットは、デコーデッド・ピクチャの再構築のために必要とされ得、一方、他の非VCL NALユニットの多くは、デコーデッド・サンプル値の再構築のために必要でない。
コーデッド映像シーケンスを通して不変のままであるパラメータを、シーケンス・パラメータ内に内含することができる。デコーディング・プロセスが必要とする可能性のあるパラメータに加えて、シーケンス・パラメータ・セットは、任意には、バッファリング、ピクチャ出力タイミング、レンダリングおよびリソース予約にとって重要であり得るパラメータを含む映像ユーザビリティ情報(VUI)を含むことができる。シーケンス・パラメータ・セットを運ぶ3つのNALユニット、すなわち、シーケンス内のH.264/AVCVCL NALユニットについての全てのデータを格納するシーケンス・パラメータ・セットNALユニット、補助コーデッド・ピクチャについてのデータを格納するシーケンス・パラメータ・セット拡張NALユニット、およびMVCおよびSVC VCL NALユニットのためのサブセット・シーケンス・パラメータ・セットが、H.264/AVC中に規定されている。HEVCでは、シーケンス・パラメータ・セットRBSPは、1つ以上のピクチャ・パラメータ・セットRBSPまたはバッファリング周期SEIメッセージを格納する1つ以上のSEI NALユニットにより参照され得るパラメータを含む。ピクチャ・パラメータ・セットは、複数のコーデッド・ピクチャ内で不変である確率の高いパラメータを格納する。ピクチャ・パラメータ・セットRBSPは、1つ以上のコーデッド・ピクチャのコーデッド・スライスNALユニットにより参照され得るパラメータを含むことができる。
HEVCでは、映像パラメータ・セット(VPS)は、各スライス・セグメント・ヘッダー内に見出されるシンタックス・エレメントにより参照されるPPS内に見出されるシンタックス・エレメントにより参照されるSPS内に見出されるシンタックスのコンテンツによって決定されるような、ゼロ以上の全コーデッド映像シーケンスにあてはまるシンタックス・エレメントを格納するシンタックス構造として定義することができる。
映像パラメータ・セットRBSPは、1つ以上のシーケンス・パラメータ・セットRBSPにより参照され得るパラメータを含むことができる。
映像パラメータ・セット(VPS)、シーケンス・パラメータ・セット(SPS)、およびピクチャ・パラメータ・セット(PPS)の間の関係および階層は、以下のように説明することができる。VPSは、パラメータ・セット階層内でSPSより1レベル上方で、スケーラビリティおよび/または3D映像のコンテキスト内に存在する。VPSは、全コーデット映像シーケンス内の全ての(スケーラビリティまたはビュー)レイヤを横断して、全てのスライスについて共通であるパラメータを含むことができる。SPSは、全コーデッド映像シーケンス内の特定の(スケーラビリティまたはビュー)レイヤ内の全てのスライスについて共通であるパラメータを含み、多数の(スケーラビリティまたはビュー)レイヤにより共用されることができる。PPSは、特定のレイヤ表現(1アクセス・ユニット内の1つのスケーラビリティまたはビューレイヤの表現)内の全てのスライスについて共通であるパラメータを含み、多数のレイヤ表現の中で全てのスライスにより共用される確率が高い。
VPSは、ビットストリーム中のレイヤの依存関係についての情報、ならびに全コーデッド映像シーケンス内の全ての(スケーラビリティまたはビュー)レイヤを横断して全てのスライスに対して適用可能である他の多くの情報を提供することができる。VPSは、2つの部分、すなわちベースVSPおよびVSP拡張を含むものとみなすことができ、ここでVPS拡張は、任意に存在することができる。HEVCでは、ベースVPSは、vps_extension()シンタックス構造無しでvideo_parameter_set_rbsp()シンタックス構造を含むものとみなされることができる。video_parameter_set_rbsp()シンタックス構造は、そもそもすでにHEVCバージョン1のために規定されたものであり、ベース・レイヤデコーディングのために有用であり得るシンタックス・エレメントを含む。HEVCでは、VPS拡張を、vps_extension()シンタックス構造を含むものとみなすことができる。vps_extension()シンタックス構造は、そもそもマルチ・レイヤ拡張のためにHEVCバージョン2内で規定されていたものであり、レイヤ依存関係を標示するシンタックス・エレメントなどの1つ以上の非ベース・レイヤのデコーディングのために有用であり得るシンタックス・エレメントを含む。
H.264/AVCおよびHEVCシンタックスは、多くのパラメータ・セット・インスタンスを許容し、各インスタンスは、一意的識別子で識別される。パラメータ・セットに必要とされるメモリ使用量を制限するためにパラメータ・セット識別子についての値範囲は制限されてきた。H.264/AVCおよびHEVCにおいて、各スライス・ヘッダーは、スライスを格納するピクチャのデコーディングのためにアクティブであるピクチャ・パラメータ・セットの識別子を含み、各々のピクチャ・パラメータ・セットは、アクティブ・シーケンス・パラメータ・セットの識別子を格納する。その結果として、ピクチャおよびシーケンス・パラメータ・セットの伝送が、スライスの伝送と正確に同期化されている必要はない。その代り、アクティブ・シーケンスおよびピクチャ・パラメータ・セットは、参照される前の任意の瞬間において受信されるだけで充分であり、こうして、スライス・データのために使用されたプロトコルに比べてより信頼性の高い伝送メカニズムを用いて「アウト・オブ・バンド」でのパラメータ・セットの伝送が可能になる。例えば、パラメータ・セットを、実時間転送プロトコル(RTP)セッションのためのセッション記述内に1パラメータとして内含することができる。パラメータ・セットが帯域内で伝送される場合、エラーロバスト性を改善するため、それらを反復することができる。
アクセスの容易さまたはセッション・ネゴシエーションなど、伝送エラーに対する許容エラー以外の目的のために、アウト・オブ・バンド伝送、シグナリングまたは記憶を、付加的にまたは代替的に使用することができる。例えば、ISOベース・メディア・ファイル・フォーマットに適合するファイル内のトラックのサンプル・エントリは、パラメータ・セットを含むことができ、一方、ビットストリーム内のコーデッド・データはファイル内または別のファイル内の他の場所に記憶される。(例えば「ビットストリームに沿って標示する」などの)「ビットストリームに沿って」とのフレーズは、アウト・オブ・バンド・データがビットストリームと結び付けられるような形でのアウト・オブ・バンド伝送、シグナリングまたは記憶を意味するものとして、クレーム中および説明された実施形態の中で使用されることができる。「ビットストリームに沿ったデコーディング」とのフレーズなどは、ビットストリームに結び付けられて(アウト・オブ・バンド伝送、シグナリングまたはストレージから得ることのできる)述べられたアウト・オブ・バンドデータのデコーディングを意味することができる。
スライスからまたは別のアクティブ・パラメータ・セットから、またはいくつかの事例においては、バッファリング周期SEIメッセージなどの別のシンタックス構造からの参照によって、パラメータ・セットをアクティブにすることができる。
SEI NALユニットは、出力ピクチャのデコーディングのためには必要とされないものの、ピクチャ出力タイミング、レンダリング、エラー検出、エラー隠蔽およびリソース予約などの関連プロセスを補助することのできる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メッセージをハンドリングするためのプロセスを規定することが可能である、ということが意図されている。
HEVCでは、互いに異なるnal_unit_type値を有する、2つのタイプのSEI NALユニット、すなわちサフィックスSEI NALユニットおよびプリフィックスSEI NALが存在する。サフィックスSEI NALユニット内に格納されたSEIメッセージは、デコーディング順でサフィックスSEI NALユニットに先行するVCL NALユニットと結び付けられる。プリフィックスSEI NALユニット内に格納されたSEIメッセージは、デコーディング順でプリフィックスSEI NALユニットに後続するVCL NALユニットと結び付けられる。
コーデッド・ピクチャは、ピクチャのコード化された表現である。H.264/AVC内のコーデッド・ピクチャは、ピクチャのデコーディングのために必要とされるVCL NALユニットを含む。H.264/AVCにおいて、コーデッド・ピクチャは、一次コーデッド・ピクチャまたは冗長コーデッド・ピクチャであり得る。一次コーデッド・ピクチャは、有効なビットストリームのデコーディング・プロセスの中で使用され、一方冗長コーデッド・ピクチャは、一次コーデッド・ピクチャが首尾良くデコードされ得ない場合にのみデコードされるべき冗長表現である。HEVCでは、冗長コーデッド・ピクチャは全く規定されなかった。
H.264/AVCでは、アクセス・ユニット(AU)は、一次コーデッド・ピクチャおよびそれに結び付けられたNALユニットを含む。H.264/AVCでは、アクセス・ユニット内のNALユニットの出現順序は、以下のように抑制される。任意のアクセス・ユニット・デリミタ−NALユニットが、アクセス・ユニットの開始を標示することができる。それにはゼロ以上のSEI NALユニットが後続する。一次コーデッド・ピクチャのコーデッド・スライスが次に出現する。H.264/AVCでは、一次コーデッド・ピクチャのコーデッド・スライスには、ゼロ以上の冗長コーデッド・ピクチャのためのコーデッド・スライスが後続することができる。冗長コーデッド・ピクチャは、ピクチャまたはピクチャの一部のコード化された表現である。冗長コーデッド・ピクチャは、例えば伝送中の損失または物理記憶媒体内の破損に起因して一次コーデッド・ピクチャがデコーダによって受信されない場合にデコードされることができる。
H.264/AVCでは、アクセス・ユニットは同様に、一次コーデッド・ピクチャを補足し例えば表示プロセスにおいて使用可能なピクチャである、補助コーデッド・ピクチャを含むことができる。補助コーデッド・ピクチャは、例えば、デコーデッド・ピクチャ内のサンプルの透明性レベルを規定するアルファ・チャネルまたはアルファ・プレーンとして使用されることができる。アルファ・チャネルまたはプレーンは、互いの上で少なくとも部分的に透明であるピクチャを重ね合わせることによって出力ピクチャが形成される、レイヤ状の編成またはレンダリング・システムの中で使用可能である。補助コーデッド・ピクチャは、モノクロ冗長コーデッド・ピクチャと同じシンタックスおよびセマンティクス上の制約を有する。H.264/AVCでは、
HEVCでは、コーデッド・ピクチャは、ピクチャの全てのコーディング・ツリー・ユニットを格納するピクチャのコード化された表現として定義することができる。HEVCでは、アクセス・ユニット(AU)は、規定の分類規則にしたがって互いに結び付けられ、デコーディング順で連続しており、nuh_layer_idの任意の特定の値をもつ最大1つのピクチャを格納するNALユニットのセットとして定義することができる。コーデッド・ピクチャのVCL NALユニットを格納することに加えて、アクセス・ユニットは同様に非VCL NALユニットも格納することができる。
コーデッド・ピクチャがアクセス・ユニット内で一定の順序で出現することが求められる場合がある。例えば、nuhLayerIdAに等しいnuh_layer_idを伴うコーデッド・ピクチャは、デコーディング順で、同じアクセス・ユニット内のnuhLayerIdAより大きいnuh_layer_idを伴う全てのコーデッド・ピクチャに先行することが求められる可能性がある。
HEVCでは、ピクチャユニットは、コーデッド・ピクチャの全てのVCL NALユニットおよびその結び付けられた非VCL NALユニットを格納するNALユニットのセットとして定義することができる。非VCL NALユニットのための結び付けられたVCL NALユニットは、一定のタイプの非VCL NALユニットについてはデコーディング順で非VCL NALユニットに先行するVCL NALユニット、および他のタイプの非VCL NALユニットについてはデコーディング順で非VCL NALユニットの次のVCL NALユニットとして定義することができる。VCL NALユニットのための結び付けられた非VCL NALユニットは、VCL NALユニットが結び付けられたVCL NALユニットである非VCL NALユニットとして定義することができる。例えば、HEVCでは、結び付けられたVCL NALユニットは、EOS_NUT、EOB_NUT、FD_NUT、またはSUFFIX_SEI_NUTに等しいかまたはRSV_NVCL45..RSV_NVCL47またはUNSPEC56..UNSPEC63の範囲内のnal_unit_typeを伴う非VCL NALユニットについてはデコーディング順で先行するVCL NALユニットとして、そうでなければデコーディング順で次のVCL NALユニットとして定義することができる。
ビットストリームは、コーデッド・ピクチャおよび1つ以上のコーデッド映像シーケンスを形成する結び付けられたデータの表現を形成するNALユニット・ストリームまたはバイト・ストリームの形をしたビット・シーケンスとして定義することができる。第1のビットストリームには、通信プロトコルの同じ接続内または同じファイル内など、同じ論理チャネル内の第2のビットストリームが後続することができる。基本ストリーム(映像コーディングに関連して)は、1つ以上のビットストリームのシーケンスとして定義することができる。第1のビットストリームの終りは、エンド・オブ・ビットストリーム(EOB)NALユニットと呼ぶことができビットストリームの最後のNALユニットである特定のNALユニットによって標示されることができる。HEVCおよびその現行草案の拡張において、EOB NALユニットは0に等しいnuh_layer_idを有することが求められる。
H.264/AVCでは、コーデッド映像シーケンスは、デコーディング順で、IDRアクセス・ユニット(これを含めて)から排他的に次のIDRアクセス・ユニット(これを含めずに)まで、またはビットストリームの終りまで、のいずれか早く出現するものに至るまでの連続するアクセス・ユニットのシーケンスとして定義される。
HEVCでは、コーデッド映像シーケンス(CVS)は、例えば、デコーディング順で、1に等しいNoRas1OutputFlagを伴うIRAPアクセス・ユニットと、それに続く、1に等しいNoRaslOutputFlagを伴うIRAPアクセス・ユニットである任意の後続するアクセス・ユニットを含まずこのアクセス・ユニットに至るまでの全ての後続するアクセス・ユニットを含めた、1に等しいNoRaslOutputFlagを伴うIRAPアクセス・ユニットでないゼロ以上のアクセス・ユニットとで構成されるアクセス・ユニットのシーケンスとして定義することができる。IRAPアクセス・ユニットは、ベース・レイヤ・ピクチャがIRAPピクチャであるアクセス・ユニットとして定義することができる。NoRaslOutputFlagの値は、各IDRピクチャ、各BLAピクチャおよび、デコーディング順でビットストリーム内の特定のレイヤが、デコーディング順で同じnuh_layer_id値を有するエンド・オブ・シーケンスNALユニットに後続する第1のIRAPピクチャであるという点において第1のピクチャである各IRAPピクチャについて、1に等しい。マルチ・レイヤHEVCでは、NoRaslOutputFlagの値は、各IRAPピクチャについて、そのnuh_layer_idが、LayerInitializedFlag[nuh_layer_id]が0に等しく、LayerInitializedFlag[refLayerId]がIdDirectRefLayer[nuh_layer_id][j]に等しい全てのrefLayerIdについて1に等しく、ここでjは0からNumDirectRefLayers[nuh_layer_id]−1まで(これを含む)の範囲内にあるようなものである場合に、1に等しい。そうでなければ、NoRaslOutputFlagの値は、HandleCraAsBlaFlagに等しい。1に等しいNoRaslOutputFlagは、NoRaslOutputFlagが設定されているIRAPピクチャと結び付けられたRASLピクチャがデコーダによって出されないという影響をもたらす。デコーダを制御できるプレーヤまたは受信機などの外部エンティティからデコーダに対してHandleCraAsBlaFlagの値を提供するための手段が存在する場合がある。HandleCraAsBlaFlagは、例えば、ビットストリーム内で新しい位置まで進むかまたはブロードキャストに同調しデコーディングを開始し次にCRAピクチャからのデコーディングを開始するプレーヤによって、1に設定可能である。CRAピクチャについて、HandleCraAsBlaFlagが1に等しい場合、CRAピクチャは、あたかもBLAピクチャであるかのように、ハンドリングされデコーディングされる。
HEVCでは、コーデッド映像シーケンスは、エンド・オブ・シーケンス(EOS)NALユニットと呼ぶことのできる特定のNALユニットがビットストリーム内に現われ、0に等しいnuh_layer_idを有する場合、終了するように(以上で仕様に対し)付加的または代替的に規定されることができる。
HEVCでは、コーデッド映像シーケンス・グループ(CVSG)は、例えば、すでにアクティブでなかったVPS RBSP firstVpsRbspをアクティブにするIRAPアクセス・ユニットと、それに続いて、ビットストリームの終りまでまたはfirstVpsRbspと異なるVPS RBSPをアクティブにするアクセス・ユニットを除いてこのアクセス・ユニットまでのうちデコーディング順で早い方に至るまでfirstVpsRbspがアクティブVPS RBSPである、デコーディング順で後続する全てのアクセス・ユニットとで集合的に構成される、デコーディング順で1つ以上の連続するCVS、として定義することができる。
ピクチャ構造(SOP)は、デコーディング順で最初のコーデッド・ピクチャが最下位の時間的サブレイヤにおける参照ピクチャであり、潜在的にデコーディング順で最初のコーデッド・ピクチャを除いたいかなるコーデッド・ピクチャも、RAPピクチャではない、デコーディング順で連続する1つ以上のコーデッド・ピクチャとして定義することができる。前のSOP内の全てのピクチャは、デコーディング順で現SOP内の全てのピクチャに先行し、次のSOP内の全てのピクチャは、デコーディング順で、現SOP内の全てのピクチャに後続する。SOPは、階層的および反復的インター予測構造を表わすことができる。ピクチャ・グループ(GOP)なる用語は、時として、SOPなる用語と互換的に、およびSOPのセマンティクスと同じセマンティクスを有して使用される場合がある。
H.264/AVCおよびHEVCのビットストリーム・シンタックスは、特定のピクチャが他の任意のピクチャのインター予測のための参照ピクチャであるか否かを標示する。任意のコーディングタイプ(I、P、B)のピクチャが、H.264/AVCおよびHEVCにおいて参照ピクチャまたは非参照ピクチャであり得る。
統一リソース識別子(URI)は、リソースの名前を識別するために使用される文字列として定義できる。このような識別は、特定のプロトコルを用いた、ネットワーク上のリソースの表現とのインタラクションを可能にする。URIは、URIのための具体的なシンタックスおよび結び付けられたプロトコルを規定するスキームを通して定義される。統一リソース・ロケータ(URL)および統一リソース名(URN)は、URIの形態である。URLは、ウェブ・リソースを識別し、その主要なアクセス・メカニズムとネットワーク・ロケーションの両方を規定する、リソースの表現に対し作用するかこの表現を取得する手段を規定するURIとして定義することができる。URNは、特定の名前空間内で名前によってリソースを識別するURIとして定義することができる。URNは、そのロケーションまたはアクセス方法を暗示することなく、リソースを識別するために使用することができる。
ISO/IEC国際規格23009−1は、HTTP上の動的アダプティブ・ストリーミング(DASH)を規定する。実施形態を実装することのできる映像ストリーミング・システムの一例として、以下でMPEG−DASHのいくつかの概念、フォーマットおよび動作が説明される。本発明の態様は、MPEG−DASHに限定されず、むしろ、この説明は、本発明を部分的または完全に実施できる1つの考えられる基礎として提供されるものである。
HTTP上の動的アダプティブ・ストリーミング(DASH)においては、マルチメディア・コンテンツをHTTPサーバー上で捕捉し記憶することができ、HTTPを用いて配信することができる。コンテンツは、サーバー上で、2つの部分すなわち、利用可能なコンテンツ、そのさまざまな代替案、それらのURLアドレスおよび他の特徴のマニフェストを記述するメディア・プレゼンテーションの説明(MPD);および単一または多数のファイル内でチャンクの形で実際のマルチメディア・ビットストリームを格納するセグメントの中に記憶することができる。コンテンツを再生するためには、DASHクライアントは、例えばHTTP、Eメール、サム・ドライブ、ブロードキャストまたは他の転送方法を使用して、MPDを取得できる。MPDをパースすることにより、DASHクライアントは、プログラム・タイミング、メディア・コンテンツの利用可能性、メディア・タイプ、解像度、最小および最大帯域幅、およびマルチメディア構成要素のさまざまなエンコードされた代替案、アクセス可能性特徴および所要デジタル著作権管理(DRM)の存在、ネットワーク上のメディア構成要素のロケーション、および他のコンテンツ特性を知ることができる。この情報を用いて、DASHクライアントは、適切なエンコードされた代替案を選択し、例えばHTTP GETリクエストを用いて、セグメントをフェッチすることによってコンテンツのストリーミングを開始することができる。ネットワークスループット変動を許容するための適切なバッファリングの後、クライアントは、後続するセグメントのフェッチングを継続すると同時に、ネットワーク帯域幅の変動を監視することもできる。クライアントは、適切なバッファを維持するために、(より低いまたは高いビットレートで)異なる代替案のセグメントをフェッチすることによって、利用可能な帯域幅に対しいかに適応するか決定することができる。
メディア・プレゼンテーション説明(MPD)は、HTTP上の動的アダプティブ・ストリーミングを確立するため、クライアントの情報を提供することができる。MPDは、GETセグメント・リクエストを行うため、各セグメントのHTTP−統一リソース・ロケータ(URL)などのメディア・プレゼンテーションを説明する情報を格納することができる。DASHでは、図6に示されているように、メディア・プレゼンテーションを構造化するために、階層データ・モデルを使用することができる。メディア・プレゼンテーションは、1つ以上の「周期(Period)」のシーケンスを含むことができ、各「周期」は1つ以上の「グループ(Group)」を格納することができ、各グループは、1つ以上の「適応セット(Adaptation sets)」を格納でき、各「適応セット」は1つ以上の「表現(Representation)」を格納でき、各「表現」は1つ以上の「セグメント(Segment)」を含むことができる。「表現」は、エンコーディングの選択肢、例えばビットレート、解像度、言語、コーデックなどが異なる可能性のあるメディア・コンテンツまたはそのサブセットの代替的選択肢の1つである。「セグメント」は、一定の長さのメディア・データ、および、含まれているメディア・コンテンツをデコードし提示するためのメタデータを格納することができる。「セグメント」は、統一リソース・インジケータ(URI)によって識別されることができ、HTTP GETリクエストによって要求され得る。「セグメント」は、HTTP−URL、および任意にはMPDによって規定されるバイト範囲と結び付けられたデータのユニットとして定義されることができる。
MPEG−DASHに類似するストリーミング・システムは、例えば、IETFインターネット草案draft−pantos−http−live−streaming−13(および同じインターネット草案の他のバージョン)内で規定された、HTTPライブ・ストリーミング(HLSとも呼ばれる)を含む。MPDに対応するマニフェスト・フォーマットとして、HLSは、拡張M3Uフォーマットを使用する。M3Uは、当初音響ファイルのために開発されたマルチメディアプレイリストのためのファイル・フォーマットである。M3Uプレイリストは、個別のラインからなるテキスト・ファイルであり、各ラインはURI、ブランクであり、タグまたはコメントを標示する文字「#」で始まる。URIラインは、メディア・セグメントまたはプレイリストファイルを識別する。タグは#EXTで始まる。HLS仕様は、キー値対とみなすことのできる一定数のタグを規定する。タグの値部分は、属性値をシンタックスAttributeName=AttributeValueを有するものとみなすことのできる、属性−値対のカンマ区切りリストである属性リストを含むことができる。したがって、HLS M3U8ファイルのタグは、MPDまたはXML内の「エレメント」に類似するものとみなすことができ、HLS M3U8ファイルの属性は、MPDまたはXML内の「属性」に類似するものとみなすことができる。HLS内のメディア・セグメントは、MPEG−2トランスポート・ストリームにしたがってフォーマットされ、単一のMPEG−2プログラムを格納する。各メディア・セグメントは、「プログラム・アソシエーション・テーブル(PAT)」および「プログラム・マップ・テーブル(PMT)」で始まることが推奨される。
コンテナ・ファイルは、メディア・データなどのコンテンツおよびコンテンツに関連するメタデータを格納することができる。コンテナ・ファイルは、異なるデータ・テープを識別し、インターリーブするために使用されることができる。マルチメディア・コンテナ・ファイルは、例えば、音響、映像および画像を格納することができる。マルチメディア・コンテナ・ファイルは、マルチメディア・コンテンツ製作、マニピュレーション、伝送および消費という連鎖の中で使用される一エレメントとして使用することができる。コーディング・フォーマット(基本ストリーム・フォーマットまたはビットストリーム・フォーマットとしても知られる)とコンテナ・ファイル・フォーマットの間には実質的な差異が存在することができる。コーディング・フォーマットは、コンテンツ情報をビットストリームにコーディングする特定のコーディングまたは圧縮アルゴリズムのアクションに関係することができる。(メディア・ファイル・フォーマットとも呼ぶことのできる)コンテナ・ファイル・フォーマットは、全てさまざまな記憶および転送アーキテクチャを用いて、例えばローカル・デコーディングおよび再生のためにアクセスし、ファイルとして転送するかまたはストリーミングできるように、生成されたビットストリームを組織するためのシンタックスおよびセマンティクスを規定することができる。さらに、ファイル・フォーマットは、メディアの変換および編集、ならびに受信した実時間ストリームのファイルへの記録を容易にすることができる。
利用可能なメディア・ファイル・フォーマット規格としては、ISOベース・メディア・ファイル・フォーマット(ISOBMFFと略することのできるISO/IEC14496−12)ならびにISOBMFFから派生した規格、例えばMPEG−4ファイル・フォーマット(MP4フォーマットとしても知られているISO/IEC14496−14)、NALユニット構造化映像用のファイル−フォーマット(ISO/IEC14496−15)および3GPPファイル・フォーマット(3GPフォーマットとしても知られている3GPP TS26.244)が含まれる。ISO/IEC14496−15は、ISOBMFF対応ファイル内へのH.264/AVCおよび/またはHEVCおよび/またはそれらの拡張のビットストリームの記憶を規定している。言及されたファイル・フォーマット(ISOファイル・フォーマット自体を含む)ならびにISOBMFFから派生した他のファイル・フォーマットは、ISOファミリーのファイル・フォーマットと呼ぶことができる。
ISOBMFFのいくつかの概念、構造および仕様が、以下で、コンテナ・ファイル・フォーマットの一例として説明されており、これに基づいて、実施形態を実装することができる。本発明の態様はISOBMFFに限定されず、むしろ、説明は、それに基づいて本発明を部分的または完全に実施することのできる1つの考えられる基礎として提供される。
ISOベース・メディア・ファイル・フォーマット内の1つの基本的構築ブロックは、ボックスと呼ばれる。各ボックスは、ヘッダーとペイロードを有する。ボックス・ヘッダーは、そのボックスのタイプおよびバイト単位のボックスのサイズを標示する。ボックスは、他のボックスを包み込むことができ、ISOファイル・フォーマットは、一定のタイプのボックスの内部にどのボックス・タイプが許容されるかを規定する。さらに、いくつかのボックスの存在は、各ファイル内で義務的であり得、一方で、他のボックスの存在は任意であることができる。さらに、いくつかのボックス・タイプについて、2つ以上のボックスが1つのファイル内にあることが許容可能である場合もある。こうして、ISOベース・メディア・ファイル・フォーマットを、ボックスの階層構造を規定するものとみなすことができる。
ISOファミリーのファイル・フォーマットによると、ファイルは、ボックス内にカプセル化されるメディア・データおよびメタデータを含む。各ボックスは、4文字コード(4CC、fourCC)により識別することができる。4文字コードを、(8ビット値への或る文字変換、或るビット・エンディアンネスおよび或るバイト・エンディアンネスを仮定することにより)、32ビットの符号無し整数によって、互換的に表現することができる。ヘッダーは、ボックスのタイプおよびサイズに関する情報を提供することができる。ISOBMFFボックス構造の例示的格納階層が、図5に示されている。
ISOファミリーのファイル・フォーマットによると、ファイルは、別個のボックス内に包み込むことのできるメディア・データおよびメタデータを含むことができる。一例示的実施形態において、メディア・データは、メディア・データ(mdat)ボックスに入れて提供でき、ムービー(moov)ボックスはメタデータを包み込むために使用することができる。いくつかの事例において、ファイルが動作可能になるためには、mdatとmoovの両方のボックスが存在しなければならない。ムービー(moov)ボックスは、1つ以上のトラックを含むことができ、各トラックは、1つの対応するトラック(trak)ボックス内に存在することができる。各トラックのためのデータを、論理チャネルと考えることができる。各トラックは、トラック・タイプを規定する4文字コードにより識別されるハンドラと結び付けられる。映像、音響および画像シーケンス・トラックを、集合的にメディア・トラックと呼ぶことができ、これらのトラックは、基本的メディア・ストリームを格納する。他のトラック・タイプは、ヒント・トラックおよびタイムド・メタデータ・トラックを含む。トラックは、音響または映像フレームなどのサンプルを含む。メディア・トラックは、メディア圧縮フォーマットにしたがってフォーマティングされた(メディア・サンプルとも呼ぶことのできる)サンプル(およびISOベース・メディア・ファイル・フォーマットに対するそのカプセル化)を意味する。ヒント・トラックは、標示された通信プロトコル上での伝送のためのパケットを構築するためのクックブック命令を格納するヒント・サンプルを意味する。クックブック命令は、パケット・ヘッダー構築のためのガイダンスを含むことができ、パケット・ペイロード構築を含むことができる。パケット・ペイロード構築においては、他のトラックまたはアイテム内に存在するデータを参照することができる。こうして、例えば、パケット構築プロセス中にパケット内に特定のトラックまたはアイテム内のどのデータ・ピースをコピーするように命令するかに関する言及により、他のトラックまたはアイテム内に存在するデータを標示することができる。タイムド・メディア・トラックは、参照されたメディアおよび/またはヒント・サンプルを記述するサンプルを意味することができる。1つのメディア・タイプのプレゼンテーションのためには、1つのメディア・トラックを選択することができる。トラックのサンプルを、例えば標示されたサンプル・デコーディング順序で1だけ増分され得るサンプル番号と黙示的に結び付けることができる。トラック内の最初のサンプルは、サンプル番号と結び付けることができる。
ISOベース・メディア・ファイル・フォーマットにしたがった単純化されたファイル構造の一実施例について、以下で説明することができる。ファイルは、「moov」ボックスおよび「mdat」ボックスを含むことができ、「moov」ボックスは、それぞれ映像および音響に対応する1つ以上のトラックを含むことができる。
ISOベース・メディア・ファイル・フォーマットにしたがってフォーマティングされた多くのファイルが、ftypボックスとも呼ばれるファイル・タイプ・ボックスで始まる。ftypボックスは、ファイルをラベリングするブランドの情報を格納する。ftypボックスは、1つの主要なブランド標示および互換性あるブランドのリストを含む。主要ブランドは、ファイルをパースするために使用されるべき最も好適なファイル・フォーマット仕様を識別する。互換性あるブランドはそのファイルが適合するファイル・フォーマット仕様および/または適合性ポイントを標示する。ファイルが多数の仕様に適合していることが可能である。これらの仕様に対する適合性を示す全てのブランドをリストアップして、互換性あるブランドのサブセットを理解するだけのリーダーが、そのファイルがパースされ得ることの標示を得ることができるようにしなければならない。互換性あるブランドは同様に、特定のファイル・フォーマット仕様のファイル・パーサーが、ftypボックス内の同じ特定のファイル・フォーマット・ブランドを格納するファイルを処理する許可も与える。ファイル・プレーヤーは、ファイルのftypボックスが、自らサポートするブランドを含むか否かをチェックすることができ、ファイル・プレーヤーがサポートするいずれかのファイル・フォーマット仕様が互換性あるブランド中にリストアップされている場合にのみ、ファイルをパースし再生することができる。
ISOBMFFに適合するファイルは、メタ・ボックス(fourCC:「meta」)内に、アイテム、メタ・アイテム、またはメタタデータ・アイテムと呼ばれる任意の非タイムド・オブジェクトを格納することができる。メタ・ボックスの名前はメタデータを意味するものの、アイテムは概してメタデータまたはメディア・データを格納することができる。メタ・ボックスは、ムービー・ボックス(fourCC:「moov」)内およびトラック・ボックス(fourCC:「trak」)内でファイルのトップ・レベルに存在することができるが、多くとも1つのメタ・ボックスは、ファイル・レベル、ムービー・レベルまたはトラック・レベルの各々に発生することができる。メタ・ボックスは、「メタ」・ボックス・コンテンツの構造またはフォーマットを標示する「hdlr」ボックスを格納するよう求められる場合がある。メタ・ボックスは、参照され得る任意の数のアイテムをリストアップし、特徴づけすることができ、その各々を1つのファイル名と結び付けることができ、整数であるアイテム識別子(item_id)によってファイルと共に一意的に識別される。メタデータ・アイテムは、例えば、メタ・ボックスの「idat」ボックス内または「mdat」ボックス内に記憶されるかまたは別個のファイル内に存在することができる。メタデータがファイルの外部に位置設定される場合には、そのロケーションをDataInformationBox(fourCC:「dinf」)により宣言することができる。メタデータがXMLシンタックスを用いてフォーマティングされMetaBox内に直接記憶される必要がある特定の事例においては、メタデータをXMIBox(fourCC:「xml」)またはBinaryXMLBox(forcc:「bxml」)内にカプセル化することができる。アイテムを、隣接バイト・レンジとして記憶することができ、またはそれを、各々が1つの隣接バイト・レンジである複数のエクステント内に記憶することもできる。換言すると、例えばインターリービングを有効化するために、エクステントにフラグメント化された状態で、アイテムを記憶することができる。エクステントは、リソースのバイトの隣接サブセットであり、リソースは、エクステントを連結することによって形成可能である。
2つ以上のメタ・ボックスを階層の任意のレベル(ファイル、ムービーまたはトラック)でサポートするためには、ISOベース・メディア・ファイル・フォーマットとして、メタ・ボックス・コンテナ・ボックス(「meco」)を使用することができる。メタ・ボックス・コンテナ・ボックスは、階層の任意のレベル(ファイル、ムービーまたはトラック)に任意の数の追加のメタ・ボックスを持つことができる。これにより、例えば同じメタデータが2つの異なる代替的なメタ・データ・システム内で提示されていることが許容されることになる。メタ・ボックス・リレーション・ボックス(「mere」)は、異なるメタ・ボックスが互いにどのように関連し合っているか、例えばそれらが正に同じメタデータ(ただし異なるスキームで記述されている)を格納しているか否か、または一方がもう一方のスーパーセットを代表しているか否かなどを記述することを可能にすることができる。
ISOベース・メディア・ファイル・フォーマットは、1つのファイル内に格納されるべきプレゼンテーションを制限しない。こうして、1つのプレゼンテーションが複数のファイル内に含まれることができる。一例として、1つのファイルは、全プレゼンテーションのためのメタデータを含むことができ、こうして、プレゼンテーションを自己格納させるために、全てのメディア・データを含むことができる。他のファイルが使用される場合、これらのファイルはISOベース・メディア・ファイル・フォーマットにしたがってフォーマティングされるよう求められない可能性があり、メディア・データを含めるために使用されることができ、同様に、未使用のメディア・データまたは他の情報も含むことができる。ISOベース・メディア・ファイル・フォーマットは、プレゼンテーション・ファイルのみの構造に関する。メディア・データ・ファイルのフォーマットは、メディア・ファイル内のメディア・データがISOベース・メディア・ファイル・フォーマットまたはその派生フォーマット内に規定されているようにフォーマティングされるという点においてのみ、ISOベース・メディア・ファイル・フォーマットまたはその派生フォーマットによって抑制され得る。
外部ファイルを参照できる能力は、データ参照を通して実現することができる。いくつかの実施例において、各トラック内に含まれたサンプル記述「stsd」ボックスは、使用されたコーディング・タイプについての詳細な情報およびそのコーディングに必要な任意の初期化情報を各々提供するサンプル・エントリ・リストを提供することができる。チャンクの全てのサンプルおよびトラック・フラグメントの全てのサンプルは、同じサンプル・エントリを使用することができる。チャンクは、1トラックのための隣接するサンプル・セットとして定義することができる。同様に各トラック内に含められたData Reference「dref」ボックスは、統一リソース・ロケータ(URL)、統一リソース名(URN)および/またはメタデータを格納するファイルに対する自己参照の指標付きリストを定義することができる。サンプル・エントリが、Data Referenceボックスの1つの指標をポイントして、それぞれのチャンクまたはトラック・フラグメントのサンプルを格納するファイルを標示することができる。
記録アプリケーションがクラッシュする、メモリ空間が無くなるまたは他の何らかの出来事が発生した場合にデータを失うことを回避するために、コンテンツをISOファイルに記録するときに、ムービー・フラグメントを使用することができる。ムービー・フラグメントがなければ、ファイル・フォーマットは、ムービー・ボックスなどの全てのメタデータがファイルの1つの隣接エリア内に書き込まれることを典型的に求める可能性があるため、データ損失が発生し得る。さらに、ファイルを記録する場合、利用可能な記憶のサイズに対しムービー・ボックスをバッファリングするための充分な量のメモリ空間(例えばRAM)が存在しない場合があり、ムービーが閉じられた場合のムービー・ボックスのコンテンツの再計算は、過度に低速である可能性がある。その上、ムービー・フラグメントは、正規のISOファイル・パーサーを用いたファイルの記録および再生を可能にすることができる。最終的に、ムービー・フラグメントが使用され、同じメディア・コンテンツを伴うもののムービー・フラグメント無しで組織されたファイルに比べて初期ムービー・ボックスが小さい場合、例えばファイルの同時受信再生などの漸進的ダウンローディングに求められる初期バッファリング持続時間は、より短いものであることができる。
ムービー・フラグメント・フィーチャは、従来ムービー・ボックス内に存在すると考えられるメタデータを多数のピースにスプリットすることを可能にすることができる。各ピースは、1トラックのための一定の時間に対応することができる。換言すると、ムービー・フラグメント・フィーチャは、ファイル・メタデータおよびメディア・データのインターリービングを可能にすることができる。その結果、ムービー・ボックスのサイズを制限し、上述の使用事例を実現することができる。
いくつかの実施例において、ムービー・フラグメントのためのメディア・サンプルは、それらがmoovボックスと同じファイル内にある場合、通常通り、mdatボックス内に存在することができる。しかしながら、ムービー・フラグメントのメタデータについては、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ボックスおよびSampleToGroupボックス)は、ムービー(moov)ボックス内でメディア情報(minf)、メディア(mdia)およびトラック(trak)ボックス(この順序)の中に包み込まれているサンプル・テーブル(stbl)ボックスの内部に存在する。SampleToGroupボックスは、ムービー・フラグメント内に存在することが許されている。したがって、サンプルのグループ化は、フラグメント毎に行われることができる。
(URL形態としても言及され得る)URLフラグメント識別子は、(フラグメント識別子無しで)URLのベース部分により標示されるファイルなどのリソースの一部分をアクセスするため、特定のコンテンツ・タイプについて規定されることができる。URLフラグメント識別子は、URL内で例えばハッシュ(「#」)文字により識別されることができる。ISOBMFFについては、URLフラグメント「#X」は、Xに等しいtrack_IDを伴うトラックを意味し、「#item_ID=」および「#item_name=」はファイル・レベル・メタ・ボックスを意味し、「#/item_ID=」および「#/item_name=」は、ムービー・ボックス内のメタ・ボックスを意味し、「#track_ID=X/item_ID=」および「#トラック_ID=X/item_name=」は、ムービー・フラグメント内に潜在的に見出されるメタ・ボックスを含む、Xに等しいtrack_IDを伴うトラック内のメタ・ボックスを意味する。
マトロスカ・ファイル・フォーマットは、1つのファイル内に映像、音響、ピクチャまたはサブタイトル・トラックのいずれかを記憶する(ただしこれに限定されない)能力を有する。マトロスカは、WebMなどの派生ファイル・フォーマット用の基本フォーマットとして使用されることができる。マトロスカは、基礎として拡張可能なバイナリ・メタ言語(EBML)を使用する。EBMLは、XMLの原理からヒントを得たバイナリおよびオクテット(バイト)整列フォーマットを規定する。EBML自体は、バイナリ・マークアップ技術の一般化された記述である。マトロスカ・ファイルは、EBML「ドキュメント」を作り上げるエレメントからなる。エレメントは、エレメントID、エレメントのサイズについての記述子、およびバイナリ・データ自体を包含する。エレメントは、ネスティングされ得る。マトロスカのセグメント・エレメントは、他のトップレベル(レベル1)のエレメントである。マトロスカ・ファイルは、1つのセグメントを含む(ただし1つのセグメントで構成されることに限定されない)。マトロスカ・ファイル内のマルチメディア・データは、各々数秒のマルチメディア・データを典型的に格納するクラスタ(またはクラスタ・エレメント)の形で組織されている。クラスタは、BlockGroupエレメントを含み、このエレメントはそれ自体ブロック・エレメントを含む。キュー・エレメントは、ランダム・アクセスまたはシーキングを補助できシーク・ポイントのためのファイル・ポインタまたはそれぞれのタイムスタンプを含むことのできるメタデータを含む。
画像バーストとも呼ぶことのできる画像シーケンスは、さまざまな手段を用いて取得でき、あるいは、以下のものの1つ以上を非限定的に含むさまざまな目的で使用することができる。
− 画像シーケンスは、例えばバースト写真などを使用して、逐次的に捕捉されたピクチャを表現できる。
− 画像シーケンスは、カメラをほぼ静止状態に保たれるものとみなすことができ捕捉パラメータが画像シーケンスのピクチャ間で異なっていた場合、焦点スタック、露光スタックなどを表現できる。
− 画像シーケンスは、カメラがパン(など)され時間的および/または並進運動的にほぼ等しい距離のピクチャがカメラの運動中に撮影されているパノラマを表現することができる。
− 画像シーケンスは、アニメーションまたはシネマグラフを表現できる。シネマグラフは、小さい反復的運動が起こるスチール・ピクチャとして定義することができる。
画像シーケンスは、空間的予測手段でコード化されたスチール・ピクチャまたは空間および時間的予測手段でピクチャされたインター・ピクチャのいずれかのシーケンスとして圧縮され得る。個別のピクチャを編集するためのサポートおよびランダム・アクセスを伴う画像シーケンスは、従来、独立してコード化された一連のイントラ・ピクチャとしてシーケンスを表現することによって有効化されてきた。このようなフォーマットには例えば、モーションJPEG、アニメ−テッドGIF、およびH.264のイントラ・プロファイルが含まれる。
画像シーケンスが一連のスチール・ピクチャとして表現される場合、コーディング効率は典型的に低く、高解像度シーケンスのためのファイル・サイズ要件は圧倒的なものとなり得る。シーケンスが時間的予測を伴う映像としてコーディングされる場合、シーケンスがいかにデコーディングされる必要があるか、シーケンスをいかに再生できるか、そしてシーケンス内の画像のいくつかの編集をユーザーが望む場合の問題に関する厳しい制限が存在する。
MPEG−H画像ファイル・フォーマット(ISO/IEC23008−12)は、ISOベース・メディア・ファイル・フォーマット(ISOBMFF)の派生仕様である。本特許出願を作成している時点で、ISO/IEC23008−12は、草案規格であり、したがって、規格の名称および/または通称は規格の最終版において変わる可能性がある、ということを理解する必要がある。ISO画像ファイル・フォーマット(ISOIFF)およびMPEG画像ファイル・フォーマットなどの名称が、考慮されてきた。標準仕様自体の中では(またそうでなければコンテキストが明確である場合)、「画像ファイル・フォーマット」という名前を用いて、ISO/IEC23008−12に言及することができる。
以下では、実施形態を実装する基となるコンテナ・ファイル・フォーマットの一例として、MPEG−H画像ファイル・フォーマットのいくつかの概念、構造および仕様が説明される。本発明の態様は、MPEG−H画像ファイル・フォーマットに限定されず、むしろ、本発明を部分的または全体的に実現できる1つの考えられる基礎についての説明が提供されている。
ISO/IEC23008−12に定義されているフォーマットは、高効率映像コーディング(HEVC)または任意の他の画像または映像コーデックを用いてコード化された画像の交換、編集および表示、およびこれらの画像と結び付けられたメタデータの伝達を可能にする。画像ファイル・フォーマットは、単一の画像、画像コレクションおよび画像シーケンスのための相互運用可能な記憶フォーマットを定義するために、ISOベース・メディア・ファイル・フォーマット内で定義されたツールを足場としている。画像ファイル・フォーマットは、ファイル内に記憶された画像をコーディングするために使用されるコーデックを抑制しない構造的ブランドおよびコード化された画像のためのHEVCの使用を必要とするHEVCベースのブランドを含む。
スチール画像をエンコードするためのHEVCの使用は、単一の画像および独立してコード化された画像の記憶、ならびにプレーヤおよび/またはデコーダにおいて任意に使用されるタイミングを伴い画像が他の画像に依存したものであり得る画像シーケンスの記憶をカバーするため、画像ファイル・フォーマットによってサポートされる。
画像ファイル・フォーマットに適合するファイルは、さまざまなニーズ(例えば印刷用の単一画像およびこの画像を合成するのに使用された画像バーストの記録など)を満たすように単一のファイルを構築できるようにする、スチール画像および画像シーケンスの両方を含むことができる。一般に、タイミングまたはインター・ピクチャ・コーディング依存性のいずれも求められない場合などの事例については、スチール画像サポートが使用される。トラックのために利用可能なISOベース・メディア・ファイル・フォーマットからのタイミングまたは他のツールが必要とされる場合(例えば単純な動画)、またはピクチャがインター・ピクチャ・コーディング依存性を伴ってコード化された場合には、トラックとして記憶された画像シーケンスを使用することができる。
ISOBMFFに類似する画像ファイル・フォーマットは、オブジェクト指向のメカニズムを使用し、ここで各オブジェクトはボックスと呼ばれる。全てのメディア・データおよびその関係するメタデータは、ボックス内にカプセル化される。各ボックスは、4文字コード(4CC)によって識別され、ボックスのタイプおよびサイズについて知らせるヘッダーで始まる。
MPEG−H画像ファイル・フォーマットによると、スチール画像がアイテムとして記憶される。コード化された画像を格納する画像アイテムが独立してコーディングされ、それらのデコーディングにおいて他のいずれのアイテムにも依存しないことが求められる可能性がある。
MPEG−H画像ファイル・フォーマットのコンテキストにおいては、後続するボックスは、ルート・レベルの「メタ」ボックス内に格納されることができ、以下で説明するように使用されることができる。MPEG−H画像ファイル・フォーマットにおいては、「メタ」ボックスのハンドラ・ボックスのハンドラ値は、「pict」である。コーデッド・メディア・データを格納するリソース(同じファイル内にあるか、統一リソース識別子により識別された外部ファイル内にあるかに関わらず)は、データ情報(「dinf」)ボックスを通して分解され、一方アイテム・ロケーション(「iloc」)ボックスは、参照されたファイル内の全てのアイテムの位置およびサイズを記憶する。アイテム参照(「iref」)ボックスは、型付き参照を用いてアイテム間の関係を文書化する。他のものと比べて何らかの形で最重要とみなされるべき、アイテムコレクション中の1アイテムが存在する場合には、このアイテムは、一次アイテム(「pitm」)ボックスによってシグナリングされる。ここで記載されたボックスとは別に、「meta」ボックスは、同様に、アイテムを記述するのに必要であり得る他のボックスを含むように融通性も有する。
「メタ」ボックス・アプローチを用いることによってコレクション画像が記憶されたと仮定すると、時として、画像間の一定の関係を指定することが不可欠である。このような関係の例としては、コレクションのためのカバー画像を標示すること、コレクション内のいくつかまたは全ての画像のためのサムネイル画像を提供すること、およびアルファ・プレーンなどの補助画像とコレクション中のいくつかまたは全ての画像を結び付けること、が含まれる。画像コレクション中のカバー画像が、「pitm」ボックスを用いて標示される。サムネイル画像または補助画像が、それぞれ「thmb」または「auxl」タイプのアイテム・リファレンスを用いて、一次画像アイテムにリンクされる。
画像ファイル・フォーマットは、派生画像をサポートする。アイテムは、それが別のアイテムに対する「dimg」アイテム参照を含む場合、派生画像である。派生画像は、規定の入力画像に対して回転などの規定の動作(画像動作としても知られる)を行うことによって、取得される。派生画像を取得するために行われる動作は、アイテムのitem_typeによって識別される。派生画像に対する入力として使用される画像アイテムは、例えばアイテム・タイプ「hvc1」を伴うコード化された画像であることができ、または、他の派生画像アイテムであることもできる。
画像ファイル・フォーマット仕様には、クリーン・アパーチャ(すなわちクロッピング)動作(「clap」に等しいitem_type、90度の倍数回転のための回転動作(「irot」に等しいitem_type)および画像重複動作(「iovl」に等しいitem_type)の仕様が含まれる。画像重複「iovl」派生画像は、より大きいキャンバス内で所与のレイヤ化の順序で1つ以上の入力画像を位置設定する。
画像ファイル・フォーマットの派生画像フィーチャは、画像ファイル・フォーマット自体の外部仕様ならびに後のバージョンが新しい動作を規定できるように、拡張可能である。
例えばMPEG−H画像ファイル・フォーマットまたは類似のファイル・フォーマットのコンテキスト内で、以下の定義を使用することができる。コード化された画像は、1つの画像のコード化された表現として定義することができる。派生画像は、示された画像に対する示された動作によりファイル内に表現され、示された画像に対して示された動作を行うことによって取得可能な画像として定義することができる。画像は、画像なる用語が使用されるコンテキストに応じて、コード化された画像、派生画像または異なる色構成要素の画素の1つ以上のアレイとして定義できる。画像コレクションは、MPEG−H画像ファイル・フォーマット(またはそれに類するもの)にしたがって単一のファイルのアイテムとして記憶された1組の画像として定義できる。補助画像は、表示される意図のないものであり得るもののそれぞれの一次画像を補完する透明性データなどの補足的情報を提供する画像として定義することができる。カバー画像は、画像コレクションまたは画像シーケンスを代表する画像として定義することができ、画像コレクションまたは画像シーケンスの好ましい表示方法についての他の情報が利用可能でない場合に表示されなければならない。予め計算された派生画像は、1つ以上の他の画像から導出されたコード化された画像として定義することができる。一次画像は、アイテムとして記憶され、補助画像またはサムネイル画像ではない画像として定義することができる。サムネイル画像は、一次画像のより解像度の低い表現として定義することができる。
画像シーケンスは、アドバイザリ・タイミングと結び付けることができ、その中で画像をインター予測することのできる画像シーケンスとして定義することができる。MPEG−H画像ファイル・フォーマットでは、画像シーケンスは、ISOBMFFのトラック・メカニズムにしたがって記憶される。画像間にコーディング依存性が存在する場合、または画像の再生がタイミングされる場合に、画像シーケンス・トラックが使用される。画像シーケンス・トラック内のタイミングは、プレーヤのためのアドバイザリであるとして定義することができる。画像シーケンスとモーション・ビデオを区別するために、MPEG−H画像ファイル・フォーマット内には新しいハンドラ―・タイプ「pict」が導入された。
MPEG−H画像ファイル・フォーマットは、(包含および/または参照により)HEVCコーデッド・スチール画像および画像シーケンスを、MPEG−H画像ファイル・フォーマットに適合するファイルへとカプセル化するための仕様を含む。他のコーディング・フォーマットでコード化された画像および画像シーケンスの、MPEG−H画像ファイル・フォーマットに適合するファイルへのカプセル化を規定することが可能である。
多目的インターネット・メール拡張(MIME)は、例えば映像および音響、画像、ソフトウェアなどのインターネット上の異なる種類のデータ・ファイルを伝送し受信することを可能にするEメール・プロトコルに対する拡張である。インターネット・メディア・タイプは、ファイルが格納するデータのタイプを標示するためにインターネット上で使用される識別子である。このようなインターネット・メディア・タイプは、同様に、コンテンツ・タイプと呼ぶこともできる。異なるメディア・フォーマットを格納できる複数のMIMEタイプ/サブタイプの組合せが存在する。コンテンツ・タイプ情報は、メディア伝送の始めにあるMIMEヘッダー内に、伝送エンティティによって包含されることができる。こうして受信エンティティは、利用可能なコーデック・セットを考慮して、特定のエレメントをレンダリングできるか否かを決定するために、このようなメディア・コンテンツの詳細を検査する必要がある場合がある。特に、エンド・システムのリソースが制限されている場合、またはエンド・システムに対する接続の帯域幅が制限されている場合、コンテンツ・タイプだけから、そのコンテンツをレンダリングできるか否かを知ることが有用である可能性がある。
RFC6381は、内部に格納されたメディア・フォーマットによって利用されるコーデックまたは全体的コンテナ・フォーマットのプロファイルの一義的な仕様を可能にするため、さまざまなMIMEタイプまたはサブタイプの組合せと共に使用される2つのパラメータ「codecs」と「profiles」を規定している。
格納されたメディアをレンダリングするように標示された特定のコーデックをコンテンツにラベリングすることによって、受信システムは、コーデックがエンド・システムによってサポートされているか否かを決定し、されていない場合は、適切なアクション(例えばコンテンツを拒絶する、状況の通知を送る、サポートされたタイプへとコンテンツをトランスコーディングする、求められたコーデックをフェッチしインストールする、標示されたコーデックのサブセットをサポートするのに充分であるか否かを決定するためのさらなるインスペクションなど)をとることができる。
ISOBMFFから導出されたファイル・フォーマットについては、RFC6381の中で規定されたコーデック・パラメータは、以下で説明する正規の表現シンタックスにしたがって以下の構造を有するものとみなされることができる。ListItem1(,ListItemN)*。
同様にして、RFC6381に規定されたプロファイル・パラメータは、受信機に対して、コンテンツが適合している仕様の全体的標示を提供することができる。これは、いくつかの仕様に対するコンテナ・フォーマットおよびそのコンテンツの整合性の標示である。受信機は、それが宣言されたプロファイルのうちのどれをサポートしそれらのプロファイルが何を意味しているかを知るために検査することによって、コンテンツをどの程度までハンドリングしレンダリングできるかを解明できる可能性がある。
MIMEに対する原初の動機づけの1つは、メッセージ部分の特定のメディア・タイプを識別する能力にある。しかしながら、さまざまな要因に起因して、MIMEタイプおよびサブタイプを調べることから、ボディ部分内にどの特定的メディア・フォーマットが格納されるかまたはコンテンツをレンダリングするためにどのコーデックが標示されるか、を知ることは、必ずしも可能ではない。
1セットから選択されたコーデックを格納する複数のメディア・タイプ/サブタイプ(現在登録されているかまたは登録ペンディングを伴って展開されている)が存在する。ここで説明されるパラメータが存在しない場合には、コンテンツをレンダリングするために必要とされるコーデックまたは他のフィーチャを決定する目的で、各メディア・エレメントを検査することが必要である。
画像ファイル・フォーマットは、2つのMIMEタイプを規定し、一方は画像および画像コレクション用、他方は画像シーケンス用である。コーデック・パラメータのフォーマットは、これらのMIMEタイプのために規定される。例えば、RFC6381にしたがったコーデック・パラメータの包括的シンタックス内の各ListItemは、画像ファイル・フォーマットで以下のようにフォーマティングされるものとみなすことができる。(trak.HandlerType|item).SampleEntryType.ProfileTierLevel(ここで|は、二者択一関係を表わす)。コーデック文字列は、ファイル内に含まれたトラックおよびアイテムを区別するために識別子「trak」または「item」を含む。画像シーケンス・トラックおよび映像トラックの間の区別をサポートするため、コーデック文字列内には、ハンドラ・タイプHandlerTypeが含まれている。AVCおよびHEVCベースのコーデックについては、サンプル・エントリ・タイプSampleEntryType(または、等価としてアイテム・タイプ)およびプロファイル・ティア・レベル情報ProfileTierLevelを含む文字列は、ISO/IEC14496−15内で規定されているものと同一である。
例えば、ProfileTierLevelは、HEVCについては、以下のように規定される。すなわちProfileTierLevelのエレメントは、例えばピリオド文字(「.」)で分離されたHEVCデコーダ構成記録からの一連の値である。全ての数値エンコーディングにおいて、先行ゼロは省略することができる。ProfileTierLevelは、以下のエレメントを含む。
− 10進数としてエンコードされるgeneral_profile_idcが続く、文字無し(general_profile_space==0)としてエンコードされるgeneral_profile_spaceまたはgeneral_profile_space1、2、3としての「A」、「B」、「C」、
− 16進数としてエンコードされるgeneral_profile_compatibility_flags(先行ゼロは省かれる)、
− 10進数としてエンコードされるgeneral_level_idcが続く、「L」(general_tier_flag==0)または「H」(general_tier_flag==1)としてエンコードされるgeneral_tier_flag;
− 各々16進数としてエンコードされ、各バイトのエンコーディングは1ピリオドで分離されている、general_progressive_source_flagを格納するバイトから始まる抑制フラグの6バイトの各々、ゼロである末尾バイトは省略できる。
しかしながら、画像ファイル・フォーマットのためのコーデック・パラメータの仕様には、派生画像に関する考慮が欠如している。
これは、さまざまな問題に導く可能性があり、そのうちのいくつかは、HTML5.1コードの後続するピースの例と共に、本明細書中に例示されている。同じ画像の2つのコーデッド表現、すなわち第1のファイルpreferred_image.hevcおよび第2のファイルfallback_img.jpgが存在する。ファイルpreferred_image.hevcは、画像ファイル・フォーマットに適合し、その一次アイテムとして派生画像を有する。その結果、コーデックMIMEパラメータは、本草案ISO/IEC23008−12によっては充分に規定されていない。ファイルpreferred_image.hevcは、画像のデコーディングがサポートされていることを条件として、ウェブ・ブラウザがダウンロードする好ましい画像(例えば、それぞれのJPEG画像に比較してそのサイズがより小さいものであることに起因して)である。しかしながら、以上にリストアップした情報が欠如していることに起因して、ウェブ・ブラウザは、それがpreferred_image.hevcを処理できるか否かの決断を下すことができず、ファイルfallback_img.jpgをダウンロードすると考えられる。一切の画像またはいずれのフォーマットもサポートしないブラウザは、alt属性と共に標示されたフォールバック記述テキストをダウンロードする。
<picture>
<source type=’’image/mpeg−h; codecs=item.unspecified_at_the_moment’’src=’’preferred_img.hevc’’/>
<img src=’’fallback_img.jpg’’alt=’’Fallback descriptive text’’/>
</picture>
画像プレーヤー(例えばブラウザ内)が派生画像の表現を再生することを意図する場合、それは、派生画像の表現の中で文書化された動作を用いて、原画像から派生画像を編成する必要がある。プレーヤは、動作自体を行う前に派生画像を編成する能力を自らが有するか否かを評価する必要がある可能性があるが、これは、そうでなければ、プレーヤが派生画像の編成に失敗し、単に(ダウンロードおよびプロセッシングにおける)時間および計算リソースを浪費する可能性があるからである。プレーヤが、派生画像を編成するために必要とされる全てのリソースを有するか否かの評価には、以下の課題のうちの1つ以上が含まれる可能性がある。
− プレーヤは、それが、派生画像の表現において使用される全てのタイプの動作を行う能力があるか否かを評価する必要がある。
− プレーヤは、派生画像の構築のための入力画像として使用されるコード化された画像を自らがデコードできるか否かを評価する必要がある。これには、以下のことが関与する可能性がある。
○ コーデック(例えば、HEVC)およびコーディングプロファイル(例えば主要プロファイル)がサポートされているか否かを決定すること。同様に、任意には、入力画像のティアおよびレベルがサポートされているか否か。
○ 動作を行うために必要とされる利用可能なメモリ・リソースをプレーヤが有しているか否かを評価すること。
その結果として、プレーヤが派生画像を編成する能力を有するか否かを評価するための単純化された方法に対するニーズが存在する。
次に、上述の問題を少なくとも軽減するために、以下では、派生画像を編成する能力を評価するための方法が提示される。
図6に開示されている評価方法において、プレーヤは、第1のファイルの第1の記述を受信し(600)、この第1の記述は、第1のファイル内に含まれているかまたは第1のファイルが参照している少なくとも1つの派生画像の特性を含む。プレーヤは、派生画像の特性に基づいて、派生画像を取得すべきか否かを決定し(602)、派生画像を取得するとの決定に応えて、派生画像を含む第1のファイルを取得する(604)。
一実施形態によると、プレーヤは、派生画像により表現されたもののような対応する画像コンテンツの表現を含む第2のファイルの第2の記述をさらに受信し(606)、派生画像の特性および第2の記述に基づいて、第1のファイルまたは第2のファイルを取得すべきか否かを決定する(608)ことができる。次に、プレーヤは、第1のファイルまたは第2のファイルのいずれかを取得する(610)。
こうして、プレーヤは、派生画像の再構築が可能であるか否かを決定することができる。したがって、ファイル内の派生画像が受信機のプレーヤ、ウェブ・ブラウザなどにより再構築され得ない場合に、ファイルの不必要なダウンローディングを回避するために、標示された特性を使用することができる。一実施形態によると、利用可能な同じコンテンツを伴う複数の代替的画像ファイルが存在する可能性があり、プレーヤは、記述に基づいて前記代替案のどの画像ファイルがダウンロードされ再構築されるかを選択することができる。
一実施形態によると、第1の記述は、MIMEタイプを含む。
一実施形態によると、MIMEタイプなどの第1の記述は、少なくとも1つの派生画像について以下の情報のうちの1つ以上を含む。
− ファイルの派生画像の中で使用される命令セットを規定するURIのリストを含む第1の任意のMIMEパラメータなどの命令セットの識別リストと、命令の識別リストのリスト・エレメントをポイントする、少なくとも1つの派生画像に特定的な指標とを含むことのできる、少なくとも1つの派生画像のために使用される命令セットの第1の識別。
− 例えばコーデック・パラメータと名付けることのできる第2の任意のMIMEパラメータの中に格納されることのできる、少なくとも1つの派生画像のための、コーデッド入力画像のコーデッド・プロファイルおよびコーデックの第2の識別、
− 少なくとも1つの派生画像を構築するために使用される任意の単一画像動作の入力および出力画像のために求められる累積画素数などの、少なくとも1つの派生画像の構築のために必要とされるリソースを表わすリソース・カウント。
派生画像のための命令セットは、派生画像タイプ・セットまたは画像動作タイプ・セットとして定義することができる。特定の命令セットは、命令セットにより定義された動作を用いて派生画像を構築できる場合、派生画像のために使用されるものとみなすことができる。
第1の任意のMIMEパラメータは、例えばdimg−instr−setと呼ぶことができ、それは、特定の派生画像および、特定の派生画像のための入力として直接的または間接的に使用される任意の派生画像のために用いられる1つ以上の命令セットを定義することができる。例えば、ISO/IEC23008−12中に規定された画像動作(クリーン・アパーチャ、ローテーション、およびオーバーレイ)を、命令セットとみなすことができる。
コーデックMIMEパラメータは、特定の派生画像のための入力として直接的または間接的に使用されるコード化された画像のために用いられるコーデック(例えばHEVC)およびプロファイル(例えば主要プロファイル)を定義することができる。ティアおよびレベルも含むことができるが、概して個別の画像のデコーディングに関与する実時間処理要件は全く存在しないことから、絶対的に必要ではない。
(最大サンプル・アレイ内の)累積的画素数を用いて、画像に必要とされるメモリ・リソースを特徴づけすることができる(一方、深度およびクロマ・フォーマットなどの他の因子を、コーデック・プロファイルおよび派生画像命令セットから結論づけることができる)。特定の派生画像または直接的または間接的入力画像のいずれかのために、複数の入力画像が必要になり得ることから、画像の累積的画素カウントが提供される。このことは、特定の派生画像のための入力として直接的または間接的に使用される全ての中間画像をプレーヤのメモリ限界内で保つことができることを保証する上で、助けとなる。
次に、正規の表現シンタックスが使用される、MIMEタイプの実装に関するさまざまな実施形態が開示され、ここでイタリック体のキーワードは、キーワードをそれらの値で置換することによって分解される変数とみなされ、()は1つ以上の文字の文字列を表わし、*は、0以上の回数だけ先行するカッコ内に包み込まれている文字列の内含を表わし、?は、0または1回だけ先行するカッコ内に包み込まれた文字列の包含を表わし、英数字はそのまま内含される。少なくとも1つの派生画像のための第1の識別、第2の識別およびリソース・カウントのうちの1つ以上を標示するために正規の表現シンタックス以外のシンタックス規則および/またはシンタックスの他の変形形態を用いて、類似の実施形態を形成できるということを理解する必要がある。
画像ファイル・フォーマットに適合するファイルのためのコーデック・パラメータは、以下の構造を有する。
ListItem1(,ListItemN)*
ここで、各ListItemは、SampleEntryTypeがコーディング・フォーマットを標示する場合、以下の構造を有することが提案されている。
(trak.HandlerType|item).SampleEntryType.ProfileTierLevel
一実施形態によると、画像ファイル・フォーマットに適合するファイル/リソースのMIMEタイプについて、以下の追加の仕様が作成される:
dimg−instr−setの任意のMIMEパラメータは、以下のものを格納するように規定される。
<uri1>(<uriN>)*
ここで、各uriNはURIであり、各uriNは山カッコ内に包み込まれている。dimg−instr−setは不在であるものの、コーデック・パラメータによって参照されており、dimg−instr−setは、例えば画像ファイル・フォーマット内で規定された派生画像の命令セットまたはアイテム・タイプを意味することのできる値urn:mpeg:isoiff:2015などの既定のデフォルト値のみを伴うurilから成るものと推論される。
例えば、URIurn:mpeg:isoiff:2015は、クリーン・アパーチャ、ローテーションおよびオーバーレイ動作から成る派生画像命令セットを標示するために規定されることができる。別の実施例においては、URIurn:mpeg:isoiff:2015:baselineを、クリーン・アパーチャおよびローテンション派生画像から成る派生画像命令セットを標示するように規定することができ、クリーン・アパーチャ、ローテーションおよびオーバーレイ派生画像をから成る派生画像命令セットを標示するように、URIurn:mpeg:isoiff:2015:extendedを規定することができる。
一実施形態によると、画像ファイル・フォーマットのMIMEタイプのコーデック・パラメータ・シンタックス内のListItemについての以下の仕様が作成される。派生画像のためには、dimgに等しいSampleEntryTypeがListItemのシンタックス内で使用され、ListItemは、以下の構造を有する。
dimg(.InstrIdx(.PixelCount.CodecInfo)?)?
ここで、
InstrIdxは、派生画像のために使用された命令セットを識別するURIuriLの指標Lを表わす。InstrIdxが存在しない場合、InstrIdxは1に等しいものと推論される;
PixelCountは、派生画像を構築するために使用される任意の単一の画像動作の入力および出力画像に必要とされる最大画素数を標示する正の10進整数である;
CodecInfoは、以下の構造を有する:
NumCodedImg.(ItemType.ProfileTierLevel)*、ここでNumCodedImgは、ItemType.ProfileTierLevel対の異なる値を有することのできるコーデッド入力画像の正の整数であり、対ItemType.ProfileTierLevelの数はNumCodedImgに等しい。ItemTypeは、派生画像のために入力されたコーデッド画像の4文字アイテム・タイプであり、ProfileTierLevelは、RFC6381内のISOベース・メディア・ファイル・フォーマット名前空間のコーデック・パラメータのために規定されたプロファイル・レベル情報である。AVCおよびHEVCベースのコーデックについて、ProfileTierLevelのフォーマットは、ISO/IEC14496−15内に規定されている。
CodecInfoは、終りから切り取ることができるように、ListItemの最後の部分となるように選択される。例えば、ほとんどの場合、全HEVCProfileTierLevel文字列は、内含される必要のない末尾のゼロを格納する。
実施形態のシンタックスの例としては、以下のものが含まれる。
Content−Type:image/mpeg−h;codecs=item.dimg
ファイルの一次アイテムが画像ファイル・フォーマット内で規定された命令セットを用いた派生画像である画像ファイル。
Content−Type:image/mpeg−h;codecs=item.dimg.1.2995200.hvc1.A1.80.L93.B0
ファイルの一次アイテムが、画像ファイル・フォーマット内で規定され、一方が1920×1080のサイズで、他方が1280×720のサイズのものという最高2つの画像の記憶を必要とする命令セットを用いた派生画像であり、メイン・ティア、レベル3.1で1つの漸進的でフレーム・パッキングされていないHEVC主要プロファイル画像のデコーディングを必要とする画像ファイル。
一実施形態によると、画像ファイル・フォーマットのMIMEタイプのコーデック・パラメータ・シンタックス内のListItemについての以下の仕様が作成される。派生画像のためには、dimgに等しいSampleEntryTypeがListItemのシンタックス内で使用されるものとし、ListItemは、以下の構造を有する:
dimg(.InstrIdx(.WidthHeight(.CodecInfo)?)?)?
ここで、
InstrIdxは、派生画像のために使用された命令セットを識別するURIuriLの指標Lを表わす。InstrIdxが存在しない場合、InstrIdxは1に等しいものと推論される。
WidthHeightは以下の構造を有する。NumImg.(WidthImgN.HeightImgN)*、ここでNumImgは、最大メモリ量を必要とする単一画像動作のために求められる画像数を表わす正の10進整数であり、対WidthImgN.HeightImgNの数は、NumImgに等しい。WidthImgNおよびHeightImgNは、この特定の単一画像動作に必要とされるデコード化された画像または派生画像のそれぞれ幅および高さを表わす正の10進整数である。
CodecInfoは、以下の構造を有する。
NumCodedImg.(ItemType.ProfileTierLevel)*、ここでNumCodedImgは、ItemType.ProfileTierLevel対の異なる値を有することのできるコーデッド入力画像の正の整数であり、対ItemType.ProfileTierLevelの数はNumCodedImgに等しい。Item Typeは、派生画像のために入力されたコード化された画像の4文字アイテム・タイプであり、ProfileTierLevelは、RFC6381内のISOベース・メディア・ファイル・フォーマット名前空間のコーデック・パラメータのために規定されたプロファイル・レベル情報である。AVCおよびHEVCベースのコーデックについては、ProfileTierLevelのフォーマットは、ISO/IEC14496−15内に規定されている。
上述の実施形態のいくつかは、HTML5.1内の画像ファイル選択の一例によりさらに例示することができ、ここで以下のシンタックスが使用される。
<picture>
<source type=’’image/mpeg−h;codecs=item.dimg.1.1843200.hvc1.A1.80.L93.B0’’src=’’preferred_img.hevc’’/>
<img src=’’fallback_img.jpg’’alt=’’Fallback descriptive text’’/>
</picture>
この例においては、同じ画像の2つのコード化された表現、すなわち、第1のファイルpreferred_image.hevcおよび第2のファイルfallback_img.jpgが存在する。ファイルpreferred_image.hevcは、画像ファイル・フォーマットに適合し、その一次アイテムとして、派生画像を有する。この画像ファイル・フォーマット内で規定される命令セットは、派生画像を構築するために必要とされる。派生画像を構築するために必要とされる累積画素カウントは、2*1280*720であり、これは、例えば1280×720画素のデコード化された画像が回転させられて派生画像を形成することを標示し得ると考えられる。その上、派生画像は、メイン・ティア、レベル3.1において1つの漸進的なフレーム・パッキングされていないHEVC主要プロファイル画像のデコーディングを必要とする。ウェブ・ブラウザは、それが記述された派生画像を構築するための能力およびリソースを有することを条件として、preferred_image.hevcをダウンロードする。そうでなければ、ウェブ・ブラウザは、ファイルfallback_img.jpgまたは前述のようなfallback descritive textをダウンロードする。
メディア・コンテンツ記述は、(潜在的にMIMEタイプの任意のパラメータを含む)MIMEタイプ;上述のようなHTML5.1のピクチャ・エレメントなどの、埋込み型メディア・コンテンツを記述するエレメントを含むHTMLページまたはそれに類するもの;先に説明したような、MPEG−DASHのMPDまたはHLSの拡張型M3Uフォーマットなどの、ストリーミング・コンテンツのマニフェスト;および、例えばRTPセッションを確立するために使用できるセッション記述プロトコル(SDP)にしたがった記述を非限定的に含めた、メディア・コンテンツのあらゆる記述のための用語として定義することができる。
ファイル・クリエータの動作は、図7に例示されている。この中で、ファイル・クリエータは、1つ以上の入力画像を取得し(700)、派生画像を取得するために少なくとも1つの入力について行うべき少なくとも1つの動作を決定する(702)。ファイル・クリエータは、メディア・コンテンツ記述の中に第1のファイルの第1の記述を内含し(704)、ここでこの第1の記述は、少なくとも第1のファイル内に含まれるかまたは第1のファイルによって参照された派生画像の特性を含む。
同様にして、ファイル・クリエータは、派生画像により表現されたもののような対応する画像コンテンツの表現を含む第2のファイルの第2の記述も含むことができる。
上述の実施形態においては、派生画像の構築に必要とされるリソースを表わすリソース・カウントについての実施例が示されていた。しかしながら、一実施形態によると、いかなるリソース・カウント(例えば以上で規定されたPixelCountまたは以上で規定されたWidthHeight)も、他のタイプのリソース・カウントにより置換されるかまたは追加で補完されることができる。リソース・カウントについての例示的実施形態が、以下で、ファイル・クリエータおよびファイル内で標示されているリソース・カウントに関連して提供される。しかしながら、コンテンツ・プロバイダなどの他のエンティティおよび/またはファイル内でのリソース・カウントの標示ではなくまたはこの標示に加えてファイルの記述と共にリソース・カウントを標示することと関連しても同様に実施形態を記述することができるということを理解する必要がある。
一実施形態によると、画像ファイルの記述内に派生画像の特性を内含することに加えておよび/またはその代りに、画像ファイル・クリエータは、画像ファイル内に、派生画像を表現するデータ構造を内含し、画像ファイル内に派生画像を編成するために必要なリソースを標示する少なくとも1つの値を内含することができる。
一実施形態において、ファイル内で少なくとも1つの派生画像を編成するために必要なリソースを表わす任意のパラメータを伴うMIMEタイプが、タイプ内に内含される。必要なリソースを標示するための任意のMIMEパラメータの実施例は、他の実施形態で先に説明されている。例えば、MIMEタイプの文字列を伝達するためにファイル・レベル・ボックスを使用することができる。別の実施例においては、トラック(「trak」ボックス)および/またはアイテムメタデータには、MIMEタイプのそれらのそれぞれの部分を付加することができる。コーデック・パラメータのListItemを「trak」ボックス階層内でボックス内に内含させることができる。コーデック・パラメータのListItemを1つ以上のアイテムについて「メタ」ボックス内に、例えばアイテム情報の付加または新たなボックスの導入により内含させることができる。
必要なリソースを表わす値は、以下のもののうちの1つ以上を含むことができるが、これらに限定されるわけではない。
− 任意の派生画像編成段階において必要とされる最大画素、サンプルおよび/またはバイト・カウント以上の値。
− 派生画像を編成するのに必要とされる任意のピクチャのために必要な最大画素、サンプルおよび/またはバイト・カウント以上の値。ここで、派生画像を編成するのに必要とされるピクチャには派生画像を編成するための中間動作の出力ピクチャが含まれる。
− 派生画像を編成する上で使用することのできる動作タイプ・セットを識別するための識別子。一方、動作タイプ・セット内に含まれていない動作タイプは派生画像の編成において使用されない。
一実施形態によると、ファイル・クリエータは、以下の1つ以上のステップを用いて動作できる。
− ファイル・クリエータは、ファイル内に派生画像を編成するための画像動作の順序を標示する。
− (派生画像を編成するための)各画像動作について、ファイル・クリエータは、どの入力ピクチャおよび(先の画像動作の結果として得られた)どの中間ピクチャがこの画像動作または後続する任意の画像動作のために必要とされるかを決定する。ファイル・クリエータは、メモリ内にこれらの所要ピクチャを記憶または保持するのに必要な一定のリソース・タイプの累積的リソース・カウントを決定する。リソース・タイプは、例えば、画素数、サンプル数またはバイト数であることができる。
− ファイル・クリエータは、(派生画像を編成するための)全ての画像動作の累積的リソース・カウントの最大値を選択する。最大値以上の1つの値を、派生画像を編成するために必要なリソースの標示値として、ファイル内に内含させることができる。
一実施形態によると、ファイル・クリエータは、以下の1つ以上のステップを用いて動作することができる。
(0から画像動作のNumOperationsの数マイナス−1以下までの範囲内のiの各値について)画像動作Operation[i]は、公称処理順でファイル・クリエータにより、画像動作Operation[i]がiの昇順で処理されるように順序付けされ、動作[j]は、i>jとなるような何らかの動作Operation[i]に依存するものではない。ファイル・クリエータは、例えば派生画像のデータ構造内でiの昇順で画像動作Operation[i]を内含することによって、ファイル内に画像動作の順序を標示する。公称処理順序以外の順序で画像動作を処理することも可能である場合があるが、リソース・カウントは公称順序を用いて導出されるということが指摘される。
入力画像InputImage[j]を、0から入力画像数NumInputImagesマイナス1(これを含む)までの範囲内のjの全ての値について画像動作に「外部的に」提供される(すなわち画像動作により作成されたのでない)入力画像であるとする。
中間画像IntermediateImage[i][j]を、0から出力動作Operation[i]の出力画像数NumOperOutputImages[i]マイナス1(これを含む)までの範囲内のjの全ての値についての画像動作Operation[i]の出力であるとする。
リソース・カウントIntermediateImageResourceCount[i][j]は、0から出力画像数NumOperOutputImages[i]−1(これを含む)までの範囲内のjの全ての値について0からNumOperation−1(これを含む)までの範囲内のiの各値についての各インターメディア画像IntermediateImage[i][j]について、別個に導出することができる。
同様にして、リソース・カウントInputImageResourceCount[j]は、0からNumInputImages−1(これを含む)までの範囲内のjの各値について、導出することができる。
画像のアクティブ・ピクチャ・セットActiveSet[i]が以下の画像から成るものとする。
iからNumOperations−1(これを含む)までの範囲内のkの任意の値について任意の画像動作Operation[k]に対する入力としてInputImage[m]が使用されるような、0からNumInputImages−1(これを含む)までの範囲内のmの任意の値についての入力画像InputImage[m]。
iからNumOperations−1(これを含む)までの範囲内のkの任意の値についての任意の画像動作Operations[k]に対する入力としてIntermediateImage[m][n]が使用されるような、0からi−1(これを含む)までの範囲内のmの任意の値について、および0からNumOperOutputImages[m]−1(これを含む)までの範囲内のnの任意の値についての、中間画像IntermediateImage[m][n]。
0からNumOperOutputImages[i]−1(これを含む)までの範囲内のnの任意の値についての中間画像IntermediateImage[i][j]。
リソース・カウントActiveSetResourceCount[i]は、アクティブ・ビクチャ・セットActiveSet[i]内のピクチャのリソース・カウントの合計として、0からNumOperations−1(これを含む)までの範囲内のiについて各々のアクティブ・ビクチャ・セットActiveSet[i]のために導出することができる。
最大累積リソース・カウントMaxCumulativeResourceCountは、0からNumOperations−1(これを含む)までの範囲内のiについてのActiveSetResourceCount[i]の最大値に等しく設定することができる。
一実施形態によると、最大個別リソース・カウントMaxResourceCountは、0からNumInputImages−1(これを含む)までの範囲内のkの任意の値についてInputImageResourceCount[k]の最大値に等しく、または、0からNumOperations−1(これを含む)までの範囲内の任意の値および0から出力画像数NumOperOutputImages[i]−1(これを含む)までの範囲内のjの任意の値について、IntermediateImageResourceCount[i][j]の最大値に等しく設定することができる。代替的実施形態においては、最大個別リソース・カウントMaxResourceCountは、0からNumOperations−1(これを含む)までの範囲内のiの任意の値について、および0から出力画像数NumOperOutputImages[i]−1(これを含む)までの範囲内のjの任意の値について、IntermediateImageResourceCount[i][j]の最大値に等しく設定することができる。
一実施形態によると、ファイル・クリエータは、
− MaxCumulativeResourceCount以上となるべき、必要なリソースを標示する第1の値、
− MaxResourceCount以上となるべき、必要なリソースを標示する第2の値、
のうちの少なくとも1つを設定することができる。
必要なリソースを標示する値を提供することのできるリソース・タイプには1つ以上のタイプが存在する可能性がある。異なるリソース・タイプについてリソース・カウントResourceCountを導出するいくつかの非限定的な例が以下で提供されており、ここでResourceCountは、単一の画像から(したがって、実際にInputImageResourceCount[]またはIntermediateImageResourceCount[][]のうちの一方であり得ると考えられる)または画像セットから(したがって実際にActiveSetResourceCount[]であり得ると考えられる)導出することができる。
− 画素数、すなわち画像または画像セットの全てのサンプル・アレイのうちの最高のサンプル・カウントのサンプル・アレイ内のサンプルの数。
− サンプル数、すなわち画像または画像セットの全てのサンプル・アレイ内のサンプルの数。
− メモリ・ユニットの数、例えば画像または画像セットを記憶するために必要とされるバイト数。メモリ・ユニットの数は、ファイル内に必要とされるメモリ・ユニットの値に沿って標示されるか、または予め定義されることのできる、サンプル・アレイ配置との関係において標示することができる。サンプル・アレイ配置は、以下のもののうちの1つであることができるが、これに限定されない。
○ サンプルは別個のバイト中に記憶される。サンプルのビット深度が8の倍数でない場合、サンプルは、次に大きい整数のバイトを占めるものと仮定される。例えば、サンプルのビット深度が10である場合、サンプルは2バイトを占有するものと仮定される。異なる色構成要素のビット深度は異なる可能性があることが指摘される。例えば、ルマ構成要素は10ビットのビット深さを有することができ、一方クロマ構成要素は8ビットのビット深度を有することができる。
○ 異なる色構成要素のコロケートされたサンプルが、整数のバイトにパッキングされる。例えば、サンプルのビット深度が10であり、クロマ・フォーマットが4:4:4である場合、コロケートされたY、UおよびVサンプルの各セットは、4つのバイトにパッキングされた30ビットを割り振るものと仮定される。
一実施形態によると、ファイル・クリエータは、次のもののうちの少なくとも1つを設定することができる。
− MaxCumulativeResourceCount以上であるべき必要とされるリソースを標示する第1の値セット。ここでこのセット内の各エレメントは異なるリソース・タイプに対応する。エレメント・タイプは、例えばファイル・フォーマット規格内に予め定義されることができ、またはファイル内に標示されることができる。
− MaxResourceCount以上であるべき必要とされるリソースを標示する第2の値。ここで、このセット内の各エレメントは異なるリソース・タイプに対応する。エレメント・タイプは、例えばファイル・フォーマット規格内に予め定義されることができ、またはファイル内に標示されることができる。
リソース・カウントについての例示的実施形態が、以下に、ファイル・プレーヤーおよびファイルからパースされつつあるリソース・カウントとの関係において提供される。ただし、ウェブ・ブラウザなどの他のエンティティおよび/またはファイルの記述からのリソース・カウントのパースとの関係において同様に実施形態を記述することができるということを理解する必要がある。
一実施形態によると、画像ファイルの記述から派生画像の特性をパースすることに加えて、またはその代りに、画像ファイル・プレーヤーは、画像ファイルから、派生ピクチャを編成するための必要なリソースを標示する少なくとも1つの値をパースし、少なくとも1つの値に基づいて、派生ピクチャを編成できるか否かを決定する。
一実施形態によると、ファイル・プレーヤーは、以下のステップの1つ以上を行うことができる。
− ファイル・プレーヤーは、派生画像を編成するために、必要とされるリソースをパースする。
− ファイル・プレーヤーは、少なくとも1つの値に基づいて、自らが派生画像を編成する能力を有するか否かを決定する。
ファイル・プレーヤーは、派生画像を編成する能力を有することを決定した場合、派生画像を表現するデータ構造をパースし、このデータ構造は少なくとも1つの動作の有向非巡回グラフを定義し;ファイル・プレーヤーは少なくとも1つの動作の有向非巡回グラフを実行することによって派生画像を編成する。
さらに、ファイル・プレーヤーは以下のステップを行うことができる。
− ファイル・プレーヤーは、ファイルから、派生画像を編成するための画像動作の実行順序をパースする。
− 画像動作毎の実行順序で画像動作を実行する場合、各画像動作について、
○ ファイル・プレーヤーは、少なくとも1つの動作の入力および出力および実行順序に基づいて、この実行順序内の後続する動作のためにどのピクチャが必要とされるかを決定する。
○ ファイル・プレーヤーは、実行順序内の後続する動作内でもはや必要とされないピクチャを記憶するためにリソースを解放する(例えばピクチャを記憶するためにメモリを割振り解除する)。
以上の実施形態に加えて、イン・プレース画像動作に関する補完的実施形態を行うことができる。一実施形態によると、リソース・カウントにイン・プレース動作を考慮することができる。イン−プレース画像動作は、動作の入力画像および動作の出力画像のために、同じメモリを使用することのできるような画像動作として定義することができる。イン−プレース動作においては、1つ以上の入力画像の1つの画素または画素ブロックなどの非重複入力ウィンドウが、1つ以上の入力画像のそれぞれのウィンドウの出力を生成するために処理される、とみなすことができる。したがって、一定の出力ウィンドウの画素が(ワーキング・メモリ内で)生成されると直ちに、入力ウィンドウ内のそれぞれの画素は、出力ウィンドウのものによって置換され得る。出力ウィンドウの画素が書き重ねられた画素は、処理順序内で後続するウィンドウの処理に影響を及ぼさない。例えば、トーン・マッピング画像動作はイン・プレース画像動作であり得ると考えられる。
例えば既定のイン・プレース画像動作のセットを、ファイル・フォーマット規格の中で定義することができる。
代替的に、または付加的に、ファイル・クリエータは、1つの画像動作がイン・プレース画像動作であるとみなされるか否かを、ファイル内で標示することができる。
リソース・カウントを導出する場合には、ファイル・クリエータは、画像動作の入力画像およびそれぞれの出力画像を表現するために単一画像のみがリソース・カウントの導出において考慮されるように、イン−プレース画像動作を処理することができる。より一般的には、画像動作が多数の入力および出力を有する場合、ファイル・クリエータは、入力画像とそれぞれの出力画像の各対を表現するために1つの単一画像のみがリソース・カウントの導出において考慮されるように、イン・プレース画像動作を処理することができる。いくつかの実施形態において、ファイル・クリエータは、画像動作の入力画像が実行順序内で後続する任意の画像動作として使用されない場合にのみ、イン・プレース画像動作として1つの画像動作を処理する。
画像動作がイン・プレース画像動作であるものとして(ファイル内で)標示されるかまたは予め定義される場合、ファイル・プレーヤーは、相応して、画像動作をイン・プレース画像動作として実行することができる。いくつかの実施形態において、画像動作の入力画像が実行順序内の任意の後続する画像動作に対する入力画像として使用されない場合にのみ、イン・プレース画像動作として1つの画像動作を処理する。
図8は、本発明の実施形態を利用するために好適である映像デコーダのブロック図を示す。図8は、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。
本明細書において、デコーダは、プレーヤ、受信機、ゲートウェイ、デマルチプレクサおよび/またはデコーダなど、デコーディング動作を実施する能力を有するあらゆる動作可能的ユニットをカバーするように解釈されるべきである。
以上では、MIMEタイプおよび任意のMIMEパラメータに関連していくつかの実施形態が説明されてきた。任意のMIMEパラメータよりむしろ、または任意のMIMEパラメータに加えて、例えばMPEG−DASHのMPDなどのXML記述、または他のメディア・コンテンツ記述内の属性といった他のシグナリングを使用することもできる、ということを理解する必要がある。
以上では、ISOBMFFに関連していくつかの実施形態を説明してきた。マトロスカなどの他の任意のフォーマットを用いて、ISOBMFF中のものと類似の能力および/または構造を伴って同じ様に実施形態を実現できるということを理解する必要がある。
以上では、プレーヤに関連して、いくつかの実施形態を説明してきた。リーダー、パーサー、ユーザー・エージェント、またはクライアントなど、他の用語を互換的に使用することができるということを理解する必要がある。プレーヤが、独立型アプリケーションであり得るものの必ずそうである必要はない、ということを理解する必要がある。プレーヤを、例えば、ウェブ・ブラウザ内に埋め込むことが可能である。
以上では、プレーヤに関連していくつかの実施形態を説明してきた。画像ファイルが再生または表示されず他の目的で取出される場合に、実施形態を同じ様に実現できる、ということを理解する必要がある。一実施形態においては、プロキシ・キャッシュが第1のファイルの第1の記述を受信し、この第1の記述は、第1のファイル内に内含されるかまたはこの第1のファイルにより参照された少なくとも1つの派生画像の特性を含む。プロキシ・キャッシュは、派生画像の特性および1つ以上のクライアントの能力についての知識に基づいて、派生画像を取得すべきか否かを決定し、派生画像を取得するとの決定に応答して、派生画像を含む第1のファイルを取得する。一実施形態によると、プロキシ・キャッシュはさらに、派生画像により表現されているもののような対応する画像コンテンツの表現を含む第2のファイルの第2の記述をさらに受信することができ;派生画像および第2の記述の特性ならびに1つ以上のクライアントの能力についての知識に基づいて、第1のファイルまたは第2のファイルを取得すべきか否かを決定することができる。次に、プレーヤは、第1のファイルまたは第2のファイルのいずれかを取得する。
以上では、ファイル・クリエータに関連していくつかの実施形態を説明してきた。ライター、ファイル・ジェネレーターまたはコンテンツ・プロバイダなど、他の用語を互換的に使用することができるということを理解する必要がある。クリエーターが、独立型アプリケーションであり得るものの必ずしもそうである必要はないということを理解する必要がある。クリエーターは、例えばスクリプトを用いて、ウェブ・サーバー内に埋込むことができる。
以上では、例示的実施形態がエンコーダに関連して説明されている場合、結果として得られるビットストリームおよびデコーダがその内部に対応するエレメントを有することができるということを理解する必要がある。同様に、例示的実施形態がデコーダに関連して説明されている場合、エンコーダは、デコーダによってデコーディングされるべきビットストリームを生成するための構造および/またはコンピュータ・プログラムを有することができるということを理解する必要がある。
以上で説明した本発明の実施形態は、関与するプロセスの理解を助ける目的で別個のエンコーダとデコーダ装置の観点からコーデックを説明している。しかしながら、装置、構造および動作を単一のエンコーダ・デコーダ装置/構造/動作として実装することもできるということが認識されると考えられる。さらに、コーダーおよびデコーダがいくつかのまたは全ての共通エレメントを共有できることも可能である。
上述の実施例は、電子デバイス内部のコーデック内で動作する本発明の実施形態を説明しているものの、クレーム中に定義された本発明を任意の映像コーデックの一部として実装することができる。したがって、例えば、本発明の実施形態を、固定のまたは有線の通信経路上で映像コーディングを実施できる映像コーデックの形で実装することができる。
こうして、ユーザー機器は、上述の発明の実施形態内に説明されたものなどの映像コーデックを備えることができる。ユーザー機器なる用語は、携帯電話、ポータブル・データ処理デバイスまたはポータブル・ウェブ・ブラウザなどの任意の好適なタイプの無線ユーザー機器をカバーするよう意図されているということが認識されるものである。
さらに、地上波公共移動通信ネットワーク(PLMN)のエレメントも同様に、上述のような映像コーデックを備えることができる。
一般に、本発明のさまざまな実施形態は、ハードウェアまたは専用回路、ソフトウェア、論理またはそれらの任意の組合せの形で実装することができる。例えば、いくつかの態様をハードウェアで実装し、一方他の態様を、コントローラ、マイクロプロセッサまたは他の計算用デバイスによって実行できるファームウェアまたはソフトウェアの形で実装することができるが、本発明はそれらに限定されない。本発明のさまざまな態様をブロック図、流れ図として、またはいくつかの他の絵画的表現を用いて例示および説明することができるものの、本明細書中に記載のこれらのブロック、装置、システム、技術または方法は、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、専用回路または論理、汎用ハードウェアまたはコントローラまたは他の計算用デバイスまたはそれらの組合せの形で実装できるものである、ということは充分理解されている。
本発明の実施形態は、プロセッサ・エンティティ内などの移動体デバイスのデータ・プロセッサによって実行可能なコンピュータ・ソフトウェアによって、またはハードウェアによって、あるいはソフトウェアとハードウェアの組合せによって実装可能である。さらに、この点に関して、図中にあるような倫理の流れのブロックはいずれも、プログラム・ステップ、または相互接続された論理回路、ブロックおよび機能、またはプログラム・ステップおよび論理回路、ブロックおよび機能の組合せを表わすことができるということを指摘しておかなければならない。ソフトウェアは、メモリ・チップまたはプロセッサ内に実装されたメモリ・ブロックなどの物理的媒体、ハード・ディスクまたはフロッピー・ディスクなどの磁気媒体、および例えばDVDおよびそのデータ改良型であるCDなどの光学媒体上に記憶することができる。
メモリは、現地の技術的環境に好適な任意のタイプのものであることができ、半導体ベースのメモリ・デバイス、磁気メモリ・デバイスおよびシステム、光学メモリ・デバイスおよびシステム、固定メモリおよび着脱式メモリなどの、任意の好適な記憶技術を用いて実装可能である。データ・プロセッサは、現地の技術的環境に好適な任意のタイプのものであることができ、非限定的な例として汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)およびマルチコア・プロセッサ・アーキテクチャに基づくプロセッサなどの1つ以上を含むことができる。
本発明の実施形態は、集積回路モジュールなどのさまざまな構成要素の形で実施することができる。集積回路の設計は、概して高度に自動化されたプロセスである。論理レベルの設計を、半導体基板上に直ちにエッチングし形成できる状態の半導体回路設計へと変換するために複雑かつ強力なソフトウェア・ツールが利用可能である。
カリフォルニア州マウンテン・ヴューのSynopsys,Inc.およびカリフォルニア州サン・ホセのCadence Design社により提供されているソフトウェア・ツールなどのプログラムが、確立した設計ルールならびに予め記憶された設計モジュールのライブラリを用いて、導体を配線し半導体チップ上に構成要素を配置する。半導体回路用の設計がひとたび完了した時点で、半導体製造施設つまり「Fabrication(製造)」を略して「fab」に対して、規格化された電子フォーマット(例えばOpus、GDSII、など)の形で、結果として得られた設計を伝送することができる。
上の記載は、例示的な非限定的例によって、本発明の例示的実施形態の完全かつ有益な記述を提供している。しかしながら、当業者には、添付図面および添付のクレームと併せて以上の説明を読んで考慮すると、種々の修正および適応が明らかとなる可能性がある。しかしながら、本発明の教示についてのこのようなおよび類似の修正は、依然として本発明の範囲内に入るものである。