diff --git a/README.md b/README.md index 9d961f9..31352eb 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ You can change compression mode by `-m` option. Following example encoding in maximum compression (but slow) option. ```bash -./srla -e -m 16 INPUT.wav OUTPUT.srl +./srla -e -m 4 INPUT.wav OUTPUT.srl ``` #### Max block size `-B` diff --git a/include/srla.h b/include/srla.h index da3698d..d11d924 100644 --- a/include/srla.h +++ b/include/srla.h @@ -7,7 +7,7 @@ #define SRLA_FORMAT_VERSION 4 /* コーデックバージョン */ -#define SRLA_CODEC_VERSION 6 +#define SRLA_CODEC_VERSION 7 /* ヘッダサイズ */ #define SRLA_HEADER_SIZE 29 @@ -19,7 +19,7 @@ #define SRLA_MAX_COEFFICIENT_ORDER 256 /* パラメータプリセット数 */ -#define SRLA_NUM_PARAMETER_PRESETS 18 +#define SRLA_NUM_PARAMETER_PRESETS 5 /* API結果型 */ diff --git a/libs/srla_internal/src/srla_internal.c b/libs/srla_internal/src/srla_internal.c index e9d746a..fbf8bc3 100644 --- a/libs/srla_internal/src/srla_internal.c +++ b/libs/srla_internal/src/srla_internal.c @@ -23,30 +23,16 @@ SRLA_STATIC_ASSERT((1 << SRLA_LPC_COEFFICIENT_BITWIDTH) == SRLA_NUM_ARRAY_ELEMEN /* 和を取った係数のハフマン木 */ static struct StaticHuffmanTree st_sum_parameter_huffman_tree = { 0, }; - /* マージンリスト候補配列 */ static const double margin_list[] = { 0.0, 1.0 / 4096, 1.0 / 1024, 1.0 / 256, 1.0 / 64, 1.0 / 16 }; /* パラメータプリセット配列 */ const struct SRLAParameterPreset g_srla_parameter_preset[] = { - { 32, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 32, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, + { 16, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, { 32, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 32, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 32, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_SEARCH, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 32, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_SEARCH, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 64, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 64, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, { 64, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 64, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 128, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 128, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, { 128, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 128, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 256, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 256, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_MAX_FIXED, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, { 256, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 0, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, - { 256, SRLA_CH_PROCESS_METHOD_TACTICS_ADAPTIVE, SRLA_LPC_ORDER_DECISION_TACTICS_BRUTEFORCE_ESTIMATION, 10, SRLA_DEFINE_ARRAY_AND_NUM_ELEMTNS_TUPLE(margin_list) }, }; SRLA_STATIC_ASSERT(SRLA_NUM_ARRAY_ELEMENTS(g_srla_parameter_preset) == SRLA_NUM_PARAMETER_PRESETS); diff --git a/tools/srla_codec/srla_codec.c b/tools/srla_codec/srla_codec.c index 35be807..88783e7 100644 --- a/tools/srla_codec/srla_codec.c +++ b/tools/srla_codec/srla_codec.c @@ -9,13 +9,13 @@ #include /* デフォルトプリセット */ -#define DEFALUT_PRESET_NO 12 +#define DEFALUT_PRESET_INDEX 2 /* デフォルトの最大ブロックサンプル数 */ #define DEFALUT_MAX_NUM_BLOCK_SAMPLES 4096 /* デフォルトの可変ブロック分割数 */ #define DEFALUT_NUM_VARIABLE_BLOCK_DIVISIONS 1 /* パラメータプリセットの最大インデックス */ -#define SRLA_MAX_PARAMETER_PRESETS_INDEX 17 +#define SRLA_MAX_PARAMETER_PRESETS_INDEX 4 #if SRLA_MAX_PARAMETER_PRESETS_INDEX != (SRLA_NUM_PARAMETER_PRESETS - 1) #error "Max parameter presets mismatched to number of parameter presets!" #endif @@ -336,7 +336,7 @@ int main(int argc, char** argv) } } else if (CommandLineParser_GetOptionAcquired(command_line_spec, "encode") == COMMAND_LINE_PARSER_TRUE) { /* エンコード */ - uint32_t encode_preset_no = DEFALUT_PRESET_NO; + uint32_t encode_preset_no = DEFALUT_PRESET_INDEX; uint32_t max_num_block_samples = DEFALUT_MAX_NUM_BLOCK_SAMPLES; uint32_t variable_block_num_divisions = DEFALUT_NUM_VARIABLE_BLOCK_DIVISIONS; /* エンコードプリセット番号取得 */