Bit bestellen in Bit Streams
Frage
Gibt es eine bevorzugte Reihenfolge für die Bits in einem Bitstrom (wo ein Bitstrom etwas analog zu Javas Eingang/Ausgangsstream ist, aber Bit-Level-Granularität bietet)?
Ich habe gelesen, dass die Ausgabe der Huffman-Stufe des Deflate-Algorithmus das am wenigsten signifikante Bit (LSB) eines Bytes vor dem "Vor" das am wichtigste Bit (MSB) zum Zwecke der Codierung von Nicht-Byte-Bit (MSB) betrachtet ausgerichtete Werte. Gibt es einen Grund für die Auswahl der LSB-to-MSB-Bestellung im Gegensatz zur MSB-to-LSB-Bestellung? Ermöglicht dies beispielsweise irgendwie einen etwas einfacheren / schnelleren Dekodierungscode (oder Codierungscode)?
Ich gehe davon aus, dass eine "InputBitstream" -Klasse in Java einige grundlegende Operationen liefern würde:
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) {...}
}
Entleerungsbitverpackung:http://www.gzip.org/zlib/rfc-deflate.html#packing
Lösung
Nein, es gibt keine Standardreihenfolge. Es variiert je nach der fraglichen Schnittstelle.