説明

画像形成装置、記憶領域制御方法、および記憶領域制御プログラム

【課題】フィルタ処理にかかるオーバーヘッドタイムを短縮すること。
【解決手段】印刷データのフィルタ処理機能を含む複数の機能を有する画像形成装置において、共有メモリ300は、複数の機能でそれぞれ用いられるデータを記憶する。フィルタアプリ215は、印刷データをフィルタ処理する。制御モジュール211dは、印刷データのデータ容量に基づいて、共有メモリ300のうち印刷データの記憶用に割り当てる領域を決定する。共有メモリ300の受信領域310にはフィルタ処理前の印刷データが記憶され、書き込み領域320にはフィルタ処理後の印刷データが記憶される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、印刷データのフィルタ処理機能を含む複数の機能を有する画像形成装置、同画像形成装置において複数の機能でそれぞれ用いられるデータを記憶する記憶領域を制御する記憶領域制御方法、および記憶領域制御プログラムに関する。
【背景技術】
【0002】
従来、MFP(Multifunction Printer)やラインプリンタに搭載されていない特殊なページ記述言語(たとえば、HPGL:Hewlett−Packard Graphics Languageなど)で記述された印刷データを印刷する場合、言語を解釈する前にフィルタとなるアプリケーション(以下、フィルタアプリという)を用いて、印刷データを一般的なページ記述言語(たとえばPostscriptなど)に変換した上で印刷がおこなわれている(たとえば、下記特許文献1参照)。フィルタアプリには、異なるページ記述言語への変換だけでなく、日本語を外国語に変換したり、標準語を地方の言葉に変換するなどの機能を備えるものがある。下記特許文献1には、ユーザ端末から送られた印刷データをフィルタ処理し、プリンタやFAXなどの装置に出力する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、上記の従来技術では、フィルタアプリは印刷データをある決められたバッファサイズごとに標準入力から読み込み、処理したデータをある決められたバッファサイズごとに標準出力へ書き出す。このため、印刷データ量が非常に大きい場合や、フィルタ処理の前後でデータ量が大きく増加する場合には、読み書き(コピー)の回数が増え、フィルタ処理にかかるオーバーヘッドタイムが長くなるという問題点がある。
【0004】
この発明は、上述した従来技術による問題点を解消するため、短いオーバーヘッドタイムでフィルタ処理をおこなうことができる画像形成装置、記憶領域制御方法、および記憶領域制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる画像形成装置は、印刷データのフィルタ処理機能を含む複数の機能を有する画像形成装置であって、前記複数の機能でそれぞれ用いられるデータを記憶する記憶手段と、前記印刷データをフィルタ処理するフィルタ処理手段と、前記印刷データのデータ容量に基づいて、前記記憶手段のうち前記印刷データの記憶用に割り当てる領域を決定する決定手段と、を備え、前記記憶手段には、前記決定手段によって決定された領域に前記フィルタ処理前の前記印刷データまたは前記フィルタ処理後の前記印刷データのうち少なくともいずれか一つが記憶され、他の領域には前記フィルタ処理機能以外の他の機能で用いられるデータが記憶されることを特徴とする。
【0006】
また、請求項2の発明にかかる画像形成装置は、請求項1に記載の発明において、前記決定手段は、前記フィルタ処理前の前記印刷データと前記フィルタ処理後の前記印刷データとに異なる領域を割り当て、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて前記フィルタ処理後の前記印刷データを記憶する領域の容量を変更することを特徴とする。
【0007】
また、請求項3の発明にかかる画像形成装置は、請求項2に記載の発明において、前記決定手段は、前記フィルタ処理後の前記印刷データを記憶する領域として、前記フィルタ処理後の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする。
【0008】
また、請求項4の発明にかかる画像形成装置は、請求項1に記載の発明において、前記決定手段は、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて、前記印刷データの記憶用に割り当てる領域のうち、前記フィルタ処理前の前記印刷データを記憶する領域と前記フィルタ処理後の前記印刷データを記憶する領域との比率を変更することを特徴とする。
【0009】
また、請求項5の発明にかかる画像形成装置は、請求項1〜4のいずれか一つに記載の発明において、前記フィルタ処理手段は、前記フィルタ処理後の前記印刷データの容量が前記決定手段によって割り当てられた領域の容量より大きい場合、前記フィルタ処理後の前記印刷データを分割して前記割り当てられた領域に順次記憶することを特徴とする。
【0010】
また、請求項6の発明にかかる画像形成装置は、請求項1に記載の発明において、前記決定手段は、前記フィルタ処理前の前記印刷データを記憶する領域のみを割り当て、前記印刷データのデータ容量に基づいて前記フィルタ処理前の前記印刷データを記憶する領域の容量を変更することを特徴とする。
【0011】
また、請求項7の発明にかかる画像形成装置は、請求項6に記載の発明において、前記決定手段は、前記フィルタ処理前の前記印刷データを記憶する領域として、前記フィルタ処理前の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする。
【0012】
また、請求項8の発明にかかる記憶領域制御方法は、印刷データのフィルタ処理機能を含む複数の機能を有する画像形成装置において、前記複数の機能でそれぞれ用いられるデータを記憶する記憶領域を制御する記憶領域制御方法であって、前記印刷データのデータ容量に基づいて、前記記憶領域のうち前記印刷データの記憶用に割り当てる領域を決定する決定工程と、前記決定工程で決定された領域に前記フィルタ処理前の前記印刷データまたは前記フィルタ処理後の前記印刷データのうち少なくともいずれか一つを記憶し、他の領域には前記フィルタ処理機能以外の他の機能で用いられるデータを記憶する記憶工程と、を含むことを特徴とする。
【0013】
また、請求項9の発明にかかる記憶領域制御方法は、請求項8に記載の発明において、前記決定工程では、前記フィルタ処理前の前記印刷データと前記フィルタ処理後の前記印刷データとに異なる領域を割り当て、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて前記フィルタ処理後の前記印刷データを記憶する領域の容量を変更することを特徴とする。
【0014】
また、請求項10の発明にかかる記憶領域制御方法は、請求項9に記載の発明において、前記決定工程では、前記前記フィルタ処理後の前記印刷データを記憶する領域として、前記フィルタ処理後の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする。
【0015】
また、請求項11の発明にかかる記憶領域制御方法は、請求項8に記載の発明において、前記決定工程では、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて、前記印刷データの記憶用に割り当てる領域のうち、前記フィルタ処理前の前記印刷データを記憶する領域と前記フィルタ処理後の前記印刷データを記憶する領域との比率を変更することを特徴とする。
【0016】
また、請求項12の発明にかかる記憶領域制御方法は、請求項8〜11のいずれか一つに記載の発明において、前記記憶工程では、前記フィルタ処理後の前記印刷データの容量が前記決定工程で割り当てられた領域の容量より大きい場合、前記フィルタ処理後の前記印刷データを分割して前記割り当てられた領域に順次記憶することを特徴とする。
【0017】
また、請求項13の発明にかかる記憶領域制御方法は、請求項8に記載の発明において、前記決定工程では、前記フィルタ処理前の前記印刷データを記憶する領域のみを割り当て、前記印刷データのデータ容量に基づいて前記フィルタ処理前の前記印刷データを記憶する領域の容量を変更することを特徴とする。
【0018】
また、請求項14の発明にかかる記憶領域制御方法は、請求項13に記載の発明において、前記決定工程では、前記フィルタ処理前の前記印刷データを記憶する領域として、前記フィルタ処理前の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする。
【0019】
また、請求項15の発明にかかる記憶領域制御プログラムは、請求項8〜14のいずれか一つに記載の記憶領域制御方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【0020】
以上説明したように、本発明にかかる画像形成装置、記憶領域制御方法、および記憶領域制御プログラムによれば、短いオーバーヘッドタイムでフィルタ処理をおこなうことができるという効果を奏する。
【図面の簡単な説明】
【0021】
【図1】実施の形態にかかるシステムの構成図である。
【図2】複合機が稼動しているときのソフトウェア構成を示すブロック図である。
【図3】複合機による共有メモリの直接読み書き制御を説明するためのブロック図である。
【図4】フィルタアプリの起動に関する処理を詳細に示すブロック図である。
【図5】複合機における印刷データの印刷処理の手順を示すフローチャートである。
【図6】書き込み領域の決定および設定処理を説明するためのブロック図である。
【図7】印刷データ内のフィルタアプリ用ヘッダ情報の一例を示す説明図である。
【図8】プリント制御アプリによる書き込み領域の設定処理を示すフローチャートである。
【図9】図8のステップS802における閾値を説明するための説明図である。
【図10】受信領域のみを設けた場合の印刷処理を説明するためのブロック図である。
【発明を実施するための形態】
【0022】
以下に添付図面を参照して、この発明に係る画像形成装置、記憶領域制御方法、および記憶領域制御プログラムの好適な実施の形態を詳細に説明する。
【0023】
(実施の形態)
図1は、実施の形態にかかるシステムの構成図である。本実施の形態にかかるシステム100は、複合機101、ユーザ端末であるPC(パーソナル・コンピュータ)102、プリンタ103,104がLAN105を介して接続されている。LAN105はルータ106を介してインターネット107に接続されており、複合機101はPSTN(public switched telephone network)/ISDN網108に接続されている。また、システム100の各装置は、他の装置とTCP/IPプロトコルにより通信をおこなう。
【0024】
また、本実施の形態では、印刷データに対する処理をおこなうためにいわゆるプリントフィルタの技術を用いる。プリントフィルタとは、一般的に、プリントサーバなどで実行されるアプリケーションであり、標準入力から印刷データを読み込み、印刷データの変換をおこなって標準出力に書き出すものである。以下、本実施の形態におけるプリントフィルタをフィルタアプリと称する。
【0025】
本実施の形態ではフィルタアプリを複合機101が実行する。より詳細には、PC102から送信された印刷データに対して複合機101のフィルタアプリによって変換処理をおこない、複合機101のプリンタアプリによって印刷をおこなう。後述するように、本実施の形態において、フィルタアプリは、標準入出力上の印刷データだけでなく、複合機101内の様々なアプリケーションが使用する共有メモリ上の印刷データに対しても変換処理をおこなうことができる。
【0026】
図2は、複合機が稼動しているときのソフトウェア構成を示すブロック図である。図2に示すように、複合機101は、白黒ラインプリンタ(B&W LP)231と、カラーラインプリンタ(Color LP)232と、スキャナ、ファクシミリ、ハードディスク(HD)、メモリ、ネットワークインタフェースなどのハードウェアリソース233を有するとともに、プラットホーム220とアプリケーション230とから構成されるソフトウェア群210とを備えている。なお、ハードウェアリソース233には、後述する共有メモリ300が含まれる。共有メモリ300は、複合機101内の様々なアプリケーションが使用可能なメモリであり、標準入出力よりも大きな記憶容量を有している。
【0027】
プラットホーム220は、アプリケーション230からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理をおこない、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)223と、汎用OS221とを備えている。
【0028】
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)222と、ECS(エンジンコントロールサービス)224と、MCS(メモリコントロールサービス)225と、OCS(オペレーションパネルコントロールサービス)226と、FCS(ファックスコントロールサービス)227と、NCS(ネットワークコントロールサービス)228とから構成される。なお、このプラットホーム220は、あらかじめ定義された関数によりアプリケーション230から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
【0029】
汎用OS221は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム220並びにアプリケーション230の各ソフトウェアをそれぞれプロセスとして並列実行する。
【0030】
SRM223のプロセスは、SCS222とともにシステムの制御およびリソースの管理をおこなうものである。SRM223のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求に従って調停をおこない、実行制御する。また、SCS222のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などをおこなう。
【0031】
ECS224のプロセスはハードウェアリソース233のエンジンの制御をおこない、MCS225のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などをおこなう。
【0032】
FCS227のプロセスは、アプリからPSTN/ISDN網108を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信をおこなうためのAPIを提供する。
【0033】
NCS228のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介をおこなう。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。また、NCS228は、本実施の形態では、後述するフィルタ設定アプリ216によるキュー名とフィルタアプリ215の設定を保持し、キュー名を含む印刷データを受信したときに制御モジュール211dにフィルタアプリ215の起動を指示する機能を有している。
【0034】
OCS226は、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御をおこなうものである。
【0035】
アプリケーション230は、ページ記述言語をサポートするプリンタ用のアプリケーションであるプリンタアプリ211と、コピー用アプリケーションであるコピーアプリ212と、ファクシミリ用アプリケーションであるファックスアプリ213と、スキャナ用アプリケーションであるスキャナアプリ214を有している。プリンタアプリ211は、PDL211a,PCL211b,PS211cおよび制御モジュール211dを含んでいる。
【0036】
また、アプリケーション230は、本実施の形態における処理をおこなうフィルタアプリ215と、NCS228に対して本実施の形態における処理をおこなうのに必要となる設定をするためのフィルタ設定アプリ216を有している。これらのアプリケーション230はいずれも複合機101の起動時に初期化部(図示せず)によりプロセスとして生成され、動作する。
【0037】
アプリケーション230の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信をおこないながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【0038】
このように、複合機101には、複数のアプリケーションおよび複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行がおこなわれる。そして、コントロールサービスがアプリケーション230に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作をおこない、互いにプロセス間通信をおこなって協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。そして、複合機101には、サードベンダーなどの第三者がコントロールサービス層の上のアプリケーション層に新規なアプリケーションを開発して搭載することが可能となっている。フィルタアプリ215およびフィルタ設定アプリ216はそのようなアプリケーションの1つである。
【0039】
ここで、フィルタアプリ215による変換処理がおこなわれた後の印刷データは、変換処理前の印刷データと比較してデータサイズが大きく変化する場合がある。たとえば、印刷データのページ記述言語をHPGLからPost Scriptに変換をする場合、変換処理後のデータサイズは変換処理前に比べて50倍も大きくなる。このように印刷データの容量が大きくなると、変換処理後の印刷データを書き込む領域の容量が固定されている場合、印刷データを分割して処理するため、オーバーヘッドタイムが長くなってしまう。
【0040】
そこで、複合機101では、フィルタアプリ215による変換処理前後の印刷データを格納する領域を共有メモリ上に設けている。より詳細には、変換処理前の印刷データを格納する領域を「受信領域」、変換処理後の印刷データを格納する領域を「書き込み領域」という。複合機101では、データサイズやフィルタ変換倍率などを含むヘッダ情報を印刷データに付加し、制御モジュール211dによって、フィルタアプリ215の変換性能に合わせて共有メモリ上の書き込み領域のサイズを決定する。これにより、フィルタアプリ215による変換処理を高速化することができる。また、印刷データが小さい場合は、フィルタアプリ用に確保する共有メモリの容量を縮小することによって、他のアプリケーションなどが使用できる領域が増える。このため、共有メモリを有効に活用することができる。なお、本実施の形態においては、制御モジュール211dがフィルタアプリ215に対して共有メモリのような広範囲のメモリ領域を割り当てられる環境にあるものとする。
【0041】
図3は、複合機による共有メモリの直接読み書き制御を説明するためのブロック図である。図3に示すように、まず、フィルタ設定アプリ216がNCS228にキュー名とフィルタアプリの設定をおこなうと(ステップS301)、制御モジュール211dは印刷データが保存される共有メモリ300上の受信領域をNCS228に設定する(ステップS302)。つぎに、キュー名とともに印刷データがPC102からNCS228に送られると(ステップS303)、NCS228は制御モジュール211dによって設定された共有メモリ300上の受信領域310に印刷データを保存する(ステップS304)。
【0042】
また、制御モジュール211dはフィルタアプリ215を起動させて、フィルタアプリ215に印刷データが保存された受信領域310のアドレス(受信先)と、変換後の印刷データを書き込む書き込み領域320のアドレス(書き込み先)をフィルタアプリ215に設定する(ステップS305)。フィルタアプリ215は、共有メモリ300上の受信領域310から印刷データを読み込み(ステップS306)、変換処理後、制御モジュール211dによって設定された書き込み領域320に変換後の印刷データを書き込む(ステップS307)。制御モジュール211dは、変換後の印刷データの書き込み先をPDL211aに設定し(ステップS308)、PDL211aは、書き込み先から変換後の印刷データを読み出して解釈をおこなう(ステップS309)。
【0043】
図4は、フィルタアプリの起動に関する処理を詳細に示すブロック図である。図4に示すように、まずフィルタ設定アプリ216がNCS228に対してキュー名481とそれに対応するフィルタアプリ(の識別情報、たとえばファイル名)482とを設定する(ステップS401)。NCS228は、キュー名481を含む印刷データをPC102から受信すると(ステップS402)、制御モジュール211dにフィルタアプリ215を起動するよう指示する(ステップS403)。制御モジュール211dは、NCS228の指示に従ってフィルタアプリ215を起動する(ステップS404)。
【0044】
図5は、複合機における印刷データの印刷処理の手順を示すフローチャート図である。複合機101は、電源が投入されるまで待機する(ステップS501:Noのループ)。電源が投入されると(ステップS501:Yes)、NCS228、プリンタアプリ211、フィルタ設定アプリ216、フィルタアプリ215を含む各種コントロールサービスおよび各種アプリケーション230が起動する(ステップS502)。
【0045】
つぎに、フィルタ設定アプリ216は、キュー名と、そのキュー名に対応するフィルタアプリ215をNCS228に設定する。また、制御モジュール211dは、印刷データを保存する共有メモリ300上の受信領域310をNCS228に設定する(ステップS503)。なお、この動作は起動時に一度だけおこなえばよい。
【0046】
複合機101は、PC102から印刷指示があるまで待機する(ステップS504:Noのループ)。PC102から印刷指示があると(ステップS504:Yes)、NCS228は、PC102からの印刷データをTCP/IP経由で受信して、ステップS503で設定された共有メモリ300の受信領域310に保存する(ステップS505)。ここで、印刷データは、たとえばPostscriptやESC/Page、RPCSなどのページ記述言語で記述されたデータである。
【0047】
NCS228は、フィルタ設定アプリ216によって設定されたキュー名をチェックして(ステップS506)、制御モジュール211dにそのキュー名に対応するフィルタアプリ215の起動を指示し、制御モジュール211dは、その指示に従ってフィルタアプリを起動する(ステップS507)。そして、制御モジュール211dは、変換処理後の印刷データを記録する共有メモリ300上の書き込み領域320を決定する(ステップS508)。この書き込み領域320の決定処理については、図6〜図9を用いて詳細に説明する。
【0048】
つづいて、制御モジュール211dは、印刷データが記録されている受信領域310のアドレス(受信先)と、変換後の印刷データを保存する書き込み領域320のアドレス(書き込み先)を標準入力に入力する(ステップS509)。フィルタアプリ215は、標準入力に入力された受信領域310のアドレスを参照して、受信領域310から印刷データを読み込んで(ステップS510)、印刷データに対して変換処理をおこなう(ステップS511)。この変換処理は、たとえばページ記述言語の変換、印刷データの中の文書における日本語から外国語への翻訳、標準語から地方の言葉への変換などである。
【0049】
つぎに、フィルタアプリ215は、標準入力に入力された書き込み領域320のアドレスを参照して、変換処理後の印刷データを書き込み領域320に書き込む(ステップS512)。制御モジュール211dは、変換処理後の印刷データが記録された書き込み領域320のアドレス(書き込み先)をPDL211aに渡す(ステップS513)。PDL211aは、書き込み領域320を参照して印刷データの解釈をおこない、印刷紙などに印刷をおこなって(ステップS514)、本フローチャートによる処理を終了する。
【0050】
つぎに、図6〜図9を用いて、書き込み領域320として使用する共有メモリ300上の領域を決定する処理(図5のステップS508)について、詳細に説明する。図6は、書き込み領域の決定および設定処理を説明するためのブロック図である。制御モジュール211dは、NCS228によって共有メモリ300上の受信領域310に印刷データが記録されると(ステップS601)、印刷データの先頭に埋め込まれたフィルタアプリ用ヘッダ情報を読み込む(ステップS602)。
【0051】
制御モジュール211dは、その情報(印刷データのサイズや変換後のサイズ変化など)から共有メモリ300の書き込み領域320のサイズを決定し、受信領域310のアドレス(受信先)と書き込み領域320のアドレス(書き込み先)をフィルタアプリ215に渡す(ステップS603)。そして、フィルタアプリ215は、受信領域310から印刷データを読み込み(ステップS604)、変換処理をおこなった後、変換処理後の印刷データを書き込み領域320に書き込む(ステップS605)。
【0052】
図7は、印刷データ内のフィルタアプリ用ヘッダ情報の一例を示す説明図である。印刷データ700には、フィルタアプリ用ヘッダ情報701および印刷用情報702が含まれている。フィルタアプリ用ヘッダ情報701には、たとえば、印刷するデータのデータサイズ情報(図示の例では1792バイト)やフィルタ変換倍率(図示の例では1.4)などが含まれている。また、印刷用情報702には、印刷処理時に用いる各種のコマンドなどが含まれている。
【0053】
図8は、プリント制御アプリによる書き込み領域の設定処理を示すフローチャートである。制御モジュール211dは、図5のステップS505で共有メモリ300の受信領域310に保存された印刷データから、その先頭に埋め込まれたフィルタアプリ用ヘッダ情報(図7参照)を読み出す(ステップS801)。そして、フィルタアプリ用ヘッダ情報に基づいて印刷データのサイズとフィルタ変換倍率との積(印刷データサイズ×フィルタ変換倍率)が所定の閾値(たとえば100バイト)より大きいか否かを判断する(ステップS802)。
【0054】
図9は、図8のステップS802における閾値を説明するための説明図である。閾値は、書き込み領域320として確保する領域の初期値であり、共有メモリ300上の書き込み可能領域900のサイズ(図示の例では32バイト〜4096バイト)内の任意の値である。
【0055】
図8の説明に戻り、印刷データサイズ×フィルタ変換倍率が閾値より大きい場合(ステップS802:Yes)、制御モジュール211dは、書き込み領域320を大きくして(ステップS803)、印刷データサイズ×フィルタ変換倍率分の書き込み領域320(たとえば、印刷データサイズが1792バイト、フィルタ変換倍率が1.4倍の場合、1792×1.4=2506バイト)を確保する。一方、印刷データサイズ×フィルタ変換倍率が閾値より大きくない場合(ステップS802:No)、制御モジュール211dは、書き込み領域320を小さくして(ステップS804)、印刷データサイズ×フィルタ変換倍率分の書き込み領域320(たとえば、印刷データサイズが150バイト、フィルタ変換倍率が0.5倍の場合、150×0.5=75バイト)を確保する。
【0056】
そして、制御モジュール211dは、印刷データが記録されている受信領域310のアドレス(受信先)および変換処理後の印刷データを保存する書き込み領域320のアドレス(書き込み先)を標準入力に入力して(ステップS805)、本フローチャートによる処理を終了する。なお、ステップS805の処理は図5のステップS509の処理である。この後は、図5に示す手順に従って印刷処理がおこなわれる。
【0057】
このように、実施の形態にかかる複合機101は、フィルタアプリ用ヘッダ情報から変換後の印刷データのサイズを計算し、これに合わせて書き込み領域320の容量を変更する。具体的には、印刷データのサイズが大きくなる場合には、一度で書き込むことができるように書き込み領域320のサイズを大きくする。これにより、フィルタアプリ215の変換処理を高速化することができる。また、印刷データの容量が小さくなる場合には、フィルタアプリ用に確保する領域を縮小する。これにより、他のアプリケーションで使用する共有メモリ300上の領域を増やすことができ、共有メモリ300を有効に活用することができる。
【0058】
なお、上述した実施の形態では、書き込み領域320のサイズを変更したが、受信領域310のサイズについても、印刷データのヘッダ情報を用いて変更することができる。たとえば、受信領域310の容量がある閾値(たとえば100バイト)で固定されている場合、印刷データが閾値よりも大きい場合は分割して受信することになり、繰り返し処理によるオーバヘッドタイムが生じる。このため、受信領域310についてもフィルタアプリ用ヘッダ情報を用いてサイズを変更することにより、繰り返し処理によるオーバヘッドタイムをなくすことができる。
【0059】
より詳細には、所定サイズの領域を初期値として受信領域310を確保しておく。PC102から送信されてきた印刷データが初期値よりも大きい場合、印刷データを分割し、初期値分の印刷データを受信する。受信した印刷データにはヘッダ情報が含まれており、印刷データ全体のデータサイズを知ることができる。この情報から残りの印刷データをすべて受信できるように受信領域310のサイズを拡張し、残りの印刷データを受信する。
【0060】
たとえば、受信領域310の初期値が128バイト、印刷データのサイズが512バイトである場合、まず印刷データを先頭から128バイト分受信して受信領域310に格納する。受信した情報に含まれるヘッダ情報から残りの印刷データのサイズ(512−128=384バイト)を算出し、受信領域310を384バイトに拡張してから残りの印刷データを受信する。
【0061】
また、フィルタの変換倍率が高い場合(たとえば50倍など)は、書き込み領域320が大きく必要である。しかし、共有メモリ300も有限であるため書き込み領域320サイズも制限される(たとえば、図9に示した例では、最大で4096バイトである)。そこで、フィルタの変換倍率に合わせて受信領域310を縮小して、その分を書き込み領域320として使用することにより、効率よくフィルタ変換処理をおこなうことができる。
【0062】
たとえば、受信領域310および書き込み領域320が、それぞれ最大4096バイトまで使用できるとすれば、合計で8192バイト使用することができる。フィルタの変換倍率が50倍の場合、受信領域310のサイズを書き込み領域320の50分の1とし、受信領域310は160バイト、書き込み領域320は8032バイトとする。これにより、制限領域内で効率よくフィルタ変換処理をおこなうことができる。
【0063】
さらに、共有メモリ300に書き込み領域320を設けず、受信領域310のみを設けるようにしてもよい。図10は、受信領域のみを設けた場合の印刷処理を説明するためのブロック図である。図10に示すように、まず、フィルタ設定アプリ216がNCS228にキュー名とフィルタアプリの設定をおこなうと(ステップS1001)、制御モジュール211dは、印刷データが保存される共有メモリ300上の受信領域310(受信先)をNCS228に設定する(ステップS1002)。つぎに、キュー名とともに印刷データがPC102からNCS228に送られると(ステップS1003)、NCS228は制御モジュール211dによって設定された共有メモリ300上の受信領域310に印刷データを保存する(ステップS1004)。
【0064】
また、制御モジュール211dはフィルタアプリ215を起動させて、標準入力を用いて、フィルタアプリ215に共有メモリ300上の受信領域310(受信先)を設定する(ステップS1005)。フィルタアプリ215は、共有メモリ300上の受信領域310から印刷データを読み込み(ステップS1006)、変換処理後、標準出力に対して変換後の印刷データを出力する(ステップS1007)。制御モジュール211dは、変換後の印刷データをPDL211aに送信し(ステップS1008)、PDL211aによって変換後の印刷データの解釈をおこなう。
【0065】
このような構成によれば、フィルタアプリ215による印刷データの読み込み時には標準入力を使用せず、共有メモリ上の受信領域310から読み出すため、繰り返し処理が発生せず、高速に印刷データを読み込むことができる。また、フィルタアプリ215による変換処理後の処理速度は、上述した実施の形態と比較して遅くなるが、書き込み領域320を使用しない分、フィルタアプリ215に対して確保するメモリを縮小することができる。このため、他のアプリケーションなどが使用できる領域が増え、メモリを有効に活用することができる。
【0066】
なお、本実施の形態で説明した記憶領域制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0067】
以上説明したように、本発明はフィルタ処理をおこなう画像形成装置に有効であり、特に、画像データの容量が大きく変化するフィルタ処理をおこなう画像形成装置や容量が大きい画像データを取り扱う画像形成装置に適している。
【符号の説明】
【0068】
100 システム
101 複合機
102 PC
103,104 プリンタ
105 LAN
106 ルータ
107 インターネット
108 PSTN/ISDN網
211 プリンタアプリ
211a PDL
211d 制御モジュール
215 フィルタアプリ
216 フィルタ設定アプリ
228 NCS
300 共有メモリ
310 受信領域
320 書き込み領域
【先行技術文献】
【特許文献】
【0069】
【特許文献1】特開2004−254209号公報

【特許請求の範囲】
【請求項1】
印刷データのフィルタ処理機能を含む複数の機能を有する画像形成装置であって、
前記複数の機能でそれぞれ用いられるデータを記憶する記憶手段と、
前記印刷データをフィルタ処理するフィルタ処理手段と、
前記印刷データのデータ容量に基づいて、前記記憶手段のうち前記印刷データの記憶用に割り当てる領域を決定する決定手段と、を備え、
前記記憶手段には、前記決定手段によって決定された領域に前記フィルタ処理前の前記印刷データまたは前記フィルタ処理後の前記印刷データのうち少なくともいずれか一つが記憶され、他の領域には前記フィルタ処理機能以外の他の機能で用いられるデータが記憶されることを特徴とする画像形成装置。
【請求項2】
前記決定手段は、前記フィルタ処理前の前記印刷データと前記フィルタ処理後の前記印刷データとに異なる領域を割り当て、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて前記フィルタ処理後の前記印刷データを記憶する領域の容量を変更することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記決定手段は、前記フィルタ処理後の前記印刷データを記憶する領域として、前記フィルタ処理後の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする請求項2に記載の画像形成装置。
【請求項4】
前記決定手段は、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて、前記印刷データの記憶用に割り当てる領域のうち、前記フィルタ処理前の前記印刷データを記憶する領域と前記フィルタ処理後の前記印刷データを記憶する領域との比率を変更することを特徴とする請求項1に記載の画像形成装置。
【請求項5】
前記フィルタ処理手段は、前記フィルタ処理後の前記印刷データの容量が前記決定手段によって割り当てられた領域の容量より大きい場合、前記フィルタ処理後の前記印刷データを分割して前記割り当てられた領域に順次記憶することを特徴とする請求項1〜4のいずれか一つに記載の画像形成装置。
【請求項6】
前記決定手段は、前記フィルタ処理前の前記印刷データを記憶する領域のみを割り当て、前記印刷データのデータ容量に基づいて前記フィルタ処理前の前記印刷データを記憶する領域の容量を変更することを特徴とする請求項1に記載の画像形成装置。
【請求項7】
前記決定手段は、前記フィルタ処理前の前記印刷データを記憶する領域として、前記フィルタ処理前の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする請求項6に記載の画像形成装置。
【請求項8】
印刷データのフィルタ処理機能を含む複数の機能を有する画像形成装置において、前記複数の機能でそれぞれ用いられるデータを記憶する記憶領域を制御する記憶領域制御方法であって、
前記印刷データのデータ容量に基づいて、前記記憶領域のうち前記印刷データの記憶用に割り当てる領域を決定する決定工程と、
前記決定工程で決定された領域に前記フィルタ処理前の前記印刷データまたは前記フィルタ処理後の前記印刷データのうち少なくともいずれか一つを記憶し、他の領域には前記フィルタ処理機能以外の他の機能で用いられるデータを記憶する記憶工程と、
を含むことを特徴とする記憶領域制御方法。
【請求項9】
前記決定工程では、前記フィルタ処理前の前記印刷データと前記フィルタ処理後の前記印刷データとに異なる領域を割り当て、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて前記フィルタ処理後の前記印刷データを記憶する領域の容量を変更することを特徴とする請求項8に記載の記憶領域制御方法。
【請求項10】
前記決定工程では、前記フィルタ処理後の前記印刷データを記憶する領域として、前記フィルタ処理後の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする請求項9に記載の記憶領域制御方法。
【請求項11】
前記決定工程では、前記印刷データのデータ容量および前記フィルタ処理の変換倍率に基づいて、前記印刷データの記憶用に割り当てる領域のうち、前記フィルタ処理前の前記印刷データを記憶する領域と前記フィルタ処理後の前記印刷データを記憶する領域との比率を変更することを特徴とする請求項8に記載の記憶領域制御方法。
【請求項12】
前記記憶工程では、前記フィルタ処理後の前記印刷データの容量が前記決定工程で割り当てられた領域の容量より大きい場合、前記フィルタ処理後の前記印刷データを分割して前記割り当てられた領域に順次記憶することを特徴とする請求項8〜11のいずれか一つに記載の記憶領域制御方法。
【請求項13】
前記決定工程では、前記フィルタ処理前の前記印刷データを記憶する領域のみを割り当て、前記印刷データのデータ容量に基づいて前記フィルタ処理前の前記印刷データを記憶する領域の容量を変更することを特徴とする請求項8に記載の記憶領域制御方法。
【請求項14】
前記決定工程では、前記フィルタ処理前の前記印刷データを記憶する領域として、前記フィルタ処理前の前記印刷データのデータ容量以上の領域を割り当てることを特徴とする請求項13に記載の記憶領域制御方法。
【請求項15】
請求項8〜14のいずれか一つに記載の記憶領域制御方法をコンピュータに実行させることを特徴とする記憶領域制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−206251(P2010−206251A)
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願番号】特願2009−46380(P2009−46380)
【出願日】平成21年2月27日(2009.2.27)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】