IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ネットフリックス・インコーポレイテッドの特許一覧

特表2024-507157複合的にメディアの格納と取得を行うための技術
<>
  • 特表-複合的にメディアの格納と取得を行うための技術 図1
  • 特表-複合的にメディアの格納と取得を行うための技術 図2
  • 特表-複合的にメディアの格納と取得を行うための技術 図3
  • 特表-複合的にメディアの格納と取得を行うための技術 図4
  • 特表-複合的にメディアの格納と取得を行うための技術 図5
  • 特表-複合的にメディアの格納と取得を行うための技術 図6A
  • 特表-複合的にメディアの格納と取得を行うための技術 図6B
  • 特表-複合的にメディアの格納と取得を行うための技術 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-16
(54)【発明の名称】複合的にメディアの格納と取得を行うための技術
(51)【国際特許分類】
   H04N 21/235 20110101AFI20240208BHJP
   H04N 21/231 20110101ALI20240208BHJP
   G11B 20/10 20060101ALI20240208BHJP
   G11B 27/00 20060101ALI20240208BHJP
   G06F 16/28 20190101ALI20240208BHJP
【FI】
H04N21/235
H04N21/231
G11B20/10 321Z
G11B27/00 B
G06F16/28
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023548673
(86)(22)【出願日】2022-02-10
(85)【翻訳文提出日】2023-10-05
(86)【国際出願番号】 US2022016035
(87)【国際公開番号】W WO2022173991
(87)【国際公開日】2022-08-18
(31)【優先権主張番号】17/175,338
(32)【優先日】2021-02-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506267178
【氏名又は名称】ネットフリックス・インコーポレイテッド
【氏名又は名称原語表記】NETFLIX, INC.
【住所又は居所原語表記】121 Albright Way Los Gatos, California 95032 UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】100073184
【弁理士】
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100175042
【弁理士】
【氏名又は名称】高橋 秀明
(74)【代理人】
【識別番号】100163050
【弁理士】
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100224775
【弁理士】
【氏名又は名称】南 毅
(72)【発明者】
【氏名】ニュートン,クリストファー
(72)【発明者】
【氏名】モーション,カレーニナ ガルシア
(72)【発明者】
【氏名】ヴィシュワナタン,ヴィノッド
【テーマコード(参考)】
5B175
5C164
5D044
5D110
【Fターム(参考)】
5B175AA02
5C164FA06
5C164MB13S
5C164MB44S
5C164SA21S
5C164SB08P
5C164SB36P
5C164SC01S
5D044AB01
5D044BC01
5D044CC04
5D044DE12
5D044DE37
5D110AA13
5D110DA02
5D110DA04
5D110DA11
(57)【要約】
一実施形態に記載の技術は、データ領域を要求するリクエストを受信するステップを含んでいる。このデータ領域は、ファイルセットにまたがって格納されている符号化版のメディアタイトルに含まれるものである。また、本技術は、ファイルエクステントインデックスに基づいて、当該ファイルセットに含まれる1つ以上のファイルを特定するステップをさらに含んでいる。なお、ファイルエクステントインデックスは、ファイルセットに含まれる各ファイルの識別子を、当該ファイルに格納されているとともに符号化版に含まれている所定のデータ領域に対応付けるマッピングを行うものである。また、本技術は、(1つ以上の)ファイルからデータ領域を取得するステップと、リクエストに対するレスポンスで、取得したデータ領域を送信するステップと、をさらに含んでいる。取得したデータ領域の少なくとも一部は、1つ以上のファイルのそれぞれに格納されている所定のデータ領域の範囲内に収まっている。
【特許請求の範囲】
【請求項1】
メディアタイトルを再生するためにこれにアクセスするための、コンピュータで実装される方法であって、
クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、
第1のファイルエクステントインデックスに基づいて、前記第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、
前記1つ以上のファイルから前記第1のデータ領域を取得するステップと、
前記第1のリクエストに対するレスポンスで、前記第1のデータ領域を前記クライアントデバイスに送信するステップと、
を含み、
前記第1のデータ領域は、第1の符号化版の前記メディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記1つ以上のファイルは、前記第1のファイルセットに含まれ、
前記第1のファイルエクステントインデックスは、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されているとともに前記第1の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のファイルのそれぞれから、前記第1のデータ領域の少なくとも一部が取得され、
該第1のデータ領域の該少なくとも一部は、該ファイルに格納されている前記所定のデータ領域の範囲内に収まっている、コンピュータで実装される方法。
【請求項2】
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第1のファイルエクステントインデックスと、前記第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、前記第2のデータ領域を取得するステップと、
をさらに含み、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
前記第1のセグメントインデックスは、前記第1の符号化版における1つ以上の時間オフセットを、前記第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、請求項1に記載のコンピュータで実装される方法。
【請求項3】
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のセグメントインデックスにおいて、前記第1の時間オフセットが対応付けられている前記第1のファイルにおける第1のオフセットを特定するステップと、
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得するステップと、
を含む、請求項2に記載のコンピュータで実装される方法。
【請求項4】
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のファイルエクステントインデックスに基づいて、前記第2のデータ領域の始まりが前記第1のファイルにあり、前記第2のデータ領域の終わりが第2のファイルにあることを特定するステップと、
前記第1のファイルから前記第2のデータ領域の1番目の部分を取得するステップと、
前記第2のファイルから前記第2のデータ領域の2番目の部分を取得するステップと、
を含み、
前記第2のデータ領域の前記1番目の部分は、前記第1のセグメントインデックスにおいて前記第1の時間オフセットに対応付けられている第1のオフセットから始まり、前記第1のファイルエクステントインデックスにおいて前記第1のファイルに対する第1の識別子に対応付けられている第2のオフセットで終わる部分であり、
前記第2のデータ領域の前記2番目の部分は、前記第1のファイルエクステントインデックスにおいて前記第2のファイルに対する第2の識別子に対応付けられている第3のオフセットから始まり、前記第2のファイルに対する第2のセグメントインデックスにおいて前記第2のデータ領域の終端を画定する第2の時間オフセットに対応付けられている第4のオフセットで終わる部分である、請求項2に記載のコンピュータで実装される方法。
【請求項5】
第2のデータ領域を要求する第2のリクエストを受信するステップと、
第2のファイルエクステントインデックスに基づいて、前記第2のデータ領域を取り出す際にアクセスする1つ以上のさらなるファイルを特定するステップと、
前記1つ以上のさらなるファイルから前記第2のデータ領域を取得するステップと、
をさらに含み、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記第2の符号化版の前記メディアタイトルは、前記第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されており、
前記1つ以上のさらなるファイルは、前記第2のファイルセットに含まれ、
前記第2のファイルエクステントインデックスは、前記第2のファイルセットに含まれる各さらなるファイルの識別子を、該さらなるファイルに格納されているとともに前記第2の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のさらなるファイルのそれぞれから、前記第2のデータ領域の少なくとも一部が取得され、
該第2のデータ領域の少なくとも一部は、該さらなるファイルに格納されている前記所定のデータ領域の範囲内に収まっている、請求項1に記載のコンピュータで実装される方法。
【請求項6】
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、
前記第1のデータ領域における開始オフセットを、前記第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、
前記第1のファイルから前記第1のデータ領域の1番目の部分を取得するステップと、
を含み、
前記1番目の部分は、前記第1のファイルにおける前記第1のオフセットから始まる部分である、請求項1に記載のコンピュータで実装される方法。
【請求項7】
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、第2のファイルから前記第1のデータ領域の2番目の部分を取得するステップをさらに含み、
前記2番目の部分は、前記第2のファイルにおける第2のオフセットで終わる部分であり、
前記第2のオフセットは、前記第1のデータ領域の終端に対応するものである、請求項6に記載のコンピュータで実装される方法。
【請求項8】
前記第1のデータ領域における前記開始オフセットを、前記第1のファイルにおける前記第1のオフセットに変換するステップが、
前記開始オフセットと、前記第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数とに基づいて、前記第1のファイルを割り出すステップと、
前記開始オフセットと前記1つ以上のデータ領域が占める前記バイト数との差分に基づいて、前記第1のオフセットを計算するステップと、
を含む、請求項6に記載のコンピュータで実装される方法。
【請求項9】
前記第1のファイルセットが、
前記メディアタイトルの1番目の部分を第1の言語で表したものを収めた第1のファイルと、
前記メディアタイトルの前記1番目の部分を第2の言語で表したものを収めた第2のファイルと、
を含んでいる、請求項1に記載のコンピュータで実装される方法。
【請求項10】
前記第1のファイルエクステントインデックスが、前記第1の符号化版の前記メディアタイトルの長さ情報を含んでいる、請求項1に記載のコンピュータで実装される方法。
【請求項11】
命令を格納する非一時的なコンピュータ可読媒体であって、プロセッサによって実行された場合に、前記命令は前記プロセッサに、
クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、
第1のファイルエクステントインデックスと、1つ以上のファイル識別子を1つ以上のファイルの場所に対応付ける1つ以上のファイルマッピングとに基づいて、前記第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、
前記1つ以上のファイルから前記第1のデータ領域を取得するステップと、
前記第1のリクエストに対するレスポンスで、前記第1のデータ領域を前記クライアントデバイスに送信するステップと、
を実行させ、
前記第1のデータ領域は、第1の符号化版のメディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記1つ以上のファイルは、前記第1のファイルセットに含まれ、
前記第1のファイルエクステントインデックスは、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されているとともに前記第1の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のファイルのそれぞれから、前記第1のデータ領域の少なくとも一部が取得され、
該第1のデータ領域の該少なくとも一部は、該ファイルに格納されている前記所定のデータ領域の範囲内に収まっている、非一時的なコンピュータ可読媒体。
【請求項12】
前記命令が前記プロセッサに、
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第1のファイルエクステントインデックスと、前記第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、前記第2のデータ領域を取得するステップと、
をさらに実行させ、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
前記第1のセグメントインデックスは、前記第1の符号化版における1つ以上の時間オフセットを、前記第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のセグメントインデックスにおいて、前記第1の時間オフセットが対応付けられている前記第1のファイルにおける第1のオフセットを特定するステップと、
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得するステップと、
を含む、請求項12に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記第1のファイルが、第1のセグメントと第2のセグメントとを含み、
前記第1のセグメントから、前記第2のデータ領域の前記少なくとも一部を取得し、
前記第2のセグメントには、第2の符号化版の前記メディアタイトルに含まれるコンテンツが格納されている、請求項12に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記命令が前記プロセッサに、
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第2の符号化版の前記メディアタイトルに対する第2のファイルエクステントインデックスに基づいて、1つ以上のさらなるファイルから前記第2のデータ領域を取得するステップと、
をさらに実行させ、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記1つ以上のさらなるファイルは、前記第1のファイルセットとオーバーラップしている第2のファイルセットに含まれている、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項16】
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、
前記第1のデータ領域における開始オフセットを、前記第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、
前記第1のファイルから前記第1のデータ領域の1番目の部分を取得するステップと、
第2のファイルから前記第1のデータ領域の2番目の部分を取得するステップと、
を含み、
前記1番目の部分は、前記第1のファイルにおける前記第1のオフセットから始まる部分であり、
前記第2のファイルは、前記第1のファイルエクステントインデックスにおいて前記第1のファイルの次のファイルである、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記第1のデータ領域における前記開始オフセットを、前記第1のファイルにおける前記第1のオフセットに変換するステップが、
前記第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数に基づいて、前記第1のファイルを割り出すステップと、
前記開始オフセットと前記1つ以上のデータ領域が占める前記バイト数との差分に基づいて、前記第1のオフセットを計算するステップと、
を含む、請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記所定のデータ領域が、前記第1のファイルエクステントインデックス内の1つ以上のバイトオフセットで指定されている、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記第1のファイルエクステントインデックスが、前記第1の符号化版の前記メディアタイトルの長さ情報と、前記第1の符号化版の前記メディアタイトルの更新時刻と、ファイル拡張子と、のうちの少なくとも1つを含んでいる、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項20】
メディアタイトルを再生するためにこれを取得するための、コンピュータで実装される方法であって、
第1のデータ領域を要求する第1のリクエストをサーバマシンに送信するステップと、
前記第1のリクエストに対するレスポンスで、前記サーバマシンから前記第1のデータ領域を受信するステップと、
前記第1のデータ領域に対応するメディアコンテンツを再生用に出力するステップと、
を含み、
前記第1のデータ領域は、第1の符号化版の前記メディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記第1のデータ領域は、前記第1のファイルセットに含まれる1つ以上のファイル内に存在し、
第1のファイルエクステントインデックスにより、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる、方法。
【請求項21】
第2のデータ領域を要求する第2のリクエストを前記サーバマシンに送信するステップと、
前記第2のリクエストに対するレスポンスで、前記サーバマシンから前記第2のデータ領域を受信するステップと、
をさらに含み、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
第1のファイルに対する第1のセグメントインデックス内において、前記第1の時間オフセットは、前記第1のファイルにおける第1のオフセットに対応付けられている、請求項20に記載のコンピュータで実装される方法。
【請求項22】
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得する、請求項21に記載のコンピュータで実装される方法。
【請求項23】
第2のデータ領域を要求する第2のリクエストを前記サーバマシンに送信するステップと、
前記第2のリクエストに対するレスポンスで、前記サーバマシンから前記第2のデータ領域を受信するステップと、
をさらに含み、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記第2の符号化版の前記メディアタイトルは、第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されており、
前記第2のデータ領域は、前記第2のファイルセットに含まれる1つ以上のさらなるファイル内に存在し、
第2のファイルエクステントインデックスにより、前記第2のファイルセットに含まれる各さらなるファイルの識別子を、該さらなるファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる、請求項20に記載のコンピュータで実装される方法。
【請求項24】
前記第1のデータ領域の少なくとも一部を、前記第1のファイルセットに含まれる前記第1のファイルにおける第1のオフセット以降から取得し、
前記第1のオフセットが、前記第1のデータ領域の開始オフセットに対応している、請求項20に記載のコンピュータで実装される方法。
【請求項25】
前記第1のファイルセットが、
前記メディアタイトルの或る部分のオリジナル版を収めた第1のファイルと、
前記メディアタイトルの前記或る部分の別版を収めた第2のファイルと、
を含んでいる、請求項20に記載のコンピュータで実装される方法。
【請求項26】
前記別版が、前記オリジナル版に対する編集と、前記或る部分の地域版と、コンテンツに対するレイティング基準を満たす版と、のうちの少なくとも1つを含む、請求項25に記載のコンピュータで実装される方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2021年2月12日を出願日とする米国特許出願第17/175338号の利益を主張するものであり、その内容は引用することによって本明細書に組み入れられるものとする。
【技術分野】
【0002】
本開示の実施形態は、概して、メディアストリーミングを行うためのコンピュータサイエンス及びコンピュータネットワークに関し、より詳細には、複合的にメディアの格納と取得を行うための技術に関する。
【背景技術】
【0003】
一般に、映像ストリーミングサービスは、様々なメディアタイトルの1つ以上のライブラリへのアクセス権をユーザに提供するように設計されている。ユーザが所定のメディアタイトルにアクセスする際には、通常、ユーザは、ノート型コンピュータ、スマートテレビ、タブレット型コンピュータなどのエンドポイントデバイスを介して、映像ストリーミングサービスへの接続を行う。エンドポイントデバイスには、ユーザが1つ以上のライブラリからメディアタイトルの選択を行えるように構成されたグラフィカルユーザインタフェース(GUI)が表示されており、このGUIを介して、ユーザは所定のメディアタイトルを選択することができる。そして、所定のメディアタイトルが選択されると、メディアタイトルをホストしているサーバマシンからエンドポイントデバイスに、当該メディアタイトルに関連付けられたメディアコンテンツがストリーミングされる。一般に、メディアコンテンツは、映像と字幕と音声のうちの少なくともいずれかを含む、特定のビットレートや符号化形式などの符号化設定で符号化されたデータで構成された、複数のフレームで構成されている。ストリーミング中のメディアコンテンツの符号化設定は、ネットワークの状態やユーザの好みなどのパラメータに基づいてさらに変更される場合もある。そして、エンドポイントデバイス上で実行されるストリーミングアプリケーションは、サーバマシンに対してこれらのフレームを、バイトオフセット領域や時間オフセット領域の形で要求するリクエストを行うことができる。そして、エンドポイントデバイス上で、メディアタイトルにおける所定の領域のメディアコンテンツを再生している間に、ストリーミングアプリケーションがサーバマシンに対して次の領域のメディアコンテンツをリクエストしてこれを受信することにより、当該メディアタイトルの再生を途切れさせることなく続行することができるのである。
【0004】
種々の実施態様のストリーミングサービスでは、多くの場合、所定のメディアタイトルについて、エンドポイントデバイスごとに異なる版をストリーミングすることにより、所定のシーンなどメディアタイトルの一部に存在するコンテンツの差異に対応している。例えば、長編映画には、テロップを表示したシーンが数多く含まれる場合があり、このテロップによって、映画の登場人物、様々な登場人物の間で送受信されるメッセージ、特定の登場人物がコンピュータやモバイルデバイス上で閲覧したコンテンツについての情報や、映画の視聴者に対して物語の流れを補足する追加情報が提供されるが、このようなテロップは、通常、映画の登場人物が話す言語で表示されるとともに、映画内でのテロップの配置や、フォント、サイズ、そして全体的な「見た目(look)」を製作チームが制御できるようにするため、(字幕に含まれるのではなく)映画自体に「焼き付け(burned)」られている。そのようなシナリオでは、当該映画の吹き替え言語ごとに、これらの特定のシーンセットに対してローカライズ済のテロップを付けた異なるシーンセットが必要となり、よって、吹き替え言語ごとに異なる版の映画を生成する必要がある。
【0005】
従来型のストリーミングアプリケーションの中には、所定のメディアタイトルの再生中に特定の時点で版の切り替えを行うのではなく、1つの版のメディアタイトルを最初から最後まで取得して再生することしかできないものもある。引き続き上記の例を用いて説明すると、従来型のストリーミングアプリケーションは、或る言語に特化した版の映画を表す「再生タイトル(playback title)」に対するアダプティブビットレート(adaptive bitrate:ABR)ラダー内であれば、ファイルの切り替えを行うことができる。しかしながら、ユーザが映画の再生を停止して、従来型のストリーミングアプリケーション内で映画の言語設定を手動で変更してから、新たな言語設定で映画再生を再開するのでない限り、映画内の非ローカライズ映像コンテンツを含む第1の再生タイトルと、映画内のローカライズ版の映像コンテンツサブセットを含む第2の再生タイトルとの間で切り替えを行うことはできない。
【0006】
このような種類の従来型ストリーミングアプリケーションに対応するため、映像ストリーミングサービスでは、所定のメディアタイトルの各版を、当該版のメディアタイトルを全編再生するのに必要な映像コンテンツのすべてを含んだ独立したファイルとして提供する場合があった。引き続き上記の例を用いて説明すると、全上映時間が3時間を超える長編映画が、ローカライズ済のテロップを付けたシーン(又はシーンの一部の部分)を20カ所含んでいるが、その上映時間が10分にも満たないという場合が考えられる。また、この映画の上記のシーン(又はシーンの一部の部分)に対するローカライズ版が30本用意され、30種類の言語のテロップを、あらゆる符号化ビットレートと符号化形式で処理する場合が考えられる。その場合、それぞれの言語へのローカライズを行った各シーンセットを、映画内の非ローカライズシーンと一緒にパッケージ化することにより、言語と符号化ビットレートと符号化形式の所定の組み合わせに対してそれぞれ1つのローカライズファイルが作成される。これにより、従来型のストリーミングアプリケーション上で、このローカライズファイルを端から端まで取得して再生することが可能となるのである。
【0007】
しかし、上記の手法には欠点があった。従来型のストリーミングアプリケーションからのリクエストに対処するために、メディアタイトルの版ごとにその完全なコピーを格納すれば、メディアタイトルの複数の版に共通する映像コンテンツが重複して複製されることになり、計算や記憶のためにかなりのリソースを消費する恐れがあったのである。引き続き上記の例を用いて説明すると、長編映画において、ローカライズされていないシーンが消費する容量は、複数の符号化ビットレートと符号化形式の設定セット全体で400ギガバイト(GB)に及ぶ一方、これらの符号化ビットレートと符号化形式の設定全体で必要とされる、ローカライズを施した所定のシーン(又はシーンの一部の部分)セットが消費する容量は、数GBに満たない場合が考えられる。その場合、上記の手法によれば、当該映画の所定のローカライズ版専用のローカライズを施したシーンの数はわずかであるのに、これらのシーンをローカライズされていない映像コンテンツと一緒に符号化して、1つの映像ファイルとしてパッケージ化することになる。上記の例のように、30種類の言語に対応する場合には、当該映画の30種類のローカライズ版すべてをサポートするために、12テラバイト(TB)を上回る映像コンテンツを符号化して、これを様々なサーバマシンに格納しておく必要がある。これら30種類のローカライズ版の映像コンテンツの大部分は同じであるにもかかわらず、である。
【発明の概要】
【発明が解決しようとする課題】
【0008】
以上の説明から明らかなように、当技術分野では、エンドポイントデバイスに映像コンテンツのストリーミングを行う際に映像コンテンツの格納と取得を行うための、より効果的な技術が必要とされている。
【課題を解決するための手段】
【0009】
一実施形態では、メディアタイトルを再生するためにこれにアクセスするための技術を規定している。本技術は、クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップを含んでいる。第1のデータ領域は、第1の符号化版のメディアタイトルに含まれている。第1の符号化版のメディアタイトルは、第1のファイルセットにまたがって格納されている。また、本技術は、第1のファイルエクステントインデックスに基づいて、第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップをさらに含んでいる。当該1つ以上のファイルは、第1のファイルセットに含まれている。第1のファイルエクステントインデックスは、第1のファイルセットに含まれる各ファイルの識別子を、当該ファイルに格納されているとともに第1の符号化版のメディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものである。また、本技術は、上記の1つ以上のファイルから第1のデータ領域を取得するステップをさらに含んでいる。当該1つ以上のファイルのそれぞれから、第1のデータ領域の少なくとも一部が取得される。第1のデータ領域の当該少なくとも一部は、各ファイルに格納されている上記所定のデータ領域の範囲内に収まっている。また、本技術は、第1のリクエストに対するレスポンスで、第1のデータ領域をクライアントデバイスに送信するステップをさらに含んでいる。
【発明の効果】
【0010】
先行技術に対する本開示の技術の技術的優位性の1つとして、本開示の技術により、複数の版のメディアタイトル間における映像コンテンツの重複が低減される点が挙げられる。そのために、本開示の技術では、所定の映画のすべての版に共通する映像コンテンツについて、同一の映像コンテンツを複数のファイルに重複して複製するのではなく、共通の映像コンテンツのコピーを1つだけ格納できるようにしている。従って、本開示の技術によれば、ストリーミングのために複数の版のメディアタイトルの符号化や格納を行う際に消費される計算や記憶のリソースが抑えられる。また、先行技術に対する本開示の技術の他の技術的優位性として、所定の版のメディアタイトルの最初から最後までを符号化してパッケージ化する方式をとる先行技術とは異なり、本開示の技術では、所定の版のメディアタイトルの作成や変更を、効率的なモジュール方式で行うことができる点も挙げられる。これらの技術的優位性により、先行技術の手法に対する1つ以上の技術的改良が得られる。
【0011】
以上、本発明の概念を簡単に要約したが、上記の種々の実施形態の各特徴を詳細に理解することができるように、本発明の概念を、種々の実施形態を参照して、より具体的に説明する。また、それら実施形態の一部は、添付の図面にも図示している。しかしながら、添付の図面は、本発明の概念の代表的な実施形態を例示するものに過ぎず、従って、本開示の範囲をいかなる意味においても限定するものと見なされるべきものではなく、同様の効果を有する他の実施形態も存在することに留意されたい。
【図面の簡単な説明】
【0012】
図1】種々の実施形態のうちの1つ以上の態様を実施するように構成されたネットワークインフラを示す図
図2】種々の実施形態に係る、図1のネットワークインフラに関連して実装することが可能なコンテンツサーバのブロック図
図3】種々の実施形態に係る、図1のネットワークインフラに関連して実装することが可能な制御サーバのブロック図
図4】種々の実施形態に係る、図1のネットワークインフラに関連して実装することが可能なエンドポイントデバイスのブロック図
図5】種々の実施形態に係る、メディアコンテンツを要求するリクエストが、図2に示すサーバアプリケーションによってどのように処理されるかを示す図
図6A】種々の実施形態に係る、或る版のメディアタイトルを再生する際に利用可能な例示的なデータ構造セットを示す図
図6B】種々の実施形態に係る、メディアコンテンツを要求するリクエストが、図6Aに示す例示的なデータ構造セットを利用してどのように処理されるかを示す図
図7】種々の実施形態に係る、メディアタイトルを再生するためにこれにアクセスするための方法ステップを示すフロー図
【発明を実施するための形態】
【0013】
以下の説明では、種々の実施形態をより詳細に理解できるよう、具体的な詳細を数多く示している。しかし、当業者であれば、これらの具体的な詳細の1つ以上を欠いても、本発明の概念を実施できることは明らかであろう。
【0014】
映像ストリーミングサービスは、映画やテレビ番組などの高画質のデジタル映像コンテンツを視聴者に配信するものである。ストリーミングコンテンツの再生を、或る1つの映像の最初から最後まで行う従来型の映像ストリーミングアプリケーションをサポートするためには、所定のメディアタイトルについて、その様々に異なる版の全編を、版ごとに別のファイル内に格納する場合がある。その場合、各ファイルには、その版のメディアタイトルに特有の映像コンテンツ部分と、複数の版のメディアタイトル間で同一の映像コンテンツ部分(通常は、後者の映像コンテンツ部分の方がはるかに大きい)が含まれ得る。本明細書において、1つの「ファイル(file)」は、対応する版のメディアタイトルについて、様々なビットレートで符号化した映像コンテンツを含んでおり、これにより、当該版のメディアタイトルのアダプティブビットレート(ABR)ストリーミングをサポートしている。そして、従来型のストリーミングアプリケーションで或る版のメディアタイトルを再生する際には、その版に対応するファイルのバイトオフセット領域及び/又は時間オフセット領域を、ファイルの冒頭から順に連続した領域で、映像ストリーミングサービスに対してリクエストし続け、リクエストした領域のコンテンツを受信順に再生し、ファイルの終わりに達したときに再生を中止することによって、メディアタイトルを再生している。
【0015】
例えば、映像ストリーミングサービスにより、30種類のローカライズ版で長編映画を提供することができる。各ローカライズ版の長編映画は、対応する言語で吹き替えが行われるとともに、その言語のテロップ(on-screen text)が付いた1つ以上のシーンを含むことができる。テロップによって、映画の登場人物、様々な登場人物の間で送受信されるメッセージ、特定の登場人物がコンピュータやモバイルデバイス上で閲覧したコンテンツについての情報や、映画の視聴者に対して物語の流れを補足する追加情報を提供することができる。このようなテロップは、通常、映画の登場人物が話す言語で表示されるとともに、映画内でのテロップの配置や、フォント、サイズ、そして全体的な「見た目」を製作チームが制御できるようにするため、(字幕に含まれるのではなく)映画自体に「焼き付け」られている。そして従来は、このようなテロップが付けられたローカライズ版のシーンを、その映画の残りのシーンと一緒にパッケージ化することにより、1つのローカライズ版に対して1つのローカライズファイルを作成し、これにより、従来型の映像ストリーミングアプリケーション上で、このローカライズファイルを端から端まで取得して再生できるようにしていた。従って、クライアントデバイスに対して複数言語で映画配信を行うサーバは、複数のファイルを(それらのファイルに含まれる映像コンテンツの大部分は同じであるにもかかわらず)格納することになり、それらのファイルで数TBの記憶域を占有していた。
【0016】
そこで、様々に異なる版のメディアタイトルの間で重複したコンテンツを符号化して格納することに伴うリソースのオーバーヘッドを低減するため、本開示の技術では、複数の版のメディアタイトルに関連するコンテンツを、1つ以上の「パーツ(component)」ファイルや各ファイル内の「パーツ」セグメントに格納する。メディアタイトルに含まれる各版のシーン(又は、他の映像コンテンツ部分)のコピーは、これらのファイルに1つだけ含まれており、同一の映像コンテンツを複数のファイルに重複して複製することはない。例えば、或る映画の原語版の映像コンテンツを含む「ベース(base)」となる版の映画を、1つのファイルに格納することができる。そして、当該映画に含まれる様々なローカライズ版のシーン(又は、ローカライズ版の他の映像コンテンツ部分)は、複数の他のファイルに格納することができる。ローカライズ版を格納したファイルはそれぞれ、このローカライズ版の映画用のローカライズを施した映像コンテンツを格納する1つ以上のデータセグメントを備えており、各データセグメントには、ローカライズを施した映像コンテンツ「パーツ」(例えば、当該映画における数秒又は数分にわたる連続映像)が収められている。他にも、例えば、1つのファイルに、「ベース」となる版の映画と、これに加えて、当該映画におけるすべてのローカライズ版の映像コンテンツとを格納することもできる。また、3つ目の例として、第1のファイルに「ベース」となる版の映画を格納し、第2のファイルに当該映画におけるすべてのローカライズ版の映像コンテンツを格納することもできる。
【0017】
また、本開示の技術では、ファイル又はセグメントと組み合わせて、多数のインデックス構造も利用して、映像ストリーミングアプリケーションからの、メディアタイトルのコンテンツを要求するリクエストの処理を行う。インデックス構造は、多数のファイルマッピングを含んでおり、このファイルマッピングにより、メディアタイトルの映像コンテンツを格納しているファイルの識別子を、ファイルのパスに対応付けている。ファイルシステムにおけるファイルの場所は、このパスを利用して特定することができる。また、インデックス構造は、ファイルエクステントインデックスも含んでいる。所定の版のメディアタイトルの映像コンテンツが、複数のファイル及び/又は同一ファイル内の複数の非連続セグメントにまたがって格納されている場合に、当該版の映像コンテンツはこのファイルエクステントインデックスを利用して取得される。ファイルエクステントインデックスは、対応する版のメディアタイトルの識別子と、当該版に関するメタデータと、当該版に含まれる映像コンテンツを格納するファイルの識別子と、を含んでいる。ファイルエクステントインデックスの中では、各ファイル識別子が、当該ファイル内のオフセット領域に対応付けられている。オフセット領域は、当該版の再生中にそのファイルから取得するべき映像コンテンツ部分を表している。また、ファイルエクステントインデックスにおける、複数のファイル識別子とこれに対応するオフセット領域とをそれぞれ対応付けるマッピングの並び順により、当該版のメディアタイトルを端から端まで再生する際に、どの順序で映像コンテンツを取得するべきかを示している。
【0018】
例えば、或る映画の仏語版に対するファイルエクステントインデックスは、まず仏語版に対する識別子である第1の識別子を含み、その後に3つのマッピングを含むことができる。この3つのマッピングは、「ベース」となる版である映画の英語版に対する識別子である第2の識別子をこのベース版を収めている第1のファイルにおける第1のバイトオフセット領域に対応付ける1番目のマッピングと、当該映画の1つ以上のシーンの仏語版を収めている第2のファイルに対する識別子である第3の識別子を第2のファイルにおける第2のバイトオフセット領域に対応付ける2番目のマッピングと、第2の識別子を第1のファイルにおける第3のバイトオフセット領域に対応付ける3番目のマッピングと、をこの順に含んで構成されている。当該映画の仏語版を端から端まで通して再生する際には、仏語版に対する識別子である第1の識別子で表される仮想的な「ファイル」から映像コンテンツを連続したバイト領域で要求するリクエストが、従来型の映像ストリーミングアプリケーションから行われる。サーバは、第1の識別子に一致するファイルエクステントインデックスを特定し、このファイルエクステント内のマッピングを利用して、まず第1のファイルにおける第1のバイトオフセット領域からデータを返し、次に第2のファイルにおける第2のバイトオフセット領域からデータを返し、次に第1のファイルにおける第3のバイトオフセット領域からデータを返すことにより、リクエストを処理する。換言すれば、サーバは、ファイルエクステントインデックスを利用して、複数のファイルに由来する様々に異なる領域のデータをつなぎ合わせて、リクエストに対するレスポンスで返しているが、従来型の映像ストリーミングアプリケーションにとっては、返されたデータが同一のファイルから連続した「チャンク(chunk)」で読み取ったデータのように映るように、当該データを返すのである。
【0019】
また、インデックス構造は、時間オフセットを所定のファイル内のバイトオフセットに変換するセグメントインデックスをさらに含んでいる。リクエストが、要求している映像コンテンツを(バイトオフセット領域ではなく)時間オフセット領域で指定している場合に、このセグメントインデックスを利用してリクエストを処理することができる。映像ストリーミングアプリケーションは、メディアタイトルの再生位置を示す時間を動かす「シーク(seek)」操作又は「スクラブ(scrub)」操作を行う場合に、このような種類のリクエストを出す場合がある。
【0020】
いくつかの実施形態では、インデックス構造を利用して、新たな版のメディアタイトルの作成や既存の版のメディアタイトルの変更を効率的に行うこともできる。例えば、映像ストリーミングサービスに或る映画の新たな版を追加する際には、1つ以上の新規ファイルに、当該新版専用の映像コンテンツを投入するステップと、この新規ファイルの識別子を新規ファイルのパスにそれぞれ対応付けるマッピングを行うステップと、この新規ファイル内において当該映像コンテンツが占めるバイト領域へのマッピングと、当該映画の「ベース」版を収めている1つ以上の他のファイルにおいて他の映像コンテンツが占めるバイト領域へのさらなるマッピングとを有する新規ファイルエクステントインデックスを作成するステップと、により、新版の追加を行うことができる。この新規ファイルエクステントインデックスには、第1のファイル識別子を当該映画の新版における差し替え版のシーンが占める第1のデータ領域に対応付ける第1のマッピングを、第2のファイル識別子を当該映画の「ベース」となる版におけるオリジナル版のシーンが占める第2のデータ領域に対応付ける第2のマッピングの代わりに含めることができる。そして、エンドポイントデバイスで新版を再生する際には、この新規ファイルエクステントインデックスを利用して、サーバは、新版のコンテンツ領域を要求するエンドポイントデバイスからのリクエストを処理する。新規ファイルエクステントインデックスにより、サーバは、オリジナル版のシーンのデータに代えて差し替え版のシーンのデータを返すことになるため、これらの新規ファイルと新規ファイルエクステントインデックスにより、オリジナル版のシーンを差し替え版のシーンに置き換えることが可能となる。
【0021】
先行技術に対する本開示の技術の技術的優位性の1つとして、本開示の技術により、複数の版のメディアタイトル間における映像コンテンツの重複が低減される点が挙げられる。そのために、本開示の技術では、所定の映画のすべての版に共通する映像コンテンツについて、同一の映像コンテンツを複数のファイルに重複して複製するのではなく、共通の映像コンテンツのコピーを1つだけ格納できるようにしている。従って、本開示の技術によれば、ストリーミングのために複数の版のメディアタイトルの符号化や格納を行う際に消費される計算や記憶のリソースが抑えられる。また、先行技術に対する本開示の技術の他の技術的優位性として、所定の版のメディアタイトルの最初から最後までを符号化してパッケージ化する方式をとる先行技術とは異なり、本開示の技術では、所定の版のメディアタイトルの作成や変更を、効率的なモジュール方式で行うことができる点も挙げられる。これらの技術的優位性により、先行技術の手法に対する1つ以上の技術的改良が得られる。
【0022】
システムの概要
図1は、種々の実施形態のうちの1つ以上の態様を実施するように構成されたネットワークインフラを示す図である。図示の通り、ネットワークインフラ100は、1つ以上のコンテンツサーバ110と、制御サーバ120と、1つ以上のエンドポイントデバイス115とを備えており、これらは、通信ネットワーク105を介して、相互接続及び/又は1つ以上のクラウドサービス130への接続がなされている。ネットワークインフラ100は通常、コンテンツサーバ110とエンドポイントデバイス115にコンテンツを配布するために利用される。
【0023】
各エンドポイントデバイス115は、ネットワーク105を介して、1つ以上のコンテンツサーバ110(「キャッシュ(cache)」又は「ノード(node)」と呼ぶ場合もある)と通信を行い、テキストデータ、グラフィックデータ、音声データ、映像データなどの種類のデータコンテンツをダウンロードする。そして、1つ以上のエンドポイントデバイス115のユーザに対して、このダウンロード可能なコンテンツ(本明細書では、これを「ファイル」と呼ぶ場合もある)が提示される。種々の実施形態において、エンドポイントデバイス115として、コンピュータシステム、セットトップボックス、モバイルコンピュータ、スマートフォン、タブレット端末、ゲーム機、携帯型映像ゲームシステム、デジタルビデオレコーダ(DVR)、DVDプレーヤ、コネクテッドデジタルテレビ、専用メディアストリーミングデバイス(例えば、Roku(登録商標)セットトップボックス)などの、ネットワーク接続性と、テキストや画像、映像、音声などのコンテンツをユーザに提示する能力とを有する、技術的に可能な任意のコンピューティングプラットフォームを挙げることができる。
【0024】
ネットワーク105としては、コンテンツサーバ110、制御サーバ120、エンドポイントデバイス115、クラウドサービス130などのコンポーネント間においてデータの伝送を行う、技術的に可能な有線ネットワーク、光ネットワーク、無線ネットワーク、又はハイブリッドネットワークを挙げることができる。例えば、ネットワーク105として、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、WiFi(登録商標)ネットワーク、セルラーネットワーク、イーサネットネットワーク、Bluetooth(登録商標)ネットワーク、ユニバーサルシリアルバス(USB)ネットワーク、衛星ネットワーク、及び/又はインターネットを挙げることができる。
【0025】
各コンテンツサーバ110は、制御サーバ120と通信することにより、制御サーバ120が追跡と管理を行っている様々なファイルの場所と可用性を特定するように構成された1つ以上のアプリケーションを備えることができる。また、各コンテンツサーバ110は、さらにクラウドサービス130及び1つ以上の他のコンテンツサーバ110とも通信することにより、各コンテンツサーバ110に様々なファイルのコピーを「充填(fill)」することもできる。さらに、コンテンツサーバ110は、エンドポイントデバイス115から受信したファイルリクエストにレスポンスを返すこともできる。そして、コンテンツサーバ110から、又はより広範なコンテンツ配布ネットワークを介して、ファイルを配布することができる。いくつかの実施形態では、コンテンツサーバ110は、ユーザがコンテンツサーバ110に格納されたファイルにアクセスする前に、ユーザに対して認証(例えば、ユーザ名とパスワードを利用した認証)を求めることができる。なお、図1には制御サーバ120を1つだけ図示しているが、種々の実施形態において、ファイルの追跡と管理のために複数の制御サーバ120を実装することができる。
【0026】
種々の実施形態において、クラウドサービス130として、オンラインストレージサービス(例えば、Amazon(登録商標)Simple Storage Service、Google(登録商標)Cloud Storageなど)を挙げることができ、オンラインストレージサービスに数千又は数百万のファイルを含むファイル目録を格納しておき、コンテンツサーバ110を充填する際にはこれにアクセスすることができる。また、クラウドサービス130により、コンピュートサービスなどの処理サービスを受けることもできる。なお、図1にはクラウドサービス130のインスタンスを1つだけ図示しているが、種々の実施形態において、複数のクラウドサービス130及び/又はクラウドサービスインスタンスを実装することができる。
【0027】
図2は、種々の実施形態に係る、図1のネットワークインフラに関連して実装することが可能なコンテンツサーバ110のブロック図である。図示の通り、コンテンツサーバ110は、限定されるものではないが、中央処理装置(CPU)204と、システムディスク206と、入出力(I/O)デバイスインタフェース208と、ネットワークインタフェース210と、相互接続配線212と、システムメモリ214とを備えている。
【0028】
CPU204は、システムメモリ214に格納されているサーバアプリケーション217などのプログラミング命令を取得して実行するように構成されている。同様に、CPU204は、システムメモリ214に対して、アプリケーションデータ(例えば、ソフトウェアライブラリ)の格納と取得を行うように構成されている。相互接続配線212は、CPU204、システムディスク206、I/Oデバイスインタフェース208、ネットワークインタフェース210、システムメモリ214間における、プログラミング命令やアプリケーションデータなどのデータの伝送を円滑に行えるように構成されている。I/Oデバイスインタフェース208は、I/Oデバイス216から入力データを受信し、当該入力データを、相互接続配線212を介してCPU204に送信するように構成されている。例えば、I/Oデバイス216は、1つ以上のボタン、キーボード、マウスなどの入力デバイスを備えることができる。また、I/Oデバイスインタフェース208は、CPU204から相互接続配線212を介して出力データを受信し、当該出力データをI/Oデバイス216に送信するようにさらに構成されている。
【0029】
システムディスク206は、1つ以上のハードディスクドライブ、ソリッドステート記憶装置、又はこれらに類する記憶装置を備えることができる。システムディスク206は、ファイル218(例えば、音声ファイル、映像ファイル、字幕ファイル、アプリケーションファイル、ソフトウェアライブラリなど)のような不揮発性データを格納するように構成されている。これにより、ファイル218は、ネットワーク105を介して1つ以上のエンドポイントデバイス115によって取得することができる状態となる。いくつかの実施形態では、ネットワークインタフェース210は、イーサネット規格に準拠した動作を行うように構成されている。
【0030】
システムメモリ214は、エンドポイントデバイス115又は他のコンテンツサーバ110から1つ以上のファイル218を要求するリクエストを受信した場合に、その要求に対応するように構成されたサーバアプリケーション217を備えている。所定のファイル218を要求するリクエストをサーバアプリケーション217が受信すると、サーバアプリケーション217は、リクエスト対象のファイル218をシステムディスク206から取得し、当該ファイル218を、ネットワーク105を介してエンドポイントデバイス115又はコンテンツサーバ110に送信する。ファイル218は、映像ファイル、音声ファイル、静止画像などのデジタルコンテンツを含んでいる。また、これに加えて、ファイル218は、かかるコンテンツに関連付けられたメタデータや、ユーザ/加入者データなどを含むこともできる。ファイル218がビジュアルコンテンツのメタデータとユーザ/加入者データのいずれか又は両方を含む構成を採用することにより、ネットワークインフラ100全体としての機能円滑化を図ることができる。また、これに代えて、代替的な実施形態では、制御サーバ120などのネットワークインフラ100内における技術的に可能な場所に、ファイル218の一部又はすべてを格納することもできる。
【0031】
1つ以上の実施形態において、サーバアプリケーション217は、メディアタイトルの様々に異なる版専用の映像コンテンツを、1つ以上のファイル218内の複数のバイト領域に格納する機能を含む。また、サーバアプリケーション217は、1つ以上のエンドポイントデバイス115で各版のメディアタイトルを再生する際には、多数のインデックス構造とマッピングを利用して、当該版のメディアタイトルのバイト領域を、特定の順序で取得していく。図5図7に関する説明で詳しく述べるが、かかるコンテンツ格納・取得技術により、サーバアプリケーション217は、ファイル218間におけるコンテンツの重複を最小限に抑えることができる。さらに、この技術により、所定の版のメディアタイトルのコンテンツのデータが複数のファイル218にまたがって格納されている場合でも、そのコンテンツを要求するリクエストをエンドポイントデバイス115から受けるたびに、サーバアプリケーション217はそのリクエストに対するレスポンスとして、当該データを、まるで同一のファイルから連続した「チャンク」で読み取っているかのように返すことができる。
【0032】
図3は、種々の実施形態に係る、図1のネットワークインフラ100に関連して実装することが可能な制御サーバ120のブロック図である。図示の通り、制御サーバ120は、限定されるものではないが、中央処理装置(CPU)304と、システムディスク306と、入出力(I/O)デバイスインタフェース308と、ネットワークインタフェース310と、相互接続配線312と、システムメモリ314とを備えている。
【0033】
CPU304は、システムメモリ314に格納されている制御アプリケーション317などのプログラミング命令を取得して実行するように構成されている。同様に、CPU304は、システムメモリ314や、システムディスク306に格納されたデータベース318に対して、アプリケーションデータ(例えば、ソフトウェアライブラリ)の格納と取得を行うように構成されている。相互接続配線312は、CPU304、システムディスク306、I/Oデバイスインタフェース308、ネットワークインタフェース310、システムメモリ314間におけるデータの伝送を円滑に行えるように構成されている。I/Oデバイスインタフェース308は、I/Oデバイス316と、相互接続配線312を介してCPU304との間で、入力データと出力データの伝送を行うように構成されている。システムディスク306は、1つ以上のハードディスクドライブ、ソリッドステート記憶装置などを備えることができる。システムディスク306は、コンテンツサーバ110と、クラウドサービス130と、ファイル218とに関連付けられた情報のデータベース318を格納するように構成されている。
【0034】
システムメモリ314は、データベース318に格納された情報にアクセスして、当該情報を処理することにより、ネットワークインフラ100が備える複数のコンテンツサーバ110において特定のファイル218をどのように複製するかを決定するように構成された制御アプリケーション317を備えている。さらに、制御アプリケーション317は、コンテンツサーバ110とエンドポイントデバイス115のいずれか又は両方の1つ以上に関連付けられた性能特性の受信と分析を行うように構成することもできる。また上述したように、いくつかの実施形態では、かかるビジュアルコンテンツに関するメタデータやユーザ/加入者データを、コンテンツサーバ110に格納されるファイル218ではなく、データベース318に格納することもできる。
【0035】
図4は、種々の実施形態に係る、図1のネットワークインフラに関連して実装することが可能なエンドポイントデバイス115のブロック図である。図示の通り、エンドポイントデバイス115は、限定されるものではないが、CPU410と、グラフィックサブシステム412と、I/Oデバイスインタフェース414と、大容量記憶装置416と、ネットワークインタフェース418と、相互接続配線422と、メモリサブシステム430とを備えることができる。
【0036】
いくつかの実施形態では、CPU410は、メモリサブシステム430に格納されたプログラミング命令を取得して実行するように構成されている。同様に、CPU410は、メモリサブシステム430にあるアプリケーションデータ(例えば、ソフトウェアライブラリ)の格納と取得を行うように構成されている。相互接続配線422は、CPU410、グラフィックサブシステム412、I/Oデバイスインタフェース414、大容量記憶装置416、ネットワークインタフェース418、メモリサブシステム430間における、プログラミング命令やアプリケーションデータなどのデータの伝送を円滑に行えるように構成されている。
【0037】
いくつかの実施形態では、グラフィックサブシステム412は、複数の映像データフレームを生成して、この映像データフレームをディスプレイデバイス450に送信するように構成されている。いくつかの実施形態では、グラフィックサブシステム412をCPU410と統合して集積回路に組み込むこともできる。ディスプレイデバイス450は、技術的に可能な任意の表示用画像生成手段を備えることができる。例えば、ディスプレイデバイス450は、液晶ディスプレイ(liquid crystal display:LCD)技術、ブラウン管(cathode-ray)技術、発光ダイオード(light-emitting diode:LED)ディスプレイ技術を利用して製造することができる。I/Oデバイスインタフェース414は、ユーザI/Oデバイス452から入力データを受信し、当該入力データを、相互接続配線422を介してCPU410に送信するように構成されている。例えば、ユーザI/Oデバイス452は、1つ以上のボタン、キーボード、マウスなどのポインティングデバイスを備えることができる。また、I/Oデバイスインタフェース414は、音声出力電気信号を生成するように構成された音声出力部を備えている。ユーザI/Oデバイス452は、この音声出力電気信号に応答して音響出力を生成するように構成されたスピーカを備えることができる。また、代替的な実施形態では、ディスプレイデバイス450がスピーカを備えることもできる。映像フレームの表示と音響出力の生成を行うことができる当技術分野において公知の好適なデバイスの例としては、テレビ、スマートフォン、スマートウォッチ、電子タブレット端末などが挙げられる。
【0038】
ハードディスクドライブやフラッシュメモリ記憶ドライブなどの大容量記憶装置416は、不揮発性データを格納するように構成されている。ネットワークインタフェース418は、ネットワーク105を介してデータパケットを送受信するように構成されている。いくつかの実施形態では、ネットワークインタフェース418は、周知のイーサネット規格を利用して通信を行うように構成されている。ネットワークインタフェース418は、相互接続配線422を介してCPU410に結合されている。
【0039】
いくつかの実施形態では、メモリサブシステム430は、オペレーティングシステム432と、ユーザインタフェース434と、再生アプリケーション436と、プラットフォームプレーヤ438とを含む、プログラミング命令及びアプリケーションデータを含んでいる。オペレーティングシステム432は、ネットワークインタフェース418、大容量記憶装置416、I/Oデバイスインタフェース414、グラフィックサブシステム412などのハードウェアデバイスの管理などのシステム管理機能を実行する。また、オペレーティングシステム432は、ユーザインタフェース434や、再生アプリケーション436、プラットフォームプレーヤ438用の処理・メモリ管理モデルの提供も行う。ウィンドウやオブジェクトメタファ(object metaphor)などのユーザインタフェース434により、ユーザとエンドポイントデバイス115との相互作用メカニズムが得られる。当業者であれば、当技術分野において周知されたオペレーティングシステム及びユーザインタフェースの中に、エンドポイントデバイス115への組み込みに適したものを各種認めるであろう。
【0040】
いくつかの実施形態では、再生アプリケーション436は、ネットワークインタフェース418を介してコンテンツサーバ110に対してコンテンツを要求し、これを受信するように構成されている。さらに、再生アプリケーション436は、コンテンツを読み取って、当該コンテンツをディスプレイデバイス450やユーザI/Oデバイス452を介して提示するように構成されている。その際、再生アプリケーション436は、受信したコンテンツに基づいて複数の映像データフレームを生成して、その映像データフレームをプラットフォームプレーヤ438に送信することができる。これに応答して、プラットフォームプレーヤ438は、映像データフレームをディスプレイデバイス450に出力させることにより、エンドポイントデバイス115上でコンテンツの再生を行う。なお、一実施形態では、プラットフォームプレーヤ438はオペレーティングシステム432に含まれている。
【0041】
複合的なメディアの格納と取得
図5は、種々の実施形態に係る、メディアコンテンツを要求するリクエスト500が、図2に示すサーバアプリケーション217によってどのように処理されるかを示す図である。図示の通り、リクエスト500は、メディアタイトルの版を表す識別子508と、当該版から取得すべきデータの領域510とを含んでいる。例えば、識別子508は、タイトル、ファイル名、識別番号などの、版を一意に識別する値のうちの少なくとも1つ以上を含むことができる。領域510は、当該版における領域をバイトオフセット、時間オフセットなどの様々な種類のオフセットで表したもので構成することができる。
【0042】
上述したように、各版のメディアタイトルには、その版に特有の映像コンテンツサブセットも含まれるが、メディアタイトルに含まれる映像コンテンツの大部分は、複数の版のメディアタイトルに共通していると考えられる。例えば、複数の言語での再生をサポートするため、メディアタイトルが様々なローカライズ版を持っている場合がある。その場合、各ローカライズ版のメディアタイトルは、対応する言語の音声コンテンツを含むとともに、これに加えて、同言語のテロップやグラフィックスなどの各種ローカライズ表示を含んだ1つ以上の映像コンテンツシーンも含むと考えられる。他にも、例えば、所定の国におけるテレビや映画、コンテンツに対する様々なレイティング基準を満たすために、センシティブな内容のシーンについての様々に異なる版のシーンを、メディアタイトルが含んでいる場合もある。
【0043】
サーバアプリケーション217は、1つ以上のファイルマッピング502と、ファイルエクステントインデックス(file extent index)504のうちの少なくともいずれかを利用して、リクエスト500の処理を行う。ファイルマッピング502及び/又はファイルエクステントインデックス504は、リレーショナルデータベース、キーバリューストア(key-value store)、分散ファイルシステム、1つ以上の単層ファイル(flat file)などの種類のデータストア方式又はデータ形式で格納することができる。
【0044】
ファイルマッピング502は、様々に異なる版のメディアタイトルに対する識別子512(1)~512(X)を備えている。なお、識別子512(1)~512(X)のそれぞれを、個々に識別子512と呼ぶ。例えば、各識別子512は、タイトル、ファイル名、識別番号などの、対応する版のメディアタイトルを一意に識別する値のうちの少なくとも1つ以上を含むことができる。
【0045】
ファイルマッピング502は、システムディスク206上のファイル218(1)~218(X)のパス522(1)~522(X)も含む。なお、パス522(1)~522(X)のそれぞれを、個々にパス522と呼び、ファイル218(1)~218(X)のそれぞれを、個々にファイル218と呼ぶ。
【0046】
より詳細には、各ファイルマッピング502は、所定の版のメディアタイトルの識別子512と、当該メディアタイトルの映像コンテンツ(又は他の種類のコンテンツ)を格納するファイル218のパス522とを、1対1で対応付けるマッピングで構成される。各ファイルマッピング502において、識別子512は、対応するファイル218のパス522を取得するために利用可能なキーとして機能する。
【0047】
1つ以上の実施形態において、サーバアプリケーション217は、複数のファイルマッピング502に対して、識別子508でルックアップを実行することにより、リクエスト500を処理する。識別子508が、複数のファイルマッピング502における或る所定の識別子512に一致すると、サーバアプリケーション217は、当該所定の識別子512が対応付けられているパス522にある特定のファイル218から、リクエスト対象の領域510のデータを取得する。例えば、サーバアプリケーション217は、識別子508が持つ「111222333」という値から、複数のファイルマッピング502の中の「111222333/1/01/111222333.ismv」というマッピングを特定することができる。次に、サーバアプリケーション217は、当該マッピングから「/1/01/111222333.ismv」という値のパス522を取得し、パス522にある対応ファイル218から、リクエスト500に指定されたバイト領域510(例えば、バイトオフセット領域)を占めているデータ524を読み取る。そして、サーバアプリケーション217は、取得したデータ524をリクエスト500に対するレスポンス506で返して、リクエスト500の送信元のデバイス(例えば、エンドポイントデバイス115)が、「111222333」ファイル218に格納された版のメディアタイトルの再生を開始又は継続できるようにする。
【0048】
一方、ファイルエクステントインデックス504は、ファイルマッピング502とは異なり、対応する版のメディアタイトルのストリーミング又は再生を複数のファイル(又は同一ファイル内の複数の非連続セグメント)から行うために利用することができるデータを含んでいる。例えば、ファイルエクステントインデックス504は、「ベース」となる版のメディアタイトルにおけるオリジナル版のシーンを別のシーンで置き換えたり、これに追加シーンを付け加えたりした、新たな版のメディアタイトル用に作成することができる。この例では、別のシーンや追加のシーンを1つ以上のファイルに格納し、これとは異なる1つ以上のファイルに、ベース版のメディアタイトルのシーンを格納することができる。
【0049】
図示の通り、ファイルエクステントインデックス504は、対応する版のメディアタイトルの識別子514(例えば、一意の名称又は英数字識別子)と、当該版に関するメタデータ516と、複数のマッピングと、を含んでいる。このマッピングは、1つ以上のファイル218の識別子518(1)~518(Y)と、当該(1つ以上の)ファイルから取得することになるデータ領域520(1)~520(Y)(例えば、開始バイトオフセットと終了バイトオフセットとにより示される領域、開始バイトオフセットと開始バイトオフセットからのバイト数で表される終端とにより示される領域など)とを対応付けるものである。なお、識別子518(1)~518(Y)のそれぞれを、個々に識別子518と呼び、領域520(1)~520(Y)のそれぞれを、個々に領域520と呼ぶ。また、ファイルエクステントインデックス504における、識別子518(1)~518(Y)と領域520(1)~520(Y)とをそれぞれ対応付けるマッピングの並び順により、当該版のメディアタイトルを端から端まで再生する際に、どの順序で映像コンテンツを取得するべきかを示している。
【0050】
ファイルエクステントインデックス504の一例として、「111222111 1593204284,46828784,ismv;111222333:0:20000;111222444:5000:46808784」という表現が挙げられる。この表現には、識別子514の値「111222111」に続いて、3つの値のメタデータ516が含まれている。1つ目の値「1593204284」は、対応する版のメディアタイトルの更新時刻を表し、2つ目の値「46828784」は、当該版のバイト長を表し、3つ目の値「ismv」は、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)レスポンス506ヘッダを作成するために利用可能なファイル名拡張子(filename extension)を表している。そして、これらのメタデータ516の値の後に、識別子518を領域520に対応付けるマッピングが2つ続く。1番目のマッピングは、識別子518の値「111222333」と、対応する領域520の開始バイトオフセット「0」と、対応する領域520が占めるバイト数「20000」とを含む。2番目のマッピングは、識別子518の値「111222444」と、対応する領域520の開始バイトオフセット「5000」と、対応する領域520が占めるバイト数「46808784」とを含む。このファイルエクステントインデックス504の例では、「111222111」の版のメディアタイトルの最初の20000バイトを、ファイルマッピング502において識別子「111222333」に対応付けられたファイルの最初の20000バイトから取得し、「111222111」の版の残りの46808784バイトを、ファイルマッピング502において識別子「111222444」に対応付けられたファイルの5000バイト目以降から取得することを示している。
【0051】
リクエスト500に含まれる識別子508が複数のファイルマッピング502のいずれの識別子512とも一致しない場合、サーバアプリケーション217は、識別子508と一致する所定のファイルエクステントインデックス504の識別子514を特定することができる。例えば、サーバアプリケーション217は、データベースやキーバリューストアなどのデータストアに対してルックアップを実行して、リクエスト500の識別子508と値が一致する識別子514を有する所定のファイルエクステントインデックス504を取得することができる。このルックアップは、同じ識別子508を用いてファイルマッピング502に対して行うルックアップと連動して実行することができるほか、これとは独立に実行することもできる。
【0052】
識別子508が、ファイルエクステントインデックス504における識別子514と一致すると、サーバアプリケーション217は、1つ以上の識別子518を1つ以上の領域520に対応付ける、ファイルエクステントインデックス504内のマッピングと、識別子518と等しい識別子512をこれに対応するパス522に対応付けるファイルマッピング502とを利用して、リクエスト対象の領域510のデータ524を取得する。換言すれば、サーバアプリケーション217は、ファイルエクステントインデックス504とファイルマッピング502とを利用して、複数のファイル218に由来する様々に異なる領域のデータ524をつなぎ合わせて、レスポンス506で返しているが、リクエスト500の送信元のデバイスにとっては、返されたデータ524が同一のファイルの連続した領域から読み取ったデータのように映るように、データ524を返すのである。
【0053】
ここで、リクエスト500の識別子508の値「111222111」と、上記のファイルエクステントインデックス504の例と、上記の例のファイルマッピング「111222333/1/01/111222333.ismv」と、さらなるファイルマッピング「111222444/1/01/111222444.ismv」とを例に、サーバアプリケーション217の動作を説明する。まず、サーバアプリケーション217は、上記の例のファイルエクステントインデックス504における識別子514の値「111222111」が、識別子508と同じ値であることを特定する。次に、サーバアプリケーション217は、上記の例のファイルエクステントインデックス504における、識別子518と領域520とを対応付けるマッピングを利用して、リクエスト対象の領域510のデータ524の抽出元となる1つ以上のファイル218と、各ファイルから抽出するデータ部分とを特定する。また、サーバアプリケーション217は、当該(1つ以上の)ファイルに関連付けられたファイルマッピング502を利用して、システムディスク206上の当該(1つ以上の)ファイルの場所を特定し、当該(1つ以上の)ファイルから、対応するデータ部分を取得し、取得したデータ524をレスポンス506で返す。
【0054】
従って、リクエスト500に含まれる領域510が、識別子「111222111」によって表される版のメディアタイトルの最初の10000バイトで構成される場合、サーバアプリケーション217は、上記の例のファイルエクステントインデックス504における1番目のマッピングを利用して、上記の例のファイルエクステントインデックス504の識別子518「111222333」に対応付けられたファイルの最初の10000バイトから、領域510全体を読み取る必要があることを特定する。次に、サーバアプリケーション217は、「111222333」の識別子512を有するファイルマッピングを利用して、これに対応するファイルのパス「/1/01/111222333.ismv」を入手し、当該ファイルの最初の10000バイトを取得する。そして、サーバアプリケーション217は、取得したデータ524を含むレスポンス506を生成し、リクエスト500の送信元のデバイス又は場所に、このレスポンス506を送信する。
【0055】
一方、リクエスト500に含まれる領域510が、識別子「111222111」によって表される版のメディアタイトルの20000バイト目以降の10000バイトで構成される場合には、サーバアプリケーション217は、上記の例のファイルエクステントインデックス504における1番目のマッピングと2番目のマッピングとを利用して、上記の例のファイルエクステントインデックス504の識別子518「111222444」に対応付けられたファイルから、領域510全体を読み取る必要があることを特定する。次に、サーバアプリケーション217は、「111222444」の識別子を有するファイルマッピングを利用して、これに対応するファイルのパス「/1/01/111222444.ismv」を入手し、当該ファイルのバイトオフセット値5000以降の10000バイトを取得する。
【0056】
また、リクエスト500に含まれる領域510が、識別子「111222111」によって表される版のメディアタイトルの100000バイト目以降の10000バイトで構成される場合には、サーバアプリケーション217は、上記の例のファイルエクステントインデックス504におけるマッピングを利用して、上記の例のファイルエクステントインデックス504の識別子518「111222444」に対応付けられたファイルから、領域510全体を読み取る必要があることを特定する。次に、サーバアプリケーション217は、「111222444」の識別子を有するファイルマッピングを利用して、これに対応するファイルのパス「/1/01/111222444.ismv」を入手し、当該ファイルのバイトオフセット値85000以降の10000バイトを取得する(メディアタイトルの最初の20000バイトは、「111222333」の識別子に対応付けられたファイル由来とされ、「111222444」の識別子に対応付けられたファイルから取得する領域の開始点は5000バイト目であるため)。
【0057】
いくつかの実施形態では、領域510がバイトオフセットではなく時間オフセットで指定されている場合に、サーバアプリケーション217は、1つ以上のファイル218(1)~218(X)に対するセグメントインデックス530(1)~530(X)を利用してリクエスト500を処理する。例えば、リクエスト500が、再生中にメディアタイトルの別のパートに「シーク」又は「スクラブ」するためのものである場合、リクエスト500は、領域510を表す時間オフセットを含むと考えらえる。また、これに加えて又は代えて、リクエスト500が、バイトオフセットに代えて時間オフセットを利用してストリーミングコンテンツの取得と再生を実行する所定の再生アプリケーション436から受信したものである場合も、リクエスト500は、領域510を表す時間オフセットを含み得る。なお、セグメントインデックス530(1)~530(X)のそれぞれを、個々にセグメントインデックス530と呼ぶ。セグメントインデックス530(1)~530(X)は、時間オフセット(例えば、タイムスタンプ)を、対応するファイル218内の個々のセグメント532(1)~532(X)のバイトオフセットに対応付けるマッピングをそれぞれ含んでいる。各セグメントインデックス530は、対応するファイル218の先頭の位置に格納することができるほか、別のファイルや場所に格納することもできる。
【0058】
より詳細には、リクエスト500が時間オフセット領域510を含む場合、サーバアプリケーション217は、識別子508と一致するファイルマッピング502の識別子512及び/又はファイルエクステントインデックス504の識別子514を特定することができる。識別子508が、複数のファイルマッピング502における或る所定の識別子512と等しい場合、サーバアプリケーション217は、当該所定の識別子512が対応付けられているパス522にあるファイル218から、セグメントインデックス530を取得する。さらに、サーバアプリケーション217は、取得したセグメントインデックス530内の、時間オフセットとバイトオフセットとを対応付けるマッピングを利用して、領域510の時間オフセットをファイル218のバイトオフセットへと変換する。そして、サーバアプリケーション217は、ファイル218から当該バイトオフセット間を占めるデータ524を取得し、このデータ524をリクエスト500に対するレスポンス506で返す。
【0059】
識別子508がファイルエクステントインデックス504における識別子514と一致する場合には、サーバアプリケーション217は、ファイルエクステントインデックス504と、ファイルエクステントインデックス504内の1つ以上の識別子518によって表される1つ以上のファイル218に対する1つ以上のセグメントインデックス530とを利用して、リクエスト500を処理する。具体的には、サーバアプリケーション217は、セグメントインデックス530を利用して、ファイルエクステントインデックス504におけるバイトオフセット領域520を、対応するファイル218の時間オフセット領域へと変換する。任意選択的に、サーバアプリケーション217は、ファイルエクステントインデックス504内の領域520において指定されているバイトオフセットと、これに対応するファイル218における時間オフセットとを対応付けるマッピングを、ファイルエクステントインデックス504や他のインデックス構造に格納することもできる。例えば、サーバアプリケーション217は、ファイルエクステントインデックス504内におけるバイトオフセットで表された所与の領域520に対して、これに対応する、当該版のメディアタイトルにおける時間オフセットで表された領域520を示すラベルを付ける(annotate)ことができる。リクエスト500を受信したサーバアプリケーション217は、これらの時間オフセット領域520を利用して、領域510に占めるデータの取得先となる1つ以上のファイル218を特定することができる。そして、サーバアプリケーション217は、当該(1つ以上の)ファイルに対するセグメントインデックス530を利用して、領域510の時間オフセットを、(1つ以上の)ファイル内の1つ以上のバイト領域へと変換して、当該(1つ以上の)ファイルから当該(1つ以上の)バイト領域を占めるデータ524を取得し、取得したデータ524をレスポンス506で返すことができる。
【0060】
ここで、上記のファイルエクステントインデックス504の例と、上記の例のファイルマッピング502と、リクエスト500における識別子508の値「111222111」と、リクエスト500における領域510の時間オフセット「0:00:00」及び「0:00:30」を例に、サーバアプリケーション217の動作を説明する。まず、サーバアプリケーション217は、上記の例のファイルエクステントインデックス504における識別子514の値「111222111」が、識別子508と同じ値であることを特定する。さらに、サーバアプリケーション217は、ファイルエクステントインデックス504、並びに/又は、「111222333」ファイル及び「111222444」ファイルに対する1つ以上のセグメントインデックス530から、「111222333」ファイルのオフセット値0以降の20000バイトを占めるバイト領域を「00:00:00~00:00:30」の時間オフセットへと変換するマッピングと、「111222444」ファイルのバイトオフセット値5000以降の46808784バイトを占めるバイト領域を「00:00:31~03:00:00」の時間オフセットへと変換するマッピングと、を取得する。そして、サーバアプリケーション217は、ファイルマッピング502を利用して、「111222333」ファイルの最初の20000バイトを取得し、取得したデータをリクエスト500に対するレスポンス506で返す。
【0061】
また、リクエスト500が含む識別子508が上記と同じ「111222111」であるが、領域510の時間オフセットが「00:00:00」及び「00:01:00」である場合には、サーバアプリケーション217は、ファイルエクステントインデックス504及び/又は1つ以上のセグメントインデックス530に含まれる、バイト領域を時間オフセットへと対応付けるマッピングを利用して、領域510が、「111222333」ファイルと「111222444」ファイルとにまたがっていることを特定することができる。「111222333」ファイルについては、当該ファイルの最初の20000バイトの時間長に対応する時間オフセットが、領域510の時間オフセットの範囲内に収まっていため、サーバアプリケーション217は、「111222333」ファイルにおける0~20000のバイト領域全体を取得することができる。さらに、サーバアプリケーション217は、「111222444」ファイルに対するセグメントインデックス530を取得し、取得したセグメントインデックス530内の1つ以上のマッピングを利用して、領域510の時間オフセット「00:01:00」を「111222444」ファイルにおけるバイトオフセット「45000」へと変換することができる。そして、サーバアプリケーション217は、「111222333」ファイルにおける最初の20000バイトのデータと、これに加えて、「111222444」ファイルにおけるバイトオフセット5000からバイトオフセット45000までのさらなるデータと、を含むレスポンス506を生成することができる。
【0062】
図6Aは、種々の実施形態に係る、或る版のメディアタイトルを再生する際に利用可能な例示的なデータ構造セットを示す図である。図示の通り、このデータ構造は、2つのファイル600、602と、ファイルエクステントインデックス628とを含んでいる。
【0063】
ファイル600は、多数の部分604~612を有している。1番目の部分604には、1つ以上の版のメディアタイトルにおける時間オフセットをファイル600におけるバイトオフセットに対応付けるセグメントインデックス(SIDX)が格納され、これに続く4つの部分606~612には、4つのデータセグメントS1、S2、S3、S4が格納されている。部分606~612に格納されているデータセグメントS1、S2、S3、S4は、当該版のメディアタイトルにおける映像コンテンツなどのコンテンツを符号化したデータのセグメントで構成され、データセグメントの一部又は全体を取得して、所定のエンドポイントデバイス115上の再生アプリケーション436に配信して、当該エンドポイントデバイス115上で再生することができる。
【0064】
ファイル600と同様に、ファイル602も、多数の部分622~626を有している。1番目の部分622には、1つ以上の版のメディアタイトルにおける時間オフセットをファイル602におけるバイトオフセットに対応付けるSIDX(SIDX’と表記)が格納され、これに続く2つの部分624、626には、2つのデータセグメントS2’、S4’が格納されている。S2’は、セグメントS2の別版で構成され、S4’は、セグメントS4の別版で構成される。例えば、セグメントS2、S4に英語の映像コンテンツが格納されている場合に、セグメントS2’、S4’は、それぞれの仏語ローカライズ版を含むことができる。他にも、例えば、セグメントS2、S4がオリジナルの映像コンテンツを格納しているのに対して、セグメントS2’、S4’は、オリジナルに対して編集を施した版又は特定視聴者向けの版を含むことができる。
【0065】
いくつかの実施形態では、ファイル602の部分622に収められているSIDX’は、1つ以上の版のメディアタイトルにおける時間オフセットを、1つ以上の対応するファイル600、602におけるバイトオフセットに対応付けるマッピングを含んでいる。このマッピングによって、セグメントS2、S4をそれぞれセグメントS2’、S4’に置き換えた版でメディアタイトルを再生する際に、ファイル600に格納されている「ベース」版(つまり、オリジナル版)の映像コンテンツの上に、セグメントS2’、S4’に格納されている別版の映像コンテンツをオーバーレイすることが可能となる。例えば、部分622に格納されたSIDX’は、セグメントS1における時間オフセットを部分606におけるバイトオフセットに対応付けるマッピングと、セグメントS2’における時間オフセットを部分624におけるバイトオフセットに対応付けるマッピングと、セグメントS3における時間オフセットを部分610におけるバイトオフセットに対応付けるマッピングと、セグメントS4’における時間オフセットを部分626におけるバイトオフセットに対応付けるマッピングと、をこの順に含むことができる。
【0066】
なお、これらのシーンでは、言語によってそのテキストが消費する画面スペースの量や領域が異なる可能性があるため、S2’、S4’に格納された別版の映像コンテンツが占めるスペースの量が、S2、S4に格納されたオリジナル版とは異なっている場合がある。具体例として、図6Aには、ファイル600、602において部分604~626の境界を示すバイトオフセットを示しており、以下に、種々の部分604~626が占めるバイトオフセット領域について説明する。各領域は、開始バイトオフセットと終了バイトオフセットとで表される。なお、開始バイトオフセットは領域に含まれる一方、終了バイトオフセットは、領域の延在範囲を示すが領域には含まれない。従って、例えば、バイトオフセット5000からバイトオフセット10000までを占める領域とは、5000バイト目を含むが10000バイト目を含まない、5000~10000のバイト領域として認識される。
【0067】
より具体的には、部分604~626が占める領域を表す図示のバイトオフセット値によれば、ファイル600の最初の10000バイトが部分604用に確保され、ファイル602の最初の10000バイトが部分622用に確保されており、これにより、SIDXマッピングや他のメタデータを部分604、622に格納することが可能となっている。また、図示のバイトオフセット値によれば、部分606に収められているS1が、ファイル600におけるバイトオフセット10000からバイトオフセット20000までを占め、部分608に収められているS2が、ファイル600におけるバイトオフセット20000からバイトオフセット26000までを占め、部分610に収められているS3が、ファイル600におけるバイトオフセット26000からバイトオフセット35000までを占め、部分612に収められているS4が、ファイル600におけるバイトオフセット35000からバイトオフセット50000までを占めている。さらに、図示のバイトオフセット値によれば、部分624に収められているS2’が、ファイル602におけるバイトオフセット10000からバイトオフセット23000までを占め、部分626に収められているS4’が、ファイル602におけるバイトオフセット23000からバイトオフセット54000までを占めている。よって、S2’はS2の約2倍、S4’はS4の約2倍の大きさとなる。
【0068】
その結果、部分604のSIDXと部分622のSIDX’との間で、それぞれに格納されたSIDXマッピングが示すセグメントのサイズは、互いに対応するセグメントであっても異なっている。例えば、部分604に格納されたSIDXは、メディアタイトルにおける「00:05:00」と「00:07:00」という時間オフセットを、部分606のS2が占める領域を表す「20000」と「26000」というバイトオフセットに対応付けることができる一方、部分622に格納されたSIDXは、メディアタイトルにおける同じ「00:05:00」と「00:07:00」という時間オフセットを、部分624のS2’が占める領域を表す「10000」と「23000」というバイトオフセットに対応付けることができる。
【0069】
ファイルエクステントインデックス628も多数の部分630~642を有している。部分630~642には、或る版のメディアタイトルのストリーミング又は再生を複数のファイルから行うために利用することができるデータが格納されている。例えば、ファイルエクステントインデックス628を利用して、S1に格納された非ローカライズ版である英語版の第1のシーンと、S2’に格納された仏語版の第2のシーンと、S3に格納された非ローカライズ版の第3のシーンと、S4’に格納された仏語版の第4のシーンとで構成される、仏語版のメディアタイトルコンテンツを要求するリクエストを処理することができる。他にも、例えば、ファイルエクステントインデックス628を利用して、S1に格納されたオリジナル版の第1のシーンと、S2’に格納された編集版の第2のシーンと、S3に格納されたオリジナル版の第3のシーンと、S4’に格納された編集版の第4のシーンとで構成される、家族向け(family-friendly)の版のメディアタイトルコンテンツを要求するリクエストを処理することもできる。
【0070】
より詳細には、ファイルエクステントインデックス628は、対応する版のメディアタイトルに対する一意の識別子を格納する1番目の部分630と、当該版に関するメタデータ(例えば、更新時刻、バイト長、ファイル名拡張子など)を格納する2番目の部分632とを含んでいる。そして、残りの5つの部分634~642には、当該版の再生時に読み取るべき様々に異なるデータ領域を指定するマッピングが格納されている。上述したように、部分634~642に格納されているマッピングのそれぞれが、ファイルの識別子と、その識別子が示すファイルに格納されるとともに、当該版のメディアタイトルに含まれるデータ領域の開始バイト及び終了バイト並びに/又は時間オフセットと、を含むことができる。また、部分634~642に収められているマッピングの並び順により、当該版のメディアタイトルを端から端まで再生する際に、どの順序で映像コンテンツを取得するべきかを示している。具体的には、部分634~642に格納されているマッピングでは、まず、当該版のメディアタイトルを端から端まで再生する際に、(例えば、当該版のメディアタイトルに占める時間オフセットの形でデータの要求を行うリクエストを処理可能とするためには)ファイル602に格納されたSIDX’を取得する必要があることを指定している。そして、これに続いて、ファイル600のバイトオフセット10000からバイトオフセット20000まで(ただし、20000は除く)に格納されたS1を取得し、その後、ファイル602のバイトオフセット10000からバイトオフセット23000まで(ただし、23000は除く)に格納されたS2’を取得し、その後、ファイル600のバイトオフセット26000からバイトオフセット35000まで(ただし、35000は除く)に格納されたS3を取得し、その後、ファイル602のバイトオフセット23000からバイトオフセット54000まで(ただし、54000は除く)に格納されたS4’を取得する必要があることを指定している。
【0071】
図6Bは、種々の実施形態に係る、メディアコンテンツを要求するリクエストが、図6Aに示す例示的なデータ構造セットを利用してどのように処理されるかを示す図である。リクエスト650は、或る版のメディアタイトルの識別子を指定する1番目の部分654と、開始バイトオフセット「15000」を指定する2番目の部分656と、終了バイトオフセット「24999」を指定する3番目の部分658とを含む。
【0072】
図示の通り、リクエスト650の処理は、指定された版のメディアタイトルから、部分656に収められた開始バイトオフセットと部分658に収められた終了バイトオフセットとにより表される領域を占めるデータを取得することにより行われる。リクエスト650を処理するために、サーバアプリケーション217は、部分654に収められた識別子(ID)が、ファイルエクステントインデックス628の部分630に収められた識別子(ID)に一致していることを特定する。次に、サーバアプリケーション217は、ファイルエクステントインデックス628を利用して、データ領域の取得先となる1つ以上のファイルと、当該(1つ以上の)ファイルにおいてこのデータ領域に対応する部分とを割り出す。
【0073】
具体的には、サーバアプリケーション217は、ファイルエクステントインデックス628の部分634~642に格納されたマッピングを利用して、リクエスト650の部分656に収められた開始バイトオフセットと部分658に収められた終了バイトオフセットとを、1つ以上のファイル600、602内のオフセットに変換する。サーバアプリケーション217は、まず、部分634に格納されているマッピングにおいてSIDX’が0~10000のバイト領域を占めると示されていることと、部分636に格納されているマッピングにおいてS1が10000~20000のバイト領域を占めると示されていることとを利用して、リクエスト650の部分656に収められた開始オフセット「15000」が、ファイル600のバイトオフセット「15000」に対応していることを特定する。例えば、サーバアプリケーション217は、リクエストが要求している版のメディアタイトルの15000バイト目のコンテンツが、部分634に格納されているマッピングに示されているSIDX’が占めるバイト数10000バイトを越えた位置にあることを特定することができる。サーバアプリケーション217はまた、(例えば、リクエストが要求しているバイトオフセット「15000」からSIDX’が占めるバイト数「10000」を引くことにより)この15000番目のバイトがSIDX’から5000バイト後の位置にあることを特定し、この「5000」を、部分636に格納されたマッピングに示されているS1の開始オフセット「10000」に加算して、ファイル600内のオフセット「15000」を求めることができる。そして、このファイル600のオフセット値「15000」が、部分636に格納されたバイト領域の範囲内に収まっているため、サーバアプリケーション217は、このオフセットから始まるデータをファイル600から取得する。
【0074】
また、サーバアプリケーション217はまた、部分658に収められた終了オフセット「24999」が、部分656に収められた開始オフセット「15000」から10000バイト後の位置にあり、よって、この終了オフセットが示しているのは、当該版のメディアタイトルにおける15000バイト目のコンテンツ以降の、当該版のメディアタイトルにおける10000バイト分のコンテンツを取得する必要があるということだと特定する。そして、サーバアプリケーション217は、ファイルエクステントインデックス628の部分634~642に収められたマッピングを利用して、15000バイト目のコンテンツから10000バイト後の位置に対応するファイル内のバイトオフセットを割り出す。例えば、サーバアプリケーション217は、ファイル600におけるバイトオフセット「15000」(当該版のメディアタイトルにおける15000バイト目のコンテンツを表している)と、部分636に格納されているマッピングが示すバイト領域の終端との間に、5000バイトあることを特定することができる。そして、その結果、サーバアプリケーション217は、リクエスト650を満たすためには、ファイルエクステントインデックス628の後続部分638~642に格納された1つ以上のバイト領域から、さらに5000バイトを取得する必要があることを特定する。そして次に、サーバアプリケーション217は、部分638に格納されているマッピングにおいてS2’が10000~23000のバイト領域を占めると示されていることを利用して、リクエストが要求している領域がファイル602のS2’内で終了することと、残りの5000バイトをファイル602におけるバイトオフセット10000からバイトオフセット14999までの領域から取得する必要があることとを特定する。
【0075】
次に、サーバアプリケーション217は、リクエスト650に対する応答として、当該版のメディアタイトルのバイトオフセット15000からバイトオフセット24999までを占めるコンテンツを含んだレスポンス652を生成して送信する。図示の通り、このレスポンスは、任意選択的な1番目の部分660と、2番目の部分662と、3番目の部分664とを有している。1番目の部分660には、部分630や部分654と同じ識別子が収められている。2番目の部分662には、ファイル600のS1におけるバイトオフセット15000からバイトオフセット19999までの5000バイトが収められている。3番目の部分664には、ファイル602のS2’におけるバイトオフセット10000からバイトオフセット14999までの5000バイトが収められている。また、サーバアプリケーション217により取得した10000バイトのデータが、1つのファイルの連続した部分から取得したデータのように映るように、このレスポンス652の形式を整えることもできる。
【0076】
図7は、種々の実施形態に係る、メディアタイトルを再生するためにこれにアクセスするための方法ステップを示すフロー図である。なお、本方法ステップの説明は、図1図6に示すシステムに関連させながら行っているが、当業者であれば、本発明の範囲には、本方法ステップを任意の順序で実施するように構成された任意のシステムが含まれることを理解するであろう。
【0077】
図示の通り、ステップ702で、サーバアプリケーション217は、或る符号化版のメディアタイトルに含まれるデータ領域を要求するリクエストを受信する。例えば、サーバアプリケーション217は、エンドユーザにストリーミングメディア機能を提供するクライアントデバイス(例えば、エンドポイントデバイス115)からリクエストを受信することができる。クライアントデバイスは、メディアタイトルの再生時に、再生中の特定の時点でファイル間の切り替えを行うのではなく、複数のデータ領域を1つのファイルから取得するようリクエストを行う従来型の映像ストリーミングアプリケーションを備えることができる。リクエストは、ファイルの識別子(例えば、ファイル名)と、データ領域の開始時間オフセット又は開始データオフセットと、データ領域の終了時間オフセット又は終了データオフセットと、を含むことができる。また、終了時間オフセット又は終了データオフセットに代えて、リクエストは、開始オフセット以降の取得すべきコンテンツのバイト数(又は秒数)を指定することもできる。
【0078】
次に、サーバアプリケーション217は、ステップ704で、ファイルエクステントインデックスに基づいて、当該符号化版のメディアタイトルを格納しているファイルセットの中からデータ領域を取り出す際にアクセスする1つ以上のファイルを特定する。なお、このファイルセットは、他の符号化版のメディアタイトルを格納している他のファイルセットとオーバーラップしている場合がある。例えば、複数の符号化版のメディアタイトルには、「ベース」となる版(つまり、「オリジナル」版)のコンテンツが含まれており、これらの「ベース」版コンテンツを1つ以上のファイルに格納することができる。そして、符号化版のメディアタイトルのそれぞれが、その版専用のさらなるコンテンツを含んでおり、かかるさらなるコンテンツを、「ベース」版コンテンツと同じ(1つ以上の)ファイル及び/又は「ベース」版コンテンツとは異なる1つ以上のファイルに格納することができる。また、ファイルエクステントインデックスは、符号化版のメディアタイトルの識別子と、さらに、当該符号化版のメディアタイトルに関するメタデータ(例えば、リクエストに対するレスポンスのヘッダに含まれる、当該符号化版の長さ、当該符号化版の更新時刻、ファイル拡張子などのデータ)とを含んでいる。また、ファイルエクステントインデックスにより、複数のファイルセットに対する識別子をそれらのファイルに格納されているデータ領域に対応付けるマッピングも行われる。各データ領域は、対応するファイルの少なくとも一部を規定するものであり、符号化版のメディアタイトルに含めるべき部分は、このデータ領域により規定される。また、ファイルエクステントインデックスにおける、複数の識別子とこれに対応するオフセットで表される領域とをそれぞれ対応付けるマッピングの並び順により、当該符号化版のメディアタイトルを端から端まで再生する際に、どの順序で映像コンテンツを取得するべきかを示している。従って、ファイルエクステントインデックスにおける1番目のマッピングに含まれる第1のデータ領域を、1番目のマッピングに含まれる第1の識別子が指示している第1のファイルから取得し、続いて、ファイルエクステントインデックスにおける2番目のマッピングに含まれる第2のデータ領域を、2番目のマッピングに含まれる第2の識別子が指示している第2のファイルから取得する、などのようにデータ領域を取得していくことにより、当該符号化版を最初から最後まで再生することができる。
【0079】
また、サーバアプリケーション217は、ステップ706で、ファイルエクステントインデックスと、(1つ以上の)ファイルに対する1つ以上のセグメントインデックスのいずれか又は両方に基づいて、当該(1つ以上の)ファイルからデータ領域を取得する。より詳細には、サーバアプリケーション217は、ファイルエクステントインデックス及び/又は(1つ以上の)セグメントインデックスに含まれるマッピングを利用して、リクエストに指定されているデータ領域の開始オフセットを、ファイルエクステントインデックスに規定されているファイル内の第1のオフセットに変換することができる。一般に、この変換は、開始オフセットと、ファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数とに対して、1回以上の計算又は比較を行うことにより行われる。かかる計算又は比較の結果、サーバアプリケーション217は、どのファイルに開始オフセットがあるか、そして、開始オフセットが対応している第1のオフセットが、そのファイルのどのオフセットに当たるかを割り出すことができる。
【0080】
例えば、サーバアプリケーション217は、ファイルエクステントインデックス内のマッピングに含まれる最初のn個のデータ領域が占めるバイト数の和を繰り返し計算することができる。そして、計算中にバイト数の和が開始オフセットを上回った時点で、サーバアプリケーション217は、その和に対するnの値を求めて、開始オフセットの位置が、ファイルエクステントインデックスにおけるn番目のマッピングによって表されるファイル内にあることを特定することができる。そして、サーバアプリケーション217は、このバイト数の和から開始オフセットを引くことにより、第1のオフセットとn番目のマッピングに含まれるデータ領域の終端とを隔てるバイト数を表す「差分(difference)」値を求めることができる。その場合、サーバアプリケーション217は、n番目のマッピングに含まれるデータ領域の終端からこの差分値を引くことにより、リクエストに指定されているデータ領域の取得先となるファイルにおける第1のオフセットを求めることができる。またこれに代えて、サーバアプリケーション217は、ファイルエクステントインデックス内の最初の(n-1)個のデータ領域が占めるバイト数の和を、開始オフセットから引いて、第1のオフセットとn番目のマッピングに含まれるデータ領域の始端とを隔てるバイト数を表す値を求めてもよい。その場合、サーバアプリケーション217は、n番目のマッピングに含まれるデータ領域の始端にこの値を足すことにより、リクエストに指定されているデータ領域の取得先となるファイルにおける第1のオフセットを求めることができる。
【0081】
他にも、例えば、サーバアプリケーション217は、ファイルエクステントインデックスおける各データ領域が占めるバイト数を、開始オフセットから繰り返し引いて、この引き算をn回繰り返すことにより、ファイルエクステントインデックス内のマッピングに含まれる最初のn個のデータ領域が占めるバイト数を、開始オフセットから引いた値を求めることもできる。そして、サーバアプリケーション217は、この繰り返し処理により、計算結果が負の数となる最小のnの値を求め、開始オフセットの位置が、ファイルエクステントインデックスにおけるn番目のマッピングによって表されるファイル内にあることを特定することができる。また、この負の数は、第1のオフセットとn番目のマッピングに含まれるデータ領域の終端との間の数値差を表していることから、サーバアプリケーション217は、この負の数とn番目のマッピングに含まれるデータ領域の終端の和を計算することによって、開始オフセットに対応する当該ファイル内における第1のオフセットを計算することができる。
【0082】
リクエストに指定されているデータ領域の開始オフセットを、ファイルエクステントインデックスに規定されているファイル内の第1のオフセットに変換し終えると、サーバアプリケーション217は、当該ファイル及び/又はファイルエクステントインデックスに規定されている1つ以上の他のファイルから、当該データ領域が占めるバイト数のデータを取得することができる。リクエストに指定されているデータ領域が、当該ファイルを表しているn番目のマッピングに含まれるデータ領域の範囲内に収まっている場合、サーバアプリケーション217は、リクエストが要求しているデータ領域全体を、当該ファイルの第1のオフセットから始まる領域から取得することができる。一方、リクエストに指定されているデータ領域が、当該ファイルを表しているn番目のマッピングに含まれるデータ領域の範囲内に収まらない場合(例えば、リクエストが要求しているデータ領域が占めるバイト数が、第1のオフセットと当該ファイルを表しているn番目のマッピングに含まれるデータ領域の終端とを隔てるバイト数を上回っている場合)、サーバアプリケーション217は、リクエストが要求しているデータ領域の1番目の部分を、第1のオフセットからn番目のマッピングに含まれるデータ領域の終端までの領域から取得することができる。そして、サーバアプリケーション217は、(n+1)番目のマッピングに含まれるデータ領域の始端から、リクエストが要求しているデータ領域の終端と(n+1)番目のマッピングに含まれるデータ領域の終端のうちの最初に現れる方までの領域から、リクエストが要求しているデータ領域の2番目の部分を取得することができる。リクエストが要求しているデータ領域の終端が、(n+1)番目のマッピングに含まれるデータ領域の終端を越えている場合には、サーバアプリケーション217は、リクエストが要求しているデータのさらなる部分を、ファイルエクステントインデックスにおけるこれ以降のマッピングによって表されるファイルから取得する。この処理を、リクエストが要求しているデータ領域全体が得られるまで繰り返すことができる。
【0083】
また、ステップ702で受信したリクエストが、符号化版のメディアタイトルの冒頭からの変位バイト数(又は、他のデータ単位で表した変位量)を表す整数オフセットではなく時間オフセットで、取得すべきデータ領域を指定している場合、サーバアプリケーション217は、ステップ704で割り出した(1つ以上の)ファイルに対する1つ以上のセグメントインデックスに含まれる、時間オフセットとバイトオフセットとを対応付けるマッピングを利用して、リクエストに指定されている、データ領域の始端を画定する第1の時間オフセットを、ファイルエクステントインデックスに含まれるマッピングによって表されるファイルにおける第1のオフセットへと変換する。例えば、サーバアプリケーション217は、ファイルエクステントインデックスに含まれるマッピングによって表されるすべてのファイルに対するセグメントインデックスを利用して、ファイルエクステントインデックスに含まれるバイトオフセット領域を、対応するファイルの時間オフセット領域に変換することができる。また、任意選択的に、サーバアプリケーション217は、これらの時間オフセット領域を、ファイルエクステントインデックスや他のインデックス構造に格納することもできる。その後、サーバアプリケーション217は、これらの時間オフセット領域を利用して、リクエストで指定された領域に占めるデータの取得先となる1つ以上のファイルを特定することができる。さらに、サーバアプリケーション217は、これらの(1つ以上の)ファイルに対する1つ以上のセグメントインデックスを利用して、リクエストが要求している領域の開始時間オフセット及び/又は終了時間オフセットを、ファイルの開始オフセット及び/又は終了オフセットへと変換し、リクエストが要求している(1つ以上の)領域を占めるデータを、(1つ以上の)ファイルから取得することができる。
【0084】
そして最後に、ステップ708で、サーバアプリケーション217は、取得したデータ領域を、リクエストに対するレスポンスで送信する。例えば、サーバアプリケーション217は、取得したデータ、当該符号化版のメディアタイトルの識別子、当該符号化版のファイルエクステントインデックスから取得したメタデータに指定されたファイル拡張子などのデータやメタデータを、レスポンスに含める。そして、サーバアプリケーション217は、ネットワーク接続を介してクライアントデバイスに、レスポンスを送信する。
【0085】
サーバアプリケーション217は、ステップ710で、処理を継続して、ステップ702~708によりさらなるリクエストを処理することもできる。例えば、サーバアプリケーション217は、複数のファイル(又は同一ファイル内の複数の非連続セグメント)にまたがって格納されている版のメディアタイトルに対するリクエストを、当該版のメディアタイトルに対するファイルエクステントインデックスと、当該ファイルに対する識別子と当該ファイルの場所(例えば、パス)とを対応付ける1つ以上のファイルマッピングと、これらのファイルに対する1つ以上のセグメントインデックスのうちの少なくともいずれかを利用して、リクエストごとに処理することができる。これらのマッピングとインデックス構造とを利用して、サーバアプリケーション217は、各リクエストに指定されているデータ領域の1つ以上の部分を、ファイルエクステントインデックスに規定されているファイルのうちの1つ以上に対応付けられた1つ以上のオフセット領域内から取得することができる。
【0086】
以上の説明を要約すると、次のようになる。様々に異なる版のメディアタイトルを、複数のファイルや所定のファイル内の複数のセグメントにまたがって格納しておく。各版のメディアタイトルは、その版専用の1つ以上のコンテンツ部分(例えば、異なる言語のテキストの「焼き付け(burned in)」を施したローカライズ版のシーンなど)と、他の版のメディアタイトルと共有(例えば、ベースとなる版(すなわち、デフォルト版)のメディアタイトル)の1つ以上の部分とを含むことができる。所定の版のメディアタイトルに対するリクエストは、その版の映像などのコンテンツから取得すべきデータ領域情報を含んでいる。この領域情報は、バイトオフセット(又は他のデータ単位で表したオフセット)やメディアタイトルの映像内の時間オフセットで指定することができる。リクエストが要求している版が複数のファイルや非連続セグメントにまたがって格納されている場合には、その版に対するファイルエクステントインデックスを利用して、リクエストに指定されているデータ領域を取得する。ファイルエクステントインデックスは、対応する版のコンテンツを格納するファイルの識別子を、当該コンテンツが占めるデータ領域(例えば、バイトオフセットや時間オフセットで指定される領域)に対応付けるマッピングを行うものである。また、ファイルエクステントインデックスにおける、複数の識別子とこれに対応するデータ領域とをそれぞれ対応付けるマッピングの並び順により、当該版のメディアタイトルを最初から最後まで再生する際に、どの順序で映像コンテンツを取得するべきかを示している。リクエストを処理する際には、ファイルエクステントインデックス及び/又は(1つ以上の)セグメントインデックスに含まれるマッピングを利用して、取得対象のデータ領域を画定する1つ以上のオフセットを、ファイルエクステントインデックスに規定されているファイル内の1つ以上のオフセットにそれぞれ変換し、変換後の(1つ以上の)オフセットが示す領域を占めるデータを、当該ファイルから取得する。そして、取得したデータを、リクエストに対するレスポンスで返すことにより、当該データに対応する版のメディアタイトルを、当該リクエストの送信元のクライアントデバイス上で再生できるようにする。
【0087】
先行技術に対する本開示の技術の技術的優位性の1つとして、本開示の技術により、複数の版のメディアタイトル間における映像コンテンツの重複が低減される点が挙げられる。そのために、本開示の技術では、所定の映画のすべての版に共通する映像コンテンツについて、同一の映像コンテンツを複数のファイルに重複して複製するのではなく、共通の映像コンテンツのコピーを1つだけ格納できるようにしている。従って、本開示の技術によれば、ストリーミングのために複数の版のメディアタイトルの符号化や格納を行う際に消費される計算や記憶のリソースが抑えられる。また、先行技術に対する本開示の技術の他の技術的優位性として、所定の版のメディアタイトルの最初から最後までを符号化してパッケージ化する方式をとる先行技術とは異なり、本開示の技術では、所定の版のメディアタイトルの作成や変更を、効率的なモジュール方式で行うことができる点も挙げられる。これらの技術的優位性により、先行技術の手法に対する1つ以上の技術的改良が得られる。
【0088】
第1項
いくつかの実施形態では、メディアタイトルを再生するためにこれにアクセスするための、コンピュータで実装される方法は、クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、第1のファイルエクステントインデックスに基づいて、第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、当該1つ以上のファイルから第1のデータ領域を取得するステップと、第1のリクエストに対するレスポンスで、第1のデータ領域をクライアントデバイスに送信するステップと、を含む。第1のデータ領域は、第1の符号化版のメディアタイトルに含まれている。第1の符号化版のメディアタイトルは、第1のファイルセットにまたがって格納されている。上記の1つ以上のファイルは、第1のファイルセットに含まれている。第1のファイルエクステントインデックスは、第1のファイルセットに含まれる各ファイルの識別子を、当該ファイルに格納されているとともに第1の符号化版のメディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものである。上記の1つ以上のファイルのそれぞれから、第1のデータ領域の少なくとも一部が取得される。第1のデータ領域の当該少なくとも一部は、各ファイルに格納されている上記所定のデータ領域の範囲内に収まっている。
【0089】
第2項
第2のデータ領域を要求する第2のリクエストを受信するステップと、第1のファイルエクステントインデックスと、第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、第2のデータ領域を取得するステップと、をさらに含み、第2のデータ領域は、第1の符号化版のメディアタイトルにおける第1の時間オフセットから始まる領域であり、第1のセグメントインデックスは、第1の符号化版における1つ以上の時間オフセットを、第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、第1項に記載のコンピュータで実装される方法。
【0090】
第3項
第1のファイルエクステントインデックスと第1のセグメントインデックスとに基づいて第2のデータ領域を取得するステップが、第1のセグメントインデックスにおいて、第1の時間オフセットが対応付けられている第1のファイルにおける第1のオフセットを特定するステップと、第2のデータ領域の少なくとも一部を、第1のファイルにおける第1のオフセット以降から取得するステップと、を含む、第1項又は第2項に記載のコンピュータで実装される方法。
【0091】
第4項
第1のファイルエクステントインデックスと第1のセグメントインデックスとに基づいて第2のデータ領域を取得するステップが、第1のファイルエクステントインデックスに基づいて、第2のデータ領域の始まりが第1のファイルにあり、第2のデータ領域の終わりが第2のファイルにあることを特定するステップと、第1のファイルから第2のデータ領域の1番目の部分を取得するステップと、第2のファイルから第2のデータ領域の2番目の部分を取得するステップと、を含み、第2のデータ領域の1番目の部分は、第1のセグメントインデックスにおいて第1の時間オフセットに対応付けられている第1のオフセットから始まり、第1のファイルエクステントインデックスにおいて第1のファイルに対する第1の識別子に対応付けられている第2のオフセットで終わる部分であり、第2のデータ領域の2番目の部分は、第1のファイルエクステントインデックスにおいて第2のファイルに対する第2の識別子に対応付けられている第3のオフセットから始まり、第2のファイルに対する第2のセグメントインデックスにおいて第2のデータ領域の終端を画定する第2の時間オフセットに対応付けられている第4のオフセットで終わる部分である、第1項~第3項のいずれかに記載のコンピュータで実装される方法。
【0092】
第5項
第2のデータ領域を要求する第2のリクエストを受信するステップと、第2のファイルエクステントインデックスに基づいて、第2のデータ領域を取り出す際にアクセスする1つ以上のさらなるファイルを特定するステップと、1つ以上のさらなるファイルから第2のデータ領域を取得するステップと、をさらに含む、第1項~第4項のいずれかに記載のコンピュータで実装される方法。第2のデータ領域は、第2の符号化版のメディアタイトルに含まれている。第2の符号化版のメディアタイトルは、第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されている。上記の1つ以上のさらなるファイルは、第2のファイルセットに含まれている。第2のファイルエクステントインデックスは、第2のファイルセットに含まれる各さらなるファイルの識別子を、当該さらなるファイルに格納されているとともに第2の符号化版のメディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものである。上記の1つ以上のさらなるファイルのそれぞれから、第2のデータ領域の少なくとも一部が取得される。第2のデータ領域の少なくとも一部は、各さらなるファイルに格納されている上記所定のデータ領域の範囲内に収まっている。
【0093】
第6項
1つ以上のファイルから第1のデータ領域を取得するステップが、第1のデータ領域における開始オフセットを、第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、第1のファイルから第1のデータ領域の1番目の部分を取得するステップと、を含み、1番目の部分は、第1のファイルにおける第1のオフセットから始まる部分である、第1項~第5項のいずれかに記載のコンピュータで実装される方法。
【0094】
第7項
1つ以上のファイルから第1のデータ領域を取得するステップが、第2のファイルから第1のデータ領域の2番目の部分を取得するステップをさらに含み、2番目の部分は、第2のファイルにおける第2のオフセットで終わる部分であり、第2のオフセットは、第1のデータ領域の終端に対応するものである、第1項~第6項のいずれかに記載のコンピュータで実装される方法。
【0095】
第8項
第1のデータ領域における開始オフセットを、第1のファイルにおける第1のオフセットに変換するステップが、開始オフセットと、第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数とに基づいて、第1のファイルを割り出すステップと、開始オフセットと1つ以上のデータ領域が占めるバイト数との差分に基づいて、第1のオフセットを計算するステップと、を含む、第1項~第7項のいずれかに記載のコンピュータで実装される方法。
【0096】
第9項
第1のファイルセットが、メディアタイトルの1番目の部分を第1の言語で表したものを収めた第1のファイルと、メディアタイトルの1番目の部分を第2の言語で表したものを収めた第2のファイルと、を含んでいる、第1項~第8項のいずれかに記載のコンピュータで実装される方法。
【0097】
第10項
第1のファイルエクステントインデックスが、第1の符号化版のメディアタイトルの長さ情報を含んでいる、第1項~第9項のいずれかに記載のコンピュータで実装される方法。
【0098】
第11項
いくつかの実施形態では、非一時的なコンピュータ可読媒体は、プロセッサによって実行された場合に、クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、第1のファイルエクステントインデックスと、1つ以上のファイル識別子を1つ以上のファイルの場所に対応付ける1つ以上のファイルマッピングとに基づいて、第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、当該1つ以上のファイルから第1のデータ領域を取得するステップと、第1のリクエストに対するレスポンスで、第1のデータ領域をクライアントデバイスに送信するステップと、をプロセッサに実行させる命令を格納している。第1のデータ領域は、第1の符号化版のメディアタイトルに含まれている。第1の符号化版のメディアタイトルは、第1のファイルセットにまたがって格納されている。上記の1つ以上のファイルは、第1のファイルセットに含まれている。第1のファイルエクステントインデックスは、第1のファイルセットに含まれる各ファイルの識別子を、当該ファイルに格納されているとともに第1の符号化版のメディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものである。上記の1つ以上のファイルのそれぞれから、第1のデータ領域の少なくとも一部が取得される。第1のデータ領域の当該少なくとも一部は、各ファイルに格納されている上記所定のデータ領域の範囲内に収まっている。
【0099】
第12項
命令がプロセッサに、第2のデータ領域を要求する第2のリクエストを受信するステップと、第1のファイルエクステントインデックスと、第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、第2のデータ領域を取得するステップと、をさらに実行させ、第2のデータ領域は、第1の符号化版のメディアタイトルにおける第1の時間オフセットから始まる領域であり、第1のセグメントインデックスは、第1の符号化版における1つ以上の時間オフセットを、第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、第11項に記載の非一時的なコンピュータ可読媒体。
【0100】
第13項
第1のファイルエクステントインデックスと第1のセグメントインデックスとに基づいて第2のデータ領域を取得するステップが、第1のセグメントインデックスにおいて、第1の時間オフセットが対応付けられている第1のファイルにおける第1のオフセットを特定するステップと、第2のデータ領域の少なくとも一部を、第1のファイルにおける第1のオフセット以降から取得するステップと、を含む、第11項又は第12項に記載の非一時的なコンピュータ可読媒体。
【0101】
第14項
第1のファイルが、第1のセグメントと第2のセグメントとを含み、第1のセグメントから、第2のデータ領域の少なくとも一部を取得し、第2のセグメントには、第2の符号化版のメディアタイトルに含まれるコンテンツが格納されている、第11項~第13項のいずれかに記載の非一時的なコンピュータ可読媒体。
【0102】
第15項
命令がプロセッサに、第2のデータ領域を要求する第2のリクエストを受信するステップと、第2の符号化版のメディアタイトルに対する第2のファイルエクステントインデックスに基づいて、1つ以上のさらなるファイルから第2のデータ領域を取得するステップと、をさらに実行させ、第2のデータ領域は、第2の符号化版のメディアタイトルに含まれるものであり、1つ以上のさらなるファイルは、第1のファイルセットとオーバーラップしている第2のファイルセットに含まれている、第11項~第14項のいずれかに記載の非一時的なコンピュータ可読媒体。
【0103】
第16項
1つ以上のファイルから第1のデータ領域を取得するステップが、第1のデータ領域における開始オフセットを、第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、第1のファイルから第1のデータ領域の1番目の部分を取得するステップと、第2のファイルから第1のデータ領域の2番目の部分を取得するステップと、を含み、1番目の部分は、第1のファイルにおける第1のオフセットから始まる部分であり、第2のファイルは、第1のファイルエクステントインデックスにおいて第1のファイルの次のファイルである、第11項~第15項のいずれかに記載の非一時的なコンピュータ可読媒体。
【0104】
第17項
第1のデータ領域における開始オフセットを、第1のファイルにおける第1のオフセットに変換するステップが、第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数に基づいて、第1のファイルを割り出すステップと、開始オフセットと1つ以上のデータ領域が占めるバイト数との差分に基づいて、第1のオフセットを計算するステップと、を含む、第11項~第16項のいずれかに記載の非一時的なコンピュータ可読媒体。
【0105】
第18項
所定のデータ領域が、第1のファイルエクステントインデックス内の1つ以上のバイトオフセットで指定されている、第11項~第17項のいずれかに記載の非一時的なコンピュータ可読媒体。
【0106】
第19項
第1のファイルエクステントインデックスが、第1の符号化版のメディアタイトルの長さ情報と、第1の符号化版のメディアタイトルの更新時刻と、ファイル拡張子と、のうちの少なくとも1つを含んでいる、第11項~第18項のいずれかに記載の非一時的なコンピュータ可読媒体。
【0107】
第20項
いくつかの実施形態では、メディアタイトルを再生するためにこれを取得するための、コンピュータで実装される方法は、第1のデータ領域を要求する第1のリクエストをサーバマシンに送信するステップと、第1のリクエストに対するレスポンスで、サーバマシンから第1のデータ領域を受信するステップと、第1のデータ領域に対応するメディアコンテンツを再生用に出力するステップと、を含む。第1のデータ領域は、第1の符号化版のメディアタイトルに含まれている。第1の符号化版のメディアタイトルは、第1のファイルセットにまたがって格納されている。第1のデータ領域は、第1のファイルセットに含まれる1つ以上のファイル内に存在している。第1のファイルエクステントインデックスにより、第1のファイルセットに含まれる各ファイルの識別子を、当該ファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる。
【0108】
第21項
第2のデータ領域を要求する第2のリクエストをサーバマシンに送信するステップと、第2のリクエストに対するレスポンスで、サーバマシンから第2のデータ領域を受信するステップと、をさらに含み、第2のデータ領域は、第1の符号化版のメディアタイトルにおける第1の時間オフセットから始まる領域であり、第1のファイルに対する第1のセグメントインデックス内において、第1の時間オフセットは、第1のファイルにおける第1のオフセットに対応付けられている、第20項に記載のコンピュータで実装される方法。
【0109】
第22項
第2のデータ領域の少なくとも一部を、第1のファイルにおける第1のオフセット以降から取得する、第20項又は第21項に記載のコンピュータで実装される方法。
【0110】
第23項
第2のデータ領域を要求する第2のリクエストをサーバマシンに送信するステップと、第2のリクエストに対するレスポンスで、サーバマシンから第2のデータ領域を受信するステップと、をさらに含む、第20項~第22項のいずれかに記載のコンピュータで実装される方法。第2のデータ領域は、第2の符号化版のメディアタイトルに含まれている。第2の符号化版のメディアタイトルは、第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されている。第2のデータ領域は、第2のファイルセットに含まれる1つ以上のさらなるファイル内に存在している。第2のファイルエクステントインデックスにより、第2のファイルセットに含まれる各さらなるファイルの識別子を、当該さらなるファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる。
【0111】
第24項
第1のデータ領域の少なくとも一部を、第1のファイルセットに含まれる第1のファイルにおける第1のオフセット以降から取得し、第1のオフセットが、第1のデータ領域の開始オフセットに対応している、第20項~第23項のいずれかに記載のコンピュータで実装される方法。
【0112】
第25項
第1のファイルセットが、メディアタイトルの或る部分のオリジナル版を収めた第1のファイルと、メディアタイトルの或る部分の別版を収めた第2のファイルと、を含んでいる、第20項~第24項のいずれかに記載のコンピュータで実装される方法。
【0113】
第26項
別版が、オリジナル版に対する編集と、上記或る部分の地域版と、コンテンツに対するレイティング基準を満たす版と、のうちの少なくとも1つを含む、第20項~第25項のいずれかに記載のコンピュータで実装される方法。
【0114】
特許請求の範囲の任意の請求項に記載の任意の構成要素及び/又は本願明細書に記載の任意の要素の組み合わせは、どのような形の組み合わせであれ、ありとあらゆる組み合わせが、企図される本発明及び保護の範囲に含まれるものとする。
【0115】
種々の実施形態を説明しているが、これは例示を示す目的で提示したものに過ぎず、提示した実施形態は、本開示の実施形態を全て網羅することや、限定することを意図したものではない。当業者には、本明細書に記載の実施形態の範囲及び精神から逸脱しない多くの変更及び変形が明らかであろう。
【0116】
本実施形態の態様は、システム、方法又はコンピュータプログラム製品として具現化することができる。従って、本開示の態様は、完全にハードウェアのみの実施形態、完全にソフトウェアのみの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又はソフトウェアの側面とハードウェアの側面とを組み合わせた実施形態の形態をとることができ、本明細書では、これらすべてを総称して、「モジュール」、「システム」、又は「コンピュータ」と呼ぶ場合がある。また、本開示に記載のいかなるハードウェア及び/又はソフトウェア技術、プロセス、機能、コンポーネント、エンジン、モジュール、又はシステムも、単独の回路又は一組の回路として実装することができる。さらに、本開示の態様は、コンピュータプログラム製品の形態をとることもでき、1つ以上のコンピュータ可読媒体上のコンピュータ可読プログラムコードとして具現化することもできる。
【0117】
1つ以上のコンピュータ可読媒体を任意の組み合わせで利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、電子式、磁気式、光学式、電磁式、赤外線式、半導体式のシステム、装置、デバイス、又はこれらの任意の適切な組み合わせとすることができる。限定されるものではないが、コンピュータ可読記憶媒体のより具体的な例(ただし、網羅的に列挙するものではない)としては、1本以上の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶デバイス、磁気記憶デバイス、又はこれらの任意の適切な組み合わせが挙げられる。本稿の文脈では、コンピュータ可読記憶媒体は、命令を実行するシステム、装置、又はデバイスが利用する、又はこれらに関連付けて利用するためのプログラムを格納(記憶)することができる任意の有形媒体とすることができる。
【0118】
上記では、本開示の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品を示すフローチャート図及び/又はブロック図を参照しながら、本開示の態様を説明している。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータプログラム命令により実施できることが理解されるであろう。そして、これらのコンピュータプログラム命令を、汎用コンピュータ又は専用コンピュータなどのプログラム可能なデータ処理装置のプロセッサに提供することにより、マシンを製造することができる。命令は、コンピュータなどのプログラム可能なデータ処理装置のプロセッサにより実行されることにより、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/動作の実施を実現するものである。かかるプロセッサとしては、汎用プロセッサ、専用プロセッサ、特定用途プロセッサ、又はフィールドプログラマブルゲートアレイを挙げることができるが、限定されるものではない。
【0119】
図面に示すフローチャート及びブロック図は、本開示の種々の実施形態に係るシステム、方法、及びコンピュータプログラム製品の実施態様となり得るアーキテクチャ、機能性、及び動作を示すものである。この意味では、フローチャート又はブロック図の各ブロックが、そこに特定されている(1つ以上の)論理機能を実装するための1つ以上の実行可能命令を含む、コードのモジュール、セグメント、又は一部を表すと考えることができる。また、いくつかの代替的な実施態様では、ブロックに記載した機能を、図面に記載した順序とは異なる順序で実行できることにも留意されたい。例えば、連続ブロックとして図示されている2つのブロックを、実際には実質的に同時に実行することができるほか、あるいは、場合によっては、関連する機能に応じて、これらのブロックを逆の順序で実行することもできる。また、ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図のブロックの組み合わせを、そこに特定されている機能又は動作を実行する専用ハードウェアベースのシステムにより実装することができるほか、あるいは専用ハードウェアとコンピュータ命令の組み合わせにより実装することもできることにも留意されたい。
【0120】
なお、上述の説明は、本開示の実施形態に向けられたものであるが、本開示の基本的な範囲から逸脱しない範囲で、本開示の他の実施形態及びさらなる実施形態を考案することも可能であり、かかる範囲は、以下の特許請求の範囲により規定される。
【符号の説明】
【0121】
100 ネットワークインフラ
105 通信ネットワーク
110 コンテンツサーバ
115 エンドポイントデバイス
120 制御サーバ
130 クラウドサービス
204、304、410 CPU
206、306 システムディスク
208、308、414 I/Oデバイスインタフェース
210、310、418 ネットワークインタフェース
212、312、422 相互接続配線
214、314 システムメモリ
216、316 I/Oデバイス
217 サーバアプリケーション
218、600、602 ファイル
317 制御アプリケーション
318 データベース
412 グラフィックサブシステム
416 大容量記憶装置
430 メモリサブシステム
432 オペレーティングシステム
434 ユーザインタフェース
436 再生アプリケーション
438 プラットフォームプレーヤ
450 ディスプレイデバイス
452 ユーザI/Oデバイス
500、650 リクエスト
502 ファイルマッピング
504、628 ファイルエクステントインデックス
506 レスポンス
510、520 領域
508、512、514、518 識別子
516 メタデータ
522 パス
524 データ
530 セグメントインデックス
532 セグメント
604~626、630~642、654~664 (ファイルの)部分
652 レスポンス
図1
図2
図3
図4
図5
図6A
図6B
図7
【手続補正書】
【提出日】2023-10-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メディアタイトルを再生するためにこれにアクセスするための、コンピュータで実装される方法であって、
クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、
第1のファイルエクステントインデックスに基づいて、前記第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、
前記1つ以上のファイルから前記第1のデータ領域を取得するステップと、
前記第1のリクエストに対するレスポンスで、前記第1のデータ領域を前記クライアントデバイスに送信するステップと、
を含み、
前記第1のデータ領域は、第1の符号化版の前記メディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記1つ以上のファイルは、前記第1のファイルセットに含まれ、
前記第1のファイルエクステントインデックスは、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されているとともに前記第1の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のファイルのそれぞれから、前記第1のデータ領域の少なくとも一部が取得され、
該第1のデータ領域の該少なくとも一部は、該ファイルに格納されている前記所定のデータ領域の範囲内に収まっている、コンピュータで実装される方法。
【請求項2】
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第1のファイルエクステントインデックスと、前記第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、前記第2のデータ領域を取得するステップと、
をさらに含み、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
前記第1のセグメントインデックスは、前記第1の符号化版における1つ以上の時間オフセットを、前記第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、請求項1に記載のコンピュータで実装される方法。
【請求項3】
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のセグメントインデックスにおいて、前記第1の時間オフセットが対応付けられている前記第1のファイルにおける第1のオフセットを特定するステップと、
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得するステップと、
を含む、請求項2に記載のコンピュータで実装される方法。
【請求項4】
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のファイルエクステントインデックスに基づいて、前記第2のデータ領域の始まりが前記第1のファイルにあり、前記第2のデータ領域の終わりが第2のファイルにあることを特定するステップと、
前記第1のファイルから前記第2のデータ領域の1番目の部分を取得するステップと、
前記第2のファイルから前記第2のデータ領域の2番目の部分を取得するステップと、
を含み、
前記第2のデータ領域の前記1番目の部分は、前記第1のセグメントインデックスにおいて前記第1の時間オフセットに対応付けられている第1のオフセットから始まり、前記第1のファイルエクステントインデックスにおいて前記第1のファイルに対する第1の識別子に対応付けられている第2のオフセットで終わる部分であり、
前記第2のデータ領域の前記2番目の部分は、前記第1のファイルエクステントインデックスにおいて前記第2のファイルに対する第2の識別子に対応付けられている第3のオフセットから始まり、前記第2のファイルに対する第2のセグメントインデックスにおいて前記第2のデータ領域の終端を画定する第2の時間オフセットに対応付けられている第4のオフセットで終わる部分である、請求項2に記載のコンピュータで実装される方法。
【請求項5】
第2のデータ領域を要求する第2のリクエストを受信するステップと、
第2のファイルエクステントインデックスに基づいて、前記第2のデータ領域を取り出す際にアクセスする1つ以上のさらなるファイルを特定するステップと、
前記1つ以上のさらなるファイルから前記第2のデータ領域を取得するステップと、
をさらに含み、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記第2の符号化版の前記メディアタイトルは、前記第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されており、
前記1つ以上のさらなるファイルは、前記第2のファイルセットに含まれ、
前記第2のファイルエクステントインデックスは、前記第2のファイルセットに含まれる各さらなるファイルの識別子を、該さらなるファイルに格納されているとともに前記第2の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のさらなるファイルのそれぞれから、前記第2のデータ領域の少なくとも一部が取得され、
該第2のデータ領域の少なくとも一部は、該さらなるファイルに格納されている前記所定のデータ領域の範囲内に収まっている、請求項1に記載のコンピュータで実装される方法。
【請求項6】
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、
前記第1のデータ領域における開始オフセットを、前記第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、
前記第1のファイルから前記第1のデータ領域の1番目の部分を取得するステップと、
を含み、
前記1番目の部分は、前記第1のファイルにおける前記第1のオフセットから始まる部分である、請求項1に記載のコンピュータで実装される方法。
【請求項7】
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、第2のファイルから前記第1のデータ領域の2番目の部分を取得するステップをさらに含み、
前記2番目の部分は、前記第2のファイルにおける第2のオフセットで終わる部分であり、
前記第2のオフセットは、前記第1のデータ領域の終端に対応するものである、請求項6に記載のコンピュータで実装される方法。
【請求項8】
前記第1のデータ領域における前記開始オフセットを、前記第1のファイルにおける前記第1のオフセットに変換するステップが、
前記開始オフセットと、前記第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数とに基づいて、前記第1のファイルを割り出すステップと、
前記開始オフセットと前記1つ以上のデータ領域が占める前記バイト数との差分に基づいて、前記第1のオフセットを計算するステップと、
を含む、請求項6に記載のコンピュータで実装される方法。
【請求項9】
前記第1のファイルセットが、
前記メディアタイトルの1番目の部分を第1の言語で表したものを収めた第1のファイルと、
前記メディアタイトルの前記1番目の部分を第2の言語で表したものを収めた第2のファイルと、
を含んでいる、請求項1に記載のコンピュータで実装される方法。
【請求項10】
前記第1のファイルエクステントインデックスが、前記第1の符号化版の前記メディアタイトルの長さ情報を含んでいる、請求項1に記載のコンピュータで実装される方法。
【請求項11】
命令を格納する非一時的なコンピュータ可読媒体であって、プロセッサによって実行された場合に、前記命令は前記プロセッサに、
クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、
第1のファイルエクステントインデックスと、1つ以上のファイル識別子を1つ以上のファイルの場所に対応付ける1つ以上のファイルマッピングとに基づいて、前記第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、
前記1つ以上のファイルから前記第1のデータ領域を取得するステップと、
前記第1のリクエストに対するレスポンスで、前記第1のデータ領域を前記クライアントデバイスに送信するステップと、
を実行させ、
前記第1のデータ領域は、第1の符号化版のメディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記1つ以上のファイルは、前記第1のファイルセットに含まれ、
前記第1のファイルエクステントインデックスは、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されているとともに前記第1の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のファイルのそれぞれから、前記第1のデータ領域の少なくとも一部が取得され、
該第1のデータ領域の該少なくとも一部は、該ファイルに格納されている前記所定のデータ領域の範囲内に収まっている、非一時的なコンピュータ可読媒体。
【請求項12】
メディアタイトルを再生するためにこれを取得するための、コンピュータで実装される方法であって、
第1のデータ領域を要求する第1のリクエストをサーバマシンに送信するステップと、
前記第1のリクエストに対するレスポンスで、前記サーバマシンから前記第1のデータ領域を受信するステップと、
前記第1のデータ領域に対応するメディアコンテンツを再生用に出力するステップと、
を含み、
前記第1のデータ領域は、第1の符号化版の前記メディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記第1のデータ領域は、前記第1のファイルセットに含まれる1つ以上のファイル内に存在し、
第1のファイルエクステントインデックスにより、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる、方法。
【請求項13】
第2のデータ領域を要求する第2のリクエストを前記サーバマシンに送信するステップと、
前記第2のリクエストに対するレスポンスで、前記サーバマシンから前記第2のデータ領域を受信するステップと、
をさらに含み、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
第1のファイルに対する第1のセグメントインデックス内において、前記第1の時間オフセットは、前記第1のファイルにおける第1のオフセットに対応付けられている、請求項12に記載のコンピュータで実装される方法。
【請求項14】
前記第1のデータ領域の少なくとも一部を、前記第1のファイルセットに含まれる前記第1のファイルにおける第1のオフセット以降から取得し、
前記第1のオフセットが、前記第1のデータ領域の開始オフセットに対応している、請求項12に記載のコンピュータで実装される方法。
【請求項15】
前記第1のファイルセットが、
前記メディアタイトルの或る部分のオリジナル版を収めた第1のファイルと、
前記メディアタイトルの前記或る部分の別版を収めた第2のファイルと、
を含んでいる、請求項12に記載のコンピュータで実装される方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0120
【補正方法】変更
【補正の内容】
【0120】
なお、上述の説明は、本開示の実施形態に向けられたものであるが、本開示の基本的な範囲から逸脱しない範囲で、本開示の他の実施形態及びさらなる実施形態を考案することも可能であり、かかる範囲は、以下の特許請求の範囲により規定される。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
メディアタイトルを再生するためにこれにアクセスするための、コンピュータで実装される方法であって、
クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、
第1のファイルエクステントインデックスに基づいて、前記第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、
前記1つ以上のファイルから前記第1のデータ領域を取得するステップと、
前記第1のリクエストに対するレスポンスで、前記第1のデータ領域を前記クライアントデバイスに送信するステップと、
を含み、
前記第1のデータ領域は、第1の符号化版の前記メディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記1つ以上のファイルは、前記第1のファイルセットに含まれ、
前記第1のファイルエクステントインデックスは、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されているとともに前記第1の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のファイルのそれぞれから、前記第1のデータ領域の少なくとも一部が取得され、
該第1のデータ領域の該少なくとも一部は、該ファイルに格納されている前記所定のデータ領域の範囲内に収まっている、コンピュータで実装される方法。
実施形態2
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第1のファイルエクステントインデックスと、前記第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、前記第2のデータ領域を取得するステップと、
をさらに含み、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
前記第1のセグメントインデックスは、前記第1の符号化版における1つ以上の時間オフセットを、前記第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、実施形態1に記載のコンピュータで実装される方法。
実施形態3
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のセグメントインデックスにおいて、前記第1の時間オフセットが対応付けられている前記第1のファイルにおける第1のオフセットを特定するステップと、
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得するステップと、
を含む、実施形態2に記載のコンピュータで実装される方法。
実施形態4
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のファイルエクステントインデックスに基づいて、前記第2のデータ領域の始まりが前記第1のファイルにあり、前記第2のデータ領域の終わりが第2のファイルにあることを特定するステップと、
前記第1のファイルから前記第2のデータ領域の1番目の部分を取得するステップと、
前記第2のファイルから前記第2のデータ領域の2番目の部分を取得するステップと、
を含み、
前記第2のデータ領域の前記1番目の部分は、前記第1のセグメントインデックスにおいて前記第1の時間オフセットに対応付けられている第1のオフセットから始まり、前記第1のファイルエクステントインデックスにおいて前記第1のファイルに対する第1の識別子に対応付けられている第2のオフセットで終わる部分であり、
前記第2のデータ領域の前記2番目の部分は、前記第1のファイルエクステントインデックスにおいて前記第2のファイルに対する第2の識別子に対応付けられている第3のオフセットから始まり、前記第2のファイルに対する第2のセグメントインデックスにおいて前記第2のデータ領域の終端を画定する第2の時間オフセットに対応付けられている第4のオフセットで終わる部分である、実施形態2に記載のコンピュータで実装される方法。
実施形態5
第2のデータ領域を要求する第2のリクエストを受信するステップと、
第2のファイルエクステントインデックスに基づいて、前記第2のデータ領域を取り出す際にアクセスする1つ以上のさらなるファイルを特定するステップと、
前記1つ以上のさらなるファイルから前記第2のデータ領域を取得するステップと、
をさらに含み、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記第2の符号化版の前記メディアタイトルは、前記第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されており、
前記1つ以上のさらなるファイルは、前記第2のファイルセットに含まれ、
前記第2のファイルエクステントインデックスは、前記第2のファイルセットに含まれる各さらなるファイルの識別子を、該さらなるファイルに格納されているとともに前記第2の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のさらなるファイルのそれぞれから、前記第2のデータ領域の少なくとも一部が取得され、
該第2のデータ領域の少なくとも一部は、該さらなるファイルに格納されている前記所定のデータ領域の範囲内に収まっている、実施形態1に記載のコンピュータで実装される方法。
実施形態6
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、
前記第1のデータ領域における開始オフセットを、前記第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、
前記第1のファイルから前記第1のデータ領域の1番目の部分を取得するステップと、
を含み、
前記1番目の部分は、前記第1のファイルにおける前記第1のオフセットから始まる部分である、実施形態1に記載のコンピュータで実装される方法。
実施形態7
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、第2のファイルから前記第1のデータ領域の2番目の部分を取得するステップをさらに含み、
前記2番目の部分は、前記第2のファイルにおける第2のオフセットで終わる部分であり、
前記第2のオフセットは、前記第1のデータ領域の終端に対応するものである、実施形態6に記載のコンピュータで実装される方法。
実施形態8
前記第1のデータ領域における前記開始オフセットを、前記第1のファイルにおける前記第1のオフセットに変換するステップが、
前記開始オフセットと、前記第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数とに基づいて、前記第1のファイルを割り出すステップと、
前記開始オフセットと前記1つ以上のデータ領域が占める前記バイト数との差分に基づいて、前記第1のオフセットを計算するステップと、
を含む、実施形態6に記載のコンピュータで実装される方法。
実施形態9
前記第1のファイルセットが、
前記メディアタイトルの1番目の部分を第1の言語で表したものを収めた第1のファイルと、
前記メディアタイトルの前記1番目の部分を第2の言語で表したものを収めた第2のファイルと、
を含んでいる、実施形態1に記載のコンピュータで実装される方法。
実施形態10
前記第1のファイルエクステントインデックスが、前記第1の符号化版の前記メディアタイトルの長さ情報を含んでいる、実施形態1に記載のコンピュータで実装される方法。
実施形態11
命令を格納する非一時的なコンピュータ可読媒体であって、プロセッサによって実行された場合に、前記命令は前記プロセッサに、
クライアントデバイスから、第1のデータ領域を要求する第1のリクエストを受信するステップと、
第1のファイルエクステントインデックスと、1つ以上のファイル識別子を1つ以上のファイルの場所に対応付ける1つ以上のファイルマッピングとに基づいて、前記第1のデータ領域を取り出す際にアクセスする1つ以上のファイルを特定するステップと、
前記1つ以上のファイルから前記第1のデータ領域を取得するステップと、
前記第1のリクエストに対するレスポンスで、前記第1のデータ領域を前記クライアントデバイスに送信するステップと、
を実行させ、
前記第1のデータ領域は、第1の符号化版のメディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記1つ以上のファイルは、前記第1のファイルセットに含まれ、
前記第1のファイルエクステントインデックスは、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されているとともに前記第1の符号化版の前記メディアタイトルに含まれている所定のデータ領域に対応付けるマッピングを行うものであり、
前記1つ以上のファイルのそれぞれから、前記第1のデータ領域の少なくとも一部が取得され、
該第1のデータ領域の該少なくとも一部は、該ファイルに格納されている前記所定のデータ領域の範囲内に収まっている、非一時的なコンピュータ可読媒体。
実施形態12
前記命令が前記プロセッサに、
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第1のファイルエクステントインデックスと、前記第1のファイルセットに含まれる第1のファイルに対する第1のセグメントインデックスとに基づいて、前記第2のデータ領域を取得するステップと、
をさらに実行させ、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
前記第1のセグメントインデックスは、前記第1の符号化版における1つ以上の時間オフセットを、前記第1のファイルにおける1つ以上のオフセットに対応付けるマッピングを行うものである、実施形態11に記載の非一時的なコンピュータ可読媒体。
実施形態13
前記第1のファイルエクステントインデックスと前記第1のセグメントインデックスとに基づいて前記第2のデータ領域を取得するステップが、
前記第1のセグメントインデックスにおいて、前記第1の時間オフセットが対応付けられている前記第1のファイルにおける第1のオフセットを特定するステップと、
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得するステップと、
を含む、実施形態12に記載の非一時的なコンピュータ可読媒体。
実施形態14
前記第1のファイルが、第1のセグメントと第2のセグメントとを含み、
前記第1のセグメントから、前記第2のデータ領域の前記少なくとも一部を取得し、
前記第2のセグメントには、第2の符号化版の前記メディアタイトルに含まれるコンテンツが格納されている、実施形態12に記載の非一時的なコンピュータ可読媒体。
実施形態15
前記命令が前記プロセッサに、
第2のデータ領域を要求する第2のリクエストを受信するステップと、
前記第2の符号化版の前記メディアタイトルに対する第2のファイルエクステントインデックスに基づいて、1つ以上のさらなるファイルから前記第2のデータ領域を取得するステップと、
をさらに実行させ、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記1つ以上のさらなるファイルは、前記第1のファイルセットとオーバーラップしている第2のファイルセットに含まれている、実施形態11に記載の非一時的なコンピュータ可読媒体。
実施形態16
前記1つ以上のファイルから前記第1のデータ領域を取得するステップが、
前記第1のデータ領域における開始オフセットを、前記第1のファイルセットに含まれる第1のファイルにおける第1のオフセットに変換するステップと、
前記第1のファイルから前記第1のデータ領域の1番目の部分を取得するステップと、
第2のファイルから前記第1のデータ領域の2番目の部分を取得するステップと、
を含み、
前記1番目の部分は、前記第1のファイルにおける前記第1のオフセットから始まる部分であり、
前記第2のファイルは、前記第1のファイルエクステントインデックスにおいて前記第1のファイルの次のファイルである、実施形態11に記載の非一時的なコンピュータ可読媒体。
実施形態17
前記第1のデータ領域における前記開始オフセットを、前記第1のファイルにおける前記第1のオフセットに変換するステップが、
前記第1のファイルエクステントインデックスに含まれる1つ以上のデータ領域が占めるバイト数に基づいて、前記第1のファイルを割り出すステップと、
前記開始オフセットと前記1つ以上のデータ領域が占める前記バイト数との差分に基づいて、前記第1のオフセットを計算するステップと、
を含む、実施形態16に記載の非一時的なコンピュータ可読媒体。
実施形態18
前記所定のデータ領域が、前記第1のファイルエクステントインデックス内の1つ以上のバイトオフセットで指定されている、実施形態11に記載の非一時的なコンピュータ可読媒体。
実施形態19
前記第1のファイルエクステントインデックスが、前記第1の符号化版の前記メディアタイトルの長さ情報と、前記第1の符号化版の前記メディアタイトルの更新時刻と、ファイル拡張子と、のうちの少なくとも1つを含んでいる、実施形態11に記載の非一時的なコンピュータ可読媒体。
実施形態20
メディアタイトルを再生するためにこれを取得するための、コンピュータで実装される方法であって、
第1のデータ領域を要求する第1のリクエストをサーバマシンに送信するステップと、
前記第1のリクエストに対するレスポンスで、前記サーバマシンから前記第1のデータ領域を受信するステップと、
前記第1のデータ領域に対応するメディアコンテンツを再生用に出力するステップと、
を含み、
前記第1のデータ領域は、第1の符号化版の前記メディアタイトルに含まれるものであり、
前記第1の符号化版の前記メディアタイトルは、第1のファイルセットにまたがって格納されており、
前記第1のデータ領域は、前記第1のファイルセットに含まれる1つ以上のファイル内に存在し、
第1のファイルエクステントインデックスにより、前記第1のファイルセットに含まれる各ファイルの識別子を、該ファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる、方法。
実施形態21
第2のデータ領域を要求する第2のリクエストを前記サーバマシンに送信するステップと、
前記第2のリクエストに対するレスポンスで、前記サーバマシンから前記第2のデータ領域を受信するステップと、
をさらに含み、
前記第2のデータ領域は、前記第1の符号化版の前記メディアタイトルにおける第1の時間オフセットから始まる領域であり、
第1のファイルに対する第1のセグメントインデックス内において、前記第1の時間オフセットは、前記第1のファイルにおける第1のオフセットに対応付けられている、実施形態20に記載のコンピュータで実装される方法。
実施形態22
前記第2のデータ領域の少なくとも一部を、前記第1のファイルの前記第1のオフセット以降から取得する、実施形態21に記載のコンピュータで実装される方法。
実施形態23
第2のデータ領域を要求する第2のリクエストを前記サーバマシンに送信するステップと、
前記第2のリクエストに対するレスポンスで、前記サーバマシンから前記第2のデータ領域を受信するステップと、
をさらに含み、
前記第2のデータ領域は、第2の符号化版の前記メディアタイトルに含まれるものであり、
前記第2の符号化版の前記メディアタイトルは、第1のファイルセットとオーバーラップしている第2のファイルセットにまたがって格納されており、
前記第2のデータ領域は、前記第2のファイルセットに含まれる1つ以上のさらなるファイル内に存在し、
第2のファイルエクステントインデックスにより、前記第2のファイルセットに含まれる各さらなるファイルの識別子を、該さらなるファイルに格納されている所定のデータ領域に対応付けるマッピングが行われる、実施形態20に記載のコンピュータで実装される方法。
実施形態24
前記第1のデータ領域の少なくとも一部を、前記第1のファイルセットに含まれる前記第1のファイルにおける第1のオフセット以降から取得し、
前記第1のオフセットが、前記第1のデータ領域の開始オフセットに対応している、実施形態20に記載のコンピュータで実装される方法。
実施形態25
前記第1のファイルセットが、
前記メディアタイトルの或る部分のオリジナル版を収めた第1のファイルと、
前記メディアタイトルの前記或る部分の別版を収めた第2のファイルと、
を含んでいる、実施形態20に記載のコンピュータで実装される方法。
実施形態26
前記別版が、前記オリジナル版に対する編集と、前記或る部分の地域版と、コンテンツに対するレイティング基準を満たす版と、のうちの少なくとも1つを含む、実施形態25に記載のコンピュータで実装される方法。
【国際調査報告】