From 6f8134b2c3033047a3191b917b7ede362397de04 Mon Sep 17 00:00:00 2001 From: Josh Coalson Date: Thu, 3 May 2001 00:09:18 +0000 Subject: [PATCH] update -# settings --- doc/documentation.html | 18 ++++++------- src/flac/main.c | 61 +++++++++++++++++++++++++++++------------- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/doc/documentation.html b/doc/documentation.html index b1e150a7..36f1c66a 100644 --- a/doc/documentation.html +++ b/doc/documentation.html @@ -322,7 +322,7 @@ -0 .. -9 - Fastest compression .. highest compression. The default is -6. + Fastest compression .. highest compression. The default is -5. @@ -338,7 +338,7 @@ -1 - Synonymous with -l 0 -b 1152 -M + Synonymous with -l 0 -b 1152 -M -r 2,2 @@ -346,7 +346,7 @@ -2 - Synonymous with -l 0 -b 1152 -m -r 4 + Synonymous with -l 0 -b 1152 -m -r 3 @@ -354,7 +354,7 @@ -3 - Reserved + Synonymous with -l 6 -b 4608 -r 3,3 @@ -362,7 +362,7 @@ -4 - Synonymous with -l 8 -b 4608 + Synonymous with -l 8 -b 4608 -M -r 3,3 @@ -370,7 +370,7 @@ -5 - Synonymous with -l 8 -b 4608 -M + Synonymous with -l 8 -b 4608 -m -r 3,3 @@ -386,7 +386,7 @@ -7 - Reserved + Synonymous with -l 8 -b 4608 -m -e -r 6 @@ -394,7 +394,7 @@ -8 - Synonymous with -l 32 -b 4608 -m -r 4 + Synonymous with -l 12 -b 4608 -m -e -r 6 @@ -451,7 +451,7 @@ -R # - Set the Rice parameter search distance. Defaults to 0. The residual coder will search for the best Rice parameter +/- this number for each residual partition. This option is expensive (run time for -R n will be almost 2n+1 times that of -R 0) and doesn't give much of a gain. + Set the Rice parameter search distance. Defaults to 0. The residual coder will search for the best Rice parameter +/- this number for each residual partition. This option is expensive (run time for -R n will typically be (2n)*30% over that of -R 0) and doesn't give much of a gain. As a matter of fact, none of the -0..-9 options currently use it since -R > 1 is not consistently better like it should be. diff --git a/src/flac/main.c b/src/flac/main.c index 8e6fafdb..db19caae 100644 --- a/src/flac/main.c +++ b/src/flac/main.c @@ -32,7 +32,7 @@ static int encode_file(const char *infilename, const char *forced_outfilename); static int decode_file(const char *infilename, const char *forced_outfilename); bool verify = false, verbose = true, lax = false, test_only = false, analyze = false; -bool do_mid_side = true, loose_mid_side = false, do_exhaustive_model_search = false, do_qlp_coeff_prec_search = false; +bool do_mid_side = true, loose_mid_side = true, do_exhaustive_model_search = false, do_qlp_coeff_prec_search = false; bool force_to_stdout = false; analysis_options aopts = { false, false }; unsigned padding = 0; @@ -98,10 +98,12 @@ int main(int argc, char *argv[]) do_exhaustive_model_search = false; else if(0 == strcmp(argv[i], "-l")) max_lpc_order = atoi(argv[++i]); - else if(0 == strcmp(argv[i], "-m")) + else if(0 == strcmp(argv[i], "-m")) { do_mid_side = true; + loose_mid_side = false; + } else if(0 == strcmp(argv[i], "-m-")) - do_mid_side = false; + do_mid_side = loose_mid_side = false; else if(0 == strcmp(argv[i], "-M")) loose_mid_side = do_mid_side = true; else if(0 == strcmp(argv[i], "-M-")) @@ -183,19 +185,28 @@ int main(int argc, char *argv[]) rice_parameter_search_dist = 0; max_lpc_order = 0; } - else if(0 == strcmp(argv[i], "-4")) { + else if(0 == strcmp(argv[i], "-3")) { do_exhaustive_model_search = false; do_mid_side = false; loose_mid_side = false; qlp_coeff_precision = 0; - min_residual_partition_order = max_residual_partition_order = 0; + min_residual_partition_order = max_residual_partition_order = 3; + rice_parameter_search_dist = 0; + max_lpc_order = 6; + } + else if(0 == strcmp(argv[i], "-4")) { + do_exhaustive_model_search = false; + do_mid_side = true; + loose_mid_side = true; + qlp_coeff_precision = 0; + min_residual_partition_order = max_residual_partition_order = 3; rice_parameter_search_dist = 0; max_lpc_order = 8; } else if(0 == strcmp(argv[i], "-5")) { do_exhaustive_model_search = false; do_mid_side = true; - loose_mid_side = true; + loose_mid_side = false; qlp_coeff_precision = 0; min_residual_partition_order = max_residual_partition_order = 3; rice_parameter_search_dist = 0; @@ -211,13 +222,25 @@ int main(int argc, char *argv[]) rice_parameter_search_dist = 0; max_lpc_order = 8; } - else if(0 == strcmp(argv[i], "-8")) { - do_exhaustive_model_search = false; + else if(0 == strcmp(argv[i], "-7")) { + do_exhaustive_model_search = true; do_mid_side = true; loose_mid_side = false; qlp_coeff_precision = 0; + min_residual_partition_order = 0; + min_residual_partition_order = 6; rice_parameter_search_dist = 0; - max_lpc_order = 32; + max_lpc_order = 8; + } + else if(0 == strcmp(argv[i], "-8")) { + do_exhaustive_model_search = true; + do_mid_side = true; + loose_mid_side = false; + qlp_coeff_precision = 0; + min_residual_partition_order = 0; + min_residual_partition_order = 6; + rice_parameter_search_dist = 0; + max_lpc_order = 12; } else if(0 == strcmp(argv[i], "-9")) { do_exhaustive_model_search = true; @@ -247,13 +270,13 @@ int main(int argc, char *argv[]) } if(min_residual_partition_order < 0) { if(blocksize <= 1152) - max_residual_partition_order = 3; + max_residual_partition_order = 2; else if(blocksize <= 2304) - max_residual_partition_order = 4; + max_residual_partition_order = 3; else if(blocksize <= 4608) - max_residual_partition_order = 4; + max_residual_partition_order = 3; else - max_residual_partition_order = 5; + max_residual_partition_order = 4; min_residual_partition_order = max_residual_partition_order; } if(rice_parameter_search_dist < 0) { @@ -437,13 +460,13 @@ int usage(const char *message, ...) fprintf(stderr, " -0 : synonymous with -l 0 -b 1152\n"); fprintf(stderr, " -1 : synonymous with -l 0 -b 1152 -M -r 2,2\n"); fprintf(stderr, " -2 : synonymous with -l 0 -b 1152 -m -r 3\n"); - fprintf(stderr, " -3 : reserved\n"); - fprintf(stderr, " -4 : synonymous with -l 8 -b 4608\n"); - fprintf(stderr, " -5 : synonymous with -l 8 -b 4608 -M -r 3,3\n"); + fprintf(stderr, " -3 : synonymous with -l 6 -b 4608 -r 3,3\n"); + fprintf(stderr, " -4 : synonymous with -l 8 -b 4608 -M -r 3,3\n"); + fprintf(stderr, " -5 : synonymous with -l 8 -b 4608 -m -r 3,3\n"); fprintf(stderr, " -6 : synonymous with -l 8 -b 4608 -m -r 4\n"); - fprintf(stderr, " -7 : reserved\n"); - fprintf(stderr, " -8 : synonymous with -l 32 -b 4608 -m -r 4\n"); - fprintf(stderr, " -9 : synonymous with -l 32 -m -e -r 16 -R 32 -p (very slow!)\n"); + fprintf(stderr, " -7 : synonymous with -l 8 -b 4608 -m -e -r 6\n"); + fprintf(stderr, " -8 : synonymous with -l 12 -b 4608 -m -e -r 6\n"); + fprintf(stderr, " -9 : synonymous with -l 32 -b 4608 -m -e -r 16 -R 32 -p (very slow!)\n"); fprintf(stderr, " -e : do exhaustive model search (expensive!)\n"); fprintf(stderr, " -l # : specify max LPC order; 0 => use only fixed predictors\n"); fprintf(stderr, " -p : do exhaustive search of LP coefficient quantization (expensive!);\n");