JP2006166251A - 画像処理装置およびその制御方法 - Google Patents

画像処理装置およびその制御方法 Download PDF

Info

Publication number
JP2006166251A
JP2006166251A JP2004357180A JP2004357180A JP2006166251A JP 2006166251 A JP2006166251 A JP 2006166251A JP 2004357180 A JP2004357180 A JP 2004357180A JP 2004357180 A JP2004357180 A JP 2004357180A JP 2006166251 A JP2006166251 A JP 2006166251A
Authority
JP
Japan
Prior art keywords
processing
image
image data
enlargement
reduction
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.)
Withdrawn
Application number
JP2004357180A
Other languages
English (en)
Inventor
Fumitada Nagashima
史忠 長島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004357180A priority Critical patent/JP2006166251A/ja
Publication of JP2006166251A publication Critical patent/JP2006166251A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Control Or Security For Electrophotography (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】スキャナ処理、プリンタ処理を実行できる画像処理装置において、回路規模を縮小する為にスキャナ処理とプリンタ処理で画像の拡大・縮小処理を行う拡大縮小回路を共有する。また、スキャナ処理、プリンタ処理の処理内容や拡大縮小率に応じて画像処理の順序を切り替えて、性能をあげる。
【解決手段】内部にインストラクションメモリ21を内蔵しデータ転送のみに特化した命令セットを持つDMAプロセッサとスキャナ処理、プリンタ処理を行う画像処理回路とを接続する構成。画像の拡大・縮小を行う拡大縮小回路はスキャナ処理、プリンタ処理で共有する。
【選択図】図1

Description

本発明は、たとえば画像の拡大縮小を行う回路を、スキャナ処理とプリンタ処理とで共有する画像処理装置に関する。
スキャナ入力された画像データの処理、および、プリンタから出力する画像データの処理を実行できる画像処理回路では、画像の拡大・縮小処理を行う拡大縮小回路は基本機能として備わっている。このような画像処理回路は、プリントのための画像処理を行うプリント処理ブロックと、画像スキャニングのための画像処理を行うスキャナ処理ブロックのそれぞれに拡大縮小回路を別々に持っている。そして、それぞれの処理ブロックにおける一連の画像処理においては、拡大縮小処理の位置付け(順序)は固定されている(特許文献1等参照)。
特開平05−219360号公報
しかし、画像の拡大縮小処理において、画像を縮小する場合には画素数が少なくなるので、なるべく他の処理を行う前、最初に縮小処理を行った方が処理性能はあがる。逆に画像を拡大する場合には、画素数が多くなるので、なるべく他の処理を行った後、最後に処理した方が良い。つまり、画像の縮小処理時には拡大縮小回路を一連の画像処理の最初のほうに配置し、逆に画像の拡大処理時には最後の方に配置する方が、処理性能が上がる。
スキャナ入力された画像データの処理、および、プリンタから出力する画像データの処理を実行できる画像処理回路においては、画像の拡大あるいは縮小を行う場合には、画像データを拡大してプリンタから出力させるプリント画像拡大モード、画像データを縮小してプリンタから出力させるプリント画像縮小モード、スキャナから入力した画像データを拡大するスキャナ画像拡大モード、スキャナから入力した画像データを縮小するスキャナ画像縮小モード、スキャナから入力した画像データを拡大してプリンタから出力させるコピー画像拡大モード、スキャナから入力した画像データを縮小してプリンタから出力させるコピー画像縮小モードなど、多数の処理モードが考えられる。
こられの多様な処理モードのそれぞれにおいて画像処理性能を向上させるためには、縮小処理は画像処理の先頭で、拡大処理は画像処理の最後に行うのが望ましいという原則に則って画像処理順序を最適切り替えることが必要となる。これを実現しようとすれば、従来の画像処理回路では、拡大縮小回路は固定的に配置されているので、画像処理順序を変更するには、たとえばセレクタ回路を複数配置して処理順序を切り替えるという手段をとる必要がある。このセレクタ回路を用いた回路構成で、上述した様々な処理モードに応じて画像処理順序を切り替えようとすると、回路構成が相当複雑になる。
また、スキャナ処理ブロックおよびプリント処理ブロックで拡大縮小回路を別々に持つため、セレクタによる順序制御を行わない場合であっても回路規模が大きくなってしまう。回路規模を縮小するには拡大縮小回路をスキャナ処理ブロックとプリント処理ブロックで共有することが必要である。
しかし、拡大縮小回路を共有化した構成でセレクタ回路を用いて処理モードごとに処理順序を柔軟に切り替えようとすると、回路構成が益々複雑になる。
本発明は上記問題点を解決するためになされたもので、拡大縮小回路を各処理ブロックで共有することで回路規模を縮小し、また、拡大処理および縮小処理の順序を、画像処理全体の中における最適の位置で実行することで、高速な画像処理を実現する画像処理装置を提供することを目的とする。
本発明は上記従来例に鑑みてなされたもので、以下の構成を備える。
命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
前記DMAプロセッサから転送される画像データに対して拡大縮小処理を施す変倍手段と、
前記DMAプロセッサから転送される画像データに対して拡大縮小以外の画像処理を施す画像処理手段と、
前記変倍手段と前記画像処理手段とに対して処理モードに応じた順序で画像データを転送する命令コードを、前記命令メモリに記録する命令書き替え手段とを備える。
あるいは、命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
前記DMAプロセッサから転送される画像データに対して拡大縮小処理を施す変倍処理部と、
前記DMAプロセッサから転送される画像データに対して入力補正処理を施す入力補正処理部と、
前記DMAプロセッサから転送される画像データに対して出力補正処理を施す出力補正処理部と、
前記DMAプロセッサから転送される画像データに対して面積階調処理を施す階調処理部と、
前記変倍処理部と前記入力補正処理部と前記出力補正処理部と前記階調処理部とに対して処理モードに応じた順序で画像データを転送する命令コードを、前記命令メモリを記録するプロセッサとを備え、
前記プロセッサは、前記処理モードがスキャンモードの場合、変倍処理が拡大処理であれば、前記入力補正処理部、前記変倍処理部の順に画像データを転送し、変倍処理が縮小処理であれば、前記変倍処理部、前記入力補正処理部の順に画像データを転送する命令コードを前記命令メモリに記録し、
前記処理モードがプリントモードの場合、変倍処理が拡大処理であれば、前記出力補正処理部、前記変倍処理部、前記階調処理部の順に画像データを転送し、変倍処理が縮小処理であれば、前記変倍処理部、前記出力補正処理部、前記階調処理部の順に画像データを転送する命令コードを前記命令メモリに記録し、
前記処理モードがコピーモードの場合、変倍処理が拡大処理であれば、前記入力補正処理部、前記出力補正処理部、前記変倍処理部、前記階調処理部の順に画像データを転送し、変倍処理が縮小処理であれば、前記変倍処理部、前記入力補正処理部、前記出力補正処理部、前記階調処理部の順に画像データを転送する命令コードを前記命令メモリに記録する。
本発明によれば、処理モードに応じて処理順序を切り替えることができるので、拡大縮小回路を複数持つ必要がなく回路規模の削減が実現できる。また、簡易な回路構成で画像の拡大処理および縮小処理の処理順序を変更することができ、処理性能をあげることができる。
<画像処理装置の構成>
本発明における一実施形態を図面を用いて説明する。図15は、画像スキャナおよびプリンタを組み合わせて構成され、スキャン、プリント、コピーという3つの動作モード(処理モード)で動作可能なディジタル複合機の構成を示すブロック図である。図15において、画像スキャナ1502は、CCD等の画像センサにより原稿画像を光学的に走査して、スキャナIF1502を介して、ディジタル画像データを制御部1501に入力する。プリンタ部1505は、制御部1501から出力されるディジタル画像データをプリンタIF1504を介して受信し、画像データに基づいて、シート等の印刷媒体上に画像を形成する。操作部1506は利用者に対する画面やキーボード等のユーザインターフェースを提供し、利用者によりたとえばスキャン、プリント、コピーといった処理モードが入力される。なおこれらモードは、ネットワークインターフェース(不図示)を介して他の端末等から入力することもできる。制御部1501は、入力された処理モードに応じて画像スキャナ1501およびプリンタ1505を制御する。処理モードがスキャンモードであれば、画像スキャナ1502によって画像を読み取り、読み取った画像に対して一定の入力画像処理を施した後に、メモリの与えられたアドレスにその画像データを保存する。また、プリントモードであれば、入力された画像データに対して一定の出力画像処理を施した後、プリンタ1505によりその画像データに基づく画像を出力させる。コピーモードであれば、画像スキャナ1502によって画像を読み取り、読み取った画像に対して一定の入力画像処理を施した後に、さらにその画像データに対して一定の出力画像処理を施した後、プリンタ1505によりその画像データに基づく画像を、指定された部数出力させる。それら画像処理のために、制御部1501には画像処理部18が内蔵されている。
図1は本発明に係る画像処理部18の構成の一例を示した図である。図1(A)で示しているように、画像処理部には、入力された画像データの補正処理等を行うためのスキャナシステム16と、出力しようとする画像データの補正処理等を行うためのプリントシステム18と、スキャナシステム16とプリントシステム17とにより共有される拡大縮小回路7とが含まれている。
スキャナシステム16では、シェーディング回路8、マスキング処理回路9、ガンマ補正回路10、MTF(変調伝達関数)回路11、色変換回路12で処理を行う。シェーディング回路8は、原稿を読み取るセンサのばらつき、および原稿照明用ランプの配光特性の補正を行う。マスキング処理回路9は、CCD等の光電変換素子の分光特性及び光源および反射傘の分光特性を補正する。ガンマ補正回路10は、CCD等の非線形性を補正する。MTF回路11は、読取速度や変倍率によって読取のMTF(変調伝達関数)が変るため、その変化を補正する。たとえばエッジ強調またはスムージングなどの処理が行われる。色変換回路12は輝度信号(たとえばRGB信号)を濃度信号(たとえばYMC信号)など他の表色系に変換する。
プリントシステム17では、マトリクス演算回路13、γ補正回路14、誤差拡散回路15で処理を行う。マトリクス演算回路13は、YMC表色系のカラー画像データを、プリントに用いるトナーやインク特性に応じて色変換する。たとえば下色除去(UCR)処理などが行われる。γ補正回路14は、画素値をそれが出力される濃度と線形になるよう補正する。誤差拡散回路15は、多値画像データに面積階調処理を施して疑似階調化した二値データに変換する。
プロセッサ1は、DMAプロセッサインターフェース6を通してDMAプロセッサ2が読み込むインストラクションメモリ21を書き換えることができる。インストラクションメモリ21は書き替え可能なメモリであり、DMAプロセッサ2が解釈実行可能なプログラムが格納される。
DMAプロセッサインターフェース6はDMAプロセッサ2と接続されているとともに、アドレスバスおよびデータバス経由でプロセッサ1から読み書き可能なレジスタ61を持っており、このレジスタ61を書き換えることによってDMAプロセッサ2のリセット状態の制御およびDMAプロセッサ2内のインストラクションメモリ21の書き換えを行うことができる。
DMAプロセッサ2は、アドレスバスおよびデータバスに接続されているローカルメモリ3と、メモリコントローラ4を介して接続されたメインメモリ5との間のデータ転送を行うとともに、内部のインストラクションメモリ21に保持している命令列を読み込み、それを解釈及び実行する。インストラクションメモリ21は32ビットを1ワードとし、128ワードの命令列を格納することができる。個々のワードには0〜127のアドレスが割り振られており、基本的には0番地から順に命令列を実行する。
また、DMAプロセッサ2には出力ポート、入力ポートが複数あり、外部の回路へデータを出力したり、データを入力したりすることができる。図1(A)の構成では、DMAプロセッサ2の入出力ポートは、シェーディング8、γ補正10、MTF11、色変換12、拡大縮小7、マトリクス演算13、γ補正14、誤差拡散15と接続している。
具体的なDMAプロセッサ2と画像処理回路18との接続は図2のようになっている。メモリコントローラ4はアドレスバス及びデータバスからメインメモリ5にアクセスするための制御を行う。プロセッサ1、DMAプロセッサ2、ローカルメモリ3、メモリコントローラ4はそれぞれクロスバー接続されている。図1(B)にクロスバー接続された構成の一例を示す。プロセッサ1とDMAプロセッサ2とはDMAプロセッサインターフェース6を介して接続されており、DMAプロセッサ2には画像処理モジュール18が図2のように接続されている。プロセッサ1およびDMAプロセッサのデータバスおよびアドレスバスはクロスバースイッチ100を介してローカルメモリ3と、メモリコントローラ4を介してメインメモリ5とに接続されている。この構成により、DMAプロセッサ2は、メインメモリ5またはローカルメモリ3に格納された画像データを画像処理モジュール18に転送して各種の画像処理を施させ、処理後の画像データを再びメインメモリ5またはローカルメモリ3に保存することができる。またプロセッサ1もローカルメモリ3またはメインメモリ5にアクセスでき、画像処理に供する画像データをローカルメモリ3またはメインメモリ5に格納したり、あるいは画像処理後の画像データにアクセスすることができる。
図3はプロセッサ1及びDMAプロセッサ2において有効なメモリのアドレスマップである。プロセッサ1及びDMAプロセッサ2のアドレス空間には、ROM領域、DMAプロセサインターフェース6のレジスタ61、ローカルメモリ3,メインメモリ5がマッピングされている。ローカルメモリ3は、低レイテンシでアクセス可能であるが小容量のSRAMで構成されている。メインメモリ5は、アクセスには多くのレイテンシを必要とするが容量を大きくすることが可能なDRAMで構成されている。DMAプロセッサインターフェース6はプロセッサ1から読み書き可能なレジスタである。ROM領域31は、プロセッサ1のブート、及びプログラム格納用になっている。
図4は、プロセッサ1からアクセス可能なDMAプロセッサインターフェースのレジスタ61のレジスタマップである。0xe0000000番地(先頭の0xは16進表記であることを意味する。以下同じ。)はリセットレジスタである。リセットレジスタに1を書き込むとDMAプロセッサ2がリセット状態となり、0を書き込むとリセット解除状態となる。初期値は1である。0xe0000004番地はトリガエミットレジスタである。トリガエミットレジスタに1を書き込むとDMAプロセッサ2に対してトリガイベントを発生させることができる。DMAプロセッサ2はこのトリガイベントを専用の命令を実行することによって検知することができる。0xe0000008番地はトリガステータスレジスタである。0xe000000c番地はモードレジスタである。モードレジスタに1を書き込むと、DMAプロセッサ2が停止状態となり、インストラクションメモリ21を書き換え可能となる。0xe0000010番地はIMEMアドレスレジスタである。DMAプロセッサ2が停止状態にあってインストラクションメモリ21を書き換え可能なときに、インストラクションメモリ21の書き換え対象のアドレスをIMEMアドレスレジスタに書き込むことで、書き換え対象のアドレスが指定される。0xe0000014番地はIMEMデータレジスタである。DMAプロセッサ2が停止状態にあってインストラクションメモリ21を書き換え可能なときに、IMEMデータレジスタに値を書き込むことで、その値を、IMEMアドレスレジスタで指定されたインストラクションメモリ21の番地にDMAプロセッサ2の命令として書き込むことができる。このようにして、プロセッサ1はこのDMAプロセッサインターフェース6のレジスタの値を書き換えることにより、DMAプロセッサ2の命令を入れ替えることができる。この様な構成を備えることで、DMAプロセッサ2により実行される命令コードを格納したインストラクションメモリ21の内容を、プロセッサ1により動的に書き替えることができる。
<拡大縮小処理>
次に拡大縮小回路7について説明する。拡大縮小回路7は、2ライン(主走査方向の画素列)を用いて画像の線形補間を行う。図5は、線形補間における変換前の点と変換後の点の関係を示す。点A、B、C、Dは変換前の点、点Pは変換後の点である。点Pの位置は、点A、B間の長さを256、点A、C間の長さを256とした平面で表される。主走査方向をX方向、副走査方向をY方向とし、点Aを原点とすると、点Aの座標は(0,0)、点Dの座標は(255,255)となる。点A、B、C、D、Pの画素値をそれぞれa,b,c,d,pとする。Pの主走査方向の位置は点AB間を256とした場合の原点Aからの距離で表し、Laとする。Pの副走査方向の位置はAC間を256とした場合の原点Aからの距離で表し、Kaとする。点Pの画素値は、
p = {a・(256-La)・(256-Ka)+b・La・(256-Ka)+c・(256-La)・Ka+d・La・Ka}/(256・256)
で表される。この計算を縮小後の画素(点P)毎に行うことで縮小された画像データが生成される。すなわち拡大縮小回路7は、ラスタ形式の画像データについて少なくとも2画素×2画素の画像データが入力されれば、指定された変倍率で変倍した画像データを出力することができる。
ここで、変換前の画素間の長さを256とすると、変倍率は、変倍率を256/nと表した場合のnの値(すなわち画素間隔)で指定する。例えば、等倍の変倍率は256/n=1であるから、n=256が等倍を指定する値である。同様に、50%縮小の変倍率は256/n=0.5であるから、n=512がその変倍率を指定する値である。200%拡大の変倍率は256/n=2であるから、n=128がその変倍率を指定する値である。この倍率設定が、主走査方向および副走査方向について行われる。各方向についての倍率は、たとえば操作部1506から入力され、プロセッサ1によってメインメモリ5に保存される。
ここで、変倍率nに256以上の値が設定された場合には、拡大縮小回路7は、その変倍率と画像データとをDMAプロセサ2から受け取って、画像データに対して指定された倍率の縮小処理を行う。画像を縮小する場合には、図6のような線形補間を行う。図6において、変換前の点を白丸で、変換後の点を黒丸で表す。拡大縮小回路7は、変換後の画素(黒丸)を、図5に示したようにその近傍にある変換前の画素(白丸)4点で補間することで生成する。図6の例は、縦横(主走査・副走査方向)とも50パーセントの縮小を示す。なお、縮小率が2分の1、4分の1など2のべき乗分の1となる場合、すなわち倍率nが256の倍数となる場合には、補間処理を行わず、n/256画素毎に画素を残し、他の画素を間引くことでも縮小を実現できる。このような線形補間により、縮小時は画素数が少なくなる。
逆に、拡大する場合は図7のように線形補間を行っていき、画素数を多くする。補間される画素値を生成する要領は図5で説明したとおりであるが、拡大処理においては、元画像データにおける同一の4画素から複数の画素が生成される。図7の例では、横(主走査方向)は4分の7倍(すなわちn=146)、縦(副走査方向)は3分の4倍(すなわちn=192)となっている。
拡大縮小回路7は、このように正方4画素に基づいて補間画素を生成するが、LaおよびKaの値については、変倍率と画素の位置に従って独自に保持している。たとえば初期値をLa0=0、Ka0=0とし(初期値は256以内であれば適当でよい。)、画素が進む毎にLaにnの値を積算した値La0を保持し、ラインが進む毎にKaにnの値を積算した値Ka0を拡大縮小回路7により保持して、それぞれの値について256を法とする剰余を求める。この剰余値が求めるLa,Kaとなる。また、La0、Ka0の値の256による商が、補間に用いるべき元画像の画素の位置を示す値となる。たとえばこの商がLa0について200、Ka0について100であれば、第100ラインの第200番目の画素を図5の画素Aとした正方4画素により、画素の補間が行われる。La、Kaの保持の仕方についてはこれは一例に過ぎない。他の方法も取り得ることはいうまでもない。
ここで、拡大縮小回路7はスキャナシステム16とプリントシステム17で共有しているので、スキャナ処理が行われるときは、たとえばシェーディング回路8、マスキング処理回路9、γ補正回路10、MTF回路11、色変換回路12、拡大縮小回路7の順番で処理を行う。またプリンタ処理を行う場合には、たとえばマトリクス演算回路13、γ補正回路14、誤差拡散回路15、拡大縮小回路7の順番に処理を行う。このように、処理モードに応じてデータパスの切り替えを行うことにより、拡大縮小回路7の共有を実現することができる。
ただしこの順序では、拡大縮小回路7による処理が縮小処理であっても、一連の処理の最後に縮小処理を行うことになる。これに対して、画像処理システム全体の処理性能を考えると、縮小処理を一連の処理の先頭で行っておけば、画像を縮小する場合には画素数が少なくなるので処理性能はあがる。逆に画像を拡大する場合には、その処理により画素数が多くなるのでなるべく最後に処理した方が良い。さらに、スキャナ、プリント、コピー処理などの処理モードにより処理順序を切り替えることを考えると、この構成では、処理モードは更に細分化され、スキャナ画像拡大モード、スキャナ画像縮小モード、プリント画像拡大モード、プリント画像縮小モード、コピー画像拡大モード、コピー画像縮小モードの6通りのモードが考えられる。
そこで各処理モードに応じて、一連の画像処理における拡大縮小処理の位置(順序)を最適化することで、画像処理全体の効率を上げることができる。本実施形態の画像処理装置では、この処理順序をDMAプロセッサ2による画像データの転送の順序により制御できる。そこで、各処理モードに応じて最適な処理順序となるよう、インストラクションメモリ21をプロセッサ1により動的に書き替えて処理順序を最適化している。
<画像処理全体の手順>
図16に図15の画像処理装置における処理手順の概略を示す。操作部1506から、あるいは不図示のネットワークインターフェースから処理開始の指示が与えられると図16の手順が制御部1501、具体的にはプロセッサ1により実行される。この手順はメインメモリ5などに格納されたプログラムの実行により実現される。
まず、処理内容がスキャン又はコピーか、それともそれらのいずれでもないか(すなわちプリントか)が判定される(ステップS1601)。プリントであれば、入力インターフェースからプリント対象の画像データが制御部1501に入力される(ステップS1603)。スキャン又はコピーであれば、画像スキャナ1502が駆動されて画像データが読み取られて制御部1501に入力される(ステップS1602)。
入力された画像データはメインメモリ5に保存されて(ステップS1604)、画像処理部18によるデータ処理(画像処理)が実行される(ステップS1606)。
データ処理が終了すると、指定された処理内容がプリント又はコピーか、それともスキャンか判定される(ステップS1607)。スキャンであれば、出力インターフェース(不図示)から画像処理後の画像データを出力するか、あるいはメモリやハードディスク等に保存しておく。指定された処理がプリント又はコピーであれば、処理後の画像データをプリンタ1505に送信して印刷を行わせる(ステップS1608)。
図8A〜図8Cに、ステップS1606の詳細を示す。プロセッサ1は、指定された処理が、スキャナ処理、プリント処理、コピー処理のいずれであるかと、各処理における変倍処理が拡大か縮小かを判断して、DMAプロセッサインターフェース6に対してインストラクションメモリ21の内容を書き替えることでDMAプロセッサ2が実行するプログラムを書き替える。拡大縮小処理の順序は、それによって画像が拡大される場合には一連の画像処理の最後に変倍処理を行い、縮小される場合には最初に処理を行う。ただし、プリントを行う場合には、誤差拡散処理によって画像データは面積階調処理が施された2値データとなる。そのため、拡大処理は、多値画像データの最後の段階で行う必要がある。そこで、プリント時の誤差拡散処理は拡大処理後に行うものとする。
図8Aにおいて、まず処理内容がスキャンであるか判定する(ステップS801)。スキャンでなければ図8BのステップS805へ分岐する。スキャンであれば、変倍が拡大(スキャン画像拡大モード)か、縮小(スキャン画像縮小モード)かを判定する(ステップS802)。変倍率は操作部1506等から入力された値あるいはプリントを要求した端末等から入力された値を用いて判定できる。なお等倍の指定も本実施形態では変倍処理に含まれており、拡大として扱っても縮小として扱ってもいずれでもよい。
スキャナ画像拡大モードの場合には、プロセッサ1は、DMAプロセッサ2内のインストラクションメモリの内容を、図9に示すようなプログラムに書き替える(ステップS803)。スキャナ縮小拡大モードの場合には、プロセッサ1は、DMAプロセッサ2内のインストラクションメモリの内容を、図10に示すようなプログラムに書き替える(ステップS804)。
一方ステップS805において、処理内容がプリントでなければ図8CのステップS810へ分岐する。プリントであれば、変倍が拡大(プリント画像拡大モード)か、縮小(プリント画像縮小モード)かを判定する(ステップS806)。
プリント画像拡大モードの場合には、プロセッサ1は、DMAプロセッサ2内のインストラクションメモリの内容を、図11に示すようなプログラムに書き替える(ステップS807)。プリント縮小拡大モードの場合には、プロセッサ1は、DMAプロセッサ2内のインストラクションメモリの内容を、図12に示すようなプログラムに書き替える(ステップS808)。
一方ステップS810においては、処理はコピーであるので、変倍が拡大(コピー画像拡大モード)か、縮小(コピー画像縮小モード)かを判定する。
コピー画像拡大モードの場合には、プロセッサ1は、DMAプロセッサ2内のインストラクションメモリの内容を、図13に示すようなプログラムに書き替える(ステップS811)。コピー縮小拡大モードの場合には、プロセッサ1は、DMAプロセッサ2内のインストラクションメモリの内容を、図14に示すようなプログラムに書き替える(ステップS812)。
さて、以下に図9〜図14を参照して、各モードにおいてDMAプロセッサ2のインストラクションメモリ21に書き込まれるプログラムの例を説明する。なおプロセッサ1およびDMAプロセッサ2とも1ワードが32ビット(4バイト)であり、1画素のデータは1ワードに相当するものとする。また画像データは1ラインあたり256画素で、ラスタライン方向に連続する画素は連続するアドレスに保存される。もちろんこれは一例であるので、1ラインの画素数は画像データのサイズにより相違し、固定的に与えられるわけではなく、パラメータとして与えられるのが望ましい。また、図9〜図14のプログラムは、たとえば画素値をカラープレーン毎に管理する形式など、画像データの形式に応じて変更されるべきである。
(スキャナ画像拡大モード)
メインメモリ5からデータを順次シェーディング回路8へデータを転送する。シェーディング回路8、マスキング処理回路9、γ補正回路10では一連の処理が行われるので、それら処理ブロックにより処理された画像データを受信して、MTF回路11に送信する。MTF回路11で処理された画像データを受信すると、色変換回路12に送信してその処理済みの画像データを受信する。受信した画像データをローカルメモリ3へと転送する。ここで、拡大縮小回路7へデータを転送するために、シェーディング回路8から色変換回路12までの処理を、それらにより処理された画像データがローカルメモリ3に2ライン分の溜まるまで繰り返す。これは拡大縮小回路7による補間処理のためには2ライン分の画像データが必要とされるためである。2ライン分たまったら、拡大縮小回路7へ画像データを転送して拡大処理を行い、最終的にメインメモリ5へ変倍処理された画像データを転送する。なお各レジスタの長さは8バイトである。
この処理のためのDMAプロセッサ2のプログラムの一例を図9に示す。図中プログラムの各行において「;」以降はコメント文である。ここで、プログラムにおけるoutは外部の画像処理回路と接続している出力ポートのレジスタ番号で、inは逆に外部の画像処理回路と接続している入力ポートのレジスタ番号である。具体的には図2のようにout0はシェーディング回路8、out1はMTF回路11、out2は色変換回路12、out3は拡大縮小回路7、out4はマトリクス演算回路13、out5は誤差拡散回路15、in0はγ補正回路10、in1はMTF回路11、in2は色変換回路12、in3は拡大縮小回路7、in4はγ補正回路14、in5は誤差拡散回路15と接続している。
「clr ar0」命令では、レジスタar0が全桁0にされる。なおプログラムにおける「ar」は、DMAプロセッサ2のアドレスレジスタを表している。例えばar0は、0番目のアドレスレジスタで、ar1は1番目のアドレスレジスタである。
「move gpr0 out0」という命令の場合には、out0レジスタにgpr0レジスタの値が書き込まれる。すなわちシェーディング回路8にgpr0レジスタの値が転送されることになる。また、「move in0 gpr0」のような命令の場合には、gpr0 レジスタにin0レジスタの値が書き込まれる。すなわち、γ補正回路10から出力されたデータをgpr0へ転送することになる。なおプログラムにおいてレジスタのバイト単位のインデックスを[ ]で示す。したがって「load 0x30 ar0[0]」という命令により、アドレスレジスタar0[0](すなわちアドレスレジスタar0の最下位バイト)に0x30が代入され、それ以外の値が0であればar0=0x00000030となる。ただし、アドレスはバイトアドレスで示してある。また「load 0x30 ar0[1]」という命令の場合は、ar0[1]に0x30が代入されるので、ar0=0x00003000となる。「load 0x30 ar0[2]」という命令の場合は、ar0[2]に0x30が代入されるので、ar0=0x00300000となる。「load 0x30 ar0[3]」という命令の場合は、ar0[3]に0x30が代入されるので、ar0=0x30000000となる。
以上から図9のプログラムは、次のような流れとなる。なお、拡大縮小率は、プロセッサ1が、あらかじめDMAプロセッサインターフェース6を介して拡大縮小回路7に設定しておく。また、説明におけるかっこは図のかっこつき番号に対応している。まず、次の命令でアドレスレジスタであるar0の値をクリアする。
(1)clr ar0;ar0レジスタ←0とする、すなわちar0の値をクリアする。
次の命令で、アドレスレジスタに画像データが格納されているメインメモリのアドレス値を代入する。
(2)load 0x30 ar0[3];ar0レジスタ←0x30000000とする。
同じようにアドレスレジスタar1、ar2、ar3、ar4の値をも設定していく。次に以下の命令で、プロセッサ1からのトリガイベントが来るのを待つ。なおar0にはメインメモリ5に保存された処理対象の画像データのアドレスが、ar1,ar2には拡大縮小回路7に転送するための画像データを2ライン分保存するローカルメモリ3のアドレスが、ar3には拡大縮小処理された画像データを保存するメインメモリ5のアドレスがセットされる。
(3)wait ;トリガイベントが来るまで停止する。トリガイベントはプロセッサ1とDMAプロセッサ2との同期を維持するためのイベントで、たとえばプロセッサ1がメインメモリ5に処理対象のデータを保存し終えたら、トリガイベントを発生させて画像処理を開始させる。
次にloop命令で、loop_endのラベルまでの命令を512回行う。この命令で、拡大縮小処理を行うためのデータをローカルメモリに2ライン分たまるまでループする。
(4)loop 0 512 loop_end;ローカルメモリに2ライン分の画像データ(1024画素)がたまるまで、この命令からラベルloop_endまでの命令を512回繰返し実行する。
ar0レジスタは、画像が格納されているメインメモリのアドレス値で、次の命令で画像データをgpr0レジスタへ8バイトのデータを転送する。転送後、ar0のアドレス値に8を加算する。
(5)load (ar0,1)+ gpr0 ;gpr0レジスタ←ar0レジスタ値番地内容とし、その後ar0レジスタに1加算する(すなわち、着目画素をレジスタgpr0に保存してから着目画素を次の画素に進める)。
次の命令で、gpr0レジスタの値をout0レジスタに代入する。つまりgpr0レジスタのデータ(すなわちメインメモリ5からのデータ)をシェーディング回路8へデータを転送する。
(6)move gpr0 out0 ;out0レジスタ←gpr0レジスタ、すなわち、gpr0レジスタのデータをシェーディング回路8へデータ転送する。
次に以下の命令で、γ補正回路10からデータを受け取り、MTF回路11へデータを転送する。
(7)move in0 gpr0 ;gpr0レジスタ←in0レジスタ、すなわちγ補正回路10からgpr0レジスタにデータ受信する。
(8)move gpr0 out1 ;out1レジスタ←gpr0レジスタ、すなわちgpr0レジスタのデータをMTF回路11へデータ転送する。
同じように以下の命令で、MTF回路11からデータを受け取り、色変換回路12へデータ転送をして、色変換処理した後にデータを受信する。
(9)move in1 gpr0 ;gpr0レジスタ←in1レジスタ、すなわちMTF回路11からgpr0レジスタへデータ受信する。
(10)move gpr0 out2 ;out2レジスタ←gpr0レジスタ、すなわちgpr0レジスタのデータを色変換回路12へデータ転送する。
(11)move in2 gpr0 ;gpr0レジスタ←in2レジスタ、すなわち色変換回路12からgpr0レジスタにデータ受信する。
ここで、次にデータ処理を行う拡大処理は2ライン分のデータが必要なので、以下の命令でローカルメモリ3へとデータを転送する。
(12)store gpr0 (ar1,1)+ ;ar1レジスタ値番地内容←gpr0レジスタとした後、ar1レジスタに1加算する。一回の転送で1ワードのデータすなわち1画素分の画像データが転送されて保存される。
ステップ(12)までの処理を512回繰り返すことで、2ライン分のデータ転送が完了する。2ライン分のデータ転送が終わったら、次の命令で2ライン分のデータを拡大縮小回路7へ転送する。
(13)load (ar2,1)+ gpr0 ;gpr0レジスタ←ar2レジスタ値番地内容とし、その後ar2レジスタに1加算する。これにより1ライン目の着目する1画素をgpr0レジスタに書き込む。
(14)load (ar2,255) gpr1 ;gpr1レジスタ←ar2レジスタ値+255番地の内容とする。これにより、ステップ(13)で転送した画素の直下の画素をgpr1レジスタに書き込む。255は、1ライン(256画素)の画素数から1減じた値(ステップ(13)でar2に1加算しているため)である。
(15)move gpr0 out3 ;out3 レジスタout3←gpr0、すなわち拡大縮小回路7へ、第1ラインの2画をデータ転送する。
(16)move gpr1 out3 ;out3 レジスタout3←gpr1、すなわち拡大縮小回路7へ、第2ラインの2画をデータ転送する。(13)〜(16)により、2×2画素が拡大縮小回路7へと転送される。
そして次の処理で、拡大縮小回路7からデータを受信する。
(17)move in3 gpr0 ;gpr0レジスタ←in3レジスタ、すなわち拡大縮小回路7からレジスタgpr0にデータ受信する。そして次の命令で最終的にメインメモリ5へデータを転送する。ar3は処理した画像を格納するメインメモリのアドレス値である。
(18)store gpr0 (ar3,1)+ ;ar3レジスタ値番地内容←gpr0レジスタとし、その後ar3レジスタに1加算する。
ステップ(13)〜(18)を、「loop 1 256 loop1_end」命令によって256回繰り返すことで、2ライン分の拡大縮小処理が終了する。最終行の「jmp start」命令によって、上記2ライン毎の処理を、画像データ全体について終了するまで繰り返す。この終了条件は図9には明示されていないが、たとえば他のレジスタに画像データ末尾のアドレスを書き込んでおき、レジスタar0がその値を超えたなら終了するようにしてもよい。
また、ステップ(17)(18)においては、拡大縮小回路7が生成した画素をすべて受け取る必要がある。2×2画素の原画像データに対して受け取る画素数は拡大縮小回路7に転送した画素の位置や変倍率によって異なる。そこで、ステップ(17)(18)においては、たとえば、拡大縮小回路7から受け取る画素のライン数および1ラインあたりの画素数を別途用意したレジスタAおよびレジスタBによりまず受け取る。そして、そのレジスタBに与えられた画素数だけ、ステップ(17)(18)を繰返し実行する。また、そのレジスタAに与えられたライン数だけ、ステップ(15)〜(18)を繰返し実行する。このようにすることで、変倍後の画素を受信することができる。
(スキャナ画像縮小モード)
スキャナ画像縮小モードでは、最初に、メインメモリ5から2ライン分のデータを順次拡大縮小回路7へ転送する。最初に縮小処理を行い、それからシェーディング回路8へデータを転送する。シェーディング回路8、マスキング処理回路9、γ補正回路10、MTF回路11、色変換回路12の順番に処理した後に、メインメモリ5へデータを転送する。この処理時のDMAプロセッサ2のプログラムの一例は図10である。この場合には、最初に次の命令でメインメモリ5から2ライン分のデータを、拡大縮小回路7へ転送する。
(1)clr ar0;ar0レジスタ←0すなわちar0の値をクリアする。
(2)load 0x30 ar0[3];ar0レジスタ←0x30000000とする。同様に、レジスタar1についても設定する。
(3)load (ar0,1)+ gpr0 ;gpr0レジスタ←ar0レジスタ値番地内容とした後、ar0レジスタに1加算する。すなわち1ライン目の着目画素をレジスタgpr0に書き込んでから、アドレスレジスタar0を1進める。
(4)load (ar0,255) gpr1 ;gpr1レジスタ←ar0レジスタ値+255番地内容とする。すなわち着目画素直下の画素をレジスタgpr1に書き込む。
(5)move gpr0 out3 ;out3レジスタ←gpr0レジスタとする。すなわち拡大縮小回路7へデータ転送(第1ライン)する。
(6)move gpr1 out3 ;out3レジスタ←gpr1レジスタとする。すなわち拡大縮小回路7へデータ転送(第2ライン)する。
(7)move in3 gpr0 ;gpr0レジスタ←in3レジスタとする。すなわち拡大縮小回路7からレジスタgpr0へデータ転送する。
この後は、図10の通りにシェーディング回路8からデータ処理で画像データを転送する。最後にar1レジスタで示されるアドレスに処理後の画像データ(gpr0)を保存する。
(8)store gpr0 (ar1,1)+ ;gpr0レジスタの画素を、アドレスレジスタ1で示されるアドレスに保存して、アドレスレジスタar1を進める。
以上を、画像データ全体について繰り返す。ステップ(1)〜(8)においては、拡大縮小回路7が生成した画素をすべて処理する必要がある。2×2画素の原画像データに対して受け取る画素数は拡大縮小回路7に転送した画素の位置や変倍率によって異なる。そこで、ステップ(7)においては、たとえば、拡大縮小回路7から受け取る画素のライン数および1ラインあたりの画素数を別途用意したレジスタAおよびレジスタBによりまず受け取る。そして、そのレジスタBに与えられた画素数だけ、ステップ(7)〜(8)を繰返し実行する。また、そのレジスタAに与えられたライン数だけ、ステップ(1)〜(8)を繰返し実行する。このようにすることで、変倍後の画素を受信することができる。
(プリント画像拡大モード)
次にプリント画像拡大モードでは次のようにデータが処理される。最初に、メインメモリ5からデータを順次、マトリクス演算回路13へデータを転送する。マトリクス演算回路13、γ補正回路14の順番に処理した後に、ローカルメモリ3へとデータを転送する。ここで、拡大縮小回路7へデータを転送するために、ローカルメモリ3で2ライン分の画像データをためる。2ライン分たまったら、拡大縮小回路7へ転送して拡大処理を行い、誤差拡散回路15へデータを転送する。最終的には、誤差拡散回路15からメインメモリ5へデータを転送する。この処理時のDMAプロセッサ2のプログラムの一例は図11である。要領は図9と同様であるが、拡大縮小回路7以外の回路が、マトリクス演算回路13およびガンマ補正回路14および誤差拡散回路15となっていること、拡大縮小処理の後に誤差拡散処理が行われることという点で相違する。
図11の処理においてはまずメインメモリ5からデータをマトリクス演算回路13へ転送し、マトリクス演算回路13、γ補正回路14の順番に処理する。その後に、ローカルメモリ3へとデータを転送している。まずアドレスレジスタに転送元の画像データのアドレスと転送先のアドレスとが格納される。これは図9のステップ(1)(2)と同様である。次に以下の処理を512回繰り返す。
(1)load (ar0,1)+ gpr0 ;gpr0レジスタ←ar0レジスタ値番地内容とした後、ar0レジスタに1加算する。すなわちar1レジスタで示される画素値をレジスタgpr0にロードする。
(2)move gpr0 out4 ;out4レジスタout4←gpr0レジスタとする、すなわちマトリクス演算回路13へgpr0レジスタの画素データを転送する。
(3)move in4 gpr0 ;gpr0レジスタ←in4レジスタとする、すなわちγ補正回路14からgpr0レジスタに画素データを受信する。
(4)store gpr0 (ar1,1)+ ;ar1レジスタ値番地内容←gpr0レジスタとして、ar1レジスタに1加算する。すなわちgpr0レジスタの画素データをar1レジスタで示されるアドレスに保存する。
ステップ(1)〜(4)を512回繰り返すことで、マトリクス処理及びガンマ補正された2ライン分の画像データをローカルメモリに蓄積する。
そして次の命令で、ローカルメモリ3から2ラインずつ拡大縮小回路7へデータを転送する。
(5)load (ar2,1)+ gpr0 ;gpr0レジスタ←ar2レジスタ値番地内容とする、すなわちar1レジスタで示されるアドレスの画素をgpr0レジスタにロードして、ar2レジスタに1加算する。
(6)load (ar2,255) gpr1 ;gpr1レジスタ←ar2レジスタ値+255番地内容とする。すなわち、ステップ(5)でgpr0にロードした画素の直下の画素をgpr1レジスタにロードする。
(7)move gpr0 out3 ;out3レジスタ←gpr0レジスタとする、すなわち拡大縮小回路7へgpr0レジスタの画素データ(第1ライン)を転送する。
(8)move gpr1 out3 ;out3レジスタ←gpr1レジスタとする、すなわち拡大縮小回路7へgpr1レジスタの画素データ(第2ライン)を転送する。
次に以下の命令で、拡大縮小回路7からデータを受信してから、誤差拡散回路15へ転送し、最終的に誤差拡散回路15からのデータをメインメモリ5へ転送する。
(9)move in3 gpr0 ;gpr0レジスタ←in3レジスタとする、すなわち拡大縮小回路7からデータ受信する。
(10)move gpr0 out5 ;out5レジスタ←gpr0レジスタとする、すなわち誤差拡散回路15へデータ転送する。
(11)move in5 gpr0 ;gpr0レジスタ←in5レジスタとする、すなわち誤差拡散回路15からデータ受信する。
(12)store gpr0 (ar3,1)+ ;ar3レジスタ値番地内容←gpr0レジスタとして、ar3レジスタに1加算する。すなわち、gpr0レジスタの画素データをar3レジスタで示されるアドレスに保存して、ar3を1進める。
ステップ(5)から(12)を256回繰り返すことで、2ライン分の画像データについて拡大縮小処理及び誤差拡散処理が実現される。これを画像データ全体について繰返し実行する。
また、ステップ(9)〜(12)においては、拡大縮小回路7が生成した画素すべてについて受け取り、誤差拡散処理する必要がある。2×2画素の原画像データに対して受け取る画素数は拡大縮小回路7に転送した画素の位置や変倍率によって異なる。そこで、ステップ(9)〜(12)においては、たとえば、拡大縮小回路7から受け取る画素のライン数および1ラインあたりの画素数を別途用意したレジスタAおよびレジスタBによりまず受け取る。そして、そのレジスタBに与えられた画素数だけ、ステップ(9)〜(12)を繰返し実行する。また、そのレジスタAに与えられたライン数だけ、ステップ(7)〜(12)を繰返し実行する。このようにすることで、変倍後の画素をすべて受信することができる。
(プリント画像縮小モード)
次にプリント画像縮小モードの場合では次のようにデータが処理される。あらかじめプロセッサ1によってメインメモリ5へ画像を格納しておく。DMAプロセッサ2は、メインメモリ5から2ライン分のデータを順次、拡大縮小回路7へ転送する。最初に縮小処理を行い、それからマトリクス演算回路13、γ補正回路14、誤差拡散回路15の順番に処理した後に、メインメモリ5へデータを転送する。
この処理時のDMAプロセッサ2のプログラムの一例は図12である。ここでは、要領は図10のスキャン画像縮小処理と同様である。まず拡大縮小回路7へ2ライン分のデータを転送している。その後に次の命令で、拡大縮小回路7からデータを受信した後に、マトリクス演算回路13、γ補正回路14と処理した後に、誤差拡散回路15へデータ転送をしている。
(0)move gpr0 out3およびmove gpr1 out3;拡大縮小回路7にデータを転送する。
(1)move in3 gpr0 ;gpr0レジスタ←in3レジスタとする、すなわち、拡大縮小回路7からデータ受信する。
(2)move gpr0 out4 ;out4レジスタ←gpr0レジスタとする、すなわち、マトリクス演算回路13へデータ転送する。
(3)move in4 gpr0 ;gpr0レジスタ←in4レジスタとする、すなわち、γ補正回路14からデータ受信する。
(4)move gpr0 out5 ;out5レジスタ←gpr0レジスタとする、すなわち、誤差拡散回路15へデータ転送する。
(5)move in5 gpr0 ;gpr0レジスタ←in5レジスタとする、すなわち、誤差拡散回路15からデータ受信する。
以上を、画像データ全体について繰り返す。ステップ(1)〜(6)においては、拡大縮小回路7が生成した画素をすべて処理する必要がある。2×2画素の原画像データに対して受け取る画素数は拡大縮小回路7に転送した画素の位置や変倍率によって異なる。そこで、ステップ(1)においては、たとえば、拡大縮小回路7から受け取る画素のライン数および1ラインあたりの画素数を別途用意したレジスタAおよびレジスタBによりまず受け取る。そして、そのレジスタBに与えられた画素数だけ、ステップ(1)〜(6)を繰返し実行する。また、そのレジスタAに与えられたライン数だけ、ステップ(0)〜(6)を繰返し実行する。このようにすることで、変倍後の画素を受信することができる。
(コピー画像拡大モード)
次に、コピー画像拡大モードの場合では次のようにデータが処理される。プロセッサ1はあらかじめメインメモリ5へ画像を格納しておく。DMAプロセッサ2は、メインメモリ5からデータを順次シェーディング回路8へデータを転送する。シェーディング回路8、マスキング処理回路9、γ補正回路10、MTF回路11、色変換回路12の順番にスキャナ処理した後に、マトリクス演算回路13、γ補正回路14の順番にプリント処理を行う。ここで、γ補正回路14からのデータをローカルメモリ3へ転送し、2ライン分の画像データをためる。2ライン分たまったら、拡大縮小回路7へ転送して拡大処理を行い、誤差拡散回路15へ転送する。最終的に誤差拡散回路15からメインメモリ5へデータを転送する。
この処理時のDMAプロセッサ2のプログラムの一例は図13である。このプログラムでは、最初にスキャナ処理をシェーディング回路8から色変換回路12まで処理を行う。その後に、次の命令でスキャナ処理である色変換回路12から、プリンタ処理であるマトリクス演算回路13へデータを転送している。この図13の処理は、図9のステップ(11)の直後すなわち色変換後に、図11のステップ(2)すなわちマトリクス処理をつなげた処理である。
(11)move in2 gpr0 ;gpr0 レジスタ←in2レジスタとする、すなわち色変換回路12からデータ受信する。
(2)move gpr0 out4 ;out4 レジスタ←gpr0レジスタとする、すなわちマトリクス演算回路13へデータ転送する。
拡大縮小処理については図11と同様であり、ステップ(9)〜(12)においては、拡大縮小回路7が生成した画素すべてについて受け取り、誤差拡散処理する必要がある。2×2画素の原画像データに対して受け取る画素数は拡大縮小回路7に転送した画素の位置や変倍率によって異なる。そこで、ステップ(9)〜(12)においては、たとえば、拡大縮小回路7から受け取る画素のライン数および1ラインあたりの画素数を別途用意したレジスタAおよびレジスタBによりまず受け取る。そして、そのレジスタBに与えられた画素数だけ、ステップ(9)〜(12)を繰返し実行する。また、そのレジスタAに与えられたライン数だけ、ステップ(7)〜(12)を繰返し実行する。このようにすることで、変倍後の画素をすべて受信することができる。
(コピー画像縮小モード)
次に、コピー画像縮小モードの場合では次のようにデータが処理される。プロセッサ1はあらかじめメインメモリ5へ画像を格納しておく。DMAプロセッサ2は、メインメモリ5から2ライン分のデータを順次、拡大縮小回路7へ転送する。最初に縮小処理を行い、それからシェーディング回路8へデータを転送する。シェーディング回路8、マスキング処理回路9、γ補正回路10、MTF回路11、色変換回路12の順番にスキャナ処理した後に、マトリクス演算回路13、γ補正回路14、誤差拡散回路15の順番にプリント処理を行う。最終的に、誤差拡散回路15でデータ処理を行った後に、メインメモリ5へデータを転送する。
この処理時のDMAプロセッサ2のプログラムは図14である。
図14は、図10のステップ(8)に代えてすなわち色変換後に、図12のステップ(2)すなわちマトリクス処理をつなげた処理である。拡大縮小処理については図12と同様であり、このコピー画像縮小モードにおいても拡大縮小回路7が生成した画素をすべて処理する必要がある。2×2画素の原画像データに対して受け取る画素数は拡大縮小回路7に転送した画素の位置や変倍率によって異なる。そこで、図14のステップ(7)においては、たとえば、拡大縮小回路7から受け取る画素のライン数および1ラインあたりの画素数を別途用意したレジスタAおよびレジスタBによりまず受け取る。そして、そのレジスタBに与えられた画素数だけ、ステップ(7)〜(8)を繰返し実行する。また、そのレジスタAに与えられたライン数だけ、ステップ(1)〜(8)を繰返し実行する。このようにすることで、変倍後の画素を受信することができる。
以上のように、プロセッサ1はプリンタ処理、スキャナ処理等の処理内容や画像の拡大・縮小率に応じてDMAプロセッサ2が読み込む最適な命令列を選択して、DMAプロセッサインターフェース6を操作することで切り替えることができる。このことにより、DMAプロセッサ2の処理内容を柔軟に変更することが可能となる。つまり、複雑な回路を構成することなく、画像処理の順序を柔軟に変更することができる。
<変形例>
なお本実施形態では、等倍の指定も変倍処理に含まれている。等倍は、拡大として扱っても縮小として扱ってもいずれでもよい。しかし等倍の場合、すなわち変倍率が100パーセントの場合には、拡大縮小回路へのデータ転送を一切行わない構成とすることでより処理効率を向上させることができる。このためには、図8AのステップS802、図8BのステップS806、図8CのステップS810において、等倍である場合に書き替えるDMAプロセッサのプログラムとして、等倍の場合には拡大縮小回路7への画像データの転送を行わないように構成したプログラムを用意しておき、それに書き替える。こうすることで、等倍の場合における処理効率をさらに向上させることができる。
また、本実施形態では、DMAプロセッサ2と画像処理部18との間においては、レジスタにより画像データそのものを転送しているが、アドレスを転送することで、画像処理部の各モジュールに転送したアドレスに画像データを格納させることもできる。たとえば、拡大縮小回路7に対してラスタ順に画素を順次転送し、拡大縮小回路7は独自の2ライン分のラインバッファを用いて補間処理を行い、補間処理後の画像データを、転送しておいたアドレス(たとえばローカルメモリ)へと書き戻す。このように構成することで、拡大縮小処理による画像データ量の増大や縮小に関して、柔軟に対応できる。
以上に述べたように本発明によれば、回路構成を変えずにDMAプロセッサ2の命令列を切り替えることにより、処理モードに応じて処理順序を切り替えることができる。このため、拡大縮小回路を複数持つ必要がなく回路規模の削減が実現できる。また、セレクタ回路を用いた複雑な回路を構成せずに画像の拡大もしくは縮小で処理順序を変更することができ、処理性能をあげることができる。
<他の実施形態>
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
実施形態の画像処理装置の制御部の構成図である。 DMAプロセッサの出力ポート、入力ポートを示す図である。 メモリマップの一例を示す図である。 DMAプロセッサインターフェースレジスタマップの一例を示す図である。 線形補間における変換前の点と変換後の点の一例を示す図である。 線形補間における縮小時の変換前の点と変換後の点の一例を示す図である。 線形補間における拡大時の変換前の点と変換後の点の一例を示す図である。 プロセッサおよび画像処理部による画像処理の手順を示す図である。 プロセッサおよび画像処理部による画像処理の手順を示す図である。 プロセッサおよび画像処理部による画像処理の手順を示す図である。 スキャナ処理画像拡大時のDMAプロセッサのプログラムの一例を示す図である。 スキャナ処理画像縮小時のDMAプロセッサのプログラムの一例を示す図である。 プリント処理画像拡大時のDMAプロセッサのプログラムの一例を示す図である。 プリント処理画像縮小時のDMAプロセッサのプログラムの一例を示す図である。 コピー処理画像拡大時のDMAプロセッサのプログラムの一例を示す図である。 コピー処理画像縮小時のDMAプロセッサのプログラムの一例を示す図である。 画像処理装置全体の構成を示す図である。 画像処理装置による処理手順を示す図である。

Claims (6)

  1. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
    前記DMAプロセッサから転送される画像データに対して拡大縮小処理を施す変倍手段と、
    前記DMAプロセッサから転送される画像データに対して拡大縮小以外の画像処理を施す画像処理手段と、
    前記変倍手段と前記画像処理手段とに対して処理モードに応じた順序で画像データを転送する命令コードを、前記命令メモリに記録する命令書き替え手段と
    を備えることを特徴とする画像処理装置。
  2. 前記画像処理手段としては、入力画像データに対して画像処理を施す入力画像処理手段と、出力画像データに対して画像処理を施す出力画像処理手段とが含まれ、
    前記命令書き替え手段は、処理モードに応じて、前記入力画像処理手段または前記出力画像処理手段による画像処理の直前又は直後に、前記変倍手段に対して画像データを転送する命令コードを前記命令メモリに記録することを特徴とする請求項1に記載の画像処理装置。
  3. 前記命令書き替え手段は、変倍処理が拡大処理の場合には、前記画像処理手段による画像処理後に、当該画像処理の施された画像データを前記変倍処理手段に対して転送する命令コードを前記命令メモリに記録し、変倍処理が縮小処理の場合には、前記画像処理手段による画像処理前に画像データを前記変倍処理手段に対して転送し、当該変倍処理の施された画像データを前記画像処理手段に対して転送する命令コードを前記命令メモリに記録することを特徴とする請求項1または2に記載の画像処理装置。
  4. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
    前記DMAプロセッサから転送される画像データに対して拡大縮小処理を施す変倍処理部と、
    前記DMAプロセッサから転送される画像データに対して入力補正処理を施す入力補正処理部と、
    前記DMAプロセッサから転送される画像データに対して出力補正処理を施す出力補正処理部と、
    前記DMAプロセッサから転送される画像データに対して面積階調処理を施す階調処理部と、
    前記変倍処理部と前記入力補正処理部と前記出力補正処理部と前記階調処理部とに対して処理モードに応じた順序で画像データを転送する命令コードを、前記命令メモリに記録するプロセッサとを備え、
    前記プロセッサは、前記処理モードがスキャンモードの場合、変倍処理が拡大処理であれば、前記入力補正処理部、前記変倍処理部の順に画像データを転送し、変倍処理が縮小処理であれば、前記変倍処理部、前記入力補正処理部の順に画像データを転送する命令コードを前記命令メモリに記録し、
    前記処理モードがプリントモードの場合、変倍処理が拡大処理であれば、前記出力補正処理部、前記変倍処理部、前記階調処理部の順に画像データを転送し、変倍処理が縮小処理であれば、前記変倍処理部、前記出力補正処理部、前記階調処理部の順に画像データを転送する命令コードを前記命令メモリに記録し、
    前記処理モードがコピーモードの場合、変倍処理が拡大処理であれば、前記入力補正処理部、前記出力補正処理部、前記変倍処理部、前記階調処理部の順に画像データを転送し、変倍処理が縮小処理であれば、前記変倍処理部、前記入力補正処理部、前記出力補正処理部、前記階調処理部の順に画像データを転送する命令コードを前記命令メモリに記録することを特徴とする画像処理装置。
  5. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、前記DMAプロセッサから転送される画像データに対して拡大縮小処理を施す変倍手段と、前記DMAプロセッサから転送される画像データに対して拡大縮小以外の画像処理を施す画像処理手段とを備える画像処理装置の制御方法であって、
    処理モードを判定する判定工程と、
    前記判定工程により判定された処理モードに応じた順序で、前記変倍手段と前記画像処理手段とに対して画像データを転送する命令コードを、前記命令メモリに記録する命令書き替え工程と
    を備えることを特徴とする画像処理装置の制御方法。
  6. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、前記DMAプロセッサから転送される画像データに対して拡大縮小処理を施す変倍手段と、前記DMAプロセッサから転送される画像データに対して拡大縮小以外の画像処理を施す画像処理手段とを備えるコンピュータにより実行されるプログラムであって、
    処理モードを判定する判定工程と、
    前記判定工程により判定された処理モードに応じた順序で、前記変倍手段と前記画像処理手段とに対して画像データを転送する命令コードを、前記命令メモリに記録する命令書き替え工程と
    を前記コンピュータにより実行させることを特徴とするプログラム。
JP2004357180A 2004-12-09 2004-12-09 画像処理装置およびその制御方法 Withdrawn JP2006166251A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004357180A JP2006166251A (ja) 2004-12-09 2004-12-09 画像処理装置およびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004357180A JP2006166251A (ja) 2004-12-09 2004-12-09 画像処理装置およびその制御方法

Publications (1)

Publication Number Publication Date
JP2006166251A true JP2006166251A (ja) 2006-06-22

Family

ID=36667721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004357180A Withdrawn JP2006166251A (ja) 2004-12-09 2004-12-09 画像処理装置およびその制御方法

Country Status (1)

Country Link
JP (1) JP2006166251A (ja)

Similar Documents

Publication Publication Date Title
US7200287B2 (en) Method and apparatus for image processing, and a computer product
US7599087B2 (en) Method and apparatus for image processing, and a computer product
US20060082837A1 (en) Image processing apparatus
JP5438371B2 (ja) 画像処理装置および画像処理方法
US6862101B1 (en) Image processing apparatus, method for adding or updating sequence of image processing and data for image processing in the image processing apparatus, and computer-readable recording medium where program for making computer execute the method is recorded
JP2007080106A (ja) データ転送装置、表示装置、およびデータ転送方法
JP4086556B2 (ja) 画像処理装置およびその制御方法
US8466928B2 (en) Image processing apparatus and method
US6963420B1 (en) Image processing apparatus
JP2006166251A (ja) 画像処理装置およびその制御方法
JP2004220584A (ja) 画像処理装置及び画像処理方法
JP2006285792A (ja) 画像処理装置、画像処理方法
JP5560785B2 (ja) 情報処理装置、画像形成装置及び情報処理方法
JP5245803B2 (ja) 画像処理装置及び画像処理モジュール
US8643896B2 (en) Image processing apparatus for outputting raster image using a plurality of processors
JP5094274B2 (ja) 画像処理装置及びその方法
JP2005094126A (ja) 画像処理装置および画像処理方法およびコンピュータで実行可能な画像処理プログラム
JP2006164072A (ja) 画像処理装置およびその制御方法
JP2003250031A (ja) 画像処理装置および画像処理方法
JP4516336B2 (ja) 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
JP5753370B2 (ja) 画像処理装置、方法およびプログラム
JP2001274993A (ja) 画像処理装置、プリンター装置、複写装置、ファクシミリ装置、画像形成複合装置、画像処理方法およびその方法を記録したコンピュータ読み取り可能な記録媒体
JP2003348338A (ja) 情報処理装置
JP2002051220A (ja) 画像処理装置
JP2005109857A (ja) 画像処理装置及びその制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080304