(57)【特許請求の範囲】
【請求項１】
カメラで撮影される画像に関連付けられるシェイクブラーおよびモーションブラーを制御するための方法であって、
前記画像に関連する第１の画像フレームおよび前記第１の画像フレームの後に連続して撮影される第２の画像フレームを受信することと、
前記第１の画像フレームおよび前記第２の画像フレームにおける前記カメラの第１の動きを、前記カメラに含まれ前記カメラと同期して画像をサンプリングするように構成される少なくとも１つの動きセンサを用いて判定することと、
前記第１の画像フレームと前記第２の画像フレームとを比較することによって、前記第１の画像フレームと前記第２の画像フレームとの間の前記カメラの第２の動きを判定することと、
前記第１の動きに基づいて、少なくとも前記画像に関連付けられるシェイクブラーの一部を制御することと、
前記第２の動きに基づいて、少なくとも前記画像に関連付けられるモーションブラーの一部を制御することと、
を含む、方法。
【請求項２】
前記カメラは、画素多重カメラを含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの動きセンサは、少なくとも１つの加速度計またはジャイロスコープを含む、請求項１に記載の方法。
【請求項４】
前記カメラは、モバイルデバイスの一部である、請求項１に記載の方法。
【請求項５】
前記第１の動きは、前記第１の動きの方向および前記第１の動きの大きさを含む、請求項１に記載の方法。
【請求項６】
前記第２の動きは、前記第２の動きの方向および前記第２の動きの大きさを含む、請求項１に記載の方法。
【請求項７】
前記第１の画像フレームおよび前記第２の画像フレームは、第１の解像度に関連付けられ、前記第１の解像度は所定の解像度よりも低く、前記画像は第２の解像度と関連付けられ、前記第２の解像度は前記所定の解像度以上である、請求項１に記載の方法。
【請求項８】
さらに前記画像のためのコントローラを提供することを含む、請求項１に記載の方法。
【請求項９】
前記コントローラは、ユーザのジェスチャ、またはユーザの入力によって制御される、請求項８に記載の方法。
【請求項１０】
前記コントローラは、前記画像に関連付けられるモーションブラーのユーザ定義される量を除去することができる、請求項８に記載の方法。
【請求項１１】
前記コントローラは、前記画像の残りの部分に影響を与えることなく、前記画像内の第１のオブジェクトに関連付けられるモーションブラーのユーザ定義される量を除去することができる、請求項８に記載の方法。
【請求項１２】
シェイクブラーの少なくとも一部を制御することは、シェイクブラーの少なくとも一部を低減させることを含み、モーションブラーの少なくとも一部を制御することは、モーションブラーの少なくとも一部を低減させることを含む、請求項１に記載の方法。
【請求項１３】
シェイクブラーの少なくとも一部を制御することは、シェイクブラーの少なくとも一部を増加させることを含み、モーションブラーの少なくとも一部を制御することは、モーションブラーの少なくとも一部を増加させることを含む、請求項１に記載の方法。
【請求項１４】
画像に関連付けられるシェイクブラーおよびモーションブラーを制御するためのシステムであって、
カメラを備え、
前記カメラは、
メモリと、
前記メモリと通信するプロセッサと、
前記プロセッサと通信し、および前記カメラにより撮影された画像を同期してサンプリングするように構成される少なくとも１つの動きセンサと、
前記メモリに格納され、前記プロセッサによって実行可能であり、
画像に関連する第１の画像フレームおよび前記第１の画像フレームの後に連続して撮影される第２の画像フレームを受信し、
前記第１の画像フレームまたは前記第２の画像フレームにおける前記カメラの第１の動きを、前記少なくとも１つの動きセンサを用いて判定し、
前記第１の画像フレームと前記第２の画像フレームとを比較することによって、前記第１の画像フレームと前記第２の画像フレームとの間の前記カメラの第２の動きを判定し、
前記第１の動きに基づいて、少なくとも前記画像に関連付けられるシェイクブラーの一部を制御し、
前記第２の動きに基づいて、少なくとも前記画像に関連付けられるモーションブラーの一部を制御する、ように構成されるモジュールと、
を含む、システム。
【請求項１５】
画像に関連付けられるシェイクブラーおよびモーションブラーを制御するためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
画像に関連する第１の画像フレームおよび前記第１の画像フレームの後に連続して撮影される第２の画像フレームを受信し、
前記第１の画像フレームおよび前記第２の画像フレームにおけるカメラの第１の動きを、前記カメラに含まれ前記カメラと同期して画像をサンプリングするように構成される少なくとも１つの動きセンサを用いて判定し、
前記第１の画像フレームと前記第２の画像フレームとを比較することによって、前記第１の画像フレームと前記第２の画像フレームとの間の前記カメラの第２の動きを判定し、
前記第１の動きに基づいて、少なくとも前記画像に関連付けられるシェイクブラーの一部を制御し、
前記第２の動きに基づいて、少なくとも前記画像に関連付けられるモーションブラーの一部を制御する、ように構成される、コンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
画像を撮影する場合、カメラのユーザが静止していない（またはカメラをゆらす）ときに撮影される画像は不鮮明になる。撮影された画像から画像を撮影した後に、この「シェイクブラー（ｓｈａｋｅ  ｂｌｕｒ）」を制御する必要がある。モーションブラー（ｍｏｔｉｏｎ  ｂｌｕｒ）は、静止画像または一連の静止画像において素早く移動するオブジェクトの筋がつくこと（ｓｔｒｅａｋｉｎｇ）である。撮影した画像から画像を撮像した後に、このモーションブラーを制御する必要がある。
【発明の概要】
【０００２】
本発明の実施形態は、画像に関連するシェイクブラーやモーションブラーを制御するためのシステム、方法およびコンピュータプログラムプロダクトを対象とする。例となる方法は、画像に関連する第１の画像フレームおよび第２の画像フレームを受信することと、第１の画像フレームまたは第２の画像フレームにおけるカメラの第１の動きを判定することと、第１の画像フレームと第２の画像フレームとの間のカメラの第２の動きを判定することと、第１の動きに基づいて、少なくとも画像に関連付けられるシェイクブラーの一部を制御することと、第２の動きに基づいて、少なくとも画像に関連付けられるモーションブラーの一部を制御することと、を含む。
【０００３】
いくつかの実施形態では、カメラは、画素多重カメラを含む。
【０００４】
いくつかの実施形態では、第１の動きは、カメラに関連付けられる動きセンサを使用して判定される。
【０００５】
いくつかの実施形態では、動きセンサは、カメラと実質的に同期して画像をサンプリングする。
【０００６】
いくつかの実施形態では、動きセンサは加速度計またはジャイロスコープを含む。
【０００７】
いくつかの実施形態では、カメラは、モバイルデバイスの一部である。
【０００８】
いくつかの実施形態では、第１の動きは、第１の動きの方向および第１の動きの大きさを含む。
【０００９】
いくつかの実施形態では、第２の動きは、第２の動きの方向および第２の動きの大きさを含む。
【００１０】
いくつかの実施形態では、第１の画像フレームおよび第２の画像フレームは第１の解像度に関連付けられ、第１の解像度は所定の解像度よりも低く、画像は第２の解像度と関連付けられ、第２の解像度は所定の解像度以上である。
【００１１】
いくつかの実施形態では、さらに画像のためのコントローラを提供することを含む。
【００１２】
いくつかの実施形態では、コントローラは、ユーザのジェスチャ、またはユーザの入力によって制御される。
【００１３】
いくつかの実施形態では、コントローラは、画像に関連付けられるモーションブラーのユーザ定義される量を制御することができる。
【００１４】
いくつかの実施形態では、コントローラは、画像の残りの部分に影響を与えることなく、画像内の第１のオブジェクトに関連付けられるモーションブラーのユーザ定義される量を制御することができる。
【００１５】
いくつかの実施形態では、シェイクブラーの少なくとも一部を制御することは、シェイクブラーの少なくとも一部を低減させることを含み、モーションブラーの少なくとも一部を制御することは、モーションブラーの少なくとも一部を低減させることを含む。
【００１６】
いくつかの実施形態では、シェイクブラーの少なくとも一部を制御することは、シェイクブラーの少なくとも一部を増加させることを含み、モーションブラーの少なくとも一部を制御することは、モーションブラーの少なくとも一部を増加させることを含む。
【００１７】
いくつかの実施形態では、画像に関連付けられるシェイクブラーおよびモーションブラーを制御するために、システムが提供される。システムは、カメラと、メモリと、プロセッサと、メモリに格納され、プロセッサによって実行可能であり、画像に関連する第１の画像フレームおよび第２の画像フレームを受信し、第１の画像フレームまたは第２の画像フレームにおけるカメラの第１の動きを判定し、第１の画像フレームと第２の画像フレームとの間のカメラの第２の動きを判定し、第１の動きに基づいて、少なくとも画像に関連付けられるシェイクブラーの一部を制御し、第２の動きに基づいて、少なくとも画像に関連付けられるモーションブラーの一部を制御する、ように構成されるモジュールと、を含む。
【００１８】
いくつかの実施形態では、画像に関連付けられるシェイクブラーおよびモーションブラーを制御するために、コンピュータプログラムプロダクトが提供される。コンピュータプログラムプロダクトは、画像に関連する第１の画像フレームおよび第２の画像フレームを受信し、第１の画像フレームまたは第２の画像フレームにおけるカメラの第１の動きを判定し、第１の画像フレームと第２の画像フレームとの間のカメラの第２の動きを判定し、第１の動きに基づいて、少なくとも画像に関連付けられるシェイクブラーの一部を制御し、第２の動きに基づいて、少なくとも画像に関連付けられるモーションブラーの一部を制御する、ように構成されるコードを含む、非一時的なコンピュータ可読媒体を含む。
【図面の簡単な説明】
【００１９】
このように一般的な用語で本発明の実施形態を説明され、参照がここで添付している図面に対してなされる。
【図１】図１は、本発明の実施形態による画像に関連するモーションブラーおよびシェイクブラーを制御するための処理フローを示す。
【図２】図２は、本発明の実施形態による、例示的なカメラを示す。
【発明を実施するための形態】
【００２０】
以下では、本発明の実施形態が図面を参照してより十分に説明され、全てではないが、いくつかの本発明の実施形態が示される。実際、本発明は多くの異なる形態で具体化されてもよく、本明細書に記載の実施形態に限定されると解釈されるべきではなく、むしろ本開示が適用可能な法的要件を満たすことができるように、これらの実施形態が提供される。番号は、全体を通して同じ要素を示す。
【００２１】
本発明は、撮影された画像に関連付けられるシェイクブラーおよびモーションブラーを制御することを対象とする（例えば、画像に関連する後処理手順の間に）。いくつかの実施形態では、本発明は、画素多重カメラを使用する。当該カメラは、光を受けるカメラレンズを含む。光は、カメラに配置される写真センサの一部の第１の部分で光を反射させる、カメラに設置される回転ミラーに当たる。光は、センサの一部の第１の部分からセンサの一部の第２の部分に反射される。続いて光は、センサの一部の第２の部分からセンサの一部の第３の部分に反射される、などである。センサの一部の各部分からの反射は、画像の一部の部分を含む。画像の一部の各部分は、低解像度の画像（例えば、所定の解像度未満を有する）であってもよい。画像の種々の一部の部分は、高解像度の画像（例えば、所定の解像度以上を有する）を形成するために組み合わされることができる。画像の種々の一部の部分は、画像フレームと呼ばれてもよい。本発明は、画素多重カメラを使用することに限定されるものではない。代替的な実施形態では、カメラの他のタイプが使用されてもよい。
【００２２】
本明細書で使用されるように、シェイクブラーおよびモーションブラーを制御することは、シェイクブラーおよびモーションブラーを変更することをいう。いくつかの実施形態において、シェイクブラーおよびモーションブラーを変更することは、シェイクブラーおよびモーションブラーを低減させること（例えば、除去すること）を指す。他の実施形態では、シェイクブラーおよびモーションブラーを変更することは、シェイクブラーおよびモーションブラーを増加させることを指す。
【００２３】
本発明において、画素多重カメラは、カメラに関連する加速度計および／またはジャイロスコープと同期される。加速度計および／またはジャイロスコープは、カメラのハウジング内に配置されてもよく、またはカメラのハウジングの内部および／または外部表面に沿って配置されてもよい。本明細書で使用されるように、ジャイロスコープは、カメラの方向を判定できるように、地球の重力を使用するデバイスである。本明細書で使用されるように、加速度計は、カメラの非重力的な加速度を測定するために使用されるデバイスである。本明細書で使用されるように、加速度計とジャイロスコープの両方は、動きの大きさと動きの方向を含むカメラの動きを判定できる、動きセンサである。
【００２４】
加速度計および／またはジャイロスコープは、実質的にカメラと同期した画像をサンプリングする。例えば、加速度計および／またはジャイロスコープのサンプリング周波数は１００Ｈｚである。これは、カメラ（およびカメラハウジング）が、画像フレーム内でどのように動くかの判定を可能にする。画像フレーム内でカメラがどのように動くかは、動きの方向および／または動きの大きさを含む。画像フレーム内でカメラがどのように動くかは、本明細書に記載されるシェイクブラーを含む。シェイクブラーを判定することにより、シェイクブラーは、図２に記載のシェイクブラーコントロールモジュールによって撮影された画像から補正または除去される。従って本発明は、カメラの動きを相殺する機械的な補償を使用することなく、シェイクブラーを除去することができる。
【００２５】
本明細書に記載のようにカメラは複数の画像フレームまたは本明細書に記載のように複数の画像の部分を撮影する。画像フレームは低解像度（例えば、所定の解像度未満）で撮影される。カメラは、両方のフレームを比較することによって、２つの連続して撮影された画像フレーム間に動きがあるか否かを判定できる。この動きの量および／またはこの動きの方向は、モーションブラーを含む。このモーションブラーが判定されると、このモーションブラーは、図２で説明されるモーションブラーコントロールモジュールによって、撮影された画像から補正または除去される。
【００２６】
いくつかの実施形態において、コントローラ（例えば、グラフィカルコントローラ）が、画像のために提供される。コントローラは、スライダーまたは他のインジケーターのようなウィジェットを含んでもよい。コントローラは、ユーザのジェスチャまたは他のユーザの入力を使用して制御されてもよい。コントローラは、ユーザが画像上に、または画像上のオブジェクト上に指やポインタを置くときに、画像（または画像上のオブジェクト）に隣接して配置されてもよく、または画像上（または、画像上のオブジェクト上）に表示されてもよい。いくつかの実施形態において、コントローラは、ユーザのジェスチャに基づいて、画像上のあるオブジェクトから画像上の他のオブジェクトに移動させることができる。カメラのユーザは、どのくらいのモーションブラーをユーザが画像から除去したいかを判定するために、コントローラの設定を変更することができる。いくつかの実施形態において、ユーザは、どのくらいのモーションブラー（例えば、の大きさ）をユーザが画像上の特定のオブジェクト（例えば、人、無生物等）から除去したいかを判定するために、コントローラの設定を変更することができる。したがって本発明は、ユーザが判定したモーションブラーの量を画像内の第１のオブジェクト上に保持することをユーザに可能にし、ユーザが判定したモーションブラーの量を画像内の第２のオブジェクトから除去することをユーザに可能にする。
【００２７】
図１の処理フローを参照すると、図１は、カメラ（例えば、画素多重カメラ）で撮影された画像に関連付けられるシェイクブラーおよびモーションブラーを制御するための処理フローを示す。いくつかの実施形態において、カメラは、モバイルデバイス（例えば、携帯電話）の一部である。ブロック１１０において処理フローは、画像に関連する第１の画像フレームおよび第２の画像フレームを受信することを含む。第１の画像フレームおよび第２の画像フレームは、所定の解像度未満である第１の解像度に関連付けられ、画像は、所定の解像度以上である第２の解像度と関連付けられる。ブロック１２０において処理フローは、第１の画像フレームまたは第２の画像フレームにおけるカメラの第１の動きを判定することを含む（例えば、加速度計および／またはジャイロスコープのような動きセンサを使用して）。加速度計および／またはジャイロスコープは、実質的にカメラと同期した画像をサンプリングする。本明細書で使用されるように、第１の動きは、第１の動きの方向および／または第１の動きの大きさを含む。ブロック１３０において処理フローは、第１の画像フレームと第２の画像フレームとの間のカメラの第２の動きを判定することを含む。本明細書で使用されるように、第２の動きは、第２の動きの方向および／または第２の動きの大きさを含む。ブロック１４０において処理フローは、第１の動きに基づいて、画像に関連付けられるシェイクブラーの少なくとも一部を制御することを含む。ブロック１５０において処理フローは、第２の動きに基づいて、画像に関連付けられるモーションブラーの少なくとも一部を制御することを含む。
【００２８】
いくつかの実施形態において、処理はさらに、画像のためのコントローラを提供することを含み、コントローラは、ユーザのジェスチャ、またはユーザの入力によって制御される。いくつかの実施形態において、コントローラは、画像に関連付けられるモーションブラーのユーザ定義される量を除去することができる。他の実施形態において、コントローラは、画像の残りの部分に影響を与えることなく、画像内の第１のオブジェクトに関連付けられるモーションブラーのユーザ定義される量を除去することができる。
【００２９】
本発明は、カメラ（例えば、画素多重カメラ）を含むデバイスの任意の特定のタイプに限定されるものではない。そのようなデバイスの例としては、携帯型または非携帯型のメディアデバイス、携帯電話またはその他のモバイルコンピューティングデバイス、モバイルテレビ、ラップトップコンピュータ、スマートスクリーン、タブレットコンピュータまたはタブレット、携帯型デスクトップコンピュータ、電子書籍リーダー、アイウェア、スキャナ、独立型カメラ、携帯型メディアデバイス、ゲームデバイス、または他の撮像デバイス、腕時計、バンド（例えばリストバンド）または非コンピューティングデバイスを含む。
【００３０】
ここで図２を参照すると、図２は、本明細書に記載のように、カメラを備える例示的なデバイス２００を示す。本明細書に記載される各デバイスまたはシステムは、カメラ２４０、プロセッサ２２０、メモリ２３０、およびメモリに格納され、プロセッサによって実行可能な、そして本明細書に記載の様々な処理を実行するように構成されるモジュールを備えるコンピューティングデバイスである。モジュールは、シェイクブラーコントロールモジュール２５０、およびモーションブラーコントロールモジュール２６０を含んでもよい。本明細書に記載されるプロセッサ２２０は、一般的に、オーディオ、ビジュアル、および／または論理機能を実行するための回路を含む。例えばプロセッサ２２０は、デジタル信号プロセッサデバイス、マイクロプロセッサデバイス、種々のアナログ−デジタル変換器、デジタル−アナログ変換器、および他のサポート回路を含んでもよい。プロセッサ２２０はまた、例えばメモリに格納されてもよい、ソフトウェアプログラムのコンピュータ実行可能な、プログラムコードの部分に少なくとも部分的に基づいて、１以上のソフトウェアプログラムを動作する機能を含んでよい。
【００３１】
メモリ２３０は、任意のコンピュータ可読媒体を含んでもよい。例えば、メモリ２３０は、情報を一時的に記憶するためのキャッシュ領域を有する揮発性のランダムアクセスメモリ（ＲＡＭ）のような、揮発性メモリを含んでもよい。メモリ２３０は、内蔵されてもよく、および／または取り外し可能であってもよい、不揮発性メモリを含んでもよい。不揮発性メモリは、追加的または代替的に、ＥＥＰＲＯＭ、フラッシュメモリ、および／または同様のものを含んでもよい。メモリ２３０は、そのシステムの機能を実現するために存在する、システムによって使用される情報およびデータの任意の１以上の要素を格納してもよい。さらに実施形態において、カメラが移動通信デバイスの一部である場合、通信インタフェース２１０が設けられる。通信インタフェース２１０は、ネットワークおよび／または他のデバイスとの無線通信を可能にする。本明細書に記載されるようにシェイクブラーコントロールモジュール２５０およびモーションブラーコントロールモジュール２６０は、撮像された画像からシェイクブラーおよびモーションブラーを制御すること（例えば、除去すること）を可能にする。
【００３２】
本発明の実施形態によれば、システム（またはデバイス）に関する用語「モジュール」は、システムのハードウェア構成要素、システムのソフトウェア構成要素、またはハードウェアおよびソフトウェアの両方を含むシステムの構成要素を意味してもよい。本明細書で使用されるように、モジュールは、１または複数のモジュールを含んでもよく、各モジュールは、ハードウェアまたはソフトウェアの別々の部分に存在してもよい。
【００３３】
本発明の多くの実施例は上述されたが、本発明は多くの異なる形態で具体化されてもよく、本明細書に記載された実施形態に限定されると解釈されるべきではなく、むしろ、この開示が適用可能な法的要件を満たすように、これらの実施形態が提供される。また、可能であれば、本明細書で記載および／または意図される本発明の実施形態のいずれかの利点、特徴、機能、デバイス、および／または動作の態様のいずれかが、本明細書中で記載および／または意図される本発明の他の実施形態のいずれかに含まれていてもよい、および／またはその逆であってもよいことが理解されるであろう。また、可能な場合であれば、本明細書において単数形で表現される任意の用語はまた、特に明示しない限り、複数形を含むことを意味し、および／またはその逆を含むことを意味する。本明細書で使用される場合、「少なくとも１つ」は、「１つ以上」を意味し、これらの語句は交換可能であることが意図される。従って、用語「ａ」および／または「ａｎ」は、語句「１または複数」または「少なくとも１つ」がまた、本明細書で使用される場合であっても、「少なくとも１つ」または「１または複数」を意味する。番号は全体を通して同じ要素を示す。
【００３４】
本開示に鑑みて当業者によって理解されるように、本発明は、（例えば、システム、マシーン、デバイス、コンピュータプログラムプロダクト、および／または同様のもの含む）装置を含んでもよく、および／または装置として具体化されてもよく、（例えば、ビジネス方法、コンピュータ実装プロセス、および／または同様のものを含む）方法を含んでもよく、および／または方法として具体化されてもよく、またはこれらの任意の組合せを含んでもよく、および／または方法として具体化されてもよい。従って、本発明の実施形態は、全体としてビジネス方法の実施形態、完全なソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード、データベース内に格納されるプロシージャなどを含む）、完全なハードウェアの実施形態、またはビジネス方法、ソフトウェア、および本明細書で一般的に「システム」と言及されるハードウェアの態様を組み合わせた実施形態の形態をとってもよい。また、本発明の実施形態は、コンピュータ可読記憶媒体に格納された１つまたは複数のコンピュータ実行可能なプログラムコードの部分を有するコンピュータ可読記憶媒体を含む、コンピュータプログラムプロダクトの形態をとってもよい。本明細書で使用されるように、１または複数のプロセッサを含んでもよいプロセッサは、例えば、機能を実行する１つまたは複数の汎用回路を有することによって、コンピュータ可読媒体において具現化される１つまたは複数のコンピュータ実行可能なプログラムコード部分を実行することによって、および／または機能を実行する１つまたは複数のアプリケーション固有の回路を有することによって、などの様々な方法で特定の機能を実行するように「構成」されてもよい。
【００３５】
任意の適切なコンピュータ可読媒体が利用されてもよいことが理解されるであろう。コンピュータ可読媒体は、例えば、これに限られないが、有体の、電子的、磁気的、光学的、電磁気的、赤外線または半導体システム、デバイス、および／または他の装置のような、非一時的なコンピュータ可読媒体を含んでもよい。例えば、いくつかの実施形態において、非一時的なコンピュータ可読媒体は、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、および／またはいくつかの他の有形の光学および／または磁気記憶デバイスのような、有形の媒体を含む。しかし、本発明の他の実施形態において、コンピュータ可読媒体は、例えば、信号の中に具現化されたコンピュータ実行可能なプログラムコード部分を含む伝播信号のような一時的なものであってもよい。
【００３６】
本発明の動作を実行するための１つまたは複数のコンピュータ実行可能なプログラムコード部分は、例えば、Ｊａｖａ、Ｐｅｒｌ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、ＳＡＳ、ＳＱＬ、Ｐｙｔｈｏｎ、Ｏｂｊｅｃｔｉｖｅ  Ｃ、ＪａｖａＳｃｒｉｐｔ、および／または同様のもののような、オブジェクト指向、スクリプト、および／または非スクリプトのプログラミング言語を含んでもよい。いくつかの実施形態において、本発明の実施形態の動作を実行するための１つまたは複数のコンピュータ実行可能なプログラムコード部分は、「Ｃ」プログラミング言語および／または類似のプログラミング言語のような、従来の手続き型のプログラミング言語で記述されてもよい。コンピュータプログラムコードは、代替的または追加的に、例えばＦ＃のような、１つ以上のマルチパラダイムプログラミング言語で書かれてもよい。
【００３７】
本発明のいくつかの実施形態は、本明細書中でフローチャート図および／または装置および／または方法のブロック図を参照して記載された。フローチャート図に含まれる各ブロックおよび／またはブロック図および／またはフローチャート図に含まれるブロックの組み合わせおよび／またはブロック図は、１つまたは複数のコンピュータ実行可能なプログラムコード部分によって実現されてもよいことが理解されるであろう。これらの１つまたは複数のコンピュータ実行可能なプログラムコード部分は、コンピュータおよび／または他のプログラム可能なデータ処理装置のプロセッサを介して実行される、１つまたは複数のコンピュータ実行可能なプログラムコード部分が、フローチャートおよび／またはブロック図のブロックによって表されるステップおよび／または機能を実現するためのメカニズムを生成できるように、特定のマシーンを製造するために、汎用コンピュータ、専用コンピュータ、および／またはいくつかの他のプログラム可能なデータ処理装置のプロセッサに提供されてもよい。
【００３８】
指示、命令、および／またはコンピュータまたは他のプログラム可能なデータ処理装置を特定の方法で機能させるようにすることができる、１つまたは複数のコンピュータ実行可能なプログラムコード部分は、コンピュータ可読媒体に格納されたコンピュータ実行可能なプログラムコード部分がフローチャートおよび／またはブロック図のブロックで特定されたステップおよび／または機能を実現する指示メカニズムを含む製品を生み出せるように、一時的および／または非一時的なコンピュータ可読媒体（例えば、メモリ等）に格納されてもよい。
【００３９】
１つまたは複数のコンピュータ実行可能なプログラムコード部分は、一連の動作ステップをコンピュータおよび／または他のプログラム可能な装置上で実行させるために、コンピュータおよび／または他のプログラム可能なデータ処理装置上にロードされてもよい。いくつかの実施形態において、これは、コンピュータおよび／または他のプログラム可能な装置上で実行される１つまたは複数のコンピュータ実行可能なプログラムコード部分が、フローチャートで特定されたステップおよび／またはブロック図のブロックで特定された機能を実装するための動作ステップを提供するように、コンピュータ実装プロセスを生成する。代替的にコンピュータ実行ステップは、本発明の実施形態を実施するために、オペレータおよび／または人の実行ステップと組み合わされてもよく、および／または置き換えられてもよい。
【００４０】
特定の例示的な実施形態は、添付の図面に記載され、示されるが、そのような実施形態は単に、広範な発明の例示であり、制限されず、上記の段落に記載されたものに加えて、他の様々な変更、組み合わせ、省略、修正および置換が可能であるため、本発明は図示および説明された特定の構成および配置に限定されないことが理解されるべきである。当業者は、説明された実施形態の様々な適応、変更、および組合せが、本発明の範囲および精神から逸脱することなく構成されることを理解するであろう。したがって、添付の特許請求の範囲内で、本発明は本明細書で具体的に記載されたようなもの以外で実施されてもよいことが理解されるべきである。
【図１】
0006345799.tif 000002
【図２】
0006345799.tif 000003