(57)【要約】      （修正有）【課題】簡易な処理によって、高圧縮、高画質を両立する符号化技術を提供する。【解決手段】画像データのブロックに含まれる所定の位置の画素の値を代表色とし、それ以外を補間色とし、代表色と補間色との配置を出力する圧縮手段と、各ブロックに対し減色処理を行う減色手段と、減色した画像データに対し圧縮処理を行い得られた補間色のデータ量と、画像データに対し圧縮処理を行い得られた代表色からなる縮小画像データに対し更に圧縮処理を行い補間色のデータ量との総和の全体補間データ量を算出する補間データ量算出手段と、減色した画像データに対し圧縮処理を行った補間色のデータ量と、画像データに対し圧縮処理を行った補間色のデータ量との差分である削減量を算出する削減量算出手段と、全体補間データ量および削減量に応じて、可逆符号化、もしくは非可逆符号化のいずれを行うかを選択する選択手段を有する。【選択図】図１１
2012074897.tif 000002
【特許請求の範囲】
【請求項１】
画像データを所定の画素数からなるブロックに分割し、分割された前記ブロックを順に符号化処理する画像処理装置であって、
処理対象の画像データにおいて、前記ブロックに含まれる画素のうち、所定の位置の画素の値を代表色とし、代表色以外の画素の値を補間色とし、前記ブロックにおける前記代表色と補間色との配置を配置情報として出力する圧縮手段と、
前記画像データにおける各ブロックに対し減色処理を行う減色手段と、
前記減色手段により減色した画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮手段による処理を行うことにより得られた代表色からなる縮小画像データに対して更に前記圧縮手段による処理を行うことにより得られた補間色のデータ量との総和である全体補間データ量を算出する補間データ量算出手段と、
前記減色手段により減色した画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量との差分である削減量を算出する削減量算出手段と、
前記全体補間データ量および前記削減量に応じて、可逆符号化、もしくは非可逆符号化のいずれを行うかを選択する選択手段と、
前記選択手段により可逆符号化を行うと選択された場合、前記圧縮手段により出力された前記代表色からなる縮小画像データを可逆符号化する可逆符号化手段と、
前記選択手段により非可逆符号化を行うと選択された場合、前記圧縮手段により出力された前記代表色からなる縮小画像データを非可逆符号化する非可逆符号化手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記圧縮手段は、
処理対象である前記画像データを２×２画素からなるブロックに分割する分割手段と、
前記ブロックに含まれる色数を決定する手段と、
前記ブロックに含まれる色に対する前記配置情報を求める手段と、
前記ブロックに含まれる色の中から前記代表色を求める手段と、
前記ブロックに含まれる色の中から代表色以外の色である０〜３色の補間色を求める手段と
を有し、
前記配置情報と前記代表色と前記補間色とを異なる記憶領域に記憶することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記減色手段は、
２×２画素からなる前記ブロックに２以上の色数が含まれている場合、当該ブロックに含まれる色の値の差分の大小に応じて、当該色数を削減できるか否かを判定する判定手段と、
前記判定手段により削減できると判定された場合、当該ブロックに含まれる色数を削減する削減手段と
を有することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記選択手段は、前記全体補間データ量と第一の閾値とを比較し、前記第一の閾値よりも前記全体補間データ量が小さい場合は、前記可逆符号化手段による可逆符号化を選択することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記選択手段は、前記削減量と第二の閾値とを比較し、前記第二の閾値よりも前記削減量が小さい場合は、前記非可逆符号化手段による非可逆符号化を選択し、前記第二の閾値よりも前記削減量が大きい場合は、前記可逆符号化手段による可逆符号化を選択することを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記選択手段により、前記可逆符号化手段による可逆符号化を行うと選択された場合、処理対象の画像データに対して前記圧縮手段による処理を行うことにより得られた代表色からなる画像データに更に前記圧縮手段による処理を行うことにより得られた代表色からなる縮小画像データに、前記可逆符号化手段による可逆符号化を適用することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記選択手段により、前記非可逆符号化手段による非可逆符号化を行うと選択された場合、処理対象の画像データに対して前記圧縮手段による処理を行うことにより得られた代表色からなる縮小画像データに、前記非可逆符号化手段による処理を適用することを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
画像データを所定の画素数からなるブロックに分割し、分割された前記ブロックを順に符号化処理する画像処理方法であって、
圧縮手段が、処理対象の画像データにおいて、前記ブロックに含まれる画素のうち、所定の位置の画素の値を代表色とし、代表色以外の画素の値を補間色とし、前記ブロックにおける前記代表色と補間色との配置を配置情報として出力する圧縮工程と、
減色手段が、前記画像データにおける各ブロックに対し減色処理を行う減色工程と、
補間データ量算出手段が、前記減色工程において減色した画像データに対して前記圧縮工程における処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮工程において処理を行うことにより得られた代表色からなる縮小画像データに対して更に前記圧縮工程における処理を行うことにより得られた補間色のデータ量との総和である全体補間データ量を算出する補間データ量算出工程と、
削減量算出手段が、前記減色工程において減色した画像データに対して前記圧縮工程における処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮工程において処理を行うことにより得られた補間色のデータ量との差分である削減量を算出する削減量算出工程と、
選択手段が、前記全体補間データ量および前記削減量に応じて、可逆符号化、もしくは非可逆符号化のいずれを行うかを選択する選択工程と、
可逆符号化手段が、前記選択工程において可逆符号化を行うと選択された場合、前記圧縮工程において出力された前記代表色からなる縮小画像データを可逆符号化する可逆符号化工程と、
非可逆符号化手段が、前記選択工程において非可逆符号化を行うと選択された場合、前記圧縮工程において出力された前記代表色からなる縮小画像データを非可逆符号化する非可逆符号化工程と
を有することを特徴とする画像処理方法。
【請求項９】
コンピュータを、
処理対象の画像データにおいて、ブロックに含まれる画素のうち、所定の位置の画素の値を代表色とし、代表色以外の画素の値を補間色とし、前記ブロックにおける前記代表色と補間色との配置を配置情報として出力する圧縮手段、
前記画像データにおける各ブロックに対し減色処理を行う減色手段、
前記減色手段により減色した画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮手段による処理を行うことにより得られた代表色からなる縮小画像データに対して更に前記圧縮手段による処理を行うことにより得られた補間色のデータ量との総和である全体補間データ量を算出する補間データ量算出手段、
前記減色手段により減色した画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量との差分である削減量を算出する削減量算出手段、
前記全体補間データ量および前記削減量に応じて、可逆符号化、もしくは非可逆符号化のいずれを行うかを選択する選択手段、
前記選択手段により可逆符号化を行うと選択された場合、前記圧縮手段により出力された前記代表色からなる縮小画像データを可逆符号化する可逆符号化手段、
前記選択手段により非可逆符号化を行うと選択された場合、前記圧縮手段により出力された前記代表色からなる縮小画像データを非可逆符号化する非可逆符号化手段
として機能させるためのプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを所定のブロック単位に圧縮する画像処理装置、画像処理方法、およびプログラムに関する。特に、高解像度の画像データを簡易、かつ高効率に符号化する技術に関するものである。
【背景技術】
【０００２】
従来、画像をｍ×ｎ画素で構成されるブロックに分割し、このブロックを可逆符号化する構成と、非可逆符号化する構成を備え、いずれか一方の符号化結果を着目ブロックの最終的な符号化データとして出力する画像符号化技術が提案されている。かかる技術は比較的画質劣化が目に付きにくい自然画像領域などでは、非可逆符号化方式を選択し圧縮率を高めている。反対に、画質劣化の目に付きやすい文字、線画、ＣＧ部分などでは可逆符号化方式を用いることで視覚的な画質劣化を抑制することをその基本としている。前述の方法として特許文献１が知られている。
【０００３】
可逆符号化としては、着目画素の画素値を周囲画素の値から予測し、その予測誤差を求め、その予測誤差を符号化する方法がある。あるいは、同一画素値の連続数に変換して符号化するランレングス符号化技術が利用されることが多い。一方、非可逆符号化としては、画像データをＤＣＴやｗａｖｅｌｅｔ変換などを用いて周波数空間のデータに変換し、係数値を符号化する変換符号化技術が一般的である。
【０００４】
近年、画像入出力機器の高精度化に伴い、画像データの高解像度化が進んでいる。高解像度の画像データを高速に処理するためには、より多くのハードウエアリソースや処理時間が必要となる。従って、高効率な可逆、非可逆の符号化処理には、高度な演算処理が必要とされ、圧縮性能、画質、演算コストの３つのバランスをよく満たす画像符号化技術が求められる。その方法として、例えば特許文献２のように、ｍ×ｎの分割画像データを可逆な低解像度データに変換し、変換する際に生成される補間データ量によって、可逆、非可逆圧縮方式を選択する方法が提案されている。その他にも、より圧縮率を高めるために、解像度変換処理においてを元の解像度に復元するデータを単純間引きし、符号化後のデータ量をより小さくする技術も提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−１６７０３０号公報
【特許文献２】特開２０１０−１４１５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した画像データに対して解像度変換を行い、解像度変換時に生成される補間データに基づき可逆・非可逆圧縮方式を選択する方法では、大幅な画質劣化が起こる可能性がある。つまり、解像度変換による単純間引きしたデータに対して非可逆圧縮方式を実行する場合には、２回分の非可逆な画像間引きを行うことに等しく、オリジナルの画像からの大幅な画質劣化を引き起こす問題がある。
【０００７】
本発明は、このような問題を鑑みてなされたもので、その目的は、簡易な処理によって、高圧縮、高画質を両立する符号化技術を提供する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、画像データを所定の画素数からなるブロックに分割し、分割された前記ブロックを順に符号化処理する画像処理装置であって、処理対象の画像データにおいて、前記ブロックに含まれる画素のうち、所定の位置の画素の値を代表色とし、代表色以外の画素の値を補間色とし、前記ブロックにおける前記代表色と補間色との配置を配置情報として出力する圧縮手段と、前記画像データにおける各ブロックに対し減色処理を行う減色手段と、前記減色手段により減色した画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮手段による処理を行うことにより得られた代表色からなる縮小画像データに対して更に前記圧縮手段による処理を行うことにより得られた補間色のデータ量との総和である全体補間データ量を算出する補間データ量算出手段と、前記減色手段により減色した画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量と、前記画像データに対して前記圧縮手段による処理を行うことにより得られた補間色のデータ量との差分である削減量を算出する削減量算出手段と、前記全体補間データ量および前記削減量に応じて、可逆符号化、もしくは非可逆符号化のいずれを行うかを選択する選択手段と、前記選択手段により可逆符号化を行うと選択された場合、前記圧縮手段により出力された前記代表色からなる縮小画像データを可逆符号化する可逆符号化手段と、前記選択手段により非可逆符号化を行うと選択された場合、前記圧縮手段により出力された前記代表色からなる縮小画像データを非可逆符号化する非可逆符号化手段とを有する。
【発明の効果】
【０００９】
本発明によれば、高解像度画像データに対して画質劣化を抑えた高い圧縮性能を実現する符号化を行うことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】ＭＦＰシステムの概要を示す図。
【図２】コントローラの概要を示す図。
【図３】圧縮処理全体フローを示す図。
【図４】画像をブロック分割した際にそのブロックのパターンを列挙した図。
【図５】ブロックのパターンとその識別子を列挙した図。
【図６】解像度変換／補間データ生成にて行われる処理フローを示す図。
【図７】ブロックのパターンをフラグへ変換している様子を示す図。
【図８】圧縮処理に対する入力と出力の関係を示す図。
【図９】圧縮データのメモリ空間上の配置を示す図。
【図１０】減色法での画像圧縮のフローを示す図。
【図１１】符号化選択手段の詳細をフローで示す図。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。図１に、本発明の実施の形態のスキャン、プリント、コピーを行うデジタル複合機システム（以降、ＭＦＰと称する）の全体構成図を示す。
【００１２】
コントローラ１０１は、画像入力デバイスであるスキャナ１０２と画像出力デバイスであるプリンタ１０３とに接続する。一方ではＬＡＮや公衆回線（ＷＡＮ）等のネットワーク１０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データのイメージ展開を行うことができる。ＣＰＵ１０５はシステム全体を制御するプロセッサである。また、本実施形態では、ＣＰＵ１０５がＨＤＤ記憶部１０７等に格納されたプログラムを読み出し、実行することで各処理を実現する。
【００１３】
メモリ１０６はＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部１０７は、ハードディスクドライブで、システムソフトウェア、画像データを格納する。外部入力装置１０８は、その例としてタッチパネルやキーボードなどが挙げられ、ＭＦＰを使用するユーザーが様々な印刷設定等を行うためのユーザインタフェース装置である。
【００１４】
図２を用いて、図１のコントローラ部の動作に関して詳細に説明する。スキャンデータを読み込む場合を説明する。スキャナ１０２からＲＧＢ（ＲＥＤ、ＧＲＥＥＮ、ＢＬＵＥ）３色の読み取り画像データを受け取ったコントローラ１０１では、まずスキャナ用画像処理部２０１にてシェーディング処理やフィルタ処理等の画像処理を行う。そして、圧縮部２０２にて画像圧縮処理を行う。その圧縮データをＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２０３を介して、メモリ１０６へ格納する。
【００１５】
スキャンデータをプリントする場合は、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１を介して色処理部２１２へ入力し、ＣＭＹＫ（Ｃｙａｎ、Ｍａｇｅｎｔａ、Ｙｅｌｌｏｗ、Ｂｌａｃｋ）色空間へ変換する。その後、それらＣＭＹＫの値に対して濃度調整、プリンタガンマ補正等の調整の色処理を行った後、ＤＭＡＣ２１１を介してメモリ１０６へ再度格納する。その後、プリント用の画像処理を行うために、ＤＭＡＣ２２１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２２２にてラスタ画像データへ展開する。ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３に入力し、そこでディザ法や誤差拡散法による面積階調処理を行い、プリンタ１０３へ出力する。なお、面積階調処理については、上記手法に限定するものではなく、本発明が適用できれば他の手法を用いても構わない。
【００１６】
スキャンデータをネットワークへ送信する場合には、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１を介して色処理部２１２へ入力し色変換を行う。具体的には、ディスプレイガンマ調整や用紙地色調整等を行った後にＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。その後再度、ＤＭＡＣ２１１を介してメモリ１０６へ格納する。その後、送信用の画像処理を行うために、ＤＭＡＣ２３１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２３２にてラスタ画像データへ展開する。ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３では、処理対象の画像データが、カラー画像送信であればＪＰＥＧ圧縮処理を行い、モノクロ２値画像送信であればＹデータに対して２値化を行ってＪＢＩＧ圧縮等を行う。そして、送信処理部２３３は、圧縮処理を施した画像データをネットワーク１０４へ出力する。
【００１７】
スキャンデータを保存する場合には、メモリ１０６に格納されている圧縮データをＤＭＡＣ２４１を介してディスクスプール高圧縮／展開部２４２へ入力する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤへの書き込みスピードがメモリへの書き込みスピードに比べて遅いため、さらに高圧縮のＪＰＥＧ圧縮を施す。その後ディスクアクセスコントローラ２４３を介してＨＤＤ記憶部１０７へ圧縮データを保存する。保存されているデータをメモリ１０６へ再度展開する場合はその逆処理を行う。
【００１８】
ＰＤＬのデータをメモリへ書き込む場合を説明する。図２では図示していないが、図１にてネットワークから送られてきたＰＤＬデータをＣＰＵ１０５にてインタプリットし、メモリ１０６へディスプレイリストを出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１でラスタ形式のＲＧＢ画像データへレンダリングを行い、圧縮部２５２にて画像圧縮処理を行う。その圧縮データは、ＤＭＡＣ２５３を介してメモリ１０６へ格納される。ＰＤＬデータをプリント、ネットワークへ送信、保存する場合は、スキャンデータのそれと同様の処理を行うことで実現する事が可能になる。以降では、本発明の特徴となるラスタ画像データの圧縮部の詳細に関して説明を行う。
【００１９】
［圧縮処理全体フロー］
まず、圧縮処理全体フローについて、図３を用いて説明する。本実施形態では、入力画像データの解像度を１２００ｄｐｉとし、二回の解像度変換により、３００ｄｐｉの解像度を有する縮小画像データを生成する例を示す。なお、本実施形態において、本処理フローは、ＣＰＵ１０５がＨＤＤ記憶部１０７等の記憶部に格納されたプログラムを読み込み、実行することにより実現する。また、本実施形態の以下の処理において、“パケット”とは、処理対象の画像データにおいて、６４×６４画素からなる画像データの単位を指す。また、“タイル”とは、処理対象の画像データにおいて、２×２画素からなる画像データの単位を指す。ここで、便宜上、“パケット”および“タイル”として画像データのサイズを定義したが、これに限定されるものではなく、必要に応じて変更しても構わない。
【００２０】
Ｓ３００において、ＣＰＵ１０５は、符号化を開始する前の初期化処理を行う。ここでは、符号化対象となる画像データについて符号列に含めるべきヘッダ情報を準備し、各種メモリ、変数等の初期化処理が行われる。ここで準備されるヘッダ情報には、符号化の方式や扱うデータの属性等が挙げられるが、本実施形態においては特に限定しない。
【００２１】
Ｓ３００における初期化処理の後、Ｓ３０１において、ＣＰＵ１０５は、圧縮部２５２や２０２に、レンダリング部２５１やスキャナ用画像処理部２０１からの画像データを順次入力する。その結果、符号化対象となる１ライン分の画像データがラインバッファへと入力される。画像データのハンドリング等については後述する。なお、ここでの“ライン”とは、画像データを圧縮する際に走査する方向（主走査方向）の画素群を示し、本実施形態において１ラインとは、１×Ｎ画素の構成からなる（ここで、Ｎは画像データの主走査方向における画素数）。
【００２２】
次に、Ｓ３０２において、ＣＰＵ１０５は、１ライン分の画像データに対して、着目するパケットデータ（６４×６４画素）を切り出す。続いて、Ｓ３０３において、ＣＰＵ１０５は、着目するタイルデータ中（２×２画素）の各画素ブロック中の左上隅の画素をサブサンプリングすることで１／２縮小タイルデータを生成する。つまり、入力画像データを１２００ｄｐｉの画像データから６００ｄｐｉの画像データを生成する。この処理が１２００ｄｐｉから６００ｄｐｉへの解像度変換であり、得られるデータを“６００ｄｐｉパケットデータ”と呼ぶことにする。なお、本実施形態においては、サブサンプリングを行う対象の画素の位置をブロック内の左上隅の画素としたが、これに限定されるものではなく、他の位置にある画素であっても構わない。
【００２３】
Ｓ３０４において、ＣＰＵ１０５は、６００ｄｐｉパケットデータから元の１２００ｄｐｉ解像度のパケットデータを復元するための１２００ｄｐｉ補間データを生成する。補間データおよび生成処理の詳細については図４〜９を用いて後述する。Ｓ３０５において、ＣＰＵ１０５は、解像度変換の際の補間データを削減するために、１２００ｄｐｉの画像データに対して減色処理を行う。減色処理の詳細については図１０を用いて後述する。Ｓ３０６において、ＣＰＵ１０５は、減色処理を行ったデータに対する減色１２００ｄｐｉ補間データを生成する。この処理の詳細については図４〜１０を用いて後述する。
【００２４】
続いて、Ｓ３０７において、ＣＰＵ１０５は、６００ｄｐｉパケットデータに対して、着目するタイルデータ中の各画素ブロック中の左上隅の画素をサブサンプリングすることで１／２縮小タイルデータを生成する。つまり、入力画像である６００ｄｐｉの画像データから３００ｄｐｉの画像データを生成する。この処理が６００ｄｐｉから３００ｄｐｉへの解像度変換であり、得られるデータを“３００ｄｐｉパケットデータ”と呼ぶことにする。ここでのサブサンプリングにおいても、Ｓ３０３と同様に画素の位置については左上隅に限定するものではない。Ｓ３０８において、ＣＰＵ１０５は、３００ｄｐｉパケットデータから元の６００ｄｐｉ解像度のパケットデータを復元するための６００ｄｐｉ補間データを生成する。
【００２５】
Ｓ３０９において、ＣＰＵ１０５は、補間データの構造情報から、３００ｄｐｉパケットデータについて可逆と非可逆のどちらの符号化方式を適用するかを決定する。選択方法の詳細は後述する。選択された符号化方式が可逆符号化である場合（Ｓ３１０にてＹＥＳ）、Ｓ３１１において３００ｄｐｉパケットデータを可逆符号化して符号化データを生成する。また、選択された符号化方式が非可逆符号化である場合（Ｓ３１０にてＮＯ）、Ｓ３１２において、ＣＰＵ１０５は、６００ｄｐｉパケットデータを非可逆符号化して符号化データを生成する。
【００２６】
続いて、Ｓ３１３において、ＣＰＵ１０５は、着目するタイルについて、タイルヘッダ、可逆／非可逆を識別する情報、補間データ、１／２縮小タイル符号化データを結合させて、タイル符号化データを形成する。Ｓ３１４において、ＣＰＵ１０５は、符号化処理を行ったタイルが現在読み込まれている１ラインの最後のパケットであるか否かを判定する。最後のパケットでない場合（Ｓ３１４にてＮＯ）には、次のパケットについてＳ３０２から処理を繰り返す。１ラインの最後のパケットである場合には（Ｓ３１４にてＹＥＳ）、処理をＳ３１５へと移す。
【００２７】
Ｓ３１５において、ＣＰＵ１０５は、現在読み込まれているラインが画像の最終ラインであるか否かを判定する。最終ラインでない場合には（Ｓ３１５にてＮＯ）、Ｓ３０１に戻り、ＣＰＵ１０５は次のラインデータを読み込み、処理を継続する。最終ラインの場合には（Ｓ３１５にてＹＥＳ）、Ｓ３１６へと処理を移す。処理がＳ３１６に移ったときには、符号化対象画像データのすべてのパケットについて符号化処理が終了しており、ＣＰＵ１０５は、全タイルの符号化データから、最終的な符号化データを生成して、ＤＭＡＣ２５３／２０３を介してメモリ１０６にデータを格納する。以上により、本処理フローを終了する。
【００２８】
［解像度変換］
以降ではラスタ画像データの解像度変換部の詳細に関して説明を行う。上述した図３のＳ３０３やＳ３０７の処理に相当する。
【００２９】
まず、処理対象の画像データにおいて、ページ単位のラスタ画像を２×２画素からなるブロックに分割し、その分割されたブロック単位でデータの圧縮を行う。ここでは、そのブロックを“タイル”と呼ぶ。処理の説明の前に、２×２の４画素データ中に占める色数に応じてその色の配置の組み合わせの数を考える。画素数が４画素なので、そこに占める色数は最大４色になり、色の配置のパターンはタイル内でたかだか１〜４色の組み合わせしか存在しない。それら４色のパターンの取り得る色の配置の組み合わせの数を図４を用いて説明する。本実施形態においては、２×２画素からなるブロックにおいて、所定の位置の画素の値（色値）を代表色、代表色以外の画素の値を補間色とする。また、補間色は２×２画素のブロックにおいて０〜３色のいずれかの数となる。従って、代表色を第１色、補間色をそれぞれ、第２色、第３色、第４色とも記載する。
【００３０】
図４で２×２画素からなるタイルの集まりから構成されているものが、“パケット”であり、本実施形態では６４×６４画素で構成されているものとする。まずパケットに含まれるタイルのうちの１つに注目して考える。タイルに含まれる画素の色が１色の場合、４画素が同色で構成されている事になるので、その配置の組み合わせは１通りである。
【００３１】
次にタイル内に２色の画素が含まれている場合を考える。２色が４画素内へレイアウトされる組み合わせは、タイル内の左上の画素の値を第１色、他方の値を第２色として考えると、左上以外残りの３画素へ第１色もしくは第２色が入る。そのため、４画素同色の場合を除くと、全部で７通りの配置の組み合わせが考えられる。
【００３２】
次にタイル内に３色の画素が含まれている場合を考える。３色が４画素内へレイアウトされる組み合わせは、３色のうち１色だけが２度使われる場合と言い換える事が可能である。よって、４画素の座標のうち、２画素が同じ色になる組み合わせを求めればよい。つまり３色の場合の数は、４つの座標から２つの座標を取る組み合わせとなり、全部で６通りとなる。
【００３３】
最後にタイルに含まれる画素の値がすべて異なり、４色の場合は１色の場合と同様に、その配置は１パターンしか存在しない。
【００３４】
上述のように、タイルに含まれる画素の色の組み合わせにおいて、これら１〜４色すべての場合の数を合計すると全部で１５通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては４ｂｉｔが必要となる。図示すると図５のようになり、以降、ブロック内の色の配置パターンを示す配置情報であるフラグを“パターンフラグ”と呼ぶ。ここでのパターンフラグは、０〜Ｅのいずれかの値をとる。
【００３５】
［圧縮処理フロー］
上記のように、２×２画素の取りうる組み合わせを踏まえて、圧縮部２０２、２５２での解像度変換／補間データ生成にて行われる処理フローについて図６を用いて説明する。なお、本実施形態においては、本処理はＣＰＵ１０５がＨＤＤ記憶部１０７等の記憶部に格納されたプログラムを読み出し、実行することにより、実現されるものとする。本実施形態において、入力は、例えばＲＧＢそれぞれ８ｂｉｔの２５６階調を有し、またデータは８ｂｉｔデータの点順次で１画素あたり２４ｂｉｔ（８ｂｉｔ×３色分）画像として説明を行う。
【００３６】
まず、処理が開始されると、入力データの中から２×２画素のタイルが入力される（Ｓ６０１）。ＣＰＵ１０５は、入力されたタイル内全ての２画素の組み合わせに対して２４ｂｉｔのコンペアを取る（Ｓ６０２）。このコンペアを取った結果、全ビット一致していた場合は“１”を、不一致の場合は“０”を出力する。図７に示すように、タイルは２×２画素から構成されており、ブロック内の画素を左上、右上、左下、右下の順に座標１、２、３、４とすると、２画素の組は、１−２、１−３、１−４、２−３、２−４、３−４の全部で６通りとなる。従って、１つのブロックにおいては、６回のコンペアを取る必要があり、結果として６ｂｉｔの値が出力される。例えば全画素同色の場合には、全てのコンペア結果が“１”となり、逆に４画素全てバラバラの画素値の場合には、全てのコンペア結果が“０”となる。前述の通り、４画素で色の一致から出現しうるパターン数は１５通りなので、ＣＰＵ１０５は、出力された６ｂｉｔのコンペア結果に対して４ｂｉｔのパターンフラグへ変換する（Ｓ６０３）。
【００３７】
ＣＰＵ１０５は、パターンフラグへ変換した後、タイル内の４画素にて出現した色数および色データを抽出する（Ｓ６０４）。ここで、パターンフラグから、タイル内の左上の画素の値を第１色とした場合、第２色以降がどの位置にあるかを求める事が出来る。図８を参照しながら説明を行う。例えば、タイル内の４画素がすべて同じ値を有し、１色で構成されていることが確定した場合（Ｓ６０５にてＹＥＳ）には、第２色以降は存在しないため、ＣＰＵ１０５は、パターンフラグ４ｂｉｔと第１色の値（２４ｂｉｔ）を出力する（Ｓ６０６）。またタイル内の４画素が２色で構成されていることが確定した場合（Ｓ６０７にてＹＥＳ）には、ＣＰＵ１０５は、第２色の値を有する画素の座標をパターンフラグより算出し、パターンフラグ（４ｂｉｔ）と２色分の画素値（４８ｂｉｔ）を出力する（Ｓ６０８）。ＣＰＵ１０５は、タイルに含まれる色の数が３色、４色の場合も同様に処理を行う（Ｓ６０９、Ｓ６１０、Ｓ６１１）。この時、ＣＰＵ１０５は、タイル内の画素の座標（左上、右上、左下、右下の順に１、２、３、４）順にこれまで出現していなかった色の画素値をメモリ１０６等の記憶部に記憶する。
【００３８】
このように、２×２画素からなるタイル内の４色（９６ｂｉｔ）の入力データを４ｂｉｔのパターンフラグとタイルに存在する色数分だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。具体的には、入力データ９６ｂｉｔに対し、１色の場合は２８ｂｉｔ、２色の場合は５２ｂｉｔ、３色の場合は７６ｂｉｔに圧縮可能である。なお、４色の場合のみ１００ｂｉｔのデータとして出力することになる。またパターンフラグを参照することで、そのタイル内の色数および色の配置を特定することが可能になる。
【００３９】
上記処理を処理対象である画像データに含まれるタイル全てに対して行うことで、画像データの圧縮が可能になる。また、この処理により、図３のＳ３０３，Ｓ３０７にて示した解像度変換処理を実現する。このとき、補間データとは、第２色、第３色、第４色のデータを意味する。
【００４０】
［格納方式］
上記のようにして求めたパターンフラグと色データとを、ＤＭＡＣを介してメモリ１０６に書き込む。その時ＤＭＡＣでは、パターンフラグと、第１色データと、第２、３、４色データのそれぞれに対する記憶領域上での書き込み位置を変える。ＤＭＡＣには、パターンフラグ書き込みのためのメモリ先頭アドレスと、第１色データの書き込みのためのメモリ先頭アドレスと、第２、３、４色データの書き込みのためのメモリ先頭アドレスとの３つのアドレスが指定されている。図８にその例を図示する。例えばサイズがＭ×Ｎ画素からなるＲＧＢ各色８ビットの画像データを圧縮部へ入力する場合を説明する。この場合、処理対象の画像データ全体に対し、パターンフラグのデータサイズはＭ×Ｎ／８バイト、第１色のデータサイズはＭ×Ｎ×３／４バイト、第２、３、４色のデータサイズは画像によって不定（画像によって異なる）の出力となる。
【００４１】
ここで第１色書き込み位置以降のメモリ領域に関しては、画素データがピクセル単位で量子化や符号化されることなく格納されている。つまり、１画素入力、１画素出力で完結する色処理、例えばＬＵＴを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等は特にパターンフラグを参照する必要はなく、直接処理を行うことが可能になる。図２に示している色処理部２１２は、メモリ１０６上の第１色書き込み先頭アドレス以降の画素データをＤＭＡＣ経由で読み込み、画素単位での処理を済ませた後にメモリ１０６上へ書き戻す。この時、任意の画素単位処理によって画素のビット数が変わらない場合には、メモリ１０６上同じ場所へ上書きすることでメモリの節約も可能である。
【００４２】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像における少ない画素数のデータに対して処理することになるため、高速処理が可能になる。
【００４３】
図９のように画像データを離散的にメモリ空間上へ格納することで、第１色格納部に限ってみると、画像データを２×２画素単位のタイルごとに、左上の座標の画素をサンプリングした画像結果がメモリ空間上に連続して存在することになる。本実施形態で説明しているＭＦＰにおいては、蓄積したＰＤＬ画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。この場合において、プリント解像度が６００ｄｐｉであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、３００ｄｐｉやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第２、３、４色のデータを用いず、第１色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【００４４】
例えば前述の例において、画像データが６００ｄｐｉにて蓄積されていた場合の縮小送信時を説明する。送信する際の解像度として４００ｄｐｉなど、サンプリングされている３００ｄｐｉより大きい解像度が指定されている場合には、パターンフラグも含めて圧縮されているデータを一度展開し、公知の変倍方式を用いて送信する。逆に３００ｄｐｉより小さい送信解像度指定がされている場合には第１色格納部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【００４５】
［展開部］
次に、圧縮部と対になる展開部２２２、２３２に関して説明する。展開部２２２、２３２では前述したようなパターンフラグ、画素データを用いて元のラスタ画像データへ戻す処理の事を指す。展開部２２２、２３２は、メモリ空間上に図９のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１色書き込み先頭アドレス、および第２、３、４色書き込み先頭アドレスの３つのアドレスをＤＭＡＣへ指定する。ＤＭＡＣはその３つのアドレスから圧縮データを読み出し、展開部２２２、２３２へ送信する。展開部２２２、２３２ではまず４ｂｉｔのパターンフラグを解釈し、そのタイル内の色数を算出する。第１色データに加え、色数に応じて第２、３、４色データを読み出す。そして、展開部２２２、２３２は、パターンフラグにて定義されている色の配置に応じて画素データを再配置する。これにより、２×２画素からなるタイルを展開、復号化する。
【００４６】
また、展開部２２２、２３２にて画像サイズを１／２にする場合、前述したように、パターンフラグと第２、３、４色データを必要としないので、ＤＭＡＣには第１色書き込み先頭アドレスのみ指定する。そして、メモリ１０６からは第１色データのみ読み込みを行い画像を構成する。これにより、画像メモリバスの帯域を節約することが可能になる。
【００４７】
なお本実施形態では２×２画素からなるタイルを最小単位として記述していたが、これに限るものではない。例えば、画像の特性に合わせて、画素数を変更しても構わない。また、圧縮の説明の際、画像データとしてＲＧＢ各色８ｂｉｔを例として説明していたが、ＣＭＹＫの色空間を取るものや、ＧＲＡＹスケールのデータ、また８ｂｉｔ以外の画素値をとるものでも良い。
【００４８】
［減色処理］
以下、減色処理方法の詳細について説明する。解像度変換処理方法で高圧縮になる事が期待される画像は、画像データ内で隣接画素値が１レベルたりとも違わないような領域が多い画像である。ここでのレベルとは、各画素の色値の階調を示しており、例えば２５６階調で各色を表現する際には、０〜２５６の値を意味する。高解像度のＰＤＬデータとしてレンダリングしたラスタ画像データに関してはこのようになっている場合が多いが、スキャナで読み取られた画像データでは、スキャナでのノイズ成分が画像に重畳され通常画素値として数レベルの違い（色値の差）が生じうる。このような場合には、圧縮データとしては２×２画素からなるタイルに４色の画素値が含まれていると判定される事が多くなり、圧縮後でデータ量が削減されないばかりか、パターンフラグが付与される分データが増える事になる。しかしながら、画像データによっては２×２画素からなるタイル内での数レベルの違いが視覚的に認識できない事も多くあり、そういった場合にはその数レベルの違いは冗長なデータといえる。
【００４９】
そこで、タイル内において数レベルの冗長な違いを有する各画素に対し、ブロック内に２以上の色が含まれている場合、減色処理を行うことで色数を減らす。この後にパターンフラグを作成することで、圧縮率の向上を図る。前述したように、２×２画素の取りうる組み合わせを踏まえて、画像圧縮を行うフローを図１０を用いて説明する。入力としてはこれまでと同様にＲＧＢ各色８ｂｉｔの２５６階調を有する画像データとして説明を行う。なお、本実施形態においては、本処理はＣＰＵ１０５がＨＤＤ記憶部１０７等の記憶部に格納されたプログラムを読み出し、実行することにより、実現されるものとする。
【００５０】
まず処理が開始されると、２×２画素からなるタイルが入力される（Ｓ１００１）。ＣＰＵ１０５は、入力されたタイルに対し、タイルに含まれる４画素のデータに対して１色へ減色処理を行う（Ｓ１００２）。ここでは例えば、４画素の平均画素値を算出することで１色への減色を実現する。続いて、ＣＰＵ１０５は、減色処理により求められた画素値と入力された４画素の画素値との差分を算出する（Ｓ１００３）。そして、ＣＰＵ１０５は、差分の大小を判定する（Ｓ１００４）。例えば、入力値と減色後のＲＧＢ値との差の絶対値の和を取り、その値が所定の閾値以下である場合には差が小さいと判定出来る。もしここで差が小さいと判定された場合（Ｓ１００４にてＹＥＳ）には、ＣＰＵ１０５は、処理対象のタイルにパターンフラグを付与する（Ｓ１００５）。そして、ＣＰＵ１０５は、その減色した１色の画素値とパターンフラグを出力する（Ｓ１００６）。
【００５１】
誤差が大きいと判定された場合（Ｓ１００４にてＮＯ）には、ＣＰＵ１０５は、２色へ減色処理を行う（Ｓ１００７）。ここでは例えば、タイルに含まれる４画素のうちＲＧＢ値の差が最も大きい２画素Ａ、Ｂを抽出し、残りの２画素がＡ、Ｂどちらに近いかでクラスタリングし、そのクラスタ内での平均値を求めることで、２色化する。そして、ＣＰＵ１０５は、その２色化した画素値と入力されたタイルに含まれる４画素の画素値との差分を計算する（Ｓ１００８）。そして、ＣＰＵ１０５は差分の大小を判定する（Ｓ１００９）。ここでの判定は、Ｓ１００４と同様に予め定義された閾値と比較することで判定することができる。もし、ここで差分が小さいと判定された場合（Ｓ１００９にてＹＥＳ）には、ＣＰＵ１０５は図４に基づいて、２色のパターンを検出し、パターンフラグを付与する（Ｓ１０１０）。そして、ＣＰＵ１０５は、減色した２色の画素値とパターンフラグとを出力する（Ｓ１０１１）。
【００５２】
ここでも差分が大きいと判定された場合（Ｓ１００９にてＮＯ）には、ＣＰＵ１０５は３色への減色処理を行う（Ｓ１０１２）。ここでは例えば４画素のうち最もＲＧＢ値の差の小さい２画素を抽出して、その２画素の値を平均化し、その平均値とそれ以外の２画素の値とを用いて４画素を３色へ減色する。そして、ＣＰＵ１０５はその３色化したタイルの画素値と入力されたタイルに含まれる４画素の画素値との差分を計算する（Ｓ１０１３）。そして、ＣＰＵ１０５は、差分の大小を判定する（Ｓ１０１４）。ここでの判定は、Ｓ１００４と同様に予め定義された閾値と比較することで判定することができる。もし、ここで差分が小さいと判定された場合（Ｓ１０１４にてＹＥＳ）には、ＣＰＵ１０５は図４に基づいて、３色のパターンを検出し、パターンフラグを付与する（Ｓ１０１５）。そして、ＣＰＵ１０５は、減色した３色の画素値とパターンフラグとを出力する（Ｓ１０１６）。
【００５３】
ここでも差分が大きいと判定された場合（Ｓ１０１４にてＮＯ）には、減色することで視覚的に問題が出るタイルということになるので、ＣＰＵ１０５は４色全ての画素値とそれに対応するパターンフラグを付与する（Ｓ１０１７）。そして、ＣＰＵ１０５は、入力されたタイルに含まれる４画素すべてを出力する（Ｓ１０１８）。以上により、本処理フローを終了する。
【００５４】
このような構成をとり、処理対象の画像データに含まれるタイルすべてに処理を適用することで、スキャン画像に代表されるような画素間の数レベルの違いにより圧縮率が劇的に悪くなってしまうような画像に対しても圧縮率の向上を図る事が可能になる。また前述した差分判定の閾値の取り方次第で圧縮率と画質の調整も可能である。例えば、許容する画素間の差分を全く無くす（０にする）ことで、画像としては完全な可逆の圧縮になる。逆に許容する差分を無限にする事で、全タイルが１色で表現されることになり解像度を半分にするのと等価となり、データ量を１／４にすることが保証できる。
【００５５】
ここでは、減色を用いた圧縮部での説明となっているが、この方法を用いた圧縮であればその展開の処理は減色を伴ったかどうかの圧縮方法を意識する必要はなく、上述の解像度変換処理の詳細説明で述べた展開処理と全く同じ構成でよい。
【００５６】
なおここで説明に用いた減色の処理は一例であり他の公知の減色処理を用いて実施してもよい。また入力画素と減色処理後の画素との差分を算出する手段であるが、これも公知の色差を求める別の手段で代替してもよい。
【００５７】
［符号化方式選択］
本発明の特徴的な部分である、符号化方式を選択する方法について図１１を用いて説明する。なお、本実施形態において、本処理はＣＰＵ１０５がＨＤＤ記憶部１０７等の記憶部に格納されたプログラムを読み出し、実行することにより、実現されるものとする。
【００５８】
図１１の処理フローは図３に示した処理の一部（Ｓ３０９〜Ｓ３１２）をより詳細に説明するものである。まず、ＣＰＵ１０５は、Ｓ３０６で生成した減色１２００ｄｐｉ補間データ量を取得する（Ｓ１１００）。ここでの取得方法については、メモリ１０６に格納されているデータ量から取得する。次に、ＣＰＵ１０５は、Ｓ３０８で生成した６００ｄｐｉ補間データ量を取得する（Ｓ１１０１）。ここでの取得方法については、メモリ１０６に格納されているデータ量から取得する。
【００５９】
続いて、ＣＰＵ１０５は、減色１２００ｄｐｉ補間データ量と６００ｄｐｉ補間データ量との総和である全体補間データ量を算出する（Ｓ１１０２）。これにより、補間データ量算出手段を実現する。そして、ＣＰＵ１０５は、算出した全体補間データ量と補間データ量閾値（第一の閾値）との値を比較する（Ｓ１１０３）。ここで、全体補間データ量の方が多ければ（Ｓ１１０３にてＹＥＳ）、Ｓ１１０４に進み、全体補間データ量の方が少なければ（Ｓ１１０３にてＮＯ）、Ｓ１１０６に進む。補間データ量閾値は、ＣＰＵ１０５からのレジスタ設定によって設定することが可能である。また、画像の種類や外部入力装置１０８からの入力によってＣＰＵ１０５経由で値を変更することが可能である。
【００６０】
続いて、ＣＰＵ１０５は、Ｓ３０４で生成した１２００ｄｐｉ補間データ量と減色１２００ｄｐｉ補間データとの差分を算出する（Ｓ１１０４）。この値が補間データ削減量である。これにより、削減量算出手段を実現する。そして、ＣＰＵ１０５は、補間データ削減量と削減量閾値（第二の閾値）とを比較する（Ｓ１１０５）。ここで、補間データ削減量が大きければ（Ｓ１１０５にてＮＯ）、Ｓ１１０６に進み、補間データ削減量が小さければ（Ｓ１１０５にてＹＥＳ）Ｓ１１０７に進む。削減量閾値は、補間データ量閾値と同様に、ＣＰＵ１０５からのレジスタ設定によって設定可能である。また、画像の種類や外部入力装置１０８からの入力によってＣＰＵ１０５経由で値を変更することが可能である。Ｓ１１０６では、ＣＰＵ１０５は、３００ｄｐｉパケットデータに対し、可逆符号化を行う。Ｓ１１０７では、ＣＰＵ１０５は、６００ｄｐｉパケットデータに対し、非可逆符号化を行う。そして、Ｓ１１０６もしくはＳ１１０７の処理の後、図３のＳ３１３の処理へと進む。
【００６１】
Ｓ１１０３およびＳ１１０５にて用いられている第一の閾値と第二の閾値は、圧縮前後の総データ量や画像の特性などに基づいて決定してもよい。
【００６２】
以上の処理により、符号化のデータ量の可変部分である全体補間データ量（本実施形態においては、第２、３、４色データに対応）によって、符号化処理を選択することが可能となる。つまり、補間データが少ない場合には、符号化率が比較的低い可逆符号化を選択し、画質の劣化を防ぐ。また、補間データ量が多い場合においても、減色処理による補間データの削減量によって、符号化処理を選択することが可能となる。つまり、減色処理によってデータ削減量が大きい場合には、可逆符号化を選択することで、画質劣化を抑える。反対に、減色処理によるデータ削減量が小さい場合には、減色処理による画質劣化が比較的少ないので、非可逆符号化を選択し、全体のデータ量を削減する。
【００６３】
符号化方式を選択する際に重要なことは、符号化によるデータ削減量と、画質劣化度を最適にすることである。以上の処理によって、入力される画像に応じて、データ量や画質劣化を抑える符号化を行うことが可能となる。
【００６４】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012074897.tif 000003
【図２】
2012074897.tif 000004
【図３】
2012074897.tif 000005
【図４】
2012074897.tif 000006
【図５】
2012074897.tif 000007
【図６】
2012074897.tif 000008
【図７】
2012074897.tif 000009
【図８】
2012074897.tif 000010
【図９】
2012074897.tif 000011
【図１０】
2012074897.tif 000012
【図１１】
2012074897.tif 000013