JP2004078376A - 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム - Google Patents
画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム Download PDFInfo
- Publication number
- JP2004078376A JP2004078376A JP2002235367A JP2002235367A JP2004078376A JP 2004078376 A JP2004078376 A JP 2004078376A JP 2002235367 A JP2002235367 A JP 2002235367A JP 2002235367 A JP2002235367 A JP 2002235367A JP 2004078376 A JP2004078376 A JP 2004078376A
- Authority
- JP
- Japan
- Prior art keywords
- command
- bus
- data
- image processing
- image
- 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.)
- Pending
Links
Images
Landscapes
- Image Input (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
【課題】バス幅のバウンダリに合った連続アドレスのコマンドがセットされたパケットが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理することである。
【解決手段】画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドが格納されたパケットを解析して、該アドレス部に連続アドレスが書かれているか否かをコマンド処理部が判断して、該アドレス部に連続アドレスが書かれていると判断した場合、画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する構成を特徴とする。
【選択図】 図11
【解決手段】画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドが格納されたパケットを解析して、該アドレス部に連続アドレスが書かれているか否かをコマンド処理部が判断して、該アドレス部に連続アドレスが書かれていると判断した場合、画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する構成を特徴とする。
【選択図】 図11
Description
【0001】
【発明の属する技術分野】
本発明は、スキャナ,プリンタ,複写機,ネットワーク機能を持つ複合型画像処理装置、特にバースト転送可能なバスを持つ画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムに関するものである。
【0002】
【従来の技術】
従来、タイルと名づけた同じ大きさの桝目で大きな画像データを分割し、画像処理をこのタイル単位に行う画像処理装置が提案されている。
【0003】
この従来例では、このタイルに含まれる画像データにデータ種類、データ処理先、データ処理内容、データサイズ、データの位置、といったデータの属性情報を付加したものをパケットと呼び、パケット単位に伝送を行う。
【0004】
タイル画像(パケット)フォーマット
従来例によるSystem Controller Unit内では、画像データ、CPUによるコマンド、各ブロックより発行される割り込み情報を、ヘッダ部4001とデータ部4002とからなるパケット化された形式で転送する。
【0005】
従来例では、データパケット、図15に示すコマンドパケットの2種の異なる種類のパケットが使用される。
【0006】
〔Command Packet Format〕
本Packet Formatはレジスタ設定バスへのアクセスを行うためのものである。本パケットを用いることにより、図示しないCPUより画像メモリへのアクセスも可能である。
【0007】
画像メモリは、画像処理回路ブロックから、大量のデータを高速に読み書きするために、バーストアクセスが許されている。ChipID4004にはコマンドパケットの送信先となる画像処理部を表すIDが格納される。
【0008】
PageID4007、JobID4008はソフトウエアで管理するためのPageIDとJobIDを格納する。
【0009】
PacketID4009は1次元で表される。Data PacketのX−coordinateのみを使用する。
【0010】
パケットバイトレングス4010は128Byte固定である。データ部4002には、アドレス4011,4013,4015,4017,4019,4021,4023,025,4027,4029,4031,4033とデータ4012,4014,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034を持ち、アドレス(例えばアドレス4011)とデータ(例えばデータ4012)の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。
【0011】
アドレスは、1アドレス1バイトのバイトアドレッシングであり、データバス幅は、8bitである。ライトかリードかのコマンドのタイプはCmdType4005で示され、コマンドの数はCmdnum4006で示される。
【0012】
【発明が解決しようとする課題】
しかしながら、従来の画像処理装置は、コマンド処理部がバーストを行うための回路を持たず、シングル転送でバスにアクセスしていたためバスアクセスに時間がかかるという欠点があった。
【0013】
例えばバスに4ビートバースト機能があり、コマンド中に4つの連続アドレスへのコマンドが書かれていても、4つのコマンドを4回シングル転送していた。
【0014】
図15は、従来の画像処理装置におけるコマンドパケット例を説明する図であり、具体的な値を入れた連続アドレスを含んだコマンドパケットの例である。
【0015】
図15において、PacketType4003に設定された様にコマンドパケットであり、Command Typeに設定された様に書き込みコマンドであり、アドレス4011、4013、4015、4017は、連続アドレスであり、CmdNum4006にあるとおり、5個のコマンドを含んだパケットである。
【0016】
図16は、従来の画像処理装置におけるパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向であり、横に長いほうが処理に時間がかかる。
【0017】
図16において、101−1はバスのデータ転送開始をバスマスタとバススレーブとで確認しあうための第1のネゴシエーション期間であり、101−2は第1のデータ転送期間であり、101−3は第2のネゴシエーション期間であり、データ転送期間と次のデータのためのネゴシエーション期間の間には、何もしない時間(ギャップ)を入れる。101−4は第2のデータ転送期間であり、101−5は第3のネゴシエーション期間であり、101−6は第3のデータ転送期間であり、101−7は第4のネゴシエーション期間であり、101−8は第4のデータ転送期間であり、101−9は第5のネゴシエーション期間であり、101−10は第5のデータ転送期間である。
【0018】
図17は、従来の画像処理装置におけるコマンド処理部のシングルバスアクセスを行うための回路の動作を説明するフローチャートである。なお、(100−1)〜(100−7)は各ステップを示す。
【0019】
まず、ステップ100−1で処理が開始され、ステップ(100−2)で、着目コマンドポインタnに初期値1を代入する処理を行い、ステップ(100−3)で、着目コマンドポインタnとパケット中のコマンド数CmdNumを比較し、n>CmdNum、つまり、コマンド処理が全て終了した場合は、判定がNの矢印に進み、そうでない場合はYの矢印に進む条件分岐する。
【0020】
そして、n番目のコマンドを実行するシングルバスアクセスを行うため、ステップ(100−4)でn番目のコマンドのネゴシエーション処理を行い、ステップ(100−5)で、n番目のコマンドのデータ転送処理を行う。次に、ステップ(100−6)で、着目コマンドポインタnを「1」増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理をするため、ステップ(100−3)へ戻る。
【0021】
後で詳しく説明するが、シングルアクセスでは、図16に示したように、毎回ネゴシエーションフェーズを行うため、無駄なネゴシエーション期間とギャップGが入るため、それだけバスアクセスに時間がかかり、コマンド処理が低速になってしまう。
【0022】
以上、説明したように、従来の画像処理装置におけるパケット処理では、コマンドを処理する際、常にシングルアクセスをするため、バスアクセスに時間がかかってしまい、タイル単位の画像データ処理を効率よく行えないという問題点があった。
【0023】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、パケットを解析して、タイル単位の画像データを処理するためのパケット中のコマンドを処理する際、連続アドレスが格納されている場合には、バスに対してバーストアクセスすることにより、バスアクセス時間を短縮して高速にコマンド処理を行いタイル画像データに対するパケット処理効率を向上させることができる画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムを提供することを目的とする。
【0024】
【課題を解決するための手段】
本発明に係る第1の発明は、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断手段と、前記判断手段により該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送制御手段とを有することを特徴とする。
【0025】
本発明に係る第2の発明は、前記コマンド処理部は、複数のバスに接続されることを特徴とする。
【0026】
本発明に係る第3の発明は、前記判断手段は、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする。
【0027】
本発明に係る第4の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする。
【0028】
本発明に係る第5の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする。
【0029】
本発明に係る第6の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする。
【0030】
本発明に係る第7の発明は、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置のデータ処理方法であって、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断ステップ(図4に示すステップ(1−3)〜(1−7))と、前記判断ステップにより該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送ステップ(図4のステップ(1−8)〜(1−13))とを有することを特徴とする。
【0031】
本発明に係る第8の発明は、前記コマンド処理部は、複数のバスに接続されることを特徴とする。
【0032】
本発明に係る第9の発明は、前記判断ステップは、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする。
【0033】
本発明に係る第10の発明は、前記転送ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする。
【0034】
本発明に係る第11の発明は、前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする。
【0035】
本発明に係る第12の発明は、前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする。
【0036】
本発明に係る第13の発明は、第7〜第12の発明のいずれかに記載のデータ処理方法を実現するプログラムを記憶したコンピュータが読み取り可能な記憶媒体であることを特徴とする。
【0037】
本発明に係る第14の発明は、第7〜第12の発明のいずれかに記載のデータ処理方法を実現するプログラムであることを特徴とする。
【0038】
本発明に係る第15の発明は、前記コマンド処理部は、CPUを内蔵することを特徴とする。
【0039】
本発明に係る第16の発明は、前記コマンド処理部は、CPUを内蔵しないことを特徴とする。
【0040】
【発明の実施の形態】
〔第1実施形態〕
図1,図2は、本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【0041】
図1,図2において、2000はController Unitで、画像入力デバイスであるScanner2070や画像出力デバイスであるPrinter2095と接続し、一方ではLAN2011や公衆回線(WAN)2051に接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う為のコントローラである。
【0042】
CPU2001はシステム全体を制御するプロセッサである。本実施形態では2つのCPUを用いた例を示す。これら二つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。
【0043】
システムバスブリッジ2007は、バススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、IOバス2127、サブバススイッチ2128、IOバス2129、画像リングインタフェース2147、画像リングインタフェース2148が接続される。
【0044】
サブバススイッチ2128は、第二のバススイッチであり、画像DMA2130、画像DMA2132、フォント伸長部3134、ソート回路2135、ビットマップトレース部2136が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ2007への接続を行う。
【0045】
RAM2002は、CPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAMコントローラ2124により制御される、本実施形態では、ダイレクトRDRAMを採用する例を示す。
【0046】
ROM2003はブートROMであり、システムのブートプログラムが格納されており、ROMコントローラ2125により制御される。
【0047】
画像DMA2130は、画像圧縮部2131に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像圧縮部2131を制御し、RAM2002上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う、本実施形態では、JPEGを圧縮アルゴリズムに採用した例を示す。
【0048】
画像DMA(2)2132は、画像伸長部2133に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像伸長部2133を制御し、RAM2002上にある圧縮データの読み出し、伸長、伸長後データの書き戻しを行う、本実施形態では、JPEGを伸長アルゴリズムに採用した例を示す。
【0049】
フォント伸長部2134は、LANインタフェース2010等を介し外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM2003、もしくは、RAM2002内に格納された、圧縮フォントデータの伸長を行う。本実施形態では、FBEアルゴリズムを採用した例を示した。
【0050】
ソート回路2135は、PDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。ビットマップトレース部2136は、ビットマップデータより、エッジ情報を抽出する。
【0051】
IOバス(1)2127は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインタフェース2138、汎用のシリアルポート2139、インタラプトコントローラ2140、GPIOインタフェース2141が接続される。IOバス1には、バスアービタ(図示せず)が含まれる。
【0052】
操作部I/F2006は操作部(UI2012とインタフェース部で、操作部2012に表示する画像データを操作部2012に対して出力する。また、操作部2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0053】
IOバス2129は内部IOバスの一種であり、汎用バスインタフェース2142と、LANコントローラ2010が接続される。IOバス2129にはバスアービタ(図示せず)が含まれる。
【0054】
汎用バスインタフェース2142は、2つの同一のバスインタフェースから成り、標準IOバスをサポートするバスブリッジである。本実施形態では、PCIバス2143を採用した例を示した。
【0055】
2004はハードディスクドライブ(HDD)で、システムソフトウエア、画像データを格納する。ディスクコントローラ2144を介して一方のPCIバス2143に接続される。
【0056】
LANコントローラ2010は、MAC回路2145、PHY/PMD回路2146を介しLAN2011に接続し、情報の入出力を行う。
【0057】
Modem2050は公衆回線2051に接続し、情報の入出力を行う。画像リングインタフェース2147及び画像リングインタフェース2148は、システムバスブリッジ2007と画像データを高速で転送する画像リング2008を接続し、タイル化後に圧縮されたデータをRAM2002と画像リング処理部2149間で転送するDMAコントローラとして機能する。
【0058】
画像リング2008は、一対の単方向接続経路の組み合わせにより構成される(画像リング1及び画像リング2)。画像リング2008は、タイル画像処理部2149内で、画像リングインタフェース2101及び画像リングインタフェース2102を介し、タイル伸長部2103、コマンド処理部2104、ステータス処理部2105、タイル圧縮部2106に接続される。本実施形態では、タイル伸長部2103を2組、タイル圧縮部を3組実装する例を示した。
【0059】
タイル伸長部2103は、画像リングインタフェースへの接続に加え、タイルバス2107に接続され、画像リングより入力された圧縮後の画像データを伸長し、タイルバス2107へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを伸長アルゴリズムとして採用した例を示す。
【0060】
タイル圧縮部2106は、画像リングインタフェース2102への接続に加え、タイルバス2107に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング2008へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【0061】
コマンド処理部2104は、画像リングインタフェース2102への接続に加え、レジスタ設定バス2109に接続され、画像リングを介して入力したCPU2001より発行されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当ブロックへ書き込む。
【0062】
また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス2109を介して該当レジスタより情報を読み出し。画像リングインタフェース2102に転送する。コマンド処理部2104は、サブCPUを内蔵し、画像メモリ及び画像メモリ2123に格納されたプログラムに従って動作する。
【0063】
ステータス処理部2105は各画像処理部の情報を監視し、CPU2001に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインタフェース2102に出力する。
【0064】
タイルバス2107には上記ブロックに加え、以下の機能ブロック、すなわちレンダリング部インタフェース2110、画像入力インタフェース2112、画像出力インタフェース2113、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116が接続される。
【0065】
レンダリング部インタフェース2110は、後述するレンダリング部により生成されたビットマップイメージを入力するインタフェースである。レンダリング部とレンダリング部インタフェースは、一般的なビデオ信号2111にて接続される。レンダリング部インタフェースは、タイルバス2107に加え、メモリバス2108、レジスタ設定バス2109への接続を有し、入力されたラスタ画像をレジスタ設定バス2109を介して設定された、所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0066】
画像入力インタフェース2112は、後述するスキャナ用画像処理部2114により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バス2109を介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0067】
画像出力インタフェース2113は、タイルバス2107からのタイル画像データを入力とし、ラスタ画像への構造変換、及びクロックレートの変更を行い、ラスタ画像をプリンタ用画像処理部2115へ出力する。
【0068】
画像回転部2030は画像データの回転を行う。解像度変換部2116は画像の解像度の変更を行う。色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行う。2値化部2118は、多値(カラー、グレースケール)画像を2値化する。多値化部2119は2値画像を多値データへ変換する。
【0069】
外部バスインタフェース部2120は、画像リングインタフェース2101,2102,2148コマンド処理部2104、レジスタ設定バス2109を介し、CPU2001により発行された、書き込み、読み出し要求を外部バス2121に変換出力するバスブリッジである。外部バス2121は本実施形態では、プリンタ用画像処理部2115、スキャナ用画像処理部2114に接続されている。
【0070】
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ2123に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリにSDRAMを用いた例を示した。
【0071】
スキャナ用画像処理部2114では、画像入力デバイスであるスキャナ2070、によりスキャンされた画像データを補正画像処理する。
【0072】
プリンタ用画像処理部2115では、プリンタ出力のための補正画像処理を行い、結果をPrinter2095へ出力する。レンダリング部2060はPDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0073】
図3は、本発明に係る画像処理装置を適用可能なネットワークシステム全体の構成を説明する図である。
【0074】
図3において、1000,1001は画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク1010(以下LAN)に流したり、LANから受信した画像をプリンタによりプリントアウトしたりすることができる。また、スキャナから読み込んだ画像をFAX送信手段により、PSTNまたはISDN1030に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトしたりすることができる。1002は、データベースサーバで、画像処理装置1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0075】
1003は、データベースサーバ1002のデータベースクライアントで、データベースサーバ1002に保存されている画像データを閲覧/検索等できる。
【0076】
1004は、電子メールサーバで、本発明の装置1001により読み取った画像を電子メールの添付として受け取ることができる。1005は、電子メールクライアントで、電子メールサーバ1004の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。
【0077】
1006はHTML文書をLANに提供するWWWサーバで、本発明の装置1001によりWWWサーバで提供されるHTML文書をプリントアウトできる。1007はドメインネームシステムサーバ(DNSサーバ)で、ドメイン名とIPアドレスで相互に変換する。
【0078】
1011はルータで、LAN1010をインターネット/イントラネット1012と連結する。インターネット/イントラネットに、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、本発明の装置1001と同様の装置が、それぞれ1021,1022,1023として連結している。一方、本発明の装置1001は、PSTNまたはISDN1030を介して、FAX装置1031と送受信可能になっている。
【0079】
また、LAN上にプリンタ1040も連結されており、本発明の装置1001により読み取った画像をプリントアウト可能なように構成されている。
【0080】
〔タイル画像(パケット)フォーマット〕
本発明によるSystem Controller Unit2000内では、画像データ、CPU2001によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【0081】
本実施形態では、図4に示すデータパケット、図5に示すコマンドパケット、図6に示すインタラプトパケットの3種の異なる種類のパケットが使用される。
【0082】
図4は、本発明に係る画像処理装置におけるデータパケットの一例を説明する図であり、本実施形態では画像 Dataを32pixel×32pixelのTile単位の画像データ3002に分割して取り扱う例を示した。
【0083】
図4において、このTile単位の画像に、必要なヘッダ情報3001及び画像付加情報等3003を付加してデータPacketとする。以下にヘッダ情報3001に含まれる情報について説明を行う。
【0084】
PacketのTypeはヘッダ情報3001内のPcktType3004で区別される。PcktType3004にはリピートフラグが含まれており、Data Packetの画像Dataが1つ前に送信したData Packetの画像Dataと同一の場合、リピートフラグをセットする。
【0085】
ChipID3005はパケットを送信するターゲットとなるチップのIDを示す。DataType3006ではデータのタイプを示す。PageID3007はページを示しており、JobIDはソフトウエアで管理するためのJob
ID3008を格納する。
【0086】
Tileの番号はY方向のTile座標3009とX方向のTile座標3010の組み合わせで、YnXnで表される。
【0087】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では、圧縮アルゴリズムとして、多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合はパックビッツを採用した例を示した。
【0088】
圧縮されている場合と非圧縮の場合との区別はCompressFlag3017で示される。
【0089】
Process Instruction3011は左詰で処理順に設定し、各処理Unitは、処理後Process Instructionを左に8BitShiftする。Process Instruction3011はUnitID3019とMode3020の組が8組格納されている。UnitID3019は各処理Unitを指定し、Mode3020は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitで連続して処理することができる。
【0090】
PacketByteLength3012はパケットのトータルバイト数を示す。ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像付加情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータのパケットの先頭からのOffsetを表している。
【0091】
図5は、本発明における画像処理装置におけるコマンドパケット例を説明する図である。
【0092】
図5において、4001はヘッダで、32バイトで構成され、4002は例えば96バイトで構成されるコマンドである。
【0093】
なお、本パケットは、ヘッダ4001のPacketType4003に設定された様にコマンドパケットであり、Command Typeに設定された様に書き込みコマンドであり、アドレス4011、4013、4015、4017は連続アドレスであり、CmdNum4006にあるとおり、5個のコマンド4012,4014,4016,4018,4020を含んだパケットである。
【0094】
図6は、本発明に係る画像処理装置におけるInterrupt Packet Formatを説明する図である。
【0095】
図6において、本Packet Formatは、画像処理部2149からCPU2001への割り込みを通知するためのものである。ステータス処理部2105はInterrupt Packetを送信すると、次に送信の許可がされるまではInterrupt Packetを送信してはならない。パケットバイトレングス5006は128Byte固定である。
【0096】
パケットデータ部5002には、画像処理部2149の各内部モジュールのステータス情報5007が格納されている。ステータス処理部2105は画像処理部2149内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0097】
ChipID5004にはInterrupt Packetの送信先となるシステム制御部2150を表すIDが、また、IntChipID5005にはInterrupt Packetの送信元となる画像処理部2149を表すIDが格納される。
【0098】
図7は、本発明に係る画像処理装置におけるPacket Tableフォーマットの一例を説明する図であり、各PacketはPacket Table6001によって管理する。
【0099】
図7において、Packet Table6001の構成要素は次の通りで、それぞれTableの値に「0」を5bit付加すると、Packetの先頭Address6002、PacketのByte Length6005となる。
【0100】
Packet Address Pointer(27bit)+5b00000= Packet先頭Address
Packet Length(11bit)+5b00000=PacketのByte Length
Packet Table6001とChain Table6010は分割されないものとする。
【0101】
Packet Table6001は常に走査方向に並んでおり、Yn/Xn=000/000,000/001,000/002,....という順で並んでいる。このPacket Table6001のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【0102】
Packetがひとつ前のPacketとまったく同じDataである場合は、そのPacketはMemory上には書かず、Packet TableのEntryに1つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。1つのPacket Dataを2つのTable Entryが指すようなかたちになる。この場合、2つめのTable EntryのRepeat Flag6003がSetされる。
【0103】
PacketがChain DMAにより複数に分断された場合は、Divide Flag6004をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号6006をSetする。
【0104】
Chain Table6010のEntryはChain Block Address6011とChain Block Length6012からなっており、Tableの最後のEntryにはAddress、Length共に0を格納しておく。
【0105】
図8は、本発明に係る画像処理装置における第1のパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向であり、4ビートバーストアクセスとシングルアクセスを各1回行っている例である。
【0106】
図8において、横矢印は、時間の流れを示す方向であり、横に長いほうが処理に時間がかかる。3−1はバスのデータ転送開始をバスマスタとバススレーブとで確認しあうための第1のネゴシエーション期間であり、3−2は第1のデータ転送期間であり、3−3は第2のデータ転送期間であり、3−4は第3のデータ転送期間であり、3−5は第4のデータ転送期間であり、3−6は第2のネゴシエーション期間であり、3−7は第5のデータ転送期間である。
【0107】
図9は、本発明に係る画像処理装置における第1のパケット処理手順の一例を示すフローチャートであり、コマンド処理部の4ビートバーストバスアクセスとシングルバスアクセスを選択的に行うための回路の動作手順に対応する。なお、(1−1)〜(1−17)は各ステップを示し、各ステップは、画像処理装置内のプロセッサ2001がRAM2002またはROM2003上にプログラムをロードしてパケットを処理する手順に対応する。
【0108】
まず、ステップ(1−1)で、処理が開始されると、ステップ(1−2)で、着目コマンドポインタnに初期値「1」を代入する処理を行う。そして、ステップ(1−3)で、着目コマンドポインタnとパケット中のコマンド数CmdNumを比較し、n>CmdNum、つまり、コマンド処理が全て終了した場合はNの矢印に進み、そうでない場合はYの矢印に進む条件分岐し、ステップ(1−4)で、着目コマンドポインタnとパケット中のコマンド数CmdNum−4を比較し、n>CmdNum−4、つまり、未処理コマンド数が4個以上の場合は、Nの矢印に進み、そうでない場合はYの矢印に進む条件分岐する。
【0109】
そして、ステップ(1−5)で、n番目のコマンドのアドレスに「1」を加えたアドレスと、n+1番目のコマンドのアドレスが等しいかどうかを評価し、該評価が成り立つと判断した場合は、Yの矢印に進み、該評価が成り立たない場合はNの矢印に進む条件分岐する。
【0110】
そして、ステップ(1−6)で、n+1番目のコマンドのアドレスに「1」を加えたものと、n+2番目のコマンドのアドレスが等しいかどうか評価し、該評価が成り立つと判断した場合は、Yの矢印に進み、該評価が成り立たないと判断した場合は、Nの矢印に進む条件分岐する。
【0111】
そして、ステップ(1−7)で、n+2番目のコマンドのアドレスに「1」を加えたものと、n+3番目のコマンドのアドレスが等しいかどうかを評価し、評価が成り立つと判断した場合は、Yの矢印に進み、該評価が成り立たないと判断した場合は、Nの矢印に進む条件分岐する。
【0112】
そして、ステップ(1−8)〜(1−12)は、4ビートバーストバスアクセス処理であり、ステップ(1−8)で、n番目〜n+3番目のコマンドの為のネゴシエーション処理を行い、ステップ(1−9)で、n番目のコマンドをデータ転送する1ビート目のバーストバスアクセスを実行する。
【0113】
そして、ステップ(1−10)で、n+1番目のコマンドのデータ転送する2ビート目のバーストバスアクセスを行い、ステップ(1−11)で、n+2番目のコマンドをデータ転送する3ビート目のバーストバスアクセスを実行して、ステップ(1−12)で、n+3番目のコマンドをデータ転送する4ビート目のバーストバスアクセスを実行する。
【0114】
そして、ステップ(1−13)で、着目コマンドポインタnを4増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を実行して、ステップ(1−3)へ戻る。
【0115】
一方、ステップ(1−4)〜(1−7)の各分岐処理において、それぞれNOと判断された場合は、ステップ(1−14),(1−15)に処理を移して、n番目のコマンドを実行するシングルバスアクセスを実行する。
【0116】
具体的には、ステップ(1−14)で、n番目のコマンドの為のネゴシエーション処理を行い、ステップ(1−15)で、n番目のコマンドをデータ転送するシングルバスアクセスを実行する。
【0117】
そして、ステップ(1−16)で、着目コマンドポインタnを「1」増加し、着目コマンドポインタを次の未処理コマンドに更新して、ステップ(1−3)へ戻り、ステップ(1−3)で、YESが成立すると判断された場合は、本処理を終了する。
【0118】
これにより、例えば図8に示したコマンドパケット例をコマンド処理部の4ビートバーストバスアクセスとシングルバスアクセスを選択的に行うと、ステップ(1−1)で、コマンド処理部2104が処理を開始して、ステップ(1−2)で着目コマンドポインタnに「1」が代入され、図5に示したアドレス4011とデータ4012からなる1番目のコマンドが着目される。
【0119】
そして、ステップ(1−3)に示す条件が偽(N)であると判断され、ステップ(1−4)の方に進む。ここで、ステップ(1−4)においても条件が偽(N)であると判断されるので、ステップ(1−5)の方に進む。
【0120】
そして、ステップ(1−5)〜(1−7)は、着目コマンドを含んだ4つのコマンドが連続アドレスかどうか評価している条件分岐であり、図5に示したパケットのアドレス4011、4013、4015、4017は連続アドレスであるので、ステップ(1−8)に進む。
【0121】
そして、ステップ(1−8)〜(1−12)は、4ビートバーストバスアクセスであり、図9に示したステップ(1−8)で、図8に示した第1のネゴシエーション期間3−1でネゴシエーションを行い、図9に示したステップ(1−9),(1−10),(1−11),(1−12)は、それぞれ図8に示した第1のデータ転送期間3−2,第2のデータ転送期間3−3,第3のデータ転送期間3−4,第4のデータ転送期間3−5に相当し、コマンドのデータ転送を4回行い、ステップ(1−13)に進む。
【0122】
ステップ(1−8)〜(1−12)で4つのコマンドを処理したので、ステップ(1−13)で着目コマンドポインタを4つ増加し、着目コマンドポインタは図5に示したアドレス4019とデータ4020からなる5つ目のコマンドを指し、ステップ(1−3)に戻る。
【0123】
ここで、本実施形態では、n=5,CmdNum=5であるので、ステップ(1−3)の条件は偽であり、ステップ(1−4)に進むが、残りのコマンド数は4個未満であるため、ステップ(1−4)の条件は真(Y)となり、ステップ(1−14)に進む。
【0124】
図9に示すステップ(1−14)は、図8に示したの第2のネゴシエーション期間3−6に相当するバスにシングルアクセスのためのネゴシエーションであり、次のステップ(1−15)、つまり図8に示した第5のデータ転送期間3−7でデータを転送する。
【0125】
そして、ステップ(1−16)で、着目コマンドポインタを1つ増加し、ステップ(1−3)に戻る。ここで、n=6,CmdNum=5である為、ステップ(1−3)は真と判定され、ステップ(1−15)に進み、処理を終了する。
【0126】
なお、上記実施形態では、図9の説明の為、逐次処理で説明したが、実際にバスにアクセスしている処理、図9に示したステップ(1−8),(1−9),(1−10),(1−11),(1−12),(1−14),(1−15)は、残りの処理、図9に示したステップ(1−2),(1−3),(1−4),(1−5),(1−6),(1−7),(1−13),(1−16)と並列に動くので、ステップ(1−2),(1−3),(1−4),(1−5),(1−6),(1−7),(1−13),(1−16)の処理が多少複雑になったとしても、実際のバスアクセスが遅くなることはない。
【0127】
図17に示す従来のシングルアクセスのみ行った場合における処理と、第1実施形態に示した4ビートバーストアクセス(図9参照)を行った場合を比較してみると、バーストアクセスは、ネゴシエーションを毎回行わないため、無駄なネゴシエーション期間とギャップが入らず、バスアクセスに時間がかからず、高速なコマンド処理を行うことが出来る。
【0128】
ここで説明の為、データバス幅は1バイトとしてきたが、データバス幅は必ずしも1バイトである必要はなく、例えば、データバス幅を4バイトとしたときは、コマンドのアドレス4011,4013,4015,4017,4019,4021,4023,4025,4027,4029,...のうち連続したいずれか4つが、バースト可能なアドレスつまり、4バイトバウンダリのアドレスで、その4つのアドレスのそれぞれの増分が4であれば良い。つまり任意のバス幅としても全く同様の効果が得られる。
【0129】
また、説明のために、コマンド中のアドレスbit幅を32bitとして説明してきたがそれに限定されるものでなく、任意のbit幅であっても本発明の目的を果たすことが出来る。
【0130】
また、ここでバースト回数は、4ビートで説明してきたが、4ビートに限定するものではなく、バースト回数に応じた条件分岐(図9のステップ(1−5),(1−6),(1−7)と、バスアクセス(図9に示したステップ(1−9),(1−10),(1−11),(1−12))の回数と、ステップ(1−13)の着目コマンドポインタの加算数をバースト数に合わせて増減すればよい。
【0131】
以上説明した第1実施形態は、シングルアクセスと4ビートアクセスを選択的に行う構成で説明してきたが、入力コマンド数をバースト回数で割り切れる個数に限定するならば、バーストのみ行う構成であってもよい。
【0132】
また、バースト数も1通りでなく、例えば、シングル、2ビート、4ビート、8ビートのように入力されたコマンドに応じて複数のバースト回数を選択する構成でも、本発明の目的を果たせることは言うまでもない。
【0133】
以上、説明したように、第1実施形態による画像処理装置によれば、バス幅のバウンダリに合った連続アドレスのコマンドが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理が可能である。
【0134】
〔第2実施形態〕
なお、第1実施形態において、連続アドレスでないコマンドが入力された場合、バースト転送処理できないという問題が発生する。
【0135】
そこで、コマンドをバスごとに処理することで、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合にも、バーストアクセスが可能な、高速なコマンド処理を実現するように構成してもよい。
【0136】
具体的には、コマンドのアドレスが0x0000_0000〜0x7fff_ffffの場合、第1のバスへのアクセスコマンド、コマンドのアドレスが0x8000_0000〜0xffff_ffffの場合、第2のバスへのアクセスコマンドする。
【0137】
図10は、本発明の第2実施形態を示す画像処理装置におけるパケット例を説明する図である。
【0138】
図10において、4001はヘッダで、32バイトで構成され、4002は例えば96バイトで構成されるコマンドである。
【0139】
なお、本パケットは、ヘッダ4001のPacketType4003に設定された様にコマンドパケットであり、Command Typeに設定された様に書き込みコマンドであり、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合のコマンドパケット例であり、図5に示したコマンドパケットの3番目のコマンド4015,4016に他のバスへのアクセスを挿入し、図5に示した3番目に書かれていたコマンド4015,4016を4番目のコマンド4017,4018の位置に移動し、図5で4番目に書かれていたコマンド4017,4018を5番目のコマンド4019,4020の位置に移動したものであり、一見コマンドのアドレスが連続でない為、第1実施形態で説明した構成では、図10に示すパケットの例では、バースト転送できず、すべてシングル転送を行うことになり、バスアクセス時間を短縮することができず、コマンド処理が低速になる。
【0140】
そこで、図11に示すフローチャートの手順に従い、図10に示す連続アドレスでないパケットを処理する場合について詳述する。
【0141】
図11は、本発明に係る画像処理装置における第2のパケット処理手順の一例を示すフローチャートであり、コマンド処理部の4ビートバーストバスアクセスとシングルバスアクセスを選択的に行うための回路の動作手順に対応する。なお、(6−1)〜(6−26)は各ステップを示し、各ステップは、画像処理装置内のプロセッサ2001がコマンド処理部2104上にプログラムをロードしてパケットを処理する手順に対応する。
【0142】
まず、ステップ(6−1)で、処理が開始されると、ステップ(6−2)で、着目コマンドポインタnに初期値「1」を代入する処理を行う。
【0143】
そして、ステップ(6−3)で、着目コマンドポインタnとパケット中のコマンド数CmdNumを比較し、n>CmdNum、つまり、コマンド処理が全て終了していると判断した場合は、Nの矢印に進み、そうでないと判断した場合はYの矢印に進む条件分岐を行う。
【0144】
そして、ステップ(6−4)で、着目コマンドポインタnとパケット中のコマンド数CmdNum−4を比較し、n>CmdNum−4、つまり、未処理コマンド数が4個以上であるかどうかを判断して、未処理コマンド数が4個以上であると判断した場合はNの矢印に進み、そうでないと判断した場合はYの矢印に進む条件分岐を行う。
【0145】
次に、ステップ(6−5)で、あるバスの連続アドレスをカウントする為のインデックスiと、あるバスの連続アドレスを含んだコマンドを記憶する為のバッファ(TempCmdBuf)のポインタjにゼロを代入する処理を行う。
【0146】
そして、ステップ(6−6)で、(n+i)番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、(n+i)番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合は、Yの矢印に進み、そうでないと判断した場合は、Nの矢印に進み、ステップ(6−7)で、バーストアクセスする際に参照するためのバースト回数分の一時的なコマンドバッファTmpCmd(0〜4)の0番目に(n+i)番目のコマンドをコピーする処理を行う。
【0147】
そして、ステップ(6−8)で、注目コマンドポインタインデックスiを「1」増加する処理を行い、ステップ(6−9)で、n+iで示される注目コマンドポインタがコマンド数を超えてないか(n+i>CmdNumが成り立つか)どうかを判断して、n+i>CmdNumが成り立つときYの矢印に進み、そうでないと判断した場合はNの矢印に進む。
【0148】
そして、ステップ(6−10)で、ステップ(6−6)と同様に、(n+i)番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、(n+i)番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合はYの矢印に進み、そうでないと判断した場合Nの矢印に進む。
【0149】
そして、ステップ(6−11)で、j番目の一時的なコマンドバッファTmpCmd(j)に書かれたコマンドのアドレスと、(n+i)番目のコマンドに書かれたアドレスに「1」加えたものが等しいかどうか評価して、等しいと評価した場合はYの矢印に進み、そうでないと評価した場合はNの矢印に進む。
【0150】
そして、ステップ(6−12)で、一時的なコマンドバッファTmpCmd(0〜4)のj+1番目に(n+i)番目のコマンドをコピーする処理とjを「1」増加する処理を行う。次に、ステップ(6−13)で、jが4と等しいことを評価して、等しいと評価した場合はYの矢印に進み、そうでないと評価した場合はNの矢印に進む。
【0151】
そして、ステップ(6−14)〜ステップ(6−18)で、4ビートバーストアクセス処理を行う。
【0152】
具体的には、ステップ(6−14)で、一時的なコマンドバッファTmpCmd(0〜4)に書かれたコマンドの為のネゴシエーション処理を行い、ステップ(6−15)で、一時的なコマンドバッファTmpCmdのインデックス0のコマンドをデータ転送する1ビート目のバーストバスアクセスを行い、ステップ(6−16)で、一時的なコマンドバッファTmpCmdのインデックス1のコマンドのデータ転送する2ビート目のバーストバスアクセスを行い、ステップ(6−17)で、一時的なコマンドバッファTmpCmdのインデックス2のコマンドをデータ転送する3ビート目のバーストバスアクセスを行い、ステップ(6−18)で、一時的なコマンドバッファTmpCmdのインデックス3のコマンドをデータ転送する4ビート目のバーストバスアクセスを行う。
【0153】
そして、ステップ(6−19)で、着目コマンドポインタnをi増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を行い、ステップ(6−20)で、ステップ(6−8)と同様に、注目コマンドポインタインデックスiを1増加する処理を行う。
【0154】
次に、ステップ(6−21)で、n+iで示される注目コマンドポインタがコマンド数を超えてないか(n+i>CmdNumが成り立つか否か)を判断して、n+i>CmdNumが成り立つと判断した場合にYの矢印に進み、そうでないと判断した場合はNの矢印に進む。
【0155】
そして、ステップ(6−22)で、n番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、n番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合はYの矢印に進み、そうでないと判断した場合Nの矢印に進む。
【0156】
そして、ステップ(6−23),(6−24)では、n番目のコマンドを実行するシングルバスアクセスを行う。
【0157】
具体的には、ステップ(6−23)で、n番目のコマンドの為のネゴシエーション処理を行い、ステップ(6−24)で、n番目のコマンドをデータ転送するシングルバスアクセスのデータ転送処理を行い、ステップ(6−25)では、着目コマンドポインタnを「1」増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を行い、ステップ(6−26)で、本処理を終了する。
【0158】
なお、上記図11に示したパケット処理では、ある1つのバスの動作を表したものであり、複数のバスを持つシステムでは、同図と同様なものを複数個数置けばよい。ただし、コマンド中のアドレスによって、どのバスにアクセスするかを選択するため、図11に示したステップ(6−6),ステップ(6−10),ステップ(6−22)はバスに応じて変更する必要がある。
【0159】
そして、図11で説明したフローチャートの回路を複数置いた場合、それぞれが、逐次動作する場合と、並列動作する場合が考えられる。
【0160】
以下、逐次動作の場合を例に挙げて、図10に示したコマンドパケットが入力された場合の、図11の動作例を説明する。第1のバスに最適化された図11に示す処理は、次のようになる。
【0161】
図11に示したステップ(6−1)から回路の動作を開始し、ステップ(6−2)で着目コマンドポインタnが「1」になる。つまり、着目コマンドは、図10に示したコマンド4011、4012である。CmdNumは「5」であるので、ステップ(6−3),ステップ(6−4)はともにNに進み、ステップ(6−5)で、i=0,j=0となる。ステップ(6−6)で、図10に示した第1のコマンドのアドレス4011の値「0x1234_5678」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、ステップ(6−6)で、Yに進み、ステップ(6−7)で一時的なコマンドバッファTmpCmdのインデックス0に図10に示したコマンド4011、4012をコピーし、ステップ(6−8)で着目コマンドポインタインデックスiに1加え、i=1とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=2番目のコマンドのアドレス、つまり図10に示したアドレス4013の値「0x1234_5679」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、Yに進み、ステップ(6−11)で、一時的なコマンドバッファTmpCmdのインデックス0に格納されたコマンドのアドレス、つまり図10に示したアドレス4011に「1」加えたものと、(n+i)=2番目のコマンドのアドレス、つまり図10に示したアドレス4013が等しいので、Yに進み、ステップ(6−12)で一時的なコマンドバッファTmpCmdのインデックス(j+1)=1に(n+i)=2番目のコマンド図4に示したコマンド4013、4014をコピーし、jに「1」加え、j=1とする。
【0162】
そして、ステップ(6−13)でNに進み、ステップ(6−8)で着目コマンドポインタインデックスiに「1」加え、i=2とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=3番目のコマンドのアドレス、つまり図10に示したアドレス4015の値「0x89ab_cde0」が「0x0000_0000〜0x7fff_ffff」の範囲にないので、Nに進み、ステップ(6−8)で着目コマンドポインタインデックスiに「1」加え、i=3とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=4番目のコマンドのアドレス、つまり図10に示したアドレス4017の値「0x1234_567a」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、Yに進む。
【0163】
そして、ステップ(6−11)で、一時的なコマンドバッファTmpCmdのインデックス1に格納されたコマンドのアドレス、つまり図10に示したアドレス4013に「1」加えたものと、(n+i)=4番目のコマンドのアドレス、つまり図10に示したアドレス4017が等しいので、Yに進み、ステップ(6−12)で一時的なコマンドバッファTmpCmdのインデックス(j+1)=2に(n+i)=4番目のコマンド、図10に示したコマンド4017、4018をコピーし、jに「1」加え、j=2とし、ステップ(6−13)でNに進み、ステップ(6−8)で着目コマンドポインタインデックスiに「1」加え、i=4とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=5番目のコマンドのアドレス、つまり図10に示したアドレス4019の値「0x1234_567b」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、Yに進み、ステップ(6−11)で、一時的なコマンドバッファTmpCmdのインデックス2に格納されたコマンドのアドレス、つまり図10に示したアドレス4017に「1」加えたものと、(n+i)=5番目のコマンドのアドレス、つまり図10に示したコマンド4019のアドレス部が等しいので、Yに進み、ステップ(6−12)で一時的なコマンドバッファTmpCmdのインデックス(j+1)=3に(n+i)=5番目のコマンド、図10に示したコマンド4019、4020をコピーし、jに「1」加え、j=3とし、ステップ(6−13)でYに進み、ステップ(6−14)〜ステップ(6−18)の4ビートバスアクセスを行う。
【0164】
図12,図13は、本発明に係る画像処理装置における第2のパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向である。また、図12に示す例は、逐次動作した場合の例であり、図13に示す例は、並列動作した場合の例である。
【0165】
図12に示すように、つまり逐次動作した場合は、あるバスへの4ビートバーストアクセス(ステップ(6−1)〜(6−5))が終了してから、他のバスにシングルアクセス(ステップ(6−6),ステップ(6−7))を行っている。
【0166】
一方、図13に示すように、つまり並行動作した場合は、あるバスへの4ビートバーストアクセス(ステップ(6−8)〜ステップ(6−12)と並列に他のバスにシングルアクセス(ステップ(6−13),ステップ(6−14))を行っている。
【0167】
図12に示す逐次動作と、図13に示す並行動作とを比べると、図13に示す並行動作の方がトータルバスアクセス時間が短くより好ましいが、どちらの場合でも、図16で説明した従来例の場合よりも高速化が可能であり、本発明の目的を果たせる。
【0168】
以上説明したように、第2実施形態によれば、コマンドをバスごとに処理することで、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合にも、バスにバーストアクセスが可能となり、バスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【0169】
なお、上記第2実施形態では、説明上、バスは2種類であると説明してきたが、バスの種類は限定されるものではなく、複数のバスの種類があればよい。
【0170】
また、説明のためにアドレス範囲を第1のバスへのアクセスコマンドは、コマンドのアドレスが「0x0000_0000〜0x7fff_ffff」、第2のバスへのアクセスコマンドは、コマンドのアドレスが「0x8000_0000〜0xffff_ffff」としてきたが、それに限定されるものではなく、任意のアドレス範囲にバスを割り当ててよい。
【0171】
以下、図14に示すメモリマップを参照して本発明に係る画像処理装置で読み出し可能なデータ処理プログラムの構成について説明する。
【0172】
図14は、本発明に係る画像処理装置で読み出し可能な各種データ処理プログラム、および画像処理部2149に含まれる、2値化部2118、解像度変換部2116、画像入力インタフェース2112、画像出力インタフェース2113、レンダリング部インタフェース2110で処理される際の画像データを格納する記憶媒体のメモリマップを説明する図である。画像処理部2149によって意図した通りの画像処理がなされているかを確認するために、画像メモリ2123に格納された画像データを本発明に係るコマンド処理部で読み取り、ハードウェア、およびソフトウエアのデバッグを行う。
【0173】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0174】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0175】
本実施形態における図9,図11に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0176】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0177】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0178】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROM,EEPROM等を用いることができる。
【0179】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0180】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0181】
また、前述した実施形態の機能は、ソフトウエアで実現するとして説明してきたが、コマンド処理部は、本発明のフローチャートに従って動作するCPUを内蔵しないロジック回路でも実現できる。
【0182】
【発明の効果】
以上説明したように、本発明によれば、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断して、該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送することにより、バス幅のバウンダリに合った連続アドレスのコマンドがセットされたパケットが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【0183】
また、コマンドをバスごとに並列処理することで、バス幅のバウンダリに合った連続アドレスのコマンドの間に他のバスへのコマンドが挿入されていた場合でも、バスにバーストアクセスが可能となり、バスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【0184】
従って、タイル単位の画像データをパケット転送処理する際に連続アドレスでコマンドが格納された場合に、1回のニゴシエーションフェーズで所定数連続するコマンドを一括して処理して、タイル単位の画像データに対する処理効率を格段に向上させることができる画像処理環境を整備できる優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【図2】本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【図3】本発明に係る画像処理装置を適用可能なネットワークシステム全体の構成を説明する図である。
【図4】本発明に係る画像処理装置におけるデータパケットの一例を説明する図である。
【図5】本発明における画像処理装置におけるコマンドパケット例を説明する図である。
【図6】本発明に係る画像処理装置におけるInterrupt Packet Formatを説明する図である。
【図7】本発明に係る画像処理装置におけるPacket Tableフォーマットの一例を説明する図である。
【図8】本発明に係る画像処理装置における第1のパケット転送処理状態を説明するタイミングチャートである。
【図9】本発明に係る画像処理装置における第1のパケット処理手順の一例を示すフローチャートである。
【図10】本発明の第2実施形態を示す画像処理装置におけるパケット例を説明する図である。
【図11】本発明に係る画像処理装置における第2のパケット処理手順の一例を示すフローチャートである。
【図12】本発明に係る画像処理装置における第2のパケット転送処理状態を説明するタイミングチャートである。
【図13】本発明に係る画像処理装置における第2のパケット転送処理状態を説明するタイミングチャートである。
【図14】本発明に係る画像処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図15】従来の画像処理装置におけるコマンドパケット例を説明する図である。
【図16】従来の画像処理装置におけるパケット転送処理状態を説明するタイミングチャートである。
【図17】従来の画像処理装置におけるコマンド処理部のシングルバスアクセスを行うための回路の動作を説明するフローチャートである。
【符号の説明】
2001 CPU
2007 システムバスブリッジ
2104 コマンド処理部
2107 タイルバス
2108 メモリバス
【発明の属する技術分野】
本発明は、スキャナ,プリンタ,複写機,ネットワーク機能を持つ複合型画像処理装置、特にバースト転送可能なバスを持つ画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムに関するものである。
【0002】
【従来の技術】
従来、タイルと名づけた同じ大きさの桝目で大きな画像データを分割し、画像処理をこのタイル単位に行う画像処理装置が提案されている。
【0003】
この従来例では、このタイルに含まれる画像データにデータ種類、データ処理先、データ処理内容、データサイズ、データの位置、といったデータの属性情報を付加したものをパケットと呼び、パケット単位に伝送を行う。
【0004】
タイル画像(パケット)フォーマット
従来例によるSystem Controller Unit内では、画像データ、CPUによるコマンド、各ブロックより発行される割り込み情報を、ヘッダ部4001とデータ部4002とからなるパケット化された形式で転送する。
【0005】
従来例では、データパケット、図15に示すコマンドパケットの2種の異なる種類のパケットが使用される。
【0006】
〔Command Packet Format〕
本Packet Formatはレジスタ設定バスへのアクセスを行うためのものである。本パケットを用いることにより、図示しないCPUより画像メモリへのアクセスも可能である。
【0007】
画像メモリは、画像処理回路ブロックから、大量のデータを高速に読み書きするために、バーストアクセスが許されている。ChipID4004にはコマンドパケットの送信先となる画像処理部を表すIDが格納される。
【0008】
PageID4007、JobID4008はソフトウエアで管理するためのPageIDとJobIDを格納する。
【0009】
PacketID4009は1次元で表される。Data PacketのX−coordinateのみを使用する。
【0010】
パケットバイトレングス4010は128Byte固定である。データ部4002には、アドレス4011,4013,4015,4017,4019,4021,4023,025,4027,4029,4031,4033とデータ4012,4014,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034を持ち、アドレス(例えばアドレス4011)とデータ(例えばデータ4012)の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。
【0011】
アドレスは、1アドレス1バイトのバイトアドレッシングであり、データバス幅は、8bitである。ライトかリードかのコマンドのタイプはCmdType4005で示され、コマンドの数はCmdnum4006で示される。
【0012】
【発明が解決しようとする課題】
しかしながら、従来の画像処理装置は、コマンド処理部がバーストを行うための回路を持たず、シングル転送でバスにアクセスしていたためバスアクセスに時間がかかるという欠点があった。
【0013】
例えばバスに4ビートバースト機能があり、コマンド中に4つの連続アドレスへのコマンドが書かれていても、4つのコマンドを4回シングル転送していた。
【0014】
図15は、従来の画像処理装置におけるコマンドパケット例を説明する図であり、具体的な値を入れた連続アドレスを含んだコマンドパケットの例である。
【0015】
図15において、PacketType4003に設定された様にコマンドパケットであり、Command Typeに設定された様に書き込みコマンドであり、アドレス4011、4013、4015、4017は、連続アドレスであり、CmdNum4006にあるとおり、5個のコマンドを含んだパケットである。
【0016】
図16は、従来の画像処理装置におけるパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向であり、横に長いほうが処理に時間がかかる。
【0017】
図16において、101−1はバスのデータ転送開始をバスマスタとバススレーブとで確認しあうための第1のネゴシエーション期間であり、101−2は第1のデータ転送期間であり、101−3は第2のネゴシエーション期間であり、データ転送期間と次のデータのためのネゴシエーション期間の間には、何もしない時間(ギャップ)を入れる。101−4は第2のデータ転送期間であり、101−5は第3のネゴシエーション期間であり、101−6は第3のデータ転送期間であり、101−7は第4のネゴシエーション期間であり、101−8は第4のデータ転送期間であり、101−9は第5のネゴシエーション期間であり、101−10は第5のデータ転送期間である。
【0018】
図17は、従来の画像処理装置におけるコマンド処理部のシングルバスアクセスを行うための回路の動作を説明するフローチャートである。なお、(100−1)〜(100−7)は各ステップを示す。
【0019】
まず、ステップ100−1で処理が開始され、ステップ(100−2)で、着目コマンドポインタnに初期値1を代入する処理を行い、ステップ(100−3)で、着目コマンドポインタnとパケット中のコマンド数CmdNumを比較し、n>CmdNum、つまり、コマンド処理が全て終了した場合は、判定がNの矢印に進み、そうでない場合はYの矢印に進む条件分岐する。
【0020】
そして、n番目のコマンドを実行するシングルバスアクセスを行うため、ステップ(100−4)でn番目のコマンドのネゴシエーション処理を行い、ステップ(100−5)で、n番目のコマンドのデータ転送処理を行う。次に、ステップ(100−6)で、着目コマンドポインタnを「1」増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理をするため、ステップ(100−3)へ戻る。
【0021】
後で詳しく説明するが、シングルアクセスでは、図16に示したように、毎回ネゴシエーションフェーズを行うため、無駄なネゴシエーション期間とギャップGが入るため、それだけバスアクセスに時間がかかり、コマンド処理が低速になってしまう。
【0022】
以上、説明したように、従来の画像処理装置におけるパケット処理では、コマンドを処理する際、常にシングルアクセスをするため、バスアクセスに時間がかかってしまい、タイル単位の画像データ処理を効率よく行えないという問題点があった。
【0023】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、パケットを解析して、タイル単位の画像データを処理するためのパケット中のコマンドを処理する際、連続アドレスが格納されている場合には、バスに対してバーストアクセスすることにより、バスアクセス時間を短縮して高速にコマンド処理を行いタイル画像データに対するパケット処理効率を向上させることができる画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムを提供することを目的とする。
【0024】
【課題を解決するための手段】
本発明に係る第1の発明は、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断手段と、前記判断手段により該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送制御手段とを有することを特徴とする。
【0025】
本発明に係る第2の発明は、前記コマンド処理部は、複数のバスに接続されることを特徴とする。
【0026】
本発明に係る第3の発明は、前記判断手段は、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする。
【0027】
本発明に係る第4の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする。
【0028】
本発明に係る第5の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする。
【0029】
本発明に係る第6の発明は、前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする。
【0030】
本発明に係る第7の発明は、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置のデータ処理方法であって、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断ステップ(図4に示すステップ(1−3)〜(1−7))と、前記判断ステップにより該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送ステップ(図4のステップ(1−8)〜(1−13))とを有することを特徴とする。
【0031】
本発明に係る第8の発明は、前記コマンド処理部は、複数のバスに接続されることを特徴とする。
【0032】
本発明に係る第9の発明は、前記判断ステップは、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする。
【0033】
本発明に係る第10の発明は、前記転送ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする。
【0034】
本発明に係る第11の発明は、前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする。
【0035】
本発明に係る第12の発明は、前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする。
【0036】
本発明に係る第13の発明は、第7〜第12の発明のいずれかに記載のデータ処理方法を実現するプログラムを記憶したコンピュータが読み取り可能な記憶媒体であることを特徴とする。
【0037】
本発明に係る第14の発明は、第7〜第12の発明のいずれかに記載のデータ処理方法を実現するプログラムであることを特徴とする。
【0038】
本発明に係る第15の発明は、前記コマンド処理部は、CPUを内蔵することを特徴とする。
【0039】
本発明に係る第16の発明は、前記コマンド処理部は、CPUを内蔵しないことを特徴とする。
【0040】
【発明の実施の形態】
〔第1実施形態〕
図1,図2は、本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【0041】
図1,図2において、2000はController Unitで、画像入力デバイスであるScanner2070や画像出力デバイスであるPrinter2095と接続し、一方ではLAN2011や公衆回線(WAN)2051に接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う為のコントローラである。
【0042】
CPU2001はシステム全体を制御するプロセッサである。本実施形態では2つのCPUを用いた例を示す。これら二つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。
【0043】
システムバスブリッジ2007は、バススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、IOバス2127、サブバススイッチ2128、IOバス2129、画像リングインタフェース2147、画像リングインタフェース2148が接続される。
【0044】
サブバススイッチ2128は、第二のバススイッチであり、画像DMA2130、画像DMA2132、フォント伸長部3134、ソート回路2135、ビットマップトレース部2136が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ2007への接続を行う。
【0045】
RAM2002は、CPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAMコントローラ2124により制御される、本実施形態では、ダイレクトRDRAMを採用する例を示す。
【0046】
ROM2003はブートROMであり、システムのブートプログラムが格納されており、ROMコントローラ2125により制御される。
【0047】
画像DMA2130は、画像圧縮部2131に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像圧縮部2131を制御し、RAM2002上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う、本実施形態では、JPEGを圧縮アルゴリズムに採用した例を示す。
【0048】
画像DMA(2)2132は、画像伸長部2133に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像伸長部2133を制御し、RAM2002上にある圧縮データの読み出し、伸長、伸長後データの書き戻しを行う、本実施形態では、JPEGを伸長アルゴリズムに採用した例を示す。
【0049】
フォント伸長部2134は、LANインタフェース2010等を介し外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM2003、もしくは、RAM2002内に格納された、圧縮フォントデータの伸長を行う。本実施形態では、FBEアルゴリズムを採用した例を示した。
【0050】
ソート回路2135は、PDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。ビットマップトレース部2136は、ビットマップデータより、エッジ情報を抽出する。
【0051】
IOバス(1)2127は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインタフェース2138、汎用のシリアルポート2139、インタラプトコントローラ2140、GPIOインタフェース2141が接続される。IOバス1には、バスアービタ(図示せず)が含まれる。
【0052】
操作部I/F2006は操作部(UI2012とインタフェース部で、操作部2012に表示する画像データを操作部2012に対して出力する。また、操作部2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0053】
IOバス2129は内部IOバスの一種であり、汎用バスインタフェース2142と、LANコントローラ2010が接続される。IOバス2129にはバスアービタ(図示せず)が含まれる。
【0054】
汎用バスインタフェース2142は、2つの同一のバスインタフェースから成り、標準IOバスをサポートするバスブリッジである。本実施形態では、PCIバス2143を採用した例を示した。
【0055】
2004はハードディスクドライブ(HDD)で、システムソフトウエア、画像データを格納する。ディスクコントローラ2144を介して一方のPCIバス2143に接続される。
【0056】
LANコントローラ2010は、MAC回路2145、PHY/PMD回路2146を介しLAN2011に接続し、情報の入出力を行う。
【0057】
Modem2050は公衆回線2051に接続し、情報の入出力を行う。画像リングインタフェース2147及び画像リングインタフェース2148は、システムバスブリッジ2007と画像データを高速で転送する画像リング2008を接続し、タイル化後に圧縮されたデータをRAM2002と画像リング処理部2149間で転送するDMAコントローラとして機能する。
【0058】
画像リング2008は、一対の単方向接続経路の組み合わせにより構成される(画像リング1及び画像リング2)。画像リング2008は、タイル画像処理部2149内で、画像リングインタフェース2101及び画像リングインタフェース2102を介し、タイル伸長部2103、コマンド処理部2104、ステータス処理部2105、タイル圧縮部2106に接続される。本実施形態では、タイル伸長部2103を2組、タイル圧縮部を3組実装する例を示した。
【0059】
タイル伸長部2103は、画像リングインタフェースへの接続に加え、タイルバス2107に接続され、画像リングより入力された圧縮後の画像データを伸長し、タイルバス2107へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを伸長アルゴリズムとして採用した例を示す。
【0060】
タイル圧縮部2106は、画像リングインタフェース2102への接続に加え、タイルバス2107に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング2008へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【0061】
コマンド処理部2104は、画像リングインタフェース2102への接続に加え、レジスタ設定バス2109に接続され、画像リングを介して入力したCPU2001より発行されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当ブロックへ書き込む。
【0062】
また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス2109を介して該当レジスタより情報を読み出し。画像リングインタフェース2102に転送する。コマンド処理部2104は、サブCPUを内蔵し、画像メモリ及び画像メモリ2123に格納されたプログラムに従って動作する。
【0063】
ステータス処理部2105は各画像処理部の情報を監視し、CPU2001に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインタフェース2102に出力する。
【0064】
タイルバス2107には上記ブロックに加え、以下の機能ブロック、すなわちレンダリング部インタフェース2110、画像入力インタフェース2112、画像出力インタフェース2113、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116が接続される。
【0065】
レンダリング部インタフェース2110は、後述するレンダリング部により生成されたビットマップイメージを入力するインタフェースである。レンダリング部とレンダリング部インタフェースは、一般的なビデオ信号2111にて接続される。レンダリング部インタフェースは、タイルバス2107に加え、メモリバス2108、レジスタ設定バス2109への接続を有し、入力されたラスタ画像をレジスタ設定バス2109を介して設定された、所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0066】
画像入力インタフェース2112は、後述するスキャナ用画像処理部2114により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バス2109を介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0067】
画像出力インタフェース2113は、タイルバス2107からのタイル画像データを入力とし、ラスタ画像への構造変換、及びクロックレートの変更を行い、ラスタ画像をプリンタ用画像処理部2115へ出力する。
【0068】
画像回転部2030は画像データの回転を行う。解像度変換部2116は画像の解像度の変更を行う。色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行う。2値化部2118は、多値(カラー、グレースケール)画像を2値化する。多値化部2119は2値画像を多値データへ変換する。
【0069】
外部バスインタフェース部2120は、画像リングインタフェース2101,2102,2148コマンド処理部2104、レジスタ設定バス2109を介し、CPU2001により発行された、書き込み、読み出し要求を外部バス2121に変換出力するバスブリッジである。外部バス2121は本実施形態では、プリンタ用画像処理部2115、スキャナ用画像処理部2114に接続されている。
【0070】
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ2123に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリにSDRAMを用いた例を示した。
【0071】
スキャナ用画像処理部2114では、画像入力デバイスであるスキャナ2070、によりスキャンされた画像データを補正画像処理する。
【0072】
プリンタ用画像処理部2115では、プリンタ出力のための補正画像処理を行い、結果をPrinter2095へ出力する。レンダリング部2060はPDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0073】
図3は、本発明に係る画像処理装置を適用可能なネットワークシステム全体の構成を説明する図である。
【0074】
図3において、1000,1001は画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク1010(以下LAN)に流したり、LANから受信した画像をプリンタによりプリントアウトしたりすることができる。また、スキャナから読み込んだ画像をFAX送信手段により、PSTNまたはISDN1030に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトしたりすることができる。1002は、データベースサーバで、画像処理装置1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0075】
1003は、データベースサーバ1002のデータベースクライアントで、データベースサーバ1002に保存されている画像データを閲覧/検索等できる。
【0076】
1004は、電子メールサーバで、本発明の装置1001により読み取った画像を電子メールの添付として受け取ることができる。1005は、電子メールクライアントで、電子メールサーバ1004の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。
【0077】
1006はHTML文書をLANに提供するWWWサーバで、本発明の装置1001によりWWWサーバで提供されるHTML文書をプリントアウトできる。1007はドメインネームシステムサーバ(DNSサーバ)で、ドメイン名とIPアドレスで相互に変換する。
【0078】
1011はルータで、LAN1010をインターネット/イントラネット1012と連結する。インターネット/イントラネットに、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、本発明の装置1001と同様の装置が、それぞれ1021,1022,1023として連結している。一方、本発明の装置1001は、PSTNまたはISDN1030を介して、FAX装置1031と送受信可能になっている。
【0079】
また、LAN上にプリンタ1040も連結されており、本発明の装置1001により読み取った画像をプリントアウト可能なように構成されている。
【0080】
〔タイル画像(パケット)フォーマット〕
本発明によるSystem Controller Unit2000内では、画像データ、CPU2001によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【0081】
本実施形態では、図4に示すデータパケット、図5に示すコマンドパケット、図6に示すインタラプトパケットの3種の異なる種類のパケットが使用される。
【0082】
図4は、本発明に係る画像処理装置におけるデータパケットの一例を説明する図であり、本実施形態では画像 Dataを32pixel×32pixelのTile単位の画像データ3002に分割して取り扱う例を示した。
【0083】
図4において、このTile単位の画像に、必要なヘッダ情報3001及び画像付加情報等3003を付加してデータPacketとする。以下にヘッダ情報3001に含まれる情報について説明を行う。
【0084】
PacketのTypeはヘッダ情報3001内のPcktType3004で区別される。PcktType3004にはリピートフラグが含まれており、Data Packetの画像Dataが1つ前に送信したData Packetの画像Dataと同一の場合、リピートフラグをセットする。
【0085】
ChipID3005はパケットを送信するターゲットとなるチップのIDを示す。DataType3006ではデータのタイプを示す。PageID3007はページを示しており、JobIDはソフトウエアで管理するためのJob
ID3008を格納する。
【0086】
Tileの番号はY方向のTile座標3009とX方向のTile座標3010の組み合わせで、YnXnで表される。
【0087】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では、圧縮アルゴリズムとして、多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合はパックビッツを採用した例を示した。
【0088】
圧縮されている場合と非圧縮の場合との区別はCompressFlag3017で示される。
【0089】
Process Instruction3011は左詰で処理順に設定し、各処理Unitは、処理後Process Instructionを左に8BitShiftする。Process Instruction3011はUnitID3019とMode3020の組が8組格納されている。UnitID3019は各処理Unitを指定し、Mode3020は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitで連続して処理することができる。
【0090】
PacketByteLength3012はパケットのトータルバイト数を示す。ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像付加情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータのパケットの先頭からのOffsetを表している。
【0091】
図5は、本発明における画像処理装置におけるコマンドパケット例を説明する図である。
【0092】
図5において、4001はヘッダで、32バイトで構成され、4002は例えば96バイトで構成されるコマンドである。
【0093】
なお、本パケットは、ヘッダ4001のPacketType4003に設定された様にコマンドパケットであり、Command Typeに設定された様に書き込みコマンドであり、アドレス4011、4013、4015、4017は連続アドレスであり、CmdNum4006にあるとおり、5個のコマンド4012,4014,4016,4018,4020を含んだパケットである。
【0094】
図6は、本発明に係る画像処理装置におけるInterrupt Packet Formatを説明する図である。
【0095】
図6において、本Packet Formatは、画像処理部2149からCPU2001への割り込みを通知するためのものである。ステータス処理部2105はInterrupt Packetを送信すると、次に送信の許可がされるまではInterrupt Packetを送信してはならない。パケットバイトレングス5006は128Byte固定である。
【0096】
パケットデータ部5002には、画像処理部2149の各内部モジュールのステータス情報5007が格納されている。ステータス処理部2105は画像処理部2149内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0097】
ChipID5004にはInterrupt Packetの送信先となるシステム制御部2150を表すIDが、また、IntChipID5005にはInterrupt Packetの送信元となる画像処理部2149を表すIDが格納される。
【0098】
図7は、本発明に係る画像処理装置におけるPacket Tableフォーマットの一例を説明する図であり、各PacketはPacket Table6001によって管理する。
【0099】
図7において、Packet Table6001の構成要素は次の通りで、それぞれTableの値に「0」を5bit付加すると、Packetの先頭Address6002、PacketのByte Length6005となる。
【0100】
Packet Address Pointer(27bit)+5b00000= Packet先頭Address
Packet Length(11bit)+5b00000=PacketのByte Length
Packet Table6001とChain Table6010は分割されないものとする。
【0101】
Packet Table6001は常に走査方向に並んでおり、Yn/Xn=000/000,000/001,000/002,....という順で並んでいる。このPacket Table6001のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【0102】
Packetがひとつ前のPacketとまったく同じDataである場合は、そのPacketはMemory上には書かず、Packet TableのEntryに1つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。1つのPacket Dataを2つのTable Entryが指すようなかたちになる。この場合、2つめのTable EntryのRepeat Flag6003がSetされる。
【0103】
PacketがChain DMAにより複数に分断された場合は、Divide Flag6004をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号6006をSetする。
【0104】
Chain Table6010のEntryはChain Block Address6011とChain Block Length6012からなっており、Tableの最後のEntryにはAddress、Length共に0を格納しておく。
【0105】
図8は、本発明に係る画像処理装置における第1のパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向であり、4ビートバーストアクセスとシングルアクセスを各1回行っている例である。
【0106】
図8において、横矢印は、時間の流れを示す方向であり、横に長いほうが処理に時間がかかる。3−1はバスのデータ転送開始をバスマスタとバススレーブとで確認しあうための第1のネゴシエーション期間であり、3−2は第1のデータ転送期間であり、3−3は第2のデータ転送期間であり、3−4は第3のデータ転送期間であり、3−5は第4のデータ転送期間であり、3−6は第2のネゴシエーション期間であり、3−7は第5のデータ転送期間である。
【0107】
図9は、本発明に係る画像処理装置における第1のパケット処理手順の一例を示すフローチャートであり、コマンド処理部の4ビートバーストバスアクセスとシングルバスアクセスを選択的に行うための回路の動作手順に対応する。なお、(1−1)〜(1−17)は各ステップを示し、各ステップは、画像処理装置内のプロセッサ2001がRAM2002またはROM2003上にプログラムをロードしてパケットを処理する手順に対応する。
【0108】
まず、ステップ(1−1)で、処理が開始されると、ステップ(1−2)で、着目コマンドポインタnに初期値「1」を代入する処理を行う。そして、ステップ(1−3)で、着目コマンドポインタnとパケット中のコマンド数CmdNumを比較し、n>CmdNum、つまり、コマンド処理が全て終了した場合はNの矢印に進み、そうでない場合はYの矢印に進む条件分岐し、ステップ(1−4)で、着目コマンドポインタnとパケット中のコマンド数CmdNum−4を比較し、n>CmdNum−4、つまり、未処理コマンド数が4個以上の場合は、Nの矢印に進み、そうでない場合はYの矢印に進む条件分岐する。
【0109】
そして、ステップ(1−5)で、n番目のコマンドのアドレスに「1」を加えたアドレスと、n+1番目のコマンドのアドレスが等しいかどうかを評価し、該評価が成り立つと判断した場合は、Yの矢印に進み、該評価が成り立たない場合はNの矢印に進む条件分岐する。
【0110】
そして、ステップ(1−6)で、n+1番目のコマンドのアドレスに「1」を加えたものと、n+2番目のコマンドのアドレスが等しいかどうか評価し、該評価が成り立つと判断した場合は、Yの矢印に進み、該評価が成り立たないと判断した場合は、Nの矢印に進む条件分岐する。
【0111】
そして、ステップ(1−7)で、n+2番目のコマンドのアドレスに「1」を加えたものと、n+3番目のコマンドのアドレスが等しいかどうかを評価し、評価が成り立つと判断した場合は、Yの矢印に進み、該評価が成り立たないと判断した場合は、Nの矢印に進む条件分岐する。
【0112】
そして、ステップ(1−8)〜(1−12)は、4ビートバーストバスアクセス処理であり、ステップ(1−8)で、n番目〜n+3番目のコマンドの為のネゴシエーション処理を行い、ステップ(1−9)で、n番目のコマンドをデータ転送する1ビート目のバーストバスアクセスを実行する。
【0113】
そして、ステップ(1−10)で、n+1番目のコマンドのデータ転送する2ビート目のバーストバスアクセスを行い、ステップ(1−11)で、n+2番目のコマンドをデータ転送する3ビート目のバーストバスアクセスを実行して、ステップ(1−12)で、n+3番目のコマンドをデータ転送する4ビート目のバーストバスアクセスを実行する。
【0114】
そして、ステップ(1−13)で、着目コマンドポインタnを4増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を実行して、ステップ(1−3)へ戻る。
【0115】
一方、ステップ(1−4)〜(1−7)の各分岐処理において、それぞれNOと判断された場合は、ステップ(1−14),(1−15)に処理を移して、n番目のコマンドを実行するシングルバスアクセスを実行する。
【0116】
具体的には、ステップ(1−14)で、n番目のコマンドの為のネゴシエーション処理を行い、ステップ(1−15)で、n番目のコマンドをデータ転送するシングルバスアクセスを実行する。
【0117】
そして、ステップ(1−16)で、着目コマンドポインタnを「1」増加し、着目コマンドポインタを次の未処理コマンドに更新して、ステップ(1−3)へ戻り、ステップ(1−3)で、YESが成立すると判断された場合は、本処理を終了する。
【0118】
これにより、例えば図8に示したコマンドパケット例をコマンド処理部の4ビートバーストバスアクセスとシングルバスアクセスを選択的に行うと、ステップ(1−1)で、コマンド処理部2104が処理を開始して、ステップ(1−2)で着目コマンドポインタnに「1」が代入され、図5に示したアドレス4011とデータ4012からなる1番目のコマンドが着目される。
【0119】
そして、ステップ(1−3)に示す条件が偽(N)であると判断され、ステップ(1−4)の方に進む。ここで、ステップ(1−4)においても条件が偽(N)であると判断されるので、ステップ(1−5)の方に進む。
【0120】
そして、ステップ(1−5)〜(1−7)は、着目コマンドを含んだ4つのコマンドが連続アドレスかどうか評価している条件分岐であり、図5に示したパケットのアドレス4011、4013、4015、4017は連続アドレスであるので、ステップ(1−8)に進む。
【0121】
そして、ステップ(1−8)〜(1−12)は、4ビートバーストバスアクセスであり、図9に示したステップ(1−8)で、図8に示した第1のネゴシエーション期間3−1でネゴシエーションを行い、図9に示したステップ(1−9),(1−10),(1−11),(1−12)は、それぞれ図8に示した第1のデータ転送期間3−2,第2のデータ転送期間3−3,第3のデータ転送期間3−4,第4のデータ転送期間3−5に相当し、コマンドのデータ転送を4回行い、ステップ(1−13)に進む。
【0122】
ステップ(1−8)〜(1−12)で4つのコマンドを処理したので、ステップ(1−13)で着目コマンドポインタを4つ増加し、着目コマンドポインタは図5に示したアドレス4019とデータ4020からなる5つ目のコマンドを指し、ステップ(1−3)に戻る。
【0123】
ここで、本実施形態では、n=5,CmdNum=5であるので、ステップ(1−3)の条件は偽であり、ステップ(1−4)に進むが、残りのコマンド数は4個未満であるため、ステップ(1−4)の条件は真(Y)となり、ステップ(1−14)に進む。
【0124】
図9に示すステップ(1−14)は、図8に示したの第2のネゴシエーション期間3−6に相当するバスにシングルアクセスのためのネゴシエーションであり、次のステップ(1−15)、つまり図8に示した第5のデータ転送期間3−7でデータを転送する。
【0125】
そして、ステップ(1−16)で、着目コマンドポインタを1つ増加し、ステップ(1−3)に戻る。ここで、n=6,CmdNum=5である為、ステップ(1−3)は真と判定され、ステップ(1−15)に進み、処理を終了する。
【0126】
なお、上記実施形態では、図9の説明の為、逐次処理で説明したが、実際にバスにアクセスしている処理、図9に示したステップ(1−8),(1−9),(1−10),(1−11),(1−12),(1−14),(1−15)は、残りの処理、図9に示したステップ(1−2),(1−3),(1−4),(1−5),(1−6),(1−7),(1−13),(1−16)と並列に動くので、ステップ(1−2),(1−3),(1−4),(1−5),(1−6),(1−7),(1−13),(1−16)の処理が多少複雑になったとしても、実際のバスアクセスが遅くなることはない。
【0127】
図17に示す従来のシングルアクセスのみ行った場合における処理と、第1実施形態に示した4ビートバーストアクセス(図9参照)を行った場合を比較してみると、バーストアクセスは、ネゴシエーションを毎回行わないため、無駄なネゴシエーション期間とギャップが入らず、バスアクセスに時間がかからず、高速なコマンド処理を行うことが出来る。
【0128】
ここで説明の為、データバス幅は1バイトとしてきたが、データバス幅は必ずしも1バイトである必要はなく、例えば、データバス幅を4バイトとしたときは、コマンドのアドレス4011,4013,4015,4017,4019,4021,4023,4025,4027,4029,...のうち連続したいずれか4つが、バースト可能なアドレスつまり、4バイトバウンダリのアドレスで、その4つのアドレスのそれぞれの増分が4であれば良い。つまり任意のバス幅としても全く同様の効果が得られる。
【0129】
また、説明のために、コマンド中のアドレスbit幅を32bitとして説明してきたがそれに限定されるものでなく、任意のbit幅であっても本発明の目的を果たすことが出来る。
【0130】
また、ここでバースト回数は、4ビートで説明してきたが、4ビートに限定するものではなく、バースト回数に応じた条件分岐(図9のステップ(1−5),(1−6),(1−7)と、バスアクセス(図9に示したステップ(1−9),(1−10),(1−11),(1−12))の回数と、ステップ(1−13)の着目コマンドポインタの加算数をバースト数に合わせて増減すればよい。
【0131】
以上説明した第1実施形態は、シングルアクセスと4ビートアクセスを選択的に行う構成で説明してきたが、入力コマンド数をバースト回数で割り切れる個数に限定するならば、バーストのみ行う構成であってもよい。
【0132】
また、バースト数も1通りでなく、例えば、シングル、2ビート、4ビート、8ビートのように入力されたコマンドに応じて複数のバースト回数を選択する構成でも、本発明の目的を果たせることは言うまでもない。
【0133】
以上、説明したように、第1実施形態による画像処理装置によれば、バス幅のバウンダリに合った連続アドレスのコマンドが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理が可能である。
【0134】
〔第2実施形態〕
なお、第1実施形態において、連続アドレスでないコマンドが入力された場合、バースト転送処理できないという問題が発生する。
【0135】
そこで、コマンドをバスごとに処理することで、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合にも、バーストアクセスが可能な、高速なコマンド処理を実現するように構成してもよい。
【0136】
具体的には、コマンドのアドレスが0x0000_0000〜0x7fff_ffffの場合、第1のバスへのアクセスコマンド、コマンドのアドレスが0x8000_0000〜0xffff_ffffの場合、第2のバスへのアクセスコマンドする。
【0137】
図10は、本発明の第2実施形態を示す画像処理装置におけるパケット例を説明する図である。
【0138】
図10において、4001はヘッダで、32バイトで構成され、4002は例えば96バイトで構成されるコマンドである。
【0139】
なお、本パケットは、ヘッダ4001のPacketType4003に設定された様にコマンドパケットであり、Command Typeに設定された様に書き込みコマンドであり、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合のコマンドパケット例であり、図5に示したコマンドパケットの3番目のコマンド4015,4016に他のバスへのアクセスを挿入し、図5に示した3番目に書かれていたコマンド4015,4016を4番目のコマンド4017,4018の位置に移動し、図5で4番目に書かれていたコマンド4017,4018を5番目のコマンド4019,4020の位置に移動したものであり、一見コマンドのアドレスが連続でない為、第1実施形態で説明した構成では、図10に示すパケットの例では、バースト転送できず、すべてシングル転送を行うことになり、バスアクセス時間を短縮することができず、コマンド処理が低速になる。
【0140】
そこで、図11に示すフローチャートの手順に従い、図10に示す連続アドレスでないパケットを処理する場合について詳述する。
【0141】
図11は、本発明に係る画像処理装置における第2のパケット処理手順の一例を示すフローチャートであり、コマンド処理部の4ビートバーストバスアクセスとシングルバスアクセスを選択的に行うための回路の動作手順に対応する。なお、(6−1)〜(6−26)は各ステップを示し、各ステップは、画像処理装置内のプロセッサ2001がコマンド処理部2104上にプログラムをロードしてパケットを処理する手順に対応する。
【0142】
まず、ステップ(6−1)で、処理が開始されると、ステップ(6−2)で、着目コマンドポインタnに初期値「1」を代入する処理を行う。
【0143】
そして、ステップ(6−3)で、着目コマンドポインタnとパケット中のコマンド数CmdNumを比較し、n>CmdNum、つまり、コマンド処理が全て終了していると判断した場合は、Nの矢印に進み、そうでないと判断した場合はYの矢印に進む条件分岐を行う。
【0144】
そして、ステップ(6−4)で、着目コマンドポインタnとパケット中のコマンド数CmdNum−4を比較し、n>CmdNum−4、つまり、未処理コマンド数が4個以上であるかどうかを判断して、未処理コマンド数が4個以上であると判断した場合はNの矢印に進み、そうでないと判断した場合はYの矢印に進む条件分岐を行う。
【0145】
次に、ステップ(6−5)で、あるバスの連続アドレスをカウントする為のインデックスiと、あるバスの連続アドレスを含んだコマンドを記憶する為のバッファ(TempCmdBuf)のポインタjにゼロを代入する処理を行う。
【0146】
そして、ステップ(6−6)で、(n+i)番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、(n+i)番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合は、Yの矢印に進み、そうでないと判断した場合は、Nの矢印に進み、ステップ(6−7)で、バーストアクセスする際に参照するためのバースト回数分の一時的なコマンドバッファTmpCmd(0〜4)の0番目に(n+i)番目のコマンドをコピーする処理を行う。
【0147】
そして、ステップ(6−8)で、注目コマンドポインタインデックスiを「1」増加する処理を行い、ステップ(6−9)で、n+iで示される注目コマンドポインタがコマンド数を超えてないか(n+i>CmdNumが成り立つか)どうかを判断して、n+i>CmdNumが成り立つときYの矢印に進み、そうでないと判断した場合はNの矢印に進む。
【0148】
そして、ステップ(6−10)で、ステップ(6−6)と同様に、(n+i)番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、(n+i)番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合はYの矢印に進み、そうでないと判断した場合Nの矢印に進む。
【0149】
そして、ステップ(6−11)で、j番目の一時的なコマンドバッファTmpCmd(j)に書かれたコマンドのアドレスと、(n+i)番目のコマンドに書かれたアドレスに「1」加えたものが等しいかどうか評価して、等しいと評価した場合はYの矢印に進み、そうでないと評価した場合はNの矢印に進む。
【0150】
そして、ステップ(6−12)で、一時的なコマンドバッファTmpCmd(0〜4)のj+1番目に(n+i)番目のコマンドをコピーする処理とjを「1」増加する処理を行う。次に、ステップ(6−13)で、jが4と等しいことを評価して、等しいと評価した場合はYの矢印に進み、そうでないと評価した場合はNの矢印に進む。
【0151】
そして、ステップ(6−14)〜ステップ(6−18)で、4ビートバーストアクセス処理を行う。
【0152】
具体的には、ステップ(6−14)で、一時的なコマンドバッファTmpCmd(0〜4)に書かれたコマンドの為のネゴシエーション処理を行い、ステップ(6−15)で、一時的なコマンドバッファTmpCmdのインデックス0のコマンドをデータ転送する1ビート目のバーストバスアクセスを行い、ステップ(6−16)で、一時的なコマンドバッファTmpCmdのインデックス1のコマンドのデータ転送する2ビート目のバーストバスアクセスを行い、ステップ(6−17)で、一時的なコマンドバッファTmpCmdのインデックス2のコマンドをデータ転送する3ビート目のバーストバスアクセスを行い、ステップ(6−18)で、一時的なコマンドバッファTmpCmdのインデックス3のコマンドをデータ転送する4ビート目のバーストバスアクセスを行う。
【0153】
そして、ステップ(6−19)で、着目コマンドポインタnをi増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を行い、ステップ(6−20)で、ステップ(6−8)と同様に、注目コマンドポインタインデックスiを1増加する処理を行う。
【0154】
次に、ステップ(6−21)で、n+iで示される注目コマンドポインタがコマンド数を超えてないか(n+i>CmdNumが成り立つか否か)を判断して、n+i>CmdNumが成り立つと判断した場合にYの矢印に進み、そうでないと判断した場合はNの矢印に進む。
【0155】
そして、ステップ(6−22)で、n番目のコマンドに書かれたアドレスと、目的のバスへ割り当てられたアドレス範囲を比較し、目的のバスへアクセスするコマンドかどうかを判断して、n番目のコマンドが注目しているバスへアクセスするコマンドであると判断した場合はYの矢印に進み、そうでないと判断した場合Nの矢印に進む。
【0156】
そして、ステップ(6−23),(6−24)では、n番目のコマンドを実行するシングルバスアクセスを行う。
【0157】
具体的には、ステップ(6−23)で、n番目のコマンドの為のネゴシエーション処理を行い、ステップ(6−24)で、n番目のコマンドをデータ転送するシングルバスアクセスのデータ転送処理を行い、ステップ(6−25)では、着目コマンドポインタnを「1」増加し、着目コマンドポインタを次の未処理コマンドに更新するための処理を行い、ステップ(6−26)で、本処理を終了する。
【0158】
なお、上記図11に示したパケット処理では、ある1つのバスの動作を表したものであり、複数のバスを持つシステムでは、同図と同様なものを複数個数置けばよい。ただし、コマンド中のアドレスによって、どのバスにアクセスするかを選択するため、図11に示したステップ(6−6),ステップ(6−10),ステップ(6−22)はバスに応じて変更する必要がある。
【0159】
そして、図11で説明したフローチャートの回路を複数置いた場合、それぞれが、逐次動作する場合と、並列動作する場合が考えられる。
【0160】
以下、逐次動作の場合を例に挙げて、図10に示したコマンドパケットが入力された場合の、図11の動作例を説明する。第1のバスに最適化された図11に示す処理は、次のようになる。
【0161】
図11に示したステップ(6−1)から回路の動作を開始し、ステップ(6−2)で着目コマンドポインタnが「1」になる。つまり、着目コマンドは、図10に示したコマンド4011、4012である。CmdNumは「5」であるので、ステップ(6−3),ステップ(6−4)はともにNに進み、ステップ(6−5)で、i=0,j=0となる。ステップ(6−6)で、図10に示した第1のコマンドのアドレス4011の値「0x1234_5678」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、ステップ(6−6)で、Yに進み、ステップ(6−7)で一時的なコマンドバッファTmpCmdのインデックス0に図10に示したコマンド4011、4012をコピーし、ステップ(6−8)で着目コマンドポインタインデックスiに1加え、i=1とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=2番目のコマンドのアドレス、つまり図10に示したアドレス4013の値「0x1234_5679」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、Yに進み、ステップ(6−11)で、一時的なコマンドバッファTmpCmdのインデックス0に格納されたコマンドのアドレス、つまり図10に示したアドレス4011に「1」加えたものと、(n+i)=2番目のコマンドのアドレス、つまり図10に示したアドレス4013が等しいので、Yに進み、ステップ(6−12)で一時的なコマンドバッファTmpCmdのインデックス(j+1)=1に(n+i)=2番目のコマンド図4に示したコマンド4013、4014をコピーし、jに「1」加え、j=1とする。
【0162】
そして、ステップ(6−13)でNに進み、ステップ(6−8)で着目コマンドポインタインデックスiに「1」加え、i=2とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=3番目のコマンドのアドレス、つまり図10に示したアドレス4015の値「0x89ab_cde0」が「0x0000_0000〜0x7fff_ffff」の範囲にないので、Nに進み、ステップ(6−8)で着目コマンドポインタインデックスiに「1」加え、i=3とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=4番目のコマンドのアドレス、つまり図10に示したアドレス4017の値「0x1234_567a」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、Yに進む。
【0163】
そして、ステップ(6−11)で、一時的なコマンドバッファTmpCmdのインデックス1に格納されたコマンドのアドレス、つまり図10に示したアドレス4013に「1」加えたものと、(n+i)=4番目のコマンドのアドレス、つまり図10に示したアドレス4017が等しいので、Yに進み、ステップ(6−12)で一時的なコマンドバッファTmpCmdのインデックス(j+1)=2に(n+i)=4番目のコマンド、図10に示したコマンド4017、4018をコピーし、jに「1」加え、j=2とし、ステップ(6−13)でNに進み、ステップ(6−8)で着目コマンドポインタインデックスiに「1」加え、i=4とし、ステップ(6−9)はNに進み、ステップ(6−10)で(n+i)=5番目のコマンドのアドレス、つまり図10に示したアドレス4019の値「0x1234_567b」が「0x0000_0000〜0x7fff_ffff」の範囲にあるので、Yに進み、ステップ(6−11)で、一時的なコマンドバッファTmpCmdのインデックス2に格納されたコマンドのアドレス、つまり図10に示したアドレス4017に「1」加えたものと、(n+i)=5番目のコマンドのアドレス、つまり図10に示したコマンド4019のアドレス部が等しいので、Yに進み、ステップ(6−12)で一時的なコマンドバッファTmpCmdのインデックス(j+1)=3に(n+i)=5番目のコマンド、図10に示したコマンド4019、4020をコピーし、jに「1」加え、j=3とし、ステップ(6−13)でYに進み、ステップ(6−14)〜ステップ(6−18)の4ビートバスアクセスを行う。
【0164】
図12,図13は、本発明に係る画像処理装置における第2のパケット転送処理状態を説明するタイミングチャートであり、パケットを画像転送した時の処理と時間の関係を示した状態に対応する。なお、横矢印は、時間の流れを示す方向である。また、図12に示す例は、逐次動作した場合の例であり、図13に示す例は、並列動作した場合の例である。
【0165】
図12に示すように、つまり逐次動作した場合は、あるバスへの4ビートバーストアクセス(ステップ(6−1)〜(6−5))が終了してから、他のバスにシングルアクセス(ステップ(6−6),ステップ(6−7))を行っている。
【0166】
一方、図13に示すように、つまり並行動作した場合は、あるバスへの4ビートバーストアクセス(ステップ(6−8)〜ステップ(6−12)と並列に他のバスにシングルアクセス(ステップ(6−13),ステップ(6−14))を行っている。
【0167】
図12に示す逐次動作と、図13に示す並行動作とを比べると、図13に示す並行動作の方がトータルバスアクセス時間が短くより好ましいが、どちらの場合でも、図16で説明した従来例の場合よりも高速化が可能であり、本発明の目的を果たせる。
【0168】
以上説明したように、第2実施形態によれば、コマンドをバスごとに処理することで、連続アドレスのコマンドの途中に他のバスへのコマンドが挿入された場合にも、バスにバーストアクセスが可能となり、バスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【0169】
なお、上記第2実施形態では、説明上、バスは2種類であると説明してきたが、バスの種類は限定されるものではなく、複数のバスの種類があればよい。
【0170】
また、説明のためにアドレス範囲を第1のバスへのアクセスコマンドは、コマンドのアドレスが「0x0000_0000〜0x7fff_ffff」、第2のバスへのアクセスコマンドは、コマンドのアドレスが「0x8000_0000〜0xffff_ffff」としてきたが、それに限定されるものではなく、任意のアドレス範囲にバスを割り当ててよい。
【0171】
以下、図14に示すメモリマップを参照して本発明に係る画像処理装置で読み出し可能なデータ処理プログラムの構成について説明する。
【0172】
図14は、本発明に係る画像処理装置で読み出し可能な各種データ処理プログラム、および画像処理部2149に含まれる、2値化部2118、解像度変換部2116、画像入力インタフェース2112、画像出力インタフェース2113、レンダリング部インタフェース2110で処理される際の画像データを格納する記憶媒体のメモリマップを説明する図である。画像処理部2149によって意図した通りの画像処理がなされているかを確認するために、画像メモリ2123に格納された画像データを本発明に係るコマンド処理部で読み取り、ハードウェア、およびソフトウエアのデバッグを行う。
【0173】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0174】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0175】
本実施形態における図9,図11に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0176】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0177】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0178】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROM,EEPROM等を用いることができる。
【0179】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0180】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0181】
また、前述した実施形態の機能は、ソフトウエアで実現するとして説明してきたが、コマンド処理部は、本発明のフローチャートに従って動作するCPUを内蔵しないロジック回路でも実現できる。
【0182】
【発明の効果】
以上説明したように、本発明によれば、画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断して、該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送することにより、バス幅のバウンダリに合った連続アドレスのコマンドがセットされたパケットが入力された場合は、バスにバーストアクセスすることでバスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【0183】
また、コマンドをバスごとに並列処理することで、バス幅のバウンダリに合った連続アドレスのコマンドの間に他のバスへのコマンドが挿入されていた場合でも、バスにバーストアクセスが可能となり、バスアクセス時間を短縮し、高速なコマンド処理が可能となる。
【0184】
従って、タイル単位の画像データをパケット転送処理する際に連続アドレスでコマンドが格納された場合に、1回のニゴシエーションフェーズで所定数連続するコマンドを一括して処理して、タイル単位の画像データに対する処理効率を格段に向上させることができる画像処理環境を整備できる優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【図2】本発明を適用可能な画像システムを構成するコア部の内部構成を示す画像処理回路の全体構成図である。
【図3】本発明に係る画像処理装置を適用可能なネットワークシステム全体の構成を説明する図である。
【図4】本発明に係る画像処理装置におけるデータパケットの一例を説明する図である。
【図5】本発明における画像処理装置におけるコマンドパケット例を説明する図である。
【図6】本発明に係る画像処理装置におけるInterrupt Packet Formatを説明する図である。
【図7】本発明に係る画像処理装置におけるPacket Tableフォーマットの一例を説明する図である。
【図8】本発明に係る画像処理装置における第1のパケット転送処理状態を説明するタイミングチャートである。
【図9】本発明に係る画像処理装置における第1のパケット処理手順の一例を示すフローチャートである。
【図10】本発明の第2実施形態を示す画像処理装置におけるパケット例を説明する図である。
【図11】本発明に係る画像処理装置における第2のパケット処理手順の一例を示すフローチャートである。
【図12】本発明に係る画像処理装置における第2のパケット転送処理状態を説明するタイミングチャートである。
【図13】本発明に係る画像処理装置における第2のパケット転送処理状態を説明するタイミングチャートである。
【図14】本発明に係る画像処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図15】従来の画像処理装置におけるコマンドパケット例を説明する図である。
【図16】従来の画像処理装置におけるパケット転送処理状態を説明するタイミングチャートである。
【図17】従来の画像処理装置におけるコマンド処理部のシングルバスアクセスを行うための回路の動作を説明するフローチャートである。
【符号の説明】
2001 CPU
2007 システムバスブリッジ
2104 コマンド処理部
2107 タイルバス
2108 メモリバス
Claims (16)
- 画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置において、
前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断手段と、
前記判断手段により該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送制御手段と、
を有することを特徴とする画像処理装置。 - 前記コマンド処理部は、複数のバスに接続されることを特徴とする請求項1記載の画像処理装置。
- 前記判断手段は、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする請求項1記載の画像処理装置。
- 前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする請求項1記載の画像処理装置。
- 前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする請求項1記載の画像処理装置。
- 前記転送制御手段は、前記判断手段によりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする請求項1記載の画像処理装置。
- 画像データを桝目状に分割して処理する複数の画像処理回路ブロックとコマンド処理部を持ち、パケット化された形式で該画像処理ユニットに情報を受け渡し処理する画像処理装置のデータ処理方法であって、
前記パケット中の前記画像処理ユニットに与えるための情報が格納されたアドレス部とデータ部とからなるコマンドを解析して、該アドレス部に連続アドレスが書かれているか否かを判断する判断ステップと、
前記判断ステップにより該アドレス部に連続アドレスが書かれていると判断した場合、前記画像処理ユニットとコマンド処理部とが接続されたバス上にデータをバースト転送する転送ステップと、
を有することを特徴とする画像処理装置のデータ処理方法。 - 前記コマンド処理部は、複数のバスに接続されることを特徴とする請求項7記載の画像処理装置のデータ処理方法。
- 前記判断ステップは、前記パケットのアドレス部によって、該複数のバスを判断することを特徴とする請求項7記載の画像処理装置のデータ処理方法。
- 前記転送ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスにデータをバースト転送することを特徴とする請求項7記載の画像処理装置のデータ処理方法。
- 前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを逐次バースト転送することを特徴とする請求項7記載の画像処理装置のデータ処理方法。
- 前記転送制御ステップは、前記判断ステップによりバス毎にコマンドが連続アドレスであると判断した場合、各バスのデータを並列にバースト転送することを特徴とする請求項7記載の画像処理装置のデータ処理方法。
- 請求項7〜12のいずれかに記載のデータ処理方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
- 請求項7〜12のいずれかに記載のデータ処理方法を実現することを特徴とするプログラム。
- 前記コマンド処理部は、CPUを内蔵することを特徴とする請求項1記載の画像処理装置。
- 前記コマンド処理部は、CPUを内蔵しないことを特徴とする請求項1記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002235367A JP2004078376A (ja) | 2002-08-13 | 2002-08-13 | 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002235367A JP2004078376A (ja) | 2002-08-13 | 2002-08-13 | 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004078376A true JP2004078376A (ja) | 2004-03-11 |
Family
ID=32019869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002235367A Pending JP2004078376A (ja) | 2002-08-13 | 2002-08-13 | 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004078376A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5330409B2 (ja) * | 2008-11-28 | 2013-10-30 | パナソニック株式会社 | メモリ制御装置、データプロセッサ及びデータ読み出し方法 |
JP2016045704A (ja) * | 2014-08-22 | 2016-04-04 | ルネサスエレクトロニクス株式会社 | 半導体装置、メモリアクセス制御方法、及び半導体装置システム |
-
2002
- 2002-08-13 JP JP2002235367A patent/JP2004078376A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5330409B2 (ja) * | 2008-11-28 | 2013-10-30 | パナソニック株式会社 | メモリ制御装置、データプロセッサ及びデータ読み出し方法 |
JP2016045704A (ja) * | 2014-08-22 | 2016-04-04 | ルネサスエレクトロニクス株式会社 | 半導体装置、メモリアクセス制御方法、及び半導体装置システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4065503B2 (ja) | 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法 | |
JP3862605B2 (ja) | 画像処理装置 | |
JP4928497B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体 | |
JP2004078376A (ja) | 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム | |
JP2003316714A (ja) | 情報処理装置及び方法 | |
JP4065550B2 (ja) | 画像入出力制御装置、画像処理装置、画像入出力制御装置における画像処理方法、及び画像処理装置における画像処理方法 | |
JP2002203236A (ja) | 画像処理装置および画像処理装置の制御方法および記憶媒体 | |
JP2004040637A (ja) | パケット通信装置及びパケット通信制御方法 | |
KR100570786B1 (ko) | 복합기기의 제어기 | |
KR100591243B1 (ko) | 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 | |
JP2001238019A (ja) | データ転送方法とデータ転送制御装置と画像処理装置及び画像形成装置 | |
JP2002354225A (ja) | 画像処理装置及びその制御方法 | |
JP2018118477A (ja) | 画像処理装置とその制御方法、及びプログラム | |
JP2004253906A (ja) | 伸長装置 | |
JP2003348338A (ja) | 情報処理装置 | |
JP3703431B2 (ja) | データ通信装置、画像処理装置、データ通信方法、及び画像処理装置におけるデータ通信方法 | |
JP2004343202A (ja) | 画像処理装置 | |
JP2002281293A (ja) | 画像処理装置および画像処理システム | |
JP2005159394A (ja) | 画像入出力制御装置およびデータ転送処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体 | |
JP2005078591A (ja) | 画像処理システム及びその画像処理方法 | |
JP2003196044A (ja) | 画像処理方法及びその装置 | |
JP2005006000A (ja) | 画像処理システム | |
JP2005086565A (ja) | 画像処理装置、画像処理方法、その記録媒体およびプログラム | |
JP2003304381A (ja) | 情報処理装置及びデータ転送方法 | |
JP2003241933A (ja) | 画像処理装置及びその制御方法 |