2.7.3.1 Conceptual Overview of RLE Entries and Bit-Packing Entries

The following bit diagram shows a sequence of RLE entries and bit-packing entries as described in section 2.7.3. This conceptual overview is long to clearly show the pattern of negative offset values used in the bit-packing entries. The sequence includes several RLE entries and an occasional bit-packing entry.

As mentioned in section 2.7.3, any mix of RLE entries and bit-packing entries can exist. So in this conceptual overview, the number of RLE entries and the number of bit-packing entries is arbitrary. The count of values that is shown in each bit-packing entry can also be larger or smaller than that shown in this example. The count of values that is shown for an RLE entry MUST be greater than or equal to the required minimum of 64.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

RLE_Entry_value

RLE_Entry_repeat_count

RLE_Entry_value

RLE_Entry_repeat_count

RLE_Entry_value

RLE_Entry_repeat_count

Bit_Packing_Entry_offset

Bit_Packing_Entry_count

RLE_Entry_value

RLE_Entry_repeat_count

RLE_Entry_value

RLE_Entry_repeat_count

Bit_Packing_Entry_offset

Bit_Packing_Entry_count

RLE_Entry_value

RLE_Entry_repeat_count

Bit_Packing_Entry_offset

Bit_Packing_Entry_count

RLE_Entry_value

RLE_Entry_repeat_count

RLE_Entry_value

RLE_Entry_repeat_count

Bit_Packing_Entry_offset

Bit_Packing_Entry_count

padding (variable)

...

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

Bit_Packing_Entry_offset (4 bytes): The offset into the subsegment. This offset is –1. Note that the first offset equals the first data value in the subsegment.

Bit_Packing_Entry_count (4 bytes): The number of values that will be using the subsegment bit-packing algorithm. This count is 5.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

Bit_Packing_Entry_offset (4 bytes): The offset into the subsegment. This offset is –6. Note that –6 = –1 – 5 (the values from the previous bit-packing entry).

Bit_Packing_Entry_count (4 bytes): The number of values that will be using the subsegment bit-packing algorithm. This count is 20.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

Bit_Packing_Entry_offset (4 bytes): The offset into the subsegment. This offset is –26. Note that –26 = –6 – 20 (the values from the previous bit-packing entry).

Bit_Packing_Entry_count (4 bytes): The number of values that will be using the subsegment bit-packing algorithm. This count is 10.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

RLE_Entry_value (4 bytes): A value compressed with RLE.

RLE_Entry_repeat_count (4 bytes): The number of times that the preceding value appears sequentially in this RLE run.

Bit_Packing_Entry_offset (4 bytes): The offset into the subsegment. This offset is –36. Note that –36 = –26 – 10 (the values from the previous bit-packing entry).

Bit_Packing_Entry_count (4 bytes): The number of values that will be using the subsegment bit-packing algorithm. This count is 2.

padding (variable): The padding, which is unused but MUST be filled with zeros. The size, in bytes, is a multiple of 4.