In the name of trying to find the right levers to pull for reasonably efficient somewhat-bruteforce settings:
- n tweak passes as a final step before output. Each tweak pass tries successively smaller tweaks to the partition location between adjacent frames starting at half of blocksize_min. This may not be optimal
- Different compression settings for analysis and final output
The following are the best subset results from a wide range of settings (all of them have no more-efficient competitor that's faster, except the starred result which is the previous best result from the post above). CPU is a single-threaded estimate using clock_t (tests actually done on quad core), all results encode track one of the album with -8p, effort is the number of times input was encoded for analysis and tweak (and once more for output) (analysis uses analysis compression setting, tweak and output use output compression setting).
Size CPU time mode analysis tweak output effort_analysis effort_tweak Blocks used during analysis
5124075 94.15798 peakset 8p 10 8p 36 11.942 576,1152,1728,2304,2880,3456,4032,4608
5124583 84.53425 peakset 8p 4 8p 36 4.201 576,1152,1728,2304,2880,3456,4032,4608
5124877 82.16994 peakset 8p 2 8p 36 1.979 576,1152,1728,2304,2880,3456,4032,4608
5124881 68.70227 peakset 8p 10 8p 21 11.858 768,1536,2304,3072,3840,4608
5125344 51.31762 peakset 8 10 8p 45 13.384 512,1024,1536,2048,2560,3072,3584,4096,4608
5125376 38.69915 peakset 8 10 8p 36 11.373 576,1152,1728,2304,2880,3456,4032,4608
* 5125504 94.82512 peakset 8p 0 8p 45 0 512,1024,1536,2048,2560,3072,3584,4096,4608
5125705 33.13277 peakset 8 4 8p 45 4.985 512,1024,1536,2048,2560,3072,3584,4096,4608
5125798 31.44276 peakset 8 3 8p 45 3.672 512,1024,1536,2048,2560,3072,3584,4096,4608
5125867 25.73276 peakset 8 4 8p 36 4.007 576,1152,1728,2304,2880,3456,4032,4608
5125980 24.87177 peakset 8 3 8p 36 2.898 576,1152,1728,2304,2880,3456,4032,4608
5126643 21.18103 peakset 8 1 8p 36 0.879 576,1152,1728,2304,2880,3456,4032,4608
5126657 20.71826 peakset 8 4 8p 21 3.548 768,1536,2304,3072,3840,4608
5126743 19.22586 peakset 8 3 8p 21 2.599 768,1536,2304,3072,3840,4608
5126976 17.76938 peakset 8 2 8p 21 1.673 768,1536,2304,3072,3840,4608
5127356 17.26785 peakset 5 3 8p 45 4.179 512,1024,1536,2048,2560,3072,3584,4096,4608
5127473 16.18667 peakset 8 1 8p 21 0.771 768,1536,2304,3072,3840,4608
5127622 14.59223 peakset 5 3 8p 36 3.722 576,1152,1728,2304,2880,3456,4032,4608
5127681 12.57558 peakset 5 4 8p 21 4.404 768,1536,2304,3072,3840,4608
5127790 11.35689 peakset 5 3 8p 21 3.22 768,1536,2304,3072,3840,4608
5128042 9.23730 peakset 5 2 8p 21 2.084 768,1536,2304,3072,3840,4608
5128588 6.51163 peakset 5 1 8p 21 0.99 768,1536,2304,3072,3840,4608
5129239 5.17407 peakset 5 2 8p 10 1.549 1152,2304,3456,4608
5129983 4.10213 peakset 5 1 8p 10 0.731 1152,2304,3456,4608
5131055 2.91449 peakset 5 0 8p 10 0 1152,2304,3456,4608
5132505 2.63151 peakset 5 1 8p 3 0.393 2304,4608
5132757 2.32122 peakset 5 0 8p 6 0 1536,3072,4608
5135107 1.93578 peakset 5 0 8p 3 0 2304,4608
5138542 1.75692 peakset 0 0 8p 3 0 2304,4608
5146517 flac 8p 4608
5149423 flac 8p 4096
Greed and chunk don't get a look in mostly because tweak passes haven't been implemented there, I'd have expected at least one chunk result to make it lower down the list regardless but it appears peakset+tweak gets a more efficient result faster than pure chunk across the board. Chunk+tweak might make for a good mid-table result where tweak is limited to adjacent frames within chunks, TODO.
A merge pass after the tweak passes looking for efficient blocksizes >blocksize_max, would benefit lax encodes. It could mildly improve subset encodes IFF blocksize 4608 was omitted from the analysis stage (which probably shouldn't be omitted).