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

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

Info

Publication number
JP2006164072A
JP2006164072A JP2004357181A JP2004357181A JP2006164072A JP 2006164072 A JP2006164072 A JP 2006164072A JP 2004357181 A JP2004357181 A JP 2004357181A JP 2004357181 A JP2004357181 A JP 2004357181A JP 2006164072 A JP2006164072 A JP 2006164072A
Authority
JP
Japan
Prior art keywords
processing
matrix
image
image data
coefficient
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
JP2004357181A
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 JP2004357181A priority Critical patent/JP2006164072A/ja
Publication of JP2006164072A publication Critical patent/JP2006164072A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Image Input (AREA)
  • Image Processing (AREA)

Abstract

【課題】スキャナ処理、プリンタ処理の両方を実行可能な画像処理装置において、回路規模を縮小する為にスキャナ処理とプリンタ処理でマトリクス演算を行う回路を共有する。
【解決手段】内部にインストラクションメモリ21を内蔵しデータ転送のみに特化した命令セットを持つDMAプロセッサ2によりスキャナ処理、プリンタ処理を行う画像処理回路16と、画像データのマトリクス演算を行うマスキング回路7とが接続される。DMAプロセッサ2には、各処理回路への転送が処理モードに応じて行われるプログラムが格納される。
【選択図】図1

Description

本発明は、たとえば画像のマスキング処理、色変換を行うマトリクス演算処理回路を、スキャナ処理とプリンタ処理とで共有する画像処理装置に関する。
従来、回路規模を削減する為に、プリントの画像処理を行うプリント処理ブロック、スキャナの画像処理を行うスキャナ処理ブロックでマトリクス処理演算を行う回路を共有した画像処理回路が提案されている(特許文献1等参照)。この場合に、スキャナ処理、プリント処理を実行するには、画像処理順序を処理に応じて切り替える必要がある。特許文献1には、スキャナ処理、プリント処理で画像処理順序を変更する為にセレクタ回路を配置している。また、マトリクス演算で用いる係数を記憶する係数記憶部を具備している。係数記憶部にはスキャナ処理時にスキャナ処理用の係数を設定し、プリント処理時にプリント処理用の係数を設定する。
特開平09−130611号公報
上記従来の構成では、処理の最初にマトリクス演算で用いる係数を係数記憶部に設定して、処理の途中で係数の切り替えは行わない。その為、コピー処理時にスキャナ処理用のマトリクス演算とプリント処理用のマトリクス演算を行うには、スキャナ処理を終えた全てのデータを一時的に格納するメモリが必要である。つまり、スキャン入力された画像データに対してスキャナ処理用マトリクス演算を行い、その処理が終わった画像データをメモリへ転送していったん保存する。スキャナ処理(入力画像処理)終了後、係数記憶部に記憶した係数マトリクスをプリント処理用の係数マトリクスに書き替え、メモリに格納されているスキャン処理の済んだ画像データを読み取ってプリント用のマトリクス処理を行う。このことから、使用するメモリの容量は大きくなってしまう。また、スキャナ処理したデータをすぐにプリント処理せずに、メモリへの書き込みと読み込みを行うので、コピー処理の時間が大幅にかかり、処理性能が落ちる。
コピー処理時にスキャナ処理を終えてからメモリへ転送せずにプリント処理を行うには、処理中に係数の切り替えを行わなければならない。係数の切り替え手段として、CPUが処理中に係数を切り替えることが考えられる。しかし、その場合には処理の制御を頻繁に行わなければならず、CPUのソフト制御が複雑になる。また、別の係数の切り替え手段として、係数記憶部にあらかじめスキャナ処理用とプリント処理用のマトリクス演算の係数を置いておくことも考えられる。この手法では係数を選択する為のセレクタ回路と、セレクタ回路を制御するセレクタ制御回路、係数を記憶するためのレジスタが必要である。セレクタ制御回路は、処理中にスキャナ処理用係数とプリント処理用係数を切り替えるために、複雑な制御が必要である。マスキング処理や色変換など多数のマトリクス演算処理回路を共有したい場合には、共有するマトリクス演算処理回路の数だけ係数が必要である。その為、セレクタ制御回路はさらに複雑な制御をする必要がある。また、係数を記憶する為に用意するレジスタが増加する。
本発明は上記問題点を解決するためになされたもので、複雑なソフトウエア処理や複雑なハードウェア構成を用いずに、画像処理の順序やパラメータを柔軟に変更することの可能な画像処理装置を構成することを目的とする。
本発明の画像処理装置は前記課題を解決するために、以下の構成を備える。
命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
マトリクス演算で用いる係数を記憶する係数記憶手段と、
前記DMAプロセッサから転送される画像データに対して、前記係数記憶手段に記憶された係数を用いてマトリクス演算を行うマトリクス処理手段と、
前記DMAプロセッサから転送される画像データに対してマトリクス処理以外の画像処理を施す画像処理手段と、
前記マトリクス処理手段に対して、処理モードに応じた順序で画像データを転送し、該処理モードに応じた係数を前記係数記憶手段にロードする命令コードを前記命令メモリに記録する命令書き替え手段とを備えることを特徴とする。
あるいは、画像入力部と画像出力部とを備えた画像処理装置であって、
命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
マトリクス演算で用いる係数を記憶する係数記憶部と、
前記DMAプロセッサから転送される画像データに対して、前記係数記憶部に記憶された係数を用いてマトリクス演算を行うマトリクス処理部と、
前記DMAプロセッサから転送される画像データに対して入力マトリクス演算を除く入力補正処理を施す入力補正処理部と、
前記DMAプロセッサから転送される画像データに対して出力マトリクス演算を除く出力補正処理を施す出力補正処理部と、
前記マトリクス処理部と前記入力補正処理部と前記出力補正処理部とに対して処理モードに応じた順序で画像データを転送する命令コードを前記命令メモリに記録するプロセッサとを備え、
前記プロセッサは、前記処理モードがコピーモードの場合、入力画像データに対して入力マトリクス演算に応じた係数を前記係数記憶手段にロードした後に画像データを前記マトリクス演算部に転送し、出力マトリクス演算に応じた係数を前記係数記憶手段にロードした後に画像データを前記マトリクス演算部に転送する命令コードを前記命令メモリに記録することを特徴とする。
本発明によれば、複雑なソフトウエア処理や複雑なハードウェア構成を用いずに、画像処理の順序やパラメータを柔軟に変更することが可能となる。このため、特に、マトリクス処理回路を、係数マトリクスの異なる入力画像処理と出力画像処理とで共有することができ、回路規模の縮小が実現できる。
<画像処理装置の構成>
本発明における一実施形態を図面を用いて説明する。図13は、画像スキャナおよびプリンタを組み合わせて構成され、スキャン、プリント、コピーという3つの動作モード(処理モード)で動作可能なディジタル複合機の構成を示すブロック図である。図12において、画像スキャナ1302は、CCD等の画像センサにより原稿画像を光学的に走査して、スキャナIF1302を介して、ディジタル画像データを制御部1301に入力する。プリンタ部1305は、制御部1301から出力されるディジタル画像データをプリンタIF1304を介して受信し、画像データに基づいて、シート等の印刷媒体上に画像を形成する。操作部1306は利用者に対する画面やキーボード等のユーザインターフェースを提供し、利用者によりたとえばスキャン、プリント、コピーといった処理モードが入力される。なおこれらモードは、ネットワークインターフェース(不図示)を介して他の端末等から入力することもできる。制御部1301は、入力された処理モードに応じて画像スキャナ1301およびプリンタ1305を制御する。処理モードがスキャンモードであれば、画像スキャナ1302によって画像を読み取り、読み取った画像に対して一定の入力画像処理を施した後に、メモリの与えられたアドレスにその画像データを保存する。また、プリントモードであれば、入力された画像データに対して一定の出力画像処理を施した後、プリンタ1305によりその画像データに基づく画像を出力させる。コピーモードであれば、画像スキャナ1302によって画像を読み取り、読み取った画像に対して一定の入力画像処理を施した後に、さらにその画像データに対して一定の出力画像処理を施した後、プリンタ1305によりその画像データに基づく画像を、指定された部数出力させる。それら画像処理のために、制御部1301には画像処理部16が内蔵されている。
図1は本発明に係る画像処理部16の構成の一例を示した図である。図1(A)で示しているように、画像処理部16には、入力された画像データの補正処理等を行うためのスキャナシステム14と、出力しようとする画像データの補正処理等を行うためのプリントシステム15と、スキャナシステム14とプリントシステム16とにより共有されるマスキング処理回路7と、マスキング処理回路7によるマトリクス演算に使用される係数マトリクスを記憶する係数記憶部8とが含まれている。
図1で示しているように、スキャナシステム14ではシェーディング回路9、ガンマ補正回路10、MTF回路11の処理を行う。シェーディング回路9は、原稿を読み取るセンサのばらつき、および原稿照明用ランプの配光特性の補正を行う。ガンマ補正回路10は、CCD等の非線形性を補正する。MTF回路11は、読取速度や変倍率によって読取のMTF(変調伝達関数)が変るため、その変化を補正する。たとえばエッジ強調またはスムージングなどの処理が行われる。
プリントシステム15では、γ補正回路12、誤差拡散回路13の処理を行う。γ補正回路12は、画素値をそれが出力される濃度と線形になるよう補正する。誤差拡散回路13は、多値画像データに面積階調処理を施して疑似階調化した二値データに変換する。
ここで、マスキング処理回路7は、スキャナシステム14とプリントシステム15で共有されている。係数記憶部8は、マスキング処理回路7で使用する係数マトリクスを記憶する。マスキング処理回路7は、入力画像処理(スキャン処理)においては、CCD等の光電変換素子の分光特性及び光源および反射傘の分光特性を補正する処理を行う。またマスキング処理回路7は、出力画像処理(プリント処理)においては、YMC表色系のカラー画像データを、プリントに用いるトナーやインク特性に応じて色変換する処理、たとえば下色除去(UCR)処理などを行う。いずれにしても係数マトリクスと画像データとの行列演算を行うことで、それらの入力マスキング処理や出力マスキング処理を行うことができる。すなわちマスキング回路7は、マトリクス処理部に他ならない。
プロセッサ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、MTF回路11、係数記憶部8、マスキング処理回路7、γ補正回路12、誤差拡散回路13と接続している。
具体的なDMAプロセッサ2と画像処理回路16との接続は図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に格納された画像データを画像処理モジュール16に転送して各種の画像処理を施させ、処理後の画像データを再びメインメモリ5またはローカルメモリ3に保存することができる。またプロセッサ1もローカルメモリ3またはメインメモリ5にアクセスでき、画像処理に供する画像データをローカルメモリ3またはメインメモリ5に格納したり、あるいは画像処理後の画像データにアクセスすることができる。
図3はプロセッサ1及びDMAプロセッサ2において有効なメモリのアドレスマップである。プロセッサ1及びDMAプロセッサ2のアドレス空間には、ROM領域31、DMAプロセサインターフェース6のレジスタ61、ローカルメモリ3,メインメモリ5がマッピングされている。ローカルメモリ3は、低レイテンシでアクセス可能であるが小容量のSRAMで構成されている。メインメモリ5は、アクセスには多くのレイテンシを必要とするが容量を大きくすることが可能なDRAMで構成されている。DMAプロセッサインターフェース6はプロセッサ1から読み書き可能なレジスタである。ROM領域31は、プロセッサ1のブート、及びプログラム格納用になっている。メインメモリ5には本実施形態で用いる入力画像処理用の係数マトリクスおよび出力画像処理用の係数マトリクスを含み、いずれかを選択的に読み出し可能に構成された係数記憶領域301が確保されている。なお、係数マトリクスが固定的に与えられる場合には、係数記憶領域301はROM31に設けても良い。
図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により動的に書き替えることができる。
<マスキング処理>
カラー画像データのスキャナ時に行うマスキング処理(入力マスキング処理)の内容を図5(A)に示す。図5(A)において、R,G,Bは読み取ったカラー画像データを表し、R′,G′,B′はマスキング処理後のカラー画像データを示している。また、A11,A12,A13,A21,A22,A23,A31,A32,A33は3×3の係数マトリクスであり、読み取った画像データとの積和演算に用いられる。つまり、原稿のカラー画像データ(輝度データ)R,G,Bと前記3×3のマトリクス演算によってマスキング後のカラー画像データR′,G′,B′を得る。
また、カラー画像データのプリント時に行うマスキング処理(出力マスキング処理)の内容を図5(B)に示す。図5(B)において、C,M,Yは輝度濃度変換後のカラー画像データであり、C′,M′,Y′はマスキング処理後のカラー画像データを示している。また、B11,B12,B13,B21,B22,B23,B31,B32,B33は3×3の係数である。つまり、輝度濃度変換後のカラー画像データ(濃度データ)と前記3×3係数によるマトリクス演算によって、濃度のカラー画像データのインク特性を考慮したマスキング処理後のカラー画像データC′,M′,Y′を得ることが出来る。
ここで、係数記憶部8には、スキャナ処理時(すなわちスキャン処理モードの場合)には、A11,A12,A13,A21,A22,A23,A31,A32,A33から成る係数マトリクス501が設定される。プリント処理時(すなわちプリント処理モードの場合)には、B11,B12,B13,B21,B22,B23,B31,B32,B33から成る係数マトリクス502が設定される。コピー処理時(すなわちコピー処理モードの場合)には、スキャナ処理前にA11,A12,A13,A21,A22,A23,A31,A32,A33の係数を設定する。スキャナ処理後にはB11,B12,B13,B21,B22,B23,B31,B32,B33の係数を設定してプリント処理を行う。マスキング回路7は、係数記憶部8に記憶された係数マトリクスを用いて行列演算を実行する。
ここで、マスキング回路7は、スキャナシステム14とプリントシステム15で共有しているので、スキャナ処理が行われる時は係数記憶部8にスキャナ処理用の係数を設定してから、シェーディング回路9、マスキング処理回路7、γ補正回路10、MTF回路11の順番で画像データの処理を行う。プリンタ処理を行う場合には、係数記憶部8にプリント処理用の係数を設定してから、マスキング処理回路7、γ補正回路12、誤差拡散回路13の順番に画像データの処理を行う。また、コピー処理時には、係数記憶部8にスキャナ処理用の係数を設定してから、シェーディング回路9、マスキング処理回路7、γ補正回路10、MTF回路11の順番で画像データの処理を行う。それから、係数記憶部8にプリント処理用の係数を設定する。その後、マスキング処理回路8、γ補正回路12、誤差拡散回路13の順番に画像データの処理を行う。このように、処理モードに応じてデータパスの切り替えを行うことにより、マスキング処理回路7の共有を実現することができる。
<画像処理全体の手順>
図14に図13の画像処理装置における処理手順の概略を示す。操作部1306から、あるいは不図示のネットワークインターフェースから処理開始の指示が与えられると図14の手順が制御部1301、具体的にはプロセッサ1により実行される。この手順はメインメモリ5などに格納されたプログラムの実行により実現される。
まず、処理内容がスキャン又はコピーか、それともそれらのいずれでもないか(すなわちプリントか)が判定される(ステップS1401)。プリントであれば、入力インターフェースからプリント対象の画像データが制御部1301に入力される(ステップS1403)。スキャン又はコピーであれば、画像スキャナ1302が駆動されて画像データが読み取られて制御部1301に入力される(ステップS1402)。
入力された画像データはメインメモリ5に保存されて(ステップS1404)、画像処理部16によるデータ処理(画像処理)が実行される(ステップS1406)。
データ処理が終了すると、指定された処理内容がプリント又はコピーか、それともスキャンか判定される(ステップS1407)。スキャンであれば、出力インターフェース(不図示)から画像処理後の画像データを出力するか、あるいはメモリやハードディスク等に保存しておく。指定された処理がプリント又はコピーであれば、処理後の画像データをプリンタ1305に送信して印刷を行わせる(ステップS1408)。
図6に、ステップS1406の詳細を示す。ステップS1406におけるデータ処理は、処理モードに応じて行われる。処理モードには、スキャナ処理モード、プリント処理モード、コピー処理モードの3通りのモードが考えられる。それぞれの処理を実行する為に、プロセッサ1は図6のような処理順序のフローチャートになる。図6において、プロセッサ1は、処理モードがスキャナ処理か(ステップS601)、プリント処理か(ステップS602)、判定し、いずれでもなければコピー処理と判定する。こうして処理モードを判断して、DMAプロセッサ2が読み込むインストラクションメモリに、各処理モードにおいてDMAプロセッサ2が実行すべき命令を書き込む(ステップS603〜S605)。このようにして、処理に応じて命令を切り替える。DMAプロセッサ2は設定されたインストラクションメモリから命令を読み込む。DMAプロセッサ2はスキャナ処理の場合には図7、プリント処理の場合には図8、コピー処理の場合には図9のような処理手順で動作する。なお、処理モードは、操作部1306やあるいは不図示のインターフェースから入力された処理モードを示す値に基づいて判定できる。
<DMAプロセッサプログラムの書き替え>
DMAプロセッサ2の命令をインストラクションメモリ21に書き込む手順について説明する。まず、インストラクションメモリ内の書き込み先アドレスをIMEMアドレスレジスタに設定する。次に、DMAプロセッサ2の実行する命令が格納されているROM(あるいはRAM)から命令を読み出し、IMEMデータレジスタに書き込む。このことにより、IMEMアドレスレジスタで指定したインストラクションメモリのアドレスに命令が書き込まれる。この操作を繰り返すことにより、インストラクションメモリには処理に必要なだけの命令を設定することができる。このように、プロセッサ1はIMEMアドレスレジスタとIMEMデータレジスタを利用することにより、DMAプロセッサ2の命令を入れ替えることができる。
さて、以下に図7〜図12を参照して、各モードにおいてDMAプロセッサ2のインストラクションメモリ21に書き込まれるプログラムの例を説明する。なおプロセッサ1およびDMAプロセッサ2とも1ワードが32ビット(4バイト)であり、1画素のデータは1ワードに相当するものとする。またラスタライン方向に連続する画素は連続するアドレスに保存される。もちろんこれは一例であるので、1ラインの画素数は画像データのサイズにより相違し、固定的に与えられるわけではなく、パラメータとして与えられるのが望ましい。また、図10〜図12のプログラムは、たとえば画素値をカラープレーン毎に管理する形式など、画像データの形式に応じて変更されるべきである。
(スキャナ処理モード)
図7に、スキャナ処理モードの場合に画像処理部16により実行される処理の手順を示す。最初に、係数記憶部8にスキャナ処理用の係数501を設定する(ステップS701)。この係数は係数記憶領域301から読み出される。そして、画像が格納されているメインメモリ5からデータを順次、シェーディング回路9へデータを転送する(ステップS702)。シェーディング回路9、マスキング処理回路7、γ補正回路10、MTF回路11の順番に処理して(ステップS703〜S705)、最終的にメインメモリ5へデータを転送する(ステップS706)。
この処理時のDMAプロセッサ2のプログラムの一例を図10に示す。図中プログラムの「;」以降はコメント文である。ここで、プログラムにおけるoutは外部の画像処理回路と接続している出力ポートのレジスタ番号で、inは逆に外部の画像処理回路と接続している入力ポートのレジスタ番号である。具体的には図2のようにout0はシェーディング回路9、out1はγ補正回路10、out2はMTF回路11、out3は係数記憶部8、out4はマスキング処理回路7、out5はγ補正回路12、out6は誤差拡散回路13、in0はシェーディング回路9、in1はγ補正回路10、in2はMTF回路11、in3はマスキング処理回路7、in4はγ補正回路12、in5は誤差拡散回路13と接続されている。
図10のプログラムにおいて、「clr ar0」命令では、レジスタar0が全桁0にされる。なおプログラムにおける「ar」は、DMAプロセッサ2のアドレスレジスタを表している。例えばar0は、0番目のアドレスレジスタで、ar1は1番目のアドレスレジスタである。
「move gpr0 out0」のような命令の場合には、out0レジスタにgpr0レジスタの内容が書き込まれて、シェーディング回路9にgpr0レジスタの値が転送されることになる。
また、「move in0 gpr0」命令の場合には、シェーディング回路9から出力されたデータが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となる。
以上から図7のプログラムは、次のような動作となる。まず、次の命令でアドレスレジスタであるar0の値をクリアする。
(1)clr ar0 ;ar0レジスタ←0、すなわちar0の値をクリアする。
次の命令で、アドレスレジスタに画像が格納されているメインメモリのアドレス値を代入する。
(2)load 0x30 ar0[3] ;ar0レジスタ←0x30000000とする。なお「←」はレジスタやメモリ等への値のロードを意味する。同じようにar1、ar2の値を設定していく。ar0には処理対象となる画像データの格納されたアドレスが、ar1には処理後の画像データの出力先のアドレスが、ar2レジスタには、係数記憶領域における入力マスキング処理用の係数マトリクス501のアドレスがセットされる。
次に以下の命令で、プロセッサ1からのトリガイベントが来るのを待つ。
(3)wait ;プロセッサ1からトリガイベントが来るまで停止する。トリガイベントはプロセッサ1とDMAプロセッサ2との同期を維持するためのイベントで、たとえばプロセッサ1がメインメモリ5に処理対象のデータを保存し終えたら、トリガイベントを発生させて画像処理を開始させる。
ここで、ar2レジスタはスキャナ処理用のマスキング処理を行う係数が格納されているアドレス値である。下記の命令で、係数を係数記憶部8へ転送する。ここで、loopはループ命令で、loop_endというラベルまでの命令を3回行う。係数は1回で転送しきれないので、3回にわけて転送している。
(4)loop 0 3 loop_end ;係数記憶部8にマトリクス処理で用いる係数501を設定する
(5)load (ar2,8)+ gpr0 ;gpr0レジスタ←ar2レジスタ値番地内容として、ar2レジスタに8加算する。すなわち、係数502(の一部)をgpr0レジスタにロードして、アドレスレジスタar2に8を加算する。なお係数マトリクス501のデータは、係数記憶領域301に、8ワードおきに係数の各行あるいは各列のデータが保存されている。
(6)move gpr0 out3 ;out3レジスタ←gpr0レジスタとする、すなわち係数記憶部8へgpr0レジスタの係数データを転送する。
(7)loop_end: ;ループのラベル。
ここまでのループ処理で、スキャン処理モードにおける入力マスキング処理用の係数マトリクスが係数記憶部8に設定される。もちろんこれは一例であって、たとえば係数の1つの要素が1ワードで、それが連続する9ワードの領域に保存されている場合には、ステップ(5)においてはar2レジスタには1ずつ加算し、9回のループ(もちろんこれも一例でマトリクサイズに応じた回数)で係数マトリクスを転送することになる。
ar0レジスタは、画像が格納されているメインメモリのアドレス値である。次の命令で、メインメモリ5からシェーディング回路9へデータを転送する。なお、処理対象の画像データは288×46画素であるとして、ステップ(8)以下の処理は288×46回繰り返される。これは他の処理モードについても同様である。
(8)load (ar0,1)+ gpr0 ;gpr0レジスタ←ar0レジスタ値番地内容として、ar0レジスタに1加算にする。これにより、着目画素データがgpr0レジスタにロードされて、ar0が次の着目画素に進められる。
(9)move gpr0 out0 ;out0レジスタ←gpr0レジスとする、すなわち着目画素データをシェーディング回路9へデータ転送する。
次に以下の命令で、シェーディング回路9からデータを受け取り、マスキング処理回路7へデータを転送する。
(10)move in0 gpr0 ; gpr0レジスタ←in0レジスタとする、すなわちシェーディング回路9から処理後の着目画素データを受信する。
(11)move gpr0 out4 ;out4レジスタ←gpr0レジスタとする、すなわちマスキング処理回路7へ着目画素データを転送する。
以下の命令で、マスキング処理回路7からデータを受信し、γ補正回路10へデータを転送する。
(12)move in3 gpr0 ; gpr0レジスタ←in3レジスタとする、すなわちマスキング処理回路7から処理後の着目画素データを受信する。
(13)move gpr0 out1 ;out1レジスタ←gpr0レジスタとする、すなわちγ補正回路10へ着目画素データを転送する。
次の命令で、γ補正回路10からデータを受信してから、MTF回路11へデータを転送する。
(14)move in1 gpr0 ; gpr0レジスタ←in1レジスタとする、すなわちγ補正回路10から処理後の着目画素データを受信する。
(15)move gpr0 out2 ;out2レジスタ=gpr0レジスタとする、すなわちMTF回路11へ着目画素データを転送する。
次の命令で、MTF回路11からデータを受け取る。
(16)move in2 gpr0 ;gpr0レジスタ←in2レジスタとする、すなわちMTF回路11から処理後の着目画素データを受信する。
最終的に、次の命令でメインメモリ5へデータを転送する。
(17)store gpr0 (ar1,1)+ ;ar1レジスタ値番地内容←gpr0レジスタとして、ar1レジスタに1加算する。すなわち着目画素データをar1レジスタで指定されるアドレスに保存し、ar1を1進める。ステップ(8)からステップ(17)までの手順を画像データ全体について繰り返すことで処理が完了する。
(プリント処理モード)
図8に、プリント処理モードの場合に画像処理部16により実行される処理の手順を示す。最初に、係数記憶部8にプリント処理用の係数を設定する(ステップS801)。次に、画像が格納されたメインメモリ5からデータを順次、マスキング処理回路7へデータを転送する(ステップS802)。マスキング処理回路7、γ補正回路12、誤差拡散回路13の順番に処理した後に、最終的にメインメモリ5へデータを転送する(ステップS803〜S804)。最後に処理済みの画像データをメモリに保存する(ステップS805)。
この処理時のDMAプロセッサ2のプログラムの一例を図11に示す。ar2レジスタはプリント処理用のマスキング処理を行う係数502が格納されているアドレス値である。次の命令で、係数502を係数記憶部8へ転送する。
(1)load (ar2,8)+ gpr0 ;gpr0レジスタ←ar2レジスタ値番地内容として、ar2レジスタに8加算する。すなわち、係数502(の一部)をgpr0レジスタにロードして、アドレスレジスタar2に8を加算する。なお係数マトリクス502のデータは、係数記憶領域301に、8ワードおきに係数の各行あるいは各列のデータが保存されている。
(2)move gpr0 out3 ;out3レジスタ←gpr0レジスタとする、すなわち係数記憶部8へデータ転送する。ステップ(1)(2)を3回ループさせて係数マトリクス502を係数記憶部8に設定する。
次の命令で、メインメモリ5からデータを、マスキング処理回路7へ転送し、γ補正回路12、誤差拡散回路13の順番に処理する。
(3)load (ar0,1)+ gpr0 ;gpr0レジスタ←ar0レジスタ値番地内容とする、すなわちar0レジスタに1加算する。これにより、着目画素データがgpr0レジスタにロードされて、ar0が次の着目画素に進められる。
(4)move gpr0 out4 ;out4レジスタ←gpr0レジスタとする、すなわちマスキング処理回路7へ着目画素データを転送する。
(5)move in3 gpr0 ;gpr0レジスタ←in3レジスタとする、すなわちマスキング処理回路7から処理後の着目画素データを受信する。
(6)move gpr0 out5 ;out5レジスタ←gpr0レジスタとする、すなわちγ補正回路12へ着目画素データを転送する。
(7)move in4 gpr0 ;gpr0レジスタ←in4レジスタとする、すなわちγ補正回路12から処理後の着目画素データを受信する。
(8)move gpr0 out6 ;out6レジスタ←gpr0レジスタとする、すなわち誤差拡散回路13へ着目画素データを転送する。
(9)move in5 gpr0 ;gpr0レジスタ←in5レジスタとする、すなわち誤差拡散回路13から処理後の着目画素データを受信する。ここまでで必要な画像処理が行われた。最終的に誤差拡散回路13からのデータをメインメモリ5へ転送する。
(10)store gpr0 (ar1,1)+ ;ar1レジスタ値番地内容←gpr0レジスタとして、ar1レジスタに1加算する。すなわち、着目画素データをar1レジスタで示されるアドレスに保存し、ar1を1進める。
(コピー処理モード)
図9にコピー処理モードの場合に画像処理部16により実行される処理の手順を示す。最初に、係数記憶部8にスキャナ処理用の係数501を設定する(ステップS901)。そして、画像が格納されているメインメモリ5からデータを順次、シェーディング回路9へデータを転送する(ステップS902)。シェーディング回路9、マスキング処理回路7、γ補正回路10、MTF回路11の順番にスキャナ処理をする(ステップS903〜S905)。
次に、係数記憶部8にプリント処理用の係数502を設定する(ステップS906)。その後、マスキング処理回路7へデータを転送する(ステップS907)。マスキング処理回路7、γ補正回路12、誤差拡散回路13の順番に処理した後に(ステップS907〜S909)、最終的にメインメモリ5へデータを転送する(ステップS910)。
この処理時のDMAプロセッサ2のプログラムの一例を図12に示す。ar2レジスタはスキャナ処理用のマスキング処理を行う係501数が格納されているアドレス値である。次の命令で、スキャナ処理用の係数を係数記憶部8へ転送し、係数を設定する。
(1)load (ar2,8)+ gpr0 ;gpr0レジスタ←ar2レジスタ値番地内容として、ar2レジスタに8加算する。すなわち、係数501(の一部)をgpr0レジスタにロードして、アドレスレジスタar2に8を加算する。
(2)move gpr0 out3 ;out3レジスタ←gpr0レジスタとする、すなわち係数記憶部8へデータ転送する。ステップ(1)(2)を3回ループさせて係数マトリクス501を係数記憶部8に設定する。
その後、ステップ(3)〜(4)で、シェーディング回路9、マスキング処理回路7、γ補正回路10、MTF回路11の順番にデータを送信、受信を行い、スキャナ処理を行う。
次に、プリント処理用の係数はar3レジスタで示されるアドレスに格納されているので、次の命令でプリント処理用の係数を係数記憶部8へ転送し、プリント処理用の係数502を設定する。
(5)load (ar3,8)+ gpr0 ;gpr1レジスタ←ar3レジスタ値番地内容として、ar3レジスタに8加算する。すなわち、係数502(の一部)をgpr0レジスタにロードして、アドレスレジスタar3に8を加算する。
(6)move gpr0 out3 ;out3レジスタ←gpr0レジスタとする、すなわち係数記憶部8へデータ転送する。
その後、ステップ(7)〜(8)で、マスキング処理回路7へデータを転送し、γ補正回路12、誤差拡散回路13の順番に処理する。最終的には、ステップ(9)で誤差拡散回路13からのデータをレジスタar1で示されるメインメモリ5のアドレスへ転送する。
次の画素を処理する場合には、図12のステップ(0)に戻って、スキャナ処理用の係数501を係数記憶部8に設定し、同じようにコピー処理を行っていく。
以上のように、本実施形態では、マスキング回路の共有について説明した。しかし、マスキング処理に限らずマトリクス演算を用いたその他の処理でも実施することができる。このためには、行列演算に用いる係数マトリクスを係数記憶領域301にあらかじめ用意しておき、その値をマトリクス演算の前に係数記憶部にロードしておく。その後、マスキング回路7に処理対象の画像データ(画素)を転送する。
このように、プロセッサ1はDMAプロセッサインターフェース6、特にレジスタ61を操作することで、プリンタ処理、スキャナ処理等の処理内容に応じて、DMAプロセッサ2が読み込んで実行する、インストラクションメモリ21の命令列を切り替えることができる。このことにより、DMAプロセッサ2の処理内容を柔軟に変更することが可能となる。つまり、複雑な回路を構成することなく、処理内容に応じて係数を切り替えることができ、また、画像処理の順序を柔軟に変更することができる。
そして、DMAプロセッサ2により実行されるプログラムを、たとえば画像処理装置に接続されたホストコンピュータなどから供給できるように構成することもできる。この様に構成することで、ホストコンピュータにおいて作成されたプログラムを画像処理装置に供給し、各画像処理モジュールによる処理順序や、マスキング処理において用いられる係数マトリクスを、プログラマが変更することができる。
<他の実施形態>
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
以上に述べたように本発明によれば、セレクタ回路を用いた複雑な回路を構成せずにDMAプロセッサ2のソフトを切り替えることにより、処理順序を変更することができる。このことから、マトリクス演算処理回路を共有でき、回路規模の削減が実現できる。
実施形態の画像処理装置の制御部の構成図である。 DMAプロセッサの出力ポート、入力ポートを示す図である。 メモリマップの一例を示す図である。 DMAプロセッサインターフェースレジスタマップの一例を示す図である。 スキャナ処理用マスキング処理の一例およびプリント処理用マスキング処理の一例を示す図である。 プロセッサ1の処理の一例を示す図である。 スキャナ処理時のDMAプロセッサの処理の一例を示す図である。 プリント処理時のDMAプロセッサの処理の一例を示す図である。 コピー処理時のDMAプロセッサの処理の一例を示す図である。 スキャナ処理画像縮小時のDMAプロセッサのプログラムの一例を示す図である。 プリント処理画像拡大時のDMAプロセッサのプログラムの一例を示す図である。 コピー処理画像縮小時のDMAプロセッサのプログラムの一例を示す図である。 画像処理装置全体の構成を示す図である。 画像処理装置による処理手順を示す図である。

Claims (5)

  1. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
    マトリクス演算で用いる係数を記憶する係数記憶手段と、
    前記DMAプロセッサから転送される画像データに対して、前記係数記憶手段に記憶された係数を用いてマトリクス演算を行うマトリクス処理手段と、
    前記DMAプロセッサから転送される画像データに対してマトリクス処理以外の画像処理を施す画像処理手段と、
    前記マトリクス処理手段に対して、処理モードに応じた順序で画像データを転送し、該処理モードに応じた係数を前記係数記憶手段にロードする命令コードを前記命令メモリに記録する命令書き替え手段と
    を備えることを特徴とする画像処理装置。
  2. 前記画像処理手段としては、入力画像データに対して画像処理を施す入力画像処理手段と、出力画像データに対して画像処理を施す出力画像処理手段とが含まれ、
    前記命令書き替え手段は、処理モードに応じて、前記入力画像処理手段または前記出力画像処理手段におけるマスキング処理のための係数を前記係数記憶手段にロードする命令コードを前記命令メモリに記録することを特徴とする請求項1に記載の画像処理装置。
  3. 画像入力部と画像出力部とを備えた画像処理装置であって、
    命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、
    マトリクス演算で用いる係数を記憶する係数記憶部と、
    前記DMAプロセッサから転送される画像データに対して、前記係数記憶部に記憶された係数を用いてマトリクス演算を行うマトリクス処理部と、
    前記DMAプロセッサから転送される画像データに対して入力マトリクス演算を除く入力補正処理を施す入力補正処理部と、
    前記DMAプロセッサから転送される画像データに対して出力マトリクス演算を除く出力補正処理を施す出力補正処理部と、
    前記マトリクス処理部と前記入力補正処理部と前記出力補正処理部とに対して処理モードに応じた順序で画像データを転送する命令コードを前記命令メモリに記録するプロセッサとを備え、
    前記プロセッサは、前記処理モードがコピーモードの場合、入力画像データに対して入力マトリクス演算に応じた係数を前記係数記憶手段にロードした後に画像データを前記マトリクス演算部に転送し、出力マトリクス演算に応じた係数を前記係数記憶手段にロードした後に画像データを前記マトリクス演算部に転送する命令コードを前記命令メモリに記録することを特徴とする画像処理装置。
  4. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、マトリクス演算で用いる係数を記憶する係数記憶手段と、前記DMAプロセッサから転送される画像データに対して、前記係数記憶手段に記憶された係数を用いてマトリクス演算を行うマトリクス処理手段と、前記DMAプロセッサから転送される画像データに対してマトリクス処理以外の画像処理を施す画像処理手段とを備える画像処理装置の制御方法であって、
    処理モードを判定する判定工程と、
    前記判定工程により判定された処理モードに応じた順序で、前記マトリクス処理手段に対して、処理モードに応じた順序で画像データを転送し、該処理モードに応じた係数を前記係数記憶手段にロードする命令コードを前記命令メモリに記録する命令書き替え工程と
    を備えることを特徴とする画像処理装置の制御方法。
  5. 命令メモリに記録された命令コードに従ってデータを転送するDMAプロセッサと、マトリクス演算で用いる係数を記憶する係数記憶手段と、前記DMAプロセッサから転送される画像データに対して、前記係数記憶手段に記憶された係数を用いてマトリクス演算を行うマトリクス処理手段と、前記DMAプロセッサから転送される画像データに対してマトリクス処理以外の画像処理を施す画像処理手段とを備えるコンピュータにより実行されるプログラムであって、
    処理モードを判定する判定工程と、
    前記判定工程により判定された処理モードに応じた順序で、前記マトリクス処理手段に対して、処理モードに応じた順序で画像データを転送し、該処理モードに応じた係数を前記係数記憶手段にロードする命令コードを前記命令メモリに記録する命令書き替え工程と
    を前記コンピュータにより実行させることを特徴とするプログラム。
JP2004357181A 2004-12-09 2004-12-09 画像処理装置およびその制御方法 Withdrawn JP2006164072A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=36666003

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2006164072A (ja)

Similar Documents

Publication Publication Date Title
US6954281B2 (en) Method and apparatus for image processing, and a computer product
US20010021278A1 (en) Method and apparatus for image processing, and a computer product
JP4717570B2 (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
US5946222A (en) Method and apparatus for performing a masked byte addition operation
JP2001358942A (ja) 誤差拡散演算装置
US6633975B1 (en) Data processing system having plurality of processors and executing series of processings in prescribed order
US6963420B1 (en) Image processing apparatus
JP4086556B2 (ja) 画像処理装置およびその制御方法
JP2006164072A (ja) 画像処理装置およびその制御方法
JP2001184495A (ja) 画像処理装置
JP3669574B2 (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラム、並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4516336B2 (ja) 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
JP2010268411A (ja) 画像処理装置及びその制御方法、並びに、プログラム
EP1120958A2 (en) Polynomial based multi-level screening
JP2006166251A (ja) 画像処理装置およびその制御方法
JPH11355583A (ja) 画像信号処理装置
JP2001092946A (ja) 画像処理装置
JP2002108833A (ja) 並列プロセッサ及びそれを用いた画像処理装置
JP2003346139A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5889372B2 (ja) 情報処理装置、情報処理システム、情報処理方法、制御装置および制御方法
JP2000032258A (ja) 画像処理装置および画像処理方法
US20080158238A1 (en) Format conversion apparatus from band interleave format to band separate format
JP2004289427A (ja) 画像処理装置及び画像形成装置
JP2006014378A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080304