Comprimir caracteres ASCII

Necesito comprimir los caracteres ASCII del 32 (deciaml) al 95 (decimal), alguien conoce algún método para lograrlo?, hasta el momento solo he encontrado el Packed-ASCII si me pudieran ayudar con otro estaría muy bien, el método Huffman no me funciona porque se van a enviar muchos caracteres al azar.
 
Sólo se me ocurre que pongas ASCII de 7 bits y con el séptimo, cada siete metas otro.
 
Siguiendo con tu idea Scooter, como son 64 valores distintos que tiene que enviar, podria usar seis bits por caracter. O sea, en seis bytes podria enviar ocho caracteres. El caracter codificado es el ascii original-32, o sea numeros de 0 a 63, que entran en seis bits.
 
Si, bueno, si con 6 bits le vale y luego suma un offset.

Habría que saber como es la trama y estudiarla.
En ocasiones se pueden mandar los números en binario en lugar de en asccii. Eso ahorra muchísimo: 10000 serían dos bytes en lugar de cinco
 
De hecho el método que encontré (Packed-ASCII) lo que hace es recortar los dos bits más significativos para codificar y así puedes enviar 4 caracteres (4x8=32bits) en 3 caracteres (4x6=24bits) y para decodificar solo agregas en el 6 bit el complemento del 5 bit y en el 7 bit un cero por default, voy analizar lo de enviar el número en binario porque estaría enviando números con punto decimal.
 
Si es coma fija es fácil, y si es coma flotante es un poco más lioso pero se puede enviar en binario. Normalmente con 5 o 6 bytes se puede expresar cualquier número que se te ocurra con suficiente precisión; las calculadoras suelen operar con 5 y las muy buenas con 6.
 
Atrás
Arriba