I am trying to understand the layout of the RGB buffers sent to the fl2k over USB. From lines 755-820 in libosmo-fl2k.c I can see the RGB buffers are "serialized" in this order:

g1,r1,b2,g2,b0,g0,r0,b1,b4,g4,r4,b5,r2,b3,g3,r3,r6,b7,g7,r7,g5,r5,b6,g6

(where r0 is the red component of first pixel, b3 is the blue component of fourth pixel, etc)

What is this layout? Why does the chip expect the pixels to be sent in this order?