Embedded Media Processing, by David Katz and Rick Gentile, Newnes, 2005, ISBN 0-7506-7912-3
Reviewed by Scott Wayne (firstname.lastname@example.org)
As a long-time analog circuit designer, I must admit that I approached Embedded Media Processing with a certain degree of wariness and trepidation. Sure, I had taken Digital Signal Processing classes at both undergraduate and graduate levels, but they covered topics such as z-transforms, discrete Fourier transforms, and butterfly computations without providing much context as to how they were used in the real world. How did all of this relate to audio and video signal processing? What drives the choice of processor in an embedded media application? How is memory allocated and managed for best performance? How can power consumption be optimized?
Embedded Media Processing answers all of these questions and many more—and does so in an easy-to-read, enjoyable manner—giving readers the tools required to successfully implement embedded designs. Chapter 1 provides an introduction to embedded media processing: what it is, why it is important, and the design challenges that it presents. Starting with a simplified media processing system, it describes the core processor, peripherals, and memory, and shows how the architecture of convergent processors can be optimized to handle real-time multimedia data flows as well as control-oriented tasks.
Chapter 2 covers memory systems and partitioning, explaining the tradeoffs in terms of cost and access time associated with on-chip memory versus external memory, different types of cache architectures, synchronous versus asynchronous memory, and nonvolatile memory. Once the memory hardware has been described, Chapter 3 discusses how direct memory access (DMA) independently controls data movement between memory and peripherals without burdening the processor core.
Chapter 4 introduces the architectural features that must be understood before developing a multimedia system—including event generation and handling, instruction pipelines, native addressing modes, and specialized instructions—and guides the reader towards intelligent resource partitioning and code optimization.
Chapters 5 and 6 delve into the real world of sight and sound, covering image and sound perception, interfacing between the processor and audio/video peripherals, audio and video compression standards, and processing methods for real-time, high-quality audio and video data streams.
Chapter 7 provides tips on how to deal with memory and bandwidth limits when porting media applications from larger processors to embedded processors. Frameworks that allow data movement to be optimized without increasing programming complexity are presented.
Chapter 8 focuses on power management, an important topic for any portable application. In addition to describing the dynamic voltage- and clock-speed reduction techniques that save processor power, it also discusses the nuts and bolts of batteries and voltage regulators.
Chapter 9 pulls together the contents of the previous eight chapters by providing application examples relating to automotive safety, video compression, and open-source audio algorithms. Although not a cookbook, the book does provide enough practical, hands-on knowledge to enable readers to tackle their first embedded media projects.
My one minor quibble with the book was its treatment of audio ADCs and DACs. Using a single sentence, the authors present the successive-approximation architecture, and just over one page is devoted to the entire topic. But this is a book on embedded media processing, not one on data converters; interested readers can satisfy their thirst for this knowledge by reading The Data Conversion Handbook, Edited by Walt Kester, Newnes, 2005, ISBN 0-7506-7841-0.
Copyright 1995- Analog Devices, Inc. All rights reserved.