image_pack 0.2.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 (319) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +18 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +140 -0
  5. data/THIRD_PARTY_NOTICES.md +8 -0
  6. data/ext/image_pack/extconf.rb +515 -0
  7. data/ext/image_pack/image_pack.c +1618 -0
  8. data/ext/image_pack/vendor/.vendored +1 -0
  9. data/ext/image_pack/vendor/mozjpeg/BUILDING.txt +902 -0
  10. data/ext/image_pack/vendor/mozjpeg/CMakeLists.txt +1593 -0
  11. data/ext/image_pack/vendor/mozjpeg/LICENSE.md +132 -0
  12. data/ext/image_pack/vendor/mozjpeg/README-mozilla.txt +194 -0
  13. data/ext/image_pack/vendor/mozjpeg/README-turbo.txt +346 -0
  14. data/ext/image_pack/vendor/mozjpeg/README.ijg +258 -0
  15. data/ext/image_pack/vendor/mozjpeg/README.md +29 -0
  16. data/ext/image_pack/vendor/mozjpeg/cderror.h +128 -0
  17. data/ext/image_pack/vendor/mozjpeg/cdjpeg.c +156 -0
  18. data/ext/image_pack/vendor/mozjpeg/cdjpeg.h +171 -0
  19. data/ext/image_pack/vendor/mozjpeg/cjpeg.c +961 -0
  20. data/ext/image_pack/vendor/mozjpeg/cmyk.h +60 -0
  21. data/ext/image_pack/vendor/mozjpeg/coderules.txt +78 -0
  22. data/ext/image_pack/vendor/mozjpeg/croptest.in +95 -0
  23. data/ext/image_pack/vendor/mozjpeg/djpeg.c +855 -0
  24. data/ext/image_pack/vendor/mozjpeg/example.txt +464 -0
  25. data/ext/image_pack/vendor/mozjpeg/jaricom.c +157 -0
  26. data/ext/image_pack/vendor/mozjpeg/jcapimin.c +307 -0
  27. data/ext/image_pack/vendor/mozjpeg/jcapistd.c +168 -0
  28. data/ext/image_pack/vendor/mozjpeg/jcarith.c +972 -0
  29. data/ext/image_pack/vendor/mozjpeg/jccoefct.c +609 -0
  30. data/ext/image_pack/vendor/mozjpeg/jccolext.c +144 -0
  31. data/ext/image_pack/vendor/mozjpeg/jccolor.c +721 -0
  32. data/ext/image_pack/vendor/mozjpeg/jcdctmgr.c +1776 -0
  33. data/ext/image_pack/vendor/mozjpeg/jcext.c +219 -0
  34. data/ext/image_pack/vendor/mozjpeg/jchuff.c +1146 -0
  35. data/ext/image_pack/vendor/mozjpeg/jchuff.h +57 -0
  36. data/ext/image_pack/vendor/mozjpeg/jcicc.c +105 -0
  37. data/ext/image_pack/vendor/mozjpeg/jcinit.c +82 -0
  38. data/ext/image_pack/vendor/mozjpeg/jcmainct.c +162 -0
  39. data/ext/image_pack/vendor/mozjpeg/jcmarker.c +844 -0
  40. data/ext/image_pack/vendor/mozjpeg/jcmaster.c +958 -0
  41. data/ext/image_pack/vendor/mozjpeg/jcmaster.h +56 -0
  42. data/ext/image_pack/vendor/mozjpeg/jcomapi.c +109 -0
  43. data/ext/image_pack/vendor/mozjpeg/jconfig.h.in +37 -0
  44. data/ext/image_pack/vendor/mozjpeg/jconfig.txt +93 -0
  45. data/ext/image_pack/vendor/mozjpeg/jconfigint.h.in +44 -0
  46. data/ext/image_pack/vendor/mozjpeg/jcparam.c +991 -0
  47. data/ext/image_pack/vendor/mozjpeg/jcphuff.c +1123 -0
  48. data/ext/image_pack/vendor/mozjpeg/jcprepct.c +351 -0
  49. data/ext/image_pack/vendor/mozjpeg/jcsample.c +522 -0
  50. data/ext/image_pack/vendor/mozjpeg/jcstest.c +126 -0
  51. data/ext/image_pack/vendor/mozjpeg/jctrans.c +408 -0
  52. data/ext/image_pack/vendor/mozjpeg/jdapimin.c +407 -0
  53. data/ext/image_pack/vendor/mozjpeg/jdapistd.c +691 -0
  54. data/ext/image_pack/vendor/mozjpeg/jdarith.c +782 -0
  55. data/ext/image_pack/vendor/mozjpeg/jdatadst-tj.c +198 -0
  56. data/ext/image_pack/vendor/mozjpeg/jdatadst.c +299 -0
  57. data/ext/image_pack/vendor/mozjpeg/jdatasrc-tj.c +194 -0
  58. data/ext/image_pack/vendor/mozjpeg/jdatasrc.c +295 -0
  59. data/ext/image_pack/vendor/mozjpeg/jdcoefct.c +881 -0
  60. data/ext/image_pack/vendor/mozjpeg/jdcoefct.h +83 -0
  61. data/ext/image_pack/vendor/mozjpeg/jdcol565.c +384 -0
  62. data/ext/image_pack/vendor/mozjpeg/jdcolext.c +141 -0
  63. data/ext/image_pack/vendor/mozjpeg/jdcolor.c +881 -0
  64. data/ext/image_pack/vendor/mozjpeg/jdct.h +208 -0
  65. data/ext/image_pack/vendor/mozjpeg/jddctmgr.c +367 -0
  66. data/ext/image_pack/vendor/mozjpeg/jdhuff.c +834 -0
  67. data/ext/image_pack/vendor/mozjpeg/jdhuff.h +247 -0
  68. data/ext/image_pack/vendor/mozjpeg/jdicc.c +167 -0
  69. data/ext/image_pack/vendor/mozjpeg/jdinput.c +408 -0
  70. data/ext/image_pack/vendor/mozjpeg/jdmainct.c +460 -0
  71. data/ext/image_pack/vendor/mozjpeg/jdmainct.h +71 -0
  72. data/ext/image_pack/vendor/mozjpeg/jdmarker.c +1374 -0
  73. data/ext/image_pack/vendor/mozjpeg/jdmaster.c +727 -0
  74. data/ext/image_pack/vendor/mozjpeg/jdmaster.h +33 -0
  75. data/ext/image_pack/vendor/mozjpeg/jdmerge.c +587 -0
  76. data/ext/image_pack/vendor/mozjpeg/jdmerge.h +47 -0
  77. data/ext/image_pack/vendor/mozjpeg/jdmrg565.c +354 -0
  78. data/ext/image_pack/vendor/mozjpeg/jdmrgext.c +184 -0
  79. data/ext/image_pack/vendor/mozjpeg/jdphuff.c +679 -0
  80. data/ext/image_pack/vendor/mozjpeg/jdpostct.c +294 -0
  81. data/ext/image_pack/vendor/mozjpeg/jdsample.c +524 -0
  82. data/ext/image_pack/vendor/mozjpeg/jdsample.h +50 -0
  83. data/ext/image_pack/vendor/mozjpeg/jdtrans.c +156 -0
  84. data/ext/image_pack/vendor/mozjpeg/jerror.c +251 -0
  85. data/ext/image_pack/vendor/mozjpeg/jerror.h +335 -0
  86. data/ext/image_pack/vendor/mozjpeg/jfdctflt.c +169 -0
  87. data/ext/image_pack/vendor/mozjpeg/jfdctfst.c +227 -0
  88. data/ext/image_pack/vendor/mozjpeg/jfdctint.c +288 -0
  89. data/ext/image_pack/vendor/mozjpeg/jidctflt.c +240 -0
  90. data/ext/image_pack/vendor/mozjpeg/jidctfst.c +371 -0
  91. data/ext/image_pack/vendor/mozjpeg/jidctint.c +2627 -0
  92. data/ext/image_pack/vendor/mozjpeg/jidctred.c +409 -0
  93. data/ext/image_pack/vendor/mozjpeg/jinclude.h +147 -0
  94. data/ext/image_pack/vendor/mozjpeg/jmemmgr.c +1180 -0
  95. data/ext/image_pack/vendor/mozjpeg/jmemnobs.c +110 -0
  96. data/ext/image_pack/vendor/mozjpeg/jmemsys.h +178 -0
  97. data/ext/image_pack/vendor/mozjpeg/jmorecfg.h +382 -0
  98. data/ext/image_pack/vendor/mozjpeg/jpeg_nbits_table.h +4098 -0
  99. data/ext/image_pack/vendor/mozjpeg/jpegcomp.h +32 -0
  100. data/ext/image_pack/vendor/mozjpeg/jpegint.h +453 -0
  101. data/ext/image_pack/vendor/mozjpeg/jpeglib.h +1211 -0
  102. data/ext/image_pack/vendor/mozjpeg/jpegtran.c +827 -0
  103. data/ext/image_pack/vendor/mozjpeg/jpegyuv.c +172 -0
  104. data/ext/image_pack/vendor/mozjpeg/jquant1.c +856 -0
  105. data/ext/image_pack/vendor/mozjpeg/jquant2.c +1286 -0
  106. data/ext/image_pack/vendor/mozjpeg/jsimd.h +123 -0
  107. data/ext/image_pack/vendor/mozjpeg/jsimd_none.c +431 -0
  108. data/ext/image_pack/vendor/mozjpeg/jsimddct.h +70 -0
  109. data/ext/image_pack/vendor/mozjpeg/jstdhuff.c +144 -0
  110. data/ext/image_pack/vendor/mozjpeg/jutils.c +133 -0
  111. data/ext/image_pack/vendor/mozjpeg/jversion.h.in +56 -0
  112. data/ext/image_pack/vendor/mozjpeg/libjpeg.map.in +11 -0
  113. data/ext/image_pack/vendor/mozjpeg/libjpeg.txt +3150 -0
  114. data/ext/image_pack/vendor/mozjpeg/rdbmp.c +690 -0
  115. data/ext/image_pack/vendor/mozjpeg/rdcolmap.c +253 -0
  116. data/ext/image_pack/vendor/mozjpeg/rdgif.c +720 -0
  117. data/ext/image_pack/vendor/mozjpeg/rdjpeg.c +160 -0
  118. data/ext/image_pack/vendor/mozjpeg/rdjpgcom.c +494 -0
  119. data/ext/image_pack/vendor/mozjpeg/rdpng.c +194 -0
  120. data/ext/image_pack/vendor/mozjpeg/rdppm.c +781 -0
  121. data/ext/image_pack/vendor/mozjpeg/rdswitch.c +642 -0
  122. data/ext/image_pack/vendor/mozjpeg/rdtarga.c +508 -0
  123. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jccolext-neon.c +148 -0
  124. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jchuff-neon.c +334 -0
  125. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd.c +976 -0
  126. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd_neon.S +1200 -0
  127. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jccolext-neon.c +316 -0
  128. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jchuff-neon.c +411 -0
  129. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jsimd.c +1053 -0
  130. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jsimd_neon.S +2254 -0
  131. data/ext/image_pack/vendor/mozjpeg/simd/arm/align.h +28 -0
  132. data/ext/image_pack/vendor/mozjpeg/simd/arm/jccolor-neon.c +160 -0
  133. data/ext/image_pack/vendor/mozjpeg/simd/arm/jcgray-neon.c +120 -0
  134. data/ext/image_pack/vendor/mozjpeg/simd/arm/jcgryext-neon.c +106 -0
  135. data/ext/image_pack/vendor/mozjpeg/simd/arm/jchuff.h +131 -0
  136. data/ext/image_pack/vendor/mozjpeg/simd/arm/jcphuff-neon.c +623 -0
  137. data/ext/image_pack/vendor/mozjpeg/simd/arm/jcsample-neon.c +192 -0
  138. data/ext/image_pack/vendor/mozjpeg/simd/arm/jdcolext-neon.c +374 -0
  139. data/ext/image_pack/vendor/mozjpeg/simd/arm/jdcolor-neon.c +141 -0
  140. data/ext/image_pack/vendor/mozjpeg/simd/arm/jdmerge-neon.c +144 -0
  141. data/ext/image_pack/vendor/mozjpeg/simd/arm/jdmrgext-neon.c +723 -0
  142. data/ext/image_pack/vendor/mozjpeg/simd/arm/jdsample-neon.c +569 -0
  143. data/ext/image_pack/vendor/mozjpeg/simd/arm/jfdctfst-neon.c +214 -0
  144. data/ext/image_pack/vendor/mozjpeg/simd/arm/jfdctint-neon.c +376 -0
  145. data/ext/image_pack/vendor/mozjpeg/simd/arm/jidctfst-neon.c +472 -0
  146. data/ext/image_pack/vendor/mozjpeg/simd/arm/jidctint-neon.c +801 -0
  147. data/ext/image_pack/vendor/mozjpeg/simd/arm/jidctred-neon.c +486 -0
  148. data/ext/image_pack/vendor/mozjpeg/simd/arm/jquanti-neon.c +193 -0
  149. data/ext/image_pack/vendor/mozjpeg/simd/arm/neon-compat.h +26 -0
  150. data/ext/image_pack/vendor/mozjpeg/simd/arm/neon-compat.h.in +37 -0
  151. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-avx2.asm +578 -0
  152. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-mmx.asm +476 -0
  153. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-sse2.asm +503 -0
  154. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-avx2.asm +121 -0
  155. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-mmx.asm +121 -0
  156. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-sse2.asm +120 -0
  157. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-avx2.asm +113 -0
  158. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-mmx.asm +113 -0
  159. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-sse2.asm +112 -0
  160. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-avx2.asm +457 -0
  161. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-mmx.asm +355 -0
  162. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-sse2.asm +382 -0
  163. data/ext/image_pack/vendor/mozjpeg/simd/i386/jchuff-sse2.asm +761 -0
  164. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcphuff-sse2.asm +662 -0
  165. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-avx2.asm +388 -0
  166. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-mmx.asm +324 -0
  167. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-sse2.asm +351 -0
  168. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-avx2.asm +515 -0
  169. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-mmx.asm +404 -0
  170. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-sse2.asm +458 -0
  171. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-avx2.asm +118 -0
  172. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-mmx.asm +117 -0
  173. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-sse2.asm +117 -0
  174. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-avx2.asm +136 -0
  175. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-mmx.asm +123 -0
  176. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-sse2.asm +135 -0
  177. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-avx2.asm +575 -0
  178. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-mmx.asm +460 -0
  179. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-sse2.asm +517 -0
  180. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-avx2.asm +760 -0
  181. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-mmx.asm +731 -0
  182. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-sse2.asm +724 -0
  183. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctflt-3dn.asm +318 -0
  184. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctflt-sse.asm +369 -0
  185. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctfst-mmx.asm +395 -0
  186. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctfst-sse2.asm +403 -0
  187. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-avx2.asm +331 -0
  188. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-mmx.asm +620 -0
  189. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-sse2.asm +633 -0
  190. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-3dn.asm +451 -0
  191. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-sse.asm +571 -0
  192. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-sse2.asm +497 -0
  193. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctfst-mmx.asm +499 -0
  194. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctfst-sse2.asm +501 -0
  195. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-avx2.asm +453 -0
  196. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-mmx.asm +851 -0
  197. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-sse2.asm +858 -0
  198. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctred-mmx.asm +704 -0
  199. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctred-sse2.asm +592 -0
  200. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-3dn.asm +230 -0
  201. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-mmx.asm +276 -0
  202. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-sse.asm +208 -0
  203. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquantf-sse2.asm +168 -0
  204. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-avx2.asm +188 -0
  205. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-sse2.asm +201 -0
  206. data/ext/image_pack/vendor/mozjpeg/simd/i386/jsimd.c +1312 -0
  207. data/ext/image_pack/vendor/mozjpeg/simd/i386/jsimdcpu.asm +135 -0
  208. data/ext/image_pack/vendor/mozjpeg/simd/jsimd.h +1258 -0
  209. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd.c +1143 -0
  210. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2.S +4543 -0
  211. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2_asm.h +292 -0
  212. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jccolext-mmi.c +455 -0
  213. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jccolor-mmi.c +148 -0
  214. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcgray-mmi.c +132 -0
  215. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcgryext-mmi.c +374 -0
  216. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample-mmi.c +98 -0
  217. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample.h +28 -0
  218. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolext-mmi.c +415 -0
  219. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolor-mmi.c +139 -0
  220. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdmerge-mmi.c +149 -0
  221. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdmrgext-mmi.c +615 -0
  222. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdsample-mmi.c +304 -0
  223. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctfst-mmi.c +255 -0
  224. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctint-mmi.c +398 -0
  225. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jidctfst-mmi.c +395 -0
  226. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jidctint-mmi.c +571 -0
  227. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jquanti-mmi.c +124 -0
  228. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd.c +866 -0
  229. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd_mmi.h +69 -0
  230. data/ext/image_pack/vendor/mozjpeg/simd/mips64/loongson-mmintrin.h +1334 -0
  231. data/ext/image_pack/vendor/mozjpeg/simd/nasm/jcolsamp.inc +135 -0
  232. data/ext/image_pack/vendor/mozjpeg/simd/nasm/jdct.inc +31 -0
  233. data/ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdcfg.inc +93 -0
  234. data/ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdcfg.inc.h +133 -0
  235. data/ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdext.inc +520 -0
  236. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolext-altivec.c +269 -0
  237. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolor-altivec.c +116 -0
  238. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgray-altivec.c +111 -0
  239. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgryext-altivec.c +228 -0
  240. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample-altivec.c +159 -0
  241. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample.h +28 -0
  242. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolext-altivec.c +276 -0
  243. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolor-altivec.c +106 -0
  244. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmerge-altivec.c +130 -0
  245. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmrgext-altivec.c +329 -0
  246. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdsample-altivec.c +400 -0
  247. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctfst-altivec.c +154 -0
  248. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctint-altivec.c +258 -0
  249. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctfst-altivec.c +255 -0
  250. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctint-altivec.c +357 -0
  251. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jquanti-altivec.c +250 -0
  252. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd.c +884 -0
  253. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd_altivec.h +98 -0
  254. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolext-avx2.asm +559 -0
  255. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolext-sse2.asm +484 -0
  256. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolor-avx2.asm +121 -0
  257. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolor-sse2.asm +120 -0
  258. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcgray-avx2.asm +113 -0
  259. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcgray-sse2.asm +112 -0
  260. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcgryext-avx2.asm +438 -0
  261. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcgryext-sse2.asm +363 -0
  262. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jchuff-sse2.asm +583 -0
  263. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcphuff-sse2.asm +639 -0
  264. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcsample-avx2.asm +367 -0
  265. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jcsample-sse2.asm +330 -0
  266. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdcolext-avx2.asm +496 -0
  267. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdcolext-sse2.asm +439 -0
  268. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdcolor-avx2.asm +118 -0
  269. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdcolor-sse2.asm +117 -0
  270. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdmerge-avx2.asm +136 -0
  271. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdmerge-sse2.asm +135 -0
  272. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdmrgext-avx2.asm +596 -0
  273. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdmrgext-sse2.asm +538 -0
  274. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdsample-avx2.asm +696 -0
  275. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jdsample-sse2.asm +665 -0
  276. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jfdctflt-sse.asm +355 -0
  277. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jfdctfst-sse2.asm +389 -0
  278. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jfdctint-avx2.asm +320 -0
  279. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jfdctint-sse2.asm +619 -0
  280. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jidctflt-sse2.asm +482 -0
  281. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jidctfst-sse2.asm +491 -0
  282. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jidctint-avx2.asm +418 -0
  283. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jidctint-sse2.asm +847 -0
  284. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jidctred-sse2.asm +574 -0
  285. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jquantf-sse2.asm +155 -0
  286. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jquanti-avx2.asm +163 -0
  287. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jquanti-sse2.asm +188 -0
  288. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jsimd.c +1110 -0
  289. data/ext/image_pack/vendor/mozjpeg/simd/x86_64/jsimdcpu.asm +86 -0
  290. data/ext/image_pack/vendor/mozjpeg/strtest.c +170 -0
  291. data/ext/image_pack/vendor/mozjpeg/structure.txt +900 -0
  292. data/ext/image_pack/vendor/mozjpeg/tjbench.c +1044 -0
  293. data/ext/image_pack/vendor/mozjpeg/tjbenchtest.in +256 -0
  294. data/ext/image_pack/vendor/mozjpeg/tjbenchtest.java.in +215 -0
  295. data/ext/image_pack/vendor/mozjpeg/tjexample.c +406 -0
  296. data/ext/image_pack/vendor/mozjpeg/tjexampletest.in +149 -0
  297. data/ext/image_pack/vendor/mozjpeg/tjexampletest.java.in +151 -0
  298. data/ext/image_pack/vendor/mozjpeg/tjunittest.c +961 -0
  299. data/ext/image_pack/vendor/mozjpeg/tjutil.c +70 -0
  300. data/ext/image_pack/vendor/mozjpeg/tjutil.h +53 -0
  301. data/ext/image_pack/vendor/mozjpeg/transupp.c +2373 -0
  302. data/ext/image_pack/vendor/mozjpeg/transupp.h +243 -0
  303. data/ext/image_pack/vendor/mozjpeg/turbojpeg-jni.c +1259 -0
  304. data/ext/image_pack/vendor/mozjpeg/turbojpeg.c +2320 -0
  305. data/ext/image_pack/vendor/mozjpeg/turbojpeg.h +1784 -0
  306. data/ext/image_pack/vendor/mozjpeg/usage.txt +679 -0
  307. data/ext/image_pack/vendor/mozjpeg/wizard.txt +220 -0
  308. data/ext/image_pack/vendor/mozjpeg/wrbmp.c +552 -0
  309. data/ext/image_pack/vendor/mozjpeg/wrgif.c +580 -0
  310. data/ext/image_pack/vendor/mozjpeg/wrjpgcom.c +577 -0
  311. data/ext/image_pack/vendor/mozjpeg/wrppm.c +366 -0
  312. data/ext/image_pack/vendor/mozjpeg/wrtarga.c +258 -0
  313. data/ext/image_pack/vendor/mozjpeg/yuvjpeg.c +268 -0
  314. data/lib/image_pack/backend.rb +8 -0
  315. data/lib/image_pack/configuration.rb +23 -0
  316. data/lib/image_pack/errors.rb +13 -0
  317. data/lib/image_pack/version.rb +5 -0
  318. data/lib/image_pack.rb +208 -0
  319. metadata +433 -0
@@ -0,0 +1,1258 @@
1
+ /*
2
+ * simd/jsimd.h
3
+ *
4
+ * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5
+ * Copyright (C) 2011, 2014-2016, 2018, 2020, 2022, D. R. Commander.
6
+ * Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
7
+ * Copyright (C) 2014, Linaro Limited.
8
+ * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
9
+ * Copyright (C) 2016-2018, Loongson Technology Corporation Limited, BeiJing.
10
+ * Copyright (C) 2020, Arm Limited.
11
+ *
12
+ * Based on the x86 SIMD extension for IJG JPEG library,
13
+ * Copyright (C) 1999-2006, MIYASAKA Masaru.
14
+ * For conditions of distribution and use, see copyright notice in jsimdext.inc
15
+ *
16
+ */
17
+
18
+ /* Bitmask for supported acceleration methods */
19
+
20
+ #define JSIMD_NONE 0x00
21
+ #define JSIMD_MMX 0x01
22
+ #define JSIMD_3DNOW 0x02
23
+ #define JSIMD_SSE 0x04
24
+ #define JSIMD_SSE2 0x08
25
+ #define JSIMD_NEON 0x10
26
+ #define JSIMD_DSPR2 0x20
27
+ #define JSIMD_ALTIVEC 0x40
28
+ #define JSIMD_AVX2 0x80
29
+ #define JSIMD_MMI 0x100
30
+
31
+ /* SIMD Ext: retrieve SIMD/CPU information */
32
+ EXTERN(unsigned int) jpeg_simd_cpu_support(void);
33
+
34
+ /* RGB & extended RGB --> YCC Colorspace Conversion */
35
+ EXTERN(void) jsimd_rgb_ycc_convert_mmx
36
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
37
+ JDIMENSION output_row, int num_rows);
38
+ EXTERN(void) jsimd_extrgb_ycc_convert_mmx
39
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
40
+ JDIMENSION output_row, int num_rows);
41
+ EXTERN(void) jsimd_extrgbx_ycc_convert_mmx
42
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
43
+ JDIMENSION output_row, int num_rows);
44
+ EXTERN(void) jsimd_extbgr_ycc_convert_mmx
45
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
46
+ JDIMENSION output_row, int num_rows);
47
+ EXTERN(void) jsimd_extbgrx_ycc_convert_mmx
48
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
49
+ JDIMENSION output_row, int num_rows);
50
+ EXTERN(void) jsimd_extxbgr_ycc_convert_mmx
51
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
52
+ JDIMENSION output_row, int num_rows);
53
+ EXTERN(void) jsimd_extxrgb_ycc_convert_mmx
54
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
55
+ JDIMENSION output_row, int num_rows);
56
+
57
+ extern const int jconst_rgb_ycc_convert_sse2[];
58
+ EXTERN(void) jsimd_rgb_ycc_convert_sse2
59
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
60
+ JDIMENSION output_row, int num_rows);
61
+ EXTERN(void) jsimd_extrgb_ycc_convert_sse2
62
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
63
+ JDIMENSION output_row, int num_rows);
64
+ EXTERN(void) jsimd_extrgbx_ycc_convert_sse2
65
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
66
+ JDIMENSION output_row, int num_rows);
67
+ EXTERN(void) jsimd_extbgr_ycc_convert_sse2
68
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
69
+ JDIMENSION output_row, int num_rows);
70
+ EXTERN(void) jsimd_extbgrx_ycc_convert_sse2
71
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
72
+ JDIMENSION output_row, int num_rows);
73
+ EXTERN(void) jsimd_extxbgr_ycc_convert_sse2
74
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
75
+ JDIMENSION output_row, int num_rows);
76
+ EXTERN(void) jsimd_extxrgb_ycc_convert_sse2
77
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
78
+ JDIMENSION output_row, int num_rows);
79
+
80
+ extern const int jconst_rgb_ycc_convert_avx2[];
81
+ EXTERN(void) jsimd_rgb_ycc_convert_avx2
82
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
83
+ JDIMENSION output_row, int num_rows);
84
+ EXTERN(void) jsimd_extrgb_ycc_convert_avx2
85
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
86
+ JDIMENSION output_row, int num_rows);
87
+ EXTERN(void) jsimd_extrgbx_ycc_convert_avx2
88
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
89
+ JDIMENSION output_row, int num_rows);
90
+ EXTERN(void) jsimd_extbgr_ycc_convert_avx2
91
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
92
+ JDIMENSION output_row, int num_rows);
93
+ EXTERN(void) jsimd_extbgrx_ycc_convert_avx2
94
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
95
+ JDIMENSION output_row, int num_rows);
96
+ EXTERN(void) jsimd_extxbgr_ycc_convert_avx2
97
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
98
+ JDIMENSION output_row, int num_rows);
99
+ EXTERN(void) jsimd_extxrgb_ycc_convert_avx2
100
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
101
+ JDIMENSION output_row, int num_rows);
102
+
103
+ EXTERN(void) jsimd_rgb_ycc_convert_neon
104
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
105
+ JDIMENSION output_row, int num_rows);
106
+ EXTERN(void) jsimd_extrgb_ycc_convert_neon
107
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
108
+ JDIMENSION output_row, int num_rows);
109
+ EXTERN(void) jsimd_extrgbx_ycc_convert_neon
110
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
111
+ JDIMENSION output_row, int num_rows);
112
+ EXTERN(void) jsimd_extbgr_ycc_convert_neon
113
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
114
+ JDIMENSION output_row, int num_rows);
115
+ EXTERN(void) jsimd_extbgrx_ycc_convert_neon
116
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
117
+ JDIMENSION output_row, int num_rows);
118
+ EXTERN(void) jsimd_extxbgr_ycc_convert_neon
119
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
120
+ JDIMENSION output_row, int num_rows);
121
+ EXTERN(void) jsimd_extxrgb_ycc_convert_neon
122
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
123
+ JDIMENSION output_row, int num_rows);
124
+
125
+ #ifndef NEON_INTRINSICS
126
+
127
+ EXTERN(void) jsimd_extrgb_ycc_convert_neon_slowld3
128
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
129
+ JDIMENSION output_row, int num_rows);
130
+ EXTERN(void) jsimd_extbgr_ycc_convert_neon_slowld3
131
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
132
+ JDIMENSION output_row, int num_rows);
133
+
134
+ #endif
135
+
136
+ EXTERN(void) jsimd_rgb_ycc_convert_dspr2
137
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
138
+ JDIMENSION output_row, int num_rows);
139
+ EXTERN(void) jsimd_extrgb_ycc_convert_dspr2
140
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
141
+ JDIMENSION output_row, int num_rows);
142
+ EXTERN(void) jsimd_extrgbx_ycc_convert_dspr2
143
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
144
+ JDIMENSION output_row, int num_rows);
145
+ EXTERN(void) jsimd_extbgr_ycc_convert_dspr2
146
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
147
+ JDIMENSION output_row, int num_rows);
148
+ EXTERN(void) jsimd_extbgrx_ycc_convert_dspr2
149
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
150
+ JDIMENSION output_row, int num_rows);
151
+ EXTERN(void) jsimd_extxbgr_ycc_convert_dspr2
152
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
153
+ JDIMENSION output_row, int num_rows);
154
+ EXTERN(void) jsimd_extxrgb_ycc_convert_dspr2
155
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
156
+ JDIMENSION output_row, int num_rows);
157
+
158
+ EXTERN(void) jsimd_rgb_ycc_convert_mmi
159
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
160
+ JDIMENSION output_row, int num_rows);
161
+ EXTERN(void) jsimd_extrgb_ycc_convert_mmi
162
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
163
+ JDIMENSION output_row, int num_rows);
164
+ EXTERN(void) jsimd_extrgbx_ycc_convert_mmi
165
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
166
+ JDIMENSION output_row, int num_rows);
167
+ EXTERN(void) jsimd_extbgr_ycc_convert_mmi
168
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
169
+ JDIMENSION output_row, int num_rows);
170
+ EXTERN(void) jsimd_extbgrx_ycc_convert_mmi
171
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
172
+ JDIMENSION output_row, int num_rows);
173
+ EXTERN(void) jsimd_extxbgr_ycc_convert_mmi
174
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
175
+ JDIMENSION output_row, int num_rows);
176
+ EXTERN(void) jsimd_extxrgb_ycc_convert_mmi
177
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
178
+ JDIMENSION output_row, int num_rows);
179
+
180
+ EXTERN(void) jsimd_rgb_ycc_convert_altivec
181
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
182
+ JDIMENSION output_row, int num_rows);
183
+ EXTERN(void) jsimd_extrgb_ycc_convert_altivec
184
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
185
+ JDIMENSION output_row, int num_rows);
186
+ EXTERN(void) jsimd_extrgbx_ycc_convert_altivec
187
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
188
+ JDIMENSION output_row, int num_rows);
189
+ EXTERN(void) jsimd_extbgr_ycc_convert_altivec
190
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
191
+ JDIMENSION output_row, int num_rows);
192
+ EXTERN(void) jsimd_extbgrx_ycc_convert_altivec
193
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
194
+ JDIMENSION output_row, int num_rows);
195
+ EXTERN(void) jsimd_extxbgr_ycc_convert_altivec
196
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
197
+ JDIMENSION output_row, int num_rows);
198
+ EXTERN(void) jsimd_extxrgb_ycc_convert_altivec
199
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
200
+ JDIMENSION output_row, int num_rows);
201
+
202
+ /* RGB & extended RGB --> Grayscale Colorspace Conversion */
203
+ EXTERN(void) jsimd_rgb_gray_convert_mmx
204
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
205
+ JDIMENSION output_row, int num_rows);
206
+ EXTERN(void) jsimd_extrgb_gray_convert_mmx
207
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
208
+ JDIMENSION output_row, int num_rows);
209
+ EXTERN(void) jsimd_extrgbx_gray_convert_mmx
210
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
211
+ JDIMENSION output_row, int num_rows);
212
+ EXTERN(void) jsimd_extbgr_gray_convert_mmx
213
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
214
+ JDIMENSION output_row, int num_rows);
215
+ EXTERN(void) jsimd_extbgrx_gray_convert_mmx
216
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
217
+ JDIMENSION output_row, int num_rows);
218
+ EXTERN(void) jsimd_extxbgr_gray_convert_mmx
219
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
220
+ JDIMENSION output_row, int num_rows);
221
+ EXTERN(void) jsimd_extxrgb_gray_convert_mmx
222
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
223
+ JDIMENSION output_row, int num_rows);
224
+
225
+ extern const int jconst_rgb_gray_convert_sse2[];
226
+ EXTERN(void) jsimd_rgb_gray_convert_sse2
227
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
228
+ JDIMENSION output_row, int num_rows);
229
+ EXTERN(void) jsimd_extrgb_gray_convert_sse2
230
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
231
+ JDIMENSION output_row, int num_rows);
232
+ EXTERN(void) jsimd_extrgbx_gray_convert_sse2
233
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
234
+ JDIMENSION output_row, int num_rows);
235
+ EXTERN(void) jsimd_extbgr_gray_convert_sse2
236
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
237
+ JDIMENSION output_row, int num_rows);
238
+ EXTERN(void) jsimd_extbgrx_gray_convert_sse2
239
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
240
+ JDIMENSION output_row, int num_rows);
241
+ EXTERN(void) jsimd_extxbgr_gray_convert_sse2
242
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
243
+ JDIMENSION output_row, int num_rows);
244
+ EXTERN(void) jsimd_extxrgb_gray_convert_sse2
245
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
246
+ JDIMENSION output_row, int num_rows);
247
+
248
+ extern const int jconst_rgb_gray_convert_avx2[];
249
+ EXTERN(void) jsimd_rgb_gray_convert_avx2
250
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
251
+ JDIMENSION output_row, int num_rows);
252
+ EXTERN(void) jsimd_extrgb_gray_convert_avx2
253
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
254
+ JDIMENSION output_row, int num_rows);
255
+ EXTERN(void) jsimd_extrgbx_gray_convert_avx2
256
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
257
+ JDIMENSION output_row, int num_rows);
258
+ EXTERN(void) jsimd_extbgr_gray_convert_avx2
259
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
260
+ JDIMENSION output_row, int num_rows);
261
+ EXTERN(void) jsimd_extbgrx_gray_convert_avx2
262
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
263
+ JDIMENSION output_row, int num_rows);
264
+ EXTERN(void) jsimd_extxbgr_gray_convert_avx2
265
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
266
+ JDIMENSION output_row, int num_rows);
267
+ EXTERN(void) jsimd_extxrgb_gray_convert_avx2
268
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
269
+ JDIMENSION output_row, int num_rows);
270
+
271
+ EXTERN(void) jsimd_rgb_gray_convert_neon
272
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
273
+ JDIMENSION output_row, int num_rows);
274
+ EXTERN(void) jsimd_extrgb_gray_convert_neon
275
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
276
+ JDIMENSION output_row, int num_rows);
277
+ EXTERN(void) jsimd_extrgbx_gray_convert_neon
278
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
279
+ JDIMENSION output_row, int num_rows);
280
+ EXTERN(void) jsimd_extbgr_gray_convert_neon
281
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
282
+ JDIMENSION output_row, int num_rows);
283
+ EXTERN(void) jsimd_extbgrx_gray_convert_neon
284
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
285
+ JDIMENSION output_row, int num_rows);
286
+ EXTERN(void) jsimd_extxbgr_gray_convert_neon
287
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
288
+ JDIMENSION output_row, int num_rows);
289
+ EXTERN(void) jsimd_extxrgb_gray_convert_neon
290
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
291
+ JDIMENSION output_row, int num_rows);
292
+
293
+ EXTERN(void) jsimd_rgb_gray_convert_dspr2
294
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
295
+ JDIMENSION output_row, int num_rows);
296
+ EXTERN(void) jsimd_extrgb_gray_convert_dspr2
297
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
298
+ JDIMENSION output_row, int num_rows);
299
+ EXTERN(void) jsimd_extrgbx_gray_convert_dspr2
300
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
301
+ JDIMENSION output_row, int num_rows);
302
+ EXTERN(void) jsimd_extbgr_gray_convert_dspr2
303
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
304
+ JDIMENSION output_row, int num_rows);
305
+ EXTERN(void) jsimd_extbgrx_gray_convert_dspr2
306
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
307
+ JDIMENSION output_row, int num_rows);
308
+ EXTERN(void) jsimd_extxbgr_gray_convert_dspr2
309
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
310
+ JDIMENSION output_row, int num_rows);
311
+ EXTERN(void) jsimd_extxrgb_gray_convert_dspr2
312
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
313
+ JDIMENSION output_row, int num_rows);
314
+
315
+ EXTERN(void) jsimd_rgb_gray_convert_mmi
316
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
317
+ JDIMENSION output_row, int num_rows);
318
+ EXTERN(void) jsimd_extrgb_gray_convert_mmi
319
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
320
+ JDIMENSION output_row, int num_rows);
321
+ EXTERN(void) jsimd_extrgbx_gray_convert_mmi
322
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
323
+ JDIMENSION output_row, int num_rows);
324
+ EXTERN(void) jsimd_extbgr_gray_convert_mmi
325
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
326
+ JDIMENSION output_row, int num_rows);
327
+ EXTERN(void) jsimd_extbgrx_gray_convert_mmi
328
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
329
+ JDIMENSION output_row, int num_rows);
330
+ EXTERN(void) jsimd_extxbgr_gray_convert_mmi
331
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
332
+ JDIMENSION output_row, int num_rows);
333
+ EXTERN(void) jsimd_extxrgb_gray_convert_mmi
334
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
335
+ JDIMENSION output_row, int num_rows);
336
+
337
+ EXTERN(void) jsimd_rgb_gray_convert_altivec
338
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
339
+ JDIMENSION output_row, int num_rows);
340
+ EXTERN(void) jsimd_extrgb_gray_convert_altivec
341
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
342
+ JDIMENSION output_row, int num_rows);
343
+ EXTERN(void) jsimd_extrgbx_gray_convert_altivec
344
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
345
+ JDIMENSION output_row, int num_rows);
346
+ EXTERN(void) jsimd_extbgr_gray_convert_altivec
347
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
348
+ JDIMENSION output_row, int num_rows);
349
+ EXTERN(void) jsimd_extbgrx_gray_convert_altivec
350
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
351
+ JDIMENSION output_row, int num_rows);
352
+ EXTERN(void) jsimd_extxbgr_gray_convert_altivec
353
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
354
+ JDIMENSION output_row, int num_rows);
355
+ EXTERN(void) jsimd_extxrgb_gray_convert_altivec
356
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
357
+ JDIMENSION output_row, int num_rows);
358
+
359
+ /* YCC --> RGB & extended RGB Colorspace Conversion */
360
+ EXTERN(void) jsimd_ycc_rgb_convert_mmx
361
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
362
+ JSAMPARRAY output_buf, int num_rows);
363
+ EXTERN(void) jsimd_ycc_extrgb_convert_mmx
364
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
365
+ JSAMPARRAY output_buf, int num_rows);
366
+ EXTERN(void) jsimd_ycc_extrgbx_convert_mmx
367
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
368
+ JSAMPARRAY output_buf, int num_rows);
369
+ EXTERN(void) jsimd_ycc_extbgr_convert_mmx
370
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
371
+ JSAMPARRAY output_buf, int num_rows);
372
+ EXTERN(void) jsimd_ycc_extbgrx_convert_mmx
373
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
374
+ JSAMPARRAY output_buf, int num_rows);
375
+ EXTERN(void) jsimd_ycc_extxbgr_convert_mmx
376
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
377
+ JSAMPARRAY output_buf, int num_rows);
378
+ EXTERN(void) jsimd_ycc_extxrgb_convert_mmx
379
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
380
+ JSAMPARRAY output_buf, int num_rows);
381
+
382
+ extern const int jconst_ycc_rgb_convert_sse2[];
383
+ EXTERN(void) jsimd_ycc_rgb_convert_sse2
384
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
385
+ JSAMPARRAY output_buf, int num_rows);
386
+ EXTERN(void) jsimd_ycc_extrgb_convert_sse2
387
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
388
+ JSAMPARRAY output_buf, int num_rows);
389
+ EXTERN(void) jsimd_ycc_extrgbx_convert_sse2
390
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
391
+ JSAMPARRAY output_buf, int num_rows);
392
+ EXTERN(void) jsimd_ycc_extbgr_convert_sse2
393
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
394
+ JSAMPARRAY output_buf, int num_rows);
395
+ EXTERN(void) jsimd_ycc_extbgrx_convert_sse2
396
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
397
+ JSAMPARRAY output_buf, int num_rows);
398
+ EXTERN(void) jsimd_ycc_extxbgr_convert_sse2
399
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
400
+ JSAMPARRAY output_buf, int num_rows);
401
+ EXTERN(void) jsimd_ycc_extxrgb_convert_sse2
402
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
403
+ JSAMPARRAY output_buf, int num_rows);
404
+
405
+ extern const int jconst_ycc_rgb_convert_avx2[];
406
+ EXTERN(void) jsimd_ycc_rgb_convert_avx2
407
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
408
+ JSAMPARRAY output_buf, int num_rows);
409
+ EXTERN(void) jsimd_ycc_extrgb_convert_avx2
410
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
411
+ JSAMPARRAY output_buf, int num_rows);
412
+ EXTERN(void) jsimd_ycc_extrgbx_convert_avx2
413
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
414
+ JSAMPARRAY output_buf, int num_rows);
415
+ EXTERN(void) jsimd_ycc_extbgr_convert_avx2
416
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
417
+ JSAMPARRAY output_buf, int num_rows);
418
+ EXTERN(void) jsimd_ycc_extbgrx_convert_avx2
419
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
420
+ JSAMPARRAY output_buf, int num_rows);
421
+ EXTERN(void) jsimd_ycc_extxbgr_convert_avx2
422
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
423
+ JSAMPARRAY output_buf, int num_rows);
424
+ EXTERN(void) jsimd_ycc_extxrgb_convert_avx2
425
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
426
+ JSAMPARRAY output_buf, int num_rows);
427
+
428
+ EXTERN(void) jsimd_ycc_rgb_convert_neon
429
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
430
+ JSAMPARRAY output_buf, int num_rows);
431
+ EXTERN(void) jsimd_ycc_extrgb_convert_neon
432
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
433
+ JSAMPARRAY output_buf, int num_rows);
434
+ EXTERN(void) jsimd_ycc_extrgbx_convert_neon
435
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
436
+ JSAMPARRAY output_buf, int num_rows);
437
+ EXTERN(void) jsimd_ycc_extbgr_convert_neon
438
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
439
+ JSAMPARRAY output_buf, int num_rows);
440
+ EXTERN(void) jsimd_ycc_extbgrx_convert_neon
441
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
442
+ JSAMPARRAY output_buf, int num_rows);
443
+ EXTERN(void) jsimd_ycc_extxbgr_convert_neon
444
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
445
+ JSAMPARRAY output_buf, int num_rows);
446
+ EXTERN(void) jsimd_ycc_extxrgb_convert_neon
447
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
448
+ JSAMPARRAY output_buf, int num_rows);
449
+ EXTERN(void) jsimd_ycc_rgb565_convert_neon
450
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
451
+ JSAMPARRAY output_buf, int num_rows);
452
+
453
+ #ifndef NEON_INTRINSICS
454
+
455
+ EXTERN(void) jsimd_ycc_extrgb_convert_neon_slowst3
456
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
457
+ JSAMPARRAY output_buf, int num_rows);
458
+ EXTERN(void) jsimd_ycc_extbgr_convert_neon_slowst3
459
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
460
+ JSAMPARRAY output_buf, int num_rows);
461
+
462
+ #endif
463
+
464
+ EXTERN(void) jsimd_ycc_rgb_convert_dspr2
465
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
466
+ JSAMPARRAY output_buf, int num_rows);
467
+ EXTERN(void) jsimd_ycc_extrgb_convert_dspr2
468
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
469
+ JSAMPARRAY output_buf, int num_rows);
470
+ EXTERN(void) jsimd_ycc_extrgbx_convert_dspr2
471
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
472
+ JSAMPARRAY output_buf, int num_rows);
473
+ EXTERN(void) jsimd_ycc_extbgr_convert_dspr2
474
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
475
+ JSAMPARRAY output_buf, int num_rows);
476
+ EXTERN(void) jsimd_ycc_extbgrx_convert_dspr2
477
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
478
+ JSAMPARRAY output_buf, int num_rows);
479
+ EXTERN(void) jsimd_ycc_extxbgr_convert_dspr2
480
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
481
+ JSAMPARRAY output_buf, int num_rows);
482
+ EXTERN(void) jsimd_ycc_extxrgb_convert_dspr2
483
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
484
+ JSAMPARRAY output_buf, int num_rows);
485
+
486
+ EXTERN(void) jsimd_ycc_rgb_convert_mmi
487
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
488
+ JSAMPARRAY output_buf, int num_rows);
489
+ EXTERN(void) jsimd_ycc_extrgb_convert_mmi
490
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
491
+ JSAMPARRAY output_buf, int num_rows);
492
+ EXTERN(void) jsimd_ycc_extrgbx_convert_mmi
493
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
494
+ JSAMPARRAY output_buf, int num_rows);
495
+ EXTERN(void) jsimd_ycc_extbgr_convert_mmi
496
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
497
+ JSAMPARRAY output_buf, int num_rows);
498
+ EXTERN(void) jsimd_ycc_extbgrx_convert_mmi
499
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
500
+ JSAMPARRAY output_buf, int num_rows);
501
+ EXTERN(void) jsimd_ycc_extxbgr_convert_mmi
502
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
503
+ JSAMPARRAY output_buf, int num_rows);
504
+ EXTERN(void) jsimd_ycc_extxrgb_convert_mmi
505
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
506
+ JSAMPARRAY output_buf, int num_rows);
507
+
508
+ EXTERN(void) jsimd_ycc_rgb_convert_altivec
509
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
510
+ JSAMPARRAY output_buf, int num_rows);
511
+ EXTERN(void) jsimd_ycc_extrgb_convert_altivec
512
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
513
+ JSAMPARRAY output_buf, int num_rows);
514
+ EXTERN(void) jsimd_ycc_extrgbx_convert_altivec
515
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
516
+ JSAMPARRAY output_buf, int num_rows);
517
+ EXTERN(void) jsimd_ycc_extbgr_convert_altivec
518
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
519
+ JSAMPARRAY output_buf, int num_rows);
520
+ EXTERN(void) jsimd_ycc_extbgrx_convert_altivec
521
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
522
+ JSAMPARRAY output_buf, int num_rows);
523
+ EXTERN(void) jsimd_ycc_extxbgr_convert_altivec
524
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
525
+ JSAMPARRAY output_buf, int num_rows);
526
+ EXTERN(void) jsimd_ycc_extxrgb_convert_altivec
527
+ (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row,
528
+ JSAMPARRAY output_buf, int num_rows);
529
+
530
+ /* NULL Colorspace Conversion */
531
+ EXTERN(void) jsimd_c_null_convert_dspr2
532
+ (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
533
+ JDIMENSION output_row, int num_rows, int num_components);
534
+
535
+ /* h2v1 Downsampling */
536
+ EXTERN(void) jsimd_h2v1_downsample_mmx
537
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
538
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
539
+
540
+ EXTERN(void) jsimd_h2v1_downsample_sse2
541
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
542
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
543
+
544
+ EXTERN(void) jsimd_h2v1_downsample_avx2
545
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
546
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
547
+
548
+ EXTERN(void) jsimd_h2v1_downsample_neon
549
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
550
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
551
+
552
+ EXTERN(void) jsimd_h2v1_downsample_dspr2
553
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
554
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
555
+
556
+ EXTERN(void) jsimd_h2v1_downsample_altivec
557
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
558
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
559
+
560
+ /* h2v2 Downsampling */
561
+ EXTERN(void) jsimd_h2v2_downsample_mmx
562
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
563
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
564
+
565
+ EXTERN(void) jsimd_h2v2_downsample_sse2
566
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
567
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
568
+
569
+ EXTERN(void) jsimd_h2v2_downsample_avx2
570
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
571
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
572
+
573
+ EXTERN(void) jsimd_h2v2_downsample_neon
574
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
575
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
576
+
577
+ EXTERN(void) jsimd_h2v2_downsample_dspr2
578
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
579
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
580
+
581
+ EXTERN(void) jsimd_h2v2_downsample_mmi
582
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
583
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
584
+
585
+ EXTERN(void) jsimd_h2v2_downsample_altivec
586
+ (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor,
587
+ JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data);
588
+
589
+ /* h2v2 Smooth Downsampling */
590
+ EXTERN(void) jsimd_h2v2_smooth_downsample_dspr2
591
+ (JSAMPARRAY input_data, JSAMPARRAY output_data, JDIMENSION v_samp_factor,
592
+ int max_v_samp_factor, int smoothing_factor, JDIMENSION width_in_blocks,
593
+ JDIMENSION image_width);
594
+
595
+
596
+ /* Upsampling */
597
+ EXTERN(void) jsimd_h2v1_upsample_mmx
598
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
599
+ JSAMPARRAY *output_data_ptr);
600
+ EXTERN(void) jsimd_h2v2_upsample_mmx
601
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
602
+ JSAMPARRAY *output_data_ptr);
603
+
604
+ EXTERN(void) jsimd_h2v1_upsample_sse2
605
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
606
+ JSAMPARRAY *output_data_ptr);
607
+ EXTERN(void) jsimd_h2v2_upsample_sse2
608
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
609
+ JSAMPARRAY *output_data_ptr);
610
+
611
+ EXTERN(void) jsimd_h2v1_upsample_avx2
612
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
613
+ JSAMPARRAY *output_data_ptr);
614
+ EXTERN(void) jsimd_h2v2_upsample_avx2
615
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
616
+ JSAMPARRAY *output_data_ptr);
617
+
618
+ EXTERN(void) jsimd_h2v1_upsample_neon
619
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
620
+ JSAMPARRAY *output_data_ptr);
621
+ EXTERN(void) jsimd_h2v2_upsample_neon
622
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
623
+ JSAMPARRAY *output_data_ptr);
624
+
625
+ EXTERN(void) jsimd_h2v1_upsample_dspr2
626
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
627
+ JSAMPARRAY *output_data_ptr);
628
+ EXTERN(void) jsimd_h2v2_upsample_dspr2
629
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
630
+ JSAMPARRAY *output_data_ptr);
631
+
632
+ EXTERN(void) jsimd_int_upsample_dspr2
633
+ (UINT8 h_expand, UINT8 v_expand, JSAMPARRAY input_data,
634
+ JSAMPARRAY *output_data_ptr, JDIMENSION output_width,
635
+ int max_v_samp_factor);
636
+
637
+ EXTERN(void) jsimd_h2v1_upsample_altivec
638
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
639
+ JSAMPARRAY *output_data_ptr);
640
+ EXTERN(void) jsimd_h2v2_upsample_altivec
641
+ (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data,
642
+ JSAMPARRAY *output_data_ptr);
643
+
644
+ /* Fancy Upsampling */
645
+ EXTERN(void) jsimd_h2v1_fancy_upsample_mmx
646
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
647
+ JSAMPARRAY *output_data_ptr);
648
+ EXTERN(void) jsimd_h2v2_fancy_upsample_mmx
649
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
650
+ JSAMPARRAY *output_data_ptr);
651
+
652
+ extern const int jconst_fancy_upsample_sse2[];
653
+ EXTERN(void) jsimd_h2v1_fancy_upsample_sse2
654
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
655
+ JSAMPARRAY *output_data_ptr);
656
+ EXTERN(void) jsimd_h2v2_fancy_upsample_sse2
657
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
658
+ JSAMPARRAY *output_data_ptr);
659
+
660
+ extern const int jconst_fancy_upsample_avx2[];
661
+ EXTERN(void) jsimd_h2v1_fancy_upsample_avx2
662
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
663
+ JSAMPARRAY *output_data_ptr);
664
+ EXTERN(void) jsimd_h2v2_fancy_upsample_avx2
665
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
666
+ JSAMPARRAY *output_data_ptr);
667
+
668
+ EXTERN(void) jsimd_h2v1_fancy_upsample_neon
669
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
670
+ JSAMPARRAY *output_data_ptr);
671
+ EXTERN(void) jsimd_h2v2_fancy_upsample_neon
672
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
673
+ JSAMPARRAY *output_data_ptr);
674
+ EXTERN(void) jsimd_h1v2_fancy_upsample_neon
675
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
676
+ JSAMPARRAY *output_data_ptr);
677
+
678
+ EXTERN(void) jsimd_h2v1_fancy_upsample_dspr2
679
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
680
+ JSAMPARRAY *output_data_ptr);
681
+ EXTERN(void) jsimd_h2v2_fancy_upsample_dspr2
682
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
683
+ JSAMPARRAY *output_data_ptr);
684
+
685
+ EXTERN(void) jsimd_h2v1_fancy_upsample_mmi
686
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
687
+ JSAMPARRAY *output_data_ptr);
688
+ EXTERN(void) jsimd_h2v2_fancy_upsample_mmi
689
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
690
+ JSAMPARRAY *output_data_ptr);
691
+
692
+ EXTERN(void) jsimd_h2v1_fancy_upsample_altivec
693
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
694
+ JSAMPARRAY *output_data_ptr);
695
+ EXTERN(void) jsimd_h2v2_fancy_upsample_altivec
696
+ (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data,
697
+ JSAMPARRAY *output_data_ptr);
698
+
699
+ /* Merged Upsampling */
700
+ EXTERN(void) jsimd_h2v1_merged_upsample_mmx
701
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
702
+ JSAMPARRAY output_buf);
703
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mmx
704
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
705
+ JSAMPARRAY output_buf);
706
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mmx
707
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
708
+ JSAMPARRAY output_buf);
709
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mmx
710
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
711
+ JSAMPARRAY output_buf);
712
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mmx
713
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
714
+ JSAMPARRAY output_buf);
715
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mmx
716
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
717
+ JSAMPARRAY output_buf);
718
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mmx
719
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
720
+ JSAMPARRAY output_buf);
721
+
722
+ EXTERN(void) jsimd_h2v2_merged_upsample_mmx
723
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
724
+ JSAMPARRAY output_buf);
725
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mmx
726
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
727
+ JSAMPARRAY output_buf);
728
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mmx
729
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
730
+ JSAMPARRAY output_buf);
731
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mmx
732
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
733
+ JSAMPARRAY output_buf);
734
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mmx
735
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
736
+ JSAMPARRAY output_buf);
737
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mmx
738
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
739
+ JSAMPARRAY output_buf);
740
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mmx
741
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
742
+ JSAMPARRAY output_buf);
743
+
744
+ extern const int jconst_merged_upsample_sse2[];
745
+ EXTERN(void) jsimd_h2v1_merged_upsample_sse2
746
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
747
+ JSAMPARRAY output_buf);
748
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_sse2
749
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
750
+ JSAMPARRAY output_buf);
751
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_sse2
752
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
753
+ JSAMPARRAY output_buf);
754
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_sse2
755
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
756
+ JSAMPARRAY output_buf);
757
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_sse2
758
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
759
+ JSAMPARRAY output_buf);
760
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_sse2
761
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
762
+ JSAMPARRAY output_buf);
763
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_sse2
764
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
765
+ JSAMPARRAY output_buf);
766
+
767
+ EXTERN(void) jsimd_h2v2_merged_upsample_sse2
768
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
769
+ JSAMPARRAY output_buf);
770
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_sse2
771
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
772
+ JSAMPARRAY output_buf);
773
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_sse2
774
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
775
+ JSAMPARRAY output_buf);
776
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_sse2
777
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
778
+ JSAMPARRAY output_buf);
779
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_sse2
780
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
781
+ JSAMPARRAY output_buf);
782
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_sse2
783
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
784
+ JSAMPARRAY output_buf);
785
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_sse2
786
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
787
+ JSAMPARRAY output_buf);
788
+
789
+ extern const int jconst_merged_upsample_avx2[];
790
+ EXTERN(void) jsimd_h2v1_merged_upsample_avx2
791
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
792
+ JSAMPARRAY output_buf);
793
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_avx2
794
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
795
+ JSAMPARRAY output_buf);
796
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_avx2
797
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
798
+ JSAMPARRAY output_buf);
799
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_avx2
800
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
801
+ JSAMPARRAY output_buf);
802
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_avx2
803
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
804
+ JSAMPARRAY output_buf);
805
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_avx2
806
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
807
+ JSAMPARRAY output_buf);
808
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_avx2
809
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
810
+ JSAMPARRAY output_buf);
811
+
812
+ EXTERN(void) jsimd_h2v2_merged_upsample_avx2
813
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
814
+ JSAMPARRAY output_buf);
815
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_avx2
816
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
817
+ JSAMPARRAY output_buf);
818
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_avx2
819
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
820
+ JSAMPARRAY output_buf);
821
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_avx2
822
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
823
+ JSAMPARRAY output_buf);
824
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_avx2
825
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
826
+ JSAMPARRAY output_buf);
827
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_avx2
828
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
829
+ JSAMPARRAY output_buf);
830
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_avx2
831
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
832
+ JSAMPARRAY output_buf);
833
+
834
+ EXTERN(void) jsimd_h2v1_merged_upsample_neon
835
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
836
+ JSAMPARRAY output_buf);
837
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_neon
838
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
839
+ JSAMPARRAY output_buf);
840
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_neon
841
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
842
+ JSAMPARRAY output_buf);
843
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_neon
844
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
845
+ JSAMPARRAY output_buf);
846
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_neon
847
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
848
+ JSAMPARRAY output_buf);
849
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_neon
850
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
851
+ JSAMPARRAY output_buf);
852
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_neon
853
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
854
+ JSAMPARRAY output_buf);
855
+
856
+ EXTERN(void) jsimd_h2v2_merged_upsample_neon
857
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
858
+ JSAMPARRAY output_buf);
859
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_neon
860
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
861
+ JSAMPARRAY output_buf);
862
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_neon
863
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
864
+ JSAMPARRAY output_buf);
865
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_neon
866
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
867
+ JSAMPARRAY output_buf);
868
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_neon
869
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
870
+ JSAMPARRAY output_buf);
871
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_neon
872
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
873
+ JSAMPARRAY output_buf);
874
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_neon
875
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
876
+ JSAMPARRAY output_buf);
877
+
878
+ EXTERN(void) jsimd_h2v1_merged_upsample_dspr2
879
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
880
+ JSAMPARRAY output_buf, JSAMPLE *range);
881
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_dspr2
882
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
883
+ JSAMPARRAY output_buf, JSAMPLE *range);
884
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_dspr2
885
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
886
+ JSAMPARRAY output_buf, JSAMPLE *range);
887
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_dspr2
888
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
889
+ JSAMPARRAY output_buf, JSAMPLE *range);
890
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_dspr2
891
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
892
+ JSAMPARRAY output_buf, JSAMPLE *range);
893
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_dspr2
894
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
895
+ JSAMPARRAY output_buf, JSAMPLE *range);
896
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_dspr2
897
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
898
+ JSAMPARRAY output_buf, JSAMPLE *range);
899
+
900
+ EXTERN(void) jsimd_h2v2_merged_upsample_dspr2
901
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
902
+ JSAMPARRAY output_buf, JSAMPLE *range);
903
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_dspr2
904
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
905
+ JSAMPARRAY output_buf, JSAMPLE *range);
906
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_dspr2
907
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
908
+ JSAMPARRAY output_buf, JSAMPLE *range);
909
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_dspr2
910
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
911
+ JSAMPARRAY output_buf, JSAMPLE *range);
912
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_dspr2
913
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
914
+ JSAMPARRAY output_buf, JSAMPLE *range);
915
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_dspr2
916
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
917
+ JSAMPARRAY output_buf, JSAMPLE *range);
918
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_dspr2
919
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
920
+ JSAMPARRAY output_buf, JSAMPLE *range);
921
+
922
+ EXTERN(void) jsimd_h2v1_merged_upsample_mmi
923
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
924
+ JSAMPARRAY output_buf);
925
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mmi
926
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
927
+ JSAMPARRAY output_buf);
928
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mmi
929
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
930
+ JSAMPARRAY output_buf);
931
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mmi
932
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
933
+ JSAMPARRAY output_buf);
934
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mmi
935
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
936
+ JSAMPARRAY output_buf);
937
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mmi
938
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
939
+ JSAMPARRAY output_buf);
940
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mmi
941
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
942
+ JSAMPARRAY output_buf);
943
+
944
+ EXTERN(void) jsimd_h2v2_merged_upsample_mmi
945
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
946
+ JSAMPARRAY output_buf);
947
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mmi
948
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
949
+ JSAMPARRAY output_buf);
950
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mmi
951
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
952
+ JSAMPARRAY output_buf);
953
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mmi
954
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
955
+ JSAMPARRAY output_buf);
956
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mmi
957
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
958
+ JSAMPARRAY output_buf);
959
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mmi
960
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
961
+ JSAMPARRAY output_buf);
962
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mmi
963
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
964
+ JSAMPARRAY output_buf);
965
+
966
+ EXTERN(void) jsimd_h2v1_merged_upsample_altivec
967
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
968
+ JSAMPARRAY output_buf);
969
+ EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_altivec
970
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
971
+ JSAMPARRAY output_buf);
972
+ EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_altivec
973
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
974
+ JSAMPARRAY output_buf);
975
+ EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_altivec
976
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
977
+ JSAMPARRAY output_buf);
978
+ EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_altivec
979
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
980
+ JSAMPARRAY output_buf);
981
+ EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_altivec
982
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
983
+ JSAMPARRAY output_buf);
984
+ EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_altivec
985
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
986
+ JSAMPARRAY output_buf);
987
+
988
+ EXTERN(void) jsimd_h2v2_merged_upsample_altivec
989
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
990
+ JSAMPARRAY output_buf);
991
+ EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_altivec
992
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
993
+ JSAMPARRAY output_buf);
994
+ EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_altivec
995
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
996
+ JSAMPARRAY output_buf);
997
+ EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_altivec
998
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
999
+ JSAMPARRAY output_buf);
1000
+ EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_altivec
1001
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
1002
+ JSAMPARRAY output_buf);
1003
+ EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_altivec
1004
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
1005
+ JSAMPARRAY output_buf);
1006
+ EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_altivec
1007
+ (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr,
1008
+ JSAMPARRAY output_buf);
1009
+
1010
+ /* Sample Conversion */
1011
+ EXTERN(void) jsimd_convsamp_mmx
1012
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
1013
+
1014
+ EXTERN(void) jsimd_convsamp_sse2
1015
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
1016
+
1017
+ EXTERN(void) jsimd_convsamp_avx2
1018
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
1019
+
1020
+ EXTERN(void) jsimd_convsamp_neon
1021
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
1022
+
1023
+ EXTERN(void) jsimd_convsamp_dspr2
1024
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
1025
+
1026
+ EXTERN(void) jsimd_convsamp_altivec
1027
+ (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace);
1028
+
1029
+ /* Floating Point Sample Conversion */
1030
+ EXTERN(void) jsimd_convsamp_float_3dnow
1031
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
1032
+
1033
+ EXTERN(void) jsimd_convsamp_float_sse
1034
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
1035
+
1036
+ EXTERN(void) jsimd_convsamp_float_sse2
1037
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
1038
+
1039
+ EXTERN(void) jsimd_convsamp_float_dspr2
1040
+ (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace);
1041
+
1042
+ /* Accurate Integer Forward DCT */
1043
+ EXTERN(void) jsimd_fdct_islow_mmx(DCTELEM *data);
1044
+
1045
+ extern const int jconst_fdct_islow_sse2[];
1046
+ EXTERN(void) jsimd_fdct_islow_sse2(DCTELEM *data);
1047
+
1048
+ extern const int jconst_fdct_islow_avx2[];
1049
+ EXTERN(void) jsimd_fdct_islow_avx2(DCTELEM *data);
1050
+
1051
+ EXTERN(void) jsimd_fdct_islow_neon(DCTELEM *data);
1052
+
1053
+ EXTERN(void) jsimd_fdct_islow_dspr2(DCTELEM *data);
1054
+
1055
+ EXTERN(void) jsimd_fdct_islow_mmi(DCTELEM *data);
1056
+
1057
+ EXTERN(void) jsimd_fdct_islow_altivec(DCTELEM *data);
1058
+
1059
+ /* Fast Integer Forward DCT */
1060
+ EXTERN(void) jsimd_fdct_ifast_mmx(DCTELEM *data);
1061
+
1062
+ extern const int jconst_fdct_ifast_sse2[];
1063
+ EXTERN(void) jsimd_fdct_ifast_sse2(DCTELEM *data);
1064
+
1065
+ EXTERN(void) jsimd_fdct_ifast_neon(DCTELEM *data);
1066
+
1067
+ EXTERN(void) jsimd_fdct_ifast_dspr2(DCTELEM *data);
1068
+
1069
+ EXTERN(void) jsimd_fdct_ifast_mmi(DCTELEM *data);
1070
+
1071
+ EXTERN(void) jsimd_fdct_ifast_altivec(DCTELEM *data);
1072
+
1073
+ /* Floating Point Forward DCT */
1074
+ EXTERN(void) jsimd_fdct_float_3dnow(FAST_FLOAT *data);
1075
+
1076
+ extern const int jconst_fdct_float_sse[];
1077
+ EXTERN(void) jsimd_fdct_float_sse(FAST_FLOAT *data);
1078
+
1079
+ /* Quantization */
1080
+ EXTERN(void) jsimd_quantize_mmx
1081
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1082
+
1083
+ EXTERN(void) jsimd_quantize_sse2
1084
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1085
+
1086
+ EXTERN(void) jsimd_quantize_avx2
1087
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1088
+
1089
+ EXTERN(void) jsimd_quantize_neon
1090
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1091
+
1092
+ EXTERN(void) jsimd_quantize_dspr2
1093
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1094
+
1095
+ EXTERN(void) jsimd_quantize_mmi
1096
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1097
+
1098
+ EXTERN(void) jsimd_quantize_altivec
1099
+ (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace);
1100
+
1101
+ /* Floating Point Quantization */
1102
+ EXTERN(void) jsimd_quantize_float_3dnow
1103
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
1104
+
1105
+ EXTERN(void) jsimd_quantize_float_sse
1106
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
1107
+
1108
+ EXTERN(void) jsimd_quantize_float_sse2
1109
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
1110
+
1111
+ EXTERN(void) jsimd_quantize_float_dspr2
1112
+ (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace);
1113
+
1114
+ /* Scaled Inverse DCT */
1115
+ EXTERN(void) jsimd_idct_2x2_mmx
1116
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1117
+ JDIMENSION output_col);
1118
+ EXTERN(void) jsimd_idct_4x4_mmx
1119
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1120
+ JDIMENSION output_col);
1121
+
1122
+ extern const int jconst_idct_red_sse2[];
1123
+ EXTERN(void) jsimd_idct_2x2_sse2
1124
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1125
+ JDIMENSION output_col);
1126
+ EXTERN(void) jsimd_idct_4x4_sse2
1127
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1128
+ JDIMENSION output_col);
1129
+
1130
+ EXTERN(void) jsimd_idct_2x2_neon
1131
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1132
+ JDIMENSION output_col);
1133
+ EXTERN(void) jsimd_idct_4x4_neon
1134
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1135
+ JDIMENSION output_col);
1136
+
1137
+ EXTERN(void) jsimd_idct_2x2_dspr2
1138
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1139
+ JDIMENSION output_col);
1140
+ EXTERN(void) jsimd_idct_4x4_dspr2
1141
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1142
+ JDIMENSION output_col, int *workspace);
1143
+ EXTERN(void) jsimd_idct_6x6_dspr2
1144
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1145
+ JDIMENSION output_col);
1146
+ EXTERN(void) jsimd_idct_12x12_pass1_dspr2
1147
+ (JCOEFPTR coef_block, void *dct_table, int *workspace);
1148
+ EXTERN(void) jsimd_idct_12x12_pass2_dspr2
1149
+ (int *workspace, int *output);
1150
+
1151
+ /* Accurate Integer Inverse DCT */
1152
+ EXTERN(void) jsimd_idct_islow_mmx
1153
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1154
+ JDIMENSION output_col);
1155
+
1156
+ extern const int jconst_idct_islow_sse2[];
1157
+ EXTERN(void) jsimd_idct_islow_sse2
1158
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1159
+ JDIMENSION output_col);
1160
+
1161
+ extern const int jconst_idct_islow_avx2[];
1162
+ EXTERN(void) jsimd_idct_islow_avx2
1163
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1164
+ JDIMENSION output_col);
1165
+
1166
+ EXTERN(void) jsimd_idct_islow_neon
1167
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1168
+ JDIMENSION output_col);
1169
+
1170
+ EXTERN(void) jsimd_idct_islow_dspr2
1171
+ (void *dct_table, JCOEFPTR coef_block, int *output_buf, JSAMPLE *output_col);
1172
+
1173
+ EXTERN(void) jsimd_idct_islow_mmi
1174
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1175
+ JDIMENSION output_col);
1176
+
1177
+ EXTERN(void) jsimd_idct_islow_altivec
1178
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1179
+ JDIMENSION output_col);
1180
+
1181
+ /* Fast Integer Inverse DCT */
1182
+ EXTERN(void) jsimd_idct_ifast_mmx
1183
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1184
+ JDIMENSION output_col);
1185
+
1186
+ extern const int jconst_idct_ifast_sse2[];
1187
+ EXTERN(void) jsimd_idct_ifast_sse2
1188
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1189
+ JDIMENSION output_col);
1190
+
1191
+ EXTERN(void) jsimd_idct_ifast_neon
1192
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1193
+ JDIMENSION output_col);
1194
+
1195
+ EXTERN(void) jsimd_idct_ifast_cols_dspr2
1196
+ (JCOEF *inptr, IFAST_MULT_TYPE *quantptr, DCTELEM *wsptr,
1197
+ const int *idct_coefs);
1198
+ EXTERN(void) jsimd_idct_ifast_rows_dspr2
1199
+ (DCTELEM *wsptr, JSAMPARRAY output_buf, JDIMENSION output_col,
1200
+ const int *idct_coefs);
1201
+
1202
+ EXTERN(void) jsimd_idct_ifast_mmi
1203
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1204
+ JDIMENSION output_col);
1205
+
1206
+ EXTERN(void) jsimd_idct_ifast_altivec
1207
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1208
+ JDIMENSION output_col);
1209
+
1210
+ /* Floating Point Inverse DCT */
1211
+ EXTERN(void) jsimd_idct_float_3dnow
1212
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1213
+ JDIMENSION output_col);
1214
+
1215
+ extern const int jconst_idct_float_sse[];
1216
+ EXTERN(void) jsimd_idct_float_sse
1217
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1218
+ JDIMENSION output_col);
1219
+
1220
+ extern const int jconst_idct_float_sse2[];
1221
+ EXTERN(void) jsimd_idct_float_sse2
1222
+ (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf,
1223
+ JDIMENSION output_col);
1224
+
1225
+ /* Huffman coding */
1226
+ extern const int jconst_huff_encode_one_block[];
1227
+ EXTERN(JOCTET *) jsimd_huff_encode_one_block_sse2
1228
+ (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
1229
+ c_derived_tbl *dctbl, c_derived_tbl *actbl);
1230
+
1231
+ EXTERN(JOCTET *) jsimd_huff_encode_one_block_neon
1232
+ (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
1233
+ c_derived_tbl *dctbl, c_derived_tbl *actbl);
1234
+
1235
+ #ifndef NEON_INTRINSICS
1236
+
1237
+ EXTERN(JOCTET *) jsimd_huff_encode_one_block_neon_slowtbl
1238
+ (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
1239
+ c_derived_tbl *dctbl, c_derived_tbl *actbl);
1240
+
1241
+ #endif
1242
+
1243
+ /* Progressive Huffman encoding */
1244
+ EXTERN(void) jsimd_encode_mcu_AC_first_prepare_sse2
1245
+ (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al,
1246
+ UJCOEF *values, size_t *zerobits);
1247
+
1248
+ EXTERN(void) jsimd_encode_mcu_AC_first_prepare_neon
1249
+ (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al,
1250
+ UJCOEF *values, size_t *zerobits);
1251
+
1252
+ EXTERN(int) jsimd_encode_mcu_AC_refine_prepare_sse2
1253
+ (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al,
1254
+ UJCOEF *absvalues, size_t *bits);
1255
+
1256
+ EXTERN(int) jsimd_encode_mcu_AC_refine_prepare_neon
1257
+ (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al,
1258
+ UJCOEF *absvalues, size_t *bits);