Playing about with the code, I've added a "choose_bits_to_remove" parameter - which is used as follows:
if (choose_bits_to_remove==0),
bits_to_remove(block_number)=min(min(bits_to_remove_table));
else
bits_to_remove(block_number)=floor(mean(mean(bits_to_remove_table)))+(choose_bits_to_remove-1);
end;
bits_to_remove(block_number)=min(bits_to_remove(block_number),bs-minimum_bits_to_keep);
To my ears (combined with minimum_bits_to_keep=5) the transparency threshold is about 3 or 4. Setting Minimum_bits_to_keep (MBTK) to 6 improves BTR=4. The bitrate reduction is fairly significant:
Samples: 10 - Dungeon - The Birth- The Trauma Begins, 41_30sec, A02_metamorphose,
annoyingloudsong, aps_Killer_sample, Atem_lied, ATrain, birds,
E50_PERIOD_ORCHESTRAL_E_trombone_strings, eig, glass_short, jump_long, Moon_short,
rach_original, rawhide, S13_KEYBOARD_Harpsichord_C, S30_OTHERS_Accordion_A,
S34_OTHERS_GlassHarmonica_A, S35_OTHERS_Maracas_A, S53_WIND_Saxophone_A, thewayitis,
VELVET
|=====|=========================|
| WAV | 53,763,880 (1411.2kbps) |
|FLAC | 29,767,971 ( 781.2kbps) |
|=====|=========================|========================|========================|
| | MBTK=5 | MBTK=6 | MBTK=7 |
|=====|=========================|========================|========================|
|BTR0 | 17,209,767 ( 451.7kbps) | 17,209,767 ( 451.7kbps)| 17,256,277 ( 452.9kbps)|
|BTR1 | 16,052,243 ( 421.3kbps) | 16,052,243 ( 421.3kbps)| 16,110,776 ( 422.9kbps)|
|BTR2 | 13,259,455 ( 348.0kbps) | 13,313,411 ( 394.4kbps)| 13,530,611 ( 355.2kbps)|
|BTR3 | 10,814,615 ( 283.9kbps) | 11,025,396 ( 289.4kbps)| 11,369,979 ( 298.4kbps)|
|BTR4 | 8,959,432 ( 235.1kbps) | 9,288,634 ( 243.9kbps)| 9,732,593 ( 255.5kbps)|
|=====|=========================|========================|========================|