以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る携帯機器10の一例を示す。携帯機器10は、複数のセンサを搭載し、当該携帯機器10の動き、保持状態、および位置等を検出する。また、携帯機器10は、一例として、各センサのキャリブレーションまたは自己診断等を実行して、検出感度を向上させる。
携帯機器10は、一例として、外部の装置およびインターネット等に接続するための通信機能、ならびにプログラムを実行するためのデータ処理機能等を備える。携帯機器10は、例えば、スマートフォン、携帯電話、タブレット型PC(Personal Computer)、携帯型GPS装置、または小型PC等である。携帯機器10は、表示部12を備える。
表示部12は、例えば、インターネットのWEBページ、電子メール、地図、文書・音楽・動画・画像データ等を操作する画面を、ユーザの指示に応じて表示する。また、表示部12は、例えば、ユーザの指示が入力されるタッチパネルディスプレイであり、ユーザからのタッチ入力によってブラウザ等のソフトウエアの操作画面にユーザの指示が入力される。これに代えて、携帯機器10は、ジェスチャ入力でユーザの指示が入力されてもよい。これに代えて、携帯機器10は、キーボード、マウス、および/またはジョイスティック等の入力デバイスによってユーザの指示が入力されてもよい。
ここで、本実施形態に係る携帯機器10において、表示部12の表示面と平行な面をxy平面とし、当該表示面に対して垂直方向をz軸とする例を説明する。また、本実施形態に係る携帯機器10において、表示部12が縦長の長方形の形状を有する例を説明する。そして、当該長方形の2組の向かい合う辺のうち、短い方の辺に沿う方向(横方向)をx軸とし、長い方の辺に沿う方向(縦方向)をy軸とする。
即ち、ユーザが携帯機器10を手に保持して表示部12を見た場合、水平方向はx軸と略平行となり、ユーザが立つ鉛直方向はyz平面と略平行となる例を説明する。この場合、ユーザが携帯機器10を電話として用い、耳に当てて通話する場合、ユーザが向く進行方向とxy平面とは略平行となり、当該進行方向に対して垂直方向とz軸とが略平行となる。また、ユーザが携帯機器10を右手に保持したまま歩行動作をしつつ腕を前後に降った場合、腕を振る方向とユーザの進行方向は、xy平面と略平行となり、水平方向とz軸とが略平行となる。
このような本実施形態の携帯機器10は、角速度センサを搭載し、当該角速度センサのオフセットを推定するオフセット推定装置を備える。本実施形態において、携帯機器10は、直交するx軸、y軸、およびz軸をそれぞれ回転軸方向とする3つの角速度センサを備える例を説明する。オフセット推定装置は、ユーザが携帯機器10を保持する状態に応じて、複数の角速度センサのオフセットをそれぞれ推定する。
ここで、例えば、携帯機器10をユーザが手に保持した状態、およびポケットに入れた状態等においては、ユーザの体温によって角速度センサの周囲温度は変化する場合がある。また、携帯機器10において、動画再生等のCPUに負荷がかかる処理動作を実行させることによっても、角速度センサの周囲温度は変化する場合がある。角速度センサは、このような温度等の環境の変化に応じて、オフセットの値が変化する場合がある。そこで、本実施形態のオフセット推定装置は、定期的または予め定められた時間等にオフセットを推定して、オフセットの経時的な変化による角速度センサの精度の低下を防止する。
図2は、本実施形態に係るオフセット推定装置100の構成例を示す。オフセット推定装置100は、ユーザが保持する携帯機器10に内蔵されたセンサの出力に基づき、当該携帯機器10の保持状態を判定し、保持状態の判定結果に応じて、当該携帯機器10に内蔵された角速度センサのオフセットを推定する。オフセット推定装置100は、センサからの出力信号を取得する取得部120と、保持状態判定部130と、歩行状態判定部140と、パターン記憶部150と、オフセット推定部160と、パラメータ制御部170とを備える。
センサ110は、携帯機器10に搭載される。センサ110は、角速度センサ112を含む。また、センサ110は、加速度センサおよび/または地磁気センサを含んでもよい。センサ110は、加速度、角速度、または地磁気等の検出結果をそれぞれ出力する。
角速度センサ112は、一例として、携帯機器10の複数の回転軸に応じて複数搭載される。角速度センサ112は、例えば、サニャック効果を利用する光学式ジャイロセンサ、コリオリ力を利用する振動式ジャイロセンサ、流体式ジャイロセンサ、および角運動量の保存則を利用する機械式ジャイロセンサのいずれか、または組み合わせである。また、角速度センサ112は、MEMS(Micro Electro Mechanical System)技術によって形成されたデバイスであってよい。
取得部120は、複数のセンサ110に接続され、センサ110からの出力信号を取得する。取得部120は、携帯機器10の移動および静止といった保持状態に応じたセンサ110からの出力信号を取得する。取得部は、例えば、携帯機器の複数の回転軸に応じた複数の角速度センサからの出力信号を取得する。取得部120は、一例として、ユーザが携帯機器10を所持して歩行する場合、センサ110から、ユーザの歩行に伴う携帯機器10の移動に応じた出力信号を取得する。取得部120は、取得した出力信号を、保持状態判定部130、歩行状態判定部140、およびオフセット推定部160に送信する。
保持状態判定部130は、取得部120に接続され、携帯機器10の保持状態を判定する。保持状態判定部130は、一例として、センサ110からの出力信号の変化パターンに基づいて、携帯機器10の保持状態を判定する。この場合、保持状態判定部130は、予め記憶されたユーザの歩行に伴う出力信号の変化パターンと、センサ110からの出力信号とを比較して、携帯機器10の保持状態を判定する。
歩行状態判定部140は、取得部120に接続され、取得部120から受け取ったセンサ110の出力信号に応じて、携帯機器10の保持者の歩行状態を判定する。一例として、歩行状態判定部140は、ユーザが歩行状態であるか否かを判定する。歩行状態判定部140は、保持状態判定部130に接続され、判定した結果を保持状態判定部130およびオフセット推定部160に送信する。
パターン記憶部150は、携帯機器10の複数の保持状態のそれぞれについて、出力信号のパターンの特徴を示す情報を記憶する。例えば、パターン記憶部150は、複数の保持状態のそれぞれについて、予めサンプリングされた出力信号のパターンに基づく基準特徴量を記憶する。これに代えて、またはこれに加えて、パターン記憶部150は、出力信号のパターンを記憶してもよい。これに代えて、またはこれに加えて、パターン記憶部150は、出力信号のパターンの特徴を分析した結果を記録してもよい。
オフセット推定部160は、取得部120および保持状態判定部130にそれぞれ接続され、角速度センサ112の出力信号と保持状態判定部130の判定結果に応じて、当該角速度センサ112の出力信号のオフセットを推定する。オフセット推定部160は、それぞれの角速度センサ112の出力信号と保持状態判定部130の判定結果に応じて、少なくとも一の角速度センサ112のオフセットを推定する。即ち、オフセット推定部160は、保持状態判定部130の判定結果に応じて、オフセットを推定すべき角速度センサ112を判断する。
また、オフセット推定部160は、歩行状態判定部140に接続され、歩行状態判定部140の判定結果に応じて、角速度センサ112のオフセットを推定するか否かを切り替える。オフセット推定部160は、一例として、ユーザが歩行状態の場合、角速度センサ112のオフセットの推定を実行しない。
また、オフセット推定部160は、推定パラメータに応じた条件下にある角速度センサ112の出力信号を用いて当該角速度センサ112のオフセットを推定する。ここで、オフセット推定部160は、複数の角速度センサ112のそれぞれに、推定パラメータをそれぞれ設定する。
推定パラメータは、例えば、角速度センサ112の出力変動の下限および上限の閾値を含む。また、推定パラメータは、角速度センサ112の出力信号のうち、1回のオフセット推定に用いる特定の時間間隔またはデータ数を含んでよい。この場合、オフセット推定部160は、予め定められた時間間隔において、角速度センサ112の出力変動が予め定められた範囲内の変動であることを条件として、当該角速度センサ112のオフセットを推定する。
パラメータ制御部170は、保持状態判定部130およびオフセット推定部160にそれぞれ接続され、保持状態判定部130の判定結果に応じてオフセット推定部160の推定パラメータを制御する。パラメータ制御部170は、複数の角速度センサ112のうち、保持状態判定部130の判定結果に応じた角速度センサ112の推定パラメータを変更する。パラメータ制御部170は、例えば、携帯機器10の保持状態に応じて、角速度センサ112の推定パラメータを変更する。
また、パラメータ制御部170は、オフセット推定部160による角速度センサ112のオフセットの推定が実行された場合に、推定パラメータを変更する。パラメータ制御部170は、例えば、オフセット推定部160がオフセットの推定に用いた推定パラメータを変更する。
例えば、オフセット推定が一度も実施されていない場合は、パラメータ制御部170は、オフセット推定が実行されやすいように推定パラメータを設定しておき、推定精度が若干落ちたとしても、より早く推定できるようにする。そして、パラメータ制御部170は、初回のオフセット推定が実施された場合、次回の推定の際に初回の推定よりは推定精度が改善されるように推定パラメータを変更する。
具体的には、パラメータ制御部170は、例えば角速度センサ112の出力変動範囲を初回推定時には大きく設定しておき、2回目以降は出力変動範囲を初回の推定よりも小さく設定することにより可能である。これはあくまでも一例であり、使用目的に応じて様々な手法を取ることが可能である。
以上の本実施形態のオフセット推定装置100は、まず、ユーザが所持する携帯機器10の保持状態を、予め定められた複数の保持状態の分類のうち、一の保持状態にあることを判定する。例えば、保持状態判定部130は、携帯機器10の保持状態の分類として、携帯機器10をユーザが手に持って操作または視認する状態での保持、携帯機器10を耳に当てて通話する状態での保持、携帯機器10を手に持って腕を振る状態での保持、ポケット内での保持、およびカバンの中での保持を含める。そして、オフセット推定装置100は、保持状態判定部130が判定した保持状態に応じて、角速度センサ112のオフセットを測定する。
図3は、本実施形態に係るオフセット推定装置100の動作フローを示す。オフセット推定装置100は、図3に示す動作フローを実行することにより、ユーザが所持する携帯機器10に搭載された角速度センサ112のオフセットを推定する。
まず、取得部120は、複数のセンサ110の出力信号を取得する(S300)。本実施形態において、複数のセンサ110は、直交するxyz軸方向の加速度を検出する加速度センサ、および、xyz軸方向の角速度を検出する角速度センサ112の、合計6個のセンサである例を説明する。図4から図9は、このような角速度センサ112の出力信号の一例を示す。
図4から図9の横軸は時間をそれぞれ示し、縦軸は各センサの出力強度をそれぞれ示す。例えば、図4は、本実施形態に係る角速度センサ112のx軸方向の出力信号の第1の例を示す。同様に、図5および図6は、角速度センサ112のy軸方向およびz軸方向の出力信号の第1の例をそれぞれ示す。また、図7、図8、および図9は、角速度センサ112のxyz軸方向の出力信号の第2の例をそれぞれ示す。取得部120は、このような複数のセンサが出力する出力信号をそれぞれ取得して、保持状態判定部130、歩行状態判定部140、およびオフセット推定部160に送信する。
次に、歩行状態判定部140は、ユーザが歩行中であるか否かを判定する(S310)。歩行状態判定部140は、一例として、加速度センサからの出力信号が予め定められた範囲の周期で変動するか否かに応じて、ユーザが歩行中であるか否かを判定する。ユーザが略同一の速度で歩行すると、ユーザの進行方向および進行方向に垂直な方向の加速度が略一定の周期で発生する。この場合、例えば、ユーザの身長、体重、足の長さ、歩き方、および歩く速度等に応じた周期、振幅の加速度が発生し、加速度センサは、当該加速度を検出することにより、ユーザの歩行に応じた振動パターンを出力する。
歩行状態判定部140は、一例として、出力信号のパターンの特徴に応じて、ユーザが歩行中であるか否かを判定する。この場合、歩行状態判定部140は、パターン記憶部150に接続され、パターン記憶部150から読み出したパターンの特徴と出力信号のパターンの特徴とを比較してもよい。この場合、パターン記憶部150は、ユーザが実際に歩行した場合の出力信号のパターンを予め記憶する。
歩行状態判定部140は、このような略一定の周期の変動を検出してユーザが歩行していると判定した場合(S310:Yes)、判定結果を保持状態判定部130およびオフセット推定部160に送信する。そして、オフセット推定装置100は、ステップS300に移行し、取得部120による出力信号の取得に戻る。即ち、オフセット推定装置100は、ユーザが歩行していない状態を検出するまで、取得部120による出力信号の取得を繰り返す。この場合、保持状態判定部130およびオフセット推定部160は、保持状態の判定動作およびオフセット推定動作をそれぞれ実行しなくてよい。
このように、ユーザが歩行中の場合において、角速度センサ112の出力信号からオフセットを推定すると、歩行による出力変動に応じて誤差が増大することがあるので、オフセット推定装置100は、オフセットの推定動作には移行しない。即ち、オフセット推定部160は、携帯機器10の静止状態の判定結果における角速度センサ112の出力に応じて、当該角速度センサ112のオフセットを推定する。
歩行状態判定部140がこのような略一定の周期の変動を検出しなかった場合(S310:No)、オフセット推定装置100は、ステップS320に移行し、保持状態判定部130は、携帯機器10の保持状態を判定する(S320)。即ち、保持状態判定部130は、ユーザが歩行中ではないと判定されたことを条件として携帯機器10の保持状態を判定する。
これに代えて、保持状態判定部130は、歩行状態判定部140の判定動作と並行して携帯機器10の保持状態を判定してもよい。この場合、保持状態判定部130は、取得部120から受信する出力信号の予め定められた期間の判定を順次実行する。そして、保持状態判定部130は、歩行状態判定部140がユーザが歩行していないことを判定した判定結果を受信したタイミングにおける、保持状態の判定結果をオフセット推定部160に送信する。
保持状態判定部130は、取得部120が取得するセンサ110の出力信号と、パターン記憶部150が予め記憶したパターン信号に基づき携帯機器10の保持状態を判定する。例えば、パターン記憶部150は、ユーザの保持状態に対応して取得部120が取得するセンサ110の出力信号、または当該出力信号に予め定められた演算を施した信号をパターン信号として予め保持状態と対応付けて記憶する。そして、保持状態判定部130は、センサ110の出力信号と、パターン記憶部150に記憶されたパターン信号とを比較し、パターンがマッチングされたことに応じて、対応する保持状態を判定結果とする。
これに代えて、保持状態判定部130は、出力信号から得られる特徴量が、パターン記憶部150に記憶されたいずれの基準特徴量に対応するかに基づいて、携帯機器10の保持状態を判定してもよい。即ち、パターン記憶部150は、一例として、携帯機器10の保持状態に対応する出力信号の平均値、分散、変動幅、周期を主成分分析等の予め定められた演算処理を施して得られる結果を基準特徴量として予め記憶する。この場合、保持状態判定部130は、出力信号に予め定められた演算処理を施して得られる特徴量と、記憶されたパターンの基準特徴量とを比較し、特徴量が予め定められた範囲で一致することに応じて、対応する保持状態を判定結果とする。
これに代えて、保持状態判定部130は、ユーザの歩行に伴うセンサ110の出力信号を複数の軸方向成分に分解したときの、軸方向成分のうちの少なくとも2以上の軸方向成分同士の関係性に基づいて携帯機器10の保持状態を判定してもよい。
この他、複数のセンサ110が第1の物理量を検知する第1センサと、第1の物理量とは種類が異なる第2の物理量を検知する第2センサと、を含む場合には、保持状態判定部130は、第1センサの出力信号における少なくとも1つの軸方向成分と第2センサの出力信号における少なくとも1つの軸方向成分の関係性に基づいて携帯機器10の保持状態を判定してもよい。このように複数の物理量に基づいた関係性を用いると、保持状態判定の精度を向上させ、また、保持状態を細かく判定することが可能となる。
なお、第1センサと第2センサの例としては、例えば、角速度センサ、加速度センサ、地磁気センサ等が考えられる。この他、保持状態判定部130は、出力信号における複数の軸方向成分の変化パターンに基づいて、携帯機器10の保持状態が、複数の保持状態のいずれに分類されるかを判定する。保持状態判定部130は、一例として、出力信号の予め定められた期間の波形パターンに応じて、携帯機器10の保持状態を判定する。
また、保持状態判定部130は、角速度センサ112の出力信号と、パターン記憶部150が予め記憶したパターン信号に基づき携帯機器10の保持状態を判定してもよい。保持状態判定部130は、例えば、図4、図5、および図6に示す、3つの角速度センサ112からの出力信号の第1の例を受け取って、携帯機器10の保持状態を判定する。また、保持状態判定部130は、同様に、図7、図8、および図9に示す、3つの角速度センサ112からの出力信号の第2の例を受け取って、携帯機器10の保持状態を判定する。
図4は、携帯機器10のx軸方向に対応する角速度センサ112の出力信号の第1の例であり、周期性を有する出力信号である。図5は、携帯機器10のy軸方向に対応する角速度センサ112の出力信号の第1の例であり、0秒から4秒の間の期間に雑音成分が増加している出力信号である。図6は、携帯機器10のz軸方向に対応する角速度センサ112の出力信号の第1の例であり、略一定の雑音成分を有する出力信号である。
また、図7は、携帯機器10のx軸方向に対応する角速度センサ112の出力信号の第2の例であり、2秒から6秒の間の期間に雑音成分が増加している出力信号である。図8は、携帯機器10のy軸方向に対応する角速度センサ112の出力信号の第2の例であり、0秒から2秒、および7秒から9秒の間の期間に雑音成分が増加している出力信号である。図9は、携帯機器10のz軸方向に対応する角速度センサ112の出力信号の第2の例であり、周期性を有する出力信号である。
保持状態判定部130は、例えば、このような第1の例の出力信号から、「x軸方向は周期性有り、y軸方向は突発的な雑音の増大有り、およびz軸方向は略一定の雑音成分有り」といった特徴を抽出する。保持状態判定部130は、例えば、予め定められた範囲に雑音成分が変動しているか否かを判定することで、一時的に雑音成分が増加しているか、略一定の雑音成分を有するかを抽出する。また、保持状態判定部130は、フーリエ変換等の処理結果に応じて、周期性のある特徴を有するか否かを抽出してもよい。そして、保持状態判定部130は、抽出した特徴と、パターン記憶部150に記憶された特徴パターンとをマッチングする。
例えば、立ち止まっているユーザが携帯機器10を手に保持して表示部12を見た場合、水平方向(x軸方向)は、ユーザの無意識な身体の動きを反映して周期的な振動が出力信号に重畳される。また、鉛直方向(y軸方向)は、突発的なユーザの手または身体の動きを反映して一時的に増大する雑音が出力信号に重畳される。また、ユーザの顔に向く方向(z軸方向)は、ユーザが表示部12を見ていることを反映して、ブレのない略一定の雑音成分が出力信号に示される。
また、ユーザが携帯機器10を電話として用い、耳に当てて通話する場合、耳に固定して保持することが多く、各軸共にブレは低減する。また、携帯機器10のx軸方向およびy軸方向は、突発的なユーザの手または身体の動きを反映して一時的に増大する雑音が出力信号に重畳される。また、ユーザの耳に向く方向(z軸方向)は、ユーザの無意識な身体の動きを反映して周期的な振動が出力信号に示される。
したがって、パターン記憶部150は、「ユーザが携帯機器10を手に保持して表示部12を見ている状態」に対応付けて、「x軸方向は周期性有り、y軸方向は突発的な雑音の増大有り、およびz軸方向は略一定の雑音成分有り」といった特徴パターンを予め記憶する。また、パターン記憶部150は、「ユーザが携帯機器10を耳に当てて通話する状態」に対応付けて、「x軸方向およびy軸方向は突発的な雑音の増大有り、およびz軸方向は周期性有り」といった特徴パターンを予め記憶する。
これによって、保持状態判定部130は、抽出した特徴と、パターン記憶部150に予め記憶された特徴パターンとをマッチングすることによって、携帯機器10の保持状態を判定することができる。保持状態判定部130は、判定した保持状態をパラメータ制御部170およびオフセット推定部160に送信する。
次に、パラメータ制御部170は、携帯機器10の保持状態に応じて、角速度センサ112の推定パラメータを変更する(S330)。上述のとおり、ユーザの携帯機器10の保持状態に伴う角速度センサ112からの出力信号は、当該保持状態毎に顕著に異なる。そこで、パラメータ制御部170は、一例として、オフセット推定部160の推定パラメータを、各軸毎に保持状態に応じた推定パラメータに変更する。
例えば、パラメータ制御部170は、「ユーザが携帯機器10を手に保持して表示部12を見ている状態」の判定結果を受け取ったことに応じて、携帯機器10のx軸方向に対応する角速度センサ112の1回のオフセット推定に用いる特定の時間間隔を、当該角速度センサ112の出力信号の周期と略一致させる。パラメータ制御部170は、保持状態の判定結果により、x軸方向に対応する角速度センサ112の出力信号に周期性が有ることが判明するので、当該周期と略同一の時間間隔に推定パラメータに変更することができる。
また、パラメータ制御部170は、携帯機器10のy軸方向に対応する角速度センサ112の1回のオフセット推定に用いる特定の時間間隔を、z軸方向に対応する角速度センサ112の時間間隔と比較して短くする。パラメータ制御部170は、保持状態の判定結果により、y軸方向に対応する角速度センサ112の出力信号に突発的な雑音の増大が有ることが判明するので、オフセット推定に用いる時間間隔を短時間化するように推定パラメータを変更することができる。
また、パラメータ制御部170は、携帯機器10のz軸方向に対応する角速度センサ112の1回のオフセット推定に用いる特定の時間間隔を、y軸方向に対応する角速度センサ112の時間間隔と比較して長くする。パラメータ制御部170は、保持状態の判定結果により、z軸方向に対応する角速度センサ112の出力信号に略一定の雑音が有ることが判明するので、オフセット推定に用いる時間間隔を長時間化するように推定パラメータを変更することができる。
ここで、パラメータ制御部170は、オフセット推定部160が連続して角速度センサ112のオフセットを推定する場合、保持状態判定部130の前回および今回の判定結果に応じて推定パラメータを制御してよい。パラメータ制御部170は、一例として、オフセット推定部160が連続して同一の保持状態を判定した場合は、推定パラメータを変更せずに前回のままにし、保持状態判定部130の判定結果が変化した場合に、推定パラメータを変更する。
次に、オフセット推定部160は、角速度センサ112の出力信号と保持状態判定部130の判定結果に応じて、オフセットを推定する(S340)。オフセット推定部160は、例えば、「ユーザが携帯機器10を手に保持して表示部12を見ている状態」の判定結果を受け取ったことに応じて、z軸方向に対応する角速度センサ112のオフセットを推定する。
ここで、オフセット推定部160は、一例として、パラメータ制御部170が変更したオフセット推定に用いる時間間隔を用い、当該時間間隔において取得した角速度センサ112の出力信号の平均値を、オフセットの推定結果として出力する。より具体的には、オフセット推定部160は、図6のz軸方向に対応する角速度センサ112の出力信号が得られた場合、時間間隔t1からt2および/またはt2からt3、・・・における出力信号の平均値を出力する。図6の例の場合、角速度センサ112は、略3秒の間隔でオフセットを推定し、推定結果は略1[度/秒]となる。
また、オフセット推定部160は、角速度センサ112の出力信号が、パラメータ制御部170によって定められた出力変動の下限および上限の閾値の範囲内にある場合に、オフセットを推定してもよい。オフセット推定部160は、一例として、オフセット推定に用いる時間間隔毎に、平均値、最大値、および最小値を算出し、平均値と最大値および最小値の差が、それぞれ上限および下限の閾値の範囲にあることに応じて、平均値をオフセットとして出力する。
ここで、パラメータ制御部170は、角速度センサ112が略一定の雑音成分を出力する場合の出力変動に対応した閾値を、ステップS330の段階で推定パラメータとして設定する。この場合、パラメータ制御部170は、角速度センサ112が略一定の雑音成分を出力する場合の出力変動を予め測定し、測定した結果に応じた閾値を設定してよく、これに代えて、角速度センサ112の設計仕様等から算出される閾値を設定してもよい。
これによって、オフセット推定部160は、携帯機器10がユーザに保持されていても、保持状態に応じて略一定の雑音成分を出力する角速度センサ112を選択して、オフセットを推定することができる。即ち、オフセット推定部160は、携帯機器10が静止状態に固定されていなくても、ユーザの動き等に起因する雑音の変動の影響を低減させたオフセットを推定することができる。
また、オフセット推定部160は、「ユーザが携帯機器10を手に保持して表示部12を見ている状態」の判定結果を受け取ったことに応じて、x軸方向に対応する角速度センサ112のオフセットを推定してよい。この場合、オフセット推定部160は、当該角速度センサ112の出力信号の周期と略一致した時間間隔において取得した角速度センサ112の出力信号の平均値を、オフセットの推定結果として出力する。
より具体的には、オフセット推定部160は、図4のx軸方向に対応する角速度センサ112の出力信号が得られた場合、時間間隔t1からt2、t2からt3、および/またはt3からt4、・・・における出力信号の平均値を出力する。図4の例の場合、角速度センサ112は、略3秒の間隔でオフセットを推定し、推定結果は略2[度/秒]となる。
また、オフセット推定部160は、角速度センサ112の出力信号が、パラメータ制御部170によって定められた出力変動の下限および上限の閾値の範囲内にある場合に、オフセットを推定してもよい。ここで、パラメータ制御部170は、ユーザの無意識な動きによる周期的な変動を有する出力信号に対応した閾値を、ステップS330の段階で推定パラメータとして設定してよい。
ここで、パラメータ制御部170は、x軸方向の当該閾値の範囲は、z軸方向で定めた閾値の範囲と比較して、周期的な変動が生じる分だけ大きくし、かつ、突発的な変動の範囲と比較して小さくする。この場合、パラメータ制御部170は、角速度センサ112のユーザの動きに応じた周期的な出力変動、および突発的な出力変動を予め測定し、測定した結果に応じた閾値を設定してよい。
これによって、オフセット推定部160は、携帯機器10をユーザが保持していても、保持状態に応じて周期的な変動を有する信号を出力する角速度センサ112を選択し、当該周期を用いてオフセットを推定することができる。これによって、オフセット推定部160は、ユーザの動き等に起因する周期的な変動を低減させてオフセットを推定することができる。
また、オフセット推定部160は、「ユーザが携帯機器10を手に保持して表示部12を見ている状態」の判定結果を受け取ったことに応じて、y軸方向に対応する角速度センサ112のオフセットを推定してよい。この場合、オフセット推定部160は、推定パラメータに応じて、角速度センサ112が略一定の雑音成分を出力する場合に比較して、短い時間間隔でオフセットを推定する。
また、オフセット推定部160は、角速度センサ112の出力信号が、パラメータ制御部170によって定められた出力変動の下限および上限の閾値の範囲内にある場合に、オフセットを推定する。ここで、パラメータ制御部170は、角速度センサ112がユーザの動きによる突発的な出力変動に対応した閾値を、ステップS330の段階で推定パラメータとして設定する。
ここで、パラメータ制御部170は、y軸方向の当該閾値の範囲は、突発的な変動の範囲と比較して小さくする。この場合、パラメータ制御部170は、角速度センサ112のユーザの動きに応じた突発的な出力変動を予め測定し、測定した結果に応じた閾値を設定してよい。
即ち、オフセット推定部160は、図5のy軸方向に対応する角速度センサ112の出力信号が得られた場合、0からt1までの時間間隔は、突発的な出力変動が大きいので、オフセットの推定は実行しない。そして、オフセット推定部160は、t1からt2、t2からt3、・・・といった時間間隔において、出力信号の平均値を出力する。図5の例の場合、角速度センサ112は、略1秒の間隔でオフセットを推定し、推定結果は略2[度/秒]となる。
これによって、オフセット推定部160は、携帯機器10をユーザが保持していても、保持状態に応じて突発的な出力変動が発生しやすい角速度センサ112を選択し、当該突発的な出力変動が発生していない場合の出力信号を用いてオフセットを推定することができる。また、オフセット推定部160は、推定に用いる時間間隔を短時間化するので、当該突発的な出力変動によって、オフセットの推定が実行できなくなること、または実行時間が長くなることを防止することができる。これによって、オフセット推定部160は、ユーザの動き等に起因する突発的な変動を低減させてオフセットを推定することができる。
以上の本実施形態に係るオフセット推定装置100は、角速度センサ112の出力信号の第1の例に応じて、当該角速度センサ112のオフセットを推定することができることを説明した。これと同様に、オフセット推定装置100は、角速度センサ112の出力信号の第2の例に応じて、当該角速度センサ112のオフセットを推定することもできる。即ち、オフセット推定装置100は、携帯機器10をユーザが保持していても、当該携帯機器10の保持状態に応じて、角速度センサ112のオフセットを推定することができる。
次に、パラメータ制御部170は、推定パラメータを変更する(S350)。即ち、パラメータ制御部170は、オフセット推定部160による角速度センサ112のオフセットが推定された場合に、推定パラメータを制御する。パラメータ制御部170は、例えば、オフセット推定部160がオフセットを推定した直後に、推定に用いた時間間隔を長くする。また、パラメータ制御部170は、推定に用いた出力変動の下限および上限の閾値の範囲を狭くする。即ち、パラメータ制御部170は、オフセット推定部160が次回以降のオフセット推定を実行する条件を厳しくさせる。
即ち、オフセット推定部160は、既に実行したオフセット推定に比べて、角速度センサ112の出力がより安定して変動が少なく、より長い時間を推定時間にかけられる場合に、次のオフセット推定を実行する。これによって、オフセット推定部160が一度オフセットの推定を実行した後は、角速度センサ112の出力変動が不安定な方向に変化した場合、次回以降のオフセット推定の実行を停止し、また、角速度センサ112の出力変動がより安定な方向に変化して精度よくオフセットを推定できる条件の場合にのみ、オフセットを推定することができる。
また、この場合、パラメータ制御部170は、オフセット推定部160がオフセットを推定した後に、次のオフセット推定を実行していない状態で、かつ、予め定められた時間よりも長い時間経過した場合、オフセット推定を実行する条件を緩和させてよい。角速度センサ112のオフセットは、経時的に変化するので、一度精度よくオフセットを推定しても、時間の経過と共に実際のオフセット値から変動してしまう場合が生じる。
そこで、パラメータ制御部170は、オフセット推定から予め定められた時間経過した場合に、オフセット推定を実行する条件を緩和させ、オフセット推定部160にオフセット推定を実行させる。この場合においても、パラメータ制御部170は、オフセット推定部160がオフセット推定を実行した後に、次回以降のオフセット推定を実行する条件を厳しくさせてよい。これによって、オフセット推定部160は、角速度センサ112のオフセットに経時変化が生じても、オフセットの推定を継続させて精度の低下を防止することができる。
これに加えて、パラメータ制御部170は、推定パラメータに対応する評価値を定め、当該評価値を時間経過に応じて下げてもよい。また、パラメータ制御部170は、保持状態判定部130の判定結果に応じて評価値を定めてよい。
パラメータ制御部170は、例えば、保持状態判定部130が「ユーザが携帯機器10を手に保持して表示部12を見ている状態」を判定したことに応じて、z軸方向、x軸方向、およびy軸方向の順に、各方向に対応する角速度センサ112のオフセットを推定する推定パラメータの評価値を小さくする。即ち、パラメータ制御部170は、角速度センサ112の出力信号の変動がより安定な状態に対して、評価値をより大きくする。
また、パラメータ制御部170は、例えば、保持状態判定部130が「ユーザが携帯機器10を耳に当てて通話する状態」を判定したことに応じて、z軸方向の推定パラメータの評価値を、x軸方向およびy軸方向の評価値よりも大きくする。ここで、パラメータ制御部170は、z軸方向の評価値を、保持状態判定部130が「ユーザが携帯機器10を手に保持して表示部12を見ている状態」を判定した場合のx軸方向の評価値と略等しくさせる。同様に、パラメータ制御部170は、x軸方向およびy軸方向の評価値を、「ユーザが携帯機器10を手に保持して表示部12を見ている状態」を判定した場合のy軸方向の評価値と略等しくさせる。
即ち、パラメータ制御部170は、一例として、角速度センサ112の信号成分の特徴において、「略一定の雑音成分を有する場合」、「周期性の雑音成分を有する場合」、「突発的な雑音の増大を有する場合」の順に、評価値を小さくする。そして、パラメータ制御部170は、オフセット推定部160がオフセット推定を実行しない期間において、予め定められた時間毎に、それぞれの評価値を予め定められた数だけ減少させる。また、パラメータ制御部170は、オフセット推定部160がオフセット推定を実行しなかった場合、保持状態判定部130の保持状態の判定結果を受け取っても、当該保持状態に対応する評価値に更新しない。
そして、オフセット推定部160は、推定パラメータに対応する評価値をパラメータ制御部170が増加させることを条件に、オフセットを推定する。例えば、保持状態判定部130が「ユーザが携帯機器10を手に保持して表示部12を見ている状態」を判定したことに応じて、オフセット推定部160がオフセットを推定した場合、パラメータ制御部170は保持状態の判定結果に応じて推定パラメータの評価値を定める。次に、オフセット推定部160がオフセットの推定を停止している期間、パラメータ制御部170は、予め定められた時間毎にそれぞれの推定パラメータの評価値を予め定められた数だけ減少させる。
そして、角速度センサ112の出力信号が安定になり、保持状態判定部130が「ユーザが携帯機器10を手に保持して表示部12を見ている状態」を判定した場合、前回の判定結果と同一の判定結果ではあるものの、推定パラメータの評価値は時間の経過に伴って減少しているので、評価値が更新されると、パラメータ制御部170は、当該評価値を増加させることになる。したがって、オフセット推定部160は、オフセットの推定を実行し、パラメータ制御部170は、当該評価値を更新する。
また、角速度センサ112の出力信号が安定になり、保持状態判定部130が「ユーザが携帯機器10を耳に当てて通話する状態」を判定した場合、前回の判定結果とは異なる判定結果となる。この場合、推定パラメータの評価値は時間の経過に伴って減少しているが、パラメータ制御部170が評価値を更新しても、当該評価値を増加させることになるか否かは時間の経過および判定された保持状態によって異なる。即ち、オフセット推定部160は、時間の経過に伴い、前回推定したオフセットの推定パラメータの評価値が今回の評価値よりも低減している場合に、オフセットの推定を実行する。
これによって、オフセット推定部160は、角速度センサ112のオフセットを推定した後に、時間の経過に伴って当該オフセットが変動して信頼性が低下した場合であっても、推定パラメータの評価値に応じて当該信頼性の低下を判断することができる。したがって、オフセット推定部160は、より信頼性の高いオフセット推定が実行できる場合に、当該オフセットを推定し、当該オフセットが変動しても推定結果の信頼性が低下することを防止することができる。
また、ユーザが携帯機器10の保持状態を変化させて、安定な出力信号の状態の角速度センサ112を不安定な状態にし、かつ、前回のオフセット推定から信頼性が低下するほど時間が経過していない場合、オフセット推定部160は、推定パラメータの評価値が増加しないのでオフセット推定を実行しない。即ち、オフセット推定部160は、信頼性の低いオフセット推定になることを推定パラメータの評価値から判断することができ、信頼性の高い推定結果を保持して、信頼性の低い推定結果によって更新されることを防止することができる。ここで、オフセット推定部160は、携帯機器10の回転軸毎に評価値を比較し、当該回転軸毎に、オフセットの推定を実行するか否かを決定してよい。
以上の本実施形態に係るオフセット推定装置100によれば、携帯機器10の保持状態に応じて、推定に用いる時間、出力変動の下限および上限の閾値等の推定パラメータを制御しつつ、当該携帯機器10が搭載する角速度センサ112のオフセットを推定することができる。これによって、オフセット推定装置100は、携帯機器10が静止していなくても、角速度センサ112の出力変動の影響を低減させ、かつ、短時間でより正確なオフセットを推定することができる。したがって、オフセット推定装置100は、角速度センサ112のオフセットが経時的に変化しても、定期的にオフセットを推定することができ、当該角速度センサ112の測定精度の低下を防止することができる。
以上の本実施形態に係るオフセット推定装置100は、ユーザが歩行中の場合、オフセットの推定動作には移行しない例を説明した。これに加えて、オフセット推定装置100は、ユーザが歩行中であっても、角速度センサ112の出力変動が予め定められた範囲内の変動であれば、オフセットの推定動作に移行してもよい。例えば、ユーザがゆっくりと歩行する場合等、オフセット推定装置100のオフセット推定に影響を及ぼさない程度の歩行動作であれば、ユーザの歩行動作中にオフセット推定動作を実行してもよい。
そこで、一例として、歩行状態判定部140は、角速度センサ112の出力変動が予め定められた範囲内の変動の場合、ユーザの歩行状態を検出してもユーザは歩行状態ではないと判定する。これによって、オフセット推定装置100は、オフセットの推定動作に移行することができ、オフセット推定動作の機会を増加させて角速度センサの測定精度の低下を防止することができる。
以上の本実施形態に係るオフセット推定部160は、角速度センサ112の出力信号が、パラメータ制御部170によって定められた出力変動の下限および上限の閾値の範囲内にある特定の時間間隔において、オフセットを推定する例を説明した。これに加えて、オフセット推定部160は、特定の時間間隔を複数の区間に分割し、当該複数の区間における角速度センサ112の出力信号のデータに基づき、オフセットを推定してもよい。
例えば、オフセット推定部160は、特定の時間間隔を複数の区間に分割し、当該複数の区間における角速度センサ112の出力信号のデータの最大値おおよび最小値をそれぞれ算出し、当該複数の区間のうち、それぞれの区間における最大値と最小値との差が予め定められた閾値よりも小さい区間のデータを、オフセット推定の候補とする。これに代えて、またはこれに加えて、オフセット推定部160は、複数の区間における角速度センサの出力信号のデータの分散値をそれぞれ算出し、当該複数の区間のうち、それぞれの区間における分散値が予め定められた閾値よりも小さい区間のデータを、オフセット推定の候補としてもよい。
また、オフセット推定部160は、特定の時間間隔のうちオフセット推定の候補とされたデータを有する区間の数が予め定められた数以上である場合に、当該オフセット推定の候補となるデータからオフセットを推定してよい。この場合、パラメータ制御部170は、保持状態判定部130の判定結果に応じて、当該予め定められた数を変更してよい。また、この場合、オフセット推定部160は、一例として、特定の時間間隔のうちオフセット推定の候補とされたデータの平均値をオフセットとして出力する。このようなオフセット推定部160の動作について、図10および図11を用いて説明する。
図10は、本実施形態に係る特定の時間間隔410を複数の区間420に分割した例を示す。このように、オフセット推定部160は、オフセット推定に用いる時間間隔410を複数の微小時間の区間420に分割し、各々の区間420において取得した角速度センサ112の出力信号について、予め定められた演算処理を実行する。
オフセット推定部160は、例えば、それぞれの区間420における平均値、最大値、および最小値を算出し、最大値と最小値の差が閾値の範囲内であることに応じて、当該区間420がオフセット推定に適した区間であることを判定する。また、オフセット推定部160は、当該時間間隔410のうちオフセットに適した区間420の個数が予め定められた個数以上であれば、オフセット推定に適した区間の角速度センサ112の出力信号の平均値を、オフセットとして出力してもよい。即ち、オフセット推定部160は、オフセット推定に適さないデータをオフセット推定には用いずに捨ててよい。
これに加えて、または、これに代えて、オフセット推定部160は、区間420において取得した角速度センサ112の出力信号の分散値を求め、当該分散値が予め定められた閾値の範囲内であるか否かに応じて、当該区間420がオフセット推定に適した区間か否かを判定してもよい。ここで、時間間隔410から分割されたそれぞれの区間420の中でも、ユーザの動き等に起因する雑音の変動の影響が含まれている場合がある。そこで、オフセット推定部160は、このような雑音の変動の影響が含まれている区間の角速度センサ112の出力信号を、オフセット推定には用いずに不採用とすることにより、オフセット推定精度の劣化を防止することができる。
また、時間間隔410のうちオフセットに適した区間420の個数の閾値については、保持状態判定部130の判定結果に応じて、パラメータ制御部170が変更してもよい。
ここでは、角速度センサ112のx軸の出力信号のオフセット推定を例に具体的に説明する。例えば、100Hzのサンプリング間隔で角速度センサ112は出力信号を更新し、オフセット推定部160が、オフセット推定に用いる時間間隔410を1秒間、そして当該時間間隔410を5つの区間420に分割してオフセット推定を実行する例を説明する。
角速度センサ112が1秒間の時間間隔410において100Hzでサンプリングを実行するので、当該時間間隔410のサンプリングデータは100個となる。そして、1つの区間420あたりの角速度センサのデータは、200msの時間間隔の分、即ち20個となる。
そして、オフセット推定部160は、角速度センサ112の20個のデータから最大値および最小値を算出し、その差が予め定められた閾値の範囲内であれば、20個のデータがオフセット推定に適したデータであると判断する。また、オフセット推定部160は、最大値および最小値の差が当該閾値の範囲外であれば、20個のデータがオフセット推定に適さないデータであると判断してオフセット推定には使用しない。
オフセット推定部160は、5つの区間420それぞれについて、オフセット推定に適した区間であるか否かの判断を実行する。図10は、4つの区間420がオフセット推定に適した区間であると判断された例を示す。即ち、図10は、オフセット推定部160は、区間420aについて、角速度センサ112の出力データの最大値が予め定められた閾値を超えるとして、オフセット推定には適さない区間と判断した例である。
ここで、オフセット推定部160が、区間420の個数が予め定められた個数以上であるか否かを判断する閾値を3と更に設定していた場合を説明する。この場合、オフセット推定部160は、4つの区間420がオフセットに適していると判断されており、かつ個数の閾値を超えていることから、4つの区間420の角速度センサ112の出力データ、即ち、合計800msec分の、80個の角速度センサ112の出力データの平均値をオフセットとして算出する。
図10において、オフセット推定部160は、それぞれの区間420内の角速度センサ112の出力データの最大値および最小値に基づいて、それぞれの区間420がオフセット推定に適するか否かを判断する例を説明した。これに代えて、またはこれに加えて、オフセット推定部160は、区間420毎に角速度センサ112の出力データの平均値を求め、当該平均値に基づいてそれぞれの区間420がオフセット推定に適するか否かを判断してもよい。
図11は、本実施形態に係るオフセット推定部160が、複数の区間420がオフセットに適すると判断する一例を示す。また、図12は、本実施形態に係るオフセット推定部160が、複数の区間420がオフセットに適さないと判断する一例を示す。オフセット推定部160は、例えば、4つの区間420毎に算出した4つの平均値422の中から最大値および最小値を算出し、最大値と最小値の差が予め定められた閾値424の範囲内か否かに応じて、当該4つの区間420がオフセット推定に適するか否かを判断する。
図11の例において、4つの区間420に対応する4つの平均値422の最大値および最小値の差が、予め定められた閾値424の範囲内に存在するので、オフセット推定部160は、当該4つの区間420の角速度センサ112の出力データをオフセット推定に使用する。また、図12の例において、4つの平均値422の最大値および最小値の差が、予め定められた閾値424の範囲外となるので、オフセット推定部160は、当該4つの区間420がオフセット推定に適していないと判断して、4つの区間420の角速度センサ112の出力データをオフセット推定に使用しない。このように、オフセット推定部160は、角速度センサ112の出力データの最大値、最小値、および平均値に基づいて、オフセット推定に適するデータか否かを判断するので、雑音等による変動の影響を除去して、オフセット推定精度の劣化を防止することができる。
また、オフセット推定部160は、さらに、過去に推定されたオフセットが存在する場合、当該過去のオフセットと現時点で推定されたオフセットとに基づいて、現時点のオフセットを判断してよい。例えば、オフセット推定部160は、一のオフセットよりも過去に推定したオフセットが存在する場合、過去に推定したオフセットの平均値と、一のオフセットとの差の絶対値が予め定められた閾値よりも小さい場合に、一のオフセットを出力する。また、オフセット推定部は、過去に推定したオフセットの平均値と一のオフセットとの差の絶対値が予め定められた閾値よりも大きい場合に、一のオフセットを出力しない。この場合、オフセット推定部160は、一のオフセットの推定よりも1つ前に推定したオフセットを継続して用いてよい。
また、オフセット推定部160は、一のオフセットよりも過去に推定したオフセットが存在する場合、過去に推定したオフセットの分散と一のオフセットの分散とに基づき、一のオフセットを出力するか否かを判断してもよい。ここで、一のオフセットの分散とは、一例として、当該一のオフセットの推定に用いた角速度センサ112の出力データの分散を用いる。このように、オフセット推定部160は、推定したオフセットが過去のオフセット推定値と比べて突発的に大きく異なる値になった場合は、何らかの雑音および/または誤動作に起因するものとして、オフセットとして採用しない。これによって、オフセット推定部160は、雑音等による変動の影響を除去して、オフセット推定精度の劣化を防止することができる。
図13は、本実施形態に係るオフセット推定装置100として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、例えば、携帯機器10の内部に搭載される。これに代えて、コンピュータ1900は、携帯機器10の外部に備えられ、携帯機器10からのセンサ出力を受信して、オフセット推定結果等を携帯機器10に送信してもよい。この場合、コンピュータ1900は、一例として、携帯機器10と無線で送受信する。
コンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、および表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、記憶部2040、入出力部2060と、ROM2010と、カードスロット2050と、入出力チップ2070とを備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000およびグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010およびRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、記憶部2040、入出力部2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。記憶部2040は、コンピュータ1900内のCPU2000が使用するプログラムおよびデータを格納する。記憶部2040は、不揮発性メモリであり、例えば、フラッシュメモリまたはハードディスク等である。
入出力部2060は、コネクタ2095と接続され、外部とプログラムまたはデータを送受信し、RAM2020を介して記憶部2040に提供する。入出力部2060は、規格化されたコネクタおよび通信方式で外部と送受信してよく、この場合、入出力部2060は、USB、IEEE1394、HDMI(登録商標)、またはThunderbolt(登録商標)等の規格を用いてよい。また、入出力部2060は、Bluetooth(登録商標)等の無線通信規格を用いて外部と送受信してもよい。
また、入出力コントローラ2084には、ROM2010と、カードスロット2050、および入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、および/または、コンピュータ1900のハードウェアに依存するプログラム等を格納する。カードスロット2050は、メモリカード2090からプログラムまたはデータを読み取り、RAM2020を介して記憶部2040に提供する。入出力チップ2070は、カードスロット2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続してもよい。
RAM2020を介して記憶部2040に提供されるプログラムは、入出力部2060を介して、またはメモリカード2090等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内の記憶部2040にインストールされ、CPU2000において実行される。
プログラムは、コンピュータ1900にインストールされ、コンピュータ1900を取得部120、保持状態判定部130、歩行状態判定部140、パターン記憶部150、オフセット推定部160、およびパラメータ制御部170として機能させる。
プログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部120、保持状態判定部130、歩行状態判定部140、パターン記憶部150、オフセット推定部160、およびパラメータ制御部170として機能させる。そして、この具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有のオフセット推定装置100が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、記憶部2040、メモリカード2090、または入出力部2060を介して接続される記憶装置等に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置または通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、記憶部2040、メモリカード2090、または入出力部2060を介して接続される記憶装置等に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により記憶装置へと書き戻す。このような処理において、RAM2020は、記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、および/または記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(または不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、メモリカード2090の他に、DVD、Blu-ray(登録商標)、またはCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。