(57)【要約】【課題】  各画素に関係する属性情報の符号化において、符号量が許容の範囲を超えた場合に各属性フラグの特性に係らずに一部情報を変換し、符号化し、圧縮率向上を図ることで、可逆性の維持が可能なデータにおいても可逆性を失い、属性情報に基づく画像処理の効果が得られない。【解決手段】  属性フラグ毎に配列し、符号化を実施し、各属性フラグ群の符号量に基づいて各属性フラグの符号化方法を変更することで、なるべく可逆性を失わない符号化を実行することができる。【選択図】  図８
2013121154.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データの各画素の属性情報（３０５~３１１）を入力し、圧縮符号化する画像処理装置（１００）であって、画像情報を任意の画素ブロックに分割する分割手段（１３１、１３２）と、前記画素ブロックの各画素に対応する属性情報を属性情報毎にまとめて配列する属性情報配列手段（６０１、６０２）と、配列された属性情報群にて可逆符号化する符号化手段（６０５）と、前記符号化手段で得られる各属性情報群の符号化データ量を監視し、前記各属性情報群の符号化データ量が所定基準を満たしたか否かを判断する符号量監視手段（６０６）とを備え、前記符号量監視手段において各属性情報群の全ての符号化データ量が第1の基準を満たした場合には、各属性情報群のそれぞれが第2の基準を満たしているか否かを判断し、基準を満たしている対象の属性情報群に対して条件を変更して符号化することを特徴とする画像処理装置。
【請求項２】
前記符号量監視手段の第1の基準は符号化された各属性情報群の全ての符号量が所定のデータ量内であるかを示す閾値との比較に基づく基準であり、符号化された各属性情報群のデータ量の総和と前記閾値を比較し、前記符号化された各属性情報群の総和のデータ量が前記閾値より大きい場合には前記第1の基準を満たした判断する第1基準判断手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記符号量監視手段の第2の基準は各属性情報群に設けられた符号化しない場合の各属性情報群のデータ量を閾値とした比較に基づく基準であり、この閾値を超えた場合には基準を満たしたと判断する第2基準判断手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
請求項２記載の前記第1基準判断手段における第1の基準を満たし、かつ請求項３記載の前記第2基準判断手段における第2の基準を満たした属性情報群に対して前記符号化手段は当該属性情報群の符号化を行わないで出力する符号化制御手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
請求項２記載の前記第1の基準を満たし、かつ請求項３記載の前記第2の基準を満たした属性情報群に対して前記符号化手段は当該属性情報群を固定の情報に変換して符号化し、出力する固定出力手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
請求項５記載の前記固定出力手段において、固定の情報に変換する属性情報の優先度を設定可能とする優先度設定手段を有することを特徴とする請求項５に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを前記画像データに付随する一定符号量以内に圧縮符号化するための機能を有する画像処理装置に関するものである。
【背景技術】
【０００２】
従来，静止画像の圧縮方式には，離散コサイン変換を利用したＪＰＥＧ方式や，Wavelet変換を利用した方式が多く使われている．この種の符号化方式は，可変長符号化方式であるので，符号化対象の画像毎に符号量が変化する。
【０００３】
国際標準化方式であるＪＰＥＧ方式では，画像に対して１組の量子化マトリクスしか定義できないので、プリスキャン無しには、符号量調整が行なえず、限られたメモリに記憶するシステムで使用する場合においては、メモリオーバーを起こす可能性があった。
【０００４】
これを防止するために、予定した符号量よりオーバーした場合は、圧縮率を変更して、原稿の再読み込みを行なう方法や、予めプリスキャンによる符号量見積もりを行ない、符号量を調整するために，量子化パラメータの再設定を行なう方法などがとられていた。
【０００５】
一方、画像情報には、元の画像データ以外に、該画像データに付随する属性情報というものがある。属性情報は主に、画像出力時の見栄えを良くするために、画像出力部での色処理や階調数の調整に用いられる。有彩色と無彩色が混在する自然画像と、原稿中に多く見られる黒文字とでは、同じ黒色でも使用するインクの種類を変えることで、自然画像を自然画像らしく見せる一方で、鮮明な文字を出力することが出来る。
【０００６】
このように、画素毎に、有彩色か無彩色、文字部かそうでないか、といった各々１ビットの属性フラグデータを持つことにより、画像出力時、特にプリントアウト時に出力画像の画質向上を図ることが出来る。属性情報には前記以外の他の情報もある。
【０００７】
画像情報を圧縮するには、画像データの圧縮はもちろんのこと、上記属性情報も圧縮する必要がある。属性情報は２値データの集まりであり、これを圧縮するには基本的に可逆の符号化方式を用いる必要がある。従来、属性情報の圧縮にはＰａｃｋｂｉｔｓやＪＢＩＧ符号化方式が用いられてきた。
【０００８】
ここで前記属性情報をこれらの符号化方式で圧縮するだけでは、場合により符号化する前の符号量より大きくなる場合などが発生し、符号量調整を行なえず、限られたメモリに記憶するシステムで使用する場合においては、メモリオーバーを起こす可能性があり、大きな問題であった。
【０００９】
この問題について、最初の符号化工程において符号量が大きい場合には、属性情報を一部固定するように変換し、再圧縮工程を行うことで圧縮率を高めてメモリオーバーを回避するものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第3840076号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら先行技術のように、すべての属性情報の符号量がある許容量を超えた場合に属性フラグを一部固定するように変換する手法では、本来、属性フラグ毎に圧縮率が異なり各属性フラグデータの圧縮方法を制御することで可逆性の維持が可能なデータにおいても可逆性を失うことになる。その結果、各属性フラグに基づいて像域分離していた領域を同一としてみなし、画像処理を行うことになる。よって像域分離を行うことで画質向上を期待していた処理が行えず、再符号化動作が発生した場合には、本来の像域分離により望まれる画質向上が望めないという課題があった。
【課題を解決するための手段】
【００１２】
多値画像データの各画素の属性情報（３０５~３１１）を入力し、圧縮符号化する画像処理装置（１００）であって、画像情報を任意の画素ブロックに分割する分割手段（１３１、１３２）と、前記画素ブロックの各画素に対応する属性情報を属性情報毎にまとめて配列する属性情報配列手段（６０１、６０２）と、配列された属性情報群にて可逆符号化する符号化手段（６０５）と、前記符号化手段で得られる各属性情報群の符号化データ量を監視し、前記各属性情報群の符号化データ量が所定基準を満たしたか否かを判断する符号量監視手段（６０６）とを備え、前記符号量監視手段において各属性情報群の全ての符号化データ量が第1の基準を満たした場合には、各属性情報群のそれぞれが第2の基準を満たしているか否かを判断し、基準を満たしている対象の属性情報群に対して条件を変更して符号化することを特徴とする画像処理装置。
【発明の効果】
【００１３】
画素ブロック毎の属性情報を属性情報毎にてまとめて配列、符号化し、さらに画素ブロック毎の全ての属性情報の符号化データ量を監視し、属性情報の全ての符号化データ量が所定の符号化データ量を超えた場合には各属性情報群の符号化データ量をそれぞれ確認する。これにより符号化前データ量より大きくなった属性情報群には符号化しないでそのまま出力することにより、属性情報毎に符号化データを分離でき、圧縮率の高い属性情報群には従来の可逆符号化技術を利用しながらも、可逆符号化の特性でもある符号化後のデータ量が符号化前よりも大きくなるような属性情報群には符号化しないで可逆性を保つことで属性情報を利用した画像処理が可能となり、本来の画質向上が望めるものである。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態に係る画像処理システムの全体構成を示すブロック図である。
【図２】本実施の形態に係るソフトウェアモジュールを示すブロック図である。
【図３】本実施の形態に係る1画素のデータ構成を示す一例である。
【図４】本実施の形態に係るパケットデータを示す構成図である。
【図５】本実施の形態に係る画像圧縮部１０３の内部ブロック図である。
【図６】本実施の形態に係る属性フラグ用符号化部５０５の内部ブロック図である。
【図７】本実施の形態に係る符号量演算部６０６の内部ブロック図である。
【図８】本実施の形態に係る属性フラグデータの符号化動作のフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１６】
［実施例］
図１は、本実施形態に係る画像処理システムの全体構成を示すブロック図である。図１において、画像形成装置１００は、画像入力デバイスであるスキャナ１０１やデータを受信、処理されたデータにプリンタ側の画像処理を行うためのプリンタ画像処理部１１９を介して画像出力デバイスであるプリンタエンジン１０２が内部で接続されている。そして画像データの読み取りやプリント出力のための制御を行う。また、画像形成装置１００は、ＬＡＮ１０や公衆回線１０４と接続することで、画像情報やデバイス情報をＬＡＮ１０経由で入出力するための制御を行う。
【００１７】
ＣＰＵ１０５は画像形成装置１００を制御するための中央処理装置である。ＲＡＭ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。さらに、ＲＯＭ１０７はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ１０８はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データ等を格納する。操作部Ｉ／Ｆ１０９は、画像データ等を表示可能な表示画面を有する操作部１１０に対するインタフェース部であり、操作部１１０に対して操作画面データを出力する。また、操作部Ｉ／Ｆ１０９は、操作部１１０から操作者が入力した情報をＣＰＵ１０５に伝える役割をする。ネットワークI／F１１１は、例えばＬＡＮカード等で実現され、ＬＡＮ１０に接続して外部装置との間で情報の入出力を行う。さらにまた、モデム１１２は公衆回線１０４に接続し、外部装置との間で情報の入出力を行う。以上のユニットがシステムバス１１３上に配置されている。
【００１８】
イメージバスＩ／Ｆ１１４は、システムバス１１３と画像データを高速で転送する画像バス１１５とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。そして、画像バス１１５上には、以下で詳述するRIP用パケット生成部１３１とそれを介してラスタイメージプロセッサ（ＲＩＰ）部１１６、デバイスＩ／Ｆ１１７、スキャナ画像処理部１１８、画像編集用画像処理部１２０、画像圧縮部１０３、画像伸張部１２１、カラーマネージメントモジュール（ＣＭＭ）１３０が接続される。
【００１９】
ラスタイメージプロセッサ（ＲＩＰ）部１１６は、ページ記述言語（ＰＤＬ）コードをビットマップの画像データに展開する。RIP用パケット生成部１３１はRIP部１１６より出力されたビットマップの画像データを所定のサイズの矩形タイルに分割し、さらにヘッダ等を加え、後述するフォーマットに変換してパケットとして出力するものである。デバイスＩ／Ｆ１１７は、スキャナ画像処理部１１８とプリンタ画像処理部１１９を介してスキャナ１０１やプリンタエンジン１０２とを接続し、画像データの同期系／非同期系の変換を行う。
【００２０】
また、スキャナ画像処理部１１８は、スキャナ１０１からスキャン用パケット生成部１３２にてヘッダ等を加え、所定のフォーマットに変換し、パケット化した入力画像データに対して、補正、加工、編集等の各種処理を行う。画像編集用画像処理部１２０は、画像データの回転や、変倍、色処理、トリミング・マスキング、2値変換、多値変換、白紙判定等の各種画像処理を行う。画像圧縮部１０３はRIP部１１６やスキャナ画像処理部１１８、画像編集用画像処理部１２０で処理された画像データをHDD１０８で一度格納する際に所定の圧縮方式で符号化するものである。画像伸張部１２１はHDD１０８で圧縮されている画像データを必要に応じて画像編集用画像処理部１２０での処理や、プリンタ画像処理部１１９で画像処理し、プリンタエンジン１０２で出力する場合において、一度圧縮され符号化されているデータを、複号化し伸張するものである。
【００２１】
プリンタ画像処理部１１９は、プリント出力する画像データに対して、プリンタエンジンに応じた画像処理補正や、本発明に関わるトナー制御のためにビデオデータのカウント処理等を行う。ＣＭＭ１３０は、画像データに対して、プロファイルやキャリブレーションデータに基づいた、色変換処理（色空間変換処理ともいう）を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間（例えばＬａｂなど）に変換するための関数のような情報である。キャリブレーションデータは、スキャナ１０１やプリンタエンジン１０２の色再現特性を修正するためのデータである。
【００２２】
図２で示される各ソフトウェアモジュールは主にＣＰＵ１０５上で動作する。
【００２３】
図２に示すジョブコントロール処理２０１は図示／不図示の各ソフトウェアモジュールを統括・制御し、コピー、プリント、スキャン、ＦＡＸ送受信などの図示しない画像形成装置１００内で発生するあらゆるジョブの制御を行う。
【００２４】
ネットワーク処理２０２は、主にネットワークＩ／Ｆ１１１を介して行われる、外部との通信を制御するモジュールであり、ＬＡＮ１０上の各機器との通信制御を行う。ネットワーク処理２０２はＬＡＮ１０の各機器からの制御コマンドやデータを受信すると、その内容を、ジョブコントロール処理２０１へ通知する。また、ジョブコントロール処理２０１からの指示に基づき、ＬＡＮ１０の各機器へ制御コマンドやデータの送信を行う。
【００２５】
ＵＩ処理２０３は、主に操作部１１０、操作部Ｉ／Ｆ１０９に係る制御をおこなう。操作者が操作部１１０を操作した内容を、ジョブコントロール処理２０１へ通知すると共に、ジョブコントロール処理２０１からの指示に基づいて、操作部１１０上の表示画面の表示内容を制御する。
【００２６】
ＦＡＸ処理２０４は、ＦＡＸ機能の制御をおこなう。ＦＡＸ処理２０４は、モデム１１２を介してＦＡＸ受信を行い、ＦＡＸ画像特有の画像処理を施した後、受信画像をジョブコントロール処理２０１へ通知する。また、ジョブコントロール処理２０１からの指定される画像を、指定通知先へＦＡＸ送信を行う。
【００２７】
プリント処理２０７は、ジョブコントロール処理２０１の指示に基づいて、画像編集用画像処理部１２０、プリンタ画像処理部１１９およびプリンタエンジン１０２を制御し、指定画像の印刷処理を行う。プリント処理２０７は、ジョブコントロール処理２０１より、画像データ、画像情報（画像データのサイズ、カラーモード、解像度など）、レイアウト情報（オフセット、拡大縮小、面つけなど）および出力用紙情報（サイズ、印字方向など）の情報を受け付ける。そして、画像圧縮部１０３、画像伸張部１２１、画像編集用画像処理部１２０およびプリンタ画像処理部１１９を制御して、画像データに対して適切な画像処理を施し、プリンタエンジン１０２を制御して指定用紙への印刷を行わせる。
【００２８】
スキャン処理２１０は、ジョブコントロール処理２０１の指示に基づいて、スキャナ１０１、およびスキャナ画像処理１１８を制御して、スキャナ１０１上にある原稿の読み込みを行わせる。ジョブコントロール処理２０１の指示には、カラーモードが含まれており、スキャン処理２１０ではカラーモードに応じた処理が行われる。すなわち、カラーモードがカラーであれば、原稿をカラー画像として入力し、カラーモードがモノクロであれば、原稿をモノクロ画像として入力する。また、カラーモードがＡｕｔｏである場合には、プレスキャンなどにより原稿のカラー／モノクロ判定を行った後、判定結果に基づいた画像として再度原稿をスキャンして画像を入力する。スキャン処理２１０は、スキャナ１０１の原稿台にある原稿のスキャンを実行し、デジタルデータとして画像の入力を行う。入力した画像のカラー情報は、ジョブコントロール処理２０１へ通知される。さらに、スキャン処理２１０は入力画像に対し、スキャナ画像処理２１８を制御して画像の圧縮等、適切な画像処理を施した後、ジョブコントロール処理２０１へ画像処理済みの入力画像を通知する。
【００２９】
色変換処理２０９は、ジョブコントロール処理２０１の指示に基づいて、指示画像に対して、色変換処理を行い、色変換処理後の画像をジョブコントロール処理２０１へ通知する。
【００３０】
ジョブコントロール処理２０１は、色変換処理２０９に対して、入力色空間情報、出力色空間情報および色変換を適用する画像を通知する。色変換処理２０９に通知された出力色空間が、入力機器に依存しない色空間（例えばＬａｂ空間）である場合には、入力機器に依存する入力色空間（例えば、ＲＧＢ）からＬａｂに変換するための情報である入力プロファイル情報があわせて通知される。この場合、色変換処理２０９は入力プロファイルより、入力色空間からＬａｂ空間へマッピングするルックアップテーブル（ＬＵＴ）を作成し、このＬＵＴを利用して入力画像の色変換を行う。
【００３１】
また、色変換処理２０９に通知された入力色空間が、Ｌａｂ空間である場合には、Ｌａｂ空間から出力機器に依存する出力色空間に変換するための出力プロファイル情報があわせて通知される。この場合、色変換処理２０９は出力プロファイルより、Ｌａｂ色空間から出力色空間へマッピングするＬＵＴを作成し、このＬＵＴを利用して入力画像の色変換を行う。
【００３２】
また、色変換処理２０９に通知された入力色空間、出力色空間の双方が、デバイスに依存する色空間である場合には、入力プロファイルと出力プロファイルの双方が通知される。この場合、色変換処理２０９は入力プロファイルおよび出力プロファイルより、入力色空間から出力色空間へダイレクトにマッピングするＬＵＴを作成し、このＬＵＴを利用して入力画像の色変換を行う。
【００３３】
色変換処理２０９では、ＣＭＭ１３０が機器内にあれば、ＣＭＭ１３０へ生成したＬＵＴを設定することより、ＣＭＭ１３０を利用して色変換を行う。一方、ＣＭＭ１３０がない場合にはＣＰＵ２０５がソフト的に色変換処理を行う。
【００３４】
ＲＩＰ処理２１１は、ジョブコントロール処理２０１の指示に基づいて、ＰＤＬ（ページ記述言語）の解釈（インタプリット）を行い、ＲＩＰ部１１６を制御してレンダリングすることで、ビットマップイメージへの展開を行う。
【００３５】
以上のような構成で、本画像処理システムがＬＡＮ１０より印刷ジョブを受けて、画像データおよび関連する属性フラグデータの符号化動作を行いデータ圧縮し、HDD１０８に順次格納するまでの動作について詳細に説明する。
【００３６】
まず始めに、上述したように図示しないホストコンピュータよりＬＡＮ１０を介して送信されてきたＰＤＬ（ページ記述原語）は、ネットワークＩ／Ｆ１１１にて受信し、イメージバスＩ／Ｆ１１４よりＲＩＰ部１１６へ入力される。PDLデータには、線画の描画コマンド、書体（フォント名）やサイズ、文字コード等で構成する文字描画コマンドが含まれる。ＲＩＰ部１１６は送信されたＰＤＬ解釈（インタプリット）を行い、ＲＩＰ部１１６にて処理できるコードデータへ変換し、それに基づいてレンダリングを実行する。
【００３７】
このとき、レンダリング処理によって個々の画素の属性が判明するので、それを属性フラグとして、各画素データに付加する。
【００３８】
図３は1画素のデータ構成を示す一例である。本実施の形態ではR（レッド）、G（グリーン）、B（ブルー）の3原色の構成の画像データに、その画素の属性を示すフラグを属性フラグとして8ビットを付加したものを1画素としている。
【００３９】
３０５は文字/非文字を示す文字フラグ、３０６は有彩色/無彩色を示す有彩色フラグ、３０７は線画を示す線画フラグ、３０８はスキャンジョブであるか、PDLジョブであるかを示すジョブフラグ、３０９はフラット０、１の2ビットで写真やグラフィックなどフラットなオブジェクトの種類を示すフラットフラグ、その他必要に応じて処理１フラグ３１０、処理２フラグ３１１を割り当てたものである。
【００４０】
次にRIP部１１６でレンダリングされ、属性フラグが付加された画像データはRIP用パケット生成部１３１で後述する矩形サイズにデータが分割され、さらに各画像データにヘッダデータを付加することにより成り立つパケットデータが生成される。
【００４１】
図４は本実施の形態におけるパケットデータを示す構成図である。
【００４２】
パケットデータ全体の構成としてはヘッダデータ部４０１、画像データ部４０２、属性フラグデータ部４０３より成り立っている。
【００４３】
ヘッダデータ部４０１は、ジョブファイルにおけるページ情報や、RGB、YMCK、YUVといったイメージのタイプの識別情報、符号化されたデータか、否かの識別情報、そのパケット自体のデータサイズなどがヘッダ情報として格納されているものである。
【００４４】
画像データ部４０２は、画像データを任意の矩形サイズに分割したものをデータとしてパッキングしたものである。本実施の形態では図３で示したRGBの部分であり、矩形サイズとして３２×３２画素のデータが格納されているものである。
【００４５】
また属性フラグデータ部４０３は先ほど説明したようにRIP部１１６にて画素ごとに付加された属性フラグ３０５〜３１１が格納されているものである。
【００４６】
このようにしてRIP用パケット生成部１３１にてパケット化されたパケットデータは次に画像バス１１５を介して画像圧縮部１０３にて圧縮符号化される。
【００４７】
図５は画像圧縮部１０３の構成を示すブロック図である。
【００４８】
入力されてきたパケットデータはパケットデータ分割部５０１にてヘッダデータ、画像データ、属性フラグデータにそれぞれ分割する。画像データは、画像データ用タイルバッファ５０２にて一度バッファリングされた後、画像データ用符号化部５０４で非可逆な圧縮方式（本実施の形態ではJPEG方式）で圧縮符号化される。JPEG圧縮方式であるので、最小の符号化ウィンドウサイズは8×8画素であるので、32×32画素タイルの場合、その中に4×4個（16個）の8×8画素が存在することになるので1タイルの符号化では8×8画素単位で画像データ用タイルバッファ５０２よりデータを読み出し、JPEG圧縮を１６回行なうことになる。このようにして画像データ用符号化部５０４では32×32画素のタイル画像データに含まれる16個の8×8画素ウィンドウに対し周知のDCT（離散コサイン）変換を施して量子化する。そして、量子化後のデータに対してハフマン符号語を割り当て、画像データの符号化を終了する。
【００４９】
一方、属性フラグデータは属性フラグデータ用タイルバッファ５０３に一度バッファリングされた後、属性フラグデータ用符号化部５０５で可逆な圧縮方式（本実施の形態ではPackBits方式）で圧縮符号化される。
【００５０】
図６は本実施の形態における属性フラグデータ用符号化部５０５の構成を示すブロック図である。
【００５１】
以下、属性フラグデータ用符号化部５０５における属性フラグデータの符号化のフローを図８のフローチャートを用いて説明する。
【００５２】
入力された各画素8ビットで構成される属性フラグデータ（図中FlagDataIn[7:0]）は属性情報分割部６０１にて各属性フラグに分割され、各属性フラグバッファ６０２[0]〜[6]へ入力される（S１００１）。なお本実施の形態において属性フラグの種類は図３で説明したように７種類であり、それぞれ属性フラグバッファ６０２[0]〜[6]に画素順に格納されていく。また2ビットで１つのフラットオブジェクトの種類を示すフラットフラッグはフラットフラグ部分の2ビットずつを抽出し、対応する属性フラグバッファ６０２[4]へ格納される。よって本実施の形態では対応する属性フラグバッファ６０２[4]は他の属性フラグバッファより2倍の容量が必要となる。
【００５３】
属性フラッグバッファ６０２[0]〜[6]に全ての属性フラグデータが格納された後、まず始めに属性フラグバッファリード制御部６０３にて属性フラグバッファ６０２[0]から順次属性フラグデータを読み出していく。本実施の形態では属性フラグバッファ６０２[0]〜[6]の順に属性フラグデータを読み出すので、次段の可逆圧縮部６０５には1パケット分の文字フラグデータ、有彩色フラグデータ、線画フラグデータ、ジョブフラグデータ、フラットフラグデータ、処理１フラグデータ、処理２フラグデータの順に入力され符号化されていく（S１００２）。
【００５４】
なお属性フラグバッファリード制御部６０３は出力信号としてリードステータス信号[6:0]の７ビットの信号幅を持ち、属性フラグバッファ６０２[0]~[6]のどこのバッファをリードしているのかを信号として出力する。つまり例えば属性フラグバッファ[0]よりリードしている場合には1ビット目を‘１’とした”0b0000001”を出力し、属性フラグバッファ[6]よりリードしている場合には７ビット目を‘１’として“0b1000000”を出力するものである。
【００５５】
可逆圧縮部６０５には先ほど説明したとおりPackBits符号化手法にて逐次圧縮されていき後述する符号量制御部６０６を介し、後段の符号化データバッファ６０７に一時格納される。
【００５６】
符号化データバッファ６０７は1パケットデータ内の属性フラグデータ部における符号化前の属性フラグデータ分の容量を持っているものとする。PackBits符号化手法は周知のとおり可逆圧縮手法の１つなので属性フラグデータにより符号化前のデータ量より大きくなってしまう場合がある。したがって可逆圧縮部６０５からの符号化された属性フラグデータの符号量が符号化データバッファの容量を超えた場合、つまり符号化前のデータ量を超えた場合はそれ以上符号化データを格納しないものとする。
【００５７】
次に先ほどの符号量制御部６０６の動作について詳しく説明する。
【００５８】
図７は符号量制御部６０６の内部構成を示すブロック図である。
【００５９】
先ほど可逆圧縮部６０５によりPackBits符号化される各属性フラグデータは属性フラグデータ毎にそのデータの符号量を符号量カウンタ７０１にてカウントされる（S１００３）。本実施の形態では文字フラグデータ、有彩色フラグデータ、線画フラグデータ、ジョブフラグデータ、フラットフラグデータ、処理１フラグデータ、処理２フラグデータの順に先ほどの属性フラグバッファ６０２[0]~[6]から読み出し、符号化、符号量のカウントを実行する。そして各属性フラグデータの符号化データのカウントが終了するたびに、その結果を図の対応する符号量サイズレジスタ７０２[0]~[6]へ逐次格納していく。先ほど説明したように1パケットデータ内の属性フラグデータが全て符号化され、符号化データバッファ６０７に格納された後、符号化データバッファ６０７は符号化バッファライトエンド信号を符号量演算部７０５に送信する。符号量演算部７０５では符号化バッファライトエンド信号を受信し、これにより符号化が終了したことを検知する（S１００４）。そしてまず1パケットデータの属性フラグデータの符号量を計算する。具体的には先ほど符号量サイズレジスタ７０２[0]~[6]の各属性フラグの符号量の総和の値を算出する（S１００５）。今、この符号量の総和値をSUMとするとSUMは以下の式で表される。
【００６０】
SUM  ＝  文字フラグ符号量＋有彩色フラグ符号量＋線画フラグ符号量
＋ジョブフラグ符号量＋フラットフラグ符号量＋処理１フラグ符号量
＋処理２フラグ符号量
次にこの符号量の総和SUMが実際の目標とする圧縮率に収まったか、否かを符号量閾値レジスタ７０３の値と比較する。
【００６１】
符号量閾値レジスタ７０３は、1パケットデータ内の属性フラグデータの目標とする圧縮率に応じた値を格納するものである。例えば1パケットデータの全ての属性フラグデータの符号化前のデータ量は1画素につき8ビットのデータが1024画素分あるので合計1024バイトである。先ほどの目標とする圧縮率を1/2とする場合には512バイトを示す値をレジスタに設定しておけばよい。本レジスタは予めCPU105より図示しないレジスタバスにより設定可能であるレジスタであるものとする。
【００６２】
この符号量閾値レジスタ７０３と先ほどの属性フラグの符号量の総和SUMを比較する（S１００６）。総和SUMが符号量閾値レジスタ７０３の設定された閾値よりも小さい場合（S１００６のYes）、つまり予め設定した目標とする圧縮率に収まった場合には、符号量演算部７０５の出力信号の１つである符号化バッファリードスタート信号を符号化データバッファ６０７へ送信する。符号化データバッファ６０７は、符号量演算部７０５より符号化バッファリードスタート信号を受信した後、符号化された属性フラグデータをバッファ内よりリードし、後段の符号化パケットデータ生成部５０６へ出力する。
【００６３】
次に符号量閾値レジスタ７０３と先ほどの属性フラグの符号量の総和SUMを比較して、総和SUMが符号量閾値レジスタ７０３の設定された閾値よりも大きい場合（S１００６のNo）、つまり予め設定した目標とする圧縮率に収まらなかった場合について説明する。最初に先ほどの符号量サイズレジスタ７０２の各レジスタを順次確認し（S１００７）、各々の属性フラグデータの符号量が符号前より大きくなっているか、否かを判断する。例えば符号量サイズレジスタ７０２[0]には、文字フラグデータの符号化後の符号量が格納されており、符号化前の1パケットデータの文字フラグデータ量は128バイトの固定値でありこの値より大きいかを比較することで判断できる。具体的には符号量サイズレジスタ７０２[0]〜[6]の各レジスタの値と符号化前の各フラグデータのデータ量を比較することにより可逆圧縮部６０５にてPackBits符号化され、符号量が大きくなってしまった属性フラグを特定できる（S１００８）。
【００６４】
符号量演算部７０５ではこの符号化により符号量が大きくなってしまった属性フラグを符号化前のデータ量に変換して（S１００９）、先ほどの総和SUMを算出する。
【００６５】
例えば、今、処理１フラグデータ３１０と処理２フラグデータ３１１が符号量前より大きくなったと判断された場合には、先ほどの属性フラグデータの符号量の総和SUMの式は以下のように変換して算出される（S１０１０）。
【００６６】
SUM  ＝  文字フラグ符号量＋有彩色フラグ符号量＋線画フラグ符号量
＋ジョブフラグ符号量＋フラットフラグ符号量
＋１２８バイト（処理１フラグの符号化前データ量）
＋１２８バイト（処理２フラグの符号化前データ量）
このようにして、算出された総和SUMの値を先ほどと同様に符号量閾値レジスタ７０３の値と比較する（S１０１１）。
【００６７】
この場合の総和SUMの値が符号量閾値レジスタ７０３の設定された閾値よりも小さい場合（S１０１１のYes）、つまり予め設定した目標とする圧縮率に収まった場合には、符号量演算部７０５の出力信号の１つである符号化マスク信号[6:0]を変更して出力する。符号化マスク信号[6:0]は７ビット幅を有する信号であり、各々が各属性フラグに対応している。先ほどの例のように、いま処理１フラグ３１０と処理２フラグ３１１が符号化後の符号量が大きいと判断された場合には符号化マスク信号の６ビット目と７ビット目を‘１’とし、“0b1100000”として圧縮制御部６０４へ出力する。さらに入力バッファリードスタート信号を属性フラグバッファリード制御部６０３へ出力し、再度、各々の属性フラグバッファ６０２[0]~[6]からの属性フラグデータのリードを実行し、可逆圧縮部６０５へ属性フラグデータを送信していく。
【００６８】
このときに圧縮制御部６０４では上記説明したリードステータス信号[6:0]と符号化マスク信号[6:0]の２つの信号を入力として受信し、出力信号である符号化イネーブル信号を制御し、可逆圧縮部６０５の圧縮動作の可否を決める。具体的には符号化マスク信号[6:0]＝”0b1100000”で、リードステータス信号[6:0]＝”0b0100000”もしくは”0b1000000”のとき（処理１フラグ３１０もしくは処理2フラグ３１１をリードしている状態）、符号化イネーブル信号を‘0’とする。よって可逆圧縮部６０５は属性フラグバッファ６０２[5]と[6]をリードしているとき、つまり処理１フラグ３１０もしくは処理２フラグ３１１をリードして可逆圧縮部６０５に入力しているときにはPackBits符号化動作は行わずにそのまま後段の符号化データバッファ６０７へ格納していく（S１０１２）。1パケット分の属性フラグデータが符号化データバッファ６０７へ格納された時点で属性フラグデータの符号化を終了する（S１０１３）。
【００６９】
これにより、一部の符号化により符号化前より大きくなった属性フラグデータを圧縮せずにそのまま出力することで目標の圧縮率に収めることが可能となる。
【００７０】
次に符号量制御部６０６にて符号量閾値レジスタ７０３と先ほどの属性フラグの符号量の総和SUMを比較して、総和SUMが符号量閾値レジスタ７０３の設定された閾値よりも大きく、さらに先ほどのように一部の符号化前より大きくなった属性フラグデータの符号量を符号化前のデータ量に置き換えても大きかった場合（S１０１１のNo）について説明する。
【００７１】
この場合には、一部の属性フラグデータをいずれかの値に固定化していくことで圧縮率を高める手法をとる。符号量演算部７０５には、この手法の際に固定化する属性フラグデータの優先度を設定できる優先度設定レジスタ７０４[0]~[6]を設けている。
【００７２】
このレジスタは画像処理等の画質への影響度により、固定化する属性フラグの優先度を設定できるものであり、優先度設定レジスタ７０４[0]には最も優先度の高い属性フラグの識別コードを設定し、優先度設定レジスタ７０４[6]には最も優先度の低い属性フラグの識別コードを設定するものとする。
【００７３】
例えば優先度設定レジスタ７０４の一番優先度の低いことを示す属性フラグ優先レジスタ７０４[6]に処理２フラグ３１１を示す識別コードが設定されていた場合には処理２フラグ３１１は全て’0’ or ‘1’に固定した符号量として換算される。よってこの場合は、処理２フラグ３１１は1024画素分で1024ビット＝128バイトである。これがすべて‘0’になりPackBitsの符号化を行うと2バイトとなる（S１０１４）。 
【００７４】
したがって上記の手法をとった場合の符号量の総和SUMは、処理１フラグはすでに先ほどの手法で符号化前のデータ量に置き換えられるものとして以下のように算出できる（S１０１５）。
【００７５】
SUM  ＝  文字フラグ符号量＋有彩色フラグ符号量＋線画フラグ符号量
＋ジョブフラグ符号量＋フラットフラグ符号量
＋１２８バイト（処理１フラグの符号化前データ量）
＋２バイト（処理２フラグを固定値として符号化したデータ量）
なお、この処理は符号量の総和SUMが符号量閾値レジスタ７０３に設定された目標の圧縮率に達するための値より小さくなるまで、逐次優先度設定レジスタ[0]〜[6]の優先度に従って対応する属性フラグデータを固定化した符号量に置き換えて総和SUMの値を算出していくものである。
【００７６】
このような処理により最終的に総和SUMの値が符号量閾値レジスタ７０３の値を超えない結果が算出された時点で処理を終了する（S１０１６）。
【００７７】
処理が終了した時点で符号量演算部７０５はデータマスク信号[6:0]にこの算出結果の情報を反映する。データマスク信号[6:0]は7ビット幅を有する出力制御信号であり、各ビットは各属性フラグに対応する。
【００７８】
例えば、処理２フラグ３１１のみ固定化するだけでよい場合には、データマスク信号[6:0]＝“0b1000000”とし出力することで処理２フラグ３１１のデータの固定化を制御する。
また、先ほどの符号化マスク信号[6:0]はこの場合、処理１フラグ３１０のみ符号化をマスクするために”0b0100000”が圧縮制御部６０４へ出力される。
【００７９】
このように符号量演算部７０５により決定されたデータマスク信号[6:0]は、前段の属性フラグバッファリード制御部６０３へ出力される。
【００８０】
さらに符号量演算部７０５は入力バッファリードスタート信号も属性フラグバッファリード制御部６０３へ出力し、再度、各々の属性フラグバッファ６０２[0]~[6]からの属性フラグデータのリードを実行し、可逆圧縮部６０５へ属性フラグデータを送信していく。
【００８１】
このときに属性フラグバッファリード制御部６０３では上記説明したデータマスク信号[6:0]を入力として受信し、対応するビットの属性フラグデータを属性フラグバッファ６０２からリードしているときにその属性フラグバッファを固定値に置き換えて可逆圧縮部６０５へ送信する。先ほどの例では属性フラグバッファ６０２[6]から処理2フラグ３１１をリードしているのときに属性フラグバッファリード制御部６０３はそのデータを常に‘０’もしくは‘１’に置き換えて可逆圧縮部６０５へ出力する（S１０１７）。可逆圧縮部６０５ではこの固定値のままPackBits符号化を行い、先ほど算出した2バイトの符号量データが処理２フラグの符号化データとして符号化データバッファ６０７へ格納される。1パケットの属性フラグデータが符号化データバッファ６０７へ格納された時点で属性フラグデータの符号化を終了する（S１０１８）。
【００８２】
これにより、一部の符号化前より大きくなった属性フラグデータを圧縮せずにそのまま出力する手法に加え、さらに一部の画像処理に対して優先度の低い属性フラグデータを固定化して出力し、符号化することで目標の圧縮率に収めることが可能となる。
【００８３】
なお、本実施の形態では符号量演算部７０５の符号量の総和SUMの値の算出処理は全て符号量演算部のハードウェアが行う構成で説明したが、CPU105が符号量サイズレジスタ[0]〜[6]を確認し、その都度、符号量の総和SUMの値を算出し、各制御信号を制御する形態であっても構わない。
【００８４】
以上のような処理により、最終的に目標の圧縮率に収まった符号化された属性フラグデータは符号化データバッファ６０７より図５の符号化パケットデータ生成部５０６に出力される。符号化パケットデータ生成部５０６では画像データ用符号化部５０４よりJPEG圧縮を施された1パケット分の符号化画像データと、先ほど説明してきた属性フラグ用符号化部５０５よりPackBits圧縮を施された1パケット分の符号化属性フラグデータとを結合する。さらに入力段でパケットデータ分割部５０１より分割されたヘッダデータの一部を適切な値に書き換えてヘッダデータとして付加することにより符号化されたパケットデータを生成する。その結果、画像圧縮部１０３より符号化されたパケットデータは順次イメージバスI/F114を介し、HDD１０８へ格納されていき、圧縮処理を終了する。
【００８５】
また本実施の形態ではRIP用パケット生成部１３１で画像データを32×32の矩形データに分割し、画像圧縮部１０３で圧縮処理を行う構成で記載したが、1ページ全体の画像データを圧縮する場合においても、先ほどの各バッファの容量を大きく持ち、圧縮率の目標に応じて符号量のサイズを決めていた属性フラグ符号量閾値レジスタを1ページ分の符号量を設定できるレジスタを設けることで、本手法は適用できるものである。
【００８６】
以上、説明してきたように本実施の形態のような属性フラグデータの圧縮手法を用いることにより、属性データの可逆性を保ったまま、もしくは最低限の属性データ情報の損失で属性フラグデータを目標の圧縮率の範囲で圧縮することが可能となる。
【符号の説明】
【００８７】
１０３・・・画像圧縮部
５０５・・・属性フラグ符号化部
６０１・・・属性情報分割部
６０２・・・属性フラグバッファ
６０６・・・符号量制御部
７０１・・・符号量カウンタ
７０２・・・符号量サイズレジスタ
７０３・・・符号量閾値レジスタ
７０４・・・優先度設定レジスタ
７０５・・・符号量演算部
【図１】
2013121154.tif 000003
【図２】
2013121154.tif 000004
【図３】
2013121154.tif 000005
【図４】
2013121154.tif 000006
【図５】
2013121154.tif 000007
【図６】
2013121154.tif 000008
【図７】
2013121154.tif 000009
【図８】
2013121154.tif 000010