* @brief Print the config settings in a human readable form. * * @param[in] cli_config Command line config. * @param[in] config Codec configuration. */
| 1227 | * @param[in] config Codec configuration. |
| 1228 | */ |
| 1229 | static void print_astcenc_config( |
| 1230 | const cli_config_options& cli_config, |
| 1231 | const astcenc_config& config |
| 1232 | ) { |
| 1233 | // Print all encoding settings unless specifically told otherwise |
| 1234 | if (!cli_config.silentmode) |
| 1235 | { |
| 1236 | printf("Compressor settings\n"); |
| 1237 | printf("===================\n\n"); |
| 1238 | |
| 1239 | switch (config.profile) |
| 1240 | { |
| 1241 | case ASTCENC_PRF_LDR: |
| 1242 | printf(" Color profile: LDR linear\n"); |
| 1243 | break; |
| 1244 | case ASTCENC_PRF_LDR_SRGB: |
| 1245 | printf(" Color profile: LDR sRGB\n"); |
| 1246 | break; |
| 1247 | case ASTCENC_PRF_HDR_RGB_LDR_A: |
| 1248 | printf(" Color profile: HDR RGB + LDR A\n"); |
| 1249 | break; |
| 1250 | case ASTCENC_PRF_HDR: |
| 1251 | printf(" Color profile: HDR RGBA\n"); |
| 1252 | break; |
| 1253 | } |
| 1254 | |
| 1255 | if (config.block_z == 1) |
| 1256 | { |
| 1257 | printf(" Block size: %ux%u\n", config.block_x, config.block_y); |
| 1258 | } |
| 1259 | else |
| 1260 | { |
| 1261 | printf(" Block size: %ux%ux%u\n", config.block_x, config.block_y, config.block_z); |
| 1262 | } |
| 1263 | |
| 1264 | printf(" Bitrate: %3.2f bpp\n", 128.0 / (config.block_x * config.block_y * config.block_z)); |
| 1265 | printf(" RGB alpha scale weight: %u\n", (config.flags & ASTCENC_FLG_USE_ALPHA_WEIGHT)); |
| 1266 | if ((config.flags & ASTCENC_FLG_USE_ALPHA_WEIGHT)) |
| 1267 | { |
| 1268 | printf(" Radius RGB alpha scale: %u texels\n", config.a_scale_radius); |
| 1269 | } |
| 1270 | |
| 1271 | printf(" R component weight: %g\n", static_cast<double>(config.cw_r_weight)); |
| 1272 | printf(" G component weight: %g\n", static_cast<double>(config.cw_g_weight)); |
| 1273 | printf(" B component weight: %g\n", static_cast<double>(config.cw_b_weight)); |
| 1274 | printf(" A component weight: %g\n", static_cast<double>(config.cw_a_weight)); |
| 1275 | printf(" Partition cutoff: %u partitions\n", config.tune_partition_count_limit); |
| 1276 | printf(" 2 partition index cutoff: %u partition ids\n", config.tune_2partition_index_limit); |
| 1277 | printf(" 3 partition index cutoff: %u partition ids\n", config.tune_3partition_index_limit); |
| 1278 | printf(" 4 partition index cutoff: %u partition ids\n", config.tune_4partition_index_limit); |
| 1279 | printf(" PSNR cutoff: %g dB\n", static_cast<double>(config.tune_db_limit)); |
| 1280 | printf(" 3 partition cutoff: %g\n", static_cast<double>(config.tune_2partition_early_out_limit_factor)); |
| 1281 | printf(" 4 partition cutoff: %g\n", static_cast<double>(config.tune_3partition_early_out_limit_factor)); |
| 1282 | printf(" 2 plane correlation cutoff: %g\n", static_cast<double>(config.tune_2plane_early_out_limit_correlation)); |
| 1283 | printf(" Block mode centile cutoff: %g%%\n", static_cast<double>(config.tune_block_mode_limit)); |
| 1284 | printf(" Candidate cutoff: %u candidates\n", config.tune_candidate_limit); |
| 1285 | printf(" Refinement cutoff: %u iterations\n", config.tune_refinement_limit); |
| 1286 | printf(" Compressor thread count: %u\n", cli_config.thread_count); |