一度にイメージの全体を表示するのに十分に大きくない画面上にイメージが表示されるとき、特定の実施形態は、ユーザがチルティング動作(tilting motion)を使用することによって、1つまたは複数の方向にイメージをスクロールするのを可能にすることができる。イメージは、限定ではなく例として、フォト、フォト・アルバムとして表されるいくつかのフォト、eメールのリスト、ウェブ・ページ、マップ、音楽のライブラリの視覚表現、ビデオ・ゲーム、または技術的な図面を含む、画面上に表示され得る任意の視覚的なコンテンツを含むことができる。
コンピューティング装置は、イメージについてのスクロール範囲を判定し、ジャイロスコープに従って初期チルト(initial tilt)を測定し、イメージについての原点位置を判定することができる。スクローリングを作動させるための閾値を満たす動作が満たされたというジャイロスコープからの指示を、コンピューティング装置が受信すると、コンピューティング装置は、センサからの入力およびスクロール範囲に基づいて、進行パラメータ(progress parameter)を計算する。コンピューティング装置は次いで、進行パラメータに基づいて、イメージの表示を更新する。動作が検出されたというセンサからの指示をコンピューティング装置が受信し続けるとき、コンピューティング装置は、イメージの表示を適切に更新し続ける。コンピューティング装置はまた、原点位置を再校正するためのユーザ入力を受信することができ、その点にて新しい原点位置に基づいたスクローリングを続けることができる。
図1A〜1Fは、本明細書で開示される特定の実施形態による、イメージをスクロールする例示的使用事例を示すワイヤフレームである。図1Aに示すように、ユーザは、スマートフォンなどのコンピューティング装置を使用して、ビーチ景色のパノラマ・フォトを閲覧することができ、パノラマ・フォトは、全体のイメージが画面上で見えるようにサイズ変更されるとき、多くの詳細を閲覧するにはあまりにも小さすぎる。コンピューティング装置の実施形態は、図3に関してさらに詳細に説明される。ユーザは、図1Bに示すように、イメージの垂直方向の全範囲が表示領域全体をいっぱいに占めるように、イメージ上でズーム・インすることが可能であってよい。この時点で、ユーザは、(図1Bにおいて点線として示される)表示画面の平面上にある垂直軸に沿って横方向にスマートフォンをチルトして(tilt)、パノラマ・イメージをスクロール往復し、イメージの左エッジからイメージの右エッジまで、およびその逆も同様に、パノラマ・イメージの全体像を閲覧することができる。別の例では、ユーザは、スマートフォンを使用して連絡先のリストを閲覧し、表示画面の平面上にある水平軸に沿って上下にスマートフォンをチルトして、連絡先のリストをスクロールすることができる。別の例では、ユーザは、スマートフォンを使用してマップを閲覧し、表示画面の平面上にある水平軸および垂直軸に沿って任意の方向にスマートフォンをチルトし、マップをスクロールすることができる。本開示の範囲内で、「チルティング」は、ジャイロスコープによって測定することができる任意の動作を指し、「チルト」の測定は、ジャイロスコープによって測定することができる、ロール、ピッチ、ヨー、またはそれらの任意の組合せの任意の測定を指す。本明細書で説明するいくつかの実施形態はそのまわりでチルティングが行われ得る単一の軸を指すことがあるが、当業者は、2つ以上の軸に対して本明細書で説明するスクローリング方法が実装されてもよいことに気付くであろう。
特定の実施形態では、図1Bに図示される例において示すように、(ズーム・イン・コマンドが受信された直後に)イメージが表示されるとき、フォトは、全体的なパノラマ・イメージに対して中心となるように表示され、この原点位置は、イメージにおける位置であり、そこからスクローリングが始まることができる。特定の実施形態では、原点位置を、特定のアプリケーションに従って、イメージにおけるなんらかの位置に設定することができる。例えば、ライブラリにおける本の棚のパノラマ・イメージにざっと目を通して、視覚認識によって1つまたは複数の特定の本を見つけるようにユーザが求められるアプリケーションでは、原点位置をイメージの左エッジに設定することができる。別の例で、連絡先のリストの場合は、原点位置が、リストの上部に、またはアルファベットの選択された文字の連絡先リストにおける最初のエントリに設定され、ユーザがそこから下にスクロールする(および後進する)ことができる。特定の実施形態では、ユーザの選択に従って、原点位置をイメージにおけるなんらかの位置に設定することができる。例えば、米国のマップを表示するとき、ユーザによって、原点位置が、ユーザによって選択された場所(例えば、グランド・キャニオン地域)に設定され、ユーザがそこから任意の方向にマップのまわりでスクロールすることができる。特定の実施形態では、該当要因に従って、イメージにおける任意の適切な位置に、原点位置を設定することができる。
特定の実施形態では、図1Bに図示される例によって示すように、イメージが表示されるとき(やはり、ズーム・イン・コマンドが受信された直後に)、コンピューティング装置はまた、ユーザにスクローリングを開始するよう促す、および/または、そのような特徴が利用可能であるとユーザに通知する、視覚ヒントを表示することができる。ヒントは、どの方向にスクローリングが可能であるのかを示すことができ、すなわち、図1Bに示すように、スクローリングが両方向に可能であることを、他方では、図1Fで、(イメージのエッジに達しているために)スクローリングが1つの方向にのみ可能であることを示すことができる。
図1C〜図1Fは、図1Bに示された原点位置および0°の初期チルトからスタートする、図1Aのパノラマ・フォトのズーム・インした表示をスクロールする例を示す。図1C〜図1Fに示すように、ユーザが初期チルトからコンピューティング装置を(コンピューティング装置を保持しているユーザを基準として)時計回りにチルトし始めると、コンピューティング装置は、チルトにおける変化を測定することによって、動作(movement)を検出する。スクローリングを作動させるための閾値が満たされると(例えば、初期チルトから2°の最小デルタを超えてコンピューティング装置をいずれかの方向にチルトするか、または最小回転速度よりも早くコンピューティング装置をいずれかの方向にチルトする)、コンピューティング装置は、測定されたチルトに従ってイメージをスクロールし始める。図1C〜図1Fに示すように、チルトが増大するにつれて、イメージがスクロールされる程度もまた、エッジに達するのに必要とされる度合いまでユーザがコンピューティング装置をチルトしているときの図1Fでのイメージのエッジに達するまで、増大する。
図2は、特定の実施形態による、イメージをスクロールするための例示的方法200を示す。方法は、コンピューティング装置が、表示するためにイメージを提供するステップ210で開始することができる。特定の実施形態では、コンピューティング装置は、統合された表示画面を有するハンドヘルド装置を含むことができる。特定の実施形態では、コンピューティング装置は、外部表示画面に接続されてよい。本開示の範囲内で、第1の構成要素は、それが物理的に接続されるとき(例えば、ワイヤもしくはコードを介して)、ワイヤレスで接続されるとき(例えば、BLUETOOTH、近距離場通信(NFC:Near−Field Communication)、RF、もしくはWi−Fiを介して)、または任意の他の種類のネットワーク(例えば、LAN、プライベートWAN、もしくはインターネット)を通して接続されるときに、第2の構成要素に接続される。
ステップ220で、コンピューティング装置は、軸に対して、イメージについてのスクロール範囲を判定する。特定の実施形態では、スクロール範囲は、イメージのアスペクト比、ならびにイメージの絶対寸法に基づいて判定され、例えば、スクロール範囲=((フォトの幅/フォトの高さ)*(度からラジアンへの変換(DEGREES_TO_RADIANS)(チルト範囲)/(長さ/高さ)))であり、ただし、チルト範囲は、イメージの1つのエッジから反対側のエッジまでスクロールするために必要とされるチルトの度合いであり、長さ×高さは、イメージのアスペクト比である(ただし、長さは、それに沿ってスクローリングが行われ得る寸法である)。チルト範囲パラメータは、イメージのアスペクト比に従って様々であってよく、その結果、より大きなチルト範囲が、3×1のアスペクト比を有するパノラマ・イメージの長さに沿ってスクロールするために使用されてよく、一方でより小さなチルト範囲は、3×3イメージの長さに沿ってスクロールするために使用されてよい。特定の実施形態では、ユーザが画面を閲覧しづらい程度にまで装置をチルトすることをユーザが要求されないことを保証するように、チルト範囲を制約することもまたできる。
ステップ230で、コンピューティング装置は、ジャイロスコープ・センサを使用してチルトを測定する。測定されたチルトは、初期チルトを含み、そこからチルトにおける任意の変化が測定されることになる。例えば、水平向きでパノラマ・イメージを表示している、統合されたジャイロスコープを有するハンドヘルド・コンピューティング装置が、垂直軸に対して0.3°であるとしてチルトを測定する場合は、装置を保持しているユーザが装置をほぼ完全に平らに保持しているので、装置によって登録された後続の動作に関連して測定された任意のチルトは、その初期チルトからのデルタとして測定されることになる。特定の実施形態では、ユーザがその同じイメージを閲覧している間に全体的な向きが変化する場合(例えば、ユーザがスマートフォンを使用している間に横向きに寝そべる場合)、コンピューティング装置は、進行パラメータを判定するために後続のチルト測定を適切に適用しながら、ディスプレイに対してイメージの表示をスクロールするための軸を保存するために、初期チルトを更新することができる。装置によって登録された後続の動作に関連して測定された任意のチルトは、その更新された初期チルトからのデルタとして測定されることになる。図1Bに示される例において示すように、初期チルトは、0°で測定される。特定の実施形態では、コンピューティング装置は、統合されたジャイロスコープを有するハンドヘルド装置を含むことができる。特定の実施形態では、コンピューティング装置は、ジャイロスコープを含む外部ハンドヘルド・コントローラに接続されてもよい。
ステップ240で、コンピューティング装置は、原点位置を判定する。図1Bに関して上で説明したように、原点位置を、特定のアプリケーションに従って、ユーザ選択に従って、イメージにおける特定の位置に、または該当要因に従ってイメージにおける任意の適切な位置に、設定することができる。
ステップ250で、コンピューティング装置は、ジャイロスコープ・センサが、スクローリングを作動させるための閾値を満たす動作を検出したという指示を受信する。上述したように、閾値は、スクローリングを作動させるために満たされる必要があってよく、このことは、典型的な手の震えがイメージのスクローリングをトリガするのを防ぐのに役立つことができる。1つの例示的実施形態では、閾値は、いずれかの方向において、初期チルトに基準として測定されたチルトにおける最小変化を含むことができる。別の例示的実施形態では、閾値は、いずれかの方向における最小回転速度(例えば、スクローリング機能がコンピューティング装置の鋭いチルティング・フリックによって作動する場合)を含むことができる。
ステップ260で、コンピューティング装置は、センサからの入力およびスクロール範囲に基づいて、どのようにイメージをスクロールするかを示す進行パラメータを計算する。進行パラメータは、限定ではなく例として、(1)ジャイロスコープによって報告される先行チルト測定、(2)ジャイロスコープによって報告される現在のチルト測定、(3)そこでジャイロスコープが定期的な間隔で測定値をサンプリングする、ジャイロスコープによって報告される先行チルト測定と現在のチルト測定との間のデルタ、(4)ジャイロスコープによって報告される先行チルト測定と現在のチルト測定との間のデルタに基づいて計算される回転速度、(5)最後のチルト測定について判定された、絶対位置に対する原点位置のオフセット、または(6)ジャイロスコープによって報告される現在のチルト測定について判定された、絶対位置に対する原点位置のオフセットを含む、1つまたは複数の属性を含むことができる。特定の実施形態では、進行パラメータは、ユーザの装置保持姿勢(device-holding stance)における段階的な変化がスクローリングをトリガするのを防ぐために、最小回転速度を満たすことを要求されてよい。
特定の実施形態では、(ユーザがスクロール範囲を超えてスクロールできないように)入力データをイメージの寸法に限定するために、入力がクリップされてもよい。特定の実施形態では、手の震えによる揺れを低減または排除し、平滑なスクローリング動作を生成するように、ジャイロスコープから受信した入力データを平滑化することができる。入力を平滑化することは、(入力におけるスパイクを排除するために)ローパス・フィルタを入力データに適用すること、および/または、(安定して進行する平滑なスクローリング動作を生み出すために)RK4(ルンゲ・クッタ(Runge−Kutte))ソルバを入力に適用することを含むことができる。
ステップ270で、コンピューティング装置は、進行パラメータに基づいて、イメージのスクローリングを示すためのイメージ表示を更新する。イメージ表示は、仮想ばね効果などの、特殊効果を含むことができる(例えば、イメージは、イメージのエッジまでスクロールされてエッジを「ヒット」するときに跳ね返る(bounce)、および/または、イメージ・スクローリングは、エッジが近づくと減速し、仮想ばねがさらに伸ばされる)。特定の実施形態では、仮想ばねの一端を原点位置でイメージに接続し、仮想ばねの他端を画面上のある位置(例えば、画面の中心、画面の隅、または画面のエッジ)に接続することによって、画面上に表示されたイメージの移動をシミュレートすることができる。任意の数の仮想ばねを、オブジェクトに接続することができる。特定の実施形態では、フックの法則:F=−kxに基づいて、オブジェクトの移動を判定することができ、ただし、xは、ばねの端部の、ばねの平衡位置からの変位(例えば、距離、SI単位:メートル)であり、Fは、その端部でばねによって発揮される復元力(SI単位:Nまたはkg・m/s2)であり、kは、比率またはばね定数と呼ばれる定数である(SI単位:N/mまたはkg/s2)。この式が成り立つとき、挙動は線形である。復元力は常に変位の反対側の方向に作用するので、式の右側には負の符号がある(例えば、ばねが左に伸びるとき、それは右に引き戻す)。一般には、ばね移動を判定するにあたり、以下の特性が関与する:質量、ダンピング、ばね剛性、ばねレスト長。いくつかの実装では、仮想質量をオブジェクトに割り当てることができる。
特定の実施形態では、仮想ばねは、表示されているイメージの属性に基づいて、異なる状態値を有することができる。ばねは、状態値の1つのセットから別のセットに、カットするのではなくランプして(ramp)、オブジェクトの移動のアニメーション・シーケンスをより自然に見えるようにすることができる。例えば、イメージのエッジと原点位置との間の距離を使用して、アニメーションに使用されるばねの締め付け、または状態値の1つのセットから別のセットにランプするレベルを判定することができる。
特定の実施形態では、物理演算エンジンが、ばね移動をシミュレートするアルゴリズムを実装する。1つまたは複数の仮想ばねをオブジェクトに接続することができる。例えば、画面上に表示されたイメージのスクローリングを作動させるためにコンピューティング装置がチルトされる場合、仮想ばねをイメージの原点位置に接続することができる。オブジェクトが移動するにつれて(例えば、チルティング動作によってスクロールされて)、その移動は、仮想ばねの経路をたどり、その結果、オブジェクトの移動は、ばねの移動の物理学に基づいてアニメーション化される。特定の実施形態では、アルゴリズムが、張力、質量、ダンピング効果、測定されたチルト、その他などの変数を考慮に入れることができる。例として、イメージが原点位置から離れエッジに近づいてスクロールされる(それにより、ばねをさらに伸ばす)につれて、スクローリング速度を減速することができる。逆に、イメージが原点位置に向かってスクロール・バックするにつれて、スクローリング速度を加速することができる。別の例として、イメージが原点位置から離れてスクロールしてエッジを「ヒット」するとき、イメージは、エッジに達すると跳ね返るように見えてよい。
特定の実施形態では、オブジェクト上でズーム・インするとき、オブジェクトは、サイズが増大する。オブジェクト上でズーム・アウトするとき、オブジェクトは、サイズが縮小する。オブジェクトのサイズの変化を、アニメーション・シーケンスにおいて示すことができ、ここで、オブジェクトの移動は、ばね移動に基づくことができる。特定の実施形態では、オブジェクトがその最終目的地に向かって移動するとき、オブジェクトの中間位置は、ばね移動に基づいて補間されてよい(interpolated)。新しい原点位置の指定に基づいて原点位置が再校正されるとき、仮想ばねを、新しい原点位置に再接続することができる。
ステップ280で、コンピューティング装置は、新しい原点位置で原点位置を再校正するための入力を受信することができる。ユーザが原点位置から離れて新しい位置へとスクロールした後で、ユーザは、新しい位置で原点位置を再校正する(例えば、クリックし、新しい位置の上で指を下方に保持する)ことができる。その場合、コンピューティング装置は、ステップ240に戻って新しい原点位置を判定し、次いで、新しい原点位置に基づいて、スクローリング機能を提供し続けることができる。
ステップ290で、コンピューティング装置は、ユーザがコンピューティング装置をチルトし続けているためにセンサが動作を検出しているという、連続した指示を受信することができる。特定の実施形態では、ステップ260から、センサが連続的な動作を検出する限り、図2の方法を繰り返すことができる。特定の実施形態では、コンピューティング装置が閾値時間期間よりも長くにわたって動作がないことを検出する場合、または、コンピューティング装置が、センサによって検出された動作の大きさが閾値未満に低下したことを検出する場合に、コンピューティング装置は、ステップ250に戻ることができる、または、取って代わって自動的にイメージをパンすることができる。
特定の実施形態では、イメージが最初に画面上に表示されるとき、それは自動的にイメージを1回パンすることができ、次いでパンが完了すると、イメージは、コンピューティング装置をチルトすることによって、スクローリングのために利用可能であってもよい。イメージをパンすることに関係して、特定の実施形態は、限定ではなく例として、本願明細書に援用する「イメージのパンニングおよびズーミング効果(Image Panning and Zooming Effect)」と題され、2012年11月14日に出願された、米国特許出願第13/676,831号に開示されている、1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用することができる。
特定の実施形態は、適切な場合、図2の方法の1つまたは複数のステップを反復することができる。本開示は、図2の方法の特定のステップが特定の順序で行われるものとして説明および図示するが、本開示は、任意の適切な順序で行われる図2の方法の任意の適切なステップを企図する。さらに、本開示は、図2の方法の特定のステップを実施する特定の構成要素、装置、またはシステムを説明および図示するが、本開示は、図2の方法の任意の適切なステップを実施する任意の適切な構成要素、装置、またはシステムの任意の適切な組合せを企図する。
図3は、例示的なコンピュータ・システム300を示す。特定の実施形態では、1つまたは複数のコンピュータ・システム300は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータ・システム300は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータ・システム300上で実行中のソフトウェアが、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施しまたは本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム300の1つまたは複数の部分を含む。本明細書では、適切な場合、コンピュータ・システムに対する参照はコンピューティング装置を包含し、逆も同様である。さらに、適切な場合、コンピュータ・システムに対する参照は、1つまたは複数のコンピュータ・システムを包含する。
本開示は、任意の適切な数のコンピュータ・システム300を企図する。本開示は、任意の適切な物理的形態を取るコンピュータ・システム300を企図する。限定ではなく例として、コンピュータ・システム300は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングル・ボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)やシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話型キオスク、メインフレーム、コンピュータ・システムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2つ以上の組合せでよい。適切な場合、コンピュータ・システム300は、1つまたは複数のコンピュータ・システム300を含むことができ、一体型または分散型でよく、複数の場所にわたるものでよく、複数のマシンにわたるものでよく、複数のデータセンタにわたるものでよく、またはクラウド内に常駐することができ、クラウドは、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含むことができる。適切な場合、1つまたは複数のコンピュータ・システム300は、実質的な空間的または時間的な限定なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく例として、1つまたは複数のコンピュータ・システム300は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアル・タイムに、またはバッチ・モードで実施することができる。適切な場合、1つまたは複数のコンピュータ・システム300は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
特定の実施形態では、コンピュータ・システム300は、プロセッサ302、メモリ304、ストレージ306、入力/出力(I/O)インターフェース308、通信インターフェース310、およびバス312を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータ・システムを説明および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータ・システムを企図する。
特定の実施形態では、プロセッサ302は、コンピュータ・プログラムを構成するような命令を実行するハードウェアを含む。限定ではなく例として、命令を実行するために、プロセッサ302は、内部レジスタ、内部キャッシュ、メモリ304、またはストレージ306から命令を取り出し(またはフェッチし)、その命令を復号化および実行し、次いで内部レジスタ、内部キャッシュ、メモリ304、またはストレージ306に1つまたは複数の結果を書き込むことができる。特定の実施形態では、プロセッサ302は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ302を企図する。限定ではなく例として、プロセッサ302は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(translation lookaside buffer:TLB)を含むことができる。命令キャッシュ内の命令は、メモリ304またはストレージ306内の命令のコピーでよく、命令キャッシュは、プロセッサ302によるそうした命令の検索を加速することができる。データ・キャッシュ内のデータは、プロセッサ302で実行中の命令が演算するためのメモリ304またはストレージ306内のデータ、プロセッサ302で実行中の後続の命令によるアクセスのために、またはメモリ304もしくはストレージ306に書き込むために、プロセッサ302で実行された以前の命令の結果、あるいは他の適切なデータのコピーでもよい。データ・キャッシュは、プロセッサ302による読取りまたは書込み演算を加速することができる。TLBはプロセッサ302のための仮想アドレス変換(virtual-address translation)を加速することができる。特定の実施形態では、プロセッサ302は、データ、命令、またはアドレス用の1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ302を企図する。適切な場合、プロセッサ302は、1つまたは複数の演算論理装置(arithmetic logic unit:ALU)を含むことができ、マルチコア・プロセッサでよく、または1つまたは複数のプロセッサ302を含むことができる。本開示は特定のプロセッサを説明および図示するが、本開示は任意の適切なプロセッサを企図する。
特定の実施形態では、メモリ304は、プロセッサ302が実行するための命令、またはプロセッサ302が演算するためのデータを格納するメイン・メモリを含む。限定ではなく例として、コンピュータ・システム300は、ストレージ306または別のソース(例えば、別のコンピュータ・システム300など)からメモリ304に命令をロードすることができる。次いでプロセッサ302は、メモリ304から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ302は、内部レジスタまたは内部キャッシュから命令を取り出し、その命令を復号化することができる。命令の実行中または実行後に、プロセッサ302は、1つまたは複数の結果(これは中間結果または最終結果でよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ302は、そうした結果の1つまたは複数をメモリ304に書き込むことができる。特定の実施形態では、プロセッサ302は、(ストレージ306または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ304内の命令のみを実行し、(ストレージ306または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ304内のデータのみに対して演算する。1つまたは複数のメモリ・バス(これはそれぞれアドレス・バスおよびデータ・バスを含むことができる)が、プロセッサ302をメモリ304に結合することができる。バス312は、以下で説明するように、1つまたは複数のメモリ・バスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(memory management unit:MMU)が、プロセッサ302とメモリ304との間に常駐し、プロセッサ302によって要求されたメモリ304へのアクセスを可能にする。特定の実施形態では、メモリ304はランダム・アクセス・メモリ(RAM)を含む。適切な場合、このRAMは揮発性メモリでよい。適切な場合、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)でよい。さらに、適切な場合、このRAMは、単一ポートまたはマルチポートRAMでよい。本開示は任意の適切なRAMを企図する。適切な場合、メモリ304は、1つまたは複数のメモリ304を含むことができる。本開示は特定のメモリを説明および図示するが、本開示は任意の適切なメモリを企図する。
特定の実施形態では、ストレージ306は、データまたは命令用のマス・ストレージを含む。限定ではなく例として、ストレージ306は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含むことができる。ストレージ306は、適切な場合、取外し可能または取外し不能(または固定)媒体を含むことができる。ストレージ306は、適切な場合、コンピュータ・システム300の内部または外部でよい。特定の実施形態では、ストレージ306は不揮発性固体メモリである。特定の実施形態では、ストレージ306は読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気書換え可能ROM(EAROM)、またはフラッシュ・メモリ、あるいはこれらのうちの2つ以上の組合せでよい。本開示は、任意の適切な物理的形態を有するマス・ストレージ306を企図する。適切な場合、ストレージ306は、プロセッサ302とストレージ306との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ306は、1つまたは複数のストレージ306を含むことができる。本開示は特定のストレージを説明および図示するが、本開示は任意の適切なストレージを企図する。
特定の実施形態では、I/Oインターフェース308は、コンピュータ・システム300と1つまたは複数のI/O装置との間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム300は、適切な場合、これらのI/O装置のうちの1つまたは複数を含むことができる。これらのI/O装置のうちの1つまたは複数は、人とコンピュータ・システム300との間の通信を可能にすることができる。限定ではなく例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/O装置、またはこれらのうちの2つ以上の組合せを含むことができる。I/O装置は1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/O装置およびそのための任意の適切なI/Oインターフェース308を企図する。適切な場合、I/Oインターフェース308は、プロセッサ302がこれらのI/O装置のうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース308は、適切な場合、1つまたは複数のI/Oインターフェース308を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、本開示は任意の適切なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース310は、コンピュータ・システム300と、1つまたは複数の別のコンピュータ・システム300あるいは1つまたは複数のネットワークとの間の通信(例えば、パケット・ベースの通信など)用の1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インターフェース310は、イーサネット(登録商標)または他のワイヤ・ベースのネットワークと通信するネットワーク・インターフェース・コントローラ(network interface controller:NIC)またはネットワーク・アダプタ、あるいはWi−Fiネットワークなどのワイヤレス・ネットワークと通信するワイヤレスNIC(wire-based network or a wireless:WNIC)またはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インターフェース310を企図する。限定ではなく例として、コンピュータ・システム300は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(metropolitan area network:MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスでよい。1例を挙げると、コンピュータ・システム300は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH WPANなど)、Wi−Fiネットワーク、WI−MAXネットワーク、携帯電話網(例えば、Global System for Mobile Communication(GSM(登録商標))ネットワークなど)、または他の適切なワイヤレス・ネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム300は、適切な場合、これらのネットワークのいずれかに関する任意の適切な通信インターフェース310を含むことができる。通信インターフェース310は、適切な場合、1つまたは複数の通信インターフェース310を含むことができる。本開示は特定の通信インターフェースを説明および図示するが、本開示は任意の適切な通信インターフェースを企図する。
特定の実施形態では、バス312は、コンピュータ・システム300の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス312は、アクセラレーテッド・グラフィックス・ポート(Accelerated Graphics Port:AGP)または他のグラフィックス・バス、Enhanced Industry Standard Architecture(EISA)バス、フロント・サイド・バス(FSB)、HYPERTRANSPORT(HT)相互接続、Industry Standard Architecture(ISA)バス、INFINIBAND相互接続、低ピン・カウント(low-pin-count:LPC)バス、メモリ・バス、Micro Channel Architecture(MCA)バス、Peripheral Component Interconnect(PCI)バス、PCI−Express(PCIe)バス、serial advanced technology attachment(SATA)バス、Video Electronics Standards Association local(VLB)バス、または別の適切なバス、あるいはこれらのうちの2つ以上の組合せを含むことができる。バス312は、適切な場合、1つまたは複数のバス312を含むことができる。本開示は特定のバスを説明および図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は協同および個々の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが一緒に、または個別に」を意味する。
本開示の範囲は、当業者なら理解するはずである、本明細書で説明または図示される例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的実施形態に限定されない。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明または図示される構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは置換を含むことができる。さらに、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。