Skip to main content
Log in

LLVM-based and scalable MPEG-RVC decoder

  • Special Issue
  • Published:
Journal of Real-Time Image Processing Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

Notes

  1. http://www.tik.ee.ethz.ch/ moses.

  2. http://opendf.sourceforge.net.

  3. http://www.actors-project.eu.

  4. http://ptolemy.eecs.berkely.edu.

  5. http://orcc.sourceforge.net.

  6. C++ implementation of JADE is available at: http://sourceforge.net/projects/orcc.

  7. LLVM 2.6 is available at: http://llvm.org/.

  8. Video sequences available at: http://standards.iso.org/.

  9. Video sequences available at: http://wftp3.itu.int/av-arch/jvt-site/.

References

  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)

  2. Barrett, E.: 3c—a JIT compiler with LLVM. Technical report, Bournemouth University. http://llvm.org/pubs/2009-05-21-Thesis-Barrett-3c.html (2009)

  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. 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)

  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)

  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. Eker, J., Janneck, J.: CAL language report. Technical report. ERL technical memo UCB/ERL M03/48, University of California at Berkeley (2003)

  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)

  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)

  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)

  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)

  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 http://llvm.cs.uiuc.edu. (2002)

  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)

  14. Lattner, C., Adve, V.: LLVM language reference manual. Technical report, 4th edn, ECMA international. Available at: http://llvm.cs.uiuc.edu/docs/LangRef.html (2006)

  15. Lee, E., Messerschmitt, D.: Synchronous data flow. Proceedings of the IEEE. 75(9), 1235–1245 (1987)

    Article  Google Scholar 

  16. Lee, E.A., Parks, T.M.: Dataflow process networks. Proc. IEEE. 83(5), 773–801 (1995)

    Article  Google Scholar 

  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. 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)

  19. Richardson, I., Bystrom, M., Kannangara, S., Frutos, D.: Dynamic configuration: beyond video coding standards. In: IEEE System on Chip Conference. IEEE (2008). http://www.openvideocoding.org/

  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. 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. 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)

  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. 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. http://www.eecs.berkeley.edu/Pubs/TechRpts/2002/3965.html (2002)

  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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mickaël Raulet.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Gorin, J., Wipliez, M., Prêteux, F. et al. LLVM-based and scalable MPEG-RVC decoder. J Real-Time Image Proc 6, 59–70 (2011). https://doi.org/10.1007/s11554-010-0169-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11554-010-0169-2

Keywords

Navigation