logo separator

[mkgmap-dev] [mkgmap-svn] Commit r572: MDR16 is some kind of codebook.

From Gerd Petermann gpetermann_muenchen at hotmail.com on Wed Dec 15 11:13:34 GMT 2021

Hi Ticker,

this is what I have so far. The non-printable characters 0x01..0x04 are probably not correct.
Note the special case with the last sequence. It only occurs once in the
index and may as well be an error in the data.
My code doesn't detect any unknown codes, so I think MDR16 must somehow contain this information.
The character ž seems to appear both in upper and lower case?!? Might be wrong.

                                addHuffNode("111", 'A');
                                addHuffNode("1101", 'R');
                                addHuffNode("1100", 'I');
                                addHuffNode("1011", 'O');
                                addHuffNode("1010", 'N');
                                addHuffNode("1001", 'E');
                                addHuffNode("1000", ' ');
                                addHuffNode("0111", '\0');
                                addHuffNode("01101", 'L');
                                addHuffNode("01100", 'K');
                                addHuffNode("01011", 'J');
                                addHuffNode("01010", 'V');
                                addHuffNode("01001", 'M');
                                addHuffNode("01000", 'T');
                                addHuffNode("00111", 'D');
                                addHuffNode("00110", 'S');
                                addHuffNode("00101", 'C');
                                addHuffNode("001001", 'B');
                                addHuffNode("001000", 'P');
                                addHuffNode("000111", 'U');
                                addHuffNode("000110", 'Z');
                                addHuffNode("000101", 'G');
                                addHuffNode("0001001", '.');
                                addHuffNode("0001000", '2');
                                addHuffNode("0000111", '1');
                                addHuffNode("0000110", 'H');
                                addHuffNode("00001011", '4');
                                addHuffNode("00001010", '0');
                                addHuffNode("00001001", '9');
                                addHuffNode("00001000", '8');
                                addHuffNode("00000111", '3');
                                addHuffNode("00000110", '7');
                                addHuffNode("00000101", '-');
                                addHuffNode("00000100", '6');
                                addHuffNode("00000011", '5');
                                addHuffNode("000000101", ')');
                                addHuffNode("000000100", '(');
                                addHuffNode("000000011",',');
                                addHuffNode("000000010", 'F');
                                addHuffNode("0000000011", '*');
                                addHuffNode("00000000101", (char) 0x04); // non-print4
                                addHuffNode("00000000100", '"');
                                addHuffNode("00000000011", 'Y');
                                addHuffNode("000000000101", (char) 0x01); //non-print some shield code
                                addHuffNode("000000000100", 'X');
                                addHuffNode("000000000011", 'W');
                                addHuffNode("0000000000101", (char) 0x02); //non-print2
                                addHuffNode("0000000000100", '&');
                                addHuffNode("00000000000111", '/');
                                addHuffNode("00000000000110", 'Ë');
                                addHuffNode("00000000000101", '\''); // '
                                addHuffNode("00000000000100", 'Š');
                                addHuffNode("00000000000011", 'Q');
                                addHuffNode("000000000000101", 'È');
                                addHuffNode("000000000000100", 'Æ');
                                addHuffNode("0000000000000111", 'Ž'); //Ž
                                addHuffNode("0000000000000110", '!');
                                addHuffNode("0000000000000101", (char) 0x03); // non-print3
                                addHuffNode("00000000000001001", 'Ü');
                                addHuffNode("00000000000001000", 'Á'); //Á
                                addHuffNode("00000000000000111", '–'); // different to minus
                                addHuffNode("00000000000000110",'+');
                                addHuffNode("000000000000001011", 'Ö');
                                addHuffNode("000000000000001010", 'Ð');
                                addHuffNode("000000000000001001", 'É');
                                addHuffNode("000000000000001000", '“');
                                addHuffNode("000000000000000111", '{');
                                addHuffNode("000000000000000110", '_');
                                addHuffNode("0000000000000001011", 'Û');
                                addHuffNode("0000000000000001010", 'Ú');
                                addHuffNode("0000000000000001001", 'Ø');
                                addHuffNode("0000000000000001000", 'Ä');
                                addHuffNode("0000000000000000111", '’');
                                addHuffNode("0000000000000000110", 'ž');
                                addHuffNode("0000000000000000101", '„');
                                addHuffNode("0000000000000000100", '`');
                                addHuffNode("000000000000000001", '¸'); // special comma
                                addHuffNode("0000000000000000001", ';');
                                addHuffNode("00000000000000000001", '%'); //
                                addHuffNode("00000000000000000000", '#'); // offset into MDR 30/31? MapSource displays HWY

Gerd

________________________________________
Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen at hotmail.com>
Gesendet: Dienstag, 14. Dezember 2021 19:42
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] [mkgmap-svn] Commit   r572:   MDR16   is      some    kind    of      codebook.

Hi Ticker,

yes, the tree is still incomplete.
I use the existing tree and whenever it fails to decode a string I try find out the
missing character looking at the original map with the search.
I think you have no chance to do that without the full index file.

I need a pause now and maybe tomorrow I have the complete table.
Then I'll try to print it in some ways and will see if anything looks close to what I find in MDR16...

Gerd


________________________________________
Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap at jagit.co.uk>
Gesendet: Dienstag, 14. Dezember 2021 19:30
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] [mkgmap-svn] Commit r572:     MDR16   is      some    kind    of      codebook.

Hi Gerd

Do you fill in all the empty leaves with noticeable characters and
report them so you can spot patterns that haven't been defined and
their usage.

There seem to be some chars missing still (qwxy23). I don't know if the
shields/thin/fat separators make it into Mdr15


Ticker

On Tue, 2021-12-14 at 17:32 +0000, Gerd Petermann wrote:
> Hi Ticker,
>
> yes, I'm close to done with the display tool being able to decode the
> string from Adria Topo.
> The 'F' is causing trouble, so probably something in my tree is still
> wrong or incomplete:
> Here's my actual code to dill the Huffman tree:
>                                 add("111", 'A');
>
>                                 add("0111", '\0');
>                                 add("1000", ' ');
>                                 add("1001", 'E');
>                                 add("1010", 'N');
>                                 add("1011", 'O');
>                                 add("1100", 'I');
>                                 add("1101", 'R');
>
>                                 add("01100", 'K');
>                                 add("00101", 'C');
>                                 add("00110", 'S');
>                                 add("00111", 'D');
>                                 add("01000", 'T');
>                                 add("01001", 'M');
>                                 add("01010", 'V');
>                                 add("01011", 'J');
>                                 add("01101", 'L');
>
>                                 add("000101", 'G');
>                                 add("000110", 'Z');
>                                 add("001000", 'P');
>                                 add("000111", 'U');
>                                 add("001001", 'B');
>
> //                              add("0000000", 'F');
>                                 add("0000110", 'H');
>                                 add("0000111", '1');
>                                 add("0001001", '.');
>
>                                 add("00000011", '5');
>                                 add("00000100", '6');
>                                 add("00000111", '7');
>                                 add("00001000", '8');
>                                 add("00001001", '9');
>                                 add("00001010", '0');
>                                 add("00001011", '4');
>                                 add("00000101", '-');
>                                 add("000000100", '(');
>                                 add("000000101", ')');
>
> Gerd


_______________________________________________
mkgmap-dev mailing list
mkgmap-dev at lists.mkgmap.org.uk
https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
mkgmap-dev at lists.mkgmap.org.uk
https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev


More information about the mkgmap-dev mailing list