jsimddct.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. * jsimddct.h
  3. *
  4. * Copyright 2009 Pierre Ossman <[email protected]> for Cendio AB
  5. *
  6. * Based on the x86 SIMD extension for IJG JPEG library,
  7. * Copyright (C) 1999-2006, MIYASAKA Masaru.
  8. * For conditions of distribution and use, see copyright notice in jsimdext.inc
  9. *
  10. */
  11. /* Short forms of external names for systems with brain-damaged linkers. */
  12. #ifdef NEED_SHORT_EXTERNAL_NAMES
  13. #define jsimd_can_convsamp jSCanConv
  14. #define jsimd_can_convsamp_float jSCanConvF
  15. #define jsimd_convsamp jSConv
  16. #define jsimd_convsamp_float jSConvF
  17. #define jsimd_can_fdct_islow jSCanFDCTIS
  18. #define jsimd_can_fdct_ifast jSCanFDCTIF
  19. #define jsimd_can_fdct_float jSCanFDCTFl
  20. #define jsimd_fdct_islow jSFDCTIS
  21. #define jsimd_fdct_ifast jSFDCTIF
  22. #define jsimd_fdct_float jSFDCTFl
  23. #define jsimd_can_quantize jSCanQuant
  24. #define jsimd_can_quantize_float jSCanQuantF
  25. #define jsimd_quantize jSQuant
  26. #define jsimd_quantize_float jSQuantF
  27. #define jsimd_can_idct_2x2 jSCanIDCT22
  28. #define jsimd_can_idct_4x4 jSCanIDCT44
  29. #define jsimd_idct_2x2 jSIDCT22
  30. #define jsimd_idct_4x4 jSIDCT44
  31. #define jsimd_can_idct_islow jSCanIDCTIS
  32. #define jsimd_can_idct_ifast jSCanIDCTIF
  33. #define jsimd_can_idct_float jSCanIDCTFl
  34. #define jsimd_idct_islow jSIDCTIS
  35. #define jsimd_idct_ifast jSIDCTIF
  36. #define jsimd_idct_float jSIDCTFl
  37. #endif /* NEED_SHORT_EXTERNAL_NAMES */
  38. EXTERN(int) jsimd_can_convsamp JPP((void));
  39. EXTERN(int) jsimd_can_convsamp_float JPP((void));
  40. EXTERN(void) jsimd_convsamp JPP((JSAMPARRAY sample_data,
  41. JDIMENSION start_col,
  42. DCTELEM * workspace));
  43. EXTERN(void) jsimd_convsamp_float JPP((JSAMPARRAY sample_data,
  44. JDIMENSION start_col,
  45. FAST_FLOAT * workspace));
  46. EXTERN(int) jsimd_can_fdct_islow JPP((void));
  47. EXTERN(int) jsimd_can_fdct_ifast JPP((void));
  48. EXTERN(int) jsimd_can_fdct_float JPP((void));
  49. EXTERN(void) jsimd_fdct_islow JPP((DCTELEM * data));
  50. EXTERN(void) jsimd_fdct_ifast JPP((DCTELEM * data));
  51. EXTERN(void) jsimd_fdct_float JPP((FAST_FLOAT * data));
  52. EXTERN(int) jsimd_can_quantize JPP((void));
  53. EXTERN(int) jsimd_can_quantize_float JPP((void));
  54. EXTERN(void) jsimd_quantize JPP((JCOEFPTR coef_block,
  55. DCTELEM * divisors,
  56. DCTELEM * workspace));
  57. EXTERN(void) jsimd_quantize_float JPP((JCOEFPTR coef_block,
  58. FAST_FLOAT * divisors,
  59. FAST_FLOAT * workspace));
  60. EXTERN(int) jsimd_can_idct_2x2 JPP((void));
  61. EXTERN(int) jsimd_can_idct_4x4 JPP((void));
  62. EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo,
  63. jpeg_component_info * compptr,
  64. JCOEFPTR coef_block,
  65. JSAMPARRAY output_buf,
  66. JDIMENSION output_col));
  67. EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo,
  68. jpeg_component_info * compptr,
  69. JCOEFPTR coef_block,
  70. JSAMPARRAY output_buf,
  71. JDIMENSION output_col));
  72. EXTERN(int) jsimd_can_idct_islow JPP((void));
  73. EXTERN(int) jsimd_can_idct_ifast JPP((void));
  74. EXTERN(int) jsimd_can_idct_float JPP((void));
  75. EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo,
  76. jpeg_component_info * compptr,
  77. JCOEFPTR coef_block,
  78. JSAMPARRAY output_buf,
  79. JDIMENSION output_col));
  80. EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo,
  81. jpeg_component_info * compptr,
  82. JCOEFPTR coef_block,
  83. JSAMPARRAY output_buf,
  84. JDIMENSION output_col));
  85. EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo,
  86. jpeg_component_info * compptr,
  87. JCOEFPTR coef_block,
  88. JSAMPARRAY output_buf,
  89. JDIMENSION output_col));