説明

画像形成装置、画像形成方法、プログラムおよび記録媒体

【課題】ハードウエアからソフトウエアへのレンダリングの切り替えが発生してもオーバーヘッドを抑制し、メモリを効率的に利用したレンダリングを行う。
【解決手段】第1のタイミングのステップ401で印刷データを取得し、ステップ402で、予め設定されたサイズの中間データメモリを使用して最初のレンダリングを行い、ステップ403で、最初にレンダリングしたときの中間データメモリの消費サイズなどのメモリ情報を作成する。第2のタイミングのステップ404では、ステップ401で取得した印刷データと同じ印刷データを取得し、ステップ405では、ステップ403で作成されたメモリ情報を参照して、中間データメモリのサイズを変更し、ステップ406では、サイズが変更された中間データメモリを使用して2回目のレンダリングを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、描画処理を実行する画像形成装置、画像形成方法、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
従来、プリンタ印刷では、描画に要する時間を短縮するためハードウエアを使用してレンダリングを行っている。例えば、特許文献1は、描画コマンドから中間データを生成し、ハードウエアによるレンダリングが可能であるかを判断し、ハードウエアによるレンダリングができない場合に、ソフトウエアによるレンダリングを行い、かつ、中間データの生成によるメモリ消費量に基づいてソフトウエアによるレンダリングで使用するメモリサイズを切り替えている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、従来、プリンタコントローラでは、ハードウエアで描画できないコマンドやパラメータが入力された場合、ソフトウエアで描画するために中間データの形式をハードウエア用からソフトウエア用に変換する処理など、ハードウエアからソフトウエアへの処理の移行によるオーバーヘッドによって、ハードウエアの使用による性能向上の効果とメモリの消費効率を最大限に生かされていないといった問題があった。
【0004】
また、上記した特許文献1では、中間データの生成時点でソフトウエアレンダリングに必要なメモリ消費量を予測することは難しく、無駄なメモリの確保やメモリ不足が発生する可能性もある。
【0005】
本発明は上記した課題に鑑みてなされたもので、
本発明の目的は、ハードウエアからソフトウエアへのレンダリングの切り替えが発生してもオーバーヘッドを抑制し、メモリを効率的に利用したレンダリングを行う画像形成装置、画像形成方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【0006】
本発明は、第1のタイミングで取得した印刷データ中の複数の描画コマンドを、第1のメモリ容量の領域を含む第1のメモリを使用して中間データに変換し、前記変換した中間データに基づいてハードウエアまたはソフトウエアによる描画処理を実行する処理手段と、前記各描画コマンドが消費したメモリ消費量と、前記各描画コマンドの前記描画処理がハードウエアで実行可能か否かを示す情報を前記印刷データと対応付けて記憶する記憶手段を備え、第2のタイミングで取得した印刷データが、前記第1のタイミングで取得した印刷データと同一であるとき、前記処理手段は、前記記憶手段に記憶されている、ハードウエアで実行可能な前記各描画コマンドが消費したメモリ消費量を基に前記第1のメモリ容量を第2のメモリ容量に変更し、前記第2のタイミングで取得した印刷データ中のハードウエアで実行可能な各描画コマンドを、前記第2のメモリ容量の領域を使用して中間データに変換し、前記変換した中間データに基づいてハードウエアによる描画処理を実行することを最も主要な特徴とする。
【発明の効果】
【0007】
本発明によれば、ハードウエアレンダリングとソフトウエアレンダリングの切り替えによるオーバーヘッドが抑制され、ハードウエアレンダリングを最大限に利用しつつ、メモリを効率的に利用したレンダリングを行うことができる。
【図面の簡単な説明】
【0008】
【図1】本発明の実施例の画像形成装置の全体構成を示す。
【図2】コントローラの機能構成図を示す。
【図3】本発明のPDL処理部の機能構成図を示す。
【図4】本発明の実施例1の処理フローチャートの概略を示す。
【図5】本発明の実施例1の詳細な処理フローチャートを示す。
【図6】図5の続きの処理フローチャートを示す。
【図7】本発明のメモリ情報とPDLの処理例を示す。
【図8】本発明の実施例2の処理フローチャートを示す。
【発明を実施するための形態】
【0009】
以下、発明の実施の形態について図面により詳細に説明する。本発明は、ハードウエアレンダリングとソフトウエアレンダリングを有する画像形成装置において、印刷のためのレンダリングを行う前に、描画コマンドが消費するメモリ消費情報を保持しておき、印刷時のレンダリングの際に、保持したメモリ消費情報を利用しながらハードウエアレンダリングとソフトウエアレンダリングを切り替えることで、メモリを効率的に利用したレンダリングを行う。
【実施例1】
【0010】
図1は、本発明の実施例の画像形成装置の全体構成を示す。画像形成装置は、当該装置を制御するコントローラ100と、用紙に画像を印刷するプリンタエンジン107と、ユーザーからの入力の受け付けおよび状態を表示するパネル装置108と、コントローラ100が画像を形成する際に使用するハードウエアアクセラレータであるHWA109と、情報を記憶する記憶装置110と、ホストPC106を含んで構成される。
【0011】
コントローラ100は、ソフトウエアプログラムの命令を実行するCPU101と、コントローラ上で動作するプログラムを格納するROM102と、コントローラソフトが作成するページメモリやソフトウエアが動作するために必要なワークメモリとして利用するRAM103と、印刷条件設定などを保存する不揮発性メモリであるNVRAM104と、情報を記憶するHDD105と、ネットワーク上に接続されたホストPC106とデータのやり取りを行うネットワークI/F111と、プリンタエンジン107との間で印刷指示等を行うプリンタエンジンI/F112と、パネル装置108との入出力を行うパネルI/F113と、HWA109にアクセスするHWAI/F114と、記憶装置110との間で入出力を制御する入出力I/F115を含んで構成される。
【0012】
図2は、コントローラの機能構成図を示す。コントローラ100は、ホストPC106とデータの交換を行うネットワークI/F部111と、パネル装置108を制御するパネルI/F113と、コントローラを制御するプリンタコントロールシステム201と、印刷データを受け取り、印刷画像を作成するPDL(ページ記述言語)処理部202と、プリンタエンジン107との間で印刷指示等を行うエンジンI/F112と、描画処理をハードウエアアクセラレータ(HWA)109に指示するHWAI/F114と、記憶装置110からの入出力を制御する入出力I/F115を含んで構成される。
【0013】
図3は、PDL処理部の機能構成図を示す。PDL処理部202は、PDLの種類ごとに構文解析を行うパーサ部301と、PDLの画像形成を行う描画コア部302を備える。
【0014】
描画コア部302は、テキスト、イメージ、ベクターグラフィックスといった描画コマンドおよび色情報などの描画設定情報を受け取るためのI/Fである描画モジュールI/F303と、受け取った情報を基に、ハードウエアまたはソフトウエアの何れの描画処理部で描画できるかを判定する判定部306と、描画コマンドや描画設定情報を中間データ形式に変換し、判定結果と併せて保存する中間データ保存部304と、中間データを保存する複数のメモリからなる中間データメモリ305と、中間データまたはメモリ情報に保存されている判定結果に基づいてハードウエアまたはソフトウエアの描画処理部に切り替える切り替え部307と、中間データメモリ305に保存されている描画コマンドや描画設定情報を出力イメージデータとしてレンダリングする描画処理部(ソフト)308と、描画結果が保存されるバンドメモリ309と、中間データメモリ305に保存されている描画コマンドや描画設定情報を出力イメージデータとしてレンダリングする描画処理部(ハード)310と、メモリ情報を参照し、中間データメモリ305の配分(サイズ)を決定するメモリ配分算出部311と、描画コマンド毎に、中間データメモリ305の消費サイズ、ワークメモリ313の消費サイズ、描画処理部(ハード)310での描画の可否を示す情報を含むメモリ情報を保持するメモリ情報保持部312と、描画処理部(ソフト)308が使用するワークメモリ313を含んで構成される。
【0015】
切り替え部307は、判定部306がHWA109で描画可能であると判定した場合、HWA109が持つ描画処理部(ハード)310で描画するために、中間データメモリ305の中間データをHWAI/F114に切り替える。
【0016】
図4は、本発明のPDL処理部が実施する処理の概略を示す。ステップ401〜403は第1のタイミングで実施され、ステップ404〜406は第2のタイミングで実施される。
【0017】
第1のタイミングのステップ401において、複数の描画コマンドを含む印刷データを取得し、ステップ402では、予め設定されたサイズの中間データメモリを使用してレンダリング(最初のレンダリング)し、ステップ403では、最初にレンダリングしたときの中間データメモリの消費サイズ(メモリ消費量)などのメモリ情報を作成する。
【0018】
第2のタイミングのステップ404において、ステップ401で取得した印刷データと同じ印刷データを取得し、ステップ405では、ステップ403で作成されたメモリ情報を参照して、中間データメモリのサイズを変更し、ステップ406では、サイズが変更された中間データメモリを使用してレンダリング(2回目のレンダリング)する。
【0019】
図5、6は、本発明の実施例1の詳細な処理フローチャートを示し、図5は、中間データ保存の処理フローチャートであり、図6は、描画処理のフローチャートである。
【0020】
図7(a)は、メモリ情報を示し、(b)は図4のステップ402に対応したPDL処理部の処理例を示し、(c)は図4のステップ406に対応したPDL処理部の処理例を示す。
【0021】
印刷対象のPDLの印刷データをPDL処理部202が受信し、描画コマンドCom1〜Com6(図7(a))が順に入力して印刷する場合、内部で使用するメモリは、描画コマンド等の中間データを作成する際に使用されるメモリ(中間データメモリ)と、中間データを作成した後に描画処理部(ソフト)308が使用するメモリ(ワークメモリ)に大別される。印刷データのメモリ情報が作成されていない場合、中間データメモリとワークメモリのサイズは、印刷データに関わらず予め標準値に設定されている。
【0022】
すなわち、中間データメモリ305は、第1の中間データメモリ(1)と第2の中間データメモリ(2)を備え、第1の中間データメモリ(1)には、例えば、描画コマンドCom1、2(図7(a)のメモリ情報)に対応した消費サイズ(a+b)分のメモリ領域が予め標準として設定されている。また、ワークメモリ313には、例えば、描画コマンドCom3〜6(図7(a)のメモリ情報)に対応した消費サイズ(C+D+E+F)分のメモリ領域が予め標準として設定されている。
【0023】
以下、図5、7を参照して、中間データ保存の処理を説明する。印刷が指示されると、中間データ保存部304は、メモリ情報保持部312を参照して、印刷が指示されたPDLの印刷データ(1ページ)のメモリ情報があるか否かを調べ(ステップ501)、メモリ情報がない場合、前述したように、中間データメモリとワークメモリのサイズを標準にする。すなわち、メモリ情報が存在しない場合(印刷指示されたPDLの印刷データが初めての場合)、この時点でワークメモリの使用量を正確に算出できないので、中間データメモリとワークメモリのサイズ配分は、印刷データに関わらず一定である。なお、印刷データのメモリ情報があるか否かは、当該印刷データとメモリ情報との対応関係を識別番号などで管理することにより実現できる。
【0024】
判定部306は、PDLの印刷データに記述された各描画コマンドが、HWA109(描画処理部(ハード)310)で描画可能か否かを判定し、HWA109での描画の可否情報を、図7(a)に示すように、メモリ情報保持部312に書き込む(ステップ504)。図7(a)に示すように、描画コマンドCom1〜3がHWA109で描画可能(例えばビット1)であり、描画コマンドCom4〜6がHWA109で描画不可能(例えばビット0)であることが記憶される。
【0025】
次いで、中間データ保存部304は、PDLの印刷データ内の各描画コマンドを中間データに変換し(ステップ505)、対象の描画コマンドについて消費した中間データメモリの消費サイズをメモリ情報保持部312に書き込む(ステップ506)。図7(a)に示すように、描画コマンドCom1〜6に対応して消費した中間データメモリの消費サイズa〜fが記憶される。ここで、各描画コマンドがHWA109(描画処理部(ハード)310)で描画可能か否かにより中間データ形式が異なるので、HWA109で描画可能な描画コマンドCom1〜3は、ハード用の中間データに変換され、HWA109で描画できない描画コマンドCom4〜6は、ソフト用の中間データに変換される。さらに、中間データ保存部304では、各描画コマンドに対応する中間データに、HWA109で描画可能か否か示すフラグを付加する。
【0026】
次いで、中間データ保存部304は、中間データに変換された描画コマンドCom1〜6が第1の中間データメモリ(1)に保存できるか否かを調べ(ステップ507)、第1の中間データメモリ(1)のサイズが標準でCom1、2のメモリ領域が用意されていた場合、Com1、2が第1の中間データメモリ(1)に保存される(ステップ508)。Com3以降は、第1の中間データメモリ(1)に保存できないので(ステップ507でNO)、空きのある第2の中間データメモリ(2)がある場合(ステップ509でYES)、第2の中間データメモリ(2)に切り替えてCom3〜6を保存し、空きがない場合(ステップ509でNO)、空くまで待機し(ステップ511)、第2の中間データメモリ(2)に切り替えてCom3〜6を保存する。上記した処理を、PDLの印刷データ内の全ての描画コマンドについて実施する。
【0027】
図7(b)の中間データ保存は、上記したステップ507〜511までの処理を説明する図である。すなわち、Com1、2を第1の中間データメモリ(1)に格納した時点でメモリが不足するので、第1の中間データメモリ(1)を、第2の中間データメモリ(2)に切り替えてCom3〜6を保存する。
【0028】
第2の中間データメモリ(2)への中間データの保存において、Com4がHWA109で描画が不可能であると判断されると、第2の中間データメモリ(2)はソフトウエアでレンダリングする状態に変更される。従って、既に描画処理(ハード)用に中間データとして保持されているCom3は、描画処理(ソフト)用に中間データを再変換するとともに、フラグを「HWA109で描画否」に書き換える必要があり、オーバーヘッドとなる。
【0029】
図6の描画処理のフローチャートにおいて、切り替え部307は第1の中間データメモリ(1)を読み込み(ステップ512)、中間データのフラグに応じて中間データの転送先を、描画処理部(ハード)310または描画処理部(ソフト)308に切り替える(ステップ513)。第1の中間データメモリ(1)に保存されたCom1、2の中間データに対して、描画処理部(ハード)310がレンダリングする(ステップ514)。
【0030】
第2の中間データメモリ(2)に保持されている、再変換されたCom3、Com4〜Com6の中間データを読み込み(ステップ512)、描画処理部(ソフト)308がレンダリングし(ステップ515)、描画処理部(ソフト)308で消費したワークメモリの消費サイズをメモリ情報保持部312に記憶する(ステップ516)。
【0031】
この場合、図7(b)に示すように、描画処理部(ソフト)308と中間データ保存部304が並列で動作できないため、空き時間が生じ、最大限にHWA109を利用できない。
【0032】
これに対して、描画処理部(ハード)310は、PDL処理部202とはプロセッサが別のため描画処理部(ハード)310によるレンダリングの最中に残りのPDLの印刷データを中間データに変換する処理を実行することができ、効率的にレンダリングが可能である。
【0033】
次に、メモリ情報が保持されている場合の処理を説明する。PDLの印刷データが入力され、中間データ保存部304は、メモリ情報保持部312を参照して、印刷が指示されたPDLの印刷データ(1ページ)のメモリ情報があるか否かを調べ(ステップ501)、メモリ情報がある場合、中間データメモリサイズとワークメモリサイズの配分を変更する(ステップ503)。
【0034】
すなわち、図7(a)に示すメモリ情報を基に、Com3までHWA109で描画可能であるので、中間データメモリサイズとワークメモリサイズの配分を変更する。図7(c)に示すように、第1の中間データメモリ(1)の標準サイズ(a+b)を、サイズ(a+b+c)に変更し、ワークメモリサイズの標準サイズ(C+D+E+F)を、サイズ(D+E+F)に変更する。中間データメモリサイズを増やすにはワークメモリサイズを削減する必要がある。メモリ情報には、印刷対象のPDLの印刷データを描画処理した際の中間データメモリ、ワークメモリの各メモリサイズ情報が保持されているため、ワークメモリサイズに余裕があるかどうかはメモリ情報を参照することで判断が可能である。
【0035】
Com1〜3まで中間データに変換し(ステップ505)、サイズが変更された第1の中間データメモリ(1)に、Com1〜3の中間データを保存し(ステップ508)、描画処理部(ハード)310で描画する(ステップ514)。Com4〜Com6は、第2の中間データメモリ(2)に保存され(ステップ510)、描画処理部(ソフト)308で描画する(ステップ515)。なお、メモリ情報が保持されている場合でも、説明を省略したステップ504、506、516などの処理を実行する。また、ステップ513における切り替えは、メモリ情報(HWAで描画可能)を参照して行う。
【0036】
このように、本実施例では、ハードウエアレンダリングとソフトウエアレンダリングの切り替えによるオーバーヘッドを抑制し、ハードウエアレンダリングを最大限に利用しつつ、メモリを効率的に利用したレンダリングを行うことができる。
【実施例2】
【0037】
図8は、本発明の実施例2の処理フローチャートを示す。USBメモリなどの記憶装置110に保存された印刷データを印刷する際、ファイル名から印刷内容が認識し難いため印刷結果をパネル装置108に表示する、プレビュー機能がある。
【0038】
プレビューする場合、印刷データを記憶装置110から読み出し(ステップ601)、印刷データを選択し、指示することでPDL処理部202が印刷データを受信し、前述したメモリ情報が保持されていない、図5、6の処理に従ってプレビュー用にレンダリングし(ステップ602)、パネル装置108にプレビュー表示する(ステップ603)。
【0039】
プレビュー表示後、印刷が指示されると(ステップ604でYES)、印刷出力用に再度レンダリングを行う(ステップ605)。このとき、印刷対象のPDLの印刷データは、プレビュー時に一度レンダリングされているため、印刷用のレンダリングはプレビュー時に生成したメモリ情報を参照するので、高速に印刷することが可能である。
【0040】
すなわち、実施例2によれば、印刷時にプレビューを行う場合、プレビュー後に印刷される可能性が高いことから、メモリ情報を活用した最適なメモリ配分による印刷用のレンダリングが可能となる。
【実施例3】
【0041】
本発明をソフトウエアで実施する場合、例えば図1のハードウエア構成例を用いる。このような構成の場合、図2に示すプリンタコントロールシステム、PDL処理部の機能はCPU101に持たせることができ、中間データメモリ、ワークメモリ、バンドメモリは、RAM103、ROM102、HDD105などの記憶装置を利用することができる。なお、CPU101で行われる処理機能は、例えばソフトウエアパッケージ、具体的には、CD−ROMや磁気ディスク等の情報記録媒体の形で提供することができ、このため図1に示す例では、情報記録媒体がセットされると、これを駆動する媒体駆動装置(図示せず)が設けられている。
【0042】
以上により、本発明における画像形成方法は、ディスプレイ等を備えた汎用の計算機システムにCD−ROM等の情報記録媒体に記録されたプログラムを読み込ませて、この汎用計算機システムの中央演算装置に処理を実行させる装置構成においても実施することが可能である。この場合、本発明の処理を実行するためのプログラム、すなわちハードウエアシステムで用いられるプログラムは、記録媒体に記録された状態で提供される。プログラムなどが記録される情報記録媒体としては、CD−ROMに限定されず、例えばROM、RAM、フラッシュメモリ、光磁気ディスクを用いても良い。記録媒体に記録されたプログラムは、ハードウエアシステムに組み込まれている記憶装置、例えばHDD105にインストールされることにより、このプログラムを実行して、画像形成機能を実現することができる。また、本発明の画像形成方法等を実現するためのプログラムは、記録媒体の形で提供されるのみならず、例えば、ネットワークを介した通信によってサーバから提供されるものでも良い。
【符号の説明】
【0043】
100 コントローラ
101 CPU
102 ROM
103 RAM
104 NVRAM
105 HDD
106 ホストPC
107 プリンタエンジン
108 パネル装置
109 HWA
110 記憶装置
201 プリンタコントロールシステム
202 PDL処理部
【先行技術文献】
【特許文献】
【0044】
【特許文献1】特開2006-289899号公報

【特許請求の範囲】
【請求項1】
第1のタイミングで取得した印刷データ中の複数の描画コマンドを、第1のメモリ容量の領域を含む第1のメモリを使用して中間データに変換し、前記変換した中間データに基づいてハードウエアまたはソフトウエアによる描画処理を実行する処理手段と、前記各描画コマンドが消費したメモリ消費量と、前記各描画コマンドの前記描画処理がハードウエアで実行可能か否かを示す情報を前記印刷データと対応付けて記憶する記憶手段を備え、第2のタイミングで取得した印刷データが、前記第1のタイミングで取得した印刷データと同一であるとき、前記処理手段は、前記記憶手段に記憶されている、ハードウエアで実行可能な前記各描画コマンドが消費したメモリ消費量を基に前記第1のメモリ容量を第2のメモリ容量に変更し、前記第2のタイミングで取得した印刷データ中のハードウエアで実行可能な各描画コマンドを、前記第2のメモリ容量の領域を使用して中間データに変換し、前記変換した中間データに基づいてハードウエアによる描画処理を実行することを特徴とする画像形成装置。
【請求項2】
前記処理手段は、第2のメモリを使用してソフトウエアによる描画処理を実行し、前記第1のメモリの前記第1のメモリ容量から前記第2のメモリ容量への変更に応じて前記第2のメモリの容量を変更し、前記記憶手段には、前記描画処理をソフトウエアで実行したときの前記各描画コマンドのメモリ消費量が記憶されていることを特徴とする請求項1記載の画像形成装置。
【請求項3】
前記描画処理の結果を表示するプレビュー表示手段を備え、前記処理手段は第1のタイミングで取得した印刷データに対してプレビュー用に描画処理を実行し、前記プレビュー表示手段に前記描画処理の結果を表示した後、第2のタイミングで前記印刷データの印刷が指示されたとき、前記処理手段は、前記プレビュー時に生成したメモリ情報を参照して、印刷出力用に描画処理を実行することを特徴とする請求項1記載の画像形成装置。
【請求項4】
第1のタイミングで取得した印刷データ中の複数の描画コマンドを、第1のメモリ容量の領域を含む第1のメモリを使用して中間データに変換し、前記変換した中間データに基づいてハードウエアまたはソフトウエアによる描画処理を実行する処理工程と、前記各描画コマンドが消費したメモリ消費量と、前記各描画コマンドの前記描画処理がハードウエアで実行可能か否かを示す情報を前記印刷データと対応付けて記憶する記憶工程を備え、第2のタイミングで取得した印刷データが、前記第1のタイミングで取得した印刷データと同一であるとき、前記処理工程は、前記記憶工程に記憶されている、ハードウエアで実行可能な前記各描画コマンドが消費したメモリ消費量を基に前記第1のメモリ容量を第2のメモリ容量に変更し、前記第2のタイミングで取得した印刷データ中のハードウエアで実行可能な各描画コマンドを、前記第2のメモリ容量の領域を使用して中間データに変換し、前記変換した中間データに基づいてハードウエアによる描画処理を実行することを特徴とする画像形成方法。
【請求項5】
請求項4記載の画像形成方法をコンピュータに実現させるためのプログラム。
【請求項6】
請求項4記載の画像形成方法をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−86383(P2013−86383A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−229583(P2011−229583)
【出願日】平成23年10月19日(2011.10.19)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】