mirror of
https://github.com/webmproject/libwebp.git
synced 2025-02-13 15:32:53 +01:00
Change the rule of picking UV mode in MBAnalyzeBestUVMode()
Pick the mode with the smallest alpha. It only affects m0, in which case the mode decision is not re-examined later in VP8Decimate(). Tests on some natural content png images show PSNR increase as well as visual quality improvement. Change-Id: Iea997e718cd7477160fa05eb7cfb35f4cec2fa9a (cherry picked from commit 1377ac2ec1cb81e4a74fa6294ff30a9e4cc584aa)
This commit is contained in:
parent
9c75dbd39c
commit
532215dd29
@ -307,6 +307,7 @@ static int MBAnalyzeBestIntra4Mode(VP8EncIterator* const it,
|
||||
|
||||
static int MBAnalyzeBestUVMode(VP8EncIterator* const it) {
|
||||
int best_alpha = DEFAULT_ALPHA;
|
||||
int smallest_alpha = 0;
|
||||
int best_mode = 0;
|
||||
const int max_mode = MAX_UV_MODE;
|
||||
int mode;
|
||||
@ -322,6 +323,10 @@ static int MBAnalyzeBestUVMode(VP8EncIterator* const it) {
|
||||
alpha = GetAlpha(&histo);
|
||||
if (IS_BETTER_ALPHA(alpha, best_alpha)) {
|
||||
best_alpha = alpha;
|
||||
}
|
||||
// The best prediction mode tends to be the one with the smallest alpha.
|
||||
if (mode == 0 || alpha < smallest_alpha) {
|
||||
smallest_alpha = alpha;
|
||||
best_mode = mode;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user