説明

画像処理装置、画像形成装置、画像処理方法、プログラム及び記録媒体

【課題】受信したPDLデータを変換して印刷デバイスに出力する処理にかかる演算処理時間を今まで以上に短縮する。
【解決手段】画像処理装置は、文書情報のページ単位の構成要素及び該構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信手段と、受信手段により受信されたPDLデータを記憶装置に格納する格納手段と、記憶装置からインデックス情報をページごとに検索する検索手段と、検索手段により検索されたインデックス情報を用いて、該インデックス情報に対応する構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する複数の変換手段と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像形成装置、画像処理方法、プログラム及び記録媒体に関し、特に、例えばホストコンピュータに接続され、装置内に複数のCPUを備え、入力されたPDL(Page Description Language)データを単一の印刷デバイスに出力するプリンタに好ましく適用される技術に関するものである。
【背景技術】
【0002】
近年、プリンタやMFP等の画像形成装置は高解像度化及び高機能化が急速に進展している。そして、画像処理装置中で受け取ったPDLデータを印刷デバイスに出力する処理は、装置の高解像度化や高機能化を受けて、より高機能な演算処理を必要とするようになった。特に、比較的新しいPDLであるPDF(Portable Document Format)やXPS(XML Paper Specification)等といった言語ではその傾向が強い。演算処理に用いるCPUを複数用意し、PDLをディスプレイリスト等の中間言語に変換した後、その中間言語の処理に必要となるレンダラ処理を複数CPUに別々に割り当てて処理を行い、演算処理時間を短縮する技術は、既に知られている。
【0003】
例えば特許文献1では、演算処理時間を短縮する目的で、複数のCPUとレンダリングデバイスとを備え、入力されたPDLデータを単一のデバイスに出力する画像処理装置が開示されている。この画像処理装置は、PDLデータを受信する手段と、PDLデータをページ単位に独立した中間データあるいはディスプレイリストに変換する手段と、中間データあるいはディスプレイリストを複数のCPUあるいは複数のレンダリングデバイスに振り分ける手段と、有する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1で開示された画像処理装置では、中間データあるいはディスプレイリストを複数のCPUあるいは複数のレンダリングデバイスに振り分けて処理を行わせており、レンダラ処理に関しては確かに処理時間の短縮化が図られている。しかしながら、受信したPDLデータを中間データ(あるいはディスプレイリスト等の中間言語)に変換する処理自体は分割できていないため、中間言語への変換処理に関しては処理時間が短縮していない。つまり、PDLデータの印刷デバイスへの出力処理全体としては、演算処理時間を短縮できていない。
【0005】
そこで、本発明は、上述した事情に鑑みて、受信したPDLデータを変換して印刷デバイスに出力する処理にかかる演算処理時間を今まで以上に短縮することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一側面である画像処理装置は、文書情報のページ単位の構成要素及び該構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信手段と、受信手段により受信されたPDLデータを記憶装置に格納する格納手段と、記憶装置からインデックス情報をページごとに検索する検索手段と、検索手段により検索されたインデックス情報を用いて、該インデックス情報に対応する構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する複数の変換手段と、を有する。
【0007】
本発明の一側面である画像形成装置は、上記の画像形成装置を搭載したものである。
【0008】
本発明の一側面である画像処理方法は、文書情報のページ単位の構成要素及び該構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信ステップと、受信ステップで受信されたPDLデータを記憶装置に格納する格納ステップと、記憶装置からインデックス情報をページごとに検索する検索ステップと、検索ステップで検索されたインデックス情報を用いて、該インデックス情報に対応する構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する変換ステップと、を有する。
【0009】
本発明の一側面であるプログラムは、コンピュータに、文書情報のページ単位の構成要素及び該構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信処理と、受信処理で受信されたPDLデータを記憶装置に格納する格納処理と、記憶装置からインデックス情報をページごとに検索する検索処理と、検索処理で検索されたインデックス情報を用いて、該インデックス情報に対応する構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する変換処理と、を実行させる。
【0010】
本発明の一側面である記録媒体は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0011】
本発明では、受信した構造化PDLデータを一旦装置内の記憶装置に蓄積し、第1のCPUでそのPDLデータ内部のページ毎のアドレスを検索し、検索結果を他の複数のCPUに入力して該CPUでPDL解釈を行うことで、PDLデータを変換及び分割することなしに、各CPUは、単一のPDLデータを参照し、並行して印刷デバイスの解釈できる形式に変換する。このため、本発明によれば、受信したPDLデータを変換して印刷デバイスに出力する処理にかかる演算処理時間を今まで以上に短縮することが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係る画像形成装置の概略構成を示した図である。
【図2】本発明の実施形態に係る画像形成装置の機能構成を示した図である。
【図3】本発明の実施形態において用いる構造化されたPDLデータを説明するための図である。
【図4】本発明の実施形態において複数のPDL部で構造化PDLデータを解釈する方法を説明するための図である。
【図5】本発明の実施形態におけるPDLデータの処理手順を示すシーケンス図である。
【図6】本発明の実施形態におけるプリンタコントロールシステム部が行う処理の流れを示したフローチャートである。
【図7】本発明の実施形態におけるページのインデックス読み取り処理の流れを示したフローチャート図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を参照して説明する。
【0014】
図1は、本実施形態の画像形成装置の概略構成を示した図である。本実施形態の画像形成装置は、画像形成装置の制御を行うコントローラ10、用紙に画像を印刷するためのエンジン2、ユーザの入力を受け付ける操作部及び機器状態を表示する表示部を備えるパネル装置3を有して構成される。コントローラ10は、CPU11、ROM12、RAM13、NVRAM14、ネットワークI/F15、エンジンI/F16、パネルI/F17を有する。
【0015】
CPU11は、ROM12に格納されたプログラムに従って画像形成装置の制御を行う。ROM12は、コントローラ上で動作するためのプログラムを格納する。RAM13は、コントローラソフト(CPU11がプログラムを読み込むことで構成される機能部、図2を参照)が作成するページメモリや、ソフトウェアが動作するために必要なワークメモリとして利用されるメモリである。NVRAM14は、画像形成装置の印刷条件設定等を保存しておく不揮発性メモリである。
【0016】
ネットワークI/F15は、ネットワーク上に接続されたホストPC5とデータのやり取りを行うためのインターフェースである。エンジンI/F16、エンジン20との間で印刷指示等を行うためのインターフェースである。パネルI/F17は、パネル装置30との入出力を行うためのインターフェースである。
【0017】
なお、CPU11は1個以上であり、複数あってもよい。また、CPU11は内部に複数のコアを持つ構成(マルチコア)であってもよい。
【0018】
図2は、本実施形態の画像形成装置の機能構成を示した図である。コントローラソフトは、先に述べたように、CPU11がROM12に格納されたプログラムを読み込むことで構成される機能部で、プリンタコントロールシステム部101、PDL部102、ネットワークI/F部103、エンジンI/F部104、パネルI/F部105を有して構成される。
【0019】
プリンタコントロールシステム部101は、受信したPDLデータの印刷デバイスへの出力処理に関して中心的な役割を果たす。具体的には、ホストPC5からPDLデータを受信し、PDL部にページごとのインデックス情報(アドレス情報)を付与して印刷画像を作成させ、作成された印刷画像をエンジン20に送信する。PDL部102は、プリンタコントロールシステム部101から印刷データを受け取り、印刷画像を作成する。また、PDL部102は、CPUの数に応じて複数個存在する。ネットワークI/F部103は、ホストPC5とデータの交換を行う。エンジンI/F部104は、エンジン20の印刷制御を行う。パネルI/F部105は、パネル装置30の制御を行う。
【0020】
図3は、本実施形態において用いる構造化されたPDLデータを説明するための図である。図3(a)に構造化されていないPDLデータを示し、図3(b)に構造化されたPDLデータを示す。図面を参照して、構造化されていないPDLデータと構造化されたPDLデータとの違いを説明する。
【0021】
構造化されていないPDLデータは、ページごとの描画命令が順次記載され、印刷が必要な箇所で印刷命令が記述される。これの繰り返しである。基本的に命令処理に前後関係がないため、データを順次受け取りながら処理できるという特徴がある。しかし、命令はデータの最初から最後まで順番に確認して行く必要がある。このようなPDLデータの代表例として、HP社のPCL(登録商標)や、Adobe(登録商標)社のPostScript(登録商標)等が挙げられる。
【0022】
一方、構造化されたPDLデータは、ページ情報、ページの構成要素の情報の関連が記載されている。解釈する側は、まずファイル末尾のインデックス情報を参照し、文書情報、ページ情報、ページ構成要素の情報を参照していくことが可能である。構造化されていないPDLデータと異なり、データ末尾にインデックス情報が含まれているため、基本的にはデータをすべて参照できる状態(ランダムアクセス可能な状態)でなければ解釈できない。このようPDLデータの代表例としては、PDFやXPF等が挙げられる。
【0023】
図4は、本実施形態において複数のPDL部で構造化PDLデータを解釈する方法を説明するための図である。また、図4は、PDL部と処理対象のPDLデータとの関係を示している。なお、図4の各構成(ネットワークI/F、プリンタコントロールシステム部等)は図2に記載した構成と同じで、図面における符号の表示は省略している。
【0024】
まず、第1のCPUあるいはCPUコアにおいて、プリンタコントロールシステム部が受信したPDLデータ(図4(1))を、RAM等の記憶装置あるいはHDD等の補助記憶装置にスプールする(図4(2))。その後、スプールしたPDLデータのインデックス情報を参照し、各ページのデータの開始位置を記録する。そして、プリンタコントロールシステム部は、その各ページのデータ開始位置を、各CPUあるいは各CPUコアに割り当てられているPDL部1〜PDL部3に入力する(図4(3−1)〜図4(3−3))。
【0025】
その後、各CPUあるいは各CPUコアにおいて、PDL部1〜PDL部3は、入力されたデータ開始位置にPDLデータを読み込みに行く。PDL部1〜PDL部3は、ページの要素を解釈し、出力デバイスが解釈できる形式に変換してプリンタコントロールシステム部に送信する(図4(4−1)〜図4(4−3))。プリンタコントロールシステム部は、PDL部1〜PDL部3からの変換後データを画像データとしてエンジンI/Fに送信する。あるいは、変換後はHDD等の補助記憶装置にスプールし、エンジンが必要なタイミングでプリンタコントロールシステム部がエンジンI/Fを通してエンジンに送信するように構成することもできる。
【0026】
これらの処理は、複数のCPUあるいは複数のCPUコアによって並列に行われる。なお、PDLデータへの同時読み込みアクセスが可能なため、PDLデータを分割する処理は必要ない。また、各CPUあるいは各CPUコアにおけるPDL部1〜PDL部3は、変換処理が終了すると、未変換のページから最優先されるページを選択して解釈処理を開始する。これらの繰り返しにより、出力デバイスの待ち時間がもっとも少なくなる形で印刷処理が実施される。なお、上記の図の説明では、できるだけシンプルにするために、CPUあるいはCPUコアが4つある場合の構成を記載したが、このCPUの数はもちろん任意であってよい。
【0027】
図5は、本発明の実施形態におけるPDLデータの処理手順を示すシーケンス図で、図4で説明した処理の手順を表したものである。簡単のため、5ページものの印刷処理を行う場合を想定する。
【0028】
まず、プリンタコントロールシステムは、PDLデータ受信した後、PDL部1にページ1、PDL部2にページ2、PDL部ページ3にそれぞれのページのインデックスを入力する。PDL部1〜3では、それぞれでPDLデータの該当ページのデータを読み込み、解釈処理を実行する。解釈処理が完了したPDL部はプリンタコントロールシステムに解釈終了を通知する。プリンタコントロールシステムは、その終了したページをエンジンI/F経由でエンジンに伝える。その後、未処理のページのインデックスを処理が空いているPDL部に入力する。このように並行してページ解釈処理が実行されるため、エンジンでのページ出力処理の空き時間を最小限にすることができる。
【0029】
図6は、本実施形態におけるプリンタコントロールシステム部が行う処理の流れを示したフローチャートである。図6のフローチャートはプリンタコントロールシステム部の起動後に開始し、プリンタコントロールシステム部は非同期にイベントを受信することができる。
【0030】
プリンタコントロールシステム部は、ネットワークI/F部を介してホストPCから受信すると、まずは装置内の記憶装置(例えばRAM)にPDLデータを全てスプールする(ステップS101)。次に、プリンタコントロールシステム部は、スプールしたPDLデータを参照し、各ページのインデックスを読み取って、内部的なテーブルに保存する(ステップS102)。この際、PDLデータが持つ総ページ数も記録する。そして、ページカウンタCA、CPUカウンタCB、処理済ページカウンタCCを初期化(CA=1、CB=1、CC=0)する(ステップS103)。
【0031】
その後、プリンタコントロールシステム部は、ページカウンタCAが総ページ数以下の間(ステップS104/YES)、以下の処理を繰り返す(ステップS105〜ステップS111)。
【0032】
プリンタコントロールシステム部は、CPUカウンタCBが「CPUの個数―1」より小さければ(ステップS105/YES)、CB番目のCPUが空いているかを判定する(ステップS106)。ここで、比較するCPUの個数が総数より1少ないのは、本実施形態の構成では複数のCPUのうち、1つをプリンタコントローラシステム部に割り当て、残りをPDL部に割り当てているためである。
【0033】
CB番目のCPUが空いている場合(ステップS106/YES)、すなわちCB番目のCPUのPDL解釈処理が終わっており、新たなページを処理可能な場合は、プリンタコントロールシステム部は、CB番目のCPU(PDL部)にCAページ目のインデックス値を渡す(ステップS108)。インデックス値を渡されたCB番目のCPUは、そのページのPDL解釈処理を開始する。そして、プリンタコントロールシステム部は、次のページを処理するために、ページカウンタCAを1インクリメントして(ステップS109)、ステップS104に戻る。
【0034】
CB番目のCPUが空いていない場合(ステップS106/NO)、すなわち既に処理中のページがあり、CB番目のCPUが処理不可能な場合には、CPUカウンタCBを1インクリメントし(ステップS107)、ステップS105に戻る。
【0035】
プリンタコントロールシステム部は、CPUカウンタCBが「CPUの個数―1」以上の場合(ステップS105/NO)、すなわち全てのCPUがPDL処理中である場合は、いずれかのCPUの処理が完了するまでアイドル状態となる。プリンタコントロールシステム部は、定期的に処理済ページカウンタCCを参照して、いずれかのCPUからエンジンI/Fへの転送終了の通知が来るまで待機し(ステップS110)、いずれかのCPUが処理済となったとき、CPUカウンタCBを初期化して(ステップS111)、ステップS105に戻る。
【0036】
他方、プリンタコントロールシステム部は、ステップS108の処理を受けてPDL部で開始されるPDL解釈処理が終了した場合、そのCPUからPDL解釈処理の終了通知を受け取る(ステップS112)。次に、プリンタコントロールシステム部は、終了通知を受けたページの出力データをエンジンI/Fに転送する(ステップS113)。そして、プリンタコントロールシステム部は、処理済ページカウンタCCを1インクリメントする(ステップS114)。
【0037】
ページカウンタCAが総ページ数に達した場合(ステップS104/NO)、エンジン処理の終了を待つ。全ページのエンジンI/Fへの転送が終了したかどうかは、処理済ページカウンタCCが総ページ数に達したことで判断する。
【0038】
図7は、本実施形態におけるページのインデックス読み取り処理の流れを示したフローチャート図で、一例として、PDFデータの場合の読み取り手順を表したものである。
【0039】
PDFフォーマットの詳細は、Adobe(登録商標)社から発行されているPDFリファレンスに記載されている。PDFデータは、オブジェクトデータ及びデータ終端の相互参照表とファイルトレーラからなる。相互参照表には、各オブジェクトの番号と先頭からのオフセット位置の組合せが記録されている。ファイルトレーラには、相互参照表へのオフセット及びPDFのカタログオブジェクトのオブジェクト番号が記録されている。PDFカタログオブジェクト内には、ページを管理するページツリーオブジェクトのオブジェクト番号が記録されている。ページツリーオブジェクトには、各ページのオブジェクト番号及びページ総数が記録されている。よって、図7のフローチャートに示す以下の手順で各ページのインデックスを取得することができる。
【0040】
PDL部は、装置内の記憶装置(例えばRAM)に格納されたPDFデータのうちファイルトレーラを読み込む(ステップS201)。そして、PDL部は、格納されたPDFデータのうち相互参照表を読み込む(ステップS202)。以後、PDL部は、各オブジェクトを参照できるようになる。
【0041】
続いて、PDL部は、PDFのカタログオブジェクトを参照し、ページツリーオブジェクトのオブジェクト番号を取得する(ステップS203)。そして、PDL部は、ページツリーオブジェクトを参照し、ページ総数を取得する(ステップS204)。
【0042】
以後、PDL部は、ページ総数分(ステップS205/YES)、Nページ目のページオブジェクトへのインデックスを取得し(ステップS206)、Nページのページ番号とインデックスの組合せをテーブルに保存する(ステップS207)処理を行う。ステップS206、ステップS207の処理をページ総数分行った後(ステップS205/NO)、完成したテーブルを呼び出し元の関数に提供して終了する(ステップS208)。
【0043】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0044】
すなわち、本実施形態に係る画像形成装置で実行されるプログラムは、先に述べた機能部(プリンタコントローラシステム部101、PDL部102等)を含むモジュール構成となっており、実際のハードウェアを用いて具体的手段を実現する。すなわち、コンピュータ(CPU)が所定の記録媒体からプログラムを読み出して実行することにより上記各機能部が主記憶装置上にロードされて生成される。また、これらの機能部に相当する構成は、上記のようにソフトウェアで実現してもよいが、回路等のハードウェアで実現してもよい。
【0045】
本実施形態に係る画像形成装置で実行されるプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードさせることにより提供されるように構成してもよい。また、上記プログラムをインターネット等のネットワーク経由で提供あるいは配布するように構成してもよい。
【0046】
また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルで、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD、不揮発性のメモリカード等のコンピュータで読み取り可能な記録媒体に記録されて提供されるように構成してもよい。また、上記プログラムは、ROM等にあらかじめ組み込んで提供するように構成してもよい。
【0047】
この場合、上記記録媒体から読み出された又は通信回線を通じてロードし実行されたプログラムコード自体が前述の実施形態の機能を実現することになる。そして、そのプログラムコードを記録した記録媒体は本発明を構成する。
【符号の説明】
【0048】
5 ホストPC
10 コントローラ
11 CPU
12 ROM
13 RAM
14 NVRAM
15 ネットワークI/F
16 エンジンI/F
17 パネルI/F
20 エンジン
30 パネル装置
101 プリンタコントローラシステム部
102 PDL部
103 ネットワークI/F部
104 エンジンI/F部
105 パネルI/F
【先行技術文献】
【特許文献】
【0049】
【特許文献1】特開2006−159738号公報

【特許請求の範囲】
【請求項1】
文書情報のページ単位の構成要素及び前記構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信手段と、
前記受信手段により受信された前記PDLデータを記憶装置に格納する格納手段と、
前記記憶装置から前記インデックス情報をページごとに検索する検索手段と、
前記検索手段により検索されたインデックス情報を用いて、該インデックス情報に対応する前記構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する複数の変換手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記複数の変換手段は、前記検索手段から異なるページの構成要素にアクセスするためのインデックス情報を順次取得し、前記記憶装置に格納された単一の前記PDLデータに対して、前記インデックス情報を用いて対応するページの構成要素にアクセスすることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記複数の変換手段は、平行して、前記検索手段から異なるページの構成要素にアクセスするためのインデックス情報を順次取得し、取得したインデックス情報を用いて各ページの構成要素にアクセスし、データ形式の変換を行うことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記検索手段により検索された前記インデックス情報をデータ形式変換の処理中でない変換手段に入力する入力手段を有することを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
請求項1から4のいずれか1項に記載の画像処理装置を搭載したことを特徴とする画像形成装置。
【請求項6】
文書情報のページ単位の構成要素及び前記構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信ステップと、
前記受信ステップで受信された前記PDLデータを記憶装置に格納する格納ステップと、
前記記憶装置から前記インデックス情報をページごとに検索する検索ステップと、
前記検索ステップで検索されたインデックス情報を用いて、該インデックス情報に対応する前記構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する変換ステップと、
を有することを特徴とする画像処理方法。
【請求項7】
コンピュータに、
文書情報のページ単位の構成要素及び前記構成要素にアクセスするためのインデックス情報を含む構造化されたPDLデータを受信する受信処理と、
前記受信処理で受信された前記PDLデータを記憶装置に格納する格納処理と、
前記記憶装置から前記インデックス情報をページごとに検索する検索処理と、
前記検索処理で検索されたインデックス情報を用いて、該インデックス情報に対応する前記構成要素にアクセスし、印刷を行う出力装置の解釈できるデータ形式に該構成要素を変換する変換処理と、
を実行させることを特徴とするプログラム。
【請求項8】
請求項7に記載のプログラムを記録しコンピュータ読み取り可能なことを特徴とする記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−56808(P2011−56808A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−209577(P2009−209577)
【出願日】平成21年9月10日(2009.9.10)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】