update -# settings
diff --git a/doc/documentation.html b/doc/documentation.html
index b1e150a..36f1c66 100644
--- a/doc/documentation.html
+++ b/doc/documentation.html
@@ -322,7 +322,7 @@
-0 .. -9
</TD>
<TD>
- Fastest compression .. highest compression. The default is <TT>-6</TT>.
+ Fastest compression .. highest compression. The default is <TT>-5</TT>.
</TD>
</TR>
<TR>
@@ -338,7 +338,7 @@
-1
</TD>
<TD>
- Synonymous with -l 0 -b 1152 -M
+ Synonymous with -l 0 -b 1152 -M -r 2,2
</TD>
</TR>
<TR>
@@ -346,7 +346,7 @@
-2
</TD>
<TD>
- Synonymous with -l 0 -b 1152 -m -r 4
+ Synonymous with -l 0 -b 1152 -m -r 3
</TD>
</TR>
<TR>
@@ -354,7 +354,7 @@
-3
</TD>
<TD>
- Reserved
+ Synonymous with -l 6 -b 4608 -r 3,3
</TD>
</TR>
<TR>
@@ -362,7 +362,7 @@
-4
</TD>
<TD>
- Synonymous with -l 8 -b 4608
+ Synonymous with -l 8 -b 4608 -M -r 3,3
</TD>
</TR>
<TR>
@@ -370,7 +370,7 @@
-5
</TD>
<TD>
- Synonymous with -l 8 -b 4608 -M
+ Synonymous with -l 8 -b 4608 -m -r 3,3
</TD>
</TR>
<TR>
@@ -386,7 +386,7 @@
-7
</TD>
<TD>
- Reserved
+ Synonymous with -l 8 -b 4608 -m -e -r 6
</TD>
</TR>
<TR>
@@ -394,7 +394,7 @@
-8
</TD>
<TD>
- Synonymous with -l 32 -b 4608 -m -r 4
+ Synonymous with -l 12 -b 4608 -m -e -r 6
</TD>
</TR>
<TR>
@@ -451,7 +451,7 @@
-R #
</TD>
<TD>
- 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.
</TD>
</TR>
<TR>
diff --git a/src/flac/main.c b/src/flac/main.c
index 8e6fafd..db19caa 100644
--- a/src/flac/main.c
+++ b/src/flac/main.c
@@ -32,7 +32,7 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
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");