(57)【特許請求の範囲】
【請求項１】
復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、
前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とするＪＢＩＧ復号化方法。
【請求項２】
復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、
典型的予測をしない場合において、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、
典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、同じでないときには復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を実行し、
同じであるときには前記復号化対象ラインを復号化の対象としないことを特徴とするＪＢＩＧ復号化方法。
【請求項３】
復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、
典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、
同じであるときには、オール白フラグ設定処理を行う一方、
同じでないときには、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、
参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、
典型的予測をしない場合において、復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を行うことを特徴とするＪＢＩＧ復号化方法。
【請求項４】
復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化プログラムであって、
前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とするＪＢＩＧ復号化プログラム。
【請求項５】
復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化プログラムであって、
典型的予測をしない場合において、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、
典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、同じでないときには復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を実行し、
同じであるときには前記復号化対象ラインを復号化の対象としないことを特徴とするＪＢＩＧ復号化プログラム。
【請求項６】
復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化プログラムであって、
典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、
同じであるときには、オール白フラグ設定処理を行う一方、
同じでないときには、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、
前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、
典型的予測をしない場合において、復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を行うことを特徴とするＪＢＩＧ復号化プログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、２値画像復号化方法に関し、特に、ＪＢＩＧ（ｊｏｉｎｔ  ｂｉ−ｌｅｖｅｌ  ｉｍａｇｅ  ｇｒｏｕｐ）によって復号化処理を高速化する２値画像復号化方法に関する。
【０００２】
【従来の技術】
従来、ファクシミリ等の白黒２値画像を復号化する場合において、１ライン分がすべて白である場合の処理方法には種々のものが知られている。
【０００３】
例えば、特開平１−１９８８６８号公報に開示されたファクシミリ復号化回路においては、復号結果が１ライン全部白である場合にはラインメモリへの画データの転送を行わず、これを制御信号にて通知することにより、１ライン画データを転送した場合と同じ結果を得るようにしている。
【０００４】
また、特開平１−２２３８７９号公報に開示された圧縮コードデータの伸長処理装置においては、伸張処理中に１ライン分全て白に相当するデータが入力された場合には、そのラインのイメージデータを生成・転送しなくても、アドレスカウンタをアップさせるだけでイメージデータを逐次生成・転送するのと同じ効果を得るようにしている。
【０００５】
また、特開平２−２１３２７８号公報に開示されたファクシミリ復号化装置においては、２次元復号化に使用する参照ラインが１ライン全白の場合には、その参照ラインの画データを読み込まないようにしている。その結果、２次元復号化を高速化することができる。
【０００６】
また、特開平３−２２８４７０号公報に開示されたファクシミリの符号化装置及び復号化装置においては、全ての画素が白であるラインがあったときに、１ビットの全白符号を生成する。そして、この全白符号を表示する１ビットの識別符号も付加する。即ち、１ライン全白を２ビットで表現することができる。従って、ＭＨ（ｍｏｄｉｆｉｅｄ  Ｈｕｆｆｍａｎ）符号やＭＲ（ｍｏｄｉｆｉｅｄ  ＲＥＡＤ）符号に比べて各段に符号化・復号化が高速に実行される。
【０００７】
また、特公平４−２３９９１号公報に開示されたファクシミリ装置においては、２値データのランレングスをモディファイド・リード（ＭＲ）符号、又はモディファイド・モディファイド・リード（ＭＭＲ）符号を用いて圧縮し、これを復号する際、参照ラインつまり１ライン前のラインに変化点があるか否かを判定し、この判定結果と、復号化を行うラインの符号とによって全白ラインの連続の有無を判断している。そして、これが連続する場合は、当該ラインの復号化を行わず、また、印写においても印写用ラインメモリからの読み出し、印写記録動作を行わないようにしている。
【０００８】
さらに、データの圧縮伸張技術の一つにＪＢＩＧ（ｊｏｉｎｔ  ｂｉ−ｌｅｂｅｌ  Ｉｍａｇｅ  ｃｏｄｉｎｇ  ｇｒｏｕｐ、ＩＴＵ−Ｔ．８２／ＩＳＯ／ＩＥＣ１１５４４）がある。ＪＢＩＧ符号化においては、符号化しようとする画素のレベルをその周辺領域から推定する。具体的には、対象画素の周辺領域即ちモデルテンプレートを１次元化してコンテキストを求める。そして、コンテキストに対応する対象画素のレベルの出現確率を学習によって推定する。そして、学習結果に基づいて、対象画素のレベルを算術符号化（ＡＡＥ）して０以上１未満の２進数小数で表すようにしている。ＪＢＩＧ復号化の場合は、この逆の手順となる。
【０００９】
ＪＢＩＧ符号化においては、対象画素が白か黒かを予測学習するため、予測が外れた場合のみ、符号化を行う。このＪＢＩＧを用いて、符号化・復号化を行うことは、例えば、特許第２９１９３８４号に開示されている。
【００１０】
ここで、ＪＢＩＧのモデルテンプレート（Ｍｏｄｅｌ Ｔｅｍｐｌａｔｅ：ＭＴ）処理について説明する。
【００１１】
図９には、画像データを格納するためのメモリブロックを示す。メモリブロックには、復号化対象ラインＰＩＸ、一つ手前の参照ラインＨ１、及び２つ手前の参照ラインＨ２のデータが格納される。
【００１２】
図１０には、メモリブロックの中のモデルテンプレートを示す。モデルテンプレートは、復号化の対象とされる注目画素の周辺画素パターンである。
【００１３】
モデルテンプレートには、３ライン・モデルテンプレート、２ライン・モデルテンプレートの２つがある。ＭＴの形は、予め決められている。
【００１４】
但し、一定周期で強い相関がある画像を符号化する場合には、３ラインＭＴの第２画素の位置、又は２ラインＭＴの第４画素の位置を、例えば１２７画素分まで移動してもよい。
【００１５】
コンテキストとは、図１０に示すように、ＭＴの第９画素から第０画素までを、この順に１次元に並べたものである。
【００１６】
図１１Ａ、図１１Ｂには、コンテキストの具体例を示す。図１１Ａのコンテキストには、黒が含まれておらず、このコンテキストを”０００Ｈ”で表す。一方、図１１Ｂのコンテキストには、第９画素と第５画素が黒であり、このコンテキストを”２２０Ｈ”で表す。
【００１７】
図１２には、コンテキストテーブル即ち学習テーブルの具体例を示す。このテーブルは、１０画素分のモデルテンプレートから得られるコンテキストの値から予測する画素の値と、その状態番号を記憶するテーブルである。現在の状態（ＳＴ）を”０”とする。そして、現在の学習テーブル（コンテキスト”２２０Ｈ”）で注目画素が白”０”であると予測していたとする。予測が当たった場合には、学習テーブルはそのままにしておく。一方、予測が外れた場合には、予測値を黒”１”に変更するとともに、ＳＴを”１”にする。
【００１８】
図１３には、確率推定テーブルを示す。このテーブルは、ＬＰＳの領域幅ＬＳＺ、コンテキストテーブル即ち学習テーブルが示す次の状態遷移番号ＮＬＰＳ、ＮＭＰＳ、予測値反転ＳＷＩＴＣＨからなるテーブルである。ここで、符号化・復号化するシンボルは、多く現れる方を優勢シンボルＭＰＳ、少ない方を劣勢シンボルＬＰＳとしている。また、ＬＰＳ時即ち予想外れ時の状態遷移先がＮＬＰＳである。
また、ＭＰＳ時即ち予想当たりときの状態遷移先がＮＭＰＳである。また、ＬＰＳ時即ち予想外れ時にＳＷＩＴＣＨ＝１ならば予測値を反転する。
【００１９】
この確率推定テーブルによれば、状態番号ＳＴ＝０のとき予測が外れれば、状態番号ＮＬＰＳ＝１に遷移するとともに、予測値を反転しなければならない。そのため、図１２に示したコンテキストテーブル即ち学習テーブルの予測値が白から黒に変更され、状態番号が”０”から”１”に変更されている。
【００２０】
図１４は、ＪＢＩＧデータ復号化装置のブロック図である。この装置は、演算処理、データ処理、及び各部の制御処理等を行うＣＰＵ（中央処理演算装置）１００と、送信時に読み取った原稿を２値画像にしたものを蓄える画像データメモリ４００と、受信時に受信したデータを符号として蓄える符号データメモリ５００と、ＪＢＩＧによる復号化プログラム２０１及び符号データを画像データに変換するための確率推定テーブル２０２が配置格納されるＲＯＭ２００と、復号化対象画素が白か黒かを予測して当たる確率を高くするために参照される学習テーブル３０１が配置格納されるＲＡＭ３００と、変換された結果である画像データをＦＩＦＯ（ｆｉｒｓｔ  ｉｎ  ｆｉｒｓｔ  ｏｕｔ）管理するＦＩＦＯメモリ６００とがバス７００で接続されている。
【００２１】
ＣＰＵ１００は、復号化対象ラインよりブロック単位で読み出した画像データを保持するレジスタ１０１と、復号化対象ラインの一つ前のラインよりブロック単位で読み出した画像データを保持するレジスタ１０２と、復号化対象ラインの２つ前のラインよりブロック単位で読み出した画像データを保持するレジスタ１０３と、予測結果を保持するレジスタ１０４と、学習テーブル３０１より読み出した予測値、状態値を保持するレジスタ１０５と、確率推定テーブル２０２より読み出した外れの領域幅を保持するレジスタ１０６と、コンテキストの内容を保持するレジスタ１０７を持つ。このＣＰＵ１００は、ＪＢＩＧによる復号化プログラム２０１を実行することによって、ＪＢＩＧの復号化処理を行う。
【００２２】
図１５は、ＪＢＩＧ復号化方法を説明するためのフローチャートである。
【００２３】
最初に、ＪＢＩＧのオプションである典型的予測（ｔｙｐｉｃａｌ  ｐｒｅｄｉｃｔｉｏｎ：ＴＰ）をするかしないか判別する（Ｓ２１）。ここで、典型的予測ＴＰとは、符号化／復号化する対象画素数即ち注目画素数を減少させるための処理である。符号化処理の場合、符号化対象ラインＰＩＸが一つ前のラインＨ１と同じ場合は符号化を行わない。ＰＩＸの画像データとＨ１の画像データが同じであることは、１ビットを使用して擬似画素として符号化する。一方、復号化処理の場合、復号化対象ラインＰＩＸが一つ前のラインＨ１と同じ場合は復号化を行わず、Ｈ１の画像データを出力（コピー）する。
【００２４】
以上のような典型的予測をしない場合は、１ライン復号化処理を行う（Ｓ２１０）。Ｓ２１０に続いて、原稿ライン数分の処理が終了したか判別し（Ｓ２７）、終了していない場合は、１ライン復号化処理（Ｓ２１０）へ戻り、復号化処理を繰り返す。
【００２５】
一方、典型的予測をする場合は（Ｓ２１）、２つのライン（復号化対象ラインと復号化対象ラインの一つ前のライン）が同じかどうかを判別する（Ｓ２９）。２つのラインが同じでない場合は、１ライン復号化処理（Ｓ２１０）を行う。一方、２つのラインが同じである場合は、復号化対象ラインを復号化の対象しない。次に、典型的予測をしない場合（Ｓ２１）と同様に、原稿ライン数分の処理が終了したかを判別し（Ｓ２７）、終了していない場合は、ライン一致確認処理（Ｓ２９）へ戻り、復号化処理を繰り返す。
【００２６】
以上の処理を原稿ライン数分例えばＡ４版の原稿の場合２３７６ライン繰り返すことで復号化処理を行う。
【００２７】
図１６は、図１５のＳ２１０の１ライン復号化処理を説明するためのフローチャートである。
【００２８】
まず、復号化対象ラインの２つ前のラインＨ２、復号化対象ラインの一つ前のラインＨ１、復号化対象ラインＰＩＸの３つの画像データ・ブロックをブロック単位で読み出す（Ｓ５１）。
【００２９】
次に、前記３つの画像データ・ブロックがオール白かどうかを判別する（Ｓ５２）。
【００３０】
前記判別結果がオール白の場合は、ブロック処理が終了するまで、１画素復号化処理（Ｓ５５）を繰り返す。ブロック単位分の処理が終了した場合は、１ライン復号化処理の先頭に戻り、１ライン分の復号化処理が終了したかどうかを判別し（Ｓ５０）、ライン終了であれば、１ライン復号化処理を終了する。一方、判別の結果、ライン終了でなければ、画像データの読み出し処理（Ｓ５１）からのブロック単位での一連の復号化処理を継続する。
【００３１】
一方、Ｓ５２において、判別結果がオール白でない場合は、ブロック処理が終了するまで（Ｓ５６）、復号化対象画素の周辺画素（モデルテンプレート）を１次元化したコンテキストを作成し（Ｓ５３）、１画素復号化処理を行い（Ｓ５４）、３ブロック分の画像データをそれぞれ１ビット・シフト（Ｓ５７）する一連の処理を繰り返す。ブロック単位分の処理が終了した場合は、１ライン復号化処理の先頭に戻り、１ライン分の復号化処理が終了したかどうかを判別し（Ｓ５０）、ライン終了であれば、１ライン復号化処理を終了する。
【００３２】
一方、Ｓ５０において、前記判別結果がライン終了でなければ、画像データの読み出し処理（Ｓ５１）からのブロック単位での一連の復号化処理を継続する。
【００３３】
以上の処理を原稿ライン数分繰り返すことで復号化処理を行う。
【００３４】
図１７は、図１６のＳ５４の１画素復号化処理を説明するためのフローチャートである。このＳ５４の１画素復号化処理は、Ｓ５５の１画素復号処理とは異なっている。
【００３５】
図１７に示すように、まず、復号化対象画素の周辺画素を１次元化したコンテキストをインデックスとして、学習テーブル３０１より予測値、状態値を読み出す（Ｓ１２０）。
【００３６】
次に、前記状態値をインデックスとして、確率推定テーブル２０２より外れの領域幅を読み出す（Ｓ３１）。
【００３７】
さらに、白黒の順列が現れる確率を示す領域幅から前記外れの領域幅を差し引いて、新しい領域幅に更新する（Ｓ４０）。
【００３８】
次に、復号化対象画素が予測値と一致しているかを判別する（Ｓ１２１）。復号化対象画素が予測値と一致していないと判別された場合は、外れの確率を示す領域幅を変更し、更新した状態値を学習テーブル３０１に書き込む予測外れ処理を行い（Ｓ１２２）、領域幅を外れの領域幅より大きくする正規化を行う（Ｓ４３）。
【００３９】
一方、Ｓ１２１において、復号化対象画素が予測値と一致していると判別された場合は、領域幅を外れの領域幅より大きくする正規化が必要かどうかを判別する（Ｓ４１）。前記判別結果で正規化が必要な場合は、当たりの確率を示す領域幅を変更し、更新した状態値を学習テーブル３０１に書き込む予測当たり処理（Ｓ４２）及び正規化処理（Ｓ４３）を行って、一連の１画素復号化処理を終了する。
【００４０】
図１８は、図１６のＳ５５の１画素復号化処理を説明するためのフローチャートである。
【００４１】
図１８に示すように、まず、復号化対象画素の周辺画素を１次元化したコンテキスト（０）をインデックスとして、学習テーブル３０１より予測値、状態値を読み出す（Ｓ３０）。
【００４２】
次に、前記状態値をインデックスとして、確率推定テーブル２０２より外れの領域幅を読み出す（Ｓ３１）。さらに、白黒の順列が現れる確率を示す領域幅から前記外れの領域幅を差し引いて、新しい領域幅に更新する（Ｓ４０）。
【００４３】
次に、復号化対象画素の予測値が白かどうかを判別する（Ｓ１３０）。復号化対象画素の予測値が白でないと判別された場合は、外れの確率を示す領域幅を変更し、更新した状態値を学習テーブル３０１に書き込む予測外れ処理を行い（Ｓ１２２）、領域幅を外れの領域幅より大きくする正規化を行う（Ｓ４３）。
一方、Ｓ１３０において、復号化対象画素の予測値が白であると判別された場合は、領域幅を外れの領域幅より大きくする正規化が必要かどうかを判別する（Ｓ４１）。前記判別結果で正規化が必要な場合は、当たりの確率を示す領域幅を変更し、更新した状態値を学習テーブル３０１に書き込む予測当たり処理（Ｓ４２）及び正規化処理（Ｓ４３）を行って、一連の１画素復号化処理を終了する。
【００４４】
一方、Ｓ４１において、正規化が必要ない場合は、ブロック単位分の処理が終了したかどうかを判別（Ｓ１３１）、終了していない場合は、学習テーブル３０１からの予測値、状態値、確率推定テーブル２０２からの外れ領域の読み出しを行わないで、領域幅の更新（Ｓ４０）のみを行う一連の処理を繰り返す。
【００４５】
一方、Ｓ１３１において、判別結果がブロック終了の場合は、１画素復号化処理を終了する。
【００４６】
以上説明した従来技術の特徴をまとめると、ブロック単位で読み出した画像データがオール白の場合はコンテキスト作成処理が不要となり、さらに予測値が白で正規化処理が必要ない場合には、学習テーブル（予測値、状態値）さらには確率推定テーブル２０２（外れ領域幅）からのデータ読み出しが不要になるため、復号化処理速度を向上することができる。
【００４７】
【発明が解決しようとする課題】
しかし、上述した従来技術では、典型的予測をしない場合において、リアルタイム通信するには処理性能が不足する。その第１の理由は、コンテキスト作成のための画像データ・ブロックの読み出し処理が、復号化対象ライン、一つ前のライン、２つ前のラインの３つのラインに対して、ブロック単位で頻繁に行われるからである。その第２の理由は、ブロック単位毎にオール白判別処理、１画素復号化毎に予測値判別処理が行われるからである。
【００４８】
そこで、本発明は、３ライン分の画像データの読み出し処理、ブロック判別処理、予測値判別処理を削減してＪＢＩＧ復号化処理速度を更に向上することを課題としている。
【００４９】
また、本発明は、ＪＢＩＧ復号化処理速度の向上に伴って画像データ、学習テーブル及び確率推定テーブルの各メモリからの読み出し回数を削減し、ＪＢＩＧ復号化装置の消費電力を低減することを課題としている。
【００５０】
【課題を解決するための手段】
本発明に係るＪＢＩＧ復号化方法は、復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とする。
【００５１】
また、本発明に係るＪＢＩＧ復号化方法は、復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、  典型的予測をしない場合において、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、同じでないときには復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を実行し、同じであるときには前記復号化対象ラインを復号化の対象としないことを特徴とする。
【００５２】
また、本発明に係るＪＢＩＧ復号化方法は、復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、同じであるときには、オール白フラグ設定処理を行う一方、同じでないときには、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、典型的予測をしない場合において、復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を行うことを特徴とする。
【００５３】
本発明に係るＪＢＩＧ復号化プログラムは、復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化方法であって、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とする。
【００５４】
また、本発明に係るＪＢＩＧ復号化プログラムは、復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化プログラムであって、典型的予測をしない場合において、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、同じでないときには復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を実行し、同じであるときには前記復号化対象ラインを復号化の対象としないことを特徴とする。
【００５５】
また、本発明に係るＪＢＩＧ復号化プログラムは、復号化対象ラインとこれに先立つ１又は２本の参照ラインを用いて前記復号化対象ライン上の復号化対象画素を復号化するＪＢＩＧ復号化プログラムであって、典型的予測をする場合において、前記復号化対象ラインとその一つ前の前記参照ラインが同じか否かを判別し、同じであるときには、オール白フラグ設定処理を行う一方、同じでないときには、前記参照ラインがオール白の場合は内容が全て０であるコンテキストの予測値が白であるかどうかを判別し、予測値が白であるときにはオール白専用である第１の１ライン復号化処理を行う一方、参照ラインがオール白でないとき又は前記コンテキストの予測値が白でないときには復号化対象画素の周辺画素の読み出し処理をオール白フラグ点検後に行う第２の１ライン復号化処理を行い、前記第２の１ライン復号化処理においては、参照ラインがオール白の場合には前記参照ラインからの画像データの読み出し処理を行わないことを特徴とし、典型的予測をしない場合において、復号化対象画素の周辺画素の読み出し処理をブロック単位で毎回行う第３の１ライン復号化処理を行うことを特徴とする。
【００６０】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【００６１】
図１は本発明のＪＢＩＧ復号化方法に使用する復号化装置のブロック図である。この装置は、演算処理、データ処理、及び各部の制御処理等を行うＣＰＵ（中央処理演算装置）１００と、受信時に受け取った符号データを蓄える符号データメモリ５００と、変換された結果である画像データを蓄える画像データメモリ４００と、ＪＢＩＧによる復号化プログラム２０１Ａ及び符号データを画像データに変換するための確率推定テーブル２０２が配置格納されるＲＯＭ２００と、復号化対象画素が白か黒かを予測して当たる確率を高くするために参照される学習テーブル３０１が配置格納されるＲＡＭ３００と、符号データあるいは画像データを一時的に蓄えるＦＩＦＯ（ファースト・イン  ファースト・アウト）管理されたＦＩＦＯメモリ６００がバス７００で接続されている。
【００６２】
また、ＣＰＵ１００は、復号化対象ラインよりブロック単位で読み出した画像データを保持するレジスタ１０１と、復号化対象ラインの一つ前のラインよりブロック単位で読み出した画像データを保持するレジスタ１０２と、復号化対象ラインの２つ前のラインよりブロック単位で読み出した画像データを保持するレジスタ１０３と、予測結果を保持するレジスタ１０４と、学習テーブル３０１より読み出した予測値、状態値を保持するレジスタ１０５と、確率推定テーブル２０２より読み出した外れの領域幅を保持するレジスタ１０６と、コンテキストの内容を保持するレジスタ１０７と、復号化対象ラインの２つ前のライン（Ｈ２ライン）がオール白かどうかを示すＨ２フラグ、復号化対象ラインの一つ前のライン（Ｈ１ライン）がオール白かどうかを示すＨ１フラグ及び復号化対象ラインがオール白かどうかを示すＰＩＸフラグを保持するレジスタ１０８を持つ。
【００６３】
［第１実施形態］
第１実施形態は、モデルテンプレートが３ラインの場合である。図２から図５のフローチャートを参照して、図１のＲＯＭ２００中のＪＢＩＧプログラム部２０１Ａの処理について説明する。
【００６４】
図２を参照して、全体の動作について説明する。
【００６５】
まず、１ページ分の復号化処理の先頭で、オール白フラグ（Ｈ２フラグ：２ライン前、Ｈ１フラグ：１ライン前、ＰＩＸフラグ：復号化対象ラインの３個のフラグ）の初期化を行う（Ｓ２０）。
復号化対象ラインが、ページの先頭の場合は、２ライン前及び１ライン前のラインが存在しないが、実際には仮想の白ラインがあるものとする。
【００６６】
次に、典型的予測をするかしないかを判別し（Ｓ２１）、典型的予測をしない場合は、オール白フラグの再設定処理（Ｓ２２）を行う。具体的には、１ライン前のＨ１から２ライン前のＨ２にオール白フラグを代入し、復号化対象のラインのＰＩＸから１ライン前のＨ１にオール白フラグを代入する（Ｓ２２）。
【００６７】
次に、参照ライン（Ｈ２ライン、Ｈ１ライン）がオール白か、オール白でないか判別する（Ｓ２３）。
【００６８】
前記判別処理により、参照ラインの画像データがオール白の場合は、コンテキスト（０）の予測値が白であるかどうかを判別し（Ｓ２４）、予測値が白であれば、オール白用の第１の１ライン復号化処理を行う（Ｓ２５）。
【００６９】
一方、Ｓ２３において前記判別の結果、参照ラインがオール白でない場合、あるいはＳ２４において、予測値が白でない場合は、第２の１ライン復号化処理を行う（Ｓ２６）。
【００７０】
次に、原稿ライン数全部の処理が終了したかを判別し（Ｓ２７）、終了していない場合は典型的予測設定の有り無しに応じて、それぞれＳ２９（ライン一致確認処理）、Ｓ２２（オール白フラグ再設定処理）へ戻り、復号化処理を繰り返す。
【００７１】
典型的予測をする場合には、Ｓ２７に続いて２つのライン（復号化対象ラインと復号化対象ラインの一つ前のライン）が同じかどうかを判別する（Ｓ２９）。前記判別結果が同じでなかった場合は、従来どおりの１ライン復号化処理（Ｓ２１０）を実行し、同じであると判定された場合は、復号化対象ラインＰＩＸを復号化の対象としない。
【００７２】
次に、Ｓ２９又はＳ２１０に続いて、原稿ライン数分の処理が終了したかを判別し（Ｓ２７）、終了していない場合は、ライン一致確認処理（Ｓ２９）へ戻り、復号化処理を繰り返す。
【００７３】
一方、典型的予測をしない場合には、Ｓ２７に続いてオール白フラグ再設定処理（Ｓ２２）に戻る。
【００７４】
以上の処理を原稿ライン数分繰り返すことで復号化処理を行う。
【００７５】
次に、図３を参照して、参照ライン（Ｈ２ライン、Ｈ１ライン）がオール白、コンテキスト（０）の予測値が白の場合のオール白専用の第１の１ライン復号化処理（図２のＳ２５）について説明する。
【００７６】
まず、復号化対象画素の周辺画素を１次元化したコンテキスト（０）をインデックスとして、学習テーブル３０１より予測値、状態値を読み出す（Ｓ３０）。
【００７７】
次に、前記状態値をインデックスとして、確率推定テーブル２０２より、外れの領域幅を読み出し（Ｓ３１）、１画素復号化処理（Ｓ３２）を行う。
【００７８】
次に、前記１画素復号化処理の復号化結果の判別（Ｓ３２）を行い、復号化結果が白の場合は、ライン終了（Ｓ３４）まで１画素復号化処理を繰り返し、最後にオール白フラグＰＩＸをセット（Ｓ３５）して、一連の処理を終了する。
【００７９】
前記復号化結果の判別で、復号化結果が白でない場合は、オール白フラグＰＩＸをリセット（Ｓ３６）して、第２の１ライン復号化処理へ分岐（分岐Ａ）する。
【００８０】
前記ライン終了判定（Ｓ３４）で、ライン終了でない場合は、前記１画素復号化処理中の正規化処理の有り無しに応じて（Ｓ３７）、それぞれＳ３０（予測値、状態値の読み出し処理）、Ｓ３２（１画素復号化処理）へ戻り、復号化処理を繰り返す。
【００８１】
次に、図４を参照して、図３の１画素復号化処理Ｓ３２について説明する。
【００８２】
まず、白黒の順列が現れる確率を示す領域幅から前記外れの領域幅を差し引いて、新しい領域幅に更新する（Ｓ４０）。
【００８３】
次に、前記領域幅の更新処理で領域幅が小さくなり、領域幅を外れの領域幅より大きくする正規化が必要かどうかを判別する（Ｓ４１）。
【００８４】
前記判別結果で正規化が必要な場合は、当たりの確率を示す領域幅を変更し、更新した状態値を学習テーブル３０１に書き込む予測当たり処理（Ｓ４２）、正規化処理を行う（Ｓ４３）。正規化が必要ない場合は、何もせずに１画素復号化処理を終了する。
【００８５】
図２のＳ２５の第１の１ライン復号化処理においては、参照ラインがオール白、コンテキスト（０）の予測値が白であることが判っているため、１画素復号化結果が白でなくなるまで言いかえると黒になるまではモデルテンプレートの値が常に白（０）となり、コンテキストも常に”０”となる。このため、従来ブロック単位毎に行っていた復号化対象画素の周りの周辺画素（モデルテンプレート）の読み出し処理、ブロック判別処理、予測値判別処理が不要となる。
【００８６】
次に、図５を参照して、図２のＳ２６の第２の１ライン復号化処理について説明する。この第２の１ライン復号化処理は、既に説明したように、前記参照ラインのオール白判別処理（Ｓ２３）でオール白でない場合、あるいは前記第１の１ライン復号化処理中に復号化結果が白でない場合に分岐（分岐Ａ）して実行されるものである。
【００８７】
基本的には、従来と同等の処理を行うが、相違点は復号化対象画素の周辺画素の読み出し処理（従来技術の図１６のＳ５１）が本発明においては、オール白フラグチェック（Ｓ５２０）後に行われる（Ｓ５３０）ことである。
【００８８】
また、もう一つの相違点は、１ライン復号化終了後に、復号化したラインがオール白がどうかを判別（Ｓ５８）し、オール白の場合はオール白フラグＰＩＸをセット（Ｓ５９）、オール白でない場合はオール白フラグＰＩＸをリセット（Ｓ５１０）する一連の処理が追加されている点である。
【００８９】
具体的には、前記画像データの読み出し処理の際、オール白フラグの状態をチェック（Ｓ５２０）し、オール白フラグＨ２、Ｈ１がセットされている参照ラインからの画像データの読み出し処理は行わない（Ｓ５３０）。前記オール白フラグのチェックでいずれのフラグもセットされていなければ、画像データの読み出し処理を従来と同じように行う（Ｓ５３０）。
【００９０】
以上の処理を行うことにより、復号化処理速度を向上することができる。
【００９１】
本発明は、ファクシミリで取り扱うことが多い文書画像のように、白目がちの画像に対して、特に有効となることは明らかである。
【００９２】
［第２実施形態］
第２実施形態は、モデルテンプレートが２ラインの場合である。
【００９３】
図６を参照すると、第２実施施形態は、図１で説明した第１実施形態のオール白フラグ初期化（Ｓ６０）、オール白フラグの再設定処理（Ｓ６１）の各処理において、オール白フラグＨ２を使用していない点で異なる。モデルテンプレートが２ラインの場合、参照ラインは復号化対象ラインの一つ前のラインＨ１しかないからである。その他の処理は第１実施形態と同様である。以上の処理を行うことにより、第１実施形態と同様に、復号化処理速度を向上することができる。
【００９４】
［第３実施形態］
第３実施形態は、モデルテンプレートが３ラインの場合である。図７に示すように、典型的予測をする場合に、第１実施形態で説明した参照ラインのオール白判別処理（Ｓ２３）、コンテキスト（０）の予測値判別処理（Ｓ２４）、オール白用の第１の１ライン復号化処理（Ｓ２５）、第２の１ライン復号化処理（Ｓ２６）を適用したものである。
【００９５】
基本的な処理は第１実施形態と同様であるが、オール白フラグの設定処理（Ｓ７０）が追加されている点で異なる。この理由は、典型的予測をする場合に、２つのライン（復号化対象ラインと復号化対象ラインの一つ前のライン）が同じかどうかを判別するライン一致確認処理（Ｓ２９）で２つのラインが同一と判断された場合には１ライン復号化処理を行わないためである。２つのラインが同一と判断された場合には、実際には、一つ前のラインをコピーする処理を行う。
【００９６】
以上の処理を行うことにより、第１実施形態と同様に、復号化処理速度を向上することができる。
【００９７】
［第４実施形態］
第４実施形態は、モデルテンプレートが２ラインの場合である。図８に示すように、第３実施形態のオール白フラグ初期化（Ｓ６０）、オール白フラグの再設定処理（Ｓ６１）の各処理において、オール白フラグＨ２を使用していない点で異なる。モデルテンプレートが２ラインの場合、参照ラインは復号化対象ラインの一つ前のラインＨ１しかないからである。その他の処理は第３実施形態と同様である。以上の処理を行うことにより、第１実施形態と同様に、復号化処理速度を向上することができる。
【００９８】
【発明の効果】
以上説明した本発明によれば、復号化処理速度を向上（従来と比べ、数十％の高速化が見込める）することができる。その理由は、参照ラインがオール白かどうかを判別する処理と、前記判別結果がオール白の場合に、コンテキスト（０）の予測値が白であるかを判別する処理により、オール白ライン用の第１の１ライン復号化処理へ分岐させることで、３ライン分の画像データの読み出し処理、ブロック判別処理、予測値判別処理を削減できるからである。その第２の理由は、前記オール白ライン用の第１の１ライン復号化処理において、復号化結果が白でない（黒）場合に分岐、実行される第２の１ライン復号化処理では、参照ラインがオール白と判っているため、参照ラインからの画像データの読み出し処理が必要ないからである。
【００９９】
また、本発明によれば、復号化処理におけるシステムの消費電力を低減できる。その理由は、画像データ、学習テーブル及び確率推定テーブルの各メモリからの読み出し回数を削減できるからである。
【図面の簡単な説明】
【図１】本発明のＪＢＩＧ復号化方法に使用する復号化装置のブロック図
【図２】本発明の第１実施形態の復号化方法を説明するためのフローチャート
【図３】図２のＳ２５の第１の１ライン復号化処理を説明するためのフローチャート
【図４】図３のＳ３２の１画素復号化処理を説明するためのフローチャート
【図５】図２のＳ２６の第２の１ライン復号化処理を説明するためのフローチャート
【図６】第２実施形態の復号化方法を説明するためのフローチャート
【図７】第３実施形態の復号化方法を説明するためのフローチャート
【図８】第４実施形態の復号化方法を説明するためのフローチャート
【図９】画像データを格納するためのメモリブロックを示す図
【図１０】モデルテンプレートを示す図
【図１１Ａ】コンテキストの一例を示す図
【図１１Ｂ】コンテキストの他の例を示す図
【図１２】コンテキストテーブル即ち学習テーブルの一例を示す図
【図１３】確率推定テーブルを示す図
【図１４】従来のＪＢＩＧ復号化装置のブロック図
【図１５】従来のＪＢＩＧ復号化方法を説明するためのフローチャート
【図１６】図１５のＳ２１０の１ライン復号化処理を説明するためのフローチャート
【図１７】図１６のＳ５４の１画素復号化処理を説明するためのフローチャート
【図１８】図１６のＳ５５の１画素復号化処理を説明するためのフローチャート
【符号の説明】
１００  ＣＰＵ
２００  ＪＢＩＧプログラム及び確率推定テーブル格納ＲＯＭ
３００  学習テーブル格納ＲＡＭ
４００  画像データ格納ＲＡＭ
５００  符号データ格納ＲＡＭ
６００  ＲＡＭ（ＦＩＦＯメモリ）
７００  バス
【図１】
0003705771.tif 000002
【図２】
0003705771.tif 000003
【図３】
0003705771.tif 000004
【図４】
0003705771.tif 000005
【図５】
0003705771.tif 000006
【図６】
0003705771.tif 000007
【図７】
0003705771.tif 000008
【図８】
0003705771.tif 000009
【図９】
0003705771.tif 000010
【図１０】
0003705771.tif 000011
【図１１Ａ】
0003705771.tif 000012
【図１１Ｂ】
0003705771.tif 000013
【図１２】
0003705771.tif 000014
【図１３】
0003705771.tif 000015
【図１４】
0003705771.tif 000016
【図１５】
0003705771.tif 000017
【図１６】
0003705771.tif 000018
【図１７】
0003705771.tif 000019
【図１８】
0003705771.tif 000020