(57)【要約】【課題】  キーデータの選定の自動化が可能でノイズにつよいプログラム、情報記憶媒体、データ圧縮システム及びコンピュータの制御方法を提供すること。【解決手段】複数のサンプリングデータｙiのなかからキーデータを選択するためのプログラムであって、サンプリングデータｙiとｙi+1のデータ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算手段と、前記補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算手段と、ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択手段と、してコンピュータを機能させる。【選択図】      図７
2005190390.tif 000002
【特許請求の範囲】
【請求項１】
複数のサンプリングデータｙiのなかからキーデータを選択するためのプログラムであって、
サンプリングデータｙiとｙi+1のデータ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算手段と、
前記補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算手段と、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択手段と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記差分パラメータ演算手段は、
補間関数Ｓi（ｘ）の係数の値に基づき差分パラメータｋiを求めることを特徴とするプログラム。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記差分パラメータ演算手段は、
ｙi-1からｙiの間を補間するための第１の補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための第２の補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記差分パラメータ演算手段は、
第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）に基づき差関数Ｆi（ｘ）を設定し、差関数Ｆi（ｘ）に基づき差分パラメータｋiを求めることを特徴とするプログラム。
【請求項５】
請求項４において、
前記差分パラメータ演算手段は、
前記差関数Ｆi（ｘ）を、第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差として与えられる関数として設定し、当該差関数Ｆi（ｘ）の係数の値に基づき差分パラメータｋiを求めることを特徴とするプログラム。
【請求項６】
請求項４において、
前記差分パラメータ演算手段は、
前記差関数Ｆi（ｘ）を、第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差として与えられる関数として設定し、当該差関数Ｆi（ｘ）の積分値を求め、求めた積分値に基づき差分パラメータｋiを求めることを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記キーデータ選択手段は、
差分パラメータに基づき、しきい値を決定し、
前記差分パラメータｋiと当該しきい値を比較して、比較結果に基づきキーデータとなるサンプリングデータを選択することを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記キーデータ選択手段は、
所定のしきい値と前記差分パラメータｋiとを比較して、比較結果に基づきキーデータとなるサンプリングデータを選択することを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記各補間関数Ｓi（ｘ）をスプライン関数で設定することを特徴とするプログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至９のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
複数のサンプリングデータｙiのなかからキーデータを選択するためのデータ圧縮システムであって、
サンプリングデータｙiの各データ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算手段と、
ｙiとからｙi+1の間を補間するための補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算手段と、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択手段と、
を含むことを特徴とするデータ圧縮システム。
【請求項１２】
請求項１１において、
前記差分パラメータ演算手段は、
ｙi-1からｙiの間を補間するための第１の補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための第２の補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めることを特徴とするデータ圧縮システム。
【請求項１３】
複数のサンプリングデータｙiのなかからキーデータを選択する処理をコンピュータに実行させるためのコンピュータの制御方法であって、
サンプリングデータｙiの各データ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算ステップと、
ｙiとからｙi+1の間を補間するための補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算ステップと、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択ステップと、
を含むことを特徴とするコンピュータの制御方法。
【請求項１４】
請求項１３において、
前記差分パラメータステップは、
ｙi-1からｙiの間を補間するための第１の補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための第２の補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めることを特徴とするコンピュータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、データ圧縮システム及びコンピュータの制御方法に関する。
【背景技術】
【０００２】
従来から、サンプリングデータからキーフレーム（キーデータ）となるデータを選択して記憶させ、再現時にはキーフレーム間をスプライン関数で補間するキーフレーム補間によるデータ圧縮が行われている。このようにすると、サンプリングデータをすべてベタのデータとしてもつ場合よりも記憶データ量を少なくすることができる。
【０００３】
ここでキーフレームデータからサンプリングデータの再現する際の精度を高めるためには、サンプリングデータのどの点をキーフレームとなるデータとして選択するかが重要なポイントとなる。
【０００４】
しかし、近似精度を高めるキーフレームデータの選定に関しては、定まった手法は存在せず、手作業で試行錯誤して行われていたため、手間がかかりコストが増加した。
【０００５】
そこで、本願発明者は近似精度の高いキーデータの選定を自動的に行う手法を開発している。
【特許文献１】特開２０００−１０６５２９号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献では、差分商によってキーフレームデータを選定する手法が開示されており、上記手法によれば、キーフレーム選定の自動化をはかることができる。
【０００７】
しかしデータがノイズを含んでいる、もしくは不連続性を有している場合には、微分や差分商はノイズや不連続性を増幅させる性質がある。例えばモーションキャプチャ等で取得されたデータには実際にはノイズが入っているので、かかるデータをサンプリングデータとする場合には、上記手法では肝心のキーフレームを見失ってしまうという問題点があった。
【０００８】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、キーデータの選定の自動化が可能でノイズにつよいプログラム、情報記憶媒体、データ圧縮システム及びコンピュータの制御方法を提供することである。
【課題を解決するための手段】
【０００９】
（１）本発明は、複数のサンプリングデータｙiのなかからキーデータを選択するためのプログラムであって、
サンプリングデータｙiとｙi+1のデータ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算手段と、
前記補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算手段と、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択手段と、
してコンピュータを機能させることを特徴とする。
【００１０】
また本発明は、上記各手段を含むデータ圧縮システムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１１】
ここにおいてサンプリングデータｙi（ｉ＝０，１，２、・・・）とは離散データである。ｙiは例えば、時刻ｔiにおけるサンプリングデータでもよいし、位置等の他の要因に関するサンプリングデータでもよい。
【００１２】
キーデータとは、間引きデータ圧縮を行う際にまびかないデータのことであり、圧縮されたデータを復元する場合には、キーデータに基づき、補間曲線の情報等を用いて間引いたデータを復元する。
【００１３】
例えばサンプリングデータはモーションキャプチャシステムにより取得されたデータでもよい。この場合、キーデータは、キーフレームデータとなる。
【００１４】
本発明によれば、ベタのサンプリングデータ間（本来ならデータのない区間）についてあえて補間関数を考えて、ｙiとｙi+1間の補間関数Ｓi（ｘ）を求め、Ｓi（ｘ）に基づきｙiに対応した差分パラメータｋiを求める。そしてｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択することができるため、サンプリングデータからキーデータを選択する作業を自動化することができる。
【００１５】
（２）本発明の前記差分パラメータ演算手段は、
補間関数Ｓi（ｘ）の係数の値に基づき差分パラメータｋiを求めることを特徴とする。
【００１６】
例えば補間関数をｎ次スプライン関数で与える場合、補間関数は、Ｓi（ｘ）＝ａni（ｘ−ｘi）n＋・・・＋ａ1i（ｘ−ｘi）＋ａ0iで与えられるため最高次の係数ａniに基づき差分パラメータｋiを求めるようにしてもよい。
【００１７】
（３）本発明の前記差分パラメータ演算手段は、
ｙi-1からｙiの間を補間するための第１の補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための第２の補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めることを特徴とする。
【００１８】
本発明によれば、ベタのサンプリングデータ間（本来ならデータのない区間）についてあえて補間関数を考えて、ｙiの前後の第１の補間関数Ｓi（ｘ）と第２のＳi+1（ｘ）に基づきｙiのに対応した差分パラメータｋiを求める。そしてｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択することができるため、サンプリングデータからキーデータを選択する作業を自動化することができる。
【００１９】
（４）本発明の前記差分パラメータ演算手段は、
第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）に基づき差関数Ｆi（ｘ）を設定し、差関数Ｆi（ｘ）に基づき差分パラメータｋiを求めることを特徴とする。
【００２０】
ここにおいて差関数Ｆi（ｘ）は、第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差に基づき設定されるものでも良いし、下記のような関数として設定されるものでもよい。
【００２１】
【数３】
2005190390.tif 000003
【００２２】
（５）本発明の前記差分パラメータ演算手段は、
前記差関数Ｆi（ｘ）を、第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差として与えられる関数として設定し、当該差関数Ｆi（ｘ）の係数の値に基づき差分パラメータｋiを求めることを特徴とする。
【００２３】
例えばｎ次スプライン関数の場合、差関数はＦi（ｘ）＝ｌi（ｘ−ｘi）nで与えられるのでｌiに基づき差分パラメータｋiを求めるようにしてもよい。
【００２４】
（６）本発明の前記差分パラメータ演算手段は、
前記差関数Ｆi（ｘ）を、第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差として与えられる関数として設定し、当該差関数Ｆi（ｘ）の積分値を求め、求めた積分値に基づき差分パラメータｋiを求めることを特徴とする。
【００２５】
例えばｘi、ｘi+1によって定まる小区間における関数Ｓi（ｘ）と関数Ｓi+1（ｘ）によって定まる領域の面積に基づき差分パラメータｋiを求めるようにしてもよい。
【００２６】
ここにおいて差関数Ｆi（ｘ）は、第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差に基づき設定されるものでも良いし、下記のような関数として設定されるものでもよい。
【００２７】
【数３】
2005190390.tif 000004
【００２８】
（７）本発明の前記キーデータ選択手段は、
差分パラメータに基づき、しきい値を決定し、
前記差分パラメータｋiと当該しきい値を比較して、比較結果に基づきキーデータとなるサンプリングデータを選択することを特徴とする。
【００２９】
（８）本発明の前記キーデータ選択手段は、
所定のしきい値と前記差分パラメータｋiとを比較して、比較結果に基づきキーデータとなるサンプリングデータを選択することを特徴とする。
【００３０】
（９）本発明は前記各補間関数Ｓi（ｘ）をスプライン関数で設定することを特徴とする。
【００３１】
実用上は３次スプライン関数であることが多い。
【００３２】
（１０）本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記いずれかのプログラムを記憶したことを特徴とする。
【００３３】
（１１）本発明は、複数のサンプリングデータｙi（ｉ＝０，１、２、・・・）のなかからキーデータを選択するためのデータ圧縮システムであって、
サンプリングデータｙiの各データ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算手段と、
ｙiとからｙi+1の間を補間するための補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算手段と、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択手段と、
を含むことを特徴とする。
【００３４】
（１２）本発明のデータ圧縮システムは、
前記差分パラメータ演算手段が、
ｙi-1からｙiの間を補間するための第１の補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための第２の補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めることを特徴とする。
【００３５】
（１３）本発明は、複数のサンプリングデータｙi（ｉ＝０，１、２、・・・）のなかからキーデータを選択する処理をコンピュータに実行させるためのコンピュータの制御方法であって、
サンプリングデータｙiの各データ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算ステップと、
ｙiとからｙi+1の間を補間するための補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算ステップと、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択ステップと、
を含むことを特徴とする。
【００３６】
（１４）本発明のコンピュータの制御方法は、
前記差分パラメータステップが、
ｙi-1からｙiの間を補間するための第１の補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための第２の補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めることを特徴とする。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３８】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３９】
図１は、所定の間隔でサンプリングされた離散データ（サンプリングデータ）を示している。
【００４０】
ここでサンプリングデータが例えばモーションデータとしてモーションキャプチャ等により１／６０秒ごとにサンプリングされた、関節の回転角等のデータである場合を例にとり説明する。
【００４１】
ｙ0，ｙ1，ｙ2、・・・は、時刻ｔ（ｔ＝ｘ0，ｘ2，ｘ3、・・・）において取得されたサンプリングデータ（モーションデータ）である。
【００４２】
ここですべてのデータｙ0，ｙ1，ｙ2、・・・をベタのモーションデータとして記憶させるとデータ量が膨大となるため、キーフレームとなるデータと補間関数に関する情報のみを圧縮データとして記憶させる。そしてこのキーフレームデータと補間関数に基づき、キーフレーム間のデータを復元することにより、モーションを再現することができる。
【００４３】
本実施の形態では、かかるキーフレームデータの選定を以下に説明する手法により自動的に行うことができる。
【００４４】
まずベタデータであるｙ0，ｙ1，ｙ2、・・・の各データ間を補間するための補間関数Ｓ0（ｘ）、Ｓ1（ｘ），Ｓ2（ｘ）、・・の情報を求める。
【００４５】
Ｓi（ｘ）はフレームｘiからその次のフレームｘi+1までの小区間における補間関数である。
【００４６】
そして前記補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める。
【００４７】
例えば補間関数が３次のスプライン関数である場合には、補間関数は以下の式で与えられる。
【００４８】
Ｓi（ｔ）＝ａi（ｘ−ｘi）3＋ｂi（ｘ−ｘi）2＋ｃi（ｘ−ｘi）＋ｄi
そしてすべて小区間における補間関数を求め、そのａi値をｙiに対応した差分パラメータｋiとし、差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断するようにしてもよい。
【００４９】
図２（Ａ）（Ｂ）は、本実施の形態の差関数について説明するための図である。
【００５０】
図２（Ａ）に示すように、区間［ｘi-1、ｘi）をＴiー1、区間［ｘi、ｘi+1）をＴiとする。そして区間Ｔiー1において、ｙi-1、ｙiを補間するための関数をＳi-1（ｘ）、区間Ｔiにおいて、ｙi、ｙi+1を補間するための関数をＳi（ｘ）とする。
【００５１】
図２（Ｂ）は、区間Ｔiにおける補間関数Ｓi-1（ｘ）と補間関数Ｓi（ｘ）の関係について説明するための図である。
【００５２】
本実施の形態では、区間Ｔi-1における補間関数Ｓi-1（ｘ）の区間Ｔiにおける軌跡１０を考える。また区間Ｔiにおける補間関数Ｓi（ｘ）の区間Ｔiにおける軌跡３０を考えると。ここで、軌跡３０（区間Ｔiにおける補間関数Ｓi（ｘ））は軌跡１０（区間Ｔiにおける補間関数Ｓi-1（ｘ））に所定の差関数Ｆi（軌跡２０）を加えて得られるとすると以下の式が成り立つ。
【００５３】
Ｓi（ｘ）−Ｓi-1（ｘ）＝Ｆi（ｘ）
本実施の形態では差関数Ｆi（ｘ）に基づき差分パラメータｋiを決定することもできる。そして差分パラメータｋiに基づきｙiをキーフレームデータとして選択するかいなか決定するようにしてもよい。
【００５４】
例えば第１の補間関数Ｓiー1（ｘ）と第２の補間関数ｓi（ｘ）の差である差関数Ｆi（ｘ）の係数の値に基づき差分パラメータを求めるようにしてもよい。
【００５５】
サンプリングデータ間の補間関数としてｍ次スプライン関数を用いる場合を例にとり説明する。
【００５６】
ここでｍ次スプライン関数とは小区間［ｘj，ｘj+1），ｊ＝０，…Ｎ−１，上で、別々に定義されたｍ次多項式を、節点でｍ−１階までの微分係数の値が一致するように互いにつなぎ会わせた“区分的”解析関数（多項式）である。
【００５７】
図３は節点（ｘj，ｙj）が１つしかない３次のスプライン関数Ｓi、Ｓi+1を示している。
【００５８】
３次のスプライン関数Ｓは、分点ｘjの両側で、各々別の３次多項式ｓj-1，ｓjで表され、節点（ｘj，ｙj）点上で、２回連続微分可能（２階導関数が連続という意味の慣用句。Ｃ2級であるともいう）である。
【００５９】
ここでスプライン関数の定義から以下の式が成り立つ。
【００６０】
【数１】
2005190390.tif 000005
【００６１】
これから以下の式が成り立つ。
【００６２】
【数２】
2005190390.tif 000006
【００６３】
ここで、ｃjは適当な定数である。
【００６４】
本実施の形態では、各区間Ｔｉ（区間［ｘi-1、ｘi）、ｉ＝０，１，２、・・）について対応するｃiを演算し、これを差分パラメータとして用いてサンプリングデータｙiをキーフレームデータとして選択するか否か判断する。
【００６５】
図４（Ａ）（Ｂ）は、本実施の形態における差分パラメータに基づくキーフレームデータの抽出の一例について説明するための図である。
【００６６】
図４（Ａ）は、各点ｉにおけるサンプリングデータｙiと対応するａiの表であり、図４（Ｂ）は、各点ｉにおけるサンプリングデータｙiと対応するａiのグラフである。
【００６７】
ａiは（ｉ＝２，３，４、・・・・）は区間Ｔi（ｉ＝２，３，４、・・・・）におけるＳi（ｔ）＝ａi（ｘ−ｘi）3＋ｂi（ｘ−ｘi）2＋ｃi（ｘ−ｘi）＋ｄiで与えられる補間関数（ｘ−ｘi）3の係数である。
【００６８】
本実施の形態では｜ａi｜が大きいほど寄与度が大きい（キーフレームとして選択する価値が大きい）と考え、｜ａi｜を差分パラメータとして対応するｙiをキーフレームとするか否か判断する。
【００６９】
差分パラメータａiに基づき、しきい値εを決定し、前記差分パラメータａiと当該しきい値εを比較して、比較結果に基づきキーフレームとなるサンプリングデータを選択するようにしてもよい。
【００７０】
例えばａiを加算平均して所定の係数を乗じたものをしきい値εとして決定するようにしてもよい。
【００７１】
ここでしきい値ε＝ε1（ε1＝０．１）と設定した場合には、例えば｜ａi｜≧｜ε1｜となるａiを抽出して、対応するｙｉをキーフレームデータとするようにしてもよい。この場合、ａ1、ａ7、ａ8，ａ9、ａ10、ａ11、ａ12、ａ14、ａ15、ａ16が抽出され、これに対応するサンプリングデータｙ1、ｙ7、ｙ8，ｙ9、ｙ10、ｙ11、ｙ12、ｙ14、ｙ15、ｙ16がキーフレームデータとして選択される。
【００７２】
またしきい値ε＝ε2（ε2＝０．２）と設定した場合には、例えば｜ａi｜≧｜ε2｜となるａiを抽出して、対応するｙiをキーフレームデータとするようにしてもよい。この場合、ａ7、ａ8，ａ9、ａ10、ａ11、ａ15、ａ16が抽出され、これに対応するサンプリングデータｙ7、ｙ8，ｙ9、ｙ10、ｙ11、ｙ15、ｙ16がキーフレームデータとして選択される。
【００７３】
なおａiの値の値を用いてしきい値を決定するのではなく、予め用意されている所定の値を用いるようにしてもよい。
【００７４】
図５は、本実施の形態の差分パラメータの他の例について説明するための図である。
【００７５】
時刻ｘiから時刻ｘi+1の区間Ｔiにおける関数ｓi（ｘ）と関数ｓi-1（ｘ）に決定される領域の面積Ｍiに基づき差分パラメータを求めるようにしてもよい。ここでは前記面積Ｍiは関数ｓi（ｘ）と関数ｓi-1（ｘ）と関数ｘ＝ｘi+1によって囲まれた領域の面積（時刻が不等間隔であれば、何らかの正規化を行うものとする）となっている。
【００７６】
このように各サンプリングデータｙiについて関数ｓi（ｘ）と関数ｓi-1（ｘ）とｘ＝ｘi+1によって囲まれる面積Ｍiを演算し、面積Ｍiを差分パラメータとして、面積Ｍiが所定の条件を満たすときに対応するｙiをキーフレームデータとして選択するようにしてもよい。
【００７７】
本発明は、コンピュータ・システム上のプログラムにより、サンプリング・データの圧縮装置等として実現されている。
【００７８】
本発明を、サンプリング・データの例として、モーション・キャプション・データを用いた場合において、詳しく説明する。
【００７９】
図６は、モーション・キャプション・データを収集して、そのデータを圧縮するシステムの構成例である。
【００８０】
図６において、システムは、処理部１１０、記憶部１２０、情報記憶媒体１３０、表示部１４０，入力部１５０、通信部１６０、モーションデータ取得部１７０等を含む。
【００８１】
記憶部１２０は、処理部１１０や通信部１６０などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００８２】
情報記憶媒体１３０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。
【００８３】
処理部１００は、この情報記憶媒体１３０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１３０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００８４】
表示部１４０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００８５】
通信部１６０は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００８６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１６０を介して情報記憶媒体１３０（記憶部１２０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００８７】
処理部１００（プロセッサ）は、入力部１５０からの入力データ等やプログラムなどに基づいて、各種の処理を行う。処理部１００は記憶部１２０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）やＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００８８】
処理部１００では、複数のサンプリングデータｙiのなかからキーデータを選択するためのプログラムが実行され、サンプリングデータｙiとｙi+1のデータ間を、補間するための補間関数Ｓi（ｘ）の情報を求める補間関数演算手段と、
前記補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求める差分パラメータ演算手段と、
ｙiに対応した差分パラメータｋiに基づき、ｙiをキーデータとして選択するか否か判断してキーデータを選択するキーデータ選択手段として機能する。
【００８９】
ここで補間関数Ｓi（ｘ）の係数の値に基づき差分パラメータｋiを求めるようにしてもよい。
【００９０】
またｙi-1からｙiの間を補間するための補間関数Ｓiー1（ｘ）と、ｙiとｙi+1の間を補間するための補間関数Ｓi（ｘ）に基づき、サンプリングデータｙiに対応した差分パラメータｋiを求めるようにしてもよい。
【００９１】
また第１の補間関数Ｓiー1（ｘ）と第２の補間関数Ｓi（ｘ）の差である差関数Ｆi（ｘ）の係数の値に基づき差分パラメータｋiを求めるようにしてもよい。
【００９２】
また差分パラメータに基づき、しきい値を決定し、前記差分パラメータｋiと当該しきい値を比較して、比較結果に基づきキーデータとなるサンプリングデータを選択するようにしてもよい。
【００９３】
また所定のしきい値と前記差分パラメータｋiとを比較して、比較結果に基づきキーデータとなるサンプリングデータを選択するようにしてもよい。
【００９４】
またｘi、ｘi+1によって定まる小区間における関数ｓi（ｘ）と関数ｓi+1（ｘ）によって定まる領域の面積に基づき差分パラメータｋiを求めるようにしてもよい。
【００９５】
モーションデータ取得部１７０は、例えば人間の動きを表すデータを収集するためのシステムであるモーション・キャプチャ・システム等を用いる。
【００９６】
図７は、本実施の形態の処理の流れについて説明するためのフローチャート図である。
【００９７】
まず、システム１００は、モーションデータ取得部１７０からモーションデータを収集して記憶部１２０等に記憶する（ステップＳ１０）。モーションデータ取得部１７０がモーションキャプチャシステム等を介して取得するモーションデータは、例えば、人間の顔、肩、鎖骨、胸、腕、手、腰、もも、膝、足の各部位の実際の動きを、人間に取り付けたセンサ等により関節に対する３軸の回転運動として収集し、全体の動きを中心のｘ，ｙ，ｚの座標として収集する。中心の座標と、各関節の接続関係により関節の回転運動で各部の動きが決定されると、全体の動きが再現できる。これらの動きのデータは、例えば１／３０秒や１／６０秒ごとに、モーションデータとしてサンプリングされ、本実施の形態のサンプリングデータとなる。このように多数の部位のデータを長時間収集すると、全体では相当多量のデータとなる。
【００９８】
次に収集された各モーションデータｙi（サンプリングデータ）間を補間する補間関数Ｓiを求める（ステップＳ２０）。ここで補間関数Ｓiは３次スプライン関数として与えても良い。
【００９９】
次に補間関数Ｓiの係数に基づき各モーションデータｙiに対応する差分パラメータｋiを求める（ステップＳ３０）。補間関数Ｓiを３次スプライン関数として与えた場合には、Ｓi（ｔ）＝ａi（ｘ−ｘi）3＋ｂi（ｘ−ｘi）2＋ｃi（ｘ−ｘi）＋ｄiとなるので、（ｘ−ｘi）3の係数であるａiを差分パラメータｋiとしてもよい。
【０１００】
次に差分パラメータｋiに基づきしきい値εを設定する（ステップＳ４０）。
【０１０１】
次に、最初の差分パラメータを設定する（ステップＳ５０）。差分パラメータにとしきい値εと比較し（ステップＳ７０）、しきい値εより大きくなった差分パラメータに対応するモーションデータをキーフレームデータとする（ステップＳ８０）。これを差分パラメータがなくなるまで順次行う（ステップＳ９０）。このキーフレームデータ決定の処理は、各部位、各座標独立に処理する。
【０１０２】
本実施の形態によればこのようにしてサンプリングデータからキーフレームデータを自動的に選択することができるので、キーフレーム選択に伴う手作業や試行錯誤による手間を省くことが可能になる。
【０１０３】
またこのように圧縮して格納してあるデータから、元のモーションデータを復元するためには、格納してあるモーションデータのキーデータを通過するスプライン関数を求めて、このスプライン関数より元のサンプリングされたデータを復元する。
【０１０４】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１０５】
例えば本実施の形態では、係数ａiについて｛ａi｝ｉ＝０、・・、ｎの値からしきい値を求め、このしきい値以上のａiを持つフレームを選択する場合を例にとり説明したがこれに限られない。
【０１０６】
例えば｛ａi｝ｉ＝０、・・、ｎの部分集合｛ａi｝ｉ＝０、・・、ｍを定め、元データとの誤差を求め、誤差が最小（極小）になるまで繰り返し、部分集合を更新する。ここにおいて誤差は定められた誤差関数を減少させる方向で係数｛ａi｝ｉ＝０、・・、ｎの部分集合｛ａi｝ｉ＝０、・・、ｍを繰り返し更新し、やがて最適な解を表現する平衡状態に落ち着くように構成する。このときニューラルネット、ボルツマンマシンにおけるsimulated annealing法、あるいは遺伝的アルゴリズムなどのよく知られた技術を使うことができる。
【０１０７】
なお誤差関数は例えば以下のようなものを使用することができる。
【０１０８】
【数３】
2005190390.tif 000007
【図面の簡単な説明】
【０１０９】
【図１】所定の間隔でサンプリングされた離散データ（サンプリングデータ）を示している。
【図２】図２（Ａ）（Ｂ）は、本実施の形態の差関数について説明するための図である。
【図３】図３は節点（ｘj，ｙj）が１つしかない３次のスプライン関数Ｓi、Ｓi+1を示している。
【図４】図４（Ａ）（Ｂ）は、本実施の形態における差分パラメータに基づくキーフレームデータの抽出の一例について説明するための図である。
【図５】本実施の形態の差分パラメータの他の例について説明するための図である。
【図６】モーション・キャプション・データを収集して、そのデータを圧縮するシステムの構成例である。
【図７】本実施の形態の処理の流れについて説明するためのフローチャート図である。
【符号の説明】
【０１１０】
１１０  処理部
１２０  記憶部
１３０  情報記憶媒体
１４０  表示部
１５０  入力部
１６０  通信部
１７０  モーションデータ取得部
【図１】
2005190390.tif 000008
【図２】
2005190390.tif 000009
【図３】
2005190390.tif 000010
【図４】
2005190390.tif 000011
【図５】
2005190390.tif 000012
【図６】
2005190390.tif 000013
【図７】
2005190390.tif 000014