(57)【要約】【課題】装置構成並びに装置の設計を容易にしながら、タイル等の画素ブロック単位に圧縮に関するパラメータを変更可能にする。【解決手段】スキャナ２０７０等の画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部２１１２、分割した画素ブロックを圧縮符号化する画像圧縮部２１０６、圧縮符号化した圧縮符号化情報を記憶する画像記憶部２００２を備え、この分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置であって、前記分割部２１１２は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力し、前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化し、前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶する。【選択図】　図１１
2004120135.tif 000002
【特許請求の範囲】
【請求項１】
画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部、分割した画素ブロックを圧縮符号化する画像圧縮部、圧縮符号化した圧縮符号化情報を記憶する画像記憶部を備え、前記分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置であって、
前記分割部は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力し、
前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化し、
前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶する
ことを特徴とする画像処理装置。
【請求項２】
前記画像入力部は画像読取装置であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
請求項１において、前記画像入力手段はページ記述言語から画像情報を生成するコントローラ装置であることを特徴とする画像処理装置。
【請求項４】
前記画像データと付加情報は前記画像圧縮部によりそれぞれ異なる圧縮方法により圧縮されることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記画像圧縮部の画像圧縮処理はＪＰＥＧ圧縮であり、前記前記分割部は、画像をＪＰＥＧ圧縮する単位の整数倍のサイズに分割することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記画像圧縮部には複数の量子化テーブルを有し、パラメータによって使用する量子化テーブルを選択することにより圧縮率を変更させることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記圧縮手段は複数のハフマンテーブルを有し、前記パラメータで示されるハフマンテーブルを選択することにより圧縮率を変更することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部、分割した画素ブロックを圧縮符号化する画像圧縮部、圧縮符号化した圧縮符号化情報を記憶する画像記憶部を備え、前記分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置の制御方法であって、
前記分割部は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力する工程を有し、
前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化する工程と有し、
前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶する工程を有する
ことを特徴とする画像処理装置の制御方法。
【請求項９】
画像データを圧縮し記憶する画像処理装置であって、
入力した画像を所定の画素ブロックに分割し、当該画素ブロックの属性を判別し、判別した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力する画像分割手段と、
分割して得た画素ブロックのパケットデータを受信して、圧縮符号化する圧縮手段と、
該圧縮手段で圧縮符号されたデータ量を計数し、所定量になったか否かを判断する計数手段と、
圧縮符号化されたデータをパケットデータとして記憶する記憶手段とを備え、
前記圧縮手段は、
前記画像分割手段より出力されたパケットデータ中の付加情報及び前記計数手段による判断結果によって決定されるパラメータに基づいて圧縮符号化することを特徴とする画像処理装置。
【請求項１０】
前記画像分割手段で分割する画像は原稿読取装置で読取られた画像であることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記画像分割手段で分割する画像はページ記述言語から生成される画像であることをことを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
画像圧縮手段は、ＪＰＥＧ圧縮を行うものであって、前記パラメータは量子化ステップを決定するためのものであることを特徴とする請求項９に記載の画像処理装置。
【請求項１３】
前記画素ブロックのサイズは、ＪＰＥＧ圧縮する際の画像処理単位（８×８画素）の整数倍の画像サイズであることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記圧縮手段は、ＪＰＥＧ圧縮する際に行ったＤＣＴ変換後の係数に対し、高周波成分について異なる量子化ステップを有する複数の量子化テーブルを備えることを特徴とする請求項１２又は１３に記載の画像処理装置。
【請求項１５】
前記付加情報には、前記画素が文字を構成する画像データの一部であるか否かを示すための情報が含まれることを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
前記圧縮手段は、少なくとも第一の量子化テーブル及び第二の量子化テーブルの２つを有し、第一の量子化テーブルは第二の量子化テーブルよりも高周波成分の画像劣化が少なく、高周波成分の圧縮率が低いことを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記付加情報により、注目画素ブロックが全て文字でないことを表している場合、もしくは、１つでも文字データが混在していることを表している場合、もしくは、文字データ画素が閾値個数以上混在している場合に、前記第一の量子化テーブルを選択することを特徴とする請求項１６に記載の画像処理装置。
【請求項１８】
前記付加情報により、注目画素ブロックが全て文字であることを表している場合、もしくは、１つでも文字データが混在してないことを表している場合、もしくは、文字データ画素が閾値個数以下混在している場合に、前記第二の量子化テーブルを選択することを特徴とする請求項１６に記載の画像処理装置。
【請求項１９】
画像データを圧縮し記憶する画像処理装置の制御方法であって、
入力した画像を所定の画素ブロックに分割し、当該画素ブロックの属性を判別し、判別した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力する画像分割工程と、
分割して得た画素ブロックのパケットデータを受信して、圧縮符号化する圧縮工程と、
該圧縮工程で圧縮符号されたデータ量を計数し、所定量になったか否かを判断する計数工程と、
圧縮符号化されたデータをパケットデータとして所定の記憶手段に格納する工程とを備え、
前記圧縮工程は、
前記画像分割工程より出力されたパケットデータ中の付加情報及び前記計数手段による判断結果によって決定されるパラメータに基づいて圧縮符号化することを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置及びその制御方法、詳しくは、画像データを圧縮符号化する画像処理装置及びその制御方法に関するものである。
【０００２】
【従来の技術】
従来、画像処理装置が画像読取装置などの画像入力装置から処理装置内部のメモリに画像データや画像データに付随する画像情報を格納する場合、画像処理装置に取り込んだ画像データ及び画像情報に対して、画像をタイル状に分割し、タイル毎にＪＰＥＧ圧縮処理を行うことによってデータ量を減少してからメモリへ格納することが一般的である。
【０００３】
これは画像データ及び画像情報を格納するためのメモリ容量を削減するのと同時に、画像処理装置−メモリ間、及び印字を行う際にメモリ−印字装置間のデータの転送量を削減するために行われる。
【０００４】
また、圧縮されたタイル画像データを、１つのタイルが１つのパケットに対応したパケット形式でデータ通信を行うことがある。パケットは、ヘッダ部と画像データ部から構成され、ヘッダ部には、パケットのデータサイズや画像全体におけるタイルの位置、画像処理内容といった情報が格納されており、画像データ部には、圧縮されたタイル画像データまたは非圧縮のタイル画像データが格納されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来例においては、ある特定の位置のタイルで設定を変更することは行っていなかった。従来例においては、圧縮はページ毎に行い、ページの先頭で圧縮パラメータを画像圧縮回路に設定していた。
【０００６】
圧縮のパラメータは画像の特徴に合わせて変更したほうが望ましい。例えば、文字が書かれたタイルでは、高周波数成分をあまり圧縮しない圧縮パラメータを設定して精細な画像とすることが望ましく、自然画像が書かれたタイルでは、高周波数成分の画像圧縮率を上げた圧縮パラメータを設定してデータサイズの小さい画像とすることが望ましい。従来の画像処理装置では、文字画像タイルと自然画像タイルなど特徴の異なる画像が１ページ中に混在したときに、それぞれのタイル画像の特徴に合わせて画像圧縮パラメータを変更することが不可能であり、画像の品位を保ちつつ、圧縮率の高い画像圧縮を行うことが難しいという問題点があった。
【０００７】
本発明は上記問題点に鑑みなされたものであり、装置構成並びに装置の設計を容易にしながら、タイル等の画素ブロック単位に圧縮に関するパラメータを変更可能な画像処理装置及びその制御方法を提供しようとするものである。
【０００８】
また、他の発明は、上記目的に加えて、目標サイズに画像を圧縮することを可能ならしめる画像処理装置及びその制御方法を提供しようとするものである。
【０００９】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。
【００１０】
画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部、分割した画素ブロックを圧縮符号化する画像圧縮部、圧縮符号化した圧縮符号化情報を記憶する画像記憶部を備え、前記分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置であって、
前記分割部は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力し、
前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化し、
前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶することを特徴とする。
【００１１】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１２】
［ハードウェアの説明］
本実施形態におけるデジタル複合機のブロック構成を図１０に示す。図中、２０００は、実施形態の画像入出力制御装置及び画像処理装置を適用可能なコントローラ（Ｃｏｎｔｒｏｌｌｅｒ　Ｕｎｉｔ）である。
【００１３】
ここで、２１５０はデジタル複合機全体を制御するシステム制御部である。２１４９は入力した画像データに対して所定の画像処理を行う画像処理部であり、その詳細については後述する。２００８は画像リングであり、システム処理部２１５０と画像処理部２１４９をリング状に接続する。
【００１４】
２０１２は各種設定や動作指示操作を行うための操作部であり、タッチパネル、液晶表示器、各種スイッチやボタンで構成される。２００２はＲＡＭ、２００３はＲＯＭである。２１４３は汎用ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ　Ｂｕｓ）バスであり、２００４は外部記憶装置（例えばハードディスクやＭＯ等の大容量記憶装置）、２１４４はディスクコントローラである。２０５０は、公衆回線と接続するためのモデム、２１４６はＰＨＹ／ＰＭＤであり、ＬＡＮ２０１１と接続しており、デジタル複合機はモデム２０５０及びＰＨＹ／ＰＭＤを介して外部機器と通信可能である。画像処理部２１４９には、プリンタ２０９５、画像メモリ２１２３、スキャナ２０７０が接続される。
【００１５】
ここで、ハードウェアとしての観点から見た、コントローラ２０００の構成について説明する。デジタル複写機等、デジタル複合機におけるコントローラは、システムＬＳＩとして、システム制御部２１５０、画像処理部２１４９それぞれ１つの半導体基板上に構成している。また、ここで述べる半導体基板は、ＩＣチップと言い換えることできる。すなわち、本実施形態では、コントローラ２０００が１つのプリント基板であり、このプリント基板上に、システム制御部２１５０、画像処理部２１４９がＩＣチップとして実装されている。但し、本発明はこれに限るものではなく、例えば、システム制御部２１５０、画像処理部２１４９が、それぞれ別々のプリント基板上にＩＣチップとして実装されていてもよい。また、システム制御部２１５０、画像処理部２１４９が同一半導体基板上に構成されていてもよい。
【００１６】
次に、主に、システム制御部２１５０及び画像処理部２１４９の内部構成を説明するための詳細な全体構成を図１１に示す。
【００１７】
コントローラ２０００は、画像入力デバイスであるスキャナ２０７０（ＡＤＦを搭載している）や画像出力デバイスであるプリンタ２０９５と接続し、一方ではＬＡＮ２０１１や公衆回線ＷＡＮ２０５１と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う為のコントローラである。
【００１８】
ＣＰＵ２００１はシステム全体を制御するプロセッサである。本実施の形態では２つのＣＰＵを用いた例を示している。これら二つのＣＰＵは、共通のＣＰＵバス２１２６に接続され、さらに、システムバスブリッジ２００７に接続される。
【００１９】
システムバスブリッジ２００７は、バススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、ＩＯバス１（２１２７）、ＩＯバス２（２１２９）、画像リングインターフェース１（２１４７）、画像リングインターフェース２（２１４８）が接続される。
【００２０】
ＲＡＭ２００２は、ＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＡＭ２００２は、ＲＡＭコントローラ２１２４により制御される。
【００２１】
ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＲＯＭコントローラ２１２５により制御される。
【００２２】
ＩＯバス１（２１２７）は、内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ、ＵＳＢインターフェース２１３８、汎用シリアルポート２１３９、インタラプトコントローラ２１４０、ＧＰＩＯインターフェース２１４１が接続される。ＩＯバス１（２１２７）には、バスアービタ（図示せず）が含まれる。
【００２３】
操作部Ｉ／Ｆ２００６は操作部ＵＩ２０１２とのインターフェース部で、操作部２０１６に表示する画像データを操作部２０１２に対して出力する。また、操作部２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。
【００２４】
ＩＯバス２（２１２９）は内部ＩＯバスの一種であり、汎用バスインターフェース１及び２（２１４２）と、ＬＡＮコントローラ２０１０が接続される。ＩＯバス２（２１４２）にはバスアービタ（図示せず）が含まれる。
【００２５】
汎用バスインターフェース１と２（２１４２）は、２つの同一のバスインターフェースから成り、標準ＩＯバスをサポートするバスブリッジである。本実施の形態では、ＰＣＩバス（２１４３）を採用した例を示した。
【００２６】
実施形態での外部記憶装置２００４はハードディスクドライブ（以下、ＨＤＤ）で、システムソフトウェア、画像データを格納するためのもので、ディスクコントローラ２１４４を介して一方のＰＣＩバス２１４３に接続される。
【００２７】
ＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介しＬＡＮ２０１１に接続し、情報の入出力を行う。Ｍｏｄｅｍ２０５０は公衆回線２０５１に接続し、情報の入出力を行う。
【００２８】
パケット転送手段である画像リングインターフェース１（２１４７）及び画像リングインターフェース２（２１４８）は、システムバスブリッジ２００７と画像データを高速で転送する画像リング２００８を接続し、タイル化されたデータをＲＡＭ２００２と画像処理部２１４９間で転送するＤＭＡコントローラである。
【００２９】
同じくパケット転送手段である画像リング２００８は、一連の単方向接続経路の組み合わせにより構成される。画像リング２００８は、画像処理部１（２１４９）内で、画像リングインターフェース３（２１０１）、及び画像リングインターフェース４（２１０２）を介し、コマンド処理部２１０４、ステータス処理部２１０５、タイルバス２１２７に接続される。
【００３０】
なお、通信単位となるパケットの書式については後述するが、やりとりされる情報には画像データがあるのは勿論、コマンド、割り込み要求等がある。これらの各信号をやりとりするのに、それぞれに専用の信号線を割り当ててしまうと回路（チップサイズ）及びＬＳＩパッケージの規模が大きくなり、コストが増加する。かかる点、上記のように、システム制御部２１５や画像処理部２１９間では、システムとして動作するのに必要な情報をすべてパケット形式の情報通信という形式にすることで、それぞれの回路が単独に設計できて、より自由度が増し、各回路に汎用性を持たせることも可能になる。
【００３１】
コマンド処理部２１０４は、画像リングインターフェースへの接続に加え、レジスタ設定バス２１０９に接続され、画像リングを介して入力したＣＰＵ２００１より発行されたレジスタ設定要求を、レジスタ設定バス２１０９に接続される該当ブロックへ書き込む。また、ＣＰＵ２００１より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース４（２１０２）に転送する。
【００３２】
ステータス処理部２１０５は各画像処理部の情報を監視し、ＣＰＵ２００１に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインターフェース４（２０１２）に出力する。
【００３３】
タイルバス２１０７には上記ブロックに加え、画像入力インターフェース２１１２、画像出力インターフェース２１１３、複数の矩形画像処理部２１１６〜２１１９、２０３０等の機能ブロックが接続される。
【００３４】
本実施の形態では、矩形画像処理部として、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、解像度変換部２１１６を実装している。スキャナ２０７０は画像処理部２１４９に接続されている。
【００３５】
画像処理部２１４９内の、画像入力インターフェース２１１２は、後述するスキャナ２１７０により補正画像処理されたラスタイメージデータを入力とし、以下に示す処理を行う。
【００３６】
先ず、１画素単位に、画素が文字・線画中のものであるか、中間調画内にあるのか等を判断し、１画素毎に設けられる画像付加情報（以下、Ｚフラグと記す）３００３に文字・線画である場合に１を、そうでなければ０をセットする。実施形態では、後述するように、画像を矩形の画素ブロック（３２×３２画素ブロック）、換言すればタイル単位に圧縮するものであるから、次いで、その画素ブロックを構成する個々の画素のＺフラグの状態に基づいて、注目画素ブロックにおける属性（Ｑ−Ｔａｂｌｅ　ｓｅｌデータ、Ｃｈａｒ−Ｆｌａｇ）を決定する。こうして画素ブロックに対する属性が決定されると、その結果のデータを後段のタイルバス２１０７に出力する（尚、Ｑ−Ｔａｂｌｅ　ｓｅｌの生成の仕方についての詳細については後述する）。実施形態では、各処理部間のデータはパケット単位になされるものであるので、このとき画素ブロックのデータはヘッダ情報（Ｑ−Ｔａｂｌｅ　ｓｅｌデータを含む）＋タイルデータを少なくとも含むパケット形式にし、クロックと同期化して出力する。
【００３７】
画像処理部２１４９内の画像出力インターフェース２１１３は、タイルバス２１０７からの矩形データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ２０９５へ出力する。
【００３８】
画像回転部２０３０は画像データの回転を行い、解像度変換部２１１６は補間／間引き等の処理を行うことで画像の解像度の変更を行う。また、色空間変換部２１１７はカラー及びグレースケール画像の色空間の変換を行う。２値化部２１１８は、多値カラー、グレースケール画像を誤差拡散処理やディザ処理により２値化する。また、多値化部２１１９は２値画像を多値データへ変換するもので、例えば、或る２値画素に着目した際、その周囲の画素群を参照することで注目画素を２ビット以上の多値画素データに変換するものである。
【００３９】
メモリ制御部２１２２は、メモリバス２１０８に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ２１２３に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施の形態では、画像メモリにＳＤＲＡＭを用いるものとする。
【００４０】
次に本実施の形態におけるデジタル複合機のエラー処理について説明する。
【００４１】
画像入力インターフェース２１１２は、次の２つのエラー、つまり、スキャナ２１７０の送るデータよりも画像入力インターフェース２１１２の動作が遅く、画像入力インターフェース２１１２がデータを受け取れなかった場合に起きるオーバーランエラー、および、スキャナ２１７０から不正な垂直同期信号または水平同期信号を受け取ったときに発生する同期エラーを検出する。また、画像入力インターフェース２１１２は、次の６つの割り込み、つまり、スキャナ２１７０から１ページ分のデータを正常に読み込んだときに起きるスキャナ正常動作終了割り込み、および、画像入力インターフェース２１１２が１ページ分のデータを出力して停止後、または、画像入力インターフェース２１１２が外部から動作を強制的に止められた場合、または、画像入力インターフェース２１１２がエラーを検出した時に起きる画像入力インターフェース動作終了割り込み、および、１タイル分のデータの出力が終わるたびに起きるタイル終了割り込み、および、１タイル分のデータの出力を開始するたびに起きるタイル開始割り込み、および、スキャナ２１７０が出す垂直同期信号の立ち上がりを検出したときに発生する垂直同期信号の立ち上がり割り込み、および、垂直同期信号の立ち下がりを検出したときに発生する垂直同期信号の立ち下がり割り込み、および、レジスタで設定されたライン数分のデータをスキャナ２１７０から受け取ったときに発生するマークライン割り込みを発生する。エラーまたは割り込みを検出した画像入力インターフェース２１１２は、割り込み信号を用いてステータス処理部２１０５にエラーまたは割り込みを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーまたは割り込みを知らせる。
【００４２】
画像出力インターフェース２１１３は、次の２つのエラー、つまり、プリンタ２０９５へ送るデータよりも画像出力インターフェース２１１３の動作が遅く、プリンタ２０９５がデータを受け取れなかった場合に起きるアンダーランエラー、および、プリンタ２０９５から不正な垂直同期信号または水平同期信号を受け取ったときに発生する同期エラーを検出する。また、画像出力インターフェース２１１３は、次の６つの割り込み、つまり、プリンタ２０９５へ１ページ分のデータを正常に送ったときに起きるプリンタ正常動作終了割り込み、および、画像出力インターフェース２１１３が１ページ分のデータを出力して停止後、または、画像出力インターフェース２１１３が外部から動作を強制的に止められた場合、または、画像出力インターフェース２１１３がエラーを検出した時に起きる画像出力インターフェース動作終了割り込み、および、１タイル分のデータの出力が終わるたびに起きるタイル終了割り込み、１タイル分のデータの出力を開始するたびに起きるタイル開始割り込み、および、垂直同期信号の立ち上がりを検出したときに発生する垂直同期信号の立ち上がり割り込み、および、垂直同期信号の立ち下がりを検出したときに発生する垂直同期信号の立ち下がり割り込み、および、レジスタで設定されたライン数分のデータをプリンタ２０９５から受け取ったときに発生するマークライン割り込みを発生する。エラーまたは割り込みを検出した画像出力インターフェース２１１３は、割り込み信号を用いてステータス処理部２１０５にエラーまたは割り込みを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーまたは割り込みを知らせる。
【００４３】
ここで、参考までに上で述べた不正な垂直同期信号または水平同期信号について説明する。画像出力インターフェース２１１３および画像入力インターフェース２１１２は、垂直同期信号の立ち上がりから立ち上がりの期間における水平同期信号の立ち上がりの回数を数えている。正常な垂直同期信号および水平同期信号が入力した場合は、垂直同期信号の立ち上がりから立ち上がりの期間における水平同期信号の立ち上がりの回数は変化しないが、不正な垂直同期信号または水平同期信号が入力した場合は、垂直同期信号の立ち上がりから立ち上がりの期間における水平同期信号の立ち上がりの回数は変化する。ここで、垂直同期信号および水平同期信号の立ち上がりで説明したが、立ち下がりであっても良いのは言うまでもない。
【００４４】
画像回転部２０３０は、次の３つのエラー、つまり、パケットヘッダーに画像回転部２０３０で処理できる色形式（ＹＭＣＫ、ＲＧＢα、ＲＧＢ、ＹＵＶ、Ｌａｂ、Ｙ、Ｍ、Ｃ、Ｋ、ＮＤ，ＢＫ）以外の未定義のＩｍａｇｅＴｙｐｅが書かれていたときに起きるＩｍａｇｅＴｙｐｅエラー、および、パケットヘッダーに書かれたＸ座標またはＹ座標が画像回転部２０３０に書かれた１ページのＸサイズまたはＹサイズよりも大きかった場合に起きるＸ座標エラーまたはＹ座標エラー、および、パケットヘッダーに書かれたＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅに画像回転部２０３０で処理できるＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅ（０°回転、９０°回転、１８０°回転、２７０°回転、および、それぞれの鏡像）以外の未定義のＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅが書かれて場合に起きるＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅエラーを検出する。エラーを検出した画像回転部２０３０は、割り込み信号を用いてステータス処理部２１０５にエラーを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーを知らせる。
【００４５】
解像度変換部２１１６は、次の６つのエラー、パケットヘッダーに書かれたＰａｃｋｅｔＴｙｐｅＩＤがデータパケット以外の場合に起きるＰａｃｋｅｔＴｙｐｅエラー、および、パケットヘッダーに解像度変換部２１１６が処理できる色形式（ＹＭＣＫ、ＲＧＢα、ＲＧＢ、ＹＵＶ、Ｌａｂ、Ｙ、Ｍ、Ｃ、Ｋ、ＮＤ，ＢＫ）以外の未定義のＩｍａｇｅＴｙｐｅが書かれていた時に起きるＩｍａｇｅＴｙｐｅエラー、および、パケットヘッダーに書かれたＰａｇｅＩＤが処理中のＰａｇｅＩＤと異なっていた場合に起きるＰａｇｅＩＤエラー、および、パケットヘッダーに書かれたＪｏｂＩＤが処理中のＪｏｂＩＤと異なっていた場合に起きるＪｏｂＩＤエラー、および、パケットヘッダーに書かれたＸ座標またはＹ座標が解像度変換部２１１６が期待した順番どおりでなかった場合に起きるＸ座標エラーまたはＹ座標エラーを検出する。エラーを検出した解像度変換部２１１６は、割り込み信号を用いてステータス処理部２１０５にエラーを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーを知らせる。また、解像度変換部２１１６は、１ページ分の解像度変換したデータを正常に送ったときに起きる解像度変換正常動作終了割り込みを発生する。エラーまたは割り込みを検出した解像度変換部２１１６は、割り込み信号を用いてステータス処理部２１０５にエラーまたは割り込みを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーまたは割り込みを知らせる。
【００４６】
色空間変換部２１１７は次の３つのエラー、つまり、パケットヘッダーに色空間変換部２１１７が処理できる色形式（ＹＭＣＫ、ＲＧＢα、ＲＧＢ、ＹＵＶ、Ｌａｂ、Ｙ、Ｍ、Ｃ、Ｋ、ＮＤ，ＢＫ）以外の未定義のＩｍａｇｅＴｙｐｅが書かれていた時に起きるＩｍａｇｅＴｙｐｅエラー、および、パケットヘッダーに書かれたＰａｃｋｅｔＴｙｐｅＩＤがデータパケット以外の場合に起きるＰａｃｋｅｔＴｙｐｅエラー、および、パケットヘッダーに色空間変換部２１１７が処理できる色形式（ＹＭＣＫ、ＲＧＢα、ＲＧＢ、ＹＵＶ、Ｌａｂ、Ｙ、Ｍ、Ｃ、Ｋ、ＮＤ，ＢＫそれぞれへの変換）以外のＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅが書かれていた場合に起きるＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅエラーを検出する。エラーを検出した色空間変換部２１１７は、割り込み信号を用いてステータス処理部２１０５にエラーを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーを知らせる。
【００４７】
２値化部２１１８は、次の５つのエラー、つまり、パケットヘッダーに２値化部２１１８が処理できる色形式（Ｙ、Ｍ、Ｃ、Ｋ、ＮＤ）以外のＩｍａｇｅＴｙｐｅが書かれていたときに起きるＩｍａｇｅＴｙｐｅエラー、および、パケットヘッダーに書かれたＰａｃｋｅｔＴｙｐｅＩＤがデータパケット以外を示していた場合に起きるＰａｃｋｅｔＴｙｐｅエラー、および、パケットヘッダーに書かれたＰａｇｅＩＤが処理中のＰａｇｅＩＤと異なっていた場合に起きるＰａｇｅＩＤエラー、および、パケットヘッダーに書かれたＪｏｂＩＤが処理中のＪｏｂＩＤと異なっていた場合に起きるＪｏｂＩＤエラー、および、パケットヘッダーに書かれたＸ座標またはＹ座標が２値化部２１１８に書かれた１ページのＸサイズまたはＹサイズよりも大きかった場合に起きるＸ座標エラーまたはＹ座標エラーを検出する。エラーを検出した２値化部２１１８は、割り込み信号を用いてステータス処理部２１０５にエラーを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーを知らせる。
【００４８】
多値化部２１１９は、次の３つのエラー、つまり、パケットヘッダーに黒色以外のＩｍａｇｅＴｙｐｅが書かれていたときに起きるＩｍａｇｅＴｙｐｅエラー、および、パケットヘッダーに書かれたＰａｃｋｅｔＴｙｐｅＩＤがデータパケット以外を示していた場合に起きるＰａｃｋｅｔＴｙｐｅエラー、および、パケットヘッダーに書かれたＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅが多値化部２１１９が処理できるＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅ以外の場合に起きるＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎＭｏｄｅエラーを検出する。エラーを検出した多値化部２１１９は、割り込み信号を用いてステータス処理部２１０５にエラーを知らせ、ステータス処理部２１０５はインタラプトバケットを用いてＣＰＵ２００１にエラーを知らせる。
【００４９】
エラーまたは割り込みを検出したＣＰＵ２００１は、ステータス処理部２１０５、および、各画像処理部のエラーまたは割り込み要因レジスタを読み、それぞれの要因に適した処理を行う。エラーの場合、ＣＰＵ２００１は画像処理部２１４９にリセットを行い、エラーから復帰する。
【００５０】
［システム全体］
次に、本実施の形態におけるデジタル複合機を含むネットワークシステム全体の構成図を図９に示す。
【００５１】
１００１は上述した本実施の形態におけるデジタル複合機であり、本発明の画像出力制御装置及び画像処理装置を適用可能なコントローラにより制御されている。
【００５２】
デジタル複合機１００１は、上記の如く、スキャナとプリンタを有し、スキャナから読み込んだ画像をローカルエリアネットワーク１０１０（以下ＬＡＮ）に流したり、ＬＡＮから受信した画像や印刷データをプリンタによりプリントアウトできる。
【００５３】
また、スキャナから読んだ画像を、モデム２０５０であるＦＡＸ送信手段により、ＰＳＴＮまたはＩＳＤＮ１０３０に送信したり、ＰＳＴＮまたはＩＳＤＮから受信した画像をプリンタによりプリントアウトできる。１００２は、データベースサーバで、デジタル複合機１００１により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００５４】
１００３は、データベースサーバ１００２のデータベースクライアントで、データベース１００２に保存されている画像データの閲覧／検索等ができる。
【００５５】
１００４は、電子メールサーバで、デジタル複合機１００１により読み取った画像を電子メールの添付として受け取ることができる。１００５は、電子メールのクライアントで、電子メールサーバ１００４の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。
【００５６】
１００６がＨＴＭＬ文書をＬＡＮに提供するＷＷＷサーバで、デジタル複合機１００１によりＷＷＷサーバで提供されるＨＴＭＬ文書をプリントアウトできる。
【００５７】
１０１１は、ルータでＬＡＮ１０１０をインターネット／イントラネット１０１２と連結する。インターネット／イントラネットに、前述したデータベースサーバ１００２、ＷＷＷサーバ１００６、電子メールサーバ１００４、デジタル複合機１００１と同様の装置が、それぞれ１０２０，１０２１，１０２２，１０２３として連結している。一方、デジタル複合機１００１は、ＰＳＴＮまたはＩＳＤＮ１０３０を介して、ＦＡＸ装置１０３１と送受信可能になっている。
【００５８】
また、ＬＡＮ上にプリンタ１０４０も連結されており、デジタル複合機１００１により読み取った画像をプリントアウト可能なように構成されている。
【００５９】
［タイル画像（パケット）フォーマット］
次に、本実施形態の画像入出力装置及び画像処理装置を適用可能なコントローラ２０００内で処理されるパケットのフォーマットについて説明する。
【００６０】
本実施形態におけるコントローラ２０００内では、画像データ、ＣＰＵ２００１によるコマンド、各ブロックより発行される割り込み情報等を、パケット化された形式で転送する。本実施形態では、図１２に示すデータパケット、図１３に示すコマンドパケット、図１４に示すインタラプトパケットの３種の異なる種類のパケットが使用される。以下、各パケットについて説明する。
【００６１】
＜データパケット（図１２）＞
まず、図１２を用いてデータパケットについて説明する。本実施形態では画像データを３２画素×３２画素のタイル（Ｔｉｌｅ）単位の画像データ（ＩｍａｇｅＤａｔａ＋ｐａｄｄｉｎｇ）３００２に分割して取り扱う例を示した。
【００６２】
このタイル単位の画像に、必要なヘッダ情報（ｈｅａｄｅｒ）３００１及び画像付加情報等（Ｚｄａｔａ＋ｐａｄｄｉｎｇ）３００３を付加してデータパケット（ＤａｔａＰａｃｋｅｔ）とする。以下にヘッダ情報３００１に含まれる情報について説明を行う。
【００６３】
パケットのタイプはヘッダ情報３００１内のパケットタイプ（ＰｃｋｔＴｙｐｅ）３００４で区別される。チップＩＤ（ＣｈｉｐＩＤ）３００５はパケットを送信するターゲットとなるチップのＩＤを示す。データタイプ（ＤａｔａＴｙｐｅ）３００６ではデータのタイプを示す。ページＩＤ（ＰａｇｅＩＤ）３００７はページを示しており、ジョブＩＤ（ＪｏｂＩＤ）３００８はソフトウェアで管理するためのＩＤを格納する。
【００６４】
タイルの番号はＹ方向のタイル座標３００９とＸ方向のタイル座標３０１０の組み合わせで、ＹｎＸｎで表される。データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では非圧縮の場合を示した。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ（ＣｏｍｐｒｅｓｓＦｌａｇ）３０１７で示される。
【００６５】
プロセスインストラクション（Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ）３０１１は左詰で処理順に設定し、各処理ユニット（上述の矩形画像処理部等）は、処理後プロセスインストラクション３０１１を左に８ビットシフトする。プロセスインストラクション３０１１はユニットＩＤ（ＵｎｉｔＩＤ）３０１９とモード（Ｍｏｄｅ）３０２０の組が８組格納されている。ユニットＩＤ３０１９は各処理ユニットを指定し、モード３０２０は各処理ユニットでの動作モードを指定する。これにより、１つのパケットは８つのユニットで連続して処理することができる。
【００６６】
パケット長（ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ）３０１２はパケットのトータルバイト数を示す。画像データ長（ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｈ）３０１５は画像データのバイト数、Ｚデータ長（ＺｄａｔａＢｙｔｅＬｅｎｇｔｈ）３０１６は画像付加情報のバイト数を表し、画像データオフセット（ＩｍａｇｅＤａｔａＯｆｆｓｅｔ）３０１３、Ｚデータオフセット（ＺｄａｔａＯｆｆｓｅｔ）３０１４は、それぞれのデータのパケットの先頭からのオフセットを表している。３０１５はイメージデータのバイト数（Ｉｍａｇｅ　Ｄａｔａ　Ｂｙｔｅ　ｌｅｎｇｔｈ）を示し、３０１６はＺ−Ｄａｔａのバイト数（Ｚ　Ｄａｔａ　ｂｙｔｅ　ｌｅｎｇｔｈ）を示している。３０１７はパケット内のイメージデータが圧縮されたものであるか否かを示すフラグ（Ｃｏｍｐｒｅｓｓ　Ｆｌａｇ）、３０２９は文字領域であるか否かを示すフラグ（Ｃｈａｒ−Ｆｌａｇ）、３０３０は注目画素ブロック（タイル）を圧縮する際の量子化ステップを決定する量子化テーブル選択データ（Ｑ−Ｔａｂｌｅ　Ｓｅｌ）である。
【００６７】
次に、図１５を用いてパケットテーブル（Ｐａｃｋｅｔ　Ｔａｂｌｅ）について説明する。各パケットはパケットテーブル６００１によって管理する。パケットテーブル６００１の構成要素は次の通りで、それぞれテーブルの値に０を５ｂｉｔ付加すると、パケットの先頭アドレス（ＰａｃｋｅｔＡｄｄｒｅｓｓＰｏｉｎｔｅｒ）６００２、パケット長（Ｂｙｔｅ　Ｌｅｎｇｔｈ）６００５となる。またここで、Ｐａｃｋｅｔ　Ａｄｄｒｅｓｓ　Ｐｏｉｎｔｅｒ　２７ｂｉｔ　＋　５ｂ０００００　＝　パケット先頭アドレス、Ｐａｃｋｅｔ　Ｌｅｎｇｔｈ　１１ｂｉｔ　＋　５ｂ０００００　＝　パケット長の関係が成り立つ。パケットテーブル６００１とチェーンテーブル（ＣｈａｉｎＴａｂｌｅ）６０１０は分割されないものとする。
【００６８】
パケットテーブル６００１は常に走査方向に並んでおり、Ｙｎ／Ｘｎ＝０００／０００，　０００／００１，０００／００２，．．．．という順で並んでいる。このパケットテーブル６００１のエントリは一意にひとつのタイルを示す。また、Ｙｎ／Ｘｍａｘの次のエントリはＹｎ＋１／Ｘ０となる。
【００６９】
パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに１つめのエントリと同じ先頭アドレス（ＰａｃｋｅｔＡｄｄｒｅｓｓＰｏｉｎｔｅｒ）、パケット長（ＰａｃｋｅｔＬｅｎｇｔｈ）を格納する。１つのパケットデータを２つのテーブルエントリが指すようなかたちになる。この場合、２つめのテーブルエントリのリピートフラグ（ＲｅｐｅａｔＦｌａｇ）６００３がセットされる。
【００７０】
パケットがチェーンＤＭＡにより複数に分断された場合は、分割フラグ（ＤｉｖｉｄｅＦｌａｇ）６００４をセットし、そのパケットの先頭部分が入っているチェーンブロックのチェーンテーブル番号（ＣｈａｉｎＴａｂｌｅＮｏ）６００６をセットする。
【００７１】
チェーンテーブル６０１０のエントリはチェーンブロックアドレス（ＣｈａｉｎＢｌｏｃｋＡｄｄｒｅｓｓ）６０１１とチェーンブロック長（ＣｈａｉｎＢｌｏｃｋＬｅｎｇｔｈ）６０１２からなっており、テーブルの最後のエントリにはアドレス、データ長共に０を格納しておく。
【００７２】
＜コマンドパケット（図１３）＞
次に、図６を用いてコマンドパケット（Ｃｏｍｍａｎｄ　Ｐａｃｋｅｔ）について説明する。
【００７３】
コマンドパケットはレジスタ設定バス２１０９へのアクセスを行うためのものである。コマンドパケットを用いることにより、ＣＰＵ２００１より画像メモリ２１２３へのアクセスも可能である。
【００７４】
ヘッダ４００１内のチップＩＤ（ＣｈｉｐＩＤ）４００４にはコマンドパケットの送信先となる画像処理部を表すＩＤが格納される。ページＩＤ（ＰａｇｅＩＤ）４００７、ジョブＩＤ（ＪｏｂＩＤ）４００８はソフトウェアで管理するためのページＩＤとジョブＩＤを格納する。
【００７５】
パケットＩＤ（ＰａｃｋｅｔＩＤ）４００９は１次元で表される。従って、データパケット（Ｄａｔａ　Ｐａｃｋｅｔ）のＸ座標（Ｘ−ｃｏｏｒｄｉｎａｔｅ）４００９のみを使用する。パケット長（ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ）４０１０は１２８Ｂｙｔｅ固定である。
【００７６】
パケットデータ部（Ｃｏｍｍａｎｄ）４００２には、アドレス（Ａｄｄｒｅｓｓ）４０１１とデータ（Ｄａｔａ）４０１２の組を１つのコマンドとして、最大１２個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプは、コマンドタイプ（ＣｍｄＴｙｐｅ）４００５で示され、コマンドの数はコマンド数（Ｃｍｄｎｕｍ）４００６で示される。
【００７７】
＜インタラプトパケット（図１４）＞
最後に、図１４を用いてインタラプトパケット（Ｉｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔ）について説明する。
【００７８】
インタラプトパケットは画像処理部２１４９からＣＰＵ２００１への割り込みを通知するためのものである。ステータス処理部２１０５はインタラプトパケットを送信すると、ＣＰＵ２００１より次に送信の許可がされるまではインタラプトパケットを送信してはならない。
【００７９】
パケット長（ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ）５００６は１２８Ｂｙｔｅ固定である。パケットデータ部（ＩｎｔＤａｔａ）５００２には、画像処理部の各内部モジュール（各矩形画像処理部、入出力インターフェイス等）のステータス情報（ＭｏｄｕｌｅＳｔａｔｕｓ）５００７が格納されている。ステータス処理部２１０５は画像処理部内の各モジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。
【００８０】
チップＩＤ（ＣｈｉｐＩＤ）５００４にはインタラプトパケットの送信先となるシステム制御部２１５０を表すＩＤが、また、インタラプトチップＩＤ（ＩｎｔＣｈｉｐＩＤ）５００５にはインタラプトの送信元となる画像処理部を表すＩＤが格納される。
【００８１】
［タイル圧縮部］
図１１におけるタイル圧縮部２１０６のブロック図を図１に示す。
【００８２】
図１において、１０１はタイルバスインターフェイス部であり、タイルバス２１０７から入力されるデータパケットを取得して一時的に内部バッファに入力されたデータを格納し、後段に接続されたヘッダ情報保持部１０２、第１圧縮処理部１０３及び第２圧縮処理部１０４へヘッダ情報、画像データ及び画像付加情報データをそれぞれ振り分けて出力する。
【００８３】
タイルバス２１０７からタイルバスインターフェイス部１０１へデータパケットを入力する場合、まず初めにデータパケットのヘッダ情報が入力され、タイルバスインターフェイス部１０１ではヘッダ情報内に設定された値を参照してヘッダ情報の後に入力される画像データ及び画像付加情報の入力の準備を行う。
【００８４】
また、タイルバスインターフェイス部１０１ではタイルバスから入力されるヘッダ情報（３００１）の解析を行う。ここでヘッダ情報を解析した結果、ヘッダ情報内に設定された値に矛盾があったり取りうる範囲を越えた値が設定されていた場合、タイルバスインターフェイス部１０１は後述のレジスタ設定部１０９に割り込み信号を出力することでヘッダ情報に矛盾があることを知らせた後、タイルバスからデータパケットの取得を停止する。このデータパケットを取得しない状態はリセット信号（不図示）が入力されるまで続く。
【００８５】
ヘッダ情報（３００１）に矛盾がない場合は、後段に接続されたヘッダ情報保持部１０２に対してヘッダ情報を出力し、続いてタイルバス２１０７から画像データ及び画像付加情報の取得を開始する。
【００８６】
取得した画像データ及び画像付加情報はヘッダ情報のＩｍａｇｅＴｙｐｅ（３００６）を参照して第１圧縮処理部１０３及び第２圧縮処理部１０４に出力される。
【００８７】
例えば、ヘッダ情報におけるＩｍａｇｅＴｙｐｅが１画素を１ビットで表す画像データであるＢｋである場合、タイルバスから取得した画像データは第２圧縮処理部１０４へ出力される。このとき画像付加情報はタイルバスインターフェイス部１０１で捨てられる。
【００８８】
また、ＩｍａｇｅＴｙｐｅがＢｋ以外（８ビットＮＤ、８ビットＲＧＢデータなと多ビット（多値）画像データ）を表す場合は画像データを第１圧縮処理部１０３へ、画像付加情報を第２圧縮処理部１０４へ出力する。ただし、Ｚｔｙｐｅ（３０２０）が画像付加情報がないことを表している場合は画像付加情報は存在しないとみなされ、画像付加情報は第２圧縮処理部において圧縮処理が行われない。
【００８９】
１０２はヘッダ情報保持部であり、第１圧縮処理部１０３及び第２圧縮処理部１０４において画像データ及び画像付加情報の圧縮処理を行う間、内部バッファにヘッダ情報を保持するとともに、格納したヘッダ情報の中から圧縮処理に必要な情報を第１圧縮処理部及び第２圧縮処理部に対して出力する。
【００９０】
また、ヘッダ情報保持部１０２ではタイルバスインターフェイス部１０１から入力されたヘッダ情報と、前記ヘッダ情報が入力される前にヘッダ情報保持部のバッファに格納されていたヘッダ情報（タイル圧縮部２１０６において一つ前に処理を行ったデータパケットのヘッダ情報）と、タイルバスインターフェイス部１０１から入力されたヘッダ情報を比較し、比較結果をバス１１１を用いてパケット生成部１０５へ出力する。
【００９１】
第１圧縮処理部１０３及び第２圧縮処理部１０４により圧縮処理が終了すると、ヘッダ情報保持部１０２に保持したヘッダ情報はパケット生成部１０５からの要求によりバス１１０を用いてパケット生成部へ出力される。
【００９２】
１０３は画像データを圧縮するための第１圧縮処理部であり、本実施形態ではＪＰＥＧ方式による圧縮を行う。また、第１圧縮処理部１０３はタイルバスインターフェイス部１０１から入力された画像データと直前に第１圧縮処理部で圧縮処理を行った画像データについて、それぞれ対応する位置の画素についてデータパケットに含まれる全画素の比較を行い、その比較結果をバス１１３を用いてパケット生成部１０５へ出力する。
【００９３】
第１圧縮処理部１０３で圧縮処理された符号化画像データはパケット生成部１０５からの要求によりバス１１２を用いてパケット生成部へ出力される。
【００９４】
尚、ヘッダ情報内のＩｍａｇｅＴｙｐｅ（３００６）が１ビット画像データ（２値画像データ）であることを表している場合は、画像データは第２圧縮処理部において圧縮処理を行うため第１圧縮部１０３は動作しない。
【００９５】
１０４は画像付加情報、または１ビット画像データを圧縮するための第２圧縮処理部であり、本実施形態では情報ロスのない圧縮方式、具体的にはパックビッツ方式による圧縮を行う。また、第２圧縮処理部１０４はタイルバスインターフェイス部１０１から入力された画像付加情報又は画像データと、直前に第２圧縮処理部で圧縮処理を行った画像付加情報又は画像データについて、第１圧縮処理部１０３と同様にそれぞれ対応する位置の画素に対する画像付加情報または画像データについてデータパケットに含まれる全画素の比較を行い、その比較結果をバス１１４を用いてパケット生成部１０５へ出力する。
【００９６】
第２圧縮処理部１０４で圧縮処理された符号化画像付加情報又は画像データはパケット生成部１０５からの要求によりバス１１３を用いてパケット生成部へ出力される。
【００９７】
１０５はパケット生成部であり、ヘッダ情報保持部１０２、第１圧縮処理部１０３及び第２圧縮処理部１０４からヘッダ情報、画像データ及び画像付加情報を取得して画像データ及び画像付加情報を圧縮したデータパケットを生成する。
【００９８】
また、パケット生成部１０５で生成されるヘッダ情報には、ヘッダ情報保持部１０２、第１圧縮処理部１０３及び第２圧縮処理部１０４から出力された各部の比較結果や第１圧縮処理部１０３及び第２圧縮処理部１０４で符号化を行った後の画像データ量及び画像付加情報のデータ量、データパケットのデータ量や第１圧縮処理部１０３及び第２圧縮処理部１０４で圧縮処理を行ったときに使用したパラメータなどの情報が反映される。
【００９９】
上記のように第１圧縮処理部１０３及び第２圧縮処理部１０４による圧縮処理が終了して符号化データを生成し、各情報がヘッダ情報に反映されると、データパケットは画像リング出力部１０６に出力される。
【０１００】
１０６は画像リング出力部であり、画像リングインターフェイス４（２１０２）と同期を取ってパケット生成部１０５から送られてくるデータパケットを画像リングインターフェイス４（２１０２）に出力する。
【０１０１】
１０９はタイル圧縮部２１０６内部の処理に関する所設定を行うためのレジスタ設定部であり、タイル圧縮部２１０６に所定の圧縮処理を行わせるためにレジスタ設定部１０９に所定の値を設定する。
【０１０２】
これらの設定は図１３に示すコマンドパケットを用いてシステム制御部２１５０から画像処理部２１４９のコマンド処理部２１０４に送られ、コマンド処理部からレジスタ設定バス２１０９を介してタイル圧縮部２１０６に送られる。
【０１０３】
レジスタ設定部１０９に設定された値は、第１圧縮処理部１０３及び第２圧縮処理部１０４に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【０１０４】
尚、レジスタ設定部へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部が保持している設定値をシステム制御部２１５０へ出力することも可能である。
【０１０５】
また、レジスタ設定部１０９ではヘッダ情報を格納するためのレジスタを持ち、タイルバスインターフェース部１０１から割り込み信号が入力されると、タイルバスインターフェース１０１からヘッダ情報を取り込んでレジスタに設定するとともに、ステータス処理部２１０５に対して割り込みが発生したことを知らせるインタラプト信号及びエラーの状態を表すステータス信号を出力する。
【０１０６】
１０８はレジスタ設定バスインターフェイス部であり、レジスタ設定バス２１０９から入力された設定値をレジスタ設定部１０９が取得できるようにフォーマット変換及びハンドシェイクを行うためのブロックである。
【０１０７】
［第１圧縮処理部］
図２は第１圧縮処理部１０３のブロック構成図を示している。図示において、２０１はタイルバスインターフェイス部１０１から送られてきた画像データを格納するための第１のデータバッファであり、所定量のデータが送られると後段に接続されたＤＣＴ変換部２０２に対して所定の順序に従ってデータを出力する。
【０１０８】
尚、第１のデータバッファにはヘッダ情報保持部１０２からヘッダ情報のＩｍａｇｅＴｙｐｅ（３００６）が入力されており、第１のデータバッファへの画像データの入力及び第１のデータバッファからＤＣＴ変換部２０２へ出力するデータの順序、及び画像データのデータ数はＩｍａｇｅＴｙｐｅによって制御される。
【０１０９】
また、タイルバスインターフェイス部から第１のデータバッファに画像データが送られ、前記画像データが第１のデータバッファ内の所定の場所に格納されると同時に前記画像データが格納される場所にそれまで格納されていた画像データ（これは第１の圧縮処理部で直前に処理されたデータパケットの画像データにおいて、前記送られてきた画像データの位置に対応する画像データである）を後述するデータ比較部２１１に出力する。
【０１１０】
２０２はＤＣＴ変換部であり、第１のデータバッファ２０１から所定の順序で画像データが入力されると、離散コサイン変換を行って画像データを周波数成分データに変換する。また、このときＤＣＴ変換部２０２において離散コサイン変換を行うことによって生成された直流成分の値をラッチ信号とともに後述のサムネール生成部２１２に出力する。
【０１１１】
２０３は量子化部であり、ＤＣＴ変換部２０２から出力された周波数成分データに対して、それぞれ所定の量子化値を用いて量子化を行う。尚、量子化に使用する値は後述する量子化テーブルから入力される。ＤＣＴ変換部２０２で量子化に用いる量子化テーブルはヘッダ情報を参照することにより決定される。使用する量子化テーブルを決定方法の詳細は後述する。
【０１１２】
２０４はハフマン符号化部であり、量子化部２０３から出力されたデータに対してハフマン方式の符号化を行って符号化データを生成する。
【０１１３】
２０５は第２のデータバッファであり、ハフマン符号化部２０４で符号化した符号化データを格納するためのバッファである。
【０１１４】
第２のデータバッファ２０５はハフマン符号化部２０４からの符号化データの入力を終了すると、符号化された画像データのデータ量をＤａｔａ　Ｂｙｔｅ　Ｌｅｎｇｔｈとしてパケット生成部１０５に出力するとともに後述のデータカウンタ２１４に出力する。
【０１１５】
その後パケット生成部１０５の要求に従って格納した符号化データを出力する。
【０１１６】
２１１はデータ比較部であり、タイルバスインターフェイス部１０１から入力された画像データと、第１のデータバッファ２０１に格納された画像データとの比較を行う。ここで、第１のデータバッファ２０１からデータ比較部２１１に入力される画像データは、現在タイルバスインターフェイス部１０１から入力されているデータパケットの画像データではなくタイルバスインターフェイス部１０１から入力されているデータパケットの前に第１の圧縮処理部で圧縮処理を行った画像データである。そのため、データ比較部２１１では現在タイルバスインターフェイス部１０１から第１の圧縮処理部に入力されている画像データと、その前に第１の圧縮処理部によって処理された画像データの比較を行っている。
【０１１７】
上記動作をタイルバスインターフェイス部１０１から入力される全画像データに渡って行うことにより、データ比較部２１１ではデータパケットに含まれるすべての画像データに対して前データパケットの画像データとの比較を行うことができる。
【０１１８】
前記比較が１データパケット分終了すると、ひとつのデータパケットの画像データはすべて第１のデータバッファ２０１に格納される。尚、このようにして第１のデータバッファ２０１に格納された画像データは次のデータパケットの画像データがタイルバスインターフェイス部１０１から入力されたときに、データ比較部２１１により次の画像データと比較が行われる。
【０１１９】
タイルバスインターフェイス部１０１から入力される１パケット分の全ての画像データに対して上記比較動作を行った結果は、パケット生成部１０５に対して比較結果Ｃｏｍｐａｒｅ　ｒｅｓｕｌｔとして出力される。
【０１２０】
２１２はサムネール生成部であり、ＤＣＴ変換部２０２から出力されるＤＣＴ変換を行う際に生成される直流成分を取得し、複数の直流成分を基にサムネール値を生成する。ＤＣＴ変換部２０２から直流成分を取得するのは直流成分に同期して出力されるラッチ信号を参照して行われる。生成されたサムネール値はＴｈｕｍｂｎａｉｌ　Ｄａｔａとしてパケット生成部１０５に出力され、ヘッダ情報のＴｈｕｍｂｎａｉｌ　Ｄａｔａ（３０２１）に所定のフォーマットで格納される。
【０１２１】
２１０は量子化部２０３において量子化を行うための量子化値を格納するための量子化テーブル部である。量子化テーブルとはＤＣＴ変換部２０２で離散コサイン変換を行って周波数成分となったデータを各周波数成分ごとに所定の値で除すことにより量子化を行うにあたり、量子化によって各周波数成分を除す値（量子化値）を提供する複数データの集まりであり、ＤＣＴ変換部２０２で生成されたすべての周波数成分に対して量子化値を提供するデータ群を量子化テーブルと呼ぶ。
【０１２２】
量子化部２０３は任意の量子化テーブルの中から、量子化を行う周波数データに対応した量子化値を取得することにより量子化を行う。
【０１２３】
本実施形態の量子化テーブル部は上記量子化テーブルを４つ持ち、後述の量子化テーブル選択部から入力される選択信号によって所定の量子化テーブルを選択して量子化部２０３に量子化値を出力する。
【０１２４】
２１３は量子化テーブル選択部であり、量子化テーブル部２１０に対して量子化テーブル選択信号を出力することによって量子化テーブル部に格納されている複数（本実施形態では４つ）の量子化テーブルの中から所定のテーブルを選択する。量子化部２０３では前記量子化テーブル選択部２１３により選択された量子化テーブルを用いて量子化を行う。
【０１２５】
量子化テーブル選択部２１３にはヘッダ情報保持部２０２からＭｏｄｅ（３０２５）、Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）が、レジスタ設定部１０９からはヘッダ情報に格納するＱ−ＴａｂｌｅＩＤ（３０２８）を決定するためのレジスタ値Ｒｅｇ−Ｑｍｏｄｅ及びＱ−ＴａｂｌｅＩＤとＤＣＴ変換部２０２が使用する量子化テーブルの対応を示すためのレジスタ値Ｒｅｇ−ＱＴＦｉｅｌｄが、そして後述のカウンタ値比較部からはデータカウンタのカウンタ値とレジスタ値の比較結果ｃｏｕｎｔ−ｏｖｅｒが入力されている。量子化テーブル選択部２１３ではこれらの入力を参照することにより量子化部２０３で量子化を行うときに使用する量子化テーブル及びヘッダ情報に格納するＱ−ＴａｂｌｅＩＤを選択している。
【０１２６】
２１４は、第２のデータバッファからパケット生成部に対してデータパケットひとつ分の符号化画像データが出力されるたびに、Ｄａｔａ　Ｂｙｔｅ　Ｌｅｎｇｔｈを取得して内部カウンタに加算するデータカウンタである。データカウンタ２１４は上記動作を繰り返すことによりタイル圧縮部２１０６がシステムバスブリッジ２００７を介してＲＡＭ２００２へ送った符号化画像データの総量を内部カウンタに保持する。
【０１２７】
尚、データカウンタ２１４はヘッダ情報保持部１０２から出力されるカウンタリセット信号により内部カウンタがクリアされる。ヘッダ情報部１０２は後述するように、直前のデータパケットのヘッダ情報と現在第１圧縮処理部１０３により圧縮処理を行っているヘッダ情報のＰａｇｅＩＤ（３００７）及びＪｏｂＩＤ（３００８）を比較し、ＰａｇｅＩＤ、ＪｏｂＩＤのどちらか又は両方が両ヘッダ情報で異なる値であった場合にカウンタリセット信号を出力する。
【０１２８】
上記構成により、データカウンタ２１４では異なるページ、又は異なるジョブのデータパケットが入力されるとカウンタがクリアされる。そのためデータカウンタ２１４の内部カウンタには同一ジョブの同一ページ内における符号化画像データの総量が格納されている。
【０１２９】
２１５はカウンタ値比較部であり、前記データカウンタ２１４の内部カウンタ値とレジスタ設定部１０９から出力されるカウンタ値比較用のレジスタ設定値Ｒｅｇ−ＪＰＥＧＣｏｕｎｔＶａｌｕｅを比較し、その結果をｃｏｕｎｔ＿ｏｖｅｒとして量子化テーブル選択部２１３に出力する。
【０１３０】
データカウンタ２１４、カウンタ値比較部２１５及び量子化テーブル選択部２１３の動作の詳細は後述することとする。
【０１３１】
［第２圧縮処理部］
図４に第２圧縮処理部１０４のブロック図を示す。尚、以下の説明ではタイルバスインターフェイス部１０１から画像付加情報が入力された例について説明を行うが、特に説明がない場合は１ビットの画像データが入力された場合も同様の動作を行う。
【０１３２】
図４において、４０１はタイルバスインターフェイス部１０１から送られてきた画像付加情報を格納するための第１のデータバッファであり、所定量のデータが送られると後段に接続されたパックビッツ符号化部４０２に対して所定の順序に従ってデータを出力する。
【０１３３】
また、タイルバスインターフェイス部から第１のデータバッファに画像付加情報が送られ、前記画像付加情報が第１のデータバッファ内の所定の場所に格納されると同時に前記画像付加情報が格納される場所にそれまで格納されていた画像付加情報（これは第２の圧縮処理部で直前に処理されたデータパケットの画像付加情報において、前記送られてきた画像付加情報の位置に対応する画像付加情報である）を後述するデータ比較部４０５に出力する。
【０１３４】
４０２はパックビッツ符号化部であり、第１のデータバッファ４０１から出力された画像付加情報に対してパックビッツ方式による符号化処理を行って符号化データを生成する。
【０１３５】
４０３は第２のデータバッファであり、パックビッツ符号化部４０２で符号化した符号化データを格納するためのバッファである。
【０１３６】
第２のデータバッファ４０３はパックビッツ符号化部４０２からの符号化データの入力を終了すると、符号化された画像付加情報のデータ量をＤａｔａ　Ｂｙｔｅ　Ｌｅｎｇｔｈとしてパケット生成部１０５に出力するとともに後述のデータカウンタ４０６に出力する。
【０１３７】
その後パケット生成部１０５の要求に従って格納した符号化データを出力する。
【０１３８】
４０５はデータ比較部であり、タイルバスインターフェイス部１０１から入力された画像付加情報と、第１のデータバッファ４０１に格納された画像付加情報との比較を行う。ここで、第１のデータバッファ４０１からデータ比較部４０５に入力される画像付加情報は、現在タイルバスインターフェイス部１０１から入力されているデータパケットの画像付加情報ではなく、タイルバスインターフェイス部１０１から入力されているデータパケットの前に第２の圧縮処理部で圧縮処理を行った画像付加情報である。そのため、データ比較部４０５では現在タイルバスインターフェイス部１０１から第２の圧縮処理部に入力されている画像付加情報と、その前に第２の圧縮処理部によって処理された画像付加情報の比較を行っている。
【０１３９】
上記動作をタイルバスインターフェイス部１０１から入力される全画像付加情報に渡って行うことにより、データ比較部４０５ではデータパケットに含まれるすべての画像付加情報に対して前データパケットの画像付加情報との比較を行うことができる。
【０１４０】
前記比較が１データパケット分終了すると、ひとつのデータパケットの画像付加情報はすべて第１のデータバッファ４０１に格納される。尚、このようにして第１のデータバッファ４０１に格納された画像付加情報は次のデータパケットの画像付加情報がタイルバスインターフェイス部１０１から入力されたときに、データ比較部４０５により次の画像付加情報と比較が行われる。
【０１４１】
タイルバスインターフェイス部１０１から入力される１パケット分の全ての画像付加情報に対して上記比較動作を行った結果は、パケット生成部１０５に対して比較結果Ｃｏｍｐａｒｅ　ｒｅｓｕｌｔとして出力される。
【０１４２】
以上説明した、Ｄａｔａ　Ｂｙｔｅ　Ｌｅｎｇｔｈ及びＣｏｍｐｅｒｅ　ｒｅｓｕｌｔはパケット生成部１０５においてヘッダ情報を生成する情報としてバス１１５によりパケット生成部１０５に送られる（図１参照）。
【０１４３】
４０６は、第２のデータバッファからパケット生成部１０５に対してデータパケットひとつ分の符号化画像付加情報が出力されるたびに、Ｄａｔａ　Ｂｙｔｅ　Ｌｅｎｇｔｈを取得して内部カウンタに加算するデータカウンタである。データカウンタ４０６は上記動作を繰り返すことによりタイル圧縮部２１０６がシステムバスブリッジ２００７を介してＲＡＭ２００２へ送った符号化画像付加情報の総量を内部カウンタに保持する。
【０１４４】
尚、データカウンタ４０６はヘッダ情報保持部１０２から出力されるカウンタリセット信号により内部カウンタがクリアされる。ヘッダ情報部１０２は後述するように、直前のデータパケットのヘッダ情報と現在第１圧縮処理部１０３により圧縮処理を行っているヘッダ情報のＰａｇｅＩＤ（３００７）及びＪｏｂＩＤ（３００８）を比較し、ＰａｇｅＩＤ、ＪｏｂＩＤのどちらか又は両方が両ヘッダ情報で異なる値であった場合にカウンタリセット信号を出力する。
【０１４５】
上記構成により、データカウンタ４０６では異なるページ、又は異なるジョブのデータパケットが入力されるとカウンタがクリアされる。そのためデータカウンタ２１４の内部カウンタには同一ジョブの同一ページ内における符号化画像データの総量が格納されている。
【０１４６】
４０７はカウンタ値比較部であり、前記データカウンタ４０６の内部カウンタ値とレジスタ設定部１０９から出力されるカウンタ値比較用のレジスタ設定値Ｒｅｇ−ＰａｃｋＣｏｕｎｔＶａｌｕｅを比較し、その結果をｃｏｕｎｔ＿ｏｖｅｒとしてバス１１５を用いてパケット生成部１０５に出力する。
【０１４７】
［ヘッダ情報保持部］
図３にヘッダ情報保持部１０２のブロック図を示す。ヘッダ情報部１０２はヘッダバッファ３０１とヘッダ比較部３０２から構成される。
【０１４８】
ヘッダバッファ３０１はタイルバスインターフェイス部１０１から送られてきたヘッダ情報を、第１の圧縮処理部１０３及び第２の圧縮処理部１０４において画像データ及び画像付加情報が圧縮される間、ヘッダ情報を保持するためのバッファであり、また、画像データ、画像付加情報の圧縮処理を行うために必要なヘッダ情報を第１の圧縮処理部１０３及び第２の圧縮処理部１０４に出力する。本実施形態では第１の圧縮処理部１０３に対しては入力される画像データ量を判断するためのＩｍａｇｅＴｙｐｅ、ＪＰＥＧ圧縮に使用する量子化テーブルを決定するためのパラメータとしてＭｏｄｅ及びＱ−Ｔａｂｌｅ　Ｓｅｌが出力される。
【０１４９】
また、第２の圧縮処理部１０４には入力される画像付加情報のデータ量を判断するためのＩｍａｇｅＴｙｐｅが出力される。
【０１５０】
さらに、ヘッダ比較部にはヘッダ情報の比較のために以下に示す内容が出力される。
ＩｍａｇｅＴｙｐｅ（３００６）
Ｐａｇｅ＿ＩＤ（３００７）
Ｊｏｂ＿ＩＤ（３００８）
Ｍｏｄｅ（３０２５）
Ｓｏｕｒｃｅ＿ｉｄ（３０１８）
Ｃｈａｒ＿Ｆｌａｇ　（３０２９）
Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）
Ｚ＿ＤａｔａＴｙｐｅ（３０２０）
データ比較部３０２ではタイルバスインターフェイス部１０１から入力されたヘッダ情報の所定の情報と、ヘッダバッファ３０１に格納されたヘッダ情報との比較を行う。ここで、ヘッダバッファ３０１からデータ比較部３０２に入力されるヘッダ情報は、現在タイルバスインターフェイス部１０１から入力されているデータパケットのヘッダ情報ではなく、タイルバスインターフェイス部１０１から入力されているデータパケットの前にヘッダバッファに格納されていたヘッダ情報である。そのため、データ比較部３０２では現在タイルバスインターフェイス部１０１からヘッダ保持部に入力されているヘッダ情報と、その前にヘッダ保持部に格納されていたヘッダ情報の比較を行っている。
【０１５１】
ヘッダ比較部３０２からは比較結果Ｃｏｍｐａｒｅ　ｒｅｓｕｌｔがパケット生成部１０５に出力される。
【０１５２】
また、データ比較部３０２では第１の圧縮処理部内のデータカウンタ２１４及び第２の圧縮処理部内のデータカウンタ４０６に対してカウンタリセット信号を出力する。カウンタリセット信号はヘッダ情報の比較のために入力されたヘッダ情報のうち、ＰａｇｅＩＤ及びＪｏｂＩＤを参照して行われる。
【０１５３】
すなわちタイルバスインターフェイス部１０１から入力されたＰａｇｅＩＤとヘッダバッファ３０１から入力されたＰａｇｅＩＤ、また同様にＪｏｂＩＤ同士を比較し、その結果ＰａｇｅＩＤとＪｏｂＩＤのどちらか又は両方の値が異なる場合、データ比較部３０２からカウンタリセット信号が出力される。
【０１５４】
これにより、第１の圧縮処理部内のデータカウンタ２１４及び第２の圧縮処理部内のデータカウンタ４０６は異なるページのデータパケットが続けて入力された場合、及び異なるＪｏｂのデータパケットが続けて入力された場合にカウンタリセット信号を出力する。
【０１５５】
［量子化テーブル選択部］
図５に図２に示す量子化テーブル選択部２３１のブロック図を示す。
【０１５６】
量子化テーブル選択部２３１は一つのセレクタ５０２と二つのルックアップテーブル（ＬＵＴ）５０１及び５０３から構成される。
【０１５７】
セレクタ５０２はＬＵＴ５０１を参照する信号を選択を行う。図５ではヘッダ情報のＱ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）とカウンタ値比較部２１５から出力される比較結果ｃｏｕｎｔ＿ｏｖｅｒの一方を選択してＬＵＴ５０１に入力する。本実施形態ではｃｏｕｎｔ＿ｏｖｅｒが選択されている。
【０１５８】
ＬＵＴ５０１はＭｏｄｅ（３０２５）３ビットとセレクタ５０２から出力されるｃｏｕｎｔ＿ｏｖｅｒ１ビットの値を参照して４ビットのＱ−ＴａｂｌｅＩＤ（３０２８）を出力する。ＬＵＴ５０１から出力されるＱ−ＴａｂｌｅＩＤの値はレジスタ設定部１０９から入力されるＲｅｇ−Ｑｍｏｄｅ［６３：０］を利用する。
【０１５９】
図６はＬＵＴ５０１は入力される値（アドレス）に対する出力される値（格納されているデータ）の関係を示す図である。
【０１６０】
例えば、ＬＵＴ５０１にＭｏｄｅ＝０００、データカウンタ２１４の内部カウンタ値がレジスタ値Ｒｅｇ−ＪｐｅｇＣｏｕｎｔＶａｌｕｅ以下であるためｃｏｕｎｔ＿ｏｖｅｒ＝０が入力されると、ＬＵＴ５０１はＲｅｇ−Ｑｍｏｄｅ［６３：０］の中のＲｅｇ−Ｑｍｏｄｅ［３：０］から入力されている値をＱ−ＴａｂｌｅＩＤ（３０２８）として出力する。図６の右側には出力されるＱ−ＴａｂｌｅＩＤ（３０２８）の値の一例を示しているが、その場合Ｑ−ＴａｂｌｅＩＤとして００００が出力される。
【０１６１】
ここで、しばらく第１の圧縮処理部によりデータパケットの圧縮処理が進み、データカウンタ２１４の内部カウンタ値がレジスタ値Ｒｅｇ−ＪｐｅｇＣｏｕｎｔＶａｌｕｅを越えると、カウンタ値比較部２１５からｃｏｕｎｔ＿ｏｖｅｒ＝１が出力される。なお、レジスタ値Ｒｅｇ−ＪｐｅｇＣｏｕｎｔＶａｌｕｅの値は、ＵＩ（操作部）２０１２から設定されるものとするが、原稿サイズによって自動的に決定されるようにしても良い。
【０１６２】
するとＬＵＴ５０１は図６に示すようにＭｏｄｅ＝０００、ｃｏｕｎｔ＿ｏｖｅｒ＝１が入力されるためＲｅｇ−Ｑｍｏｄｅ［３５：３２］の値である１０００がＱ−ＴａｂｌｅＩＤとして出力される。
【０１６３】
上記動作によりＬＵＴ５０１から出力されたＱ−ＴａｂｌｅＩＤはバス１１３を通ってパケット生成部１０５に送られ、ヘッダ情報のＱ−ＴａｂｌｅＩＤ（３０２８）に反映される。
【０１６４】
ＬＵＴ５０３はＬＵＴ５０１から出力されたＱ−ＴａｂｌｅＩＤの値を参照して、量子化テーブル部２１０に対して２ビットの量子化テーブル選択信号ＳＥＬを出力する。セレクタ５０２から出力されるＳＥＬの値はレジスタ設定部１０９から入力されるＲｅｇ−ＱＴＦｉｅｌｄ［３１：０］を利用する。
【０１６５】
図８は、Ｒｅｇ−ＱＴＦｉｅｌｄ［３１：０］の構成を説明するための図であり、Ｒｅｇ−ＱＴＦｉｅｌｄ［３１：０］は、１組２ビットで構成されたＱＴＦｉｅｌｄから成り立ち、１つのレジスタに１６組のＱＴＦｉｅｌｄを持ち、選ばれたＱＴＦｉｅｌｄがＳＥＬとなる。
ｂｉｔ［３１：３０］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１１１１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［２９：２８］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１１１０　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［２７：２６］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１１０１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［２５：２４］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１１００　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［２３：２２］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１０１１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［２１：２０］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１０１０　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［１９：１８］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１００１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［１７：１６］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝１０００　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［１５：１４］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝０１１１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［１３：１２］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝０１１０　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［１１：１０］　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝０１０１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［９：８］　　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝０１００　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［７：６］　　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝００１１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［５：４］　　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝００１０　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［３：２］　　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝０００１　が入力されたときに使用するＱＴＦｉｅｌｄ
ｂｉｔ［１：０］　　　　Ｑ−Ｔａｂｌｅ　ＩＤ＝００００　が入力されたときに使用するＱＴＦｉｅｌｄ
図７はＬＵＴ５０３に入力されるＱ−ＴａｂｌｅＩＤの値（入力アドレス）と出力されるＳＥＬの値（格納データ）との関係を示している。
【０１６６】
例えば、ＬＵＴ５０３にＱ＝ＴａｂｌｅＩＤ　＝００００が入力されると、ＬＵＴ５０３はＲｅｇ−ＱＴＦｉｅｌｄ［３１：０］の中のＲｅｇ−　ＱＴＦｉｅｌｄ［１：０］から入力されている値をＳＥＬとして出力する。図７の右側には出力されるＳＥＬの値及びそのとき量子化テーブル部２１０で選択される量子化テーブルの一例を示している。図７ではＱ＝ＴａｂｌｅＩＤ　＝００００が入力されるとＳＥＬとして００が出力され、量子化テーブルＱ０が選択される。
【０１６７】
また、図６に示すようにＬＵＴ５０１にｃｏｕｎｔ＿ｏｖｅｒ＝１が入力され、ＬＵＴ５０１から出力されるＱ−ＴａｂｌｅＩＤが１０００に変化すると、ＬＵＴ５０３から出力されるＳＥＬの値も００から１０に変化して量子化テーブルＱ２が選択される。
【０１６８】
量子化テーブル部２１０では、量子化テーブル選択部２１３から出力されたＳＥＬにより選択された量子化テーブルを用い、量子化部２０３の要求に従って量子化値を出力する。
【０１６９】
以上の説明によると、１ページの画像を圧縮してＲＡＭ２００２に格納している最中に、そのデータ量が閾値であるＲｅｇ−ＪｏｂＣｏｕｎｔＶａｌｕｅに到達すると、それ以降については新にセットされた量子化テーブルで量子化し、圧縮が行われ、画像の入力は継続する。ただし、閾値に到達する以前の既圧縮符号化データ（ＲＡＭ２００２に格納されたデータ）は、従前の量子化テーブルを用いて圧縮符号化されていることになるので、そのデータは読み出され、パケットデータとして画像リング２００８を介してタイル伸長部２１０３で伸長処理され、新たに決定された量子化テーブルで再圧縮処理が行われることになる。
【０１７０】
また、本実施形態では、量子化テーブルのパラメータ選択方法について説明してきたが、これは、量子化テーブルに限定したものではなく、他のパラメータ、例えば、ハフマン符号化部２０４についても全く同様の構成でパラメータを任意の位置のタイルで選択可能にする構成に出来る。例えば、注目画素ブロックがＲＧＢ形式およびＮＤ形式をはじめとする輝度のデータである場合には、輝度用のハフマン符号化テーブルを利用し、ＣＭＹＫ形式およびグレースケールをはじめとする濃度データであれば色差用のハフマン符号化テーブルを利用して符号化を行う。注目画素ブロックのタイプ（色空間）が如何なるものであるのかの判断は、データパケットのヘッダに含まれるＩｍａｇｅ　Ｔｙｐｅに従って行えば良いであろう。
【０１７１】
また、本実施形態では、画像圧縮時のパラメータ選択について説明してきたが、これは圧縮時に限定したものではなく、伸張時においても本発明と同様の構成で同様の効果が期待できる。
【０１７２】
また、本実施形態では、パケットヘッダー中の情報に相当する２つのテーブル（レジスタ）の値を基に量子化テーブルを選択するとして説明してきたが、これは、２つのテーブル（レジスタ）に限定するものではなく、１つもしくは３つ以上のテーブル（レジスタ）を基に量子化テーブルを選択してもよい。
【０１７３】
ここで、スキャナ２０７０は、スキャンした画像を評価し、各画素が文字データを構成する画像であるか否かを示す情報（文字フラグ）を、画素毎に付加する文字判定機能を持つ。文字判定のための構成およびアルゴリズムは、特許番号　第２８７２２８５号などで説明されている。
【０１７４】
また、各タイルが、文字データを含んだタイルであるか否かを示すための情報（Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０））を各タイルのヘッダ情報に持つ。Ｑ−Ｔａｂｌｅ　Ｓｅｌは、画素毎に付加された文字フラグを基にスキャナ２０７０において付加され、その付加条件は次の２つから選択できる。
【０１７５】
条件１：
１タイル中つまり３２×３２画素中の１０２４個の全ての文字フラグが’０’つまり文字でなかった場合、Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）を’０’に設定する。
【０１７６】
それ以外の場合、つまり、１タイル中つまり３２×３２画素中の１０２４個のどれか一つの文字フラグが’１’つまり文字だった場合、Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）を’１’に設定する。条件１は次の論理回路で表すことができる。
Ｑ−Ｔａｂｌｅ　Ｓｅｌ　＝　（画素１の文字フラグ）ｏｒ　（画素２の文字フラグ）ｏｒ…ｏｒ＿（画素１０２４の文字フラグ）
条件２：
１タイル中つまり３２×３２画素中の１０２４個のどれか一つの文字フラグが’０’、つまり文字でなかった場合、Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）を’０’に設定する。
１タイル中つまり３２×３２画素中の１０２４個の全ての文字フラグが’１’つまり全て文字だった場合、Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）を’１’に設定する。それ以外の場合、つまり、条件２は次の論理回路で表すことができる。
Ｑ−Ｔａｂｌｅ　Ｓｅｌ　＝　（画素１の文字フラグ）ａｎｄ　（画素２の文字フラグ）ａｎｄ…ａｎｄ＿（画素１０２４の文字フラグ）
Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）＝’０’の場合、圧縮率が高い写真用のＱ−Ｔａｂｌｅが選択されるように、Ｒｅｇ−ＱＴＦｉｅｌｄ［３１：０］および、Ｑ−ＴａｂｌｅＩＤを設定することで、省データサイズ重視の画像圧縮を行うことが出来る。
【０１７７】
Ｑ−Ｔａｂｌｅ　Ｓｅｌ（３０３０）＝’１’の場合、解像度が高い文字用のＱ−Ｔａｂｌｅが選択されるように、Ｒｅｇ−ＱＴＦｉｅｌｄ［３１：０］および、Ｑ−ＴａｂｌｅＩＤを設定することで、画質重視な画像圧縮を行うことが出来る。
【０１７８】
ここで説明のために、条件１、２は、単純な論理回路で説明してきたが、文字フラグが’１’である画素の数をカウントし、カウンターの値と予め設定された閾値との大小比較を行った結果によって、Ｑ−Ｔａｂｌｅの切り替えを行うことで、より画像に合わせた精度の高い条件設定を行うことが可能となる。
【０１７９】
ここで説明のために、条件判断は１タイル中つまり３２×３２画素中の１０２４個で行っているとしてきたが、それに限定したものではなく、例えば、ＪＰＥＧの処理単位８×８画素ごとにＱ−ＴａｂｌｅＳｅｌを持てば、ＪＰＥＧの処理単位毎にＱ−Ｔａｂｌｅを選択することも可能である。
【０１８０】
なお、上記実施形態では、主としてスキャナ２０７０から読取った画像を圧縮し、ＲＡＭ２００２に格納することについて説明したが、本実施形態における装置は先に説明したようにネットワークに接続され、ネットワーク上のクライアント（例えばパーソナルコンピュータ等）にとってプリンタとしての機能も果たす。従って、この場合、データの流れとしては、ＬＡＮコントローラ２０１０より受信した印刷情報（ＰＤＬデータ）をＣＰＵ２００１が解釈し、それを展開した際にも圧縮しＲＡＭ２００２に格納する。この際の圧縮処理は、画像リング２００８を介して、パケット形式（レンダリング部インタフェース２１１０が画像入力インタフェース２１１２と同様の処理を行う）にして画像処理部２１４９に送信し、その圧縮結果（パケット）を画像リング２００８を介して受信し、ＲＡＭ２００２に格納することになる。こうして圧縮処理を行なっている間、ＲＡＭ２００２に格納された圧縮された画像データ（ヘッダのＣｏｍｐｒｅｓｓＦｌａｇ３０１７を調べることで圧縮されたデータであるのかどうかが判別できる）は、再度画像リング２００８を介して画像処理部２１４９にパケット送信され、タイル伸長部２１０３（１）、（２）で伸長され、プリンタ用画像処理部２１１５を介してプリンタ２０９５で印刷されることになる。
【０１８１】
以上説明したように本実施形態によれば、タイル毎に伝送されるパケットヘッダー中に書かれた量子化テーブル選択情報を基にタイル毎に量子化テーブルを選択することが可能になり、画像の特徴に合わせた圧縮パラメータをタイル毎に設定することで、画像品位を低下させることなしに高圧縮率で画像圧縮することが可能になる。
【０１８２】
【発明の効果】
以上説明したように本発明によれば、装置構成並びに装置の設計を容易にしながら、タイル等の画素ブロック単位に圧縮に関するパラメータが変更可能になる。また、更に、目標サイズに画像を圧縮することが可能になる。
【図面の簡単な説明】
【図１】本実施形態におけるタイル圧縮部２１０６のブロック図である。
【図２】第１圧縮処理部１０３のブロック図である。
【図３】ヘッダ情報保持部１０２のブロック図である。
【図４】第２圧縮処理部１０４のブロック図である。
【図５】量子化テーブル選択部２１３のブロック図である。
【図６】ＬＵＴ５０１における入力値に対する出力値との関係を示す図である。
【図７】ＬＵＴ５０３における入力値に対する出力値との関係を示す図である。
【図８】レジスタ設定部１０９の出力データＲｅｇ−ＱＴＦｉｅｌｄ［３１：０］のフォーマットを示す図である。
【図９】実施形態におけるデジタル複合機を含むネットワークシステム全体の構成図である。
【図１０】実施形態におけるデジタル複合機のコントローラのブロック構成図である。
【図１１】実施形態におけるデジタル複合機のコントローラの詳細を示すブロック構成図である。
【図１２】コントローラ２０００において用いられるデータパケットのフォーマットを示す図である。
【図１３】コントローラ２０００において用いられるコマンドパケットのフォーマットを示す図である。
【図１４】コントローラ２０００において用いられるインタラプトパケットのフォーマットを示す図である。
【図１５】コントローラ２０００において用いられるパケットテーブルの内容を示す図である。
【図１】
2004120135.tif 000003
【図２】
2004120135.tif 000004
【図３】
2004120135.tif 000005
【図４】
2004120135.tif 000006
【図５】
2004120135.tif 000007
【図６】
2004120135.tif 000008
【図７】
2004120135.tif 000009
【図８】
2004120135.tif 000010
【図９】
2004120135.tif 000011
【図１０】
2004120135.tif 000012
【図１１】
2004120135.tif 000013
【図１２】
2004120135.tif 000014
【図１３】
2004120135.tif 000015
【図１４】
2004120135.tif 000016
【図１５】
2004120135.tif 000017