These are my steps:
1. Extract the IDAT chunk
2. Decompress the IDAT chunk (now I have the filter values, not the RGB values)
3. For every filter row:
3.1. Use Burrows Wheeler Transform (does not change the string length)
3.2. Use Move to front encoder (does not change the string length)
4. compress the rows
5. write back the IDAT chunk to the PNG
So the generation of the PNG works but it is always bigger.
I think I have an error in reasoning. Can someone help me and explain it?