blob: 55b3462cdacc35423fcefde371ff9d0e3fe73891 [file] [log] [blame]
/*
* SnsQuantizationTables.cpp
*
* Copyright 2021 HIMSA II K/S - www.himsa.com. Represented by EHIMA -
* www.ehima.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// LC3 Specification d09r01.pdf
// Section 5.7.3 SNS Quantization
// LC3 Specification d09r04_*implementorComments*
// Section 3.7.4 SNS Quantization
#include "SnsQuantizationTables.hpp"
// LC3 Specification d09r01.pdf; Page 102 of 177
double LFCB[32][8] = {
{+2.262833655926780e+00, +8.133112690613385e-01, -5.301934948714359e-01,
-1.356648359034418e+00, -1.599521765631959e+00, -1.440987684300950e+00,
-1.143816483058210e+00, -7.552037679090641e-01}, // 0
{+2.945164791913764e+00, +2.411433179566788e+00, +9.604551064007274e-01,
-4.432264880769172e-01, -1.229136124255896e+00, -1.555900391181699e+00,
-1.496886559523759e+00, -1.116899865014692e+00}, // 1
{-2.186107070099790e+00, -1.971521356752276e+00, -1.787186196810059e+00,
-1.918658956855768e+00, -1.793991218365963e+00, -1.357384042572884e+00,
-7.054442793538694e-01, -4.781729447777114e-02}, // 2
{+6.936882365289195e-01, +9.556098571582197e-01, +5.752307870387333e-01,
-1.146034194628886e-01, -6.460506374360290e-01, -9.523513704496247e-01,
-1.074052472261504e+00, -7.580877070949045e-01}, // 3
{-1.297521323152956e+00, -7.403690571778526e-01, -3.453724836421064e-01,
-3.132856962479401e-01, -4.029772428244766e-01, -3.720208534652272e-01,
-7.834141773237381e-02, +9.704413039922949e-02}, // 4
{+9.146520378306716e-01, +1.742930434352573e+00, +1.909066268599861e+00,
+1.544084838426651e+00, +1.093449607614550e+00, +6.474795495182776e-01,
+3.617907524496421e-02, -2.970928071788889e-01}, // 5
{-2.514288125789621e+00, -2.891752713843728e+00, -2.004506667594338e+00,
-7.509122739031269e-01, +4.412021049046914e-01, +1.201909876010087e+00,
+1.327428572572904e+00, +1.220490811409839e+00}, // 6
{-9.221884048123851e-01, +6.324951414405520e-01, +1.087364312546411e+00,
+6.086286245358197e-01, +1.311745675473482e-01, -2.961491577437521e-01,
-2.070135165256287e-01, +1.349249166420795e-01}, // 7
{+7.903222883692664e-01, +6.284012618761988e-01, +3.931179235404499e-01,
+4.800077108669007e-01, +4.478151380501427e-01, +2.097342145522343e-01,
+6.566919964280205e-03, -8.612423420618573e-02}, // 8
// LC3 Specification d09r01.pdf; Page 103 of 177
{+1.447755801787238e+00, +2.723999516749523e+00, +2.310832687375278e+00,
+9.350512695665294e-01, -2.747439113836877e-01, -9.020776968286019e-01,
-9.406815119454044e-01, -6.336970389743102e-01}, // 9
{+7.933545264174744e-01, +1.439311855234535e-02, -5.678348447296789e-01,
-6.547604679167449e-01, -4.794589984757430e-01, -1.738946619028885e-01,
+6.801627055154381e-02, +2.951259483697938e-01}, // 10
{+2.724253473850336e+00, +2.959475724048243e+00, +1.849535592684608e+00,
+5.632849223223643e-01, +1.399170881250724e-01, +3.596410933662221e-01,
+6.894613547745887e-01, +6.397901768331046e-01}, // 11
{-5.308301983754000e-01, -2.126906828121638e-01, +5.766136283770966e-03,
+4.248714843837454e-01, +4.731289521586675e-01, +8.588941993212806e-01,
+1.191111608544352e+00, +9.961896696383581e-01}, // 12
{+1.687284108450062e+00, +2.436145092376558e+00, +2.330194290782250e+00,
+1.779837778350905e+00, +1.444112953900818e+00, +1.519951770097301e+00,
+1.471993937504249e+00, +9.776824738917613e-01}, // 13
{-2.951832728018580e+00, -1.593934967733454e+00, -1.099187728780224e-01,
+3.886090729192574e-01, +5.129326495175837e-01, +6.281125970634966e-01,
+8.226217964306339e-01, +8.758914246550805e-01}, // 14
{+1.018783427856281e-01, +5.898573242289165e-01, +6.190476467934656e-01,
+1.267313138517963e+00, +2.419610477698038e+00, +2.251742525721865e+00,
+5.265370309912005e-01, -3.965915132279989e-01}, // 15
{+2.682545754984259e+00, +1.327380108994199e+00, +1.301852738040482e-01,
-3.385330885113471e-01, -3.682192358996665e-01, -1.916899467159607e-01,
-1.547823771539079e-01, -2.342071777743923e-01}, // 16
{+4.826979236804030e+00, +3.119478044924880e+00, +1.395136713851784e+00,
+2.502953159187215e-01, -3.936138393797931e-01, -6.434581730547007e-01,
-6.425707368569433e-01, -7.231932234440720e-01}, // 17
{+8.784199364703349e-02, -5.695868402385010e-01, -1.145060156688110e+00,
-1.669684881725975e+00, -1.845344176036817e+00, -1.564680273288019e+00,
-1.117467590764198e+00, -5.339816633667862e-01}, // 18
{+1.391023082043259e+00, +1.981464791994655e+00, +1.112657963887701e+00,
-2.201075094207434e-01, -7.749656115523655e-01, -5.940638741491173e-01,
+1.369376806289231e-01, +8.182428912643381e-01}, // 19
{+3.845858938891820e-01, -1.605887855365100e-01, -5.393668095577095e-01,
-5.293090787898571e-01, +1.904335474379324e-01, +2.560629181065215e+00,
+2.818963982452484e+00, +6.566708756961611e-01}, // 20
{+1.932273994417191e+00, +3.010301804120569e+00, +3.065438938262036e+00,
+2.501101608700079e+00, +1.930895929789344e+00, +5.721538109618367e-01,
-8.117417940810907e-01, -1.176418108619025e+00}, // 21
{+1.750804628998837e-01, -7.505228322489846e-01, -1.039438933422309e+00,
-1.135775089376484e+00, -1.041979038374938e+00, -1.520600989933816e-02,
+2.070483917167066e+00, +3.429489180816891e+00}, // 22
// LC3 Specification d09r01.pdf; Page 104 of 177
{-1.188170202505555e+00, +3.667928736626364e-01, +1.309578304090959e+00,
+1.683306872804914e+00, +1.251009242251268e+00, +9.423757516286146e-01,
+8.262504833741330e-01, +4.399527411209563e-01}, // 23
{+2.533222033270612e+00, +2.112746426959081e+00, +1.262884115020644e+00,
+7.615135124304274e-01, +5.221179379761699e-01, +1.186800697571213e-01,
-4.523468275073703e-01, -7.003524261611032e-01}, // 24
{+3.998898374856063e+00, +4.079017514519560e+00, +2.822856611024964e+00,
+1.726072128495800e+00, +6.471443773486192e-01, -3.311485212172380e-01,
-8.840425708487493e-01, -1.126973406454781e+00}, // 25
{+5.079025931863813e-01, +1.588384497895265e+00, +1.728990238692094e+00,
+1.006922302417256e+00, +3.771212318163816e-01, +4.763707668994976e-01,
+1.087547403721699e+00, +1.087562660992209e+00}, // 26
{+3.168568251075689e+00, +3.258534581594065e+00, +2.422305913285988e+00,
+1.794460776432612e+00, +1.521779106530886e+00, +1.171967065376021e+00,
+4.893945969806952e-01, -6.227957157187685e-02}, // 27
{+1.894147667317636e+00, +1.251086946092320e+00, +5.904512107206275e-01,
+6.083585832937136e-01, +8.781710100110816e-01, +1.119125109509496e+00,
+1.018576615503421e+00, +6.204538910117241e-01}, // 28
{+9.488806045171881e-01, +2.132394392499823e+00, +2.723453503442780e+00,
+2.769860768665877e+00, +2.542869732549456e+00, +2.020462638250194e+00,
+8.300458594009102e-01, -2.755691738882634e-02}, // 29
{-1.880267570456275e+00, -1.264310727587049e+00, +3.114249769686986e-01,
+1.836702103064300e+00, +2.256341918398738e+00, +2.048189984634735e+00,
+2.195268374585677e+00, +2.026596138366193e+00}, // 30
{+2.463757462771289e-01, +9.556217733930993e-01, +1.520467767417663e+00,
+1.976474004194571e+00, +1.940438671774617e+00, +2.233758472826862e+00,
+1.988359777584072e+00, +1.272326725547010e+00}}; // 31
double HFCB[32][8] = {
{+2.320284191244650e-01, -1.008902706044547e+00, -2.142235027894714e+00,
-2.375338135706641e+00, -2.230419330496551e+00, -2.175958812236960e+00,
-2.290659135409999e+00, -2.532863979798455e+00}, // 0
{-1.295039366736175e+00, -1.799299653843385e+00, -1.887031475315188e+00,
-1.809916596873323e+00, -1.763400384792061e+00, -1.834184284679500e+00,
-1.804809806874051e+00, -1.736795453174010e+00}, // 1
{+1.392857160458027e-01, -2.581851261717519e-01, -6.508045726701103e-01,
-1.068157317819692e+00, -1.619287415243023e+00, -2.187625664417564e+00,
-2.637575869390537e+00, -2.978977495750963e+00}, // 2
{-3.165131021857248e-01, -4.777476572098050e-01, -5.511620758797545e-01,
-4.847882833811970e-01, -2.383883944558142e-01, -1.430245072855038e-01,
+6.831866736490735e-02, +8.830617172880660e-02}, // 3
{+8.795184052264962e-01, +2.983400960071886e-01, -9.153863964057101e-01,
// LC3 Specification d09r01.pdf; Page 105 of 177
-2.206459747397620e+00, -2.741421809599509e+00, -2.861390742768913e+00,
-2.888415971052714e+00, -2.951826082625207e+00}, // 4
{-2.967019224553751e-01, -9.750049191745525e-01, -1.358575002469926e+00,
-9.837211058374442e-01, -6.529569391008090e-01, -9.899869929218105e-01,
-1.614672245988999e+00, -2.407123023851163e+00}, // 5
{+3.409811004696971e-01, +2.688997889460545e-01, +5.633356848280326e-02,
+4.991140468266853e-02, -9.541307274143691e-02, -7.601661460838854e-01,
-2.327581201770068e+00, -3.771554853856562e+00}, // 6
{-1.412297590775968e+00, -1.485221193498518e+00, -1.186035798347001e+00,
-6.250016344413516e-01, +1.539024974683036e-01, +5.763864978107553e-01,
+7.950926037988714e-01, +5.965646321449126e-01}, // 7
{-2.288395118273794e-01, -3.337190697846616e-01, -8.093213593246560e-01,
-1.635878769237973e+00, -1.884863973309819e+00, -1.644966913163562e+00,
-1.405157780466116e+00, -1.466664713261457e+00}, // 8
{-1.071486285444486e+00, -1.417670154562606e+00, -1.548917622654407e+00,
-1.452960624755303e+00, -1.031829700622701e+00, -6.906426402725842e-01,
-4.288438045321706e-01, -4.949602154088736e-01}, // 9
{-5.909885111880511e-01, -7.117377585376282e-02, +3.457195229473127e-01,
+3.005494609962507e-01, -1.118652182958568e+00, -2.440891511480490e+00,
-2.228547324507349e+00, -1.895092282108533e+00}, // 10
{-8.484340988361639e-01, -5.832268107088888e-01, +9.004236881428734e-02,
+8.450250075568864e-01, +1.065723845017161e+00, +7.375829993777555e-01,
+2.565904524599121e-01, -4.919633597623784e-01}, // 11
{+1.140691455623824e+00, +9.640168923982929e-01, +3.814612059847975e-01,
-4.828493406089983e-01, -1.816327212605887e+00, -2.802795127285548e+00,
-3.233857248338638e+00, -3.459087144914729e+00}, // 12
{-3.762832379674643e-01, +4.256754620961052e-02, +5.165476965923055e-01,
+2.517168818646298e-01, -2.161799675243032e-01, -5.340740911245042e-01,
-6.407860962621957e-01, -8.697450323741350e-01}, // 13
{+6.650041205984020e-01, +1.097907646907945e+00, +1.383426671120792e+00,
+1.343273586282854e+00, +8.229788368559223e-01, +2.158767985156789e-01,
-4.049257530802925e-01, -1.070256058705229e+00}, // 14
{-8.262659539826793e-01, -6.711812327666034e-01, -2.284955927794715e-01,
+5.189808525519373e-01, +1.367218963402784e+00, +2.180230382530922e+00,
+2.535960927501071e+00, +2.201210988600361e+00}, // 15
{+1.410083268321729e+00, +7.544419078354684e-01, -1.305505849586310e+00,
-1.871337113509707e+00, -1.240086851563054e+00, -1.267129248662737e+00,
-2.036708130039070e+00, -2.896851622423807e+00}, // 16
{+3.613868175743476e-01, -2.199917054278258e-02, -5.793688336338242e-01,
-8.794279609410701e-01, -8.506850234081188e-01, -7.793970501558157e-01,
-7.321829272918255e-01, -8.883485148212548e-01}, // 17
{+4.374692393303287e-01, +3.054404196059607e-01, -7.387865664783739e-03,
// LC3 Specification d09r01.pdf; Page 106 of 177
-4.956498547102520e-01, -8.066512711183929e-01, -1.224318919844005e+00,
-1.701577700431810e+00, -2.244919137556108e+00}, // 18
{+6.481003189965029e-01, +6.822991336406795e-01, +2.532474643329756e-01,
+7.358421437884688e-02, +3.142167093890103e-01, +2.347298809236790e-01,
+1.446001344798368e-01, -6.821201788801744e-02}, // 19
{+1.119198330913041e+00, +1.234655325360046e+00, +5.891702380853181e-01,
-1.371924596531664e+00, -2.370957072415767e+00, -2.007797826823599e+00,
-1.666885402243946e+00, -1.926318462584058e+00}, // 20
{+1.418474970871759e-01, -1.106600706331509e-01, -2.828245925436287e-01,
-6.598134746141936e-03, +2.859292796272158e-01, +4.604455299529710e-02,
-6.025964155778858e-01, -2.265687286325748e+00}, // 21
{+5.040469553902519e-01, +8.269821629590972e-01, +1.119812362918282e+00,
+1.179140443327336e+00, +1.079874291972597e+00, +6.975362390675000e-01,
-9.125488173710808e-01, -3.576847470627726e+00}, // 22
{-5.010760504793567e-01, -3.256780060814170e-01, +2.807981949470768e-02,
+2.620545547631326e-01, +3.605908060857668e-01, +6.356237220536995e-01,
+9.590124671781544e-01, +1.307451566886533e+00}, // 23
{+3.749709827096420e+00, +1.523426118470452e+00, -4.577156618978547e-01,
-7.987110082431923e-01, -3.868193293091003e-01, -3.759010622312032e-01,
-6.578368999305377e-01, -1.281639642436027e+00}, // 24
{-1.152589909805491e+00, -1.108008859062412e+00, -5.626151165124718e-01,
-2.205621237656746e-01, -3.498428803366437e-01, -7.534327702504950e-01,
-9.885965933963837e-01, -1.287904717914711e+00}, // 25
{+1.028272464221398e+00, +1.097705193898282e+00, +7.686455457647760e-01,
+2.060819777407656e-01, -3.428057350919982e-01, -7.549394046253397e-01,
-1.041961776319998e+00, -1.503356529555287e+00}, // 26
{+1.288319717078174e-01, +6.894393952648783e-01, +1.123469050095749e+00,
+1.309345231065936e+00, +1.355119647139345e+00, +1.423113814707990e+00,
+1.157064491909045e+00, +4.063194375168383e-01}, // 27
{+1.340330303347565e+00, +1.389968250677893e+00, +1.044679217088833e+00,
+6.358227462443666e-01, -2.747337555184823e-01, -1.549233724306950e+00,
-2.442397102780069e+00, -3.024576069445502e+00}, // 28
{+2.138431054193125e+00, +4.247112673031041e+00, +2.897341098304393e+00,
+9.327306580268148e-01, -2.928222497298096e-01, -8.104042968531823e-01,
-7.888680987564828e-01, -9.353531487613377e-01}, // 29
{+5.648304873553961e-01, +1.591849779587432e+00, +2.397716990151462e+00,
+3.036973436007040e+00, +2.664243503371508e+00, +1.393044850326060e+00,
+4.038340235957454e-01, -6.562709713281135e-01}, // 30
{-4.224605475860865e-01, +3.261496250498011e-01, +1.391713133422612e+00,
+2.231466146364735e+00, +2.611794421696881e+00, +2.665403401965702e+00,
+2.401035541057067e+00, +1.759203796708810e+00} // 31
};
// LC3 Specification d09r01.pdf; Page 107 of 177
double sns_vq_reg_adj_gains[2] = {8915.0 / 4096.0, 12054.0 / 4096.0};
double sns_vq_reg_lf_adj_gains[4] = {6245.0 / 4096.0, 15043.0 / 4096.0,
17861.0 / 4096.0, 21014.0 / 4096.0};
double sns_vq_near_adj_gains[4] = {7099.0 / 4096.0, 9132.0 / 4096.0,
11253.0 / 4096.0, 14808.0 / 4096.0};
double sns_vq_far_adj_gains[8] = {
4336.0 / 4096.0, 5067.0 / 4096.0, 5895.0 / 4096.0, 8149.0 / 4096.0,
10235.0 / 4096.0, 12825.0 / 4096.0, 16868.0 / 4096.0, 19882.0 / 4096.0};
int sns_gainMSBbits[4] = {1, 1, 2, 2};
int sns_gainLSBbits[4] = {0, 1, 0, 1};
unsigned int MPVQ_offsets[16][1 + 10] = {
/* k=0, k=1, k=2,... , k=10 */
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* n=0*/
{0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19}, /* n=1*/
{0, 1, 5, 13, 25, 41, 61, 85, 113, 145, 181},
{0, 1, 7, 25, 63, 129, 231, 377, 575, 833, 1159},
{0, 1, 9, 41, 129, 321, 681, 1289, 2241, 3649, 5641},
{0, 1, 11, 61, 231, 681, 1683, 3653, 7183, 13073, 22363},
{0, 1, 13, 85, 377, 1289, 3653, 8989, 19825, 40081, 75517},
{0, 1, 15, 113, 575, 2241, 7183, 19825, 48639, 108545, 224143},
{0, 1, 17, 145, 833, 3649, 13073, 40081, 108545, 265729, 598417},
{0, 1, 19, 181, 1159, 5641, 22363, 75517, 224143, 598417, 1462563},
{0, 1, 21, 221, 1561, 8361, 36365, 134245, 433905, 1256465, 3317445},
{0, 1, 23, 265, 2047, 11969, 56695, 227305, 795455, 2485825, 7059735},
{0, 1, 25, 313, 2625, 16641, 85305, 369305, 1392065, 4673345, 14218905},
{0, 1, 27, 365, 3303, 22569, 124515, 579125, 2340495, 8405905, 27298155},
{0, 1, 29, 421, 4089, 29961, 177045, 880685, 3800305, 14546705,
50250765}, /* n=14*/
{0, 1, 31, 481, 4991, 39041, 246047, 1303777, 5984767, 24331777,
89129247}, /* n=15*/
};
double D[16][16] = {
/* D consists of the base vectors of the DCT (orthogonalized DCT-II)*/
/* (the DCT base vector are stored in column-wise in this table)*/
/* first row results in the first coeff in fwd synthesis (dec+(enc))*/
/* first column results in the first coeff in the analysis(encoder) */
{+2.500000000000000e-01, +3.518509343815957e-01, +3.467599613305369e-01,
+3.383295002935882e-01, +3.266407412190941e-01, +3.118062532466678e-01,
+2.939689006048397e-01, +2.733004667504394e-01, +2.500000000000001e-01,
+2.242918965856591e-01, +1.964237395967756e-01, +1.666639146194367e-01,
+1.352990250365493e-01, +1.026311318805893e-01, +6.897484482073578e-02,
+3.465429229977293e-02}, // 0 Note: needed a ',' as correction compared to
// d09r01 (already fixed in d09r02_F2F)
{+2.500000000000000e-01, +3.383295002935882e-01, +2.939689006048397e-01,
+2.242918965856591e-01, +1.352990250365493e-01, +3.465429229977286e-02,
-6.897484482073579e-02, -1.666639146194366e-01, -2.500000000000001e-01,
-3.118062532466678e-01, -3.467599613305369e-01, -3.518509343815956e-01,
-3.266407412190941e-01, -2.733004667504394e-01, -1.964237395967756e-01,
-1.026311318805893e-01}, // 1
// LC3 Specification d09r01.pdf; Page 108 of 177
{+2.500000000000000e-01, +3.118062532466678e-01, +1.964237395967756e-01,
+3.465429229977286e-02, -1.352990250365493e-01, -2.733004667504394e-01,
-3.467599613305369e-01, -3.383295002935882e-01, -2.500000000000001e-01,
-1.026311318805894e-01, +6.897484482073574e-02, +2.242918965856590e-01,
+3.266407412190941e-01, +3.518509343815957e-01, +2.939689006048397e-01,
+1.666639146194367e-01}, // 2
{+2.500000000000000e-01, +2.733004667504394e-01, +6.897484482073575e-02,
-1.666639146194366e-01, -3.266407412190941e-01, -3.383295002935882e-01,
-1.964237395967755e-01, +3.465429229977288e-02, +2.500000000000001e-01,
+3.518509343815957e-01, +2.939689006048397e-01, +1.026311318805893e-01,
-1.352990250365493e-01, -3.118062532466679e-01, -3.467599613305369e-01,
-2.242918965856590e-01}, // 3
{+2.500000000000000e-01, +2.242918965856591e-01, -6.897484482073575e-02,
-3.118062532466678e-01, -3.266407412190941e-01, -1.026311318805894e-01,
+1.964237395967755e-01, +3.518509343815957e-01, +2.500000000000001e-01,
-3.465429229977282e-02, -2.939689006048397e-01, -3.383295002935882e-01,
-1.352990250365493e-01, +1.666639146194367e-01, +3.467599613305369e-01,
+2.733004667504394e-01}, // 4
{+2.500000000000000e-01, +1.666639146194366e-01, -1.964237395967756e-01,
-3.518509343815956e-01, -1.352990250365493e-01, +2.242918965856591e-01,
+3.467599613305369e-01, +1.026311318805894e-01, -2.500000000000001e-01,
-3.383295002935882e-01, -6.897484482073574e-02, +2.733004667504394e-01,
+3.266407412190941e-01, +3.465429229977289e-02, -2.939689006048397e-01,
-3.118062532466677e-01}, // 5
{+2.500000000000000e-01, +1.026311318805894e-01, -2.939689006048397e-01,
-2.733004667504393e-01, +1.352990250365493e-01, +3.518509343815957e-01,
+6.897484482073579e-02, -3.118062532466678e-01, -2.500000000000001e-01,
+1.666639146194366e-01, +3.467599613305369e-01, +3.465429229977293e-02,
-3.266407412190941e-01, -2.242918965856591e-01, +1.964237395967756e-01,
+3.383295002935882e-01}, // 6
{+2.500000000000000e-01, +3.465429229977287e-02, -3.467599613305369e-01,
-1.026311318805893e-01, +3.266407412190941e-01, +1.666639146194366e-01,
-2.939689006048397e-01, -2.242918965856591e-01, +2.500000000000001e-01,
+2.733004667504393e-01, -1.964237395967756e-01, -3.118062532466678e-01,
+1.352990250365493e-01, +3.383295002935882e-01, -6.897484482073578e-02,
-3.518509343815956e-01}, // 7
{+2.500000000000000e-01, -3.465429229977287e-02, -3.467599613305369e-01,
+1.026311318805893e-01, +3.266407412190941e-01, -1.666639146194366e-01,
-2.939689006048397e-01, +2.242918965856591e-01, +2.500000000000001e-01,
-2.733004667504393e-01, -1.964237395967756e-01, +3.118062532466678e-01,
+1.352990250365493e-01, -3.383295002935882e-01, -6.897484482073578e-02,
+3.518509343815956e-01}, // 8
{+2.500000000000000e-01, -1.026311318805894e-01, -2.939689006048397e-01,
+2.733004667504393e-01, +1.352990250365493e-01, -3.518509343815957e-01,
+6.897484482073579e-02, +3.118062532466678e-01, -2.500000000000001e-01,
-1.666639146194366e-01, +3.467599613305369e-01, -3.465429229977293e-02,
-3.266407412190941e-01, +2.242918965856591e-01, +1.964237395967756e-01,
-3.383295002935882e-01}, // 9
// LC3 Specification d09r01.pdf; Page 109 of 177
{+2.500000000000000e-01, -1.666639146194366e-01, -1.964237395967756e-01,
+3.518509343815956e-01, -1.352990250365493e-01, -2.242918965856591e-01,
+3.467599613305369e-01, -1.026311318805894e-01, -2.500000000000001e-01,
+3.383295002935882e-01, -6.897484482073574e-02, -2.733004667504394e-01,
+3.266407412190941e-01, -3.465429229977289e-02, -2.939689006048397e-01,
+3.118062532466677e-01}, // 10
{+2.500000000000000e-01, -2.242918965856591e-01, -6.897484482073575e-02,
+3.118062532466678e-01, -3.266407412190941e-01, +1.026311318805894e-01,
+1.964237395967755e-01, -3.518509343815957e-01, +2.500000000000001e-01,
+3.465429229977282e-02, -2.939689006048397e-01, +3.383295002935882e-01,
-1.352990250365493e-01, -1.666639146194367e-01, +3.467599613305369e-01,
-2.733004667504394e-01}, // 11
{+2.500000000000000e-01, -2.733004667504394e-01, +6.897484482073575e-02,
+1.666639146194366e-01, -3.266407412190941e-01, +3.383295002935882e-01,
-1.964237395967755e-01, -3.465429229977288e-02, +2.500000000000001e-01,
-3.518509343815957e-01, +2.939689006048397e-01, -1.026311318805893e-01,
-1.352990250365493e-01, +3.118062532466679e-01, -3.467599613305369e-01,
+2.242918965856590e-01}, // 12
{+2.500000000000000e-01, -3.118062532466678e-01, +1.964237395967756e-01,
-3.465429229977286e-02, -1.352990250365493e-01, +2.733004667504394e-01,
-3.467599613305369e-01, +3.383295002935882e-01, -2.500000000000001e-01,
+1.026311318805894e-01, +6.897484482073574e-02, -2.242918965856590e-01,
+3.266407412190941e-01, -3.518509343815957e-01, +2.939689006048397e-01,
-1.666639146194367e-01}, // 13
{+2.500000000000000e-01, -3.383295002935882e-01, +2.939689006048397e-01,
-2.242918965856591e-01, +1.352990250365493e-01, -3.465429229977286e-02,
-6.897484482073579e-02, +1.666639146194366e-01, -2.500000000000001e-01,
+3.118062532466678e-01, -3.467599613305369e-01, +3.518509343815956e-01,
-3.266407412190941e-01, +2.733004667504394e-01, -1.964237395967756e-01,
+1.026311318805893e-01}, // 14
{+2.500000000000000e-01, -3.518509343815957e-01, +3.467599613305369e-01,
-3.383295002935882e-01, +3.266407412190941e-01, -3.118062532466678e-01,
+2.939689006048397e-01, -2.733004667504394e-01, +2.500000000000001e-01,
-2.242918965856591e-01, +1.964237395967756e-01, -1.666639146194367e-01,
+1.352990250365493e-01, -1.026311318805893e-01, +6.897484482073578e-02,
-3.465429229977293e-02}}; // 15