(57)【要約】【課題】並行処理可能な複数の伸長処理部を用いて、より高速に伸長処理を行うこと。【解決手段】それぞれが、圧縮データを所定単位で伸長する伸長処理手段（５０１，５０２，５０３）と、伸長処理に用いる伸長処理情報を保持する量子化テーブル（５０５）とを有する、並行処理可能な複数のＪＰＥＧ伸長処理部（５１０，５１１，５１２）と、データをパケット単位で入力し、入力したデータが圧縮データである場合には所定単位毎に複数のＪＰＥＧ伸長処理部に割り当てて前記伸長処理手段に出力し、コマンドデータである場合には、当該コマンドデータに対応する圧縮データを処理するＪＰＥＧ伸長処理部の量子化テーブルに出力する第１データバッファ（５００）とを有し、第１データバッファは、コマンドデータを出力する先のＪＰＥＧ伸長処理部が処理可能状態である場合に、他のＪＰＥＧ伸長処理部の処理状況に関わらず、コマンドデータを出力する。【選択図】  図９
2004253906.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが、圧縮データを所定単位で伸長する伸長処理手段と、前記伸長処理手段で伸長処理に用いる伸長処理情報を保持する保持手段とを有する、並行処理可能な複数の伸長手段と、
データをパケット単位で入力し、入力したデータが圧縮データであるか伸長処理情報設定データであるかを判断し、圧縮データである場合には所定単位毎に前記複数の伸長手段に割り当てて前記伸長処理手段に出力し、伸長処理情報設定データである場合には、当該伸長処理情報設定データに対応する圧縮データを処理する伸長手段の前記保持手段に出力する割当手段とを有し、
前記割当手段は、前記伸長処理情報設定データを出力する先の伸長手段が処理可能状態である場合に、他の伸長手段の処理状況に関わらず、前記伸長処理情報設定データを出力することを特徴とする伸長装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、並行処理可能な複数の伸長処理部を用いて行う伸長処理技術に関する。
【０００２】
【従来の技術】
ＭＦＰのコントローラでは、画像読取装置で読み込んだ画像データやネットワークを介して取得した画像データを、画像出力装置へと転送する過程において、転送の効率化、高速化のために、画像データの圧縮／伸長処理を行うものがある。
【０００３】
圧縮／伸長処理には、もともとラスターデータである１ページの画像データを複数の矩形画像データ（パケットデータ）に分割し、パケットデータごと（パケット単位）に行う方法がある。コントローラでは、パケット単位で圧縮されたパケットデータを、メモリ等のデータ蓄積部へと格納し、データ蓄積部からパケット単位で順次読み出して伸長処理部での伸長処理後にラスターデータへと変換して画像出力装置へと転送している。
【０００４】
近年、コントローラで扱う画像データ量が増大しているため、圧縮／伸長処理に多くの時間がかかり、高速化が求められている。そこで、伸長処理の高速化をはかるため、複数の伸長処理部を並列に配置して、パケットデータを各伸長処理部に振り分けてパケット単位で同時に行うことで、処理時間を短縮する構成が考えられている。
【０００５】
まず最初に、１つの伸長処理部によりパケットデータの伸長処理を行う場合の、伸長処理部の構成例を図１０に示す。
【０００６】
伸長処理部は、伸長演算部１０１と、伸長処理用の演算係数を格納する演算係数テーブル１０２を持つ。伸長演算部１０１には圧縮されたパケットデータがパケット単位で入力される。演算係数テーブル１０２はメモリ等の記憶装置であり、演算係数の格納は、ＣＰＵ等のプロセッサによるレジスタアクセスにより行われる。演算係数は、入力されるパケットデータの圧縮率に対応しており、異なった圧縮率のパケットデータが入力される場合には、伸長演算部１０１に対し、入力に先立って演算係数の変更をレジスタアクセスにより予め行っておく必要がある。
【０００７】
次に図１０に示した伸長処理部を複数用いて、並列に配置した場合の伸長処理部の構成例を図１１に示す。図１１では３つの伸長処理部を並列に配置した構成を示している。
【０００８】
パケット入力セレクタ２０５には、圧縮されたパケットデータがパケット単位で入力される。パケットデータはパケットデータ入力セレクタ２０５により、入力された順に自動で伸長演算部２０１、２０２、２０３へと割り振られ、伸長処理が行われる。パケットデータ出力セレクタ２０６では、伸長演算部２０１、２０２、２０３により伸長されたパケットデータが入力した順番に並べ替えられて出力される。
【０００９】
伸長演算部２０１、２０２、２０３では、処理が終了すると、次のパケットデータの入力を行い、順に伸長処理が行われていく。
【００１０】
【発明が解決しようとする課題】
図１１に示す構成では、異なった圧縮率のパケットデータが入力される場合には、処理の終了した伸長演算部の演算係数テーブルに対して、入力に先立って演算係数の変更をレジスタアクセスにより予め行っておく必要がある。
【００１１】
しかしながら、図１１の構成では伸長演算部２０１〜２０３それぞれの処理状態をプロセッサ側で判別できない。そのため伸長演算部２０１〜２０３のどれかが処理中であった場合には、処理の終了した伸長演算部の演算係数テーブルの演算係数を先に変更することができず、すべての伸長演算部の処理が終了するまで、次のパケットデータの入力が行えないことになる。
【００１２】
従って、ページ中の複数のパケットについて演算係数を切り替える場合には、その度にすべての伸長演算部２０１〜２０３の処理が終了するまでパケットデータの入力を中断することになり、データ転送の遅れにつながる。しかもこの遅れは、伸長演算部の個数が増えるほど大きくなることになり、データ転送の高速化への対応と相反してしまう。
【００１３】
本発明は上記問題点を鑑みてなされたものであり、並行処理可能な複数の伸長処理部を用いて、より高速に伸長処理を行うことを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明の伸長装置は、それぞれが、圧縮データを所定単位で伸長する伸長処理手段と、前記伸長処理手段で伸長処理に用いる伸長処理情報を保持する保持手段とを有する、並行処理可能な複数の伸長手段と、データをパケット単位で入力し、入力したデータが圧縮データであるか伸長処理情報設定データであるかを判断し、圧縮データである場合には所定単位毎に前記複数の伸長手段に割り当てて前記伸長処理手段に出力し、伸長処理情報設定データである場合には、当該伸長処理情報設定データに対応する圧縮データを処理する伸長手段の前記保持手段に出力する割当手段とを有し、前記割当手段は、前記伸長処理情報設定データを出力する先の伸長手段が処理可能状態である場合に、他の伸長手段の処理状況に関わらず、前記伸長処理情報設定データを出力することを特徴とする。
【００１５】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１６】
まず、本発明の概要について、図１を参照して説明する。
【００１７】
本発明の実施の形態における構成では、従来レジスタバスを介して行っていた演算係数テーブルへの演算係数の格納を、パケットデータと同じデータバス経由で行う。
【００１８】
本実施の形態では、演算係数の格納をデータバス経由で行えるように、演算係数テーブル３０４への演算係数を記述したコマンドパケットを使用する。コマンドパケットは、レジスタのアドレス情報と設定値情報に、ヘッダ情報をパケットの先頭に付随したものである。
【００１９】
伸長処理部３００に入力されたパケットは、パケット判別部３０７で、パケットデータかコマンドパケットかをそれぞれのヘッダ情報より判別され、パケットデータであれば図１１と同様に入力された順に自動で伸長演算部３０１→３０２→３０３へと割り振られ、伸長処理が行われる。コマンドパケットであれば、次に入力されるパケットデータが割り振られる伸長演算部の演算係数テーブルに対して、コマンドパケット内のアドレス情報と設定値情報をもとに演算係数の格納を行う。
【００２０】
以下、本実施の形態についてより詳細に説明する。
【００２１】
＜システム全体＞
図２は、本発明の画像入出力装置が接続して用いられるネットワークシステムの構成例を示すブロック図である。１００１は本実施の形態の画像入出力装置で、画像読み取り装置あるいは画像入力装置としてのスキャナと、プリンタとから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク（ＬＡＮ）１０１０に転送したり、ＬＡＮ１０１０から受信した画像をプリンタによりプリントアウトすることができる。また、スキャナにより読み込んだ画像を図示しないＦＡＸ送信手段を用いてＰＳＴＮやＩＳＤＮ１０３０を介してＦＡＸ装置１０３１に送信したり、ＰＳＴＮやＩＳＤＮを介して受信した画像をプリンタによりプリントアウトすることができる。
【００２２】
１００２は、データベースサーバで、画像入出力装置１００１により読み込んだ２値画像及び多値画像をデータベースとして管理する。１００３は、データベースサーバ１００２のデータベースクライアントで、データベース１００２に保存されている画像データを閲覧／検索等できる。１００４は、電子メールサーバで、画像入出力装置１００１により読み取った画像を電子メールの添付ファイルとして受け取ることができる。１００５は、電子メールのクライアントで、電子メールサーバ１００４が受け取ったメールを受信し閲覧したり、電子メールを送信したりすることができる。１００６は、ＨＴＭＬ文書をＬＡＮ１０１０に提供するＷＷＷサーバで、ＷＷＷサーバ１００６が提供するＨＴＭＬ文書を画像入出力装置１００１によりプリントアウトできる。１００７はＤＮＳ（ＤｏｍａｉｎＮａｍｅ  Ｓｅｒｖｅｒ）サーバ、１０１１はルータで、ＬＡＮ１０１０をインターネット／イントラネット１０１２と連結する。インターネット／イントラネットには、前述した画像入出力装置１００１、データベースサーバ１００２、ＷＷＷサーバ１００６、電子メールサーバ１００４とそれぞれ同様の装置１０２０、１０２１、１０２２、１０２３が連結している。
【００２３】
更に、ＬＡＮ１０１０上にプリンタ１０４０も連結されており、画像入出力装置１００１により読み取った画像をプリントアウト可能なように構成されている。
【００２４】
＜制御部の機能構成＞
画像入出力装置１００１の制御部２０００の機能構成を図３に示す。図３におけるスキャナ２０７０及びプリンタ２０９５は、上述したように画像入出力装置１００１を構成するものである。制御部２０００は、画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０９５と接続し、一方ではＬＡＮ１０１０やＰＳＴＮやＩＳＤＮ等の公衆回線（ＷＡＮ）１０３０に接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う為のコントローラである。
【００２５】
ＣＰＵ２００１はシステム全体を制御するプロセッサであり、大きくシステム制御部２１５０とタイル画像処理部２１４９とに分けられる。本実施の形態では２つのＣＰＵを用いた例を示す。これら２つのＣＰＵ２００１は、共通のＣＰＵバス２１２６に接続され、さらに、システムバスブリッジ２００７に接続される。
【００２６】
システムバスブリッジ２００７は、バススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、ＩＯバス１（２１２７）、サブバススイッチ２１２８、ＩＯバス２（２１２９）、画像リングインターフェース（Ｉ／Ｆ）１（２１４７）、画像リングＩ／Ｆ２（２１４８）が接続される。
【００２７】
ＲＡＭ２００２はＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。本実施の形態では、ＲＡＭコントローラ２１２４により制御される、ダイレクトＲＤＲＡＭを採用する例を示す。ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＲＯＭコントローラ２１２５により制御される。
【００２８】
サブバススイッチ２１２８は第２のバススイッチであり、画像ＤＭＡ１（２１３０）、画像ＤＭＡ２（２１３２）、フォント伸長部２１３４、ソート回路２１３５、ビットマップトレース部２１３６が接続され、画像ＤＭＡ１（２１３０）及び画像ＤＭＡ２（２１３２）から出力されるメモリアクセス要求を調停し、システムバスブリッジ２００７への接続を行う。
【００２９】
画像ＤＭＡ１（２１３０）は画像圧縮部２１３１に接続し、レジスタアクセスリング２１３７を介して設定された情報に基いて画像圧縮部２１３１を制御し、ＲＡＭ２００２上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う。本実施の形態では、ＪＰＥＧを圧縮アルゴリズムに採用した例を示す。画像ＤＭＡ２（２１３２）は画像伸長部２１３３に接続し、レジスタアクセスリング２１３７を介して設定された情報に基いて画像伸長部２１３３を制御し、ＲＡＭ２００２上にある圧縮データの読み出し、伸長、伸長後データの書き戻しを行う。本実施の形態では、ＪＰＥＧを伸長アルゴリズムに採用した例を示す。
【００３０】
フォント伸長部２１３４は、ＬＡＮＩ／Ｆ２０１０等を介し外部より転送されるＰＤＬデータに含まれるフォントコードに基づき、ＲＯＭ２００３もしくは、ＲＡＭ２００２内に格納された、圧縮フォントデータの伸長を行う。本実施の形態では、ＦＢＥアルゴリズムを採用した例を示す。また、ソート回路２１３５は、ＰＤＬデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路、ビットマップトレース回路２１３６は、ビットマップデータより、エッジ情報を抽出する回路である。
【００３１】
第１ＩＯバス２１２７は内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ（不図示）、ＵＳＢ  Ｉ／Ｆ２１３８、操作部Ｉ／Ｆ２００６、汎用シリアルポート２１３９、インタラプトコントローラ２１４０、ＧＰＩＯＩ／Ｆ２１４１が接続される。第１ＩＯバス２１２７には、バスアービタ（図示せず）が含まれる。
【００３２】
操作部Ｉ／Ｆ２００６は操作部（ＵＩ）２０１２とのＩ／Ｆ部で、操作部２０１２に表示する画像データを操作部２０１２に対して出力する。また、操作部２０１２から本画像入出力装置１００１に使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。
【００３３】
ＩＯバス２（２１２９）は内部ＩＯバスの一種であり、汎用バスＩ／Ｆ１及び２（２１４２）と、ＬＡＮコントローラ２０１０が接続される。ＩＯバス２（２１２９）にはバスアービタ（図示せず）が含まれる。
【００３４】
汎用バスＩ／Ｆ１及び２（２１４２）は、２つの同一のバスＩ／Ｆから成り、標準ＩＯバスをサポートするバスブリッジである。本実施の形態では、ＰＣＩバス２１４３を採用した例を示した。２００４はハードディスクドライブ（ＨＤＤ）で、システムソフトウェア、画像データを格納する。ディスクコントローラ２１４４を介して一方のＰＣＩバス２１４３に接続される。
【００３５】
ＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介してＬＡＮ１０１０に接続し、情報の入出力を行う。モデム２０５０は公衆回線１０３０に接続し、情報の入出力を行う。
【００３６】
画像リングＩ／Ｆ１（２１４７）及び画像リングＩ／Ｆ２（２１４８）は、システムバスブリッジ２００７と画像データを高速で転送する画像リング２００８を接続し、タイル化後に圧縮されたデータをＲＡＭ２００２とタイル画像処理部２１４９間で転送するＤＭＡコントローラである。
【００３７】
画像リング２００８は、一対の単方向接続経路の組み合わせにより構成される（画像リング１及び画像リング２）。画像リング２００８は、タイル画像処理部２１４９内で、画像リングＩ／Ｆ３（２１０１）及びタイル画像Ｉ／Ｆ４（２１０２）を介し、タイル伸長部１、２（２１０３）、コマンド処理部２１０４、ステータス処理部２１０５、タイル圧縮部１〜３（２１０６）に接続される。本実施の形態では、タイル伸長部２１０３を２組、タイル圧縮部を３組実装する例を示した。
【００３８】
各タイル伸長部２１０３は、画像リングＩ／Ｆ３（２１０１）に接続されると共に、タイルバス２１０７にも接続され、画像リング２００８により入力された圧縮後の画像データを伸長し、タイルバス２１０７へ転送するバスブリッジである。本実施の形態では、多値データにはＪＰＥＧ、２値データにはパックビッツを伸長アルゴリズムとして採用した例を示す。
【００３９】
各タイル圧縮部２１０６は、画像リングＩ／Ｆ４（２１０２）に接続されると共に、タイルバス２１０７にも接続され、タイルバス２１０７から入力された圧縮前の画像データを圧縮し、画像リング２００８へ転送するバスブリッジである。本実施の形態では、多値データにはＪＰＥＧ、２値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【００４０】
コマンド処理部２１０４は、画像リングＩ／Ｆ４（２１０２）に接続されると共に、レジスタ設定バス２１０９に接続され、画像リング２００８を介して入力したＣＰＵ２００１より発行されたレジスタ設定要求を、レジスタ設定バス２１０９に接続される該当処理ブロックへ書き込む。また、ＣＰＵ２００１より発行されたレジスタ読み出し要求に基いて、レジスタ設定バス２１０９を介して該当レジスタより情報を読み出し、画像リングＩ／Ｆ４（２１０２）に転送する。
【００４１】
ステータス処理部２１０５は各画像処理部の情報を監視し、ＣＰＵ２００１に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングＩ／Ｆ４（２１０２）に出力する。
【００４２】
タイルバス２１０７には上記処理ブロックに加え、レンダリング部Ｉ／Ｆ２１１０、画像入力Ｉ／Ｆ２１１２、画像出力Ｉ／Ｆ２１１３、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、解像度変換部２１１６が接続される。
【００４３】
レンダリング部Ｉ／Ｆ２１１０は、後述するレンダリング部２０６０により生成されたビットマップイメージを入力するＩ／Ｆである。レンダリング部２０６０とレンダリング部Ｉ／Ｆ２１１０は、一般的なビデオ信号２１１１にて接続される。レンダリング部Ｉ／Ｆ２１１０は、タイルバス２１０７に接続すると共に、メモリバス２１０８及びレジスタ設定バス２１０９にも接続し、レジスタ設定バス２１０９を介して設定された所定の方法により、入力したラスター画像をタイル画像に構造変換すると同時にクロックの同期化を行い、タイルバス２１０７に対し出力する。
【００４４】
画像入力Ｉ／Ｆ２１１２は、後述するスキャナ用画像処理部２１１４により補正画像処理されたラスターイメージデータを入力とし、レジスタ設定バス２１０９を介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス２１０７に対し出力を行う。
【００４５】
画像出力Ｉ／Ｆ２１１３は、タイルバス２１０７からのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部２１１５へ出力する。
【００４６】
画像回転部２０３０は画像データの回転を行い、解像度変換部２１１６は画像の解像度の変更を行い、色空間変換部２１１７はカラー及びグレースケール画像の色空間の変換を行い、２値化部２１１８は、多値（カラー、グレースケール）画像を２値化し、多値化部２１１９は２値画像を多値データへ変換する。
【００４７】
外部バスＩ／Ｆ部２１２０は、画像リングＩ／Ｆ１〜４（２１４７、２１４８、２１０１、２１０２）、コマンド処理部２１０４、レジスタ設定バス２１０９を介し、ＣＰＵ２００１により発行された、書き込み、読み出し要求を外部バス３（２１２１）に変換出力するバスブリッジである。外部バス３（２１２１）は本実施の形態では、プリンタ用画像処理部２１１５、スキャナ用画像処理部２１１４に接続されている。
【００４８】
メモリ制御部２１２２は、メモリバス２１０８に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ１及び画像メモリ２（２１２３）に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施の形態では、画像メモリにＳＤＲＡＭを用いる。
【００４９】
スキャナ用画像処理部２１１４では、画像入力デバイスであるスキャナ２０７０によりスキャンされた画像データを補正画像処理する。プリンタ用画像処理部２１１５では、プリンタ出力のための補正画像処理を行い、結果をプリンタ２０９５へ出力する。
【００５０】
レンダリング部２０６０はＰＤＬコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００５１】
＜タイル画像（パケット）フォーマット＞
図３に示す制御部２０００内では、画像データ、ＣＰＵ２００１によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。本実施の形態では、図４に示すデータパケット、図６に示すコマンドパケット、図７に示すインタラプトパケットの３種の異なる種類のパケットが使用される。
【００５２】
・データパケット（図４）
本実施の形態では画像データを３２画素×３２画素のタイル単位の画像データ３００２に分割して取り扱うものとする。このタイル単位の画像データに、必要なヘッダ情報３００１及び画像付加情報等３００３を付加してデータパケットとする。
【００５３】
以下にヘッダ情報３００１に含まれる情報について説明する。
【００５４】
パケットタイプはヘッダ情報３００１内のＰｃｋｔＴｙｐｅ３００４で区別される。ＰｃｋｔＴｙｐｅ３００４にはリピートフラグ３０２２が含まれており、データパケットの画像データが１つ前に送信したデータパケットの画像データと同一の場合、リピートフラグをセットする。またＰｃｋｔＴｙｐｅ３００４にはパケットタイプＩＤ３０２３が含まれており、データパケットかコマンドパケットかを指定できる。
【００５５】
ＣｈｉｐＩＤ３００５はパケットを送信するターゲットとなるチップのＩＤを示し、
【００５６】
ＤａｔａＴｙｐｅ３００６ではデータのタイプを示し、ＰａｇｅＩＤ３００７はページを示しており、ＪｏｂＩＤはソフトウェアで管理するためのＪｏｂ  ＩＤ３００８を格納する。
タイルの番号はＹ方向のＰａｃｋｅｔ  ＩＤ３００９とＸ方向のＰａｃｋｅｔ  ＩＤ３０１０の組み合わせで、ＹｎＸｎで表される。
【００５７】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施の形態では、圧縮アルゴリズムとして、多値カラー（多値グレースケールを含む）の場合はＪＰＥＧを、２値の場合はパックビッツを採用するものとする。圧縮されているか非圧縮かの区別は、ＣｏｍｐｒｅｓｓＦｌａｇ３０１７で示される。
【００５８】
Ｐｒｏｃｅｓｓ  Ｉｎｓｔｒｕｃｔｉｏｎ３０１１は左詰で処理順に設定し、各処理部は、処理後Ｐｒｏｃｅｓｓ  Ｉｎｓｔｒｕｃｔｉｏｎを左に８ビットシフトする。Ｐｒｏｃｅｓｓ  Ｉｎｓｔｒｕｃｔｉｏｎ３０１１にはＵｎｉｔＩＤ３０２４とＭｏｄｅ３０２５の組が８組格納されている。ＵｎｉｔＩＤ３０２４は各処理部を指定し、Ｍｏｄｅ３０２５は各処理部での動作モードを指定する。これにより、１つのパケットを８つの処理部で連続して処理することができる。
【００５９】
ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ３０１２はパケットのトータルバイト数を示す。ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｈ３０１５は画像データのバイト数、ＺＤａｔａＢｙｔｅＬｅｎｇｔｈ３０１６は画像付加情報のバイト数を表し、ＩｍａｇｅＤａｔａＯｆｆｓｅｔ３０１３、ＺＤａｔａＯｆｆｓｅｔ３０１４はそれぞれのデータのパケットの先頭からのオフセットを表している。
【００６０】
各パケットは図５に示すパケットテーブル６００１によって管理する。
【００６１】
パケットテーブル６００１の構成要素は次の通りで、それぞれテーブルの値に０を５ｂｉｔ付加すると、パケットの先頭アドレス６００２、パケットのバイト長６００５となる。
Ｐａｃｋｅｔ  Ａｄｄｒｅｓｓ  Ｐｏｉｎｔｅｒ  （２７ｂｉｔ）  ＋  ５ｂ０００００  ＝  パケット先頭アドレス
Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ  （１１ｂｉｔ）  ＋  ５ｂ０００００  ＝パケットのバイト長
【００６２】
なお、パケットテーブル６００１とチェインテーブル６０１０は分割されないものとする。
【００６３】
パケットテーブル６００１は常に走査方向に並んでおり、Ｙｎ／Ｘｎ＝０００／０００，  ０００／００１，０００／００２，．．．．という順で並んでいる。このパケットテーブル６００１のエントリーは一意にひとつのタイルを示す。また、Ｙｎ／Ｘｍａｘの次のエントリーはＹｎ＋１／Ｘ０となる。
【００６４】
パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上には書かず、パケットテーブル６００１のエントリーに１つめのエントリーと同じＰａｃｋｅｔ  Ａｄｄｒｅｓｓ  Ｐｏｉｎｔｅｒ、Ｐａｃｋｅｔ  Ｌｅｎｇｔｈを格納する。１つのパケットデータを２つのテーブルエントリーが指すようなかたちになる。この場合、２つめのテーブルエントリーのＲｅｐｅａｔ  Ｆｌａｇ６００３が設定される。
【００６５】
パケットがチェインＤＭＡにより複数に分断された場合は、Ｄｉｖｉｄｅ  Ｆｌａｇ６００４を設定し、そのパケットの先頭部分が入っているチェインブロックのチェインテーブル番号６００６を設定する。
【００６６】
チェインテーブル６０１０のエントリーはＣｈａｉｎ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ６０１１とＣｈａｉｎ  Ｂｌｏｃｋ  Ｌｅｎｇｔｈ６０１２からなっており、テーブルの最後のエントリーにはＡｄｄｒｅｓｓ、Ｌｅｎｇｔｈ共に０を格納しておく。
【００６７】
・コマンドパケット（図６）
本パケットフォーマットはレジスタ設定バス２１０９へのアクセスを行うためのものである。本パケットを用いることにより、ＣＰＵ２００１より画像メモリ２１２３へのアクセスも可能である。
【００６８】
ＣｈｉｐＩＤ４００４にはコマンドパケットの送信先となるタイル画像処理部２１４９を表すＩＤが格納される。ＰａｇｅＩＤ４００７、ＪｏｂＩＤ４００８はソフトウェアで管理するためのＰａｇｅ  ＩＤとＪｏｂ  ＩＤを格納する。Ｐａｃｋｅｔ  ＩＤ４００９は１次元で表されるデータパケットのＸ−ｃｏｏｒｄｉｎａｔｅのみを使用する。パケットバイトレングス４０１０は１２８バイト固定である。
【００６９】
パケットデータ部４００２には、アドレス４０１１とデータ４０１２の組を１つのコマンドとして、最大１２個のコマンドを格納することが可能である。書き込みか読み込みかのコマンドのタイプはＣｍｄＴｙｐｅ４００５で示され、コマンドの数はＣｍｄｎｕｍ４００６で示される。
【００７０】
・インタラプトパケット（図７）
インタラプトパケットはタイル画像処理部２１４９からＣＰＵ２００１への割り込みを通知するためのものである。ステータス処理部２１０５はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプトパケットを送信してはならない。パケットバイトレングス５００６は１２８バイト固定である。
【００７１】
パケットデータ部５００２には、タイル画像処理部２１４９の各内部モジュールのステータス情報５００７が格納されている。ステータス処理部２１０５はタイル画像処理部２１４９内の各モジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。
【００７２】
ＣｈｉｐＩＤ５００４にはインタラプトパケットの送信先となるシステム制御部２１５０を表すＩＤが、また、ＩｎｔＣｈｉｐＩＤ５００５にはＩｎｔｅｒｒｕｐｔ  Ｐａｃｋｅｔの送信元となるタイル画像処理部２１４９を表すＩＤが格納される。
【００７３】
＜タイル伸長部＞
図３におけるタイル伸長部２１０３のブロック図を図８に示す。なお図８において、タイル伸長部１，２いずれの内部構成も図８と同じである。
【００７４】
図８において、４０１は画像リング入力部であり、画像リングＩ／Ｆ３（２１０１）から入力されるヘッダ情報、画像データ及び画像付加情報を取得し、後段に接続されたヘッダ情報保持部４０２、第１伸長処理部４０３及び第２伸長処理部４０４へとそれぞれのデータを出力する。
【００７５】
また、画像リング入力部４０１では画像リングＩ／Ｆ３（２１０１）から送られてくるヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部４０６に矛盾内容に相当する割り込み信号を出力した後、リセット信号（不図示）が入力されるまで動作を停止する。
【００７６】
ヘッダ情報に矛盾がない場合は、ヘッダ情報保持部４０２に対してヘッダ情報を出力した後、画像リングＩ／Ｆ３（２１０１）から画像データと画像付加情報を取得して、ヘッダ情報のＩｍａｇｅＴｙｐｅ３００６に従って第１伸長処理部４０３（本実施の形態ではＪＰＥＧ方式による伸長処理を行う）及び第２伸長処理部２０４（本実施の形態ではパックビッツ方式による伸長処理を行う）それぞれに画像データ又は画像付加情報を出力する。
【００７７】
ヘッダ情報保持部４０２は、第１伸長処理部４０３及び第２伸長処理部４０４において画像データ及び画像付加情報の伸長処理を行っている間、ヘッダ情報を保持するためのブロックである。また、ヘッダ情報保持部４０２は格納したヘッダ情報の中から伸長処理に必要な情報を第１伸長処理部４０３及び第２伸長処理部４０４に対して出力する。
【００７８】
第１伸長処理部４０３は、本実施の形態ではＪＰＥＧ伸長を行うＪＰＥＧ伸長処理部を表す。第１伸長処理部４０３は画像データが複数ｂｉｔ構成であった場合に圧縮画像データの伸長処理を行う。
【００７９】
また、第１伸長処理部４０３では入力された画像データを１タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したパケットの画像データを保持しておくことで、画像リングＩ／Ｆ３（２１０１）から入力された画像データとバッファ内に格納された画像データの比較を行う。比較結果は画像リングＩ／Ｆ４（２１０２）に出力する不図示の画像リング出力部に送られ、ＲｅｐｅａｔＦｌａｇ３０２２を生成する際に参照される。
【００８０】
なお、第１伸長処理部４０３において伸長処理を行っている際に動作の異常を検知した場合、第１伸長処理部４０３は異常動作の内容に相当する割り込み信号をレジスタ設定部４０６に対して出力した後、リセット信号（不図示）が入力されるまで動作を停止する。
【００８１】
第２伸長処理部４０４は、本実施の形態では情報ロスのない伸長方式、具体的にはパックビッツ方式による伸長処理部を表す。第２伸長処理部４０４は、タイル伸長部２１０３に入力されたパケットの画像データが１ｂｉｔ構成であった場合は画像データを、または画像付加情報が存在する（即ち、Ｚｔｙｐｅ３０２０が０でない）場合は画像付加情報を、パックビッツ方式により伸長処理を行う。
【００８２】
また、第１伸長処理部４０３と同様に、第２伸長処理部４０４も入力された画像付加情報を１パケット分格納するためのバッファを持ち、直前に入力された１ｂｉｔ画像データ又は画像付加情報を保持しておくことにより、画像リング入力部４０１から入力された画像又は画像付加情報とバッファ内に格納されたデータの比較を行う。比較結果は画像リングＩ／Ｆ４（２１０２）に出力する不図示の画像リング出力部に送られ、ＲｅｐｅａｔＦｌａｇ３０２２を生成する際に参照される。
【００８３】
なお、第２伸長処理部４０４において伸長処理を行っている際に動作の異常を検知した場合、第２伸長処理部４０４は異常動作の内容に相当する割り込み信号をレジスタ設定部４０６に対して出力した後、リセット信号（不図示）が入力されるまで動作を停止する。
【００８４】
４０５はタイルバスＩ／Ｆ部であり、タイルバス２１０７とハンドシェイクを行い、ヘッダ情報保持部４０２、第１伸長処理部４０３及び第２伸長処理部４０４から処理情報及び画像データ、画像付加情報を取得し、ヘッダ情報に対して所定の値を設定してから図４に示すデータパケットを生成してタイルバス２１０７に出力する。
【００８５】
レジスタ設定部４０６は画像リング入力部４０１、第１伸長処理部４０３及び第２伸長処理部４０４から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部２１０５に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【００８６】
４０７はレジスタ設定バスＩ／Ｆ部であり、レジスタ設定バス２１０９からタイル伸長部２１０３に入力されたアドレス及び設定値を、レジスタ設定部４０６が受け取れるフォーマットに変換して送るためのブロックである。
【００８７】
なお、レジスタ設定バスＩ／Ｆ部４０７はレジスタ設定バス２１０９からレジスタ設定値を受け取るだけでなく、レジスタ設定バスが示したアドレスに対応する設定値をレジスタ設定部４０６から読み出してレジスタ設定バス２１０９に出力することも可能である。
【００８８】
＜第１伸長処理部＞
図９は本発明の実施の形態における図８の第１伸長処理部４０３の構成を示すブロック図である。
【００８９】
なお、本実施の形態では伸長画像データが８ビット構成、２４ビット構成又は３２ビット構成である場合、つまり圧縮画像データが第１伸長処理部４０３において伸長処理される場合について説明する。
【００９０】
図９において５１０はＪＰＥＧ伸長部であり、本実施の形態ではＪＰＥＧ伸長部５１０は圧縮画像データのＪＰＥＧ方式による伸長を行う。ＪＰＥＧ伸長部５１０内はさらに３つの処理ブロックが存在する。なお、ＪＰＥＧ伸長部５１１、５１２の内部構成は全てＪＰＥＧ伸長部５１０と同じである。
【００９１】
５００は画像リング入力部４０１から送られてきたデータを格納するための第１データバッファであり、所定量（１タイル分）のデータが送られると後段に接続されたＪＰＥＧ伸長部５１０、５１１、５１２に対して所定の順序に従って画像データを出力する。第１のデータバッファ５００にはヘッダ情報保持部４０２からヘッダ情報のＰｃｋｔＴｙｐｅＩＤ３０２３も入力され、画像リング入力部４０１から送られてきたデータが、データパケットかコマンドパケットであるかを判別する。データパケットであれば、入力されたパケットの順に、１タイル分のデータ毎にＪＰＥＧ伸長部５１０→５１１→５１２（その後５１０に戻る）の順で、それぞれのハフマン復号化部５０１へと転送する。コマンドパケットであれば、次に入力されたパケットデータが転送されるＪＰＥＧ伸長部内の量子化テーブル５０４へと転送し、コマンドパケット内部のデータ４０１２をアドレス４０１１をもとに量子化テーブル５０４に設定する。なお、量子化テーブル５０４は、逆量子化部５０２において逆量子化を行うための量子化値を格納している。
【００９２】
また、ＪＰＥＧ伸長部５１０、５１１、５１２のそれぞれに対するデータ転送は、第２のデータバッファ５０５から出力される、後述の転送許可信号５０００、５００１、５００２により許可を受けたのちに開始される。
【００９３】
５０１はハフマン復号化部であり、第１データバッファ５００から入力された圧縮画像データに対して所定の復号化を行い、復号化データを生成する。ハフマン復号化部５０１は符号化が不可能なデータが入力されると、ハフマン復号化部５０１からレジスタ設定部４０６に対してエラー割り込み信号を出力する。
【００９４】
５０２は逆量子化部であり、ハフマン復号化部５０１から出力された復号データに対して所定の量子化値を用いて逆量子化を行って逆量子化データを生成する。量子化値は量子化テーブル５０４から入力される。逆量子化部５０２は逆量子化を行った結果が所定の値以外の値になると、レジスタ設定部４０６に対してエラー割り込み信号を出力する。
【００９５】
５０３は逆ＤＣＴ変換部であり、逆量子化部５０２から入力されたデータに対して逆離散コサイン変換を行う。逆ＤＣＴ変換部５０３は逆ＤＣＴ変換の演算中にエラーが発生すると、レジスタ設定部４０６に対してエラー割り込み信号を出力する。
【００９６】
５０５はＪＰＥＧ伸長部５１０、５１１、５１２それぞれの逆ＤＣＴ変換部で逆ＤＣＴ変換したデータを格納するための第２データバッファであり、ＪＰＥＧ伸長部５１０、５１１、５１２からそれぞれ１タイル分、合計３タイル分のデータバッファを持つ。ＪＰＥＧ伸長部５１０、５１１、５１２からそれぞれ１タイル分の復号データを取得すると、ＪＰＥＧ伸長部５１０→５１１→５１２（→５１０に戻る）の順で受け取ったデータをタイルバスＩ／Ｆ部４０５へと出力する。第２データバッファ５０５はタイルバスＩ／Ｆ部４０５とハンドシェイクを行い、タイルバスＩ／Ｆ部４０５への転送が許可されないときには、タイルバスＩ／Ｆ部４０５への出力を中止する。タイルバスＩ／Ｆ部４０５への出力の中止や、ＪＰＥＧ伸長の時間差から各データバッファの出力が中止され、フル状態になると、第１のデータバッファ５０１へのそれぞれの転送許可信号５０００、５００１、５００２を不許可にすることで、ＪＰＥＧ伸長部５１０、５１１、５１２へのそれぞれのデータ転送を中止する。
【００９７】
第２データバッファ５０５で並び替えられた伸長画像データの各パケットは、タイルバス２１０７を介して画像出力Ｉ／Ｆ２１１３に送られ、ラスターデータに変換された後、プリンタ２０９５に転送される。
【００９８】
以上のようにして、複数の画像伸長部（ＪＰＥＧ伸長部）を順番に使用するように自動的に切り替えることで、複数の画像伸長部を同時に動作することが可能となる。
【００９９】
また、各画像伸長部の伸長処理係数（量子化テーブル）をコマンドパケットにより設定することで、伸長処理係数を変更する際に、ある画像伸長部で処理が行われていても、すでにデータ転送の終了した画像伸長部に対して先行して変更できることから、伸長処理係数の変更時にも、画像伸長部から高速のデータ転送が可能となる。
【０１００】
本実施の形態では、上記の画像伸長部をいくつ使用するかを切り替えることで、画像伸長処理の速度を変更することが可能である。本実施の形態では簡単のために、３つの画像伸長部を使用する構成で説明したが、それ以上の構成にした場合には、より高速なプリントスピードが得られることは言うまでも無い。
【０１０１】
また、本実施の形態では、図９のＪＰＥＧ伸長部５１０、５１１、５１２の順番で画像データを配分する場合について説明したが、この順番に関わらず、処理可能なＪＰＥＧ伸長部に適宜割り振るようにしても良い。
【０１０２】
更に、本発明はＪＰＥＧ方式に限るものではなく、その他公知の圧縮方式にも同様に適用可能であることは言うまでもない。
【０１０３】
即ち、本第１の実施形態によれば、伸長装置は、それぞれが、圧縮データを所定単位で伸長する伸長処理手段と、前記伸長処理手段で伸長処理に用いる伸長処理情報を保持する保持手段とを有する、並行処理可能な複数の伸長手段と、データをパケット単位で入力し、入力したデータが圧縮データであるか伸長処理情報設定データであるかを判断し、圧縮データである場合には所定単位毎に前記複数の伸長手段に割り当てて前記伸長処理手段に出力し、伸長処理情報設定データである場合には、当該伸長処理情報設定データに対応する圧縮データを処理する伸長手段の前記保持手段に出力する割当手段とを有し、前記割当手段は、前記伸長処理情報設定データを出力する先の伸長手段が処理可能状態である場合に、他の伸長手段の処理状況に関わらず、前記伸長処理情報設定データを出力する。
【０１０４】
また、それぞれが、圧縮データを所定単位で伸長する伸長処理手段と、前記伸長処理手段で伸長処理に用いる伸長処理情報を保持する保持手段とを有する、並行処理可能な複数の伸長手段を用いた本第１の実施形態にかかる伸長方法は、データをパケット単位で入力する入力工程と、入力したデータが圧縮データであるか伸長処理情報設定データであるかを判断する判断工程と、圧縮データである場合に、所定単位毎に前記複数の伸長手段に割り当てて前記伸長処理手段に出力する第１の出力工程と、伸長処理情報設定データである場合に、当該伸長処理情報設定データに対応する圧縮データを処理する伸長手段の前記保持手段に出力する第２の出力工程とを有し、前記第２の出力工程では、伸長処理情報設定データを出力する先の伸長手段が処理可能状態である場合に、他の伸長手段の処理状況に関わらず、前記伸長処理情報設定データを出力する。
【０１０５】
好ましくは、前記割当手段は、入力する圧縮データを前記複数の伸長手段に所定順で割り当てる。
【０１０６】
例えば、前記割当手段は、前記複数の伸長手段の内、処理可能な伸長手段に圧縮データを割り当てる。
【０１０７】
また、前記伸長処理情報は、伸長処理係数である。
【０１０８】
また、前記伸長処理情報設定データに対応する圧縮データとは、前記伸長処理情報設定データの直後に入力される圧縮データである。
【０１０９】
また、好ましくは、前記圧縮データは画像データであって、前記複数の伸長手段により伸長された伸長データを外部出力部にラスター順で出力する出力手段を更に有する。
【０１１０】
【発明の効果】
上記の通り本発明によれば、並行処理可能な複数の伸長処理部を用いて、より高速に伸長処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の概要を示す伸長処理部のブロック図である。
【図２】本発明の画像入出力装置が接続されるネットワークシステムの構成例を示すブロック図である。
【図３】本発明の実施の形態における画像入出力装置の制御部の構成を示すブロック図である。
【図４】本発明の実施の形態で用いるイメージパケットの構成を表す図である。
【図５】本発明の実施の形態で用いるパケットテーブルを表す図である。
【図６】本発明の実施の形態で用いるコマンドパケットの構成を表す図である。
【図７】本発明の実施の形態で用いるインタラプトパケットの構成を表す図である。
【図８】本発明の実施の形態におけるタイル伸長部の構成を示すブロック図である。
【図９】本発明の実施の形態における伸長処理部の構成を示すブロック図である。
【図１０】従来の画像伸長部の構成例を示すブロック図である。
【図１１】従来の画像伸長部の別の構成例を示すブロック図である。
【図１】
2004253906.tif 000003
【図２】
2004253906.tif 000004
【図３】
2004253906.tif 000005
【図４】
2004253906.tif 000006
【図５】
2004253906.tif 000007
【図６】
2004253906.tif 000008
【図７】
2004253906.tif 000009
【図８】
2004253906.tif 000010
【図９】
2004253906.tif 000011
【図１０】
2004253906.tif 000012
【図１１】
2004253906.tif 000013