comparison qcelpdata.h @ 8127:3b5256153553 libavcodec

More OKed parts of the QCELP decoder patch by Kenan Gillet, kenan.gillet gmail com
author vitor
date Tue, 11 Nov 2008 18:50:38 +0000
parents cd756806be02
children f27d01aff4af
comparison
equal deleted inserted replaced
8126:257459ea9e7b 8127:3b5256153553
377 qcelp_lspvq4, 377 qcelp_lspvq4,
378 qcelp_lspvq5 378 qcelp_lspvq5
379 }; 379 };
380 380
381 /** 381 /**
382 * the final gain scalefactor before clipping into a usable output float
383 */
384 #define QCELP_SCALE 8192.
385
386 /**
387 * table for computing Ga (decoded linear codebook gain magnitude)
388 *
389 * @note The table could fit in int16_t in x*8 form, but it seems
390 * to be slower on x86
391 *
392 * TIA/EIA/IS-733 2.4.6.2.1-3
393 */
394
395 static const float qcelp_g12ga[61] = {
396 1.000/QCELP_SCALE, 1.125/QCELP_SCALE, 1.250/QCELP_SCALE, 1.375/QCELP_SCALE,
397 1.625/QCELP_SCALE, 1.750/QCELP_SCALE, 2.000/QCELP_SCALE, 2.250/QCELP_SCALE,
398 2.500/QCELP_SCALE, 2.875/QCELP_SCALE, 3.125/QCELP_SCALE, 3.500/QCELP_SCALE,
399 4.000/QCELP_SCALE, 4.500/QCELP_SCALE, 5.000/QCELP_SCALE, 5.625/QCELP_SCALE,
400 6.250/QCELP_SCALE, 7.125/QCELP_SCALE, 8.000/QCELP_SCALE, 8.875/QCELP_SCALE,
401 10.000/QCELP_SCALE, 11.250/QCELP_SCALE, 12.625/QCELP_SCALE, 14.125/QCELP_SCALE,
402 15.875/QCELP_SCALE, 17.750/QCELP_SCALE, 20.000/QCELP_SCALE, 22.375/QCELP_SCALE,
403 25.125/QCELP_SCALE, 28.125/QCELP_SCALE, 31.625/QCELP_SCALE, 35.500/QCELP_SCALE,
404 39.750/QCELP_SCALE, 44.625/QCELP_SCALE, 50.125/QCELP_SCALE, 56.250/QCELP_SCALE,
405 63.125/QCELP_SCALE, 70.750/QCELP_SCALE, 79.375/QCELP_SCALE, 89.125/QCELP_SCALE,
406 100.000/QCELP_SCALE, 112.250/QCELP_SCALE, 125.875/QCELP_SCALE, 141.250/QCELP_SCALE,
407 158.500/QCELP_SCALE, 177.875/QCELP_SCALE, 199.500/QCELP_SCALE, 223.875/QCELP_SCALE,
408 251.250/QCELP_SCALE, 281.875/QCELP_SCALE, 316.250/QCELP_SCALE, 354.875/QCELP_SCALE,
409 398.125/QCELP_SCALE, 446.625/QCELP_SCALE, 501.125/QCELP_SCALE, 563.375/QCELP_SCALE,
410 631.000/QCELP_SCALE, 708.000/QCELP_SCALE, 794.375/QCELP_SCALE, 891.250/QCELP_SCALE,
411 1000.000/QCELP_SCALE};
412
413 /**
382 * circular codebook for rate 1 frames in x*100 form 414 * circular codebook for rate 1 frames in x*100 form
383 * 415 *
384 * TIA/EIA/IS-733 2.4.6.1-2 416 * TIA/EIA/IS-733 2.4.6.1-2
385 */ 417 */
386 static const int16_t qcelp_rate_full_codebook[128] = { 418 static const int16_t qcelp_rate_full_codebook[128] = {
426 3, -3, 0, 0, 0, 0, 0, 0, 458 3, -3, 0, 0, 0, 0, 0, 0,
427 0, 0, 0, 0, 0, 0, 0, 0 459 0, 0, 0, 0, 0, 0, 0, 0
428 }; 460 };
429 #define QCELP_RATE_HALF_CODEBOOK_RATIO 0.5 461 #define QCELP_RATE_HALF_CODEBOOK_RATIO 0.5
430 462
463 /**
464 * table for impulse response of BPF used to filter
465 * the white excitation for framerate 1/4 synthesis
466 *
467 * Only half the tables are needed because of symetry.
468 *
469 * TIA/EIA/IS-733 2.4.8.1.2-1.1
470 */
471 static const double qcelp_rnd_fir_coefs[11] = {
472 -1.344519e-1, 1.735384e-2, -6.905826e-2, 2.434368e-2,
473 -8.210701e-2, 3.041388e-2, -9.251384e-2, 3.501983e-2,
474 -9.918777e-2, 3.749518e-2, 8.985137e-1
475 };
476
431 #endif /* AVCODEC_QCELPDATA_H */ 477 #endif /* AVCODEC_QCELPDATA_H */