Digital Radio Mondiale

Page 118

All in all, this comes to: ⟨M, ∣sdc0 ∣, ∣msc0 ∣, sdc0 , msc0 , M, ∣sdc0 ∣, ∣msc1 ∣, sdc0 , msc1 , . . .⟩ The output stream is an identical replica of the input stream, so the payload blocks can be combined. As a side product, there is some output in the form of pcm samples (sound), files (data) or text (sdc). This is either directed to output devices (sound card/terminal) or stored in files.

10.3

audio decoding

Our focus has mainly been on the decoding of aac streams. This is the codec that is intended for musical broadcasts. It is also the codec by which all of the test-signals in stock (at least all those that contains audio) are encoded. The main reason that we have exclusively used this codec is that there is a free implementation available, and it can be compiled to use fixed-point arithmetic only. The other codecs that are proposed in the drm specification are celp and hv xc.

Extraction & Decoding An aac frame consists of either 5 or 10 aac sub-frames, according to the sample-rate of the aac stream (12 kHz and 24 kHz) respectively. Before these sub-frames, there is a header with a list of boundary positions to the sub-frames. The extraction process for aac streams involves copying each sub-frame and its checksum and invoking the codec. This produces a pcm-stream that can be played back by a sound card.

Playback We will not worry to much about this, there exist many frameworks for playing pcm streams under linux, such as alsa, oss, or higher level ones like jack and pulse. The final choice should first be done when the system is running on the target platform. Though it should be noted that an oss kernel module is shipped with the nanoliab. For demonstrational purposes the alsa framework is used to demonstrate that audio playback works, but the configuration is not thought through or optimised – however, it works. 98


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.