Domanda
C'è un ordine preferito per i bit in un flusso di bit (in cui un flusso di bit è in qualche modo analogo a Java Input / OutputStream, ma fornisce a livello di bit di granularità)?
Ho letto che l'uscita dello stadio di Huffman dell'algoritmo DEFLATE considera il bit meno significativo (LSB) di un byte a venire "prima" il bit più significativo (MSB), ai fini della non codifica valori -byte allineati. C'è una ragione per la scelta di ordinazione lsb-to-MSB al contrario di MSB-to-LSB ordinazione? Per esempio, fa questo in qualche modo consentire / decodifica più veloce (o codifica) Codice leggermente più semplice?
Suppongo che una classe "InputBitStream" in Java avrebbe fornito alcune operazioni di base:
class InputBitStream {
// Optimized for reading a SINGLE bit.
public int readSingleBit() {...}
// Optimized for reading large segments of bits,
// not just readSingleBit() -> put in result -> repeat,
// but if possible, shifting in a byte at a time.
public int readMultipleBits(int count) {...}
}
DEFLATE bit imballaggio: http://www.gzip.org/zlib/rfc-deflate.html#packing
Soluzione
No, non c'è nessun ordine standard. Esso varia a seconda l'interfaccia in questione.