On 01/15/2017 09:48 AM, David Rowe wrote:
>
> We need to call analyse_one_frame() every 10ms as that's the internal
> frame rate of the core sinusoidal modeling inside Codec 2. Note the ptr
> into the input speech vector is offset by 80 samples (10ms) each time.
> We need the input speech sample driver to supply us with a 320 sample
> (40ms) input vector. Various states need to be updated even though we
> toss the output model parameters away for 3/4 of the frames in 700C.
>
> Just transmitting the model parameters 1 in every 4 frames is like
> "decimation in time" of any sampled sequence. At the decoder, to
> reconstruct the missing frames (say 2,3,4) we interpolate between need
> frames 1 and 5.
>
> So we could send a sequence of frames 1,5,9 or 2,6,10 ... either way you
> get a 40ms latency.
The 40ms I get, but to me the current code looks like it is introducing
yet another 30ms latency by not taking the updated model into account
untill the next call to the function. I can even see it in the energy
output of the different frames, it is almost a whole frame delayed
compared to the other modes.
Wouldn't the following change remove the 30ms without changing the reset
of the interpolation?
--- src/codec2.c (revision 2964)
+++ src/codec2.c (working copy)
@@ -1797,8 +1797,11 @@
memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8));
- analyse_one_frame(c2, &model, speech);
+ for(i=0; i<M; i++) {
+ analyse_one_frame(c2, &model, &speech[i*N_SAMP]);
+ }
+
int K = 20;
float rate_K_vec[K], mean;
float rate_K_vec_no_mean[K], rate_K_vec_no_mean_[K];
@@ -1812,10 +1815,6 @@
rate_K_vec_no_mean,
rate_K_vec_no_mean_);
- for(i=1; i<M; i++) {
- analyse_one_frame(c2, &model, &speech[i*N_SAMP]);
- }
-
pack_natural_or_gray(bits, &nbit, indexes[0], 9, 0);
pack_natural_or_gray(bits, &nbit, indexes[1], 9, 0);
pack_natural_or_gray(bits, &nbit, indexes[2], 4, 0);
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2