特許第6956781号(P6956781)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップの特許一覧

特許6956781部分的ビデオ・デコード方法、デバイス、およびシステム
<>
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000002
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000003
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000004
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000005
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000006
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000007
  • 特許6956781-部分的ビデオ・デコード方法、デバイス、およびシステム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6956781
(24)【登録日】2021年10月7日
(45)【発行日】2021年11月2日
(54)【発明の名称】部分的ビデオ・デコード方法、デバイス、およびシステム
(51)【国際特許分類】
   H04N 19/70 20140101AFI20211021BHJP
【FI】
   H04N19/70
【請求項の数】21
【全頁数】26
(21)【出願番号】特願2019-513401(P2019-513401)
(86)(22)【出願日】2017年9月8日
(65)【公表番号】特表2019-526996(P2019-526996A)
(43)【公表日】2019年9月19日
(86)【国際出願番号】EP2017072665
(87)【国際公開番号】WO2018046705
(87)【国際公開日】20180315
【審査請求日】2019年5月14日
(31)【優先権主張番号】16187861.6
(32)【優先日】2016年9月8日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】512287702
【氏名又は名称】コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】バングマ,メンノ
(72)【発明者】
【氏名】ヴァン・ブランデンブルク,レイ
(72)【発明者】
【氏名】フェーンハウゼン,アリエン
【審査官】 富樫 明
(56)【参考文献】
【文献】 国際公開第2016/002496(WO,A1)
【文献】 国際公開第2015/011108(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
第1ビデオ・ストリームからエンコード・ビデオ・データをデコードする方法であって、前記第1ビデオ・ストリームがビデオ・コーデックに基づいてエンコードされたビデオ・イメージを含み、前記ビデオ・イメージがイメージ領域を有すると共に、独立してデコード可能なスライスの空間アレイに分割されており、前記空間アレイが第1ピクチャ・サイズに関連付けられており、前記第1ビデオ・ストリームが、ヘッダによって先行される前記スライスのそれぞれ1つについてのビデオ・コンテンツ・データを各々収容するネットワーク抽象化レイヤ・ユニットを含み、前記ヘッダが前記第1ビデオ・ストリームに対する前記スライスのそれぞれ1つに関連するパラメータを含み、
当該方法が、
スライスのサブ・アレイのために、ネットワーク抽象化レイヤ・ユニットを、書き換えネットワーク抽象化レイヤ・ユニットに部分的に書き換えるステップであって、
前記ネットワーク抽象化レイヤ・ユニットが、各前記ネットワーク抽象化レイヤ・ユニットのそれぞれにおける1つ以上の位置で書き換えられ、前記位置が前記ヘッダ内にあり、
前記位置がメタ・データに基づいて選択され、前記位置が1つ以上のスライスの空間位置の指示を含み、前記書き換えネットワーク抽象化レイヤ・ユニットが、前記スライスのサブ・アレイ専用のエンコード・ビデオ・データを含む第2ビデオ・ストリームを形成し、前記エンコード・ビデオ・データが前記イメージ領域のサブ領域を含む部分的ビデオ・イメージを表し、
前記書き換えネットワーク抽象化レイヤ・ユニットが、前記ビデオ・コーデックに基づいて前記部分的ビデオ・イメージにデコード可能である、
ステップと、
前記書き換えネットワーク抽象化レイヤ・ユニットをデコードするステップであって、前記サブ・アレイに関連付けられる第2ピクチャ・サイズに基づいて実行され、前記第2
ピクチャ・サイズが前記第1ピクチャ・サイズよりも小さい、ステップと、
を含む、方法。
【請求項2】
請求項1記載の方法において、前記部分的に書き換えるステップが、
前記スライスのサブ・アレイにおける各スライスについてのネットワーク抽象化レイヤ・ユニットに位置するヘッダのパラメータを、変更されたビット長で書き換えるステップと、
前記ネットワーク抽象化レイヤ・ユニットの先頭ポイントに対する前記パラメータに後続する前記ヘッダのビット部分の位置を変更するステップと、
前記ネットワーク抽象化レイヤ・ユニットの前記ヘッダの後のデータの先頭がマルチ・ビット・ワード境界でアライメントされるように、前記ネットワーク抽象化レイヤ・ユニットのパディング・ビットを追加または除去するステップであって、前記ヘッダの部分の長さ、および追加または除去されるパディング・ビットの数が、メタ・データに基づいて決定される、ステップと、
を含む、方法。
【請求項3】
請求項1または2に記載の方法において、前記部分的に書き換えるステップが、
前記スライスの空間位置について変更された指示の所定のセットを用いて、前記スライスのサブ・アレイのために、前記ネットワーク抽象化レイヤにおける前記スライスの前記空間位置の指示を書き換えるステップを含み、これにより、前記変更された指示が前記サブ・アレイ内の前記スライスの空間位置を区別する、方法。
【請求項4】
請求項3記載の方法であって、
前記スライスのサブ・アレイにおいて前記スライスの空間位置を示すターゲット値に対する、前記空間アレイにおける前記スライスの空間位置を示す値のマップを規定するステップと、
前記サブ・アレイを新規のサブ・アレイに変更するステップであって、前記新規のサブ・アレイが、前記サブ・アレイのスライスとは異なる少なくとも1つのスライスを含む、ステップと、
前記新規のサブ・アレイおよび前記サブ・アレイの間の重複部に所属するスライスのために、前記マップにおける前記スライスの空間位置を示す前記ターゲット値を維持するステップと、
前記重複部には所属しない前記少なくとも1つのスライスの空間位置を示す前記ターゲット値を用いて、前記マップを再規定するステップと、
前記デコードされた部分的ビデオ・イメージを後処理して、フル・ビデオ・イメージにおける空間シーケンスに対応する当該空間シーケンスにおいて前記新規のサブ・アレイのスライスに対応する再配置(re-position)イメージ・ブロックにするステップと、
を含む、方法。
【請求項5】
請求項4記載の方法において、前記デコードするステップが、フレーム間関係とは独立してエンコードされたイメージ・データを含む第1ネットワーク抽象化レイヤ・ユニットのみを用いて、連続するフレームについて前記重複部には所属しない前記新規のサブ・アレイのスライスをデコードするステップと、フレームの後の複数のフレームについてのフレーム間関係を用いてエンコードされたイメージ・データを含む第2ネットワーク抽象化レイヤ・ユニットを使用してデコードに切り替えるステップであって、前記第2ネットワーク抽象化レイヤ・ユニットがフレーム間関係と独立してエンコードされたイメージ・データを含むステップと、を含む、方法。
【請求項6】
請求項1から5の何れか一項記載の方法において、ソース・デバイスに通信可能に結合される宛先デバイスによって実行され、当該方法が、
前記ソース・デバイスから前記サブ・アレイ専用の前記ネットワーク抽象化レイヤ・ユニットを取得するステップと、
前記宛先デバイスにおける前記ネットワーク抽象化レイヤ・ユニットを受信することと、前記宛先デバイスにおいて前記デコードのために使用することとの間で前記ネットワーク抽象化レイヤ・ユニットについて前記部分的に書き換えるステップを実行するステップと、
を含む、方法。
【請求項7】
請求項6記載の方法であって、
前記ソース・デバイスから前記サブ・アレイのために前記ネットワーク抽象化レイヤ・ユニットを選択的に取得するステップと、
前記第1ビデオ・ストリームの第1バージョンおよび第2バージョンからネットワーク抽象化レイヤ・ユニットを用いて、前記ソース・デバイスから新規のサブ・アレイのために前記ネットワーク抽象化レイヤ・ユニットを選択的に取得するステップであって、
前記第1バージョンがフレーム間関係ベース・イメージ・データを含み、前記第2バージョンがフレーム間関係とは独立してエンコードされる専用データを含み、
前記第1バージョンおよび前記第2バージョンからのネットワーク抽象化レイヤ・ユニットが、前記第1バージョンのネットワーク抽象化レイヤ・ユニットがフレーム間関係とは独立してエンコードされたフレームを含むフレームまで、前記サブ・アレイと前記新規のサブ・アレイの間の重複部の内外のそれぞれでスライスについて用いられる、
ステップと、
その後に、前記新規のサブ・アレイ内の全てのスライスについてのフレーム間関係に従ってエンコードされたイメージ・データを含むネットワーク抽象化レイヤ・ユニットを用いて、ネットワーク抽象化レイヤ・ユニットを取得するステップと、
を含む、方法。
【請求項8】
請求項1から7の何れか一項記載の方法において、前記ビデオ・コーデックはHEVCである、方法。
【請求項9】
請求項1から8の何れか一項記載の方法において、前記方法はデコード・デバイスによって実行される、方法。
【請求項10】
請求項1から9の何れか一項記載の方法において、前記ヘッダはスライス・ヘッダである、方法。
【請求項11】
請求項1から10の何れか一項記載の方法において、前記メタ・データは前記ヘッダの長さの指示を含む、方法。
【請求項12】
請求項1から11の何れか一項記載の方法において、前記メタ・データは前記ヘッダの1以上のフィールドの位置の指示を含む、方法。
【請求項13】
デコード・デバイスであって、
コントローラであって、ビデオ・コーデックに基づいて、エンコードされるビデオ・イメージを含む第1ビデオ・ストリームにおいて独立してデコード可能なスライスの空間アレイのサブ・アレイの選択を示すように構成され、前記ビデオ・イメージがイメージ領域を有し、また、前記空間アレイに分割されており、前記空間アレイが第1ピクチャ・サイズに関連付けられ、前記第1ビデオ・ストリームが、ヘッダによって先行されるそれぞれのスライスについてのビデオ・データを各々収容するネットワーク抽象化レイヤ・ユニットを含み、前記ヘッダが前記第1ビデオ・ストリームに対する前記それぞれのスライスに関連するパラメータを含む、コントローラと、
ストリーム前処理部であって、前記サブ・アレイにおける前記それぞれのスライスについてエンコードされたビデオ・データを含んだメタ・データおよびネットワーク抽象化レイヤ・ユニットを受信するように構成され、前記メタ・データが前記ネットワーク抽象化レイヤ・ユニットにおける1つ以上の位置を示し、前記位置が、1つ以上のスライスの空間位置の指示を含み、前記ストリーム前処理部が、前記それぞれのネットワーク抽象化レイヤ・ユニットの各々の位置において、スライスの前記サブ・アレイのために前記ネットワーク抽象化レイヤ・ユニットを、書き換えネットワーク抽象化レイヤ・ユニットに部分的に書き換えるように構成され、前記位置が前記ヘッダ内にあり、前記位置が、前記メタ・データに基づいて選択され、前記位置が1つ以上のスライスの前記空間位置の指示を含み、前記書き換えネットワーク抽象化レイヤ・ユニットが、前記スライスのサブ・アレイ専用のエンコード・ビデオ・データを含む第2ビデオ・ストリームを形成し、前記エンコード・ビデオ・データが前記イメージ領域のサブ領域を含む部分的ビデオ・イメージを表し、前記書き換えネットワーク抽象化レイヤ・ユニットが前記ビデオ・コーデックに基づいて前記部分的ビデオ・イメージにデコード可能である、ストリーム前処理部と、
デコーダであって、前記ストリーム前処理部に結合される入力を有し、前記書き換えネットワーク抽象化レイヤ・ユニットをデコードするように構成され、前記デコーダが、前記サブ・アレイに関連付けられる第2ピクチャ・サイズについて初期化され、前記第2ピクチャ・サイズが前記第1ピクチャ・サイズよりも小さい、デコーダと、
を備える、デコード・デバイス。
【請求項14】
請求項13記載のデコード・デバイスにおいて、前記コントローラが、前記サブ・アレイの前記それぞれのスライスについて選択的に前記エンコードされたビデオ・データを含んだ、メタ・データおよびネットワーク抽象化レイヤ・ユニットを前記ストリーム前処理部に向けてリモート・ソース・デバイスに送信させるために、前記選択の指示を前記リモート・ソース・デバイスに送信するように構成され、
前記ストリーム前処理部が、前記リモート・ソース・デバイスから前記メタ・データおよびネットワーク抽象化レイヤ・ユニットを受信するように構成される、デコード・デバイス。
【請求項15】
請求項13または14記載のデコード・デバイスにおいて、前記ストリーム前処理部が、
スライスの各サブ・アレイについての前記ネットワーク抽象化レイヤ・ユニットのヘッダのパラメータを、変更されたビット長で書き換えるように構成され、前記ネットワーク抽象化レイヤ・ユニットの先頭ポイントに対する前記パラメータに後続する前記ヘッダのビットの位置を変更し、
前記ネットワーク抽象化レイヤ・ユニットの前記ヘッダの後のデータの先頭がマルチ・ビット・ワード境界でアライメントされるように、前記ネットワーク抽象化レイヤ・ユニットのパディング・ビットを追加および/または除去するように構成され、
前記ヘッダの部分の長さ、および追加または除去されるパディング・ビットの数が、前記メタ・データに基づいて決定される、
デコード・デバイス。
【請求項16】
請求項13記載のデコード・デバイスにおいて、前記ストリーム前処理部が、前記サブ・アレイ内の位置を区別するために前記スライスの空間位置を示す、変更された値の所定のセットを用いて、前記スライスのサブ・アレイのための前記ネットワーク抽象化レイヤ・ユニットにおける前記スライスの空間位置を示す前記スライスの値を書き換えるように構成される、デコード・デバイス。
【請求項17】
請求項13記載のデコード・デバイスにいて、前記ストリーム前処理部が、前記サブ・アレイのスライスのためのアプリケーション・レイヤ・ユニットにおける前記スライスの空間位置の指示を、マップの制御下で書き換えるように構成され、前記マップが、前記サブ・アレイにおける前記スライスの空間位置を示すターゲット値に対する、前記空間アレイにおける前記スライスの空間位置を示す値を規定し、前記コントローラが前記マップを規定し、また、
前記スライスの空間アレイからの前記サブ・アレイの選択を、以前のサブ・アレイの選択からの新規のサブ・アレイの選択に変更し、
前記新規のサブ・アレイおよび前記以前のサブ・アレイの間の重複部に所属するスライスのために、前記マップにおける前記スライスの空間位置を示す前記ターゲット値を維持し、
前記重複部には所属しない前記スライスのサブ・アレイについての前記スライスの空間位置を示す前記ターゲット値を用いて、前記マップを再規定するように構成され、
当該デコード・デバイスが前記デコーダに結合された入力を有する後処理部を備え、前記デコードされたイメージを後処理して、フル・ビデオ・イメージにおける空間シーケンスに対応する当該空間シーケンスにおいて前記新規のサブ・アレイのスライスに対応する再配置(re-position)イメージ・ブロックにするように構成される、デコード・デバイス。
【請求項18】
請求項13から17の何れか一項記載のデコード・デバイスにおいて、前記ビデオ・コーデックはHEVCである、デコード・デバイス。
【請求項19】
請求項13から18の何れか一項記載のデコード・デバイスにおいて、前記ヘッダはスライス・ヘッダである、デコード・デバイス。
【請求項20】
請求項13から19の何れか一項記載のデコード・デバイスにおいて、前記メタ・データは前記ヘッダの長さの指示を含む、デコード・デバイス。
【請求項21】
請求項13から20の何れか一項記載のデコード・デバイスにおいて、前記メタ・データは前記ヘッダの1以上のフィールドの位置の指示を含む、デコード・デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ情報送信方法およびシステム、ビデオ・デコーダおよびビデオ・エンコーダ、並びにビデオ・エンコードおよびデコードの方法に関する。
【従来技術】
【0002】
WO201597818は、例えば、ヘッド・マウント・デバイス上での表示のために、大規模ビデオ・イメージ(例えば、パノラマ・ビデオ・イメージ)に対して、ユーザ選択可能な空間ビューポイントからビデオ・データをレンダリングするために、HEVCタイルを使用することを開示する。HEVC規格(高効率ビデオ・コーディング)は、デコーダ・システムにおいてマルチコア・プロセッサを使用して、ビデオ・データのデコードを容易にするためのタイルおよびスライスの使用を提供する。タイルは、ビデオ・イメージのそれぞれの空間領域に対応し、そのため、ビデオ・データは独立してエンコードされる。つまり、異なるデコーダ・ユニットは、異なるプロセッサ・コア上で実行され、異なるタイルをデコードするように割り当てられる(HEVC用語では、「デコーダ」と称される、タイルをデコードするユニットであるが、本明細書で用いる際は、「デコーダ」の用語はまた、異なるタイルのための複数のHEVCデコーダ、および2つ以上のタイルのデコードをカバーする。)。HEVCのコード化ビデオにおけるフレームは、タイルから構成される空間アレイに分割される。各タイルは少なくとも1つのスライスを収容する。
【0003】
HEVCソース・デバイスは、ネットワークを介してHEVCビット・ストリーム・データを供給する。HEVCのソース・デバイスは、通常はファイル転送サーバより小さなものである。宛先の要求において、HEVCソース・デバイスは、マニフェスト・ファイルを供給する。マニフェスト・ファイルは、宛先が、格納されたHEVCエンコード・ビット・ストリームデータの一部を転送するために柔軟な要求を生成するのを可能にする。HEVCソース・デバイスは、HEVCに従った動作を何ら実行するのではなく、デコード可能ビデオ・ビット・ストリームを形成する要求部分を単に送信するに過ぎない。デコード可能ビデオ・ビット・ストリームは任意の規格準拠デコーダによってデコードすることができる。
【0004】
WO2015197818は、タイルが、ビデオ・フレームにおける空間部分へのランダム・アクセスを許可できることを利用している。この文書では、空間マニフェスト・ファイル(SMF)を、HEVCタイルのサブセットに関するメタ・データと共に使用している。これは、ビューポートからタイルを選択的に抽出するために使用され、要求されたタイル化ビデオ・データを受信する前にデコーダ・システムを設定することができる。
【0005】
HEVCビデオ・ビット・ストリーム・データのストレージおよびネットワーク送信には、ネットワーク抽象化レイヤ(NAL)を伴う。HEVCビデオ・ビット・ストリーム・データは、NALユニットと称されるパケット内に格納され、また送信される。ビデオ・ビット・ストリーム・データを有するNALユニットを送信することに先立ち、他のNALユニットは、ビデオ・ビット・ストリーム・データに適用するパラメータ・セットを送信するために使用される。パラメータ・セットには、ピクチャ・パラメータ・セット(PPS)、シーケンス・パラメータ・セット(SPS)、およびビデオ・パラメータ・セット(VPS)が含まれる。パラメータ・セットは、とりわけ、ピクチャ・サイズ、タイル・セットの次元、およびスライス・セグメント・アドレスを規定する。ビデオ・データを有する各NALユニットは、ヘッダ・データおよびペイロード・データを収容する。HEVC規格を規定することに関し、NALユニットのペイロード・データは、スライス・ヘッダによって先行されるビデオ・データを収容する。しかしながら、本明細書で用いる場合、スライス・ヘッダは、NALユニットのヘッダ・データとして参照することもある。つまり、ヘッダ・データはメタ・データであり、ビデオ・データではない。以上のように、ヘッダ・データは、NALユニット・ヘッダおよびスライス・ヘッダを含む。ヘッダ・データ、またはヘッダ・データ内のパラメータの少なくとも一部は、可変長コードによってエンコードされる。その結果、ヘッダ長は、スライス毎に、またフレーム毎に変更することができる。ビデオ・ビットストリーム・データを有するNALユニットのヘッダは、それらに適用するパラメータ・セットを直接的または間接的に示す。パラメータ・セットは、デコーダを初期化する(構成する)のに使用される。つまり、パラメータ・セットは、デコーダによって用いられるメタ・データである。パラメータ・セットは、(例えば、HEVCの場合には非VCLNALユニットの形態で)HEVCビット・ストリームの一部としてデコーダに供給される。代替として、1または複数のパラメータ・セットが、代替のビット・ストリームにおいて、SEIメッセージとして、またはデコーダの代替インタフェースを介して、供給されてもよい。パラメータ・セットがビデオ・データよりも前に供給される限り、それに対してパラメータ・セットが適用される。つまり、HEVC準拠のビット・ストリームは、ビデオ・データを搬送するNALユニットだけでなく、パラメータ・セットも収容する。次に、NALユニット内部の(ピクチャ・パラメータ・セットIDによる)スライス・ヘッダにおいて参照されるピクチャ・パラメータ・セット(PPS)が、シーケンス・パラメータ・セットを参照する(例えば、ピクチャ・パラメータ・セットは、シーケンス・パラメータ・セットIDを含む。)。そして今度は、NALユニットに適用するビデオ・パラメータ・セットを参照する。
【0006】
更に大規模なHEVCデータにおいて制限された数のタイルのみからのビデオ・データを収容する、選択されたビューポートからの専用ビデオ・データがレンダリングされるとき、導出されたHEVCストリームは、必要とされるタイルのみを用いて、ネットワーク送信のために使用される。ネットワーク・ソースは、ビューポートが選択されているネットワークの宛先に対し、導出されたHEVCビット・ストリームを送信する。これは、オリジナルのフルHEVCビット・ストリーム・データを用いてストリームを送信するのよりもネットワーク帯域幅を必要としない。ビューポートに関連付けられるビデオ・データを、オリジナルのHEVCソース・ストリームの解像度でデコードする結果、そのビューポートに対応するピクセル領域を有するイメージとなる。しかし、イメージはまた、特定の値のピクセルによって作為的に完成された(デコーダ依存の)ピクセル領域を有する。何故ならば、デコーダは、それに関連付けられるエンコード・ビデオ・データを受信していないからである。したがって、オリジナルのイメージの一部のみが転送およびデコードされるにすぎないので、デコードされたビデオ・データについて(デコード後の)後処理が必要とされる。このことは、生のイメージ・フレームからビューポートのピクセル・データをトリミングして、トリミング・イメージとし、その後に、トリミング・イメージを所望のスクリーン解像度にリサイズすることを伴う。ネットワークの宛先のためのビューポート選択がレンダリングの間に変更するときは、導出されたHEVCビット・ストリームが変更される必要がある。ピクチャ・サイズは同一に維持するものの、オリジナルのHEVCビット・ストリーム・データとは異なるタイルが、第1ビューポートおよび第2ビューポートの間の差分に関連付けられて送信される必要がある。後処理は、トリミングに関して調整される必要がある。ここでは異なる領域をトリミングする必要があるからである。ビューポートの変更がユーザ入力の結果である場合、追加の1つ以上のタイルを抽出し、デコーディングし、そして異なる後処理のステップを行うことは、全て、ユーザが経験する総遅延として付け加えられる。特に、VRおよび/または360ビデオに関連の設定では(ここでは、例えば、レンダリングがヘッド・マウント型ディスプレイヘッド上で実行され、ユーザ入力は、例えば測定される頭部の動きである。)、タイルは、離れた位置から抽出され、このような総遅延は目立つものとなり、容易に受け入れられず、ユーザ・エクスペリエンスが低下し、潜在的な不快感を引き起こすことになる。
【0007】
非常に高い解像度のソース・コンテンツであるときは、別の不利な点も生じる。先行技術に提示される技術は、ソース・コンテンツとデコード・コンテンツとが同一のピクセル解像度を有することが必要である。実際には、エンド・ユーザ・デバイスは、ビデオをデコードする性能の点で、そのスクリーン解像度とは無関係に特定のピクセル解像度に制限される。この制限は、1秒当たり特定のピクセル量をデコードする能力を有するハードウェア・ビデオ・デコーダに因る。他方、カメラおよびキャプチャ機器が、エンド・ユーザ・デバイスよりも高い解像度でコンテンツを作成できるということは一般的なことである。結果として、最高水準の技術では、ソース・コンテンツ全体の解像度よりも低い解像度に制限されたビデオ・デコーダによって、本来の解像度でビデオ・データをデコードするのを可能にする必要性が存在する。このように、エンド・ユーザは更に高いエクスペリエンスを提供する更に高いビデオ品質を知覚することができる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
とりわけ、ビューポートにおいて部分的ビデオ・イメージのデコードを容易にすることを目的とする。
【0009】
とりわけ、表示されたビューポートが変更するときに、遅延のデコードおよびレンダリングを低減させることを目的とする。
【課題を解決するための手段】
【0010】
請求項1による方法が提供される。
【0011】
ここでは、以前に用意されている情報(例えば、メタ・データ)を使用して、スライスのサブ・アレイのために、ネットワーク抽象化レイヤ(NAL)ユニット内のヘッダ・データを部分的に書き換えることを制御し、スライスのサブ・アレイ専用のビデオ・データをコード化するビデオ・ストリームにNALユニットを整合させる。換言すれば、書き換えは、第2ビデオ・ストリーム、好ましくは第2のHEVCビット・ストリームを形成する書換ネットワーク抽象化レイヤ・ユニットを生成する。書換ネットワーク抽象化レイヤ・ユニットは、ビデオ・コーデックに基づいて部分的ビデオ・イメージにデコード可能である。
【0012】
つまり、部分的ビデオ・イメージを表すエンコード・ビデオ・データは、標準的なデコーダを使用して部分的に書き換えられたビット・ストリームからデコードすることができる。メタ・データの使用に代えて、またはメタ・データの使用に加えて、以前に用意されている情報は、異なるサブ・アレイのサイズのために複数の格納済みのバージョンを含んでもよい。
【0013】
実施形態では、書き換えられるヘッダ内の位置は、それぞれのネットワーク抽象化レイヤ・ユニットの1つ以上のスライスの空間位置の指示を含む。当該指示は、好ましくはスライス・ヘッダのアドレスである。スライスの空間位置は、デコード・プロセスの出力であるイメージ・フレーム内のそのポジション(即ち位置)を決定する。書き換えプロセスよりも以前に存在している指示は、ソース・ビット・ストリームのビデオ・イメージのイメージ領域(フレーム)内のスライスの位置に関係する。オリジナルの指示を新規の指示に変更することにより、スライスのサブ・アレイがデコードされることができる。これにより、各スライス(より正確には、スライスのビデオ・データによって表されるサブ領域)は、部分的イメージ内で意図された新規の位置に配置される。
【0014】
実施形態では、当該デコードよりも以前に、空間アレイが第1ピクチャ・サイズに関連付けられており、デコーダが第2ピクチャ・サイズについて初期化されており、ここで、当該第2ピクチャ・サイズは第1ピクチャ・サイズよりも小さい。この実施形態では、空間位置の指示を、サブ・アレイにおけるものの空間位置に対応する指示に書き換えることが重要である。デコーダ用のピクチャ・サイズはオリジナル(最初)のビデオ・ビット・ストリームのピクチャ・サイズよりも更に小さく設定されるので、デコーダは、もはやオリジナルの指示をハンドルすることはできない。その場合、デコーダは、もはや、受信したNALユニット(のエンコード・ビデオ・データ)をデコードすることはできない。実施形態では、部分的イメージを使用して、ビューポートによって規定された位置においてフル・エンコード・ビデオ・イメージの一部に対応するビデオ・イメージのストリームを表示することによって、フル・ビデオ・データ上にビューポートを提供することができる。本実施形態では、スライスのサブ・アレイは、ビューポート内の全ての位置についてのビデオ・コンテンツ・データを収容するスライスを含む。
【0015】
実施形態では、この書き換えは、NALユニットの先頭ポイントに対しヘッダ・データの部分の位置を変更することを伴う。例えば、スライスの空間位置の指示のようなパラメータ(例えば、スライス・アドレス)が変更されたヘッダのビット長によって書き換えられている位置の後ろにすることである。変更されるビット長は、スライスの空間位置についての変更指示(例えば、異なるスライス・アドレス)に因る。ヘッダのこの部分の末尾では、パディング・ビットが追加または除去されて、マルチ・ビット・ワード境界での後続のビデオ・データのアライメントを確実にする。ヘッダ・データのこの部分の位置を変更するために、また、パディング・ビットを追加または削除するために、ヘッダの長さを知らなければならない。ヘッダの長さは、HEVCエンコード・ビット・ストリームのような、データに依存した同一のストリームにおいては、異なるNALユニットごとに異なる。
【0016】
オリジナルのNALユニットからヘッダの長さを決定することは、計算の追加という重大な苦労を伴うことになる。ヘッダの長さを示すメタ・データを使用することは、ビデオ・コンテンツ・データの先頭の位置またはパディング・ビットの先頭ポイントを直接的または間接的に示すことによって、部分的に書き換えるのに必要となる時間と複雑さを著しく低減させる。
【0017】
例えば、実施形態では、スライスのサブ・アレイのためにNALユニット内のスライスの空間位置を示す値は、サブ・アレイ内のこれらスライスの位置を区別するそれぞれのスライスの空間位置を示す短縮された値の所定のセットを用いて、フル・ビデオ・イメージにおけるスライスの位置を示すことなく、置き換えられる。NALユニットのヘッダ・データ内のそれぞれの位置は、そこでそれぞれのスライスの空間位置のこれら指示を書き換えるために、個別にそれぞれのNALユニットの各々についてのメタ・データによって示される。しかしながら、書き換えに用いられるヘッダ・データ内の位置が、選択されたサブ・アレイに関連する全ての個別NALユニットについて同一である場合には、(単一の)所定の位置を用いてもよい。
【0018】
実施形態では、各NALユニットについてのメタ・データは、1つ以上のキーと値のペアを含む。ここでは、値はNAL(ネットワーク抽象化レイヤ)ユニットの当該ヘッダ・データの先頭からのビット・オフセットを示す。また、キーは、ネットワーク抽象化レイヤ・ユニットのヘッダにおいてどのパラメータまたはパディングに対し、値が適用するかについて示す。次いで、示されたパラメータまたはパディングの書き換えが、示されたビット・オフセットにしたがって実行される。
【0019】
実施形態では、スライスのそれぞれ1つごとに各NALユニットについてのメタ・データが、NALユニットと共に、例えば、スライスのそれぞれ1つについてのNALユニットと、それに適用するメタ・データとの両方を収容するファイル・ラッパの一部として送信される。
【0020】
実施形態では、メタ・データは、1つ以上のSEIメッセージ、好ましくはHEVCCベースSEIメッセージの内部に含まれる。
【0021】
実施形態では、ネットワーク抽象化レイヤ(NAL)ユニットにおけるスライスの空間位置の指示に関するメタ・データを含むSEIメッセージは、それぞれの当該NALユニットのヘッダを書き換えるよりも前に、デコーダ装置またはデコーダ・デバイスによって受信されている。好ましくは、当該SEIメッセージは、第2ビデオ・ビット・ストリームの一部である。
【0022】
別の実施形態では、メタ・データ・ファイルは、帯域外で受信されている。例えば、バイナリ・エンコード・メタ・データ・ファイルは、スライスについて示された選択を収容する部分的HEVCストリームを開始するために、ネットワーク宛先システムからHTTPGET要求コマンドに応答して、ネットワーク宛先システムに向けてネットワーク・ソース・システムからHTTPヘッダで送信される。更なる別の実施形態では、メタ・データは、JSONデータ・フォーマットを用いてフォーマットすることができる。また、例えば、ネットワーク宛先システムとネットワーク・ソース・システムの間で前述のトランスポート・プロトコルの何れかを使用して送信することができる。
【0023】
実施形態では、以前に用意されている情報は、異なるサブ・アレイのサイズについて格納された複数のバージョンを含み、デコードで使用するために取得されるバージョンは、スライスのサブ・アレイのサイズにしたがって選択される。実施形態では、そのように選択されたバージョンのパラメータは、選択されたサブ・アレイにしたがって書き換えられる。書き換えられるのが必要な1または複数のパラメータは、全てのNALユニットについて同一であるNALの位置に関する所定の情報に基づいて書き換えることができるように、このバージョンが設計される。その結果、個別のNALユニットについての何れのメタ・データも供給される必要がなくなる。更なる実施形態では、どのパラメータもデコード前に書き換える必要がないようにこのバージョンが設計されてもよい。
【0024】
実施形態では、選択されたサブ・アレイを変更することができる。この方法は、スライスのサブ・アレイのために、NALユニットのスライスの空間位置の指示を書き換えるのに使用するために、選択されたサブ・アレイにおいてスライスの空間位置を示すターゲット値に対する、空間アレイにおけるスライスの空間位置を示す値のマップを規定するステップを含む。
【0025】
実施形態では、後処理を使用して、デコードされた部分のビデオ・イメージを、空間イメージにおける空間シーケンスに対応する当該空間シーケンスにおいて新規のサブ・アレイのスライスに対応する再配置(re-position)イメージ・ブロックに後処理する。
【0026】
サブ・アレイの選択が変更されたとき、新規のサブ・アレイおよび以前のサブ・アレイの間の重複部に所属するスライスのために、当該マップにおけるスライスの空間位置を示すターゲット値が維持される。その一方で、重複部には所属しない、新規に選択されたスライスのサブ・アレイについての空間位置を示すターゲット値に対し、マップが再規定される。このように、重複部におけるスライスのデコードは、サブ・アレイの変更によって中断される必要がない。
【0027】
実施形態では、デコードは、ストリームのI−フレーム専用バージョンからのI−フレームを用いて、連続するフレームの重複部には所属しない新規のサブ・アレイのスライスをデコードすることを含む。このことは、変更の後のスライスを即座にデコードすることを可能にする。ストリームのフレーム間関係ベース・バージョンが新規のピクチャ・グループを収容すると、ストリームのフレーム間関係ベース・バージョンへの切り替えが行われる。
【0028】
この方法は、特に、リモート・ネットワーク・ソース・システムからネットワーク抽象化レイヤ・ユニットの送信と共に使用するのに適している。ここでは、送信スライスの数は、サブ・アレイからのスライスに低減されることができる。
【0029】
実施形態では、ネットワーク・ソース・システムは、サブ・アレイのスライスについてのネットワーク抽象化レイヤ・ユニットと同様、メタ・データを送信する。この場合、書き換えがネットワーク宛先システムによって実行される。別の実施形態では、書き換えの少なくとも一部は、メタ・データに基づいてネットワーク・ソース・システムで実行されてもよく、書き換えネットワーク抽象化レイヤ・ユニットが送信される。別の実施形態では、例えば、ネットワーク抽象化レイヤ・ユニットの代替バージョンの一部として、サブ・アレイの異なる次元ごとに、ネットワーク抽象化レイヤ・ユニットのヘッダについての代替の(部分的)書き換えバージョンがフル・ビデオ・データの全てのスライスについて格納される。この実施形態では、選択されたサブ・アレイの次元に基づいて選択されるヘッダのバージョンは、サブ・アレイ内のスライスのために送信される。
【0030】
ソース・システムは、サブ・アレイの選択の第1指示を受信し、また、第1ビデオ・ストリームにおいて選択されたサブ・アレイについてのネットワーク抽象化レイヤ・ユニットを、前記ストレージ・システムから抽出すると共に、送信するように構成される。更なる実施形態では、コントローラは、空間アレイの新規のサブ・アレイの選択の指示を受信するように構成される。格納されたI−フレーム専門バージョンと、以前のサブ・アレイと新規のサブ・アレイの間の重複部の内外のそれぞれについての格納されたフレーム間関係ベース・バージョンとからのデータを含む新規のサブ・アレイのネットワーク抽象化レイヤ・ユニットへの変更の後。このことは、ピクチャの新規のグループがフレーム間関係ベース・バージョンにおいて開始するフレームまで行われる。その後に、フレーム間関係エンコード・バージョンが全てのスライスのために用いられる。
【0031】
一態様によれば、コンピュータ可読媒体またはストレージ・システムが提供され、格納されたネットワーク抽象化ユニット・レイヤを備える。ビデオ・ストれーむ・デコーダによって処理されるときに、ビデオ・ビット・ストリーム・デコーダに、ビデオ・ストリームを発生させる。・ビデオ・ストリームは、独立してデコード可能なスライスの空間アレイに分割されたフル・ビデオ・イメージをエンコードする。ここでは、ネットワーク抽象化レイヤ・ユニットは、各々、第1ビデオ・ストリームに対するスライスのそれぞれ1つに関連するパラメータを含む。コンピュータ可読媒体は、パラメータのビット・オフセットおよび/または、ネットワーク抽象化レイヤ・ユニットのそれぞれ1つのヘッダ内のパディング・ビットを示すメタ・データを格納する。
【0032】
実施形態のコンピュータ可読媒体またはストレージ・システムでは、各ネットワーク抽象化レイヤ・ユニットのそれぞれ1つの各々についてのメタ・データは、1つ以上のキーと値のペアを含む。ここでは、値はネットワーク抽象化レイヤ・ユニットの当該ヘッダ・データの先頭からのビット・オフセットを示す。また、キーは、ネットワーク抽象化レイヤ・ユニットのヘッダにおいてどのパラメータまたはパディングに対して適用するかについて示す。
【0033】
実施形態のコンピュータ可読媒体またはストレージ・システムでは、ネットワーク抽象化レイヤ・ユニットのそれぞれ1つの各々は、ネットワーク抽象化レイヤ・ユニットの当該それぞれ1つのメタ・データと一緒にラップされて格納される。
【0034】
実施形態のコンピュータ可読媒体またはストレージ・システムでは、ビデオ・ストリームの第1バージョンおよび第2バージョンのネットワーク抽象化レイヤ・ユニットを含み、第1バージョンがフレーム間関係ベース・イメージ・データを含み、第2バージョンがフレーム間関係とは独立してエンコードされる専用データを含む。
【0035】
実施形態のコンピュータ可読媒体またはストレージ・システムでは、複数の異なるサブ・アレイ・サイズからのネットワーク抽象化レイヤ・ユニットの格納バージョンを含む。
【0036】
これらの目的および他の目的並びに利点は、以降の図面を参照することにより、例示の実施形態の説明から逸脱することなく明らかになる。
【図面の簡単な説明】
【0037】
図1図1は、ビデオ送信システムを示す。
図2図2は、デコーダ・システムを示す。
図3図3は、宛先システムにおけるプロセスのフロー・チャートを示す。
図4図4は、ソース・システムにおけるプロセスのフロー・チャートを示す。
図5図5は、サブ・アレイの重複部を示す。
図6図6は、ソース・システムにおけるプロセスのフロー・チャートを示す。
図7図7は、ネットワーク・ソース・システムの実施形態を示す。
【発明を実施するための形態】
【0038】
本発明の目的のために、ビデオ・ストリームという用語は、エンコード・ビデオ・データを含む場合には、デコーダ装置が有する意図された入力であるビット・ストリームに関する。例えば、ビット・ストリームは、それに埋め込まれたエンコード・ビデオ・データをデコードする目的で解析されることが意図される。この解釈は、「ビット・ストリーム」という用語によるエンコードの技術分野において理解されているものと整合する。
【0039】
図1は、ネットワーク10、ネットワーク・ソース・システム12、およびネットワーク宛先システム14を備える例示的なビデオ送信システムを示す。ネットワーク・ソース12は、ストレージ・システム120、コントローラ122、およびネットワーク・インタフェース124を備える。ストレージ・システム120は、コード化ビデオ・ストリームを表すデータを格納する。一例では、コード化ビデオ・ビット・ストリームは、HEVCコード化ビデオ・ビット・ストリームである。HEVCは、相互に独立してエンコードされるビデオ・ストリームの一部であるスライスを用いる。説明する実施形態では、スライスが用いられ、各スライスは、イメージ内の(部分領域の)それぞれの空間位置に関連付けられる。HEVCエンコード・ビデオ・ビット・ストリームは、スライス・ヘッダおよびビデオ・コンテンツ・データを含む。コントローラ122は、ストレージ・システム120からHEVCビット・ストリーム・データを抽出するために、ストレージ・システム120に結合される。また、コントローラ122は、ネットワーク・インタフェースを介してコマンドを受信すると共に、それ応答してネットワーク・インタフェース124にHEVCビット・ストリーム・データを供給するために、ネットワーク・インタフェース124に結合される。ネットワーク・インタフェース124は、ネットワーク10に結合されるネットワーク送信器である。
【0040】
図2は、例示のネットワーク宛先システム14を示す。ネットワーク宛先システム14は、ネットワーク・インタフェース140、ストリーム前処理器142、デコーダ144、後処理器146、およびコントローラ148を備える。ネットワーク・インタフェース140は、ネットワーク10への入力と、ストリーム前処理器142の入力に結合される出力と、を有する。ストリーム前処理器142は、デコーダ144の入力に結合される出力を有する。デコーダ144は、後処理器146の入力に結合される出力を有する。後処理器146は、デコーダ144から受信したデコード・イメージにおけるピクセルのブロックの位置をシャッフル(再配置)するように構成される。後処理器146はビデオ出力を有し、ビデオ表示デバイス(例えば、LCDスクリーン)(不図示)に結合され、または、別のビデオ処理ユニット(不図示)にも結合される。コントローラ148は、ネットワーク・インタフェース140に結合される。また、コントローラ148は制御出力を有し、ストリーム前処理器142、デコーダ144、及び後処理器146の入力を制御する。
【0041】
HEVCコード化ビット・ストリームは、エンコード・パラメータ・セット、スライス・ヘッダ、およびビデオ・コンテンツ・データを含む。パラメータ・セットは、SPSおよびPPSNALユニットに位置する。とりわけ、パラメータ・セットは、ピクチャ・サイズ、およびピクチャ内のタイルの行と列の番号(各タイルは少なくとも1つのスライスを収容する。)を規定する。スライスについてのビデオ・データを有する各NALユニットは、ヘッダおよびペイロード・データを収容する。HEVC規格に関し、ペイロード・データは、スライス・ヘッダによって先行されるエンコード・ビデオ・コンテンツ・データを収容する。つまり、スライスのデータは、スライス・ヘッダおよびスライス・ペイロードから構成される。しかし、本明細書では、スライス・ヘッダはまた、ヘッダ・データとも称され、更に簡単に「ヘッダ」とも称される。ヘッダ、すなわち、ヘッダ内のパラメータの少なくとも一部は、可変長コードによってエンコードされる。このことは、ヘッダの総ヘッダ長が、スライスごとに、およびフレームごとに変更してもよいことを意味する。
【0042】
とりわけ、本発明の実施形態によれば、スライス・ヘッダは、NALユニットにおいてエンコードされたスライスの識別情報(これは、スライス(セグメント)アドレスと称され、またスライスの空間位置の指示の例示である。)と、スライスがピクチャにおける最初の(左上の)スライスであるかについて示すフラグと、スライスが所属するピクチャの時間的シーケンス番号と、スライス間のコード化に用いられる基準ピクチャ・セットと、基準ピクチャ・セットに関する量子化デルタと、を収容する。スライスの識別情報は、ピクチャのコード化ツリー・ブロック・ラスタ・スキャンにおける第1コード化ツリー・ブロックの番号によって表される。HEVC規格はタイルの概念を利用する。ビデオ・ストリームの各イメージは、これらのタイルのマトリクスに分割することができる。各タイルが丁度1つのスライスを収容するとき、各スライスは、イメージ内の(領域の)それぞれの空間位置に関連付けられる。また、この関連付けによって、スライスは、独立してデコード可能なスライスの空間アレイを形成する。各タイルが複数のスライスを収容するときも同様である。結果として、NALユニットにおけるスライスの識別情報は、スライスの空間位置の(間接的な)指示を形成する。各タイルが1つのスライスまたは2つ以上のスライスを収容するとき、フレームにおけるスライスの空間位置を、スライスの識別情報から導出することを可能にする(スライスの識別情報は、スライス・アドレスとすることができ、これは、HEVCによれば、スライスの第1CTB(コード化ツリー・ブロック)のアドレスとなる。)。なお、スライスの空間位置の指示が直接的または間接的な指示となることが強調される。直接指示の例は、位置(例えば、スライスにおいてエンコードされたビデオ・データを収容するイメージ内の矩形のコーナー)の座標のセットである。間接的な指示とは、このような直接的な指示を、必要であれば付加情報の補助を用いて導出できるような指示のことである。
【0043】
例えば、本発明の実施形態では、ビデオ・イメージ(フレーム)がタイルに分割され、これにより、各タイルは1つのスライスを収容し、タイル・セット次元およびスライス・アドレスから、各スライスの空間位置(例えば、スライスのビデオ・データによって占有されるビデオ・イメージの領域(フレーム))を容易に決定することができる。ヘッダの末尾では、そしてビデオ・コンテンツ・データの前では、NALユニットは0個以上のパディング・ビット(スタッフィング・ビットとも称される。)を収容し、パディング・ビットの数が選択されて、ヘッダの可変長エンコードによって生成されるヘッダ・ビット長とは無関係に、ビデオ・コンテンツ・データの先頭におけるワード境界アライメント(例えば、バイト・アライメント)を確実にする。ヘッダのビット長Lhとパディング・ビットの数Nとの合計がワード長W(例えばW=8)の整数倍になるように、好ましくはN<Wで、パディング・ビットの数が選択される。
【0044】
HEVCコード化ビット・ストリームに加えて、ストレージ・システム120はメタ・データを格納する。メタ・データは、スライス・ヘッダにおけるパディング・ビットの位置と、任意で、(例えば、NALユニットの先頭からのビットのオフセット)と、スライス・ヘッダにおける1つの以上のフィールドの長さと、を示す。示されたフィールドは、スライスの空間位置を表すためのフィールドと、スライスが最初のスライスであるかについて示すフラグと、スライスが所属するピクチャの時間的シーケンス番号と、スライス間のコード化のために使用される基準ピクチャ・セットおよび基準ピクチャ・セットに関する量子化デルタの指示と、のうち任意の1つを含む。メタ・データはまた、エンコード・パラメータ・セットにおいて特定のフィールドの位置および長さを示す。ストリームがエンコードされるとき、メタ・データは生成される。これは、同一のエンコード・ビデオ・データよりも前に、異なるヘッダを追加することにより、或いは、後に、NALユニットにおいて異なるパラメータの位置および/またはパディング・ビットの数を決定するためにエンコード・ストリームを解析することにより行われる。メタ・データは、事前にコンパイルされ、その後に、要求されたサブ・アレイの位置が知られる(すなわち、リアルタイムではない。)。
【0045】
実施形態では、メタ・データは、好ましくは、メタ・データ・ファイルの形態であり、ヘッダ・データのパラメータにおける有するキーと値(または名前の値もしくは属性の値)のペアを含む。これらは、パラメータを示す1つ以上の属性と、ビデオ・データの先頭からのビットのオフセットによる位置を示す属性値とを含む。メタ・データ・ファイルは、バイナリにエンコードされる。実施形態では、メタ・データは、別個のメタ・データ・ファイルとして格納される。別個のメタ・データ・ファイルのそれぞれは1つ以上のNALユニットのメタ・データを収容する。実施形態では、各NALユニットは、ファイル・ラッパと共に格納される。ファイル・ラッパは、NALユニットのメタ・データを収容する。ラッパは、例えばGoogleProtobufを使用して、バイナリ・エンコード・メタ・データ・ファイルおよび対応のNALユニットの周囲に配置される。
【0046】
好ましくは、ストレージ・システム120に格納されたビデオ・データはまた、ビデオ・データのフルI−フレーム・エンコード・バージョンと、フレーム間関係に基づくエンコード・バージョンとを収容する(すなわち、I−フレームと、ピクチャのグループに編成されたモーション予測フレームとの組み合わせを使用する。)。
【0047】
動作時には、ネットワーク・ソース・システム12は、格納されたHEVCビット・ストリームのパラメータ・セットを収容する部分的HEVCビット・ストリームと、格納されたHEVCストリームの全てのスライスではなく、選択されたスライスのサブ・アレイを表すNALユニットと、を送信する。サブ・アレイ内のスライスの数は、HEVCビット・ストリームによってエンコードされたイメージにおけるスライスの数よりも小さい。スライスの数に関するその高さと幅は、共に、HEVCビット・ストリームによってエンコードされたイメージのスライスの数に関する高さと幅よりも小さい。
【0048】
ネットワーク・ソース・システム12は、基本的には、ネットワーク宛先システムによって要求されたデータを単に送信するにすぎないファイル・サーバとして、或いは、例えばサブ・アレイのサイズと位置を規定する、ネットワーク宛先システムにより提供されるパラメータに基づいて送信されることになるデータをコンパイルするアクティブ・ビデオ・ストリーム・ソースとして、動作するように構成される。ファイル・サーバとして動作するには、HEVCビット・ストリームは、例えば、公知のMPEGDASH(以下、単にDASHと称する。)のセグメントの形態で格納される。その場合、MPEGDASHに関連付けする追加のメタ・データは、HEVCビット・ストリームに付加される(例えば、HEVCビット・ストリームは、その一部がMPEGDASHプロトコルを利用して抽出できるようにカプセル化される。)。更に、メディア・プレゼンテーション記述(MPD)と称されるマニフェスト・ファイルがネットワーク・ソース・システム12に格納される。このマニフェスト・ファイルはDASHセグメントのURLを含み、ネットワーク宛先システム14によって、選択されたDASHセグメントをネットワーク・ソース・システム12に要求するのを可能にするために使用される。
【0049】
別の実施形態では、ファイル・サーバとしての動作をサポートし、HEVCビット・ストリームは、トランスポート・ストリーム・パケットまたはMP4ファイル・セグメント(例えば、後者についてはフラグメント化されたMP4ファイルの形態)として格納される。この場合、更なるフォーマットで格納することは、通常は、当該フォーマットに関連するメタ・データを追加することを含む。HLSセグメント(フラグメント)のURLを含むHTTPライブ・ストリーミング(HLS)プレイリスト・ファイルがネットワーク・ソース・システム12に格納される。HLSプレイリスト・ファイルそれ自体は公知である。HLSプレイリスト・ファイルはHLSセグメントのURLを含む。
【0050】
図3および図4は、ネットワーク宛先システム14とネットワーク・ソース・システム12の動作のフロー・チャートを示す。宛先システムが、スライスのサブ・アレイのためにエンコード・ビデオ情報を取得するために、ファイル・サーバとしてネットワーク・ソース・システムを使用する実施形態について説明する。本明細書において、ネットワーク宛先システムは、例えば、コントローラを設けることによって情報を取得する。その結果、情報を特定する要求をネットワーク・ソース・システムに送信し、当該要求に応答して、特定された情報を前処理器において受信するように構成することができる。NALユニットは、例えば、マニフェスト・ファイルやプレイリスト等に基づいてそれらのURLを指示することによって特定される、例えばDASHセグメント、トランスポート・ストリーム・パケットまたはMP4ファイル・セグメントとして取得される。
【0051】
図3のフロー・チャートは、スライスのサブ・アレイが選択されるプロセスの一部であり、例えば、ユーザ制御型ナビゲーション、またはサブ・アレイの位置および恐らくはそのサイズを選択する別の形態の外部制御に基づく。例えば、ヘッド・セットの方位を検出することを使用して、1つ以上の方位センサからの信号に基づいて位置を選択してもよい。図3のフロー・チャートの第1のステップ31では、ネットワーク宛先システムは、ネットワーク・ソース・システムからの所望のビデオ・ストリームについてのマニフェスト・ファイルまたはプレイリストを取得する。図3のフロー・チャートの第2のステップ32では、ネットワーク宛先システム(例えば、そのコントローラ)は、ネットワーク・ソース・システムからパラメータ・セットを取得し、全体イメージとしてサブ・アレイの使用にそれらを対応付けるように、それらを修正する。ネットワーク宛先システム14は、そのストリームを、選択されたサブ・アレイに対応したピクチャにおいて、ピクチャ・サイズとタイルの行および列の数とを設定するようにパラメータ・セットを変更することによって、イメージ全体のサブ・アレイの使用とHEVC互換性させる。第3のステップ33では、ネットワーク宛先システム(例えば、そのコントローラ)は、デコーダを開始する修正パラメータ・セットを用いて、ネットワーク宛先システム14のデコーダ144を開始する。
【0052】
更に、コントローラは、第3のステップ33ではストリーム前処理器及び後処理器を構成する。ストリーム前処理器は、修正パラメータ・セットに対応したネットワーク・ソース・システムから受信したNALユニットを修正するように構成される。ストリーム前処理器は、オリジナルのフルサイズのHEVCイメージからのスライスの空間位置の受信指示を、サブ・アレイのサイズを有するイメージにおけるスライスの空間的位置の指示にマッピングするように構成可能である。実施形態では、ストリーム前処理器は、構成可能なマッピング・テーブルを含み、例えば、サブ・アレイ内のスライスごとに、テーブル・エントリのフル・イメージのスライスの空間的位置の指示を含む、スライスの空間位置の個別の指示に対してこのマッピングを規定する。後述する理由により、ストリーム前処理器および後処理器は、構成可能なタイル・マッピングを適用するように構成される。ストリーム前処理は、「空間順序外」(Out-of-spatial-order)の方法でスライスの空間位置の受信指示をマッピングするように構成される。後処理器は、「空間順序外」とは異なる方法でデコード・イメージからの異なるタイルを、出力イメージにおける位置にマッピングする。その結果、フル・イメージからそれらオリジナルの順序をリストアすることができる。後処理器は、この目的のために構成可能なマッピング・テーブルを備える。例えば、出力イメージ内のブロックについてのテーブル・エントリにおいてデコード・イメージのイメージ・ブロックのアドレスを収容し、または、デコード・イメージのブロックについてのテーブル・エントリにおける出力イメージのブロック・コーナー位置のアドレスを収容する。
【0053】
デコーダ144からのデコード・イメージ、および後処理器146からの後処理された出力イメージは区別される。実施形態では、後処理器は、デコード・イメージから出力イメージを取得するように構成される。これは、スライスの空間位置の指示を再マッピングすることのみならず、再マッピングしたデコード・イメージについてトリミングされたサブ・イメージに対応する出力イメージを導出することによって行われる。コントローラは、トリミングするウィンドウの位置が後処理器146によって使用されるように構成する。任意には、ストリーム前処理器および後処理器は、スライスの空間位置の指示を再マッピングした後に、出力イメージが抽出される必要があるデコード・イメージの領域の間で構成可能な回転を適用するように構成してもよい。この場合、コントローラはまた、回転角度を設定するのがよい。
【0054】
第4のステップ34では、ストリーム前処理器は、NALユニットと、ネットワークを介してネットワーク・ソース・システムからこれらNALユニットのヘッダのメタ・データとを取得する。第5のステップ35では、ストリーム前処理器は、NALユニットのスライス・ヘッダを書き換えて、それらを修正パラメータ・セットと互換性を持たせる。ストリーム前処理器は、所定のセットの短縮アドレスから、スライスの空間位置について短縮された指示によってスライスのアドレスを置き換える。本明細書では、所定のセットの短縮アドレスが(予め決められていても、そうでなくても)サブ・アレイの次元に従う。また、フル・ビデオ・イメージにおけるサブ・アレイの位置に従わないという意味では、所定のセットの短縮アドレスは、予め決められている。その結果、例えばマッピング・テーブルにおいて、コントローラによって構成されるサブ・アレイ内のスライスの空間位置の指示を作成することができる。ストリーム前処理器は、スライスが、送信されたスライスの1つの第1スライスであるかについて示すフラグを書き換える。
【0055】
また、ストリーム前処理器は、NALユニットの先頭に対し、スライス・ヘッダの未修正部分の位置を変更する。その結果、サブ・アレイの使用に対応したフィールド長の修正を考慮することができる(サブ・アレイについて更にサイズを小さくすることは、スライスの空間位置の指示についてビットの使用を更に少なくすることを意味する。)。更に、ストリーム前処理器は、シフティングに因り必要とされる場合は、スライス・ヘッダの後ろのNALデータのバイト・アライメントを確実にするために、パディング・ビットを追加または削除する。
【0056】
ストリーム前処理器142は、(例えば、メタ・データを通じてシグナリングされる)メタ・データからのパディング・ビットの位置を用いて、パディング・ビットが追加または削除されるNALユニットにおける位置を決定する。ストリーム前処理器142はまた、データが変更される位置、および/またはシフトが開始される位置を選択するために、メタ・データからの関連フィールドの位置の指示を使用する。代替として、ストリーム前処理器142は、位置を選択するために、フィールド位置および/またはサイズの1つ以上の所定の指示を用いる。これらの少なくとも幾らかは全スライス・ヘッダについて同一であるので、このことが可能となる。
【0057】
第6のステップ36では、ストリーム前処理器は、書き換えられたフィールド、および追加または削除されたパディング・ビットを有するNALユニットをデコーダに転送する。第7のステップ37では、デコーダは、転送されたNALユニットをデコードし、その結果得られたデコード・イメージを後処理器に送信する。第8のステップ38では、後処理器は、デコード・イメージを後処理する。
【0058】
一実施形態では、プロセスは、第8のステップ38の後に、第4のステップ34から繰り返す。しかしながら、図3は、プロセスが第9のステップ39を含む実施形態を示しいる。ここでは、ネットワーク宛先システム14は、動作中にサブ・アレイの位置を変更することができる。
【0059】
ネットワーク・ソース・システムは、対応するNALユニットまたはNALユニットによる帯域内とは別個に、例えばラッパ・ファイルの一部としてメタ・データを送信する。実施形態では、メタ・データは、各NALユニットごとにHEVCSEIメッセージ内で送信される。別の実施形態では、メタ・データ・ファイルは帯域外で送信されてもよい。例えば、バイナリ・エンコード・メタ・データ・ファイルは、スライスについて指示される選択を収容する部分的HEVCストリームを開始するために、ネットワーク宛先システムからのHTTPGET要求命令に応答して、ネットワーク宛先システムに対し、ネットワーク・ソース・システムからHTTPヘッダ内で送信される。更に別の実施形態では、メタ・データは、JSON−データ・フォーマットを利用してフォーマットすることができる。また、例えば、ネットワーク宛先システムとネットワーク・ソース・システムの間の前述のトランスポート・プロトコルの任意のものを使用して送信することができる。
【0060】
図4は、代替の実施形態におけるネットワーク・ソース・システムの動作を示し、ここでは、ネットワーク・ソース・システムは、アクティブなビデオ・ストリーム・ソースである。本実施形態では、ネットワーク宛先システムが情報を取得するステップは、ネットワーク・ソース・システムに送信された要求の全てを伴う必要はない。本実施形態では、図3のフロー・チャートの第1のステップ31は、部分的HEVCストリーム(の送信)を開始するコマンドを送信することを含み、例えば、HEVCコード化ストリームによってコード化されたイメージ内のスライスの2次元のサブ・アレイの位置に関して、スライスの選択を示す。好ましくは、コマンドはまた、スライスの数に関して、アレイの高さと幅を示す。代替として、所定の高さと幅、例えば3×3のスライスが使用されてもよい。更に、コマンドは、ストリームの識別情報と、任意で、ストリームにおける開始時間位置と、を含んでもよい。代替として、コマンドは、所定のストリームに適用する。または、ストリームの識別情報は別個のコマンドにおいて供給される。
【0061】
図4のアクティブ・ストリーム動作についてのフロー・チャートの第1のステップ41では、ネットワーク・ソース・システムは、ネットワーク宛先システムからコマンドを受信しているかについて検査して、スライスについて指示された選択を収容する部分HEVCストリームを開始する。その場合は、ネットワーク・ソース・システムは第2のステップ42に進む。ここでは、HEVCコード化ストリームのパラメータ・セットを抽出し、抽出したパラメータ・セットをネットワーク宛先システムに送信する。
【0062】
その後、ネットワーク・ソース・システムは第3のステップ43に進む。ここでは、スライスについて指示された選択のためのビデオ・コンテンツ・データを収容するNALユニットと、これらNALユニットのヘッダについてのメタ・データと、を抽出する。次いで、ネットワーク・ソース・システムは第4のステップ44に進む。ここでは、選択されたアレイの外部でフル・イメージのHEVCストリームからNALユニットを送信することなく、ネットワークを介してネットワーク宛先システムに、これら1つ以上のNALユニットのヘッダについてのメタ・データを、ネットワークを介してネットワーク宛先システムに送信する。第5のステップ45では、ネットワーク・ソース・システムは送信を続行すべきかについて検査を行う。その場合、ネットワーク・ソース・システムは、第3のステップ43からプロセスを繰り返す。
【0063】
スライスの再マッピング
ネットワーク宛先システム14のコントローラは、HEVCのフル・イメージに対する出力イメージの位置を変更する必要性があるかについて、また、任意には、その回転が変更される必要があるかについて検査するように構成される。このことは、例えば、ユーザ・コマンドに応答して、または、イメージを表示するのに使用されるヘッド・セットの動きの検出に応じて必要とされるのがよい。
【0064】
第9のステップ39では、コントローラは、位置および任意には回転の変更が、サブ・アレイの変更を必要とするかについて、即ち、変更がサブ・アレイ外部のイメージの任意の部分に移っているかについて決定する。その場合は、コントローラは、第4のステップ34でNALユニットを取得することになるスライスの選択を変更する。
【0065】
図5は、ストリーム前処理器によって実行されるアドレス・マッピングの変更を更に伴う実施形態を示す。これは、可能な限りスライスのストリームの時間的継続性を確実にするために利用される。更に、サブ・アレイを変更した後に、I−フレーム専用ビデオ・ストリームからの追加の帯域幅の利用を回避または最小化するのに使用される。コントローラがスライス50の新規のサブ・アレイを選択するときは、新規のサブ・アレイは、交差陰影によって示されるスライスの数において以前のサブ・アレイと部分的に重複する。デコーダの動作の時間的継続性を確実にする(即ち、以前のスライス・データを参照することによってデコード・スライス・データを用いるのを可能とする)ために、重複している(交差陰影の)スライスにおけるスライスの空間位置について再マッピングされた指示は変更しないことが望ましい。また、(第1種別の単一陰影によって示される)スライス50の新規のサブ・アレイにおいて新規であるスライスは、(第2種別の単一陰影によって示される)新規のサブ・アレイ50においては使用されない以前のサブ・アレイからのスライスのアドレスに再マッピングされる。
【0066】
したがって、例えば、以前のサブ・アレイ内のスライスの行が、2次元スライス座標(n,n),(n+1,n),(n+2,n)に対応するアドレスを有する場合は、これらは、デコーダに供給される書き換えストリームにおいて2次元スライス座標(0,0),(1,0),(2,0)に対応するスライスの空間位置の短縮指示にマッピングされるのがよい。新規のサブ・アレイは、以前のサブ・アレイから右に1つのスライスだけシフトされるとき(ここでは、スライスの行は、2次元スライス座標(n+1,n),(n+2,n),(n+3,n)に対応するフル・イメージのアドレスを有する。)、これらは、書き換えストリームにおける2次元スライス座標(1,0),(2,0),(0,0)に対応するスライスの空間位置の短縮指示にマッピングされる。その結果、2次元スライス座標(n+1,n),(n+2,n)に対応するスライスの空間位置のフル・ストリーム指示は、2次元スライス座標(1,0),(2,0)に対応する書き換えアドレスにマッピングされることを維持する。
【0067】
しかしながら、アドレス・マッピングのこの形態は、スライスが、デコード・イメージの順序外で空間的に現れることになるという影響を伴う。このことは、後処理器によって訂正される。後処理器は、デコード・イメージからのスライスの構成可能なマッピングを提供し、スライスが、フル・イメージにしたがいそれらの順序で出力イメージに出現するのを確実にする。つまり、前述の例では、デコード・イメージの2次元スライス座標(0,0),(1,0),(2,0)に対応する短縮アドレスでのスライスの行は、後処理器の出力イメージにおける2次元スライス座標(2,0),(0,0),(1,0)に対応する短縮アドレスにマッピングされる。
【0068】
このことを実装するために、第9のステップ39では、コントローラは、ストリーム前処理器および後処理器を再構成して、所望のマッピングを再構成する。再構成されたマッピングでは、新規のサブ・アレイおよび以前のサブ・アレイの間の重複部におけるスライスは、スライスの空間位置についてそれらマップされた指示を維持する。また、重複部の外部にある新規のサブ・アレイのスライスは、重複部の外部にある以前のサブ・アレイにおけるスライスのうちのスライスの空間位置の指示が割り当てられる。デコード・イメージからのタイルのマッピングが再構成され、スライスの空間位置のオリジナル(フル・イメージの)指示にしたがい空間的な順序をリストアするように再構成される。
【0069】
また、後処理器は、マッピングの結果を別の位置シフトに施して、出力イメージを取得する。例えば、サブ・スライスの位置シフトを提供する。任意には、回転も同様に提供される。第9のステップ39では、コントローラは、後処理器を再構成して、このような位置シフトおよび/または回転にしたがい出力イメージ調整を実行することができる。これらは、再マッピングの形態として見い出され、フル・イメージに対する出力イメージの位置の変更によって引き起こされる。しかし、位置シフトおよび/または回転の全ての調整が、デコード・イメージにおいて選択されたサブ・アレイを変更して、したがってスライスの再マッピングする結果となる訳ではない。
【0070】
実施形態では、ネットワーク・ソース・システムはアクティブ・ビデオ・ストリーム・ソースであり、第9のステップ39は、異なるセットのスライドとそれらに対応するメタ・データとを送信するために、スライスについて指示された選択を変更するコマンドをネットワーク・ソース・システム12に送信することを含む。本実施形態では、第5のステップ45は図4のフロー・チャートに追加されるのがよい。ここでは、ネットワーク・ソース・システムは、このようなコマンドを受信しているかについて検査し、その場合は、ネットワーク・ソース・システムはスライスについて指示された選択を修正する。その結果、スライスについて指示された選択におけるスライスは、第3のステップ43および第4のステップ44において抽出され、また送信されることになる。同期する目的のために、ネットワーク・ソース・システムは、メタ・データの指示を含み、スライスについて修正され示された選択が適用する第1イメージをマーキングする。
【0071】
I−フレーム専用の置換
更なる実施形態では、Iーフレーム専用バージョンが、新規のサブ・アレイのスライスにおいて一時的に送信される。当該スライスは、以前のサブ・アレイの重複部の外部にある。それ自体は知られているように、ビデオ・ストリームを形成するイメージは、ストリームにおける任意の他のイメージに従属して、またはこれに独立してエンコードすることができる。ストリームにおける任意の他のイメージとは独立してエンコードされるイメージは、Iーフレームと称される。このようなイメージのスライスは、Iフレーム・エンコード・スライスと称される。I−フレーム専用でエンコードされるストリームの表現(バージョン)は、ストリームのI−フレーム専用バージョンと称される。1つ以上の他のイメージにしたがって、例えば、このような他のイメージに対する動きベクトルによってエンコードされるイメージは、フレーム間エンコード・イメージと称される。フレーム間エンコード・イメージを含むストリームの表現(バージョン)は、ストリームのフレーム間関係ベース表現またはバージョンと称される。このようなストリームのフレーム間関係ベース表現またはバージョンはまた、ストリームのフレーム間エンコード表現またはバージョンとも称される。それ自体は知られているように、ストリームの表現またはバージョンはまた、例えば、ピクチャ・グループ(GOP)の先頭に、I−フレームを含んでもよい。GOPのフレームは、他のGOPとは独立してデコードすることができる。
【0072】
前述のように、ストレージ・システム120に格納されたビデオ・データは、好ましくは、ビデオ・データのI−フレーム・エンコード・バージョンを、フレーム間関係に基づくエンコード・バージョンと同様に収容する(すなわち、I−フレームと、動きベクトルのような時間的関係に関して、ピクチャ・グループに編成された動き予測フレームとの組み合わせを使用する。)。好ましくは、基準イメージの同一のセット(基準ピクチャ・セット)が両方のバージョンのために用いられる。実施形態では、格納されるストリームは、両方のバージョンの基準ピクチャ・セットを収容するスーパーセットである基準ピクチャ・セットを追加することによって、また、基準ピクチャ・セットへの参照をスーパーセットにおける参照に修正することによって、オリジナルのストリームから生成される。
【0073】
第1の実施形態では、第4のステップ34において、ネットワーク宛先システムは、以前のサブ・アレイとの重複部の外側に位置する新規のサブ・アレイのスライスについてIーフレーム専用バージョンからフレームを取得する。これらスライスのI−フレーム専用バージョンは、フレーム間関係ベース・バージョンがI−フレームを収容するところにフレームが到達するまで取得される。その後に、後方からのフレームが送信される。ネットワーク宛先システムのコントローラは、送信されたピクチャ・グループ(GOP)内のフレームの位置の追跡を続けることによって、このことが発生したときを決定する。これに基づいて、フレーム番号を用いて、次のピクチャ・グループの第1フレームを決定することができる。これから、当該フレーム間関係ベース・バージョンからのフレームの送信が開始される。好ましくは、ネットワーク宛先システムは、以前のサブ・アレイとの重複部の内部に位置する新規のサブ・アレイのスライスのフレーム間エンコード・バージョンを取得する。代替として、I−フレーム専用バージョンは、全てのスライスについて取得される。しかし、このことは帯域幅の使用を増加させる。
【0074】
ネットワーク・ソース・システムがアクティブ・ビデオ・ストリーム・ソースである実施形態では、ネットワーク・ソース・システムは、I−フレーム専用バージョンまたは選択されたスライスのフレーム間関係ベース・バージョンを送るかについて決定する。図6は、この実施形態におけるネットワーク・ソース・システムの動作のフロー・チャートを示す。図4と同じステップには同じラベルが示されている。図4の第3のステップ43は、修正される抽出ステップ63で置換されている。
【0075】
第5のステップ65では、ネットワーク・ソース・システムは、スライスについて指示された選択を変更するコマンドを受信しているかについて検査する。その場合、コントローラは、第6のステップ66を実施する。ここでは、第6のステップ66でのスライスについて指示された選択を修正し、このスライスの送信ステータスを設定する。送信ステータスは、スライスのフレーム間関係ベース・バージョンまたはI−フレーム専用バージョンが送信される必要があるかについて指示するのに用いられる。最初に、各スライスの送信ステータスは、新規のサブ・アレイと以前のサブ・アレイの間でスライスが重複するか否かにしたがって、予測ベース・バージョンまたはI−フレーム専用バージョンを示すように設定される。
【0076】
第6のステップ66の後に、或いは、スライスについて指示された選択が変更されていないときは第5のステップ65の後に、プロセスは、修正抽出ステップ63に戻る。修正抽出ステップ63では、ネットワーク・ソース・システムのコントローラは、現在のフレームについてのスライスのフレーム間関係ベース・バージョンを抽出する。送信ステータスがI−フレーム専用の送信に設定されるスライスのために、コントローラは、現在のフレームについてのスライスのフレーム間関係ベース・バージョンがI−フレームを収容するかについて検査する。このような場合のそれらのスライスのために、コントローラは、送信ステータスを予測ベース・バージョンの送信に設定する。送信ステータスがI−フレーム専用の送信に設定され、現在のフレームについてのフレーム間関係ベース・バーションがI−フレームを収容しないフレームのために、コントローラは、現在のフレームについてのI−フレーム専用バージョンを抽出する。続いて、ステップ44では、I−フレーム専用バージョンを有するNALユニットがそれらスライスのために送信される。そのために、I−フレーム専用バージョンが抽出されており、また、他のスライスのフレーム間関係ベース・バージョンが送信される。このことは、どちらが送信されたとしても、Iフレーム専用バージョンまたはフレーム間関係ベース・バージョンに適用可能なメタ・データを抽出し、また、送信することを含む。
【0077】
ネットワーク・ソース・システムにおいて、スライスは、どのバージョンが送信されたかに従ってデコードされる。このことは、新規のサブ・アレイと以前のサブ・アレイの間の重複部の外部にあるスライスが、第1フレームからデコードされるのを可能にする(ここでは、スライスについて指示された選択が効率的となる。)。また、重複部のスライスについてフレーム間関係ベース・バージョンのデコードを継続するのを可能にする。
【0078】
NALユニットのヘッダがネットワーク宛先システムにおいて書き換えされる実施形態について示してきたが、代替として、ネットワーク・ソース・システムが、適合されたNALLユニットを送信するように構成されてもよいことに留意すべきである。
【0079】
実施形態では、ヘッダの代替バージョン、およびフル・エンコード・ビット・ストリームの全てのスライスのNALユニットのパディング・ビットの数は、ネットワーク・ソース・システム12のストレージ・システム120内のNALユニットごとに格納される。各代替バージョンは、スライスの空間位置の指示における異なる長さに対応する。すなわち、それはパディング・ビットの数を含み、関連する長さを有するスライスの空間位置の指示が用いられるときに、ビデオ・コンテンツ・データがワード境界で開始することになることを確実にする。このような代替バージョンは、オリジナルのビデオ・ビット・ストリームを、スライスの空間位置の指示の異なる長さについてのパディングによって何度も書き換えることによって、例えば、オリジナルのHEVCビット・ストリームに基づいて生成される。このような書き換えは、要求されたサブ・アレイの特定の位置が知られる前に、例えば、メタ・データに基づく要求パディングを決定することによって、またはビット・ストリームを解析することによって行われる。代替として、異なるバージョンは、ストリームが最初にエンコードされるときに、既に生成されていてもよい。
【0080】
少なくとも、フル・ビデオ・イメージにおけるスライスの空間位置の指示のサイズについてのバージョン、および、サブ・アレイについてのスライスの空間位置の指示の1つの標準サイズについてのバージョンが格納される。しかし、これらに加えて、スライスの空間位置の指示の異なる長さについての更に多くのバージョンが、例えば8つの異なるサイズについて、格納されてもよい。ヘッダおよびパディング・ビットの代替バージョンは、同一のビデオ・コンテンツ・データを収容する代替NALユニットの一部としてよい。
【0081】
実施形態では、ネットワーク宛先システムは、サブ・アレイの次元にしたがって、NALユニットについて選択されたバージョンを取得するように構成される。この実施形態では、ネットワーク宛先システムのストリーム前処理器は、NALユニットのスライスの空間位置の指示を置換し、その後に、それらはデコーダに通される。好ましくは、ネットワーク・ソース・システムに格納された代替バージョンは、フル・イメージ内のスライスを区別するために必要とされるスライスの空間位置のオリジナルの指示を収容する。すなわち、バージョンが意図するスライスの空間位置の指示の長さよりも、スライスの空間位置の指示が更に長く、また、そのバージョンに対応のパディング・ビットの数を有するアドレスである。すなわち、ネットワーク・ソース・システムから取得されたバージョンにおいて、ビデオ・データの先頭はワード境界になおもアライメントされる必要はないが、スライスの空間位置の短縮スライス指示による置換の後にアライメントされることになるように、パディング・ビットが選択される。したがって、スライス前処理器142は、NALユニットの取得バージョンからスライスの空間位置のオリジナルの指示を読み取り、スライスの空間位置のこのオリジナルの指示を短縮アドレスにマッピングし、NALユニットの取得バージョンで結果として生じた短縮アドレスを置換し、先頭ポイントに対するNALユニットの取得バージョンの後続の部分を移して、短縮アドレスの更に短い長さを補償することができるように構成される。取得バージョンのパディング・ビットの数は、この結果がビデオ・コンテンツ・データの先頭のアライメントとなるように選択される。
【0082】
代替として、スライスの空間位置の指示の最下位部分(すなわち、任意のサブ・アレイ内でスライスを一意に区別する位置)は、NALユニットのバージョンにおいて格納されるが、更に離れているスライスについても、そのバージョンに関連付けられるスライスの空間位置の指示の長さに対応する長さを有しており、同一である。この場合、ネットワーク宛先システムの前処理器は、それらのフル・アドレスに基づいてネットワーク・ソース・システムからNALユニットを要求する。また、ストリーム前処理器142は、NALユニットからのスライスの空間位置のオリジナルの指示の最下位部分を、短縮アドレスにマッピングするように構成される。
【0083】
図7は、ストレージ・システム120とネットワーク・インタフェース124との間の(ビット)ストリーム生成器70を用いたネットワーク・ソース・システムの実施形態を示す。ストリーム生成器70は、コントローラ122の一部でもよいが、ストリーム生成器70の図示の目的で別個に示されている。また、コントローラ122が全てのユニットに結合されるように示されている。動作コントローラ122は、ネットワーク宛先システム(不図示)からネットワーク・インタフェース124を介して、選択されたサブ・アレイの指示を受信する。それに応答して、コントローラ122は、ネットワーク・ソース・システムから、選択されたNALユニットを有するビデオ・ストリームの送信を発生させる。
【0084】
第1の実施形態では、ストリーム生成器70は、ネットワーク宛先システムについて開示されたストリーム前処理器142に類似したストリーム前処理としてよい。ネットワーク・ソース・システム内の当該ストリーム生成器70は、メタ・データを用いて、ネットワーク宛先システムのストリーム前処理器について説明したような方法で、送信よりも前にNALユニットを書き換えるように構成される。この場合、メタ・データは、ネットワーク宛先システムに送信される必要はなく、また、ネットワーク宛先システムのストリーム前処理器は省略されてもよい。
【0085】
代替の実施形態では、ネットワーク・ソース・システムのストリーム生成器70は、書き換えの一部のみを実行するように構成されてもよい。例えば、ネットワーク・ソース・システムのストリーム生成器70は、スライスの空間位置の指示用のフィールドの後にある、ヘッダの一部の位置を変更して、ヘッダの後にあるビデオ・データのワード境界アライメントを確実にすることができる。これは、スライスの空間位置の指示を書き換えることはなく、また、フル・イメージに関してスライスの空間位置の指示を、単に切り捨てる(truncate)だけである。これは、例えば、複数のスライスが同一のサブ・アレイの一部(この部分は最重要な部分として参照されることになる。)とはなり得ないくらい離れているような複数のスライスの間を区別する部分を省くことによって、行われる。ストリーム前処理器はこれらの指示を書き換えるように構成される。または、後処理器が、選択されたサブ・アレイに関する情報に基づいて、また、切り捨てた異なる指示に対応するサブ・アレイ内のスライスに基づいて、スライスを再マッピングするように構成される。例えば、ネットワーク宛先システムのストリーム前処理器は、スライスの空間位置の指示用のフィールドの後にあるヘッダの一部の位置を変更することなく、スライスの空間位置の指標を置換するように構成される。メタ・データの頻繁な送信は、ネットワーク宛先システムのストリーム前処理器が所定の位置でデータのみを書き換える場合には、省略されてもよい。説明したように、スライスの空間位置の指標における置換指示が用いられ、スライスの空間位置の指示の値の所定のセットを用いてスライスをアドレスする。ここでは、所定のセットは、サブ・アレイの次元に従うが、フル・イメージでのその位置には従わない。
【0086】
実施形態では、ストレージ・システム1200は、ヘッダの代替バージョンと、フル・ビデオ・ストリームの全てのスライスのNALユニットのためのパディング・ビットの数とを格納する。ネットワーク・ソース・システムのコントローラ122またはストリーム生成器70は、ネットワーク宛先システムによって選択されたサブ・アレイの次元に依存する異なるバージョンの間で選択するように構成される。ストリーム生成器70は、ヘッダの代替バージョンと、選択されたスライス・アドレス長のパディング・ビットの数をストレージ・システム120から取得した後に、送信のためにネットワーク・インタフェース1244に向けて、選択されたスライスのためのネットワーク・レイヤ・アプリケーション・ユニットについて選択されたバージョンのみを通するように構成される。
【0087】
本実施形態では、ネットワーク宛先システムのストリーム前処理器は、デコーダに通されるのよりも前に、NALユニットにおけるスライスの空間位置の指示を置換する。代替の実施形態では、これは、ストリーム生成器によって行われる。しかし、このことは、ソース側の計算負担を増加させることになる。何故ならば、ストリーム・ジェネレータは宛先に特有のアドレス・マッピングを適用する必要があるからである。この場合、ヘッダの代替バージョンおよびパディング・ビットの数は、完全な代替NALユニットの一部として格納される必要はない。ストリーム生成器70は、ネットワーク抽象化レイヤ(NAL)ユニットのためのビデオ・コンテンツ・データを取得する。これは、ストレージ・システム122からのスライスの空間的位置の指示の全ての長さが同一である、そして、ビデオ・コンテンツ・データを、送信に使用するために、選択されるスライス・アドレス長の抽出されたヘッダに付加する。
【0088】
例示の目的で、HEVC規格に関して実施形態を説明してきた。しかしながら、本発明は、この規格に限定されないことが認められて然るべきである。HEVC規格は、単に、エンコード・ビデオ・ストリームの種別を例示するにすぎない。ここでは、ネットワーク抽象化レイヤを用いて、フル・ビデオ・イメージがエンコードされ、独立してデコード可能なスライスの空間アレイに分割される。ネットワーク抽象化レイヤは、ヘッダによって先行されるスライスのそれぞれ1つについてのビデオ・コンテンツ・データを各々収容する。ヘッダは、第1ビデオ・ストリームに関するスライスの各1つに関連するパラメータを含む。HEVC規格は、単に、エンコードの方法の例にすぎない。ここでは、それぞれ独立してデコード可能なスライスがイメージ内のスライスの位置について直接的または間接的な指示を用いて、イメージ内の(領域の)それぞれの空間位置に関連付けることができる。スライスの識別情報を用いることは、単に、スライスの位置についてのこのような指示の例にすぎない。座標、シーケンス番号等のような他の指示が用いられてもよい。
【0089】
更に、本出願では、インターネットのようなネットワークを通じてネットワーク・ソースおよび宛先デバイスによるネットワーク抽象化レイヤ・ユニットの通信に関して説明してきた。しかしながら、代替のソースおよび宛先デバイスは、他のネットワークを通じて、またはネットワークではない通信チャネルを介して(例えば、有線若しくは無線のポイント・ツー・ポイントの通信チャネル、通信バス等を介して)通信するのに使用されることが認められて然るべきである。
図1
図2
図3
図4
図5
図6
図7