一実施形態は、様々なハプティック変換アルゴリズム(「効果」とも識別される)を動的に関連付けるか、または変化させることによってオーディオ信号などの入力信号のハプティック信号への変換を行うシステムであり、1つの効果の出力信号は別の効果の入力信号としての機能を果たす。このように、このシステムはランタイムにて任意の順序に効果のセットを順序付けることができ、効果のセットは、効果のセットの作成の後で作成される効果を含むように拡張可能である。効果を生成し、利用することによって、このシステムは、任意のハプティック変換アルゴリズムを集合的に作成できるランタイムにて効果のリストを動的に作成できる。
別の実施形態において、このシステムは、入力信号の最小および最大の大きさ値に基づいて入力信号の一部を定義する範囲(「ウインドウ」とも識別される)を動的に作成し、アップデートすることによって、および「ウインドウの範囲内」にある入力信号の一部をスケーリングすることによって入力信号のハプティック信号への変換を行う。「ウインドウの範囲内」にない入力信号の一部はシステムによってスケールされない。一実施形態において、ウインドウは最小大きさ値以上および最大値以下の範囲の大きさ値を含む。最小大きさ値以上および最大値以下の大きさ値を含む入力信号の一部はウインドウの範囲内にある。最小大きさ値未満または最大大きさ値超である大きさ値を含む入力信号の一部はウインドウの範囲内にない。さらに、このシステムは最小および最大の大きさ値を頻繁にアップデートでき、アップデートされた最小および最大の大きさ値に基づいてウインドウをさらにアップデートできる。このように、ウインドウは動的ウインドウであり得る。
さらに、別の実施形態において、このシステムは、ハプティック信号を動的に圧縮でき、動的に圧縮されたハプティック信号をハプティック出力装置にストリーミングできる。ハプティック信号を動的に圧縮することによって、このシステムは、システムとクライアントとの間の往復時間、ハプティック信号の1つ以上の特性、またはこれらの組合せに基づいて圧縮アルゴリズムを選択できる。このように、このシステムは、多くの異なるシナリオについてハプティック信号を効果的に圧縮し、ストリーミングできる。さらに、ハプティック信号をストリーミングすることによって、このシステムはハプティック信号を遠隔装置に送信または伝送できる。
図1は、本発明の一実施形態に係るシステム10のブロック図を示す。一実施形態において、システム10はデバイスの一部(例えば、モバイル機器またはウェアラブルデバイス)であり、システム10はデバイスのための動的ハプティック変換機能を提供する。ウェアラブルデバイスの例としては、リストバンド、ヘッドバンド、眼鏡、リング、レッグバンド、衣服に取り付けられるアレイ、またはユーザが身体に装着できるもしくはユーザにより保持され得る任意の他の種類のデバイスが挙げられる。一部のウェアラブルデバイスは「ハプティック動作可能」であり得、それらがハプティック効果を生成するための機構を備えることを意味する。別の実施形態において、システム10は、デバイス(例えばモバイル機器またはウェアラブルデバイス)から分離され、デバイスのための上述の機能をリモートで提供する。単一のシステムとして示されるが、システム10の機能は分散システムとして実装されてもよい。システム10は、情報を通信するためのバス12または他の通信機構、および情報を処理するためのバス12に連結されるプロセッサ22を含む。プロセッサ22は汎用または特定目的のプロセッサのいずれの種類であってもよい。システム10はさらに、情報を記憶するためのメモリ14およびプロセッサ22により実行される命令を含む。メモリ14は、ランダムアクセスメモリ(「RAM」)、リードオンリメモリ(「ROM」)、磁気ディスクもしくは光ディスクなどの静的記憶デバイス、または任意の他の種類のコンピュータ可読媒体の任意の組み合わせから構成されてもよい。
コンピュータ可読媒体は、プロセッサ22によりアクセスされ得る任意の利用可能な媒体であってもよく、揮発性媒体および非揮発性媒体の両方、リムーバルおよびノンリムーバル媒体、通信媒体、ならびに記憶媒体を含んでもよい。通信媒体は、搬送波または他の搬送機構などの変調データ信号内にコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを含んでもよく、当該技術分野において公知の任意の他の形態の情報送信媒体を含んでもよい。記憶媒体は、RAM、フラッシュメモリ、ROM、消去可能プログラマブルリードオンリメモリ(「EPROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、レジスタ、ハードディスク、リムーバルディスク、コンパクトディスクリードオンリメモリ(「CD−ROM」)、または当該技術分野において公知の任意の他の形態の記憶媒体を含んでもよい。
一実施形態において、メモリ14は、プロセッサ22により実行される場合、機能性を提供するソフトウェアモジュールを記憶する。モジュールは、システム10のためのオペレーティングシステム機能を提供するオペレーティングシステム15、ならびに一実施形態におけるモバイル機器の残りを含む。モジュールはさらに、以下により詳細に開示されるように入力信号をハプティック信号に動的に変換する動的ハプティック変換モジュール16を含む。特定の実施形態において、動的ハプティック変換モジュール16は複数のモジュールを含んでもよく、各々のモジュールは入力信号をハプティック信号に動的に変換するための特定の個々の機能を提供する。システム10は典型的に、Immersion CorporationによるIntegrator(商標)ソフトウェアなどの追加の機能を含むように1つ以上の追加のアプリケーションモジュール18を含む。
リモートソースからデータを送信および/または受信する実施形態において、システム10はさらに、赤外線、無線、Wi−Fi、またはセルラーネットワーク通信などの移動無線ネットワーク通信を提供するために、ネットワークインターフェースカードなどの通信デバイス20を含む。他の実施形態において、通信デバイス20は、イーサネット(登録商標)接続またはモデムなどの有線ネットワーク接続を提供する。
プロセッサ22はさらに、バス12を介して、グラフィック表現を表示するための液晶ディスプレイ(「LCD」)などのディスプレイ24またはユーザに対するユーザインターフェースに接続される。ディスプレイ24は、プロセッサ22から信号を送信し、受信するように構成される、タッチスクリーンなどのタッチセンサ入力デバイスであってもよく、マルチタッチのタッチスクリーンであってもよい。
一実施形態において、システム10はさらに、アクチュエータ26を含む。プロセッサ22は、生成されたハプティック効果に関連するハプティック信号をアクチュエータ26に送信してもよく、次いで振動触覚ハプティック効果、静電摩擦ハプティック効果または変形ハプティック効果などのハプティック効果を出力する。アクチュエータ26はアクチュエータ駆動回路を含む。アクチュエータ26は、例えば、電気モータ、電磁気アクチュエータ、音声コイル、形状記憶合金、ソレノイド、偏心回転体モータ(「ERM」)、線形共鳴アクチュエータ(「LRA」)、圧電アクチュエータ、高帯域アクチュエータ、電気活性ポリマー(「EAP」)アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生器であってもよい。代替の実施形態において、システム10は、アクチュエータ26に加えて1つ以上の追加のアクチュエータを含んでもよい(図1に示さず)。アクチュエータ26はハプティック出力装置の一例であり、ハプティック出力装置は、駆動信号に応答して振動触覚ハプティック効果、静電摩擦ハプティック効果または変形ハプティック効果などのハプティック効果を出力するように構成されるデバイスである。代替の実施形態において、アクチュエータ26は一部の他の種類のハプティック出力装置により置き換えられてもよい。さらに、他の代替の実施形態において、システム10はアクチュエータ26を含まなくてもよく、システム10とは別個のデバイスが、ハプティック効果を生成するアクチュエータまたは他のハプティック出力装置を含み、システム10は、生成されたハプティック信号を、通信デバイス20を介して、そのデバイスに送信する。
一実施形態において、システム10はさらに、スピーカ28を含む。プロセッサ22はオーディオ信号をスピーカ28に送信でき、次にオーディオ効果を出力する。スピーカ28は、例えば、ダイナミックラウドスピーカ、動電型スピーカ、圧電ラウドスピーカ、磁気歪みラウドスピーカ、静電ラウドスピーカ、リボンおよび平面磁気ラウドスピーカ、屈曲波ラウドスピーカ、平面パネルラウドスピーカ、ハイルエアモーショントランスデューサ(heil air motion transducer)、プラズマアークスピーカおよびデジタルラウドスピーカであってもよい。代替の実施形態において、システム10はスピーカ28に加えて1つまたは複数のさらなるスピーカを含んでもよい(図1に示さず)。さらに、他の代替の実施形態において、システム10はスピーカ28を含まなくてもよく、システム10とは別のデバイスが、オーディオ効果を出力するスピーカを含み、システム10は通信デバイス20を介してオーディオ信号をそのデバイスに送信する。
一実施形態において、システム10はさらにセンサ30を含む。センサ30は、エネルギーの形態、または限定されないが、音、運動、加速度、生体信号、距離、流量、力/圧力/歪/屈曲、湿度、線形位置、配向/傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、または可視光強度などの他の物理特性を検出するように構成されてもよい。センサ30はさらに、検出されたエネルギーまたは他の物理特性を、電気信号または仮想センサ情報を表す任意の信号に変換するように構成されてもよい。センサ30は、限定されないが、加速度計、心電図、脳電図、筋電図、眼電図、電子口蓋図(electropalatograph)、電気皮膚反応センサ、容量センサ、ホール効果センサ、赤外線センサ、超音波センサ、圧力センサ、光ファイバセンサ、屈曲センサ(flexion sensor)(または屈曲センサ(bend sensor))、力感応抵抗器、ロードセル、LuSense CPS2155、小型圧力トランスデューサ、圧電センサ、歪みゲージ、湿度計、線形位置タッチセンサ、線形電位差計(またはスライダ)、線形可変差動変圧器、コンパス、傾斜計、磁性タグ(または無線周波数識別タグ)、回転エンコーダ、回転式ポテンショメータ、ジャイロスコープ、オン・オフスイッチ、温度センサ(例えば温度計、熱電対、抵抗温度検出器、サーミスタ、または温度変換集積回路)、マイクロフォン、光度計、高度計、温度計、生物学的モニター、カメラまたは光依存性抵抗器などの任意のデバイスであってもよい。代替の実施形態において、システム10は、センサ30に加えて、1つ以上のさらなるセンサ(図1に示さず)を含んでもよい。これらの実施形態の一部において、センサ30および1つ以上の追加のセンサはセンサアレイの一部であってもよく、またはセンサの収集の一部の他の種類であってもよい。さらに、他の代替の実施形態において、システム10はセンサ30を含まなくてもよく、システム10とは別個のデバイスがエネルギーの形態または他の物理特性を検出するセンサを含み、検出されたエネルギーまたは他の物理特性を仮想センサ情報を表す電気信号または他の種類の信号に変換する。デバイスは次いで、変換された信号を通信デバイス20を介してシステム10に送信する。
一実施形態において、以前に記載されているように、システムは、様々なハプティック変換アルゴリズム(すなわち効果)を動的に関連付け、または連鎖させることによって、オーディオ信号などの入力信号の、ハプティック信号への変換を実施できる。より具体的には、実施形態によれば、システムは、ランタイムで生成され得る1つまたは複数の効果オブジェクトを関連付けるか、または連鎖できる。効果オブジェクトは、システムに入力などの信号を受信させ、入力信号を出力信号(ハプティック信号など)に変換するために入力信号に対してハプティック変換アルゴリズムを実施させ、出力信号を出力させることができる、1つまたは複数のコンピュータ可読命令を含み得るオブジェクト、またはモジュールである。システムのユーザは、どの効果オブジェクトがシステムに関連し、連鎖できるかを決定でき、効果オブジェクトの順序をさらに決定できる。例示した実施形態において、ユーザは、1つまたは複数の効果オブジェクトを選択し、効果オブジェクトの順序を選択するためにシステムのグラフィカルユーザインターフェースと相互作用できる。このような相互作用は、グラフィカルユーザインターフェース内に表示される1つまたは複数の「ラジオボタン」または「チェックボックス」を選択すること;1つまたは複数の効果オブジェクトを、グラフィカルユーザインターフェース内に表示されるパイプライン内に「ドラッグおよびドロップすること」、あるいは関連分野の当業者に公知であるグラフィカルユーザインターフェースとの任意の他の相互作用を含んでもよい。さらに、各ハプティック変換アルゴリズムは、リアルタイム(または準リアルタイム)で実施されてもよいか、またはオフライン(すなわち、元の入力信号の再生の前、または独立して)で実施されてもよい。
前もって、多くのハプティック変換アルゴリズムは固定された特定のプロセス連鎖を含んでいる。例えば、ハプティック変換アルゴリズムは、500Hz以下の全ての関連周波数を抽出する、500ヘルツ(「Hz」)カットオフで入力信号に適用されるローパスフィルタリングアルゴリズムなどのフィルタ変換アルゴリズム、続いて、フィルタ処理された入力信号に適用されるピーク検出変換アルゴリズムとして定義され得る。対照的に、一実施形態によれば、システムは、ランタイムにて任意の順序に効果のセットを順序付けることができ、効果のセットは、効果のセットを作成した後で作成される効果を含むように拡張できる。効果を生成し、利用することによって、システムは、任意のハプティック変換アルゴリズムを集合的に作成できるランタイムにて効果のリストを動的に作成できる。
一実施形態において、入力信号は、オーディオデータを含む、オーディオ信号、または他の種類のオーディオ入力であってもよい。代替の実施形態において、入力信号は、ビデオデータを含む、ビデオ信号、または他の種類のビデオ入力であってもよい。さらに別の代替の実施形態において、入力信号は、加速度データを含む、加速度信号、または他の種類の加速度入力であってもよい。さらに別の代替の実施形態において、入力信号は、ハプティックデータを含む、ハプティック信号、または他の種類のハプティック入力であってもよい。さらに別の代替の実施形態において、入力信号は、配向データを含む配向信号、周辺光データを含む周辺光信号、またはセンサによって検知され得る別の種類の信号であってもよい。さらに、他の代替の実施形態において、入力は入力信号ではないが、データを含む別の種類の入力である。
さらに、一実施形態において、効果は、入力信号をハプティック信号に変換するために関連分野の当業者に公知の任意のハプティック変換アルゴリズムであってもよい。例えば、効果は、入力信号の各部分について最大振幅値を識別し、識別された最大振幅値に基づいて入力信号の各部分についてハプティック信号を生成するピーク検出ハプティック変換アルゴリズムであってもよく、識別された最大振幅値はハプティック信号の大きさを定義する。別の例として、効果は、入力信号の一部(例えば、最も高い周波数値を有する入力信号の一部)をフィルタにより除去し、入力信号の残りの部分に基づいてハプティック信号を生成するローパスフィルタハプティック変換アルゴリズムであってもよい。さらに別の例として、効果は、入力信号の一部(例えば、最も低い周波数値を有する入力信号の一部)をフィルタにより除去し、入力信号の残りの部分に基づいてハプティック信号を生成するハイパスフィルタハプティック変換アルゴリズムであってもよい。さらに別の例として、効果は、入力信号の少なくとも一部のピッチをシフトし、ピッチシフト入力信号に基づいてハプティック信号を生成するピッチシフトハプティック変換アルゴリズムであってもよい。さらに別の例として、効果は、入力信号の少なくとも一部の周波数をシフトし、周波数シフト入力信号に基づいてハプティック信号を生成する周波数シフトハプティック変換アルゴリズムであってもよい。さらに別の例として、効果は、図3と併せて以下にさらにより詳細に記載される動的ウインドウハプティック変換アルゴリズムであってもよい。
例示的なハプティック変換アルゴリズムは、以下の特許または特許文献(それらの全てはその全体が本明細書に参照により組み込まれる)に記載される:米国特許第7,979,146号;米国特許第8,000,825号;米国特許第8,378,964号;米国特許出願公開第2011/0202155号;米国特許出願公開第2011/0215913号;米国特許出願公開第2012/0206246号;米国特許出願公開第2012/0206247号;米国特許出願公開第2013/0265286号;米国特許出願公開第2013/0131851号;米国特許出願公開第2013/0207917号;米国特許出願公開第2013/0335209号;米国特許出願公開第2014/0064516号;米国特許出願第13/661,140号;米国特許出願第13/785,166号;米国特許出願第13/788,487号;米国特許出願第14/078,438号;米国特許出願第14/078,442号;米国特許出願第14/078,445号;米国特許出願第14/051,933号;米国特許出願第14/020,461号;米国特許出願第14/020,502号;米国特許出願第14/246,817号;および米国特許出願第14/277,870号。
さらに、一実施形態によれば、ハプティック信号は1つまたは複数のハプティックパラメータを含んでもよく、ハプティックパラメータは、ハプティック効果を生成するために使用されるハプティック信号を定義できるパラメータであり、したがって、生成されるハプティック効果も定義できる。より具体的には、ハプティックパラメータは、大きさ、周波数、持続時間、振幅、強度、エンベロープ、密度または任意の他の種類の定量可能なハプティックパラメータなどのハプティック効果の質の量である。実施形態によれば、ハプティック効果は、少なくとも部分的に、ハプティック信号の1つまたは複数のハプティックパラメータによって定義されてもよく、1つまたは複数のハプティックパラメータはハプティック効果の特性を定義できる。ハプティックパラメータは数値を含んでもよく、数値はハプティック信号の特性を定義でき、したがって、ハプティック信号によって生成されるハプティック効果の特性も定義できる。ハプティックパラメータの例としては、振幅ハプティックパラメータ、周波数ハプティックパラメータ、持続時間ハプティックパラメータ、エンベロープハプティックパラメータ、密度ハプティックパラメータ、大きさハプティックパラメータおよび強度ハプティックパラメータが挙げられ得る。
一実施形態によれば、システムは、ハプティック信号を、アクチュエータなどのハプティック出力装置に送信できる。次いで、ハプティック出力装置は、システムにより送信されるハプティック信号に応答して、振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形可能なハプティック効果などの1つまたは複数のハプティック効果を出力できる。
図2は、本発明の一実施形態に係る、動的に関連付けられた効果の例を示す。動的に関連付けられた効果は任意の数の効果オブジェクトを含んでもよく、効果オブジェクトは規定の順序に従って、関連付けられるか、または連鎖され得る。例1は、システム(図1のシステム10など)によって生成され得る動的に関連付けられた効果を示し、動的に関連付けられた効果は、ピッチシフト効果オブジェクト201、ローパスフィルタ効果オブジェクト202およびピーク検出効果オブジェクト203を含む。ピッチシフト効果オブジェクト201は、ランタイムにて作成され、入力信号204を受信し、入力信号204を出力信号205に変換するために入力信号204に対してピッチシフトハプティック変換アルゴリズムを実施し、出力信号205をローパスフィルタ効果オブジェクト202に出力する効果オブジェクトである。ローパスフィルタ効果オブジェクト202は、ランタイムにて作成され、ピッチシフト効果オブジェクト201から出力信号205を受信し、出力信号205を出力信号206に変換するために出力信号205に対してローパスフィルタハプティック変換アルゴリズム(例えば、500Hzローパスフィルタハプティック変換アルゴリズム)を実施し、ピーク検出効果オブジェクト203に対して出力信号206を出力する効果オブジェクトである。ピーク検出効果オブジェクト203は、ランタイムにて作成され、ローパスフィルタ効果オブジェクト202から出力信号206を受信し、出力信号206を出力信号207(出力信号207はハプティック信号である)に変換するために出力信号206に対してピーク検出ハプティック変換アルゴリズムを実施し、出力信号207を出力する効果オブジェクトである。
一実施形態によれば、システムのユーザが出力信号207に満足していない場合、ユーザは、1つまたは複数の効果オブジェクトを動的に関連付けられた効果に追加でき、動的に関連付けられた効果から1つまたは複数の効果オブジェクトを除去でき、動的に関連付けられた効果の効果オブジェクトの順序を修正できるか、またはこれらの組合せであってもよい。ユーザは、コンピュータ可読命令を含む任意のオブジェクトまたはモジュールを再コンパイルせずにこれを達成できる。
例えば、例2は、例1に示される動的に関連付けられた効果と同様の動的に関連付けられた効果を示すが、ピーク検出効果オブジェクト203は除去されており、効果の順序は、ローパスフィルタ効果オブジェクト202がピッチシフト効果オブジェクト201の前であるように変更されている。実施形態によれば、ローパスフィルタ効果オブジェクト202は、入力信号204を受信し、入力信号204を出力信号208に変換するために入力信号204に対してローパスフィルタハプティック変換アルゴリズム(例えば、500Hzローパスフィルタハプティック変換アルゴリズム)を実施し、出力信号208をピッチシフト効果オブジェクト201に出力する。例2における出力信号208は、例1における出力信号206とは異なる。これは、例1において、ピッチシフトハプティック変換アルゴリズムが、入力信号204に最初に適用され、続いて、ローパスフィルタハプティック変換アルゴリズムが出力信号205に適用されたからである。対照的に、例2において、ローパスフィルタハプティック変換アルゴリズムのみが入力信号204に適用される。
さらに、ピッチシフト効果オブジェクト201は、出力信号208を受信し、出力信号208を出力信号209(出力信号209はハプティック信号である)に変換するために出力信号208に対してピッチシフトハプティック変換アルゴリズムを実施し、出力信号209を出力する。例2における出力信号209は、例1における出力信号207とは異なる。これは、例1において、ピッチシフトハプティック変換アルゴリズムが入力信号204に最初に適用され、ローパスフィルタハプティック変換アルゴリズムが続いて出力信号205に適用され、ピーク検出ハプティック変換アルゴリズムが続いて出力信号207に適用されたからである。対照的に、例2において、ローパスフィルタハプティック変換アルゴリズムは入力信号204に最初に適用され、続いて、ピッチシフトハプティック変換アルゴリズムが出力信号208に適用される。
したがって、任意の数の効果が、入力オーディオ信号または入力ハプティック信号などの入力信号を、ハプティック信号などの出力信号に変換する目的のためにランタイムにてシステムによって適用されてもよい。したがって、例3は、N効果を含む動的に関連付けられた効果の一般的な例を示し、ここで、Nは任意の数であり得る(すなわち、効果210、220および230、効果220と230との間の楕円は任意の数の効果を表し得る)。したがって、例3において、効果210は、入力信号240を受信し、入力信号240を出力信号250に変換するために入力信号240に対してハプティック変換アルゴリズムを実施し、出力信号250を効果220に出力する。これは、効果230(すなわち第N番目の効果)が出力信号260を出力するまで、N効果を使用してN回実施され、出力信号260はハプティック信号である。
一実施形態において、システムが、ハプティック変換アルゴリズムが入力信号の再生の間に実行するのに十分大きいまたは十分複雑であることを決定する場合、システムはレンダリングオプションを提供できる。より具体的には、システムは、ハプティック変換アルゴリズムをオフラインで実施できる(すなわち、入力信号の再生の前、または独立して)。
以前に記載されているように、動的に関連付けられた効果は、入力信号、複数の効果および複数の効果によって生成される出力信号を含む。一実施形態において、入力信号は実際の信号自体に加えてメタデータを含んでもよい。メタデータは、使用する効果を決定するため、効果の順序を決定するため、またはそれらの組合せのためにシステムによって使用されてもよい。実施形態によれば、信号自体は効果の間、連続的に移動でき、アクチュエータなどのハプティック出力装置は、1つまたは複数のハプティック効果を生成するためにハプティック信号である、出力信号を使用できる。
さらに、一実施形態において、以前に記載されているように、システムは、入力信号の最小および最大の大きさの値に基づいて入力信号の一部を定義する範囲(すなわちウインドウ)を動的に作成し、アップデートすることによって、およびウインドウの範囲内の入力信号の一部をスケーリングすることによって、オーディオ信号などの入力信号のハプティック信号への変換を実施できる。ウインドウの範囲内にない入力信号の一部はシステムによってスケーリングされない。さらに、システムは、最小および最大の大きさの値を頻繁にアップデートでき、アップデートされた最小および最大の大きさの値に基づいてウインドウをさらにアップデートできる。このように、ウインドウは動的ウインドウであり得る。このようなハプティック変換アルゴリズムは、動的ウインドウハプティック変換アルゴリズムとして識別される。
以前のハプティック変換システムに関する問題の1つは、入力信号の大きさ(例えば、入力オーディオ信号)が、ハプティック変換が実施された後でも、「感じることができる」ハプティック効果を提供するのに十分に大きくなり得ないことである。つまり、入力オーディオ信号の例において、入力オーディオ信号が十分に大きくない場合、変換されたハプティック信号に基づいて出力されるハプティック効果は、ユーザの観点から適切なハプティック経験を提供できない。一実施形態によれば、スケーリングされる入力信号の一部を定義するウインドウを動的に作成し、アップデートし、続いてウインドウの範囲内の入力信号の一部をスケーリングすることによって、入力信号の一部は特定のハプティック「感知ウインドウ」にマッピングされ得る。このように、入力オーディオ信号の例において、オーディオがハプティックの観点から必要とされるものよりソフトである場合、入力オーディオ信号がさらに、適切なハプティックウインドウ内の適切なハプティック信号に変換され得る。
さらに、実施形態によれば、ウインドウは、頻繁に(またはまれに)アップデートされ得る、グローバル最小大きさ値およびグローバル最大大きさ値に応じて動的であり得る(すなわち、頻繁にまたはまれに移動できる)。グローバル最小および最大大きさの値に基づいて、1つまたは複数の閾値が決定され得る。1つまたは複数の閾値は、入力信号の一部がウインドウの範囲内にあるかどうか、それにより、入力信号の一部がスケーリングされるかどうかを決定するために使用され得る。これは入力信号の各部分について行われ得るので、全入力信号はハプティック信号に変換され得る。実施形態によれば、入力信号の一部はスケーリングされてもよく、入力信号の他の部分はスケーリングされなくてもよい。一実施形態において、入力信号の一部の1つまたは複数の大きさの値は、入力信号の一部が属する「bin」を決定するために分析されてもよく、入力信号の一部はbinにマッピングされ得る。代替の実施形態において、bin以外の数式またはルックアップテーブルなどの他の方法が、最小および最大の大きさの値を解釈し、1つまたは複数の閾値を決定し、入力信号の一部がウインドウの範囲内であるかどうかを決定するために使用されてもよい。
一実施形態によれば、動的ウインドウハプティック変換アルゴリズムを実装するために、ダイナミックレンジ圧縮が実行され得る。ダイナミックレンジ圧縮は、特定のレンジ内のオーディオ信号などの入力信号の大きさの値の圧縮である。例えば、入力オーディオ信号を用いると、クリッピングを防ぐために大きな音は特定のレンジまで減少され得、小さい音は、それらが聞こえるような同じレンジの範囲内まで増幅され得る。ダイナミックレンジ圧縮は、閾値が1つまたは複数の閾値によって表され得るダイナミック圧縮アルゴリズムの閾値によって最終的に制御され得る。さらに、2種類のダイナミックレンジ圧縮:下方圧縮および上方圧縮が存在し得る。下方圧縮において、閾値より大きい信号の大きさの値が減少し、一方、閾値以下の信号の大きさの値は変化しない。上方圧縮において、閾値未満の信号の大きさの値は増加し、一方、閾値以上の信号の大きさの値は変化しない。一実施形態によれば、動的ウインドウハプティック変換アルゴリズムは、入力信号の各部分についてダイナミック圧縮アルゴリズムによって使用される閾値を決定するために入力信号の各部分についてグローバル最小大きさ値およびグローバル最大大きさ値を使用できる。動的ウインドウハプティック変換アルゴリズムは、図3と併せて以下により詳細に記載されている。
図3は、本発明の一実施形態に係る、動的ウインドウハプティック変換アルゴリズムの機能性のフロー図を示す。一実施形態において、図3の機能性、および以下に記載される図12、13、および14の機能性は、メモリまたは他のコンピュータ可読または有形的表現媒体に記憶されたソフトウェアによって実装され、プロセッサによって実行される。他の実施形態において、各機能性は、ハードウェアによって(例えば、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などの使用によって)、またはハードウェアとソフトウェアの任意の組合せによって実施され得る。特定の実施形態において、機能性の一部は省略されてもよい。
フローが開始し、310に進み、入力信号300の少なくとも一部は入力バッファとして受信される。一部の実施形態において、入力信号300の一部のみが入力バッファとして受信される。他の実施形態において、入力信号300はその全体が入力バッファとして受信される。必要に応じて、入力バッファの任意の必要な前処理が実施される。次いでフローは320に進む。
320において、入力バッファの最小大きさ値および最大大きさ値が、入力バッファ内に含まれる入力信号300、または入力信号300の一部を分析し、入力信号300の最小大きさ値および最大大きさ値または入力信号300の一部を決定することによって読み出される。読み出された最小大きさ値は、次いで、グローバル最小大きさ値を比較され、読み出された最大大きさ値はさらにグローバル最大大きさ値と比較される。読み出された最小大きさ値がグローバル最小大きさ値未満であり、読み出された最大大きさ値がグローバル最大大きさ値超であるか、またはそれらの組合せである場合、フローは330に進む。そうでなければフローは350に進む。さらに、グローバル最小および最大大きさ値が存在しない場合、グローバル最小および最大大きさ値は、読み出された最小および最大大きさ値に設定され、フローは350に進む。
330において、読み出された最小大きさ値がグローバル最小大きさ値未満である場合、グローバル最小大きさ値は、読み出された最小大きさ値と等しくなるように調整される。さらに、読み出された最大大きさ値がグローバル最大大きさ値超である場合、グローバル最大大きさ値は、読みだされた最大大きさ値と等しくなるように調整される。続いて、グローバル最小および最大大きさ値が解釈され、1つまたは複数の大きさ閾値が、解釈されたグローバル最小および最大大きさ値に基づいて決定される。1つまたは複数の大きさ閾値は、多くの異なるプロセスの1つに従って決定され得る。例えば、一実施形態において、解釈されたグローバル最小および最大の大きさ値に基づいて、入力バッファがbinにマッピングされ得、1つまたは複数の大きさ閾値がbinについて規定される。マッピングされたbinに関連付けられている1つまたは複数の規定の大きさ閾値は、1つまたは複数の大きさ閾値として使用され得る。別の実施形態において、1つまたは複数の大きさ閾値は、1つまたは複数の数式を使用して解釈されたグローバル最小および最大の大きさ値に基づいて算出され得る。この実施形態において、1つまたは複数の数式は、1つまたは複数の大きさ閾値を算出するために解釈されたグローバル最小および最大の大きさ値に適用され得る。別の実施形態において、1つまたは複数のルックアップテーブルが、解釈されたグローバル最小および最大の大きさ値を使用して分析されてもよく、1つまたは複数の大きさ閾値が、解釈されたグローバル最小および最大の大きさ値に基づいて1つまたは複数のルックアップテーブルから選択されてもよい。代替の実施形態において、1つまたは複数の大きさ閾値は、関連分野の当業者に公知の任意のプロセスを使用して解釈されたグローバル最小および最大の大きさ値に基づいて決定されてもよい。フローは340に進む。
340において、ダイナミックレンジ圧縮アルゴリズムの1つまたは複数の大きさ閾値は、330において決定された1つまたは複数の大きさ閾値と等しくなるように調整され得る。フローは次いで350に進む。
350において、ダイナミックレンジ圧縮アルゴリズムは、入力バッファ内に含まれる、入力信号300または入力信号300の一部に適用される。一実施形態において、上方圧縮アルゴリズムが適用される。この実施形態において、1つまたは複数の大きさ閾値未満である入力信号300または入力信号300の一部の任意の大きさ値が上方にスケーリングされる(すなわち、増加する)。入力信号300または入力信号300の一部の全ての他の大きさ値は変化しない。次いでフローは360に進む。
360において、必要に応じて、任意の必要な入力バッファの後処理が実施される。次いでフローは370に進む。
370において、入力バッファは出力される。より具体的には、入力バッファ内に含まれる入力信号300または入力信号300の一部が出力される。入力信号300の一部のみが入力バッファ内に含まれる場合、図3に示すフローは入力信号300の各部分について反復され得る。次いでフローは終了する。
このように、実施形態によれば、動的ウインドウハプティック変換アルゴリズムは、閾値未満である入力信号の部分の大きさ値を増加させることによって、および大きさ値が閾値以上である入力信号の他の部分をそのままにすることによって入力信号を修正できる。結果として、動的ウインドウハプティック変換アルゴリズムは、入力信号または入力信号の部分の上方のスケーリングに起因して、弱い入力信号のイベントでさえも、実際にユーザが感じることができる1つまたは複数のハプティック効果を生成するために使用され得るハプティック信号に入力信号を変換できる。さらに、ハプティック効果を生成するために使用されるハプティック出力装置の種類に関わらず、入力信号が、感じられ得るハプティック効果を生成するために使用され得るハプティック信号に変換され得るように、動的ウインドウハプティック変換アルゴリズムは、入力信号を修正できる。さらに、以前に記載されているように、動的ウインドウハプティック変換アルゴリズムは、他のハプティック変換アルゴリズムと動的に関連付けられ、または連鎖されるハプティック変換アルゴリズムであり得る。
さらに、一実施形態において、以前に記載されているように、システムは、ハプティック信号、またはハプティックストリームを動的に圧縮でき、動的に圧縮されたハプティック信号をハプティック出力装置にストリーミングできる。ハプティック信号を動的に圧縮することによって、システムは、システムとクライアントとの間の往復時間、ハプティック信号の1つまたは複数の特性、またはそれらの組合せに基づいてハプティック信号に適用するために圧縮アルゴリズムを選択できる。ハプティック信号を圧縮することによって、システムは、ハプティック信号に媒体内で少しの空間しか取らないようにさせることができる。
このように、一実施形態に従って、システムは、広範囲のアクチュエータ種類について、8,000Hz 8ビットパルスコード変調(「PCM」)信号などのハプティック信号を効果的に圧縮する複数の手段を提供できる。さらに、圧縮の部分として、システムは、ハプティック信号を必ずしも記憶していない1つまたは複数の周波数を除去できる。さらに、ハプティック信号はまた、nチャネルを含んでもよく、ここで、nは任意の数である。この場合、nチャネル内に含まれるデータは、ハプティック信号とインターリーブされ得る。
一例として、圧電アクチュエータは、50Hz〜300Hzの周波数範囲を含むハプティック信号(またはハプティックストリーム)を再生する場合、最適に実施できる。このことは、ハプティック信号における他の周波数範囲が必要とされなくてもよく、圧電アクチュエータにおいてハプティック信号の他の周波数範囲を再生することが望まれなくてもよいことを意味する。このシステムは、これらの周波数範囲を除去でき、特定のフィルタバンクでハプティックエンコードアルゴリズムを利用することによって圧縮されたハプティックデータを効果的に記憶できる。これらのフィルタバンクは、望ましくない周波数範囲を除去でき、所望の周波数範囲のみを記憶できる。このシステムはさらに、得られたハプティックデータを量子化できる。量子化アルゴリズムは損失性であっても、無損失性であってもよい。次いで、このシステムは、ハプティックデータをさらにもっと圧縮するためにハフマンコードアルゴリズムなどのハプティックコードアルゴリズムを利用できる。デコード側において、このシステムは、上述のプロセスを反転でき、所望の周波数範囲を含むハプティックデータを検索できる。ハプティックデータは圧電アクチュエータに直接送信でき、ハプティックデータはハプティック効果を生成するために再生され得る。
別の例として、ERMアクチュエータおよびLRAアクチュエータの性能は、種類および駆動回路に応じて変化し得るので、特定の周波数範囲がこれらの種類のアクチュエータについて望ましいと推測され得ない。この例に関して、このシステムは、ハプティックデータを、オリジナルより8倍小さい、1000Hz、8bitに変換する、1ms間隔でハプティックデータを平均化する異なるハプティックエンコードアルゴリズムを利用できる。このシステムはさらに、ハプティックデータをさらにもっと下方に縮小するために無損失性量子化および1つまたは複数のハプティックコードアルゴリズムを使用できる。このシステムは続いて、ハプティックコードおよび量子化プロセスを反転させ、1msのアップデート速度により、1000Hz、8bitデータストリームで効果コールを使用して戻されるハプティックデータを再生するデコードアルゴリズムを利用できる。
別の例において、ハプティック信号またはハプティックストリームの生のハプティックデータが受信され得る。理想的には、このハプティックデータは既に、ハプティック変換アルゴリズムが信号に対して実施される設計時間変換を経ている。圧電アクチュエータなどのハプティック出力装置は、特定の周波数範囲(例えば、150〜350Hz)にて所望のハプティック効果を提供するのみであり得る。一実施形態によれば、システムは、ハプティック信号またはハプティックストリームを使用して2倍サンプリングレート(例えば、800Hzのサンプリングレート)で150〜350Hzの周波数範囲においてハプティックデータを表すことができる。
44.1/48kHz PCMから800Hz PCMまで下方にハプティック信号をスケーリングするために、システムは、ハプティック信号が400Hz未満のコンテンツのみを含むように、ハプティック信号の全ての高周波数成分(例えば、400Hz以上の周波数成分)を除去するフィルタバンクを使用できる。次いでシステムは信号を800Hzまで下方にリサンプリングできる。このプロセスの結果、800Hzのサンプリングレートでハプティック信号が得られ得る。フィルタバンクはまた、全ての低周波数成分(例えば、50Hz未満の周波数成分)を除去できる。
この例において、ハプティックコードアルゴリズムが損失性コードアルゴリズムである場合、システムはハプティック信号を量子化でき、ハプティックデータをさらにもっと圧縮するためにハフマンコードアルゴリズムを使用できる。しかしながら、ハプティック信号が無損失に圧縮される場合、ハプティック信号は、ハプティック信号の成分に近似させ、誤差を圧縮させるために線形予測コードアルゴリズムを使用できる。
さらに、LRAアクチュエータまたはERMアクチュエータのためのハプティック信号について、ハプティックデータは200Hzにてサンプリングされた連続した大きさ値であり得る。システムはハプティックデータを下方に圧縮するために無損失性コードアルゴリズムを適用できる。
ハプティック信号の動的圧縮の例は図4〜11と併せてより詳細に以下にさらに記載される。
図4は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分であるハプティック信号をストリーミングするためのリクエストを示す。より具体的には、図4はクライアント410およびサーバ420を示す。実施形態によれば、クライアント410はサーバ420にリクエストを送信し、リクエストは、ハプティックファイル440をストリーミングするためにセッション430(すなわち、「セッションX」)を開始するリクエストであり、ハプティックファイル440はハプティック信号またはハプティックストリームを含む。応答して、サーバ420はセッション430を開始する。
図5は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分であるストリーミングセッションの初期化を示す。実施形態によれば、サーバ420は確認をクライアント410に送信し、セッション430が開始されていることを確認する。さらに、サーバ420は、クライアント410とサーバ420との間の往復時間を測定する。より具体的には、サーバ420は、データをクライアント40に送信およびデータをクライアント40から受信するのにかかる時間を測定する。
図6は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分である圧縮アルゴリズムの決定を示す。実施形態によれば、サーバ420は、クライアント410とサーバ420との間の測定した往復時間;ハプティックファイル440内に記憶されたハプティック信号またはハプティックストリームの1つまたは複数の特性;またはこれらの組合せに基づいてハプティックファイル440を適用するために圧縮アルゴリズムを選択する。サーバ420は、必要に応じて、アルゴリズムを圧縮することに加えて、ハプティックエンコードアルゴリズム450(すなわち、「エンコーダA」)を選択できる。ハプティック信号の例示的な特性としては、大きさ、周波数、持続時間、振幅、強度、エンベロープ、密度またはハプティック信号の任意の他の種類の数量化できる物理特性が挙げられ得る。
図7は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分である圧縮アルゴリズムの通信を示す。実施形態によれば、サーバ420は、圧縮アルゴリズムの選択(および必要に応じてハプティックエンコードアルゴリズム450の選択)の表示をクライアント410に送信する。実施形態によれば、復元アルゴリズムがクライアント410に利用可能であり得る。必要に応じて、ハプティックデコードアルゴリズム460(すなわち、「デコーダA」)もまた、クライアント410に利用可能であり得る。
図8は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分である応答通信を示す。実施形態によれば、クライアント410はサーバ420に応答を送信する。応答は、サーバ420がハプティックファイル440をストリーミングするために開始できることを示し得る。あるいは、応答は、サーバ420がセッション430を終了することを要求できる。サーバ420によって示される圧縮アルゴリズムに適合する復元アルゴリズムはクライアント410に利用可能でないため、クライアント410はセッション430を終了することを望み得る。ハプティックエンコードアルゴリズム450に適合するハプティックデコードアルゴリズムがクライアント410に利用可能でないため、クライアント410はまた、セッション430を終了すること望み得る。あるいは、応答は、サーバ420が、クライアント410に利用可能な復元アルゴリズムに適合する圧縮アルゴリズムを使用することを要求できる。応答はさらに、または代替として、サーバ420が、クライアント410に利用可能なハプティックデコードアルゴリズム(例えば、ハプティックデコードアルゴリズム460)に適合するハプティックコードアルゴリズムを使用することを要求できる。
図9は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分である応答通信を示す。実施形態によれば、クライアント410はサーバ420に応答を送信する。以前に記載されているように、応答は、サーバ420が、クライアント410に利用可能な復元アルゴリズムに適合する圧縮アルゴリズムを使用することを要求できる。応答はさらに、または代替として、サーバ420が、クライアント410に利用可能なハプティックデコードアルゴリズム(例えば、ハプティックデコードアルゴリズム460)に適合するハプティックコードアルゴリズムを使用することを要求できる。この実施形態において、応答はまた、クライアント410に利用可能である1つまたは複数の復元アルゴリズムのリスト;クライアント410に利用可能な1つまたは複数のハプティックデコードアルゴリズム(例えば、ハプティックデコードアルゴリズム460)のリスト;またはこれらの組合せを含んでもよい。
図10は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分である圧縮通信を示す。実施形態によれば、サーバ420はクライアント410に表示を送信し、その表示は、サーバ420がクライアント410へのデータ送信を開始することをクライアント410に示し、その表示はさらに、サーバ420がクライアント410に送信するデータを受信することを開始することをクライアント410に示す。
図11は、本発明の一実施形態に係る、ハプティック信号の動的圧縮の成分であるハプティック信号の圧縮およびストリーミングを示す。実施形態によれば、サーバ420は圧縮アルゴリズムをハプティックファイル440に適用し、ハプティックファイル440を圧縮する。さらに、サーバ420は必要に応じて、ハプティックエンコードアルゴリズム450を適用し、ハプティックファイル440をエンコードする。続いてサーバ420はハプティックファイル440をクライアント410にストリーミングする。クライアント410は復元アルゴリズムをハプティックファイル440に適用し、ハプティックファイル440を復元する。さらに、サーバ420は必要に応じて、ハプティックデコードアルゴリズム460を適用し、ハプティックファイル440をデコードする。
図12は、本発明の一実施形態に係る、動的ハプティック変換モジュールの機能性のフロー図を示す。フローが開始し、1210に進む。1210において、効果オブジェクトが生成され、効果オブジェクトは、入力信号を出力信号に変換するために入力信号に対してハプティック変換アルゴリズムを実施する命令を含み、効果オブジェクトの順序が定義される。特定の実施形態において、少なくとも1つの効果オブジェクトのハプティック変換アルゴリズムは、以前に記載され、さらに図13と併せて以下に記載されている、動的ウインドウハプティック変換アルゴリズムであり得る。次いでフローは1220に進む。
1220において、入力信号が受信される。特定の実施形態において、入力信号は、オーディオ信号、またはオーディオデータを含む他の種類のオーディオ入力であってもよい。代替の実施形態において、入力信号は、ビデオ信号、またはビデオデータを含む他の種類のビデオ入力であってもよい。他の代替の実施形態において、入力信号は、加速度信号、または加速度データを含む他の種類の加速度入力であってもよい。他の代替の実施形態において、入力信号は、ハプティック信号、またはハプティックデータを含む他の種類のハプティック入力であってもよい。さらに他の代替の実施形態において、入力信号は、配向データを含む配向信号、周辺光データを含む周辺光信号、またはセンサによって検知され得る別の種類の信号であってもよい。さらに、他の代替の実施形態において、入力は入力信号ではないが、データを含む別の種類の入力であってもよい。一部の実施形態において、入力信号は効果オブジェクトおよび効果オブジェクトの順序を定義するメタデータを含んでもよい。次いでフローは1230に進む。
1230において、効果オブジェクトは定義された順序で入力信号に適用され、先行の効果オブジェクトの出力信号は後続の効果オブジェクトの入力信号であり、少なくとも効果オブジェクトの出力信号はハプティック信号を形成する。次いでフローは1240に進む。
1240において、ハプティック信号はハプティック出力装置に送信され、ハプティック信号は、ハプティック出力装置にハプティック効果を出力させる。特定の実施形態において、ハプティック出力装置はアクチュエータであってもよい。次いでフローは1250に進む。
1250において、1つの効果オブジェクトが複数の効果オブジェクトに加えられてもよく、1つの効果オブジェクトが複数の効果オブジェクトから除去されてもよく、効果オブジェクトの定義された順序は修正されてもよく、またはこれらの組合せであってもよい。さらに、一部の実施形態において、複数の効果オブジェクトが加えられてもよく、複数の効果オブジェクトが除去されてもよく、またはこれらの組合せであってもよい。なおさらに、1220、1230および1240は元のハプティック信号と異なる新たなハプティック信号を生成するために再実施されてもよく、新たなハプティック信号はハプティック出力装置に送信されてもよい。したがって、1250において、ユーザは、効果オブジェクトを修正すること、効果オブジェクトの順序を修正すること、またはそれらの組合せによって効果オブジェクトから生成される全ハプティック変換アルゴリズムを修正できる。したがって、ハプティック変換アルゴリズムは動的ハプティック変換アルゴリズムである。一部の実施形態において、1250は省略されてもよい。さらに、一部の実施形態において、1230の後および1240の前、動的圧縮アルゴリズムは、以前に記載され、さらに図14と併せて以下に記載されているハプティック信号に対して実施されてもよい。次いでフローは終了に進む。
図13は、本発明の一実施形態に係る、動的ハプティック変換モジュールの機能性のフロー図を示す。フローが開始し、1310に進む。1310において、入力信号の一部が分析される。特定の実施形態において、入力信号全体が分析される。次いでフローは1320に進む。1320において、入力信号(または入力信号の一部)の最小振幅値および最大振幅値が決定される。次いでフローは1330に進む。
1330において、最小振幅値がグローバル最小振幅値と比較される。次いでフローは1340に進む。1340において、最小振幅値がグローバル最小振幅値未満である場合、グローバル最小振幅値は最小振幅値と等しくなるように調整される。グローバル最小振幅値が存在しない実施形態において、グローバル最小振幅値が作成され、最小振幅値と等しくなるように設定される。次いでフローは1350に進む。
1350において、最大振幅値はグローバル最大振幅値と比較される。次いでフローは1360に進む。1360において、最大振幅値がグローバル最大振幅値を超える場合、グローバル最大振幅値は最大振幅値と等しくなるように調整される。グローバル最大振幅値が存在しない実施形態において、グローバル最大振幅値が作成され、最大振幅値と等しくなるように設定される。次いでフローは1370に進む。
1370において、大きさ閾値が、グローバル最小振幅値およびグローバル最大振幅値に基づいて決定される。特定の実施形態において、大きさ閾値が、グローバル最小振幅値およびグローバル最大振幅値に基づいて入力信号(または入力信号の一部)をbinにマッピングすることによって決定されてもよく、大きさ閾値はbinについて規定される。他の実施形態において、大きさ閾値は、グローバル最小振幅値およびグローバル最大振幅値に基づいてルックアップテーブルから大きさ閾値を選択することによって決定されてもよい。さらに他の実施形態において、大きさ閾値は、大きさ閾値を算出するために数式をグローバル最小振幅値およびグローバル最大振幅値に適用することによって決定されてもよい。次いでフローは1380に進む。
1380において、ダイナミックレンジ圧縮アルゴリズムが、決定された大きさ閾値に基づいて入力信号、または入力信号の一部に適用される。特定の実施形態において、ダイナミックレンジ圧縮アルゴリズムを適用することによって、決定された大きさ閾値未満である入力信号または入力信号の一部の1つもしくは複数の大きさ値が上方にスケーリングされる。特定の実施形態において、1310−1380は入力信号の各部分について実施されてもよい。次いでフローは終了する。
図14は、本発明の一実施形態に係る、動的ハプティック変換モジュールの機能性のフロー図を示す。フローが開始し、1410に進む。1410において、サーバとクライアントとの間の往復時間が決定される。次いでフローは1420に進む。1420において、圧縮アルゴリズムが、サーバとクライアントとの間の往復時間、ハプティック信号の1つもしくは複数の特性、またはそれらの組合せに基づいて選択される。次いでフローは1430に進む。1430において、ハプティック信号は、選択された圧縮アルゴリズムをハプティック信号に適用することによって圧縮される。次いでフローは終了する。
したがって、一実施形態において、システムは、様々なハプティック変換アルゴリズム(すなわち、効果)を動的に関連付けるか、または連鎖させることによって入力信号のハプティック信号への変換を実施できる。これにより、ユーザは、十分に精通しているパラメータを使用してそのユーザのハプティック効果を完全にカスタマイズすることができる。エンドユーザは、ハプティック変換アルゴリズムが彼らの装置において最適に「感知」することを決定するために効果にアクセスできる試験アプリケーションを使用できる。さらに、エンドユーザは、彼らの装置で十分に動作するハプティック変換アルゴリズムを決定する際に高速なターンアラウンドを有してもよい。エンドユーザが、特定のハプティック変換アルゴリズムの一部として使用され得る新たな効果を発見した場合、効果は、他の変換における使用と一緒に、動的に関連付けられ得るか、または連鎖され得る効果のバンクに配置され得る。これにより、エンドユーザのためのハプティック効果の設計の自由度が増加し得る。
さらに、別の実施形態において、システムは、入力信号の最小および最大の大きさ値に基づいて入力信号の一部を定義する範囲(すなわちウインドウ)を動的に作成し、アップデートすることによって、およびウインドウの範囲内の入力信号の一部をスケーリングすることによって、ハプティック信号への入力信号の変換を実施できる。これにより、スピーカなどのオーディオ出力装置により再生される場合、元の入力オーディオ信号が大きいと認知されるが、十分に強くない変換されたハプティック信号の問題を解決できる。
なおさらに、別の実施形態において、システムは、ハプティック信号またはハプティックストリームを動的に圧縮でき、動的に圧縮されたハプティック信号をハプティック出力装置にストリーミングできる。これは、ハプティックデータを効果的に記憶し、ストリーミングするのに非常に重要であり得、ハプティック動作可能なメディアがエンドユーザにより魅力的であるようになり得る。
本明細書の全体にわたり記載された本発明の特徴、構造、または特性は、一つ以上の実施形態において任意の適切な様式で組み合わされうる。例えば、本明細書の全体にわたる「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態(複数)」、または他の類似の語の使用は、実施形態に関連して記載された特定の特徴、構造、または特性が本発明の少なくとも一つの実施形態に含まれうるという事実をさす。したがって、本明細書の全体にわたって見られる「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態(複数)」の語句または他の類似の語は、全てが必ずしも同じ実施形態のグループをさすわけではなく、記載された特徴、構造、または特性は、一つ以上の実施形態で任意の適切な様式で組み合わせられうる。
通常の技術を有する当業者は、上述の本発明が、異なる順序のステップを用いて、および/または開示されたものとは異なる構成の要素を用いて実施されうることを容易に理解するであろう。したがって、本発明はこれらの好ましい実施形態に基づいて記載されているが、一定の修正、変形、および代替的構造が明らかであり、本発明の趣旨および範囲内にもとどまることが当業者には明らかである。したがって、本発明の境界および限界を決定するためには、添付の請求の範囲が参照されなければならない。