Mode cleanup (removed redundant mdctSize field)
This commit is contained in:
parent
f477d5806e
commit
60ff999118
4 changed files with 39 additions and 36 deletions
|
@ -61,12 +61,15 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
|
||||||
fprintf(file, "#include \"rate.h\"\n");
|
fprintf(file, "#include \"rate.h\"\n");
|
||||||
|
|
||||||
fprintf(file, "\n");
|
fprintf(file, "\n");
|
||||||
|
|
||||||
for (i=0;i<nb_modes;i++)
|
for (i=0;i<nb_modes;i++)
|
||||||
{
|
{
|
||||||
CELTMode *mode = modes[i];
|
CELTMode *mode = modes[i];
|
||||||
fprintf(file, "#ifndef DEF_EBANDS%d_%d\n", mode->Fs, mode->mdctSize);
|
int mdctSize;
|
||||||
fprintf(file, "#define DEF_EBANDS%d_%d\n", mode->Fs, mode->mdctSize);
|
mdctSize = mode->shortMdctSize*mode->nbShortMdcts;
|
||||||
fprintf (file, "static const celt_int16 eBands%d_%d[%d] = {\n", mode->Fs, mode->mdctSize, mode->nbEBands+2);
|
fprintf(file, "#ifndef DEF_EBANDS%d_%d\n", mode->Fs, mdctSize);
|
||||||
|
fprintf(file, "#define DEF_EBANDS%d_%d\n", mode->Fs, mdctSize);
|
||||||
|
fprintf (file, "static const celt_int16 eBands%d_%d[%d] = {\n", mode->Fs, mdctSize, mode->nbEBands+2);
|
||||||
for (j=0;j<mode->nbEBands+2;j++)
|
for (j=0;j<mode->nbEBands+2;j++)
|
||||||
fprintf (file, "%d, ", mode->eBands[j]);
|
fprintf (file, "%d, ", mode->eBands[j]);
|
||||||
fprintf (file, "};\n");
|
fprintf (file, "};\n");
|
||||||
|
@ -83,9 +86,9 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
|
||||||
fprintf(file, "#endif\n");
|
fprintf(file, "#endif\n");
|
||||||
fprintf(file, "\n");
|
fprintf(file, "\n");
|
||||||
|
|
||||||
fprintf(file, "#ifndef DEF_ALLOC_VECTORS%d_%d\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "#ifndef DEF_ALLOC_VECTORS%d_%d\n", mode->Fs, mdctSize);
|
||||||
fprintf(file, "#define DEF_ALLOC_VECTORS%d_%d\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "#define DEF_ALLOC_VECTORS%d_%d\n", mode->Fs, mdctSize);
|
||||||
fprintf (file, "static const unsigned char allocVectors%d_%d[%d] = {\n", mode->Fs, mode->mdctSize, mode->nbEBands*mode->nbAllocVectors);
|
fprintf (file, "static const unsigned char allocVectors%d_%d[%d] = {\n", mode->Fs, mdctSize, mode->nbEBands*mode->nbAllocVectors);
|
||||||
for (j=0;j<mode->nbAllocVectors;j++)
|
for (j=0;j<mode->nbAllocVectors;j++)
|
||||||
{
|
{
|
||||||
for (k=0;k<mode->nbEBands;k++)
|
for (k=0;k<mode->nbEBands;k++)
|
||||||
|
@ -98,72 +101,71 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
|
||||||
|
|
||||||
for (k=0;(1<<k>>1)<=mode->nbShortMdcts;k++)
|
for (k=0;(1<<k>>1)<=mode->nbShortMdcts;k++)
|
||||||
{
|
{
|
||||||
int mdctSize = mode->shortMdctSize;
|
int mdctSize2 = mode->shortMdctSize;
|
||||||
if (k>=1)
|
if (k>=1)
|
||||||
mdctSize <<= k-1;
|
mdctSize2 <<= k-1;
|
||||||
else
|
else
|
||||||
mdctSize >>= 1;
|
mdctSize2 >>= 1;
|
||||||
fprintf(file, "#ifndef DEF_ALLOC_CACHE%d_%d\n", mode->Fs, mdctSize);
|
fprintf(file, "#ifndef DEF_ALLOC_CACHE%d_%d\n", mode->Fs, mdctSize2);
|
||||||
fprintf(file, "#define DEF_ALLOC_CACHE%d_%d\n", mode->Fs, mdctSize);
|
fprintf(file, "#define DEF_ALLOC_CACHE%d_%d\n", mode->Fs, mdctSize2);
|
||||||
for (j=0;j<mode->nbEBands;j++)
|
for (j=0;j<mode->nbEBands;j++)
|
||||||
{
|
{
|
||||||
int m;
|
int m;
|
||||||
if (mode->_bits[k][j]==NULL)
|
if (mode->_bits[k][j]==NULL)
|
||||||
{
|
{
|
||||||
fprintf (file, "#define allocCache_band%d_%d_%d NULL\n", j, mode->Fs, mdctSize);
|
fprintf (file, "#define allocCache_band%d_%d_%d NULL\n", j, mode->Fs, mdctSize2);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (j==0 || (mode->_bits[k][j] != mode->_bits[k][j-1]))
|
if (j==0 || (mode->_bits[k][j] != mode->_bits[k][j-1]))
|
||||||
{
|
{
|
||||||
fprintf (file, "static const celt_int16 allocCache_band%d_%d_%d[MAX_PSEUDO] = {\n", j, mode->Fs, mdctSize);
|
fprintf (file, "static const celt_int16 allocCache_band%d_%d_%d[MAX_PSEUDO] = {\n", j, mode->Fs, mdctSize2);
|
||||||
for (m=0;m<MAX_PSEUDO;m++)
|
for (m=0;m<MAX_PSEUDO;m++)
|
||||||
fprintf (file, "%2d, ", mode->_bits[k][j][m]);
|
fprintf (file, "%2d, ", mode->_bits[k][j][m]);
|
||||||
fprintf (file, "};\n");
|
fprintf (file, "};\n");
|
||||||
} else {
|
} else {
|
||||||
fprintf (file, "#define allocCache_band%d_%d_%d allocCache_band%d_%d_%d\n", j, mode->Fs, mdctSize, j-1, mode->Fs, mdctSize);
|
fprintf (file, "#define allocCache_band%d_%d_%d allocCache_band%d_%d_%d\n", j, mode->Fs, mdctSize2, j-1, mode->Fs, mdctSize2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf (file, "static const celt_int16 *allocCache%d_%d[%d] = {\n", mode->Fs, mdctSize, mode->nbEBands);
|
fprintf (file, "static const celt_int16 *allocCache%d_%d[%d] = {\n", mode->Fs, mdctSize2, mode->nbEBands);
|
||||||
for (j=0;j<mode->nbEBands;j++)
|
for (j=0;j<mode->nbEBands;j++)
|
||||||
{
|
{
|
||||||
fprintf (file, "allocCache_band%d_%d_%d, ", j, mode->Fs, mdctSize);
|
fprintf (file, "allocCache_band%d_%d_%d, ", j, mode->Fs, mdctSize2);
|
||||||
}
|
}
|
||||||
fprintf (file, "};\n");
|
fprintf (file, "};\n");
|
||||||
fprintf(file, "#endif\n");
|
fprintf(file, "#endif\n");
|
||||||
fprintf(file, "\n");
|
fprintf(file, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(file, "#ifndef DEF_LOGN%d_%d\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "#ifndef DEF_LOGN%d_%d\n", mode->Fs, mdctSize);
|
||||||
fprintf(file, "#define DEF_LOGN%d_%d\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "#define DEF_LOGN%d_%d\n", mode->Fs, mdctSize);
|
||||||
fprintf (file, "static const celt_int16 logN%d_%d[%d] = {\n", mode->Fs, mode->mdctSize, mode->nbEBands);
|
fprintf (file, "static const celt_int16 logN%d_%d[%d] = {\n", mode->Fs, mdctSize, mode->nbEBands);
|
||||||
for (j=0;j<mode->nbEBands;j++)
|
for (j=0;j<mode->nbEBands;j++)
|
||||||
fprintf (file, "%d, ", mode->logN[j]);
|
fprintf (file, "%d, ", mode->logN[j]);
|
||||||
fprintf (file, "};\n");
|
fprintf (file, "};\n");
|
||||||
fprintf(file, "#endif\n");
|
fprintf(file, "#endif\n");
|
||||||
fprintf(file, "\n");
|
fprintf(file, "\n");
|
||||||
|
|
||||||
fprintf(file, "static const CELTMode mode%d_%d_%d = {\n", mode->Fs, mode->mdctSize, mode->overlap);
|
fprintf(file, "static const CELTMode mode%d_%d_%d = {\n", mode->Fs, mdctSize, mode->overlap);
|
||||||
fprintf(file, "0x%x,\t/* marker */\n", 0xa110ca7e);
|
fprintf(file, "0x%x,\t/* marker */\n", 0xa110ca7e);
|
||||||
fprintf(file, INT32 ",\t/* Fs */\n", mode->Fs);
|
fprintf(file, INT32 ",\t/* Fs */\n", mode->Fs);
|
||||||
fprintf(file, "%d,\t/* overlap */\n", mode->overlap);
|
fprintf(file, "%d,\t/* overlap */\n", mode->overlap);
|
||||||
fprintf(file, "%d,\t/* mdctSize */\n", mode->mdctSize);
|
|
||||||
fprintf(file, "%d,\t/* nbEBands */\n", mode->nbEBands);
|
fprintf(file, "%d,\t/* nbEBands */\n", mode->nbEBands);
|
||||||
fprintf(file, "%d,\t/* pitchEnd */\n", mode->pitchEnd);
|
fprintf(file, "%d,\t/* pitchEnd */\n", mode->pitchEnd);
|
||||||
fprintf(file, "eBands%d_%d,\t/* eBands */\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "eBands%d_%d,\t/* eBands */\n", mode->Fs, mdctSize);
|
||||||
fprintf(file, WORD16 ",\t/* ePredCoef */\n", mode->ePredCoef);
|
fprintf(file, WORD16 ",\t/* ePredCoef */\n", mode->ePredCoef);
|
||||||
fprintf(file, "%d,\t/* nbAllocVectors */\n", mode->nbAllocVectors);
|
fprintf(file, "%d,\t/* nbAllocVectors */\n", mode->nbAllocVectors);
|
||||||
fprintf(file, "allocVectors%d_%d,\t/* allocVectors */\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "allocVectors%d_%d,\t/* allocVectors */\n", mode->Fs, mdctSize);
|
||||||
fprintf(file, "NULL,\t/* bits */\n");
|
fprintf(file, "NULL,\t/* bits */\n");
|
||||||
//fprintf(file, "allocCacheTop%d_%d,\t/* _bits */\n", mode->Fs, mode->mdctSize);
|
//fprintf(file, "allocCacheTop%d_%d,\t/* _bits */\n", mode->Fs, mode->mdctSize);
|
||||||
fprintf (file, "{ ");
|
fprintf (file, "{ ");
|
||||||
for (k=0;(1<<k>>1)<=mode->nbShortMdcts;k++)
|
for (k=0;(1<<k>>1)<=mode->nbShortMdcts;k++)
|
||||||
{
|
{
|
||||||
int mdctSize = mode->shortMdctSize;
|
int mdctSize2 = mode->shortMdctSize;
|
||||||
if (k>=1)
|
if (k>=1)
|
||||||
mdctSize <<= k-1;
|
mdctSize2 <<= k-1;
|
||||||
else
|
else
|
||||||
mdctSize >>= 1;
|
mdctSize2 >>= 1;
|
||||||
fprintf (file, "allocCache%d_%d, ", mode->Fs, mdctSize);
|
fprintf (file, "allocCache%d_%d, ", mode->Fs, mdctSize2);
|
||||||
}
|
}
|
||||||
fprintf (file, "}, /* _bits */\n");
|
fprintf (file, "}, /* _bits */\n");
|
||||||
|
|
||||||
|
@ -176,7 +178,7 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
|
||||||
fprintf(file, "%d,\t/* nbShortMdcts */\n", mode->nbShortMdcts);
|
fprintf(file, "%d,\t/* nbShortMdcts */\n", mode->nbShortMdcts);
|
||||||
fprintf(file, "%d,\t/* shortMdctSize */\n", mode->shortMdctSize);
|
fprintf(file, "%d,\t/* shortMdctSize */\n", mode->shortMdctSize);
|
||||||
fprintf(file, "0,\t/* prob */\n");
|
fprintf(file, "0,\t/* prob */\n");
|
||||||
fprintf(file, "logN%d_%d,\t/* logN */\n", mode->Fs, mode->mdctSize);
|
fprintf(file, "logN%d_%d,\t/* logN */\n", mode->Fs, mdctSize);
|
||||||
fprintf(file, "0x%x,\t/* marker */\n", 0xa110ca7e);
|
fprintf(file, "0x%x,\t/* marker */\n", 0xa110ca7e);
|
||||||
fprintf(file, "};\n");
|
fprintf(file, "};\n");
|
||||||
}
|
}
|
||||||
|
@ -187,7 +189,9 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
|
||||||
for (i=0;i<nb_modes;i++)
|
for (i=0;i<nb_modes;i++)
|
||||||
{
|
{
|
||||||
CELTMode *mode = modes[i];
|
CELTMode *mode = modes[i];
|
||||||
fprintf(file, "&mode%d_%d_%d,\n", mode->Fs, mode->mdctSize, mode->overlap);
|
int mdctSize;
|
||||||
|
mdctSize = mode->shortMdctSize*mode->nbShortMdcts;
|
||||||
|
fprintf(file, "&mode%d_%d_%d,\n", mode->Fs, mdctSize, mode->overlap);
|
||||||
}
|
}
|
||||||
fprintf(file, "};\n");
|
fprintf(file, "};\n");
|
||||||
}
|
}
|
||||||
|
@ -203,8 +207,8 @@ void dump_header(FILE *file, CELTMode **modes, int nb_modes)
|
||||||
{
|
{
|
||||||
CELTMode *mode = modes[i];
|
CELTMode *mode = modes[i];
|
||||||
if (frame_size==0)
|
if (frame_size==0)
|
||||||
frame_size = mode->mdctSize;
|
frame_size = mode->shortMdctSize*mode->nbShortMdcts;
|
||||||
else if (frame_size != mode->mdctSize)
|
else if (frame_size != mode->shortMdctSize*mode->nbShortMdcts)
|
||||||
frame_size = -1;
|
frame_size = -1;
|
||||||
if (overlap==0)
|
if (overlap==0)
|
||||||
overlap = mode->overlap;
|
overlap = mode->overlap;
|
||||||
|
|
|
@ -66,7 +66,8 @@ int celt_header_init(CELTHeader *header, const CELTMode *m, int channels)
|
||||||
header->header_size = 56;
|
header->header_size = 56;
|
||||||
header->sample_rate = m->Fs;
|
header->sample_rate = m->Fs;
|
||||||
header->nb_channels = channels;
|
header->nb_channels = channels;
|
||||||
header->frame_size = m->mdctSize;
|
/*FIXME: This won't work for fariable frame size */
|
||||||
|
header->frame_size = m->shortMdctSize*m->nbShortMdcts;
|
||||||
header->overlap = m->overlap;
|
header->overlap = m->overlap;
|
||||||
header->bytes_per_packet = -1;
|
header->bytes_per_packet = -1;
|
||||||
header->extra_headers = 0;
|
header->extra_headers = 0;
|
||||||
|
|
|
@ -285,7 +285,7 @@ CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error)
|
||||||
for (i=0;i<TOTAL_MODES;i++)
|
for (i=0;i<TOTAL_MODES;i++)
|
||||||
{
|
{
|
||||||
if (Fs == static_mode_list[i]->Fs &&
|
if (Fs == static_mode_list[i]->Fs &&
|
||||||
frame_size == static_mode_list[i]->mdctSize)
|
frame_size == static_mode_list[i]->shortMdctSize*static_mode_list[i]->nbShortMdcts)
|
||||||
{
|
{
|
||||||
m = static_mode_list[i];
|
m = static_mode_list[i];
|
||||||
break;
|
break;
|
||||||
|
@ -337,7 +337,6 @@ CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error)
|
||||||
goto failure;
|
goto failure;
|
||||||
mode->marker_start = MODEPARTIAL;
|
mode->marker_start = MODEPARTIAL;
|
||||||
mode->Fs = Fs;
|
mode->Fs = Fs;
|
||||||
mode->mdctSize = frame_size;
|
|
||||||
mode->ePredCoef = QCONST16(.8f,15);
|
mode->ePredCoef = QCONST16(.8f,15);
|
||||||
|
|
||||||
if (frame_size >= 640 && (frame_size%16)==0)
|
if (frame_size >= 640 && (frame_size%16)==0)
|
||||||
|
@ -354,7 +353,7 @@ CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error)
|
||||||
mode->nbShortMdcts = 1;
|
mode->nbShortMdcts = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mode->shortMdctSize = mode->mdctSize/mode->nbShortMdcts;
|
mode->shortMdctSize = frame_size/mode->nbShortMdcts;
|
||||||
res = (mode->Fs+mode->shortMdctSize)/(2*mode->shortMdctSize);
|
res = (mode->Fs+mode->shortMdctSize)/(2*mode->shortMdctSize);
|
||||||
|
|
||||||
mode->eBands = compute_ebands(Fs, mode->shortMdctSize, res, &mode->nbEBands);
|
mode->eBands = compute_ebands(Fs, mode->shortMdctSize, res, &mode->nbEBands);
|
||||||
|
|
|
@ -81,7 +81,6 @@ struct CELTMode {
|
||||||
celt_uint32 marker_start;
|
celt_uint32 marker_start;
|
||||||
celt_int32 Fs;
|
celt_int32 Fs;
|
||||||
int overlap;
|
int overlap;
|
||||||
int mdctSize;
|
|
||||||
|
|
||||||
int nbEBands;
|
int nbEBands;
|
||||||
int pitchEnd;
|
int pitchEnd;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue