Discussion:
[Freetel-codec2] Remove Quantization Test
Steve
2017-03-18 04:36:26 UTC
Permalink
Well, the weird experiment today, was to remove all of the Codec2
quantization, so I could hear what it sounds like before high compression.

It definitely sounds like a vocoder even sans compression :-)

Instead of packed bytes I just sent a class (structure) back and forth with
all the parameters as floats or booleans. Billions and billions of bits per
second :-)

Codec2Test <https://github.com/ObjectToolworks/Codec2Test>

Alas, it's Java, but it's a way to rapid application development for me. I
started with the 1300 vocoder, and then removed all the quantization stuff.

The thing is, I think the raw vocoder sounds a lot like 1300 mode. That is,
most of the warble is already there before the compression and bit errors.

Now admittedly, the Java code might not be perfect, so there is that error
to think about.

Steve
David Rowe
2017-03-18 05:38:43 UTC
Permalink
Hello Steve,

Listening to the unquantised vocoder model is a good test. If the
quantisers are perfect, then the quantised and unquantised should sound
the same, but usually we trade off some quality in that step.

There is also some resampling going on, like moving between 10 and 40ms
frame updates.

c2sim can be used to simulate various stages of quantisation, for
example completely unquantised, codec 2 model:

$ ./c2sim hts1a.raw -o - | aplay -f S16_LE

is very high quality, and consists of one amplitude and phase for each
harmonic, and the number of harmonics is time varying.

I have attached the (unquantised) _uq versions for comparison to 1300.

Cheers,

David
Post by Steve
Well, the weird experiment today, was to remove all of the Codec2
quantization, so I could hear what it sounds like before high compression.
It definitely sounds like a vocoder even sans compression :-)
Instead of packed bytes I just sent a class (structure) back and forth
with all the parameters as floats or booleans. Billions and billions of
bits per second :-)
Codec2Test <https://github.com/ObjectToolworks/Codec2Test>
Alas, it's Java, but it's a way to rapid application development for me.
I started with the 1300 vocoder, and then removed all the quantization
stuff.
The thing is, I think the raw vocoder sounds a lot like 1300 mode. That
is, most of the warble is already there before the compression and bit
errors.
Now admittedly, the Java code might not be perfect, so there is that
error to think about.
Steve
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freetel-codec2 mailing list
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
Steve
2017-03-18 07:38:37 UTC
Permalink
That is interesting. I'm still using the LPC's, rather than the
energy/phase at each harmonic, so I guess I'm not 100% raw.

Which would be:

c2sim --lpc 10 hts1a.raw -o - | aplay -f S16_LE

maybe?

Thanks
David Rowe
2017-03-18 07:44:46 UTC
Permalink
I've simulated adding a powerful, but reasonably short, LDPC code
developed by Bill vk5dsp to Codec 2 700C. Early days, but looks like a
5dB improvement on a HF channel:

http://www.rowetel.com/?p=5485

Next step is porting to a new FreeDV 700D mode that can be tested over
the air.

- David
Post by David Rowe
Hello Steve,
Listening to the unquantised vocoder model is a good test. If the
quantisers are perfect, then the quantised and unquantised should sound
the same, but usually we trade off some quality in that step.
There is also some resampling going on, like moving between 10 and 40ms
frame updates.
c2sim can be used to simulate various stages of quantisation, for
$ ./c2sim hts1a.raw -o - | aplay -f S16_LE
is very high quality, and consists of one amplitude and phase for each
harmonic, and the number of harmonics is time varying.
I have attached the (unquantised) _uq versions for comparison to 1300.
Cheers,
David
Post by Steve
Well, the weird experiment today, was to remove all of the Codec2
quantization, so I could hear what it sounds like before high
compression.
It definitely sounds like a vocoder even sans compression :-)
Instead of packed bytes I just sent a class (structure) back and forth
with all the parameters as floats or booleans. Billions and billions of
bits per second :-)
Codec2Test <https://github.com/ObjectToolworks/Codec2Test>
Alas, it's Java, but it's a way to rapid application development for me.
I started with the 1300 vocoder, and then removed all the quantization
stuff.
The thing is, I think the raw vocoder sounds a lot like 1300 mode. That
is, most of the warble is already there before the compression and bit
errors.
Now admittedly, the Java code might not be perfect, so there is that
error to think about.
Steve
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freetel-codec2 mailing list
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freetel-codec2 mailing list
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
Steve
2017-03-18 08:13:48 UTC
Permalink
LDPC sure wins out over diversity on those samples!
Steve
2017-03-18 08:54:03 UTC
Permalink
After reading the article, I was wondering if you could encode the pilot bits?

Say one set of pilots for the first two frames, and a different set of
pilots for the second frame.
David Rowe
2017-03-19 00:09:31 UTC
Permalink
Good idea Steve, a rolling set of pilots that act as a unique word for
larger frames.
Post by Steve
After reading the article, I was wondering if you could encode the pilot bits?
Say one set of pilots for the first two frames, and a different set of
pilots for the second frame.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freetel-codec2 mailing list
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
Loading...