rfreeimage 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (860) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +1 -0
  4. data/Rakefile +34 -0
  5. data/ext/rfreeimage/extconf.rb +35 -0
  6. data/ext/rfreeimage/rfi_main.c +389 -0
  7. data/lib/rfreeimage/image.rb +26 -0
  8. data/lib/rfreeimage/version.rb +3 -0
  9. data/lib/rfreeimage.rb +3 -0
  10. data/rfreeimage.gemspec +32 -0
  11. data/vendor/FreeImage/Makefile +34 -0
  12. data/vendor/FreeImage/Makefile.cygwin +74 -0
  13. data/vendor/FreeImage/Makefile.fip +84 -0
  14. data/vendor/FreeImage/Makefile.gnu +83 -0
  15. data/vendor/FreeImage/Makefile.iphone +96 -0
  16. data/vendor/FreeImage/Makefile.mingw +136 -0
  17. data/vendor/FreeImage/Makefile.osx +115 -0
  18. data/vendor/FreeImage/Makefile.solaris +66 -0
  19. data/vendor/FreeImage/Makefile.srcs +6 -0
  20. data/vendor/FreeImage/README.iphone +19 -0
  21. data/vendor/FreeImage/README.linux +50 -0
  22. data/vendor/FreeImage/README.minGW +236 -0
  23. data/vendor/FreeImage/README.osx +44 -0
  24. data/vendor/FreeImage/README.solaris +67 -0
  25. data/vendor/FreeImage/Source/CacheFile.h +92 -0
  26. data/vendor/FreeImage/Source/DeprecationManager/Deprecated.cpp +36 -0
  27. data/vendor/FreeImage/Source/DeprecationManager/DeprecationMgr.cpp +103 -0
  28. data/vendor/FreeImage/Source/DeprecationManager/DeprecationMgr.h +83 -0
  29. data/vendor/FreeImage/Source/FreeImage/BitmapAccess.cpp +1573 -0
  30. data/vendor/FreeImage/Source/FreeImage/CacheFile.cpp +271 -0
  31. data/vendor/FreeImage/Source/FreeImage/ColorLookup.cpp +785 -0
  32. data/vendor/FreeImage/Source/FreeImage/Conversion.cpp +551 -0
  33. data/vendor/FreeImage/Source/FreeImage/Conversion16_555.cpp +209 -0
  34. data/vendor/FreeImage/Source/FreeImage/Conversion16_565.cpp +204 -0
  35. data/vendor/FreeImage/Source/FreeImage/Conversion24.cpp +252 -0
  36. data/vendor/FreeImage/Source/FreeImage/Conversion32.cpp +345 -0
  37. data/vendor/FreeImage/Source/FreeImage/Conversion4.cpp +246 -0
  38. data/vendor/FreeImage/Source/FreeImage/Conversion8.cpp +305 -0
  39. data/vendor/FreeImage/Source/FreeImage/ConversionFloat.cpp +194 -0
  40. data/vendor/FreeImage/Source/FreeImage/ConversionRGB16.cpp +144 -0
  41. data/vendor/FreeImage/Source/FreeImage/ConversionRGBA16.cpp +147 -0
  42. data/vendor/FreeImage/Source/FreeImage/ConversionRGBAF.cpp +250 -0
  43. data/vendor/FreeImage/Source/FreeImage/ConversionRGBF.cpp +243 -0
  44. data/vendor/FreeImage/Source/FreeImage/ConversionType.cpp +699 -0
  45. data/vendor/FreeImage/Source/FreeImage/ConversionUINT16.cpp +134 -0
  46. data/vendor/FreeImage/Source/FreeImage/FreeImage.cpp +226 -0
  47. data/vendor/FreeImage/Source/FreeImage/FreeImageC.c +22 -0
  48. data/vendor/FreeImage/Source/FreeImage/FreeImageIO.cpp +175 -0
  49. data/vendor/FreeImage/Source/FreeImage/GetType.cpp +92 -0
  50. data/vendor/FreeImage/Source/FreeImage/Halftoning.cpp +474 -0
  51. data/vendor/FreeImage/Source/FreeImage/J2KHelper.cpp +591 -0
  52. data/vendor/FreeImage/Source/FreeImage/J2KHelper.h +36 -0
  53. data/vendor/FreeImage/Source/FreeImage/LFPQuantizer.cpp +208 -0
  54. data/vendor/FreeImage/Source/FreeImage/MNGHelper.cpp +1320 -0
  55. data/vendor/FreeImage/Source/FreeImage/MemoryIO.cpp +237 -0
  56. data/vendor/FreeImage/Source/FreeImage/MultiPage.cpp +974 -0
  57. data/vendor/FreeImage/Source/FreeImage/NNQuantizer.cpp +507 -0
  58. data/vendor/FreeImage/Source/FreeImage/PSDParser.cpp +1057 -0
  59. data/vendor/FreeImage/Source/FreeImage/PSDParser.h +271 -0
  60. data/vendor/FreeImage/Source/FreeImage/PixelAccess.cpp +197 -0
  61. data/vendor/FreeImage/Source/FreeImage/Plugin.cpp +822 -0
  62. data/vendor/FreeImage/Source/FreeImage/PluginBMP.cpp +1494 -0
  63. data/vendor/FreeImage/Source/FreeImage/PluginCUT.cpp +240 -0
  64. data/vendor/FreeImage/Source/FreeImage/PluginDDS.cpp +655 -0
  65. data/vendor/FreeImage/Source/FreeImage/PluginEXR.cpp +773 -0
  66. data/vendor/FreeImage/Source/FreeImage/PluginG3.cpp +433 -0
  67. data/vendor/FreeImage/Source/FreeImage/PluginGIF.cpp +1407 -0
  68. data/vendor/FreeImage/Source/FreeImage/PluginHDR.cpp +722 -0
  69. data/vendor/FreeImage/Source/FreeImage/PluginICO.cpp +824 -0
  70. data/vendor/FreeImage/Source/FreeImage/PluginIFF.cpp +459 -0
  71. data/vendor/FreeImage/Source/FreeImage/PluginJ2K.cpp +328 -0
  72. data/vendor/FreeImage/Source/FreeImage/PluginJNG.cpp +162 -0
  73. data/vendor/FreeImage/Source/FreeImage/PluginJP2.cpp +328 -0
  74. data/vendor/FreeImage/Source/FreeImage/PluginJPEG.cpp +1706 -0
  75. data/vendor/FreeImage/Source/FreeImage/PluginJXR.cpp +1475 -0
  76. data/vendor/FreeImage/Source/FreeImage/PluginKOALA.cpp +243 -0
  77. data/vendor/FreeImage/Source/FreeImage/PluginMNG.cpp +153 -0
  78. data/vendor/FreeImage/Source/FreeImage/PluginPCD.cpp +251 -0
  79. data/vendor/FreeImage/Source/FreeImage/PluginPCX.cpp +659 -0
  80. data/vendor/FreeImage/Source/FreeImage/PluginPFM.cpp +409 -0
  81. data/vendor/FreeImage/Source/FreeImage/PluginPICT.cpp +1343 -0
  82. data/vendor/FreeImage/Source/FreeImage/PluginPNG.cpp +1115 -0
  83. data/vendor/FreeImage/Source/FreeImage/PluginPNM.cpp +838 -0
  84. data/vendor/FreeImage/Source/FreeImage/PluginPSD.cpp +131 -0
  85. data/vendor/FreeImage/Source/FreeImage/PluginRAS.cpp +512 -0
  86. data/vendor/FreeImage/Source/FreeImage/PluginRAW.cpp +793 -0
  87. data/vendor/FreeImage/Source/FreeImage/PluginSGI.cpp +425 -0
  88. data/vendor/FreeImage/Source/FreeImage/PluginTARGA.cpp +1591 -0
  89. data/vendor/FreeImage/Source/FreeImage/PluginTIFF.cpp +2631 -0
  90. data/vendor/FreeImage/Source/FreeImage/PluginWBMP.cpp +372 -0
  91. data/vendor/FreeImage/Source/FreeImage/PluginWebP.cpp +698 -0
  92. data/vendor/FreeImage/Source/FreeImage/PluginXBM.cpp +399 -0
  93. data/vendor/FreeImage/Source/FreeImage/PluginXPM.cpp +487 -0
  94. data/vendor/FreeImage/Source/FreeImage/TIFFLogLuv.cpp +65 -0
  95. data/vendor/FreeImage/Source/FreeImage/ToneMapping.cpp +75 -0
  96. data/vendor/FreeImage/Source/FreeImage/WuQuantizer.cpp +559 -0
  97. data/vendor/FreeImage/Source/FreeImage/ZLibInterface.cpp +223 -0
  98. data/vendor/FreeImage/Source/FreeImage/tmoColorConvert.cpp +479 -0
  99. data/vendor/FreeImage/Source/FreeImage/tmoDrago03.cpp +295 -0
  100. data/vendor/FreeImage/Source/FreeImage/tmoFattal02.cpp +689 -0
  101. data/vendor/FreeImage/Source/FreeImage/tmoReinhard05.cpp +260 -0
  102. data/vendor/FreeImage/Source/FreeImage.h +1153 -0
  103. data/vendor/FreeImage/Source/FreeImageIO.h +63 -0
  104. data/vendor/FreeImage/Source/FreeImageToolkit/BSplineRotate.cpp +730 -0
  105. data/vendor/FreeImage/Source/FreeImageToolkit/Background.cpp +895 -0
  106. data/vendor/FreeImage/Source/FreeImageToolkit/Channels.cpp +488 -0
  107. data/vendor/FreeImage/Source/FreeImageToolkit/ClassicRotate.cpp +917 -0
  108. data/vendor/FreeImage/Source/FreeImageToolkit/Colors.cpp +967 -0
  109. data/vendor/FreeImage/Source/FreeImageToolkit/CopyPaste.cpp +861 -0
  110. data/vendor/FreeImage/Source/FreeImageToolkit/Display.cpp +230 -0
  111. data/vendor/FreeImage/Source/FreeImageToolkit/Filters.h +287 -0
  112. data/vendor/FreeImage/Source/FreeImageToolkit/Flip.cpp +166 -0
  113. data/vendor/FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp +623 -0
  114. data/vendor/FreeImage/Source/FreeImageToolkit/MultigridPoissonSolver.cpp +505 -0
  115. data/vendor/FreeImage/Source/FreeImageToolkit/Rescale.cpp +192 -0
  116. data/vendor/FreeImage/Source/FreeImageToolkit/Resize.cpp +2116 -0
  117. data/vendor/FreeImage/Source/FreeImageToolkit/Resize.h +196 -0
  118. data/vendor/FreeImage/Source/LibJPEG/ansi2knr.c +739 -0
  119. data/vendor/FreeImage/Source/LibJPEG/cderror.h +134 -0
  120. data/vendor/FreeImage/Source/LibJPEG/cdjpeg.c +181 -0
  121. data/vendor/FreeImage/Source/LibJPEG/cdjpeg.h +187 -0
  122. data/vendor/FreeImage/Source/LibJPEG/cjpeg.c +664 -0
  123. data/vendor/FreeImage/Source/LibJPEG/ckconfig.c +402 -0
  124. data/vendor/FreeImage/Source/LibJPEG/djpeg.c +617 -0
  125. data/vendor/FreeImage/Source/LibJPEG/example.c +433 -0
  126. data/vendor/FreeImage/Source/LibJPEG/jaricom.c +153 -0
  127. data/vendor/FreeImage/Source/LibJPEG/jcapimin.c +288 -0
  128. data/vendor/FreeImage/Source/LibJPEG/jcapistd.c +162 -0
  129. data/vendor/FreeImage/Source/LibJPEG/jcarith.c +944 -0
  130. data/vendor/FreeImage/Source/LibJPEG/jccoefct.c +454 -0
  131. data/vendor/FreeImage/Source/LibJPEG/jccolor.c +604 -0
  132. data/vendor/FreeImage/Source/LibJPEG/jcdctmgr.c +477 -0
  133. data/vendor/FreeImage/Source/LibJPEG/jchuff.c +1573 -0
  134. data/vendor/FreeImage/Source/LibJPEG/jcinit.c +84 -0
  135. data/vendor/FreeImage/Source/LibJPEG/jcmainct.c +297 -0
  136. data/vendor/FreeImage/Source/LibJPEG/jcmarker.c +719 -0
  137. data/vendor/FreeImage/Source/LibJPEG/jcmaster.c +856 -0
  138. data/vendor/FreeImage/Source/LibJPEG/jcomapi.c +106 -0
  139. data/vendor/FreeImage/Source/LibJPEG/jconfig.h +161 -0
  140. data/vendor/FreeImage/Source/LibJPEG/jcparam.c +675 -0
  141. data/vendor/FreeImage/Source/LibJPEG/jcprepct.c +358 -0
  142. data/vendor/FreeImage/Source/LibJPEG/jcsample.c +545 -0
  143. data/vendor/FreeImage/Source/LibJPEG/jctrans.c +385 -0
  144. data/vendor/FreeImage/Source/LibJPEG/jdapimin.c +399 -0
  145. data/vendor/FreeImage/Source/LibJPEG/jdapistd.c +276 -0
  146. data/vendor/FreeImage/Source/LibJPEG/jdarith.c +796 -0
  147. data/vendor/FreeImage/Source/LibJPEG/jdatadst.c +270 -0
  148. data/vendor/FreeImage/Source/LibJPEG/jdatasrc.c +275 -0
  149. data/vendor/FreeImage/Source/LibJPEG/jdcoefct.c +741 -0
  150. data/vendor/FreeImage/Source/LibJPEG/jdcolor.c +748 -0
  151. data/vendor/FreeImage/Source/LibJPEG/jdct.h +393 -0
  152. data/vendor/FreeImage/Source/LibJPEG/jddctmgr.c +384 -0
  153. data/vendor/FreeImage/Source/LibJPEG/jdhuff.c +1554 -0
  154. data/vendor/FreeImage/Source/LibJPEG/jdinput.c +662 -0
  155. data/vendor/FreeImage/Source/LibJPEG/jdmainct.c +513 -0
  156. data/vendor/FreeImage/Source/LibJPEG/jdmarker.c +1511 -0
  157. data/vendor/FreeImage/Source/LibJPEG/jdmaster.c +543 -0
  158. data/vendor/FreeImage/Source/LibJPEG/jdmerge.c +401 -0
  159. data/vendor/FreeImage/Source/LibJPEG/jdpostct.c +290 -0
  160. data/vendor/FreeImage/Source/LibJPEG/jdsample.c +361 -0
  161. data/vendor/FreeImage/Source/LibJPEG/jdtrans.c +140 -0
  162. data/vendor/FreeImage/Source/LibJPEG/jerror.c +253 -0
  163. data/vendor/FreeImage/Source/LibJPEG/jerror.h +304 -0
  164. data/vendor/FreeImage/Source/LibJPEG/jfdctflt.c +174 -0
  165. data/vendor/FreeImage/Source/LibJPEG/jfdctfst.c +230 -0
  166. data/vendor/FreeImage/Source/LibJPEG/jfdctint.c +4406 -0
  167. data/vendor/FreeImage/Source/LibJPEG/jidctflt.c +235 -0
  168. data/vendor/FreeImage/Source/LibJPEG/jidctfst.c +368 -0
  169. data/vendor/FreeImage/Source/LibJPEG/jidctint.c +5179 -0
  170. data/vendor/FreeImage/Source/LibJPEG/jinclude.h +91 -0
  171. data/vendor/FreeImage/Source/LibJPEG/jmemansi.c +167 -0
  172. data/vendor/FreeImage/Source/LibJPEG/jmemdos.c +638 -0
  173. data/vendor/FreeImage/Source/LibJPEG/jmemmac.c +289 -0
  174. data/vendor/FreeImage/Source/LibJPEG/jmemmgr.c +1119 -0
  175. data/vendor/FreeImage/Source/LibJPEG/jmemname.c +276 -0
  176. data/vendor/FreeImage/Source/LibJPEG/jmemnobs.c +109 -0
  177. data/vendor/FreeImage/Source/LibJPEG/jmemsys.h +198 -0
  178. data/vendor/FreeImage/Source/LibJPEG/jmorecfg.h +442 -0
  179. data/vendor/FreeImage/Source/LibJPEG/jpegint.h +426 -0
  180. data/vendor/FreeImage/Source/LibJPEG/jpeglib.h +1180 -0
  181. data/vendor/FreeImage/Source/LibJPEG/jpegtran.c +577 -0
  182. data/vendor/FreeImage/Source/LibJPEG/jquant1.c +857 -0
  183. data/vendor/FreeImage/Source/LibJPEG/jquant2.c +1311 -0
  184. data/vendor/FreeImage/Source/LibJPEG/jutils.c +227 -0
  185. data/vendor/FreeImage/Source/LibJPEG/jversion.h +14 -0
  186. data/vendor/FreeImage/Source/LibJPEG/rdbmp.c +480 -0
  187. data/vendor/FreeImage/Source/LibJPEG/rdcolmap.c +253 -0
  188. data/vendor/FreeImage/Source/LibJPEG/rdgif.c +38 -0
  189. data/vendor/FreeImage/Source/LibJPEG/rdjpgcom.c +515 -0
  190. data/vendor/FreeImage/Source/LibJPEG/rdppm.c +459 -0
  191. data/vendor/FreeImage/Source/LibJPEG/rdrle.c +387 -0
  192. data/vendor/FreeImage/Source/LibJPEG/rdswitch.c +365 -0
  193. data/vendor/FreeImage/Source/LibJPEG/rdtarga.c +500 -0
  194. data/vendor/FreeImage/Source/LibJPEG/transupp.c +1763 -0
  195. data/vendor/FreeImage/Source/LibJPEG/transupp.h +219 -0
  196. data/vendor/FreeImage/Source/LibJPEG/wrbmp.c +442 -0
  197. data/vendor/FreeImage/Source/LibJPEG/wrgif.c +399 -0
  198. data/vendor/FreeImage/Source/LibJPEG/wrjpgcom.c +583 -0
  199. data/vendor/FreeImage/Source/LibJPEG/wrppm.c +269 -0
  200. data/vendor/FreeImage/Source/LibJPEG/wrrle.c +305 -0
  201. data/vendor/FreeImage/Source/LibJPEG/wrtarga.c +253 -0
  202. data/vendor/FreeImage/Source/LibJXR/common/include/guiddef.h +230 -0
  203. data/vendor/FreeImage/Source/LibJXR/common/include/wmsal.h +757 -0
  204. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstring.h +342 -0
  205. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstrings_adt.h +71 -0
  206. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstrings_strict.h +1096 -0
  207. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstrings_undef.h +406 -0
  208. data/vendor/FreeImage/Source/LibJXR/image/decode/JXRTranscode.c +987 -0
  209. data/vendor/FreeImage/Source/LibJXR/image/decode/decode.c +200 -0
  210. data/vendor/FreeImage/Source/LibJXR/image/decode/decode.h +143 -0
  211. data/vendor/FreeImage/Source/LibJXR/image/decode/postprocess.c +288 -0
  212. data/vendor/FreeImage/Source/LibJXR/image/decode/segdec.c +1205 -0
  213. data/vendor/FreeImage/Source/LibJXR/image/decode/strInvTransform.c +1888 -0
  214. data/vendor/FreeImage/Source/LibJXR/image/decode/strPredQuantDec.c +539 -0
  215. data/vendor/FreeImage/Source/LibJXR/image/decode/strdec.c +3628 -0
  216. data/vendor/FreeImage/Source/LibJXR/image/decode/strdec_x86.c +1640 -0
  217. data/vendor/FreeImage/Source/LibJXR/image/encode/encode.c +144 -0
  218. data/vendor/FreeImage/Source/LibJXR/image/encode/encode.h +113 -0
  219. data/vendor/FreeImage/Source/LibJXR/image/encode/segenc.c +1186 -0
  220. data/vendor/FreeImage/Source/LibJXR/image/encode/strFwdTransform.c +1111 -0
  221. data/vendor/FreeImage/Source/LibJXR/image/encode/strPredQuantEnc.c +511 -0
  222. data/vendor/FreeImage/Source/LibJXR/image/encode/strenc.c +2370 -0
  223. data/vendor/FreeImage/Source/LibJXR/image/encode/strenc_x86.c +409 -0
  224. data/vendor/FreeImage/Source/LibJXR/image/sys/adapthuff.c +511 -0
  225. data/vendor/FreeImage/Source/LibJXR/image/sys/ansi.h +61 -0
  226. data/vendor/FreeImage/Source/LibJXR/image/sys/common.h +131 -0
  227. data/vendor/FreeImage/Source/LibJXR/image/sys/image.c +183 -0
  228. data/vendor/FreeImage/Source/LibJXR/image/sys/perfTimer.h +115 -0
  229. data/vendor/FreeImage/Source/LibJXR/image/sys/perfTimerANSI.c +274 -0
  230. data/vendor/FreeImage/Source/LibJXR/image/sys/strPredQuant.c +306 -0
  231. data/vendor/FreeImage/Source/LibJXR/image/sys/strTransform.c +85 -0
  232. data/vendor/FreeImage/Source/LibJXR/image/sys/strTransform.h +50 -0
  233. data/vendor/FreeImage/Source/LibJXR/image/sys/strcodec.c +1251 -0
  234. data/vendor/FreeImage/Source/LibJXR/image/sys/strcodec.h +681 -0
  235. data/vendor/FreeImage/Source/LibJXR/image/sys/windowsmediaphoto.h +515 -0
  236. data/vendor/FreeImage/Source/LibJXR/image/sys/xplatform_image.h +84 -0
  237. data/vendor/FreeImage/Source/LibJXR/image/x86/x86.h +58 -0
  238. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGlue.c +930 -0
  239. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGlue.h +636 -0
  240. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGlueJxr.c +2246 -0
  241. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGluePFC.c +2338 -0
  242. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRMeta.c +905 -0
  243. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRMeta.h +258 -0
  244. data/vendor/FreeImage/Source/LibOpenJPEG/bio.c +188 -0
  245. data/vendor/FreeImage/Source/LibOpenJPEG/bio.h +128 -0
  246. data/vendor/FreeImage/Source/LibOpenJPEG/cidx_manager.c +239 -0
  247. data/vendor/FreeImage/Source/LibOpenJPEG/cidx_manager.h +68 -0
  248. data/vendor/FreeImage/Source/LibOpenJPEG/cio.c +644 -0
  249. data/vendor/FreeImage/Source/LibOpenJPEG/cio.h +393 -0
  250. data/vendor/FreeImage/Source/LibOpenJPEG/dwt.c +919 -0
  251. data/vendor/FreeImage/Source/LibOpenJPEG/dwt.h +116 -0
  252. data/vendor/FreeImage/Source/LibOpenJPEG/event.c +141 -0
  253. data/vendor/FreeImage/Source/LibOpenJPEG/event.h +97 -0
  254. data/vendor/FreeImage/Source/LibOpenJPEG/function_list.c +114 -0
  255. data/vendor/FreeImage/Source/LibOpenJPEG/function_list.h +126 -0
  256. data/vendor/FreeImage/Source/LibOpenJPEG/image.c +235 -0
  257. data/vendor/FreeImage/Source/LibOpenJPEG/image.h +63 -0
  258. data/vendor/FreeImage/Source/LibOpenJPEG/indexbox_manager.h +148 -0
  259. data/vendor/FreeImage/Source/LibOpenJPEG/invert.c +289 -0
  260. data/vendor/FreeImage/Source/LibOpenJPEG/invert.h +59 -0
  261. data/vendor/FreeImage/Source/LibOpenJPEG/j2k.c +10238 -0
  262. data/vendor/FreeImage/Source/LibOpenJPEG/j2k.h +838 -0
  263. data/vendor/FreeImage/Source/LibOpenJPEG/jp2.c +2776 -0
  264. data/vendor/FreeImage/Source/LibOpenJPEG/jp2.h +490 -0
  265. data/vendor/FreeImage/Source/LibOpenJPEG/mct.c +319 -0
  266. data/vendor/FreeImage/Source/LibOpenJPEG/mct.h +149 -0
  267. data/vendor/FreeImage/Source/LibOpenJPEG/mqc.c +604 -0
  268. data/vendor/FreeImage/Source/LibOpenJPEG/mqc.h +201 -0
  269. data/vendor/FreeImage/Source/LibOpenJPEG/openjpeg.c +955 -0
  270. data/vendor/FreeImage/Source/LibOpenJPEG/openjpeg.h +1475 -0
  271. data/vendor/FreeImage/Source/LibOpenJPEG/opj_clock.c +59 -0
  272. data/vendor/FreeImage/Source/LibOpenJPEG/opj_clock.h +54 -0
  273. data/vendor/FreeImage/Source/LibOpenJPEG/opj_codec.h +160 -0
  274. data/vendor/FreeImage/Source/LibOpenJPEG/opj_config.h +9 -0
  275. data/vendor/FreeImage/Source/LibOpenJPEG/opj_config_private.h +16 -0
  276. data/vendor/FreeImage/Source/LibOpenJPEG/opj_includes.h +175 -0
  277. data/vendor/FreeImage/Source/LibOpenJPEG/opj_intmath.h +172 -0
  278. data/vendor/FreeImage/Source/LibOpenJPEG/opj_inttypes.h +43 -0
  279. data/vendor/FreeImage/Source/LibOpenJPEG/opj_malloc.h +180 -0
  280. data/vendor/FreeImage/Source/LibOpenJPEG/opj_stdint.h +47 -0
  281. data/vendor/FreeImage/Source/LibOpenJPEG/phix_manager.c +191 -0
  282. data/vendor/FreeImage/Source/LibOpenJPEG/pi.c +1870 -0
  283. data/vendor/FreeImage/Source/LibOpenJPEG/pi.h +182 -0
  284. data/vendor/FreeImage/Source/LibOpenJPEG/ppix_manager.c +194 -0
  285. data/vendor/FreeImage/Source/LibOpenJPEG/raw.c +89 -0
  286. data/vendor/FreeImage/Source/LibOpenJPEG/raw.h +100 -0
  287. data/vendor/FreeImage/Source/LibOpenJPEG/t1.c +1751 -0
  288. data/vendor/FreeImage/Source/LibOpenJPEG/t1.h +157 -0
  289. data/vendor/FreeImage/Source/LibOpenJPEG/t1_generate_luts.c +276 -0
  290. data/vendor/FreeImage/Source/LibOpenJPEG/t1_luts.h +143 -0
  291. data/vendor/FreeImage/Source/LibOpenJPEG/t2.c +1334 -0
  292. data/vendor/FreeImage/Source/LibOpenJPEG/t2.h +127 -0
  293. data/vendor/FreeImage/Source/LibOpenJPEG/tcd.c +2123 -0
  294. data/vendor/FreeImage/Source/LibOpenJPEG/tcd.h +348 -0
  295. data/vendor/FreeImage/Source/LibOpenJPEG/tgt.c +331 -0
  296. data/vendor/FreeImage/Source/LibOpenJPEG/tgt.h +140 -0
  297. data/vendor/FreeImage/Source/LibOpenJPEG/thix_manager.c +134 -0
  298. data/vendor/FreeImage/Source/LibOpenJPEG/tpix_manager.c +185 -0
  299. data/vendor/FreeImage/Source/LibPNG/example.c +1061 -0
  300. data/vendor/FreeImage/Source/LibPNG/png.c +4493 -0
  301. data/vendor/FreeImage/Source/LibPNG/png.h +3282 -0
  302. data/vendor/FreeImage/Source/LibPNG/pngconf.h +644 -0
  303. data/vendor/FreeImage/Source/LibPNG/pngdebug.h +154 -0
  304. data/vendor/FreeImage/Source/LibPNG/pngerror.c +963 -0
  305. data/vendor/FreeImage/Source/LibPNG/pngget.c +1213 -0
  306. data/vendor/FreeImage/Source/LibPNG/pnginfo.h +260 -0
  307. data/vendor/FreeImage/Source/LibPNG/pnglibconf.h +218 -0
  308. data/vendor/FreeImage/Source/LibPNG/pngmem.c +281 -0
  309. data/vendor/FreeImage/Source/LibPNG/pngpread.c +1168 -0
  310. data/vendor/FreeImage/Source/LibPNG/pngpriv.h +1944 -0
  311. data/vendor/FreeImage/Source/LibPNG/pngread.c +4121 -0
  312. data/vendor/FreeImage/Source/LibPNG/pngrio.c +120 -0
  313. data/vendor/FreeImage/Source/LibPNG/pngrtran.c +4994 -0
  314. data/vendor/FreeImage/Source/LibPNG/pngrutil.c +4474 -0
  315. data/vendor/FreeImage/Source/LibPNG/pngset.c +1611 -0
  316. data/vendor/FreeImage/Source/LibPNG/pngstruct.h +489 -0
  317. data/vendor/FreeImage/Source/LibPNG/pngtest.c +2011 -0
  318. data/vendor/FreeImage/Source/LibPNG/pngtrans.c +849 -0
  319. data/vendor/FreeImage/Source/LibPNG/pngwio.c +168 -0
  320. data/vendor/FreeImage/Source/LibPNG/pngwrite.c +2455 -0
  321. data/vendor/FreeImage/Source/LibPNG/pngwtran.c +574 -0
  322. data/vendor/FreeImage/Source/LibPNG/pngwutil.c +3029 -0
  323. data/vendor/FreeImage/Source/LibRawLite/dcraw/dcraw.c +15462 -0
  324. data/vendor/FreeImage/Source/LibRawLite/internal/aahd_demosaic.cpp +706 -0
  325. data/vendor/FreeImage/Source/LibRawLite/internal/dcb_demosaicing.c +710 -0
  326. data/vendor/FreeImage/Source/LibRawLite/internal/dcraw_common.cpp +13593 -0
  327. data/vendor/FreeImage/Source/LibRawLite/internal/dcraw_fileio.cpp +240 -0
  328. data/vendor/FreeImage/Source/LibRawLite/internal/defines.h +167 -0
  329. data/vendor/FreeImage/Source/LibRawLite/internal/demosaic_packs.cpp +99 -0
  330. data/vendor/FreeImage/Source/LibRawLite/internal/dht_demosaic.cpp +873 -0
  331. data/vendor/FreeImage/Source/LibRawLite/internal/libraw_internal_funcs.h +282 -0
  332. data/vendor/FreeImage/Source/LibRawLite/internal/libraw_x3f.cpp +1919 -0
  333. data/vendor/FreeImage/Source/LibRawLite/internal/var_defines.h +216 -0
  334. data/vendor/FreeImage/Source/LibRawLite/internal/wf_filtering.cpp +1950 -0
  335. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw.h +338 -0
  336. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_alloc.h +99 -0
  337. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_const.h +233 -0
  338. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_datastream.h +238 -0
  339. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_internal.h +225 -0
  340. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_types.h +442 -0
  341. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_version.h +62 -0
  342. data/vendor/FreeImage/Source/LibRawLite/src/libraw_c_api.cpp +230 -0
  343. data/vendor/FreeImage/Source/LibRawLite/src/libraw_cxx.cpp +4533 -0
  344. data/vendor/FreeImage/Source/LibRawLite/src/libraw_datastream.cpp +703 -0
  345. data/vendor/FreeImage/Source/LibTIFF4/mkg3states.c +451 -0
  346. data/vendor/FreeImage/Source/LibTIFF4/mkspans.c +82 -0
  347. data/vendor/FreeImage/Source/LibTIFF4/t4.h +292 -0
  348. data/vendor/FreeImage/Source/LibTIFF4/tif_aux.c +358 -0
  349. data/vendor/FreeImage/Source/LibTIFF4/tif_close.c +140 -0
  350. data/vendor/FreeImage/Source/LibTIFF4/tif_codec.c +166 -0
  351. data/vendor/FreeImage/Source/LibTIFF4/tif_color.c +287 -0
  352. data/vendor/FreeImage/Source/LibTIFF4/tif_compress.c +304 -0
  353. data/vendor/FreeImage/Source/LibTIFF4/tif_config.h +97 -0
  354. data/vendor/FreeImage/Source/LibTIFF4/tif_config.vc.h +74 -0
  355. data/vendor/FreeImage/Source/LibTIFF4/tif_config.wince.h +71 -0
  356. data/vendor/FreeImage/Source/LibTIFF4/tif_dir.c +1700 -0
  357. data/vendor/FreeImage/Source/LibTIFF4/tif_dir.h +308 -0
  358. data/vendor/FreeImage/Source/LibTIFF4/tif_dirinfo.c +959 -0
  359. data/vendor/FreeImage/Source/LibTIFF4/tif_dirread.c +5640 -0
  360. data/vendor/FreeImage/Source/LibTIFF4/tif_dirwrite.c +2910 -0
  361. data/vendor/FreeImage/Source/LibTIFF4/tif_dumpmode.c +143 -0
  362. data/vendor/FreeImage/Source/LibTIFF4/tif_error.c +80 -0
  363. data/vendor/FreeImage/Source/LibTIFF4/tif_extension.c +118 -0
  364. data/vendor/FreeImage/Source/LibTIFF4/tif_fax3.c +1595 -0
  365. data/vendor/FreeImage/Source/LibTIFF4/tif_fax3.h +538 -0
  366. data/vendor/FreeImage/Source/LibTIFF4/tif_fax3sm.c +1260 -0
  367. data/vendor/FreeImage/Source/LibTIFF4/tif_flush.c +118 -0
  368. data/vendor/FreeImage/Source/LibTIFF4/tif_getimage.c +2890 -0
  369. data/vendor/FreeImage/Source/LibTIFF4/tif_jbig.c +213 -0
  370. data/vendor/FreeImage/Source/LibTIFF4/tif_jpeg.c +2354 -0
  371. data/vendor/FreeImage/Source/LibTIFF4/tif_jpeg_12.c +65 -0
  372. data/vendor/FreeImage/Source/LibTIFF4/tif_luv.c +1683 -0
  373. data/vendor/FreeImage/Source/LibTIFF4/tif_lzma.c +495 -0
  374. data/vendor/FreeImage/Source/LibTIFF4/tif_lzw.c +1169 -0
  375. data/vendor/FreeImage/Source/LibTIFF4/tif_next.c +181 -0
  376. data/vendor/FreeImage/Source/LibTIFF4/tif_ojpeg.c +2501 -0
  377. data/vendor/FreeImage/Source/LibTIFF4/tif_open.c +725 -0
  378. data/vendor/FreeImage/Source/LibTIFF4/tif_packbits.c +300 -0
  379. data/vendor/FreeImage/Source/LibTIFF4/tif_pixarlog.c +1442 -0
  380. data/vendor/FreeImage/Source/LibTIFF4/tif_predict.c +764 -0
  381. data/vendor/FreeImage/Source/LibTIFF4/tif_predict.h +77 -0
  382. data/vendor/FreeImage/Source/LibTIFF4/tif_print.c +716 -0
  383. data/vendor/FreeImage/Source/LibTIFF4/tif_read.c +1086 -0
  384. data/vendor/FreeImage/Source/LibTIFF4/tif_strip.c +383 -0
  385. data/vendor/FreeImage/Source/LibTIFF4/tif_swab.c +310 -0
  386. data/vendor/FreeImage/Source/LibTIFF4/tif_thunder.c +207 -0
  387. data/vendor/FreeImage/Source/LibTIFF4/tif_tile.c +299 -0
  388. data/vendor/FreeImage/Source/LibTIFF4/tif_unix.c +325 -0
  389. data/vendor/FreeImage/Source/LibTIFF4/tif_version.c +40 -0
  390. data/vendor/FreeImage/Source/LibTIFF4/tif_vms.c +603 -0
  391. data/vendor/FreeImage/Source/LibTIFF4/tif_warning.c +81 -0
  392. data/vendor/FreeImage/Source/LibTIFF4/tif_win32.c +443 -0
  393. data/vendor/FreeImage/Source/LibTIFF4/tif_wince.c +293 -0
  394. data/vendor/FreeImage/Source/LibTIFF4/tif_write.c +771 -0
  395. data/vendor/FreeImage/Source/LibTIFF4/tif_zip.c +472 -0
  396. data/vendor/FreeImage/Source/LibTIFF4/tiff.h +681 -0
  397. data/vendor/FreeImage/Source/LibTIFF4/tiffconf.h +170 -0
  398. data/vendor/FreeImage/Source/LibTIFF4/tiffconf.vc.h +160 -0
  399. data/vendor/FreeImage/Source/LibTIFF4/tiffconf.wince.h +121 -0
  400. data/vendor/FreeImage/Source/LibTIFF4/tiffio.h +557 -0
  401. data/vendor/FreeImage/Source/LibTIFF4/tiffiop.h +367 -0
  402. data/vendor/FreeImage/Source/LibTIFF4/tiffvers.h +9 -0
  403. data/vendor/FreeImage/Source/LibTIFF4/uvcode.h +180 -0
  404. data/vendor/FreeImage/Source/LibWebP/src/dec/alphai.h +55 -0
  405. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.alpha.c +167 -0
  406. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.buffer.c +249 -0
  407. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.frame.c +827 -0
  408. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.idec.c +857 -0
  409. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.io.c +640 -0
  410. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.quant.c +110 -0
  411. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.tree.c +525 -0
  412. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.vp8.c +663 -0
  413. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.vp8l.c +1584 -0
  414. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.webp.c +834 -0
  415. data/vendor/FreeImage/Source/LibWebP/src/dec/decode_vp8.h +185 -0
  416. data/vendor/FreeImage/Source/LibWebP/src/dec/vp8i.h +353 -0
  417. data/vendor/FreeImage/Source/LibWebP/src/dec/vp8li.h +136 -0
  418. data/vendor/FreeImage/Source/LibWebP/src/dec/webpi.h +120 -0
  419. data/vendor/FreeImage/Source/LibWebP/src/demux/demux.demux.c +957 -0
  420. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.alpha_processing.c +377 -0
  421. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.alpha_processing_mips_dsp_r2.c +139 -0
  422. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.alpha_processing_sse2.c +296 -0
  423. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.argb.c +68 -0
  424. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.argb_mips_dsp_r2.c +108 -0
  425. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.argb_sse2.c +62 -0
  426. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost.c +412 -0
  427. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost_mips32.c +154 -0
  428. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost_mips_dsp_r2.c +107 -0
  429. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost_sse2.c +121 -0
  430. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cpu.c +138 -0
  431. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec.c +760 -0
  432. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_clip_tables.c +366 -0
  433. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_mips32.c +585 -0
  434. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c +992 -0
  435. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_neon.c +1489 -0
  436. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_sse2.c +1284 -0
  437. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc.c +788 -0
  438. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_avx2.c +24 -0
  439. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_mips32.c +670 -0
  440. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c +1510 -0
  441. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_neon.c +932 -0
  442. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_sse2.c +940 -0
  443. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.filters.c +240 -0
  444. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c +404 -0
  445. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.filters_sse2.c +349 -0
  446. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.h +434 -0
  447. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless.c +1838 -0
  448. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_mips32.c +416 -0
  449. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c +921 -0
  450. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_neon.c +357 -0
  451. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_sse2.c +535 -0
  452. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.rescaler.c +115 -0
  453. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.rescaler_mips32.c +192 -0
  454. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.rescaler_mips_dsp_r2.c +210 -0
  455. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling.c +252 -0
  456. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c +280 -0
  457. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling_neon.c +267 -0
  458. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling_sse2.c +214 -0
  459. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv.c +166 -0
  460. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv_mips32.c +100 -0
  461. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c +131 -0
  462. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv_sse2.c +322 -0
  463. data/vendor/FreeImage/Source/LibWebP/src/dsp/lossless.h +313 -0
  464. data/vendor/FreeImage/Source/LibWebP/src/dsp/mips_macro.h +200 -0
  465. data/vendor/FreeImage/Source/LibWebP/src/dsp/neon.h +82 -0
  466. data/vendor/FreeImage/Source/LibWebP/src/dsp/yuv.h +321 -0
  467. data/vendor/FreeImage/Source/LibWebP/src/dsp/yuv_tables_sse2.h +536 -0
  468. data/vendor/FreeImage/Source/LibWebP/src/enc/backward_references.h +202 -0
  469. data/vendor/FreeImage/Source/LibWebP/src/enc/cost.h +69 -0
  470. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.alpha.c +440 -0
  471. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.analysis.c +501 -0
  472. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.backward_references.c +1076 -0
  473. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.config.c +163 -0
  474. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.cost.c +355 -0
  475. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.filter.c +296 -0
  476. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.frame.c +850 -0
  477. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.histogram.c +897 -0
  478. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.iterator.c +456 -0
  479. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.near_lossless.c +160 -0
  480. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture.c +290 -0
  481. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_csp.c +1100 -0
  482. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_psnr.c +150 -0
  483. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_rescale.c +285 -0
  484. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_tools.c +206 -0
  485. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.quant.c +1191 -0
  486. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.syntax.c +383 -0
  487. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.token.c +285 -0
  488. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.tree.c +504 -0
  489. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.vp8l.c +1437 -0
  490. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.webpenc.c +379 -0
  491. data/vendor/FreeImage/Source/LibWebP/src/enc/histogram.h +114 -0
  492. data/vendor/FreeImage/Source/LibWebP/src/enc/vp8enci.h +551 -0
  493. data/vendor/FreeImage/Source/LibWebP/src/enc/vp8li.h +78 -0
  494. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.anim_encode.c +1241 -0
  495. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.muxedit.c +696 -0
  496. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.muxinternal.c +551 -0
  497. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.muxread.c +544 -0
  498. data/vendor/FreeImage/Source/LibWebP/src/mux/muxi.h +232 -0
  499. data/vendor/FreeImage/Source/LibWebP/src/utils/bit_reader.h +168 -0
  500. data/vendor/FreeImage/Source/LibWebP/src/utils/bit_reader_inl.h +172 -0
  501. data/vendor/FreeImage/Source/LibWebP/src/utils/bit_writer.h +120 -0
  502. data/vendor/FreeImage/Source/LibWebP/src/utils/color_cache.h +74 -0
  503. data/vendor/FreeImage/Source/LibWebP/src/utils/endian_inl.h +100 -0
  504. data/vendor/FreeImage/Source/LibWebP/src/utils/filters.h +32 -0
  505. data/vendor/FreeImage/Source/LibWebP/src/utils/huffman.h +67 -0
  506. data/vendor/FreeImage/Source/LibWebP/src/utils/huffman_encode.h +60 -0
  507. data/vendor/FreeImage/Source/LibWebP/src/utils/quant_levels.h +36 -0
  508. data/vendor/FreeImage/Source/LibWebP/src/utils/quant_levels_dec.h +35 -0
  509. data/vendor/FreeImage/Source/LibWebP/src/utils/random.h +63 -0
  510. data/vendor/FreeImage/Source/LibWebP/src/utils/rescaler.h +78 -0
  511. data/vendor/FreeImage/Source/LibWebP/src/utils/thread.h +93 -0
  512. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.bit_reader.c +208 -0
  513. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.bit_writer.c +308 -0
  514. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.color_cache.c +49 -0
  515. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.filters.c +76 -0
  516. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.h +121 -0
  517. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.huffman.c +205 -0
  518. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.huffman_encode.c +417 -0
  519. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.quant_levels.c +140 -0
  520. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.quant_levels_dec.c +279 -0
  521. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.random.c +43 -0
  522. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.rescaler.c +82 -0
  523. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.thread.c +309 -0
  524. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.utils.c +211 -0
  525. data/vendor/FreeImage/Source/LibWebP/src/webp/decode.h +493 -0
  526. data/vendor/FreeImage/Source/LibWebP/src/webp/demux.h +224 -0
  527. data/vendor/FreeImage/Source/LibWebP/src/webp/encode.h +515 -0
  528. data/vendor/FreeImage/Source/LibWebP/src/webp/format_constants.h +88 -0
  529. data/vendor/FreeImage/Source/LibWebP/src/webp/mux.h +507 -0
  530. data/vendor/FreeImage/Source/LibWebP/src/webp/mux_types.h +97 -0
  531. data/vendor/FreeImage/Source/LibWebP/src/webp/types.h +52 -0
  532. data/vendor/FreeImage/Source/MapIntrospector.h +212 -0
  533. data/vendor/FreeImage/Source/Metadata/Exif.cpp +1253 -0
  534. data/vendor/FreeImage/Source/Metadata/FIRational.cpp +176 -0
  535. data/vendor/FreeImage/Source/Metadata/FIRational.h +108 -0
  536. data/vendor/FreeImage/Source/Metadata/FreeImageTag.cpp +353 -0
  537. data/vendor/FreeImage/Source/Metadata/FreeImageTag.h +500 -0
  538. data/vendor/FreeImage/Source/Metadata/IPTC.cpp +342 -0
  539. data/vendor/FreeImage/Source/Metadata/TagConversion.cpp +1094 -0
  540. data/vendor/FreeImage/Source/Metadata/TagLib.cpp +1618 -0
  541. data/vendor/FreeImage/Source/Metadata/XTIFF.cpp +766 -0
  542. data/vendor/FreeImage/Source/OpenEXR/Half/eLut.cpp +114 -0
  543. data/vendor/FreeImage/Source/OpenEXR/Half/eLut.h +71 -0
  544. data/vendor/FreeImage/Source/OpenEXR/Half/half.cpp +310 -0
  545. data/vendor/FreeImage/Source/OpenEXR/Half/half.h +757 -0
  546. data/vendor/FreeImage/Source/OpenEXR/Half/halfExport.h +27 -0
  547. data/vendor/FreeImage/Source/OpenEXR/Half/halfFunction.h +179 -0
  548. data/vendor/FreeImage/Source/OpenEXR/Half/halfLimits.h +102 -0
  549. data/vendor/FreeImage/Source/OpenEXR/Half/toFloat.cpp +164 -0
  550. data/vendor/FreeImage/Source/OpenEXR/Half/toFloat.h +16391 -0
  551. data/vendor/FreeImage/Source/OpenEXR/Iex/Iex.h +60 -0
  552. data/vendor/FreeImage/Source/OpenEXR/Iex/IexBaseExc.cpp +156 -0
  553. data/vendor/FreeImage/Source/OpenEXR/Iex/IexBaseExc.h +264 -0
  554. data/vendor/FreeImage/Source/OpenEXR/Iex/IexErrnoExc.h +208 -0
  555. data/vendor/FreeImage/Source/OpenEXR/Iex/IexExport.h +51 -0
  556. data/vendor/FreeImage/Source/OpenEXR/Iex/IexForward.h +229 -0
  557. data/vendor/FreeImage/Source/OpenEXR/Iex/IexMacros.h +170 -0
  558. data/vendor/FreeImage/Source/OpenEXR/Iex/IexMathExc.h +57 -0
  559. data/vendor/FreeImage/Source/OpenEXR/Iex/IexNamespace.h +112 -0
  560. data/vendor/FreeImage/Source/OpenEXR/Iex/IexThrowErrnoExc.cpp +873 -0
  561. data/vendor/FreeImage/Source/OpenEXR/Iex/IexThrowErrnoExc.h +97 -0
  562. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFloatExc.cpp +113 -0
  563. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFloatExc.h +146 -0
  564. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFpu.cpp +530 -0
  565. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFpu.h +91 -0
  566. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathIeeeExc.h +62 -0
  567. data/vendor/FreeImage/Source/OpenEXR/IlmBaseConfig.h +61 -0
  568. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAcesFile.cpp +633 -0
  569. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAcesFile.h +324 -0
  570. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfArray.h +285 -0
  571. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAttribute.cpp +158 -0
  572. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAttribute.h +407 -0
  573. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAutoArray.h +95 -0
  574. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfB44Compressor.cpp +1072 -0
  575. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfB44Compressor.h +118 -0
  576. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfBoxAttribute.cpp +111 -0
  577. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfBoxAttribute.h +87 -0
  578. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCRgbaFile.cpp +1438 -0
  579. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCRgbaFile.h +555 -0
  580. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelList.cpp +322 -0
  581. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelList.h +436 -0
  582. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelListAttribute.cpp +150 -0
  583. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelListAttribute.h +74 -0
  584. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCheckedArithmetic.h +163 -0
  585. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticities.cpp +151 -0
  586. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticities.h +131 -0
  587. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.cpp +87 -0
  588. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.h +73 -0
  589. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.cpp +591 -0
  590. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h +142 -0
  591. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompression.h +84 -0
  592. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressionAttribute.cpp +78 -0
  593. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressionAttribute.h +64 -0
  594. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressor.cpp +226 -0
  595. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressor.h +265 -0
  596. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfConvert.cpp +143 -0
  597. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfConvert.h +107 -0
  598. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepCompositing.cpp +110 -0
  599. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepCompositing.h +132 -0
  600. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.cpp +230 -0
  601. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.h +339 -0
  602. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepImageState.h +96 -0
  603. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.cpp +78 -0
  604. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.h +68 -0
  605. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp +2025 -0
  606. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.h +276 -0
  607. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.cpp +149 -0
  608. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.h +181 -0
  609. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp +1552 -0
  610. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.h +244 -0
  611. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.cpp +107 -0
  612. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.h +168 -0
  613. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp +1979 -0
  614. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.h +437 -0
  615. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp +273 -0
  616. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.h +362 -0
  617. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp +2055 -0
  618. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.h +475 -0
  619. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.cpp +250 -0
  620. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.h +394 -0
  621. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDoubleAttribute.cpp +57 -0
  622. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDoubleAttribute.h +59 -0
  623. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDwaCompressor.cpp +3424 -0
  624. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDwaCompressor.h +210 -0
  625. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDwaCompressorSimd.h +2145 -0
  626. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmap.cpp +335 -0
  627. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmap.h +336 -0
  628. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmapAttribute.cpp +76 -0
  629. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmapAttribute.h +68 -0
  630. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfExport.h +46 -0
  631. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFastHuf.cpp +768 -0
  632. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFastHuf.h +148 -0
  633. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatAttribute.cpp +57 -0
  634. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatAttribute.h +58 -0
  635. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.cpp +84 -0
  636. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.h +76 -0
  637. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfForward.h +127 -0
  638. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFrameBuffer.cpp +228 -0
  639. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFrameBuffer.h +386 -0
  640. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFramesPerSecond.cpp +76 -0
  641. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFramesPerSecond.h +94 -0
  642. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericInputFile.cpp +76 -0
  643. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericInputFile.h +58 -0
  644. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericOutputFile.cpp +112 -0
  645. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericOutputFile.h +62 -0
  646. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHeader.cpp +1283 -0
  647. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHeader.h +699 -0
  648. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHuf.cpp +1114 -0
  649. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHuf.h +82 -0
  650. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIO.cpp +110 -0
  651. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIO.h +255 -0
  652. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputFile.cpp +895 -0
  653. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputFile.h +240 -0
  654. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPart.cpp +114 -0
  655. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPart.h +84 -0
  656. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPartData.cpp +51 -0
  657. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPartData.h +69 -0
  658. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputStreamMutex.h +68 -0
  659. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInt64.h +56 -0
  660. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIntAttribute.cpp +57 -0
  661. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIntAttribute.h +58 -0
  662. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCode.cpp +217 -0
  663. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCode.h +167 -0
  664. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.cpp +99 -0
  665. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.h +73 -0
  666. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLineOrder.h +69 -0
  667. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLineOrderAttribute.cpp +78 -0
  668. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLineOrderAttribute.h +72 -0
  669. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLut.cpp +178 -0
  670. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLut.h +188 -0
  671. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMatrixAttribute.cpp +263 -0
  672. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMatrixAttribute.h +83 -0
  673. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMisc.cpp +1872 -0
  674. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMisc.h +466 -0
  675. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartInputFile.cpp +783 -0
  676. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartInputFile.h +128 -0
  677. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp +519 -0
  678. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.h +118 -0
  679. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiView.cpp +435 -0
  680. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiView.h +187 -0
  681. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfName.h +150 -0
  682. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfNamespace.h +115 -0
  683. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOpaqueAttribute.cpp +126 -0
  684. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOpaqueAttribute.h +110 -0
  685. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h +646 -0
  686. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputFile.cpp +1378 -0
  687. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputFile.h +263 -0
  688. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPart.cpp +105 -0
  689. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPart.h +77 -0
  690. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPartData.cpp +52 -0
  691. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPartData.h +62 -0
  692. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputStreamMutex.h +70 -0
  693. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPartHelper.h +262 -0
  694. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPartType.cpp +63 -0
  695. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPartType.h +62 -0
  696. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPixelType.h +67 -0
  697. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPizCompressor.cpp +667 -0
  698. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPizCompressor.h +117 -0
  699. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImage.cpp +104 -0
  700. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImage.h +135 -0
  701. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.cpp +103 -0
  702. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.h +70 -0
  703. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPxr24Compressor.cpp +553 -0
  704. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPxr24Compressor.h +109 -0
  705. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRational.cpp +127 -0
  706. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRational.h +98 -0
  707. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRationalAttribute.cpp +74 -0
  708. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRationalAttribute.h +69 -0
  709. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgba.h +109 -0
  710. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaFile.cpp +1405 -0
  711. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaFile.h +346 -0
  712. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaYca.cpp +497 -0
  713. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaYca.h +259 -0
  714. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRle.cpp +157 -0
  715. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRle.h +63 -0
  716. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRleCompressor.cpp +220 -0
  717. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRleCompressor.h +80 -0
  718. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp +1702 -0
  719. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfScanLineInputFile.h +210 -0
  720. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfSimd.h +59 -0
  721. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStandardAttributes.cpp +125 -0
  722. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStandardAttributes.h +382 -0
  723. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStdIO.cpp +242 -0
  724. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStdIO.h +160 -0
  725. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringAttribute.cpp +80 -0
  726. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringAttribute.h +71 -0
  727. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringVectorAttribute.cpp +100 -0
  728. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringVectorAttribute.h +74 -0
  729. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp +129 -0
  730. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfSystemSpecific.h +172 -0
  731. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTestFile.cpp +216 -0
  732. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTestFile.h +97 -0
  733. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfThreading.cpp +62 -0
  734. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfThreading.h +95 -0
  735. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileDescription.h +107 -0
  736. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.cpp +86 -0
  737. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.h +72 -0
  738. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileOffsets.cpp +552 -0
  739. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileOffsets.h +125 -0
  740. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputFile.cpp +1533 -0
  741. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputFile.h +401 -0
  742. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputPart.cpp +208 -0
  743. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputPart.h +100 -0
  744. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledMisc.cpp +389 -0
  745. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledMisc.h +106 -0
  746. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp +1841 -0
  747. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputFile.h +495 -0
  748. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputPart.cpp +228 -0
  749. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputPart.h +105 -0
  750. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledRgbaFile.cpp +1163 -0
  751. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledRgbaFile.h +482 -0
  752. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCode.cpp +431 -0
  753. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCode.h +242 -0
  754. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.cpp +79 -0
  755. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.h +74 -0
  756. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVecAttribute.cpp +217 -0
  757. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVecAttribute.h +100 -0
  758. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVersion.cpp +60 -0
  759. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVersion.h +136 -0
  760. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfWav.cpp +391 -0
  761. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfWav.h +78 -0
  762. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfXdr.h +927 -0
  763. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZip.cpp +196 -0
  764. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZip.h +78 -0
  765. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZipCompressor.cpp +127 -0
  766. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZipCompressor.h +89 -0
  767. data/vendor/FreeImage/Source/OpenEXR/IlmImf/b44ExpLogTable.cpp +136 -0
  768. data/vendor/FreeImage/Source/OpenEXR/IlmImf/b44ExpLogTable.h +16396 -0
  769. data/vendor/FreeImage/Source/OpenEXR/IlmImf/dwaLookups.cpp +573 -0
  770. data/vendor/FreeImage/Source/OpenEXR/IlmImf/dwaLookups.h +98334 -0
  771. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThread.cpp +80 -0
  772. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThread.h +143 -0
  773. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadExport.h +46 -0
  774. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadForward.h +52 -0
  775. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutex.cpp +59 -0
  776. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutex.h +160 -0
  777. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutexPosix.cpp +85 -0
  778. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutexWin32.cpp +79 -0
  779. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadNamespace.h +114 -0
  780. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadPool.cpp +483 -0
  781. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadPool.h +160 -0
  782. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadPosix.cpp +98 -0
  783. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphore.cpp +60 -0
  784. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphore.h +112 -0
  785. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphorePosix.cpp +106 -0
  786. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphorePosixCompat.cpp +155 -0
  787. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphoreWin32.cpp +153 -0
  788. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadWin32.cpp +100 -0
  789. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathBox.cpp +37 -0
  790. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathBox.h +849 -0
  791. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathBoxAlgo.h +1016 -0
  792. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathColor.h +736 -0
  793. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathColorAlgo.cpp +178 -0
  794. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathColorAlgo.h +257 -0
  795. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathEuler.h +926 -0
  796. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathExc.h +73 -0
  797. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathExport.h +46 -0
  798. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathForward.h +72 -0
  799. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFrame.h +192 -0
  800. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFrustum.h +741 -0
  801. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFrustumTest.h +417 -0
  802. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFun.cpp +181 -0
  803. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFun.h +269 -0
  804. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathGL.h +166 -0
  805. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathGLU.h +54 -0
  806. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathHalfLimits.h +68 -0
  807. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathInt64.h +62 -0
  808. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathInterval.h +226 -0
  809. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathLimits.h +268 -0
  810. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathLine.h +185 -0
  811. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathLineAlgo.h +288 -0
  812. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMath.h +208 -0
  813. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMatrix.h +3441 -0
  814. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMatrixAlgo.cpp +1252 -0
  815. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMatrixAlgo.h +1425 -0
  816. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathNamespace.h +115 -0
  817. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathPlane.h +257 -0
  818. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathPlatform.h +112 -0
  819. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathQuat.h +964 -0
  820. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathRandom.cpp +194 -0
  821. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathRandom.h +401 -0
  822. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathRoots.h +219 -0
  823. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathShear.cpp +54 -0
  824. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathShear.h +656 -0
  825. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathSphere.h +177 -0
  826. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathVec.cpp +583 -0
  827. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathVec.h +2227 -0
  828. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathVecAlgo.h +147 -0
  829. data/vendor/FreeImage/Source/OpenEXR/OpenEXRConfig.h +72 -0
  830. data/vendor/FreeImage/Source/Plugin.h +144 -0
  831. data/vendor/FreeImage/Source/Quantizers.h +354 -0
  832. data/vendor/FreeImage/Source/ToneMapping.h +44 -0
  833. data/vendor/FreeImage/Source/Utilities.h +516 -0
  834. data/vendor/FreeImage/Source/ZLib/adler32.c +179 -0
  835. data/vendor/FreeImage/Source/ZLib/compress.c +80 -0
  836. data/vendor/FreeImage/Source/ZLib/crc32.c +425 -0
  837. data/vendor/FreeImage/Source/ZLib/crc32.h +441 -0
  838. data/vendor/FreeImage/Source/ZLib/deflate.c +1967 -0
  839. data/vendor/FreeImage/Source/ZLib/deflate.h +346 -0
  840. data/vendor/FreeImage/Source/ZLib/gzclose.c +25 -0
  841. data/vendor/FreeImage/Source/ZLib/gzguts.h +209 -0
  842. data/vendor/FreeImage/Source/ZLib/gzlib.c +634 -0
  843. data/vendor/FreeImage/Source/ZLib/gzread.c +594 -0
  844. data/vendor/FreeImage/Source/ZLib/gzwrite.c +577 -0
  845. data/vendor/FreeImage/Source/ZLib/infback.c +640 -0
  846. data/vendor/FreeImage/Source/ZLib/inffast.c +340 -0
  847. data/vendor/FreeImage/Source/ZLib/inffast.h +11 -0
  848. data/vendor/FreeImage/Source/ZLib/inffixed.h +94 -0
  849. data/vendor/FreeImage/Source/ZLib/inflate.c +1512 -0
  850. data/vendor/FreeImage/Source/ZLib/inflate.h +122 -0
  851. data/vendor/FreeImage/Source/ZLib/inftrees.c +306 -0
  852. data/vendor/FreeImage/Source/ZLib/inftrees.h +62 -0
  853. data/vendor/FreeImage/Source/ZLib/trees.c +1226 -0
  854. data/vendor/FreeImage/Source/ZLib/trees.h +128 -0
  855. data/vendor/FreeImage/Source/ZLib/uncompr.c +59 -0
  856. data/vendor/FreeImage/Source/ZLib/zconf.h +511 -0
  857. data/vendor/FreeImage/Source/ZLib/zlib.h +1768 -0
  858. data/vendor/FreeImage/Source/ZLib/zutil.c +324 -0
  859. data/vendor/FreeImage/Source/ZLib/zutil.h +253 -0
  860. metadata +931 -0
@@ -0,0 +1,412 @@
1
+ // Copyright 2014 Google Inc. All Rights Reserved.
2
+ //
3
+ // Use of this source code is governed by a BSD-style license
4
+ // that can be found in the COPYING file in the root of the source
5
+ // tree. An additional intellectual property rights grant can be found
6
+ // in the file PATENTS. All contributing project authors may
7
+ // be found in the AUTHORS file in the root of the source tree.
8
+ // -----------------------------------------------------------------------------
9
+ //
10
+ // Author: Skal (pascal.massimino@gmail.com)
11
+
12
+ #include "./dsp.h"
13
+ #include "../enc/cost.h"
14
+
15
+ //------------------------------------------------------------------------------
16
+ // Boolean-cost cost table
17
+
18
+ const uint16_t VP8EntropyCost[256] = {
19
+ 1792, 1792, 1792, 1536, 1536, 1408, 1366, 1280, 1280, 1216,
20
+ 1178, 1152, 1110, 1076, 1061, 1024, 1024, 992, 968, 951,
21
+ 939, 911, 896, 878, 871, 854, 838, 820, 811, 794,
22
+ 786, 768, 768, 752, 740, 732, 720, 709, 704, 690,
23
+ 683, 672, 666, 655, 647, 640, 631, 622, 615, 607,
24
+ 598, 592, 586, 576, 572, 564, 559, 555, 547, 541,
25
+ 534, 528, 522, 512, 512, 504, 500, 494, 488, 483,
26
+ 477, 473, 467, 461, 458, 452, 448, 443, 438, 434,
27
+ 427, 424, 419, 415, 410, 406, 403, 399, 394, 390,
28
+ 384, 384, 377, 374, 370, 366, 362, 359, 355, 351,
29
+ 347, 342, 342, 336, 333, 330, 326, 323, 320, 316,
30
+ 312, 308, 305, 302, 299, 296, 293, 288, 287, 283,
31
+ 280, 277, 274, 272, 268, 266, 262, 256, 256, 256,
32
+ 251, 248, 245, 242, 240, 237, 234, 232, 228, 226,
33
+ 223, 221, 218, 216, 214, 211, 208, 205, 203, 201,
34
+ 198, 196, 192, 191, 188, 187, 183, 181, 179, 176,
35
+ 175, 171, 171, 168, 165, 163, 160, 159, 156, 154,
36
+ 152, 150, 148, 146, 144, 142, 139, 138, 135, 133,
37
+ 131, 128, 128, 125, 123, 121, 119, 117, 115, 113,
38
+ 111, 110, 107, 105, 103, 102, 100, 98, 96, 94,
39
+ 92, 91, 89, 86, 86, 83, 82, 80, 77, 76,
40
+ 74, 73, 71, 69, 67, 66, 64, 63, 61, 59,
41
+ 57, 55, 54, 52, 51, 49, 47, 46, 44, 43,
42
+ 41, 40, 38, 36, 35, 33, 32, 30, 29, 27,
43
+ 25, 24, 22, 21, 19, 18, 16, 15, 13, 12,
44
+ 10, 9, 7, 6, 4, 3
45
+ };
46
+
47
+ //------------------------------------------------------------------------------
48
+ // Level cost tables
49
+
50
+ // fixed costs for coding levels, deduce from the coding tree.
51
+ // This is only the part that doesn't depend on the probability state.
52
+ const uint16_t VP8LevelFixedCosts[MAX_LEVEL + 1] = {
53
+ 0, 256, 256, 256, 256, 432, 618, 630,
54
+ 731, 640, 640, 828, 901, 948, 1021, 1101,
55
+ 1174, 1221, 1294, 1042, 1085, 1115, 1158, 1202,
56
+ 1245, 1275, 1318, 1337, 1380, 1410, 1453, 1497,
57
+ 1540, 1570, 1613, 1280, 1295, 1317, 1332, 1358,
58
+ 1373, 1395, 1410, 1454, 1469, 1491, 1506, 1532,
59
+ 1547, 1569, 1584, 1601, 1616, 1638, 1653, 1679,
60
+ 1694, 1716, 1731, 1775, 1790, 1812, 1827, 1853,
61
+ 1868, 1890, 1905, 1727, 1733, 1742, 1748, 1759,
62
+ 1765, 1774, 1780, 1800, 1806, 1815, 1821, 1832,
63
+ 1838, 1847, 1853, 1878, 1884, 1893, 1899, 1910,
64
+ 1916, 1925, 1931, 1951, 1957, 1966, 1972, 1983,
65
+ 1989, 1998, 2004, 2027, 2033, 2042, 2048, 2059,
66
+ 2065, 2074, 2080, 2100, 2106, 2115, 2121, 2132,
67
+ 2138, 2147, 2153, 2178, 2184, 2193, 2199, 2210,
68
+ 2216, 2225, 2231, 2251, 2257, 2266, 2272, 2283,
69
+ 2289, 2298, 2304, 2168, 2174, 2183, 2189, 2200,
70
+ 2206, 2215, 2221, 2241, 2247, 2256, 2262, 2273,
71
+ 2279, 2288, 2294, 2319, 2325, 2334, 2340, 2351,
72
+ 2357, 2366, 2372, 2392, 2398, 2407, 2413, 2424,
73
+ 2430, 2439, 2445, 2468, 2474, 2483, 2489, 2500,
74
+ 2506, 2515, 2521, 2541, 2547, 2556, 2562, 2573,
75
+ 2579, 2588, 2594, 2619, 2625, 2634, 2640, 2651,
76
+ 2657, 2666, 2672, 2692, 2698, 2707, 2713, 2724,
77
+ 2730, 2739, 2745, 2540, 2546, 2555, 2561, 2572,
78
+ 2578, 2587, 2593, 2613, 2619, 2628, 2634, 2645,
79
+ 2651, 2660, 2666, 2691, 2697, 2706, 2712, 2723,
80
+ 2729, 2738, 2744, 2764, 2770, 2779, 2785, 2796,
81
+ 2802, 2811, 2817, 2840, 2846, 2855, 2861, 2872,
82
+ 2878, 2887, 2893, 2913, 2919, 2928, 2934, 2945,
83
+ 2951, 2960, 2966, 2991, 2997, 3006, 3012, 3023,
84
+ 3029, 3038, 3044, 3064, 3070, 3079, 3085, 3096,
85
+ 3102, 3111, 3117, 2981, 2987, 2996, 3002, 3013,
86
+ 3019, 3028, 3034, 3054, 3060, 3069, 3075, 3086,
87
+ 3092, 3101, 3107, 3132, 3138, 3147, 3153, 3164,
88
+ 3170, 3179, 3185, 3205, 3211, 3220, 3226, 3237,
89
+ 3243, 3252, 3258, 3281, 3287, 3296, 3302, 3313,
90
+ 3319, 3328, 3334, 3354, 3360, 3369, 3375, 3386,
91
+ 3392, 3401, 3407, 3432, 3438, 3447, 3453, 3464,
92
+ 3470, 3479, 3485, 3505, 3511, 3520, 3526, 3537,
93
+ 3543, 3552, 3558, 2816, 2822, 2831, 2837, 2848,
94
+ 2854, 2863, 2869, 2889, 2895, 2904, 2910, 2921,
95
+ 2927, 2936, 2942, 2967, 2973, 2982, 2988, 2999,
96
+ 3005, 3014, 3020, 3040, 3046, 3055, 3061, 3072,
97
+ 3078, 3087, 3093, 3116, 3122, 3131, 3137, 3148,
98
+ 3154, 3163, 3169, 3189, 3195, 3204, 3210, 3221,
99
+ 3227, 3236, 3242, 3267, 3273, 3282, 3288, 3299,
100
+ 3305, 3314, 3320, 3340, 3346, 3355, 3361, 3372,
101
+ 3378, 3387, 3393, 3257, 3263, 3272, 3278, 3289,
102
+ 3295, 3304, 3310, 3330, 3336, 3345, 3351, 3362,
103
+ 3368, 3377, 3383, 3408, 3414, 3423, 3429, 3440,
104
+ 3446, 3455, 3461, 3481, 3487, 3496, 3502, 3513,
105
+ 3519, 3528, 3534, 3557, 3563, 3572, 3578, 3589,
106
+ 3595, 3604, 3610, 3630, 3636, 3645, 3651, 3662,
107
+ 3668, 3677, 3683, 3708, 3714, 3723, 3729, 3740,
108
+ 3746, 3755, 3761, 3781, 3787, 3796, 3802, 3813,
109
+ 3819, 3828, 3834, 3629, 3635, 3644, 3650, 3661,
110
+ 3667, 3676, 3682, 3702, 3708, 3717, 3723, 3734,
111
+ 3740, 3749, 3755, 3780, 3786, 3795, 3801, 3812,
112
+ 3818, 3827, 3833, 3853, 3859, 3868, 3874, 3885,
113
+ 3891, 3900, 3906, 3929, 3935, 3944, 3950, 3961,
114
+ 3967, 3976, 3982, 4002, 4008, 4017, 4023, 4034,
115
+ 4040, 4049, 4055, 4080, 4086, 4095, 4101, 4112,
116
+ 4118, 4127, 4133, 4153, 4159, 4168, 4174, 4185,
117
+ 4191, 4200, 4206, 4070, 4076, 4085, 4091, 4102,
118
+ 4108, 4117, 4123, 4143, 4149, 4158, 4164, 4175,
119
+ 4181, 4190, 4196, 4221, 4227, 4236, 4242, 4253,
120
+ 4259, 4268, 4274, 4294, 4300, 4309, 4315, 4326,
121
+ 4332, 4341, 4347, 4370, 4376, 4385, 4391, 4402,
122
+ 4408, 4417, 4423, 4443, 4449, 4458, 4464, 4475,
123
+ 4481, 4490, 4496, 4521, 4527, 4536, 4542, 4553,
124
+ 4559, 4568, 4574, 4594, 4600, 4609, 4615, 4626,
125
+ 4632, 4641, 4647, 3515, 3521, 3530, 3536, 3547,
126
+ 3553, 3562, 3568, 3588, 3594, 3603, 3609, 3620,
127
+ 3626, 3635, 3641, 3666, 3672, 3681, 3687, 3698,
128
+ 3704, 3713, 3719, 3739, 3745, 3754, 3760, 3771,
129
+ 3777, 3786, 3792, 3815, 3821, 3830, 3836, 3847,
130
+ 3853, 3862, 3868, 3888, 3894, 3903, 3909, 3920,
131
+ 3926, 3935, 3941, 3966, 3972, 3981, 3987, 3998,
132
+ 4004, 4013, 4019, 4039, 4045, 4054, 4060, 4071,
133
+ 4077, 4086, 4092, 3956, 3962, 3971, 3977, 3988,
134
+ 3994, 4003, 4009, 4029, 4035, 4044, 4050, 4061,
135
+ 4067, 4076, 4082, 4107, 4113, 4122, 4128, 4139,
136
+ 4145, 4154, 4160, 4180, 4186, 4195, 4201, 4212,
137
+ 4218, 4227, 4233, 4256, 4262, 4271, 4277, 4288,
138
+ 4294, 4303, 4309, 4329, 4335, 4344, 4350, 4361,
139
+ 4367, 4376, 4382, 4407, 4413, 4422, 4428, 4439,
140
+ 4445, 4454, 4460, 4480, 4486, 4495, 4501, 4512,
141
+ 4518, 4527, 4533, 4328, 4334, 4343, 4349, 4360,
142
+ 4366, 4375, 4381, 4401, 4407, 4416, 4422, 4433,
143
+ 4439, 4448, 4454, 4479, 4485, 4494, 4500, 4511,
144
+ 4517, 4526, 4532, 4552, 4558, 4567, 4573, 4584,
145
+ 4590, 4599, 4605, 4628, 4634, 4643, 4649, 4660,
146
+ 4666, 4675, 4681, 4701, 4707, 4716, 4722, 4733,
147
+ 4739, 4748, 4754, 4779, 4785, 4794, 4800, 4811,
148
+ 4817, 4826, 4832, 4852, 4858, 4867, 4873, 4884,
149
+ 4890, 4899, 4905, 4769, 4775, 4784, 4790, 4801,
150
+ 4807, 4816, 4822, 4842, 4848, 4857, 4863, 4874,
151
+ 4880, 4889, 4895, 4920, 4926, 4935, 4941, 4952,
152
+ 4958, 4967, 4973, 4993, 4999, 5008, 5014, 5025,
153
+ 5031, 5040, 5046, 5069, 5075, 5084, 5090, 5101,
154
+ 5107, 5116, 5122, 5142, 5148, 5157, 5163, 5174,
155
+ 5180, 5189, 5195, 5220, 5226, 5235, 5241, 5252,
156
+ 5258, 5267, 5273, 5293, 5299, 5308, 5314, 5325,
157
+ 5331, 5340, 5346, 4604, 4610, 4619, 4625, 4636,
158
+ 4642, 4651, 4657, 4677, 4683, 4692, 4698, 4709,
159
+ 4715, 4724, 4730, 4755, 4761, 4770, 4776, 4787,
160
+ 4793, 4802, 4808, 4828, 4834, 4843, 4849, 4860,
161
+ 4866, 4875, 4881, 4904, 4910, 4919, 4925, 4936,
162
+ 4942, 4951, 4957, 4977, 4983, 4992, 4998, 5009,
163
+ 5015, 5024, 5030, 5055, 5061, 5070, 5076, 5087,
164
+ 5093, 5102, 5108, 5128, 5134, 5143, 5149, 5160,
165
+ 5166, 5175, 5181, 5045, 5051, 5060, 5066, 5077,
166
+ 5083, 5092, 5098, 5118, 5124, 5133, 5139, 5150,
167
+ 5156, 5165, 5171, 5196, 5202, 5211, 5217, 5228,
168
+ 5234, 5243, 5249, 5269, 5275, 5284, 5290, 5301,
169
+ 5307, 5316, 5322, 5345, 5351, 5360, 5366, 5377,
170
+ 5383, 5392, 5398, 5418, 5424, 5433, 5439, 5450,
171
+ 5456, 5465, 5471, 5496, 5502, 5511, 5517, 5528,
172
+ 5534, 5543, 5549, 5569, 5575, 5584, 5590, 5601,
173
+ 5607, 5616, 5622, 5417, 5423, 5432, 5438, 5449,
174
+ 5455, 5464, 5470, 5490, 5496, 5505, 5511, 5522,
175
+ 5528, 5537, 5543, 5568, 5574, 5583, 5589, 5600,
176
+ 5606, 5615, 5621, 5641, 5647, 5656, 5662, 5673,
177
+ 5679, 5688, 5694, 5717, 5723, 5732, 5738, 5749,
178
+ 5755, 5764, 5770, 5790, 5796, 5805, 5811, 5822,
179
+ 5828, 5837, 5843, 5868, 5874, 5883, 5889, 5900,
180
+ 5906, 5915, 5921, 5941, 5947, 5956, 5962, 5973,
181
+ 5979, 5988, 5994, 5858, 5864, 5873, 5879, 5890,
182
+ 5896, 5905, 5911, 5931, 5937, 5946, 5952, 5963,
183
+ 5969, 5978, 5984, 6009, 6015, 6024, 6030, 6041,
184
+ 6047, 6056, 6062, 6082, 6088, 6097, 6103, 6114,
185
+ 6120, 6129, 6135, 6158, 6164, 6173, 6179, 6190,
186
+ 6196, 6205, 6211, 6231, 6237, 6246, 6252, 6263,
187
+ 6269, 6278, 6284, 6309, 6315, 6324, 6330, 6341,
188
+ 6347, 6356, 6362, 6382, 6388, 6397, 6403, 6414,
189
+ 6420, 6429, 6435, 3515, 3521, 3530, 3536, 3547,
190
+ 3553, 3562, 3568, 3588, 3594, 3603, 3609, 3620,
191
+ 3626, 3635, 3641, 3666, 3672, 3681, 3687, 3698,
192
+ 3704, 3713, 3719, 3739, 3745, 3754, 3760, 3771,
193
+ 3777, 3786, 3792, 3815, 3821, 3830, 3836, 3847,
194
+ 3853, 3862, 3868, 3888, 3894, 3903, 3909, 3920,
195
+ 3926, 3935, 3941, 3966, 3972, 3981, 3987, 3998,
196
+ 4004, 4013, 4019, 4039, 4045, 4054, 4060, 4071,
197
+ 4077, 4086, 4092, 3956, 3962, 3971, 3977, 3988,
198
+ 3994, 4003, 4009, 4029, 4035, 4044, 4050, 4061,
199
+ 4067, 4076, 4082, 4107, 4113, 4122, 4128, 4139,
200
+ 4145, 4154, 4160, 4180, 4186, 4195, 4201, 4212,
201
+ 4218, 4227, 4233, 4256, 4262, 4271, 4277, 4288,
202
+ 4294, 4303, 4309, 4329, 4335, 4344, 4350, 4361,
203
+ 4367, 4376, 4382, 4407, 4413, 4422, 4428, 4439,
204
+ 4445, 4454, 4460, 4480, 4486, 4495, 4501, 4512,
205
+ 4518, 4527, 4533, 4328, 4334, 4343, 4349, 4360,
206
+ 4366, 4375, 4381, 4401, 4407, 4416, 4422, 4433,
207
+ 4439, 4448, 4454, 4479, 4485, 4494, 4500, 4511,
208
+ 4517, 4526, 4532, 4552, 4558, 4567, 4573, 4584,
209
+ 4590, 4599, 4605, 4628, 4634, 4643, 4649, 4660,
210
+ 4666, 4675, 4681, 4701, 4707, 4716, 4722, 4733,
211
+ 4739, 4748, 4754, 4779, 4785, 4794, 4800, 4811,
212
+ 4817, 4826, 4832, 4852, 4858, 4867, 4873, 4884,
213
+ 4890, 4899, 4905, 4769, 4775, 4784, 4790, 4801,
214
+ 4807, 4816, 4822, 4842, 4848, 4857, 4863, 4874,
215
+ 4880, 4889, 4895, 4920, 4926, 4935, 4941, 4952,
216
+ 4958, 4967, 4973, 4993, 4999, 5008, 5014, 5025,
217
+ 5031, 5040, 5046, 5069, 5075, 5084, 5090, 5101,
218
+ 5107, 5116, 5122, 5142, 5148, 5157, 5163, 5174,
219
+ 5180, 5189, 5195, 5220, 5226, 5235, 5241, 5252,
220
+ 5258, 5267, 5273, 5293, 5299, 5308, 5314, 5325,
221
+ 5331, 5340, 5346, 4604, 4610, 4619, 4625, 4636,
222
+ 4642, 4651, 4657, 4677, 4683, 4692, 4698, 4709,
223
+ 4715, 4724, 4730, 4755, 4761, 4770, 4776, 4787,
224
+ 4793, 4802, 4808, 4828, 4834, 4843, 4849, 4860,
225
+ 4866, 4875, 4881, 4904, 4910, 4919, 4925, 4936,
226
+ 4942, 4951, 4957, 4977, 4983, 4992, 4998, 5009,
227
+ 5015, 5024, 5030, 5055, 5061, 5070, 5076, 5087,
228
+ 5093, 5102, 5108, 5128, 5134, 5143, 5149, 5160,
229
+ 5166, 5175, 5181, 5045, 5051, 5060, 5066, 5077,
230
+ 5083, 5092, 5098, 5118, 5124, 5133, 5139, 5150,
231
+ 5156, 5165, 5171, 5196, 5202, 5211, 5217, 5228,
232
+ 5234, 5243, 5249, 5269, 5275, 5284, 5290, 5301,
233
+ 5307, 5316, 5322, 5345, 5351, 5360, 5366, 5377,
234
+ 5383, 5392, 5398, 5418, 5424, 5433, 5439, 5450,
235
+ 5456, 5465, 5471, 5496, 5502, 5511, 5517, 5528,
236
+ 5534, 5543, 5549, 5569, 5575, 5584, 5590, 5601,
237
+ 5607, 5616, 5622, 5417, 5423, 5432, 5438, 5449,
238
+ 5455, 5464, 5470, 5490, 5496, 5505, 5511, 5522,
239
+ 5528, 5537, 5543, 5568, 5574, 5583, 5589, 5600,
240
+ 5606, 5615, 5621, 5641, 5647, 5656, 5662, 5673,
241
+ 5679, 5688, 5694, 5717, 5723, 5732, 5738, 5749,
242
+ 5755, 5764, 5770, 5790, 5796, 5805, 5811, 5822,
243
+ 5828, 5837, 5843, 5868, 5874, 5883, 5889, 5900,
244
+ 5906, 5915, 5921, 5941, 5947, 5956, 5962, 5973,
245
+ 5979, 5988, 5994, 5858, 5864, 5873, 5879, 5890,
246
+ 5896, 5905, 5911, 5931, 5937, 5946, 5952, 5963,
247
+ 5969, 5978, 5984, 6009, 6015, 6024, 6030, 6041,
248
+ 6047, 6056, 6062, 6082, 6088, 6097, 6103, 6114,
249
+ 6120, 6129, 6135, 6158, 6164, 6173, 6179, 6190,
250
+ 6196, 6205, 6211, 6231, 6237, 6246, 6252, 6263,
251
+ 6269, 6278, 6284, 6309, 6315, 6324, 6330, 6341,
252
+ 6347, 6356, 6362, 6382, 6388, 6397, 6403, 6414,
253
+ 6420, 6429, 6435, 5303, 5309, 5318, 5324, 5335,
254
+ 5341, 5350, 5356, 5376, 5382, 5391, 5397, 5408,
255
+ 5414, 5423, 5429, 5454, 5460, 5469, 5475, 5486,
256
+ 5492, 5501, 5507, 5527, 5533, 5542, 5548, 5559,
257
+ 5565, 5574, 5580, 5603, 5609, 5618, 5624, 5635,
258
+ 5641, 5650, 5656, 5676, 5682, 5691, 5697, 5708,
259
+ 5714, 5723, 5729, 5754, 5760, 5769, 5775, 5786,
260
+ 5792, 5801, 5807, 5827, 5833, 5842, 5848, 5859,
261
+ 5865, 5874, 5880, 5744, 5750, 5759, 5765, 5776,
262
+ 5782, 5791, 5797, 5817, 5823, 5832, 5838, 5849,
263
+ 5855, 5864, 5870, 5895, 5901, 5910, 5916, 5927,
264
+ 5933, 5942, 5948, 5968, 5974, 5983, 5989, 6000,
265
+ 6006, 6015, 6021, 6044, 6050, 6059, 6065, 6076,
266
+ 6082, 6091, 6097, 6117, 6123, 6132, 6138, 6149,
267
+ 6155, 6164, 6170, 6195, 6201, 6210, 6216, 6227,
268
+ 6233, 6242, 6248, 6268, 6274, 6283, 6289, 6300,
269
+ 6306, 6315, 6321, 6116, 6122, 6131, 6137, 6148,
270
+ 6154, 6163, 6169, 6189, 6195, 6204, 6210, 6221,
271
+ 6227, 6236, 6242, 6267, 6273, 6282, 6288, 6299,
272
+ 6305, 6314, 6320, 6340, 6346, 6355, 6361, 6372,
273
+ 6378, 6387, 6393, 6416, 6422, 6431, 6437, 6448,
274
+ 6454, 6463, 6469, 6489, 6495, 6504, 6510, 6521,
275
+ 6527, 6536, 6542, 6567, 6573, 6582, 6588, 6599,
276
+ 6605, 6614, 6620, 6640, 6646, 6655, 6661, 6672,
277
+ 6678, 6687, 6693, 6557, 6563, 6572, 6578, 6589,
278
+ 6595, 6604, 6610, 6630, 6636, 6645, 6651, 6662,
279
+ 6668, 6677, 6683, 6708, 6714, 6723, 6729, 6740,
280
+ 6746, 6755, 6761, 6781, 6787, 6796, 6802, 6813,
281
+ 6819, 6828, 6834, 6857, 6863, 6872, 6878, 6889,
282
+ 6895, 6904, 6910, 6930, 6936, 6945, 6951, 6962,
283
+ 6968, 6977, 6983, 7008, 7014, 7023, 7029, 7040,
284
+ 7046, 7055, 7061, 7081, 7087, 7096, 7102, 7113,
285
+ 7119, 7128, 7134, 6392, 6398, 6407, 6413, 6424,
286
+ 6430, 6439, 6445, 6465, 6471, 6480, 6486, 6497,
287
+ 6503, 6512, 6518, 6543, 6549, 6558, 6564, 6575,
288
+ 6581, 6590, 6596, 6616, 6622, 6631, 6637, 6648,
289
+ 6654, 6663, 6669, 6692, 6698, 6707, 6713, 6724,
290
+ 6730, 6739, 6745, 6765, 6771, 6780, 6786, 6797,
291
+ 6803, 6812, 6818, 6843, 6849, 6858, 6864, 6875,
292
+ 6881, 6890, 6896, 6916, 6922, 6931, 6937, 6948,
293
+ 6954, 6963, 6969, 6833, 6839, 6848, 6854, 6865,
294
+ 6871, 6880, 6886, 6906, 6912, 6921, 6927, 6938,
295
+ 6944, 6953, 6959, 6984, 6990, 6999, 7005, 7016,
296
+ 7022, 7031, 7037, 7057, 7063, 7072, 7078, 7089,
297
+ 7095, 7104, 7110, 7133, 7139, 7148, 7154, 7165,
298
+ 7171, 7180, 7186, 7206, 7212, 7221, 7227, 7238,
299
+ 7244, 7253, 7259, 7284, 7290, 7299, 7305, 7316,
300
+ 7322, 7331, 7337, 7357, 7363, 7372, 7378, 7389,
301
+ 7395, 7404, 7410, 7205, 7211, 7220, 7226, 7237,
302
+ 7243, 7252, 7258, 7278, 7284, 7293, 7299, 7310,
303
+ 7316, 7325, 7331, 7356, 7362, 7371, 7377, 7388,
304
+ 7394, 7403, 7409, 7429, 7435, 7444, 7450, 7461,
305
+ 7467, 7476, 7482, 7505, 7511, 7520, 7526, 7537,
306
+ 7543, 7552, 7558, 7578, 7584, 7593, 7599, 7610,
307
+ 7616, 7625, 7631, 7656, 7662, 7671, 7677, 7688,
308
+ 7694, 7703, 7709, 7729, 7735, 7744, 7750, 7761
309
+ };
310
+
311
+ //------------------------------------------------------------------------------
312
+ // Tables for level coding
313
+
314
+ const uint8_t VP8EncBands[16 + 1] = {
315
+ 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
316
+ 0 // sentinel
317
+ };
318
+
319
+ //------------------------------------------------------------------------------
320
+ // Mode costs
321
+
322
+ static int GetResidualCost(int ctx0, const VP8Residual* const res) {
323
+ int n = res->first;
324
+ // should be prob[VP8EncBands[n]], but it's equivalent for n=0 or 1
325
+ const int p0 = res->prob[n][ctx0][0];
326
+ CostArrayPtr const costs = res->costs;
327
+ const uint16_t* t = costs[n][ctx0];
328
+ // bit_cost(1, p0) is already incorporated in t[] tables, but only if ctx != 0
329
+ // (as required by the syntax). For ctx0 == 0, we need to add it here or it'll
330
+ // be missing during the loop.
331
+ int cost = (ctx0 == 0) ? VP8BitCost(1, p0) : 0;
332
+
333
+ if (res->last < 0) {
334
+ return VP8BitCost(0, p0);
335
+ }
336
+ for (; n < res->last; ++n) {
337
+ const int v = abs(res->coeffs[n]);
338
+ const int ctx = (v >= 2) ? 2 : v;
339
+ cost += VP8LevelCost(t, v);
340
+ t = costs[n + 1][ctx];
341
+ }
342
+ // Last coefficient is always non-zero
343
+ {
344
+ const int v = abs(res->coeffs[n]);
345
+ assert(v != 0);
346
+ cost += VP8LevelCost(t, v);
347
+ if (n < 15) {
348
+ const int b = VP8EncBands[n + 1];
349
+ const int ctx = (v == 1) ? 1 : 2;
350
+ const int last_p0 = res->prob[b][ctx][0];
351
+ cost += VP8BitCost(0, last_p0);
352
+ }
353
+ }
354
+ return cost;
355
+ }
356
+
357
+ static void SetResidualCoeffs(const int16_t* const coeffs,
358
+ VP8Residual* const res) {
359
+ int n;
360
+ res->last = -1;
361
+ assert(res->first == 0 || coeffs[0] == 0);
362
+ for (n = 15; n >= 0; --n) {
363
+ if (coeffs[n]) {
364
+ res->last = n;
365
+ break;
366
+ }
367
+ }
368
+ res->coeffs = coeffs;
369
+ }
370
+
371
+ //------------------------------------------------------------------------------
372
+ // init function
373
+
374
+ VP8GetResidualCostFunc VP8GetResidualCost;
375
+ VP8SetResidualCoeffsFunc VP8SetResidualCoeffs;
376
+
377
+ extern void VP8EncDspCostInitMIPS32(void);
378
+ extern void VP8EncDspCostInitMIPSdspR2(void);
379
+ extern void VP8EncDspCostInitSSE2(void);
380
+
381
+ static volatile VP8CPUInfo cost_last_cpuinfo_used =
382
+ (VP8CPUInfo)&cost_last_cpuinfo_used;
383
+
384
+ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInit(void) {
385
+ if (cost_last_cpuinfo_used == VP8GetCPUInfo) return;
386
+
387
+ VP8GetResidualCost = GetResidualCost;
388
+ VP8SetResidualCoeffs = SetResidualCoeffs;
389
+
390
+ // If defined, use CPUInfo() to overwrite some pointers with faster versions.
391
+ if (VP8GetCPUInfo != NULL) {
392
+ #if defined(WEBP_USE_MIPS32)
393
+ if (VP8GetCPUInfo(kMIPS32)) {
394
+ VP8EncDspCostInitMIPS32();
395
+ }
396
+ #endif
397
+ #if defined(WEBP_USE_MIPS_DSP_R2)
398
+ if (VP8GetCPUInfo(kMIPSdspR2)) {
399
+ VP8EncDspCostInitMIPSdspR2();
400
+ }
401
+ #endif
402
+ #if defined(WEBP_USE_SSE2)
403
+ if (VP8GetCPUInfo(kSSE2)) {
404
+ VP8EncDspCostInitSSE2();
405
+ }
406
+ #endif
407
+ }
408
+
409
+ cost_last_cpuinfo_used = VP8GetCPUInfo;
410
+ }
411
+
412
+ //------------------------------------------------------------------------------
@@ -0,0 +1,154 @@
1
+ // Copyright 2014 Google Inc. All Rights Reserved.
2
+ //
3
+ // Use of this source code is governed by a BSD-style license
4
+ // that can be found in the COPYING file in the root of the source
5
+ // tree. An additional intellectual property rights grant can be found
6
+ // in the file PATENTS. All contributing project authors may
7
+ // be found in the AUTHORS file in the root of the source tree.
8
+ // -----------------------------------------------------------------------------
9
+ //
10
+ // Author: Djordje Pesut (djordje.pesut@imgtec.com)
11
+
12
+ #include "./dsp.h"
13
+
14
+ #if defined(WEBP_USE_MIPS32)
15
+
16
+ #include "../enc/cost.h"
17
+
18
+ static int GetResidualCost(int ctx0, const VP8Residual* const res) {
19
+ int temp0, temp1;
20
+ int v_reg, ctx_reg;
21
+ int n = res->first;
22
+ // should be prob[VP8EncBands[n]], but it's equivalent for n=0 or 1
23
+ int p0 = res->prob[n][ctx0][0];
24
+ CostArrayPtr const costs = res->costs;
25
+ const uint16_t* t = costs[n][ctx0];
26
+ // bit_cost(1, p0) is already incorporated in t[] tables, but only if ctx != 0
27
+ // (as required by the syntax). For ctx0 == 0, we need to add it here or it'll
28
+ // be missing during the loop.
29
+ int cost = (ctx0 == 0) ? VP8BitCost(1, p0) : 0;
30
+ const int16_t* res_coeffs = res->coeffs;
31
+ const int res_last = res->last;
32
+ const int const_max_level = MAX_VARIABLE_LEVEL;
33
+ const int const_2 = 2;
34
+ const uint16_t** p_costs = &costs[n][0];
35
+ const size_t inc_p_costs = NUM_CTX * sizeof(*p_costs);
36
+
37
+ if (res->last < 0) {
38
+ return VP8BitCost(0, p0);
39
+ }
40
+
41
+ __asm__ volatile (
42
+ ".set push \n\t"
43
+ ".set noreorder \n\t"
44
+ "subu %[temp1], %[res_last], %[n] \n\t"
45
+ "sll %[temp0], %[n], 1 \n\t"
46
+ "blez %[temp1], 2f \n\t"
47
+ " addu %[res_coeffs], %[res_coeffs], %[temp0] \n\t"
48
+ "1: \n\t"
49
+ "lh %[v_reg], 0(%[res_coeffs]) \n\t"
50
+ "addiu %[n], %[n], 1 \n\t"
51
+ "negu %[temp0], %[v_reg] \n\t"
52
+ "slti %[temp1], %[v_reg], 0 \n\t"
53
+ "movn %[v_reg], %[temp0], %[temp1] \n\t"
54
+ "sltiu %[temp0], %[v_reg], 2 \n\t"
55
+ "move %[ctx_reg], %[v_reg] \n\t"
56
+ "movz %[ctx_reg], %[const_2], %[temp0] \n\t"
57
+ "sll %[temp1], %[v_reg], 1 \n\t"
58
+ "addu %[temp1], %[temp1], %[VP8LevelFixedCosts] \n\t"
59
+ "lhu %[temp1], 0(%[temp1]) \n\t"
60
+ "slt %[temp0], %[v_reg], %[const_max_level] \n\t"
61
+ "movz %[v_reg], %[const_max_level], %[temp0] \n\t"
62
+ "addu %[cost], %[cost], %[temp1] \n\t"
63
+ "sll %[v_reg], %[v_reg], 1 \n\t"
64
+ "sll %[ctx_reg], %[ctx_reg], 2 \n\t"
65
+ "addu %[v_reg], %[v_reg], %[t] \n\t"
66
+ "lhu %[temp0], 0(%[v_reg]) \n\t"
67
+ "addu %[p_costs], %[p_costs], %[inc_p_costs] \n\t"
68
+ "addu %[t], %[p_costs], %[ctx_reg] \n\t"
69
+ "addu %[cost], %[cost], %[temp0] \n\t"
70
+ "addiu %[res_coeffs], %[res_coeffs], 2 \n\t"
71
+ "bne %[n], %[res_last], 1b \n\t"
72
+ " lw %[t], 0(%[t]) \n\t"
73
+ "2: \n\t"
74
+ ".set pop \n\t"
75
+ : [cost]"+&r"(cost), [t]"+&r"(t), [n]"+&r"(n), [v_reg]"=&r"(v_reg),
76
+ [ctx_reg]"=&r"(ctx_reg), [p_costs]"+&r"(p_costs), [temp0]"=&r"(temp0),
77
+ [temp1]"=&r"(temp1), [res_coeffs]"+&r"(res_coeffs)
78
+ : [const_2]"r"(const_2), [const_max_level]"r"(const_max_level),
79
+ [VP8LevelFixedCosts]"r"(VP8LevelFixedCosts), [res_last]"r"(res_last),
80
+ [inc_p_costs]"r"(inc_p_costs)
81
+ : "memory"
82
+ );
83
+
84
+ // Last coefficient is always non-zero
85
+ {
86
+ const int v = abs(res->coeffs[n]);
87
+ assert(v != 0);
88
+ cost += VP8LevelCost(t, v);
89
+ if (n < 15) {
90
+ const int b = VP8EncBands[n + 1];
91
+ const int ctx = (v == 1) ? 1 : 2;
92
+ const int last_p0 = res->prob[b][ctx][0];
93
+ cost += VP8BitCost(0, last_p0);
94
+ }
95
+ }
96
+ return cost;
97
+ }
98
+
99
+ static void SetResidualCoeffs(const int16_t* const coeffs,
100
+ VP8Residual* const res) {
101
+ const int16_t* p_coeffs = (int16_t*)coeffs;
102
+ int temp0, temp1, temp2, n, n1;
103
+ assert(res->first == 0 || coeffs[0] == 0);
104
+
105
+ __asm__ volatile (
106
+ ".set push \n\t"
107
+ ".set noreorder \n\t"
108
+ "addiu %[p_coeffs], %[p_coeffs], 28 \n\t"
109
+ "li %[n], 15 \n\t"
110
+ "li %[temp2], -1 \n\t"
111
+ "0: \n\t"
112
+ "ulw %[temp0], 0(%[p_coeffs]) \n\t"
113
+ "beqz %[temp0], 1f \n\t"
114
+ #if defined(WORDS_BIGENDIAN)
115
+ " sll %[temp1], %[temp0], 16 \n\t"
116
+ #else
117
+ " srl %[temp1], %[temp0], 16 \n\t"
118
+ #endif
119
+ "addiu %[n1], %[n], -1 \n\t"
120
+ "movz %[temp0], %[n1], %[temp1] \n\t"
121
+ "movn %[temp0], %[n], %[temp1] \n\t"
122
+ "j 2f \n\t"
123
+ " addiu %[temp2], %[temp0], 0 \n\t"
124
+ "1: \n\t"
125
+ "addiu %[n], %[n], -2 \n\t"
126
+ "bgtz %[n], 0b \n\t"
127
+ " addiu %[p_coeffs], %[p_coeffs], -4 \n\t"
128
+ "2: \n\t"
129
+ ".set pop \n\t"
130
+ : [p_coeffs]"+&r"(p_coeffs), [temp0]"=&r"(temp0),
131
+ [temp1]"=&r"(temp1), [temp2]"=&r"(temp2),
132
+ [n]"=&r"(n), [n1]"=&r"(n1)
133
+ :
134
+ : "memory"
135
+ );
136
+ res->last = temp2;
137
+ res->coeffs = coeffs;
138
+ }
139
+
140
+ #endif // WEBP_USE_MIPS32
141
+
142
+ //------------------------------------------------------------------------------
143
+ // Entry point
144
+
145
+ extern void VP8EncDspCostInitMIPS32(void);
146
+
147
+ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInitMIPS32(void) {
148
+ #if defined(WEBP_USE_MIPS32)
149
+ VP8GetResidualCost = GetResidualCost;
150
+ VP8SetResidualCoeffs = SetResidualCoeffs;
151
+ #endif // WEBP_USE_MIPS32
152
+ }
153
+
154
+ //------------------------------------------------------------------------------
@@ -0,0 +1,107 @@
1
+ // Copyright 2014 Google Inc. All Rights Reserved.
2
+ //
3
+ // Use of this source code is governed by a BSD-style license
4
+ // that can be found in the COPYING file in the root of the source
5
+ // tree. An additional intellectual property rights grant can be found
6
+ // in the file PATENTS. All contributing project authors may
7
+ // be found in the AUTHORS file in the root of the source tree.
8
+ // -----------------------------------------------------------------------------
9
+ //
10
+ // Author: Djordje Pesut (djordje.pesut@imgtec.com)
11
+
12
+ #include "./dsp.h"
13
+
14
+ #if defined(WEBP_USE_MIPS_DSP_R2)
15
+
16
+ #include "../enc/cost.h"
17
+
18
+ static int GetResidualCost(int ctx0, const VP8Residual* const res) {
19
+ int temp0, temp1;
20
+ int v_reg, ctx_reg;
21
+ int n = res->first;
22
+ // should be prob[VP8EncBands[n]], but it's equivalent for n=0 or 1
23
+ int p0 = res->prob[n][ctx0][0];
24
+ CostArrayPtr const costs = res->costs;
25
+ const uint16_t* t = costs[n][ctx0];
26
+ // bit_cost(1, p0) is already incorporated in t[] tables, but only if ctx != 0
27
+ // (as required by the syntax). For ctx0 == 0, we need to add it here or it'll
28
+ // be missing during the loop.
29
+ int cost = (ctx0 == 0) ? VP8BitCost(1, p0) : 0;
30
+ const int16_t* res_coeffs = res->coeffs;
31
+ const int res_last = res->last;
32
+ const int const_max_level = MAX_VARIABLE_LEVEL;
33
+ const int const_2 = 2;
34
+ const uint16_t** p_costs = &costs[n][0];
35
+ const size_t inc_p_costs = NUM_CTX * sizeof(*p_costs);
36
+
37
+ if (res->last < 0) {
38
+ return VP8BitCost(0, p0);
39
+ }
40
+
41
+ __asm__ volatile (
42
+ ".set push \n\t"
43
+ ".set noreorder \n\t"
44
+ "subu %[temp1], %[res_last], %[n] \n\t"
45
+ "blez %[temp1], 2f \n\t"
46
+ " nop \n\t"
47
+ "1: \n\t"
48
+ "sll %[temp0], %[n], 1 \n\t"
49
+ "lhx %[v_reg], %[temp0](%[res_coeffs]) \n\t"
50
+ "addiu %[n], %[n], 1 \n\t"
51
+ "absq_s.w %[v_reg], %[v_reg] \n\t"
52
+ "sltiu %[temp0], %[v_reg], 2 \n\t"
53
+ "move %[ctx_reg], %[v_reg] \n\t"
54
+ "movz %[ctx_reg], %[const_2], %[temp0] \n\t"
55
+ "sll %[temp1], %[v_reg], 1 \n\t"
56
+ "lhx %[temp1], %[temp1](%[VP8LevelFixedCosts]) \n\t"
57
+ "slt %[temp0], %[v_reg], %[const_max_level] \n\t"
58
+ "movz %[v_reg], %[const_max_level], %[temp0] \n\t"
59
+ "addu %[cost], %[cost], %[temp1] \n\t"
60
+ "sll %[v_reg], %[v_reg], 1 \n\t"
61
+ "sll %[ctx_reg], %[ctx_reg], 2 \n\t"
62
+ "lhx %[temp0], %[v_reg](%[t]) \n\t"
63
+ "addu %[p_costs], %[p_costs], %[inc_p_costs] \n\t"
64
+ "addu %[t], %[p_costs], %[ctx_reg] \n\t"
65
+ "addu %[cost], %[cost], %[temp0] \n\t"
66
+ "bne %[n], %[res_last], 1b \n\t"
67
+ " lw %[t], 0(%[t]) \n\t"
68
+ "2: \n\t"
69
+ ".set pop \n\t"
70
+ : [cost]"+&r"(cost), [t]"+&r"(t), [n]"+&r"(n), [v_reg]"=&r"(v_reg),
71
+ [ctx_reg]"=&r"(ctx_reg), [p_costs]"+&r"(p_costs), [temp0]"=&r"(temp0),
72
+ [temp1]"=&r"(temp1)
73
+ : [const_2]"r"(const_2), [const_max_level]"r"(const_max_level),
74
+ [VP8LevelFixedCosts]"r"(VP8LevelFixedCosts), [res_last]"r"(res_last),
75
+ [res_coeffs]"r"(res_coeffs), [inc_p_costs]"r"(inc_p_costs)
76
+ : "memory"
77
+ );
78
+
79
+ // Last coefficient is always non-zero
80
+ {
81
+ const int v = abs(res->coeffs[n]);
82
+ assert(v != 0);
83
+ cost += VP8LevelCost(t, v);
84
+ if (n < 15) {
85
+ const int b = VP8EncBands[n + 1];
86
+ const int ctx = (v == 1) ? 1 : 2;
87
+ const int last_p0 = res->prob[b][ctx][0];
88
+ cost += VP8BitCost(0, last_p0);
89
+ }
90
+ }
91
+ return cost;
92
+ }
93
+
94
+ #endif // WEBP_USE_MIPS_DSP_R2
95
+
96
+ //------------------------------------------------------------------------------
97
+ // Entry point
98
+
99
+ extern void VP8EncDspCostInitMIPSdspR2(void);
100
+
101
+ WEBP_TSAN_IGNORE_FUNCTION void VP8EncDspCostInitMIPSdspR2(void) {
102
+ #if defined(WEBP_USE_MIPS_DSP_R2)
103
+ VP8GetResidualCost = GetResidualCost;
104
+ #endif // WEBP_USE_MIPS_DSP_R2
105
+ }
106
+
107
+ //------------------------------------------------------------------------------