From 74451cf14ecf032f33d830cf5483690811f676df Mon Sep 17 00:00:00 2001 From: Marko Viitanen Date: Mon, 1 Jul 2024 11:06:10 +0300 Subject: [PATCH] Add CCLM, Dual-tree, JCCR, MIP, MRL, MTS and Dep-quant to the presets - Only enabled in veryslow and placebo --- README.md | 10 ++++++-- src/cfg.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c5c10388..9ea340d9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Join channel [#ultravideo](https://web.libera.chat/#ultravideo) in [Libera.Chat] uvg266 is still under development. Speed and RD-quality will continue to improve. -http://ultravideo.fi/#encoder for more information. +https://ultravideo.fi/uvg266.html for more information. - Linux [![uvg266_tests](https://github.com/ultravideo/uvg266/actions/workflows/uvg266.yml/badge.svg)](https://github.com/ultravideo/uvg266/actions/workflows/uvg266.yml) - Windows [![Build status](https://ci.appveyor.com/api/projects/status/c1gwnnkyt5lycqka?svg=true)](https://ci.appveyor.com/project/Ultravideo/uvg266) @@ -447,7 +447,13 @@ where the names have been abbreviated to fit the layout in GitHub. | early-skip | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | | fast-residual-cost | 28 | 28 | 28 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | max-merge | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | - +| cclm | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | +| dual-tree | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | +| jccr | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | +| mip | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | +| mrl | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | +| mts | off | off | off | off | off | off | off | off | both | both | +| dep-quant | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | ## uvg266 library See [uvg266.h](src/uvg266.h) for the library API and its diff --git a/src/cfg.c b/src/cfg.c index bf9e1307..5dfe3a83 100644 --- a/src/cfg.c +++ b/src/cfg.c @@ -596,7 +596,7 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) static const char * const file_format_names[] = {"auto", "y4m", "yuv", NULL}; - static const char * const preset_values[11][25*2] = { + static const char * const preset_values[11][32*2] = { { "ultrafast", "rd", "0", @@ -621,6 +621,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "28", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -647,6 +654,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "28", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -673,6 +687,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "28", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -699,6 +720,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -725,6 +753,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -751,6 +786,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -777,6 +819,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -803,6 +852,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "0", + "dual-tree", "0", + "jccr", "0", + "mip", "0", + "mrl", "0", + "mts", "off", + "dep-quant", "0", NULL }, { @@ -829,6 +885,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "1", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "1", + "dual-tree", "1", + "jccr", "1", + "mip", "1", + "mrl", "1", + "mts", "both", + "dep-quant", "1", NULL }, { @@ -855,6 +918,13 @@ int uvg_config_parse(uvg_config *cfg, const char *name, const char *value) "early-skip", "0", "fast-residual-cost", "0", "max-merge", "6", + "cclm", "1", + "dual-tree", "1", + "jccr", "1", + "mip", "1", + "mrl", "1", + "mts", "both", + "dep-quant", "1", NULL }, { NULL }