(57)【特許請求の範囲】
【請求項１】
解析した各ラインデータの特徴を比較することによって入力画像データを１つ以上のブロックに分割するブロック化手段と、
データの周期性を推定するブロックデータ解析手段の解析結果に基づいて、各ブロック毎に初期テンプレートを生成する初期テンプレート生成手段と、符号圧縮率ないしエントロピのいずれか若しくは両者を評価関数とする、遺伝的アルゴリズムを用いた最適化方法によって初期テンプレートから最適なテンプレートを生成するテンプレート最適化手段とを備えた、各ブロック毎にテンプレートを決定するテンプレート決定手段と、
前記テンプレートに基づき入力画像データを圧縮する圧縮手段と、
前記圧縮手段の出力データ、前記テンプレート情報、前記ブロック情報を合成する合成手段とを備えた適応予測符号化装置において、
前記テンプレートのデータベースを有し、前記ブロック判定の後にまず該データベース検索を行い、該当するテンプレートが発見されなかった場合、次にディザ分析あるいは相関分析による画像解析を行い、画像解析の結果であるテンプレートを検索キーとして用いてデータベースの再検索を行うものであって、
該再検索時、前記遺伝的アルゴリズムを用いた最適化方法によるテンプレート探索で得られた最適化テンプレートを前記データベースにフィードバックしてデータベースを更新することを特徴とする適応予測符号化装置。
【請求項２】
解析した各ラインデータの特徴を比較することによって入力画像データを１つ以上のブロックに分割するステップと、
データの周期性を推定するブロックデータ解析手段の解析結果に基づいて、各ブロック毎に初期テンプレートを生成する初期テンプレート生成ステップと、符号圧縮率ないしエントロピのいずれか若しくは両者を評価関数とする、遺伝的アルゴリズムを用いた最適化方法によって初期テンプレートから最適なテンプレートを生成するテンプレート最適化ステップとを備えた、各ブロック毎にテンプレートを決定するステップと、
前記テンプレートに基づき入力画像データを圧縮するステップと、
前記圧縮ステップの出力データ、前記テンプレート情報、前記ブロック情報を合成するステップとを備えた適応型予測符号化方法において、
前記テンプレートのデータベースを有し、前記ブロック判定の後にまず該データベース検索を行い、該当するテンプレートが発見されなかった場合、次にディザ分析あるいは相関分析による画像解析を行い、画像解析の結果であるテンプレートを検索キーとして用いてデータベースの再検索を行うものであって、
該再検索時、前記遺伝的アルゴリズムを用いた最適化方法によるに基づくテンプレート探索で得られた最適化テンプレートを前記データベースにフィードバックしてデータベースを更新することを特徴とする適応型予測符号復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は例えば画像情報の各画素のとる値を周囲画素の状態により予測し、その予測結果に基づいて画情報を符号化するデータ符号化方式において、圧縮効果を向上させるために、参照する周囲画素位置のパターンを高速に精度よく最適化するための方式に関する。
【背景技術】
【０００２】
予測符号化方式において、各画素の取る値の予測精度が高いほど圧縮効果が向上する。予測精度は、予測時に参照する画素（参照画素）の数を増やすことにより向上する。また、参照画素の位置パターンを最適化することにより、予測精度を高めることができる。
図２は、画像を構成する各画素が０か１の２値しか取らない２値画像を符号化する方式の国際標準であるＪＢＩＧ（Ｊｏｉｎｔ  Ｂｉ−ｌｅｖｅｌ  Ｉｍａｇｅ  ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の参照画素位置パターンを示す（以降では、このような参照画素位置パターンのことをテンプレートと呼ぶ）。
【０００３】
同図において、網掛けの四角は注目画素、ｐ１〜ｐ９とＡで示される四角は参照画素を示す。全１０個の参照画素のうち、Ａで示す画素はＡＴ（Ａｄａｐｔｉｖｅ  Ｔｅｍｐｌａｔｅ）画素と呼ばれ、画像の性質に応じて、図中に示すほぼ２５６×２５６画素の領域内において任意の位置に動くことが許されている。しかし、このように広大な領域から最適な位置を発見するのは非常に困難で、大きな計算コストを要するために、ＪＢＩＧ方式を実装した多くのシステムでは、ＡＴ画素が同図中の×印で示す８画素の範囲でしか動かないように制限している。なお、ＪＢＩＧ方式の勧告書において、相関強度の最も強い周囲画素を選択する方法が、ＡＴ画素位置を決定する方式として推奨されている。
【０００４】
一般に、文字や図形のような画像を圧縮符号化処理する場合、全参照画素が注目画素の近くに密集配置されているテンプレートが予測精度向上に有効である（電子情報通信学会論文誌ｖｏｌ．Ｊ７０−Ｂ、ｎｏ．７に掲載された加藤らの論文である″参照画素のダイナミック選択による２値画像の適応マルコフモデル符号化″）。よって、上記ＪＢＩＧ方式のテンプレートが有効に機能し、高い精度で注目画素の画素値を予測することができ、結果として高い圧縮率を得ることができる。
【０００５】
しかし自然画の場合には、参照画素を広範囲に分散配置させた方が高い予測精度を得られることが多い。さらに、どのように分散配置すべきかということは画像の性質に大きく依存する。たとえば、クラスター型のディザ法で２値化された画像では、一定周期で相関の強い画素が出現するため、参照画素配置には、絵柄に起因する特性だけでなく、ディザ法に起因する周期性を反映しなければ高い圧縮効率を得ることができない。また、渦巻き型、ベイヤー型、誤差拡散など、他のディザ法で生成された画像にも、それぞれ固有の特性があるため、高い圧縮効率を得るためには、それぞれに応じたテンプレートを使用しなければならない。
【０００６】
ところが、与えられた２値の自然画が、どのようなディザ法で作られたものであるかを判定することは非常に難しい。その上、画像の絵柄に起因する特性も考慮して、最適なテンプレートを簡単な計算により求めることは不可能である。ゆえに、これまでに、高い圧縮効率を得るためのテンプレートを決定する多くの方式が提案されてきた。
【０００７】
たとえば、宇都宮大の加藤らの方式や、米特許５０２３６１１（ルーセント）では、２値画像中で周囲画素のとる値が注目画素のとる値と同一であった回数を数え上げ、圧縮の最中にその値が一定条件を満たした場合、値の大きい周囲画素から順に参照画素としてテンプレートに組み入れる方法を採用している。
【０００８】
特開平６−９０３６３号公報（リコー）では、上記のように逐次的にテンプレートを変更する方式の他に、圧縮する前に画面全体にわたって周囲画素の相関の強さをあらかじめ求めておき、それに基づいてテンプレートを決定する方法や、あらかじめ用意したテンプレートから画像情報に適したものを選択する方式について言及している。
【０００９】
上記３方式のように、注目画素との相関の強さだけに基づく方式では、クラスター型のディザ法で２値化された画像において最適なテンプレートを決定することができない。なぜなら、実際には複数のクラスター間の相関を考慮する必要があるにもかかわらず、１つのクラスター内における画素同士の相関が強いため、単純に相関強度だけに基づいて参照画素を選び出すと、図１（ａ）のように密集したテンプレートとなってしまうためである。
【００１０】
これに対し、特開平５−３０３６２号公報（富士通）では、注目画素までのラン（同一ライン上で同一の画素値が連続する領域）と直前の同一色ランの距離差を周期性として用いる方法が記されている。しかし、この方式は周期性を持たない画像では有効に機能しない。
【００１１】
特開平１１−２４３４９１号公報（三菱重工）では、テンプレートの最適化のために、重回帰分析と、圧縮率を評価関数とした遺伝的アルゴリズムを用いて、網点構造と画像が表現する絵柄に起因する性質の両方への対応を図っている。遺伝的アルゴリズムは、自然界にみられる生物の進化や適応をモデル化した計算方式で、人工知能の強力な探索手法である。これにより膨大な可能性の中から、適切なテンプレートを選び出すことが可能となる。
【００１２】
しかし、この方式には、処理速度が極めて遅いという問題点がある。その理由は、遺伝的アルゴリズムの実装方法にある。遺伝的アルゴリズムは、複数の解候補からなる集団を用意し、それぞれを評価し、評価に基づいて新しい解候補集団を生成するというプロセスを１世代とし、停止条件が満たされるまで何世代も繰り返すという計算手続きをとる。すなわち、１回の試行につき［個体集団サイズ］×［世代数］回の評価を要する。
【００１３】
一方、特開平１１−２４３４９１号公報の方式では、評価方法として圧縮率の計算を使っているために、１回の評価を行うために圧縮対象である画像データを１度符号化して、圧縮率を求なければならない。つまり、同方式でテンプレートを最適化するためには、テンプレートの最適化を行わない場合と比較して、［個体集団サイズ］×［世代数］倍の計算時間が必要となる。たとえば、個体集団サイズを３０、世代数を１００とすると、最適化されたテンプレートを得るためには、遺伝的アルゴリズムを使用しない場合よりも３０００倍長い計算時間が必要となる。
【００１４】
ファクシミリ装置のような画像伝送システムへの適用を鑑みた場合、このように膨大な時間をかけて遺伝的アルゴリズムでテンプレートの最適化をしている間に、無圧縮のデータ転送が完了してしまう。また、印刷用画像データのように数百ギガバイトの画像の圧縮を完了するためには莫大な計算時間が必要となり、とても現実的ではない。
【特許文献１】特開平６−９０３６３号公報
【特許文献２】特開平５−３０３６２号公報
【特許文献３】特開平１１−２４３４９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、予測符号化における上記の問題を解決し、各種画像情報に対して常に高いデータ圧縮効率を得るための、テンプレート（参照画素位置パターン）の高速な適応的調整方式を提供することを目的とする。
【課題を解決するための手段】
【００１６】
このために、本発明は、
（Ａ）入力された画像情報に対してその局所的な類似度に基づいて画像分割を行い、（Ｂ）分割された領域ごとにデータベース、解析処理、高速化機構を有する人工知能技術などを用いたテンプレート最適化により予測精度を高め、
（Ｃ）その最適化結果を用いてデータベースを更新して、次回以降における圧縮効率および速度の向上を図ること特徴とするものである。
【００１７】
以下では、これらの要素について順に説明する。
まず、（Ａ）について述べる。入力された画像情報を適切に分割するということは、同一の領域内では均質で、隣り合う領域同士では異なる性質を持つ領域単位で画像を切り分けることである。分割の例を図１４に示す。こうすることで、同一領域内では無条件に同じテンプレートを用いることができるようになる。さらに、適切に画像分割することで、木目細かなテンプレートの最適化を行えるようになり、分割画像ブロック内での画素値予測の精度が向上するため、結果として全体の圧縮効率が向上する。
【００１８】
分割の仕方を決定する方法は、１パスと２パスに大きく分類される。２パスとは、画像全体を最初に読み込んで、全体に対する解析などを行って分割方法を決定した後、あらためて分割領域ごとに読み込む方式である。画像全体の情報を利用できるため、精度の高い分割の仕方を得ることができる反面、２度にわたってデータの読み込みを行わねばならず、処理速度が低下するという問題がある。逆に１パスでは、画像を読み込みながら、逐次的に分割の仕方を決定する。画像全体の性質を反映した処理を行えないため、必ずしも最適な画像分割は行えないが、処理速度の低下を避けることができる。本発明では、１パス方式をベースに、ラスター方向に読み込んだ画像データをライン毎に分析することにより、適切な画像分割を行う。その詳細および具体的な処理方法については後述の実施例において説明する。
【００１９】
続いて（Ｂ）について述べる。本特許では、従来手法とは異なり、圧縮対象となる画像を生成したディザ方式を仮定しながら統計的処理および分析を行うことで、精度の高いテンプレートを生成する。また、あらかじめ想定されるディザ法とテンプレートの関係を格納したデータベースを用いて、圧縮符号化効率だけでなく、テンプレートを決定するために要する時間を飛躍的に短縮することが可能である。さらに、上記の方法で決定されたテンプレートをベースに、人工知能技術（遺伝的アルゴリズム等）を適用して、画像の絵柄に応じて適応的に調整することによって、より高い予測精度に寄与するテンプレートを得ることができる。画像の大局的な特性を損なうことなく一部分だけを切り出すことで、テンプレート決定の高速化も同時に行う。
【００２０】
最後に（Ｃ）について述べる。（Ｂ）で得られたテンプレートをフィードバックし、データベースを更新することで、使い込むほどに賢くなるデータ圧縮システムを構築できる。すなわち、同様な性質を持つ画像データを繰り返し処理することにより、人工知能技術を適用せずとも、高予測精度に寄与するテンプレートを高速に得ることができるようになる。この仕組みは、自律的に学習するエキスパートシステムと見なすことも可能である。
【発明の効果】
【００２１】
本発明においては、入力された画像情報を均質な領域単位で分割することで、同一領域内では無条件に同じテンプレートを用いることができるようになる。さらに、適切に画像分割することで、木目細かなテンプレートの最適化を行えるようになり、分割画像ブロック内での画素値予測の精度が向上するため、結果として全体の圧縮効率が向上する。
【００２２】
本発明においては、従来手法とは異なり、圧縮対象となる画像を生成したディザ方式を仮定しながら統計的処理および分析を行うことで、精度の高いテンプレートを生成する。また、あらかじめ想定されるディザ法とテンプレートの関係を格納したデータベースを用いて、圧縮符号化効率だけでなく、テンプレートを決定するために要する時間を飛躍的に短縮することが可能である。
【００２３】
また、上記の方法で決定されたテンプレートをベースに、人工知能技術（遺伝的アルゴリズム等）を適用して、画像の絵柄に応じて適応的に調整することによって、より高い予測精度に寄与するテンプレートを得ることができる。画像の大局的な特性を損なうことなく一部分だけを切り出すことで、テンプレート決定の高速化も同時に行う。
【００２４】
更に、得られたテンプレートをフィードバックし、データベースを更新することで、使い込むほどに賢くなるデータ圧縮システムを構築できる。すなわち、同様な性質を持つ画像データを繰り返し処理することにより、人工知能技術を適用せずとも、高予測精度に寄与するテンプレートを高速に得ることができるようになる。
【発明を実施するための最良の形態】
【００２５】
以下、添付図面を参照しながら、本発明の実施例を詳細に説明する。
【実施例１】
【００２６】
図６は、本発明の一実施例に係る画像伝送装置の送信側の構成図を示している。同図において、画像バッファ３は、画像データ入力線２からの入力される画像データ１を一時保存しておくためのものである。保存された画像データは、後述するブロック判定器６からのブロック情報に基づいて、ブロック判定器６、コンテクスト生成器５、テンプレート発生器８、圧縮符号化器１１（いずれも後述）へと、画像データ信号線４を通して出力される。
【００２７】
ブロック判定器６は、入力される画像データを、特徴的なブロック単位に分割し、以降の処理をブロックごとに行わせることで、圧縮符号化効率を高めるためのものである。ブロック判定器６へは、画像データ信号線４を介して画像データが入力され、これを基にブロック分割の仕方が決定され、ブロック情報（各ブロックの大きさと位置）がブロック情報信号線７を通して出力される。なお、ブロック分割の仕方は、ブロック判定器制御信号線１７を通してブロック判定器制御信号を入力することにより、外部から決定・制御することも可能である。
【００２８】
テンプレート発生器８は、入力される画像データに対して、最大の圧縮率に寄与できる最適なテンプレートを決定する。ここへは、画像データ信号線４を経た画像データと、圧縮データ信号線１２を介した圧縮データが入力される。圧縮データは、テンプレート発生器が出力したテンプレートの良さを示す指標として利用される。なお、テンプレート発生器制御信号線１６を通して、外部からテンプレートを強制的に指定し、圧縮符号化を行わせることも可能である。
【００２９】
コンテクスト生成器５は、テンプレート信号線９を介して入力されるテンプレートを用いて、画像データ信号線４を介して入力される画像データにおける参照画素のとる値のパターン（コンテクスト）を取得するためのものである。
【００３０】
ここでコンテクストとはテンプレートにより指定された位置にある画素のとる値を取り出して並べたベクトルのことである。たとえば図１５（ａ）のようなテンプレートでは、網掛けの四角が注目画素、ｐ１〜ｐ４が参照画素の位置を示すものとすると、同図（ｄ）においてｐ１〜ｐ４に対応する画素のとる値は、それぞれｐ１＝０、ｐ２＝１、ｐ３＝１、ｐ４＝１である。よって、これらの値を並べて生成される＜０１１１＞がコンテクストとなる。
【００３１】
コンテクスト生成器では、シフトレジスタを有効に利用することで処理速度を向上することができる。図１５（ａ）のテンプレートの例では、ｐ１、ｐ２、ｐ３が横に並んでいる。このテンプレートが右に１ビットずれると、ｐ２の値がｐ１に移り、ｐ３の値がｐ２に移ることとなる。すなわち、ｐ１〜ｐ３に対応するシフトレジスタを使用することで、テンプレートが右にずれたときにメモリから新規に読み込む必要があるのはｐ３とｐ４の２画素分だけ済む。その結果、メモリアドレスの演算回数を減らすことができるため、処理速度を向上させることができる。
【００３２】
圧縮符号化器１１は、コンテクスト信号線１０を介して入力されるコンテクストを用いて、画像データ信号線４を介して入力される画像データを圧縮符号化し、圧縮データを生成するためのものである。
【００３３】
圧縮符号化済みデータ合成器１３は、圧縮データに対して、それを生成するために使用したテンプレートと、圧縮データの元となったブロック情報を付加して、圧縮符号化済みデータ１５を生成するためのものである。ここへは、ブロック情報信号線７を介してブロック情報、テンプレート信号線９を介してテンプレート、圧縮データ信号線１２を介して圧縮データが入力される。また、当該システムの外部から、画像データに関する属性情報（画像データの解像度、線数、スクリーン角度、画像データを生成したシステム名とバージョン、画像データの作成日時など）を、属性情報入力線１８を介して圧縮符号化済みデータ合成器１３に入力し、圧縮符号化済みデータ１５のヘッダに記録することもできる。
【００３４】
図６に基づいて、画像データの圧縮および圧縮符号化済みデータ１５の出力までの手順を簡単に説明する。
まず、当該システムの外部から、画像データに関する属性情報が属性情報入力線１８を介して圧縮符号化済みデータ合成器１３に入力され、圧縮符号化済みデータのヘッダとして記録される。この属性情報はなくても構わない。
【００３５】
続いて、圧縮対象となる画像データ１が画像データ入力線２を通して画像バッファ３へと入力される。このデータは画像データ信号線４を通してブロック判定器６へと送られる。このとき、画像データの大きさ（縦横サイズ）が判明するので、ブロック情報信号線７を介して圧縮符号化済みデータ合成器１３に送られ、圧縮符号化済みデータ１５のヘッダに記録される。
【００３６】
ブロック判定器６では画像に対するブロック分割の仕方が計算される。なお、たとえば新聞の紙面のように文字領域や写真領域の位置が紙面編集の段階で確定しているような場合には、ブロック判定器で最適なブロック分割の仕方を計算する必要はなく、これを行わないことで処理速度を向上させることができる。すなわち、ブロック判定器制御信号線１７を通して、紙面配置情報をブロック判定器６が読み込むことにより、この処理を高速化可能である。また、紙面配置情報をベースに、さらにブロックを適切に細分化することで、より高い圧縮効率が期待できる。この具体的な処理方法は後述する。
【００３７】
上記の手順で決定されたブロック分割情報は、画像バッファ３へと送られ、画像バッファ３からはブロック単位で画像データがテンプレート発生器８へと送られる。テンプレート発生器８では、図８のフローチャートに示す手順に基づいて、ブロック毎に最適なテンプレートが計算される。このときの処理方法については後述する。なお、フォントサイズの小さな文字領域については、図１（ａ）のように注目画素の周囲に参照画素が密集した形状のテンプレートが有効に機能することが知られているため、テンプレート最適化を行う必要はない。そこで、このように特定のブロックに対する最適なテンプレートがあらかじめ判明している場合には、テンプレート発生器制御信号線１６を介して入力されるテンプレート発生器制御信号により、自動的にテンプレートが決定される。
【００３８】
コンテクスト生成器５では、テンプレート発生器８で計算されたテンプレートを用いて、画像バッファ３から画像データ信号線４を通して送られてくるブロック分割された画像データを走査しながら、各画素毎にコンテクストを抽出する。
【００３９】
圧縮符号化器１１では、画像バッファ３から画像データ信号線４を通して送られてくるブロック分割された画像データの各画素と、上記の手順で得られたコンテクストを用いて圧縮データを生成する。得られた圧縮データは圧縮データ信号線１２を通して圧縮符号化済みデータ合成器１３へと送られ、ブロック判定器６からブロック情報信号線７を通して送られてくるブロック情報と、テンプレート発生器８からテンプレート信号線９を通して送られてくるテンプレートと合成され、各ブロックに関する圧縮情報単位で連結され、圧縮符号化済みデータ１５として圧縮符号化済みデータ出力線１４を通して受信側へと送信される。
【００４０】
なお、圧縮符号化器１１から生成される圧縮データはテンプレート発生器８におけるテンプレート最適化処理において圧縮率の計算に使用されるため、圧縮データ信号線１２を通してテンプレート発生器へも送られる。
【００４１】
図７は、本発明の一実施例に係る画像伝送装置の受信側の構成図を示している。同図において、データ解析器２２は、圧縮符号化済みデータ入力線２１から入力される圧縮符号化済みデータ２０から、ヘッダ部分と、ブロックごとに圧縮された各ブロックに関する圧縮情報（テンプレート、ブロック情報、圧縮データ）を分離し、ブロック情報に基づいてテンプレートと圧縮データを出力するためのものである。
【００４２】
コンテクスト生成器２７は、テンプレート信号線２５を介して入力されるテンプレートを用いて、復号データ信号線２９を介して入力される復号データにおける参照画素のとる値のパターン（コンテクスト）を取得するためのものである。
【００４３】
圧縮符号復号化器２６は、コンテクスト信号線２８を介して入力されるコンテクストを用いて、圧縮データ信号線２５を介して入力される圧縮データを復号化し、復号データを生成するためのものである。
【００４４】
圧縮符号復号化器２６からは、ブロック分割された復号データがパッチワークのように断片的に出力されるため、これらを正しく配列しなければ原画像を復元することはできない。そこで、伸張データ合成器３０は、圧縮符号復号化器２６から復号データ信号線２９を通して入力される復号データを受け取り、データ解析器２１からブロック情報信号線２３を通して受け取るブロック情報に基づいて、復号データを配置しながら蓄積することで伸張データを合成し、伸張データ出力線２８を通して外部へと出力する。
【００４５】
図７に基づいて，圧縮データの復号および伸張データの出力までの手順を簡単に説明する。
まず、圧縮符号化済みデータ入力線２１を介してデータ解析器２２へと圧縮符号化済みデータ２０が入力される。圧縮符号化済みデータ２０のフォーマットは図２４を用いて後述する。データ解析器２２では、圧縮符号化済みデータ２０を解析し、ヘッダ部分と、各ブロックに関する圧縮情報（ブロック情報、テンプレート、圧縮データ）が分離して取り出される。
【００４６】
ヘッダ部分に記録されていた原画像の属性情報は、伸張データ合成器３０へと送られ、そのまま伸張画像ヘッダとなる。また、ヘッダ部分には必ず原画像データの大きさ（縦横サイズ）が記録されており、伸張データ合成器３０はこの情報を用いて、復号データから伸張データの復元を行う。
【００４７】
圧縮データは圧縮データ信号線２４を通して圧縮符号復号化器２６へと送られ、これに対応するテンプレートがテンプレート信号線２５を介してコンテクスト生成器２７へと送られる。圧縮符号復号化器２６では、コンテクスト生成器２７からコンテクスト信号線２８を介してコンテクストを受け取り、これを用いて圧縮データを復号化して、復号データ信号線２９を介して出力する。出力された復号データはコンテクスト生成器２７へと送られ、テンプレートを用いてコンテクストを生成するために使用される。
【００４８】
伸張データ合成器３０へは、圧縮符号復号化器２６から復号データ信号線２９を介して伸張データが入力され、データ解析器２２からブロック情報信号線２３を介して入力されるブロック情報を用いて、パッチワーク状に断片化された画像データとしての復号データの再配置が行われ、伸張データが合成される。伸張データは伸張データ出力線２８を介して外部へと出力される。
【００４９】
図３４は、本発明にかかわる技術をハードウェアも使用して実現した例である。本技術を用いた画像データ圧縮ハードウェアは、プロセッサ、メインメモリ、各種レジスタ、圧縮／伸張処理部から構成される。圧縮時における各要素の動作は以下のとおりである。プロセッサでは、ブロックの判定、テンプレートの生成、およびホスト計算機とのインタフェースを行う。メインメモリは、プロセッサで処理するブロック判定およびテンプレート生成用プログラム、さらに発見されたテンプレートを格納するために用いる。各種レジスタは、プロセッサと圧縮処理部のインタフェースとして使用される。圧縮処理部では、コンテクスト生成、圧縮符号化処理、圧縮符号化済みデータ合成が行われる。なお、圧縮符号化済みデータ合成は、外部のホスト計算機で行ってもよい。
【００５０】
伸張時における各要素の動作は以下のとおりである。プロセッサは、伸張の際にはほとんど使用されず、圧縮データ先頭部分のデータ解析と、ホスト計算機とのインタフェースを行うために使用される。メインメモリには、圧縮時と同様に、プロセッサが実行するデータ解析プログラムを格納される。各種レジスタは、プロセッサと圧縮／伸張処理部とのインタフェースとして働く。圧縮伸張処理部では、コンテクスト生成、圧縮符号復号化処理および伸張データの合成が行われる。なお、伸張データの合成は、外部のホスト計算機で行ってもよい。
【００５１】
以下では、動作について説明する。まず、圧縮の開始時に、ホスト計算機に格納されている圧縮対象画像データに関して、その大きさや解像度などの情報が、画像データ圧縮ハードウェアのプロセッサと圧縮／伸張処理部に送られる。圧縮／伸張処理部では、これらのデータを圧縮符号化済みデータのヘッダに記録する。プロセッサでは、圧縮／伸張処理部と協調して、これらのデータを用いて、ブロック判定およびテンプレート最適化が行われる。
【００５２】
ソフトウェアによる適応型テンプレート調整方式の動作手順を図８に示す。はじめに、全体の流れを概説し、その後、各処理について詳しく説明する。
入力画像データに対して、はじめに、性質の似通った領域単位で別々に圧縮処理を行うために画像分割ｓ１を行う。ここで、画像全体をブロックに分割してしまってもよいし、一部分だけをブロックに分割し、残った部分を後からブロックに分割してもよい。前者は２パス、後者は１パスの処理に相当する。ここでは１パス処理を行うこととする。
【００５３】
画像の一部分が複数のブロックに分割された後、分割された画像ブロックのそれぞれに対してテンプレート最適化ｓ２が行われる。
画像分割ｓ１で生成された画像ブロックの全てに対してテンプレート最適化が行われた後、画像末端に達するまで、残りの部分のブロック分割とブロックごとのテンプレート最適化が行われる。
【００５４】
図９にブロック判定のための画像分割（ｓ１）手続きを示す。水平方向分割ｓ１２では、プロセッサがブロック境界を検知するまで、図３５に示す圧縮／伸張処理部の画像データメモリに１ラインずつ逐次的に読み込まれる。ブロック境界の検知方法は以下のとおりである。
【００５５】
図１０は、水平方向分割ｓ１２のフローチャートを示す。まず、ステップｓ１２１において、１ラインずつ走査しながら、同一色が連続するランの長さを全て記録し、同時に当該ラインの特徴量を計算する。記録されたラン長は垂直方向のブロック分割に使用され、ラインの特徴量は水平方向のブロック分割に使用される。特徴量としては、平均ラン長や同時確率密度（参照可能範囲内にある全ての画素に関して、注目画素と同じ値を持つ確率）に基づくＫＬ（Ｋｕｌｌｂａｃｋ−Ｌｅｉｂｌｅｒ）情報量などを使用する。
【００５６】
そして、注目ラインの特徴量と、その前ラインの特徴量を比較する（ｓ１２２）。ここで両者の差異があらかじめ定められた閾値以上に大きい場合、注目しているライン直前までを同一ブロックであるとし、ブロック境界を検知する。また、閾値を越えていない場合でも、画像末端に達した場合には、そこをブロック境界とする。
【００５７】
同時確率密度について図１５を用いて説明する。同図（ａ）において、ｐ１〜ｐ４の４画素を参照可能範囲にある全ての画素、網掛けの四角が注目画素であるものとする。また、同図（ｂ）の第２ライン目が、現在着目しているラインであるものとする。同時確率密度を求めるためには同図（ｃ）〜（ｅ）のように注目ラインを走査して、各参照画素が注目画素と同じ値を取る確率を計算する。同図（ｃ）では、参照画素ｐ１とｐ４がデータの定義域の外に出てしまっているが、この場合は０であるものとすると、ｐ３のみが着目画素と同じ値を持つ。同様に同図（ｄ）ではｐ２、ｐ３、ｐ４の３画素、同図（ｅ）ではｐ１、ｐ２、ｐ３の３画素が着目画素と同じ値を持ち、同図（ｃ）〜（ｅ）まで１ラインを走査すると、ｐ１〜ｐ４が着目画素と同じ値であった回数は、それぞれ７、７、７、６となり、それぞれの注目画素に対する相関強度を意味する。そして、これを正規化して得られる７／２７、７／２７、７／２７、６／２７が同時確率密度である。
【００５８】
同時確率密度に基づくＫＬ情報量の計算手続きは以下のとおりである。すなわち、Ｘｉを当該ラインの特徴量、Ｙｉを前ラインの特徴量であるとすると、ＫＬ情報量であるＫＬＤは
ＫＬＤ＝ＫＬ（Ｘ）＋ＫＬ（Ｙ）
と計算される。ただし、ここで
ＫＬ（Ｘ）＝Σ｛Ｘｉ×ｌｏｇ（Ｘｉ／Ｙｉ）｝
ＫＬ（Ｙ）＝Σ｛Ｙｉ×ｌｏｇ（Ｙｉ／Ｘｉ）｝
であるものとする。
【００５９】
なお、特徴量の比較を行う際に、前ラインだけの特徴量ではなく、当該ブロックから前ラインまでの全てのラインに関する特徴量を計算しておき、その平均や移動平均、加重平均などと、当該ラインの特徴量と比較することにより精度の高い特徴量比較を行うことができる。
【００６０】
また、特徴量比較における規範として、ＫＬ情報量の他にＭＤＬ（Ｍｉｎｉｍｕｍ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌｅｎｇｔｈ）基準、ＡＩＣ（Ａｋａｉｋｅ’ｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｒｉｔｅｒｉｏｎ）、ベクトル間の距離などを使用してもよい。
【００６１】
さらに、特徴量を求める際に、参照可能範囲内にある全ての画素に関して計算をするのではなく、直前のブロックで使用したテンプレートに含まれる参照画素だけに関して計算を行うことで、高速化を図ることもできる。
【００６２】
水平方向のブロック境界が検知された後、そのブロックをさらに垂直方向に分割することも可能である。図１１は、垂直方向分割（ｓ１３）の詳細な手続きを示す。
まずステップｓ１３１において、垂直分割位置候補の選出を行う。ステップ１２１において記録した、各ラインにおける同一色によるランの長さを参照しながら、全てのラインにおいて垂直分割位置候補を選び出すことができる。
【００６３】
図３３は、幅１６画素、高さ８ラインの画像ブロックの例を示す。第１行目においては、（ａ）、（ｃ）、（ｄ）、（ｆ）、（ｉ）、（ｌ）、（ｎ）、（ｏ）の８箇所が垂直分割位置候補となる。同様に、第２行目は（ｂ）、（ｆ）、（ｉ）、（ｎ）の４箇所が垂直分割位置候補となる。同様の処理を全てのラインに繰り返すことで、各ラインで垂直分割位置候補が選び出される。
【００６４】
続いて、ステップｓ１３２おいて、全ての垂直分割位置候補を、実際に当該ブロックの垂直分割位置として選択するかどうかが検査される。その手順としては、多数決的な手法を使用する。すなわち、あらかじめ与えられた閾値としての選定基準率を０．８とすると、８ライン中７ラインが（ｂ）にランの切れ目を有し、全体の７／８、すなわち割合として０．８以上のラインが（ｂ）を垂直分割位置として支持しているものと見なせる。よって（ｂ）は垂直分割位置として選択される。同様に（ｆ）と（ｎ）は全てのラインが同位置にランの切れ目を有するため（割合として１．０）、これらも当該ブロックの垂直分割位置として選択される。
【００６５】
上記の例では、最小ラン長を１として、長さ１以上のランの切れ目を垂直分割位置候補として選出したが、最小ラン長を２以上に設定してもよい。最小ラン長が小さくなるほど、垂直分割位置選出の感度が高くなるため、垂直分割数が多くなる。逆に、最小ラン長が大きくなるほど、感度が下がるために、垂直分割数は少なくなる。実際、上記の例の場合では、最小ラン長が２以上になると、垂直分割は行われないことになる。
【００６６】
なお、圧縮／伸張処理部内に専用の計算ユニットを配置し、上記の水平および垂直ブロック分割によるブロック判定をプロセッサではなく、この専用計算ユニットで行ってもよい。
【００６７】
ブロック判定の後は、それぞれのブロックに対してテンプレートの最適化（ｓ２）が行われる。テンプレート最適化の計算手続きは図２８の通りである。
まず、ステップｓ２１にてデータベース検索を行う。図６におけるメモリ８Ｍに格納されるデータベースには、あらかじめ登録されたテンプレートのほか、後述のテンプレート探索で得られたテンプレートが記録されている。
【００６８】
データベース検索の結果、登録テンプレートが発見された場合、そのままステップ２８に進む（ｓ２６）。
もし、データベース中に該当するテンプレートが登録されていなければ、次に、画像解析ｓ２２を行う。ここでは、データの周期性などを参照して、統計処理や簡単な計算により、画像データに適したテンプレートを求める。続いて、画像解析ｓ２２の結果であるテンプレートを検索キーとして用いて、データベースの再検索ｓ２７を行う。このとき、デーータベースに該当テンプレートが登録されていようと、いまいと、テンプレート探索を行うかどうかの判断ステップｓ２８に進む。
【００６９】
ステップ２８では、テンプレート探索を行うかどうかの判断がなされる。その判断基準については後述する。もし、テンプレート探索を行わないという判断が下された場合、ステップ２５に進み、テンプレート最適化処理を完了する。
【００７０】
テンプレート探索ｓ２３では、人工知能に基づく探索的手法を用いて、テンプレートの最適化を行う。最後に、テンプレート探索で得られたテンプレートをデータベースに適切に格納する。ここで格納されたテンプレートは、上述のデータベース検索で使用され、精度の高いテンプレートを高速に得るために利用される。
【００７１】
なお、この上記手続きは、上記ブロック分割で得られた分割画像ブロックの全てに対して行われる。また、計算速度を向上させるため、全ての分割画像ブロックではなく、一部の分割画像ブロックを代表例として処理し、その結果を単純に他の分割ブロックに適用するということも可能である。さらに高速化の必要がある場合には、画像解析やテンプレート探索を必要に応じて省略することも可能である。
【００７２】
以降、図２８における各処理ステップについて順に説明する。
図２９は、データベース検索ｓ２１の処理フローである。データベース検索は、ステップｓ２１１において、属性情報が登録内容と照合される。図１６は、テンプレートデータベース構造の一例である。この場合、検索キーとして符号化対象である画像データを生成したシステム、そのバージョン、画像データの解像度、線数、スクリーン角度が使用され、あらかじめ定められた閾値以上に一致度が高い登録テンプレートが選択される。画像解析結果（入力テンプレート）は、図２８におけるデータベース再検索ｓ２７で使用するための検索キーで、ここでは使用しない。データベース検索ｓ２１の結果、適合するテンプレートが発見された場合、ステップｓ２６から、テンプレート探索を行うかどうかの判断ステップｓ２８に進む。ここでの判断規範としては、基準テンプレートを用いた場合と比較して、（ａ）圧縮率が一定閾値以上高いかどうか、（ｂ）テンプレートに含まれる各画素の相関強度（後述）の総和が一定閾値以上高いかどうか、などを用いる。通常は（ａ）を用いるが、少しでも処理時間を短縮したい場合には（ｂ）を使用してもよい。
ここで、基準テンプレートとしては、ＪＢＩＧおよびＪＢＩＧ２方式のデフォルトテンプレートを使用する。データベース検索で２番目に適合したテンプレート、あるいは、既に処理済のブロックで最終的に使用されたテンプレートなどを使用してもよい。
【００７３】
このとき、計算時間を短縮するために、画像の対象ブロックの一部分だけを切り出して生成される画像、行および列に関して一定規則に基づいて間引いて生成された画像を使用してもよい。
【００７４】
なお、強制的にテンプレート探索を行わせるか、行わせないかどうかの判断を、オペレータや外部システムにより下すことも可能である。
ステップｓ２８において、テンプレート探索を行うという判断が下されたときは、そのままステップｓ２３でテンプレート探索を行い、行わないという判断が下された場合は、ステップｓ２５に進んで、テンプレート最適化処理を完了する。テンプレート探索については後述する。
【００７５】
データベース検索ｓ２１の結果、適合するテンプレートが発見されなかった場合は、図２８のステップｓ２６を経て、画像解析ｓ２２に進む。
図３０は、画像解析の処理フローである。ここでは、ディザ分析ｓ２２１を試み、それが可能だった場合はそのまま終了し、それができなかった場合には相関分析ｓ２２３を行ってから終了する。
【００７６】
ディザ分析は、ディザ画像を生成する際に使用するディザマトリクスに起因する周期性を利用する。この手順は下記のとおりである。まず、参照可能範囲にある全ての画素について、注目画素との相関を計算する。次に、注目画素から一定距離以上離れている周囲画素のうち、最も相関の強い画素を一つ選び出す。
【００７７】
符号化対象の画像がディザマトリクスを使用して生成されたディザ画像である場合、相関の強い画素同士は一定角度傾き、特定の辺の長さを持つ正方形の頂点に配置されるため、注目画素から選び出された画素までの距離と方向は、図１８（ａ）の関係性を満たしている蓋然性が高い。同図において、網掛けの四角は注目画素、×印の四角は注目画素から一定距離以上離れた画素のうちで最も大きな相関強度を持つ画素、空白の四角はこれらの関係性から強い相関を持つと推定される画素を示す（これらを理想配置画素と以降では呼ぶ）。そこで、理想配置画素の中から参照画素を選択することで、単純な相関強度に基づく参照画素の選択方法よりも精度よくテンプレートを決定することが可能となる。
【００７８】
もし、参照可能範囲に存在する理想配置画素数ｍが、テンプレートを構成する参照画素数ｎよりも多い場合、注目画素からの距離が小さい順にｎ個の理想配置画素を選択し、初期テンプレートの構成参照画素として採用する。例えば図１８（ａ）のような理想配置画素かつ参照画素数ｎ＝１０の場合、ｐ１〜ｐ１０までの理想配置画素が参照画素として選択される。
【００７９】
逆に、参照可能範囲に存在する理想配置画素数ｎがテンプレートを構成する参照画素数ｍよりも少ない場合は、注目画素の隣接画素と、理想配置画素の隣接画素の中から、注目画素からの距離が小さい順に参照画素を選択する。例えば図１８（ａ）のような理想配置画素かつ参照画素数ｎ＝１６の場合、ｐ１〜ｐ１３までの理想配置画素をテンプレートに採用し、なお不足する参照画素を補充するため、相関強度の強い順に３つの参照画素を選択する。
【００８０】
ところが、参照可能範囲が狭すぎて十分な数の理想配置画素数を包含できない場合、あるいは参照可能範囲に対する理想配置画素間の距離が極めて大きい場合、一般に相関強度の強い画素は注目画素近傍に集まりやすいため、理想配置画素以外の参照画素は全て注目画素近傍から選ばれることになる可能性が高い。
【００８１】
図１８（ｂ）は参照可能範囲が狭すぎる場合の例である。ここで参照画素数ｎ＝１６とすると、理想配置画素ｐ１〜ｐ７以外の９個の参照画素は全て注目画素近傍から選ばれる可能性が高い。同図（ｂ）中では、注目画素近傍の添え字のない空白の四角で示される画素が、不足分を補充するための参照画素として選択される。しかし、これでは参照画素同士が密集しすぎているため、自然画に対して有効に機能できない。
【００８２】
このような状況を避けるため、以下に説明するような方式でテンプレートを決定する。すなわち、まず、注目画素に隣接する画素のうちで注目画素との相関が最も強い画素を参照画素として採用する。次に、注目画素から近い順に理想配置画素を選び、それと隣接する画素のうちで注目画素との相関が最も強い画素を参照画素として採用する。図１８（ｂ）の例の場合、ここまでの手順で、注目画素の隣接画素、７個の理想配置画素とそれぞれ１つずつの隣接画素の、合計１５（＝１＋７×２）個の参照画素が決定される。これでもまだ総参照画素数よりも少ない場合は、注目画素に隣接する画素から２つ目の参照画素を採用し、さらに理想配置画素に隣接する画素からもそれぞれ２つめの参照画素を採用するプロセスを、採用した参照画素数がテンプレートを構成する総参照画素数に達するまで繰り返す。
【００８３】
なお、上記ディザ分析において、相関強度の代わりに、画像分割を行うときに計算してある同時確率密度を使用し、計算時間を大幅に短縮することができる。
以上の手続きにより、ディザ分析が完了する。なお、あらかじめディザマトリクスが判明している場合には、その大きさから周期性や相関パターンを明確に検出することができるので、理想画素配置の計算を省略することが可能である。
【００８４】
図３０のステップｓ２２３では、ディザ分析が上手く機能しない場合に相関分析を行う。なお、相関強度を計算する際、通常は分割画像ブロックを構成する全ての画素を走査するが、計算を省略することで高速化することが可能である。すなわち、数画素おき、数ラインおきに走査すること、あるいは一部の領域内だけを走査することにより計算速度を向上させられる。高速化のためには、分割画像ブロック内の、さらに一部分だけを限定して走査してもよい。
【００８５】
相関分析ｓ２２３では、まず、参照可能範囲にある全ての画素について、注目画素との相関を計算する。そして、テンプレートがｎ画素から構成される場合、相関の強い順にｎ個の画素を選び出して初期テンプレートに採用し、画像解析手続きを完了する。
【００８６】
ところで、高周波成分が非常に強い画像において、単純に相関強度の大きさに基づく選択基準を用いると、図１（ａ）のように、注目画素周囲に参照画素が密集してしまう。このようなテンプレートは文字領域では有効であるものの、自然画には不適切であることはすでに述べた。そこで、相関の強い画素から単純に選び出す方法に基づきながら、より参照画素の配置を広く分散させることが必要となる。
【００８７】
そのための方法の一例を、図１７（ａ）を用いて説明する。同図中、網掛けの四角は注目画素、空白の四角は相関強度が０の画素、数字が入力された四角はその数字を相関強度として持つ画素である。この例では、テンプレートは３つの参照画素から構成されるものとする。ここで、参照画素が単純に相関強度の大きさだけを基準として選び出させる場合には、相関強度が１００、９０、８０の画素がテンプレートを構成することになる。しかし、参照画素として選び出された画素の隣接画素の相関強度を強制的に減少させることにより、異なるテンプレートが生成される。
【００８８】
すなわち、参照画素として選び出された画素の隣接画素の相関強度を、そのたびに９０％に減少させるものとすると、相関強度が１００、９０の２つの画素が選び出された後の状態は図１７（ｂ）のようになる。図１７（ａ）で相関強度が８０であった画素は、相関強度１００、９０の２画素が選び出されることにより、その相関強度は８０×０．９×０．９＝６４．８にまで減少する。したがって、この場合の３つ目の参照画素としては、相関強度が７０の画素が選ばれることになる。
【００８９】
なお、上記相関分析において、相関強度の代わりに、画像分割を行うときに計算してある同時確率密度を使用し、計算時間を大幅に短縮することができる。
検索キーとしての画像解析結果（入力テンプレート）に適合するテンプレートがデータベース中に登録されているということは、現在圧縮処理しようとしている画像データと、非常に統計的性質の似通った画像データに関して、これまでに圧縮処理を行った経験があるということを意味している。すなわち、そのときのテンプレート探索結果である登録テンプレートを利用することによって、テンプレート探索結果に要する計算時間を省きつつ、画像解析結果そのままより有効に機能するテンプレートを得ることができる。
【００９０】
ただし、ある画像で有効に機能したテンプレートが、その画像と統計的性質が非常に似通った画像でも有効に機能するということの蓋然性は高いものの、保証されるものではない。たとえば、誤差拡散法で処理されたディザ画像では、絵柄によらず、統計的手法で決定した参照画素は図１（ａ）のように密集配置されやすい。そこで、そのような状況があらかじめ想定される場合には、データベース検索における適合度の閾値を高く設定しておけばよい。また、ディザ方式により異なる閾値を設定しておけば、自動的に上記問題を解消することも可能である。
【００９１】
ここまでが、図２８における画像解析ｓ２２の動作説明に関する説明である。つづいて、データベース再検索ｓ２７について述べる。
上述のデータベース検索ｓ２１とは異なり、ここでは検索キーとして画像解析結果（入力テンプレート）だけを使用し（図１６参照）、一定閾値以上適合した登録テンプレートを出力する。
【００９２】
データベース再検索の後は、ステップｓ２８において、テンプレート探索を行うかどうかの判断が下されるが、この処理手順は上述のとおりである。
つづいて、テンプレート探索ｓ２３について述べる。
【００９３】
図３１のフローチャートに例示されるように、テンプレート探索ｓ２３の処理手順は２段階の処理からなる。第１段階では、画像解析ｓ２２で得られたテンプレートを初期状態として用いて遺伝的アルゴリズムｓ２３１を実行し、テンプレートの最適化を行う。その後、第２段階で、得られたテンプレートを局所探索ｓ２３２にてさらに調整し、処理を完了する。
【００９４】
まず、遺伝的アルゴリズムｓ３０１について説明する。遺伝的アルゴリズムの参考文献としては、例えば、出版社ＡＤＤＩＯＮ−ＷＥＳＬＥＹ  ＰＵＢＬＩＳＨＩＮＧ  ＣＯＭＰＡＮＹ、ＩＮＣ．が１９８９年に出版した、Ｄａｖｉｄ  Ｅ．Ｇｏｌｄｂｅｒｇ著の「Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍｓ  ｉｎ  Ｓｅａｒｃｈ、Ｏｐｔｉｍｉｚａｔｉｏｎ、ａｎｄ  Ｍａｃｈｉｉｎｅ  Ｌｅａｒｎｉｎｇ」がある。
【００９５】
一般的な遺伝的アルゴリズムでは、まず遺伝子を持つ仮想的な生物の集団を設定し、あらかじめ定めた環境に適応している個体が、その適応度の高さに応じて生存し、子孫を残す確率が増えるようにする。そして、遺伝的操作と呼ばれる手順で親の遺伝子を子に継承させる。このような世代交代を実行し、遺伝子および生物集団を進化させることにより、高い適応度を持つ個体が生物集団の大勢を占めるようになる。そしてその際の遺伝的操作としては、実際の生物の生殖においても生じる、遺伝子の交叉、および突然変異等が用いられる。
【００９６】
図１２は、かかる遺伝的アルゴリズムの概略手順を示すフローチャートであり、ここでは、初めにステップｓ２３１１で、個体の染色体を決定する。すなわち、世代交代の際に親の個体から子孫の個体に、どのような内容のデータをどのような形式で伝えるかを定める。図１９に染色体を例示する。ここでは、対象とする最適化問題の変数ベクトルｘを、Ｍ個の記号Ａｉ（ｉ＝１、２、…、Ｍ）の列で表わすことにし、これをＭ個の遺伝子からなる染色体とみなす。図１９中、Ｃｈは染色体、Ｇｓは遺伝子を示し、遺伝子の個数Ｍは５である。遺伝子の値Ａｉとしては、ある整数の組、ある範囲の実数値、単なる記号の列などを問題に応じて定める。図１９の例では、ａ〜ｅのアルファベットが遺伝子である。このようにして記号化された遺伝子の集合が個体の染色体である。
【００９７】
上記ステップｓ２３１１では次に、各個体が環境にどの程度適応しているかを表わす適応度の計算方法を決定する。その際、対象とする最適化問題の評価関数の値がより高い変数あるいはより低い変数ほど、それに対応する個体の適応度が高くなるように設計する。またその後に行う世代交代では、適応度の高い個体ほど、生き残る確率あるいは子孫を作る確率が他の適応度の低い個体よりも高くなるようにする。逆に、適応度の低い個体は、環境にうまく適応していない個体とみなして、消滅させる。これは、進化論における自然淘汰の原理を反映したものである。すなわち適応度は、生存の可能性という面から見て各個体がどの程度優れているかを表わす尺度となる。
【００９８】
遺伝的アルゴリズムでは、探索開始時においては、対象とする問題は一般にまったくのブラックボックスであり、どのような個体が望ましいかはまったく不明である。このため通常、初期の生物集団は乱数を用いてランダムに発生させる。従ってここにおける手順でも、ステップｓ２３１２で処理を開始した後のステップｓ２３１３では、初期の生物集団は乱数を用いてランダムに発生させる。なお、探索空間に対して何らかの予備知識がある場合は、評価値が高いと思われる部分を中心にして生物集団を発生させるなどの処理を行うこともある。ここで、発生させる個体の総数を、集団の個体数という。
【００９９】
次にステップｓ２３１４で、生物集団中の各個体の適応度を、先にステップｓ２３１１で決めた計算方法に基づいて計算する。各個体について適応度が求めた後、次にステップｓ２３１５で、次世代の個体の基となる個体を集団から選択淘汰する。しかしながら選択淘汰を行うだけでは、現時点で最も高い適応度を持つ個体が生物集団中に占める割合が高くなるだけで、新しい探索点が生じないことになる。このため、次に述べる交叉と突然変異と呼ばれる操作を行う。
【０１００】
すなわち、次のステップｓ２３１６では、選択淘汰によって生成された次世代の個体の中から、所定の発生頻度で二つの個体のペアをランダムに選択し、染色体を組み変えて子の染色体を作る（交叉）。ここで、交叉が発生する確率を、交叉率と呼ぶ。交叉によって生成された子孫の個体は、親にあたる個体のそれぞれから形質を継承した個体である。この交叉の処理によって、個体の染色体の多様性が高まり進化が生じる。
【０１０１】
交叉処理後は、次のステップｓ２３１７で、個体の遺伝子を一定の確率で変化させる（突然変異）。ここで、突然変異が発生する確率を突然変異率と呼ぶ。遺伝子の内容が低い確率で書き換えられるという現象は、実際の生物の遺伝子においても見られる現象である。ただし、突然変異率を大きくしすぎると、交叉による親の形質の遺伝の特徴が失われ、探索空間中をランダムに探索することと同様になるので注意を必要とする。
【０１０２】
以上の処理によって次世代の集団が決定され、ここでは次に、ステップｓ２３１８で、生成された次世代の生物集団が探索を終了するための評価基準を満たしているか否かを調べる。この評価基準は、問題に依存するが、代表的なものとして次のようなものがある。
【０１０３】
・生物集団中の最大の適応度が、ある閾値より大きくなった。
・生物集団全体の平均の適応度が、ある閾値より大きくなった。
・生物集団の適応度の増加率が、ある閾値以下の世代が一定の期間以上続いた。
・世代交代の回数が、あらかじめ定めた回数に到達した。
【０１０４】
上述の如き終了条件の何れかが満たされた場合は、探索を終了し、その時点での生物集団中で最も適応度の高い個体を、求める最適化問題の解とする。終了条件が満たされない場合は、ステップｓ２３１４の各個体の適応度の計算の処理に戻って探索を続ける。このような世代交代の繰り返しによって、集団の個体数を一定に保ちつつ、個体の適応度を高めることが出来る。以上が一般的な遺伝的アルゴリズムの概略である。
【０１０５】
上で述べた遺伝的アルゴリズムの枠組みは、実際のプログラミングの詳細を規定しない緩やかなものとなっており、個々の問題に対する詳細なアルゴリズムを規定するものではない。このため、遺伝的アルゴリズムを本実施例のテンプレート最適化に用いるには、以下の項目をテンプレート最適化用に実現する必要がある。
（ａ）染色体の表現方法
（ｂ）初期個体集団の発生方法
（ｃ）個体の評価関数
（ｄ）選択淘汰方法
（ｅ）交叉方法
（ｆ）突然変異方法
（ｇ）探索終了条件
【０１０６】
図２０は、本実施例における染色体の表現方法を示す。同図は、テンプレートを構成する参照画素数をｎ個、参照可能範囲を２５６×２５６画素の領域とした場合の例である。ただし、本実施例における参照可能範囲の広さは任意であり、あらかじめ定めておけば、どのような参照可能範囲でもよい。
【０１０７】
このとき、染色体は、それぞれが１つの参照画素に対応するｎ個の部分に分けられる。また各部分はさらに２つに分けられ、参照画素のｘ座標とｙ座標位置を特定することとなる。例では、参照可能範囲の大きさはｘ方向、ｙ方向ともに２５６であるため、それぞれ８ビットの２進数表現される。
【０１０８】
なお、染色体における参照画素の座標位置を２進数ではなくグレイコードで表現することも可能である。
またさらに、｛０、１｝の２進数あるいはグレイコードで染色体を表現するのではなく、参照画素位置の座標を示す整数で染色体を構成することも可能である。つまり、この場合には同図（ｂ）におけるｘ座標値とｙ座標値がともに｛０、…、２５５｝の値をとる。
【０１０９】
本実施例では、図２８における画像解析ｓ２２において、分割画像ブロックごとに、分析的・解析的な手法を用いて初期テンプレートを決定している。そこで、この初期テンプレートを個体集団に埋め込んで、遺伝的アルゴリズムにおける初期個体集団を生成する。
【０１１０】
図２６は、６つの染色体から構成される個体集団への、初期テンプレートの埋めこみ方の例を示す模式図である。同図（ａ）は、全ての染色体をランダムに初期化する方法であり、通常の遺伝的アルゴリズムと同じである。同図（ｂ）は、初期テンプレートを染色体表現に変換したものをマスター染色体とし、これを個体集団の第１染色体にコピーして、残る５つの染色体をランダムに初期化する方法である。マスター染色体を第１染色体だけでなく、個体集団内の任意の個数の染色体にコピーしてもよい。
【０１１１】
図２６（ｂ）の方法で個体集団を初期化する場合、マスター染色体を個体集団にコピーする数が多いほど探索速度が向上するが、反面、個体集団の多様性が小さくなるために、最適なテンプレートを発見する以前に進化が止まってしまう可能性が高くなる。このような場合、数多くのマスター染色体を個体集団にコピーするのではなく、マスター染色体に突然変異を施した染色体をコピーすることで、個体集団の多様性を維持することができる。
【０１１２】
同図（ｃ）は上記の方法の一例を示す模式図である。ここでは、マスター染色体を突然変異させた染色体を３つ生成し、個体集団の第１染色体にはマスター染色体をコピーし、第２〜第４染色体にはマスター染色体を突然変異させて得られた３つの染色体をそれぞれコピーし、残る２つの染色体だけをランダムに初期化する方法である。個体集団内の複数の染色体にマスター染色体をコピーしてもよく、マスター染色体を突然変異させて得られる染色体の個数も任意であり、どちらもパラメータで制御可能としておく。
【０１１３】
本実施例において、遺伝的アルゴリズムにおける個体の評価関数Ｆとしては、個体が特定するテンプレートを用いて入力画像を圧縮符号化してえられる圧縮データの大きさの逆数であるものとする。たとえば、圧縮データの大きさが１ＫＢｙｔｅとなったばあい、適応度の値は１／（１×１０２４）とする。
【０１１４】
遺伝的アルゴリズムは、評価関数Ｆを最大化するように振る舞うため、圧縮データの大きさの逆数が最大化されることにより、圧縮データの大きさを最小化するテンプレートを表現する個体が探索されることとなる。
【０１１５】
なお、染色体の適応度を示す指標は、圧縮データの大きさの逆数だけでなく、圧縮データが小さくなるほど大きくなるという性質をもつものであれば何でもよい。たとえばある特定の値から圧縮データの大きさを差し引いて得られる値を適応度として用いることもできる。
【０１１６】
なお、適応度を計算するために圧縮データの大きさを用いるということは、大きな計算コストを必要とするため、入力画像全てを適応度計算のために圧縮する代わりに、数画素おき、数ラインおきに間引いた縮小画像を圧縮することもできる。入力画像の一部を切り出して、切り出し領域だけを圧縮して、適応度を計算してもよい。このような間引きや切り出しにより評価関数の精度は落ちるものの、計算時間を大きく節約することが可能となる。
【０１１７】
この精度低下は、世代毎に間引き方や切り出し領域を少しずつずらすことで、抑制することができる。たとえば、ｍ×ｍの領域に切り出して評価を行う場合、世代が変わるごとに縦および横方向に１ビットずらすと、切り出し領域の大部分である（ｍ−１）×（ｍ−１）領域は、前世代で使用した切り出し領域と重なっている（図３における網掛け領域）。よって、前世代において優れていると評価された染色体（テンプレート）は、新しい切り出し領域でも高く評価される蓋然性が高い。その上、切り出し領域をずらさなかった場合と比較して、（２×ｍ−１）だけ広い領域を評価に使用できたことになる。よって、この処理を繰り返すことで、より広い領域が評価に使用されるため、切り出し処理に起因する評価関数の精度低下を抑制することが可能となる。
【０１１８】
上記の例では、ずらし量を１ビットとしているが、この値が大きいほど、より広い領域を評価に使用することができ、評価関数の精度低下も小さくなる。ただし、その分だけ、前世代で切り出した領域との重なりも小さくなってしまうため、探索速度が低下してしまう。よって、切り出し領域の大きさに応じて、ずらし量も変更する必要がある。
【０１１９】
さらに、切り出しと間引きの両者を併用することで、評価関数の精度低下をさらに抑えることもできる。すなわち、対象としている分割画像ブロックの大きさに対して、切り出し領域の大きさが小さすぎる場合、ブロック全体を包含するように切り出し領域をずらし、走査するためには、非常に長い時間がかかる。その点、間引き方式では、隣接画素間の関係性が失われてしまうが、大域的な統計的性質を保持しやすいという利点がある。よって、両者を併用して組み合わせることで、お互いの欠点を補うことができる上、切り出し領域を小さくし、間引き間隔を広げることによる評価関数の精度低下を大きく抑制できる。
【０１２０】
本実施例では、切り出し領域サイズを２５６×２５６、ずらし量を１ビットとしている。また、間引き間隔については、切り出し領域の縦，横サイズをそれぞれＨ、Ｗとすると、縦方向に（Ｈ／２５６）、横方向に（Ｗ／２５６）としている。さらに、間引きによるサンプリングの偏りを抑えるため、オフセット（１ライン目の位置）を縦横方向それぞれランダムに１ビットずつ移動させている。
【０１２１】
なお、評価関数として、圧縮データの大きさの代わりに、エントロピを使用することもできる。情報理論的には、エントロピを最小化することと圧縮データの大きさを最小化することは等価であるため、理想状態において両者は区別されない。さらに、エントロピ計算においても、上記のような間引きや切り出しを用いてもよい。
【０１２２】
選択処理においては、集団から適応度に比例した確率で個体を選び出す作業を、集団の個体数分だけ行う（ルーレット選択）。これにより、新しい個体集団が生成される。ルーレット選択のほか、トーナメント選択やランク選択と呼ばれる手法を用いてもよい。
【０１２３】
交叉処理では、集団からランダムに選ばれた２つの親個体Ａ、Ｂに対して、図２１（ａ）の説明図に示す方法を用いる。これは染色体をランダムな位置で座標値を一塊として部分的に入れ替える操作であり、一点交叉と呼ばれる手法である。図２１（ａ）では、Ｃｈ１およびＣｈ２が親個体Ａ、Ｂの染色体であり、ここにおける交叉処理では、これらの染色体を、ランダムに選んだ交叉位置ＣＰで切断する。図２１（ａ）の例では、左から２番目の遺伝子と３番目の遺伝子の間を交叉位置としている。そして、切断した部分的な遺伝子型を入れ替えることによって、染色体Ｃｈ３およびＣｈ４をそれぞれ持つ子個体Ａ’、Ｂ’を生成する。
【０１２４】
なお、交叉時に対として選択された２つの染色体が全く同じビット列である場合、１つの染色体集団に同一の染色体が含まれていることによる探索速度低下を避けるため、一方だけに、後述する突然変異を施す。
【０１２５】
ところで、テンプレートは図２０のように染色体表現されているため、同図（ｂ）に示すように、１６ビット単位で意味のある情報ブロックが染色体に含まれていると見なすことができる。そこで、交叉時には、この上記情報ブロックの切れ目以外の箇所にＣＰが選ばれる確率を低く抑えることにより、意味のある情報ブロックが交叉により壊されてしまうのを防ぐことができるようになり、探索速度が向上するものと期待される。
【０１２６】
しかし、その反面、交叉によって新しい情報ブロックが生成される確率も低下するため、探索が収束しやすいという副作用が生じる。そこで、情報ブロックの切れ目以外の箇所にＣＰが選ばれる確率を、ＧＡによる探索の初期段階では大きくしておき、世代の進行に従って小さくし、最終的には全てのＣＰ候補位置が等確率で選択されるようにすることで、探索初期段階での意図しない収束を避けることができる。なお、以上の方法は、一点交叉だけでなく、二点交叉や多点交叉，一様交叉においても使用することが可能である。
【０１２７】
さらに、交叉時に対となった２つの染色体が示すテンプレートが共通して持つ参照画素を考慮して交叉を行うことで、探索速度を向上させることが可能である。例として、図４（ａ）のようなテンプレートを考える。同図で？印は注目画素、網掛けの四角は参照画素を示す。このテンプレートは、同図（ｂ）に示す染色体で表現される（情報ブロック単位で値を表現し、交叉点ＣＰは、情報ブロックの切れ目だけに限定している）。
【０１２８】
さらに、（ｃ）も全く同じテンプレートを示す染色体である。ここで、この２つの染色体を、第２と第３の情報ブロックの切れ目をＣＰとして交叉させたときの例が（ｄ）である。このように、全く同じテンプレートを示す染色体でありながら、交叉の結果として生成された染色体は全く異なるものとなってしまい、探索速度の低下の原因となる。
【０１２９】
そこで、２つの染色体が示すテンプレートにおいて、共有されない参照画素に相当する情報ブロックを染色体から抜き出し、その部分だけで交叉を行い、結果を元の染色体に戻す操作を行う。図５を用いて、この操作について説明する。同図（ａ）のような２つの染色体を交叉する場合を仮定する。両者は参照画素１９と２８を共有している（ここで、参照画素番号は図４（ａ）を参照）。そこで、これら共有参照画素に対応する情報ブロック以外の情報ブロックだけを抜き出したものが同図（ｂ）である。つづいて、抜き出された部分染色体を交叉する。同図（ｃ）は第２と第３の情報ブロックの切れ目をＣＰとして１点交叉した結果である。最後に、抜き出され、交叉を施された部分染色体を、元の染色体に書き戻す。その結果が同図（ｄ）である。
【０１３０】
なお、上記のテンプレート表現に基づく交叉において、抜き出された部分染色体の長さが０である場合、２つの染色体は全く同一のテンプレートを表現していることを示す。このような場合、前述のように、１つの集団に全く同一のテンプレートが含まれていることによる探索速度低下を避けるため、一方だけに、後述の突然変異を施すことにする。
【０１３１】
交叉に引続いて実行する突然変異は、全染色体の全遺伝子の値を突然変異率に従って反転させる操作とした。図２１（ｂ）に突然変異の例を示す。この図では、染色体Ｃｈ５において、２番目の遺伝子の値が突然変異率に基づく確率で反転している。
【０１３２】
なお、｛０、１｝の２値ではなく、整数で染色体を表現している場合はビット反転できないため、染色体の各遺伝子にガウス分布Ｎ（０、σ）に従って発生させた正規乱数を加算する操作を行う。ガウス分布以外のコーシー分布などの他の分布を用いてもよい。
【０１３３】
突然変異をビット単位で行うのではなく、上記の情報ブロック単位で行うことも可能である。すなわち、図２０（ｂ）の場合、各情報ブロックは１６ビットで構成されるため、０〜６５５３５までの正数値を示す。そこで突然変異では、一定の突然変異率で、各情報ブロックを±（１〜α）だけ増減させる。ここで、αの値が小さいほど突然変異による影響が弱くなり、ＧＡによる探索速度は向上するが、小さすぎると、探索の初期段階で収束してしまい、よいテンプレートを得ることができなくなる。逆に、α値が大きいと、意図しない探索の収束を避けることができるが、探索速度は低下する。そこで、探索の初期段階ではαの値を大きくしておき、世代の進行に応じて徐々にα値を小さくする。これによって、探索初期段階での意図しない収束を抑制しつつ、探索終盤での探索速度を向上させることができるようになる。
【０１３４】
さらに、同様の処理を、各情報ブロックを構成するｘ座標とｙ座標のそれぞれに対して、別々に施すことも可能である。こうすることで、より微妙な突然変異率の調整が可能となる。
【０１３５】
安定状態（Ｓｔｅａｄｙ  Ｓｔａｔｅ）遺伝的アルゴリズムを使用することも可能である。すなわち、集団中から最良の個体とランダムに選択された個体の２個体を選び出し、それらが交叉して生成される子個体の一方に突然変異を施したものを、集団中で最も評価の低い個体と置換する方式である。各世代で１個体しか置き換わらないため、少ない個体数でも、局所解に陥りにくいという性質を持つ。さらに、交叉と突然変異で生成された個体の適応度が、集団中で最も評価の低い個体の適応度よりも高い場合にのみ、置換を許すことにより、探索速度を高めることも可能である。
【０１３６】
テンプレート最適化のために、遺伝的アルゴリズムの代わりに、進化戦略や山登り法、焼きなまし法、タブーサーチ、貪欲法などの所謂ブラインドサーチ手法を適用することもできる。特に山登り法と焼きなまし法は遺伝的アルゴリズムほどの高い探索能力を持たないが、処理が高速というメリットがある。なお、上記ブラインドサーチ方式において、評価関数として圧縮データの大きさとエントロピどちらを用いてもよい。
【０１３７】
なお、進化戦略の参考文献としては、例えば、出版社Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓが１９９５年に出版した、Ｈ．Ｐ．Ｓｃｈｗｅｆｅｌ著の「Ｅｖｏｌｕｔｉｏｎ  ａｎｄ  Ｏｐｔｉｍｕｍ  Ｓｅｅｋｉｎｇ」がある。
【０１３８】
また焼きなまし方の詳細は、例えば、出版社Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓが１９９５年に出版した、Ｅ．Ａａｒｔｓ  ａｎｄ  Ｊ．Ｋｏｒｓｔ著の「Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ  ａｎｄ  Ｂｏｌｔｚｍａｎｎ  Ｍａｃｈｉｎｅｓ」に開示されている。
【０１３９】
つづいて、図３１における局所探索ｓ２３２の説明を行う。
遺伝的アルゴリズムは、非常に強力な探索手法であるが、探索手続きの終盤で、最適解あるいは局所解近傍において探索速度が低下するという問題がある。すなわち、図２２に例示するように、探索の序盤から中盤にかけて、世代数が進むごとに適応度の増加率が低下してゆき、終盤では殆ど適応度が改善されなくなる。そこで、本実施例では、遺伝的アルゴリズムによる探索で得られた最良のテンプレートに対して、山登り方を用いて最終調整を行う。この処理を導入することにより、遺伝的アルゴリズムにおける終盤の無駄な探索を行わずにすむため、全体として探索速度が向上する。
【０１４０】
なお、完全に単色のブロックにおいては、どのようなテンプレートを使用してもまったく同じ圧縮率となってしまうため、テンプレート最適化を行う必要性はまったく無い。そこで、本技術では、ステップｓ１の画像分割を行う際に、各ブロックが単色であるかどうかの検査を同時に行い、単色であると判明した際には、テンプレート最適化を省略する。なお、圧縮／伸張処理部内に専用の計算ユニットを配置し、テンプレート決定をプロセッサではなく、この専用計算ユニットで行ってもよい。
【０１４１】
ここまでが、図２８のテンプレート探索ｓ２３に関する説明で、次にデータベース更新ｓ２４に関する説明を行う。
データベースは、圧縮符号化対象である画像データに関する先験的知識が明らかな場合に、画像解析ｓ２２やテンプレート探索ｓ２３を実行せずにテンプレートを決定するために用いられる。とくに印刷用画像の場合、ディザ法をベースとした画像生成手続きが、その画像生成ソフトウェアを作成したメーカーごとに決まっていて、それぞれのメーカー毎に、ディザマトリクスの作り方などに独自の特徴がある。一般にそのような特徴が公開されることはないが、本実施例のようにテンプレート探索の結果をデータベースに蓄積することで、テンプレート決定に関する重要な手がかりとして再利用できるようになる。また、データベースに登録された情報を初期状態としてテンプレート探索ｓ２３を行うことにより、より優れたテンプレートを発見することもある。
【０１４２】
図１３は、データベース更新ｓ２４の処理手続きを示すフローチャートである。
まず、ステップｓ２４１において、図１６に構造例を示すテンプレートデータベースを検索し、全く同じ画像生成システムで生成された、解像度や線数やスクリーン角度の同じ画像に対するテンプレートが登録されているか否かをまず検索する。
【０１４３】
もし登録されていない場合は、ステップｓ２４４において、新しく得られたテンプレートを新規に登録して処理を完了する。このように登録しておくことで、テンプレート最適化ｓ２のデータベース検索ｓ２１において、新しいテンプレートを再利用することができる。
【０１４４】
ステップｓ２４１において当該テンプレートが登録されていると判明した場合は、当該テンプレートが、テンプレートデータベース検索で得られ初期テンプレートを基にテンプレート最適化処理で得られたものかどうかをステップｓ２４２で調べる。もし得られたものであるならば、当該テンプレートは登録されているテンプレートよりも品質が優れたものであると期待されるため、ステップｓ２４３において、登録テンプレートを当該テンプレートで更新する。ここでの品質が優れているというとは、このテンプレートを使用して予測符号化を行うことにより、高い圧縮効率を得られることである。
【０１４５】
以上の手続きで、分割された各ブロックごとに最適なテンプレートが決定され、次に、このテンプレートを用いて、各ブロックの圧縮処理が開始される。ブロック分割された画像データは、必要な部分だけを切り出され、リファレンスバッファへと送られる。ここで、必要な部分の大きさについて、その高さは、参照画素として取り得る、注目画素から垂直方向に最も離れた画素までのライン数、その幅は、画素から水平方向に最も離れた両端の画素の距離であるものとする。
【０１４６】
つづいて、コンテクスト抽出機において、テンプレートに基づいて、リファレンスバッファからコンテクスト（すなわち、参照画素の値により構成されるベクトルデータ）が抽出される。
【０１４７】
コンテクストと、注目画素の値は、それぞれ後段のＦＩＦＯを介して、圧縮用のＭＱ−Ｃｏｄｅｒ（Ｃ）へと送られ、圧縮データが計算される。なお、図３５のＭＱ−Ｃｏｄｅｒ（Ｄ）は伸張用のＭＱ−Ｃｏｄｅｒである。この例では、実装時に容易に高速化できるように、圧縮用のＭＱ−Ｃｏｄｅｒ（Ｃ）と伸張用のＭＱ−Ｃｏｄｅｒ（Ｄ）を別に搭載しているが、もともとＭＱ−Ｃｏｄｅｒは可逆処理が可能であるため、ＬＳＩのゲート数を小さくするなどの目的で、圧縮と伸張の両方を実行可能なＭＱ−Ｃｏｄｅｒを１つだけ使用してもよい。なお、ＭＱ−Ｃｏｄｅｒの構造や処理手続きはＪＢＩＧ２方式に関する国際規格において明確に定義されている。さらに、ＱＭ−ＣｏｄｅｒやＪｏｎｓｏｎ符号化器のように、ＭＱ−Ｃｏｄｅｒ以外のエントロピ符号化器を使用することも可能である。
【０１４８】
ＭＱ−Ｃｏｄｅｒ（Ｃ）の処理が完了すると、リファレンスバッファへは、右へ１ビット分ずらした領域が切り出され、コンテクストの抽出、ＭＱ−Ｃｏｄｅｒ（Ｃ）での圧縮データ計算が行われる。以降、画像末端まで同じ処理が繰り返される。
【０１４９】
画像末端まで達すると、今度は画像データの左端で、下へ１ビット分ずらした領域がリファレンスバッファへと切り出され、ブロック下端まで上記の手続きが繰り返される。
なお、リファレンスバッファへの領域切り出し、コンテクスト抽出、ＭＱ−Ｃｏｄｅｒ（Ｃ）での圧縮データ計算をパイプライン的に行うことで、上記の手続きを高速化することが可能である。
【０１５０】
この処理は、リファレンスバッファを２つ用意し、それらを交互に並列動作させることで高速化することができる。図３６に基づいて説明する。ブロックの大きさは同図（ａ）であるものとする。
【０１５１】
また、この例では、参照画素の最大可動範囲を８画素×４ラインとすると、後段のコンテクスト抽出機で必要とするサイズは、最低で８画素×４ラインなので、リファレンスバッファの高さは４ラインとなり、横幅は８画素以上であれば何画素でもよい。ここでは１６画素であるものとする。
【０１５２】
手順では、まず、１つ目のリファレンスバッファにブロック左上端を読み込む（同図（ｂ）における白抜きの長方形で示す領域）。このリファレンスバッファの幅は、コンテクスト抽出に必要な領域の２倍の１６であるため、シフト演算を８回行うことで、８回分のコンテクスト抽出を行うことができる。そこで、この８回のコンテクスト抽出を行っている間に、もうひとつのリファレンスバッファに、右へ８ビット分ずらした領域を読み込む（同図（ｃ）における網掛けの長方形で示す領域）。そして、第１のリファレンスバッファが８回分のコンテクスト抽出に必要な領域データを供給し終わった後を継いで、第２のリファレンスバッファが領域データの供給を開始する。以降、この動作を交互に繰り返すことで、リファレンスバッファへの領域データの書き込み時間を完全に隠すことが可能となる。
【０１５３】
なお、この場合のリファレンスバッファの幅を、コンテクスト抽出に必要な領域の何倍に設定するかということは、リファレンスバッファへの書き込み時間と、コンテクスト抽出に必要な時間に応じて、適切に設定しておく必要がある。
【０１５４】
以上が、図３４で示す画像データ圧縮ハードウェアの動作手順である。伸張時は、これまでに説明した圧縮手順の逆の動作を行うことで、原画像が復元される。
【実施例２】
【０１５５】
図３２は、並列化処理を大幅に導入して、圧縮および伸張処理の高速化を図ったハードウェア構成のブロック図である。なお、同図中、圧縮伸張処理ユニットは、図３５から、画像データメモリと制御レジスタを取り除いたものと等価な回路である。また、本構成では、ホスト計算機から画像データおよび圧縮データをＤＭＡ転送で授受するため、ＤＭＡプロセッサを使用している。
【０１５６】
この大きな特徴は、画像メモリに読み込まれた画像データを強制的に垂直方向に分割し、それぞれを並列に独立して圧縮する点にある。同図は２並列の例であるため、圧縮および伸張に要する時間が約１／２となる。画像メモリ、圧縮伸張ユニット、圧縮データ入出力ＦＩＦＯをｎ個ずつ用意することでｎ並列とすることができ、動作速度も約ｎ倍になる。
【０１５７】
同図中、２つの画像データメモリは、画像入出力ＦＩＦＯからは１つの連続したメモリとして見える。そのため、圧縮時には、実施例１と同様に画像データを１ラインずつ逐次的に書き込んでゆくことになる。
【０１５８】
圧縮時における、画像ブロック分割とテンプレート最適化については、垂直方向に強制分割された画像領域ごとに独立で行ってもよいし、１つの大きなブロックと見なして、実施例１と全く同じ手続きで画像ブロック分割とテンプレート最適化だけを行い、実際の圧縮処理だけを各領域で独立に並行処理してもよい。前者の方が高い圧縮率を得られるものと期待されるが、後者の方が早い処理を実現できる。
【０１５９】
なお、このハードウェア構成を用いた伸張時には、画像メモリ１と画像メモリ２で同一ラインの処理が完了していることを必ず確認してから、当該ラインを画像入出力ＦＩＦＯへ書き出す必要がある。
【実施例３】
【０１６０】
これまでに述べた実施例による適応型予測符号化および復号化方法をコンピュータによって実行するためのプログラムを、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ等の記録媒体に記録しておけば、このような記録媒体をコンピュータに読み込ませることにより、コンピュータを利用して、実施例１による適応型予測符号化および復号化方法を簡単に実施することができる。
【０１６１】
適応型予測符号化プログラムは図２３に示されるように、
（１）圧縮すべき画像データを読み込む手順（ｓ６０１）と、
（２）圧縮符号化済みデータのヘッダを生成し、出力する手順（ｓ６０２）と、
（３）入力された画像データを、特徴的なブロック単位に分割する手順（ｓ６０３）と、
（４）ブロック毎に最適なテンプレートを生成する手順（ｓ６０４）と、
（５）ブロック内の全ての画素に対して、走査方向順にコンテクストを発生する手順（ｓ６０５）と、
（６）ブロック内の全ての画素と、ステップｓ６０５で生成されたその画素に対応するコンテクストを用いて圧縮データを生成する手順（ｓ６０６）と、
（７）これまでの手順で得られたブロック情報、テンプレート情報、圧縮データを合成して、圧縮符号化済みデータを生成および出力する手順（ｓ６０７）と、
を実行させるようになっている。
【０１６２】
一般に、ソフトウェアで実行するときには、ハードウェアよりもメモリ容量に余裕がある場合が多いため、実施例１のような、データ読み込みと画像分割を同時に行う方式（１パス）ではなく、画像データを全て読み込んでからブロック分割を行い、ブロックごとに圧縮符号化処理を行ってもよい（２パス）。
【０１６３】
図２４（ａ）は、圧縮対象である画像データが、ｎ個のブロックに分割された場合における、圧縮符号化済みデータのフォーマットの一例を示す模式図で、ヘッダ部分と、ｎ個の画像ブロックに対応する圧縮情報から構成される。ヘッダ部分には、圧縮対象である画像データの大きさ（縦横サイズ）と、解像度、線数、スクリーン角度、画像生成システム名とそのバージョン等が記録される。
【０１６４】
同図（ｂ）は、第ｉ番目の画像ブロックに対応する圧縮情報の構成例を示す模式図で、各ブロックの大きさと位置（ブロック情報）が記録されるブロックヘッダと、対応する画像データの圧縮符号化に用いたテンプレートと、圧縮データと、第ｉ番目の圧縮情報の終端を示す終端記号から構成される。
【０１６５】
復号化プログラムは、図２５に示されるように、
（１）圧縮符号化済みデータを読み込む手順（ｓ７０１）と、
（２）圧縮符号化済みデータを解析して、伸張画像全体の大きさ（縦横サイズ）と、ブロック分割された各ブロックに対応する圧縮情報とに分離し、各ブロックを圧縮する際に使用したテンプレートと圧縮データを取り出す手順（ｓ７０２）と、
（３）伸張された画像データの先頭からコンテクストを逐次生成するための手順（ｓ７０３）と、
（４）コンテクストを用いて圧縮データから復号データを生成する手順（ｓ７０４）と、
（５）各ブロックに対応する復号データを合成して、１つの伸張画像データを生成する手順（ｓ７０６）と、
を実行させるようになっている。
【０１６６】
なお、本発明は通常の２値画像（文字画像、線画像、ディザ法や誤差拡散法などで２値化された画像、これらの混在画像など）の全てに対して有効に機能する。さらに、多値画像についても、ビットスライス処理や画像幅の拡大処理を行って複数の２値画像に分解することで適用可能である。ここでビットスライス処理とは、たとえば図２７（ａ）の場合、各画素は８ビットで表現されるので、第１番目のビットだけで構成した２値画像から、第８番目のビットだけで構成した２値画像までの、８つの２値画像に、１つの８ビット画像を分解する処理である。
【０１６７】
ビットスライスを行うことで、高周波成分を多く含む画像から、低周波成分を主成分とする画像が生成されるが、一般に高周波成分に相当する画像の圧縮は難しいため、ビットスライスを行う前に、各画素値を交番２進数（グレイコード）に変換してもよい。これにより、上記の問題を解消することができる。さらに、原画像が限定色である場合、各色同士の相関に基づいて２進数のビット並びを変換することで、効率のよいビットスライスを行うことができる。
【０１６８】
画像幅の拡大処理とは、たとえば図２７（ｂ）の場合、上述の例と同じく２５６階調（８ビット）画像の場合、画像幅を仮想的に８倍にし、画素を構成するビットを分解してそのまま同一ライン上に並べるだけの処理である。
【０１６９】
以上、図示例に基づき説明したが、この発明は上述の例に限定されるものではなく、特許請求の範囲内で当業者が容易に改変し得る他の構成や方法をも含むものである。例えば、実施例においては、入力データとして画像データを用いる例を開示したが、本発明のデータ符号化方式は、テキストファイルをはじめ、任意のアプリケーションのデータファイルなど、ビット間に相関のある任意のデータに適用可能である。
【図面の簡単な説明】
【０１７０】
【図１】既知の各種テンプレートを示す説明図である。
【図２】ＪＢＩＧ方式で用いられるテンプレートを示す説明図である。
【図３】切り出し領域のずらし処理の模式図である。
【図４】同じテンプレートが異なる染色体で表現される例である。
【図５】テンプレート表現に基づく交叉に関する説明図である。
【図６】本発明の一実施例に係る画像伝送装置の送信側のブロック構成図である。
【図７】本発明の一実施例に係る画像伝送装置の受信側のブロック構成図である。
【図８】本発明の一実施例に係るテンプレート最適化方式の動作フローチャートである。
【図９】本発明の一実施例に係る画像分割方式の動作フローチャートである。
【図１０】水平方向ブロック分割の処理手順を示すフローチャートである。
【図１１】垂直方向ブロック分割の処理手順を示すフローチャートである。
【図１２】遺伝的アルゴリズムの動作フローチャートである。
【図１３】本発明の一実施例に係るテンプレートデータ更新の動作フローチャートである。
【図１４】画像のブロック分割方法を示す模式図である。
【図１５】同時確率密度の計算方法を示す模式図である。
【図１６】画像解析方式で用いるテンプレートデータベースの構造例を示す説明図である。
【図１７】画像解析方式で行う相関分析の動作原理を示す説明図である。
【図１８】画像解析方式で行う周期性推定の動作原理を示す説明図である。
【図１９】染色体と遺伝子の関係を示す模式図である。
【図２０】遺伝的アルゴリズムにおける染色体表現の説明図である。
【図２１】遺伝的アルゴリズムにおける交叉と突然変異の動作原理を示す説明図である。
【図２２】遺伝的アルゴリズムの一般的な学習曲線の例である。
【図２３】符号化プログラムの動作手順を示すフローチャートである。
【図２４】圧縮符号化済みデータのフォーマット例を示す模式図である。
【図２５】復号化プログラムの動作手順を示すフローチャートである。
【図２６】遺伝的アルゴリズムにおける個体集団の初期化方法例を示す模式図である。
【図２７】本発明を多値画像に適用可能とするための方法例を示す模式図である。
【図２８】テンプレート最適化の動作手順を示すフローチャートである。
【図２９】データベース検索の動作手順を示すフローチャートである。
【図３０】画像解析の動作手順を示すフローチャートである。
【図３１】テンプレート探索の動作手順を示すフローチャートである。
【図３２】並列化画像データ圧縮ハードウェアのブロック図である。
【図３３】垂直分割位置候補の決定方法を示す模式図である。
【図３４】画像データ圧縮ハードウェアのブロック図である。
【図３５】圧縮／伸張処理部のブロック図である。
【図３６】並列化リファレンスバッファの処理手順を示す模式図である。
【図１】
0003986012.tif 000002
【図２】
0003986012.tif 000003
【図３】
0003986012.tif 000004
【図４】
0003986012.tif 000005
【図５】
0003986012.tif 000006
【図６】
0003986012.tif 000007
【図７】
0003986012.tif 000008
【図８】
0003986012.tif 000009
【図９】
0003986012.tif 000010
【図１０】
0003986012.tif 000011
【図１１】
0003986012.tif 000012
【図１２】
0003986012.tif 000013
【図１３】
0003986012.tif 000014
【図１４】
0003986012.tif 000015
【図１５】
0003986012.tif 000016
【図１６】
0003986012.tif 000017
【図１７】
0003986012.tif 000018
【図１８】
0003986012.tif 000019
【図１９】
0003986012.tif 000020
【図２０】
0003986012.tif 000021
【図２１】
0003986012.tif 000022
【図２２】
0003986012.tif 000023
【図２３】
0003986012.tif 000024
【図２４】
0003986012.tif 000025
【図２５】
0003986012.tif 000026
【図２６】
0003986012.tif 000027
【図２７】
0003986012.tif 000028
【図２８】
0003986012.tif 000029
【図２９】
0003986012.tif 000030
【図３０】
0003986012.tif 000031
【図３１】
0003986012.tif 000032
【図３２】
0003986012.tif 000033
【図３３】
0003986012.tif 000034
【図３４】
0003986012.tif 000035
【図３５】
0003986012.tif 000036
【図３６】
0003986012.tif 000037