(57)【要約】ダウンロードされるＳＷＦデータの動画を表示するまでにかかる時間を短縮させる。ＨＴＭＬデータに対応したＷｅｂブラウザを有する動画再生可能な端末１００が提供される。端末は、Ｆｌａｓｈ構造体の複数の種類それぞれに関するＦｌａｓｈ構造体からＨＴＭＬ構造体への複数の変換ルールを記憶するメモリ１２０と、ディスプレイ１３１と、複数の動画フレームデータを含む動画用のＳＷＦデータをダウンロードするための通信インターフェイス１４０と、前記ＳＷＦデータのダウンロード中に、受信が完了した動画フレームデータのＦｌａｓｈ構造体をＨＴＭＬ構造体に変換し、前記Ｗｅｂブラウザを利用することによって当該ＨＴＭＬ構造体に基づいて前記ディスプレイに動画を表示させるためのプロセッサ１１０とを備える。
2014024255.tif 000002
【特許請求の範囲】
【請求項１】
ＨＴＭＬデータに対応したＷｅｂブラウザを有する動画再生可能な端末であって、
Ｆｌａｓｈ構造体の複数の種類それぞれに関するＦｌａｓｈ構造体からＨＴＭＬ構造体への複数の変換ルールを記憶するメモリと、
ディスプレイと、
複数の動画フレームデータを含む動画用のＳＷＦデータをダウンロードするための通信インターフェイスと、
前記ＳＷＦデータのダウンロード中に、受信が完了した動画フレームデータのＦｌａｓｈ構造体をＨＴＭＬ構造体に変換し、前記Ｗｅｂブラウザを利用することによって当該ＨＴＭＬ構造体に基づいて前記ディスプレイに動画を表示させるためのプロセッサとを備える、端末。
【請求項２】
前記プロセッサは、受信が完了した前記動画フレームデータを前記メモリ上に展開し、前記動画フレームデータに含まれるタグ構造を解析することによってＦｌａｓｈ構造体を特定し、前記複数の変換ルールに従って前記Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換し、変換された前記ＨＴＭＬ構造体を解釈および実行するための前記Ｗｅｂブラウザ用のエンジンプログラムを生成し、前記Ｗｅｂブラウザ上で前記エンジンプログラムを実行することによって前記ＨＴＭＬ構造体に基づいて前記ディスプレイに動画を表示させる、請求項１に記載の端末。
【請求項３】
前記複数の変換ルールは、オブジェクトの形状を特定するためのＦｌａｓｈ構造体から当該オブジェクトの形状を特定するためのＨＴＭＬ構造体へ変換するためのシェイプ変換ルールを含み、
前記プロセッサは、前記複数のＦｌａｓｈ構造体のうちの前記オブジェクトの形状を特定するためのＦｌａｓｈ構造体を、前記シェイプ変換ルールに従ってＨＴＭＬ構造体に変換する、請求項１または２に記載の端末。
【請求項４】
前記複数の変換ルールは、フォントおよびテキストを特定するためのＦｌａｓｈ構造体から当該フォントおよび当該テキストを特定するためのＨＴＭＬ構造体へ変換するためのフォントテキスト変換ルールを含み、
前記プロセッサは、前記複数のＦｌａｓｈ構造体のうちの前記フォントおよび前記テキストを特定するためのＦｌａｓｈ構造体を、前記フォントテキスト変換ルールに従ってＨＴＭＬ構造体に変換する、請求項１から３のいずれか１項に記載の端末。
【請求項５】
前記複数の変換ルールは、カラーを特定するためのＦｌａｓｈ用のアルファチャンネルを有した色変換構造体から当該カラーを特定するためのＨＴＭＬ構造体へ変換するためのカラー変換ルールを含み、
前記プロセッサは、前記複数のＦｌａｓｈ構造体のうちの、前記カラーを特定するためのＦｌａｓｈ用の色変換構造体を、前記カラー変換ルールに従ってＨＴＭＬ構造体に変換する、請求項１から４のいずれか１項に記載の端末。
【請求項６】
ＨＴＭＬデータに対応したＷｅｂブラウザを有し、Ｆｌａｓｈ構造体の複数の種類それぞれに関するＦｌａｓｈ構造体からＨＴＭＬ構造体への複数の変換ルールを記憶した端末のプロセッサに、
通信インターフェイスを介して、複数の動画フレームデータを含む動画用のＳＷＦデータをダウンロードするステップと、
前記ＳＷＦデータのダウンロード中に、受信が完了した動画フレームデータのＦｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップと、
前記ＳＷＦデータのダウンロード中に、前記Ｗｅｂブラウザを利用することによって当該ＨＴＭＬ構造体に基づいてディスプレイに動画を表示させるステップと、を実行させる動画再生プログラム。
【請求項７】
前記Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、
受信が完了した前記動画フレームデータを前記メモリ上に展開するステップと、
前記動画フレームデータに含まれるタグ構造を解析することによってＦｌａｓｈ構造体を特定し、前記複数の変換ルールに従って前記Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップと、
変換された前記ＨＴＭＬ構造体を解釈および実行するための前記Ｗｅｂブラウザ用のエンジンプログラムを生成するステップとを含み、
前記ディスプレイに動画を表示させるステップは、
前記Ｗｅｂブラウザ上で前記エンジンプログラムを実行することによって前記ＨＴＭＬ構造体に基づいて前記ディスプレイに動画を表示させるステップを含む、請求項６に記載の動画再生プログラム。
【請求項８】
前記複数の変換ルールは、オブジェクトの形状を特定するためのＦｌａｓｈ構造体から当該オブジェクトの形状を特定するためのＨＴＭＬ構造体へ変換するためのシェイプ変換ルールを含み、
前記Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、前記複数のＦｌａｓｈ構造体のうちの前記オブジェクトの形状を特定するためのＦｌａｓｈ構造体を、前記シェイプ変換ルールに従ってＨＴＭＬ構造体に変換するステップを含む、請求項６または７に記載の動画再生プログラム。
【請求項９】
前記複数の変換ルールは、フォントおよびテキストを特定するためのＦｌａｓｈ構造体から当該フォントおよび当該テキストを特定するためのＨＴＭＬ構造体へ変換するためのフォントテキスト変換ルールを含み、
前記Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、前記複数のＦｌａｓｈ構造体のうちの前記フォントおよび前記テキストを特定するためのＦｌａｓｈ構造体を、前記フォントテキスト変換ルールに従ってＨＴＭＬ構造体に変換するステップを含む、請求項６から８のいずれか１項に記載の動画再生プログラム。
【請求項１０】
前記複数の変換ルールは、カラーを特定するためのＦｌａｓｈ用のアルファチャンネルを有した色変換構造体から当該カラーを特定するためのＨＴＭＬ構造体へ変換するためのカラー変換ルールを含み、
前記Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、前記複数のＦｌａｓｈ構造体のうちの、前記カラーを特定するためのＦｌａｓｈ用の色変換構造体を、前記カラー変換ルールに従ってＨＴＭＬ構造体に変換する、請求項６から９のいずれか１項に記載の動画再生プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＷＦデータをダウンロードして動画を表示するための技術に関する。
【背景技術】
【０００２】
従来から、インターネットなどを介してＳＷＦデータをダウンロードし、当該ＳＷＦデータに基づいてディスプレイに動画を表示する端末が知られている。たとえば、特開２００６−３４４１３４号公報（特許文献１）には、通信端末用画像作成方法及び装置並びにサービスが開示されている。具体的には、特許文献１には、情報記録手段と、情報演算手段、情報入出力手段、情報表示手段、情報通信手段とを有し、ＳＷＦデータを再生表示可能なユーザ用の通信端末と、ネットワークを介してそのユーザ用通信端末と接続され情報の授受を行なうネットワーク上の端末と、それら各端末の間での通信を可能にするネットワークとを少なくとも備えたシステムにおいて、ユーザ用通信端末で、その情報表示手段に表示する画像を作成するに当たり、その画像の構成要素となる単数或いは複数のＳＷＦデータをプログラムコードに変換し、それを背景となる画像ファイルに結合し、次いで、それを１つのＳＷＦデータとして生成することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３４４１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＳＷＦデータをダウンロードするために長い時間がかかるため、ユーザは動画が表示されるまでに長い時間待たなければならない。また、端末の中には、ＳＷＦデータを直接的に実行および表示するためのソフトウェアが搭載されていないことがある。本発明は、かかる問題を解決するためになされたものであり、その目的は、ダウンロードされるＳＷＦデータの動画を表示するまでにかかる時間を短縮させることにある。
【課題を解決するための手段】
【０００５】
この発明のある局面に従うと、ＨＴＭＬデータに対応したＷｅｂブラウザを有する動画再生可能な端末が提供される。端末は、Ｆｌａｓｈ構造体の複数の種類それぞれに関するＦｌａｓｈ構造体からＨＴＭＬ構造体への複数の変換ルールを記憶するメモリと、ディスプレイと、複数の動画フレームデータを含む動画用のＳＷＦデータをダウンロードするための通信インターフェイスと、ＳＷＦデータのダウンロード中に、受信が完了した動画フレームデータのＦｌａｓｈ構造体をＨＴＭＬ構造体に変換し、Ｗｅｂブラウザを利用することによって当該ＨＴＭＬ構造体に基づいてディスプレイに動画を表示させるためのプロセッサとを備える。【０００６】
好ましくは、プロセッサは、受信が完了した動画フレームデータをメモリ上に展開し、動画フレームデータに含まれるタグ構造を解析することによってＦｌａｓｈ構造体を特定し、複数の変換ルールに従ってＦｌａｓｈ構造体をＨＴＭＬ構造体に変換し、変換されたＨＴＭＬ構造体を解釈および実行するためのＷｅｂブラウザ用のエンジンプログラムを生成し、Ｗｅｂブラウザ上でエンジンプログラムを実行することによってＨＴＭＬ構造体に基づいてディスプレイに動画を表示させる。【０００７】
好ましくは、複数の変換ルールは、オブジェクトの形状を特定するためのＦｌａｓｈ構造体から当該オブジェクトの形状を特定するためのＨＴＭＬ構造体へ変換するためのシェイプ変換ルールを含む。プロセッサは、複数のＦｌａｓｈ構造体のうちのオブジェクトの形状を特定するためのＦｌａｓｈ構造体を、シェイプ変換ルールに従ってＨＴＭＬ構造体に変換する。【０００８】
好ましくは、複数の変換ルールは、フォントおよびテキストを特定するためのＦｌａｓｈ構造体から当該フォントおよび当該テキストを特定するためのＨＴＭＬ構造体へ変換するためのフォントテキスト変換ルールを含む。プロセッサは、複数のＦｌａｓｈ構造体のうちのフォントおよびテキストを特定するためのＦｌａｓｈ構造体を、フォントテキスト変換ルールに従ってＨＴＭＬ構造体に変換する。【０００９】
好ましくは、複数の変換ルールは、カラーを特定するためのＦｌａｓｈ用のアルファチャンネルを有した色変換構造体から当該カラーを特定するためのＨＴＭＬ構造体へ変換するためのカラー変換ルールを含む。プロセッサは、複数のＦｌａｓｈ構造体のうちの、カラーを特定するためのＦｌａｓｈ用の色変換構造体を、カラー変換ルールに従ってＨＴＭＬ構造体に変換する。【００１０】
この発明の別の局面に従うと、ＨＴＭＬデータに対応したＷｅｂブラウザを有し、Ｆｌａｓｈ構造体の複数の種類それぞれに関するＦｌａｓｈ構造体からＨＴＭＬ構造体への複数の変換ルールを記憶した端末のプロセッサに、通信インターフェイスを介して、複数の動画フレームデータを含む動画用のＳＷＦデータをダウンロードするステップと、ＳＷＦデータのダウンロード中に、受信が完了した動画フレームデータのＦｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップと、ＳＷＦデータのダウンロード中に、Ｗｅｂブラウザを利用することによって当該ＨＴＭＬ構造体に基づいてディスプレイに動画を表示させるステップと、を実行させる動画再生プログラムが提供される。【００１１】
好ましくは、Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、受信が完了した動画フレームデータをメモリ上に展開するステップと、動画フレームデータに含まれるタグ構造を解析することによってＦｌａｓｈ構造体を特定し、複数の変換ルールに従ってＦｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップと、変換されたＨＴＭＬ構造体を解釈および実行するためのＷｅｂブラウザ用のエンジンプログラムを生成するステップとを含む。ディスプレイに動画を表示させるステップは、Ｗｅｂブラウザ上でエンジンプログラムを実行することによってＨＴＭＬ構造体に基づいてディスプレイに動画を表示させるステップを含む。【００１２】
好ましくは、複数の変換ルールは、オブジェクトの形状を特定するためのＦｌａｓｈ構造体から当該オブジェクトの形状を特定するためのＨＴＭＬ構造体へ変換するためのシェイプ変換ルールを含む。Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、複数のＦｌａｓｈ構造体のうちのオブジェクトの形状を特定するためのＦｌａｓｈ構造体を、シェイプ変換ルールに従ってＨＴＭＬ構造体に変換するステップを含む。【００１３】
好ましくは、複数の変換ルールは、フォントおよびテキストを特定するためのＦｌａｓｈ構造体から当該フォントおよび当該テキストを特定するためのＨＴＭＬ構造体へ変換するためのフォントテキスト変換ルールを含む。Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、複数のＦｌａｓｈ構造体のうちのフォントおよびテキストを特定するためのＦｌａｓｈ構造体を、フォントテキスト変換ルールに従ってＨＴＭＬ構造体に変換するステップを含む。【００１４】
好ましくは、複数の変換ルールは、カラーを特定するためのＦｌａｓｈ用のアルファチャンネルを有した色変換構造体から当該カラーを特定するためのＨＴＭＬ構造体へ変換するためのカラー変換ルールを含む。Ｆｌａｓｈ構造体をＨＴＭＬ構造体に変換するステップは、複数のＦｌａｓｈ構造体のうちの、カラーを特定するためのＦｌａｓｈ用の色変換構造体を、カラー変換ルールに従ってＨＴＭＬ構造体に変換する。
【発明の効果】
【００１５】
以上のように、本発明によって、ダウンロードされるＳＷＦデータの動画を表示するまでにかかる時間を短縮させることが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態にかかる動画配信システム１を示すイメージ図である。
【図２】本実施の形態に係るスマートフォン１００のハードウェア構成を表わすブロック図である。
【図３】本実施の形態にかかるＳＷＦデータ３１０のデータ構成を示すイメージ図である。
【図４】本実施の形態にかかるＳＷＦデータ３１０のダウンロードおよび動画の表示に関する動作概要を示すシーケンス図である。
【図５】本実施の形態にかかるスマートフォン１００のＣＰＵ１１０の詳細な動作を示すイメージ図である。
【図６】本実施の形態にかかるＳＷＦデータからＨＴＭＬデータへの変換処理を示すイメージ図である。
【図７】本実施の形態にかかる作成されたエンジンプログラムの動作を示すイメージ図である。
【符号の説明】
【００１７】
１００  スマートフォン
１１０  ＣＰＵ
１２０  メモリ
１２１  動画再生プログラム
１２２  変換ルール
１３０  タッチパネル
１３１  ディスプレイ
１３２  ポインティングデバイス
１４０  通信インターフェイス
１５０  ボタン
１６０  スピーカ
１７０  マイク
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１９】
以下では、スマートフォン１００を「端末」の代表例として説明を行う。ただし、「端末」は、その他の携帯電話、電子手帳、電子ブック、パーソナルコンピュータなどのような、通信インターフェイスとディスプレイとを有する他の情報端末によっても実現可能である。
【００２０】
＜動画配信システム＞
まず、本実施の形態にかかる動画配信システム１について説明する。図１は、本実施の形態にかかる動画配信システム１を示すイメージ図である。
【００２１】
図１を参照して、動画配信システム１は、スマートフォン１００とサーバ３００とを含む。動画配信システム１は、パーソナルコンピュータ２００などの他の端末を含んでもよい。スマートフォン１００およびパーソナルコンピュータ２００は、インターネットなどのネットワークを介してサーバ３００からＳＷＦ形式の動画データ（以下、ＳＷＦデータ）を受信する。
【００２２】
本実施の形態にかかるスマートフォン１００およびパーソナルコンピュータ２００は、ＳＷＦデータをダウンロードしている最中に（ＳＷＦデータのダウンロードが完了する前に）、ダウンロードが完了したシーンまたはフレームのＳＷＦデータから順にＨＴＭＬデータへと変換する。そして、スマートフォン１００およびパーソナルコンピュータ２００は、ＳＷＦデータをダウンロードしている最中に（ＳＷＦデータのダウンロードが完了する前に）、変換後のＨＴＭＬデータに基づいて動画を表示する。
【００２３】
これによって、スマートフォン１００は、ＳＷＦデータをダウンロードしている最中に（ＳＷＦデータのダウンロードが完了する前に）、動画を表示し始めることが可能になる。すなわち、ユーザは、ＳＷＦデータのダウンロードの完了を待たずに、動画を閲覧することが可能になるため、動画の表示が開始されるまでに待つ時間を短縮することができる。
【００２４】
＜スマートフォン１００のハードウェア構成＞
次に、スマートフォン１００のハードウェア構成について説明する。なお、パーソナルコンピュータ２００のハードウェア構成も、スマートフォン１００のそれと同様であるため、ここでは説明を繰り返さない。図２は、本実施の形態に係るスマートフォン１００のハードウェア構成を表わすブロック図である。
【００２５】
図２を参照して、スマートフォン１００は、主たる構成要素として、ＣＰＵ（Central Processing Unit）１１０と、メモリ１２０と、タッチパネル１３０と、通信インターフェイス１４０と、ボタン１５０と、スピーカ１６０と、マイク１７０とを含む。
【００２６】
メモリ１２０は、各種のＲＡＭ（Random  Access  Memory）や、ＲＯＭ（Read-Only  Memory）や、ハードディスクなどによって実現される。メモリ１２０は、ＣＰＵ１１０によって実行される制御プログラム（動画再生プログラム１２１）やＷＥＢブラウザプログラムを記憶する。メモリ１２０は、動画像または静止画像を表示するためのＳＷＦデータ（変換前のデータ）、ＨＴＭＬデータ（変換後のデータ）、ＳＷＦデータに含まれるＦｌａｓｈ構造体をＨＴＭＬ構造体（ＣＡＮＶＡＳデータ）へと変換するための変換ルール１２２などを記憶する。なお、動画再生プログラム１２１が変換ルール１２２を含んでもよい。たとえば、変換ルール１１は、ベクターシェイプフォーマットとＪａｖａＳｃｒｉｐｔ（登録商標）コードとの対応関係を示す情報を含んでいる。
【００２７】
タッチパネル１３０は、ディスプレイ１３１とポインティングデバイス１３２とを含む。タッチパネル１３０は、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式などのいずれのタイプであってもよい。タッチパネル１３０は、光センサ液晶を含んでもよい。
【００２８】
タッチパネル１３０は、ＣＰＵ１１０からの命令（信号）に基づいて、文字や画像を表示する。ＣＰＵ１１０は、各種のデータに基づいて、タッチパネル１３０に文字や画像を表示させる。たとえば、ＣＰＵ１１０は、制御プログラムに基づいてタッチパネル１３０に各種のソフトウェアボタンを表示させたり、Ｗｅｂプラウザプログラム、ＨＴＭＬデータ、ＪａｖａＳｃｒｉｐｔ（登録商標）コードなどに基づいて、動画像または静止画像を表示させたりする。
【００２９】
タッチパネル１３０は、所定時間毎に外部の物体によるタッチパネル１３０へのタッチ操作を検知して、タッチ座標（接触座標）をＣＰＵ１１０に入力する。換言すれば、ＣＰＵ１１０は、タッチパネル１３０から順次タッチ座標を取得する。ＣＰＵ１１０は、タッチ座標に基づいて、ユーザからの命令の入力を受け付ける。
【００３０】
通信インターフェイス１４０は、アンテナやコネクタによって実現される。通信インターフェイス１４０は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。換言すれば、ＣＰＵ１１０は、通信インターフェイス１４０を介して、他の装置からプログラムやＳＷＦデータやなどを受信したり、他の装置に画像データやテキストデータを送信したりする。
【００３１】
ボタン１５０は、スマートフォン１００の表面に配置される。スマートフォン１００には、電源キー、ホームキー、文字キー、テンキー、十字キー、決定キーなどの複数のボタンが配置されても良い。ボタン１５０は、ユーザから命令を受け付ける。ボタン１５０は、ユーザからの命令をＣＰＵ１１０に入力する。
【００３２】
スピーカ１６０は、ＣＰＵ１１０からの信号に基づいて、音声を出力する。すなわち、ＣＰＵ１１０は、受信した音声データまたは変換された音声データに基づいて、スピーカ１６０に音声を出力させる。
【００３３】
マイク１７０は、音声を受け付けて、音声信号をＣＰＵ１１０に入力する。ＣＰＵ１１０は、マイク１７０から音声信号に基づいて、通信インターフェイス１４０などを介して、他の電話などに音声信号を送信する。
【００３４】
ＣＰＵ１１０は、メモリ１２０に記憶されている制御プログラムを実行することによって、スマートフォン１００の各部を制御する。たとえば、ＣＰＵ１１０は、メモリ１２０に記憶されている動画再生プログラム１２１を実行することによって、以下に記載の各種の処理を実行する。スマートフォン１００は、ＳＷＦ動画ファイルを表示することができないものであっても、本実施の形態にかかる動画再生プログラムをインストールしておけば、後述するように、ＨＴＭＬデータを解釈することができるＷｅｂブラウザを利用することによってダウンロードしたＳＷＦデータ３１０に基づいて動画を再生することができる。
【００３５】
＜ＳＷＦデータの構成＞
ここで、スマートフォン１００がサーバ３００からダウンロードするＳＷＦデータ３１０のデータ構成について説明する。図３は、本実施の形態にかかるＳＷＦデータのデータ構成を示すイメージ図である。
【００３６】
図３を参照して、サーバ３００は、スマートフォン１００にＳＷＦデータ３１０を送信する。ＳＷＦデータ３１０は、チャンクデータ３１１，３１２，・・・を含む。なお、チャンクデータの各々は、１つのフレームに対応するＳＷＦ形式のデータを含んでもよいし、複数のフレームまたはシーンに対応するＳＷＦ形式のデータを含んでもよい。本実施の形態においては、ＳＷＦデータ３１０は、最初のフレームを表示するためのチャンクデータ３１１と、２番目のフレームを表示するためのチャンクデータ３１２などを含む。
【００３７】
また、各チャンクデータは、直前のチャンクとの差異を示すデータのみを含んでもよい。すなわち、表示されているキャラクターの口のみが動く場合には、チャンクデータは口の周辺の画像を表示するためのＳＷＦデータのみを含む。
【００３８】
ただし、チャンクデータは、直前のチャンクとの差異を示すデータだけでなく、対象となるチャンクを示す全てのデータを含んでもよい。すなわち、表示されているキャラクターの口のみが動く場合であっても、チャンクデータはキャラクターの全体を表示するためのデータを含んでもよい。
【００３９】
そして、本実施の形態にかかるＳＷＦデータ３１０は、後続するチャンクデータ３１１，３１２，・・・の切れ目をスマートフォン１００のＣＰＵ１１０が認識できるようにするための情報を含む。たとえば、ＳＷＦデータ３１０のヘッダ部に、後続するチャンクデータ３１１，３１２，・・・の切れ目の位置を示す情報が含まれている。あるいは、各チャンクデータの最後尾に、チャンクの切れ目を示すフラグが埋め込まれている。
【００４０】
＜ＳＷＦデータ３１０のダウンロードおよび動画の表示＞
次に、ＳＷＦデータ３１０のダウンロードおよび動画の表示に関する動作概要について説明する。図４は、本実施の形態にかかるＳＷＦデータ３１０のダウンロードおよび動画の表示に関する動作概要を示すシーケンス図である。
【００４１】
図４を参照して、スマートフォン１００は、最初のチャンクデータから順に、サーバ３００からＳＷＦデータ３１０をダウンロードする。スマートフォン１００は、最初のチャンクデータ３１１がダウンロードし終わると（ＳＷＦデータ３１０のダウンロード中に）、最初のチャンクデータ３１１に含まれる複数のＦｌａｓｈ構造体をＨＴＭＬ構造体へと変換する。そして、スマートフォン１００は、Ｗｅｂブラウザを利用することによって、変換されたＨＴＭＬ構造体に基づいて画像を表示させる。
【００４２】
以下、スマートフォン１００のＣＰＵ１１０の動作についてより詳細に説明する。図５は、本実施の形態にかかるスマートフォン１００のＣＰＵ１１０の詳細な動作を示すイメージ図である。
【００４３】
図５を参照して、だとえば、ＣＰＵ１１０は、通信インターフェイス１４０を介して、最初のチャンクデータ３１１から順に、サーバ３００からＳＷＦデータ３１０をダウンロードする。
【００４４】
ＣＰＵ１１０は、最初のチャンクデータ３１１がダウンロードし終わると（ＳＷＦデータ３１０のダウンロード中に）、通信インターフェイス１４０を介して２番目のチャンクデータ３１２をダウンロードしながら、メモリ１２０の変換ルール１２１を参照して、最初のチャンクデータ３１１に含まれるＦｌａｓｈ構造体をＨＴＭＬ構造体へと変換する。
【００４５】
ＣＰＵ１１０は、通信インターフェイス１４０を介して２番目または３番目のチャンクデータ３１１，３１２をダウンロードしながら、Ｗｅｂブラウザを利用することによって変換後のＨＴＭＬ構造体に基づいてディスプレイ１３１に画像を表示する。
【００４６】
同様に、ＣＰＵ１１０は、２番目のチャンクデー３１２タがダウンロードし終わると（ＳＷＦデータ３１０のダウンロード中に）、通信インターフェイス１４０を介して３番目または４番目のチャンクデータ３１３，３１４をダウンロードしながら、メモリ１２０の変換ルール１２１を参照して、２番目のチャンクデータ３１２に含まれるＦｌａｓｈ構造体をＨＴＭＬ構造体へと変換する。
【００４７】
ＣＰＵ１１０は、通信インターフェイス１４０を介して３番目または４番目のチャンクデータ３１３，３１４をダウンロードしながら、Ｗｅｂブラウザを利用することによって変換後のＨＴＭＬ構造体に基づいてディスプレイ１３１に画像を表示する。
【００４８】
なお、ＣＰＵ１１０は、通信インターフェイス１４０を介して、イベントを表示するためにダウンロードされたデータと、各種の処理を実行するための（他のサブシステムのための）データとを、順次ダウンロードする。
【００４９】
このようにして、本実施の形態にかかるＣＰＵ１１０は、ＳＷＦデータ３１０をダウンロードしている間に、すでにダウンロードしたチャンクデータに含まれるＦｌａｓｈ構造体をＨＴＭＬ構造体に変換し、変換後のＨＴＭＬ構造体に基づいて通常のＷｅｂブラウザを利用することによって動画を表示させる。
【００５０】
換言すれば、本実施の形態にかかるダイナミックデータローディングによって、スマートフォン１００はいくつかの利点を有する。第一に、動画の表示をより速く開始することが可能になる。これによって、ユーザの利便性が向上する。また、ＣＰＵ１１０は、オブジェクト間の依存性を認識することが容易になるため、オブジェクトの生成をより最適なものとすることができる。ＣＰＵ１１０は、フレームまたはオブジェクトを圧縮したデータ形式でメモリ１２０に格納することが可能であるため、他のフレームにおいて当該データを利用することができる。また、当該ダウンロードおよび動画の表示のために必要なメモリ１２０の容量も低減することが可能になる。すなわち、スマートフォン１００は、すぐに表示されない（後でダウンロードされる予定の）チャンクデータに含まれるフレームデータまたはオブジェクトデータなどのためのメモリ１２０の容量を低減することができる。
【００５１】
＜ＳＷＦデータからＨＴＭＬデータへの変換処理＞
次に、本実施の形態にかかるＳＷＦデータからＨＴＭＬデータへの変換処理について説明する。図６は、本実施の形態にかかるＳＷＦデータからＨＴＭＬデータへの変換処理を示すイメージ図である。
【００５２】
図６を参照して、ＣＰＵ１１０は、１つのチャンクデータをダウンロードすると（ステップＳ３０２）、ダウンロードされたチャンクデータを解析する（ステップＳ３０４）。ＣＰＵ１１０は、メモリ１２０にチャンクデータを展開する（ステップＳ３０６）。
【００５３】
ＣＰＵ１１０は、チャンクデータに含まれる複数のＦｌａｓｈ構造体のタグ構造を解析し、各々のＦｌａｓｈ構造体をＨＴＭＬ５構造体へと変換する。具体的には、ＣＰＵ１１０は、ＳＷＦデータに埋め込まれたグラフィック要素をデコードし、変換ルール１２２に基づいてＨＴＭＬデータに変換する。ＣＰＵ１１０は、デコード可能な他の要素（音声など）もデコードする。ＣＰＵ１１０は、メインタイムライン情報とムービークリップタイムライン情報とをデコードし、それらの情報を含む様々なＪａｖａＳｃｒｉｐｔ（登録商標）配列構造体を生成する。ＣＰＵ１１０は、同一の基本的な最適化／圧縮として、オリジナルのＡｃｔｉｏｎＳｃｒｉｐｔコードを利用し、オブジェクト毎にＡｃｔｉｏｎＳｃｒｉｐｔデータを作成する。可能な場合、ＣＰＵ１１０は、ＡｃｔｉｏｎＳｃｒｉｐｔを、それに等価なＪａｖａＳｃｒｉｐｔ（登録商標）のコードへと直接的に変換する。
【００５４】
なお、本実施の形態においては、ＣＰＵ１１０は、オブジェクトの描画には、ＨＴＭＬ５のｃａｎｖａｓ要素を使用する。すなわち、ＣＰＵ１１０は、画像を示すＦｌａｓｈ構造体をＨＴＭＬ５のｃａｎｖａｓデータへと変換する。各オブジェクトには、ＳＷＦデータからデコードしたデータからその場で生成されたＪａｖａＳｃｒｉｐｔ（登録商標）関数が内蔵される。
【００５５】
ＣＰＵ１１０は、変換後のＨＴＭＬデータに基づいて画像を表示するために利用するエンジンプログラムを作成する（ステップＳ３１０）。
【００５６】
＜具体的な変換例＞
以下では、基本的なＦｌａｓｈ構造体をそれと等価なＨＴＭＬ５構造体へと変換するための変換ルール１２２について説明する。たとえば、ＭＡＴＲＩＸ構造体は、canvas.setColor()メソッドへと変換される。ＦＩＬＬＳＴＹＬＥ構造体は、canvas.transform()メソッドへと変換される。ＦＩＬＬＳＴＹＬＥ構造体（単色塗り）は、ｒｇｂ色構造体のパラメータに変換される。ＦＩＬＬＳＴＹＬＥ構造体（円形グラデーション）は、createRadialGradient()メソッドのパラメータへと変換される。ＦＩＬＬＳＴＹＬＲ構造体（線形グラデーション）は、createLinearGradient()メソッドのパラメータへと変換される。ＦＩＬＬＳＴＹＬＥ構造体（繰り返しビットマップ塗り／クリッピングビットマップ塗り）に関しては、画像は応用マトリックス変換を介して描画される。ＬＩＮＥＳＴＹＬＥ構造体は、canvas.StrokeStyleプロパティに変換される。エッジレコード−ＳＴＲＡＩＴＥＤＧＥＲＥＣＯＲＤ構造体は、canvas.moveTo()メソッドおよびcanvas.lineTO()メソッドに変換される。ＣＵＲＶＥＤＥＤＧＥＲＥＣＯＲＤ構造体は、canvas.quadraticCurveTo()メソッドに変換される。ＪＰＥＧ画像およびロスレス画像は、base64でエンコードした画像へと変換される。
【００５７】
＜ＨＴＭＬデータの表示処理＞
次に、本実施の形態にかかるＨＴＭＬデータの表示処理について説明する。図７は、本実施の形態にかかる作成されたエンジンプログラムの動作を示すイメージ図である。
【００５８】
図６および図７を参照して、ＣＰＵ１１０は、Ｗｅｂブラウザ上でエンジンプログラムを利用することによって、ディスプレイ１３１に画像を表示する。具体的には、エンジンプログラムを実行するＣＰＵ１１０は、デコードされたＳＷＦデータと、生成されたオブジェクトおよびＳｃｒｉｐｔと、コンフィグレーションとを取得する。ＣＰＵ１１０は、タッチパネル１３０、ボタン１５０、図示しないマウス、図示しないキーボード、その他の入力インターフェイスを介して、ユーザからの命令を受け付ける。
【００５９】
ＣＰＵ１１０は、Ｗｅｂブラウザとエンジンプログラムとに基づいて、表示されるオブジェクトの位置を更新したり（ステップＳ３１２）、ＡｃｔｒｉｏｎＳｃｒｉｐｔを実行したり（ステップＳ３１４）、ユーザからの命令を受け付けたり（ステップＳ３１６）、ディスプレイ１３１にオブジェクトを表示したり（ステップＳ３１８）する。
【００６０】
換言すれば、ＣＰＵ１１０は、エンジンプログラムを実行することによって、データ構造体を入力として受け取り処理する。データ構造体は、メモリ１２０内またはサーバ３００からダウンロードしたファイル内にあっても構わない。また、コンフィギュレーションファイルを使用して、エンジンプログラムの実行形態を変更することが可能である。フラッシュファイル内のグラフィック構造体のほとんどはベクターオブジェクトであるため、品質損失なくサイズ変更が可能である。そのため、ＣＰＵ１１０は、さらに詳細／高質な表示を要求に対応することが可能である。
【００６１】
ＣＰＵ１１０は、エンジンプログラムに基づいて、フラッシュファイルを直接的に実行しているかのように、イベントの実行をエミュレートする。すなわち、ＣＰＵ１１０は、エンジンプログラムに基づいて、Ｗｅｂブラウザを介したマウスイベントおよびキーボードイベントを処理し、当該イベントに関連付けられたアクションを実行する。フラッシュファイルのファイルヘッダ部には固定フレームレートが定義されている。
【００６２】
ＣＰＵ１１０は、エンジンプログラムに基づいて、各フレームに対して、下記の手順を実行する必要がある。
１．ＣＰＵ１１０は、各オブジェクト／ムービークリップの位置を更新する。
２．ＣＰＵ１１０は、メインタイムラインにおける現在のフレーム及び各ムービークリップに対してＡｃｔｉｏｎＳｃｒｉｐｔを実行する。
３．ＣＰＵ１１０は、ユーザーインプットおよびインタラクションイベントを処理し、可能であればインタラクションＡｃｔｉｏｎＳｃｒｉｐｔを実行する。ＣＰＵ１１０は、オブジェクトをディスプレイ１３１に描画する。
【００６３】
＜まとめ＞
ダイナミックローディングのアイデアとは、あるタスクに必要なデータを論理的かつ適時に分割されたパーツの状態で用意することにある。タスクがゲームプレイや動画再生のようなもので、データファイル全体のサイズが大きい場合、データの「ストリーミング」を実行し、データが利用可能なときにタスクをアップデートすることができる。従って、サーバ３００は、チャンク（大きな塊）単位にカットして分割できるように、データを構築する必要がある。
【００６４】
例えば、ゲームのデータの場合は、以下のような処理が行われる。ＣＰＵ１１０は、ユーザの操作に基づいてゲームを開始するときに、サーバ３００からゲーム用のデータファイル（ＳＷＦデータ３１０）のダウンロードを開始します。最初の論理チャンク用のデータ（最初のチャンクデータ３１１）の受信が完了すると、ゲームを開始する。ＣＰＵ１１０は、バックグラウンドでデータのダウンロードタスクを継続する。
【００６５】
ダウンロードタスクは専用タスクであり、スマートフォン１００は、ダウンロードされたデータをバッファに入れておく。従ってチャンク全体がある所定の方法で特定されるまでは、システムの他のタスクが当該チャンクを利用することはできない。データチャンクが特定されてダウンロードされると、システムの他のタスクに渡される。これによって、必要であれば他のタスクは当該データチャンクを利用することが可能になる。次のチャンクがダウンロードされない場合、ＣＰＵ１１０は当該状態をブロックするか検出して、ディスプレイ１３１にプログレスバーでローディング状況を示すなどして、動作を修正することができる。
【００６６】
ここで、重要なのは、ファイルコンテクストを作成すること、あるいは論理チャンクに分割できるような方法でファイルエレメントを再整理することである。ＣＰＵ１１０は、エレメント間の依存性グラフ（dependency graph）を作成することが可能であるため、１つのチャンクをそのチャンクの外にあるエレメントが無くても作成することができる。そして、ＣＰＵ１１０は、チャンクエレメントの正しさを検証するための検証ステージを実行することも可能である。すべてのチャンクには、同じチャンクで宣言されている他のエレメントに依存するエレメントや、それ以前に既に処理されたチャンクの中で宣言されているエレメントだけが含まれていることが好ましい。
【００６７】
最初のステージでは、コンテンツの作成が行われる。コンテンツは、ローディングプロセスを考慮して作成される必要がある。ローディングプロセスでは、スマートフォン１００が、必要なオブジェクトとデータのすべてをチャンク単位で獲得することが期待される。人間によって作成されたコンテンツは、データをチャンクに分割する過程を人間に委ねることができるが、データをチャンクに分割する過程をサーバ３００における自動化プロセスに委ねることが好ましい。なお、依存性グラフは、すべての論理パーツに対して作成することができる。
【００６８】
サーバ３００は、複数の論理パーツを集めることによって、１つのチャンクを作成する。なお、前のチャンクに収められたデータは、新しいチャンクの中には含まれていないことが好ましい。また、すべてのデータチャンクは、１つのファイルにまとめられていることが好ましい。
【００６９】
上記の方法で、現時点のゲーム論理パーツを実行するために必要なすべてのデータがＳＷＦデータ３１０に保持される。サーバ３００は、スマートフォン１００からの明示的な要求によって、チャンクデータをダウンロードする。あるいは、ダウンロードは、ロードされていないチャンクに対する最初の要求で実行することもできる。こうしたケースに対応するために、ローディングプロセスを示唆するデータとイベントとを持つ、空のローダーオブジェクトを作成することが好ましい。従って、ｓｃｒｉｐｔは、こうしたプロパティとイベントの知識を使って動作する必要がある。
【００７０】
そして、スマートフォン１００は、チャンクをバックグラウンドでダウンロードしつつ、処理中であることをユーザが認識可能にすることが好ましい。たとえば、ＣＰＵ１１０は、ロード中であることを示す動画を、プログレスバーとともにディスプレイ１３１に表示する。なお、ＣＰＵ１１０は、プログレスバーの進み具合を、チャンクの総バイト数とロード済みバイト数とに基づいて計算する。具体的には、こうした情報および／またはチャンクの総フレーム数とロード済みフレーム数についての情報は、ローダによってＣＰＵ１１０に提供される。データのチャンク全体がロードされる前に、フレームの再生を可能にすることが好ましい。また、データチャンク間のデータ依存性を、個々のフレームに適用することが好ましい。
【００７１】
図３を参照して、サーバ３００は、点で表されているオブジェクトを分析し、すべてのオブジェクトデータをチャンクデータに含める。すべてのオブジェクトデータは、図において依存関係ツリー（dependency tree）として表現されている。メインオブジェクトに、他のすべてのオブジェクトデータが属している。このように、オブジェクトが作成されるときに必要なすべてのデータがチャンク内に含められることによって、他のチャンクデータのダウンロード中であっても、中断すること無く動画の表示を継続できるようになる。
【００７２】
ここで、新たなデータの利用可能性の検出は、主に以下の２つの方法でサポートされている。スマートフォン１００から新たなチャンクデータが要求された場合、サーバ３００は、新しいローダーオブジェクトを作成し、新たなデータローディング・タスクに対処する。スマートフォン１００は、新たなチャンクデータのダウンロードを、バックグラウンドのスレッドにおいて実行する。すべての利用可能なチャンクに対して、あるいはチャンクのデータをメインコードが必要とするときに、スマートフォン１００はサーバ３００に、チャンクデータのローディングを要求することができる。このように、スマートフォン１００は、ユーザ操作に基づいて、ファイルのいくつかのフレームまたはシーンの再生をスキップすることができる。すなわち、チャンクのロードまたは表示処理のどちらか、あるいは両方をスキップすることが可能となる。
【００７３】
以下、チャンクデータを利用するためにサポートされている２つの方法を説明する。
第１の方法は、“静的”な方法である。この方法は、新たなコードの実行を、利用可能なコードの実行と同期させる必要がある場合に用いられる。基本的に、スマートフォン１００からダウンロードロード要求が送られ、サーバ３００にて新たなローダーオブジェクトが作成される。スマートフォン１００において、データのダウンロードおよび／または処理は、バックグラウンドのスレッドで実行される。一方、（新たなデータチャンクを要求した）メインコードの実行は継続され、中断されない。メインコードは、新たに作成されたオブジェクトへの参照（リファレンス）を持っており、ローディングの進捗情報について、ローダーオブジェクトにクエリすることが可能である。この進捗情報は、その後のメインコードの実行フローを操るために用いられる。例えば、ＣＰＵ１１０は、ローディングが進行中にローディング中であることを表す動画をディスプレイ１３１に表示し、その後動画がロードされて処理されるときにＣＰＵ１１０は新たなコードの実行にジャンプすることができる。
【００７４】
第２の方法は、ＪａｖａＳｃｒｉｐｔ（登録商標）コードの特性により大きく依存しているような、また、関連イベントのいくつかが発生した場合に実行されるような、コールバック関数の提供が可能な場合に用いられる。例えば、関連イベントに関しては、ダウンロードの進捗が表示される。そして、ダウンロードされて処理されたチャンクのパーセント値についての情報を利用することによって、ＣＰＵ１１０は、提供された関数をコールすることができる。メインコードは、エラーや完了のような他の標準イベントに対応することができる。その他の処理は、第１の方法と同様である。すなわち、ダウンロードは、メインコードの実行を妨げないように、バックグラウンドのスレッドにて実行される。そして、ダウンロードが完了すると、実行フローが変更される。
【００７５】
＜その他の応用例＞
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した外部の記憶媒体（メモリ１２０）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が外部の記憶媒体（メモリ１２０）に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【００７６】
この場合、外部の記憶媒体（メモリ１２０）から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した外部の記憶媒体（メモリ１２０）は本発明を構成することになる。また、端末からの要求に応じて、当該プログラムコードを当該端末へとダウンロード（送信）するサーバ自体も、本発明を構成することになる。
【００７７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
さらに、外部の記憶媒体（メモリ１２０）から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図１】
2014024255.tif 000003
【図２】
2014024255.tif 000004
【図３】
2014024255.tif 000005
【図４】
2014024255.tif 000006
【図５】
2014024255.tif 000007
【図６】
2014024255.tif 000008
【図７】
2014024255.tif 000009
【国際調査報告】
2014024255.tif 000010
2014024255.tif 000011