@scrypted/libav 1.0.181 → 1.0.183

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 (339) hide show
  1. package/package.json +1 -1
  2. package/_openh264install/include/wels/codec_api.h +0 -592
  3. package/_openh264install/include/wels/codec_app_def.h +0 -820
  4. package/_openh264install/include/wels/codec_def.h +0 -216
  5. package/_openh264install/include/wels/codec_ver.h +0 -15
  6. package/_openh264install/lib/libopenh264.a +0 -0
  7. package/_openh264install/lib/pkgconfig/openh264.pc +0 -10
  8. package/openh264/.reviewboardrc +0 -3
  9. package/openh264/.travis.yml +0 -42
  10. package/openh264/CODING_STYLE +0 -8
  11. package/openh264/CONTRIBUTORS +0 -55
  12. package/openh264/LICENSE +0 -23
  13. package/openh264/Makefile +0 -408
  14. package/openh264/README.md +0 -197
  15. package/openh264/RELEASES +0 -467
  16. package/openh264/SECURITY.md +0 -16
  17. package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +0 -431
  18. package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +0 -180
  19. package/openh264/autotest/performanceTest/ios/fruitstrap +0 -0
  20. package/openh264/autotest/performanceTest/ios/iFileTransfer +0 -0
  21. package/openh264/autotest/performanceTest/ios/run_AutoTest_ios.sh +0 -193
  22. package/openh264/autotest/performanceTest/ios/uiascript.js +0 -19
  23. package/openh264/autotest/performanceTest/parsePerfData.sh +0 -107
  24. package/openh264/autotest/performanceTest/run_perfTest.sh +0 -122
  25. package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +0 -112
  26. package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +0 -167
  27. package/openh264/autotest/unitTest/run_ParseUTxml.sh +0 -70
  28. package/openh264/autotest/unitTest/run_unitTest.sh +0 -98
  29. package/openh264/build.gradle +0 -30
  30. package/openh264/code-coverage.sh +0 -6
  31. package/openh264/codec/api/meson.build +0 -1
  32. package/openh264/codec/api/wels/codec_api.h +0 -592
  33. package/openh264/codec/api/wels/codec_app_def.h +0 -820
  34. package/openh264/codec/api/wels/codec_def.h +0 -216
  35. package/openh264/codec/api/wels/codec_ver.h +0 -15
  36. package/openh264/codec/api/wels/meson.build +0 -9
  37. package/openh264/codec/common/arm/arm_arch_common_macro.S +0 -83
  38. package/openh264/codec/common/arm/copy_mb_neon.S +0 -161
  39. package/openh264/codec/common/arm/deblocking_neon.S +0 -857
  40. package/openh264/codec/common/arm/expand_picture_neon.S +0 -154
  41. package/openh264/codec/common/arm/intra_pred_common_neon.S +0 -82
  42. package/openh264/codec/common/arm/mc_neon.S +0 -2283
  43. package/openh264/codec/common/arm64/arm_aarch64_common.h +0 -85
  44. package/openh264/codec/common/arm64/arm_arch64_common_macro.S +0 -79
  45. package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +0 -202
  46. package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +0 -852
  47. package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +0 -150
  48. package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +0 -58
  49. package/openh264/codec/common/arm64/mc_aarch64_neon.S +0 -2614
  50. package/openh264/codec/common/generate_version.sh +0 -28
  51. package/openh264/codec/common/inc/WelsList.h +0 -287
  52. package/openh264/codec/common/inc/WelsLock.h +0 -97
  53. package/openh264/codec/common/inc/WelsTask.h +0 -75
  54. package/openh264/codec/common/inc/WelsTaskThread.h +0 -83
  55. package/openh264/codec/common/inc/WelsThread.h +0 -106
  56. package/openh264/codec/common/inc/WelsThreadLib.h +0 -151
  57. package/openh264/codec/common/inc/WelsThreadPool.h +0 -124
  58. package/openh264/codec/common/inc/asmdefs_mmi.h +0 -345
  59. package/openh264/codec/common/inc/copy_mb.h +0 -103
  60. package/openh264/codec/common/inc/cpu.h +0 -81
  61. package/openh264/codec/common/inc/cpu_core.h +0 -103
  62. package/openh264/codec/common/inc/crt_util_safe_x.h +0 -104
  63. package/openh264/codec/common/inc/deblocking_common.h +0 -124
  64. package/openh264/codec/common/inc/expand_pic.h +0 -107
  65. package/openh264/codec/common/inc/golomb_common.h +0 -166
  66. package/openh264/codec/common/inc/intra_pred_common.h +0 -86
  67. package/openh264/codec/common/inc/loongson_intrinsics.h +0 -1919
  68. package/openh264/codec/common/inc/ls_defines.h +0 -130
  69. package/openh264/codec/common/inc/macros.h +0 -329
  70. package/openh264/codec/common/inc/mc.h +0 -407
  71. package/openh264/codec/common/inc/measure_time.h +0 -88
  72. package/openh264/codec/common/inc/memory_align.h +0 -116
  73. package/openh264/codec/common/inc/msa_macros.h +0 -2393
  74. package/openh264/codec/common/inc/sad_common.h +0 -139
  75. package/openh264/codec/common/inc/typedefs.h +0 -86
  76. package/openh264/codec/common/inc/utils.h +0 -95
  77. package/openh264/codec/common/inc/version.h +0 -10
  78. package/openh264/codec/common/inc/version_gen.h.template +0 -6
  79. package/openh264/codec/common/inc/welsCodecTrace.h +0 -64
  80. package/openh264/codec/common/inc/wels_common_defs.h +0 -373
  81. package/openh264/codec/common/inc/wels_const_common.h +0 -63
  82. package/openh264/codec/common/loongarch/copy_mb_lsx.c +0 -194
  83. package/openh264/codec/common/loongarch/deblock_lsx.c +0 -1489
  84. package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +0 -112
  85. package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +0 -91
  86. package/openh264/codec/common/loongarch/mc_chroma_lsx.c +0 -192
  87. package/openh264/codec/common/loongarch/mc_horver_lsx.c +0 -654
  88. package/openh264/codec/common/loongarch/satd_sad_lasx.c +0 -568
  89. package/openh264/codec/common/meson.build +0 -84
  90. package/openh264/codec/common/mips/copy_mb_mmi.c +0 -477
  91. package/openh264/codec/common/mips/copy_mb_msa.c +0 -80
  92. package/openh264/codec/common/mips/deblock_mmi.c +0 -2826
  93. package/openh264/codec/common/mips/deblock_msa.c +0 -1024
  94. package/openh264/codec/common/mips/expand_picture_mmi.c +0 -673
  95. package/openh264/codec/common/mips/intra_pred_com_mmi.c +0 -548
  96. package/openh264/codec/common/mips/satd_sad_mmi.c +0 -2154
  97. package/openh264/codec/common/targets.mk +0 -136
  98. package/openh264/codec/common/x86/asm_inc.asm +0 -743
  99. package/openh264/codec/common/x86/cpuid.asm +0 -263
  100. package/openh264/codec/common/x86/dct.asm +0 -1036
  101. package/openh264/codec/common/x86/deblock.asm +0 -848
  102. package/openh264/codec/common/x86/expand_picture.asm +0 -728
  103. package/openh264/codec/common/x86/intra_pred_com.asm +0 -117
  104. package/openh264/codec/common/x86/mb_copy.asm +0 -615
  105. package/openh264/codec/common/x86/mc_chroma.asm +0 -313
  106. package/openh264/codec/common/x86/mc_luma.asm +0 -4490
  107. package/openh264/codec/common/x86/satd_sad.asm +0 -2734
  108. package/openh264/codec/common/x86/vaa.asm +0 -411
  109. package/openh264/codec/console/common/inc/read_config.h +0 -68
  110. package/openh264/codec/console/common/meson.build +0 -12
  111. package/openh264/codec/console/common/targets.mk +0 -20
  112. package/openh264/codec/console/dec/inc/d3d9_utils.h +0 -148
  113. package/openh264/codec/console/dec/meson.build +0 -15
  114. package/openh264/codec/console/dec/targets.mk +0 -20
  115. package/openh264/codec/console/enc/meson.build +0 -9
  116. package/openh264/codec/console/enc/targets.mk +0 -19
  117. package/openh264/codec/console/meson.build +0 -3
  118. package/openh264/codec/decoder/core/arm/block_add_neon.S +0 -129
  119. package/openh264/codec/decoder/core/arm/intra_pred_neon.S +0 -635
  120. package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +0 -131
  121. package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +0 -524
  122. package/openh264/codec/decoder/core/inc/au_parser.h +0 -199
  123. package/openh264/codec/decoder/core/inc/bit_stream.h +0 -62
  124. package/openh264/codec/decoder/core/inc/cabac_decoder.h +0 -111
  125. package/openh264/codec/decoder/core/inc/deblocking.h +0 -118
  126. package/openh264/codec/decoder/core/inc/dec_frame.h +0 -156
  127. package/openh264/codec/decoder/core/inc/dec_golomb.h +0 -344
  128. package/openh264/codec/decoder/core/inc/decode_mb_aux.h +0 -83
  129. package/openh264/codec/decoder/core/inc/decode_slice.h +0 -104
  130. package/openh264/codec/decoder/core/inc/decoder.h +0 -186
  131. package/openh264/codec/decoder/core/inc/decoder_context.h +0 -590
  132. package/openh264/codec/decoder/core/inc/decoder_core.h +0 -206
  133. package/openh264/codec/decoder/core/inc/error_code.h +0 -222
  134. package/openh264/codec/decoder/core/inc/error_concealment.h +0 -68
  135. package/openh264/codec/decoder/core/inc/fmo.h +0 -114
  136. package/openh264/codec/decoder/core/inc/get_intra_predictor.h +0 -191
  137. package/openh264/codec/decoder/core/inc/manage_dec_ref.h +0 -62
  138. package/openh264/codec/decoder/core/inc/mb_cache.h +0 -80
  139. package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +0 -66
  140. package/openh264/codec/decoder/core/inc/mv_pred.h +0 -195
  141. package/openh264/codec/decoder/core/inc/nal_prefix.h +0 -56
  142. package/openh264/codec/decoder/core/inc/nalu.h +0 -79
  143. package/openh264/codec/decoder/core/inc/parameter_sets.h +0 -217
  144. package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +0 -89
  145. package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +0 -137
  146. package/openh264/codec/decoder/core/inc/pic_queue.h +0 -62
  147. package/openh264/codec/decoder/core/inc/picture.h +0 -112
  148. package/openh264/codec/decoder/core/inc/rec_mb.h +0 -104
  149. package/openh264/codec/decoder/core/inc/slice.h +0 -208
  150. package/openh264/codec/decoder/core/inc/vlc_decoder.h +0 -177
  151. package/openh264/codec/decoder/core/inc/wels_common_basis.h +0 -317
  152. package/openh264/codec/decoder/core/inc/wels_const.h +0 -65
  153. package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +0 -170
  154. package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +0 -296
  155. package/openh264/codec/decoder/core/mips/dct_mmi.c +0 -786
  156. package/openh264/codec/decoder/core/x86/dct.asm +0 -72
  157. package/openh264/codec/decoder/core/x86/intra_pred.asm +0 -1456
  158. package/openh264/codec/decoder/meson.build +0 -69
  159. package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +0 -170
  160. package/openh264/codec/decoder/targets.mk +0 -115
  161. package/openh264/codec/encoder/core/arm/intra_pred_neon.S +0 -589
  162. package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +0 -735
  163. package/openh264/codec/encoder/core/arm/memory_neon.S +0 -62
  164. package/openh264/codec/encoder/core/arm/pixel_neon.S +0 -882
  165. package/openh264/codec/encoder/core/arm/reconstruct_neon.S +0 -903
  166. package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +0 -366
  167. package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +0 -505
  168. package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +0 -611
  169. package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +0 -63
  170. package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +0 -621
  171. package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +0 -717
  172. package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +0 -350
  173. package/openh264/codec/encoder/core/inc/as264_common.h +0 -138
  174. package/openh264/codec/encoder/core/inc/au_set.h +0 -152
  175. package/openh264/codec/encoder/core/inc/deblocking.h +0 -92
  176. package/openh264/codec/encoder/core/inc/decode_mb_aux.h +0 -112
  177. package/openh264/codec/encoder/core/inc/dq_map.h +0 -58
  178. package/openh264/codec/encoder/core/inc/encode_mb_aux.h +0 -199
  179. package/openh264/codec/encoder/core/inc/encoder.h +0 -148
  180. package/openh264/codec/encoder/core/inc/encoder_context.h +0 -240
  181. package/openh264/codec/encoder/core/inc/extern.h +0 -124
  182. package/openh264/codec/encoder/core/inc/get_intra_predictor.h +0 -186
  183. package/openh264/codec/encoder/core/inc/mb_cache.h +0 -141
  184. package/openh264/codec/encoder/core/inc/md.h +0 -181
  185. package/openh264/codec/encoder/core/inc/mt_defs.h +0 -91
  186. package/openh264/codec/encoder/core/inc/mv_pred.h +0 -191
  187. package/openh264/codec/encoder/core/inc/nal_encap.h +0 -143
  188. package/openh264/codec/encoder/core/inc/param_svc.h +0 -576
  189. package/openh264/codec/encoder/core/inc/parameter_sets.h +0 -181
  190. package/openh264/codec/encoder/core/inc/paraset_strategy.h +0 -310
  191. package/openh264/codec/encoder/core/inc/picture.h +0 -137
  192. package/openh264/codec/encoder/core/inc/picture_handle.h +0 -66
  193. package/openh264/codec/encoder/core/inc/rc.h +0 -284
  194. package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +0 -148
  195. package/openh264/codec/encoder/core/inc/sample.h +0 -154
  196. package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +0 -127
  197. package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +0 -92
  198. package/openh264/codec/encoder/core/inc/slice.h +0 -212
  199. package/openh264/codec/encoder/core/inc/slice_multi_threading.h +0 -97
  200. package/openh264/codec/encoder/core/inc/stat.h +0 -102
  201. package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +0 -102
  202. package/openh264/codec/encoder/core/inc/svc_enc_frame.h +0 -136
  203. package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +0 -123
  204. package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +0 -82
  205. package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +0 -212
  206. package/openh264/codec/encoder/core/inc/svc_encode_mb.h +0 -63
  207. package/openh264/codec/encoder/core/inc/svc_encode_slice.h +0 -184
  208. package/openh264/codec/encoder/core/inc/svc_mode_decision.h +0 -94
  209. package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +0 -369
  210. package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +0 -70
  211. package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +0 -67
  212. package/openh264/codec/encoder/core/inc/vlc_encoder.h +0 -92
  213. package/openh264/codec/encoder/core/inc/wels_common_basis.h +0 -160
  214. package/openh264/codec/encoder/core/inc/wels_const.h +0 -174
  215. package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +0 -300
  216. package/openh264/codec/encoder/core/inc/wels_preprocess.h +0 -251
  217. package/openh264/codec/encoder/core/inc/wels_task_base.h +0 -79
  218. package/openh264/codec/encoder/core/inc/wels_task_encoder.h +0 -142
  219. package/openh264/codec/encoder/core/inc/wels_task_management.h +0 -135
  220. package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +0 -58
  221. package/openh264/codec/encoder/core/loongarch/dct_lasx.c +0 -452
  222. package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +0 -166
  223. package/openh264/codec/encoder/core/loongarch/quant_lsx.c +0 -153
  224. package/openh264/codec/encoder/core/loongarch/sample_lasx.c +0 -87
  225. package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +0 -104
  226. package/openh264/codec/encoder/core/mips/dct_mmi.c +0 -529
  227. package/openh264/codec/encoder/core/mips/quant_mmi.c +0 -553
  228. package/openh264/codec/encoder/core/mips/score_mmi.c +0 -324
  229. package/openh264/codec/encoder/core/x86/coeff.asm +0 -695
  230. package/openh264/codec/encoder/core/x86/dct.asm +0 -108
  231. package/openh264/codec/encoder/core/x86/intra_pred.asm +0 -1129
  232. package/openh264/codec/encoder/core/x86/matrix_transpose.asm +0 -395
  233. package/openh264/codec/encoder/core/x86/memzero.asm +0 -132
  234. package/openh264/codec/encoder/core/x86/quant.asm +0 -507
  235. package/openh264/codec/encoder/core/x86/sample_sc.asm +0 -1829
  236. package/openh264/codec/encoder/core/x86/score.asm +0 -363
  237. package/openh264/codec/encoder/meson.build +0 -98
  238. package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +0 -129
  239. package/openh264/codec/encoder/targets.mk +0 -146
  240. package/openh264/codec/meson.build +0 -9
  241. package/openh264/codec/processing/interface/IWelsVP.h +0 -310
  242. package/openh264/codec/processing/meson.build +0 -71
  243. package/openh264/codec/processing/targets.mk +0 -117
  244. package/openh264/docs/doxygen/Doxyfile +0 -1865
  245. package/openh264/docs/doxygen/Home.rest +0 -25
  246. package/openh264/docs/doxygen/ISVCDecoder.rest +0 -19
  247. package/openh264/docs/doxygen/ISVCEncoder.rest +0 -16
  248. package/openh264/docs/doxygen/UsageExampleForDecoder.rest +0 -10
  249. package/openh264/docs/doxygen/UsageExampleForEncoder.rest +0 -15
  250. package/openh264/docs/doxygen2rst.py +0 -619
  251. package/openh264/gmpopenh264.info +0 -4
  252. package/openh264/gradlew +0 -172
  253. package/openh264/meson.build +0 -218
  254. package/openh264/meson_options.txt +0 -1
  255. package/openh264/module/RefCounted.h +0 -141
  256. package/openh264/module/gmp-openh264.cpp +0 -1196
  257. package/openh264/module/targets.mk +0 -14
  258. package/openh264/module/task_utils.h +0 -38
  259. package/openh264/module/task_utils.py +0 -207
  260. package/openh264/module/task_utils_generated.h +0 -2087
  261. package/openh264/openh264.def +0 -7
  262. package/openh264/openh264.pc.in +0 -10
  263. package/openh264/openh264.rc +0 -61
  264. package/openh264/openh264.rc.template +0 -61
  265. package/openh264/res/Adobe_PDF_sample_a_1024x768_50Frms.264 +0 -0
  266. package/openh264/res/BA1_FT_C.264 +0 -0
  267. package/openh264/res/BA1_Sony_D.jsv +0 -0
  268. package/openh264/res/BAMQ1_JVC_C.264 +0 -0
  269. package/openh264/res/BAMQ2_JVC_C.264 +0 -0
  270. package/openh264/res/BANM_MW_D.264 +0 -0
  271. package/openh264/res/BASQP1_Sony_C.jsv +0 -0
  272. package/openh264/res/BA_MW_D.264 +0 -0
  273. package/openh264/res/BA_MW_D_IDR_LOST.264 +0 -0
  274. package/openh264/res/BA_MW_D_P_LOST.264 +0 -0
  275. package/openh264/res/CI1_FT_B.264 +0 -0
  276. package/openh264/res/CI_MW_D.264 +0 -0
  277. package/openh264/res/CVFC1_Sony_C.jsv +0 -0
  278. package/openh264/res/CVPCMNL1_SVA_C.264 +0 -0
  279. package/openh264/res/CiscoVT2people_160x96_6fps.yuv +0 -1
  280. package/openh264/res/CiscoVT2people_320x192_12fps.yuv +0 -1
  281. package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +0 -3607
  282. package/openh264/res/Cisco_Adobe_PDF_sample_a_1024x768_CAVLC_Bframe_9.264 +0 -0
  283. package/openh264/res/Cisco_Men_whisper_640x320_CABAC_Bframe_9.264 +0 -0
  284. package/openh264/res/Cisco_Men_whisper_640x320_CAVLC_Bframe_9.264 +0 -0
  285. package/openh264/res/Error_I_P.264 +0 -0
  286. package/openh264/res/LS_SVA_D.264 +0 -0
  287. package/openh264/res/MIDR_MW_D.264 +0 -0
  288. package/openh264/res/MPS_MW_A.264 +0 -0
  289. package/openh264/res/MR1_BT_A.h264 +0 -0
  290. package/openh264/res/MR1_MW_A.264 +0 -0
  291. package/openh264/res/MR2_MW_A.264 +0 -0
  292. package/openh264/res/MR2_TANDBERG_E.264 +0 -0
  293. package/openh264/res/NL1_Sony_D.jsv +0 -0
  294. package/openh264/res/NLMQ1_JVC_C.264 +0 -0
  295. package/openh264/res/NLMQ2_JVC_C.264 +0 -0
  296. package/openh264/res/NRF_MW_E.264 +0 -0
  297. package/openh264/res/QCIF_2P_I_allIPCM.264 +0 -0
  298. package/openh264/res/SVA_BA1_B.264 +0 -0
  299. package/openh264/res/SVA_BA2_D.264 +0 -0
  300. package/openh264/res/SVA_Base_B.264 +0 -0
  301. package/openh264/res/SVA_CL1_E.264 +0 -0
  302. package/openh264/res/SVA_FM1_E.264 +0 -0
  303. package/openh264/res/SVA_NL1_B.264 +0 -0
  304. package/openh264/res/SVA_NL2_E.264 +0 -0
  305. package/openh264/res/SarVui.264 +0 -0
  306. package/openh264/res/Static.264 +0 -0
  307. package/openh264/res/Static_152_100.yuv +0 -1
  308. package/openh264/res/VID_1280x544_cabac_temporal_direct.264 +0 -0
  309. package/openh264/res/VID_1280x544_cavlc_temporal_direct.264 +0 -0
  310. package/openh264/res/VID_1280x720_cabac_temporal_direct.264 +0 -0
  311. package/openh264/res/VID_1280x720_cavlc_temporal_direct.264 +0 -0
  312. package/openh264/res/VID_1920x1080_cabac_temporal_direct.264 +0 -0
  313. package/openh264/res/VID_1920x1080_cavlc_temporal_direct.264 +0 -0
  314. package/openh264/res/Zhling_1280x720.264 +0 -0
  315. package/openh264/res/jm_1080p_allslice.264 +0 -0
  316. package/openh264/res/sps_subsetsps_bothVUI.264 +0 -0
  317. package/openh264/res/test_cif_I_CABAC_PCM.264 +0 -0
  318. package/openh264/res/test_cif_I_CABAC_slice.264 +0 -0
  319. package/openh264/res/test_cif_P_CABAC_slice.264 +0 -0
  320. package/openh264/res/test_qcif_cabac.264 +0 -0
  321. package/openh264/res/test_scalinglist_jm.264 +0 -0
  322. package/openh264/res/test_vd_1d.264 +0 -0
  323. package/openh264/res/test_vd_rc.264 +0 -0
  324. package/openh264/run_Test.sh +0 -91
  325. package/openh264/settings.gradle +0 -4
  326. package/openh264/subprojects/gtest.wrap +0 -10
  327. package/openh264/testbin/AutoBuild_Windows_VS2008.bat +0 -59
  328. package/openh264/testbin/CmdLineExample.sh +0 -7
  329. package/openh264/testbin/CmdLineReadMe +0 -22
  330. package/openh264/testbin/layer2.cfg +0 -37
  331. package/openh264/testbin/layer2_arbitrary_res.cfg +0 -37
  332. package/openh264/testbin/layer2_vd.cfg +0 -38
  333. package/openh264/testbin/layer2_vd_rc.cfg +0 -38
  334. package/openh264/testbin/welsenc.cfg +0 -71
  335. package/openh264/testbin/welsenc_arbitrary_res.cfg +0 -70
  336. package/openh264/testbin/welsenc_ios.cfg +0 -71
  337. package/openh264/testbin/welsenc_vd_1d.cfg +0 -70
  338. package/openh264/testbin/welsenc_vd_rc.cfg +0 -69
  339. package/openh264/ut.def +0 -2
@@ -1,852 +0,0 @@
1
- /*!
2
- * \copy
3
- * Copyright (c) 2013, Cisco Systems
4
- * All rights reserved.
5
- *
6
- * Redistribution and use in source and binary forms, with or without
7
- * modification, are permitted provided that the following conditions
8
- * are met:
9
- *
10
- * * Redistributions of source code must retain the above copyright
11
- * notice, this list of conditions and the following disclaimer.
12
- *
13
- * * Redistributions in binary form must reproduce the above copyright
14
- * notice, this list of conditions and the following disclaimer in
15
- * the documentation and/or other materials provided with the
16
- * distribution.
17
- *
18
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
- * POSSIBILITY OF SUCH DAMAGE.
30
- *
31
- */
32
-
33
- #ifdef HAVE_NEON_AARCH64
34
-
35
- #include "arm_arch64_common_macro.S"
36
-
37
- .macro MASK_MATRIX arg0, arg1, arg2, arg3, arg4, arg5, arg6
38
- uabd \arg6\().16b, \arg1\().16b, \arg2\().16b
39
- cmhi \arg6\().16b, \arg4\().16b, \arg6\().16b
40
-
41
- uabd \arg4\().16b, \arg0\().16b, \arg1\().16b
42
- cmhi \arg4\().16b, \arg5\().16b, \arg4\().16b
43
- and \arg6\().16b, \arg6\().16b, \arg4\().16b
44
-
45
- uabd \arg4\().16b, \arg3\().16b, \arg2\().16b
46
- cmhi \arg4\().16b, \arg5\().16b, \arg4\().16b
47
- and \arg6\().16b, \arg6\().16b, \arg4\().16b
48
- .endm
49
-
50
- .macro DIFF_LUMA_LT4_P1_Q1 arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
51
- //v0, v1, v2, v3, v17(beta), v18(-Tc0), v6(Tc0), v7(flag), v19, v20
52
- urhadd \arg8\().16b, \arg2\().16b, \arg3\().16b
53
- uhadd \arg8\().16b, \arg0\().16b, \arg8\().16b
54
- usubl \arg9\().8h, \arg8\().8b, \arg1\().8b
55
- sqxtn \arg9\().8b, \arg9\().8h
56
- usubl2 \arg8\().8h, \arg8\().16b, \arg1\().16b
57
- sqxtn2 \arg9\().16b, \arg8\().8h
58
- smax \arg8\().16b, \arg9\().16b, \arg5\().16b
59
- //
60
- smin \arg8\().16b, \arg8\().16b, \arg6\().16b
61
- uabd \arg9\().16b, \arg0\().16b, \arg2\().16b
62
- cmhi \arg9\().16b, \arg4\().16b, \arg9\().16b
63
- and \arg8\().16b, \arg8\().16b, \arg9\().16b
64
- and \arg8\().16b, \arg8\().16b, \arg7\().16b
65
- add \arg8\().16b, \arg1\().16b, \arg8\().16b
66
- abs \arg9\().16b, \arg9\().16b
67
- .endm
68
-
69
- .macro DIFF_LUMA_LT4_P0_Q0_1 arg0, arg1, arg2, arg3, arg4, arg5, arg6
70
- usubl \arg5\().8h, \arg0\().8b, \arg3\().8b
71
- usubl \arg6\().8h, \arg2\().8b, \arg1\().8b
72
- shl \arg6\().8h, \arg6\().8h, #2
73
- add \arg5\().8h, \arg5\().8h, \arg6\().8h
74
- sqrshrn \arg4\().8b, \arg5\().8h, #3
75
- .endm
76
-
77
- .macro DIFF_LUMA_LT4_P0_Q0_2 arg0, arg1, arg2, arg3, arg4, arg5, arg6
78
- usubl2 \arg5\().8h, \arg0\().16b, \arg3\().16b
79
- usubl2 \arg6\().8h, \arg2\().16b, \arg1\().16b
80
- shl \arg6\().8h, \arg6\().8h, #2
81
- add \arg5\().8h, \arg5\().8h, \arg6\().8h
82
- sqrshrn2 \arg4\().16b, \arg5\().8h, #3
83
- .endm
84
-
85
- .macro EXTRACT_DELTA_INTO_TWO_PART arg0, arg1
86
- cmge \arg1\().16b, \arg0\().16b, #0
87
- and \arg1\().16b, \arg0\().16b, \arg1\().16b
88
- sub \arg0\().16b, \arg1\().16b, \arg0\().16b
89
- .endm
90
-
91
- .macro DIFF_LUMA_EQ4_P2P1P0_1 arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
92
- uaddl \arg8\().8h, \arg1\().8b, \arg2\().8b
93
- uaddl \arg9\().8h, \arg3\().8b, \arg4\().8b
94
- add \arg9\().8h, \arg9\().8h, \arg8\().8h
95
-
96
- uaddl \arg8\().8h, \arg0\().8b, \arg1\().8b
97
- shl \arg8\().8h, \arg8\().8h, #1
98
- add \arg8\().8h, \arg9\().8h, \arg8\().8h
99
-
100
- rshrn \arg0\().8b, \arg9\().8h, #2
101
- rshrn \arg7\().8b, \arg8\().8h, #3
102
- shl \arg9\().8h, \arg9\().8h, #1
103
- usubl \arg8\().8h, \arg5\().8b, \arg1\().8b
104
- add \arg9\().8h, \arg8\().8h, \arg9\().8h
105
-
106
- uaddl \arg8\().8h, \arg2\().8b, \arg5\().8b
107
- uaddw \arg8\().8h, \arg8\().8h, \arg2\().8b
108
- uaddw \arg8\().8h, \arg8\().8h, \arg3\().8b
109
-
110
- rshrn \arg9\().8b, \arg9\().8h, #3
111
- rshrn \arg8\().8b, \arg8\().8h, #2
112
- bsl \arg6\().8b, \arg9\().8b, \arg8\().8b
113
- .endm
114
-
115
- .macro DIFF_LUMA_EQ4_P2P1P0_2 arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
116
- uaddl2 \arg8\().8h, \arg1\().16b, \arg2\().16b
117
- uaddl2 \arg9\().8h, \arg3\().16b, \arg4\().16b
118
- add \arg9\().8h, \arg9\().8h, \arg8\().8h
119
-
120
- uaddl2 \arg8\().8h, \arg0\().16b, \arg1\().16b
121
- shl \arg8\().8h, \arg8\().8h, #1
122
- add \arg8\().8h, \arg9\().8h, \arg8\().8h
123
-
124
- rshrn2 \arg0\().16b, \arg9\().8h, #2
125
- rshrn2 \arg7\().16b, \arg8\().8h, #3
126
- shl \arg9\().8h, \arg9\().8h, #1
127
- usubl2 \arg8\().8h, \arg5\().16b, \arg1\().16b
128
- add \arg9\().8h, \arg8\().8h, \arg9\().8h
129
-
130
- uaddl2 \arg8\().8h, \arg2\().16b, \arg5\().16b
131
- uaddw2 \arg8\().8h, \arg8\().8h, \arg2\().16b
132
- uaddw2 \arg8\().8h, \arg8\().8h, \arg3\().16b
133
-
134
- rshrn2 \arg9\().16b, \arg9\().8h, #3
135
- rshrn2 \arg8\().16b, \arg8\().8h, #2
136
- bsl \arg6\().16b, \arg9\().16b, \arg8\().16b
137
- .endm
138
-
139
-
140
- .macro DIFF_CHROMA_EQ4_P0Q0_1 arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7
141
- uaddl \arg4\().8h, \arg0\().8b, \arg3\().8b
142
- shl \arg4\().8h, \arg4\().8h, #1
143
- usubl \arg5\().8h, \arg1\().8b, \arg3\().8b
144
- add \arg5\().8h, \arg5\().8h, \arg4\().8h
145
- rshrn \arg6\().8b, \arg5\().8h, #2
146
- usubl \arg5\().8h, \arg2\().8b, \arg0\().8b
147
- add \arg5\().8h, \arg5\().8h, \arg4\().8h
148
- rshrn \arg7\().8b, \arg5\().8h, #2
149
- .endm
150
-
151
- .macro DIFF_CHROMA_EQ4_P0Q0_2 arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7
152
- uaddl2 \arg4\().8h, \arg0\().16b, \arg3\().16b
153
- shl \arg4\().8h, \arg4\().8h, #1
154
- usubl2 \arg5\().8h, \arg1\().16b, \arg3\().16b
155
- add \arg5\().8h, \arg5\().8h, \arg4\().8h
156
- rshrn2 \arg6\().16b, \arg5\().8h, #2
157
- usubl2 \arg5\().8h, \arg2\().16b, \arg0\().16b
158
- add \arg5\().8h, \arg5\().8h, \arg4\().8h
159
- rshrn2 \arg7\().16b, \arg5\().8h, #2
160
- .endm
161
-
162
- .macro DIFF_LUMA_EQ4_MASK arg0, arg1, arg2, arg3
163
- mov \arg3\().16b, \arg2\().16b
164
- bsl \arg3\().16b, \arg0\().16b, \arg1\().16b
165
- .endm
166
-
167
- .macro LOAD_LUMA_DATA_3 arg0, arg1, arg2, arg3, arg4, arg5, arg6
168
- ld3 {\arg0\().b, \arg1\().b, \arg2\().b} [\arg6], [x2], x1
169
- ld3 {\arg3\().b, \arg4\().b, \arg5\().b} [\arg6], [x0], x1
170
- .endm
171
-
172
- .macro LOAD_LUMA_DATA_4 arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8
173
- ld4 {\arg0\().b, \arg1\().b, \arg2\().b, \arg3\().b} [\arg8], [x3], x1
174
- ld4 {\arg4\().b, \arg5\().b, \arg6\().b, \arg7\().b} [\arg8], [x0], x1
175
- .endm
176
-
177
- .macro STORE_LUMA_DATA_4 arg0, arg1, arg2, arg3, arg4, arg5
178
- st4 {\arg0\().b, \arg1\().b, \arg2\().b, \arg3\().b} [\arg4], [x0], x1
179
- st4 {\arg0\().b, \arg1\().b, \arg2\().b, \arg3\().b} [\arg5], [x2], x1
180
- .endm
181
-
182
- .macro STORE_LUMA_DATA_3 arg0, arg1, arg2, arg3, arg4, arg5, arg6
183
- st3 {\arg0\().b, \arg1\().b, \arg2\().b} [\arg6], [x3], x1
184
- st3 {\arg3\().b, \arg4\().b, \arg5\().b} [\arg6], [x0], x1
185
- .endm
186
-
187
- .macro LOAD_CHROMA_DATA_4 arg0, arg1, arg2, arg3, arg4, arg5
188
- ld4 {\arg0\().b, \arg1\().b, \arg2\().b, \arg3\().b} [\arg5], [\arg4], x2
189
- .endm
190
-
191
- .macro STORE_CHROMA_DATA_2 arg0, arg1, arg2, arg3
192
- st2 {\arg0\().b, \arg1\().b} [\arg3], [\arg2], x2
193
- .endm
194
-
195
- .macro ZERO_JUMP_END arg0, arg1, arg2, arg3
196
- mov \arg1, \arg0\().d[0]
197
- mov \arg2, \arg0\().d[1]
198
- orr \arg1, \arg1, \arg2
199
- cbz \arg1, \arg3
200
- .endm
201
-
202
- .macro BS_NZC_CHECK arg0, arg1, arg2, arg3, arg4
203
- ld1 {v0.16b}, [\arg0]
204
- //Arrange the input data --- TOP
205
- ands x6, \arg1, #2
206
- cbz x6, bs_nzc_check_jump0
207
- sub x6, \arg0, \arg2, lsl #4
208
- sub x6, x6, \arg2, lsl #3
209
- add x6, x6, #12
210
- ld1 {v1.s} [3], [x6]
211
-
212
- bs_nzc_check_jump0:
213
- ext v1.16b, v1.16b, v0.16b, #12
214
- add \arg3\().16b, v0.16b, v1.16b
215
-
216
- // Arrange the input data --- LEFT
217
- ands x6, \arg1, #1
218
- cbz x6, bs_nzc_check_jump1
219
-
220
- sub x6, \arg0, #21
221
- add x7, x6, #4
222
- ld1 {v1.b} [12], [x6]
223
- add x6, x7, #4
224
- ld1 {v1.b} [13], [x7]
225
- add x7, x6, #4
226
- ld1 {v1.b} [14], [x6]
227
- ld1 {v1.b} [15], [x7]
228
-
229
- bs_nzc_check_jump1:
230
- ins v2.d[0], v0.d[1]
231
- zip1 v0.16b, v0.16b, v2.16b
232
- ins v2.d[0], v0.d[1]
233
- zip1 v0.16b, v0.16b, v2.16b
234
- ext v1.16b, v1.16b, v0.16b, #12
235
- add \arg4\().16b, v0.16b, v1.16b
236
- .endm
237
-
238
- .macro BS_COMPARE_MV arg0, arg1, arg2, arg3, arg4, arg5
239
- //in: \arg0,\arg1(const),\arg2(const),\arg3(const),\arg4(const); out:\arg5
240
- mov w6, #4
241
- sabd v20.8h, \arg0\().8h, \arg1\().8h
242
- sabd v21.8h, \arg1\().8h, \arg2\().8h
243
- dup \arg0\().8h, w6
244
- sabd v22.8h, \arg2\().8h, \arg3\().8h
245
- sabd v23.8h, \arg3\().8h, \arg4\().8h
246
-
247
- cmge v20.8h, v20.8h, \arg0\().8h
248
- cmge v21.8h, v21.8h, \arg0\().8h
249
- cmge v22.8h, v22.8h, \arg0\().8h
250
- cmge v23.8h, v23.8h, \arg0\().8h
251
-
252
- addp v20.8h, v20.8h, v21.8h
253
- addp v21.8h, v22.8h, v23.8h
254
-
255
- addhn \arg5\().8b, v20.8h, v20.8h
256
- addhn2 \arg5\().16b, v21.8h, v21.8h
257
- .endm
258
-
259
- .macro BS_MV_CHECK arg0, arg1, arg2, arg3, arg4, arg5, arg6
260
- ldp q0, q1, [\arg0], #32
261
- ldp q2, q3, [\arg0]
262
- sub \arg0, \arg0, #32
263
- // Arrenge the input data --- TOP
264
- ands x6, \arg1, #2
265
- cbz x6, bs_mv_check_jump0
266
- sub x6, \arg0, \arg2, lsl #6
267
- add x6, x6, #48
268
- ld1 {v4.16b}, [x6]
269
- bs_mv_check_jump0:
270
- BS_COMPARE_MV v4, v0, v1, v2, v3, \arg3
271
- // Arrange the input data --- LEFT
272
- ands x6, \arg1, #1
273
- cbz x6, bs_mv_check_jump1
274
- sub x6, \arg0, #52
275
- add x7, x6, #16
276
- ld1 {v4.s} [0], [x6]
277
- add x6, x7, #16
278
- ld1 {v4.s} [1], [x7]
279
- add x7, x6, #16
280
- ld1 {v4.s} [2], [x6]
281
- ld1 {v4.s} [3], [x7]
282
- bs_mv_check_jump1:
283
- zip1 \arg5\().4s, v0.4s, v2.4s
284
- zip2 \arg6\().4s, v0.4s, v2.4s
285
- zip1 v0.4s, v1.4s, v3.4s
286
- zip2 v2.4s, v1.4s, v3.4s
287
- zip2 v1.4s, \arg5\().4s, v0.4s
288
- zip1 v0.4s, \arg5\().4s, v0.4s
289
- zip2 v3.4s, \arg6\().4s, v2.4s
290
- zip1 v2.4s, \arg6\().4s, v2.4s
291
- BS_COMPARE_MV v4, v0, v1, v2, v3, \arg4
292
- .endm
293
-
294
- WELS_ASM_AARCH64_FUNC_BEGIN WelsNonZeroCount_AArch64_neon
295
- mov w1, #1
296
- dup v3.8b, w1
297
- ld1 {v0.8b, v1.8b, v2.8b}, [x0]
298
- umin v0.8b, v0.8b, v3.8b
299
- umin v1.8b, v1.8b, v3.8b
300
- umin v2.8b, v2.8b, v3.8b
301
- st1 {v0.8b, v1.8b, v2.8b}, [x0]
302
- WELS_ASM_AARCH64_FUNC_END
303
-
304
-
305
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockLumaLt4V_AArch64_neon //uint8_t* pPix, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* tc
306
- dup v16.16b, w2 //alpha
307
- dup v17.16b, w3 //beta
308
- SIGN_EXTENSION x1,w1
309
- add x2, x1, x1, lsl #1
310
- sub x2, x0, x2
311
- movi v23.16b, #128
312
- ld1 {v0.16b}, [x2], x1
313
- ld1 {v1.16b}, [x2], x1
314
- ld1 {v2.16b}, [x2]
315
- ld1 {v3.16b}, [x0], x1
316
- ld1 {v4.16b}, [x0], x1
317
- ld1 {v5.16b}, [x0]
318
- sub x2, x2, x1
319
- ld4r {v18.8b, v19.8b, v20.8b, v21.8b}, [x4]
320
- trn1 v18.2s, v18.2s, v19.2s
321
- trn1 v20.2s, v20.2s, v21.2s
322
- trn1 v6.2d, v18.2d, v20.2d // iTc0: 0000, 1111, 2222, 3333
323
- cmge v7.16b, v6.16b, #0 // iTc0 Flag
324
-
325
- MASK_MATRIX v1, v2, v3, v4, v16, v17, v18
326
- and v7.16b, v7.16b, v18.16b // need filter flag
327
-
328
- ZERO_JUMP_END v7, x3, x4, DeblockLumaLt4V_AArch64_neon_end
329
-
330
- eor v18.16b, v18.16b, v18.16b
331
- sub v18.16b, v18.16b, v6.16b // -iTc0: 0000, 1111, 2222, 3333
332
-
333
- DIFF_LUMA_LT4_P1_Q1 v0, v1, v2, v3, v17, v18, v6, v7, v19, v20
334
- st1 {v19.16b}, [x2], x1
335
-
336
- DIFF_LUMA_LT4_P1_Q1 v5, v4, v3, v2, v17, v18, v6, v7, v21, v22
337
-
338
- abs v20.16b, v20.16b
339
- abs v22.16b, v22.16b
340
- add v6.16b, v6.16b, v20.16b
341
- add v6.16b, v6.16b, v22.16b
342
- eor v18.16b, v18.16b, v18.16b
343
- sub v18.16b, v18.16b, v6.16b
344
-
345
- DIFF_LUMA_LT4_P0_Q0_1 v1, v2, v3, v4, v19, v20, v22
346
- DIFF_LUMA_LT4_P0_Q0_2 v1, v2, v3, v4, v19, v20, v22
347
-
348
- smax v19.16b, v19.16b, v18.16b
349
- smin v19.16b, v19.16b, v6.16b
350
- and v19.16b, v19.16b, v7.16b
351
-
352
- EXTRACT_DELTA_INTO_TWO_PART v19, v20
353
- uqadd v2.16b, v2.16b, v20.16b
354
- uqsub v2.16b, v2.16b, v19.16b
355
- st1 {v2.16b}, [x2], x1
356
- uqsub v3.16b, v3.16b, v20.16b
357
- uqadd v3.16b, v3.16b, v19.16b
358
- st1 {v3.16b}, [x2], x1
359
- st1 {v21.16b}, [x2]
360
- DeblockLumaLt4V_AArch64_neon_end:
361
- WELS_ASM_AARCH64_FUNC_END
362
-
363
-
364
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockLumaEq4V_AArch64_neon
365
- dup v16.16b, w2 //alpha
366
- dup v17.16b, w3 //beta
367
- SIGN_EXTENSION x1,w1
368
- sub x3, x0, x1, lsl #2
369
- ld1 {v0.16b}, [x3], x1
370
- ld1 {v4.16b}, [x0], x1
371
- ld1 {v1.16b}, [x3], x1
372
- ld1 {v5.16b}, [x0], x1
373
- ld1 {v2.16b}, [x3], x1
374
- ld1 {v6.16b}, [x0], x1
375
- ld1 {v3.16b}, [x3]
376
- ld1 {v7.16b}, [x0]
377
-
378
- sub x3, x3, x1, lsl #1
379
- MASK_MATRIX v2, v3, v4, v5, v16, v17, v18
380
- lsr w2, w2, #2
381
- add w2, w2, #2
382
- dup v16.16b, w2 //((alpha >> 2) + 2)
383
- uabd v19.16b, v3.16b, v4.16b
384
- cmhi v20.16b, v16.16b, v19.16b //iDetaP0Q0 < ((iAlpha >> 2) + 2)
385
-
386
- uabd v21.16b, v1.16b, v3.16b
387
- cmhi v21.16b, v17.16b, v21.16b //bDetaP2P0
388
- and v21.16b, v21.16b, v20.16b //(iDetaP0Q0 < ((iAlpha >> 2) + 2))&&bDetaP2P0
389
-
390
- uabd v22.16b, v6.16b, v4.16b
391
- cmhi v22.16b, v17.16b, v22.16b //bDetaQ2Q0
392
- and v22.16b, v22.16b, v20.16b //(iDetaP0Q0 < ((iAlpha >> 2) + 2))&&bDetaQ2Q0
393
- and v20.16b, v20.16b, v18.16b //(iDetaP0Q0 < iAlpha) && bDetaP1P0 && bDetaQ1Q0&&(iDetaP0Q0 < ((iAlpha >> 2) + 2))
394
-
395
- mov v23.16b, v21.16b
396
- mov v24.16b, v21.16b
397
-
398
- mov v25.16b, v0.16b
399
- DIFF_LUMA_EQ4_P2P1P0_1 v0, v1, v2, v3, v4, v5, v23, v19, v17, v16
400
- DIFF_LUMA_EQ4_P2P1P0_2 v25, v1, v2, v3, v4, v5, v24, v19, v17, v16
401
- ins v0.d[1], v25.d[1]
402
- ins v23.d[1], v24.d[1]
403
- and v21.16b, v20.16b, v21.16b
404
- DIFF_LUMA_EQ4_MASK v19, v1, v21, v17
405
- st1 {v17.16b}, [x3], x1
406
- DIFF_LUMA_EQ4_MASK v0, v2, v21, v17
407
- st1 {v17.16b}, [x3], x1
408
- DIFF_LUMA_EQ4_MASK v23, v3, v18, v17
409
- st1 {v17.16b}, [x3], x1
410
-
411
-
412
- mov v23.16b, v22.16b
413
- mov v24.16b, v22.16b
414
- mov v25.16b, v7.16b
415
- DIFF_LUMA_EQ4_P2P1P0_1 v7, v6, v5, v4, v3, v2, v23, v19, v17, v16
416
- DIFF_LUMA_EQ4_P2P1P0_2 v25, v6, v5, v4, v3, v2, v24, v19, v17, v16
417
- ins v7.d[1], v25.d[1]
418
- ins v23.d[1], v24.d[1]
419
- and v22.16b, v20.16b, v22.16b
420
- DIFF_LUMA_EQ4_MASK v23, v4, v18, v17
421
- st1 {v17.16b}, [x3], x1
422
- DIFF_LUMA_EQ4_MASK v7, v5, v22, v17
423
- st1 {v17.16b}, [x3], x1
424
- DIFF_LUMA_EQ4_MASK v19, v6, v22, v17
425
- st1 {v17.16b}, [x3], x1
426
- DeblockLumaEq4V_AArch64_neon_end:
427
- WELS_ASM_AARCH64_FUNC_END
428
-
429
-
430
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockLumaLt4H_AArch64_neon //uint8_t* pPix, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* tc
431
- dup v16.16b, w2 //alpha
432
- dup v17.16b, w3 //beta
433
- sub x2, x0, #3
434
- movi v23.16b, #128
435
- SIGN_EXTENSION x1,w1
436
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 0
437
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 1
438
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 2
439
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 3
440
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 4
441
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 5
442
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 6
443
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 7
444
-
445
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 8
446
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 9
447
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 10
448
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 11
449
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 12
450
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 13
451
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 14
452
- LOAD_LUMA_DATA_3 v0, v1, v2, v3, v4, v5, 15
453
-
454
- sub x0, x0, x1, lsl #4
455
-
456
- ld4r {v18.8b, v19.8b, v20.8b, v21.8b}, [x4]
457
- trn1 v18.2s, v18.2s, v19.2s
458
- trn1 v20.2s, v20.2s, v21.2s
459
- trn1 v6.2d, v18.2d, v20.2d // iTc0: 0000, 1111, 2222, 3333
460
- cmge v7.16b, v6.16b, #0 // iTc0 Flag
461
-
462
- MASK_MATRIX v1, v2, v3, v4, v16, v17, v18
463
- and v7.16b, v7.16b, v18.16b // need filter flag
464
-
465
- ZERO_JUMP_END v7, x3, x4, DeblockLumaLt4H_AArch64_neon_end
466
-
467
- eor v18.16b, v18.16b, v18.16b
468
- sub v18.16b, v18.16b, v6.16b // -iTc0: 0000, 1111, 2222, 3333
469
-
470
- DIFF_LUMA_LT4_P1_Q1 v0, v1, v2, v3, v17, v18, v6, v7, v19, v20 //Use Tmp v23,v24
471
- mov v25.16b, v19.16b
472
-
473
- DIFF_LUMA_LT4_P1_Q1 v5, v4, v3, v2, v17, v18, v6, v7, v21, v22 //Use Tmp v23,v24
474
-
475
- abs v20.16b, v20.16b
476
- abs v22.16b, v22.16b
477
- add v6.16b, v6.16b, v20.16b
478
- add v6.16b, v6.16b, v22.16b
479
- eor v18.16b, v18.16b, v18.16b
480
- sub v18.16b, v18.16b, v6.16b
481
-
482
- DIFF_LUMA_LT4_P0_Q0_1 v1, v2, v3, v4, v19, v20, v22
483
- DIFF_LUMA_LT4_P0_Q0_2 v1, v2, v3, v4, v19, v20, v22
484
-
485
- smax v19.16b, v19.16b, v18.16b
486
- smin v19.16b, v19.16b, v6.16b
487
- and v19.16b, v19.16b, v7.16b
488
-
489
- EXTRACT_DELTA_INTO_TWO_PART v19, v20
490
- uqadd v2.16b, v2.16b, v20.16b
491
- uqsub v2.16b, v2.16b, v19.16b
492
- mov v26.16b, v2.16b
493
- uqsub v3.16b, v3.16b, v20.16b
494
- uqadd v3.16b, v3.16b, v19.16b
495
- mov v27.16b, v3.16b
496
- mov v28.16b, v21.16b
497
-
498
- sub x0, x0, #2
499
- add x2, x0, x1
500
- lsl x1, x1, #1
501
-
502
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 0, 1
503
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 2, 3
504
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 4, 5
505
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 6, 7
506
-
507
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 8, 9
508
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 10, 11
509
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 12, 13
510
- STORE_LUMA_DATA_4 v25, v26, v27, v28, 14, 15
511
- DeblockLumaLt4H_AArch64_neon_end:
512
- WELS_ASM_AARCH64_FUNC_END
513
-
514
-
515
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockLumaEq4H_AArch64_neon
516
- dup v16.16b, w2 //alpha
517
- dup v17.16b, w3 //beta
518
- sub x3, x0, #4
519
- SIGN_EXTENSION x1,w1
520
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 0
521
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 1
522
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 2
523
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 3
524
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 4
525
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 5
526
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 6
527
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 7
528
-
529
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 8
530
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 9
531
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 10
532
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 11
533
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 12
534
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 13
535
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 14
536
- LOAD_LUMA_DATA_4 v0, v1, v2, v3, v4, v5, v6, v7, 15
537
-
538
- sub x0, x0, x1, lsl #4
539
- sub x3, x0, #3
540
- MASK_MATRIX v2, v3, v4, v5, v16, v17, v18
541
-
542
- ZERO_JUMP_END v18, x4, x5, DeblockLumaEq4H_AArch64_neon_end
543
-
544
- lsr w2, w2, #2
545
- add w2, w2, #2
546
- dup v16.16b, w2 //((alpha >> 2) + 2)
547
- uabd v19.16b, v3.16b, v4.16b
548
- cmhi v20.16b, v16.16b, v19.16b //iDetaP0Q0 < ((iAlpha >> 2) + 2)
549
-
550
- uabd v21.16b, v1.16b, v3.16b
551
- cmhi v21.16b, v17.16b, v21.16b //bDetaP2P0
552
- and v21.16b, v21.16b, v20.16b //(iDetaP0Q0 < ((iAlpha >> 2) + 2))&&bDetaP2P0
553
-
554
- uabd v22.16b, v6.16b, v4.16b
555
- cmhi v22.16b, v17.16b, v22.16b //bDetaQ2Q0
556
- and v22.16b, v22.16b, v20.16b //(iDetaP0Q0 < ((iAlpha >> 2) + 2))&&bDetaQ2Q0
557
- and v20.16b, v20.16b, v18.16b //(iDetaP0Q0 < iAlpha) && bDetaP1P0 && bDetaQ1Q0&&(iDetaP0Q0 < ((iAlpha >> 2) + 2))
558
-
559
- mov v23.16b, v21.16b
560
- mov v24.16b, v21.16b
561
-
562
- mov v25.16b, v0.16b
563
- DIFF_LUMA_EQ4_P2P1P0_1 v0, v1, v2, v3, v4, v5, v23, v19, v17, v16
564
- DIFF_LUMA_EQ4_P2P1P0_2 v25, v1, v2, v3, v4, v5, v24, v19, v17, v16
565
- ins v0.d[1], v25.d[1]
566
- ins v23.d[1], v24.d[1]
567
- and v21.16b, v20.16b, v21.16b
568
- DIFF_LUMA_EQ4_MASK v19, v1, v21, v17
569
- mov v26.16b, v17.16b
570
- DIFF_LUMA_EQ4_MASK v0, v2, v21, v17
571
- mov v27.16b, v17.16b
572
- DIFF_LUMA_EQ4_MASK v23, v3, v18, v17
573
- mov v28.16b, v17.16b
574
-
575
-
576
- mov v23.16b, v22.16b
577
- mov v24.16b, v22.16b
578
- mov v25.16b, v7.16b
579
- DIFF_LUMA_EQ4_P2P1P0_1 v7, v6, v5, v4, v3, v2, v23, v19, v17, v16
580
- DIFF_LUMA_EQ4_P2P1P0_2 v25, v6, v5, v4, v3, v2, v24, v19, v17, v16
581
- ins v7.d[1], v25.d[1]
582
- ins v23.d[1], v24.d[1]
583
- and v22.16b, v20.16b, v22.16b
584
- DIFF_LUMA_EQ4_MASK v23, v4, v18, v17
585
- mov v29.16b, v17.16b
586
- DIFF_LUMA_EQ4_MASK v7, v5, v22, v17
587
- mov v30.16b, v17.16b
588
- DIFF_LUMA_EQ4_MASK v19, v6, v22, v17
589
- mov v31.16b, v17.16b
590
-
591
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 0
592
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 1
593
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 2
594
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 3
595
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 4
596
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 5
597
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 6
598
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 7
599
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 8
600
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 9
601
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 10
602
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 11
603
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 12
604
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 13
605
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 14
606
- STORE_LUMA_DATA_3 v26, v27, v28, v29, v30, v31, 15
607
- DeblockLumaEq4H_AArch64_neon_end:
608
- WELS_ASM_AARCH64_FUNC_END
609
-
610
-
611
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockChromaLt4V_AArch64_neon //uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int32_t iAlpha, int32_t iBeta, int8_t* pTc
612
- dup v16.16b, w3 //alpha
613
- dup v17.16b, w4 //beta
614
- lsl x3, x2, #1
615
- sub x6, x0, x3 //pPixCb-2*Stride
616
- sub x7, x1, x3 //pPixCr-2*Stride
617
-
618
- ld1 {v0.d} [0], [x6], x2
619
- ld1 {v1.d} [0], [x6]
620
- ld1 {v2.d} [0], [x0], x2
621
- ld1 {v3.d} [0], [x0]
622
- ld1 {v0.d} [1], [x7], x2
623
- ld1 {v1.d} [1], [x7]
624
- ld1 {v2.d} [1], [x1], x2
625
- ld1 {v3.d} [1], [x1]
626
-
627
- ld4r {v18.8b, v19.8b, v20.8b, v21.8b}, [x5]
628
- trn1 v18.4h, v18.4h, v19.4h //0011,0011,
629
- trn1 v20.4h, v20.4h, v21.4h //2233,2233
630
- zip1 v6.4s, v18.4s, v20.4s //iTc0: 0011,2233,0011,2233
631
- cmgt v7.16b, v6.16b, #0 // iTc0 Flag
632
-
633
- MASK_MATRIX v0, v1, v2, v3, v16, v17, v18
634
- and v7.16b, v7.16b, v18.16b // need filter flag
635
-
636
- ZERO_JUMP_END v7, x4, x5, DeblockChromaLt4V_AArch64_neon_end
637
-
638
- eor v18.16b, v18.16b, v18.16b
639
- sub v18.16b, v18.16b, v6.16b //-iTc0: 0011,2233,0011,2233
640
-
641
- DIFF_LUMA_LT4_P0_Q0_1 v0, v1, v2, v3, v19, v20, v22
642
- DIFF_LUMA_LT4_P0_Q0_2 v0, v1, v2, v3, v19, v20, v22
643
-
644
- smax v19.16b, v19.16b, v18.16b
645
- smin v19.16b, v19.16b, v6.16b
646
- and v19.16b, v19.16b, v7.16b
647
-
648
- EXTRACT_DELTA_INTO_TWO_PART v19, v20
649
- uqadd v1.16b, v1.16b, v20.16b
650
- uqsub v1.16b, v1.16b, v19.16b
651
- st1 {v1.d} [0], [x6], x2
652
- st1 {v1.d} [1], [x7], x2
653
- uqsub v2.16b, v2.16b, v20.16b
654
- uqadd v2.16b, v2.16b, v19.16b
655
- st1 {v2.d} [0], [x6]
656
- st1 {v2.d} [1], [x7]
657
- DeblockChromaLt4V_AArch64_neon_end:
658
- WELS_ASM_AARCH64_FUNC_END
659
-
660
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockChromaLt4H_AArch64_neon //uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int32_t iAlpha, int32_t iBeta, int8_t* pTc
661
- dup v16.16b, w3 //alpha
662
- dup v17.16b, w4 //beta
663
- sub x6, x0, #2 //pPixCb-2
664
- sub x7, x1, #2 //pPixCr-2
665
-
666
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 0
667
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 1
668
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 2
669
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 3
670
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 4
671
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 5
672
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 6
673
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 7
674
-
675
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 8
676
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 9
677
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 10
678
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 11
679
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 12
680
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 13
681
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 14
682
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 15
683
-
684
- sub x0, x0, #1
685
- sub x1, x1, #1
686
-
687
- ld4r {v18.8b, v19.8b, v20.8b, v21.8b}, [x5]
688
- trn1 v18.4h, v18.4h, v19.4h //0011,0011,
689
- trn1 v20.4h, v20.4h, v21.4h //2233,2233
690
- zip1 v6.4s, v18.4s, v20.4s //iTc0: 0011,2233,0011,2233
691
- cmgt v7.16b, v6.16b, #0 // iTc0 Flag
692
-
693
- MASK_MATRIX v0, v1, v2, v3, v16, v17, v18
694
- and v7.16b, v7.16b, v18.16b // need filter flag
695
-
696
- ZERO_JUMP_END v7, x4, x5, DeblockChromaLt4H_AArch64_neon_end
697
- eor v18.16b, v18.16b, v18.16b
698
- sub v18.16b, v18.16b, v6.16b //-iTc0: 0011,2233,0011,2233
699
-
700
- DIFF_LUMA_LT4_P0_Q0_1 v0, v1, v2, v3, v19, v20, v22
701
- DIFF_LUMA_LT4_P0_Q0_2 v0, v1, v2, v3, v19, v20, v22
702
-
703
- smax v19.16b, v19.16b, v18.16b
704
- smin v19.16b, v19.16b, v6.16b
705
- and v19.16b, v19.16b, v7.16b
706
-
707
- EXTRACT_DELTA_INTO_TWO_PART v19, v20
708
- uqadd v1.16b, v1.16b, v20.16b
709
- uqsub v1.16b, v1.16b, v19.16b
710
- uqsub v2.16b, v2.16b, v20.16b
711
- uqadd v2.16b, v2.16b, v19.16b
712
-
713
- STORE_CHROMA_DATA_2 v1, v2, x0, 0
714
- STORE_CHROMA_DATA_2 v1, v2, x0, 1
715
- STORE_CHROMA_DATA_2 v1, v2, x0, 2
716
- STORE_CHROMA_DATA_2 v1, v2, x0, 3
717
- STORE_CHROMA_DATA_2 v1, v2, x0, 4
718
- STORE_CHROMA_DATA_2 v1, v2, x0, 5
719
- STORE_CHROMA_DATA_2 v1, v2, x0, 6
720
- STORE_CHROMA_DATA_2 v1, v2, x0, 7
721
-
722
- STORE_CHROMA_DATA_2 v1, v2, x1, 8
723
- STORE_CHROMA_DATA_2 v1, v2, x1, 9
724
- STORE_CHROMA_DATA_2 v1, v2, x1, 10
725
- STORE_CHROMA_DATA_2 v1, v2, x1, 11
726
- STORE_CHROMA_DATA_2 v1, v2, x1, 12
727
- STORE_CHROMA_DATA_2 v1, v2, x1, 13
728
- STORE_CHROMA_DATA_2 v1, v2, x1, 14
729
- STORE_CHROMA_DATA_2 v1, v2, x1, 15
730
- DeblockChromaLt4H_AArch64_neon_end:
731
- WELS_ASM_AARCH64_FUNC_END
732
-
733
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockChromaEq4V_AArch64_neon //uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int32_t iAlpha, int32_t iBeta
734
- dup v16.16b, w3 //alpha
735
- dup v17.16b, w4 //beta
736
- lsl x3, x2, #1
737
- sub x6, x0, x3 //pPixCb-2*Stride
738
- sub x7, x1, x3 //pPixCr-2*Stride
739
-
740
- ld1 {v0.d} [0], [x6], x2
741
- ld1 {v1.d} [0], [x6]
742
- ld1 {v2.d} [0], [x0], x2
743
- ld1 {v3.d} [0], [x0]
744
- ld1 {v0.d} [1], [x7], x2
745
- ld1 {v1.d} [1], [x7]
746
- ld1 {v2.d} [1], [x1], x2
747
- ld1 {v3.d} [1], [x1]
748
-
749
- MASK_MATRIX v0, v1, v2, v3, v16, v17, v7
750
-
751
- ZERO_JUMP_END v7, x3, x4, DeblockChromaEq4V_AArch64_neon_end
752
-
753
- DIFF_CHROMA_EQ4_P0Q0_1 v0, v1, v2, v3, v18, v19, v20, v21
754
- DIFF_CHROMA_EQ4_P0Q0_2 v0, v1, v2, v3, v18, v19, v20, v21
755
-
756
- mov v6.16b, v7.16b
757
- bsl v6.16b, v20.16b, v1.16b
758
- bsl v7.16b, v21.16b, v2.16b
759
-
760
- st1 {v6.d} [0], [x6], x2
761
- st1 {v6.d} [1], [x7], x2
762
-
763
- st1 {v7.d} [0], [x6]
764
- st1 {v7.d} [1], [x7]
765
- DeblockChromaEq4V_AArch64_neon_end:
766
- WELS_ASM_AARCH64_FUNC_END
767
-
768
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockChromaEq4H_AArch64_neon //uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int32_t iAlpha, int32_t iBeta
769
- dup v16.16b, w3 //alpha
770
- dup v17.16b, w4 //beta
771
-
772
- sub x6, x0, #2 //pPixCb-2
773
- sub x7, x1, #2 //pPixCr-2
774
-
775
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 0
776
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 1
777
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 2
778
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 3
779
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 4
780
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 5
781
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 6
782
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x6, 7
783
-
784
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 8
785
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 9
786
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 10
787
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 11
788
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 12
789
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 13
790
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 14
791
- LOAD_CHROMA_DATA_4 v0, v1, v2, v3, x7, 15
792
- sub x0, x0, #1
793
- sub x1, x1, #1
794
-
795
- MASK_MATRIX v0, v1, v2, v3, v16, v17, v7
796
-
797
- ZERO_JUMP_END v7, x3, x4, DeblockChromaEq4H_AArch64_neon_end
798
-
799
- DIFF_CHROMA_EQ4_P0Q0_1 v0, v1, v2, v3, v18, v19, v20, v21
800
- DIFF_CHROMA_EQ4_P0Q0_2 v0, v1, v2, v3, v18, v19, v20, v21
801
-
802
- mov v6.16b, v7.16b
803
- bsl v6.16b, v20.16b, v1.16b
804
- bsl v7.16b, v21.16b, v2.16b
805
-
806
- STORE_CHROMA_DATA_2 v6, v7, x0, 0
807
- STORE_CHROMA_DATA_2 v6, v7, x0, 1
808
- STORE_CHROMA_DATA_2 v6, v7, x0, 2
809
- STORE_CHROMA_DATA_2 v6, v7, x0, 3
810
- STORE_CHROMA_DATA_2 v6, v7, x0, 4
811
- STORE_CHROMA_DATA_2 v6, v7, x0, 5
812
- STORE_CHROMA_DATA_2 v6, v7, x0, 6
813
- STORE_CHROMA_DATA_2 v6, v7, x0, 7
814
-
815
- STORE_CHROMA_DATA_2 v6, v7, x1, 8
816
- STORE_CHROMA_DATA_2 v6, v7, x1, 9
817
- STORE_CHROMA_DATA_2 v6, v7, x1, 10
818
- STORE_CHROMA_DATA_2 v6, v7, x1, 11
819
- STORE_CHROMA_DATA_2 v6, v7, x1, 12
820
- STORE_CHROMA_DATA_2 v6, v7, x1, 13
821
- STORE_CHROMA_DATA_2 v6, v7, x1, 14
822
- STORE_CHROMA_DATA_2 v6, v7, x1, 15
823
- DeblockChromaEq4H_AArch64_neon_end:
824
- WELS_ASM_AARCH64_FUNC_END
825
-
826
-
827
- WELS_ASM_AARCH64_FUNC_BEGIN DeblockingBSCalcEnc_AArch64_neon
828
- // Checking the nzc status
829
- BS_NZC_CHECK x0, x2, x3, v16, v17 //v16,v17 save the nzc status
830
- // For checking bS[I] = 2
831
- movi v0.16b, #0
832
- cmgt v16.16b, v16.16b, v0.16b
833
- cmgt v17.16b, v17.16b, v0.16b
834
- movi v0.16b, #2
835
-
836
- and v16.16b, v16.16b, v0.16b //v16 save the nzc check result all the time --- for dir is top
837
- and v17.16b, v17.16b, v0.16b //v17 save the nzc check result all the time --- for dir is left
838
-
839
- // Checking the mv status
840
- BS_MV_CHECK x1, x2, x3, v18, v19, v5 , v6 //v18, v19 save the mv status
841
- // For checking bS[I] = 1
842
- movi v0.16b, #1
843
- and v18.16b, v18.16b, v0.16b //v18 save the nzc check result all the time --- for dir is top
844
- and v19.16b, v19.16b, v0.16b //v19 save the nzc check result all the time --- for dir is left
845
- // Check bS[I] is '1' or '2'
846
- umax v1.16b, v18.16b, v16.16b
847
- umax v0.16b, v19.16b, v17.16b
848
- st1 {v0.16b, v1.16b}, [x4]
849
- WELS_ASM_AARCH64_FUNC_END
850
-
851
-
852
- #endif