(57)【要約】【課題】送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにすること。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理を実施すること。【解決手段】画像及び特性情報の圧縮後のデータのサイズがリミット値を超えている場合、画像特性情報の送信を停止し、各画素に対する画像特性情報において先頭の画素に対応する画像特性情報の値を参照し、その値をＺｄｕｍｍｙ３０３２にセットする。【選択図】  図１１
2005045458.tif 000002
【特許請求の範囲】
【請求項１】
画像を圧縮する画像圧縮方法であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割工程と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成工程と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第１の圧縮工程と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第２の圧縮工程と、
注目タイルに対して前記第１の圧縮工程で圧縮を行い、当該注目タイルに対する特性情報に対して前記第２の圧縮工程が圧縮を行った際に、前記第１の圧縮工程で計数したデータのサイズ、及び前記第２の圧縮工程で計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第２の圧縮工程に対する特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御工程と
を備えることを特徴とする画像圧縮方法。
【請求項２】
前記第１の圧縮工程では、ＪＰＥＧ方式による圧縮処理を行うことを特徴とする請求項１に記載の画像圧縮方法。
【請求項３】
前記第２の圧縮工程では、パックビッツ方式による圧縮処理を行うことを特徴とする請求項１に記載の画像圧縮方法。
【請求項４】
前記制御工程では、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報において、先頭のデータの値を書き込むことを特徴とする請求項１に記載の画像圧縮方法。
【請求項５】
画像を圧縮する画像圧縮装置であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割手段と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成手段と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第１の圧縮手段と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第２の圧縮手段と、
注目タイルに対して前記第１の圧縮手段が圧縮を行い、当該注目タイルに対する特性情報に対して前記第２の圧縮手段が圧縮を行った際に、前記第１の圧縮手段が計数したデータのサイズ、及び前記第２の圧縮手段が計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第２の圧縮手段への特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御手段と
を備えることを特徴とする画像圧縮装置。
【請求項６】
コンピュータに請求項１乃至４の何れか１項に記載の画像圧縮方法を実行させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像を圧縮する技術に関するものである。
【０００２】
【従来の技術】
従来の画像を圧縮する画像処理装置は、画像入力部から読み込んだ画像データを圧縮する画像データ圧縮部、及びこの画像データ圧縮部により圧縮された画像データを記憶するデータ記憶部を備えるものであった。
【０００３】
【発明が解決しようとする課題】
しかし従来例では、上記画像データ圧縮部によって圧縮され、上記データ記憶部に蓄積される圧縮画像データのサイズが上記データ記憶部のメモリサイズを超えてしまった場合、上記画像入力部に再度画像を入力し、前回よりも高い圧縮率で圧縮可能な圧縮パラメータを上記画像データ圧縮部に設定し直し、そして設定し直した圧縮パラメータを用いて再度入力した画像データに対して圧縮を行わなければいけなかった。
【０００４】
また他にも例えば、画像データ圧縮部が圧縮した画像データのサイズ（データ量）をカウントし、カウントした値が一定量を超えた場合には、画像特性情報の送信を停止することで、データ記憶部に蓄積する画像データのサイズがデータ記憶部のメモリサイズを超えないようにし、画像データの再入力を回避するようにしていた。この場合、途中から画像特性情報（画像を構成する各画素が夫々何の領域（例えば文字領域や写真領域など）であるかなどを示す属性情報）が欠落してしまうので、装置内部での画像処理やプリント時の補正画像処理が最適に行われず、所望の画像処理結果が得られない可能性があった。
【０００５】
本発明は以上の問題に鑑みてなされたものであり、再度画像を入力したりしないように、圧縮後のデータのサイズの制御を行うと共に、圧縮後の画像の劣化を抑制する技術を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像圧縮方法は以下の構成を備える。
【０００７】
すなわち、画像を圧縮する画像圧縮方法であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割工程と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成工程と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第１の圧縮工程と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第２の圧縮工程と、
注目タイルに対して前記第１の圧縮工程で圧縮を行い、当該注目タイルに対する特性情報に対して前記第２の圧縮工程が圧縮を行った際に、前記第１の圧縮工程で計数したデータのサイズ、及び前記第２の圧縮工程で計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第２の圧縮工程に対する特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御工程と
を備えることを特徴とする。
【０００８】
本発明の目的を達成するために、例えば本発明の画像圧縮装置は以下の構成を備える。
【０００９】
すなわち、画像を圧縮する画像圧縮装置であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割手段と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成手段と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第１の圧縮手段と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第２の圧縮手段と、
注目タイルに対して前記第１の圧縮手段が圧縮を行い、当該注目タイルに対する特性情報に対して前記第２の圧縮手段が圧縮を行った際に、前記第１の圧縮手段が計数したデータのサイズ、及び前記第２の圧縮手段が計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第２の圧縮手段への特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御手段と
を備えることを特徴とする。
【００１０】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１１】
＜ネットワークシステムの概要説明＞
図１０は本実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【００１２】
２００１は本実施形態に係る画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像のデータをローカルエリアネットワーク２００２（以下ＬＡＮ）を介して外部に出力したり、ＬＡＮ２００２を介して受信した画像のデータをプリンタによりプリントアウトすることができる。
【００１３】
また、スキャナから読み込んだ画像のデータを不図示のＦＡＸ送信部により、ＰＳＴＮまたはＩＳＤＮ２００３を介して外部に出力したり、ＰＳＴＮまたはＩＳＤＮ２００３から受信した画像のデータをプリンタによりプリントアウトすることができる。
【００１４】
２００４はデータベースサーバで、画像処理装置２００１が備えるスキャナにより読み込んだ画像（多値画像や２値画像）のデータをデータベースとして管理する。
【００１５】
２００５はデータベースサーバ２００４に対するデータベースクライアントで、データベースサーバ２００４に対してアクセスすることで、データベースサーバ２００４が管理（保持）する画像データ閲覧したり、検索したり等することができる。
【００１６】
２００６は電子メールサーバである。２００７は電子メールクライアントで、電子メールサーバ２００６を介して他の装置から電子メールを受信したり、他の装置に対して電子メールを送信することができる。
【００１７】
ＷＷＷサーバ２００８はＨＴＭＬ文書のデータをＬＡＮ２００２を介してアクセスのあった装置に対して提供するためのものである。画像処理装置２００１は、このＷＷＷサーバ２００８に対してアクセスすることができ、このＷＷＷサーバ２００８から提供されるデータに従ったＨＴＭＬ文章をプリンタによってプリントアウトすることができる。
【００１８】
ルータ２００９はＬＡＮ２００２をインターネット／イントラネット２０１０と連結させるためのものである。また同図ではこのインターネット／イントラネット２０１０には、前述したデータベースサーバ２００４、ＷＷＷサーバ２００８、電子メールサーバ２００６，そして画像処理装置２００１と同様の装置が夫々２０１１，２０１２，２０１３として接続されている。
【００１９】
また画像処理装置２００１は、ＰＳＴＮまたはＩＳＤＮ２００３を介して、ＦＡＸ装置２０１４ともデータの送受信が可能になっている。また、ＬＡＮ２００２上にプリンタ２０１５も連結されており、このプリンタ２０１５により、画像処理装置２００１がスキャナにより読み取った画像をプリントアウトすることができる。
【００２０】
なお、本実施形態に係る画像処理装置を含むシステムの構成はこれに限定されるものではなく、様々な構成が考えられる。よって本実施形態に係る画像処理装置はそれら様々な構成のシステムにおいて、読み込んだ画像を他の装置に対して提供したり、他の装置から受信した画像をプリントアウトすることができる。
【００２１】
また、以下用いる「画像」なる文言が意味するところは、文字情報が含まれていても良く、画像情報や文字情報が混在したものを画像と呼称する場合も以下用いる「画像」なる文言の意味するところに含まれるものとする。
【００２２】
＜画像処理装置の概要説明＞
図９Ａ、Ｂは、本実施形態に係る画像処理装置の基本構成を示す図である。コントローラユニット１００１は、画像入力デバイスであるスキャナ１００２や画像出力デバイスであるプリンタ１００３と接続し、一方ではＬＡＮ１００４や公衆回線（ＷＡＮ）１００５と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開の為の制御処理を行う。以下では同図を用いて、各部の詳細について説明する。
【００２３】
＜システム制御部２１５０の概要説明＞
図９Ａ、Ｂのシステム制御部について説明する。ＣＰＵ１００６は、本装置全体の制御を行うと共に、画像処理装置２００１が後述の各処理を行うために、各部を制御するためのものである。本実施形態ではＣＰＵ１００６は、ＣＰＵ０，ＣＰＵ１の２つのＣＰＵにより構成されているものとするが、この数に限定されるものではない。これら２つのＣＰＵ１００６は共通のＣＰＵバス１００７に接続され、ＣＰＵバス１００７は更にシステムバスブリッジ１００８に接続している。
【００２４】
システムバスブリッジ１００８はバススイッチであり、ここにＣＰＵバス１００７、ＲＡＭコントローラ１００９、ＲＯＭコントローラ１０１０、ＩＯバス１０１１、サブバススイッチ１０１２、ＩＯバス１０１３、画像リングインターフェース１０１４、画像リングインターフェース１０１５が接続されている。
【００２５】
サブバススイッチ１０１２は第２のバススイッチであり、画像ＤＭＡ１０１６、画像ＤＭＡ１０１７、フォント伸張部１０１８、ソート回路１０１９、ビットマップトレース回路１０２０が接続され、これらのＤＭＡから出力されるメモリアクセス要求を調停し、システムバスブリッジ１００８への接続を行う。
【００２６】
ＲＡＭ１０２１はＣＰＵ１００６が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。そのメモリの使用に係る制御はＲＡＭコントローラ１００９によって行われる。このＲＡＭ１０２１として本実施形態ではダイレクトＲＤＲＡＭとするが、これに限定されるものではない。
【００２７】
ＲＯＭ１０２２はブートＲＯＭであり、本装置のブートプログラムが格納されており、ＲＯＭコントローラ１０１０により制御される。
【００２８】
画像ＤＭＡ１０１６は画像圧縮部１０２３と接続しており、レジスタアクセスリング１０２４を介して設定された情報に基づいて画像圧縮部１０２３を制御し、ＲＡＭ１０２１上の非圧縮データの読み出し、圧縮、圧縮後のデータの書き戻しを行う。本実施形態ではこの圧縮アルゴリズムをＪＰＥＧとするが、これに限定されるものではない。
【００２９】
画像ＤＭＡ１０１７は画像伸張部１０２５と接続しており、レジスタアクセスリング１０２４を介して設定された情報に基づいて画像伸張部１０２４を制御し、ＲＡＭ１０２１上の圧縮データの読み出し、伸張、伸張後のデータの書き戻しを行う。本実施形態ではこの伸張アルゴリズムは上記圧縮アルゴリズムに対応させるためにＪＰＥＧとするが、上記圧縮アルゴリズムと同様にこれに限定されるものではない。
【００３０】
フォント伸張部１０１８はＬＡＮコントローラ１０２６等を介し、外部より転送されるＰＤＬデータに含まれるフォントコードに基づき、ＲＯＭ１０２２もしくは、ＲＡＭ１０２１内に格納された圧縮フォントデータの伸張を行う。本実施形態ではこの伸張アルゴリズムをＦＢＥアルゴリズムとするが、これに限定されるものではない。
【００３１】
ソート回路１０１９はＰＤＬデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える処理を行う。ビットマップトレース回路１０２０は、ビットマップデータより、エッジ情報を抽出する処理を行う。
【００３２】
ＩＯバス１０１１は内部のＩＯバスの一種であり、ＵＳＢインターフェース１０２７、汎用シリアルポート１０２８、インタラプトコントローラ１０２９、ＧＰＩＯインターフェース１０３０、そして操作部インターフェース１０３１がこれに接続されている。またＩＯバス１０１１には、バスアービタ（図示せず）が含まれる。
【００３３】
操作部インターフェース１０３１は、操作指示を入力するための機能を備えると共に表示機能を備える操作部１０３２のインターフェース部で、この操作部１０３２に表示する画像データは操作部インターフェース１０３１を介して操作部１０３２に出力される。また、この操作部１０３２を用いて入力された操作指示はこの操作部インターフェース１０３１を介してＣＰＵ１００６に通知される。
【００３４】
ＩＯバス１０１３は、内部のＩＯバスの一種であり、汎用バスインターフェース１０３３と、ＬＡＮコントローラ１０２６とがこれに接続されている。ＩＯバス１０１３には、バスアービタ（図示せず）が含まれる。
【００３５】
汎用バスインターフェース１０３３は、２つの同一のバスインターフェースからなり、標準ＩＯバスをサポートするバスブリッジである。本実施形態ではこの汎用バスインターフェース１０３３はＰＣＩバスとするが、これに限定されるものではない。
【００３６】
ＨＤＤ１０３６はハードディスクドライブで、システムソフトウェア、画像データ等を格納する。ＨＤＤ１０３６はディスクコントローラ１０３７を介して一方のＰＣＩバス１０３４（同図ではＰＣＩ１）に接続される。
【００３７】
ＬＡＮコントローラ１０２６は、ＭＡＣ回路１０３７、ＰＨＹ／ＰＭＤ回路１０３８を介してＬＡＮ１００４に接続し、情報の入出力を行う。モデム１０３９は公衆回線１００５に接続し、情報の入出力を行う。
【００３８】
＜画像処理部１０４１の概要説明＞
次に図９Ａ、Ｂを用いて、画像処理部１０４１を構成する各部について説明する。画像リング１０４０は、一対の単方向接続経路の組み合わせにより構成される。画像リング１０４０は、画像処理部１０４１内で画像リングインターフェース１０４２、及び画像リングインターフェース１０４３を介してタイル伸張部１０４４、コマンド処理部１０４５、ステータス処理部１０４６、そしてタイル圧縮部１０４７と接続している。
【００３９】
タイル伸張部１０４４は画像リングインターフェース１０４２以外にもタイルバス１０４８と接続しており、画像リング１０４０より入力された圧縮後の画像データを伸張し、タイルバス１０４８へ転送するバスブリッジである。タイルバス１０４８とは、１ページの画像データを所定の大きさの単位ブロック（タイルと呼ぶ）に分割し、タイル単位でデータ処理及び転送を行うバスである。
【００４０】
本実施形態ではタイル伸張部１０４４が行う伸張処理は、圧縮された画像データが多値画像データである場合にはＪＰＥＧに従った伸張処理、圧縮された画像データが２値画像データである場合にはパックビッツに従った伸張処理を行うものとするが、圧縮側とでアルゴリズムが対応していればこれに限定されるものではない。
【００４１】
タイル圧縮部１０４７は画像リングインターフェース１０４３以外にもタイルバス１０４８と接続しており、タイルバス１０４８より入力された圧縮前の画像データを圧縮し、画像リング１０４０に出力するバスブリッジである。
【００４２】
本実施形態ではタイル圧縮部１０４７が行う圧縮処理は、圧縮対象の画像データが多値画像データである場合にはＪＰＥＧに従った圧縮処理、圧縮対象の画像データが２値画像データである場合にはパックビッツに従った圧縮処理を行うものとするが、上記伸張処理と同様にこれに限定されるものではない。
【００４３】
コマンド処理部１０４５は、画像リングインターフェース１０４２以外にもレジスタ設定バス１０４９と接続しており、画像リング１０４０を介して入力されたＣＰＵ１００６より発行されたレジスタ設定要求を、レジスタ設定バス１０４９に接続されるこのブロックへ書き込む。また、ＣＰＵ１００６より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス１０４９を介してこのレジスタより情報を読み出し、画像リングインターフェース１０４３に出力する。
【００４４】
ステータス処理部１０４６は、各画像処理ブロックの情報を監視し、ＣＰＵ１００６に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース１０４３に出力する。
【００４５】
タイルバス１０４８には更に、レンダリング部インターフェース１０５０、画像入力インターフェース１０５１、画像出力インターフェース１０５２、多値化処理部１０５３、２値化処理部１０５４、色空間変換部１０５５、画像回転部１０５６、解像度変換部１０５７、そして画像一時保管部１０５８が接続されている。また、図中のタイルバス１０４８はバス・コントローラも含む。
【００４６】
レンダリング部インターフェース１０５０は、後述するレンダリング部１０６７により生成されたビットマップイメージを入力するインターフェースである。レンダリング部１０６７とレンダリング部インターフェース１０５０は一般的なビデオ信号線１０５９で接続されている。レンダリング部インターフェース１０５０はタイルバス１０４８以外にも、メモリバス１０６０、レジスタ設定バス１０４９とも接続しており、入力されたラスタ画像（ビットマップイメージ）を、レジスタ設定バス１０４９を介して設定された所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス１０４８に対して出力する。
【００４７】
画像入力インターフェース１０５１は、スキャナ１００２によって読み取られた（スキャンした）画像のデータを入力とし、タイル画像への構造変換及び、クロックレートの変更を行い、夫々のタイルの画像データを画像処理部１０４１に出力する。
【００４８】
画像出力インターフェース１０５２は、タイルバス１０４８から出力されたタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部１０６１に出力する。色空間変換部１０５５は、画像データの色空間の変換処理を行う。画像回転部１０５６は画像データの回転を行う。解像度変換部１０５７は画像の解像度の変換を行う。２値化処理部１０５４は多値（カラー及びグレースケール）画像を２値化し、２値画像に変換する。多値化処理部１０５３は、２値画像を多値画像に変換する。
【００４９】
画像一時保管部１０５８は、受信した画像データを内部の記憶部に一旦記憶し、記憶し終わると直ちに、受信したデータの他ブロックへの送信を行う。
【００５０】
外部バスインターフェース部１０６２は、画像リングインターフェース１０１４，１０１５，１０４２，１０４３、コマンド処理部１０４５、レジスタ設定バス１０４９を介し、ＣＰＵ１００６により発行された書き込み・読み出し要求を外部バス１０６３に変換出力するバスブリッジである。外部バス１０６３は、本実施形態ではプリンタ用画像処理部１０６１、スキャナ用画像処理部１０６４に接続されている。
【００５１】
メモリ制御部１０６５は、メモリバス１０６０に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ１及び２からなる画像メモリ１０６６に対して、画像データの書き込み・読み出しを行い、そして必要に応じてリフレッシュ等の動作を行う。本実施形態では画像メモリ１０６６としてＳＤＲＡＭを用いるが、これに限定されるものではない。
【００５２】
スキャナ用画像処理部１０６５は、画像入力デバイスであるスキャナ１００２によりスキャンされた画像データに対して補正処理などを行う。
【００５３】
プリンタ用画像処理部１０６１は、プリンタ出力のための補正画像処理を行い、その結果をプリンタ１００３に出力する。
【００５４】
レンダリング部１０６７は、ＰＤＬコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００５５】
＜パケットフォーマット＞
次に、本実施形態で用いるデータフォーマットについて説明する。図９Ａ、Ｂに示したコントローラユニット１００１内では、画像データ、及びＣＰＵ１００６によるコマンド、各ブロックからの割り込み情報は、夫々パケット化された形式で転送される。以下、これら夫々のパケットであるデータパケット、コマンドパケット、そしてインタラプトパケットの３種類について説明する。
【００５６】
・  データパケット
図１１は、本実施形態に係るデータパケットの構造を示す図である。また本実施形態では画像データを３２画素×３２画素を単位とする画像３００２（タイル）毎に分割して扱うものとする。このタイル単位の画像に、必要なヘッダ情報３００１、及び画像特性情報３００３等を結合したパケットをデータパケットと呼ぶ。なお画像特性情報３００３は上述の通り、画像を構成する各画素が夫々何の領域（例えば文字領域や写真領域など）であるかなどを示す属性情報である。
【００５７】
先ず初めにヘッダ情報３００１に含まれる各情報について説明する。パケットはヘッダ情報３００１内のＰｃｋｔＴｙｐｅ３００４内のＰａｃｋｅｔＴｙｐｅＩＤ３０２３の値によってデータパケット、コマンドパケット及びインタラプトパケットに区別される。本実施形態ではＰａｃｋｅｔＴｙｐｅＩＤを３ビットで表現し、
ＰａｃｋｅｔＴｙｐｅＩＤ＝００１ｂ  又は  １０１ｂの場合  ：  データパケット
ＰａｃｋｅｔＴｙｐｅＩＤ＝０１０ｂの場合              ：  コマンドパケット
ＰａｃｋｅｔＴｙｐｅＩＤ＝１００ｂの場合              ：  インタラプトパケット
として各パケットを区別するものとするが、これに限定されるものではない。
【００５８】
また、ＰｃｋｔＴｙｐｅ３００４にはＲｅｐｅａｔＦｌａｇ３０２２が含まれており、データパケットの画像データ３００２及び画像特性情報３００３、ヘッダ情報３００１内の所定の情報が１つ前に送信したデータパケットと同一の場合、ＲｅｐｅａｔＦｌａｇ３０２２に１をセットする。この場合、パケットの転送はヘッダ情報３００１のみ行われる。
【００５９】
ＣｈｉｐＩＤ３００５はパケットを送信するターゲットとなるチップのＩＤを示す。ＩｍａｇｅＴｙｐｅ３００６は画像データのタイプを示す。本実施形態ではＩｍａｇｅＴｙｐｅ３００６は８ビットで表現し、上位２ビットを用いて画像データ３００２のタイプ（即ち、画像データ３００２を含む画像全体のタイプ）を以下のように規定する。
【００６０】
ＩｍａｇｅＴｙｐｅ＝００ｂの場合  ：  各画素を１ビットで表す
ＩｍａｇｅＴｙｐｅ＝０１ｂの場合  ：  各画素を８ビット１成分で表す
ＩｍａｇｅＴｙｐｅ＝１０ｂの場合  ：  各画素を８ビット３成分、計２４ビットで表す
ＩｍａｇｅＴｙｐｅ＝１１ｂの場合  ：  各画素を８ビット４成分、計３２ビットで表す
ＰａｇｅＩＤ３００７はデータパケットが含まれるページを示しており、ＪｏｂＩＤ３００８はソフトウェアで管理するためのＪｏｂ  ＩＤを格納する。
【００６１】
データパケットのページ上の並び順はＹ方向のＴｉｌｅ座標３００９（Ｙｎ）とＸ方向のＴｉｌｅ座標３０１０（Ｘｎ）の組み合わせで、ＹｎＸｎで表される。
【００６２】
Ｐｒｏｃｅｓｓ  Ｉｎｓｔｒｕｃｔｉｏｎ３０１１は左詰で８ｂｉｔ毎に処理順に設定し、各処理Ｕｎｉｔは処理後Ｐｒｏｃｅｓｓ  Ｉｎｓｔｒｕｃｔｉｏｎを左に８ＢｉｔＳｈｉｆｔする。Ｐｒｏｃｅｓｓ  Ｉｎｓｔｒｕｃｔｉｏｎ３０１１はＵｎｉｔＩＤ３０２４とＭｏｄｅ３０２５の組が８組格納されている。ＵｎｉｔＩＤ３０２４は画像処理部１０４１の各処理Ｕｎｉｔを指定し、Ｍｏｄｅ３０２５は各処理Ｕｎｉｔでの動作Ｍｏｄｅを指定する。これにより、１つのパケットは８つのＵｎｉｔまで連続して処理することができる。
【００６３】
ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ３０１２はパケットのトータルバイト数を示す。ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｈ３０１５は画像データのバイト数、ＺＤａｔａＢｙｔｅＬｅｎｇｔｈ３０１６は画像特性情報のバイト数を表し、ＩｍａｇｅＤａｔａＯｆｆｓｅｔ３０１３、ＺＤａｔａＯｆｆｓｅｔ３０１４はそれぞれのデータに対するパケットの先頭からのＯｆｆｓｅｔの値を表している。
【００６４】
データパケットでは、パケットが持つ画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合が存在する。本実施形態では圧縮アルゴリズムとして、画像データが多値カラー（多値グレースケールを含む）の場合はＪＰＥＧを、２値の場合及び画像特性情報はパックビッツを採用した例を示す。
【００６５】
上記方式により画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合との区別は、それぞれＣｏｍｐｒｅｓｓＦｌａｇ３０１７内のＩｍａｇｅＤａｔａ３０２６及びＺｄａｔａ３０２７が１の場合は圧縮データ、０の場合は非圧縮データであることを表す。
【００６６】
ＣｏｍｐｒｅｓｓＦｌａｇ３０１７内にはＪＰＥＧにより圧縮処理を行う際に使用した量子化テーブルの種類を格納するＱ−ＴａｂｌｅＩＤ３０２８が用意されており、量子化テーブルが複数ある場合、データの圧縮及び伸長時はこの値を参照して使用する量子化テーブルの切替を行う。ＳｏｕｒｃｅＩＤ３０１８は画像データ及び画像特性情報が生成されたソースを示す。
【００６７】
Ｚｔｙｐｅ３０２０は画像特性情報における有効ｂｉｔ幅を示し、Ｚｔｙｐｅ３０２０で示したｂｉｔ以外の画像特性情報は無効情報とする。尚、Ｚｔｙｐｅ３０２０が０である場合は入力された画像特性情報全てが無効であることを表す。Ｚｄｕｍｍｙ３０３３は後述のＣｏｍｐｒｅｓｓＦａｉｌフラグが立った場合に、画像特性情報の代替値がセットされるための領域である。
【００６８】
ＴｈｕｍｂｎａｉｌＤａｔａ３０２１はデータパケットの画像データを代表する値（以下、サムネール値と呼ぶ）を格納する。本実施形態ではｔｈｕｍｂｎａｉｌＤａｔａ３０２１に最大４つのサムネール値を格納することができる構成となっている。
【００６９】
Ｍｉｓｃ３０１９は上記の各情報以外に必要となる情報を格納する。本実施形態ではＣｈａｒ−ｆｌａｇ３０２９及びＱ−ＴａｂｌｅＳｅｌ３０３０が用意されている。Ｃｈａｒ−ｆｌａｇ３０２９にはデータパケットが属する領域信号が格納される。Ｑ−ＴａｂｌｅＳｅｌ３０３０にはＪＰＥＧ方式による圧縮及び伸長時に使用する量子化テーブルを変更するための情報が格納される。Ｃｈａｒ−ｆｌａｇ、Ｑ−ＴａｂｌｅＳｅｌともにパケット内の画像特性情報で示される、所定の画像特性を有する画素数をカウントし、そのカウント結果によりｆｌａｇがｏｎ／ｏｆｆされる。ＣｏｍｐｒｅｓｓＦａｉｌ３０３２は、圧縮後のデータ量が所定の値を超えていた場合、セットされるフラグである。
【００７０】
・  コマンド・パケット
本Ｐａｃｋｅｔ  Ｆｏｒｍａｔはレジスタ設定バス２１０９へのアクセスを行うためのものである。本パケットを用いることにより、ＣＰＵ１００６より画像メモリ１０６６へのアクセスも可能である。
【００７１】
図１２は、本実施形態に係るコマンドパケットの構造を示す図である。ＣｈｉｐＩＤ４００４にはコマンドパケットの送信先となる画像処理部１０４１を表すＩＤが格納される。
【００７２】
ＰａｇｅＩＤ４００７、ＪｏｂＩＤ４００８はソフトウェアで管理するためのＰａｇｅ  ＩＤとＪｏｂ  ＩＤを格納する。Ｐａｃｋｅｔ  ＩＤ４００９は１次元で表されるＤａｔａ  ＰａｃｋｅｔのＸ−ｃｏｏｒｄｉｎａｔｅのみを使用する。パケットバイトレングス４０１０は１２８Ｂｙｔｅ固定である。
【００７３】
パケットデータ部４００２には、アドレス４０１１とデータ４０１２の組を１つのコマンドとして、最大１２個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはＣｍｄＴｙｐｅ４００５で示され、コマンドの数はＣｍｄｎｕｍ４００６で示される。
【００７４】
・  インタラプトパケット
本ＰａｃｋｅｔＦｏｒｍａｔは画像処理部１０４１からＣＰＵ１００６への割り込みを通知するためのものである。ステータス処理部１０４６はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプト・パケットを送信してはならない。
【００７５】
図１３は、本実施形態に係るインタラプトパケットの構造を示す図である。パケットバイトレングス５００６は１２８Ｂｙｔｅ固定である。パケットデータ部５００２には、画像処理部１０４１の各内部モジュールのステータス情報５００７が格納されている。ステータス処理部１０４６は画像処理部１０４１内の各モジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。
【００７６】
ＣｈｉｐＩＤ５００４にはインタラプトパケットの送信先となるシステム制御部２１５０を表すＩＤが、また、ＩｎｔＣｈｉｐＩＤ５００５にはインタラプトパケットの送信元となる画像処理部１０４１を表すＩＤが格納される。
【００７７】
・  ＰａｃｋｅｔＴａｂｌｅ／ＣｈａｉｎＴａｂｌｅ
前述のパケット・データはメモリに格納される際には、ＰａｃｋｅｔＴａｂｌｅという形態で管理される。図１４はパケットデータがＲＡＭ１０２１に格納されている状態を示す図である。Ｐａｃｋｅｔ  Ｔａｂｌｅ６００１の構成要素は次の通りで、それぞれＴａｂｌｅの値に０を５ｂｉｔ付加すると、パケットの先頭アドレス６００２、パケットのＢｙｔｅ  Ｌｅｎｇｔｈ６００５となる。
【００７８】
Ｐａｃｋｅｔ  Ａｄｄｒｅｓｓ  Ｐｏｉｎｔｅｒ  （２７ｂｉｔ）  ＋  ５ｂ０００００  ＝  Ｐａｃｋｅｔ先頭Ａｄｄｒｅｓｓ
Ｐａｃｋｅｔ  Ｌｅｎｇｔｈ  （１１ｂｉｔ）  ＋  ５ｂ０００００  ＝  ＰａｃｋｅｔのＢｙｔｅ  Ｌｅｎｇｔｈ
Ｐａｃｋｅｔ  Ｔａｂｌｅ６００１は常に走査方向に並んでおり、Ｙｎ／Ｘｎ＝０００／０００、０００／００１、０００／００２、、、という順で並んでいる。このＰａｃｋｅｔ  Ｔａｂｌｅ６００１のＥｎｔｒｙは一意にひとつのＴｉｌｅを示す。また、Ｙｎ／Ｘｍａｘの次のＥｎｔｒｙはＹｎ＋１／Ｘ０となる。
【００７９】
ヘッダ情報３００１内のＲｅｐｅａｔＦｌａｇ３００２がセットされているパケットが入力される場合は、そのパケットはＭｅｍｏｒｙ上には書かず、Ｐａｃｋｅｔ  ＴａｂｌｅのＥｎｔｒｙに１つめのＥｎｔｒｙと同じＰａｃｋｅｔ  Ａｄｄｒｅｓｓ  Ｐｏｉｎｔｅｒ、Ｐａｃｋｅｔ  Ｌｅｎｇｔｈを格納する。１つのＰａｃｋｅｔ    Ｄａｔａを２つのＴａｂｌｅ  Ｅｎｔｒｙが指すかたちになる。この場合、２つめのＴａｂｌｅ  ＥｎｔｒｙのＲｅｐｅａｔ  Ｆｌａｇ６００３がＳｅｔされる。
【００８０】
Ｐａｃｋｅｔはメモリ中に離散的に格納することも可能である。その場合は、ＣｈａｉｎＴａｂｌｅを使って、Ｐａｃｋｅｔを管理する。また、ＰａｃｋｅｔＴａｂｌｅはパケット・データを途中で分断することも許容されている。
【００８１】
Ｐａｃｋｅｔが複数に分断された場合は、Ｄｉｖｉｄｅ  Ｆｌａｇ６００４をＳｅｔし、そのＰａｃｋｅｔの先頭部分が入っているＣｈａｉｎ  ＢｌｏｃｋのＣｈａｉｎ  Ｔａｂｌｅ番号６００６をＳｅｔする。
【００８２】
なお、Ｐａｃｋｅｔ  Ｔａｂｌｅ６００１とＣｈａｉｎ  Ｔａｂｌｅ６０１０は分割されないものとする。Ｃｈａｉｎ  Ｔａｂｌｅ６０１０のＥｎｔｒｙはＣｈａｉｎ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ６０１１とＣｈａｉｎ  Ｂｌｏｃｋ  Ｌｅｎｇｔｈ６０１２からなっており、Ｔａｂｌｅの最後のＥｎｔｒｙにはＡｄｄｒｅｓｓ、Ｌｅｎｇｔｈ共に０を格納しておく。
【００８３】
＜スキャナ用画像処理部１０６４の概要説明＞
次に、スキャナ用画像処理部１０６４について詳細に説明する。図１５はスキャナ用画像処理部１０６４の機能構成を示す図である。
【００８４】
スキャナより入力された画像（Ｒ、Ｇ、Ｂ）は入力Ｉ／Ｆ部７００１で画像処理ぶ１０６４のクロック同期に従って周波数変換される。スキャナが３ラインセンサーだった場合、ＲＧＢ間でのライン間遅延が存在するので、その場合はライン間遅延補正部７００２で各色のライン間の遅延が補正される。副走査オフセット補正部７００３では、光学系の色収差などによる副走査方向のオフセットの補正を行う。
【００８５】
画像特性判定部７００４では、原稿の種類をもとに画像データのエッジ検出等を行って、入力される画像の文字の有無や色の有無等を判定し、ＲＧＢの画像データとともに、特性情報を出力する。
【００８６】
ガンマ補正部７００５及びダイレクトマッピング処理部７００６では、スキャナの入力特性に従って、画像データを補正し出力する。例えば、ガンマ補正部７００５では各色毎にダイナミックレンジを補正し、ダイレクトマッピング処理部７００６では、スキャナの色味を補正する。
【００８７】
ダイレクトマッピング処理部７００６より出力された画像はＭＴＦ補正部７００７と特定画像判定部７０１２に入力される。ＭＴＦ補正部７００７では主走査方向の光学系の開口数や色収差の補正を行う演算処理を施す。特定画像判定部７０１２では、有価証券類など法律上で印刷することを禁じられている画像データをパターンマッチングなどにより判別する。
【００８８】
空間フィルター処理部７００８は入力画像に対し、エッジ強調やスムージングなどの空間フィルター処理を実施する。フィルター処理は、前述の画像特性判定部７０１２の判定結果に応じて、適応的に行われる。例えば入力画像が文字と判定された場合は、エッジが強調され、写真などの連続階調画像と判定された場合は、スムージングされる。
【００８９】
ヒストグラム算出部７００９では入力された画像のヒストグラムを求める他、有彩のＲＧＢ入力画像を無彩色のＮＤ画像に変換する。トリミング／マスキング部７０１０は入力画像データの枠消しやブック枠消しといった、印字画像領域の加工を行う。出力Ｉ／Ｆ部７０１１ではスキャナ用画像処理クロックからシステム・クロック同期へ画像データ及び特性情報の周波数変換を行って出力する。
【００９０】
＜タイル圧縮部１０４７＞
次に、タイル圧縮部１０４７について詳細に説明する。図２はタイル圧縮部１０４７の機能構成を示すブロック図である。図２において、２０１はタイルバスインターフェイス部であり、タイルバス１０４８とハンドシェイクを行い、タイルバス１０４８から入力されるヘッダ情報、画像データ及び画像特性情報を取得し、後段に接続された各処理ブロックへ夫々のデータを出力する。
【００９１】
また、タイルバスインターフェイス部２０１ではタイルバス１０４８から送られてくるヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部２０６に矛盾内容に相当する割り込み信号を出力した後、リセット信号（不図示）が入力されるまで動作を停止する。
【００９２】
一方、ヘッダ情報に矛盾がない場合は、タイルバスインターフェース部２０１は後段に接続されたヘッダ情報生成部２０２に対してヘッダ情報を出力した後、タイルバス１０４８から画像データと画像特性情報を取得して、ヘッダ情報のＩｍａｇｅＴｙｐｅ３００６に従って第１圧縮処理部２０３（本実施形態ではＪＰＥＧ方式の圧縮を行う）及び第２圧縮処理部２０４（本実施形態ではパックビッツ方式の圧縮を行う）夫々に画像データ又は画像特性情報を出力する。
【００９３】
具体的には、ＩｍａｇｅＴｙｐｅ３００６の上位２ビットが１ビットの画像データを表す００ｂの場合には、第１圧縮処理部２０３は使用せずに画像データを第２圧縮処理部２０４へ出力する。
【００９４】
また、ＩｍａｇｅＴｙｐｅの上位２ビットが００ｂ以外の場合、画像データを第１圧縮処理部２０３へ出力するとともに画像特性情報を第２圧縮処理部２０４へ出力する。ただし、Ｚｔｙｐｅ３０２０が０の場合は入力された画像特性情報は無効であるため、画像特性情報を第２圧縮処理部２０４に出力せず、第２圧縮処理部２０４による圧縮処理は行わない。
【００９５】
２０２はヘッダ情報生成部であり、第１圧縮処理部２０３及び第２圧縮処理部２０４において画像データ及び画像特性情報の圧縮処理を行っている間、ヘッダ情報を生成する。また、ヘッダ情報生成部２０２は格納したヘッダ情報の中から圧縮処理に必要な情報を第１圧縮処理部及び第２圧縮処理部に対して出力する。
【００９６】
２０３は第１圧縮処理部であり、上述の通りＪＰＥＧ方式による圧縮処理を行う。第１圧縮処理部２０３は画像データが複数ｂｉｔ構成であった場合に画像データの圧縮処理を行う。また、第１圧縮処理部２０３では入力された画像データを１タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したパケットの画像データを保持しておくことで、タイルバスインターフェイス部２０１から入力された画像データとバッファ内に格納された画像データの比較を行う。比較結果は後述の画像リング出力部２０５に送られ、ＲｅｐｅａｔＦｌａｇ３０２２を生成する際に参照される。
【００９７】
尚、第１圧縮処理部２０３において圧縮処理を行っている際に動作の異常を検知した場合、第１圧縮処理部２０３は異常動作の内容に相当する割り込み信号をレジスタ設定部２０６に対して出力した後、リセット信号（不図示）が入力されるまで動作を停止する。
【００９８】
２０４は第２圧縮処理部であり、上述の通り情報ロスのない圧縮方式であるパックビッツ方式による圧縮処理を行う。第２圧縮処理部２０４では入力されたパケットの画像データが１ｂｉｔ構成であった場合は画像データを、または画像特性情報が存在する（Ｚｔｙｐｅ３０２０が０でない）場合は、画像特性情報をパックビッツ方式によって圧縮する。
【００９９】
また第２圧縮処理部２０４でも、入力された画像特性情報を１パケット分格納するためのバッファを持ち、直前に入力された１ｂｉｔ画像データ又は画像特性情報を保持しておくことにより、タイルバスインターフェイス部２０１から入力された画像又は画像特性情報とバッファ内に格納されたデータの比較を行う。比較結果は後述の画像リング出力部２０５に送られ、ＲｅｐｅａｔＦｌａｇ３０２２を生成する際に参照される。
【０１００】
尚、第２圧縮処理部２０４において圧縮処理を行っている際に動作の異常を検知した場合、第２圧縮処理部２０４は異常動作の内容に相当する割り込み信号をレジスタ設定部２０６に対して出力した後、リセット信号（不図示）が入力されるまで動作を停止する。
【０１０１】
２０５は画像リング出力部であり、ヘッダ情報生成部２０２、第１圧縮処理部２０３及び第２圧縮処理部２０４から処理情報及び画像データ、画像特性情報を取得し、ヘッダ情報に対して所定の値を設定してから図１１に示すデータパケットを生成して画像リングインターフェイス１０４３に出力する。
【０１０２】
２０６はタイル圧縮部１０４７内部の処理に関して設定を行うためのレジスタ設定部である。タイル圧縮部１０４７に所定の圧縮処理を行わせるためには、圧縮率、Ｊｐｅｇ用のＱ−Ｔａｂｌｅ、後述のデータカウント処理に用いるデータリミット値等の各パラメータをレジスタ設定部２０６に設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部２１５０から画像処理部１０４１のコマンド処理部１０４５に送り、コマンド処理部１０４５からレジスタ設定バス１０４９を介してタイル圧縮部１０４７に送られることにより行う。レジスタ設定部２０６に設定された値は、第１圧縮処理部２０３及び第２圧縮処理部２０４に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【０１０３】
尚、レジスタ設定部２０６へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部２０６が保持している設定値をシステム制御部２１５０へ出力することも可能である。
【０１０４】
さらに、レジスタ設定部２０６はタイルバスインターフェース部２０１、第１圧縮処理部２０３、第２圧縮処理部２０４から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部１０４６に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【０１０５】
２０７はレジスタ設定バスインターフェイス部であり、レジスタ設定バス１０４９からタイル圧縮部１０４７に入力されたアドレス及び設定値を、レジスタ設定部２０６が受け取れるフォーマットに変換して送る。
【０１０６】
なお、レジスタ設定バスインターフェイス部２０７はレジスタ設定バス１０４９からレジスタ設定値を受け取るだけでなく、レジスタ設定バス１０４９が示したアドレスに対応する設定値をレジスタ設定部２０６から読み出してレジスタ設定バス１０４９に出力することも可能である。
【０１０７】
２０８はデータ量カウント部であり、第１圧縮処理部２０３及び第２圧縮処理部２０４から画像リング出力部２０５に送られる画像データおよび画像特性情報のデータ量をカウントし、所定の値を超えたら、レジスタ設定部２０６に割り込み信号をヘッダ情報生成部２０２にフラグ信号を出力する。
【０１０８】
＜第１圧縮処理部２０３＞
図１は第１圧縮処理部２０３の機能構成を示すブロック図である。本実施形態では扱う画像の各画素が８ビット構成、２４ビット構成又は３２ビット構成である場合、つまり画像データが第１圧縮処理部２０３において圧縮処理される場合について説明する。
【０１０９】
図１において、１０１はタイルバスインターフェイス部２０１から送られてきた画像データを格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたＪＰＥＧ圧縮部１１０に対して所定の順序に従って画像データを出力する。ここで、データバッファ１０１にはヘッダ情報生成部２０２からヘッダ情報に含まれるＩｍａｇｅＴｙｐｅ３００６が入力されており、ＪＰＥＧ圧縮部１１０に出力する画像データの順序はＩｍａｇｅＴｙｐｅ３００６に従ったものとなる。
【０１１０】
以下にＩｍａｇｅＴｙｐｅ３００６とＪＰＥＧ圧縮部１１０に入力される画像データの順序との関係について説明する。図３はＩｍａｇｅＴｙｐｅ３００６の上位２ビットが０１ｂ、すなわち１画素を１成分８ビットで表している１タイル分の画像を示す図で、同図の画像は３２画素×３２画素の計１０２４画素で構成されている。
【０１１１】
同図の画像をＪＰＥＧ圧縮部１１０へ出力するために、まずこの画像をＪＰＥＧ圧縮処理の処理単位である８画素×８画素の６４画素を単位として、１６のブロック（同図には夫々のブロックに固有の番号を付けている）に分割する。そしてブロック毎にＪＰＥＧ圧縮部１１０へ出力する。尚、図３では１画素の画像データを細線で、ＪＰＥＧ圧縮処理単位に分割したブロックを太線で示し、ＪＰＥＧ圧縮部１１０へ送られる順番に０から１５までの番号を付している。
【０１１２】
図４は図３におけるブロック０に含まれる画素群を拡大した図である。ブロック内には６４画素の画像データがあり、各画素に対しては主走査方向、副走査方向に対してそれぞれ０から７まで番号をつけて表している。
【０１１３】
ブロック０内において、ＪＰＥＧ圧縮部１１０へ出力される順序は、矢印で示したように左上の（０，０）の画素データ始めとして主走査方向に（０，１）→（０，２）→…・→（０，７）の順番に行われる。（０，７）の画素データの次は副走査方向に１ライン移動して（１．０）→（１，１）→…→（１，７）と進み、これを繰り返して右下の（７，７）の画像データが出力されるとブロックの画像データの出力を終了する。ブロック０を構成する各画素のデータが出力されると、次はブロック１の左上の（０，８）から同じ順序で画像データが出力される。
【０１１４】
図５はＩｍａｇｅＴｙｐｅ３００６の上位２ビットが１０ｂ、すなわち１画素を８ビット３成分、計２４ビットで表している１タイル分の画像を示す図である。尚、図５では各画素は表さずにＪＰＥＧ圧縮処理単位であるブロック単位で表わし、各画像データが画素ごとではなく成分ごとに成分１、成分２及び成分３に分割して示している。
【０１１５】
図６は図５で示した３つの成分からなる画像データをＪＰＥＧ圧縮部１１０に出力する順番を示した図である。尚、図６で示された各ブロック内において、各画素のデータが出力される順序は図４に示したものと同様である。本実施形態では、まず始めにデータバッファ１０１からブロック０の成分１の画像データが出力される。ブロック０の成分１の画像データが全て出力されると、次にブロック０の成分２の画像データ、続いてブロック０の成分３の画像データが出力され、これによってブロック０を構成する全ての成分の画像データが出力される。
【０１１６】
ブロック０の画像データが全て出力されると、次はブロック１の成分１の画像データが、続いてブロック１の成分２→ブロック１の成分３→ブロック２の成分１→・・・・と続き、最後にブロック１５の成分１→ブロック１５の成分２→ブロック１５の成分３の画像データを出力し終わったところで１タイル分の画像データの出力を終了する。
【０１１７】
尚、ＩｍａｇｅＴｙｐｅ３００６の上位２ビットが１１ｂ、すなわち１画素を８ビット４成分、計３２ビットで表している１タイル分の画像データがタイルバスインターフェース部２０１から入力された場合も図５及び図６と同様に、各ブロックの各成分の画像データを成分１→成分２→成分３→成分４の順番に出力する。
【０１１８】
このようにして、本実施形態ではＪＰＥＧ圧縮部１１０によって圧縮処理される順序は、１タイルの画像データを主走査方向８画素×副走査方向８画素のブロックに分割し、ブロック単位で圧縮が行われる。また、各ブロックに画像データが複数（複数の成分を有する）ある場合は、ブロック内の各成分の画像データを圧縮し、全ての成分に対して圧縮を行ってから次のブロックの圧縮を行う。
【０１１９】
図１において１１０はＪＰＥＧ圧縮部であり、本実施形態ではＪＰＥＧ圧縮部１１０において画像データのＪＰＥＧ方式による圧縮を行っている。尚、ＪＰＥＧ圧縮部１１０は更に以下説明する３つの部分からなる。
【０１２０】
１０２はＤＣＴ変換部であり、データバッファ１０１から６４個のデータ（１ブロック分のデータ）が入力されると、入力されたデータに対して離散コサイン変換を行い周波数成分に変換する。また、このとき離散コサイン変換によって生成されたＤＣ成分値をラッチ信号とともに後述のサムネール生成部１０７に出力する。離散コサイン変換は６４個のデータが入力される度に行われ、その都度サムネール生成部１０７にはラッチ信号とＤＣ成分値が出力される。また、ＤＣＴ変換部１０２はＤＣＴ変換の演算中にエラーが発生すると、ＤＣＴ変換部１０２からレジスタ設定部２０６に対してエラー割り込み信号を出力する。
【０１２１】
１０３は量子化部であり、ＤＣＴ変換部１０２から出力された周波数成分に対して所定の量子化値を用いて量子化を行って量子化データを生成する。尚量子化値は後述する量子化テーブルから入力され、使用される量子化値はヘッダ情報生成部２０２からヘッダ情報を解析することにより決定される。量子化部１０３は量子化を行った結果が所定の値以外の値になると、レジスタ設定部２０６に対してエラー割り込み信号を出力する。
【０１２２】
１０４はハフマン符号化部であり、量子化部１０３から出力された量子化データに対して所定の符号化を行い符号化データを生成し、データバッファ１０５に出力する。ハフマン符号化部１０４は符号化が不可能なデータが入力されるとレジスタ設定部２０６に対してエラー割り込み信号を出力する。
【０１２３】
１０５はハフマン符号化部１０４で符号化した符号化データを格納するためのデータバッファであり、ハフマン符号化部１０４から１タイル分の符号化データを取得すると、バッファ１０５内に格納した符号化データの容量をＤａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ１として画像リング出力部２０５に出力する。また、画像リング出力部２０５の要求に従ってバッファ内に格納した符号化データを画像リング出力部２０５に対して出力する。
【０１２４】
１０６はデータ比較部であり、タイルバスインターフェイス部２０１から入力された画像データとデータバッファ１０１に格納された画像データを比較する。タイルバスインターフェイス部２０１から送られた画像データはデータバッファ１０１に格納されると同時に、既に格納されていた画像データとの比較をデータ比較部１０６で行う。
【０１２５】
データバッファ１０１にはタイルバスインターフェース部２０１から入力されるタイルの１つ前に第１圧縮処理部２０３に送られた画像データが格納されているため、上記動作によりデータ比較部１０６ではタイルバスインターフェイス部２０１から送られてくる画像データと、上記１つ前のタイルの画像データとの比較が行われる。
【０１２６】
データ比較部１０６により１タイル分の画像データの比較が終了すると、データ比較部１０６から画像リング出力部２０６に対して比較結果Ｃｏｍｐａｒｅ  ｒｅｓｕｌｔ  １が出力される。
【０１２７】
１０７はサムネール生成部であり、ＤＣＴ変換部１０２から出力されるラッチ信号に同期してＤＣ成分値を取得し、演算及び正規化を行うことによってタイルごとにサムネール値を生成して画像リング出力部２０５に出力する。尚、サムネール生成部１０７にはヘッダ情報生成部２０２からＩｍａｇｅＴｙｐｅ３００６が入力され、サムネール生成部１０７はＩｍａｇｅＴｙｐｅを参照することによりＤＣＴ変換部１０２から送られてくるＤＣ成分値の順序を検知して成分ごとにサムネール値を生成する。
【０１２８】
生成されたサムネール値は画像リング出力部２０５に出力され、画像リング出力部２０５においてヘッダ情報生成部２０２から取得したヘッダ情報のｔｈｕｍｂｎａｉｌ  Ｄａｔａ３０２１の部分に所定のフォーマットで格納される。その後、第１圧縮処理部２０３で圧縮された画像データ及び第２圧縮処理部２０４で圧縮された画像特性情報とともにデータパケットとして画像リングインターフェース１０４３に出力される。
【０１２９】
１０８は量子化テーブルであり、量子化部１０３において量子化を行うための量子化値のテーブルを格納している。本実施形態における量子化テーブルには複数の量子化テーブルが格納されており、後述の量子化テーブル選択部１０９から入力される選択信号に応じた量子化テーブルの量子化値が量子化部１０３に出力される。
【０１３０】
１０９は量子化テーブル選択部であり、量子化テーブル１０９に対して量子化テーブル選択信号を出力することによって量子化テーブル１０９に格納されている複数のテーブルの中から所望のテーブルを選択することができる。
【０１３１】
量子化テーブル選択部１０９にはヘッダ情報生成部２０２からＩｍａｇｅＴｙｐｅ３００６、Ｍｏｄｅ３０２５、Ｃｈａｒ−ｆｌａｇ３０２９、Ｑ−ＴａｂｌｅＳｅｌ３０３０が入力され、量子化テーブル選択部１０９はこれらのヘッダ情報から使用する量子化テーブルを決定する。使用する量子化テーブルが決まると、量子化テーブル選択部１０９は決めた量子化テーブルを選択するように量子化テーブル選択信号を量子化テーブル１０９に出力するとともに、選択した量子化テーブルを表すＱ−Ｔａｂｌｅ  ＩＤを画像リング出力部２０５に出力する。
【０１３２】
＜第２圧縮処理部２０４＞
図７は第２圧縮処理部２０４の機能構成を示すブロック図である。図７において、７０１はタイルバスインターフェイス部２０１から送られてくる画像特性情報を格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたパックビッツ圧縮部７０２に対して所定の順序に従ってデータを出力する。
【０１３３】
７０２はパックビッツ圧縮部であり、データバッファ７０１から出力された画像特性情報に対してパックビッツ方式の圧縮を行う。
【０１３４】
７０３はパックビッツ圧縮部７０２で圧縮した圧縮データを格納するためのデータバッファであり、パックビッツ圧縮部７０２から１タイル分の圧縮データを取得すると、バッファ７０３内に格納したデータの容量をＤａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ２として画像リング出力部２０５に対して出力する。
【０１３５】
また、画像リング出力部２０５の要求に従ってバッファ７０３内に格納した圧縮データを画像リング出力部２０５に対して出力する。
【０１３６】
７０４はデータ比較部であり、タイルバスインターフェイス部２０１から入力された画像データとデータバッファ７０１に格納されたデータを比較する。タイルバスインターフェイス部２０１から送られたデータはデータバッファ７０１に格納されると同時に、データバッファ７０１に格納されていたデータとの比較をデータ比較部７０４で行う。
【０１３７】
データバッファ７０１にはタイルバスインターフェース部２０１から入力されるタイルの１つ前に第２の圧縮処理部２０４に送られた画像特性情報が格納されているため、上記動作によりデータ比較部１０６ではタイルバスインターフェイス部２０１から送られてくる画像特性情報と、第２の圧縮処理部において１つ前のタイルの画像特性情報の比較が行われる。
【０１３８】
データ比較部７０４により１タイル分の画像特性情報の比較が終了すると、データ比較部７０４から画像リング出力部２０６に対して比較結果Ｃｏｍｐａｒｅ  ｒｅｓｕｌｔ２  が出力される。
【０１３９】
＜データ量カウントによる画像特性情報の制御＞
図８は、タイル圧縮部１０４７が行うデータカウント処理のフローチャートである。
【０１４０】
まず、タイル圧縮部１０４７において圧縮処理が開始されるとデータカウンタ値（ＤａｔａＣｏｕｎｔ）は０にセットされる（ステップＳ８０１）。次に第１圧縮処理部２０３及び第２圧縮処理部２０４は夫々が行った圧縮処理が完了すると、データ量カウント部２０８に夫々の圧縮データ量Ｄａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ１及びＤａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ２を出力するので、データ量カウント分２０８は夫々をデータカウンタ値ＤａｔａＣｏｕｎｔに加算する（ステップＳ８０２）。次にデータカウンタ値ＤａｔａＣｏｕｎｔと予め設定されたリミット値とを比較する（ステップＳ８０３）。
【０１４１】
そしてデータカウンタ値ＤａｔａＣｏｕｎｔがリミット値を超えていると判断された場合は、処理をステップＳ８０４に進め、データバッファ７０３からの画像特性情報の送信を停止する（ステップＳ８０４）。
【０１４２】
また、ヘッダ情報生成部２０２とレジスタ設定部２０６にＣｏｍｐｒｅｓｓＦａｉｌ信号を出力し、データ量がオーバしたことを通知する（ステップＳ８０５）。レジスタ設定部はＣｏｍｐｒｅｓｓＦａｉｌ信号を受けるとステータス処理部１０４６へ割り込み信号を出力する。さらにデータ量カウント部２０８はＤａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ２を０に設定し、画像リング出力部２０５に出力する（ステップＳ８０６）。
【０１４３】
そしてヘッダ情報生成部２０２では、第２圧縮処理部２０４のデータバッファ７０１に格納された各画素に対する画像特性情報において先頭の画素に対応する画像特性情報の値を参照し、その値をＺｄｕｍｍｙ３０３２にセットする（ステップＳ８０７）。
【０１４４】
一方、ステップＳ８０３においてデータカウンタ値がリミット値を超えていないと判断された場合は、データバッファ７０３に保存されている画像特性情報およびＤａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ２をそのまま画像リング出力部２０５に出力する（ステップＳ８０８）。
【０１４５】
データ量カウント部２０８は、データバッファ１０５に保存されている画像データおよびＤａｔａ  Ｂｙｔｅ  Ｌｅｎｇｔｈ１をそのまま画像リング出力部２０５に送信する（ステップＳ８０９）。
【０１４６】
最後に１ページの処理が終了したか判断し（ステップＳ８１０）、終了していない場合は処理をステップＳ８０２に戻し、前述の処理を繰り返す。１ページの処理が終了したと判断された場合は、データカウント処理を終了する。
【０１４７】
以上のように、圧縮処理を行った際に画像データが一定量を超えないように制御して、再読み込みの発生を抑えるとともに、欠落した画像特性情報をヘッダ情報に書き込んで補うことで画像劣化の極力少ない画像処理を実施することができる。
【０１４８】
＜プリンタ用画像処理部１０６１の概要説明＞
次に、プリンタ用画像処理部１０６１の詳細について説明する。図１６はプリンタ用画像処理部１０６１の機能構成を示すブロック図である。図９Ａ、Ｂに示した画像処理部１０４１より出力された画像データＲＧＢ（又はＣＭＹＫ）はプリンタ画像処理部８００１，８００２に夫々入力される。夫々のプリンタ画像処理部は内部に夫々２色分の画像処理部を備えており、各色毎にプリンタエンジンを備えるタンデムエンジンプリンタ１００３からの画像要求に応じて、それぞれのブロックが各プリンタエンジンに同期して動作できるようになっている。
【０１４９】
図１７はプリンタ画像処理部８００１，８００２の機能構成を示すブロック図である。内部は大きくは２系統に分かれており、２色分のプリンタエンジンに対応した画像データを生成する。９００１，９００２は入力Ｉ／Ｆ部であり、入力される画像データをプリンタ用画像処理クロック同期に従って周波数変換する。
【０１５０】
９００３，９００４は下地除去及びＮＤ変換部であり、画像特性情報に応じて入力画像データの背景色を飛ばしたり、ＲＧＢの有彩色データを無彩色のＮＤデータに変換する。９００５，９００６は輝度濃度変換部であり、画像特性情報に応じて入力データの輝度濃度変換を行う。９００７，９００８はダイレクトマッピング処理部であり、画像特性情報に応じてＲＧＢ入力データをプリンタエンジンのＣ／Ｍ／Ｙ／Ｋの各色成分への変換を行う。
【０１５１】
９００９，９０１０は色バランス補正部であり、画像特性情報に応じて出力画像の色味の微調整などを行う。９０１３〜９０１８は出力ガンマ補正部であり、出力される画像のダイナミックレンジやトーンカーブの補正を行う。本実施形態では１色につき、Ａ〜Ｃの３種類のガンマ補正を同時に行って出力する。
【０１５２】
９０１９〜９０２４は中間調処理部であり、画像データを量子化して出力画像の階調変換を行っている。本実施形態ではプリンタ用画像処理部への入力８ビットデータを４ビットデータに変換する。中間調処理方法としては、一般にスクリーン処理や誤差拡散処理などが広く知られているが、本実施形態では各色とも任意の３種類の中間調処理を行うようになっている。
【０１５３】
９０２５，９０２６は中間調処理選択部であり、前述の３種類の中間調処理部で処理された出力画像を画像特性情報に応じて最適な処理結果を選択するようになっている。９０２７，９０２８はスムージング処理部であり、文字エッジ等のがたつきを軽減するパターンマッチング処理を行っている。
【０１５４】
９０２９，９０３０は特定情報付加部であり、出力画像データ中に出力機器を特定できるような画像情報を重畳する処理を行う。９０３１は出力選択部であり、前述の２系統の画像処理部で処理されたデータをどちらのプリンタエンジンに出力するかを切り替えられるようになっている。９０３２、９０３４はドラム間遅延制御部、９０３３，９０３５はドラム間遅延メモリである。
【０１５５】
前述の入力Ｉ／Ｆ部から出力選択部までは、図１の画像処理部１０４１から出力された画像データが同時刻に４つの画像処理部で処理されている。ドラム間遅延制御部９０３２，９０３４では画像処理部１０４１から出力され、プリンタ用画像処理部１０６１で処理された画像データを、プリンタエンジンからの出力要求があるまでドラム間遅延メモリ９０３３，９０３５に蓄積する。こうすることによって、各プリンタエンジンに同期して画像データを出力することができる。
【０１５６】
９０３６，９０３７は出力Ｉ／Ｆ部であり、プリンタＩ／Ｆクロックに同期して画像を出力するための周波数変換を行う。
以上説明したように、本実施形態は、送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにする。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理が実施できる。
【０１５７】
なお、本実施形態ではタンデムエンジンのプリンタに対応するプリンタ用画像処理部について説明しているが、これに限定されるものではなく、シングルエンジン用の画像処理部の構成でも構わないし、１つの画像処理部に４色分の画像処理ブロックを備えていても構わない。
【０１５８】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１５９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【０１６２】
【発明の効果】
以上の説明により、本発明によって、送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにすることができる。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理が実施できる。
【図面の簡単な説明】
【図１】第１圧縮処理部２０３の機能構成を示すブロック図である。
【図２】タイル圧縮部１０４７の機能構成を示すブロック図である。
【図３】ＩｍａｇｅＴｙｐｅ３００６の上位２ビットが０１ｂ、すなわち１画素を１成分８ビットで表している１タイル分の画像を示す図である。
【図４】図３におけるブロック０に含まれる画素群を拡大した図である。
【図５】ＩｍａｇｅＴｙｐｅ３００６の上位２ビットが１０ｂ、すなわち１画素を８ビット３成分、計２４ビットで表している１タイル分の画像を示す図である。
【図６】図５で示した３つの成分からなる画像データをＪＰＥＧ圧縮部１１０に出力する順番を示した図である。
【図７】第２圧縮処理部２０４の機能構成を示すブロック図である。
【図８】タイル圧縮部１０４７が行うデータカウント処理のフローチャートである。
【図９Ａ】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図９Ｂ】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図１０】本発明の実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【図１１】本発明の実施形態に係るデータパケットの構造を示す図である。
【図１２】本発明の実施形態に係るコマンドパケットの構造を示す図である。
【図１３】本発明の実施形態に係るインタラプトパケットの構造を示す図である。
【図１４】パケットデータがＲＡＭ１０２１に格納されている状態を示す図である。
【図１５】スキャナ用画像処理部１０６４の機能構成を示す図である。
【図１６】プリンタ用画像処理部１０６１の機能構成を示すブロック図である。
【図１７】プリンタ画像処理部８００１，８００２の機能構成を示すブロック図である。
【図１】
2005045458.tif 000003
【図２】
2005045458.tif 000004
【図３】
2005045458.tif 000005
【図４】
2005045458.tif 000006
【図５】
2005045458.tif 000007
【図６】
2005045458.tif 000008
【図７】
2005045458.tif 000009
【図８】
2005045458.tif 000010
【図９Ａ】
2005045458.tif 000011
【図９Ｂ】
2005045458.tif 000012
【図１０】
2005045458.tif 000013
【図１１】
2005045458.tif 000014
【図１２】
2005045458.tif 000015
【図１３】
2005045458.tif 000016
【図１４】
2005045458.tif 000017
【図１５】
2005045458.tif 000018
【図１６】
2005045458.tif 000019
【図１７】
2005045458.tif 000020