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

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

▶ アイドム リミテッドの特許一覧

特許7748215動的メディアを生成するシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-24
(45)【発行日】2025-10-02
(54)【発明の名称】動的メディアを生成するシステム及び方法
(51)【国際特許分類】
   H04N 21/854 20110101AFI20250925BHJP
   H04N 21/2668 20110101ALI20250925BHJP
   H04N 21/845 20110101ALI20250925BHJP
【FI】
H04N21/854
H04N21/2668
H04N21/845
【請求項の数】 38
【外国語出願】
(21)【出願番号】P 2021117762
(22)【出願日】2021-07-16
(65)【公開番号】P2022019682
(43)【公開日】2022-01-27
【審査請求日】2024-03-27
(31)【優先権主張番号】16/931,984
(32)【優先日】2020-07-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521316523
【氏名又は名称】アイドム リミテッド
(74)【代理人】
【識別番号】100111202
【弁理士】
【氏名又は名称】北村 周彦
(72)【発明者】
【氏名】ダニー カリッシュ
(72)【発明者】
【氏名】エリック ロバート ユージン
(72)【発明者】
【氏名】アリエル マルコス アイザック ネーマド
【審査官】橋沼 和樹
(56)【参考文献】
【文献】特表2015-530781(JP,A)
【文献】特開2003-061038(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
非一時的なコンピューターで読取可能な記憶装置に動作可能に結合された一つ以上のプロセッサーによって実行される、カスタマイズされた動的ビデオを生成する方法であって、前記記憶装置は、実行されると、前記一つ以上のプロセッサーに、
a.カスタマイズされた動的ビデオを生成する要求を受信するステップ、
b.予め定義された分割設定を用いて、前記カスタマイズされた動的ビデオのタイムラインを、一連のチャンクディスクリプターに分割するステップであって、各チャンクディスクリプターは前記タイムラインの間隔によって定義され、前記カスタマイズされた動的ビデオのビデオチャンクに対応しているステップ、
c.各チャンクディスクリプターに対して、前記ビデオチャンクの視覚的又は時間的特性を表すパラメータの組の組み合わせに基づいて識別子を構築し、前記識別子を前記チャンクディスクリプターに関連付けるステップ、
d.各チャンクディスクリプターに対して、以前にレンダリング及び符号化されたビデオチャンクのキャッシュに、前記チャンクディスクリプターの識別子と一致する前記識別子によって索引付けられたビデオチャンクについて問い合わせるステップ、
e.識別子が前記問い合わされた識別子と一致するビデオチャンクが見出された場合、前記ビデオチャンクを前記キャッシュから回収するステップ、
f.それ以外の場合は、前記要求によって特定されたように、前記チャンクディスクリプターのタイムライン間隔に対して、前記ビデオチャンクをレンダリング及び符号化し、前記識別子によって索引付けられた前記ビデオチャンクを、前記キャッシュに保存するステップ、
g.前記ビデオチャンクを併合し、前記カスタマイズされた動的ビデオを生成するステップ、
を含む前記方法を実行させる指令コードのモジュールを記憶している。
【請求項2】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、画面の境界において分割することを含む、請求項1の方法。
【請求項3】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、一つ以上の動的対象物が前記ビデオに入った、又は、出て行く時間で分割することを含む、請求項1の方法。
【請求項4】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、一定のサイズの間隔に分割することを含む、請求項1の方法。
【請求項5】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、一定の色の区画に沿って分割することを含む、請求項1の方法。
【請求項6】
前記予め定義された分割設定によって生成された区画は、予め定義された区画サイズによって拘束される、請求項1の方法。
【請求項7】
前記識別子は、ハッシュ値であり、及び/又はいくつかのハッシュアルゴリズムの結果に基づいている、請求項1の方法。
【請求項8】
前記ハッシュアルゴリズムは、ハッシュコンピュータの、
a.前記ビデオチャンクと関連付けられる前記タイムラインの間隔の継続時間を表す継続時間ハッシュを計算する要素、
b.前記ビデオチャンクと関連付けられる前記タイムラインの間隔に含まれる前記ビデオチャンクの静的要素の構成を表す静的ハッシュを計算する要素、
c.前記ビデオチャンクと関連付けられる前記ビデオ内の動的要素の構成を表す動的ハッシュを計算する要素、
d.前記ビデオのエンコーダー及びその構成を表すエンコーダーハッシュを計算する要素、
のうちの少なくとも一つの又はそのいくつかの組み合わせを含む、請求項7の方法。
【請求項9】
前記ビデオチャンクは、ビデオフレームの一部のみを含む、請求項8の方法。
【請求項10】
前記チャンクディスクリプターは、前記識別子を構築するために使用される中間値を記憶する、請求項1の方法。
【請求項11】
静的ハッシュ値に基づいて同一と識別された、二つ以上のビデオチャンクの静的要素は、一回のみ生成され、二つ以上のビデオチャンクをレンダリングするために使用される、請求項8の方法。
【請求項12】
二つ以上の動的ビデオは同時に生成され、同一の静的要素を有する前記ビデオチャンクは、異なる出力ビデオに属している、請求項11の方法。
【請求項13】
同一の静的要素を有する前記ビデオチャンクは、同じ出力ビデオに属している、請求項11の方法。
【請求項14】
非一時的なコンピューターで読取可能な記憶装置に動作可能に結合された一つ以上のプロセッサーによって実行される、カスタマイズされた動的オーディオを生成する方法であって、前記記憶装置は、実行されると、前記一つ以上のプロセッサーに、
a.カスタマイズされた動的オーディオを生成する要求を受信するステップ、
b.予め定義された分割設定を用いて、前記カスタマイズされた動的オーディオのタイムラインを、一連のチャンクディスクリプターに分割するステップであって、各チャンクディスクリプターは前記タイムラインの間隔によって定義され、前記カスタマイズされた動的オーディオのオーディオチャンクに対応しているステップ、
c.各チャンクディスクリプターに対して、前記オーディオチャンクの視覚的又は時間的特性を表すパラメータの組の組み合わせに基づいて識別子を構築し、前記識別子を前記チャンクディスクリプターに関連付けるステップ、
d.各チャンクディスクリプターに対して、以前にレンダリング及び符号化されたオーディオチャンクのキャッシュに、前記チャンクディスクリプターの識別子と一致する前記識別子によって索引付けられたオーディオチャンクについて問い合わせるステップ、
e.識別子が前記問い合わされた識別子と一致するオーディオチャンクが見出された場合、前記オーディオチャンクを前記キャッシュから回収するステップ、
f.それ以外の場合は、前記要求によって特定されたように、前記チャンクディスクリプターのタイムライン間隔に対して、前記オーディオチャンクをレンダリング及び符号化し、前記識別子によって索引付けられた前記オーディオチャンクを、前記キャッシュに保存するステップ、
g.前記オーディオチャンクを併合し、前記カスタマイズされた動的オーディオを生成するステップ、
を含む前記方法を実行させる指令コードのモジュールを記憶している。
【請求項15】
前記予め定義された分割設定は、カスタマイズされた動的オーディオの記タイムラインを、画面の境界において分割することを含む、請求項1の方法。
【請求項16】
前記予め定義された分割設定は、カスタマイズされた動的オーディオの記タイムラインを、一つ以上の動的オーディオ要素が再生を開始又は停止した時間で分割することを含む、請求項1の方法。
【請求項17】
前記予め定義された分割設定は、カスタマイズされた動的オーディオの記タイムラインを、一定のサイズの間隔に分割することを含む、請求項1の方法。
【請求項18】
前記予め定義された分割設定は、カスタマイズされた動的オーディオの記タイムラインを、無音の区画に沿って分割することを含む、請求項1の方法。
【請求項19】
前記予め定義された分割設定によって生成された区画は、予め定義された区画サイズによって拘束される、請求項1の方法。
【請求項20】
前記識別子は、ハッシュ値であり、及び/又はいくつかのハッシュアルゴリズムの結果に基づいている、請求項1の方法。
【請求項21】
ッシュ計算は、ハッシュコンピューティングの、
a.ビデオチャンクと関連付けられる間隔の継続時間を表す継続時間ハッシュを計算する要素、
b.前記チャンクと関連付けられる前記タイムラインの間隔に含まれるオーディオの静的要素の構成を表す静的ハッシュを計算する要素、
c.前記チャンクと関連付けられる前記オ-ディオ内の動的要素の構成を表す動的ハッシュを計算する要素、
d.前記オーディオのエンコーダー及びその構成を表すエンコーダーハッシュを計算する要素、
のうちの少なくとも一つの又はそのいくつかの組み合わせを含む、請求項2の方法。
【請求項22】
前記チャンクディスクリプターは、前記識別子を構築するために使用される中間値を記憶する、請求項2の方法。
【請求項23】
静的ハッシュ値に基づいて同一であると識別された、二つ以上のオーディオチャンクの静的要素は、一回のみ生成され、二つ以上のオーディオチャンクをレンダリングするために使用される、請求項2の方法。
【請求項24】
二つ以上の動的オーディオは同時に生成され、同一の静的要素を有する前記チャンクは、異なる出力オーディオに属する、請求項2の方法。
【請求項25】
同一の静的要素を有する前記チャンクは、同じ出力オーディオに属している、請求項2の方法。
【請求項26】
非一時的なコンピューターで読取可能な記憶装置に動作可能に結合された一つ以上のプロセッサーによって実行される、カスタマイズされた動的ビデオを生成するシステムであって、
a.要求されたカスタマイズされた動的ビデオのタイムラインを、予め定義された分割設定を用いて、一連のチャンクディスクリプターに分割する分割モジュールであって、前記チャンクディスクリプターは、前記タイムラインの間隔によって定義され、前記カスタマイズされた動的ビデオのビデオチャンクに相当している分割モジュール、
b.前記ビデオチャンクの視覚的又は時間的特性を表すパラメータの組の組み合わせに基づいて、各チャンクディスクリプターに対して識別子を構築し、前記識別子を前記チャンクディスクリプターに関連付け、
各チャンクディスクリプターに対して、以前にレンダリング及び符号化されたビデオチャンクのキャッシュに、前記チャンクディスクリプターの識別子と一致する前記識別子によって索引付けられたビデオチャンクについて問い合わせ、
識別子が前記問い合わされた識別子と一致するビデオチャンクが見出された場合、前記ビデオチャンクを前記キャッシュから回収し、
それ以外の場合は、前記要求によって特定されたように、前記チャンクディスクリプターのタイムライン間隔に対して前記ビデオチャンクをレンダリング及び符号化し、前記識別子によって索引付けられた前記ビデオチャンクを、前記キャッシュに保存するチェックモジュール、
c.前記ビデオチャンクを併合し、前記カスタマイズされた動的ビデオを生成する併合モジュール、
を含む。
【請求項27】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、画面の境界において分割することを含む、請求項2のシステム。
【請求項28】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、一つ以上の動的対象物が前記ビデオに入った、又は、出て行く時間で分割することを含む、請求項2のシステム。
【請求項29】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、一定のサイズの間隔に分割することを含む、請求項2のシステム。
【請求項30】
前記予め定義された分割設定は、前記カスタマイズされた動的ビデオのタイムラインを、一定の色の区画に沿って分割することを含む、請求項2のシステム。
【請求項31】
前記予め定義された分割設定によって生成された区画は、予め定義された区画サイズによって拘束される、請求項2のシステム。
【請求項32】
前記識別子は、ハッシュ値であり、及び/又はいくつかのハッシュアルゴリズムの結果に基づいている、請求項2のシステム。
【請求項33】
前記ハッシュアルゴリズムは、ハッシュコンピューティングの
a.前記ビデオチャンクと関連付けられる前記タイムラインの間隔の継続時間を表す継続時間ハッシュを計算する要素、
b.前記ビデオチャンクと関連付けられる前記タイムラインの間隔に含まれる前記ビデオチャンクの静的要素の構成を表す静的ハッシュを計算する要素、
c.前記ビデオチャンクと関連付けられる前記ビデオ内の動的要素の構成を表す動的ハッシュを計算する要素、
d.前記ビデオのエンコーダー及びその構成を表すエンコーダーハッシュを計算する要素、
のうちの少なくとも一つ又はそのいくつかの組み合わせを含む、請求項3のシステム。
【請求項34】
前記ビデオチャンクは、ビデオフレームの一部のみを含む、請求項2のシステム。
【請求項35】
前記チャンクディスクリプターは、前記識別子を構築するために使用される中間値を記憶する、請求項2のシステム。
【請求項36】
静的ハッシュ値に基づいて同一と識別された、二つ以上のビデオチャンクの静的要素は、一回のみ生成され、二つ以上のビデオチャンクをレンダリングするために使用される、請求項3のシステム。
【請求項37】
二つ以上の動的ビデオが同時に生成され、同一の静的要素を有する前記チャンクは、異なる出力ビデオに属している、請求項3のシステム。
【請求項38】
同一の静的要素を有する前記チャンクは、同じ出力ビデオに属している、請求項3のシステム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動的ビデオ生成分野に関する。特には、本発明は、個人向けの動的ビデオを生成する方法に関する。
【背景技術】
【0002】
個人向けのビデオは、その中身を末端視聴者に合わせることのできるビデオである。テンプレートが取り込まれて、対象の読み手に固有の情報をもって変更されるメールの作成と同様に、個人向けのビデオは、想定された視聴者の視聴体験を向上させるために組み合わせて調整できる一つ以上のビデオテンプレート要素から構成される。
【0003】
個人向けビデオは、比類のないレベルの顧客管理及び実行を提供する人間中心のソリューションとして、マーケティング、セールス、カスタマーケア、ソーシャルメディアで広く使用される。それらは、さらに、電気通信、電力、銀行、保険、小売、自動車などの業界で使用され、顧客獲得と顧客関係管理をサポートする。
【0004】
ビデオの作成には、レンダリングと符号化の二つの基本的な操作が含まれ、レンダリングは、各出力フレームに対してピクセルカラーを決定し、符号化は、ビデオデータを記憶装置に適した形式に変換し、処理中にデータを圧縮する場合もある。これらの操作は高価であることが知られており、従って、通常、ビデオ生成プロセス中に最も多くの時間を消費する。
【0005】
ビデオはオーディオ情報も含む場合があり、オーディオの場合も同様に考えられる。オーディオの場合は、したがって、各オーディオデータサンプルの振幅レベルを決定するレンダリングプロセス、及び、オーディオデータを変換し、潜在的に圧縮する符号化プロセスを含む。
【0006】
現在の技術は、並列処理システム、具体的には、グラフィカル処理ユニット(GPU)や他の関連技術を用いて、個人向けビデオをレンダリングし、符号化することを可能にする。そうであっても、レンダリング及び符号化は基本的な操作であるため、それらの計算は処理パイプラインのかなりの部分を表し、このことは、多数のビデオにわたってかなりのコストに換算される。本発明は、既にレンダリング及び/又は符号化された結果を再利用することによって可能となるレンダリング及び/又は符号化操作を回避することに関する。
【0007】
以下の説明において、用語「動的」及び「個人向け」は、交換可能に使用される。用語「ハッシュ」、「UID」、「一意的識別子」は、同様に交換可能に使用される。最後に、用語「ビデオ」は、混乱をもたらす場合がある。私たちのより技術的な議論では、「ビデオ」は、オーディオデータや他の情報の形式と区別できる視覚データを指す。一方、より高いレベルでの議論では、私たちは、より一般的な使用を意図しており、末端視聴者が見ているもの、完全な経験としてともに取り入れられた、ビデオ及びオーディオ(及び字幕など)情報の組み合わせ、を指す。後者のコンテキストでは、「ビデオ」及び「メディア」は交換可能に使用される。
【発明の概要】
【0008】
本発明は、非一時的なコンピューターで読取可能な記憶装置に動作可能に結合された一つ以上のプロセッサーによって実行される、カスタマイズされた動的ビデオを生成する方法を提供する。前記記憶装置は、実行されると、前記一つ以上のプロセッサーに、
a.カスタマイズされた動的ビデオを生成する要求を受信するステップ、
b.予め定義された分割設定を用いて、前記カスタマイズされた動的ビデオのタイムラインを、一連のチャンクディスクリプターに分割するステップであって、各チャンクディスクリプターは前記タイムラインの間隔によって定義され、前記カスタマイズされた動的ビデオのビデオチャンクに対応しているステップ、
c.各チャンクディスクリプターに対して、前記ビデオチャンクの視覚的、時間的及びその他の特性を表すパラメータの組の組み合わせに基づいて識別子を構築し、前記識別子を前記チャンクディスクリプターに関連付けるステップ、
d.各チャンクディスクリプターに対して、以前にレンダリング及び符号化されたビデオチャンクのキャッシュに、前記チャンクディスクリプターの識別子と一致する前記識別子によって索引付けられたビデオチャンクについて問い合わせるステップ、
e.識別子が前記問い合わされた識別子と一致するビデオチャンクが見出された場合、前記ビデオチャンクを前記キャッシュから回収するステップ、
f.それ以外の場合は、前記要求によって特定されたように、前記チャンクディスクリプターのタイムライン間隔に対して、前記ビデオチャンクをレンダリング及び符号化し、前記識別子によって索引付けられた前記ビデオチャンクを、前記キャッシュに保存するステップ、
g.前記ビデオチャンクを併合し、前記カスタマイズされた動的ビデオを生成するステップ、
を含む前記方法を実行させる指令コードのモジュールを記憶している。
【0009】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、画面の境界において分割することを含む。
【0010】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、一つ以上の動的対象物が前記ビデオに入った、又は、出て行く時間で分割することを含む。
【0011】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、一定のサイズの間隔に分割することを含む。
【0012】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、一定の色の区画に沿って分割することを含む。
【0013】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定によって生成された前記区画は、予め定義された区画サイズによって拘束される。
【0014】
本発明のいくつかの実施形態によれば、前記識別子は、ハッシュ値であり、及び/又はいくつかのハッシュアルゴリズムの結果に基づいている。
【0015】
本発明のいくつかの実施形態によれば、前記ハッシュ計算は、ハッシュコンピューティングの、
a.前記チャンクと関連付けられる前記間隔の前記継続時間を表す前記継続時間ハッシュを計算する要素、
b.前記チャンクと関連付けられる前記間隔に含まれる前記ビデオの静的要素の前記構成を表す前記静的ハッシュを計算する要素、
c.前記チャンクと関連付けられる前記ビデオ内の動的要素の前記構成を表す前記動的ハッシュを計算する要素、
d.前記ビデオの前記エンコーダー及びその構成を表す前記エンコーダーハッシュを計算する要素、
の少なくとも一つ又はそのいくつかの組み合わせを含む。
【0016】
本発明のいくつかの実施形態によれば、前記チャンクは、ビデオフレームの一部のみを含む。
【0017】
本発明のいくつかの実施形態によれば、前記チャンクディスクリプターは、前記最終識別子を構築するために使用される中間値を記憶する。
【0018】
本発明のいくつかの実施形態によれば、静的ハッシュ値に基づいて同一と識別された、二つ以上のビデオチャンクの静的要素は、一回のみ生成され、二つ以上のビデオチャンクをレンダリングするために使用される。
【0019】
本発明のいくつかの実施形態によれば、二つ以上の動的ビデオは同時に生成され、同一の静的要素を有する前記チャンクは、異なる出力ビデオに属している。
【0020】
本発明のいくつかの実施形態によれば、同一の静的要素を有する前記チャンクは、同じ出力ビデオに属している。
【0021】
本発明のいくつかの実施形態によれば、前記ビデオタイムラインは、単独フレームからなり、前記出力ビデオは、静止画像からなる。
【0022】
本発明は、非一時的なコンピューターで読取可能な記憶装置に動作可能に結合された一つ以上のプロセッサーによって実行される、カスタマイズされた動的オーディオを生成する方法を提供する。前記記憶装置は、実行されると、前記一つ以上のプロセッサーに、
e.カスタマイズされた動的オーディオを生成する要求を受信するステップ、
f.予め定義された分割設定を用いて、前記カスタマイズされた動的オーディオのタイムラインを、一連のチャンクディスクリプターに分割するステップであって、各チャンクディスクリプターは前記タイムラインの間隔によって定義され、前記カスタマイズされた動的オーディオのオーディオチャンクに対応しているステップ、
g.各チャンクディスクリプターに対して、前記ビデオチャンクの視覚的、時間的及びその他の特性を表すパラメータの組の組み合わせに基づいて識別子を構築し、前記識別子を前記チャンクディスクリプターに関連付けるステップ、
h.各チャンクディスクリプターに対して、以前にレンダリング及び符号化されたオーディオチャンクのキャッシュに、前記チャンクディスクリプターの識別子と一致する前記識別子によって索引付けられたオーディオチャンクについて問い合わせるステップ、
i.識別子が前記問い合わされた識別子と一致するオーディオチャンクが見出された場合、前記オーディオチャンクを前記キャッシュから回収するステップ、
j.それ以外の場合は、前記要求によって特定されたように、前記チャンクディスクリプターのタイムライン間隔に対して、前記オーディオチャンクをレンダリング及び符号化し、前記識別子によって索引付けられた前記オーディオチャンクを、前記キャッシュに保存するステップ、
k.前記オーディオチャンクを併合し、前記カスタマイズされた動的オーディオを生成するステップ、
を含む前記方法を実行させる指令コードのモジュールを記憶している。
【0023】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記オーディオタイムラインを、画面の境界において分割することを含む。
【0024】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記オーディオタイムラインを、一つ以上の動的オーディオ要素が再生を開始又は停止した時間で分割することを含む。
【0025】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記オーディオタイムラインを、一定のサイズの間隔に分割することを含む。
【0026】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記オーディオタイムラインを、無音の区画に沿って分割することを含む。
【0027】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定によって生成された前記区画は、予め定義された区画サイズによって拘束される。
【0028】
本発明のいくつかの実施形態によれば、前記識別子は、ハッシュ値であり、及び/又はいくつかのハッシュアルゴリズムの結果に基づいている。
【0029】
本発明のいくつかの実施形態によれば、前記ハッシュ計算は、ハッシュコンピューティングの、
l.前記チャンクと関連付けられる前記間隔の前記継続時間を表す前記継続時間ハッシュを計算する要素、
m.前記チャンクと関連付けられる前記間隔に含まれる前記オーディオの静的要素の前記構成を表す前記静的ハッシュを計算する要素、
n.前記チャンクと関連付けられる前記オーディオ内の動的要素の前記構成を表す前記動的ハッシュを計算する要素、
o.前記オーディオの前記エンコーダー及びその構成を表す前記エンコーダーハッシュを計算する要素、
のうちの少なくとも一つ又はそのいくつかの組み合わせを含む。
【0030】
本発明のいくつかの実施形態によれば、前記チャンクディスクリプターは、前記最終識別子を構築するために使用される中間値を記憶する。
【0031】
本発明のいくつかの実施形態によれば、静的ハッシュ値に基づいて同一であると識別された、二つ以上のオーディオチャンクの静的要素は、一回のみ生成され、二つ以上のオーディオチャンクをレンダリングするために使用される。
【0032】
本発明のいくつかの実施形態によれば、二つ以上の動的オーディオは同時に生成され、同一の静的要素を有する前記チャンクは、異なる出力オーディオに属する。
【0033】
本発明のいくつかの実施形態によれば、同一の静的要素を有する前記チャンクは、同じ出力オーディオに属している。
【0034】
本発明は、非一時的なコンピューターで読取可能な記憶装置に動作可能に結合された一つ以上のプロセッサーによって実行される、カスタマイズされた動的ビデオを生成するシステムを提供する。前記システムは、
p.要求されたカスタマイズされた動的ビデオのタイムラインを、予め定義された分割設定を用いて、一連のチャンクディスクリプターに分割する分割モジュールであって、前記チャンクディスクリプターは、前記タイムラインの間隔によって定義され、前記カスタマイズされた動的ビデオのビデオチャンクに相当しており、
q.前記ビデオチャンクの視覚的、時間的及びその他の特性を表すパラメータの組の組み合わせに基づいて、各チャンクディスクリプターに対して識別子を構築し、前記識別子を前記チャンクディスクリプターに関連付け、
各チャンクディスクリプターに対して、以前にレンダリング及び符号化されたビデオチャンクのキャッシュに、前記チャンクディスクリプターの識別子と一致する前記識別子によって索引付けられたビデオチャンクについて問い合わせ、
識別子が前記問い合わされた識別子と一致するビデオチャンクが見出された場合、前記ビデオチャンクを前記キャッシュから回収し、
それ以外の場合は、前記要求によって特定されたように、前記チャンクディスクリプターのタイムライン間隔に対して前記ビデオチャンクをレンダリング及び符号化し、前記識別子によって索引付けられた前記ビデオチャンクを、前記キャッシュに保存するチェックモジュール、
r.前記ビデオチャンクを併合し、前記カスタマイズされた動的ビデオを生成する併合モジュール、
を含む。
【0035】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、画面の境界において分割することを含む。
【0036】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、一つ以上の動的対象物が前記ビデオに入った、又は、出て行く時間で分割することを含む。
【0037】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、一定のサイズの間隔に分割することを含む。
【0038】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定は、前記ビデオタイムラインを、一定の色の区画に沿って分割することを含む。
【0039】
本発明のいくつかの実施形態によれば、前記予め定義された分割設定によって生成された前記区画は、予め定義された区画サイズによって拘束される。
【0040】
本発明のいくつかの実施形態によれば、前記識別子は、ハッシュ値であり、及び/又はいくつかのハッシュアルゴリズムの結果に基づいている。
【0041】
本発明のいくつかの実施形態によれば、前記ハッシュ計算は、ハッシュコンピューティングの、
s.前記チャンクと関連付けつけられる前記間隔の前記継続時間を表す前記継続時間ハッシュを計算する要素、
t.前記チャンクと関連付けつけられる前記間隔に含まれる前記ビデオの静的要素の前記構成を表す前記静的ハッシュを計算する要素、
u.前記チャンクと関連付けけられる前記ビデオ内の動的要素の前記構成を表す前記動的ハッシュを計算する要素、
v.前記ビデオの前記エンコーダー及びその構成を表す前記エンコーダーハッシュを計算する要素、
のうちの少なくとも一つ又はそのいくつかの組み合わせを含む。
【0042】
本発明のいくつかの実施形態によれば、前記チャンクは、ビデオフレームの一部のみを含む。
【0043】
本発明のいくつかの実施形態によれば、前記チャンクディスクリプターは、前記最終識別子を構築するために使用される中間値を記憶する。
【0044】
本発明のいくつかの実施形態によれば、静的ハッシュ値に基づいて同一と識別された、二つ以上のビデオチャンクの静的要素は、一回のみ生成され、二つ以上のビデオチャンクをレンダリングするために使用される。
【0045】
本発明のいくつかの実施形態によれば、二つ以上の動的ビデオが同時に生成され、同一の静的要素を有する前記チャンクは、異なる出力ビデオに属している。
【0046】
本発明のいくつかの実施形態によれば、同一の静的要素を有する前記チャンクは、同じ出力ビデオに属している。
【0047】
本発明のいくつかの実施形態によれば、前記ビデオタイムラインは、単独フレームからなり、前記出力ビデオは、静止画像からなる。
【図面の簡単な説明】
【0048】
本発明は、以下に添付した図面と同様に、その実施形態の詳細な説明から容易に理解される。
図1】(従来技術)現在のビデオレンダリング技術の動的ムービータイムラインを示す。画面は、任意のz指標(z指標が大きいことが、視聴者に近いことに対応する)と同様に、時間軸に沿った任意のポイントに配置される。
図2A】(従来技術)二つの画面を表し、それぞれは、一つ以上のビデオ、画像、テキスト又は他のアセットを含む。タイミング(開始、オフセット)、及び、z指標などのいくつかの特性は、画面とその構成レイヤーの構成を制御する。それぞれの横には、画面が静的要素と動的要素のレイヤーから構成される方法を示すスケッチがある。
図2B】(従来技術)二つの画面を表し、それぞれは、一つ以上のビデオ、画像、テキスト又は他のアセットを含む。タイミング(開始、オフセット)、及び、z指標などのいくつかの特性は、画面とその構成レイヤーの構成を制御する。それぞれの横には、画面が静的要素と動的要素のレイヤーから構成される方法を示すスケッチがある。
図3】本発明のいくつかの実施形態に係る動的ビデオ生成管理システムのブロック図である。
図3A】本発明のいくつかの実施形態に係る、単一のキャッシュデータベースにアクセスする複数の動的ビデオ生成モジュールの図である。
図4A】本発明のいくつかの実施形態において、ビデオタイムラインをビデオチャンクディスクリプターに分割するモジュールのフロー図である。
図4B】本発明のいくつかの実施形態に係る、オーディオタイムラインをオーディオチャンクディスクリプターに分割するモジュールのフロー図である。
図5A】本発明のいくつかの実施形態に係る、ビデオチャンク識別(ハッシュ)モジュールの図である。
図5B】本発明のいくつかの実施形態に係る、オーディオチャンク識別(ハッシュ) モジュールの図である。
図6】本発明のいくつかの実施形態に係る、チャンクキャッシュクエリモジュールの図である。
図7A】本発明のいくつかの実施形態に係る、ビデオレンダリングモジュールの典型的な非最適化実行のフロー図である。
図7B】本発明のいくつかの実施形態に係る、ビデオレンダリングモジュールの非最適化実行に対する、経時的なレンダリング及び符号化イベントを示す。
図7C】本発明のいくつかの実施形態に係る、単一静的/多重動的(SSMD)最適化を利用することができる場合におけるビデオレンダリングモジュールの実行のフロー図である。
図7D】本発明のいくつかの実施形態に係る、ビデオレンダリングモジュールのSSMD最適化実行に対する、経時的なレンダリング及び符号化イベントを示す。
図8】本発明のいくつかの実施形態に係る、併合モジュールのフロー図である
図9A】本発明のいくつかの実施形態に係る、タイムラインをチャンクディスクリプターに分割する例である。
図9B】本発明のいくつかの実施形態に係る、タイムラインをチャンクディスクリプターに分割する他の例である。このタイムラインは、最初の画面での追加画面、及び残りの画面に対しての時間におけるシフトを除いて、図9Aと同様である。
図9C】本発明のいくつかの実施形態に係る、タイムラインをチャンクディスクリプターに分割する他の例である。このタイムラインは、最終付近での追加画面、及び他の二つの画面に対するz値におけるシフトを除いて、図9Aと同様である。
図10】本発明のいくつかの実施形態に係る、チャンクハッシュアルゴリズムの例である。
【発明を実施するための形態】
【0049】
本発明の少なくとも一つの実施形態を詳細に説明する前に、本発明は以下の記載に明らかにされた、又は、図面に示された要素の構成及び配置の詳細への適用に限定されないことが理解されるべきである。本発明は、他の実施形態に適用可能で、様々な方法で実行され又は実施される。また、ここに使用される用語は説明のためのものであり、限定されるとみなされるべきではなことが理解される。
【0050】
動的ムービー生成:従来技術。現在の動的ムービー生成技術によれば、図1(従来技術)に示されるように、ムービーは、タイムライン上に、コラージュ状形状に配置された一つ以上の画面から構成され、各画面は、特定の時間に乗り、特定された継続時間だけ持続し、特定されたz指標(視聴者からの「距離」)に位置している。画面は、テンプレート化された構築ブロックと考えることができる。それらはレイヤーを含み、レイヤーは、画像、ビデオ、テキスト、オーディオなどのアセットを保持する。含んでいる画面とその構成レイヤーの双方は、ビデオの作成のパラメータとして機能するプロパティを公開する場合がある。例えば、画面は、開始時間や継続時間などのタイミングプロパティを公開する場合があり、タイミングプロパティは、グローバルタイムライン上で画面をいつ開始するか、及び、表示する画面がどのくらいか、又は、複数の画面がビデオに同時に現れる場合に、画面の前後の順序の制御を管理するz指標を制御する。同様に、構成レイヤーは、透明度を管理するプロパティ、境界ボックスに対するアセットの位置合わせプロパティ、特には、アセット自体を公開する場合がある。画面構築ブロックを参照し、公開されたプロパティに対して値を特定することによって、ビデオが、末端視聴者用にカスタマイズされるように組み立てられて生成される。さらに、この「ビデオコラージュ」は、JSON又はXMLのような高レベルのオブジェクト記述フォーマットによって特定される場合がある。
【0051】
異なる可能性がある末端視聴者に対してそれぞれが意図された、何千、又は何百万のムービーに亘って、アセットとプロパティのいくつかは大きく変化し、いくつかは同一である。ビデオからビデオへ同じままのものを静的と呼び、変化するものを動的と呼ぶ。
【0052】
図2A及び図2B(従来技術)に示される画面の例において、背景は静的であり、テキスト及び犬のイメージは動的である。これらの動的要素は、「プレースホルダー」とも呼ばれる。したがって、図2A及び図2B(従来技術)では、テキスト及び前景画像はプレースホルダーである。
【0053】
各画面の構成、レイヤー、及びプレースホルダーの定義等は、その機能が、その画面のテンプレートとして作用する所定のフォーマットに記載される。それぞれの一意のムービーに対する構成が、その後、JavaScript Object Notation (JSON)などの階層データ構造を特定するのに便利ないくつかのフォーマット/メソッド/表記法で特定される。具体的には、最終的なビデオの多くの側面は、この単純化されたフォーマットを使用して特定され、例えば、どの画面がビデオに現れるか、それらが時間内にいつ再生されるか、それらがどこに(z空間内で)乗っているか、各画面の内のどのプレースホルダーを満たすためにどのアセットが使用されるか、他のプレースホルダー属性(整列、フォント等)などが特定される。
【0054】
与えられたビデオキャンペーンに対し、一般に、何千、又は何万のビデオに亘って同一である複数の区画がある。例えば、静的コンテンツのみを有する部分、及び、動的であるが、ビデオに亘って同一のプレースホルダー構成を有する部分である。本発明は、この仮説を利用して、既にレンダリングされた及び/又は符号化されたビデオのフレーム部分のレンダリング及び/又は符号化を回避する、動的ビデオを生成する改良された効率的な方法を提供する。
【0055】
チャンクキャッシングを用いた動的ムービー生成。図3に、本発明のいくつかの実施形態に係る、いくつかの要求エンティティ200及びチャンクキャッシュデータベース120に関連付けられた動的メディアジェネレーター130のブロック図を示す。要求エンティティは、ムービーの所望の構成の記述を含むビデオ要求を、動的メディアジェネレーター130に送る。この記述は、タイムラインを構築するための指令の形式、タイムラインのオブジェクトベースの記述 (JSONのような形式) 、又は、時間中ムービーの視覚的及び音響的な構成を適切に記述するその他の形式で受け取られる。
【0056】
動的メディアジェネレーター130は、分割モジュール1320A及び/又は1320B、チャンク識別モジュール1340A及び/又は1340B、チャンクキャッシュクエリモジュール1360、チャンクレンダリングモジュール1380(A及び/又はB...) 、及び、および併合モジュール1400から構成される。さらに、動的メディアジェネレーター130は、チャンクキャッシュデータベース120に関連付けられている。図3Aに示されるように、複数の動的メディアジェネレータモジュール130は、同じチャンクキャッシュデータベース200を使用することができる。
【0057】
ムービータイムラインの分割。分割モジュール1320は、要求に記載されているタイムラインを、チャンクディスクリプターと呼ばれる個別の区画に分割する。チャンクディスクリプターと関連付けられる主な情報は、識別子(以下の名前付けチャンクを参照)及びグローバルムービータイムライン上での時間間隔に対する基準である。間隔情報は、開始及び終了時間、開始時間及び継続時間、又は等価的な形式の形状をとることがある。各チャンクディスクリプターは、それゆえ、最終ビデオ又はオーディオストリームのチャンクをレンダリング及び/又は符号化するために使用される。
【0058】
分割処理は、いわゆるチャンクキャッシュヒットの可能性を最適化するように設計された所定の設定にしたがって作動する。チャンクキャッシュヒットは、既にレンダリングされたチャンクが、(チャンクキャッシュデータベース内に)見出され、その構成が、チャンクディスクリプターによって記述されたものと同一で、それゆえ、現在生成されているムービーによって必要とされる場合に起こる。ビデオのレンダリング/符号化及びオーディオのレンダリング/符号化は別々のプロセスであるので、異なる分割設定がそれぞれに対して使用される。しかし、同じビデオ及びオーディオの設定が、全てのムービーに亘って使用され、チャンクキャッシュヒットの可能性を最適化する。
【0059】
図4A及び図4Bは、さらに、それぞれビデオ及びオーディオに対する分割プロセスを詳細に示す。双方の場合、設定は、一定の継続時間のチャンクに分割すること、画面又はレイヤー境界のようなタイムライン記述の一定の特性を介して分割すること、又は、他の手段によって分割することを含む。ビデオデータに対しては、少なくとも五つのオプションがあり、その一つ以上は、組み合されたり、最終設定に一体化されたりしてもよい。
【0060】
オプション1:画面境界に基づいた分割(ステップ1326A)。
オプション2:動的レイヤーが可視状態である間隔、又はより一般的には、動的レイヤーがチャンクの可視構成に影響を及ぼす間の間隔に基づいた分割(ステップ1328A)。
オプション3:一定の長さの間隔への分割(ステップ1340A)。
オプション4:空白の間隔(すなわち、一定の色のビデオ情報を有する間隔、例えば、全黒色)に基づいた分割。
オプション5:動的ビデオコンテンツを有しない間隔に基づいた分割。
【0061】
分割オプションに加えて、分割設定は、ある制約を含む。
制約1:ビデオチャンクの長さが、最小長さよりも大きい。
制約2:ビデオチャンクの長さが、最大長さよりも小さい。
【0062】
以下は、複数のオプション及び制約を合体するビデオ分割設定を実行するアルゴリズムの一例である。
1.タイムラインを、画面の境界で、開始及び終了する間隔に分割する(オプション1)。
2.生成された各間隔を、一定サイズの間隔にさらに分割する (オプション3) 。ステップ1で生成された任意の間隔の長さが、所望の一定サイズの倍数でない場合、このステップは、より小さいサイズの少なくとも一つの間隔を生成する。
3.ステップ2で生成された任意の間隔が最小長よりも小さい場合は、これらの間隔を隣接する間隔の一つと組み合わせる。
【0063】
この及び同様の設定において、分割は、ムービーの絶対タイミングに対して不変である。このプロパティは、例えば、新しい画面がムービーの最初に追加された場合でも、キャッシュヒットの可能性を高くする (具体的な例については、おもちゃの例を参照) 。
【0064】
オーディオデータに関しては、少なくとも五つのオプションがあり、その一つ以上は組み合されたり、最終設定に一体化されたりしてもよい。
【0065】
オプション1:画面の境界に基づいた分割(ステップ1326B)。
オプション2:動的レイヤーが視聴可能状態である間隔、又はより一般的には、動的レイヤーがチャンクの音声構成に影響を及ぼす間の間隔に基づいた分割(ステップ1328B)。
オプション3:一定の長さの間隔への分割(ステップ1340B)。
オプション4:無音の間隔(すなわち、無音又は非常に静かなオーディオ情報の間隔)に基づいた分割。
オプション5:動的オーディオコンテンツを有しない間隔に基づいた分割。
【0066】
オーディオ分割オプションに加えて、分割設定は、ある制約を含む。
制約1:オーディオチャンクの長さが、最小長さよりも大きい。
制約2:オーディオチャンクの長さが、最大長さよりも小さい。
【0067】
前述したビデオ分割アルゴリズムと類似するオーディオ分割アルゴリズムは、オーディオチャンク分割設定を示すために使用される。
【0068】
名前付けチャンク。本発明に使用される主要技術は、それらの構成の一部又は全てに基づいて、チャンク及び/又はチャンクディスクリプターの迅速な識別及びマッチングを可能とする。この技術は、等価性を迅速に比較できる単純な一意識別子(UID)を生成することを含む。UIDが構成可能である限り、それらは任意の形式をとることができる。しかしながら、典型的な実施形態では、それらはハッシュ値として表され、この理由から、「UID」及び「ハッシュ」(又は「ハッシュ値」)を交換可能に使用する。
【0069】
チャンク識別モジュール1340(A及びB)は、図5A(ビデオ用)及び図5B(オーディオ用)にさらに詳述されている技術を使用して、各チャンクディスクリプターのUIDを、通常はハッシュ値の形式で、計算する。UID生成設定の目標は、二つの類似してはいるが同一ではない二つの構成を区別するのに十分にユニークで、同一と思われるこれらの構成と同等とするのに包括的な値を合成することである。
【0070】
ハッシュ値はチャンクごとに生成される。このハッシュは、一つ以上のハッシュ値から(又は1対1の関係において、それらの組合わせと関連付けられた他の方法で)構成され、それらのそれぞれは、構成のいくつかのサブ要素を表す。構成サブ要素を正確に表現するために、ハッシュ値は、高レベルのムービータイムライン記述(例えば、高レベルのJSON記述から)に見出される値から、画面の記述に見られる値から、及び/又は、他のデータソースからの値から構成されてもよい。
【0071】
図5Aは、本発明のいくつかの実施形態に係る、ビデオチャンク識別モジュール1340Aの負担を介したこのプロセスを示す。この図は、複数の値の少なくとも一つの計算を特定する。
【0072】
静的ハッシュ:全ての静的要素及びそれらの構成を表すハッシュ値であり、チャンクの位置に対するタイムライン上のそれらの位置を任意に含み、それらがそれらの序数z値を暗に又は明らかに含むことを任意に含む(ステップ1344A)。
動的ハッシュ:全ての動的要素及びそれらの構成を表すハッシュ値であり、チャンクの位置に対するタイムライン上のそれらの位置を任意に含み、それらがそれらの序数z値を暗に又は明示的に含むことを任意に含む(ステップ1346A)。
エンコーダーハッシュ:エンコーダー及びその構成を表すハッシュ値であり、出力解像度、1秒当たりのフレーム数(fps)、コーデック名(H.264、pngなど)、コーデック構成などの値を任意に含む(ステップ1348A)。
継続時間ハッシュ:このチャンクが対応するタイムライン間隔の継続時間を表すハッシュ値(ステップ1350A)
【0073】
前述の序数z値(OZV)は、それらの絶対位置又は一様な相対位置を符号化せずに、画面の順序のみを符号化する方法である。これらは、z値によってソートされた画面の配列において画面のインデックスを取得することによって計算される。例えば、以下のz値を持つ三つのシーンを有するとする。
画面A@z=3
画面B@z=7
画面C@z=1
OZVは以下のとおりとする。
OZV(画面A)=1
OZV(画面B)=2
OZV(画面C)=0
画面Cは最も後方であるので、画面A及びその後画面Bに続く。確かに、この方法は画面の順序を符号化する一つの方法にすぎないが、実際には、そのような任意の方法を実際に使用してもよい。
【0074】
上記に挙げたハッシュ値のいくつか又は全ては、その後、組み合わされて、「フルハッシュ」を生成し(1352A)、その後、そのサブ構成に基づいてその全体の構成を区別することによってチャンクを識別するために使用される。
【0075】
図10は、本発明のいくつかの実施形態において、ビデオハッシュアルゴリズムの疑似コードの例である。ここで、ハッシュ()手順は、入力データ上で任意のハッシュ操作を実行し、組合せ()手順は、入力ハッシュ値を単独の値に組み合わせる。組合せ()手順は、入力値の順序に対して不変である場合には可換XOR演算子に基づき、順序に反応する場合には、非可換演算子に基づく。さらに、「c.duration」は「c」という名前の構造に含まれる「継続時間」項を取得するC言語スタイルの構文である。
【0076】
図10の全体的な手順の効果は、上記の四つのサブ要素のハッシュ値を埋め、それらを完全なハッシュに結合することである。チャンクを識別するためにサブ要素のハッシュ値を保存する必要はない。ただし、これらの値は、他の目的に使用でき、例えば、静的ハッシュは、後述するSSMD最適化の実行に使用することができる。
【0077】
上記で説明したプロセスは、ビデオチャンクの識別にやや重点が置かれている。オーディオの場合も同様である。オーディオにおいて、ビデオの場合のようなz空間の概念はない。それゆえ、画面の序数z値は、オーディオチャンクのハッシュ計算に含められない。
【0078】
おもちゃの例。分割及び名前付けプロセスを説明したので、いくつかのおもちゃの例は、本発明が、既にレンダリング及び符号化されたビデオ又はオーディオのチャンクのレンダリング及び符号化をどのように回避することを可能にするかを示すために役立つ。わかりやすく簡単にするために、一般性を失わずに、これらの例をビデオの場合の観点で説明する。
【0079】
図9A図9B図9Cは、本発明のいくつかの実施形態に係る、チャンク分割の例を示す。これらのムービーが与えられた順序でレンダリングされると仮定し、同じチャンクキャッシュデータベースにアクセスすると、レンダリング及び符号化時間を節約できるいくつかのケースがある。チャンク名(「C1」、「C2」など)は、チャンクの再利用を示すためにサンプル間で維持され、例えば、図9Aのチャンク「C3」は、図9B及び図9Cにおいてそれらの名付けられた「C3」と同一である。
【0080】
図9Aは、最初のサンプルムービーのタイムラインを示す。それは、二つの異なるz指標に位置付けられた四つの画面を含む。この場合、分割モジュールは、タイムラインを、画面の境界にしたがって、五つの間隔に分割する。以下の表は、各チャンクに関連付けられた画面を特定する。各構造内において、各画面は、いわゆる序数z値(OZV)と関連付けられる。上記説明したように、画面のz序数のみが重要で、それら間のz距離は重要ではないため、OZVが使用される。太字フォントは、項目がレンダリングされることを必要とすること、このケースでは、それらの全てを特定する。
【0081】
図9Bは、第2のサンプルムービーのタイムラインを示す。新しい画面S5が最初に見出される以外は、図9Aからのムービーとほとんど同一であり、他の全ては、S5以降開始するように時間をシフトされている。チャンクC1~C5は、時間をシフトされている。しかしながら、画面の境界で分割しているので、画面に対する分割点は、そのようなタイムシフトに対して不変であり、それらを再レンダリングする必要はない。したがってC1~C5は再利用でき、C6のみがレンダリングを必要とする。タイムラインの下の表は、チャンクが、レンダリングされることが必要であることを太字で示し、それ以外はすべてキャッシュ内に見出される。
【0082】
図9Cは、第3のサンプルムービーのタイムラインを示す。ここでは、画面S2及びS4は、z空間内に詰められている。加えて、S3の継続時間を通した半分から始まる画面S6がある。このムービーは、前のものと大きく異なるように見えるが、序数z値を記録し、絶対又は相対z値を記録していないので、C2、C3及びC4が、既存の例からのキャッシュに見出される。C7及びC8のみがレンダリングを必要とする。
【0083】
チャンクキャッシュデータベースの問合せ。チャンクキャッシュクエリモジュール1360は、チャンクキャッシュデータベース120に、チャンク識別モジュール1340A及び/又は1340Bによって計算されたUIDに基づいて、チャンクに対して問い合わせる。チャンクがキャッシュ内で利用可能でない場合(1366)、チャンクディスクリプターに従って、レンダリングモジュール1380によってレンダリング及び符号化され、チャンクキャッシュデータベース120に、検索キーとして機能するそのUIDとともに記録される(ステップ1368A)。チャンクが、チャンクキャッシュデータベース120から取り出される場合、レンダリング及び符号化ステップ全体をスキップすることができる(1364)。このプロセスは図6に示される。
【0084】
レンダリング及び符号化チャンク(必要時)。問合せ中にチャンクがチャンクキャッシュデータベース内に見出されなかった場合、関連するレンダリングモジュール1380(A又はB)が作動され、チャンクディスクリプター内の情報、通常は、グローバルタイムラインに対する開始時間及び終了時間、に基づいて、要求の初期処理中に組み立てられた画面グラフと共に、チャンクをレンダリング及び符号化するように指示される。最適化されていない場合、各チャンクが個別にレンダリングされ、レンダリングモジュール1380は、チャンクディスクリプターの特定された時間間隔上で全てのフレーム又はオーディオサンプルをレンダリング及び符号化し、全てを最終的なビデオ又はオーディオのチャンクに書き込む。全プロセスは、図7Aに示され、その実行フローは図7Bに詳細に示される。チャンクが静的データと動的データの両方を有する場合、レンダリングプロセス自体は、符号化の前に、少なくとも二つのサブステップ、静的データのレンダリングと動的データのレンダリング、を含むと考えることができる。
【0085】
単独静的/多重動的(SSMD)最適化。本発明のいくつかの実施形態よれば、二つ以上の動的ビデオが同時に生成されてもよい。これが起こると、二つの異なるビデオから、いくつかの静的チャンク、又は、チャンクの静的要素が、それらの静的ハッシュ値を比較することによって、同一であると識別されることがある。この場合、これらのチャンク又はチャンク要素は、一時的にハードウェアメモリにキャッシュされ、最終的には複数のビデオで使用するために1回だけ生成される。
【0086】
いくつかの実施形態では、いわゆる単一静的/多重動的(SSMD)最適化を実施することが有利であり得る。この最適化は、前述のチャンク及びハッシュ設定の利点がある。ただし、ビデオのレンダリングされた及び符号化された区画をキャッシュ内に探す代わりに、静的要素を複数のチャンクで使用するために1回だけレンダリングするのみにより、レンダリングレベルで最適化される。
【0087】
より詳細には、SSMDは、動的要素が異なる場合でも、その静的要素が同一であるチャンクに対してチャンクディスクリプターを取り入れる。これらのチャンクディスクリプターは、どのチャンクディスクリプターが同一の静的ハッシュ値を有しているかを識別することによって、簡単に比較され、グループ化されることができる(1370B)。グループ化されると、それらは、次のようにレンダリング及び符号化される。まず、ファイルが、各出力チャンクに対して作成されて開かれ、次に、範囲内の各フレームに対して、グループ内の各チャンクに対して、フレームをレンダリングし、そのチャンクに対応するファイルに符合化し、ファイルを閉じる。
【0088】
中間静的要素をレンダリングするためのバッファーを有すると仮定すると、フレームを反復処理する外側のループとチャンクを反復処理する内側のループで、レンダリングプロセスを実行すると、静的要素バッファーは、連続する各レンダリング呼び出しで更新される必要がなく、グループ内の第1チャンクを除く全てに対して静的要素のレンダリングが防止される(1374B)。これは、レンダリング時間の大幅な短縮になる。この違いは、非最適化ケースの実行フロー(図7Bを参照)をSSMD最適化ケースの実行フロー(図7Dを参照)を比較することで理解される。SSMDの場合、フレームごとに、グループ内のKチャンク間の「静的」レンダリング実行の一つを除く全てが省略される。
【0089】
全ての要素の最終ムービーへの併合。関連するチャンク及びメタデータの全てが利用可能になると、併合モジュール1400は、所望の出力を生成し始める。そのために、このモジュールは、最終的な出力ムービーを作成するために必要な全ての記述で開始する。この記述は、元の要求及び/又はそれから導出されたデータから得ることができる。それは、ビデオ及び/又はオーディオチャンクディスクリプターの一つ以上のリスト、及び/又は字幕や他のメタデータなどの情報ストリームの記述を含むことができる。本発明のいくつかの実施形態において、併合モジュールの動作のフロー図が、図8に示される。
【0090】
併合モジュール1400は、次に、出力ムービー記述にしたがって出力を書き込む。出力ムービーが視覚情報を含む場合、つまり、ビデオチャンクディスクリプターの任意のリストに対して、このモジュールは、チャンクキャッシュデータベース120又はビデオレンダリングモジュール1380Aのいずれかからこれらのチャンクの全てを収集又は受信し、その内容を出力の関連ストリームにコピーし、プロセス内のチャンクを連結する(1402A)。チャンクは、所望のコーデックを介して既に符号化されているので、簡単にコピーできる。再符号化を回避すると、チャンクの併合処理を非常に高速にできる。オーディオの場合に対しては(1402B)、プロセスは、オーディオチャンクがチャンクキャッシュデータベース120又はオーディオレンダリングモジュール1380Bのいずれかから受信又は収集されることを除いて、非常に類似している。
【0091】
上述のように、オーディオ及びビデオデータに加えて、出力ムービー記述は、最終ムービーが、字幕又は他の種類のメタデータなどの他の情報のストリームを含むべきであることを特定できる(1404)。そうである場合、併合モジュール1400は、関連情報を受信又は収集し、関連ストリームを出力に書き込む。これらの補助ストリームに対するデータは、要求自体からのものでも、要求によって参照される外部ソースからのものでもよい。
【0092】
併合モジュール1400が、出力をフォーマットすることと、要求されたストリームの全てをそれに書き込むことを終了すると、生成された出力メディアは完了する。動的メディアジェネレーター130は、要求エンティティに完了を通知する。
図1
図2A
図2B
図3
図3A
図4A
図4B
図5A
図5B
図6
図7A
図7B
図7C
図7D
図8
図9A
図9B
図9C
図10