(57)【要約】【課題】バス幅のバウンダリに合った連続アドレスのコマンドがセットされたパケットが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理することである。【解決手段】画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドが格納されたパケットを解析して、該アドレス部に連続アドレスが書かれているか否かをコマンド処理部が判断して、該アドレス部に連続アドレスが書かれていると判断した場合、画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する構成を特徴とする。【選択図】　　　図１１
2004078376.tif 000002
【特許請求の範囲】
【請求項１】
画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、
前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断手段と、
前記判断手段により該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記コマンド処理部は、複数のバスに接続されることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記判断手段は、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする請求項１記載の画像処理装置。
【請求項７】
画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置のデータ処理方法であって、
前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断ステップと、
前記判断ステップにより該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送ステップと、
を有することを特徴とする画像処理装置のデータ処理方法。
【請求項８】
前記コマンド処理部は、複数のバスに接続されることを特徴とする請求項７記載の画像処理装置のデータ処理方法。
【請求項９】
前記判断ステップは、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする請求項７記載の画像処理装置のデータ処理方法。
【請求項１０】
前記転送ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする請求項７記載の画像処理装置のデータ処理方法。
【請求項１１】
前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする請求項７記載の画像処理装置のデータ処理方法。
【請求項１２】
前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする請求項７記載の画像処理装置のデータ処理方法。
【請求項１３】
請求項７〜１２のいずれかに記載のデータ処理方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１４】
請求項７〜１２のいずれかに記載のデータ処理方法を実現することを特徴とするプログラム。
【請求項１５】
前記コマンド処理部は、ＣＰＵを内蔵することを特徴とする請求項１記載の画像処理装置。
【請求項１６】
前記コマンド処理部は、ＣＰＵを内蔵しないことを特徴とする請求項１記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャナ，プリンタ，複写機，ネットワーク機能を持つ複合型画像処理装置、特にバースト転送可能なバスを持つ画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムに関するものである。
【０００２】
【従来の技術】
従来、タイルと名づけた同じ大きさの桝目で大きな画像データを分割し、画像処理をこのタイル単位に行う画像処理装置が提案されている。
【０００３】
この従来例では、このタイルに含まれる画像データにデータ種類、データ処理先、データ処理内容、データサイズ、データの位置、といったデータの属性情報を付加したものをパケットと呼び、パケット単位に伝送を行う。
【０００４】
タイル画像（パケット）フォーマット
従来例によるＳｙｓｔｅｍ　Ｃｏｎｔｒｏｌｌｅｒ　Ｕｎｉｔ内では、画像データ、ＣＰＵによるコマンド、各ブロックより発行される割り込み情報を、ヘッダ部４００１とデータ部４００２とからなるパケット化された形式で転送する。
【０００５】
従来例では、データパケット、図１５に示すコマンドパケットの２種の異なる種類のパケットが使用される。
【０００６】
〔Ｃｏｍｍａｎｄ　Ｐａｃｋｅｔ　Ｆｏｒｍａｔ〕
本Ｐａｃｋｅｔ　Ｆｏｒｍａｔはレジスタ設定バスへのアクセスを行うためのものである。本パケットを用いることにより、図示しないＣＰＵより画像メモリへのアクセスも可能である。
【０００７】
画像メモリは、画像処理回路ブロックから、大量のデータを高速に読み書きするために、バーストアクセスが許されている。ＣｈｉｐＩＤ４００４にはコマンドパケットの送信先となる画像処理部を表すＩＤが格納される。
【０００８】
ＰａｇｅＩＤ４００７、ＪｏｂＩＤ４００８はソフトウエアで管理するためのＰａｇｅＩＤとＪｏｂＩＤを格納する。
【０００９】
ＰａｃｋｅｔＩＤ４００９は１次元で表される。Ｄａｔａ　ＰａｃｋｅｔのＸ−ｃｏｏｒｄｉｎａｔｅのみを使用する。
【００１０】
パケットバイトレングス４０１０は１２８Ｂｙｔｅ固定である。データ部４００２には、アドレス４０１１，４０１３，４０１５，４０１７，４０１９，４０２１，４０２３，０２５，４０２７，４０２９，４０３１，４０３３とデータ４０１２，４０１４，４０１６，４０１８，４０２０，４０２２，４０２４，４０２６，４０２８，４０３０，４０３２，４０３４を持ち、アドレス（例えばアドレス４０１１）とデータ（例えばデータ４０１２）の組を１つのコマンドとして、最大１２個のコマンドを格納することが可能である。
【００１１】
アドレスは、１アドレス１バイトのバイトアドレッシングであり、データバス幅は、８ｂｉｔである。ライトかリードかのコマンドのタイプはＣｍｄＴｙｐｅ４００５で示され、コマンドの数はＣｍｄｎｕｍ４００６で示される。
【００１２】
【発明が解決しようとする課題】
しかしながら、従来の画像処理装置は、コマンド処理部がバーストを行うための回路を持たず、シングル転送でバスにアクセスしていたためバスアクセスに時間がかかるという欠点があった。
【００１３】
例えばバスに４ビートバースト機能があり、コマンド中に４つの連続アドレスへのコマンドが書かれていても、４つのコマンドを４回シングル転送していた。
【００１４】
図１５は、従来の画像処理装置におけるコマンドパケット例を説明する図であり、具体的な値を入れた連続アドレスを含んだコマンドパケットの例である。
【００１５】
図１５において、ＰａｃｋｅｔＴｙｐｅ４００３に設定された様にコマンドパケットであり、Ｃｏｍｍａｎｄ　Ｔｙｐｅに設定された様に書き込みコマンドであり、アドレス４０１１、４０１３、４０１５、４０１７は、連続アドレスであり、ＣｍｄＮｕｍ４００６にあるとおり、５個のコマンドを含んだパケットである。
【００１６】
図１６は、従来の画像処理装置におけるパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向であり、横に長いほうが処理に時間がかかる。
【００１７】
図１６において、１０１−１はバスのデータ転送開始をバスマスタとバススレーブとで確認しあうための第１のネゴシエーション期間であり、１０１−２は第１のデータ転送期間であり、１０１−３は第２のネゴシエーション期間であり、データ転送期間と次のデータのためのネゴシエーション期間の間には、何もしない時間（ギャップ）を入れる。１０１−４は第２のデータ転送期間であり、１０１−５は第３のネゴシエーション期間であり、１０１−６は第３のデータ転送期間であり、１０１−７は第４のネゴシエーション期間であり、１０１−８は第４のデータ転送期間であり、１０１−９は第５のネゴシエーション期間であり、１０１−１０は第５のデータ転送期間である。
【００１８】
図１７は、従来の画像処理装置におけるコマンド処理部のシングルバスアクセスを行うための回路の動作を説明するフローチャートである。なお、（１００−１）〜（１００−７）は各ステップを示す。
【００１９】
まず、ステップ１００−１で処理が開始され、ステップ（１００−２）で、着目コマンドポインタｎに初期値１を代入する処理を行い、ステップ（１００−３）で、着目コマンドポインタｎとパケット中のコマンド数ＣｍｄＮｕｍを比較し、ｎ＞ＣｍｄＮｕｍ、つまり、コマンド処理が全て終了した場合は、判定がＮの矢印に進み、そうでない場合はＹの矢印に進む条件分岐する。
【００２０】
そして、ｎ番目のコマンドを実行するシングルバスアクセスを行うため、ステップ（１００−４）でｎ番目のコマンドのネゴシエーション処理を行い、ステップ（１００−５）で、ｎ番目のコマンドのデータ転送処理を行う。次に、ステップ（１００−６）で、着目コマンドポインタｎを「１」増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理をするため、ステップ（１００−３）へ戻る。
【００２１】
後で詳しく説明するが、シングルアクセスでは、図１６に示したように、毎回ネゴシエーションフェーズを行うため、無駄なネゴシエーション期間とギャップＧが入るため、それだけバスアクセスに時間がかかり、コマンド処理が低速になってしまう。
【００２２】
以上、説明したように、従来の画像処理装置におけるパケット処理では、コマンドを処理する際、常にシングルアクセスをするため、バスアクセスに時間がかかってしまい、タイル単位の画像データ処理を効率よく行えないという問題点があった。
【００２３】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、パケットを解析して、タイル単位の画像データを処理するためのパケット中のコマンドを処理する際、連続アドレスが格納されている場合には、バスに対してバーストアクセスすることにより、バスアクセス時間を短縮して高速にコマンド処理を行いタイル画像データに対するパケット処理効率を向上させることができる画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムを提供することを目的とする。
【００２４】
【課題を解決するための手段】
本発明に係る第１の発明は、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断手段と、前記判断手段により該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送制御手段とを有することを特徴とする。
【００２５】
本発明に係る第２の発明は、前記コマンド処理部は、複数のバスに接続されることを特徴とする。
【００２６】
本発明に係る第３の発明は、前記判断手段は、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする。
【００２７】
本発明に係る第４の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする。
【００２８】
本発明に係る第５の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする。
【００２９】
本発明に係る第６の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする。
【００３０】
本発明に係る第７の発明は、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置のデータ処理方法であって、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断ステップ（図４に示すステップ（１−３）〜（１−７））と、前記判断ステップにより該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送ステップ（図４のステップ（１−８）〜（１−１３））とを有することを特徴とする。
【００３１】
本発明に係る第８の発明は、前記コマンド処理部は、複数のバスに接続されることを特徴とする。
【００３２】
本発明に係る第９の発明は、前記判断ステップは、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする。
【００３３】
本発明に係る第１０の発明は、前記転送ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする。
【００３４】
本発明に係る第１１の発明は、前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする。
【００３５】
本発明に係る第１２の発明は、前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする。
【００３６】
本発明に係る第１３の発明は、第７〜第１２の発明のいずれかに記載のデータ処理方法を実現するプログラムを記憶したコンピュータが読み取り可能な記憶媒体であることを特徴とする。
【００３７】
本発明に係る第１４の発明は、第７〜第１２の発明のいずれかに記載のデータ処理方法を実現するプログラムであることを特徴とする。
【００３８】
本発明に係る第１５の発明は、前記コマンド処理部は、ＣＰＵを内蔵することを特徴とする。
【００３９】
本発明に係る第１６の発明は、前記コマンド処理部は、ＣＰＵを内蔵しないことを特徴とする。
【００４０】
【発明の実施の形態】
〔第１実施形態〕
図１，図２は、本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【００４１】
図１，図２において、２０００はＣｏｎｔｒｏｌｌｅｒ　Ｕｎｉｔで、画像入力デバイスであるＳｃａｎｎｅｒ２０７０や画像出力デバイスであるＰｒｉｎｔｅｒ２０９５と接続し、一方ではＬＡＮ２０１１や公衆回線（ＷＡＮ）２０５１に接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う為のコントローラである。
【００４２】
ＣＰＵ２００１はシステム全体を制御するプロセッサである。本実施形態では２つのＣＰＵを用いた例を示す。これら二つのＣＰＵは、共通のＣＰＵバス２１２６に接続され、さらに、システムバスブリッジ２００７に接続される。
【００４３】
システムバスブリッジ２００７は、バススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、ＩＯバス２１２７、サブバススイッチ２１２８、ＩＯバス２１２９、画像リングインタフェース２１４７、画像リングインタフェース２１４８が接続される。
【００４４】
サブバススイッチ２１２８は、第二のバススイッチであり、画像ＤＭＡ２１３０、画像ＤＭＡ２１３２、フォント伸長部３１３４、ソート回路２１３５、ビットマップトレース部２１３６が接続され、これらのＤＭＡから出力されるメモリアクセス要求を調停し、システムバスブリッジ２００７への接続を行う。
【００４５】
ＲＡＭ２００２は、ＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＡＭコントローラ２１２４により制御される、本実施形態では、ダイレクトＲＤＲＡＭを採用する例を示す。
【００４６】
ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されており、ＲＯＭコントローラ２１２５により制御される。
【００４７】
画像ＤＭＡ２１３０は、画像圧縮部２１３１に接続し、レジスタアクセスリング２１３７を介して設定された情報に基づき、画像圧縮部２１３１を制御し、ＲＡＭ２００２上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う、本実施形態では、ＪＰＥＧを圧縮アルゴリズムに採用した例を示す。
【００４８】
画像ＤＭＡ（２）２１３２は、画像伸長部２１３３に接続し、レジスタアクセスリング２１３７を介して設定された情報に基づき、画像伸長部２１３３を制御し、ＲＡＭ２００２上にある圧縮データの読み出し、伸長、伸長後データの書き戻しを行う、本実施形態では、ＪＰＥＧを伸長アルゴリズムに採用した例を示す。
【００４９】
フォント伸長部２１３４は、ＬＡＮインタフェース２０１０等を介し外部より転送されるＰＤＬデータに含まれるフォントコードに基づき、ＲＯＭ２００３、もしくは、ＲＡＭ２００２内に格納された、圧縮フォントデータの伸長を行う。本実施形態では、ＦＢＥアルゴリズムを採用した例を示した。
【００５０】
ソート回路２１３５は、ＰＤＬデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。ビットマップトレース部２１３６は、ビットマップデータより、エッジ情報を抽出する。
【００５１】
ＩＯバス（１）２１２７は、内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ、ＵＳＢインタフェース２１３８、汎用のシリアルポート２１３９、インタラプトコントローラ２１４０、ＧＰＩＯインタフェース２１４１が接続される。ＩＯバス１には、バスアービタ（図示せず）が含まれる。
【００５２】
操作部Ｉ／Ｆ２００６は操作部（ＵＩ２０１２とインタフェース部で、操作部２０１２に表示する画像データを操作部２０１２に対して出力する。また、操作部２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。
【００５３】
ＩＯバス２１２９は内部ＩＯバスの一種であり、汎用バスインタフェース２１４２と、ＬＡＮコントローラ２０１０が接続される。ＩＯバス２１２９にはバスアービタ（図示せず）が含まれる。
【００５４】
汎用バスインタフェース２１４２は、２つの同一のバスインタフェースから成り、標準ＩＯバスをサポートするバスブリッジである。本実施形態では、ＰＣＩバス２１４３を採用した例を示した。
【００５５】
２００４はハードディスクドライブ（ＨＤＤ）で、システムソフトウエア、画像データを格納する。ディスクコントローラ２１４４を介して一方のＰＣＩバス２１４３に接続される。
【００５６】
ＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介しＬＡＮ２０１１に接続し、情報の入出力を行う。
【００５７】
Ｍｏｄｅｍ２０５０は公衆回線２０５１に接続し、情報の入出力を行う。画像リングインタフェース２１４７及び画像リングインタフェース２１４８は、システムバスブリッジ２００７と画像データを高速で転送する画像リング２００８を接続し、タイル化後に圧縮されたデータをＲＡＭ２００２と画像リング処理部２１４９間で転送するＤＭＡコントローラとして機能する。
【００５８】
画像リング２００８は、一対の単方向接続経路の組み合わせにより構成される（画像リング１及び画像リング２）。画像リング２００８は、タイル画像処理部２１４９内で、画像リングインタフェース２１０１及び画像リングインタフェース２１０２を介し、タイル伸長部２１０３、コマンド処理部２１０４、ステータス処理部２１０５、タイル圧縮部２１０６に接続される。本実施形態では、タイル伸長部２１０３を２組、タイル圧縮部を３組実装する例を示した。
【００５９】
タイル伸長部２１０３は、画像リングインタフェースへの接続に加え、タイルバス２１０７に接続され、画像リングより入力された圧縮後の画像データを伸長し、タイルバス２１０７へ転送するバスブリッジである。本実施形態では、多値データにはＪＰＥＧ、２値データにはパックビッツを伸長アルゴリズムとして採用した例を示す。
【００６０】
タイル圧縮部２１０６は、画像リングインタフェース２１０２への接続に加え、タイルバス２１０７に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング２００８へ転送するバスブリッジである。本実施形態では、多値データにはＪＰＥＧ、２値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【００６１】
コマンド処理部２１０４は、画像リングインタフェース２１０２への接続に加え、レジスタ設定バス２１０９に接続され、画像リングを介して入力したＣＰＵ２００１より発行されたレジスタ設定要求を、レジスタ設定バス２１０９に接続される該当ブロックへ書き込む。
【００６２】
また、ＣＰＵ２００１より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス２１０９を介して該当レジスタより情報を読み出し。画像リングインタフェース２１０２に転送する。コマンド処理部２１０４は、サブＣＰＵを内蔵し、画像メモリ及び画像メモリ２１２３に格納されたプログラムに従って動作する。
【００６３】
ステータス処理部２１０５は各画像処理部の情報を監視し、ＣＰＵ２００１に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインタフェース２１０２に出力する。
【００６４】
タイルバス２１０７には上記ブロックに加え、以下の機能ブロック、すなわちレンダリング部インタフェース２１１０、画像入力インタフェース２１１２、画像出力インタフェース２１１３、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、解像度変換部２１１６が接続される。
【００６５】
レンダリング部インタフェース２１１０は、後述するレンダリング部により生成されたビットマップイメージを入力するインタフェースである。レンダリング部とレンダリング部インタフェースは、一般的なビデオ信号２１１１にて接続される。レンダリング部インタフェースは、タイルバス２１０７に加え、メモリバス２１０８、レジスタ設定バス２１０９への接続を有し、入力されたラスタ画像をレジスタ設定バス２１０９を介して設定された、所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス２１０７に対し出力を行う。
【００６６】
画像入力インタフェース２１１２は、後述するスキャナ用画像処理部２１１４により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バス２１０９を介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス２１０７に対し出力を行う。
【００６７】
画像出力インタフェース２１１３は、タイルバス２１０７からのタイル画像データを入力とし、ラスタ画像への構造変換、及びクロックレートの変更を行い、ラスタ画像をプリンタ用画像処理部２１１５へ出力する。
【００６８】
画像回転部２０３０は画像データの回転を行う。解像度変換部２１１６は画像の解像度の変更を行う。色空間変換部２１１７はカラー及びグレースケール画像の色空間の変換を行う。２値化部２１１８は、多値（カラー、グレースケール）画像を２値化する。多値化部２１１９は２値画像を多値データへ変換する。
【００６９】
外部バスインタフェース部２１２０は、画像リングインタフェース２１０１，２１０２，２１４８コマンド処理部２１０４、レジスタ設定バス２１０９を介し、ＣＰＵ２００１により発行された、書き込み、読み出し要求を外部バス２１２１に変換出力するバスブリッジである。外部バス２１２１は本実施形態では、プリンタ用画像処理部２１１５、スキャナ用画像処理部２１１４に接続されている。
【００７０】
メモリ制御部２１２２は、メモリバス２１０８に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ２１２３に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリにＳＤＲＡＭを用いた例を示した。
【００７１】
スキャナ用画像処理部２１１４では、画像入力デバイスであるスキャナ２０７０、によりスキャンされた画像データを補正画像処理する。
【００７２】
プリンタ用画像処理部２１１５では、プリンタ出力のための補正画像処理を行い、結果をＰｒｉｎｔｅｒ２０９５へ出力する。レンダリング部２０６０はＰＤＬコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００７３】
図３は、本発明に係る画像処理装置を適用可能なネットワークシステム全体の構成を説明する図である。
【００７４】
図３において、１０００，１００１は画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク１０１０（以下ＬＡＮ）に流したり、ＬＡＮから受信した画像をプリンタによりプリントアウトしたりすることができる。また、スキャナから読み込んだ画像をＦＡＸ送信手段により、ＰＳＴＮまたはＩＳＤＮ１０３０に送信したり、ＰＳＴＮまたはＩＳＤＮから受信した画像をプリンタによりプリントアウトしたりすることができる。１００２は、データベースサーバで、画像処理装置１００１により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００７５】
１００３は、データベースサーバ１００２のデータベースクライアントで、データベースサーバ１００２に保存されている画像データを閲覧／検索等できる。
【００７６】
１００４は、電子メールサーバで、本発明の装置１００１により読み取った画像を電子メールの添付として受け取ることができる。１００５は、電子メールクライアントで、電子メールサーバ１００４の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。
【００７７】
１００６はＨＴＭＬ文書をＬＡＮに提供するＷＷＷサーバで、本発明の装置１００１によりＷＷＷサーバで提供されるＨＴＭＬ文書をプリントアウトできる。１００７はドメインネームシステムサーバ（ＤＮＳサーバ）で、ドメイン名とＩＰアドレスで相互に変換する。
【００７８】
１０１１はルータで、ＬＡＮ１０１０をインターネット／イントラネット１０１２と連結する。インターネット／イントラネットに、前述したデータベースサーバ１００２、ＷＷＷサーバ１００６、電子メールサーバ１００４、本発明の装置１００１と同様の装置が、それぞれ１０２１，１０２２，１０２３として連結している。一方、本発明の装置１００１は、ＰＳＴＮまたはＩＳＤＮ１０３０を介して、ＦＡＸ装置１０３１と送受信可能になっている。
【００７９】
また、ＬＡＮ上にプリンタ１０４０も連結されており、本発明の装置１００１により読み取った画像をプリントアウト可能なように構成されている。
【００８０】
〔タイル画像（パケット）フォーマット〕
本発明によるＳｙｓｔｅｍ　Ｃｏｎｔｒｏｌｌｅｒ　Ｕｎｉｔ２０００内では、画像データ、ＣＰＵ２００１によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【００８１】
本実施形態では、図４に示すデータパケット、図５に示すコマンドパケット、図６に示すインタラプトパケットの３種の異なる種類のパケットが使用される。
【００８２】
図４は、本発明に係る画像処理装置におけるデータパケットの一例を説明する図であり、本実施形態では画像　Ｄａｔａを３２ｐｉｘｅｌ×３２ｐｉｘｅｌのＴｉｌｅ単位の画像データ３００２に分割して取り扱う例を示した。
【００８３】
図４において、このＴｉｌｅ単位の画像に、必要なヘッダ情報３００１及び画像付加情報等３００３を付加してデータＰａｃｋｅｔとする。以下にヘッダ情報３００１に含まれる情報について説明を行う。
【００８４】
ＰａｃｋｅｔのＴｙｐｅはヘッダ情報３００１内のＰｃｋｔＴｙｐｅ３００４で区別される。ＰｃｋｔＴｙｐｅ３００４にはリピートフラグが含まれており、Ｄａｔａ　Ｐａｃｋｅｔの画像Ｄａｔａが１つ前に送信したＤａｔａ　Ｐａｃｋｅｔの画像Ｄａｔａと同一の場合、リピートフラグをセットする。
【００８５】
ＣｈｉｐＩＤ３００５はパケットを送信するターゲットとなるチップのＩＤを示す。ＤａｔａＴｙｐｅ３００６ではデータのタイプを示す。ＰａｇｅＩＤ３００７はページを示しており、ＪｏｂＩＤはソフトウエアで管理するためのＪｏｂ
ＩＤ３００８を格納する。
【００８６】
Ｔｉｌｅの番号はＹ方向のＴｉｌｅ座標３００９とＸ方向のＴｉｌｅ座標３０１０の組み合わせで、ＹｎＸｎで表される。
【００８７】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では、圧縮アルゴリズムとして、多値カラー（多値グレースケールを含む）の場合はＪＰＥＧを、２値の場合はパックビッツを採用した例を示した。
【００８８】
圧縮されている場合と非圧縮の場合との区別はＣｏｍｐｒｅｓｓＦｌａｇ３０１７で示される。
【００８９】
Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１は左詰で処理順に設定し、各処理Ｕｎｉｔは、処理後Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎを左に８ＢｉｔＳｈｉｆｔする。Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１はＵｎｉｔＩＤ３０１９とＭｏｄｅ３０２０の組が８組格納されている。ＵｎｉｔＩＤ３０１９は各処理Ｕｎｉｔを指定し、Ｍｏｄｅ３０２０は各処理Ｕｎｉｔでの動作Ｍｏｄｅを指定する。これにより、１つのパケットは８つのＵｎｉｔで連続して処理することができる。
【００９０】
ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ３０１２はパケットのトータルバイト数を示す。ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｈ３０１５は画像データのバイト数、ＺＤａｔａＢｙｔｅＬｅｎｇｔｈ３０１６は画像付加情報のバイト数を表し、ＩｍａｇｅＤａｔａＯｆｆｓｅｔ３０１３、ＺＤａｔａＯｆｆｓｅｔ３０１４はそれぞれのデータのパケットの先頭からのＯｆｆｓｅｔを表している。
【００９１】
図５は、本発明における画像処理装置におけるコマンドパケット例を説明する図である。
【００９２】
図５において、４００１はヘッダで、３２バイトで構成され、４００２は例えば９６バイトで構成されるコマンドである。
【００９３】
なお、本パケットは、ヘッダ４００１のＰａｃｋｅｔＴｙｐｅ４００３に設定された様にコマンドパケットであり、Ｃｏｍｍａｎｄ　Ｔｙｐｅに設定された様に書き込みコマンドであり、アドレス４０１１、４０１３、４０１５、４０１７は連続アドレスであり、ＣｍｄＮｕｍ４００６にあるとおり、５個のコマンド４０１２，４０１４，４０１６，４０１８，４０２０を含んだパケットである。
【００９４】
図６は、本発明に係る画像処理装置におけるＩｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔ　Ｆｏｒｍａｔを説明する図である。
【００９５】
図６において、本Ｐａｃｋｅｔ　Ｆｏｒｍａｔは、画像処理部２１４９からＣＰＵ２００１への割り込みを通知するためのものである。ステータス処理部２１０５はＩｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔを送信すると、次に送信の許可がされるまではＩｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔを送信してはならない。パケットバイトレングス５００６は１２８Ｂｙｔｅ固定である。
【００９６】
パケットデータ部５００２には、画像処理部２１４９の各内部モジュールのステータス情報５００７が格納されている。ステータス処理部２１０５は画像処理部２１４９内の各モジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。
【００９７】
ＣｈｉｐＩＤ５００４にはＩｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔの送信先となるシステム制御部２１５０を表すＩＤが、また、ＩｎｔＣｈｉｐＩＤ５００５にはＩｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔの送信元となる画像処理部２１４９を表すＩＤが格納される。
【００９８】
図７は、本発明に係る画像処理装置におけるＰａｃｋｅｔ　Ｔａｂｌｅフォーマットの一例を説明する図であり、各ＰａｃｋｅｔはＰａｃｋｅｔ　Ｔａｂｌｅ６００１によって管理する。
【００９９】
図７において、Ｐａｃｋｅｔ　Ｔａｂｌｅ６００１の構成要素は次の通りで、それぞれＴａｂｌｅの値に「０」を５ｂｉｔ付加すると、Ｐａｃｋｅｔの先頭Ａｄｄｒｅｓｓ６００２、ＰａｃｋｅｔのＢｙｔｅ　Ｌｅｎｇｔｈ６００５となる。
【０１００】
Ｐａｃｋｅｔ　Ａｄｄｒｅｓｓ　Ｐｏｉｎｔｅｒ（２７ｂｉｔ）＋５ｂ０００００＝　Ｐａｃｋｅｔ先頭Ａｄｄｒｅｓｓ
Ｐａｃｋｅｔ　Ｌｅｎｇｔｈ（１１ｂｉｔ）＋５ｂ０００００＝ＰａｃｋｅｔのＢｙｔｅ　Ｌｅｎｇｔｈ
Ｐａｃｋｅｔ　Ｔａｂｌｅ６００１とＣｈａｉｎ　Ｔａｂｌｅ６０１０は分割されないものとする。
【０１０１】
Ｐａｃｋｅｔ　Ｔａｂｌｅ６００１は常に走査方向に並んでおり、Ｙｎ／Ｘｎ＝０００／０００，０００／００１，０００／００２，．．．．という順で並んでいる。このＰａｃｋｅｔ　Ｔａｂｌｅ６００１のＥｎｔｒｙは一意にひとつのＴｉｌｅを示す。また、Ｙｎ／Ｘｍａｘの次のＥｎｔｒｙはＹｎ＋１／Ｘ０となる。
【０１０２】
Ｐａｃｋｅｔがひとつ前のＰａｃｋｅｔとまったく同じＤａｔａである場合は、そのＰａｃｋｅｔはＭｅｍｏｒｙ上には書かず、Ｐａｃｋｅｔ　ＴａｂｌｅのＥｎｔｒｙに１つめのＥｎｔｒｙと同じＰａｃｋｅｔ　Ａｄｄｒｅｓｓ　Ｐｏｉｎｔｅｒ、Ｐａｃｋｅｔ　Ｌｅｎｇｔｈを格納する。１つのＰａｃｋｅｔ　Ｄａｔａを２つのＴａｂｌｅ　Ｅｎｔｒｙが指すようなかたちになる。この場合、２つめのＴａｂｌｅ　ＥｎｔｒｙのＲｅｐｅａｔ　Ｆｌａｇ６００３がＳｅｔされる。
【０１０３】
ＰａｃｋｅｔがＣｈａｉｎ　ＤＭＡにより複数に分断された場合は、Ｄｉｖｉｄｅ　Ｆｌａｇ６００４をＳｅｔし、そのＰａｃｋｅｔの先頭部分が入っているＣｈａｉｎ　ＢｌｏｃｋのＣｈａｉｎ　Ｔａｂｌｅ番号６００６をＳｅｔする。
【０１０４】
Ｃｈａｉｎ　Ｔａｂｌｅ６０１０のＥｎｔｒｙはＣｈａｉｎ　Ｂｌｏｃｋ　Ａｄｄｒｅｓｓ６０１１とＣｈａｉｎ　Ｂｌｏｃｋ　Ｌｅｎｇｔｈ６０１２からなっており、Ｔａｂｌｅの最後のＥｎｔｒｙにはＡｄｄｒｅｓｓ、Ｌｅｎｇｔｈ共に０を格納しておく。
【０１０５】
図８は、本発明に係る画像処理装置における第１のパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向であり、４ビートバーストアクセスとシングルアクセスを各１回行っている例である。
【０１０６】
図８において、横矢印は、時間の流れを示す方向であり、横に長いほうが処理に時間がかかる。３−１はバスのデータ転送開始をバスマスタとバススレーブとで確認しあうための第１のネゴシエーション期間であり、３−２は第１のデータ転送期間であり、３−３は第２のデータ転送期間であり、３−４は第３のデータ転送期間であり、３−５は第４のデータ転送期間であり、３−６は第２のネゴシエーション期間であり、３−７は第５のデータ転送期間である。
【０１０７】
図９は、本発明に係る画像処理装置における第１のパケット処理手順の一例を示すフローチャートであり、コマンド処理部の４ビートバーストバスアクセスとシングルバスアクセスを選択的に行うための回路の動作手順に対応する。なお、（１−１）〜（１−１７）は各ステップを示し、各ステップは、画像処理装置内のプロセッサ２００１がＲＡＭ２００２またはＲＯＭ２００３上にプログラムをロードしてパケットを処理する手順に対応する。
【０１０８】
まず、ステップ（１−１）で、処理が開始されると、ステップ（１−２）で、着目コマンドポインタｎに初期値「１」を代入する処理を行う。そして、ステップ（１−３）で、着目コマンドポインタｎとパケット中のコマンド数ＣｍｄＮｕｍを比較し、ｎ＞ＣｍｄＮｕｍ、つまり、コマンド処理が全て終了した場合はＮの矢印に進み、そうでない場合はＹの矢印に進む条件分岐し、ステップ（１−４）で、着目コマンドポインタｎとパケット中のコマンド数ＣｍｄＮｕｍ−４を比較し、ｎ＞ＣｍｄＮｕｍ−４、つまり、未処理コマンド数が４個以上の場合は、Ｎの矢印に進み、そうでない場合はＹの矢印に進む条件分岐する。
【０１０９】
そして、ステップ（１−５）で、ｎ番目のコマンドのアドレスに「１」を加えたアドレスと、ｎ＋１番目のコマンドのアドレスが等しいかどうかを評価し、該評価が成り立つと判断した場合は、Ｙの矢印に進み、該評価が成り立たない場合はＮの矢印に進む条件分岐する。
【０１１０】
そして、ステップ（１−６）で、ｎ＋１番目のコマンドのアドレスに「１」を加えたものと、ｎ＋２番目のコマンドのアドレスが等しいかどうか評価し、該評価が成り立つと判断した場合は、Ｙの矢印に進み、該評価が成り立たないと判断した場合は、Ｎの矢印に進む条件分岐する。
【０１１１】
そして、ステップ（１−７）で、ｎ＋２番目のコマンドのアドレスに「１」を加えたものと、ｎ＋３番目のコマンドのアドレスが等しいかどうかを評価し、評価が成り立つと判断した場合は、Ｙの矢印に進み、該評価が成り立たないと判断した場合は、Ｎの矢印に進む条件分岐する。
【０１１２】
そして、ステップ（１−８）〜（１−１２）は、４ビートバーストバスアクセス処理であり、ステップ（１−８）で、ｎ番目〜ｎ＋３番目のコマンドの為のネゴシエーション処理を行い、ステップ（１−９）で、ｎ番目のコマンドをデータ転送する１ビート目のバーストバスアクセスを実行する。
【０１１３】
そして、ステップ（１−１０）で、ｎ＋１番目のコマンドのデータ転送する２ビート目のバーストバスアクセスを行い、ステップ（１−１１）で、ｎ＋２番目のコマンドをデータ転送する３ビート目のバーストバスアクセスを実行して、ステップ（１−１２）で、ｎ＋３番目のコマンドをデータ転送する４ビート目のバーストバスアクセスを実行する。
【０１１４】
そして、ステップ（１−１３）で、着目コマンドポインタｎを４増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を実行して、ステップ（１−３）へ戻る。
【０１１５】
一方、ステップ（１−４）〜（１−７）の各分岐処理において、それぞれＮＯと判断された場合は、ステップ（１−１４），（１−１５）に処理を移して、ｎ番目のコマンドを実行するシングルバスアクセスを実行する。
【０１１６】
具体的には、ステップ（１−１４）で、ｎ番目のコマンドの為のネゴシエーション処理を行い、ステップ（１−１５）で、ｎ番目のコマンドをデータ転送するシングルバスアクセスを実行する。
【０１１７】
そして、ステップ（１−１６）で、着目コマンドポインタｎを「１」増加し、着目コマンドポインタを次の未処理コマンドに更新して、ステップ（１−３）へ戻り、ステップ（１−３）で、ＹＥＳが成立すると判断された場合は、本処理を終了する。
【０１１８】
これにより、例えば図８に示したコマンドパケット例をコマンド処理部の４ビートバーストバスアクセスとシングルバスアクセスを選択的に行うと、ステップ（１−１）で、コマンド処理部２１０４が処理を開始して、ステップ（１−２）で着目コマンドポインタｎに「１」が代入され、図５に示したアドレス４０１１とデータ４０１２からなる１番目のコマンドが着目される。
【０１１９】
そして、ステップ（１−３）に示す条件が偽（Ｎ）であると判断され、ステップ（１−４）の方に進む。ここで、ステップ（１−４）においても条件が偽（Ｎ）であると判断されるので、ステップ（１−５）の方に進む。
【０１２０】
そして、ステップ（１−５）〜（１−７）は、着目コマンドを含んだ４つのコマンドが連続アドレスかどうか評価している条件分岐であり、図５に示したパケットのアドレス４０１１、４０１３、４０１５、４０１７は連続アドレスであるので、ステップ（１−８）に進む。
【０１２１】
そして、ステップ（１−８）〜（１−１２）は、４ビートバーストバスアクセスであり、図９に示したステップ（１−８）で、図８に示した第１のネゴシエーション期間３−１でネゴシエーションを行い、図９に示したステップ（１−９），（１−１０），（１−１１），（１−１２）は、それぞれ図８に示した第１のデータ転送期間３−２，第２のデータ転送期間３−３，第３のデータ転送期間３−４，第４のデータ転送期間３−５に相当し、コマンドのデータ転送を４回行い、ステップ（１−１３）に進む。
【０１２２】
ステップ（１−８）〜（１−１２）で４つのコマンドを処理したので、ステップ（１−１３）で着目コマンドポインタを４つ増加し、着目コマンドポインタは図５に示したアドレス４０１９とデータ４０２０からなる５つ目のコマンドを指し、ステップ（１−３）に戻る。
【０１２３】
ここで、本実施形態では、ｎ＝５，ＣｍｄＮｕｍ＝５であるので、ステップ（１−３）の条件は偽であり、ステップ（１−４）に進むが、残りのコマンド数は４個未満であるため、ステップ（１−４）の条件は真（Ｙ）となり、ステップ（１−１４）に進む。
【０１２４】
図９に示すステップ（１−１４）は、図８に示したの第２のネゴシエーション期間３−６に相当するバスにシングルアクセスのためのネゴシエーションであり、次のステップ（１−１５）、つまり図８に示した第５のデータ転送期間３−７でデータを転送する。
【０１２５】
そして、ステップ（１−１６）で、着目コマンドポインタを１つ増加し、ステップ（１−３）に戻る。ここで、ｎ＝６，ＣｍｄＮｕｍ＝５である為、ステップ（１−３）は真と判定され、ステップ（１−１５）に進み、処理を終了する。
【０１２６】
なお、上記実施形態では、図９の説明の為、逐次処理で説明したが、実際にバスにアクセスしている処理、図９に示したステップ（１−８），（１−９），（１−１０），（１−１１），（１−１２），（１−１４），（１−１５）は、残りの処理、図９に示したステップ（１−２），（１−３），（１−４），（１−５），（１−６），（１−７），（１−１３），（１−１６）と並列に動くので、ステップ（１−２），（１−３），（１−４），（１−５），（１−６），（１−７），（１−１３），（１−１６）の処理が多少複雑になったとしても、実際のバスアクセスが遅くなることはない。
【０１２７】
図１７に示す従来のシングルアクセスのみ行った場合における処理と、第１実施形態に示した４ビートバーストアクセス（図９参照）を行った場合を比較してみると、バーストアクセスは、ネゴシエーションを毎回行わないため、無駄なネゴシエーション期間とギャップが入らず、バスアクセスに時間がかからず、高速なコマンド処理を行うことが出来る。
【０１２８】
ここで説明の為、データバス幅は１バイトとしてきたが、データバス幅は必ずしも１バイトである必要はなく、例えば、データバス幅を４バイトとしたときは、コマンドのアドレス４０１１，４０１３，４０１５，４０１７，４０１９，４０２１，４０２３，４０２５，４０２７，４０２９，．．．のうち連続したいずれか４つが、バースト可能なアドレスつまり、４バイトバウンダリのアドレスで、その４つのアドレスのそれぞれの増分が４であれば良い。つまり任意のバス幅としても全く同様の効果が得られる。
【０１２９】
また、説明のために、コマンド中のアドレスｂｉｔ幅を３２ｂｉｔとして説明してきたがそれに限定されるものでなく、任意のｂｉｔ幅であっても本発明の目的を果たすことが出来る。
【０１３０】
また、ここでバースト回数は、４ビートで説明してきたが、４ビートに限定するものではなく、バースト回数に応じた条件分岐（図９のステップ（１−５），（１−６），（１−７）と、バスアクセス（図９に示したステップ（１−９），（１−１０），（１−１１），（１−１２））の回数と、ステップ（１−１３）の着目コマンドポインタの加算数をバースト数に合わせて増減すればよい。
【０１３１】
以上説明した第１実施形態は、シングルアクセスと４ビートアクセスを選択的に行う構成で説明してきたが、入力コマンド数をバースト回数で割り切れる個数に限定するならば、バーストのみ行う構成であってもよい。
【０１３２】
また、バースト数も１通りでなく、例えば、シングル、２ビート、４ビート、８ビートのように入力されたコマンドに応じて複数のバースト回数を選択する構成でも、本発明の目的を果たせることは言うまでもない。
【０１３３】
以上、説明したように、第１実施形態による画像処理装置によれば、バス幅のバウンダリに合った連続アドレスのコマンドが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理が可能である。
【０１３４】
〔第２実施形態〕
なお、第１実施形態において、連続アドレスでないコマンドが入力された場合、バースト転送処理できないという問題が発生する。
【０１３５】
そこで、コマンドをバスごとに処理することで、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合にも、バーストアクセスが可能な、高速なコマンド処理を実現するように構成してもよい。
【０１３６】
具体的には、コマンドのアドレスが０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆの場合、第１のバスへのアクセスコマンド、コマンドのアドレスが０ｘ８０００＿００００〜０ｘｆｆｆｆ＿ｆｆｆｆの場合、第２のバスへのアクセスコマンドする。
【０１３７】
図１０は、本発明の第２実施形態を示す画像処理装置におけるパケット例を説明する図である。
【０１３８】
図１０において、４００１はヘッダで、３２バイトで構成され、４００２は例えば９６バイトで構成されるコマンドである。
【０１３９】
なお、本パケットは、ヘッダ４００１のＰａｃｋｅｔＴｙｐｅ４００３に設定された様にコマンドパケットであり、Ｃｏｍｍａｎｄ　Ｔｙｐｅに設定された様に書き込みコマンドであり、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合のコマンドパケット例であり、図５に示したコマンドパケットの３番目のコマンド４０１５，４０１６に他のバスへのアクセスを挿入し、図５に示した３番目に書かれていたコマンド４０１５，４０１６を４番目のコマンド４０１７，４０１８の位置に移動し、図５で４番目に書かれていたコマンド４０１７，４０１８を５番目のコマンド４０１９，４０２０の位置に移動したものであり、一見コマンドのアドレスが連続でない為、第１実施形態で説明した構成では、図１０に示すパケットの例では、バースト転送できず、すべてシングル転送を行うことになり、バスアクセス時間を短縮することができず、コマンド処理が低速になる。
【０１４０】
そこで、図１１に示すフローチャートの手順に従い、図１０に示す連続アドレスでないパケットを処理する場合について詳述する。
【０１４１】
図１１は、本発明に係る画像処理装置における第２のパケット処理手順の一例を示すフローチャートであり、コマンド処理部の４ビートバーストバスアクセスとシングルバスアクセスを選択的に行うための回路の動作手順に対応する。なお、（６−１）〜（６−２６）は各ステップを示し、各ステップは、画像処理装置内のプロセッサ２００１がコマンド処理部２１０４上にプログラムをロードしてパケットを処理する手順に対応する。
【０１４２】
まず、ステップ（６−１）で、処理が開始されると、ステップ（６−２）で、着目コマンドポインタｎに初期値「１」を代入する処理を行う。
【０１４３】
そして、ステップ（６−３）で、着目コマンドポインタｎとパケット中のコマンド数ＣｍｄＮｕｍを比較し、ｎ＞ＣｍｄＮｕｍ、つまり、コマンド処理が全て終了していると判断した場合は、Ｎの矢印に進み、そうでないと判断した場合はＹの矢印に進む条件分岐を行う。
【０１４４】
そして、ステップ（６−４）で、着目コマンドポインタｎとパケット中のコマンド数ＣｍｄＮｕｍ−４を比較し、ｎ＞ＣｍｄＮｕｍ−４、つまり、未処理コマンド数が４個以上であるかどうかを判断して、未処理コマンド数が４個以上であると判断した場合はＮの矢印に進み、そうでないと判断した場合はＹの矢印に進む条件分岐を行う。
【０１４５】
次に、ステップ（６−５）で、あるバスの連続アドレスをカウントする為のインデックスｉと、あるバスの連続アドレスを含んだコマンドを記憶する為のバッファ（ＴｅｍｐＣｍｄＢｕｆ）のポインタｊにゼロを代入する処理を行う。
【０１４６】
そして、ステップ（６−６）で、（ｎ＋ｉ）番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、（ｎ＋ｉ）番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合は、Ｙの矢印に進み、そうでないと判断した場合は、Ｎの矢印に進み、ステップ（６−７）で、バーストアクセスする際に参照するためのバースト回数分の一時的なコマンドバッファＴｍｐＣｍｄ（０〜４）の０番目に（ｎ＋ｉ）番目のコマンドをコピーする処理を行う。
【０１４７】
そして、ステップ（６−８）で、注目コマンドポインタインデックスｉを「１」増加する処理を行い、ステップ（６−９）で、ｎ＋ｉで示される注目コマンドポインタがコマンド数を超えてないか（ｎ＋ｉ＞ＣｍｄＮｕｍが成り立つか）どうかを判断して、ｎ＋ｉ＞ＣｍｄＮｕｍが成り立つときＹの矢印に進み、そうでないと判断した場合はＮの矢印に進む。
【０１４８】
そして、ステップ（６−１０）で、ステップ（６−６）と同様に、（ｎ＋ｉ）番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、（ｎ＋ｉ）番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合はＹの矢印に進み、そうでないと判断した場合Ｎの矢印に進む。
【０１４９】
そして、ステップ（６−１１）で、ｊ番目の一時的なコマンドバッファＴｍｐＣｍｄ（ｊ）に書かれたコマンドのアドレスと、（ｎ＋ｉ）番目のコマンドに書かれたアドレスに「１」加えたものが等しいかどうか評価して、等しいと評価した場合はＹの矢印に進み、そうでないと評価した場合はＮの矢印に進む。
【０１５０】
そして、ステップ（６−１２）で、一時的なコマンドバッファＴｍｐＣｍｄ（０〜４）のｊ＋１番目に（ｎ＋ｉ）番目のコマンドをコピーする処理とｊを「１」増加する処理を行う。次に、ステップ（６−１３）で、ｊが４と等しいことを評価して、等しいと評価した場合はＹの矢印に進み、そうでないと評価した場合はＮの矢印に進む。
【０１５１】
そして、ステップ（６−１４）〜ステップ（６−１８）で、４ビートバーストアクセス処理を行う。
【０１５２】
具体的には、ステップ（６−１４）で、一時的なコマンドバッファＴｍｐＣｍｄ（０〜４）に書かれたコマンドの為のネゴシエーション処理を行い、ステップ（６−１５）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス０のコマンドをデータ転送する１ビート目のバーストバスアクセスを行い、ステップ（６−１６）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス１のコマンドのデータ転送する２ビート目のバーストバスアクセスを行い、ステップ（６−１７）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス２のコマンドをデータ転送する３ビート目のバーストバスアクセスを行い、ステップ（６−１８）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス３のコマンドをデータ転送する４ビート目のバーストバスアクセスを行う。
【０１５３】
そして、ステップ（６−１９）で、着目コマンドポインタｎをｉ増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を行い、ステップ（６−２０）で、ステップ（６−８）と同様に、注目コマンドポインタインデックスｉを１増加する処理を行う。
【０１５４】
次に、ステップ（６−２１）で、ｎ＋ｉで示される注目コマンドポインタがコマンド数を超えてないか（ｎ＋ｉ＞ＣｍｄＮｕｍが成り立つか否か）を判断して、ｎ＋ｉ＞ＣｍｄＮｕｍが成り立つと判断した場合にＹの矢印に進み、そうでないと判断した場合はＮの矢印に進む。
【０１５５】
そして、ステップ（６−２２）で、ｎ番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、ｎ番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合はＹの矢印に進み、そうでないと判断した場合Ｎの矢印に進む。
【０１５６】
そして、ステップ（６−２３），（６−２４）では、ｎ番目のコマンドを実行するシングルバスアクセスを行う。
【０１５７】
具体的には、ステップ（６−２３）で、ｎ番目のコマンドの為のネゴシエーション処理を行い、ステップ（６−２４）で、ｎ番目のコマンドをデータ転送するシングルバスアクセスのデータ転送処理を行い、ステップ（６−２５）では、着目コマンドポインタｎを「１」増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を行い、ステップ（６−２６）で、本処理を終了する。
【０１５８】
なお、上記図１１に示したパケット処理では、ある１つのバスの動作を表したものであり、複数のバスを持つシステムでは、同図と同様なものを複数個数置けばよい。ただし、コマンド中のアドレスによって、どのバスにアクセスするかを選択するため、図１１に示したステップ（６−６），ステップ（６−１０），ステップ（６−２２）はバスに応じて変更する必要がある。
【０１５９】
そして、図１１で説明したフローチャートの回路を複数置いた場合、それぞれが、逐次動作する場合と、並列動作する場合が考えられる。
【０１６０】
以下、逐次動作の場合を例に挙げて、図１０に示したコマンドパケットが入力された場合の、図１１の動作例を説明する。第１のバスに最適化された図１１に示す処理は、次のようになる。
【０１６１】
図１１に示したステップ（６−１）から回路の動作を開始し、ステップ（６−２）で着目コマンドポインタｎが「１」になる。つまり、着目コマンドは、図１０に示したコマンド４０１１、４０１２である。ＣｍｄＮｕｍは「５」であるので、ステップ（６−３），ステップ（６−４）はともにＮに進み、ステップ（６−５）で、ｉ＝０，ｊ＝０となる。ステップ（６−６）で、図１０に示した第１のコマンドのアドレス４０１１の値「０ｘ１２３４＿５６７８」が「０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆ」の範囲にあるので、ステップ（６−６）で、Ｙに進み、ステップ（６−７）で一時的なコマンドバッファＴｍｐＣｍｄのインデックス０に図１０に示したコマンド４０１１、４０１２をコピーし、ステップ（６−８）で着目コマンドポインタインデックスｉに１加え、ｉ＝１とし、ステップ（６−９）はＮに進み、ステップ（６−１０）で（ｎ＋ｉ）＝２番目のコマンドのアドレス、つまり図１０に示したアドレス４０１３の値「０ｘ１２３４＿５６７９」が「０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆ」の範囲にあるので、Ｙに進み、ステップ（６−１１）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス０に格納されたコマンドのアドレス、つまり図１０に示したアドレス４０１１に「１」加えたものと、（ｎ＋ｉ）＝２番目のコマンドのアドレス、つまり図１０に示したアドレス４０１３が等しいので、Ｙに進み、ステップ（６−１２）で一時的なコマンドバッファＴｍｐＣｍｄのインデックス（ｊ＋１）＝１に（ｎ＋ｉ）＝２番目のコマンド図４に示したコマンド４０１３、４０１４をコピーし、ｊに「１」加え、ｊ＝１とする。
【０１６２】
そして、ステップ（６−１３）でＮに進み、ステップ（６−８）で着目コマンドポインタインデックスｉに「１」加え、ｉ＝２とし、ステップ（６−９）はＮに進み、ステップ（６−１０）で（ｎ＋ｉ）＝３番目のコマンドのアドレス、つまり図１０に示したアドレス４０１５の値「０ｘ８９ａｂ＿ｃｄｅ０」が「０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆ」の範囲にないので、Ｎに進み、ステップ（６−８）で着目コマンドポインタインデックスｉに「１」加え、ｉ＝３とし、ステップ（６−９）はＮに進み、ステップ（６−１０）で（ｎ＋ｉ）＝４番目のコマンドのアドレス、つまり図１０に示したアドレス４０１７の値「０ｘ１２３４＿５６７ａ」が「０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆ」の範囲にあるので、Ｙに進む。
【０１６３】
そして、ステップ（６−１１）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス１に格納されたコマンドのアドレス、つまり図１０に示したアドレス４０１３に「１」加えたものと、（ｎ＋ｉ）＝４番目のコマンドのアドレス、つまり図１０に示したアドレス４０１７が等しいので、Ｙに進み、ステップ（６−１２）で一時的なコマンドバッファＴｍｐＣｍｄのインデックス（ｊ＋１）＝２に（ｎ＋ｉ）＝４番目のコマンド、図１０に示したコマンド４０１７、４０１８をコピーし、ｊに「１」加え、ｊ＝２とし、ステップ（６−１３）でＮに進み、ステップ（６−８）で着目コマンドポインタインデックスｉに「１」加え、ｉ＝４とし、ステップ（６−９）はＮに進み、ステップ（６−１０）で（ｎ＋ｉ）＝５番目のコマンドのアドレス、つまり図１０に示したアドレス４０１９の値「０ｘ１２３４＿５６７ｂ」が「０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆ」の範囲にあるので、Ｙに進み、ステップ（６−１１）で、一時的なコマンドバッファＴｍｐＣｍｄのインデックス２に格納されたコマンドのアドレス、つまり図１０に示したアドレス４０１７に「１」加えたものと、（ｎ＋ｉ）＝５番目のコマンドのアドレス、つまり図１０に示したコマンド４０１９のアドレス部が等しいので、Ｙに進み、ステップ（６−１２）で一時的なコマンドバッファＴｍｐＣｍｄのインデックス（ｊ＋１）＝３に（ｎ＋ｉ）＝５番目のコマンド、図１０に示したコマンド４０１９、４０２０をコピーし、ｊに「１」加え、ｊ＝３とし、ステップ（６−１３）でＹに進み、ステップ（６−１４）〜ステップ（６−１８）の４ビートバスアクセスを行う。
【０１６４】
図１２，図１３は、本発明に係る画像処理装置における第２のパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向である。また、図１２に示す例は、逐次動作した場合の例であり、図１３に示す例は、並列動作した場合の例である。
【０１６５】
図１２に示すように、つまり逐次動作した場合は、あるバスへの４ビートバーストアクセス（ステップ（６−１）〜（６−５））が終了してから、他のバスにシングルアクセス（ステップ（６−６），ステップ（６−７））を行っている。
【０１６６】
一方、図１３に示すように、つまり並行動作した場合は、あるバスへの４ビートバーストアクセス（ステップ（６−８）〜ステップ（６−１２）と並列に他のバスにシングルアクセス（ステップ（６−１３），ステップ（６−１４））を行っている。
【０１６７】
図１２に示す逐次動作と、図１３に示す並行動作とを比べると、図１３に示す並行動作の方がトータルバスアクセス時間が短くより好ましいが、どちらの場合でも、図１６で説明した従来例の場合よりも高速化が可能であり、本発明の目的を果たせる。
【０１６８】
以上説明したように、第２実施形態によれば、コマンドをバスごとに処理することで、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合にも、バスにバーストアクセスが可能となり、バスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【０１６９】
なお、上記第２実施形態では、説明上、バスは２種類であると説明してきたが、バスの種類は限定されるものではなく、複数のバスの種類があればよい。
【０１７０】
また、説明のためにアドレス範囲を第１のバスへのアクセスコマンドは、コマンドのアドレスが「０ｘ００００＿００００〜０ｘ７ｆｆｆ＿ｆｆｆｆ」、第２のバスへのアクセスコマンドは、コマンドのアドレスが「０ｘ８０００＿００００〜０ｘｆｆｆｆ＿ｆｆｆｆ」としてきたが、それに限定されるものではなく、任意のアドレス範囲にバスを割り当ててよい。
【０１７１】
以下、図１４に示すメモリマップを参照して本発明に係る画像処理装置で読み出し可能なデータ処理プログラムの構成について説明する。
【０１７２】
図１４は、本発明に係る画像処理装置で読み出し可能な各種データ処理プログラム、および画像処理部２１４９に含まれる、２値化部２１１８、解像度変換部２１１６、画像入力インタフェース２１１２、画像出力インタフェース２１１３、レンダリング部インタフェース２１１０で処理される際の画像データを格納する記憶媒体のメモリマップを説明する図である。画像処理部２１４９によって意図した通りの画像処理がなされているかを確認するために、画像メモリ２１２３に格納された画像データを本発明に係るコマンド処理部で読み取り、ハードウェア、およびソフトウエアのデバッグを行う。
【０１７３】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１７４】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１７５】
本実施形態における図９，図１１に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１７６】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７７】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７８】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ等を用いることができる。
【０１７９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８１】
また、前述した実施形態の機能は、ソフトウエアで実現するとして説明してきたが、コマンド処理部は、本発明のフローチャートに従って動作するＣＰＵを内蔵しないロジック回路でも実現できる。
【０１８２】
【発明の効果】
以上説明したように、本発明によれば、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断して、該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送することにより、バス幅のバウンダリに合った連続アドレスのコマンドがセットされたパケットが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【０１８３】
また、コマンドをバスごとに並列処理することで、バス幅のバウンダリに合った連続アドレスのコマンドの間に他のバスへのコマンドが挿入されていた場合でも、バスにバーストアクセスが可能となり、バスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【０１８４】
従って、タイル単位の画像データをパケット転送処理する際に連続アドレスでコマンドが格納された場合に、１回のニゴシエーションフェーズで所定数連続するコマンドを一括して処理して、タイル単位の画像データに対する処理効率を格段に向上させることができる画像処理環境を整備できる優れた効果を奏する。
【図面の簡単な説明】
【図１】本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【図２】本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【図３】本発明に係る画像処理装置を適用可能なネットワークシステム全体の構成を説明する図である。
【図４】本発明に係る画像処理装置におけるデータパケットの一例を説明する図である。
【図５】本発明における画像処理装置におけるコマンドパケット例を説明する図である。
【図６】本発明に係る画像処理装置におけるＩｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔ　Ｆｏｒｍａｔを説明する図である。
【図７】本発明に係る画像処理装置におけるＰａｃｋｅｔ　Ｔａｂｌｅフォーマットの一例を説明する図である。
【図８】本発明に係る画像処理装置における第１のパケット転送処理状態を説明するタイミングチャートである。
【図９】本発明に係る画像処理装置における第１のパケット処理手順の一例を示すフローチャートである。
【図１０】本発明の第２実施形態を示す画像処理装置におけるパケット例を説明する図である。
【図１１】本発明に係る画像処理装置における第２のパケット処理手順の一例を示すフローチャートである。
【図１２】本発明に係る画像処理装置における第２のパケット転送処理状態を説明するタイミングチャートである。
【図１３】本発明に係る画像処理装置における第２のパケット転送処理状態を説明するタイミングチャートである。
【図１４】本発明に係る画像処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図１５】従来の画像処理装置におけるコマンドパケット例を説明する図である。
【図１６】従来の画像処理装置におけるパケット転送処理状態を説明するタイミングチャートである。
【図１７】従来の画像処理装置におけるコマンド処理部のシングルバスアクセスを行うための回路の動作を説明するフローチャートである。
【符号の説明】
２００１　ＣＰＵ
２００７　システムバスブリッジ
２１０４　コマンド処理部
２１０７　タイルバス
２１０８　メモリバス
【図１】
2004078376.tif 000003
【図２】
2004078376.tif 000004
【図３】
2004078376.tif 000005
【図４】
2004078376.tif 000006
【図５】
2004078376.tif 000007
【図６】
2004078376.tif 000008
【図７】
2004078376.tif 000009
【図８】
2004078376.tif 000010
【図９】
2004078376.tif 000011
【図１０】
2004078376.tif 000012
【図１１】
2004078376.tif 000013
【図１２】
2004078376.tif 000014
【図１３】
2004078376.tif 000015
【図１４】
2004078376.tif 000016
【図１５】
2004078376.tif 000017
【図１６】
2004078376.tif 000018
【図１７】
2004078376.tif 000019