(57)【要約】【課題】  プログラムと素材（画像）の作成を分離した開発を利用した場合、アプリケーションはディスク挿入直後に多くの圧縮画像を展開するため、パッケージメディア再生端末装置ではディスクが挿入されてから実際にアプリケーションを利用することができるようになるまでに時間がかかり、ユーザにストレスを与えてしまう問題がある。【解決手段】  オーサリング時点で画像の展開時間が短くなるために複数の画像を一つに組み合わせ、プログラムロジックを画像に合わせて自動的に変換することで、オーサリングする側に少ない労働で圧縮画像の展開時間を高速化している。【選択図】図２
2008257547.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの高速化を行う高速化方式であって、
アプリケーション中に含まれる画像のサイズを取得するサイズ取得手段と、
画像同士の二次元の組み合わせのための位置を決定する画像位置設定手段と、
画像位置設定手段により設定された位置に基づき画像同士を組み合わせ大画像を作る画像合成手段と、
アプリケーション中に含まれる画像利用ロジックを、大画像を利用するように変更するロジック変更手段と、
を備えたことを特徴としたアプリケーション高速化方式。
【請求項２】
前記画像位置設定手段は画像のスケーリングを行うことを特徴とした請求項１記載のアプリケーション高速化方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は端末装置において複数の画像を用いて所定のアプリケーションを実行する技術を高速化する技術に関する。
【背景技術】
【０００２】
近年、Blu-ray DiscやHD-DVDといった新しいパッケージメディアの規格が確定され、それらの規格に対応した端末装置が発売されている。新しいパッケージメディア規格では高解像度化とともにインタラクション性の向上が図られ、Blu-ray DiscならJava（登録商標）、HD-DVDならHDiといったインタラクティブ機能を備える。
インタラクティブ機能ではディスク上のアプリケーションが複数の画像を用いて、パッケージメディアのメニュー等グラフィックスを表示する。ディスク上の容量を節約するためにディスク再生時に表示される画像は圧縮した状態でディスクに書き込まれ、アプリケーションが任意のタイミングで必要なときに圧縮された画像を展開した上で画面への表示を行うことができる。
【０００３】
アプリケーションの作り方として、プログラムと素材（画像）の作成を分離する方法が一般的である。分離して作成した場合、ディスク上では数十個〜数百個の画像ファイルが書き込まれ、アプリケーションはディスク挿入直後に多くの圧縮画像を展開する。画期的なアプリケーションをいち早く出荷するためにもコンテンツ作成会社はそういった分離開発手法を好んで利用する。
【０００４】
一方、同様の問題は、他の民生機器分野でも存在しており、例えばネットワークを介してアプリケーションや画像データをダウンロードする携帯端末装置が存在する。携帯端末装置では一般的にサーバ装置へのアクセス回数が多い場合転送時間が増し通信費用がかかってしまう問題がある。そのため、特許文献１では複数の圧縮画像を一つのファイルとし、サーバへのアクセス回数を減らすようにしている。
【特許文献１】特開２００３―３８８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら上記のようなプログラムと素材（画像）の作成を分離した開発を利用した場合、アプリケーションはディスク挿入直後に多くの圧縮画像を展開するため、パッケージメディア再生端末装置ではディスクが挿入されてから実際にアプリケーションを利用することができるようになるまでに時間がかかり、ユーザにストレスを与えてしまう問題がある。
【０００６】
本発明は上記問題を解決するためになされたもので、複数の画像データにより構成されたアプリケーションを実行する場合でも圧縮画像の展開が高速に行われることを目的としている。
【０００７】
また、特許文献１では複数の圧縮画像を一つにしているが圧縮画像の展開に要する時間は短縮されない。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明はオーサリング時点で画像の展開時間が短くなるために複数の画像を一つに組み合わせ、プログラムロジックを画像に合わせて自動的に変換す
ることで、オーサリングする側に少ない労働で圧縮画像の展開時間を高速化している。
【発明の効果】
【０００９】
本発明によればアプリケーション中の画像を組み合わせ代画像を作り、アプリケーション中に含まれる画像利用ロジックを大画像を利用するように変更することでアプリケーションのイメージ展開にかかる時間を短縮できる。
【発明を実施するための最良の形態】
【００１０】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１１】
（実施の形態１）
図１は、パッケージメディアの作成フローの一例を示したフローチャートであり、ロジック作成ステップＳ１０４、画像作成ステップＳ１０３、映像作成ステップＳ１０２、アプリ統合ステップＳ１０５、ディスク統合ステップＳ１０６で構成される。
【００１２】
映像作成ステップＳ１０２は、映像の撮像、編集、符号化を行うステップである。画像作成ステップＳ１０３は、画像の撮影、編集、および符号化を行うステップである。
プログラム作成ステップＳ１０４は、プログラムロジックの開発を行うステップである。アプリ統合ステップＳ１０５は、画像作成ステップＳ１０３により作成された画像と、プログラム作成ステップＳ１０４により作成されたプログラムをまとめ、アプリケーションを一つのファイルにまとめるステップである。アプリ統合ステップＳ１０５は、オーサリングシステムにより行われる。
【００１３】
ディスク統合ステップＳ１０６は、アプリ統合ステップＳ１０５より作成されたアプリケーションと、映像作成ステップＳ１０２より作成された映像をまとめ、一つのディスクにまとめるステップである。ディスク統合ステップＳ１０６により、ディスクイメージが出来上がる。
【００１４】
図２は、オーサリングシステム２００を構成する装置の構成を表したブロック図であり、画像入力部２０１、プログラムロジック入力部２０２、画像サイズ取得部２０３、位置設定部２０４、画像合成部２０５、ロジック変更部２０６、アプリ出力部２０７で構成される。
【００１５】
画像入力部２０１は複数の画像の入力を受け付けるユーザインターフェースである。
プログラムロジック入力部２０２は複数の画像の入力を受け付けるユーザインターフェースである。
画像サイズ取得部２０３は入力された画像のサイズを取得しリストを作る。
位置設定部２０４は合成される画像の位置を設定するためのユーザインターフェースである。
画像合成部２０５は設定された位置に基づいて画像を合成し新しい画像を作る。
ロジック変更部２０６は設定された位置に基づいてプログラムロジックを変更し新しいプログラムロジックを作る。
アプリ出力部２０７は新しい画像と新しいプログラムロジックを組み合わせ、アプリを出力する。
【００１６】
画像入力部２０１およびプログラムロジック入力部２０２の画面例を図3に示す。ユーザにより圧縮ファイルやディレクトリ等を指定することが可能であり、対象のディレクトリに存在する画像およびプログラムロジックがアプリケーションを作るために使われる。図3では、入力済みの圧縮ファイル00001.jar, 00002.jar, 00545.jarが入力済みファイルやディレクトリリスト３０３で閲覧可能となっている。画面上に新しい圧縮ファイルやデ
ィレクトリを追加するための［追加］ボタン３０１と、入力を終了するための［入力終了］ボタン３０２が存在する。
【００１７】
画像サイズ取得部２０３により作成したリスト例を図4に示す。画像のファイル名４０１、元画像の横幅４０２、元画像の高さ４０３がリストされている。画像サイズ取得部２０３は画像入力部２０２により入力された画像を展開し、元画像の横幅４０２、元画像の高さ４０３のリストを作成する。たとえば図4では、00001.jar中のav/icon.pngという画像ファイルの幅が480ピクセル、高さが600ピクセルという情報がリストされている。
【００１８】
位置設定部２０４の画面例を図5に示す。合成できる基の画像のリスト５０１が左側にある。合成される新規画像の上に、入力された画像を配置することができるエリア５０２が存在し、たとえば、図5では4枚の画像が配置されている。また、元画像のリスト５０１からドラッグし、新規画像エリア５０２にドロップすることで元画像を新規画像に移動させることができる。なお、位置設定部２０４では画像のスケーリングを指定することができる。スケーリングとは、新規画像を作るときに元の画像を選択的に小さくすることである。
元の画像を小さくすることで、新規画像の展開時間が少なくなり、消費メモリが少なくなる。画像をインターレースディスプレイで表示する場合、横に長い位置ピクセルの行はちらつきやすいのでそういった画像は縦に2倍に縮め、表示するときに縦に2倍に伸ばすとちらつきが発生しなくなる。そういった効果があるが、代わりにスケーリングを利用した画像は見た目が少し荒くなってしまうので選択的にスケーリングを利用するほうが望ましい。図5では、man.pngの画像はスケーリングを利用し、元画像の大きさは縦800ピクセルに対し図5では縦400ピクセルで表示されている。
【００１９】
なお位置設定部２０４では入力された画像同士が基本的に重ならないようにする必要がある。ただし二つの画像はたまたま一部がまったく同じ場合、あるいは良く似ている場合、二つの画像を重ねて新規画像のサイズを小さくすることができる。特に暗い画像、あるいはふちの部分は透明色が使われ手いる場合、二つの画像が異なるが見た目上はほとんどさがない場合は画像同士を重ねるようにしても良い。
【００２０】
図6では、位置設定部２０４により決められた新規画像の位置設定情報６００である。新規画像名６０１、元ファイル名６０２、横位置６０３、縦位置６０４、幅６０５、高さ６０６、新規幅６０７、新規高さ６０８が記されている。図6の例では、圧縮ファイル00545.jarの中に存在するgraphics/man.pngという画像ファイルは、00001.jarの中の新規画像1.pngに入れられる。挿入位置は、横0ピクセル、縦600ピクセル目であり、挿入サイズは横500ピクセル、縦400ピクセルである。また、表示するときには横500ピクセル、縦800ピクセルの画像として表示される。
位置設定情報６００での高さ６０６と新規高さ６０８が異なる場合、あるいは幅６０５と新規幅６０７が異なる場合、対象の画像が表示されるときにスケーリングが行われることを意味する。
【００２１】
図7では、画像合成部２０５が位置設定情報６００の基づき画像合成を行うフローチャートをしめす。
まず位置設定情報６００の一行目から各パラメータを取得する（Ｓ７０１）。
次に［ファイル名］６０２指定のファイルを展開し、［元画像］とする（Ｓ７０２）。
次に［新規画像名］６０１指定のファイルを展開し、［新規画像］とする。［新規画像名］指定のファイルが存在しない場合、［新規画像］を横幅0ピクセル、縦幅0ピクセルとして新しく作成する（Ｓ７０３）。
次に［元画像］を［横位置］６０３［縦位置］６０４指定の位置、［新規幅］６０７［新規高さ］６０８指定の大きさで、新規画像に描画を行う。新規画像が十分な大きさでない
場合、事前に新規画像を大きくする必要がある（Ｓ７０４）。
各パラメータの取得に使われた行が、位置設定情報６００の最後の行であれば、ここで終了する。そうでなければ、Ｓ７０６に続く（Ｓ７０５）。
Ｓ７０６では各パラメータの取得に使われた行の次の行からパラメータを取得し、その後Ｓ７０２に続く。
【００２２】
図7のフローチャートが終了したところで新規画像が完成する。図6の位置設定情報６００の場合、横幅1060ピクセル、高さ1000ピクセルの画像が、00001.jarの中のファイル1.pngとして作られる。
【００２３】
図8では、ロジック変更部２０６が位置設定情報６００に基づきロジック変更を行うフローチャートを示す。
まず入力されたロジックの中から、イメージ取得命令９０１を見つけ出し、包装イメージ取得命令９０２への呼び出しに変換する（Ｓ８０１）。
次にイメージ描画命令９０３を見つけ出し、包装イメージ描画命令９０４への呼び出しに変換する（Ｓ８０２）。
最後に入力されたロジックの中にイメージ展開命令を包装する包装イメージ展開命令の実装およびイメージ描画命令を包装する包装イメージ描画命令の実装を挿入する（Ｓ８０３）。
包装イメージ展開命令とはいわゆるwrapper命令であり、本来のイメージ取得を行う代わりに新規画像からイメージ取得を行うかの命令である。また、包装イメージ描画命令も同様に、本来のイメージ描画命令を行うかわりに新規画像からイメージ描画を行うのかの命令である。それぞれのwrapper命令の中身について後で説明する。
【００２４】
図9では、入力されたロジックの変換の一例を示す。変更前のロジックの中に、イメージ取得命令９０１とイメージ描画命令９０３が存在する。イメージ取得命令９０１（tk.createImage）は、包装イメージ描画命令９０２（WRAP.createImage）に変更されている。また、イメージ描画命令９０３（g.drawImage）は包装イメージ描画命令９０４（WRAP.drawImage）に変更されている。
Java（登録商標）の入力ロジックを扱う場合、こういった変換を正確に行うためにはソースコードではなくコンパイル後のバイナリコードを使うほうが望ましい。バイナリコードを自動的に変更するために、ＡｓｐｅｃｔＪ（Java（登録商標）を拡張したアスペクト指向プログラミング言語）等のツールを利用することができる。
【００２５】
図10では、包装イメージ取得命令９０３の実装のフローチャートを示す。
まず位置設定情報９００から対象のイメージを検索する（Ｓ１００１）。検索できるために位置設定情報９００は包装イメージ展開命令の実装の中に組み込む方法がある。
次に対象のイメージが位置設定情報９００の中にあるのかどうかを判断する（Ｓ１００２）。イメージ取得対象のイメージが見つかれば、Ｓ１００５へ遷移する。見つからない場合Ｓ１００３に遷移する。
イメージ取得対象のイメージが見つからなければ、従来のイメージオブジェクトを取得する（Ｓ１００３）。新規画像の対象ではなく、通常のイメージ取得が必要であることを意味する。
次に、従来のイメージオブジェクトにより取得された本物のイメージオブジェクトを返すことでイメージ取得を終了する（Ｓ１００４）。
イメージ取得対象のイメージが見つかった場合、対象の新規画像を取得する（Ｓ１００５）。
次に、対象のイメージを表す位置設定情報９００の行を保持する擬似イメージオブジェクトを返す（Ｓ１００６）。
【００２６】
上記のように、包装イメージ取得命令は新規画像として登録しているイメージと登録されていないイメージに対応している。たとえば、図6の位置設定情報６００の例に対して、”00001.jar:av/img2.png”の取得が要求された場合、対象のイメージがないため新規画像ではなく従来のイメージ取得命令を利用し本物のイメージオブジェクトを返す。
【００２７】
図１１では、包装イメージ描画命令９０２のフローチャートを示す。
包装イメージ描画命令９０２は、呼び出しにより本来のイメージ描画命令に必要なパラメータである指定イメージオブジェクト（描画元）、描画先、指定パラメータ（位置、大きさ）が渡される。たとえば、図9の例では描画元i、描画先g、指定位置0x0、指定サイズなしとなっている。指定サイズ無しとは描画元の大きさ分描画する意味のパラメータである。
まず指定イメージオブジェクトを検証する。指定イメージオブジェクトは擬似イメージオブジェクトと本物イメージオブジェクトである可能性がある。擬似イメージオブジェクトの場合、指定パラメータの変換が必要である。
擬似イメージオブジェクトでない場合、指定パラメータの変換が必要でないため本来のイメージ描画を直接行う。
また、擬似イメージオブジェクトである場合、指定パラメータの変換を行う。
【００２８】
その後、変換された指定パラメータを使い本来のイメージ描画を行う。
たとえば、図６と図９を組み合わせた例では、まず”graphics/man.png”の包装イメージ取得命令を行っている。包装イメージ取得命令では、図6の指定位置情報の検索を行い、graphics/man.pngが存在するので擬似イメージオブジェクトを返す。
【００２９】
次に包装イメージ描画命令を行っている。包装イメージ描画命令の指定パラメータは［擬似イメージオブジェクト］、横位置＝０ピクセル、縦位置＝０ピクセル、サイズ＝イメージ全体である。
【００３０】
指定パラメータの変換例を図12に示す。包装イメージ描画命令での指定パラメータは、描画先の横位置、描画先の縦位置が必須のパラメータであり、任意に描画もとの縦位置（デフォルト０）、描画もとの横位置（デフォルト０）、描画元と描画先の横幅と縦長さ（デフォルト描画元の大きさ分）である。描画対象のイメージを、位置設定情報６００から検索をした後、次の式を当てはめて指定パラメータの変換を行う。
変換後の描画元の横位置＝新規幅６０７/幅６０５＊変換前の描画元の横位置
変換後の描画元の縦位置＝新規高６０８/高６０６＊変換前の描画元の縦位置
変換後の描画元の横幅＝新規幅６０７/幅６０５＊変換前の描画元の横幅
変換後の描画元の縦長＝新規高６０８/高６０６＊変換前の描画元の縦長
なお描画先のパラメータの変換は行われない。
【００３１】
（その他の変形例）
以上、本発明に係るオーサリングシステムについて、実施の形態に基づいて説明したが、本発明はオーサリングツール以外にも、たとえば映像再生を行うプレーヤで使用されていても良く、上記の実施の形態に限られないことは勿論である。
本発明をプレーヤに適応する場合、図2に示される画像入力部２０１、プログラムロジック入力部２０２、位置設定モジュール部は自動的に行っても良い。
【００３２】
たとえばパッケージメディアの規格ではパッケージメディア上のファイルの配置方法が決められているので、パッケージメディア上のファイルから画像ファイル、プログラムロジックファイルを自動的に検索するようにしても良い。最も簡単な方法は、ファイルの拡張子で検索し、.gif、.jpeg、.pngの拡張子は画像ファイルとみなし、.classの拡張子を使うファイルはプログラムロジックファイルとみなす方法である。
【産業上の利用可能性】
【００３３】
本発明を構成するオーサリングシステムは、製造産業において経営的に、また継続的及び反復的に製造し、販売することができる。特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用できる。
【図面の簡単な説明】
【００３４】
【図１】パッケージメディアの作成プローの一例を示したフローチャート
【図２】オーサリングシステム２００の構成を示すブロック図
【図３】画像入力部２０１およびプログラムロジック入力部２０２の画面例を示す図
【図４】画像サイズ取得部２０３により作成したリスト例を示す図
【図５】位置設定部２０４の画面例を示す図
【図６】位置設定部２０４により決められた新規画像の位置設定情報６００を示す図
【図７】画像合成部２０５が位置設定情報６００の基づき画像合成を行うフローチャート
【図８】ジック変更部２０６が位置設定情報６００に基づきロジック変更を行うフローチャート
【図９】入力されたロジックの変換の一例を示す図
【図１０】包装イメージ取得命令９０３の実装のフローチャート
【図１１】包装イメージ描画命令９０２の実装のフローチャート
【図１２】指定パラメータの変換例を示す図
【符号の説明】
【００３５】
２０１  画像入力部
２０２  プログラムロジック入力部
２０３  画像サイズ取得部
２０４  位置設定部
２０６  画像合成部
２０６  ロジック変更部
２０７  アプリ出力部
【図１】
2008257547.tif 000003
【図２】
2008257547.tif 000004
【図３】
2008257547.tif 000005
【図４】
2008257547.tif 000006
【図５】
2008257547.tif 000007
【図６】
2008257547.tif 000008
【図７】
2008257547.tif 000009
【図８】
2008257547.tif 000010
【図９】
2008257547.tif 000011
【図１０】
2008257547.tif 000012
【図１１】
2008257547.tif 000013
【図１２】
2008257547.tif 000014