(57)【要約】【課題】  画像形成装置において、ページ記述言語をデータ変換することによって生成される中間コード（ディスプレイリスト）を記憶するメモリ領域をあらかじめ確保する際に最適な確保量を決定すること。【解決手段】  本発明の画像形成装置では、ディスプレイリストの生成時にディスプレイリストのログを作成し、毎回のディスプレイリスト生成に必要なメモリ領域サイズのデータを記録し、再起動時には前記ログから必要とされたディスプレイリストのメモリ量の平均値を求め、該平均値をディスプレイリスト用のメモリ領域の最適値として確保する方法により課題を解決した。【選択図】図２
2008284742.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で書かれた印刷データを受信して記憶するプリントデータ受信記憶部と、
前記ページ記述言語を解析するページ記述言語解析部と、
前記ページ記述言語解析部での解析に基づいて中間コードを生成する中間コード生成部と、
前記中間コードをレンダリングする画像処理部と、
前記中間コードのサイズを記録するログを作成し、該ログに基づいて前記中間コードを記憶するための中間コードメモリ領域の大きさを決定して確保する中間コードログ管理部と、を有する
ことを特徴とする画像形成装置。
【請求項２】
請求項１の画像形成装置であって、
前記中間コードのログを不揮発性メモリに記憶する中間コードログ記憶部を有し、
前記中間コードログ管理部は、前記中間コードログ記憶部が記憶する前記中間コードのログに基づいて、前記中間コードメモリ領域の大きさを決定する
ことを特徴とする画像形成装置。
【請求項３】
請求項１の画像形成装置であって、
前記決定した中間コードメモリ領域の大きさを不揮発性メモリに記憶する中間コードログ記憶部を有し、
前記中間コードログ管理部は、前記中間コードログ記憶部が記憶する中間コードメモリ領域の大きさに基づいて、該中間コードメモリ領域の大きさを決定する
ことを特徴とする画像形成装置。
【請求項４】
請求項２または３の画像形成装置であって、
前記中間コードログ管理部は、起動時、再起動時、ジョブ終了時の一又は自由な組み合わせの時に前記中間コードメモリ領域の大きさを決定して確保する
ことを特徴とする画像形成装置。
【請求項５】
請求項１から４のいずれかの画像形成装置であって、
前記中間コードログ管理部は、前記中間コードのサイズの平均値を求めて、該平均値を前記中間コードメモリ領域の大きさと決定する
ことを特徴とする画像形成装置。
【請求項６】
請求項１から５のいずれかの画像形成装置であって、
前記中間コードログ管理部は、前記決定した中間コードメモリ領域の大きさと確保可能なメモリ領域の大きさとを比較して、そのうちの小さい一方を選択して前記中間コードメモリ領域の大きさと決定する
ことを特徴とする画像形成装置。
【請求項７】
請求項１から６のいずれかの画像形成装置であって、
前記中間コードログ管理部は、前記決定した中間コードメモリ領域の大きさを二進数化した値の最上位ビットを除く下位ビットのいずれかについて切捨て又は切上げした値を中間コードメモリ領域として確保する
ことを特徴とする画像形成装置。
【請求項８】
請求項１から７のいずれかの画像形成装置であって、
前記中間コードがディスプレイリストである
ことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
画像形成装置において、中間コード記憶メモリ領域の最適値を決定する際に、処理を行った印刷データの内容に基づき決定することを可能とする技術に関する。
【背景技術】
【０００２】
画像形成装置において印刷を行う際には、ページ記述言語（ＰＤＬ；Page Description Language）で記述してある印刷データを解析してディスプレイリストと呼ばれる描画の要素に分解した中間コードを生成する。その生成されるディスプレイリストをメモリ空間にどのように配置してゆくかについての技術的な課題がある。
【０００３】
従来技術として、使用色に応じて各メモリの割り当てサイズを動的に変更する方法がある（特許文献１参照）。この方法では、インプットメモリ（受信したＰＤＬを記憶するバッファ）、描画データ処理用ワークメモリ（中間コードメモリ領域に相当）、フレームメモリ（ラスタライズしたバンド画像を記憶するバンドバッファ）で分けて、もしカラー４プレーンのフレームメモリが必要なときは、インプットメモリの領域を減らして、フレームメモリに割り当てる。
【０００４】
逆にモノクロでフレームメモリが１プレーン分のみでよいときは、インプットメモリにその分割り当てる。
【０００５】
このようなメモリを制御する管理部を設置して、メモリ割り当てを最適化してメモリ効率を上げる。
【０００６】
しかし、この方法では、メモリ用途をカラー・モノクロの判別でそれに合った、最適なメモリ状態にデータインプット時に動的に割り当てることがはできるが、ディスプレイリスト（中間コード）作成のために必要なメモリ領域の割り当てをどうするかについて過去の受信データの処理等は考慮されていない。
【０００７】
【特許文献１】特開２００３−０８０７７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
解決しようとする問題点は、ディスプレイリスト生成のためのメモリ領域の確保量について、過去のデータを基に最適値を求めることができなかった点である。
【課題を解決するための手段】
【０００９】
本発明の画像形成装置は、ページ記述言語で書かれた印刷データを受信して記憶するプリントデータ受信記憶部と、前記ページ記述言語を解析するページ記述言語解析部と、前記ページ記述言語解析部での解析に基づいて中間コードを生成する中間コード生成部と、前記中間コードをレンダリングする画像処理部と、を有し、前記中間コードのサイズを記録するログを作成し、該ログに基づいて前記中間コードを記憶するための中間コードメモリ領域の大きさを決定して確保する中間コードログ管理部と、を有することを最も主要な特徴とする。
【発明の効果】
【００１０】
本発明の画像形成装置は、ページ記述言語で書かれた印刷データを受信して記憶するプリントデータ受信記憶部と、前記ページ記述言語を解析するページ記述言語解析部と、前記ページ記述言語解析部での解析に基づいて中間コードを生成する中間コード生成部と、前記中間コードをレンダリングする画像処理部と、を有し、前記中間コードのサイズを記録するログを作成し、該ログに基づいて前記中間コードを記憶するための中間コードメモリ領域の大きさを決定して確保する中間コードログ管理部と、を有することを最も主要な特徴とするため、ディスプレイリスト生成のためのメモリ領域の確保量を過去のデータを元に最適値を確保することが可能になった。
【発明を実施するための最良の形態】
【００１１】
画像形成装置において、ディスプレイリスト（中間コード）用のメモリ領域を確保する際にその最適値を動的に求めることが出来ないという問題点を印刷データの処理時にディスプレイリストのログを生成してそのログに基づいてメモリ領域を決定して確保することにより解決した。
【実施例１】
【００１２】
本発明の実施例としての画像形成装置について以下に説明する。最初に画像形成装置内での印刷データの処理時に必要なメモリ領域について説明を行い、続いて実施例の画像形成装置の構成及び動作のフローについて説明を行う。
【００１３】
［ディスプレイリスト用メモリ］
画像形成装置においては、受信したＰＤＬ（Page Description Language；ページ記述言語）で記載されている印刷データを描画の要素毎に分解してディスプレイリストという中間コードに変換して生成するが、その生成されるディスプレイリストを記録しておくメモリ領域が必要となる。このディスプレイリストを記憶するためのメモリ領域を、ディスプレイリストを作成する度に確保するとメモリの動的確保の回数が増え実行速度に影響する（図１（Ａ））。そういった問題を避けるために、ディスプレイリストを記憶するメモリ領域をあらかじめメモリ空間において連続したある大きさで確保しておくことが望ましい（図１（Ｂ））。
【００１４】
しかし、そのためにはその必要な領域の大きさ、つまりディスプレイリストを記憶するためのメモリサイズ（中間コードメモリ領域の大きさ）を決定する最適な手段が必要である。
【００１５】
プリンタに送られてくるデータの内容に傾向がある場合、例えば、イメージデータが多いファイルを頻繁に印刷する傾向がある場合、もしくは、テキストデータを多く印刷する傾向がある場合など、それぞれの場合でディスプレイリスト記憶に必要となるメモリサイズは異なる。つまり、イメージデータの多いファイルは、ディスプレイリスト作成で大きいメモリ領域サイズが必要であり、テキストデータの多いデータは比較的少ないメモリ領域サイズである。
【００１６】
［レンダリング用メモリ（Ｖ−ＲＡＭ；Video Random Access Memory）］
画像形成装置内では、受信した印刷データの処理時に必要なメモリ領域として上記に述べたディスプレイリスト用のメモリ領域以外に、ディスプレイリストをレンダリングした画像を格納するメモリ領域であるレンダリング用メモリ領域がある。
【００１７】
カラーでのプリントの場合は、ページを水平方向に一定間隔で分割したサイズのメモリ（バンドバッファ）上にレンダリングする。
【００１８】
しかし、動的にバンドバッファを取得すると、ディスプレイリストでメモリ空間が圧迫されて、取得できないことがあるため、予めレンダリング用のメモリ領域を確保しておく。
【００１９】
そのため、ディスプレイリストを記憶するためのメモリサイズを決定する際には、レンダリング用メモリが確保できなくなることを防ぐようにそのサイズを決定しなければならない。
【００２０】
レンダリング用メモリのサイズとしては、例えば数バンドバッファ分のサイズを割り当てる。
【００２１】
［ディスプレイリスト用メモリ領域の決定方法］
本発明実施例の画像形成装置では、受信したプリンタブルファイル（印刷データ）の内容の傾向をログとして保存しておき、その保存しておいたログから最適なメモリの確保領域を決定する方法を取る。
【００２２】
例えば、イメージデータの多いファイルが流されたときディスプレイリスト（中間データ）を保持するための領域の割合が大きくなり、それによって、レンダリングで必要となるバンドサイズのメモリ（バンドバッファ）を取得することが困難になりがちである。
【００２３】
逆にテキストの多いファイルなどディスプレイリストを保持するための領域の割合が小さい場合は、バンドバッファは容易に取得できる。
【００２４】
このように、プリンタブルファイルの内容によってメモリの最適な大きさが異なるので、ログとして過去に受信したプリンタブルデータに含まれる割合の多い描画オブジェクトを記憶しておきログを参照することによって、ディスプレイリストを保持するためのメモリ領域およびレンダリング用のメモリ領域のメモリ割り当てを自動的に変更する。
【００２５】
［構成］
図２は、本発明の実施例に係わる画像形成装置の機能ブロック図である。
【００２６】
画像形成装置は、プリントデータ受信記憶部２０１、ＰＤＬ解析部（ページ記述言語解析部）２０２、ディスプレイリスト作成部２０３（中間コード生成部）、ディスプレイリストログ管理部２０４（中間コードログ管理部）、ディスプレイリストログ記憶部２０５（中間コード記憶部）、ページレンダリング部２０６（画像処理部）からなる。
【００２７】
通常の画像形成装置に備わっている画像読取部や印刷部などは、本発明の本質には関係ないので省略した。
【００２８】
プリントデータ受信記憶部２０１は、プリンタブルデータ（印刷データ）を受信してデータをバッファリングする。
【００２９】
ＰＤＬ解析部２０２（ページ記述言語解析部）は、受信したデータをエミュレータにて命令を解析して、該当する処理に分岐する。
【００３０】
ディスプレイリスト作成部２０３（中間コード生成部）は、効率よくページレンダリング可能とするために、前記ＰＤＬ解析部２０２で解析されたデータを描画プリミティブ（描画の要素）に分割したディスプレイリスト（中間コード）を作成する。
【００３１】
ディスプレイリストログ管理部２０４（中間コードログ管理部）は、ディスプレイリストを作成する際に各要素がイメージか、パス図形か、文字であるかなどの種類を判別して、それに対応するＩＤ（識別子）をログに書き出す。各ディスプレイリストの要素のサイズ及び該ディスプレイリストがイメージである場合は、そのイメージが専有するメモリ領域のサイズをログに記録する。
【００３２】
また、ディスプレイリストログ管理部２０４は、前記ログを元に次回の起動時の際のディスプレイリスト用に確保するメモリ領域（中間コードメモリ領域）の大きさを決定し、起動時にそのメモリ領域を確保する（詳細後述）。
【００３３】
ディスプレイリストログ記憶部２０５（中間コードログ記憶部）は、前記ディスプレイリストログ管理部２０４が生成するディスプレイリストのログを記憶する。
【００３４】
ページレンダリング部２０６（画像処理部）は、前記ディスプレイリスト作成部２０３が生成したディスプレイリストをレンダリングしてビットマップ画像データを生成する。この後ビットマップ画像データは、印刷エンジン２０８に渡され用紙に描画が行われる。
【００３５】
ログファイル２０７は、ディスプレイリストログ管理部２０４によって作成されたディスプレイリストのログファイルである（詳細後述；図４、図５）。
【００３６】
［メモリ確保の流れ］
図３を用いて各機能部が使うメモリについて説明する。
【００３７】
図３に示すように、画像形成装置は最初にプリントデータ（印刷データ；ＰＤＬにて記述）を受信すると受信データのバッファリング領域を確保して、その領域にプリントデータを記憶する。
【００３８】
次にディスプレイリスト作成部は、プリントデータのＰＤＬの解釈を行って、ディスプレイリストを生成するが、その前にディスプレイリスト記憶用のメモリ領域を確保して、確保された領域にディスプレイリストを記録して行く。また、同時にレンダリング用領域も確保しておいても良い。
【００３９】
ページ分のディスプレイリストの生成が終了すると、ディスプレイリストを元にページレンダリング部２０６が描画実行のために必要なレンダリングデータの生成を行う。
【００４０】
レンダリング用の領域は、ページサイズ印刷条件などにより必要量が定まるが、ディスプレイリスト記憶用領域は、データの内容如何によってことなる。
【００４１】
［ディスプレイリスト記憶用領域の決定］
その１．ディスプレイリストの種類のログ保存時の処理
プリンタに送信したプリンタブルファイルは、プリントデータ受信記憶部２０１がプリンタブルデータを受信し、ＰＤＬ解析部２０２がプリンタブルデータを解釈する。データを解釈した後、描画プリミティブに分割して、ディスプレイリスト作成部２０３が描画プリミティブを描画するための位置や大きさなどの情報を保持するディスプレイリストを作成する。
【００４２】
このディスプレイリストを作成する段階で、そのディスプレイリストの種類をディスプレイリストログ管理部２０４が判別する。どの種類のディスプレイリストであるかを判別した後、ディスプレイリストのログ２０７の内容を更新する。
【００４３】
該ページにおけるディスプレイリストがすべて作成された後、ページレンダリング部２０６はページをレンダリングしてビットマップ画像データを生成する。
【００４４】
ディスプレイリストログ記憶部２０５で記憶しているディスプレイリストのログ２０７はシステムパワーＯＮ時にディスクから読みだされる。また、ディスクへの保存は、ジョブ処理終了後に実施する。
【００４５】
その２．ログの内容について
ディスプレイリストログ管理部２０４は、図４に示すようにディスプレイリストのログに、ディスプレイリスト及びディスプレイリストが指し示すイメージの両方の専有メモリサイズを加算する。ディスプレイリストログ記憶部２０５は、上記専有メモリサイズが加算されたディスプレイリストのログを記憶する。
【００４６】
ディスプレイリストには、ディスプレイリストのＩＤや描画先の位置座標や図形の幅、高さなどの情報が保持されている。そして、各ディスプレイリスト自体のサイズは固定である。
【００４７】
図５に示すように、イメージやビットブリットイメージを示すディスプレイリストの場合には、ディスプレイリストのイメージのアドレスで参照しているイメージデータも中間コードメモリ中に確保される必要があるので、ディスプレイリストログ管理部２０４は、そのイメージの幅・高さからソースイメージのサイズもしくはビットブリットイメージのサイズも計算してログ情報に加算する。
【００４８】
その３．メモリ割り当て
システムパワーＯＮ時にディスクにファイル保存していたログの内容、ディスプレイリストのログをディスプレイリストログ記憶部２０５がメモリにコピーする。
【００４９】
システム初期化において、図３の説明で前述したように、印刷データ受信でデータをバッファリングするメモリ領域、ディスプレイを格納するためのメモリ領域の割り当てとレンダリングしたイメージを格納するためのメモリ領域の割り当てを実施する。ここで、初期化処理において、ディスプレイリスト用メモリ以外のメモリは確保されているものとする。
【００５０】
ログを使った割り当て方法は、メモリ上にコピーしたログ内容からサイズの平均値を算出して、ディスプレイリストを記憶するためのメモリ領域サイズとする。このとき、使用可能メモリ領域を超える場合は制限する。つまり、上限は使用可能メモリサイズである。
【００５１】
メモリ割り当ての実行タイミングは、システムパワーＯＮ時（起動時及び再起動時）、ジョブ終了時である。また、ログリストのディスクへのファイル保存もジョブ終了時に実行する。
【００５２】
ログサイズの上限はページ数で指定する。例えば壱万ページ（６０Ｋバイト）を上限としても良い。
【００５３】
［フローチャート］
図６のフローチャートを用いてディスプレイリストのログを記憶する際の印刷処理フローについて説明する。
【００５４】
Ｓ３０１：  プリントデータ受信記憶部２０１は、ホストから印刷データを受信する。
【００５５】
Ｓ３０２：  ＰＤＬ解析部２０２は、前記Ｓ３０１で受信した印刷データを解釈する。
【００５６】
Ｓ３０３：  ディスプレイリスト作成部２０３は、前記Ｓ３０２で解釈して印刷データを描画プリミティブに分けてディスプレイリストとしてオブジェクト描画のための情報を記述したものを作成する。
【００５７】
Ｓ３０４：ディスプレイリスト作成において、ディスプレイリストログ管理部２０４は、必要な情報を記憶するためのメモリサイズをディスプレイリストログに加算しディスプレイリストログ記憶部２０５は、この加算処理されたディスプレイリストログをハードディスク等の不揮発性メモリに記憶する。
【００５８】
Ｓ３０５：  ディスプレイリストログ管理部２０４は、前記Ｓ３０３で作成したディスプレイリストがイメージを描画するためのディスプレイリストであるかどうかを判別する。
【００５９】
Ｓ３０６：  ディスプレイリストログ管理部２０４は、前記Ｓ３０５でイメージのディスプレイリストであるとき、ディスプレイリストが持つソースイメージ（拡大・回転などの変換前のイメージ）のサイズをイメージの幅とイメージ高さ、およびイメージのピクセルのビット深度（ＢＰＰ；Bits Per Pixel）から何バイトかを算出する。
【００６０】
Ｓ３０７：  ディスプレイリストログ管理部２０４は、前記Ｓ３０６で算出したサイズをディスプレイリストログに加算しディスプレイリストログ管理部２０４は、この加算処理されたディスプレイリストログを記憶する。
【００６１】
Ｓ３０８：  ディスプレイリストログ管理部２０４は、１ページ分のディスプレイリストが作成できたかを判別する。
【００６２】
Ｓ３０９：前記Ｓ３０８で１ページ分のディスプレイリストができたときは、
ページレンダリング部２０６はページのディスプレイリストをレンダリング処理内で解釈してビットマップイメージを作成する。
【００６３】
Ｓ３１０：  印刷エンジン２０８は、前記Ｓ３０９で作成したページを出力する。
【００６４】
以上の一連の動作によりディスプレイリストのログを記憶する。
【００６５】
次に図７を用いてシステムパワーＯＮ時におけるメモリの最適化の処理フローを示す。
【００６６】
Ｓ４０１：  画像形成装置は、自らのシステムを起動する。
【００６７】
Ｓ４０２：  画像形成装置は、ホストから送られてくるデータをバッファリングするためのメモリ領域確保、レンダリングしたビットマップデータを格納するメモリ領域の確保、フォントキャッシュやパターンキャッシュなどのその他初期化におけるメモリの確保を実行する。
【００６８】
Ｓ４０３：  ディスプレイリストログ管理部２０４は、ハードディスク（不揮発性メモリ）に保存しているディスプレイリストのログファイルを読み出し、メモリ上にコピーする。
【００６９】
Ｓ４０４：  ディスプレイリストログ管理部２０４は、前記Ｓ４０３で読み込んだログデータをスキャンして、記録しているページディスプレイリストのサイズの合計および平均を計算して平均値Ａに格納する。
【００７０】
Ｓ４０５：  ディスプレイリストログ管理部２０４は、前記Ｓ４０４で計算した結果、平均値Ａの値がその時点のシステム内使用可能メモリ領域のサイズよりも大きいかどうか判別する。
【００７１】
Ｓ４０６：  ディスプレイリストログ管理部２０４は、前記Ｓ４０５で平均値Ａの値がその時点のシステム内使用可能メモリ領域のサイズよりも大きい場合、ディスプレイリストを記憶するメモリ領域を使用可能メモリサイズで確保する。
【００７２】
Ｓ４０７：  ディスプレイリストログ管理部２０４は、前記Ｓ４０５で平均値Ａの値がその時点のシステム内使用可能メモリ領域のサイズよりも小さい場合、ディスプレイリストを記憶するメモリ領域を平均値Ａのサイズで確保する。
【００７３】
以上の一連の動作によりディスプレイリストを記憶するメモリ領域のサイズを決定して確保する。
【００７４】
［実施例の効果］
本発明実施例の画像形成装置により、以下のことが可能となった。
【００７５】
ディスプレイリストを作成する度にメモリを確保する手順を踏むことは、メモリ割り当て回数が増加し、メモリのフラグメンテーションを招く。本発明では、予めディスプレイリストを記憶する領域を最適なサイズで確保することで、上述の問題を回避できる。
【００７６】
さらに、過去に印刷したページで作成されたディスプレイリストの合計サイズを記憶しておき、それらのサイズの平均をとることで最適なディスプレイリスト記憶用のメモリサイズを確保できる。
【００７７】
［その他］
確保するメモリ領域は、平均値の値Ａそのものであっても良いし、平均値Ａの値を二進数化して、最上位ビットを除くそれ以降のビットのいずれかのビットの切捨て、切上げして求めた値としても良い。
【００７８】
確保したディスプレイリストリストのメモリ領域が足りなくなった場合は、動的に必要メモリを確保する。
【図面の簡単な説明】
【００７９】
【図１】ディスプレイリスト記憶用メモリ領域の動的確保と予約確保の図である。
【図２】本発明実施例の画像形成装置の機能ブロック図である（実施例１）。
【図３】本発明実施例の画像形成装置のメモリ空間の確保図である（実施例１）。
【図４】ディスプレイリストのログファイルの内容である（実施例１）。
【図５】イメージのディスプレイリストのデータ構造である（実施例１）。
【図６】ディスプレイリストのログを記憶する際のフローチャートである（実施例１）。
【図７】システムパワーＯＮ時のメモリの最適化処理のフローチャートである（実施例１）。
【符号の説明】
【００８０】
２０１  プリントデータ受信記憶部
２０２  ＰＤＬ解析部（ページ記述言語解析部）
２０３  ディスプレイリスト作成部（中間コード生成部）
２０４  ディスプレイリストログ管理部（中間コードログ管理部）
２０５  ディスプレイリストログ記憶部（中間コードログ記憶部）
２０６  ページレンダリング部（画像処理部）
２０７  ディスプレイリストログファイル
【図１】
2008284742.tif 000003
【図２】
2008284742.tif 000004
【図３】
2008284742.tif 000005
【図４】
2008284742.tif 000006
【図５】
2008284742.tif 000007
【図６】
2008284742.tif 000008
【図７】
2008284742.tif 000009