Skip to main content

An Extended ANSI C for Multimedia Processing

  • Conference paper
  • 425 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2763))

Abstract

This paper presents the Multimedia C language, which is appropriate for the multimedia extensions included in all modern microprocessors. The paper discusses the language syntax, the implementation of its compiler and its use in developing multimedia applications. The goal was to provide programmers with the most natural way of using multimedia processing facilities in the C language.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bacon, D.F., Graham, S.L., Sharp, O.J.: Compiler Transformations for High- Performance Computing. ACM Computing Surveys 26(4), 345–420 (1994)

    Article  Google Scholar 

  2. Bik, A.J.C., Girkar, M., Grey, P.M., Tian, X.M.: Automatic Intra-Register Vectorization for the Intel (R) Architecture. International Journal of Parallel Programming 30(2), 65–98 (2002)

    Article  MATH  Google Scholar 

  3. Bulić, P., Guštin, V.: Introducing the Vector C. In: Palma, J.M.L.M., Sousa, A.A., Dongarra, J., Hernández, V. (eds.) VECPAR 2002. LNCS, vol. 2565, pp. 608–622. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  4. Bulić, P., Guštin, V.: An Extended ANSI C for Processors with a Multimedia Extension. International Journal of Parallel Programming 31(2), 107–136 (2003)

    Article  MATH  Google Scholar 

  5. Calland, P.Y., Darte, A., Robert, Y., Vivien, F.: On the Removal of Anti- and Output- Dependences. International Journal of Parallel Programming 26(3), 285–312 (1998)

    Article  Google Scholar 

  6. Corbera, F., Asenjo, R., Zapata, E.: New Shape Analysis and Interprocedural Techniques for Automatic Parallelization of C Codes. International Journal of Parallel Programming 30(1), 37–63 (2002)

    Article  MATH  Google Scholar 

  7. Dennis, J.B.: Machines and Models for Parallel Computing. International Journal of Parallel Programming 22(1), 44–77 (1994)

    Article  Google Scholar 

  8. Fisher, R.: Compiling for SIMD Within a Register. In: Carter, L., Ferrante, J., Sehr, D., Chatterjee, S., Prins, J.F., Li, Z., Yew, P.-C. (eds.) LCPC 1998. LNCS, vol. 1656, pp. 290–304. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  9. Gaissaryan, S., Lastovetsky, A.: An ANSI C for Vector and Superscalar Computers and Its Retargetable Compiler. Journal of C Language Translation 5(3), 183–198 (1994)

    Google Scholar 

  10. Griebl, M., Feautrier, P., Lengauer, C.: Index Set Splitting. International Journal of Parallel Programming 28(6), 607–631 (2000)

    Article  Google Scholar 

  11. Gupta, M., Mukhopadhyay, S., Sinha, N.: Automatic Parallelization of Recursive Procedures. International Journal of Parallel Programming 28(6), 537–562 (2000)

    Article  Google Scholar 

  12. Guštin, V., Bulić, P.: Extracting SIMD Parallelism from ”for” Loops. In: Proceedings of the 2001 ICPP Workshop on HPSECA, ICPP Conference, Valencia, Spain, September 3–7, pp. 23–28 (2001)

    Google Scholar 

  13. John, A., Brown, J.C.: Compilation of Constraint Programs with Noncyclic and Cyclic Dependences to Procedural Parallel Programs. International Journal of Parallel Programming 26(1), 65–119 (1998)

    Article  Google Scholar 

  14. Kalinov, A.Y., Lastovetsky, A.L., Ledovskih, I.N., Posypkin, M.A.: Refined Description of the C[] Language. Programming and Computer Software 28(6), 333–341 (2000)

    Article  Google Scholar 

  15. Kennedy, K.: Compiler Technology for Machine-Independent Parallel Programming. International Journal of Parallel Programming 22(1), 79–98 (1994)

    Article  Google Scholar 

  16. Kessler, C.W., Seidl, H.: The Fork95 Parallel Programming Language: Design, Implementation, Application. International Journal of Parallel Programming 25(1), 17–50 (1997)

    Article  MATH  Google Scholar 

  17. Krall, A., Lelait, S.: Compilation Techniques for Multimedia Processors. International Journal of Parallel Programming 28(4), 347–361 (2000)

    Article  Google Scholar 

  18. Kuroda, I., Nishitani, T.: Multimedia Processors. Proceedings of the IEEE 86(6), 1203–1221 (1998)

    Article  Google Scholar 

  19. Larsen, S., Amarasinghe, S.: Exploiting Superword Level Parallelism with Multimedia Instruction Sets. In: Processing of the SIGPLAN 2000 Conference on programming Language Design Implementation, Vancouver, B.C. (June 2000), http://www.cog.lcs.mit.edu/slp/SLP-PLDI-2000.pdf

  20. Lee, R.: Accelerating Multimedia with Enhanced Processors. IEEE Micro 15(2), 22–32 (1995)

    Article  Google Scholar 

  21. Li, K.C., Schwetman, H., Vector, C.: A Vector Processing Language. Journal of Parallel and Distributed Computing (2), 132–169 (1985)

    Google Scholar 

  22. Li, K.C.: A note on the vector C language. ACM SIGPLAN Notices 21(1), 49–57 (1986)

    Article  Google Scholar 

  23. Mitall, M., Peleg, A., Weiser, U.: MMX Technology Architecture Overview. Intel Technology Journal (1997)

    Google Scholar 

  24. Oberman, S., Favor, G., Weber, F.: AMD 3DNow! Technology: Architecture and Implementation. IEEE Micro 19(2), 37–48 (1999)

    Article  Google Scholar 

  25. Peleg, A., Weiser, U.: MMX Technology Extension to the Intel Architecture. IEEE Micro 16(4), 42–50 (1996)

    Article  Google Scholar 

  26. Rose J.R., Steele G.L.: C* : An extended C Language for Data Parallel Programming. In: Proceedings of the Second International Conference on Supercomputing ICS 1987 May 1987, pp. 2–16 (1987)

    Google Scholar 

  27. Sarkar, V.: Optimized Unrolling of Nested Loops. International Journal of Parallel Programming 29(5), 545–581 (2001)

    Article  MATH  Google Scholar 

  28. Sreraman, N., Govindarajan, R.: A Vectorizing Compiler for Multimedia Extensions. International Journal of Parallel Programming 28(4), 363–400 (2000)

    Article  Google Scholar 

  29. Tsai, J.Y., Jiang, Z., Yew, P.C.: Compiler Techniques for the Superthreaded Architectures. International Journal of Parallel Programming 27(1), 1–19 (1999)

    Article  Google Scholar 

  30. Wolfe, M.J., Banerjee, U.: Data Dependence and its Application to Parallel Processing. International Journal of Parallel Programming 16(2), 137–178 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  31. Wolfe, M.J., Banerjee, U.: The C[] Language Specification, http://www.ispras.ru/~cbr/cbrsp.html

  32. Wolfe, M.J., Banerjee, U.: Intel C++ Compiler for Linux 6.0, http://www.intel.com/software/products/compilers/c60l/

  33. Wolfe, M.J., Banerjee, U.: Pentium (R) II Processor Application Notes, MMX (TM) Technology C Intrinsics, http://developer.intel.com/technology/collateral/pentiumii/907/907.htm

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bulić, P., Gustin, V., Pipan, L. (2003). An Extended ANSI C for Multimedia Processing. In: Malyshkin, V.E. (eds) Parallel Computing Technologies. PaCT 2003. Lecture Notes in Computer Science, vol 2763. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45145-7_40

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45145-7_40

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40673-0

  • Online ISBN: 978-3-540-45145-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics