以下に添付図面を参照して、この発明にかかる画像処理装置、プログラム、および画像処理方法の最良な実施の形態を詳細に説明する。以下の実施の形態では、本発明の画像処理装置を複合機に適用した例を示す。但し、複合機に限られず、ファクシミリ、スキャナ機能やコピー、ファックス、プリンタなどの画像処理を行うものであれば、本発明を適用することができる。
(第1の実施の形態)
図1は、本発明の第1の実施の形態にかかる複合機の構成を示すブロック図である。本実施の形態にかかる複合機101は、大別すると、コントローラ102、操作パネル104、プリンタエンジン113、およびスキャナエンジン118を備える。また、本実施の形態にかかる複合機101は、各種データ等を送受信するホスト103およびネットワーク115と接続されている。
操作パネル104は、複合機101の状態を示す表示部、および複合機101のモード、フォント等を切替えるスイッチ部からなる。また、蓄積された文書の一覧画面を表示し、選択した文書の印刷や消去を指示する。また、操作パネル104は、複合機101のモードおよびフォントの切り替え、文書の印刷や消去の指示等を設定する制御信号をコントローラ102に出力する。
コントローラ102は、操作パネル104、ホスト103、もしくはネットワーク115からの制御信号にしたがって、ホスト103もしくはスキャナエンジン118からの印字データ(本発明にかかる画像データ)を、ビデオデータ(本発明にかかる処理画像データ)に変換し、当該ビデオデータを示すビデオ信号および制御信号をプリンタエンジン113へ出力する制御機構の総称である。
プリンタエンジン113は、コントローラ102からのビデオ信号および制御信号により感光体上に静電潜像を作り、現像し、また給紙部より転写紙を給紙し、転写および定着し、画像を形成する。
スキャナエンジン118は、コントローラ102からの制御信号により原稿を読み取り、読み取った画像を印字データに変換してコントローラ102に入力する。
次に、本実施の形態にかかるコントローラ102の詳細な構成について説明する。本実施の形態にかかるコントローラ102は、ホストI/F105、プログラムROM(Read Only Memory)106、フォントROM107、パネルI/F108、CPU(Central Processing Unit)109、RAM(Random Access Memory)110、NV(Non Volatile)−RAM111、プリンタエンジンI/F112、スキャナエンジンI/F114、ネットワークI/F116等のようなモジュールで構成されている。なお、コントローラ102を構成する各モジュールは、バス117で接続されている。
ホストI/F105は、ホスト103から複合機101への制御信号およびデータ、および複合機101からホスト103へのステータス信号のインターフェイスである。ネットワークI/F116は、ネットワーク115から複合機101への制御信号およびデータ、および複合機101からネットワーク115へのステータス信号のインターフェイスである。
パネルI/F108は、操作パネル104からコントローラ102への制御信号のインターフェイスである。プリンタエンジンI/F112は、コントローラ102からプリンタエンジン113への制御信号やビデオ信号、およびプリンタエンジン113からコントローラ102へのステータス信号のインターフェイスである。スキャナエンジンI/F114は、コントローラ102からスキャナエンジン118への制御信号、およびスキャナエンジン118からコントローラ102へのデータおよびステータス信号のインターフェイスである。フォントROM107は、印字に使用されるさまざまな種類のフォントを有する。
NV−RAM111は、電源を切っても保持したいデータを格納しておく為の不揮発性RAMである。
RAM(本発明にかかる記憶手段)110は、電源を切ってしまうとデータが消えてしまう揮発性の記憶デバイスであり、CPU109が処理するときのワークメモリ、ホストからのデータをページ単位に管理して一時的に記憶するバッファ、およびバッファに記憶されたデータを実際の印字パターンに変換し、ビデオデータを記憶するビットマップメモリ等に使用される。本実施の形態にかかるRAM110は、印字データに画像処理を施す複数のアプリケーションプログラム(以下、アプリプログラムとする)により処理されたビデオデータを一時的に記憶する描画メモリ領域として使用可能な記憶手段である。また、本実施の形態にかかるRAM110は、アプリプログラムが動作する上で必要なワーク領域としても使用される。なお、各アプリプログラムのワーク領域は、アプリプログラムの動作状態に関わらず、常に設けられる。なお、RAM110は、少なくとも他のアプリプログラムに優先して動作するアプリプログラム(以下、動作アプリプログラムとする)の予め定められた記憶容量の描画メモリ領域を設けることができる記憶容量を有しているものとする。
図2は、本実施の形態にかかるRAMの使用状態を表現するメモリマップの一例を示す説明図である。図2に示すように、本実施の形態にかかるRAM110内の領域は、アプリプログラムAおよびアプリプログラムBのワーク領域201〜202と、アプリプログラムAおよびアプリプログラムBにより処理されたビデオデータを一時的に記憶する描画メモリ領域203〜204と、に大別される。
プログラムROM106は、この発明の記憶媒体を実施するものであり、コントローラ内でのデータの処理、管理や、周辺モジュールを制御するためのプログラムが格納されている。
図3は、プログラムROMに格納されたアプリプログラムの構成を示すブロック図である。本実施の形態のプログラムROM106には、システムプログラム301、コピーアプリプログラム302、スキャナーアプリプログラム303、プリンタアプリプログラム304、およびその他のアプリプログラム305が格納されている。
コピーアプリプログラム302、スキャナーアプリプログラム303、プリンタアプリプログラム304、およびその他のアプリプログラム305は、複合機101が備えるプリンタエンジン113、スキャナエンジン118等のハードウェアの動作を制御するプログラムである。
システムプログラム301は、複合機101が起動した場合に、NV−RAM111に格納されたデータに基づいて、優先して動作するハードウェアを選択する。さらに、システムプログラム301は、RAM110内の各種アプリプログラム302〜305に確保する描画メモリ領域の割合を決定し、ハードウェアが動作する環境をセットアップする。
なお、本実施の形態の複合機101で実行されるプログラムは、プログラムROM106に予め組み込まれて提供されるものとしたがこれに限るものではない。例えば、プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施の形態の複合機101で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でNV−RAM111にダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の複合機101で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
CPU109は、複合機101の主要部であって各部を集中的に制御するものであり、プログラムROM106に記憶されているプログラムにしたがって、ホスト103からのデータ(印字データ、制御信号)等の処理を実施する。
このシステム全体の動作を制御するCPU109は、このシステムの主記憶装置として使用されるNV−RAM111に上にロードされたプログラムに基づいて各種処理を実行する。
次に、複合機101のNV−RAM111にインストールされているシステムプログラム301がCPU109に実行させる機能のうち、本実施の形態の複合機101が備える特長的な機能について説明する。
図4は、本実施の形態にかかる複合機の機能構成を示すブロック図である。図4に示すように、本実施の形態にかかる複合機101は、システムプログラム301に従うことにより、検出部401、判断部402、第1確保部403、および第2確保部404を実現する。
検出部401は、RAM110の描画メモリ領域として使用可能な記憶容量を検出する。アプリプログラムのワーク領域は、上述したように、アプリプログラムの動作状態に関わらず、常に設けられる。そのため、本実施の形態にかかる検出部401は、RAM110の記憶容量からワーク領域201〜202の記憶容量を差し引いた値を、描画メモリ領域として使用可能な記憶容量の情報(以下、残容量情報とする)として検出する。そして、検出部401は、残容量情報をNV−RAM111に格納する。なお、RAM110の記憶容量の情報およびワーク領域201〜202の記憶容量の情報は、予めプログラムROM106またはNV−RAM11に格納されているものとする。
判断部402は、検出部401により検出された記憶容量に基づいて、全てのアプリプログラムの予め定められた記憶容量の描画メモリ領域をRAM110内に確保することができるか否かを判断する。本実施の形態では、各アプリプログラムの予め定められた記憶容量を示す情報(以下、要求容量情報とする)が、各アプリプログラム名と対応付けてプログラムROM106またはNV−RAM111に予めデータとして記憶されているものとする。したがって、判断部402は、プログラムROM106またはNV−RAM111に記憶された全てのアプリプログラムの要求容量情報が示す記憶容量の合計と、NV−RAM111に格納された残容量情報が示す記憶容量と、を比較して、全てのアプリプログラムの予め定められた記憶容量の描画メモリ領域をRAM110内に確保できるか否かを判断する。
第1確保部403は、全てのアプリプログラムの予め定められた記憶容量の描画メモリ領域を確保できないと判断された場合、少なくとも動作アプリプログラムの予め定められた記憶容量の描画メモリ領域をRAM110内に確保する。本実施の形態では、プログラムROM106またはNV−RAM111に記憶された動作アプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域をRAM110内に確保する。
第2確保部404は、検出部401により検出された記憶容量から動作アプリプログラムの予め定められた記憶容量を差し引いた値に応じて他のアプリプログラムの予め定められた記憶容量の描画メモリ領域をRAM110内に確保する。本実施の形態では、アプリプログラムの描画メモリ領域が確保されると、描画メモリ領域が確保されていないアプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を、残りの記憶容量で確保できるか否かを判断する。
具体的には、NV−RAM111に格納された残容量情報が示す記憶容量から、描画メモリ領域を確保したアプリプログラムの要求容量情報が示す記憶容量を差し引いた値(以下、空き容量とする)を算出する。次いで、第2確保部404は、算出した空き容量と、プログラムROM106またはNV−RAM111に記憶された描画メモリ領域が確保されていないアプリプログラムの要求容量情報が示す記憶容量と、を比較して、当該アプリプログラムの描画メモリ領域を確保することができるか否かを判断する。なお、第2確保部404は、アプリプログラムの描画メモリ領域を確保する度に、空き容量を算出し、算出した空き容量を示す情報(以下、空き容量情報とする)をNV−RAM111に格納する。
第2確保部404は、描画メモリ領域が確保されていないアプリプログラムの描画メモリ領域を確保することができると判断した場合、上述した処理と同様にして、描画メモリ領域を既に確保したアプリプログラム以外の他のアプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を確保する。
次に、図5を用いて、複合機101の起動時における描画メモリ領域の確保処理について説明する。図5は、複合機の起動時における描画メモリ領域の確保処理の手順を示すフローチャートである。
まず、検出部401は、RAM110の描画メモリ領域として使用可能な記憶容量を検出する(ステップS501)。判断部402は、検出された記憶容量に基づいて、全てのアプリプログラムの予め定められた記憶容量の描画メモリ領域を確保することができるか否かを判断する(ステップS502)。そして、全てのアプリプログラムの予め定められた記憶容量の描画メモリ領域を確保することができると判断された場合には(ステップS502:Yes)、従来と同様にして全てのアプリプログラムの描画メモリ領域を確保する(ステップS509)。
一方、全てのアプリプログラムの予め定められた記憶容量の描画メモリ領域を確保することができないと判断された場合(ステップS502:No)、第1確保部403は、複合機101が起動した場合、複合機101の起動に伴い優先的に動作するアプリプログラムの描画メモリ領域を、動作アプリプログラムの描画メモリ領域として確保する(ステップS503)。本実施の形態では、アプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を確保する。
また、第1確保部403は、複合機101の起動に伴い優先的に動作するアプリプログラムの描画メモリ領域が確保されると、確保した描画メモリ領域の情報(以下、領域情報とする)をNV−RAM111に格納する(ステップS504)。ここで、領域情報とは、RAM110内の各アプリプログラムの描画メモリ領域の場所(例えば、番地、アドレス等)を示す情報である。動作アプリプログラムは、NV−RAM111に格納された領域情報を参照して、ビデオデータを描画メモリ領域に展開する。
図6は、従来のRAMの使用状態を表現するメモリマップの一例を示す説明図である。従来は、図6(b)に示すように、RAM110の記憶容量が図6(a)に示すアプリプログラムBの描画メモリ領域204分少ない場合、各アプリプログラムの動作状態に関わらず、各アプリプログラムの描画メモリ領域を減少させて、常に全てのアプリプログラムの描画メモリ領域601、602を確保していた。そのため、アプリプログラムに確保された描画メモリ領域が処理するデータ量に対して十分でない場合、ビデオデータの出力に時間がかかったり、ビデオデータを出力できない等の問題が発生する。
そこで、本実施の形態では、図7(b)に示すように、RAM110の記憶容量が図7(a)に示すアプリプログラムBの描画メモリ領域204分少ない場合、動作しないアプリプログラムBの描画メモリ領域を確保せず、アプリプログラムAにのみ描画メモリ領域701を確保する。これにより、RAM110の記憶容量が少ない場合においても、アプリプログラムに対して十分な描画メモリ領域を確保することができる。図7は、本実施の形態にかかるRAMの使用状態を表現するメモリマップの一例を示す説明図である。
そして、複合機101の起動に伴い優先的に動作するアプリプログラムの描画メモリ領域が確保されると、第2確保部404は、複合機101の起動に伴い優先的に動作するアプリプログラム以外の他のアプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を、残りの記憶容量で確保できるか否かを判断する(ステップS505)。
他のアプリプログラムの描画メモリ領域を確保することができると判断した場合(ステップS505:Yes)、第2確保部404は、他のアプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を確保する(ステップS506)。次いで、第2確保部404は、確保した描画メモリ領域の領域情報をNV−RAM111に格納する(ステップS507)。
そして、第2確保部404は、全てのアプリプログラムの描画メモリ領域が確保されたか否かを判断する(ステップS508)。未だ描画メモリ領域が確保されていないアプリプログラムがある場合には(ステップS508:No)、第2確保部404は、ステップS505〜ステップS507の処理を繰り返す。一方、全てのアプリプログラムの描画メモリ領域が確保された場合には(ステップS508:Yes)、アプリプログラムの描画メモリ領域の確保処理を終了する。
なお、他のアプリプログラムの描画メモリ領域を確保できないと判断された場合には(ステップS505:No)、他のアプリプログラムの描画メモリ領域の確保は行わず処理を終了する。若しくは、検出部401により検出されたメモリ領域をアプリプログラムに確保する処理を最初からやり直すことにより、より有効にRAM110上のメモリ領域を利用するようにしてもよい。
次に、図8を用いて、アプリプログラムの切替時の描画メモリ領域の確保処理について説明する。図8は、アプリ切替時の描画メモリ領域の確保処理の手順を示すフローチャートである。
まず、アプリプログラムの切り替えが行われた場合、第1確保部403は、切り替えるアプリプログラムの描画メモリ領域が確保されているか否かを判断する(ステップS801)。本実施の形態では、切り替えるアプリプログラムの領域情報がNV−RAM111に格納されているか否かにより、切り替えるアプリプログラムの描画メモリ領域が確保されているか否かを判断する。
そして、第1確保部402は、切り替えるアプリプログラムの描画メモリ領域が確保されていない場合(ステップS801:No)、切り替え以前のアプリプログラムの描画メモリ領域を開放する(ステップS802)。なお、切り替えるアプリプログラムの描画メモリ領域が確保されている場合(ステップS801:Yes)、アプリプログラムの切り替えは行われず処理は終了する。
ここで、開放とは、切り替え以前のアプリプログラムにより処理が施されて描画メモリ領域にロードされているビデオデータを消去して、それらが占有していたRAM110上の描画メモリ領域を開放することを言う。
描画メモリ領域の開放が行われると、第1確保部403は、描画メモリ領域を開放したアプリプログラムの領域情報をクリアする(ステップS803)。本実施の形態では、NV−RAM111に格納された領域情報を消去することにより、領域情報のクリアを実行する。
さらに、第1確保部403は、切り替えるアプリプログラムの描画メモリ領域を、動作アプリプログラムの描画メモリ領域として確保する(ステップS804)。本実施の形態では、切り替えるアプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を確保する。
図9は、本実施の形態にかかるRAMの使用状態を示すメモリマップの一例を示す説明図である。例えば、図9に示すように、アプリプログラムがアプリプログラムAからアプリプログラムBへと切り替わった場合、アプリプログラムAに描画メモリ領域701を確保せず、切り替えるアプリプログラムBにのみ描画メモリ領域901を確保する。これにより、RAM110の記憶容量が少ない場合でも、アプリプログラムの切り替えに応じて、切り替えるアプリプログラムに十分な描画メモリ領域を確保することができる。
次いで、第1確保部403は、切り替えるアプリプログラムに描画メモリ領域が確保されると、確保した描画メモリ領域の領域情報をNV−RAM111に格納する(ステップS805)。なお、領域情報の格納は、上述した処理(ステップS504)と同様であるため、ここでは説明を省略する。
そして、第2確保部404は、切り替えるアプリプログラムの描画メモリ領域が確保されると、複合機101の起動時と同様に、切り替えるアプリプログラム以外の他のアプリプログラムの要求容量情報が示す記憶容量の描画メモリ領域を確保する(ステップS806〜ステップS809)。なお、ステップS806〜ステップS809に示す処理は、上述したステップS505〜ステップS508に示す処理と同様であるため、ここでは説明を省略する。
このように、本実施の形態にかかる複合機101によれば、RAM110の記憶容量が少ない場合でも、少なくとも動作アプリプログラムに十分な記憶容量の描画メモリ領域を確保することができるので、少ない記憶容量でも十分な記憶容量を有する装置と同等の性能を発揮することができる。
(第2の実施の形態)
第2の実施の形態について、添付図面を参照して説明する。なお、本実施に形態にかかる複合機の機能、構成は、第1の実施の形態とほぼ同一であるため、第1の実施の形態と異なる部分のみを説明する。本実施の形態にかかる複合機は、描画メモリ領域として使用できる記憶容量の描画メモリ領域を、複数のアプリプログラムの中の動作アプリプログラムの描画メモリ領域として確保する。
第1確保部403は、判断部402により検出された記憶容量で全てのアプリプログラムの描画メモリ領域を確保できないと判断された場合、検出された記憶容量の描画メモリ領域を動作アプリプログラムの描画メモリ領域として確保する。なお、動作アプリプログラムの描画メモリ領域のみを確保する処理以外は、第1の実施の形態と同様であるため、ここでは説明を省略する。
まず、図10を用いて、複合機101の起動時における描画メモリ領域の確保処理について説明する。なお、ステップS1003以外の処理は、第1の実施の形態と同様である。図10は、複合機の起動時における描画メモリ領域の確保処理の手順を示すフローチャートである。
第1確保部403は、判断部402により全てのアプリプログラムの描画メモリ領域を確保できないと判断された場合(ステップS1002:No)、検出された記憶容量の描画メモリ領域を複合機101の起動に伴い優先的に動作するアプリプログラムの描画メモリ領域として確保する(ステップS1003)。
図11は、本実施の形態にかかるRAMの使用状態を表現するメモリマップの一例を示す説明図である。図11(a)に示すように、本実施の形態にかかるRAM110が有するメモリ領域は、アプリプログラムがN個存在する場合に、各アプリプログラム1〜Nのワーク領域1101と、アプリプログラム1〜Nの描画メモリ領域1102と、に大別される。第1確保部403は、複合機101が全てのアプリプログラム1〜Nの描画メモリ領域を確保できるRAM110を搭載している場合、図11(a)に示すように、全てのアプリプログラム1〜Nの描画メモリ領域1102を確保する。そのため、アプリプログラムが処理するデータ量に対して描画メモリ領域が十分でない場合、ビデオデータの出力に時間がかかったり、ビデオデータを出力できない等の問題が発生する。
そこで、本実施の形態では、RAM110の記憶容量が少ない場合、図11(b)に示すように、複合機101の起動に伴い優先的に動作するアプリプログラム以外の他のアプリプログラム2〜Nの描画メモリ領域を確保せず、複合機101の起動に伴い優先的に動作するアプリプログラム1の描画メモリ領域1103のみを確保する。これにより、RAM110の記憶容量が少ない場合でも、複合機101の起動に伴い優先的に動作するアプリプログラムに対して十分な描画メモリ領域を確保することができる。
次に、図12を用いて、アプリプログラムの切替時における描画メモリ領域の確保処理について説明する。なお、ステップS1201およびステップS1203に示す処理は、第1の実施の形態と同様である。図12は、アプリ切替時における描画メモリ領域の確保処理の手順を示すフローチャートである。
第1確保部403は、切り替えるアプリプログラムに描画メモリ領域が確保されていない場合(ステップS1201:No)、検出された記憶容量の描画メモリ領域を切り替えるアプリプログラムの描画メモリ領域として確保する(ステップS1202)。
例えば、図13に示すように、動作アプリプログラムがアプリプログラム1からアプリプログラム2...Nのいずれか1つに切り替わった場合、アプリプログラム1の描画メモリ領域1103として確保されていた全てのメモリ領域を、切り替えるアプリプログラム2...Nのいずれかの1つの描画メモリ領域1301として確保する。これにより、複数のアプリプログラムを有する場合であっても、各アプリプログラムの動作時に当該アプリプログラムに十分な描画メモリ領域を確保することができる。図13は、アプリ切替時におけるRAMの使用状態を表現するメモリマップの一例を示す説明図である。
このように、本実施の形態にかかる複合機101によれば、複数のアプリプログラムを有する場合であっても、動作アプリプログラムに出来る限り大きい記憶容量の描画メモリ領域を確保することができるので、少ない記憶容量でも十分な記憶容量を有する装置と同等の性能を発揮することができる。
(第3の実施の形態)
第3の実施の形態について、添付図面を参照して説明する。なお、本実施の形態にかかる複合機の機能、構成は、第1の実施の形態とほぼ同一であるため、第1の実施の形態と異なる部分のみを説明する。第1〜2の実施の形態にかかる複合機によれば、各アプリプログラムに対して最大限の描画メモリ領域を確保することができるが、動作アプリプログラムが切り替わったときに、描画メモリ領域の開放が行われるため、アプリプログラムの切り替えに時間がかかるという問題がある。
そこで、本実施の形態にかかる複合機は、動作アプリプログラム以外の他のアプリプログラムの描画メモリ領域を確保する際に、要求容量情報が示す記憶容量が少ないアプリプログラムから順に描画メモリ領域を確保する。これにより、動作アプリプログラム以外の他のアプリプログラムの描画メモリ領域を可能な限り多く確保することができる。そのため、アプリプログラムの切り替えが生じたときに、切り替わるアプリプログラムの描画メモリ領域が既に確保されている可能性が高くなり、描画メモリ領域の切り替えにかかる時間を短縮することができる。
第2確保部404は、動作アプリプログラム以外の他のアプリプログラムのうち、要求容量情報が示す記憶容量が小さいアプリプログラムから順に描画メモリ領域を確保する。図14は、要求容量情報が示す記憶容量が大きい順にアプリプログラムを並べたテーブルを示す図である。本実施の形態では、図14に示すテーブルがプログラムROM106またはNV−RAM111に予めデータとして記憶されているものとする。したがって、第2確保部404は、プログラムROM106またはNV−RAM111に記憶されたテーブルに基づいて、要求容量情報が示す記憶容量が小さいアプリプログラムから順に描画メモリ領域を確保する。
また、第2確保部404は、アプリプログラムの描画メモリ領域を確保するたびに、NV−RAM111に格納された空き容量情報を更新する。本実施の形態では、プログラムROM106またはNV−RAM111に記憶されたテーブルから、描画メモリ領域を確保したアプリプログラムと対応付けて記憶される要求容量情報を特定する。そして、第2確保部404は、NV−RAM111に格納された空き容量情報が示す記憶容量から特定した要求容量情報が示す記憶容量を差し引いた値により、NV−RAM111に格納した残容量情報を更新する。
まず、図15を用いて、複合機101が起動した時の描画メモリ領域を確保する処理について説明する。なお、ステップS1501〜ステップS1503、ステップS1505、ステップS1508〜ステップS1509、ステップS1511、およびステップS1514に示す処理は、第1の実施の形態と同様である。図15は、複合機の起動時における描画メモリ領域の確保処理の手順を示すフローチャートである。
第1確保部403は、複合機101の起動に伴い優先的に動作するアプリプログラムの描画メモリ領域が確保されると、NV−RAM111に格納された空き容量情報を更新する(ステップS1504)。空き容量情報が更新されると、第1確保部403は、描画メモリ領域を確保したアプリプログラムの領域情報をNV−RAM111に格納する(ステップS1505)。さらに、複合機101に起動に伴い優先的に動作するアプリプログラム以外の他のアプリプログラムのうち、要求容量情報が示す記憶容量が小さいアプリプログラムから順に描画メモリ領域を確保する処理を開始する(ステップS1506)。
まず、第2確保部404は、次に描画メモリ領域を確保するアプリプログラムが動作アプリプログラムか否かを判断する(ステップS1507)。本実施の形態では、次に描画メモリ領域を確保するアプリプログラムの領域情報がNV−RAM111に格納されているか否かにより当該アプリプログラムが動作アプリプログラムか否かを判断する。
そして、描画メモリ領域を確保しようとするアプリプログラムが動作アプリプログラムである場合(ステップS1507:Yes)または要求容量情報が示す記憶容量が小さいアプリプログラムの領域情報が格納された場合(ステップS1511)、第2確保部404は、次に要求容量情報が示す記憶容量が小さいアプリプログラムがあるか否かを判断する(ステップS1512)。次に要求容量情報が示す記憶容量が小さいアプリプログラムがある場合(ステップS1512:Yes)、第2確保部404は、当該アプリプログラムを、次に描画メモリ領域を確保するアプリプログラムの候補に設定し(ステップS1513)、ステップS1507の処理に戻る。本実施の形態では、図14に示すテーブルに含まれるアプリプログラムにフラグをたてることにより、次に描画メモリ領域を確保する候補を設定する。なお、次に要求容量情報が示す記憶容量が小さいアプリプログラムがない場合(ステップS1512:No)、アプリプログラムの描画メモリ領域を確保する処理は終了する。
一方、描画メモリ領域を確保しようとするアプリプログラムが動作アプリプログラムでない場合(ステップS1507:No)、第2確保部404は、残りの記憶容量で当該アプリプログラムの描画メモリ領域を確保できるか否かを判断する(ステップS1508)。本実施の形態では、NV−RAM111に格納された空き容量情報が示す記憶容量と、図14に示すフラグが立てられたアプリプログラムの要求容量情報が示す記憶容量と、を比較することにより、当該アプリプログラムの描画メモリ領域を確保できるか否かを判断する。
そして、残りの記憶容量で、描画メモリ領域を確保しようとするアプリプログラムの描画メモリ領域を確保できないと判断された場合(ステップS1508:No)、描画メモリ領域を確保する処理は終了する。一方、残りの記憶容量で、描画メモリ領域を確保しようとするアプリプログラムの描画メモリ領域を確保できると判断された場合(ステップS1508:Yes)、第2確保部404は、当該アプリプログラムの描画メモリ領域を確保する(ステップS1509)。そして、第2確保部404、ステップS1504と同様にしてNV−RAM111に格納された空き容量情報を更新する(ステップS1510)。
次に、図16を用いて、アプリプログラムの切替時における描画メモリ領域の確保処理について説明する。なお、ステップS1601〜ステップS1605に示す処理は、第1の実施の形態と同様である。また、ステップS1606〜ステップS1613に示す処理は、図15に示すステップS1506〜ステップS1513に示す処理と同様である。図16は、アプリ切替時における描画メモリ領域の確保処理の手順を示すフローチャートである。
図17は、本実施の形態にかかるRAMの使用状態を表現するメモリマップの一例を示す説明図である。図17(a)に示すように、本実施の形態にかかるRAM110が有するメモリ領域は、アプリプログラムがN個存在する場合に、各アプリプログラム1〜Nのワーク領域1701と、アプリプログラム1〜Nにより処理されたビデオデータを展開する描画メモリ領域1702と、に大別される。複合機101が全てのアプリプログラム1〜Nの要求容量情報が示す記憶容量を確保できるRAM110を搭載している場合には、図17(a)に示すように、全てのアプリプログラム1〜Nの描画メモリ領域1702を確保する。
しかし、第1確保部403および第2確保部404は、RAM110の記憶容量が少ない場合、図17(b)に示すように、複合機101の起動に伴い優先的に動作するアプリプログラム1の描画メモリ領域1703、および要求容量情報が示す記憶容量が小さいアプリプログラムN〜N−1の描画メモリ領域1704を確保する。
また、図17(c)に示すように、動作アプリプログラムがアプリプログラム1からアプリプログラム2に切り替わった場合、第1確保部403は、アプリプログラム1の描画メモリ領域1703を開放し、アプリプログラム2の描画メモリ領域1705およびアプリプログラムN−2の描画メモリ領域1706を確保する。そのため、アプリプログラムNおよびアプリプログラムN−1の描画メモリ領域1704を開放する必要がなくなる。
このように、本実施の形態にかかる複合機101によれば、RAM110の記憶容量が少ない場合でも、動作アプリプログラムに対して十分な記憶容量の描画メモリ領域を確保することができ、かつ可能な限り多くのアプリプログラムに十分な記憶容量の描画メモリ領域を確保することができるので、アプリプログラムが切り替わった場合の描画メモリ領域の入れ替えを最小限に抑えることができる。
(第4の実施の形態)
第4の実施の形態について、添付図面を参照して説明する。なお、本実施の形態にかかる複合機の機能、構成は、第3の実施の形態とほぼ同一であるため、第3の実施の形態と異なる部分のみを説明する。第3の実施の形態にかかる複合機によれば、動作アプリプログラム以外の他のアプリプログラムの描画メモリ領域を可能な限り多く確保することができるが、描画メモリ領域を確保したアプリプログラムが必ずしも使用頻度の高いアプリプログラムであるとは限らない。そのため、アプリプログラムが切り替わったときに、アプリプログラムの切り替えに時間がかかるという問題がある。
そこで、本実施の形態にかかる複合機は、動作アプリプログラム以外の他のアプリプログラムの描画メモリ領域を確保する際に、起動回数が多いアプリプログラムから順に描画メモリ領域を確保する。これにより、常に、動作する可能性が高いアプリプログラムに十分な記憶容量の描画メモリ領域を確保することができる。そのため、アプリプログラムの切り替えが生じたときに、切り替わるアプリプログラムの描画メモリ領域が既に確保されている可能性が高くなり、描画メモリ領域の切り替えにかかる時間を短縮することができる。
第2確保部404は、動作アプリプログラム以外の他のアプリプログラムのうち、起動回数が多いアプリプログラムから順に描画メモリ領域を確保する。図18は、起動回数が多い順にアプリプログラムを並べたテーブルを示す図である。本実施の形態では、図18に示すテーブルがNV−RAM111に予めデータとして記憶されているものとする。したがって、第2確保部404は、NV−RAM111に記憶されたテーブルに基づいて、起動回数が多いアプリプログラムから順に描画メモリ領域を確保する。
また、第2確保部404は、動作アプリプログラムが切り替わるたびに、図18に示すテーブルに含まれる当該アプリプログラムの起動回数をインクリメントする。さらに、第2確保部404は、起動回数のインクリメントによりアプリプログラム間の順位に変動が生じた場合、アプリプログラムの順位の並び替えを行うことにより、図18に示すテーブルを更新する。
まず、図19を用いて、複合機101の起動時における描画メモリ領域の確保処理について説明する。なお、ステップS1901〜ステップS1905、およびステップS1907〜ステップS1911に示す処理は、第3の実施の形態と同様である。図19は、複合機の起動時における描画メモリ領域の確保処理の手順を示すフローチャートである。
第2確保部404は、複合機101の起動に伴い優先的に動作するアプリプログラムの領域情報がNV−RAM111に格納されると、複合機101の起動に伴い優先的に動作するアプリプログラム以外の他のアプリプログラムのうち、起動回数が多いアプリプログラムから順に描画メモリ領域を確保する処理を開始する(ステップS1906)。
また、第2確保部404は、残りの記憶容量で、描画メモリ領域を確保しようとするアプリプログラムの描画メモリ領域を確保できないと判断された場合(ステップS1908:No)、当該アプリプログラムの次に起動回数が多いアプリプログラムが存在するか否かを判断する(ステップS1912)。本実施の形態では、図18に示すテーブルにおける各アプリプログラムの順位に基づいて、次に起動回数が多いアプリプログラムが存在するか否かを判断する。そして、最下位のアプリプログラムの場合(ステップS1912:No)、描画メモリ領域の確保処理を終了する。
一方、次に起動回数が多いアプリプログラムが存在すると判断された場合(ステップS1912:Yes)、次に描画メモリ領域を確保しようとするアプリプログラムが動作アプリプログラムである場合(ステップS1907:Yes)、または起動回数の多いアプリプログラムの領域情報がNV−RAM111に格納された場合(ステップS1911)、第2確保部404は、次に起動回数が多いアプリプログラムを、描画メモリ領域を確保するアプリプログラムの候補に設定し(ステップS1913)、ステップS1907の処理に戻る。
次に、図20を用いて、アプリプログラムの切替時における描画メモリ領域の確保処理について説明する。なお、ステップS2001〜ステップS2005に示す処理は、第3の実施の形態と同様である。ステップS2006〜ステップS2013に示す処理は、図19に示すステップS1906〜ステップS1913に示す処理と同様である。図20は、アプリ切替時におけるメモリ領域の確保処理の手順の示すフローチャートである。
図21は、本実施の形態にかかるRAMの使用状態を表現するメモリマップの一例を示す説明図である。図21(a)に示すように、本実施の形態にかかるRAM110が有するメモリ領域は、アプリプログラムがN個存在する場合に、各アプリプログラム1〜Nのワーク領域2101と、アプリプログラム1〜Nにより処理されたビデオデータを展開する描画メモリ領域2102と、に大別される。複合機101が全てのアプリプログラム1〜Nが要求する描画メモリ領域を確保できるRAM110を搭載している場合には、図21(a)に示すように、全てのアプリプログラム1〜Nの描画メモリ領域2102を確保する。
しかし、第1確保部403および第2確保部404は、RAM110の記憶容量が少ない場合、図21(b)に示すように、複合機101の起動に伴い優先的に動作するアプリプログラム1の描画メモリ領域2103、および起動回数がアプリプログラム1に次いで多いアプリプログラム2およびアプリプログラム3の描画メモリ領域2104を確保する。
また、図21(c)に示すように、動作アプリプログラムがアプリプログラム1からアプリプログラムNに切り替わった場合、第1確保部403および第2確保部404は、アプリプログラム2およびアプリプログラム3の描画メモリ領域2104を開放し、アプリプログラムNの描画メモリ領域2105およびアプリプログラム1の描画メモリ領域2103を確保する。そのため、使用頻度が高いアプリプログラム1の描画メモリ領域2103を開放する必要がなくなる。
このように、本実施の形態にかかる複合機101によれば、RAM110の記憶容量が少ない場合でも、動作アプリプログラムに対して十分な記憶容量の描画メモリ領域を確保することができ、かつ使用頻度が高いアプリプログラムに対しても十分な記憶容量の描画メモリ領域を確保することができるので、アプリプログラムが切り替わった場合の描画メモリ領域の入れ替えを最小限に抑えることができる。
(第5の実施の形態)
第5の実施の形態について、添付図面を参照して説明する。なお、本実施の形態にかかる複合機の機能、構成は、第3〜4の実施の形態とほぼ同一であるため、第3〜4の実施の形態と異なる部分のみを説明する。第3〜4の実施の形態にかかる複合機によれば、動作アプリプログラム以外の他のアプリプログラムの描画メモリ領域を可能な限り多く確保または使用頻度の高いアプリプログラムの描画メモリ領域を確保することができる。しかし、描画メモリ領域を確保したアプリプログラムが動作アプリプログラムと同時に描画メモリ領域を確保することが好ましいアプリプログラムであるとは限らない。
そこで、本実施の形態にかかる複合機は、動作アプリプログラムと同時に描画メモリ領域を確保することが好ましいアプリプログラムの描画メモリ領域を確保する。これにより、描画メモリ領域を確保することができたアプリプログラム同士は並行して同時に動作することが可能となり、かつ各アプリプログラムに十分な記憶容量の描画メモリ領域を確保することができるため、描画処理に悪影響を及ぼすことを防止できる。
第2確保部404は、動作アプリプログラム以外の他のアプリプログラムのうち、描画メモリ領域を既に確保したアプリプログラムと同時に動作することが好ましいアプリプログラムの描画メモリ領域を確保する。図22は、同時に動作することが好ましいアプリプログラムのグループの一例を示す図である。本実施の形態では、図22に示すテーブルがNV−RAM111に予めデータとして記憶されているものとする。したがって、第2確保部404は、NV−RAM111に記憶されたテーブルに基づいて、動作アプリプログラムと同時に動作することが好ましいアプリプログラムの描画メモリ領域を確保する。
なお、図22に示すテーブルにおいては、グループ間においてアプリプログラムが重複していないが、グループ間においてアプリプログラムが重複していてもよい。その場合、予めグループ間に優先順位を定めておくものとする。そして、動作アプリプログラムが複数のグループに属している場合、優先順位が高いグループに従って、動作アプリプログラム以外の他のアプリプログラムの描画メモリ領域の確保処理を行うものとする。
まず、図23を用いて、複合機101の起動時における描画メモリ領域の確保処理について説明する。なお、ステップS2301〜ステップS2305、およびステップS2309〜ステップS2313に示す処理は、第3〜4の実施の形態と同様である。図23は、複合機の起動時における描画メモリ領域の確保処理の手順を示すフローチャートである。
第2確保部404は、複合機101の起動に伴い優先的に動作するアプリプログラムの領域情報がNV−RAM111に格納されると、複合機101の起動に伴い優先的に動作するアプリプログラムと同時に動作することが好ましいアプリプログラムがあるか否かをチェックする(ステップS2306)。そして、複合機101の起動に伴い優先的に動作するアプリプログラムと同時に動作することが好ましいアプリプログラムがない場合(ステップS2307:No)、描画メモリ領域の確保処理を終了する。
一方、複合機101の起動に伴い優先的に動作するアプリプログラムと同時に動作することが好ましいアプリプログラムがある場合(ステップS2307:Yes)、第2確保部404は、当該アプリプログラムを候補に設定し(ステップS2308)、候補に設定されたアプリプログラムの描画メモリ領域を、残りの記憶容量で確保することができるか否かを判断する(ステップS2309)。
また、複合機101の起動に伴い優先的に動作するアプリプログラムが属するグループに未だ描画メモリ領域が確保されていないアプリプログラムが存在する場合(ステップS2313:Yes)、第2確保部404は、未だ描画メモリ領域が確保されていない当該アプリプログラムを、描画メモリ領域が確保可能か否かを判断する候補に設定し(ステップS2314)、ステップS2309の処理に戻る。
次に、図24を用いて、アプリプログラムの切替時における描画メモリ領域の確保処理について説明する。なお、ステップS2401〜ステップS2405に示す処理は、第3〜4の実施の形態と同様である。ステップS2406〜ステップS2414に示す処理は、図23に示すステップS2306〜ステップS2314に示す処理と同様である。図24は、アプリ切替時における描画メモリ領域の確保処理の手順を示すフローチャートである。
図25は、本実施の形態にかかるRAMの使用状態を表現するメモリマップの一例を示す説明図である。図25(a)に示すように、本実施の形態にかかるRAM110が有するメモリ領域は、アプリプログラムがN個存在する場合に、各アプリプログラム1〜Nのワーク領域2501と、アプリプログラム1〜Nにより処理されたビデオデータを展開する描画メモリ領域2502と、に大別される。複合機101が全てのアプリプログラム1〜Nが要求する描画メモリ領域を確保できるRAM110を搭載している場合には、図25(a)に示すように、全てのアプリプログラム1〜Nの描画メモリ領域2502を確保する。
しかし、第1確保部403および第2確保部404は、RAM110の記憶容量が少ない場合、図25(b)に示すように、複合機101の起動に伴い優先的に動作するアプリプログラム1の描画メモリ領域2503、およびアプリプログラム1と同じグループに属するアプリプログラム5およびアプリプログラム6の描画メモリ領域2504を確保する。
また、図25(c)に示すように、動作アプリプログラムがアプリプログラム1からアプリプログラム2に切り替わった場合、第1確保部403および第2確保部404は、アプリプログラム5およびアプリプログラム6の描画メモリ領域2504を開放する。そして、第1確保部403および第2確保部404は、切り替え後のアプリプログラムであるアプリプログラム2の描画メモリ領域2505、およびアプリプログラム2と同じグループに属するアプリプログラム3の描画メモリ領域2506を確保する。
このように、本実施の形態にかかる複合機101によれば、RAM110の記憶容量が少ない場合でも、動作アプリプログラムに対して十分な記憶容量の描画メモリ領域を確保することができ、かつ動作アプリプログラムと同時に動作することが好ましいアプリプログラム(図22に示すテーブルにおいて同じグループに属するアプリプログラム)に対しても十分な記憶容量の描画メモリ領域を確保することができるので、複数のアプリプログラムによる処理を並行して実行することができる。