Journal of Real-Time Image Processing

, Volume 6, Issue 1, pp 59–70 | Cite as

LLVM-based and scalable MPEG-RVC decoder

  • Jérôme Gorin
  • Matthieu Wipliez
  • Françoise Prêteux
  • Mickaël Raulet
Special Issue


MPEG reconfigurable video coding (RVC) is a new platform-independent specification methodology chosen by the MPEG community for describing coding standards. This methodology aims at producing abstract decoder models (ADMs) of MPEG decoders as programs described in a dataflow language namely “RVC-CAL Actor Language” (RVC-CAL). RVC-CAL naturally expresses potential parallelism between tasks of an application, which makes an ADM description suitable for implementation to a wide variety of platforms, from uniprocessor systems to FPGAs. MPEG RVC eases the development process of decoders by building decoders at a library-component level instead of using monolithic algorithms, and by providing a library of coding tools standardized in MPEG. This paper presents new mechanisms based on the low level virtual machine that allow the conception of a decoder able to dynamically instantiate several RVC decoder descriptions. This decoder, unlike static decoders generated by RVC tools, keeps de facto the features of an RVC description namely portability, scalability and reconfigurability.


Reconfigurable video coding RVC-CAL actor language Low level virtual machine Network scheduling Dataflow programming Code synthesis Multi-core systems 


  1. 1.
    Amer, I., Lucarz, C., Mattavelli, M., Roquier, G., Raulet, M., Déforges, O., Nezan, J.F.: Reconfigurable video coding: the video coding standard for multi-core platforms. In: IEEE Signal Processing Magazine(to appear), Special Issue on Signal Processing on Platforms with Multiple Cores (2009)Google Scholar
  2. 2.
    Barrett, E.: 3c—a JIT compiler with LLVM. Technical report, Bournemouth University. (2009)
  3. 3.
    Bhattacharya, B., Bhattacharyya, S.: Parameterized dataflow modeling for DSP systems. Signal Process. IEEE Trans. 49(10), 2408–2421 (2001). doi: 10.1109/78.950795 Google Scholar
  4. 4.
    Bhattacharyya, S.S., Eker, J., Janneck, J.W., Lucarz, C., Mattavelli, M., Raulet, M.: Overview of the MPEG reconfigurable video coding framework. J. Signal Process. Syst. (2009)Google Scholar
  5. 5.
    Bhattacharyya, S.S., Murthy, P.K., Lee, E.A.: APGAN and RPMC: complementary heuristics for translating DSP block diagrams into efficient software implementations. J. Des. Autom. Embed. Syst. In: DSP Block Diagrams into Efficient Software Implementations, DAES, pp. 33–60 (1997)Google Scholar
  6. 6.
    Bilsen, G., Engels, M., Lauwereins, R., Peperstraete, J.: Cycle-static dataflow. Signal Process. IEEE Trans. 44(2), 397–408 (1996). doi: 10.1109/78.485935
  7. 7.
    Eker, J., Janneck, J.: CAL language report. Technical report. ERL technical memo UCB/ERL M03/48, University of California at Berkeley (2003)Google Scholar
  8. 8.
    Gorin, J., Raulet, M., Cheng, Y., Lin, H., Siret, N., Sugimoto, K., Lee, G.: An RVC dataflow description of the AVC constrained baseline profile decoder. In: Proceedings of ICIP’09 (2009)Google Scholar
  9. 9.
    Gu, R., Janneck, J.W., Bhattacharyya, S.S., Raulet, M., Wipliez, M., Plishker, W.: Exploring the concurrency of an MPEG RVC decoder based on dataflow program analysis. IEEE Trans. Circuits Syst. Video Technol. (2009)Google Scholar
  10. 10.
    Janneck, J., Miller, I., Parlour, D., Roquier, G., Wipliez, M., Raulet, M.: Synthesizing hardware from dataflow programs: an MPEG-4 simple profile decoder case study. In: Signal Processing Systems (SiPS) (2008)Google Scholar
  11. 11.
    Kwong Kwok, Y., Rol, P., Chin, T., Department, H.O.: High-performance algorithms for compile-time scheduling of parallel processors. In: 83-Ph.D. Thesis, HKUST, Hong Kong, pp. 90–101 (1997)Google Scholar
  12. 12.
    Lattner, C.: LLVM: an infrastructure for multi-stage optimization. Master’s thesis, Computer Science Department, University of Illinois at Urbana-Champaign, Urbana, IL. See (2002)
  13. 13.
    Lattner, C., Adve, V.: 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 (2004)Google Scholar
  14. 14.
    Lattner, C., Adve, V.: LLVM language reference manual. Technical report, 4th edn, ECMA international. Available at: (2006)
  15. 15.
    Lee, E., Messerschmitt, D.: Synchronous data flow. Proceedings of the IEEE. 75(9), 1235–1245 (1987)CrossRefGoogle Scholar
  16. 16.
    Lee, E.A., Parks, T.M.: Dataflow process networks. Proc. IEEE. 83(5), 773–801 (1995)CrossRefGoogle Scholar
  17. 17.
    Mattavelli, M., Amer, I., Raulet, M.: The reconfigurable video coding standard [standards in a nutshell]. Signal Process. Mag. IEEE. 27(3), 159 –167 (2010). doi: 10.1109/MSP.2010.936032
  18. 18.
    Plishker, W., Sane, N., Kiemb, M., Anand, K., Bhattacharyya, S.S.: Functional DIF for rapid prototyping. In: Proceedings of the international symposium on rapid system prototyping, pp. 17–23. Monterey, California (2008)Google Scholar
  19. 19.
    Richardson, I., Bystrom, M., Kannangara, S., Frutos, D.: Dynamic configuration: beyond video coding standards. In: IEEE System on Chip Conference. IEEE (2008).
  20. 20.
    Ritz, S., Pankert, M., Zivojinovic, V., Meyr, H.: Optimum vectorization of scalable synchronous dataflow graphs. In: Application-Specific Array Processors, 1993. Proceedings of the international conference on, pp. 285–296 (1993). doi: 10.1109/ASAP.1993.397152
  21. 21.
    Sangappa, S., Palaniappan, K., Tollerton, R.: Benchmarking Java against C/C++ for interactive scientific visualization. In: JGI ’02: Proceedings of the 2002 joint ACM-ISCOPE conference on Java grande, p. 236. ACM, New York, NY, USA. doi: 10.1145/583810.583848. (2002)
  22. 22.
    Singer, J.: JVM versus CLR: a comparative study. In: PPPJ ’03: Proceedings of the 2nd international conference on principles and practice of programming in Java, pp. 167–169. Computer Science Press, Inc., New York, NY, USA (2003)Google Scholar
  23. 23.
    von Platen, C., Eker, J.: Efficient realization of a CAL video decoder on a mobile terminal (position paper). In: Signal Processing Systems, 2008. SiPS 2008. IEEE Workshop on, pp. 176–181 (2008). doi: 10.1109/SIPS.2008.4671758
  24. 24.
    Wernli, L.: Design and implementation of a code generator for the CAL actor language. Technical report UCB/ERL M02/5, EECS Department, University of California, Berkeley. (2002)
  25. 25.
    Wipliez, M., Raulet, M.: Classification and transformation of dynamic dataflow programs. In: conference on Design and Architectures for Signal and Image Processing (DASIP 2010) (2010)Google Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  • Jérôme Gorin
    • 1
  • Matthieu Wipliez
    • 2
  • Françoise Prêteux
    • 1
  • Mickaël Raulet
    • 2
  1. 1.ARTEMIS, Institut Télécom SudParis, UMR 8145EvryFrance
  2. 2.IETR, INSA RennesRennesFrance

Personalised recommendations