@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.
- package/package.json +1 -1
- package/_openh264install/include/wels/codec_api.h +0 -592
- package/_openh264install/include/wels/codec_app_def.h +0 -820
- package/_openh264install/include/wels/codec_def.h +0 -216
- package/_openh264install/include/wels/codec_ver.h +0 -15
- package/_openh264install/lib/libopenh264.a +0 -0
- package/_openh264install/lib/pkgconfig/openh264.pc +0 -10
- package/openh264/.reviewboardrc +0 -3
- package/openh264/.travis.yml +0 -42
- package/openh264/CODING_STYLE +0 -8
- package/openh264/CONTRIBUTORS +0 -55
- package/openh264/LICENSE +0 -23
- package/openh264/Makefile +0 -408
- package/openh264/README.md +0 -197
- package/openh264/RELEASES +0 -467
- package/openh264/SECURITY.md +0 -16
- package/openh264/autotest/codec_comparision/run_MultiCodecComparision.sh +0 -431
- package/openh264/autotest/performanceTest/android/run_AutoTest_android.sh +0 -180
- package/openh264/autotest/performanceTest/ios/fruitstrap +0 -0
- package/openh264/autotest/performanceTest/ios/iFileTransfer +0 -0
- package/openh264/autotest/performanceTest/ios/run_AutoTest_ios.sh +0 -193
- package/openh264/autotest/performanceTest/ios/uiascript.js +0 -19
- package/openh264/autotest/performanceTest/parsePerfData.sh +0 -107
- package/openh264/autotest/performanceTest/run_perfTest.sh +0 -122
- package/openh264/autotest/unitTest/android/run_AutoTest_android.sh +0 -112
- package/openh264/autotest/unitTest/ios/run_AutoTest_ios.sh +0 -167
- package/openh264/autotest/unitTest/run_ParseUTxml.sh +0 -70
- package/openh264/autotest/unitTest/run_unitTest.sh +0 -98
- package/openh264/build.gradle +0 -30
- package/openh264/code-coverage.sh +0 -6
- package/openh264/codec/api/meson.build +0 -1
- package/openh264/codec/api/wels/codec_api.h +0 -592
- package/openh264/codec/api/wels/codec_app_def.h +0 -820
- package/openh264/codec/api/wels/codec_def.h +0 -216
- package/openh264/codec/api/wels/codec_ver.h +0 -15
- package/openh264/codec/api/wels/meson.build +0 -9
- package/openh264/codec/common/arm/arm_arch_common_macro.S +0 -83
- package/openh264/codec/common/arm/copy_mb_neon.S +0 -161
- package/openh264/codec/common/arm/deblocking_neon.S +0 -857
- package/openh264/codec/common/arm/expand_picture_neon.S +0 -154
- package/openh264/codec/common/arm/intra_pred_common_neon.S +0 -82
- package/openh264/codec/common/arm/mc_neon.S +0 -2283
- package/openh264/codec/common/arm64/arm_aarch64_common.h +0 -85
- package/openh264/codec/common/arm64/arm_arch64_common_macro.S +0 -79
- package/openh264/codec/common/arm64/copy_mb_aarch64_neon.S +0 -202
- package/openh264/codec/common/arm64/deblocking_aarch64_neon.S +0 -852
- package/openh264/codec/common/arm64/expand_picture_aarch64_neon.S +0 -150
- package/openh264/codec/common/arm64/intra_pred_common_aarch64_neon.S +0 -58
- package/openh264/codec/common/arm64/mc_aarch64_neon.S +0 -2614
- package/openh264/codec/common/generate_version.sh +0 -28
- package/openh264/codec/common/inc/WelsList.h +0 -287
- package/openh264/codec/common/inc/WelsLock.h +0 -97
- package/openh264/codec/common/inc/WelsTask.h +0 -75
- package/openh264/codec/common/inc/WelsTaskThread.h +0 -83
- package/openh264/codec/common/inc/WelsThread.h +0 -106
- package/openh264/codec/common/inc/WelsThreadLib.h +0 -151
- package/openh264/codec/common/inc/WelsThreadPool.h +0 -124
- package/openh264/codec/common/inc/asmdefs_mmi.h +0 -345
- package/openh264/codec/common/inc/copy_mb.h +0 -103
- package/openh264/codec/common/inc/cpu.h +0 -81
- package/openh264/codec/common/inc/cpu_core.h +0 -103
- package/openh264/codec/common/inc/crt_util_safe_x.h +0 -104
- package/openh264/codec/common/inc/deblocking_common.h +0 -124
- package/openh264/codec/common/inc/expand_pic.h +0 -107
- package/openh264/codec/common/inc/golomb_common.h +0 -166
- package/openh264/codec/common/inc/intra_pred_common.h +0 -86
- package/openh264/codec/common/inc/loongson_intrinsics.h +0 -1919
- package/openh264/codec/common/inc/ls_defines.h +0 -130
- package/openh264/codec/common/inc/macros.h +0 -329
- package/openh264/codec/common/inc/mc.h +0 -407
- package/openh264/codec/common/inc/measure_time.h +0 -88
- package/openh264/codec/common/inc/memory_align.h +0 -116
- package/openh264/codec/common/inc/msa_macros.h +0 -2393
- package/openh264/codec/common/inc/sad_common.h +0 -139
- package/openh264/codec/common/inc/typedefs.h +0 -86
- package/openh264/codec/common/inc/utils.h +0 -95
- package/openh264/codec/common/inc/version.h +0 -10
- package/openh264/codec/common/inc/version_gen.h.template +0 -6
- package/openh264/codec/common/inc/welsCodecTrace.h +0 -64
- package/openh264/codec/common/inc/wels_common_defs.h +0 -373
- package/openh264/codec/common/inc/wels_const_common.h +0 -63
- package/openh264/codec/common/loongarch/copy_mb_lsx.c +0 -194
- package/openh264/codec/common/loongarch/deblock_lsx.c +0 -1489
- package/openh264/codec/common/loongarch/intra_pred_com_lasx.c +0 -112
- package/openh264/codec/common/loongarch/intra_pred_com_lsx.c +0 -91
- package/openh264/codec/common/loongarch/mc_chroma_lsx.c +0 -192
- package/openh264/codec/common/loongarch/mc_horver_lsx.c +0 -654
- package/openh264/codec/common/loongarch/satd_sad_lasx.c +0 -568
- package/openh264/codec/common/meson.build +0 -84
- package/openh264/codec/common/mips/copy_mb_mmi.c +0 -477
- package/openh264/codec/common/mips/copy_mb_msa.c +0 -80
- package/openh264/codec/common/mips/deblock_mmi.c +0 -2826
- package/openh264/codec/common/mips/deblock_msa.c +0 -1024
- package/openh264/codec/common/mips/expand_picture_mmi.c +0 -673
- package/openh264/codec/common/mips/intra_pred_com_mmi.c +0 -548
- package/openh264/codec/common/mips/satd_sad_mmi.c +0 -2154
- package/openh264/codec/common/targets.mk +0 -136
- package/openh264/codec/common/x86/asm_inc.asm +0 -743
- package/openh264/codec/common/x86/cpuid.asm +0 -263
- package/openh264/codec/common/x86/dct.asm +0 -1036
- package/openh264/codec/common/x86/deblock.asm +0 -848
- package/openh264/codec/common/x86/expand_picture.asm +0 -728
- package/openh264/codec/common/x86/intra_pred_com.asm +0 -117
- package/openh264/codec/common/x86/mb_copy.asm +0 -615
- package/openh264/codec/common/x86/mc_chroma.asm +0 -313
- package/openh264/codec/common/x86/mc_luma.asm +0 -4490
- package/openh264/codec/common/x86/satd_sad.asm +0 -2734
- package/openh264/codec/common/x86/vaa.asm +0 -411
- package/openh264/codec/console/common/inc/read_config.h +0 -68
- package/openh264/codec/console/common/meson.build +0 -12
- package/openh264/codec/console/common/targets.mk +0 -20
- package/openh264/codec/console/dec/inc/d3d9_utils.h +0 -148
- package/openh264/codec/console/dec/meson.build +0 -15
- package/openh264/codec/console/dec/targets.mk +0 -20
- package/openh264/codec/console/enc/meson.build +0 -9
- package/openh264/codec/console/enc/targets.mk +0 -19
- package/openh264/codec/console/meson.build +0 -3
- package/openh264/codec/decoder/core/arm/block_add_neon.S +0 -129
- package/openh264/codec/decoder/core/arm/intra_pred_neon.S +0 -635
- package/openh264/codec/decoder/core/arm64/block_add_aarch64_neon.S +0 -131
- package/openh264/codec/decoder/core/arm64/intra_pred_aarch64_neon.S +0 -524
- package/openh264/codec/decoder/core/inc/au_parser.h +0 -199
- package/openh264/codec/decoder/core/inc/bit_stream.h +0 -62
- package/openh264/codec/decoder/core/inc/cabac_decoder.h +0 -111
- package/openh264/codec/decoder/core/inc/deblocking.h +0 -118
- package/openh264/codec/decoder/core/inc/dec_frame.h +0 -156
- package/openh264/codec/decoder/core/inc/dec_golomb.h +0 -344
- package/openh264/codec/decoder/core/inc/decode_mb_aux.h +0 -83
- package/openh264/codec/decoder/core/inc/decode_slice.h +0 -104
- package/openh264/codec/decoder/core/inc/decoder.h +0 -186
- package/openh264/codec/decoder/core/inc/decoder_context.h +0 -590
- package/openh264/codec/decoder/core/inc/decoder_core.h +0 -206
- package/openh264/codec/decoder/core/inc/error_code.h +0 -222
- package/openh264/codec/decoder/core/inc/error_concealment.h +0 -68
- package/openh264/codec/decoder/core/inc/fmo.h +0 -114
- package/openh264/codec/decoder/core/inc/get_intra_predictor.h +0 -191
- package/openh264/codec/decoder/core/inc/manage_dec_ref.h +0 -62
- package/openh264/codec/decoder/core/inc/mb_cache.h +0 -80
- package/openh264/codec/decoder/core/inc/memmgr_nal_unit.h +0 -66
- package/openh264/codec/decoder/core/inc/mv_pred.h +0 -195
- package/openh264/codec/decoder/core/inc/nal_prefix.h +0 -56
- package/openh264/codec/decoder/core/inc/nalu.h +0 -79
- package/openh264/codec/decoder/core/inc/parameter_sets.h +0 -217
- package/openh264/codec/decoder/core/inc/parse_mb_syn_cabac.h +0 -89
- package/openh264/codec/decoder/core/inc/parse_mb_syn_cavlc.h +0 -137
- package/openh264/codec/decoder/core/inc/pic_queue.h +0 -62
- package/openh264/codec/decoder/core/inc/picture.h +0 -112
- package/openh264/codec/decoder/core/inc/rec_mb.h +0 -104
- package/openh264/codec/decoder/core/inc/slice.h +0 -208
- package/openh264/codec/decoder/core/inc/vlc_decoder.h +0 -177
- package/openh264/codec/decoder/core/inc/wels_common_basis.h +0 -317
- package/openh264/codec/decoder/core/inc/wels_const.h +0 -65
- package/openh264/codec/decoder/core/inc/wels_decoder_thread.h +0 -170
- package/openh264/codec/decoder/core/loongarch/mb_aux_lsx.c +0 -296
- package/openh264/codec/decoder/core/mips/dct_mmi.c +0 -786
- package/openh264/codec/decoder/core/x86/dct.asm +0 -72
- package/openh264/codec/decoder/core/x86/intra_pred.asm +0 -1456
- package/openh264/codec/decoder/meson.build +0 -69
- package/openh264/codec/decoder/plus/inc/welsDecoderExt.h +0 -170
- package/openh264/codec/decoder/targets.mk +0 -115
- package/openh264/codec/encoder/core/arm/intra_pred_neon.S +0 -589
- package/openh264/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +0 -735
- package/openh264/codec/encoder/core/arm/memory_neon.S +0 -62
- package/openh264/codec/encoder/core/arm/pixel_neon.S +0 -882
- package/openh264/codec/encoder/core/arm/reconstruct_neon.S +0 -903
- package/openh264/codec/encoder/core/arm/svc_motion_estimation.S +0 -366
- package/openh264/codec/encoder/core/arm64/intra_pred_aarch64_neon.S +0 -505
- package/openh264/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S +0 -611
- package/openh264/codec/encoder/core/arm64/memory_aarch64_neon.S +0 -63
- package/openh264/codec/encoder/core/arm64/pixel_aarch64_neon.S +0 -621
- package/openh264/codec/encoder/core/arm64/reconstruct_aarch64_neon.S +0 -717
- package/openh264/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S +0 -350
- package/openh264/codec/encoder/core/inc/as264_common.h +0 -138
- package/openh264/codec/encoder/core/inc/au_set.h +0 -152
- package/openh264/codec/encoder/core/inc/deblocking.h +0 -92
- package/openh264/codec/encoder/core/inc/decode_mb_aux.h +0 -112
- package/openh264/codec/encoder/core/inc/dq_map.h +0 -58
- package/openh264/codec/encoder/core/inc/encode_mb_aux.h +0 -199
- package/openh264/codec/encoder/core/inc/encoder.h +0 -148
- package/openh264/codec/encoder/core/inc/encoder_context.h +0 -240
- package/openh264/codec/encoder/core/inc/extern.h +0 -124
- package/openh264/codec/encoder/core/inc/get_intra_predictor.h +0 -186
- package/openh264/codec/encoder/core/inc/mb_cache.h +0 -141
- package/openh264/codec/encoder/core/inc/md.h +0 -181
- package/openh264/codec/encoder/core/inc/mt_defs.h +0 -91
- package/openh264/codec/encoder/core/inc/mv_pred.h +0 -191
- package/openh264/codec/encoder/core/inc/nal_encap.h +0 -143
- package/openh264/codec/encoder/core/inc/param_svc.h +0 -576
- package/openh264/codec/encoder/core/inc/parameter_sets.h +0 -181
- package/openh264/codec/encoder/core/inc/paraset_strategy.h +0 -310
- package/openh264/codec/encoder/core/inc/picture.h +0 -137
- package/openh264/codec/encoder/core/inc/picture_handle.h +0 -66
- package/openh264/codec/encoder/core/inc/rc.h +0 -284
- package/openh264/codec/encoder/core/inc/ref_list_mgr_svc.h +0 -148
- package/openh264/codec/encoder/core/inc/sample.h +0 -154
- package/openh264/codec/encoder/core/inc/set_mb_syn_cabac.h +0 -127
- package/openh264/codec/encoder/core/inc/set_mb_syn_cavlc.h +0 -92
- package/openh264/codec/encoder/core/inc/slice.h +0 -212
- package/openh264/codec/encoder/core/inc/slice_multi_threading.h +0 -97
- package/openh264/codec/encoder/core/inc/stat.h +0 -102
- package/openh264/codec/encoder/core/inc/svc_base_layer_md.h +0 -102
- package/openh264/codec/encoder/core/inc/svc_enc_frame.h +0 -136
- package/openh264/codec/encoder/core/inc/svc_enc_golomb.h +0 -123
- package/openh264/codec/encoder/core/inc/svc_enc_macroblock.h +0 -82
- package/openh264/codec/encoder/core/inc/svc_enc_slice_segment.h +0 -212
- package/openh264/codec/encoder/core/inc/svc_encode_mb.h +0 -63
- package/openh264/codec/encoder/core/inc/svc_encode_slice.h +0 -184
- package/openh264/codec/encoder/core/inc/svc_mode_decision.h +0 -94
- package/openh264/codec/encoder/core/inc/svc_motion_estimate.h +0 -369
- package/openh264/codec/encoder/core/inc/svc_set_mb_syn.h +0 -70
- package/openh264/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h +0 -67
- package/openh264/codec/encoder/core/inc/vlc_encoder.h +0 -92
- package/openh264/codec/encoder/core/inc/wels_common_basis.h +0 -160
- package/openh264/codec/encoder/core/inc/wels_const.h +0 -174
- package/openh264/codec/encoder/core/inc/wels_func_ptr_def.h +0 -300
- package/openh264/codec/encoder/core/inc/wels_preprocess.h +0 -251
- package/openh264/codec/encoder/core/inc/wels_task_base.h +0 -79
- package/openh264/codec/encoder/core/inc/wels_task_encoder.h +0 -142
- package/openh264/codec/encoder/core/inc/wels_task_management.h +0 -135
- package/openh264/codec/encoder/core/inc/wels_transpose_matrix.h +0 -58
- package/openh264/codec/encoder/core/loongarch/dct_lasx.c +0 -452
- package/openh264/codec/encoder/core/loongarch/get_intra_predictor_lsx.c +0 -166
- package/openh264/codec/encoder/core/loongarch/quant_lsx.c +0 -153
- package/openh264/codec/encoder/core/loongarch/sample_lasx.c +0 -87
- package/openh264/codec/encoder/core/loongarch/svc_motion_estimate_lsx.c +0 -104
- package/openh264/codec/encoder/core/mips/dct_mmi.c +0 -529
- package/openh264/codec/encoder/core/mips/quant_mmi.c +0 -553
- package/openh264/codec/encoder/core/mips/score_mmi.c +0 -324
- package/openh264/codec/encoder/core/x86/coeff.asm +0 -695
- package/openh264/codec/encoder/core/x86/dct.asm +0 -108
- package/openh264/codec/encoder/core/x86/intra_pred.asm +0 -1129
- package/openh264/codec/encoder/core/x86/matrix_transpose.asm +0 -395
- package/openh264/codec/encoder/core/x86/memzero.asm +0 -132
- package/openh264/codec/encoder/core/x86/quant.asm +0 -507
- package/openh264/codec/encoder/core/x86/sample_sc.asm +0 -1829
- package/openh264/codec/encoder/core/x86/score.asm +0 -363
- package/openh264/codec/encoder/meson.build +0 -98
- package/openh264/codec/encoder/plus/inc/welsEncoderExt.h +0 -129
- package/openh264/codec/encoder/targets.mk +0 -146
- package/openh264/codec/meson.build +0 -9
- package/openh264/codec/processing/interface/IWelsVP.h +0 -310
- package/openh264/codec/processing/meson.build +0 -71
- package/openh264/codec/processing/targets.mk +0 -117
- package/openh264/docs/doxygen/Doxyfile +0 -1865
- package/openh264/docs/doxygen/Home.rest +0 -25
- package/openh264/docs/doxygen/ISVCDecoder.rest +0 -19
- package/openh264/docs/doxygen/ISVCEncoder.rest +0 -16
- package/openh264/docs/doxygen/UsageExampleForDecoder.rest +0 -10
- package/openh264/docs/doxygen/UsageExampleForEncoder.rest +0 -15
- package/openh264/docs/doxygen2rst.py +0 -619
- package/openh264/gmpopenh264.info +0 -4
- package/openh264/gradlew +0 -172
- package/openh264/meson.build +0 -218
- package/openh264/meson_options.txt +0 -1
- package/openh264/module/RefCounted.h +0 -141
- package/openh264/module/gmp-openh264.cpp +0 -1196
- package/openh264/module/targets.mk +0 -14
- package/openh264/module/task_utils.h +0 -38
- package/openh264/module/task_utils.py +0 -207
- package/openh264/module/task_utils_generated.h +0 -2087
- package/openh264/openh264.def +0 -7
- package/openh264/openh264.pc.in +0 -10
- package/openh264/openh264.rc +0 -61
- package/openh264/openh264.rc.template +0 -61
- package/openh264/res/Adobe_PDF_sample_a_1024x768_50Frms.264 +0 -0
- package/openh264/res/BA1_FT_C.264 +0 -0
- package/openh264/res/BA1_Sony_D.jsv +0 -0
- package/openh264/res/BAMQ1_JVC_C.264 +0 -0
- package/openh264/res/BAMQ2_JVC_C.264 +0 -0
- package/openh264/res/BANM_MW_D.264 +0 -0
- package/openh264/res/BASQP1_Sony_C.jsv +0 -0
- package/openh264/res/BA_MW_D.264 +0 -0
- package/openh264/res/BA_MW_D_IDR_LOST.264 +0 -0
- package/openh264/res/BA_MW_D_P_LOST.264 +0 -0
- package/openh264/res/CI1_FT_B.264 +0 -0
- package/openh264/res/CI_MW_D.264 +0 -0
- package/openh264/res/CVFC1_Sony_C.jsv +0 -0
- package/openh264/res/CVPCMNL1_SVA_C.264 +0 -0
- package/openh264/res/CiscoVT2people_160x96_6fps.yuv +0 -1
- package/openh264/res/CiscoVT2people_320x192_12fps.yuv +0 -1
- package/openh264/res/Cisco_Absolute_Power_1280x720_30fps.yuv +0 -3607
- package/openh264/res/Cisco_Adobe_PDF_sample_a_1024x768_CAVLC_Bframe_9.264 +0 -0
- package/openh264/res/Cisco_Men_whisper_640x320_CABAC_Bframe_9.264 +0 -0
- package/openh264/res/Cisco_Men_whisper_640x320_CAVLC_Bframe_9.264 +0 -0
- package/openh264/res/Error_I_P.264 +0 -0
- package/openh264/res/LS_SVA_D.264 +0 -0
- package/openh264/res/MIDR_MW_D.264 +0 -0
- package/openh264/res/MPS_MW_A.264 +0 -0
- package/openh264/res/MR1_BT_A.h264 +0 -0
- package/openh264/res/MR1_MW_A.264 +0 -0
- package/openh264/res/MR2_MW_A.264 +0 -0
- package/openh264/res/MR2_TANDBERG_E.264 +0 -0
- package/openh264/res/NL1_Sony_D.jsv +0 -0
- package/openh264/res/NLMQ1_JVC_C.264 +0 -0
- package/openh264/res/NLMQ2_JVC_C.264 +0 -0
- package/openh264/res/NRF_MW_E.264 +0 -0
- package/openh264/res/QCIF_2P_I_allIPCM.264 +0 -0
- package/openh264/res/SVA_BA1_B.264 +0 -0
- package/openh264/res/SVA_BA2_D.264 +0 -0
- package/openh264/res/SVA_Base_B.264 +0 -0
- package/openh264/res/SVA_CL1_E.264 +0 -0
- package/openh264/res/SVA_FM1_E.264 +0 -0
- package/openh264/res/SVA_NL1_B.264 +0 -0
- package/openh264/res/SVA_NL2_E.264 +0 -0
- package/openh264/res/SarVui.264 +0 -0
- package/openh264/res/Static.264 +0 -0
- package/openh264/res/Static_152_100.yuv +0 -1
- package/openh264/res/VID_1280x544_cabac_temporal_direct.264 +0 -0
- package/openh264/res/VID_1280x544_cavlc_temporal_direct.264 +0 -0
- package/openh264/res/VID_1280x720_cabac_temporal_direct.264 +0 -0
- package/openh264/res/VID_1280x720_cavlc_temporal_direct.264 +0 -0
- package/openh264/res/VID_1920x1080_cabac_temporal_direct.264 +0 -0
- package/openh264/res/VID_1920x1080_cavlc_temporal_direct.264 +0 -0
- package/openh264/res/Zhling_1280x720.264 +0 -0
- package/openh264/res/jm_1080p_allslice.264 +0 -0
- package/openh264/res/sps_subsetsps_bothVUI.264 +0 -0
- package/openh264/res/test_cif_I_CABAC_PCM.264 +0 -0
- package/openh264/res/test_cif_I_CABAC_slice.264 +0 -0
- package/openh264/res/test_cif_P_CABAC_slice.264 +0 -0
- package/openh264/res/test_qcif_cabac.264 +0 -0
- package/openh264/res/test_scalinglist_jm.264 +0 -0
- package/openh264/res/test_vd_1d.264 +0 -0
- package/openh264/res/test_vd_rc.264 +0 -0
- package/openh264/run_Test.sh +0 -91
- package/openh264/settings.gradle +0 -4
- package/openh264/subprojects/gtest.wrap +0 -10
- package/openh264/testbin/AutoBuild_Windows_VS2008.bat +0 -59
- package/openh264/testbin/CmdLineExample.sh +0 -7
- package/openh264/testbin/CmdLineReadMe +0 -22
- package/openh264/testbin/layer2.cfg +0 -37
- package/openh264/testbin/layer2_arbitrary_res.cfg +0 -37
- package/openh264/testbin/layer2_vd.cfg +0 -38
- package/openh264/testbin/layer2_vd_rc.cfg +0 -38
- package/openh264/testbin/welsenc.cfg +0 -71
- package/openh264/testbin/welsenc_arbitrary_res.cfg +0 -70
- package/openh264/testbin/welsenc_ios.cfg +0 -71
- package/openh264/testbin/welsenc_vd_1d.cfg +0 -70
- package/openh264/testbin/welsenc_vd_rc.cfg +0 -69
- package/openh264/ut.def +0 -2
|
@@ -1,507 +0,0 @@
|
|
|
1
|
-
;*!
|
|
2
|
-
;* \copy
|
|
3
|
-
;* Copyright (c) 2009-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
|
-
;* quant.asm
|
|
33
|
-
;*
|
|
34
|
-
;* Abstract
|
|
35
|
-
;* sse2 quantize inter-block
|
|
36
|
-
;*
|
|
37
|
-
;* History
|
|
38
|
-
;* 7/6/2009 Created
|
|
39
|
-
;*
|
|
40
|
-
;*
|
|
41
|
-
;*************************************************************************/
|
|
42
|
-
|
|
43
|
-
%include "asm_inc.asm"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
SECTION .text
|
|
47
|
-
;************************************************
|
|
48
|
-
;NEW_QUANT
|
|
49
|
-
;************************************************
|
|
50
|
-
|
|
51
|
-
%macro SSE2_Quant8 5
|
|
52
|
-
MOVDQ %1, %5
|
|
53
|
-
pxor %2, %2
|
|
54
|
-
pcmpgtw %2, %1
|
|
55
|
-
pxor %1, %2
|
|
56
|
-
psubw %1, %2
|
|
57
|
-
paddusw %1, %3
|
|
58
|
-
pmulhuw %1, %4
|
|
59
|
-
pxor %1, %2
|
|
60
|
-
psubw %1, %2
|
|
61
|
-
MOVDQ %5, %1
|
|
62
|
-
%endmacro
|
|
63
|
-
|
|
64
|
-
%macro SSE2_QuantMax8 6
|
|
65
|
-
MOVDQ %1, %5
|
|
66
|
-
pxor %2, %2
|
|
67
|
-
pcmpgtw %2, %1
|
|
68
|
-
pxor %1, %2
|
|
69
|
-
psubw %1, %2
|
|
70
|
-
paddusw %1, %3
|
|
71
|
-
pmulhuw %1, %4
|
|
72
|
-
pmaxsw %6, %1
|
|
73
|
-
pxor %1, %2
|
|
74
|
-
psubw %1, %2
|
|
75
|
-
MOVDQ %5, %1
|
|
76
|
-
%endmacro
|
|
77
|
-
|
|
78
|
-
%define pDct esp + 4
|
|
79
|
-
%define ff esp + 8
|
|
80
|
-
%define mf esp + 12
|
|
81
|
-
%define max esp + 16
|
|
82
|
-
;***********************************************************************
|
|
83
|
-
; void WelsQuant4x4_sse2(int16_t *pDct, int16_t* ff, int16_t *mf);
|
|
84
|
-
;***********************************************************************
|
|
85
|
-
WELS_EXTERN WelsQuant4x4_sse2
|
|
86
|
-
%assign push_num 0
|
|
87
|
-
LOAD_3_PARA
|
|
88
|
-
movdqa xmm2, [r1]
|
|
89
|
-
movdqa xmm3, [r2]
|
|
90
|
-
|
|
91
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0]
|
|
92
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x10]
|
|
93
|
-
|
|
94
|
-
ret
|
|
95
|
-
|
|
96
|
-
;***********************************************************************
|
|
97
|
-
;void WelsQuant4x4Dc_sse2(int16_t *pDct, const int16_t ff, int16_t mf);
|
|
98
|
-
;***********************************************************************
|
|
99
|
-
WELS_EXTERN WelsQuant4x4Dc_sse2
|
|
100
|
-
%assign push_num 0
|
|
101
|
-
LOAD_3_PARA
|
|
102
|
-
SIGN_EXTENSIONW r1, r1w
|
|
103
|
-
SIGN_EXTENSIONW r2, r2w
|
|
104
|
-
SSE2_Copy8Times xmm3, r2d
|
|
105
|
-
|
|
106
|
-
SSE2_Copy8Times xmm2, r1d
|
|
107
|
-
|
|
108
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0]
|
|
109
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x10]
|
|
110
|
-
|
|
111
|
-
ret
|
|
112
|
-
|
|
113
|
-
;***********************************************************************
|
|
114
|
-
; void WelsQuantFour4x4_sse2(int16_t *pDct, int16_t* ff, int16_t *mf);
|
|
115
|
-
;***********************************************************************
|
|
116
|
-
WELS_EXTERN WelsQuantFour4x4_sse2
|
|
117
|
-
%assign push_num 0
|
|
118
|
-
LOAD_3_PARA
|
|
119
|
-
MOVDQ xmm2, [r1]
|
|
120
|
-
MOVDQ xmm3, [r2]
|
|
121
|
-
|
|
122
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0]
|
|
123
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x10]
|
|
124
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x20]
|
|
125
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x30]
|
|
126
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x40]
|
|
127
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x50]
|
|
128
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x60]
|
|
129
|
-
SSE2_Quant8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x70]
|
|
130
|
-
|
|
131
|
-
ret
|
|
132
|
-
|
|
133
|
-
;***********************************************************************
|
|
134
|
-
; void WelsQuantFour4x4Max_sse2(int16_t *pDct, int32_t* f, int16_t *mf, int16_t *max);
|
|
135
|
-
;***********************************************************************
|
|
136
|
-
WELS_EXTERN WelsQuantFour4x4Max_sse2
|
|
137
|
-
%assign push_num 0
|
|
138
|
-
LOAD_4_PARA
|
|
139
|
-
PUSH_XMM 8
|
|
140
|
-
MOVDQ xmm2, [r1]
|
|
141
|
-
MOVDQ xmm3, [r2]
|
|
142
|
-
|
|
143
|
-
pxor xmm4, xmm4
|
|
144
|
-
pxor xmm5, xmm5
|
|
145
|
-
pxor xmm6, xmm6
|
|
146
|
-
pxor xmm7, xmm7
|
|
147
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 ], xmm4
|
|
148
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x10], xmm4
|
|
149
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x20], xmm5
|
|
150
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x30], xmm5
|
|
151
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x40], xmm6
|
|
152
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x50], xmm6
|
|
153
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x60], xmm7
|
|
154
|
-
SSE2_QuantMax8 xmm0, xmm1, xmm2, xmm3, [r0 + 0x70], xmm7
|
|
155
|
-
|
|
156
|
-
SSE2_TransTwo4x4W xmm4, xmm5, xmm6, xmm7, xmm0
|
|
157
|
-
pmaxsw xmm0, xmm4
|
|
158
|
-
pmaxsw xmm0, xmm5
|
|
159
|
-
pmaxsw xmm0, xmm7
|
|
160
|
-
movdqa xmm1, xmm0
|
|
161
|
-
punpckhqdq xmm0, xmm1
|
|
162
|
-
pmaxsw xmm0, xmm1
|
|
163
|
-
|
|
164
|
-
movq [r3], xmm0
|
|
165
|
-
POP_XMM
|
|
166
|
-
LOAD_4_PARA_POP
|
|
167
|
-
ret
|
|
168
|
-
|
|
169
|
-
%macro MMX_Copy4Times 2
|
|
170
|
-
movd %1, %2
|
|
171
|
-
punpcklwd %1, %1
|
|
172
|
-
punpckldq %1, %1
|
|
173
|
-
%endmacro
|
|
174
|
-
|
|
175
|
-
SECTION .text
|
|
176
|
-
|
|
177
|
-
%macro MMX_Quant4 4
|
|
178
|
-
pxor %2, %2
|
|
179
|
-
pcmpgtw %2, %1
|
|
180
|
-
pxor %1, %2
|
|
181
|
-
psubw %1, %2
|
|
182
|
-
paddusw %1, %3
|
|
183
|
-
pmulhuw %1, %4
|
|
184
|
-
pxor %1, %2
|
|
185
|
-
psubw %1, %2
|
|
186
|
-
%endmacro
|
|
187
|
-
|
|
188
|
-
;***********************************************************************
|
|
189
|
-
;int32_t WelsHadamardQuant2x2_mmx(int16_t *rs, const int16_t ff, int16_t mf, int16_t * pDct, int16_t * block);
|
|
190
|
-
;***********************************************************************
|
|
191
|
-
WELS_EXTERN WelsHadamardQuant2x2_mmx
|
|
192
|
-
%assign push_num 0
|
|
193
|
-
LOAD_5_PARA
|
|
194
|
-
SIGN_EXTENSIONW r1, r1w
|
|
195
|
-
SIGN_EXTENSIONW r2, r2w
|
|
196
|
-
movd mm0, [r0]
|
|
197
|
-
movd mm1, [r0 + 0x20]
|
|
198
|
-
punpcklwd mm0, mm1
|
|
199
|
-
movd mm3, [r0 + 0x40]
|
|
200
|
-
movd mm1, [r0 + 0x60]
|
|
201
|
-
punpcklwd mm3, mm1
|
|
202
|
-
|
|
203
|
-
;hdm_2x2, mm0 = dct0 dct1, mm3 = dct2 dct3
|
|
204
|
-
movq mm5, mm3
|
|
205
|
-
paddw mm3, mm0
|
|
206
|
-
psubw mm0, mm5
|
|
207
|
-
punpcklwd mm3, mm0
|
|
208
|
-
movq mm1, mm3
|
|
209
|
-
psrlq mm1, 32
|
|
210
|
-
movq mm5, mm1
|
|
211
|
-
paddw mm1, mm3
|
|
212
|
-
psubw mm3, mm5
|
|
213
|
-
punpcklwd mm1, mm3
|
|
214
|
-
|
|
215
|
-
;quant_2x2_dc
|
|
216
|
-
MMX_Copy4Times mm3, r2d
|
|
217
|
-
MMX_Copy4Times mm2, r1d
|
|
218
|
-
MMX_Quant4 mm1, mm0, mm2, mm3
|
|
219
|
-
|
|
220
|
-
; store dct_2x2
|
|
221
|
-
movq [r3], mm1
|
|
222
|
-
movq [r4], mm1
|
|
223
|
-
|
|
224
|
-
; pNonZeroCount of dct_2x2
|
|
225
|
-
pcmpeqb mm2, mm2 ; mm2 = FF
|
|
226
|
-
pxor mm3, mm3
|
|
227
|
-
packsswb mm1, mm3
|
|
228
|
-
pcmpeqb mm1, mm3 ; set FF if equal, 0 if not equal
|
|
229
|
-
psubsb mm1, mm2 ; set 0 if equal, 1 if not equal
|
|
230
|
-
psadbw mm1, mm3 ;
|
|
231
|
-
mov r1w, 0
|
|
232
|
-
mov [r0], r1w
|
|
233
|
-
mov [r0 + 0x20], r1w
|
|
234
|
-
mov [r0 + 0x40], r1w
|
|
235
|
-
mov [r0 + 0x60], r1w
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
movd retrd, mm1
|
|
239
|
-
|
|
240
|
-
WELSEMMS
|
|
241
|
-
LOAD_5_PARA_POP
|
|
242
|
-
ret
|
|
243
|
-
|
|
244
|
-
;***********************************************************************
|
|
245
|
-
;int32_t WelsHadamardQuant2x2Skip_mmx(int16_t *pDct, int16_t ff, int16_t mf);
|
|
246
|
-
;***********************************************************************
|
|
247
|
-
WELS_EXTERN WelsHadamardQuant2x2Skip_mmx
|
|
248
|
-
%assign push_num 0
|
|
249
|
-
LOAD_3_PARA
|
|
250
|
-
SIGN_EXTENSIONW r1, r1w
|
|
251
|
-
SIGN_EXTENSIONW r2, r2w
|
|
252
|
-
movd mm0, [r0]
|
|
253
|
-
movd mm1, [r0 + 0x20]
|
|
254
|
-
punpcklwd mm0, mm1
|
|
255
|
-
movd mm3, [r0 + 0x40]
|
|
256
|
-
movd mm1, [r0 + 0x60]
|
|
257
|
-
punpcklwd mm3, mm1
|
|
258
|
-
|
|
259
|
-
;hdm_2x2, mm0 = dct0 dct1, mm3 = dct2 dct3
|
|
260
|
-
movq mm5, mm3
|
|
261
|
-
paddw mm3, mm0
|
|
262
|
-
psubw mm0, mm5
|
|
263
|
-
punpcklwd mm3, mm0
|
|
264
|
-
movq mm1, mm3
|
|
265
|
-
psrlq mm1, 32
|
|
266
|
-
movq mm5, mm1
|
|
267
|
-
paddw mm1, mm3
|
|
268
|
-
psubw mm3, mm5
|
|
269
|
-
punpcklwd mm1, mm3
|
|
270
|
-
|
|
271
|
-
;quant_2x2_dc
|
|
272
|
-
MMX_Copy4Times mm3, r2d
|
|
273
|
-
MMX_Copy4Times mm2, r1d
|
|
274
|
-
MMX_Quant4 mm1, mm0, mm2, mm3
|
|
275
|
-
|
|
276
|
-
; pNonZeroCount of dct_2x2
|
|
277
|
-
pcmpeqb mm2, mm2 ; mm2 = FF
|
|
278
|
-
pxor mm3, mm3
|
|
279
|
-
packsswb mm1, mm3
|
|
280
|
-
pcmpeqb mm1, mm3 ; set FF if equal, 0 if not equal
|
|
281
|
-
psubsb mm1, mm2 ; set 0 if equal, 1 if not equal
|
|
282
|
-
psadbw mm1, mm3 ;
|
|
283
|
-
movd retrd, mm1
|
|
284
|
-
|
|
285
|
-
WELSEMMS
|
|
286
|
-
ret
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
%macro SSE2_DeQuant8 3
|
|
290
|
-
MOVDQ %2, %1
|
|
291
|
-
pmullw %2, %3
|
|
292
|
-
MOVDQ %1, %2
|
|
293
|
-
%endmacro
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
;***********************************************************************
|
|
297
|
-
; void WelsDequant4x4_sse2(int16_t *pDct, const uint16_t* mf);
|
|
298
|
-
;***********************************************************************
|
|
299
|
-
WELS_EXTERN WelsDequant4x4_sse2
|
|
300
|
-
%assign push_num 0
|
|
301
|
-
LOAD_2_PARA
|
|
302
|
-
|
|
303
|
-
movdqa xmm1, [r1]
|
|
304
|
-
SSE2_DeQuant8 [r0 ], xmm0, xmm1
|
|
305
|
-
SSE2_DeQuant8 [r0 + 0x10], xmm0, xmm1
|
|
306
|
-
|
|
307
|
-
ret
|
|
308
|
-
|
|
309
|
-
;***********************************************************************
|
|
310
|
-
;void WelsDequantFour4x4_sse2(int16_t *pDct, const uint16_t* mf);
|
|
311
|
-
;***********************************************************************
|
|
312
|
-
|
|
313
|
-
WELS_EXTERN WelsDequantFour4x4_sse2
|
|
314
|
-
%assign push_num 0
|
|
315
|
-
LOAD_2_PARA
|
|
316
|
-
|
|
317
|
-
movdqa xmm1, [r1]
|
|
318
|
-
SSE2_DeQuant8 [r0 ], xmm0, xmm1
|
|
319
|
-
SSE2_DeQuant8 [r0+0x10 ], xmm0, xmm1
|
|
320
|
-
SSE2_DeQuant8 [r0+0x20 ], xmm0, xmm1
|
|
321
|
-
SSE2_DeQuant8 [r0+0x30 ], xmm0, xmm1
|
|
322
|
-
SSE2_DeQuant8 [r0+0x40 ], xmm0, xmm1
|
|
323
|
-
SSE2_DeQuant8 [r0+0x50 ], xmm0, xmm1
|
|
324
|
-
SSE2_DeQuant8 [r0+0x60 ], xmm0, xmm1
|
|
325
|
-
SSE2_DeQuant8 [r0+0x70 ], xmm0, xmm1
|
|
326
|
-
|
|
327
|
-
ret
|
|
328
|
-
|
|
329
|
-
;***********************************************************************
|
|
330
|
-
;void WelsDequantIHadamard4x4_sse2(int16_t *rs, const uint16_t mf);
|
|
331
|
-
;***********************************************************************
|
|
332
|
-
WELS_EXTERN WelsDequantIHadamard4x4_sse2
|
|
333
|
-
%assign push_num 0
|
|
334
|
-
LOAD_2_PARA
|
|
335
|
-
%ifndef X86_32
|
|
336
|
-
movzx r1, r1w
|
|
337
|
-
%endif
|
|
338
|
-
|
|
339
|
-
; WelsDequantLumaDc4x4
|
|
340
|
-
SSE2_Copy8Times xmm1, r1d
|
|
341
|
-
;psrlw xmm1, 2 ; for the (>>2) in ihdm
|
|
342
|
-
MOVDQ xmm0, [r0]
|
|
343
|
-
MOVDQ xmm2, [r0+0x10]
|
|
344
|
-
pmullw xmm0, xmm1
|
|
345
|
-
pmullw xmm2, xmm1
|
|
346
|
-
|
|
347
|
-
; ihdm_4x4
|
|
348
|
-
movdqa xmm1, xmm0
|
|
349
|
-
psrldq xmm1, 8
|
|
350
|
-
movdqa xmm3, xmm2
|
|
351
|
-
psrldq xmm3, 8
|
|
352
|
-
|
|
353
|
-
SSE2_SumSub xmm0, xmm3, xmm5 ; xmm0 = xmm0 - xmm3, xmm3 = xmm0 + xmm3
|
|
354
|
-
SSE2_SumSub xmm1, xmm2, xmm5 ; xmm1 = xmm1 - xmm2, xmm2 = xmm1 + xmm2
|
|
355
|
-
SSE2_SumSub xmm3, xmm2, xmm5 ; xmm3 = xmm3 - xmm2, xmm2 = xmm3 + xmm2
|
|
356
|
-
SSE2_SumSub xmm0, xmm1, xmm5 ; xmm0 = xmm0 - xmm1, xmm1 = xmm0 + xmm1
|
|
357
|
-
|
|
358
|
-
SSE2_TransTwo4x4W xmm2, xmm1, xmm3, xmm0, xmm4
|
|
359
|
-
SSE2_SumSub xmm2, xmm4, xmm5
|
|
360
|
-
SSE2_SumSub xmm1, xmm0, xmm5
|
|
361
|
-
SSE2_SumSub xmm4, xmm0, xmm5
|
|
362
|
-
SSE2_SumSub xmm2, xmm1, xmm5
|
|
363
|
-
SSE2_TransTwo4x4W xmm0, xmm1, xmm4, xmm2, xmm3
|
|
364
|
-
|
|
365
|
-
punpcklqdq xmm0, xmm1
|
|
366
|
-
MOVDQ [r0], xmm0
|
|
367
|
-
|
|
368
|
-
punpcklqdq xmm2, xmm3
|
|
369
|
-
MOVDQ [r0+16], xmm2
|
|
370
|
-
ret
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
%ifdef HAVE_AVX2
|
|
374
|
-
; data=%1 abs_out=%2 ff=%3 mf=%4 7FFFh=%5
|
|
375
|
-
%macro AVX2_Quant 5
|
|
376
|
-
vpabsw %2, %1
|
|
377
|
-
vpor %1, %1, %5 ; ensure non-zero before vpsignw
|
|
378
|
-
vpaddusw %2, %2, %3
|
|
379
|
-
vpmulhuw %2, %2, %4
|
|
380
|
-
vpsignw %1, %2, %1
|
|
381
|
-
%endmacro
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
;***********************************************************************
|
|
385
|
-
; void WelsQuant4x4_avx2(int16_t *pDct, int16_t* ff, int16_t *mf);
|
|
386
|
-
;***********************************************************************
|
|
387
|
-
|
|
388
|
-
WELS_EXTERN WelsQuant4x4_avx2
|
|
389
|
-
%assign push_num 0
|
|
390
|
-
LOAD_3_PARA
|
|
391
|
-
PUSH_XMM 5
|
|
392
|
-
vbroadcasti128 ymm0, [r1]
|
|
393
|
-
vbroadcasti128 ymm1, [r2]
|
|
394
|
-
WELS_DW32767_VEX ymm2
|
|
395
|
-
vmovdqu ymm3, [r0]
|
|
396
|
-
AVX2_Quant ymm3, ymm4, ymm0, ymm1, ymm2
|
|
397
|
-
vmovdqu [r0], ymm3
|
|
398
|
-
vzeroupper
|
|
399
|
-
POP_XMM
|
|
400
|
-
ret
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
;***********************************************************************
|
|
404
|
-
;void WelsQuant4x4Dc_avx2(int16_t *pDct, int16_t ff, int16_t mf);
|
|
405
|
-
;***********************************************************************
|
|
406
|
-
|
|
407
|
-
WELS_EXTERN WelsQuant4x4Dc_avx2
|
|
408
|
-
%assign push_num 0
|
|
409
|
-
LOAD_1_PARA
|
|
410
|
-
PUSH_XMM 5
|
|
411
|
-
%ifidni r1, arg2
|
|
412
|
-
vmovd xmm0, arg2d
|
|
413
|
-
vpbroadcastw ymm0, xmm0
|
|
414
|
-
%else
|
|
415
|
-
vpbroadcastw ymm0, arg2
|
|
416
|
-
%endif
|
|
417
|
-
%ifidni r2, arg3
|
|
418
|
-
vmovd xmm1, arg3d
|
|
419
|
-
vpbroadcastw ymm1, xmm1
|
|
420
|
-
%else
|
|
421
|
-
vpbroadcastw ymm1, arg3
|
|
422
|
-
%endif
|
|
423
|
-
WELS_DW32767_VEX ymm2
|
|
424
|
-
vmovdqu ymm3, [r0]
|
|
425
|
-
AVX2_Quant ymm3, ymm4, ymm0, ymm1, ymm2
|
|
426
|
-
vmovdqu [r0], ymm3
|
|
427
|
-
vzeroupper
|
|
428
|
-
POP_XMM
|
|
429
|
-
ret
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
;***********************************************************************
|
|
433
|
-
; void WelsQuantFour4x4_avx2(int16_t *pDct, int16_t* ff, int16_t *mf);
|
|
434
|
-
;***********************************************************************
|
|
435
|
-
|
|
436
|
-
WELS_EXTERN WelsQuantFour4x4_avx2
|
|
437
|
-
%assign push_num 0
|
|
438
|
-
LOAD_3_PARA
|
|
439
|
-
PUSH_XMM 6
|
|
440
|
-
vbroadcasti128 ymm0, [r1]
|
|
441
|
-
vbroadcasti128 ymm1, [r2]
|
|
442
|
-
WELS_DW32767_VEX ymm4
|
|
443
|
-
vmovdqu ymm3, [r0 + 0x00]
|
|
444
|
-
vmovdqu ymm5, [r0 + 0x20]
|
|
445
|
-
AVX2_Quant ymm3, ymm2, ymm0, ymm1, ymm4
|
|
446
|
-
vmovdqu [r0 + 0x00], ymm3
|
|
447
|
-
AVX2_Quant ymm5, ymm2, ymm0, ymm1, ymm4
|
|
448
|
-
vmovdqu [r0 + 0x20], ymm5
|
|
449
|
-
vmovdqu ymm3, [r0 + 0x40]
|
|
450
|
-
vmovdqu ymm5, [r0 + 0x60]
|
|
451
|
-
AVX2_Quant ymm3, ymm2, ymm0, ymm1, ymm4
|
|
452
|
-
vmovdqu [r0 + 0x40], ymm3
|
|
453
|
-
AVX2_Quant ymm5, ymm2, ymm0, ymm1, ymm4
|
|
454
|
-
vmovdqu [r0 + 0x60], ymm5
|
|
455
|
-
vzeroupper
|
|
456
|
-
POP_XMM
|
|
457
|
-
ret
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
;***********************************************************************
|
|
461
|
-
; void WelsQuantFour4x4Max_avx2(int16_t *pDct, int32_t* ff, int16_t *mf, int16_t *max);
|
|
462
|
-
;***********************************************************************
|
|
463
|
-
|
|
464
|
-
WELS_EXTERN WelsQuantFour4x4Max_avx2
|
|
465
|
-
%assign push_num 0
|
|
466
|
-
LOAD_4_PARA
|
|
467
|
-
PUSH_XMM 7
|
|
468
|
-
vbroadcasti128 ymm0, [r1]
|
|
469
|
-
vbroadcasti128 ymm1, [r2]
|
|
470
|
-
WELS_DW32767_VEX ymm6
|
|
471
|
-
vmovdqu ymm4, [r0 + 0x00]
|
|
472
|
-
vmovdqu ymm5, [r0 + 0x20]
|
|
473
|
-
AVX2_Quant ymm4, ymm2, ymm0, ymm1, ymm6
|
|
474
|
-
vmovdqu [r0 + 0x00], ymm4
|
|
475
|
-
AVX2_Quant ymm5, ymm3, ymm0, ymm1, ymm6
|
|
476
|
-
vmovdqu [r0 + 0x20], ymm5
|
|
477
|
-
vperm2i128 ymm4, ymm2, ymm3, 00100000b
|
|
478
|
-
vperm2i128 ymm3, ymm2, ymm3, 00110001b
|
|
479
|
-
vpmaxsw ymm2, ymm4, ymm3
|
|
480
|
-
vmovdqu ymm4, [r0 + 0x40]
|
|
481
|
-
vmovdqu ymm5, [r0 + 0x60]
|
|
482
|
-
AVX2_Quant ymm4, ymm3, ymm0, ymm1, ymm6
|
|
483
|
-
vmovdqu [r0 + 0x40], ymm4
|
|
484
|
-
AVX2_Quant ymm5, ymm4, ymm0, ymm1, ymm6
|
|
485
|
-
vmovdqu [r0 + 0x60], ymm5
|
|
486
|
-
vperm2i128 ymm5, ymm3, ymm4, 00100000b
|
|
487
|
-
vperm2i128 ymm4, ymm3, ymm4, 00110001b
|
|
488
|
-
vpmaxsw ymm3, ymm5, ymm4
|
|
489
|
-
vpxor ymm2, ymm2, ymm6 ; flip bits so as to enable use of vphminposuw to find max value.
|
|
490
|
-
vpxor ymm3, ymm3, ymm6 ; flip bits so as to enable use of vphminposuw to find max value.
|
|
491
|
-
vextracti128 xmm4, ymm2, 1
|
|
492
|
-
vextracti128 xmm5, ymm3, 1
|
|
493
|
-
vphminposuw xmm2, xmm2
|
|
494
|
-
vphminposuw xmm3, xmm3
|
|
495
|
-
vphminposuw xmm4, xmm4
|
|
496
|
-
vphminposuw xmm5, xmm5
|
|
497
|
-
vpunpcklwd xmm2, xmm2, xmm4
|
|
498
|
-
vpunpcklwd xmm3, xmm3, xmm5
|
|
499
|
-
vpunpckldq xmm2, xmm2, xmm3
|
|
500
|
-
vpxor xmm2, xmm2, xmm6 ; restore non-flipped values.
|
|
501
|
-
vmovq [r3], xmm2 ; store max values.
|
|
502
|
-
vzeroupper
|
|
503
|
-
POP_XMM
|
|
504
|
-
LOAD_4_PARA_POP
|
|
505
|
-
ret
|
|
506
|
-
%endif
|
|
507
|
-
|