mirror of
https://github.com/webmproject/libwebp.git
synced 2025-01-27 07:02:55 +01:00
Improve lossless compression.
This is essentially a revert of a3611513d2bf465fd282d9dc45b3f72c79c232ad and cfbcc5ece022fc74ae9b987e05c2807df0d82ec5. Here is what happened: there was a corruption bug that eventually got fixed by 0174d18d8b51f6c9228c70066a987c30a8132995. But before finding the root, a3611513d2bf465fd282d9dc45b3f72c79c232ad and cfbcc5ece022fc74ae9b987e05c2807df0d82ec5 hid the bug by not imposing length of 1 when it was actually 2 or 3 (which does help compression as a litteral is more efficient than an offset and a length of size 2 or 3). Change-Id: I6f18fc1f583a51ac9d8aab2508458264047cd493
This commit is contained in:
parent
447adbce1e
commit
319e37be13
@ -442,7 +442,7 @@ static int BackwardReferencesLz77(int xsize, int ysize,
|
||||
int len = 0;
|
||||
int j;
|
||||
HashChainFindCopy(hash_chain, i, &offset, &len);
|
||||
if (len > MIN_LENGTH) {
|
||||
if (len > MIN_LENGTH + 1) {
|
||||
const int len_ini = len;
|
||||
int max_reach = 0;
|
||||
assert(i + len < pix_count);
|
||||
@ -464,7 +464,7 @@ static int BackwardReferencesLz77(int xsize, int ysize,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
len = (len == 0) ? 1 : len;
|
||||
len = 1;
|
||||
}
|
||||
// Go with literal or backward reference.
|
||||
assert(len > 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user