(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)
【特許文献】
【０００８】
【特許文献１】特開２０００−３３３０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
測距不能を表す画素値を０に設定して特許文献１に記載の技術を適用すれば、測距不能画素を含む画像を非可逆圧縮した後でも確実に測距不能画素として復号することは可能である。しかし、測距可能画素が非可逆圧縮により復号後に測距不能画素に変わる可能性は依然残されており、測距不能か否かを確実に判別することは出来ない。
【００１０】
本発明は係る問題に鑑みなされたものであり、画像データを非可逆符号化したとしても、符号化前の特定の画素値であった画素については、復号後でも判別可能にする技術を提供するものである。
【課題を解決するための手段】
【００１１】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを符号化する画像符号化装置であって、
オリジナルの画像における画素の値に対し最大誤差を保証した非可逆符号化データを生成する画像符号化手段と、
特定画素値を設定する設定手段と、
前記最大誤差をδとしたとき、前記特定画素値を挟んで±２δの範囲を未使用画素値範囲とし、画素値の取り得る範囲のうち、前記未使用画素値範囲以外の画素値を用いて、前記画像符号化手段の符号化対象の画像データを形成する画像形成手段とを有し、
前記画像形成手段で形成した前記符号化対象の画像データに対して前記画像符号化手段で符号化することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像に非可逆圧縮を適用した場合でも、復号画像から、符号化前の画像中の特定の画素値の存在を判別可能となる。従って、測距不能画素を特定画素とする距離画像を非可逆圧縮した場合においても、測距不能画素かどうかを復号画像から判別できるようになる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態の符号データを出力する画像処理装置のブロック図。
【図２】第１の実施形態の符号データを出力する画像処理のフローチャート。
【図３】第１及び第２の実施形態の画素値のテーブルを示す図。
【図４】第１の実施形態の画素値のテーブルの符号データを示す図。
【図５】第１の実施形態の画素値のテーブルを符号化する際の属性のインデックスを示す図。
【図６】第１の実施形態の符号データを復号する画像処理装置のブロック構成図。
【図７】コンピュータのブロック構成図。
【図８】第３の実施形態の符号データを出力する画像処理のフローチャート。
【図９】第３の実施形態の画素値のテーブルを示す図。
【図１０】第４の実施形態の符号データを出力する画像処理装置のブロック構成図。
【図１１】第４の実施形態の符号データを出力する画像処理のフローチャート。
【図１２】第４の実施形態の画素値のテーブルを示す図。
【図１３】第５の実施形態の符号データを出力する画像処理装置のブロック構成図。
【図１４】第５の実施形態の符号データを出力する画像処理のフローチャート。
【図１５】第５の実施形態の画素値のテーブルを示す図。
【発明を実施するための形態】
【００１４】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下で説明する各実施形態は、本発明を具体的に実施した例を示すもので、特許請求の範囲に記載の構成の具体的な実施形態の１つである。
【００１５】
［第１の実施形態］
本第１の実施形態では、測距不能画素を含む距離画像を生成し、生成した画像に対し非可逆圧縮を行った後でも、測距不能画素と測距可能画素を復号画像から判別可能な符号データを出力する画像処理装置を説明する。
【００１６】
図１は本実施形態に関わる非可逆符号化を行う画像処理装置のブロック図である。以下、本装置を構成する各部を説明する。
【００１７】
テーブル生成部１０１は、画素値とその画素値の意味を表す情報との対応を定義するテーブルを生成する。画像形成部１０２は、画像入力部として機能する多視点画像撮影部１０５から得た多視点画像を用いて距離画像を形成する。形成する距離画像の画素値の意味は、テーブル生成部１０１で生成したテーブルで定義される。画像符号化部１０３は、画像形成部１０２が形成した距離画像を、ニアロスレス符号化を行い、圧縮画像データを出力する。このニアロスレス符号化では非可逆圧縮によって発生する画素値の最大誤差がδ以内であることが保証される。テーブル符号化部１０４はテーブル生成部１０１で生成したテーブルを可逆符号化する。符号列形成部１０６は、復号に必要なヘッダを生成する。そして、符号列形成部１０６は、ヘッダに後続するように、テーブル符号化部１０４が出力したテーブルの符号データと、画像符号化部１０３が出力した圧縮画像データをファイルとして出力する。設定部１０７は、特定画素値として測距不能画素値を設定するものとする。また、設定部１０７は、必要に応じて符号化パラメータも設定する。
【００１８】
上記構成の中で本実施形態の特徴となるのは、画像符号化部１０３で画素値が最大δずれても、復号画像から測距不能画素が特定できるような画像を、画像形成部１０２で生成することである。それを実現するための基本的な思想を図３（ａ）のテーブルに基づいて説明する。なお、実施形態では、説明を単純なものとするため、距離画像は１画素当たり８ビットで表され、δ＝１とする。もちろん、これらの値でもって本発明が限定されるものではない。
【００１９】
図３（ａ）はテーブル生成部１０１で生成する画素値のテーブルの一例である。実施形態では１画素が８ビットであるので、画素値の取り得る範囲は０〜２５５となる。また、設定部１０７により、測距不能画素値として「２５５」が設定されているものとする。テーブル生成部１０１は、これらの設定に従い、図３（ａ）に示すように画素値「２５５」を測距不能画素とするテーブルを作成することになる。画素値「２５２」が視差「２５２」を表し、測距可能画素値のうち測距不能画素値に最も近い画素値をもつ。なお、視差は距離を定める値であり、詳細は後述する。ここで、テーブルに未使用の画素値を設けることが本実施形態の特徴であり、図３（ａ）では画素値「２５３」及び「２５４」を未使用画素値範囲とした。未使用画素値範囲は図中では記号「−」で表している。画像形成部１０２は、このテーブルに基づいて、未使用画素値範囲以外、つまり、０乃至２５２、２５５のいずれかの値を持つ距離画像を生成する。画像形成部１０２で距離画像を形成すると、後段の画像符号化部１０３でδのずれが発生しても、測距不能画素を確実に判別できる。図３（ａ）に示す通り、測距不能画素値「２５５」、それに最も近い画素値を持つ測距可能画素値が共にδずれた場合でも、取り得る値の範囲は重なっていない。従って、ニアロスレス符号化の圧縮によって発生する誤差によって、復号画像に未使用画素値が有る場合は、未使用画素値範囲外の最寄りの画素値に置き換えることで、復号画像から測距不能画素か否かを判別することができる。例えば、復号して得られた画素値が「２５４」であったとき、その画素は確実に測距不能画素であるので「２５５」と置き換えて良い。また、復号して得られた画素値が「２５３」であったとしたとき、その画素は測距可能画素値「２５２」であったことが確実であるので、「２５２」に置き換えて良い。ここまでをまとめると、測距不能画素か否かを判別するために、測距不能を表す画素値とそれ以外の画素値との間に２δ個の未使用画素値を設け、画像形成部１０２では「未使用」の画素値を持つ画素が存在しない画像を作成すれば良いことが理解できよう。
【００２０】
なお、上記特徴はニアロスレス符号化に限らず、圧縮による最大誤差が保証された非可逆圧縮であれば同様の考えで実現できる。この場合、復号後の画像から測距不能画素を判別可能にするために、画像形成部１０２は、測距不能画素値と測距不能画素値に最も近い測距可能画素値とのペアの間に未使用の画素値を設ける。その際には、上記画素値のペアのそれぞれに符号化による誤差が発生しても、復号後の画素値が同じ値を取らないことを保証するのに十分な幅で、未使用の画素値を設ける。
【００２１】
上記で本実施形態の基本的構成と特徴について述べた。以下では図２を用いて、それらを実現するための具体的な処理フローについて述べる。
【００２２】
Ｓ２０１では、設定部１０７が、ニアロスレス符号化のパラメータδを設定する。δは０以上の整数である。パラメータδはユーザが指定しても良いし、予め決められた固定値を記憶している不図示の記憶部から読出し設定しても構わない。ここでは予め定められた値とし、δ＝１が設定されているものとする。設定されたパラメータδは、テーブル１０１、画像符号化部１０３に供給される。
【００２３】
Ｓ２０２ではテーブル生成部１０１は、画素値テーブルを生成する。ここで生成するテーブルは図３（ａ）に示したものである。既に説明した通り、パラメータδに応じて測距不能画素の周囲に２δ個以上の未使用画素値を設ける点も既に説明した通りである。
【００２４】
Ｓ２０３では、多視点画像撮影部１０５による多視点のカラー画像を撮影させる。そして、Ｓ２０４にて、画像形成部１０２が、視差推定（ステレオマッチング）を行い、多視点画像から距離画像を推定（生成）する。距離画像の各画素値は図３（ａ）のテーブルに示した意味を持っており、測距可能画素には視差に応じた画素値を、測距不能画素には「２５５」を割り当てる。既に述べたように、ここで生成する距離画像には、「２５３」、「２５４」を画素値として持つ画素は存在しない。ここで、視差とは、異なる２つの視点で同一の被写体（点）を撮影した際に、一方の視点に映った点が、もう一方の視点での撮影画像のどこに写っているかを示す量である。一般には異なる画像間で、同一の被写体が写る点（以下、対応点）同士が何画素ずれているかで表現される。具体的には、光軸が平行で、水平軸に沿って基線長Ｂ［ｍｍ］の間隔で左右に並べた２つのカメラがあるとする。そして、これら２つのカメラの撮影面（光軸に垂直かつ、２つのカメラを通る平面）からｄ［ｍｍ］離れた点を撮影した場合、２つの撮影画像内の対応点の視差ｎ［ｐｉｘ］は、式（１）により算出できる。
ｎ＝ＢＦＷ／（ｄＣ）…（１）
ここで、Ｆはカメラの焦点距離［ｍｍ］、Ｗは撮影画像の幅［ｐｉｘ］、Ｃは撮影素子の幅［ｍｍ］である。なお、カメラが左右に正確に配置されている場合は、対応点の垂直方向の視差は０であることが保証できる（エピポーラ拘束）。従ってここで説明した視差は、対応点同士の水平方向のずれを示していることになる。上記説明から分かる通り、視差は距離の具体的な表現方法の１つである。
【００２５】
多視点画像から視差推定を行う技術は広く知られており、本実施形態ではブロックマッチングによって視差を求めるものとする。また、ブロックマッチングを行う際は、異なる画像のブロック同士のコスト関数（差分絶対値和など）が最小のものを対応ブロックとして視差を求めるが、コスト関数が閾値以下となるようなブロックが存在しない場合は測距不能と判定する。ブロックマッチングにおいて対応ブロックを探索する範囲は、Ｓ２０２のテーブルによって決まる。なお、ブロックマッチングで距離画像を生成する場合は、Ｎ×Ｎ画素ブロック単位で視差を求めた場合、距離画像の画素数はカラー画像に対して縦横それぞれ１／Ｎのサイズになる。
【００２６】
なお、Ｓ２０２で生成したテーブルは、視差推定における視差の推定精度、および、視差の最小値と最大値を決定することになる。例えば図３（ａ）においては、視差推定の精度は１画素単位、視差の取り得る値は０〜２５２となる。これらを変更したい時は、テーブルを変更することになる。例えば、視差２５２は、このテーブルで表現できる最も近い距離を表すが、これ以上近い物体を表現したい場合はテーブルに視差２５２より大きい値を表現する画素値を設けることになる。この場合、画素値が取り得る最大値は大きくなる。つまり、距離画像の１画素あたりのビット深度が大きくなる。ビット深度を変えずに近距離を表したい場合は、視差の推定精度を落とせば良い。例えば視差推定の精度を２画素単位に変更すれば、同じビット深度でより近い距離を表現できる。
【００２７】
次にＳ２０５にて、画像符号化部１０３はＳ２０４で得た距離画像に対してニアロスレス符号化を行い、圧縮画像データ（非可逆符号化データ）を生成する。この際、画像符号部１０３は、設定部１０７から供給されたパラメータδを最大誤差とするニアロスレス符号化処理を行う。ニアロスレス符号化は国際標準のＪＰＥＧ−ＬＳが知られており、本実施形態でもＪＰＥＧ−ＬＳに準拠して符号化するものとする。なお、オリジナルの画像の値に対し最大誤差を保証した非可逆符号化データを生成する画像符号化手段であれば良いので、ＪＰＥＧ−ＬＳに限定されるものではない。
【００２８】
次にＳ２０６にて、テーブル符号化部１０４が、Ｓ２０２で生成したテーブルを可逆符号化する。図３（ａ）のテーブルを符号データで表現した例を図４に示す。図４に示した様に、テーブルの符号列は、先頭に最大画素値Ｍと視差のビット深度Ｌを、その後は各画素値の意味を列挙したデータになっている。説明の為に、テーブルの符号データのどの部分が、どの画素値に対応しているかを、符号列の上に補足した。最大画素値Ｍは画素値が０〜Ｍの範囲の値を取ることを示す。本実施形態の場合は、Ｍ＝２５５である。視差のビット深度Ｌはテーブルの符号データ内で視差が何ビットで表現されているかを示すデータである。本実施形態では視差は０〜２５２の値で符号化されるため、Ｌ＝８である。Ｍ、Ｌは整数であるため、固定長符号化の他、アルファ符号化などの可変長符号化で符号化してもよい。以降の画素値の意味を示すデータは基本的には、各画素値に対して「属性のインデックス」が符号化されている。属性のインデックスとそれぞれが表す属性を図５に示した。属性のインデックスは３種類であるため、２ビットで符号化できるが、それ以外の方法を用いても構わない。属性が「視差」の場合は、属性のインデックスに加えて、各画素値が表す視差をＬビットで符号化する。
【００２９】
次にＳ２０７にて、符号列形成部１０６が、Ｓ２０５及びＳ２０７で出力された圧縮画像データ及びテーブルの符号データを結合し、１つの符号データを出力する。結合の際には、上記２つのデータそれぞれの、符号データの中でのビット数を符号データの先頭に記録する。また、ファイルヘッダには、パラメータδ等、復号に必要な情報も格納する。以上で図２のフローチャートの説明を終える。
次に、図２の処理の補足を述べる。図３（ａ）のテーブルでは測距不能画素値に「２５５」を割り当てたが、別の画素値を割り当てても構わない。どこに割り当てても、その値の両側（両隣）に２δ個の未使用画素値があれば、ニアロスレス符号化後の復号画像から測距不能画素を判別することは可能である。測距符号画素値に「２５５」を割り当てたのは、その値が８ビットで表される最大値であるので、片側（値が小さい側）に２δを設ければ良く、都合がよかったためである。ただし、画像符号化部１０３の動作を考慮した方が圧縮画像データをより圧縮できる。Ｓ２０５でＪＰＥＧ−ＬＳを用いる場合、ＪＰＥＧ−ＬＳでは画像中の周囲の画素から予測値を生成し、予測値との差分を符号化する。従って隣接する画素同士が近い画素値を持つほど高圧縮になる。そこで画像中で測距不能画素と隣接する可能性が高い画素の画素値に近い値を、測距不能画素値にするのが有効である。例えば距離画像を視差推定で求める場合は、オクルージョンが測距不能となるが、オクルージョンはカメラに近い物体の周囲ほどよく表れやすい。従って、測距可能画素のうち、近距離を意味する画素値の近くに測距不能画素値を設けるのが良い。また、別の方法としては、距離画像を解析し、「測距不能画素と最も多く隣接する画素」の画素値に近い値に測距不能画素値を設ける方法なども考えられる。
【００３０】
上記処理の結果、圧縮画像データと、テーブルの符号データを結合した符号データが出力される。このデータを復号すれば、測距不能画素が判別できる距離画像を得ることができる。なお、上で述べたデータでは測距可能画素に対して視差ｎが復号できるが、実世界の距離ｄを得たい場合には、視差ｎから距離ｄへ変換するために式１のパラメータ、もしくは、その符号化データをファイルヘッダに追加すれば良い。
【００３１】
次に図１の画像処理装置で出力された符号データを復号する画像処理装置について、図６を用いて説明する。図６は、復号処理を行う画像処理装置のブロック構成図である。
【００３２】
テーブル復号部６０１は、図４に示したテーブルの符号データを復号し、図３（ａ）で示したテーブルを得る。画像復号部６０２は、圧縮画像データを復号し、復号画像を得る。画素値修正部６０３は、復号画像をスキャンし、そのスキャン中の着目画素の値がテーブルで未使用画素値範囲内の割り当てられている、その未使用画素値範囲の両端の外側の２つのうち、最寄りの画素値に値を変更する。
【００３３】
以上で図６に示した符号データを復号する画像処理装置についての説明を終える。
【００３４】
以上説明したように本実施形態によれば、ニアロスレス符号化による誤差が発生した場合でも、復号画像から測距不能画素か否かを判別可能な符号データを出力可能な画像処理装置、及びその符号データを復号する画像処理装置が実現できることになる。
【００３５】
上記実施形態では、テーブル符号化部１０４が、テーブル生成部１０１で生成されたテーブルを可逆符号化するものとして説明した。しかしながら、符号化装置と復号装置の双方が、画素値「２５５」が特別な意味を持つこと（測距不能画素値であること）を予め共有しているのであれば、テーブル符号化部１０４は必ずしも必要ではない。
【００３６】
［第１の実施形態の変形例］
図１に示した画像処理装置の各部はハードウェアで構成しても良いが、ソフトウェア（コンピュータプログラム）として実装しても良い。この場合、このソフトウェアは、ＰＣ（パーソナルコンピュータ）等、一般のコンピュータのメモリにインストールされることになる。そしてこのコンピュータのＣＰＵがこのインストールされたソフトウェアを実行することで、このコンピュータは、上述の画像処理装置の機能を実現することになる。即ち、このコンピュータは、上述の画像処理装置に適用することができる。第１の実施形態の符号化装置に適用可能なコンピュータのハードウェア構成例について、図７のブロック図を用いて説明する。
【００３７】
ＣＰＵ７０１は、ＲＡＭ７０２やＲＯＭ７０３に格納されているコンピュータプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、画像処理装置が行うものとして説明した上述の各処理を実行する。
【００３８】
ＲＡＭ７０２は、コンピュータ読み取り可能な記憶媒体の一例である。ＲＡＭ７０２は、外部記憶装置７０７や記憶媒体ドライブ７０８、更にはネットワークインタフェース７１０からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアを、有する。更に、ＲＡＭ７０２は、ＣＰＵ７０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ７０２は、各種のエリアを適宜提供することができる。ＲＯＭ７０３は、コンピュータ読み取り可能な記憶媒体の一例であり、コンピュータの設定データや、ブートプログラムなどが格納されている。
【００３９】
キーボード７０４、マウス７０５は、コンピュータの操作者が操作することで、各種の指示をＣＰＵ７０１に対して入力することができる。表示装置７０６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ７０１による処理結果を画像や文字などでもって表示することができる。
【００４０】
外部記憶装置７０７は、コンピュータ読み取り記憶媒体の一例であり、ハードディスクドライブ装置に代表される大容量の情報記憶装置である。外部記憶装置７０７には、ＯＳ（オペレーティングシステム）や、図１に示した各処理をＣＰＵ７０１に実現させるためのコンピュータプログラムやデータ、上記の各種テーブル、データベース等が保存されている。外部記憶装置７０７に保存されているコンピュータプログラムやデータは、ＣＰＵ７０１による制御に従って適宜ＲＡＭ７０２にロードされ、ＣＰＵ７０１による処理対象となる。
【００４１】
記憶媒体ドライブ７０８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているコンピュータプログラムやデータを読み出し、読み出したコンピュータプログラムやデータを外部記憶装置７０７やＲＡＭ７０２に出力する。なお、外部記憶装置７０７に保存されているものとして説明した情報の一部若しくは全部をこの記憶媒体に記録させておき、この記憶媒体ドライブ７０８に読み取らせても良い。
【００４２】
Ｉ／Ｆ７０９は、外部からカラー画像、距離画像、等を入力するインタフェースであり、一例として示すのであればＵＳＢ（Universal Serial Bus）である。７１０は、上述の各部を繋ぐバスである。図１の多視点画像撮影部１０５は、外部装置としてＩ／Ｆ７０９に接続される。そして、多視点画像撮影部１０５が撮像した多視点画像は、このＩ／Ｆ７０９を介して本装置に取り込まれることになる。
【００４３】
上述構成において、本コンピュータの電源がＯＮになると、ＣＰＵ７０１はＲＯＭ７０３に格納されているブートプログラムに従って、外部記憶装置７０７からＯＳをＲＡＭ７０２にロードする。この結果、キーボード７０４、マウス７０５を介した情報入力操作が可能となり、表示装置７０６にＧＵＩを表示することが可能となる。ユーザが、キーボード７０４やマウス７０５を操作し、外部記憶装置７０７に格納された符号化アプリケーションの起動指示を入力すると、ＣＰＵ７０１はこのプログラムをＲＡＭ７０２にロードし、実行する。これにより、本コンピュータが画像処理装置として機能することになる。
【００４４】
なお、ＣＰＵ７０１が実行する符号化アプリケーションプログラムは、基本的に図１の画像処理装置に属す各部に相当する関数を備えることになる。ここで、画像処理結果は外部記憶装置７０７に保存することになる。なお、このコンピュータは、以降の各実施形態に係る符号化装置にも同様に適用可能であることは、以下の説明より明らかである。
【００４５】
［第２の実施形態］
本第２の実施形態では第１の実施形態で示した図３（ａ）のテーブルと異なるテーブルを用いる例を説明する。第２の実施形態における、符号データを出力する画像処理装置の構成は図１に示したブロック図と同様である。以降では第１の実施形態と異なる部分について説明を行う。
【００４６】
テーブル生成部１０１では図３（ｂ）に示した画素値のテーブルを生成する。第１の実施形態で用いた図３（ａ）では画素値「２５３」及び画素値「２５４」には「未使用」が割り当てられた。これに対し、本第２の実施形態の図３（ｂ）では画素値「２５３」に視差「２５２」が割り当てられ、画素値「２５４」に「測距不能」が割り当てられている。ここで画素値「２５３」は隣接する画素値「２５２」と同じ意味を、画素値「２５４」は隣接する画素値「２５５」と同じ意味を割り当てられている点が特徴である。
【００４７】
画像形成部１０２では、多視点画像撮影部１０５から得た多視点画像から、図３（ｂ）で示したテーブルに従う距離画像を形成する。ここでは図３（ｂ）の画素値２５３及び画素値２５４は用いない。従って、画像形成部１０２で出来上がる画像は第１の実施形態と同じものである。画像符号化部１０３は第１の実施形態と同様、最大でδの誤差が発生するニアロスレス符号化を行い、圧縮画像データを出力する。
【００４８】
テーブル符号化部１０４は図３（ｂ）のテーブルを符号化し、その符号データを出力する。第１の実施形態に対して、「未使用」が属性として存在しない点のみが異なる為、同様の処理で符号化可能である。ただし、「未使用」が存在しないことを反映して、図５の属性のインデックスを「視差」、「測距不能」の２種類に変更した方がデータ量は削減できる。この場合図４のテーブルの符号データにおいて属性が２ビットであったのが１ビットに変更となる。符号列形成部１０６は第１の実施形態と同様である。
【００４９】
以上で図１の構成を持つ、符号データを出力する画像処理装置の説明を終える。
【００５０】
次に、上記装置によって出力される符号データを復号する画像処理装置を述べる。上記装置によって得た符号データは図６の画像処理装置から、画素値修正部６０３を省いた装置で復号できる。テーブル復号部６０１では、図３（ｂ）に示したテーブルを復号する。画像復号部６０２は圧縮画像データを復号する。画像修正部６０３が不要になる理由は、図３（ａ）の未使用画素値に対して、はじめから近傍の「未使用」以外の画素値と同じ意味を割り当てた為、未使用画素値を修正する処理が不要になった為である。
【００５１】
以上で本第２の実施形態の説明を終える。上記構成により、第１の実施形態と同様、ニアロスレス符号化による誤差が発生した場合でも、復号画像から測距不能画素か否かを判別可能な符号データを出力可能な画像処理装置、及びその符号データを復号する画像処理装置が実現できる。本実施形態は画素値の意味に「未使用」を割り当てるかどうかが異なるだけであり、本質的には第１の実施形態と同じ事を行っている。ただし、本実施形態のテーブルを用いる場合、未使用が割り当てられた画素値を修正する処理が不要となる為、復号装置の構成が簡易になるという利点がある。
【００５２】
［第３の実施形態］
本第３の実施形態では、ニアロスレス符号化による非可逆圧縮の後でも、距離画像内の特定の視差を、それ以外の視差と確実に判別できる距離情報符号化を実現する画像処理装置について述べる。
【００５３】
距離情報にこのような符号化が有効な例として、例えば、カラー情報とそれに対応する距離情報とを利用して、画像のボケを強調する処理（以下、ボケ付与）がある。ボケ付与は基本的に、各画素の距離と、ピントが合っている被写体までの距離とを比較し、ピントが合っている被写体からの距離に応じて各画素にぼかす処理である。ぼかしはガウンシアンフィルタや円形フィルタ等で実現する。この時、ピントが合っている画素はできるだけ解像感を保っていることが望ましいため、ピントが合っている距離にある画素はボケを付与しない。しかし、もし非可逆圧縮によって本来ピントの合っている画素の距離が、ピントが合っていない距離にずれていた場合、ピントが合っている画素に対してボケ処理を行う為、解像感を大きく損ねてしまう。従って、ピントが合っている距離に対しては、復号後も他の距離と判別できることが望ましい。
【００５４】
本第３の実施形態における、符号データを出力する画像処理装置の構成は図１に示したものと同様である。図１の処理装置が行う処理の詳細を、図８を用いて説明する。
【００５５】
Ｓ８０１にて、設定部１０７が、ニアロスレス符号化のパラメータδを設定する。説明を単純化するため、以降ではδ＝１として説明を行う。Ｓ８０２にて、多視点画像撮影部１０５が多視点画像を撮影する。これらは第１の実施形態と同様である。
【００５６】
Ｓ８０３にて、画像形成部１０２が重要視差の入力をする。重要視差とは、非可逆圧縮による誤差が発生した場合でも劣化無く復号したい視差である。本実施形態ではピントの合っている距離に対応する視差を重要視差とする。重要視差は多視点画像撮影部１０５から得られた多視点画像から、画像形成部１０２が、多視点撮影部のピントの合った被写体までの距離を得て、それを式（１）によって視差に換算することで求めるものとする。
【００５７】
Ｓ８０４にて、テーブル生成部１０１が画素値のテーブルを生成する。第３の実施形態におけるテーブルの例を図９に示す。同図のテーブルは、Ｓ８０３において重要視差として「３」を入力した場合の例である。図９から分かる通り、重要視差の両側に２δの未使用画素を持つテーブルを生成する。このようにすることで、ニアロスレス符号化によりδの誤差が発生しても、重要視差が判別できる。
【００５８】
Ｓ８０５にて、画像形成部１０２は、図９のテーブルを参照し、距離画像データを形成する。このとき、図９に示すように、２δの未使用部分を視差「３」の両側（計４個）に必要になるので、距離画像の視差の取り得る範囲は０乃至２５１となる。そして、これら視差範囲を、画素値０乃至２、５、８乃至２５１にマッピングして、距離画像（視差画像）を生成することになる。
【００５９】
以降Ｓ８０６〜Ｓ８０８の処理は第１の実施形態と同様である。なお、簡単のため、図９のテーブルでは測距不能を意味する画素値が無いものとして表記したが、測距不能画素が存在する場合も第１の実施形態と同様の方法で扱うことが出来る。つまり、判別することが必要な視差は１つに限らない。
【００６０】
図８の各処理は図１の各部が行う。処理を行う各部は、基本的には第１の実施形態における図２のフローチャートの、同名の処理と同じである。
【００６１】
以上で、ニアロスレス符号化による非可逆圧縮の後でも、距離画像に存在する重要視差（上記例ではピントの合っている距離に対応する視差）が復号画像から判別可能な画像処理装置の説明を終える。なお、第１の実施形態では、復号画像から判別したい画素値が、画素値が取り得る値の上限であったのに対し、本実施形態では中心辺りにある画素値である。この場合でも両側に２δの未使用画素値を設定することで、復号画像から判別することが可能である。
【００６２】
［第４の実施形態］
本第４の実施形態では、透明画素を含む画像のニアロスレス符号化処理を説明する。つまり、ニアロスレス符号化により非可逆符号化して得られた符号化データを復号したとき、その画像中の画素が透明画素かどうかを判別できるようにする例である。
【００６３】
本第４の実施形態の画像処理装置のブロック構成図を図１０に示す。画像編集部１００１は、符号化対象の画像データを編集する機能を持つ。ここでは簡単のためＰＣ上で動作する画像編集アプリケーションとする。画像編集部１００１は、編集中の画像のある１色を透明色として指定すると、透明色を含んだカラー画像データの符号化を開始する機能と、パラメータδを設定する機能を持つものとする。その指示に基づいて、図１０のブロック１００２〜１００６は、上記透明色を含む画像の符号化を行う。これらのブロックの処理を経て、圧縮画像データとテーブルの符号データを結合した、１つの符号データが出力される。これらの情報により、透明画素を判別可能な画像を復号できる。
【００６４】
以降では図１１のフローチャートに従って図１０の画像処理装置の処理の詳細を述べる。
【００６５】
Ｓ１１０１にて、画像編集部１００１が、ユーザの指示に従い、画像編集アプリケーション上で透明画素値の指定をし、透明色を含む画像の保存処理を開始する。以降では保存対象の画像は８ビットのグレー画像とするが、ＲＧＢの３色を持つ画像でも、同様の処理を各色に対して適用することで、対応可能である。以降の例では、透明画素値として画素値０が指定されたものとする。Ｓ１１０１の段階では、テーブルは図１２（ａ）に示す通り、画素値０が透明色として設定され、その他の色は画素値と一致するグレー画像の輝度値を持っていることを示すテーブルとなっている。
【００６６】
Ｓ１１０２〜Ｓ１１０８は透明色を含むグレー画像の符号化処理である。処理の概要としては、透明色の再割り当てを行うことでニアロスレス符号化が可能ならばニアロスレス符号化を行い、透明色の維持のためのニアロスレス符号化が不可の場合は可逆符号化（可逆圧縮）を行う。以下、その詳細を述べる。
【００６７】
Ｓ１１０２にて、テーブル生成部１００２が、保存対象のグレー画像の全画素を走査し、グレー画像の中で未使用の画素値を特定する。なお、Ｓ１１０１で透明色に指定された画素値は、未使用画素値として扱って良い。
【００６８】
Ｓ１１０３にて、テーブル生成部１００２が、透明画素値の再割り当てを行うかどうかを判定する。ここではニアロスレス符号化のパラメータδ＝１が固定値として設定されているとし、両側に２δの未使用画素値を設けられる画素値が有る場合は、透明画素値の再割り当てを行う。なお、新しい透明画素値として割り当てられる画素値自体も、未使用画素値である必要がある。透明画素値の再割り当てを行わない場合はＳ１１０４に進み、可逆符号化を行う。
【００６９】
透明画素値の再割り当てを行う場合はＳ１１０５にて、テーブル生成部１００２が、テーブルを再度生成する。図１２（ｂ）は再生成したテーブルの例である。図示の場合、Ｓ１１０２においてグレー画像中に画素値「２〜６」が出現しなかったものとして、画素値「４」を透明色に設定する例である。このとき、透明色に設定した画素値「４」の両側に２δ個の未使用画素値が存在することになる点に注意されたい。
【００７０】
Ｓ１１０６にて、画像形成部１００３が、Ｓ１１０５で求めたテーブルに基づいて保存対象の画像の変換を行う。具体的には、透明画素の画素値を、透明画素の再割り当てを行う前の画素値０から、画素値４に変更する処理を行う。
【００７１】
Ｓ１１０７にて、画像符号化部１００４は、変換した画像をニアロスレス符号化し、符号化データを出力する。本実施形態ではニアロスレス符号化のパラメータはδ＝１の固定値が設定されているため、その値を用いる。
【００７２】
ここで、Ｓ１１０７及びＳ１１０４のニアロスレス符号化及び可逆符号化は、同じ符号化装置で行うことができる。例えばＪＰＥＧ−ＬＳではδ＝０に設定した場合は可逆符号化として動作するため、ＪＰＥＧ−ＬＳを用いれば良い。
【００７３】
Ｓ１１０８にて、テーブル符号化部１００５が、テーブルを符号化する。透明画素値の再割り当てを行ったかどうかに応じて、図１２（ａ）もしくは（ｂ）のテーブルを符号化する。なお、本実施形態で生成するテーブルは透明画素値の値と、パラメータδの値が有れば復元可能であり、またパラメータδはＪＰＥＧ−ＬＳで画像を符号化する場合は圧縮画像データに含まれるため、実際には透明画素値のみを符号化すれば良い。
【００７４】
Ｓ１１０９には、符号列形成部１００６は、Ｓ１１０７で得られた画像符号化データと、Ｓ１１０８で得たテーブルの符号データを結合し、適当なヘッダと共に１つの符号データファイルを生成し、出力する。以上で図１１処理フローの説明を終える。
【００７５】
図１０の画像処理装置の処理で得られた符号データは、第１の実施形態と同様、図６の画像処理装置によって復号できる。
【００７６】
以上で本実施形態の説明を終える。上記構成により、ニアロスレス符号化による非可逆圧縮の後でも、復号画像から透明画素かどうかを判別できる画像処理装置が実現できる。上記第４の実施形態は、距離画像以外の場合でも、ニアロスレス符号化を行った後の復号画像から、ある特定の画素値を判別できる画像処理装置が構成できることを示した。また、上記実施形態は、画像の各成分は８ビットが普及していることを考慮し、δ＝１の誤差がニアロスレス符号化で発生しても透明画素値を特定できるようなテーブルが生成できる場合にのみ、テーブル及び画像の変更をしている点が特徴である。これにより８ビット画像のみに対応した画像符号化装置などの流用が可能となる。
【００７７】
［第５の実施形態］
第１の実施形態では多視点画像から算出した距離画像を符号化する例を述べた。本第５の実施形態では、距離画像取得部で得た距離画像に対し、ニアロスレス符号化による非可逆圧縮の後でも、復号画像から測距不能画素かどうかを判別できる画像処理装置について述べる。
【００７８】
本第５の実施形態の画像処理装置のブロック構成図を図１３に示し、その動作処理のフローチャートを図１４に示す。以下、図１４のフローチャートにしたって、図１４に示す各処理部の詳細を述べる。なお、本第５の実施形態で距離画像の画素値が８ビットで表されるものとする。
【００７９】
まず、Ｓ１４０１にて、距離画像取得部１３０１は、距離画像データを取得する。ここではＴＯＦ方式の測距センサで距離を取得するものとする。測距センサが出力する画素値と距離との関係は、図１５（ａ）のテーブルの通りであるものとする。
【００８０】
Ｓ１４０２には、テーブル生成部１３０３は、設定部１００７から符号化パラメータδを入力する。ここではδ＝１を入力する例を示すが、他の値でも構わない。
【００８１】
Ｓ１４０３にて、画像形成部１３０２は、距離画像取得部１３０１が取得した距離画像の中で未使用の画素値を特定する。Ｓ１４０４にて、画像形成部１３０２は、未使用の画素値の出現の仕方に応じて判断処理を行い、その判断結果を示す信号をテーブル生成部１３０３に供給する。この結果、測距不能画素の隣接する２δ個の画素値が未使用の場合はＳ１４０５に、それ以外はＳ１４０６に処理が進むことになる。
【００８２】
Ｓ１４０５に進んだ場合、テーブル生成部１３０３は、図１５（ｂ）のテーブルを生成する。これは図１５（ａ）のテーブルに対して、測距不能画素値に隣接する２δ個の画素値を、未使用を示す記号「−」で上書きしたものである。なお、測距不能画素値が、画素値の取り得る範囲の端である０を取る為、テーブルの右隣２δ個を「未使用」で上書きしたが、それ以外の場合は測距不能画素値の左隣２δ個も上書きする必要がある。
【００８３】
Ｓ１４０６に進んだ場合、テーブル生成部１３０３は、図１５（ｃ）のテーブルを生成する。これは図１５（ａ）のテーブルに対して、測距不能画素値に隣接する２δ個の画素値に「未使用」を追加したものである。なお、測距不能画素値がテーブルの左端に無い場合は、左隣りにも未使用画素値の追加が必要である。そして、Ｓ１４０７にて、画像形成部１３０２は、図１５（ｃ）のテーブルと対応するように、Ｓ１４０１にて取得した距離画像を変換する。
【００８４】
Ｓ１４０８では、画像符号化部１３０４が、パラメータδを用いてニアロスレス符号化を行い、符号化データを生成する。そして、Ｓ１４０９にて、テーブル符号化部１３０５が、テーブルを符号化し、その符号データを生成する。なお、テーブルを明示的に符号データとして出力する代わりに、距離画像取得装置のＩＤと、ニアロスレス符号化のパラメータδ、テーブルを上書き（Ｓ１４０５）、追加（Ｓ１４０６）のどちらで行ったかを特定するフラグを符号化しても良い。この場合、対応する復号を行う装置には、距離画像取得装置の出力データ自体のテーブル（上記例では図１５（ａ））を記憶しておき、距離画像取得装置のＩＤから該テーブルを読み出せる機構が必要である。
【００８５】
そして、Ｓ１４１０にて、符号列形成部１３０６は、Ｓ１４０８とＳ１４０９で生成された符号化データを結合し、復号に必要な情報をヘッダを付加し、１つの符号データファイルを生成し、出力する。
【００８６】
以上で本第５の実施形態の説明を終える。上記構成により、ニアロスレス符号化による非可逆圧縮の後でも、復号画像から測距不能画素かどうかを判別できる画像処理装置が実現できる。
【００８７】
第５の実施形態の特徴は、画像形成部１３０２において、測距不能画素値の隣接する２δ個の画素値が未使用であることが保証された画像を生成する際に、入力された距離画像自体を探索して、既に条件を満たしている場合は画像変換を行なわない点である。上記の判定処理（Ｓ１４０３、Ｓ１４０４）を設けることで、入力画像に対して必要最小限の変更で、非可逆圧縮後も測距不能画素を特定可能な符号データを出力できる。
【００８８】
また、上記実施形態では、符号化対象の画像データの１画素が１コンポネントで構成されるものとしたが、複数のコンポネントを持っても構わないし、その中の１つのコンポネントについて上記各実施形態で適用した処理を行っても良い。
【００８９】
［第６の実施形態］
第１の実施形態では画像符号化部１０３で行う符号化がニアロスレス符号化の場合を述べた。既に述べたようにニアロスレス符号化は符号化対象の画素値から、それを復号した画素値を引いた差が−δ以上、δ以下に収まることが保証される符号化である。しかし、本発明の基本的な考え方は最大誤差が保証できる符号化であればニアロスレス符号化以外にも適用できる。
【００９０】
例えば、符号化対象の画素値から、それを復号した画素値を引いた差が０以上、１以下に収まる符号化にも適用できる。この場合、テーブル生成部１０２で生成するテーブルにおいて、特定画素値の両側に１つの未使用画素値を設ければ、復号後の画像によって特定画素値を判別可能である。なお、上記の誤差を実現する符号化は、ＪＰＥＧ−ＬＳに似た予測符号化により容易に実現できる。つまり、各画素をラスタスキャン順に符号化する方式で、符号化対象の画素値を周囲の画素値から予測し、その予測誤差を２進数表現した際の最下位ビットを切り捨てた値をエントロピー符号化すれば良い。
【００９１】
本実施形態のテーブル生成部１０２と画像符号化部１０３以外は、第１の実施形態と同様の動作をすれば良い。また、上記符号化装置によって符号化された画像の復号は、第１の実施形態と同様、図６に示したブロック図で示す装置によって復号できる。ただし、画像修正部６０３の動作が少し異なる。本実施形態では、画像復号部６０２で未使用画素値に復号された画素値は、復号された画素値より大きい値を持つ、未使用以外の画素値に修正される。
【００９２】
以上で本第６の実施形態の説明を終える。上記により、ＪＰＥＧ−ＬＳ以外の非可逆圧縮でも、復号画像から測距不能画素かどうかを判別できる画像処理装置が実現できることを示した。また、ＪＰＥＧ−ＬＳでは予測誤差の符号化に除算を行うが、本実施形態ではビットシフトにより代用可能な為、ハード化が容易といったメリットがある。
【００９３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９４】
１０１…テーブル生成部、１０２…画像形成部、１０３…画像符号化部、１０４…テーブル符号化部、１０５…多視点画像撮影部、１０６…符号列形成部、１０７…設定部、６０１…テーブル復号部、６０２…画像復号部、６０３…画素値修正部
【図１】
0006614822.tif 000002
【図２】
0006614822.tif 000003
【図３】
0006614822.tif 000004
【図４】
0006614822.tif 000005
【図５】
0006614822.tif 000006
【図６】
0006614822.tif 000007
【図７】
0006614822.tif 000008
【図８】
0006614822.tif 000009
【図９】
0006614822.tif 000010
【図１０】
0006614822.tif 000011
【図１１】
0006614822.tif 000012
【図１２】
0006614822.tif 000013
【図１３】
0006614822.tif 000014
【図１４】
0006614822.tif 000015
【図１５】
0006614822.tif 000016