以下、図面を参照して、本発明の実施の形態について説明する。本実施形態においては、撮像機能、画像形成機能、FAX(Facsimile)機能及びネットワーク通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な画像処理装置であるMFP(Multi Function Peripheral:複合機)を例として説明する。
まず、本実施形態に係る画像処理装置1全体のハードウェア構成について説明する。図1は、本実施形態に係る画像処理装置1のハードウェア構成を示すブロック図である。図1に示すように、本実施形態に係る画像処理装置1は、一般的なPC(Personal Computer)やサーバ等の情報処理装置と同様の構成を有する。即ち、本実施形態に係る画像処理装置1は、CPU(Central Processing Unit)10、RAM(Random Access Memory)20、ROM(Read Only Memory)30、HDD(Hard Disk Drive)40及びI/F50がバス90を介して接続されている。また、I/F50にはLCD(Liquid Crystal Display)60、操作部70及び外部装置80が接続されている。
CPU10は演算手段であり、画像処理装置1全体の動作を制御する。RAM20は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU10が情報を処理する際の作業領域として用いられる。ROM30は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。HDD40は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム(以後、アプリケーション)等が格納されている。
I/F50は、バス90と各種のハードウェアやネットワーク等を接続し制御する。LCD60は、ユーザが画像処理装置1の状態を確認するための視覚的ユーザインタフェースである。操作部70は、ユーザが画像処理装置1に情報を入力するためのユーザインタフェースであり、本実施形態においては、タッチパネルやハードキー等によって構成される。
外部装置80は、画像処理装置1特有の機能を実現するためのハードウェアであり、紙面上に画像形成出力を実行するプリントエンジンや、紙面上の画像を読み取るためのスキャナユニットである。
このようなハードウェア構成において、ROM30に格納されたプログラムやHDD40若しくは図示しない光学ディスク等の記録媒体からRAM20に読み出されたプログラムに従ってCPU10が演算を行うことにより、図2に示すコントローラ100が構成される。このようにして構成されたコントローラ100と、ハードウェアとの組み合わせによって、画像処理装置1の機能を実現する機能ブロックが構成される。
次に、本実施形態に係る画像処理装置1の機能構成について、図2を参照して説明する。図2は、本実施形態に係る画像処理装置1の機能構成を示すブロック図である。図2に示すように、本実施形態に係る画像処理装置1は、コントローラ100、ADF(Auto Document Feeder:原稿自動搬送装置)101、スキャナユニット102、排紙トレイ103、ディスプレイパネル104、給紙テーブル105、プリントエンジン106、排紙トレイ107及びネットワークI/F108を有する。
また、コントローラ100は、主制御部110、エンジン制御部120、画像処理部130、操作表示制御部140及び入出力制御部150を含む。図2に示すように、本実施形態に係る画像処理装置1は、スキャナユニット102、プリントエンジン106を有する複合機として構成されている。尚、図2においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
ディスプレイパネル104は、画像処理装置1の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像処理装置1を直接操作し、若しくは画像処理装置1に対して情報を入力する際の入力インタフェースでもある。即ち、ディスプレイパネル104は、ユーザによる操作を受けるための画像を表示する機能を含む。ディスプレイパネル104は、図2に示すLCD60及び操作部70によって実現される。従って、ディスプレイパネル104は操作表示部として機能する。
ネットワークI/F108は、画像処理装置1がネットワークを介して他の機器と通信するためのインタフェースであり、Ethernet(登録商標)やUSB(Universal Serial Bus)インタフェースが用いられる。ネットワークI/F108は、TCP/IPプロトコルによる通信が可能である。また、ネットワークI/F108は、画像処理装置1がファクシミリとして機能する際に、ファクシミリ送信を実行するためのインタフェースとしても機能する。そのため、ネットワークI/F108は、電話回線にも接続されている。ネットワークI/F108は、図2に示すI/F50によって実現される。
コントローラ100は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ROM30や不揮発性メモリ並びにHDD40や光学ディスク等の不揮発性記憶媒体に格納されたプログラムが、RAM20等の揮発性メモリ(以下、メモリ)にロードされ、CPU10がそのプログラムに従って演算を行うことにより構成されるソフトウェア制御部と集積部などのハードウェアとによってコントローラ100が構成される。コントローラ100は、画像処理装置1全体を制御する制御部として機能する。
主制御部110は、コントローラ100に含まれる各部を制御する役割を担い、コントローラ100の各部に命令を与える。エンジン制御部120は、プリントエンジン106やスキャナユニット102等を制御若しくは駆動する駆動手段としての役割を担う。画像処理部130は、主制御部110の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン106が画像形成動作において形成すべき画像を描画するための情報である。
また、画像処理部130は、スキャナユニット102から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像処理装置1の記憶領域に格納され若しくはネットワークI/F108を介して他の情報処理端末や記憶装置に送信される情報である。
操作表示制御部140は、ディスプレイパネル104に情報表示を行い若しくはディスプレイパネル104を介して入力された情報を主制御部110に通知する。入出力制御部150は、ネットワークI/F108を介して入力される情報を主制御部110に入力する。また、主制御部110は、入出力制御部150を制御し、ネットワークI/F108及びネットワークを介してネットワークに接続された他の機器にアクセスする。
画像処理装置1がプリンタとして動作する場合は、まず、入出力制御部150がネットワークI/F108を介して印刷ジョブを受信する。入出力制御部150は、受信した印刷ジョブを主制御部110に転送する。主制御部110は、印刷ジョブを受信すると、画像処理部130を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成させる。
画像処理部130によって描画情報が生成されると、エンジン制御部120は、プリントエンジン106を制御し、上記生成された描画情報に基づき、給紙テーブル105から搬送される用紙に対して画像形成を実行させる。即ち、画像処理部130、エンジン制御部120及びプリントエンジン106が画像形成出力部として機能する。プリントエンジン106の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン106によって画像形成が施された文書は排紙トレイ107に排紙される。
画像処理装置1がスキャナとして動作する場合は、ユーザによるディスプレイパネル104の操作若しくはネットワークI/F108を介して他の端末から入力されるスキャン実行指示に応じて、操作表示制御部140若しくは入出力制御部150が主制御部110にスキャン実行信号を転送する。主制御部110は、受信したスキャン実行信号に基づき、エンジン制御部120を制御する。
エンジン制御部120は、ADF101を駆動し、ADF101にセットされた撮像対象原稿をスキャナユニット102に搬送する。また、エンジン制御部120は、スキャナユニット102を駆動し、ADF101から搬送される原稿を撮像する。また、ADF101に原稿がセットされておらず、スキャナユニット102に直接原稿がセットされた場合、スキャナユニット102は、エンジン制御部120の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット102が撮像部として動作すると共に、エンジン制御部120が、読取制御部として機能する。
撮像動作においては、スキャナユニット102に含まれるCIS(Contact Image Sensor)やCCD(charge−coupled device)等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部120は、スキャナユニット102が生成した撮像情報を画像処理部130に転送する。画像処理部130は、主制御部110の制御に従い、エンジン制御部120から受信した撮像情報に基づき画像情報を生成する。
画像処理部130が生成した画像情報は主制御部110が取得し、主制御部110がHDD40等の画像処理装置1に装着された記憶媒体に保存する。即ち、スキャナユニット102、エンジン制御部120及び画像処理部130が連動して、画像入力部として機能する。画像処理部130によって生成された画像情報は、ユーザの指示に応じてそのままHDD40等に格納され若しくは入出力制御部150及びネットワークI/F108を介して外部の装置に送信される。
また、画像処理装置1が複写機として動作する場合は、エンジン制御部120がスキャナユニット102から受信した撮像情報若しくは画像処理部130が生成した画像情報に基づき、画像処理部130が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部120がプリントエンジン106を駆動する。尚、描画情報と撮像情報との情報形式が同一である場合は、撮像情報をそのまま描画情報として用いることも可能である。
以上説明したような機能構成であって、本実施形態に係る画像処理装置1は、一度に大量の画像を処理する実行命令である画像処理制御タスクを切り替える制御に特徴を有す。以下、図3を参照して、本実施形態に係る画像処理部130で行われる画像処理制御について説明する。
図3は、本実施形態に係る画像処理部130で行われる画像処理制御の構成を示す図である。図3に示すように、画像処理部130は、CPU10、DMA転送用RAM21、画像処理デバイス131を含む。画像処理デバイス131は、例えばASIC(Application Specific Integrated Circuit)であり、PDMAC(Parameter Direct Memory Access Controler)132、モジュール133、格納先選択部135、格納先スイッチ136、コード化部137を含む。
画像処理部130は、主制御部110及びエンジン制御部120を介して受信した画像データに対してディスプレイパネル104の操作に基づいて指定された画像処理を行う。エンジン制御部120は、スキャナユニット102において読み取られた画像データを画像処理部130に送信する。また、FAX制御部160はネットワーク23を介して受信した画像データを主制御部110に送信する。
主制御部110は、FAX制御部160から受信した画像データ以外にも、外部の情報処理端末からネットワーク23を介して取得した画像データを画像処理部130に送信する。また、主制御部110は、ディスプレイパネル104の操作に基づいて指定された画像処理を行うための制御を実行する。
CPU10においては、画像処理装置1にインストールされたプログラムが実行される。すなわち、CPU10は、画像処理制御タスクを実行する処理実行制御部として機能する。
本実施形態においてCPU10は、例えば、色補正パラメータ及びγ変換テーブルなど、画像処理が行われる際の処理内容情報である画像処理パラメータ73cを選択して画像処理を実行する画像処理制御タスク72c、階調処理を行うための画像処理パラメータ73bを選択して画像処理を実行する画像処理制御タスク72b、色相判定を行うための画像処理パラメータ73aを選択して画像処理を実行する画像処理制御タスク72a、・・・、などの画像処理制御タスクを実行する。以後の説明において、夫々を特に区別する必要がない場合には、「画像処理制御タスク72」、「画像処理パラメータ73」と記載する。
これらの画像処理制御タスク72は、テーブルで管理され、画像処理ごとに画像処理で使用される画像処理パラメータ73をテーブルから選択してもよい。また、画像処理制御タスク72は、画像処理を行うたびに計算によって画像処理パラメータ73を算出してもよい。
画像処理制御タスク72は、さらに、DMA転送を利用して、画像処理パラメータ73をレジスタ134に設定するか、もしくは、DMA転送を使用せずに画像処理パラメータ73を自らレジスタ134に設定するかを選択する。
DMA転送を使用する場合、画像処理制御タスク72は、DMA転送用ドライバ74を用いてDMA転送用RAM21内のDMA転送領域210に画像処理パラメータ(転送データ)73を格納させる。さらに、画像処理制御タスク72は、DMA転送用RAM21内にディスクリプタ75を生成させる。従って、DMA転送用RAM21は、処理内容情報格納部として機能する。
ディスクリプタ75は、画像処理デバイス131で生成された画像処理パラメータ73が記憶されるDMA転送用RAM21内の情報として、アドレス情報及び転送データ数などの情報を含む。また、画像処理制御タスク72は、PDMAC132を起動する。PDMAC132は、ディスクリプタ75の情報に基づいて、画像処理パラメータ73を読み出し、レジスタ134に画像処理パラメータ73を設定する処理内容情報設定部である。尚、転送データとは、画像処理パラメータ73の一部または全部に対応するデータである。
また、DMA転送用RAM21内に、DMA転送領域が複数含まれている場合、図3に示すように、画像処理制御タスク72はDMA転送領域210もしくはDMA転送領域211を選択してデータを送信する。
一方、DMA転送を使用しない場合、画像処理制御タスク72は、DMA転送用ドライバ74を用いて、モジュール133内のレジスタ134に画像処理パラメータ73を自ら設定する。従って、画像処理パラメータ73を直接レジスタ134に設定する場合、画像処理制御タスク72は処理内容情報設定部として機能する。
画像処理部130で処理された画像データは、エンジン制御部120を介して、プリントエンジン106から所定の出力フォーマットで出力される。
画像処理デバイス131は、複数の画像処理制御タスク72を行う際にPDMAC132を使用して画像処理パラメータ73のDMA転送を行うかもしくはレジスタ134に直接画像処理パラメータ73を設定するかを切り替える機能を実現する格納先選択部135を含む。さらに、画像処理デバイス131は、複数の格納先スイッチ136を含む。
格納先スイッチ136は、レジスタ134と、DMA転送領域210(もしくは211)と、DMA転送領域210(もしくは211)に含まれるディスクリプタ75とから、画像処理パラメータ73の設定先を選択してデータを送信するものがある。尚、各格納先スイッチ136には、“格納モード”が割り当てられており、“格納モード0”、“格納モード1”、“格納モード2”から選択することが出来る。
“格納モード0”は、画像処理パラメータ73をDMA転送用ドライバ74によって直接レジスタに格納する格納モードである。“格納モード1”は、画像処理パラメータ73をDMA転送用ドライバ74によってDMA転送領域210(もしくは211)に転送した後にPDMAC132によってレジスタ134に格納させる格納モードである。従って、画像処理パラメータ73はDMA転送領域210において第一の処理内容情報格納部として機能する。
“格納モード2”は、画像処理制御タスク72で行われる動作をディスクリプタ75としてDMA転送用ドライバ74によってDMA転送領域210(もしくは211)に転送した後に、PDMAC132によってレジスタ134に格納させる格納モードである。従って、ディスクリプタ75はDMA転送領域210において第二の処理内容情報格納部として機能する。
尚、画像処理制御タスク72によって、格納先スイッチ136に割り当てられている格納モードを切り替える処理が実行される。従って、画像処理制御タスク72は格納モードが設定されている格納設定情報が割り当てられる格納設定制御部として機能する。
具体的に、CPU10から送信される画像処理制御タスク72によって、“格納モード1”でDMA転送用RAM21に書き込まれる前に、格納先スイッチ136b〜nの格納モードに“格納モード1”が設定される。また、CPU10から送信される画像処理制御タスク72によって、“格納モード2”によってDMA転送用RAM21に書き込まれる前に、格納先スイッチ136b〜nの格納モードに“格納モード2”が設定される。従って、画像処理制御タスク72は、転送データをDMA転送用RAM21に格納させる格納命令を送信する。
格納先選択部135は、画像処理制御タスク72から送信されるデータに基づいて上記説明した格納先スイッチ136のうち、いずれかひとつを選択する。また、CPU10から送信される画像処理制御タスク72によって格納先スイッチ136b〜nに割り当てられている格納モードを切り替える処理が実行される。
また、格納先スイッチ136が、CPU10から送信される画像処理制御タスク72の数と比較して不足していることがある。例えば、格納先スイッチ136がN個であった場合に、画像処理制御タスク72の数がN個以上である場合である。
このような場合には、少なくとも一つの格納先スイッチ136を分割して使い分ける必要がある。例えば、画像処理制御タスク72bの動作が格納先スイッチ136bを使用して行われている場合、CPU10は、画像処理制御タスク72cが格納先スイッチ136bを使用しないように制御する必要がある。
そこで、CPU10は、格納先スイッチ136を共有する複数の画像処理制御タスク72が存在する場合に、少なくとも格納先スイッチ136が使用されている間、格納先スイッチ136を共有する画像処理制御タスク72が切り替わらないようにソフトウェア制御を実行する。
格納先選択部135によってDMA転送領域210(もしくは211)、DMA転送領域210(もしくは211)に含まれるディスクリプタ75が格納先として選択されたデータは、コード化部137に送信される。
コード化部137は、取得したデータをコード化する情報符号化部である。「コード化」とは、レジスタ134を示すアドレスや転送データを符号化して圧縮することを示す。コード化部137は、例えば、10000以上、20000未満の番地に記憶されている転送データに対して、5桁目の「1」を省略して4桁の「0000」とし、レジスタ134のアドレスをコード化する。
さらに、コード化部137は、レジスタ134および転送データをコード化して固定長データにする。例えば、レジスタ134を示すアドレスが19ビット、転送データが18ビットである場合、コード化部137は、レジスタ134を示すアドレスをコード化して16ビットとし、さらに転送データをコード化して16ビットとする。この時、コード化部137は、コード化されたレジスタ134を示すアドレスおよびコード化された転送データが合計2バイト(32ビット)の固定長データとなるように、コード化を行う。
また、コード化部137は、CPU10から受信した転送データをディスクリプタ75としてコード化し、ディスクリプタ75をDMA転送用RAM21に記憶させる。
モジュール133は、例えば、色補正部、階調補正部、γ変換部、色相判定処理部などの画像処理を行う処理実行部である。また、モジュール133は、これらの画像処理を行う際に、画像処理パラメータ73に基づいて処理を実行する。モジュール133は、画像処理実行中には、「BUSY信号」を、画像処理が終了した場合には、「READY信号」をPDMAC132に夫々送信する。
PDMAC132は、ディスクリプタ75に基づいて、DMA転送領域210、211からコード化されたレジスタ134のアドレスおよび転送データを読み出し、デコードする。従って、ディスクリプタ75は、DMA転送領域210、211からレジスタ134のアドレスおよび転送データを読み出し、レジスタ134に設定する処理を開始するための処理開始情報として機能する。
次に、PDMAC132は、モジュール133から「READY信号」を受信した場合に、転送データから画像処理パラメータ73をデコードし、アドレスに対応するレジスタ134にデコードした画像処理パラメータ73を設定する。
尚、PDMAC132は、画像処理パスと、最初に読み出す転送データが格納されている領域のアドレスの指定を画像処理制御タスク72から受けて起動される。画像処理パスとは、画像処理の際に使用するモジュール133の情報である。例えば、スキャナユニット102から原稿を読み込んで、プリントエンジン106にて印刷用紙に読み込んだ原稿から生成された画像データを印刷する場合、CPU10は、原稿読み取り用の画像処理パスと印刷用の画像処理パスとを用いる。
図4に示すように、例えば、画像処理装置1において、第一の画像処理パス41では、スキャナユニット102による原稿の読み取り処理400から編集411までが行われ、第二の画像処理パス42では、域像分離424から編集435までが実行されるとする。このような場合、画像処理装置1においては、第一の画像処理パス41と第二の画像処理パス42とを夫々独立に変更して画像処理を行うことが出来る。
図4においては、例えば、スキャナ・IPU14の点線画像処理パス(シェーディング補正401a、401b〜編集(1)、411)のタスクAと、画像処理パス(像域分離ACS(2)、451〜編集(2)、435)のタスクBとに分けて制御する。この時、自動原稿送り装置(ADF)によって、スキャナ400a,400bにより原稿の表面、裏面を夫々読み取る。
スキャナ・IPU14のブロックでは、表面・裏面を連続して画像処理を行い、HDD40内に蓄積させることが出来る。このとき、画像処理速度(1分間に画像処理可能な枚数)は、ADF101の読み取り速度に依存する。
一方、IPU15では、HDD40からの画像データを画像処理して、プロッタ415で印刷する。このIPU15の画像処理速度(1分間に画像処理する画像データの数)は、プロッタ413の印刷速度(1分間に印刷可能な枚数)に依存するか、あるいは、HDD40に再度保存する場合は、HDD40への保存速度(一例として、1分間に保存可能な画像データの枚数)に依存する。
そのため、スキャナ・IPU14とIPU15とが独立なタスクでない場合には、スキャナ・IPU14の画像処理速度が、プロッタ413の印刷速度の制約を受けやすくなってしまう。また、IPU15の画像処理速度が、スキャナ400a、bの読み取り速度(一例として、1分間に原稿を読み取り可能な枚数)の制約を受けやすくなる。
そこで、本実施形態においては、上述したような影響を低減するために、スキャナ・IPU14もしくはIPU15で行われるそれぞれの制御を、独立した画像処理制御タスク72とする。また、同一の画像処理パス内でも、画像データの流れを制御するためにリアルタイムに制御を行う必要があるタスクと、画像処理パラメータを計算で求めるためのタスクのようにリアルタイム制御に比べて長い計算時間が必要である場合もある。
例えば、図4のスキャナ・IPU14で行われる画像処理パスに含まれる、像域分離・ACS部403、色相判定部406、色補正・UCR処理部407などである。像域分離・ACS部403は、スキャナ400a、bで読み取られた画像データについて、文字領域、網点領域、地肌領域などを判定し、領域判定結果を示す信号、カラー判定結果を示すカラー判定信号、透明トナーの付加量を示す信号を出力する。
色相判定部406は、読み取られた画像データがどの色相に判別されるかを判定し、判定結果に基づいて色相ごとの色補正係数を選択する。また、色補正・UCR処理部407は、読み取られた画像データをCMYKの画像データに変換し、変倍処理部408に入力する。
そこで、これらの処理部で行われる画像処理制御タスクについて、リアルタイムな制御が要求されないタスクと、リアルタイムな制御が要求されるタスクとを分けて夫々別の画像処理制御タスクとする。このようにすることで、本実施形態においては、リアルタイム制御が必要な画像処理制御タスクのみを制御可能とする。
このように、タスクを分けることによって、別のタスクの影響を考慮しないでプログラムを作成することができる。また、システムが所定の時間で画像処理制御タスク72を切り替え、画像処理制御タスク72ごとにリアルタイムに制御することが出来る。このように、画像処理に応じてシステムにかかる負荷を低減させることが本発明の要旨のひとつである。
以上説明したような構成であって、本実施形態に係る画像処理装置1は、CPU10から画像処理デバイス131に送信されたデータの送信先を振り分ける際の処理に特徴を有する。以下、図5を参照して、画像処理部130におけるデータの流れを説明する。
図5は、本実施形態に係る画像処理部130におけるデータの流れを示す説明図である。図5においては、画像処理パラメータ73の設定先となるレジスタ134のアドレス及びレジスタに設定されるデータの流れを破線の矢印で示し、データの格納先となるDMA転送領域210、211のアドレス及び格納モードの流れを実線の矢印で示している。
尚、画像処理パラメータ73の設定先となるレジスタ134のアドレス及びレジスタに設定されるデータと、データの格納先となるDMA転送領域210、211のアドレス及び格納モードとは、CPU10から画像処理デバイス131に送信される転送データ、即ち画像処理制御タスク72において指定される。
図6、図7は、本実施形態に係るデータの情報構成を例示した図である。尚、図6、図7においては、例として、32ビット長のデータを用いてレジスタ134のアドレスを指定する。図6、図7に示すように、本実施形態においては、18ビット〜24ビットを設定対象となるレジスタ134のアドレスを指定する領域として使用し、残りの14ビット〜8ビットを、格納先選択番号を指定する領域として使用する。
尚、格納先スイッチ136には、夫々、転送先となるDMA転送用RAM21のアドレスと格納モードが割り当てられている。「格納モード0」は、対象のレジスタ134に直接画像処理パラメータ73を設定する格納モードである。「格納モード1」は、DMA転送用RAM21内のDMA転送領域210、211に画像処理パラメータ73を記憶させ、PDMAC132を介して対象となるモジュール133のレジスタ134に画像処理パラメータ73を設定する格納モードである。
「格納モード2」は、DMA転送する画像処理パラメータ73をディスクリプタ75としてDMA転送領域210、211に転送し、PDMAC132を介して対象となるモジュール133のレジスタ134に設定する格納モードである。
格納先選択部135は、CPU10から受信した転送データ、すなわち画像処理制御タスク72に予め対応付けられている格納先スイッチ136を参照し、転送先のアドレスを取得する。また、画像処理制御タスク72が切り替えられる際に、タスクの切り替えと連動してCPU10から格納先選択番号を発行する構成であってもよい。
以上説明したような機能構成によって、本実施形態に係る格納先選択部135は、画像処理制御タスク72を切り替えて実行させるために画像処理パラメータ73の転送先を選択する。次に、図8から図11を参照して本実施形態に係る画像処理パラメータ73の転送先を選択する処理について説明する。
図8は、本実施形態に係る画像処理パラメータ73の転送先を選択する処理の流れを示すフローチャートである。尚、図5には、図9、図10、図11で説明する処理と対応する箇所に同じ符号を付している。
CPU10は、レジスタ134のアドレス、レジスタに設定する画像処理パラメータ73を含むデータを画像処理デバイス131に送信する。格納先選択部135は、データを受信する(S801)と、格納先選択番号の情報を含むか否か判断する(S802)。
図12に示すように、受信したデータに格納先選択番号の情報が含まれていない場合(S802/No)、格納先選択部135は、受信したデータを直接レジスタ134に書き込み、記憶させる(S803)。一方で、図13に示すように、受信したデータに格納先選択番号の情報が含まれている場合(S802/Yes)、格納先選択部135は、格納先選択番号の情報を読み出し、受信したデータの格納先を判断する。
尚、この時、格納先選択番号が「0」であった場合(S804/Yes)、格納先選択部135は、受信したデータを直接レジスタ134に書き込み、記憶させる(S803)。格納先選択部135は、格納先選択番号が「0」ではない場合(S804/No)、受信したデータの格納先選択番号を読み出して、データの送信先となる格納先スイッチ136を決定する(S805)。
そして、格納先選択部135は、決定した格納先スイッチ136から、データの転送先のアドレス及び格納モードの情報を読み出して取得する(S806)。さらに格納先選択部135は、取得した格納モードの情報に基づいて、受信したデータを送信する(S807)。
以下、図9から図11を参照して、本実施形態に係る格納モードごとに行われる処理について説明する。図09は、格納モードが「0」である場合に画像処理部130で行われる処理の流れを示すシーケンス図である。
格納先スイッチ136に設定されている格納モードが「0」である場合、格納先選択部135は、画像処理パラメータ73aの格納先であるレジスタ134aのアドレスをDMA転送用ドライバ74aに送信する(S901)。DMA転送用ドライバ74aは、レジスタ134aに画像処理パラメータ73aを書き込む(S902)。画像処理パラメータ73aがレジスタ134に格納されると(S903)、DMA転送用ドライバ74aは本処理を終了する。
図10は、格納モードが「1」である場合に、画像処理部130で行われる処理の流れを示すシーケンス図である。格納先スイッチ136に設定されている格納モードが「1」であった場合、格納先選択部135は、格納モードの情報に基づいてDMA転送領域210を指定するアドレスをDMA転送用ドライバ74bに送信する(S1001)。
DMA転送用ドライバ74bは、格納モード「1」に割り当てられている処理の情報をコード化部137に送信する。即ち、DMA転送用ドライバ74bは、DMA転送領域210を指定するアドレスと、画像処理パラメータ73bと、画像処理パラメータ73bの設定先となるレジスタ134bのアドレスをコード化部137に送信する(S1002)。
コード化部137は、受信したデータを夫々コード化し(S1003)、コード化した送信先のレジスタ134のアドレスを画像処理パラメータ73bとセットにする(S1004)。従って、コード化部137は、符号化されたデータを関連付けて格納させる符号化関連情報格納制御部として機能する。
コード化された送信先のレジスタ134のアドレス及び画像処理パラメータ73bの情報は、コード化部137によって、データの転送先として指定されたDMA転送領域210の指定アドレスに書き込まれる(S1005)。
DMA転送用ドライバ74bは、データがDMA転送領域210に格納される(S1006)と、データの格納先であるDMA転送領域210のアドレスを所定分インクリメントし、本処理を終了する。尚、本実施形態においてDMA転送領域210のアドレスは、データがDMA転送領域210に書き込まれる度に、書き込まれるデータの量に相当する記憶容量である「+04H」だけオートインクリメントされる。
図11は、格納モードが「2」である場合に、画像処理部130で行われる処理の流れを示すシーケンス図である。格納先スイッチ136に設定されている格納モードが「2」である場合、格納先選択部135は、格納モードの情報に基づいてDMA転送領域210を指定するアドレスをDMA転送用ドライバ74bに送信する(S1101)。
DMA転送用ドライバ74bは、格納モード「2」に割り当てられている処理の情報をコード化部137に送信する。即ち、DMA転送用ドライバ74bは、DMA転送領域210を指定するアドレスと、画像処理パラメータ73bの設定先となるレジスタ134bのアドレスをコード化部137に送信する(S1102)。さらに、画像処理制御タスク72bには、転送データをディスクリプタ75bとして記憶領域に格納するための制御情報が含まれている。
コード化部137は、受信したデータをディスクリプタ75bとしてコード化する(S1103)。ディスクリプタ75bは、S806で取得したデータにおいて指定されたDMA転送領域210に書き込まれる(S1104)。送信されたデータが、ディスクリプタ75bとしてDMA転送領域210に格納される(S1105)と、DMA転送用ドライバ74bは、本処理を終了させる。
次に、CPU10がPDMAC132を起動して、各モジュール133のレジスタ134に画像処理パラメータ73を書き込むまでの動作を説明する。図14に示すのは、本実施形態に係るPDMAC132の内部構成を示す機能ブロック図である。図14に示すように、PDMAC132は、アドレス制御部141、データ制御部142を含む。また、データ制御部142は、内部バッファ148、アドレス生成部149を含む。
CPU10は、PDMAC132のアドレス制御部141に含まれるPDMAC起動ディスクリプタ・アドレス144にディスクリプタ75が格納されているDMA転送用RAM21のアドレスを設定する。CPU10は、モジュール133に画像データが出力されていないことを確認し、PDMAC132のアドレス制御部141に含まれるレジスタであり、PDMAC132を起動させるPDMAC起動レジスタ143に、PDMAC132を起動させる設定値を設定する。この時、CPU10は、例えば、「1」をPDMAC起動レジスタ143に設定する。
PDMAC132は、PDMAC起動レジスタ143に、PDMAC132を起動させる設定値が設定されると、PDMAC起動ディスクリプタ・アドレス144に設定されているDMA転送用RAM21のアドレスに基づいて、ディスクリプタ75を読み出すためのコマンドをDMA転送用RAM21に発行する。データ制御部142は、DMA転送用RAM21からコマンドに対応したディスクリプタ75を受け取る。尚、PDMAC132とDMA転送用RAM21との間には、アービタ兼DMA転送用RAM制御部22が存在しているものとする。
尚、CPU10はあらかじめDMA転送用RAM21に画像処理パラメータ73を格納し、格納されている画像処理パラメータ73に対応するディスクリプタ75をDMA転送用RAM21の所定の領域に格納する。本実施形態においては、格納されている画像処理パラメータ73と、その画像処理パラメータ73に対応するディスクリプタ75が格納される領域をDMA転送領域210、211として記載している。
また、CPU10は、ディスクリプタ75が格納されているDMA転送領域210、211のアドレスを、アドレス制御部141に含まれるPDMAC起動ディスクリプタ・アドレス144に設定しておくものとする。
なお、図14に示すように、ディスクリプタ75としては、例えばNDP(Next Descriptor Pointer)155、SA(Start Address)156、SIZE157などの項目が登録されている。
NDP155には、次のディスクリプタ75が格納されているDMA転送領域210、211のアドレスが設定される。CPU10は、DMA転送領域210、211上の連続しない領域に画像処理パラメータ73を格納する場合には、それぞれの領域のディスクリプタ75を生成し、次のディスクリプタ75が格納されているDMA転送領域210、211のアドレスをNDP155に書き込む。
このように、NDP155に次のディスクリプタ75を指定するアドレスを書き込むことで、連続しない領域に格納された画像処理パラメータ73を用いて連続して画像処理を行うことが可能になる。
また、SA156には、例えばDMA転送領域210、211からデータを読み出す先頭アドレス(転送開始アドレス)が設定される。SIZE157には、転送データ量(例えば単位:バイト)が設定される。
データ制御部142は、DMA転送領域210、211から取得したディスクリプタ75をアドレス制御部141に受け渡す。アドレス制御部141は、ディスクリプタ75を内部バッファ148に格納する。アドレス制御部141は、SAレジスタ146で指定されたDMA転送領域210、211の空間領域からSIZEレジスタ147で指定されたサイズに相当する画像処理パラメータ73とその画像処理パラメータ73を書き込むアドレス情報とを読み出すための読み出しコマンドを発行する。
データ制御部142は、DMA転送領域210、211から読み出しコマンドに対応した画像処理パラメータ73とその画像処理パラメータ73のアドレス情報を受け取る。図14に示すように、あらかじめCPU10によりDMA転送領域210、211に格納された画像処理パラメータ73には、その画像処理パラメータ73に対応するアドレス情報としてのレジスタアドレスが付加されている。
上述したように、CPU10が書き換えを実施したい画像処理パラメータ73と、その画像処理パラメータ73を書き込むモジュール133のレジスタ134のレジスタアドレスとを対応付けてDMA転送領域210、211に格納しておく。これにより、モジュール133では、書き換えを実施したい画像処理パラメータ73のみを書き換えることが出来る。
ここで、データ制御部142は、DMA転送領域210、211からバースト転送により、例えば一つの書き込みコマンドによって複数の画像処理パラメータ73を取得する。これに対し、データ制御部142は、単一転送として、例えば一つの書き込みコマンドで一つの画像処理パラメータ73をモジュール133に転送する。
上述した転送速度の差を吸収するため、データ制御部142には、内部バッファ148が設けられている。データ制御部142は、DMA転送領域210、211から取得した画像処理パラメータ73とその画像処理パラメータ73に対応するアドレス情報とを内部バッファ148に一時的に格納し、内部バッファ148に収まらない状態になると、アドレス生成部149に出力する。
アドレス生成部149は、例えばCPU10により設定可能なベースアドレステーブル151を含む。アドレス生成部149は、ベースアドレステーブル151を参照して、内部バッファ148から取得したアドレス情報に、起動されたディスクリプタ75に対応したベースアドレス(ベース情報)を加算する。アドレス生成部149は、ベースアドレスを加算したアドレス情報に対する書き込み要求をモジュール133に発行する。
図14に示すように、例えば、PDMAC132から発行された書き込み要求は、コントローラ100を介してモジュール133に出力される。モジュール133のレジスタ134には、対応する画像処理パラメータ73が書き込まれる。
SIZEレジスタ147で指定されたサイズに相当する画像処理パラメータ73の転送が完了すると、アドレス制御部141は、NDPレジスタ145で指定されたDMA転送領域210、211に格納された次のディスクリプタ75の読み出しコマンドを発行する。以上説明したような処理を繰り返すことによって、モジュール133のレジスタ134に画像処理パラメータ73が設定される。
尚、PDMAC132は、NDPレジスタ145で指定された設定値が、例えば「0」などの場合には、モジュール133への画像処理パラメータ73の書き込みが終了すると、CPU10に転送完了通知を発行する。以上説明したようにして、DMA転送用RAM21に格納された画像処理パラメータ73はモジュール133のレジスタ134に設定される。
このように、本実施形態に係る画像処理部130においては、CPU10から送信される画像処理制御タスク72に基づいて画像処理パラメータ73の格納先を振り分ける処理が実行される。以下、本実施形態に係る画像処理パラメータ73の格納先を振り分ける処理について説明する。
図15は、本実施形態に係る夫々の画像処理制御タスク72で行われる動作を示す図である。尚、本実施形態においては、画像処理制御タスク72aに格納モード0、画像処理制御タスク72bに格納モード1、画像処理制御タスク72bに格納モード2が関連付けられているものとして、以下の説明を行う。
図15に示すように、格納モード0の場合、画像処理パラメータ73aは、PDMAC132を経由せずにDMA転送用ドライバ74aによって直接レジスタ134aに書き込まれる。この時、画像処理パラメータ73aは、レジスタ134のアドレス「0×0000H」を開始アドレスとして、2バイトのデータが「0×0000」、「0×0001」、「0×0002」、「0×0003」、「0×0004」、「0×0005」のアドレスに順次書き込まれる。
また、格納モード1の場合、画像処理パラメータ73bはDMA転送用ドライバ74bによってDMA転送領域210に格納された後に、PDMAC132によってレジスタ134bに書き込まれる。
この時、DMA転送領域210の「0×1000H」のアドレスで指定される領域に、レジスタ134bを指定するアドレスとコード化された画像処理パラメータ73bとのデータセットが3セット分、2バイトずつ順次書き込まれる。また、DMA転送領域210内のアドレスは、図16に示すように書き込まれるデータの量に相当する記憶容量である4ずつオートインクリメントされる。
また、画像処理パラメータ73bによって、格納先スイッチ136bの格納モードが「1から2」に書き換えられる。
画像処理パラメータ73bによって、格納モード2に切り替えられた格納先スイッチ136bに送信される画像処理パラメータ73bは、DMA転送用ドライバ74bによってDMA転送領域210内にディスクリプタ75bとして格納される。そして、PDMAC132によってディスクリプタ75bから画像処理パラメータ73bがレジスタ134bに格納される。
この時、DMA転送領域211の「0×2000H」のアドレスで指定される領域に、ディスクリプタ75bとしてコード化されたレジスタ134bを指定するアドレスと画像処理パラメータ73bとを含むデータが2バイトずつ順次書き込まれる。また、DMA転送領域210内のアドレスは、図16に示すように書き込まれるデータの量に相当する記憶容量である4ずつオートインクリメントされる。
画像処理制御タスク72bにおいては、まず、格納モード1により画像処理パラメータ73bを含む転送データがDMA転送用RAM21に格納される。そして、画像処理制御タスク72bによって、格納先スイッチ136bに設定されている格納モードが格納モード「2」に書き換えられる。
書き換えられて格納モード2にされたことにより、画像処理制御タスク72bにおいては、転送データがディスクリプタ75bとしてDMA転送用RAM21に格納される。画像処理パラメータ73bを含む転送データとディスクリプタ75bとがDMA転送用RAM21に格納されると、画像処理制御タスク72bによって、PDMAC132が起動される。
図17は、本実施形態に係るPDMAC132を起動させるために行われる動作の一例を示すテーブルである。図17に示すように、格納モード2の場合、ディスクリプタ75によって転送されるデータを設定するために、レジスタアドレス「0×FFF0」によって指定される転送RAM設定用レジスタが用いられる。
また、PDMAC起動レジスタ143(レジスタアドレス「0×FFF2」)において読み取られた設定値が「0」である場合は待機状態に、また、読み取られた設定値が「1」である場合は、PDMAC132を起動状態にする。待機状態である場合に、PDMAC起動レジスタ143に、画像処理制御タスク72からCPU10を経由して「1」が設定されると、PDMAC132は待機状態から起動状態に状態遷移される。
逆に、PDMAC132が起動状態である場合、PDMAC起動レジスタ143に対して、画像処理制御タスク72からCPU10を経由して、「0」が設定されると、PDMAC132は起動状態から待機状態に状態遷移される。
PDMAC132が起動している間、転送データが設定される対象となるレジスタ134が、使用中(画像パスに画像データが流れている状態)である場合、PDMAC132はデータ転送を即座には実行せず、転送データが設定される対象となるレジスタ134が不使用状態になった後に、PDMAC転送を実行する。
尚、PDMAC起動ディスクリプタ・アドレス144には、PDMAC転送を行う動作において、最初に使用されるディスクリプタ75bが格納されているDMA転送用RAM21のアドレス「0×2000」が設定される。
PDMAC転送においては、まず、PDMAC起動ディスクリプタ・アドレス144「0xFFF4」に設定されたアドレスを、PDMAC転送に使用する最初のディスクリプタ75bのアドレスとして使用する。また、次のディスクリプタ75を設定するためのディスクリプタ・アドレスは、最初のディスクリプタ75b内に設定されている。尚、転送されるディスクリプタ75が末端のディスクリプタ75である場合には「0」が設定される。
そして、PDMAC132は、ディスクリプタ75を順次呼び出し、PDMAC転送を行う。データを転送している間、PDMAC132は転送中のディスクリプタ・アドレスを、PDMAC起動ディスクリプタ・アドレス144に表示させる。
一方、転送RAMデータが設定される対象となるレジスタ134が、使用されていない(画像パスに画像データが流れていない状態)場合、PDMAC132は、PDMAC転送を即座に実行する。
次に、画像処理制御タスク72が並列して実行される場合のデータの流れを図18〜図24を参照して説明する。図18は、本実施形態に係る複数の画像処理制御タスク72が並列して実行される時の処理の流れを示す図である。尚、本実施形態においては、画像処理制御タスク72a、72bが並列して行われる処理について説明する。また、図19は、本処理を実行する前のレジスタ134a、DMA転送領域210夫々のメモリダンプを示す図である。
図19に示すように、本処理を実行する前、すなわち初期状態におけるレジスタ134a、DMA転送領域210の記憶領域には、「0000」のデータのみが存在する。また、図19〜図24においては、レジスタ134a、DMA転送領域210夫々におけるオフセットアドレスを、16進数を用いて、「0000」、「0002」、「0004」、「0006」、「0008」、「000A」と表す。レジスタ134a、DMA転送領域210夫々においては、「0000」のオフセットアドレスからデータを書き込む処理が開始される。
図18の設定回数1回目の処理から順に説明を行う。設定回数1回目の処理では、夫々の画像処理制御タスク72に対応付けられている格納先スイッチ136を参照し、夫々の画像処理制御タスク72に格納モードを割り当てる処理が実行される。
画像処理制御タスク72aは格納モード0が対応付けられているタスクである。従って、画像処理制御タスク72aによって、格納先スイッチ136aに格納モード0が割り当てられる。従って、画像処理制御タスク72aが実行されることによって画像処理パラメータ73aが直接レジスタ134aに書き込まれる。設定回数1回目の処理においては、まず、レジスタ134aのアドレス「0×0000」に、画像処理パラメータ73aのデータ「0×0000」が書き込まれる。
画像処理制御タスク72bは格納モード1が対応付けられているタスクが含まれ、画像処理制御タスク72bによって、格納先スイッチ136bに格納モード「1」が割り当てられる。従って、画像処理制御タスク72bが実行されることによって、画像処理パラメータ73bがDMA転送領域210に一時的に格納された後に、レジスタ134bに書き込まれる。設定回数1回目の処理においては、CPU10から画像処理制御タスク72bが格納モード「1」で実行される処理であることが、コード化部137に送信される。
画像処理制御タスク72bには格納モード2が対応付けられているタスクが含まれ、画像処理制御タスク72bによって、格納先スイッチ136bに割り当てられている格納モードを格納モード「2」に書き換えられる。従って、画像処理制御タスク72bが実行されることによって、画像処理パラメータ73bがディスクリプタ75bとしてDMA転送領域210に一時的に格納された後に、レジスタ134bに書き込まれる。設定回数1回目の処理においては、画像処理制御タスク72bに格納モード「2」で実行される処理が含まれることを示す情報が、コード化部137に送信される。
尚、以後の処理について、格納モード1で行われる画像処理制御タスク72bの処理を「画像処理制御タスク72b−1」、格納モード2で行われる画像処理制御タスク72bの処理を「画像処理制御タスク72b−2」とそれぞれ記載する。
設定回数2回目の画像処理制御タスク72aにおいては、レジスタ134aのアドレス「0×0002」に、画像処理パラメータ73aのデータ「0×0001」が書き込まれる。設定回数2回目の画像処理制御タスク72b−1においては、格納先スイッチ1に対応付けられているDMA転送領域210を格納先として指定するための格納先アドレス「0×1000」が設定される。
設定回数2回目の画像処理制御タスク72b−2においては、格納先スイッチ136bに対応付けられているDMA転送領域210を格納先として指定するための格納先アドレス「0×2000」が設定される。
図19は、画像処理制御タスク72a、72bについて設定回数2回目の処理が終了したタイミングにおけるメモリダンプを例示した図である。図19に破線を用いて示すように、「0×0000H」のアドレスで指定されるレジスタ134aにのみ2バイト分×2つの画像処理パラメータ73aが書き込まれている。
設定回数3回目の画像処理制御タスク72aにおいては、レジスタ134aのアドレス「0×0004」に、画像処理パラメータ73aのデータ「0×0002」が書き込まれる。
設定回数3回目の画像処理制御タスク72b−1においては、格納先スイッチ1に対応付けられているDMA転送領域210のアドレス「0×1000」に、レジスタ134bの領域を指定するアドレス「0×0000」が書き込まれる。また同時に、DMA転送領域210のアドレス「0×1002」に、画像処理パラメータ73bのデータ「0×0010」が書き込まれる。同時に書き込まれるのは、格納モード「1」においては、コード化されたレジスタ134bを指定するアドレスと画像処理パラメータ73bとがデータセットとして扱われるためである。
設定回数3回目の画像処理制御タスク72b−2においては、格納先スイッチ136bに対応付けられているDMA転送領域210のアドレス「0×2000」に、レジスタアドレス「0×FFF0」が書き込まれる。また、同時に、DMA転送領域のアドレス「0×2002」に、DMA転送領域210に格納されている画像処理パラメータ73bを転送元として指定するアドレスである「0×1000」が書き込まれる。
図20は、画像処理制御タスク72a、72bについて設定回数3回目の処理が終了したタイミングにおけるメモリダンプを例示した図である。図20に破線を用いて示すように、「0×0000H」のアドレスで指定されるレジスタ134aには、2バイト×3つ分の画像処理パラメータ73aが書き込まれている。また、「0×1000H」のアドレスで指定されるDMA転送領域210には、画像処理パラメータ73bの設定先のレジスタ134bのアドレスと、画像処理パラメータ73bとが書き込まれている。さらに、「0×2000H」のアドレスで指定されるDMA転送領域210には、「0×FFF0」が書き込まれている。
設定回数4回目の画像処理制御タスク72aにおいては、レジスタ134aのアドレス「0×0006」に、画像処理パラメータ73aのデータ「0×0003」が書き込まれる。
設定回数4回目の画像処理制御タスク72b−1においては、格納先スイッチ1に対応付けられているDMA転送領域210のアドレス「0×1004」に、レジスタ134bの領域を指定するアドレス「0×0002」が書き込まれる。また同時に、DMA転送領域210のアドレス「0×1006」に、画像処理パラメータ73bのデータ「0×0011」が書き込まれる。
設定回数4回目の画像処理制御タスク72b−2においては、格納先スイッチ136bに対応付けられているDMA転送領域210のアドレス「0×2004」に、転送されるデータが一時的に格納されていることを示す情報であるレジスタアドレス「0×FFF0」が書き込まれる。また、同時に、DMA転送領域210のアドレス「0×2006」に、DMA転送領域210に格納された画像処理パラメータ73bを転送元として、データをレジスタ134の3つ分転送することを示す転送サイズを設定するデータである「0×0003」が書き込まれる。
図21は、画像処理制御タスク72a、72bについて設定回数4回目の処理が終了したタイミングにおけるメモリダンプを示した図である。図21に破線を用いて示すように、「0×0000H」のアドレスで指定されるレジスタ134aには、2バイト分×4つの画像処理パラメータ73aが書き込まれている。
また、「0×1000H」のアドレスで指定されるDMA転送領域210には、画像処理パラメータ73bの設定先のレジスタ134bのアドレスと、画像処理パラメータ73bとが書き込まれている。さらに、「0×2000H」のアドレスで指定されるDMA転送領域210には、DMA転送領域210に格納されているデータ(画像処理パラメータ73b)をレジスタ134の3つ分転送することを示すデータが書き込まれている。
設定回数5回目の画像処理制御タスク72aにおいては、レジスタ134aのアドレス「0×0008」に、画像処理パラメータ73aのデータ「0×0004」が書き込まれる。
設定回数5回目の画像処理制御タスク72b−1においては、格納先スイッチ1に対応付けられているDMA転送領域210のアドレス「0×1008」に、レジスタ134bの領域を指定するアドレス「0×0004」が書き込まれる。また同時に、DMA転送領域210のアドレス「0×100A」に、画像処理パラメータ73bのデータ「0×0012」が書き込まれる。本実施形態においては、データセットがDMA転送領域210に3つ書き込まれた場合に、画像処理制御タスク72b−1は終了する。
設定回数5回目の画像処理制御タスク72b−2においては、格納先スイッチ136bに対応付けられているDMA転送領域210のアドレス「0×2008」に、転送されるデータが一時的に格納されていることを示す情報であるレジスタアドレス「0×FFF0」が書き込まれる。
また、同時に、DMA転送領域210のアドレス「0×200A」に、次のディスクリプタ75を指定するアドレスの設定値として「0」が書き込まれる。上述したように、本実施形態においては、レジスタ134を3つ分転送するための設定値がDMA転送領域210に書き込まれ、次のディスクリプタ75のアドレスに0が指定される。
設定回数6回目の画像処理制御タスク72aにおいては、レジスタ134aのアドレス「0×000A」に、画像処理パラメータ73aのデータ「0×0005」が書き込まれる。そして、設定回数6回目の画像処理制御タスク72b−2においては、PDMAC起動ディスクリプタ・アドレス144のアドレス「0×FFF4」に、次のディスクリプタ75の先頭アドレス「0×2000」が書き込まれる。
そして、設定回数7回目の画像処理制御タスク72b−2において、PDMAC132を起動させるPDMAC起動レジスタ143のアドレス「0×FFF2」に、PDMAC132を起動させる設定値「1」が設定される。以上説明したような動作によって、本実施形態に係る画像処理制御タスク72は終了する。
尚、本実施形態においては、PDMAC起動レジスタ143がひとつ存在する場合を例に説明を行ったが、実際の画像処理装置においては、画像処理を行う際に実行される画像処理パスの数に相当する数のPDMAC起動レジスタが存在する。
図23は、画像処理制御タスク72aの設定回数6回目の処理が終了したタイミングにおけるメモリダンプを示した図である。図23に破線を用いて示すように、「0×0000H」のアドレスで指定されるレジスタ134aには、2バイト×6つ分の画像処理パラメータ73aが書き込まれている。
また、「0×1000H」のアドレスで指定されるDMA転送領域210には、画像処理パラメータ73bの設定先のレジスタ134bのアドレスと、画像処理パラメータ73bとのデータセットが3つ分書き込まれている。さらに、「0×2000H」のアドレスで指定されるDMA転送領域210には、次のディスクリプタのアドレスを示すデータが書き込まれている。
PDMAC起動レジスタ143に設定値「1」が設定されると、PDMAC132が起動する。起動したPDMAC132は、「0×1000H」のアドレスで指定されるDMA転送領域210に格納されている画像処理パラメータ73bをデコードしてレジスタ134bに設定する。
図24は、PDMAC132によってデータ転送が行われた直後のタイミングにおけるメモリダンプを示した図である。図24に破線を用いて示すように、「0×1000H」のアドレスに書き込まれたデータが「0×0000H」のアドレスで指定されるレジスタ134に転送されている。
以上説明したように、本実施形態に係る画像処理装置1においては、CPU10から送信される画像処理制御タスク72を切り替える際に、夫々の画像処理制御タスク72に応じて画像処理を行うモジュール133に設定される画像処理パラメータ73の転送先を決定する。そのため、複数の画像処理制御タスク72が並列して実行される場合であっても、CPU10にかかる処理負荷を低減させることが出来る。
さらに、画像処理制御タスク72において、リアルタイム制御が必要なタスクと、リアルタイム制御は要求されないが画像処理パラメータ73のように計算時間がかかるタスクとを別タスクとしておくことも出来る。このような場合、リアルタイム制御が必要なタスクが、計算時間がかかるタスクからの影響を受けにくくなる。
例えば、一時的にでも、リアルタイム制御が必要なタスクに対して、CPU10の処理能力を占有しやすくするように処理を行う優先度を上げる。一方で、計算時間が必要とされ、かつ、リアルタイムな制御が必要とされるタスクに対しては、CPU10の処理能力を占有しにくくする優先度を下げる処理を行う。このようにタスクを分けることによって更に、CPU10にかかる処理負担を低減させて制御することが出来る。
尚、レジスタ134に直接設定される画像処理パラメータ73aとして、画像データの開始/終了のような動作タイミングに合わせてリアルタイムに設定することが必要な画像処理パラメータを設定する構成であってもよい。また、画像処理パラメータ73aとして、画像処理装置1の電源投入時などに、一度設定しておけば、再設定が不要な画像処理パラメータを設定してもよい。
また、DMA転送領域210に設定される画像処理パラメータ73bとして、例えば、リアルタイムに設定することが不要な画像処理パラメータを設定する構成であってもよい。このような画像処理パラメータとしては、例えば、画像処理が開始されるまでに画像処理デバイス131に設定しておけばよい画像処理パラメータなどがある。
また、Lookup Tableなど画像データごとに設定し直す必要があるものも画像処理パラメータ73bとしてDMA転送領域210に設定することが出来る。