【发布时间】:2011-01-23 19:37:20
【问题描述】:
比特流中的比特是否有优先顺序(比特流有点类似于 Java 的 Input/OutputStream,但提供比特级粒度)?
我读过 DEFLATE 算法的霍夫曼阶段的输出认为字节的最低有效位 (lsb) 位于最高有效位 (msb) 之前,以便编码非-字节对齐的值。是否有理由选择 lsb-to-msb 排序而不是 msb-to-lsb 排序?例如,这是否允许稍微更简单/更快的解码(或编码)代码?
我假设 Java 中的“InputBitStream”类会提供一些基本操作:
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 位包装: http://www.gzip.org/zlib/rfc-deflate.html#packing
【问题讨论】: