JP2011054098A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2011054098A JP2011054098A JP2009204758A JP2009204758A JP2011054098A JP 2011054098 A JP2011054098 A JP 2011054098A JP 2009204758 A JP2009204758 A JP 2009204758A JP 2009204758 A JP2009204758 A JP 2009204758A JP 2011054098 A JP2011054098 A JP 2011054098A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- data
- circuit
- attribute information
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】 動的に回路構成を変更できる回路での画像処理を行う際の処理時間を最短化することができる技術を提供すること。
【解決手段】 画像データの属性情報を参照し、属性情報の切り替わりを検出する。そして、その値に基づき、回路構成を変更するための時間を計算し、その時間から処理時間が最短になる処理方式を選択することで処理時間を最適化する。
【選択図】 図8
【解決手段】 画像データの属性情報を参照し、属性情報の切り替わりを検出する。そして、その値に基づき、回路構成を変更するための時間を計算し、その時間から処理時間が最短になる処理方式を選択することで処理時間を最適化する。
【選択図】 図8
Description
本発明は、画像に対する画像処理技術に関するものである。
従来、スキャナにより読み取られ、送出された画像データや、ホストコンピュータから送出された画像データ等を取得し、取得したデータに各種の画像処理を施し、印刷データとして展開する画像処理装置では、高画質な印刷結果の実現が求められている。
このような高画質な印刷結果を実現するため、画像内のデータが文字、写真といった画素属性、画像データの送信元がスキャナ、ホストコンピュータといったページ毎の面属性に応じて専用の画像処理を施す必要がある。
これらの属性を好適に利用することで、複数ある画像処理装置の処理負荷を最適化する試みがなされている(特許文献1参照)。また、それぞれの画像処理専用のハードウェア全てを備えると、回路規模等が増大してコストアップとなるので、複数種の画像処理のそれぞれを実行可能な処理手段を用意し、前記処理手段を制御する制御手段を備える提案がなされている(特許文献2参照)。
しかし上述した従来の画像処理装置においては、画像データの各画素に対する属性の変化点が多い場合には、処理時間がかかるという問題がある。すなわち、様々な属性の画素が逐次入力された場合、回路変更が可能な処理回路の切り換えのための時間が多くなり、全体の処理時間がかかってしまう。
本発明はこのような問題に鑑みてなされたものであり、入力画像データの属性情報を参照して、回路変更が可能な処理回路の切り換え回数或いは切り換えに要する時間を得る手段を備える。そして、その値から入力画像データの処理方式を変更することにより回路変更が可能な処理回路の切り換え時間を最小にし、処理時間を最適化するための技術を提供することを目的とする。
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
即ち、属性データを参照し、画素データに対する処理を切り換えなければならない回数と存在する属性情報の種類を計数する手段と、
前記計数手段で得られた値から入力画像データの処理方式を切り換える処理方式切換手段と
を備えることを特徴とする。
前記計数手段で得られた値から入力画像データの処理方式を切り換える処理方式切換手段と
を備えることを特徴とする。
或いは、属性データを参照し、画素データに対する処理を切り換えるために回路変更が可能な処理回路の回路変更に要する総時間と存在する属性情報の種類を表す値を算出する手段と、
前記算出手段で得られた値から入力画像データの処理方式を切り換える処理方式切換手段と
を備えることを特徴とする。
前記算出手段で得られた値から入力画像データの処理方式を切り換える処理方式切換手段と
を備えることを特徴とする。
本発明の構成により、動的に回路構成を変更できる回路での画像処理を行う処理時間を最適化することができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
図1は、本実施形態に係る画像処理装置を適用したシステムの機能構成を示すブロック図である。同図に示したシステムは大まかには、スキャナ1、ホストコンピュータ2、画像処理装置3、記憶装置4、印字エンジン部5により構成されている。
スキャナ1は周知の通り、紙などの記録媒体上に記録された情報(画像、文字など)を読み取り、読み取った結果を画像データとして出力する。出力した画像のデータは画像処理装置3に入力される。
ホストコンピュータ2は、一般のPC(パーソナルコンピュータ)やWS(ワークステーション)などのコンピュータであって、このコンピュータでもって作成された画像や文書はPDLデータとして画像処理装置3に入力される。
このように画像処理装置3はスキャナ1やホストコンピュータ2から送出されたデータを受け取ることができる。よって当然、画像処理装置3とスキャナ1、画像処理装置3とホストコンピュータ2とはデータ通信が可能なようにネットワークが形成されているのであるが、このネットワークの構成については特に限定するものではない。
画像処理装置3はスキャナ1やホストコンピュータ2から受けたデータに基づいて各種の画像処理を施し、画像処理済みのデータを出力する。なお、画像処理装置3、および画像処理装置3が行う処理の詳細については後述する。
記憶装置4は、画像処理装置3から出力された画像処理済みのデータを記憶、保持するものである。
印字エンジン部5は、画像処理装置3から出力された画像処理済みのデータに基づいて、紙などの記憶媒体上に印字処理を行う。
なお、本実施形態では画像処理装置3にデータを入力するのはスキャナ1とホストコンピュータ2の2つとしたが、これ以外の装置であっても良く、例えば複合機やファクシミリ装置などから送出されたデータを画像処理装置3に入力するようにしても良い。
次に、画像処理装置3の構成について説明する。画像処理装置3はスキャナ入力色処理ブロック31、ホストI/F部32、PDL処理部33、CPU34、RAM35、ROM36、画像処理部37、スケジューラ38、ストレージコントローラ部39、エンジンI/F部40により構成されている。
スキャナ入力色処理ブロック31は、スキャナ1から送出された画像データを受け、各種の色処理をこの画像データに対して施す処理を行う。ホストI/F部32は、ホストコンピュータ2から送出されたPDLデータを受けるためのインターフェースとして機能するものである。なお、ホストI/F部32は、画像処理装置3とホストコンピュータ2とを繋ぐネットワークに応じたものとなるのであるが、例えば、イーサネット(登録商標)やシリアルインターフェースもしくは、パラレルインターフェースといったもので構成されている。
PDL処理部33は、ホストI/F部32が受けたPDLデータを展開する処理を行う。
CPU34は、RAM35やROM36に格納されているプログラムやデータを用いて本画像処理装置3全体の制御を行うと共に、画像処理装置3が行う後述の各処理を実行する。
RAM35は、スキャナ入力色処理ブロック31やホストI/F部32を介してスキャナ1やホストコンピュータ2から受信したデータを一時的に記憶するためのエリアを備えると共に、CPU34が各種の処理を実行する際に用いるワークエリアを備える。
ROM36は、CPU34に本画像処理装置3全体を制御すると共に、画像処理装置3が行う後述の各処理をCPU34に実行させるためのプログラムやデータ、また、画像処理装置3の設定データなどが格納されている。
画像処理部37は、スキャナ1やホストコンピュータ2から送出されたデータに基づいた画像に対する画像処理を行う。画像処理部37が行う処理の詳細については後述する。
スケジューラ38は、画像処理部37へ転送する中間データをスケジューリングする。
ストレージコントローラ部39は、本画像処理装置3による画像処理済みのデータを記憶装置4に記録する処理を制御する。
エンジンI/F部40は、本画像処理装置3による画像処理済みのデータを印字エンジン部5に送出するための一連の処理を行う。
41は上述の各部を繋ぐバスである。
次に、スキャナ1、ホストコンピュータ2から画像処理装置3にデータを送出した場合に、画像処理装置3が行う処理について説明する。
図2は、スキャナ1から画像処理装置3に対して画像データが送出された場合に、画像処理装置3が行う処理のフローチャートである。
スキャナ入力色処理ブロック31を介して、スキャナ1から送出された画像データの受信をCPU34が検知すると、同図のフローチャートに従った処理が開始される。先ず、CPU34は、受けた画像データを一時的にRAM35に格納し、その後、この画像データに対して各種の色処理を行う(ステップS101)。そして色処理後の画像データを構成する各画素の属性情報を生成し、生成した属性情報と色処理後の画像データとをセットにして中間データとして記憶装置4にストレージコントローラ部36を介して送出する(ステップS102)。よってこの中間データは記憶装置4に保存されることになる。
図3は、ホストコンピュータ2から画像処理装置3に対してPDLデータを送出した場合に、画像処理装置3が行う処理のフローチャートである。
ホストI/F部32を介して、ホストコンピュータ2から送出されたPDLデータの受信をCPU34が検知すると、同図のフローチャートに従った処理が開始される。先ず、CPU34は、受けたPDLデータを一時的にRAM35に格納する(ステップS201)。次に、CPU34がこのPDLデータに基づいて上記中間データを生成する(ステップS202)。即ち、ホストコンピュータ2から送出されたPDLデータが示す画像を構成する各画素のデータと共に、各画素に対する属性情報をセットにしたものを生成する。
そして生成した中間データを記憶装置4にストレージコントローラ部39を介して送出する(ステップS203)。よってこの中間データは記憶装置4に保存されることになる。
次に、記憶装置4に保存された中間データを読み出して画像処理部3に指示することで、画像処理装置に中間データの処理を行わせるためにスケジューラ38が行う処理について、スケジューラ38のフローチャートを示す図4を用いて以下説明する。
先ず、記憶装置4に保存されている中間データをRAM35に読み出し、読み出した中間データに対してページ毎に付与される面属性と画素毎に付与される画素属性を取得する(ステップS301)。これを印刷するページ分繰り返し行う(ステップS302)。例えば、Nアップ印刷の場合はNページ分取得する。そして、中間データをRAM35から画像処理部37へ転送する(ステップS303)。
次に、記憶装置4に保存された中間データを読み出して印字エンジン部5に送出することで、この中間データに従った印刷をこの印字エンジン部5に行わせる為に画像処理装置3が行う処理について、同処理のフローチャートを示す図5を用いて以下説明する。
先ず、記憶装置4に保存されている中間データをスケジューラ38の指示によってRAMに読み出し、読み出した中間データに対して階調変換処理を施す(ステップS401)。
これらの処理により、中間データを印字データに変換するので、変換した印字データを印字エンジン部5に出力する(ステップS402)。
以上の各処理により、スキャナ1、ホストコンピュータ2の何れから受けたデータであっても、これを中間データに変換して保持することができる。さらに、これに基づいた印刷を行う場合にはこの中間データに対して階調変換などの画像処理を施し、その結果を印字エンジン部5に出力することができる。なお、以上の説明では中間データは一端記憶装置4に保存するとしたが、生成した中間データを記憶装置4に保存することなく、直接階調変換などの画像処理を施し、その結果を印字エンジン部5に出力するようにしても良い。
図6は、中間データの構成(フォーマット)例を示す図である。中間データは上述の通り、画像を構成する各画素のデータと、各画素の属性情報とから成るものであるが、より具体的には同図に示す如く、画素のYMCKデータと、この画素の属性情報とから成る。同図では属性情報を4ビットデータ、Y、M、C、Kそれぞれを8ビットデータとしているが、これに限定するものではない。また、画素のデータとしてはYMCK以外の色空間における色データであっても良い。
図7は、属性情報の構成(フォーマット)例を示す図である。同図に示す如く、属性情報は、面属性と画素属性とから成る。面属性とは、画素データ(本実施形態ではRGBデータ)がスキャナ1から取得したものであるのか、ホストコンピュータ2から取得したものであるのかを示すものである。例えば「面属性が1の場合にはスキャナ1から取得した」、「面属性が0の場合にはホストコンピュータ2から取得した」というように、面属性を参照することで、中間データがどの装置から得られたデータに基づくものであるのかをチェックすることができる。
なお、本実施形態では中間データはスキャナ1、ホストコンピュータ2という2つの装置の何れかから得られたデータに基づくものである。よって、面属性は1,0の何れかの値を取れば良く、そのため入力モードは1ビットで表現できるのであるが、画像処理装置3がより多くの装置からデータを受信できる場合には、その数に応じて面属性を表現するビット数を多くする必要がある。
画素属性とは、中間データに含められる画素データ(本実施形態ではYMCKデータ)が、画像上のどの領域内(例えば、写真領域、文字領域など)のものであるのかを示す情報である。なお、同図では像域情報は3ビットでもって表現されるとしているが、これに限定するものではない。
図8は、上記画像処理部37の基本構成を示すブロック図である。同図に示す如く、画像処理部37は、データI/F301、入力データ一時記憶部302、動的回路切換時間算出部303、データ分離部304、処理方式制御部305、コンフィギュア選択部306、信号処理回路307、出力データ一時記憶部308により構成されている。
データI/F301はバス41のインターフェースであり、入力画像データをバス41から読み込み、画像処理を施した出力画像データをバス41へ書き出す。
入力データ一時記憶部302は入力画像データ用の緩衝バッファである。バス41は多くのブロックが接続され、各ブロック間のデータ転送に使用される。したがって、他のブロックがバス41を使用している期間、データI/F301はバス41から入力画像データを読み込むことはできず、緩衝バッファがない場合には画像処理が一時停止してしまう。
動的回路切換時間算出部303は入力画像データの属性情報を参照し、後述する動的回路切換時間と属性情報の種類の数を算出するブロックである。
データ分離部304は入力画像データを画素データと属性情報に分離するブロックである。
処理方式制御部305は入力画像データの処理方式を制御するブロックである。
コンフィギュア選択部306は入力される属性情報に応じて、信号処理回路307に対して、回路構成をどの構成にするのかを指示するブロックである。
信号処理回路307は様々な処理が実行できるように、回路構成が変更可能なように構成される回路である。
出力データ一時記憶部308は画像処理が施された出力画像データ用の緩衝バッファである。バス41は多くのブロックが接続され、各ブロック間のデータ転送に使用される。したがって、他のブロックがバス41を使用している期間、データI/F301はバス41へ出力画像データを書き出すことはできず、緩衝バッファがない場合には画像処理が一時停止してしまう。
ここで、信号処理回路307で画素データを処理している時に、信号処理回路307を動的に他の処理を行う回路構成に切り換える際に要する時間(動的切換時間)について説明する。動的切換時間は二つの時間の和である。
一つは信号処理回路307の回路構成を切り換えるために必要な時間である。現在、回路構成が変更可能なように構成された回路には、FPGA(Field Programmable Gate Array)や動的再構成プロセッサ(Reconfigurable Processor)などがある。例えば、FPGAは回路構成を切り換えるためにミリ秒或いはマイクロ秒のオーダーの時間が必要であり、動的再構成プロセッサは1クロックで回路構成を切り換えられる。
もう一つは、信号処理回路307の内部に存在する処理中の画素データがすべて、信号処理回路307から出力されるまでの時間である。一般的に、画像処理は複雑であり、1画素データに対して、1クロックでは処理できない。通常、画像処理回路は各入力画素データを1クロック毎に入力でき、各出力画素データを1クロック毎に出力できるようにするために、パイプライン回路が採用される。パイプライン回路とは、必要な処理を1クロックで完了できる処理に分割し、分割された処理の間をFF(フリップフロップ)で接続した構成の回路である。FFは分割された処理の中間結果が記憶される。
図9はパイプライン回路を説明するための図である。同図(A)は分割された処理が四個の例における回路構成である。同図(B)はこの例における動作を示すタイミングチャートである。時刻T0で入力された画素データ0は処理回路0で処理され、その処理結果が時刻T1でFF0に記憶される。時刻T1でFF0に記憶されたデータ(画素データ0の中間データ)と同時刻で入力された画素データ1はそれぞれ処理回路1と処理回路0で処理され、時刻T2でFF1とFF0に記憶される。時刻T2でFF1とFF0に記憶されたデータ(画素データ0と画素データ1の中間データ)及び同時刻で入力された画素データ2はそれぞれ処理回路2、処理回路1、処理回路0で処理され、時刻T3でFF2、FF1、FF0に記憶される。時刻T3でFF2、FF1、FF0に記憶されたデータ(画素データ0、1、2の中間データ)及び同時刻で入力された画素データ3はそれぞれ処理回路3、2、1、0で処理され、時刻T4でFF3、FF2、FF1、FF0に記憶される。時刻T0で入力された画素データは時刻T4で結果が出力される。つまり、入力された画素データは4クロックのレイテンシ(時間遅れ)をもって、結果が出力される。
時刻T4で画素データ4がこのパイプライン回路に入力され、次の画素データ5からは別の処理を施したい場合を考えると、画素データ4の結果が出力される時刻T8まではパイプライン回路の回路構成を変更できないのは明らかである。つまり、信号処理回路307の回路構成が4段のパイプライン回路であった場合、その回路構成で処理する最後の画素データを入力してから、最短でも4クロック後に回路構成が変更可能となる。
動的切換時間は回路構成を切り換えるために必要な時間と信号処理回路307のレイテンシの和となる。
図10は動的回路切換時間算出部303の動作を説明するためのフローチャートである。同図では属性情報の取りうる値は4種類と仮定し、数値0から3に対応付けている。
ステップS501で初期化を行う。reconfig_total_timeは算出すべき動的回路切換時間の合計を格納する変数で、ゼロで初期化する。is_exist_attr[i](iは0から3)は算出すべき属性情報iが存在するか否かのフラグを格納する変数で、すべてゼロで初期化する。prev_attrは前の画素の属性情報を格納する内部変数である。pixel_countは参照した属性情報の数を格納する内部変数で、ゼロで初期化する。
ステップS502で、最初の属性情報を入力する。入力した属性情報が変数attrに格納する。
ステップS503で最初の属性情報を処理する。is_exist_attr[attr]を1にすることで、属性情報iが存在するか否かのフラグを更新する。prev_attrにattrの値を設定し、pixel_countをインクリメントする。
ステップS504で次の属性情報を入力する。入力した属性情報が変数attrに格納する。
ステップS505で、前の画素の属性情報と現時点の属性情報を比較する。これらが等しければ、つまり、前の画像データと現時点の画素データの処理が同じであれば、ステップS507へジャンプする。さもなければ、つまり、前の画像データと現時点の画素データの処理が異なる場合は、次のステップへ進む。
ステップS506で、変数reconfig_total_timeを更新する。ここで、DRT[i]は信号処理回路307の回路構成を属性情報iに対応するものから、別の属性情報に対応するものに切り換えるときの動的回路切換時間表す値(例えば、クロック数)を格納する定数である。
ステップS507で、属性情報に対して、is_exist_attr[attr]を1にすることで、属性情報iが存在するか否かのフラグを更新する。さらに、prev_attrにattrの値を設定し、pixel_countをインクリメントする。
ステップS508で、参照した属性情報の数pixel_countをチェックする。すべての属性情報を参照していない場合、ステップS504に戻り、さもなければ、処理を終了する。ここで、NPIXELSは処理すべき画像データの数を表す。通常、NPIXELSは1ページの画像データのバンドやタイル部分に含まれる画素数である。
処理方式制御部305は動的回路切換時間算出部303で算出された値を基に処理方式を切り換えて制御する。第一の処理方式は、画像データの入力画素毎に信号処理回路307を属性情報に対応した処理に変更しながら処理を行う方式である。また、第二の処理方式は、信号処理回路307の回路構成を変更せずに入力画像データを処理し、次に信号処理回路307の回路構成を変更して再度入力画像データを処理し、それらの処理結果の画素を属性情報から選択して結果を得る処理を行う方式である。
図11は、第一の処理方式と第二の処理方式での処理時間を示す図である。同図(A)は属性情報の分布を示す。同図(B)は第一の処理方式と第二の処理方式での処理時間を図示している。
まず、第一の処理方式について説明する。この例では、属性情報1から属性情報0への切り替わりが一箇所である。従って、同図(B)上に示すように、属性情報1の部分を処理した後に、信号処理回路307の回路構成を属性情報0の処理に対応した回路構成に変更する。その際に、動的回路切換時間(同図で、D1の部分)を要する。その後に、属性情報0の部分を処理する。
次に、第二の処理方式について説明する。この例では、属性情報として、属性情報1と属性情報0の2種類が存在する。従って、同図(B)下に示すように、全画素データを信号処理回路307の回路構成を属性情報0の処理に対応した回路構成で処理を行い、信号処理回路307の回路構成を属性情報1の処理に対応した回路構成に変更する。その際に、動的回路切換時間(同図で、D0の部分)を要する。その後に、全画素データを信号処理回路307の回路構成を属性情報1の処理に対応した回路構成で処理を行う。
ここで、第二の処理方式における、1回の全画素データの処理時間を表す値Tと使えば、
(第一の処理方式での処理時間)= T+D1
(第二の処理方式での処理時間)= 2*T+D0
となる。Tがクロック数であれば、Tは全画素データ数となる。この例では、第一の処理方式の処理時間のほうが短いことがわかる。
(第一の処理方式での処理時間)= T+D1
(第二の処理方式での処理時間)= 2*T+D0
となる。Tがクロック数であれば、Tは全画素データ数となる。この例では、第一の処理方式の処理時間のほうが短いことがわかる。
図12は、他の例での第一の処理方式と第二の処理方式での処理時間を示す図である。同図(A)は属性情報の分布を示す。同図(B)は第一の処理方式と第二の処理方式での処理時間を図示している。
まず、第一の処理方式について説明する。この例では、属性情報1から属性情報0への切り替わりと属性情報0から属性情報1への切り替わりが多数存在する。従って、同図(B)上に示すように、まず、上部の属性情報1の部分を処理する。その後、信号処理回路307の回路構成を属性情報0の処理に対応した回路構成に変更し、属性情報0の部分を処理し、信号処理回路307の回路構成を属性情報1の処理に対応した回路構成に変更し、属性情報1の部分を処理することを繰り返す。第二の処理方式については、図11と同じである。従って、
(第一の処理方式での処理時間)=T+D0*n+D1*(n+1)
(第二の処理方式での処理時間)=2*T+D0
となる。ここで、nは属性情報0から属性情報1への切り替わり回数である。この例では、第二の処理方式の処理時間のほうが短いことがわかる。
(第一の処理方式での処理時間)=T+D0*n+D1*(n+1)
(第二の処理方式での処理時間)=2*T+D0
となる。ここで、nは属性情報0から属性情報1への切り替わり回数である。この例では、第二の処理方式の処理時間のほうが短いことがわかる。
動的回路切換時間算出部303で算出されたreconfig_total_timeの値から、第一の処理方式での処理時間は
(第一の処理方式での処理時間)=T+reconfig_total_time
と表すことができる。また、動的回路切換時間算出部303で算出されたis_exist_attr[i]から属性情報の種類の数がわかるので、第二の処理方式での処理時間は
(第二の処理方式での処理時間)=(Σis_exist_attr)*T+α
と表すことができる。第二の処理方式では、Σis_exist_attr回の全画素データ処理を行うが、αは各全画素データ処理間の動的回路切換時間の合計を表す。Tに比べてαは十分小さいので、計算を簡単にするために
(第二の処理方式での処理時間)=(Σis_exist_attr)*T
とする。
(第一の処理方式での処理時間)=T+reconfig_total_time
と表すことができる。また、動的回路切換時間算出部303で算出されたis_exist_attr[i]から属性情報の種類の数がわかるので、第二の処理方式での処理時間は
(第二の処理方式での処理時間)=(Σis_exist_attr)*T+α
と表すことができる。第二の処理方式では、Σis_exist_attr回の全画素データ処理を行うが、αは各全画素データ処理間の動的回路切換時間の合計を表す。Tに比べてαは十分小さいので、計算を簡単にするために
(第二の処理方式での処理時間)=(Σis_exist_attr)*T
とする。
図13は処理方式制御部305の動作を説明するためのフローチャートである。
ステップS601で、動的回路切換時間算出部303で算出されたis_exist_attr[i]から属性情報の種類の数Nを計算する。
ステップS602で、第一の処理方式での処理時間と第二の処理方式での処理時間とを比較する。処理方式制御部305はこれらの二つの値の小さいほうに対応する処理方式を行うように、画像処理部37の各ブロックを制御する(ステップS603或いはステップS604)。この処理方式の選択より、画像処理における、信号処理回路307の回路構成変更のために費やす時間を最小化できる。
図14は処理方式制御部305が第一の処理方式を選択した時の動作を説明するためのフローチャートである。
ステップS701で初期化を行う。input_pixel_countは信号処理回路307に入力した画素データの数を格納する内部変数で、ゼロで初期化する。また、prev_attrは前の画素の属性情報を格納する内部変数である。
ステップS702で、信号処理回路307のライトイネーブルをONにする。第一の処理方式の場合には、常にONである。信号処理回路307のライトイネーブルの説明は後述する。
ステップS703で、データ分離部304から、最初の画素データと属性情報を入力する。入力した画素データは変数pixelに、入力した属性情報は変数attrに、それぞれ格納する。
ステップS704で、コンフィギュア選択部306へ最初の属性情報attrを送出し、信号処理回路307の回路構成を属性情報attrに対応したものに変更する。
ステップS705で、信号処理回路307の回路構成が属性情報attrに対応したものへ変更された後に、最初の画素データpixelを信号処理回路307へ送出する。そして、prev_attrにattrの値を設定し、input_pixel_countをインクリメントする。
ステップS706で、データ分離部304から、次の画素データと属性情報を入力する。入力した画素データは変数pixelに、入力した属性情報は変数attrに、それぞれ格納する。
ステップS707で、前の画素の属性情報と現時点の属性情報を比較する。これらが等しければ、つまり、前の画像データと現時点の画素データの処理が同じであれば、ステップS710へジャンプする。さもなければ、つまり、前の画像データと現時点の画素データの処理が異なる場合は、次のステップへ進む。
ステップS708で、信号処理回路307から出力された画素数output_pixel_countを参照し、今まで送出した画素データが信号処理回路307で処理され、出力されるのを待つ。
ステップS709で、コンフィギュア選択部306へ新たな属性情報attrを送出し、信号処理回路307の回路構成をその属性情報に対応したものに変更する。
ステップS710で、信号処理回路307の回路構成が新たな属性情報に対応したものへ変更された後に、画素データpixelを信号処理回路307へ送出する。そして、prev_attrにattrの値を設定し、input_pixel_countをインクリメントする。
ステップS711で、信号処理回路307に入力した画素データの数input_pixel_countをチェックする。すべての画素データが信号処理回路307に入力されていなければ、ステップS706に戻り、さもなければ、次のステップへ進む。
ステップS712で、入力データ一時記憶部302へ、すべての画像データを読み込んだことを通知する。この通知により、入力データ一時記憶部302はこれらの画像データを記憶していた領域を開放する。
ステップS713で、信号処理回路307から出力した画素データの数output_pixel_countをチェックする。ここですべての画素データが処理され、信号処理回路307から出力されるまで待つ。
ステップS714で、出力データ一時記憶部308へ、すべての処理された画像データを書き込んだことを通知する。この通知により、出力データ一時記憶部308はこれらの画像データを記憶している領域のデータをデータI/F301へ送出する。
図15は処理方式制御部305が第二の処理方式を選択した時の動作を説明するためのフローチャートである。
ステップS801で第二の処理方式での処理全体の初期化を行う。iteratorは全画像データの処理を完了した回数を格納する内部変数であり、ゼロで初期化する。また、cur_attrは全画像データの処理における、信号処理回路307の回路構成がどの属性情報に対応するものかを格納するための内部変数であり、ゼロで初期化する。
ステップS802で、全画像データの処理を行う。この処理の詳細は後述する。
ステップS803で、全画像データ処理終了後にiteratorをインクリメントする。
ステップS804で、全画像データ処理をN回終了したかを判断する。N回終了していなければ、ステップS802に戻り、さもなければ、次のステップへ進む。ここで、Nは図13で図示された、画像データに存在する属性情報の種類の数である。
ステップS805で、入力データ一時記憶部302へ、すべての画像データを読み込んだことを通知する。この通知により、入力データ一時記憶部302はこれらの画像データを記憶していた領域を開放する。
ステップS806で、出力データ一時記憶部308へ、すべての処理された画像データを書き込んだことを通知する。この通知により、出力データ一時記憶部308はこれらの画像データを記憶している領域のデータをデータI/F301へ送出する。
つぎに、第二の処理方式における、全画像データの処理の動作を同図(B)に沿って説明する。
ステップS8001で初期化を行う。input_pixel_countは信号処理回路307に入力した画素データの数を格納する内部変数で、ゼロで初期化する。
ステップS8002で、属性情報cur_attrが画像データ内に存在するかを、動的回路切換時間算出部303で算出されたis_exist_attr[i]から判断する。属性情報cur_attrが画像データ内に存在する場合にはステップS8004へ進み、さもなければ、cur_attrをインクリメントし(ステップS8003)、再度属性情報cur_attrが画像データ内に存在するかを判断する。
ステップS8004で、全画像データの処理を開始する前に、コンフィギュア選択部306へ属性情報cur_attrを送出し、信号処理回路307の回路構成を属性情報cur_attrに対応したものに変更する。
ステップS8005で、データ分離部304から、次の画素データと属性情報を入力する。入力した画素データは変数pixelに、入力した属性情報は変数attrに、それぞれ格納する。
ステップS8007で、入力した属性情報とcur_attrを比較する。これらが等しければ、つまり、入力した属性情報が信号処理回路307の回路構成に対応していれば、信号処理回路307のライトイネーブルをONにする(ステップS8007)。さもなければ、つまり、入力した属性情報が信号処理回路307の回路構成に対応していなければ、信号処理回路307のライトイネーブルをOFFにする(ステップS8008)。ライトイネーブルをOFFした場合、信号処理回路307はその時に入力した画素データの処理結果を出力データ一時記憶部308に書き出すことを行わない。このことにより、出力データ一時記憶部308には、信号処理回路307の回路構成に対応した属性情報を持った画素データの結果のみが書き出される。
ステップS8009で、画素データpixelを信号処理回路307へ送出する。そして、input_pixel_countをインクリメントする。
ステップS8010で、信号処理回路307に入力した画素データの数input_pixel_countをチェックする。すべての画素データが信号処理回路307に入力されていなければ、ステップS8005に戻り、さもなければ、次のステップへ進む。
ステップS8011で、信号処理回路307から出力した画素データの数output_pixel_countをチェックする。ここですべての画素データが処理され、信号処理回路307から出力されるのを待って、全画像データの処理を終了する。
以上の説明により、本実施形態によって、処理時間を最小化して画像処理を行うことができる。
本発明の他の実施形態に係る画像処理部37の動作について、図16、図17及び図18を用いて説明する。この例は、動的回路切換時間が属性情報に対応した回路構成によらず等しい場合に適応できる。
図16は、画像処理部37の基本構成を示すブロック図である。前の実施例との違いは、動的回路切換時間算出部303が動的回路切換回数計数部403に置き換わっている。その他は、図8で示されたものと同じである。
図17は動的回路切換回数計数部403の動作を説明するためのフローチャートである。動的回路切換時間算出部303のフローチャート(図10)とほぼ同じであるが、動的回路切換時間の合計を算出する代わりに、動的回路切換回数を計数している。図10と異なる部分のみを説明する。
ステップS901の初期化では、attr_change_point_countは算出すべき動的回路切換回数を格納する変数で、ゼロで初期化する。
前の画像データと現時点の画素データの処理が異なる場合は、ステップS906で、attr_change_point_countをインクリメントする。
属性情報に対応した回路構成によらずに等しい動的回路切換時間をDRTとすれば、動的回路切換回数計数部403で計数されたattr_change_point_countの値から、第一の処理方式での処理時間は
(第一の処理方式での処理時間)=
T+attr_change_point_count*DRT
と表すことができる。また、動的回路切換回数計数部403で算出されたis_exist_attr[i]から、第二の処理方式での処理時間は
(第二の処理方式での処理時間)=(Σis_exist_attr)*T
と表すことができる。
(第一の処理方式での処理時間)=
T+attr_change_point_count*DRT
と表すことができる。また、動的回路切換回数計数部403で算出されたis_exist_attr[i]から、第二の処理方式での処理時間は
(第二の処理方式での処理時間)=(Σis_exist_attr)*T
と表すことができる。
図18は処理方式制御部305の動作を説明するためのフローチャートである。
ステップS1001で、動的回路切換回数計数部403で算出されたis_exist_attr[i]から属性情報の種類の数Nを計算する。
ステップS1002で、第一の処理方式での処理時間と第二の処理方式での処理時間とを比較する。処理方式制御部305はこれらの二つの値の小さいほうに対応する処理方式を行うように、画像処理部37の各ブロックを制御する(ステップS1003或いはステップS1004)。この処理方式の選択より、画像処理における、信号処理回路307の回路構成変更のために費やす時間を最小化できる。
さらに、動的回路切換時間が属性情報に対応した回路構成によらず等しいという条件に加えて、属性情報の種類が2種類の場合には、動的回路切換回数計数部403と処理方式制御部305での処理方式を選択するための判断が単純化できる。
属性情報の種類が2種類の場合には、動的回路切換回数計数部403ではis_exist_attr[i]を算出する必要がない。attr_change_point_countがゼロの場合、
(第一の処理方式での処理時間)=T
(第二の処理方式での処理時間)=T
と等しくなる。attr_change_point_countがゼロでない場合、
(第一の処理方式での処理時間)=
T+attr_change_point_count*DRT
(第二の処理方式での処理時間)=(Σis_exist_attr)*T=2*T
となり、処理時間の計算でis_exist_attrは必要ない。そして、attr_change_point_countがゼロの場合に、処理方式制御部305が第一の処理方式を選択するようにすれば、第二の処理方式での処理は、常に2回の全画像データの処理を行えば良い。従って、第二の処理方式での処理の際も、is_exist_attrは必要ない。
(第一の処理方式での処理時間)=T
(第二の処理方式での処理時間)=T
と等しくなる。attr_change_point_countがゼロでない場合、
(第一の処理方式での処理時間)=
T+attr_change_point_count*DRT
(第二の処理方式での処理時間)=(Σis_exist_attr)*T=2*T
となり、処理時間の計算でis_exist_attrは必要ない。そして、attr_change_point_countがゼロの場合に、処理方式制御部305が第一の処理方式を選択するようにすれば、第二の処理方式での処理は、常に2回の全画像データの処理を行えば良い。従って、第二の処理方式での処理の際も、is_exist_attrは必要ない。
処理方式制御部305での処理方式を選択するための判断では、
T+attr_change_point_count*DRT<=2*T
を満たせば、第一の処理方式を選択するようにすれば良い。上の式を書き換えると、
attr_change_point_count<=T/DRT
となり、動的回路切換回数attr_change_point_countを定数T/DRTの単純な比較を行えば良い事になる。
T+attr_change_point_count*DRT<=2*T
を満たせば、第一の処理方式を選択するようにすれば良い。上の式を書き換えると、
attr_change_point_count<=T/DRT
となり、動的回路切換回数attr_change_point_countを定数T/DRTの単純な比較を行えば良い事になる。
1 スキャナ
2 ホストコンピュータ
3 画像処理装置
4 記憶装置
5 印字エンジン部
31 スキャナ入力色処理ブロック
32 ホストI/F部
33 PDL処理部
34 CPU
35 RAM
36 ROM
37 画像処理部
38 スケジューラ
39 ストレージコントローラ部
40 エンジンI/F部
41 バス
301 データI/F
302 入力データ一時記憶部
303 動的回路切換時間算出部
304 データ分離部
305 処理方式制御部
306 コンフィギュア選択部
307 信号処理回路
308 出力データ一時記憶部
403 動的回路切換回数計数部
2 ホストコンピュータ
3 画像処理装置
4 記憶装置
5 印字エンジン部
31 スキャナ入力色処理ブロック
32 ホストI/F部
33 PDL処理部
34 CPU
35 RAM
36 ROM
37 画像処理部
38 スケジューラ
39 ストレージコントローラ部
40 エンジンI/F部
41 バス
301 データI/F
302 入力データ一時記憶部
303 動的回路切換時間算出部
304 データ分離部
305 処理方式制御部
306 コンフィギュア選択部
307 信号処理回路
308 出力データ一時記憶部
403 動的回路切換回数計数部
Claims (6)
- 画素データとそれぞれの画素の属性情報を含む画像データを、複数種の画像処理が実行可能なように回路変更が可能な処理回路で画像処理を行う画像処理装置において、
属性情報を参照し、画素データに対する処理を切り換えなければならない回数と存在する属性情報の種類を計数する手段と、
前記計数手段で得られた値から入力画像データの処理方式を切り換える処理方式切換手段と
を備えることを特徴とする画像処理装置。 - 請求項1に記載の画像処理装置において、
前記処理方式切換手段は、前記計数手段で得られた回数が所定の値より小さい場合には第一の処理方式を行い、さもなければ第二の処理方式を行うように制御する回路であって、
前記第一の処理方式は、画像データの入力画素毎に回路変更が可能な処理回路を属性情報に対応した処理に変更しながら処理を行う方式であり、
前記第二の処理方式は、回路変更が可能な処理回路を変更せずに入力画像データを処理し、次に処理回路を変更して再度入力画像データを処理し、それらの処理結果の画素を属性情報から選択して結果を得る処理を行う方式であることを特徴とする画像処理装置。 - 請求項1及至2に記載の画像処理装置において、
前記計数手段が計数を行う画像データの単位はページの矩形部分(バンドやタイル)単位であることを特徴とする画像処理装置。 - 画素データとそれぞれの画素の属性情報を含む画像データを、複数種の画像処理が実行可能なように回路変更が可能な処理回路で画像処理を行う画像処理装置において、
属性データを参照し、画素データに対する処理を切り換えるために回路変更が可能な処理回路の回路変更に要する総時間を表す値と存在する属性情報の種類を算出する手段と、
前記算出手段で得られた値から入力画像データの処理方式を切り換える処理方式切換手段と
を備えることを特徴とする画像処理装置。 - 請求項4に記載の画像処理装置において、
前記処理方式切換手段は、前記算出手段で得られた値が所定の値より小さい場合には第一の処理方式を行い、さもなければ第二の処理方式を行うように制御する回路であって、
前記第一の処理方式は、画像データの入力画素毎に回路変更が可能な処理回路を属性情報に対応した処理に変更しながら処理を行う方式であり、
前記第二の処理方式は、回路変更が可能な処理回路を変更せずに入力画像データを処理し、次に処理回路を変更して再度入力画像データを処理し、それらの処理結果の画素を属性情報から選択して結果を得る処理を行う方式であることを特徴とする画像処理装置。 - 請求項4及至5に記載の画像処理装置において、
前記算出手段が算出を行う画像データの単位はページの矩形部分(バンドやタイル)単位であることを特徴とする画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009204758A JP2011054098A (ja) | 2009-09-04 | 2009-09-04 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009204758A JP2011054098A (ja) | 2009-09-04 | 2009-09-04 | 画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011054098A true JP2011054098A (ja) | 2011-03-17 |
Family
ID=43942999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009204758A Pending JP2011054098A (ja) | 2009-09-04 | 2009-09-04 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011054098A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013142999A (ja) * | 2012-01-11 | 2013-07-22 | Fuji Xerox Co Ltd | 画像処理装置 |
JP2013161471A (ja) * | 2012-02-09 | 2013-08-19 | Fuji Xerox Co Ltd | 画像処理装置 |
-
2009
- 2009-09-04 JP JP2009204758A patent/JP2011054098A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013142999A (ja) * | 2012-01-11 | 2013-07-22 | Fuji Xerox Co Ltd | 画像処理装置 |
JP2013161471A (ja) * | 2012-02-09 | 2013-08-19 | Fuji Xerox Co Ltd | 画像処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2490433A1 (en) | Controlling device | |
JP5438371B2 (ja) | 画像処理装置および画像処理方法 | |
JP2009230652A (ja) | 印刷制御装置、印刷装置およびプログラム | |
JP6116352B2 (ja) | 製本印刷システムおよび情報処理装置およびその制御方法およびプログラム | |
JP5441487B2 (ja) | 画像処理装置及びその制御方法 | |
JP2011054098A (ja) | 画像処理装置 | |
JP6544905B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
JP6434775B2 (ja) | 画像形成装置およびその制御方法、並びにプログラム | |
JP7040058B2 (ja) | 符号化装置 | |
JP2006285792A (ja) | 画像処理装置、画像処理方法 | |
JP2018058295A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP5202265B2 (ja) | 画像処理装置、プログラム及び画像処理装置の制御方法 | |
JP5093576B2 (ja) | 印刷制御装置と画像形成システム | |
JP6914027B2 (ja) | 画像形成装置、画像形成方法 | |
JP2014198459A (ja) | 画像形成装置、画像形成システム、プログラムおよび画像形成装置の制御方法 | |
JP2015133644A (ja) | 画像処理装置、同装置における画像処理方法及び画像処理プログラム | |
JP4389199B2 (ja) | プリンタシステム | |
KR101101820B1 (ko) | 화상형성장치에 연결된 호스트장치 및 그 화상형성방법 | |
JP2009006507A (ja) | 画像形成装置 | |
JP6775558B2 (ja) | 画像伸長装置及びその制御方法及びプログラム | |
JP6168311B2 (ja) | 画像形成装置、画像形成システムおよび画像形成方法 | |
JP2009088945A (ja) | 画像形成システム、及び画像形成プログラム | |
JP4118834B2 (ja) | プリンタ制御プログラム及びプリンタ制御装置 | |
JP5476856B2 (ja) | 画像データ圧縮装置および印刷システム | |
JP2016063316A (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び情報処理装置 |