This is something that I have been pondering.
Currently M17 uses a punctured convolution code for the audio segment of the transmission, this includes a checksum to check the integrity of the audio. This way you get all or nothing audio. However I think this will lead to sub optimal performance in weak signal conditions.
DVSI AMBE and IMBE use Golay (and Hamming) block coding, as well as some bits that have no FEC at all. This is important for a number of reasons. Firstly it means that you can easily get a BER value for the audio blocks. The codec used for DMR has rules put in place by DVSI that specify what BER is allowable on which FEC blocks before the audio is regarded as unrecoverable and should be silenced. This is why DMR (and NXDN and System Fusion DN mode) don’t suffer from “R2D2” like D-Star whose codec has no such rules.
What it also says is that these codecs can stand a certain amount of corruption before the audio is regarded as unusable, and practical use of these codecs bears this out.
I am sure that the Codec2 codecs can also stand a certain amount of corruption before they are unusable. Maybe some bits don’t even need FEC as their effect on the audio is minimal. Would it not be better to speak to the developer of the Codec2 and find out how the bits are organised and use targeted block FEC rather than the current all or nothing approach?
Even if the block FECs aren’t as powerful as the convolution FEC in terms of bit errors, they would allow for decoding to lower signal strengths, allbeit with slightly corrupt audio. The human ear is a wonderful thing and shouldn’t be underestimated.
You’d also gain 16-bits each frame because of the loss of the checksum