(57)【特許請求の範囲】
【請求項１】
複数のサンプリング・データを圧縮するデータ圧縮システムにおいて、
前記サンプリング・データの差分商を求める手段と、
求めた差分商と、しきい値とを比較する手段と、
比較した結果が大きい場合、さらに、まえに記憶したサンプリング・データとの間隔が他のしきい値より大きいか比較する手段と、
記憶手段と
を備え、前記他のしきい値と比較した結果が大きい場合にその差分商に対応するサンプリング・データを圧縮データとして前記記憶手段に記憶することを特徴とするデータ圧縮システム。
【請求項２】
請求項１記載のデータ圧縮システムにおいて、
前記差分商を求める手段は、高階の差分商を求めることを特徴とするデータ圧縮システム。
【請求項３】
請求項１または２記載のデータ圧縮システムにより圧縮された前記圧縮データを、前記圧縮データから求めたスプライン関数を用いて復元することを特徴とするデータ復元システム。
【請求項４】
情報処理手段および記憶手段を有し、複数のサンプリング・データを圧縮するデータ圧縮システムのデータ圧縮方法において、前記情報処理手段により、
複数のサンプリング・データの差分商を求め、
求めた差分商と、しきい値とを比較し、
比較した結果が大きい場合、さらに、まえに記憶したサンプリング・データとの間隔が他のしきい値より大きいか比較し、
他のしきい値と比較した結果が大きい場合、その差分商に対応するサンプリング・データを前記記憶手段により圧縮データとして前記記憶手段に記憶する
ことを特徴とするデータ圧縮方法。
【請求項５】
請求項１記載のデータ圧縮システムを構成する機能をコンピュータ・システムに構築するプログラムを格納した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サンプリング・データの圧縮に関し、特にスプライン関数により復元することができるサンプリング・データの圧縮に関する。
【０００２】
【従来の技術】
従来から、図形データ等を表すための任意の曲線をスプライン関数で補間することで、記憶すべき図形データ等のビットマップ形式等によるデータより少なくすることは行われていた（例えば、ｂｉｔ  vol.15 no.8 p.232-236 １９８３年７月やトラ技コンピュータ vol.6 no.10 p134-142 １９９４年１０月等を参照されたい) 。しかしながら、曲線のどの点を記憶するとスプライン関数の補間により、よりよい近似による目的とする曲線の再現が得られるかについては、定まった手法は存在せず、試行錯誤で行われていた。
【０００３】
【発明が解決しようとする課題】
本発明の目的は、サンプリングした任意のデータをスプライン関数により復元する場合に、再現性よく少数のデータを決定して記憶することにより、データを圧縮することである。
【０００４】
【課題を解決するための手段】
上記目的を達成するために、本発明は、複数のサンプリング・データを圧縮するデータ圧縮システムにおいて、前記サンプリング・データの差分商を求める手段と、求めた差分商と、しきい値とを比較する手段と、比較した結果が大きい場合、さらに、まえに記憶したサンプリング・データとの間隔が他のしきい値より大きいか比較する手段を備えることにより、他のしきい値と比較した結果が大きい場合にサンプリング・データを圧縮データとして記憶する。
【０００５】
このようにして、サンプリング・データを圧縮することができる。この圧縮されたデータは、圧縮データより求められるスプライン関数を用いて復元することができる。
【０００７】
前記差分商を求める手段は、復元に用いる次数のスプライン関数に対応した高階の差分商を求める必要がある。
【０００８】
上述のデータ圧縮システムにより圧縮された前記圧縮データを、前記圧縮データから求めたスプライン関数を用いて復元するデータ復元システムも本発明である。
【０００９】
上述のシステムが実行している方法や、上述のシステムを構成する機能をコンピュータ・システムに構築するプログラムを格納した記録媒体も本発明である。
【００１０】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
【００１１】
まず、この発明において、まず、本発明により圧縮されたデータを復元するために用いているスプライン関数の特性について、図１を用いて説明する。図１は、３次スプライン曲線を例としている。図１（ａ）において、点Ａ，点Ｂ，点Ｃを通る３次スプライン曲線を示している。この３次スプライン曲線ｆ（ｘ）は、例えば、スプライン関数が通っている点Ｂに関して、１階の導関数ｄｆ（ｘ）／ｄｘ（図１（ｂ）参照）に対する点Ｂ′、および、２階の導関数ｄ2 ｆ（ｘ）／ｄｘ2 （図１（ｃ）参照）に対応する点Ｂ″において、スプライン関数の性質から連続である。しかし、３階の導関数ｄ3 ｆ（ｘ）／ｄｘ3 に関する点Ｂ″′においては不連続となる（図１（ｄ）参照）。本発明は３次スプライン関数がこの３階の導関数において不連続となることを用いて、記憶すべきキーデータを定めている。
【００１２】
さて、図２において、ｙ＝ｆ（ｘ）として表される任意の曲線を、例えば、ｘ＝ｘ0 ，ｘ1 ，ｘ2 ，ｘ3 ，ｘ4 ，・・でサンプリングする。これで得られる曲線ｙ＝ｆ（ｘ）のサンプリング・データは、（ｘ0 ，ｆ（ｘ0 ）），（ｘ1 ，ｆ（ｘ1 ）），（ｘ2 ，ｆ（ｘ2 ）），（ｘ3 ，ｆ（ｘ3 ）），・・となる。このようなサンプリングされた点により表される曲線ｆ（ｘ）を近似するスプライン関数を得るための最適なサンプリング点を抽出することができれば、記憶すべきサンプリング・データを少なくする（圧縮する）ことができる。
【００１３】
このような離散値である曲線を表すデータに対しては、微分を計算できないので、本発明においては差分商を計算する。サンプリング点ｘ＝ｘ0 ，ｘ1 ，ｘ2 ，ｘ3 に対する１階の差分商Δｆ（ｘ）とは、
【００１４】
【数１】
Δｆ（ｘ0 ）＝（ｆ（ｘ1 ）−ｆ（ｘ0 ））／（ｘ1 −ｘ0 ）
Δｆ（ｘ1 ）＝（ｆ（ｘ2 ）−ｆ（ｘ1 ））／（ｘ2 −ｘ1 ）
Δｆ（ｘ2 ）＝（ｆ（ｘ3 ）−ｆ（ｘ2 ））／（ｘ3 −ｘ2 ）
である。次に、サンプリング点ｘ＝ｘ0 ，ｘ1 に対する２階の差分商Δ2 ｆ（ｘ）は、
【００１５】
Δ２ ｆ（ｘ０ ）＝（Δｆ（ｘ１ ）−Δｆ（ｘ０ ））／（ｘ２ −ｘ０ ）
Δ２ ｆ（ｘ１ ）＝（Δｆ（ｘ２ ）−Δｆ（ｘ１ ））／（ｘ３ −ｘ１ ）
である。サンプリング点ｘ＝ｘ０ に対する３階の差分商Δ３ ｆ（ｘ）は、
【００１６】
【数３】
Δ3 ｆ（ｘ0 ）＝（Δ2 ｆ（ｘ1 ）−Δ2 ｆ（ｘ0 ））／（ｘ3 −ｘ0 ）
である。このようにして、３階の差分商を各点について計算する。
【００１７】
上述のように、３次スプライン関数は、３階の微分で不連続となることより、計算した３階の差分商の値において、ある定められた値εを越えたとき、その点のデータをキーデータとして登録する。このキーデータを基づいて、スプライン関数を求めることにより、元の曲線ｆ（ｘ）を復元することができる。複数の点（ｘ，ｙ＝ｆ（ｘ））が与えられたとき、その複数の点を通るスプライン関数を求めることはよく知られている。このようにして求めたキーデータは、εを適切にさだめることにより、ｙ＝ｆ（ｘ）として表される曲線を近似するために必要なスプライン関数を求めるために最適なものとなる。
【００１８】
ｆ（ｘ）の３階の差分商の値からどのようにして、キーデータを求めるかを説明したのが図３である。図３において、上述のように計算して、ｆ（ｘ）に対する離散値のデータから各点に対応する３階の差分商Δ3 ｆ（ｘ）の値（Ｐ1 ，Ｐ2 ，Ｐ3 、・・・Ｐi-1 ，Ｐi ）をもとめ、それがεを越える値（Ｐi ）に対応する点のサンプリング・データをキーデータとする。
【００１９】
また、図４（ａ）のように、ｘの変化に対して十分離れずに密な状態でキーデータがとられる場合、図４（ｂ）のように、予め定めたδだけ離れた点に対応するものをキーデータを取るようにする。これは、ｆ（ｘ）に対する３階の差分商のグラフである図５においては、ｘ1 でε以上になったとしてキーデータがとられた場合、次にキーデータとして取られるのは、ε以上となるｘ4 , ｘ5 の両点ではなく、ｘ1 からδ以上離れたε以上となるｘ5 の点である。
【００２０】
このように、サンプリング・データの差分商データに対して、しきい値εとδの双方用いて記憶すべきキーデータを決定することにより、より圧縮率がよいキーデータを得ることができる。
【００２１】
上述の説明では、３次のスプライン関数を用いて復元することを前提に、３階の差分商を求める例で説明した。しかし、求める差分商はこれに限らず、復元に用いるスプライン関数に応じた高階の差分商を求める必要がある。したがって、例えば、２次のスプライン関数を用いるときは、２階の差分商を求める必要がある。
【００２２】
本発明は、コンピュータ・システム上のプログラムにより、サンプリング・データの圧縮装置等として実現されている。
【００２３】
本発明を、サンプリング・データの例として、モーション・キャプション・データを用いた場合において、詳しく説明する。
【００２４】
図６は、モーション・キャプション・データを収集して、そのデータを圧縮・復元するシステムの構成例である。
【００２５】
図６において、システムは、ＣＰＵ１０１、メインメモリを構成するＲＡＭ１０２、ＢＩＯＳのプログラム等を格納しているＲＯＭ１０３、ＣＲＴ等の表示装置１０４、キーボード等の入力装置１０５、データやプログラムを格納するハードディスク１０６等を備えたコンピュータ・システム１００である。このコンピュータ・システム１００には、モーション・キャプチャ・システム１０７が備わっている。このモーション・キャプチャ・システム１０７は、人間の動きを表すデータを収集するためのシステムである。このモーション・キャプチャ・システムで収集されるデータについては、後で詳しく説明する。
【００２６】
さて、このようなシステム１００における処理を説明したのが、図７および図８のフローチャートである。
【００２７】
図７のフローチャートにおいて、まず、システム１００は、モーション・キャプチャ・システム１０７からデータを収集してハードディスク１０６等に記憶する（Ｓ１１）。ここで、モーション・キャプチャ・システム１０７により収集されるデータを、図９および図１０を用いて詳しく説明する。
【００２８】
例えば、図９に示すように、例えば、人間の顔（ＫＡＯ）、肩（ＫＡＴＡ）、鎖骨（ｓａｋｏｔｓｕ）、胸（ＭＵＮＥ）、腕（ＵＤＥ）、手（ＴＥ）、腰（ＫＯＳＩ）、もも（ＭＯＭＯ）、膝（ＨＩＺＡ）、足（ＡＳＩ）の各部位の実際の動きを、人間に取り付けたセンサ等により関節に対する３軸の回転運動として収集し、全体の動きを中心（例えば、ＨＡＲＡ）のｘ，ｙ，ｚの座標として収集する。図９で左右ある部位に関しては、Ｌ（左）、Ｒ（右）を付与して区別している。これらの各部位の接続関係を示したのが図１０で、中心である腹（ＨＡＲＡ）で上半身と下半身に分解されている。中心の腹（ＨＡＲＡ）の座標と、図１０に示した各関節の接続関係により関節の回転運動で各部の動きが決定されると、全体の動きが再現できる。これらの動きのデータは、例えば１／３０秒や１／６０秒ごとに、サンプリングされている。したがって、このように多数の部位のデータを長時間収集すると、全体では相当多量のデータとなる。
【００２９】
図７に戻り、このように収集されたモーション・キャプチャ・データに対して、上述のキーデータを決定するために、まず、差分商を計算する（Ｓ１２）。この差分商データは、復元するときに使用するスプライン関数の次数により、何階の差分商を求めるかが決まる。例えば、上述のように３次のスプライン関数により復元する場合は、３階の差分商を求める。そして、しきい値εを定め（通常は、デフォルト値）、最初の差分商データを設定する（Ｓ１３）。差分商データに対してしきい値εと比較し（Ｓ１４）、しきい値εより大きくなった差分商データに対応するモーション・キャプチャ・データをキーデータとする（Ｓ１６）。これを差分商データがなくなるまで（Ｓ１７，Ｓ１４）順次行う。このキーデータ決定の処理は、各部位、各座標独立に処理する。
【００３０】
このようにキーデータを決定して、キーデータのみ格納することにより、モーション・キャプチャ・データを圧縮することができる。このように圧縮して格納してあるデータから、元のモーション・キャプチャ・データを復元するためには、格納してあるモーション・キャプチャ・データのキーデータを通過するスプライン関数を求めて、このスプライン関数より元のサンプリングされたデータを復元する。スプライン関数の求め方等はよく知られている（例えば、上述の刊行物参照）ので、復元の具体的な処理に対する説明を省略する。
【００３１】
図８のフローチャートは、しきい値εだけではなく、他のしきい値δも考慮した処理を示している。この処理は、図７の処理に、しきい値δとの比較する処理（Ｓ２０）を付加して、差分商がしきい値εを越え、かつ、前に登録したキーデータとの間隔がしきい値δを越える場合のみ、対応するモーション・キャプチャ・データをキーデータをして登録するようにしている。
【００３２】
このようにすることにより、よりモーション・キャプチャ・データの圧縮率を高めることができる。
【００３３】
図１１〜図１３は、上述の図８に示されている２つのしきい値を用いて処理を行った場合の具体的な例である。図１１に示したグラフは、図９における右足（ＡＳＨＩ Ｒ）のｘ軸回りの回転データであり、これに対してキーデータとして図１１の矢印のところのデータを取っている．そして、とったキーデータからスプライン関数を求めて復元したのが図１２である。このように、圧縮されたデータであるキーデータからよい復元データを得ることができる。
【００３４】
図１３は、モーション・キャプチャ・データにおける各部位毎の回転データ（図１３（ａ））および腹（ＨＡＲＡ）の座標データ（図１３（ｂ））の圧縮を示している。各部位のサンプリング・データは、７５個づつとられているが、圧縮は、各部位等独立に行われているため異なっている。しかし、効率よく圧縮されていることが示されている。このようにして圧縮されたデータは、スプライン関数を用いて復元するために最適なデータである。
【００３５】
上述では、モーション・キャプチャ・データのような、時間変化するデータに対して詳しく説明したが、２次元や３次元のような空間データを、デジタイザ等を用いて取り込んだサンプリング・データにも本発明は同様に適用することができる。
【００３６】
本発明は、図６に示したスタンド・アローンのコンピュータ・システムばかりではなく、複数のシステムから構成される例えばクライアント・サーバ・システム等に適用してもよい。
【００３７】
本発明に関するプログラムを格納した記憶媒体から、プログラムをシステムで読み出して実行することにより、本発明の構成を実現することができる。この記録媒体には、フロッピー・ディスク、ＣＤ−ＲＯＭ、磁気テープ、ＲＯＭカセット等がある。
【００３８】
【発明の効果】
上記の説明のように、本発明を用いることにより、動きや曲線を表すサンプリング・データ等の離散的なデータを圧縮することができ、圧縮されたデータからスプライン関数を用いて復元することができる。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】サンプリングにより表される曲線の例を表す図である。
【図３】差分商からのデータの選択を説明する図である。
【図４】しきい値δを説明する図である。
【図５】しきい値εおよびδを用いたデータの選択を説明する図である。
【図６】本発明の実施形態の構成を説明する図である。
【図７】本発明の処理の実施形態を説明するフローチャートである。
【図８】本発明の他の処理の実施形態を説明するフローチャートである。
【図９】モーション・キャプション・データを説明する図である。
【図１０】モーション・キャプション・データを説明する図である。
【図１１】モーション・キャプション・データの一例を表す図である。
【図１２】復元したモーション・キャプション・データの一例を表す図である。
【図１３】モーション・キャプション・データの圧縮の例を表す図である。
【符号の説明】
１００  コンピュータ・システム
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  表示装置
１０５  入力装置
１０６  ハードディスク
１０７  モーション・キャプチャ・システム
【図１】
0003777054.tif 000002
【図２】
0003777054.tif 000003
【図３】
0003777054.tif 000004
【図４】
0003777054.tif 000005
【図５】
0003777054.tif 000006
【図６】
0003777054.tif 000007
【図７】
0003777054.tif 000008
【図８】
0003777054.tif 000009
【図９】
0003777054.tif 000010
【図１０】
0003777054.tif 000011
【図１１】
0003777054.tif 000012
【図１２】
0003777054.tif 000013
【図１３】
0003777054.tif 000014