Depending on how fast you need to read/write you may get away with a winzip type compression, (not the winzip part) for example your data is 8 bit ,but it only sends 16 different instrusctions, so then you can convert that in to a 4bit value, ie 1= 111111111111, 2=101010101010...ect.... (winzip part) a winzip compression would take those values and group patterns, so data= 0,1,0,1,0,1 ,1,1,1,1 ,0,1,0,1,0,1 would create a table of A=0,1,0,1,0,1 B=1,1,1,1 and the compression data would be ABA.