(57)【特許請求の範囲】
【請求項１】
入力画像データを所定サイズのブロックを単位とし対象ブロックに含まれる画素の輝度分布を用いて像域判定し、この像域判定の結果、前記入力画像データが中間調領域と判定された場合にはその画像データに対して直交変換・量子化処理を施して第１の符号化シンボルを得、前記入力画像データが２値領域と判定された場合にはその画像データに対して２値化処理を施して第２の符号化シンボルを得、前記像域判定の結果を示す識別フラグと前記第１または第２の符号化シンボルとを順次、算術符号器に入力し、算術符号化を行う画像符号化方法であって、
下記条件によって、そのブロックが２値画像のブロックであるか否かを判定することを特徴とする画像符号化方法。
条件
以下の(1)〜(3)のいずれかを満たす場合に、２値画像のブロックであると判定する。
(1)１ブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度をもつ画素および白画素とみなす白レベル値２４７以上の輝度をもつ画素が存在し、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
(2)１ブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
(3)１ブロックに含まれる６４画素の中に、白画素とみなす白レベル値２４７以上の輝度をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
【請求項２】
入力画像データを所定サイズのブロックを単位とし対象ブロック内における画像データの輝度の分布と、前記対象ブロックの周囲に位置するブロックの属性とに基づいて像域判定し、この像域判定の結果、前記入力画像データが中間調領域と判定された場合にはその画像データに対して直交変換・量子化処理を施して第１の符号化シンボルを得、前記入力画像データが２値領域と判定された場合にはその画像データに対して２値化処理を施して第２の符号化シンボルを得、前記像域判定の結果を示す識別フラグと前記第１または第２の符号化シンボルとを順次、算術符号器に入力し、算術符号化を行うことを特徴とする画像符号化方法であって、
下記条件によって、そのブロックが２値画像のブロックであるか否かを判定することを
特徴とする画像符号化方法。
条件
以下の条件１を満たす場合、あるいは条件２を満たす場合に２値画像のブロックであると判定する。
条件１
(1)注目するブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度値をもつ画素および白画素とみなす白レベル値２４７以上の輝度をもつ画素が存在し、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
(2)注目するブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度値をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
(3)注目するブロックに含まれる６４画素の中に、白画素とみなす白レベル値２４７以上の輝度値をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
条件２
注目するブロックをＢ（j，k）とし、このブロックの周囲に位置する３つのブロックをＢ（j，k-1）、Ｂ（j-1，k-1）、Ｂ（j-1，k）とする場合に、前記周囲に位置する３つのブロックがすべて２値画像のブロックであって、かつ、以下の(4)または(5)のいずれかを満たす場合に、前記注目するブロックが２値画像のブロックであると判定する。
(4)１ブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度値をもつ画素が存在し、かつ、そのような画素の輝度がそのブロック内で最も多くみられる輝度に一致し、かつ、前記ブロック内の画素の輝度値の最大値と最小値との差が３２より大きく、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
(5)１ブロックに含まれる６４画素の中に、白画素とみなす白レベル値２４７以上の輝度値をもつ画素が存在し、かつ、そのような画素の輝度がそのブロック内で最も多くみられる輝度に一致し、かつ、前記ブロック内の画素の輝度値の最大値と最小値との差が３２より大きく、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像符号化方法に関し、特に、写真等の中間調画像と文字，線画等の２値画像から成る混在画像の符号化に適した画像符号化方法に関する。
【０００２】
【従来の技術】
従来から写真などの中間調画像の符号化方式としては，JPEG（Joint Photographic Coding Experts Group）に代表されるような離散コサイン変換（DCT: Discrete Cosine Transform）を用いた変換符号化が広く使われている。
【０００３】
JPEG方式の符号化は、DCTなどの直交関数により画像の２次元配列を空間周波数成分の２次元配列に変換する。人物像や風景写真などの自然画像は画素間の隣接相関が高いので、低い空間周波数成分が多く、高い空間周波数成分は比較的少ない。また高い空間周波数成分は粗く近似しても画質劣化が目につきにくいことが知られ、低い空間周波数成分を細かく量子化し、高い周波数成分を粗く量子化することによってデータ量を削減できる。量子化された各周波数成分は画像情報に対応した確率分布に従うので、ハフマン符号や算術符号によって、情報を損なうことなく確率分布と符号シンボルで決まるエントピーに漸近したビット数に圧縮することができる。
【０００４】
【発明が解決しようとする課題】
しかし、JPEG方式は、上述のとおりカラー写真画像等の中間調画像に対する符号化方式であり、文字画像のような２値画像に対する符号化に適しているとは必ずしもいえない。
【０００５】
つまり、文字画像のような２値画像はエッジ部分による高い空間周波数成分が多い。JPEG方式の処理によると、空間周波数が高い成分が量子化によって失われるため、復元画像のエッジ周辺にもやもやしたノイズが現れる。このノイズは、ディスプレイの表示では気にならないが、２値のプリンタに記録する際に誤差拡散処理を行うと面積階調が保存されるため、エッジ周辺に黒画素が孤立点となって現れ、画質を劣化させる。つまり、JPEG方式では、写真，文字どちらの画像も周波数領域で量子化処理を行うため、逆変換後の画像から量子化誤差の影響を完全に排除することはできない。
【０００６】
これを軽減する方法として、画像の局所局所の状況により、変化の激しい部分では細かな量子化を行うといった適応的量子化方式も考えられる。しかし、文字のようなエッジ部分が多い２値画像についても量子化誤差の影響を小さく抑えるためには、すべてのDCT変換係数に渡って、かなり細かい量子化が必要になり、すると、伝送するべき情報量（符号量）が増えて圧縮率が低下するという別の問題が生じる。
【０００７】
したがって、混在画像の圧縮に際し、画質と圧縮率とを両立させることは困難である。
【０００８】
本発明はこのような問題に鑑みてなされたもので、写真と文字の混在画像で文字部分の画質を損なうことなく、ページ全体の圧縮率も高く取れる新規な画像符号化方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１記載の画像符号化方法の発明は、入力画像データを所定サイズのブロックを単位とし対象ブロックに含まれる画素の輝度分布を用いて像域判定し、この像域判定の結果、前記入力画像データが中間調領域と判定された場合にはその画像データに対して直交変換・量子化処理を施して第１の符号化シンボルを得、前記入力画像データが２値領域と判定された場合にはその画像データに対して２値化処理を施して第２の符号化シンボルを得、前記像域判定の結果を示す識別フラグと前記第１または第２の符号化シンボルとを順次、算術符号器に入力し、算術符号化を行う画像符号化方法であって、下記条件によって、そのブロックが２値画像のブロックであるか否かを判定するにした。
条件
以下の(1)〜(3)のいずれかを満たす場合に、２値画像のブロックであると判定する。
(1)１ブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度をもつ画素および白画素とみなす白レベル値２４７以上の輝度をもつ画素が存在し、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
(2)１ブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
(3)１ブロックに含まれる６４画素の中に、白画素とみなす白レベル値２４７以上の輝度をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
【００１０】
ブロックを単位として、写真画像の画像データについてはJPEG同様の符号化が行われ、２値画像の画像データについては、２値画像の処理に適した方式であるJBIG（Joint Bi-level Image Coding Experts Group）同様の符号化が行われ、これによって、画質が向上し、圧縮率も高くとれる。また、算術符号化は、異なる種類の情報（シンボル）でもすべて２進小数点符号として統合化して符号化できるという多重化に適した性質をもち、ゆえに、符号化量の増大が防止される。
【００２１】
請求項２記載の画像符号化方法の発明は、入力画像データを所定サイズのブロックを単位とし対象ブロック内における画像データの輝度の分布と、前記対象ブロックの周囲に位置するブロックの属性とに基づいて像域判定し、この像域判定の結果、前記入力画像データが中間調領域と判定された場合にはその画像データに対して直交変換・量子化処理を施して第１の符号化シンボルを得、前記入力画像データが２値領域と判定された場合にはその画像データに対して２値化処理を施して第２の符号化シンボルを得、前記像域判定の結果を示す識別フラグと前記第１または第２の符号化シンボルとを順次、算術符号器に入力し、算術符号化を行うことを特徴とする画像符号化方法であって、下記条件によって、そのブロックが２値画像のブロックであるか否かを判定するようにした。
条件
以下の条件１を満たす場合、あるいは条件２を満たす場合に２値画像のブロックであると判定する。
条件１
(1)注目するブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度値をもつ画素および白画素とみなす白レベル値２４７以上の輝度をもつ画素が存在し、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
(2)注目するブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度値をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
(3)注目するブロックに含まれる６４画素の中に、白画素とみなす白レベル値２４７以上の輝度値をもつ画素が存在し、そのような画素の数が前記ブロック内の６４画素に対して占める割合が６０画素を超えている。
条件２
注目するブロックをＢ（j，k）とし、このブロックの周囲に位置する３つのブロックをＢ（j，k-1）、Ｂ（j-1，k-1）、Ｂ（j-1，k）とする場合に、前記周囲に位置する３つのブロックがすべて２値画像のブロックであって、かつ、以下の(4)または(5)のいずれかを満たす場合に、前記注目するブロックが２値画像のブロックであると判定する。
(4)１ブロックに含まれる６４画素の中に、黒画素とみなす黒レベル値８以下の輝度値をもつ画素が存在し、かつ、そのような画素の輝度がそのブロック内で最も多くみられる輝度に一致し、かつ、前記ブロック内の画素の輝度値の最大値と最小値との差が３２より大きく、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
(5)１ブロックに含まれる６４画素の中に、白画素とみなす白レベル値２４７以上の輝度値をもつ画素が存在し、かつ、そのような画素の輝度がそのブロック内で最も多くみられる輝度に一致し、かつ、前記ブロック内の画素の輝度値の最大値と最小値との差が３２より大きく、かつ、前記ブロックに含まれる画素の輝度ヒストグラムにおいて任意のレベルとその隣のレベルに属する画素数が共にゼロとなって輝度が連続する部分がない。
【００２２】
これにより、さらに精度よく像域判定を行うことができ、誤判定の確率がさらに低減される。
【００３７】
【発明の実施の形態】
（実施の形態１）
図１は実施の形態１にかかる画像符号化装置の構成の概要を示す図である。図１に示されるように、本実施の形態において符号化の対象となる画像１は、写真画像（中間調画像）２および文字画像（２値画像）３が混在した、静止画像である。
【００３８】
画像符号化装置は、スキャナ４と、像域判定回路７と、変換処理回路５と、算術符号器８とを具備する。変換処理回路５は、２つの変換処理部6a，6bをもつ。変換処理部6aはDCT変換（離散コサイン変換）および量子化処理を行い、変換処理部6bは２値化処理を行う。すなわち、変換処理部6aは量子化を行う処理を実施し、変換処理6bは量子化を含まない処理を実施する。
【００３９】
スキャナ40は混在画像の情報を電気信号（多階調の画像データ）として読みとる。像域判定回路70は、読みとった画像データA1について、所定サイズのブロックを単位として像域判定を行う。「像域判定」はそのブロックに属する画像データが中間調画像についてのデータであるか、あるいは２値画像についてのデータであるかを判定する処理、すなわち、その画像データが切り出された混在画像１上のブロックが中間調領域であるのか、あるいは２値画像の領域であるのかを判定する処理である。
【００４０】
この像域判定は基本的には、ブロック内の画素の輝度の分布を見て判定する。但し、２値画像と判定した後も、水平方向のエッジが多いのか、垂直方向のエッジが多いのか等の判定により、さらに複数通りに分類することもある。また、一つのブロック内の画素のみならず、周囲のブロックの属性（中間調画像のブロックであるか、２値画像のブロックであるか）も考慮して注目するブロックの判定を行うと、より正確な判定を行える。この点については後述する。
【００４１】
像域判定回路７による判定結果を示すフラグ（識別情報）A2は、変換処理回路５に送出される。変換処理回路５は、中間調画像のデータと判定された場合には変換処理部6aを用いてDCT変換・量子化処理を行い、２値画像のデータと判定された場合には変換処理部6bを用いて２値化処理を行う。「２値化処理」は所定の輝度しきい値（例えば256階調であればその中間の値）を用いて、多階調の画像データを「１」もしくは「０」に変換する処理である。
【００４２】
JPEG方式で２値画像を符号化すると、量子化誤差による悪影響を避けられないので、本実施の形態では、２値画像については量子化を行うルートを回避し、２値化画像に適したJBIB方式同様の符号化を適用するものである。ブロック単位に写真画像（中間調画像）にはJPEG同様の方式が適用され，２値画像にはそれに適したJBIG同様の方式が適用されるため、画質が向上し、高い圧縮率も実現することができるようになる。
【００４３】
算術符号器８は、像域判定回路７から出力される判定結果を示す識別情報（図１では符号A2がこれに相当する）のシンボルと、変換処理回路５から出力される変換値のシンボルとを順次、算術符号化する。
【００４４】
本実施の形態において、算術符号化を採用するのは、算術符号化が、異なる種類の情報の多重化処理に適しているからである。すなわち、像域判定結果を示す識別フラグ（ブロック識別情報）は、量子化データ等とは異なる種類の情報である。このような種類の異なる情報を、算術符号以外のエントロピー符号化（例えば、ハフマン符号化）したとすると、情報量が増え、圧縮率が低下し、また、データの復元に要する処理も複雑となる。
【００４５】
つまり、ブロックの識別情報は、ハフマン符号系列に現れない符号によって一意的に識別できなければならない。例えば、JPEGやJBIGでは制御符号は0xFF**と定義され、**の部分で0x00の設定を除いて、制御コードの意味を表すようになっている。この方式を採用すると制御コードで２バイト必要になり、その後にブロック識別情報が１バイト程度は必要になる。また、制御の都合上0xFF**は１ブロックの符号の間のバイト境界に位置した方が分離しやすいので、そのための付加ビットも必要になる。したがって、例えば、量子化テーブル情報を表すのに４バイト程度必要であり、識別情報が切り替わる毎にオーバヘッドが増加するという問題が生じる。また、前述したように付加ビットを付けるため制御が複雑になるという問題も生じる。
【００４６】
これに対し、算術符号は１つのシンボルを符号化する度に、長さ「１」の数直線の２分割を繰り返し、分割された区間内の代表点を２進少数で表し小数点以下のコードを符号とするものであり、この符号化原理に起因して、算術符号は異なる情報源から出力されるシンボルを符号化すると同時に、異なる情報を多重化しやすいという性質をもっている。つまり、異なる種類の情報であっても、２進小数点符号に埋め込みながら統合して符号化ができ、多重化に特別な仕組みが必要ないという利点がある。
【００４７】
したがって、本実施の形態では、算術符号を使ってブロック識別情報（フラグ情報）のシンボルと所定の変換処理後のシンボルとを算術符号系列の中に多重化し、適応化処理を容易に行えるようにしたものである。この多重化により、画像データの算術符号の先頭には、そのシンボルの属性を示す識別情報の算術符号が付加されることになる。復号化側では、この順番のとおりに算術復号化し、識別情報（フラグ）に応じて適宜、逆変換処理を行い、画像データを復元する。ブロックの復元シンボル数はどちらの場合もあらかじめ確定しているので、一意に復元することができる。
【００４８】
（実施の形態２）
図２は実施の形態２にかかる画像符号化・復号化装置の構成の概要を示す図である。
【００４９】
画像符号化装置10aは、２次元DCT回路11と、像域判定回路12と、２値化回路13と、量子化回路14と、セレクタ15と、統計モデル用メモリ16と、算術符号器20とを具備する。
【００５０】
像域判定回路12は、像域判定の結果にしたがって２次元DCT回路11または２値化回路13のいずれかを有効化させる。また、その判定結果を示す識別フラグをセレクタ15に送出する。
【００５１】
統計モデル用メモリ16には、DCT変換係数の算術符号化に使用する統計モデルに基づく統計データ17と、識別フラグを算術符号化するためのフラグ用モデルに基づく統計データ18と、２値画像データの算術符号化に用いられるマルコフモデルに基づく統計データ19とが格納されている。各統計データは、セレクタ15の選択情報に連動して適宜、選択されて算術符号器20に提供されるようになっている。符号は、有線伝送路L1を介して画像復号化装置10bに伝送される。
【００５２】
画像復号化装置10bは、算術復号器21と、フラグ識別回路22と、中間調画像のデータについて逆DCT変換・逆量子化を行う中間調画像復元処理回路23と、中間調画像と２値画像の合成を行って混在画像を復元する画像合成回路24と、を有する。
【００５３】
画像合成回路24の初段において、識別フラグに基づき、画像の属性に応じた特別な処理を施すことにより、JPEG方式，JBIG方式を個別に適用する効果と相まって、さらに、復元画像の画質を向上させることもできる。特別な処理としては、例えば、中間調画像データについての細かなノイズ除去のためのフィルタリング処理や、２値画像データについてのエッジ強調処理等があげられる。
【００５４】
図３に、伝送される符号データのフォーマットの例が示される。図示されるように、DCT係数の算術符号40の前には中間調画像についてのデータであることを示す識別フラグ30が付加されている。同様に、２値画像データの算術符号60の前には、２値画像についてのデータであることを示す識別フラグ60が付加されている。
【００５５】
次に、像域判定回路12における像域判定の手順の具体例について説明する。本実施の形態では、この像域判定の結果に応じて異なる処理を施すので、その前提として、正確な像域判定を行うことが極めて重要となる。
【００５６】
像域判定は、８画素ｘ８画素（合計で64画素）のブロック（これが符号化の対象となる）を単位として行われる。
【００５７】
ここで、符号化対象ブロック（すなわち、像域判定の対象となるブロック）をB(j，k)とし、図示したようにその左、左上、真上のブロックを、それぞれB(j，k-1)、 B(j-1，k-1)、 B(j-1，k)とする（この様子は図15に示されている）。
【００５８】
本実施の形態におけるブロックの像域判定は、基本的には、注目するブロックB(j，k)に含まれる画素の輝度（Pj，k）のヒストグラムを利用して行う。
【００５９】
以下、次のように記号を定義して、具体的に説明する。
Lmin: １ブロック内のPj，kの最小値
Lmax: １ブロック内のPj，kの最大値
Lpeak: １ブロック内で最も多いPj，kの値
Lmin_count: Lminに属する画素数
Lmax_count: Lmaxに属する画素数
nonZeroPair: ヒストグラムでノンゼロの画素値が隣接しているとき“１”にセットするフラグ
B(j，k): j行k列目のブロック
まず、１ブロック64画素の値Pj，kから上記のパラメータを設定する。このとき、Lmin，Lmax（Ｐj，kの最小値と最大値）は、理想的な２値画像であれば「0」と「255」である。ここでは、0は黒、255は白に相当するレベル値である。
【００６０】
Lpeakはヒストグラムのピーク値で理想的な２値画像であれば「0」か「255」である。写真画像では、その中間の値である。
【００６１】
nonZeroPairは、輝度ヒストグラムにおいて、任意のレベルＬとその隣のレベルＬ+１に属する画素数が共にゼロでないときに“１”となるフラグである。これは輝度ヒストグラムに連続した階調成分があることを示し、中間調と判断する基準に使う。写真画像では隣接画素の変化が緩やかなので、画像ブロックが小領域であっても連続的なヒストグラムになる。それに対して、２値画像は白画素か黒画素であり、またエッジ部分が急峻なので、離散的なヒストグラムになる。nonZeroPairはこの特徴を反映するフラグである。
【００６２】
したがって、レベルＬに値をとる画素数がゼロでなければ、 次のレベルＬ+１をとる画素数を調べ、これがゼロでなければnonZeroPair=1とする。文字と写真など中間調の混在した画像をスキャナで読むと、シェーディング補正、エッジ強調処理後も文字のエッジ部分は多少なまっており中間調成分を含んでいる。しかし、この場合でもエッジ部分はかなり急峻に変化するので隣接する画素値は少ない。なまりが大きな文字画像は中間調として扱う。それに対してコンピュータで作成した２値画像は理想的な２値画像となる。理想的な２値画像を判定することは容易なので、ここではスキャナで入力した多少エッジのなまった２値画像を想定した。まず、次の条件で２値画像を判定する。
条件１  (Lmin <= Lb)&&(Lmax >= Lw)&&(nonZeroPair != 1)
||( (Lmin <= Lb)&&(Lmin_count > 60) )
||( (Lmax >= Lw)&&(Lmax_count > 60) )
ここで、記号&&，||はそれぞれ論理ANDと論理ORである。記号  != は等しくないことを表す。Lb、 Lwはそれぞれ黒レベル、白レベルとみなす基準値である。実施例ではLb=8、 Lw=247とした。この設定では、0〜255のうち８以下を黒とみなすことになる。
【００６３】
条件１の第１項はLminがLb以下、及びLmaxがLw以上、及びヒストグラムに連続する部分がないことを示す。つまり、白および黒と見なされる画素があって、連続した輝度階調部分をもたないということである。これは文字領域で白画素，黒画素ともに存在するブロックを識別する。
【００６４】
文字領域の中には全白、全黒に「近い」ブロックも多く存在する。つまり、灰色がわずかに含まれる領域もある。条件１の第２項（第３項）は、このようなブロックを識別する条件である。全白に近いブロックでは、文字輪郭のなだらかな階調成分が僅かに含まれる場合があるので、１ブロック64画素のうち60画素以上が白であれば２値ブロックと判断した。黒についても同様である。
【００６５】
以上の条件１を満たせば、２値画像領域に属するブロックであると判定し、満たさなければ、中間調画像領域に属するブロックと判定する。
【００６６】
実験した範囲内では、条件１によって２値と判定されたブロックはすべて文字領域内に含まれていた。そして、この条件で写真領域内部を誤判定することはなかった。
【００６７】
基本的には、以上の条件１でかなり高精度の判定を行うことができる。但し、上記条件１はかなり厳しい判定基準であるため、この条件１を満足しないとして中間調領域に属すると判定されるブロックの中にも、実際は２値化領域のブロックが存在する。したがって、このような条件１では中間調領域と判断されてしまうようなブロックについても、２値化領域であると判定して誤判定を低減するのが望ましい。
【００６８】
そこで、以下の条件２を追加する。条件２は、注目するブロック内の輝度分布のみならず、その周囲のブロックの属性も考慮して適応的に判定を行うものである。
【００６９】
すなわち、条件１で中間調ブロックと判定された対象ブロックB(j，k)の周辺の３ブロックB(j，k-1)，B(j-1，k-1)，B(j-1，k)がすべて２値ブロックの時には、判定条件をゆるめるように、次の条件２を追加した。なお、上述のとおり、B(j，k-1)は対象ブロックの左、B(j-1，k-1)は左上、B(j-1，k)は真上のブロックを表す。ブロックの像域判定結果を逐次記憶すれば、これら３ブロックの属性は容易に判定できる。
条件２  B(j，k-1)，B(j-1，k-1)，B(j-1，k)が全て２値ブロックのとき、
0004369538.tif 000002
ここで、記号  == は等しいことを表す。第１項は白の多いブロックに対する条件である。これと対称的に第２項は黒の多いブロックに対する条件である。
【００７０】
つまり、条件２は、文字領域の中にあって、白か黒が「優勢なブロック」を識別するための条件であり、白または黒と認められる画素があり、その画素の輝度は最も多く現れる画素の輝度と一致し、そのブロックの最大輝度と最小輝度の差が所定値より大きく、かつ、連続した階調部分をもたないとき、２値画像領域のブロックであると判定する。
【００７１】
上述の条件２における(Lmax - Lmin > 32)は、写真の輪郭が淡い階調を持った場合（写真領域が白に近いレベルである場合）に、これを含むブロックを２値ブロックと判定しないために加えた。
【００７２】
以上説明したブロックの像域判定手順をまとめると、図４のようになる。
すなわち、上述の条件１を満足するか否かを判定し（ステップ200）、満足する場合には２値ブロックと判定し（ステップ240）、満足しない場合には、周囲の３つのブロックが全部２値ブロックであるか否かを判定する（ステップ210）。全部のブロックが２値ブロックでない場合には中間調ブロックと判定し（ステップ230）、全部のブロックが２値ブロックのときは、条件２を満足するかを判定し（ステップ220）、満足する場合には２値ブロックと判定し（ステップ240）、満足しない場合には、中間調ブロックと判定する（ステップ230）。
【００７３】
文字と写真の混在画像数種類について実験した結果、条件１と条件２によって、文字領域の98%〜99%は２値ブロックと判定し、写真領域はその輪郭部も含めてすべて中間調ブロックと判定した。テストで使用した画像の文字領域はフィルタで少しぼかした。また、文字部分を0，255から成る理想的な２値画像とすると100%、２値ブロックと判別した。写真画像では、像域判定結果は100%、中間調と判定したので、どの方式も同一結果である。文字画像での優位性は明らかである。文字画像では100%、２値画像と判定している。また混在画像では、文字領域のうち、理想的２値画像と多少ぼかした部分ではブロックの99%を２値画像ブロックと判定した。写真部分とぼけ具合を大きくした文字部分では100%、中間調ブロックと判定した。
【００７４】
（実施の形態３）
図５は本発明の実施の形態３にかかる画像符号化装置の具体的構成を示すブロック図である。基本的構成は図２に示されるものと同様である。
【００７５】
図５の画像符号化装置は、ブロック化回路1010と、２次元DCT回路1020と、メモリ1030と、量子化器／演算器1040と、量子化テーブル1050と、シフトレジスタ1060と、統計モデル用メモリ1070と、適応型算術符号器1080と、選択器1090と、像域判定回路1110と、２値化回路1120と、メモリ1130と、コンテクスト生成器1140と、タイミング制御部1202とを具備している。
【００７６】
入力画像データは、ブロック化回路1010により８ｘ８画素配列にブロック化する。像域判定回路1110は、ブロック毎に対象ブロックが２値画像であるか、そうでないかを判定する。
【００７７】
符号化手順としてはまず、ブロックの属性を示す像域判定フラグ1150を符号化する。その後に，２値画像でないと判断した場合は信号1160によって2次元DCT処理を起動し、JPEG同様の変換符号化を行う。DCT変換係数はメモリ1030に一時的に蓄積される。そして、図６のようなジグザグスキャン方式のアドレス指定によってデータが順次、読み出され、量子化器／演算器1040に供給される。上述のジグザグスキャンによるアドレス指定は、量子化器／演算器1040が行う。
【００７８】
量子化器／演算器1040は、量子化テーブル1050に格納されているテーブル値を量子化参照値として用いて量子化を行い、続いて、データの丸め演算を行う。量子化テーブル値の一例が図８に示されている。
【００７９】
一方、２値画像と判定した場合には、像域判定回路1110は、信号1170によって2値化処理回路1120を起動する。２値画像データはメモリ1130に一時的に蓄積される。そして、注目するブロックの内部を、図７に示すようにラスタスキャンしながら、データを読み出し、JBIGの規格である３ラインテンプレートを使って２値化データを算術符号化する。なお、コンテクスト生成器1140は、１つのブロック内の64画素について白データであるか黒データであるかという情報（統計情報）を統計モデル用メモリ1070に与える。
【００８０】
以上の処理をブロック毎に繰り返すと、画像の局所的性質に応じてDCT変換と2値化を選択的に実施できる。
【００８１】
続いて、量子化器／演算器1040の出力は、シフトレジスタ1060でパラレル／シリアル変換され、選択器1090の入力信号となる。パラレル／シリアル変換するのは、適応型算術符号器1080が２値の算術符号器であるため、これに適合するように入力形式を整えるためである。
【００８２】
選択器1090の３つの入力のうちのいずれかが選ばれて適応型算術符号器1080の入力シンボルとなる。選択信号やタイミング信号は、タイミング制御部1202から出力される。
【００８３】
算術符号化には入力シンボルに応じた統計モデルが必要である。統計モデル用メモリ1070には、DCT係数、２値画像用モデル、識別フラグ用の統計モデルがそれぞれ記憶されている。適応型算術符号器1080は、統計モデル用メモリ1070を参照し、必要に応じてその内容を書き換えながら符号化処理を実行し符号データを出力する。
【００８４】
図９は適応型算術符号器の要部の構成を示す。
【００８５】
算術符号化のためには確率推定のための統計データが必要である。統計モデル用メモリ1200は、ブロック識別フラグ用コンテクストテーブル（例えば１バイト）と、DCT後の変換係数のうちのDC成分用コンテクストテーブルD2と、AC成分用コンテクストテーブルD3と、２値画像符号化用コンテクストテーブルD4とを有する。
【００８６】
各コンテクストテーブルの１バイトは、符号1210で示すように、MPS（優勢シンボル）値（１ビット）と確率推定器のインデックス（７ビット）とで構成される。
【００８７】
確率推定器1220からは、劣性シンボル(LPS)の領域幅にあたるQe値が、算術符号器に出力される。算術符号器では、入力シンボルとMPS値、Qe値とから演算を行い、入力シンボル列の生起確率に対応する２進少数点座標を符号データとして出力する。本実施例の入力シンボルは、ブロック識別フラグ、DCTにより得られる変換係数のDC成分とAC成分、および２値化データである。
【００８８】
図10は算術符号化の概念を説明するための図である。この図は、符号化シンボル系列「0100」の各ビットについて、参照画素を用いた優勢シンボルによる確率推定が４回連続してはずれた場合に、長さ「１」の数直線を各々の劣性シンボルが生起される確率で分割していった場合の代表点Ｃが対応する算術符号であることを表している。このように、数直線を分割していく処理の繰り返しによって符号の生成が行われ、異なる種類のシンボルも２進小数点として統合されて符号化される点で、算術符号は情報の多重化に適する。
【００８９】
以上が図５の画像符号化装置の動作の概要である。次に、算術符号化の具体的動作について、識別フラグの符号化，中間調画像データの符号化，２値画像データの符号化の順に説明する。
【００９０】
まず、識別フラグの符号化について説明する。
像域判定の結果、文字領域（２値領域）のブロックと判定された場合には「１」をフラグとして符号化し、文字領域（２値領域）でない場合（つまり、中間調領域の場合）には、「０」をフラグとして符号化する。
【００９１】
ここで、「１」を符号化する手順が図11に示される。つまり、フラグ用統計モデルにおいて、「１」が優勢シンボルとなっていれば（ステップ2100）、ＭＰＳ（優勢値）として符号化される（ステップ2110）。一方、「１」が優勢シンボルでない場合は、ＬＰＳ（劣性値）として符号化される（ステップ2120）。算術符号は推定を誤ったペナルティとして符号を生成するので、符号は、主に、ステップ2120の場合に生成される。
【００９２】
また、「０」を符号化する手順が図12に示される。つまり、フラグ用統計モデルにおいて、「０」が優勢シンボルとなっていれば（ステップ2200）、ＭＰＳ（優勢値）として符号化される（ステップ2210）。一方、「０」が優勢シンボルでない場合は、ＬＰＳ（劣性値）として符号化される（ステップ2220）。算術符号は推定を誤ったペナルティとして符号を生成するので、符号は、主に、ステップ2220の場合に生成される。
【００９３】
なお、以上の説明では識別フラグにより示される情報が２つであったが、３つ以上の場合も同様にして算術符号化できる。例えば、中間調領域のデータについてｊ個の量子化テーブルが用意されていて、そのうちの一つを用いて量子化したような場合、どの量子化テーブルを使用したかという識別情報を算術符号化して送付したいという場合（適応化量子化の場合）がある。
【００９４】
このような場合の、量子化テーブル識別情報の符号化手順の一例を図13に示す。ここでは量子化テーブル（またはスケーリングファクタ）はｊ種類あり、それにインデックスを付けて識別するものとする。
【００９５】
量子化テーブルが切り替わることは、そのインデックスが変化することなので、その差分を計算してΔｊとする（ステップ2300）。Δｊがゼロかどうかを判定し（ステップ2310）、ゼロならば「０」を符号化する。この場合は、使用するスケーリングファクタ（量子化テーブル）には変化がないことを意味し、したがって、受信側では、今まで使用していたスケーリングファクタ（量子化テーブル）を使用すればよい。。
【００９６】
一方、Δｊがゼロでなければ、「１」をコード化し（ステップ2330）、次に、Δｊの符号がプラスであるかマイナスであるかを判定して、同様に「０」もしくは「１」でで符号化する（ステップ2350，2360）。最後に、Δｊの絶対値を符号化する（ステップ2370）。なお、Δｊの絶対値を符号化するには、その２進数を桁毎に“０”であれば「０」を符号化し、“１”であれば「１」をで符号化すればよい。これらの処理に必要なコンテクストは、Δｊがゼロの符号化用、正負の符号化用、それに絶対値の各桁用に用意すればよく、せいせい数バイトのメモリが必要なだけである。つまり、このような方法によれば、使用する量子化テーブル（スケーリングファクタ）が切り替わったときにのみ数ビット程度（logj程度）の符号が出力される。したがって、従来の方式よりも必要とされる構成が簡素化され、符号量少なくなって効率的に符号化できるという利点がある。
【００９７】
次に、像域判定の結果、中間調画像のブロックと判定された場合の算術符号化の具体例について説明する。
【００９８】
第ｊブロックのDC成分S0,0,jは直前ブロックのDC成分S0,0,(j-1)との差をとり、Δj= S0,0,(j-1) - S0,0,j  がその直前の差分Δj-1の値によって、Δj-1がゼロか、±small，±largeの５つにクラス分けしている。 S0,0,(j-1)の初期値はゼロとする。各クラス毎にΔjがゼロかどうか、ゼロでなければプラスかマイナスかが符号化され、その後に絶対値が桁毎に符号化される。この算術符号化処理に必要とするコンテクスト数は各クラス4個必要で、計20個である。１つのコンテクストは１バイトで算術符号化に必要な統計量が表されるので，DC成分を符号化するための20バイトのコンテクストメモリが統計モデル用メモリ1070に含まれている。
【００９９】
AC成分は量子化によってゼロになる成分が多いので、63個の成分のうち、ある成分以降がすべてゼロになる状態を１つのシンボルとしてEOB(End of Block)と定義する。符号化手順はまずEOBかどうか判定し，そうであればEOBを示すため「１」を符号化する。そうでなければ，そのことを示す「０」の符号化を行う。本実施例で採用している適応型算術符号器1080は２進算術符号器なので，符号化対象を２つのクラスに分離しながら符号化する。どちらのクラスであるかを、「０」もしくは「１」で符号化していく。その後、AC成分ごとに値がゼロか、ゼロでなければプラス／マイナスを符号化し、その後に絶対値を符号化する。AC成分インデックス（1〜63）毎に上記のEOB判定，ゼロ判定，正負の符号化，絶対値の符号化を繰り返す。コンテクストは成分インデックス毎にクラス分けする。DC成分より複雑で合計276個のコンテクストから成る。このコンテクストメモリも統計モデル用メモリ1070に含まれている。
【０１００】
以上の中間調ブロックの算術符号化の手順をまとめると、図１４のようになる。量子化テーブル情報等の各種の識別情報を符号化し（ステップ3000）、ＤＣ成分を符号化し（3010）、ＡＣ成分を符号化する（ステップ3020）。
【０１０１】
次に、２値画像ブロックの算術符号化について具体的に説明する。
【０１０２】
前述したように、像域判定回路1110で対象ブロックが２値画像と判定されると，信号1170によって２値化回路1120が起動され，画素Pj,kの値としきい値128を比較し２値化する。２値化した画像データはメモリ1130に記憶される。コンテクスト生成器1140は，符号化画素（符号化シンボル）周辺の参照画素10画素の値で1024個のクラス分けを行う。符号化シンボルは信号1180であり，選択器1090を通って算術符号器の入力シンボルとなる。
【０１０３】
図15に、ブロックの位置関係と２値データ符号化に必要となる参照画素の配置（テンプレート）を示す。符号化対象ブロックをB(j,k)とし，図示したようにその左，左上，真上のブロックを、それぞれB(j,k-1), B(j-1,k-1), B(j-1,k)とする。“？”を符号化シンボルとすると、その周囲の“Ｘ”が参照画素を表す。JBIGの３ラインテンプレートの参照画素配置を採用した。B(j,k)からはみ出した参照画素のうち、 B(j-1,k-1), B(j-1,k)に属するものは、画像を参照せずすべて“０”とした。中間調ブロックはDCT変換され，逆変換によって元の画像には戻らない。それを２値化しても符号器と復号器とで参照値が異なり、別のコンテクストになってしまうことがあるのでこのようにB(j,k)の周囲はすべて白画素とみなすようにした。このようにするのが最も簡単である。２値化後は、“０”で白を表すことにする。こうすることよって圧縮率は多少低下するが、メモリ容量を減らすことができる。
【０１０４】
但し、左のブロックB(j,k-1)が２値画像ブロックであれば、B(j,k-1)にかかる参照画素は実際の画素を参照し、B(j,k-1)が中間調ブロックの時には白画素とするのが望ましい。周辺参照画素を全部白とみなすのは最も簡単な方法であるが、上述の問題が生じないときは、なるべく実際の画像を参照し圧縮率を上げるようにするものである。同じようにして参照画素がB(j-1,k-1), B(j-1,k)にかかる場合も、ブロックが２値画像の場合には、実際の画素を参照するようにすれば圧縮率は改善できる。
【０１０５】
B(j,k-1)が中間調ブロックか２値であるかは、符号化しながら逐次、ブロック識別フラグを記憶していく。ここで、「ブロック毎に符号化していく」方法として、本実施の形態では、図16(a)に示すようなストライプという概念を導入し、各ストライプ毎に符号化を実施する方法を採用した。すなわち、本実施の形態では、処理ストライプと直前のストライプに属するブロックの識別フラグをメモリに記憶している。ここで、「ストライプ」とは、上述のとおり８ラインｘ１ライン画素数の配列のことである。
【０１０６】
図16(a)では、各ブロック4010〜4040に渡る１行分の帯がストライプ4050ということになる。図16(b)は、ストライプ毎の識別情報を記憶するためのラインメモリを示している。図示されるように、ラインメモリとして、少なくとも２ストライプ分のメモリ（4060,4070）を用意しておく。
【０１０７】
画素の符号化はブロックの左上画素から右に８画素符号化する。次にその下の８画素を同様に符号化する。これを繰り返し，64画素符号化して１ブロックの符号化が終了する。１画素の符号化演算はJBIGと同一である。
【０１０８】
図17に、１ストライプの符号化処理の手順を示す。
【０１０９】
ステップ5010はストライプ先頭の初期化処理である。DC差分の基準値（このフローではDCi-1）のクリア，その他の初期化を行う。ステップ5020では、画像メモリから画素を１ブロック読み込み、それと同時にヒストグラムに関する統計量を抽出する。その統計量からステップ5030で像域判定を行う。ステップ5040で判定結果をメモリに記憶する。ステップ5050で判定結果により分岐する。２値ブロックであればステップ5060で、それを示すフラグを「1」で符号化する。ステップ5070は１ブロックの画素の符号化である。ステップ5080は，次の中間調ブロックの符号化のためにDC差分の基準値（DCi-1）をクリアする。２値画像ブロックの次の中間調ブロックは，ストライプの第１ブロックと同じ初期条件とした。ステップ5090〜ステップ5110は中間調ブロックの符号化である。ステップ5120で１ストライプの終了判断をして，終わっていなければ以上のことを繰り返す。１ストライプの符号化が終了すると、ステップ5130で１ストライプ分のブロック識別フラグのメモリ値を更新する。これは、図16(b)の２本のラインメモリ間のデータの移し替えを意味する。以上で符号化が終了する。
【０１１０】
次に、本実施の形態の圧縮率について他方式との比較結果を含めて説明する。図18は圧縮性能の比較結果をまとめたものである。実験に使用したテスト画像は以下の３種類である。
文字画像：英文画像(CCITT#1)の文字の詰まった部分を，256X256画素切り出し、フィルタ処理をかけてエッジを多少ぼかしたものである。
写真画像：256X168画素サイズの人物彫刻写真である。
混在画像：256X168画素サイズの写真画像２枚を文字画像に合成した。全体のサイズは512X512画素である。文字領域は３つに分かれ，１つは理想的な２値画像（0,255から成る）であり、１つは上記の文字テスト画像と同じく多少ぼかした部分であり、もう一つはぼけの程度を前者より大きくしたものである。
【０１１１】
比較の対象となる符号化方式は３つある。
第１番目（図１８の一番左に示される方式）は、DCT+量子化+算術符号化方式である。これはJPEGの拡張モードと同じ構成である。量子化テーブルは図８に示されるものを使用した。２つ目の方式（図18の中央に示される方式）は、適応型量子化（画像の局所局所の性質に応じてDCTの量子化参照値を変化させる方式）を採用したものである。中間調ブロックは図８の量子化テーブルを使い、２値画像ブロックに対してはこの量子化テーブルをscaling factor=3でスケーリングした。したがって，図３の1/3の設定値で量子化される。３つ目の方式（図18で一番右側に示される方式）が本実施の形態の方式である。
【０１１２】
図18をみると、混在画像に対して本実施の形態の方式は、適応量子化よりも３倍圧縮率が高いことがわかる。写真画像では，像域判定結果は100%，中間調と判定したので、どの方式も同一結果である。また、文字画像については、本実施の形態の方式の優位性は明らかである。文字画像では100%,２値画像と判定している。また混在画像では、文字領域のうち、理想的２値画像と多少ぼかした部分ではブロックの99%を２値画像ブロックと判定した。写真部分とぼけ具合を大きくした文字部分では100%,中間調ブロックと判定した。
【０１１３】
適応的量子化による復元画像は，scaling factor=3としても，文字周辺に僅かにモスキートノイズが現れた。誤差拡散処理すると、それが黒の孤立点となる。本実施例では復元画像の文字部分は理想的な２値画像となり、誤差拡散処理を通しても何の問題も見られなかった。すなわち、画質，圧縮率ともに適応化させることができた。
【０１１４】
（実施の形態４）
図19は、実施の形態４にかかるファクシミリ装置の構成を示す図である。
【０１１５】
ファクシミリ装置101は、ホストプロセッサ102と、ＭＨ／ＭＲ／ＭＭＲ符号／復号化回路103と、解像度変換回路104と、ＱＭ（算術）符号／復号化回路105と、画像ラインメモリ106と、符号メモリ107と、モデムなどの通信インタフェース（電話回線113等を用いた有線伝送のためのインタフェースとして機能する）と、スキャナ等の画像入力装置111と、プリンタなどの画像記録／表示装置112と、を具備し、各ブロックは内部バス109，110を介して相互に情報の授受を行うことができる。
【０１１６】
前掲の実施の形態で説明した符号化，復号化を行う回路は、ＱＭ（算術）符号／復号化回路105に搭載されている。
【０１１７】
本発明にかかる符号化／復号化回路は、基本的にはJPEG，JBIGという信頼性の高い既存の方式を用いるので構成は比較的簡単であり、小型化や低コスト化が要求されるファクシミリ装置においても、十分に搭載可能である、したがって、普及型のファクシミリ装置の通信性能の向上に寄与する。
【０１１８】
【発明の効果】
以上説明したように、本発明では２値画像であるか中間調画像であるかの判定を行い、それぞれに適した符号化を実行するため、写真と文字の混在画像の符号化において、写真領域はJPEG同様に効率よく圧縮され、一方、文字領域は画質も高く従来の数倍の圧縮率が実現されるという優れた効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１にかかる画像符号化装置の構成を示すブロック図
【図２】本発明の実施の形態２にかかる画像符号化・復号化装置（画像通信装置）の構成を示すブロック図
【図３】伝送される符号のフォーマット例を示す図
【図４】像域判定処理の手順を示す図
【図５】本発明の実施の形態３にかかる画像符号化装置の構成を示すブロック図
【図６】  DCT変換係数を読み出す際のアドレス指定方式（ジグザグスキャン方式）を説明するための図
【図７】  ２値画像のブロックについてのデータ読み出し方式（ラスタスキャン方式）を説明するための図
【図８】量子化テーブル値（量子化参照値）の値の一例を示す図
【図９】算術符号器の要部構成を示す図
【図１０】算術符号の符号化原理を説明するための図
【図１１】識別情報（フラグ）の算術符号化の一例の手順を示す図
【図１２】識別情報（フラグ）の算術符号化の他の例の手順を示す図
【図１３】識別情報（フラグ）の算術符号化の他の例の手順を示す図
【図１４】中間調画像のブロックの符号化手順を示す図
【図１５】２値画像のブロックの符号化に用いられる参照画素の配置を示す図
【図１６】２値画像のブロックの符号化の具体例を説明するための図
【図１７】２値画像のブロックの符号化の具体的手順を示す図
【図１８】実施の形態２にかかる符号化方式の効果を他の方式と比較して示す図
【図１９】本発明の実施の形態４にかかるファクシミリ装置の構成を示す図
【符号の説明】
１  混在画像
２  中間調画像領域
３  ２値画像領域
４  スキャナ
５  変換処理回路
6a，6b  変換処理部
７  像域判定回路
８  算術符号器
【図１】
0004369538.tif 000003
【図２】
0004369538.tif 000004
【図３】
0004369538.tif 000005
【図４】
0004369538.tif 000006
【図５】
0004369538.tif 000007
【図６】
0004369538.tif 000008
【図７】
0004369538.tif 000009
【図８】
0004369538.tif 000010
【図９】
0004369538.tif 000011
【図１０】
0004369538.tif 000012
【図１１】
0004369538.tif 000013
【図１２】
0004369538.tif 000014
【図１３】
0004369538.tif 000015
【図１４】
0004369538.tif 000016
【図１５】
0004369538.tif 000017
【図１６】
0004369538.tif 000018
【図１７】
0004369538.tif 000019
【図１８】
0004369538.tif 000020
【図１９】
0004369538.tif 000021