spec : clarify last literal copy command

This commit is contained in:
Yann Collet 2016-08-21 00:24:18 +02:00
parent 8baf78a291
commit 70c2326bf1

View File

@ -443,7 +443,7 @@ using little-endian convention.
In this representation, bits on the left are smallest bits. In this representation, bits on the left are smallest bits.
__`Literals_Block_Type`__ __`Literals_Block_Type`__
This field uses 2 lowest bits of first byte, describing 4 different block types : This field uses 2 lowest bits of first byte, describing 4 different block types :
@ -460,7 +460,7 @@ This field uses 2 lowest bits of first byte, describing 4 different block types
using Huffman tree _from previous Huffman-compressed literals block_. using Huffman tree _from previous Huffman-compressed literals block_.
Huffman tree description will be skipped. Huffman tree description will be skipped.
__`Size_Format`__ __`Size_Format`__
`Size_Format` is divided into 2 families : `Size_Format` is divided into 2 families :
@ -697,8 +697,13 @@ A match copy command specifies an offset and a length.
The offset gives the position to copy from, The offset gives the position to copy from,
which can be within a previous block. which can be within a previous block.
There are 3 symbol types, literals lengths, offsets and match lengths, When all _sequences_ are decoded,
which are encoded together, interleaved in a single _bitstream_. if there is any literal left in the _literal section_,
these bytes are added at the end of the block.
The _Sequences_Section_ regroup all symbols required to decode commands.
There are 3 symbol types : literals lengths, offsets and match lengths.
They are encoded together, interleaved, in a single _bitstream_.
Each symbol is a _code_ in its own context, Each symbol is a _code_ in its own context,
which specifies a baseline and a number of bits to add. which specifies a baseline and a number of bits to add.
@ -905,8 +910,8 @@ since it will be discovered and reported by the decoding process.
The bitstream starts by reporting on which scale it operates. The bitstream starts by reporting on which scale it operates.
`Accuracy_Log = low4bits + 5`. `Accuracy_Log = low4bits + 5`.
Note that maximum `Accuracy_Log` for literal and match length is `9`, Note that maximum `Accuracy_Log` for literal and match lengths is `9`,
and for offsets it is `8`. Higher values are considered errors. and for offsets is `8`. Higher values are considered errors.
Then follow each symbol value, from `0` to last present one. Then follow each symbol value, from `0` to last present one.
The number of bits used by each field is variable. The number of bits used by each field is variable.
@ -1128,8 +1133,8 @@ _Reserved ranges :_
However, for public distribution of compressed frames, However, for public distribution of compressed frames,
the following ranges are reserved for future use and should not be used : the following ranges are reserved for future use and should not be used :
- low range : 1 - 32767 - low range : 1 - 32767
- high range : >= (2^31) - high range : >= (2^31)
__`Entropy_Tables`__ : following the same format as a [compressed blocks]. __`Entropy_Tables`__ : following the same format as a [compressed blocks].
They are stored in following order : They are stored in following order :