(57)【要約】【課題】低コストのキャラクタジェネレータ方式のＯＳＤ表示において、プロポーショナルフォントを適切に表示させることができるようにする。【解決手段】プロポーショナルフォントの文字列「Normal」を含むGUIボタンである領域２２１において各フォントのフォントサイズを取得して文字列の幅を演算し、文字列の右端から領域２２１の右端のGUIパーツまでのドット数を計算する。次に、文字列の右端から領域２２１の右端のGUIパーツまでのスペースを空白のブロックで埋め、オフセットをブロック数として演算する。領域２２１右端に表示されるGUIパーツのブロック位置としては、サイズが18dotのブロックの位置に、オフセットを加算したブロック位置とし、それ以降の右側のGUIパーツ表示が可能となる。【選択図】図６
2007108499.tif 000002
【特許請求の範囲】
【請求項１】
キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置であって、
前記画像の描画枠に挿入すべき文字列の情報を取得する文字列取得手段と、
前記文字列取得手段により取得された前記文字列に対応するフォントが前記画像において表示される幅であって文字列幅を演算する文字列幅演算手段と、
前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅を特定する特定手段と、
特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報を算出する算出手段と、
前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータを生成する生成手段と
を備える画像データ生成装置。
【請求項２】
前記文字列のフォントは、プロポーショナルフォントである
請求項１に記載の画像データ生成装置。
【請求項３】
前記文字列幅演算手段は、
前記文字列のそれぞれの文字に対応するフォントのフォントサイズを判定して前記文字列幅を演算する
請求項１に記載の画像データ生成装置。
【請求項４】
前記文字列幅演算手段は、
前記文字列のそれぞれの文字に対応するフォントを、標準フォントと例外フォントに区別し、前記例外フォントに属するフォントのフォントサイズを判定する
請求項３に記載の画像データ生成装置。
【請求項５】
前記画像は、テレビジョン受像機の表示画面においてＯＳＤとして表示される
請求項１に記載の画像データ生成装置。
【請求項６】
キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置の画像データ生成方法であって、
前記画像の描画枠に挿入すべき文字列の情報を取得し、
前記取得された文字列に対応するフォントが前記画像において表示される幅であって文字列幅を演算し、
前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅を特定し、
特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報を算出し、
前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータを生成する
ステップを含む画像データ生成方法。
【請求項７】
キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置に画像データ生成処理を実行させるプログラムであって、
前記画像の描画枠に挿入すべき文字列の情報の取得を制御し、
前記取得された文字列に対応するフォントが前記画像において表示される幅であって文字列幅の演算を制御し、
前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅の特定を制御し、
特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報の算出を制御し、
前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータの生成を制御する
ステップを含むコンピュータが読み取り可能なプログラム。
【請求項８】
請求項７に記載のプログラムが記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ生成装置および方法、プログラム並びに記録媒体に関し、特に、低コストのキャラクタジェネレータ方式のＯＳＤ表示において、プロポーショナルフォントを適切に表示させることができるようにする画像データ生成装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
テレビジョン受像機、コンピュータのディスプレイなどの表示機器において表示されるＯＳＤ（On Screen Display）では、キャラクタジェネレータ方式が用いられることが多い。
【０００３】
従来、キャラクタジェネレータ方式では、文字列の場合は、図１に示されるように文字列の各文字に対応するフォントROMのアドレスを特定し、そのアドレスに対応したフォントデータを、フォントＲＯＭからVRAM（Video RAM）にブロック単位に展開することで文字列を画面上に表示している。また、文字以外のGUIパーツ部品、例えばボタン枠の場合、図２に示されるように、各GUIパーツに相当するフォントROMアドレスを特定し、そのアドレスに対応した部品データをVRAMにブロック単位に展開することで文字列とGUI部品を画面上に表示している。ここで、ブロックは、１つの文字フォントまたは１部分のGUIパーツが格納されているデータの単位であって、例えば24dot×32dotが1ブロックとされる。
【０００４】
このキャラクタジェネレータ方式において、文字フォントとGUI部品が全て同じドット幅で構成されていれば、文字フォントとGUI部品の両方の表示を制御する場合でも、OSDの表示は格別困難ではない。しかしながら、文字によって文字フォントの幅が異なるプロポーショナルフォントを用いてＯＳＤの表示を行うことは難しい。
【０００５】
例えば、プロポーショナルフォントを用いてＯＳＤの表示を行うと、表示される文字によって文字フォントの幅が異なるため、同じ10ブロックの文字列であっても、文字列の右端のブロックの位置に差異がでてしまうことがあり、文字列の右端の第１０番目のブロックの次の第１１番目のブロックからGUI部品を配置する処理になっていると、GUIボタン枠の右端側のパーツは希望の表示位置から左側にずれてしまう。
【０００６】
そこで、プロポーショナルフォントを用いた表示の制御を行う技術が提案されている（例えば、特許文献１、特許文献２、または特許文献３参照）。
【０００７】
【特許文献１】特開２０００−２６７６４５号公報
【０００８】
【特許文献２】特開２００２−７２９９９号公報
【０００９】
【特許文献３】特開２０００−２５０５１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１の技術は、ビットマップのGUI枠が配置座標を指定されることで、あるポジションに配置され、そのGUI枠内にプロポーショナル制御された文字列幅をカウントすることで、枠内の中央に配置することができるというものである。これはビットマップを指定座標に配置できるモジュール機能によって実現できるものであり、キャラクタジェネレータ方式のＯＳＤの表示に用いることはできない。
【００１１】
特許文献２または特許文献３の技術は、キャラクタジェネレータ方式によるＯＳＤの表示でも利用することができる。
【００１２】
しかしながら、特許文献２の技術は、格納されている文字パターンに対して余白サイズを各々情報として格納するものであり、特許文献３の技術は、あらかじめ２種類のフォントを搭載しておき、文字列を表示する際に表示エリアをオーバーしていた際には、小さい方のフォントを使用したり、表示範囲を超える場合は、組み文字フォントを使用する手法であり、例えば、GUIボタンの枠内にプロポーショナルフォントの文字列を挿入する場合などのOSDの表示の制御を行うときは、VRAMに複数のレイヤーを設けて、１つのレイヤーで生成されたGUIボタンの枠と、別のレイヤーで生成された文字列を重ね合わせて表示する必要があり、コスト高となってしまう。
【００１３】
このように、キャラクタジェネレータ方式のOSDの表示では、プロポーショナルフォントの文字列とGUI部品の表示の制御をＶＲＡＭの同じレイヤーで行うことが困難とされていた。さらに、フォントの種類や文字列の表示方向が異なる言語を切り替えて用いる場合は、複雑さを増すことになる。
【００１４】
本発明はこのような状況に鑑みてなされたものであり、低コストのキャラクタジェネレータ方式のＯＳＤ表示において、プロポーショナルフォントを適切に表示させることができるようにするものである。
【課題を解決するための手段】
【００１５】
本発明の一側面は、キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置であって、前記画像の描画枠に挿入すべき文字列の情報を取得する文字列取得手段と、前記文字列取得手段により取得された前記文字列に対応するフォントが前記画像において表示される幅であって文字列幅を演算する文字列幅演算手段と、前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅を特定する特定手段と、特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報を算出する算出手段と、前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータを生成する生成手段とを備える画像データ生成装置である。
【００１６】
前記文字列のフォントは、プロポーショナルフォントであるようにすることができる。
【００１７】
前記文字列幅演算手段は、前記文字列のそれぞれの文字に対応するフォントのフォントサイズを判定して前記文字列幅を演算するようにすることができる。
【００１８】
前記文字列幅演算手段は、前記文字列のそれぞれの文字に対応するフォントを、標準フォントと例外フォントに区別し、前記例外フォントに属するフォントのフォントサイズを判定するようにすることができる。
【００１９】
前記画像は、テレビジョン受像機の表示画面においてＯＳＤとして表示されるようにすることができる。
【００２０】
本発明の一側面は、キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置の画像データ生成方法であって、前記画像の描画枠に挿入すべき文字列の情報を取得し、前記取得された文字列に対応するフォントが前記画像において表示される幅であって文字列幅を演算し、前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅を特定し、特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報を算出し、前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータを生成するステップを含む画像データ生成方法である。
【００２１】
本発明の一側面は、キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置に画像データ生成処理を実行させるプログラムであって、前記画像の描画枠に挿入すべき文字列の情報の取得を制御し、前記取得された文字列に対応するフォントが前記画像において表示される幅であって文字列幅の演算を制御し、前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅の特定を制御し、特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報の算出を制御し、前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータの生成を制御するステップを含むコンピュータが読み取り可能なプログラムである。
【００２２】
本発明の一側面においては、画像の描画枠に挿入すべき文字列の情報が取得され、前記取得された文字列に対応するフォントが前記画像において表示される幅であって文字列幅が演算され、前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅が特定され、特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報が算出され、前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータが生成される。
【発明の効果】
【００２３】
本発明の一側面によれば、低コストのキャラクタジェネレータ方式のＯＳＤ表示において、プロポーショナルフォントを適切に表示させることができる。
【発明を実施するための最良の形態】
【００２４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２５】
本発明の一側面の画像データ生成装置は、キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置（例えば、図３のＯＳＤモジュール１２３）であって、前記画像の描画枠に挿入すべき文字列の情報を取得する文字列取得手段（例えば、図８のステップＳ１２１の処理を実行する図３のＯＳＤＣ１４３）と、前記文字列取得手段により取得された前記文字列に対応するフォントが前記画像において表示される幅であって文字列幅を演算する文字列幅演算手段（例えば、図８のステップＳ１２２の処理を実行する図３のＯＳＤＣ１４３）と、前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅を特定する特定手段（例えば、図８のステップＳ１２３の処理を実行する図３のＯＳＤＣ１４３）と、特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報（例えば、オフセット）を算出する算出手段（例えば、図８のステップＳ１２４の処理を実行する図３のＯＳＤＣ１４３）と、前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータを生成する生成手段（例えば、図８のステップＳ１２５の処理を実行する図３のＯＳＤＣ１４３）とを備える。
【００２６】
本発明の一側面の画像データ生成方法は、キャラクタジェネレータ方式により表示すべき画像のデータを生成する画像データ生成装置（例えば、図３のＯＳＤモジュール１２３）の画像データ生成方法であって、前記画像の描画枠に挿入すべき文字列の情報を取得し（例えば、図８のステップＳ１２１の処理）、前記取得された文字列に対応するフォントが前記画像において表示される幅であって文字列幅を演算し（例えば、図８のステップＳ１２２の処理）、前記文字列が挿入された状態の前記画像の描画枠におけるスペースの幅を特定し（例えば、図８のステップＳ１２３の処理）、特定された前記スペースの幅に基づいて、前記描画枠の表示位置を特定するための制御情報（例えば、オフセット）を算出し（例えば、図８のステップＳ１２４の処理）、前記描画枠の描画開始位置の画像から順に、前記文字列のフォント、および前記特定手段により特定されたスペースを描画するとともに、前記制御情報に基づいて前記描画枠の描画終了位置の画像を描画して前記画像のデータを生成する（例えば、図８のステップＳ１２５の処理）ステップを含む。
【００２７】
以下、図面を参照して、本発明の実施の形態について説明する。図３は、本発明を適用したテレビジョン受像機１００の一実施形態に係る構成例を示す図である。
【００２８】
図３において、チューナ１２１は、図示せぬアンテナなどを介して取得される放送信号を受信し、受信した放送信号のうち所定のチャネルの信号に基づいてコンポジットビデオ信号とオーディオ信号とを復調し、コンポジットビデオ信号を画像信号として高画質回路１２４に出力する。ビデオ入力端子１２２は、図示せぬ再生装置などから供給される画像信号を高画質回路１２４に出力する。
【００２９】
ＯＳＤ（On Screen Display）制御モジュール１２３は、表示すべきＯＳＤに対応する画像信号を生成する機能ブロックであり、フォントROM１４１、VRAM（Video RAM）１４２、およびOSDC（On Screen Display Controller）１４３が設けられている。なお、ＯＳＤ制御モジュール１２３は、ＯＳＤの画像を生成する場合、キャラクタジェネレータ方式により画像を生成する。
【００３０】
ＯＳＤの表示に用いられる各種の文字フォントまたはＧＵＩ（Graphical User Interface）パーツは、フォントＲＯＭ１４１に格納されている。OSDC１４３は、予め生成されたフォントＲＯＭ１４１のアドレスと、各種の文字フォントまたはＧＵＩパーツを対応づけるテーブルなどに基づいて、表示すべきＯＳＤにおいて必要となる文字フォントまたはGUI（Graphical User Interface）パーツに対応づけられたフォントＲＯＭ１４１のアドレスを特定して、ＯＳＤとして表示すべき文字フォントまたはGUI（Graphical User Interface）パーツをフォントＲＯＭ１４１から読み出す。
【００３１】
フォントＲＯＭ１４１から読み出された文字フォントまたはＧＵＩパーツは、VRAM１４２に展開される。例えば、表示すべきGUIパーツと文字フォントがVRAM１４２の所定の記憶位置に画面の左側に位置するＧＵＩパーツまたは文字フォントから順番に並べられることにより、ＯＳＤとして表示すべき画像（例えば、ＧＵＩなど）がVRAM１４２の中に生成されることになる。
【００３２】
そしてOSDC１４３は、VRAM１４２の中に生成された、例えばGUIの画像に対応する画像信号を生成し、高画質回路１２４に出力する。
【００３３】
ＯＳＤ制御モジュール１２３においては、VRAM１４２のレイヤーは１とされる。すなわち、例えば、GUIボタンの枠の画像と、GUIボタンの枠内に挿入すべき文字列の画像が、VRAM１４２の中で別々に生成されて後から合成されることはなく、GUIボタンの枠の画像と、GUIボタンの枠内に挿入すべき文字列の画像がVRAM１４２の中で同一の画面上に生成されることになる。このように、VRAM１４２のレイヤーを１とすることで、OSD制御モジュール１２３の構成を簡素化することができ、その結果、テレビジョン受像機１００の製造コストを抑制することができる。
【００３４】
高画質回路１２４は、チューナ１２１またはビデオ入力端子１２２から供給される画像信号に対応する画像と、ＯＳＤ制御モジュール１２３から供給される画像信号に対応する画像とを合成した画像に対応する画像信号を生成して表示部１２５に出力する。
【００３５】
表示部１２５は、CRT(Cathode Ray Tube)、ＬＣＤ(Liquid Crystal display)などにより構成され、高画質回路１２４から供給される画像信号に対応する画像を表示させる。これにより、必要に応じてテレビジョン放送またはビデオなどの画像にＯＳＤが重畳された画像が表示される。
【００３６】
テレビジョン受像機１００におけるＯＳＤの表示においては、プロポーショナルフォントが用いられる。
【００３７】
ここで、プロポーショナルフォントを用いたＯＳＤの表示について説明する。通常、日本語でのＯＳＤの表示には、各文字の幅が等しい当幅フォントが用いられることが多いが、プロポーショナルフォントは、文字ごとに異なった幅を持つフォントであり、プロポーショナルフォントを用いることでアルファベットなどを美しく表示できる。
【００３８】
図４は、同じ文字列を当幅フォントで表示した場合と、プロポーショナルフォントで表示した場合の例を示す図である。同図においては、「Picture」という文字列を、当幅フォントで表示した場合の表示例２０１と、プロポーショナルフォントで表示した場合の表示例２０２が示されている。表示例２０１においては、全ての文字が同じ文字幅をもつフォントとして、図中均等の大きさの四角形の枠内に１文字ずつ文字（フォント）が表示されている。これに対して、表示例２０２においては、大文字である「Ｐ」に対して小文字である「icture」はより小さい幅のフォントで表示されており、それら小文字のフォントの中でも「ｉ」、「ｔ」はさらに小さい幅のフォントで表示されている。
【００３９】
このように、プロポーショナルフォントを用いる場合、同じ文字数で構成される文字列であっても、文字の種類に応じて文字列全体の幅が異なってしまう。
【００４０】
例えば、キャラクタジェネレータ方式でGUIを生成する場合であって、文字列の右側に他のＧＵＩパーツが表示される場合、各文字のフォントデータが、フォントＲＯＭからVRAMにブロック単位に展開されることで文字列を画面上に表示し、文字列の最終（最右端）のブロックの次のブロックに、フォントＲＯＭから読み出されたGUIパーツのデータが展開されることで文字列とGUIパーツがＧＵＩ画面として生成される。ここで、ブロックは、１つの文字フォントまたは１部分のGUIパーツが格納されているデータの単位であって、例えば24dot×32dotが1ブロックとされる。
【００４１】
しかしながら、均等幅フォントを用いてＧＵＩを表示する場合、同じ文字列の文字幅は等しいものになるが、プロポーショナルフォントを用いてＧＵＩを表示する場合、同じ文字数で構成される文字列であっても、文字の種類に応じて文字列全体の幅が異なるため、ＧＵＩの表示が不自然になってしまう場合がある。
【００４２】
例えば、図４に示されるように、画面の左端に１ブロックの空白のブロックを挿入し、文字列「Picture」に２ブロックの空白のブロックを挿入し、その右側にGUIパーツを表示させる場合、GUIパーツは第１１ブロック目から表示されることになるが、表示例２０１と、表示例２０２では、第１１ブロック目の表示位置が異なっている。また、プロポーショナルフォントを用いる場合、文字列を構成する文字の種類が変われば、第１１ブロック目の表示位置は、表示例２０２の場合とは異なるものとなることもある。
【００４３】
図５は、プロポーショナルフォントを用いて適切に表示されたGUIの例を示す図である。同図においては、図中四角形で囲まれた領域A乃至領域Dにおいて、プロポーショナルフォントの文字列が表示されており、同図のように自然で見易いＧＵＩ画面を生成するためには、プロポーショナルフォントの文字列の右側の表示位置であって、図中円で囲まれた１４の表示位置を適切に特定する必要がある。
【００４４】
このため、本発明においては、ＧＵＩを生成する場合、プロポーショナルフォントで表示される文字列の後（右側）に挿入すべき空白のブロックをオフセットとして予め算出する。
【００４５】
図６を参照して、ＯＳＤ制御モジュール１２３におけるオフセットの算出について説明する。図６は、やはりプロポーショナルフォントを用いて適切に表示されたGUIの例を示す図であり、ここでは、文字列「Normal」を含むGUIボタンである領域２２１におけるオフセットの算出を例として説明する。なお、図中上端に表示される０乃至１８までの数値は、サイズ（ブロックの幅）が18dotのブロックの位置を表している。
【００４６】
ＯＳＤＣ１４３は、予め記憶しているフォントサイズテーブルを参照し、表示すべき文字列の幅を演算する。この例では、「o」、「r」、「a」「l」の4つの文字のフォントサイズが12dot、「N」、「ｍ」の文字またはGUIパーツのフォントサイズが18dotとする。今の場合、文字列「Normal」の幅は、84（=12×4＋18×2）dotとなる。
【００４７】
文字列の幅が演算された後、ＯＳＤＣ１４３は、文字列の右端から領域２２１の右端のGUIパーツまでのドット数を計算する。いまの場合、領域２２１のGUIパーツを除く部分は、18dotのブロックとして換算した場合、１３ブロックあることになり、全体で２３４（＝１３×１８）dotとなる。従って、文字列の右端から領域２２１の右端のGUIパーツまでのドット数は、１５０（＝２３４−８４）dotと求めることができる。
【００４８】
次に、ＯＳＤＣ１４３は、文字列の右端から領域２２１の右端のGUIパーツまでのスペースを空白のブロックで埋める。ここで、空白のブロックは、サイズが12dotのものを優先的に用い、サイズ12dotの空白のブロックでスペースを埋めることができない場合は、適宜サイズ18dotの空白のブロックを用いることとする。いまの場合、150（dot）を12（dot）で割った商は11で、余りが18となるので、12dotの空白のブロック１１個および18dotの空白のブロック１個で文字列の右端から領域２２１の右端のGUIパーツまでのスペースを埋める。
【００４９】
そしてＯＳＤＣ１４３は、オフセットをブロック数として演算する。ここでオフセットは、次のようにして演算される。
【００５０】
オフセット＝（空白のブロック数＋文字列のブロック数）−領域２２１のGUIパーツを除く部分を18dotのブロックとして換算した場合のブロック数
【００５１】
いまの場合、空白のブロック数が12であり、文字列（Normal）のブロック数は6なので、領域２２１のGUIパーツを除く部分のブロック数は18となる。ＯＳＤＣ１４３は、オフセットを5（＝18-13）ブロックと求める。領域２２１右端に表示されるGUIパーツのブロック位置としては、サイズが18dotのブロックの位置に、オフセットを加算したブロック位置とし、それ以降の右側のGUIパーツ表示が可能となる。
【００５２】
このようにすることで、文字フォントやＧＵＩパーツをブロック単位で表示するキャラクタジェネレータ方式において、プロポーショナルフォントを用いたＧＵＩを適切に表示することができる。
【００５３】
また、このようにすることで、GUI枠の中に文字列を挿入するようなGUIの画像を生成する場合であっても、VRAM１４２のレイヤーを１とすることができ、コストを抑制することが可能となる。
【００５４】
次に、図７のフローチャートを参照して、テレビジョン受像機１００における情報表示処理について説明する。この処理は、例えば、テレビジョン受像機１００において、ＯＳＤが表示されるとき実行される。
【００５５】
ステップＳ１０１において、ＯＳＤＣ１４３は、ＯＳＤとして表示する画面の言語を判定する。このとき、例えば、ユーザの選択、または予め設定されたパラメータなどに基づいて、日本語の画面であるか、英語の画面であるかが判定される。
【００５６】
ステップＳ１０２において、ＯＳＤＣ１４３は、表示画面の情報を取得する。このとき、例えば、図示せぬリモコンなどを介して入力されるユーザからのコマンドなどに対応して表示すべき画面のレイアウトが取得される。なお、ＯＳＤとして表示すべき画面のレイアウトは、例えば、ＯＳＤ制御モジュール１２３内の図示せぬ記憶部などに、複数の種類のレイアウトが予め記憶されており、リモコンなどを介して入力されるユーザからのコマンドなどに対応して所定の画面（例えば、図５に示されるような画面）のレイアウトが選択されて取得される。
【００５７】
ステップＳ１０３において、ＯＳＤＣ１４３は、表示すべきGUI枠の情報を取得する。このとき、例えば、ステップS１０２の処理で取得された画面のレイアウトにおける個々のＧＵＩ枠（例えば、図６に示される領域２２１など）が取得される。ここでGUI枠は、上述したオフセットを演算して、プロポーショナルフォントを用いた表示が適正に行われるようにするために取得されるものであり、例えば、図５において図中円で囲まれた表示位置を特定するために必要となる全てのGUI枠（この例では１４個のGUI枠）が取得される。
【００５８】
ステップS１０４において、ＯＳＤＣ１４３は、図８を参照して後述するGUI枠描画処理を実行する。これにより、ステップS１０３で取得された個々のGUI枠について、キャラクタジェネレータ方式で表示画像が生成されて画像が描画される。
【００５９】
次に、図８のフローチャートを参照して、図７のステップS１０４のGUI枠描画処理の詳細について説明する。
【００６０】
ステップＳ１２１において、ＯＳＤＣ１４３は、文字列を取得する。このとき、GUI枠の中に挿入されて表示されるべき文字列が取得される。
【００６１】
ステップS１２２において、ＯＳＤＣ１４３は、図９のフローチャートを参照して後述する文字列幅演算処理を実行する。これにより、ステップＳ１２１の処理で取得された文字列がプロポーショナルフォントで表示された場合の幅（文字列の幅）が演算される。
【００６２】
ここで、図９のフローチャートを参照して、図８のステップＳ１２２の文字列幅演算処理の詳細について説明する。
【００６３】
ステップＳ１４１において、ＯＳＤＣ１４３は、変数Ｎに値１をセットする。
【００６４】
ステップＳ１４２において、ＯＳＤＣ１４３は、Ｎ番目の文字があるか否かを判定し、Ｎ番目の文字があると判定された場合、処理は、ステップＳ１４３に進む。
【００６５】
ステップＳ１４３において、ＯＳＤＣ１４３は、Ｎ番目の文字は例外フォントか否かを判定する。このとき、ＯＳＤＣ１４３は、予め記憶しているフォントサイズテーブルを参照する。フォントサイズテーブルは、例えば、ＯＳＤ制御モジュール１２３に設けられる図示せぬ記憶部などに記憶されており、例えば、文字コードなどのその文字を特定する情報と、フォントＲＯＭ１４１に記憶されているその文字のフォントの種類とを対応づけるテーブルとされる。
【００６６】
フォントサイズテーブルにおいては、フォントの種類として、「標準（18dot）」と「例外」に区別され、「例外」に該当するフォントは、さらに「Ｓサイズ（12dot）」と「Ｌサイズ(24dot)」に区別される。例えば、アルファベットのフォントの場合、「A」、「B」、「C」などのフォントは、フォントの種類が「標準（18dot）」に該当し、「Ｍ」、「Ｗ」、「Ｉ」などのフォントは、フォントの種類が「例外」に該当する。このうち、「Ｍ」、「Ｗ」は、標準のフォントより広い幅で表示される「Ｌサイズ(24dot)」のフォントとされ、「Ｉ」は、標準のフォントより狭い幅で表示される「Ｓサイズ（12dot）」のフォントとされる。すなわち、アルファベットのフォントの中で最も数の多い１８dotのフォントサイズの文字（フォント）は「標準」とされ、それ以外の文字（フォント）が「例外」とされている。
【００６７】
ステップS１４３において、Ｎ番目の文字は例外フォントではないと判定された場合、処理は、ステップS１４４に進み、ＯＳＤＣ１４３は、文字列幅に１８dotを加算する。
【００６８】
一方、ステップS１４３において、Ｎ番目の文字は例外フォントであると判定された場合、処理は、ステップS１４５に進み、ＯＳＤＣ１４３は、Ｎ番目の文字のフォントサイズを判定する。
【００６９】
ステップS１４３において、Ｎ番目の文字のフォントサイズは、「Ｓサイズ」であると判定された場合、処理は、ステップＳ１４６に進み、ＯＳＤＣ１４３は、文字列幅に１２dotを加算する。一方、ステップS１４３において、Ｎ番目の文字のフォントサイズは、「Lサイズ」であると判定された場合、処理は、ステップＳ１４６に進み、ＯＳＤＣ１４３は、文字列幅に２４dotを加算する。
【００７０】
例えば、「Ａ」は１８dot、「B」は１８dot、「Ｃ」は１８dot、・・・のように、文字毎にその文字のフォントサイズを記憶させておくことも可能であるが、このようにすると、各文字のフォントサイズを都度、取得する必要があり処理に時間がかかる。そこで、本発明においては、最初に文字のフォントの種類が「標準」であるか「例外」であるかが判定され、「標準」に該当する文字のフォントサイズは、全て18dotが割り当てられ、「例外」に該当する文字のフォントサイズは、その文字毎にフォントサイズが取得され24dotまたは12dotが割り当てられる。
【００７１】
このようにすることで、アルファベットの中で、比較的少ない文字（「例外」）についてのみフォントサイズを取得（判定）するようにすることができ、処理にかかる時間を短縮することが可能となる。
【００７２】
ステップＳ１４４、Ｓ１４６、またはＳ１４７の処理の後、処理は、ステップＳ１４８に進み、変数Ｎの値が１だけインクリメントされ、処理は、ステップＳ１４２に戻り、それ以後の処理が繰り返し実行される。
【００７３】
そして、ステップＳ１４２において、Ｎ番目の文字はないと判定された場合、処理は終了する。
【００７４】
このようにして、プロポーショナルフォントで表示された場合の文字列の幅が演算される。
【００７５】
図８に戻って、ステップＳ１２２の処理の後、処理は、ステップＳ１２３に進み、ＯＳＤＣ１４３は、空白のブロック数を特定する。このとき、例えば、図６を参照して上述したように、文字列の右端からGUI枠（例えば、領域２２１）の右端のGUIパーツまでのスペースを埋めるための空白のブロックの数が特定される。なお、上述したように空白のブロックは、サイズが12dotのものが優先的に用いられ、サイズ12dotの空白のブロックでスペースを埋めることができない場合は、適宜サイズ18dotの空白のブロックが用いられる。
【００７６】
ステップS１２４において、ＯＳＤＣ１４３は、図６を参照して上述したようにオフセットを計算する。
【００７７】
ステップＳ１２５において、ＯＳＤＣ１４３は、ステップＳ１２１で取得された文字列の各文字のフォントをフォントＲＯＭ１４１から読み出してＶＲＡＭ１４２に展開し、ＧＵＩ枠の右端に表示されるGUIパーツのブロック位置を、サイズが18dotのブロックの位置に、オフセットを加算したブロック位置として、ＧＵＩ枠を描画する。
【００７８】
なお、図７のステップS１０４のGUI枠描画処理は、表示すべきGUI枠のそれぞれについて行われる。例えば、ステップS１０２で取得された画面の情報が図５に示されるような画面の情報であった場合、図中円で囲まれる１４の表示位置を求めるためのオフセットがそれぞれ演算され、個々のGUI枠の描画が行われる。
【００７９】
図１０乃至図１３を参照してさらに詳しく説明する。
【００８０】
例えば、図７のステップＳ１０３の処理で、図１０に示されるようなGUI枠２５１が取得されたとする。この例では、GUI枠２５１は、18dotのブロックで換算すると１１ブロック（198(=11×18)dot）のGUI枠とされている。そして、GUI枠２５１の右端のブロック２７１の位置にGUIパーツを表示すべく、以降の処理が行われるものとする。GUI枠２５１の左端のブロック２６１（GUIパーツ）と、GUI枠２５１の右端のブロック２７１との間の９ブロックが文字列の挿入部位となる。
【００８１】
図８のステップS１２１の処理では、図１１に示されるような文字列が、GUI枠２５１の中に挿入されるべき文字列として取得されたものとする。この例では、「Picture」という文字列が取得されている。
【００８２】
そして、ステップS１２２の処理では、文字列「Picture」をプロポーショナルフォントで表示した場合の文字列の幅が演算される。文字列「Picture」のうち、「i」、「t」、「r」は、「例外」に区別されるフォントとされ、そのサイズはSサイズ（12dot）とされる。図１２においては、「標準（18dot）」に区別されるフォントである「Ｐ」、「ｃ」、「ｕ」、「ｅ」は、「Ｍ」と記述され、Ｓサイズのフォントは、「Ｓ」と記述され、文字列「Picture」の幅が１０８（＝18×4＋12×3）dotと演算されている。
【００８３】
さらに、ステップS１２３の処理では、文字列（「Picture」）の右端（「ｅ」）からGUI枠の右端のGUIパーツまでのスペースを埋めるための空白のブロックの数が特定される。いまの場合、文字列「Picture」の幅（108dot）と、GUI枠２５１の幅（左端のGUIパーツを含まず）（180dot）との差分（スペースの幅）は、72（=198-126）dotなので、このスペースを埋める空白のブロック数は、４と特定される。なお、空白のブロック４個のうち３個は、12dotのブロックであり、１個は18dotのブロックとされる。
【００８４】
文字列のブロック数７と、空白のブロック数４とを足すと１１となり、18dotのブロックに換算した場合のブロック数９との差分がオフセットとされ、ステップS１２４の処理で算出される。
【００８５】
これにより、OSDC１４３は、図１３に示されるように、GUI枠２５１の９ブロックの文字列挿入部位に、７文字の文字列（「Picture」）を挿入し、挿入された文字列の右端（「ｅ」）から２ブロックの空白ブロックを挿入した後、さらに２ブロックの空白ブロックを挿入して、ブロック２７１のブロック位置にGUIパーツを挿入することでGUI枠２５１の描画を行う。
【００８６】
このようにして、キャラクタジェネレータ方式によるプロポーショナルフォントを用いたGUIの表示の制御が行われ、表示部１２５にＯＳＤとして表示される。
【００８７】
以上においては、アルファベットを例として説明したが、他の言語で用いられる文字をプロポーショナルフォントで表示する場合にも本発明を適用することができる。
【００８８】
また、以上においては、左から右に記述される文字列を例として説明したが、例えば、アラビア語のように、右から左へ記述される文字列であっても本発明を適用することができる。この場合、例えば、図１４に示されるように、演算されたオフセットに基づいて、ＧＵＩ枠の右端のブロック位置を特定し、文字列の右端（いまの場合、「ｅ」）から先ほどとは逆の順序で枠内の右側からVRAM１４２にフォントデータを展開していくようにすればよい。
【００８９】
以上においては、本発明をテレビジョン受像機１００に適用した例について説明したが、本発明を汎用のパーソナルコンピュータ５００に適用することも可能である。図１５は、パーソナルコンピュータ５００の構成例を示すブロック図である。
【００９０】
図１５において、CPU（Central Processing Unit）５０１は、ROM（Read Only Memory）５０２に記憶されているプログラム、または記憶部５０８からRAM（Random Access Memory）５０３にロードされたプログラムに従って各種の処理を実行する。RAM５０３にはまた、CPU５０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００９１】
CPU５０１、ROM５０２、およびRAM５０３は、バス５０４を介して相互に接続されている。このバス５０４にはまた、入出力インタフェース５０５も接続されている。
【００９２】
入出力インタフェース５０５には、キーボード、マウスなどよりなる入力部５０６、CRT(Cathode Ray Tube)、ＬＣＤ(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部５０７、ハードディスクなどより構成される記憶部５０８、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部５０９が接続されている。通信部５０９は、インターネットを含むネットワークを介しての通信処理を行う。
【００９３】
入出力インタフェース５０５にはまた、必要に応じてドライブ５１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部５０８にインストールされる。
【００９４】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア５１１などからなる記録媒体からインストールされる。
【００９５】
なお、この記録媒体は、図１５に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フロッピディスク（登録商標）を含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア５１１により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM５０２や、記憶部５０８に含まれるハードディスクなどで構成されるものも含む。
【００９６】
本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【００９７】
【図１】従来の文字フォントの描画方式を説明する図である。
【図２】従来のＧＵＩパーツの描画方式を説明する図である。
【図３】本発明を適用したテレビジョン受像機の一実施形態に係る構成例を示す図である。
【図４】プロポーショナルフォントの例を説明する図である。
【図５】ＯＳＤとして表示されるGUIの例を示す図である。
【図６】プロポーショナルフォントを用いて表示されるGUI枠の例を示す図である。
【図７】情報表示処理の例を説明するフローチャートである。
【図８】GUI枠描画処理の例を説明するフローチャートである。
【図９】文字列幅演算処理の例を説明するフローチャートである。
【図１０】GUI枠の例を示す図である。
【図１１】文字列の例を示す図である。
【図１２】文字列の幅の算出の例を説明する図である。
【図１３】プロポーショナルフォントを用いて表示されたGUI枠の例を示す図である。
【図１４】文字列を右から左へ記述する場合のプロポーショナルフォントを用いて表示されたGUI枠の例を示す図である。
【図１５】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【００９８】
１００  テレビジョン受像機，  １２３  ＯＳＤ制御モジュール，  １２４  高画質回路，  １２５  表示部
【図１】
2007108499.tif 000003
【図２】
2007108499.tif 000004
【図３】
2007108499.tif 000005
【図４】
2007108499.tif 000006
【図５】
2007108499.tif 000007
【図６】
2007108499.tif 000008
【図７】
2007108499.tif 000009
【図８】
2007108499.tif 000010
【図９】
2007108499.tif 000011
【図１０】
2007108499.tif 000012
【図１１】
2007108499.tif 000013
【図１２】
2007108499.tif 000014
【図１３】
2007108499.tif 000015
【図１４】
2007108499.tif 000016
【図１５】
2007108499.tif 000017