以下に添付図面を参照して、本発明にかかる画像処理コントローラ、及び画像処理装置を適用した画像形成装置の最良な実施の形態を詳細に説明する。なお、以下に示す実施の形態は、画像処理コントローラを画像形成装置に搭載することに制限するものではなく、画像処理を行う様々な装置に搭載することができる。
(第1の実施の形態)
図1は、第1の実施の形態にかかる画像処理コントローラ及び周辺デバイスの概略を示した図である。図1を参照すると、プロッタ・スキャナを有するエンジンと接続する第1のインターフェース(101)を具備し、別のエンジン、オプションの画像処理コントローラのほか、オプションデバイスを接続する第2のインターフェース(102)を具備し、メモリ、HDDのインターフェース(103、104)をそれぞれ具備する画像処理コントローラ(100)において、第1のインターフェースと第2のインターフェースがFIFOメモリ(105)とアドレスコンバータ(106)を介して直接通信することを特徴とする画像処理コントローラが示されている。また、画像処理コントローラ100内の、インターフェース(101、102)と、アービタ110と、の間は信号線(107a、107b)で接続されている。
図1に示すように、画像処理コントローラ100は、第3のインターフェース(103)がChipSet151、CPU152及びメモリ153と通信可能としている。さらに、画像処理コントローラ100は、HDD用インターフェースモジュール104がHDD(Hard Disk Drive)154と通信可能としている。
図2は、画像処理コントローラを備える画像形成装置300のハードウェア構成を示した図である。図2を参照すると、第1のインターフェースを持つ画像処理エンジン(301)、第2のインターフェースを持つ外部コントローラ(303)及びオプションボード(304)を画像処理コントローラ100に接続する場合、画像処理コントローラ(100)が第1、第2のインターフェースの両方を具備し、両インターフェースの速度差を吸収するFIFOメモリ等を具備しているため、インターフェースを変換するスイッチやブリッジが必要ない。
画像処理エンジン301は、スキャナエンジン機能と、プロッタ出力エンジン機能と、の二つの機能を備えている。
画像処理エンジン301のスキャナエンジン機能は、CCDセンサーが読み取ったカラーRGB画像データに対して、画像処理を施し、各色8bitのCMYK画像を生成し、画像処理コントローラ100に出力する。スキャナエンジン機能が行う画像処理としては、例えば、画像データの文字領域のエッジ強調、又は非文字領域(絵柄領域)の平滑化処理などがある。
画像処理エンジン301のプロッタ出力エンジン機能は、画像処理コントローラ100から受け取った画像データに対して、2値化処理を実施し、プロッタへ出力する。
ここで、図1に示した画像処理コントローラが、かかる構成を備えるに至った経緯について、図10および図11を用いて説明する。まず、従来の画像処理コントローラに関する構成について説明する。従来は、画像処理コントローラに搭載されるエンジンIFにおいて、比較的低速なPCI等のインターフェースを利用して画像データを転送していた。図10は、PCIインターフェースを利用して画像データを転送していた画像処理コントローラと周辺デバイスを示した説明図である。図10に示すように、画像処理エンジン1202と画像処理コントローラ1201とは、PCIバスインターフェースモジュール1211を使用して接続され、画像処理コントローラ1201とメモリ1203とは、AGPバスインターフェースモジュール1212を使用して接続されている。AGP(Accelerated Graphics Port)を使用したのは、AGPを使用しているChipSet及びメモリ間が、CPUからメインメモリへのアクセスパスであり、PCIでは転送不足だったためである。そして、画像データは、PCIバス及びAGPバス等を含む通信経路1251〜1253上を辿ることになる。
そして、データ通信のスループット向上のために、PCIe等のより高速なエンジンインターフェースを備える画像処理コントローラが必要となった。
図11は、PCIeインターフェースとスイッチデバイスとを備えた画像処理コントローラと周辺デバイスを示した説明図である。図11に示す構成では、画像処理コントローラ1301と画像処理エンジン1302との間のインターフェースが、PCIからPCIeに変更されている。また、PCIeは、AGPより高速転送が可能なため、PCIeエンドポイント1311を備えることで、ChipSet1304及びメモリ1303間もPCIeに変更できる。これによりPCIとソフトウェア的に互換性のある規格に統一することが可能となった。そして、画像データは、PCIe―PCIスイッチデバイス1305の切替に応じて、通信経路1351〜1353上を辿ることになる。
このように、FAXコントロールユニットなどのPCIバスを利用するデバイスと接続するためには、PCIe―PCIスイッチデバイス1305が必要となり、生産コストが増大していた。
さらに、画像形成装置の製造メーカが、製造コストが高いが高速転送可能な画像形成装置と、製造コストが低いが低速な転送のみ可能な画像形成装置と、を製造する場合がある。この場合、図11に示した高速転送可能な画像処理コントローラの他に、PCIeを利用しない低速用の画像処理コントローラも必要となる。このような場合には、製造メーカは、機能は共通でも高速転送用の画像処理コントローラ、及び低速転送用の画像処理コントローラという2種類の画像処理コントローラを開発しなければならず、開発負担が増大していた。これによる、開発費も増加する傾向にあった。
そこで、本実施の形態にかかる画像処理コントローラは、図1に示した構成を備えることとした。次に、図1の構成を詳細に示した図3を用いて具体的に説明する。図3に示す例では、画像処理コントローラ100は、第1のインターフェース(101)に画像処理エンジン301が接続され、第2のインターフェース(102)にオプションボード304が接続された例とする。なお、オプションボード304は、どのようなデバイスでも良いが、例えばFAXコントロールユニットなどが考えられる。
図3は、第1の実施の形態にかかる画像処理コントローラ及び周辺デバイスの詳細な構成を示すブロック図である。
そして、図3に示す画像処理コントローラ100は、PCIeバスインターフェースモジュール201と、PCIバスインターフェースモジュール202と、FIFO(First Input First Out)メモリ105と、アドレスコンバータ106と、セレクタ108と、アービタ110と、PCIeエンドポイント203と、HDD用インターフェースモジュール104と、DMAC(Direct Memory Access Control)204と、ビデオ出力モジュール109と、DMAC232a〜dと、FIFOメモリ231a〜dと、を備える。
図3に示すように、画像処理コントローラ100は、第1のインターフェースとして、エンジン側の第1PCIeバスインターフェース101を備え、第2のインターフェースとして、PCIバスインターフェース102を備える。
また、画像処理コントローラ100は、第3のインターフェースとして、ChipSet側に第2PCIeバスインターフェース103を備える。そして、画像処理コントローラ100は、第2PCIeバスインターフェース103がメモリ153及びCPU152と接続可能としている。
そして、PCIeバスインターフェースモジュール201と、PCIバスインターフェースモジュール202との間は、FIFOメモリ105及びアドレスコンバータ106を介して、第1の信号線210で接続されている。
さらに、PCIeバスインターフェースモジュール201と、アービタ110との間は第2信号線107aで接続され、PCIバスインターフェースモジュール202と、アービタ110との間は第3信号線107bで接続されている。
PCIeバスインターフェースモジュール201は、第1PCIeバスインターフェース101と、特定部211と、第1指示部212と、第1送受信部213と、記憶部214と、を備え、PCIeエンドポイント203を含むツリー構造のルート・コンプレックスとして機能する。さらに、PCIeバスインターフェースモジュール201は、画像処理エンジン301、PCIバスインターフェースモジュール202、及びPCIeエンドポイント203との間でデータの送受信を行う。
第1PCIeバスインターフェース101は、PCIeバスインターフェースモジュール201による制御により、PCIeバスで接続された画像処理エンジン301との間でデータの送受信を可能とする。送受信するデータとしては、例えば画像データ、及びアドレス情報を含むコマンドなどとする。
特定部211は、第1PCIeバスインターフェース101が画像処理エンジン301等からコマンドを受信した場合に、受信したコマンド(Write or Read)に付随するアドレスを検出し、検出したアドレスに従って当該コマンドのアクセス先を特定する。
特定されるアクセス先は、書込命令の場合、メモリ153等と接続された第2PCIeバスインターフェース103、及びPCIバスインターフェースモジュール202内のPCIバスインターフェース102とする。また、読込命令の場合、上記2箇所のアクセス先の他に加えて、ビデオ出力モジュール109がある。
また、当該コマンドが画像データの書き込み命令の場合、特定部211は、画像処理エンジン301から送信される画像データの書き込み先(送信先)を特定することになる。
記憶部214は、コマンドに含まれているアドレスと、当該コマンドによるアクセス先と、を予め対応付けて記憶している。なお、当該アドレスとアクセス先の対応関係は、PCIeバスインターフェースモジュール201を構成するプログラムに予め組み込んでも良い。
これにより、PCIeバスインターフェースモジュール201が画像処理エンジン301からコマンドを受信した場合に、特定部211は、記憶部214を参照することで、当該コマンド内のアドレスから、当該コマンドのアクセス先を特定できる。
第1指示部212は、PCIeバスインターフェースモジュール201内部(第1信号線210を介して第1PCIeバスインターフェース101側)に配置され、FIFO105、PCIバスインターフェースモジュール202、ビデオ出力モジュール109、PCIeエンドポイント203(第2PCIeバスインターフェース103)及び第1送受信部213等の接続された各構成に対して、データの読み込みや書き込みなどの指示を行う。また、PCIeエンドポイント203を介して接続されたメモリ153などに対して、書き込み又は読み込みの指示を行ってもよい。
例えば、第1指示部212は、画像処理エンジン301から受信したコマンドが、PCIバスインターフェース102に対する画像データの読込命令だった場合に、PCIバスインターフェース102が受信した画像データを、FIFOメモリ105に書き込むようにPCIバスインターフェースモジュール202に対して指示した後、第1送受信部213に対して、FIFOメモリ105から、画像処理エンジン301が使用する所定のデータ量毎に画像データを読み込むよう指示する。なお、所定のデータ量は、例えば、PCIeのパケットサイズなどが考えられる。なお、所定のデータ量は、PCIeのパケットサイズに制限するものではなく、一度の転送に必要なデータ量、換言すれば通信規格で定められた一度に送信可能なデータ量であればよい。
第1送受信部213は、FIFOメモリ105と、アドレスコンバータ106と、第1信号線210とを介して接続されたPCIバスインターフェースモジュール202との間で、データの送受信を行う。
第1の信号線210は、PCIeバスインターフェースモジュール201とPCIバスインターフェースモジュール202との間を接続し、データの送受信を行う通信経路となる。
FIFO(First Input First Out)メモリ105は、第1の信号線210上に備えられ、第1の信号線210を介して接続されたPCIeバスインターフェースモジュール201及びPCIバスインターフェースモジュール202の間でデータ転送が行われる場合に、転送対象であるデータを一時的に格納する。
つまり、第1送受信部213は、特定部211により書込命令の書込先がPCIバスインターフェース102に特定された場合、当該書込命令の書込対象である画像データを、第1信号線210に送信することになる。この場合に、第1信号線210に送信された画像データは、FIFOメモリ105に一時格納された後、PCIバスインターフェースモジュール202が受信する。
このFIFOメモリ105が格納可能な記憶量は、PCIeとPCIとの速度の違い、及びPCIeバスインターフェースモジュール201及びPCIバスインターフェースモジュール202との間で送受信される画像データの量に基づいて定めるものとする。
具体的な例としては、PCIバスインターフェース102から接続されているオプションボード304は、例えばFAXデータの転送など比較的データ量が少ない画像データのみ処理を行うものとする。そして、画像処理エンジン304のスキャナエンジン機能は、画像データの読み込み処理を行い、画像処理エンジン304は読み込んだ画像データから、PCIeのパケット毎に送信する。この送信された画像データはFIFOメモリ105に蓄積される。つまり、FIFOメモリ105は、最低限度としてPCIeのパケットサイズ分の記憶容量を確保する必要がある。
そして、画像処理エンジン304が次の画像データを送信するまでの間に、PCIバスインターフェース102がFIFOメモリ105に蓄積された画像データを、オプションボード304に対して送信可能であれば、FIFOメモリ105の記憶容量はPCIeのパケットサイズ分で充分となり、速度が異なるPCIeとPCIとの間で画像データの送受信が可能となる。もし、画像データが送信されるまでの間に、オプションボード304に対して画像データを送信可能でなければ、速度差に応じてFIFOメモリ105の記憶容量を増加させる必要がある。しかしながら、FAXの場合、転送速度はそれほど求められないので、FIFOメモリ105は、最低限度、パケットサイズ分確保すれば足りる。
なお、画像処理エンジン304から送信される画像データの送信間隔は、画像処理エンジン301が備えるスキャナエンジン機能による機械的な画像データの読込間隔などが考えられる。この場合、画像処理コントローラ100は、PCIeとPCIの速度の違いを考慮せずとも、PCIeバスインターフェースモジュール201から、PCIバスインターフェースモジュール202に対して直接、画像データの転送が可能となる。
ところで、PCIバスインターフェースモジュール202では、PCIeバスインターフェースモジュール201、PCIeエンドポイント203、セレクタ108を介してビデオ出力モジュール109から転送された画像データを、PCIバスに接続されている各オプション(例えばオプションボード304)に転送する。当該転送を行うためには、データの転送先となるオプションに応じて、PCIアドレスを生成する必要がある。そこで、本実施の形態では、アドレスコンバータ106を備える。
アドレスコンバータ106は、PCIeバスインターフェースモジュール201で利用するアドレス空間と、PCIバスインターフェースモジュール202で利用するアドレス空間と、を変換する処理を行う。当該変換処理により、例えば、PCIeバスインターフェースモジュール201から転送された書込先のアドレスを、PCIバスインターフェースモジュール202が書込先として利用するアドレスに変換できる。
このアドレスコンバータ106の例としては、DMAコントローラなどが考えられる。当該DMAコントローラにより、アクセス先のオプションに応じて、PCIアドレスを生成し、生成されたPCIアドレスに従って、PCIバスインターフェースモジュール202がアクセス制御を行うことになる。なお、各オプションへのアドレスマップの配置は、レジスタ設定できるものとする。
さらに、アドレスコンバータ106は、PCIバスに接続された各オプションから転送されてくるコマンドに含まれるアドレスを検出し、検出されたアドレスから、当該コマンドによるアクセス先を特定する機能を備えている。当該機能により、後述するPCIバスインターフェースモジュール202は、オプションから転送されたコマンドに基づいてアクセス先にアクセスすることが可能となる。
PCIバスインターフェースモジュール202は、アドレスコンバータ106の他に、第2送受信部222と、PCIバスインターフェース102と、第2指示部221と、を備え、PCIバスを介して接続されたオプションボード304等の周辺デバイス、PCIeバスインターフェースモジュール201、及びPCIeエンドポイント203との間でデータの送受信を行う。
第2送受信部222は、FIFOメモリ105と、アドレスコンバータ106と、第1信号線210とを介して接続されたPCIeバスインターフェースモジュール201との間で、データの送受信を行う。
PCIバスインターフェース102は、PCIバスインターフェースモジュール202による制御で、PCIバスを介して接続されたオプションボード304等の周辺デバイスとの間でデータを送受信する。送受信するデータとしては、画像データ、及びアドレスを含むコマンドなどとする。また、PCIバスインターフェース102は、PCIeバスインターフェース101より低い通信速度で、データの送受信を行う。
第2指示部221は、PCIバスインターフェースモジュール202内部(第1信号線210を介してPCIバスインターフェース102側)に配置され、ビデオ出力モジュール109、PCIeエンドポイント203及びPCIバスを介して接続された周辺デバイス等に対して、データの読み込みや書き込みなどの指示を行う。また、PCIeエンドポイント203を介して接続されたメモリ153などに対して、書き込み又は読み込みの指示を行ってもよい。
そして、PCIeバスインターフェースモジュール201及びPCIバスインターフェースモジュール202は、第1の信号線210で接続されているために、直接データを転送することを可能としている。PCIeバスインターフェースモジュール201及びPCIバスインターフェースモジュール202の間のデータの転送方式は、どのような手法を用いても良いが、例えばDMAによりデータを転送することが考えられる。
つまり、従来の画像処理コントローラにおいては、PCIeバスインターフェースモジュールから受信した画像データを一度メモリに格納した後、当該メモリからPCIバスインターフェースモジュールに画像データを転送する必要があった。このため、PCIeバスインターフェースモジュールとメモリ間、及びメモリとPCIバスインターフェースモジュールとの間の帯域を使用することになり、他のデータの転送の妨げになっていた。
これに対して、本実施の形態にかかる画像処理コントローラ100では、PCIeバスインターフェースモジュール201から直接データをPCIバスインターフェースモジュール202に転送しているため、それぞれのモジュール(201、202)とメモリ153との間の帯域を使用することがなくなり、これら帯域を利用する他のデータの転送処理が容易になる。つまり、画像処理コントローラ100では、処理速度が向上する。
アービタ110は、バスの使用の調停を行う。
PCIeエンドポイント203は、第2PCIeバスインターフェース103を備え、PCIeバスを介して接続されたメモリ153やCPU152等の周辺デバイス、PCIeバスインターフェースモジュール201、及びPCIバスインターフェースモジュール202との間でデータの送受信を行う。
第2PCIeバスインターフェース103は、PCIeエンドポイント203による制御で、PCIeバスを介して接続されたメモリ153又はCPU152等のデバイスとの間でデータを送受信する。送受信するデータとしては、画像データ、及びアドレスを含むコマンドなどとする。
HDD用インターフェースモジュール104は、HDD154と接続するインターフェースを備え、当該インターフェースを制御することで、HDD154と接続との間でデータの送受信を行う。
DMAC204は、PCIバスインターフェースモジュール202、ビデオ出力モジュール109、及びPCIeバスインターフェースモジュール201等との間をDMA転送方式でデータを転送するコントローラとする。
DMAC232a〜dは、メモリ153上の画像データを、ビデオ出力モジュール109に転送する処理を行う。
ビデオ出力モジュール109は、DMAC232a〜dから転送された画像データを、C版、M版、Y版、K版の色ごとにFIFOメモリ231a〜dを介して、画像処理エンジン301に出力する。そして、出力された画像データは、画像処理エンジン301に搭載されるプロッタ出力エンジン機能に転送される。
FIFOメモリ231a〜dは、C版、M版、Y版、K版の色ごとにビデオ出力モジュール109から出力された画像データを一時格納する。その後、セレクタ108で選択された出力先に画像データが送信されることになる。
セレクタ108は、レジスタ設定により、ビデオ出力モジュール109から出力される画像データの出力先として、PCIeバスインターフェースモジュール201及びPCIバスインターフェースモジュール202のいずれかの選択を受け付ける。そして、セレクタ108は、受け付けた選択に従って、PCIeバスインターフェースモジュール201及びPCIバスインターフェースモジュール202のいずれかに画像データを出力する。
このように、画像処理コントローラ100では、セレクタ108を備えたことで、PCI及びPCIeなどの速度が異なる第1及び第2のインターフェースのいずれかを画像データの出力先として選択できる。これにより、第1及び第2のインターフェースのどちら側に画像処理エンジンが備えられていたとしても、画像処理コントローラ100は、画像処理エンジンに対して画像データを適切に出力することができる。
つまり、本実施の形態にかかる画像処理コントローラ100は、第1のインターフェース(例えばPCIe)と接続可能な画像処理エンジン用の画像処理コントローラ、及び第2のインターフェース(例えばPCI)と接続可能な画像処理エンジン用の画像処理コントローラ、の両方の機能を有していることになる。このように、本実施の形態にかかる画像処理コントローラ100は、速度が異なる2種類の画像処理コントローラの役割を担うことができる。したがって、第1のインターフェース及び第2のインターフェースというインターフェース毎の画像処理コントローラが不要となるため、開発負担の軽減及び開発コストの削減を行うことが可能となる。
本実施の形態にかかる画像処理コントローラ100は、第1のインターフェース(101)と第2のインターフェース(102)との間で速度差を吸収するFIFOメモリ105を接続したことで、両インターフェース間でデータを直接送受信することが可能となる。
また、画像処理コントローラ100のPCIeバスインターフェースモジュール201においては、画像処理エンジン301から転送されるコマンド内のアドレスに基づいて、アクセス先を第2のインターフェース(102)か、メモリ153が選択することが可能となる。したがって、画像処理コントローラ100を利用することで、PCIe及びPCIなどの異なるインターフェースを接続するためのスイッチデバイスが不要となる。これにより、当該画像処理コントローラ100を利用した画像形成装置の生産が容易になると共に、生産コストを削減することができる。
さらに、画像処理コントローラ100では、第1のインターフェース(101)及び第2のインターフェース(102)との間のデータ転送を、メモリ153を介さずに行うことができるため、各インターフェース(101、102)とメモリ153との間の帯域を確保することが容易となり、当該帯域を利用した処理の高速化を図ることができる。
本実施の形態にかかる画像形成装置300では、画像処理エンジン301からのスキャナデータ、オプションコントローラからのプロッタデータの通信ともにFIFOメモリ105とアドレスコンバータ106を介して行う。画像処理エンジン301からのスキャナデータはFIFOメモリ105とアドレスコンバータ106の状況によってメモリ調停機(アービタ110)を介してメモリ153に一旦格納した後オプションコントローラに転送する方法もとることができる。また、オプションボード304はメモリ調停器(アービタ110)を介してメモリ153との通信を行う。
そして、上述した画像処理コントローラ100において、セレクタ108による出力先を第1PCIeバスインターフェース101に設定した場合について説明する。図4は、セレクタ108による出力先を第1PCIeバスインターフェース101に設定した場合の画像処理コントローラ100及び周辺デバイスの概念を示した図である。
図4に示した概念においては、画像処理エンジン301からのスキャナデータはメモリ調停器110を介してメモリ153へ格納する。画像処理コントローラ100にて形成するプロッタデータはセレクタ108にてPCI−Express側(第1PCIeバスインターフェース101側)に出力する。また、オプションボード304はメモリ調停器110を介してメモリ153と通信を行う。
次に、図4に示すような構成を備えている場合のデータの通信経路について説明する。図5は、画像処理エンジン301のスキャナエンジン機能からメモリ153、メモリ153からHDD154、及びメモリ153から画像処理エンジン301のプロッタ出力エンジン機能まで画像データの転送する転送経路を示した図である。
図5の転送経路(1)は、画像処理エンジン301のスキャナエンジン機能から、メモリ153まで画像データを転送する経路とする。画像処理エンジン301は、所定のアドレスに対して画像データの書き込み命令を出す。そして、第1PCIeバスインターフェース101が、当該書き込み命令を受信した場合、特定部211が、当該書き込み命令に含まれるアドレスに基づいて、書込先を特定する。図5の通信経理(1)に示す例では、書込先がメモリ153に特定されたものとする。そして、PCIeバスインターフェースモジュール201の第1指示部212は、PCIeエンドポイント203(第3のインターフェース)を介して、メモリ153への書き込み命令を出力する。そして、メモリ153には、当該書き込み命令に従って、画像データが格納される。
図5の転送経路(2)は、メモリ153とHDD154との間で送受信される画像データの転送経路とする。画像処理コントローラ100は、HDD用インターフェースモジュール104が備えるDMAC204を用いて、メモリ153上の画像データを、HDD154に格納する。また、画像処理コントローラ100は、HDD用インターフェースモジュール104が備えるDMAC204を用いて、HDD154上の画像データを、メモリ153に展開する。
なお、図示していないが、画像処理コントローラ100が備える画像処理を行う機能は、当該機能ごとのDMAを用いてメモリ153上の画像データに対して、回転、圧縮、伸長、編集などの処理を行うことができる。
図5の転送経路(3)は、メモリ153から、画像処理エンジン301のプロッタ出力エンジン機能まで画像データを転送する経路とする。画像処理エンジン301は、所定のアドレスに対して画像データの読み込み命令を出す。そして、第1PCIeバスインターフェース101が、当該読み込み命令を受信した場合、特定部211が、当該読み込み命令に含まれるアドレスに基づいて、読込先を特定する。図5に示す例では、読込先がビデオ出力モジュール109に特定されたものとする。そして、PCIeバスインターフェースモジュール201の第1指示部212は、ビデオ出力モジュール109に対して、読み込み命令を出力する。そして、ビデオ出力モジュール109は、当該読み込み命令に応答して、PCIeエンドポイント203を介して、メモリ153から各色の画像データを受信し、FIFOメモリ231a〜dを介してPCIeバスインターフェースモジュール201に転送する。そして、PCIeバスインターフェースモジュール201は、受信した各色の画像データを、画像処理エンジン301のプロッタ出力エンジン機能に出力する。
図6は、画像処理エンジン301及びオプションボード304の間、オプションボード304及びメモリ153の間で、画像データの転送する転送経路を示した図である。
図6の転送経路(4)は、画像処理エンジン301のスキャナエンジン機能から入力される画像データを、直接オプションボード304(FAXコントロールユニット)に転送する経路とする。画像処理エンジン301は、マスタ(主)、スレーブ(マスタに対する従属)関係におけるマスタとして動作する。
具体的には、画像処理エンジン301は、画像処理コントローラ100に対して、所定のアドレスに対する画像データの書き込み命令を出力する。PCIeバスインターフェースモジュール201の第1PCIeバスインターフェース101が、当該書き込み命令を受け取った場合、特定部211が書き込み命令に含まれるアドレスに基づいて、書込先をオプションボード304(FAXコントロールユニット)と特定する。そして、第1送受信部213は、第1信号線210を介して、PCIバスインターフェースモジュール202に対して、書き込み命令を出力する。
そして、PCIバスインターフェースモジュール202が、この書き込み命令を受け付けた場合、アドレスコンバータ106が、書き込み命令に含まれているアドレスの変換処理を行う。そして、第2指示部221は、変換されたアドレスに従って、PCIバスインターフェース102からオプションボード304に対して、書き込み命令を出力する。これにより、画像処理エンジン301からオプションボード304に対して画像データの転送及び書き込みが行われることになる。
当該転送処理では、上述したようにFIFOメモリ105を介することで、PCIeとPCIの速度差を吸収することができる。なお、上述したように画像処理エンジン301がマスタとして動作した場合に、オプションボード(FAXコントロールユニット)304はスレーブとして動作する。
図6の転送経路(5)は、オプションボード(FAXコントロールユニット)304が入力処理した画像データを、画像処理エンジン301のプロッタ出力エンジン機能に転送する経路とする。転送経路(5)による転送処理においても、画像処理エンジン301がマスタとして動作する。
具体的には、画像処理エンジン301は、画像処理コントローラ100に対して、所定のアドレスに対する画像データの読み込み命令を出力する。PCIeバスインターフェースモジュール201の第1PCIeバスインターフェース101が、当該読み込み命令を受け取った場合、特定部211が読み込み命令に含まれるアドレスに基づいて、読込先をオプションボード304(FAXコントロールユニット)と特定する。そして、第1送受信部213は、第1信号線210を介して、PCIバスインターフェースモジュール202に対して、読み込み命令を出力する。
そして、PCIバスインターフェースモジュール202が、読み込み命令を受け付けた場合、アドレスコンバータ106が、読み込み命令に含まれているアドレスの変換処理を行う。そして、第2指示部221は、変換されたアドレスに従って、PCIバスインターフェース102からオプションボード304に対して、読み込み命令を出力する。これにより、オプションボード304から画像処理エンジン301に対して画像データの転送が行われることになる。転送経路(5)で示した処理においても、画像処理エンジン301がマスタとして動作し、オプションボード(FAXコントロールユニット)304がスレーブとして動作することになる。
転送経路(5)で示した処理では、オプションボード(FAXコントローラユニット)304から画像処理エンジン301へのデータ転送は、ChipSet151及びメモリ153を介さずに行うことが可能となっている。このような処理の実現は、PCIeバスインターフェースモジュール201と、PCIバスインターフェースモジュール202との間にFIFOメモリ105を設けることで可能としている。
つまり、複写時には、画像処理エンジン301は、マスタとしてChipSet151側のメモリ153に対して画像データの読み込み命令を出力することで、処理が行われる。
通信経路(5)では、画像処理エンジン301はマスタとして、FAXコントロールユニット304に対して動作を要求する。そして、画像処理エンジン301は、コピー時にカラー画像データ(多値の画像データ)の処理が可能であるのに対し、FAXコントロールユニット304からはモノクロ画像データ(2値の画像データ)が転送されてくる。このため、画像処理エンジン301の転送速度は、FAXコントロールユニット304の転送速度に対応するために十分な転送速度を備えている。
そして、PCIバスインターフェースモジュール202が、読み込み命令に従って、FAXコントロールユニット304から転送されたモノクロ画像データを一時FIFOメモリ105に格納する。その後、画像処理エンジン301が、PCIeバスインターフェースモジュール201に読み込み命令を出力し、PCIeバスインターフェースモジュール201が、当該読み込み命令に従って、FIFOメモリ105に格納されたモノクロ画像データを、画像処理エンジン301に転送する処理を行う。
当該処理により、画像処理エンジン301のプロッタ出力エンジン機能から印刷するために必要なデータ量以上の画像データを一時的にFIFOメモリ105に蓄積し、PCIeバスインターフェースモジュール201が、FIFOメモリ105から、当該データ量の画像データを取得することができる。これにより、PCIeバスインターフェースモジュール201は、PCIバスインターフェースモジュール202の処理の遅延等に影響を受けることなく、確実に画像データを画像処理エンジン301に受け渡すことができる。なお、印刷するために必要なデータ量として、FIFOメモリ105は、上述したようにPCIe1パケット以上の記憶容量を有しても良く、例えば印刷時における主走査方向一ライン分の画像データを記憶しても良い。
さらに、PCIeバスインターフェースモジュール201は、読み込み先がFIFOメモリ105の場合、読み込み先がFAXコントロールユニット304の場合と比べて転送経路が短くなるので、読み込み時間を短縮することができる。
図6の転送経路(6)は、オプションボード(FAXコントロールユニット)304が入力処理した画像データを、メモリ153に転送する経路とする。転送経路(6)による転送処理においては、FAXコントロールユニット304がマスタとして動作する。
FAXコントロールユニット304は、所定のメモリアドレスに対する画像データの書き込み命令を出力する。PCIバスインターフェースモジュール202のアドレスコンバータ106は、書き込み命令に含まれるメモリアドレスからアクセス先を特定する。そして、特定されたアクセス先は、メモリ153とする。この場合、第2指示部221は、第2送受信部222を介して、アクセス先であるメモリ153に対して、書き込み命令を出力する。当該書き込み命令により、入力された画像データが、メモリ153に書き込まれることになる。
さらに、FAXコントロールユニット304が、マスタとして、所定のメモリアドレスに対する画像データの読み込み命令を出力した場合、アドレスコンバータ106が、読み込み命令に含まれるメモリアドレスからアクセス先を特定する。そして、特定されたアクセス先がメモリ153の場合、第2指示部221は、第2送受信部222を介して、アクセス先であるメモリ153に対して、読み込み命令を出力する。当該読み込み命令により、メモリ153から画像データが読み込まれることになる。
上述したように、図6の転送経路(6)においては、FAXコントロールユニット304と、メモリ153との間の双方向でデータの転送が可能となる。
(第2の実施の形態)
第1の実施の形態にかかる画像形成装置300では、画像処理コントローラ100のPCIeバスを介して画像処理エンジン301が接続された例について説明した。しかしながら、画像処理コントローラ100は、セレクタ108の出力先を変更することで、画像処理エンジンをPCIバス側に接続することができる。そこで、第2の実施の形態にかかる画像処理装置では、画像処理コントローラ100のPCIバス側に画像処理エンジンを接続した例について説明する。以下の説明では、上述した第1の実施の形態と同一の構成要素には同一の符号を付してその説明を省略している。
図7は、第2の実施の形態にかかる画像形成装置700の構成を示すブロック図である。図7に示すように、本実施の形態にかかる画像形成装置700では、画像処理コントローラ100のPCIバス側に画像処理エンジン701及びオプションコントローラ702が配置されている。
図8は、第2の実施の形態にかかる画像処理コントローラ100の機能的な概念を示した説明図である。図8に示すように、セレクタ108で出力先がPCIバスインターフェース102に設定され、第1PCIeバスインターフェース101が利用されないため、低速で画像処理を行うための画像処理コントローラ100として機能していることが確認できる。
図8に示す概念では、画像処理エンジン701からのスキャナデータはメモリ調停器110を介してメモリ153へ格納する。画像処理コントローラ100にて形成するプロッタデータはセレクタ108にてPCI側に出力する。また、オプションボード304もスキャナデータと同様にメモリ調停器110を介してメモリ153と通信を行う。
さらに、図8に示す概念では、画像処理エンジン701からのスキャナデータ、及びオプションコントローラ702からのプロッタデータの通信は、PCIバスを介して行われる。オプションコントローラ702は、メモリ調停器110、メモリ153を介してHDD154にアクセスする。また、オプションボード304はメモリ調停器110を介してメモリ153と通信を行う。
図9は、PCI側に画像処理エンジン701を接続した場合に画像処理コントローラ100を用いて転送される画像データの転送経路を示した図である。
図9の転送経路(7)は、画像処理エンジン701のスキャナエンジン機能から入力される画像データを、メモリ153に転送する経路とする。この場合、画像処理エンジン701は、マスタとして動作し、所定のアドレスに対して画像データの書き込み命令を出力する。そして、PCIバスインターフェースモジュール202のアドレスコンバータ106は、書き込み命令に含まれるメモリアドレスからアクセス先を特定する。そして、特定されたアクセス先は、メモリ153とする。この場合、第2指示部221は、第2送受信部222を介して、アクセス先であるメモリ153に対して、書き込み命令を出力する。当該書き込み命令により、入力された画像データが、メモリ153に書き込まれることになる。
図6の転送経路(8)は、メモリ153とHDD154との間で送受信される画像データの転送経路であり、図5の転送経路(2)と同様の処理が行われることとして、説明を省略する。
図6の転送経路(9)は、メモリ153に格納された画像データを、画像処理エンジン701のプロッタ出力エンジン機能まで転送する経路とする。この場合、画像処理エンジン701は、マスタとして動作し、所定のアドレスに対して画像データの読み込み命令を出力する。そして、PCIバスインターフェースモジュール202のアドレスコンバータ106は、読み込み命令に含まれるメモリアドレスからアクセス先を特定する。そして、特定されたアクセス先は、ビデオ出力モジュール109とする。そして、第2指示部221は、ビデオ出力モジュール109に対して、読み込み命令を出力する。そして、ビデオ出力モジュール109は、当該読み込み命令に応答して、PCIeエンドポイント203を介して、メモリ153から各色の画像データを受信する。そして、ビデオ出力モジュール109は、受信した画像データをセレクタ108に出力する。本実施の形態ではセレクタ108の出力先にPCIバスインターフェースモジュール202が選択されているので、画像データは、PCIバスインターフェースモジュール202に転送されることになる。そして、PCIバスインターフェースモジュール202は、受信した各色の画像データを、画像処理エンジン701のプロッタ出力エンジン機能に出力する。
上述した実施の形態にかかる画像処理コントローラ100を用いることにより、PCI−Expressインターフェースの画像処理エンジンと、従来のPCIインターフェースのオプションコントローラ、オプションボードを搭載した画像処理装置を、スイッチやPCI−Express−PCIブリッジを用いずに実現可能であるため、コスト削減につながる。
また、画像処理コントローラ100では、PCI−ExpressインターフェースのほかにPCIインターフェースを備えるため、従来のPCIボードを有効利用できるため、コスト削減につながる。
本実施の形態にかかる画像処理コントローラ100では、PCIバスインターフェース102及び第1PCIeバスインターフェース101を備え、ビデオ出力モジュール109からの画像データの出力先をセレクタ108で選択可能としたので、当該セレクタ108による出力先の選択で2種類の画像処理コントローラの役割を果たすことが可能となる。
そして、画像処理コントローラ100は、PCI−Expressインターフェースの画像処理エンジンを用いた画像処理装置とPCIインターフェースのエンジンを用いた画像処理装置の両方で、用いることができる。つまり、従来通りの構成であれば、機能は共通でも高速転送用、低速転送用の2種類のエンジンインターフェース毎に画像処理コントローラを開発する必要があったため、開発費等のコストに無駄が生じていた。これに対して、本実施の形態にかかる画像処理コントローラ100を用いることで、それぞれのインターフェース毎の画像処理コントローラを作る必要がなく、コスト削減につながる。
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、画像処理コントローラの機能を実現するためのプログラムを装置に読込ませて実行することにより装置の機能を実現する処理を行ってもよい。
さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体である、フレキシブルディスク(FD)、CD−ROMまたはDVDなどの光磁気ディスクなどを介して提供しても良い。または、上記のプログラムを、伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。さらに、本実施形態の画像処理コントローラ100で実行される画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
本実施の形態の画像処理コントローラ100で実行される画像処理プログラムは、上述した処理を行う各構成を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから画像処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各構成が主記憶装置上に生成されるようになっている。