(57)【要約】      （修正有）【課題】遊戯者がシーンごとの字幕の量をより正確に把握でき、また、字幕を読むタイミングを効率的に選択でき、さらに、より細かい粒度で字幕ないし字幕内文字の表示タイミングのコントロールが可能な動画像表示装置を提供する。【解決手段】  所定のレートでリフレッシュされるフレーム毎に、異なる画像を表示できる動画像表示装置であって、記号列を文章形式で表示できる字幕表示手段を有し、記号列表示画像の現在表示割合が０％から１００％へと所定の速度でフレームリフレッシュ毎に増えるように、字幕表示手段が記号列を表示する。また、記号列の表示画像に対応するフォントデータをビットマップとして管理する記号列ビットマップ管理手段と、記号列の現在表示割合に応じたビットマップを前記管理手段から取得して表示する記号列現在表示割合ビットマップ表示手段を備える。フォントデータは、記号間および又は記号列間で同一の記号について共有する。【選択図】  図１
2007086317.tif 000002
【特許請求の範囲】
【請求項１】
所定のレートでリフレッシュされるフレーム毎に、画像を更新して表示する動画像表示装置であって、
記号列を文章形式で表示できる字幕表示手段を有し、
記号列の表示画像としての現在表示割合が０％から１００％へと所定の速度でフレームリフレッシュ毎に増えるように、字幕表示手段が表示対象となる記号列を表示することを特徴とする、動画像表示装置。
【請求項２】
前記字幕表示手段が、
記号列の表示画像に対応するフォントデータをビットマップとして管理できる記号列ビットマップ管理手段と、
記号列の現在表示割合に応じた割合の部分ビットマップを記号列ビットマップ管理手段から取得して表示する記号列現在表示割合ビットマップ表示手段を備えることを特徴とする、請求項１に記載の動画像表示装置。
【請求項３】
前記記号列ビットマップ管理手段が、フォントデータを、記号間および又は記号列間で同一の記号について共有することを特徴とする、請求項２に記載の動画像表示装置。
【請求項４】
前記記号列ビットマップ管理手段が、
複数の記号に対応するフォントデータを一のテクスチャデータ内に埋め込んだ複数のビットマップとして管理し、
記号毎のテクスチャデータ内フォントデータ位置を、対応するビットマップの、テクスチャデータ内での左上座標および右下座標として記憶したことを特徴とする、請求項３に記載の動画像表示装置。
【請求項５】
表示対象となる記号列を表示し始めてから完了するまでの所望の時間にフレームレートを乗じた値で記号列のサイズを割ることにより表示速度を計算する表示速度計算手段と、
表示速度計算手段により計算した表示速度を、フレームリフレッシュ毎に、記号列現在表示割合を示す初期値０のカウンタに加算する記号列現在表示割合変更手段とを有し、
前記記号列現在表示割合ビットマップ表示手段が、記号列現在表示割合変更手段の加算する前記カウンタの値に応じて、前記記号列の表示画像としての現在表示割合を表示することを特徴とする、請求項２〜４のいずれか一項に記載の動画像表示装置。
【請求項６】
各記号の記号サイズが同一であり、
前記記号列のサイズが記号列内の記号数に前記記号サイズを乗じたものであり、
前記記号列現在表示割合ビットマップ表示手段が、
前記カウンタの値を前記記号サイズで割ることにより、何記号目までを完全に表示できるかを計算し、
完全に表示できないことが計算された記号について、記号の位置に前記記号サイズを乗じた値から前記カウンタの値を減じた値と前記記号サイズとを比較して、全く表示しないかまたは部分的に表示するかを決定し、
部分的に表示することを決定した記号について、記号の位置に前記記号サイズを乗じた値から前記カウンタの値を減じた値を、前記記号サイズから減じた値を部分的に表示する該記号の部分記号サイズとして算出する、ことを特徴とする、請求項５に記載の動画像表示装置。
【請求項７】
前記記号列現在表示割合ビットマップ表示手段が、フレームリフレッシュの際、全体を表示できるか、部分的に表示できるか、全く表示できないか、および部分的に表示するとすればどこまでの部分ビットマップを表示するかを、記号列内の記号毎に決定することを特徴とする、請求項６に記載の動画像表示装置。
【請求項８】
前記記号列のサイズが記号列内の記号数であり、
前記カウンタの整数値が、全体を表示してよい記号の数を、前記カウンタの小数値が、部分的に表示してよい最後の記号の表示割合を、それぞれ示し、
前記記号列現在表示割合ビットマップ表示手段が、全体を表示してよい記号については全体を表示し、部分的に表示してよい最後の記号については前記最後の記号の表示割合に最後の記号の記号サイズを乗じた分だけ部分的に表示することを特徴とする請求項５に記載の動画像表示装置。
【請求項９】
所定のレートでリフレッシュされるフレーム毎に、異なる画像を表示するための動画像表示プログラムであって、
コンピュータに、
記号列の表示画像に対応するフォントデータをビットマップとして管理する制御と、
記号列の現在表示割合に応じた割合の部分ビットマップを前記管理する制御を介して取得する制御と、
記号列の表示画像としての現在表示割合が０％から１００％へと所定の速度でフレームリフレッシュ毎に増えるようにする制御と、
記号列の現在表示割合に応じた割合の部分ビットマップを文章形式で表示する制御を、実行させることを特徴とする動画像表示プログラム。
【請求項１０】
所定のレートでリフレッシュされるフレーム毎に、異なる画像を表示できる動画像中に字幕を表示する動画像表示方法であって、
字幕に使用する複数の記号のフォントデータを一枚のテクスチャデータに含めるステップと、
各記号につき、前記テクスチャデータ内の対応するフォントデータ位置を各レコードとしてテーブル形式で記憶するステップと、
表示する記号列を、記号列内の各記号に対応する前記フォントデータ位置を記憶したテーブル内レコードへのインデックス、ポインタ又は識別子の列として記憶するステップと、
表示する記号列を０％から１００％まで段階的に表示する速度を決定するステップと、
０％で始まる記号列表示割合を前記決定した速度分だけ、フレームリフレッシュ毎に加算するステップと、
表示する記号列内の記号毎に、記号の全体を表示すべきか否か、全体を表示しないとすれば部分を表示するか否か、部分を表示するとすれば該記号に対応する前記テクスチャデータ内フォントデータ位置からどこまでの部分を表示すべきかを、前記記号列表示割合から決定して表示するステップと、を含む動画像表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像中に字幕を表示できる動画像表示装置、動画像表示プログラムおよび動画像表示方法に関し、特に、字幕のフレーズを効果的に表示する動画像表示装置、動画像表示プログラムおよび動画像表示方法に関する。
【背景技術】
【０００２】
スロットマシン、パチンコ、その他一般のコンピュータゲームやデジタル映画には、その動画像上にデジタルの字幕が用いられる。従来、特に、仮想３次元空間の３Ｄアニメーションに文字や記号を字幕として表示する場合、又は、撮影した動／静止画像上にスーパーインポーズ機能を用いて文字や記号を字幕として表示する場合、一回の字幕を構成するすべての文字を一瞬で表示してしまっていた。
【０００３】
このため、例えば、スロットマシンの遊戯者に提供される動画像の場合、その遊戯者は、各シーンにおける字幕の量がわからないまま、出てきた字幕を急いで読む必要があった。
【０００４】
また、一文字ごとないし一フレーズごとに一定のポーズを挿入して表示したり展開時間を設定したりして段階的に表示できる映像コンテンツ再生装置（例えば、下記特許文献１）やコンピュータロールプレイングゲーム装置ないしアドベンチャーゲーム装置も存在したが、少ない文字数のときには、この効果はあまり発揮できなかった。また、文字ごとであったため、フレーズの一部や台詞の一部など文字より細かい粒度で展開スピードをコントロールすることができず、文章に込められた感情や雰囲気を表現する効果が制限されていた。
【特許文献１】特開２００５−１２４１６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上記状況に鑑みてなされたものであり、遊戯者がシーンごとの字幕の量をより正確に把握できるため、字幕を読むタイミングをより効率的に選択することができ、また、より細かい粒度で字幕ないし字幕内文字の表示タイミングおよび展開時間をコントロールすることにより、その文章に込められる感情や雰囲気をより豊かに演出して遊戯者に提供することが可能な動画像表示装置、動画像表示プログラムおよび動画像表示方法を提供することをその課題とする。
【課題を解決するための手段】
【０００６】
本発明は上記課題を解決したものであり、
所定のレートでリフレッシュされるフレーム毎に、異なる画像を表示できる動画像表示装置であって、
記号列を文章形式で表示できる字幕表示手段を有し、
記号列の表示画像としての現在表示割合が０％から１００％へと所定の速度でフレームリフレッシュ毎に増えるように、字幕表示手段が表示対象となる記号列を表示することを特徴とする、動画像表示装置を提供する。
【０００７】
所定のフレームレートは、例えば１秒に３０回（３０ｆｐｓ）とすることができ、この場合、例えば２４ビットカラー×横６４０ピクセル×縦４８０ピクセルからなるグラフィック用のフレームバッファが１／３０秒に１回更新されて連続表示され、動画像（アニメーション）を構成する。これは、リフレッシュレートと呼ばれる、モニター等の「垂直走査周波数」とは概念として異なるが、動画品質等の問題から、多くの場合、同一の値（たとえば上記３０ｆｐｓ）が設定される。
【０００８】
記号列とは、例えばアルファベット、ひらがな、漢字、数字など一般の文字だけでなく、特殊記号、模様、図柄など字幕表示に必要となるものを列として並べたものである。
【０００９】
文章形式とは、文章として遊戯者に読んでもらいやすくするために有用なあらゆる配置／形式であり、縦書き、横書き、行替え、禁則処理、インデントなどあらゆる文章規則を含むものである。なお、このような文章形式に適合させるソフトウエア処理自体は公知であるため本願では詳述しない。
【００１０】
記号列（例えば「ＡＢＣ」）の表示画像としての現在表示割合は、一例として、次のよう扱うことができる。現在表示割合が１００％で全て表示する場合は、Ａ、ＢおよびＣの各フォントデータ（横３２ピクセル×縦３２ピクセル）をそれぞれフレームバッファ内の表示すべき位置にテクスチャマッピングして（すなわち表示上のサイズ（例えば、６４×６４）に適合する倍率ｘ（この場合、２）で）表示する。また、現在表示割合が０％で全く表示しない場合は、Ａ、ＢおよびＣの各フォントデータ（横３２ピクセル×縦３２ピクセル）のうち最も左の１列（横１ピクセル×縦３２ピクセル）をそれぞれ左記１００％のときと同じ位置に倍率０％でテクスチャマッピングして表示する。その中間の現在表示割合、例えば５０％の場合は、Ａは１００％の場合と同じように表示し、Ｃは０％の場合と同じように表示する一方、Ｂはフォントデータ（横３２ピクセル×縦３２ピクセル）のうち左側の半分（横１６ピクセル×縦３２ピクセル）を左記１００％の場合と同じ位置にテクスチャマッピングして（すなわち表示上のサイズ（この場合、３２×６４）に適合する倍率ｘ（この場合、２）で）表示する。Ｂの左側半分としたのは、「ＡＢＣ」３文字の現在表示割合５０％が１．５文字となりＢは２文字目であるため文字Ｂの半分のみを表示することになるためである。なお、この例ではフォントデータが元々ビットマップフォントであることを想定しているが、トゥルータイプフォントについても必要なサイズのビットマップフォントに変換して考えることで同様の取り扱いが可能である。
【００１１】
所定の速度は、例えば、横３２ピクセルのフォントデータを有する各記号Ａ，Ｂ，Ｃからなる記号列「ＡＢＣ」３文字を２秒で表示する場合、３０回／秒のフレームレートでは、速度を、（３２ピクセル／文字×３文字）／（２秒×３０回／秒）の計算式により１．６ピクセル／回とすることができ、リフレッシュごとに１．６ピクセル分だけフォントデータ上での表示幅を増やしていけばよいことになる。
【００１２】
また、上の説明からも明らかなように、本発明では、前記字幕表示手段が、
記号列の表示画像に対応するフォントデータをビットマップとして管理できる記号列ビットマップ管理手段と、
記号列の現在表示割合に応じた割合の部分ビットマップを記号列ビットマップ管理手段から取得して表示する記号列現在表示割合ビットマップ表示手段を備えることが好ましい。
【００１３】
また、前記記号列ビットマップ管理手段が、フォントデータを、記号間および又は記号列間で同一の記号について共有することが好ましい。
【００１４】
フォントデータを記号間で共有するとは、例えば、「ＡＢＡ」という記号列の表示について、最初の「Ａ」の表示の際と最後の「Ａ」の表示の際に、「Ａ」用の同一のフォントデータを、用いることをいう。フォントデータを記号列間で共有するとは、例えば、記号列「ＡＢＣ」の表示の際と記号列「ＣＤＥ」の表示の際とで、記号「Ｃ」用の同一のフォントデータを用いることをいう。
【００１５】
また、前記記号列ビットマップ管理手段が、
複数の記号に対応するフォントデータを一のテクスチャデータ内に埋め込んだ複数のビットマップとして管理し、
記号毎のテクスチャデータ内フォントデータ位置を、対応するビットマップの、テクスチャデータ内での左上座標および右下座標として記憶することが好ましい。
【００１６】
これは、フォントデータを一つ一つ管理するのではなく、同一シーンの字幕に必要な複数の記号に対応するフォントデータを単一のテクスチャデータに（好ましくは整然と）埋め込んで記憶しておき、必要なフォントデータをテクスチャデータの部分として切り出してテクスチャマッピングしやすいように、あらかじめ各記号に対応するフォントデータのテクスチャデータ内での開始座標（フォントデータの左上座標（Ｕ１，Ｖ１））および終了座標（フォントデータの右下座標（Ｕ２，Ｖ２））を構造体の配列形式（テーブル形式と呼ぶこともでき対応する記号のシリアル番号等が構造体配列の添え字ないしテーブルの主キーとなる）等で記憶しておくことである。
【００１７】
本発明は、また上述の例のとおり、表示対象となる記号列を表示し始めてから完了するまでの所望の時間にフレームレートを乗じた値で記号列のサイズを割ることにより表示速度を計算する表示速度計算手段と、
表示速度計算手段により計算した表示速度を、フレームリフレッシュ毎に、記号列現在表示割合を示す初期値０のカウンタに加算する記号列現在表示割合変更手段とを有し、
前記記号列現在表示割合ビットマップ表示手段が、記号列現在表示割合変更手段の加算する前記カウンタの値に応じて、前記記号列の表示画像としての現在表示割合を表示することが好ましい。
【００１８】
本発明は、また上述の例のとおり、各記号の記号サイズ（フォントサイズ）が同一（例えば、横３２ピクセル）であり、
前記記号列のサイズが記号列内（例えば「ＡＢＣ」）の記号数（例えば、３）に前記記号サイズ（３２）を乗じたもの（この場合、９６）であり、
前記記号列現在表示割合ビットマップ表示手段が、
前記カウンタの値（例えば、４８）を前記記号サイズ（３２）で割ることにより、何記号目までを完全に表示できるか（この場合、１記号目まで）を計算し、
完全に表示できないことが計算された記号（「Ｂ」）について、記号の位置（２）に前記記号サイズ（３２）を乗じた値（６４）から前記カウンタの値（４８）を減じた値（１６）と前記記号サイズ（３２）とを比較（３２−１６＞０）して、全く表示しないかまたは部分的に表示するかを決定し、
部分的に表示することを決定した記号（「Ｂ」）について、記号の位置（２）に前記記号サイズ（３２）を乗じた値（６４）から前記カウンタの値（４８）を減じた値（１６）を、前記記号サイズ（３２）から減じた値（１６）を部分的に表示する該記号の部分記号サイズ（１６）として算出することが好ましい。
【００１９】
本発明では、また上述の例のとおり、前記記号列現在表示割合ビットマップ表示手段が、フレームリフレッシュの際、全体を表示できるか、部分的に表示できるか、全く表示できないか、および部分的に表示するとすればどこまでの部分ビットマップを表示するかを、記号列内の記号毎に決定することができる。
【００２０】
一方、本発明では、記号毎の記号サイズが一定でない場合（例えば、Ａが３２ピクセル、Ｂが４８ピクセル、Ｃが６４ピクセルの場合）でも、
前記記号列のサイズが記号列内の記号数（例えば、３）であり、
前記カウンタの整数値（例えば、１）が、全体を表示してよい記号（「Ａ」）の数を、前記カウンタの小数値（０．５）が、部分的に表示してよい最後の記号（「Ｂ」）の表示割合を、それぞれ示し、
前記記号列現在表示割合ビットマップ表示手段が、全体を表示してよい記号（「Ａ」）については全体を表示し、部分的に表示してよい最後の記号（「Ｂ」）については前記最後の記号の表示割合（０．５）に最後の記号の記号サイズ（４８）を乗じた分（２４）だけ部分的に表示することもできる。
【００２１】
本発明はまた、所定のレートでリフレッシュされるフレーム毎に、異なる画像を表示するための動画像表示プログラムであって、
コンピュータに、
記号列の表示画像に対応するフォントデータをビットマップとして管理する制御と、
記号列の現在表示割合に応じた割合の部分ビットマップを前記管理する制御を介して取得する制御と、
記号列の表示画像としての現在表示割合が０％から１００％へと所定の速度でフレームリフレッシュ毎に増えるようにする制御と、
記号列の現在表示割合に応じた割合の部分ビットマップを文章形式で表示する制御を、実行させることを特徴とする動画像表示プログラムを提供する。
【００２２】
本発明はまた、所定のレートでリフレッシュされるフレーム毎に、異なる画像を表示できる動画像中に字幕を表示する動画像表示方法であって、
字幕に使用する複数の記号のフォントデータを一枚のテクスチャデータに含めるステップと、
各記号につき、前記テクスチャデータ内の対応するフォントデータ位置を各レコードとしてテーブル形式で記憶するステップと、
表示する記号列を、記号列内の各記号に対応する前記フォントデータ位置を記憶したテーブル内レコードへのインデックス、ポインタ又は識別子の列として記憶するステップと、
表示する記号列を０％から１００％まで段階的に表示する速度を決定するステップと、
０％で始まる記号列表示割合を前記決定した速度分だけ、フレームリフレッシュ毎に加算するステップと、
表示する記号列内の記号毎に、記号の全体を表示すべきか否か、全体を表示しないとすれば部分を表示するか否か、部分を表示するとすれば該記号に対応する前記テクスチャデータ内フォントデータ位置からどこまでの部分を表示すべきかを、前記記号列表示割合から決定して表示するステップと、を含む動画像表示方法を提供する。
【００２３】
なお、インデックス、ポインタ又は識別子の列は、フォントデータ範囲（Ｕ１，Ｖ１，Ｕ２，Ｖ２）を格納したレコードを特定するために必要な情報の列となり、字幕として表示する文章の言語的内容を示すものとなる。
【発明の効果】
【００２４】
本願請求項１の発明では、記号列としてではなく表示画像としての現在表示割合をリフレッシュごとに増やしていっているため、より細かい粒度により、より効果的に課題を達成している。すなわち、文字等の記号が画像として表示されるその速度で読んでゆけば良いので、（たとえ少ない文字数であっても、）そのシーンにおける字幕の量に対する予測がより的確にできるため、字幕を任意のタイミングで読む選択性が広がる。また、より細かい粒度で字幕ないし字幕内文字の表示タイミングおよび展開時間をコントロールすることにより、その文章に込められる感情や雰囲気をこれまでの字幕より豊かに演出して遊戯者に提供することが可能となる。
【００２５】
本願請求項２の発明では、記号列の表示画像としての現在表示割合をビット単位、すなわち整数で把握することが可能となるため、既存のテクスチャマッピングライブラリを用いた簡易な実装が可能となる。
【００２６】
本願請求項３の発明では、フォントデータを共有しているため、少ないメモリリソースで、本発明の高度な字幕機能を実現することができる。
【００２７】
本願請求項４の発明では、テクスチャデータに複数のフォントデータを埋め込んでおり、かつ、その時々に必要なフォントデータを選択的に切り出すのに必要な情報を事前に記憶しているため、簡便で高速な本発明による字幕機能の実装が可能となる。
【００２８】
本願請求項５の発明では、表示対象となる記号列を表示し始めてから完了するまでの所望の時間（所望の展開時間）にフレームレートを乗じた値で記号列のサイズを割ることにより表示速度を計算しているため、所望の展開時間に沿って字幕を段階表示することを可能にしている。また、一フレーズ分の記号列を非常に細かく区切ってそれぞれ異なる展開時間を指定することにより、限られた時間内で一フレーズをより表現力豊かに表現することも可能になる。
【００２９】
本願請求項６の発明では、記号サイズが統一されているため、前記「記号列のサイズ」を、より後のカウンタ加算等がしやすくなる値（記号数に記号サイズを乗じたもの）に置き換えて計算することができる。
【００３０】
本願請求項７の発明では、記号列内の記号毎に決定しているため、フォントデータの全体又は部分を参照して表示するルーチンを簡易に構成することができる。
【００３１】
本願請求項８の発明では、フォントデータのサイズが記号によって異なる場合でも、記号単位で現在表示割合を管理することにより、本発明による字幕表示を実現している。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の一実施形態を図面に基づいて説明する。
【００３３】
図１は、いずれも、記号列「急いで避難して!!」（全角８文字）を字幕として８秒間で表示する際に、表示し始めてから４．５秒（１３５フレーム分）経過した瞬間のスナップショットを示す。
【００３４】
図１（ａ）は、字幕を表示時間の最初に一斉に表示する従来法１による動画像のスナップショットであり、（ｂ）は、字幕を表示時間の経過に応じて記号単位で段階的に表示する従来法２による動画像のスナップショットである。いずれも、４．５秒という時間の精度が反映されていないことがわかる。特に（ａ）では、いつ表示が次の字幕にかわるのか、遊戯者にはわからないため急いでこれを読まなければならない。また（ｂ）では、ゆっくり表示され始めれば、十分表示されてから読むという選択性がある程度生じるが、特に字幕が短い場合には、遅い速度によってそういう選択性を許容したり、感情や雰囲気を十分に表現できていない。
【００３５】
一方図１（ｃ）は、字幕を表示時間の経過に応じて表示画像の粒度で表示する本発明による動画像のスナップショットである。ここでは、４．５秒の０．５秒という時間の精度が表示に反映されおり、上記選択性や表現力が大きくなっていることがわかる。
【００３６】
図２は、本発明の一実施形態に係る動画像表示装置２０のハードウェア構成を示す。
【００３７】
図示されるように、動画像表示装置２０は、ＣＰＵ２１、揮発性メモリ２２、不揮発性メモリ２３、外部記憶媒体ドライブ２４、入力制御ＩＣ２５、画像合成ＩＣ２６、音声合成ＩＣ２７及びこれらを接続するバス２８を備え、外部記憶媒体ドライブ２４、入力制御ＩＣ２５、画像合成ＩＣ２６、音声合成ＩＣ２７には、それぞれ、外部記憶媒体２４ａ、操作装置２５ａ、表示装置２６ａ、スピーカ２７ａが接続されている。
【００３８】
ＣＰＵ２１は、不揮発性メモリ２３に記録される本発明のプログラムを含む各種プログラムに従った制御動作をオペレーティングシステム等と協働して実行するための論理回路や順序回路から構成されている。
【００３９】
揮発性メモリ２２は、主記憶としてのランダムアクセスメモリであり、本発明の動画像表示プログラムが参照するスタックやフレームカウンタなどの制御情報や、字幕表示に必要なテクスチャデータ、フォント位置テーブル、記号列テーブル、表示速度、カウンタ値等を一時的に格納する。
【００４０】
不揮発性メモリ２３は、ＨＤＤ、ＤＶＤ−ＲＷ、フラッシュメモリ等から構成され、本発明の動画像表示プログラムが記録される領域を有する他、字幕の背景となるコンテンツのデータ、字幕表示に必要なテクスチャデータ、フォント位置テーブル、記号列テーブル、表示時間（ないし対応する表示速度）等の静的な設定データを記憶するための領域等が設けられている。
【００４１】
外部記憶媒体ドライブ２４は、外部記憶媒体であるＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭなどに記録されるデータを読み取って、バス２８に送信したり、逆に制作・編集された結果としての本発明のテクスチャデータ、フォント位置テーブル、記号列テーブル、表示時間（ないし対応する表示速度）を記憶したりしておくためのものである。
【００４２】
入力制御ＩＣ２５は、キーボードやマウス、専用コントローラなどの操作装置２５ａに対する所定の操作入力に応答して、各種操作信号を生成してバス２８に送信する。
【００４３】
画像合成ＩＣ２６は、本発明による字幕をスプライトとして表示する２Ｄチップと一般の３Ｄモデルをレンダリングするための３Ｄチップを備えている。本発明の字幕は最も手前の（表示優先順位の高い）スプライトとして表示される。また、３Ｄモデルのポリゴンに字幕のフォントデータをテクスチャマッピングすることによっても本発明の字幕をより臨場感をもって表示することができるようになっている。
【００４４】
音声合成ＩＣ２７は、外部記憶媒体２４ａに記録されるＢＧＭや効果音などの音声データをバス２８から受信して、アナログ形式で合成し、スピーカ２７ａへアナログ信号として出力する。映画等の場合には字幕と同期連動した母国語出力などを可能にしている。
【００４５】
図３は、本発明の一実施形態に係る動画像表示装置２０の字幕表示部３０の機能ブロックを示す。なお、図中の矢印はデータフローを表す。
【００４６】
字幕設定部３１は、記号列ビットマップ管理部３２に、次に字幕として表示するための記号列を与える。また、記号列中の記号に対するフォントデータが記号列ビットマップ管理部３２に存在しないときは、そのフォントデータを含むテクスチャデータとそのフォントデータの位置を与える。また、その記号列を字幕として表示するための表示時間と記号数を表示速度計算部３３に与え、カウンタ管理部３５にリセット信号を送る。
【００４７】
記号列ビットマップ管理部３２は、図４に関連して後述する形式により、記号列および記号列に対応付けられたフォントデータをビットマップ形式で管理し、記号列現在表示割合ビットマップ表示部３６に記号列に対応する各フォントデータ及び各部分フォントデータを提供する。
【００４８】
表示速度計算部３３は、字幕設定部３１から与えられた表示時間および記号数、別途検出した記号サイズおよびフレームレートから、数式：（ＭＮ×ＭＳ）／（ＤＤ×ＦＲ）により表示速度を計算する。ここで、ＭＮ：記号数（個）、ＭＳ：記号サイズ（ピクセル／個）、ＤＤ：表示時間（Ｓ）、ＦＲ：フレームレート（回／Ｓ）であり、表示速度の単位は、ピクセル／回となり、リフレッシュ１回ごとに何ピクセル進むかという速度になる。計算した速度は、記号列現在表示割合変更部３４に与えられる。
【００４９】
記号列現在表示割合変更部３４は、この与えられた速度分だけ、フレームリフレッシュ検出部３７から表示割合変更命令を受けるごとに、カウンタ管理部３５のカウンタ値を加算する。
【００５０】
カウンタ管理部３５は、記号列の現在表示割合を示すカウンタを管理しており、記号列現在表示割合変更部３４から命令された分だけカウンタを加算して、変更後のカウンタ値を記号列現在表示割合ビットマップ表示部３６に伝える。
【００５１】
記号列現在表示割合ビットマップ表示部３６は、カウンタ値すなわち記号列の現在表示割合に対応する各記号のフォントデータまたは部分フォントデータをビットマップ形式で記号列ビットマップ管理部３２から取得して、スプライト表示を行う。
【００５２】
フレームリフレッシュ検出部３７は、フレームリフレッシュ信号を検出して割り込み処理により表示割合変更命令を記号列現在表示割合変更部３４に与える
【００５３】
図４は、本発明の一実施形態に係る記号列ビットマップ管理部３２のデータ構造を示す。
【００５４】
ここでは、「急いで避難して!!」という記号列に対応するテーブルデータ（図４（ｃ））があれば、この任意の表示割合の画像を合成可能なようになっている。
【００５５】
すなわち図４（ａ）は、２５６ピクセル×２５６ピクセルのサイズを有する１枚目のテクスチャデータ（「ｊｉｍａｋｕ＿０１」という識別子を有する）であり、記号列「急いで避難して!!」を３２ピクセル×３２ピクセルの粒度で画像表示する際に必要なすべてのフォントデータを格納している。なお、このテクスチャデータは記号列「あいたい」のすべての記号についてのフォントデータを含んでいるためこの記号列の字幕表示等にも流用することができる。
【００５６】
図４（ｂ）は、字幕として用いる記号ごとのフォントデータ位置をテーブル形式（ここでは、Ｃ言語における構造体(NJS_TEXANIM)の配列定義の形式）で格納したものである。
【００５７】
構造体の最初（Ｕ１）および次（Ｖ１）のフィールドはテクスチャにおけるフォントデータの開始座標（フォント左上）を表しており、３番目（Ｕ２）および４番目（Ｖ２）のフィールドは終了座標（フォント右下）を表している。また、５番目のフィールドはどのテクスチャデータにおける座標であるかを示しており、複数のテクスチャデータをこのＭｊＤａｔ［］配列の定義文で一括管理することができる。この配列の添え字は、記号の番号であり、０は記号「あ」に対応する。したがって、例えば「急」という記号の場合は、添え字４５により参照することができる。
【００５８】
図４（ｃ）は、記号列「急いで避難して!!」を字幕表示するためのテーブルであり、上述のように「急」は４５として、「い」は１として、以下同様に指定することにより記号列をフォントデータと関連づけて表現することができる。なお、最後の−１は、図４（ｂ）のＭｊＤａｔ［］配列の添え字ではなく、記号列が終わることを意味する。したがってこの場合の記号列の記号数は８である。
【００５９】
図５は、本発明の一実施形態に係る全体処理の流れを示すフローチャートである。
【００６０】
ステップ５１で全体の処理を開始すると、ステップ５２に遷移して、字幕に使用する複数の記号のフォントデータを一枚のテクスチャデータに含める処理（図４の（ａ））が行われる。
【００６１】
ついで、ステップ５３に遷移して、各記号につき、前記テクスチャデータ内の対応するフォントデータ位置を各レコードとしてテーブル形式で記憶する（図４の（ｂ））。
【００６２】
ここまでが、本発明によるデータ構造の準備の段階であり、準備したデータ構造を流用できる間は以降のループを繰り返すことができる。
【００６３】
ついで、ステップ５４に遷移して、表示する記号列を、記号列内の各記号に対応する前記フォントデータ位置を記憶したテーブル内レコードへのインデックス、ポインタ又は識別子の列として記憶する。なお、上述の図４の例ではインデックス（添え字）の列（図４の（ｃ））として記憶している。
【００６４】
ついで、ステップ５５に遷移して、表示速度計算部３３により記号列の表示速度が決定される。
【００６５】
ついで、ステップ５６に遷移して、表示する記号列内の記号毎に、記号の全体を表示すべきか否か、全体を表示しないとすれば部分を表示するか否か、部分を表示するとすれば該記号に対応する前記テクスチャデータ内フォントデータ位置からどこまでの部分を表示すべきかを、前記記号列表示割合から決定して１記号づつ表示する。なお、この詳細は図６に関連して後述する。
【００６６】
ついで、ステップ５７に遷移して、現在表示割合（カウンタ値）が１００％に達していなければ、ステップ５８に遷移してリフレッシュ割り込みを待ち、ステップ５５において決定した速度分だけ現在表示割合（カウンタ値）を加算した後ステップ５６にループして新しい現在表示割合で表示する。
【００６７】
ステップ５７で現在表示割合が１００％に達していたときは、ステップ５９に遷移してテクスチャデータを流用できるか判断し、できないときはステップ５９Ｎに遷移して終了し、前記図４のデータ構造（ａ）（ｂ）を作りなおすことになる。
【００６８】
ステップ５９で流用可能と判断したとき（例えば、次の字幕表示の記号列が「あいたい」であり、すべての記号のフォントデータを既にテクスチャデータ内に含んでいたとき）は、ステップ５２、５３で作成したテクスチャデータを流用して、ステップ５４にループすることができる。
【００６９】
図６は、本発明の一実施形態に係る字幕表示処理の流れを示すフローチャートである。
【００７０】
この制御フローは、図３の記号列現在表示割合ビットマップ表示部３６が、現在表示割合に対応するカウンタ値の変化（リフレッシュ割り込みによる）を検出することにより発生する（ステップ６１）。
【００７１】
なお、表示しようとする記号列に対応する、図４（ｃ）のＳＥＲＩＦＵ１［］テーブルの定義等はこのフローに入る前に参照可能に設定されている。また、このフローはリフレッシュ周期（３０分の１秒）未満で終了し、このフローの間にカウンタ値α（初期値＝０）は一定である。
【００７２】
ついで、ステップ６２で、変数の初期化が行われ、現在注目している記号（ここでは文字「急」）を表す変数Ｊが１に、表示しようとする記号列「急いで避難して!!」の記号数（ここでは全角文字数）を表す変数ＭＮが例えば８にセットされる。
【００７３】
ついで、ステップ６３に遷移して、現在のＪと、カウンタ値α／文字サイズＭＳの比較検査が行われる。この例では、Ｊ＝１であり、カウンタ値αは０に初期化されており、文字サイズＭＳ＝３２である。したがって代入結果は１≦０となり検査結果は否（Ｎ）であり、ステップ６３Ｎに遷移する。これは、Ｊ（＝１）文字目の全体を表示することができない表示割合であったことを示す。
【００７４】
ステップ６３Ｎでは、さらにＪ×ＭＳ−α≦ＭＳの比較検査が行われて、この場合、３２≦３２となり、結果は正（Ｙ）であり、ステップ６８に進む。
【００７５】
ついで、ステップ６８では、Ｊ（＝１）文字目のフォントデータの一部が、ＭＳ−（Ｊ×ＭＳ−α）の値に応じた大きさで、記号列ビットマップ管理部３２から取得されて表示される。このタイミングでは、この値は０となるため、フォントデータの（Ｕ１，Ｖ１）−（Ｕ１，Ｖ２）の範囲が表示対象となり、何も表示されない。
【００７６】
ついで、ステップ６５では、Ｊが１加算されて次の２番目の文字「い」に注目し、ついでステップ６６では、その次の文字の番号（Ｊ＝２）が記号数（ＭＮ＝８）より大きくなっているかどうかを検査し、現在のＪ＝２がＭＮ＝８より小さいので否（Ｎ）となり、ステップ６３にループし、以降、２文字目についての表示が行われ、７文字目まで同様に処理される。ただし、最後の８文字目「!!」を表示した後は、ステップ６５でＪが９になるため、ステップ６６からステップ６７に遷移して、このカウンタ値α＝０におけるフローが終了する。
【００７７】
以上は、カウンタ値αが０に初期化された直後のフローであり、８文字とも何も表示されない。
【００７８】
ついで、フレームリフレッシュが、レート３０回／秒（すなわち、３０分の１秒周期）で、その後の４．５秒間に１３５回行われ、記号数８の表示時間が８秒に設定されており、カウンタ値αがこの結果１４４となっている場合を考える。なお、表示速度はこの場合、ＭＳ＝３２、ＭＮ＝８のため、（３２ピクセル×８文字）／（８秒×３０回／秒）＝３２／３０（ピクセル／回）となっている。
【００７９】
この場合、１文字目「急」（Ｊ＝１）から４文字目「避」（Ｊ＝４）までは、ステップ６３における右辺が１４４／３２＝４．５となるためステップ６４に進み、それぞれ文字全体が表示される。この場合、図４の（ｂ）で定義した座標（Ｕ１，Ｖ１）−（Ｕ２，Ｖ２）をそれぞれ、そのまま用いてスプライト表示することができる。
【００８０】
５文字目の「難」は、ステップ６３の右辺が４．５となるため、ステップ６３Ｎに進み、一部表示するか全く表示しないかが検査される。この場合、左辺＝５×３２−１４４＝１６、右辺＝３２となるため、結果は正（Ｙ）となり、ステップ６８に進み、記号「難」のフォントデータＭｊＤａｔ［３８］の（Ｕ１，Ｖ１）―（Ｕ２，Ｖ２）の一部、すなわちの（Ｕ１，Ｖ１）―（Ｕ１＋１６，Ｖ２）の部分のみが表示され、図１（ｃ）のような結果となる。なお、Ｃ言語では配列の添え字が０から始まるためここでのＳＥＲＩＦＵ１の添え字はＪ−１としている。
【００８１】
６番目以降の記号（「し」「て」「!!」）については、ステップ６３で左辺のＪが大きくなるため否（Ｎ）となり、ステップ６３Ｎでも左辺がＪの大きさに比例して大きくなるため検査結果が否（Ｎ）となるため、ステップ６９に遷移し、これらの記号については、表示されない結果となる。
【００８２】
以上が、カウンタ値αが１４４の場合である。
【００８３】
その３．５秒後（合計で８秒後）にカウンタ値αが２５６に達した場合には、Ｊが８まで大きくなってもαが十分大きいため、全ての記号（Ｊ）についてステップ６３の検査結果が正（Ｙ）となりステップ６４に遷移するため、すべての記号が完全に表示され、記号列としての表示が正しく終了する。
【００８４】
なお、表示した記号列の消去は図示しない公知の方法により現在表示割合のリセットに伴って行っている。
【００８５】
以上、好ましい実施形態に基づいて本発明の説明を行ったが、本発明はこの実施形態により限定されるものではなく、特許請求の範囲の記載内において種々の改変が可能である。
【００８６】
例えば、記号ごとに記号サイズ（粒度）が異なっていてもよく、この場合でも請求項８の発明により、同様の効果を得ることが可能である。
【００８７】
また、統一する記号サイズが横３２ピクセルである必要はなく、６４ピクセル、１２８ピクセル等、より細かいフォントも採用すること可能である。
【００８８】
また、テクスチャデータのサイズも２５６ピクセル×２５６ピクセルである必要はなく、より大きなテクスチャデータを用いることが可能である。
【００８９】
また、字幕表示は２Ｄのスプライトである必要はなく、３Ｄの板ポリゴンへのテクスチャマッピングを用いることも可能である。
【図面の簡単な説明】
【００９０】
【図１】（ａ）は、字幕を表示時間の最初に一斉に表示する従来法１による動画像のスナップショット。（ｂ）は、字幕を表示時間の経過に応じて記号単位で段階的に表示する従来法２による動画像のスナップショット。（ｃ）は、字幕を表示時間の経過に応じて表示画像の粒度で表示する本発明による動画像のスナップショット。いずれも、記号列「急いで避難して!!」（全角８文字）を８秒間で表示する際に、表示し始めてから４．５秒（１３５フレーム分）経過した瞬間のスナップショットを示す説明図である。
【図２】本発明の一実施形態に係る動画像表示装置２０のハードウェア構成を示す説明図。
【図３】本発明の一実施形態に係る動画像表示装置２０の字幕表示部３０の機能ブロックを示す説明図。
【図４】本発明の一実施形態に係る記号列ビットマップ管理部３２のデータ構造を示す説明図。
【図５】本発明の一実施形態に係る全体処理の流れを示すフローチャート。
【図６】本発明の一実施形態に係る字幕表示処理の流れを示すフローチャート。
【符号の説明】
【００９１】
２０  動画像表示装置
２１  ＣＰＵ
２２  揮発性メモリ
２３  不揮発性メモリ
２４  外部記憶媒体ドライブ
２４ａ  検査対象ＲＯＭ
２５  入力制御ＩＣ
２５ａ  操作装置
２６  画像合成ＩＣ
２６ａ  表示装置
２７  音声合成ＩＣ２７
２７ａ  スピーカ
２８  バス
３１  字幕設定部
３２  記号列ビットマップ管理部
３３  表示速度計算部
３４  記号列現在表示割合変更部
３５  カウンタ管理部
３６  記号列現在表示割合ビットマップ表示部
３７  フレームリフレッシュ検出部
【図１】
2007086317.tif 000003
【図２】
2007086317.tif 000004
【図３】
2007086317.tif 000005
【図４】
2007086317.tif 000006
【図５】
2007086317.tif 000007
【図６】
2007086317.tif 000008