mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-13 14:34:33 +02:00
rebalance method tools (-m) for methods [0..4]
(methods 5 and 6 are still untouched). Methods #0 and #1 got much faster Method #2 gets vastly improved in quality Method #3 is noticeably faster for little lower quality Method #4 (default) is 10-20% faster for comparable quality + update the internal doc about the methods' tools. Example of speed difference: Time to encode picture: Method | Before | After -m 0 | 1.272s | 0.517s -m 1 | 1.295s | 0.623s -m 2 | 2.217s | 0.834s -m 3 | 2.816s | 2.243s -m 4 | 3.235s | 3.014s -m 5 | 3.668s | 3.654s -m 6 | 8.296s | 8.235s Change-Id: Ic41fda5de65066b3a6586cb8ae1ebb0206d47fe0
This commit is contained in:
@ -93,22 +93,26 @@ static void ResetBoundaryPredictions(VP8Encoder* const enc) {
|
||||
enc->nz_[-1] = 0; // constant
|
||||
}
|
||||
|
||||
// Map configured quality level to coding tools used.
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// Quality | 0 | 1 | 2 | 3 | 4 | 5 +
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// dynamic prob| ~ | x | x | x | x | x |
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// rd-opt modes| | | x | x | x | x |
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// fast i4/i16 | x | x | | | | |
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// rd-opt i4/16| | | x | x | x | x |
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// Trellis | | x | | | x | x |
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// full-SNS | | | | | | x |
|
||||
//-------------+---+---+---+---+---+---+
|
||||
// Mapping from config->method_ to coding tools used.
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// Method | 0 | 1 | 2 | 3 |(4)| 5 | 6 |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// fast probe | x | | | x | | | |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// dynamic proba | ~ | x | x | x | x | x | x |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// fast mode analysis| | | | | x | x | x |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// basic rd-opt | | | | x | x | x | x |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// disto-score i4/16 | | | x | | | | |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// rd-opt i4/16 | | | ~ | x | x | x | x |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// Trellis | | | | | | x |Ful|
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
// full-SNS | | | | | x | x | x |
|
||||
//-------------------+---+---+---+---+---+---+---+
|
||||
|
||||
static void MapConfigToTools(VP8Encoder* const enc) {
|
||||
const int method = enc->config_->method;
|
||||
|
Reference in New Issue
Block a user