(57)【要約】【課題】球面上にマッピングされたデータを部分解像度及び部分配信が可能な形式で符号化する。【解決手段】全周囲画像のように球面にマッピングされたデータを球面ｗａｖｅｌｅｔ変換した時点では、出力されるデータは、スケーリング係数とｗａｖｅｌｅｔ関数の値がレベル毎に配列されている。レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列することで、部分配信や部分解像度といった空間的スケーラビリティを得る。【選択図】  図１
2004272590.tif 000002
【特許請求の範囲】
【請求項１】
球面上にマッピングされたデータを符号化するデータ符号化装置であって、
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換して、球面を正多角形に近似したレベル０の球面、並びに球面を近似するレベル０の正多面体を構成する３角形を再帰的に４分割してなるレベルｊ（但し、ｊは１以上の整数）の球面の各々について、スケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）をレベル毎に順次生成するデータ変換手段と（但し、ｋは球面上の座標を表わす。ｍ＝１，２，３）、
レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列するデータ・ストリーム化手段と、
を具備することを特徴とするデータ符号化装置。
【請求項２】
再配列されたデータ・ストリームを符号化する手段をさらに備える、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項３】
前記データ変換手段により、レベル０の球面を近似する正多角形を構成する各３角形にマッピングされたデータ値と、各レベルにおける球面ｗａｖｅｌｅｔ関数の値が出力される、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項４】
前記データ・ストリーム化手段は、レベルｊまでの球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従ったデータ・ストリームに再配列するとともに該球面上の座標に基づいて分割して挿入場所を設け、レベルｊ＋１における球面ｗａｖｅｌｅｔ関数の値を球面上の座標に基づいて分割してそれぞれ対応する挿入場所に連結する、
ことを特徴とする請求項３に記載のデータ符号化装置。
【請求項５】
前記データ変換手段は、球面上に色や輝度からなる画素データがマッピングされた画像情報を球面ｗａｖｅｌｅｔ変換して、レベル０におけるスケーリング関数の値と各レベルにおける球面ｗａｖｅｌｅｔ関数の値を得て、
前記データ・ストリーム化手段は、各レベルにおける球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従ってレベル０の球面を近似する正３角形に従って分割し、該分割された各３角形のレベル０のスケーリング関数値及び各レベルの球面ｗａｖｅｌｅｔ関数の値を色成分毎に分離し、所定レベルの球面を近似する正３角形に従って並べ、色順に連結し、さらに球面ｗａｖｅｌｅｔ関数毎に分けて並べる、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項６】
前記データ・ストリーム化手段は、レベル２以降は、同じ色の中で４個のデータを２回連続させ同じ色が所定サンプル数分だけ並べる、
ことを特徴とする請求項５に記載のデータ符号化装置。
【請求項７】
前記データ変換手段は、球面上にマッピングされた、音圧と表面の法線方向の粒子速度からなる球面の任意の内部領域の音場を再現するためのデータを球面ｗａｖｅｌｅｔ変換し、
前記データ・ストリーム化手段は、球面ｗａｖｅｌｅｔ変換により分解されたデータ毎にＭＤＣＴ変換を行ないＭサンプルのスペクトルを得て、所定レベルの球面を近似する正３角形に従って並べ、スペクトル間でインターリーブし、さらに球面ｗａｖｅｌｅｔ関数毎に分けて並べる、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項８】
前記データ・ストリーム化手段は、球面ｗａｖｅｌｅｔ関数の値を球面ｗａｖｅｌｅｔ関数毎に分けて並べた後、音圧、法線方向粒子速度の順に並べる、
ことを特徴とする請求項７に記載のデータ符号化装置。
【請求項９】
前記のデータ・ストリームを符号化する手段は、所定のサンプル数分を一つのマクロ・ブロックとして可変長符号化し、同じビット長を持つ連続するマクロ・ブロックをヘッダなしに直接連結する、
ことを特徴とする請求項２に記載のデータ符号化装置。
【請求項１０】
マクロ・ブロック内では、各サンプルを最も長いサンプルのビット長に揃えて、順次つなげて格納する、
ことを特徴とする請求項９に記載のデータ符号化装置。
【請求項１１】
ヘッダには、マクロ・ブロックの繰り返し値とマクロ・ブロックのビット長が格納される、
ことを特徴とする請求項９に記載のデータ符号化装置。
【請求項１２】
マクロ・ブロックにスケール・ファクタを適用するとともに、ヘッダにスケール・ファクタ情報を格納する、
ことを特徴とする請求項９に記載のデータ符号化装置。
【請求項１３】
球面上にマッピングされたデータを符号化するデータ符号化方法であって、
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換して、球面を正多角形に近似したレベル０の球面、並びに球面を近似するレベル０の正多面体を構成する３角形を再帰的に４分割してなるレベルｊ（但し、ｊは１以上の整数）の球面の各々について、スケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）をレベル毎に順次生成するデータ変換ステップと（但し、ｋは球面上の座標を表わす。ｍ＝１，２，３）、
レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列するデータ・ストリーム化ステップと、
を具備することを特徴とするデータ符号化方法。
【請求項１４】
再配列されたデータ・ストリームを符号化するステップをさらに備える、
ことを特徴とする請求項１３に記載のデータ符号化方法。
【請求項１５】
前記データ変換ステップにより、レベル０の球面を近似する正多角形を構成する各３角形にマッピングされたデータ値と、各レベルにおける球面ｗａｖｅｌｅｔ関数の値が出力される、
ことを特徴とする請求項１３に記載のデータ符号化方法。
【請求項１６】
前記データ・ストリーム化ステップでは、レベルｊまでの球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従ったデータ・ストリームに再配列するとともに該球面上の座標に基づいて分割して挿入場所を設け、レベルｊ＋１における球面ｗａｖｅｌｅｔ関数の値を球面上の座標に基づいて分割してそれぞれ対応する挿入場所に連結する、
ことを特徴とする請求項１５に記載のデータ符号化方法。
【請求項１７】
前記データ変換ステップでは、球面上に色や輝度からなる画素データがマッピングされた画像情報を球面ｗａｖｅｌｅｔ変換して、レベル０におけるスケーリング関数の値と各レベルにおける球面ｗａｖｅｌｅｔ関数の値を得て、
前記データ・ストリーム化ステップでは、各レベルにおける球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従ってレベル０の球面を近似する正３角形に従って分割し、該分割された各３角形のレベル０のスケーリング関数値及び各レベルの球面ｗａｖｅｌｅｔ関数の値を色成分毎に分離し、所定レベルの球面を近似する正３角形に従って並べ、色順に連結し、さらに球面ｗａｖｅｌｅｔ関数毎に分けて並べる、
ことを特徴とする請求項１３に記載のデータ符号化方法。
【請求項１８】
前記データ・ストリーム化ステップでは、レベル２以降は、同じ色の中で４個のデータを２回連続させ同じ色が所定サンプル数分だけ並べる、
ことを特徴とする請求項１７に記載のデータ符号化方法。
【請求項１９】
前記データ変換ステップでは、球面上にマッピングされた、音圧と表面の法線方向の粒子速度からなる球面の任意の内部領域の音場を再現するためのデータを球面ｗａｖｅｌｅｔ変換し、
前記データ・ストリーム化ステップでは、球面ｗａｖｅｌｅｔ変換により分解されたデータ毎にＭＤＣＴ変換を行ないＭサンプルのスペクトルを得て、所定レベルの球面を近似する正３角形に従って並べ、スペクトル間でインターリーブし、さらに球面ｗａｖｅｌｅｔ関数毎に分けて並べる、
ことを特徴とする請求項１３に記載のデータ符号化方法。
【請求項２０】
前記データ・ストリーム化ステップでは、球面ｗａｖｅｌｅｔ関数の値を球面ｗａｖｅｌｅｔ関数毎に分けて並べた後、音圧、法線方向粒子速度の順に並べる、
ことを特徴とする請求項１９に記載のデータ符号化方法。
【請求項２１】
球面上にマッピングされたデータを符号化するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換して、球面を正多角形に近似したレベル０の球面、並びに球面を近似するレベル０の正多面体を構成する３角形を再帰的に４分割してなるレベルｊ（但し、ｊは１以上の整数）の球面の各々について、スケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）をレベル毎に順次生成するデータ変換ステップと（但し、ｋは球面上の座標を表わす。ｍ＝１，２，３）、
レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列するデータ・ストリーム化ステップと、
を具備することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定の幾何学面データを符号化するデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムに係り、特に、球面上にマッピングされたデータを符号化するデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、球面上にマッピングされたデータを所定の数学モデルで記述して符号化するデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムに係り、特に、球面上にマッピングされたデータを部分解像度及び部分配信が可能な形式で符号化するデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムに関する。
【０００３】
【従来の技術】
ユーザの周囲の風景画像を提供する装置として全方位カメラが知られている。この種の全方位映像システムは、例えば、空間中のある１つの点が視点として周囲の画像を撮影するように複数台のカメラが設置して構成される。複数のカメラからなる全方位映像システムは、隣り合うカメラの撮像画像の境界同士をうまく接続することによって、個々のカメラの視野よりもはるかに広い領域の画像を、あたかも単一の広角度カメラで撮像したかのような画像を生成する画像処理を行なう。近年のＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）技術の進歩とも相俟って、全周囲画像を取り扱う場面は急速に増えつつある。
【０００４】
他方、情報通信技術の発達に伴い、各種のコンテンツを、配信媒体を介して遠隔地に配信するという要望がある。
【０００５】
上述の全周囲画像についての配信サービスを考慮した場合、全周囲画像は球面上に画素データがマッピングされたものであるから、データを符号化して、データ・ストリーム化してから配信処理を行なう。ところが、受信側すなわちサービス利用側ではすべての視線方向の画像が必要であることは稀で、特定の画角についてのみより高解像度の画像が要求されることが多い。すなわち、全周囲画像のうち特定の領域に限定した部分配信や部分解像度が求められている。
【０００６】
地上波放送、衛星放送、ケーブル・テレビ放送、ハイビジョン放送など従来の放送技術では、受信する映像は基本的には１つのチャンネルにつき１つの映像となっている。また、映像の画角も、あらかじめ送出側で収録する時点で決められてしまうもので、受信しているユーザ側で任意の場所の映像を選択することはできない。複数台のカメラ映像からなる全方位映像のうち任意の画角を受信側で選択できるようにするためには、それぞれ１台のカメラ映像からなる複数のチャンネルを同時に受信する必要がある。しかしながら、これを実現するためには、受信機側でもコストを要するハードウェアの改造が必要となる。
【０００７】
また、データ配信や記録媒体を介したデータの配布を考慮した場合、画像データ量が膨大であることから、球面上に画素データがマッピングされている全周囲画像を、圧縮符号化に適した形態で符号化すなわちデータ・ストリームに変換しなければならない。さらに、符号化後のデータ・ストリームが部分配信や部分解像度に対応していることが好ましい。
【０００８】
例えば、地球を平面上の世界地図に投影する地図投影法を利用して球面を平面にマッピングすることができる。
【０００９】
図１９に示すように、球面を円筒に投影して、この円筒を平面に展開する方法が挙げられる。同図に示す例では、２次元平面の横方向に球面の水平方向の角度を、縦方向に球面の垂直方法の角度を、それぞれ等間隔で割り当てている。このときの２次元画像マッピング情報は、各行と列に割り当てた角度のデータとなる。
【００１０】
このようなマッピング方法では、このマッピング方法によれば、空間的・時間的相関が高く、また、球面から２次元平面への変換式すなわち２次元マッピング情報が簡単であるという利点があるものの、マッピングされた２次元平面の上下部（地図で言えば極部）では歪みが大きくなる（密度が赤道付近に比べて低くなる）ので、すべての方向について各画素に含まれる情報が等しく保つことができない。言い換えれば、符号化後のデータ・ストリームが部分配信や部分解像度に対応してない。
【００１１】
また、球面上にデータをマッピングする事例は、全周囲画像など映像技術の分野に限定されるものではない。
【００１２】
例えば、音響学の分野においては、キルヒホッフの積分公式に基づいて、表面の音圧と表面の法線方向の粒子速度を完全に制御することが可能であれば、閉曲面Ｓの内部領域Ｄの音場を完全に再現することができることが知られている（例えば、非特許文献１を参照のこと）。
【００１３】
言い換えれば、音圧や粒子速度を球面上にマッピングすることにより、広範囲で音場再現が可能であり、閉曲面の任意の内部領域における音場を再現することができる。
【００１４】
この場合においても、オーディオ配信やメディアを媒介としたオーディオ・データの配布・流通を考慮した場合、球面上にマッピングされたデータの符号化、部分配信や部分解像度が同様に要請される。
【００１５】
【非特許文献１】
伊勢著「広範囲の音場再現についての研究（１）―キルヒホッフの積分公式に基づいて―」（日本音響学会講演論文集、平成５年１０月）
【００１６】
【発明が解決しようとする課題】
本発明の目的は、球面上にマッピングされたデータを好適に符号化することができる、優れたデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムを提供することにある。
【００１７】
本発明のさらなる目的は、球面上にマッピングされたデータを所定の数学モデルで記述して好適に符号化することができる、優れたデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムを提供することにある。
【００１８】
本発明のさらなる目的は、球面上にマッピングされたデータを部分解像度及び部分配信が可能な形式で好適に符号化することができる、優れたデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムを提供することにある。
【００１９】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、球面上にマッピングされたデータを符号化するデータ符号化装置であって、
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換して、球面を正多角形に近似したレベル０の球面、並びに球面を近似するレベル０の正多面体を構成する３角形を再帰的に４分割してなるレベルｊ（但し、ｊは１以上の整数）の球面の各々について、スケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）をレベル毎に順次生成するデータ変換手段と（但し、ｋは球面上の座標を表わす。ｍ＝１，２，３）、
レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列するデータ・ストリーム化手段と、
を具備することを特徴とするデータ符号化装置である。
【００２０】
ここで、本発明に係るデータ符号化装置は、再配列されたデータ・ストリームを符号化する手段をさらに備えていてもよい。
【００２１】
前記データ変換手段により、レベル０の球面を近似する正多角形を構成する各３角形にマッピングされたデータ値と、各レベルにおける球面ｗａｖｅｌｅｔ関数の値が出力される。
【００２２】
また、前記データ符号化手段は、レベルｊまでの球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従ったデータ・ストリームに再配列するとともに該球面上の座標に基づいて分割して挿入場所を設け、レベルｊ＋１における球面ｗａｖｅｌｅｔ関数の値を球面上の座標に基づいて分割してそれぞれ対応する挿入場所に連結するようにする。
【００２３】
昨今、全周囲画像や、音場を完全に再現するためのデータのように、球面上にマッピングされたデータを取り扱う機会が増えてきている。この種のデータを配信・配布サービスする場合、効率的な圧縮符号化や、部分解像度といった空間的スケーラビリティや部分配信の利便性を検討しなければならない。
【００２４】
従来のデータ圧縮方法は、単純な形状において定義されたデータに関して行われていた。従来の圧縮方法で用いられていた典型的な形状は、実直線（例えば、オーディオ）、矩形（例えば、画像）、３次元ラスター（例えば、ビデオ）などである。しかしながら、従来のデータ圧縮技術は、球、あるいは複雑な形状において定義されたデータの圧縮には適していない。
【００２５】
あるいは、球面を円筒に投影して、この円筒を平面に展開する方法が挙げられる。このようなマッピング方法では、このマッピング方法によれば、空間的・時間的相関が高く、また、球面から２次元平面への変換式すなわち２次元マッピング情報が簡単であるという利点があるものの、マッピングされた２次元平面の上下部（地図で言えば極部）では歪みが大きくなる（密度が赤道付近に比べて低くなる）ので、すべての方向について各画素に含まれる情報が等しく保つことができない。言い換えれば、符号化後のデータ・ストリームが部分配信や部分解像度に対応してない。
【００２６】
そこで、本発明に係るデータ符号化装置は、レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列して、データ・ストリーム化することとした。
【００２７】
例えば、球面上に色や輝度からなる画素データがマッピングされている場合、前記データ変換手段はこれを球面ｗａｖｅｌｅｔ変換して、レベル０におけるスケーリング関数の値と各レベルにおける球面ｗａｖｅｌｅｔ関数の値を得る。そして、前記データ符号化手段は、各レベルにおける球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従ってレベル０の球面を近似する正３角形に従って分割し、該分割された各３角形のレベル０のスケーリング関数値及び各レベルの球面ｗａｖｅｌｅｔ関数の値を色成分毎に分離し、レベル０の球面を近似する正３角形に従って並べ、色順に連結し、さらに球面ｗａｖｅｌｅｔ関数毎に分けて並べる。ここで、前記データ符号化手段は、レベル２以降は、同じ色の中で４個のデータを２回連続させ同じ色が所定サンプル数分だけ並べる。
【００２８】
すなわち、大きくはＲ、Ｇ、Ｂ毎に束ね、その中では球面ｗａｖｅｌｅｔ関数毎に分けて並べるものとする。このようにすることで、所定のサンプル数毎に可変長符号化する場合の空間上の相関を利用することができる。
【００２９】
また、音圧と表面の法線方向の粒子速度からなる球面の任意の内部領域の音場を再現するためのデータが球面上にマッピングされている場合、前記データ変換手段は、これを球面ｗａｖｅｌｅｔ変換して、レベル０におけるスケーリング関数の値と各レベルにおける球面ｗａｖｅｌｅｔ関数の値を得る。そして、前記データ符号化手段は、球面ｗａｖｅｌｅｔ変換により分解されたデータ毎にＭＤＣＴ変換を行ないＭサンプルのスペクトルを得て、所定レベルの球面を近似する正３角形に従って並べ、スペクトル間でインターリーブし、さらに球面ｗａｖｅｌｅｔ関数毎に分けて並べる。さらに、球面ｗａｖｅｌｅｔ関数の値を球面ｗａｖｅｌｅｔ関数毎に分けて並べた後、音圧、法線方向粒子速度の順に並べる。このようにすることで所定のサンプル数毎に可変長符号化する場合、空間と時間−周波数変換間の２つの相関を利用することができる。
【００３０】
また、前記のデータ・ストリームを符号化する手段は、所定のサンプル数分を一つのマクロ・ブロックとして可変長符号化し、同じビット長を持つ連続するマクロ・ブロックをヘッダなしに直接連結するようにしてもよい。レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列しているので、サンプル内では相関が強いと考えられるから、可変長符号化を適用しても同じビット長のマクロ・ブロックが続くことが予測される。この結果、ビット列の長さを切り詰めることができる。
【００３１】
このとき、マクロ・ブロック内では、各サンプルを最も長いサンプルのビット長に揃えて、順次つなげて格納するようにしてもよい。このようにすることで、ヘッダ及びマクロ・ブロックのバイト・アラインメントを確保し、ハードウェア及びソフトウェアでの扱いを容易にすることができる。
【００３２】
ヘッダには、マクロ・ブロックの繰り返し値とマクロ・ブロックのビット長が格納される。マクロ・ブロックにスケール・ファクタを適用するとともに、ヘッダにスケール・ファクタ情報を格納するようにしてもよい。
【００３３】
本発明に係るデータ符号化によれば、データの再生に必要な最低レベルが分っており、そのレベルまで分解することで十分な高効率符号による符号化が実現する場合、最低レベルから始まるストリーム構造も同様の概念で実装することができるので、スケーラビリティを実現することができる。
【００３４】
また、本発明に係るデータ符号化によれば、符号化データを元の球面上に再構成する場合に、現在再構成されているレベルの３角形と同じ位置で再構成される次レベルの球面ｗａｖｅｌｅｔ関数の値をおくことで、部分抽出が可能となる。
【００３５】
また、本発明に係るデータ符号化によれば、再生する部分に応じて異なる解像度を持たせることが可能である。例えば、人物の顔をズームアップしたい場合などには、その部分だけ再構成を行なうようにすればよい。さらに、全周囲画像そのもので、視覚上影響がなければ、部分毎に異なる解像度を持たせることが可能である。この場合、低い解像度の部分を再現するためには、それ以上のレベルの球面ｗａｖｅｌｅｔ関数の値は必要なくなり、全体のデータ量を削減することができる。
【００３６】
また、本発明の第２の側面は、球面上にマッピングされたデータを符号化するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換して、球面を正多角形に近似したレベル０の球面、並びに球面を近似するレベル０の正多面体を構成する３角形を再帰的に４分割してなるレベルｊ（但し、ｊは１以上の整数）の球面の各々について、スケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）をレベル毎に順次生成するデータ変換ステップと（但し、ｋは球面上の座標を表わす。ｍ＝１，２，３）、
レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列するデータ・ストリーム化ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００３７】
本発明の第２の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係るデータ符号化装置と同様の作用効果を得ることができる。
【００３８】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００３９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４０】
全周囲画像は、例えばピンホール・レンズを用い、空間上のある視点位置から周囲を見渡したときに得られる色や輝度からなる画像情報を、視点を中心とした球面上にマッピングして構成される。このような全周囲画像を２次元平面に投影した場合（図１９を参照のこと）、マッピングされた２次元平面の上下部（地図で言えば極部）では歪みが大きくなる（密度が赤道付近に比べて低くなる）。
【００４１】
そこで、本発明では、平面に投影したことによる問題の解決と、部分解像度といった空間スケーラビリティや部分配信の実現のために、球面直交展開による全周囲画像（あるいはその他の球面上にマッピングされたデータ）の記述法を採用する。
【００４２】
球面直交展開として、例えば、球面調和関数を用いる方法と、球面ｗａｖｅｅｌｅｔ変換を用いる方法を挙げることができる（例えば、樋口外著「球面直交展開を用いたパノラマ全周画像の記述」（３次元画像コンファレンス‘９９，１−６，ｐｐ．３１−３６，１９９９．６））。
【００４３】
球面調和関数を用いる方法では、関数値が大きくなり過ぎるため、ある次数を越えると倍精度実数型で扱うことができず特殊な計算方法が必要になる。
【００４４】
これに対し、球面ｗａｖｅｌｅｔ変換を用いる方法では、Ｈａａｒ基底を球面上に拡張した既定を用い、レベル間の参照関係を単純にすることができる。また、計算が単純で、適応性を備えていることから、アプリケーションへの応用が容易である。
【００４５】
本実施形態では、球面直交展開として球面ｗａｖｅｌｅｔ変換を用いた方法を適用することで、球面上にマッピングされたデータに関する、圧縮符号化や、さらには部分解像度などの空間スケーラビリティや部分配信の機能を備えた符号化を実現する。
【００４６】
Ａ．球面ｗａｖｅｌｅｔ
まず、球面Ｈａａｒ基底を用いた球面ｗａｖｅｌｅｔの数学モデルについて説明する。
【００４７】
球面Ｈａａｒ基底を用いた球面ｗａｖｅｌｅｔでは、まず、球面を複数の正３角形からなる正多面体で近似（投影）し、さらにこの正多面体を構成する各正３角形を再帰的に４分割していく。又は、４つの正３角形から１つの正３角形に再構成する。ｗａｖｅｌｅｔは、データを迅速に分解することができる構成ブロックであり、データの大きさに比例した時間で、データの元の表現とウェーブレット表現とを切り替えることができる。
【００４８】
球面を近似する正多面体は、構成面としての３角形の数が多いほど解像度が高まるから効率的である。そこで、本実施形態では、構成３角形の個数が最大となる正２０面体を用いて球面を近似（投影）する。以下では、元の正２０面体を構成する３角形をレベル０とし、これを再帰的に４分割して順次得られる３角形をレベル１、レベル２、…と呼ぶ（図１を参照のこと）。
【００４９】
レベル数が高いほど、球面はより多くの３角形で近似される。すなわち、球面を分割した３角形を、色や輝度などの画像データがマッピングされた画素とみなすと、レベル数が高いほど精細な高解像度画像となり、レベル数が低いほど粗い低解像度画像となる。例えば、レベルｊにおける４つの３角形の画素データを平均化することによりレベルｊ−１の３角形を得ることができる。レベル数を下げることは、球面上にマッピングされているデータの符号化圧縮に相当し、逆に、レベル数を上げることは球面上にマッピングされているデータの復号化に相当する。
【００５０】
ｗａｖｅｌｅｔは、レベルに応じて所定の関数を表現する基底関数である。ｗａｖｅｌｅｔは、通常、スケーリング関数を用いて形成され、あるレベルｊにおけるスケーリング関数あるいはｗａｖｅｌｅｔを、同一の形状で一段階微細化したレベルｊ＋１のスケーリング関数の線形結合で表すことができる。球面Ｈａａｒ規定におけるスケーリング関数Φｋ（ｊ）とｗａｖｅｌｅｔ関数Ψｋ（ｊ）はそれぞれ下式（１）及び（２）で定義される。
【００５１】
【数１】
2004272590.tif 000003
【００５２】
【数２】
2004272590.tif 000004
【００５３】
ここで、ｋは球面上の座標を表わす。また、Ｔｋ（ｊ）は、レベルｊの球面上の座標ｋの３角形の領域のみ値１を持ち、それ以外の領域は値０であることを表す関数である。図２には、球面Ｈａａｒ基底の概形を示している。
【００５４】
ｗａｖｅｌｅｔはスケーリング関数を用いて形成され、あるレベルｊにおけるスケーリング関数あるいはｗａｖｅｌｅｔは同一の形状で一段階微細化（すなわち分解）したレベルｊ＋１のスケーリング関数の線形結合で表される。球面Ｈａａｒ基底を用いた球面ｗａｖｅｌｅｔ変換の分解アルゴリズムは下式（３）で表される。また、球面ｗａｖｅｌｅｔ変換の再構成アルゴリズムは下式（４）で表される。分解アルゴリズムにより球面上にマッピングされたデータはより詳細なレベルに復号化され、また、再構成アルゴリズムにより球面上にマッピングされたデータはより粗いレベルに符号化される。
【００５５】
【数３】
2004272590.tif 000005
【００５６】
【数４】
2004272590.tif 000006
【００５７】
ここで、数列｛ｇｌ｝、｛ｈｍ，ｌ｝、｛ｐｌ｝、｛ｑｍ，ｌ｝は、ｔｗｏ−ｓｃａｌｅ関係、直交条件から、以下の式（５）及び（６）に示す通りに定めることができる。
【００５８】
【数５】
2004272590.tif 000007
【００５９】
【数６】
2004272590.tif 000008
【００６０】
以上の説明より、球面ｗａｖｅｌｅｔ変換の再構成により、レベルｊのスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）を算出するには、レベルが１つ小さいスケーリング関数Φｋ（ｊ−１）の係数ｃｋ（ｊ−１）と３種類の球面ｗａｖｅｌｅｔ関数Ψｋ（ｊ−１）の値ｄｋ，ｍ（ｊ−１）があればよいことが分る（但し、ｍ＝１，２，３）。これで、レベルを０に至るまで順次下げていくと、レベル＝Ｎの球面上の情報を、分解し、再構成するために必要な情報は、以下の式（７）で示される。
【００６１】
【数７】
2004272590.tif 000009
【００６２】
ｄｋ，ｍ（ｊ）をレベル毎に記述すると、以下の通りになる。（ｊ）がレベルを表す。
【００６３】
【数８】
2004272590.tif 000010
【００６４】
これは、球面を近似するレベル０の正２０面体を構成する各３角形にマッピングされている画素値と、各レベルにおけるｗａｖｅｌｅｔ関数の値に相当する。ここで、上記の式（４）、（５）、及び（６）より、レベル１を例にとって、具体的な再生アルゴリズムを下式（８）に示す。
【００６５】
【数９】
2004272590.tif 000011
【００６６】
上式（８）に示すように、ｃｋ０とｄｋ，ｍ０から、ｃｋ１を生成することができ、これにｄｋ，ｍ１を式（４）に則り演算を行なえば、また、１つ上のレベルの値ｃｋ２を求めることができる。
【００６７】
よって、ｃｋｊはレベル０さえあればよい。すなわち、レベル０での画素値に相当するｃｋ０と、各レベルでのｗａｖｅｌｅｔ関数の値さえあれば、各レベルの画素値を可逆的に符号化することができる。
【００６８】
全周囲画像のように球面にマッピングされたデータを球面ｗａｖｅｌｅｔ変換した時点では、出力されるデータは、スケーリング係数とｗａｖｅｌｅｔ関数の値がレベル毎に配列されている。このように球面上の座標に対応していないデータ配列のまま、データ・ストリーム化すると、部分解像度といった空間的スケーラビリティや部分配信の利便性が得られなくなる。そこで、本実施形態では、レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列して、データ・ストリーム化することとした。
【００６９】
Ｂ．可変長符号化を用いた高効率符号化
球面ｗａｖｅｌｅｔ変換の分解アルゴリズムは、空間周波数の分割ができると言える。この性質を利用すれば、高効率符号化が可能である。本発明者は、各レベルでの球面座標近傍の相関を利用した可変長符号化方法について提案する。
【００７０】
可変長符号化には、代表的なものとしてハフマン符号化やＬＺ方式が挙げられるが、これらはテキスト・ベースのキャラクタを対象としている。本明細書では、復号側で必要なリソースを極力少なくし、リアルタイム性を高め、且つ、８ビット以上の信号を扱うことができる可変長符号化方式について提案する。
【００７１】
ここで、８ビット以上の信号を扱う必要性は、球面ｗａｖｅｌｅｔ変換により、マイナスの値も算出されるので、９ビット長の値が算出される可能性が高いからである。
【００７２】
図３〜図５には、本実施形態に係る可変長符号化データ・ストリームの構成を模式的に示している。図示の通り、先頭にはメタ情報を持つ１バイトのヘッダがあり、以降にデータ・エリアが続く。
【００７３】
データ・エリアは、信号８サンプル分を１つのマクロ・ブロックとし、以降のマクロ・ブロックも同じビット長を持つ場合には、ヘッダを持たずに直接連結する。ヘッダには、次のヘッダが出現するまでに繰り返されるマクロ・ブロックの個数と、マクロ・ブロックのビット長が記述されている（図４を参照のこと）。同じビット長のマクロ・ブロックとそのヘッダを合せてユニットとする。
【００７４】
図５には、マクロ・ブロックのデータの格納方法を図解している。マクロ・ブロック内では、各サンプルを、８サンプルの中で最も長いビット長に揃えて、順次つなげて格納する。同図に示す例では、８サンプルの中で最も長いビット長が３ビットである。この場合、マクロ・ブロック全体のバイト長は３バイトとなる。
【００７５】
このようにすることで、ヘッダ及びマクロ・ブロックのバイト・アラインメントを確保し、ハードウェア及びソフトウェアでの扱いを容易にすることができる。
【００７６】
図４に示す例では、ヘッダは８ビット長であるが、前半４ビットにはマクロ・ブロックの繰り返し値が格納される。したがって、たとえ同じビット長のマクロ・ブロックが１６個以上続いたとしても、１つのブロックに収容されるマクロ・ブロックの最大数は１６となる。また、ヘッダの後半４ビットは、ブロックに収容されるマクロ・ブロックのビット長が格納される。
【００７７】
このような可変長符号化手法によれば、ビット列の長さを切り詰めることができる。
【００７８】
また、本明細書では、スケール・ファクタを適用する高効率符号化について提案する。
【００７９】
マクロ・ブロック内の８個のサンプルがすべて同じビット長ならば、マクロ・ブロックで１バイトを減らすことが可能である。
【００８０】
例えば、マクロ・ブロック内の８個のサンプルがすべて−２５６〜−１２９、又は、１２８〜２５５の値をとるとすれば、サンプルはすべて８ビット長なので、マクロ・ブロックのデータ・エリアは８バイトになる。
【００８１】
ここで、値が正の場合、１２８を引き、負の場合は１２８を足すとすると、マクロ・ブロック内の各サンプルがとり得る値は、−１２８〜−１，０〜１２７となり、７ビットで表すことが可能になる。
【００８２】
そこで、ヘッダのビット長部分にスケール・ファクタ情報を格納するものとする。
【００８３】
０〜９：スケール・ファクタなしのビット長
ａ    ：ビット長４、スケール・ファクタあり
…
ｆ    ：ビット長９、スケール・ファクタあり
【００８４】
Ｃ．ストリーム・フォーマット
球面ｗａｖｅｌｅｔで分解された値に上述した可変長符号化処理を行なうことで、以下の機能を有するストリーム・フォーマットを実現することができる。
【００８５】
（１）高効率符号化
（２）解像度のスケーラビリティ
（３）部分的な画像情報の抽出
【００８６】
球面ｗａｖｅｌｅｔでは、まず、球面を複数の正３角形からなる正多面体で近似（投影）し、さらにこの正多面体を構成する各正３角形を再帰的に４分割していく（前述）。
【００８７】
図６には、球面から分解された３角形（関数値）へのＩＤ割り当てフォーマットの一例を示している。同図の左側には、レベル０の場合に球に投影する正２０面体を構成する各正３角形のＩＤを示している。また、同図の右側には、各正３角形を分解する場合のＩＤの割り当て法則を示している。
【００８８】
全周囲画像のように球面にマッピングされたデータを球面ｗａｖｅｌｅｔ変換した時点では、出力されるデータは、スケーリング係数とｗａｖｅｌｅｔ関数の値がレベル毎に配列されている。本実施形態では、部分解像度のスケーラビリティや部分配信の利便性を得るために、レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列して、データ・ストリームを構成する。このため、球面Ｗａｖｅｌｅｔ変換により得られた各レベル毎のｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の座標に従って、図６に示されるレベル０を構成する各正３角形Ｔｒ１、Ｔｒ２、…毎に分割する（図７を参照のこと）。そして、レベルｊ＋１において各正３角形Ｔｒ１、Ｔｒ２、…毎に分割された球面ｗａｖｅｌｅｔ関数の値を、レベルｊのそれぞれ該当する正３角形について球面ｗａｖｅｌｅｔ関数の値の後に連結していく（図８を参照のこと）。
【００８９】
例えば、球面上にマッピングされたデータが全周囲画像のような画像情報である場合、各レベルの正３角形Ｔｒ１、Ｔｒ２、…に含まれる情報は、レベル０におけるスケーリング係数すなわちＲ，Ｇ，Ｂの値である。これに、球面ｗａｖｅｌｅｔ変換により分解された値を、さらに球面上の座標に従って各正３角形Ｔｒ１、Ｔｒ２、…、Ｔｒ１９に割り振り、以下のように連続的につなげていく。但し、Ｎは最大レベル数である。
【００９０】
【数１０】
2004272590.tif 000012
【００９１】
続いて、各正３角形Ｔｒ毎のデータ・ストリームのフォーマットについて説明する。
【００９２】
以下の式（９）には、最大レベル数をＮとするときに保存すべき情報の配列を示している。
【００９３】
【数１１】
2004272590.tif 000013
【００９４】
ここで、ｄ＊［３］は、３種類の球面ｗａｖｅｌｅｔ関数に対応する。ｄ１以降の真ん中に位置する配列は、分割された３角形のＩＤを示す。
【００９５】
ここで、分割された各３角形のレベル０のスケーリング関数の値、及びレベル０〜レベルＮ−１までの球面ｗａｖｅｌｅｔ関数の値をまず色空間上のＲ、Ｇ、Ｂの各成分毎に分離し、ＩＤ順すなわち球面上の座標に従って並べ、これらをＲ、Ｇ、Ｂの順に連結する。
【００９６】
このようにすることで、８サンプル毎に可変長符号化する場合の空間上の相関を利用することができる。
【００９７】
上記の式（８）のデータをレベル１の球面ｗａｖｅｌｅｔ関数の値ｄ１以降、さらに正３角形ＩＤを４つのグループに分割した配列を以下の式（１０）に示す。
【００９８】
【数１２】
2004272590.tif 000014
【００９９】
さらに、球面ｗａｖｅｌｅｔ関数の値ｄ＊は、球面ｗａｖｅｌｅｔ関数毎に並べるものとし、以下の式（１１）に変換する。つまり、大きくはＲ、Ｇ、Ｂ毎に束ね、その中では球面ｗａｖｅｌｅｔ関数毎に分けて並べるものとする。
【０１００】
【数１３】
2004272590.tif 000015
【０１０１】
なお、レベル２以降は、同じ色の中で４個のデータを２回連続させ同じ色が８個並ぶものとして、より相関の強いデータの並びとする。式（１１）では、レベル２を例として、このことを示している。これを下式（１２）で表している。
【０１０２】
【数１４】
2004272590.tif 000016
【０１０３】
図９には、上式（１２）に示した配列順を表す配列ツリー構造を示している。同図に示す例では、最大レベルを５としている。また、図１０には、図９の具体的なストリーム構造を示している（但し、紙面の都合で最大レベルを４とする）。
【０１０４】
このようにして配列したストリームに対して、前述した可変長符号化を適用することで、高効率符号化を実現することができる。
【０１０５】
次いで、本実施形態に係るストリーム・フォーマットのスケーラビリティについて説明する。
【０１０６】
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換した結果を図９並びに図１０で示したストリーム構造にすることで、順次、ｃ１［２０］［４］、ｃ２［２０］［１６］、ｃ３［２０］［６４］、…、ｃＮ［２０］［４Ｎ］、を求めることを容易にしている。
【０１０７】
ここで、もし画像などの再生に必要な最低レベルが分っており、そのレベルまで分解することで十分な高効率符号による符号化が実現する場合、最低レベルから始まるストリーム構造も、これまでに述べたと同様の処理手順に従い、実装することができる。
【０１０８】
図１１には、例として最低レベルを３とした場合のデータ配列ツリー構造を示している。なお、図面の簡素化のため、図中にＲＧＢの記号は付けていないが、前述と同様に、ＲＧＢの色毎にまとめてデータをつなげるものとする。また、前述と同様に、球面を近似するレベル０の正３角形内で考える。このような構成によれば、まとまりのあるサンプルが連続するので、マクロ・ブロックを作りやすいという利点がある。
【０１０９】
次いで、本実施形態に係るストリーム・フォーマットの部分抽出及び部分再構成について説明する。
【０１１０】
球面上にマッピングされたデータを球面ｗａｖｅｌｅｔ変換した結果を図９、図１０、並びに図１１で示したストリーム構造にすることで、符号化データを元の球面上に再構成する場合に、現在再構成されているレベルの３角形と同じ位置で再構成される次のレベルの球面ｗａｖｅｌｅｔ関数の値をおくことで、部分抽出が可能となる。
【０１１１】
また、上述した処理手順で再生する画像の部分に応じて異なる解像度を持たせることが可能である。例えば、人物の顔をズームアップしたい場合などには、その部分だけ再構成を行なうようにすればよい。さらに、全周囲画像そのもので、視覚上影響がなければ、部分毎に異なる解像度を持たせることが可能である。この場合、低い解像度の部分ではそれ以上のレベルの球面ｗａｖｅｌｅｔ関数の値は必要なくなり、全体のデータ量を削減することができる。なお、この場合、映像などのデータの球面上における位置とレベル値との対応を、メタ情報として付加すればよい。
【０１１２】
Ｄ．音場の高効率符号化
キルヒホッフの積分公式に基づいて、表面の音圧と表面の法線方向の粒子速度を完全に制御することが可能であれば、閉曲面Ｓの内部領域Ｄの音場を完全に再現することができる。言い換えれば、音圧や粒子速度を球面上にマッピングすることにより、広範囲で再現可能な音場を扱うことができる。ここでは、球面ｗａｖｅｌｅｔを用いた高効率符号化について考察する。
【０１１３】
球面ｗａｖｅｌｅｔ変換の分解アルゴリズムは、空間周波数の分割ができると言える。この性質を利用すれば、高効率符号化が可能である。また、さらに時間軸方向に直交変換を行なうことで、信号を周波数スペクトル情報に変換し、さらなる高効率符号化が可能である。本実施形態では、時間軸方向への直交変換の手段として、ＭＤＣＴ（Ｍｏｄｉｆｉｅｄ  ＤＣＴ）を用いる。
【０１１４】
図１２には、ＭＤＣＴ及びＩＭＤＣＴの処理フローを模式的に示している。ＭＤＣＴ及びＩＭＤＣＴは、次の処理手順を踏む。
【０１１５】
（１）窓かけ（ＭＤＣＴ用）
入力信号ｘ（ｎ）にＭＤＣＴ用の窓ｗ１（ｎ）、０≦ｎ＜２Ｍをかける。
【０１１６】
【数１５】
2004272590.tif 000017
【０１１７】
（２）ＭＤＣＴ
窓かけした後の信号ｘ１，ｊ（ｎ）を下式（１４）によりＭＤＣＴ係数Ｘｊ（ｋ）に変換する。
【０１１８】
【数１６】
2004272590.tif 000018
【０１１９】
ここで、時系列信号のサンプル数２Ｍの信号より、半分のＭ個の係数が算出される。窓かけは、それぞれ互いの中心までオーバーラップしているため、結果的には、時系列信号と同じだけの係数が算出される。
【０１２０】
（３）ＩＭＤＣＴ
ＭＤＣＴ係数Ｘｊ（ｋ）を下式（１５）により逆変換する。
【０１２１】
【数１７】
2004272590.tif 000019
【０１２２】
（４）窓かけ（ＩＭＤＣＴ用）
ＩＭＤＣＴ後の信号ｘ２，ｊ（ｎ）にＩＭＤＣＴ用の窓ｗ２（ｎ），０≦ｎ＜２Ｍをかける。
【０１２３】
【数１８】
2004272590.tif 000020
【０１２４】
（５）オーバーラップ
Ｊ−１番目のｘ３，ｊ−１（ｎ）の後半部分と、Ｊ番目のｘ３，ｊ（ｎ）の前半部分を加え合わせることにより、出力時間信号ｙ（ｎ＋ＪＭ）を得る。
【０１２５】
【数１９】
2004272590.tif 000021
【０１２６】
上記で扱う時間窓は、下式（１８）の条件を満たす。
【０１２７】
【数２０】
2004272590.tif 000022
【０１２８】
本実施形態では、下式（１９）で表されるサイン窓を用いている。
【０１２９】
【数２１】
2004272590.tif 000023
【０１３０】
これにより、球面上の音圧分布と法線方向粒子速度を、空間周波数と時間軸方向の周波数に変換して、球面座標系近傍の相関を利用した可変長符号化を実現することができる。
【０１３１】
可変長符号化には、代表的なものとしてハフマン符号化やＬＺ方式が挙げられるが、これらはテキスト・ベースのキャラクタを対象としている。本明細書では、復号側で必要なリソースを極力少なくし、リアルタイム性を高め、且つ、８ビット以上の信号を扱うことができる可変長符号化方式について提案する。
【０１３２】
図１３〜図１５には、本実施形態に係る可変長符号化データ・ストリームの構成を模式的に示している。図示の通り、先頭にはメタ情報を持つ１バイトのヘッダがあり、以降にデータ・エリアが続く。
【０１３３】
データ・エリアは、信号８サンプル分を１つのマクロ・ブロックとし、以降のマクロ・ブロックも同じビット長を持つ場合には、ヘッダを持たずに直接連結する。ヘッダには、次のヘッダが出現するまでに繰り返されるマクロ・ブロックの個数と、マクロ・ブロックのビット長が記述されている（図１４を参照のこと）。繰り返されるマクロ・ブロックとそのヘッダを含めてユニットと呼ぶ。
【０１３４】
図１５には、マクロ・ブロックのデータの格納方法を図解している。マクロ・ブロック内では、各サンプルを、８サンプルの中で最も長いビット長に揃えて、順次つなげて格納する。同図に示す例では、８サンプルの中で最も長いビット長が３ビットである。この場合、マクロ・ブロック全体のバイト長は３バイトとなる。
【０１３５】
このようにすることで、ヘッダ及びマクロ・ブロックのバイト・アラインメントを確保し、ハードウェア及びソフトウェアでの扱いを容易にすることができる。
【０１３６】
図１４に示す例では、ヘッダは８ビット長であるが、前半３ビットにはマクロ・ブロックの繰り返し値が格納される。したがって、たとえ同じビット長のマクロ・ブロックが８個以上続いたとしても、１つのブロックに収容されるマクロ・ブロックの最大数は８となる。また、ヘッダの後半５ビットは、ブロックに収容されるマクロ・ブロックのビット長が格納される。
【０１３７】
球面ｗａｖｅｌｅｔで分解された値に上述した可変長符号化処理を行なうことで、以下の機能を有するストリーム・フォーマットを実現することができる。
【０１３８】
（１）高効率符号化
（２）解像度のスケーラビリティ
（３）部分的な表面情報の抽出
【０１３９】
球面ｗａｖｅｌｅｔでは、まず、球面を複数の正３角形からなる正多面体で近似（投影）し、さらにこの正多面体を構成する各正３角形を再帰的に４分割していく（前述）。
【０１４０】
図６には、球面から分解された３角形（関数値）へのＩＤ割り当てフォーマットの一例を示している。同図の左側には、レベル０の場合に球に投影する正２０面体を構成する各正３角形のＩＤを示している。また、同図の右側には、各正３角形を分解する場合のＩＤの割り当て法則を示している。
【０１４１】
音場を完全に再現するためのデータのように球面にマッピングされたデータを球面ｗａｖｅｌｅｔ変換した時点では、出力されるデータは、スケーリング係数とｗａｖｅｌｅｔ関数の値がレベル毎に配列されている。本実施形態では、部分解像度のスケーラビリティや部分配信の利便性を得るために、レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列して、データ・ストリームを構成する。このため、球面Ｗａｖｅｌｅｔ変換により得られた各レベル毎のｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の座標に従って、図６に示されるレベル０を構成する各正３角形Ｔｒ１、Ｔｒ２、…毎に分割する。そして、レベルｊ＋１において各正３角形Ｔｒ１、Ｔｒ２、…毎に分割された球面ｗａｖｅｌｅｔ関数の値を、レベルｊのそれぞれ該当する正３角形について球面ｗａｖｅｌｅｔ関数の値の後に連結していく（図１６を参照のこと）。
【０１４２】
例えば、球面上にマッピングされたデータが音場を完全に再現するための表面情報である場合、各レベルの正３角形Ｔｒ１、Ｔｒ２、…に含まれる情報は、球面上の音圧と法線方向の粒子速度に対して球面ｗａｖｅｌｅｔ変換を施した符号である。すなわち、球面ｗａｖｅｌｅｔ変換で分解されたレベル０におけるスケーリング係数並びに各レベルの球面ｗａｖｅｌｅｔ関数の値（但し、Ｎは最大レベル数）、
【０１４３】
【数２２】
2004272590.tif 000024
【０１４４】
並びに、上記のデータ毎にＭＤＣＴ変換を行なったＭサンプルのスペクトルであり、これらが連続してつながっていく。
【０１４５】
続いて、各正３角形Ｔｒ毎のデータ・ストリームのフォーマットについて説明する。
【０１４６】
以下の式（２０）には、最大レベル数をＮとするときに保存すべき情報の配列を示している。
【０１４７】
【数２３】
2004272590.tif 000025
【０１４８】
上式において、後尾の［０，１，…，Ｍ−１］は、ＭＤＣＴ変換後のスペクトルを示す。ｄ＊［３］は、３種類の球面ｗａｖｅｌｅｔ関数に対応する。ｄ１以降の真ん中に位置する配列は、分割された３角形のＩＤを示す。
【０１４９】
ここで、分割された各３角形をＩＤ順に順次４つずつ、スペクトル間でインターリーブする。図１７には、ｄ２について各３角形をＩＤ順に順次４つずつ、スペクトル間でインターリーブした例を示している。なお、同じ球面ｗａｖｅｌｅｔ関数内で行なうこととする。
【０１５０】
このようにすることで、８サンプル毎に可変長符号化する場合、空間と時間−周波数変換間の２つの相関を利用することができる。上式（２０）のデータをｄ１以降に、このインターリーブをし、さらにＩＤを４つ毎にパックした配列を下式（２１）にしめす。なお、Ｐ波音圧を、Ｖは法線方向粒子速度をそれぞれ表す。
【０１５１】
【数２４】
2004272590.tif 000026
【０１５２】
また、ｄ＊は、球面ｗａｖｅｌｅｔ関数に分けて順次並べ、且つ、音圧、法線方向粒子速度の順に並べるものとし、下式（２２）に変換して、図１８に示すようにデータ配列ストリームで用いる。
【０１５３】
【数２５】
2004272590.tif 000027
【０１５４】
図１８には、上式（２１）の配列順を表す、ストリーム構造の具体的なイメージを示している。同図に示す例では、最大レベルを４として示している。また、レベル０の１つの正三角形のみの記述であり、これが２０個連続するものとする。
【０１５５】
なお、［Ｍ］は、ＭＤＣＴ変換後のスペクトルを意味し、［４Ｍ］は、ＭＤＣＴ変換後のスペクトルに図１７に示したインターリーブを行なった後のデータ列を示している。
【０１５６】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１５７】
【発明の効果】
以上詳記したように、本発明によれば、球面上にマッピングされたデータを好適に符号化することができる、優れたデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムを提供することができる。
【０１５８】
また、本発明によれば、球面上にマッピングされたデータを所定の数学モデルで記述して好適に符号化することができる、優れたデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムを提供することができる。
【０１５９】
また、本発明によれば、球面上にマッピングされたデータを部分解像度及び部分配信が可能な形式で好適に符号化することができる、優れたデータ符号化装置及びデータ符号化方法、並びにコンピュータ・プログラムを提供することができる。
【０１６０】
本発明に係るデータ符号化装置は、レベル毎に配列されているスケーリング関数Φｋ（ｊ）の係数ｃｋ（ｊ）と、ｗａｖｅｌｅｔ関数Ψｋ（ｊ）の値ｄｋ，ｍ（ｊ）を、球面上の位置関係に従った配列に再配列して、データ・ストリーム化する。
【０１６１】
したがって、本発明に係るデータ符号化によれば、データの再生に必要な最低レベルが分っており、そのレベルまで分解することで十分な高効率符号による符号化が実現する場合、最低レベルから始まるストリーム構造も同様の概念で実装することができるので、スケーラビリティを実現することができる。
【０１６２】
また、本発明に係るデータ符号化によれば、符号化データを元の球面上に再構成する場合に、現在再構成されているレベルの３角形と同じ位置で再構成される次のレベルの球面ｗａｖｅｌｅｔ関数の値をおくことで、部分抽出が可能となる。
【０１６３】
また、本発明に係るデータ符号化によれば、再生する部分に応じて異なる解像度を持たせることが可能である。例えば、人物の顔をズームアップしたい場合などには、その部分だけ再構成を行なうようにすればよい。さらに、全周囲画像そのもので、視覚上影響がなければ、部分毎に異なる解像度を持たせることが可能である。この場合、低い解像度の部分ではそれ以上のレベルの球面ｗａｖｅｌｅｔ関数の値は必要なくなり、全体のデータ量を削減することができる。
【図面の簡単な説明】
【図１】球面Ｈａａｒ基底を用いた球面ｗａｖｅｌｅｔによる球面の分解・再構成方法を説明するための図である。
【図２】球面Ｈａａｒ基底の概形を示した図である。
【図３】本発明の一実施形態に係る可変長符号化データ・ストリームの構成を模式的に示した図である。
【図４】ヘッダの構造を示した図である。
【図５】マクロ・ブロックのデータの格納方法を説明するための図である。
【図６】球面から分解された３角形（関数値）へのＩＤ割り当てフォーマットの一例を示した図である。
【図７】ストリーム・フォーマットの構成を模式的に示した図である。
【図８】レベル毎に配列されている球面ｗａｖｅｌｅｔ関数の値を球面上の座標に従って再配列する様子を模式的に示した図である。
【図９】式（１２）に示した配列順を表す配列ツリー構造を示した図である。
【図１０】図９の具体的なストリーム構造を示した図である。
【図１１】最低レベルを３とした場合のデータ配列ツリー構造を示した図である。
【図１２】ＭＤＣＴ及びＩＭＤＣＴの処理フローを模式的に示した図である。
【図１３】本発明の一実施形態に係る可変長符号化データ・ストリームの構成を模式的に示した図である。
【図１４】ヘッダの構造を示した図である。
【図１５】マクロ・ブロックのデータの格納方法を説明するための図である。
【図１６】ストリーム・フォーマットの構成を模式的に示した図である。
【図１７】ｄ２について各３角形をＩＤ順に順次４つずつ、スペクトル間でインターリーブした例を示した図である。
【図１８】具体的なストリーム構造を示した図である。
【図１９】球面上のデータを平面に展開するための方法を説明するための図（従来例）である。
【図１】
2004272590.tif 000028
【図２】
2004272590.tif 000029
【図３】
2004272590.tif 000030
【図４】
2004272590.tif 000031
【図５】
2004272590.tif 000032
【図６】
2004272590.tif 000033
【図７】
2004272590.tif 000034
【図８】
2004272590.tif 000035
【図９】
2004272590.tif 000036
【図１０】
2004272590.tif 000037
【図１１】
2004272590.tif 000038
【図１２】
2004272590.tif 000039
【図１３】
2004272590.tif 000040
【図１４】
2004272590.tif 000041
【図１５】
2004272590.tif 000042
【図１６】
2004272590.tif 000043
【図１７】
2004272590.tif 000044
【図１８】
2004272590.tif 000045
【図１９】
2004272590.tif 000046