Back

Compressing a Flag to 11 Bits

27 points2 daysread.vantezzen.io
kjgkjhfkjf1 hour ago

In case anyone else was curious about using a lookup table: there are there are fewer than 256 recognized countries or territories [1], so 8 bits should be enough for a key.

This would be superior to the 11-bit encoding presented here because it handles complexities such as coats of arms. It would also handle bizarre situations such as two countries having almost identical flags [2].

[1] https://en.wikipedia.org/wiki/List_of_countries_and_territor...

[2] https://www.worldatlas.com/articles/country-flags-that-resem...

dhosek44 minutes ago

I’m surprised that the near-identical flags list omits Slovenia and Slovakia which both have white-blue-red horizontal stripes and a coat of arms (albeit with slightly different placement and different background colors on the coats of arms). A part of me feels like it’s part of a long-time joke the two countries are playing to confuse non-Slavs (the Slovenian word for their language is Slovenščina while the Slovak word for their language is Slovenčina and this is just the beginning of the confusion between the two countries/nationalities).

porphyra55 minutes ago

you could also exploit the fact that some flags may appear more frequently than others and use huffman encoding or something to encode the commonly used flags in a shorter sequence than rarely-mentioned countries, and save some bits on average

opiotrek1 hour ago

but then you have to have the svg built into decoder. will they be smaller than 5KB?

also then it's no different from a svg sprite

mabster55 minutes ago

Loved the title. I was like "that's 10 bits too many for a flag!" Haha

pimlottc1 hour ago

Surprised this didn’t mention heraldry, which has what’s basically a DSL for coats-of-arms:

https://en.wikipedia.org/wiki/Blazon

Smalltalker-802 hours ago

Nobody? Okay then: "Fun with flags!". There, I said it.

ano-ther1 hour ago

Cool idea. Interesting that Indonesia, Poland and Monaco with very similar two-stripe designs have different compression rates (11, 14 and 17 respectively). Probably the aspect ratio that also gets encoded.

jtxt1 hour ago

Cool project and results! https://vantezzen.github.io/miniflags/