以下、図面を参照しつつ本発明の実施の形態について説明する。
<1.第1の実施の形態>
<1−1.システム構成>
図1は、本実施の形態に係るナビゲーションシステム100の概要を示す図である。ナビゲーションシステム100は、車両1内に携帯機器2と車両用装置3とを有している。ナビゲーションシステム100は、携帯機器2から車両用装置3に対して、ナビゲーション画像を送信し、車両用装置3がそれを表示することによってナビゲーション機能を実現するシステムである。各部の詳細は後に説明する。なお、以下においては、車両1の運転者を含む乗員や、携帯機器2及び車両用装置3を操作する者を「ユーザ」という場合がある。
携帯機器2は、ナビゲーション機能を有する可搬型の電子機器である。携帯機器2としては、例えば、ナビゲーション機能を有するスマートフォン、携帯電話、PDA(Personal Digital Assistant)等が挙げられる。また、車両用装置3は、車両1内で使用され、少なくとも表示部を有する電子機器である。車両用装置3は、車両1のダッシュボードの開口部に設置して使用する、いわゆる嵌め込み型の電子機器や、ダッシュボード上に設置部材を用いて設置して使用する電子機器等、車両1に乗車しているユーザが、表示部に表示された画像を視認可能な電子機器であればよい。
携帯機器2と車両用装置3とは、通信可能に構成されており、携帯機器2は、ナビゲーション画像の圧縮データを車両用装置3に送信する。車両用装置3は、受信した圧縮データを伸張し、得られたナビゲーション画像を表示部に表示して経路案内を実行する。
このように、本実施の形態に係るナビゲーションシステム100は、携帯機器2にて表示しているナビゲーション画像を車両用装置3でも表示することにより、ナビゲーション機能を有していない車両用装置3であっても目的地までの経路案内を可能にするシステムである。以下、ナビゲーションシステム100の構成及び処理について説明する。
<1−2.携帯機器の構成>
まず、携帯機器2の構成について説明する。図2は、携帯機器2の概要を示すブロック図である。図2に示すように、携帯機器2は、制御部21と、記憶部22と、通信部23と、表示部24と、操作部25とを備えている。
制御部21は、ナビゲーション部26と、操作判定部27と、表示制御部28と、画像圧縮部29とを備えており、また、図示しないCPU、RAM、及びROMを備えるコンピュータである。制御部21は、携帯機器2が備える記憶部22や通信部23等と接続され、記憶部22に記憶されたプログラム22aに基づいて情報の送受信を行い、携帯機器2の全体を制御する。記憶部22に記憶されたプログラム22aにしたがってCPUが演算処理を実行することにより、ナビゲーション部26や表示制御部28、画像圧縮部29等の制御部21の機能が実現される。
ナビゲーション部26は、現在位置の表示や目的地までの経路を探索して誘導を行う。また、ナビゲーション部26は、携帯機器2が有する図示しないGPS(Global positioning system:全地球測位システム)を用いて現在の位置情報を取得し、記憶部22に記憶されている地図情報を取得する。そして、ナビゲーション部26は、これら位置情報及び地図情報に基づいて現在位置や目的地までの経路を周辺地図に重畳したナビゲーション画像を作成する。なお、ナビゲーション部26は、所定のタイミング(例えば、30フレーム/秒)でナビゲーション画像を作成する。すなわち、ナビゲーション部26は、作成のタイミング毎に現在の位置情報と、その位置情報に応じた地図情報とを取得し、ナビゲーション画像を作成する。
操作判定部27は、ユーザが携帯機器2の操作部25を操作することによって、ナビゲーションの各種操作や表示設定等の操作があった場合に、その操作内容を判定する。ナビゲーションの各種操作とは、例えば目的地設定や経路の選択等の操作であり、表示設定等の操作とは、例えばナビゲーション画像の回転指示や、拡大指示、縮小指示等の操作である。
表示制御部28は、携帯機器2の表示部24にナビゲーション画像を表示させる制御を行う。表示制御部28は、表示部24を制御してナビゲーション画像を所定のタイミング(例えば、30フレーム/秒)で順次表示させる。
画像圧縮部29は、ナビゲーション画像の圧縮処理を行うものである。前述のように、ナビゲーション画像は車両用装置3でも表示するため、携帯機器2は車両用装置3にナビゲーション画像を送信している。ただし、送信の際の遅延を防止する必要があるため、携帯機器2では、画像圧縮部29にてナビゲーション画像を圧縮処理してデータの容量を小さくしている。圧縮処理の方法としては、処理の負荷が高くなく、通信速度に影響を及ぼさない程度にデータ容量を小さくできる方法を使用すればよい。
本実施の形態ではMPEGの圧縮規格を参考にした圧縮方法を使用している。具体的には、ナビゲーション画像のフレーム内だけで符号化する圧縮方法と、過去フレームの画像情報を用いて動き補償をすることにより符号化する圧縮方法とを使用している。なお、説明の便宜上、以下においては、フレーム内だけで符号化する圧縮方法により得られた画像データを「Iピクチャ」といい、過去フレームの画像情報を用いて動き補償をすることにより符号化する圧縮方法によって得られた画像データを「Pピクチャ」という場合がある。また、以下において、Iピクチャ及びPピクチャの一方又は双方の画像データを「圧縮画像情報」という場合がある。
画像圧縮部29による圧縮処理の詳細については後述することとし、ここでは動き補償を用いて符号化する圧縮方法の概要について説明する。まず、ナビゲーション画像の各フレームを、例えば16×16画素のブロック(以下、「マクロブロック」という)に分割し、動きベクトルを導出するためのマクロブロックの範囲を決定する。動きベクトルとは、ナビゲーション画像の前後のフレームで被写体が動いた方向とその距離を示す動き情報である。そして、ナビゲーション画像の前後のフレームにおいて、決定した範囲内のマクロブロック同士を比較して同じ画像データとなるマクロブロックを探索し、同じ画像データのマクロブロックの方向と距離に基づいて動きベクトルを導出する。その後、導出した動きベクトルに基づいて前後フレームの差分画像を導出して符号化することにより圧縮処理を行っている。
画像圧縮部29は、移動方向導出部29aと、探索範囲決定部29bと、動きベクトル導出部29cと、符号化部29dとを備えている。
移動方向導出部29aは、連続するナビゲーション画像を作成する間に車両1が移動した方向及び距離を導出する。導出した車両1の移動方向及び距離は、動きベクトルを導出するために使用するマクロブロックの範囲を決定する際に用いられる。車両1の移動方向及び距離の導出は、携帯機器2が有するGPSで取得した位置情報や走行情報に基づいて行うことができる。走行情報とは、車両1の走行に係る情報であり、例えば、車速や舵角に関する情報である。移動方向導出部29aは、走行情報を車両用装置3から取得する。
探索範囲決定部29bは、動きベクトルの導出に用いるマクロブロックの範囲を決定する。本実施の形態は、ナビゲーション画像の前後フレームにおける全てのマクロブロック同士を比較して動きベクトルを導出するのではなく、車両1の移動方向及び距離に応じて所定の範囲に含まれるマクロブロックのみを選択して動きベクトルを導出する構成である。このため、探索範囲決定部29bは、最初に探索するマクロブロックを決めるとともに、この最初に探索するマクロブロックの周辺のマクロブロックの内、どのマクロブロックまでを探索に用いる範囲とするのかを決定する。
動きベクトル導出部29cは、ナビゲーション画像の前後フレームの画像データに基づいて動きベクトルを導出する。具体的には、動きベクトル導出部29cは、前後フレームのマクロブロックの画像データ同士を比較して、データが一致しているか否かを判断する。そして、データが一致している場合には、同じ画像データであるとして、各フレームのマクロブロックの位置関係に基づいて動きベクトルを導出する。データが一致していない場合には、探索範囲決定部29bにて決定した範囲内のマクロブロックを用いて再度比較を行い、データが一致するマクロブロックを探索して動きベクトルを導出する。
符号化部29dは、ナビゲーション画像を符号化する。符号化部29dは、Iピクチャ及びPピクチャの何れを生成するのかを判断し、それぞれに応じた符号化を行う。具体的には、符号化部29dは、Iピクチャを生成する場合には、ナビゲーション画像の1つのフレーム内で、離散コサイン変換を行った後に高周波成分を削減して、ハフマン符号化やランレングス符号化を行う。また、Pピクチャを生成する場合には、動きベクトルを用いて参照画像との差分情報を導出し、その差分情報に基づいて符号化(いわゆる、動き補償フレーム間予測符号化)を行う。
記憶部22は、プログラム22a、地図情報22b、圧縮画像情報22cを記憶している。本実施の形態における記憶部22は、電気的にデータの読み書きが可能であって、電源を遮断されてもデータが消去されない不揮発性の半導体メモリである。記憶部22としては、例えば、EEPROM(Electrical Erasable Programmable Read-Only memory)やフラッシュメモリを用いることができる。ただし、他の記憶媒体を用いてもよく、磁気ディスクを備えたハードディスクドライブで構成することもできる。
プログラム22aは、制御部21により読み出され、制御部21が携帯機器2を制御するために実行される、いわゆるシステムソフトウェアである。地図情報22bは、全国又は一定の広域の道路情報及び交通情報である。携帯機器2のユーザに対する現在地の表示や目的地へ誘導するナビゲーションには、地図情報の一部が利用される。
通信部23は、車両用装置3と通信可能に接続され、車両用装置3との間で情報の送受信を行う。通信部23は、車両用装置3に対して、圧縮画像情報22cや操作情報等を送信し、車両用装置3から走行情報や操作情報等を受信する。なお、携帯機器2と車両用装置3との通信は、ケーブルを直接接続した有線による通信でもよく、無線通信でもよい。無線通信の場合における通信方法は、携帯機器2と車両用装置3との間で遅延が生じることなく情報の送受信を行うことができるものであればよく、例えば、ブルートゥース(Bluetooth;登録商標)や、Wi−Fi(ワイファイ:登録商標)、ZigBee(ジグビー:登録商標)等の無線通信規格を用いることができる。
表示部24は、ナビゲーション画像等を表示する表示装置であり、例えば液晶ディスプレイや、有機ELディスプレイ等である。
操作部25は、機械式のボタンやタッチパネルを備えた情報の入力装置である。ユーザは、操作部25を操作することによって、ナビゲーションに関する各種操作や、表示設定等の操作を行うことができる。なお、操作部25は、表示部24と一体として構成してもよい。
<1−3.車両用装置の構成>
次に車両用装置3の構成について説明する。図3は、車両用装置3の概要を示すブロック図である。図3に示すように、車両用装置3は、制御部31と、記憶部32と、走行情報取得部33と、通信部34と、表示部35と、操作部36とを備えている。
制御部31は、操作判定部37と、復号部38と、表示制御部39とを備えており、また、図示しないCPU、RAM、及びROMを備えるコンピュータである。制御部31は、車両用装置3が備える記憶部32や通信部34等と接続され、記憶部32に記憶されたプログラム32aに基づいて情報の送受信を行い、車両用装置3の全体を制御する。記憶部32に記憶されたプログラム32aにしたがってCPUが演算処理を実行することにより、復号部38や表示制御部39等の制御部31の機能が実現される。
操作判定部37は、ユーザが車両用装置3の操作部36を操作することによって、ナビゲーションの各種操作や表示設定等の操作があった場合に、その操作内容を判定する。ナビゲーションの各種操作とは、例えば目的地設定や経路の選択等の操作であり、表示設定等の操作とは、例えばナビゲーション画像の回転指示や、拡大指示、縮小指示等の操作である。
復号部38は、携帯機器2から受信した圧縮画像情報22cの復号処理を行う。復号処理の方法は、携帯機器2の符号化部29dにて符号化した圧縮画像情報22cを復号できる方法を用いればよい。携帯機器2から送信された圧縮画像情報22cがIピクチャに関するものである場合には、復号部38は、その圧縮画像情報22cを複合してナビゲーション画像を生成する。また、携帯機器2から送信された圧縮画像情報22cがPピクチャに関するものである場合には、記憶部32から参照画像としての圧縮画像情報22cを読み出し、参照画像に基づいて圧縮画像情報22cを復号してナビゲーション画像を生成する。
表示制御部39は、復号部38で復号して生成されたナビゲーション画像を、車両用装置3の表示部35に表示させる制御を行う。表示制御部39は、表示部35を制御して、携帯機器2の表示制御と同じ周期(例えば、30フレーム/秒)でナビゲーション画像を順次表示させる。
記憶部32は、プログラム32aや圧縮画像情報22cを記憶する。車両用装置3の記憶部32は、前述した携帯機器2のメモリと同様の構成とすることができる。プログラム32aは、制御部31により読み出され、制御部31が車両用装置3を制御するために実行される、いわゆるシステムソフトウェアである。また、圧縮画像情報22cは、携帯機器2から送信されたナビゲーション画像の圧縮データ(Iピクチャ、Pピクチャ)である。記憶部32に記憶された圧縮画像情報22cは、Pピクチャを復号する際の参照画像として使用される。
走行情報取得部33は、車両の走行に関する情報として、車速や舵角といった走行情報を取得する。車両1には、車速センサや舵角センサ等の車両1の走行状態を検出する各種センサが設けられており、走行情報取得部33は、CAN(Controller Area Network)等の車載LAN(Local Area Network)を介してこれら各種センサの出力を走行情報として取得する。また、走行情報取得部33は、取得した走行情報を定期的に制御部31に送信する。
通信部34は、携帯機器2と通信可能に接続され、携帯機器2との間で情報の送受信を行う。通信部34は、携帯機器2に対して、走行情報取得部33にて取得した、車速や舵角といった走行情報を送信し、携帯機器2から送信された圧縮画像情報22cを受信する。また、通信部34は、ユーザが操作部36を操作した際の操作内容を操作情報として携帯機器2に送信し、携帯機器2から携帯機器2側の操作情報を受信する。なお、通信の方法は、前述した携帯機器2の通信部23が用いている方法と同じ方法を用いればよい。
表示部35は、ナビゲーション画像を表示する表示装置であり、例えば液晶ディスプレイや、有機ELディスプレイ等である。
操作部36は、機械式のボタンやタッチパネルを備えた情報の入力装置である。ユーザは、操作部36を操作することによって、ナビゲーションに関する各種操作や、表示設定等の操作を行うことができる。なお、操作部36は、表示部35と一体として構成してもよい。
<1−4.携帯機器の処理>
次に、携帯機器2の処理について説明する。図4は、携帯機器2の処理を示すフローチャートである。
携帯機器2の処理は、携帯機器2のナビゲーション機能が起動することにより開始する。ナビゲーション部26は、ナビゲーション機能が起動すると、携帯機器2が有するGPSを用いて現在位置を示す位置情報を取得する(ステップS11)。次に、ナビゲーション部26は、現在位置の位置情報に基づいて表示すべき周辺の地図情報22bを記憶部22から取得する(ステップS12)。具体的には、ナビゲーション部26は、表示部24の画面の大きさや表示する地図の縮尺、車両1の進行方向等に基づいて取得する地図の範囲を抽出し、現在位置の位置情報に基づいて表示すべき地図情報22bを記憶部22から取得する。また、操作部25の操作により目的地の入力がされると、ナビゲーション部26は、現在位置から目的地までの経路探索を実行する(ステップS13)。
次に、ナビゲーション部26は、経路探索結果に基づいて、現在位置や誘導経路を、記憶部22から取得した地図情報22bに重畳表示したナビゲーション画像を作成する(ステップS14)。なお、ナビゲーション画像は、表示周期に合わせて作成される。例えば、ナビゲーション画像の表示を30フレーム/秒で行う場合には、ナビゲーション部26は、1秒間に30フレームのナビゲーション画像を作成する。
そして、表示制御部28が、ナビゲーション画像を表示部24に表示する制御を行う(ステップS15)。これにより、携帯機器2でのナビゲーション機能が実現される。
また、制御部21は、通信部23が車両用装置3の通信部34と通信可能な状態であるか否かを判断する(ステップS16)。制御部21は、携帯機器2と通信を行う車両用装置3を予め登録しておき、通信部23が登録された車両用装置3の通信部34と通信可能な状態になっているかを判断する。通信の可否の判断は、例えば、通信部23から車両用装置3に対して、通信確立が可能であるか否かを確認するデータを送信し、車両用装置3から可能である旨のデータが返信されてきた場合に通信可能な状態であると判断する。
制御部21は、車両用装置3との通信が可能である場合(ステップS16でYES)には通信を確立させる(ステップS17)。一方、通信が可能でない場合(ステップS16でNO)には、制御部21は、定期的に通信の可否を判断する。なお、本実施の形態では、通信の可否の判断をナビゲーション画像の生成後に行っているが、これに限定されるものではなく、ナビゲーション機能が起動した後の任意のタイミングで実行すればよい。また、通信確立の可否を確認するためのデータは、車両用装置3から送信され、携帯機器2が通信可能である旨のデータを返信する構成としてもよい。
車両用装置3との通信が可能であると判断された場合には、画像圧縮部29は、車両用装置3に送信するためにナビゲーション画像の圧縮処理を行う(ステップS18)。以下、図5に基づいて圧縮処理の方法について説明する。図5は、携帯機器2によるナビゲーション画像の圧縮処理(ステップS18)を説明するフローチャートである。
まず、符号化部29dが、ナビゲーション画像の圧縮対象のフレーム(以下、「圧縮フレーム」という)がIピクチャを生成するための符号化を行うフレームであるか、Pピクチャを生成するための符号化を行うフレームであるかを判断する(ステップS31)。符号化部29dは、所定の条件に該当する場合に、圧縮フレームがIピクチャを生成するための符号化を行うフレームであると判断する。所定の条件とは、圧縮フレームが、ナビゲーション機能の起動直後のフレームである場合や、操作部25の操作によりナビゲーション画像の回転、拡大、縮小の指示が入力された場合、Iピクチャを生成するタイミングのフレームである場合である。本実施の形態では、一定のタイミングでIピクチャを生成する構成としており、Iピクチャを生成するタイミングは、任意のタイミングを予め設定しておけばよい。例えば、1+5n(nは整数)枚目のフレームをIピクチャとするように設定することができる。
符号化部29dは、圧縮フレームがIピクチャを生成するための符号化を行うフレームであると判断した場合には(ステップS31でYES)、フレーム内だけで符号化する圧縮方法により圧縮フレームを符号化してIピクチャを生成する(ステップS32)。具体的には、符号化部29dは、圧縮フレーム内で、例えば離散コサイン変換を行った後に高周波成分を削減して、ハフマン符号化やランレングス符号化を行う。これにより、Iピクチャが生成される。
図4に戻り、制御部21は、生成したIピクチャを圧縮画像情報22cとして記憶部22に記憶し(ステップS19)、通信部23を介して車両用装置3に送信する(ステップS20)。
再度図5に基づいて説明する。符号化部29dは、Iピクチャを生成するための符号化を行うフレームでないと判断した場合には(ステップS31でNO)、Pピクチャを生成するための符号化を行うフレームであると判断する。そして、符号化部29dは、いわゆる動き補償フレーム間予測符号化による圧縮方法を用いて圧縮フレームを符号化してPピクチャを生成する(ステップS33)。以下、図6に基づいてPピクチャを生成する方法について説明する。図6は、Pピクチャの生成処理(ステップS33)を説明するフローチャートである。
図6に示すように、まず、移動方向導出部29aが、参照画像とすべきフレーム(以下、「参照フレーム」という)を生成してから圧縮フレームを生成するまでに車両1が移動した方向及び距離を導出する(ステップS41)。なお、参照画像は、過去のIピクチャやPピクチャである。車両1の移動方向及び距離の導出は、携帯機器2が有するGPSにて取得した位置情報や、車両用装置3から取得した走行情報を用いて行うことができる。走行情報とは、前述のように車両1の車速及び舵角に関する情報である。移動方向導出部29aは、位置情報を用いる場合には、GPSで測位した位置座標の変化に基づいて移動方向及び距離を導出する。また、移動方向導出部29aは、走行情報を用いる場合には、舵角の情報に基づいて移動方向を導出し、車速の情報に基づいて移動距離を導出する。
位置情報は、ナビゲーション画像を生成する際に取得した位置情報を用いればよい。また、走行情報は、車両用装置3から定期的に送信されており、携帯機器2は、受信した走行情報を記憶部22に記憶しておく。移動方向導出部29aは、移動方向及び距離を導出するタイミングで最新の走行情報を記憶部22から読み出して移動方向及び距離の導出に使用する。
ただし、走行情報を定期的に受信する構成に限定されるものではなく、必要なタイミングで走行情報を取得し、取得した走行情報を用いて移動方向及び距離を導出する構成であってもよい。すなわち、移動方向導出部29aが移動方向及び距離を導出するタイミングとなった際に、制御部21が通信部23を介して車両用装置3に走行情報の送信を要求する。そして、移動方向導出部29aが、この要求に対して車両用装置3から送信された走行情報を使用して移動方向及び距離を導出する構成としてもよい。
次に、探索範囲決定部29bが、動きベクトルの導出に用いるマクロブロックの範囲(以下、「探索範囲」という)を決定する(ステップS42〜ステップS47)。探索範囲の決定は、参照フレームの中から動きベクトルを導出するために参照すべきマクロブロックと、圧縮フレームの中から動きベクトルを導出するために参照すべきマクロブロックとを決める処理である。探索範囲の決定処理及び後述の動きベクトルの導出処理については、図6に加えて、図7及び図8も用いて説明する。図7は、連続する2枚のナビゲーション画像を示す図である。図7(a)及び(b)は、車両1の移動に伴い、表示する地図画像の領域が変化していることを示しており、図7(a)は今回の地図画像、図7(b)は前回送信したときの地図画像である。また、図8は、探索範囲を決定する処理の概念を示す図である。図8(a)及び(b)は、図7(a)及び(b)に対応している。すなわち、図7及び図8の例においては、参照フレームが(a)に相当し、圧縮フレームが(b)に相当する。
まず、探索範囲決定部29bは、参照フレーム及び圧縮フレームの各々の画像データを16×16画素のマクロブロックに分割する(ステップS42)。ただし、マクロブロックは8×8画素や4×4画素でもよく、適宜設定可能である。図8は、画像データをマクロブロックに分割している概念を示している。
そして、探索範囲決定部29bは、参照フレームのマクロブロックの中から、動きベクトルの導出に使用するマクロブロック(以下、「参照ブロック」という)を決定する(ステップS43)。探索範囲決定部29bは、予め設定された決定条件に基づいて参照ブロックを決定する。この決定条件は、参照フレーム及び圧縮フレームの両方の表示領域内にあるマクロブロックの中から選択するというものである。すなわち、参照フレームで表示されていた画像データが、車両1の移動に伴い圧縮フレームの表示領域の外に出てしまった場合には、その画像データを用いても動きベクトルの導出ができないことは明らかであるため、両フレームに表示されている画像データ(両画像に含まれる画像情報)を選択対象としている。この参照フレームの画像データが圧縮フレームの表示領域内にあるか否かは、車両1の移動方向及び距離の情報を参照して判断する。
また、この条件に代えて他の条件を決定条件としてもよく、この条件に他の条件を付加して決定条件としてもよい。他の条件とは、例えば、全マクロブロックの中心のマクロブロックを参照ブロックとして決定するといった条件である。車両1が何れの方向に移動しても、圧縮フレームの表示領域外に出る可能性が最も低いマクロブロックだからである。また、圧縮フレームの表示領域内に確実に移動していることが明らかなマクロブロックがある場合には、そのマクロブロックを参照ブロックとして決定するという条件でもよい。また、各マクロブロックの空間周波数を算出して、空間周波数が一定値以上のマクロブロックの中から参照ブロックを決定するという条件でもよい。空間周波数の低い画像データは、エッジのない画像(いわゆる一色の画像)を示しており、同じような空間周波数のマクロブロックが他にある可能性が高い。したがって、このようなマクロブロックを用いると誤った動きベクトルを導出してしまう可能性があるものの、空間周波数の高いマクロブロックを用いることでこれを回避することができるためである。
なお、図8(a)に示すように、ナビゲーション画像には、操作部25として機能するタッチパネル式のメニューボタン25a〜25eや自車位置マーク25f、方角マーク25g(以下、「メニューボタン等」という)が含まれている。これらメニューボタン等25a〜25gは、常に画面の同じ位置に表示されているものである。したがって、車両1の移動に伴って地図画像が移動した場合であっても、メニューボタン等25a〜25gが地図画像に合わせて移動することはない。このため、メニューボタン等25a〜25gを表示している領域のマクロブロックは、参照ブロックとして選択しない。
メニューボタン等25a〜25gのように常に同じ位置に表示されるものは予め決まっているため、探索範囲決定部29bは、メニューボタン等25a〜25gが表示される画面上の位置情報(以下、「固定位置情報」という)を予め取得して記憶部22に記憶しておく。探索範囲決定部29bは、初期表示のナビゲーション画像における固定位置情報のみならず、メニューボタン等25a〜25eを押下することにより遷移する他の画面においても、常に同じ位置に表示されるボタンがある場合には、各画面における固定位置情報も合わせて記憶しておく。そして、探索範囲決定部29bは、表示する画面に応じて該当する固定位置情報を記憶部22から読み出し、この固定位置情報に対応する位置のマクロブロックを参照ブロックの選択対象から除外する。なお、メニューボタン等25a〜25gの配置に変化があった場合には、変化後の固定位置情報を新たに取得すればよい。
このようにして、探索範囲決定部29bは、参照ブロックの選択対象から除外するマクロブロック以外のマクロブロックの中から、予め設定された決定条件に基づいて参照ブロックを決定する。
次に、探索範囲決定部29bは、圧縮フレームのマクロブロックの中から、最初に動きベクトルの導出に使用するマクロブロック(以下、「基準ブロック」という)を決定する(ステップS44)。探索範囲決定部29bは、移動方向導出部29aにて導出した車両1の移動方向及び距離の情報を用いて、参照ブロックが移動したと推定されるマクロブロックを選択して基準ブロックとする。具体的には、探索範囲決定部29bは、圧縮フレームのマクロブロックの内、参照ブロックの位置に対応する位置から、車両1が移動した方向及び距離に対応する位置にあるマクロブロックを選択し、基準ブロックとして決定する。
なお、基準ブロックの決定方法はこれに限らず、例えば、前回導出した動きベクトルをレジスタ等に保持しておき、参照ブロックに対応する位置にある圧縮フレームのマクロブロックからこの動きベクトル分だけ離れた位置のマクロブロックを基準ブロックとしてもよい。また、経路案内情報と道路情報とに基づいて車両1の移動方向及び距離を推測し、参照ブロックに対応する位置にある圧縮フレームのマクロブロックから、推測した方向及び距離の分だけ離れた位置のマクロブロックを基準ブロックとしてもよい。
次に、探索範囲決定部29bは、基準ブロックの周辺のマクロブロックの中から、基準ブロックでは動きベクトルが導出できなかった場合に、動きベクトルの導出に使用するマクロブロック(以下、「周辺ブロック」という)を決定する(ステップS45)。
探索範囲決定部29bは、基準ブロックから所定の範囲に存在するマクロブロックの中から1つ又は複数のマクロブロックを選択して周辺ブロックとする。所定の範囲は、車両1の移動速度や移動方向、地図の縮尺率等に応じて適宜設定すればよい。例えば、車両1の移動速度が速い場合には、動きベクトルは大きくなると予想されるため、一定速度以上の場合には範囲を広く設定し、一定速度未満の場合には範囲を狭く設定する。また、地図の縮尺率が小さい場合には、広範囲の地図が表示されることとなり、動きベクトルは小さくなると予想されるため、一定の縮尺率未満の場合には範囲を狭く設定し、一定の縮尺率以上の場合には範囲を広く設定する。また、車両1の移動方向に対応するマクロブロックが多く含まれ、それ以外の方向のマクロブロックはあまり含まれないような範囲を設定する等である。探索範囲決定部29bは、これらの1つ又は複数を考慮して範囲を設定すればよい。この基準ブロック及び周辺ブロックが、圧縮フレームの中から動きベクトルを導出するために参照すべき探索範囲となる。
なお、基準ブロックを決定する際に使用する車両1の移動方向及び距離は、実際の移動方向及び距離と誤差を含む可能性もあり、また、前回の動きベクトルと今回の動きベクトルとは必ずしも同じ値になるとは限らない。このため、移動方向及び距離に対応する基準ブロックのみを使用したり、前回の動きベクトルに対応する基準ブロックのみを使用して動きベクトルを導出しようとしても、導出できない場合がある。これに対して、基準ブロックのみならず周辺ブロックも含めて探索範囲とすることで確実に動きベクトルを導出することが可能となる。
図8に示す例においては、図8(a)に示すように、マクロブロックの中から1つのマクロブロックが参照ブロック81として選択される。また、図8(b)に示すように、マクロブロックの中から1つのマクロブロックが基準ブロック82として選択され、複数のマクロブロックが周辺ブロック83として選択される。これら基準ブロック82及び周辺ブロック83が探索範囲である。
次に、動きベクトル導出部29cが、動きベクトルを導出する(ステップS46)。具体的には、動きベクトル導出部29cは、まず、基準ブロックの画像データと参照ブロックの画像データとを比較する。動きベクトル導出部29cは、両画像データが一致していると判断した場合には、これら各マクロブロックは同じ画像データであると判断する。そして、動きベクトル導出部29cは、基準ブロックの参照ブロックに対する方向及び距離に基づいて動きベクトルを導出する。
画像データが一致しているか否かの判断は、基準ブロック内の画素値と参照ブロック内の画素値とを比較して行う。具体的には、両マクロブロック内の画素値が一定の割合以上で一致している場合には、両画像データが一致していると判断する。例えば、両マクロブロック内の画素値の分布を算出し、分布の一致度が一定値以上である場合に画像データが一致していると判断し、一定値未満である場合に画像データは一致していないと判断する。また、両マクロブロック内の対応するそれぞれの画素の濃度値の差の絶対値を合計して、その合計値が所定値以下である場合に一致していると判断し、所定値より大きい場合に一致していないと判断してもよい。
動きベクトル導出部29cは、両画像データが一致していないと判断した場合には、これら両マクロブロックは異なる画像データであると判断する。そして、動きベクトル導出部29cは、周辺ブロックの中から次に動きベクトルの導出に用いるマクロブロックを選択する。動きベクトル導出部29cは、周辺ブロックの中から、車両1の移動方向及び距離の情報に基づいて参照ブロックが移動している可能性が最も高いと推測されるマクロブロックを選択する。
そして、基準ブロックの場合と同様に、動きベクトル導出部29cは、選択された新たなマクロブロックの画像データと参照ブロックの画像データとを比較して一致しているか否かを判断する。動きベクトル導出部29cは、画像データが一致していると判定した場合には、動きベクトルを導出し、一致していないと判定した場合には、再度周辺ブロックの中から動きベクトルの導出に用いるマクロブロックを選択して、参照ブロックの画像データと一致するまで同様の処理を実行する。
図8に示す例においては、動きベクトル導出部29cは、参照ブロック81の画像データと基準ブロック82の画像データとを比較する。これら各マクロブロックは、同じ地図画像の領域であるため、画素値の一致度は所定値以上となる。したがって、動きベクトル導出部29cは、両画像データは一致していると判断し、参照ブロック81と基準ブロック82の位置関係に基づいて動きベクトルを導出する。
図8の例では、画面中の下方向(南方向)にマクロブロック単位で1マス分画像データが移動している。このため、動きベクトル導出部29cは、この方向と距離に対応するデータを動きベクトルとして導出することになる。なお、仮に参照ブロック81と基準ブロック82の画像データが一致していない場合には、動きベクトル導出部29cは、周辺ブロック83の中から1つマクロブロックを選択して、そのマクロブロックと参照ブロック81との比較を行うことになる。
次に、符号化部29dは、圧縮フレームの符号化処理を実行する(ステップS47)。まず、符号化部29dは、導出された動きベクトルを、参照フレームに適用して動き補償をすることにより、圧縮フレームに対応する予測画像を生成する。そして、符号化部29dは、圧縮フレームの画像データと予測画像のデータとの差分を取ることによって差分情報を導出する。そして、符号化部29dは、これら動きベクトルと差分情報とを符号化する。この符号化は、例えば、ハフマン符号化により行うことができる。
なお、動きベクトルの導出は、探索範囲内のマクロブロックに対してのみ行い、それ以外のマクロブロックに対しては行っていない。これは、地図画像の移動は平行移動であるため、探索範囲外のマクロブロックも動きベクトル値は同じであると考えられるためである。このため、動き補償は、探索範囲内のマクロブロックを用いて導出した動きベクトルを他のマクロブロックに対しても適用して行われる。
ただし、前述と同様に、メニューボタン等25a〜25g等の常に同じ位置に表示される位置のマクロブロックに対しては動きベクトルを適用しない。すなわち、符号化部29dは、固定位置情報を記憶部22から読み出し、その固定位置情報に対応する位置のマクロブロックに対しては、動きベクトルを0として動き補償を行う。
なお、メニューボタン等25a〜25gの画像領域は、1つ又は複数個のマクロブロックの領域と同じにすることが好ましい。メニューボタン等25a〜25gの画像領域が、マクロブロックの領域と一致しない場合には、マクロブロック内に動きベクトルを適用する部分と動きベクトルを0にする部分とが混在することになり、動き補償の効率が低下するためである。
また、車両1の移動に伴い、新たな地図画像が表示される領域のマクロブロックは、参照画像内に対応する画像データがないため動き補償は行わず、新たに表示する地図情報を取得してその画像データを符号化する。この符号化は、Iピクチャを生成する際に使用した符号化の処理と同様に行うことができる。すなわち、符号化部29dは、Pピクチャを生成する場合においても、動き補償フレーム間予測符号化を行う領域と、フレーム内だけで符号化を行う領域とを判別し、各領域に対して対応する符号化処理を実行する。
そして、符号化部29dは、これら動きベクトルの符号化データ、差分情報の符号化データ、及び新たに表示する地図情報の符号化データを多重化する処理を行う。これによりPピクチャが生成される。
図4に戻り、制御部21は、生成したPピクチャを圧縮画像情報22cとして記憶部22に記憶し(ステップS19)、通信部23を介して車両用装置3に送信する(ステップS20)。記憶部22に記憶したPピクチャは、後の参照画像となる場合には、記憶部22から読み出されて使用され、参照画像としない場合には使用しない。
なお、図4には図示していないが、ステップS14〜ステップS20の処理は、各ナビゲーション画像を生成する毎に実行されるものであるため、制御部21は、次のフレームに対しても同様の処理を行う。この場合、通信に係る処理(ステップS16及びステップS17)は、必ずしもフレーム毎に行う必要はなく、数フレーム毎に行えばよい。一方、携帯機器2のナビゲーション機能の終了、又は、車両用装置3との通信の停止が検出された場合には処理を終了する。
<1−5.車両用装置の処理>
次に、本実施の形態における車両用装置3の処理について説明する。図9は、車両用装置3の処理を示すフローチャートである。
車両用装置3の処理は、車両用装置3の起動により開始する。制御部31は、通信部34を起動させて、携帯機器2の通信部23と通信可能な状態である否かを判定する(ステップS51)。通信の可否の判断は、前述した携帯機器2の通信部23での処理と同様に行えばよい。制御部31は、携帯機器2との通信が可能である場合には通信を確立させる(ステップS52)。
制御部31は、走行情報取得部33にて車内の各種センサから出力された走行情報を取得し(ステップS53)、通信部34を介して携帯機器2に送信する(ステップS54)。具体的には、制御部31は、各種センサからの出力タイミングに同期して走行情報を取得する。そして、制御部31は、走行情報を取得すると、取得タイミングに合わせて携帯機器2へ走行情報を送信する。なお、走行情報の取得タイミングは、各種センサの出力タイミングに同期するものに限定されず、例えば、各種センサからの出力タイミングの一部を抽出した周期で行ってもよく、適宜設定可能である。また、携帯機器2への走行情報の送信タイミングも、取得タイミングと異なる周期で行ってもよく、適宜設定可能である。
次に、制御部31は、携帯機器2から圧縮画像情報22cを受信する(ステップS55)。そして、復号部38は、受信した圧縮画像情報22cを復号する(ステップS56)。
受信した圧縮画像情報22cがIピクチャである場合には、復号部38は、符号化の方法に対応する復号処理を実行する。これにより、圧縮画像情報22cをナビゲーション画像に復元することができる。また、制御部31は、受信したIピクチャに係る圧縮画像情報22cを記憶部32に記憶する(ステップS57)。
一方、受信した圧縮画像情報22cがPピクチャである場合には、復号部38は、参照画像を記憶部32から読み出す。そして、復号部38は、参照画像と、携帯機器2から受信した圧縮画像情報22cに含まれる動きベクトル、差分データ、及び新たに表示する地図情報とに基づいて復号処理を実行する。これにより、圧縮画像情報22cをナビゲーション画像に復元することができる。また、制御部31は、受信したPピクチャを記憶部32に記憶する(ステップS57)。このPピクチャが後の参照画像となる場合には、記憶部32から読み出されて使用され、参照画像としない場合には使用しない。
次に、表示制御部39は、復元したナビゲーション画像を表示部35に表示する制御を行う。これにより、携帯機器2にて実行しているナビゲーション機能を車両用装置3においても実現することができる。
なお、図9には図示していないが、ステップS55〜ステップS58の処理は、携帯機器2が各ナビゲーション画像を生成する毎に、車両用装置3においても同様に実行されるものであるため、制御部31は、次のフレームに対しても同様の処理を行う。一方、携帯機器2のナビゲーション機能の終了、又は、携帯機器2との通信の停止が検出された場合には処理を終了する。
<2.第2の実施の形態>
次に、第2の実施の形態について説明する。第1の実施の形態では、車両の移動方向の変化に伴い、ナビゲーション画像を回転して表示させる場合や、ユーザの操作によってナビゲーション画像を回転表示したり、拡大表示又は縮小表示したりする場合には、動き補償を用いた圧縮ができないことからIピクチャを作成していた。ところが、車両が頻繁に方向を変化させて移動している場合や、ユーザが頻繁に操作している場合には、Iピクチャを作成する頻度が高くなるため、圧縮処理の負荷低減、すなわち圧縮時間の短縮が十分でない状況が発生する可能性がある。
このため、第2の実施の形態では、圧縮処理の負荷を十分に低減できるようにするために、ナビゲーション画像を回転表示、拡大表示又は縮小表示させる場合であっても、Pピクチャを作成することが可能な構成としている。具体的には、携帯機器ではナビゲーション画像に対して回転等の処理は行わずに圧縮し、車両用装置側で回転角度や回転方向等の処理を行って表示させるようにする。以下、第1の実施の形態と相違する点を中心に説明する。
<2−1.システム構成>
本実施の形態のナビゲーションシステムは、図1に示す第1の実施の形態のナビゲーションシステム100と基本的な構成は同様であり、ナビゲーション画像を表示する際に回転等の処理を行う点で相違する。このため、第1の実施の形態と同様の構成については同じ符号を付して説明を省略する場合がある。以下、ナビゲーションシステム100の構成及び処理について説明する。
<2−2.携帯機器の構成>
まず、第2の実施の形態に係る携帯機器5の構成について説明する。図10は、携帯機器5の概要を示すブロック図である。図10に示すように、携帯機器5は、制御部51と、記憶部22と、通信部23と、表示部24と、操作部25とを備えている。
制御部51は、ナビゲーション部26と、操作判定部27と、表示制御部28と、画像圧縮部29と、回転拡縮部52と、画像一致判定部53とを備えており、また、図示しないCPU、RAM、及びROMを備えるコンピュータである。制御部51は、携帯機器5が備える記憶部22や通信部23等と接続され、記憶部22に記憶されたプログラム22aに基づいて情報の送受信を行い、携帯機器5の全体を制御する。記憶部22に記憶されたプログラム22aにしたがってCPUが演算処理を実行することにより、制御部51の各機能が実現される。
操作判定部27は、ユーザが携帯機器5の操作部25を操作することにより、ナビゲーションの各種操作や表示設定等の操作があった場合に、その操作内容を判定する。ナビゲーションの各種操作とは、例えば目的地設定や経路の選択等の操作であり、表示設定等の操作とは、例えばナビゲーション画像の回転や、拡大、縮小(以下、「回転等」という)を指示する操作である。また、操作判定部27は、操作内容に関する操作情報を、通信部23を介して車両用装置6に送信する。操作情報とは、例えば、回転指示の場合には、回転方向や回転角度といった情報であり、拡大指示や縮小指示の場合には、拡大倍率や縮小倍率といった情報である。
回転拡縮部52は、車両用装置6から回転拡縮情報を取得する。回転拡縮情報とは、車両用装置6が、走行情報取得部33にて取得した走行情報や、携帯機器5又は車両用装置6の操作情報に基づいて、表示するナビゲーション画像に対して回転等の処理を行った場合において、実際にナビゲーション画像に対して行った回転角度や方向、または拡大や縮小の倍率といった情報である。回転拡縮部52は、取得した回転拡縮情報に基づいて、表示するナビゲーション画像の回転等の処理を行う。また、回転拡縮部52は、後述する補正値を取得すると、補正値に応じてナビゲーション画像に回転等の処理を実行する。
画像一致判定部53は、携帯機器5と車両用装置6とで表示しているナビゲーション画像が一致しているか否かを判定する。本実施の形態では、回転等の処理を行った後のナビゲーション画像を圧縮するのではなく、回転等の処理を行う前のナビゲーション画像を圧縮し、表示する際に回転等の処理を行って表示するようになっている。このため、携帯機器5側での回転等の処理と車両用装置6側での回転等の処理が同じでないと、携帯機器5での表示画像と車両用装置6での表示画像が一致しない場合がある。表示画像が不一致の場合には、正確なナビゲーションが実行できなくなるため、画像一致判定部53が、携帯機器5及び車両用装置6の表示画像が同じであるかを判定し、異なる場合には表示内容を補正する。表示画像が一致するとは、互いの表示部24・35に表示しているナビゲーション画像が同じであることを意味し、具体的には地図の方向と範囲が同じである状態をいう。
画像一致判定部53は、ナビゲーション画像中に画像の一致を判定するための判定用データを含ませておき、回転等の処理後のナビゲーション画像における判定用データの位置情報(以下、「判定位置情報」という)を取得する。判定位置情報は、例えば、画面中の座標データである。また、画像一致判定部53は、車両用装置6において同様に取得した判定位置情報を受信するようになっており、これら各判定位置情報を比較する。
そして、画像一致判定部53は、各判定用データの位置が同じである場合には、表示しているナビゲーション画像は一致していると判定する。各判定用データの位置が異なる場合には、表示しているナビゲーション画像は一致していないと判定し、位置ずれの度合い(角度及び距離)を導出する。画像一致判定部53は、位置ずれの度合いに応じて補正値を導出し、回転拡縮部52に送信する。
なお、判定用データは、ナビゲーション画像中に複数含ませることが好ましい。判定用データの数が多いほど、画像一致の判定の精度を高めることができる。また、判定用データは、位置情報が取得できる任意のデータであればよく、ユーザに視認可能な画像データである必要はない。
表示制御部28は、ナビゲーション画像を表示させる制御を行う。すなわち、表示制御部28は、表示部24を制御してナビゲーション画像を所定のタイミング(例えば、30フレーム/秒)で順次表示させる。
<2−3.車両用装置の構成>
次に車両用装置6の構成について説明する。図11は、車両用装置6の概要を示すブロック図である。図11に示すように、車両用装置6は、制御部61と、記憶部32と、走行情報取得部33と、通信部34と、表示部35と、操作部36とを備えている。
制御部61は、操作判定部37と、復号部38と、表示制御部39と、回転拡縮部62と、判定情報取得部63とを備えており、また、図示しないCPU、RAM、及びROMを備えるコンピュータである。制御部61は、車両用装置6が備える記憶部32や通信部34等と接続され、記憶部32に記憶されたプログラム32aに基づいて情報の送受信を行い、車両用装置6の全体を制御する。記憶部32に記憶されたプログラムにしたがってCPUが演算処理を実行することにより、制御部61の各機能が実現される。
操作判定部37は、ユーザが車両用装置6の操作部36を操作することにより、ナビゲーションの各種操作や表示設定等の操作があった場合に、その操作内容を判定する。ナビゲーションの各種操作とは、例えば目的地設定や経路の選択等の操作であり、表示設定等の操作とは、例えばナビゲーション画像の回転等を指示する操作である。操作判定部37は、操作内容に関する操作情報を回転拡縮部62に送信する。操作情報とは、前述の携帯機器5での操作情報と同様である。
回転拡縮部62は、操作判定部37にて判定した操作情報や携帯機器5から受信した操作情報、走行情報取得部33にて取得した走行情報に基づいて、ナビゲーション画像を回転させる処理や、拡大又は縮小の処理を行う。また、回転拡縮部62は、ナビゲーション画像に対して行った回転角度や方向、拡大又は縮小の倍率等の情報(回転拡縮情報)を、通信部34を介して携帯機器5に送信する。
判定情報取得部63は、車両用装置6と携帯機器5とで表示しているナビゲーション画像が一致しているか否かを判定するための情報を取得する。判定情報取得部63は、表示部35に表示するナビゲーション画像中に、判定用データを含ませておき、回転等の処理後のナビゲーション画像における判定用データの位置情報(判定位置情報)を取得する。判定位置情報は、例えば、画面中の座標データである。そして、そして、判定情報取得部63は、通信部34を介して判定位置情報を携帯機器5に送信する。
表示制御部39は、ナビゲーション画像を表示させる制御を行う。すなわち、表示制御部39は、表示部35を制御してナビゲーション画像を所定のタイミング(例えば、30フレーム/秒)で順次表示させる。
<2−4.システムの処理>
次に、ナビゲーションシステム100の処理について説明する。本実施の形態では、携帯機器5と車両用装置6との処理を併せて説明する。図12は、携帯機器5及び車両用装置6の処理を示すフローチャートである。携帯機器5及び車両用装置6の各処理について、第1の実施の形態と同様の処理については説明を省略する場合がある。
携帯機器5の処理は、携帯機器5のナビゲーション機能が起動することにより開始する。携帯機器5は、第1の実施の形態と同様にして圧縮画像情報を生成し、車両用装置に送信する(ステップS61)。ステップS61は、第1の実施の形態における携帯機器2の処理ステップS11〜ステップS20と同様の処理を示している。すなわち、携帯機器5は、ナビゲーション画像を生成するとともに、圧縮画像情報を生成して車両用装置6に送信する。
車両用装置6は、携帯機器5から圧縮画像情報を受信すると、復号処理を実行する(ステップS71)。ステップS71も、第1の実施の形態における車両用装置3の処理ステップS51〜ステップS58と同様の処理を示している。
次に、携帯機器5は、操作情報を車両用装置6に送信する(ステップS62)。具体的には、携帯機器5の操作判定部27が、ユーザによる操作部25の操作内容を判定し、その操作内容を示す操作情報を車両用装置6に送信する。すなわち、操作判定部27は、ユーザがナビゲーション画像の回転指示や、拡大又は縮小指示の操作をしたと判定した場合には、その操作情報を車両用装置6に送信する。操作情報は、回転角度や方向、拡大又は縮小の倍率の情報であり、それぞれ回転、拡大、縮小の指示を行うボタンの押下回数や押下時間に応じて求めることができる。
車両用装置6は、携帯機器5から送信された操作情報を受信するとともに、車両用装置6の操作判定部37によって判定された操作情報を取得する(ステップS72)。そして、これら各操作情報と、走行情報取得部33にて取得した走行情報とが、回転拡縮部62に送られる。
車両用装置6の回転拡縮部62は、これら各情報に基づいて、ナビゲーション画像を回転させる処理や、拡大又は縮小する処理を行う(ステップS73)。回転や拡大、縮小の処理は、例えばアフィン変換等の技術を用いて行うことができる。なお、メニューボタン等25a〜25gのように、常に同じ位置に表示される画像には回転等の処理を行わない。前述のように、メニューボタン等25a〜25gが表示されるマクロブロックの位置情報は予め決まっているため、固定位置情報を携帯機器5から受信して記憶部32に記憶しておき、回転拡縮部62は、記憶部32から該当する固定位置情報を読み出して、これらの固定位置情報に対応する位置のマクロブロックの画像データを回転等の処理対象から除外する。すなわち、回転拡縮部62は、固定位置情報に対応する位置のメニューボタン等25a〜25gに関する画像データについては回転等の処理は行わず、同じ位置に表示している地図画像のデータのみを回転等の処理対象とする。
そして、回転拡縮部62は、ナビゲーション画像に対して行った回転角度や方向、拡大又は縮小の倍率等の情報(回転拡縮情報)を携帯機器5に送信し(ステップS74)、携帯機器5は、回転拡縮情報を受信する(ステップS63)。
携帯機器5の回転拡縮部52は、車両用装置6から回転拡縮情報を取得すると、取得した回転拡縮情報に基づいて、ナビゲーション画像の回転等の処理を行う(ステップS64)。回転等の処理は、車両用装置6の回転拡縮部62の場合と同様にアフィン変換等の技術を用いて行うことができる。また、同様に、メニューボタン等25a〜25gに関する画像データについては回転等の処理を行わず、同じ位置に表示している地図画像のデータのみ回転等の処理を行う。
すなわち、携帯機器5は、回転等の処理を行う前のナビゲーション画像を圧縮し、その圧縮画像情報を車両用装置6に送信し、その回転等の処理前のナビゲーション画像を表示する。そして、回転拡縮情報を取得すると、回転拡縮情報に基づいて回転等の処理を実行して、処理後のナビゲーション画像を表示するようになっている。
図13ないし図15は、回転等の処理を行ったナビゲーション画像を示す図である。図13(a)は回転処理前を示し、図13(b)は回転処理後を示している。図14(a)は拡大処理前を示し、図14(b)は拡大処理後を示している。図15(a)は縮小処理前を示し、図15(b)は縮小処理後を示している。
図13ないし図15に示すように、携帯機器5及び車両用装置6の回転拡縮部52・62が、前述した回転等の処理前の、即ち回転等の処理を行なわずに車両用装置6に送信したナビゲーション画像に対して回転等の処理をすることにより、各図(b)に示すナビゲーション画像の表示を実現することができる。
具体的には、回転処理の場合、図13に示すように、ナビゲーション部26が、表示領域に対応する地図情報を抽出してナビゲーション画像を作成し、車両用装置6に送信した後に、車両用装置6の回転拡縮部62が回転処理を行い表示用のナビゲーション画像を作成する。また、携帯機器5の回転拡縮部52は、車両用装置6から取得した回転拡縮情報に基づいて、車両用装置6に送信したナビゲーション画像に対して回転処理を行い表示用のナビゲーション画像を作成する。なお、表示領域よりも広域の地図情報をナビゲーション画像として作成した後に、回転拡縮部52・62が回転処理を行い、表示領域に対応する地図情報を抽出してもよい。
また、拡大処理の場合、図14に示すように、ナビゲーション部26が、拡大前の表示領域に対応する地図情報を抽出してナビゲーション画像を作成し、車両用装置6に送信した後に、車両用装置6の回転拡縮部62が拡大処理を行い表示領域に対応する地図情報を抽出して表示用のナビゲーション画像を作成する。また、携帯機器5の回転拡縮部52は、車両用装置6から取得した回転拡縮情報に基づいて、車両用装置6に送信したナビゲーション画像に対して拡大処理を行い表示用のナビゲーション画像を作成する。
また、縮小処理の場合、図15に示すように、ナビゲーション部26が、縮小前の表示領域に対応する地図情報を抽出してナビゲーション画像を作成し、車両用装置6に送信した後に、車両用装置6の回転拡縮部62が縮小処理を行うとともに、表示領域に不足している地図情報を読み出して結合することで表示用のナビゲーション画像を作成する。また、携帯機器5の回転拡縮部52は、車両用装置6から取得した回転拡縮情報に基づいて、車両用装置6に送信したナビゲーション画像に対して縮小処理を行い表示用のナビゲーション画像を作成する。なお、予め表示領域よりも広域の地図情報をナビゲーション画像として作成した後に、回転拡縮部52・62が縮小処理を行い、表示領域に対応する地図情報を抽出してもよい。
次に、車両用装置6の判定情報取得部63が、判定位置情報を取得する(ステップS75)。判定情報取得部63は、予め決められた判定用データとしての画像データが、車両用装置6の表示部35に表示しているナビゲーション画像のどの座標位置に存在するかを判断することによって判定位置情報を取得する。そして、判定情報取得部63は、取得した座標データを判定位置情報として携帯機器5に送信する(ステップS76)。また、車両用装置6の表示制御部39は、回転等の処理が行われたナビゲーション画像を表示部35に表示する(ステップS77)。
携帯機器5は、車両用装置6から送信された判定位置情報を受信するとともに、携帯機器5の画像一致判定部53により携帯機器5側の判定位置情報を取得する。画像一致判定部も同様に、予め決められた判定用データとしての画像データが、携帯機器5の表示部24に表示しているナビゲーション画像のどの座標位置に存在するかを判断することによって判定位置情報を取得する。
そして、画像一致判定部53は、各表示部24・35で表示しているナビゲーション画像が一致しているか否かを判定する(ステップS66)。具体的には、画像一致判定部53は、車両用装置6から受信した判定位置情報と、画像一致判定部53にて取得した携帯機器5側の判定位置情報とを比較する。
比較の結果、各判定位置情報が同じ場合、すなわち各判定用データが同じ位置にある場合には、画像一致判定部53は、各表示部24・35で表示しているナビゲーション画像は一致していると判定する(ステップS66でYES)。この場合、各表示部24・35で表示しているナビゲーション画像に対しては何も処理を行わず表示を継続する(ステップS68)。
一方、比較の結果、各判定位置情報が異なる場合、すなわち各判定用データが異なる位置にある場合には、画像一致判定部53は、各表示部24・35で表示しているナビゲーション画像は一致していないと判定する(ステップS66でNO)。この場合、画像一致判定部53は、ナビゲーション画像に対する補正処理を行う(ステップS67)。
画像一致判定部53は、まず、各判定位置情報の位置ずれの度合いを導出する。位置ずれの度合いは、例えば、各判定位置情報における座標データの差分により導出することができる。そして、画像一致判定部53は、位置ずれの度合いに応じた補正値を導出する。この補正値は、各判定用データの位置を同じ位置にするために必要な回転角度や拡大、縮小の倍率を示す値である。画像一致判定部53は、補正値を導出すると、回転拡縮部52に送信する。回転拡縮部52は、導出された補正値に基づいて、携帯機器5の表示部24に表示しているナビゲーション画像に対して回転等の処理を行う。
そして、回転等の処理を行ったナビゲーション画像を表示部24に表示する(ステップS68)。これにより、各表示部24・35に表示されているナビゲーション画像を一致させることができる。
これらの処理について図13ないし図15を用いて具体的に説明する。図13ないし図15に示す「+」のマークが判定用データ85である。ただし、判定用データ85は、他のマークでもよく、マーク以外の単なるデータでもよい。また、図13ないし15では、説明の便宜上、判定用データ85をナビゲーション画像上に視認可能に表示しているが、視認可能でなくてもよい。すなわち、判定用データ85は、判定位置情報を取得できるデータであればよい。
図13ないし図15に示すように、判定用データ85は回転等の処理によって画面上の異なる位置に移動する。画像一致判定部53及び判定情報取得部63は、処理後のナビゲーション画像における判定用データ85の位置座標を判定位置情報として取得する。画像一致判定部53は、これら各判定位置情報を比較して画像の一致を判定する。
なお、本実施の形態では、判定用データ85の位置座標を比較する構成としているが、例えば、処理前の判定用データ85の位置と処理後の判定用データ85の位置に基づいて、判定用データ85が移動した距離及び角度を導出して、これらの値を比較することで画像が一致しているか否かを判断する構成としてもよい。
両画像が一致していると判定された場合には、補正等の処理は行わず、ナビゲーション画像をそのまま表示する。一方、両画像が一致していないと判定された場合には、画像一致判定部53は、判定用データ85の位置ずれに応じた補正値を導出し、回転拡縮部52は、該導出した補正値に基づいて回転等の処理を行う。
そして、携帯機器5の表示制御部28は、回転等の処理により補正されたナビゲーション画像を表示部24に表示する。また、車両用装置6の表示制御部39においても、回転等の処理を行ったナビゲーション画像を表示部35に表示する。これにより、携帯機器5及び車両用装置6にて、同じナビゲーション画像を表示することができる。
次に、携帯機器5は、ナビゲーション画像を前述と同様に圧縮処理して、その画像データを記憶部22に記憶する(ステップS69)。また、車両用装置6においても、ナビゲーション画像を、前述と同様に圧縮処理して、その画像データを記憶部32に記憶する(ステップS78)。これら記憶部22・32に記憶された画像データは、次のナビゲーション画像を作成する際の参照画像とする場合には、記憶部22・32から読み出され使用され、参照画像としない場合には使用されない。
なお、ステップS62〜ステップS69の処理とステップS72〜ステップS78の処理は、回転等の処理を実行すべき操作情報や走行情報を取得する毎に実行されるものである。このため、携帯機器5及び車両用装置6は、このような条件が成立したフレームのナビゲーション画像に対しても同様の処理を行う。一方、携帯機器5のナビゲーション機能の終了、又は、携帯機器5と車両用装置6との通信の停止が検出された場合に処理を終了する。
<3.変形例>
以上、本発明の実施の形態について説明してきたが、この発明は上記実施の形態に限定されるものではなく様々な変形が可能である。以下では、このような変形例について説明する。上記実施の形態及び以下で説明する形態を含む全ての形態は、適宜に組み合わせ可能である。
上記実施の形態では、動きベクトルを導出する際に、基準ブロックを1つ選択して動きベクトルを導出した例について説明したが、基準ブロックを複数選択して動きベクトルを導出してもよい。各基準ブロックに対する動きベクトルの導出方法は前述した方法と同様に行えばよい。ただし、基準ブロックの数に応じた複数の動きベクトルが導出されるため、複数導出された動きベクトルの中から最終的な動きベクトルを決める必要がある。
導出された複数の動きベクトルの全てが同じ値である場合には、導出された動きベクトルを最終的な動きベクトルとすればよい。一方で、異なる動きベクトルの値が導出された場合には、例えば、複数の動きベクトルの内、導出された数が最も多い動きベクトルの値を最終的な動きベクトルとしてもよく(いわゆる多数決)、空間周波数が最も高い基準ブロックから導出された動きベクトルの値を最終的な動きベクトルとしてもよい。
また、上記実施の形態では、参照フレーム及び圧縮フレームの画像データの全体を16×16画素のマクロブロックに分割する例について説明したが、これに限定されるものではない。例えば、車両1の移動方向及び距離の情報に基づいて、画像データの一部の領域をマクロブロックに分割する構成としてもよい。
具体的な構成を図16に基づいて説明する。図16は、本変形例におけるマクロブロックの分割の例を示す図である。図16(a)に示すように、参照フレームにおける画像データの任意の点86を予め定めておく。点86は、画像データ中のいずれの画素を選択してもよいが、マクロブロックの角の画素を選択しておくことが好ましい。そして、車両1の移動方向及び距離に基づき、車両1の移動に伴い点86が存在すると推定される圧縮フレームにおける画素を特定する。その後、図16(b)に示すように、その特定された画素を原点として画像データを16×16画素のマクロブロックに分割する。
このようにすることで、常に地図画像の同じ領域の画像データが1ブロックとなるように、マクロブロックの分割を行うことができるため、画像データの一致判定を容易に行うことが可能になる。
また、上記実施の形態では、車両1の移動に伴って、新たな地図画像が表示されるマクロブロックに対しては、動き補償は行わずに新たに表示する地図画像のデータを符号化する処理を行っている。この場合に、動き補償を行うマクロブロックと、新たな地図画像を表示するマクロブロックとを予め判断しておく構成としてもよい。
動きベクトルが導出されると、参照フレームの端部が、圧縮フレームのどの範囲に存在するかがある程度予想できる。したがって、制御部21は、参照フレームの端部のマクロブロックの画像データと、予想された位置にある圧縮フレームのマクロブロックの画像データとを比較して、一致するマクロブロックを探索することにより、参照フレームの端部の位置が圧縮フレームのどの位置に対応するかを判断することができる。これを参照フレームの端部のマクロブロックに対して順次行うにより、圧縮フレームにおける動き補償を行うマクロブロックと、新たな地図画像を表示するマクロブロックとの境界が判別できるため、圧縮処理の負荷をより低減することができる。
また、上記実施の形態では、Pピクチャに係る圧縮画像情報の多重化データは、各マクロブロックの動きベクトルを符号化したデータを含む構成としていた。しかしながら、前述のように、動きベクトルは動き補償を行う全てのマクロブロックに対して同じ値が適用されるため、各マクロブロックの動きベクトルを符号化したデータの代わりに、1個の動きベクトルを示すデータと、動きベクトルを適用するマクロブロックにフラグを付加したデータとを使用する構成としてもよい。これにより、圧縮画像情報のデータ量をより低減することができる。
また、上記第2の実施の形態では、車両用装置6側でナビゲーション画像の回転等の処理を行った後に、回転拡縮情報に基づいて携帯機器5側でナビゲーション画像の回転等の処理を行っているが、逆の処理でもよい。すなわち、操作情報や走行情報に基づいて携帯機器5側でナビゲーション画像の回転等の処理を行い、回転拡縮情報を車両用装置6に送信した後に、車両用装置6側でナビゲーション画像の回転等の処理を行う構成としてもよい。
この場合、携帯機器5は、回転等の処理前のナビゲーション画像を表示するとともに、車両用装置6に送信し、回転拡縮情報を取得すると、それに基づいて回転等の処理を行い、処理後のナビゲーション画像を表示する構成となる。そして、車両用装置6は、携帯機器5から受信した回転等の処理前のナビゲーション画像を表示し、回転拡縮情報を携帯機器5からさらに受信すると、それに基づいて回転等の処理を行い、処理後のナビゲーション画像を表示する構成となる。
また、上記第2の実施の形態では、各表示部24・35に表示しているナビゲーション画像の一致を判定するために、判定用データを用いた構成としているが、判定用データを用いない構成としてもよい。この場合には、ナビゲーション画像の画像データ自体を判定用に用いる構成とする。すなわち、ナビゲーション画像の特定位置にあるマクロブロックを判定用のマクロブロックとし、各表示部24・35に表示されているナビゲーション画像における判定用マクロブロックの画像データ同士を比較する構成である。これら各マクロブロックの画像データが同じである場合には、画像一致判定部53は、各ナビゲーション画像が一致していると判定できる。
また、上記第2の実施の形態では、各ナビゲーション画像の一致判定を回転等の処理が発生する毎に行うこととしているが、回転等の処理を複数回行う毎に一致判定を行ってもよい。
また、上記実施の形態では、圧縮画像情報としてIピクチャ及びPピクチャを生成する構成について説明したが、さらにBピクチャを生成する構成としてもよい。すなわち、
フレーム内のみで符号化する圧縮方法と、過去のフレームの画像情報を用いて動き補償をすることにより符号化する圧縮方法に加えて、過去及び未来のフレームの画像情報を用いて動き補償をすることにより符号化する圧縮方法をさらに使用してもよい。
また、上記実施の形態では、プログラムに従ったCPUの演算処理によってソフトウェア的に各種の機能が実現されると説明したが、これら機能のうちの一部は電気的なハードウェア回路により実現されてもよい。また逆に、ハードウェア回路によって実現されるとした機能のうちの一部は、ソフトウェア的に実現されてもよい。