Newsletter

Video/Imaging DesignLine  >  Design Center

DSP video processing without DSP programming, via open source APIs

GStreamer, a popular open source Linux multimedia framework that has become a standard in digital video development, can now be used to control the video encoding and decoding capabilities of a DSP.


Page 1 of 5

Video Imaging DesignLine

Digital signal processors (DSPs) offer outstanding multimedia performance, typically requiring just 40% to 50% as many cycles as a general purpose processor (GPP) core to run a codec (encoders/decoders). They also offer far greater flexibility and reconfigurability than application specific integrated circuits (ASICs). Yet up to now, it has been necessary to learn proprietary languages to take advantage of the benefits of DSPs in digital video applications. Now, the need to learn these proprietary DSP languages is being eliminated by the emergence of application programming interfaces (APIs) that make it possible to easily leverage DSPs from applications running on the GPP.

Open-source multimedia frameworks, which typically run under the Linux operating system on the GPP, are an ideal target for these APIs. The computational burden of video codecs can be offloaded by leveraging the APIs, which abstract many of the complexities of DSP programming. This approach only requires programmers to have basic knowledge of the DSP, and eliminates the need to write code to stitch together DSP functions with those that run on the GPP. These advantages, plus the ability to utilize the many capabilities offered by free open source plug-ins and frameworks, can substantially reduce time to market for new video products.

Codec hardware alternatives
Developers have several alternatives in selecting hardware platforms to run the codec algorithms that compress a digital stream for transmission or storage and decompress it for viewing and editing. ASICs offer high performance and low power consumption in digital video applications because the hardware is designed specifically for the applications. The disadvantage of an ASIC is that non-recurring expenses are high and it can also be very expensive to implement changes, such as to accommodate evolving codec standards. GPP cores, on the other, have a comparatively low NRE and can be fairly easily re-programmed to address change, but their performance is low for digital video because they are relatively inefficient at performing computationally intensive signal processing applications. For example, GPPs accomplish multiplication by a series of shift and add operations that each take one or more clock cycles.

DSPs have the potential to provide the best of both worlds. In contrast to a GPP, a DSP is optimized for a computational intensive signal processing of the type found in digital video applications. DSPs have single cycle multipliers or multiply accumulate units that can speed up codec execution. Higher performance DSPs have several independent execution units that can operate in parallel, enabling them to carry out several operations per instruction. Yet, the DSP also provides full software programmability including field reprogramming capabilities. This enables a user to, for example, roll out an MPEG 2 product and later upgrade to H.264 video codec. The primary limitation of DSPs in digital video applications is that they are typically programmed using proprietary languages, and programmers who are familiar with DSPs are much less common than those who are familiar with popular GPP architectures.


Figure 1: Overview of the pros and cons of using different architectures for real-time video systems design.

Integration challenges
Developers of digital video systems also face integration challenges. Digital video systems are made up of multiple encoders, decoders, codecs, algorithms and other software components, which must all be integrated together into an executable image long before any content can run on the system. Stitching all these elements together and making sure they function cohesively can be a difficult task. Some systems will require distinct video, imaging, speech, audio and other multimedia modules. Manually integrating each software module or algorithm distracts developers from working on value-added functionality, such as adding innovative features.

Many digital video developers have turned to the open source way of building software. A common approach is to obtain significant parts of the software from open source and leverage in-house expertise in the areas of usability and hardware integration. Developers often participate in open source projects to develop technology to fulfill specific needs and integrate the open source code with internally developed code to create a product.


Figure 2: Benefits of designing with open source Linux

Next: New API addresses these issues, GStreamer filters

Page 2: next page  

Page 1 | 2 | 3 | 4 | 5



Rate this article
WORSE | BETTER
1 2 3 4 5





EE Times TechCareers
Search Jobs

Enter Keyword(s):


Function:


State:
  

Post Your Resume
-----------------
Employers Area
Most Recent Posts
Ascension Health seeking Solutions Development Analyst in St. Louis, MO

National Semiconductor seeking Principal IC Design Engineer in Santa Clara, CA

Taylor Guitars seeking Sr. Web Designer in El Cajon, CA

Covidien seeking Hardware Manager in Boulder, CO

Sierra Nevada seeking Software Engineer in Hagerstown, MD

More career-related news, resources and job postings for technology professionals

 Sponsor