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,135 @@
1
+ ;
2
+ ; jcolsamp.inc - private declarations for color conversion & up/downsampling
3
+ ;
4
+ ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5
+ ; Copyright (C) 2015, Intel Corporation.
6
+ ;
7
+ ; Based on the x86 SIMD extension for IJG JPEG library
8
+ ; Copyright (C) 1999-2006, MIYASAKA Masaru.
9
+ ; For conditions of distribution and use, see copyright notice in jsimdext.inc
10
+
11
+ ; --------------------------------------------------------------------------
12
+
13
+ ; pseudo-resisters to make ordering of RGB configurable
14
+ ;
15
+ %if RGB_RED == 0
16
+ %define mmA mm0
17
+ %define mmB mm1
18
+ %define xmmA xmm0
19
+ %define xmmB xmm1
20
+ %define ymmA ymm0
21
+ %define ymmB ymm1
22
+ %elif RGB_GREEN == 0
23
+ %define mmA mm2
24
+ %define mmB mm3
25
+ %define xmmA xmm2
26
+ %define xmmB xmm3
27
+ %define ymmA ymm2
28
+ %define ymmB ymm3
29
+ %elif RGB_BLUE == 0
30
+ %define mmA mm4
31
+ %define mmB mm5
32
+ %define xmmA xmm4
33
+ %define xmmB xmm5
34
+ %define ymmA ymm4
35
+ %define ymmB ymm5
36
+ %else
37
+ %define mmA mm6
38
+ %define mmB mm7
39
+ %define xmmA xmm6
40
+ %define xmmB xmm7
41
+ %define ymmA ymm6
42
+ %define ymmB ymm7
43
+ %endif
44
+
45
+ %if RGB_RED == 1
46
+ %define mmC mm0
47
+ %define mmD mm1
48
+ %define xmmC xmm0
49
+ %define xmmD xmm1
50
+ %define ymmC ymm0
51
+ %define ymmD ymm1
52
+ %elif RGB_GREEN == 1
53
+ %define mmC mm2
54
+ %define mmD mm3
55
+ %define xmmC xmm2
56
+ %define xmmD xmm3
57
+ %define ymmC ymm2
58
+ %define ymmD ymm3
59
+ %elif RGB_BLUE == 1
60
+ %define mmC mm4
61
+ %define mmD mm5
62
+ %define xmmC xmm4
63
+ %define xmmD xmm5
64
+ %define ymmC ymm4
65
+ %define ymmD ymm5
66
+ %else
67
+ %define mmC mm6
68
+ %define mmD mm7
69
+ %define xmmC xmm6
70
+ %define xmmD xmm7
71
+ %define ymmC ymm6
72
+ %define ymmD ymm7
73
+ %endif
74
+
75
+ %if RGB_RED == 2
76
+ %define mmE mm0
77
+ %define mmF mm1
78
+ %define xmmE xmm0
79
+ %define xmmF xmm1
80
+ %define ymmE ymm0
81
+ %define ymmF ymm1
82
+ %elif RGB_GREEN == 2
83
+ %define mmE mm2
84
+ %define mmF mm3
85
+ %define xmmE xmm2
86
+ %define xmmF xmm3
87
+ %define ymmE ymm2
88
+ %define ymmF ymm3
89
+ %elif RGB_BLUE == 2
90
+ %define mmE mm4
91
+ %define mmF mm5
92
+ %define xmmE xmm4
93
+ %define xmmF xmm5
94
+ %define ymmE ymm4
95
+ %define ymmF ymm5
96
+ %else
97
+ %define mmE mm6
98
+ %define mmF mm7
99
+ %define xmmE xmm6
100
+ %define xmmF xmm7
101
+ %define ymmE ymm6
102
+ %define ymmF ymm7
103
+ %endif
104
+
105
+ %if RGB_RED == 3
106
+ %define mmG mm0
107
+ %define mmH mm1
108
+ %define xmmG xmm0
109
+ %define xmmH xmm1
110
+ %define ymmG ymm0
111
+ %define ymmH ymm1
112
+ %elif RGB_GREEN == 3
113
+ %define mmG mm2
114
+ %define mmH mm3
115
+ %define xmmG xmm2
116
+ %define xmmH xmm3
117
+ %define ymmG ymm2
118
+ %define ymmH ymm3
119
+ %elif RGB_BLUE == 3
120
+ %define mmG mm4
121
+ %define mmH mm5
122
+ %define xmmG xmm4
123
+ %define xmmH xmm5
124
+ %define ymmG ymm4
125
+ %define ymmH ymm5
126
+ %else
127
+ %define mmG mm6
128
+ %define mmH mm7
129
+ %define xmmG xmm6
130
+ %define xmmH xmm7
131
+ %define ymmG ymm6
132
+ %define ymmH ymm7
133
+ %endif
134
+
135
+ ; --------------------------------------------------------------------------
@@ -0,0 +1,31 @@
1
+ ;
2
+ ; jdct.inc - private declarations for forward & reverse DCT subsystems
3
+ ;
4
+ ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5
+ ; Copyright (C) 2018, D. R. Commander.
6
+ ;
7
+ ; Based on the x86 SIMD extension for IJG JPEG library
8
+ ; Copyright (C) 1999-2006, MIYASAKA Masaru.
9
+ ; For conditions of distribution and use, see copyright notice in jsimdext.inc
10
+
11
+ ; Each IDCT routine is responsible for range-limiting its results and
12
+ ; converting them to unsigned form (0..MAXJSAMPLE). The raw outputs could
13
+ ; be quite far out of range if the input data is corrupt, so a bulletproof
14
+ ; range-limiting step is required. We use a mask-and-table-lookup method
15
+ ; to do the combined operations quickly.
16
+ ;
17
+ %define RANGE_MASK (MAXJSAMPLE * 4 + 3) ; 2 bits wider than legal samples
18
+
19
+ %define ROW(n, b, s) ((b) + (n) * (s))
20
+ %define COL(n, b, s) ((b) + (n) * (s) * DCTSIZE)
21
+
22
+ %define DWBLOCK(m, n, b, s) \
23
+ ((b) + (m) * DCTSIZE * (s) + (n) * SIZEOF_DWORD)
24
+ %define MMBLOCK(m, n, b, s) \
25
+ ((b) + (m) * DCTSIZE * (s) + (n) * SIZEOF_MMWORD)
26
+ %define XMMBLOCK(m, n, b, s) \
27
+ ((b) + (m) * DCTSIZE * (s) + (n) * SIZEOF_XMMWORD)
28
+ %define YMMBLOCK(m, n, b, s) \
29
+ ((b) + (m) * DCTSIZE * (s) + (n) * SIZEOF_YMMWORD)
30
+
31
+ ; --------------------------------------------------------------------------
@@ -0,0 +1,93 @@
1
+ ;
2
+ ; Automatically generated include file from jsimdcfg.inc.h
3
+ ;
4
+ ;
5
+ ; -- jpeglib.h
6
+ ;
7
+ %define DCTSIZE 8
8
+ %define DCTSIZE2 64
9
+ ;
10
+ ; -- jmorecfg.h
11
+ ;
12
+ %define RGB_RED 0
13
+ %define RGB_GREEN 1
14
+ %define RGB_BLUE 2
15
+ %define RGB_PIXELSIZE 3
16
+ %define EXT_RGB_RED 0
17
+ %define EXT_RGB_GREEN 1
18
+ %define EXT_RGB_BLUE 2
19
+ %define EXT_RGB_PIXELSIZE 3
20
+ %define EXT_RGBX_RED 0
21
+ %define EXT_RGBX_GREEN 1
22
+ %define EXT_RGBX_BLUE 2
23
+ %define EXT_RGBX_PIXELSIZE 4
24
+ %define EXT_BGR_RED 2
25
+ %define EXT_BGR_GREEN 1
26
+ %define EXT_BGR_BLUE 0
27
+ %define EXT_BGR_PIXELSIZE 3
28
+ %define EXT_BGRX_RED 2
29
+ %define EXT_BGRX_GREEN 1
30
+ %define EXT_BGRX_BLUE 0
31
+ %define EXT_BGRX_PIXELSIZE 4
32
+ %define EXT_XBGR_RED 3
33
+ %define EXT_XBGR_GREEN 2
34
+ %define EXT_XBGR_BLUE 1
35
+ %define EXT_XBGR_PIXELSIZE 4
36
+ %define EXT_XRGB_RED 1
37
+ %define EXT_XRGB_GREEN 2
38
+ %define EXT_XRGB_BLUE 3
39
+ %define EXT_XRGB_PIXELSIZE 4
40
+ %define RGBX_FILLER_0XFF 1
41
+ ; Representation of a single sample (pixel element value).
42
+ ; On this SIMD implementation, this must be 'unsigned char'.
43
+ ;
44
+ %define JSAMPLE byte ; unsigned char
45
+ %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)
46
+ %define CENTERJSAMPLE 128
47
+ ; Representation of a DCT frequency coefficient.
48
+ ; On this SIMD implementation, this must be 'short'.
49
+ ;
50
+ %define JCOEF word ; short
51
+ %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)
52
+ ; Datatype used for image dimensions.
53
+ ; On this SIMD implementation, this must be 'unsigned int'.
54
+ ;
55
+ %define JDIMENSION dword ; unsigned int
56
+ %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)
57
+ %define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)
58
+ %define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)
59
+ %define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)
60
+ %define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)
61
+ %define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)
62
+ %define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)
63
+ %define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)
64
+ %define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)
65
+ ;
66
+ ; -- jdct.h
67
+ ;
68
+ ; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
69
+ ; the DCT is to be performed in-place in that buffer.
70
+ ; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
71
+ ;
72
+ %define DCTELEM word ; short
73
+ %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
74
+ %define float FP32 ; float
75
+ %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(float)
76
+ ; To maximize parallelism, Type short is changed to short.
77
+ ;
78
+ %define ISLOW_MULT_TYPE word ; must be short
79
+ %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)
80
+ %define IFAST_MULT_TYPE word ; must be short
81
+ %define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
82
+ %define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
83
+ %define FLOAT_MULT_TYPE FP32 ; must be float
84
+ %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
85
+ ;
86
+ ; -- jsimd.h
87
+ ;
88
+ %define JSIMD_NONE 0x00
89
+ %define JSIMD_MMX 0x01
90
+ %define JSIMD_3DNOW 0x02
91
+ %define JSIMD_SSE 0x04
92
+ %define JSIMD_SSE2 0x08
93
+ %define JSIMD_AVX2 0x80
@@ -0,0 +1,133 @@
1
+ /*
2
+ * This file generates the include file for the assembly
3
+ * implementations by abusing the C preprocessor.
4
+ *
5
+ * Note: Some things are manually defined as they need to
6
+ * be mapped to NASM types.
7
+ */
8
+
9
+ ;
10
+ ; Automatically generated include file from jsimdcfg.inc.h
11
+ ;
12
+
13
+ #define JPEG_INTERNALS
14
+
15
+ #include "../jpeglib.h"
16
+ #include "../jconfig.h"
17
+ #include "../jmorecfg.h"
18
+ #include "jsimd.h"
19
+
20
+ ;
21
+ ; -- jpeglib.h
22
+ ;
23
+
24
+ %define _cpp_protection_DCTSIZE DCTSIZE
25
+ %define _cpp_protection_DCTSIZE2 DCTSIZE2
26
+
27
+ ;
28
+ ; -- jmorecfg.h
29
+ ;
30
+
31
+ %define _cpp_protection_RGB_RED RGB_RED
32
+ %define _cpp_protection_RGB_GREEN RGB_GREEN
33
+ %define _cpp_protection_RGB_BLUE RGB_BLUE
34
+ %define _cpp_protection_RGB_PIXELSIZE RGB_PIXELSIZE
35
+
36
+ %define _cpp_protection_EXT_RGB_RED EXT_RGB_RED
37
+ %define _cpp_protection_EXT_RGB_GREEN EXT_RGB_GREEN
38
+ %define _cpp_protection_EXT_RGB_BLUE EXT_RGB_BLUE
39
+ %define _cpp_protection_EXT_RGB_PIXELSIZE EXT_RGB_PIXELSIZE
40
+
41
+ %define _cpp_protection_EXT_RGBX_RED EXT_RGBX_RED
42
+ %define _cpp_protection_EXT_RGBX_GREEN EXT_RGBX_GREEN
43
+ %define _cpp_protection_EXT_RGBX_BLUE EXT_RGBX_BLUE
44
+ %define _cpp_protection_EXT_RGBX_PIXELSIZE EXT_RGBX_PIXELSIZE
45
+
46
+ %define _cpp_protection_EXT_BGR_RED EXT_BGR_RED
47
+ %define _cpp_protection_EXT_BGR_GREEN EXT_BGR_GREEN
48
+ %define _cpp_protection_EXT_BGR_BLUE EXT_BGR_BLUE
49
+ %define _cpp_protection_EXT_BGR_PIXELSIZE EXT_BGR_PIXELSIZE
50
+
51
+ %define _cpp_protection_EXT_BGRX_RED EXT_BGRX_RED
52
+ %define _cpp_protection_EXT_BGRX_GREEN EXT_BGRX_GREEN
53
+ %define _cpp_protection_EXT_BGRX_BLUE EXT_BGRX_BLUE
54
+ %define _cpp_protection_EXT_BGRX_PIXELSIZE EXT_BGRX_PIXELSIZE
55
+
56
+ %define _cpp_protection_EXT_XBGR_RED EXT_XBGR_RED
57
+ %define _cpp_protection_EXT_XBGR_GREEN EXT_XBGR_GREEN
58
+ %define _cpp_protection_EXT_XBGR_BLUE EXT_XBGR_BLUE
59
+ %define _cpp_protection_EXT_XBGR_PIXELSIZE EXT_XBGR_PIXELSIZE
60
+
61
+ %define _cpp_protection_EXT_XRGB_RED EXT_XRGB_RED
62
+ %define _cpp_protection_EXT_XRGB_GREEN EXT_XRGB_GREEN
63
+ %define _cpp_protection_EXT_XRGB_BLUE EXT_XRGB_BLUE
64
+ %define _cpp_protection_EXT_XRGB_PIXELSIZE EXT_XRGB_PIXELSIZE
65
+
66
+ %define RGBX_FILLER_0XFF 1
67
+
68
+ ; Representation of a single sample (pixel element value).
69
+ ; On this SIMD implementation, this must be 'unsigned char'.
70
+ ;
71
+
72
+ %define JSAMPLE byte ; unsigned char
73
+ %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)
74
+
75
+ %define _cpp_protection_CENTERJSAMPLE CENTERJSAMPLE
76
+
77
+ ; Representation of a DCT frequency coefficient.
78
+ ; On this SIMD implementation, this must be 'short'.
79
+ ;
80
+ %define JCOEF word ; short
81
+ %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)
82
+
83
+ ; Datatype used for image dimensions.
84
+ ; On this SIMD implementation, this must be 'unsigned int'.
85
+ ;
86
+ %define JDIMENSION dword ; unsigned int
87
+ %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)
88
+
89
+ %define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)
90
+ %define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)
91
+ %define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)
92
+ %define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)
93
+ %define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)
94
+ %define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)
95
+ %define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)
96
+ %define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)
97
+
98
+ ;
99
+ ; -- jdct.h
100
+ ;
101
+
102
+ ; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
103
+ ; the DCT is to be performed in-place in that buffer.
104
+ ; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
105
+ ;
106
+ %define DCTELEM word ; short
107
+ %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
108
+
109
+ %define FAST_FLOAT FP32 ; float
110
+ %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(FAST_FLOAT)
111
+
112
+ ; To maximize parallelism, Type MULTIPLIER is changed to short.
113
+ ;
114
+ %define ISLOW_MULT_TYPE word ; must be short
115
+ %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)
116
+
117
+ %define IFAST_MULT_TYPE word ; must be short
118
+ %define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
119
+ %define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
120
+
121
+ %define FLOAT_MULT_TYPE FP32 ; must be float
122
+ %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
123
+
124
+ ;
125
+ ; -- jsimd.h
126
+ ;
127
+
128
+ %define _cpp_protection_JSIMD_NONE JSIMD_NONE
129
+ %define _cpp_protection_JSIMD_MMX JSIMD_MMX
130
+ %define _cpp_protection_JSIMD_3DNOW JSIMD_3DNOW
131
+ %define _cpp_protection_JSIMD_SSE JSIMD_SSE
132
+ %define _cpp_protection_JSIMD_SSE2 JSIMD_SSE2
133
+ %define _cpp_protection_JSIMD_AVX2 JSIMD_AVX2