Javadoc
We look which row encoding is the "best" one, ie. has the lowest sum. We don't implement
anything fancier to choose the right row encoding. This is just the recommend algorithm
in the spec. The get the perfect encoding you would need to do a brute force check how
all the different encoded rows compress in the zip stream together. You have would have
to check 5*image-height permutations...