Implementing the right audio/video transcoding scheme in consumer SoC devices
Recently, the way consumers access audio/ video (A/V) media content has shifted away from using separate data (PC via modem), voice (telephone), and video (DVD players) devices, towards newer integrated devices that provide all three services and support applications such as multiplayer gaming and true video-on-demand (VOD).
Furthermore, many portable device, like portable media players and personal data assistants (PDAs), now offer a range of services and applications, such as MPEG-2, MPEG-4 Simple Profile (SP), H.264, VC- 1, On2, and DivX.
Internet and cellular networks are also being used to access and view A/V media all over the home. The consumer wants to be able to move A/V content easily from device to device and location to location, cost effectively and in realtime or faster.
This requires the exchange of stored or viewed content between devices within the home, or even outside the home, so it can be viewed on alternative devices, at different times and even by different consumers.
To achieve this, there is a need for adaptive devices that can provide three primary functions:
1. Adaptive container format capability - creating the desired container format supported by the client device performing the video display/ audio playback;
2. Adaptive network protocol capability - allowing compatibility in transmission/reception protocols and modes among different devices to ensure accurate/reliable delivery of A/V media content between devices, and;
3. Transcoding - resolving incompatibilities in compression formats, display resolutions, memory capacity and processing power of different devices.
This article discusses these important functions and how they can be implemented with a single system-on-a-chip (SOC), such as Texas Instruments' (TI) DaVinci family of processors. The processes involved in a typical A/V media client and server application are either deterministic (Ethernet, USB, FLASH, A/V Demux, A/V Mux), or non-deterministic (video capture/display, audio capture/playback, video/audio decode/encode).
The non-deterministic processes are aperiodic, and the deterministic processes periodic. From an architectural standpoint, nondeterministic and deterministic processes should not mix. Ideally, a host processor should handle the non-deterministic processes with a digital signal processor (DSP) serving as the coprocessor and performing the more computationally intensive deterministic operations.
With this architecture, overall system throughput is high since the nondeterministic processes are prevented from disrupting the DSP processes.
This architecture becomes even more appealing as the amount of processing increases, specifi cally for HD applications or when video encoding is needed. To support this architecture, TI has developed the DaVinci family of DSPs. Figure 1 below shows the DM6446 in the DaVinci family, which has an ARM926 and a C64x DSP.
|Figure 1: DaVinci (DM6446) device block diagram|
In this SOC, the internal DSP performs the deterministic processes freeing up the ARM to handle the non-deterministic processes. Here the flexible DSP architecture implements the transcoder operation and provides a very good price/performance trade-off. With the DSP implementing the algorithmically complex task of supporting different compression formats, it allows the programmability needed to adapt to future compression formats and software upgrades.