(57)【特許請求の範囲】
【請求項１】
画像を、画素値に応じた許容誤差を定める許容誤差情報に従って符号化する画像符号化装置であって、
符号化対象の画像の画素値を、第２の画素値に変換するための画素値変換情報を、前記許容誤差情報に応じて設定する設定手段と、
符号化対象の画像の各画素値を前記画素値変換情報に基づいて変換することで、変換後の画素で構成される第２の画像を生成する画像変換手段と、
符号化前後の画素値の差が予め設定された定数δ以内で符号化する符号化手段を用いて、前記第２の画像を符号化する第１の符号化制御手段と、
前記画素値変換情報に基づき、前記第２の画像の画素値を入力画像の画素値に関わる値に変換する画素値逆変換情報を生成し、当該画素値逆変換情報を符号化する第２の符号化制御手段とを有し、
前記設定手段は、前記第２の画像の画素値がδずれた場合に、入力画像の画素値のずれが許容誤差以内に収まる様な変換を行うための情報を、前記画素値変換情報として設定することを特徴とする符号化装置。
【請求項２】
前記第２の符号化制御手段が符号化するために生成する情報は、前記第２の画像における画素値を前記符号化対象の画像の該当する画素値に変換するための情報であることを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記第２の符号化制御手段が符号化するために生成する情報は、前記第２の画像における画素値を物理量に変換するための情報であることを特徴とする請求項１又は２に記載の符号化装置。 
【請求項４】
前記第１の符号化制御手段が用いる符号化手段がＪＰＥＧ−ＬＳに従って符号化する手段であることを特徴とする請求項１乃至３のいずれか１項に記載の符号化装置。
【請求項５】
前記設定手段は、前記許容誤差情報に従って、符号化対象の画像の画素値に応じた許容誤差を間接的に定めることを特徴とする請求項１乃至４のいずれか１項に記載の符号化装置。
【請求項６】
前記符号化対象の画像は撮影装置と被写体との距離を視差で表現した視差画像であり、前記許容誤差情報は視差表現における定数の誤差と、距離表現における定数の誤差を組み合わせた形で許容誤差を指定する情報であることを特徴とする請求項１乃至５のいずれか１項に記載の符号化装置。
【請求項７】
画像内の注目領域を特定する注目領域特定手段と、
前記注目領域内の画素値ほど少ない誤差になる様に、前記許容誤差情報を算出する許容誤差情報算出手段と
を更に有することを特徴とする請求項１乃至６のいずれか１項に記載の符号化装置。
【請求項８】
前記設定手段は、符号化対象の画像の各画素値に対し、
許容誤差内に画素値の有効範囲の上限と下限が含まれない場合は、許容誤差内に２δ＋１個以上の量子化代表値を割り当て、
許容誤差内に画素値の有効範囲の上限もしくは下限の一方が含まれる場合は、許容誤差内にδ＋１個以上の量子化代表値を割り当て、
許容誤差内に画素値の有効範囲の上限と下限の両方が含まれる場合は、許容誤差内に１個以上の量子化代表値を割り当てる、代表値割り当て手段を含み、
前記割り当てた代表値をもとに、前記画素値変換情報を算出する
ことを特徴とする請求項１乃至６のいずれか１項に記載の符号化装置。
【請求項９】
画像を、画素値に応じた許容誤差を定める許容誤差情報に従って符号化する画像符号化装置の制御方法であって、
設定手段が、符号化対象の画像の画素値を、第２の画素値に変換するための画素値変換情報を、前記許容誤差情報に従って設定する設定工程と、
画像変換手段が、前記符号化対象の画像の各画素値を前記画素値変換情報に基づいて変換することで、変換後の画素で構成される第２の画像を生成する画像変換工程と、
第１の符号化制御手段が、符号化前後の画素値の差が予め設定された定数δ以内で符号化する符号化手段を用いて、前記第２の画像を符号化する第１の符号化制御工程と、
第２の符号化制御手段が、前記画素値変換情報に基づき、前記第２の画像の画素値を入力画像の画素値に関わる値に変換する画素値逆変換情報を生成し、可逆符号化手段を用いて当該画素値逆変換情報を符号化する第２の符号化制御工程とを有し、
前記設定工程では、前記第２の画像の画素値がδずれた場合に、入力画像の画素値のずれが許容誤差以内に収まる様な変換を行うための情報を、前記画素値変換情報として設定することを特徴とする符号化装置の制御方法。
【請求項１０】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃至８のいずれか１項に記載の符号化装置として機能させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを格納したことを特徴とするコンピュータが読み込み可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮する符号化技術に関するものである。
【背景技術】
【０００２】
従来から、測距センサやステレオカメラなどから得られる距離画像を符号化する技術が知られている。距離画像を用いれば、撮影していない視点の映像を合成する自由視点画像合成や、人体検出の高精度化、２点間の３次元的な距離の計測等をすることができる。
【０００３】
距離画像の符号化に関する標準技術として、３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（以下、３ＤＶ）の策定が行われている。３ＤＶでは自由視点映像合成を高画質に行うための距離画像を生成するが、Ｈ．２６４等のＲＧＢ画像の符号化技術と同様、周波数変換を行う為、距離画像のエッジ付近で大きな劣化が生じやすい。このように一部の画素に大きな劣化が発生する圧縮方式は、距離画像の利用方法によっては大きな問題となる。例えば、距離画像を利用して２点間の３次元的な距離の計測を行う場合は、圧縮によって距離情報が大きく劣化した画素値を使用すると、その計測結果も大きく変わってしまう。
【０００４】
一方で画像の画素値の圧縮による最大歪みを、任意の値に抑える技術が知られている。ＪＰＥＧ−ＬＳ（非特許文献１）におけるニアロスレス（準可逆）モードがその代表である。ＪＰＥＧ−ＬＳのニアロスレスモードを距離画像に適用すれば、圧縮により発生する距離画像の各画素の誤差の最大値が抑制され、その結果２点間の距離の計測においても、圧縮により発生する２点間の測距誤差の最大値を、制御することが出来る。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】The LOCO-I Lossless Image Compression Algorithm: Principles and Standardization into JPEG-LS, (IEEE TRANSACTION ON IMAGE PROCESSING, VOL.9, NO.8, AUGUST 2000)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ＪＰＥＧ−ＬＳのニアロスレスモードでは、画素値に依らず圧縮により発生する誤差を一定の値に保証する（以下、定数精度保証）ことしかできない。従って、画素値の圧縮による最大歪みを、画素値に応じて異なる許容誤差内に収まることを保証する（以下、画素値に応じた精度保証）符号化が出来ず、必要以上の精度を保つことで符号化データ量の増加する場合がある。
【０００７】
ここで、距離情報の符号化の例を以下で述べる。距離情報の符号化においては、２視点の画像からステレオマッチングを行った結果得られる視差（＝異なる画像間の対応点のずれ）を画素値としてもつ視差画像で距離情報を符号化することが一般的である。視差表現は、近距離ほど距離情報の分解能が高い表現であり、ステレオマッチングの原理に適した表現である。視差画像に対して、画素値によらず一定の誤差を保証する符号化を適用した場合は、近距離ほど距離情報の圧縮による劣化が少なく、遠距離ほど距離情報の圧縮による劣化が大きくなるという性質がある。一方で、用途によっては、近距離でもある程度の誤差を許容することで、距離情報のデータ量を削減したいという要求があると考えられる。例えば視差画像から得た距離情報を使って人体の身長を測る場合、近距離でも１ｃｍ程度の誤差は許容できると考えられる。このとき１ｃｍの誤差を許容することは、視差表現においては、近距離の場合は画素値で大きなずれ（例えば３）、遠距離の場合は画素値小さなずれ（例えば１）が許容できることに対応する。しかし、定数精度保証符号化では、例えば近距離では±３の誤差を、遠距離では±１の誤差を許容するといった具合に、画素値に応じた精度保証を行うことができないため、そのような要求に応えるのが難しい。
【課題を解決するための手段】
【０００８】
この課題を解決するため、例えば本発明の符号化装置は以下の構成を備える。すなわち、
画像を、画素値に応じた許容誤差を定める許容誤差情報に従って符号化する画像符号化装置であって、
符号化対象の画像の画素値を、第２の画素値に変換するための画素値変換情報を、前記許容誤差情報に応じて設定する設定手段と、
符号化対象の画像の各画素値を前記画素値変換情報に基づいて変換することで、変換後の画素で構成される第２の画像を生成する画像変換手段と、
符号化前後の画素値の差が予め設定された定数δ以内で符号化する符号化手段を用いて、前記第２の画像を符号化する第１の符号化制御手段と、
前記画素値変換情報に基づき、前記第２の画像の画素値を入力画像の画素値に関わる値に変換する画素値逆変換情報を生成し、当該画素値逆変換情報を符号化する第２の符号化制御手段とを有し、
前記設定手段は、前記第２の画像の画素値がδずれた場合に、入力画像の画素値のずれが許容誤差以内に収まる様な変換を行うための情報を、前記画素値変換情報として設定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、画素値の圧縮による最大歪みを、画素値毎に応じた任意の許容誤差に抑えながら符号化することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態の符号化装置、及びその周辺装置のブロック図。
【図２】第１の実施形態のフローチャート。
【図３】第１の実施形態の復号装置、及びその周辺装置のブロック図。
【図４】入力画素値と第２の画素値との関係を説明するための図。
【図５】第１の実施形態の許容誤差情報を説明する図。
【図６】第１の実施形態におけるデータ変換の流れを説明する図。
【図７】コンピュータのブロック構成図。
【図８】第３の実施形態におけるデータ変換の流れを説明する図。
【図９】第３の実施形態の許容誤差情報を説明する図。
【図１０】第３の実施形態の許容誤差と画素値変換との関係を説明する図
【図１１】第３の実施形態の画素値変換情報設定部が行う処理のフローチャート。
【図１２】第３の実施形態の画素値変換情報設定部の具体例を説明する図。
【図１３】第３の実施形態の画素値変換上の具体例を説明する図。
【図１４】第１の実施形態の処理の具体例を説明するための図。
【図１５】符号化による誤差を説明するための図。
【図１６】第５の実施形態の撮影モードと距離の許容誤差を説明する図。
【発明を実施するための形態】
【００１１】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下で説明する各実施形態は、本発明を具体的に実施した例を示すもので、特許請求の範囲に記載の構成の具体的な実施形態の１つである。
【００１２】
［第１の実施形態］
本実施形態では、視差画像を取得し、非可逆圧縮を行い、復号した視差画像から３Ｄ点群を構成し、任意の２点間の３次元空間中の距離を計測する例を述べる。
【００１３】
図１は本実施形態に関わる符号化装置及びその周辺装置のブロック図である。以下、同図を構成する各要素とその機能を説明する。
【００１４】
多視点画像撮影部１０８において、多視点のカラー画像を撮影する。そして、視差推定部１０９でステレオマッチングを行い、多視点画像から視差画像を推定する。ここで、視差画像とは、各画素の画素値に視差を持たせた画像である。視差とは、異なる２つの視点で同一の被写体（点）を撮影した際に、一方の視点に映った点が、もう一方の視点での撮影画像のどこに写っているかを示す量である。一般には異なる画像間で、同一の被写体が写る点（以下、対応点）同士が何画素ずれているかで表現される。より具体的には、光軸が平行で、水平軸に沿って基線長Ｂ［ｍｍ］の間隔を置いて並べた２つのカメラで、撮影面（光軸に垂直かつ、２つのカメラを通る平面）からｄ［ｍｍ］離れた点を撮影した場合、２つの撮影画像内の対応点の視差ｌ［ｐｉｘ］は、
ｌ＝ＢＦＷ／（ｄＣ）
である。ここで，Ｆはカメラの焦点距離［ｍｍ］、Ｗは撮影画像の幅［ｐｉｘ］、Ｃは撮影素子の幅［ｍｍ］である。実用上は視差画像のビット深度を小さくする（階調数を少なくする）目的で視差画像の画素値ｌではなく、ｌを定数Ａにより平行移動させた
ｎ＝ｌ＋Ａ
を用いることが良くある。そこで本明細書中では、このｎを視差と呼ぶこととする。なお、この場合、上記で述べた距離と視差の関係は
ｎ＝ＢＦＷ／（ｄＣ）＋Ａ  …（１）
となる。以下では、視差ｎを用いて議論を進める。
【００１５】
なお、カメラが左右（水平）に正確に配置されている場合は、対応点の垂直方向の視差は０であることが保証できる（エピポーラ拘束）。従ってここで説明した視差は、対応点同士の水平方向のずれを示していることになる。
【００１６】
また、多視点画像撮影部１０８及び視差推定部１０９の目的は、視差画像を得ることであるため、上記の方式を置き換えても構わない。視差画像は、撮影装置と被写体の距離を式１に基づく変換を施して表現した量であるため、上で述べた、多視点画像間のステレオマッチング以外の距離情報取得技術も広く用いることができる。例えば、パターン照射した光を別の視点のカメラから捉え、パターンの歪み具合から距離を計測するアクティブステレオ方式や、レーザーが往復してくるまでの時間から距離を推測するタイムオブフライト方式などがある。
【００１７】
次に符号化装置１０１について説明する。本実施形態の符号化装置１０１は、画像入力部１０２を介して符号化対象となる視差画像を入力する。そして、符号化装置１０１は、許容誤差情報取得部１０５により取得した許容誤差情報に従い、入力した視差画像を圧縮符号化して符号データを生成し、その符号データを出力する。ここで許容誤差情報とは、画素値毎に、許容誤差を指定する情報であり、関数もしくはテーブル等で表現されるものとする。また、符号化装置１０１は、復号した際に元の画素に対して許容誤差に戻すための情報を生成し、それを符号化する。そして、符号化装置１０１は、これら２つの符号化データ、つまり、視差画像の符号化データ及び許容誤差に戻すための情報の符号化データを多重化して出力する。
【００１８】
実施形態における符号化装置１０１の特徴は、視差画像を、その視差画像の各画素の圧縮によって発生する誤差の最大値を、許容誤差情報取得部１０５が取得した許容誤差情報によって指定される値以下に抑えて、符号化する点にある。それを実現するため、まず、画素値変換情報設定部１０６（設定手段に相当する）が、許容誤差情報に応じて、入力視差画像の画素値を、第２の画素値に変換する為の画素値変換情報を設定する。画素値変換情報は、視差画素値を第２の画素値への変換を関数やテーブルで表現したものである。次に画像変換部１０３が、入力視差画像の各画素を画素値変換情報に基づいて変換し、その変換後の画素で構成される第２の画像を生成する。そして、画像符号化部１０４（第１の符号化制御手段に相当する）は、生成された第２の画像を、画素値の圧縮によるズレが定数δ以内に収まることを保証しながら画像を圧縮する定数精度保証符号化を行う。画像符号化部１０４は公知技術として挙げたＪＰＥＧ−ＬＳを用いれば良い。なお、δは任意の値で良く、許容誤差情報から算出しても良いし、事前に定めておいても良い。また、δ＝０の場合の符号化は可逆符号化を意味するが、その場合でも符号化装置１０１は問題なく機能する。画素値に応じた精度保証符号化を行うためには、画素値変換情報設定部１０６が重要な役割を持つ。画素値変換情報設定部１０６は、第２の画素値をδ変化させ、それに画素値変換情報で定まる逆変換を施して復号画素値を得た際に、復号画素値と入力視差画像の画素値のズレが許容誤差以内に収まる様に、画素値変換情報を定める。画素値逆変換情報符号化部１０７（第２の符号化制御手段に相当する）は、第２の画素値を意味のある値に変換する為の情報（以下、画素値逆変換情報）を可逆符号化する。すなわち、画素値逆変換情報符号化部１０７は、画素値変換情報設定部１０６の逆変換を特定するための情報を可逆符号化する。なお「意味のある値」とは多くの場合、入力視差画像の画素値を意味する。可逆符号化の方式は特に問わない。また、この画素値逆変換情報は、関数やテーブルの形で与えられる。
【００１９】
実施形態における符号化装置１０１が出力する符号データには次の２つが含まれる。
（１）画像符号化部１０４から得られる、第２の画像を復元するための情報
（２）画素値逆変換情報符号化部１０７から得られる、画素値逆変換情報を復元するための情報
なお、符号化データの出力先は、メモリカード等の記憶媒体とするが、ネットワークであっても構わず、その種類は問わない。
【００２０】
図３は上記の符号データを復号する復号装置３０１の構成を示している。復号しようとする符号データは上記の通りメモリカードから入力するものとするが、ネットワークを介して受信しても構わず、入力源の種類は問わない。いずれにしても、復号装置３０１は符号データを入力し、その画像復号部３０２が第２の画像を復元する。そして、画素値逆変換情報復号部３０５が画素値逆変換情報を復元する。そして、画像逆変換部３０３は、画素値逆変換情報によって第２の画像の逆変換を施し、視差画像を復元する。この復号処理で得られた視差画像の画素値は、符号化装置で符号化対象の視差画像の画素値に対し、許容誤差情報で示された許容誤差の範囲内となっている。復号された視差画像は２点間の距離計測部３０４に入力される。２点間の距離計測部３０４では視差画像から３Ｄ点群を構成することで、任意の２点間の３次元的な距離の計測を行う。このように、視差を距離に変換する場合には、符号データに、視差から距離への変換に必要な情報を含める必要がある。また、許容誤差情報も合わせて符号データに含めておけば、圧縮によって発生した視差画像の画素値の劣化により、２点間の測距誤差が最大でどれだけ発生するかも知ることができる。なお、視差画像を２点間の距離計測に用いるのは、復号した視差画像の応用例の１つである。例えば、人体検出や、特定領域への侵入者の検知、に視差画像から得られる３次元情報を利用することができる。
【００２１】
次に符号化装置１０１の構成とその処理内容のより詳細な説明を行う。特に、許容誤差情報を具体的に定め、その許容誤差を実現するために画素値変換情報設定部１０６が行う画素値変換情報の設定処理の詳細を述べる。
【００２２】
本実施形態で定める許容誤差情報の説明のために、まず符号化装置１０１への入力である視差画像について補足をする。式（１）を変換すると視差ｎ［ｐｉｘ］と距離ｄ［ｍｍ］には
ｄ＝ＢＦＷ／（ｎＣ）  ・・・（２）
＝Ｐ／（ｎ―Ａ）
＝ｆ（ｎ）
という関係が成り立つことは明らかである。ここで、Ｐ＝ＢＦＷ／Ｃとおいた。式（２）の関係から分かる様に、距離と視差は反比例の関係であるため、その関係をグラフにすると図４（ａ）のようになる。図４（ａ）から次の事項が言える。
・特性１：カメラと被写体の距離が近いほど、距離の分解能が高く、逆に遠いほど距離の分解能が落ちる。
・特性２：三角測量により距離を求める場合、測距誤差はステレオマッチングの対応点探索誤差に依存する為、視差表現においては、視差の大きさによらず同程度の誤差が発生する一方、距離表現においては遠いほど大きな誤差が発生する。
【００２３】
上で述べた、２つの特性を考慮し、本実施形態では視差画像に対する許容誤差情報を以下のように定める。
・条件１「視差の誤差δ0［ｐｉｘ］を許容」
・条件２「条件１の誤差を許容した際に、距離誤差がｅ［ｍｍ］以下に収まる領域では、距離の誤差ｅ［ｍｍ］を許容」
ここでパラメータδ0はステレオマッチングの誤差分布から定め、ｅは距離情報を利用する用途に応じた十分な精度を定めるのが望ましい。条件２のｅ［ｍｍ］の誤差を許容するという表現は、距離に対する許容誤差を設定しているが、式（１）の変換式から容易に視差に対する許容誤差へと換算することができる。このように許容誤差情報取得部１０５への入力は、入力視差画像の画素値に応じた許容誤差を、間接的に特定するための情報を与えても構わない。上記２つの条件は、入力視差画像の画素値ｎと、符号化装置１０１および復号装置３０１を経て復号された画素値ｎ’の間に次の関係が成立することを指定する。
【００２４】
【数１】
0006529374.tif 000002
なお、これを入力視差画像の画素値ｎとその許容誤差δn(n)の関係として表すと次式（３）となる。
【００２５】
【数２】
0006529374.tif 000003
つまり、本実施形態では許容誤差情報は式（３）で定まる。式（３）のグラフを図５（ａ）に示す。図５（ａ）のグラフの実線部分は条件１で定まる許容誤差を、点線もしくは破線部分は条件２で定まる許容誤差を示している。なお、図５（ａ）から分かるように、式（３）はｎの正の方向の誤差（上限）、負の方向の誤差（下限）を指定している。しかし、上限と下限が符号の反転以外は同様の式で表すことができる場合は、どちらか一方のみを指定しても構わない。
【００２６】
なお、図５（ａ）は視差と許容誤差の関係を示しているが、これは式１の変換式により、図５（ｂ）の曲線Ａ'ＢＣで示すように、距離ｄ［ｍｍ］と許容誤差の関係として表すことができる。ここで図５（ｂ）の曲線ＡＢＣは、条件１のδ0［ｐｉｘ］の誤差を許容するという視差に対する許容誤差を、距離に対する許容誤差として表現している。図５（ｂ）の曲線ＢＣに示す通り本実施形態では、所定の距離以上の遠方では、測距精度に合わせた誤差を許容しながら符号化を行う。一方所定の距離未満の近距離では条件２で指定された様に、距離の最大誤差が一定の値ｅになるように画素値の許容誤差を制御する。図５（ｂ）ではｅ＝１００［ｍｍ］の例を示した。これは図５（ｂ）の直線Ａ’Ｂに対応する。これにより、圧縮において、近距離部における距離情報の精度を過剰に保証してしまうことなく、符号量を効率よく削減することができる。
【００２７】
次に画素値変換情報設定部１０６の詳細を述べる。既に述べたように、画素値変換情報設定部１０６は、入力画素値ｎから第２の画素値ｍへの変換式を求める。またその際には、第２の画素値をδ変化させ、それに画素値変換情報で定まる逆変換を施して復号画素値を得た際に、復号画素値と入力画素値のズレが許容誤差以内に収まる様に、画素値変換情報を定める必要がある。以下では、入力画素値ｎから第２の画素値ｍへの変換を導出するに辺り、まず、ｍからｄへの変換する変換式ｇ（ｍ）を求め、ｎからｍへの以下の変換式（４）を求める。
ｍ＝ｇ-1（ｆ（ｎ））  …（４）
以下の導出では許容誤差情報に、条件１が適用される領域と、条件２が適用される領域とに分けてｇ（ｍ）を導出する。そこで、以下では、ｇ（ｍ）を図４（ｃ）に示すように２つの領域に分け、それぞれの領域で定義する。
【００２８】
【数３】
0006529374.tif 000004
ここで、ｇ1（ｍ）は条件１が適用される領域の関数、ｇ2（ｍ）は条件２が適用される領域の関数である。２つの領域の境界を定義する値ｍtは、図５（ａ）の許容誤差情報における、許容誤差の下限に条件１と条件２のどちらが適用されるかを切り替える点ｎtを、以下に説明する画素値変換によって第２の画素値に変換した値である。
【００２９】
まずｇ1（ｍ）を求める。ｇ1（ｍ）は条件１が適用される許容誤差が定数δ0の領域である。ここでは変換は不要、つまりｇ1（ｍ）＝ｆ（ｍ）とし、画像符号化部１０４で定数精度保証精度のパラメータδ＝δ0として符号化を行えば良い。この領域では、入力画素値ｎから第２の画素値への画素値変換はｍ＝ｎである。
【００３０】
次に、ｇ2（ｍ）を求める。ｇ2（ｍ）は許容誤差情報の条件２が適用される領域に対応する関数である。図５（ａ）のグラフから分かる様に、入力画素値の表現のままでも、許容誤差δ＝δ0で符号化すれば、入力画像の誤差が許容誤差以内に収まることは保証できる。しかし、条件２が適用される領域では、それ以上の誤差が許容されるため、δ0より大きな誤差が発生し得る変換を行った方が、より圧縮率が上がると考えられる。本実施形態の許容誤差情報は、条件２が適用される領域においては、下限の方が上限よりも許容誤差（の絶対値）が小さい。そこで、以降では許容誤差の下限のみを考慮して画素値変換情報を定める。実際、以下で導出する変換を施せば、圧縮による入力画素値ｎの劣化が許容誤差の上限以内に収まることは確認できる。ｇ2（ｍ）の導出の理解のために、図６に本実施形態におけるデータ変換の流れを示し、以下で説明する。与えられた入力画素値ｎに、変換ｆを行い距離ｄに変換する。次にｇの逆変換ｇ-1を施し第２の画素値ｍに変換する。この際、四捨五入６０４を施し整数に丸める。ここまでが画像変換部１０３で各画素に施す処理である。次にｍに符号化６０２と復号６０３を施しｍ’を得る。ｍとｍ’の差は最大でδ=δ0である。この処理は画像符号化部１０４と画像復号部３０２で行う。次にｍ’に変換ｇを行ってｄ’を求め、ｄ’にｆの逆変換ｆ-1と四捨五入６０４を施すことで復号画素値ｎ’を得る。この処理は画像逆変換部３０３で行う。復号画素値ｎ’から距離を求めるには、変換ｆを施して復号距離 ｄ''を得る。 ｇ2（ｍ）は、図６で示したデータ変換においてｄとｄ''の差が最大でもｅ以内に収まる様に定める必要がある。ｇ2（ｍ）は図４（ｃ）から分かる様にｇ1（ｍ）との接続を考慮する必要があるため、導出が少し複雑になる。そこでまず、条件２を満たす単調増加関数ｇ0（ｍ）を求める。図６のデータ変換の中で、発生する誤差は、
・四捨五入６０１で最大０．５
・符号化６０２及び復号６０３で最大δ=δ0 
・四捨五入６０４で最大０．５
である。これらの誤差を考慮した上で、条件２を満たすためには、ｇ0（ｍ）は、次の条件式（５）を満たせば良い。
【数４】
0006529374.tif 000005
という条件式を満たせば良い。ここでｎmaxは入力視差画像の画素値の取り得る最大値である。この条件式を解くと以下のようになる。
【数５】
0006529374.tif 000006
ここで
ｋ（ｍ）＝ｋ（０）Ｒm/(δ+0.5)
であり、
【数６】
0006529374.tif 000007
である。また、α、βは、以下の方程式の解(α＜β)である。
【数７】
0006529374.tif 000008
また、ｈ（０）は ｇ0（０）＝ｆ（ｎmax）を満たすように定めればよい。以上で求めたｇ0（ｍ）は図４（ｂ）に示すような単調増加関数になる。ｇ2（ｍ）は図４（ｃ）に示した如くｇ1（ｍ）との接続を考慮し、ｇ0（ｍ）を単調減少に反転した上で平行移動させた、
ｇ2（ｍ）＝ｇ0（Ｃ−ｍ）  …（６）
で求められる。なお、Ｃはｇ1（ｍ）との接続を考慮して適切な定数を定めればよい。
【００３１】
以上で求めた図４（ｃ）のｇ（ｍ）に対して、式（４）の変換を施すことで、画素値変換情報設定部１０６は、図４（ｄ）に示す変換情報を得ることが出来る。以上で本実施形態における符号化装置１０１の各部の説明を終える。
【００３２】
次に、本実施形態の撮影、符号化処理、復号処理、及び、復号情報の利用を行う処理の流れを図２のフローチャートに示した。これらの各処理は基本的には、図１、もしくは図３の各部の処理に対応する。Ｓ２０１では多視点画像撮影が行われる。これは多視点画像撮影部１０８が行う処理である。Ｓ２０２ではステレオマッチングによる視差推定を行う。これは視差推定部１０９が行う処理である。Ｓ２０３では、許容誤差情報を入力として取得し、画素値変換情報を設定する。これは画素値変換情報設定部１０６が行う処理である。Ｓ２０４では設定された画素値変換情報に基づき、Ｓ２０２で求めた視差画像の各画素値を変換することで第２の画像を得る。これは画像変換部１０３に対応する。Ｓ２０５では第２の画像を符号化する。これは、画像符号化部１０４が行う処理である。Ｓ２１０では第２の画像の各画素値を入力画素値に変換する情報を符号化する。この処理は画素値逆変換情報符号化部１０７が行う。Ｓ２０６では、Ｓ２０５で得た第２の画像の符号化データと、Ｓ２０３で設定した画素値変換情報の逆変換を行うための情報の符号化データが伝送される。Ｓ２０７では第２の画像を復号する。これは画像復号部３０２に対応する。Ｓ２１１では画素値逆変換情報を復号する。これは画素値逆変換情報復号部３０５が行う。Ｓ２０８では第２の画像に対し、画素値逆変換情報で定まる逆変換を行う。この処理は画像逆変換部３０３が行う。最後にＳ２０９では２点間の距離計測を行う。この処理は２点間の距離計測部３０４が行う。以上で、図２による、本実施形態の処理フローの説明を終える。
【００３３】
上記実施形態では画素値変換情報及び画素値逆変換情報が、少数のパラメータで表せる関数になる例を述べた。一般には画素値逆変換情報は入力画素値に対して第２の画素値を列挙したテーブル情報になり、符号データにもそのテーブルを含めねばならない為、データ量が増大する可能性がある。しかし、本実施形態で述べた例では画素値逆変換情報として少数のパラメータのみを送れば良い為、その分のデータ量が削減できるという効果がある。なお、精度保証符号化の目的を達成するには、画素値逆変換情報は可逆圧縮することが望ましい。しかし、画素値逆変換情報をテーブルで送る場合にはデータ量が多くなるため、そのテーブルを関数近似してそのパラメータを送るなどの、非可逆圧縮を行うことも考えられる。その場合は、非可逆圧縮して復号した画素値逆変換情報を用いても入力画素値ｎと出力画素値ｎ’の差が許容誤差以内に収まることを符号化装置で確認すれば、精度保証符号化の目的を達成できる。
【００３４】
次に、理解を助けるため、符号化装置１０１のより具体的な例を図１４を用いて説明する。なお、以下の具体例では、上記説明の中で現れたパラメータの具体的な値は、Ｐ＝３４８０００、ｅ＝１００、δ0＝２、ｎmax＝１０２３、Ｃ＝１８４、ｎt＝１０２ である。図１４（ａ）に許容誤差情報を、同図（ｂ）に画素値変換情報を、同図（ｃ）に画素値逆変換情報を、表形式で示す。なお、上で述べた通り、ここに示した表は小数の関数パラメータにより求めることができる。本具体例では視差画像の画素値は１０ビットで表されるものとする。１０ビットであるから、画素値の取り得る範囲は０〜１０２３となる。
【００３５】
以下では、図１４（ａ）の入力画素値ｎ＝１４７が、符号化装置１０１で符号化され、復号装置３０１を通して復号して得られた結果の画素値ｎ’が許容誤差内に収まる事を説明する。画素値ｎは図１４（ｂ）に示した通り、画像変換部１０３によって、第２の画素値ｍ＝１３２に変換される。そして画素値ｍは画像符号化部１０４によって最大でδ＝２の誤差で符号化され、画像復号部３０２で復号される。その結果得られたｍ’は１３０〜１３４の値を取り得る。最後に画像逆変換部３０３において、ｍ’はｎ’に変換される。図１４（ｃ）の矢印示した通り、ｎ’は１４４〜１５３を取り得る。これは図１４（ａ）の許容誤差情報が指定するｎの許容誤差の範囲１４２〜１５３に収まる為、確かに本符号化装置の目的が果たされることが分かる。
【００３６】
上記では許容誤差情報は許容誤差情報取得部１０５に対して、条件１と条件２で表した様に曲線のパラメータで入力する方法を述べたが、画像に応じて許容誤差情報を適応的に求める方法も考えられる。例えば、多視点画像撮影部１０８で取得したカラー画像に対し、人体検出処理を適用し、同一視点の視差画像を参照して人体が存在する領域内の視差画像の画素値分布を求め、その画素値分布で多くの画素が存在する画素値に対しては、許容誤差を小さくする。この処理を、より一般化すれば、許容誤差情報取得部１０５は注目領域を特定する注目領域特定部と、注目領域内の画素値を参照して、許容誤差情報を算出する許容誤差情報算出部を持つことになる。この場合、画素値変換情報設定部１０６で求める変換情報は、図４（ｄ）に示したものとは異なる。しかし、既に述べたように、第２の画素値をδ変化させ、それに画素値変換情報で定まる変換の逆変換を施して復号画素値を得た際に、復号画素値と入力画素値のズレが許容誤差以内に収まる、という原則を満たす変換情報を求めれば良いのは同様である。
【００３７】
また、上記説明では符号化装置１０１は視差画像の符号化のみに用いていたが、視差画像に限らず、グレー画像や、カラー画像など、任意の画像に適用することができる。グレー画像の例としては、距離、温度、明るさ等の物理量が考えられる。カラー画像の例としては、多視点画像撮影部１０８では視差推定を行うために複数のカラー画像を取得するが、ここで取得したカラー画像の１枚、もしくは複数枚を、符号化装置１０１で符号化することが考えられる。この場合、カラー画像と視差画像を同様の符号化装置で共有でき、システムが簡易になるというメリットがある。
【００３８】
また、上記カラー画像はＪＰＥＧなど、符号化装置１０１とは異なる符号化を適用することも考えられる。この際、ＪＰＥＧはブロック単位に異なる画質で符号化することができるため、同一視点の視差画像を参照し、許容誤差が大きい画素が多いブロックに対しては、カラー画像も該当ブロックの画質を下げ、高圧縮にすることも考えられる。これはＪＰＥＧに限らず、領域毎に圧縮率をコントロール可能な画像符号化方式全般で実現できる。
【００３９】
また、上記説明では、画像符号化部１０４ではＪＰＥＧ−ＬＳを例に説明した。これは符号化対象の画素値から、それを復号した画素値を引いた差が−δ以上、δ以下に収まることが保証される符号化である。しかし、本発明の基本的な考え方は、発生する最大誤差が正と負の方向で非対象である場合にも適用できる。例えば、符号化対象の画素値から、それを復号した画素値を引いた差が０以上、１以下に収まる符号化にも適用できる。この場合でも、発生する差は−１以上１以下であるため、δ＝１における上記で述べた画素値変換を適用すれば良い。また、最大誤差の非対象性を利用してより最適な画素値変換を求めても良い。その場合も、第２の画素値に画像符号化部１０４で発生し得る最大の誤差が発生しても、復号画素値と入力画素値のズレが許容誤差内に収まる、という原則を満たす変換情報を求めればよい。なお、０以上１以下の誤差を実現する符号化は、ＪＰＥＧ−ＬＳに似た予測符号化により容易に実現できる。つまり、各画素をラスタスキャン順に符号化する方式で、符号化対象の画素値を周囲の画素値から予測し、その予測誤差を２進数表現した際の最下位ビットを切り捨てた値をエントロピー符号化すれば良い。
【００４０】
以上で本実施形態の説明を終える。上記構成により、符号化装置１０１は、画像入力部１０２に入力された画像の各画素の圧縮によって発生する誤差の最大値を、許容誤差情報取得部１０５で取得する許容誤差以下に抑えながら画像を符号化することが可能となる。
【００４１】
［第１の実施形態の変形例］
図１に示した符号化装置１０１の各部はハードウェアで構成しても良いが、ソフトウェア（コンピュータプログラム）として実装しても良い。この場合、このソフトウェアは、ＰＣ（パーソナルコンピュータ）等、一般のコンピュータのメモリにインストールされることになる。そしてこのコンピュータのＣＰＵがこのインストールされたソフトウェアを実行することで、このコンピュータは、上述の画像処理装置の機能を実現することになる。即ち、このコンピュータは、上述の画像処理装置に適用することができる。第１の実施形態の符号化装置に適用可能なコンピュータのハードウェア構成例について、図７のブロック図を用いて説明する。
【００４２】
ＣＰＵ１５０１は、ＲＡＭ１５０２やＲＯＭ１５０３に格納されているコンピュータプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、画像処理装置が行うものとして説明した上述の各処理を実行する。ＲＡＭ１５０２は、コンピュータ読み取り可能な記憶媒体の一例である。ＲＡＭ１５０２は、外部記憶装置１５０７や記憶媒体ドライブ１５０８、更にはネットワークインタフェース（不図示）からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアとして機能する。更に、ＲＡＭ１５０２は、ＣＰＵ１５０１が各種の処理を実行する際に用いるワークエリアとしても機能する。即ち、ＲＡＭ１５０２は、各種のエリアを適宜提供することができる。ＲＯＭ１５０３は、コンピュータ読み取り可能な記憶媒体の一例であり、コンピュータの設定データや、ブートプログラムなどが格納されている。
【００４３】
キーボード１５０４、マウス１５０５は、コンピュータの操作者が操作することで、各種の指示をＣＰＵ１５０１に対して入力することができる。表示装置１５０６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１５０１による処理結果を画像や文字などでもって表示することができる。
【００４４】
外部記憶装置１５０７は、コンピュータ読み取り記憶媒体の一例であり、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１５０７には、ＯＳ（オペレーティングシステム）や、図１に示した各処理をＣＰＵ１５０１に実現させるためのコンピュータプログラムやデータ、上記の各種テーブル、データベース等が保存されている。外部記憶装置１５０７に保存されているコンピュータプログラムやデータは、ＣＰＵ１５０１による制御に従って適宜ＲＡＭ１５０２にロードされ、ＣＰＵ１５０１による処理対象となる。
【００４５】
記憶媒体ドライブ１５０８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているコンピュータプログラムやデータを読み出し、読み出したコンピュータプログラムやデータを外部記憶装置１５０７やＲＡＭ１５０２に出力する。なお、外部記憶装置１５０７に保存されているものとして説明した情報の一部若しくは全部をこの記憶媒体に記録させておき、この記憶媒体ドライブ１５０８に読み取らせても良い。
【００４６】
Ｉ／Ｆ１５０９は、外部からカラー画像、距離画像、等を入力するインタフェースであり、一例として示すのであればＵＳＢ（Universal Serial Bus）である。１５１０は、上述の各部を繋ぐバスである。
【００４７】
上述構成において、本コンピュータの電源がＯＮになると、ＣＰＵ１５０１はＲＯＭ１５０３に格納されているブートプログラムに従って、外部記憶装置１５０７からＯＳをＲＡＭ１５０２にロードする。この結果、キーボード１５０４、マウス１５０５を介した情報入力操作が可能となり、表示装置１５０６にＧＵＩを表示することが可能となる。ユーザが、キーボード１５０４やマウス１５０５を操作し、外部記憶装置１５０７に格納された符号化アプリケーションの起動指示を入力すると、ＣＰＵ１５０１はこのプログラムをＲＡＭ１５０２にロードし、実行する。これにより、本コンピュータが画像処理装置として機能することになる。
【００４８】
なお、ＣＰＵ１５０１が実行する符号化アプリケーションプログラムは、基本的に図１の符号化装置１０１に属す各部に相当する関数（orサブルーチン）を備えることになる。ここで、画像処理結果は外部記憶装置１５０７に保存することになる。なお、このコンピュータは、以降の各実施形態に係る符号化装置にも同様に適用可能であることは、以下の説明より明らかである。
【００４９】
［第２の実施形態］
第１の実施形態では、図６のデータ変換の流れにおいて、復号画素値（視差）ｎ'を得た上で、復号距離ｄ''を得た。しかし、復号時に視差ｎ'が不要で、距離のみが取得できれば良い場合は、符号化装置１０１が出力する符号データは次の通りである。
・画像符号化部１０４から得られる、第２の画像を復元するために必要な情報（ｍ'の復号に必要な情報）
・第２の画像の画素値ｍ'から距離ｄ'を求める為の情報（関数ｇのパラメータ）
このうち、前者は第１の実施形態と共通であり、後者は「画素値逆変換情報」の第１の実施形態とは異なる具体例である。なお、第１の実施形態では画素値逆変換情報として、第２の画像の画素値ｍ'から復号画素値ｎ'を求めるための情報を符号化した。この考え方をより一般化すると、画素値逆変換情報は、第２の画素値を入力画素値に変換するための情報だけでなく、第２の画素値を入力画素値が本来表現している物理量へ直接変換するための情報であっても良いと言える。
【００５０】
本第２の実施形態の符号化装置及び復号装置の構成は、基本的には第１の実施形態の図１及び図３と同様である。ただし、画素値変換情報設定部１０６、画素値逆変換情報符号化部１０７、画素値逆変換情報復号部３０５、及び、画像逆変換部３０３の詳細が異なる。また復号装置３０１が出力するのは視差画像ではなく、各画素に距離情報ｄ’が入った距離画像となる点である。
【００５１】
ここで、画素値変換情報設定部１０６の役割を、第１の実施形態との違いに重点をおいて説明する。本第２の実施形態の画素値変換情報設定部１０６の役割は第１の実施形態と同様、第２の画素値をδ変化させ、それに画素値変換情報の逆変換を施して復号画素値を得た際に、復号画素値と入力画素値のズレが許容誤差以内に収まる変換を求めることである。この原則を満たす変換を得るため、第１の実施形態と同様にまず、ｍからｄへの変換式ｇ（ｍ）を求め、式（４）に基づいてｎからｍへの変換式を求める。本実実施形態でもｇ（ｍ）はｇ1（ｍ）とｇ2（ｍ）からなり、ｇ1（ｍ） は第１の実施形態と同様である。ｇ2（ｍ）を求める為にまず第１の実施形態同様ｇ0（ｍ）を求める。ｇ0（ｍ）を求めるための条件式、図６の四捨五入６０４が不要になる為、第１の実施形態の式（５）の代わりに、次式（７）を満たす関数を求めれば良い。
【数８】
0006529374.tif 000009
上記式（７）を解くと、以下のようになる。
【数９】
0006529374.tif 000010
このｇ0（ｍ）に第１の実施形態と同様の変換を行えば、ｇ2（ｍ） 及びｇ（ｍ）を求めることができる。
【００５２】
画素値逆変換情報符号化部１０７では、既に述べたように、第２の画像の画素値ｍ'から距離ｄ'を求める為の情報（関数ｇのパラメータ）を符号化する。また、画素値逆変換情報復号部３０５は画素値逆変換情報符号化部１０７で符号化した画素値逆変換情報（関数ｇ）を復号する。
【００５３】
画像逆変換部３０３では、第２の画像の各画素値に関数ｇによる変換を施して距離画像を得る。この距離画像の各画素値は図６のｄ'に対応する。
【００５４】
なお、本第２の実施形態では復号画素値ｎ'は明示的には復号しないが、ｄ'に変換ｆ-1を施せば非整数復号画素値ｎd が、そして四捨五入６０４を施せばｎ'が復号できる。本実施形態では、ｎdとｎとの差は、許容誤差情報で定める誤差以内に収まることが保証される。ただし、画素値変換情報を求める際に、四捨五入６０４の誤差を考慮していないため、ｎ’とｎの誤差が許容誤差に収まることは保証できない。本実施形態の第１の実施形態に対する大きな違いは、四捨五入６０４の誤差を考慮せずにｇ（ｍ）を求めることで、変換式ｇ0（ｍ）が第１の実施形態に比べて単純な変換式で表せることである。これにより、第１の実施形態に比べて、実装が容易、処理が高速、といった効果が得られると考えられる。
【００５５】
なお、本実施形態では図６の四捨五入６０４の誤差を考慮しない例を示したが、第２の画素値ｍが整数以外の値を取り得る場合は、四捨五入６０１の誤差も考慮しなくても良い。この場合でも本実施形態と同様の考え方で符号化装置を構成することは可能である。
【００５６】
以上で本第２の実施形態の説明を終える。上記構成により、第１の実施形態と同様、入力画像の各画素の圧縮によって発生する誤差の最大値を、許容誤差情報が定める許容誤差以下に抑えながら画像を符号化可能な、符号化装置が実現できる。また、本実施形態特有の効果として、第１の実施形態に比べて、実装が容易、処理が高速、といった効果が得られる。
【００５７】
［第３の実施形態］
第１の実施形態では、許容誤差情報の具体的な例（条件１、条件２）を定め、その場合において有効な画素値変換方法を説明した。これに対し本実施形態では、許容誤差情報が、画素値に応じて任意の許容誤差を指定するテーブルの形で与えられる場合においても適用できる画素値変換方法を説明する。本実施形態の画素値変換は、第１の実施形態より汎用的に用いることが出来る。
【００５８】
図８に、本実施形態におけるデータ変換の流れを示す。入力画素値ｎに画素値変換ｈを施し画素値ｍを得る。画素値ｍを符号化及び復号し画素値ｍ'を得る。ｍとｍ'の差は最大で定数δ以内である。次に画素値ｍ'に変換ｈ-1を施して復号画素値ｎ'を得る。図８は第１の実施形態の図６に対応する図であり、図６ではｎからｍへの変換を、変換ｆとｇ-1の２段階で行っていたものを、変換ｈにまとめたものである。第１の実施形態では入力画素値が視差を表す場合に特に有効な符号化の例を示した為、説明を分かりやすくするために、入力画素値ｎと第２の画素値ｍとの間に距離ｄを挟んだデータ変換の流れを説明した。しかし、本実施形態は画素値がどの物理量に対応していても有効に使える汎用的な手法の為、距離ｄを介さずに直接ｎからｍへの変換を説明する。なお、本来の逆変換の定義は次式が成立することである。
ｎ＝ｈ-1（ｈ（ｎ））
【００５９】
しかし、本実施形態で述べる変換ｈとｈ-1は、必ずしもその関係を満たさない。しかし、この変換は入力画素値と第２の画素値との相互変換を行うものであるため、対応を分かり易くするために、逆変換と呼ぶ。
【００６０】
本第３の実施形態で説明する符号化装置のブロック図は、図１の符号化装置１０１と同様である。また、符号化装置１の役割が、入力画像の各画素の圧縮によって発生する誤差の最大値を、許容誤差情報が指定する値以下に抑えながら、画像を符号化することであることも第１の実施形態と同様である。本第３の実施形態と第１の実施形態の大きな違いは、許容誤差情報取得部１０５に入力される許容誤差情報と、その許容誤差に基づいて画素値変換情報設定部１０６が設定する画素値変換情報である。以下では第１の実施形態との違いを中心に本第３の実施形態の詳細について説明する。
【００６１】
画像入力部１０２には視差画像が入力される。なお、入力される画像が視差画像に限らないのは第１の実施形態と同様である。以下の説明では簡単のため、入力された視差画像の各画素値は０〜７の計８値をとるものとする。
【００６２】
許容誤差情報取得部１０５には、画素値に応じた許容誤差が、テーブルの形で入力される。許容誤差は、正と負の方向に同じ誤差を許す場合は各画素値に対して１つの値を、正と負の方向で異なる誤差を許す場合は、各画素値に対して２つの値を入力する。ここでは後者の例を図９に示す。図９は入力画素値毎の許容誤差を示した表になっており、例えば、入力画素値「４」に対し、正の方向に「２」、負の方向に「１」までの許容誤差が与えられる。つまり入力画素値「４」は、符号化による誤差で３〜６の範囲内で変化することが許される。また、図９において許容誤差の数字が丸印で囲まれているのは、劣化後の画素値が、画素値の有効範囲の上限もしくは下限（本実施形態の例では０もしくは７）を許容誤差内に含む事を示している。
【００６３】
図９の許容誤差情報が定める入力画素値ｎと復号画素値ｎ’との関係を図１０（ａ）に示す。図１０（ａ）では、横軸が入力画素ｎ、縦軸が復号画素ｎ’を示しており、画素値ｎに対してｎ’が取り得る値の範囲を実線で示している。図中の黒丸がｎ＝ｎ’の点であり、その点の上下に許容誤差に応じて実線が伸びている。
【００６４】
画素値変換情報設定部１０６は、画素値ｎからｍへの画素値変換ｈを定義するテーブルを作成する。そして、画素変換部１０３がそのテーブルに基づいて入力画像の各画素値を変換した第２の画像を生成する。そして画像符号化部１０４が、生成された第２の画像を、画素値の圧縮によるズレが定数δ以内に収まることを保証しながら画像を圧縮する定数精度保証符号化を施す。この処理の流れは第１の実施形態と同様であるが、画素値変換情報設定部１０６の詳細が異なる為、以下で説明する。
【００６５】
画素値変換情報設定部１０６の目的は第１の実施形態と同様である。つまり、第２の画素値ｍをδ変化させ、それに画素値逆変換情報ｈ-1が定める逆変換を施して復号画素値を得た際に、復号画素値と入力画素値のズレが許容誤差以内に収まる様に、画素値変換情報と画素値逆変換情報を定める。以下では、δ＝１とし、入力画素値ｎと復号画素値ｎ'のズレが図１０（ａ）に示した範囲に収まる画素値（逆）変換テーブルを生成する例を用いて説明する。
【００６６】
なお、以下のアルゴリズムはδが任意の値で動作するが、δによって圧縮率が変化する為、適切な値に設定することが望ましい。δが小さすぎる場合、例えばδ＝０の場合は、画像符号化部１０４でロスレス圧縮を行わねばならず、許容誤差内であれば画素値がズレて良いという利点を生かせない為、圧縮率が低下すると考えられる。一方でδを大きくすると第２の画素値のビット深度が入力画素値のビット深度より大きくなり、データ量の増加や符号化時のメモリ使用量の増加を招く。本実施形態では図９に示した許容誤差の表において、丸で囲まれていない許容誤差の中で、最も小さい値（つまり１）にδを設定する。このように設定すると、必ず第２の画素値のビット深度が入力画素値のビット深度より小さくなる。つまり視差画像の画素値の階調数よりも第２の画素値の階調数の方が少なくなる。これにより、視差画像のデータ量を削減し、画像符号化部１０４で許容誤差内であれば画素値がズレて良いという利点を生かした符号化ができる。
【００６７】
画素値変換情報設定部１０６において、第２の画素値ｍをδ変化させた時に復号画素値ｎ'のズレが許容誤差内に収まるような画素値変換の、本第３の実施形態における実現方法の基本的な考え方を図１０（ｂ）を用いて説明する。図１０（ｂ）は説明のために図１０（ａ）のｎ＝１及び４に対応する部分だけを残したグラフである。
【００６８】
変換は、基本的には、
・変換原則１『ｎの各画素値の許容誤差内に２δ＋１個以上のｍの量子化代表値を割り当て、各画素値ｎは許容誤差内にあるｍの量子化代表値の中心にある値に変換』
を満たすように行えばよい。ここで、『許容誤差内にあるｍの量子化代表値の中心にある値』というのは、より厳密には、『許容誤差内の上下それぞれにδ個以上の量子化代表値がある値』である。図１０（ｂ）の例で言うと、ｎ＝４の許容範囲内には点線１００１、１００２、１００３で示すように３個（つまり、２δ＋１個）の量子化代表値を割り当て、ｎ＝４はその３つの量子化代表値の中心である点線１００１に対応する値に変換すれば良い。変換原則１は目的を達成するのに十分な条件であるが、さらに効率的な変換をするために
・変換原則２『許容誤差内に、画素値の有効範囲の上限（下限）が含まれる場合は、ｎの各画素値の許容誤差内にδ＋１個以上のｍの量子化代表値を割り当て、各画素値ｎは許容誤差内にあるｍの量子化代表値の小さい値（大きい値）に変換』
を行えば良い。なお、『許容誤差内にあるｍの量子化代表値の小さい値（大きい値）に変換』というのはより厳密には、上（下）にδ個以上の量子化代表値がある値である。例えば図１０（ｂ）のｎ＝１の例では許容誤差範囲が、画素値の有効範囲の下限を含む為、許容誤差内に２個（つまり、δ＋１個）の量子化代表値を割り当て、ｎ＝１はその２個のうちの小さい値である点線１００４に対応する量子化代表値に変換する。このようにすれば、ｍの画素値が＋δずれた場合も点線１００５に示すようにｎの許容誤差内に収まることが保証できる。また、ｎは許容誤差内に画素値の有効範囲の下限を含む為、−δ方向のずれは特に考慮しなくても許容誤差内に収まることを保証できる。この例では、許容誤差内に画素値の有効範囲の下限が含まれる場合を説明したが、上限が含まれる場合も同様の考え方を適用できる。また、
・変換原則３『許容誤差内に、画素値の有効範囲の上限と下限の両方が含まれる場合は許容誤差内に１個以上の量子化代表値を割り当て、各画素値ｎは許容誤差内にあるｍの量子化代表値の任意の値に変換』
を行えば良いが、このような状況の発生は極めて稀であるため、以降では詳細な説明は省く。
【００６９】
上述の変換原則を満たすような画素値（逆）変換を実現するため、本第３の実施形態における画素値変換情報設定部１０６の画素値変換情報の設定処理を図１１のフローに従って処理する。図１１の各処理の説明を、図１２（ａ）〜（ｃ）の具体例を示しながら説明する。
【００７０】
Ｓ１１０１では、画素値変換情報設定部１０６は各画素値の許容範囲内にｍの量子化代表値をいくつ割り当てれば良いかを設定する。図１２（ａ）には図１０（ａ）に示した許容範囲のグラフに対応する画素値スコアの具体例を示した。既に述べた変換原則にのっとり、初期状態では画素値スコアは３（つまり、２δ＋１）もしくは２（つまり、δ＋１）を割り当てた。
【００７１】
Ｓ１１０２では、画素値変換情報設定部１０６は、全ての画素値スコアが０かを判定する。この判定がＹＥＳの場合は、変換原則を満たす「ｍの量子化代表値割り当て」が行われたと判定できる。
【００７２】
Ｓ１１０３では、画素値変換情報設定部１０６は、各画素値の代表値スコアを求める。代表値スコアは、ｎのどの画素値にｍの量子化代表値を割り当てるかの優先度を表した値である。本実施形態の例では、各画素値の代表値スコアは、「その画素値を許容範囲内に含む画素値の画素値スコアの和」を用いる。これは、代表値スコアは「できるだけ多くの画素値の許容範囲に含まれている値、かつ、多くの量子化代表値を割り合てる必要がある領域」を選ぶのが良いという考えを反映したものである。図１２（ａ）に代表値スコアの具体例が示してある。例えば、ｎの画素値“３”は、画素値“２〜５”の許容誤差内に含まれている。したがって、画素値“２〜５”の画素値スコアの和である“１１”が代表値スコアになっている。
【００７３】
Ｓ１１０４では、画素値変換情報設定部１０６は、代表値スコアが最大となるｎの画素値にｍの量子化代表値を割り当てる。図１２（ｂ）の点線１２０１で示すように、ｎの画素値“３”に対して、ｍの量子化代表値を割り当てる。なお、代表値スコアが最大となるものが複数ある場合の優先度として、画素値スコアの総和をより多く減らせる画素値に割り当てを行うと、Ｓ１１０２の判定条件を早く満たすことが出来る為、望ましいと考えられる。また、次の優先順として、未だ代表値が割り当てられていない画素値に優先的に割り当てると、代表値が一か所に集中的に多く割り当てられるのを防ぐことができるため望ましい。それでも優先度が一意に決まらない場合は、画素値の小さいものを優先して割り当てるなどをすれば良い。
【００７４】
再度、Ｓ１１０１にて、画素値変換情報設定部１０６は、画素値スコアを算出する。図１２（ｂ）の例では代表値割り当てによって、ｎの画素値２〜５の画素値スコアが１ずつ減っている。
【００７５】
再度、Ｓ１１０２にて、画素値変換情報設定部１０６は、代表値スコアを更新する。図１２（ｂ）の例では画素値スコアの更新に伴い、代表値スコアを更新した例を示した。
【００７６】
画素値変換情報設定部１０６は、以上のＳ１１０１からＳ１１０４の処理を、Ｓ１１０２にて全ての画素値スコアが０と判定されるまで繰り返す。この結果、図１２（ｃ）に示すように、ｎの画素値０〜６にｍの量子化代表値が割り当てられ、それらの代表値を小さい方から順にｍの画素値０〜６を対応させた。図１２（ｃ）を見ると、ｎの各画素値の許容範囲内に、３（つまり２δ＋１）もしくは２（つまり、δ＋１）個の量子化代表値が割り当てられたことが確認できる。つまり、変換原則１、及び、２の条件を満たす量子化代表値の割り当てが出来ていることが確認できる。
【００７７】
次にＳ１１０５にて、画素値変換情報設定部１０６は、Ｓ１１０４で得たｎとｍの関係をもとに、図８のｈ及びｈ-1の画素値変換を求める。画素値変換ｈは、既に変換原則１及び２で説明した通り、ｎの各画素値の許容誤差内にあるｍの量子化代表値のうち、上下の両方（ｎの許容誤差が画素値の上限下限を含む場合は適切な一方）にδ個以上の量子化代表値が存在する値に変換すれば良い。また、その条件を満たす候補が複数ある場合は、ｎ自身の画素値に最も近い位置に割り当てられた量子化代表値に変換すれば良い。図１３（ａ）に、図１２（ｃ）で得たｍの量子化代表値の割り当てから求めた、画素値変換ｈを定義するテーブルを示した。また画素値変換ｈ-1は図１２（ｃ）から、ｍの各画素値に対応するｎを一意に求めることができる。その例を図１３（ｂ）に示した。
【００７８】
以上で本第３の実施形態における画素値変換情報設定部１０６の説明を終える。符号化装置１０１のその他の部位の動作は、画素値変換情報が関数からテーブルに変わった以外は、第１の実施形態と同様である。また、出力された符号データの復号も、第１の実施形態と同様、復号装置３０１で行うことが出来る。
【００７９】
なお、本実施形態では、第２の画素値の量子化代表値は、入力画素値の有効範囲の整数値に割り当てたが、小数値に割り当てることもできる。その場合も、上で述べた変換原則を満たすような変換を行えば、画素値に応じた精度保証符号化を実現できる。また変換原則を満たす変換の中でより好適な変換を求める方法も、本実施形態内で説明したように、代表値スコアを求め、代表値スコアの高い物から優先的に代表値を割り当てるという考え方が適用できる。また、許容誤差情報が定める各画素値の許容誤差が小数の場合にも、本実施形態の考え方は同様に適用できる。
【００８０】
以上で本第３の実施形態の説明を終える。上記構成により、第１の実施形態同様、入力画像の各画素の圧縮によって発生する誤差の最大値を、許容誤差情報が定める許容誤差以下に抑えながら符号化可能な、符号化装置が実現できる。また、本第３の実施形態特有の効果として、許容誤差情報を、画素値に応じて任意の許容誤差を指定するテーブルの形で与えた場合においても適用できる符号化装置となっている。
【００８１】
なお、上記実施形態では、画像符号化部１０４は、ＪＰＥＧ−ＬＳ（のニアロスレスモード）に従って符号化する例を示した。しかし、符号化前後の画素値のずれが定数δ以内に収まることを保証しながら画像を符号化する符号化手段を制御する手段（符号化制御手段）であれば良く、符号化手段そのものは必ずしもＪＰＥＧ−ＬＳに限るものではない。
【００８２】
［第４の実施形態］
第１の実施形態では、Ｃをｇ1（ｍ）との接続を考慮して適切な定数を定めればよいとしたが、ここではより適切なＣの算出方法について説明する。ここでは簡単のために、式２におけるＰ及びn-Aが常に正であることを仮定する。前述の通り本実施形態では基本的なアプローチとして、（ｉ）画素値変換情報設定部１０６が、距離画像の各画素値ｎ（小さいほど遠い）を、少階調の距離表現ｍ（大きいほど遠い）に変換し、（ｉｉ）画像符号化部１０４がニアロスレス符号化を行う。(iii)復号時には、画素値逆変換情報復号部３０５が誤差を含んだ画素値ｍ’を逆変換し復号画素値ｎ’を得る。この時生じる距離の誤差ε（ｎ） は次式（８）
ε（ｎ）＝｜ｆ（ｎ’）−ｆ（ｎ）｜    …（８）
により定義される。
【００８３】
少階調距離表現ｍを距離に変換する少階調距離取得関数ｇ0（ｍ） が、所定の距離未満である精度過剰部においてε（ｎ）≦ｅ（つまり第１の実施形態で記述した条件２）を満たすための条件を導く。以下に、上の(i)〜(iii)に対応する具体的処理を示す。これらは図１５とも対応しており、生じる距離の誤差が最大となる場合の様子を示している。
(i)  画素値ｎを少階調表現ｍに変換
ｍ0＝ｋ（ｎ）＝ｇ0-1（ｆ（ｎ））
ｍ＝ＲＯＵＮＤ（ｍ0）                           …（９）
（ここで、ＲＯＵＮＤ(・)は四捨五入）
整数丸めにより少階調表現で最大 の誤差が発生。
(ii)  (i)で得られた少階調画像をJPEG-LSにより符号化する。符号化により少階調表現で最大δの誤差が発生。この時の値をｍ’とする。
(iii)  逆変換により、復号画素値ｎ’を得る
ｎ’＝ＲＯＵＮＤ（ｋ-1（ｍ’））      …(１０)
整数丸めにより元の表現で最大０．５の誤差が発生。
【００８４】
繰り返しになるが、上記処理により(i)，(iii)ではそれぞれ最大0.5の丸め誤差が，(ii)では符号化によって最大δの誤差が生じる。これらの誤差を考慮して，階調数を最小化して符号量を削減するには，図１５に示されるようにe(n) = Eとなればよく、ｇ0（ｍ）は次の式（１２）を満たすことが最適である。
【数１０】
0006529374.tif 000011
以上がｆ（ｎ）に依存しない画素値変換の基本的な考え方であり、以下ではｆ（ｎ）が（２）式で与えられる場合のｇ0（・）の解とその扱いを示す。式（１２）のｆ（・）を式（２）により展開すると、次式（１３）が得られる。
【数１１】
0006529374.tif 000012
（１３）式は次のように変形できる。
【数１２】
0006529374.tif 000013
上記の漸化式を解くと次式（１４）を得る。
【数１３】
0006529374.tif 000014
ただし，ｇ0をデバイスが出力し得る最小距離とし、
α、βは、
【数１４】
0006529374.tif 000015
の解、
【数１５】
0006529374.tif 000016
【数１６】
0006529374.tif 000017
とした。
【００８５】
次に精度過剰部（ｄ＜ｄt）を定義する。ｚtは次の式（１５）で定義される。
｜（ｆ-1）'（ｄ）｜＝｜（ｇ0-1）'（ｄ）｜    …（１５）
これは、変換によって階調数が削減される範囲であり、ｄtはｇ（ｍ）の傾きがｆ（ｎ）と一致する距離である。この時、画素値変換はｎ＞ｆ-1（ｄt）の場合に行う。なお、（・）'はｄに関する微分を表す。また、変換後の画素値と距離の対応の連続性を保つためには、
【数１７】
0006529374.tif 000018
とすれば良い。なおこのとき、ｋ（ｎ）を次式（１６）で定義しなおすことができる。
ｋ（ｎ）＝Ｃ−ｇ-1（ｆ（ｎ））      …（１６）
【００８６】
［第５の実施形態］
第１の実施形態では、画素値変換情報設定部１０６において、許容誤差情報取得部１０５で取得した許容誤差を満たすような変換を算出し、その結果を設定した。本実施形態では事前に２通りの画素値変換情報を求めておき、画素値変換情報設定部１０６では、許容誤差情報に応じてそれらを切り替える例を示す。
【００８７】
本実施形態の装置構成、及び処理フローは第１の実施形態と同様、図１、図２で表すことができる。ただし処理の詳細が異なる為、詳細を補足する。
【００８８】
まず、本実施形態では許容誤差情報取得部１０５において、許容誤差を間接的に指定する情報として撮影モードを受け取る。撮影モードの例を図１６に示す。ここでは撮影モードとして人体検出モード及び姿勢認識モードを指定するものとする。それぞれの撮影モードに十分な精度ｅは、人体検出モードでは１００［ｍｍ］、姿勢認識モードでは３０［ｍｍ］とする。これは人体検出に距離情報を利用する場合には、人と背景や、人と人同士の重なりが分離出来れば十分な検出精度が出ると考えられる為である。また、姿勢認識においては、主要な間接同士の位置関係が分かれば姿勢推定精度がでると考えられる為である。なお、上記のパラメータｅは図５（ｂ）に図示したパラメータｅと同一の物である。
【００８９】
次に、画素値変換情報設定部１０６においては、許容誤差情報取得部１０５で取得した撮影モードに応じて、画素値変換情報を選択する。画素値変換情報は上記２つの撮影モードに応じたそれぞれに対して変換テーブルが事前に算出されて、不図示の記憶部に格納されており、撮影モードに応じてそのいずれかを読み出す。なお、パラメータｅ毎の変換情報の算出は第１の実施形態に求めた方法で求めることができる。第１の実施形態では変換式の算出方法を述べたが、そこから変換テーブルを求めることは容易である。
【００９０】
画素値逆変換情報符号化部１０７では画素値変換情報設定部１０６で設定した変換テーブルの情報を送る。なお、対応する復号装置にも撮影モードに応じた逆変換テーブルを記憶する記憶部を持たせておけば、変換テーブルの符号化は不要であり、撮影モードを区別するための情報のみを符号化すれば良い。本実施形態の例では撮影モードは２つであるため、１ｂｉｔのデータを符号化すれば良い。
【００９１】
本実施形態で説明した符号化装置で出力される符号データは、第１の実施形態と同様、図３の復号装置により復号できる。なお、既に述べた通り、画素値逆変換情報復号部３０５においては、撮影モードに応じて不図示の記憶部から、撮影モードに応じて、事前に算出してある逆変換テーブルのいずれかを選択して読み込んでも良い。
【００９２】
以上で本実施形態の説明を終える。上記構成により、第１の実施形態と同様、入力画像の各画素の圧縮によって発生する誤差の最大値を、許容誤差情報が定める許容誤差以下に抑えながら画像を符号化可能な、符号化装置が実現できる。また、本実施形態特有の効果として、撮影モードに応じた画素値変換情報を事前に算出しておき、それを選択的に切り替える為、画素値変換情報の算出処理が不要になり、処理負荷が小さくなるという効果がある。
【００９３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９４】
１０１…符号化装置、１０２…画像入力部、１０３…画像変換部、１０４…画像符号化部、１０５…許容誤差情報取得部、１０６…画素値変換情報設定部、１０７…画素値逆変換情報符号化部、１０８…多視点画像撮影部、１０９…視差推定部
【図１】
0006529374.tif 000019
【図２】
0006529374.tif 000020
【図３】
0006529374.tif 000021
【図４】
0006529374.tif 000022
【図５】
0006529374.tif 000023
【図６】
0006529374.tif 000024
【図７】
0006529374.tif 000025
【図８】
0006529374.tif 000026
【図９】
0006529374.tif 000027
【図１０】
0006529374.tif 000028
【図１１】
0006529374.tif 000029
【図１２】
0006529374.tif 000030
【図１３】
0006529374.tif 000031
【図１４】
0006529374.tif 000032
【図１５】
0006529374.tif 000033
【図１６】
0006529374.tif 000034