ここで図1に目を転じると、動的ナビゲーション・サービスを実装するためのコンピュータ・システム1000のブロック図が示されている。コンピュータ・システム1000は、ユーザー装置100、動的ナビゲーション・サービス・サーバー200、公共トラフィック・システム・ネットワーク300、プライベート・ナビゲーション・システム・ネットワーク400、全地球測位システム(GPS)衛星ネットワーク500およびインターネット600を含んでいてもよい。
ユーザー装置100は、とりわけ、論理動作のシーケンスを実行しうる任意のプログラム可能な機械であってもよい。ユーザー装置100の例は、ラップトップ、デスクトップ、携帯情報端末(PDA)、メディア・プレーヤー、モバイル・インターネット・デバイス(MID)、スマートフォン、スマート・タブレット、スマート・テレビなどの任意のスマート・デバイスなどを含みうる。本実施形態では、コンピューティング装置100はスマートフォンであってもよい。コンピューティング装置100はユーザー装置インターフェース101、ユーザー装置処理コンポーネント102およびユーザー装置メモリ・コンポーネント103を含んでいてもよい。
ユーザー装置インターフェース101は、ユーザーがユーザー装置100と対話できるようにするよう構成されたコンポーネントであってもよい。たとえば、この実施形態では、ユーザー装置インターフェース101は、グラフィカル・ユーザー・インターフェース(GUI)を含むスマートフォン画面であってもよい。他の実施形態では、ユーザー装置インターフェース101はラップトップ画面、タブレット・デバイス画面、デスクトップ・モニタなどであってもよい。
ユーザー装置処理コンポーネント102は、コンピュータ可読な実行可能命令を実行するために利用されうる少なくとも一つのコンピュータ・プロセッサを含んでいてもよい。たとえば、のちにより詳細に論じるが、ユーザー装置処理コンポーネント102は、動的ナビゲーション・サービスに関係するさまざまなソフトウェア・アプリケーションを実行するよう構成されていてもよい。
コンピューティング装置メモリ・デバイス103は、データを記憶するよう構成されたいかなるデバイスであってもよい。この場合、コンピューティング装置メモリ・デバイス103は、とりわけ、インターフェース・アプリケーション104およびユーザー装置側挙動データ105およびユーザー位置情報106を記憶してもよい。
インターフェース・アプリケーション104は、ユーザーが動的ナビゲーション・サービスを利用できるようにすることに向けられたアプリケーションであってもよい。たとえば、インターフェース・アプリケーション104はユーザーがとりわけ、方向問い合わせを入力したり、前記問い合わせを動的ナビゲーション・サービス・サーバー200に送信したりすることを許容してもよい。
インターフェース・アプリケーション104はまた、ユーザー装置側挙動データ105を生成し、記憶するよう構成されていてもよい。ユーザー装置側挙動データ105は、ユーザーのナビゲーション挙動に関連するいかなるデータであってもよい。たとえばこれが含むものとして、たとえばユーザー装置側挙動データはユーザーのナビゲーション選好(たとえば、既知の道路閉鎖を避けるルート、夜間により安全なルートなど)および習癖(たとえば、自宅から職場までのユーザーのルート、ユーザーの裏道の使用など)を示してもよい。
インターフェース・アプリケーション104はまた、ユーザーの主要位置センター(たとえば、ユーザーの自宅住所、職場住所、好まれる食料雑貨店、好まれるショッピングモールなど)に関係するユーザー装置側挙動データ105を生成するよう構成されていてもよい。ユーザーの主要位置センターは、たとえば、ユーザーがある位置で過ごす時間の長さまたはユーザーがその位置によく行く時刻を評価して決定されてもよい。具体的には、たとえば、ユーザーの住居が、とりわけ、ユーザーが夜間に一貫して位置している位置を判別することによって、決定されてもよい。ユーザー装置側挙動データ104は定期的にユーザー装置100から動的ナビゲーション・システム・サーバー200に送信されてもよい。
さらに、インターフェース・アプリケーション104は、ユーザー位置情報106を送信するようにも構成されていてもよい。ユーザー位置情報106は、ユーザーの現在位置に関係する情報であってもよい。ユーザー位置情報106は、ユーザー装置100から動的ナビゲーション・システム・サーバー200に定期的に送信されてもよい。
動的ナビゲーション・システム・サーバー200は、とりわけ、動的ナビゲーション・サービスを実装するよう構成されたコンピューティング・システムであってもよい。動的サービス・サーバー200は、動的ナビゲーション・サービス・サーバー・メモリ・デバイス201および動的ナビゲーション・サービス・サーバー処理コンポーネント214を含んでいてもよい。
動的ナビゲーション・サービス・サーバー・メモリ・デバイス201は、データを記憶するよう構成されたいかなるデバイスであってもよい。この場合、動的ナビゲーション・サービス・サーバー・メモリ・デバイス201は動的ナビゲーション・アプリケーション202、サーバー側ユーザー挙動データ203、関連コミュニティ・ユーザー204、コミュニティ・ユーザー挙動データ205およびコンテキスト・データ206を含んでいてもよい。
のちにより詳細に論じるように、動的ナビゲーション・アプリケーション202は、とりわけ、問い合わせするユーザーからの方向問い合わせを受領し、関連情報にアクセスし、その問い合わせ元ユーザーに対して生成された提案されるルートを含む問い合わせ結果を生成するよう構成されていてもよい。
サーバー側ユーザー挙動データ203は、ユーザーに関する情報であってもよい。たとえば、サーバー側ユーザー挙動データ203は、ユーザー装置側挙動データ105のユーザー装置100からの定期的な送信に基づいて生成されてもよい。よって、サーバー側ユーザー挙動データ203は、とりわけ、ユーザーのナビゲーション選好、ユーザーのナビゲーション習癖およびユーザーの主要位置センターを含んでいてもよい。
関連コミュニティ・ユーザー204は、そのユーザーが移動している土地(locality)に関連していてもよいユーザーのコミュニティであってもよい。そのユーザーが移動している土地はたとえば、ユーザー位置情報106に基づいて決定されてもよい。
よって、たとえば、ユーザーが自分の近所(すなわち、ユーザーの主要位置センター)で移動中である場合、関連通信ユーザー204は、当該ユーザー、その近所の人およびその近所を頻繁に訪れる他のユーザーから構成されていてもよい。しかしながら、ユーザーがなじみのない地区(neighborhood)を移動中である場合には、関連コミュニティ・ユーザー204は、とりわけ、そのなじみのない地区の地元の人から構成されていてもよい。
関連コミュニティ・ユーザー204は、たとえば、距離(たとえば10マイルの半径)に基づいて、あるいは都市、町もしくは地区の境界によって決定されてもよい。もう一つの例では、関連コミュニティ・ユーザー204は、ユーザーが所与の時間期間中にある地区に頻繁に訪れる回数(たとえば、一日二回、一週間当たり五回など)によって決定されてもよい。
さらにもう一つの例では、ある土地によく行く関連コミュニティ・ユーザー204は、コンテキストおよびタイミング事情といった他の事情も考慮に入れて決定されてもよい。よって、たとえば、関連コミュニティ・ユーザー204は、設備作業者、タクシー運転手などのような、仕事目的で日中にその土地によく行くユーザーを含んでいてもよい。
ユーザーは、関連コミュニティ・ユーザー204に含めるのに先立って検証されてもよい。たとえば、ユーザーは、ユーザーがどこに住んでいるか(ユーザーが夜間に一貫して位置している土地)を決定するためにユーザー装置情報を利用すること(たとえばスマートフォンへのおよびスマートフォンからの送信)によって検証されてもよい。
コミュニティ・ユーザー挙動データ205は、関連コミュニティ・ユーザー204のナビゲーション挙動に基づくいかなるデータであってもよい。ナビゲーション挙動は、関連コミュニティ・ユーザー204が使うルートを含んでいてもよい。一例では、コミュニティ・ユーザー挙動データ205は、サーバー側ユーザー挙動データ203のようなサーバー側ユーザー挙動データを、関連コミュニティ・ユーザー204全員について蓄積することによって集積されてもよい。また、より詳細に論じるように、コミュニティ・ユーザー挙動データ205は、全地球測位システム(GPS)衛星ネットワーク500およびインターネット600のような他の結合されたネットワークから集積されてもよい。
コンテキスト・データ206は、目的地への最適なマッピングを決定することに関連しうる、ユーザーまたは関連コミュニティ・ユーザーに関するのでないさまざまなデータを含みうる。たとえば、コンテキスト・データ206は、交通条件(たとえば、事故、渋滞など)、道路条件(たとえば工事、迂回/閉鎖など)または他のさまざまな情報(たとえば休日/バケーション、時刻、天気など)を含んでいてもよい。コンテキスト・データ206は、公共交通システム・ネットワーク300、プライベート・ナビゲーション・システム・ネットワーク400、全地球測位システム(GPS)衛星ネットワーク500およびインターネット600といった少なくとも一つの結合されたネットワークにアクセスすることによって集められてもよい。
動的ナビゲーション・サービス・サーバー・メモリ・デバイス201は、動的ナビゲーション・サービスに関連する追加的な情報も記憶していてもよい。たとえば、この例では、動的ナビゲーション・サービス・サーバー・メモリ・デバイス201は、ユーザー挙動アルゴリズム207、ユーザー提案ルート(user suggested route)208、コミュニティ・ユーザー挙動アルゴリズム209、コミュニティ・ユーザー提案ルート210、複合挙動データ・アルゴリズム211、複合提案ルート212および問い合わせ結果通信213をも含んでいてもよい。
動的ナビゲーション・アプリケーション202は、とりわけ、ユーザー挙動アルゴリズム207を生成するためにサーバー側ユーザー挙動データ203を利用してもよい。ユーザー挙動アルゴリズム207は、ユーザー提案ルート208を決定するために利用されうるユーザーのナビゲーション挙動に基づく表現(たとえば、定量的、定性的、カテゴリー、タイプなど)を実装してもよい。ユーザーの提案されるルート208は、ユーザーに提案されるべき最適ルートであってもよい。
動的ナビゲーション・アプリケーション202は、とりわけ、コミュニティ・ユーザー挙動データ205を利用してコミュニティ・ユーザー挙動アルゴリズム209を生成してもよい。コミュニティ・ユーザー挙動アルゴリズム209は、コミュニティ・ユーザー提案ルート210を決定するために利用されうる関連コミュニティ・ユーザーのナビゲーション挙動に基づく表現(たとえば、定量的、定性的、カテゴリー、タイプ)であってもよい。コミュニティ・ユーザー提案ルート210は、ユーザーに提案されるべき最適ルートであってもよい。
よって、一例では、コミュニティ・ユーザー提案ルート210は、コミュニティ・ユーザー挙動データ205を解析して関連コミュニティ・ユーザー204の間で最も人気のある諸道路を決定することによって決定されてもよい。一例では、次いで関連コミュニティ・ユーザー204の間で最も人気のある諸道路が集積されて人気ルートを決定し、それが次いでコミュニティ・ユーザー提案ルート210として指定されうる。ある土地に十分に結びついていない(よって関連コミュニティ・ユーザー204に含まれない)ユーザーのナビゲーション習癖は、コミュニティ・ユーザー提案ルート210を決定する際に考慮される可能性はそれほど高くないことがある。
よって、上記の例を続けると、ユーザーが自分の位置センター(たとえば自分の近所)を移動中である場合、コミュニティ・ユーザー提案ルート210は、自分の近所の関連コミュニティ・ユーザー204によって駆動される最も人気のある諸道路に基づいていてもよい。自分の近所の関連コミュニティ・ユーザー204はたとえば、自分自身、自分の近所の人々およびその近所によく行く人々(たとえば設備作業者、タクシー運転手など)を含んでいてもよい。
他方、ユーザーがなじみのない地区を移動中である場合には、コミュニティ・ユーザー提案ルート210は、そのなじみのない地区の関連コミュニティ・ユーザー204によって駆動される最も人気のある諸道路に基づいていてもよい。この場合、そのなじみのない地区の関連コミュニティ・ユーザー204は、そのなじみのない地区に住んでいる人々およびそのなじみのない地区によく行く人々(たとえば設備作業者、タクシー運転手など)を含んでいてもよい。ここでもまた、いくつかの実施形態では、動的ナビゲーション・アプリケーション202は、(たとえばユーザーにとってなじみのない位置などの)特定の諸位置で動作するとき、受動モードのような第二のモードで動作するよう構成されていてもよい。
動的ナビゲーション・アプリケーション202はさらに、とりわけ、サーバー側ユーザー挙動データ203およびコミュニティ・ユーザー挙動データ205を利用して複合挙動データ・アルゴリズム211を生成してもよい。複合挙動データ・アルゴリズム211は、ユーザー挙動アルゴリズム207とコミュニティ・ユーザー挙動アルゴリズム209の最適な組み合わせに基づく表現(たとえば定量的、定性的、カテゴリー、タイプ)であってもよい。複合挙動データ・アルゴリズム211は、複合提案ルート212を決定するために利用されてもよい。複合提案ルート212は、ユーザーに関する情報(たとえばサーバー側ユーザー挙動データ203)およびコミュニティ・ユーザーに関する情報(たとえばコミュニティ・ユーザー挙動データ205)の両方に基づく最適なルートを表わしていてもよい。
動的ナビゲーション・アプリケーション202は、ユーザーの問い合わせに応答するためのユーザー装置100への送信のために、問い合わせ結果通信213を生成するよう構成されていてもよい。たとえば、問い合わせ結果通信213は、ユーザー提案ルート208、コミュニティ提案ルート210および複合提案ルート212の一つまたは複数を含んでいてもよい。
動的ナビゲーション・サービス・サーバー処理コンポーネント214は、コンピュータ可読な実行可能命令を実行するために利用されうる少なくとも一つのコンピュータ・プロセッサを含んでいてもよい。たとえば、動的ナビゲーション・サービス・サーバー処理コンポーネント214は、動的ナビゲーション・アプリケーション202を実行するよう構成されていてもよい。
公共トラフィック・システム・ネットワーク300は、公共エンティティによって運営されるトラフィックにサービスすることに向けられたネットワークであってもよい。公共トラフィック・システム・ネットワーク300の例は、警察ネットワーク、自治体トラフィック・システム・ネットワークなどを含んでいてもよい。動的ナビゲーション・アプリケーション202はたとえば、コンテキスト・データ206を補足するようインターネット600を介して公共トラフィック・システム・ネットワーク300にアクセスしてもよい。
プライベート・ナビゲーション・システム・ネットワーク400は、プライベート・エンティティによって運営される消費者に提供されるナビゲーション・サービスに向けられるネットワークであってもよい。動的ナビゲーション・アプリケーション202はたとえば、コミュニティ・ユーザー挙動データ206を補足するようインターネット600を介してプライベート・ナビゲーション・システム・ネットワーク400にアクセスしてもよい。
GPS衛星ネットワーク500は、位置および時間情報を提供することに向けられた衛星ナビゲーション・システムであってもよい。動的ナビゲーション・アプリケーション202は、たとえば、サーバー側ユーザー挙動データ203またはコミュニティ・ユーザー挙動データ205を補足するようGPS衛星ネットワーク500にアクセスしてもよい。
図1に描かれたブロックの配列および番号付けは、他の可能性を排除しての動作の順序を含意することは意図されていない。当業者は、以上のシステムおよび方法がさまざまな修正および変更を受けうることを理解するであろう。
たとえば、図1に記載した実施形態において、動的ナビゲーション・アプリケーション202は、動的ナビゲーション・サービス・サーバー200上に位置していてもよく、さまざまなナビゲーション・アルゴリズム(たとえば、ユーザー挙動アルゴリズム207、コミュニティ・ユーザー挙動アルゴリズム209)を生成し、ナビゲーション問い合わせ結果通信を送信するよう(とりわけ)構成されていてもよい。しかしながら、これは必ずしもそうでなくてもよい。他の実施形態では、動的ナビゲーション・サービス・サーバー200上に位置する動的ナビゲーション・アプリケーション202によって提供される機能およびそれによって実行されるタスクは、代わりに、ユーザー装置上のインターフェース・アプリケーション(たとえば、動的ナビゲーション・サーバー・インターフェース・アプリケーション104)によって提供され、実行されてもよい。すなわち、他の実施形態では、インターフェース・アプリケーションが、たとえば、さまざまなナビゲーション・アルゴリズム(たとえば、ユーザー挙動アルゴリズム207、コミュニティ・ユーザー挙動アルゴリズム209)を生成し、ナビゲーション問い合わせ結果通信をユーザー装置インターフェース上での表示のために生成してもよい。
また、たとえば、いくつかの実施形態では、動的ナビゲーション・アプリケーション(たとえば、動的ナビゲーション・アプリケーション202)は、種々のモードで動作するよう構成されていてもよい。たとえば、第一のモードでは、ユーザーは、ユーザーのユーザー側挙動データ(たとえばユーザー装置側挙動データ105)およびユーザー位置情報(たとえばユーザー位置情報106)が連続的に送信されて適宜動的ナビゲーション・サービス・サーバー200において蓄積される協働配位(cooperative configuration)を可能にしてもよい。
しかしながら、ユーザーは、ユーザーがユーザー装置側挙動データおよびユーザー位置情報の送信をオフにすることができる受動モードのような第二のモードを有効にすることを選んでもよい。この第二のモード(すなわち受動モード)では、ユーザーは、挙動データおよび位置情報を個人的に寄与しないにもかかわらず、相変わらず関連コミュニティのナビゲーション慣行(たとえば、コミュニティ・ユーザー提案ルート)に基づくナビゲーション・サービスを受け取ることができてもよい。
ここで図2に目を転じると、本発明のある実施形態に基づく動的ナビゲーション・サービスを実装する方法の例のフローチャートが示されている。本方法は、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、プログラム可能型ROM(PROM)、ファームウェア、フラッシュメモリなどといった機械可読またはコンピュータ可読記憶媒体に、プログラム可能型論理アレイ(PLA)、フィールド・プログラム可能型ゲート・アレイ(FPGA)、複合プログラム可能型論理デバイス(CPLD)といった構成可能論理に、特定用途向け集積回路(ASIC)、相補型金属酸化物半導体(CMOS)またはトランジスタ‐トランジスタ論理(TTL)技術といった回路技術を使った固定機能論理ハードウェアに、またはそれらの任意の組み合わせに記憶された論理命令のセットとして実装されてもよい。たとえば、上記方法に示される動作を実行するためのコンピュータ・プログラム・コードが、ジャバ、スモールトーク、C++などといったオブジェクト指向プログラミング言語および「C」プログラミング言語といった従来型の手続き型プログラミング言語または同様のプログラミング言語を含む、一つまたは複数のプログラミング言語の任意の組み合わせで書かれてもよい。
プロセスは、処理ブロック2000で開始されてもよい。処理ブロック2010では、ユーザー装置100のようなユーザー装置、インターフェース・アプリケーション104(図1)のような動的ナビゲーション・サービス・インターフェース・アプリケーションを利用して、ユーザーのナビゲーション習癖に関係するユーザー装置側挙動データ105(図1)のようなユーザー挙動データを生成してもよい。動的ナビゲーション・インターフェース・アプリケーションは、該ユーザー挙動データを、ユーザー位置情報106(図1)のようなユーザー位置情報とともに、動的ナビゲーション・サービス・サーバー200(図1)のような動的ナビゲーション・サービス・サーバーに定期的に送信してもよい。
処理ブロック2020では、動的ナビゲーション・サービス・サーバーは、サーバー側ユーザー挙動データ203(図1)のようなサーバー側ユーザー挙動データおよび動的ナビゲーション・アプリケーション(図1)のような動的ナビゲーション・アプリケーションを利用して、関連コミュニティ・ユーザー204(図1)のような関連コミュニティ・ユーザーを決定してもよい。処理ブロック2030では、動的ナビゲーション・アプリケーションは、ユーザー位置情報を利用して、プライベート・トラフィック・システム・ネットワーク400(図1)のようなさまざまな結合されたネットワークからのデータを利用することによって、コミュニティ・ユーザー挙動データ205(図1)のようなコミュニティ・ユーザー挙動データを生成してもよい。処理ブロック2040では、動的ナビゲーション・アプリケーションは、コンテキスト・データ206(図1)のようなコンテキスト・データを、インターネット600(図1)のようなさまざまな結合されたネットワークからのデータを利用することによって、生成してもよい。
処理ブロック2050では、動的ナビゲーション・アプリケーションは、とりわけ、ユーザー挙動データを利用して、ユーザー挙動アルゴリズム207(図1)のようなユーザー挙動アルゴリズムを生成してもよい。処理ブロック2060では、動的ナビゲーション・アプリケーションはユーザー挙動アルゴリズムを利用して、ユーザーの提案されるルート208(図1)のようなユーザー提案ルートを生成してもよい。
処理ブロック2070では、動的ナビゲーション・アプリケーションは、とりわけ、コミュニティ・ユーザー挙動データを利用して、コミュニティ・ユーザー挙動アルゴリズム209(図1)のようなコミュニティ・ユーザー挙動アルゴリズムを生成してもよい。処理ブロック2080では、動的ナビゲーション・アプリケーションは、コミュニティ・ユーザー挙動アルゴリズムを利用して、ユーザー提案ルート210(図1)のようなコミュニティ・ユーザー提案ルートを生成してもよい。
処理ブロック2090では、動的ナビゲーション・アプリケーションは、とりわけ、ユーザー挙動データおよびコミュニティ・ユーザー挙動データを利用して、複合挙動データ・アルゴリズム211(図1)のような複合挙動データ・アルゴリズムを生成してもよい。処理ブロック2100では、動的ナビゲーション・アプリケーションは、複合挙動データ・アルゴリズムを利用して、複合提案ルート212(図1)のような複合提案ルートを生成してもよい。
処理ブロック2110では、ユーザーは、動的ナビゲーション・サービス・インターフェース・アプリケーションを利用して、ターゲット目的地への方向案内を要求するナビゲーション問い合わせ通信を生成し、送信してもよい。処理ブロック2120では、ユーザーからナビゲーション問い合わせ通信を受領すると、動的ナビゲーション・アプリケーションは、問い合わせ結果通信213(図1)のような問い合わせ結果通信を生成してもよい。問い合わせ結果通信は、とりわけユーザー提案ルート、コミュニティ・ユーザー提案ルートおよび複合提案ルートを含めることによって、ユーザーのナビゲーション問い合わせに応答してもよい。処理ブロック2130では、動的ナビゲーション・アプリケーションは、問い合わせ結果通信をユーザー装置に送信してもよい。処理ブロック2140では、ユーザーは、ユーザー装置において問い合わせ結果通信を受領してもよく、ユーザー装置インターフェース101(図1)のようなユーザー装置インターフェースを使ってそれを閲覧してもよい。処理ブロック2150では、プロセスは終了してもよい。
図2に描かれたブロックの序列および番号付けは、他の可能性を排除しての動作の順序を含意することは意図されていない。当業者は、以上のシステムおよび方法がさまざまな修正、変形および変更を受けうることを理解するであろう。
たとえば、図2に示した実施形態では、動的ナビゲーション・アプリケーションは、ユーザー提案ルート、コミュニティ・ユーザー提案ルートおよび複合提案ルートをユーザーに対する呈示のために生成してもよい。しかしながら、これは必ずしもそうでなくてもよい。他の実施形態では、動的ナビゲーション・アプリケーションは、他の提案されるルートを生成するよう構成されていてもよい。たとえば、動的ナビゲーション・アプリケーションは、コンテキスト・データ(たとえば、トラフィック条件、事故、工事および季節的な情報)に基づく提案されるルートを生成するよう構成されていてもよい。
したがって、諸実施形態は、ユーザー挙動データを生成する段階であって、前記ユーザー挙動データはユーザーのナビゲーション挙動に基づく、段階と、ユーザー位置情報を生成する段階であって、前記ユーザー位置情報はユーザーの現在位置に基づく、段階と、方向案内のための要求を含むナビゲーション問い合わせ通信を送信する段階とを含む、動的ナビゲーション・サービスを実装する方法を提供してもよい。本方法はまた、ユーザー位置情報に基づいてユーザーの関連コミュニティを決定する段階と、コミュニティ・ユーザー挙動データを生成する段階であって、前記コミュニティ・ユーザー挙動データは前記関連コミュニティのユーザーのナビゲーション挙動に基づく、段階と、コミュニティ・ユーザー提案ルートを生成する段階であって、前記コミュニティ・ユーザー提案ルートは前記コミュニティ・ユーザー挙動データに基づく、段階とを提供してもよい。
一例では、本方法は、問い合わせ結果通信を生成する段階を含んでいてもよい。前記問い合わせ結果通信は、前記コミュニティ・ユーザー提案ルートを含む。
一例では、本方法は、ユーザー提案ルートを生成する段階を含んでいてもよい。前記ユーザー提案ルートは、前記ユーザー挙動データに基づき、前記問い合わせ結果通信はさらに、前記ユーザー提案ルートを含む。
もう一つの例では、本方法は複合提案ルートを生成する段階を含んでいてもよい。前記複合提案ルートは、前記ユーザー挙動データおよび前記コミュニティ・ユーザー挙動データに基づき、前記問い合わせ結果通信はさらに前記複合提案ルートを含む。
諸実施形態は、コンピューティング装置上で実行されるのに応答して、前記コンピューティング装置に上述した方法の上記の例のいずれかを実行させる複数の命令を含む少なくとも一つの機械可読媒体、ユーザー・インターフェースおよび上述した方法の上記の例のいずれかを実行するよう構成された論理を含む動的ナビゲーション・サービスを実装する装置ならびにユーザー・インターフェース、デバイス・メモリおよび上述した方法の上記の例のいずれかを実行するよう構成された論理を含む動的ナビゲーション・サービスを実装するシステムをも含んでいてもよい。
もう一つの実施形態は、ユーザー位置情報に基づいてユーザーの関連コミュニティを決定する段階と、コミュニティ・ユーザー挙動データを生成する段階であって、前記コミュニティ・ユーザー挙動データは前記関連コミュニティのユーザーのナビゲーション挙動に基づく、段階と、コミュニティ・ユーザー提案ルートを生成する段階であって、前記コミュニティ・ユーザー提案ルートは前記コミュニティ・ユーザー挙動データに基づく、段階と含む、動的ナビゲーション・サービスを実装する方法を提供してもよい。
一例では、本方法は、前記コミュニティ・ユーザー提案ルートを含む問い合わせ結果通信を生成する段階を含んでいてもよい。
一例では、ユーザーの前記関連コミュニティは主要位置センターに基づいて決定される。
さらにもう一つの例では、本方法は、コンテキスト・データを生成する段階を含んでいてもよい。前記コンテキスト・データは、トラフィック条件および道路条件の一つまたは複数を含む。
もう一つの例では、本方法は、方向案内の要求を含むナビゲーション問い合わせ通信を受領する段階を含んでいてもよい。
さらにもう一つの例では、本方法は、ユーザー挙動データを受領する段階を含んでいてもよい。前記ユーザー挙動データは、前記ナビゲーション問い合わせ通信を送信するユーザーのナビゲーション挙動に基づく。
もう一つの例では、本方法は、ユーザー提案ルートを生成する段階を提供してもよい。前記ユーザー提案ルートは、前記ユーザー挙動データに基づく。
さらにもう一つの例では、前記ユーザー挙動データは、ナビゲーション選好およびナビゲーション習癖の一つまたは複数を含む。
さらにもう一つの例では、本方法は複合提案ルートを生成する段階を含んでいてもよい。前記複合提案ルートは、前記ユーザー挙動データおよび前記コミュニティ・ユーザー挙動データに基づく。
諸実施形態は、コンピューティング装置上で実行されるのに応答して、前記コンピューティング装置に上述した方法の上記の例のいずれかを実行させる複数の命令を含む少なくとも一つの機械可読媒体、ユーザー・インターフェースおよび上述した方法の上記の例のいずれかを実行するよう構成された論理を含む動的ナビゲーション・サービスを実装する装置ならびにユーザー・インターフェース、デバイス・メモリおよび上述した方法の上記の例のいずれかを実行するよう構成された論理を含む動的ナビゲーション・サービスを実装するシステムをも含んでいてもよい。
もう一つの実施形態は、ユーザー装置および動的ナビゲーション・サーバーを有するシステムを提供してもよい。ユーザー装置は、ユーザー装置インターフェース、ユーザー装置処理コンポーネント、ユーザー装置メモリ・デバイスおよびユーザー挙動データを生成するユーザー挙動データ・モジュールを含んでいてもよい。前記ユーザー挙動データは、ユーザーのナビゲーション挙動に基づくものとする。ユーザー装置は、ユーザー位置情報を生成するユーザー位置情報モジュールであって、前記ユーザー位置情報はユーザーの現在位置に基づく、ユーザー位置情報モジュールと、前記ユーザー挙動データおよび前記ユーザー位置情報を動的ナビゲーション・サービス・サーバーに送信する第一の送信モジュールと、方向案内の要求を含むナビゲーション問い合わせ通信を送信する第二の送信モジュールとをも含んでいてもよい。動的ナビゲーション・サービス・サーバーは、処理コンポーネント、メモリ・デバイス、前記ユーザー装置から送信される前記ナビゲーション問い合わせ通信およびユーザー位置情報を受信する受信モジュールと、前記ユーザー位置情報に基づいてユーザーの関連コミュニティを決定する関連コミュニティ・モジュールとを含んでいてもよい。動的ナビゲーション・サービスは、コミュニティ・ユーザー挙動データを生成するコミュニティ・ユーザー挙動モジュールであって、前記コミュニティ・ユーザー挙動データは前記関連コミュニティのユーザーのナビゲーション挙動に基づく、コミュニティ・ユーザー挙動モジュールと、コミュニティ・ユーザー提案ルートを生成するコミュニティ・ルート提案モジュールであって、前記コミュニティ・ユーザー提案ルートは、前記コミュニティ・ユーザー挙動データに基づく、コミュニティ・ルート提案モジュールとを含んでいてもよい。
諸実施形態は、一組の命令を有する少なくとも一つのコンピュータ可読記憶媒体をも提供してもよい。前記命令は、プロセッサによって実行されるとコンピュータに、ユーザー位置情報に基づいてユーザーの関連コミュニティを決定する段階と、コミュニティ・ユーザー挙動データを生成する段階であって、前記コミュニティ・ユーザー挙動データは前記関連コミュニティのユーザーのナビゲーション挙動に基づく、段階と、コミュニティ・ユーザー提案ルートを生成する段階であって、前記コミュニティ・ユーザー提案ルートは、前記コミュニティ・ユーザー挙動データに基づく、段階とを実行させるものである。
さらにもう一つの実施形態は、処理コンポーネント、メモリ・デバイスおよびユーザー位置情報に基づいてユーザーの関連コミュニティを決定する関連コミュニティ・モジュールを有する装置を提供してもよい。本装置はまた、コミュニティ・ユーザー挙動データを生成するコミュニティ・ユーザー挙動モジュールであって、前記コミュニティ・ユーザー挙動データは前記関連コミュニティのユーザーのナビゲーション挙動に基づく、コミュニティ・ユーザー挙動モジュールと、コミュニティ・ユーザー提案ルートを生成するコミュニティ・ルート提案モジュールであって、前記コミュニティ・ユーザー提案ルートは、前記コミュニティ・ユーザー挙動データに基づく、コミュニティ・ルート提案モジュールとを含んでいてもよい。
さまざまな実施形態が、ハードウェア要素、ソフトウェア要素または両者の組み合わせを使って実装されてもよい。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素(たとえば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能型論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールド・プログラム可能型ゲート・アレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含んでいてもよい。ソフトウェアの例は、ソフトウェア・コンポーネント、プログラム、アプリケーション、コンピュータ・プログラム、アプリケーション・プログラム、システム・プログラム、機械プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェア・モジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェア・インターフェース、アプリケーション・プログラム・インターフェース(API)、命令セット、コンピューティング・コード、コンピュータ・コード、コード・セグメント、コンピュータ・コード・セグメント、語、値、記号またはそれらの任意の組み合わせを含んでいてもよい。ある実施形態がハードウェア要素および/またはソフトウェア要素を使って実装されるかどうかの決定は、所望される計算レート、電力レベル、熱許容度、処理サイクル予算、入力データ・レート、出力データ・レート、メモリ資源、データ・バス・スピードおよび他の設計上もしくは性能上の制約条件といった、いくつもの因子によって変わりうる。
少なくとも一つの実施形態の一つまたは複数の側面は、プロセッサ内のさまざまな論理を表わす機械可読媒体上に記憶された、表現する命令によって実装されてもよい。該命令は、機械によって読まれたときに、機械に本稿に記載される技法を実行する論理を製作させる。「IPコア」として知られるそのような表現は、有体の機械可読媒体上に記憶されて、実際に前記論理またはプロセッサをなす製作機械にロードするためにさまざまな顧客または製造施設に供給されてもよい。
したがって、本稿に記載される技法は、最適な視覚的知覚的品質および閲覧体験を与えるよう消費者ビデオ・パイプラインのリアルタイム動作および動作するパイプラインの動的な更新の両方を保証するフィードフォワード・システムを提供しうる。特に、ビデオ・パイプラインのための離散制御システムは、ビデオの知覚的品質に関係した諸対話コンポーネント・モジュールのグローバルな構成を最適化するために、動的に動作点を適応させることができる。直列配位では、知覚的品質解析モジュールがビデオ処理パイプラインの前に置かれてもよく、後処理パイプラインのために決定されたパラメータが同じフレームのために使われてもよい。品質解析ブロックの分散式計算の場合、または知覚的品質解析がパイプライン中の中間的な諸点で実行される必要があるときは、リアルタイム動作を保証するために、所与のフレームを使って決定されたパラメータは、次のフレーム上で適用されてもよい。分散式の計算は、知覚的品質計算のためのある種の要素がすでに後処理パイプラインにおいて計算されていることがあり、再利用できるので、時に、複雑さを低下させることにおいて有益である。図示されたアプローチは、知覚的品質解析がビデオ処理パイプラインの出力において出力品質を推定するために再利用される閉ループ制御とも両立しうる。該出力品質も、制御機構によって使用される。
本発明の諸実施形態は、あらゆる型の半導体集積回路(「IC」)チップについて適用可能である。これらのICチップの例は、プロセッサ、コントローラ、チップセット・コンポーネント、プログラム可能型論理アレイ(PLA)、メモリ・チップ、ネットワーク・チップなどを含むがそれに限られない。さらに、一部の図面では、信号伝導線が線で表わされている。いくつかは、より多くの構成要素信号経路を示すために異なっていたり、構成要素信号経路の数を示すために数字ラベルを有していたり、および/または主要な情報の流れの方向を示すために一つまたは複数の端に矢印を有していたりすることがあるが、これは限定する仕方で解釈すべきではない。むしろ、そのような追加された詳細は、回路のより容易な理解を助けるための一つまたは複数の例示的な実施形態との関連で使われうる。追加的な情報をもつか否かによらず、表現されているいかなる信号線も、実際には、複数の方向に進みうる一つまたは複数の信号を有していてもよく、いかなる好適な型の信号方式で実装されてもよく、たとえば、差動対(differential pairs)、光ファイバー線および/または片側接地(single-ended)線をもって実装されたデジタルまたはアナログ線であってもよい。
例示的なサイズ/モデル/値/範囲が与えられていることがあるが、本発明の実施形態はそれに限定されるものではない。時とともに製造技法(たとえばフォトリソグラフィー)が成熟するにつれ、より小さなサイズのデバイスが製造できることが予期される。さらに、ICチップおよび他のコンポーネントへのよく知られた電力/接地接続は、図解および議論の簡単のため、また本発明の実施形態のある種の側面を埋没させることのないよう、図面内では示したかもしれないし示していないかもしれない。さらに、本発明の実施形態を埋没させるのを避けるために諸配置がブロック図の形で示されることがある。これはまた、そのようなブロック図配置の実装に関する詳細が、実施形態が実装されるプラットフォームに大きく依存する、すなわちそのような詳細は十分に当業者の範囲内であるはずであるという事実に鑑みてのことでもある。本発明の例示的な実施形態を記述するために個別的な詳細(たとえば回路)が記述されるところでは、当業者には、本発明の実施形態がそれらの個別的詳細なしでも、あるいはそのような個別的詳細の変形を用いてでも実施できることは、明白であるはずである。このように、本記述は、限定するのではなく例解するものと見なされるものである。
いくつかの実施形態は、機械によって実行されると該機械に上記実施形態に基づく方法および/または動作を実行させうる命令または一組の命令を記憶していてもよい機械または有体のコンピュータ可読媒体または物品を使って実装されてもよい。そのような機械は、たとえば、任意の好適な処理プラットフォーム、コンピューティング・プラットフォーム、コンピューティング装置、処理装置、コンピューティング・システム、処理システム、コンピュータ、プロセッサなどを含んでいてもよく、ハードウェアおよび/またはソフトウェアの任意の好適な組み合わせを使って実装されてもよい。上記機械可読媒体または物品は、たとえば、任意の好適な型のメモリ・ユニット、メモリ・デバイス、メモリ物品、メモリ媒体、記憶装置、記憶物品、記憶媒体および/または記憶ユニット、たとえばメモリ、リムーバブルまたは非リムーバブル媒体、消去可能または非消去可能媒体、書き込み可能または書き換え可能媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピー(登録商標)ディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)、記録可能型コンパクトディスク(CD-R)、書き換え可能型コンパクトディスク(CD-RW)、光ディスク、磁気媒体、光磁気媒体、リムーバブル・メモリ・カードまたはディスク、さまざまな型のデジタル多用途ディスク(DVD)、テープ、カセットなどを含んでいてもよい。上記命令は、ソース・コード、コンパイルされるコード、インタープリットされるコード、実行可能なコード、静的なコード、動的なコード、暗号化されたコードなどといった、任意の好適な高レベル、低レベル、オブジェクト指向、視覚的、コンパイルされるおよび/またはインタープリットされるプログラミング言語を使って実装される、いかなる好適な型のコードを含んでいてもよい。
特にそうでないとの断わりのない限り、「処理」「コンピューティング」「計算」「決定」などの用語は、コンピュータまたはコンピューティング・システムまたは物理的(たとえば電子的)な量としてコンピューティング・システムのレジスタおよび/またはメモリ内で表現されたデータを操作および/または変換して、コンピューティング・システムのメモリ、レジスタまたは他のそのような情報記憶、伝送もしくは表示装置内の物理的な量として同様に表現される他のデータにする同様の電子コンピューティング装置の動作および/またはプロセスを指すことが理解されうる。実施形態はこの点で限定されるものではない。
「結合された」という用語は、本稿では、問題となっているコンポーネント間の直接または間接の任意の型の関係を指すために使用されうるものであり、電気的、機械的、流体的、工学的、電磁的、電気機械式または他の接続に適用されうる。さらに、「第一」「第二」などの用語は、本稿では、議論を容易にするために使用されるのみであることがあり、特に断わりのない限り特定の時間的または年代的な意義をもたないことがある。
当業者は、以上の記述から、本発明の実施形態の幅広い技法が多様な形で実装できることを理解するであろう。したがって、本発明の実施形態はその特定の例との関連で記載されたが、本発明の実施形態の真の範囲は、それに限定されるべきではない。図面、明細書および付属の請求項を吟味すれば、他の修正が当業者には明白となるであろう。