(57)【要約】【課題】描画処理を伴うアプリケーションにおいて入力操作に応じた画像の高速表示が可能な汎用性の高い画像処理装置等を提供すること。【解決手段】画像処理装置１は、電子ペーパー５２を備えた表示部５０、フレームバッファー３６を含む記憶部３０、フレームバッファー３６に書き込まれた画像データに対応する画像を電子ペーパー５２に表示させる制御を行う表示制御部４０、入力操作を検出する入力操作検出処理部１２、アプリケーションプログラム３２に基づいて動作するアプリケーション処理部１４、プログラムに基づいて動作する描画処理部１６を含む。アプリケーション処理部は、入力操作に基づく所定のイベントに応じて、フレームバッファーに画像データを書き込み、キャッシュ情報の更新要求を行う。描画処理部は、更新要求に応じて、フレームバッファーに書き込まれた画像データに基づいてキャッシュ情報を更新する。【選択図】図１
2013205731.tif 000002
【特許請求の範囲】
【請求項１】
電子ペーパーを備えた表示部と、
画像データを格納するためのフレームバッファーを含む記憶部と、
前記フレームバッファーに書き込まれた画像データに対応する画像を前記表示部の前記電子ペーパーに表示させる制御を行う表示制御部と、
入力操作を検出する入力操作検出処理部と、
アプリケーションプログラムに基づいて動作し、前記入力操作に応じた処理を行うアプリケーション処理部と、
プログラムに基づいて動作し、前記フレームバッファー用のキャッシュ情報を用いて、描画要求に応じた画像データを生成し、当該画像データを前記フレームバッファーに書き込む処理を行う描画処理部と、を含み、
前記アプリケーション処理部は、
前記入力操作に基づく所定のイベントに応じて、前記フレームバッファーに画像データを書き込み、前記キャッシュ情報の更新要求を行い、
前記描画処理部は、
前記更新要求に応じて、前記アプリケーション処理部により前記フレームバッファーに書き込まれた画像データに基づいて前記キャッシュ情報を更新する、画像処理装置。
【請求項２】
請求項１において、
前記アプリケーション処理部は、
前記更新要求として、前記フレームバッファーに書き込んだ画像データと同じ画像データを生成させるための前記描画要求を行う、画像処理装置。
【請求項３】
請求項１又は２において、
前記フレームバッファーに書き込まれた画像データを前記表示制御部に転送する処理を行う画像データ転送処理部をさらに含み、
前記アプリケーション処理部は、
前記フレームバッファーに画像データを書き込む毎に、当該画像データを前記表示制御部に転送するための転送要求を行い、
前記画像データ転送処理部は、
前記転送要求に応じて、前記フレームバッファーに書き込まれた画像データを前記表示制御部に転送する、画像処理装置。
【請求項４】
請求項１乃至３のいずれか一項において、
前記アプリケーション処理部は、
前記入力操作検出処理部の検出結果に基づいて前記入力操作が途切れたタイミングを検出し、当該入力操作が途切れたタイミングで前記更新要求を行う、画像処理装置。
【請求項５】
請求項１乃至４のいずれか一項において、
前記アプリケーション処理部は、
前記フレームバッファーに書き込んだ画像データの更新を伴うイベントを検出し、当該画像データが更新される前に前記更新要求を行う、画像処理装置。
【請求項６】
請求項１乃至５のいずれか一項において、
前記表示部は
前記電子ペーパーに対する接触位置を検出する接触位置検出部をさらに備え、
前記入力操作検出処理部は、
前記接触位置検出部の検出結果に基づいて、前記電子ペーパーに対する前記入力操作を検出し、
前記アプリケーション処理部は、
前記電子ペーパーに対する前記入力操作が検出された場合、前記接触位置検出部が検出した接触位置の情報に基づいて、前記入力操作が行われた軌跡を表す画像データを生成し、当該画像データを前記フレームバッファーに書き込む、画像処理装置。
【請求項７】
請求項１乃至６のいずれか一項において、
前記表示制御部は、
前記表示部の前記電子ペーパーに表示させた画像に対応する画像データの履歴情報を記憶し、当該履歴情報に基づき、前記電子ペーパーの表示特性に応じて、次の画像データに対応する画像を前記電子ペーパーに表示させる制御を行う、画像処理装置。
【請求項８】
請求項１乃至７のいずれか一項において、
前記表示部の前記電子ペーパーは、電気泳動方式により画像を表示する、画像処理装置。
【請求項９】
入力操作を検出する入力操作検出処理部と、電子ペーパーを備えた表示部と、画像データを格納するためのフレームバッファーを含む記憶部と、を含む画像処理装置の表示制御方法であって、
アプリケーションプログラムに基づいて、前記入力操作に応じた処理を行うアプリケーション処理ステップと、
プログラムに基づいて、前記フレームバッファー用のキャッシュ情報を用いて、描画要求に応じた画像データを生成し、当該画像データを前記フレームバッファーに書き込む描画処理ステップと、
前記フレームバッファーに書き込まれた画像データに対応する画像を前記表示部の前記電子ペーパーに表示させる制御を行う表示制御ステップと、を含み、
前記アプリケーション処理ステップにおいて、
前記入力操作に基づく所定のイベントに応じて、前記フレームバッファーに画像データを書き込み、前記キャッシュ情報の更新要求を行い、
前記描画処理ステップにおいて、
前記アプリケーション処理ステップで前記フレームバッファーに書き込まれた画像データに基づいて前記キャッシュ情報を更新する、画像処理装置の表示制御方法。
【請求項１０】
入力操作を検出する入力操作検出処理部と、電子ペーパーを備えた表示部と、画像データを格納するためのフレームバッファーを含む記憶部と、前記フレームバッファーに書き込まれた画像データに対応する画像を前記表示部の前記電子ペーパーに表示させる制御を行う表示制御部と、プログラムに基づいて動作し、前記フレームバッファー用のキャッシュ情報を用いて、描画要求に応じた画像データを生成し、当該画像データを前記フレームバッファーに書き込む処理を行う描画処理部と、を含む画像処理装置において実行されるプログラムであって、
アプリケーションプログラムに基づいて動作し、前記入力操作に応じた処理を行うアプリケーション処理部としてコンピューターを機能させ、
前記アプリケーション処理部は、
前記入力操作に基づく所定のイベントに応じて、前記フレームバッファーに画像データを書き込み、前記描画処理部に対して前記キャッシュ情報の更新要求を行う、プログラム。
【請求項１１】
請求項１０に記載のプログラムが記憶されている、コンピューター読み取り可能な情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の表示制御方法、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
近年、視認性に優れ、消費電力が小さい等の利点をもつ電子ペーパーの需要が増しており、電子書籍リーダー（電子ブックリーダー）、電子看板（デジタルサイネージ）、一部の携帯電話機等に利用されている。
【０００３】
これらの電子機器において電子ペーパーに表示する画像を生成するアプリケーションは多様かつ複雑なものとなっており、その開発を容易にするために、あらかじめデータ構造やライブラリー関数が定義されたアプリケーションフレームワーク（「ＧＵＩツールキット」とも呼ばれる）が利用される。このアプリケーションフレームワークは、電子機器のメモリーに格納され、組み込みのＯＳ上でＧＵＩ（Graphical User Interface）システム（「グラフィックシステム」とも呼ばれる）として動作する。
【０００４】
ＧＵＩシステムにおけるアプリケーションの描画は、ＧＵＩシステムから描画イベントが通知された時に当該描画イベントのハンドラー内で完了することが基本かつ必須とされている。これにより、描画処理の管理をＧＵＩシステムに任せることができるので、アプリケーションが描画処理を詳細に管理しなくて済む。しかし、その代償として、ＧＵＩシステムと電子ペーパーの表示コントローラー及びそのフレームバッファーとの関係がＧＵＩシステムによって隠蔽されてしまうため、表示コントローラーのアーキテクチャーに最適な描画タイミングをアプリケーションから制御することができない。ＧＵＩシステムの仲介によりＧＵＩシステムの都合に応じた断片的な描画処理が行われるため、画像が表示されるまでに、ＧＵＩシステム自身のオーバーヘッド、他のタスクやスレッドの影響による遅延が発生するという問題がある。また、速い一括書き込みによって高速な表示が可能なアーキテクチャーをもつ電子パーパー用表示コントローラーの本来のパフォーマンスを十分に発揮させることができないという問題もある。
【０００５】
電子ペーパーに関するものではないが、例えば、特許文献１や特許文献２において描画速度を向上させる手法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−１２８２６４号広報
【特許文献２】特開２００５−２７５０２８号広報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の手法は、アプリケーションにおいて全ての種類の描画図形に共通に指定される可能性がある属性データの処理を行うための専用のハードウェアを設けることで描画速度を向上させるものであり、任意のアプリケーションに適用できるものではなく、汎用性に欠けている。また、特許文献２の手法は、アプリケーションの種類に応じて高速描画と通常の描画を使い分けることで描画速度を全体として向上させるものであり、任意のアプリケーションの描画処理を高速化できるわけではなく、やはり汎用性に欠けている。
【０００８】
本発明は、以上のような問題点に鑑みてなされたものであり、本発明のいくつかの態様によれば、描画処理を伴うアプリケーションにおいて入力操作に応じた画像の高速表示が可能な汎用性の高い画像処理装置、画像処理装置の表示制御方法、プログラム及び情報記憶媒体を提供することができる。
【課題を解決するための手段】
【０００９】
本発明は前述の課題の少なくとも一部を解決するためになされたものであり、以下の態様または適用例として実現することが可能である。
【００１０】
［適用例１］
本適用例に係る画像処理装置は、電子ペーパーを備えた表示部と、画像データを格納するためのフレームバッファーを含む記憶部と、前記フレームバッファーに書き込まれた画像データに対応する画像を前記表示部の前記電子ペーパーに表示させる制御を行う表示制御部と、入力操作を検出する入力操作検出処理部と、アプリケーションプログラムに基づいて動作し、前記入力操作に応じた処理を行うアプリケーション処理部と、プログラムに基づいて動作し、前記フレームバッファー用のキャッシュ情報を用いて、描画要求に応じた画像データを生成し、当該画像データを前記フレームバッファーに書き込む処理を行う描画処理部と、を含み、前記アプリケーション処理部は、前記入力操作に基づく所定のイベントに応じて、前記フレームバッファーに画像データを書き込み、前記キャッシュ情報の更新要求を行い、前記描画処理部は、前記更新要求に応じて、前記アプリケーション処理部により前記フレームバッファーに書き込まれた画像データに基づいて前記キャッシュ情報を更新する。
【００１１】
本適用例に係る画像処理装置によれば、アプリケーション処理部が、入力操作に基づく所定のイベントに応じて、描画処理部を介さずに、直接、フレームバッファーに画像データを書き込むことで、電子ペーパーへの描画を高速化することができる。また、アプリケーション処理部がキャッシュ情報の更新要求を行い、描画処理部がフレームバッファーに書き込まれた画像データに基づいてキャッシュ情報を更新することで、フレームバッファーの内容とキャッシュ情報との整合性を維持することができる。
【００１２】
従って、本適用例に係る画像処理装置によれば、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）と比較して表示速度で劣る電子ペーパーの欠点を補い、操作性に優れた画像処理装置を実現することができる。
【００１３】
また、本適用例に係る画像処理装置によれば、描画処理部のオーバーヘッドによる性能低下を避けながら、描画処理部が持つアプリケーションの開発・実行環境の高い互換性を維持することができる。
【００１４】
［適用例２］
上記適用例に係る画像処理装置において、前記アプリケーション処理部は、前記更新要求として、前記フレームバッファーに書き込んだ画像データと同じ画像データを生成させるための前記描画要求を行うようにしてもよい。
【００１５】
本適用例に係る画像処理装置によれば、描画処理部が描画を行わずにキャッシュ情報の更新のみを行うことができない場合であっても、アプリケーション処理部が描画処理部に対して描画要求を行うことで確実かつ容易にキャッシュ情報を更新することができる。
【００１６】
［適用例３］
上記適用例に係る画像処理装置において、前記フレームバッファーに書き込まれた画像データを前記表示制御部に転送する処理を行う画像データ転送処理部をさらに含み、前記アプリケーション処理部は、前記フレームバッファーに画像データを書き込む毎に、当該画像データを前記表示制御部に転送するための転送要求を行い、前記画像データ転送処理部は、前記転送要求に応じて、前記フレームバッファーに書き込まれた画像データを前記表示制御部に転送するようにしてもよい。
【００１７】
本適用例に係る画像処理装置によれば、アプリケーション処理部がフレームバッファーに画像データを書き込む毎に、当該画像データが表示制御部に転送されるので、入力操作に追従してすぐに画像表示が更新されるので、操作性を向上させることができる。
【００１８】
［適用例４］
上記適用例に係る画像処理装置において、前記アプリケーション処理部は、前記入力操作検出処理部の検出結果に基づいて前記入力操作が途切れたタイミングを検出し、当該入力操作が途切れたタイミングで前記更新要求を行うようにしてもよい。
【００１９】
本適用例に係る画像処理装置によれば、一連の入力操作が終了してから、当該入力操作に応じてフレームバッファーに書き込まれた画像データに基づいてキャッシュ情報を一度に更新することができるので、描画処理部の負荷を低減することができる。
【００２０】
［適用例５］
上記適用例に係る画像処理装置において、前記アプリケーション処理部は、前記フレームバッファーに書き込んだ画像データの更新を伴うイベントを検出し、当該画像データが更新される前に前記更新要求を行うようにしてもよい。
【００２１】
本適用例に係る画像処理装置によれば、入力操作中にフレームバッファーの更新を伴うイベントが発生しても、フレームバッファーの内容とキャッシュ情報との整合性を維持することができる。
【００２２】
［適用例６］
上記適用例に係る画像処理装置において、前記表示部は、前記電子ペーパーに対する接触位置を検出する接触位置検出部をさらに備え、前記入力操作検出処理部は、前記接触位置検出部の検出結果に基づいて、前記電子ペーパーに対する前記入力操作を検出し、前記アプリケーション処理部は、前記電子ペーパーに対する前記入力操作が検出された場合、前記接触位置検出部が検出した接触位置の情報に基づいて、前記入力操作が行われた軌跡を表す画像データを生成し、当該画像データを前記フレームバッファーに書き込むようにしてもよい。
【００２３】
本適用例に係る画像処理装置によれば、ペン入力等による手書きの文字や図形等を電子ペーパーに高速描画することができるので、操作性を向上させ、ユーザーの使い勝手のよい画像処理装置を提供することができる。
【００２４】
［適用例７］
上記適用例に係る画像処理装置において、前記表示制御部は、前記表示部の前記電子ペーパーに表示させた画像に対応する画像データの履歴情報を記憶し、当該履歴情報に基づき、前記電子ペーパーの表示特性に応じて、次の画像データに対応する画像を前記電子ペーパーに表示させる制御を行うようにしてもよい。
【００２５】
本適用例に係る画像処理装置によれば、表示制御部が、電子ペーパーの特性に応じた駆動パルスの印加回数の制御など複雑な表示制御を行うので、アプリケーションプログラムの開発が容易になるとともに、アプリケーション処理部や描画処理部の負荷を低減させることができる。特に、表示制御部をハードウェアで実装することで、高速描画を実現することが可能になる。
【００２６】
［適用例８］
上記適用例に係る画像処理装置において、前記表示部の前記電子ペーパーは、電気泳動方式により画像を表示するようにしてもよい。
【００２７】
［適用例９］
本適用例に係る画像処理装置の表示制御方法は、入力操作を検出する入力操作検出処理部と、電子ペーパーを備えた表示部と、画像データを格納するためのフレームバッファーを含む記憶部と、を含む画像処理装置の表示制御方法であって、アプリケーションプログラムに基づいて、前記入力操作に応じた処理を行うアプリケーション処理ステップと、プログラムに基づいて、前記フレームバッファー用のキャッシュ情報を用いて、描画要求に応じた画像データを生成し、当該画像データを前記フレームバッファーに書き込む描画処理ステップと、前記フレームバッファーに書き込まれた画像データに対応する画像を前記表示部の前記電子ペーパーに表示させる制御を行う表示制御ステップと、を含み、前記アプリケーション処理ステップにおいて、前記入力操作に基づく所定のイベントに応じて、前記フレームバッファーに画像データを書き込み、前記キャッシュ情報の更新要求を行い、前記描画処理ステップにおいて、前記アプリケーション処理ステップで前記フレームバッファーに書き込まれた画像データに基づいて前記キャッシュ情報を更新する。
【００２８】
［適用例１０］
本適用例に係るプログラムは、入力操作を検出する入力操作検出処理部と、電子ペーパーを備えた表示部と、画像データを格納するためのフレームバッファーを含む記憶部と、前記フレームバッファーに書き込まれた画像データに対応する画像を前記表示部の前記電子ペーパーに表示させる制御を行う表示制御部と、プログラムに基づいて動作し、前記フレームバッファー用のキャッシュ情報を用いて、描画要求に応じた画像データを生成し、当該画像データを前記フレームバッファーに書き込む処理を行う描画処理部と、を含む画像処理装置において実行されるプログラムであって、アプリケーションプログラムに基づいて動作し、前記入力操作に応じた処理を行うアプリケーション処理部としてコンピューターを機能させ、前記アプリケーション処理部は、前記入力操作に基づく所定のイベントに応じて、前記フレームバッファーに画像データを書き込み、前記描画処理部に対して前記キャッシュ情報の更新要求を行う。
【００２９】
［適用例１１］
本適用例に係る情報記憶媒体は、上記適用例に係るプログラムが記憶されている、コンピューター読み取り可能な情報記憶媒体である。
【図面の簡単な説明】
【００３０】
【図１】本実施形態の画像処理装置の構成例を示す図。
【図２】本実施形態における描画処理のフローチャートの一例を示す図。
【図３】本実施形態における描画処理のフローチャートの一例を示す図。
【図４】本実施形態の電子書籍端末の外観図。
【図５】本実施形態の電子書籍端末内部のハードウェア構成例を示す図。
【図６】本実施形態における電気泳動表示装置のブロック図。
【図７】本実施形態における電気泳動表示装置の画素の構成例を示す図。
【図８】図８（Ａ）は電気泳動素子の構成例を示す図であり、図８（Ｂ）及び図８（Ｃ）は電気泳動素子の動作の説明図。
【図９】本実施形態における手書き処理の概要についての説明図。
【図１０】本実施形態におけるハードウェア／ソフトウェア階層及びデータの流れを示す図。
【図１１】本実施形態における手書き処理のフローチャートを示す図。
【図１２】手書き処理が行われる前にフレームバッファーに格納されている画像データの一例を示す図。
【図１３】手書き処理が行われる前にキャッシュに記憶されている画像データの一例を示す図。
【図１４】ペンタッチイベントハンドラーの処理のフローチャートの一例を示す図。
【図１５】ペン移動イベントハンドラーの処理のフローチャートの一例を示す図。
【図１６】ペンリリースイベントハンドラーの処理のフローチャートの一例を示す図。
【図１７】直接描画処理のフローチャートの一例を示す図。
【図１８】直接描画処理によってフレームバッファーに格納される画像データが変化する様子の一例を示す図。
【図１９】描画イベントハンドラーの処理のフローチャートの一例を示す図。
【図２０】間接描画処理のフローチャートの一例を示す図。
【図２１】間接描画処理によりキャッシュに保存される画像データの一例を示す図。
【図２２】本実施形態の画像処理装置の一例を示す図。
【図２３】変形例におけるペン移動イベントハンドラーの処理のフローチャートの一例を示す図。
【発明を実施するための形態】
【００３１】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００３２】
１．画像処理装置
１−１．構成
図１は、本実施形態の画像処理装置の構成例を示す図である。図１に示すように、本実施形態の画像処理装置１は、処理部（ＣＰＵ）１０、操作部２０、記憶部３０、表示制御部４０、表示部５０、音出力部６０、通信部７０を含んで構成されている。本実施形態の画像処理装置１は、図１の構成要素（各部）の一部を省略又は変更したり、他の構成要素を付加した構成としてもよい。
【００３３】
操作部２０は、操作キーやボタンスイッチ等により構成される入力装置であり、ユーザーによる操作に応じた操作信号を処理部（ＣＰＵ）１０に出力する。
【００３４】
記憶部３０は、処理部（ＣＰＵ）１０が各種の計算処理や制御処理を行うためのプログラムやデータ等を記憶している。特に、本実施形態では、記憶部３０は、表示部５０に対する描画要求を伴う種々のアプリケーションプログラム３２、画像データ等が格納されたデータファイル３４等が記憶されている。
【００３５】
また、記憶部３０は、処理部（ＣＰＵ）１０の作業領域としても用いられ、特に、本実施形態では、記憶領域の一部に、フレームバッファー３６とフレームバッファー３６用のキャッシュ３８が設けられている。
【００３６】
フレームバッファー３６は、データファイル３４に含まれる画像データやユーザーによる所定の入力操作に応じて作成された画像データ等を格納する記憶領域である。
【００３７】
キャッシュ３８は、後述する描画処理部１６によるフレームバッファー３６への画像データの書き込み処理を高速化するための情報（以下、「キャッシュ情報」という）を記憶する記憶領域である。キャッシュ情報は、例えば、フレームバッファー３６に前回格納されていた画像データや参照回数の多い画像データ等の情報である。
【００３８】
音出力部６０は、スピーカー等の音を出力する装置であり、処理部（ＣＰＵ）１０から入力される信号に基づいて各種の音（音声も含む）を出力する。
【００３９】
通信部７０は、処理部（ＣＰＵ）１０の制御により、有線又は無線の通信ネットワークに接続された他の装置とのデータ通信を行うためのものである。
【００４０】
表示部５０は、電子ペーパー５２を備えて構成される表示装置であり、電子ペーパー５２には、フレームバッファー３６に格納されている画像データに対応する画像が表示される。電子ペーパー５２としては、種々の方式のものを用いることができる。例えば、帯電された粒子を移動させて表示を切り替える電気泳動方式のもの、帯電された粒子を回転させて表示を切り替える粒子回転方式のもの、磁気により粒子を移動させて表示を切り替える磁気泳動方式のもの、小型バッテリー駆動の薄型の液晶やＥＬ素子による表示方式のもの、強誘電液晶に代表されるメモリー性のある液晶による表示方式のものなどを適宜電子ペーパー５２として採用することができる。
【００４１】
表示部５０は、接触位置検出部５４を含んでいてもよい。接触位置検出部５４は、電子ペーパー５２に対する接触位置を検出し、接触位置の情報を出力する。
【００４２】
表示制御部４０は、フレームバッファー３６に書き込まれた画像データに対応する画像を表示部５０の電子ペーパー５２に表示させる制御を行う。表示制御部４０は、電子ペーパー４２に表示させた画像に対応する画像データの履歴情報４２を記憶し、履歴情報４２に基づき、電子ペーパー５２の表示特性に応じて、次の画像データに対応する画像を電子ペーパー５２に表示させる制御を行うようにしてもよい。
【００４３】
処理部（ＣＰＵ）１０は、記憶部３０に記憶されている各種のプログラムに従って、各種の計算処理や制御処理を行う。特に、本実施形態では、処理部（ＣＰＵ）１０は、入力操作検出処理部１２、アプリケーション処理部１４、描画処理部１６、画像データ転送処理部１８を含む。ただし、本実施形態の処理部（ＣＰＵ）１０は、これらの一部の構成（要素）を省略又は変更したり、他の構成（要素）を追加した構成としてもよい。
【００４４】
入力操作検出処理部１２は、操作部２０からの操作信号等に基づいてユーザーによる入力操作を検出する処理を行う。また、入力操作検出処理部１２は、接触位置検出部５４の検出結果に基づいて、電子ペーパー５２に対するユーザーの入力操作を検出してもよい。
【００４５】
アプリケーション処理部１４は、アプリケーションプログラム３２に基づいて動作し、入力操作検出処理部１２により検出された入力操作に応じた処理を行う。すなわち、処理部（ＣＰＵ）１０は、アプリケーションプログラム３２を実行することで、アプリケーション処理部１４として機能する。
【００４６】
描画処理部１６は、所与のプログラムに基づいて動作し、キャッシュ情報を用いて、アプリケーション処理部１４等からの描画要求に応じた画像データを生成し、当該画像データをフレームバッファー３６に書き込み、キャッシュ情報を更新する処理を行う。
【００４７】
なお、アプリケーションプログラム３２やデータファイル３４は、最初から記憶部３０に記憶されていてもよいが、処理部（ＣＰＵ）１０が、コンピューター読み取り可能な情報記憶媒体に記憶されているアプリケーションプログラム３２やデータファイル３４を読み出して、記憶部３０にダウンロードしてもよい。コンピューター読み取り可能な情報記憶媒体とは、例えば、光ディスク（コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）、ブルーレイディスク（ＢＤ）、レーザーディスク（登録商標）（ＬＤ）等）、光磁気ディスク（ＭＯ）、磁気ディスク（ハードディスクドライブ（ＨＤＤ）、フレキシブルディスク（ＦＤ）等）、磁気テープ（デジタルデータストレージ（ＤＤＳ）等）、メモリー（フラッシュメモリー、メモリーカード、ＵＳＢメモリー等）等である。
【００４８】
あるいは、処理部（ＣＰＵ）１０が、通信部７０を介して、パーソナルコンピューター（サーバー）等の装置に記憶されているアプリケーションプログラム３２やデータファイル３４を受信して記憶部３０にダウンロードしてもよい。
【００４９】
１−２．描画処理
図２は、本実施形態の画像処理装置による描画処理のフローチャートの一例を示す図である。
【００５０】
電子ペーパー５２の表示画像の更新イベントが発生した場合（Ｓ１０のＹ）、当該イベントがユーザーの入力操作に基づく所定のイベントでなければ（Ｓ１２のＮ）、アプリケーション処理部１４が、発生したイベントに応じて、描画処理部１６に画像データの描画要求を行う（Ｓ１４）。
【００５１】
次に、描画要求に対して、描画処理部１６が、フレームバッファー３６用のキャッシュ情報を用いて、アプリケーション処理部１４からの描画要求に応じた画像データを生成し、当該画像データをフレームバッファー３６に書き込む（Ｓ１６）。
【００５２】
一方、発生したイベントが所定のイベントであれば（Ｓ１２のＹ）、アプリケーション処理部１４が、発生したイベントに応じて、フレームバッファー３６に画像データを書き込み、描画処理部１６にキャッシュ情報の更新要求を行う（Ｓ１８）。例えば、アプリケーション処理部１４は、電子ペーパー５２に対する入力操作が検出された場合、接触位置検出部５４が検出した接触位置の情報に基づいて、入力操作が行われた軌跡を表す画像データを生成し、当該画像データをフレームバッファー３６に書き込み、描画処理部１６に対してキャッシュ情報の更新要求を行うようにしてもよい。
【００５３】
次に、キャッシュ情報の更新要求に対して、描画処理部１６が、アプリケーション処理部１４によりフレームバッファー３６に書き込まれた画像データに基づいて、キャッシュ情報を更新する（Ｓ２０）。
【００５４】
次に、画像データ転送処理部１８が、ステップＳ１６又はＳ１８でフレームバッファー３６に書き込まれた画像データを表示制御部４０に転送する（Ｓ２２）。
【００５５】
次に、表示制御部４０が、ステップＳ２２で転送された画像データに対応する画像を表示部５０の電子ペーパー５２に表示させる制御を行う（Ｓ２４）。
【００５６】
なお、ステップＳ２２及びＳ２４の処理は、ステップＳ２０の処理と並行して行われる。
【００５７】
そして、画像処理装置１は、アプリケーションの終了イベントが発生するまで（Ｓ２６のＮ）、ステップＳ１０〜Ｓ２４の処理を繰り返し行う。
【００５８】
なお、アプリケーション処理部１４は、入力操作検出処理部１２の検出結果に基づいてユーザーによる入力操作が途切れたタイミングを検出し、当該入力操作が途切れたタイミングで、描画処理部１６に対してキャッシュ情報の更新要求を行うようにしてもよい。
【００５９】
また、例えば、アプリケーション処理部１４は、フレームバッファー３６に書き込んだ画像データの更新を伴うイベントを検出し、当該画像データが更新される前に前記更新要求を行うようにしてもよい。描画処理部１６は、当該更新要求に応じて、アプリケーション処理部１４によりフレームバッファー３６に書き込まれた画像データが更新される前に、当該画像データに基づいてキャッシュ情報を更新する。
【００６０】
また、アプリケーション処理部１４は、１つのイベントに対して、画像データを複数回に分けてフレームバッファー３６に書き込む場合は、フレームバッファー３６に画像データを書き込む毎に、画像データ転送処理部１８に対して、当該画像データを表示制御部４０に転送するための転送要求を行うようにしてもよい。画像データ転送処理部１８は、当該転送要求に応じて、フレームバッファー３６に書き込まれた各画像データを順番に表示制御部４０に転送する。
【００６１】
アプリケーション処理部１４は、キャッシュ情報の更新要求として、フレームバッファー３６に書き込んだ画像データと同じ画像データを生成させるための描画要求を行うようにしてもよい。描画処理部１６は、当該描画要求に応じて、当該画像データを生成してフレームバッファー３６に書き込み、キャッシュ情報を更新する。
【００６２】
図３は、アプリケーション処理部１４が更新要求として描画要求を行う場合（描画要求が更新要求を兼ねる場合）の描画処理のフローチャートの一例を示す図である。
【００６３】
電子ペーパー５２の表示画像の更新イベントが発生した場合（Ｓ３０のＹ）、当該イベントがユーザーの入力操作に基づく所定のイベントでなければ（Ｓ３２のＮ）、アプリケーション処理部１４が、発生したイベントに応じて、描画処理部１６に画像データの描画要求を行う（Ｓ３４）。
【００６４】
一方、発生したイベントが所定のイベントであれば（Ｓ３２のＹ）、アプリケーション処理部１４が、発生したイベントに応じて、フレームバッファーに画像データの少なくとも一部を書き込み、描画処理部に当該画像データの描画要求を行う（Ｓ３６）。
【００６５】
次に、画像データ転送処理部１８が、ステップＳ３６でフレームバッファー３６に書き込まれた画像データを表示制御部４０に転送する（Ｓ３８）。
【００６６】
次に、表示制御部４０が、ステップＳ３８で転送された画像データに対応する画像を表示部５０の電子ペーパー５２に表示させる制御を行う（Ｓ４０）。
【００６７】
次に、ステップＳ３４又はＳ３６の描画要求に対して、描画処理部１６が、キャッシュ情報を用いて、アプリケーション処理部１４からの描画要求に応じた画像データを生成し、当該画像データをフレームバッファー３６に書き込み、キャッシュ情報を更新する（Ｓ４２）。このステップＳ４２の処理は、ステップＳ３８及びＳ４０の処理と並行して行われる。
【００６８】
次に、画像データ転送処理部１８が、ステップＳ４２でフレームバッファー３６に書き込まれた画像データを表示制御部４０に転送する（Ｓ４４）。
【００６９】
次に、表示制御部４０が、ステップＳ４４で転送された画像データに対応する画像を表示部５０の電子ペーパー５２に表示させる制御を行う（Ｓ４６）。
【００７０】
そして、画像処理装置１は、アプリケーションの終了イベントが発生するまで（Ｓ４８のＮ）、ステップＳ３０〜Ｓ４６の処理を繰り返し行う。
【００７１】
このような処理を行う本実施形態の画像処理装置としては、電子ペーパーを用いた任意の電子機器が考えられるが、以下では、電子書籍端末を例に挙げ、より詳細に説明する。
【００７２】
２．電子書籍端末
２−１．電子書籍端末の構成
図４は、本実施形態の電子書籍端末の外観図であり、図５は、本実施形態の電子書籍端末内部のハードウェア構成例を示す図である。
【００７３】
図５に示すように、本実施形態の電子書籍端末１００は、ＣＰＵ１１０、入力ボタン１２０、内部メモリー１３０、ＥＰＤコントローラー１４０、ディスプレイ１５０、スピーカー１６０、ＵＳＢインターフェース１７０等の構成要素を含んで構成されており、これらの構成要素は、バス１８０を介して、各種データの受け渡しができるようになっている。本実施形態の電子書籍端末１００は、図５の構成要素（各部）の一部を省略又は変更したり、他の構成要素を付加した構成としてもよい。
【００７４】
入力ボタン１２０は、ユーザーによる入力操作に用いられ、各種のハードボタン１２０ａや各種のソフトボタン１２０ｂ等（図４参照）により構成される。なお、入力ボタン１２０は、図１の操作部２０に相当する。
【００７５】
内部メモリー１３０は、ＣＰＵ１１０が各種の計算処理や制御処理を行うためのプログラムやデータ等を記憶している。内部メモリー１３０には、ファイル操作等の基本処理やハードウェアとのインターフェース処理などを行うオペレーティングシステム１３１と、描画用のデータ構造（クラス）や種々のライブラリー関数を有し汎用的な描画処理を行うグラフィックシステム１３２がインストールされている。グラフィックシステム１３２が組み込まれていることで、描画を伴う種々のアプリケーションを、各種のデータ構造（クラス）やライブラリー関数を利用して開発することができるので、開発コストやバグの混入を低減させることができる等の利点がある。
【００７６】
また、内部メモリー１３０は、ディスプレイ１５０に表示されたページに対してペン入力により手書きの文字や図形等を書き込む（追加する）ための手書きアプリケーション１３３が記憶されている。この手書きアプリケーション１３３は最初からインストールされていてもよいし、例えば、ＵＳＢインターフェース１７０を介して、パーソナルコンピューター等からインストールしてもよい。
【００７７】
また、内部メモリー１３０は、電子書籍（コンテンツ）の各ページの画像データ等が格納されたコンテンツファイル１３４が記憶されている。このコンテンツファイル１３４は、最初から内部メモリー１３０に保存されていてもよいし、例えば、ＵＳＢインターフェース１７０を介して、パーソナルコンピューターやＵＳＢメモリー等からダウンロードしてもよい。
【００７８】
内部メモリー１３０は、ＣＰＵ１１０の作業領域も含み、特に、本実施形態では、記憶領域の一部に、コンテンツファイル１３４に含まれる画像データやユーザーによる所定の入力操作に応じて作成された画像データ等を格納するフレームバッファー１３５、及び、フレームバッファー１３５への画像データの書き込み処理を高速化するためのキャッシュ情報を記憶するキャッシュ１３６が設けられている。
【００７９】
一般に、内部メモリー１３０は、用途毎に最適な、物理的に分離された複数のメモリーにより構成される。なお、内部メモリー１３０は、図１の記憶部３０に相当する。また、手書きアプリケーション１３３とコンテンツファイル１３４は、それぞれ、図１のアプリケーションプログラム３２とデータファイル３４に相当する。また、フレームバッファー１３５とキャッシュ１３６は、それぞれ、図１のフレームバッファー３６とキャッシュ３８に相当する。
【００８０】
スピーカー１６０は、ＣＰＵ１１０の制御により、各種の音や音声を出力する。なお、スピーカー１６０は、図１の音出力部６０に相当する。
【００８１】
ＵＳＢインターフェース１７０は、ＵＳＢケーブルやＵＳＢメモリー等が接続され、ＣＰＵ１１０の制御により、パーソナルコンピューターやＵＳＢメモリー等とデータ通信を行う。なお、ＵＳＢインターフェース１７０は、図１の通信部７０に相当する。
【００８２】
ディスプレイ１５０は、ＥＰＤパネル１５２を備え、ＥＰＤパネル１５２の表面には、フレームバッファー１３５に格納されている画像データに対応する画像が表示される。
【００８３】
図６は、ディスプレイ１５０の構成例を示す図である。図６の例は、アクティブマトリックス方式の電気泳動表示装置（ＥＰＤ：Electrophoretic Display）である。なお、図６においてデジタイザー１５４は図示を省略している。
【００８４】
図６に示すように、ディスプレイ１５０は、ＥＰＤパネル１５２、走査線駆動回路２２１、データ線駆動回路２２２、共通電源変調回路２２４を含む。
【００８５】
走査線駆動回路２２１、データ線駆動回路２２２、共通電源変調回路２２４は、それぞれＥＰＤコントローラー１４０（図６では不図示）と接続されている。
【００８６】
ＥＰＤパネル１５２には、走査線駆動回路２２１から延びる複数の走査線２２６と、データ線駆動回路２２２から延びる複数のデータ線２２８とが形成されており、これらの交差位置に対応して複数の画素２００が設けられている。
【００８７】
走査線駆動回路２２１は、ｊ本の走査線２２６（Ｙ１、Ｙ２、・・・、Ｙｊ）により各画素２００に接続されている。走査線駆動回路２２１は、ＥＰＤコントローラー１４０の制御に従って１行目からｊ行目までの走査線２２６を順次選択することで、画素２００に設けられた駆動用ＴＦＴ（Thin Film Transistor）２０８（図７参照）のオンタイミングを規定する選択信号を供給する。
【００８８】
データ線駆動回路２２２は、ｋ本のデータ線２２８（Ｘ１、Ｘ２、・・・、Ｘｋ）により各画素２００に接続されている。データ線駆動回路２２２は、転送データに基づくＥＰＤコントローラー１４０の制御に従って、画素２００の各々に１ビットの画像信号を供給する。なお、本実施形態では、画素データ「０」を規定する場合には、ローレベルの画像信号を画素２００に供給し、画素データ「１」を規定する場合には、ハイレベルの画像信号を画素２００に供給するものとする。
【００８９】
ＥＰＤパネル１５２には、また、共通電源変調回路２２４から延びる低電位電源線２０９（Ｖｓｓ）、高電位電源線２１０（Ｖｄｄ）、共通電極配線２１５（Ｖｃｏｍ）、第１のパルス信号線２５１（Ｓ１）、第２のパルス信号線２５２（Ｓ２）が設けられており、それぞれの配線は画素２００と接続されている。共通電源変調回路２２４は、ＥＰＤコントローラー１４０の制御に従って上記配線のそれぞれに供給する各種信号を生成する一方、これら各配線の電気的な接続及び切断（ハイインピーダンス化、Ｈｉ−Ｚ）を行う。
【００９０】
図７は、図６の画素２００の回路構成図である。図７において、図６と同じ配線には同じ番号を付しており、説明は省略する。また、図７において、全画素に共通の共通電極配線２１５は図示を省略している。
【００９１】
図７に示すように、画素２００には、駆動用ＴＦＴ２０８、ラッチ回路２３０、スイッチ回路２４０が設けられている。画素２００は、ラッチ回路２３０により画像信号を電位として保持するＳＲＡＭ（Static Random Access Memory）方式の構成をとる。
【００９２】
駆動用ＴＦＴ２０８は、Ｎ−ＭＯＳトランジスターからなる画素スイッチング素子である。駆動用ＴＦＴ２０８のゲート端子は走査線２２６に接続され、ソース端子はデータ線２２８に接続され、ドレイン端子はラッチ回路２３０のデータ入力端子に接続されている。ラッチ回路２３０は転送インバーター２３０ｔと帰還インバーター２３０ｆとを備えている。インバーター２３０ｔ、２３０ｆには、低電位電源線２０９（Ｖｓｓ）と高電位電源線２１０（Ｖｄｄ）から電源電圧が供給される。
【００９３】
スイッチ回路２４０は、トランスミッションゲートＴＧ１、ＴＧ２からなり、ラッチ回路２３０に記憶された画素データのレベルに応じて、画素電極１９５（図８（Ｂ）、図８（Ｃ）参照）に信号を出力する。なお、Ｖａは、１つの画素２００の画素電極へ印加する電位を意味する。
【００９４】
ラッチ回路２３０に画素データ「１」（ハイレベルの画像信号）が記憶されて、トランスミッションゲートＴＧ１がオン状態となると、スイッチ回路２４０はＶａとしてパルス信号（駆動パルス）Ｓ１を供給する。一方、ラッチ回路２３０に画素データ「０」（ローレベルの画像信号）が記憶されて、トランスミッションゲートＴＧ２がオン状態となると、スイッチ回路２４０はＶａとしてパルス信号（駆動パルス）Ｓ２を供給する。このような回路構成により、制御部によって、それぞれの画素２００の画素電極に対して印加する電位を制御することが可能である。
【００９５】
本実施形態のＥＰＤパネル１５２は、例えば、二粒子系マイクロカプセル型の電気泳動方式のＥＰＤパネルであってもよい。分散液は無色透明、電気泳動粒子は白色又は黒色のものであるとすると、白色又は黒色の２色を基本色として少なくとも２色を表示できる。
【００９６】
図８（Ａ）は、電気泳動素子２６２の構成例を示す図である。電気泳動素子２７２は素子基板２７０と対向基板２７１（図８（Ｂ）、図８（Ｃ）参照）との間に挟まれている。電気泳動素子２７２は、複数のマイクロカプセル２６０を配列して構成される。マイクロカプセル２６０は、例えば無色透明な分散液と、複数の白色粒子（電気泳動粒子）２６７と、複数の黒色粒子（電気泳動粒子）２６６とを封入している。本実施形態では、例えば白色粒子２６７は負に帯電しており、黒色粒子２６６は正に帯電しているとする。
【００９７】
図８（Ｂ）は、ＥＰＤパネル１５２の部分断面図である。素子基板２７０と対向基板２７１は、マイクロカプセル２６０を配列してなる電気泳動素子２７２を狭持している。ＥＰＤパネル１５２は、素子基板２７０の電気泳動素子２７２側に、複数の画素電極１９５が形成された駆動電極層２８０を含む。図８（Ｂ）では、画素電極１９５として画素電極１９５Ａと画素電極１９５Ｂが示されている。画素電極１９５により、画素ごとに電位を供給することが可能である（例えば、Ｖａ、Ｖｂ）。ここで、画素電極１９５Ａを有する画素を画素２００Ａとし、画素電極１９５Ｂを有する画素を画素２００Ｂとする。画素２００Ａ、画素２００Ｂは画素２００（図６、図７参照）に対応する２つの画素である。
【００９８】
一方、対向基板２７１は透明基板であり、表示部において対向基板２７１側に画像表示がなされる。ＥＰＤパネル１５２は、対向基板２７１の電気泳動素子２７２側に、平面形状の共通電極１９７が形成された共通電極層２８２を含む。なお、共通電極１９７は透明電極である。共通電極１９７は、画素電極１９５と異なり全画素に共通の電極であり、電位Ｖｃｏｍが印加される。
【００９９】
共通電極層２８２と駆動電極層２８０との間に設けられた電気泳動表示層２９０に電気泳動素子２７２が配置されており、電気泳動表示層２９０が表示領域となる。共通電極１９７と画素電極（例えば、１９５Ａ、１９５Ｂ）との間の電位差に応じて、画素毎に所望の表示色を表示させることができる。
【０１００】
図８（Ｂ）では、共通電極側電位Ｖｃｏｍが画素２００Ａの画素電極の電位Ｖａよりも高電位である。このとき、負に帯電した白色粒子２６７が共通電極１９７側に引き寄せられ、正に帯電した黒色粒子２６６が画素電極１９５Ａ側に引き寄せられるため、画素２００Ａは白色を表示していると視認される。
【０１０１】
図８（Ｃ）では、共通電極側電位Ｖｃｏｍが画素２００Ａの画素電極の電位Ｖａよりも低電位である。このときは逆に、正に帯電した黒色粒子２６６が共通電極１９７側に引き寄せられ、負に帯電した白色粒子２６７が画素電極１９５Ａ側に引き寄せられるため、画素２００Ａは黒色を表示していると視認される。なお、図８（Ｃ）の構成は図８（Ｂ）と同様であり説明は省略する。また、図８（Ｂ）、図８（Ｃ）ではＶａ、Ｖｂ、Ｖｃｏｍを固定された電位として説明したが、実際にはＶａ、Ｖｂ、Ｖｃｏｍは時間とともに電位が変化する。
【０１０２】
ここで、図８（Ｂ）、図８（Ｃ）の画素２００Ａの例では、それぞれ、白色粒子２６７、黒色粒子２６６が全て共通電極１９７側に引き寄せられている状態（いわゆる飽和状態）を表している。しかし、飽和状態にして基本色（白色、黒色）を表示するだけでなく、例えば反対方向の電界を適当な時間だけ印加することで中間色（ライトグレー、ダークグレー）を表示することも可能である。
【０１０３】
図５に戻り、ディスプレイ１５０は、さらにデジタイザー１５４を備えている。デジタイザー１５４は、ＥＰＤパネル１５２の裏面に対向して設けられ、入力用のタッチペン（以下、単に「ペン」という）やユーザーの指等がＥＰＤパネル１５２に接触した位置を検出し、接触位置の情報を出力する。例えば、ユーザーがペンを用いて文字や図形等を入力する操作や、指をスライドさせてページ送りやページ戻し、ページの拡大や縮小等のページ操作を行った場合、デジタイザー１５４は、これらの操作が行われた際の接触位置の情報を出力する。
【０１０４】
なお、ディスプレイ１５０は、図１の表示部５０に相当する。また、ＥＰＤパネル１５２とデジタイザー１５４は、それぞれ、図１の電子ペーパー５２と接触位置検出部５４に相当する。
【０１０５】
ＥＰＤコントローラー１４０は、フレームバッファー１３５に書き込まれた画像データに対応する画像をディスプレイ１５０のＥＰＤパネル１５２に表示させる制御を行う。ＥＰＤコントローラー１４０には、ＥＰＤパネル１５２に表示させた画像に対応する画像データの履歴を管理するためのメモリーパイプライン１４２が設けられている。このメモリーパイプライン１４２は、ＥＰＤパネル１５２に表示させた画像に対応する画像データ（フレームバッファー１３５に書き込まれた画像データ）の履歴情報を時系列に保持する。ＥＰＤコントローラー１４０は、次に表示する画像の特性情報（各画素の色や明るさ等）とメモリーパイプライン１４２に保持されている履歴情報に基づき、ＥＰＤパネル１５２の表示特性を考慮した最適な回数や間隔で駆動パルスを発生させ、次の画像をＥＰＤパネル１５２に表示させる制御を行う。
【０１０６】
なお、ＥＰＤコントローラー１４０は、図１の表示制御部４０に相当する。また、メモリーパイプライン１４２に保持される履歴情報は、図１の履歴情報４２に相当する。
【０１０７】
ＣＰＵ１１０は、オペレーティングシステム１３１、グラフィックシステム１３２、手書きアプリケーション１３３の各種処理を行う。特に、本実施形態では、ＣＰＵ１１０は、入力ボタン１２０やＥＰＤパネル１５２に対して所定の入力操作が行われた場合、当該入力操作に応じた操作信号（ページ送りやページ戻し等の操作信号）や、デジタイザー１５４から接触位置（ペン入力位置や指の接触位置等）の情報を受け取り、ＥＰＤパネル１５２に表示する少なくとも一部の画像の描画処理を高速に行う。なお、ＣＰＵ１１０は、図１の処理部（ＣＰＵ）１０に相当する。
【０１０８】
次に、ＥＰＤパネル１５２の表示画像の上にペン入力による手書きの文字や図形等を描画する処理（以下、「手書き処理」という）を例に挙げ、本実施形態における高速描画処理の手法について説明する。
【０１０９】
２−２．手書き処理
２−２−１．手書き処理の概要
図９は、本実施形態における手書き処理の概要についての説明図である。図９に示すように、電子書籍端末１００のディスプレイ１５０（ＥＰＤパネル１５２）にページ画像と入力ボタン１２０ｂからなる画像Ｐが表示されている状態で、ユーザーがペン１２２をＥＰＤパネル１５２の表面に接触させながら曲線Ｐを書き込む動作を行うとする。この様な動作が行われると、ＣＰＵ１１０は、まず、ＥＰＤパネル１５２のペン入力領域を検出する。次に、ＣＰＵ１１０は、手書きアプリケーション１３３により、フレームバッファー１３５のペン入力領域に対応する記憶領域に曲線Ｐに対応する軌跡の画像データ（以下、「軌跡画像データ」という）ＰＤを上書きする。これにより、ＥＰＤパネル１５２に表示されている画像Ｑ（ページ画像と入力ボタン１２０ｂからなる画像）に対応してフレームバッファー１３５に格納されている画像データＱＤの一部に軌跡画像データＰＤが上書きされる。フレームバッファー１３５に書き込まれた軌跡画像データＰＤは、ＥＰＤコントローラー１４０のメモリーパイプライン１４２に投入され、ＥＰＤコントローラー１４０の制御により、メモリーパイプライン１４２の入力側から出力側まで伝搬し、ＥＰＤパネル１５２に曲線Ｐが表示される。図９において、太い方の線がこの手書きアプリケーション１３３による直接描画のデータの流れを示している。
【０１１０】
本実施形態では、ＣＰＵ１１０は、手書きアプリケーション１３３による直接描画と並行して、グラフィックシステム１３２を介した間接描画も行う。具体的には、ＣＰＵ１１０は、手書きアプリケーション１３３により、グラフィックシステム１３２のライブラリー関数を介して入力ボタン１２０ｂの再描画とペン入力領域に対する曲線Ｐの描画を要求する。次に、ＣＰＵ１１０は、グラフィックシステム１３２により、入力ボタン１０２ｂの画像データと曲線Ｐに対応する軌跡画像データＰＤを作成し、これらのデータをフレームバッファー１３５の対応する記憶領域に書き込む。フレームバッファー１３５に書き込まれた入力ボタン１０２ｂの画像データと軌跡画像データＰＤは、ＥＰＤコントローラー１４０のメモリーパイプライン１４２に投入され、ＥＰＤコントローラー１４０の制御により、メモリーパイプライン１４２の入力側から出力側まで伝搬する。これにより、ＥＰＤパネル１５２に入力ボタン１０２ｂの画像が再表示されるとともに曲線Ｐが表示される。図９において、細い方の線がこのグラフィックシステム１３２を介した間接描画のデータの流れを示している。
【０１１１】
このように、本実施形態では、処理の遅いグラフィックシステム１３２を介さない直接描画を行うことにより、ＥＰＤパネル１５２に手書きの軌跡が高速に描画され、操作性を向上さている。一方、グラフィックシステム１３２を介する間接描画を行うことにより、グラフィックシステム１３２がキャッシュ１３６に記憶されているキャッシュ情報を更新するので、フレームバッファー１３５の内容とキャッシュ１３６の内容の整合性を維持することができる。なお、この間接描画により、ＥＰＤパネル１５２に手書きの軌跡が同じ位置に二度書きされることになるが、ユーザーからは二度書きされたことが視認できないので特に問題は生じない。
【０１１２】
２−２−２．ハードウェア／ソフトウェア階層
図１０は、本実施形態におけるハードウェア／ソフトウェア階層及びペン入力されたデータの流れを示す図である。
【０１１３】
本実施形態では、ＣＰＵ１１０が実行するソフトウェアは、最下層から順にオペレーティングシステム１３１、グラフィックシステム１３２、手書きアプリケーション１３３の順に階層化されている。ハードウェアとのインターフェースはオペレーティングシステム１３１が行う。グラフィックシステム１３２は、オペレーティングシステム１３１と手書きアプリケーション１３３の間のデータの受け渡しを仲介する。
【０１１４】
ユーザーがＥＰＤパネル１５２に対してペン入力（タッチペンによる手書き）を行うと、デジタイザー１５４がペン動作のｘｙ座標を検出し、オペレーティングシステム１３１のデジタイザードライバー１３１ａに当該ｘｙ座標を送る。
【０１１５】
デジタイザードライバー１３１ａは、ペン動作のｘｙ座標を受け取り、ペン動作を解析し、グラフィックシステム１３２にペン動作情報とｘｙ座標を送る。
【０１１６】
グラフィックシステム１３２は、ペン動作情報とｘｙ座標を受け取り、ペン動作イベント（ペンタッチ、ペン移動、ペンリリースの各イベント）を発生させ、手書きアプリケーション１３３にペン動作イベントとｘｙ座標を送る。
【０１１７】
手書きアプリケーション１３３は、ペン動作イベントとｘｙ座標を受け取り、ペン入力の軌跡情報（手書き情報）を直線近似される部分に分けて各直線の座標（始点と終点の各座標）を計算し、内部メモリー１３０の手書き軌跡データに保存する。
【０１１８】
手書きアプリケーション１３３は、内部メモリー１３０に保存済みの手書き軌跡データから各直線の座標を順番に読み出し、各直線の画像データを作成し、グラフィックシステム１３２を介さずに、フレームバッファー１３５に直接描画する。
【０１１９】
さらに、手書きアプリケーション１３３は、グラフィックシステム１３２を介して、フレームバッファードライバー１３１ｂに対して、各直線の画像データをＥＰＤコントローラー１４０に転送するための転送命令を発行する。この転送命令を受けて、フレームバッファードライバー１３１ｂは、フレームバッファー１３５に描画された各直線の画像データを最優先にＥＰＤコントローラー１４０に送る。そして、ＥＰＤコントローラー１４０の制御により、各直線の画像が順次ＥＰＤパネル１５２に表示される。
【０１２０】
このようなデータの流れにより、手書き軌跡の高速表示が実現される。
【０１２１】
一方、手書きアプリケーション１３３は、ペン動作イベントに基づきユーザーによるペン入力の終了を検出すると、内部メモリー１３０に保存されている手書き軌跡データから各直線の座標を順番に読み出し、グラフィックシステム１３２が用意している描画関数を呼び出すことで、グラフィックシステム１３２に対して各直線の描画を要求する。
【０１２２】
グラフィックシステム１３２は、この描画要求に応じて、各直線の画像データを作成し、オペレーティングシステム１３１のフレームバッファードライバー１３１ｂを介して、フレームバッファー１３５に描画する。
【０１２３】
フレームバッファー１３５に描画された各直線の画像データはＥＰＤコントローラー１４０に順番に送られ、ＥＰＤコントローラー１４０の制御により、各直線の画像が順次ＥＰＤパネル１５２に表示される。
【０１２４】
このようなデータの流れにより、ＥＰＤパネル１５２に対して手書き軌跡が二度書きされるものの、キャッシュ１３６が更新され、フレームバッファー１３５の内容とキャッシュ１３６の内容の整合性が維持される。
【０１２５】
なお、オペレーティングシステム１３１（特に、デジタイザードライバー１３１ａ）は、図１の入力操作検出処理部１２に相当する。また、手書きアプリケーション１３３は、図１のアプリケーション処理部１４に相当する。また、グラフィックシステム１３２は、図１の描画処理部１６に相当する。また、フレームバッファードライバー１３１ｂは、図１の画像データ転送処理部１８に相当する。
【０１２６】
２−２−３．手書き処理のフローチャート
図１１は、ＣＰＵ１１０（手書きアプリケーション１３３）による手書き処理のフローチャートを示す図である。図１１に示すように、ＣＰＵ１１０は、手書きアプリケーション１３３の制御として、グラフィックシステム１３２からペン動作イベントあるいは手書き軌跡の描画を許可する描画イベントを受け取り、各イベントに応じた処理を行う。
【０１２７】
本実施形態では、グラフィックシステム１３２は、ペン動作情報とｘｙ座標に基づき、３種類のペン動作イベントを発生させる。すなわち、グラフィックシステム１３２は、ペン１２２がＥＰＤパネル１５２の表面に接触した瞬間を検出した場合はペンタッチイベントを発生させ、ペン１２２がＥＰＤパネル１５２の表面に接触した状態で移動した瞬間を検出した場合はペン移動イベントを発生させ、ペン１２２がＥＰＤパネル１５２の表面から離れた瞬間を検出した場合、ペンリリースイベントを発生させる。
【０１２８】
ＣＰＵ１１０（手書きアプリケーション１３３）は、ペンタッチイベントが発生した場合（Ｓ１００のＹ）はペンタッチイベントハンドラーの処理を行い（Ｓ１０２）、ペン移動イベントが発生した場合（Ｓ１０４のＹ）はペン移動イベントハンドラーの処理を行い（Ｓ１０６）、ペンリリースイベントが発生した場合（Ｓ１０８のＹ）はペンリリースイベントハンドラーの処理を行う（Ｓ１１０）。
【０１２９】
また、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画イベントが発生した場合（Ｓ１１２のＹ）は描画イベントハンドラーの処理を行う（Ｓ１１４）。
【０１３０】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、ユーザーの入力操作等によりアプリケーションの終了イベントが発生するまで（Ｓ１１６のＹ）、各イベントが発生する毎に発生したイベントに応じた処理を繰り返し行う。
【０１３１】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）による、ペンタッチイベントハンドラーの処理（Ｓ１０２）、ペン移動イベントハンドラーの処理（Ｓ１０６）、ペンリリースイベントハンドラーの処理（Ｓ１１０）、描画イベントハンドラーの処理（Ｓ１１４）の詳細について、順番に説明する。以下の説明において、ペンタッチイベントが発生する前は、図１２に示すように、フレームバッファー１３５に画像データＱＤが格納されており、図１３に示すように、キャッシュ１３６のいずれかの記憶領域にも同じ画像データＱＤが記憶されているものとする。
【０１３２】
図１４は、ＣＰＵ１１０（手書きアプリケーション１３３）によるペンタッチイベントハンドラーの処理（図１１のステップＳ１０２の処理）のフローチャートの一例を示す図である。
【０１３３】
図１４に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、まず、グラフィックシステム１３２からペンタッチイベントとともに受け取ったペンの接触位置のｘｙ座標に基づき、ｘｙ座標の領域判定・補正処理を行う（Ｓ２００）。
【０１３４】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、手書きの座標か否かを判定する（Ｓ２０２）。ＣＰＵ１１０（手書きアプリケーション１３３）は、手書きのｘｙ座標だけでなく、例えば、ページ操作（ページ送り、ページ戻し、ページの拡大や縮小等）のｘｙ座標も受け取るので、手書きの座標か否かを判定する必要がある。ユーザーが入力ボタン１０２等を操作してあらかじめ手書きモードかページ操作モードかを選択しているので、ＣＰＵ１１０（手書きアプリケーション１３３）は、現在のモード情報から、受け取ったｘｙ座標が手書きの座標か否かを判定することができる。
【０１３５】
手書きの座標であれば（Ｓ２０２のＹ）、ＣＰＵ１１０（手書きアプリケーション１３３）は、ペン１２２の現在のｘｙ座標を手書き始点として記憶し（Ｓ２０４）、ハンドラーの処理を終了してアプリケーション１３３からグラフィックシステム１３２へ制御を戻す（Ｓ２０６）。
【０１３６】
一方、手書きの座標でなければ（Ｓ２０２のＮ）、ＣＰＵ１１０（手書きアプリケーション１３３）は、ステップＳ２０４の処理を行わずに、ハンドラーの処理を終了して手書きアプリケーション１３３からグラフィックシステム１３２へ制御を戻す（Ｓ２０６）。
【０１３７】
図１５は、ＣＰＵ１１０（手書きアプリケーション１３３）によるペン移動イベントハンドラーの処理（図１１のステップＳ１０６の処理）のフローチャートの一例を示す図である。
【０１３８】
図１５に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、まず、グラフィックシステム１３２からペン移動イベントとともに受け取ったペンの接触位置のｘｙ座標に基づき、ｘｙ座標の領域判定・補正処理を行う（Ｓ３００）。
【０１３９】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、手書きの座標か否かを判定し（Ｓ３０２）、手書きの座標であれば（Ｓ３０２のＹ）、ペン１２２の現在のｘｙ座標を手書き終点として記憶する（Ｓ３０４）。
【０１４０】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、ペン１２２の前のｘｙ座標を始点、現在のｘｙ座標を終点とする直線をフレームバッファー１３５に書き込む（Ｓ３０６、直接描画処理）。
【０１４１】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、ペンリリースイベントが発生するまで（Ｓ３０８のＮ）、直線単位でＳ３０４及びＳ３０６の処理を繰り返し行い、ペンリリースイベントが発生すると（Ｓ３０８のＹ）、ハンドラーの処理を終了して手書きアプリケーション１３３からグラフィックシステム１３２へ制御を戻す（Ｓ３１０）。
【０１４２】
一方、手書きの座標でなければ（Ｓ３０２のＮ）、ＣＰＵ１１０（手書きアプリケーション１３３）は、ステップＳ３０４〜Ｓ３０８の処理を行わずに、ハンドラーの処理を終了して手書きアプリケーション１３３からグラフィックシステム１３２へ制御を戻す（Ｓ３１０）。
【０１４３】
図１６は、ＣＰＵ１１０（手書きアプリケーション１３３）によるペンリリースイベントハンドラーの処理（図１１のステップＳ１１０の処理）のフローチャートの一例を示す図である。
【０１４４】
図１６に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、まず、グラフィックシステム１３２からペンリリースイベントとともに受け取ったペンの接触位置のｘｙ座標に基づき、ｘｙ座標の領域判定・補正処理を行う（Ｓ４００）。
【０１４５】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、手書きの座標か否かを判定し（Ｓ４０２）、手書きの座標であれば（Ｓ４０２のＹ）、ペン１２２の現在のｘｙ座標を手書き終点として記憶する（Ｓ４０４）。
【０１４６】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、ペン１２２の前のｘｙ座標を始点、現在のｘｙ座標を終点とする直線をフレームバッファー１３５に書き込む（Ｓ４０６、直接描画処理）。
【０１４７】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、対象ページの手書きデータに最新の軌跡ストロークとして追加する（Ｓ４０８）。
【０１４８】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、グラフィックシステム１３２に描画領域の更新イベントの発生を依頼する（Ｓ４１０）。グラフィックシステム１３２は、この依頼を受けて、手書き軌跡の描画処理が可能になった時点で、手書きアプリケーション１３３に対して描画イベントを発生させる。
【０１４９】
そして、ＣＰＵ１１０は、ハンドラーの処理を終了して手書きアプリケーション１３３からグラフィックシステム１３２へ制御を戻す（Ｓ４１２）。
【０１５０】
図１７は、ＣＰＵ１１０（手書きアプリケーション１３３）による直接描画処理（図１５のステップＳ３０６の処理及び図１６のステップＳ４０６の処理）のフローチャートの一例を示す図である。
【０１５１】
図１７に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、まず、フレームバッファードライバー１３５から更新用バッファーのアドレスを取得する（Ｓ５００）。
【０１５２】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、直線の始点（ｘｓ，ｙｓ）と終点（ｘｅ，ｙｅ）からｘ方向の距離の絶対値（ｄｘ）、ｙ方向の距離の絶対値（ｄｙ）、ｘ方向の符号（ｓｘ）、ｙ方向の符号（ｓｙ）を計算する（Ｓ５０２）。
【０１５３】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画対象点を、ｘ座標ｔｘ＝ｘｓ，ｙ座標ｔｙ＝ｙｓに初期化する（Ｓ５０４）。
【０１５４】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、ｄｘとｄｙの大小を判定し（Ｓ５０６）、ｄｘ≦ｄｙであれば（Ｓ５０６のＮ）、フレームバッファー更新用バッファーの座標（ｔｘ，ｔｙ）の該当位置に指定色と指定の太さの点を書き込み（Ｓ５０８）、描画点のｙ座標ｔｙが終点のｙ座標ｙｅと一致するか否かを判定する（Ｓ５１０）。
【０１５５】
描画点のｙ座標ｔｙが終点のｙ座標ｙｅと一致しなければ（Ｓ５１０のＮ）、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｙ座標ｔｙをｔｙ＝ｔｙ＋ｓｙに更新する（Ｓ５１２）。
【０１５６】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｙ座標ｔｙに対する描画点のｘ座標ｔｘの更新判別値を直線の傾き増分から計算する（Ｓ５１４）。
【０１５７】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｘ座標も更新が必要であれば（Ｓ５１６のＹ）、描画点のｘ座標ｔｘをｔｘ＝ｔｘ＋ｓｘに更新する（Ｓ５１８）。
【０１５８】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｙ座標ｔｙが終点のｙ座標ｙｅと一致するまで（Ｓ５１０のＮ）ステップＳ５０８〜Ｓ５１８の処理を繰り返し行い、一致すると（Ｓ５１０のＹ）直接描画処理を終了する。
【０１５９】
一方、ｄｘとｄｙの大小判定（Ｓ５０６）の結果、ｄｘ＞ｄｙであれば（Ｓ５０６のＹ）、ＣＰＵ１１０（手書きアプリケーション１３３）は、フレームバッファー更新用バッファーの座標（ｔｘ，ｔｙ）の該当位置に指定色と指定の太さの点を書き込み（Ｓ５２０）、描画点のｘ座標ｔｘが終点のｘ座標ｘｅと一致するか否かを判定する（Ｓ５２２）。
【０１６０】
描画点のｘ座標ｔｘが終点のｘ座標ｘｅと一致しなければ（Ｓ５２２のＮ）、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｘ座標ｔｘをｔｘ＝ｔｘ＋ｓｘに更新する（Ｓ５２４）。
【０１６１】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｘ座標ｔｘに対する描画点のｙ座標ｔｙの更新判別値を直線の傾き増分から計算する（Ｓ５２６）。
【０１６２】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｙ座標も更新が必要であれば（Ｓ５２８のＹ）、描画点のｙ座標ｔｙをｔｙ＝ｔｙ＋ｓｙに更新する（Ｓ５３０）。
【０１６３】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、描画点のｘ座標ｔｘが終点のｘ座標ｘｅと一致するまで（Ｓ５２２のＮ）ステップＳ５２０〜Ｓ５３０の処理を繰り返し行い、一致すると（Ｓ５２２のＹ）直接描画処理を終了する。
【０１６４】
図１８（Ａ）〜図１８（Ｃ）に、ＣＰＵ１１０（手書きアプリケーション１３３）の直接描画処理によってフレームバッファー１３５に格納される画像データが変化する様子の一例を示す。図１８（Ａ）は、図１５のステップＳ３０６の直接描画処理により、フレームバッファー１３５に、手書き軌跡Ｐの最初のいくつかの直線部分（直線近似される部分）が書き込まれた後の画像データを示している。図１８（Ｂ）は、図１５のステップＳ３０６の直接描画処理により、フレームバッファー１３５に、手書き軌跡Ｐの次のいくつかの直線部分（直線近似される部分）がさらに書き込まれた後の画像データを示している。図１８（Ｃ）は、図１６のステップＳ４０６の直接描画処理により、フレームバッファー１３５に、手書き軌跡Ｐの最後の直線部分（直線近似される部分）が書き込まれた後の画像データを示している。
【０１６５】
図１９は、ＣＰＵ１１０（手書きアプリケーション１３３）による描画イベントハンドラーの処理（図１１のステップＳ１１４の処理）のフローチャートの一例を示す図である。描画イベントとしては、図１６のステップＳ４１０の処理によりグラフィックシステム１３２が発生させる描画イベントの他、ページ送りやページ戻し、ページの拡大や縮小、画像の消去等の入力操作に応じてグラフィックシステム１３２が発生させる描画イベントもある。
【０１６６】
図１９に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、まず、グラフィックシステム１３２標準の関数呼び出しで手書き以外のグラフィック部品（入力ボタン１０２等）を描画する（Ｓ６００）。
【０１６７】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、内部メモリー１３０から対象ページの手書き軌跡データを読み出す（Ｓ６０２）。
【０１６８】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、グラフィックシステム１３２標準の関数呼び出しで対象ページのすべての手書き軌跡を描画し（Ｓ６０４、間接描画処理）、ハンドラーの処理を終了して手書きアプリケーション１３３からグラフィックシステム１３２へ制御を戻す（Ｓ６０６）。
【０１６９】
図２０は、ＣＰＵ１１０（手書きアプリケーション１３３）による間接描画処理（図１９のステップＳ６０４の処理）のフローチャートの一例を示す図である。
【０１７０】
図２０に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、まず、最初の手書きストロークで直線の始点・終点を初期化する（Ｓ７００）。
【０１７１】
次に、ＣＰＵ１１０（手書きアプリケーション１３３）は、グラフィックシステム１３２の直線描画用関数を呼び出して現在の座標、色、線の太さで描画する（Ｓ７０２）。
【０１７２】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、ステップＳ７０２で描画した手書きストロークが最終の手書きストロークでなければ（Ｓ７０４のＮ）、座標値を次の手書きストロークに更新して（Ｓ７０６）ステップＳ７０２の処理を行い、最終の手書きストロークであれば（Ｓ７０４のＹ）、処理を終了する。
【０１７３】
図２１に、図１９のステップＳ６０４の間接描画処理によりキャッシュ１３６に保存される画像データの一例を示す。
【０１７４】
本実施形態では、フレームバッファー１３５の画像データが図１８（Ａ）から図１８（Ｃ）まで変化している間、キャッシュ１３６の画像データは変化せず、図１３に示した画像データのままである。従って、フレームバッファー１３５の内容とキャッシュ１３６の内容の整合性が一時的に崩れるが、線分単位でキャッシュ１３６を書き換える処理が無いのでＣＰＵ１１０の負荷を低減することができる。手書きアプリケーション１３３は、ペンリリースイベントの発生により、すなわち、手書き操作が途切れたタイミングでグラフィックシステム１３２に対して手書き軌跡データの一括描画を要求し、これに応じた間接描画処理が行われることで、キャッシュ１３６の画像データ（図２１）がフレームバッファー１３５の画像データ（図１８（Ｃ））と一致し、整合性が回復する。
【０１７５】
以上に説明したように、本実施形態の電子書籍端末１００（画像処理装置１）によれば、手書きアプリケーション１３３が、入力操作に基づく所定のイベントに応じて、直接描画処理により、グラフィックシステム１３２を介さずにフレームバッファー１３５に画像データを書き込むことで、電子ペーパー５２への描画を高速化することができる。従って、本実施形態によれば、液晶ディスプレイ（ＬＣＤ）と比較して表示速度で劣る電子ペーパーの欠点を補い、操作性に優れたユーザーの使い勝手のよい電子書籍端末１００（画像処理装置１）を提供することができる。
【０１７６】
また、本実施形態の電子書籍端末１００（画像処理装置１）によれば、手書きアプリケーション１３３が、間接描画処理を行うことで、グラフィックシステム１３２がキャッシュ１３６を更新するので、フレームバッファー１３５とキャッシュ１３６の整合性を維持することができる。
【０１７７】
また、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、手書き軌跡の直線単位の描画をグラフィックシステム１３２で行う必要がなく、ＣＰＵ１１０による重い処理を避けることができるので、消費電力を低減させることができる。
【０１７８】
また、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、グラフィックシステム１３２のオーバーヘッドによる性能低下を避けながら、グラフィックシステム１３２が持つアプリケーションの開発・実行環境の高い互換性を維持することができる。
【０１７９】
また、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、グラフィックシステム１３２に、描画を行わずにキャッシュ１３６の更新のみを行う関数が用意されていない場合であっても、手書きアプリケーション１３３が描画用の関数を呼び出すことで確実かつ容易にキャッシュ１３６を更新することができる。
【０１８０】
また、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、手書きアプリケーション１３３がフレームバッファー１３５に画像データを書き込む毎に、当該画像データがＥＰＤコントローラー１４０に転送されるので、手書き入力操作に追従してすぐに手書き軌跡が表示されるので、操作性を向上させることができる。
【０１８１】
また、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、一連の手書き入力操作が終了してから、グラフィックシステム１３２によるキャッシュ１３６の更新を一度だけ行えばよいので、ＣＰＵ１１０の負荷を低減することができる。
【０１８２】
また、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、グラフィックシステム１３２を最適化せずに描画の高速化とＥＰＤコントローラー１４０に合わせた最適化が可能になる。特に、本実施形態に係る電子書籍端末１００（画像処理装置１）によれば、ＥＰＤコントローラー１４０がメモリーパイプライン１４２によって履歴情報を管理することで、電子ペーパー１５２の特性に応じた駆動パルスの印加回数の制御など複雑な表示制御を高速に行うことができるとともに、ＣＰＵ１１０の負荷を低減させることができる。また、手書きアプリケーション１３３が、直接描画処理において表示制御を意識する必要がないので、アプリケーションプログラムの開発が容易になる。
【０１８３】
３．その他の画像処理装置
図２２（Ａ）及び図２２（Ｂ）に、電子書籍端末１００以外の本実施形態の画像処理装置１の例を示す。
【０１８４】
図２２（Ａ）は、スマートフォン５００の外観図である。スマートフォン５００は、ケース５０２を備える。ケース５０２の前面には、３つの操作ボタン５１１，５１２，５１３が設けられている。また、ケース５０２の前面には、ＥＰＤパネル等の電子ペーパーを備えた表示部５０４が設けられ、電子ペーパーの表面に各種の情報（画像）が表示される。不図示のペンや操作ボタン５１１，５１２，５１３等による所定の操作に応じて、内蔵されたＣＰＵ（アプリケーション）からフレームバッファーへの直接描画処理が行われ、表示部５０４の電子ペーパーの表面に、各操作に応じた画像が高速表示される。
【０１８５】
図２２（Ｂ）は、腕時計６００の外観図である。腕時計６００は、ケース６０２と、ケース６０２に連結された一対のバンド６０３とを備える。ケース６０２の側面には、２つの操作ボタン６１１，６１が設けられている。また、ケース６０２の前面には、ＥＰＤパネル等の電子ペーパーを備えた表示部６０４が設けられ、電子ペーパーの表面に時刻の他、各種の情報（画像）が表示される。不図示のペンや操作ボタン６１１，６１２等による所定の操作に応じて、内蔵されたＣＰＵ（アプリケーション）からフレームバッファーへの直接描画処理が行われ、表示部６０４の電子ペーパーの表面に、各操作に応じた画像が高速表示される。
【０１８６】
なお、本実施形態の画像処理装置１としては、この他にも、例えば、電子看板（デジタルサイネージ）、パーソナルコンピューター、携帯電話機、ディジタルスチールカメラ、テレビ、ビデオカメラ、ビデオテープレコーダー、カーナビゲーション装置、電子手帳、電子ゲーム機器等が挙げられる。
【０１８７】
４．変形例
本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１８８】
［変形例１］
本実施形態では、手書きアプリケーション１３３の処理において、ペンリリースイベントが発生するまで待ってキャッシュ１３６のデータを更新しているが、システムによっては、ペンタッチイベントが発生してからペンリリースイベントが発生するまでの間に、他のタスクによってフレームバッファーが更新される可能性もある。そこで、ペン移動イベントハンドラーの処理において、フレームバッファー１３５の更新を伴うイベントを検出し、フレームバッファー１３５が更新される前に、グラフィックシステム１３２に対してキャッシュ情報の更新を要求するように変形してもよい。
【０１８９】
図２３は、本変形例１におけるＣＰＵ１１０（手書きアプリケーション１３３）によるペン移動イベントハンドラーの処理（図１１のステップＳ１０６の処理）のフローチャートの一例を示す図である。図２３において、図１５と同じ処理には同じ符号を付しており、その説明を省略する。
【０１９０】
図２３に示すように、ＣＰＵ１１０（手書きアプリケーション１３３）は、ステップＳ３０６の直接描画処理を行った後、フレームバッファー１３５の更新を伴うイベントが発生したか否かを判定する（Ｓ３０７ａ）。
【０１９１】
そして、ＣＰＵ１１０（手書きアプリケーション１３３）は、フレームバッファー１３５の更新を伴うイベントが発生した場合（Ｓ３０７ａのＹ）、グラフィックシステム１３２に描画領域の更新イベントの発生を依頼する。グラフィックシステム１３２は、この依頼を受けて、手書き軌跡の描画処理が可能になった時点で、手書きアプリケーション１３３に対して描画イベントを発生させる。
【０１９２】
ＣＰＵ１１０（手書きアプリケーション１３３）は、この描画イベントを受け取って、図１９に示した描画イベントハンドラーの処理におけるステップＳ６０４の間接描画処理を行うことで、キャッシュ１３６の画像データが更新される。
【０１９３】
このようにすれば、手書き操作が行われている間にフレームバッファー１３５の更新を伴うイベントが発生しても、フレームバッファー１３５の内容とキャッシュ１３６の内容の一貫性を維持することができる。
【０１９４】
なお、ＣＰＵ１１０（手書きアプリケーション１３３）は、フレームバッファー１３５の更新を伴うイベントを検出した場合、グラフィックシステム１３２に対してできるだけ早く更新要求（描画領域の更新イベントの発生の依頼）を行ったほうがよいので、例えば、この更新要求を割り込み処理により行うようにしてもよい。
【０１９５】
［変形例２］
本実施形態では、手書きの軌跡を直線単位のデータに分割して直線単位毎に直接描画処理を行っているが、例えば、手書きの軌跡を一定時間ごとに分割し、一定時間毎に直接描画処理を行うように変形してもよい。
【０１９６】
［変形例３］
本実施形態では、手書き処理を例に挙げて本発明の高速描画手法を説明したが、本発明は、手書き処理に限らず、ページ送りやページ戻し、ページの拡大や縮小、オブジェクトの表示や消去等の種々の処理に適用することができる。
【０１９７】
上述した実施形態および変形例は一例であって、これらに限定されるわけではない。例えば、各実施形態および各変形例を適宜組み合わせることも可能である。
【０１９８】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【０１９９】
１  画像処理装置、１０  処理部（ＣＰＵ）、１２  入力操作検出処理部、１４  アプリケーション処理部、１６  描画処理部、１８  画像データ転送処理部、２０  操作部、３０  記憶部、３２  アプリケーションプログラム、３４  データファイル、３６  フレームバッファー、３８  キャッシュ、４０  表示制御部、４２  履歴情報、５０  表示部、５２  電子ペーパー、５４  接触位置検出部、６０  音出力部、７０  通信部、１００  電子書籍端末、１１０  ＣＰＵ、１２０，１２０ａ，１２０ｂ  入力ボタン、１３０  内部メモリー、１３１  オペレーティングシステム、１３１ａ  デジタイザードライバー、１３１ｂ  フレームバッファードライバー、１３２  グラフィックシステム、１３３  手書きアプリケーション、１３４  コンテンツファイル、１３５  フレームバッファー、１３６  キャッシュ、１４０  ＥＰＤコントローラー、１４２  メモリーパイプライン、１５０  ディスプレイ、１５２  ＥＰＤパネル、１５４  デジタイザー、１６０  スピーカー、１７０  ＵＳＢインターフェース、１９５，１９５Ａ，１９５Ｂ  画素電極、１９７  共通電極、２００，２００Ａ，２００Ｂ  画素、２０８  駆動用ＴＦＴ、２０９  低電位電源線（Ｖｓｓ）、２１０  高電位電源線（Ｖｄｄ）、２１５  共通電極配線（Ｖｃｏｍ）、２２１  走査線駆動回路、２２２  データ線駆動回路、２２４  共通電源変調回路、２２６  走査線、２２８  データ線、２３０  ラッチ回路、２４０  スイッチ回路、２５１  第１のパルス信号線（Ｓ１）、２５２  第２のパルス信号線（Ｓ２）、２６０  マイクロカプセル、２６６  黒色粒子、２６７  白色粒子、２７０  素子基板、２７１  対向基板、２７２  電気泳動素子、２８０  駆動電極層、２８２  共通電極層、２９０  電気泳動表示層、５００  スマートフォン、５０２  ケース、５０４  表示部、５１１，５１２，５１３  操作ボタン、６００  腕時計、６０２  ケース、６０３  バンド、６０４  表示部、６１１，６１２  操作ボタン
【図１】
2013205731.tif 000003
【図２】
2013205731.tif 000004
【図３】
2013205731.tif 000005
【図４】
2013205731.tif 000006
【図５】
2013205731.tif 000007
【図６】
2013205731.tif 000008
【図７】
2013205731.tif 000009
【図８】
2013205731.tif 000010
【図１０】
2013205731.tif 000011
【図１１】
2013205731.tif 000012
【図１２】
2013205731.tif 000013
【図１３】
2013205731.tif 000014
【図１４】
2013205731.tif 000015
【図１５】
2013205731.tif 000016
【図１６】
2013205731.tif 000017
【図１７】
2013205731.tif 000018
【図１８】
2013205731.tif 000019
【図１９】
2013205731.tif 000020
【図２０】
2013205731.tif 000021
【図２１】
2013205731.tif 000022
【図２２】
2013205731.tif 000023
【図２３】
2013205731.tif 000024
【図９】
2013205731.tif 000025