(57)【要約】【課題】  紙間を必要以上に空けることなく、又他の画像処理ブロックの状態に左右されずにレジスタアクセスを行なうことができる、画像処理装置を提供する。【解決手段】  画像処理チップ内の各画像処理ブロック内のレジスタへのアクセス時にCPUから送信されるコマンドパケットを該画像処理チップ内及び画像処理ブロック内でコマンドバス乃至データバスのどちらを使用して転送するかを自動的に切り替える構成とする。【選択図】  図１
2007243444.tif 000002
【特許請求の範囲】
【請求項１】
画像処理を行なう画像処理装置において、画像データを転送し画像処理部に接続されるデータバスと、上記画像処理部への動作設定を行なうレジスタ部に接続されるコマンドバスと、上記画像処理装置の外部からデータの入出力を行なうデータI/F部と、
上記データI/F部に接続され、全ての入力データを上記データバスもしくはコマンドバスのいずれかに選択的に転送するためのデータ振り分け部と、
上記画像バス及びコマンドバスに接続される少なくとも1つ以上の画像処理部とを有し、
上記画像データ内部の情報に従って、該画像データを上記データバスもしくは上記コマンドバスのいずれかに自動的に転送することを特徴とする画像処理装置。
【請求項２】
請求項1に記載の画像処理装置において、画像データは桝目状に分割して処理されることを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、画像データは、上記画像処理部にて画像処理を施されるデータパケットと、上記画像処理部の動作設定を行なうために用いられるコマンドパケットに分類されることを特徴とする画像処理装置。
【請求項４】
請求項1に記載の画像処理装置において、上記画像データ内部の情報とは上記パケットデータ内に包含されるパケットヘッダであることを特徴とする画像処理装置。
【請求項５】
請求項4に記載の画像処理装置において、パケットヘッダは少なくとも複数の画像処理部のうちどの画像処理部にて処理を行なうかを指定する情報と、そのパケットがデータパケットなのかコマンドパケットなのかを示す情報と、そのパケットがコマンドバスかデータバスのいずれかを転送されるかを指定する情報とを有することを特徴とする画像処理装置。
【請求項６】
請求項1に記載の画像処理装置において、上記画像処理部はデータバス経由で受信したコマンドパケットを内部レジスタ部に振り分けることが可能であることを特徴とする画像処理装置。
【請求項７】
請求項1に記載の画像処理装置において、上記画像処理部は、データバス経由で該画像処理部に関係の無いパケットを受信した場合にそのまま出力することを特徴とする画像処理装置。
【請求項８】
請求項1に記載の画像処理装置において、上記画像処理部は、データバス経由で該画像処理部に関係のあるデータパケットを受信した場合に、内部画像処理ブロックに転送することを特徴とする画像処理装置。
【請求項９】
請求項１に記載の画像処理装置において、上記画像処理部はコマンドパケット経由で受信したコマンドデータを内部レジスタ部に振り分けることが可能であることを特徴とする画像処理装置。
【請求項１０】
請求項1に記載の画像処理装置において、上記画像処理部内のレジスタ部は、上記データバス経由で受信したコマンドデータを用いてアクセスされる第1のレジスタ部と、上記コマンドバス経由で  受信したコマンドデータを用いてアクセスされる第2のレジスタ部とに分割されていることを特徴とする画像処理装置。
【請求項１１】
請求項1に記載の画像処理装置において、上記画像処理部内にてコマンドデータと画像データの順番が入れ替わらないよう、画像データ処理中に受信したコマンドデータの転送を前記画像データ処理転送完了まで待機することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
デジタル画像データを入力し画像処理を行なう画像処理用LSIの構成に関する。
【背景技術】
【０００２】
従来の画像処理用LSIでは内部各画像処理モジュールへのレジスタ設定を行なう場合、処理を完了するのを待って行っていた。例えばあるページの処理が終了してから次のページ用のレジスタ設定を行い、全てのレジスタ設定が完了した後に次のページの処理を開始している。これは、該当の画像処理モジュールが処理を完了する前にレジスタ設定を変更してしまうと、例えば同一ページ内で、レジスタ設定前後の画像品質が異なってしまうためである。
【０００３】
又、別の従来例としては、特許文献１をあげることが出来る。
【特許文献１】特開２００４−２５３９０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の技術では、レジスタ設定をする回数が多い場合にレジスタ設定に要する時間が長くなり、結果としてページとページの間の間隔・時間が空いてしまうことになる。これによって、この画像処理LSIを使用した機器のパフォーマンスが低下することになってしまう。
【０００５】
また、この問題を解決するために、特許文献１においてデータバス上にコマンドパケットを転送することができる構成の画像処理装置が提案されているが、この文献の場合、レジスタアクセスのための全コマンドパケットをデータパケットの間に挿入して転送する系であっため、複数の画像処理モジュールが直列に接続して画像処理列を形成している場合に、1つの画像処理部での処理に時間が掛かっていると、他の画像処理部へのレジスタアクセスが滞ってしまうという問題が挙げられる。
【０００６】
さらに、実質的にはこの文献ではレジスタへのリードアクセスが不可能であるという問題点も残っていた。
【０００７】
本発明では、上記の問題点を解決するために、以下のような構成を用意する。
【課題を解決するための手段】
【０００８】
主に画像データを転送するためのデータバスと、コマンドデータを転送するためのコマンドバスと、上記データバス及び上記コマンドバスに接続され転送された画像データにそれぞれの画像処理を施す少なくとも1つの画像処理モジュールと、上記画像処理ブロックの上流にコマンドデータと画像データをコマンドバスもしくはデータバスに振り分けて転送する振り分けモジュールと、外部とのデータの入出力を行なう入出力I/F部とを有する
画像処理装置において、
上記画像データは所定サイズの矩形に分割されたデータパケットとして、又上記子万F度データは所定サイズのデータ長に区切られたコマンドパケットとしてそれぞれ転送され、
上記パケット単位で処理が行われ、
上記パケット内に包含されるパケットヘッダ情報内の所定の情報を元に、上記振り分けモジュールにて該パケットをデータバスかコマンドバスのどちらかに振り分けて転送する手段と、上記各画像処理モジュールにおいてデータバスを介して転送されたデータ/コマンドパケットを、それぞれ画像処理部/レジスタに転送する手段とを有する画像処理装置とする。
【発明の効果】
【０００９】
以上のように本発明によれば、コマンドパケットを画像データと同期させたい時は画像バス経由で、独立して送信したい時はコマンドバス経由で転送することができ、画像データをページ途中で破壊することなくレジスタ設定を変更することができつつ、仮に画像バスに処理の重い画像処理モジュールが存在し、その下流のモジュールに対してレジスタアクセスを行いたい時でも任意のタイミングでアクセスすることができる。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例１】
【００１１】
［システム全体］
本発明のネットワークシステム全体の構成図を図1 に示す。
【００１２】
1001は、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク(1010)(以下LAN)に流したり、LANから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないFAX送信手段により、PSTNまたはISDN(1030)に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトできる。1002は、データベースサーバで、本発明の装置(1001)により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【００１３】
1003は、データベースサーバ(1002)のデータベースクライアントで、データベース(1002)に保存されている画像データを閲覧/検索等できる。
【００１４】
1004は、電子メールサーバで、本発明の装置(1001)により読み取った画像を電子メールの添付として受け取ることができる。1005は、電子メールのクライアントで、電子メールサーバ(1004)の受け取ったメールを受信し閲覧したり、電子メールを送信したり、可能である。
【００１５】
1006がHTML文書をLANに提供するWWWサーバで、本発明の装置(1001)によりWWWサーバで提供されるHTML文書をプリントアウトできる。
【００１６】
1007は、ルータでLAN(1010)をインターネット／イントラネット(1012)と連結する。インターネット／イントラネットに、前述したデータベースサーバ(1002)、WWWサーバ(1006)、電子メールサーバ(1004)、本発明の装置(1001)と同様の装置が、それぞれ1020、1021、1022、1023として連結している。一方、本発明の装置(1001)は、PSTNまたはISDN(1030)を介して、FAX装置(1031)と送受信可能になっている。
【００１７】
また、LAN上にプリンタ(1040)も連結されており、本発明の装置(1001)により読み取った画像をプリントアウト可能なように構成されている。
【００１８】
[コントローラの説明]
図2 は、本発明を最もよく表した画像処理装置のブロック図である。
【００１９】
画像リング(2008)は、一対の単方向接続経路の組み合わせにより構成される(画像リング1及び画像リング2)。画像リング(2008)は、タイル画像処理部(2149)内で、画像リングインターフェース3(2101)及びタイル画像インターフェース4(2102)を介し、タイル伸張部(2103)、パケット振り分け部(2104)、ステータス処理部(2105)、タイル圧縮部(2106)に接続される。
【００２０】
タイル伸張部(2103)は、画像リングインターフェースへの接続に加え、パケット振り分け部(2104)及びデータバス(2107)に接続され、画像リングより入力された圧縮済みの画像データを伸張し、データバス(2107)へ転送する。本実施例では、多値データにはJPEG、2値データにはパックビッツを伸張アルゴリズムとして採用した例を示す。
【００２１】
タイル圧縮部(2106)は、画像リングインターフェースへの接続に加え、データバス(2107)に接続され、データバスより入力された圧縮前の画像データを圧縮し、画像リング(2008)へ転送するバスブリッジである。本実施例では、多値データにはJPEG、2値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【００２２】
パケット振り分け部(2104)は、画像リングインターフェースへの接続に加え、コマンドバス(2109)及びタイル伸長部(2103)に接続され、画像リングを介して入力された画像データをデータバス(2107)に転送する。またCPU(2001)より発行されたレジスタ設定要求(コマンド)を、コマンドバス(2109)もしくはデータバス(2107)に転送する。また、CPU(2001)より発行されたリードに基づき、コマンドバスを介して該当レジスタより情報を読み出し。画像リングインターフェース4(2102)に転送する。
【００２３】
データバス(2107)には上記ブロックに加え、以下の機能ブロックが接続される。
【００２４】
レンダリング部インターフェース(2110)、画像入力インターフェース(2112)、画像出力インターフェース(2113)、多値化部(2119)、2値化部(2118)、色空間変換部(2117)、画像回転部(2030)、解像度変換部(2116)。
【００２５】
レンダリング部インターフェース(2110)は、後述するレンダリング部により生成されたビットマップイメージを入力するインターフェースである。レンダリング部とレンダリング部インターフェースは、一般的なビデオ信号(2111)にて接続される。レンダリング部インターフェースは、データバス(2107)に加え、メモリバス(2108)、コマンドバス(2109)への接続を有し、入力された、ラスター画像をコマンドバスを介して設定された、所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、データバス(2107)に対し出力を行なう。
【００２６】
画像入力インターフェースは(2112)は、後述するスキャナ用画像処理部(2114)により補正画像処理されたラスタイメージデータを入力とし、コマンドバスを介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、データバス(2107)に対し出力を行なう。
【００２７】
画像出力インターフェースは、データバスからのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部(2115)へ出力する。
【００２８】
画像回転部(2030)は画像データの回転を行なう。
【００２９】
解像度変換部(2116)は画像の解像度の変更を行なう。
【００３０】
色空間変換部(2117)はカラー及びグレースケール画像の色空間の変換を行なう。
【００３１】
2値化部(2118)は、多値(カラー、グレースケール)画像を2値化する。
【００３２】
多値化部(2119)は2値画像を多値データへ変換する。
【００３３】
外部バスインターフェース部(2120)は、画像リングインターフェース1、2，3，4、コマンド処理部、コマンドバスを介し、CPU(2001)により発行された、書き込み、読み出し要求を外部バス3(2121)に変換出力するバスブリッジである。外部バス3(2121)は本実施例では、プリンタ用画像処理部(2115)、スキャナ用画像処理部(2114)に接続されている。
【００３４】
メモリ制御部(2122)は、メモリバス(2108)に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び画像メモリ2(2123)に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行なう。本実施例では、画像メモリにSDRAMを用いた例を示した。
【００３５】
スキャナ用画像処理部(2114)では、画像入力デバイスであるスキャナ(2070)によりスキャンされた画像データを補正画像処理する。
【００３６】
プリンタ用画像処理部では、プリンタ出力のための補正画像処理を行い、結果をPrinter(2095)へ出力する。
【００３７】
レンダリング部(2060)はPDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００３８】
［タイル画像（パケット）フォーマット］
前記SystemControllerUnit（2000）内では、画像データ、CPU(2001)によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【００３９】
本実施例では、図3 に示すデータパケット、図4 に示すコマンドパケットの2種の異なる種類のパケットが使用される。
【００４０】
データパケット（図3 ）
図3 に画像 Dataを32pixel x 32pixelのTile単位の画像データ(3002)に分割して取り扱う例を示した。
【００４１】
このTile単位の画像に、必要なヘッダ情報(3001)及び画像付加情報等(3003)を付加してデータPacketとする。
【００４２】
以下にヘッダ情報(3001)に含まれる情報について説明を行なう。
【００４３】
PacketのTypeはヘッダ情報(3001)内のPacketType(3004)で区別される。PacketType (3004)にはリピートフラグが含まれており、Data Packetの画像Dataが1つ前に送信したData Packetの画像Dataと同一の場合、リピートフラグをセットする。
【００４４】
ChipID(3005)はパケットを送信するターゲットとなるチップのIDを示す。
【００４５】
DataType(3006)ではデータのタイプを示す。
【００４６】
PageID(3007)はページを示しており、JobIDはソフトウェアで管理するためのJob ID(3008)を格納する。
【００４７】
Tileの番号はY方向のTile座標(3009)とX方向のTile座標(3010)の組み合わせで、YnXnで表される。
【００４８】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施例では、圧縮アルゴリズムとして、多値カラー（多値グレースケールを含む）の場合はJPEGを2値の場合はパックビッツを採用した例を示した。
【００４９】
圧縮されている場合と非圧縮の場合との区別はCompressFlag(3017)で示される。
【００５０】
Process Instruction(3011)は左詰で処理順に設定し、各処理Unitは、処理後Process Instructionを左に8BitShiftする。Process Instruction(3011)はUnitID(3019)とMode(3020)の組が8組格納されている。UnitID(3019)は各処理Unitを指定し、Mode(3020)は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitで連続して処理することができる。
【００５１】
PacketByteLength(3012)はパケットのトータルバイト数を示す。
【００５２】
ImageDataByteLengh(3015)は画像データのバイト数、ZDataByteLength(3016)は画像付加情報のバイト数を表し、ImageDataOffset(3013)、ZDataOffset(3014)はそれぞれ、データのパケットの先頭からのOffsetを表している。
【００５３】
BusSel(3021)はこのパケットが画像処理部内でデータバスかコマンドバスのいずれを転送されるかを示す。
【００５４】
Packet Table（図6 ）
各PacketはPacket Table(6001)によって管理する。
【００５５】
Packet Table(6001)の構成要素は次の通りで、それぞれTableの値に0を5bit付加すると、Packetの先頭Address(6002)、PacketのByte Length(6005)となる。
【００５６】
Packet Address Pointer (27bit) + 5b00000 = Packet先頭Address
Packet  Length (11bit) + 5b00000 = PacketのByte Length
Packet Table(6001)とChain Table(6010)は分割されないものとする。
【００５７】
Packet Table(6001)は常に走査方向に並んでおり、Yn/Xn＝000/000, 000/001,000/002,....という順で並んでいる。このPacket Table(6001)のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【００５８】
Packetがひとつ前のPacketとまったく同じDataである場合は、そのPacketはMemory上には書かず、Packet TableのEntryに１つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。１つのPacket  Dataを２つのTable Entryが指すようなかたちになる。この場合、２つめのTable EntryのRepeat Flag(6003)がSetされる。
【００５９】
PacketがChain DMAにより複数に分断された場合は、Divide Flag(6004)をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号(6006)をSetする。
【００６０】
Chain Table(6010)のEntryはChain Block Address(6011)とChain Block Length(6012)からなっており、Tableの最後のEntryにはAddress、Length共に０を格納しておく。
【００６１】
Command Packet Format(図4 )
本Packet Formatはコマンドバス(2109)へのアクセスを行なうためのものである。本パケットを用いることにより、COU(2001)より画像メモリ(2123)へのアクセスも可能である。
【００６２】
ChipID(4004)にはコマンドパケットの送信先となる画像処理部(2149)を表すIDが格納される。
【００６３】
PageID(4007)、JobID(4008)はソフトウェアで管理するためのPage IDとJob IDを格納する。
【００６４】
Packet ID(4009)は1次元で表される。Data PacketのX-coordinateのみを使用する。
【００６５】
パケットバイトレングス(4010)は128Byte固定である。
【００６６】
パケットデータ部(4002)には、アドレス(4011)とデータ(4012)の組を１つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはCmdType(4005)で示され、コマンドの数はCmdnum(4006)で示される。
【００６７】
タイルの構成（図5 ）
図5 において、左上からタイル座標及び画像の座標を定め、タイル座標および、画像座標は左上が(0,0)であるとする。図5 中でTile(0,0)等とあるものが一つのタイルを示し、その括弧内の数字がタイル座標(X, Y)を示す。タイル座標のX座標は左から右に行くにつれて増加し、タイル座標のY座標は上から下に行くにつれて増加するように定める。用紙サイズがA4(横)、解像度が600dpiで、１つのタイルの大きさが32×32pixelの場合、1ページ220（横）×156（縦）タイルとなる。
【００６８】
第１のデータパケット、コマンドパケット(レジスタライト)、第２のデータパケット、コマンドパケット(レジスタリード(同期))、第3のデータパケット、コマンドパケット(レジスタリード(非同期))の順でパケットが画像処理部2149に入力された際の動作を説明する。説明のため、これら5つのパケットは、全て同じ解像度変換部2116に向けたパケットである。以下、順番に説明する。
【００６９】
まず、第1のデータパケットが上記パケットDMAを用いて画像リングインターフェース1(2147)→画像リングインターフェース3(2101)の経路で画像処理部2149に入力される。入力された第1のデータパケットは画像リングインターフェース3(2101)からパケット振り分け部(2104)に転送される。
【００７０】
次に、パケット振り分け部(2104)では上記第1のデータパケット内の、Packet Type ID (3004)と、パケットヘッダ(3001)内のProcessInstruction(3011)内のUnitID(3019)と、BusSel(3021)とを確認する。この場合、Packet Type ID(3004)はデータパケット、UnitID(3019)はタイル伸長部(2103)のユニットID、BusSel(3021)はデータバスの情報が設定されているため、この第1のデータパケットはまずタイル伸張部(2103) に送られる。
【００７１】
タイル伸張部(2103)での伸張動作中に、コマンドパケット(レジスタライト)がパケット振り分け部(2104)に入力されることになるが、このコマンドパケット内のパケットヘッダ情報はこのコマンドパケットがデータパケットと同期して動作すべきであるため、Packet Type ID (3004)がコマンドパケット、UnitID(3019)がタイル伸張部(2103)のユニットID、BusSel(3021)がデータバスに設定されている。このため、パケット振り分け部(2104)はタイル伸張部(2103)にこのコマンドパケットを転送しようとするが、上記のようにタイル伸張部(2103)は処理中であるため、次のデータを受け取ることができないため、パケット振り分け部内で留まる。
【００７２】
タイル伸張部(2103)での処理が完了すると伸張処理済みの第1のデータパケットはデータバスに転送され、上記コマンドパケットは始めてパケット振り分け部(2104)からタイル伸張部(2103)に転送される。転送された上記コマンドは同様にデータバスに転送される。本実施例の場合、コマンドパケットは圧縮されていないことを想定しているため、上記タイル伸張部(2103)では何も処理はされない。
【００７３】
データバスに転送された第1のデータパケット及びコマンドパケット(レジスタライト)は順番に目的の解像度変換部2116に転送される。
【００７４】
続いて第2のデータパケットが画像処理部(2149)に入力された場合、もしデータバス(2107)が何らかの原因で転送が停滞しているなどの理由でタイル伸張部2103が上記コマンドパケット(レジスタライト)をデータバス(2107)に対して出力できなかった場合を除き、上記第2のデータパケットはタイル伸張部(2103)に転送される。
【００７５】
タイル伸張部(2103)に入力された第2のデータパケットは同様に伸張処理を施され、データバス(2107)に出力される。データバス(2107)に出力された場合、直前のコマンドパケット(レジスタライト)は解像度変換部2116にてレジスタ設定が完了しているはずであるため、確実に解像度変換部2116への機能変更が完了した後に、第2のデータパケットは自動的に解像度変換部2116に入力される。
【００７６】
これにより、第1のデータパケットと第2のデータパケットは、解像度変換部2116において異なる動作モード・設定にて処理が行われる。
【００７７】
このようにして、第1のデータパケットとコマンドパケット(レジスタライト)と第2のデータパケットの順番は保証され、上記コマンドパケットのレジスタアクセスは第1のデータパケット及び第2のデータパケットと同期して設定されることになる。
【００７８】
また、上記3つのパケットを同期させるための手段は上記画像処理部249内のパイプライン構造を利用しているため、特別な手段を用いずに且つ各パケット間のインターバルが必要以上空くことなく行われる。
【００７９】
次にコマンドパケット(レジスタリード(同期))が画像処理部2149に入力される。
【００８０】
このコマンドパケット内のパケットヘッダ情報はこのコマンドパケットがデータパケットと同期して動作すべきであるため、Packet Type ID (3004)がコマンドパケット、UnitID(3019)がタイル伸張部(2103)のユニットID、BusSel(3021)がデータバスに設定されている。このコマンドパケットも同様にデータバスを転送されるため、直前の第2のデータパケット及び直後の第3のデータパケットと同期して画像処理部2149に入力されるため、このコマンドパケットは各データパケットと同期してレジスタアクセスされる。
【００８１】
第3のデータパケットも第1、第2のデータパケットと同様にタイル伸張部(2103)にて慎重処理を行った後に、解像度変換部(2116)に送られ、処理が行われる。
【００８２】
第3のデータパケットの後ないし処理中にコマンドパケット(レジスタリード(非同期))が画像処理部2149に入力された場合、このコマンドパケットのパケットヘッダのPacket Type ID(3004)はコマンドパケット、UnitID(3019)は解像度変換部(2116)のユニットID、BusSel(3021)はコマンドバスの情報が設定されているため、このコマンドパケット、タイル伸張部(2103) に送られずに、直接コマンドバスに転送される。コマンドバスに転送されたコマンドはパケット内のアドレス情報を元に直接、解像度変換部(2116)に送信される。
【００８３】
コマンドバス経由でアクセスされるコマンドはデータバス及びデータの画像処理の状態に関係なくレジスタアクセスを行なうことが可能であるため、解像度変換部(2116)の状態にかかわらず、内部レジスタへのアクセスをおこなう。
【００８４】
この場合、コマンドはリードコマンドであるため、例えば解像度変換部(2116)での処理中でのステータスレジスタのポーリング等に使用することができる。
【００８５】
レジスタから読み出された読み出し値は上記コマンドバスを戻り、パケット振り分け部(2104)まで転送され、ここで戻りのコマンドパケットが作成され、画像リングインターフェース4(2102)を経由して最終的にCPU2001に転送される。
【００８６】
本実施例によれば、パケットヘッダ内のBusSel(3021)情報によって一意に転送されるバスが決定される。
【００８７】
上記実施例では、リードコマンドでは同期/非同期の動作を行い、ライトコマンドでは同期動作のみを説明したが、パケットヘッダへの設定次第では非同期のライトコマンドを行なうことも可能である。
【００８８】
ただし、画像データと非同期にレジスタライトを行なう場合、レジスタライトコマンドの前後で、レジスタ値を変更された画像処理部の動作モードが変更されてしまうため、例えば同一ページ内でもページの前半と後半で画像の品質が著しく変化してしまうことが考えられる。例えば図7 のように、1ページ内の7003のタイミングでレジスタライトを行った場合、ページ前半の画像(7001)とページ後半の画像(7002)は画像品質が異なってしまう。
【００８９】
このため、上記のようにならないよう、レジスタ設定を制御するソフトウェアで制御する必要がある。
【００９０】
もしくは非同期ライトコマンドが設定された場合、すなわちコマンドパケットのパケットヘッダのPacket Type ID(3004)がコマンドパケット、BusSel(3021)がコマンドバスで、且つCmdType(4005)がライトであった場合は、パケット振り分け部にてエラーと判定し、割り込み信号にてCPU(2001)に通知するようにしても良い。
【実施例２】
【００９１】
実施例1では画像データを転送するデータバスが、いわゆるバス結線(任意の画像処理部から任意の別の画像処理部に画像の転送を行なうことのできるバス)である場合で説明をした。本実施例ではデータバスが全ての画像処理ブロックを数珠つなぎに単一方向で接続するインターフェースである場合の説明をする。
【００９２】
図8 に本実施例での画像処理部(2149と同等)のブロック図を示す。尚本実施例での説明に必要の無いブロック等は省略する。
【００９３】
又特に説明の無い部分については実施例1と同様とする。
【００９４】
8001はデータバスであり、パケット振り分け部(2104)→タイル伸張部(2103)→多値化部(2119)→2値化部(2119)→色空間変換部(2117)→画像回転部(2030)→解像度変換部(2116)→タイル圧縮部の順に接続され、それぞれで画像処理を行いながら画像データを転送する。
【００９５】
尚、一連のデータバスの内、処理が行われないブロックがある場合がある。例えば画像処理部(2149)に多値データが入力された場合、多値化部(2119)は特に処理をすることが無い。この場合、入力されたデータパケットは一旦多値化部(2119)に入力されるが、内部で処理を行なわずに次のブロックである2値化部(2118)に転送される。
【００９６】
上記のように何も処理をせずに次のブロックに転送する機能は全ての画像処理ブロックに内蔵されており、その画像処理ブロックで処理を行なうか否かの判断はパケットヘッダ内のProcessInstruction(3011)のUnitIDがその画像処理ブロックに予め与えられたIDに該当するかどうかを判定することによって行われる。
【００９７】
図9 に実施例2における画像処理部の内部ブロック図を示す。
【００９８】
図9 は図2 における画像処理部の1つを模式的に示したものである。処理内容に応じては画像処理部外にメモリ等を接続する場合があるが、説明が簡単になるよう簡略化した図を示す。
【００９９】
9010は画像処理部であり、内部にコマンドI/F(9021)、パケットInputI/F(9022)、レジスタ(9023)、画像処理ブロック(9024)、パケットOutputI/F(9025)を内包する。コマンドI/F(9021)はコマンドバス(9001)とレジスタアクセスバス(9002)に接続される。パケットInputI/F(9022)は入力データバス(9003)とコマンドパケット用バス(9004)とパケットフォワード用バス(9005)とデータパケット用バス(9006)に接続される。画像処理ブロック(9024)はデータパケット用バス(9006)と処理済みデータパケットバス(9007)に接続される。パケットOutputI/F(9025)はパケットフォワード用バス(9005)と処理済みデータパケットバス(9007)と出力データバス(9008)に接続される。
【０１００】
実施例1で説明したように、コマンドバス9001を経由して転送されるものはコマンドのみとなる。コマンドI/Fは上記コマンド内に記載されたアドレスオフセット値を元に指定されたレジスタにアクセスを行なう。(リードライトとも)
また実施例１で説明したように、データバス9003を経由して転送されるものはデータパケットもしくはコマンドパケットのどちらかとなる。パケットInputI/F(9022)は受信した画像データのヘッダ部に記載されたPacketTypeを元にデータパケットかコマンドパケットかいずれかを判断する。
【０１０１】
転送されたパケットがコマンドパケットであると判断された場合、パケットInputI/F(9022)はさらにヘッダ内のProcessInstructionを確認し、この画像処理部9010へのコマンドかどうかを確認する。この画像処理部へのパケットであると判断された場合、このコマンドパケットは内部アドレス情報を元にレジスタ(9023)の指定されたアドレスに対してアクセスを行なう。この画像処理部へのパケットでないと判断された場合、パケットInputI/F(9022)はこのパケットをパケットフォワード用バス(9005)に転送する。
【０１０２】
転送されたパケットがデータパケットであると判断された場合、パケットInputI/F(9022)はさらにヘッダ内のProcessInstructionを確認し、この画像処理部9010へのコマンドかどうかを確認する。この画像処理部へのパケットであると判断された場合、このデータパケットは画像処理ブロック(9024)に転送されその時点までにレジスタ(9023)に設定されている動作モードに沿って画像処理を行なう。処理を施されたデータパケットは処理済みデータパケットバス(9007)に転送される。この画像処理部へのパケットでないと判断された場合、パケットInputI/F(9022)はこのパケットをパケットフォワード用バス(9005)に転送する。
【０１０３】
以上のようにしてパケットOutputI/F(9025)に到達した各データ/コマンドパケットは次の画像処理部に転送される。
【０１０４】
尚、データバスを経由して転送されてくるコマンドパケットは他のデータパケットと同期して転送されなければならないため、例えばデータパケット→コマンドパケットの順に、或る画像処理部に入力された場合で且つデータパケットは上記画像処理部にて処理を行い、コマンドパケットはこの上記画像処理部へのレジスタアクセスではない場合について考える。
【０１０５】
最初に転送されたデータパケットは上記画像処理部にて画像処理を施されるため、画像処理ブロック(9024)に送られ処理を開始する。この処理自体に時間が掛かる場合、上記データパケットが画像処理を完了しパケットOutputI/F(9025)に到着する前に、次のコマンドパケットが続いて上記画像処理部に入力されパケットフォワード用バス(9005)を介してパケットOutputI/Fに到着してしまう。このためこの画像処理ブロック内ではパケットの順番が入れ替わることになる。
【０１０６】
パケットOutputI/Fでは、到着したパケットを到着した順に出力データバス(9008)に出力した場合、次の画像処理部ではパケットの順序がコマンドパケット→データパケットの順になってしまい、上記データパケットが所望の画像処理動作モードで処理されないことになる。
【０１０７】
これを回避するために、画像処理ブロック(9024)はデータパケットを受け取って画像処理を開始した場合、画像処理中を示す信号をパケットOutputI/Fに対して出力する。この信号は処理が完了するまで出力され続けるものとする。この画像処理中信号を受信中にパケットフォワード用バスを介してコマンドパケットを受信した場合、パケットOutputI/F(9025)は上記画像データの画像処理が完了し出力データバスに出力が完了するまで上記コマンドパケットを外部に出力しないよう内部バッファに一時的に蓄積する。
【０１０８】
これにより、各画像処理にてパケットの順番が入れ替わることなく、出力画像品質を保証することが可能となる。
【０１０９】
尚、データパケット(該画像処理部で処理する)→データパケット(該画像処理部で処理しない)の順でパケットが入力された場合は、後者のデータパケット(該画像処理部で処理しない)は前者のデータパケット(該画像処理部で処理する)の完了を待つ必要は無い。
【０１１０】
上記パケットOutPutI/Fでの動作フローチャートを図10に示す。
【０１１１】
本実施例では、レジスタ(9023)は1つのみ用意されており、コマンドバス及びデータバスのいずれからもアクセスできるように構成されているが、レジスタを2つ用意し、一方はコマンドパケットからのアクセス専用、他方はデータパケットからのアクセス専用とするように構成しても良い。
【図面の簡単な説明】
【０１１２】
【図１】本件実施例で説明するシステム全体を説明する図
【図２】本件実施例1で説明するコントローラ全体のブロック図
【図３】本件実施例で説明するデータパケットを説明する図
【図４】本件実施例で説明するコマンドパケットを説明する図
【図５】本件実施例で説明するページ内のタイル位置と画像の座標を説明する図
【図６】本件実施例で説明するパケットテーブルを説明する図
【図７】非同期ライトコマンドを実施した場合の処理後のイメージを説明する図
【図８】本件実施例2で説明する画像処理部のブロック図
【図９】本件実施例2で説明する各画像処理部のブロック図
【図１０】保健実施例2で説明するパケットの順番を保証するためのフローチャート図
【図１】
2007243444.tif 000003
【図２】
2007243444.tif 000004
【図３】
2007243444.tif 000005
【図４】
2007243444.tif 000006
【図５】
2007243444.tif 000007
【図６】
2007243444.tif 000008
【図７】
2007243444.tif 000009
【図８】
2007243444.tif 000010
【図９】
2007243444.tif 000011
【図１０】
2007243444.tif 000012