changed seqDef.matchLength into seqDef.mlBase
since this is effectively what is stored in this field (== matchLength - MINMATCH). This makes it clearer what needs to be done when reading from / writing to this field.
This commit is contained in:
parent
b77fcac61f
commit
e145b58cfd
@ -285,9 +285,9 @@ typedef enum {
|
|||||||
* Private declarations
|
* Private declarations
|
||||||
*********************************************/
|
*********************************************/
|
||||||
typedef struct seqDef_s {
|
typedef struct seqDef_s {
|
||||||
U32 offset; /* offset == rawOffset + ZSTD_REP_NUM, or equivalently, offCode + 1 */
|
U32 offset; /* offset == rawOffset + ZSTD_REP_NUM, or equivalently, offCode + 1 */
|
||||||
U16 litLength;
|
U16 litLength;
|
||||||
U16 matchLength;
|
U16 mlBase; /* mlBase == matchLength - MINMATCH */
|
||||||
} seqDef;
|
} seqDef;
|
||||||
|
|
||||||
/* Controls whether seqStore has a single "long" litLength or matchLength. See seqStore_t. */
|
/* Controls whether seqStore has a single "long" litLength or matchLength. See seqStore_t. */
|
||||||
@ -329,7 +329,7 @@ MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const* seqStore
|
|||||||
{
|
{
|
||||||
ZSTD_sequenceLength seqLen;
|
ZSTD_sequenceLength seqLen;
|
||||||
seqLen.litLength = seq->litLength;
|
seqLen.litLength = seq->litLength;
|
||||||
seqLen.matchLength = seq->matchLength + MINMATCH;
|
seqLen.matchLength = seq->mlBase + MINMATCH;
|
||||||
if (seqStore->longLengthPos == (U32)(seq - seqStore->sequencesStart)) {
|
if (seqStore->longLengthPos == (U32)(seq - seqStore->sequencesStart)) {
|
||||||
if (seqStore->longLengthType == ZSTD_llt_literalLength) {
|
if (seqStore->longLengthType == ZSTD_llt_literalLength) {
|
||||||
seqLen.litLength += 0xFFFF;
|
seqLen.litLength += 0xFFFF;
|
||||||
|
@ -2396,7 +2396,7 @@ void ZSTD_seqToCodes(const seqStore_t* seqStorePtr)
|
|||||||
assert(nbSeq <= seqStorePtr->maxNbSeq);
|
assert(nbSeq <= seqStorePtr->maxNbSeq);
|
||||||
for (u=0; u<nbSeq; u++) {
|
for (u=0; u<nbSeq; u++) {
|
||||||
U32 const llv = sequences[u].litLength;
|
U32 const llv = sequences[u].litLength;
|
||||||
U32 const mlv = sequences[u].matchLength;
|
U32 const mlv = sequences[u].mlBase;
|
||||||
llCodeTable[u] = (BYTE)ZSTD_LLcode(llv);
|
llCodeTable[u] = (BYTE)ZSTD_LLcode(llv);
|
||||||
ofCodeTable[u] = (BYTE)ZSTD_highbit32(sequences[u].offset);
|
ofCodeTable[u] = (BYTE)ZSTD_highbit32(sequences[u].offset);
|
||||||
mlCodeTable[u] = (BYTE)ZSTD_MLcode(mlv);
|
mlCodeTable[u] = (BYTE)ZSTD_MLcode(mlv);
|
||||||
@ -2912,7 +2912,7 @@ static void ZSTD_copyBlockSequences(ZSTD_CCtx* zc)
|
|||||||
for (i = 0; i < seqStoreSeqSize; ++i) {
|
for (i = 0; i < seqStoreSeqSize; ++i) {
|
||||||
U32 rawOffset = seqStoreSeqs[i].offset - ZSTD_REP_NUM;
|
U32 rawOffset = seqStoreSeqs[i].offset - ZSTD_REP_NUM;
|
||||||
outSeqs[i].litLength = seqStoreSeqs[i].litLength;
|
outSeqs[i].litLength = seqStoreSeqs[i].litLength;
|
||||||
outSeqs[i].matchLength = seqStoreSeqs[i].matchLength + MINMATCH;
|
outSeqs[i].matchLength = seqStoreSeqs[i].mlBase + MINMATCH;
|
||||||
outSeqs[i].rep = 0;
|
outSeqs[i].rep = 0;
|
||||||
|
|
||||||
if (i == seqStore->longLengthPos) {
|
if (i == seqStore->longLengthPos) {
|
||||||
@ -3385,7 +3385,7 @@ static size_t ZSTD_countSeqStoreMatchBytes(const seqStore_t* const seqStore) {
|
|||||||
size_t i;
|
size_t i;
|
||||||
for (i = 0; i < nbSeqs; ++i) {
|
for (i = 0; i < nbSeqs; ++i) {
|
||||||
seqDef seq = seqStore->sequencesStart[i];
|
seqDef seq = seqStore->sequencesStart[i];
|
||||||
matchBytes += seq.matchLength + MINMATCH;
|
matchBytes += seq.mlBase + MINMATCH;
|
||||||
if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_matchLength) {
|
if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_matchLength) {
|
||||||
matchBytes += 0x10000;
|
matchBytes += 0x10000;
|
||||||
}
|
}
|
||||||
|
@ -657,7 +657,7 @@ void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* litera
|
|||||||
seqStorePtr->longLengthType = ZSTD_llt_matchLength;
|
seqStorePtr->longLengthType = ZSTD_llt_matchLength;
|
||||||
seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart);
|
seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart);
|
||||||
}
|
}
|
||||||
seqStorePtr->sequences[0].matchLength = (U16)mlBase;
|
seqStorePtr->sequences[0].mlBase = (U16)mlBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
seqStorePtr->sequences++;
|
seqStorePtr->sequences++;
|
||||||
|
@ -313,7 +313,7 @@ ZSTD_encodeSequences_body(
|
|||||||
FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]);
|
FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]);
|
||||||
BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]);
|
BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]);
|
||||||
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
||||||
BIT_addBits(&blockStream, sequences[nbSeq-1].matchLength, ML_bits[mlCodeTable[nbSeq-1]]);
|
BIT_addBits(&blockStream, sequences[nbSeq-1].mlBase, ML_bits[mlCodeTable[nbSeq-1]]);
|
||||||
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
||||||
if (longOffsets) {
|
if (longOffsets) {
|
||||||
U32 const ofBits = ofCodeTable[nbSeq-1];
|
U32 const ofBits = ofCodeTable[nbSeq-1];
|
||||||
@ -339,7 +339,7 @@ ZSTD_encodeSequences_body(
|
|||||||
U32 const mlBits = ML_bits[mlCode];
|
U32 const mlBits = ML_bits[mlCode];
|
||||||
DEBUGLOG(6, "encoding: litlen:%2u - matchlen:%2u - offCode:%7u",
|
DEBUGLOG(6, "encoding: litlen:%2u - matchlen:%2u - offCode:%7u",
|
||||||
(unsigned)sequences[n].litLength,
|
(unsigned)sequences[n].litLength,
|
||||||
(unsigned)sequences[n].matchLength + MINMATCH,
|
(unsigned)sequences[n].mlBase + MINMATCH,
|
||||||
(unsigned)sequences[n].offset);
|
(unsigned)sequences[n].offset);
|
||||||
/* 32b*/ /* 64b*/
|
/* 32b*/ /* 64b*/
|
||||||
/* (7)*/ /* (7)*/
|
/* (7)*/ /* (7)*/
|
||||||
@ -351,7 +351,7 @@ ZSTD_encodeSequences_body(
|
|||||||
BIT_flushBits(&blockStream); /* (7)*/
|
BIT_flushBits(&blockStream); /* (7)*/
|
||||||
BIT_addBits(&blockStream, sequences[n].litLength, llBits);
|
BIT_addBits(&blockStream, sequences[n].litLength, llBits);
|
||||||
if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream);
|
if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream);
|
||||||
BIT_addBits(&blockStream, sequences[n].matchLength, mlBits);
|
BIT_addBits(&blockStream, sequences[n].mlBase, mlBits);
|
||||||
if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream);
|
if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream);
|
||||||
if (longOffsets) {
|
if (longOffsets) {
|
||||||
unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1);
|
unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1);
|
||||||
|
@ -949,7 +949,7 @@ static size_t writeSequences(U32* seed, frame_t* frame, seqStore_t* seqStorePtr,
|
|||||||
FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]);
|
FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]);
|
||||||
BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]);
|
BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]);
|
||||||
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
||||||
BIT_addBits(&blockStream, sequences[nbSeq-1].matchLength, ML_bits[mlCodeTable[nbSeq-1]]);
|
BIT_addBits(&blockStream, sequences[nbSeq-1].mlBase, ML_bits[mlCodeTable[nbSeq-1]]);
|
||||||
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
if (MEM_32bits()) BIT_flushBits(&blockStream);
|
||||||
BIT_addBits(&blockStream, sequences[nbSeq-1].offset, ofCodeTable[nbSeq-1]);
|
BIT_addBits(&blockStream, sequences[nbSeq-1].offset, ofCodeTable[nbSeq-1]);
|
||||||
BIT_flushBits(&blockStream);
|
BIT_flushBits(&blockStream);
|
||||||
@ -971,7 +971,7 @@ static size_t writeSequences(U32* seed, frame_t* frame, seqStore_t* seqStorePtr,
|
|||||||
BIT_flushBits(&blockStream); /* (7)*/
|
BIT_flushBits(&blockStream); /* (7)*/
|
||||||
BIT_addBits(&blockStream, sequences[n].litLength, llBits);
|
BIT_addBits(&blockStream, sequences[n].litLength, llBits);
|
||||||
if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream);
|
if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream);
|
||||||
BIT_addBits(&blockStream, sequences[n].matchLength, mlBits);
|
BIT_addBits(&blockStream, sequences[n].mlBase, mlBits);
|
||||||
if (MEM_32bits()) BIT_flushBits(&blockStream); /* (7)*/
|
if (MEM_32bits()) BIT_flushBits(&blockStream); /* (7)*/
|
||||||
BIT_addBits(&blockStream, sequences[n].offset, ofBits); /* 31 */
|
BIT_addBits(&blockStream, sequences[n].offset, ofBits); /* 31 */
|
||||||
BIT_flushBits(&blockStream); /* (7)*/
|
BIT_flushBits(&blockStream); /* (7)*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user