vapoursynth-bm3dhip 2.16__tar.gz

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 (298) hide show
  1. vapoursynth_bm3dhip-2.16/CMakeLists.txt +8 -0
  2. vapoursynth_bm3dhip-2.16/DEVELOPMENT.md +23 -0
  3. vapoursynth_bm3dhip-2.16/PKG-INFO +189 -0
  4. vapoursynth_bm3dhip-2.16/README.md +15 -0
  5. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/.github/workflows/linux-arm64.yml +63 -0
  6. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/.github/workflows/linux.yml +140 -0
  7. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/.github/workflows/windows.yml +234 -0
  8. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/CMakeLists.txt +28 -0
  9. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/LICENSE +339 -0
  10. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/README.md +160 -0
  11. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/cpu_source/CMakeLists.txt +31 -0
  12. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/cpu_source/cpuid.h +44 -0
  13. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/cpu_source/source.cpp +1717 -0
  14. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/hip_source/CMakeLists.txt +34 -0
  15. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/hip_source/kernel.hip.cpp +869 -0
  16. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/hip_source/source.cpp +1039 -0
  17. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/rtc_source/CMakeLists.txt +50 -0
  18. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/rtc_source/kernel.hpp +1065 -0
  19. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/rtc_source/source.cpp +1399 -0
  20. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/source/CMakeLists.txt +27 -0
  21. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/source/kernel.cu +864 -0
  22. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/source/source.cpp +1029 -0
  23. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/sycl_source/CMakeLists.txt +30 -0
  24. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/sycl_source/kernel.cpp +983 -0
  25. vapoursynth_bm3dhip-2.16/VapourSynth-BM3DCUDA/sycl_source/source.cpp +1138 -0
  26. vapoursynth_bm3dhip-2.16/pyproject.toml +67 -0
  27. vapoursynth_bm3dhip-2.16/vapoursynth/.codespellignore +6 -0
  28. vapoursynth_bm3dhip-2.16/vapoursynth/.github/workflows/codespell.yml +15 -0
  29. vapoursynth_bm3dhip-2.16/vapoursynth/.github/workflows/linux.yml +77 -0
  30. vapoursynth_bm3dhip-2.16/vapoursynth/.github/workflows/macos.yml +63 -0
  31. vapoursynth_bm3dhip-2.16/vapoursynth/.github/workflows/windows.yml +100 -0
  32. vapoursynth_bm3dhip-2.16/vapoursynth/.gitignore +49 -0
  33. vapoursynth_bm3dhip-2.16/vapoursynth/.gitmodules +0 -0
  34. vapoursynth_bm3dhip-2.16/vapoursynth/APIV4 changes.txt +110 -0
  35. vapoursynth_bm3dhip-2.16/vapoursynth/COPYING.LESSER +502 -0
  36. vapoursynth_bm3dhip-2.16/vapoursynth/ChangeLog +769 -0
  37. vapoursynth_bm3dhip-2.16/vapoursynth/MANIFEST.in +9 -0
  38. vapoursynth_bm3dhip-2.16/vapoursynth/Makefile.am +162 -0
  39. vapoursynth_bm3dhip-2.16/vapoursynth/README.md +10 -0
  40. vapoursynth_bm3dhip-2.16/vapoursynth/autogen.sh +3 -0
  41. vapoursynth_bm3dhip-2.16/vapoursynth/configure.ac +371 -0
  42. vapoursynth_bm3dhip-2.16/vapoursynth/cython_build.bat +12 -0
  43. vapoursynth_bm3dhip-2.16/vapoursynth/doc/api/vapoursynth.h.rst +2635 -0
  44. vapoursynth_bm3dhip-2.16/vapoursynth/doc/api/vshelper.h.rst +204 -0
  45. vapoursynth_bm3dhip-2.16/vapoursynth/doc/api/vsscript.h.rst +330 -0
  46. vapoursynth_bm3dhip-2.16/vapoursynth/doc/apireference.rst +118 -0
  47. vapoursynth_bm3dhip-2.16/vapoursynth/doc/applications.rst +25 -0
  48. vapoursynth_bm3dhip-2.16/vapoursynth/doc/conf.py +252 -0
  49. vapoursynth_bm3dhip-2.16/vapoursynth/doc/custom/css/custom.css +19 -0
  50. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/assumesamplerate.rst +5 -0
  51. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/audiogain.rst +12 -0
  52. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/audioloop.rst +11 -0
  53. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/audiomix.rst +38 -0
  54. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/audioreverse.rst +10 -0
  55. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/audiosplice.rst +12 -0
  56. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/audiotrim.rst +10 -0
  57. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/blankaudio.rst +20 -0
  58. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/setaudiocache.rst +7 -0
  59. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/shufflechannels.rst +48 -0
  60. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/audio/splitchannels.rst +8 -0
  61. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/general/loadallplugins.rst +19 -0
  62. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/general/loadplugin.rst +26 -0
  63. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/general/loadpluginavs.rst +44 -0
  64. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/general/setmaxcpu.rst +14 -0
  65. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/addborders.rst +9 -0
  66. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/assumefps.rst +16 -0
  67. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/averageframes.rst +21 -0
  68. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/binarize_binarizemask.rst +34 -0
  69. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/blankclip.rst +18 -0
  70. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/boxblur.rst +8 -0
  71. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/cliptoprop.rst +15 -0
  72. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/convolution.rst +84 -0
  73. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/copyframeprops.rst +10 -0
  74. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/crop_cropabs.rst +20 -0
  75. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/deflate_inflate.rst +44 -0
  76. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/deleteframes.rst +11 -0
  77. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/doubleweave.rst +23 -0
  78. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/duplicateframes.rst +11 -0
  79. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/expr.rst +118 -0
  80. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/flipvertical_fliphorizontal.rst +8 -0
  81. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/frameeval.rst +77 -0
  82. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/freezeframes.rst +18 -0
  83. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/interleave.rst +19 -0
  84. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/invert_invertmask.rst +21 -0
  85. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/levels.rst +39 -0
  86. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/limiter.rst +23 -0
  87. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/loop.rst +11 -0
  88. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/lut.rst +39 -0
  89. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/lut2.rst +40 -0
  90. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/makediff.rst +15 -0
  91. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/maskedmerge.rst +35 -0
  92. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/median.rst +19 -0
  93. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/merge.rst +29 -0
  94. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/mergediff.rst +15 -0
  95. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/minimum_maximum.rst +69 -0
  96. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/modifyframe.rst +49 -0
  97. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/pemverifier.rst +14 -0
  98. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/planestats.rst +15 -0
  99. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/premultiply.rst +14 -0
  100. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/prewitt_sobel.rst +26 -0
  101. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/proptoclip.rst +12 -0
  102. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/removeframeprops.rst +9 -0
  103. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/resize.rst +278 -0
  104. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/reverse.rst +10 -0
  105. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/selectevery.rst +31 -0
  106. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/separatefields.rst +20 -0
  107. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/setfieldbased.rst +25 -0
  108. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/setframeprop.rst +20 -0
  109. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/setframeprops.rst +13 -0
  110. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/setvideocache.rst +27 -0
  111. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/shuffleplanes.rst +48 -0
  112. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/splice.rst +12 -0
  113. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/splitplanes.rst +8 -0
  114. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/stackvertical_stackhorizontal.rst +12 -0
  115. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/text/clipinfo.rst +9 -0
  116. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/text/coreinfo.rst +10 -0
  117. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/text/framenum.rst +9 -0
  118. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/text/frameprops.rst +10 -0
  119. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/text/text.rst +23 -0
  120. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/transpose.rst +18 -0
  121. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/trim.rst +17 -0
  122. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions/video/turn180.rst +7 -0
  123. vapoursynth_bm3dhip-2.16/vapoursynth/doc/functions.rst +38 -0
  124. vapoursynth_bm3dhip-2.16/vapoursynth/doc/gettingstarted.rst +42 -0
  125. vapoursynth_bm3dhip-2.16/vapoursynth/doc/index.rst +23 -0
  126. vapoursynth_bm3dhip-2.16/vapoursynth/doc/installation.rst +334 -0
  127. vapoursynth_bm3dhip-2.16/vapoursynth/doc/introduction.rst +36 -0
  128. vapoursynth_bm3dhip-2.16/vapoursynth/doc/make.bat +190 -0
  129. vapoursynth_bm3dhip-2.16/vapoursynth/doc/output.rst +125 -0
  130. vapoursynth_bm3dhip-2.16/vapoursynth/doc/pythonreference.rst +1035 -0
  131. vapoursynth_bm3dhip-2.16/vapoursynth/docs_build.bat +4 -0
  132. vapoursynth_bm3dhip-2.16/vapoursynth/include/VSConstants4.h +93 -0
  133. vapoursynth_bm3dhip-2.16/vapoursynth/include/VSHelper.h +174 -0
  134. vapoursynth_bm3dhip-2.16/vapoursynth/include/VSHelper4.h +224 -0
  135. vapoursynth_bm3dhip-2.16/vapoursynth/include/VSScript.h +85 -0
  136. vapoursynth_bm3dhip-2.16/vapoursynth/include/VSScript4.h +97 -0
  137. vapoursynth_bm3dhip-2.16/vapoursynth/include/VapourSynth.h +359 -0
  138. vapoursynth_bm3dhip-2.16/vapoursynth/include/VapourSynth4.h +484 -0
  139. vapoursynth_bm3dhip-2.16/vapoursynth/include/cython/vapoursynth.h +52 -0
  140. vapoursynth_bm3dhip-2.16/vapoursynth/include/cython/vapoursynth_api.h +144 -0
  141. vapoursynth_bm3dhip-2.16/vapoursynth/installer/CodeDependencies.iss +755 -0
  142. vapoursynth_bm3dhip-2.16/vapoursynth/installer/MANIFEST.in +2 -0
  143. vapoursynth_bm3dhip-2.16/vapoursynth/installer/make installers.bat +2 -0
  144. vapoursynth_bm3dhip-2.16/vapoursynth/installer/make portable.bat +106 -0
  145. vapoursynth_bm3dhip-2.16/vapoursynth/installer/setup.py +93 -0
  146. vapoursynth_bm3dhip-2.16/vapoursynth/installer/template.vpy +1 -0
  147. vapoursynth_bm3dhip-2.16/vapoursynth/installer/vs-detect-python.bat +10 -0
  148. vapoursynth_bm3dhip-2.16/vapoursynth/installer/vsinstaller.iss +523 -0
  149. vapoursynth_bm3dhip-2.16/vapoursynth/m4/ax_pthread.m4 +507 -0
  150. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/AVFS/AVFS.vcxproj +208 -0
  151. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/AVFS/AVFS.vcxproj.filters +101 -0
  152. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/AvsCompat/AvsCompat.vcxproj +183 -0
  153. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/AvsCompat/AvsCompat.vcxproj.filters +42 -0
  154. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/Core/Core.vcxproj +275 -0
  155. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/Core/Core.vcxproj.filters +228 -0
  156. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/ExprDebugger/ExprDebugger.vcxproj +152 -0
  157. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/ExprDebugger/ExprDebugger.vcxproj.filters +25 -0
  158. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSPipe/VSPipe.vcxproj +179 -0
  159. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSPipe/VSPipe.vcxproj.filters +57 -0
  160. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSScript/VSScript.vcxproj +174 -0
  161. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSScript/VSScript.vcxproj.filters +39 -0
  162. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSScriptPython38/VSScriptPython38.vcxproj +173 -0
  163. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSScriptPython38/VSScriptPython38.vcxproj.filters +36 -0
  164. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSVFW/VSVFW.vcxproj +175 -0
  165. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VSVFW/VSVFW.vcxproj.filters +48 -0
  166. vapoursynth_bm3dhip-2.16/vapoursynth/msvc_project/VapourSynth.sln +149 -0
  167. vapoursynth_bm3dhip-2.16/vapoursynth/pc/vapoursynth-script.pc.in +14 -0
  168. vapoursynth_bm3dhip-2.16/vapoursynth/pc/vapoursynth.pc.in +13 -0
  169. vapoursynth_bm3dhip-2.16/vapoursynth/python-requirements.txt +6 -0
  170. vapoursynth_bm3dhip-2.16/vapoursynth/sdk/filter_skeleton.c +58 -0
  171. vapoursynth_bm3dhip-2.16/vapoursynth/sdk/invert_example.c +173 -0
  172. vapoursynth_bm3dhip-2.16/vapoursynth/sdk/vsscript_example.c +117 -0
  173. vapoursynth_bm3dhip-2.16/vapoursynth/setup.py +110 -0
  174. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/assertive.cpp +16 -0
  175. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/assertive.h +70 -0
  176. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfs.cpp +810 -0
  177. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfs.h +82 -0
  178. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfs.rc +45 -0
  179. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfsavi2.cpp +1715 -0
  180. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfsincludes.h +32 -0
  181. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfspfm.cpp +1653 -0
  182. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfspfm.h +64 -0
  183. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/avfswav.cpp +266 -0
  184. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/files.cpp +346 -0
  185. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/files.h +46 -0
  186. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/pfmapi.h +291 -0
  187. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/pfmenum.h +131 -0
  188. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/pfmformatter.h +54 -0
  189. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/pfmmarshaller.h +493 -0
  190. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/pfmprefix.h +46 -0
  191. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/pfmprotocol.h +552 -0
  192. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/ptblob.h +41 -0
  193. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/ptfactory1.h +221 -0
  194. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/ptpin.h +74 -0
  195. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/include/ptpublic.h +249 -0
  196. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/ss.cpp +156 -0
  197. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/ss.h +14 -0
  198. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/videoinfoadapter.h +203 -0
  199. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/vsfs.cpp +576 -0
  200. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/vsfs.h +70 -0
  201. vapoursynth_bm3dhip-2.16/vapoursynth/src/avfs/xxfs.h +53 -0
  202. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avisynth.h +1329 -0
  203. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avisynth_compat.cpp +1365 -0
  204. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avisynth_compat.h +231 -0
  205. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/alignment.h +134 -0
  206. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/capi.h +66 -0
  207. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/config.h +70 -0
  208. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/cpuid.h +80 -0
  209. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/minmax.h +54 -0
  210. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/types.h +57 -0
  211. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/avs/win.h +51 -0
  212. vapoursynth_bm3dhip-2.16/vapoursynth/src/avisynth/interface.cpp +1077 -0
  213. vapoursynth_bm3dhip-2.16/vapoursynth/src/common/fourcc.cpp +263 -0
  214. vapoursynth_bm3dhip-2.16/vapoursynth/src/common/fourcc.h +40 -0
  215. vapoursynth_bm3dhip-2.16/vapoursynth/src/common/vsutf16.h +43 -0
  216. vapoursynth_bm3dhip-2.16/vapoursynth/src/common/wave.cpp +163 -0
  217. vapoursynth_bm3dhip-2.16/vapoursynth/src/common/wave.h +82 -0
  218. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/VapourSynth3.h +281 -0
  219. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/audiofilters.cpp +1062 -0
  220. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/averageframesfilter.cpp +304 -0
  221. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/boxblurfilter.cpp +404 -0
  222. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/cpufeatures.cpp +121 -0
  223. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/cpufeatures.h +59 -0
  224. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/expr.cpp +1536 -0
  225. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/expr.h +110 -0
  226. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/jitasm.h +9723 -0
  227. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/jitcompiler.cpp +85 -0
  228. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/jitcompiler.h +81 -0
  229. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/jitcompiler_x86.cpp +1686 -0
  230. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/expr/main.cpp +85 -0
  231. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/exprfilter.cpp +373 -0
  232. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/filtershared.h +181 -0
  233. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/filtersharedcpp.h +146 -0
  234. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/genericfilters.cpp +1110 -0
  235. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/internalfilters.h +39 -0
  236. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/intrusive_ptr.h +90 -0
  237. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/average.cpp +89 -0
  238. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/average.h +28 -0
  239. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/cpulevel.cpp +57 -0
  240. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/cpulevel.h +51 -0
  241. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/generic.cpp +700 -0
  242. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/generic.h +173 -0
  243. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/merge.c +368 -0
  244. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/merge.h +130 -0
  245. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/planestats.c +174 -0
  246. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/planestats.h +83 -0
  247. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/transpose.c +58 -0
  248. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/transpose.h +181 -0
  249. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/average_sse2.c +282 -0
  250. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/generic_avx2.cpp +1239 -0
  251. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/generic_sse2.cpp +1265 -0
  252. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/merge_avx2.c +430 -0
  253. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/merge_sse2.c +441 -0
  254. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/planestats_avx2.c +361 -0
  255. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/planestats_sse2.c +349 -0
  256. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/kernel/x86/transpose_sse2.c +182 -0
  257. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/lutfilters.cpp +538 -0
  258. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/memoryuse.cpp +279 -0
  259. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/memoryuse.h +97 -0
  260. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/mergefilters.cpp +685 -0
  261. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/reorderfilters.cpp +710 -0
  262. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/settings.cpp +151 -0
  263. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/settings.h +6 -0
  264. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/simplefilters.cpp +2492 -0
  265. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/ter-116n.h +4804 -0
  266. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/ter-116n.ofl.txt +94 -0
  267. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/textfilter.cpp +765 -0
  268. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/version.h +54 -0
  269. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vsapi.cpp +1311 -0
  270. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vscore.cpp +2415 -0
  271. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vscore.h +1125 -0
  272. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vslog.cpp +100 -0
  273. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vslog.h +42 -0
  274. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vsresize.cpp +905 -0
  275. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/vsthreadpool.cpp +408 -0
  276. vapoursynth_bm3dhip-2.16/vapoursynth/src/core/x86utils.h +25 -0
  277. vapoursynth_bm3dhip-2.16/vapoursynth/src/cython/vapoursynth.pxd +390 -0
  278. vapoursynth_bm3dhip-2.16/vapoursynth/src/cython/vapoursynth.pyx +3111 -0
  279. vapoursynth_bm3dhip-2.16/vapoursynth/src/cython/vsconstants.pxd +83 -0
  280. vapoursynth_bm3dhip-2.16/vapoursynth/src/cython/vsscript.pxd +25 -0
  281. vapoursynth_bm3dhip-2.16/vapoursynth/src/cython/vsscript_internal.pxd +31 -0
  282. vapoursynth_bm3dhip-2.16/vapoursynth/src/vfw/vsvfw.cpp +956 -0
  283. vapoursynth_bm3dhip-2.16/vapoursynth/src/vfw/vsvfw.def +5 -0
  284. vapoursynth_bm3dhip-2.16/vapoursynth/src/vsscript/vsscript.cpp +355 -0
  285. vapoursynth_bm3dhip-2.16/vapoursynth/src/vsscript/vsscript_internal.h +35 -0
  286. vapoursynth_bm3dhip-2.16/vapoursynth/test/async_test.py +106 -0
  287. vapoursynth_bm3dhip-2.16/vapoursynth/test/expr_compiler/compiler_test.py +22 -0
  288. vapoursynth_bm3dhip-2.16/vapoursynth/test/expr_compiler/havs_exprs.txt +29 -0
  289. vapoursynth_bm3dhip-2.16/vapoursynth/test/expr_compiler/muvs_exprs.txt +40 -0
  290. vapoursynth_bm3dhip-2.16/vapoursynth/test/expr_compiler/reference_output.txt +1062 -0
  291. vapoursynth_bm3dhip-2.16/vapoursynth/test/expr_test.py +391 -0
  292. vapoursynth_bm3dhip-2.16/vapoursynth/test/filter_test.py +24 -0
  293. vapoursynth_bm3dhip-2.16/vapoursynth/test/log_test.py +21 -0
  294. vapoursynth_bm3dhip-2.16/vapoursynth/test/lut_test.py +70 -0
  295. vapoursynth_bm3dhip-2.16/vapoursynth/test/prop_dict_test.py +101 -0
  296. vapoursynth_bm3dhip-2.16/vapoursynth/test/test.py +239 -0
  297. vapoursynth_bm3dhip-2.16/vapoursynth/test/weakref_test.py +31 -0
  298. vapoursynth_bm3dhip-2.16/vapoursynth/test/zimgtest.py +49 -0
@@ -0,0 +1,8 @@
1
+ cmake_minimum_required(VERSION 3.20)
2
+ project(BM3DCUDA_Package)
3
+
4
+ # Define the include path relative to this wrapper
5
+ set(VAPOURSYNTH_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/vapoursynth/include" CACHE PATH "Path to VapourSynth headers")
6
+
7
+ # Add the submodule
8
+ add_subdirectory(VapourSynth-BM3DCUDA)
@@ -0,0 +1,23 @@
1
+ # Links & Reminder Notes
2
+
3
+ ## Compatibility Matrix
4
+
5
+ https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html#gpu-compatibility
6
+
7
+ ## How to install via package manager
8
+
9
+ https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/install-methods/package-manager-index.html
10
+
11
+ Currently targetting RHEL 8 -> glic 2.28
12
+
13
+ ## GPU_TARGETS
14
+
15
+ https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.4.2/reference/system-requirements.html#supported-gpus
16
+ https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html#supported-gpus
17
+
18
+ ## HIP Versionning
19
+
20
+ - Linux has individual version available on package managers.
21
+ - Windows has an installer AMD-Software-PRO-Edition released each quarter of the year. https://www.amd.com/en/developer/resources/rocm-hub/hip-sdk.html
22
+ - 25.Q3-WinSvr2022 -> ROCm 6.4.2
23
+ - 26.Q1-Win11 -> ROCm 7.1.1
@@ -0,0 +1,189 @@
1
+ Metadata-Version: 2.4
2
+ Name: vapoursynth-bm3dhip
3
+ Version: 2.16
4
+ Summary: BM3D denoising filter for VapourSynth, implemented in HIP
5
+ Author: WolframRhodium
6
+ Maintainer-Email: =?utf-8?b?VmFyZMOr?= <ichunjo.le.terrible@gmail.com>
7
+ License-Expression: GPL-2.0-or-later
8
+ License-File: VapourSynth-BM3DCUDA/LICENSE
9
+ Project-URL: Source Code, https://github.com/WolframRhodium/VapourSynth-BM3DCUDA
10
+ Project-URL: Bug Tracker, https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/issues
11
+ Requires-Python: >=3.12
12
+ Requires-Dist: vapoursynth>=74
13
+ Description-Content-Type: text/markdown
14
+
15
+ # VapourSynth-BM3DHIP
16
+
17
+ This package contains the HIP implementation of the [VapourSynth-BM3DCUDA](https://github.com/WolframRhodium/VapourSynth-BM3DCUDA) filter.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ pip install vapoursynth-bm3dhip
23
+ ```
24
+
25
+ ---
26
+
27
+ Detailed parameter information from the parent project follows.
28
+
29
+ ---
30
+ # VapourSynth-BM3DCUDA
31
+
32
+ Copyright© 2021 WolframRhodium
33
+
34
+ BM3D denoising filter for VapourSynth, implemented in CUDA.
35
+
36
+ ## Description
37
+
38
+ - Please check [VapourSynth-BM3D](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D).
39
+
40
+ - The `_rtc` version compiles GPU code at runtime, which might runs faster than standard version at the cost of a slight overhead.
41
+
42
+ - The `cpu` version is implemented in AVX and AVX2 intrinsics, serves as a reference implementation on CPU. However, _bitwise identical_ outputs are not guaranteed across CPU and CUDA implementations.
43
+
44
+ ## Requirements
45
+
46
+ - CPU with AVX support.
47
+
48
+ - CUDA-enabled GPU(s) of [compute capability](https://developer.nvidia.com/cuda-gpus) 5.0 or higher (Maxwell+).
49
+
50
+ - GPU driver 450 or newer.
51
+
52
+ The minimum requirement on compute capability is 3.5, which requires manual compilation (specifying nvcc flag `-gencode arch=compute_35,code=sm_35`).
53
+
54
+ The `cpu` version does not require any external libraries but requires AVX2 support on CPU in addition.
55
+
56
+ ## Parameters
57
+
58
+ ```python3
59
+ {bm3dcuda, bm3dcuda_rtc, bm3dcpu}.BM3D(clip clip[, clip ref=None, float[] sigma=3.0, int[] block_step=8, int[] bm_range=9, int radius=0, int[] ps_num=2, int[] ps_range=4, bint chroma=False, int device_id=0, bool fast=True, int extractor_exp=0])
60
+ ```
61
+
62
+ - clip:
63
+
64
+ The input clip. Must be of 32 bit float format. Each plane is denoised separately if `chroma` is set to `False`. Data of unprocessed planes is undefined. Frame properties of the output clip are copied from it.
65
+
66
+ - ref:
67
+
68
+ The reference clip. Must be of the same format, width, height, number of frames as `clip`.
69
+
70
+ Used in block-matching and as the reference in empirical Wiener filtering, i.e. `bm3d.Final` / `bm3d.VFinal`:
71
+
72
+ ```python3
73
+ basic = core.{bm3dcpu, bm3dcuda, bm3dcuda_rtc}.BM3D(src, radius=0)
74
+ final = core.{bm3d...}.BM3D(src, ref=basic, radius=0)
75
+
76
+ vbasic = core.{bm3d...}.BM3D(src, radius=radius_nonzero).bm3d.VAggregate(radius=radius_nonzero)
77
+ vfinal = core.{bm3d...}.BM3D(src, ref=vbasic, radius=r).bm3d.VAggregate(radius=r)
78
+
79
+ # alternatively, using the v2 interface
80
+ basic_or_vbasic = core.{bm3dcpu, bm3dcuda, bm3dcuda_rtc}.BM3Dv2(src, radius=r)
81
+ final_or_vfinal = core.{bm3d...}.BM3Dv2(src, ref=basic_or_vbasic, radius=r)
82
+ ```
83
+
84
+ corresponds to the followings (ignoring color space handling and other differences in implementation), respectively
85
+
86
+ ```python3
87
+ basic = core.bm3d.Basic(clip)
88
+ final = core.bm3d.Final(basic, ref=basic)
89
+
90
+ vbasic = core.bm3d.VBasic(src, radius=r).bm3d.VAggregate(radius=r, sample=1)
91
+ vfinal = core.bm3d.VFinal(src, ref=vbasic, radius=r).bm3d.VAggregate(radius=r)
92
+ ```
93
+
94
+ - sigma:
95
+ The strength of denoising for each plane.
96
+
97
+ The strength is similar (but not strictly equal) as `VapourSynth-BM3D` due to differences in implementation. (coefficient normalization is not implemented, for example)
98
+
99
+ Default `[3,3,3]`.
100
+
101
+ - block_step, bm_range, radius, ps_num, ps_range:
102
+
103
+ Same as those in `VapourSynth-BM3D`.
104
+
105
+ If `chroma` is set to `True`, only the first value is in effect.
106
+
107
+ Otherwise an array of values may be specified for each plane (except `radius`).
108
+
109
+ **Note**: It is generally not recommended to take a large value of `ps_num` as current implementations do not take duplicate block-matching candidates into account during temporary searching, which may leads to regression in denoising quality. This issue is not present in `VapourSynth-BM3D`.
110
+
111
+ **Note2**: Lowering the value of "block_step" will be useful in reducing blocking artifacts at the cost of slower processing.
112
+
113
+ - chroma:
114
+
115
+ CBM3D algorithm. `clip` must be of `YUV444PS` format.
116
+
117
+ Y channel is used in block-matching of chroma channels.
118
+
119
+ Default `False`.
120
+
121
+ - device_id:
122
+
123
+ Set GPU to be used.
124
+
125
+ Default `0`.
126
+
127
+ - fast:
128
+
129
+ Multi-threaded copy between CPU and GPU at the expense of 4x memory consumption.
130
+
131
+ Default `True`.
132
+
133
+ - extractor_exp:
134
+
135
+ Used for deterministic (bitwise) output. This parameter is not present in the `cpu` version since the implementation always produces deterministic output.
136
+
137
+ [Pre-rounding](https://ieeexplore.ieee.org/document/6545904) is employed for associative floating-point summation.
138
+
139
+ The value should be a positive integer not less than 3, and may need to be higher depending on the source video and filter parameters.
140
+
141
+ Default `0`. (non-determinism)
142
+
143
+ ## Notes
144
+
145
+ - `bm3d.VAggregate` should be called after temporal filtering, as in `VapourSynth-BM3D`. Alternatively, you may use the `BM3Dv2()` interface for both spatial and temporal denoising in one step.
146
+
147
+ - The `_rtc` version has three additional experimental parameters:
148
+
149
+ - bm_error_s: (string)
150
+
151
+ Specify cost for block similarity measurement.
152
+
153
+ Currently implemented costs:
154
+ `SSD` (Sum of Squared Differences),
155
+ `SAD` (Sum of Absolute Differences),
156
+ `ZSSD` (Zero-mean SSD),
157
+ `ZSAD` (Zero-mean SAD),
158
+ `SSD/NORM`.
159
+
160
+ Default `SSD`.
161
+
162
+ - transform_2d_s/transform_1d_s: (string)
163
+
164
+ Specify type of transform.
165
+
166
+ Currently implemented transforms:
167
+ `DCT` (Discrete Cosine Transform),
168
+ `Haar` (Haar Transform),
169
+ `WHT` (Walsh–Hadamard Transform),
170
+ `Bior1.5` (transform based on a bi-orthogonal spline wavelet).
171
+
172
+ Default `DCT`.
173
+
174
+ These features are not implemented in the standard version due to performance and binary size concerns.
175
+
176
+ ## Statistics
177
+
178
+ GPU memory consumptions:
179
+
180
+ `(ref ? 4 : 3) * (chroma ? 3 : 1) * (fast ? 4 : 1) * (2 * radius + 1) * size_of_a_single_frame`
181
+
182
+ ## Compilation
183
+ - The CMake configuration of `BM3DCUDA_RTC` links to NVRTC static library by default, which requires CUDA 11.5 or later.
184
+
185
+ ```bash
186
+ cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math -Wno-deprecated-gpu-targets" -D CMAKE_CUDA_ARCHITECTURES="50;61-real;75-real;86"
187
+
188
+ cmake --build build --config Release
189
+ ```
@@ -0,0 +1,15 @@
1
+ # VapourSynth-BM3DHIP
2
+
3
+ This package contains the HIP implementation of the [VapourSynth-BM3DCUDA](https://github.com/WolframRhodium/VapourSynth-BM3DCUDA) filter.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install vapoursynth-bm3dhip
9
+ ```
10
+
11
+ ---
12
+
13
+ Detailed parameter information from the parent project follows.
14
+
15
+ ---
@@ -0,0 +1,63 @@
1
+ name: Build (Linux, ARM64)
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'CMakeLists.txt'
7
+ - 'source/*'
8
+ - 'cpu_source/*'
9
+ - 'hip_source/*'
10
+ - 'rtc_source/*'
11
+ - 'sycl_source/*'
12
+ - '.github/workflows/linux-arm64.yml'
13
+ workflow_dispatch:
14
+
15
+ jobs:
16
+ build-linux:
17
+ runs-on: ubuntu-24.04-arm
18
+ steps:
19
+ - name: Checkout repo
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+
24
+ - name: Setup Ninja
25
+ run: pip install ninja
26
+
27
+ - name: Download VapourSynth headers
28
+ run: |
29
+ wget -q -O vs.zip https://github.com/vapoursynth/vapoursynth/archive/refs/tags/R57.zip
30
+ unzip -q vs.zip
31
+ mv vapoursynth*/ vapoursynth
32
+
33
+ - name: Setup CUDA
34
+ run: |
35
+ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/cuda-keyring_1.1-1_all.deb
36
+ sudo dpkg -i cuda-keyring_1.1-1_all.deb
37
+ sudo apt-get update
38
+ sudo apt-get install -y cuda-nvcc-12-8 cuda-cudart-dev-12-8 cuda-nvrtc-dev-12-8
39
+ echo "PATH=/usr/local/cuda/bin${PATH:+:${PATH}}" >> $GITHUB_ENV
40
+ echo "CUDA_PATH=/usr/local/cuda" >> $GITHUB_ENV
41
+ echo "LD_LIBRARY_PATH=/usr/local/cuda/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" >> $GITHUB_ENV
42
+
43
+ - name: Configure (CUDA)
44
+ run: cmake -S . -B build -G Ninja -LA
45
+ -D ENABLE_CPU=OFF
46
+ -D USE_NVRTC_STATIC=ON
47
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="`pwd`/vapoursynth/include"
48
+ -D CMAKE_BUILD_TYPE=Release
49
+ -D CMAKE_CXX_FLAGS="-Wall -ffast-math"
50
+ -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets"
51
+ -D CMAKE_CUDA_ARCHITECTURES="50;61-real;70;75-real;86-real;89-real;90-real;100-real;120-real"
52
+
53
+ - name: Build (CUDA)
54
+ run: cmake --build build --verbose
55
+
56
+ - name: Install (CUDA)
57
+ run: cmake --install build --prefix artifact
58
+
59
+ - name: Upload
60
+ uses: actions/upload-artifact@v4
61
+ with:
62
+ name: VapourSynth-BM3DCUDA-Linux-ARM64
63
+ path: artifact
@@ -0,0 +1,140 @@
1
+ name: Build (Linux)
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'CMakeLists.txt'
7
+ - 'source/*'
8
+ - 'cpu_source/*'
9
+ - 'hip_source/*'
10
+ - 'rtc_source/*'
11
+ - 'sycl_source/*'
12
+ - '.github/workflows/linux.yml'
13
+ workflow_dispatch:
14
+
15
+ jobs:
16
+ build-linux:
17
+ runs-on: ubuntu-24.04
18
+ steps:
19
+ - name: Checkout repo
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+
24
+ - name: Setup Ninja
25
+ run: pip install ninja
26
+
27
+ - name: Download VapourSynth headers
28
+ run: |
29
+ wget -q -O vs.zip https://github.com/vapoursynth/vapoursynth/archive/refs/tags/R57.zip
30
+ unzip -q vs.zip
31
+ mv vapoursynth*/ vapoursynth
32
+
33
+ - name: Setup CUDA
34
+ run: |
35
+ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
36
+ sudo dpkg -i cuda-keyring_1.1-1_all.deb
37
+ sudo apt-get update
38
+ sudo apt-get install -y cuda-nvcc-12-8 cuda-cudart-dev-12-8 cuda-nvrtc-dev-12-8
39
+ echo "PATH=/usr/local/cuda/bin${PATH:+:${PATH}}" >> $GITHUB_ENV
40
+ echo "CUDA_PATH=/usr/local/cuda" >> $GITHUB_ENV
41
+ echo "LD_LIBRARY_PATH=/usr/local/cuda/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" >> $GITHUB_ENV
42
+
43
+ - name: Configure (CUDA, CPU)
44
+ run: cmake -S . -B build -G Ninja -LA
45
+ -D USE_NVRTC_STATIC=ON
46
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="`pwd`/vapoursynth/include"
47
+ -D CMAKE_BUILD_TYPE=Release
48
+ -D CMAKE_CXX_FLAGS="-Wall -ffast-math -march=x86-64-v3"
49
+ -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets"
50
+ -D CMAKE_CUDA_ARCHITECTURES="50;61-real;70;75-real;86-real;89-real;90-real;100-real;120-real"
51
+
52
+ - name: Build (CUDA, CPU)
53
+ run: cmake --build build --verbose
54
+
55
+ - name: Install (CUDA, CPU)
56
+ run: cmake --install build --prefix artifact
57
+
58
+ - name: Setup HIP
59
+ run: |
60
+ wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
61
+ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.0 jammy main" | sudo tee --append /etc/apt/sources.list.d/rocm.list
62
+ echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
63
+ sudo apt update
64
+ sudo apt install hip-runtime-amd rocm-device-libs
65
+
66
+ - name: Configure (HIP)
67
+ run: cmake -S . -B build_hip -G Ninja -LA
68
+ -D CMAKE_BUILD_TYPE=Release
69
+ -D ENABLE_CPU=OFF -D ENABLE_CUDA=OFF -D ENABLE_HIP=ON
70
+ -D CMAKE_CXX_COMPILER=/opt/rocm/bin/amdclang++
71
+ -D CMAKE_CXX_FLAGS="-Wall -ffast-math -munsafe-fp-atomics -Rpass-analysis=kernel-resource-usage"
72
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="`pwd`/vapoursynth/include"
73
+ -D HIP_DIR=/opt/rocm/lib/cmake/hip
74
+ -D AMDDeviceLibs_DIR=/opt/rocm/lib/cmake/AMDDeviceLibs
75
+ -D amd_comgr_DIR=/opt/rocm/lib/cmake/amd_comgr
76
+ -D hsa-runtime64_DIR=/opt/rocm/lib/cmake/hsa-runtime64
77
+ -D GPU_TARGETS="gfx1010;gfx1011;gfx1012;gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035;gfx1036;gfx1100;gfx1101;gfx1102;gfx1103"
78
+
79
+ - name: Build (HIP)
80
+ run: cmake --build build_hip --verbose
81
+
82
+ - name: Install (HIP)
83
+ run: cmake --install build_hip --prefix artifact
84
+
85
+ - name: Setup SYCL
86
+ if: false
87
+ run: |
88
+ wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
89
+ | gpg --dearmor \
90
+ | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
91
+
92
+ echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \
93
+ | sudo tee /etc/apt/sources.list.d/oneAPI.list
94
+
95
+ sudo apt-get update
96
+ sudo apt-get install -y intel-oneapi-dpcpp-cpp-2024.0
97
+
98
+ - name: Setup ocloc
99
+ if: false
100
+ run: |
101
+ wget -qO - https://repositories.intel.com/gpu/intel-graphics.key \
102
+ | sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
103
+
104
+ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" \
105
+ | sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
106
+
107
+ sudo apt-get update
108
+ sudo apt-get install -y intel-ocloc
109
+
110
+ ocloc compile --help
111
+
112
+ - name: Configure (SYCL)
113
+ if: false
114
+ run: |
115
+ source /opt/intel/oneapi/compiler/latest/env/vars.sh
116
+
117
+ cmake -S . -B build_sycl -G Ninja -LA \
118
+ -D CMAKE_BUILD_TYPE=Release \
119
+ -D ENABLE_CPU=OFF -D ENABLE_CUDA=OFF -D ENABLE_HIP=OFF -D ENABLE_SYCL=ON \
120
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="`pwd`/vapoursynth/include" \
121
+ -D CMAKE_CXX_COMPILER=icpx \
122
+ -D CMAKE_CXX_FLAGS="-Wall -ffast-math -march=x86-64-v3" \
123
+ -D CMAKE_SHARED_LINKER_FLAGS="-fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend=spir64_gen \"-device gen12lp,xe-hpg,xe-lpg,xe-lpgplus\""
124
+
125
+ - name: Build (SYCL)
126
+ if: false
127
+ run: |
128
+ source /opt/intel/oneapi/compiler/latest/env/vars.sh
129
+
130
+ cmake --build build_sycl --verbose
131
+
132
+ - name: Install (SYCL)
133
+ if: false
134
+ run: cmake --install build_sycl --prefix artifact
135
+
136
+ - name: Upload
137
+ uses: actions/upload-artifact@v4
138
+ with:
139
+ name: VapourSynth-BM3DCUDA-Linux
140
+ path: artifact
@@ -0,0 +1,234 @@
1
+ name: Build (Windows)
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'CMakeLists.txt'
7
+ - 'source/*'
8
+ - 'cpu_source/*'
9
+ - 'rtc_source/*'
10
+ - 'hip_source/*'
11
+ - 'sycl_source/*'
12
+ - '.github/workflows/windows.yml'
13
+ workflow_dispatch:
14
+ inputs:
15
+ tag:
16
+ description: 'which tag to upload to'
17
+ default: ''
18
+
19
+ jobs:
20
+ build-windows:
21
+ runs-on: windows-2022
22
+
23
+ defaults:
24
+ run:
25
+ shell: cmd
26
+
27
+ steps:
28
+ - name: Checkout repo
29
+ uses: actions/checkout@v4
30
+ with:
31
+ fetch-depth: 1
32
+
33
+ - name: Setup MSVC
34
+ uses: ilammy/msvc-dev-cmd@v1
35
+
36
+ - name: Setup Ninja
37
+ run: pip install ninja
38
+
39
+ - name: Download VapourSynth headers
40
+ run: |
41
+ curl -s -o vs.zip -L https://github.com/vapoursynth/vapoursynth/archive/refs/tags/R57.zip
42
+ unzip -q vs.zip
43
+ mv vapoursynth-*/ vapoursynth/
44
+
45
+ - name: Cache CUDA
46
+ id: cache-cuda
47
+ uses: actions/cache@v4
48
+ with:
49
+ path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
50
+ key: ${{ runner.os }}-cuda-13.0.1
51
+
52
+ - name: Setup CUDA
53
+ if: steps.cache-cuda.outputs.cache-hit != 'true'
54
+ run: |
55
+ curl -s -o cuda_installer.exe -L https://developer.download.nvidia.com/compute/cuda/13.0.1/network_installers/cuda_13.0.1_windows_network.exe
56
+ cuda_installer.exe -s nvcc_13.0 cudart_13.0 nvrtc_dev_13.0 crt_13.0 nvptxcompiler_13.0 nvvm_13.0
57
+
58
+ - name: Configure (CUDA)
59
+ shell: bash
60
+ run: cmake -S . -B build -G Ninja -LA
61
+ -D CMAKE_BUILD_TYPE=Release
62
+ -D ENABLE_CUDA=ON
63
+ -D ENABLE_CPU=OFF
64
+ -D USE_NVRTC_STATIC=ON
65
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="$(pwd)\vapoursynth\include"
66
+ -D CMAKE_CXX_FLAGS="/fp:fast /arch:AVX /EHsc"
67
+ -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets"
68
+ -D CMAKE_CUDA_ARCHITECTURES="75;86-real;89-real;120-real"
69
+ -D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
70
+ env:
71
+ CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0
72
+
73
+ - name: Build (CUDA)
74
+ run: cmake --build build --verbose
75
+
76
+ - name: Install (CUDA)
77
+ run: cmake --install build --prefix install
78
+
79
+ - name: Configure, build, install (CPU)
80
+ shell: bash
81
+ run: for arch in haswell skylake icelake-client alderlake znver1 znver2 znver3 znver4 znver5; do
82
+ cmake -S . -B build_cpu -G Ninja -LA
83
+ -D CMAKE_BUILD_TYPE=Release
84
+ -D ENABLE_CUDA=OFF
85
+ -D ENABLE_CPU=ON
86
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="$(pwd)\vapoursynth\include"
87
+ -D CMAKE_CXX_COMPILER="clang++.exe"
88
+ -D CMAKE_CXX_FLAGS="-mtune=${arch} -ffast-math"
89
+ -D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
90
+ && cmake --build build_cpu --verbose
91
+ && cmake --install build_cpu --prefix temp
92
+ && mv temp/bin/bm3dcpu.dll install/bin/bm3dcpu-${arch}.dll -v;
93
+ done
94
+
95
+ - name: Cache HIP
96
+ id: cache-hip
97
+ uses: actions/cache@v4
98
+ with:
99
+ path: C:\Program Files\AMD\ROCM
100
+ key: ${{ runner.os }}-rocm-6.4.2
101
+
102
+ - name: Setup HIP
103
+ if: steps.cache-hip.outputs.cache-hit != 'true'
104
+ shell: pwsh
105
+ run: |
106
+ curl -s -o hip_installer.exe -L https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-25.Q3-WinSvr2022-For-HIP.exe
107
+ Start-Process hip_installer.exe -ArgumentList '-install' -NoNewWindow -Wait
108
+
109
+ - name: Configure (HIP)
110
+ shell: bash
111
+ run: cmake -S . -B build_hip -G Ninja -LA
112
+ -D CMAKE_BUILD_TYPE=Release
113
+ -D ENABLE_CUDA=OFF
114
+ -D ENABLE_CPU=OFF
115
+ -D ENABLE_HIP=ON
116
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="$(pwd)\vapoursynth\include"
117
+ -D CMAKE_CXX_COMPILER="C:/Program Files/AMD/ROCm/6.4/bin/clang++.exe"
118
+ -D CMAKE_CXX_FLAGS="-ffast-math -munsafe-fp-atomics -Rpass-analysis=kernel-resource-usage"
119
+ -D HIP_DIR="C:/Program Files/AMD/ROCm/6.4/lib/cmake/hip"
120
+ -D HIP_PLATFORM=amd
121
+ -D GPU_TARGETS="gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx1151;gfx1200;gfx1201"
122
+ -D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
123
+
124
+ - name: Build (HIP)
125
+ run: cmake --build build_hip --verbose
126
+
127
+ - name: Install (HIP)
128
+ run: cmake --install build_hip --prefix install
129
+
130
+ - name: Cache SYCL
131
+ if: false
132
+ id: cache-sycl
133
+ uses: actions/cache@v4
134
+ with:
135
+ path: C:\Program Files (x86)\Intel\oneAPI
136
+ key: ${{ runner.os }}-dpcpp-2024.0
137
+
138
+ - name: Setup SYCL
139
+ if: false && steps.cache-sycl.outputs.cache-hit != 'true'
140
+ run: |
141
+ curl -J -o dpcpp_installer.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/94e15cb5-4bcc-4fdd-91cf-0f819a54e42e/w_dpcpp-cpp-compiler_p_2024.0.2.28_offline.exe
142
+ dpcpp_installer -s -a -s --eula accept
143
+
144
+ - name: Setup ocloc (Gen12+)
145
+ if: false
146
+ shell: pwsh
147
+ run: |
148
+ $env:PATH = "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\lib\ocloc;$env:PATH"
149
+ "PATH=$env:PATH" | Out-File -Append -FilePath $env:GITHUB_ENV
150
+
151
+ - name: Configure (SYCL, Gen12+)
152
+ if: false
153
+ run: |
154
+ ocloc compile --help
155
+
156
+ call "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\env\vars.bat"
157
+
158
+ cmake -S . -B build_sycl_gen12+ -G Ninja -LA ^
159
+ -D CMAKE_BUILD_TYPE=Release ^
160
+ -D ENABLE_CUDA=OFF ^
161
+ -D ENABLE_CPU=OFF ^
162
+ -D ENABLE_HIP=OFF ^
163
+ -D ENABLE_SYCL=ON ^
164
+ -D VAPOURSYNTH_INCLUDE_DIRECTORY="%cd%\vapoursynth\include" ^
165
+ -D CMAKE_CXX_COMPILER=icx ^
166
+ -D CMAKE_CXX_FLAGS="-ffast-math -mavx" ^
167
+ -D CMAKE_SHARED_LINKER_FLAGS="-fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend=spir64_gen \"-device gen12lp,xe-hpg\""
168
+
169
+ - name: Build (SYCL, Gen12+)
170
+ if: false
171
+ run: |
172
+ call "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\env\vars.bat"
173
+
174
+ cmake --build build_sycl_gen12+ --verbose
175
+
176
+ - name: Install (SYCL, Gen12+)
177
+ if: false
178
+ run: echo f | xcopy build_sycl_gen12+\sycl_source\bm3dsycl.dll install\bin\bm3dsycl_gen12+.dll /f
179
+
180
+ - name: Prepare for upload
181
+ run: |
182
+ mkdir artifact
183
+ copy install\bin\*.dll artifact
184
+
185
+ - name: Upload
186
+ uses: actions/upload-artifact@v4
187
+ with:
188
+ name: VapourSynth-BM3DCUDA-Windows
189
+ path: artifact
190
+
191
+ - name: Compress artifact for release
192
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.tag != ''
193
+ run: |
194
+ cd artifact
195
+
196
+ mkdir VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}
197
+ xcopy bm3dcuda.dll VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }} /f
198
+ 7z a -t7z -mx=9 ../VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}
199
+
200
+ mkdir VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}
201
+ xcopy bm3dcuda_rtc.dll VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }} /f
202
+ 7z a -t7z -mx=9 ../VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}
203
+
204
+ mkdir VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}
205
+ xcopy bm3dcpu-*.dll VapourSynth-BM3DCPU-${{ github.event.inputs.tag }} /f
206
+ 7z a -t7z -mx=9 ../VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}
207
+
208
+ mkdir VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}
209
+ xcopy bm3dhip.dll VapourSynth-BM3DHIP-${{ github.event.inputs.tag }} /f
210
+ 7z a -t7z -mx=9 ../VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}
211
+
212
+ :: mkdir VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }}
213
+ :: xcopy bm3dsycl_*.dll VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }} /f
214
+ :: 7z a -t7z -mx=9 ../VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }}
215
+
216
+ :: mkdir SYCL-Runtime-${{ github.event.inputs.tag }}
217
+ :: echo f | xcopy "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\bin\sycl6.dll" SYCL-Runtime-${{ github.event.inputs.tag }} /f
218
+ :: echo f | xcopy "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\bin\pi_*.dll" SYCL-Runtime-${{ github.event.inputs.tag }} /f /i
219
+ :: echo f | xcopy "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\redist\intel64_win\compiler\libmmd.dll" SYCL-Runtime-${{ github.event.inputs.tag }} /f
220
+ :: 7z a -t7z -mx=9 ../SYCL-Runtime-${{ github.event.inputs.tag }}.7z SYCL-Runtime-${{ github.event.inputs.tag }}
221
+
222
+ - name: Release
223
+ uses: softprops/action-gh-release@v1
224
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.tag != ''
225
+ with:
226
+ tag_name: ${{ github.event.inputs.tag }}
227
+ files: |
228
+ VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}.7z
229
+ VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}.7z
230
+ VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}.7z
231
+ VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}.7z
232
+ fail_on_unmatched_files: true
233
+ generate_release_notes: false
234
+ prerelease: true