- Direct Known Subclasses:
public class FourFlagsIntEncoder
- extends ChunksIntEncoder
ChunksIntEncoder which encodes values in chunks of 4. Every group
starts with a single byte (called indicator) which represents 4 - 2 bit
flags, where the values:
- 1, 2 or 3 mean the encoded value is '1', '2' or '3' respectively.
- 0 means the value is encoded using
VInt8IntEncoder, and the
encoded bytes follow the indicator.
Since value 0 is illegal, and 1-3 are encoded in the indicator, the actual
value that is encoded is
value-4, which saves some more bits.
- Original values: 6, 16, 5, 9, 7, 1, 11
- After sorting: 1, 5, 6, 7, 9, 11, 16
- D-Gap computing: 1, 4, 1, 1, 2, 5 (so far - done by
- Encoding: 1,0,1,1 as the first indicator, followed by 0 (4-4), than
2,0,0,0 as the second indicator, followed by 1 (5-4) encoded with.
- Binary encode: 01 | 01 | 00 | 01 00000000 00 | 00 | 00 | 10
00000001 (indicators are underlined).
NOTE: the order of the values in the indicator is lsb ⇒ msb,
which allows for more efficient decoding.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
|Fields inherited from class org.apache.lucene.util.encoding.IntEncoder
public void encode(int data)
- Small values (<=3) are stored in the
indicator while larger
values are saved for later encoding in the
Vint8 will only encode values larger or equal to 4, the values saves for
encoded are transformed to (value - 4).
When a chunk is ready (got 4 values), the
- Specified by:
encode in class
public IntDecoder createMatchingDecoder()
- Description copied from class:
- Returns an
IntDecoder which matches this encoder. Every encoder
must return an
null is not a valid
value. If an encoder is just a filter, it should at least return its
wrapped encoder's matching decoder.
NOTE: this method should create a new instance of the matching
decoder and leave the instance sharing to the caller. Returning the same
instance over and over is risky because encoders and decoders are not
- Specified by:
createMatchingDecoder in class
public String toString()
toString in class
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.