[cclm] Add commandline argument

This commit is contained in:
Joose Sainio 2021-11-17 11:33:57 +02:00
parent 70f6afff4f
commit 1c431d8f88
5 changed files with 17 additions and 4 deletions

View file

@ -23,7 +23,7 @@ AC_CONFIG_SRCDIR([src/encmain.c])
# #
# Here is a somewhat sane guide to lib versioning: http://apr.apache.org/versioning.html # Here is a somewhat sane guide to lib versioning: http://apr.apache.org/versioning.html
ver_major=6 ver_major=6
ver_minor=6 ver_minor=7
ver_release=0 ver_release=0
# Prevents configure from adding a lot of defines to the CFLAGS # Prevents configure from adding a lot of defines to the CFLAGS

View file

@ -209,6 +209,8 @@ int kvz_config_init(kvz_config *cfg)
cfg->amvr = 0; cfg->amvr = 0;
cfg->cclm = 0;
return 1; return 1;
} }
@ -1486,6 +1488,9 @@ int kvz_config_parse(kvz_config *cfg, const char *name, const char *value)
else if OPT("amvr") { else if OPT("amvr") {
cfg->amvr = (bool)atobool(value); cfg->amvr = (bool)atobool(value);
} }
else if OPT("cclm") {
cfg->cclm = (bool)atobool(value);
}
else { else {
return 0; return 0;
} }

View file

@ -178,6 +178,8 @@ static const struct option long_options[] = {
{ "no-jccr", no_argument, NULL, 0 }, { "no-jccr", no_argument, NULL, 0 },
{ "amvr", no_argument, NULL, 0 }, { "amvr", no_argument, NULL, 0 },
{ "no-amvr", no_argument, NULL, 0 }, { "no-amvr", no_argument, NULL, 0 },
{ "cclm", no_argument, NULL, 0 },
{ "no-cclm", no_argument, NULL, 0 },
{0, 0, 0, 0} {0, 0, 0, 0}
}; };
@ -629,8 +631,12 @@ void print_help(void)
" - both: MTS applied for both intra and inter blocks.\n" " - both: MTS applied for both intra and inter blocks.\n"
" - implicit: uses implicit MTS. Applies DST7 instead \n" " - implicit: uses implicit MTS. Applies DST7 instead \n"
" of DCT2 to certain intra blocks.\n" " of DCT2 to certain intra blocks.\n"
" --(no-)jccr : Joint coding of chroma residual.\n" " --(no-)jccr : Joint coding of chroma residual. "
" Requires rdo> = 2. [disabled]\n" " Requires rdo> = 2. [disabled]\n"
" --(no-)cclm : Cross component linear model. \n"
" Extra chroma prediction modes that are formed\n"
" via linear transformation from the luma\n"
" prediction. Requires rdo >=3. [disabled\n"
" --(no-)amvr : Adaptive Motion Vector Resolution.\n" " --(no-)amvr : Adaptive Motion Vector Resolution.\n"
" Code some mv's with reduced resolution [disabled]\n" " Code some mv's with reduced resolution [disabled]\n"
"\n" "\n"

View file

@ -722,7 +722,7 @@ static void encoder_state_write_bitstream_seq_parameter_set(bitstream_t* stream,
WRITE_U(stream, 0, 1, "sps_mip_enabled_flag"); WRITE_U(stream, 0, 1, "sps_mip_enabled_flag");
// if(!no_cclm_constraint_flag) // if(!no_cclm_constraint_flag)
if(encoder->chroma_format != KVZ_CSP_400) { if(encoder->chroma_format != KVZ_CSP_400) {
WRITE_U(stream, 0, 1, "sps_cclm_enabled_flag"); WRITE_U(stream, encoder->cfg.cclm, 1, "sps_cclm_enabled_flag");
} }
if (encoder->chroma_format == KVZ_CSP_420) { if (encoder->chroma_format == KVZ_CSP_420) {
WRITE_U(stream, 0, 1, "sps_chroma_horizontal_collocated_flag"); WRITE_U(stream, 0, 1, "sps_chroma_horizontal_collocated_flag");

View file

@ -516,6 +516,8 @@ typedef struct kvz_config
int8_t jccr; int8_t jccr;
int8_t cclm;
int8_t amvr; /* \brief Adaptive motion vector resolution parameter */ int8_t amvr; /* \brief Adaptive motion vector resolution parameter */
} kvz_config; } kvz_config;