diff libtwamr/bitno.c @ 254:f931e704adc5

libtwamr: bits and parameter packing
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 05 Apr 2024 07:41:31 +0000
parents
children 9beb01439a90
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libtwamr/bitno.c	Fri Apr 05 07:41:31 2024 +0000
@@ -0,0 +1,94 @@
+/*
+ * This module holds the bitno[] table (intermodule linkage)
+ * and the set of static per-mode tables referenced from it,
+ * originally in bitno.tab in 3GPP reference source.
+ */
+
+#include "typedef.h"
+#include "namespace.h"
+#include "int_defs.h"
+
+/* parameter sizes (# of bits), one table per mode */
+
+static const Word16 bitno_MR475[PRMNO_MR475] = {
+   8, 8, 7,                                 /* LSP VQ          */
+   8, 7, 2, 8,                              /* first subframe  */
+   4, 7, 2,                                 /* second subframe */
+   4, 7, 2, 8,                              /* third subframe  */
+   4, 7, 2,                                 /* fourth subframe */
+};
+
+static const Word16 bitno_MR515[PRMNO_MR515] = {
+   8, 8, 7,                                 /* LSP VQ          */
+   8, 7, 2, 6,                              /* first subframe  */
+   4, 7, 2, 6,                              /* second subframe */
+   4, 7, 2, 6,                              /* third subframe  */
+   4, 7, 2, 6,                              /* fourth subframe */
+};
+
+static const Word16 bitno_MR59[PRMNO_MR59] = {
+   8, 9, 9,                                 /* LSP VQ          */
+   8, 9, 2, 6,                              /* first subframe  */
+   4, 9, 2, 6,                              /* second subframe */
+   8, 9, 2, 6,                              /* third subframe  */
+   4, 9, 2, 6,                              /* fourth subframe */
+};
+
+static const Word16 bitno_MR67[PRMNO_MR67] = {
+   8, 9, 9,                                 /* LSP VQ          */
+   8, 11, 3, 7,                             /* first subframe  */
+   4, 11, 3, 7,                             /* second subframe */
+   8, 11, 3, 7,                             /* third subframe  */
+   4, 11, 3, 7,                             /* fourth subframe */
+};
+
+static const Word16 bitno_MR74[PRMNO_MR74] = {
+   8, 9, 9,                                 /* LSP VQ          */
+   8, 13, 4, 7,                             /* first subframe  */
+   5, 13, 4, 7,                             /* second subframe */
+   8, 13, 4, 7,                             /* third subframe  */
+   5, 13, 4, 7,                             /* fourth subframe */
+};
+
+static const Word16 bitno_MR795[PRMNO_MR795] = {
+   9, 9, 9,                                 /* LSP VQ          */
+   8, 13, 4, 4, 5,                          /* first subframe  */
+   6, 13, 4, 4, 5,                          /* second subframe */
+   8, 13, 4, 4, 5,                          /* third subframe  */
+   6, 13, 4, 4, 5,                          /* fourth subframe */
+};
+
+static const Word16 bitno_MR102[PRMNO_MR102] = {
+   8, 9, 9,                                 /* LSP VQ          */
+   8, 1, 1, 1, 1, 10, 10, 7, 7,             /* first subframe  */
+   5, 1, 1, 1, 1, 10, 10, 7, 7,             /* second subframe */
+   8, 1, 1, 1, 1, 10, 10, 7, 7,             /* third subframe  */
+   5, 1, 1, 1, 1, 10, 10, 7, 7,             /* fourth subframe */
+};
+
+static const Word16 bitno_MR122[PRMNO_MR122] = {
+   7, 8, 9, 8, 6,                           /* LSP VQ          */
+   9, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5,   /* first subframe  */
+   6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5,   /* second subframe */
+   9, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5,   /* third subframe  */
+   6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5    /* fourth subframe */
+};
+
+static const Word16 bitno_MRDTX[PRMNO_MRDTX] = {
+  3,
+  8, 9, 9,
+  6
+};
+
+/* overall table with all parameter sizes for all modes */
+const Word16 *bitno[9] = {
+   bitno_MR475,
+   bitno_MR515,
+   bitno_MR59,
+   bitno_MR67,
+   bitno_MR74,
+   bitno_MR795,
+   bitno_MR102,
+   bitno_MR122,
+   bitno_MRDTX
+};