(57)【特許請求の範囲】
【請求項１】
各画素が多階調で表現された画像の複数画素を１つのブロックとし、前記ブロック内の画素が全て同じ値ではない場合の処理またはこの処理とは異なる例外処理に基づいて符号化を行うプリンタ、複写機用の画像圧縮方法において、前記例外処理を施したことを示す固定値として前記多階調で表現された画素のとり得る値の一部を割り当て、かつ前記固定値を多階調で表現された画素のとり得る値のうち黒を示す値とし、更に前記ブロック内の画素が全て同じ値ではない場合の処理において、前記ブロックの階調情報を示す値が前記固定値と等しい場合は、前記階調情報を示す値を前記固定値以外の、多階調で表現された画素のとり得る値のうち黒を示す値としたことを特徴とする画像圧縮方法。
【請求項２】
前記ブロック内の画素が全て同じ値ではない場合の処理は、前記ブロック内の全画素の平均値に基づいて画素を２群に分け、各群の画素の値の平均値を示す階調情報を生成し、それぞれの画素の値と前記ブロック内の全画素の平均値との比較結果に基づき画素配列パターンを生成し、前記階調情報と前記画素配列パターンよって当該ブロックのブロック符号を構成するものであり、前記例外処理は、前記ブロック内の全画素の値が等しい場合において、前記例外処理を示す固定値及び前記ブロック内の画素の値を示す代表値のみで当該ブロックのブロック符号を構成するものであることを特徴とする請求項１記載の画像圧縮方法。
【請求項３】
前記ブロック内の画素が全て同じ値ではない場合の処理は、前記ブロック内の全画素の平均値に基づいて画素を２群に分け、各群の画素の値の平均値を示す階調情報を生成し、それぞれの画素の値と前記ブロック内の全画素の平均値との比較結果に基づき画素配列パターンを生成し、前記階調情報と前記画素配列パターンによって当該ブロックのブロック符号を構成するものであり、前記例外処理は、前記ブロック内の全画素の値が等しく、その値が１ブロック範囲に限らず連続する場合において、前記例外処理を示す固定値、前記ブロック内の画素の値を示す代表値及び同一画素値が連続する長さとによりブロック符号を構成するものであることを特徴とする請求項１記載の画像圧縮方法。
【請求項４】
請求項２の例外処理を含んだブロック符号を判別して伸張する画像伸張方法であって、前記例外処理を示す固定値を有するブロック符号には、前記代表値をそのブロックの全ての画素に当てはめるとともに、その他のブロック符号には前記画素配列パターンに基づいて前記階調情報を当てはめることを特徴とする画像伸張方法。
【請求項５】
請求項３の例外処理を含んだブロック符号を判別して伸張する画像伸張方法であって、前記例外処理を示す固定値を有するブロック符号には、前記同一画素値が連続する長さに相当するブロックの全画素に前記代表値を当てはめるとともに、その他のブロック符号には画素配列パターンに基づいて前記階調情報を当てはめることを特徴とする画像伸張方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプリンタ，複写機等で用いる多階調画素の画像圧縮方法及び画像伸縮方法に関するものである。
【０００２】
【従来の技術】
近年、プリンタ，複写機等の事務機器は、各種オフィスを始め個人ユーザの間にも浸透しつつある。又これらの機器では、高画質化やカラー画像を対象として扱うことも要求されている。特にカラー画像の場合には、データ量は膨大となり、メモリの増大、引いては高価格化は避けることのできない問題となっている。低価格化を実現するためには、高画質を維持しつつ画像データの圧縮を行い、画像の記憶に必要なメモリを削減していく必要がある。
【０００３】
従来、階調画像の情報圧縮方法としてブロック符号化と呼ばれる技術がある。この方法を図１及び図１２乃至図１７を参照しながら説明する。図１は画像の一部を拡大したものである。図１においては画素１は画像構成する最小単位である。１つの画素は８ビットデータで２５６階調を扱うものとし、０から２５５の値を持つ。４×４（総画素数１６）の近隣画素を集めたブロック２をとり、このブロック単位に処理を行う。
【０００４】
図１２はあるブロック２の実際の例を示したものであり、図１５はブロック２をブロック符号化する際の手順を示すフローチャートである。まずブロック符号化するブロック２の平均値を算出し、これをブロック内平均値ｍとする（ステップＳ１）。図１２のブロック内平均値ｍは小数以下を四捨五入してｍ＝１２２となる。次にブロック内平均値とブロック２の各画素とを比較し、ブロック内平均値未満の値を持つ画素を”０”、ブロック内平均値以上の値を持つ画素を”１”とするフラグビットによる画素配列パターンを形成する（ステップＳ２）。図１２のブロック２に相当する画素配列パターンを図１３に示す。次に画素配列パターンが”０”である画素の組の平均値ａ０、及び”１”である画素の組の平均値をａ１を夫々算出し、ブロック代表値とする（ステップＳ３）。図１２のブロック２ではブロック代表値はａ０＝３４（２２ｈ）、ａ１＝１６２（Ａ２ｈ）である。尚ｈは１６進数表示を示す。最終的なこのブロック２のブロック符号は図１４（ａ）に示すような各８ビットのデータである２つの代表値（ａ０，ａ１）と、図１３をシリアルに配置した１６ビットの１つの画素配列パターン（Ｂｉｔｍａｐ）とで構成される。図１２の例では図１４（ｂ）に示すような符号となる。
【０００５】
又このブロック符号を実際の画像データとして復元するための伸張処理のフローチャートを図１６に示す。図１４のブロック符号に収められたブロック代表値ａ０を各々画素配列パターンの”０”である画素に対し、又代表値ａ１を画素配列パターンの”１”である画素に対し当てはめていく。これを１ブロック内の全画素に対して行う。図１４のブロック符号を伸張した伸張画像を図１７に示す。
【０００６】
一般に、１画素をｑビットデータ、１ブロックの画素数をＮとして表したときには、原画像の１ブロック内のデータ量はｑ×Ｎビットであり、ブロック符号化後の画像データはＮビットの画素配列パターンと２×ｑビットのブロック代表値を合わせた２ｑ＋Ｎビットとなる。従ってブロック符号化による画像データの圧縮率はｑＮ／（２ｑ＋Ｎ）である。図１２に示す例では、１画素ｑ＝８ビットで１ブロックＮ＝１６であるため、圧縮率は４となる。
【０００７】
【発明が解決しようとする課題】
一般に画像の種類を大きく二分した場合、文字や図形により構成される画像と写真や絵画等の自然画像とに区別できる。前者の場合にはそのデータの多くがブロック内のデータの値が等しいベタ画像であり、階調に変化があるときにもその変化は著しく大きく、又後者の場合には近隣画素間の階調変化はつねにあるものの、その変化は小さいことが多い。しかし上記のような従来のブロック符号化では、１ブロックの圧縮符号が常に２つの代表値と１つのビットマップデータで表現されており、１ブロック内のデータが全て等しい場合、即ちベタ画像であるような場合にも、同様の符号化圧縮を行っていた。そのため１つの代表値で十分なブロックに対しても２つの代表値を持ち、又階調変化の小さい画像に対しても代表値データをそのまま符号化するため、圧縮率が悪いという欠点があった。
【０００８】
本発明はこのような従来の問題点に鑑みてなされたものであって、従来のブロック符号化による圧縮技術よりも更に圧縮率を高めるとともに、画像圧縮を施した結果がブロック間で視覚上見分けがつきにくい画像圧縮方法を提供することを技術的課題とする。
【０００９】
【課題を解決するための手段】
本発明の請求項１の発明は、各画素が多階調で表現された画像の複数画素を１つのブロックとし、ブロック内の画素が全て同じ値ではない場合の処理またはこの処理とは異なる例外処理に基づいて符号化を行うプリンタ、複写機用の画像圧縮方法において、例外処理を施したことを示す固定値として多階調で表現された画素のとり得る値の一部を割り当て、かつ固定値を多階調で表現された画素のとり得る値のうち黒を示す値とし、更にブロック内の画素が全て同じ値ではない場合の処理において、ブロックの階調情報を示す値が固定値と等しい場合は、階調情報を示す値を固定値以外の、多階調で表現された画素のとり得る値のうち黒を示す値としたものである。これによってブロック符号化の処理が最適化され圧縮率が向上するとともに、画像圧縮を施した結果がブロック間で視覚上見分けがつきにくくなる。
本発明の請求項２の発明は、ブロック内の画素が全て同じ値ではない場合の処理は、ブロック内の全画素の平均値に基づいて画素を２群に分け、各群の画素の値の平均値を示す階調情報を生成し、それぞれの画素の値とブロック内の全画素の平均値との比較結果に基づき画素配列パターンを生成し、階調情報と画素配列パターンよって当該ブロックのブロック符号を構成するものであり、例外処理は、ブロック内の全画素の値が等しい場合において、例外処理を示す固定値及び前記ブロック内の画素の値を示す代表値のみで当該ブロックのブロック符号を構成するものである。これによってブロック内の画素の値が全て等しい場合の符号化の処理が最適化され圧縮率が向上するとともに、画像圧縮を施した結果がブロック間で視覚上見分けがつきにくくなる。
【００１０】
本発明の請求項３の発明は、ブロック内の画素の値が全て同じではない場合の処理は、ブロック内の全画素の平均値に基づいて画素を２群に分け、各群の画素の値の平均値を示す階調情報を生成し、それぞれの画素の値とブロック内の全画素の平均値との比較結果に基づき画素配列パターンを生成し、階調情報と画素配列パターンによって当該ブロックのブロック符号を構成するものであり、例外処理は、ブロック内の全画素の値が等しく、その値が１ブロック範囲に限らず連続する場合において、例外処理を示す固定値、前記ブロック内の画素の値を示す代表値及び同一画素値が連続する長さとによりブロック符号を構成するものである。これによってブロック内の画素の値が全て等しく、かつこのブロックが連続して存在する場合の符号化の処理が最適化され圧縮率が更に向上するとともに、画像圧縮を施した結果がブロック間で視覚上見分けがつきにくくなる。
【００１１】
本発明の請求項４の発明は、請求項２の例外処理を含んだブロック符号を判別して伸張する画像伸張方法であって、例外処理を示す固定値を有するブロック符号には、代表値をそのブロックの全ての画素に当てはめるとともに、その他のブロック符号には画素配列パターンに基づいて階調情報を当てはめるようにしたものである。これによってブロック符号から多階調画像を再構成することができる。
【００１２】
本発明の請求項５の発明は、請求項３の例外処理を含んだブロック符号を判別して伸張する画像伸張方法であって、例外処理を示す固定値を有するブロック符号には、同一画素値が連続する長さに相当するブロックの全画素に前記代表値を当てはめるとともに、その他のブロック符号には画素配列パターンに基づいて階調情報を当てはめるようにしたものである。これによってブロック符号から多階調画像を再構成することができる。
【００１３】
このような特徴を有する本発明の請求項１の発明によれば、例外処理を施したことを示す固定値は後述するように視覚上見分けがつきにくい値であるため、階調情報としてこの固定値が使用できなくとも、圧縮率を高く維持でき、更に画像圧縮を施した結果がブロック間で視覚上見分けがつきにくくなる。また本発明の請求項２の発明では、多階調で表現された複数画素を１つのブロックとしてブロックの平均値によって各画素の階調を識別し、夫々の平均値と全画素の平均値の大小を示す画素配列パターンによってブロック符号を生成している。そしてブロック内の全画素が同一の値の場合に、固定値とその代表値によってブロック符号を生成している。こうすれば文字や図形等のブロック内のデータの値が等しいベタ画像の場合に、画像情報量が削減され、圧縮効率が高まることとなる。又請求項３の発明では、複数のブロックに渡って同一の画素値が連続する場合に、同一画素値の連続する長さを加えて例外処理を示すブロック符号を生成している。このため同一の画素値が複数ブロックに継続する場合には画像圧縮効率をより高めることができる。又請求項４及び５は、こうして圧縮されたブロック符号をその圧縮規則に基づいて復元して元の画像を生成するようにしたものである。
【００１４】
【発明の実施の形態】
以下、本発明の第１の実施形態について図１〜図７を参照しながら説明する。図２は本発明による符号化圧縮を説明するために画像の原画像を拡大し図示したものである。図２の１は画素であり、画像構成する最小単位である。各色共に８ビットデータで２５６階調を扱うものとし、１つの画素１は０〜２５５の値を持つ。第１の実施形態では、後に述べるように画素１のとり得る値のうち“０”は黒を示すが、２５６階調のうち画像データが“０”や“１”といった黒を示す場合、その差は視覚上見分けがつきにくい。
さて画素１は太線で示すように４×４（総画素数１６）の近隣画素を集めたブロック２をとる。本発明はブロック２の全ての画素が同じ値であった場合の例外処理による符号化を特徴としており、図２及び図３はその符号化を説明する図である。図２はブロック２が全て同じ値の場合の例であり、図３は図２に対して例外処理を行った後の符号化の状態を示している。又本発明の例外処理のために従来のブロック符号化に特別ルールが必要となるため、その例を図４と図５に示す。図４は特別ルールを必要とする符号化されたデータの例であり、図５は図４に対して特別ルールを適用した後の符号化データである。図６はブロック２をブロック符号化する際の手順を示したフローチャートである。
【００１５】
次にこれらの図を用いて本実施形態の画像圧縮方法について、その処理の流れを説明する。以降まず本発明の主要部分であるブロック符号を生成する際の例外処理について説明する。図６のフローチャートにおいて、ブロック２において画素の値が全て同じ値かどうかを調べる（ステップＳ１）。もし全ての画素が同じ値であった場合は、特殊なフローチャート処理として例外処理を示す固定値ａ０と画素値（代表値）ａ１の２バイトでブロックを構成する（ステップＳ２）。最終的なこのブロック２のブロック符号は図３（ａ）に示すような共に８ビットのデータである固定値と代表値で構成され、具体的には図３（ｂ）に示すような符号となる。ここでは図２の画素値が全て１２８であった場合の例であり、この場合符号化後のブロックは図３に示すように、例外処理を示す固定値としてａ０＝１，画素値ａ１＝１２８で構成される。ここでは例外処理を示す固定値としてａ０＝１を定義しているが、その理由としては、画素をパソコンやプリンタで描画した場合に２５６階調中の画素データとしても０も１も黒を示すものであり、視覚上見分けがつきにくいため、１に特殊な意味を持たすことにしたものである。以上の操作によりブロック内の画素が全て同じ値である場合は、１６バイトのブロック２を２バイトで表現することにより圧縮率８を実現できることになる。
【００１６】
次にブロック２が全て同じ値ではない場合の処理について以下に説明する。まずブロック符号化するブロック２の平均値を算出し、これをブロック内平均値ｍとする（ステップＳ３）。ブロック内平均値とブロック２内の各画素とを比較し、ブロック内平均値未満の値を持つ画素を“０”、ブロック内平均値以上の値を持つ画素を“１”とするフラグビットによる画素配列パターンを形成する（ステップＳ４）。次に画素配列パターンが“０”である画素の組の平均値ａ０、及び“１”である画素の組の平均値ａ１を夫々算出し、階調情報とする（ステップＳ５）。ここまでは従来の技術で示した符号化の流れと同じであるが、本発明では画素の値１を例外処理を示す固定値としているため、次の特別ルールを施す必要がある。このブロック２のブロック符号は図４（ａ）に示すような各８ビットのデータである２つの階調情報ａ０、ａ１と１６ビットで表される１つの画素配列パターンとで構成され、具体的には図４（ｂ）に示すような符号となる。ここで図４の階調情報ａ０の値が“１”の場合、黒の画素として近似するために階調情報ａ０を“０”と置き換える（ステップＳ６，Ｓ７）。即ち階調情報ａ０＝０としてブロックを再形成する。これにより伸張する場合にはａ０＝１は必ず例外処理を示す固定値を意味することになる。最後に図５に示すように階調情報ａ０及び階調情報ａ１、画素配列パターンによってブロックを構成する（ステップＳ８）。以下同様に次のブロックの処理を繰り返すことでブロック符号化が実現できる。
このように視覚上見分けがつきにくい値を例外処理を施したことを示す固定値として使用するため、ブロック２が全て同じ値でない場合の処理において、階調情報ａ０を“１”から“０”に変更しても、“１”や“０”は共に２５６階調中において黒を示すものであり、その差は視覚上見分けがつきにくい。
【００１７】
次に圧縮ブロックの伸張方法について述べる。実際の画像データとして復元するための伸張処理のフローチャートを図７に示す。まずａ０の値が１かどうかを調べる（ステップＳ１）。ａ０＝１の場合はａ０は例外処理を示すフラグであるから全ての画素にａ１の値を当てはめることでブロックを再生する（ステップＳ２）。ａ０が１でない場合はａ０は階調情報を示すから、従来の伸張方法と同様に階調情報ａ０を各々画素配列パターンの“０”である画素に対して、階調情報ａ１を画素配列パターンの“１”である画素に対し当てはめる処理をブロック内の全画素に対して行う（ステップＳ３）。以上の操作をブロック毎に繰り返すことにより、画素の伸張が可能となる。
【００１８】
次に本発明の第２の実施形態について図８乃至図１０を用いて説明する。第２の実施形態では、ブロック内が全て同じ値の場合の処理において１つのブロックに限らず連続する複数ブロックに対して処理を適用し、その長さを属性としてブロック情報に追加することで、更に圧縮率を高めるものである。以下図１０のフローチャートを用いて圧縮方法を説明する。１ブロック内の画素の値が全て同じ値であった場合は、ブロック単位で同じ値が連続する間連続する長さ、例えば画素数を計算する（ステップＳ２）。この場合、ブロック内に１つでも異なる値が含まれていた場合は、１つ前のブロックまでを適用する。次に圧縮後のブロック符号を形成する際に例外処理を示す固定値ａ０＝１及び画素値（代表値）ａ１に加え、連続画素数ａ２の３バイトによって符号を構成する（ステップＳ３）。最終的には図９（ａ）に示すような各８ビットのデータである固定値及び代表値と８ビットの連続する画素の長さで表される。図８は画素の同じ値１２８が３ブロックに渡って連続した場合の例であり、図９（ｂ）はこれを圧縮した後のブロック符号を示しており、３ブロック分４８画素が連続して同じ値のためａ２＝４８となる。尚ブロック内が全て同一値でない場合の処理（ステップＳ４乃至ステップＳ９）は第１の実施形態と同じであり、ここでは省略する。
【００１９】
次に圧縮ブロックの伸張方法について述べる。実際の画像データとして復元するための伸張処理のフローチャートを図１１に示す。まずａ０の値が１かどうかを調べて（ステップＳ１）、ａ０＝１の場合は全ての画素にａ１の値を画素数ａ２分当てはめることでブロックを再生する（ステップＳ２）。尚ａ０＝１でない場合の処理（ステップＳ３）は第１の実施形態と同様であり、ここでは省略する。以上の操作をブロック毎に繰り返すことにより、画素の伸張が可能となる。尚連続する長さは画素数を直接ａ２としてもよく、ブロック数をａ２としてもよい。
【００２０】
【発明の効果】
以上詳細に説明したように本発明によれば、画像のデータの１ブロック内のデータが全て等しい場合には、１つの代表値と例外処理を示す固定値で表すことで、画像データにおいて圧縮率の高い画像圧縮方法を提供できる。またこの固定値として視覚上見分けがつきにくい値を使用したため、画像圧縮を施した結果がブロック間で視覚上見分けがつきにくくなる。
【００２１】
又本発明によれば、多階調画素が連続して同一値の場合に１ブロック範囲に限らず連続する間において、例外処理を示す固定値と代表値に加えて、連続する長さでブロック符号を生成することで、更に圧縮率を高めることができる。
【００２２】
又本発明では圧縮した画像を夫々の例外規則に基づいて伸張することによって、元の画像を復元することができる。
【図面の簡単な説明】
【図１】  本発明のブロック符号化を行うブロックの説明図である。
【図２】  本発明の第１実施形態における圧縮前のブロック符号を示す説明図である。
【図３】  本発明の第１実施形態における圧縮後のブロック符号を示す説明図である。
【図４】  本発明の第１実施形態における圧縮後のブロック符号を示す説明図である。
【図５】  本発明の第１実施形態における圧縮後のブロック説明図である。
【図６】  本発明の第１実施形態における圧縮処理のフローチャートである。
【図７】  本発明の第１実施形態における伸張処理のフローチャートである。
【図８】  本発明の第２実施形態における処理前の画像データの説明図である。
【図９】  本発明の第２実施形態における圧縮処理後のブロック符号を示す説明図である。
【図１０】  本発明の第２実施形態における圧縮処理のフローチャートである。
【図１１】  本発明の第２実施形態における伸張処理のフローチャートである。
【図１２】  従来のブロック符号化における圧縮処理前の画像データの説明図である。
【図１３】  従来のブロック符号化におけるビットマップデータの説明図である。
【図１４】  従来のブロック符号化における圧縮後のブロック符号の説明図である。
【図１５】  従来のブロック符号化の圧縮処理のフローチャートである。
【図１６】  従来のブロック符号化の伸張処理のフローチャートである。
【図１７】  従来のブロック符号化の伸張処理後の画像データの説明図である。
【符号の説明】
１  画素
２  ブロック
【図１】
0003862781.tif 000002
【図２】
0003862781.tif 000003
【図３】
0003862781.tif 000004
【図４】
0003862781.tif 000005
【図５】
0003862781.tif 000006
【図６】
0003862781.tif 000007
【図７】
0003862781.tif 000008
【図８】
0003862781.tif 000009
【図９】
0003862781.tif 000010
【図１０】
0003862781.tif 000011
【図１１】
0003862781.tif 000012
【図１２】
0003862781.tif 000013
【図１３】
0003862781.tif 000014
【図１４】
0003862781.tif 000015
【図１５】
0003862781.tif 000016
【図１６】
0003862781.tif 000017
【図１７】
0003862781.tif 000018