[opus] Questions Regarding Opus Test Vectors
Timothy B. Terriberry
tterribe at xiph.org
Sun Nov 10 14:32:41 PST 2013
Wang, Chris wrote:
> Thanks for the prompt response. Are there other recommended methods to
> verify encoder implementations?
There are few if any requirements placed on the encoder by the actual
RFC, however there are a number of things you can do which provide
various amounts of assurance your encoder is working as expected.
The first test I would run is to write out the final range coder state
of each packet, as is done in the file format used by opus_demo, and
then use opus_demo to decode the files. It will check to make sure the
final range coder state of the decoder matches. With high probability
this will tell you if the decoder is decoding the same bitstream symbols
the encoder thought it encoded.
Slightly more complicated is to have the encoder resynthesize the coded
audio from its internal state as it encodes, and compare that with what
the decoder produces. In libopus this behavior can be enabled via the
RESYNTH #define, at least for the CELT layer.
http://www.ietf.org/proceedings/80/slides/codec-4.pdf covers a number of
additional software tests we run. Determining the quality of a
correctly-functioning encoder requires subjective (listening tests)
and/or objective metrics (PEAQ, PESQ, etc.).
More information about the opus