Publisher Summary A small set of programming frameworks are indispensable in navigating through key challenges of multimedia processing including organizing input and output data buffer flows, partitioning memory intelligently, and using semaphores to control data movement. “Framework” is the term used to describe the complete code and data movement infrastructure within the embedded system. The application timeline is best characterized as the minimum time between data collection intervals. The timeline is critical to understand because it is the foremost benchmark that the processor must meet. Even when system bandwidth seems to meet initial estimates, the processor has to be able to handle the ebbs and flows of data transfers for finite intervals in any set of circumstances. There are two types of dual-core architectures available currently: asymmetric and symmetric. The main advantage of having two different architectures in the same physical package is that each core can optimize a specific portion of the processing task. This chapter discusses several types of multimedia frameworks that can ride on top of either a single or dual-core processor: asymmetric programming model, homogeneous programming model, and master-slave programming model. Regardless of the programming model, a framework is necessary in all but the simplest applications. The chapter describes the various strategies for architecting a framework: (1) a system where data is processed as it is collected, (2) a system where programming ease takes precedence over performance, and (3) a processor-intensive application where performance supersedes programming ease.