aboutsummaryrefslogtreecommitdiff
path: root/cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'cache.c')
-rw-r--r--cache.c52
1 files changed, 27 insertions, 25 deletions
diff --git a/cache.c b/cache.c
index cbc112b..88a49ac 100644
--- a/cache.c
+++ b/cache.c
@@ -23,40 +23,41 @@ Author: jyrki.alakuijala@gmail.com (Jyrki Alakuijala)
#include <stdio.h>
#include <stdlib.h>
-#ifdef USE_LONGEST_MATCH_CACHE
+#ifdef ZOPFLI_LONGEST_MATCH_CACHE
-void InitLongestMatchCache(size_t blocksize, LongestMatchCache* lmc) {
+void ZopfliInitCache(size_t blocksize, ZopfliLongestMatchCache* lmc) {
size_t i;
lmc->length = (unsigned short*)malloc(sizeof(unsigned short) * blocksize);
lmc->dist = (unsigned short*)malloc(sizeof(unsigned short) * blocksize);
/* Rather large amount of memory. */
- lmc->sublen = (unsigned char*)malloc(NUM_CACHED_LENGTHS * 3 * blocksize);
+ lmc->sublen = (unsigned char*)malloc(ZOPFLI_CACHE_LENGTH * 3 * blocksize);
/* length > 0 and dist 0 is invalid combination, which indicates on purpose
that this cache value is not filled in yet. */
for (i = 0; i < blocksize; i++) lmc->length[i] = 1;
for (i = 0; i < blocksize; i++) lmc->dist[i] = 0;
- for (i = 0; i < NUM_CACHED_LENGTHS * blocksize * 3; i++) lmc->sublen[i] = 0;
+ for (i = 0; i < ZOPFLI_CACHE_LENGTH * blocksize * 3; i++) lmc->sublen[i] = 0;
}
-void CleanLongestMatchCache(LongestMatchCache* lmc) {
+void ZopfliCleanCache(ZopfliLongestMatchCache* lmc) {
free(lmc->length);
free(lmc->dist);
free(lmc->sublen);
}
-void SublenToCache(const unsigned short* sublen, size_t pos, size_t length,
- LongestMatchCache* lmc) {
+void ZopfliSublenToCache(const unsigned short* sublen,
+ size_t pos, size_t length,
+ ZopfliLongestMatchCache* lmc) {
size_t i;
size_t j = 0;
unsigned bestlength = 0;
unsigned char* cache;
-#if NUM_CACHED_LENGTHS == 0
+#if ZOPFLI_CACHE_LENGTH == 0
return;
#endif
- cache = &lmc->sublen[NUM_CACHED_LENGTHS * pos * 3];
+ cache = &lmc->sublen[ZOPFLI_CACHE_LENGTH * pos * 3];
if (length < 3) return;
for (i = 3; i <= length; i++) {
if (i == length || sublen[i] != sublen[i + 1]) {
@@ -65,30 +66,31 @@ void SublenToCache(const unsigned short* sublen, size_t pos, size_t length,
cache[j * 3 + 2] = (sublen[i] >> 8) % 256;
bestlength = i;
j++;
- if (j >= NUM_CACHED_LENGTHS) break;
+ if (j >= ZOPFLI_CACHE_LENGTH) break;
}
}
- if (j < NUM_CACHED_LENGTHS) {
+ if (j < ZOPFLI_CACHE_LENGTH) {
assert(bestlength == length);
- cache[(NUM_CACHED_LENGTHS - 1) * 3] = bestlength - 3;
+ cache[(ZOPFLI_CACHE_LENGTH - 1) * 3] = bestlength - 3;
} else {
assert(bestlength <= length);
}
- assert(bestlength == MaxCachedSublen(lmc, pos, length));
+ assert(bestlength == ZopfliMaxCachedSublen(lmc, pos, length));
}
-void CacheToSublen(const LongestMatchCache* lmc, size_t pos, size_t length,
- unsigned short* sublen) {
+void ZopfliCacheToSublen(const ZopfliLongestMatchCache* lmc,
+ size_t pos, size_t length,
+ unsigned short* sublen) {
size_t i, j;
- unsigned maxlength = MaxCachedSublen(lmc, pos, length);
+ unsigned maxlength = ZopfliMaxCachedSublen(lmc, pos, length);
unsigned prevlength = 0;
unsigned char* cache;
-#if NUM_CACHED_LENGTHS == 0
+#if ZOPFLI_CACHE_LENGTH == 0
return;
#endif
if (length < 3) return;
- cache = &lmc->sublen[NUM_CACHED_LENGTHS * pos * 3];
- for (j = 0; j < NUM_CACHED_LENGTHS; j++) {
+ cache = &lmc->sublen[ZOPFLI_CACHE_LENGTH * pos * 3];
+ for (j = 0; j < ZOPFLI_CACHE_LENGTH; j++) {
unsigned length = cache[j * 3] + 3;
unsigned dist = cache[j * 3 + 1] + 256 * cache[j * 3 + 2];
for (i = prevlength; i <= length; i++) {
@@ -102,16 +104,16 @@ void CacheToSublen(const LongestMatchCache* lmc, size_t pos, size_t length,
/*
Returns the length up to which could be stored in the cache.
*/
-unsigned MaxCachedSublen(const LongestMatchCache* lmc,
- size_t pos, size_t length) {
+unsigned ZopfliMaxCachedSublen(const ZopfliLongestMatchCache* lmc,
+ size_t pos, size_t length) {
unsigned char* cache;
-#if NUM_CACHED_LENGTHS == 0
+#if ZOPFLI_CACHE_LENGTH == 0
return 0;
#endif
- cache = &lmc->sublen[NUM_CACHED_LENGTHS * pos * 3];
+ cache = &lmc->sublen[ZOPFLI_CACHE_LENGTH * pos * 3];
(void)length;
if (cache[1] == 0 && cache[2] == 0) return 0; /* No sublen cached. */
- return cache[(NUM_CACHED_LENGTHS - 1) * 3] + 3;
+ return cache[(ZOPFLI_CACHE_LENGTH - 1) * 3] + 3;
}
-#endif /* USE_LONGEST_MATCH_CACHE */
+#endif /* ZOPFLI_LONGEST_MATCH_CACHE */