Static scheduling of synchronous data flow programs for digital signal processing
IEEE Transactions on Computers
SIGNAL: A declarative language for synchronous programming of real-time systems
Proc. of a conference on Functional programming languages and computer architecture
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
YAPI: application modeling for signal processing systems
Proceedings of the 37th Annual Design Automation Conference
Lucid, a nonprocedural language with iteration
Communications of the ACM
Exploring design space of parallel realizations: MPEG-2 decoder case study
Proceedings of the ninth international symposium on Hardware/software codesign
Multiprocessor mapping of process networks: a JPEG decoding case study
Proceedings of the 15th international symposium on System Synthesis
A stream compiler for communication-exposed architectures
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Video compression with parallel processing
Parallel Computing - Parallel computing in image and video processing
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Linear analysis and optimization of stream programs
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
The Sisal Model of Functional Programming and its Implementation
PAS '97 Proceedings of the 2nd AIZU International Symposium on Parallel Algorithms / Architecture Synthesis
Cg: a system for programming graphics hardware in a C-like language
ACM SIGGRAPH 2003 Papers
Programmable Stream Processors
Computer
Spidle: a DSL approach to specifying streaming applications
Proceedings of the 2nd international conference on Generative programming and component engineering
Brook for GPUs: stream computing on graphics hardware
ACM SIGGRAPH 2004 Papers
Modelling, Analysis and Parallel Implementation of an On-line Video Encoder
DFMA '05 Proceedings of the First International Conference on Distributed Frameworks for Multimedia Applications
Modeling of Block-Based DSP Systems
Journal of VLSI Signal Processing Systems
Cache aware optimization of stream programs
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Teleport messaging for distributed stream programs
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Optimizing stream programs using linear state space analysis
Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems
Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Comparing memory systems for chip multiprocessors
Proceedings of the 34th annual international symposium on Computer architecture
Comparative evaluation of memory models for chip multiprocessors
ACM Transactions on Architecture and Code Optimization (TACO)
The canals language and its compiler
Proceedings of th 12th International Workshop on Software and Compilers for Embedded Systems
Thermal analysis of multiprocessor SoC applications by simulation and verification
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Unsupervised intrusion detection using color images
ISVC'07 Proceedings of the 3rd international conference on Advances in visual computing - Volume Part II
Towards efficient video compression using scalable vector graphics on the Cell/B.E.
Proceedings of the 3rd International Workshop on Multicore Software Engineering
A universal calculus for stream processing languages
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Sigma*: symbolic learning of input-output specifications
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
Image and video codecs are prevalent in multimedia devices, ranging from embedded systems, to desktop computers, to high-end servers such as HDTV editing consoles. It is not uncommon however that developers create and customize separate coder and decoder implementations for each of the architectures they target. This practice is time consuming and error prone, leading to code that is neither malleable nor portable. This paper describes an implementation of the MPEG- 2 decoder using the StreamIt programming language. StreamIt is an architecture-independent stream language that aims to improve programmer productivity, while concomitantly exposing the inherent parallelism and communication topology of the application. The paper shows that MPEG is a good match for the streaming programming model and illustrates the malleability of the implementation using a simple modification to the decoder to support alternate color compression formats. StreamIt allows for modular application development, which increases code reuse, and reduces the complexity of the debugging process since stream components can be verified independently. This in turn leads to greater programmer productivity.