diff --git a/evaluation/codec_comparison_summery.csv b/evaluation/codec_comparison_summery.csv index 4108e17..c34c98a 100644 --- a/evaluation/codec_comparison_summery.csv +++ b/evaluation/codec_comparison_summery.csv @@ -1,19 +1,19 @@ -,SRLA -m 0,SRLA -m 1,SRLA -m 2,SRLA -m 3,SRLA -m 4,SRLA -m 5,SRLA -m 0 -V,SRLA -m 2 -V,SRLA -m 4 -V -classic mean encode time,1.166609093,7.906739168,1.23768339,6.152183537,3.079408074,7.824767174,7.82125029,7.870271425,18.91477631 -genre mean encode time,1.183172614,8.27395237,1.243419323,6.100172005,3.081394875,7.915589844,7.646880119,7.889881691,19.03594508 -jazz mean encode time,1.1795981,8.270707267,1.244997857,6.061266734,3.072985602,7.933713132,7.595330989,7.868444896,19.03904141 -popular mean encode time,1.186804796,8.339438333,1.24974674,6.269681518,3.094361769,8.078003724,7.61696057,7.907463594,19.07020105 -right mean encode time,1.187464264,8.134522202,1.243621936,6.097007679,3.095195944,7.953036916,7.532135139,7.753475445,18.81001389 -total mean encode time,1.181063368,8.223962536,1.24480273,6.150524007,3.083996213,7.957174622,7.645529899,7.877277707,19.01148296 -classic mean decode time,0.199841578,0.202461325,0.174139073,0.179598954,0.179946576,0.180400056,0.21315884,0.181808292,0.178682161 -genre mean decode time,0.207814092,0.205101512,0.1757818,0.179940338,0.179462416,0.181336766,0.20960065,0.178570216,0.179772893 -jazz mean decode time,0.203521904,0.20444657,0.173958458,0.178548125,0.177941061,0.1789673,0.211900196,0.179212009,0.178977724 -popular mean decode time,0.206814064,0.213925567,0.177887127,0.181579893,0.180946715,0.180920933,0.209982503,0.180674416,0.1812617 -right mean decode time,0.211716934,0.211642539,0.17905863,0.188695868,0.19222058,0.192150445,0.217239667,0.187019494,0.18678063 -total mean decode time,0.205486443,0.207662372,0.175956556,0.180675157,0.180537114,0.181266958,0.211377804,0.180482976,0.180358468 -classic mean compression rate,43.94922829,43.94465296,43.85064225,43.84544941,43.84662646,43.84130142,43.88761071,43.76482409,43.76333188 -genre mean compression rate,58.40617009,58.35404773,58.31826598,58.26165971,58.30614358,58.25151776,58.07142581,57.89153903,57.89541446 -jazz mean compression rate,47.93229431,47.87342167,47.82700521,47.76487209,47.81897522,47.75967942,47.68149683,47.50070612,47.50735765 -popular mean compression rate,67.83985786,67.7702727,67.76775651,67.69427275,67.75300388,67.68276756,67.5156107,67.36251641,67.36328389 -right mean compression rate,60.85819586,60.80621555,60.76890638,60.71475495,60.75667699,60.70506581,60.66128322,60.51678863,60.51444892 -total mean compression rate,56.63037196,56.57902494,56.54132169,56.48674564,56.53066993,56.47836106,56.37251364,56.21225629,56.21454011 +,SRLA -m 0,SRLA -m 1,SRLA -m 2,SRLA -m 3,SRLA -m 4,SRLA -m 5,SRLA -m 0 -V 2,SRLA -m 2 -V 2,SRLA -m 4 -V 2,SRLA -m 8 -V 2,SRLA -m 12 -V 2,SRLA -m 8 -V 2 -B 8192,SRLA -m 12 -V 2 -B 8192 +classic mean encode time,1.226808117431429,8.168544287550635,1.2683642308622383,6.194855503733544,3.1539472705144975,8.08143986751348,7.530305390002274,7.87638977996398,19.06353418851843,9.639206762336125,14.362539683554088,8.801303212753616,13.170267959127532 +genre mean encode time,1.2318650622924852,8.415018407611967,1.2654086941415545,6.252175259137071,3.1453250495882625,8.165618937675672,7.630072092347596,7.942032789110587,19.237945272184337,9.60179455352426,13.908603109718511,8.678752159722535,12.824895126259827 +jazz mean encode time,1.2291705515863487,8.386814554121312,1.2648874063482856,6.252350632092739,3.15039903414595,8.16193913286183,7.597520327385436,7.939609579132874,19.199068053045483,9.581878613225998,14.024754231536592,8.768099542761306,12.804514172059564 +popular mean encode time,1.2321590517997252,8.274606631684138,1.2916439474496082,6.406838243908966,3.156681751827998,8.317016168669241,7.6114465688017905,7.966769032363276,19.27374602706035,9.761448595111839,14.065450883459341,8.93136790397553,12.813675064356516 +right mean encode time,1.2309628986332746,8.290495568356912,1.276162294052072,6.2667354468242165,3.1318075801495064,8.121929041963385,7.4952054516884505,7.861358680462103,19.039828685062027,9.770646596110833,14.169108502894199,8.88635238202136,13.190242397499933 +total mean encode time,1.230436726809037,8.317177132707585,1.274483500156782,6.2909275378326726,3.1504005076031345,8.193998064318787,7.591045129102726,7.932648832373975,19.197403384523895,9.663533214117122,14.075367270942975,8.811053183047981,12.89828732395783 +classic mean decode time,0.21001399836933524,0.20970613463030974,0.18560935495700473,0.18529084400068563,0.18161742306063355,0.18335122874562204,0.20465816090483538,0.18169745469877005,0.17867961825698683,0.18701031259747766,0.21191303425582536,0.1970505426475581,0.23377638843752746 +genre mean decode time,0.21248325527188572,0.21065214571417537,0.1834124257914006,0.18165909834709248,0.1822331574036681,0.18253346422643113,0.20642933300787467,0.17789870161500485,0.1788131616140957,0.18001028643394265,0.1891748743676748,0.1869598232502371,0.20211746566915792 +jazz mean decode time,0.21300553391864782,0.20795014127247552,0.18393666576977258,0.18129380950798768,0.18155711048398027,0.1817772516987239,0.2060861507934446,0.17668630551694167,0.17828137632829769,0.18127966461348083,0.1919042793359118,0.19068186867125714,0.2118851384509344 +popular mean decode time,0.21433145126955028,0.21036979877740983,0.1887892506832935,0.18402056722889654,0.18513321014543901,0.18376453250390884,0.20666013425246507,0.18034204921711816,0.18020630927371556,0.18692965518599486,0.1950458147503253,0.19342647961765946,0.2092296631940898 +right mean decode time,0.21625529466391819,0.2179260986857683,0.1904006392387622,0.18503277914309307,0.18830220026387928,0.18965617814793861,0.21728405664822106,0.1871856392753295,0.1869752815049304,0.19604559509601233,0.21290027905118353,0.20918899306904928,0.23958152760063006 +total mean decode time,0.21303787296090188,0.21029088738092647,0.1860183385181338,0.18311385726008966,0.18328482425072468,0.18336579809301082,0.20690427695116445,0.17962484432299053,0.17966843891336864,0.18467776998180752,0.19695302099967119,0.19300954024245098,0.21435409402831013 +classic mean compression rate,43.953064553040726,43.94832674022255,43.855047052452335,43.849410074661456,43.850046992657134,43.844476450949884,43.8908853601157,43.76836419315605,43.7668283140381,43.38189838603648,43.125187308649544,43.16000006797668,42.7246361980018 +genre mean compression rate,58.40754469525427,58.35503386778976,58.31982806754136,58.26301982762584,58.3075080433451,58.25292263065131,58.07543454125826,57.89605803496861,57.89987426105065,57.83068178251131,57.78440435776239,57.833595910262034,57.75004706416538 +jazz mean compression rate,47.93709295227803,47.8773411430481,47.83118694735148,47.76866205305149,47.823173402482105,47.763891845010484,47.68521593874087,47.50482179939352,47.51143682559389,47.49605513411929,47.487128524157235,47.40294290132161,47.34131658787309 +popular mean compression rate,67.84269394048565,67.77299025813966,67.77012197379062,67.69652014576292,67.75585623493592,67.68561833853005,67.51957478134236,67.36696264712373,67.3676860894013,67.27701096723092,67.24330611408246,67.288925525171,67.21073650698757 +right mean compression rate,60.86108032848613,60.80924750361337,60.7713281978449,60.71731314316585,60.75963419524376,60.707962856922116,60.66485462497699,60.52074887082197,60.51842770733321,60.336361061233234,60.24947927960808,60.21111775402263,59.98263321507651 +total mean compression rate,56.63350523653016,56.58180986279156,56.54426741082092,56.48945489759914,56.53360173421597,56.481261110776494,56.376290817734315,56.21646019286124,56.218702814308536,56.096844290109125,56.02643594488122,56.034396924128664,55.89067466293367 diff --git a/include/srla.h b/include/srla.h index 13efe36..039b0ab 100644 --- a/include/srla.h +++ b/include/srla.h @@ -7,7 +7,7 @@ #define SRLA_FORMAT_VERSION 1 /* コーデックバージョン */ -#define SRLA_CODEC_VERSION 2 +#define SRLA_CODEC_VERSION 3 /* ヘッダサイズ */ #define SRLA_HEADER_SIZE 29 @@ -16,10 +16,10 @@ #define SRLA_MAX_NUM_CHANNELS 8 /* 最大係数サイズ */ -#define SRLA_MAX_COEFFICIENT_ORDER 32 +#define SRLA_MAX_COEFFICIENT_ORDER 128 /* パラメータプリセット数 */ -#define SRLA_NUM_PARAMETER_PRESETS 6 +#define SRLA_NUM_PARAMETER_PRESETS 14 /* API結果型 */ diff --git a/libs/srla_internal/include/srla_internal.h b/libs/srla_internal/include/srla_internal.h index ab31821..2b0ea35 100644 --- a/libs/srla_internal/include/srla_internal.h +++ b/libs/srla_internal/include/srla_internal.h @@ -19,7 +19,7 @@ /* LPC係数右シフト量のビット幅 */ #define SRLA_RSHIFT_LPC_COEFFICIENT_BITWIDTH 4 /* (LPC係数次数-1)のビット幅 */ -#define SRLA_LPC_COEFFICIENT_ORDER_BITWIDTH 5 +#define SRLA_LPC_COEFFICIENT_ORDER_BITWIDTH 7 /* 圧縮をやめて生データを出力するときの閾値(サンプルあたりビット数に占める比率) */ #define SRLA_ESTIMATED_CODELENGTH_THRESHOLD 0.95f diff --git a/libs/srla_internal/src/srla_internal.c b/libs/srla_internal/src/srla_internal.c index 4d69441..1c516c4 100644 --- a/libs/srla_internal/src/srla_internal.c +++ b/libs/srla_internal/src/srla_internal.c @@ -10,12 +10,20 @@ static const double margin_list[] = { 0.0, 1.0 / 4096, 1.0 / 1024, 1.0 / 256, 1. /* パラメータプリセット配列 */ 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) }, - { 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) } + { 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) }, + { 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) }, }; SRLA_STATIC_ASSERT(SRLA_NUM_ARRAY_ELEMENTS(g_srla_parameter_preset) == SRLA_NUM_PARAMETER_PRESETS);