(57)【要約】【課題】複数の異なる画像種別のオブジェクトが混在する画像のデータであっても、高い圧縮率で符号化することのできる画像データ符号化装置を実現する。【解決手段】画像データ符号化装置１は、ＪＢＩＧのＱＭ−Ｃｏｄｅｒを模倣したものである。ここで、画像データ符号化装置１は、コンテクスト生成部２１によって抽出された符号化対象画素の含まれる領域の画像種別を検出するとともに、検出結果を以前の検出結果と異なっているか否かを判定する領域判定部２２と、領域判定部２２によって異なっていると判定された場合に、記録部３１に格納されている学習テーブル３２をリセットするテーブル変更部２３とを備えている。【選択図】図１
2007295130.tif 000002
【特許請求の範囲】
【請求項１】
画像のデータを構成するシンボルを順次符号化対象シンボルとし、該符号化対象シンボルを、周辺シンボルのパターンから推定されるシンボル出現確率に基づいて算術符号化により順次符号化する画像データ符号化装置において、
上記周辺シンボルのパターンと、上記シンボル出現確率を特定するためのインデックスとの対応関係が示された学習テーブルを格納する学習テーブル記憶手段と、
上記学習テーブルに示される上記インデックスと、上記シンボル出現確率と、上記学習テーブルにおける上記インデックスの更新内容を示す更新情報との対応関係が示された確率推定テーブルを格納する確率推定テーブル記憶手段と、
上記画像のデータから上記符号化対象シンボルと上記周辺シンボルのパターンとを抽出する抽出手段と、
上記抽出手段によって抽出された上記符号化対象シンボルに対応する上記画像中の部分領域の画像種別を検出する画像種別検出手段と、
上記画像種別検出手段によって検出された画像種別が、以前に上記画像種別検出手段によって検出された画像種別と異なっている場合に、上記学習テーブル記憶手段に格納されている学習テーブルを変更する学習テーブル変更手段と、
上記抽出手段によって抽出された上記周辺シンボルのパターンに対応する上記インデックスを上記学習テーブルから取得し、取得したインデックスに対応する上記出現確率及び上記更新情報を上記確率推定テーブルから取得し、取得した出現確率に基づいて上記抽出手段によって抽出された上記符号化対象シンボルを算術符号化により符号化するとともに、上記符号化対象シンボルと取得した更新情報とに基づいて上記学習テーブルに含まれる上記インデックスを更新する符号化手段と、
上記抽出手段、上記画像種別検出手段、上記学習テーブル変更手段、及び上記符号化手段に対して処理を繰り返し実行させるループ手段と、を備えていることを特徴とする画像データ符号化装置。
【請求項２】
上記学習テーブルのテンプレートとなる初期テーブルを格納する初期テーブル記憶手段をさらに備え、
上記学習テーブル変更手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記学習テーブル記憶手段に格納されている上記学習テーブルを、上記初期テーブル記憶手段に格納された上記初期テーブルに基づいて書き換えることを特徴とする請求項１に記載の画像データ符号化装置。
【請求項３】
上記初期テーブル記憶手段は、上記初期テーブルを上記画像種別ごとに複数格納し、
上記学習テーブル変更手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記学習テーブルを、上記符号化対象シンボルに対応する上記部分領域の画像種別に応じた上記初期テーブルに基づいて書き換えることを特徴とする請求項２に記載の画像データ符号化装置。
【請求項４】
上記学習テーブル記憶手段は、上記学習テーブルを上記画像種別ごとに格納し、
上記学習テーブル変更手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記符号化手段によって参照及び更新される学習テーブルを、上記符号化対象シンボルに対応する上記部分領域の画像種別に応じた学習テーブルに切り換えることを特徴とする請求項１に記載の画像データ符号化装置。
【請求項５】
上記画像を作成するために画像中に所望の種類のオブジェクトを所望の位置に配置するよう指示する描画命令を受け付ける描画命令受付手段と、
上記描画命令受付手段が受け付けた描画命令に従って、上記画像のデータを作成する画像データ作成手段とをさらに備え、
上記画像種別検出手段は、上記描画命令受付手段の受け付けた描画命令に基づいて、上記符号化対象シンボルに対応する上記部分領域の画像種別を検出することを特徴とする請求項１に記載の画像データ符号化装置。
【請求項６】
上記描画命令受付手段が受け付けた描画命令から、上記画像中に配置されるオブジェクトの種類と当該オブジェクトの上記画像中に占める範囲とを取得し、取得したオブジェクトの上記種別及び範囲に基づいて上記画像を画像種別ごとの部分画像に区分するとともに、区分した部分画像の画像種別と当該部分画像の上記画像中に占める範囲とを示す領域情報を作成する領域情報作成手段をさらに備え、
上記画像種別検出手段は、上記領域情報作成手段の作成した領域情報に基づいて、上記符号化対象シンボルに対応する上記部分領域の画像種別を検出することを特徴とする請求項５に記載の画像データ符号化装置。
【請求項７】
上記画像のデータを構成する全てのシンボルが符号化されることにより得られた符号化済みの画像のデータに対して、上記領域情報を付加する領域情報付加手段をさらに備えていることを特徴とする請求項６に記載の画像データ符号化装置。
【請求項８】
上記確率推定テーブル記憶手段は、上記確率推定テーブルを上記画像種別ごとに複数格納し、
上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記符号化手段によって参照される上記確率推定テーブルを、上記符号化対象シンボルに対応する上記部分領域の画像種別に応じた確率推定テーブルに切り換えるテーブル切換手段をさらに備えていることを特徴とする請求項１に記載の画像データ符号化装置。
【請求項９】
上記符号化対象シンボルが上記符号化手段によって順次符号化されることにより得られる算術符号を保持するデータ保持手段をさらに備え、
上記符号化データ保持手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記算術符号を出力して、自身の保持する算術符号をリセットすることを特徴とする請求項１に記載の画像データ符号化装置。
【請求項１０】
上記符号化手段は、ＱＭ−Ｃｏｄｅｒ方式に従って符号化を行うことを特徴とする請求項１に記載の画像データ符号化装置。
【請求項１１】
上記画像のデータが上記符号化手段によって符号化されることにより得られた符号化済みの画像のデータを画像形成装置に対して出力するデータ出力手段をさらに備えていることを特徴とする請求項１に記載の画像データ符号化装置。
【請求項１２】
上記各手段は、コンピュータがプログラムを実行することにより実現されるものであり、
上記描画命令受付手段は、アプリケーションプログラムからオペレーティングシステムを介して上記描画命令を受け付けることを特徴とする請求項５に記載の画像データ符号化装置。
【請求項１３】
請求項１から１２の何れか１項に記載の画像データ符号化装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項１５】
画像のデータを構成するシンボルを符号化対象シンボルとし、該符号化対象シンボルを、周辺シンボルのパターンから推定されるシンボル出現確率に基づいて算術符号化により順次符号化する画像データ符号化方法において、
抽出手段が、上記画像のデータから上記符号化対象シンボルと上記周辺シンボルのパターンとを抽出する抽出ステップと、
画像種別検出手段が、上記抽出ステップにおいて抽出された上記符号化対象シンボルに対応する上記画像中の部分領域の画像種別を検出する画像種別検出ステップと、
上記画像種別検出ステップにおいて検出された上記画像種別が、以前に上記画像種別検出ステップにおいて検出された上記画像種別と異なっている場合に、学習テーブル変更手段が、記憶手段に格納されている、上記周辺シンボルのパターンと上記シンボル出現確率を特定するためのインデックスとの対応関係が示された学習テーブルを変更する学習テーブル変更ステップと、
符号化手段が、上記記憶手段に格納されている上記学習テーブルから、上記抽出ステップにおいて抽出された上記周辺シンボルのパターンに対応する上記インデックスを取得し、上記記憶手段に格納されている、上記学習テーブルに示される上記インデックスと上記シンボル出現確率と上記学習テーブルにおける上記インデックスの更新内容を示す更新情報との対応関係が示された上記確率推定テーブルから、取得したインデックスに対応する上記出現確率及び上記更新情報を取得し、取得した出現確率に基づいて上記抽出ステップにおいて抽出された上記符号化対象シンボルを算術符号化により符号化するとともに、上記符号化対象シンボルと取得した更新情報とに基づいて上記学習テーブルに含まれる上記インデックスを更新する符号化ステップとを含み、
上記抽出ステップ、上記画像種別検出ステップ、上記学習テーブル変更ステップ、及び上記符号化ステップを繰り返し実行することを特徴とする画像データ符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを算術符号化により符号化する画像データ符号化装置に関するものである。
【背景技術】
【０００２】
２値画像データをマルコフ情報源でモデル化し、符号化対象シンボルをその周辺シンボルの状態に基づいて予測し、予測結果に応じて算術符号化する方式として、ＪＢＩＧ（ＩＴＵ−Ｔ  Ｔ．８２）のＱＭ−Ｃｏｄｅｒが知られている（非特許文献１、２参照）。
【０００３】
このＱＭ−Ｃｏｄｅｒは、画像データを構成する２値の入力信号（入力ビット）列を０以上１未満の実数ｘに変換するものである。ＱＭ−Ｃｏｄｅｒは、入力ビットに応じて、予め定めた手順で、符号化結果である実数ｘの存在し得る範囲（以下、「インターバル」という。）を変化させる。そして、新たなビットの入力にも関わらずインターバルが変化しなくなった場合に、そのインターバルの最小値である低数を符号化結果とする。
【０００４】
より詳細には、ＱＭ−Ｃｏｄｅｒは、前回までの入力ビット列から次の（今回の）入力ビットの予測値（優勢確率シンボル（ＭＰＳ））を計算する。また、この予測に応じて、優勢確率シンボルの出現確率と予想されなかった方の劣勢確率シンボル（ＬＰＳ）の出現確率との比に応じて、インターバルを２つの領域に分割する。ここで、分割された２つの領域のうち、０に近い方の領域は、優勢確率シンボルの出現確率に対応するＭＰＳインターバルとし、０から遠い方の領域は、ＬＰＳの出現確率に対応するＬＰＳインターバルとする。
【０００５】
ＱＭ−Ｃｏｄｅｒは、入力ビットとＭＰＳとが一致する場合には、現在のインターバルからＬＰＳインターバルを取り除くように、インターバルを変化させる。一方、入力ビットとＭＰＳとが一致しない場合には、現在のインターバルからＭＰＳインターバルを取り除くように、インターバルを変化させる。全ての入力列に対する処理が完了したときのインターバルの低数を実数ｘとし、この実数ｘを符号化結果とする。上述の処理手順によって、入力ビットが、予想された入力ビットと一致する場合には、インターバルの低数に変化を生じない。このため、出力（符号化結果）にも変化を生ずることがなく、新たなビットを出力する必要もないので、これを利用して符号化を行う。
【０００６】
上述のような手順を行うにあたって、符号化処理を実施していくと、インターバルの大きさが次第に小さくなり、やがて計算機の固定精度では表現できなくなってしまう。そこで、インターバルの大きさが０．５以上となるまで繰り返しインターバルの大きさを２倍にする、正規化処理と呼ばれる処理を行う。
【０００７】
ここで、ＱＭ−Ｃｏｄｅｒにおいては、インターバルの大きさをメモリ領域のレジスタＡ（Ａｒｅｇ）に保持し、インターバルの低数をメモリ領域のレジスタＣ(Ｃｒｅｇ)に保持する。また、０から１までのインターバルを、実装の際には、２１６（＝６５５３６）倍した値、すなわち0x0（＝０；"0x"は１６進数であることを表す）から0x10000（＝６５５３６）の１６ビットで表現する。この場合、レジスタＡには、大きさが０．５（0x8000）以上かつ１以下となるように正規化されたインターバルが入る。なお、レジスタＡに記憶される値が、正規化処理によって２倍にされる度に、レジスタＣに記憶される値も２倍とする。このため、レジスタＡの値を２倍化していることによる出力への影響は相殺される。
【０００８】
また、ＬＰＳインターバルを算出するには、本来、
（インターバルの大きさ）×（ＬＰＳ出現確率）
という演算が必要であるが、ＱＭ−Ｃｏｄｅｒの実装形態においては、このＬＰＳインターバルの値を、統計的に求められた推定値（ＬＳＺ）によって近似する。このＬＳＺは、予測に用いる前回までの入力ビット列と対応付けられたテーブルとして与えられる。
【０００９】
以上をまとめると、ＱＭ−Ｃｏｄｅｒの実装形態においては、入力としてＭＰＳが与えられた際にはインターバルからＬＳＺを引き、入力としてＬＰＳが与えられたときにはインターバルをＬＳＺとする。また、この操作の結果インターバルが０．５以下となったときには正規化を行う。正規化が行われたときにはＬＳＺの値を更新する。また、上述の操作によって、ＭＰＳインターバルよりもＬＰＳインターバルの方が大きくなってしまう場合がある。このときは、ＭＰＳインターバルとＬＰＳインターバルの入れ替えを行う。
【００１０】
図１２は、ＪＢＩＧのＱＭ−Ｃｏｄｅｒを実装した従来の符号化装置の機能構成を示すブロック図である。また、図１３は、従来の符号化装置による処理の流れを示すフロー図である。図１２に示すように、従来の符号化装置１００は、概略的に、コンテクスト生成部１２２、取得部１２３、算術符号化部１２９、記録部１２５、レジスタ１２６を備えている。
【００１１】
符号化装置１００に２値画像データが入力されると、コンテクスト生成部１２２が、入力画像を少なくとも１つ以上のストライプに分ける（Ｓ１５０）。このストライプは、符号化処理を行う単位であり、画像中の１ライン以上の横ラインからなるものである。Ｓ１５０からＳ１６４までのストライプごとのループ（ＬＯＯＰ＿Ａ）によって、全てのストライプに対して処理が完了すると、画像の符号化処理が完了する。
【００１２】
コンテクスト生成部１２２は、符号化対象となる画素（符号化対象画素）を選択してその値（シンボル）を読み取る（Ｓ１５１）。ここで対象画素の選択は、ストライプの左上から右下に向けて順次行われる。Ｓ１５１〜Ｓ１６２のループ（ＬＯＯＰ＿Ｂ）によって対象画素についての符号化を行い、ストライプに含まれる全ての画素について符号化処理が完了すると、１つのストライプの処理が完了したことになる。続いて、コンテクスト生成部１２２は、対象画素の周辺に存在している複数の周辺画素の値を読み取り、コンテクストを抽出する（Ｓ１５２）。コンテクストは、周辺画素群のパターンを示すものである。
【００１３】
次に、取得部１２３が、記録部１２５の学習テーブル１２７にアクセスして、Ｓ１５２で抽出したコンテクストに対応するＭＰＳ及び劣勢確率シンボルの出現確率推定値のインデックスＳＴを取得する（Ｓ１５３）。
【００１４】
次に、前処理部１２９ｄが、Ｓ１５１で読み取った対象画素の値（シンボル）と、Ｓ１５３で取得したＭＰＳとに応じて、対象画素の値がＭＰＳであるか否かを判別する（Ｓ１５４）。Ｓ１５４において対象画素の値がＭＰＳであると判別された場合には、算術符号化部１２９において、ＭＰＳ処理部１２９ａがＭＰＳ処理（ＣＯＤＥ＿ＭＰＳ：Ｓ１５５〜Ｓ１５８）を行う。一方、Ｓ１５４において対象画素の値がＬＰＳであると判別された場合には、算術符号化部１２９に含まれるＬＰＳ処理部１２９ｂがＬＰＳ処理（ＣＯＤＥ＿ＬＰＳ：Ｓ１５９〜Ｓ１６１）を行う。
【００１５】
ＭＰＳ処理部１２９ａは、記録部１２５の確率推定テーブル１２８にアクセスして、Ｓ１５３で取得したインデックスＳＴに対応する劣勢確率シンボルの出現確率推定値（ＬＳＺ）を取得し、これに応じてレジスタ１２６のＡｒｅｇ１２６ａ及びＣｒｅｇ１２６ｂを書き換える（Ｓ１５５）。そして、ＭＰＳ処理部１２９ａは、Ａｒｅｇ１２６ａの値が０．５未満であるか否かを判別して（Ｓ５６）、０．５未満である場合にはＳ１５７に進み、０．５以上の場合にはＳ１６２に進む。Ｓ１５７ではＭＰＳ処理部１２９ａがＲＥＮＯＲＭ処理部１２９ｃに指示して、ＲＥＮＯＲＭ処理部１２９ｃがレジスタ１２６のＡｒｅｇ１２６ａ及びＣｒｅｇ１２６ｂに対して正規化処理をし、得られた符号化データを必要に応じて出力する。続いて、ＭＰＳ処理部１２９ａは、記録部１２５の確率推定テーブル１２８を参照して、記録部１２５の学習テーブル１２８をＳ１５４における判別結果に応じて更新し（Ｓ１５８）、Ｓ１６２に進む。
【００１６】
一方、Ｓ１５９では、ＬＰＳ処理部１２９ｂが、記録部１２５の確率推定テーブル１２８にアクセスして、Ｓ１５３で取得したインデックスＳＴに対応する劣勢確率シンボルの確率推定値を取得し、これに応じてレジスタ１２６のＡｒｅｇ１２６ａ、Ｃｒｅｇ１２６ｂを書き換える（Ｓ１５９）。そして、Ｓ１６０では、ＬＰＳ処理部１２９ｂが、レジスタ１２６のＡｒｅｇ１２６ａ及びＣｒｅｇ１２６ｂに対して、確率推定テーブル１２８のＳＷＩＴＣＨの値に応じて、ＬＰＳとＭＰＳとの入れ替え及び符号出力を行う。すなわち、ＬＰＳ処理部１２９ｂは、インデックスＳＴに対応する確率推定テーブル１２８のＳＷＩＴＣＨの値が１か否かによって、入れ替えを行うかどうかを判断する。ＬＰＳ処理部１２９ｂは、記録部１２５の確率推定テーブル１２８を参照して、記録部１２５の学習テーブル１２８をＳ１５４における判別結果及びＳＷＩＴＣＨの値に応じて更新し（Ｓ１６１）、Ｓ１６２に進む。
【００１７】
Ｓ１６２では、算術符号化部１２９がコンテクスト生成部１２２に対して画素インクリメントの指示を行い、画素についてのループを終了する。このような手順をストライプの全ての画素に対して行うことで、ストライプの符号化が行われる。Ｓ１６３では、ストライプについての処理が終了したか否かを判別し、終了していた場合にはレジスタ１２６が符号化済みデータを出力する（フラッシュ処理：Ｓ１６３）。このように、次のストライプの符号化に進む前に、ここまでの符号化結果のうちで、まだ出力されていない部分を出力する。Ｓ１６４では、コンテクスト生成部１２２が新たなストライプを選択する。全てのストライプの符号化が完了すれば画像全体の符号化が完了したことになり、入力画像データの全てを符号化した場合には、処理を終了する。
【００１８】
このように、学習型の算術符号化を用いるＱＭ−Ｃｏｄｅｒでは、コンテクストに基づいたシンボル出現確率の推定値（ＬＳＺ）が、学習テーブル１２７及び確率推定テーブル１２８に基づいて決定される。そして、学習テーブル１２７は、符号化対象画素の値がＭＰＳであるかＬＰＳであるかに応じて、確率推定テーブル１２８に示された更新内容に基づいて更新される。従って、学習テーブル１２７は、入力画像データの符号化に伴って最適化され、その結果、画像データの圧縮率が向上する。
【００１９】
ところで、特許文献１では、算術符号化を行う際に、コンテクストに対応するシンボル出現確率推定値が示されたテーブルを、文書画像用、網点又はディザ画像用、及び誤差拡散画像用等の画像の種類ごとに複数用意しておき、入力画像に対して領域判定を行った結果に基づいて、算術符号化に使用するテーブルを選択する画像符号化装置が提案されている。なお、特許文献１に記載された画像符号化装置において、領域判定は、入力された画像データから統計的な手法を用いて領域情報を求めることにより行われている。
【非特許文献１】ITU-T(International Telecommunication Union Telecommunication standardization sector) WHITE BOOK ディジタル静止画像圧縮符号化関連勧告書(財団法人 新日本ITU協会) 勧告T.82
【非特許文献２】WTSC-93 (WORLD TELECOMMUNICATION STANDARDIZATION CONFERENCE), Helsinki, 1-12 MARCH 1993
【特許文献１】特開平９−１３５３５８号公報（１９９７年５月２０日公開）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、上述した従来のＱＭ−Ｃｏｄｅｒは、文字、図形及び写真等の複数の異なるオブジェクトが混在した画像を符号化するときに、満足のいく圧縮率が得られないという問題を抱えている。
【００２１】
入力画像データの基となる画像には、複数種類の部分画像が含まれることが多い。例えば、文字、図形及び写真等が各所に配置された画像が作成されることがある。このように、符号化対象となる画像中に互いに異なる複数種類のオブジェクトが含まれる場合、オブジェクトの境界領域において、学習テーブル１２７の学習率が低下する傾向がある。この問題について具体的に説明すると以下の通りである。
【００２２】
例えば、入力画像データにおいて、文字領域に含まれる画素を順次符号化しているとする。この際、学習テーブル１２７が最適化されていくが、この場合、学習テーブル１２７は、文字領域の画素についてのシンボル出現確率を精度よく推定できるように最適化される。ここで、符号化対象の画素が文字領域から写真領域に移行した場合、文字領域用に最適化された学習テーブルによって、写真領域の画素におけるシンボルの出現確率を精度よく推定することはできない。そこで、学習テーブル１２７を写真領域用に再度最適化する必要が生じる。ここで、学習テーブル１２７が写真領域用に最適化されるまでの間は、圧縮率の低下を招いてしまう。
【００２３】
なお、文字領域用に最適化された学習テーブル１２７は、未学習の状態よりも、写真領域の画素におけるシンボルの出現確率の推定精度が劣り、かつ、最適化に長い期間を必要とする場合も少なくない。なぜならば、通常、未学習の学習テーブルは、各領域用に特化したものではなく、平均的な内容に設定されるからである。
【００２４】
このような理由から、従来のＱＭ−Ｃｏｄｅｒにおいては、異なる画像種別のオブジェクトが混在する画像のデータを符号化する際に、オブジェクト間の境界領域で圧縮率が低下し、満足のいく圧縮率が得られない。
【００２５】
また、特許文献１には、符号化対象画素が含まれる画像領域を判定することについて記載されているが、特許文献１では、画像領域を判定するために、入力画像データに基づいた統計的手法を採用している。しかしながら、入力画像データから統計的に画像領域を判定するためには多大な計算量及び統計データを必要とし、その上、正確さに欠けるという欠点がある。
【００２６】
以上のように、本発明は、上記問題点に鑑みてなされたものであり、その主たる目的は、複数の異なる画像種別のオブジェクトが混在する画像のデータであっても、高い圧縮率で符号化することのできる画像データ符号化装置を実現することにある。
【００２７】
そして、本発明のさらなる目的は、符号化対象のデータが画像中のどのような画像種別の領域に由来しているかを、簡便かつ正確に検出することのできる画像データ符号化装置を実現することにある。
【課題を解決するための手段】
【００２８】
上記課題を解決するために、本発明に係る画像データ符号化装置は、画像のデータを構成するシンボルを符号化対象シンボルとし、該符号化対象シンボルを、周辺シンボルのパターンから推定されるシンボル出現確率に基づいて算術符号化により順次符号化する画像データ符号化装置において、上記周辺シンボルのパターンと、上記シンボル出現確率を特定するためのインデックスとの対応関係が示された学習テーブルを格納する学習テーブル記憶手段と、上記学習テーブルに示される上記インデックスと、上記シンボル出現確率と、上記学習テーブルにおける上記インデックスの更新内容を示す更新情報との対応関係が示された確率推定テーブルを格納する確率推定テーブル記憶手段と、上記画像のデータから上記符号化対象シンボルと上記周辺シンボルのパターンとを抽出する抽出手段と、上記抽出手段によって抽出された上記符号化対象シンボルに対応する上記画像中の部分領域の画像種別を検出する画像種別検出手段と、上記画像種別検出手段によって検出された画像種別が、以前に上記画像種別検出手段によって検出された画像種別と異なっている場合に、上記学習テーブル記憶手段に格納されている学習テーブルを変更する学習テーブル変更手段と、上記抽出手段によって抽出された上記周辺シンボルのパターンに対応する上記インデックスを上記学習テーブルから取得し、取得したインデックスに対応する上記出現確率及び上記更新情報を上記確率推定テーブルから取得し、取得した出現確率に基づいて上記抽出手段によって抽出された上記符号化対象シンボルを算術符号化により符号化するとともに、上記符号化対象シンボルと取得した更新情報とに基づいて上記学習テーブルに含まれる上記インデックスを更新する符号化手段と、上記抽出手段、上記画像種別検出手段、上記学習テーブル変更手段、及び上記符号化手段に対して処理を繰り返し実行させるループ手段とを備えていることを特徴とする。
【００２９】
また、上記課題を解決するために、本発明に係る画像データ符号化方法は、画像のデータを構成するシンボルを符号化対象シンボルとし、該符号化対象シンボルを、周辺シンボルのパターンから推定されるシンボル出現確率に基づいて算術符号化により順次符号化する画像データ符号化方法において、抽出手段が、上記画像のデータから上記符号化対象シンボルと上記周辺シンボルのパターンとを抽出する抽出ステップと、画像種別検出手段が、上記抽出ステップにおいて抽出された上記符号化対象シンボルに対応する上記画像中の部分領域の画像種別を検出する画像種別検出ステップと、上記画像種別検出ステップにおいて検出された上記画像種別が、以前に上記画像種別検出ステップにおいて検出された上記画像種別と異なっている場合に、学習テーブル変更手段が、記憶手段に格納されている、上記周辺シンボルのパターンと上記シンボル出現確率を特定するためのインデックスとの対応関係が示された学習テーブルを変更する学習テーブル変更ステップと、符号化手段が、上記記憶手段に格納されている上記学習テーブルから、上記抽出ステップにおいて抽出された上記周辺シンボルのパターンに対応する上記インデックスを取得し、上記学習テーブルに示される上記インデックスと上記シンボル出現確率と上記学習テーブルにおける上記インデックスの更新内容を示す更新情報との対応関係が示された上記確率推定テーブルから、取得したインデックスに対応する上記出現確率及び上記更新情報を取得し、取得した出現確率に基づいて上記抽出ステップにおいて抽出された上記符号化対象シンボルを算術符号化により符号化するとともに、上記符号化対象シンボルと取得した更新情報とに基づいて上記学習テーブルに含まれる上記インデックスを更新する符号化ステップとを含み、上記抽出ステップ、上記画像種別検出ステップ、上記学習テーブル変更ステップ、及び上記符号化ステップを繰り返し実行することを特徴とする。
【００３０】
上記構成によれば、画像種別検出手段によって、符号化対象シンボルに対応する上記画像中の部分領域の画像種別（例えば、テキスト、ベクトルグラフィックス、ビットマップ等）が検出される。そして、上記画像種別検出手段によって検出された画像種別が、以前に検出された画像種別と異なっている場合に、学習テーブル変更手段によって、学習テーブル記憶手段に格納されている学習テーブルが変更される。よって、符号化対象シンボルに対応する画像中の部分領域が、画像中の異なる画像種別の領域に移行すると、そのことを画像種別検出手段によって検出することができる。そして、このとき、学習テーブルが変更されるので、それまでの古い画像種別用に最適化された学習テーブルをそのまま用いて、新しい画像種別のデータを符号化対象シンボルとして符号化することがない。そのため、学習テーブルを新しい画像種別に最適化するために必要な期間が短縮され、その結果、画像種別の異なるオブジェクト同士の境界領域での圧縮率の低下を抑制することができる。従って、複数の異なる画像種別のオブジェクトが混在する画像のデータであっても、高い圧縮率で符号化することができる。
【００３１】
また、上記画像データ符号化装置は、上記学習テーブルのテンプレートとなる初期テーブルを格納する初期テーブル記憶手段をさらに備え、上記学習テーブル変更手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記学習テーブル記憶手段に格納されている上記学習テーブルを、上記初期テーブル記憶手段に格納された上記初期テーブルに基づいて書き換えるものであってもよい。
【００３２】
上述したように、或る画像種別用に最適化された学習テーブルを別の画像種別の画像データの符号化に用いると、未学習の状態よりも、シンボルの出現確率の推定精度が劣る場合も少なくない。しかしながら、上記構成によれば、符号化対象シンボルに対応する画像中の部分領域が、画像中の異なる画像種別の領域に移行すると、学習テーブル変更手段によって、学習テーブルの内容が実質的に初期状態にリセットされるので、学習テーブルを新しい画像種別用に最適化するために必要な期間が短縮される。その結果、画像種別の異なるオブジェクト同士の境界領域での圧縮率の低下を抑制することができる。
【００３３】
また、この場合、上記初期テーブル記憶手段は、上記初期テーブルを上記画像種別ごとに複数格納し、上記学習テーブル変更手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記学習テーブルを、上記符号化対象シンボルに対応する上記部分領域の画像種別に応じた上記初期テーブルに基づいて書き換えることが好ましい。
【００３４】
上記構成によれば、学習テーブル変更手段による学習テーブルの書き換えは、符号化対象のデータに対応する部分領域の画像種別に応じた初期テーブルに基づいて行われる。従って、符号化対象シンボルに対応する画像中の部分領域が、画像中の異なる画像種別の領域に移行すると、学習テーブルは、移行先の画像種別に適した内容に書き換えられるので、学習テーブルを移行先の画像種別用に最適化するのに必要な期間をさらに短縮することができ、その結果、圧縮率を一層向上させることができる。
【００３５】
あるいは、上記学習テーブル記憶手段は、上記学習テーブルを上記画像種別ごとに格納し、上記学習テーブル変更手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記符号化手段によって参照及び更新される学習テーブルを、上記符号化対象シンボルに対応する上記部分領域の画像種別に応じた学習テーブルに切り換えてもよい。
【００３６】
上記構成によれば、学習テーブルが画像種別ごとに用意され、符号化対象シンボルに対応する画像中の部分領域が、画像中の異なる画像種別の領域に移行すると、それに伴って、符号化手段の利用する学習テーブルも移行先の画像種別用のものに切り換えられるので、学習テーブルの最適化をし直す必要がない。従って、圧縮率をさらに向上させることができる。
【００３７】
また、上記画像データ符号化装置は、上記画像を作成するために画像中に所望の種類のオブジェクトを所望の位置に配置するよう指示する描画命令を受け付ける描画命令受付手段と、上記描画命令受付手段が受け付けた描画命令に従って、上記画像のデータを作成する画像データ作成手段とをさらに備え、上記画像種別検出手段は、上記描画命令受付手段の受け付けた描画命令に基づいて、上記符号化対象シンボルに対応する上記部分領域の画像種別を検出することが好ましい。
【００３８】
上記構成によれば、画像種別検出手段による画像種別の判定は、描画命令に基づいて行われる。この描画命令は、画像データ符号化装置によって符号化される画像データを作成するための命令であり、所望のオブジェクト（例えば、テキストオブジェクト、グラフィックスオブジェクト、ビットマップオブジェクト等）を所望の位置に配置するよう指示する命令である。画像種別検出手段は、従来のように画像データから統計的手法によって判定するのではなく、上記の描画命令に基づいて符号化対象シンボルに対応する部分領域の画像種別を判定するため、判定精度が向上する。さらに、統計的手法を用いないので、判定に必要な処理も減少し、効率よく符号化することができる。以上のように、上記構成によれば、符号化対象のデータが画像中のどのような画像種別の領域に由来しているかを、簡便かつ正確に検出することができる。
【００３９】
より具体的には、上記画像データ符号化装置は、上記描画命令受付手段が受け付けた描画命令から、上記画像中に配置されるオブジェクトの種類と当該オブジェクトの上記画像中に占める範囲とを取得し、取得したオブジェクトの上記種別及び範囲に基づいて上記画像を画像種別ごとの部分画像に区分するとともに、区分した部分画像の画像種別と当該部分画像の上記画像中に占める範囲とを示す領域情報を作成する領域情報作成手段をさらに備え、上記画像種別検出手段は、上記領域情報作成手段の作成した領域情報に基づいて、上記符号化対象シンボルに対応する上記部分領域の画像種別を検出することが挙げられる。
【００４０】
また、上記画像データ符号化装置は、上記画像のデータを構成する全てのシンボルが符号化されることにより得られた符号化済みの画像のデータに対して、上記領域情報を付加する領域情報付加手段をさらに備えていることが好ましい。
【００４１】
上記構成によれば、復号化の際に必要な領域情報が、符号化済みの画像のデータに付加されるので、領域情報をユーザ等が与えてやる必要がなくなり、ユーザの負担が軽減される。
【００４２】
また、上記確率推定テーブル記憶手段は、上記確率推定テーブルを上記画像種別ごとに複数格納し、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記符号化手段によって参照される上記確率推定テーブルを、上記符号化対象シンボルに対応する上記部分領域の画像種別に応じた確率推定テーブルに切り換えるテーブル切換手段をさらに備えていることが好ましい。
【００４３】
上記構成によれば、学習テーブルの更新情報が示された確率推定テーブルが画像種別ごとに用意され、符号化対象シンボルに対応する画像中の部分領域が、画像中の異なる画像種別の領域に移行すると、それに伴って、符号化手段の利用する確率推定テーブルも移行先の画像種別用のものに切り換えられる。これにより、符号化対象シンボルに対応する画像中の部分領域が、画像中の異なる画像種別の領域に移行したときに、学習テーブルの最適化方法（学習方法）が、移行先の画像種別に適したものに変更されるので、学習テーブルの最適化に必要な期間が短縮される。従って、圧縮率をさらに向上させることができる。
【００４４】
また、上記画像データ符号化装置は、上記符号化対象シンボルが上記符号化手段によって順次符号化されることにより得られる算術符号を保持するデータ保持手段をさらに備え、上記符号化データ保持手段は、上記画像種別検出手段によって検出された上記画像種別が、以前に上記画像種別検出手段によって検出された上記画像種別と異なっている場合に、上記算術符号を出力して、自身の保持する算術符号をリセットすることが好ましい。
【００４５】
上記構成によれば、学習テーブルが変更される際に、符号化により得られた算術符号が出力される。従って、復号化の際に、学習テーブルの変更部分における復号化処理が容易になる。
【００４６】
なお、上記符号化手段は、ＱＭ−Ｃｏｄｅｒ方式に従って符号化を行うものであってもよい。また、上記画像データ符号化装置は、上記画像のデータが上記符号化手段によって符号化されることにより得られた符号化済みの画像のデータを画像形成装置に対して出力するデータ出力手段をさらに備えていてもよい。また、上記各手段は、コンピュータがプログラムを実行することにより実現されるものであり、上記描画命令受付手段は、アプリケーションプログラムからオペレーティングシステムを介して上記描画命令を受け付けるものであってもよい。
【００４７】
ところで、上記画像データ符号化装置は、ハードウェアで実現してもよいし、プログラムをコンピュータに実行させることによって実現してもよい。具体的には、本発明に係るプログラムは、上記画像データ符号化装置の各手段としてコンピュータを動作させるプログラムであり、本発明に係る記録媒体には、当該プログラムが記録されている。
【００４８】
これらのプログラムがコンピュータによって実行されると、当該コンピュータは、上記画像データ符号化装置として動作する。従って、複数の異なる画像種別のオブジェクトが混在する画像のデータであっても、高い圧縮率で符号化することができる。
【発明の効果】
【００４９】
以上のように、本発明に係る画像データ符号化装置は、抽出された符号化対象シンボルに対応する画像中の部分領域の画像種別を検出する画像種別検出手段と、画像種別検出手段によって検出された画像種別が、以前に検出された画像種別と異なっている場合に、学習テーブル記憶手段に格納されている学習テーブルを変更する学習テーブル変更手段とを備えた構成となっている。
【００５０】
また、本発明に係る画像データ符号化方法は、画像種別検出手段が、抽出された符号化対象シンボルに対応する画像中の部分領域の画像種別を検出する画像種別検出ステップと、画像種別検出ステップにおいて検出された画像種別が、以前に上記画像種別検出ステップにおいて検出された画像種別と異なっている場合に、学習テーブル変更手段が記憶手段に格納された学習テーブルを変更する学習テーブル変更ステップとを含んだ構成となっている。
【００５１】
従って、上述したように、複数の異なる画像種別のオブジェクトが混在する画像のデータであっても、高い圧縮率で符号化することができる。
【発明を実施するための最良の形態】
【００５２】
本発明の一実施形態に係る画像データ符号化装置及びその制御方法について図１から図１１に基づいて説明すると以下の通りである。本発明に係る画像データ符号化装置は、算術符号化により画像データを符号化するものであり、本実施形態では、一例として、算術符号化の実装形態が特にＱＭ−ｃｏｄｅｒである場合について説明する。すなわち、本実施形態は、本発明を、ＩＴＵ−Ｔ（International Telecommunication Union Telecommunication standardization sector）  WHITE BOOK  ディジタル静止画像圧縮符号化関連勧告書(財団法人 新日本ＩＴＵ協会)勧告Ｔ．８２に記載されている、ＪＢＩＧのＱＭ−Ｃｏｄｅｒに適用した例である。
【００５３】
本実施形態の画像データ符号化装置に関して、本明細書では、ＪＢＩＧのＱＭ−Ｃｏｄｅｒに基づいた構成で、本発明の特徴点とは関連しない構成については、適宜説明を省略することがあるが、本明細書において言及しない構成については、矛盾が生じない限りＩＴＵ−Ｔ勧告Ｔ．８２に従うものとする。ただし、本発明に係る画像データ符号化装置において、算術符号化の実装形態はＪＢＩＧのＱＭ−Ｃｏｄｅｒに限定されず、例えば、ＱＭ−Ｃｏｄｅｒに適宜改良を施したもの等であってもよい。
【００５４】
ＪＢＩＧのＱＭ−Ｃｏｄｅｒは、２値画像データをマルコフ情報源でモデル化し、符号化対象シンボルをその周辺のシンボル群のパターンに基づいて予測し、予測結果に応じて算術符号化する方式を用いている。ＪＢＩＧ圧縮はプログレッシブ方式を取っているが、ここでは、説明を簡単にするために最低解像度レイヤのみを持つＪＢＩＧ圧縮について扱う。また、説明を簡単にするため、コンテクストの形状を変化させるＡＴ（Adaptive Template）移動等のＪＢＩＧの仕様に含まれる付加的な機能に関しては説明を省略する。
【００５５】
まず、本実施形態に係る画像データ符号化装置１が行う算術符号化の概略について説明する。画像データ符号化装置１は、２値画像のデータを算術符号化により圧縮し、それによって得られた圧縮画像データ（符号化済みの画像データ）を出力するものである。この画像データ符号化装置１は、例えば図示しないパーソナルコンピュータのプリンタドライバにおける符号化圧縮部として機能する。このプリンタドライバは、パーソナルコンピュータの図示しない記憶部（記録媒体）に蓄積されたプログラムをパーソナルコンピュータのＣＰＵ（Central Processing Unit）が読み込んで実行することによって実現される。プリンタドライバは、パーソナルコンピュータに対するユーザの指示に応じて、書類データを描画命令により画像データに変換するとともに、この画像データを画像データ符号化装置１を用いてＪＢＩＧ符号化し、プリンタ本体に送信する。この符号化された画像データを受信したプリンタ本体は、画像データを復号化して印刷を行う。
【００５６】
図２は、算術圧縮の概念を説明するための図である。画像データ符号化装置１は、算術符号化を行うために、外部から入力された２値の画像データである入力ビット列（入力シンボル列）を０以上１未満の実数ｘに変換する。より詳細には、０以上１未満の半開区間を、入力ビット（入力シンボル）に応じて分割することにより、実数ｘに対応する半開区間（ｘ以上ｙ未満の区間）を求め、この半開空間の下限値を符号化結果とする。その結果、符号化結果である符号化データは、桁数の多い一つの小数となる。以下では、符号化結果である実数ｘに対応する半開区間（実数ｘの存在し得る範囲）を、インターバルと呼ぶ。
【００５７】
図２に示すように、まだ１ビット（１シンボル）も入力が行なわれていない時点では、明らかにインターバルは０以上１未満の領域となる。画像データ符号化装置１は、このインターバルを、入力ビットに応じて、予め定めた手順で縮小させる。そして、全ての入力ビットに応じてインターバルを変化させた後におけるインターバルの下限値（最小値）である低数が符号化結果となる。
【００５８】
画像データ符号化装置１において、インターバルは、インターバルの下限値である低数と、インターバルの大きさ（下限値と上限値との差）との組み合わせとして記憶される。より詳細には、画像データ符号化装置１は、今回の入力ビットを前回の入力ビットまでの入力ビット列、より詳細には周辺のビット群のパターン（入力画素の周辺の画素に対応する複数の入力ビットの値の組み合わせ）から予測する。以下では、この周辺のビットのパターンをコンテクストという。
【００５９】
画像データ符号化装置１は、上記のコンテクストから、符号化対象ビットにおいて出現する可能性が高い値、及び、その値の出現確率を推定する機能を持っている。これにより、周辺の画素の状態から、入力ビットとして０又は１のどちらの値（シンボル）が出現しやすいかを判断する。
【００６０】
ここで、入力ビットが取り得る０及び１の値のうち、入力ビットに出現する確率が高い方の値（シンボル）を優勢確率シンボル（以下、「ＭＰＳ」ともいう）という。そして、残りの一方（入力ビットに出現する確率が低い方の値）を劣勢確率シンボル（以下、「ＬＰＳ」ともいう）という。すなわち、画像データ符号化装置１は、優勢確率シンボル及び劣勢確率シンボルの出現確率を推定する機能を持っている。
【００６１】
そして、画像データ符号化装置１は、優勢確率シンボルの出現確率と劣勢確率シンボルの出現確率との比によってインターバルを２つの領域に分割し、一方の領域をＭＰＳの出現確率に応じたＭＰＳインターバル、他方の領域をＬＰＳの出現確率に応じたＬＰＳインターバルとする。ここで、分割された２つの領域のうち、０に近い方の領域をＭＰＳインターバルとし、０から遠い方の領域をＬＰＳインターバルとする。
【００６２】
入力ビット列（入力シンボル列）の符号化時には、各ビット（シンボル）の入力に応じて、入力ビット（入力シンボル）と優勢確率シンボル（ＭＰＳ）との比較を行う。入力ビットと優勢確率シンボル（ＭＰＳ）とが一致する場合には、現在のインターバルからＬＰＳインターバルを取り除くように、インターバルを変化させる。一方、入力ビットとＭＰＳとが一致しない場合には、現在のインターバルからＭＰＳインターバルを取り除くように、インターバルを変化させる。
【００６３】
一例として、入力ビット列（入力シンボル列）「０００１」であり、そのときの優勢確率シンボル（ＭＰＳ）が「０１０１」である場合の符号化処理を図２に基づいて説明する。この例において、２ビット目の入力値（前から２つ目の入力シンボル）は劣勢確率シンボルであるから、その入力の符号化時には、ＬＰＳインターバルが符号化後の新たなインターバルとして選択される。すなわち、現在のインターバルからＭＰＳインターバルを取り除くようにインターバルを変化させることで、符号化が行われる。一方、２ビット目以外の入力値（前から１つ目、３つ目、４つ目のシンボル）は優勢確率シンボルであるから、その入力の符号化時には、ＭＰＳインターバルが符号化後のインターバルとして選択される。すなわち、現在のインターバルからＬＰＳインターバルを取り除くようにインターバルを変化させることで、符号化が行われる。
【００６４】
ここで、全ての入力ビット列に対する処理が完了したときのインターバルの低数を実数ｘとし、この実数ｘを符号化結果（符号データ）とする。上述の操作によって、入力ビットが予想される入力ビット（優勢確率シンボル）と一致する場合には、インターバルの低数に変化が生じない。このため、出力値（符号化結果）にも変化が生ずることがなく、新たなビットを出力する必要もないので、これを利用して符号化を行うことができる。なお、全ての入力ビットが優勢確率シンボルであれば符号化結果ｘは０となる。
【００６５】
上述のような操作を行うにあたって、ＱＭ−Ｃｏｄｅｒの動作を模倣している画像データ符号化装置１においては、以下の手順をさらに行う。すなわち、上述の算術符号化処理を実施していくと、インターバルの大きさが次第に小さくなる。このため、やがて計算機の固定精度では表現できなくなってしまう。そこで、インターバルの大きさが０．５以上となるまで繰り返しインターバルの大きさを２倍にする、正規化処理と呼ばれる処理を行う。
【００６６】
画像データ符号化装置１においては、インターバルの大きさを、後述するレジスタ２７内のレジスタＡ（以下、「Ａｒｅｇ」と記す）２７ａに保持（記憶）し、インターバルの低数を、後述するレジスタ２７内のレジスタＣ（以下、「Ｃｒｅｇ」と記す）２７ｂに保持（記憶）している。ここで、本実施形態では、インターバルを、実際の値を２１６倍した値、すなわち0x0〜0x10000の範囲の値で表現する。以下では、１６進表示の値（"0x"を前に付けた値）は、インターバルを２１６倍した値である。従って、１６進表示の値を２１６で割ったものが実際のインターバルの値である。この場合、Ａｒｅｇ２６ａには、０．５（"0x8000"）以上かつ１（"0x10000"）以下となるように正規化されたインターバルの大きさが格納される。
【００６７】
また、Ａｒｅｇ２６ａに記憶される値（インターバルの大きさ）が、正規化処理によって２倍にされる度に、Ｃｒｅｇ２６ｂに記憶される値（インターバルの低数）も２倍とする。このため、Ａｒｅｇ２６ａに記憶される値を２倍化していることによる出力への影響は、相殺（キャンセル）される。また、Ｃｒｅｇ２６ｂの値は、オーバーフローしないように、上位バイトが適時取り出され、符号化結果として出力されるようになっている。なお、この際に発生するキャリーオーバーを解決する方法がＩＴＵ−Ｔ  Ｔ．８２に記載されているが、本発明の内容を理解する上で必須ではないため、ここでは説明を省略する。
【００６８】
また、画像データ符号化装置１においては、以下のようにして近似を行うようになっている。ＬＰＳインターバルを計算するには、本来は、
（インターバルの大きさ）×（ＬＰＳ出現確率）
という演算が必要である。画像データ符号化装置１においては、このＬＰＳインターバルの値を、統計的に求められた推定値（推定ＬＰＳインターバル；以下、適宜、「ＬＳＺ」と略記する）によって近似する。この近似では、その時点でのインターバルの大きさが１（"0x10000"）とは限らないということを考慮せずにインターバルの大きさが１であるものとみなし、ＬＰＳインターバルの値を、統計的に求められたＬＰＳの出現確率の推定値（ＬＳＺ）で近似する。そのため、インターバル全体のうち、推定ＬＰＳインターバルの占める割合は、インターバルの大きさに応じて変化してしまう。しかしながら、インターバルは大きさが０．５以上かつ１以下となるように正規化されているため、誤差はそれほど大きくはならない。
【００６９】
すなわち、上記の近似は、インターバル全体の大きさが０の出現確率と１の出現確率との合計であるものとみなして行うものであるから、本来はインターバル全体の大きさは１であるべきである。しかしながら、演算を行う都合上、インターバル全体の大きさを１にする処理は行わず、インターバル全体の大きさが０．５から１．０までの範囲におさまっていればよいこととしている。このため、インターバルの大きさが小さければ、インターバルからＬＰＳインターバルを引いてＭＰＳインターバルを求めたときに、ＬＰＳインターバルの大きさがＭＰＳインターバルの大きさより大きくなる可能性がある。
【００７０】
以上をまとめると、画像データ符号化装置１において、入力ビット（入力シンボル）としてＭＰＳが与えられた際にはインターバルからＬＳＺを引き、その結果得られたインターバルを新たなインターバルとする。また、画像データ符号化装置１は、入力ビットとしてＬＰＳが与えられたときには、インターバルをＬＳＺに変更する。この操作によって、入力ビットが符号化される。画像データ符号化装置１は、この操作の結果としてインターバルが０．５以下となったときには正規化を行う。正規化が行われたときにはＬＳＺの値を更新する。また、上述の符号化によって、ＭＰＳインターバルよりもＬＰＳインターバルの方が大きくなってしまう場合がある。このときは、ＭＰＳインターバルとＬＰＳインターバルとの入れ替えを行う。
【００７１】
図１は、本実施形態の画像データ符号化装置１の構成を示す機能ブロック図である。図１に示すように、画像データ符号化装置１は、描画命令受付部（描画命令受付手段）１１、領域情報作成部（領域情報作成手段）１２、画像データ作成部（画像データ作成手段）１３、コンテクスト生成部（抽出手段）２１、領域判定部（画像種別検出手段）２２、テーブル変更部（学習テーブル変更手段、テーブル切換手段）２３、取得部２４（符号化手段）、算術符号化部（符号化手段、ループ手段）２６、レジスタ（データ保持手段）２７、領域情報付加部（領域情報付加手段、データ出力手段）２８及び記録部（学習テーブル記憶手段、確率推定テーブル記憶手段、初期テーブル記憶手段）３１を備えている。本実施形態では、これらの各部が、画像データ符号化装置１に備えられた図示しないＣＰＵ等の演算手段がＲＯＭやＲＡＭ等の記録媒体に格納されたプログラムコードを実行することで実現される。すなわち、画像データ符号化装置１は、ハードウェア資源としてＣＰＵ等の演算ユニット及びＲＡＭ等の記憶装置を備えたコンピュータである。
【００７２】
描画命令受付部１１は、画像を作成するための描画命令を受け付けるものである。この描画命令には、例えば、（１）キャンバス上にテキストオブジェクトを描画するよう指示する命令、（２）キャンバス上にグラフィックスオブジェクトを描画するよう指示する命令、及び（３）キャンバス上に、指定されたビットマップオブジェクトを描画するよう指示する命令等が含まれる。
【００７３】
上記の（１）の命令は、キャンバス上に、図示しないフォント記憶部に格納された所望のフォントで所望のテキストを配置するための命令である。上記の（２）の命令は、キャンバス上に、関数によって定義された、例えば直線、曲線、円、多角形、又はそれらを組み合わせた図形を配置するための命令である。上記の（３）の命令は、キャンバス上に、網点或いは誤差拡散等によって表現された写真等のビットマップ画像を配置するための命令である。
【００７４】
画像データ符号化装置１の符号化エンジンが、例えばコンピュータのプリンタドライバとして実装される場合、上記の描画命令は、アプリケーションプログラムから、オペレーティングシステムを介して画像データ符号化装置１に入力される。例えば、オペレーティングシステムがＷｉｎｄｏｗｓ（登録商標）である場合、アプリケーションプログラムは、印刷出力を行う場合に、オペレーティングシステムのＧＤＩ（Graphic Device Interface）関数の呼び出しを行う。すると、呼び出されたＧＤＩ関数は、さらに、プリンタドライバのＤＤＩ（Device Driver Interface）関数の呼び出しを行う。その結果、呼び出されたＤＤＩ関数は、指示されたオブジェクトを描画したビットマップ画像を作成し、プリンタに出力する。ここで、上記のＤＤＩ関数の呼出命令が、上記の描画命令の一例として挙げられる。
【００７５】
なお、ＤＤＩ関数の名前は、オペレーティングシステムによっても異なるが、Ｗｉｎｄｏｗｓ（登録商標）の場合、“DrvEnableDriver()”以外であれば、自由につけることができる。例えば、“DrvBitBlt()”又は“DrvTextOut()”等である。すなわち、オペレーティングシステムとしてＷｉｎｄｏｗｓ（登録商標）を採用する場合、描画命令受付部１１が受け付け可能な描画関数及びその呼出命令を自由に作成することができる。ＤＤＩ関数の呼出命令には、描画オブジェクトの種類を示す上記の関数名に加えて、描画オブジェクトのサイズ及び画像上の配置を指定する情報が引数として含まれる。
【００７６】
なお、描画命令受付部１１は、上述した描画命令を複数受け付けることができる。これにより、後述する画像データ作成部１３は、複数の描画命令に従って、キャンバス上に種別の異なる複数のオブジェクトが混在して配置された画像の画像データを作成することができる。描画命令受付部１１によって受け付けられた描画命令は、領域情報作成部１２及び画像データ作成部１３に送られる。
【００７７】
領域情報作成部１２は、描画命令受付部１１から受け取った描画命令から、領域情報を作成するものである。この領域情報とは、画像データ作成部１３によって作成される画像において、どこに、どのような種類（画像種別）の画像（部分画像）が含まれるかを示す情報である。領域情報作成部１２によって作成された領域情報は、記録部３１に格納される。
【００７８】
この領域情報を作成するため、領域情報作成部１２は、まず、描画命令から、画像上に配置されるオブジェクトの種類と、そのオブジェクトが画像上に占める範囲とを検出する。ここで、画像に含まれるオブジェクトの種類は、描画命令に含まれる関数名に基づいて判別される。また、そのオブジェクトが画像上に占める範囲は、描画命令に含まれる関数の引数に基づいて認識される。
【００７９】
本実施形態において、領域情報作成部１２は、画像上に配置される各オブジェクトを、上述したテキストオブジェクト、グラフィックスオブジェクト及びビットマップオブジェクトのうちの何れかの種別に分類する。そして、作成される画像を、オブジェクトの種別に基づいて区分する。
【００８０】
図３は、領域情報作成部１２による区分の一例を示す図である。図３に示すように、領域情報作成部１２は、画像を、テキストオブジェクトが含まれるテキスト領域と、グラフィックスオブジェクトが含まれるグラフィックス領域と、ビットマップオブジェクトが含まれるビットマップ領域とに区分する。なお、本実施形態において、領域情報作成部１２による画像の区分は、図３に示すように、縦方向についてのみ行われ、横方向については行われない。すなわち、領域情報作成部１２による画像の区分は、画像の（横方向の）ラインによって行われる。
【００８１】
そして、領域情報作成部１２は、各領域の上端及び下端の位置（各画像種別の部分画像が占める範囲）と、その領域の種別を示す領域情報を作成する。この領域情報により、画像中の任意のライン（さらにはそこに含まれる画素）が、テキスト領域、グラフィックス領域及びビットマップ領域のうちの何れの領域に含まれるかを認識することができる。
【００８２】
なお、種別の異なるオブジェクト同士が重なり合う場合、ビットマップ、グラフィックス、テキストの順で優先するものとする。例えば、ビットマップオブジェクト及びグラフィックオブジェクトの双方を含むラインについては、ビットマップ領域として認識するものとする。また、オブジェクトの配置されていないラインについては、何れの領域として認識してもよい。
【００８３】
画像データ作成部１３は、描画命令受付部１１から受け取った描画命令に従って、画像を描画し、その画像を示すビットマップ画像データを作成するものである。このビットマップ画像データは算術符号化の対象となるデータである。なお、本実施形態において、画像データ作成部１３によって描画される画像は、２値（モノクロ２階調）のビットマップ画像である。ただし、本発明は、モノクロ２階調に限定されるものではない。画像データ作成部１３によって作成されたビットマップ画像データは、コンテクスト生成部２１に送られる。
【００８４】
コンテクスト生成部２１は、画像データ作成部１３から受け取ったビットマップ画像データから、符号化の対象となる画素（符号化対象シンボル）と、その周辺の複数画素のパターンを示すコンテクスト（周辺シンボル）とを抽出するものである。図４は、符号化対象の画素とコンテクストとの関係を示した図である。上述のように、ＱＭ−ｃｏｄｅｒを模倣した画像データ符号化装置１では、予測の際に、前回の入力信号までの入力ビット列だけでなく、複数の周辺画素のパターン（コンテクスト）をも用いるようになっている。すなわち、画像データ符号化装置１は、予測の際に、周辺の複数画素がとりうる状態の組み合わせ（コンテクスト）に基づいて、優勢確率シンボル及び劣勢シンボルの出現確率を推定する。
【００８５】
ここで、今回の入力ビットを有する対象画素を選択した場合に、この符号化対象画素の周辺画素として、図３に示すように、対象画素より前に処理された画素のうち、対象画素と同じライン及びこれに隣接するライン（図３では１つ上のライン）に存在する複数画素を周辺画素として選択する。図３の例では、斜線部分が符号化対象となる画素であり、その周辺の１０個の画素によって示されるパターンがコンテクストとなる。
【００８６】
本実施形態では、コンテクストの画素数は１０個であり、各画素の値（シンボル）は０か１の値を持つので、コンテクストは１０２４パターンを取り得る。なお、ＪＢＩＧ圧縮では、最低解像度レイヤのコンテクストとして、図３に示すような２ラインテンプレートの他に、３ラインテンプレートも用意されており、こちらを用いることもできる。ここでは２ラインテンプレートを用いるものとする。
【００８７】
コンテクスト生成部２１は、抽出した画素の値（符号化対象シンボル）及びコンテクスト（周辺シンボル）を取得部２４に送る。また、コンテクスト生成部２１は、算術符号化部２６から画素のインクリメント指示を受け取ると、入力されたビットマップ画像データから、次の対象画素及びコンテクストを抽出する。さらに、本実施形態において、コンテクスト生成部２１は、上記の画素のインクリメント指示により、符号化対象の画素が次のラインに移行すると、移行先の新しいラインの画像中での位置を示す位置情報を領域判定部２２に送る。
【００８８】
取得部２４は、コンテクスト生成部２１から受け取ったコンテクストに対応する優勢確率シンボル（ＭＰＳ）を、記録部３１に格納された学習テーブル３２から取得する。すなわち、取得部２４は、コンテクストから、符号化対象画素の値を推定する機能を有している。さらに、取得部２４は、学習テーブル３２から、コンテクスト生成部２１から受け取ったコンテクストに対応する劣勢確率シンボルの確率推定値のインデックスＳＴを取得する。取得したＭＰＳ及びＳＴは、算術符号化部２６に送られる。
【００８９】
ここで、記録部３１に格納された学習テーブル３２について説明する。図５は、学習テーブル３２の内容を示した図である。図５に示すように、学習テーブル３２では、コンテクストと、そのコンテクストから推定される劣勢確率シンボルの出現確率（ＬＳＺ）を特定するためのインデックスＳＴと、そのコンテクストから推定される優勢確率シンボルＭＰＳとの対応関係が示されている。すなわち、学習テーブル３２を記憶する記録部３１には、コンテクストと、ＳＴと、ＭＰＳとが対応付けて格納されている。
【００９０】
この学習テーブル３２は、画像に含まれる画素が順次符号化されるにつれて最適化される。具体的には、画素の符号化に伴って、学習テーブル３２に含まれるデータのうち、インデックスＳＴ及びＭＰＳが算術符号化部２６により更新される。また、本実施形態では、この学習テーブル３２は、記録部３１に格納された初期学習テーブル３３をテンプレートとして作成される。すなわち、初期状態において、学習テーブル３２は、初期学習テーブル３３と同一の内容を保持しているが、その後、画素の符号化に伴って最適化されていく。
【００９１】
なお、学習テーブル３２に示される優勢確率シンボルは、０又は１の値を取る。また、ＬＳＺのインデックスＳＴは、ＪＢＩＧにおいては、０から１１２までのいずれかの値を取る。このＬＳＺのインデックスＳＴは、後述するＪＢＩＧの確率推定テーブル３４において、近傍１０画素に出現した０又は１の値（シンボル）のパターン（コンテクスト）ごとに、これまで注目画素の位置に出現した値（シンボル）の履歴から注目画素に出現するであろう値（シンボル）の出現確率を特定するために用いられる。
【００９２】
算術符号化部２６は、取得部２４から受け取った符号化対象画素の値、ＭＰＳ及びインデックスＳＴから、算術符号である実数ｘを符号化済みデータとして生成する。本実施形態において、算術符号化部２６による算術符号化の操作は、従来のＱＭ−Ｃｏｄｅｒのそれと同一である。算術符号化部２６は、前処理部２６ａ、ＭＰＳ処理部２６ｂ、ＬＰＳ処理部２６ｃ及びＲＥＮＯＲＭ処理部２６ｄを含んでいる。
【００９３】
前処理部２６ａは、取得部２４から、符号化対象シンボルとして受け取った符号化対象画素の値（符号化対象シンボル）と、ＭＰＳとを比較し、符号化対象シンボルがＭＰＳと一致するか否かを判定する。ここで、符号化対象シンボルがＭＰＳと一致した場合はＭＰＳ処理部２６ｂが機能し、一致しなかった場合はＬＰＳ処理部２６ｃが機能する。すなわち、ＭＰＳ処理部２６ｂは、優勢確率シンボルを符号化するためのものであり、ＬＰＳ処理部２６ｃは、劣勢確率シンボルを符号化するためのものである。また、ＲＥＮＯＲＭ処理部２６ｄは、上述した正規化処理を行うためのものである。
【００９４】
ＭＰＳ処理部２６ｂ及びＬＰＳ処理部２６ｃは、取得部２４から受け取ったシンボルとインデックスＳＴとに基づいて、該シンボルを符号化し、実数ｘを求める。ＭＰＳ処理部２６ｂ又はＬＰＳ処理部２６ｃは、算術符号化を行うにあたって、まず、記録部３１に格納された確率推定テーブル３４…を参照し、インデックスＳＴに対応する、劣勢確率シンボルの出現確率推定値ＬＳＺを取得する。
【００９５】
ここで、確率推定テーブル３４…について説明する。図６は、記録部３１に格納された複数の確率推定テーブル３４…のうちの１つの内容を示す図である。図６に示すように、確率推定テーブル３４には、インデックスＳＴと、劣勢確率シンボルの出現確率推定値ＬＳＺとの対応関係が示されている。換言すれば、確率推定テーブル３４を格納する記録部３１には、ＳＴとＬＳＺとが対応付けて格納されている。このＬＳＺは、上述したように、インターバルを変化させるために用いられる。
【００９６】
また、確率推定テーブル３４には、インデックスＳＴと、学習テーブル３２の更新内容との対応関係が示されている。具体的には、インデックスＳＴと、ＮＬＰＳ、ＮＭＰＳ、及びＳＷＩＴＣＨとが対応付けられている。
【００９７】
ここで、ＮＬＰＳは、ＬＰＳ処理部２６ｃが劣勢確率シンボルを符号化したときの、コンテクストに対応付けられる次のインデックスＳＴの値を意味するものである。すなわち、符号化対象シンボルが劣勢確率シンボルの場合、学習テーブル３２に含まれるＳＴのうち、コンテクスト生成部２１が抽出したコンテクストに対応するＳＴが、ＮＬＰＳによって上書きされる。
【００９８】
一方、ＮＭＰＳは、ＭＰＳ処理部２６ｂが優勢確率シンボルを符号化したときの、コンテクストに対応付けられる次のインデックスＳＴの値を意味するものである。すなわち、符号化対象シンボルが優勢確率シンボルの場合、学習テーブル３２に含まれるＳＴのうち、コンテクスト生成部２１が抽出したコンテクストに対応するＳＴが、ＮＭＰＳによって上書きされる。
【００９９】
また、ＳＷＩＴＣＨは、優勢確率シンボルと劣勢確率シンボルとの入れ替えを行うかどうかを示すフラグであり、１の場合にシンボルの入れ替えを行うことを示す。すなわち、ＭＰＳ処理部２６ｂ及びＬＰＳ処理部２６ｃは、符号化対象シンボルとともに受け取ったインデックスＳＴに対応付けられたＳＷＩＴＣＨが１の場合、学習テーブル３２のＭＰＳの値を反転させる（０から１あるいは１から０に変更する）。
【０１００】
以上のように、確率推定テーブル３４を記憶する記録部３１には、ＳＴとＬＳＺとＮＬＰＳとＭＰＳとＳＷＩＴＣＨとが対応付けて格納されている。これらの更新情報に基づいて学習テーブル３２の内容を更新することにより、コンテクストから推定される劣勢確率シンボルの出現確率の値が、符号化したシンボルをも加味したものに更新される。
【０１０１】
なお、本実施形態では、確率推定テーブル３４が、３つの画像種別ごとに用意される。すなわち、テキスト領域用、グラフィックス領域用、及びビットマップ領域用の３つの領域用の確率推定テーブル３４…が記録部３１に格納され、算術符号化部２６は、符号化対象画素の含まれるラインが属する領域に対応する確率推定テーブル３４を参照する。
【０１０２】
なお、確率推定テーブル３４は、例えばビットマップ領域用であればディザパターンを考慮したものとなり、一方、グラフィックス領域用であれば線画を意識したものとなる。各領域に好適な確率推定テーブル３４は、実験的にそれぞれの画像種別の画像を何枚かを符号化し、統計的に圧縮率がよくなるテーブルを求めて作成すればよい。
【０１０３】
領域判定部２２は、コンテクスト生成部２１によって抽出された符号化対象の画素が、テキスト領域、グラフィックス領域及びビットマップ領域のうち、何れの領域に属するかを、コンテクスト生成部２１から受け取った画素の位置情報と、記録部３１に格納された領域情報３５とに基づいて判定する。この判定結果は、領域判定部２２に保持される。そして、領域判定部２２は、今回の符号化対象画素についての判定結果と、保持している前回の符号化対象画素についての判定結果とを比較し、両者が異なっていれば、テーブル変更部２３にテーブルの変更を指示する。
【０１０４】
テーブル変更部２３は、領域判定部２２からの指示に従い、記録部３１に格納された学習テーブル３２のリセット、及び、算術符号化部２６によって参照される確率推定テーブル３４の切り換えを行うものである。
【０１０５】
学習テーブル３２のリセットは、未最適化状態の初期学習テーブル３３の内容に基づいて、学習テーブル３２のデータを上書きすることにより行われる。これにより、本実施形態では、学習テーブル３２が未学習の初期状態へとリセットされる。一方、算術符号化部２６によって参照される確率推定テーブル３４の切り換えは、算術符号化部２６に、符号化対象の画素が属する領域に応じた確率推定テーブル３４を参照させるようにして行われる。
【０１０６】
これらの領域判定部２２及びテーブル変更部２３により、符号化対象の画素が異なる画像種別の領域に移行した場合に、学習テーブルのリセットが行われるとともに、算術符号化部２６によって参照される確率推定テーブル３４が、新たな領域に適したものに切り換えられる。
【０１０７】
レジスタ２７は、算術符号化部２６によって生成された算術符号（実数ｘ）を保持するものである。レジスタ２７は、上述したように、Ａｒｅｇ２７ａ及びＣｒｅｇ２７ｂを有し、Ａｒｅｇ２７ａにはインターバルの大きさが、また、Ｃｒｅｇ２７ｂには実数ｘとなるインターバルの低数が記録される。
【０１０８】
領域情報付加部２８は、画像データが全て符号化されたときに、符号化済みに画像データに対して、領域情報作成部１２によって作成された領域情報を付加し、復号化のときに利用できるようにするものである。
【０１０９】
なお、画像データ符号化装置１に含まれる上記の各ブロックは、ハードウェアロジックによって構成することもできるが、本実施形態では、次のようにＣＰＵを用いてソフトウェアによって実現している。
【０１１０】
すなわち、画像データ符号化装置１は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラム及び各種データを格納するメモリ等の記憶装置（記録媒体）等を備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである画像データ符号化装置１の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記画像データ符号化装置１に供給し、そのコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１１１】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系等を用いることができる。
【０１１２】
また、画像データ符号化装置１を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０１１３】
次に、本実施形態の画像データ符号化装置１の動作について説明する。図７〜図９は、本実施形態の画像データ符号化装置１による処理を示すフロー図である。
【０１１４】
まず、画像データ符号化装置１の描画命令受付部１１は、アプリケーションプログラム等から、上述した描画命令を受け付ける（Ｓ１１）。そして、描画命令受付部１１は、受け付けた描画命令を、領域情報作成部１２及び画像データ作成部１３に送る。
【０１１５】
次に、領域情報作成部１２は、受け取った描画命令に基づいて、画像データ作成部１３において作成される画像を、図３に示すように画像種別ごとの部分画像に区分し、区分した結果得られた部分画像の画像中に占める範囲を示す領域情報を作成する（Ｓ１２）。そして、領域情報作成部１２は、作成した領域情報を記録部３１に格納する。
【０１１６】
次に、画像データ作成部１３は、描画命令受付部１１から受け取った描画命令に従って、２値画像のビットマップ画像データを作成する（Ｓ１３）。この画像データに対応する画像は、例えば、図３の枠で囲まれた部分に示される画像である。そして、画像データ作成部１３は、作成した画像データをコンテクスト生成部２１に送る。
【０１１７】
コンテクスト生成部２１は、画像データを受け取ると、受け取った画像データに対応する画像（ビットマップ画像）を少なくとも１つ以上のストライプに分割する（Ｓ１４）。このストライプは、圧縮処理を行う単位であり、画像中の１ライン以上の横ラインからなる。そして、コンテクスト生成部２１は、圧縮対象となる画素に含まれるストライプを選択する。このストライプの選択順序は、特に限定されないが、例えば、画像の上から下に向けて順次選択される。Ｓ１４〜Ｓ３４におけるストライプについてのループ（ＬＯＯＰ＿Ａ）によって、全てのストライプに対して処理が完了すると、画像全体の圧縮が完了する。
【０１１８】
続いて、コンテクスト生成部２１は、圧縮対象となる画素（対象画素）を選択する（Ｓ１５）。この対象画素の選択は、特に限定されないが、例えば、ストライプの左端から右端に向けて順次行う。また、対象画素がラインの端部に到達した場合は、次のラインに移行する。なお、Ｓ１５〜Ｓ３２のループ（ＬＯＯＰ＿Ｂ）にて対象画素についての圧縮を行い、ストライプに含まれる全ての画素の処理が完了すると１つのストライプの処理が完了したことになる。そして、コンテクスト生成部２１は、対象画素の位置情報を領域判定部２２に送る。
【０１１９】
次に、領域判定部２２は、コンテクスト生成部２１から受け取った対象画素の位置情報に基づいて、対象画素がラインの先頭にあるか否かを判定する（Ｓ１６）。ここで、対象画素がラインの先頭でなかった場合は、Ｓ２２に進む。一方、対象画素がラインの先頭である場合は、Ｓ１７に進む。
【０１２０】
Ｓ１７において、領域判定部２２は、対象画素が上述したテキスト領域、グラフィックス領域、ビットマップ領域のいずれの領域に含まれるかを、コンテクスト生成部２１から受け取った対象画像の位置情報と、記録部３１に格納された領域情報とに基づいて判定する。続いて、領域判定部２２は、今回の領域判定結果を、保持していた前回の領域判定結果と比較し、２つの領域判定結果が異なるか否かを判定する（Ｓ１８）。
【０１２１】
ここで、２つの領域判定結果が異なる場合は、学習テーブル３２のリセット及び確率推定テーブル３４の切り換えが必要と判断し、今回の領域判定結果を保持してＳ１９に進む。一方、２つの領域判定結果が一致する場合は、今回の領域判定結果を保持してＳ２２に進む。
【０１２２】
ステップＳ１９において、テーブル変更部２３は、領域判定部２２の指示に従って、後述する算術符号化部２６によって参照される確率推定テーブル３４の切り換えを行う。本実施形態では、上述したように、記録部３１に、３つのそれぞれの領域に適した確率推定テーブルが格納されており、これらのテーブルの中から、テーブル変更部２３が、領域判定部２２による領域判定結果に基づいて、対象画素の含まれる領域に適した確率推定テーブル３４を選択する。そして、テーブル変更部２３は、選択したテーブル３４を、算術符号化部２６によって参照される確率推定テーブル３４として設定する。この処理により、後述するＳ２５、Ｓ２８、Ｓ２９、Ｓ３１において算術符号化部によって参照される確率推定テーブルが、テーブル変更部２３によって選択されたものへと変更される。
【０１２３】
続いて、テーブル変更部２３は、記録部３１の学習テーブル３２のリセットを行う（Ｓ２０）。本実施形態において、学習テーブル３２のリセットは、上述したように、学習テーブル３２の内容を、記録部３１に格納された初期学習テーブル３３の内容で上書きすることによって行われる。これにより、学習テーブル３２の内容は、未学習の初期状態に戻る。
【０１２４】
次に、レジスタ２７が、Ｃｒｅｇ２７ｂに保持されている符号化済みのデータ（算術符号）を領域情報付加部に出力するフラッシュ処理を行う（Ｓ２１）。これにより、Ａｒｅｇ２７ａ及びＣｒｅｇ２７ｂの内容はリセットされる。
【０１２５】
Ｓ２２において、コンテクスト生成部２１は、対象画素の値を符号化対象シンボルとして読み取るとともに、周辺画素群の値を読み取りコンテクストを生成する。そして、符号化対象シンボルとコンテクストとを取得部２４に送る。
【０１２６】
次に、取得部２４は、コンテクスト生成部２１から受け取ったコンテクストに基づいて、記録部３１の学習テーブル３２から、優勢確率シンボル（ＭＰＳ）及び劣勢確率シンボルの確率推定値のインデックスＳＴを取得する（Ｓ２３）。具体的には、取得部２４は、学習テーブル３２において、受け取ったコンテクストに対応するＭＰＳ及びＳＴを取得する。そして、取得部２４は、符号化対象シンボルならびに取得したＭＰＳ及びＳＴを算術符号化部２６に送る。
【０１２７】
次に、算術符号化部２６の前処理部２６ａは、受け取った符号化対象シンボルとＭＰＳとを比較して、符号化対象シンボルがＭＰＳであるか否かを判定する（Ｓ２４）。ここで、符号化対象シンボルがＭＰＳであった場合は、Ｓ２５に進み、ＭＰＳ処理部２６ｂが算術符号化を行う（ＣＯＤＥ＿ＭＰＳ：Ｓ２５〜Ｓ２８）。一方、対象画素の値がＭＰＳでなくＬＰＳであった場合は、Ｓ２９に進み、ＭＰＳ処理部２６ｂが算術符号化を行う（ＣＯＤＥ＿ＬＰＳ：Ｓ２９〜Ｓ３１）。
【０１２８】
Ｓ２５では、ＭＰＳ処理部２６ｂが、記録部３１の確率推定テーブル３４を参照して、取得部２４から受け取ったインデックスＳＴに対応する劣勢確率シンボルの確率推定値（ＬＳＺ）を取得する。また、ＭＰＳ処理部２６ｂは、レジスタ２７のＡｒｅｇ２７ａ及びＣｒｅｇ２７ｂから、現在のインターバルの情報を取得する。そして、ＭＰＳ処理部２６ｂは、現在のインターバルをＬＳＺに基づいて分割し、分割により得られた新たなインターバルについての情報をレジスタ２７のＡｒｅｇ２７ａ及びＣｒｅｇ２７ｂに格納する（Ｓ２５）。その結果、レジスタ２７には、Ｓ１５において選択された画素の値（優勢確率シンボル）を含む画素データが符号化された算術符号データが格納される。
【０１２９】
次に、ＭＰＳ処理部２６ｂは、Ａｒｅｇ２７ａの値が０．５（0x8000）未満か否かを判別する（Ｓ２６）。ここで、Ａｒｅｇ２７ａの値が０．５未満の場合は、Ｓ２７に進み正規化処理を行う。一方、Ａｒｅｇ２７ａの値が０．５以上の場合は、Ｓ３２に進む。
【０１３０】
Ｓ２７では、ＲＥＮＯＲＭ処理部２６ｄが、ＭＰＳ処理部２６ｂの指示に従い、レジスタ２７のＡｒｅｇ２７ａ及びＣｒｅｇ２７ｂに対して正規化処理を行い（Ｓ２７）、レジスタ２７に対して、符号化済みデータを必要に応じて領域情報付加部２８に出力させる。
【０１３１】
次に、ＭＰＳ処理部２６ｂは、記録部３１の確率推定テーブル３４を参照して、取得部２４から受け取ったインデックスＳＴに対応するＮＭＰＳ及びＳＷＩＴＣＨを取得する。そして、ＭＰＳ処理部２６ｂは、取得したＮＭＰＳに基づいて、学習テーブル３２の、Ｓ２２において生成したコンテクストに対応するインデックスＳＴを更新する（Ｓ２８）。また、このとき、ＳＷＩＴＣＨに応じて学習テーブル３２のＭＰＳの反転も行う。これにより、コンテクストから学習テーブル３２によって導かれるＬＳＺの値が、符号化対象シンボルを加味したものに更新される。そして、Ｓ３２に進む。
【０１３２】
一方、Ｓ２９では、ＬＰＳ処理部２６ｃが、記録部３１の確率推定テーブル３４を参照して、取得部２４から受け取ったインデックスＳＴに対応する劣勢確率シンボルの確率推定値（ＬＳＺ）を取得する。また、ＬＰＳ処理部２６ｃは、レジスタ２７のＡｒｅｇ２７ａ及びＣｒｅｇ２７ｂから、現在のインターバルの情報を取得する。そして、ＬＰＳ処理部２６ｃは、現在のインターバルをＬＳＺに基づいて分割し、分割により得られた新たなインターバルについての情報をレジスタ２７のＡｒｅｇ２７ａ及びＣｒｅｇ２７ｂに格納する。その結果、レジスタ２７には、Ｓ１５において選択された画素の値（劣勢確率シンボル）を含む画素データが符号化された算術符号データが格納される。
【０１３３】
次に、ＬＰＳ処理部２６ｃは、記録部３１の確率推定テーブル３４を参照して、取得部２４から受け取ったインデックスＳＴに対応するＮＬＰＳ及びＳＷＩＴＣＨを取得する。そして、ＬＰＳ処理部２６ｃは、取得したＳＷＩＴＣＨに応じて、学習テーブル３２の、Ｓ２２において生成したコンテクストに対応するＭＰＳを反転させる（Ｓ３０）。
【０１３４】
続いて、ＬＰＳ処理部２６ｃは、取得したＮＬＰＳに基づいて、学習テーブル３２の、Ｓ２２において生成したコンテクストに対応するインデックスＳＴを更新する（Ｓ３１）。これにより、コンテクストから学習テーブル３２によって導かれるＬＳＺの値が、符号化対象シンボルを加味したものに更新される。
【０１３５】
Ｓ３２では、ＭＰＳ処理部２６ｂ又はＬＰＳ処理部２６ｃがコンテクスト生成部２１に対して画素インクリメントの指示を行い、Ｓ１５１に戻る。これにより、画素単位の符号化処理が完了する。この符号化処理が、Ｓ１４で選択されたストライプに含まれる全ての画素について行われると、Ｓ３３に進み、レジスタ２７が符号化済みのデータのフラッシュ処理を行う。そして、Ｓ１４に戻る。これにより、ストライプ単位の符号化処理が完了する（Ｓ３４）。
【０１３６】
この符号化処理が、画像に含まれる全てのストライプについて行われると、領域情報付加部２８には、算術符号によって表現された符号化済みの画像データの全部が蓄積される。最後に、領域情報付加部２８は、記録部３１から領域情報３５を読み取って符号化済みの画像データに付加する（Ｓ３５）とともに、得られたデータを、インターフェースを介して図示しない画像形成装置に出力し、処理を完了する。
【０１３７】
以上のように、本実施形態の画像データ符号化装置１は、周辺シンボルのパターンであるコンテクストとＬＳＺを特定するためのインデックスＳＴとの対応関係が示された学習テーブル３２、及び、インデックスＳＴとＬＳＺとＮＬＰＳ、ＮＭＰＳ及びＳＷＩＣＴＨとの対応関係が示された確率推定テーブル３４を格納する記録部３１と、画像データから符号化対象画素の値とコンテクストとを抽出するコンテクスト生成部２１と、コンテクスト生成部２１によって抽出されたコンテクストに対応するインデックスＳＴを学習テーブル３２から取得し、取得したインデックスＳＴに対応するＬＳＺ及びＮＬＰＳ又はＮＭＰＳを確率推定テーブル３４から取得し、取得したＬＳＺに基づいて符号化対象画素の値を算術符号化により符号化するとともに、符号化対象画素の値とＭＰＳとの比較結果に応じてＮＬＰＳ又はＮＭＰＳに基づいて学習テーブル３２に含まれるインデックスＳＴを更新する算術符号化部２６とを備えている。また、算術符号化部２６は、自身も含めた上記各部による処理を繰り返し実行させるために、画素インクリメントの指示を出力する。
【０１３８】
これにより、画像データ符号化装置１は、画像を構成する画素の値を符号化対象シンボルとし、この符号化対象シンボルを、周辺シンボルのパターンから推定されるＬＳＺに基づいて算術符号化により順次符号化する構成となっている。
【０１３９】
ここで、本実施形態の画像データ符号化装置１は、さらに、コンテクスト生成部２１によって抽出された符号化対象画素が含まれる領域の画像種別を検出する領域判定部２２と、領域判定部２２によって検出された画像種別が、以前に検出された画像種別と異なっている場合に、学習テーブル３２を変更するテーブル変更部２３とを備えている。
【０１４０】
これにより、符号化対象画素が異なる画像種別の領域に移行した場合に、テーブル変更部２３によって学習テーブル３２の内容が変更されるので、他の画像種別用に最適化された学習テーブル３２を用いて、符号化対象画素の値の符号化を行うことがない。従って、圧縮率が低下してしまうのを抑制することができる。
【０１４１】
なお、本実施形態の画像データ符号化装置１では、上記の学習テーブル３２の変更方法として、学習テーブル３２のリセット（初期化）を行う構成となっている。すなわち、本実施形態の画像データ符号化装置１の記録部３１には、学習テーブル３２のテンプレートとなる初期学習テーブル３３が格納され、テーブル変更部２３は、符号化対象画素が異なる画像種別の領域に移行した場合に、学習テーブル３２を初期学習テーブル３３に基づいてリセットする構成となっている。
【０１４２】
これにより、符号化対象画素が異なる画像種別の領域に移行した場合に、他の画像種別用に最適化された学習テーブル３２の内容がリセットされるので、学習テーブル３２が或る画像種別用に最適化された後に、符号化対象画素が画像種別の異なる領域に移行しても、圧縮率が低下してしまうのを抑制することができる。
【０１４３】
なお、本実施形態では、上述したように、記録部３１に単一の初期学習テーブル３３を用意しておき、学習テーブル３２のリセットをこの初期学習テーブル３３によって行う構成としたが、本発明はこれに限定されず、記録部３１に、画像種別ごとに初期学習テーブル３３…を用意しておき、テーブル変更部２３は、符号化対象画素が異なる画像種別の領域に移行した場合に、算術符号化部２６が利用する学習テーブル３２を、符号化対象画素の含まれる領域の画像種別に応じた初期学習テーブル３３に基づいてリセットしてもよい。すなわち、この場合、図１０に示すように、記録部３１には、テキスト領域用、グラフィックス領域用及びビットマップ領域用の３つの初期学習テーブル３３ａ〜３３ｃが格納され、符号化対象画素が属する領域用の初期学習テーブル３３ａ〜３３ｃに基づいて学習テーブル３２のリセットが行われる。
【０１４４】
これにより、符号化対象画素が画像種別の異なる領域に移行した場合に、学習テーブル３２が移行先の領域の画像種別に適した内容に書き換えられるので、学習テーブル３２が最適化されるまでの期間が短縮される。その結果、圧縮率を向上させることができる。
【０１４５】
なお、初期学習テーブル３３は、例えばビットマップ領域用であればディザパターンを考慮したものとなり、一方、グラフィックス領域用であれば線画を意識したものとなる。各領域に好適な初期学習テーブル３３は、実験的にそれぞれの画像種別の画像を何枚かを符号化し、統計的に最適化までの期間が短いテーブルを求めて作成すればよい。
【０１４６】
また、学習テーブル３２の変更方法の変形例として次のものが挙げられる。すなわち、変形例では、記録部３１に、学習テーブル３２のテンプレートである初期学習テーブル３３ではなく、図１１に示すように、学習テーブル３２そのものを画像種別ごとに用意しておく。つまり、記録部３１に、テキスト領域用、グラフィックス領域用及びビットマップ領域用の３つの学習テーブル３２ａ〜３２ｃを格納しておく。そして、テーブル変更部２３は、符号化対象画素が異なる画像種別の領域に移行した場合に、算術符号化部２６が利用する学習テーブル３２を、符号化対象画素の含まれる領域の画像種別に応じた学習テーブル３２に切り換える構成とする。
【０１４７】
これにより、符号化対象画素が画像種別の異なる領域に移行した場合に、学習テーブル３２が移行先の領域の画像種別に応じたものに切り換えられ、テキスト領域の画素を符号化するときはテキスト領域用の学習テーブル３２ａを用い、グラフィックス領域の画素を符号化するときはグラフィックス領域用の学習テーブル３２ｂを用い、ビットマップ領域の画素を符号化するときはビットマップ領域用の学習テーブル３２ｃを用いることになる。そのため、符号化対象画素が画像種別の異なる領域に移行した際に、学習テーブル３２を再び最適化する必要がない。その結果、圧縮率をさらに向上させることができる。
【０１４８】
なお、本実施形態では、符号化対象画素が画像種別の異なる領域に移行した場合に、テーブル変更部２３が必ず学習テーブル３２の変更（リセット）を行う構成としたが、本発明はこれに限定されず、符号化対象画素が画像種別の異なる領域に移行し、かつ、所定の条件を満たしたときに、学習テーブルの変更（リセット）を行ってもよい。この場合、例えば、符号化対象画素がグラフィックス領域からテキスト領域へ移行したとき、及び、テキスト領域からグラフィックス領域へ移行したときには、学習テーブルの変更（リセット）を行わず、符号化対象画素がビットマップ領域から他の領域へ移行したとき、及び、他の領域からビットマップ領域へ移行したときのみ、学習テーブルの変更（リセット）を行ってもよい。
【０１４９】
また、本実施形態では、符号化対象画素が含まれる領域の画像種別は、次のようにして検出される。すなわち、画像データ符号化装置１は、画像を作成するために画像中に所望の種類のオブジェクトを所望の位置に配置するよう指示する描画命令を受け付ける描画命令受付部１１と、描画命令受付部１１が受け付けた描画命令に従って、画像のデータを作成する画像データ作成部１３とをさらに備えている。そして、領域判定部２２は、描画命令受付部１１の受け付けた描画命令に基づいて、符号化対象画素が含まれる領域の画像種別を検出する。
【０１５０】
より具体的には、画像データ符号化装置１が、描画命令受付部１１の受け付けた描画命令から、画像中に配置されるオブジェクトの種類と当該オブジェクトの画像中に占める範囲との情報を取得し、取得したオブジェクトの種別及び範囲の情報に基づいて画像をテキスト領域、グラフィックス領域及びビットマップ領域に区分するとともに、区分した各領域の画像種別と当該領域の上記画像中に占める範囲とを示す領域情報を作成する領域情報作成部１２をさらに備えている。そして、領域判定部２２は、領域情報作成部１２の作成した領域情報に基づいて、符号化対象画素が含まれる領域の画像種別を検出する。
【０１５１】
このように本実施形態の画像データ符号化装置１では、画像データを作成するための描画命令によって配置が指示されるオブジェクトの種類及び当該オブジェクトが画像中に占める範囲に基づいて、画像中の各位置における画素が属する領域の画像種別を検出する。従って、ビットマップ画像のデータを基に統計的手法を用いて領域判定を行う従来の方法に比べて、領域判定を正確かつ簡便に行うことができる。
【０１５２】
なお、本実施形態では、画像をライン単位で画像種別ごとの領域に区分したが、本発明はこれに限定されず、画素単位で画像種別ごとの領域に区分してもよい。この場合、上述したＳ１６の処理を省略すればよい。このようにすれば、領域判定処理の回数が増えるため処理量は増加するが、判定の頻度が上がることにより、学習テーブル３２の変更を迅速に行い、圧縮率を一層向上させることができる。
【０１５３】
また、本実施形態の画像データ符号化装置１は、記録部３１に、テキスト領域用、グラフィックス領域用及びビットマップ領域用の３つの確率推定テーブル３４…が格納されている。そして、テーブル変更部２３は、符号化対象画素が異なる画像種別の領域に移行した場合に、算術符号化部２６によって参照される確率推定テーブル３４を、符号化対象画素が含まれる領域の画像種別に応じた確率推定テーブル３４に切り換える構成となっている。
【０１５４】
確率推定テーブル３４…は、学習テーブル３２の更新情報を含んでいるため、学習テーブル３２の更新方法（学習方法）を決定するものであるともいえる。従って、上記の構成により、学習テーブル３２の最適化方法を画像種別ごとに変更することができ、学習テーブル３２の最適化を効率よく行うことができる。
【０１５５】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１５６】
本発明によれば、画像データを高い圧縮率で符号化することができる。従って、画像データを圧縮して送信する必要がある各種装置、例えばファクシミリ送信機、あるいは画像形成装置へ画像データを出力する出力装置等に好適に利用することができる。
【図面の簡単な説明】
【０１５７】
【図１】本発明の一実施形態を示すものであり、画像データ符号化装置の構成を示す機能ブロック図である。
【図２】算術符号化の処理内容を説明する図である。
【図３】本発明の一実施形態を示すものであり、画像を画像種別ごとの領域に区分する様子を示した図である。
【図４】符号化対象の画素とコンテクストに用いられる周辺画素との位置関係を示す図である。
【図５】学習テーブルの内容を示す図である。
【図６】確率推定テーブルの内容を示す図である。
【図７】本発明の一実施形態を示すものであり、画像データ符号化装置による処理の前期部分を示すフロー図である。
【図８】本発明の一実施形態を示すものであり、画像データ符号化装置による処理の中期部分を示すフロー図である。
【図９】本発明の一実施形態を示すものであり、画像データ符号化装置による処理の後期部分を示すフロー図である。
【図１０】本発明の他の実施形態を示すものであり、記録部の内容を示したものである。
【図１１】本発明のさらに他の実施形態を示すものであり、記録部の内容を示したものである。
【図１２】従来技術を示すものであり、ＱＭ−Ｃｏｄｅｒの構成を示すブロック図である。
【図１３】従来技術を示すものであり、ＱＭ−Ｃｏｄｅｒによる処理の流れを示すフロー図である。
【符号の説明】
【０１５８】
１  画像データ符号化装置
１１  描画命令受付部（描画命令受付手段）
１２  領域情報作成部（領域情報作成手段）
１３  画像データ作成部（画像データ作成手段）
２１  コンテクスト生成部（抽出手段）
２２  領域判定部（画像種別検出手段）
２３  テーブル変更部（学習テーブル変更手段、テーブル切換手段）
２４  取得部（符号化手段）
２６  算術符号化部（符号化手段、ループ手段）
２７  レジスタ（データ保持手段）
２８  領域情報付加部（領域情報付加手段）
３１  記録部（学習テーブル記憶手段、確率推定テーブル記憶手段、初期テーブル記憶手段）
３２  学習テーブル
３３  初期学習テーブル（初期テーブル）
３４  確率推定テーブル
３５  領域情報
【図１】
2007295130.tif 000003
【図２】
2007295130.tif 000004
【図３】
2007295130.tif 000005
【図４】
2007295130.tif 000006
【図５】
2007295130.tif 000007
【図６】
2007295130.tif 000008
【図７】
2007295130.tif 000009
【図８】
2007295130.tif 000010
【図９】
2007295130.tif 000011
【図１０】
2007295130.tif 000012
【図１１】
2007295130.tif 000013
【図１２】
2007295130.tif 000014
【図１３】
2007295130.tif 000015