jonh :
robots :
position-encoding :
bwtiles
Absolute position-encoding with two-level pixels
One of our future-work items was to encode floor patterns in only
two shades of grey, to make it more robust and easier to output.
The diagram below gives the pattern I came up with to solve this
problem. (It's pretty simple, given how long it took to stumble across
it. :v)
Here are the key ideas:
The n*n red border marks the boundary of
one repeating super-cell.
The strip of black bits across the top and left are a control
channel to identify the boundaries of supercells.
The diagonal strip of white bits ensures that no other bit pattern
will result in the accidental formation of an n-bit long sequence
of black bits that could be mistaken for the black boundary control channel.
The black bit at upper right and the white bit at lower right serve
to disambiguate the four rotational symmetries of the pattern. Once we
find the black control channels, the four control bits at the corners will
always be one black and three white.
The remaining spaces can be filled with data bits. In this example,
the 6x6 grid provides space for an 18-bit data channel, which can address
a 512x512-supercell grid. The formula for data bits in an n*n
supercell is:
Supercell width | Data bits (both channels) |
n | n2-3n |
4 | 4 |
5 | 10 |
6 | 18 |
7 | 28 |
8 | 40 |