(57)【特許請求の範囲】
【請求項１】
画像をブロック単位に符号化する画像処理方法であって、
符号化対象ブロックについて、該符号化対象ブロックを所定複数個のサブブロックに分割するサブブロック分割ステップと、
前記符号化対象ブロック及び前記複数のサブブロックの夫々に対して、複数用意された符号化モードから最適な各１つを選択する符号化モード選択ステップと、
前記符号化対象ブロックを該ブロックの為に選択された符号化モードを用いて符号化して得られる符号量と、前記複数のサブブロックの夫々を該各ブロックの為に選択された符号化モードを用いて符号化して得られる符号量の総和とを比較する比較ステップと、
前記比較の結果、前記符号化対象ブロックの符号量が少ない場合には、該符号化対象ブロックを符号化する符号化ステップとを備え、
前記比較の結果、前記複数のサブブロックの総符号量が少ない場合には、更に、前記サブブロックの各々を新たな符号化対象ブロックと見なして、前記新たな符号化対象ブロックの各々について、前記所定複数個のサブブロックへの分割、前記符号化モードの選択、前記符号量の比較、及び前記比較の結果に応じて該符号化対象ブロックの符号化を行い、
前記複数用意された符号化モードにはハフマン符号化の実行を伴う符号化モードを含み、該符号化モードにおいて、複数種類のハフマンテーブルのうち前記符号化対象ブロックのサイズに対応するハフマンテーブルを用いてハフマン符号化を実行することを特徴とする画像処理方法。
【請求項２】
前記符号化モード選択ステップでは、前記各ブロックに対して、複数用意された符号化モードから、符号量が最小となる符号化モードを選択することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記複数のサブブロックの総符号量が少ない場合の一連の処理は、該一連の処理における符号量の比較の結果が複数のサブブロックの総符号量が少ない場合において、再帰的に実行されることを特徴とする請求項１に記載の画像処理方法。
【請求項４】
画像をブロック単位に符号化する画像処理装置であって、
符号化対象ブロックについて、該符号化対象ブロックを所定複数個のサブブロックに分割するサブブロック分割手段と、
前記符号化対象ブロック及び前記複数のサブブロックの夫々に対して、複数用意された符号化モードから最適な各１つを選択する符号化モード選択手段と、
前記符号化対象ブロックを該ブロックの為に選択された符号化モードを用いて符号化して得られる符号量と、前記複数のサブブロックの夫々を該各ブロックの為に選択された符号化モードを用いて符号化して得られる符号量の総和とを比較する比較手段とを備え、
前記比較の結果、前記符号化対象ブロックの符号量が少ない場合には、該符号化対象ブロックを符号化し、
前記比較の結果、前記複数のサブブロックの総符号量が少ない場合には、更に、前記サブブロックの各々を新たな符号化対象ブロックと見なして、前記新たな符号化対象ブロックの各々について、前記所定複数個のサブブロックへの分割、前記符号化モードの選択、前記符号量の比較、及び前記比較の結果に応じて該符号化対象ブロックの符号化を行い、
前記複数用意された符号化モードにはハフマン符号化の実行を伴う符号化モードを含み、該符号化モードにおいて、複数種類のハフマンテーブルのうち前記符号化対象ブロックのサイズに対応するハフマンテーブルを用いてハフマン符号化を実行することを特徴とする画像処理装置。
【請求項５】
前記符号化モード選択手段は、前記各ブロックに対して、複数用意された符号化モードから、符号量が最小となる符号化モードを選択することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記複数のサブブロックの総符号量が少ない場合の一連の処理は、該一連の処理における符号量の比較の結果が複数のサブブロックの総符号量が少ない場合において、再帰的に実行されることを特徴とする請求項４に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願発明は画像の符号化を行う画像処理装置及び方法に関するものである。
【０００２】
【従来の技術】
従来、多値画像の可逆符号化方式としてＤＰＣＭ（ＤｉｆｆｅｒｅｎｔｉａｌＰｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）が広く知られている。一般的なＤＰＣＭによる符号化は、符号化対象画素の周囲にある符号化済の画素、すなわち左画素（これをａとする）、上画素（同様にｂ）、左斜め画素（同様にｃ）を用いて符号化対象画素の予測値（平面予測）を例えば、式（ａ＋ｂ−ｃ）を用いて算出し、これと符号化対象画素値との差分を符号化するものである。
【０００３】
写真などの自然画像をスキャンした画像データに代表される多値階調画像は、画像中の部位により統計的性質が大きく異なるものである。統計の差異は、画像中のエッジや輝度勾配の方向等の局所構造の違いにより起こるものである。
【０００４】
従来例に示したＤＰＣＭ方式による画素値予測は、これら局所的な構造のうち、部分的に二次元平面に近似されうるものに対してのみ有効であり、他の構造に対しては却ってダイナミックレンジを増やしてしまい逆効果となる。
【０００５】
これを補う形として、例えば、符号化をブロック単位とし、ブロック内で支配的な構造に対して有効な符号化方法を用い、その方式を示すインデクスをサイド情報として符号化する方法が考えられる。
【０００６】
しかしながら、画像内の局所構造は、一般に、平坦（低周波構造）部分は面積が広く、輝度変化が急崚なエッジや細線構造では数画素程度の小さな構造をとるものである。
【０００７】
従ってブロック単位で処理を行う場合、平坦部では大きなブロックを用いるのが有利であり、微細構造部では小さなブロックを用いた方が効率が良いという背反を生じる。
【０００８】
さらにつけ加えるならば、平坦部分でも、その形状が複雑なものもあれば、高周波構造でも広い面積にわたって一様に広がるものもある。以上の様に従来、画像の性質に応じて最適な画像処理単位で最適な符号化方法を用いた符号化を行うことは出来ないという問題があった。
【０００９】
上述の問題を解決するために本願発明は画像の性質に応じて、最適な画像処理単位で最適な符号化方法を用いた符号化を行うことを目的とする。
【００１０】
また、ブロック単位の符号化において従来よりも更に効率の良い符号化を行うことを別の目的とする。
【００１１】
【課題を解決するための手段】
上述の課題を解決するために、本願発明の請求項１に記載の画像処理装置によれば、画像をブロック単位に符号化する画像処理方法であって、符号化対象ブロックについて、該符号化対象ブロックを所定複数個のサブブロックに分割するサブブロック分割ステップと、前記符号化対象ブロック及び前記複数のサブブロックの夫々に対して、複数用意された符号化モードから最適な各１つを選択する符号化モード選択ステップと、前記符号化対象ブロックを該ブロックの為に選択された符号化モードを用いて符号化して得られる符号量と、前記複数のサブブロックの夫々を該各ブロックの為に選択された符号化モードを用いて符号化して得られる符号量の総和とを比較する比較ステップと、前記比較の結果、前記符号化対象ブロックの符号量が少ない場合には、該符号化対象ブロックを符号化する符号化ステップとを備え、前記比較の結果、前記複数のサブブロックの総符号量が少ない場合には、更に、前記サブブロックの各々を新たな符号化対象ブロックと見なして、前記新たな符号化対象ブロックの各々について、前記所定複数個のサブブロックへの分割、前記符号化モードの選択、前記符号量の比較、及び前記比較の結果に応じて該符号化対象ブロックの符号化を行い、前記複数用意された符号化モードにはハフマン符号化の実行を伴う符号化モードを含み、該符号化モードにおいて、複数種類のハフマンテーブルのうち前記符号化対象ブロックのサイズに対応するハフマンテーブルを用いてハフマン符号化を実行することを特徴とする。
【００１２】
【発明の実施の形態】
本願発明の実施の形態の一例を図１及び図２を用いて説明する。
【００１３】
図１は画像の符号化復号化を行うための回路構成であり、１は画像データの符号化及び復号化をソフトウェア処理で行うことができるＣＰＵ制御部、２は画像データを取り込む画像入力部、３は画像データを印刷するプリンタ部、４は画像データをモニタなどに表示する表示部、５はＣＰＵ制御部１で符号化されたデータを送信、又は外部機器から送信された符号化データを受信することができる通信制御部、６は画像メモリである。
【００１４】
まず画像入力部２から入力された画像データ（ここでは８ｂｉｔ階調の輝度画像データとする）は、一旦画像メモリ６に蓄積される。
【００１５】
次に画像メモリ６内の画像データに対し、後述する図２のフローチャートの様なソフトウェア処理をＣＰＵ制御部１を用いて行い符号化する。
【００１６】
なお、符号化の方法は、正方ブロック単位で符号化が行われ、基本ブロックサイズは１２８×１２８画素の正方ブロックである。また最小単位のブロックサイズは４×４画素の正方ブロックであり、後述するブロックサイズを変化させて符号化出来る様な符号化を行う。
【００１７】
図２の各ステップでの処理の説明の前に、本実施例で画像のブロック単位に用いる複数の符号化方式について説明する。
【００１８】
ある符号化単位のブロック（本実施例では４×４，８×８，１６×１６，３２×３２，６４×６４，１２８×１２８画素）の注目画素＊について、図３（ａ）に示す様に周囲画素をａ、ｂ、ｃとする。さらに符号化単位ブロックの左上コーナーの画素値をＣ０（ゼロ）とする。
【００１９】
このとき、本実施例における符号化方式は、上述の画素を用いて図３（ｂ）の様に示される。
【００２０】
符号化方法は全部で９種類を設定し、この内＃０番〜＃５番の６種類の符号化方法は周辺画素との差分値を符号化する予測符号化方法であり、差分値（予測誤差）を後述するハフマン符号を用いて符号化するものである。
【００２１】
ハフマンテーブルは同じブロックサイズの＃０番〜＃５番の符号化方法には共通のものを用いるが、ブロックサイズが異なる場合は、予測誤差の統計も異なるので、各々の符号化単位のブロックサイズに適したハフマンテーブルを用いる。よって本実施例では４×４，…，１２８×１２８画素のブロックに対応する計６個のハフマンテーブルを有する。
【００２２】
次に＃６番の“平面近似モード”の符号化方法を説明する。
【００２３】
図３（ａ）のブロック内のＣ０の画素位置を３次元（ｘ軸，ｙ軸，ｚ軸）の（Ｏ，Ｏ，Ｃ０）であると仮定し、図の右方向（主走査方向とする）をｘ軸，図の下方向（副走査とする）をｙ軸とする。
【００２４】
ここで符号化単位のブロック全体の画素値に対するＺ方向の自乗誤差を求めることにより平面（ｚ＝Ｃ０＋ａｘ＋ｂｙ）として近似し、ａ、ｂを求める。
【００２５】
ブロック内のＫ番目画素値をｄｋ、そのｘ，ｙ座標、をｘｋ  ，ｙｋ  とすると、Ｚ方向の自乗誤差のブロック全体の和Εは、
【００２６】
【外１】
0003618833.tif 000002
となる。
【００２７】
これを展開し、
【００２８】
【外２】
0003618833.tif 000003
とおくと、
Ε＝Ａａ２＋２Ｄａ＋Ｂｂ２＋２Ｅｂ＋Ｃ＋２Ｆａｂとなる。
【００２９】
これに対して
【００３０】
【外３】
0003618833.tif 000004
として解くことにより、
ａ＝（ＢＤ−ＦＥ）／（Ｆ２  −ＢＡ），ｂ＝（ＡＥ−ＦＤ）／（Ｆ２  −ＢＡ）となる。Ａ，Ｂ，Ｆはブロック内の位置が関係するだけであり、ｋに対して一定の値であるから、画素値ｄｋ  が関係するＣ，Ｄ，Ｅの値を測定することによりａ，ｂが簡単に求まる。ａ，ｂを±０．５の範囲でクリップし、このクリップされた区間を０〜２５５の値にデジタル化する。即ちデジタイズ後のａ，ｂの値をａ′，ｂ′とすると、
ａ′＝１２８＋ｆｌｏｏｒ（１２８ａ＋０．５），ｂ′＝１２８＋ｆｌｏｏｒ（１２８ｂ＋０．５）となる。
【００３１】
上述で求められたデジタル値ａ′，ｂ′を用いて予測誤差ｅｋ  を求めると、
ｅｋ  ＝ｄｋ  −〔｛ｘｋ  （ａ′−１２８）＋ｙｋ  （ｂ′−１２８）｝／２５６＋Ｃ０〕
となる。
【００３２】
以上の様にして最適近似平面を定義するパラメータａ及びｂが求まり、この平面との予測誤差が求まる。
【００３３】
次に求められた値をいかに符号化するかについて説明する。
【００３４】
通常符号データは図４（ａ）〜（ｄ）に示す様な構造となる。
【００３５】
即ち符号化対象のブロックに対して＃６番の“平面近似モード”が用いられたことを示すハフマン符号とａ′，ｂ′の値（固定長）と、Ｃ０もしくはＣ０′（Ｃ０′は前の符号化対象のブロックＣ０との差分）の符号を送る。
【００３６】
次に完全近似フラグデータを送る。完全近似フラグとは、符号化対象のブロック内の画素に対する予測誤差ｅｋ  が全て０になったかどうかを示すフラグであり、全て０ならばフラグオン（本実施例では１）にしてデータを終える。そうでなければフラグオフ（本実施例では０）にして、その後に、上述で発生した予測誤差ｅｋ  をハフマン符号化したデータをｅ０  から順に送る。
【００３７】
ここでｅｋ  の符号化用いるハフマンテーブルと＃０番〜＃５番の符号化方法に用いるハフマンテーブルは同じものを用いることにし、このテーブルは図２のＳ１及びＳ７について後述されるハフマンテーブルである。
【００３８】
ここでＣ０とＣ０′のいずれを用いるかは、傾きのパラメータａ′，ｂ′によって異なる。ａ′，ｂ′に対しては各々にしきい値を設定する。本例ではこの値を１６とし、０〜２５５の値をとるａ′，ｂ′の値が両方とも１２８±１６（本実施例の１２８は通常のグラフの傾き０に対応）の範囲に収まった時、即ちａ′，ｂ′とも傾きが小さい時にＣ０′が小さくなる可能性があるのでＣ０′を用いることとする。それ以外の場合にはＣ０を用いる。
【００３９】
Ｃ０は固定長で送るがＣ０′の場合はハフマン符号を用いる。このＣ０′に用いるハフマンテーブルは固定であり、本実施例では図３（ｅ）のテーブルを用いる。
【００４０】
次に図３（ｂ）における＃７番の“一様モード”の符号化方法について説明する。この符号化方法はブロック内の全データが同一画素値である時に用いられ、画像に枠がついていたり、ＣＧ（コンピュータグラフィック）の背景等に対して有効である。
【００４１】
符号データは図４（ｂ）に示す様になり、符号化方法を示すハフマン符号と、＃６番の符号化方法で用いたＣ０′と同じ性質をもつＣ０′の符号とを送る。
【００４２】
次に＃８番の“二値モード”の符号化方法について説明する。
【００４３】
これは、符号化対象のブロック内に２種類の画素値しか存在しない場合に用いる方法である。
【００４４】
２種類の画素値の内、輝度の高い方の画素値をＤ１  、他方をＤ２  とした時に、最初の画素をＤ１  を仮定して、図５（ａ）に示す様な画像スキャンを行うことによりＤ１  ，Ｄ２  が交互に発生する場合のランレングスを符号化する。
【００４５】
この得られたランレングスに対して予め用意されたハフマン符号化を行う。１つのランレングスデータは、０個以上のＭａｋｅ  ｕｐ  Ｃｏｄｅと１つのＴｅｒｍｉｎａｔｉｎｇ  Ｃｏｄｅとを用いて表される。
【００４６】
Ｔｅｒｍｉｎａｔｉｎｇ  Ｃｏｄｅはランレングスが０〜１２７までを表すコードである。Ｍａｋｅ  ｕｐ  Ｃｏｄｅは１２８以上の大きな値を表すコードである。これらのコードは各々に用意されたハフマンテーブルにより符号化される。
【００４７】
ブロック中の最後のランはそのまま符号化されずＥＯＢのコードを付加して処理される。Ｄ１  、Ｄ２  を例えば白、黒とすると、ハフマンテーブルは白、黒で別個に持つものとし、固定のテーブルとする。
【００４８】
以上で本実施例に用いられる９種類の符号化方法についての説明を終わる。なお、この複数の符号化方法は、符号化対象のブロックサイズを変化させて符号化できる後述の符号化方法において、各々の異なる領域のブロックに対して、上記９種類の内の最適な符号化方法を選択して割り当てながら、１画面内の符号化方法の決定処理が行われる。
【００４９】
詳細は後述する。
【００５０】
次に符号化処理全体の流れを表す図２の各ステップの処理について詳細に説明する。
【００５１】
ステップＳ１ではステップＳ３の処理の際前述の＃０〜＃６の符号化方法に用いる基準のハフマンテーブルを各ブロックサイズに対して１つ設定する。
【００５２】
ステップＳ２では、画像メモリ６に蓄積された画像データを、基本ブロックである１２８×１２８画素単位に分割し、この基本ブロック毎に順次取り出す。
【００５３】
ステップＳ３では、画像データをステップＳ９で最終的に符号化する際のブロック（符号化対象ブロックとする）への分割方法、及び分割された各々のブロックに対する最適符号化方法（＃０〜＃８）を仮決定する。以下、詳細に説明する。
【００５４】
符号化対象ブロック（ブロック分割方法）は１つの正方ブロックを符号化する際に発生する符号量と、該正方ブロックを４分割した４つのサブブロックを符号化する際に発生する総符号量とを比較した結果に基づいて仮決定される。
【００５５】
あるサイズの正方ブロックとそのサブブロックの様子を図６に示す。
【００５６】
２ｎ  ×２ｎ  画素の正方ブロックをＢ、これを４分割して得られる２ｎ−１  ×２ｎ−１  画素のサブブロックをｂ０  〜ｂ３  とする。
【００５７】
１つの正方ブロックＢに対し、前述の＃０〜＃８の９種類の符号化方法のうち、＃ｉを用いた時の符号化データの符号量を求める関数をＣｉとし、符号量をＣｉ（Ｂ）と書くことにする。
【００５８】
また、９種類の符号化方法を用いて符号化された符号化データの符号量のうち、最小の符号量を求める関数をＢＷとすると、ＢＷ（Ｂ）＝ｍｉｎ（Ｃｉ（Ｂ））と書ける。
【００５９】
また、あるサイズのブロックに対する最小符号量を求める関数をＭＣとする。この時、前述のＢ，ｂｉ等を用いて以下の様に書ける。
【００６０】
【外４】
0003618833.tif 000005
【００６１】
本実施例では最小サブブロックのサイズを４×４画素としているので、上式及び
【００６２】
【外５】
0003618833.tif 000006
となる。ここでＳＦは、サブブロックへの分割の有無を表すためのフラッグのデータ量であり、本実施例では、１つのブロック、サブブロックを更に４分割するか否かを表せれば良く、１ｂｉｔの符号を要する。
【００６３】
従ってＳＦ＝１となる。
【００６４】
また、ＨＤはＢＷ関数によって選ばれたｉを表す為の情報量であり本実施例ではｉの情報を専用のハフマンテーブルでハフマン符号化する。
【００６５】
符号化対象ブロックのサイズを仮決定する方法を簡単に説明すると、上述の式を用いてある正方ブロックの符号量とこのサブブロックの総符号量のうち符号量の少ない方のブロックサイズを選択し、この結果サブブロックの方を選択した場合には、各々のサブブロックを上述の正方ブロックに置き換えて、更にブロックサイズの選択を行うものである。また、各ブロックの符号量は、９種類の符号化方法の１番相性の良い方法を用いて算出されたものである。
【００６６】
上記の式によって示されるブロック分割方法及び分割された各ブロックの符号化方法の仮決定の様子を図７に示す。
【００６７】
図７のブロック分割例は、１２８×１２８画素を基本ブロック（符号化対象ブロックの最大サイズ）とし、再帰的にブロックを４分割して符号化対象ブロックを仮決定した結果である。
【００６８】
実際には、１２８×１２８画素ブロック内を右上から左下にかけてエッジが横断している場合に図の様なブロック分割が起こる。また、分割された符号化対象ブロックの各々は独立の符号化方法（＃０〜＃８番）を有している。
【００６９】
図８は、図６のブロック分割例に基づいて記述されたブロック分割方法及び分割されたブロック（符号化対象ブロック）各々の符号化方法を示すデータの形態を表している。
【００７０】
図中Ｐｎ  は前述したＳＦ（ブロック分割の有無）に対応する１ビットのデータ（ブロック分割データとする）であり、Ｐｎ  ＝１ならばそのブロックを分割、Ｐｎ  ＝０ならばブロック分割せずに符号化方法を示すデータを続ける。（ｎは処理対象のブロックサイズを示す。）
【００７１】
例えば、（Ｐ１２８  ＝１），（Ｐ６４＝１），（Ｐ３２＝０）とビットが続いた場合には（１２８×１２８画素ブロックが４分割）、（左上の６４×６４画素ブロックを４分割），（左上の３２×３２画素ブロック分割せず）と判断し、符号化方法を表すハフマンデータｈｄ（前述のＨＤに対応）を付ける。更に続いて（Ｐ３２＝１），…と続く。
【００７２】
Ｐｎ  ＝１ならば続けてブロック分割データＰｎ／２  が続く。
【００７３】
また図８において、最小ブロックサイズ符号化対象ブロックＢ５  〜Ｂ８  ，Ｂ９  〜Ｂ１２に対応するデータには、ブロック分割データは付けない。これは最小ブロックを分割することがないので必ずＰ４  ＝０となるからである。
【００７４】
符号化対象ブロック※から※※までのブロック分割データ及び符号化方法を示すデータは省略する。
【００７５】
ステップＳ４  では、図８に示したブロック分割データ及び符号化方法を示すデータを保存しておく。
【００７６】
ステップＳ５  では、ステップＳ３  で分割された図７に示す各々の符号化対象ブロックの中で、符号化方法の＃０番〜＃６番までを用いて符号化されることが仮決定されているブロックに対して、符号化時に発生する差分値（予測誤差）の統計を各ブロックサイズ毎にとる処理を行う。
【００７７】
例えば図７において、Ｂ１  とＢ１４、又はＢ４  とＢ１３、又はＢ５  〜Ｂ８  とＢ４  〜Ｂ１２は、同じブロックサイズなので、まとめて統計がとられ、１画面分の統計を蓄積する。
【００７８】
本実施例では予測誤差−２５５〜２５５の計５１１個のカウンターが各々のブロックサイズに必要なので計６×５１１個のカウンターを用いる。
【００７９】
ステップＳ６ではステップＳ２〜ステップＳ５までの１２８×１２８画素単位のブロック処理を１画面分行ったらステップＳ７へ、１画面の途中ならばステップＳ２  にもどり次のブロックの処理に進む。
【００８０】
ステップＳ７では、ステップＳ５でとられた６つの統計に基づいて、各ブロックサイズに最適なハフマンテーブル（最適ハフマンテーブル）が作成される。
【００８１】
ステップＳ８では予め設定しておいた最適化処理のループ数を満たしたか否かが判定され、ループ数を満たしていればステップＳ９へ、満たしていなければステップＳ１へもどり、前述で作成されたハフマンテーブルをステップＳ１の基準ハフマンテーブルとして書き換える。これは基準ハフマンテーブルよりも符号化対象の画像に基づいて作成された最適ハフマンテーブルを用いて符号化対象ブロックを生成する為のブロック分割、及び符号化方法を決定し直すことにより、更に効率の良い符号化が行えるからである。
【００８２】
ステップＳ８で設定回数のループを行ったら、最後のループで決定されたブロック分割方法及び符号化方法、ならびに作成された最適ハフマンテーブルを最終的な符号化に用いる参照情報として保存し、ステップＳ９へ進む。
【００８３】
ステップＳ９では参照情報を元に画像の符号化を行い符号化データを出力する。
【００８４】
図９はステップＳ９での符号化処理の流れを示したものである。同図に於いてＳ８０は最適ハフマンテーブルを符号化するステップ、Ｓ８１は基本ブロックのサイズのブロックデータを取り出すステップ、Ｓ８２はこのブロックデータに対応する参照情報を取り出すステップ、Ｓ８３は参照情報に従ってこのブロックを符号化するステップ、Ｓ８４は画像の終端を判定するステップである。
【００８５】
まず、ステップＳ８０では１２８×１２８画素ブロック用ハフマンテーブル６４×６４画素ブロック用ハフマンテーブル、３２×３２画素ブロック用ハフマンテーブル、１６×１６画素ブロック用ハフマンテーブル、８×８画素ブロック用ハフマンテーブル、４×４画素ブロック用ハフマンテーブルを符号化して出力する。
【００８６】
ステップＳ８１では、画像データから順に基本ブロックのサイズでブロックデータを取り出す。
【００８７】
ステップＳ８２では、このブロックデータに対する参照情報を呼び出す。ステップＳ８３で、参照情報とこの参照情報に従ってブロックデータを符号化して生成した符号化データ列を出力する。ステップＳ８４では画像の終端を判定し、未処理のブロックがある場合には次のブロックについてステップＳ８１から処理を行う。
【００８８】
以上の処理により、図１０に示す様な画像データに対する符号化データ列を生成し、出力する。なお、データの順番は、１画素単位でなくブロック単位で送る様にしても良い。以上で第１の実施の形態の説明を終る。
【００８９】
また、ブロック分割の方法としてブロックを同サイズに４分割する方法を挙げたが、ブロックサイズを可変にしても良い。
【００９０】
また、第１の実施の形態では図６の様にある正方ブロックの符号量とこれを４分割した複数のサブブロック符号量とに基づいて、ブロック分割して符号化対象ブロックを決定していたが、最大ブロック（１２８×１２８画素）から最小ブロック（４×４）までの全てのブロックについての符号量を求めてこれら全ての符号量に基づいてブロック分割しても良い。
【００９１】
また、初めに最小ブロックの符号量を求め、このブロックをサブブロックと見なし、図６の様に４つのサブブロック（４×４画素）の総符号量とこれらを合わせた領域のブロック（８×８画素）の符号量とに基づき仮のブロック分割方法と符号量を決定し、４つの決定された領域（８×８画素）の総符号量と決定された領域（８×８画素）から構成される更に大きなブロック（１６×１６画素）の符号量とに基づき新たに仮のブロック分割方法を決定し、最大ブロックサイズ１２８×１２８画素までこれを繰り返すことにより符号化対象ブロックを決定する様にしても良い。
【００９２】
また、選択可能なブロック符号化方法として予測符号化方法と平面符号化方法、ランレングス符号化方法を用いたが、予測方法を変えるなどして適用方法を変えたり、あるいはマルコフモデル符号化方法等、別の符号化方法を用いても良いことは言うまでもない。更に、上述の実施の形態では各符号化方法におけるエントロピー符号方法としてハフマン符号化を用いているが、勿論これは算術符号化等、他のエントロピー符号化方法を用いてもよい。
【００９３】
またブロック分割方法の決定は、符号量に基づいて行われていたが、実際に符号化することにより符号化効率を求め、この符号化効率に基づいて行う様にしても良い。
【００９４】
【発明の効果】
以上のように本願発明によれば、画像の性質に応じて、最適なサイズのブロック単位で最適な符号化方法を用いた符号化を行うことができる。
【００９５】
また、ブロック単位の符号化において、それぞれのブロックサイズに適した符号化を行うことにより、従来よりも更に効率の良い符号化を行うことができる。
【図面の簡単な説明】
【図１】本願発明の実施例に用いる装置の図。
【図２】本願発明の実施例の全体の流れを表すフローチャート。
【図３】実施例で用いる符号化方法を説明する図。
【図４】＃６，＃７の符号化方法を用いた際の符号化データ形態及び該符号化方法に用いるＣ０′に対するハフマンテーブルを示す図。
【図５】二値符号化方法で用いるブロック内のスキャン方法と符号化データ形態を説明
する図及び二値符号化で用いるランレングスの一覧表を示す図。
【図６】ある正方ブロックとそのサブブロックを表す図。
【図７】符号化対象ブロックを求める為に基本ブロックを更にブロック分割した様子を
示す図。
【図８】ブロック分割情報の形態を表す図。
【図９】Ｓ９の符号化処理についてのフローチャート。
【図１０】最終的に符号化された画像データを示す図。
【符号の説明】
１  ＣＰＵ制御部
【図１】
0003618833.tif 000007
【図２】
0003618833.tif 000008
【図３】
0003618833.tif 000009
【図４】
0003618833.tif 000010
【図５】
0003618833.tif 000011
【図６】
0003618833.tif 000012
【図７】
0003618833.tif 000013
【図８】
0003618833.tif 000014
【図９】
0003618833.tif 000015
【図１０】
0003618833.tif 000016