JPH11174952A - Reading method for map data in lookahead and map scrolling method - Google Patents

Reading method for map data in lookahead and map scrolling method

Info

Publication number
JPH11174952A
JPH11174952A JP9340960A JP34096097A JPH11174952A JP H11174952 A JPH11174952 A JP H11174952A JP 9340960 A JP9340960 A JP 9340960A JP 34096097 A JP34096097 A JP 34096097A JP H11174952 A JPH11174952 A JP H11174952A
Authority
JP
Japan
Prior art keywords
map
thread
data
adjacent
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9340960A
Other languages
Japanese (ja)
Other versions
JP3621572B2 (en
Inventor
Fumio Mizoguchi
文雄 溝口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alpine Electronics Inc
Mizoguchi Fumio
Original Assignee
Alpine Electronics Inc
Mizoguchi Fumio
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alpine Electronics Inc, Mizoguchi Fumio filed Critical Alpine Electronics Inc
Priority to JP34096097A priority Critical patent/JP3621572B2/en
Publication of JPH11174952A publication Critical patent/JPH11174952A/en
Application granted granted Critical
Publication of JP3621572B2 publication Critical patent/JP3621572B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Navigation (AREA)
  • Processing Or Creating Images (AREA)
  • Instructional Devices (AREA)

Abstract

PROBLEM TO BE SOLVED: To read a current map sheet is lookahead and eight circumferential map sheets by effectively utilizing an idle time of a CPU. SOLUTION: This method is a reading method for map data in lookahead of a navigation device which prereads the center map sheet corresponding to the area that a vehicle belongs to and adjacent map sheets corresponding to peripheral areas of the above area. A prepared thread for reading the map data in lookahead is prepared in a program memory 32 and give low priority, an idle time of the CPU 20 is monitored, and the preread thread is started in the CPU idle time to read the current map sheet and circumferential map sheets out of a map recording medium 10 and store them in a main storage device 3.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は地図データの先読み
方法及び地図スクロール方法に係わり、特に、車両の移
動に伴って車両位置周辺の地図をスクリーンに表示する
ナビゲーション装置における地図データの先読み方法及
び地図スクロール方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a prefetching method of map data and a map scrolling method, and more particularly to a prefetching method of map data and a map in a navigation device for displaying a map around a vehicle position on a screen as the vehicle moves. Regarding scrolling method.

【0002】[0002]

【従来の技術】車両の走行案内を行い、運転者が所望の
目的地に容易に到達できるようにしたナビゲーション装
置は、車両の位置を検出して地図記録媒体(例えばCD
−ROM)から車両位置周辺の地図データを読み出し、
地図画像をディスプレイ画面に描画するとともに自車位
置マークを重ねて描画する。かかるナビゲーション装置
では、自車位置マークをディスプレイ画面上の所定位置
に固定表示し、地図を車両の移動に従ってスクロールす
るのが普通であり、常に車両位置周辺の地図が一目で判
るようになっている。このため、ナビゲーション装置で
は、円滑に地図スクロールができるように適時に車両位
置に応じた地図データを地図記録媒体より読み取る必要
がある。
2. Description of the Related Art A navigation device that provides guidance for driving a vehicle so that a driver can easily reach a desired destination can be obtained by detecting the position of the vehicle and using a map recording medium (for example, a CD).
-ROM) to read map data around the vehicle position,
The map image is drawn on the display screen, and the vehicle position mark is also drawn. In such a navigation device, the vehicle position mark is fixedly displayed at a predetermined position on a display screen, and the map is usually scrolled according to the movement of the vehicle, so that the map around the vehicle position can always be seen at a glance. . For this reason, in the navigation device, it is necessary to read the map data corresponding to the vehicle position from the map recording medium in a timely manner so that the map can be smoothly scrolled.

【0003】地図データは地図を図葉単位に分割して作
成されて地図記録媒体に記録、管理されている。この図
葉は、一般に表示できる画面の大きさに比べて十分大き
い。かかる図葉1枚分のデータだけをメモリにロードし
ておく方法は、車両が現図葉の境界にさしかかった時に
新規地図データの更新が必要になる。図18はかかる地
図データ更新タイミングの説明図であり、4は現在車両
が属する領域に応じた図葉、0〜8(4は除く)は周辺
の隣接図葉、WDは車両周辺の1画面分のサイズに応じ
たウィンドウである。車両の移動に応じてウィンドウW
Dが隣接図葉の境界線に到達した時、新規地図データの
更新が必要になる。しかし、かかる地図データ更新方法
では境界を越える部分で地図データの更新に時間がかか
り、地図スクロールが不連続になり、また、画面がチラ
ついているように見えるようになる。
[0003] Map data is created by dividing a map into leaf units and recorded and managed on a map recording medium. This leaf is sufficiently larger than the size of a screen that can be generally displayed. In such a method of loading only data for one map leaf into the memory, new map data needs to be updated when the vehicle approaches the boundary of the current map leaf. FIG. 18 is an explanatory diagram of such map data update timing, where 4 is a figure corresponding to the area to which the vehicle currently belongs, 0 to 8 (except 4) are adjacent figures around, and WD is one screen around the vehicle. Is a window according to the size of. Window W according to vehicle movement
When D reaches the border of the adjacent map, new map data needs to be updated. However, in such a map data updating method, it takes time to update the map data in a portion beyond the boundary, the map scroll becomes discontinuous, and the screen appears to flicker.

【0004】そこで、車両が次に進入する隣接領域を予
測し、車両が実際に該隣接領域に進入する前に隣接図葉
の地図データを地図記録媒体より先読みする方法が考え
られる。例えば、自車が現在走行している方向に道路を
延長して中心図葉の境界に接している隣接図葉を先読み
する手法や、中心図葉を対角線で4つの三角形に分割
し、どの三角形内を自車が走行しているかで対応する隣
接図葉を予測して先読みする手法が考えられる。しか
し、日本国内の道路網はアメリカのように縦横の道路が
碁盤目状に張り巡らされたような画一的なものは稀で、
ほとんどの道路は比較的範囲の狭い図葉内においても歪
曲している。つまり、上記のような手法を用いて次の図
葉を予測しようとしても、確実な予測ができず、予測を
誤った場合には、そ都度、再度の予測をしなおす必要が
あり、最終的には隣接図葉のほとんどを先読みすること
になる。これでは、結局のところ予測に要した多大な計
算時間が無駄になり、効率が悪く、プロセッサ(CP
U)のスループットを低下する。
Therefore, a method is conceivable in which an adjacent area where a vehicle enters next is predicted, and map data of an adjacent map is prefetched from a map recording medium before the vehicle actually enters the adjacent area. For example, a method in which the road is extended in the direction in which the vehicle is currently traveling to read ahead the adjacent map leaf that is in contact with the boundary of the center map leaf, or dividing the center map leaf into four triangles diagonally, A method of predicting a corresponding adjacent map based on whether the own vehicle is running inside the vehicle and prefetching the map is conceivable. However, the road network in Japan is rarely the same as the United States, where vertical and horizontal roads are laid in a grid pattern.
Most roads are distorted even in relatively narrow areas. In other words, even if an attempt is made to predict the next figure leaf using the method described above, reliable prediction cannot be performed. If the prediction is erroneous, it is necessary to perform another prediction each time. Will prefetch most of the adjacent map leaves. In this case, a large amount of calculation time required for the prediction is wasted, and the efficiency is low.
U) reduces the throughput.

【0005】コンピュータシステムにおいて、CPUが
プログラムに基づいて演算処理を実行するタイミングに
は偏りがあり、頻繁な演算と閑散としたアイドルタイム
が混在する。ナビゲーション装置の地図スクロール表示
では、CPUが活発に演算している時間は総CPU時間
の3割と云われ、残りの7割はつまりアイドルタイムで
あり、CPUは活動していない。一方では、地図スクロ
ール表示は地図データを地図記録媒体より読み込む時間
がネックとなり、体感的に遅く感じられる。これはCD
−ROMなどの地図記録媒体にアクセスして地図データ
を主記憶上に読み込む速度がハードディスクなどに比べ
て遅いことに起因している。
[0005] In computer systems, there is a bias in the timing at which the CPU executes arithmetic processing based on a program, and frequent arithmetic operations and idle idle time are mixed. In the map scroll display of the navigation device, the time during which the CPU is actively calculating is said to be 30% of the total CPU time, and the remaining 70% is the idle time, and the CPU is not active. On the other hand, in the map scroll display, the time for reading the map data from the map recording medium becomes a bottleneck, and it feels physically slow. This is a CD
-The speed at which the map data is read into the main memory by accessing the map recording medium such as the ROM is lower than that of the hard disk or the like.

【0006】[0006]

【発明が解決しようとする課題】以上のように、従来の
地図データの先読み法では、CPU処理に無駄があり、
しかも、CPUのアイドルタイムが多い問題があった。
また、従来の地図スクロール方法では、地図スクロール
が不連続になり、画面がチラツク問題があった。更に従
来の地図スクロール方法では、地図スクロール表示にお
けるデータ更新がその他の処理に比べて非常に重く、長
いデータ更新時間によりその他の重要な処理の実行が遅
れ、ユーザからの要求を受け付けられなくなったり、経
路探索の実行速度が極端にダウンしたりするなどの問題
があった。
As described above, in the conventional map data look-ahead method, the CPU processing is useless,
In addition, there is a problem that the CPU has a long idle time.
Further, in the conventional map scroll method, the map scroll is discontinuous, and there is a flicker problem on the screen. Furthermore, in the conventional map scrolling method, the data update in the map scroll display is very heavy compared to other processes, and the execution of other important processes is delayed due to a long data update time, and the request from the user cannot be accepted, There was a problem that the execution speed of the route search was extremely reduced.

【0007】従って本発明の目的は、隣接図葉を予測せ
ず、CPUのアイドルタイムを有効に利用し、該アイド
ルタイムにおいて現図葉及び周辺の8つの図葉を先読み
できるようにすることである。本発明の別の目的は、並
列処理により実行可能なデータ更新スレッド、地図描画
スレッド、画面表示スレッドを設け、これらスレッドの
優先度を状況に応じてダイナミックに割り当て、かつ、
変更することにより地図スクロールを円滑に行えるよう
にすることである。本発明の別の目的は、先読みと動的
な割り当て可能な優先度を用いた地図描画アルゴリズム
によりCPUの負荷がそれほど大きくない時に優先度を
低くセットしたスレッドでデータ更新をするようにし、
従来再描画のデータ更新時に一時的に発生する大きな負
荷を回避し、他の重要な処理の実行が遅れないようにす
ることである。
Therefore, an object of the present invention is to make use of the idle time of the CPU effectively without predicting an adjacent map, so that the current map and eight surrounding maps can be read ahead in the idle time. is there. Another object of the present invention is to provide a data update thread, a map drawing thread, and a screen display thread that can be executed by parallel processing, dynamically assign the priority of these threads according to the situation, and
The change is to enable smooth map scrolling. Another object of the present invention is to provide a map rendering algorithm using pre-reading and dynamically assignable priorities so that when the load on the CPU is not so large, data is updated in a thread set to a low priority,
It is an object of the present invention to avoid a large load temporarily generated at the time of updating data for redrawing so that execution of other important processing is not delayed.

【0008】[0008]

【課題を解決するための手段】上記課題は本発明によれ
ば、車両が属する領域に応じた中心図葉と該領域の周辺
領域に応じた隣接図葉をメモリに先読みするナビゲーシ
ョン装置の地図データの先読み方法において、(1) 地図
データの先読みを行う先読みスレッドを用意すると共に
該先読みスレッドの優先度を低くし、(2) CPUの空き
時間を監視し、(3) 該CPU空き時間に先読みスレッド
を起動し、(4) 先読みスレッドにより中心図葉及び周辺
の隣接図葉を地図記録媒体より読出してメモリに格納す
る先読み方法により達成される。かかる先読み方法によ
れば、隣接図葉を予測せず、CPUのアイドルタイムを
有効に利用し、該アイドルタイムにおいて中心図葉及び
周辺の図葉を先読みすることができる。
SUMMARY OF THE INVENTION According to the present invention, there is provided a map data of a navigation apparatus for prefetching, in a memory, a central map leaf corresponding to an area to which a vehicle belongs and an adjacent map leaf corresponding to a peripheral area of the area. In the prefetching method of (1), a prefetching thread for prefetching the map data is prepared and the priority of the prefetching thread is lowered, (2) the idle time of the CPU is monitored, and (3) the prefetching is performed at the idle time of the CPU. This is achieved by a prefetching method in which a thread is started, and (4) a prefetching thread reads a center map leaf and peripheral neighboring maps from a map recording medium and stores them in a memory. According to such a look-ahead method, it is possible to effectively use the idle time of the CPU without predicting the adjacent map, and to read ahead the center map and the peripheral map at the idle time.

【0009】上記課題は本発明によれば、車両の移動に
伴って車両位置周辺の地図をスクリーンに表示するナビ
ゲーション装置の地図スクロール方法において、(1) 地
図データを地図記録媒体より読み取って地図バッファに
記憶されているデータを更新するデータ更新制御、地図
バッファに記憶されている地図データに基づいて地図画
像を発生してVRAMに描画する地図描画制御、VRA
Mから車両位置周辺の地図画像を切り出してスクリーン
に表示する画面表示制御のそれぞれを並列処理により実
行可能なデータ更新スレッド、地図描画スレッド、画面
表示スレッドを用意し、(2) これらスレッドの優先度を
低くすると共に、データ更新完了前は上記各スレッドの
うち、データ更新スレッドの優先度を最高にし、データ
更新完了後であって地図描画完了前は地図描画スレッド
の優先度を最高にし、地図描画完了後であって画面表示
完了前は画面表示スレッドの優先度を最高にし、(3) 地
図スクロール処理に際して優先度が最高のスレッドを実
行する地図スクロール方法により達成される。
According to the present invention, there is provided a map scrolling method for a navigation device for displaying a map around a position of a vehicle on a screen as the vehicle moves. (1) Map data is read from a map recording medium and a map buffer is read. Data update control for updating data stored in the map buffer, map drawing control for generating a map image based on the map data stored in the map buffer and drawing it in the VRAM, VRA
A data update thread, a map drawing thread, and a screen display thread are prepared, which can execute a screen display control for cutting out a map image around the vehicle position from M and displaying the screen image on a screen in parallel. (2) Priority of these threads Before the data update is completed, the priority of the data update thread among the above threads is made highest, and after the data update is completed and before the map drawing is completed, the priority of the map drawing thread is made the highest, and the map drawing is performed. After the completion and before the completion of the screen display, the priority of the screen display thread is set to the highest priority, and (3) the map scrolling method is executed by executing the thread having the highest priority in the map scroll processing.

【0010】かかる方法によれば、地図スクロール制御
の各段階において最も重要な役割を担うスレッドを最優
先とすることで円滑なスクロールが可能になる。スレッ
ドの優先度の概念を用いることにより、各制御(データ
更新制御、地図描画制御、画面表示制御)間の綿密な負
荷計算に基づくスケジューリングをカーナビ開発者は行
う必要がなくなる。また、(1) 車両が属する領域に応じ
た中心図葉に隣接する8つの隣接図葉に対して先読みス
レッドを用意し、(2) 車両が進入した隣接図葉の先読み
スレッドを前記データ更新スレッドとして地図データを
読み出し、(3) 車両が進入した図葉に対する隣接図葉に
対しては、前記データ更新スレッド、地図描画スレッ
ド、画面表示スレッドより優先度を低く設定した先読み
スレッドにより地図データを先読みさせることで、車両
が進入した図葉のデータを最優先で読み出すことがで
き、その結果、車両位置周辺の地図画像を高速に表示で
き、地図スクロールを円滑に行なうことができる。
According to this method, smooth scrolling can be performed by giving the thread which plays the most important role at each stage of the map scroll control the highest priority. By using the concept of the thread priority, the car navigation developer does not need to perform the scheduling based on the careful load calculation between the controls (data update control, map drawing control, screen display control). In addition, (1) a look-ahead thread is prepared for eight adjacent figures adjacent to the center figure corresponding to the area to which the vehicle belongs, and (2) a look-ahead thread of the adjacent figure that the vehicle enters enters the data update thread. (3) For the map leaf adjacent to the map leaf that the vehicle has entered, the map data is read ahead by a look-ahead thread that has a lower priority set than the data update thread, the map drawing thread, and the screen display thread. By doing so, the data of the figure into which the vehicle has entered can be read with the highest priority, and as a result, a map image around the vehicle position can be displayed at high speed, and the map can be scrolled smoothly.

【0011】更に、地図スクロールに必要なデータを用
意する先読みスレッドの優先度を低くすることでCPU
負荷が小さい時に地図データの先読みが行なわれるよう
になり、その結果、再描画時に一時的に大きな負荷が発
生することで他の処理が遅延してしまうことを防止で
き、システム全体の効率を大幅に改善できる。また、こ
の場合、(1) 車両が属する領域に応じた中心図葉を4分
割し、(2) 画面に表示されている中心点がいずれの分割
領域に属するか判断し、(3) 該所属分割領域に隣接する
領域に応じた隣接図葉の先読みスレッドの優先度を他の
隣接図葉の先読みスレッドの優先度より高くし、(4) 優
先度の高い隣接図葉をより早く先読みするようにすれ
ば、車両が次に進入する可能性の高い隣接図葉を早めに
先読みできるため、車両位置周辺の地図画像を確実に表
示でき、地図スクロールを円滑に行うことができる。ま
た、既に地図バッファに読み込まれている隣接図葉以外
の隣接図葉のみを先読みすることにより、先読みの負荷
を小さくでき、先読みに要する時間を短縮でき、確実に
中心図葉及び周辺8個の隣接図葉を先読みして地図バッ
ファに格納できる。
Further, by lowering the priority of a look-ahead thread for preparing data necessary for map scrolling,
Pre-reading of map data is performed when the load is light, and as a result, it is possible to prevent the delay of other processing due to a temporary large load at the time of redrawing, greatly increasing the efficiency of the entire system. Can be improved. In this case, (1) the center map leaf corresponding to the area to which the vehicle belongs is divided into four parts, (2) which divided area the center point displayed on the screen belongs to is determined, and (3) Set the priority of the prefetch thread of the adjacent map leaf according to the area adjacent to the divided area to be higher than the priority of the prefetch thread of the other adjacent map leaf, and (4) prefetch ahead of the adjacent map leaf having the higher priority. According to this configuration, since the adjacent map having a high possibility of the vehicle entering next can be read ahead of time, the map image around the vehicle position can be reliably displayed, and the map can be smoothly scrolled. Further, by pre-reading only the adjacent map leaf other than the adjacent map leaf already read in the map buffer, the load of the pre-read can be reduced, the time required for the pre-read can be reduced, and the center map leaf and the eight peripheral areas can be surely read. Adjacent maps can be read ahead and stored in the map buffer.

【0012】[0012]

【発明の実施の形態】(A)地図データの先読み(第1
実施例) (a)本発明の描画手法 Java言語を実装言語とし、優先度を低くした(例えば最
低にした)スレッドをCPU空き時間に自動的に起動す
るようにし、該スレッドにデータの先読み機能を付加す
る。これにより、CPUのアイドルタイムに自動的に地
図データを先読みして主記憶にバッファリングする先読
みスレッドを実現する。スレッドは、処理を並列に実行
する。先読みスレッドは、優先度が低いため起動しても
システムの応答性にはほとんど影響を与えない。
DESCRIPTION OF THE PREFERRED EMBODIMENTS (A) Pre-reading of map data (first
Embodiment) (a) The drawing method of the present invention The Java language is used as an implementation language, and a thread with a low priority (for example, the lowest priority) is automatically activated in the idle time of the CPU. Is added. As a result, a prefetch thread that automatically prefetches map data at the idle time of the CPU and buffers the map data in the main memory is realized. The threads execute processing in parallel. Since the look-ahead thread has a low priority, even if it starts, it has little effect on the responsiveness of the system.

【0013】(b)地図データ管理 図1(a)の実線で示すように中心図葉及び隣接図葉よ
りなる3×3(=9)枚の図葉に番号0〜8を付し、該
図葉番号を用いて地図データの管理を行う。すなわち、
図葉番号0〜8のHashtableを設け、該Hashtableにより
地図データの管理を行う。このため、車両が移動して隣
接図葉に進入すると図葉番号の振り替えが必要になる。
例えば、図1(a)に示すように自車が移動して中心図
葉の真下の隣接図葉番号7の図葉に進入した場合、中心
図葉は隣接図葉番号7の図葉に更新される。この時、元
の中心図葉4は図1(b)に示すように隣接図葉番号1
の図葉になる。また、元の隣接図葉番号3の図葉は0に
なり、5は2になり、6は3に、7は4に、8は5にな
る。すなわち、自車が移動して中心図葉の真下の隣接図
葉番号7の図葉に進入すると、図1(c)に示すように
旧図葉番号を新図葉番号に振り替える必要がある。一般
的に、自車が進入した図葉の旧図葉番号をC、着目して
いる図葉の旧図葉番号をB、着目している図葉の新図葉
番号をAとすれば次式 A=B+(4−C) (1) が成立する。図1(c)の場合、C=7として(1)式の
計算をすれば、新図葉番号Aが求まる。
(B) Map data management As shown by the solid line in FIG. 1A, 3 × 3 (= 9) sheets consisting of a center figure leaf and adjacent figures are numbered 0 to 8, and The map data is managed using the leaf numbers. That is,
Hashtables with leaf numbers 0 to 8 are provided, and map data is managed by the Hashtable. For this reason, when the vehicle moves and enters the adjacent map, the map number needs to be changed.
For example, as shown in FIG. 1A, when the own vehicle moves and enters the leaf of the adjacent leaf number 7 directly below the central leaf, the central leaf is updated to the leaf of the adjacent leaf number 7. Is done. At this time, the original center leaf 4 is adjacent leaf number 1 as shown in FIG.
Figure leaves. In addition, the figure of the original adjacent figure number 3 becomes 0, 5 becomes 2, 6 becomes 3, 7 becomes 4, and 8 becomes 5. That is, when the vehicle moves and enters the leaf of the adjacent leaf number 7 immediately below the center leaf, it is necessary to change the old leaf number to the new leaf number as shown in FIG. In general, if the old leaf number of the leaf into which the vehicle has entered is C, the old leaf number of the leaf of interest is B, and the new leaf number of the leaf of interest is A, Formula A = B + (4-C) (1) is established. In the case of FIG. 1 (c), the new figure leaf number A is obtained by calculating the equation (1) with C = 7.

【0014】ところで、図1(a)に示すように自車が
中心図葉の真下の隣接図葉番号7の図葉に進入した場
合、進入後も利用できる図葉(地図データ)の旧図葉番号
は3,4,5,6,7,8であり、進入後に先読みしな
ければならない図葉(地図データ)の新図葉番号は6,
7,8である(図1(d))。すなわち、旧図葉番号
3,4,5,6,7,8に(1)式を適用して新図葉番号
に振り替えれば新たに地図データを読み込む必要はな
く、また、新図葉番号6,7,8の図葉(地図データ)の
みを先読みすればよいことになる。図1(d)に示す関
係が判っていれば、新図葉番号への振り替え処理及び先
読み処理の効率をあげることができる。そこで、自車が
進入する隣接図葉の旧図葉番号Cに対応させて、進入
後も利用できる図葉(地図データ)の旧図葉番号の配列
AR1と、進入後に先読みすべき図葉(地図データ)
の新図葉番号の配列AR1を保存しておき、Hashutable
の変更操作の計算コストを削減する。図2は、CとAR
1,AR2の関係 C={{AR1},{AR2}} を示すテーブルである。
By the way, as shown in FIG. 1 (a), when the own vehicle enters a leaf having an adjacent leaf number 7 immediately below the center leaf, an old map (map data) which can be used even after entering. The leaf numbers are 3,4,5,6,7,8, and the new leaf numbers (map data) that must be read ahead after entering are 6,
7, 8 (FIG. 1 (d)). That is, if equation (1) is applied to the old map numbers 3, 4, 5, 6, 7, and 8 and the map numbers are changed to the new map numbers, it is not necessary to newly read map data. It is sufficient to pre-read only the figures 6, 7 and 8 (map data). If the relationship shown in FIG. 1D is known, the efficiency of the transfer process to the new leaf number and the prefetching process can be improved. Accordingly, an array AR1 of the old leaf numbers of the leaves (map data) that can be used even after the entry and corresponding to the old leaf number C of the adjacent leaf into which the vehicle enters, Map data)
Of the new map leaf number AR1
To reduce the computational cost of changing operations. FIG. 2 shows C and AR
1 is a table showing the relationship C = {AR1}, {AR2}.

【0015】図3はハッシュテーブルの説明図である。
図1の実線で示す状態において、ハッシュテーブルHT
は図3(a)に示すように図葉番号0〜8に対応して地
図データuとしてG0〜G8を対応つける。かかる状態に
おいて自車が中心図葉の真下の隣接図葉番号7の図葉に
進入すると、ハッシュテーブルHTは図3(b)に示す
ように更新される。すなわち、新図葉番号0〜5に対応
して地図データuとしてG3〜G8を対応つける。また、
新図葉番号6〜8に対応する地図データは主記憶装置に
読出されていないから、u=0とする。
FIG. 3 is an explanatory diagram of a hash table.
In the state shown by the solid line in FIG.
It is in response to the map mesh numbers 0-8 as shown in FIG. 3 (a) and associates the G 0 ~G 8 as the map data u. In this state, when the own vehicle enters the leaf of the adjacent leaf number 7 immediately below the center leaf, the hash table HT is updated as shown in FIG. That, and associates the G 3 ~G 8 as the map data u corresponding to Shinzuha number 0-5. Also,
Since the map data corresponding to the new leaf numbers 6 to 8 has not been read out to the main storage device, u = 0.

【0016】(c)ナビゲーション装置の要部構成 図4はナビゲーション装置の描画系の機能構成図であ
り、10は地図データを記憶する地図記録媒体(例えば
CD−ROM)、11は自車位置等に基づいてCD−R
OM10より所定の地図データを読み出すと共に、自車
位置に応じてディスプレイ画面に表示される地図上の画
面中心位置を計算する地図読出制御部、12はCD−R
OMから読み出された地図データを記憶する地図バッフ
ァ、13は地図描画部であり、地図バッファに記憶され
た地図情報を用いて地図画像を発生するもの、14は地
図画像を記憶するVRAM、15は地図読出制御部11
より入力される画面中心位置に基づいてVRAM14よ
り1画面分の地図画像を切り出す地図切出し制御部、1
6はディスプレイ装置、17は自車の位置を測定する位
置測定装置である。地図読出制御部11、地図描画部1
3、地図切出し制御部15は実際にはCPU(図5)に
より構成される。
(C) Main Configuration of Navigation Device FIG. 4 is a functional configuration diagram of a drawing system of the navigation device. 10 is a map recording medium (for example, a CD-ROM) for storing map data. CD-R based on
A map readout control unit that reads out predetermined map data from the OM 10 and calculates a screen center position on a map displayed on a display screen according to the position of the vehicle;
A map buffer for storing map data read from the OM, 13 a map drawing unit for generating a map image using map information stored in the map buffer, 14 a VRAM for storing a map image, 15 Is the map reading control unit 11
A map cutout control unit that cuts out a map image for one screen from the VRAM 14 based on the screen center position input from the
6 is a display device, and 17 is a position measuring device for measuring the position of the own vehicle. Map reading control unit 11, map drawing unit 1
3. The map extraction control unit 15 is actually configured by a CPU (FIG. 5).

【0017】図5はCPU構成のナビゲーション装置の
ブロック図であり、図4と同一部分には同一符号を付し
ている。10は地図記録媒体(CD−ROM)、14は
VRAM、16はディスプレイ装置、17は位置測定装
置、20はナビゲーション制御を行うプロセッサ(CP
U)、21はCD−ROM制御部、22はリモコンイン
タフェース部、23は外部メモリ、24はバスである。
CPU20において、31は演算処理ハードウェア部、
32はプログラムメモリ(ROM)で、ナビゲーション
制御用の各種プログラム(経路誘導制御、マップマッチ
ング制御、地図スクロール制御等のプログラム)を記憶
するもの、33は主記憶装置(RAM)で、CD−RO
Mから読み取った地図データやハッシュテーブル、その
他処理結果を記憶するものである。地図スクロール用の
プログラムには、図3に示す地図読出し制御、地図描画
制御、地図切り出し制御を行うようにプログラミングさ
れている。
FIG. 5 is a block diagram of a navigation device having a CPU configuration, and the same parts as those in FIG. 4 are denoted by the same reference numerals. 10 is a map recording medium (CD-ROM), 14 is a VRAM, 16 is a display device, 17 is a position measuring device, and 20 is a processor (CP) for performing navigation control.
U), 21 are a CD-ROM control unit, 22 is a remote control interface unit, 23 is an external memory, and 24 is a bus.
In the CPU 20, 31 is an arithmetic processing hardware unit,
32 is a program memory (ROM) for storing various programs for navigation control (programs for route guidance control, map matching control, map scroll control, etc.), and 33 is a main storage device (RAM), which is a CD-RO.
It stores map data read from M, a hash table, and other processing results. The map scrolling program is programmed to perform map reading control, map drawing control, and map clipping control shown in FIG.

【0018】(d)先読みアルゴリズム 図6は本発明の先読み制御処理の流れ図であり、(a)
はメイン処理のフロー、(b)は先読みスレッドの処理
フローである。先読みスレッドの優先度を最低にしてお
き、CPUが空きになった時にのみ該先読みスレッドを
起動して先読みを行うようにする。先読みスレッドの優
先度を最低にしてもCPUのアイドル時間は総CPU時
間の7割であるから、余裕をもって隣接図葉の地図デー
タをCD−ROM11から読出して主記憶装置33に格
納することができる。
(D) Prefetch algorithm FIG. 6 is a flowchart of the prefetch control process of the present invention.
Is a main processing flow, and (b) is a processing flow of a prefetch thread. The priority of the look-ahead thread is set to the lowest, and the look-ahead thread is activated to perform the look-ahead only when the CPU becomes empty. Even if the priority of the prefetch thread is minimized, the idle time of the CPU is 70% of the total CPU time. Therefore, the map data of the adjacent map can be read from the CD-ROM 11 and stored in the main storage device 33 with a margin. .

【0019】CPU20は管理プログラムの制御でナビ
ゲーションのメイン処理を実行すると共に、自分が空き
になったか監視する(ステップ101〜102)。空き
になれば、地図先読みが必要か、すなわち、車両が隣接
領域に進入して地図の先読みが必要になっているか調べ
る(ステップ103)。隣接領域に進入しておらず先読
みが不要であればステップ101に戻る。一方、先読み
が必要であれば、先読みスレッドを起動し(ステップ1
04)、以後、高優先度のイベント発生を待つ(ステッ
プ105)。高優先度のイベントが発生すれば、すなわ
ち、CPUの空きが解消すれば、先読みスレッドを停止
し(ステップ106)、メイン処理を実行する(ステッ
プ101)。
The CPU 20 executes the main navigation process under the control of the management program, and monitors whether the CPU 20 is free (steps 101 to 102). If it becomes vacant, it is checked whether map prefetching is necessary, that is, whether the vehicle enters an adjacent area and map prefetching is necessary (step 103). If pre-reading is unnecessary because the vehicle has not entered the adjacent area, the process returns to step 101. On the other hand, if prefetching is necessary, a prefetch thread is started (step 1).
04), and thereafter wait for occurrence of a high-priority event (step 105). If a high-priority event occurs, that is, if the CPU becomes free, the prefetch thread is stopped (step 106) and the main processing is executed (step 101).

【0020】先読みスレッドは、起動されると初期化す
る(ステップ201)。ついで、CPUが空きかチェッ
クし、空きでなければ所定時間(例えば1秒間)待っ
て、CPUの空きをチェックする(ステップ202〜2
03)。CPUが空きであれば、すなわち、停止が指示
されていなければ、ハッシュテーブルHT(図3)を参
照して先読みすべき隣接図葉を識別し、該隣接図葉をC
D−ROM10より読出して主記憶装置33に格納する
(ステップ204)。以後、全隣接地図の読み出しが完
了したかチェックし(ステップ205)、完了してなけ
れば、ステップ202以降の処理を繰り返し、全隣接地
図の読み出しが完了すれば先読み処理を終了する。
The prefetch thread is initialized when started (step 201). Next, it is checked whether or not the CPU is empty. If the CPU is not empty, a predetermined time (for example, 1 second) is waited, and the empty of the CPU is checked (steps 202 to 2)
03). If the CPU is vacant, that is, if the stop is not instructed, the hash table HT (FIG. 3) is referred to to identify the adjacent map to be pre-read, and the adjacent map is set to C.
The data is read from the D-ROM 10 and stored in the main storage device 33 (step 204). Thereafter, it is checked whether reading of all adjacent maps has been completed (step 205). If not completed, the processing from step 202 onward is repeated, and if reading of all adjacent maps has been completed, the pre-reading processing ends.

【0021】以下は先読みスレッドのアルゴリズムをプ
ログラム化したものである。 (1). if(CPUがアイドル) (2). for(隣接8図葉uに対して) (3). if(隣接図葉uの先読みスレッドを初期化されていない) (4). 隣接図葉uの先読みスレッドを初期化 (5). if(隣接図葉uの地図データ読み込みが終了していない) (6). 隣接図葉uの先読みスレッドを起動 (7). else (8). 先読みスレッドを停止 (9). wait 1 second (1)において、CPUに空き時間があるかどうかチェッ
クされる。CPUが空き時間の場合(2)〜(6)が実行され
る。まず、対応する隣接8図葉に対して先読みスレッド
が初期化されているかどうかチェックする(3)。初期化
されていない場合には、先読みスレッドを初期化する
(4)。すでに対応する先読みスレッドが初期化されてお
り、先読みがまだ終了していないのであれば(5)、その
先読みスレッドを起動し、隣接図葉の先読みを実行する
(6)。CPUに空き時間がない場合は、先読みスレッド
を1秒間休ませる。
The following is a program of the algorithm of the look-ahead thread. (1). If (CPU is idle) (2). For (for adjacent figure u) u (3). If (read-ahead thread of adjacent figure u is not initialized) (4). Initialize the look-ahead thread for figure u (5). If (reading of map data for adjacent figure u is not finished) (6). Start look-ahead thread for figure u adjacent (7). Else (8) Stop prefetch thread (9). Wait 1 second In (1), it is checked whether the CPU has free time. When the CPU is idle, (2) to (6) are executed. First, it is checked whether or not the prefetch thread has been initialized for the corresponding eight adjacent figures (3). Initialize the prefetch thread if it has not been initialized
(Four). If the corresponding look-ahead thread has already been initialized and the look-ahead has not been completed yet (5), start the look-ahead thread and execute the look-ahead of the adjacent figure leaf.
(6). If there is no idle time in the CPU, the prefetch thread is suspended for one second.

【0022】以上では、地図データの先読み(データ更
新)に重点をおいて説明したが、地図スクロールする場
合には、データ更新制御のほかに、地図描画制御、画面
表示制御が必要である。以下では、これら制御用にスレ
ッドを用意し、これらを並列処理する実施例について説
明する。
In the above, the description has been made with emphasis on pre-reading (data updating) of map data. However, in the case of map scrolling, map drawing control and screen display control are necessary in addition to data update control. In the following, an embodiment will be described in which threads are prepared for these controls and they are processed in parallel.

【0023】(B)マルチスレッドによる地図の並列描
画制御(第2実施例) (a)概要 一般的な、地図描画手法では再描画時にCPUに多大な
負荷が一時的にかかる。これにより、再描画だけでなく
システム全体のパフォーマンスもダウンさせてしまう。
このため、結果として、画面がちらついたり、システム
ダウンしたかのようになり、一時的にユーザからの操作
を受け付けなくなる。このような問題を解決するため
に、再描画時に必要となる部分の地図データをあらかじ
め再描画が呼び出される前に先読みする手法が有効であ
り、(A)で説明した。ところで、スクリーンに地図を
描画するためには、(1) 先読みによる地図データの更新
制御(データ更新制御)、(2) VRAMへの地図画像の
描画制御(地図描画制御)、(3) VRAMから地図画像
を読み取ってスクリーンに表示する制御(画面表示制
御)が必要であり、これらの制御を連携し、効率よく地
図をスクリーン上でスクロール表示する必要がある。そ
こで、(B)においては、スレッドプログラミングを基
本にした並列処理により地図スクロール表示を実現す
る。スレッドプログラミングは並列処理を実現するため
のもので、マルチタスクOSによってサポートされてい
るものである。以下では、並列処理の優先度設定が容易
にできるJava言語を用いて説明する。
(B) Parallel Drawing Control of Map Using Multithread (Second Embodiment) (a) Outline In a general map drawing method, a large load is temporarily applied to the CPU at the time of redrawing. As a result, not only redrawing but also performance of the entire system is reduced.
As a result, as a result, the screen flickers or the system goes down, and the operation from the user is temporarily stopped. In order to solve such a problem, it is effective to pre-read the map data of a portion required at the time of redrawing before redrawing is called, and this is described in (A). By the way, in order to draw a map on a screen, (1) update control of map data by prefetching (data update control), (2) drawing control of a map image in a VRAM (map drawing control), and (3) from a VRAM Control for reading a map image and displaying it on a screen (screen display control) is required, and it is necessary to coordinate these controls to efficiently scroll and display the map on the screen. Therefore, in (B), map scroll display is realized by parallel processing based on thread programming. Thread programming is for realizing parallel processing, and is supported by a multitask OS. In the following, a description will be given using a Java language that can easily set the priority of parallel processing.

【0024】CPUの負荷が比較的小さい時間(例えば
アイドルタイム)に地図データを先読みをするにあたっ
て、たとえば、「このタスクとあのタスクを同時に行な
うとどれだけの計算量を必要とし・・・」というよう
に、あらかじめプログラマーがきっちりしたCPU使用
のスケジューリングを作るのは非常に困難である。一
方、スレッドの優先度の概念を用いると、あるタスクA
と別のタスクBについて、相対的な数値を与えるだけ
で、CPU使用のスケジューリングを自動的に行なって
くれる。プログラマーはタスクの優先度を指定するだけ
で、その実行スケジューリングを考える必要がなくな
る。つまり、Aが優先度10、Bが優先度1と宣言する
だけで、AはBに対して10倍の時間、CPUを使用す
ることができる。本発明は、以上のようなスレッドの優
先度を用いて、必要に応じてその優先度を動的に変化さ
せると同時に、低い優先度で地図データの先読みを行な
うことで、地図描画のみならずシステム全体のパフォー
マンスをあげる。
When prefetching the map data during a time when the load on the CPU is relatively small (for example, idle time), for example, "how much calculation is required if this task and that task are performed at the same time ..." Thus, it is very difficult for a programmer to make a tight scheduling of CPU usage in advance. On the other hand, using the concept of thread priority, a task A
For the other task B, scheduling of CPU use is automatically performed only by giving a relative numerical value. The programmer only needs to specify the priority of the task without having to think about its execution scheduling. In other words, A can only use the CPU for 10 times as long as B by simply declaring A to be priority 10 and B to be priority 1. The present invention uses the above thread priorities, dynamically changes the priorities as necessary, and prefetches the map data at a low priority. Improve overall system performance.

【0025】(b)マルチスレッドによる描画手法 ナビゲーション装置(図4参照)において地図データを
使ってスクリーンに地図を描画するには、次の3つのス
テップが必要である。 step 1:地図データが保存されている記憶媒体10から
地図データを読み出し、メモリ(地図バッファ)12に
ロードする(データ更新)。 step 2:メモリ12にロードされたデータを地図として
画面に表示できるようにオフスクリーンで加工する。す
なわち、地図データを用いてビットイメージの地図画像
をVRAM14に描画する(地図描画)。 step 3:step 2でVRAMに描画した画像データを用い
て地図を画面(スクリーン)16に表示する(画面表示)。
(B) Drawing Method Using Multi-Threads To draw a map on a screen using map data in a navigation device (see FIG. 4), the following three steps are required. step 1: The map data is read from the storage medium 10 in which the map data is stored, and loaded into the memory (map buffer) 12 (data update). step 2: Off-screen processing so that the data loaded in the memory 12 can be displayed on the screen as a map. That is, a bit image map image is drawn in the VRAM 14 using the map data (map drawing). step 3: A map is displayed on the screen (screen) 16 using the image data drawn in the VRAM in step 2 (screen display).

【0026】一般に、これらstepの処理コストの関係
は、 step 3 << step 2 < step 1 となる。step 1とstep 2の処理時間を比較した場合、st
ep 1はstep 2の約1.5倍の時間が必要であることが実験
により確認されている。また、step 1, step 2にくらべ
step 3は無視できる程度の処理時間しか必要としない。
以上から、システムから描画の要求があって、はじめて
上記の3つのステップを実行するのではなく、step 1を
CPUの暇な時間にあらかじめ処理しておくという方法
(先読み)が有効である。この処理方法については、後述
する。まず、先読みを除いた基本的な描画部分について
述べる。
Generally, the relationship between the processing costs of these steps is as follows: step 3 << step 2 <step 1 When comparing the processing time of step 1 and step 2, st
It has been confirmed by experiments that ep 1 requires about 1.5 times as long as step 2. Also, compared to step 1 and step 2
Step 3 requires negligible processing time.
As described above, instead of executing the above three steps only when there is a drawing request from the system, step 1 is processed in advance in the spare time of the CPU.
(Look-ahead) is effective. This processing method will be described later. First, a basic drawing portion excluding prefetching will be described.

【0027】(c)描画モデル 描画を行うために、まず図7のような描画モデルを考え
る。このモデルでは、Java言語に代表されるスレッドが
利用されており、以下の4つのスレッドが同時実行され
る。41はデータ管理スレッドであり、描画スレッド群
(データ更新スレッド、地図描画スレッド、画面表示ス
レッド)の管理を行なうもので、具体的には、状況に応
じて描画スレッド群の優先度を動的に割り当てる。42
はデータ更新スレッドであり、地図データが保存されて
いる記憶媒体(CD−ROM)10から地図データを読
み出し、地図バッファ12にロードする。このデータ更
新スレッドは図3における地図読み出制御部11に相当
するものである。43は地図描画スレッドであり、地図
バッファ12にロードされた地図データを用いてビット
イメージの地図画像を発生してVRAM14に格納す
る。この地図描画スレッドは図3の地図描画部13に相
当するものである。44は画面表示スレッドで、地図描
画スレッドによりVRAM14に描画された地図のうち
自車位置に応じた地図部分を切り出してスクリーン16
に表示する。この地図描画スレッド44は図3の地図切
り出し制御部15に相当するものである。
(C) Drawing Model In order to perform drawing, first consider a drawing model as shown in FIG. In this model, threads represented by the Java language are used, and the following four threads are executed simultaneously. Reference numeral 41 denotes a data management thread which manages a group of drawing threads (a data updating thread, a map drawing thread, and a screen display thread). Specifically, the priority of the drawing thread group is dynamically changed according to the situation. assign. 42
A data update thread reads map data from a storage medium (CD-ROM) 10 storing map data and loads the map data into a map buffer 12. This data update thread corresponds to the map reading control unit 11 in FIG. Reference numeral 43 denotes a map drawing thread which generates a bit image map image using the map data loaded in the map buffer 12 and stores it in the VRAM 14. This map drawing thread corresponds to the map drawing unit 13 in FIG. Reference numeral 44 denotes a screen display thread, which cuts out a map portion corresponding to the position of the vehicle from the map drawn in the VRAM 14 by the map drawing thread, and
To be displayed. The map drawing thread 44 corresponds to the map cutout control unit 15 in FIG.

【0028】データ管理スレッド41は、描画に関する
すべてを管理するスレッドであり、最も優先して実行さ
れなければならない。このデータ管理スレッド41のも
と、前述のstep 1〜step 3に対応する描画スレッド群
(データ更新スレッド42、地図描画スレッド43、画
面表示スレッド44)が存在する。描画スレッド群はそ
れぞれが連鎖的に動作するのではなく、マルチスレッド
により独立、並行に動作する。これによりデータ更新ス
レッド42がデータを収集しながら、地図描画スレッド
43が更新された部分を描画するといった並行作業が可
能となる。しかしながら、何らかのルールを定めない
と、それぞれのスレッドは独立に自分のタスクを遂行し
ようとする。このため、地図描画スレッド43によるV
RAM14への地図描画が完成していないのに、画面表
示スレッド44が地図を切り出して画面表示を行なおう
とするなど、スレッド間の競合が生じる場合がある。
The data management thread 41 is a thread for managing everything related to drawing, and must be executed with the highest priority. Under this data management thread 41, a drawing thread group corresponding to the above-described steps 1 to 3
(A data update thread 42, a map drawing thread 43, and a screen display thread 44). The drawing threads do not operate in a chain, but operate independently and in parallel by multithreading. This enables a parallel operation in which the map drawing thread 43 draws the updated portion while the data update thread 42 collects data. However, if you do not set any rules, each thread will try to perform its task independently. For this reason, V by the map drawing thread 43
Contention between threads may occur, such as when the screen display thread 44 tries to cut out the map and display the screen even though the map drawing on the RAM 14 is not completed.

【0029】そこで、本発明では、描画命令が発生した
場合、状況に応じてデータ管理スレッド41の制御で描
画スレッド群42〜44の優先度を動的に割り当て、か
つ、変更できるようにする。この場合、当然のことであ
るが、描画スレッド群42〜44の優先度は、データ管
理スレッド41の優先度よりも小さいものとする。又、
CPUの負荷が低いときに実行されるように各スレッド
の優先度を低く設定する。図8はかかる優先度の状況を
示す説明図である。優先度とはスレッド間でCPU占有
時間を変化させるためのものである。すなわち、優先度
が高くなるほど実行されやすくなり、また低くなるほど
実行は後回しにされる。この特性を利用することによ
り、必要な処理を優先的に行なわせ、CPUの空き時間
にその他の処理を行なわせることが可能になる。以下で
は、この優先度割り当てを用いた地図の再描画方法を説
明する。
Therefore, in the present invention, when a drawing command is issued, the priorities of the drawing thread groups 42 to 44 can be dynamically assigned and changed according to the situation under the control of the data management thread 41. In this case, it is natural that the priority of the drawing thread groups 42 to 44 is lower than the priority of the data management thread 41. or,
The priority of each thread is set low so as to be executed when the load on the CPU is low. FIG. 8 is an explanatory diagram showing the situation of such priorities. The priority is for changing the CPU occupation time between threads. That is, the higher the priority, the easier the execution is, and the lower the priority, the later the execution. By utilizing this characteristic, it becomes possible to cause necessary processing to be performed preferentially, and to perform other processing during idle time of the CPU. Hereinafter, a method of redrawing a map using this priority assignment will be described.

【0030】(d)動的な優先度の割り当て データ管理スレッド41が描画スレッド群42〜44に
対して動的な優先度を割り当てる場合、次の状況を考え
なければならない。 状況1:描画に必要な部分のデータ更新が完了してい
るか否か。 状況2:地図描画が完了しているか否か。 状況3:画面表示が完了しているか否か。 これら状況の組み合わせは、全部で8通りある。しか
し、描画というものがデータ更新→地図描画→画面表示
のステップで進むことを考慮すると、例えばデータ更新
が終了していないのに地図描画が終了しているといった
状況はなくなるので、次の4通りが残る。 状況1:データ更新、地図描画、画面表示の全てが終
了していない。 状況2:データ更新は終了しているが、地図描画、画
面表示が終了していない。 状況3:データ更新、地図描画は終了しているが画面
表示が終了していない。 状況4:データ更新、地図描画、画面表示のすべてが
終了している。
(D) Dynamic Priority Assignment When the data management thread 41 assigns dynamic priorities to the drawing thread groups 42 to 44, the following situation must be considered. Situation 1: Whether or not the data update of the part necessary for drawing has been completed. Situation 2: Whether or not map drawing is completed. Situation 3: Whether or not the screen display has been completed. There are a total of eight combinations of these situations. However, considering that the drawing process proceeds in the steps of data update → map drawing → screen display, for example, there is no situation in which the map drawing is completed even though the data update is not completed. Remains. Situation 1: Data update, map drawing, and screen display are not all completed. Situation 2: Data update has been completed, but map drawing and screen display have not been completed. Situation 3: Data update and map drawing have been completed, but screen display has not been completed. Situation 4: Data update, map drawing, and screen display have all been completed.

【0031】そして、これら4つの状況の間には時間的
な関係も存在する。つまり、状況4の前の状況というの
は状況3しかなく、また状況3の前の状況は状況2しか
なく、状況2の前には状況1しかない。よって、その時
の処理アルゴリズムも、状況1→状況2→状況3→状況
4の順でチェックし、動的な優先度の割当を行えばよい
ということになる。その時の優先度の割り当て基準は、
図9(a)〜(d)のようになる。
There is also a temporal relationship between these four situations. In other words, the situation before the situation 4 is only the situation 3, the situation before the situation 3 is only the situation 2, and the situation 2 is the situation 1 before the situation 2. Therefore, the processing algorithm at that time may be checked in the order of the situation 1 → the situation 2 → the situation 3 → the situation 4, and the dynamic priority may be assigned. The priority assignment criteria at that time are:
9A to 9D.

【0032】図9(a)は状況1における優先度割当基
準であり、優先度はデータ更新スレッド42>地図描画
スレッド43>画面表示スレッド44の順にする。図9
(b)は状況2における優先度割当基準であり、優先度
は地図描画スレッド43>画面表示スレッド44>デー
タ更新スレッド42の順にする。図9(c)は状況3に
おける優先度割当基準であり、優先度は画面表示スレッ
ド44>データ更新スレッド42>地図描画スレッド4
3の順にする。図9(d)は状況4における優先度割当
基準であり、優先度はデータ更新スレッド42=地図描
画スレッド43=画面表示スレッド44とする。以上の
ように各状況に応じて各スレッドの優先度を動的に割り
当てることにより矛盾なく、しかも、効率よく地図スク
ロール制御が可能になる。
FIG. 9A shows a priority assignment criterion in the situation 1. The priority is set in the order of the data update thread 42> the map drawing thread 43> the screen display thread 44. FIG.
(B) is a priority assignment criterion in situation 2, where the priority is set in the order of the map drawing thread 43> the screen display thread 44> the data update thread 42. FIG. 9C shows the priority allocation criterion in the situation 3, where the priority is the screen display thread 44> the data update thread 42> the map drawing thread 4.
Repeat in the order of 3. FIG. 9D shows the priority assignment criterion in Situation 4, and the priorities are set as data update thread 42 = map drawing thread 43 = screen display thread 44. As described above, by dynamically assigning the priority of each thread according to each situation, it is possible to perform map scroll control without contradiction and efficiently.

【0033】以上よりデータ管理スレッド41による描
画スレッド群42〜44の動的な優先度割り当てアルゴ
リズムは図10のようになる。このアルゴリズムでは、
状況1→状況2→状況3→状況4の順で状況が変化する
ことを利用した構造になっている。つまり、“描画部分
のデータ更新未完了”は状況1に対応し、“地図描画未
完了”は状況2に、“画面表示未完了”は状況3にそれ
ぞれ対応し、“画面表示完了”は状況4に対応してい
る。アルゴリズムでは例えば、再描画命令が新たに発生
した場合、まず、データ管理スレッド41は、描画部分
のデータがすでに更新されているかどうかを確認する
(ステップ301)。更新されていれば次の段階に移行
するが、更新過程であった場合は、データ更新スレッド
42を最優先とし、地図描画スレッド43、画面表示ス
レッド44の順に優先度を割り当てる。そして、データ
の更新が終了すると(ステップ302、303)、地図
の描画が終了したかどうかの確認を行ない(ステップ3
04)、終了していなければ、今度は地図描画スレッド
42を最優先した優先度の変更を行う(ステップ30
5、306)。このようにして、各描画段階において最
も重要な役割を担うスレッドを最優先とするで、スレッ
ド間の同期を取ることなく競合の回避を実現する。
From the above, the dynamic priority assignment algorithm of the drawing thread groups 42 to 44 by the data management thread 41 is as shown in FIG. In this algorithm,
The structure is based on the fact that the status changes in the order of status 1 → status 2 → status 3 → status 4. In other words, “data update of drawing part is not completed” corresponds to situation 1, “map drawing not completed” corresponds to situation 2, “screen display not completed” corresponds to situation 3, and “screen display completed” corresponds to situation 1. 4 is supported. In the algorithm, for example, when a redraw command is newly generated, first, the data management thread 41 checks whether or not the data of the drawing portion has already been updated (step 301). If it has been updated, the process proceeds to the next stage. If it is an update process, the data update thread 42 has the highest priority, and the map drawing thread 43 and the screen display thread 44 are assigned priorities in this order. When the data update is completed (steps 302 and 303), it is checked whether the drawing of the map is completed (step 3).
04), if not finished, change the priority with the highest priority on the map drawing thread 42 (step 30).
5, 306). In this way, the thread that plays the most important role in each drawing stage is given the highest priority, thereby avoiding contention without synchronizing the threads.

【0034】(e)描画への先読みの導入 以上の方法により、地図は一応、描画できる。しかし、
データ更新は地図描画、画面表示に比べて非常に大きな
処理コストを必要とする。たとえ、マルチスレッドで
ユーザとのやりとり(リモコンインタフェース制御)、
GPSデータ獲得、経路探索等を実装したとして
も、地図スクロール表示におけるデータ更新はその他の
処理に比べて非常に重く、長いデータ更新時間によりそ
の他のスレッドの実行速度を遅延する。その結果ユーザ
からの要求を受け付けなくなったり、経路探索の実行速
度が極端にダウンしたりする。
(E) Introduction of Look-Ahead to Drawing A map can be drawn temporarily by the above method. But,
Data updating requires a very large processing cost compared to map drawing and screen display. Even if the user interacts with the multi-thread (remote control interface control),
Even if GPS data acquisition, route search, etc. are implemented, data update in map scroll display is very heavy compared to other processes, and the execution speed of other threads is delayed due to a long data update time. As a result, the request from the user is not accepted, or the execution speed of the route search is extremely reduced.

【0035】このような、問題を解決するために地図の
再描画の要求が発生していない場合、つまりCPUに余
裕がある時に、あらかじめ再描画要求の発生を見込んで
おいて、そのための準備をする先読み処理が有効であ
る。地図スクロール表示に際して、データ更新コストが
最も大きく、データ更新さえできていれば地図描画、お
よび画面表示はわずかなコストで実現できる。よって最
もコストの大きい地図更新のためのデータ保存をあらか
じめ準備して行なう。このデータの保存とは、未知の地
図部分のデジタルデータをCD−ROMより先読みして
いることに他ならない。まず、この先読みすべき地図の
部分について説明し、先読みの方法および全体のシステ
ムにおける先読みの位置付けを明確にする。
When a request for redrawing a map has not been issued in order to solve such a problem, that is, when there is room in the CPU, it is anticipated that a request for redrawing a map will be issued in advance, and preparations for that will be made. Prefetching is effective. At the time of map scroll display, the data update cost is the highest, and as long as the data can be updated, map drawing and screen display can be realized at a small cost. Therefore, data storage for updating the map, which is the most expensive, is prepared and performed in advance. Preserving this data is nothing more than reading the digital data of the unknown map portion ahead of the CD-ROM. First, the portion of the map to be prefetched will be described, and the prefetching method and the position of prefetching in the entire system will be clarified.

【0036】(e-1) 先読みすべき部分 ナビゲーション等の地図データは、地図を図葉単位で分
割して作成してCD-ROM等の地図記録媒体に記憶、管理さ
れている。この図葉は、一般に表示できる画面の大きさ
に比べて十分大きく、かつ図葉1枚のデータだけをメモ
リにロードしておく方法において、新規地図データ更新
の要求が発生するのは、図11のように図葉の境界にさ
しかかった時である。そして、この境界を越える部分で
データの更新に時間がかかり、それが原因で画面がチラ
ついているように見えるのである。そこで本発明では、
現在画面に表示している部分の中心点が含まれている図
葉(中心図葉)に隣接する8つの図葉(隣接図葉)のデ
ータを先読みする。ちょうどこの部分は図11の隣接図
葉1,2,3,4,5,6,7,8を示す。
(E-1) Parts to be Pre-Readed Map data such as navigation is created by dividing a map into map units and stored and managed in a map recording medium such as a CD-ROM. This map leaf is sufficiently large compared to the size of a screen that can be generally displayed, and in a method of loading only data of one map leaf into a memory, a request for updating new map data is generated in FIG. It is time to reach the border of the figure leaf as shown. Then, it takes time to update the data in a portion beyond the boundary, and as a result, the screen looks flickering. Therefore, in the present invention,
The data of eight plots (adjacent plots) adjacent to the plot (center plot) that includes the center point of the part currently displayed on the screen is pre-read. Exactly this part shows the adjacent figures 1, 2, 3, 4, 5, 6, 7, 8 of FIG.

【0037】(e-2) 先読みの方法 先読みでは、それぞれ1つの隣接図葉に先読みスレッド
を1つ用意する。つまり、先読みスレッドは全部で8つ
あることになる。この先読みスレッドにも前述までの優
先度の概念を利用する。つまり、これら8つの図葉デー
タのうち、次に描画される可能性の高い図葉ほど高い優
先度を設定する。具体的には図12に示すように8つの
先読みスレッドの優先度を決定する。すなわち、中心図
葉を4つの領域に分割し、現在画面に表示している部分
の中心点が、この領域のどこに含まれているかで、各隣
接図葉の先読みスレッドの優先度を決定する。図13は
画面表示部分の中心が属する領域と各隣接図葉の優先度
の関係説明図表である。このように隣接図葉の先読みス
レッドに優先度を割り当てることで、先読みの中でも特
に将来使用される可能性の高い図葉のデータを優先的に
読み取って早めに保存することが可能になる。
(E-2) Pre-reading method In pre-reading, one pre-reading thread is prepared for each adjacent figure. That is, there are a total of eight prefetch threads. The concept of priority described above is also used for this look-ahead thread. In other words, of these eight pieces of leaf data, a leaf having a higher possibility of being drawn next has a higher priority. Specifically, as shown in FIG. 12, the priorities of eight prefetch threads are determined. That is, the center map is divided into four regions, and the priority of the prefetch thread of each adjacent map is determined based on where the center point of the portion currently displayed on the screen is included in this region. FIG. 13 is an explanatory chart showing the relationship between the area to which the center of the screen display portion belongs and the priority of each adjacent figure. By assigning the priority to the prefetch thread of the adjacent drawing in this way, it is possible to preferentially read the data of the drawing which is particularly likely to be used in the prefetching and save the data early.

【0038】(e-3) 先読みスレッドの優先度の位置付け 先読みスレッドは補助的な役割を果たすものであり、そ
の優先度はデータ管理スレッド41、データ更新スレッ
ド42、地図描画スレッド43、画面表示スレッド44
よりも低い優先度でなければならない。図14は先読み
スレッドの優先度の位置付け説明図である。データ更新
スレッド42と先読みスレッド51〜58は、機能的に
同じである。しかし、データ更新スレッド41の起動時
に全ての先読みスレッド51〜58が起動するのではな
い。再描画時に先読みスレッドにより次に表示すべき部
分のデータが準備されていない場合に限り、そのデータ
の先読みを行っていた先読みスレッドがデータ更新スレ
ッド42として扱われる。それ以外の先読みスレッドは
他のスレッド群43,44より低い優先度で実行され
る。すなわち、車両が所定の領域に進入した場合、該領
域に対応する隣接図葉の先読みスレッドをデータ更新ス
レッド42として実行し、以後、地図描画スレッド4
3、画面表示スレッド44を実行し、これらスレッド4
3、44の実行完了後に他の先読みスレッドを起動して
他の隣接図葉を先読みする。
(E-3) Positioning of Priority of Look-Ahead Thread The look-ahead thread plays an auxiliary role, and its priority is a data management thread 41, a data update thread 42, a map drawing thread 43, and a screen display thread. 44
Must be lower priority. FIG. 14 is an explanatory diagram of the positioning of the priority of the prefetch thread. The data update thread 42 and the prefetch threads 51 to 58 are functionally the same. However, not all of the prefetch threads 51 to 58 are activated when the data update thread 41 is activated. Only when data of a portion to be displayed next is not prepared by the prefetch thread at the time of redrawing, the prefetch thread that prefetches the data is treated as the data update thread 42. The other prefetch threads are executed at a lower priority than the other thread groups 43 and 44. That is, when the vehicle enters a predetermined area, the prefetch thread of the adjacent map corresponding to the area is executed as the data update thread 42, and thereafter, the map drawing thread 4 is executed.
3. Execute the screen display thread 44, and execute these thread 4
After the completion of the execution of steps 3 and 44, another prefetch thread is activated to prefetch another adjacent leaf.

【0039】(e-4) 差分情報を用いることによる先読み
の効率性の向上 自車の移動により中心図葉が変化する毎に、新たな隣接
8図葉の地図データを先読みするためのスレッドを用意
するが、ここでは、その際の効率を向上させる方法につ
いて述べる。例えば、図15のように1〜25までの図
葉があり、自車の中心図葉が9から13に移動したとす
る。自車が図葉9にいた時にすでに、図葉3,4,5,
8,9,10,13,14,15の地図データは完全で
はなくともその一部分は先読みとデータ更新(データ更
新で読まれるのは9だけ)により地図バッファ12(図
7)に保存されている。次に、自車が図葉13に移動す
ると該図葉13の先読みスレッドがデータ更新スレッド
41として扱われ、新たに図葉7,8,9,12,1
4,17,18,19に関する先読みスレッドが準備さ
れる。
(E-4) Improvement of Efficiency of Prefetching by Using Difference Information A thread for prefetching map data of a new adjacent eight plots every time the center plot changes due to the movement of the own vehicle. Here, a method for improving the efficiency at that time will be described. For example, assume that there are leaves from 1 to 25 as shown in FIG. 15 and the center leaf of the own vehicle has moved from 9 to 13. Already when my car was at figure 9, figure 3, 4, 5,
The map data of 8, 9, 10, 13, 14, and 15, if not complete, is partially stored in the map buffer 12 (FIG. 7) by pre-reading and data updating (only 9 is read by data updating). . Next, when the vehicle moves to the map 13, the prefetch thread of the map 13 is treated as the data update thread 41, and the map 7, 8, 9, 12, 1 is newly added.
Prefetch threads for 4, 17, 18, and 19 are prepared.

【0040】しかし、この先読みスレッドのうち8,
9,14は既に中心図葉が9であった時にある程度その
地図データが地図バッファ12に取り込まれているはず
である。つまり、新規の中心図葉13で先読みすべき部
分は、すでに地図バッファ12にある程度保存されて
いる図葉8,9,14と、新しい先読みスレッド7,
12,17,18,19ということになる。以上をまと
めると、中心図葉がpからcに変更される時、 (cの先読み部分で既にデータの1部が地図バッファにある部分) =(cの先読み部分)∩(pの先読み部分) (2) (cで先読みスレッドを新規に用意する部分) (3) =(cの先読み部分)∩(pの先読み以外の部分) ということになる。このような差分情報を用いれば先読
み時間を短縮できる
However, out of the prefetch threads,
9 and 14, the map data should have been taken into the map buffer 12 to some extent when the center map leaf was already 9. That is, the parts to be prefetched in the new center map leaf 13 are the maps 8, 9, and 14 already stored to some extent in the map buffer 12, and the new prefetch thread 7,
12, 17, 18, 19, respectively. To summarize the above, when the center map leaf is changed from p to c, (a part of the data already in the map buffer in the prefetch part of c) = (prefetch part of c) ∩ (prefetch part of p) (2) (the part where c prepares a new prefetch thread) (3) = (the prefetch part of c) ∩ (the part other than the prefetch of p). By using such difference information, the pre-reading time can be reduced.

【0041】。図16は差分情報を用いた再描画アルゴ
リズムのフロー図であり、図10のアルゴリズムに少し
変更を加えた形のアルゴリズムになっている。アルゴリ
ズム中のステップ401では、(3)式を満足する図葉(前
回の中心図葉pに対する先読み部分と新規の中心図葉c
での先読み部分との差分となる部分)に対してのみ新し
い先読みスレッドを用意し開始する。(2)式を満足する
図葉は(重複する部分)は前回の先読みスレッドをそのま
ま使用する。以上、先読みと動的な優先度を用いたカー
ナビ用の描画アルゴリズム(図16)により、再描画の
データ更新時に一時的にかかる大きな負荷をCPUの負
荷がそれほど大きくない時に優先度を低くセットしたス
レッドで更新しておくことで、回避することができる。
[0041] FIG. 16 is a flowchart of a redrawing algorithm using difference information, which is an algorithm in which the algorithm of FIG. 10 is slightly modified. In step 401 in the algorithm, the map satisfying the expression (3) (the look-ahead portion for the previous center map p and the new center map c
And prepare a new look-ahead thread only for the part that is the difference from the look-ahead part. For a figure satisfying the expression (2) (the overlapping part), the previous look-ahead thread is used as it is. As described above, according to the drawing algorithm for the car navigation system using the pre-reading and the dynamic priority (FIG. 16), the priority temporarily set at the time of updating the data for redrawing is set to a low priority when the load on the CPU is not so large. It can be avoided by updating in a thread.

【0042】(C)評価実験 本手法の有効性を示すために、実際に市販のナビ研CD
−ROMを使用し、一定方向に画面スクロールさせるこ
とで強制的に再描画を発生させ、データ更新・地図描画
・地図表示の各必要処理時間をそれぞれ先読みがある場
合と、ない場合とで比較を行った。尚、評価はSun Ultr
al上で行った。図17(a),(b)は実験結果のグラ
フで、(a)は先読みしない場合、(b)は先読みした
場合である。先読みがある場合も、ない場合も、スクロ
ール時の再描画におけるVRAMへの地図描画時間、V
RAMから読み取ってスクリーンに表示する地図表示時
間はある範囲内に収まって大差がない。しかし、CD−
ROMより地図データを読み取って更新するデータ更新
時間は、先読みなしの場合において再描画の時、a〜f
で示すように突出している。これは一時的に非常に大き
な負荷がCPUにかかっていることを意味している。一
方、先読み有りの場合には、突出はなくなっており、デ
ータ更新時間はほとんど目立たなくなっている(グラフ
では0にかなり近い値になっている)。これは、先読み
しない場合において一時的に突出したCPU負荷が一定
に分散されていることを意味し、先読みの利点が明らか
である。このように先読みにより、再描画時の処理コス
トを分散し、これにより、再描画時のシステムへの一時
的な負荷を軽減することができた。
(C) Evaluation experiment In order to show the effectiveness of this method, a commercially available Naviken CD
-Use the ROM to scroll the screen in a certain direction to force redrawing, and compare the required processing time for data update, map drawing, and map display with and without prefetching. went. Evaluation is Sun Ultr
went on al. FIGS. 17A and 17B are graphs of experimental results, in which FIG. 17A shows a case where prefetching is not performed, and FIG. 17B shows a case where prefetching is performed. Regardless of whether there is pre-reading or not, the map drawing time in the VRAM in redrawing during scrolling, V
The map display time read from the RAM and displayed on the screen falls within a certain range, and there is no great difference. However, CD-
The data update time for reading and updating map data from the ROM is af in the case of redrawing without prefetching.
It protrudes as shown by. This means that a very large load is temporarily applied to the CPU. On the other hand, when there is pre-reading, the protrusion is eliminated, and the data update time is almost inconspicuous (in the graph, the value is substantially close to 0). This means that the temporarily prominent CPU load is uniformly distributed when no prefetching is performed, and the advantage of prefetching is apparent. As described above, the processing cost at the time of redrawing is dispersed by pre-reading, whereby the temporary load on the system at the time of redrawing can be reduced.

【0043】つぎに、先読みを用いた時のシステム全体
のパフォーマンスの向上について次の図17(c)に示
す。先読みがない場合に比べ、先読みがある場合はシス
テムの負荷が分散されただけでなく、全体として再描画
時のパフォーマンスも約23%向上したことになる。つ
まり、先読みは負荷分散だけでなく、システム全体のパ
フォーマンスを向上させることができる。以上、本発明
を実施例により説明したが、本発明は請求の範囲に記載
した本発明の主旨に従い種々の変形が可能であり、本発
明はこれらを排除するものではない。
Next, FIG. 17C shows the improvement of the performance of the whole system when the prefetch is used. Compared with the case where there is no prefetching, when there is prefetching, not only the load on the system is dispersed, but also the performance at the time of redrawing is improved by about 23% as a whole. That is, prefetching can improve not only load distribution but also the performance of the entire system. As described above, the present invention has been described with reference to the embodiments. However, the present invention can be variously modified in accordance with the gist of the present invention described in the claims, and the present invention does not exclude these.

【0044】[0044]

【発明の効果】以上本発明によれば、(1) 地図データの
先読みを行う先読みスレッドを用意すると共に該先読み
スレッドの優先度を低くし、(2) CPUの空き時間を監
視し、(3) 該CPU空き時間に先読みスレッドを起動
し、(4) 先読みスレッドにより中心図葉及び周辺の隣接
図葉を地図記録媒体より読出してメモリに格納するよう
にしたから、進入する隣接図葉を予測する必要がなく、
また、CPUのアイドルタイムを有効に利用でき、該ア
イドルタイムにおいて中心図葉及び周辺の図葉を地図バ
ッファに先読みすることができる。
As described above, according to the present invention, (1) preparing a prefetch thread for prefetching map data, lowering the priority of the prefetch thread, (2) monitoring the idle time of the CPU, and (3) (4) The prefetch thread is started during the idle time of the CPU, and (4) the center map leaf and the neighboring map leaf are read from the map recording medium and stored in the memory by the prefetch thread. No need to
In addition, the idle time of the CPU can be effectively used, and the center figure and the surrounding figures can be prefetched into the map buffer at the idle time.

【0045】本発明によれば、(1) 地図データを地図記
録媒体より読み取って地図バッファに既に記憶されてい
るデータを更新するデータ更新制御、地図バッファに記
憶されている地図データに基づいて地図画像を発生して
VRAMに描画する地図描画制御、VRAMから車両位
置周辺の地図画像を切り出してスクリーンに表示する画
面表示制御のそれぞれを並列処理により実行可能なデー
タ更新スレッド、地図描画スレッド、画面表示スレッド
を用意し、(2) これらスレッドの優先度を低くすると共
に、データ更新完了前は上記各スレッドのうち、データ
更新スレッドの優先度を最高にし、データ更新完了後で
あって地図描画完了前は地図描画スレッドの優先度を最
高にし、地図描画完了後であって画面表示完了前は画面
表示スレッドの優先度を最高にし、(3) 地図スクロール
処理に際して優先度が最高のスレッドを実行するように
したから、地図スクロール制御の各描画段階において最
も重要な役割を担うスレッドを最優先に実行でき、スレ
ッド間の同期を取ることなく各スレッドの競合回避を実
現でき、円滑な地図スクロールが可能になった。
According to the present invention, (1) data update control for reading map data from a map recording medium and updating data already stored in the map buffer, and performing map updating based on the map data stored in the map buffer. A data update thread, a map drawing thread, and a screen display capable of executing, by parallel processing, a map drawing control for generating an image and drawing the map image in a VRAM, and a screen display control for cutting out a map image around a vehicle position from the VRAM and displaying the map image on a screen. Prepare threads and (2) lower the priority of these threads, and prior to the completion of data update, set the priority of the data update thread to the highest among the above threads, and after the completion of data update and before the completion of map drawing Makes the map drawing thread the highest priority, and after the map drawing is completed but before the screen display is completed, the screen display thread has priority (3) Since the thread with the highest priority is executed during the map scrolling process, the thread that plays the most important role in each drawing stage of the map scrolling control can be executed with the highest priority. Avoiding conflicts among threads without synchronization, enabling smooth map scrolling.

【0046】また、本発明によれば、(1) 車両が属する
領域に応じた中心図葉に隣接する8つの隣接図葉に対応
して先読みスレッドを用意し、(2) 車両が進入した隣接
図葉の先読みスレッドを前記データ更新スレッドとして
該隣接図葉を先読みし、(3)他の隣接図葉に応じた先読
みスレッドの優先度を前記地図描画スレッド、画面表示
スレッドの優先度より低くして該他の隣接図葉を先読み
するようにしたから、車両が進入した隣接図葉を最優先
で先読みできるため車両位置周辺の地図画像を確実に表
示でき、地図スクロールを円滑に行うことができる。
Further, according to the present invention, (1) a look-ahead thread is prepared corresponding to eight adjacent maps adjacent to the center map corresponding to the area to which the vehicle belongs, and (2) the adjacent thread into which the vehicle has entered. The prefetch thread of the map leaf is used as the data update thread to prefetch the adjacent map leaf, and (3) the priority of the prefetch thread according to the other adjacent map leaf is set lower than the map drawing thread and the screen display thread. Since the other adjacent map is pre-read, the adjacent map into which the vehicle has entered can be read ahead with the highest priority, so that the map image around the vehicle position can be reliably displayed and the map can be scrolled smoothly. .

【0047】また、本発明によれば、地図スクロールに
必要なデータ更新スレッドの優先度を低くし、CPU負
荷が低いときに、地図データの先読みを行うようにした
から、従来再描画のデータ更新時に一時的にかかる大き
な負荷を回避でき、これにより、他の重要な処理の遅延
を防止でき、システム効率を大幅に改善できる。また、
本発明によれば、(1) 車両が属する領域に応じた中心図
葉を4分割し、(2) 画面に表示されている中心点がいず
れの分割領域に属するか判断し、(3) 該所属分割領域に
隣接する領域に応じた隣接図葉の先読みスレッドの優先
度を他の隣接図葉の先読みスレッドの優先度より高く
し、(4) 優先度の高い隣接図葉をより早く先読みするよ
うにしたから、車両が次に進入する可能性の高い隣接図
葉を早めに先読みできるため、車両位置周辺の地図画像
を確実に表示でき、地図スクロールを円滑に行うことが
できる。
Further, according to the present invention, the priority of the data update thread required for map scrolling is reduced, and the map data is prefetched when the CPU load is low. Large temporary loads can sometimes be avoided, thereby preventing delays in other important processes and greatly improving system efficiency. Also,
According to the present invention, (1) the center map leaf corresponding to the region to which the vehicle belongs is divided into four, and (2) which divided region the center point displayed on the screen belongs to is determined. The priority of the prefetch thread of the adjacent map leaf corresponding to the area adjacent to the belonging division area is set higher than the priority of the prefetch thread of the other adjacent map leaf, and (4) the prefetch thread of the adjacent map leaf having a higher priority is earlier. With this configuration, it is possible to pre-read the adjacent map having a high possibility that the vehicle will enter next, so that the map image around the vehicle position can be reliably displayed, and the map can be smoothly scrolled.

【0048】また、本発明によれば、既に地図バッファ
に読み込まれている隣接図葉以外の隣接図葉(差分図
葉)のみを先読みするようにしたから、先読みの負荷を
小さくでき、先読みに要する時間を短縮でき、確実に中
心図葉及び周辺8個の隣接図葉を先読みして地図バッフ
ァに格納できる。
Further, according to the present invention, since only the adjacent map leaf (difference map) other than the adjacent map leaf already read into the map buffer is prefetched, the load of the prefetch can be reduced, and the prefetching can be performed. The required time can be shortened, and the center map and the eight neighboring maps can be reliably read ahead and stored in the map buffer.

【図面の簡単な説明】[Brief description of the drawings]

【図1】地図データ管理説明図である。FIG. 1 is an explanatory diagram of map data management.

【図2】進入先の旧図葉番号Cと進入後利用可能な旧図
葉番号配列AR1及び進入後先読みが必要な新図葉配列
AR2の対応図表である。
FIG. 2 is a correspondence table of an old leaf number C of an entry destination, an old leaf number array AR1 usable after entry, and a new leaf array AR2 requiring prefetching after entry.

【図3】ハッシュテーブルの内容説明図である。FIG. 3 is a diagram illustrating the contents of a hash table.

【図4】ナビゲーション装置の要部構成図である。FIG. 4 is a configuration diagram of a main part of the navigation device.

【図5】CPUを備えたナビゲーション装置の構成図で
ある。
FIG. 5 is a configuration diagram of a navigation device including a CPU.

【図6】先読み制御処理フローである。FIG. 6 is a prefetch control processing flow.

【図7】マルチスレッドによる描画モデル説明図であ
る。
FIG. 7 is an explanatory diagram of a drawing model using multi-threading.

【図8】スレッド間の優先度に関する位置付け説明図で
ある。
FIG. 8 is an explanatory diagram of positioning regarding the priority between threads.

【図9】各状況における優先度割り当て説明図である。FIG. 9 is an explanatory diagram of priority assignment in each situation.

【図10】動的優先度の割り当て処理フローである。FIG. 10 is a flowchart of a dynamic priority assignment process.

【図11】データ更新要求発生のタイミング説明図であ
る。
FIG. 11 is an explanatory diagram of a timing at which a data update request is generated.

【図12】予測のために中心図葉を4つに分割した分割
領域説明図である。
FIG. 12 is an explanatory diagram of a divided area obtained by dividing a central map leaf into four for prediction.

【図13】先読みスレッド間の優先度割り当て説明図で
ある。
FIG. 13 is an explanatory diagram of priority assignment between prefetch threads.

【図14】先読みスレッドの優先度に関する位置付け説
明図である。
FIG. 14 is an explanatory diagram of the positioning of the priority of a prefetch thread.

【図15】先読みの差分説明図である。FIG. 15 is an explanatory diagram of a difference in prefetching.

【図16】差分情報を用いた再描画アルゴリズムであ
る。
FIG. 16 shows a re-drawing algorithm using difference information.

【図17】評価実験結果説明図である。FIG. 17 is an explanatory diagram of an evaluation experiment result.

【図18】従来の地図データの更新タイミング説明図で
ある。
FIG. 18 is an explanatory diagram of a conventional map data update timing.

【符号の説明】[Explanation of symbols]

10・・地図記録媒体(CD−ROM) 14・・VRAM 16・・ディスプレイ装置 17・・位置測定装置 20・・プロセッサ(CPU) 31・・演算処理ハードウェア部 32・・プログラムメモリ 33・・主記憶装置 10. Map recording medium (CD-ROM) 14. VRAM 16. Display device 17. Position measuring device 20. Processor (CPU) 31. Arithmetic processing hardware unit 32. Program memory 33. Storage device

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 車両が属する領域に応じた中心図葉と該
領域の周辺領域に応じた隣接図葉をメモリに先読みする
ナビゲーション装置の地図データの先読み方法におい
て、 地図データの先読みを行う先読みスレッドを用意すると
共に該先読みスレッドの優先度を低くし、CPUの空き
時間を監視し、 該CPU空き時間に先読みスレッドを起動し、先読みス
レッドにより中心図葉及び周辺の隣接図葉を地図記録媒
体より読出してメモリに格納することを特徴とする地図
データの先読み方法。
1. A pre-reading thread for pre-reading map data in a map data pre-reading method of a navigation device for pre-reading in a memory a central map leaf corresponding to a region to which a vehicle belongs and an adjacent map leaf corresponding to a peripheral region of the region. And lowering the priority of the prefetch thread, monitoring the idle time of the CPU, activating the prefetch thread during the idle time of the CPU, and using the prefetch thread to read the center map leaf and the neighboring neighboring map leaf from the map recording medium. A prefetching method of map data, which is read out and stored in a memory.
【請求項2】 車両の移動に伴って車両位置周辺の地図
をスクリーンに表示するナビゲーション装置の地図スク
ロール方法において、 地図データを地図記録媒体より読み取って地図バッファ
に既に記憶されているデータを更新するデータ更新制
御、地図バッファに記憶されている地図データに基づい
て地図画像を発生してVRAMに描画する地図描画制
御、VRAMから車両位置周辺の地図画像を切り出して
スクリーンに表示する画面表示制御のそれぞれを並列処
理により実行可能なデータ更新スレッド、地図描画スレ
ッド、画面表示スレッドを用意し、 これらスレッドの優先度を低くすると共に、データ更新
完了前は上記各スレッドのうち、データ更新スレッドの
優先度を最高にし、データ更新完了後であって地図描画
完了前は地図描画スレッドの優先度を最高にし、地図描
画完了後であって画面表示完了前は画面表示スレッドの
優先度を最高にし、 地図スクロール処理に際して優先度が最高のスレッドを
実行する、ことを特徴とする地図スクロール方法。
2. A map scrolling method for a navigation device for displaying a map around a vehicle position on a screen as the vehicle moves, reading map data from a map recording medium and updating data already stored in a map buffer. Data update control, map drawing control for generating a map image based on the map data stored in the map buffer and drawing it in the VRAM, and screen display control for cutting out the map image around the vehicle position from the VRAM and displaying it on the screen Prepare a data update thread, a map drawing thread, and a screen display thread that can be executed by parallel processing, lower the priority of these threads, and set the priority of the data update thread among the above threads before the data update is completed. Highest, and after the data update is completed and before the map drawing is completed, the map drawing Prior to the completion of map drawing and before the completion of screen display, the highest priority is given to the screen display thread, and the thread with the highest priority is executed during map scroll processing. Map scroll method.
【請求項3】 車両が属する領域に応じた中心図葉に隣
接する8つの隣接図葉に対して先読みスレッドを用意
し、 車両が進入した隣接図葉の先読みスレッドを前記データ
更新スレッドとして扱うことで該図葉データを読みだ
し、 車両が進入した図葉の隣接図葉に関しては、前記地図更
新スレッド、地図描画スレッド、画面表示スレッドより
優先度を低く設定した先読みスレッドにより地図データ
を先読みすることを特徴とする請求項2記載の地図スク
ロール方法。
3. A read-ahead thread is prepared for eight adjacent map leaves adjacent to a center map leaf corresponding to an area to which a vehicle belongs, and a pre-read thread of the adjacent map leaf where the vehicle has entered is treated as the data update thread. The map data is read in advance by using a prefetch thread set to have a lower priority than the map update thread, the map drawing thread, and the screen display thread for the map leaf adjacent to the map into which the vehicle has entered. 3. The map scrolling method according to claim 2, wherein:
【請求項4】 中心図葉を4分割し、画面に表示されて
いる中心点がいずれの分割領域に属するか判断し、該所
属分割領域に隣接する領域に応じた隣接図葉の先読みス
レッドの優先度を他の隣接図葉の先読みスレッドの優先
度より高くし、優先度の高い隣接図葉をより早く先読み
することを特徴とする請求項3記載の地図スクロール方
法。
4. A center map leaf is divided into four parts, a central point displayed on the screen belongs to which divided area, and a pre-read thread of an adjacent figure leaf according to an area adjacent to the belonging divided area is determined. 4. The map scrolling method according to claim 3, wherein the priority is set higher than the priority of the look-ahead thread of the other adjacent map, and the adjacent map having the higher priority is read ahead earlier.
【請求項5】 既に地図バッファに読み込まれている隣
接図葉以外の隣接図葉のみを先読みすることを特徴とす
る請求項3記載の地図スクロール方法。
5. The map scrolling method according to claim 3, wherein only the adjacent map other than the adjacent map already read into the map buffer is pre-read.
JP34096097A 1997-12-11 1997-12-11 Map data prefetching method and map scrolling method Expired - Fee Related JP3621572B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34096097A JP3621572B2 (en) 1997-12-11 1997-12-11 Map data prefetching method and map scrolling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34096097A JP3621572B2 (en) 1997-12-11 1997-12-11 Map data prefetching method and map scrolling method

Publications (2)

Publication Number Publication Date
JPH11174952A true JPH11174952A (en) 1999-07-02
JP3621572B2 JP3621572B2 (en) 2005-02-16

Family

ID=18341905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34096097A Expired - Fee Related JP3621572B2 (en) 1997-12-11 1997-12-11 Map data prefetching method and map scrolling method

Country Status (1)

Country Link
JP (1) JP3621572B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001094889A1 (en) * 2000-06-07 2001-12-13 Mitsubishi Denki Kabushiki Kaisha Navigation apparatus
WO2003027962A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and method, electronic device, and computer program
WO2003027959A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and computer program
WO2003027963A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and method, and computer program
WO2003027964A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and method, electronic device and computer program
JP2005117640A (en) * 2003-09-16 2005-04-28 Sysmex Corp Method of displaying sample image and retrieval method employing the same, surveillance method, system of displaying sample image, program for displaying the sample image and recording medium recording with the program stored thereto
WO2005106661A1 (en) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. Data processing program and data processing device
JP2010165151A (en) * 2009-01-15 2010-07-29 Mitsubishi Electric Corp Data access device and data access program
JP2010266449A (en) * 2010-06-09 2010-11-25 Mitsubishi Electric Corp Map data processing device
JP2012530987A (en) * 2009-06-24 2012-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Apparatus, method, and computer program for requesting computer data assets (request for computer data assets)
US8626442B2 (en) 2003-08-29 2014-01-07 Mitsubishi Denki Kabushiki Kaisha Navigation apparatus
WO2014111985A1 (en) * 2013-01-17 2014-07-24 株式会社ソニー・コンピュータエンタテインメント Information processing device and file management method
JP2014521150A (en) * 2011-07-06 2014-08-25 マイクロソフト コーポレーション Predictive multi-layer cache architecture
KR20190013151A (en) * 2017-07-31 2019-02-11 한국과학기술원 Multi-thread Based Big Image Display Acceleration Method
KR20190056491A (en) * 2017-11-17 2019-05-27 현대자동차주식회사 Map update method and navigation apparatus of vehicle
CN111797192A (en) * 2020-07-27 2020-10-20 平安科技(深圳)有限公司 GIS point data rendering method and device, computer equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0875480A (en) * 1994-09-09 1996-03-22 Alpine Electron Inc Map drawing method
JPH08212090A (en) * 1995-02-03 1996-08-20 Fujitsu Ltd Server system
JPH0944366A (en) * 1995-07-28 1997-02-14 Oki Electric Ind Co Ltd Multi-thread scheduling device
JPH0981628A (en) * 1995-09-08 1997-03-28 Hitachi Eng Co Ltd Facilities management system and its method
JPH1115371A (en) * 1997-06-25 1999-01-22 Fujitsu Ten Ltd Map displaying apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0875480A (en) * 1994-09-09 1996-03-22 Alpine Electron Inc Map drawing method
JPH08212090A (en) * 1995-02-03 1996-08-20 Fujitsu Ltd Server system
JPH0944366A (en) * 1995-07-28 1997-02-14 Oki Electric Ind Co Ltd Multi-thread scheduling device
JPH0981628A (en) * 1995-09-08 1997-03-28 Hitachi Eng Co Ltd Facilities management system and its method
JPH1115371A (en) * 1997-06-25 1999-01-22 Fujitsu Ten Ltd Map displaying apparatus

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681178B1 (en) 2000-06-07 2004-01-20 Mitsubishi Denki Kabushiki Kaisha Navigation apparatus
WO2001094889A1 (en) * 2000-06-07 2001-12-13 Mitsubishi Denki Kabushiki Kaisha Navigation apparatus
WO2003027964A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and method, electronic device and computer program
US7218319B2 (en) 2001-09-26 2007-05-15 Pioneer Corporation Image generating apparatus, image generating method, and computer program
WO2003027962A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and method, electronic device, and computer program
JP2003109039A (en) * 2001-09-26 2003-04-11 Pioneer Electronic Corp Device and method for producing image, electronic equipment and computer program
JP2003109040A (en) * 2001-09-26 2003-04-11 Pioneer Electronic Corp Device and method for producing image, electronic equipment and computer program
JP2003109028A (en) * 2001-09-26 2003-04-11 Pioneer Electronic Corp Device and method for preparing image and computer program
WO2003027959A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and computer program
CN100403340C (en) * 2001-09-26 2008-07-16 日本先锋公司 Image generating apparatus, image generating method, and computer program
CN100346358C (en) * 2001-09-26 2007-10-31 日本先锋公司 Image creation apparatus and method, electronic device, and computer program
US7215335B2 (en) 2001-09-26 2007-05-08 Pioneer Corporation Image generating apparatus, image generating method, and computer program
WO2003027963A1 (en) * 2001-09-26 2003-04-03 Pioneer Corporation Image creation apparatus and method, and computer program
US7221364B2 (en) 2001-09-26 2007-05-22 Pioneer Corporation Image generating apparatus, image generating method, and computer program
US8626442B2 (en) 2003-08-29 2014-01-07 Mitsubishi Denki Kabushiki Kaisha Navigation apparatus
JP2005117640A (en) * 2003-09-16 2005-04-28 Sysmex Corp Method of displaying sample image and retrieval method employing the same, surveillance method, system of displaying sample image, program for displaying the sample image and recording medium recording with the program stored thereto
WO2005106661A1 (en) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. Data processing program and data processing device
JP2010165151A (en) * 2009-01-15 2010-07-29 Mitsubishi Electric Corp Data access device and data access program
JP2012530987A (en) * 2009-06-24 2012-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Apparatus, method, and computer program for requesting computer data assets (request for computer data assets)
US9147006B2 (en) 2009-06-24 2015-09-29 International Business Machines Corporation Requesting computer data assets
JP4676022B2 (en) * 2010-06-09 2011-04-27 三菱電機株式会社 Map data processor
JP2010266449A (en) * 2010-06-09 2010-11-25 Mitsubishi Electric Corp Map data processing device
US9785608B2 (en) 2011-07-06 2017-10-10 Microsoft Technology Licensing, Llc Predictive, multi-layer caching architectures
JP2014521150A (en) * 2011-07-06 2014-08-25 マイクロソフト コーポレーション Predictive multi-layer cache architecture
US9529725B2 (en) 2013-01-17 2016-12-27 Sony Corporation Information processing device and method for managing file
WO2014111985A1 (en) * 2013-01-17 2014-07-24 株式会社ソニー・コンピュータエンタテインメント Information processing device and file management method
US10754779B2 (en) 2013-01-17 2020-08-25 Sony Interactive Entertainment Inc. Information processing device and method for managing file
KR20190013151A (en) * 2017-07-31 2019-02-11 한국과학기술원 Multi-thread Based Big Image Display Acceleration Method
KR20190056491A (en) * 2017-11-17 2019-05-27 현대자동차주식회사 Map update method and navigation apparatus of vehicle
CN111797192A (en) * 2020-07-27 2020-10-20 平安科技(深圳)有限公司 GIS point data rendering method and device, computer equipment and storage medium
JP2022536634A (en) * 2020-07-27 2022-08-18 平安科技(深▲せん▼)有限公司 Method, Apparatus, Computer Facility, and Storage Medium for Rendering GIS Point Data
CN111797192B (en) * 2020-07-27 2023-09-01 平安科技(深圳)有限公司 GIS point data rendering method and device, computer equipment and storage medium

Also Published As

Publication number Publication date
JP3621572B2 (en) 2005-02-16

Similar Documents

Publication Publication Date Title
JPH11174952A (en) Reading method for map data in lookahead and map scrolling method
US5349656A (en) Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information
US6233599B1 (en) Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
JP5335743B2 (en) Device that supports task scheduling
JP4896376B2 (en) System and method for enhancing coprocessor performance
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
EP0969380A2 (en) Method for efficient non-virtual main memory management
US20050066302A1 (en) Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads
US20130067133A1 (en) Handling interrupts in data processing
KR20030072550A (en) A data processing apparatus and method for saving return state
JPH06250928A (en) Information processor
JP2000200219A (en) Virtual memory management system
US20070055852A1 (en) Processing operation management systems and methods
JP3019317B2 (en) Process scheduling method
JPH0830562A (en) Multiprocessor system
JP3898369B2 (en) Paging processing apparatus and recording medium
JPH05334194A (en) Information processor
JPH06110857A (en) Program dispatching system
JPH08123725A (en) Write-back type cache system
JP2000163309A (en) Method and device for managing memory and recording medium
JPH07230358A (en) Multiplexed volume device
JPS62125437A (en) Control method for additional processor
JPS63113637A (en) Exclusive processing system for hash table entry
JPS5894182A (en) Buffer memory managing system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041118

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees