mirror of
https://github.com/google/brotli.git
synced 2024-11-08 21:30:04 +00:00
Merge branch 'master' into macos-relocatable
This commit is contained in:
commit
8b0e23084c
@ -271,18 +271,18 @@ static void ChooseContextMap(int quality,
|
|||||||
uint32_t two_prefix_histo[6] = { 0 };
|
uint32_t two_prefix_histo[6] = { 0 };
|
||||||
size_t total;
|
size_t total;
|
||||||
size_t i;
|
size_t i;
|
||||||
size_t dummy;
|
size_t sink;
|
||||||
double entropy[4];
|
double entropy[4];
|
||||||
for (i = 0; i < 9; ++i) {
|
for (i = 0; i < 9; ++i) {
|
||||||
monogram_histo[i % 3] += bigram_histo[i];
|
monogram_histo[i % 3] += bigram_histo[i];
|
||||||
two_prefix_histo[i % 6] += bigram_histo[i];
|
two_prefix_histo[i % 6] += bigram_histo[i];
|
||||||
}
|
}
|
||||||
entropy[1] = ShannonEntropy(monogram_histo, 3, &dummy);
|
entropy[1] = ShannonEntropy(monogram_histo, 3, &sink);
|
||||||
entropy[2] = (ShannonEntropy(two_prefix_histo, 3, &dummy) +
|
entropy[2] = (ShannonEntropy(two_prefix_histo, 3, &sink) +
|
||||||
ShannonEntropy(two_prefix_histo + 3, 3, &dummy));
|
ShannonEntropy(two_prefix_histo + 3, 3, &sink));
|
||||||
entropy[3] = 0;
|
entropy[3] = 0;
|
||||||
for (i = 0; i < 3; ++i) {
|
for (i = 0; i < 3; ++i) {
|
||||||
entropy[3] += ShannonEntropy(bigram_histo + 3 * i, 3, &dummy);
|
entropy[3] += ShannonEntropy(bigram_histo + 3 * i, 3, &sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
total = monogram_histo[0] + monogram_histo[1] + monogram_histo[2];
|
total = monogram_histo[0] + monogram_histo[1] + monogram_histo[2];
|
||||||
@ -348,7 +348,7 @@ static BROTLI_BOOL ShouldUseComplexStaticContextMap(const uint8_t* input,
|
|||||||
uint32_t* BROTLI_RESTRICT const context_histo = arena + 32;
|
uint32_t* BROTLI_RESTRICT const context_histo = arena + 32;
|
||||||
uint32_t total = 0;
|
uint32_t total = 0;
|
||||||
double entropy[3];
|
double entropy[3];
|
||||||
size_t dummy;
|
size_t sink;
|
||||||
size_t i;
|
size_t i;
|
||||||
ContextLut utf8_lut = BROTLI_CONTEXT_LUT(CONTEXT_UTF8);
|
ContextLut utf8_lut = BROTLI_CONTEXT_LUT(CONTEXT_UTF8);
|
||||||
memset(arena, 0, sizeof(arena[0]) * 32 * 14);
|
memset(arena, 0, sizeof(arena[0]) * 32 * 14);
|
||||||
@ -370,10 +370,10 @@ static BROTLI_BOOL ShouldUseComplexStaticContextMap(const uint8_t* input,
|
|||||||
prev1 = literal;
|
prev1 = literal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
entropy[1] = ShannonEntropy(combined_histo, 32, &dummy);
|
entropy[1] = ShannonEntropy(combined_histo, 32, &sink);
|
||||||
entropy[2] = 0;
|
entropy[2] = 0;
|
||||||
for (i = 0; i < 13; ++i) {
|
for (i = 0; i < 13; ++i) {
|
||||||
entropy[2] += ShannonEntropy(context_histo + (i << 5), 32, &dummy);
|
entropy[2] += ShannonEntropy(context_histo + (i << 5), 32, &sink);
|
||||||
}
|
}
|
||||||
entropy[0] = 1.0 / (double)total;
|
entropy[0] = 1.0 / (double)total;
|
||||||
entropy[1] *= entropy[0];
|
entropy[1] *= entropy[0];
|
||||||
@ -817,7 +817,7 @@ static void CopyInputToRingBuffer(BrotliEncoderState* s,
|
|||||||
reading new bytes from the input. However, at the last few indexes of
|
reading new bytes from the input. However, at the last few indexes of
|
||||||
the ring buffer, there are not enough bytes to build full-length
|
the ring buffer, there are not enough bytes to build full-length
|
||||||
substrings from. Since the hash table always contains full-length
|
substrings from. Since the hash table always contains full-length
|
||||||
substrings, we erase with dummy zeros here to make sure that those
|
substrings, we overwrite with zeros here to make sure that those
|
||||||
substrings will contain zeros at the end instead of uninitialized
|
substrings will contain zeros at the end instead of uninitialized
|
||||||
data.
|
data.
|
||||||
|
|
||||||
|
@ -118,8 +118,8 @@ static uint32_t BrotliTrieAlloc(MemoryManager* m, size_t num, BrotliTrie* trie,
|
|||||||
keep_index = (uint32_t)(*keep - trie->pool);
|
keep_index = (uint32_t)(*keep - trie->pool);
|
||||||
}
|
}
|
||||||
if (trie->pool_size == 0) {
|
if (trie->pool_size == 0) {
|
||||||
/* Have a dummy node in the front. We do not want the result to be 0, it
|
/* Have a placeholder node in the front. We do not want the result to be 0,
|
||||||
must be at least 1, 0 represents "null pointer" */
|
it must be at least 1, 0 represents "null pointer" */
|
||||||
trie->pool_size = 1;
|
trie->pool_size = 1;
|
||||||
}
|
}
|
||||||
BROTLI_ENSURE_CAPACITY(m, BrotliTrieNode, trie->pool, trie->pool_capacity,
|
BROTLI_ENSURE_CAPACITY(m, BrotliTrieNode, trie->pool, trie->pool_capacity,
|
||||||
|
@ -2240,7 +2240,7 @@ __test__ = {
|
|||||||
|
|
||||||
'file': """
|
'file': """
|
||||||
>>> try: Layout(BitStream(
|
>>> try: Layout(BitStream(
|
||||||
... open("H:/Downloads/brotli-master/tests/testdata/10x10y.compressed",'rb')
|
... open("./tests/testdata/10x10y.compressed",'rb')
|
||||||
... .read())).processStream()
|
... .read())).processStream()
|
||||||
... except NotImplementedError: pass
|
... except NotImplementedError: pass
|
||||||
addr hex binary context explanation
|
addr hex binary context explanation
|
||||||
|
Loading…
Reference in New Issue
Block a user