OV2 optimizer utility (ov2optimizer.exe)

 

As discussed previously (most recently here), there is an issue with the way many OV2 files are structured that can impair the performance of our TomTom devices.

I offer a free utility called "ov2optimizer" to create OV2 files with proper indexing ("skipper records") included. You can find out more about the utility and download it here:

http://tinyurl.com/ov2optimizer

(There is also a companion command-line utility called "ov2scan" to read an OV2 file and display counts for the various record types. See the related thread here.)

What's New

2012-11-06
ov2optimizer v1.1 can now read CSV files as well as OV2 files.

Thanks

Thanks for this optimization utility and the Scan utility. I have personally experienced the consequences of using a POI file without the correct indexing, so I definitely appreciate the tools.

With best wishes,
- Tom -

--
XXL540, GO LIVE 1535, GO 620

new version 1.1 reads CSV files, too

I have updated ov2optimizer to read CSV files as well as OV2 files. This was added mainly so POI Factory members could easily create fully indexed OV2 files from the Red Light Camera and Speed Camera CSV files.

After installing ov2optimizer, go to the download page for the Red Light Camera or Speed Camera file, click the link, and open the file with ov2optimizer.exe. After the file has been converted to OV2 and optimized you will be presented with a Save As dialog to save it in your preferred location (e.g., directly to your map folder if you are using an older TomTom).

Problem downloading

I was trying to download it and Chrome says ov2optimizer.setup.1....exe is not commonly downloaded and could be dangerous. So I click on the small arrow next to discard button to keep the message. It downloads no problem then Norton 360 kicks in and say it is not safe and deletes it. That was Yesterday. Now a file insight open that will allow me to Trust Now and now lets me install it. Thanks for the info.

@willdrad

Thanks for letting me know. It seems rather Draconian for Norton to flat out delete my installer just because it has never heard of it before, but I haven't been a fan of their AV/security products for a long time. Thanks to a tip from CraigW I have applied to get the installer whitelisted, but that could take several weeks. I hope that not too many other people are inconvenienced by this.

Symantec said "No"

VersatileGuy wrote:

It seems rather Draconian for Norton to flat out delete my installer just because it has never heard of it before, but I haven't been a fan of their AV/security products for a long time. Thanks to a tip from CraigW I have applied to get the installer whitelisted, but that could take several weeks. I hope that not too many other people are inconvenienced by this.

I received a surprisingly prompt reply from Symantec Security Response. Unfortunately they have denied my request to get the ov2optimizer installer whitelisted. For all of you Symantec/Norton users out there all I can suggest is

- see if there is an option to "Ignore", "Allow", "Run Anyway", or something similar, or, failing that

- use a better security product.

Sorry....

How indexing helps

For those who are interested, here is an example of how ov2optimizer can speed up your TomTom if you have previously been using unindexed third-party OV2 files.

The 2012-11-07 version of "Redlight-Cameras.csv" contains 4174 RLC intersections. If you were to load that file into the majority of POI editors (including EPE) and save it as an OV2 file you would get a file with POI records but no indexing ("skipper records").

Assuming that you have your TomTom set to alert you of an upcoming RLC intersection (otherwise, what's the point?) then every time your TomTom updates the screen it has to scan every POI record in that file to see if there is an RLC intersection coming up. For each POI record it has to read at least 13 bytes of data (1 byte for the record type, and 4 bytes each for the record length, longitude, and latitude), so the effort required is

bytes to read: 4174 * 13 = 54262 bytes (53 KB)
lat/lon comparisons: 4174

That's certainly not outrageous by today's standards, but remember that it has to keep doing this several times per second, and that's just for this one POI file.

Once the skipper records have been added to the file, your TomTom can scan through it much more efficiently. Here's how your TomTom finds the last record in the "Redlight-Cameras.ov2" file produced by ov2optimizer:

Step 1. SkipRec: In this block, stepping...
Step 2. SkipRec: Skipping 78357 bytes to offset 78378... OK
Step 3. SkipRec: In this block, stepping...
Step 4. SkipRec: Skipping 181539 bytes to offset 259938... OK
Step 5. SkipRec: In this block, stepping...
Step 6. SkipRec: Skipping 40232 bytes to offset 300191... OK
Step 7. SkipRec: In this block, stepping...
Step 8. SkipRec: In this block, stepping...
Step 9. SkipRec: Skipping 18002 bytes to offset 318235... OK
Step 10. SkipRec: In this block, stepping...
Step 11. SkipRec: Skipping 3725 bytes to offset 321981... OK
Step 12. SkipRec: In this block, stepping...
Step 13. SkipRec: Skipping 2667 bytes to offset 324669... OK
Step 14. SkipRec: In this block, stepping...
Checking POIs: Found it after scanning 5 POI records

It has to read 14 skipper records @ 21 bytes each, and 5 POI records @ 13 bytes each, or

bytes to read: 359 bytes (0.66% of previous)
lat/lon comparisons: 33 (0.79% of previous)

Furthermore, the benefits can increase dramatically as the number of POI records in the OV2 file increases. For mahoney's "Mcdonalds_USA_CAN.ov2" file as downloaded from POI Factory, your TomTom again needs to scan every one of the 15163 POI records...

bytes to read: 15163 * 13 = 197119 bytes (192 KB)
lat/lon comparisons: 15163

...but after the OV2 file has been optimized your TomTom can find the very last record with just...

Step 1. SkipRec: In this block, stepping...
Step 2. SkipRec: Skipping 132929 bytes to offset 132950... OK
Step 3. SkipRec: In this block, stepping...
Step 4. SkipRec: Skipping 449570 bytes to offset 582541... OK
Step 5. SkipRec: In this block, stepping...
Step 6. SkipRec: Skipping 46179 bytes to offset 628741... OK
Step 7. SkipRec: In this block, stepping...
Step 8. SkipRec: In this block, stepping...
Step 9. SkipRec: Skipping 31441 bytes to offset 660224... OK
Step 10. SkipRec: In this block, stepping...
Step 11. SkipRec: Skipping 3362 bytes to offset 663607... OK
Step 12. SkipRec: In this block, stepping...
Checking POIs: Found it after scanning 2 POI records

...which is...

bytes to read: 278 bytes (0.14% of previous)
lat/lon comparisons: 26 (0.17% of previous)

I need your help!!!

Hello VersatileGuy,

I am a newbe in VB6, but I am try learn this great language, but I am an expert in others languanges such as... C#, Clipper, Cobol, Basic, Fortran, Pascal, PHP, HTML, ASP and now I am try learn VB. razz
So my request to you is... since your tool "Ov2optimizer" is a freeware, do is there any posiblility that you can send the sources of this great tool to me? (just to me learning how is the SkipRec's algorithm "Please!!"), Cos I did try do it by myself without any success atm. "I have a GPS tomtom XL classic series, and I wish learn/make some few things with POI's only to test if its will works, such: delete some especial characters from the OV2 file! like... if chr$(xchar) <= 125 and chr$(xchar) >= 31 then... etc!" gotcha???

* I promise to you that's estudantiles purposes only!
** Sry, for my bad english by the way!!! (I am a portuguese guy living in spain!)

Many thx in advance...

Best regards,
DelTree (lmsystema_at_gmail.com)