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

È stato utile?

Soluzione

No, non c'è nessun ordine standard. Esso varia a seconda l'interfaccia in questione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top