lightdrift-libraw 1.0.0-alpha.1

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 (487) hide show
  1. package/CHANGELOG.md +374 -0
  2. package/LICENSE +21 -0
  3. package/README.md +757 -0
  4. package/binding.gyp +38 -0
  5. package/deps/LibRaw-Source/LibRaw-0.21.4/.clang-format +4 -0
  6. package/deps/LibRaw-Source/LibRaw-0.21.4/COPYRIGHT +27 -0
  7. package/deps/LibRaw-Source/LibRaw-0.21.4/Changelog.txt +2802 -0
  8. package/deps/LibRaw-Source/LibRaw-0.21.4/DEVELOPER-NOTES +20 -0
  9. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/dng-sdk-1_4-allow-VC5-validate.diff +21 -0
  10. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/dng-sdk-1_6-hide-ccVc5-definitiion.diff +15 -0
  11. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/dng-sdk-allow-VC5-validate.diff +21 -0
  12. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/gpr_read_image.cpp.diff +29 -0
  13. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/gpr_read_image.h.diff +12 -0
  14. package/deps/LibRaw-Source/LibRaw-0.21.4/INSTALL +51 -0
  15. package/deps/LibRaw-Source/LibRaw-0.21.4/LICENSE.CDDL +340 -0
  16. package/deps/LibRaw-Source/LibRaw-0.21.4/LICENSE.LGPL +458 -0
  17. package/deps/LibRaw-Source/LibRaw-0.21.4/LibRaw.pro +19 -0
  18. package/deps/LibRaw-Source/LibRaw-0.21.4/LibRaw.sln +123 -0
  19. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.am +140 -0
  20. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.devel.nopp +230 -0
  21. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.devel.noppr2i +227 -0
  22. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.dist +501 -0
  23. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.in +1849 -0
  24. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.mingw +297 -0
  25. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.msvc +628 -0
  26. package/deps/LibRaw-Source/LibRaw-0.21.4/README.DNGSDK.txt +43 -0
  27. package/deps/LibRaw-Source/LibRaw-0.21.4/README.GoPro.txt +112 -0
  28. package/deps/LibRaw-Source/LibRaw-0.21.4/README.RawSpeed.txt +62 -0
  29. package/deps/LibRaw-Source/LibRaw-0.21.4/README.cmake +9 -0
  30. package/deps/LibRaw-Source/LibRaw-0.21.4/README.demosaic-packs +17 -0
  31. package/deps/LibRaw-Source/LibRaw-0.21.4/README.md +106 -0
  32. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.cpucount-unix.patch +15 -0
  33. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.qmake-pro-files.patch +84 -0
  34. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.samsung-decoder.patch +39 -0
  35. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.uncompressed-color-dng.patch +13 -0
  36. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.win32-dll.patch +186 -0
  37. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed_xmldata.cpp +4115 -0
  38. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/README.md +69 -0
  39. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/01.CameraMeta-extensibility.patch +13 -0
  40. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/02.Makernotes-processing.patch +36 -0
  41. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/03.remove-limits-and-logging.patch +245 -0
  42. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/04.clang-cl-compatibility.patch +37 -0
  43. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.cpp +251 -0
  44. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.h +83 -0
  45. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi_test.cpp +71 -0
  46. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rsxml2c.sh +5 -0
  47. package/deps/LibRaw-Source/LibRaw-0.21.4/aclocal.m4 +1446 -0
  48. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/output.0 +19332 -0
  49. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/output.1 +19332 -0
  50. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/output.2 +19332 -0
  51. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/requests +544 -0
  52. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/traces.0 +3028 -0
  53. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/traces.1 +665 -0
  54. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/traces.2 +3028 -0
  55. package/deps/LibRaw-Source/LibRaw-0.21.4/bin/.keep_me +2 -0
  56. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/4channels.pro +5 -0
  57. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/4channels.vcxproj +145 -0
  58. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/4channels.vcxproj.filters +18 -0
  59. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_emu.pro +6 -0
  60. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj +145 -0
  61. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj.filters +18 -0
  62. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_half.pro +6 -0
  63. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj +145 -0
  64. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj.filters +18 -0
  65. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/half_mt.pro +10 -0
  66. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw-common-lib.pro +28 -0
  67. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw-common.pro +8 -0
  68. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw.pro +70 -0
  69. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw.vcxproj +234 -0
  70. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw.vcxproj.filters +295 -0
  71. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/mem_image.pro +6 -0
  72. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/mem_image.vcxproj +145 -0
  73. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/mem_image.vcxproj.filters +18 -0
  74. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/multirender_test.pro +6 -0
  75. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj +145 -0
  76. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj.filters +18 -0
  77. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/openbayer_sample.pro +6 -0
  78. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj +145 -0
  79. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj.filters +18 -0
  80. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.pro +4 -0
  81. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj +145 -0
  82. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj.filters +18 -0
  83. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/raw-identify.pro +6 -0
  84. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj +145 -0
  85. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj.filters +18 -0
  86. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/rawtextdump.pro +6 -0
  87. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj +145 -0
  88. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj.filters +18 -0
  89. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/simple_dcraw.pro +6 -0
  90. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj +145 -0
  91. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj.filters +18 -0
  92. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/unprocessed_raw.pro +6 -0
  93. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj +145 -0
  94. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj.filters +18 -0
  95. package/deps/LibRaw-Source/LibRaw-0.21.4/compile +347 -0
  96. package/deps/LibRaw-Source/LibRaw-0.21.4/config.guess +1433 -0
  97. package/deps/LibRaw-Source/LibRaw-0.21.4/config.sub +1804 -0
  98. package/deps/LibRaw-Source/LibRaw-0.21.4/configure +19332 -0
  99. package/deps/LibRaw-Source/LibRaw-0.21.4/configure.ac +153 -0
  100. package/deps/LibRaw-Source/LibRaw-0.21.4/depcomp +791 -0
  101. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-C.html +187 -0
  102. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-CXX.html +881 -0
  103. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-datastruct.html +1341 -0
  104. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-notes.html +305 -0
  105. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-overview.html +66 -0
  106. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/Install-LibRaw.html +124 -0
  107. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/Samples-LibRaw.html +213 -0
  108. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/Why-LibRaw.html +65 -0
  109. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/index.html +38 -0
  110. package/deps/LibRaw-Source/LibRaw-0.21.4/install-sh +501 -0
  111. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/dcraw_defs.h +66 -0
  112. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/dcraw_fileio_defs.h +25 -0
  113. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/defines.h +193 -0
  114. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/dmp_include.h +27 -0
  115. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/libraw_cameraids.h +320 -0
  116. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/libraw_cxx_defs.h +133 -0
  117. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/libraw_internal_funcs.h +412 -0
  118. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/var_defines.h +215 -0
  119. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/x3f_tools.h +539 -0
  120. package/deps/LibRaw-Source/LibRaw-0.21.4/lib/Makefile +3 -0
  121. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw.h +534 -0
  122. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_alloc.h +148 -0
  123. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_const.h +814 -0
  124. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_datastream.h +410 -0
  125. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_internal.h +341 -0
  126. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_types.h +1175 -0
  127. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_version.h +63 -0
  128. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw.pc.in +12 -0
  129. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw_r.pc.in +12 -0
  130. package/deps/LibRaw-Source/LibRaw-0.21.4/ltmain.sh +11147 -0
  131. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ax_openmp.m4 +99 -0
  132. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/libtool.m4 +8369 -0
  133. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ltoptions.m4 +437 -0
  134. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ltsugar.m4 +124 -0
  135. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ltversion.m4 +23 -0
  136. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/lt~obsolete.m4 +99 -0
  137. package/deps/LibRaw-Source/LibRaw-0.21.4/missing +215 -0
  138. package/deps/LibRaw-Source/LibRaw-0.21.4/object/.keep_me +0 -0
  139. package/deps/LibRaw-Source/LibRaw-0.21.4/rsxml2c.sh +6 -0
  140. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/4channels.cpp +174 -0
  141. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/Makefile +2 -0
  142. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/dcraw_emu.cpp +670 -0
  143. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/dcraw_half.c +78 -0
  144. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/half_mt.c +178 -0
  145. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/half_mt_win32.c +212 -0
  146. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/mem_image_sample.cpp +282 -0
  147. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/multirender_test.cpp +107 -0
  148. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/openbayer_sample.cpp +65 -0
  149. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/postprocessing_benchmark.cpp +223 -0
  150. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/raw-identify.cpp +743 -0
  151. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/rawtextdump.cpp +144 -0
  152. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/simple_dcraw.cpp +217 -0
  153. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/unprocessed_raw.cpp +319 -0
  154. package/deps/LibRaw-Source/LibRaw-0.21.4/shlib-version.sh +11 -0
  155. package/deps/LibRaw-Source/LibRaw-0.21.4/src/Makefile +2 -0
  156. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/canon_600.cpp +225 -0
  157. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/crx.cpp +2781 -0
  158. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/decoders_dcraw.cpp +1816 -0
  159. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/decoders_libraw.cpp +873 -0
  160. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/decoders_libraw_dcrdefs.cpp +411 -0
  161. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/dng.cpp +284 -0
  162. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/fp_dng.cpp +689 -0
  163. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/fuji_compressed.cpp +1210 -0
  164. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/generic.cpp +101 -0
  165. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/kodak_decoders.cpp +524 -0
  166. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/load_mfbacks.cpp +936 -0
  167. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/smal.cpp +181 -0
  168. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/unpack.cpp +508 -0
  169. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/unpack_thumb.cpp +405 -0
  170. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/aahd_demosaic.cpp +781 -0
  171. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/ahd_demosaic.cpp +355 -0
  172. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/dcb_demosaic.cpp +900 -0
  173. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/dht_demosaic.cpp +1033 -0
  174. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/misc_demosaic.cpp +420 -0
  175. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/xtrans_demosaic.cpp +434 -0
  176. package/deps/LibRaw-Source/LibRaw-0.21.4/src/integration/dngsdk_glue.cpp +416 -0
  177. package/deps/LibRaw-Source/LibRaw-0.21.4/src/integration/rawspeed_glue.cpp +286 -0
  178. package/deps/LibRaw-Source/LibRaw-0.21.4/src/libraw_c_api.cpp +457 -0
  179. package/deps/LibRaw-Source/LibRaw-0.21.4/src/libraw_datastream.cpp +1046 -0
  180. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/adobepano.cpp +154 -0
  181. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/canon.cpp +1335 -0
  182. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/ciff.cpp +411 -0
  183. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/cr3_parser.cpp +896 -0
  184. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/epson.cpp +96 -0
  185. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/exif_gps.cpp +430 -0
  186. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/fuji.cpp +1427 -0
  187. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/hasselblad_model.cpp +538 -0
  188. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/identify.cpp +3167 -0
  189. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/identify_tools.cpp +140 -0
  190. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/kodak.cpp +363 -0
  191. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/leica.cpp +375 -0
  192. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/makernotes.cpp +786 -0
  193. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/mediumformat.cpp +521 -0
  194. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/minolta.cpp +110 -0
  195. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/misc_parsers.cpp +694 -0
  196. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/nikon.cpp +1051 -0
  197. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/normalize_model.cpp +1451 -0
  198. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/olympus.cpp +685 -0
  199. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/p1.cpp +192 -0
  200. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/pentax.cpp +675 -0
  201. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/samsung.cpp +182 -0
  202. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/sony.cpp +2320 -0
  203. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/tiff.cpp +2198 -0
  204. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/aspect_ratio.cpp +113 -0
  205. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/dcraw_process.cpp +259 -0
  206. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/mem_image.cpp +292 -0
  207. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_aux.cpp +413 -0
  208. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_ph.cpp +31 -0
  209. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_utils.cpp +190 -0
  210. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_utils_dcrdefs.cpp +308 -0
  211. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/ext_preprocess.cpp +127 -0
  212. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/preprocessing_ph.cpp +24 -0
  213. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/raw2image.cpp +560 -0
  214. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/subtract_black.cpp +91 -0
  215. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/cameralist.cpp +1268 -0
  216. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/colorconst.cpp +57 -0
  217. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/colordata.cpp +1841 -0
  218. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/wblists.cpp +217 -0
  219. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/curves.cpp +154 -0
  220. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/decoder_info.cpp +413 -0
  221. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/init_close_utils.cpp +340 -0
  222. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/open.cpp +1269 -0
  223. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/phaseone_processing.cpp +101 -0
  224. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/read_utils.cpp +176 -0
  225. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/thumb_utils.cpp +338 -0
  226. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/utils_dcraw.cpp +330 -0
  227. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/utils_libraw.cpp +673 -0
  228. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/apply_profile.cpp +76 -0
  229. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/file_write.cpp +338 -0
  230. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/tiff_writer.cpp +73 -0
  231. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/write_ph.cpp +39 -0
  232. package/deps/LibRaw-Source/LibRaw-0.21.4/src/x3f/x3f_parse_process.cpp +708 -0
  233. package/deps/LibRaw-Source/LibRaw-0.21.4/src/x3f/x3f_utils_patched.cpp +2119 -0
  234. package/deps/LibRaw-Source/LibRaw-0.21.4/version.sh +16 -0
  235. package/deps/LibRaw-Win64/LibRaw-0.21.4/.clang-format +4 -0
  236. package/deps/LibRaw-Win64/LibRaw-0.21.4/COPYRIGHT +27 -0
  237. package/deps/LibRaw-Win64/LibRaw-0.21.4/Changelog.txt +2802 -0
  238. package/deps/LibRaw-Win64/LibRaw-0.21.4/DEVELOPER-NOTES +20 -0
  239. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/dng-sdk-1_4-allow-VC5-validate.diff +21 -0
  240. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/dng-sdk-1_6-hide-ccVc5-definitiion.diff +15 -0
  241. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/dng-sdk-allow-VC5-validate.diff +21 -0
  242. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/gpr_read_image.cpp.diff +29 -0
  243. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/gpr_read_image.h.diff +12 -0
  244. package/deps/LibRaw-Win64/LibRaw-0.21.4/INSTALL +51 -0
  245. package/deps/LibRaw-Win64/LibRaw-0.21.4/LICENSE.CDDL +340 -0
  246. package/deps/LibRaw-Win64/LibRaw-0.21.4/LICENSE.LGPL +458 -0
  247. package/deps/LibRaw-Win64/LibRaw-0.21.4/LibRaw.pro +19 -0
  248. package/deps/LibRaw-Win64/LibRaw-0.21.4/LibRaw.sln +123 -0
  249. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.am +140 -0
  250. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.devel.nopp +230 -0
  251. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.devel.noppr2i +227 -0
  252. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.dist +501 -0
  253. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.in +1849 -0
  254. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.mingw +297 -0
  255. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.msvc +628 -0
  256. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.DNGSDK.txt +43 -0
  257. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.GoPro.txt +112 -0
  258. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.RawSpeed.txt +62 -0
  259. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.cmake +9 -0
  260. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.demosaic-packs +17 -0
  261. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.md +106 -0
  262. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.cpucount-unix.patch +15 -0
  263. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.qmake-pro-files.patch +84 -0
  264. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.samsung-decoder.patch +39 -0
  265. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.uncompressed-color-dng.patch +13 -0
  266. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.win32-dll.patch +186 -0
  267. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed_xmldata.cpp +4115 -0
  268. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/README.md +69 -0
  269. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/01.CameraMeta-extensibility.patch +13 -0
  270. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/02.Makernotes-processing.patch +36 -0
  271. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/03.remove-limits-and-logging.patch +245 -0
  272. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/04.clang-cl-compatibility.patch +37 -0
  273. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.cpp +251 -0
  274. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.h +83 -0
  275. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi_test.cpp +71 -0
  276. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rsxml2c.sh +5 -0
  277. package/deps/LibRaw-Win64/LibRaw-0.21.4/aclocal.m4 +1446 -0
  278. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/output.0 +19332 -0
  279. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/output.1 +19332 -0
  280. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/output.2 +19332 -0
  281. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/requests +544 -0
  282. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/traces.0 +3028 -0
  283. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/traces.1 +665 -0
  284. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/traces.2 +3028 -0
  285. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/.keep_me +2 -0
  286. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/4channels.exe +0 -0
  287. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/dcraw_emu.exe +0 -0
  288. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/dcraw_half.exe +0 -0
  289. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/half_mt.exe +0 -0
  290. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/libraw.dll +0 -0
  291. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/mem_image.exe +0 -0
  292. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/multirender_test.exe +0 -0
  293. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/openbayer_sample.exe +0 -0
  294. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/postprocessing_benchmark.exe +0 -0
  295. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/raw-identify.exe +0 -0
  296. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/rawtextdump.exe +0 -0
  297. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/simple_dcraw.exe +0 -0
  298. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/unprocessed_raw.exe +0 -0
  299. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/4channels.pro +5 -0
  300. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/4channels.vcxproj +145 -0
  301. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/4channels.vcxproj.filters +18 -0
  302. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_emu.pro +6 -0
  303. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj +145 -0
  304. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj.filters +18 -0
  305. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_half.pro +6 -0
  306. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj +145 -0
  307. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj.filters +18 -0
  308. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/half_mt.pro +10 -0
  309. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw-common-lib.pro +28 -0
  310. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw-common.pro +8 -0
  311. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw.pro +70 -0
  312. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw.vcxproj +234 -0
  313. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw.vcxproj.filters +295 -0
  314. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/mem_image.pro +6 -0
  315. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/mem_image.vcxproj +145 -0
  316. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/mem_image.vcxproj.filters +18 -0
  317. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/multirender_test.pro +6 -0
  318. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj +145 -0
  319. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj.filters +18 -0
  320. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/openbayer_sample.pro +6 -0
  321. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj +145 -0
  322. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj.filters +18 -0
  323. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.pro +4 -0
  324. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj +145 -0
  325. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj.filters +18 -0
  326. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/raw-identify.pro +6 -0
  327. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj +145 -0
  328. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj.filters +18 -0
  329. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/rawtextdump.pro +6 -0
  330. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj +145 -0
  331. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj.filters +18 -0
  332. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/simple_dcraw.pro +6 -0
  333. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj +145 -0
  334. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj.filters +18 -0
  335. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/unprocessed_raw.pro +6 -0
  336. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj +145 -0
  337. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj.filters +18 -0
  338. package/deps/LibRaw-Win64/LibRaw-0.21.4/compile +347 -0
  339. package/deps/LibRaw-Win64/LibRaw-0.21.4/config.guess +1433 -0
  340. package/deps/LibRaw-Win64/LibRaw-0.21.4/config.sub +1804 -0
  341. package/deps/LibRaw-Win64/LibRaw-0.21.4/configure +19332 -0
  342. package/deps/LibRaw-Win64/LibRaw-0.21.4/configure.ac +153 -0
  343. package/deps/LibRaw-Win64/LibRaw-0.21.4/depcomp +791 -0
  344. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-C.html +187 -0
  345. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-CXX.html +881 -0
  346. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-datastruct.html +1341 -0
  347. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-notes.html +305 -0
  348. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-overview.html +66 -0
  349. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/Install-LibRaw.html +124 -0
  350. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/Samples-LibRaw.html +213 -0
  351. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/Why-LibRaw.html +65 -0
  352. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/index.html +38 -0
  353. package/deps/LibRaw-Win64/LibRaw-0.21.4/install-sh +501 -0
  354. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/dcraw_defs.h +66 -0
  355. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/dcraw_fileio_defs.h +25 -0
  356. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/defines.h +193 -0
  357. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/dmp_include.h +27 -0
  358. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/libraw_cameraids.h +320 -0
  359. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/libraw_cxx_defs.h +133 -0
  360. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/libraw_internal_funcs.h +412 -0
  361. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/var_defines.h +215 -0
  362. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/x3f_tools.h +539 -0
  363. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/Makefile +3 -0
  364. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/libraw.exp +0 -0
  365. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/libraw.lib +0 -0
  366. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/libraw_static.lib +0 -0
  367. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw.h +534 -0
  368. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_alloc.h +148 -0
  369. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_const.h +814 -0
  370. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_datastream.h +410 -0
  371. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_internal.h +341 -0
  372. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_types.h +1175 -0
  373. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_version.h +63 -0
  374. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw.pc.in +12 -0
  375. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw_r.pc.in +12 -0
  376. package/deps/LibRaw-Win64/LibRaw-0.21.4/ltmain.sh +11147 -0
  377. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ax_openmp.m4 +99 -0
  378. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/libtool.m4 +8369 -0
  379. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ltoptions.m4 +437 -0
  380. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ltsugar.m4 +124 -0
  381. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ltversion.m4 +23 -0
  382. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/lt~obsolete.m4 +99 -0
  383. package/deps/LibRaw-Win64/LibRaw-0.21.4/missing +215 -0
  384. package/deps/LibRaw-Win64/LibRaw-0.21.4/object/.keep_me +0 -0
  385. package/deps/LibRaw-Win64/LibRaw-0.21.4/rsxml2c.sh +6 -0
  386. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/4channels.cpp +174 -0
  387. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/Makefile +2 -0
  388. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/dcraw_emu.cpp +670 -0
  389. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/dcraw_half.c +78 -0
  390. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/half_mt.c +178 -0
  391. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/half_mt_win32.c +212 -0
  392. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/mem_image_sample.cpp +282 -0
  393. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/multirender_test.cpp +107 -0
  394. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/openbayer_sample.cpp +65 -0
  395. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/postprocessing_benchmark.cpp +223 -0
  396. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/raw-identify.cpp +743 -0
  397. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/rawtextdump.cpp +144 -0
  398. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/simple_dcraw.cpp +217 -0
  399. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/unprocessed_raw.cpp +319 -0
  400. package/deps/LibRaw-Win64/LibRaw-0.21.4/shlib-version.sh +11 -0
  401. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/Makefile +2 -0
  402. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/canon_600.cpp +225 -0
  403. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/crx.cpp +2781 -0
  404. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/decoders_dcraw.cpp +1816 -0
  405. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/decoders_libraw.cpp +873 -0
  406. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/decoders_libraw_dcrdefs.cpp +411 -0
  407. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/dng.cpp +284 -0
  408. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/fp_dng.cpp +689 -0
  409. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/fuji_compressed.cpp +1210 -0
  410. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/generic.cpp +101 -0
  411. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/kodak_decoders.cpp +524 -0
  412. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/load_mfbacks.cpp +936 -0
  413. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/smal.cpp +181 -0
  414. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/unpack.cpp +508 -0
  415. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/unpack_thumb.cpp +405 -0
  416. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/aahd_demosaic.cpp +781 -0
  417. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/ahd_demosaic.cpp +355 -0
  418. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/dcb_demosaic.cpp +900 -0
  419. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/dht_demosaic.cpp +1033 -0
  420. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/misc_demosaic.cpp +420 -0
  421. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/xtrans_demosaic.cpp +434 -0
  422. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/integration/dngsdk_glue.cpp +416 -0
  423. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/integration/rawspeed_glue.cpp +286 -0
  424. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/libraw_c_api.cpp +457 -0
  425. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/libraw_datastream.cpp +1046 -0
  426. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/adobepano.cpp +154 -0
  427. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/canon.cpp +1335 -0
  428. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/ciff.cpp +411 -0
  429. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/cr3_parser.cpp +896 -0
  430. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/epson.cpp +96 -0
  431. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/exif_gps.cpp +430 -0
  432. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/fuji.cpp +1427 -0
  433. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/hasselblad_model.cpp +538 -0
  434. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/identify.cpp +3167 -0
  435. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/identify_tools.cpp +140 -0
  436. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/kodak.cpp +363 -0
  437. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/leica.cpp +375 -0
  438. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/makernotes.cpp +786 -0
  439. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/mediumformat.cpp +521 -0
  440. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/minolta.cpp +110 -0
  441. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/misc_parsers.cpp +694 -0
  442. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/nikon.cpp +1051 -0
  443. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/normalize_model.cpp +1451 -0
  444. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/olympus.cpp +685 -0
  445. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/p1.cpp +192 -0
  446. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/pentax.cpp +675 -0
  447. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/samsung.cpp +182 -0
  448. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/sony.cpp +2320 -0
  449. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/tiff.cpp +2198 -0
  450. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/aspect_ratio.cpp +113 -0
  451. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/dcraw_process.cpp +259 -0
  452. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/mem_image.cpp +292 -0
  453. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_aux.cpp +413 -0
  454. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_ph.cpp +31 -0
  455. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_utils.cpp +190 -0
  456. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_utils_dcrdefs.cpp +308 -0
  457. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/ext_preprocess.cpp +127 -0
  458. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/preprocessing_ph.cpp +24 -0
  459. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/raw2image.cpp +560 -0
  460. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/subtract_black.cpp +91 -0
  461. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/cameralist.cpp +1268 -0
  462. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/colorconst.cpp +57 -0
  463. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/colordata.cpp +1841 -0
  464. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/wblists.cpp +217 -0
  465. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/curves.cpp +154 -0
  466. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/decoder_info.cpp +413 -0
  467. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/init_close_utils.cpp +340 -0
  468. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/open.cpp +1269 -0
  469. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/phaseone_processing.cpp +101 -0
  470. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/read_utils.cpp +176 -0
  471. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/thumb_utils.cpp +338 -0
  472. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/utils_dcraw.cpp +330 -0
  473. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/utils_libraw.cpp +673 -0
  474. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/apply_profile.cpp +76 -0
  475. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/file_write.cpp +338 -0
  476. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/tiff_writer.cpp +73 -0
  477. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/write_ph.cpp +39 -0
  478. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/x3f/x3f_parse_process.cpp +708 -0
  479. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/x3f/x3f_utils_patched.cpp +2119 -0
  480. package/deps/LibRaw-Win64/LibRaw-0.21.4/version.sh +16 -0
  481. package/lib/index.d.ts +324 -0
  482. package/lib/index.js +761 -0
  483. package/package.json +97 -0
  484. package/src/addon.cpp +8 -0
  485. package/src/libraw_wrapper.cpp +1223 -0
  486. package/src/libraw_wrapper.h +109 -0
  487. package/src/libraw_wrapper_new.cpp +853 -0
@@ -0,0 +1,900 @@
1
+ /*
2
+ * Copyright (C) 2010, Jacek Gozdz (cuniek@kft.umcs.lublin.pl)
3
+ *
4
+ * This code is licensed under a (3-clause) BSD license as follows :
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following
8
+ * conditions are met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ * * Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following
14
+ * disclaimer in the documentation and/or other materials provided
15
+ * with the distribution.
16
+ * * Neither the name of the author nor the names of its
17
+ * contributors may be used to endorse or promote products
18
+ * derived from this software without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
23
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
24
+ * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
25
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27
+ * SERVICES; LOSS OF USE,
28
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
29
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
32
+ * OF SUCH DAMAGE.
33
+ */
34
+
35
+ // DCB demosaicing by Jacek Gozdz (cuniek@kft.umcs.lublin.pl)
36
+
37
+ // FBDD denoising by Jacek Gozdz (cuniek@kft.umcs.lublin.pl) and
38
+ // Luis Sanz Rodríguez (luis.sanz.rodriguez@gmail.com)
39
+
40
+ // last modification: 11.07.2010
41
+
42
+ #include "../../internal/dcraw_defs.h"
43
+
44
+ // interpolates green vertically and saves it to image3
45
+ void LibRaw::dcb_ver(float (*image3)[3])
46
+ {
47
+ int row, col, u = width, indx;
48
+
49
+ for (row = 2; row < height - 2; row++)
50
+ for (col = 2 + (FC(row, 2) & 1), indx = row * width + col; col < u - 2;
51
+ col += 2, indx += 2)
52
+ {
53
+
54
+ image3[indx][1] = CLIP((image[indx + u][1] + image[indx - u][1]) / 2.0);
55
+ }
56
+ }
57
+
58
+ // interpolates green horizontally and saves it to image2
59
+ void LibRaw::dcb_hor(float (*image2)[3])
60
+ {
61
+ int row, col, u = width, indx;
62
+
63
+ for (row = 2; row < height - 2; row++)
64
+ for (col = 2 + (FC(row, 2) & 1), indx = row * width + col; col < u - 2;
65
+ col += 2, indx += 2)
66
+ {
67
+
68
+ image2[indx][1] = CLIP((image[indx + 1][1] + image[indx - 1][1]) / 2.0);
69
+ }
70
+ }
71
+
72
+ // missing colors are interpolated
73
+ void LibRaw::dcb_color()
74
+ {
75
+ int row, col, c, d, u = width, indx;
76
+
77
+ for (row = 1; row < height - 1; row++)
78
+ for (col = 1 + (FC(row, 1) & 1), indx = row * width + col,
79
+ c = 2 - FC(row, col);
80
+ col < u - 1; col += 2, indx += 2)
81
+ {
82
+
83
+ image[indx][c] = CLIP((4 * image[indx][1] - image[indx + u + 1][1] -
84
+ image[indx + u - 1][1] - image[indx - u + 1][1] -
85
+ image[indx - u - 1][1] + image[indx + u + 1][c] +
86
+ image[indx + u - 1][c] + image[indx - u + 1][c] +
87
+ image[indx - u - 1][c]) /
88
+ 4.0);
89
+ }
90
+
91
+ for (row = 1; row < height - 1; row++)
92
+ for (col = 1 + (FC(row, 2) & 1), indx = row * width + col,
93
+ c = FC(row, col + 1), d = 2 - c;
94
+ col < width - 1; col += 2, indx += 2)
95
+ {
96
+
97
+ image[indx][c] =
98
+ CLIP((2 * image[indx][1] - image[indx + 1][1] - image[indx - 1][1] +
99
+ image[indx + 1][c] + image[indx - 1][c]) /
100
+ 2.0);
101
+ image[indx][d] =
102
+ CLIP((2 * image[indx][1] - image[indx + u][1] - image[indx - u][1] +
103
+ image[indx + u][d] + image[indx - u][d]) /
104
+ 2.0);
105
+ }
106
+ }
107
+
108
+ // missing R and B are interpolated horizontally and saved in image2
109
+ void LibRaw::dcb_color2(float (*image2)[3])
110
+ {
111
+ int row, col, c, d, u = width, indx;
112
+
113
+ for (row = 1; row < height - 1; row++)
114
+ for (col = 1 + (FC(row, 1) & 1), indx = row * width + col,
115
+ c = 2 - FC(row, col);
116
+ col < u - 1; col += 2, indx += 2)
117
+ {
118
+
119
+ image2[indx][c] =
120
+ CLIP((4 * image2[indx][1] - image2[indx + u + 1][1] -
121
+ image2[indx + u - 1][1] - image2[indx - u + 1][1] -
122
+ image2[indx - u - 1][1] + image[indx + u + 1][c] +
123
+ image[indx + u - 1][c] + image[indx - u + 1][c] +
124
+ image[indx - u - 1][c]) /
125
+ 4.0);
126
+ }
127
+
128
+ for (row = 1; row < height - 1; row++)
129
+ for (col = 1 + (FC(row, 2) & 1), indx = row * width + col,
130
+ c = FC(row, col + 1), d = 2 - c;
131
+ col < width - 1; col += 2, indx += 2)
132
+ {
133
+
134
+ image2[indx][c] = CLIP((image[indx + 1][c] + image[indx - 1][c]) / 2.0);
135
+ image2[indx][d] =
136
+ CLIP((2 * image2[indx][1] - image2[indx + u][1] -
137
+ image2[indx - u][1] + image[indx + u][d] + image[indx - u][d]) /
138
+ 2.0);
139
+ }
140
+ }
141
+
142
+ // missing R and B are interpolated vertically and saved in image3
143
+ void LibRaw::dcb_color3(float (*image3)[3])
144
+ {
145
+ int row, col, c, d, u = width, indx;
146
+
147
+ for (row = 1; row < height - 1; row++)
148
+ for (col = 1 + (FC(row, 1) & 1), indx = row * width + col,
149
+ c = 2 - FC(row, col);
150
+ col < u - 1; col += 2, indx += 2)
151
+ {
152
+
153
+ image3[indx][c] =
154
+ CLIP((4 * image3[indx][1] - image3[indx + u + 1][1] -
155
+ image3[indx + u - 1][1] - image3[indx - u + 1][1] -
156
+ image3[indx - u - 1][1] + image[indx + u + 1][c] +
157
+ image[indx + u - 1][c] + image[indx - u + 1][c] +
158
+ image[indx - u - 1][c]) /
159
+ 4.0);
160
+ }
161
+
162
+ for (row = 1; row < height - 1; row++)
163
+ for (col = 1 + (FC(row, 2) & 1), indx = row * width + col,
164
+ c = FC(row, col + 1), d = 2 - c;
165
+ col < width - 1; col += 2, indx += 2)
166
+ {
167
+
168
+ image3[indx][c] =
169
+ CLIP((2 * image3[indx][1] - image3[indx + 1][1] -
170
+ image3[indx - 1][1] + image[indx + 1][c] + image[indx - 1][c]) /
171
+ 2.0);
172
+ image3[indx][d] = CLIP((image[indx + u][d] + image[indx - u][d]) / 2.0);
173
+ }
174
+ }
175
+
176
+ // decides the primary green interpolation direction
177
+ void LibRaw::dcb_decide(float (*image2)[3], float (*image3)[3])
178
+ {
179
+ int row, col, c, d, u = width, v = 2 * u, indx;
180
+ float current, current2, current3;
181
+
182
+ for (row = 2; row < height - 2; row++)
183
+ for (col = 2 + (FC(row, 2) & 1), indx = row * width + col, c = FC(row, col);
184
+ col < u - 2; col += 2, indx += 2)
185
+ {
186
+
187
+ d = ABS(c - 2);
188
+
189
+ current = MAX(image[indx + v][c],
190
+ MAX(image[indx - v][c],
191
+ MAX(image[indx - 2][c], image[indx + 2][c]))) -
192
+ MIN(image[indx + v][c],
193
+ MIN(image[indx - v][c],
194
+ MIN(image[indx - 2][c], image[indx + 2][c]))) +
195
+ MAX(image[indx + 1 + u][d],
196
+ MAX(image[indx + 1 - u][d],
197
+ MAX(image[indx - 1 + u][d], image[indx - 1 - u][d]))) -
198
+ MIN(image[indx + 1 + u][d],
199
+ MIN(image[indx + 1 - u][d],
200
+ MIN(image[indx - 1 + u][d], image[indx - 1 - u][d])));
201
+
202
+ current2 =
203
+ MAX(image2[indx + v][d],
204
+ MAX(image2[indx - v][d],
205
+ MAX(image2[indx - 2][d], image2[indx + 2][d]))) -
206
+ MIN(image2[indx + v][d],
207
+ MIN(image2[indx - v][d],
208
+ MIN(image2[indx - 2][d], image2[indx + 2][d]))) +
209
+ MAX(image2[indx + 1 + u][c],
210
+ MAX(image2[indx + 1 - u][c],
211
+ MAX(image2[indx - 1 + u][c], image2[indx - 1 - u][c]))) -
212
+ MIN(image2[indx + 1 + u][c],
213
+ MIN(image2[indx + 1 - u][c],
214
+ MIN(image2[indx - 1 + u][c], image2[indx - 1 - u][c])));
215
+
216
+ current3 =
217
+ MAX(image3[indx + v][d],
218
+ MAX(image3[indx - v][d],
219
+ MAX(image3[indx - 2][d], image3[indx + 2][d]))) -
220
+ MIN(image3[indx + v][d],
221
+ MIN(image3[indx - v][d],
222
+ MIN(image3[indx - 2][d], image3[indx + 2][d]))) +
223
+ MAX(image3[indx + 1 + u][c],
224
+ MAX(image3[indx + 1 - u][c],
225
+ MAX(image3[indx - 1 + u][c], image3[indx - 1 - u][c]))) -
226
+ MIN(image3[indx + 1 + u][c],
227
+ MIN(image3[indx + 1 - u][c],
228
+ MIN(image3[indx - 1 + u][c], image3[indx - 1 - u][c])));
229
+
230
+ if (ABS(current - current2) < ABS(current - current3))
231
+ image[indx][1] = image2[indx][1];
232
+ else
233
+ image[indx][1] = image3[indx][1];
234
+ }
235
+ }
236
+
237
+ // saves red and blue in image2
238
+ void LibRaw::dcb_copy_to_buffer(float (*image2)[3])
239
+ {
240
+ int indx;
241
+
242
+ for (indx = 0; indx < height * width; indx++)
243
+ {
244
+ image2[indx][0] = image[indx][0]; // R
245
+ image2[indx][2] = image[indx][2]; // B
246
+ }
247
+ }
248
+
249
+ // restores red and blue from image2
250
+ void LibRaw::dcb_restore_from_buffer(float (*image2)[3])
251
+ {
252
+ int indx;
253
+
254
+ for (indx = 0; indx < height * width; indx++)
255
+ {
256
+ image[indx][0] = image2[indx][0]; // R
257
+ image[indx][2] = image2[indx][2]; // B
258
+ }
259
+ }
260
+
261
+ // R and B smoothing using green contrast, all pixels except 2 pixel wide border
262
+ void LibRaw::dcb_pp()
263
+ {
264
+ int g1, r1, b1, u = width, indx, row, col;
265
+
266
+ for (row = 2; row < height - 2; row++)
267
+ for (col = 2, indx = row * u + col; col < width - 2; col++, indx++)
268
+ {
269
+
270
+ r1 = (image[indx - 1][0] + image[indx + 1][0] + image[indx - u][0] +
271
+ image[indx + u][0] + image[indx - u - 1][0] +
272
+ image[indx + u + 1][0] + image[indx - u + 1][0] +
273
+ image[indx + u - 1][0]) /
274
+ 8.0;
275
+ g1 = (image[indx - 1][1] + image[indx + 1][1] + image[indx - u][1] +
276
+ image[indx + u][1] + image[indx - u - 1][1] +
277
+ image[indx + u + 1][1] + image[indx - u + 1][1] +
278
+ image[indx + u - 1][1]) /
279
+ 8.0;
280
+ b1 = (image[indx - 1][2] + image[indx + 1][2] + image[indx - u][2] +
281
+ image[indx + u][2] + image[indx - u - 1][2] +
282
+ image[indx + u + 1][2] + image[indx - u + 1][2] +
283
+ image[indx + u - 1][2]) /
284
+ 8.0;
285
+
286
+ image[indx][0] = CLIP(r1 + (image[indx][1] - g1));
287
+ image[indx][2] = CLIP(b1 + (image[indx][1] - g1));
288
+ }
289
+ }
290
+
291
+ // green blurring correction, helps to get the nyquist right
292
+ void LibRaw::dcb_nyquist()
293
+ {
294
+ int row, col, c, u = width, v = 2 * u, indx;
295
+
296
+ for (row = 2; row < height - 2; row++)
297
+ for (col = 2 + (FC(row, 2) & 1), indx = row * width + col, c = FC(row, col);
298
+ col < u - 2; col += 2, indx += 2)
299
+ {
300
+
301
+ image[indx][1] = CLIP((image[indx + v][1] + image[indx - v][1] +
302
+ image[indx - 2][1] + image[indx + 2][1]) /
303
+ 4.0 +
304
+ image[indx][c] -
305
+ (image[indx + v][c] + image[indx - v][c] +
306
+ image[indx - 2][c] + image[indx + 2][c]) /
307
+ 4.0);
308
+ }
309
+ }
310
+
311
+ // missing colors are interpolated using high quality algorithm by Luis Sanz
312
+ // Rodríguez
313
+ void LibRaw::dcb_color_full()
314
+ {
315
+ int row, col, c, d, u = width, w = 3 * u, indx, g1, g2;
316
+ float f[4], g[4], (*chroma)[2];
317
+
318
+ chroma = (float(*)[2])calloc(width * height, sizeof *chroma);
319
+
320
+ for (row = 1; row < height - 1; row++)
321
+ for (col = 1 + (FC(row, 1) & 1), indx = row * width + col, c = FC(row, col),
322
+ d = c / 2;
323
+ col < u - 1; col += 2, indx += 2)
324
+ chroma[indx][d] = image[indx][c] - image[indx][1];
325
+
326
+ for (row = 3; row < height - 3; row++)
327
+ for (col = 3 + (FC(row, 1) & 1), indx = row * width + col,
328
+ c = 1 - FC(row, col) / 2, d = 1 - c;
329
+ col < u - 3; col += 2, indx += 2)
330
+ {
331
+ f[0] = 1.0 /
332
+ (float)(1.0 +
333
+ fabs(chroma[indx - u - 1][c] - chroma[indx + u + 1][c]) +
334
+ fabs(chroma[indx - u - 1][c] - chroma[indx - w - 3][c]) +
335
+ fabs(chroma[indx + u + 1][c] - chroma[indx - w - 3][c]));
336
+ f[1] = 1.0 /
337
+ (float)(1.0 +
338
+ fabs(chroma[indx - u + 1][c] - chroma[indx + u - 1][c]) +
339
+ fabs(chroma[indx - u + 1][c] - chroma[indx - w + 3][c]) +
340
+ fabs(chroma[indx + u - 1][c] - chroma[indx - w + 3][c]));
341
+ f[2] = 1.0 /
342
+ (float)(1.0 +
343
+ fabs(chroma[indx + u - 1][c] - chroma[indx - u + 1][c]) +
344
+ fabs(chroma[indx + u - 1][c] - chroma[indx + w + 3][c]) +
345
+ fabs(chroma[indx - u + 1][c] - chroma[indx + w - 3][c]));
346
+ f[3] = 1.0 /
347
+ (float)(1.0 +
348
+ fabs(chroma[indx + u + 1][c] - chroma[indx - u - 1][c]) +
349
+ fabs(chroma[indx + u + 1][c] - chroma[indx + w - 3][c]) +
350
+ fabs(chroma[indx - u - 1][c] - chroma[indx + w + 3][c]));
351
+ g[0] = 1.325 * chroma[indx - u - 1][c] - 0.175 * chroma[indx - w - 3][c] -
352
+ 0.075 * chroma[indx - w - 1][c] - 0.075 * chroma[indx - u - 3][c];
353
+ g[1] = 1.325 * chroma[indx - u + 1][c] - 0.175 * chroma[indx - w + 3][c] -
354
+ 0.075 * chroma[indx - w + 1][c] - 0.075 * chroma[indx - u + 3][c];
355
+ g[2] = 1.325 * chroma[indx + u - 1][c] - 0.175 * chroma[indx + w - 3][c] -
356
+ 0.075 * chroma[indx + w - 1][c] - 0.075 * chroma[indx + u - 3][c];
357
+ g[3] = 1.325 * chroma[indx + u + 1][c] - 0.175 * chroma[indx + w + 3][c] -
358
+ 0.075 * chroma[indx + w + 1][c] - 0.075 * chroma[indx + u + 3][c];
359
+ chroma[indx][c] =
360
+ (f[0] * g[0] + f[1] * g[1] + f[2] * g[2] + f[3] * g[3]) /
361
+ (f[0] + f[1] + f[2] + f[3]);
362
+ }
363
+ for (row = 3; row < height - 3; row++)
364
+ for (col = 3 + (FC(row, 2) & 1), indx = row * width + col,
365
+ c = FC(row, col + 1) / 2;
366
+ col < u - 3; col += 2, indx += 2)
367
+ for (d = 0; d <= 1; c = 1 - c, d++)
368
+ {
369
+ f[0] = 1.0 /
370
+ (float)(1.0 + fabs(chroma[indx - u][c] - chroma[indx + u][c]) +
371
+ fabs(chroma[indx - u][c] - chroma[indx - w][c]) +
372
+ fabs(chroma[indx + u][c] - chroma[indx - w][c]));
373
+ f[1] = 1.0 /
374
+ (float)(1.0 + fabs(chroma[indx + 1][c] - chroma[indx - 1][c]) +
375
+ fabs(chroma[indx + 1][c] - chroma[indx + 3][c]) +
376
+ fabs(chroma[indx - 1][c] - chroma[indx + 3][c]));
377
+ f[2] = 1.0 /
378
+ (float)(1.0 + fabs(chroma[indx - 1][c] - chroma[indx + 1][c]) +
379
+ fabs(chroma[indx - 1][c] - chroma[indx - 3][c]) +
380
+ fabs(chroma[indx + 1][c] - chroma[indx - 3][c]));
381
+ f[3] = 1.0 /
382
+ (float)(1.0 + fabs(chroma[indx + u][c] - chroma[indx - u][c]) +
383
+ fabs(chroma[indx + u][c] - chroma[indx + w][c]) +
384
+ fabs(chroma[indx - u][c] - chroma[indx + w][c]));
385
+
386
+ g[0] = 0.875 * chroma[indx - u][c] + 0.125 * chroma[indx - w][c];
387
+ g[1] = 0.875 * chroma[indx + 1][c] + 0.125 * chroma[indx + 3][c];
388
+ g[2] = 0.875 * chroma[indx - 1][c] + 0.125 * chroma[indx - 3][c];
389
+ g[3] = 0.875 * chroma[indx + u][c] + 0.125 * chroma[indx + w][c];
390
+
391
+ chroma[indx][c] =
392
+ (f[0] * g[0] + f[1] * g[1] + f[2] * g[2] + f[3] * g[3]) /
393
+ (f[0] + f[1] + f[2] + f[3]);
394
+ }
395
+
396
+ for (row = 6; row < height - 6; row++)
397
+ for (col = 6, indx = row * width + col; col < width - 6; col++, indx++)
398
+ {
399
+ image[indx][0] = CLIP(chroma[indx][0] + image[indx][1]);
400
+ image[indx][2] = CLIP(chroma[indx][1] + image[indx][1]);
401
+
402
+ g1 = MIN(
403
+ image[indx + 1 + u][0],
404
+ MIN(image[indx + 1 - u][0],
405
+ MIN(image[indx - 1 + u][0],
406
+ MIN(image[indx - 1 - u][0],
407
+ MIN(image[indx - 1][0],
408
+ MIN(image[indx + 1][0],
409
+ MIN(image[indx - u][0], image[indx + u][0])))))));
410
+
411
+ g2 = MAX(
412
+ image[indx + 1 + u][0],
413
+ MAX(image[indx + 1 - u][0],
414
+ MAX(image[indx - 1 + u][0],
415
+ MAX(image[indx - 1 - u][0],
416
+ MAX(image[indx - 1][0],
417
+ MAX(image[indx + 1][0],
418
+ MAX(image[indx - u][0], image[indx + u][0])))))));
419
+
420
+ image[indx][0] = ULIM(image[indx][0], g2, g1);
421
+
422
+ g1 = MIN(
423
+ image[indx + 1 + u][2],
424
+ MIN(image[indx + 1 - u][2],
425
+ MIN(image[indx - 1 + u][2],
426
+ MIN(image[indx - 1 - u][2],
427
+ MIN(image[indx - 1][2],
428
+ MIN(image[indx + 1][2],
429
+ MIN(image[indx - u][2], image[indx + u][2])))))));
430
+
431
+ g2 = MAX(
432
+ image[indx + 1 + u][2],
433
+ MAX(image[indx + 1 - u][2],
434
+ MAX(image[indx - 1 + u][2],
435
+ MAX(image[indx - 1 - u][2],
436
+ MAX(image[indx - 1][2],
437
+ MAX(image[indx + 1][2],
438
+ MAX(image[indx - u][2], image[indx + u][2])))))));
439
+
440
+ image[indx][2] = ULIM(image[indx][2], g2, g1);
441
+ }
442
+
443
+ free(chroma);
444
+ }
445
+
446
+ // green is used to create an interpolation direction map saved in image[][3]
447
+ // 1 = vertical
448
+ // 0 = horizontal
449
+ void LibRaw::dcb_map()
450
+ {
451
+ int row, col, u = width, indx;
452
+
453
+ for (row = 1; row < height - 1; row++)
454
+ {
455
+ for (col = 1, indx = row * width + col; col < width - 1; col++, indx++)
456
+ {
457
+
458
+ if (image[indx][1] > (image[indx - 1][1] + image[indx + 1][1] +
459
+ image[indx - u][1] + image[indx + u][1]) /
460
+ 4.0)
461
+ image[indx][3] = ((MIN(image[indx - 1][1], image[indx + 1][1]) +
462
+ image[indx - 1][1] + image[indx + 1][1]) <
463
+ (MIN(image[indx - u][1], image[indx + u][1]) +
464
+ image[indx - u][1] + image[indx + u][1]));
465
+ else
466
+ image[indx][3] = ((MAX(image[indx - 1][1], image[indx + 1][1]) +
467
+ image[indx - 1][1] + image[indx + 1][1]) >
468
+ (MAX(image[indx - u][1], image[indx + u][1]) +
469
+ image[indx - u][1] + image[indx + u][1]));
470
+ }
471
+ }
472
+ }
473
+
474
+ // interpolated green pixels are corrected using the map
475
+ void LibRaw::dcb_correction()
476
+ {
477
+ int current, row, col, u = width, v = 2 * u, indx;
478
+
479
+ for (row = 2; row < height - 2; row++)
480
+ for (col = 2 + (FC(row, 2) & 1), indx = row * width + col; col < u - 2;
481
+ col += 2, indx += 2)
482
+ {
483
+
484
+ current = 4 * image[indx][3] +
485
+ 2 * (image[indx + u][3] + image[indx - u][3] +
486
+ image[indx + 1][3] + image[indx - 1][3]) +
487
+ image[indx + v][3] + image[indx - v][3] + image[indx + 2][3] +
488
+ image[indx - 2][3];
489
+
490
+ image[indx][1] =
491
+ ((16 - current) * (image[indx - 1][1] + image[indx + 1][1]) / 2.0 +
492
+ current * (image[indx - u][1] + image[indx + u][1]) / 2.0) /
493
+ 16.0;
494
+ }
495
+ }
496
+
497
+ // interpolated green pixels are corrected using the map
498
+ // with contrast correction
499
+ void LibRaw::dcb_correction2()
500
+ {
501
+ int current, row, col, c, u = width, v = 2 * u, indx;
502
+
503
+ for (row = 4; row < height - 4; row++)
504
+ for (col = 4 + (FC(row, 2) & 1), indx = row * width + col, c = FC(row, col);
505
+ col < u - 4; col += 2, indx += 2)
506
+ {
507
+
508
+ current = 4 * image[indx][3] +
509
+ 2 * (image[indx + u][3] + image[indx - u][3] +
510
+ image[indx + 1][3] + image[indx - 1][3]) +
511
+ image[indx + v][3] + image[indx - v][3] + image[indx + 2][3] +
512
+ image[indx - 2][3];
513
+
514
+ image[indx][1] = CLIP(
515
+ ((16 - current) * ((image[indx - 1][1] + image[indx + 1][1]) / 2.0 +
516
+ image[indx][c] -
517
+ (image[indx + 2][c] + image[indx - 2][c]) / 2.0) +
518
+ current * ((image[indx - u][1] + image[indx + u][1]) / 2.0 +
519
+ image[indx][c] -
520
+ (image[indx + v][c] + image[indx - v][c]) / 2.0)) /
521
+ 16.0);
522
+ }
523
+ }
524
+
525
+ void LibRaw::dcb_refinement()
526
+ {
527
+ int row, col, c, u = width, v = 2 * u, w = 3 * u, indx, current;
528
+ float f[5], g1, g2;
529
+
530
+ for (row = 4; row < height - 4; row++)
531
+ for (col = 4 + (FC(row, 2) & 1), indx = row * width + col, c = FC(row, col);
532
+ col < u - 4; col += 2, indx += 2)
533
+ {
534
+
535
+ current = 4 * image[indx][3] +
536
+ 2 * (image[indx + u][3] + image[indx - u][3] +
537
+ image[indx + 1][3] + image[indx - 1][3]) +
538
+ image[indx + v][3] + image[indx - v][3] + image[indx - 2][3] +
539
+ image[indx + 2][3];
540
+
541
+ if (image[indx][c] > 1)
542
+ {
543
+
544
+ f[0] = (float)(image[indx - u][1] + image[indx + u][1]) /
545
+ (2 * image[indx][c]);
546
+
547
+ if (image[indx - v][c] > 0)
548
+ f[1] = 2 * (float)image[indx - u][1] /
549
+ (image[indx - v][c] + image[indx][c]);
550
+ else
551
+ f[1] = f[0];
552
+
553
+ if (image[indx - v][c] > 0)
554
+ f[2] = (float)(image[indx - u][1] + image[indx - w][1]) /
555
+ (2 * image[indx - v][c]);
556
+ else
557
+ f[2] = f[0];
558
+
559
+ if (image[indx + v][c] > 0)
560
+ f[3] = 2 * (float)image[indx + u][1] /
561
+ (image[indx + v][c] + image[indx][c]);
562
+ else
563
+ f[3] = f[0];
564
+
565
+ if (image[indx + v][c] > 0)
566
+ f[4] = (float)(image[indx + u][1] + image[indx + w][1]) /
567
+ (2 * image[indx + v][c]);
568
+ else
569
+ f[4] = f[0];
570
+
571
+ g1 = (5 * f[0] + 3 * f[1] + f[2] + 3 * f[3] + f[4]) / 13.0;
572
+
573
+ f[0] = (float)(image[indx - 1][1] + image[indx + 1][1]) /
574
+ (2 * image[indx][c]);
575
+
576
+ if (image[indx - 2][c] > 0)
577
+ f[1] = 2 * (float)image[indx - 1][1] /
578
+ (image[indx - 2][c] + image[indx][c]);
579
+ else
580
+ f[1] = f[0];
581
+
582
+ if (image[indx - 2][c] > 0)
583
+ f[2] = (float)(image[indx - 1][1] + image[indx - 3][1]) /
584
+ (2 * image[indx - 2][c]);
585
+ else
586
+ f[2] = f[0];
587
+
588
+ if (image[indx + 2][c] > 0)
589
+ f[3] = 2 * (float)image[indx + 1][1] /
590
+ (image[indx + 2][c] + image[indx][c]);
591
+ else
592
+ f[3] = f[0];
593
+
594
+ if (image[indx + 2][c] > 0)
595
+ f[4] = (float)(image[indx + 1][1] + image[indx + 3][1]) /
596
+ (2 * image[indx + 2][c]);
597
+ else
598
+ f[4] = f[0];
599
+
600
+ g2 = (5 * f[0] + 3 * f[1] + f[2] + 3 * f[3] + f[4]) / 13.0;
601
+
602
+ image[indx][1] = CLIP((image[indx][c]) *
603
+ (current * g1 + (16 - current) * g2) / 16.0);
604
+ }
605
+ else
606
+ image[indx][1] = image[indx][c];
607
+
608
+ // get rid of overshooted pixels
609
+
610
+ g1 = MIN(
611
+ image[indx + 1 + u][1],
612
+ MIN(image[indx + 1 - u][1],
613
+ MIN(image[indx - 1 + u][1],
614
+ MIN(image[indx - 1 - u][1],
615
+ MIN(image[indx - 1][1],
616
+ MIN(image[indx + 1][1],
617
+ MIN(image[indx - u][1], image[indx + u][1])))))));
618
+
619
+ g2 = MAX(
620
+ image[indx + 1 + u][1],
621
+ MAX(image[indx + 1 - u][1],
622
+ MAX(image[indx - 1 + u][1],
623
+ MAX(image[indx - 1 - u][1],
624
+ MAX(image[indx - 1][1],
625
+ MAX(image[indx + 1][1],
626
+ MAX(image[indx - u][1], image[indx + u][1])))))));
627
+
628
+ image[indx][1] = ULIM(image[indx][1], g2, g1);
629
+ }
630
+ }
631
+
632
+ // converts RGB to LCH colorspace and saves it to image3
633
+ void LibRaw::rgb_to_lch(double (*image2)[3])
634
+ {
635
+ int indx;
636
+ for (indx = 0; indx < height * width; indx++)
637
+ {
638
+
639
+ image2[indx][0] = image[indx][0] + image[indx][1] + image[indx][2]; // L
640
+ image2[indx][1] = 1.732050808 * (image[indx][0] - image[indx][1]); // C
641
+ image2[indx][2] =
642
+ 2.0 * image[indx][2] - image[indx][0] - image[indx][1]; // H
643
+ }
644
+ }
645
+
646
+ // converts LCH to RGB colorspace and saves it back to image
647
+ void LibRaw::lch_to_rgb(double (*image2)[3])
648
+ {
649
+ int indx;
650
+ for (indx = 0; indx < height * width; indx++)
651
+ {
652
+
653
+ image[indx][0] = CLIP(image2[indx][0] / 3.0 - image2[indx][2] / 6.0 +
654
+ image2[indx][1] / 3.464101615);
655
+ image[indx][1] = CLIP(image2[indx][0] / 3.0 - image2[indx][2] / 6.0 -
656
+ image2[indx][1] / 3.464101615);
657
+ image[indx][2] = CLIP(image2[indx][0] / 3.0 + image2[indx][2] / 3.0);
658
+ }
659
+ }
660
+
661
+ // denoising using interpolated neighbours
662
+ void LibRaw::fbdd_correction()
663
+ {
664
+ int row, col, c, u = width, indx;
665
+
666
+ for (row = 2; row < height - 2; row++)
667
+ {
668
+ for (col = 2, indx = row * width + col; col < width - 2; col++, indx++)
669
+ {
670
+
671
+ c = fcol(row, col);
672
+
673
+ image[indx][c] =
674
+ ULIM(image[indx][c],
675
+ MAX(image[indx - 1][c],
676
+ MAX(image[indx + 1][c],
677
+ MAX(image[indx - u][c], image[indx + u][c]))),
678
+ MIN(image[indx - 1][c],
679
+ MIN(image[indx + 1][c],
680
+ MIN(image[indx - u][c], image[indx + u][c]))));
681
+ }
682
+ }
683
+ }
684
+
685
+ // corrects chroma noise
686
+ void LibRaw::fbdd_correction2(double (*image2)[3])
687
+ {
688
+ int indx, v = 2 * width;
689
+ int col, row;
690
+ double Co, Ho, ratio;
691
+
692
+ for (row = 6; row < height - 6; row++)
693
+ {
694
+ for (col = 6; col < width - 6; col++)
695
+ {
696
+ indx = row * width + col;
697
+
698
+ if (image2[indx][1] * image2[indx][2] != 0)
699
+ {
700
+ Co = (image2[indx + v][1] + image2[indx - v][1] + image2[indx - 2][1] +
701
+ image2[indx + 2][1] -
702
+ MAX(image2[indx - 2][1],
703
+ MAX(image2[indx + 2][1],
704
+ MAX(image2[indx - v][1], image2[indx + v][1]))) -
705
+ MIN(image2[indx - 2][1],
706
+ MIN(image2[indx + 2][1],
707
+ MIN(image2[indx - v][1], image2[indx + v][1])))) /
708
+ 2.0;
709
+ Ho = (image2[indx + v][2] + image2[indx - v][2] + image2[indx - 2][2] +
710
+ image2[indx + 2][2] -
711
+ MAX(image2[indx - 2][2],
712
+ MAX(image2[indx + 2][2],
713
+ MAX(image2[indx - v][2], image2[indx + v][2]))) -
714
+ MIN(image2[indx - 2][2],
715
+ MIN(image2[indx + 2][2],
716
+ MIN(image2[indx - v][2], image2[indx + v][2])))) /
717
+ 2.0;
718
+ ratio = sqrt((Co * Co + Ho * Ho) / (image2[indx][1] * image2[indx][1] +
719
+ image2[indx][2] * image2[indx][2]));
720
+
721
+ if (ratio < 0.85)
722
+ {
723
+ image2[indx][0] =
724
+ -(image2[indx][1] + image2[indx][2] - Co - Ho) + image2[indx][0];
725
+ image2[indx][1] = Co;
726
+ image2[indx][2] = Ho;
727
+ }
728
+ }
729
+ }
730
+ }
731
+ }
732
+
733
+ // Cubic Spline Interpolation by Li and Randhawa, modified by Jacek Gozdz and
734
+ // Luis Sanz Rodríguez
735
+ void LibRaw::fbdd_green()
736
+ {
737
+ int row, col, c, u = width, v = 2 * u, w = 3 * u, x = 4 * u, y = 5 * u, indx,
738
+ min, max;
739
+ float f[4], g[4];
740
+
741
+ for (row = 5; row < height - 5; row++)
742
+ for (col = 5 + (FC(row, 1) & 1), indx = row * width + col, c = FC(row, col);
743
+ col < u - 5; col += 2, indx += 2)
744
+ {
745
+
746
+ f[0] = 1.0 / (1.0 + abs(image[indx - u][1] - image[indx - w][1]) +
747
+ abs(image[indx - w][1] - image[indx + y][1]));
748
+ f[1] = 1.0 / (1.0 + abs(image[indx + 1][1] - image[indx + 3][1]) +
749
+ abs(image[indx + 3][1] - image[indx - 5][1]));
750
+ f[2] = 1.0 / (1.0 + abs(image[indx - 1][1] - image[indx - 3][1]) +
751
+ abs(image[indx - 3][1] - image[indx + 5][1]));
752
+ f[3] = 1.0 / (1.0 + abs(image[indx + u][1] - image[indx + w][1]) +
753
+ abs(image[indx + w][1] - image[indx - y][1]));
754
+
755
+ g[0] = CLIP((23 * image[indx - u][1] + 23 * image[indx - w][1] +
756
+ 2 * image[indx - y][1] +
757
+ 8 * (image[indx - v][c] - image[indx - x][c]) +
758
+ 40 * (image[indx][c] - image[indx - v][c])) /
759
+ 48.0);
760
+ g[1] = CLIP((23 * image[indx + 1][1] + 23 * image[indx + 3][1] +
761
+ 2 * image[indx + 5][1] +
762
+ 8 * (image[indx + 2][c] - image[indx + 4][c]) +
763
+ 40 * (image[indx][c] - image[indx + 2][c])) /
764
+ 48.0);
765
+ g[2] = CLIP((23 * image[indx - 1][1] + 23 * image[indx - 3][1] +
766
+ 2 * image[indx - 5][1] +
767
+ 8 * (image[indx - 2][c] - image[indx - 4][c]) +
768
+ 40 * (image[indx][c] - image[indx - 2][c])) /
769
+ 48.0);
770
+ g[3] = CLIP((23 * image[indx + u][1] + 23 * image[indx + w][1] +
771
+ 2 * image[indx + y][1] +
772
+ 8 * (image[indx + v][c] - image[indx + x][c]) +
773
+ 40 * (image[indx][c] - image[indx + v][c])) /
774
+ 48.0);
775
+
776
+ image[indx][1] =
777
+ CLIP((f[0] * g[0] + f[1] * g[1] + f[2] * g[2] + f[3] * g[3]) /
778
+ (f[0] + f[1] + f[2] + f[3]));
779
+
780
+ min = MIN(
781
+ image[indx + 1 + u][1],
782
+ MIN(image[indx + 1 - u][1],
783
+ MIN(image[indx - 1 + u][1],
784
+ MIN(image[indx - 1 - u][1],
785
+ MIN(image[indx - 1][1],
786
+ MIN(image[indx + 1][1],
787
+ MIN(image[indx - u][1], image[indx + u][1])))))));
788
+
789
+ max = MAX(
790
+ image[indx + 1 + u][1],
791
+ MAX(image[indx + 1 - u][1],
792
+ MAX(image[indx - 1 + u][1],
793
+ MAX(image[indx - 1 - u][1],
794
+ MAX(image[indx - 1][1],
795
+ MAX(image[indx + 1][1],
796
+ MAX(image[indx - u][1], image[indx + u][1])))))));
797
+
798
+ image[indx][1] = ULIM(image[indx][1], max, min);
799
+ }
800
+ }
801
+
802
+ // FBDD (Fake Before Demosaicing Denoising)
803
+ void LibRaw::fbdd(int noiserd)
804
+ {
805
+ double(*image2)[3];
806
+ // safety net: disable for 4-color bayer or full-color images
807
+ if (colors != 3 || !filters)
808
+ return;
809
+ image2 = (double(*)[3])calloc(width * height, sizeof *image2);
810
+
811
+ border_interpolate(4);
812
+
813
+ if (noiserd > 1)
814
+ {
815
+ fbdd_green();
816
+ // dcb_color_full(image2);
817
+ dcb_color_full();
818
+ fbdd_correction();
819
+
820
+ dcb_color();
821
+ rgb_to_lch(image2);
822
+ fbdd_correction2(image2);
823
+ fbdd_correction2(image2);
824
+ lch_to_rgb(image2);
825
+ }
826
+ else
827
+ {
828
+ fbdd_green();
829
+ // dcb_color_full(image2);
830
+ dcb_color_full();
831
+ fbdd_correction();
832
+ }
833
+
834
+ free(image2);
835
+ }
836
+
837
+ // DCB demosaicing main routine
838
+ void LibRaw::dcb(int iterations, int dcb_enhance)
839
+ {
840
+
841
+ int i = 1;
842
+
843
+ float(*image2)[3];
844
+ image2 = (float(*)[3])calloc(width * height, sizeof *image2);
845
+
846
+ float(*image3)[3];
847
+ image3 = (float(*)[3])calloc(width * height, sizeof *image3);
848
+
849
+ border_interpolate(6);
850
+
851
+ dcb_hor(image2);
852
+ dcb_color2(image2);
853
+
854
+ dcb_ver(image3);
855
+ dcb_color3(image3);
856
+
857
+ dcb_decide(image2, image3);
858
+
859
+ free(image3);
860
+
861
+ dcb_copy_to_buffer(image2);
862
+
863
+ while (i <= iterations)
864
+ {
865
+ dcb_nyquist();
866
+ dcb_nyquist();
867
+ dcb_nyquist();
868
+ dcb_map();
869
+ dcb_correction();
870
+ i++;
871
+ }
872
+
873
+ dcb_color();
874
+ dcb_pp();
875
+
876
+ dcb_map();
877
+ dcb_correction2();
878
+
879
+ dcb_map();
880
+ dcb_correction();
881
+
882
+ dcb_map();
883
+ dcb_correction();
884
+
885
+ dcb_map();
886
+ dcb_correction();
887
+
888
+ dcb_map();
889
+ dcb_restore_from_buffer(image2);
890
+ dcb_color();
891
+
892
+ if (dcb_enhance)
893
+ {
894
+ dcb_refinement();
895
+ // dcb_color_full(image2);
896
+ dcb_color_full();
897
+ }
898
+
899
+ free(image2);
900
+ }