epeg 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/MANIFEST +5 -0
  4. data/TODO +1 -0
  5. data/epeg/.dockerignore +4 -0
  6. data/epeg/.gitignore +5 -0
  7. data/epeg/CMakeLists.txt +30 -0
  8. data/epeg/Dockerfile +23 -0
  9. data/epeg/Epeg.h +90 -0
  10. data/epeg/README.md +42 -0
  11. data/epeg/epeg_main.c +1642 -0
  12. data/epeg/epeg_private.h +85 -0
  13. data/epeg/example/.gitignore +1 -0
  14. data/epeg/example/CMakeLists.txt +20 -0
  15. data/epeg/example/example.jpg +0 -0
  16. data/epeg/example/rotatetest.c +29 -0
  17. data/epeg/example/scaletest.c +48 -0
  18. data/epeg/vendor/libjpeg-turbo-2.0.4/BUILDING.md +828 -0
  19. data/epeg/vendor/libjpeg-turbo-2.0.4/CMakeLists.txt +1420 -0
  20. data/epeg/vendor/libjpeg-turbo-2.0.4/ChangeLog.md +1494 -0
  21. data/epeg/vendor/libjpeg-turbo-2.0.4/LICENSE.md +132 -0
  22. data/epeg/vendor/libjpeg-turbo-2.0.4/README.ijg +277 -0
  23. data/epeg/vendor/libjpeg-turbo-2.0.4/README.md +356 -0
  24. data/epeg/vendor/libjpeg-turbo-2.0.4/cderror.h +137 -0
  25. data/epeg/vendor/libjpeg-turbo-2.0.4/cdjpeg.c +145 -0
  26. data/epeg/vendor/libjpeg-turbo-2.0.4/cdjpeg.h +157 -0
  27. data/epeg/vendor/libjpeg-turbo-2.0.4/change.log +315 -0
  28. data/epeg/vendor/libjpeg-turbo-2.0.4/cjpeg.1 +354 -0
  29. data/epeg/vendor/libjpeg-turbo-2.0.4/cjpeg.c +695 -0
  30. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/BuildPackages.cmake +182 -0
  31. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/GNUInstallDirs.cmake +416 -0
  32. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/cmake_uninstall.cmake.in +24 -0
  33. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/testclean.cmake +41 -0
  34. data/epeg/vendor/libjpeg-turbo-2.0.4/cmyk.h +61 -0
  35. data/epeg/vendor/libjpeg-turbo-2.0.4/coderules.txt +78 -0
  36. data/epeg/vendor/libjpeg-turbo-2.0.4/djpeg.1 +296 -0
  37. data/epeg/vendor/libjpeg-turbo-2.0.4/djpeg.c +822 -0
  38. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/annotated.html +104 -0
  39. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/bc_s.png +0 -0
  40. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/bdwn.png +0 -0
  41. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/classes.html +106 -0
  42. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/closed.png +0 -0
  43. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen-extra.css +3 -0
  44. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen.css +1184 -0
  45. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen.png +0 -0
  46. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/dynsections.js +97 -0
  47. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2blank.png +0 -0
  48. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2cl.png +0 -0
  49. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2doc.png +0 -0
  50. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2folderclosed.png +0 -0
  51. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2folderopen.png +0 -0
  52. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2lastnode.png +0 -0
  53. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2link.png +0 -0
  54. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mlastnode.png +0 -0
  55. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mnode.png +0 -0
  56. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mo.png +0 -0
  57. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2node.png +0 -0
  58. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2ns.png +0 -0
  59. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2plastnode.png +0 -0
  60. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2pnode.png +0 -0
  61. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2splitbar.png +0 -0
  62. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2vertline.png +0 -0
  63. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/functions.html +134 -0
  64. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/functions_vars.html +134 -0
  65. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/group___turbo_j_p_e_g.html +2775 -0
  66. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/index.html +90 -0
  67. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/jquery.js +8 -0
  68. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/modules.html +95 -0
  69. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_f.png +0 -0
  70. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_g.png +0 -0
  71. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_h.png +0 -0
  72. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/open.png +0 -0
  73. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_63.html +26 -0
  74. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_63.js +4 -0
  75. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_64.html +26 -0
  76. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_64.js +5 -0
  77. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_68.html +26 -0
  78. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_68.js +4 -0
  79. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6e.html +26 -0
  80. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6e.js +4 -0
  81. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6f.html +26 -0
  82. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6f.js +5 -0
  83. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_72.html +26 -0
  84. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_72.js +4 -0
  85. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_74.html +26 -0
  86. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_74.js +102 -0
  87. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_77.html +26 -0
  88. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_77.js +4 -0
  89. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_78.html +26 -0
  90. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_78.js +4 -0
  91. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_79.html +26 -0
  92. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_79.js +4 -0
  93. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/classes_74.html +26 -0
  94. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/classes_74.js +6 -0
  95. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/close.png +0 -0
  96. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enums_74.html +26 -0
  97. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enums_74.js +8 -0
  98. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enumvalues_74.html +26 -0
  99. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enumvalues_74.js +37 -0
  100. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/functions_74.html +26 -0
  101. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/functions_74.js +31 -0
  102. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/groups_74.html +26 -0
  103. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/groups_74.js +4 -0
  104. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/mag_sel.png +0 -0
  105. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/nomatches.html +12 -0
  106. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search.css +271 -0
  107. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search.js +809 -0
  108. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_l.png +0 -0
  109. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_m.png +0 -0
  110. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_r.png +0 -0
  111. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/typedefs_74.html +26 -0
  112. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/typedefs_74.js +5 -0
  113. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_63.html +26 -0
  114. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_63.js +4 -0
  115. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_64.html +26 -0
  116. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_64.js +5 -0
  117. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_68.html +26 -0
  118. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_68.js +4 -0
  119. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6e.html +26 -0
  120. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6e.js +4 -0
  121. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6f.html +26 -0
  122. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6f.js +5 -0
  123. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_72.html +26 -0
  124. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_72.js +4 -0
  125. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_74.html +26 -0
  126. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_74.js +10 -0
  127. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_77.html +26 -0
  128. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_77.js +4 -0
  129. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_78.html +26 -0
  130. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_78.js +4 -0
  131. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_79.html +26 -0
  132. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_79.js +4 -0
  133. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjregion.html +186 -0
  134. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjscalingfactor.html +148 -0
  135. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjtransform.html +212 -0
  136. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/sync_off.png +0 -0
  137. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/sync_on.png +0 -0
  138. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_a.png +0 -0
  139. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_b.png +0 -0
  140. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_h.png +0 -0
  141. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_s.png +0 -0
  142. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tabs.css +60 -0
  143. data/epeg/vendor/libjpeg-turbo-2.0.4/doxygen-extra.css +3 -0
  144. data/epeg/vendor/libjpeg-turbo-2.0.4/doxygen.config +16 -0
  145. data/epeg/vendor/libjpeg-turbo-2.0.4/example.txt +464 -0
  146. data/epeg/vendor/libjpeg-turbo-2.0.4/jaricom.c +157 -0
  147. data/epeg/vendor/libjpeg-turbo-2.0.4/java/CMakeLists.txt +88 -0
  148. data/epeg/vendor/libjpeg-turbo-2.0.4/java/MANIFEST.MF +2 -0
  149. data/epeg/vendor/libjpeg-turbo-2.0.4/java/README +52 -0
  150. data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJBench.java +1021 -0
  151. data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJExample.java +405 -0
  152. data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJUnitTest.java +960 -0
  153. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/allclasses-frame.html +24 -0
  154. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/allclasses-noframe.html +24 -0
  155. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/constant-values.html +532 -0
  156. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/deprecated-list.html +252 -0
  157. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/help-doc.html +210 -0
  158. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/index-all.html +1029 -0
  159. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/index.html +71 -0
  160. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJ.html +1356 -0
  161. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJCompressor.html +926 -0
  162. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJCustomFilter.html +241 -0
  163. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJDecompressor.html +1255 -0
  164. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJException.html +340 -0
  165. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJScalingFactor.html +343 -0
  166. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJTransform.html +751 -0
  167. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJTransformer.html +421 -0
  168. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/YUVImage.html +765 -0
  169. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-frame.html +31 -0
  170. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-summary.html +202 -0
  171. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-tree.html +160 -0
  172. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/overview-tree.html +164 -0
  173. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/package-list +1 -0
  174. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/background.gif +0 -0
  175. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/tab.gif +0 -0
  176. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/titlebar.gif +0 -0
  177. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/titlebar_end.gif +0 -0
  178. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/script.js +30 -0
  179. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/serialized-form.html +176 -0
  180. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/stylesheet.css +474 -0
  181. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJ.java +584 -0
  182. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJCompressor.java +677 -0
  183. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJCustomFilter.java +76 -0
  184. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJDecompressor.java +931 -0
  185. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJException.java +78 -0
  186. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJLoader-unix.java.in +59 -0
  187. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJLoader-win.java.in +35 -0
  188. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJScalingFactor.java +115 -0
  189. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJTransform.java +227 -0
  190. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJTransformer.java +163 -0
  191. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/YUVImage.java +445 -0
  192. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJ.h +129 -0
  193. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJCompressor.h +101 -0
  194. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJDecompressor.h +101 -0
  195. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJTransformer.h +29 -0
  196. data/epeg/vendor/libjpeg-turbo-2.0.4/jcapimin.c +295 -0
  197. data/epeg/vendor/libjpeg-turbo-2.0.4/jcapistd.c +162 -0
  198. data/epeg/vendor/libjpeg-turbo-2.0.4/jcarith.c +932 -0
  199. data/epeg/vendor/libjpeg-turbo-2.0.4/jccoefct.c +449 -0
  200. data/epeg/vendor/libjpeg-turbo-2.0.4/jccolext.c +144 -0
  201. data/epeg/vendor/libjpeg-turbo-2.0.4/jccolor.c +710 -0
  202. data/epeg/vendor/libjpeg-turbo-2.0.4/jcdctmgr.c +721 -0
  203. data/epeg/vendor/libjpeg-turbo-2.0.4/jchuff.c +1096 -0
  204. data/epeg/vendor/libjpeg-turbo-2.0.4/jchuff.h +42 -0
  205. data/epeg/vendor/libjpeg-turbo-2.0.4/jcicc.c +105 -0
  206. data/epeg/vendor/libjpeg-turbo-2.0.4/jcinit.c +77 -0
  207. data/epeg/vendor/libjpeg-turbo-2.0.4/jcmainct.c +162 -0
  208. data/epeg/vendor/libjpeg-turbo-2.0.4/jcmarker.c +664 -0
  209. data/epeg/vendor/libjpeg-turbo-2.0.4/jcmaster.c +640 -0
  210. data/epeg/vendor/libjpeg-turbo-2.0.4/jcomapi.c +109 -0
  211. data/epeg/vendor/libjpeg-turbo-2.0.4/jconfig.h.in +73 -0
  212. data/epeg/vendor/libjpeg-turbo-2.0.4/jconfig.txt +143 -0
  213. data/epeg/vendor/libjpeg-turbo-2.0.4/jconfigint.h.in +31 -0
  214. data/epeg/vendor/libjpeg-turbo-2.0.4/jcparam.c +541 -0
  215. data/epeg/vendor/libjpeg-turbo-2.0.4/jcphuff.c +1105 -0
  216. data/epeg/vendor/libjpeg-turbo-2.0.4/jcprepct.c +351 -0
  217. data/epeg/vendor/libjpeg-turbo-2.0.4/jcsample.c +539 -0
  218. data/epeg/vendor/libjpeg-turbo-2.0.4/jcstest.c +126 -0
  219. data/epeg/vendor/libjpeg-turbo-2.0.4/jctrans.c +400 -0
  220. data/epeg/vendor/libjpeg-turbo-2.0.4/jdapimin.c +407 -0
  221. data/epeg/vendor/libjpeg-turbo-2.0.4/jdapistd.c +639 -0
  222. data/epeg/vendor/libjpeg-turbo-2.0.4/jdarith.c +773 -0
  223. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatadst-tj.c +203 -0
  224. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatadst.c +293 -0
  225. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatasrc-tj.c +194 -0
  226. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatasrc.c +295 -0
  227. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcoefct.c +692 -0
  228. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcoefct.h +82 -0
  229. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcol565.c +384 -0
  230. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcolext.c +143 -0
  231. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcolor.c +883 -0
  232. data/epeg/vendor/libjpeg-turbo-2.0.4/jdct.h +208 -0
  233. data/epeg/vendor/libjpeg-turbo-2.0.4/jddctmgr.c +352 -0
  234. data/epeg/vendor/libjpeg-turbo-2.0.4/jdhuff.c +831 -0
  235. data/epeg/vendor/libjpeg-turbo-2.0.4/jdhuff.h +238 -0
  236. data/epeg/vendor/libjpeg-turbo-2.0.4/jdicc.c +171 -0
  237. data/epeg/vendor/libjpeg-turbo-2.0.4/jdinput.c +408 -0
  238. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmainct.c +460 -0
  239. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmainct.h +71 -0
  240. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmarker.c +1377 -0
  241. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmaster.c +737 -0
  242. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmaster.h +28 -0
  243. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmerge.c +617 -0
  244. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmrg565.c +354 -0
  245. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmrgext.c +184 -0
  246. data/epeg/vendor/libjpeg-turbo-2.0.4/jdphuff.c +687 -0
  247. data/epeg/vendor/libjpeg-turbo-2.0.4/jdpostct.c +294 -0
  248. data/epeg/vendor/libjpeg-turbo-2.0.4/jdsample.c +518 -0
  249. data/epeg/vendor/libjpeg-turbo-2.0.4/jdsample.h +50 -0
  250. data/epeg/vendor/libjpeg-turbo-2.0.4/jdtrans.c +155 -0
  251. data/epeg/vendor/libjpeg-turbo-2.0.4/jerror.c +251 -0
  252. data/epeg/vendor/libjpeg-turbo-2.0.4/jerror.h +316 -0
  253. data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctflt.c +169 -0
  254. data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctfst.c +227 -0
  255. data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctint.c +288 -0
  256. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctflt.c +240 -0
  257. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctfst.c +371 -0
  258. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctint.c +2627 -0
  259. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctred.c +409 -0
  260. data/epeg/vendor/libjpeg-turbo-2.0.4/jinclude.h +88 -0
  261. data/epeg/vendor/libjpeg-turbo-2.0.4/jmemmgr.c +1179 -0
  262. data/epeg/vendor/libjpeg-turbo-2.0.4/jmemnobs.c +115 -0
  263. data/epeg/vendor/libjpeg-turbo-2.0.4/jmemsys.h +178 -0
  264. data/epeg/vendor/libjpeg-turbo-2.0.4/jmorecfg.h +421 -0
  265. data/epeg/vendor/libjpeg-turbo-2.0.4/jpeg_nbits_table.h +4098 -0
  266. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegcomp.h +31 -0
  267. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegint.h +368 -0
  268. data/epeg/vendor/libjpeg-turbo-2.0.4/jpeglib.h +1132 -0
  269. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegtran.1 +295 -0
  270. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegtran.c +601 -0
  271. data/epeg/vendor/libjpeg-turbo-2.0.4/jquant1.c +859 -0
  272. data/epeg/vendor/libjpeg-turbo-2.0.4/jquant2.c +1285 -0
  273. data/epeg/vendor/libjpeg-turbo-2.0.4/jsimd.h +117 -0
  274. data/epeg/vendor/libjpeg-turbo-2.0.4/jsimd_none.c +418 -0
  275. data/epeg/vendor/libjpeg-turbo-2.0.4/jsimddct.h +70 -0
  276. data/epeg/vendor/libjpeg-turbo-2.0.4/jstdhuff.c +143 -0
  277. data/epeg/vendor/libjpeg-turbo-2.0.4/jutils.c +133 -0
  278. data/epeg/vendor/libjpeg-turbo-2.0.4/jversion.h +52 -0
  279. data/epeg/vendor/libjpeg-turbo-2.0.4/libjpeg.map.in +11 -0
  280. data/epeg/vendor/libjpeg-turbo-2.0.4/libjpeg.txt +3144 -0
  281. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/CMakeLists.txt +1 -0
  282. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5.c +275 -0
  283. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5.h +57 -0
  284. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5cmp.c +59 -0
  285. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5hl.c +125 -0
  286. data/epeg/vendor/libjpeg-turbo-2.0.4/rdbmp.c +689 -0
  287. data/epeg/vendor/libjpeg-turbo-2.0.4/rdcolmap.c +254 -0
  288. data/epeg/vendor/libjpeg-turbo-2.0.4/rdgif.c +39 -0
  289. data/epeg/vendor/libjpeg-turbo-2.0.4/rdjpgcom.1 +63 -0
  290. data/epeg/vendor/libjpeg-turbo-2.0.4/rdjpgcom.c +510 -0
  291. data/epeg/vendor/libjpeg-turbo-2.0.4/rdppm.c +766 -0
  292. data/epeg/vendor/libjpeg-turbo-2.0.4/rdrle.c +389 -0
  293. data/epeg/vendor/libjpeg-turbo-2.0.4/rdswitch.c +424 -0
  294. data/epeg/vendor/libjpeg-turbo-2.0.4/rdtarga.c +509 -0
  295. data/epeg/vendor/libjpeg-turbo-2.0.4/release/Distribution.xml.in +24 -0
  296. data/epeg/vendor/libjpeg-turbo-2.0.4/release/License.rtf +20 -0
  297. data/epeg/vendor/libjpeg-turbo-2.0.4/release/ReadMe.txt +5 -0
  298. data/epeg/vendor/libjpeg-turbo-2.0.4/release/Welcome.rtf +17 -0
  299. data/epeg/vendor/libjpeg-turbo-2.0.4/release/deb-control.in +31 -0
  300. data/epeg/vendor/libjpeg-turbo-2.0.4/release/installer.nsi.in +191 -0
  301. data/epeg/vendor/libjpeg-turbo-2.0.4/release/libjpeg.pc.in +10 -0
  302. data/epeg/vendor/libjpeg-turbo-2.0.4/release/libturbojpeg.pc.in +10 -0
  303. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makecygwinpkg.in +66 -0
  304. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makedpkg.in +115 -0
  305. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makemacpkg.in +284 -0
  306. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makerpm.in +30 -0
  307. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makesrpm.in +48 -0
  308. data/epeg/vendor/libjpeg-turbo-2.0.4/release/maketarball.in +51 -0
  309. data/epeg/vendor/libjpeg-turbo-2.0.4/release/rpm.spec.in +221 -0
  310. data/epeg/vendor/libjpeg-turbo-2.0.4/release/uninstall.in +113 -0
  311. data/epeg/vendor/libjpeg-turbo-2.0.4/sharedlib/CMakeLists.txt +99 -0
  312. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/CMakeLists.txt +385 -0
  313. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm/jsimd.c +721 -0
  314. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm/jsimd_neon.S +2878 -0
  315. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm64/jsimd.c +798 -0
  316. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm64/jsimd_neon.S +3433 -0
  317. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/gas-preprocessor.in +1 -0
  318. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-avx2.asm +578 -0
  319. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-mmx.asm +476 -0
  320. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-sse2.asm +503 -0
  321. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-avx2.asm +121 -0
  322. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-mmx.asm +121 -0
  323. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-sse2.asm +120 -0
  324. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-avx2.asm +113 -0
  325. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-mmx.asm +113 -0
  326. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-sse2.asm +112 -0
  327. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-avx2.asm +457 -0
  328. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-mmx.asm +355 -0
  329. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-sse2.asm +382 -0
  330. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jchuff-sse2.asm +424 -0
  331. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcphuff-sse2.asm +660 -0
  332. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-avx2.asm +388 -0
  333. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-mmx.asm +324 -0
  334. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-sse2.asm +351 -0
  335. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-avx2.asm +515 -0
  336. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-mmx.asm +404 -0
  337. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-sse2.asm +458 -0
  338. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-avx2.asm +118 -0
  339. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-mmx.asm +117 -0
  340. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-sse2.asm +117 -0
  341. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-avx2.asm +136 -0
  342. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-mmx.asm +123 -0
  343. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-sse2.asm +135 -0
  344. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-avx2.asm +575 -0
  345. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-mmx.asm +460 -0
  346. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-sse2.asm +517 -0
  347. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-avx2.asm +760 -0
  348. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-mmx.asm +731 -0
  349. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-sse2.asm +724 -0
  350. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctflt-3dn.asm +318 -0
  351. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctflt-sse.asm +369 -0
  352. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctfst-mmx.asm +395 -0
  353. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctfst-sse2.asm +403 -0
  354. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-avx2.asm +331 -0
  355. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-mmx.asm +620 -0
  356. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-sse2.asm +633 -0
  357. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-3dn.asm +451 -0
  358. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-sse.asm +571 -0
  359. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-sse2.asm +497 -0
  360. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctfst-mmx.asm +499 -0
  361. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctfst-sse2.asm +501 -0
  362. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-avx2.asm +453 -0
  363. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-mmx.asm +851 -0
  364. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-sse2.asm +858 -0
  365. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctred-mmx.asm +704 -0
  366. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctred-sse2.asm +592 -0
  367. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-3dn.asm +230 -0
  368. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-mmx.asm +276 -0
  369. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-sse.asm +208 -0
  370. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquantf-sse2.asm +168 -0
  371. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquanti-avx2.asm +188 -0
  372. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquanti-sse2.asm +201 -0
  373. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jsimd.c +1253 -0
  374. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jsimdcpu.asm +135 -0
  375. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/jsimd.h +1083 -0
  376. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jccolext-mmi.c +483 -0
  377. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jccolor-mmi.c +148 -0
  378. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jcsample-mmi.c +100 -0
  379. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jcsample.h +28 -0
  380. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdcolext-mmi.c +424 -0
  381. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdcolor-mmi.c +139 -0
  382. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdsample-mmi.c +245 -0
  383. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jfdctint-mmi.c +398 -0
  384. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jidctint-mmi.c +571 -0
  385. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jquanti-mmi.c +130 -0
  386. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jsimd.c +610 -0
  387. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jsimd_mmi.h +57 -0
  388. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/loongson-mmintrin.h +1324 -0
  389. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd.c +1123 -0
  390. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd_dspr2.S +4479 -0
  391. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd_dspr2_asm.h +292 -0
  392. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jcolsamp.inc +135 -0
  393. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jdct.inc +31 -0
  394. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jpeg_nbits_table.inc +4097 -0
  395. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdcfg.inc +93 -0
  396. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdcfg.inc.h +131 -0
  397. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdext.inc +479 -0
  398. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jccolext-altivec.c +269 -0
  399. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jccolor-altivec.c +116 -0
  400. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcgray-altivec.c +111 -0
  401. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcgryext-altivec.c +228 -0
  402. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcsample-altivec.c +159 -0
  403. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcsample.h +28 -0
  404. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdcolext-altivec.c +276 -0
  405. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdcolor-altivec.c +106 -0
  406. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdmerge-altivec.c +130 -0
  407. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdmrgext-altivec.c +329 -0
  408. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdsample-altivec.c +400 -0
  409. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jfdctfst-altivec.c +154 -0
  410. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jfdctint-altivec.c +258 -0
  411. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jidctfst-altivec.c +255 -0
  412. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jidctint-altivec.c +357 -0
  413. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jquanti-altivec.c +250 -0
  414. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jsimd.c +872 -0
  415. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jsimd_altivec.h +98 -0
  416. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolext-avx2.asm +558 -0
  417. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolext-sse2.asm +483 -0
  418. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolor-avx2.asm +121 -0
  419. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolor-sse2.asm +120 -0
  420. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgray-avx2.asm +113 -0
  421. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgray-sse2.asm +112 -0
  422. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgryext-avx2.asm +437 -0
  423. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgryext-sse2.asm +362 -0
  424. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jchuff-sse2.asm +346 -0
  425. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcphuff-sse2.asm +637 -0
  426. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcsample-avx2.asm +366 -0
  427. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcsample-sse2.asm +329 -0
  428. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolext-avx2.asm +495 -0
  429. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolext-sse2.asm +438 -0
  430. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolor-avx2.asm +118 -0
  431. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolor-sse2.asm +117 -0
  432. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmerge-avx2.asm +136 -0
  433. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmerge-sse2.asm +135 -0
  434. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmrgext-avx2.asm +593 -0
  435. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmrgext-sse2.asm +535 -0
  436. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdsample-avx2.asm +695 -0
  437. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdsample-sse2.asm +664 -0
  438. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctflt-sse.asm +355 -0
  439. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctfst-sse2.asm +389 -0
  440. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctint-avx2.asm +320 -0
  441. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctint-sse2.asm +619 -0
  442. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctflt-sse2.asm +481 -0
  443. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctfst-sse2.asm +490 -0
  444. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctint-avx2.asm +417 -0
  445. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctint-sse2.asm +846 -0
  446. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctred-sse2.asm +573 -0
  447. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquantf-sse2.asm +154 -0
  448. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquanti-avx2.asm +162 -0
  449. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquanti-sse2.asm +187 -0
  450. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jsimd.c +1076 -0
  451. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jsimdcpu.asm +86 -0
  452. data/epeg/vendor/libjpeg-turbo-2.0.4/structure.txt +904 -0
  453. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/nightshot_iso_100.bmp +0 -0
  454. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/nightshot_iso_100.txt +25 -0
  455. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test.scan +5 -0
  456. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test1.icc +0 -0
  457. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test1.icc.txt +20 -0
  458. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test2.icc +0 -0
  459. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test2.icc.txt +20 -0
  460. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testimgari.jpg +0 -0
  461. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testimgint.jpg +0 -0
  462. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig.jpg +0 -0
  463. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig.ppm +4 -0
  464. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig12.jpg +0 -0
  465. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_5674_0098.bmp +0 -0
  466. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_6434_0018a.bmp +0 -0
  467. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_6548_0026a.bmp +0 -0
  468. data/epeg/vendor/libjpeg-turbo-2.0.4/tjbench.c +1031 -0
  469. data/epeg/vendor/libjpeg-turbo-2.0.4/tjbenchtest.in +256 -0
  470. data/epeg/vendor/libjpeg-turbo-2.0.4/tjbenchtest.java.in +215 -0
  471. data/epeg/vendor/libjpeg-turbo-2.0.4/tjexample.c +396 -0
  472. data/epeg/vendor/libjpeg-turbo-2.0.4/tjexampletest.in +149 -0
  473. data/epeg/vendor/libjpeg-turbo-2.0.4/tjexampletest.java.in +151 -0
  474. data/epeg/vendor/libjpeg-turbo-2.0.4/tjunittest.c +931 -0
  475. data/epeg/vendor/libjpeg-turbo-2.0.4/tjutil.c +70 -0
  476. data/epeg/vendor/libjpeg-turbo-2.0.4/tjutil.h +47 -0
  477. data/epeg/vendor/libjpeg-turbo-2.0.4/transupp.c +1628 -0
  478. data/epeg/vendor/libjpeg-turbo-2.0.4/transupp.h +210 -0
  479. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-jni.c +1246 -0
  480. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-mapfile +65 -0
  481. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-mapfile.jni +101 -0
  482. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg.c +2152 -0
  483. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg.h +1744 -0
  484. data/epeg/vendor/libjpeg-turbo-2.0.4/usage.txt +635 -0
  485. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jconfig.h.in +34 -0
  486. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg62-memsrcdst.def +108 -0
  487. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg62.def +106 -0
  488. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg7-memsrcdst.def +110 -0
  489. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg7.def +108 -0
  490. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg8.def +111 -0
  491. data/epeg/vendor/libjpeg-turbo-2.0.4/wizard.txt +212 -0
  492. data/epeg/vendor/libjpeg-turbo-2.0.4/wrbmp.c +558 -0
  493. data/epeg/vendor/libjpeg-turbo-2.0.4/wrgif.c +413 -0
  494. data/epeg/vendor/libjpeg-turbo-2.0.4/wrjpgcom.1 +103 -0
  495. data/epeg/vendor/libjpeg-turbo-2.0.4/wrjpgcom.c +591 -0
  496. data/epeg/vendor/libjpeg-turbo-2.0.4/wrppm.c +365 -0
  497. data/epeg/vendor/libjpeg-turbo-2.0.4/wrrle.c +309 -0
  498. data/epeg/vendor/libjpeg-turbo-2.0.4/wrtarga.c +261 -0
  499. data/epeg.c +131 -0
  500. data/epeg.gemspec +18 -0
  501. data/extconf.rb +80 -0
  502. data/test.jpg +0 -0
  503. data/test.rb +42 -0
  504. metadata +546 -0
@@ -0,0 +1,1083 @@
1
+ /*
2
+ * simd/jsimd.h
3
+ *
4
+ * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5
+ * Copyright (C) 2011, 2014-2016, 2018, D. R. Commander.
6
+ * Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
7
+ * Copyright (C) 2014, Linaro Limited.
8
+ * Copyright (C) 2015-2016, 2018, Matthieu Darbois.
9
+ * Copyright (C) 2016-2017, Loongson Technology Corporation Limited, BeiJing.
10
+ *
11
+ * Based on the x86 SIMD extension for IJG JPEG library,
12
+ * Copyright (C) 1999-2006, MIYASAKA Masaru.
13
+ * For conditions of distribution and use, see copyright notice in jsimdext.inc
14
+ *
15
+ */
16
+
17
+ /* Bitmask for supported acceleration methods */
18
+
19
+ #define JSIMD_NONE 0x00
20
+ #define JSIMD_MMX 0x01
21
+ #define JSIMD_3DNOW 0x02
22
+ #define JSIMD_SSE 0x04
23
+ #define JSIMD_SSE2 0x08
24
+ #define JSIMD_NEON 0x10
25
+ #define JSIMD_DSPR2 0x20
26
+ #define JSIMD_ALTIVEC 0x40
27
+ #define JSIMD_AVX2 0x80
28
+ #define JSIMD_MMI 0x100
29
+
30
+ /* SIMD Ext: retrieve SIMD/CPU information */
31
+ EXTERN(unsigned int) jpeg_simd_cpu_support(void);
32
+
33
+ /* RGB & extended RGB --> YCC Colorspace Conversion */
34
+ EXTERN(void) jsimd_rgb_ycc_convert_mmx
35
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
36
+ JDIMENSION output_row, int num_rows);
37
+ EXTERN(void) jsimd_extrgb_ycc_convert_mmx
38
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
39
+ JDIMENSION output_row, int num_rows);
40
+ EXTERN(void) jsimd_extrgbx_ycc_convert_mmx
41
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
42
+ JDIMENSION output_row, int num_rows);
43
+ EXTERN(void) jsimd_extbgr_ycc_convert_mmx
44
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
45
+ JDIMENSION output_row, int num_rows);
46
+ EXTERN(void) jsimd_extbgrx_ycc_convert_mmx
47
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
48
+ JDIMENSION output_row, int num_rows);
49
+ EXTERN(void) jsimd_extxbgr_ycc_convert_mmx
50
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
51
+ JDIMENSION output_row, int num_rows);
52
+ EXTERN(void) jsimd_extxrgb_ycc_convert_mmx
53
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
54
+ JDIMENSION output_row, int num_rows);
55
+
56
+ extern const int jconst_rgb_ycc_convert_sse2[];
57
+ EXTERN(void) jsimd_rgb_ycc_convert_sse2
58
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
59
+ JDIMENSION output_row, int num_rows);
60
+ EXTERN(void) jsimd_extrgb_ycc_convert_sse2
61
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
62
+ JDIMENSION output_row, int num_rows);
63
+ EXTERN(void) jsimd_extrgbx_ycc_convert_sse2
64
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
65
+ JDIMENSION output_row, int num_rows);
66
+ EXTERN(void) jsimd_extbgr_ycc_convert_sse2
67
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
68
+ JDIMENSION output_row, int num_rows);
69
+ EXTERN(void) jsimd_extbgrx_ycc_convert_sse2
70
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
71
+ JDIMENSION output_row, int num_rows);
72
+ EXTERN(void) jsimd_extxbgr_ycc_convert_sse2
73
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
74
+ JDIMENSION output_row, int num_rows);
75
+ EXTERN(void) jsimd_extxrgb_ycc_convert_sse2
76
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
77
+ JDIMENSION output_row, int num_rows);
78
+
79
+ extern const int jconst_rgb_ycc_convert_avx2[];
80
+ EXTERN(void) jsimd_rgb_ycc_convert_avx2
81
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
82
+ JDIMENSION output_row, int num_rows);
83
+ EXTERN(void) jsimd_extrgb_ycc_convert_avx2
84
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
85
+ JDIMENSION output_row, int num_rows);
86
+ EXTERN(void) jsimd_extrgbx_ycc_convert_avx2
87
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
88
+ JDIMENSION output_row, int num_rows);
89
+ EXTERN(void) jsimd_extbgr_ycc_convert_avx2
90
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
91
+ JDIMENSION output_row, int num_rows);
92
+ EXTERN(void) jsimd_extbgrx_ycc_convert_avx2
93
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
94
+ JDIMENSION output_row, int num_rows);
95
+ EXTERN(void) jsimd_extxbgr_ycc_convert_avx2
96
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
97
+ JDIMENSION output_row, int num_rows);
98
+ EXTERN(void) jsimd_extxrgb_ycc_convert_avx2
99
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
100
+ JDIMENSION output_row, int num_rows);
101
+
102
+ EXTERN(void) jsimd_rgb_ycc_convert_neon
103
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
104
+ JDIMENSION output_row, int num_rows);
105
+ EXTERN(void) jsimd_extrgb_ycc_convert_neon
106
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
107
+ JDIMENSION output_row, int num_rows);
108
+ EXTERN(void) jsimd_extrgbx_ycc_convert_neon
109
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
110
+ JDIMENSION output_row, int num_rows);
111
+ EXTERN(void) jsimd_extbgr_ycc_convert_neon
112
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
113
+ JDIMENSION output_row, int num_rows);
114
+ EXTERN(void) jsimd_extbgrx_ycc_convert_neon
115
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
116
+ JDIMENSION output_row, int num_rows);
117
+ EXTERN(void) jsimd_extxbgr_ycc_convert_neon
118
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
119
+ JDIMENSION output_row, int num_rows);
120
+ EXTERN(void) jsimd_extxrgb_ycc_convert_neon
121
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
122
+ JDIMENSION output_row, int num_rows);
123
+
124
+ EXTERN(void) jsimd_extrgb_ycc_convert_neon_slowld3
125
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
126
+ JDIMENSION output_row, int num_rows);
127
+ EXTERN(void) jsimd_extbgr_ycc_convert_neon_slowld3
128
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
129
+ JDIMENSION output_row, int num_rows);
130
+
131
+ EXTERN(void) jsimd_rgb_ycc_convert_dspr2
132
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
133
+ JDIMENSION output_row, int num_rows);
134
+ EXTERN(void) jsimd_extrgb_ycc_convert_dspr2
135
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
136
+ JDIMENSION output_row, int num_rows);
137
+ EXTERN(void) jsimd_extrgbx_ycc_convert_dspr2
138
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
139
+ JDIMENSION output_row, int num_rows);
140
+ EXTERN(void) jsimd_extbgr_ycc_convert_dspr2
141
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
142
+ JDIMENSION output_row, int num_rows);
143
+ EXTERN(void) jsimd_extbgrx_ycc_convert_dspr2
144
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
145
+ JDIMENSION output_row, int num_rows);
146
+ EXTERN(void) jsimd_extxbgr_ycc_convert_dspr2
147
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
148
+ JDIMENSION output_row, int num_rows);
149
+ EXTERN(void) jsimd_extxrgb_ycc_convert_dspr2
150
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
151
+ JDIMENSION output_row, int num_rows);
152
+
153
+ EXTERN(void) jsimd_rgb_ycc_convert_mmi
154
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
155
+ JDIMENSION output_row, int num_rows);
156
+ EXTERN(void) jsimd_extrgb_ycc_convert_mmi
157
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
158
+ JDIMENSION output_row, int num_rows);
159
+ EXTERN(void) jsimd_extrgbx_ycc_convert_mmi
160
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
161
+ JDIMENSION output_row, int num_rows);
162
+ EXTERN(void) jsimd_extbgr_ycc_convert_mmi
163
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
164
+ JDIMENSION output_row, int num_rows);
165
+ EXTERN(void) jsimd_extbgrx_ycc_convert_mmi
166
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
167
+ JDIMENSION output_row, int num_rows);
168
+ EXTERN(void) jsimd_extxbgr_ycc_convert_mmi
169
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
170
+ JDIMENSION output_row, int num_rows);
171
+ EXTERN(void) jsimd_extxrgb_ycc_convert_mmi
172
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
173
+ JDIMENSION output_row, int num_rows);
174
+
175
+ EXTERN(void) jsimd_rgb_ycc_convert_altivec
176
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
177
+ JDIMENSION output_row, int num_rows);
178
+ EXTERN(void) jsimd_extrgb_ycc_convert_altivec
179
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
180
+ JDIMENSION output_row, int num_rows);
181
+ EXTERN(void) jsimd_extrgbx_ycc_convert_altivec
182
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
183
+ JDIMENSION output_row, int num_rows);
184
+ EXTERN(void) jsimd_extbgr_ycc_convert_altivec
185
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
186
+ JDIMENSION output_row, int num_rows);
187
+ EXTERN(void) jsimd_extbgrx_ycc_convert_altivec
188
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
189
+ JDIMENSION output_row, int num_rows);
190
+ EXTERN(void) jsimd_extxbgr_ycc_convert_altivec
191
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
192
+ JDIMENSION output_row, int num_rows);
193
+ EXTERN(void) jsimd_extxrgb_ycc_convert_altivec
194
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
195
+ JDIMENSION output_row, int num_rows);
196
+
197
+ /* RGB & extended RGB --> Grayscale Colorspace Conversion */
198
+ EXTERN(void) jsimd_rgb_gray_convert_mmx
199
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
200
+ JDIMENSION output_row, int num_rows);
201
+ EXTERN(void) jsimd_extrgb_gray_convert_mmx
202
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
203
+ JDIMENSION output_row, int num_rows);
204
+ EXTERN(void) jsimd_extrgbx_gray_convert_mmx
205
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
206
+ JDIMENSION output_row, int num_rows);
207
+ EXTERN(void) jsimd_extbgr_gray_convert_mmx
208
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
209
+ JDIMENSION output_row, int num_rows);
210
+ EXTERN(void) jsimd_extbgrx_gray_convert_mmx
211
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
212
+ JDIMENSION output_row, int num_rows);
213
+ EXTERN(void) jsimd_extxbgr_gray_convert_mmx
214
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
215
+ JDIMENSION output_row, int num_rows);
216
+ EXTERN(void) jsimd_extxrgb_gray_convert_mmx
217
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
218
+ JDIMENSION output_row, int num_rows);
219
+
220
+ extern const int jconst_rgb_gray_convert_sse2[];
221
+ EXTERN(void) jsimd_rgb_gray_convert_sse2
222
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
223
+ JDIMENSION output_row, int num_rows);
224
+ EXTERN(void) jsimd_extrgb_gray_convert_sse2
225
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
226
+ JDIMENSION output_row, int num_rows);
227
+ EXTERN(void) jsimd_extrgbx_gray_convert_sse2
228
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
229
+ JDIMENSION output_row, int num_rows);
230
+ EXTERN(void) jsimd_extbgr_gray_convert_sse2
231
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
232
+ JDIMENSION output_row, int num_rows);
233
+ EXTERN(void) jsimd_extbgrx_gray_convert_sse2
234
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
235
+ JDIMENSION output_row, int num_rows);
236
+ EXTERN(void) jsimd_extxbgr_gray_convert_sse2
237
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
238
+ JDIMENSION output_row, int num_rows);
239
+ EXTERN(void) jsimd_extxrgb_gray_convert_sse2
240
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
241
+ JDIMENSION output_row, int num_rows);
242
+
243
+ extern const int jconst_rgb_gray_convert_avx2[];
244
+ EXTERN(void) jsimd_rgb_gray_convert_avx2
245
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
246
+ JDIMENSION output_row, int num_rows);
247
+ EXTERN(void) jsimd_extrgb_gray_convert_avx2
248
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
249
+ JDIMENSION output_row, int num_rows);
250
+ EXTERN(void) jsimd_extrgbx_gray_convert_avx2
251
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
252
+ JDIMENSION output_row, int num_rows);
253
+ EXTERN(void) jsimd_extbgr_gray_convert_avx2
254
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
255
+ JDIMENSION output_row, int num_rows);
256
+ EXTERN(void) jsimd_extbgrx_gray_convert_avx2
257
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
258
+ JDIMENSION output_row, int num_rows);
259
+ EXTERN(void) jsimd_extxbgr_gray_convert_avx2
260
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
261
+ JDIMENSION output_row, int num_rows);
262
+ EXTERN(void) jsimd_extxrgb_gray_convert_avx2
263
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
264
+ JDIMENSION output_row, int num_rows);
265
+
266
+ EXTERN(void) jsimd_rgb_gray_convert_dspr2
267
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
268
+ JDIMENSION output_row, int num_rows);
269
+ EXTERN(void) jsimd_extrgb_gray_convert_dspr2
270
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
271
+ JDIMENSION output_row, int num_rows);
272
+ EXTERN(void) jsimd_extrgbx_gray_convert_dspr2
273
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
274
+ JDIMENSION output_row, int num_rows);
275
+ EXTERN(void) jsimd_extbgr_gray_convert_dspr2
276
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
277
+ JDIMENSION output_row, int num_rows);
278
+ EXTERN(void) jsimd_extbgrx_gray_convert_dspr2
279
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
280
+ JDIMENSION output_row, int num_rows);
281
+ EXTERN(void) jsimd_extxbgr_gray_convert_dspr2
282
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
283
+ JDIMENSION output_row, int num_rows);
284
+ EXTERN(void) jsimd_extxrgb_gray_convert_dspr2
285
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
286
+ JDIMENSION output_row, int num_rows);
287
+
288
+ EXTERN(void) jsimd_rgb_gray_convert_altivec
289
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
290
+ JDIMENSION output_row, int num_rows);
291
+ EXTERN(void) jsimd_extrgb_gray_convert_altivec
292
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
293
+ JDIMENSION output_row, int num_rows);
294
+ EXTERN(void) jsimd_extrgbx_gray_convert_altivec
295
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
296
+ JDIMENSION output_row, int num_rows);
297
+ EXTERN(void) jsimd_extbgr_gray_convert_altivec
298
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
299
+ JDIMENSION output_row, int num_rows);
300
+ EXTERN(void) jsimd_extbgrx_gray_convert_altivec
301
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
302
+ JDIMENSION output_row, int num_rows);
303
+ EXTERN(void) jsimd_extxbgr_gray_convert_altivec
304
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
305
+ JDIMENSION output_row, int num_rows);
306
+ EXTERN(void) jsimd_extxrgb_gray_convert_altivec
307
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
308
+ JDIMENSION output_row, int num_rows);
309
+
310
+ /* YCC --> RGB & extended RGB Colorspace Conversion */
311
+ EXTERN(void) jsimd_ycc_rgb_convert_mmx
312
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
313
+ JSAMPARRAY output_buf, int num_rows);
314
+ EXTERN(void) jsimd_ycc_extrgb_convert_mmx
315
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
316
+ JSAMPARRAY output_buf, int num_rows);
317
+ EXTERN(void) jsimd_ycc_extrgbx_convert_mmx
318
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
319
+ JSAMPARRAY output_buf, int num_rows);
320
+ EXTERN(void) jsimd_ycc_extbgr_convert_mmx
321
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
322
+ JSAMPARRAY output_buf, int num_rows);
323
+ EXTERN(void) jsimd_ycc_extbgrx_convert_mmx
324
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
325
+ JSAMPARRAY output_buf, int num_rows);
326
+ EXTERN(void) jsimd_ycc_extxbgr_convert_mmx
327
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
328
+ JSAMPARRAY output_buf, int num_rows);
329
+ EXTERN(void) jsimd_ycc_extxrgb_convert_mmx
330
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
331
+ JSAMPARRAY output_buf, int num_rows);
332
+
333
+ extern const int jconst_ycc_rgb_convert_sse2[];
334
+ EXTERN(void) jsimd_ycc_rgb_convert_sse2
335
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
336
+ JSAMPARRAY output_buf, int num_rows);
337
+ EXTERN(void) jsimd_ycc_extrgb_convert_sse2
338
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
339
+ JSAMPARRAY output_buf, int num_rows);
340
+ EXTERN(void) jsimd_ycc_extrgbx_convert_sse2
341
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
342
+ JSAMPARRAY output_buf, int num_rows);
343
+ EXTERN(void) jsimd_ycc_extbgr_convert_sse2
344
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
345
+ JSAMPARRAY output_buf, int num_rows);
346
+ EXTERN(void) jsimd_ycc_extbgrx_convert_sse2
347
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
348
+ JSAMPARRAY output_buf, int num_rows);
349
+ EXTERN(void) jsimd_ycc_extxbgr_convert_sse2
350
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
351
+ JSAMPARRAY output_buf, int num_rows);
352
+ EXTERN(void) jsimd_ycc_extxrgb_convert_sse2
353
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
354
+ JSAMPARRAY output_buf, int num_rows);
355
+
356
+ extern const int jconst_ycc_rgb_convert_avx2[];
357
+ EXTERN(void) jsimd_ycc_rgb_convert_avx2
358
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
359
+ JSAMPARRAY output_buf, int num_rows);
360
+ EXTERN(void) jsimd_ycc_extrgb_convert_avx2
361
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
362
+ JSAMPARRAY output_buf, int num_rows);
363
+ EXTERN(void) jsimd_ycc_extrgbx_convert_avx2
364
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
365
+ JSAMPARRAY output_buf, int num_rows);
366
+ EXTERN(void) jsimd_ycc_extbgr_convert_avx2
367
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
368
+ JSAMPARRAY output_buf, int num_rows);
369
+ EXTERN(void) jsimd_ycc_extbgrx_convert_avx2
370
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
371
+ JSAMPARRAY output_buf, int num_rows);
372
+ EXTERN(void) jsimd_ycc_extxbgr_convert_avx2
373
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
374
+ JSAMPARRAY output_buf, int num_rows);
375
+ EXTERN(void) jsimd_ycc_extxrgb_convert_avx2
376
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
377
+ JSAMPARRAY output_buf, int num_rows);
378
+
379
+ EXTERN(void) jsimd_ycc_rgb_convert_neon
380
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
381
+ JSAMPARRAY output_buf, int num_rows);
382
+ EXTERN(void) jsimd_ycc_extrgb_convert_neon
383
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
384
+ JSAMPARRAY output_buf, int num_rows);
385
+ EXTERN(void) jsimd_ycc_extrgbx_convert_neon
386
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
387
+ JSAMPARRAY output_buf, int num_rows);
388
+ EXTERN(void) jsimd_ycc_extbgr_convert_neon
389
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
390
+ JSAMPARRAY output_buf, int num_rows);
391
+ EXTERN(void) jsimd_ycc_extbgrx_convert_neon
392
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
393
+ JSAMPARRAY output_buf, int num_rows);
394
+ EXTERN(void) jsimd_ycc_extxbgr_convert_neon
395
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
396
+ JSAMPARRAY output_buf, int num_rows);
397
+ EXTERN(void) jsimd_ycc_extxrgb_convert_neon
398
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
399
+ JSAMPARRAY output_buf, int num_rows);
400
+ EXTERN(void) jsimd_ycc_rgb565_convert_neon
401
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
402
+ JSAMPARRAY output_buf, int num_rows);
403
+
404
+ EXTERN(void) jsimd_ycc_extrgb_convert_neon_slowst3
405
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
406
+ JSAMPARRAY output_buf, int num_rows);
407
+ EXTERN(void) jsimd_ycc_extbgr_convert_neon_slowst3
408
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
409
+ JSAMPARRAY output_buf, int num_rows);
410
+
411
+ EXTERN(void) jsimd_ycc_rgb_convert_dspr2
412
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
413
+ JSAMPARRAY output_buf, int num_rows);
414
+ EXTERN(void) jsimd_ycc_extrgb_convert_dspr2
415
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
416
+ JSAMPARRAY output_buf, int num_rows);
417
+ EXTERN(void) jsimd_ycc_extrgbx_convert_dspr2
418
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
419
+ JSAMPARRAY output_buf, int num_rows);
420
+ EXTERN(void) jsimd_ycc_extbgr_convert_dspr2
421
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
422
+ JSAMPARRAY output_buf, int num_rows);
423
+ EXTERN(void) jsimd_ycc_extbgrx_convert_dspr2
424
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
425
+ JSAMPARRAY output_buf, int num_rows);
426
+ EXTERN(void) jsimd_ycc_extxbgr_convert_dspr2
427
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
428
+ JSAMPARRAY output_buf, int num_rows);
429
+ EXTERN(void) jsimd_ycc_extxrgb_convert_dspr2
430
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
431
+ JSAMPARRAY output_buf, int num_rows);
432
+
433
+ EXTERN(void) jsimd_ycc_rgb_convert_mmi
434
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
435
+ JSAMPARRAY output_buf, int num_rows);
436
+ EXTERN(void) jsimd_ycc_extrgb_convert_mmi
437
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
438
+ JSAMPARRAY output_buf, int num_rows);
439
+ EXTERN(void) jsimd_ycc_extrgbx_convert_mmi
440
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
441
+ JSAMPARRAY output_buf, int num_rows);
442
+ EXTERN(void) jsimd_ycc_extbgr_convert_mmi
443
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
444
+ JSAMPARRAY output_buf, int num_rows);
445
+ EXTERN(void) jsimd_ycc_extbgrx_convert_mmi
446
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
447
+ JSAMPARRAY output_buf, int num_rows);
448
+ EXTERN(void) jsimd_ycc_extxbgr_convert_mmi
449
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
450
+ JSAMPARRAY output_buf, int num_rows);
451
+ EXTERN(void) jsimd_ycc_extxrgb_convert_mmi
452
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
453
+ JSAMPARRAY output_buf, int num_rows);
454
+
455
+ EXTERN(void) jsimd_ycc_rgb_convert_altivec
456
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
457
+ JSAMPARRAY output_buf, int num_rows);
458
+ EXTERN(void) jsimd_ycc_extrgb_convert_altivec
459
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
460
+ JSAMPARRAY output_buf, int num_rows);
461
+ EXTERN(void) jsimd_ycc_extrgbx_convert_altivec
462
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
463
+ JSAMPARRAY output_buf, int num_rows);
464
+ EXTERN(void) jsimd_ycc_extbgr_convert_altivec
465
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
466
+ JSAMPARRAY output_buf, int num_rows);
467
+ EXTERN(void) jsimd_ycc_extbgrx_convert_altivec
468
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
469
+ JSAMPARRAY output_buf, int num_rows);
470
+ EXTERN(void) jsimd_ycc_extxbgr_convert_altivec
471
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
472
+ JSAMPARRAY output_buf, int num_rows);
473
+ EXTERN(void) jsimd_ycc_extxrgb_convert_altivec
474
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
475
+ JSAMPARRAY output_buf, int num_rows);
476
+
477
+ /* NULL Colorspace Conversion */
478
+ EXTERN(void) jsimd_c_null_convert_dspr2
479
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
480
+ JDIMENSION output_row, int num_rows, int num_components);
481
+
482
+ /* h2v1 Downsampling */
483
+ EXTERN(void) jsimd_h2v1_downsample_mmx
484
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
485
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
486
+
487
+ EXTERN(void) jsimd_h2v1_downsample_sse2
488
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
489
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
490
+
491
+ EXTERN(void) jsimd_h2v1_downsample_avx2
492
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
493
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
494
+
495
+ EXTERN(void) jsimd_h2v1_downsample_neon
496
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
497
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
498
+
499
+ EXTERN(void) jsimd_h2v1_downsample_dspr2
500
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
501
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
502
+
503
+ EXTERN(void) jsimd_h2v1_downsample_altivec
504
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
505
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
506
+
507
+ /* h2v2 Downsampling */
508
+ EXTERN(void) jsimd_h2v2_downsample_mmx
509
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
510
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
511
+
512
+ EXTERN(void) jsimd_h2v2_downsample_sse2
513
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
514
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
515
+
516
+ EXTERN(void) jsimd_h2v2_downsample_avx2
517
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
518
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
519
+
520
+ EXTERN(void) jsimd_h2v2_downsample_neon
521
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
522
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
523
+
524
+ EXTERN(void) jsimd_h2v2_downsample_dspr2
525
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
526
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
527
+
528
+ EXTERN(void) jsimd_h2v2_downsample_mmi
529
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
530
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
531
+
532
+ EXTERN(void) jsimd_h2v2_downsample_altivec
533
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
534
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
535
+
536
+ /* h2v2 Smooth Downsampling */
537
+ EXTERN(void) jsimd_h2v2_smooth_downsample_dspr2
538
+ (JSAMPARRAY input_data, JSAMPARRAY output_data, JDIMENSION v_samp_factor,
539
+ int max_v_samp_factor, int smoothing_factor, JDIMENSION width_in_blocks,
540
+ JDIMENSION image_width);
541
+
542
+
543
+ /* Upsampling */
544
+ EXTERN(void) jsimd_h2v1_upsample_mmx
545
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
546
+ JSAMPARRAY *output_data_ptr);
547
+ EXTERN(void) jsimd_h2v2_upsample_mmx
548
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
549
+ JSAMPARRAY *output_data_ptr);
550
+
551
+ EXTERN(void) jsimd_h2v1_upsample_sse2
552
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
553
+ JSAMPARRAY *output_data_ptr);
554
+ EXTERN(void) jsimd_h2v2_upsample_sse2
555
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
556
+ JSAMPARRAY *output_data_ptr);
557
+
558
+ EXTERN(void) jsimd_h2v1_upsample_avx2
559
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
560
+ JSAMPARRAY *output_data_ptr);
561
+ EXTERN(void) jsimd_h2v2_upsample_avx2
562
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
563
+ JSAMPARRAY *output_data_ptr);
564
+
565
+ EXTERN(void) jsimd_h2v1_upsample_dspr2
566
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
567
+ JSAMPARRAY *output_data_ptr);
568
+ EXTERN(void) jsimd_h2v2_upsample_dspr2
569
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
570
+ JSAMPARRAY *output_data_ptr);
571
+
572
+ EXTERN(void) jsimd_int_upsample_dspr2
573
+ (UINT8 h_expand, UINT8 v_expand, JSAMPARRAY input_data,
574
+ JSAMPARRAY *output_data_ptr, JDIMENSION output_width,
575
+ int max_v_samp_factor);
576
+
577
+ EXTERN(void) jsimd_h2v1_upsample_altivec
578
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
579
+ JSAMPARRAY *output_data_ptr);
580
+ EXTERN(void) jsimd_h2v2_upsample_altivec
581
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
582
+ JSAMPARRAY *output_data_ptr);
583
+
584
+ /* Fancy Upsampling */
585
+ EXTERN(void) jsimd_h2v1_fancy_upsample_mmx
586
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
587
+ JSAMPARRAY *output_data_ptr);
588
+ EXTERN(void) jsimd_h2v2_fancy_upsample_mmx
589
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
590
+ JSAMPARRAY *output_data_ptr);
591
+
592
+ extern const int jconst_fancy_upsample_sse2[];
593
+ EXTERN(void) jsimd_h2v1_fancy_upsample_sse2
594
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
595
+ JSAMPARRAY *output_data_ptr);
596
+ EXTERN(void) jsimd_h2v2_fancy_upsample_sse2
597
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
598
+ JSAMPARRAY *output_data_ptr);
599
+
600
+ extern const int jconst_fancy_upsample_avx2[];
601
+ EXTERN(void) jsimd_h2v1_fancy_upsample_avx2
602
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
603
+ JSAMPARRAY *output_data_ptr);
604
+ EXTERN(void) jsimd_h2v2_fancy_upsample_avx2
605
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
606
+ JSAMPARRAY *output_data_ptr);
607
+
608
+ EXTERN(void) jsimd_h2v1_fancy_upsample_neon
609
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
610
+ JSAMPARRAY *output_data_ptr);
611
+
612
+ EXTERN(void) jsimd_h2v1_fancy_upsample_dspr2
613
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
614
+ JSAMPARRAY *output_data_ptr);
615
+ EXTERN(void) jsimd_h2v2_fancy_upsample_dspr2
616
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
617
+ JSAMPARRAY *output_data_ptr);
618
+
619
+ EXTERN(void) jsimd_h2v2_fancy_upsample_mmi
620
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
621
+ JSAMPARRAY *output_data_ptr);
622
+
623
+ EXTERN(void) jsimd_h2v1_fancy_upsample_altivec
624
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
625
+ JSAMPARRAY *output_data_ptr);
626
+ EXTERN(void) jsimd_h2v2_fancy_upsample_altivec
627
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
628
+ JSAMPARRAY *output_data_ptr);
629
+
630
+ /* Merged Upsampling */
631
+ EXTERN(void) jsimd_h2v1_merged_upsample_mmx
632
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
633
+ JSAMPARRAY output_buf);
634
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mmx
635
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
636
+ JSAMPARRAY output_buf);
637
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mmx
638
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
639
+ JSAMPARRAY output_buf);
640
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mmx
641
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
642
+ JSAMPARRAY output_buf);
643
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mmx
644
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
645
+ JSAMPARRAY output_buf);
646
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mmx
647
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
648
+ JSAMPARRAY output_buf);
649
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mmx
650
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
651
+ JSAMPARRAY output_buf);
652
+
653
+ EXTERN(void) jsimd_h2v2_merged_upsample_mmx
654
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
655
+ JSAMPARRAY output_buf);
656
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mmx
657
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
658
+ JSAMPARRAY output_buf);
659
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mmx
660
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
661
+ JSAMPARRAY output_buf);
662
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mmx
663
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
664
+ JSAMPARRAY output_buf);
665
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mmx
666
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
667
+ JSAMPARRAY output_buf);
668
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mmx
669
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
670
+ JSAMPARRAY output_buf);
671
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mmx
672
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
673
+ JSAMPARRAY output_buf);
674
+
675
+ extern const int jconst_merged_upsample_sse2[];
676
+ EXTERN(void) jsimd_h2v1_merged_upsample_sse2
677
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
678
+ JSAMPARRAY output_buf);
679
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_sse2
680
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
681
+ JSAMPARRAY output_buf);
682
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_sse2
683
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
684
+ JSAMPARRAY output_buf);
685
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_sse2
686
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
687
+ JSAMPARRAY output_buf);
688
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_sse2
689
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
690
+ JSAMPARRAY output_buf);
691
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_sse2
692
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
693
+ JSAMPARRAY output_buf);
694
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_sse2
695
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
696
+ JSAMPARRAY output_buf);
697
+
698
+ EXTERN(void) jsimd_h2v2_merged_upsample_sse2
699
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
700
+ JSAMPARRAY output_buf);
701
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_sse2
702
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
703
+ JSAMPARRAY output_buf);
704
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_sse2
705
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
706
+ JSAMPARRAY output_buf);
707
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_sse2
708
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
709
+ JSAMPARRAY output_buf);
710
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_sse2
711
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
712
+ JSAMPARRAY output_buf);
713
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_sse2
714
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
715
+ JSAMPARRAY output_buf);
716
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_sse2
717
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
718
+ JSAMPARRAY output_buf);
719
+
720
+ extern const int jconst_merged_upsample_avx2[];
721
+ EXTERN(void) jsimd_h2v1_merged_upsample_avx2
722
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
723
+ JSAMPARRAY output_buf);
724
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_avx2
725
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
726
+ JSAMPARRAY output_buf);
727
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_avx2
728
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
729
+ JSAMPARRAY output_buf);
730
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_avx2
731
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
732
+ JSAMPARRAY output_buf);
733
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_avx2
734
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
735
+ JSAMPARRAY output_buf);
736
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_avx2
737
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
738
+ JSAMPARRAY output_buf);
739
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_avx2
740
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
741
+ JSAMPARRAY output_buf);
742
+
743
+ EXTERN(void) jsimd_h2v2_merged_upsample_avx2
744
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
745
+ JSAMPARRAY output_buf);
746
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_avx2
747
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
748
+ JSAMPARRAY output_buf);
749
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_avx2
750
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
751
+ JSAMPARRAY output_buf);
752
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_avx2
753
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
754
+ JSAMPARRAY output_buf);
755
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_avx2
756
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
757
+ JSAMPARRAY output_buf);
758
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_avx2
759
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
760
+ JSAMPARRAY output_buf);
761
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_avx2
762
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
763
+ JSAMPARRAY output_buf);
764
+
765
+ EXTERN(void) jsimd_h2v1_merged_upsample_dspr2
766
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
767
+ JSAMPARRAY output_buf, JSAMPLE *range);
768
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_dspr2
769
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
770
+ JSAMPARRAY output_buf, JSAMPLE *range);
771
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_dspr2
772
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
773
+ JSAMPARRAY output_buf, JSAMPLE *range);
774
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_dspr2
775
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
776
+ JSAMPARRAY output_buf, JSAMPLE *range);
777
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_dspr2
778
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
779
+ JSAMPARRAY output_buf, JSAMPLE *range);
780
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_dspr2
781
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
782
+ JSAMPARRAY output_buf, JSAMPLE *range);
783
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_dspr2
784
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
785
+ JSAMPARRAY output_buf, JSAMPLE *range);
786
+
787
+ EXTERN(void) jsimd_h2v2_merged_upsample_dspr2
788
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
789
+ JSAMPARRAY output_buf, JSAMPLE *range);
790
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_dspr2
791
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
792
+ JSAMPARRAY output_buf, JSAMPLE *range);
793
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_dspr2
794
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
795
+ JSAMPARRAY output_buf, JSAMPLE *range);
796
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_dspr2
797
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
798
+ JSAMPARRAY output_buf, JSAMPLE *range);
799
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_dspr2
800
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
801
+ JSAMPARRAY output_buf, JSAMPLE *range);
802
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_dspr2
803
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
804
+ JSAMPARRAY output_buf, JSAMPLE *range);
805
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_dspr2
806
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
807
+ JSAMPARRAY output_buf, JSAMPLE *range);
808
+
809
+ EXTERN(void) jsimd_h2v1_merged_upsample_altivec
810
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
811
+ JSAMPARRAY output_buf);
812
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_altivec
813
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
814
+ JSAMPARRAY output_buf);
815
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_altivec
816
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
817
+ JSAMPARRAY output_buf);
818
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_altivec
819
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
820
+ JSAMPARRAY output_buf);
821
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_altivec
822
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
823
+ JSAMPARRAY output_buf);
824
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_altivec
825
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
826
+ JSAMPARRAY output_buf);
827
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_altivec
828
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
829
+ JSAMPARRAY output_buf);
830
+
831
+ EXTERN(void) jsimd_h2v2_merged_upsample_altivec
832
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
833
+ JSAMPARRAY output_buf);
834
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_altivec
835
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
836
+ JSAMPARRAY output_buf);
837
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_altivec
838
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
839
+ JSAMPARRAY output_buf);
840
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_altivec
841
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
842
+ JSAMPARRAY output_buf);
843
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_altivec
844
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
845
+ JSAMPARRAY output_buf);
846
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_altivec
847
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
848
+ JSAMPARRAY output_buf);
849
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_altivec
850
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
851
+ JSAMPARRAY output_buf);
852
+
853
+ /* Sample Conversion */
854
+ EXTERN(void) jsimd_convsamp_mmx
855
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
856
+
857
+ EXTERN(void) jsimd_convsamp_sse2
858
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
859
+
860
+ EXTERN(void) jsimd_convsamp_avx2
861
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
862
+
863
+ EXTERN(void) jsimd_convsamp_neon
864
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
865
+
866
+ EXTERN(void) jsimd_convsamp_dspr2
867
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
868
+
869
+ EXTERN(void) jsimd_convsamp_altivec
870
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
871
+
872
+ /* Floating Point Sample Conversion */
873
+ EXTERN(void) jsimd_convsamp_float_3dnow
874
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
875
+
876
+ EXTERN(void) jsimd_convsamp_float_sse
877
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
878
+
879
+ EXTERN(void) jsimd_convsamp_float_sse2
880
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
881
+
882
+ EXTERN(void) jsimd_convsamp_float_dspr2
883
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
884
+
885
+ /* Slow Integer Forward DCT */
886
+ EXTERN(void) jsimd_fdct_islow_mmx(DCTELEM *data);
887
+
888
+ extern const int jconst_fdct_islow_sse2[];
889
+ EXTERN(void) jsimd_fdct_islow_sse2(DCTELEM *data);
890
+
891
+ extern const int jconst_fdct_islow_avx2[];
892
+ EXTERN(void) jsimd_fdct_islow_avx2(DCTELEM *data);
893
+
894
+ EXTERN(void) jsimd_fdct_islow_neon(DCTELEM *data);
895
+
896
+ EXTERN(void) jsimd_fdct_islow_dspr2(DCTELEM *data);
897
+
898
+ EXTERN(void) jsimd_fdct_islow_mmi(DCTELEM *data);
899
+
900
+ EXTERN(void) jsimd_fdct_islow_altivec(DCTELEM *data);
901
+
902
+ /* Fast Integer Forward DCT */
903
+ EXTERN(void) jsimd_fdct_ifast_mmx(DCTELEM *data);
904
+
905
+ extern const int jconst_fdct_ifast_sse2[];
906
+ EXTERN(void) jsimd_fdct_ifast_sse2(DCTELEM *data);
907
+
908
+ EXTERN(void) jsimd_fdct_ifast_neon(DCTELEM *data);
909
+
910
+ EXTERN(void) jsimd_fdct_ifast_dspr2(DCTELEM *data);
911
+
912
+ EXTERN(void) jsimd_fdct_ifast_altivec(DCTELEM *data);
913
+
914
+ /* Floating Point Forward DCT */
915
+ EXTERN(void) jsimd_fdct_float_3dnow(FAST_FLOAT *data);
916
+
917
+ extern const int jconst_fdct_float_sse[];
918
+ EXTERN(void) jsimd_fdct_float_sse(FAST_FLOAT *data);
919
+
920
+ /* Quantization */
921
+ EXTERN(void) jsimd_quantize_mmx
922
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
923
+
924
+ EXTERN(void) jsimd_quantize_sse2
925
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
926
+
927
+ EXTERN(void) jsimd_quantize_avx2
928
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
929
+
930
+ EXTERN(void) jsimd_quantize_neon
931
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
932
+
933
+ EXTERN(void) jsimd_quantize_dspr2
934
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
935
+
936
+ EXTERN(void) jsimd_quantize_mmi
937
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
938
+
939
+ EXTERN(void) jsimd_quantize_altivec
940
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
941
+
942
+ /* Floating Point Quantization */
943
+ EXTERN(void) jsimd_quantize_float_3dnow
944
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
945
+
946
+ EXTERN(void) jsimd_quantize_float_sse
947
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
948
+
949
+ EXTERN(void) jsimd_quantize_float_sse2
950
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
951
+
952
+ EXTERN(void) jsimd_quantize_float_dspr2
953
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
954
+
955
+ /* Scaled Inverse DCT */
956
+ EXTERN(void) jsimd_idct_2x2_mmx
957
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
958
+ JDIMENSION output_col);
959
+ EXTERN(void) jsimd_idct_4x4_mmx
960
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
961
+ JDIMENSION output_col);
962
+
963
+ extern const int jconst_idct_red_sse2[];
964
+ EXTERN(void) jsimd_idct_2x2_sse2
965
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
966
+ JDIMENSION output_col);
967
+ EXTERN(void) jsimd_idct_4x4_sse2
968
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
969
+ JDIMENSION output_col);
970
+
971
+ EXTERN(void) jsimd_idct_2x2_neon
972
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
973
+ JDIMENSION output_col);
974
+ EXTERN(void) jsimd_idct_4x4_neon
975
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
976
+ JDIMENSION output_col);
977
+
978
+ EXTERN(void) jsimd_idct_2x2_dspr2
979
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
980
+ JDIMENSION output_col);
981
+ EXTERN(void) jsimd_idct_4x4_dspr2
982
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
983
+ JDIMENSION output_col, int *workspace);
984
+ EXTERN(void) jsimd_idct_6x6_dspr2
985
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
986
+ JDIMENSION output_col);
987
+ EXTERN(void) jsimd_idct_12x12_pass1_dspr2
988
+ (JCOEFPTR coef_block, void *dct_table, int *workspace);
989
+ EXTERN(void) jsimd_idct_12x12_pass2_dspr2
990
+ (int *workspace, int *output);
991
+
992
+ /* Slow Integer Inverse DCT */
993
+ EXTERN(void) jsimd_idct_islow_mmx
994
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
995
+ JDIMENSION output_col);
996
+
997
+ extern const int jconst_idct_islow_sse2[];
998
+ EXTERN(void) jsimd_idct_islow_sse2
999
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1000
+ JDIMENSION output_col);
1001
+
1002
+ extern const int jconst_idct_islow_avx2[];
1003
+ EXTERN(void) jsimd_idct_islow_avx2
1004
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1005
+ JDIMENSION output_col);
1006
+
1007
+ EXTERN(void) jsimd_idct_islow_neon
1008
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1009
+ JDIMENSION output_col);
1010
+
1011
+ EXTERN(void) jsimd_idct_islow_dspr2
1012
+ (void *dct_table, JCOEFPTR coef_block, int *output_buf, JSAMPLE *output_col);
1013
+
1014
+ EXTERN(void) jsimd_idct_islow_mmi
1015
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1016
+ JDIMENSION output_col);
1017
+
1018
+ EXTERN(void) jsimd_idct_islow_altivec
1019
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1020
+ JDIMENSION output_col);
1021
+
1022
+ /* Fast Integer Inverse DCT */
1023
+ EXTERN(void) jsimd_idct_ifast_mmx
1024
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1025
+ JDIMENSION output_col);
1026
+
1027
+ extern const int jconst_idct_ifast_sse2[];
1028
+ EXTERN(void) jsimd_idct_ifast_sse2
1029
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1030
+ JDIMENSION output_col);
1031
+
1032
+ EXTERN(void) jsimd_idct_ifast_neon
1033
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1034
+ JDIMENSION output_col);
1035
+
1036
+ EXTERN(void) jsimd_idct_ifast_cols_dspr2
1037
+ (JCOEF *inptr, IFAST_MULT_TYPE *quantptr, DCTELEM *wsptr,
1038
+ const int *idct_coefs);
1039
+ EXTERN(void) jsimd_idct_ifast_rows_dspr2
1040
+ (DCTELEM *wsptr, JSAMPARRAY output_buf, JDIMENSION output_col,
1041
+ const int *idct_coefs);
1042
+
1043
+ EXTERN(void) jsimd_idct_ifast_altivec
1044
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1045
+ JDIMENSION output_col);
1046
+
1047
+ /* Floating Point Inverse DCT */
1048
+ EXTERN(void) jsimd_idct_float_3dnow
1049
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1050
+ JDIMENSION output_col);
1051
+
1052
+ extern const int jconst_idct_float_sse[];
1053
+ EXTERN(void) jsimd_idct_float_sse
1054
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1055
+ JDIMENSION output_col);
1056
+
1057
+ extern const int jconst_idct_float_sse2[];
1058
+ EXTERN(void) jsimd_idct_float_sse2
1059
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1060
+ JDIMENSION output_col);
1061
+
1062
+ /* Huffman coding */
1063
+ extern const int jconst_huff_encode_one_block[];
1064
+ EXTERN(JOCTET *) jsimd_huff_encode_one_block_sse2
1065
+ (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
1066
+ c_derived_tbl *dctbl, c_derived_tbl *actbl);
1067
+
1068
+ EXTERN(JOCTET *) jsimd_huff_encode_one_block_neon
1069
+ (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
1070
+ c_derived_tbl *dctbl, c_derived_tbl *actbl);
1071
+
1072
+ EXTERN(JOCTET *) jsimd_huff_encode_one_block_neon_slowtbl
1073
+ (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
1074
+ c_derived_tbl *dctbl, c_derived_tbl *actbl);
1075
+
1076
+ /* Progressive Huffman encoding */
1077
+ EXTERN(void) jsimd_encode_mcu_AC_first_prepare_sse2
1078
+ (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al,
1079
+ JCOEF *values, size_t *zerobits);
1080
+
1081
+ EXTERN(int) jsimd_encode_mcu_AC_refine_prepare_sse2
1082
+ (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al,
1083
+ JCOEF *absvalues, size_t *bits);