Journal of Signal Processing Systems

, Volume 63, Issue 2, pp 203–213 | Cite as

Software Code Generation for the RVC-CAL Language

  • Matthieu Wipliez
  • Ghislain Roquier
  • Jean-François Nezan


The MPEG Reconfigurable Video Coding (RVC) framework is a new standard under development by MPEG that aims at providing a unified high-level specification of current and future MPEG video coding technologies using dataflow models. In this framework, a decoder is built as a configuration of video coding modules taken from the standard MPEG toolbox library or proprietary libraries. The elements of the library are specified by a textual description that expresses the I/O behavior of each module and by a reference software written using a subset of the CAL Actor Language named RVC-CAL. A decoder configuration is written in an XML dialect by connecting a set of CAL modules. Code generators are fundamental supports that enable the direct transformation of a high level specification to efficient hardware and software implementations. This paper presents a synthesis tool that from a CAL dataflow program generates C code and an associated SystemC model. The generated code is validated against the original CAL description simulated using the Open Dataflow environment. Experimental results of the translation of two descriptions of an MPEG-4 Simple Profile decoder with different granularities are shown and discussed.


Reconfigurable Video Coding CAL actor language Dataflow programming Software code generation 


  1. 1.
    Conchon, S., Filliâtre, J. C., & Signoles, J. (2008). Designing a generic graph library using ML functors. In M. Morazán (Ed.), Trends in functional programming (Vol. 8). Oxford: IntellectGoogle Scholar
  2. 2.
    Eker, J., Janneck, J., Lee, E., Liu, J., Liu, X., Ludvig, J., et al. (2003). Taming heterogeneity—the Ptolemy approach. In Proceedings of the IEEE (Vol. 91).Google Scholar
  3. 3.
    Eker, J., & Janneck, J. (2003). CAL language report. Tech. Rep. ERL Technical Memo UCB/ERL M03/48, University of California at Berkeley.Google Scholar
  4. 4.
    Frankau, S., & Mycroft, A. (2003). Stream processing hardware from functional language specifications. In Proceedings of 36th Hawaii intl. conf. on systems sciences (HICSS-36).Google Scholar
  5. 5.
    IEEE (2006). IEEE std 1666-2005 IEEE standard SystemC language reference manual. IEEE Std 1666-2005.Google Scholar
  6. 6.
    Janneck, J. W., Miller, I. D., Parlour, D. B., Roquier, G., Wipliez, M., & Raulet, M. (2008). Synthesizing hardware from dataflow programs: An MPEG-4 simple profile decoder case study. In IEEE workshop on signal processing systems (SiPS 2008) (pp. 287–292).Google Scholar
  7. 7.
    Kahn, G. (1974). The semantics of a simple language for parallel programming. In Proceedings of IFIP’74 (pp. 471–475).Google Scholar
  8. 8.
    Lattner, C., & Adve, V. (2004). LLVM: A compilation framework for lifelong program analysis & transformation. In Proceedings of the 2004 international symposium on code generation and optimization (CGO’04). Palo Alto, California.Google Scholar
  9. 9.
    Lee, E. A., & Messerschmitt, D. G. (1987). Static scheduling of synchronous data flow programs for digital signal processing. IEEE Transactions on Computers, 36(1), 24–35.CrossRefzbMATHGoogle Scholar
  10. 10.
    Lee, E. A., & Parks, T. M. (1995). Dataflow process networks. Proceedings of the IEEE, 83(5), 773–801.CrossRefGoogle Scholar
  11. 11.
    Lucarz, C., Mattavelli, M., Thomas-Kerr, J., & Janneck, J. (2007). Reconfigurable Media Coding: A new specification model for multimedia coders. In Proceedings of SIPS’07.Google Scholar
  12. 12.
    Necula, G. C., McPeak, S., Rahul, S. P., & Weimer, W. (2002). CIL: An infrastructure for C program analysis and transformation. In Proceedings of CC’02 (pp. 213–228).Google Scholar
  13. 13.
    Pelcat, M., Menuet, P., Nezan, J. F., & Aridhi, S. (2009). Scalable compile-time scheduler for multi-core architectures. In Proceedings of design automation and test in Europe (DATE’09).Google Scholar
  14. 14.
    Roquier, G., Wipliez, M., Raulet, M., Janneck, J. W., Miller, I. D., & Parlour, D. B. (2008). Automatic software synthesis of dataflow program: An MPEG-4 simple profile decoder case study. In IEEE workshop on signal processing systems (SiPS 2008) (pp. 281–286). Washington, D.C., U.S.A.Google Scholar
  15. 15.
    Séméria, L., Sato, K., & Micheli, G. D. (2000). Resolution of dynamic memory allocation and pointers for the behavioral synthesis from C. In Proceedings of design automation and test in Europe (DATE’00) (pp. 312–319). New York: ACM.CrossRefGoogle Scholar
  16. 16.
    Wilson, R. P., French, R. S., Wilson, C. S., Amarasinghe, S. P., Anderson, J., & Tjiang, S. W. K., et al. (1994). Suif: An infrastructure for research on parallelizing and optimizing compilers. SIGPLAN Notices, 29(12), 31–37.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Matthieu Wipliez
    • 1
  • Ghislain Roquier
    • 2
  • Jean-François Nezan
    • 1
  1. 1.IETR/INSA RennesRennesFrance
  2. 2.EPFLLausanneSwitzerland

Personalised recommendations