(57)【特許請求の範囲】
【請求項１】
着目画素周辺の周辺画素値に応じて第１の分散値を算出するとともに、前記周辺画素値に基づいて算出された前記着目画素の予測値に応じて第２の分散値を算出し、横軸が前記着目画素の値と前記予測値との差分である予測誤差であり、縦軸が前記予測誤差の出現確率である確率分布を考えた場合に、左右の一方で前記第１の分散値を有し他方で前記第２の分散値を有する左右非対称な確率分布に対応する符号表を、前記第１の分散値と前記第２の分散値とに応じて選択する符号表選択部と、
前記着目画素の値から前記予測値を引いた残差を前記選択された符号表により符号化又は復号化する符号化又は復号化部と
を含むことを特徴とする画像処理装置。
【請求項２】
前記符号表選択部は、異なる複数の分散値を有する複数の確率分布に対応する複数の符号表を備え、前記複数の符号表から前記第１の分散値に応じて第１の符号表を選択し、前記複数の符号表から前記第２の分散値に応じて第２の符号表を選択し、前記第１の符号表と前記第２の符号表とを組み合わせることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記選択された符号表に対応する確率分布は、前記予測値よりも隣接画素値が大きい場合には正の領域での分散値が負の領域での分散値よりも大きく、前記予測値よりも前記隣接画素値が小さい場合には負の領域での分散値が正の領域での分散値よりも大きいことを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
画像処理装置が、着目画素周辺の周辺画素値に応じて第１の分散値を算出するとともに、前記周辺画素値に基づいて算出された前記着目画素の予測値に応じて第２の分散値を算出し、
画像処理装置が、横軸が前記着目画素の値と前記予測値との差分である予測誤差であり、縦軸が前記予測誤差の出現確率である確率分布を考えた場合に、左右の一方で前記第１の分散値を有し他方で前記第２の分散値を有する左右非対称な確率分布に対応する符号表を、前記第１の分散値と前記第２の分散値とに応じて選択し、
画像処理装置が、前記着目画素の値から前記予測値を引いた残差を前記選択された符号表により符号化又は復号化する
各段階を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に画像処理装置及び方法に関し、詳しくは符号化又は復号化を行なう画像処理装置及び方法に関する。
【背景技術】
【０００２】
ＰＮＧ（Portable Network Graphics）やＪＰＥＧ（Joint Photographic Experts Group）−ＬＳに代表される画像の可逆符号化方式は、圧縮時に画質が劣化しないため、主に高精細であることが要求される画像の圧縮に採用されている。これらの静止画像可逆圧縮においては、周辺画素から圧縮対象画素の画素値を予測し、その予測値と実画素値との差分を取ることで画像の冗長性を有効に活用している。予測によって生成された残差を高い圧縮率で圧縮するためには、発生する予測残差の確率分布に基づいて構築された可変長符号表を使用するハフマン符号化が有効である。ハフマン符号による静止画像圧縮では圧縮前に予測値を生成し、圧縮対象画素との残差を計算し、残差の分布を計算する。その分布に基づいて各差分値の出現確率を示すハフマン木を構築することでハフマン符号表を生成する。その後、生成したハフマン符号表によって圧縮データを生成する。この方法においては、圧縮データを展開する際には圧縮に使用した符号表が既知でなければならないため、圧縮データには圧縮された残差データだけでなく、符号表そのものを付加することで展開を可能にしている。符号表そのものを圧縮データに付加するため、圧縮データのサイズが増大してしまうが、ある程度以上の画像サイズである場合は、実際には圧縮データに占める符号表のサイズは問題にならない。例えば、1920x1088画素の画像の輝度を圧縮する場合、一画素を8bitとし、圧縮率を50%とすると、圧縮データのサイズは約1Mbyteである。一方、可変長符号の最大長を16bitとした場合でも、全差分に対する符号を持つのに必要なサイズは高々1Kbyte程度であり、圧縮データのサイズの0.1%程度のサイズであるため、圧縮率を損なうことは実質的に無いといえる。
【０００３】
このように符号表のサイズは圧縮データに対して十分に小さいが、ハフマン符号表を構築するためには一度画像全体を走査しなければならない。このため、入力画像格納メモリとして、一画面全体が収まるだけのメモリが必要となってしまう。また、一度画像全体を走査しなければ符号化を開始できないため、逐次符号化が困難であり、符号化速度の面でも高速化が困難である。逐次符号化を実現するためには、一画面全体を走査することをせずに、予め用意された符号表を使用する方式が考えられる。しかしこの場合の符号表は、情報源の確率分布に応じたハフマン符号ではないので、最適な効率を実現するハフマン符号化に対して圧縮率が劣ってしまう。そのため、画像を所定のブロックに分割し、ブロック単位で複数の符号表の中から圧縮率が最も高いものを選択することが一般的に行われている。この場合、各ブロックは独立に圧縮されるため、符号表選択と符号化のために必要なメモリは所定単位のブロックが収まるだけのサイズでよく、ブロック単位で逐次符号化することが可能である。この構成において予め用意される符号表はラプラス分布や正規分布などの特定の汎用的な確率密度関数に基づいたものである。これは予測残差の分布は一般的に０が最も多く、残差が大きくなるにつれて出現頻度が低下する左右対称の分布となることに基づいている。このように符号表が汎用的な確率密度関数に基づくものである場合、各ブロックで使用する符号表は、各ブロックで発生する予測残差のばらつき具合、すなわち分散から決定することができる。
【０００４】
この構成においてハフマン符号化に近い圧縮率を達成するためには、より細かなブロック単位で符号表選択をすればよい。しかしながら、ブロックのサイズが小さくなるほど、使用した符号表を示すフラグビットのサイズが圧縮データに対して相対的に大きくなるので、圧縮率が低下してしまう。また、高精細な画像ブロックでは周辺画素との相関性が低く、生成した予測値が実際の画素値と大きく異なる場合が多くなるため、特定の確率密度関数に基づいた符号表では高い圧縮率を達成できない。特に、ブロックサイズが小さいほど、残差の分布は、中心０で左右対称である期待される分布とは異なってしまい、圧縮率が低下するという問題が発生してしまう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−１０７４９２号公報
【特許文献２】特開２０００−１１５７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上を鑑みると、局所的な画像領域に対して符号表を選択する静止画像可逆圧縮方式において、画像領域が小さい場合でも高い圧縮率を達成できる画像処理装置及び方法を提供することが望まれる。
【課題を解決するための手段】
【０００７】
画像処理装置は、着目画素周辺の周辺画素値に応じて第１の分散値を算出するとともに、前記周辺画素値に基づいて算出された前記着目画素の予測値に応じて第２の分散値を算出し、横軸が前記着目画素の値と前記予測値との差分である予測誤差であり、縦軸が前記予測誤差の出現確率である確率分布を考えた場合に、左右の一方で前記第１の分散値を有し他方で前記第２の分散値を有する左右非対称な確率分布に対応する符号表を、前記第１の分散値と前記第２の分散値とに応じて選択する符号表選択部と、前記着目画素の値から前記予測値を引いた残差を前記選択された符号表により符号化又は復号化する符号化又は復号化部とを含むことを特徴とする。
【０００８】
画像処理方法は、画像処理装置が、着目画素周辺の周辺画素値に応じて第１の分散値を算出するとともに、前記周辺画素値に基づいて算出された前記着目画素の予測値に応じて第２の分散値を算出し、画像処理装置が、横軸が前記着目画素の値と前記予測値との差分である予測誤差であり、縦軸が前記予測誤差の出現確率である確率分布を考えた場合に、左右の一方で前記第１の分散値を有し他方で前記第２の分散値を有する左右非対称な確率分布に対応する符号表を、前記第１の分散値と前記第２の分散値とに応じて選択し、画像処理装置が、前記着目画素の値から前記予測値を引いた残差を前記選択された符号表により符号化又は復号化する各段階を含むことを特徴とする。
【発明の効果】
【０００９】
本願開示の少なくとも１つの実施例によれば、左右で異なる分散値を有する左右非対称な確率分布に対応する符号表用いることにより、効率的な符号化を実現し、高い圧縮率を達成できる。
【図面の簡単な説明】
【００１０】
【図１】２つのピークを有する予測誤差の確率分布の一例を示す図である。
【図２】符号表の選択について説明するための図である。
【図３】左右非対称な確率分布の一例を示す図である。
【図４】２つの符号表を組み合わせることにより構成した左右非対称な確率分布に対応する符号表の一例である。
【図５】符号化装置の構成の一例を示す図である。
【図６】図５に示す符号化装置の動作の流れを示したフローチャートである。
【図７】固有分散値表を生成する処理の一例を示すフローチャートである。
【図８】複数の符号表のデータ構成の一例を示す図である。
【図９】複数の符号表を生成する処理を示すフローチャートである。
【図１０】ラスタスキャン順を示す図である。
【図１１】ラスタスキャン順で先に走査された画素により予測値及び隣接画素値を求める処理の一例を説明するための図である。
【図１２】図５に示す符号化装置による符号化処理の流れを示すフローチャートである。
【図１３】復号化装置の構成の一例を示す図である。
【図１４】図１３に示す復号化装置による符号化処理の流れを示すフローチャートである。
【図１５】符号化及び復号化を行なう画像処理システムの構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
画像の可逆圧縮には、周辺画素の画素分布や過去に圧縮した際の情報を基に予測値を計算し、着目画素値（符号化対象画素値）と予測値との差分を符号化する第１の方式と、単純に着目画素値と隣接点との差分を符号化する第２の方式とが存在する。自然画像の可逆圧縮に対しては第１の方式の方が第２の方式よりも差分値が小さくなると言われている。しかしながら第１の方式により複雑な計算式で予測値を生成するまでもなく、周辺状態に関係なく第２の方式で単純に隣接画素値を予測値として用いても、十分に差分値が小さくなる場合がある。
【００１２】
ここで、第１の方式の予測値をｅとし、隣接代表点の画素値（隣接画素値）をｃとする。着目画素値は、予測値ｅと一致する確率が最も高い。しかしながら、着目画素の周辺の局所的な画像領域（画像ブロック）の画素分布を考えた場合、複雑な画素分布を持つ画像ブロックでは、着目画素値が予測値ｅに一致する確率は、それほど高くはならない。一方で、過去の画素値系列に関わらず、隣接画素値ｃと着目画素値とが一致する確率が無視できない。その結果、着目画素値と予測値ｅとの差分（予測誤差）の確率分布は、０の位置（着目画素値が予測値ｅと一致する位置）とｃ−ｅの位置（着目画素値が隣接画素値ｃと一致する場合）との２点をピークとした形状となる。
【００１３】
図１は、２つのピークを有する予測誤差の確率分布の一例を示す図である。図１（ａ）及び（ｂ）において、横軸は予測誤差、即ち着目画素値から予測値ｅを差し引いた値を示し、縦軸は各予測誤差の出現確率を示す。図１（ａ）に示すように、予測誤差ゼロの位置（着目画素値が予測値ｅに等しい位置）を中心とする左右対称な確率分布１０が存在する一方で、予測誤差ｃ−ｅの位置（着目画素値が隣接画素値ｃに等しい位置）を中心とする確率分布１１が存在する。この結果、図１（ｂ）に示すように、予測誤差の確率分布は、確率分布１０と確率分布１１とを重ね合わせて得られる左右非対称な確率分布１２となる。確率分布１２は、０の位置とｃ−ｅの位置との２点をピークとした形状である。
【００１４】
単純な画素分布を持つ画像ブロックにおいては、予測値と隣接画素値とが異なる場合、予測値が的中する確率に比較して、この隣接画素値と着目画素値とが一致する確率が十分に小さく、予測誤差分布は左右対称の分布となる。しかしながら、上述のように、複雑な画素分布を持つ画像ブロックでは、予測値と隣接画素値とが異なる場合、予測値が的中する確率に比較して、着目画素値が隣接画素値に一致する確率が無視できない。その結果、予測誤差分布は、予測誤差が正の領域と負の領域とで異なる分散値を有する左右非対称な分布となる。具体的には、予測値よりも隣接画素値が大きい場合には正の領域での分散値が負の領域での分散値よりも大きく、予測値よりも隣接画素値が小さい場合には負の領域での分散値が正の領域での分散値よりも大きい確率分布となる。
【００１５】
図２は、符号表の選択について説明するための図である。図２において、画素配列２１は、画面全体のうち、着目画素ｘの周辺画素ａ、ｂ、ｃを含む画像領域を抜き出して示したものである。この周辺画素のうち、例えば画素ｃが隣接画素として用いられる。符号表セット２２は、それぞれ異なる分散値の確率分布に対応する複数の符号表Ａ乃至Ｅを含む。前述のように、複雑な画素分布を持つ画像ブロックでは、予測誤差分布は、予測誤差が正の領域と負の領域とで異なる分散値を有する左右非対称な分布となる。このような複雑な分布に対応するため、周辺画素値ａ乃至ｃから第１の分散値と第２の分散値とを算出し、符号表セット２２から、左右で異なる分散値を有する左右非対称な確率分布に対応する符号表を、第１の分散値と第２の分散値とに応じて選択する。第１の分散値と第２の分散値とを算出する方法については、後程詳細に説明する。
【００１６】
符号表セット２２の符号表Ａ乃至Ｅは、その一つ一つが左右非対称な確率分布に対応する符号表であってよい。この場合、例えば分布の左側が第１の分散値であり分布の右側が第２の分散値であるような確率分布に対応する符号表を選択すればよい。或いは、符号表セット２２の符号表Ａ乃至Ｅは、その一つ一つが確率分布の左右何れかの片側の分布に対応する符号表（例えば右側の片側分布に対応する非負整数の予測誤差に対する符号表）であってよい。これら符号表Ａ乃至Ｅは、異なる複数の分散値を有する複数の確率分布に対応する複数の符号表である。この場合、符号表セット２２から、第１の分散値に対応する例えば符号表Ｂを選択し、第２の分散値に対応する例えば符号表Ｅを選択し、符号表Ｂと符号表Ｅとを組み合わせることにより、左右非対称な確率分布に対応する符号表を構成してもよい。図２の例において、選択された符号表Ｂの内容がテーブル２３に示され、選択された符号表Ｅの内容がテーブル２４に示されている。各テーブルには、互いに一対一に対応付けられた複数の差分値と複数の符号とが含まれている。即ち、各々の差分値が１つの符号に対応付けられている。
【００１７】
図３は、選択された符号表、或いは、選択された符号表を組み合わせて得られた符号表に対応する左右非対称な確率分布の一例を示す図である。着目画素値ｘと予測値ｅ（周辺画素値ａ乃至ｃから算出してよい）との差分（予測誤差）が横軸に示され、縦軸にその出現確率が示される。予測誤差値ｃ−ｅが正の領域にある（即ち隣接画素値ｃが予測値ｅよりも大きい）ので、正の領域の分布の分散値（右側の分布の分散値）が負の領域の分布の分散値（左側の分布の分散値）よりも大きくなる。
【００１８】
図４は、２つの符号表を組み合わせることにより構成した左右非対称な確率分布に対応する符号表の一例である。図４に示す左右非対称な確率分布に対応する符号表２６は、片側分布に対応するテーブル２３（図２に示すテーブル２３と同一）と、片側分布に対応するテーブル２４（図２に示すテーブル２４と同一）とを組み合わせたものである。但しテーブル２３の符号とテーブル２４の符号とが一致しないように、図２に示すテーブル２３の符号の先頭に“１”を追加した符号と、図２に示すテーブル２４の符号の先頭に“０”を追加した符号とを用いている。この例では、テーブル２３が負の差分値の領域に対応付けられ、テーブル２４が正の差分値の領域に対応付けられている。差分値０の符号としては、テーブル２３の差分値０の符号の先頭に“１”を追加した符号が用いられている。この結果、テーブル２４の差分値０の符号“００”が使用されることなく余ってしまう。そこで、値がｃ−ｅに等しい差分値には、図２に示すテーブル２４の差分値０の符号の先頭に“０”を付加した“０００”を割り当てている。このようにして、着目画素値ｘが隣接画素値ｃに等しい場合（即ち着目画素値ｘと予測値ｅとの差分がｃ−ｅに等しい場合）には、符号表Ｂ（テーブル２３）又は符号表Ｅ（テーブル２４）における差分値がゼロに対応する符号を割り当てている。これにより、図１（ｂ）に示したように分布が非対称となる原因となっている無視できないピークの位置において、符号長が短い符号を割り当てることが可能となり、高い符号化効率を実現することができる。
【００１９】
図２の着目画素値ｘを符号化する際には、着目画素値ｘから予測値ｅを引いた差分値ｘ−ｅを算出し、図４の符号表２６においてこの算出した差分値に対応する符号を出力すればよい。これにより、差分値（予測誤差或いは残差とも言う）の確率分布が左右非対称な場合を考慮した効率的な符号化を実現することができる。
【００２０】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００２１】
図５は、符号化装置の構成の一例を示す図である。図５に示す符号化装置３０は、符号表選択部３１、残差生成部３２、及び符号化部３３を含む。ブロック画像データ格納メモリ３５には、画像全体のうちで、符号化対象である着目画素周辺の局所的な画像ブロックのデータが格納されている。符号化装置３０は、ブロック画像データ格納メモリ３５から画像ブロックの画素データを受け取り、着目画素を符号化し、符号化により得られた符号化データを符号化データ格納メモリ３６に格納する。
【００２２】
なお図５及び以降の類似の図において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。ハードウェアの場合、各機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。ソフトウェアの場合、各機能ブロックは、他のブロックと論理的にある程度分離された１つのソフトウェアモジュールであってもよいし、或いは他のブロックと論理的に一体となったソフトモジュール中の１つの機能を示したものであってもよい。
【００２３】
符号表選択部３１は、着目画素周辺の周辺画素値から第１の分散値と第２の分散値とを算出し、左右で異なる分散値を有する左右非対称な確率分布に対応する符号表を、第１の分散値と第２の分散値とに応じて選択する。残差生成部３２は、着目画素値から予測値を減算して残差を算出する。符号化部３３は、残差生成部３２により算出された残差を、符号表選択部３１により選択された符号表により符号化する。符号化処理の大略については、図１乃至図４を用いて説明したとおりである。符号表選択部３１は、コンテキストＣ１導出部４１、予測値生成部４２、隣接点選択部４３、コンテキストＣ２導出部４４、第１テーブル選択部４５、第２テーブル選択部４６、及び符号表構築部４７を含む。
【００２４】
コンテキストＣ１導出部４１は、周辺画素の勾配に基づいて、コンテキストＣ１を決定する。予測値生成部４２は、コンテキストＣ１や周辺画素値に基づいて着目画素の予測値を生成する。第１テーブル選択部４５は、コンテキストＣ１から第１の分散値を求め、この第１の分散値に対応する符号表を選択する。隣接点選択部４３は、周辺画素の中から１つの画素を隣接画素として選択する。コンテキストＣ２導出部４４は、隣接点選択部４３が選択した隣接画素値と予測値生成部４２が生成した予測値とに基づいてコンテキストＣ２を決定する。第２テーブル選択部４６は、コンテキストＣ２と第１テーブル選択部４５から供給される第１の分散値とに基づいて第２の分散値を求め、この第２の分散値に対応する符号表を選択する。符号表構築部４７は、第１テーブル選択部４５が選択した符号表と第２テーブル選択部４６が選択した符号表とを組み合わせて、左右非対称な確率分布に対応する符号表を構築する。
【００２５】
図６は、図５に示す符号化装置３０の動作の流れを示したフローチャートである。まずステップＳ１において、コンテキストＣ１導出部４１がコンテキストＣ１を算出する。この例では、コンテキストＣ１として、着目画素ｘの近傍にある３つの周辺画素値ａ乃至ｃから横方向勾配Ｇｈｏｒ＝ａ−ｂ、縦方向勾配Ｇｖｅｒ＝ａ−ｃ、及び斜め後方勾配Ｇｎａｎ＝ｃ＋ｂ−ａを算出する。更にコンテキストＣ１導出部４１は、Ｇｈｏｒ、Ｇｖｅｒ、及びＧｎａｎを右に６ビットシフトして下位６ビットを破棄することにより、各勾配値を量子化する。この量子化後のＧｈｏｒ、Ｇｖｅｒ、及びＧｎａｎを一組に纏めたものがコンテキストＣ１とされる。量子化は、コンテキストＣ１の総数を削減するために実行される。
【００２６】
ステップＳ２において、第１テーブル選択部４５が、予め用意された固有分散値表５０においてコンテキストＣ１を参照することにより、コンテキストＣ１の固有分散値を導出する。なおこの導出処理は、第１テーブル選択部４５でなくコンテキストＣ１導出部４１により実行されてもよい。ここで導出された固有分散値は、基本的には、周辺画素のばらつきの度合いを示すものである。大きな固有分散値であれば、着目画素値の予測値が的中し難い、即ち、予測残差が大きくなる確率が高いことを示している。但し、単純な画素値の分散を求めているのではなく、横、縦、斜め方向の勾配の大きさに基づいて固有分散値を求めている。従って、例えば横方向に勾配が大きいが縦方向に勾配がゼロである場合には、縦エッジ等の縦方向パターンである確率が高く、そのような場合には固有分散値がそれ程大きくならないように、固有分散値表５０の各値が決定されていてよい。
【００２７】
図７は、固有分散値表を生成する処理の一例を示すフローチャートである。種々の評価対象の画像に対して図７の処理を実行することにより、図６の処理に用いる固有分散値表５０を予め生成して用意しておくことになる。
【００２８】
ステップＳ１において、評価対象の画像の評価画素を選択する。ステップＳ２において、評価画素に対する予測残差（評価画素値と予測値との差）を導出する。ステップＳ３において、評価画素に対するコンテキストＣ１を導出する。ステップＳ４で、求められたコンテキストＣ１と予測残差との対応関係を、対応関係データ５１に格納する。即ち、コンテキストＣ１と予測残差とを互いに対応付けして対応関係データ５１に格納する。ステップＳ５で、全ての画像の全ての画素に対しての走査を終了したか否かを判定する。終了していない場合には、ステップＳ１に戻り以降の処理を繰り返す。
【００２９】
全画素の走査を終了した場合、ステップＳ６で、コンテキストＣ１を１つ選択する。ステップＳ７で、選択されたコンテキストＣ１の残差集合を読み出す。即ち、選択されたコンテキストＣ１に対応付けられた全ての予測残差を読み出す。ステップＳ８で、読み出された予測残差の分散を計算する。ステップＳ９で、全てのコンテキストＣ１に対して分散値を生成したか否かを判定する。分散値を生成していないコンテキストＣ１が残っている場合には、ステップＳ６に戻り、以降の処理を繰り返す。
【００３０】
以上の処理により、数多くの種々の評価対象の画像に基づいて、各コンテキストＣ１に対する予測残差の分散が求まる。こうして求めた予測残差の分散を、各コンテキストＣ１に対応付けられる固有分散値として用いることにより、固有分散値表５０を生成することができる。このようにして、図６のステップＳ２において用いる固有分散値表５０が用意される。
【００３１】
図６を再び参照し、ステップＳ３において、第１テーブル選択部４５が、コンテキストＣ１の固有分散値に一致する符号表を選択する。具体的には、複数の分散値に対応する複数の符号表が設けられており、第１テーブル選択部４５が、コンテキストＣ１の固有分散値に等しい又は最も近い分散値の符号表を選択すればよい。
【００３２】
図８は、複数の符号表のデータ構成の一例を示す図である。複数の符号表がセット６１として不揮発性メモリ等のメモリに格納されている。ワード幅は例えば１６ビットである。符号表セット６１に含まれる１つの符号表は、テーブル６２に示すデータ構造を有する。テーブル６２は、１６ビット整数である固有分散値、１２ビットの符号データ、及び４ビットの符号長データを含む。１２ビットの符号データは、１２ビット以下の長さの符号と、その右側の残りのビット位置を埋める“０”とを含む。例えば、上から３番目のエントリの場合、符号長が２進数で“００１１”即ち３ビットであるので、実際の符号は符号データの上位３ビットをとって“１１０”となる。上述のステップＳ３においては、第１テーブル選択部４５が、コンテキストＣ１の固有分散値に等しい又は最も近い固有分散値を有する符号表を、符号表セット６１から選択する。
【００３３】
図９は、複数の符号表を生成する処理を示すフローチャートである。この図９の処理を実行することにより、図６の処理に用いる複数の符号表（即ち図８の符号表セット６１）を予め生成して用意しておくことになる。
【００３４】
ステップＳ１で、１つの固有分散値を選択する。ステップＳ２で、選択した固有分散値を分散として有する正規分布の確率密度関数を導出する。ステップＳ３で、生成された確率密度関数を基にハフマン符号表を生成する。ステップＳ４で、全ての固有分散値について符号表（上記のハフマン符号表）を生成したか否かを判定する。符号表を生成していない固有分散値がまだある場合には、ステップＳ１に戻り以降の処理を繰り返す。
【００３５】
図６を再び参照し、ステップＳ４で、予測値生成部４２が予測値を計算するとともに、隣接点選択部４３が隣接画素を選択し、更に、コンテキストＣ２導出部４４が予測値及び隣接画素値に基づいてコンテキストＣ２を算出する。予測値生成部４２は、コンテキストＣ１に応じて複数の予測値生成手法から1つを選択してもよい。即ち例えば、横方向に勾配が大きいが縦方向に勾配がゼロである場合には、縦エッジ等の縦方向パターンである確率が高く、周辺画素ａ乃至ｃのうちで画素ｂの値を画素ｘの予測値とすること等が考えられる。図６に示す例では、コンテキストＣ１の内容に関わらず、周辺画素値ａ乃至ｃから着目画素ｘの予測値を関数ｆ（ａ，ｂ，ｃ）として生成している。関数ｆ（ａ，ｂ，ｃ）の一例としては、画素値ａ、画素値ｂ、及び画素値ｃの３つの周辺画素値の平均値を求める関数としてよい。使用する予測式はこの例に限定されるものではなく、任意の予測式を用いてよい。隣接点選択部４３は、着目画素ｘの横に隣接する画素ｃを隣接代表点として選択する。隣接画素選択方法は、単純に特定の位置（例えば横隣りの画素ｃ）を選択する方法に限定されるものではなく、ＰＮＧのＰＡＥＴＨ予測のようにエッジ強度を元に隣接点を選択する方法等を適宜用いてよい。コンテキストＣ２導出部４４は、予測値ｆ（ｘ，ｙ，ｚ）及び隣接画素値ｃに基づいて、コンテキストＣ２を求める。このコンテキストＣ２は、予測値ｆ（ｘ，ｙ，ｚ）と隣接画素値ｃとの差分の絶対値Ｄｉｆｆ（＝｜ｆ（ｘ，ｙ，ｚ）−ｃ｜）として定義される。
【００３６】
なお本実施例では上隣り、左隣り、左上隣りの３つの画素値に基づいて予測値及び隣接画素値を求めコンテキストＣ２を計算しているが、コンテキストＣ２を求める基となる画素はこれら３つの画素でなくてもよい。ラスタスキャン順で着目画素（圧縮対象画素）よりも先に符号化又は復号化される画素であれば、任意の位置の任意の数の画素を用いて、コンテキストＣ２を算出してよい。これはコンテキストＣ１の算出についても同様である。
【００３７】
図１０は、ラスタスキャン順を示す図である。図１０において、画像７０はマトリクス状に縦横に配列された画素（図示の正方形）を含む。横一列に並ぶ画素が各画素行７１を構成する。矢印７２でしめすラスタスキャン順では、１つの画素行７１の全画素を左から右に順に走査し、画像７０の右端に到達すると次の画素行７１の左端に移動し、当該画素行７１の全画素を左から右に順に走査する。
【００３８】
図１１は、ラスタスキャン順で先に走査された画素により予測値及び隣接画素値を求める処理の一例を説明するための図である。図１１において、着目画素（符号化対象画素）７５を含む４×４画素の局所的な画像領域（画像ブロック）７６を考える。着目画素７５以外の画像ブロック７６に含まれる全ての画素は、着目画素７５よりも先にラスタスキャン順で符号化される。従って、画像ブロック７６内の画素値を用いてコンテキストＣ１及びＣ２を求めて着目画素７５を符号化すれば、復号化する場合にも、着目画素７５を復号化するためのコンテキストＣ１及びＣ２を求めることができる。即ち、着目画素７５を復号化する時には既に、着目画素７５以外の画像ブロック７６内の全画素の画素値が復号処理により先にラスタスキャン順に求められているので、画像ブロック７６内の画素値を用いてコンテキストＣ１及びＣ２を求めることができる。なお符号表選択のためのコンテキストＣ１及びＣ２の計算は、符号化処理側と同様に復号化処理側で実行することができるので、符号化時に使用した符号表を特定する情報を符号化後の圧縮データに付加する必要がない。従って、符号表を順次選択する画像領域単位を小さくしても圧縮率が劣化することはなく、一画素毎に符号表を選択して切り換えてよい。
【００３９】
また図６に示す例では、上隣り、左隣り、左上隣りの３つの画素値に基づいて予測値及び隣接画素値を求めているが、予測値及び隣接画素値は、それぞれ大局的な予測値及び局種的な予測値として考えることができる。即ち、図１１に示されるように、比較的広い範囲の複数の画素７７及び７８（画像ブロック７６に含まれる着目画素７５以外の１５個の画素）に基づいて予測値を求め、これを大局的な予測値として考えてよい。また比較的狭い範囲の複数の画素７７（画像ブロック７６内で着目画素７５に接する３個の画素）に基づいて隣接画素値を求め、これを局所的な予測値として考えてよい。この場合の隣接画素値は、３つの画素７７の画素値から１つの画素値を選択して求めたり、或いは３つの画素７７の画素値から計算により求めたりした値であってよい。このようにして求めた大局的な予測値が図１に示すような確率分布の中心にあり、局所的な予測値（隣接画素値）が確率分布の中心からずれている場合に、この局所的な予測値の存在する側において分散が大きい左右非対称な確率分布が得られる。
【００４０】
図６に戻り、ステップＳ５で、第２テーブル選択部４６が、コンテキストＣ１の固有分散値＋Ｄｉｆｆ２として第２の分散値を求め、この第２の分散値に一致する符号表を選択する。具体的には、複数の分散値に対応する複数の符号表が設けられており、第２テーブル選択部４６が、上記の第２の分散値に等しい又は最も近い分散値の符号表を選択すればよい。
【００４１】
ステップＳ６で、ステップＳ３で選択された符号表とステップＳ５で選択された符号表とを組み合わせ、符号表構築部４７が符号表を構築する。符号表を組み合わせる方法は、図４で説明したのと同様である。図６のステップＳ６において、ステップＳ３で選択された符号表をテーブルＴａｂｌｅ１とし、ステップＳ５で選択された符号表をテーブルＴａｂｌｅ２としている。また更に、予測値ｅ（＝ｆ（ａ，ｂ，ｃ））と着目画素値ｘとの差分ｘ−ｅの値が正の領域に対応する符号表をテーブルＴａｂｌｅＲとし、差分ｘ−ｅの値が負の領域に対応する符号表をテーブルＴａｂｌｅＬとしている。予測値＜隣接画素値の場合には、差分ｘ−ｅの値が正の領域において分散が大きくなるので（図３参照）、テーブルＴａｂｌｅＲとして分散の大きなテーブルＴａｂｌｅ２が割り当てられる。逆に予測値＞隣接画素値の場合には、差分ｘ−ｅの値が負の領域において分散が大きくなるので、テーブルＴａｂｌｅＬとして分散の大きなテーブルＴａｂｌｅ２が割り当てられる。予測値＝隣接画素値の場合には、分散が大きくなることはなく、テーブルＴａｂｌｅ１のみが用いられる（この場合、ステップＳ５で求めたテーブルＴａｂｌｅ２がテーブルＴａｂｌｅ１と等しくなる）。また図４を用いて説明したのと同様に、テーブルＴａｂｌｅ１の符号とテーブルＴａｂｌｅ２の符号とが一致しないように、各符号の先頭に“１”又は“０”を追加した符号を出力している。
【００４２】
図１２は、図５に示す符号化装置３０による符号化処理の流れを示すフローチャートである。図１２に示す処理は、図６に示す処理をより整理した形で示したものである。
【００４３】
ステップＳ１で、コンテキストＣ１を導出する。ステップＳ２で、コンテキストＣ１に基づいて符号表Ｔａｂｌｅ１を決定する。ステップＳ３で、コンテキストＣ１に基づいて予測値計算方法ｆ（ａ，ｂ，ｃ）を選択する。ステップＳ４で、予測値及び隣接画素値に基づいてコンテキストＣ２を算出し、更にコンテキストＣ２に基づいて符号表Ｔａｂｌｅ２を決定する。ステップＳ５で、符号表Ｔａｂｌｅ１及び符号表Ｔａｂｌｅ２を組み合わせて左右非対称な確率分布に対応する符号表を構築する。ステップＳ６で、構築された符号表を用いて予測誤差ｘ−ｆ（ａ，ｂ，ｃ）を符号化する。ステップＳ７で、符号化対象の全画素が符号化済みであるか否かを判定する。全画素が符号化済みでない場合には、ステップＳ１に戻り、以降の処理を繰り返す。全画素が符号化済みである場合には、符号化処理を終了する。
【００４４】
図１３は、復号化装置の構成の一例を示す図である。図１３に示す復号化装置８０は、符号表選択部８１、画素値生成部８２、及び残差復号部８３を含む。符号化データ格納メモリ８６には、図５の符号化装置３０により符号化されたデータが格納されている。復号化装置８０は、符号化データ格納メモリ８６から符号化データを受け取り、復号化処理を実行することにより着目画素値を求め、求められた画素値のデータを復号済みデータ格納メモリ８５に格納する。復号済みデータ格納メモリ８５のデータは、ラスタスキャン順において後続する画素の復号化処理におけるコンテキスト計算に用いるために、符号表選択部８１に供給される。
【００４５】
符号表選択部８１は、着目画素周辺の周辺画素値から第１の分散値と第２の分散値とを算出し、左右で異なる分散値を有する左右非対称な確率分布に対応する符号表を、第１の分散値と第２の分散値とに応じて選択する。残差復号部８３は、着目画素値から予測値を引いた残差を、符号表選択部８１により選択された符号表により復号化する。即ち、残差復号部８３は、符号化データ中の符号に対応する残差を符号表から取り出すことで、復号対象の符号から残差を復号する。画素値生成部８２は、復号された残差に予測値を加算することにより着目画素値を算出する。符号表選択部８１は、コンテキストＣ１導出部９１、予測値生成部９２、隣接点選択部９３、コンテキストＣ２導出部９４、第１テーブル選択部９５、第２テーブル選択部９６、及び符号表構築部９７を含む。符号表選択部８１の構成及び動作は、符号表選択部３１の構成及び動作と同様である。前述のように、着目画素を復号化により求める時、即ち復号対象符号に復号化処理を適用する時には既に、コンテキストＣ１及びＣ２を求めるために使用する画素値が復号処理によりラスタスキャン順に求められている。従って、符号化処理時と同様にしてコンテキストＣ１及びＣ２を求め、符号表を適宜選択することができる。
【００４６】
図１４は、図１３に示す復号化装置８０による符号化処理の流れを示すフローチャートである。
【００４７】
ステップＳ１で、コンテキストＣ１を導出する。ステップＳ２で、コンテキストＣ１に基づいて符号表Ｔａｂｌｅ１を決定する。ステップＳ３で、コンテキストＣ１に基づいて予測値計算方法ｆ（ａ，ｂ，ｃ）を選択する。ステップＳ４で、予測値及び隣接画素値に基づいてコンテキストＣ２を算出し、更にコンテキストＣ２に基づいて符号表Ｔａｂｌｅ２を決定する。ステップＳ５で、符号表Ｔａｂｌｅ１及び符号表Ｔａｂｌｅ２を組み合わせて左右非対称な確率分布に対応する符号表を構築する。ステップＳ６で、構築された符号表を用いて復号対象符号に復号化処理を適用して残差を算出する。即ち、復号対象符号に対応する残差を符号表から取り出す。ステップＳ７で、残差（予測誤差）と予測値ｆ（ａ，ｂ，ｃ）とに基づいて着目画素値を算出する。ステップＳ８で、復号化対象の全画素が復号済みであるか否かを判定する。全画素が復号済みでない場合には、ステップＳ１に戻り、以降の処理を繰り返す。全画素が復号済みである場合には、復号化処理を終了する。
【００４８】
図１５は、符号化及び復号化を行なう画像処理システムの構成の一例を示す図である。図１５の画像処理システムは、デジタルカメラ１００、パーソナルコンピュータ（ＰＣ）１０１、及びＣＲＴや液晶表示装置などの表示部１０２を含む。デジタルカメラ１００は、イメージセンサ１１１、揮発性メモリ１１２、符号化部１１３、フラッシュメモリ等の不揮発性メモリ１１４、復号部１１５、及び液晶表示装置等の表示部１１６を含む。イメージセンサ１１１から取りこまれた被写体１０３の画像は、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）等の高速な揮発性メモリ１１２に一旦格納される。符号化部１１３は、図５に示す符号化装置３０と同様の構成であってよく、揮発性メモリ１１２から読み出した画像データを符号化して圧縮し、符号化後の画像データをメモリカード等の不揮発性メモリ１１４に格納する。撮影した画像をデジタルカメラ１００の表示部１１６に表示する場合は、カメラに内蔵された復号部１１５により不揮発性メモリ１１４の画像データを復号し、復号後の画像データを表示部１１６に供給する。復号部１１５は、図１３に示す復号化装置８０と同様の構成であってよい。デジタルカメラ１００で撮影した画像をパーソナルコンピュータ１０１に表示する場合は、不揮発性メモリ１１４に格納された画像データをパーソナルコンピュータ１０１に取り込み、パーソナルコンピュータ１０１内の復号ソフトウェア１１７により復号する。この際、復号ソフトウェア１１７は、図１４に示す復号処理を実行してよい。復号された画像データは表示部１０２に供給されて表示される。
【００４９】
以上のシステム構成においては、左右非対称な確率分布に対応した符号表を用いた高効率の圧縮方式によって、より多くの画像データをカメラの不揮発性メモリに格納することができる。また連写速度向上のボトルネックとなりやすい低速な不揮発性メモリへの格納時のデータ量を削減することができるため、書込み時間の短縮が可能である。
【００５０】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５１】
なお本願発明は以下の内容を含むものである。
（付記１）
着目画素周辺の周辺画素値から第１の分散値と第２の分散値とを算出し、左右で異なる分散値を有する左右非対称な確率分布に対応する符号表を、前記第１の分散値と第２の分散値とに応じて選択する符号表選択部と、
着目画素値から予測値を引いた残差を前記選択された符号表により符号化又は復号化する符号化又は復号化部と
を含むことを特徴とする画像処理装置。
（付記２）
前記符号表選択部は、異なる複数の分散値を有する複数の確率分布に対応する複数の符号表を備え、前記複数の符号表から前記第１の分散値に応じて第１の符号表を選択し、前記複数の符号表から前記第２の分散値に応じて第２の符号表を選択し、前記第１の符号表と前記第２の符号表とを組み合わせることを特徴とする付記１記載の画像処理装置。
（付記３）
前記符号表選択部は、前記周辺画素値に応じて前記第１の分散値を算出するとともに、前記周辺画素値と、隣接画素値と、前記予測値とに応じて前記第２の分散値を算出することを特徴とする付記１又は２記載の画像処理装置。
（付記４）
前記符号化又は復号化部は、符号化する際に前記着目画素値が前記隣接画素値に等しい場合には、前記第１の符号表又は前記第２の符号表における残差がゼロに対応する符号を前記残差に割り当てることを特徴とする付記３記載の画像処理装置。
（付記５）
前記選択された符号表に対応する確率分布は、前記予測値よりも前記隣接画素値が大きい場合には正の領域での分散値が負の領域での分散値よりも大きく、前記予測値よりも前記隣接画素値が小さい場合には負の領域での分散値が正の領域での分散値よりも大きいことを特徴とする付記３又は４記載の画像処理装置。
（付記６）
着目画素周辺の周辺画素値から第１の分散値と第２の分散値とを算出し、
左右で異なる分散値を有する左右非対称な確率分布に対応する符号表を、前記第１の分散値と第２の分散値とに応じて選択し、
着目画素値から予測値を引いた残差を前記選択された符号表により符号化又は復号化する
各段階を含むことを特徴とする画像処理方法。
（付記７）
前記選択する段階は、異なる複数の分散値を有する複数の確率分布に対応する複数の符号表から前記第１の分散値に応じて第１の符号表を選択し、前記複数の符号表から前記第２の分散値に応じて第２の符号表を選択し、前記第１の符号表と前記第２の符号表とを組み合わせる各段階を含むことを特徴とする付記６記載の画像処理方法。
（付記８）
前記算出する段階は、前記周辺画素値に応じて前記第１の分散値を算出するとともに、前記周辺画素値と、隣接画素値と、前記予測値とに応じて前記第２の分散値を算出することを特徴とする付記６又は７記載の画像処理方法。
（付記９）
前記符号化又は復号化する段階は、符号化する際に前記着目画素値が前記隣接画素値に等しい場合には、前記第１の符号表又は前記第２の符号表における残差がゼロに対応する符号を前記残差に割り当てることを特徴とする付記８記載の画像処理方法。
【符号の説明】
【００５２】
３０  符号化装置
３１  符号表選択部
３２  残差生成部
３３  符号化部
４１  コンテキストＣ１導出部
４２  予測値生成部
４３  隣接点選択部
４４  コンテキストＣ２導出部
４５  第１テーブル選択部
４６  第２テーブル選択部
４７  符号表構築部
【図１】
0005652101.tif 000002
【図２】
0005652101.tif 000003
【図３】
0005652101.tif 000004
【図４】
0005652101.tif 000005
【図５】
0005652101.tif 000006
【図６】
0005652101.tif 000007
【図７】
0005652101.tif 000008
【図８】
0005652101.tif 000009
【図９】
0005652101.tif 000010
【図１０】
0005652101.tif 000011
【図１１】
0005652101.tif 000012
【図１２】
0005652101.tif 000013
【図１３】
0005652101.tif 000014
【図１４】
0005652101.tif 000015
【図１５】
0005652101.tif 000016