(57)【要約】【課題】  ベクトル形式のフォント／アイコンの描画を高速化する。【解決手段】  ベクトルデータを描画すべきとき、システム制御部（１０３）は、対応するラスタデータがＲＡＭ１０１のワークエリアに一時保持されているかどうかを、データベースを参照して確認する。ワークエリアに無い場合、システム制御部（１０３）は、描画処理部（１０６）で描画処理するベクトルデータをデータベースに登録しつつ描画処理部（１０６）に描画させる。描画処理部（１０６）の描画で得られるラスタデータは、ＲＡＭ（１０１）のキャッシュ用ＶＲＡＭ領域に書き込まれて表示され、再利用のためにワークエリアにも書き込まれる。ワークエリアにラスタデータが保持されている場合、システム制御部（１０３）は、ワークエリアからキャッシュ用ＶＲＡＭ領域に当該ラスタデータを転送する。【選択図】  図１
2015087809.tif 000002
【特許請求の範囲】
【請求項１】
ベクタデータを描画パラメータに従い描画し、対応するラスタデータを出力する描画処理手段と、
前記描画処理手段の処理負荷を判定する判定手段と、
前記処理負荷が閾値を超える場合に、前記描画処理手段から出力される前記ラスタデータを一時保持する記憶手段と、
前記記憶手段にラスタデータを一時保持するベクタデータを管理するデータベースと、
ベクタデータ描画の指示に応じて前記データベースを参照し、描画すべきベクタデータに対応するラスタデータが前記記憶手段に記憶されている場合に、前記記憶手段に一時保持される前記ラスタデータを再利用し、記憶されていない場合に、前記描画処理手段に前記描画すべきベクタデータを描画するように制御する制御手段
とを有することを特徴とする描画装置。
【請求項２】
前記判定手段が、前記描画パラメータがグラデーションの塗り、透過度及びフィルタ効果のいずれかを示すか否かにより、前記描画処理手段の処理負荷を判定することを特徴とする請求項１に記載の描画装置。
【請求項３】
前記判定手段は、前記描画処理手段による描画に要する時間を計測する手段を有し、前記時間に従い前記描画処理手段の処理負荷を判定することを特徴とする請求項１又は２に記載の描画装置。
【請求項４】
更に、描画の動作モードを判定する手段を有し、
前記制御手段は、前記動作モードがアニメーション動作またはスクロール動作の場合であって、対応するラスタデータが前記記憶手段に一時保持されているときには、前記記憶手段に一時保持されるラスタデータを再利用する
ことを特徴とする請求項１乃至３の何れか１項に記載の描画装置。
【請求項５】
ベクタデータを描画パラメータに従い描画し、対応するラスタデータを出力する描画処理ステップと、
前記描画処理ステップの処理負荷が閾値を超えるかどうかを判定する判定ステップと、
前記処理負荷が前記閾値を超える場合に前記描画処理ステップで生成される前記ラスタデータを記憶手段に一時保持する記憶ステップと、
前記記憶手段にラスタデータを一時保持するベクタデータをデータベースに登録するステップと、
ベクタデータ描画の指示に応じて前記データベースを参照し、描画すべきベクタデータに対応するラスタデータが前記記憶手段に記憶されている場合に、前記記憶手段に一時保持される前記ラスタデータを再利用し、記憶されていない場合に、前記描画処理ステップにおいて前記描画すべきベクタデータを描画するように制御する制御ステップ
とを有することを特徴とする描画方法。
【請求項６】
撮像装置の演算手段に請求項５に記載の描画方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画装置、方法及びプログラムに関し、特にベクタ形式の文字及びアイコンを描画する装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、文字及びアイコン等のベクトルデータをそのリソース情報に基づいて描画処理する場合、リソース情報の幅情報と高さ情報に基づいたサイズ等を用いて、描画オブジェクトの表現形式をベクタ形式又はビットマップ形式に決定していた。
【０００３】
特許文献１には、描画オブジェクトの表現形式をリソースのサイズと複雑度により適応的に切り替えることが記載されている。具体的には、スケーラブルフォントを展開処理する際に、出力するフォントのサイズと複雑度を、予め設定された最大サイズ及び最大複雑度とそれぞれ比較し、その比較結果によりビットマップ形式か矩形形式に切り換える。例えば、出力サイズが最大サイズを越える場合でも、複雑度が最大複雑度よりも小さいときには、矩形形式を採用する。これにより、少ないメモリ容量でスケーラブルフォントを展開でき、メモリ容量を節約しながら処理効率の向上を図ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０-１２４０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
小型ディスプレイを使用するデジタルカメラでもＧＵＩ（グラフィカル・ユーザー・インターフェース）が採用されつつある。デジタルカメラはカラー画像を扱い、簡易な編集機能への需要もあることから、多様な文字表現が期待されている。例えば、文字やアイコンの表現力向上、グラデーションによる色付け、透明度を調整した背景との透過、文字に影を付けたドロップシャドウ及びタッチ操作に連動したアニメーションなどである。
【０００６】
デジタルカメラのような小型の携帯機器では、装備できるメモリ量に制約があるので、ベクトルデータを更に効率的に扱う必要がある。
【０００７】
従来技術では、リソースのサイズ及び複雑度を評価して処理を切り替えているが、ここに挙げた表現についてはリソースの情報だけで処理性能を判断することが難しい。複雑度は低くても、多色のグラデーションによる描画は処理負荷が高くなるし、アニメーション動作中はＧＵＩが滑らかに移動することが最優先されるので、リソースのサイズ及び複雑度によらずに高速に描画できる技術が望まれる。
【０００８】
本発明は、このような要望を満たす描画装置、方法及びプログラムを提示することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明に係る描画装置は、ベクタデータを描画パラメータに従い描画し、対応するラスタデータを出力する描画処理手段と、前記描画処理手段の処理負荷を判定する判定手段と、前記処理負荷が閾値を超える場合に、前記描画処理手段から出力される前記ラスタデータを一時保持する記憶手段と、前記記憶手段にラスタデータを一時保持するベクタデータを管理するデータベースと、ベクタデータ描画の指示に応じて前記データベースを参照し、描画すべきベクタデータに対応するラスタデータが前記記憶手段に記憶されている場合に、前記記憶手段に一時保持される前記ラスタデータを再利用し、記憶されていない場合に、前記描画処理手段に前記描画すべきベクタデータを描画するように制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、処理負荷が高いＧＵＩ表現を描画する際に、展開済のラスタデータを用いるので、高速な描画を実現でき、操作レスポンスが向上する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を適用した撮像装置の外観図である。
【図２】本発明の一実施例の概略構成ブロック図である。
【図３】ラスタ形式データの模式図である。
【図４】ベクタ形式データの模式図である。
【図５】本実施例の動作フローチャートである。
【図６】本実施例における描画パラメータの例である。
【図７】本実施例の表現効果の模式図である。
【図８】本実施例で使用するデータベースの構成図である。
【図９】本実施例の動作説明図である。
【図１０】本実施例の別の動作フローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【実施例１】
【００１３】
図１は、本発明に係る描画装置の一実施例を適用した撮像装置の外観図を示す。
【００１４】
デジタルカメラ１００の表示部２８は、画像や各種情報を表示する表示部であり、液晶パネル等から構成される。シャッタボタン６１は、撮影指示を行うための操作部である。モードダイアル６０は、各種モードを切り替えるための操作部である。コネクタ１１２は、接続ケーブル１１１をデジタルカメラ１００に接続するコネクタである。操作部７０は、ユーザ又は撮影者による各種操作を受け付ける各種スイッチ、ボタン、タッチパネル等の操作部材より成る操作部である。コントローラホイール７３は、操作部７０に含まれる回転操作可能な操作部材である。７２は電源スイッチであり、電源オン、電源オフを切り替える。記録媒体２００は、メモリカード又はハードディスク等の記録媒体である。記録媒体スロット２０１は記録媒体２００を格納するためのスロットである。記録媒体スロット２０１に格納された記録媒体２００は、デジタルカメラ１００との通信が可能となる。蓋２０２は記録媒体スロット２０１の蓋である。
【００１５】
図２は、本発明に係る描画装置の一実施例の概略構成ブロック図を示す。描画装置１０は、デジタルカメラ１００において、撮影時のＧＵＩを描画し、撮影設定メニューを描画する。
【００１６】
１２０は内部バスであり、描画装置１０の各部と接続されデータの送受信に利用される。１０１はＲＡＭであり、システム制御部１０３のワークエリアとして使用される。ＲＡＭ１０１は、表示すべき画面データを格納するＶＲＡＭ領域、ベクタ形式のデータをラスタデータに展開するためのワーク領域、及びラスタ化されたデータをキャッシュ（一時保持）する領域として使用される。１０２はＲＯＭであり、システム制御部１０３が使用する制御プログラム、各種データ、ベクタ形式のフォント／アイコンデータ等を記憶する。
【００１７】
システム制御部１０３は、描画装置１０の各部を制御する。システム制御部１０３は、後述する描画パラメータの項目から処理負荷の高い項目を判定する。１０４は外部入力ＩＦであり、カメラの撮像部３００と接続されている。撮像部３００は被写体を撮像して画像データを出力する。撮像部３００から出力される画像データは、外部入力ＩＦ１０４及びバス１２０を経由してＲＡＭ１０１に書き込まれる。
【００１８】
１０５は、ＲＡＭ１０１のＶＲＡＭ領域に保持されている画面データを所定の形式で液晶パネル等の表示部に出力して表示させる表示処理部である。
【００１９】
１０６は描画処理部である。描画処理部１０６は、ＲＯＭ１０２に保持されているフォント／アイコンデータ等をシステム制御部１０３の指示により読み込み、ＲＡＭ１０１のＶＲＡＭ領域に描画する。システム制御部１０３は、描画処理に必要な各種パラメータを描画処理部１０６に設定する。描画処理部１０６は設定された描画パラメータに基づき、ＲＯＭ１０２から入力したリソースデータをもとに画面上の描画位置、スケーリング及び回転等の座標変換を行う。描画処理部１０６はまた、色パラメータに基づいてフォント／アイコンの内側及び輪郭線に色を付ける等の描画表現を変更できる。
【００２０】
１０７はユーザインターフェースであり、操作部７０のボタン等の操作部材及びタッチパネルが接続する。ユーザによる操作部７０への操作は、ユーザインターフェース１０７を介してシステム制御部１０３に入力される。
【００２１】
本実施例で処理されるフォント／アイコンデータの形式を説明する。データ形式として、図３に示すラスタ（ビットマップ）形式と、図４に示すベクタ形式の２つがある。描画装置１０は、ラスタ形式とベクタ形式のいずれにも対応可能である。
【００２２】
図３は、アルファベットの”Ｉ”に対するラスタ形式データの表現例を示す。ラスタ形式は格子状に並んだ画素の集合体により構成され、各画素の値が色強度を示す。他方、図４は、アルファベットの”Ｉ”に対するベクタ形式データの表現形式例を示す。ベクタ形式は、図４（Ａ）に示すように、形状を定義する頂点の座標値と、各頂点を結ぶ接続線情報から構成される。図４（Ｂ）は、ラスタ上での頂点の位置を示す。アルファベットの「Ｉ」を示すベクタデータは、図４（Ｂ）に示すように、黒丸の頂点座標に対応する１２個の座標値と、開始点を示す端点情報、終了点を示す端点情報、及び各頂点間を結ぶ１２個の接続線情報からなる。
【００２３】
描画装置１０の特徴的な動作を説明する。図５は、描画装置１０の描画動作を示すフローチャートである。
【００２４】
描画装置１０では、システム制御部１０３は、ＲＯＭ１０２に保持されているベクタ形式のフォント／アイコンを描画する際に、描画処理部１０６に所定の描画パラメータを事前に設定する。設定される主な描画パラメータの中で描画処理負荷の高いものを図６に示す。図７は、各描画パラメータによる表現効果を示す模式図である。
【００２５】
Ｓ５０１で、システム制御部１０３は、ベクトルデータの描画指示を発行する。この際、システム制御部１０３は、描画パラメータが図６に示す項目のいずれかである場合、描画対象のフォント／アイコンを識別するフォント／アイコン識別子と、描画パラメータを一時的にＲＡＭ１０１のワークエリアに保持する。フォント／アイコン識別子は、描画するフォント／アイコンを特定するために用いられる。本実施例では、ＲＯＭ１０２のフォント／アイコンを保持するアドレスを、フォント／アイコン識別子として利用する。
【００２６】
図８は、フォント／アイコン識別子、描画パラメータ及びキャッシュ領域の情報を管理するデータベース８００の構成と内容の一例を示す。データベース８００への登録条件として、図６に示す描画パラメータにおいて、塗りがグラデーション、透過度が１００％以外、並びに、ぼかし及びドロップシャドウ等のフィルタ効果ありのいずれかが指定された場合とする。図８に示すデータベース８００では、上記の条件に合致したものが、その識別子とセットで詳細パラメータと共に登録される。
【００２７】
Ｓ５０２で、システム制御部１０３は、Ｓ５０１でＲＡＭ１０１のワークエリアに保持しているデータをデータベース８００で探索する。
【００２８】
Ｓ５０３で、システム制御部１０３は、データベース８００の探索結果として識別子及び描画パラメータが一致するデータの有無を判定する。一致するデータが無い場合（Ｓ５０３）、システム制御部１０３は、Ｓ５０４に移行する。
【００２９】
Ｓ５０４で、システム制御部１０３は、ＲＡＭ１０１のワークエリアに保持しているデータをもとに新規の登録データを生成してデータベース８００に追加する。
【００３０】
Ｓ５０５で、システム制御部１０３は、描画処理部１０６によりデータベース８００に登録された描画対象のフォント／アイコンを下記の手順でラスタライズしてＶＲＡＭに描画する。
【００３１】
まず、システム制御部１０３は、ＲＡＭ１０１のキャッシュ領域に、座標変換係数から算出した幅及び高さに応じた容量の領域をキャッシュ用のＶＲＡＭ領域として確保する。次に、システム制御部１０３は、描画処理部１０６に対して描画リソースとしてＲＯＭ１０２上の描画対象のフォント／アイコンデータのアドレス及びサイズを設定し、また、確保したキャッシュ用ＶＲＡＭ領域を描画先ＶＲＡＭとして設定する。さらに、システム制御部１０３は、描画処理に必要な全てのパラメータを所定のレジスタ等に設定した後に、描画処理部１０６にベクタデータ描画の指示を発行する。
【００３２】
描画処理部１０６は、レジスタに設定されたパラメータ及びＲＯＭ１０２のベクタデータを参照して、フォント／アイコンデータをラスタライズし、得られたラスタデータをキャッシュ用ＶＲＡＭ領域に書き込む。これにより、ラスタデータが再利用のためにキャッシュ又は一時保持される。ラスタライズに際して、描画処理部１０６は、設定されたパラメータに応じて、グラデーションを施して所定の色でベクタデータを展開してラスタライズする。このラスタライズ処理には公知の技術を利用でき、その詳細の説明は省略する。
【００３３】
システム制御部１０３は、キャッシュ用ＶＲＡＭ領域のアドレス及びサイズ情報をデータベース８００に保持する。
【００３４】
Ｓ５０６で、システム制御部１０３は、キャッシュ用ＶＲＡＭ領域にラスタライズしたフォント／アイコンを画面データ用のＶＲＡＭ領域に転送する。
【００３５】
ここまでの処理は、キャッシュ対象のアイコン／フォントを初めて描画する際のものであり、次に、キャッシュ済みのアイコン／フォントを描画するときの動作を説明する。
【００３６】
システム制御部１０３は、アイコン等の描画指示を発行すると、Ｓ５０３でデータベース８００を参照して識別子が一致するかどうかを探索する。識別子が一致する場合、システム制御部１０３は、該当するデータのパラメータと、今回の描画指示のパラメータが一致するかどうかを判別する。識別子及びパラメータの内容がいずれも一致する場合（Ｓ５０３）、システム制御部１０３は、ラスタ化されたキャッシュデータを再利用する（Ｓ５０６）。具体的には、システム制御部１０３は、データベース８００のキャッシュ情報に保持されているアドレス及びサイズを参照し、ラスタデータのキャッシュデータをＲＡＭ１０１の画面データ用ＶＲＡＭに転送する。これで描画が完了する。
【００３７】
但し、Ｓ５０３で同一識別子のアイコンであっても、データベースに保持されているパラメータと指示されたパラメータが一致しない場合、システム制御部１０３は、Ｓ５０４でデータベースのパラメータ情報を更新する。システム制御部１０３は、Ｓ５０５でキャッシュＶＲＡＭに指示されたパラメータで再度ラスタライズを行い、Ｓ５０６で画面データ用のＶＲＡＭ領域に転送する。
【００３８】
また、画面上の描画位置及びサイズ等のようにデータベース８００に保持しているパラメータ以外の項目が更新された場合、システム制御部１０３は、キャッシュデータの更新を行わずにＳ５０３からＳ５０６に移行する。そして、システム制御部１０３は、キャッシュ領域から画面データ用のＶＲＡＭ領域にキャッシュデータを転送する際に、位置及びサイズ等の内の更新された項目について変更する。
【００３９】
図９を参照して、データパスを説明する。まず、図９（Ａ）は、描画対象のフォントの、ＲＯＭに記憶されるベクタデータの模式図を示す。描画指示に応じて、描画処理部１０６がＳ５０５でキャッシュＶＲＡＭにこのベクタデータをラスタライズすると、図９（Ｂ）に示すようにラスタ化されたデータが生成される。Ｓ５０６で、システム制御部１０３は、位置及びサイズを変更して、図９（Ｃ）に示すように画面データ用のＶＲＡＭにラスタデータを転送する。画面データ用のＶＲＡＭのラスタデータは、表示処理部１０５により表示部２８に表示される。
【００４０】
以上のように、描画負荷が高くレスポンス低下に影響するパラメータを適用するベクタ形式のフォント／アイコンについて、キャッシュ領域に保持するラスタデータを再利用することにより、再描画を高速に実行できる。
【実施例２】
【００４１】
ベクタデータ（フォント又はアイコン）を描画する際の描画速度を計測し、その計測結果に応じてラスタデータのキャッシュの利用を制御するようにしてもよい。図１０は、そのように変更した動作フローチャートを示す。
【００４２】
Ｓ１００１で、システム制御部１０３は、描画処理部１０６に描画指示を発行する。ステップＳ５０１と同様に、システム制御部１０３は、描画パラメータが図６に示す項目のいずれかである場合、描画対象のフォント／アイコンを識別するフォント／アイコン識別子と、描画パラメータを一時的にＲＡＭ１０１のワークエリアに保持する。
【００４３】
Ｓ１００２で、システム制御部１０３は、Ｓ５０２と同様に、Ｓ１００１でＲＡＭ１０１のワークエリアに保持しているデータをデータベース８００で探索する。
【００４４】
Ｓ１００３で、システム制御部１０３は、データベース８００の探索結果として識別子及び描画パラメータが一致するデータの有無を判定する。一致するデータが無い場合（Ｓ１００３）、システム制御部１０３は、Ｓ１００４に移行する。
【００４５】
Ｓ１００４で、システム制御部１０３は、ＲＡＭ１０１のワークエリアに保持しているデータをもとに新規の登録データを生成してデータベース８００に追加する。
【００４６】
Ｓ１００５で、システム制御部１０３は、描画処理部１０６によりデータベース８００に登録された描画対象のフォント／アイコンをＳ５０５と同様の手順でラスタライズしてＶＲＡＭに描画する。このとき、システム制御部１０３は、描画処理部１０６の描画開始からキャッシュＶＲＡＭ領域への描画終了までの時間を計測する。この計測は、クロック信号をカウントする等により実現する。
【００４７】
Ｓ１００６で、システム制御部１０３は、計測した描画時間を閾値と比較し、描画時間が当該閾値を超えていたら描画負荷が高いと判断する。そして、この描画負荷が高いと判断したとき、システム制御部１０３は、Ｓ１００４で新規登録したデータのキャッシュＶＲＡＭ領域のアドレス及びサイズの情報をデータベース８００に追加する。閾値以下の場合、システム制御部１０３は、データベース８００から該当する識別子とパラメータをクリアする。
【００４８】
Ｓ１００３で既に識別子がデータベース８００に存在して、パラメータもデータベース８００の登録データと一致する場合、システム制御部１０３は、キャッシュされているラスタデータを画面データ用のＶＲＡＭ領域に転送する。これにより、ベクタデータをラスタデータに展開する処理負荷を軽減できる。
【００４９】
ベクタデータの描画負荷はシステムに依存する。本実施例では、描画速度を実測しその実測結果に基づいてキャッシュするか否かを判定することで、システムに左右されずに安定した速度での描画が可能となる。
【実施例３】
【００５０】
描画パラメータに加えて画面描画の際のモード情報をもとにキャッシュしたデータを再利用して描画を行ってもよい。モード情報とは、アニメーション動作モード又はスクロール動作モードである。これらのモードでは、アイコン／フォント等の描画アイテムを所定の間隔で位置を更新しながら再描画を繰り返す。滑らかな描画更新が求められる動作であるので、描画パラメータに依存した描画速度の低下を抑制する必要がある。
【００５１】
システム制御部１０３は、動作モードがアニメーション動作又はスクロール動作であることを検知すると、全てのアイコン／フォントについて、キャッシュＶＲＡＭでラスタ化したラスタデータを描画パラメータに依らずに再利用する。
【００５２】
システム制御部１０３は、アニメーション動作またはスクロール動作の途中では、描画パラメータの変更を禁止するのが好ましい。
【００５３】
このように、所定の動作モードではキャッシュしたラスタデータを再利用して描画するようにすることで、描画パラメータに依存せずに一定の速度で滑らかにアイコン／フォントを描画することが可能になる。
【００５４】
描画装置１０の上述した機能の一部又は全部はシステム制御部１０３上で動作するプログラムによっても実現可能である。すなわち、本実施例は、デジタルカメラ１００のプログラム動作するＣＰＵ又は演算装置上で動作するプログラムによっても実現可能である。
【図１】
2015087809.tif 000003
【図２】
2015087809.tif 000004
【図３】
2015087809.tif 000005
【図４】
2015087809.tif 000006
【図５】
2015087809.tif 000007
【図６】
2015087809.tif 000008
【図７】
2015087809.tif 000009
【図８】
2015087809.tif 000010
【図９】
2015087809.tif 000011
【図１０】
2015087809.tif 000012