Add --no-signhide parameter.

This commit is contained in:
Ari Koivula 2015-01-24 20:10:21 +02:00
parent 5f24c6b73d
commit f01cbbb5ca
5 changed files with 8 additions and 3 deletions

View file

@ -31,6 +31,7 @@ http://github.com/ultravideo/kvazaar/wiki/List-of-suggested-topics for a list of
beta and tc range is -6..6 [0:0] beta and tc range is -6..6 [0:0]
--no-sao : Disable sample adaptive offset --no-sao : Disable sample adaptive offset
--no-rdoq : Disable RDO quantization --no-rdoq : Disable RDO quantization
--no-signhide : Disable sign hiding in quantization
--rd <integer> : Rate-Distortion Optimization level [1] --rd <integer> : Rate-Distortion Optimization level [1]
0: no RDO 0: no RDO
1: estimated RDO 1: estimated RDO

View file

@ -65,6 +65,7 @@ int config_init(config *cfg)
cfg->deblock_tc = 0; cfg->deblock_tc = 0;
cfg->sao_enable = 1; cfg->sao_enable = 1;
cfg->rdoq_enable = 1; cfg->rdoq_enable = 1;
cfg->signhide_enable = true;
cfg->rdo = 1; cfg->rdo = 1;
cfg->full_intra_search = 0; cfg->full_intra_search = 0;
cfg->trskip_enable = 1; cfg->trskip_enable = 1;
@ -372,6 +373,8 @@ static int config_parse(config *cfg, const char *name, const char *value)
cfg->sao_enable = atobool(value); cfg->sao_enable = atobool(value);
else if OPT("rdoq") else if OPT("rdoq")
cfg->rdoq_enable = atobool(value); cfg->rdoq_enable = atobool(value);
else if OPT("signhide")
cfg->signhide_enable = (bool)atobool(value);
else if OPT("rd") else if OPT("rd")
{ {
int rdo = 0; int rdo = 0;
@ -524,6 +527,7 @@ int config_read(config *cfg,int argc, char *argv[])
{ "deblock", required_argument, NULL, 0 }, { "deblock", required_argument, NULL, 0 },
{ "no-sao", no_argument, NULL, 0 }, { "no-sao", no_argument, NULL, 0 },
{ "no-rdoq", no_argument, NULL, 0 }, { "no-rdoq", no_argument, NULL, 0 },
{ "no-signhide", no_argument, NULL, 0 },
{ "rd", required_argument, NULL, 0 }, { "rd", required_argument, NULL, 0 },
{ "full-intra-search", no_argument, NULL, 0 }, { "full-intra-search", no_argument, NULL, 0 },
{ "no-transform-skip", no_argument, NULL, 0 }, { "no-transform-skip", no_argument, NULL, 0 },

View file

@ -44,6 +44,7 @@ typedef struct
int32_t deblock_enable; /*!< \brief Flag to enable deblocking filter */ int32_t deblock_enable; /*!< \brief Flag to enable deblocking filter */
int32_t sao_enable; /*!< \brief Flag to enable sample adaptive offset filter */ int32_t sao_enable; /*!< \brief Flag to enable sample adaptive offset filter */
int32_t rdoq_enable; /*!< \brief Flag to enable RD optimized quantization. */ int32_t rdoq_enable; /*!< \brief Flag to enable RD optimized quantization. */
bool signhide_enable;
int32_t rdo; /*!< \brief RD-calculation level (0..2) */ int32_t rdo; /*!< \brief RD-calculation level (0..2) */
bool full_intra_search; /*!< \brief Don't skip modes in intra search.e */ bool full_intra_search; /*!< \brief Don't skip modes in intra search.e */
int32_t trskip_enable; /*!< \brief Flag to enable transform skip (for 4x4 blocks). */ int32_t trskip_enable; /*!< \brief Flag to enable transform skip (for 4x4 blocks). */

View file

@ -109,6 +109,7 @@ int main(int argc, char *argv[])
" beta and tc range is -6..6 [0:0]\n" " beta and tc range is -6..6 [0:0]\n"
" --no-sao : Disable sample adaptive offset\n" " --no-sao : Disable sample adaptive offset\n"
" --no-rdoq : Disable RDO quantization\n" " --no-rdoq : Disable RDO quantization\n"
" --no-signhide : Disable sign hiding in quantization\n"
" --rd <integer> : Rate-Distortion Optimization level [1]\n" " --rd <integer> : Rate-Distortion Optimization level [1]\n"
" 0: no RDO\n" " 0: no RDO\n"
" 1: estimated RDO\n" " 1: estimated RDO\n"
@ -277,6 +278,7 @@ int main(int argc, char *argv[])
// RDO // RDO
encoder.rdoq_enable = (int8_t)encoder.cfg->rdoq_enable; encoder.rdoq_enable = (int8_t)encoder.cfg->rdoq_enable;
encoder.rdo = (int8_t)encoder.cfg->rdo; encoder.rdo = (int8_t)encoder.cfg->rdo;
encoder.sign_hiding = encoder.cfg->signhide_enable;
encoder.full_intra_search = (int8_t)encoder.cfg->full_intra_search; encoder.full_intra_search = (int8_t)encoder.cfg->full_intra_search;
// TR SKIP // TR SKIP
encoder.trskip_enable = (int8_t)encoder.cfg->trskip_enable; encoder.trskip_enable = (int8_t)encoder.cfg->trskip_enable;
@ -299,8 +301,6 @@ int main(int argc, char *argv[])
// TODO: Add config option for vps_period. // TODO: Add config option for vps_period.
encoder.vps_period = (encoder.cfg->rdo == 0 ? encoder.cfg->intra_period : 0); encoder.vps_period = (encoder.cfg->rdo == 0 ? encoder.cfg->intra_period : 0);
encoder.sign_hiding = ENABLE_SIGN_HIDING;
encoder.in.file = input; encoder.in.file = input;
fprintf(stderr, "Input: %s, output: %s\n", cfg->input, cfg->output); fprintf(stderr, "Input: %s, output: %s\n", cfg->input, cfg->output);

View file

@ -76,7 +76,6 @@ typedef int16_t coefficient;
#define TR_DEPTH_INTER 2 /*!< spec: max_transform_hierarchy_depth_inter */ #define TR_DEPTH_INTER 2 /*!< spec: max_transform_hierarchy_depth_inter */
#define ENABLE_PCM 0 /*!< spec: pcm_enabled_flag, Setting to 1 will enable using PCM blocks (current intra-search does not consider PCM) */ #define ENABLE_PCM 0 /*!< spec: pcm_enabled_flag, Setting to 1 will enable using PCM blocks (current intra-search does not consider PCM) */
#define ENABLE_SIGN_HIDING 1 /*!< spec: sign_data_hiding_enabled_flag */
#define ENABLE_TEMPORAL_MVP 0 /*!< Enable usage of temporal Motion Vector Prediction */ #define ENABLE_TEMPORAL_MVP 0 /*!< Enable usage of temporal Motion Vector Prediction */