roc-toolkit
roc-toolkit copied to clipboard
Create micro-benchmarks for audio codecs
Last revised: Oct 2023
We have two interfaces for audio codecs: audio::IFrameEncoder and audio::IFrameDecoder. Currently, they are implemented only by audio::PcmEncoder and audio::PcmDecoder. Later we'll add more implementations.
In this issue, we want to create generic benchmark framework for IFrameEncoder and IFrameDecoder, and for now use it to measure performance of PcmEncoder and PcmDecoder.
It also makes sense to add a benchmark for memcpy, representing an ideal and fastest possible codec. We will use it to compare results with real codecs.
Performance of PCM codecs may vary depending at least on sample size (e.g. 16 bit) and channel mask (e.g. mono and stereo). We should cover all significant cases in our benchmarks.
See #366 for details on adding micro-benchmarks.