以下、本発明の実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係る制御方法は、以下で説明する電子デバイスのようなコンピュータ装置によって実現されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係る制御方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して前記制御方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子デバイス110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子デバイスの数やサーバの数が図1のように限定されることはない。
複数の電子デバイス110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子デバイス110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子デバイス1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子デバイス1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子デバイス120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、デバイス間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これに限定されることはない。
サーバ150、160それぞれは、複数の電子デバイス110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子デバイス110、120、130、140にサービス(一例として、コンテンツ提供サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービスなど)を提供するシステムであってよい。
上述した図1では、サーバとクライアントの通信環境の例について説明しているが、これは一実施形態に過ぎず、本発明の実施形態に係る制御方法は、複数の電子デバイス110、120、130、140それぞれで個別に実行されてもよい。例えば、図1の実施形態に係る制御方法は、電子デバイス110がサーバ150からコンテンツの提供を受けてメディアプレイヤで再生する場合についての説明であってよい。他の実施形態では、電子デバイス110がサーバ150とは通信せず、電子デバイス110のローカル保存場所に保存されたコンテンツをメディアプレイヤで再生する場合を含んでよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子デバイス110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。例えば、コンピュータ装置200においては、一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の一実施形態に係る音源再生共有方法を実行してよい。
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマイクなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、アバター生成方法の例を示したフローチャートである。図3の実施形態に係るアバター生成方法は、ユーザ端末310、フロントサーバ320、および分析サーバ330によって実行される全体的な過程の例を示している。ここで、ユーザ端末310は、上述した複数の電子デバイス110、120、130、140のうちのいずれか1つのように、アバター生成方法のためのコンピュータプログラムがインストールされて実行される物理的な装置に対応してよく、フロントサーバ320と分析サーバ330は、上述したサーバ150、160に対応してよい。上述したように、複数の電子デバイス110、120、130、140それぞれとサーバ150、160それぞれは、図2で説明したコンピュータ装置200によって実現されてよい。実施形態によって、フロントサーバ320と分析サーバ330は、1つの物理的な装置によって実現されてもよいし、フロントサーバ320および/または分析サーバ330が互いに連係する2つ以上の物理的な装置によって実現されてもよい。
段階311で、ユーザ端末310は、イメージを生成または選択してよい。例えば、ユーザ端末310は、ユーザ端末310に含まれるカメラによってイメージをキャプチャするか、またはユーザ端末310に含まれるローカル保存場所に保存されたイメージからユーザが選択したイメージを確認してよい。
段階312で、ユーザ端末310は、イメージをアップロードしてよい。例えば、ユーザ端末310は、段階311で生成または選択されたイメージを、ネットワーク170を介してフロントサーバ320に送信してよい。
より具体的な例として、ユーザ端末310は、ユーザ端末310においてインストールされて実行されたアプリケーションの制御にしたがい、カメラを駆動させてイメージをキャプチャするための機能、またはユーザ端末310のローカル保存場所に保存されたイメージから少なくとも1つを選択するための機能をユーザに提供してよく、このような機能を利用して生成または選択されるイメージをフロントサーバ320にアップロードしてよい。
段階321で、フロントサーバ320は、イメージを数値化してよい。例えば、フロントサーバ320は、ユーザ端末310から受信したイメージを分析し、イメージが含む人間の顔に対する顔構成要素を数値化してよい。数値化は、一例として、顔構成要素として予め定義された特徴それぞれに対して予め定義された測定項目ごとに測定値を抽出する形態で実現されてよい。より具体的な例として、顔構成要素として予め定義された特徴は、目、鼻、口、顔型などから選択されてよく、予め定義された測定項目は、面積、割合、角度、長さなどから選択されてよい。実施形態によって、1つの特徴が1つ以上の細部特徴で構成されてもよい。例えば、特徴「目」は、「左目」と「右目」の細部特徴で構成されてもよいし、「左目」、「左目尻」、「右目」、および「右目尻」などの細部特徴で構成されてもよい。このとき、特徴(または細部特徴)に対して要求される測定項目は、面積、割合、および角度のようにすべて同じ測定項目を含んでもよいが、実施形態によっては要求される測定項目が異なってもよい。例えば、特徴「目」に対しては幅と高さが、細部特徴「左目尻」に対しては角度が、特徴として要求されてよい。測定項目として算出される測定値は、物理的な単位の実際値よりは、基準に沿った相対的な値として測定されてよい。例えば、目の幅や目と目の間の距離は、顔の幅に対する相対的な値で計算されてよく、目の高さは、顔の長さに対する相対的な値で計算されてよい。測定値は、特徴/測定項目ごとに抽出された多数の値の集合(以下、「測定値集合」)を形成してよい。
段階322で、フロントサーバ320は、測定値を分析サーバ330に伝達してよい。例えば、フロントサーバ320は、段階321でイメージを数値化することによって抽出される測定値集合を、分析サーバ330に送信してよい。
段階331で、分析サーバ330は、動物イメージを数値化してよい。例えば、分析サーバ330は、段階321でフロントサーバ320がイメージに含まれた人間の顔を数値化する方式と同じ方式により、イメージに含まれた動物の顔を数値化してよい。例えば、分析サーバ330は、顔構成要素として予め定義された動物の顔の特徴それぞれに対して予め定義された測定項目ごとに測定値を抽出して測定値集合を生成する形態により、動物イメージに対する数値化を実現してよい。また、動物イメージが含む動物の種類を分類するために、ディープラーニング(deep learning)が活用されてよい。例えば、分析サーバ330は、入力される動物イメージを分析して動物イメージに含まれた動物の種類を分類するように学習されたCNN(Convolutional Neural Network)のようなディープラーニングモデルにより、多数の動物イメージそれぞれから導き出される動物の分類を生成してよい。
段階332で、分析サーバ330は、データベースを構築してよい。例えば、分析サーバ330は、上述したディープラーニングによって動物イメージが含む動物を分類し、動物分類ごとに抽出された測定値集合を記録するようにデータベースを構築してよい。
段階333で、分析サーバ330は、分類された動物ごとに基本モデルを生成してよい。例えば、犬、猫、うさぎなどのような動物ごとに基本モデルが生成されてよい。動物がより具体的に分類される場合には、同じ種類の動物が細部種類に分けられてもよい。例えば、犬の場合、犬の多様な種類に応じて細部分類が行われる場合には、それぞれの細部分類ごとに基本モデルが生成されてよい。また、子犬と成犬のような細部分類ごとに基本モデルが生成されてもよい。一例として、基本モデルは、データベースに記録された測定値集合に基づいて生成されてよい。1つの動物分類に対してデータベースに2つ以上の測定値集合が記録されている場合には、2つ以上の測定値集合において互いに対応する要素の平均値を計算し、計算された平均値の集合に基づいて基本モデルが生成されてよい。
このような段階331~333は、上述した段階311、312、321、322と並列的に実行されてよく、上述した段階311、312、321、322の開始前にデータベースが予め構築されて基本モデルが生成されてよい。
段階334で、分析サーバ330は、基本モデルを選択してよい。例えば、分析サーバ330は、フロントサーバ320から受信した測定値集合をデータベースに記録された測定値集合と順に比較していき、最も類似するm(mは自然数)個の測定値集合を決定してよく、このようなm個の測定値集合に対応するn(nはm以下の自然数)個の動物分類を決定してよい。言い換えれば、分析サーバ330は、人間の顔を数値化した測定値集合を受信し、データベースに記録された測定値集合と比較することにより、人間の顔に対応する動物分類を決定してよい。m個の測定値集合に同じ動物分類に対応する2つ以上の測定値集合が存在する場合には、該当の2つ以上の測定値集合に対して1つの動物分類が決定されるため、決定される動物分類の数は、決定される測定値集合の数と同じであるか少ない。また、分析サーバ330は、決定されたn個の動物分類に対応するn個の基本モデルを選択してよい。実施形態によって、分析サーバ330は、測定値集合が最も類似する1つの測定値集合にしたがって1つの基本モデルを選択および提供してもよく、n個の基本モデルを選択および提供してフロントサーバ320やユーザ端末310がn個の基本モデルから1つを選択するようにしてもよく、以下で説明する実施形態のように、n個の基本モデルを合成して新たな動物モデルを生成してもよい。
段階335で、分析サーバ330は、基本モデルをカスタマイズしてよい。言い換えれば、分析サーバ330は、人間の顔に対応する動物形状のアバターを提供するために確認された基本モデルを、人間の顔に対応させて処理してよい。例えば、分析サーバ330は、フロントサーバ320から受信した測定値集合によって基本モデルの顔構成要素の項目ごとに値を調節することにより、基本モデルを目標とする人間の顔に合わせてカスタマイズしてよい。言い換えれば、目標とする人間の顔特徴を基本モデルに適用させるのである。このとき、段階334で選択されたn個の基本モデルそれぞれがカスタマイズされてよく、カスタマイズされたn個の基本モデルはフロントサーバ320に伝達されてよい。
また、実施形態によって、カスタマイズは、フロントサーバ320で実行されてもよい。例えば、段階334で、分析サーバ330は、選択されたn個の基本モデルをフロントサーバ320に送信してよく、フロントサーバ320がn個の基本モデルそれぞれを段階331で計算された数値を基にしてカスタマイズしてよい。この場合、フロントサーバ320は、人間の顔を数値化した測定値集合によって基本モデルに該当する数値を修正することにより、基本モデルを人間の顔に合うようにカスタマイズしてよい。
段階323で、フロントサーバ320は、最終モデルを生成してよい。一実施形態として、フロントサーバ320は、カスタマイズされたn個の基本モデルを互いに合成した、まったく新しい動物モデルを最終モデルとして生成してよい。他の実施形態として、フロントサーバ320は、単にn個の基本モデルそれぞれを最終モデルとして生成してもよい。一方、カスタマイズされたn個の基本モデルは、最終モデルの生成に使用されるだけでなく、その測定値集合とともにデータベースに記録され、以後に他のアバターを生成するときに使用されてもよい。
段階324で、フロントサーバ320は、最終モデルを共有してよい。例えば、フロントサーバ320は、最終モデルをネットワーク170を介してユーザ端末310に送信し、生成された最終モデルを共有してよい。言い換えれば、フロントサーバ320は、人間の顔に対応する動物形状のアバターを提供するために、基本モデルまたは基本モデルによって生成される最終モデルをユーザ端末310と共有してよい。例えば、カスタマイズや合成が適用されていない場合には、基本モデルをユーザ端末310に提供してよく、カスタマイズや合成が適用された場合には、カスタマイズや合成が適用された最終モデルをユーザ端末310に提供してよい。
段階313で、ユーザ端末320は、最終モデルをレンダリングしてよい。例えば、ユーザ端末320は、フロントサーバ320から動物モデルを受信してよく、モデリングされた動物モデルを画面に実際に表示するための作業を処理してよい。言い換えれば、ユーザ端末320は、モデリングによって最終的に生成されたグラフィック要素を画面に表示することにより、段階311で生成または選択されたイメージに含まれたユーザの顔に対応する動物アバターを生成および表示することができるようになる。一方、実施形態によって、ユーザ端末320は、レンダリングの前に、上述したアプリケーションの制御にしたがい、最終モデルをもう一度カスタマイズする機能をユーザに提供してもよい。この場合、ユーザは、提供される機能を利用して最終モデルの顔立ちなどをユーザの思いのままに修正してよく、最終的に修正された動物モデルがユーザ端末320によってレンダリングされて画面に表示されてよい。
このように、本実施形態に係るアバター生成方法により、人間の顔が含まれたイメージを分析して、人間の顔に対応する動物形状のアバターを自動で生成することができる。このとき、生成される動物形状のアバターは、単に予め生成されている動物アバターのテンプレートにユーザの表情などを適用するのではなく、ユーザの顔と類似する動物を見つけ出し、該当の動物形状のアバターが自動で生成されるサービスを提供することができる。
また、生成された動物アバターは、多様なポーズや表情、他の効果との結合により、複数のスタンプイメージを含むスタンプパッケージを生成するために利用されてよい。一方、ユーザ端末310で1つのイメージではない一例として、カメラに入力される連続的なフレームがフロントサーバ320に伝達される場合、フロントサーバ320は、連続的なフレームそれぞれから抽出される測定値集合を最終モデルに順に適用することにより、ユーザの顔の表情や行動がリアルタイムで動物アバターに適用されるサービスを提供してもよい。このように、自動で生成される動物アバターは、多様なサービスに活用することができる。
図4および図5は、本発明の一実施形態における、イメージを数値化する例を示した図である。
図4は、動物イメージの数値化の例として、「うさぎ」の顔が含まれた第1イメージ410、「猫」の顔が含まれた第2イメージ420、および「犬」の顔が含まれた第3イメージ430において、特徴である目、鼻、口、顔型それぞれに対し、項目として面積、割合、および回転(角度)それぞれに対する値を含む測定値集合を抽出した例を示している。このような第1イメージ410から抽出された測定値集合は表1(440)のように、第2イメージ420から抽出された測定値集合は表2(450)のように、第3イメージ430から抽出された測定値集合は表3(460)のように示されてよく、それぞれの動物分類と連係されてデータベースに記録されてよい。
このような図4では、1つの動物に対して1つの測定値集合が抽出された例を示しているが、上述したように、同じ種類の動物であっても、細部種類や、子犬と成犬などのような成長程度などによって細部分類されてよく、それぞれの動物分類ごとに複数の測定値集合が抽出されてよい。このために、分析サーバ330は、多数の動物イメージをディープラーニングによって分析して動物イメージの動物を分類してよく、それぞれの動物分類ごとに1つ以上の測定値集合を該当の動物分類と連係させて記録することにより、各動物分類の測定値集合に対するデータベースを構築してよい。一方、他の実施形態では、同じ動物分類に連係されてデータベースに記録された2つ以上の測定値集合が、各要素の平均値によって1つの測定値集合(以下、「平均測定値集合」)の形態で記録されてもよい。例えば、面積、割合、回転に対する項目が存在する場合、面積の平均値、割合の平均値、および回転の平均値がそれぞれ計算され、該当の動物分類に対応して記録されてよい。
また、分析サーバ330は、それぞれの動物分類ごとに基本モデルを生成して管理してよい。図4の例では、「うさぎ」に対応する基本モデル、「猫」に対応する基本モデル、および「犬」に対応する基本モデルが、それぞれ生成および管理されてよい。このような基本モデルは、上述したように、対応する動物分類の測定値集合または平均測定値集合に基づいて生成されてよい。
図5は、人間イメージを数値化する例として、人間の顔が含まれた第4イメージ510において、特徴である目、鼻、口、顔型それぞれに対し、項目として面積、割合、および回転(角度)それぞれに対する測定値を含む測定値集合を抽出した例を示している。このような測定値集合は、表4(520)のように抽出され、データベースに記録された測定値集合と順に比較されてよい。
このとき、分析サーバ330は、測定値集合の比較により、第4イメージに含まれた人間の顔と最も類似する測定値集合をもつn個の動物分類を決定してよく、決定されたn個の動物分類に対応するn個の基本モデルを選択してよい。選択されたn個の基本モデルは、分析サーバ330またはフロントサーバ320でカスタマイズされてよい。カスタマイズには、上述した表4(520)の測定値が活用されてよい。上述したように、カスタマイズは、ユーザの選択にしたがい、ユーザ端末310で追加的に行われてもよい。
基本モデルは、対応する動物分類をグラフィック的に実現するためのベクトルであってよい。上述したように、フロントサーバ320は、このようなベクトルの加重和によってn個の基本モデルを合成し、最終モデルを生成してよい。例えば、nが2であり、「犬」基本モデルの類似度が80%、「猫」基本モデルの類似度が20%と計算されたと仮定する。この場合、「犬」基本モデルに対する第1ベクトルと「猫」基本モデルに対する第2ベクトルに対し、それぞれの要素の加重和によって最終モデルに対する第3ベクトルが生成されてよい。例えば、第1ベクトルの1番目の要素がaであり、第2ベクトルの1番目の要素がbであるとき、第3ベクトルの1番目の要素は(0.8a+0.2b)と計算されてよい。このとき、0.8と0.2は、類似度80%と類似度20%に基づいて決定された加重値であってよい。
実施形態によって、類似度が最も高い動物分類の基本モデルが、最終モデルとしてそのまま決定されてもよい。例えば、分析サーバ330は、図5の実施形態において第1位として選択された「犬」に対する基本モデルを最終モデルとして決定し、フロントサーバ320に伝達してよい。また他の実施形態において、分析サーバ330は、n個の基本モデルそれぞれをカスタマイズしてフロントサーバ320に伝達し、フロントサーバ320がユーザ端末310と通信し、カスタマイズされたn個の基本モデルからユーザに1つを選択させるようにしてもよい。
図6は、本発明の一実施形態における、モデル合成過程の例を示した図である。図6は、図4で説明した「うさぎ」基本モデルと「猫」基本モデルが抽出されることにより、2つの基本モデルを合成する例について説明する。基本モデル「うさぎ」は、表1(440)に示された測定値集合によって実現されてよく、基本モデル「猫」は、表2(450)に示された測定値集合によって実現されてよい。このとき、ユーザの顔に対する測定値集合と表1(440)に示された「うさぎ」に対する測定値集合との類似度が80%であり、ユーザの顔に対する測定値集合と表2(450)に示された「猫」に対する測定値集合との類似度が20%であると仮定する。この場合、合成モデル「うさぎ+猫」を生成するための測定値集合は、図6の表5(610)のように計算されてよい。このとき、フロントサーバ320は、計算された測定値集合に基づいて合成モデル「うさぎ+猫」を生成し、最終モデルとしてユーザ端末310と共有してよい。ここで、合成モデル「うさぎ+猫」は、図6の表5(610)に示された値によって新たに生成されたモデルであってよく、類似度が最も高い基本モデル「うさぎ」をベースとし、図6の表5(610)に示された値を適用して変形させたモデルであってもよい。
このように、本発明の実施形態によると、人間の顔が含まれたイメージを分析して、人間の顔に対応する動物形状のアバターを自動で生成することができる。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。このような記録媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されるのではなく、ネットワーク上に分散して存在するものであってもよい。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。