diff options
Diffstat (limited to 'chromium/third_party/libvpx')
336 files changed, 17693 insertions, 2415 deletions
diff --git a/chromium/third_party/libvpx/BUILD.gn b/chromium/third_party/libvpx/BUILD.gn index 8fb6904107e..c1b718ebead 100644 --- a/chromium/third_party/libvpx/BUILD.gn +++ b/chromium/third_party/libvpx/BUILD.gn @@ -18,7 +18,10 @@ if (current_cpu == "x86") { cpu_arch_full = "x64" } } else if (current_cpu == "arm") { - if (arm_use_neon) { + if (is_chromeos) { + # ChromeOS gets highbd vp9 but other arm targets do not. + cpu_arch_full = "chromeos-arm-neon" + } else if (arm_use_neon) { cpu_arch_full = "arm-neon" } else if (is_android) { cpu_arch_full = "arm-neon-cpu-detect" @@ -26,7 +29,12 @@ if (current_cpu == "x86") { cpu_arch_full = "arm" } } else { - cpu_arch_full = current_cpu + if (is_chromeos) { + # ChromeOS gets highbd vp9 but other arm targets do not. + cpu_arch_full = "chromeos-arm64" + } else { + cpu_arch_full = current_cpu + } } if (is_nacl) { @@ -243,6 +251,8 @@ if (cpu_arch_full == "arm-neon-cpu-detect") { if (current_cpu == "arm") { if (cpu_arch_full == "arm-neon") { arm_assembly_sources = libvpx_srcs_arm_neon_assembly + } else if (cpu_arch_full == "chromeos-arm-neon") { + arm_assembly_sources = libvpx_srcs_chromeos_arm_neon_assembly } else if (cpu_arch_full == "arm-neon-cpu-detect") { arm_assembly_sources = libvpx_srcs_arm_neon_cpu_detect_assembly } else { @@ -282,7 +292,8 @@ if (current_cpu == "arm" && arm_assembly_sources != []) { sources = get_target_outputs(":convert_arm_assembly") configs -= [ "//build/config/compiler:compiler_arm_fpu" ] configs += [ ":libvpx_config" ] - if (cpu_arch_full == "arm-neon" || cpu_arch_full == "arm-neon-cpu-detect") { + if (cpu_arch_full == "arm-neon" || cpu_arch_full == "arm-neon-cpu-detect" || + cpu_arch_full == "chromeos-arm-neon") { asmflags = [ "-mfpu=neon" ] # allow asm files to include generated sources which match the source @@ -315,7 +326,9 @@ static_library("libvpx") { } else if (current_cpu == "mipsel" || current_cpu == "mips64el") { sources = libvpx_srcs_mips } else if (current_cpu == "arm") { - if (arm_use_neon) { + if (is_chromeos) { + sources = libvpx_srcs_chromeos_arm_neon + } else if (arm_use_neon) { sources = libvpx_srcs_arm_neon } else if (is_android) { sources = libvpx_srcs_arm_neon_cpu_detect @@ -323,7 +336,11 @@ static_library("libvpx") { sources = libvpx_srcs_arm } } else if (current_cpu == "arm64") { - sources = libvpx_srcs_arm64 + if (is_chromeos) { + sources = libvpx_srcs_chromeos_arm64 + } else { + sources = libvpx_srcs_arm64 + } } configs -= [ "//build/config/compiler:chromium_code" ] diff --git a/chromium/third_party/libvpx/README.chromium b/chromium/third_party/libvpx/README.chromium index 3fd171bf16c..aeeb9580105 100644 --- a/chromium/third_party/libvpx/README.chromium +++ b/chromium/third_party/libvpx/README.chromium @@ -5,9 +5,9 @@ License: BSD License File: source/libvpx/LICENSE Security Critical: yes -Date: Thursday August 30 2018 +Date: Thursday October 11 2018 Branch: master -Commit: 753fd86e86ac727dccac88376260b8f54502f2a3 +Commit: e188b5435de71bcd602c378f1ac0441111f0f915 Description: Contains the sources used to compile libvpx binaries used by Google Chrome and diff --git a/chromium/third_party/libvpx/generate_gni.sh b/chromium/third_party/libvpx/generate_gni.sh index 4a99209f03e..1942d2e0856 100755 --- a/chromium/third_party/libvpx/generate_gni.sh +++ b/chromium/third_party/libvpx/generate_gni.sh @@ -348,6 +348,8 @@ gen_config_files linux/arm "--target=armv7-linux-gcc --disable-neon ${all_platfo gen_config_files linux/arm-neon "--target=armv7-linux-gcc ${all_platforms}" gen_config_files linux/arm-neon-cpu-detect "--target=armv7-linux-gcc --enable-runtime-cpu-detect ${all_platforms}" gen_config_files linux/arm64 "--target=armv8-linux-gcc ${all_platforms}" +gen_config_files linux/chromeos-arm-neon "--target=armv7-linux-gcc ${all_platforms} ${HIGHBD}" +gen_config_files linux/chromeos-arm64 "--target=armv8-linux-gcc ${all_platforms} ${HIGHBD}" gen_config_files linux/mipsel "--target=mips32-linux-gcc ${all_platforms}" gen_config_files linux/mips64el "--target=mips64-linux-gcc ${all_platforms}" gen_config_files linux/generic "--target=generic-gnu $HIGHBD ${all_platforms}" @@ -370,6 +372,8 @@ lint_config linux/arm lint_config linux/arm-neon lint_config linux/arm-neon-cpu-detect lint_config linux/arm64 +lint_config linux/chromeos-arm-neon +lint_config linux/chromeos-arm64 lint_config linux/mipsel lint_config linux/mips64el lint_config linux/generic @@ -396,6 +400,8 @@ gen_rtcd_header linux/arm armv7 "--disable-neon --disable-neon_asm" gen_rtcd_header linux/arm-neon armv7 gen_rtcd_header linux/arm-neon-cpu-detect armv7 gen_rtcd_header linux/arm64 armv8 +gen_rtcd_header linux/chromeos-arm-neon armv7 +gen_rtcd_header linux/chromeos-arm64 armv8 gen_rtcd_header linux/mipsel mipsel gen_rtcd_header linux/mips64el mips64el gen_rtcd_header linux/generic generic @@ -459,6 +465,18 @@ if [ -z $ONLY_CONFIGS ]; then make libvpx_srcs.txt target=libs $config > /dev/null convert_srcs_to_project_files libvpx_srcs.txt libvpx_srcs_arm64 + echo "Generate ChromeOS ARM NEON source list." + config=$(print_config linux/chromeos-arm-neon) + make_clean + make libvpx_srcs.txt target=libs $config > /dev/null + convert_srcs_to_project_files libvpx_srcs.txt libvpx_srcs_chromeos_arm_neon + + echo "Generate ChromeOS ARM64 source list." + config=$(print_config linux/chromeos-arm64) + make_clean + make libvpx_srcs.txt target=libs $config > /dev/null + convert_srcs_to_project_files libvpx_srcs.txt libvpx_srcs_chromeos_arm64 + echo "Generate MIPS source list." config=$(print_config_basic linux/mipsel) make_clean diff --git a/chromium/third_party/libvpx/libvpx_srcs.gni b/chromium/third_party/libvpx/libvpx_srcs.gni index 29f29832eb5..3bd17e20329 100644 --- a/chromium/third_party/libvpx/libvpx_srcs.gni +++ b/chromium/third_party/libvpx/libvpx_srcs.gni @@ -234,6 +234,7 @@ libvpx_srcs_x86 = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -707,6 +708,7 @@ libvpx_srcs_x86_64 = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -1181,6 +1183,7 @@ libvpx_srcs_arm = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -1550,6 +1553,7 @@ libvpx_srcs_arm_neon = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -1945,6 +1949,7 @@ libvpx_srcs_arm_neon_cpu_detect = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -2395,6 +2400,7 @@ libvpx_srcs_arm64 = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -2546,6 +2552,869 @@ libvpx_srcs_arm64 = [ "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h", ] libvpx_srcs_arm64_assembly = [] +libvpx_srcs_chromeos_arm_neon = [ + "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.c", + "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.h", + "//third_party/libvpx/source/libvpx/vp8/common/arm/loopfilter_arm.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/copymem_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/dc_only_idct_add_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/dequant_idct_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/dequantizeb_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/idct_blk_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/idct_dequant_0_2x_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/idct_dequant_full_2x_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/iwalsh_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/mbloopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/shortidct4x4llm_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/sixtappredict_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/vp8_loopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/blockd.c", + "//third_party/libvpx/source/libvpx/vp8/common/blockd.h", + "//third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h", + "//third_party/libvpx/source/libvpx/vp8/common/common.h", + "//third_party/libvpx/source/libvpx/vp8/common/copy_c.c", + "//third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h", + "//third_party/libvpx/source/libvpx/vp8/common/dequantize.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropy.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropy.h", + "//third_party/libvpx/source/libvpx/vp8/common/entropymode.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropymode.h", + "//third_party/libvpx/source/libvpx/vp8/common/entropymv.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropymv.h", + "//third_party/libvpx/source/libvpx/vp8/common/extend.c", + "//third_party/libvpx/source/libvpx/vp8/common/extend.h", + "//third_party/libvpx/source/libvpx/vp8/common/filter.c", + "//third_party/libvpx/source/libvpx/vp8/common/filter.h", + "//third_party/libvpx/source/libvpx/vp8/common/findnearmv.c", + "//third_party/libvpx/source/libvpx/vp8/common/findnearmv.h", + "//third_party/libvpx/source/libvpx/vp8/common/generic/systemdependent.c", + "//third_party/libvpx/source/libvpx/vp8/common/header.h", + "//third_party/libvpx/source/libvpx/vp8/common/idct_blk.c", + "//third_party/libvpx/source/libvpx/vp8/common/idctllm.c", + "//third_party/libvpx/source/libvpx/vp8/common/invtrans.h", + "//third_party/libvpx/source/libvpx/vp8/common/loopfilter.h", + "//third_party/libvpx/source/libvpx/vp8/common/loopfilter_filters.c", + "//third_party/libvpx/source/libvpx/vp8/common/mbpitch.c", + "//third_party/libvpx/source/libvpx/vp8/common/mfqe.c", + "//third_party/libvpx/source/libvpx/vp8/common/modecont.c", + "//third_party/libvpx/source/libvpx/vp8/common/modecont.h", + "//third_party/libvpx/source/libvpx/vp8/common/mv.h", + "//third_party/libvpx/source/libvpx/vp8/common/onyx.h", + "//third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h", + "//third_party/libvpx/source/libvpx/vp8/common/onyxd.h", + "//third_party/libvpx/source/libvpx/vp8/common/postproc.c", + "//third_party/libvpx/source/libvpx/vp8/common/postproc.h", + "//third_party/libvpx/source/libvpx/vp8/common/ppflags.h", + "//third_party/libvpx/source/libvpx/vp8/common/quant_common.c", + "//third_party/libvpx/source/libvpx/vp8/common/quant_common.h", + "//third_party/libvpx/source/libvpx/vp8/common/reconinter.c", + "//third_party/libvpx/source/libvpx/vp8/common/reconinter.h", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra.c", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra.h", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.c", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h", + "//third_party/libvpx/source/libvpx/vp8/common/rtcd.c", + "//third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.c", + "//third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h", + "//third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.c", + "//third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h", + "//third_party/libvpx/source/libvpx/vp8/common/systemdependent.h", + "//third_party/libvpx/source/libvpx/vp8/common/threading.h", + "//third_party/libvpx/source/libvpx/vp8/common/treecoder.c", + "//third_party/libvpx/source/libvpx/vp8/common/treecoder.h", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_loopfilter.c", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.c", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/decodemv.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/detokenize.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/onyxd_if.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/threading.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/treereader.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/denoising_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/fastquantizeb_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/shortfdct_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/bitstream.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/block.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/dct.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/denoising.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/denoising.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemb.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemv.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/ethreading.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/lookahead.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/mcomp.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/modecosts.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/picklpf.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/quantize.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/segmentation.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/tokenize.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/treewriter.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/vp8_quantize.c", + "//third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c", + "//third_party/libvpx/source/libvpx/vp8/vp8_dx_iface.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_highbd_iht16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_highbd_iht4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_highbd_iht8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_filter.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_idct.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_rtcd.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scale.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scan.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_dct_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_denoiser_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_frame_scale_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_quantize_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_dct.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_frame_scale.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h", + "//third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c", + "//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.c", + "//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h", + "//third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h", + "//third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_codec.c", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_decoder.c", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_image.c", + "//third_party/libvpx/source/libvpx/vpx/vp8.h", + "//third_party/libvpx/source/libvpx/vpx/vp8cx.h", + "//third_party/libvpx/source/libvpx/vpx/vp8dx.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_codec.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_decoder.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_encoder.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_image.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_integer.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/add_noise.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/avg_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/avg_pred_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/deblock_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct16x16_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct32x32_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct_partial_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fwd_txfm_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/hadamard_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_1024_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_135_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_34_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_intrapred_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_loopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve8_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve_avg_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve_copy_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct16x16_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_135_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_34_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct8x8_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/intrapred_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/quantize_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sad4d_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sad_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/subpel_variance_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/subtract_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/variance_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_scaled_convolve8_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/avg.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/deblock.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/intrapred.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/loopfilter.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/postproc.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/prob.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/prob.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/psnr.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/psnr.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/quantize.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/quantize.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/sad.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/subtract.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/sum_squares.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/variance.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/variance.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_rtcd.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h", + "//third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h", + "//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c", + "//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h", + "//third_party/libvpx/source/libvpx/vpx_ports/arm.h", + "//third_party/libvpx/source/libvpx/vpx_ports/arm_cpudetect.c", + "//third_party/libvpx/source/libvpx/vpx_ports/bitops.h", + "//third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h", + "//third_party/libvpx/source/libvpx/vpx_ports/mem.h", + "//third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h", + "//third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h", + "//third_party/libvpx/source/libvpx/vpx_ports/msvc.h", + "//third_party/libvpx/source/libvpx/vpx_ports/system_state.h", + "//third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h", + "//third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/gen_scalers.c", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/vpx_scale.c", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/yv12config.c", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/yv12extend.c", + "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h", + "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale_rtcd.c", + "//third_party/libvpx/source/libvpx/vpx_scale/yv12config.h", + "//third_party/libvpx/source/libvpx/vpx_util/endian_inl.h", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_thread.c", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.c", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h", +] +libvpx_srcs_chromeos_arm_neon_assembly = [ + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct4x4_1_add_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct4x4_add_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/intrapred_neon_asm.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_16_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_4_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_8_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/save_reg_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_horiz_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_horiz_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_vert_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_vert_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_horiz_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_horiz_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_vert_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_vert_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_avg_neon_asm.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_copy_neon_asm.asm", +] +libvpx_srcs_chromeos_arm64 = [ + "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.c", + "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.h", + "//third_party/libvpx/source/libvpx/vp8/common/arm/loopfilter_arm.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/copymem_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/dc_only_idct_add_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/dequant_idct_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/dequantizeb_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/idct_blk_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/idct_dequant_0_2x_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/idct_dequant_full_2x_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/iwalsh_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/mbloopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/shortidct4x4llm_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/sixtappredict_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/arm/neon/vp8_loopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vp8/common/blockd.c", + "//third_party/libvpx/source/libvpx/vp8/common/blockd.h", + "//third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h", + "//third_party/libvpx/source/libvpx/vp8/common/common.h", + "//third_party/libvpx/source/libvpx/vp8/common/copy_c.c", + "//third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h", + "//third_party/libvpx/source/libvpx/vp8/common/dequantize.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropy.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropy.h", + "//third_party/libvpx/source/libvpx/vp8/common/entropymode.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropymode.h", + "//third_party/libvpx/source/libvpx/vp8/common/entropymv.c", + "//third_party/libvpx/source/libvpx/vp8/common/entropymv.h", + "//third_party/libvpx/source/libvpx/vp8/common/extend.c", + "//third_party/libvpx/source/libvpx/vp8/common/extend.h", + "//third_party/libvpx/source/libvpx/vp8/common/filter.c", + "//third_party/libvpx/source/libvpx/vp8/common/filter.h", + "//third_party/libvpx/source/libvpx/vp8/common/findnearmv.c", + "//third_party/libvpx/source/libvpx/vp8/common/findnearmv.h", + "//third_party/libvpx/source/libvpx/vp8/common/generic/systemdependent.c", + "//third_party/libvpx/source/libvpx/vp8/common/header.h", + "//third_party/libvpx/source/libvpx/vp8/common/idct_blk.c", + "//third_party/libvpx/source/libvpx/vp8/common/idctllm.c", + "//third_party/libvpx/source/libvpx/vp8/common/invtrans.h", + "//third_party/libvpx/source/libvpx/vp8/common/loopfilter.h", + "//third_party/libvpx/source/libvpx/vp8/common/loopfilter_filters.c", + "//third_party/libvpx/source/libvpx/vp8/common/mbpitch.c", + "//third_party/libvpx/source/libvpx/vp8/common/mfqe.c", + "//third_party/libvpx/source/libvpx/vp8/common/modecont.c", + "//third_party/libvpx/source/libvpx/vp8/common/modecont.h", + "//third_party/libvpx/source/libvpx/vp8/common/mv.h", + "//third_party/libvpx/source/libvpx/vp8/common/onyx.h", + "//third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h", + "//third_party/libvpx/source/libvpx/vp8/common/onyxd.h", + "//third_party/libvpx/source/libvpx/vp8/common/postproc.c", + "//third_party/libvpx/source/libvpx/vp8/common/postproc.h", + "//third_party/libvpx/source/libvpx/vp8/common/ppflags.h", + "//third_party/libvpx/source/libvpx/vp8/common/quant_common.c", + "//third_party/libvpx/source/libvpx/vp8/common/quant_common.h", + "//third_party/libvpx/source/libvpx/vp8/common/reconinter.c", + "//third_party/libvpx/source/libvpx/vp8/common/reconinter.h", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra.c", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra.h", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.c", + "//third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h", + "//third_party/libvpx/source/libvpx/vp8/common/rtcd.c", + "//third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.c", + "//third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h", + "//third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.c", + "//third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h", + "//third_party/libvpx/source/libvpx/vp8/common/systemdependent.h", + "//third_party/libvpx/source/libvpx/vp8/common/threading.h", + "//third_party/libvpx/source/libvpx/vp8/common/treecoder.c", + "//third_party/libvpx/source/libvpx/vp8/common/treecoder.h", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_loopfilter.c", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.c", + "//third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/decodemv.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/detokenize.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/onyxd_if.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h", + "//third_party/libvpx/source/libvpx/vp8/decoder/threading.c", + "//third_party/libvpx/source/libvpx/vp8/decoder/treereader.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/denoising_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/fastquantizeb_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/shortfdct_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/bitstream.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/block.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/dct.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/denoising.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/denoising.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemb.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemv.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/ethreading.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/lookahead.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/mcomp.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/modecosts.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/picklpf.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/quantize.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/segmentation.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/tokenize.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/treewriter.c", + "//third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h", + "//third_party/libvpx/source/libvpx/vp8/encoder/vp8_quantize.c", + "//third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c", + "//third_party/libvpx/source/libvpx/vp8/vp8_dx_iface.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_highbd_iht16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_highbd_iht4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_highbd_iht8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_filter.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_idct.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_rtcd.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scale.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scan.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.c", + "//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.c", + "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_dct_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_denoiser_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_frame_scale_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/arm/neon/vp9_quantize_neon.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_dct.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_frame_scale.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.c", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h", + "//third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c", + "//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.c", + "//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h", + "//third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h", + "//third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_codec.c", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_decoder.c", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c", + "//third_party/libvpx/source/libvpx/vpx/src/vpx_image.c", + "//third_party/libvpx/source/libvpx/vpx/vp8.h", + "//third_party/libvpx/source/libvpx/vpx/vp8cx.h", + "//third_party/libvpx/source/libvpx/vpx/vp8dx.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_codec.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_decoder.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_encoder.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_image.h", + "//third_party/libvpx/source/libvpx/vpx/vpx_integer.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/add_noise.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/avg_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/avg_pred_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/deblock_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct16x16_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct32x32_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fdct_partial_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/fwd_txfm_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/hadamard_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_1024_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_135_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_34_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct32x32_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_intrapred_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_loopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve8_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve_avg_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve_copy_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_vpx_convolve_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct16x16_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct16x16_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_135_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_34_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct32x32_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct4x4_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct4x4_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct8x8_1_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct8x8_add_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/intrapred_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/quantize_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sad4d_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sad_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/subpel_variance_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/subtract_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/variance_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_avg_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_copy_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_scaled_convolve8_neon.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/avg.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/deblock.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/intrapred.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/loopfilter.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/postproc.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/prob.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/prob.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/psnr.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/psnr.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/quantize.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/quantize.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/sad.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/subtract.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/sum_squares.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/variance.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/variance.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_rtcd.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h", + "//third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h", + "//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c", + "//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h", + "//third_party/libvpx/source/libvpx/vpx_ports/arm.h", + "//third_party/libvpx/source/libvpx/vpx_ports/arm_cpudetect.c", + "//third_party/libvpx/source/libvpx/vpx_ports/bitops.h", + "//third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h", + "//third_party/libvpx/source/libvpx/vpx_ports/mem.h", + "//third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h", + "//third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h", + "//third_party/libvpx/source/libvpx/vpx_ports/msvc.h", + "//third_party/libvpx/source/libvpx/vpx_ports/system_state.h", + "//third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h", + "//third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/gen_scalers.c", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/vpx_scale.c", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/yv12config.c", + "//third_party/libvpx/source/libvpx/vpx_scale/generic/yv12extend.c", + "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h", + "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale_rtcd.c", + "//third_party/libvpx/source/libvpx/vpx_scale/yv12config.h", + "//third_party/libvpx/source/libvpx/vpx_util/endian_inl.h", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_thread.c", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.c", + "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h", +] +libvpx_srcs_chromeos_arm64_assembly = [] libvpx_srcs_mips = [ "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.c", "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.h", @@ -2773,6 +3642,7 @@ libvpx_srcs_mips = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -3112,6 +3982,7 @@ libvpx_srcs_nacl = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -3450,6 +4321,7 @@ libvpx_srcs_generic = [ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", diff --git a/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm b/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm index 3a2f5e2a3dd..beb3351d00d 100644 --- a/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm @@ -88,5 +88,7 @@ .set CONFIG_ALWAYS_ADJUST_BPM , 0 .set CONFIG_FP_MB_STATS , 0 .set CONFIG_EMULATE_HARDWARE , 0 +.set CONFIG_NON_GREEDY_MV , 0 +.set CONFIG_ML_VAR_PARTITION , 0 .set DECODE_WIDTH_LIMIT , 16384 .set DECODE_HEIGHT_LIMIT , 16384 diff --git a/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h b/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h index 365206fe64a..7c92a2269b9 100644 --- a/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.asm b/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.asm index 42f5b41ddb1..2a02bb3a236 100644 --- a/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.asm @@ -88,5 +88,7 @@ .set CONFIG_ALWAYS_ADJUST_BPM , 0 .set CONFIG_FP_MB_STATS , 0 .set CONFIG_EMULATE_HARDWARE , 0 +.set CONFIG_NON_GREEDY_MV , 0 +.set CONFIG_ML_VAR_PARTITION , 0 .set DECODE_WIDTH_LIMIT , 16384 .set DECODE_HEIGHT_LIMIT , 16384 diff --git a/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.h b/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.h index 13e7637569b..3437c03c2d6 100644 --- a/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm index 3e38effd6ab..1733c41a544 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm @@ -85,6 +85,8 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h index 5b8efaedac0..1af5ae8954c 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm index 3c20871dc70..9887adfc6a7 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm @@ -85,6 +85,8 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h index 365206fe64a..7c92a2269b9 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.asm index 3d62667339d..13377ed6f8b 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.asm @@ -85,6 +85,8 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.h index fc57694a68d..e699eabf404 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/arm/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.asm index 02e9e46cbe8..d4de564055a 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.asm @@ -85,6 +85,8 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.h index 13e7637569b..3437c03c2d6 100644 --- a/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp8_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp8_rtcd.h new file mode 100644 index 00000000000..737afd52c16 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp8_rtcd.h @@ -0,0 +1,498 @@ +// This file is generated. Do not edit. +#ifndef VP8_RTCD_H_ +#define VP8_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +/* + * VP8 + */ + +struct blockd; +struct macroblockd; +struct loop_filter_info; + +/* Encoder forward decls */ +struct block; +struct macroblock; +struct variance_vtable; +union int_mv; +struct yv12_buffer_config; + +#ifdef __cplusplus +extern "C" { +#endif + +void vp8_bilinear_predict16x16_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict16x16_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon + +void vp8_bilinear_predict4x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict4x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon + +void vp8_bilinear_predict8x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict8x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon + +void vp8_bilinear_predict8x8_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict8x8_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon + +void vp8_blend_b_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int y1, + int u1, + int v1, + int alpha, + int stride); +#define vp8_blend_b vp8_blend_b_c + +void vp8_blend_mb_inner_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int y1, + int u1, + int v1, + int alpha, + int stride); +#define vp8_blend_mb_inner vp8_blend_mb_inner_c + +void vp8_blend_mb_outer_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int y1, + int u1, + int v1, + int alpha, + int stride); +#define vp8_blend_mb_outer vp8_blend_mb_outer_c + +int vp8_block_error_c(short* coeff, short* dqcoeff); +#define vp8_block_error vp8_block_error_c + +void vp8_copy_mem16x16_c(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +void vp8_copy_mem16x16_neon(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +#define vp8_copy_mem16x16 vp8_copy_mem16x16_neon + +void vp8_copy_mem8x4_c(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +void vp8_copy_mem8x4_neon(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +#define vp8_copy_mem8x4 vp8_copy_mem8x4_neon + +void vp8_copy_mem8x8_c(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +void vp8_copy_mem8x8_neon(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +#define vp8_copy_mem8x8 vp8_copy_mem8x8_neon + +void vp8_dc_only_idct_add_c(short input, + unsigned char* pred, + int pred_stride, + unsigned char* dst, + int dst_stride); +void vp8_dc_only_idct_add_neon(short input, + unsigned char* pred, + int pred_stride, + unsigned char* dst, + int dst_stride); +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon + +int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y, + int mc_avg_y_stride, + unsigned char* running_avg_y, + int avg_y_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +int vp8_denoiser_filter_neon(unsigned char* mc_running_avg_y, + int mc_avg_y_stride, + unsigned char* running_avg_y, + int avg_y_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +#define vp8_denoiser_filter vp8_denoiser_filter_neon + +int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg, + int mc_avg_stride, + unsigned char* running_avg, + int avg_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +int vp8_denoiser_filter_uv_neon(unsigned char* mc_running_avg, + int mc_avg_stride, + unsigned char* running_avg, + int avg_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_neon + +void vp8_dequant_idct_add_c(short* input, + short* dq, + unsigned char* output, + int stride); +void vp8_dequant_idct_add_neon(short* input, + short* dq, + unsigned char* output, + int stride); +#define vp8_dequant_idct_add vp8_dequant_idct_add_neon + +void vp8_dequant_idct_add_uv_block_c(short* q, + short* dq, + unsigned char* dst_u, + unsigned char* dst_v, + int stride, + char* eobs); +void vp8_dequant_idct_add_uv_block_neon(short* q, + short* dq, + unsigned char* dst_u, + unsigned char* dst_v, + int stride, + char* eobs); +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon + +void vp8_dequant_idct_add_y_block_c(short* q, + short* dq, + unsigned char* dst, + int stride, + char* eobs); +void vp8_dequant_idct_add_y_block_neon(short* q, + short* dq, + unsigned char* dst, + int stride, + char* eobs); +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon + +void vp8_dequantize_b_c(struct blockd*, short* dqc); +void vp8_dequantize_b_neon(struct blockd*, short* dqc); +#define vp8_dequantize_b vp8_dequantize_b_neon + +int vp8_diamond_search_sad_c(struct macroblock* x, + struct block* b, + struct blockd* d, + union int_mv* ref_mv, + union int_mv* best_mv, + int search_param, + int sad_per_bit, + int* num00, + struct variance_vtable* fn_ptr, + int* mvcost[2], + union int_mv* center_mv); +#define vp8_diamond_search_sad vp8_diamond_search_sad_c + +void vp8_fast_quantize_b_c(struct block*, struct blockd*); +void vp8_fast_quantize_b_neon(struct block*, struct blockd*); +#define vp8_fast_quantize_b vp8_fast_quantize_b_neon + +void vp8_filter_by_weight16x16_c(unsigned char* src, + int src_stride, + unsigned char* dst, + int dst_stride, + int src_weight); +#define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c + +void vp8_filter_by_weight4x4_c(unsigned char* src, + int src_stride, + unsigned char* dst, + int dst_stride, + int src_weight); +#define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c + +void vp8_filter_by_weight8x8_c(unsigned char* src, + int src_stride, + unsigned char* dst, + int dst_stride, + int src_weight); +#define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c + +int vp8_full_search_sad_c(struct macroblock* x, + struct block* b, + struct blockd* d, + union int_mv* ref_mv, + int sad_per_bit, + int distance, + struct variance_vtable* fn_ptr, + int* mvcost[2], + union int_mv* center_mv); +#define vp8_full_search_sad vp8_full_search_sad_c + +void vp8_loop_filter_bh_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_bh_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_bh vp8_loop_filter_bh_neon + +void vp8_loop_filter_bv_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_bv_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_bv vp8_loop_filter_bv_neon + +void vp8_loop_filter_mbh_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_mbh_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon + +void vp8_loop_filter_mbv_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_mbv_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon + +void vp8_loop_filter_bhs_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_bhs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon + +void vp8_loop_filter_bvs_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_bvs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon + +void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_mbhs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon + +void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_mbvs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon + +int vp8_mbblock_error_c(struct macroblock* mb, int dc); +#define vp8_mbblock_error vp8_mbblock_error_c + +int vp8_mbuverror_c(struct macroblock* mb); +#define vp8_mbuverror vp8_mbuverror_c + +int vp8_refining_search_sad_c(struct macroblock* x, + struct block* b, + struct blockd* d, + union int_mv* ref_mv, + int sad_per_bit, + int distance, + struct variance_vtable* fn_ptr, + int* mvcost[2], + union int_mv* center_mv); +#define vp8_refining_search_sad vp8_refining_search_sad_c + +void vp8_regular_quantize_b_c(struct block*, struct blockd*); +#define vp8_regular_quantize_b vp8_regular_quantize_b_c + +void vp8_short_fdct4x4_c(short* input, short* output, int pitch); +void vp8_short_fdct4x4_neon(short* input, short* output, int pitch); +#define vp8_short_fdct4x4 vp8_short_fdct4x4_neon + +void vp8_short_fdct8x4_c(short* input, short* output, int pitch); +void vp8_short_fdct8x4_neon(short* input, short* output, int pitch); +#define vp8_short_fdct8x4 vp8_short_fdct8x4_neon + +void vp8_short_idct4x4llm_c(short* input, + unsigned char* pred, + int pitch, + unsigned char* dst, + int dst_stride); +void vp8_short_idct4x4llm_neon(short* input, + unsigned char* pred, + int pitch, + unsigned char* dst, + int dst_stride); +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon + +void vp8_short_inv_walsh4x4_c(short* input, short* output); +void vp8_short_inv_walsh4x4_neon(short* input, short* output); +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon + +void vp8_short_inv_walsh4x4_1_c(short* input, short* output); +#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c + +void vp8_short_walsh4x4_c(short* input, short* output, int pitch); +void vp8_short_walsh4x4_neon(short* input, short* output, int pitch); +#define vp8_short_walsh4x4 vp8_short_walsh4x4_neon + +void vp8_sixtap_predict16x16_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict16x16_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon + +void vp8_sixtap_predict4x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict4x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon + +void vp8_sixtap_predict8x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict8x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon + +void vp8_sixtap_predict8x8_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict8x8_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon + +void vp8_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp9_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp9_rtcd.h new file mode 100644 index 00000000000..574cd7a7d94 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp9_rtcd.h @@ -0,0 +1,369 @@ +// This file is generated. Do not edit. +#ifndef VP9_RTCD_H_ +#define VP9_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +/* + * VP9 + */ + +#include "vp9/common/vp9_common.h" +#include "vp9/common/vp9_enums.h" +#include "vp9/common/vp9_filter.h" +#include "vpx/vpx_integer.h" + +struct macroblockd; + +/* Encoder forward decls */ +struct macroblock; +struct vp9_variance_vtable; +struct search_site_config; +struct mv; +union int_mv; +struct yv12_buffer_config; + +#ifdef __cplusplus +extern "C" { +#endif + +int64_t vp9_block_error_c(const tran_low_t* coeff, + const tran_low_t* dqcoeff, + intptr_t block_size, + int64_t* ssz); +#define vp9_block_error vp9_block_error_c + +int64_t vp9_block_error_fp_c(const tran_low_t* coeff, + const tran_low_t* dqcoeff, + int block_size); +#define vp9_block_error_fp vp9_block_error_fp_c + +int vp9_denoiser_filter_c(const uint8_t* sig, + int sig_stride, + const uint8_t* mc_avg, + int mc_avg_stride, + uint8_t* avg, + int avg_stride, + int increase_denoising, + BLOCK_SIZE bs, + int motion_magnitude); +int vp9_denoiser_filter_neon(const uint8_t* sig, + int sig_stride, + const uint8_t* mc_avg, + int mc_avg_stride, + uint8_t* avg, + int avg_stride, + int increase_denoising, + BLOCK_SIZE bs, + int motion_magnitude); +#define vp9_denoiser_filter vp9_denoiser_filter_neon + +int vp9_diamond_search_sad_c(const struct macroblock* x, + const struct search_site_config* cfg, + struct mv* ref_mv, + struct mv* best_mv, + int search_param, + int sad_per_bit, + int* num00, + const struct vp9_variance_vtable* fn_ptr, + const struct mv* center_mv); +#define vp9_diamond_search_sad vp9_diamond_search_sad_c + +void vp9_fdct8x8_quant_c(const int16_t* input, + int stride, + tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vp9_fdct8x8_quant_neon(const int16_t* input, + int stride, + tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_fdct8x8_quant vp9_fdct8x8_quant_neon + +void vp9_fht16x16_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_fht16x16 vp9_fht16x16_c + +void vp9_fht4x4_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_fht4x4 vp9_fht4x4_c + +void vp9_fht8x8_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_fht8x8 vp9_fht8x8_c + +void vp9_filter_by_weight16x16_c(const uint8_t* src, + int src_stride, + uint8_t* dst, + int dst_stride, + int src_weight); +#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c + +void vp9_filter_by_weight8x8_c(const uint8_t* src, + int src_stride, + uint8_t* dst, + int dst_stride, + int src_weight); +#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c + +void vp9_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride); +#define vp9_fwht4x4 vp9_fwht4x4_c + +int64_t vp9_highbd_block_error_c(const tran_low_t* coeff, + const tran_low_t* dqcoeff, + intptr_t block_size, + int64_t* ssz, + int bd); +#define vp9_highbd_block_error vp9_highbd_block_error_c + +void vp9_highbd_fht16x16_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_highbd_fht16x16 vp9_highbd_fht16x16_c + +void vp9_highbd_fht4x4_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_highbd_fht4x4 vp9_highbd_fht4x4_c + +void vp9_highbd_fht8x8_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_highbd_fht8x8 vp9_highbd_fht8x8_c + +void vp9_highbd_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride); +#define vp9_highbd_fwht4x4 vp9_highbd_fwht4x4_c + +void vp9_highbd_iht16x16_256_add_c(const tran_low_t* input, + uint16_t* output, + int pitch, + int tx_type, + int bd); +void vp9_highbd_iht16x16_256_add_neon(const tran_low_t* input, + uint16_t* output, + int pitch, + int tx_type, + int bd); +#define vp9_highbd_iht16x16_256_add vp9_highbd_iht16x16_256_add_neon + +void vp9_highbd_iht4x4_16_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +void vp9_highbd_iht4x4_16_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +#define vp9_highbd_iht4x4_16_add vp9_highbd_iht4x4_16_add_neon + +void vp9_highbd_iht8x8_64_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +void vp9_highbd_iht8x8_64_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +#define vp9_highbd_iht8x8_64_add vp9_highbd_iht8x8_64_add_neon + +void vp9_highbd_mbpost_proc_across_ip_c(uint16_t* src, + int pitch, + int rows, + int cols, + int flimit); +#define vp9_highbd_mbpost_proc_across_ip vp9_highbd_mbpost_proc_across_ip_c + +void vp9_highbd_mbpost_proc_down_c(uint16_t* dst, + int pitch, + int rows, + int cols, + int flimit); +#define vp9_highbd_mbpost_proc_down vp9_highbd_mbpost_proc_down_c + +void vp9_highbd_post_proc_down_and_across_c(const uint16_t* src_ptr, + uint16_t* dst_ptr, + int src_pixels_per_line, + int dst_pixels_per_line, + int rows, + int cols, + int flimit); +#define vp9_highbd_post_proc_down_and_across \ + vp9_highbd_post_proc_down_and_across_c + +void vp9_highbd_quantize_fp_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_highbd_quantize_fp vp9_highbd_quantize_fp_c + +void vp9_highbd_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_highbd_quantize_fp_32x32 vp9_highbd_quantize_fp_32x32_c + +void vp9_highbd_temporal_filter_apply_c(const uint8_t* frame1, + unsigned int stride, + const uint8_t* frame2, + unsigned int block_width, + unsigned int block_height, + int strength, + int filter_weight, + uint32_t* accumulator, + uint16_t* count); +#define vp9_highbd_temporal_filter_apply vp9_highbd_temporal_filter_apply_c + +void vp9_iht16x16_256_add_c(const tran_low_t* input, + uint8_t* output, + int pitch, + int tx_type); +void vp9_iht16x16_256_add_neon(const tran_low_t* input, + uint8_t* output, + int pitch, + int tx_type); +#define vp9_iht16x16_256_add vp9_iht16x16_256_add_neon + +void vp9_iht4x4_16_add_c(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +void vp9_iht4x4_16_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +#define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon + +void vp9_iht8x8_64_add_c(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +void vp9_iht8x8_64_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +#define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon + +void vp9_quantize_fp_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vp9_quantize_fp_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_quantize_fp vp9_quantize_fp_neon + +void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vp9_quantize_fp_32x32_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_neon + +void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config* src, + struct yv12_buffer_config* dst, + INTERP_FILTER filter_type, + int phase_scaler); +void vp9_scale_and_extend_frame_neon(const struct yv12_buffer_config* src, + struct yv12_buffer_config* dst, + INTERP_FILTER filter_type, + int phase_scaler); +#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_neon + +void vp9_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.asm new file mode 100644 index 00000000000..75e9f0fccf1 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.asm @@ -0,0 +1,92 @@ +@ This file was created from a .asm file +@ using the ads2gas.pl script. + .equ DO1STROUNDING, 0 + .syntax unified +.equ ARCH_ARM , 1 +.equ ARCH_MIPS , 0 +.equ ARCH_X86 , 0 +.equ ARCH_X86_64 , 0 +.equ ARCH_PPC , 0 +.equ HAVE_NEON , 1 +.equ HAVE_NEON_ASM , 1 +.equ HAVE_MIPS32 , 0 +.equ HAVE_DSPR2 , 0 +.equ HAVE_MSA , 0 +.equ HAVE_MIPS64 , 0 +.equ HAVE_MMX , 0 +.equ HAVE_SSE , 0 +.equ HAVE_SSE2 , 0 +.equ HAVE_SSE3 , 0 +.equ HAVE_SSSE3 , 0 +.equ HAVE_SSE4_1 , 0 +.equ HAVE_AVX , 0 +.equ HAVE_AVX2 , 0 +.equ HAVE_AVX512 , 0 +.equ HAVE_VSX , 0 +.equ HAVE_MMI , 0 +.equ HAVE_VPX_PORTS , 1 +.equ HAVE_PTHREAD_H , 1 +.equ HAVE_UNISTD_H , 0 +.equ CONFIG_DEPENDENCY_TRACKING , 1 +.equ CONFIG_EXTERNAL_BUILD , 1 +.equ CONFIG_INSTALL_DOCS , 0 +.equ CONFIG_INSTALL_BINS , 1 +.equ CONFIG_INSTALL_LIBS , 1 +.equ CONFIG_INSTALL_SRCS , 0 +.equ CONFIG_DEBUG , 0 +.equ CONFIG_GPROF , 0 +.equ CONFIG_GCOV , 0 +.equ CONFIG_RVCT , 0 +.equ CONFIG_GCC , 1 +.equ CONFIG_MSVS , 0 +.equ CONFIG_PIC , 0 +.equ CONFIG_BIG_ENDIAN , 0 +.equ CONFIG_CODEC_SRCS , 0 +.equ CONFIG_DEBUG_LIBS , 0 +.equ CONFIG_DEQUANT_TOKENS , 0 +.equ CONFIG_DC_RECON , 0 +.equ CONFIG_RUNTIME_CPU_DETECT , 0 +.equ CONFIG_POSTPROC , 1 +.equ CONFIG_VP9_POSTPROC , 1 +.equ CONFIG_MULTITHREAD , 1 +.equ CONFIG_INTERNAL_STATS , 0 +.equ CONFIG_VP8_ENCODER , 1 +.equ CONFIG_VP8_DECODER , 1 +.equ CONFIG_VP9_ENCODER , 1 +.equ CONFIG_VP9_DECODER , 1 +.equ CONFIG_VP8 , 1 +.equ CONFIG_VP9 , 1 +.equ CONFIG_ENCODERS , 1 +.equ CONFIG_DECODERS , 1 +.equ CONFIG_STATIC_MSVCRT , 0 +.equ CONFIG_SPATIAL_RESAMPLING , 1 +.equ CONFIG_REALTIME_ONLY , 1 +.equ CONFIG_ONTHEFLY_BITPACKING , 0 +.equ CONFIG_ERROR_CONCEALMENT , 0 +.equ CONFIG_SHARED , 0 +.equ CONFIG_STATIC , 1 +.equ CONFIG_SMALL , 0 +.equ CONFIG_POSTPROC_VISUALIZER , 0 +.equ CONFIG_OS_SUPPORT , 1 +.equ CONFIG_UNIT_TESTS , 1 +.equ CONFIG_WEBM_IO , 1 +.equ CONFIG_LIBYUV , 1 +.equ CONFIG_DECODE_PERF_TESTS , 0 +.equ CONFIG_ENCODE_PERF_TESTS , 0 +.equ CONFIG_MULTI_RES_ENCODING , 1 +.equ CONFIG_TEMPORAL_DENOISING , 1 +.equ CONFIG_VP9_TEMPORAL_DENOISING , 1 +.equ CONFIG_CONSISTENT_RECODE , 0 +.equ CONFIG_COEFFICIENT_RANGE_CHECKING , 0 +.equ CONFIG_VP9_HIGHBITDEPTH , 1 +.equ CONFIG_BETTER_HW_COMPATIBILITY , 0 +.equ CONFIG_EXPERIMENTAL , 0 +.equ CONFIG_SIZE_LIMIT , 1 +.equ CONFIG_ALWAYS_ADJUST_BPM , 0 +.equ CONFIG_FP_MB_STATS , 0 +.equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 +.equ DECODE_WIDTH_LIMIT , 16384 +.equ DECODE_HEIGHT_LIMIT , 16384 + .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.c b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.c new file mode 100644 index 00000000000..d3681506fef --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.c @@ -0,0 +1,10 @@ +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ +/* */ +/* Use of this source code is governed by a BSD-style license */ +/* that can be found in the LICENSE file in the root of the source */ +/* tree. An additional intellectual property rights grant can be found */ +/* in the file PATENTS. All contributing project authors may */ +/* be found in the AUTHORS file in the root of the source tree. */ +#include "vpx/vpx_codec.h" +static const char* const cfg = "--target=armv7-linux-gcc --enable-external-build --enable-postproc --enable-multi-res-encoding --enable-temporal-denoising --enable-vp9-temporal-denoising --enable-vp9-postproc --size-limit=16384x16384 --enable-realtime-only --disable-install-docs --enable-vp9-highbitdepth"; +const char *vpx_codec_build_config(void) {return cfg;} diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.h new file mode 100644 index 00000000000..3e56331e538 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.h @@ -0,0 +1,100 @@ +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ +/* */ +/* Use of this source code is governed by a BSD-style license */ +/* that can be found in the LICENSE file in the root of the source */ +/* tree. An additional intellectual property rights grant can be found */ +/* in the file PATENTS. All contributing project authors may */ +/* be found in the AUTHORS file in the root of the source tree. */ +/* This file automatically generated by configure. Do not edit! */ +#ifndef VPX_CONFIG_H +#define VPX_CONFIG_H +#define RESTRICT +#define INLINE inline +#define ARCH_ARM 1 +#define ARCH_MIPS 0 +#define ARCH_X86 0 +#define ARCH_X86_64 0 +#define ARCH_PPC 0 +#define HAVE_NEON 1 +#define HAVE_NEON_ASM 1 +#define HAVE_MIPS32 0 +#define HAVE_DSPR2 0 +#define HAVE_MSA 0 +#define HAVE_MIPS64 0 +#define HAVE_MMX 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 +#define HAVE_SSE3 0 +#define HAVE_SSSE3 0 +#define HAVE_SSE4_1 0 +#define HAVE_AVX 0 +#define HAVE_AVX2 0 +#define HAVE_AVX512 0 +#define HAVE_VSX 0 +#define HAVE_MMI 0 +#define HAVE_VPX_PORTS 1 +#define HAVE_PTHREAD_H 1 +#define HAVE_UNISTD_H 0 +#define CONFIG_DEPENDENCY_TRACKING 1 +#define CONFIG_EXTERNAL_BUILD 1 +#define CONFIG_INSTALL_DOCS 0 +#define CONFIG_INSTALL_BINS 1 +#define CONFIG_INSTALL_LIBS 1 +#define CONFIG_INSTALL_SRCS 0 +#define CONFIG_DEBUG 0 +#define CONFIG_GPROF 0 +#define CONFIG_GCOV 0 +#define CONFIG_RVCT 0 +#define CONFIG_GCC 1 +#define CONFIG_MSVS 0 +#define CONFIG_PIC 0 +#define CONFIG_BIG_ENDIAN 0 +#define CONFIG_CODEC_SRCS 0 +#define CONFIG_DEBUG_LIBS 0 +#define CONFIG_DEQUANT_TOKENS 0 +#define CONFIG_DC_RECON 0 +#define CONFIG_RUNTIME_CPU_DETECT 0 +#define CONFIG_POSTPROC 1 +#define CONFIG_VP9_POSTPROC 1 +#define CONFIG_MULTITHREAD 1 +#define CONFIG_INTERNAL_STATS 0 +#define CONFIG_VP8_ENCODER 1 +#define CONFIG_VP8_DECODER 1 +#define CONFIG_VP9_ENCODER 1 +#define CONFIG_VP9_DECODER 1 +#define CONFIG_VP8 1 +#define CONFIG_VP9 1 +#define CONFIG_ENCODERS 1 +#define CONFIG_DECODERS 1 +#define CONFIG_STATIC_MSVCRT 0 +#define CONFIG_SPATIAL_RESAMPLING 1 +#define CONFIG_REALTIME_ONLY 1 +#define CONFIG_ONTHEFLY_BITPACKING 0 +#define CONFIG_ERROR_CONCEALMENT 0 +#define CONFIG_SHARED 0 +#define CONFIG_STATIC 1 +#define CONFIG_SMALL 0 +#define CONFIG_POSTPROC_VISUALIZER 0 +#define CONFIG_OS_SUPPORT 1 +#define CONFIG_UNIT_TESTS 1 +#define CONFIG_WEBM_IO 1 +#define CONFIG_LIBYUV 1 +#define CONFIG_DECODE_PERF_TESTS 0 +#define CONFIG_ENCODE_PERF_TESTS 0 +#define CONFIG_MULTI_RES_ENCODING 1 +#define CONFIG_TEMPORAL_DENOISING 1 +#define CONFIG_VP9_TEMPORAL_DENOISING 1 +#define CONFIG_CONSISTENT_RECODE 0 +#define CONFIG_COEFFICIENT_RANGE_CHECKING 0 +#define CONFIG_VP9_HIGHBITDEPTH 1 +#define CONFIG_BETTER_HW_COMPATIBILITY 0 +#define CONFIG_EXPERIMENTAL 0 +#define CONFIG_SIZE_LIMIT 1 +#define CONFIG_ALWAYS_ADJUST_BPM 0 +#define CONFIG_FP_MB_STATS 0 +#define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 +#define DECODE_WIDTH_LIMIT 16384 +#define DECODE_HEIGHT_LIMIT 16384 +#endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_dsp_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_dsp_rtcd.h new file mode 100644 index 00000000000..13fe98c482b --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_dsp_rtcd.h @@ -0,0 +1,5166 @@ +// This file is generated. Do not edit. +#ifndef VPX_DSP_RTCD_H_ +#define VPX_DSP_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +/* + * DSP + */ + +#include "vpx/vpx_integer.h" +#include "vpx_dsp/vpx_dsp_common.h" +#include "vpx_dsp/vpx_filter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +unsigned int vpx_avg_4x4_c(const uint8_t*, int p); +unsigned int vpx_avg_4x4_neon(const uint8_t*, int p); +#define vpx_avg_4x4 vpx_avg_4x4_neon + +unsigned int vpx_avg_8x8_c(const uint8_t*, int p); +unsigned int vpx_avg_8x8_neon(const uint8_t*, int p); +#define vpx_avg_8x8 vpx_avg_8x8_neon + +void vpx_comp_avg_pred_c(uint8_t* comp_pred, + const uint8_t* pred, + int width, + int height, + const uint8_t* ref, + int ref_stride); +void vpx_comp_avg_pred_neon(uint8_t* comp_pred, + const uint8_t* pred, + int width, + int height, + const uint8_t* ref, + int ref_stride); +#define vpx_comp_avg_pred vpx_comp_avg_pred_neon + +void vpx_convolve8_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8 vpx_convolve8_neon + +void vpx_convolve8_avg_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_avg_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_avg vpx_convolve8_avg_neon + +void vpx_convolve8_avg_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_avg_horiz_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_neon + +void vpx_convolve8_avg_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_avg_vert_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_neon + +void vpx_convolve8_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_horiz_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_horiz vpx_convolve8_horiz_neon + +void vpx_convolve8_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_vert_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_vert vpx_convolve8_vert_neon + +void vpx_convolve_avg_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve_avg_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve_avg vpx_convolve_avg_neon + +void vpx_convolve_copy_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve_copy_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve_copy vpx_convolve_copy_neon + +void vpx_d117_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c + +void vpx_d117_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c + +void vpx_d117_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c + +void vpx_d117_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c + +void vpx_d135_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_neon + +void vpx_d135_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_neon + +void vpx_d135_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_neon + +void vpx_d135_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_neon + +void vpx_d153_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c + +void vpx_d153_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c + +void vpx_d153_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c + +void vpx_d153_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c + +void vpx_d207_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c + +void vpx_d207_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c + +void vpx_d207_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c + +void vpx_d207_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c + +void vpx_d45_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_neon + +void vpx_d45_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_neon + +void vpx_d45_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_neon + +void vpx_d45_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_neon + +void vpx_d45e_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c + +void vpx_d63_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c + +void vpx_d63_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c + +void vpx_d63_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c + +void vpx_d63_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c + +void vpx_d63e_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c + +void vpx_dc_128_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_neon + +void vpx_dc_128_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_neon + +void vpx_dc_128_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_neon + +void vpx_dc_128_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_neon + +void vpx_dc_left_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_neon + +void vpx_dc_left_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_neon + +void vpx_dc_left_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_neon + +void vpx_dc_left_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_neon + +void vpx_dc_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_neon + +void vpx_dc_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_neon + +void vpx_dc_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_neon + +void vpx_dc_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_neon + +void vpx_dc_top_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_neon + +void vpx_dc_top_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_neon + +void vpx_dc_top_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_neon + +void vpx_dc_top_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_neon + +void vpx_fdct16x16_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct16x16_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct16x16 vpx_fdct16x16_neon + +void vpx_fdct16x16_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct16x16_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct16x16_1 vpx_fdct16x16_1_neon + +void vpx_fdct32x32_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct32x32_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct32x32 vpx_fdct32x32_neon + +void vpx_fdct32x32_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct32x32_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct32x32_1 vpx_fdct32x32_1_neon + +void vpx_fdct32x32_rd_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct32x32_rd_neon(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_fdct32x32_rd vpx_fdct32x32_rd_neon + +void vpx_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct4x4_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct4x4 vpx_fdct4x4_neon + +void vpx_fdct4x4_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct4x4_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct4x4_1 vpx_fdct4x4_1_neon + +void vpx_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct8x8_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct8x8 vpx_fdct8x8_neon + +void vpx_fdct8x8_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct8x8_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct8x8_1 vpx_fdct8x8_1_neon + +void vpx_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +void vpx_get16x16var_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_get16x16var vpx_get16x16var_neon + +unsigned int vpx_get4x4sse_cs_c(const unsigned char* src_ptr, + int source_stride, + const unsigned char* ref_ptr, + int ref_stride); +unsigned int vpx_get4x4sse_cs_neon(const unsigned char* src_ptr, + int source_stride, + const unsigned char* ref_ptr, + int ref_stride); +#define vpx_get4x4sse_cs vpx_get4x4sse_cs_neon + +void vpx_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +void vpx_get8x8var_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_get8x8var vpx_get8x8var_neon + +unsigned int vpx_get_mb_ss_c(const int16_t*); +#define vpx_get_mb_ss vpx_get_mb_ss_c + +void vpx_h_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_neon + +void vpx_h_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_neon + +void vpx_h_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_neon + +void vpx_h_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_neon + +void vpx_hadamard_16x16_c(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +void vpx_hadamard_16x16_neon(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +#define vpx_hadamard_16x16 vpx_hadamard_16x16_neon + +void vpx_hadamard_32x32_c(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +#define vpx_hadamard_32x32 vpx_hadamard_32x32_c + +void vpx_hadamard_8x8_c(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +void vpx_hadamard_8x8_neon(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +#define vpx_hadamard_8x8 vpx_hadamard_8x8_neon + +void vpx_he_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c + +void vpx_highbd_10_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_10_get16x16var vpx_highbd_10_get16x16var_c + +void vpx_highbd_10_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_10_get8x8var vpx_highbd_10_get8x8var_c + +unsigned int vpx_highbd_10_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse16x16 vpx_highbd_10_mse16x16_c + +unsigned int vpx_highbd_10_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse16x8 vpx_highbd_10_mse16x8_c + +unsigned int vpx_highbd_10_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse8x16 vpx_highbd_10_mse8x16_c + +unsigned int vpx_highbd_10_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse8x8 vpx_highbd_10_mse8x8_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance16x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance16x16 \ + vpx_highbd_10_sub_pixel_avg_variance16x16_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance16x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance16x32 \ + vpx_highbd_10_sub_pixel_avg_variance16x32_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance16x8 \ + vpx_highbd_10_sub_pixel_avg_variance16x8_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance32x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance32x16 \ + vpx_highbd_10_sub_pixel_avg_variance32x16_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance32x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance32x32 \ + vpx_highbd_10_sub_pixel_avg_variance32x32_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance32x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance32x64 \ + vpx_highbd_10_sub_pixel_avg_variance32x64_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance4x4 \ + vpx_highbd_10_sub_pixel_avg_variance4x4_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance4x8 \ + vpx_highbd_10_sub_pixel_avg_variance4x8_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance64x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance64x32 \ + vpx_highbd_10_sub_pixel_avg_variance64x32_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance64x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance64x64 \ + vpx_highbd_10_sub_pixel_avg_variance64x64_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance8x16 \ + vpx_highbd_10_sub_pixel_avg_variance8x16_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance8x4 \ + vpx_highbd_10_sub_pixel_avg_variance8x4_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance8x8 \ + vpx_highbd_10_sub_pixel_avg_variance8x8_c + +uint32_t vpx_highbd_10_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance16x16 \ + vpx_highbd_10_sub_pixel_variance16x16_c + +uint32_t vpx_highbd_10_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance16x32 \ + vpx_highbd_10_sub_pixel_variance16x32_c + +uint32_t vpx_highbd_10_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance16x8 \ + vpx_highbd_10_sub_pixel_variance16x8_c + +uint32_t vpx_highbd_10_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance32x16 \ + vpx_highbd_10_sub_pixel_variance32x16_c + +uint32_t vpx_highbd_10_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance32x32 \ + vpx_highbd_10_sub_pixel_variance32x32_c + +uint32_t vpx_highbd_10_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance32x64 \ + vpx_highbd_10_sub_pixel_variance32x64_c + +uint32_t vpx_highbd_10_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance4x4 \ + vpx_highbd_10_sub_pixel_variance4x4_c + +uint32_t vpx_highbd_10_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance4x8 \ + vpx_highbd_10_sub_pixel_variance4x8_c + +uint32_t vpx_highbd_10_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance64x32 \ + vpx_highbd_10_sub_pixel_variance64x32_c + +uint32_t vpx_highbd_10_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance64x64 \ + vpx_highbd_10_sub_pixel_variance64x64_c + +uint32_t vpx_highbd_10_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance8x16 \ + vpx_highbd_10_sub_pixel_variance8x16_c + +uint32_t vpx_highbd_10_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance8x4 \ + vpx_highbd_10_sub_pixel_variance8x4_c + +uint32_t vpx_highbd_10_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance8x8 \ + vpx_highbd_10_sub_pixel_variance8x8_c + +unsigned int vpx_highbd_10_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance16x16 vpx_highbd_10_variance16x16_c + +unsigned int vpx_highbd_10_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance16x32 vpx_highbd_10_variance16x32_c + +unsigned int vpx_highbd_10_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance16x8 vpx_highbd_10_variance16x8_c + +unsigned int vpx_highbd_10_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance32x16 vpx_highbd_10_variance32x16_c + +unsigned int vpx_highbd_10_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance32x32 vpx_highbd_10_variance32x32_c + +unsigned int vpx_highbd_10_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance32x64 vpx_highbd_10_variance32x64_c + +unsigned int vpx_highbd_10_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance4x4 vpx_highbd_10_variance4x4_c + +unsigned int vpx_highbd_10_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance4x8 vpx_highbd_10_variance4x8_c + +unsigned int vpx_highbd_10_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance64x32 vpx_highbd_10_variance64x32_c + +unsigned int vpx_highbd_10_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance64x64 vpx_highbd_10_variance64x64_c + +unsigned int vpx_highbd_10_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance8x16 vpx_highbd_10_variance8x16_c + +unsigned int vpx_highbd_10_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance8x4 vpx_highbd_10_variance8x4_c + +unsigned int vpx_highbd_10_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance8x8 vpx_highbd_10_variance8x8_c + +void vpx_highbd_12_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_12_get16x16var vpx_highbd_12_get16x16var_c + +void vpx_highbd_12_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_12_get8x8var vpx_highbd_12_get8x8var_c + +unsigned int vpx_highbd_12_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse16x16 vpx_highbd_12_mse16x16_c + +unsigned int vpx_highbd_12_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse16x8 vpx_highbd_12_mse16x8_c + +unsigned int vpx_highbd_12_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse8x16 vpx_highbd_12_mse8x16_c + +unsigned int vpx_highbd_12_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse8x8 vpx_highbd_12_mse8x8_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance16x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance16x16 \ + vpx_highbd_12_sub_pixel_avg_variance16x16_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance16x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance16x32 \ + vpx_highbd_12_sub_pixel_avg_variance16x32_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance16x8 \ + vpx_highbd_12_sub_pixel_avg_variance16x8_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance32x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance32x16 \ + vpx_highbd_12_sub_pixel_avg_variance32x16_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance32x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance32x32 \ + vpx_highbd_12_sub_pixel_avg_variance32x32_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance32x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance32x64 \ + vpx_highbd_12_sub_pixel_avg_variance32x64_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance4x4 \ + vpx_highbd_12_sub_pixel_avg_variance4x4_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance4x8 \ + vpx_highbd_12_sub_pixel_avg_variance4x8_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance64x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance64x32 \ + vpx_highbd_12_sub_pixel_avg_variance64x32_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance64x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance64x64 \ + vpx_highbd_12_sub_pixel_avg_variance64x64_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance8x16 \ + vpx_highbd_12_sub_pixel_avg_variance8x16_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance8x4 \ + vpx_highbd_12_sub_pixel_avg_variance8x4_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance8x8 \ + vpx_highbd_12_sub_pixel_avg_variance8x8_c + +uint32_t vpx_highbd_12_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance16x16 \ + vpx_highbd_12_sub_pixel_variance16x16_c + +uint32_t vpx_highbd_12_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance16x32 \ + vpx_highbd_12_sub_pixel_variance16x32_c + +uint32_t vpx_highbd_12_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance16x8 \ + vpx_highbd_12_sub_pixel_variance16x8_c + +uint32_t vpx_highbd_12_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance32x16 \ + vpx_highbd_12_sub_pixel_variance32x16_c + +uint32_t vpx_highbd_12_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance32x32 \ + vpx_highbd_12_sub_pixel_variance32x32_c + +uint32_t vpx_highbd_12_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance32x64 \ + vpx_highbd_12_sub_pixel_variance32x64_c + +uint32_t vpx_highbd_12_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance4x4 \ + vpx_highbd_12_sub_pixel_variance4x4_c + +uint32_t vpx_highbd_12_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance4x8 \ + vpx_highbd_12_sub_pixel_variance4x8_c + +uint32_t vpx_highbd_12_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance64x32 \ + vpx_highbd_12_sub_pixel_variance64x32_c + +uint32_t vpx_highbd_12_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance64x64 \ + vpx_highbd_12_sub_pixel_variance64x64_c + +uint32_t vpx_highbd_12_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance8x16 \ + vpx_highbd_12_sub_pixel_variance8x16_c + +uint32_t vpx_highbd_12_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance8x4 \ + vpx_highbd_12_sub_pixel_variance8x4_c + +uint32_t vpx_highbd_12_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance8x8 \ + vpx_highbd_12_sub_pixel_variance8x8_c + +unsigned int vpx_highbd_12_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance16x16 vpx_highbd_12_variance16x16_c + +unsigned int vpx_highbd_12_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance16x32 vpx_highbd_12_variance16x32_c + +unsigned int vpx_highbd_12_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance16x8 vpx_highbd_12_variance16x8_c + +unsigned int vpx_highbd_12_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance32x16 vpx_highbd_12_variance32x16_c + +unsigned int vpx_highbd_12_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance32x32 vpx_highbd_12_variance32x32_c + +unsigned int vpx_highbd_12_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance32x64 vpx_highbd_12_variance32x64_c + +unsigned int vpx_highbd_12_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance4x4 vpx_highbd_12_variance4x4_c + +unsigned int vpx_highbd_12_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance4x8 vpx_highbd_12_variance4x8_c + +unsigned int vpx_highbd_12_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance64x32 vpx_highbd_12_variance64x32_c + +unsigned int vpx_highbd_12_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance64x64 vpx_highbd_12_variance64x64_c + +unsigned int vpx_highbd_12_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance8x16 vpx_highbd_12_variance8x16_c + +unsigned int vpx_highbd_12_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance8x4 vpx_highbd_12_variance8x4_c + +unsigned int vpx_highbd_12_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance8x8 vpx_highbd_12_variance8x8_c + +void vpx_highbd_8_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_8_get16x16var vpx_highbd_8_get16x16var_c + +void vpx_highbd_8_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_8_get8x8var vpx_highbd_8_get8x8var_c + +unsigned int vpx_highbd_8_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse16x16 vpx_highbd_8_mse16x16_c + +unsigned int vpx_highbd_8_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse16x8 vpx_highbd_8_mse16x8_c + +unsigned int vpx_highbd_8_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse8x16 vpx_highbd_8_mse8x16_c + +unsigned int vpx_highbd_8_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse8x8 vpx_highbd_8_mse8x8_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance16x16 \ + vpx_highbd_8_sub_pixel_avg_variance16x16_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance16x32 \ + vpx_highbd_8_sub_pixel_avg_variance16x32_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance16x8 \ + vpx_highbd_8_sub_pixel_avg_variance16x8_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance32x16 \ + vpx_highbd_8_sub_pixel_avg_variance32x16_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance32x32 \ + vpx_highbd_8_sub_pixel_avg_variance32x32_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance32x64 \ + vpx_highbd_8_sub_pixel_avg_variance32x64_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance4x4 \ + vpx_highbd_8_sub_pixel_avg_variance4x4_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance4x8 \ + vpx_highbd_8_sub_pixel_avg_variance4x8_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance64x32 \ + vpx_highbd_8_sub_pixel_avg_variance64x32_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance64x64 \ + vpx_highbd_8_sub_pixel_avg_variance64x64_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance8x16 \ + vpx_highbd_8_sub_pixel_avg_variance8x16_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance8x4 \ + vpx_highbd_8_sub_pixel_avg_variance8x4_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance8x8 \ + vpx_highbd_8_sub_pixel_avg_variance8x8_c + +uint32_t vpx_highbd_8_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance16x16 \ + vpx_highbd_8_sub_pixel_variance16x16_c + +uint32_t vpx_highbd_8_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance16x32 \ + vpx_highbd_8_sub_pixel_variance16x32_c + +uint32_t vpx_highbd_8_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance16x8 \ + vpx_highbd_8_sub_pixel_variance16x8_c + +uint32_t vpx_highbd_8_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance32x16 \ + vpx_highbd_8_sub_pixel_variance32x16_c + +uint32_t vpx_highbd_8_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance32x32 \ + vpx_highbd_8_sub_pixel_variance32x32_c + +uint32_t vpx_highbd_8_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance32x64 \ + vpx_highbd_8_sub_pixel_variance32x64_c + +uint32_t vpx_highbd_8_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance4x4 vpx_highbd_8_sub_pixel_variance4x4_c + +uint32_t vpx_highbd_8_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance4x8 vpx_highbd_8_sub_pixel_variance4x8_c + +uint32_t vpx_highbd_8_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance64x32 \ + vpx_highbd_8_sub_pixel_variance64x32_c + +uint32_t vpx_highbd_8_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance64x64 \ + vpx_highbd_8_sub_pixel_variance64x64_c + +uint32_t vpx_highbd_8_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance8x16 \ + vpx_highbd_8_sub_pixel_variance8x16_c + +uint32_t vpx_highbd_8_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance8x4 vpx_highbd_8_sub_pixel_variance8x4_c + +uint32_t vpx_highbd_8_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance8x8 vpx_highbd_8_sub_pixel_variance8x8_c + +unsigned int vpx_highbd_8_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance16x16 vpx_highbd_8_variance16x16_c + +unsigned int vpx_highbd_8_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance16x32 vpx_highbd_8_variance16x32_c + +unsigned int vpx_highbd_8_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance16x8 vpx_highbd_8_variance16x8_c + +unsigned int vpx_highbd_8_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance32x16 vpx_highbd_8_variance32x16_c + +unsigned int vpx_highbd_8_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance32x32 vpx_highbd_8_variance32x32_c + +unsigned int vpx_highbd_8_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance32x64 vpx_highbd_8_variance32x64_c + +unsigned int vpx_highbd_8_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance4x4 vpx_highbd_8_variance4x4_c + +unsigned int vpx_highbd_8_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance4x8 vpx_highbd_8_variance4x8_c + +unsigned int vpx_highbd_8_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance64x32 vpx_highbd_8_variance64x32_c + +unsigned int vpx_highbd_8_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance64x64 vpx_highbd_8_variance64x64_c + +unsigned int vpx_highbd_8_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance8x16 vpx_highbd_8_variance8x16_c + +unsigned int vpx_highbd_8_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance8x4 vpx_highbd_8_variance8x4_c + +unsigned int vpx_highbd_8_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance8x8 vpx_highbd_8_variance8x8_c + +unsigned int vpx_highbd_avg_4x4_c(const uint8_t*, int p); +#define vpx_highbd_avg_4x4 vpx_highbd_avg_4x4_c + +unsigned int vpx_highbd_avg_8x8_c(const uint8_t*, int p); +#define vpx_highbd_avg_8x8 vpx_highbd_avg_8x8_c + +void vpx_highbd_comp_avg_pred_c(uint16_t* comp_pred, + const uint16_t* pred, + int width, + int height, + const uint16_t* ref, + int ref_stride); +#define vpx_highbd_comp_avg_pred vpx_highbd_comp_avg_pred_c + +void vpx_highbd_convolve8_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8 vpx_highbd_convolve8_neon + +void vpx_highbd_convolve8_avg_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_avg_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_avg vpx_highbd_convolve8_avg_neon + +void vpx_highbd_convolve8_avg_horiz_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_avg_horiz_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_avg_horiz vpx_highbd_convolve8_avg_horiz_neon + +void vpx_highbd_convolve8_avg_vert_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_avg_vert_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_avg_vert vpx_highbd_convolve8_avg_vert_neon + +void vpx_highbd_convolve8_horiz_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_horiz_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_horiz vpx_highbd_convolve8_horiz_neon + +void vpx_highbd_convolve8_vert_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_vert_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_vert vpx_highbd_convolve8_vert_neon + +void vpx_highbd_convolve_avg_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve_avg_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve_avg vpx_highbd_convolve_avg_neon + +void vpx_highbd_convolve_copy_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve_copy_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve_copy vpx_highbd_convolve_copy_neon + +void vpx_highbd_d117_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_16x16 vpx_highbd_d117_predictor_16x16_c + +void vpx_highbd_d117_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_32x32 vpx_highbd_d117_predictor_32x32_c + +void vpx_highbd_d117_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_4x4 vpx_highbd_d117_predictor_4x4_c + +void vpx_highbd_d117_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_8x8 vpx_highbd_d117_predictor_8x8_c + +void vpx_highbd_d135_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_16x16 vpx_highbd_d135_predictor_16x16_neon + +void vpx_highbd_d135_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_32x32 vpx_highbd_d135_predictor_32x32_neon + +void vpx_highbd_d135_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_4x4 vpx_highbd_d135_predictor_4x4_neon + +void vpx_highbd_d135_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_8x8 vpx_highbd_d135_predictor_8x8_neon + +void vpx_highbd_d153_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_16x16 vpx_highbd_d153_predictor_16x16_c + +void vpx_highbd_d153_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_32x32 vpx_highbd_d153_predictor_32x32_c + +void vpx_highbd_d153_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_4x4 vpx_highbd_d153_predictor_4x4_c + +void vpx_highbd_d153_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_8x8 vpx_highbd_d153_predictor_8x8_c + +void vpx_highbd_d207_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_16x16 vpx_highbd_d207_predictor_16x16_c + +void vpx_highbd_d207_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_32x32 vpx_highbd_d207_predictor_32x32_c + +void vpx_highbd_d207_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_4x4 vpx_highbd_d207_predictor_4x4_c + +void vpx_highbd_d207_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_8x8 vpx_highbd_d207_predictor_8x8_c + +void vpx_highbd_d45_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_16x16 vpx_highbd_d45_predictor_16x16_neon + +void vpx_highbd_d45_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_32x32 vpx_highbd_d45_predictor_32x32_neon + +void vpx_highbd_d45_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_4x4 vpx_highbd_d45_predictor_4x4_neon + +void vpx_highbd_d45_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_8x8 vpx_highbd_d45_predictor_8x8_neon + +void vpx_highbd_d63_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_16x16 vpx_highbd_d63_predictor_16x16_c + +void vpx_highbd_d63_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_32x32 vpx_highbd_d63_predictor_32x32_c + +void vpx_highbd_d63_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_4x4 vpx_highbd_d63_predictor_4x4_c + +void vpx_highbd_d63_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_8x8 vpx_highbd_d63_predictor_8x8_c + +void vpx_highbd_dc_128_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_16x16 vpx_highbd_dc_128_predictor_16x16_neon + +void vpx_highbd_dc_128_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_32x32 vpx_highbd_dc_128_predictor_32x32_neon + +void vpx_highbd_dc_128_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_4x4 vpx_highbd_dc_128_predictor_4x4_neon + +void vpx_highbd_dc_128_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_8x8 vpx_highbd_dc_128_predictor_8x8_neon + +void vpx_highbd_dc_left_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_16x16 \ + vpx_highbd_dc_left_predictor_16x16_neon + +void vpx_highbd_dc_left_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_32x32 \ + vpx_highbd_dc_left_predictor_32x32_neon + +void vpx_highbd_dc_left_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_4x4 vpx_highbd_dc_left_predictor_4x4_neon + +void vpx_highbd_dc_left_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_8x8 vpx_highbd_dc_left_predictor_8x8_neon + +void vpx_highbd_dc_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_16x16 vpx_highbd_dc_predictor_16x16_neon + +void vpx_highbd_dc_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_32x32 vpx_highbd_dc_predictor_32x32_neon + +void vpx_highbd_dc_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_4x4 vpx_highbd_dc_predictor_4x4_neon + +void vpx_highbd_dc_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_8x8 vpx_highbd_dc_predictor_8x8_neon + +void vpx_highbd_dc_top_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_16x16 vpx_highbd_dc_top_predictor_16x16_neon + +void vpx_highbd_dc_top_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_32x32 vpx_highbd_dc_top_predictor_32x32_neon + +void vpx_highbd_dc_top_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_4x4 vpx_highbd_dc_top_predictor_4x4_neon + +void vpx_highbd_dc_top_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_8x8 vpx_highbd_dc_top_predictor_8x8_neon + +void vpx_highbd_fdct16x16_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct16x16 vpx_highbd_fdct16x16_c + +void vpx_highbd_fdct16x16_1_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct16x16_1 vpx_highbd_fdct16x16_1_c + +void vpx_highbd_fdct32x32_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct32x32 vpx_highbd_fdct32x32_c + +void vpx_highbd_fdct32x32_1_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct32x32_1 vpx_highbd_fdct32x32_1_c + +void vpx_highbd_fdct32x32_rd_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct32x32_rd vpx_highbd_fdct32x32_rd_c + +void vpx_highbd_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride); +#define vpx_highbd_fdct4x4 vpx_highbd_fdct4x4_c + +void vpx_highbd_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride); +#define vpx_highbd_fdct8x8 vpx_highbd_fdct8x8_c + +void vpx_highbd_fdct8x8_1_c(const int16_t* input, + tran_low_t* output, + int stride); +void vpx_fdct8x8_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_highbd_fdct8x8_1 vpx_fdct8x8_1_neon + +void vpx_highbd_h_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_16x16 vpx_highbd_h_predictor_16x16_neon + +void vpx_highbd_h_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_32x32 vpx_highbd_h_predictor_32x32_neon + +void vpx_highbd_h_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_4x4 vpx_highbd_h_predictor_4x4_neon + +void vpx_highbd_h_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_8x8 vpx_highbd_h_predictor_8x8_neon + +void vpx_highbd_idct16x16_10_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_10_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_10_add vpx_highbd_idct16x16_10_add_neon + +void vpx_highbd_idct16x16_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_1_add vpx_highbd_idct16x16_1_add_neon + +void vpx_highbd_idct16x16_256_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_256_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_256_add vpx_highbd_idct16x16_256_add_neon + +void vpx_highbd_idct16x16_38_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_38_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_38_add vpx_highbd_idct16x16_38_add_neon + +void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_neon + +void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_neon + +void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_1_add vpx_highbd_idct32x32_1_add_neon + +void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_neon + +void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct4x4_16_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct4x4_16_add vpx_highbd_idct4x4_16_add_neon + +void vpx_highbd_idct4x4_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct4x4_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct4x4_1_add vpx_highbd_idct4x4_1_add_neon + +void vpx_highbd_idct8x8_12_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct8x8_12_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct8x8_12_add vpx_highbd_idct8x8_12_add_neon + +void vpx_highbd_idct8x8_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct8x8_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct8x8_1_add vpx_highbd_idct8x8_1_add_neon + +void vpx_highbd_idct8x8_64_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct8x8_64_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct8x8_64_add vpx_highbd_idct8x8_64_add_neon + +void vpx_highbd_iwht4x4_16_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_iwht4x4_16_add vpx_highbd_iwht4x4_16_add_c + +void vpx_highbd_iwht4x4_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_iwht4x4_1_add vpx_highbd_iwht4x4_1_add_c + +void vpx_highbd_lpf_horizontal_16_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_16_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_16 vpx_highbd_lpf_horizontal_16_neon + +void vpx_highbd_lpf_horizontal_16_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_16_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_16_dual vpx_highbd_lpf_horizontal_16_dual_neon + +void vpx_highbd_lpf_horizontal_4_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_4_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_4 vpx_highbd_lpf_horizontal_4_neon + +void vpx_highbd_lpf_horizontal_4_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_horizontal_4_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_horizontal_4_dual vpx_highbd_lpf_horizontal_4_dual_neon + +void vpx_highbd_lpf_horizontal_8_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_8_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_8 vpx_highbd_lpf_horizontal_8_neon + +void vpx_highbd_lpf_horizontal_8_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_horizontal_8_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_horizontal_8_dual vpx_highbd_lpf_horizontal_8_dual_neon + +void vpx_highbd_lpf_vertical_16_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_16_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_16 vpx_highbd_lpf_vertical_16_neon + +void vpx_highbd_lpf_vertical_16_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_16_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_16_dual vpx_highbd_lpf_vertical_16_dual_neon + +void vpx_highbd_lpf_vertical_4_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_4_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_4 vpx_highbd_lpf_vertical_4_neon + +void vpx_highbd_lpf_vertical_4_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_vertical_4_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_vertical_4_dual vpx_highbd_lpf_vertical_4_dual_neon + +void vpx_highbd_lpf_vertical_8_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_8_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_8 vpx_highbd_lpf_vertical_8_neon + +void vpx_highbd_lpf_vertical_8_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_vertical_8_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_vertical_8_dual vpx_highbd_lpf_vertical_8_dual_neon + +void vpx_highbd_minmax_8x8_c(const uint8_t* s, + int p, + const uint8_t* d, + int dp, + int* min, + int* max); +#define vpx_highbd_minmax_8x8 vpx_highbd_minmax_8x8_c + +void vpx_highbd_quantize_b_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_highbd_quantize_b vpx_highbd_quantize_b_c + +void vpx_highbd_quantize_b_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_highbd_quantize_b_32x32 vpx_highbd_quantize_b_32x32_c + +unsigned int vpx_highbd_sad16x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad16x16 vpx_highbd_sad16x16_c + +unsigned int vpx_highbd_sad16x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad16x16_avg vpx_highbd_sad16x16_avg_c + +void vpx_highbd_sad16x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad16x16x4d vpx_highbd_sad16x16x4d_c + +unsigned int vpx_highbd_sad16x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad16x32 vpx_highbd_sad16x32_c + +unsigned int vpx_highbd_sad16x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad16x32_avg vpx_highbd_sad16x32_avg_c + +void vpx_highbd_sad16x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad16x32x4d vpx_highbd_sad16x32x4d_c + +unsigned int vpx_highbd_sad16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad16x8 vpx_highbd_sad16x8_c + +unsigned int vpx_highbd_sad16x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad16x8_avg vpx_highbd_sad16x8_avg_c + +void vpx_highbd_sad16x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad16x8x4d vpx_highbd_sad16x8x4d_c + +unsigned int vpx_highbd_sad32x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad32x16 vpx_highbd_sad32x16_c + +unsigned int vpx_highbd_sad32x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad32x16_avg vpx_highbd_sad32x16_avg_c + +void vpx_highbd_sad32x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad32x16x4d vpx_highbd_sad32x16x4d_c + +unsigned int vpx_highbd_sad32x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad32x32 vpx_highbd_sad32x32_c + +unsigned int vpx_highbd_sad32x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad32x32_avg vpx_highbd_sad32x32_avg_c + +void vpx_highbd_sad32x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad32x32x4d vpx_highbd_sad32x32x4d_c + +unsigned int vpx_highbd_sad32x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad32x64 vpx_highbd_sad32x64_c + +unsigned int vpx_highbd_sad32x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad32x64_avg vpx_highbd_sad32x64_avg_c + +void vpx_highbd_sad32x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad32x64x4d vpx_highbd_sad32x64x4d_c + +unsigned int vpx_highbd_sad4x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad4x4 vpx_highbd_sad4x4_c + +unsigned int vpx_highbd_sad4x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad4x4_avg vpx_highbd_sad4x4_avg_c + +void vpx_highbd_sad4x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad4x4x4d vpx_highbd_sad4x4x4d_c + +unsigned int vpx_highbd_sad4x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad4x8 vpx_highbd_sad4x8_c + +unsigned int vpx_highbd_sad4x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad4x8_avg vpx_highbd_sad4x8_avg_c + +void vpx_highbd_sad4x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad4x8x4d vpx_highbd_sad4x8x4d_c + +unsigned int vpx_highbd_sad64x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad64x32 vpx_highbd_sad64x32_c + +unsigned int vpx_highbd_sad64x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad64x32_avg vpx_highbd_sad64x32_avg_c + +void vpx_highbd_sad64x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad64x32x4d vpx_highbd_sad64x32x4d_c + +unsigned int vpx_highbd_sad64x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad64x64 vpx_highbd_sad64x64_c + +unsigned int vpx_highbd_sad64x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad64x64_avg vpx_highbd_sad64x64_avg_c + +void vpx_highbd_sad64x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad64x64x4d vpx_highbd_sad64x64x4d_c + +unsigned int vpx_highbd_sad8x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad8x16 vpx_highbd_sad8x16_c + +unsigned int vpx_highbd_sad8x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad8x16_avg vpx_highbd_sad8x16_avg_c + +void vpx_highbd_sad8x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad8x16x4d vpx_highbd_sad8x16x4d_c + +unsigned int vpx_highbd_sad8x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad8x4 vpx_highbd_sad8x4_c + +unsigned int vpx_highbd_sad8x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad8x4_avg vpx_highbd_sad8x4_avg_c + +void vpx_highbd_sad8x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad8x4x4d vpx_highbd_sad8x4x4d_c + +unsigned int vpx_highbd_sad8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad8x8 vpx_highbd_sad8x8_c + +unsigned int vpx_highbd_sad8x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad8x8_avg vpx_highbd_sad8x8_avg_c + +void vpx_highbd_sad8x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad8x8x4d vpx_highbd_sad8x8x4d_c + +void vpx_highbd_subtract_block_c(int rows, + int cols, + int16_t* diff_ptr, + ptrdiff_t diff_stride, + const uint8_t* src_ptr, + ptrdiff_t src_stride, + const uint8_t* pred_ptr, + ptrdiff_t pred_stride, + int bd); +#define vpx_highbd_subtract_block vpx_highbd_subtract_block_c + +void vpx_highbd_tm_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_16x16 vpx_highbd_tm_predictor_16x16_neon + +void vpx_highbd_tm_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_32x32 vpx_highbd_tm_predictor_32x32_neon + +void vpx_highbd_tm_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_4x4 vpx_highbd_tm_predictor_4x4_neon + +void vpx_highbd_tm_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_8x8 vpx_highbd_tm_predictor_8x8_neon + +void vpx_highbd_v_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_16x16 vpx_highbd_v_predictor_16x16_neon + +void vpx_highbd_v_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_32x32 vpx_highbd_v_predictor_32x32_neon + +void vpx_highbd_v_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_4x4 vpx_highbd_v_predictor_4x4_neon + +void vpx_highbd_v_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_8x8 vpx_highbd_v_predictor_8x8_neon + +void vpx_idct16x16_10_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct16x16_10_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_10_add vpx_idct16x16_10_add_neon + +void vpx_idct16x16_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct16x16_1_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_1_add vpx_idct16x16_1_add_neon + +void vpx_idct16x16_256_add_c(const tran_low_t* input, + uint8_t* dest, + int stride); +void vpx_idct16x16_256_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_256_add vpx_idct16x16_256_add_neon + +void vpx_idct16x16_38_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct16x16_38_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_38_add vpx_idct16x16_38_add_neon + +void vpx_idct32x32_1024_add_c(const tran_low_t* input, + uint8_t* dest, + int stride); +void vpx_idct32x32_1024_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_neon + +void vpx_idct32x32_135_add_c(const tran_low_t* input, + uint8_t* dest, + int stride); +void vpx_idct32x32_135_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_135_add vpx_idct32x32_135_add_neon + +void vpx_idct32x32_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct32x32_1_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_1_add vpx_idct32x32_1_add_neon + +void vpx_idct32x32_34_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct32x32_34_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_34_add vpx_idct32x32_34_add_neon + +void vpx_idct4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct4x4_16_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct4x4_16_add vpx_idct4x4_16_add_neon + +void vpx_idct4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct4x4_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_idct4x4_1_add vpx_idct4x4_1_add_neon + +void vpx_idct8x8_12_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct8x8_12_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct8x8_12_add vpx_idct8x8_12_add_neon + +void vpx_idct8x8_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct8x8_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_idct8x8_1_add vpx_idct8x8_1_add_neon + +void vpx_idct8x8_64_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct8x8_64_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct8x8_64_add vpx_idct8x8_64_add_neon + +int16_t vpx_int_pro_col_c(const uint8_t* ref, const int width); +int16_t vpx_int_pro_col_neon(const uint8_t* ref, const int width); +#define vpx_int_pro_col vpx_int_pro_col_neon + +void vpx_int_pro_row_c(int16_t* hbuf, + const uint8_t* ref, + const int ref_stride, + const int height); +void vpx_int_pro_row_neon(int16_t* hbuf, + const uint8_t* ref, + const int ref_stride, + const int height); +#define vpx_int_pro_row vpx_int_pro_row_neon + +void vpx_iwht4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c + +void vpx_iwht4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c + +void vpx_lpf_horizontal_16_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_16_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_neon + +void vpx_lpf_horizontal_16_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_16_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_16_dual vpx_lpf_horizontal_16_dual_neon + +void vpx_lpf_horizontal_4_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_4_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_neon + +void vpx_lpf_horizontal_4_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_horizontal_4_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_neon + +void vpx_lpf_horizontal_8_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_8_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_neon + +void vpx_lpf_horizontal_8_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_horizontal_8_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_neon + +void vpx_lpf_vertical_16_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_16_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_neon + +void vpx_lpf_vertical_16_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_16_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_neon + +void vpx_lpf_vertical_4_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_4_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_neon + +void vpx_lpf_vertical_4_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_vertical_4_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_neon + +void vpx_lpf_vertical_8_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_8_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_neon + +void vpx_lpf_vertical_8_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_vertical_8_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_neon + +void vpx_mbpost_proc_across_ip_c(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +void vpx_mbpost_proc_across_ip_neon(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +#define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_neon + +void vpx_mbpost_proc_down_c(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +void vpx_mbpost_proc_down_neon(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +#define vpx_mbpost_proc_down vpx_mbpost_proc_down_neon + +void vpx_minmax_8x8_c(const uint8_t* s, + int p, + const uint8_t* d, + int dp, + int* min, + int* max); +void vpx_minmax_8x8_neon(const uint8_t* s, + int p, + const uint8_t* d, + int dp, + int* min, + int* max); +#define vpx_minmax_8x8 vpx_minmax_8x8_neon + +unsigned int vpx_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +unsigned int vpx_mse16x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse16x16 vpx_mse16x16_neon + +unsigned int vpx_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse16x8 vpx_mse16x8_c + +unsigned int vpx_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse8x16 vpx_mse8x16_c + +unsigned int vpx_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse8x8 vpx_mse8x8_c + +void vpx_plane_add_noise_c(uint8_t* start, + const int8_t* noise, + int blackclamp, + int whiteclamp, + int width, + int height, + int pitch); +#define vpx_plane_add_noise vpx_plane_add_noise_c + +void vpx_post_proc_down_and_across_mb_row_c(unsigned char* src, + unsigned char* dst, + int src_pitch, + int dst_pitch, + int cols, + unsigned char* flimits, + int size); +void vpx_post_proc_down_and_across_mb_row_neon(unsigned char* src, + unsigned char* dst, + int src_pitch, + int dst_pitch, + int cols, + unsigned char* flimits, + int size); +#define vpx_post_proc_down_and_across_mb_row \ + vpx_post_proc_down_and_across_mb_row_neon + +void vpx_quantize_b_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vpx_quantize_b_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_quantize_b vpx_quantize_b_neon + +void vpx_quantize_b_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vpx_quantize_b_32x32_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_neon + +unsigned int vpx_sad16x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad16x16_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad16x16 vpx_sad16x16_neon + +unsigned int vpx_sad16x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad16x16_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad16x16_avg vpx_sad16x16_avg_neon + +void vpx_sad16x16x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x16x3 vpx_sad16x16x3_c + +void vpx_sad16x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad16x16x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x16x4d vpx_sad16x16x4d_neon + +void vpx_sad16x16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x16x8 vpx_sad16x16x8_c + +unsigned int vpx_sad16x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad16x32_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad16x32 vpx_sad16x32_neon + +unsigned int vpx_sad16x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad16x32_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad16x32_avg vpx_sad16x32_avg_neon + +void vpx_sad16x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad16x32x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x32x4d vpx_sad16x32x4d_neon + +unsigned int vpx_sad16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad16x8_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad16x8 vpx_sad16x8_neon + +unsigned int vpx_sad16x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad16x8_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad16x8_avg vpx_sad16x8_avg_neon + +void vpx_sad16x8x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x8x3 vpx_sad16x8x3_c + +void vpx_sad16x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad16x8x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x8x4d vpx_sad16x8x4d_neon + +void vpx_sad16x8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x8x8 vpx_sad16x8x8_c + +unsigned int vpx_sad32x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad32x16_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad32x16 vpx_sad32x16_neon + +unsigned int vpx_sad32x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad32x16_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad32x16_avg vpx_sad32x16_avg_neon + +void vpx_sad32x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad32x16x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad32x16x4d vpx_sad32x16x4d_neon + +unsigned int vpx_sad32x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad32x32_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad32x32 vpx_sad32x32_neon + +unsigned int vpx_sad32x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad32x32_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad32x32_avg vpx_sad32x32_avg_neon + +void vpx_sad32x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad32x32x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad32x32x4d vpx_sad32x32x4d_neon + +unsigned int vpx_sad32x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad32x64_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad32x64 vpx_sad32x64_neon + +unsigned int vpx_sad32x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad32x64_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad32x64_avg vpx_sad32x64_avg_neon + +void vpx_sad32x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad32x64x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad32x64x4d vpx_sad32x64x4d_neon + +unsigned int vpx_sad4x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad4x4_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad4x4 vpx_sad4x4_neon + +unsigned int vpx_sad4x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad4x4_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad4x4_avg vpx_sad4x4_avg_neon + +void vpx_sad4x4x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x4x3 vpx_sad4x4x3_c + +void vpx_sad4x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad4x4x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x4x4d vpx_sad4x4x4d_neon + +void vpx_sad4x4x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x4x8 vpx_sad4x4x8_c + +unsigned int vpx_sad4x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad4x8_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad4x8 vpx_sad4x8_neon + +unsigned int vpx_sad4x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad4x8_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad4x8_avg vpx_sad4x8_avg_neon + +void vpx_sad4x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad4x8x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x8x4d vpx_sad4x8x4d_neon + +unsigned int vpx_sad64x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad64x32_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad64x32 vpx_sad64x32_neon + +unsigned int vpx_sad64x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad64x32_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad64x32_avg vpx_sad64x32_avg_neon + +void vpx_sad64x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad64x32x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad64x32x4d vpx_sad64x32x4d_neon + +unsigned int vpx_sad64x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad64x64_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad64x64 vpx_sad64x64_neon + +unsigned int vpx_sad64x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad64x64_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad64x64_avg vpx_sad64x64_avg_neon + +void vpx_sad64x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad64x64x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad64x64x4d vpx_sad64x64x4d_neon + +unsigned int vpx_sad8x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad8x16_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad8x16 vpx_sad8x16_neon + +unsigned int vpx_sad8x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad8x16_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad8x16_avg vpx_sad8x16_avg_neon + +void vpx_sad8x16x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x16x3 vpx_sad8x16x3_c + +void vpx_sad8x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad8x16x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x16x4d vpx_sad8x16x4d_neon + +void vpx_sad8x16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x16x8 vpx_sad8x16x8_c + +unsigned int vpx_sad8x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad8x4_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad8x4 vpx_sad8x4_neon + +unsigned int vpx_sad8x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad8x4_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad8x4_avg vpx_sad8x4_avg_neon + +void vpx_sad8x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad8x4x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x4x4d vpx_sad8x4x4d_neon + +unsigned int vpx_sad8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad8x8_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad8x8 vpx_sad8x8_neon + +unsigned int vpx_sad8x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad8x8_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad8x8_avg vpx_sad8x8_avg_neon + +void vpx_sad8x8x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x8x3 vpx_sad8x8x3_c + +void vpx_sad8x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad8x8x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x8x4d vpx_sad8x8x4d_neon + +void vpx_sad8x8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x8x8 vpx_sad8x8x8_c + +int vpx_satd_c(const tran_low_t* coeff, int length); +int vpx_satd_neon(const tran_low_t* coeff, int length); +#define vpx_satd vpx_satd_neon + +void vpx_scaled_2d_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_scaled_2d_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_2d vpx_scaled_2d_neon + +void vpx_scaled_avg_2d_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c + +void vpx_scaled_avg_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c + +void vpx_scaled_avg_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c + +void vpx_scaled_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_horiz vpx_scaled_horiz_c + +void vpx_scaled_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_vert vpx_scaled_vert_c + +uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance16x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_neon + +uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance16x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_neon + +uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance16x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_neon + +uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance32x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_neon + +uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance32x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_neon + +uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance32x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_neon + +uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance4x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_neon + +uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance4x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_neon + +uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance64x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_neon + +uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance64x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_neon + +uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance8x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_neon + +uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance8x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_neon + +uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance8x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_neon + +uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance16x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_neon + +uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance16x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_neon + +uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance16x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_neon + +uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance32x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_neon + +uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance32x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_neon + +uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance32x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_neon + +uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance4x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_neon + +uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance4x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_neon + +uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance64x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_neon + +uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance64x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_neon + +uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance8x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_neon + +uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance8x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_neon + +uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance8x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_neon + +void vpx_subtract_block_c(int rows, + int cols, + int16_t* diff_ptr, + ptrdiff_t diff_stride, + const uint8_t* src_ptr, + ptrdiff_t src_stride, + const uint8_t* pred_ptr, + ptrdiff_t pred_stride); +void vpx_subtract_block_neon(int rows, + int cols, + int16_t* diff_ptr, + ptrdiff_t diff_stride, + const uint8_t* src_ptr, + ptrdiff_t src_stride, + const uint8_t* pred_ptr, + ptrdiff_t pred_stride); +#define vpx_subtract_block vpx_subtract_block_neon + +uint64_t vpx_sum_squares_2d_i16_c(const int16_t* src, int stride, int size); +uint64_t vpx_sum_squares_2d_i16_neon(const int16_t* src, int stride, int size); +#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_neon + +void vpx_tm_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_neon + +void vpx_tm_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_neon + +void vpx_tm_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_neon + +void vpx_tm_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_neon + +void vpx_v_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_neon + +void vpx_v_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_neon + +void vpx_v_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_neon + +void vpx_v_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_neon + +unsigned int vpx_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance16x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance16x16 vpx_variance16x16_neon + +unsigned int vpx_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance16x32_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance16x32 vpx_variance16x32_neon + +unsigned int vpx_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance16x8_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance16x8 vpx_variance16x8_neon + +unsigned int vpx_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance32x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance32x16 vpx_variance32x16_neon + +unsigned int vpx_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance32x32_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance32x32 vpx_variance32x32_neon + +unsigned int vpx_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance32x64_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance32x64 vpx_variance32x64_neon + +unsigned int vpx_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance4x4_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance4x4 vpx_variance4x4_neon + +unsigned int vpx_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance4x8_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance4x8 vpx_variance4x8_neon + +unsigned int vpx_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance64x32_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance64x32 vpx_variance64x32_neon + +unsigned int vpx_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance64x64_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance64x64 vpx_variance64x64_neon + +unsigned int vpx_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance8x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance8x16 vpx_variance8x16_neon + +unsigned int vpx_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance8x4_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance8x4 vpx_variance8x4_neon + +unsigned int vpx_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance8x8_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance8x8 vpx_variance8x8_neon + +void vpx_ve_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c + +int vpx_vector_var_c(const int16_t* ref, const int16_t* src, const int bwl); +int vpx_vector_var_neon(const int16_t* ref, const int16_t* src, const int bwl); +#define vpx_vector_var vpx_vector_var_neon + +void vpx_dsp_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_scale_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_scale_rtcd.h new file mode 100644 index 00000000000..555013e0a75 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_scale_rtcd.h @@ -0,0 +1,101 @@ +// This file is generated. Do not edit. +#ifndef VPX_SCALE_RTCD_H_ +#define VPX_SCALE_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +struct yv12_buffer_config; + +#ifdef __cplusplus +extern "C" { +#endif + +void vp8_horizontal_line_2_1_scale_c(const unsigned char* source, + unsigned int source_width, + unsigned char* dest, + unsigned int dest_width); +#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c + +void vp8_horizontal_line_5_3_scale_c(const unsigned char* source, + unsigned int source_width, + unsigned char* dest, + unsigned int dest_width); +#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c + +void vp8_horizontal_line_5_4_scale_c(const unsigned char* source, + unsigned int source_width, + unsigned char* dest, + unsigned int dest_width); +#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c + +void vp8_vertical_band_2_1_scale_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c + +void vp8_vertical_band_2_1_scale_i_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c + +void vp8_vertical_band_5_3_scale_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c + +void vp8_vertical_band_5_4_scale_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c + +void vp8_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc, + struct yv12_buffer_config* dst_ybc); +#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c + +void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config* ybf); +#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c + +void vpx_extend_frame_borders_c(struct yv12_buffer_config* ybf); +#define vpx_extend_frame_borders vpx_extend_frame_borders_c + +void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config* ybf); +#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c + +void vpx_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc, + struct yv12_buffer_config* dst_ybc); +#define vpx_yv12_copy_frame vpx_yv12_copy_frame_c + +void vpx_yv12_copy_y_c(const struct yv12_buffer_config* src_ybc, + struct yv12_buffer_config* dst_ybc); +#define vpx_yv12_copy_y vpx_yv12_copy_y_c + +void vpx_scale_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp8_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp8_rtcd.h new file mode 100644 index 00000000000..737afd52c16 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp8_rtcd.h @@ -0,0 +1,498 @@ +// This file is generated. Do not edit. +#ifndef VP8_RTCD_H_ +#define VP8_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +/* + * VP8 + */ + +struct blockd; +struct macroblockd; +struct loop_filter_info; + +/* Encoder forward decls */ +struct block; +struct macroblock; +struct variance_vtable; +union int_mv; +struct yv12_buffer_config; + +#ifdef __cplusplus +extern "C" { +#endif + +void vp8_bilinear_predict16x16_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict16x16_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon + +void vp8_bilinear_predict4x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict4x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon + +void vp8_bilinear_predict8x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict8x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon + +void vp8_bilinear_predict8x8_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_bilinear_predict8x8_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon + +void vp8_blend_b_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int y1, + int u1, + int v1, + int alpha, + int stride); +#define vp8_blend_b vp8_blend_b_c + +void vp8_blend_mb_inner_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int y1, + int u1, + int v1, + int alpha, + int stride); +#define vp8_blend_mb_inner vp8_blend_mb_inner_c + +void vp8_blend_mb_outer_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int y1, + int u1, + int v1, + int alpha, + int stride); +#define vp8_blend_mb_outer vp8_blend_mb_outer_c + +int vp8_block_error_c(short* coeff, short* dqcoeff); +#define vp8_block_error vp8_block_error_c + +void vp8_copy_mem16x16_c(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +void vp8_copy_mem16x16_neon(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +#define vp8_copy_mem16x16 vp8_copy_mem16x16_neon + +void vp8_copy_mem8x4_c(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +void vp8_copy_mem8x4_neon(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +#define vp8_copy_mem8x4 vp8_copy_mem8x4_neon + +void vp8_copy_mem8x8_c(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +void vp8_copy_mem8x8_neon(unsigned char* src, + int src_pitch, + unsigned char* dst, + int dst_pitch); +#define vp8_copy_mem8x8 vp8_copy_mem8x8_neon + +void vp8_dc_only_idct_add_c(short input, + unsigned char* pred, + int pred_stride, + unsigned char* dst, + int dst_stride); +void vp8_dc_only_idct_add_neon(short input, + unsigned char* pred, + int pred_stride, + unsigned char* dst, + int dst_stride); +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon + +int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y, + int mc_avg_y_stride, + unsigned char* running_avg_y, + int avg_y_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +int vp8_denoiser_filter_neon(unsigned char* mc_running_avg_y, + int mc_avg_y_stride, + unsigned char* running_avg_y, + int avg_y_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +#define vp8_denoiser_filter vp8_denoiser_filter_neon + +int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg, + int mc_avg_stride, + unsigned char* running_avg, + int avg_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +int vp8_denoiser_filter_uv_neon(unsigned char* mc_running_avg, + int mc_avg_stride, + unsigned char* running_avg, + int avg_stride, + unsigned char* sig, + int sig_stride, + unsigned int motion_magnitude, + int increase_denoising); +#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_neon + +void vp8_dequant_idct_add_c(short* input, + short* dq, + unsigned char* output, + int stride); +void vp8_dequant_idct_add_neon(short* input, + short* dq, + unsigned char* output, + int stride); +#define vp8_dequant_idct_add vp8_dequant_idct_add_neon + +void vp8_dequant_idct_add_uv_block_c(short* q, + short* dq, + unsigned char* dst_u, + unsigned char* dst_v, + int stride, + char* eobs); +void vp8_dequant_idct_add_uv_block_neon(short* q, + short* dq, + unsigned char* dst_u, + unsigned char* dst_v, + int stride, + char* eobs); +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon + +void vp8_dequant_idct_add_y_block_c(short* q, + short* dq, + unsigned char* dst, + int stride, + char* eobs); +void vp8_dequant_idct_add_y_block_neon(short* q, + short* dq, + unsigned char* dst, + int stride, + char* eobs); +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon + +void vp8_dequantize_b_c(struct blockd*, short* dqc); +void vp8_dequantize_b_neon(struct blockd*, short* dqc); +#define vp8_dequantize_b vp8_dequantize_b_neon + +int vp8_diamond_search_sad_c(struct macroblock* x, + struct block* b, + struct blockd* d, + union int_mv* ref_mv, + union int_mv* best_mv, + int search_param, + int sad_per_bit, + int* num00, + struct variance_vtable* fn_ptr, + int* mvcost[2], + union int_mv* center_mv); +#define vp8_diamond_search_sad vp8_diamond_search_sad_c + +void vp8_fast_quantize_b_c(struct block*, struct blockd*); +void vp8_fast_quantize_b_neon(struct block*, struct blockd*); +#define vp8_fast_quantize_b vp8_fast_quantize_b_neon + +void vp8_filter_by_weight16x16_c(unsigned char* src, + int src_stride, + unsigned char* dst, + int dst_stride, + int src_weight); +#define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c + +void vp8_filter_by_weight4x4_c(unsigned char* src, + int src_stride, + unsigned char* dst, + int dst_stride, + int src_weight); +#define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c + +void vp8_filter_by_weight8x8_c(unsigned char* src, + int src_stride, + unsigned char* dst, + int dst_stride, + int src_weight); +#define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c + +int vp8_full_search_sad_c(struct macroblock* x, + struct block* b, + struct blockd* d, + union int_mv* ref_mv, + int sad_per_bit, + int distance, + struct variance_vtable* fn_ptr, + int* mvcost[2], + union int_mv* center_mv); +#define vp8_full_search_sad vp8_full_search_sad_c + +void vp8_loop_filter_bh_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_bh_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_bh vp8_loop_filter_bh_neon + +void vp8_loop_filter_bv_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_bv_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_bv vp8_loop_filter_bv_neon + +void vp8_loop_filter_mbh_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_mbh_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon + +void vp8_loop_filter_mbv_c(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +void vp8_loop_filter_mbv_neon(unsigned char* y, + unsigned char* u, + unsigned char* v, + int ystride, + int uv_stride, + struct loop_filter_info* lfi); +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon + +void vp8_loop_filter_bhs_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_bhs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon + +void vp8_loop_filter_bvs_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_bvs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon + +void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_mbhs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon + +void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y, + int ystride, + const unsigned char* blimit); +void vp8_loop_filter_mbvs_neon(unsigned char* y, + int ystride, + const unsigned char* blimit); +#define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon + +int vp8_mbblock_error_c(struct macroblock* mb, int dc); +#define vp8_mbblock_error vp8_mbblock_error_c + +int vp8_mbuverror_c(struct macroblock* mb); +#define vp8_mbuverror vp8_mbuverror_c + +int vp8_refining_search_sad_c(struct macroblock* x, + struct block* b, + struct blockd* d, + union int_mv* ref_mv, + int sad_per_bit, + int distance, + struct variance_vtable* fn_ptr, + int* mvcost[2], + union int_mv* center_mv); +#define vp8_refining_search_sad vp8_refining_search_sad_c + +void vp8_regular_quantize_b_c(struct block*, struct blockd*); +#define vp8_regular_quantize_b vp8_regular_quantize_b_c + +void vp8_short_fdct4x4_c(short* input, short* output, int pitch); +void vp8_short_fdct4x4_neon(short* input, short* output, int pitch); +#define vp8_short_fdct4x4 vp8_short_fdct4x4_neon + +void vp8_short_fdct8x4_c(short* input, short* output, int pitch); +void vp8_short_fdct8x4_neon(short* input, short* output, int pitch); +#define vp8_short_fdct8x4 vp8_short_fdct8x4_neon + +void vp8_short_idct4x4llm_c(short* input, + unsigned char* pred, + int pitch, + unsigned char* dst, + int dst_stride); +void vp8_short_idct4x4llm_neon(short* input, + unsigned char* pred, + int pitch, + unsigned char* dst, + int dst_stride); +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon + +void vp8_short_inv_walsh4x4_c(short* input, short* output); +void vp8_short_inv_walsh4x4_neon(short* input, short* output); +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon + +void vp8_short_inv_walsh4x4_1_c(short* input, short* output); +#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c + +void vp8_short_walsh4x4_c(short* input, short* output, int pitch); +void vp8_short_walsh4x4_neon(short* input, short* output, int pitch); +#define vp8_short_walsh4x4 vp8_short_walsh4x4_neon + +void vp8_sixtap_predict16x16_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict16x16_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon + +void vp8_sixtap_predict4x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict4x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon + +void vp8_sixtap_predict8x4_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict8x4_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon + +void vp8_sixtap_predict8x8_c(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +void vp8_sixtap_predict8x8_neon(unsigned char* src, + int src_pitch, + int xofst, + int yofst, + unsigned char* dst, + int dst_pitch); +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon + +void vp8_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp9_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp9_rtcd.h new file mode 100644 index 00000000000..574cd7a7d94 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp9_rtcd.h @@ -0,0 +1,369 @@ +// This file is generated. Do not edit. +#ifndef VP9_RTCD_H_ +#define VP9_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +/* + * VP9 + */ + +#include "vp9/common/vp9_common.h" +#include "vp9/common/vp9_enums.h" +#include "vp9/common/vp9_filter.h" +#include "vpx/vpx_integer.h" + +struct macroblockd; + +/* Encoder forward decls */ +struct macroblock; +struct vp9_variance_vtable; +struct search_site_config; +struct mv; +union int_mv; +struct yv12_buffer_config; + +#ifdef __cplusplus +extern "C" { +#endif + +int64_t vp9_block_error_c(const tran_low_t* coeff, + const tran_low_t* dqcoeff, + intptr_t block_size, + int64_t* ssz); +#define vp9_block_error vp9_block_error_c + +int64_t vp9_block_error_fp_c(const tran_low_t* coeff, + const tran_low_t* dqcoeff, + int block_size); +#define vp9_block_error_fp vp9_block_error_fp_c + +int vp9_denoiser_filter_c(const uint8_t* sig, + int sig_stride, + const uint8_t* mc_avg, + int mc_avg_stride, + uint8_t* avg, + int avg_stride, + int increase_denoising, + BLOCK_SIZE bs, + int motion_magnitude); +int vp9_denoiser_filter_neon(const uint8_t* sig, + int sig_stride, + const uint8_t* mc_avg, + int mc_avg_stride, + uint8_t* avg, + int avg_stride, + int increase_denoising, + BLOCK_SIZE bs, + int motion_magnitude); +#define vp9_denoiser_filter vp9_denoiser_filter_neon + +int vp9_diamond_search_sad_c(const struct macroblock* x, + const struct search_site_config* cfg, + struct mv* ref_mv, + struct mv* best_mv, + int search_param, + int sad_per_bit, + int* num00, + const struct vp9_variance_vtable* fn_ptr, + const struct mv* center_mv); +#define vp9_diamond_search_sad vp9_diamond_search_sad_c + +void vp9_fdct8x8_quant_c(const int16_t* input, + int stride, + tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vp9_fdct8x8_quant_neon(const int16_t* input, + int stride, + tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_fdct8x8_quant vp9_fdct8x8_quant_neon + +void vp9_fht16x16_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_fht16x16 vp9_fht16x16_c + +void vp9_fht4x4_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_fht4x4 vp9_fht4x4_c + +void vp9_fht8x8_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_fht8x8 vp9_fht8x8_c + +void vp9_filter_by_weight16x16_c(const uint8_t* src, + int src_stride, + uint8_t* dst, + int dst_stride, + int src_weight); +#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c + +void vp9_filter_by_weight8x8_c(const uint8_t* src, + int src_stride, + uint8_t* dst, + int dst_stride, + int src_weight); +#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c + +void vp9_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride); +#define vp9_fwht4x4 vp9_fwht4x4_c + +int64_t vp9_highbd_block_error_c(const tran_low_t* coeff, + const tran_low_t* dqcoeff, + intptr_t block_size, + int64_t* ssz, + int bd); +#define vp9_highbd_block_error vp9_highbd_block_error_c + +void vp9_highbd_fht16x16_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_highbd_fht16x16 vp9_highbd_fht16x16_c + +void vp9_highbd_fht4x4_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_highbd_fht4x4 vp9_highbd_fht4x4_c + +void vp9_highbd_fht8x8_c(const int16_t* input, + tran_low_t* output, + int stride, + int tx_type); +#define vp9_highbd_fht8x8 vp9_highbd_fht8x8_c + +void vp9_highbd_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride); +#define vp9_highbd_fwht4x4 vp9_highbd_fwht4x4_c + +void vp9_highbd_iht16x16_256_add_c(const tran_low_t* input, + uint16_t* output, + int pitch, + int tx_type, + int bd); +void vp9_highbd_iht16x16_256_add_neon(const tran_low_t* input, + uint16_t* output, + int pitch, + int tx_type, + int bd); +#define vp9_highbd_iht16x16_256_add vp9_highbd_iht16x16_256_add_neon + +void vp9_highbd_iht4x4_16_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +void vp9_highbd_iht4x4_16_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +#define vp9_highbd_iht4x4_16_add vp9_highbd_iht4x4_16_add_neon + +void vp9_highbd_iht8x8_64_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +void vp9_highbd_iht8x8_64_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int tx_type, + int bd); +#define vp9_highbd_iht8x8_64_add vp9_highbd_iht8x8_64_add_neon + +void vp9_highbd_mbpost_proc_across_ip_c(uint16_t* src, + int pitch, + int rows, + int cols, + int flimit); +#define vp9_highbd_mbpost_proc_across_ip vp9_highbd_mbpost_proc_across_ip_c + +void vp9_highbd_mbpost_proc_down_c(uint16_t* dst, + int pitch, + int rows, + int cols, + int flimit); +#define vp9_highbd_mbpost_proc_down vp9_highbd_mbpost_proc_down_c + +void vp9_highbd_post_proc_down_and_across_c(const uint16_t* src_ptr, + uint16_t* dst_ptr, + int src_pixels_per_line, + int dst_pixels_per_line, + int rows, + int cols, + int flimit); +#define vp9_highbd_post_proc_down_and_across \ + vp9_highbd_post_proc_down_and_across_c + +void vp9_highbd_quantize_fp_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_highbd_quantize_fp vp9_highbd_quantize_fp_c + +void vp9_highbd_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_highbd_quantize_fp_32x32 vp9_highbd_quantize_fp_32x32_c + +void vp9_highbd_temporal_filter_apply_c(const uint8_t* frame1, + unsigned int stride, + const uint8_t* frame2, + unsigned int block_width, + unsigned int block_height, + int strength, + int filter_weight, + uint32_t* accumulator, + uint16_t* count); +#define vp9_highbd_temporal_filter_apply vp9_highbd_temporal_filter_apply_c + +void vp9_iht16x16_256_add_c(const tran_low_t* input, + uint8_t* output, + int pitch, + int tx_type); +void vp9_iht16x16_256_add_neon(const tran_low_t* input, + uint8_t* output, + int pitch, + int tx_type); +#define vp9_iht16x16_256_add vp9_iht16x16_256_add_neon + +void vp9_iht4x4_16_add_c(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +void vp9_iht4x4_16_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +#define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon + +void vp9_iht8x8_64_add_c(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +void vp9_iht8x8_64_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride, + int tx_type); +#define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon + +void vp9_quantize_fp_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vp9_quantize_fp_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_quantize_fp vp9_quantize_fp_neon + +void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vp9_quantize_fp_32x32_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* round_ptr, + const int16_t* quant_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_neon + +void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config* src, + struct yv12_buffer_config* dst, + INTERP_FILTER filter_type, + int phase_scaler); +void vp9_scale_and_extend_frame_neon(const struct yv12_buffer_config* src, + struct yv12_buffer_config* dst, + INTERP_FILTER filter_type, + int phase_scaler); +#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_neon + +void vp9_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.asm new file mode 100644 index 00000000000..8863b2cbee2 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.asm @@ -0,0 +1,92 @@ +@ This file was created from a .asm file +@ using the ads2gas.pl script. + .equ DO1STROUNDING, 0 + .syntax unified +.equ ARCH_ARM , 1 +.equ ARCH_MIPS , 0 +.equ ARCH_X86 , 0 +.equ ARCH_X86_64 , 0 +.equ ARCH_PPC , 0 +.equ HAVE_NEON , 1 +.equ HAVE_NEON_ASM , 0 +.equ HAVE_MIPS32 , 0 +.equ HAVE_DSPR2 , 0 +.equ HAVE_MSA , 0 +.equ HAVE_MIPS64 , 0 +.equ HAVE_MMX , 0 +.equ HAVE_SSE , 0 +.equ HAVE_SSE2 , 0 +.equ HAVE_SSE3 , 0 +.equ HAVE_SSSE3 , 0 +.equ HAVE_SSE4_1 , 0 +.equ HAVE_AVX , 0 +.equ HAVE_AVX2 , 0 +.equ HAVE_AVX512 , 0 +.equ HAVE_VSX , 0 +.equ HAVE_MMI , 0 +.equ HAVE_VPX_PORTS , 1 +.equ HAVE_PTHREAD_H , 1 +.equ HAVE_UNISTD_H , 0 +.equ CONFIG_DEPENDENCY_TRACKING , 1 +.equ CONFIG_EXTERNAL_BUILD , 1 +.equ CONFIG_INSTALL_DOCS , 0 +.equ CONFIG_INSTALL_BINS , 1 +.equ CONFIG_INSTALL_LIBS , 1 +.equ CONFIG_INSTALL_SRCS , 0 +.equ CONFIG_DEBUG , 0 +.equ CONFIG_GPROF , 0 +.equ CONFIG_GCOV , 0 +.equ CONFIG_RVCT , 0 +.equ CONFIG_GCC , 1 +.equ CONFIG_MSVS , 0 +.equ CONFIG_PIC , 0 +.equ CONFIG_BIG_ENDIAN , 0 +.equ CONFIG_CODEC_SRCS , 0 +.equ CONFIG_DEBUG_LIBS , 0 +.equ CONFIG_DEQUANT_TOKENS , 0 +.equ CONFIG_DC_RECON , 0 +.equ CONFIG_RUNTIME_CPU_DETECT , 0 +.equ CONFIG_POSTPROC , 1 +.equ CONFIG_VP9_POSTPROC , 1 +.equ CONFIG_MULTITHREAD , 1 +.equ CONFIG_INTERNAL_STATS , 0 +.equ CONFIG_VP8_ENCODER , 1 +.equ CONFIG_VP8_DECODER , 1 +.equ CONFIG_VP9_ENCODER , 1 +.equ CONFIG_VP9_DECODER , 1 +.equ CONFIG_VP8 , 1 +.equ CONFIG_VP9 , 1 +.equ CONFIG_ENCODERS , 1 +.equ CONFIG_DECODERS , 1 +.equ CONFIG_STATIC_MSVCRT , 0 +.equ CONFIG_SPATIAL_RESAMPLING , 1 +.equ CONFIG_REALTIME_ONLY , 1 +.equ CONFIG_ONTHEFLY_BITPACKING , 0 +.equ CONFIG_ERROR_CONCEALMENT , 0 +.equ CONFIG_SHARED , 0 +.equ CONFIG_STATIC , 1 +.equ CONFIG_SMALL , 0 +.equ CONFIG_POSTPROC_VISUALIZER , 0 +.equ CONFIG_OS_SUPPORT , 1 +.equ CONFIG_UNIT_TESTS , 1 +.equ CONFIG_WEBM_IO , 1 +.equ CONFIG_LIBYUV , 1 +.equ CONFIG_DECODE_PERF_TESTS , 0 +.equ CONFIG_ENCODE_PERF_TESTS , 0 +.equ CONFIG_MULTI_RES_ENCODING , 1 +.equ CONFIG_TEMPORAL_DENOISING , 1 +.equ CONFIG_VP9_TEMPORAL_DENOISING , 1 +.equ CONFIG_CONSISTENT_RECODE , 0 +.equ CONFIG_COEFFICIENT_RANGE_CHECKING , 0 +.equ CONFIG_VP9_HIGHBITDEPTH , 1 +.equ CONFIG_BETTER_HW_COMPATIBILITY , 0 +.equ CONFIG_EXPERIMENTAL , 0 +.equ CONFIG_SIZE_LIMIT , 1 +.equ CONFIG_ALWAYS_ADJUST_BPM , 0 +.equ CONFIG_FP_MB_STATS , 0 +.equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 +.equ DECODE_WIDTH_LIMIT , 16384 +.equ DECODE_HEIGHT_LIMIT , 16384 + .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.c b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.c new file mode 100644 index 00000000000..97304fd7049 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.c @@ -0,0 +1,10 @@ +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ +/* */ +/* Use of this source code is governed by a BSD-style license */ +/* that can be found in the LICENSE file in the root of the source */ +/* tree. An additional intellectual property rights grant can be found */ +/* in the file PATENTS. All contributing project authors may */ +/* be found in the AUTHORS file in the root of the source tree. */ +#include "vpx/vpx_codec.h" +static const char* const cfg = "--target=armv8-linux-gcc --enable-external-build --enable-postproc --enable-multi-res-encoding --enable-temporal-denoising --enable-vp9-temporal-denoising --enable-vp9-postproc --size-limit=16384x16384 --enable-realtime-only --disable-install-docs --enable-vp9-highbitdepth"; +const char *vpx_codec_build_config(void) {return cfg;} diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.h new file mode 100644 index 00000000000..e57b1c42889 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.h @@ -0,0 +1,100 @@ +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ +/* */ +/* Use of this source code is governed by a BSD-style license */ +/* that can be found in the LICENSE file in the root of the source */ +/* tree. An additional intellectual property rights grant can be found */ +/* in the file PATENTS. All contributing project authors may */ +/* be found in the AUTHORS file in the root of the source tree. */ +/* This file automatically generated by configure. Do not edit! */ +#ifndef VPX_CONFIG_H +#define VPX_CONFIG_H +#define RESTRICT +#define INLINE inline +#define ARCH_ARM 1 +#define ARCH_MIPS 0 +#define ARCH_X86 0 +#define ARCH_X86_64 0 +#define ARCH_PPC 0 +#define HAVE_NEON 1 +#define HAVE_NEON_ASM 0 +#define HAVE_MIPS32 0 +#define HAVE_DSPR2 0 +#define HAVE_MSA 0 +#define HAVE_MIPS64 0 +#define HAVE_MMX 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 +#define HAVE_SSE3 0 +#define HAVE_SSSE3 0 +#define HAVE_SSE4_1 0 +#define HAVE_AVX 0 +#define HAVE_AVX2 0 +#define HAVE_AVX512 0 +#define HAVE_VSX 0 +#define HAVE_MMI 0 +#define HAVE_VPX_PORTS 1 +#define HAVE_PTHREAD_H 1 +#define HAVE_UNISTD_H 0 +#define CONFIG_DEPENDENCY_TRACKING 1 +#define CONFIG_EXTERNAL_BUILD 1 +#define CONFIG_INSTALL_DOCS 0 +#define CONFIG_INSTALL_BINS 1 +#define CONFIG_INSTALL_LIBS 1 +#define CONFIG_INSTALL_SRCS 0 +#define CONFIG_DEBUG 0 +#define CONFIG_GPROF 0 +#define CONFIG_GCOV 0 +#define CONFIG_RVCT 0 +#define CONFIG_GCC 1 +#define CONFIG_MSVS 0 +#define CONFIG_PIC 0 +#define CONFIG_BIG_ENDIAN 0 +#define CONFIG_CODEC_SRCS 0 +#define CONFIG_DEBUG_LIBS 0 +#define CONFIG_DEQUANT_TOKENS 0 +#define CONFIG_DC_RECON 0 +#define CONFIG_RUNTIME_CPU_DETECT 0 +#define CONFIG_POSTPROC 1 +#define CONFIG_VP9_POSTPROC 1 +#define CONFIG_MULTITHREAD 1 +#define CONFIG_INTERNAL_STATS 0 +#define CONFIG_VP8_ENCODER 1 +#define CONFIG_VP8_DECODER 1 +#define CONFIG_VP9_ENCODER 1 +#define CONFIG_VP9_DECODER 1 +#define CONFIG_VP8 1 +#define CONFIG_VP9 1 +#define CONFIG_ENCODERS 1 +#define CONFIG_DECODERS 1 +#define CONFIG_STATIC_MSVCRT 0 +#define CONFIG_SPATIAL_RESAMPLING 1 +#define CONFIG_REALTIME_ONLY 1 +#define CONFIG_ONTHEFLY_BITPACKING 0 +#define CONFIG_ERROR_CONCEALMENT 0 +#define CONFIG_SHARED 0 +#define CONFIG_STATIC 1 +#define CONFIG_SMALL 0 +#define CONFIG_POSTPROC_VISUALIZER 0 +#define CONFIG_OS_SUPPORT 1 +#define CONFIG_UNIT_TESTS 1 +#define CONFIG_WEBM_IO 1 +#define CONFIG_LIBYUV 1 +#define CONFIG_DECODE_PERF_TESTS 0 +#define CONFIG_ENCODE_PERF_TESTS 0 +#define CONFIG_MULTI_RES_ENCODING 1 +#define CONFIG_TEMPORAL_DENOISING 1 +#define CONFIG_VP9_TEMPORAL_DENOISING 1 +#define CONFIG_CONSISTENT_RECODE 0 +#define CONFIG_COEFFICIENT_RANGE_CHECKING 0 +#define CONFIG_VP9_HIGHBITDEPTH 1 +#define CONFIG_BETTER_HW_COMPATIBILITY 0 +#define CONFIG_EXPERIMENTAL 0 +#define CONFIG_SIZE_LIMIT 1 +#define CONFIG_ALWAYS_ADJUST_BPM 0 +#define CONFIG_FP_MB_STATS 0 +#define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 +#define DECODE_WIDTH_LIMIT 16384 +#define DECODE_HEIGHT_LIMIT 16384 +#endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_dsp_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_dsp_rtcd.h new file mode 100644 index 00000000000..13fe98c482b --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_dsp_rtcd.h @@ -0,0 +1,5166 @@ +// This file is generated. Do not edit. +#ifndef VPX_DSP_RTCD_H_ +#define VPX_DSP_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +/* + * DSP + */ + +#include "vpx/vpx_integer.h" +#include "vpx_dsp/vpx_dsp_common.h" +#include "vpx_dsp/vpx_filter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +unsigned int vpx_avg_4x4_c(const uint8_t*, int p); +unsigned int vpx_avg_4x4_neon(const uint8_t*, int p); +#define vpx_avg_4x4 vpx_avg_4x4_neon + +unsigned int vpx_avg_8x8_c(const uint8_t*, int p); +unsigned int vpx_avg_8x8_neon(const uint8_t*, int p); +#define vpx_avg_8x8 vpx_avg_8x8_neon + +void vpx_comp_avg_pred_c(uint8_t* comp_pred, + const uint8_t* pred, + int width, + int height, + const uint8_t* ref, + int ref_stride); +void vpx_comp_avg_pred_neon(uint8_t* comp_pred, + const uint8_t* pred, + int width, + int height, + const uint8_t* ref, + int ref_stride); +#define vpx_comp_avg_pred vpx_comp_avg_pred_neon + +void vpx_convolve8_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8 vpx_convolve8_neon + +void vpx_convolve8_avg_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_avg_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_avg vpx_convolve8_avg_neon + +void vpx_convolve8_avg_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_avg_horiz_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_neon + +void vpx_convolve8_avg_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_avg_vert_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_neon + +void vpx_convolve8_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_horiz_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_horiz vpx_convolve8_horiz_neon + +void vpx_convolve8_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve8_vert_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve8_vert vpx_convolve8_vert_neon + +void vpx_convolve_avg_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve_avg_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve_avg vpx_convolve_avg_neon + +void vpx_convolve_copy_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_convolve_copy_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_convolve_copy vpx_convolve_copy_neon + +void vpx_d117_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c + +void vpx_d117_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c + +void vpx_d117_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c + +void vpx_d117_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c + +void vpx_d135_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_neon + +void vpx_d135_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_neon + +void vpx_d135_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_neon + +void vpx_d135_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d135_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_neon + +void vpx_d153_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c + +void vpx_d153_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c + +void vpx_d153_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c + +void vpx_d153_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c + +void vpx_d207_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c + +void vpx_d207_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c + +void vpx_d207_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c + +void vpx_d207_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c + +void vpx_d45_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_neon + +void vpx_d45_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_neon + +void vpx_d45_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_neon + +void vpx_d45_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_d45_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_neon + +void vpx_d45e_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c + +void vpx_d63_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c + +void vpx_d63_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c + +void vpx_d63_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c + +void vpx_d63_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c + +void vpx_d63e_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c + +void vpx_dc_128_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_neon + +void vpx_dc_128_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_neon + +void vpx_dc_128_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_neon + +void vpx_dc_128_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_128_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_neon + +void vpx_dc_left_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_neon + +void vpx_dc_left_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_neon + +void vpx_dc_left_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_neon + +void vpx_dc_left_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_left_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_neon + +void vpx_dc_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_neon + +void vpx_dc_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_neon + +void vpx_dc_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_neon + +void vpx_dc_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_neon + +void vpx_dc_top_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_neon + +void vpx_dc_top_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_neon + +void vpx_dc_top_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_neon + +void vpx_dc_top_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_dc_top_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_neon + +void vpx_fdct16x16_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct16x16_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct16x16 vpx_fdct16x16_neon + +void vpx_fdct16x16_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct16x16_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct16x16_1 vpx_fdct16x16_1_neon + +void vpx_fdct32x32_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct32x32_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct32x32 vpx_fdct32x32_neon + +void vpx_fdct32x32_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct32x32_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct32x32_1 vpx_fdct32x32_1_neon + +void vpx_fdct32x32_rd_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct32x32_rd_neon(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_fdct32x32_rd vpx_fdct32x32_rd_neon + +void vpx_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct4x4_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct4x4 vpx_fdct4x4_neon + +void vpx_fdct4x4_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct4x4_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct4x4_1 vpx_fdct4x4_1_neon + +void vpx_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct8x8_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct8x8 vpx_fdct8x8_neon + +void vpx_fdct8x8_1_c(const int16_t* input, tran_low_t* output, int stride); +void vpx_fdct8x8_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_fdct8x8_1 vpx_fdct8x8_1_neon + +void vpx_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +void vpx_get16x16var_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_get16x16var vpx_get16x16var_neon + +unsigned int vpx_get4x4sse_cs_c(const unsigned char* src_ptr, + int source_stride, + const unsigned char* ref_ptr, + int ref_stride); +unsigned int vpx_get4x4sse_cs_neon(const unsigned char* src_ptr, + int source_stride, + const unsigned char* ref_ptr, + int ref_stride); +#define vpx_get4x4sse_cs vpx_get4x4sse_cs_neon + +void vpx_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +void vpx_get8x8var_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_get8x8var vpx_get8x8var_neon + +unsigned int vpx_get_mb_ss_c(const int16_t*); +#define vpx_get_mb_ss vpx_get_mb_ss_c + +void vpx_h_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_neon + +void vpx_h_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_neon + +void vpx_h_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_neon + +void vpx_h_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_h_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_neon + +void vpx_hadamard_16x16_c(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +void vpx_hadamard_16x16_neon(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +#define vpx_hadamard_16x16 vpx_hadamard_16x16_neon + +void vpx_hadamard_32x32_c(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +#define vpx_hadamard_32x32 vpx_hadamard_32x32_c + +void vpx_hadamard_8x8_c(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +void vpx_hadamard_8x8_neon(const int16_t* src_diff, + ptrdiff_t src_stride, + tran_low_t* coeff); +#define vpx_hadamard_8x8 vpx_hadamard_8x8_neon + +void vpx_he_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c + +void vpx_highbd_10_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_10_get16x16var vpx_highbd_10_get16x16var_c + +void vpx_highbd_10_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_10_get8x8var vpx_highbd_10_get8x8var_c + +unsigned int vpx_highbd_10_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse16x16 vpx_highbd_10_mse16x16_c + +unsigned int vpx_highbd_10_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse16x8 vpx_highbd_10_mse16x8_c + +unsigned int vpx_highbd_10_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse8x16 vpx_highbd_10_mse8x16_c + +unsigned int vpx_highbd_10_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_10_mse8x8 vpx_highbd_10_mse8x8_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance16x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance16x16 \ + vpx_highbd_10_sub_pixel_avg_variance16x16_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance16x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance16x32 \ + vpx_highbd_10_sub_pixel_avg_variance16x32_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance16x8 \ + vpx_highbd_10_sub_pixel_avg_variance16x8_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance32x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance32x16 \ + vpx_highbd_10_sub_pixel_avg_variance32x16_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance32x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance32x32 \ + vpx_highbd_10_sub_pixel_avg_variance32x32_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance32x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance32x64 \ + vpx_highbd_10_sub_pixel_avg_variance32x64_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance4x4 \ + vpx_highbd_10_sub_pixel_avg_variance4x4_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance4x8 \ + vpx_highbd_10_sub_pixel_avg_variance4x8_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance64x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance64x32 \ + vpx_highbd_10_sub_pixel_avg_variance64x32_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance64x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance64x64 \ + vpx_highbd_10_sub_pixel_avg_variance64x64_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance8x16 \ + vpx_highbd_10_sub_pixel_avg_variance8x16_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance8x4 \ + vpx_highbd_10_sub_pixel_avg_variance8x4_c + +uint32_t vpx_highbd_10_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_10_sub_pixel_avg_variance8x8 \ + vpx_highbd_10_sub_pixel_avg_variance8x8_c + +uint32_t vpx_highbd_10_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance16x16 \ + vpx_highbd_10_sub_pixel_variance16x16_c + +uint32_t vpx_highbd_10_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance16x32 \ + vpx_highbd_10_sub_pixel_variance16x32_c + +uint32_t vpx_highbd_10_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance16x8 \ + vpx_highbd_10_sub_pixel_variance16x8_c + +uint32_t vpx_highbd_10_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance32x16 \ + vpx_highbd_10_sub_pixel_variance32x16_c + +uint32_t vpx_highbd_10_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance32x32 \ + vpx_highbd_10_sub_pixel_variance32x32_c + +uint32_t vpx_highbd_10_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance32x64 \ + vpx_highbd_10_sub_pixel_variance32x64_c + +uint32_t vpx_highbd_10_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance4x4 \ + vpx_highbd_10_sub_pixel_variance4x4_c + +uint32_t vpx_highbd_10_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance4x8 \ + vpx_highbd_10_sub_pixel_variance4x8_c + +uint32_t vpx_highbd_10_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance64x32 \ + vpx_highbd_10_sub_pixel_variance64x32_c + +uint32_t vpx_highbd_10_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance64x64 \ + vpx_highbd_10_sub_pixel_variance64x64_c + +uint32_t vpx_highbd_10_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance8x16 \ + vpx_highbd_10_sub_pixel_variance8x16_c + +uint32_t vpx_highbd_10_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance8x4 \ + vpx_highbd_10_sub_pixel_variance8x4_c + +uint32_t vpx_highbd_10_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_10_sub_pixel_variance8x8 \ + vpx_highbd_10_sub_pixel_variance8x8_c + +unsigned int vpx_highbd_10_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance16x16 vpx_highbd_10_variance16x16_c + +unsigned int vpx_highbd_10_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance16x32 vpx_highbd_10_variance16x32_c + +unsigned int vpx_highbd_10_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance16x8 vpx_highbd_10_variance16x8_c + +unsigned int vpx_highbd_10_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance32x16 vpx_highbd_10_variance32x16_c + +unsigned int vpx_highbd_10_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance32x32 vpx_highbd_10_variance32x32_c + +unsigned int vpx_highbd_10_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance32x64 vpx_highbd_10_variance32x64_c + +unsigned int vpx_highbd_10_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance4x4 vpx_highbd_10_variance4x4_c + +unsigned int vpx_highbd_10_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance4x8 vpx_highbd_10_variance4x8_c + +unsigned int vpx_highbd_10_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance64x32 vpx_highbd_10_variance64x32_c + +unsigned int vpx_highbd_10_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance64x64 vpx_highbd_10_variance64x64_c + +unsigned int vpx_highbd_10_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance8x16 vpx_highbd_10_variance8x16_c + +unsigned int vpx_highbd_10_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance8x4 vpx_highbd_10_variance8x4_c + +unsigned int vpx_highbd_10_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_10_variance8x8 vpx_highbd_10_variance8x8_c + +void vpx_highbd_12_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_12_get16x16var vpx_highbd_12_get16x16var_c + +void vpx_highbd_12_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_12_get8x8var vpx_highbd_12_get8x8var_c + +unsigned int vpx_highbd_12_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse16x16 vpx_highbd_12_mse16x16_c + +unsigned int vpx_highbd_12_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse16x8 vpx_highbd_12_mse16x8_c + +unsigned int vpx_highbd_12_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse8x16 vpx_highbd_12_mse8x16_c + +unsigned int vpx_highbd_12_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_12_mse8x8 vpx_highbd_12_mse8x8_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance16x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance16x16 \ + vpx_highbd_12_sub_pixel_avg_variance16x16_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance16x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance16x32 \ + vpx_highbd_12_sub_pixel_avg_variance16x32_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance16x8 \ + vpx_highbd_12_sub_pixel_avg_variance16x8_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance32x16_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance32x16 \ + vpx_highbd_12_sub_pixel_avg_variance32x16_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance32x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance32x32 \ + vpx_highbd_12_sub_pixel_avg_variance32x32_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance32x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance32x64 \ + vpx_highbd_12_sub_pixel_avg_variance32x64_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance4x4 \ + vpx_highbd_12_sub_pixel_avg_variance4x4_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance4x8 \ + vpx_highbd_12_sub_pixel_avg_variance4x8_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance64x32_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance64x32 \ + vpx_highbd_12_sub_pixel_avg_variance64x32_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance64x64_c( + const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance64x64 \ + vpx_highbd_12_sub_pixel_avg_variance64x64_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance8x16 \ + vpx_highbd_12_sub_pixel_avg_variance8x16_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance8x4 \ + vpx_highbd_12_sub_pixel_avg_variance8x4_c + +uint32_t vpx_highbd_12_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_12_sub_pixel_avg_variance8x8 \ + vpx_highbd_12_sub_pixel_avg_variance8x8_c + +uint32_t vpx_highbd_12_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance16x16 \ + vpx_highbd_12_sub_pixel_variance16x16_c + +uint32_t vpx_highbd_12_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance16x32 \ + vpx_highbd_12_sub_pixel_variance16x32_c + +uint32_t vpx_highbd_12_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance16x8 \ + vpx_highbd_12_sub_pixel_variance16x8_c + +uint32_t vpx_highbd_12_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance32x16 \ + vpx_highbd_12_sub_pixel_variance32x16_c + +uint32_t vpx_highbd_12_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance32x32 \ + vpx_highbd_12_sub_pixel_variance32x32_c + +uint32_t vpx_highbd_12_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance32x64 \ + vpx_highbd_12_sub_pixel_variance32x64_c + +uint32_t vpx_highbd_12_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance4x4 \ + vpx_highbd_12_sub_pixel_variance4x4_c + +uint32_t vpx_highbd_12_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance4x8 \ + vpx_highbd_12_sub_pixel_variance4x8_c + +uint32_t vpx_highbd_12_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance64x32 \ + vpx_highbd_12_sub_pixel_variance64x32_c + +uint32_t vpx_highbd_12_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance64x64 \ + vpx_highbd_12_sub_pixel_variance64x64_c + +uint32_t vpx_highbd_12_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance8x16 \ + vpx_highbd_12_sub_pixel_variance8x16_c + +uint32_t vpx_highbd_12_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance8x4 \ + vpx_highbd_12_sub_pixel_variance8x4_c + +uint32_t vpx_highbd_12_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_12_sub_pixel_variance8x8 \ + vpx_highbd_12_sub_pixel_variance8x8_c + +unsigned int vpx_highbd_12_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance16x16 vpx_highbd_12_variance16x16_c + +unsigned int vpx_highbd_12_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance16x32 vpx_highbd_12_variance16x32_c + +unsigned int vpx_highbd_12_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance16x8 vpx_highbd_12_variance16x8_c + +unsigned int vpx_highbd_12_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance32x16 vpx_highbd_12_variance32x16_c + +unsigned int vpx_highbd_12_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance32x32 vpx_highbd_12_variance32x32_c + +unsigned int vpx_highbd_12_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance32x64 vpx_highbd_12_variance32x64_c + +unsigned int vpx_highbd_12_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance4x4 vpx_highbd_12_variance4x4_c + +unsigned int vpx_highbd_12_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance4x8 vpx_highbd_12_variance4x8_c + +unsigned int vpx_highbd_12_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance64x32 vpx_highbd_12_variance64x32_c + +unsigned int vpx_highbd_12_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance64x64 vpx_highbd_12_variance64x64_c + +unsigned int vpx_highbd_12_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance8x16 vpx_highbd_12_variance8x16_c + +unsigned int vpx_highbd_12_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance8x4 vpx_highbd_12_variance8x4_c + +unsigned int vpx_highbd_12_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_12_variance8x8 vpx_highbd_12_variance8x8_c + +void vpx_highbd_8_get16x16var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_8_get16x16var vpx_highbd_8_get16x16var_c + +void vpx_highbd_8_get8x8var_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse, + int* sum); +#define vpx_highbd_8_get8x8var vpx_highbd_8_get8x8var_c + +unsigned int vpx_highbd_8_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse16x16 vpx_highbd_8_mse16x16_c + +unsigned int vpx_highbd_8_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse16x8 vpx_highbd_8_mse16x8_c + +unsigned int vpx_highbd_8_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse8x16 vpx_highbd_8_mse8x16_c + +unsigned int vpx_highbd_8_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_highbd_8_mse8x8 vpx_highbd_8_mse8x8_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance16x16 \ + vpx_highbd_8_sub_pixel_avg_variance16x16_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance16x32 \ + vpx_highbd_8_sub_pixel_avg_variance16x32_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance16x8 \ + vpx_highbd_8_sub_pixel_avg_variance16x8_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance32x16 \ + vpx_highbd_8_sub_pixel_avg_variance32x16_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance32x32 \ + vpx_highbd_8_sub_pixel_avg_variance32x32_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance32x64 \ + vpx_highbd_8_sub_pixel_avg_variance32x64_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance4x4 \ + vpx_highbd_8_sub_pixel_avg_variance4x4_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance4x8 \ + vpx_highbd_8_sub_pixel_avg_variance4x8_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance64x32 \ + vpx_highbd_8_sub_pixel_avg_variance64x32_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance64x64 \ + vpx_highbd_8_sub_pixel_avg_variance64x64_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance8x16 \ + vpx_highbd_8_sub_pixel_avg_variance8x16_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance8x4 \ + vpx_highbd_8_sub_pixel_avg_variance8x4_c + +uint32_t vpx_highbd_8_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_highbd_8_sub_pixel_avg_variance8x8 \ + vpx_highbd_8_sub_pixel_avg_variance8x8_c + +uint32_t vpx_highbd_8_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance16x16 \ + vpx_highbd_8_sub_pixel_variance16x16_c + +uint32_t vpx_highbd_8_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance16x32 \ + vpx_highbd_8_sub_pixel_variance16x32_c + +uint32_t vpx_highbd_8_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance16x8 \ + vpx_highbd_8_sub_pixel_variance16x8_c + +uint32_t vpx_highbd_8_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance32x16 \ + vpx_highbd_8_sub_pixel_variance32x16_c + +uint32_t vpx_highbd_8_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance32x32 \ + vpx_highbd_8_sub_pixel_variance32x32_c + +uint32_t vpx_highbd_8_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance32x64 \ + vpx_highbd_8_sub_pixel_variance32x64_c + +uint32_t vpx_highbd_8_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance4x4 vpx_highbd_8_sub_pixel_variance4x4_c + +uint32_t vpx_highbd_8_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance4x8 vpx_highbd_8_sub_pixel_variance4x8_c + +uint32_t vpx_highbd_8_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance64x32 \ + vpx_highbd_8_sub_pixel_variance64x32_c + +uint32_t vpx_highbd_8_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance64x64 \ + vpx_highbd_8_sub_pixel_variance64x64_c + +uint32_t vpx_highbd_8_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance8x16 \ + vpx_highbd_8_sub_pixel_variance8x16_c + +uint32_t vpx_highbd_8_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance8x4 vpx_highbd_8_sub_pixel_variance8x4_c + +uint32_t vpx_highbd_8_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_highbd_8_sub_pixel_variance8x8 vpx_highbd_8_sub_pixel_variance8x8_c + +unsigned int vpx_highbd_8_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance16x16 vpx_highbd_8_variance16x16_c + +unsigned int vpx_highbd_8_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance16x32 vpx_highbd_8_variance16x32_c + +unsigned int vpx_highbd_8_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance16x8 vpx_highbd_8_variance16x8_c + +unsigned int vpx_highbd_8_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance32x16 vpx_highbd_8_variance32x16_c + +unsigned int vpx_highbd_8_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance32x32 vpx_highbd_8_variance32x32_c + +unsigned int vpx_highbd_8_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance32x64 vpx_highbd_8_variance32x64_c + +unsigned int vpx_highbd_8_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance4x4 vpx_highbd_8_variance4x4_c + +unsigned int vpx_highbd_8_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance4x8 vpx_highbd_8_variance4x8_c + +unsigned int vpx_highbd_8_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance64x32 vpx_highbd_8_variance64x32_c + +unsigned int vpx_highbd_8_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance64x64 vpx_highbd_8_variance64x64_c + +unsigned int vpx_highbd_8_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance8x16 vpx_highbd_8_variance8x16_c + +unsigned int vpx_highbd_8_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance8x4 vpx_highbd_8_variance8x4_c + +unsigned int vpx_highbd_8_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_highbd_8_variance8x8 vpx_highbd_8_variance8x8_c + +unsigned int vpx_highbd_avg_4x4_c(const uint8_t*, int p); +#define vpx_highbd_avg_4x4 vpx_highbd_avg_4x4_c + +unsigned int vpx_highbd_avg_8x8_c(const uint8_t*, int p); +#define vpx_highbd_avg_8x8 vpx_highbd_avg_8x8_c + +void vpx_highbd_comp_avg_pred_c(uint16_t* comp_pred, + const uint16_t* pred, + int width, + int height, + const uint16_t* ref, + int ref_stride); +#define vpx_highbd_comp_avg_pred vpx_highbd_comp_avg_pred_c + +void vpx_highbd_convolve8_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8 vpx_highbd_convolve8_neon + +void vpx_highbd_convolve8_avg_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_avg_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_avg vpx_highbd_convolve8_avg_neon + +void vpx_highbd_convolve8_avg_horiz_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_avg_horiz_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_avg_horiz vpx_highbd_convolve8_avg_horiz_neon + +void vpx_highbd_convolve8_avg_vert_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_avg_vert_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_avg_vert vpx_highbd_convolve8_avg_vert_neon + +void vpx_highbd_convolve8_horiz_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_horiz_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_horiz vpx_highbd_convolve8_horiz_neon + +void vpx_highbd_convolve8_vert_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve8_vert_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve8_vert vpx_highbd_convolve8_vert_neon + +void vpx_highbd_convolve_avg_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve_avg_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve_avg vpx_highbd_convolve_avg_neon + +void vpx_highbd_convolve_copy_c(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +void vpx_highbd_convolve_copy_neon(const uint16_t* src, + ptrdiff_t src_stride, + uint16_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h, + int bps); +#define vpx_highbd_convolve_copy vpx_highbd_convolve_copy_neon + +void vpx_highbd_d117_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_16x16 vpx_highbd_d117_predictor_16x16_c + +void vpx_highbd_d117_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_32x32 vpx_highbd_d117_predictor_32x32_c + +void vpx_highbd_d117_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_4x4 vpx_highbd_d117_predictor_4x4_c + +void vpx_highbd_d117_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d117_predictor_8x8 vpx_highbd_d117_predictor_8x8_c + +void vpx_highbd_d135_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_16x16 vpx_highbd_d135_predictor_16x16_neon + +void vpx_highbd_d135_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_32x32 vpx_highbd_d135_predictor_32x32_neon + +void vpx_highbd_d135_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_4x4 vpx_highbd_d135_predictor_4x4_neon + +void vpx_highbd_d135_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d135_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d135_predictor_8x8 vpx_highbd_d135_predictor_8x8_neon + +void vpx_highbd_d153_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_16x16 vpx_highbd_d153_predictor_16x16_c + +void vpx_highbd_d153_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_32x32 vpx_highbd_d153_predictor_32x32_c + +void vpx_highbd_d153_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_4x4 vpx_highbd_d153_predictor_4x4_c + +void vpx_highbd_d153_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d153_predictor_8x8 vpx_highbd_d153_predictor_8x8_c + +void vpx_highbd_d207_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_16x16 vpx_highbd_d207_predictor_16x16_c + +void vpx_highbd_d207_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_32x32 vpx_highbd_d207_predictor_32x32_c + +void vpx_highbd_d207_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_4x4 vpx_highbd_d207_predictor_4x4_c + +void vpx_highbd_d207_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d207_predictor_8x8 vpx_highbd_d207_predictor_8x8_c + +void vpx_highbd_d45_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_16x16 vpx_highbd_d45_predictor_16x16_neon + +void vpx_highbd_d45_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_32x32 vpx_highbd_d45_predictor_32x32_neon + +void vpx_highbd_d45_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_4x4 vpx_highbd_d45_predictor_4x4_neon + +void vpx_highbd_d45_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_d45_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d45_predictor_8x8 vpx_highbd_d45_predictor_8x8_neon + +void vpx_highbd_d63_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_16x16 vpx_highbd_d63_predictor_16x16_c + +void vpx_highbd_d63_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_32x32 vpx_highbd_d63_predictor_32x32_c + +void vpx_highbd_d63_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_4x4 vpx_highbd_d63_predictor_4x4_c + +void vpx_highbd_d63_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_d63_predictor_8x8 vpx_highbd_d63_predictor_8x8_c + +void vpx_highbd_dc_128_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_16x16 vpx_highbd_dc_128_predictor_16x16_neon + +void vpx_highbd_dc_128_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_32x32 vpx_highbd_dc_128_predictor_32x32_neon + +void vpx_highbd_dc_128_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_4x4 vpx_highbd_dc_128_predictor_4x4_neon + +void vpx_highbd_dc_128_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_128_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_128_predictor_8x8 vpx_highbd_dc_128_predictor_8x8_neon + +void vpx_highbd_dc_left_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_16x16 \ + vpx_highbd_dc_left_predictor_16x16_neon + +void vpx_highbd_dc_left_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_32x32 \ + vpx_highbd_dc_left_predictor_32x32_neon + +void vpx_highbd_dc_left_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_4x4 vpx_highbd_dc_left_predictor_4x4_neon + +void vpx_highbd_dc_left_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_left_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_left_predictor_8x8 vpx_highbd_dc_left_predictor_8x8_neon + +void vpx_highbd_dc_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_16x16 vpx_highbd_dc_predictor_16x16_neon + +void vpx_highbd_dc_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_32x32 vpx_highbd_dc_predictor_32x32_neon + +void vpx_highbd_dc_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_4x4 vpx_highbd_dc_predictor_4x4_neon + +void vpx_highbd_dc_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_predictor_8x8 vpx_highbd_dc_predictor_8x8_neon + +void vpx_highbd_dc_top_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_16x16 vpx_highbd_dc_top_predictor_16x16_neon + +void vpx_highbd_dc_top_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_32x32 vpx_highbd_dc_top_predictor_32x32_neon + +void vpx_highbd_dc_top_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_4x4 vpx_highbd_dc_top_predictor_4x4_neon + +void vpx_highbd_dc_top_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_dc_top_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_dc_top_predictor_8x8 vpx_highbd_dc_top_predictor_8x8_neon + +void vpx_highbd_fdct16x16_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct16x16 vpx_highbd_fdct16x16_c + +void vpx_highbd_fdct16x16_1_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct16x16_1 vpx_highbd_fdct16x16_1_c + +void vpx_highbd_fdct32x32_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct32x32 vpx_highbd_fdct32x32_c + +void vpx_highbd_fdct32x32_1_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct32x32_1 vpx_highbd_fdct32x32_1_c + +void vpx_highbd_fdct32x32_rd_c(const int16_t* input, + tran_low_t* output, + int stride); +#define vpx_highbd_fdct32x32_rd vpx_highbd_fdct32x32_rd_c + +void vpx_highbd_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride); +#define vpx_highbd_fdct4x4 vpx_highbd_fdct4x4_c + +void vpx_highbd_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride); +#define vpx_highbd_fdct8x8 vpx_highbd_fdct8x8_c + +void vpx_highbd_fdct8x8_1_c(const int16_t* input, + tran_low_t* output, + int stride); +void vpx_fdct8x8_1_neon(const int16_t* input, tran_low_t* output, int stride); +#define vpx_highbd_fdct8x8_1 vpx_fdct8x8_1_neon + +void vpx_highbd_h_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_16x16 vpx_highbd_h_predictor_16x16_neon + +void vpx_highbd_h_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_32x32 vpx_highbd_h_predictor_32x32_neon + +void vpx_highbd_h_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_4x4 vpx_highbd_h_predictor_4x4_neon + +void vpx_highbd_h_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_h_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_h_predictor_8x8 vpx_highbd_h_predictor_8x8_neon + +void vpx_highbd_idct16x16_10_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_10_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_10_add vpx_highbd_idct16x16_10_add_neon + +void vpx_highbd_idct16x16_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_1_add vpx_highbd_idct16x16_1_add_neon + +void vpx_highbd_idct16x16_256_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_256_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_256_add vpx_highbd_idct16x16_256_add_neon + +void vpx_highbd_idct16x16_38_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct16x16_38_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct16x16_38_add vpx_highbd_idct16x16_38_add_neon + +void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_neon + +void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_neon + +void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_1_add vpx_highbd_idct32x32_1_add_neon + +void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_neon + +void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct4x4_16_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct4x4_16_add vpx_highbd_idct4x4_16_add_neon + +void vpx_highbd_idct4x4_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct4x4_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct4x4_1_add vpx_highbd_idct4x4_1_add_neon + +void vpx_highbd_idct8x8_12_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct8x8_12_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct8x8_12_add vpx_highbd_idct8x8_12_add_neon + +void vpx_highbd_idct8x8_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct8x8_1_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct8x8_1_add vpx_highbd_idct8x8_1_add_neon + +void vpx_highbd_idct8x8_64_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct8x8_64_add_neon(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_idct8x8_64_add vpx_highbd_idct8x8_64_add_neon + +void vpx_highbd_iwht4x4_16_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_iwht4x4_16_add vpx_highbd_iwht4x4_16_add_c + +void vpx_highbd_iwht4x4_1_add_c(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +#define vpx_highbd_iwht4x4_1_add vpx_highbd_iwht4x4_1_add_c + +void vpx_highbd_lpf_horizontal_16_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_16_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_16 vpx_highbd_lpf_horizontal_16_neon + +void vpx_highbd_lpf_horizontal_16_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_16_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_16_dual vpx_highbd_lpf_horizontal_16_dual_neon + +void vpx_highbd_lpf_horizontal_4_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_4_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_4 vpx_highbd_lpf_horizontal_4_neon + +void vpx_highbd_lpf_horizontal_4_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_horizontal_4_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_horizontal_4_dual vpx_highbd_lpf_horizontal_4_dual_neon + +void vpx_highbd_lpf_horizontal_8_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_horizontal_8_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_horizontal_8 vpx_highbd_lpf_horizontal_8_neon + +void vpx_highbd_lpf_horizontal_8_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_horizontal_8_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_horizontal_8_dual vpx_highbd_lpf_horizontal_8_dual_neon + +void vpx_highbd_lpf_vertical_16_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_16_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_16 vpx_highbd_lpf_vertical_16_neon + +void vpx_highbd_lpf_vertical_16_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_16_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_16_dual vpx_highbd_lpf_vertical_16_dual_neon + +void vpx_highbd_lpf_vertical_4_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_4_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_4 vpx_highbd_lpf_vertical_4_neon + +void vpx_highbd_lpf_vertical_4_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_vertical_4_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_vertical_4_dual vpx_highbd_lpf_vertical_4_dual_neon + +void vpx_highbd_lpf_vertical_8_c(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +void vpx_highbd_lpf_vertical_8_neon(uint16_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh, + int bd); +#define vpx_highbd_lpf_vertical_8 vpx_highbd_lpf_vertical_8_neon + +void vpx_highbd_lpf_vertical_8_dual_c(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +void vpx_highbd_lpf_vertical_8_dual_neon(uint16_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1, + int bd); +#define vpx_highbd_lpf_vertical_8_dual vpx_highbd_lpf_vertical_8_dual_neon + +void vpx_highbd_minmax_8x8_c(const uint8_t* s, + int p, + const uint8_t* d, + int dp, + int* min, + int* max); +#define vpx_highbd_minmax_8x8 vpx_highbd_minmax_8x8_c + +void vpx_highbd_quantize_b_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_highbd_quantize_b vpx_highbd_quantize_b_c + +void vpx_highbd_quantize_b_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_highbd_quantize_b_32x32 vpx_highbd_quantize_b_32x32_c + +unsigned int vpx_highbd_sad16x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad16x16 vpx_highbd_sad16x16_c + +unsigned int vpx_highbd_sad16x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad16x16_avg vpx_highbd_sad16x16_avg_c + +void vpx_highbd_sad16x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad16x16x4d vpx_highbd_sad16x16x4d_c + +unsigned int vpx_highbd_sad16x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad16x32 vpx_highbd_sad16x32_c + +unsigned int vpx_highbd_sad16x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad16x32_avg vpx_highbd_sad16x32_avg_c + +void vpx_highbd_sad16x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad16x32x4d vpx_highbd_sad16x32x4d_c + +unsigned int vpx_highbd_sad16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad16x8 vpx_highbd_sad16x8_c + +unsigned int vpx_highbd_sad16x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad16x8_avg vpx_highbd_sad16x8_avg_c + +void vpx_highbd_sad16x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad16x8x4d vpx_highbd_sad16x8x4d_c + +unsigned int vpx_highbd_sad32x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad32x16 vpx_highbd_sad32x16_c + +unsigned int vpx_highbd_sad32x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad32x16_avg vpx_highbd_sad32x16_avg_c + +void vpx_highbd_sad32x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad32x16x4d vpx_highbd_sad32x16x4d_c + +unsigned int vpx_highbd_sad32x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad32x32 vpx_highbd_sad32x32_c + +unsigned int vpx_highbd_sad32x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad32x32_avg vpx_highbd_sad32x32_avg_c + +void vpx_highbd_sad32x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad32x32x4d vpx_highbd_sad32x32x4d_c + +unsigned int vpx_highbd_sad32x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad32x64 vpx_highbd_sad32x64_c + +unsigned int vpx_highbd_sad32x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad32x64_avg vpx_highbd_sad32x64_avg_c + +void vpx_highbd_sad32x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad32x64x4d vpx_highbd_sad32x64x4d_c + +unsigned int vpx_highbd_sad4x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad4x4 vpx_highbd_sad4x4_c + +unsigned int vpx_highbd_sad4x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad4x4_avg vpx_highbd_sad4x4_avg_c + +void vpx_highbd_sad4x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad4x4x4d vpx_highbd_sad4x4x4d_c + +unsigned int vpx_highbd_sad4x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad4x8 vpx_highbd_sad4x8_c + +unsigned int vpx_highbd_sad4x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad4x8_avg vpx_highbd_sad4x8_avg_c + +void vpx_highbd_sad4x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad4x8x4d vpx_highbd_sad4x8x4d_c + +unsigned int vpx_highbd_sad64x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad64x32 vpx_highbd_sad64x32_c + +unsigned int vpx_highbd_sad64x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad64x32_avg vpx_highbd_sad64x32_avg_c + +void vpx_highbd_sad64x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad64x32x4d vpx_highbd_sad64x32x4d_c + +unsigned int vpx_highbd_sad64x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad64x64 vpx_highbd_sad64x64_c + +unsigned int vpx_highbd_sad64x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad64x64_avg vpx_highbd_sad64x64_avg_c + +void vpx_highbd_sad64x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad64x64x4d vpx_highbd_sad64x64x4d_c + +unsigned int vpx_highbd_sad8x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad8x16 vpx_highbd_sad8x16_c + +unsigned int vpx_highbd_sad8x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad8x16_avg vpx_highbd_sad8x16_avg_c + +void vpx_highbd_sad8x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad8x16x4d vpx_highbd_sad8x16x4d_c + +unsigned int vpx_highbd_sad8x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad8x4 vpx_highbd_sad8x4_c + +unsigned int vpx_highbd_sad8x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad8x4_avg vpx_highbd_sad8x4_avg_c + +void vpx_highbd_sad8x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad8x4x4d vpx_highbd_sad8x4x4d_c + +unsigned int vpx_highbd_sad8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_highbd_sad8x8 vpx_highbd_sad8x8_c + +unsigned int vpx_highbd_sad8x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_highbd_sad8x8_avg vpx_highbd_sad8x8_avg_c + +void vpx_highbd_sad8x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_highbd_sad8x8x4d vpx_highbd_sad8x8x4d_c + +void vpx_highbd_subtract_block_c(int rows, + int cols, + int16_t* diff_ptr, + ptrdiff_t diff_stride, + const uint8_t* src_ptr, + ptrdiff_t src_stride, + const uint8_t* pred_ptr, + ptrdiff_t pred_stride, + int bd); +#define vpx_highbd_subtract_block vpx_highbd_subtract_block_c + +void vpx_highbd_tm_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_16x16 vpx_highbd_tm_predictor_16x16_neon + +void vpx_highbd_tm_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_32x32 vpx_highbd_tm_predictor_32x32_neon + +void vpx_highbd_tm_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_4x4 vpx_highbd_tm_predictor_4x4_neon + +void vpx_highbd_tm_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_tm_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_tm_predictor_8x8 vpx_highbd_tm_predictor_8x8_neon + +void vpx_highbd_v_predictor_16x16_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_16x16_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_16x16 vpx_highbd_v_predictor_16x16_neon + +void vpx_highbd_v_predictor_32x32_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_32x32_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_32x32 vpx_highbd_v_predictor_32x32_neon + +void vpx_highbd_v_predictor_4x4_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_4x4_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_4x4 vpx_highbd_v_predictor_4x4_neon + +void vpx_highbd_v_predictor_8x8_c(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +void vpx_highbd_v_predictor_8x8_neon(uint16_t* dst, + ptrdiff_t y_stride, + const uint16_t* above, + const uint16_t* left, + int bd); +#define vpx_highbd_v_predictor_8x8 vpx_highbd_v_predictor_8x8_neon + +void vpx_idct16x16_10_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct16x16_10_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_10_add vpx_idct16x16_10_add_neon + +void vpx_idct16x16_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct16x16_1_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_1_add vpx_idct16x16_1_add_neon + +void vpx_idct16x16_256_add_c(const tran_low_t* input, + uint8_t* dest, + int stride); +void vpx_idct16x16_256_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_256_add vpx_idct16x16_256_add_neon + +void vpx_idct16x16_38_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct16x16_38_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct16x16_38_add vpx_idct16x16_38_add_neon + +void vpx_idct32x32_1024_add_c(const tran_low_t* input, + uint8_t* dest, + int stride); +void vpx_idct32x32_1024_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_neon + +void vpx_idct32x32_135_add_c(const tran_low_t* input, + uint8_t* dest, + int stride); +void vpx_idct32x32_135_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_135_add vpx_idct32x32_135_add_neon + +void vpx_idct32x32_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct32x32_1_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_1_add vpx_idct32x32_1_add_neon + +void vpx_idct32x32_34_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct32x32_34_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct32x32_34_add vpx_idct32x32_34_add_neon + +void vpx_idct4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct4x4_16_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct4x4_16_add vpx_idct4x4_16_add_neon + +void vpx_idct4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct4x4_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_idct4x4_1_add vpx_idct4x4_1_add_neon + +void vpx_idct8x8_12_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct8x8_12_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct8x8_12_add vpx_idct8x8_12_add_neon + +void vpx_idct8x8_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct8x8_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_idct8x8_1_add vpx_idct8x8_1_add_neon + +void vpx_idct8x8_64_add_c(const tran_low_t* input, uint8_t* dest, int stride); +void vpx_idct8x8_64_add_neon(const tran_low_t* input, + uint8_t* dest, + int stride); +#define vpx_idct8x8_64_add vpx_idct8x8_64_add_neon + +int16_t vpx_int_pro_col_c(const uint8_t* ref, const int width); +int16_t vpx_int_pro_col_neon(const uint8_t* ref, const int width); +#define vpx_int_pro_col vpx_int_pro_col_neon + +void vpx_int_pro_row_c(int16_t* hbuf, + const uint8_t* ref, + const int ref_stride, + const int height); +void vpx_int_pro_row_neon(int16_t* hbuf, + const uint8_t* ref, + const int ref_stride, + const int height); +#define vpx_int_pro_row vpx_int_pro_row_neon + +void vpx_iwht4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c + +void vpx_iwht4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); +#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c + +void vpx_lpf_horizontal_16_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_16_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_neon + +void vpx_lpf_horizontal_16_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_16_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_16_dual vpx_lpf_horizontal_16_dual_neon + +void vpx_lpf_horizontal_4_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_4_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_neon + +void vpx_lpf_horizontal_4_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_horizontal_4_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_neon + +void vpx_lpf_horizontal_8_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_horizontal_8_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_neon + +void vpx_lpf_horizontal_8_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_horizontal_8_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_neon + +void vpx_lpf_vertical_16_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_16_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_neon + +void vpx_lpf_vertical_16_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_16_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_neon + +void vpx_lpf_vertical_4_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_4_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_neon + +void vpx_lpf_vertical_4_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_vertical_4_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_neon + +void vpx_lpf_vertical_8_c(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +void vpx_lpf_vertical_8_neon(uint8_t* s, + int pitch, + const uint8_t* blimit, + const uint8_t* limit, + const uint8_t* thresh); +#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_neon + +void vpx_lpf_vertical_8_dual_c(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +void vpx_lpf_vertical_8_dual_neon(uint8_t* s, + int pitch, + const uint8_t* blimit0, + const uint8_t* limit0, + const uint8_t* thresh0, + const uint8_t* blimit1, + const uint8_t* limit1, + const uint8_t* thresh1); +#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_neon + +void vpx_mbpost_proc_across_ip_c(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +void vpx_mbpost_proc_across_ip_neon(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +#define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_neon + +void vpx_mbpost_proc_down_c(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +void vpx_mbpost_proc_down_neon(unsigned char* dst, + int pitch, + int rows, + int cols, + int flimit); +#define vpx_mbpost_proc_down vpx_mbpost_proc_down_neon + +void vpx_minmax_8x8_c(const uint8_t* s, + int p, + const uint8_t* d, + int dp, + int* min, + int* max); +void vpx_minmax_8x8_neon(const uint8_t* s, + int p, + const uint8_t* d, + int dp, + int* min, + int* max); +#define vpx_minmax_8x8 vpx_minmax_8x8_neon + +unsigned int vpx_mse16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +unsigned int vpx_mse16x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse16x16 vpx_mse16x16_neon + +unsigned int vpx_mse16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse16x8 vpx_mse16x8_c + +unsigned int vpx_mse8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse8x16 vpx_mse8x16_c + +unsigned int vpx_mse8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int recon_stride, + unsigned int* sse); +#define vpx_mse8x8 vpx_mse8x8_c + +void vpx_plane_add_noise_c(uint8_t* start, + const int8_t* noise, + int blackclamp, + int whiteclamp, + int width, + int height, + int pitch); +#define vpx_plane_add_noise vpx_plane_add_noise_c + +void vpx_post_proc_down_and_across_mb_row_c(unsigned char* src, + unsigned char* dst, + int src_pitch, + int dst_pitch, + int cols, + unsigned char* flimits, + int size); +void vpx_post_proc_down_and_across_mb_row_neon(unsigned char* src, + unsigned char* dst, + int src_pitch, + int dst_pitch, + int cols, + unsigned char* flimits, + int size); +#define vpx_post_proc_down_and_across_mb_row \ + vpx_post_proc_down_and_across_mb_row_neon + +void vpx_quantize_b_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vpx_quantize_b_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_quantize_b vpx_quantize_b_neon + +void vpx_quantize_b_32x32_c(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +void vpx_quantize_b_32x32_neon(const tran_low_t* coeff_ptr, + intptr_t n_coeffs, + int skip_block, + const int16_t* zbin_ptr, + const int16_t* round_ptr, + const int16_t* quant_ptr, + const int16_t* quant_shift_ptr, + tran_low_t* qcoeff_ptr, + tran_low_t* dqcoeff_ptr, + const int16_t* dequant_ptr, + uint16_t* eob_ptr, + const int16_t* scan, + const int16_t* iscan); +#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_neon + +unsigned int vpx_sad16x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad16x16_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad16x16 vpx_sad16x16_neon + +unsigned int vpx_sad16x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad16x16_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad16x16_avg vpx_sad16x16_avg_neon + +void vpx_sad16x16x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x16x3 vpx_sad16x16x3_c + +void vpx_sad16x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad16x16x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x16x4d vpx_sad16x16x4d_neon + +void vpx_sad16x16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x16x8 vpx_sad16x16x8_c + +unsigned int vpx_sad16x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad16x32_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad16x32 vpx_sad16x32_neon + +unsigned int vpx_sad16x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad16x32_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad16x32_avg vpx_sad16x32_avg_neon + +void vpx_sad16x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad16x32x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x32x4d vpx_sad16x32x4d_neon + +unsigned int vpx_sad16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad16x8_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad16x8 vpx_sad16x8_neon + +unsigned int vpx_sad16x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad16x8_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad16x8_avg vpx_sad16x8_avg_neon + +void vpx_sad16x8x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x8x3 vpx_sad16x8x3_c + +void vpx_sad16x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad16x8x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x8x4d vpx_sad16x8x4d_neon + +void vpx_sad16x8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad16x8x8 vpx_sad16x8x8_c + +unsigned int vpx_sad32x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad32x16_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad32x16 vpx_sad32x16_neon + +unsigned int vpx_sad32x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad32x16_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad32x16_avg vpx_sad32x16_avg_neon + +void vpx_sad32x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad32x16x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad32x16x4d vpx_sad32x16x4d_neon + +unsigned int vpx_sad32x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad32x32_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad32x32 vpx_sad32x32_neon + +unsigned int vpx_sad32x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad32x32_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad32x32_avg vpx_sad32x32_avg_neon + +void vpx_sad32x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad32x32x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad32x32x4d vpx_sad32x32x4d_neon + +unsigned int vpx_sad32x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad32x64_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad32x64 vpx_sad32x64_neon + +unsigned int vpx_sad32x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad32x64_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad32x64_avg vpx_sad32x64_avg_neon + +void vpx_sad32x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad32x64x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad32x64x4d vpx_sad32x64x4d_neon + +unsigned int vpx_sad4x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad4x4_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad4x4 vpx_sad4x4_neon + +unsigned int vpx_sad4x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad4x4_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad4x4_avg vpx_sad4x4_avg_neon + +void vpx_sad4x4x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x4x3 vpx_sad4x4x3_c + +void vpx_sad4x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad4x4x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x4x4d vpx_sad4x4x4d_neon + +void vpx_sad4x4x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x4x8 vpx_sad4x4x8_c + +unsigned int vpx_sad4x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad4x8_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad4x8 vpx_sad4x8_neon + +unsigned int vpx_sad4x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad4x8_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad4x8_avg vpx_sad4x8_avg_neon + +void vpx_sad4x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad4x8x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad4x8x4d vpx_sad4x8x4d_neon + +unsigned int vpx_sad64x32_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad64x32_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad64x32 vpx_sad64x32_neon + +unsigned int vpx_sad64x32_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad64x32_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad64x32_avg vpx_sad64x32_avg_neon + +void vpx_sad64x32x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad64x32x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad64x32x4d vpx_sad64x32x4d_neon + +unsigned int vpx_sad64x64_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad64x64_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad64x64 vpx_sad64x64_neon + +unsigned int vpx_sad64x64_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad64x64_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad64x64_avg vpx_sad64x64_avg_neon + +void vpx_sad64x64x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad64x64x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad64x64x4d vpx_sad64x64x4d_neon + +unsigned int vpx_sad8x16_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad8x16_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad8x16 vpx_sad8x16_neon + +unsigned int vpx_sad8x16_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad8x16_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad8x16_avg vpx_sad8x16_avg_neon + +void vpx_sad8x16x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x16x3 vpx_sad8x16x3_c + +void vpx_sad8x16x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad8x16x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x16x4d vpx_sad8x16x4d_neon + +void vpx_sad8x16x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x16x8 vpx_sad8x16x8_c + +unsigned int vpx_sad8x4_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad8x4_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad8x4 vpx_sad8x4_neon + +unsigned int vpx_sad8x4_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad8x4_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad8x4_avg vpx_sad8x4_avg_neon + +void vpx_sad8x4x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad8x4x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x4x4d vpx_sad8x4x4d_neon + +unsigned int vpx_sad8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +unsigned int vpx_sad8x8_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride); +#define vpx_sad8x8 vpx_sad8x8_neon + +unsigned int vpx_sad8x8_avg_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +unsigned int vpx_sad8x8_avg_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + const uint8_t* second_pred); +#define vpx_sad8x8_avg vpx_sad8x8_avg_neon + +void vpx_sad8x8x3_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x8x3 vpx_sad8x8x3_c + +void vpx_sad8x8x4d_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +void vpx_sad8x8x4d_neon(const uint8_t* src_ptr, + int src_stride, + const uint8_t* const ref_ptr[], + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x8x4d vpx_sad8x8x4d_neon + +void vpx_sad8x8x8_c(const uint8_t* src_ptr, + int src_stride, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sad_array); +#define vpx_sad8x8x8 vpx_sad8x8x8_c + +int vpx_satd_c(const tran_low_t* coeff, int length); +int vpx_satd_neon(const tran_low_t* coeff, int length); +#define vpx_satd vpx_satd_neon + +void vpx_scaled_2d_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +void vpx_scaled_2d_neon(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_2d vpx_scaled_2d_neon + +void vpx_scaled_avg_2d_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c + +void vpx_scaled_avg_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c + +void vpx_scaled_avg_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c + +void vpx_scaled_horiz_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_horiz vpx_scaled_horiz_c + +void vpx_scaled_vert_c(const uint8_t* src, + ptrdiff_t src_stride, + uint8_t* dst, + ptrdiff_t dst_stride, + const InterpKernel* filter, + int x0_q4, + int x_step_q4, + int y0_q4, + int y_step_q4, + int w, + int h); +#define vpx_scaled_vert vpx_scaled_vert_c + +uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance16x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_neon + +uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance16x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_neon + +uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance16x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_neon + +uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance32x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_neon + +uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance32x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_neon + +uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance32x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_neon + +uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance4x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_neon + +uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance4x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_neon + +uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance64x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_neon + +uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance64x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_neon + +uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance8x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_neon + +uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance8x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_neon + +uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +uint32_t vpx_sub_pixel_avg_variance8x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse, + const uint8_t* second_pred); +#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_neon + +uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance16x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_neon + +uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance16x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_neon + +uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance16x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_neon + +uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance32x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_neon + +uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance32x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_neon + +uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance32x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_neon + +uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance4x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_neon + +uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance4x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_neon + +uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance64x32_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_neon + +uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance64x64_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_neon + +uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance8x16_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_neon + +uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance8x4_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_neon + +uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +uint32_t vpx_sub_pixel_variance8x8_neon(const uint8_t* src_ptr, + int source_stride, + int xoffset, + int yoffset, + const uint8_t* ref_ptr, + int ref_stride, + uint32_t* sse); +#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_neon + +void vpx_subtract_block_c(int rows, + int cols, + int16_t* diff_ptr, + ptrdiff_t diff_stride, + const uint8_t* src_ptr, + ptrdiff_t src_stride, + const uint8_t* pred_ptr, + ptrdiff_t pred_stride); +void vpx_subtract_block_neon(int rows, + int cols, + int16_t* diff_ptr, + ptrdiff_t diff_stride, + const uint8_t* src_ptr, + ptrdiff_t src_stride, + const uint8_t* pred_ptr, + ptrdiff_t pred_stride); +#define vpx_subtract_block vpx_subtract_block_neon + +uint64_t vpx_sum_squares_2d_i16_c(const int16_t* src, int stride, int size); +uint64_t vpx_sum_squares_2d_i16_neon(const int16_t* src, int stride, int size); +#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_neon + +void vpx_tm_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_neon + +void vpx_tm_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_neon + +void vpx_tm_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_neon + +void vpx_tm_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_tm_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_neon + +void vpx_v_predictor_16x16_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_16x16_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_neon + +void vpx_v_predictor_32x32_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_32x32_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_neon + +void vpx_v_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_4x4_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_neon + +void vpx_v_predictor_8x8_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +void vpx_v_predictor_8x8_neon(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_neon + +unsigned int vpx_variance16x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance16x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance16x16 vpx_variance16x16_neon + +unsigned int vpx_variance16x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance16x32_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance16x32 vpx_variance16x32_neon + +unsigned int vpx_variance16x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance16x8_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance16x8 vpx_variance16x8_neon + +unsigned int vpx_variance32x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance32x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance32x16 vpx_variance32x16_neon + +unsigned int vpx_variance32x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance32x32_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance32x32 vpx_variance32x32_neon + +unsigned int vpx_variance32x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance32x64_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance32x64 vpx_variance32x64_neon + +unsigned int vpx_variance4x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance4x4_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance4x4 vpx_variance4x4_neon + +unsigned int vpx_variance4x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance4x8_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance4x8 vpx_variance4x8_neon + +unsigned int vpx_variance64x32_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance64x32_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance64x32 vpx_variance64x32_neon + +unsigned int vpx_variance64x64_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance64x64_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance64x64 vpx_variance64x64_neon + +unsigned int vpx_variance8x16_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance8x16_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance8x16 vpx_variance8x16_neon + +unsigned int vpx_variance8x4_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance8x4_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance8x4 vpx_variance8x4_neon + +unsigned int vpx_variance8x8_c(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +unsigned int vpx_variance8x8_neon(const uint8_t* src_ptr, + int source_stride, + const uint8_t* ref_ptr, + int ref_stride, + unsigned int* sse); +#define vpx_variance8x8 vpx_variance8x8_neon + +void vpx_ve_predictor_4x4_c(uint8_t* dst, + ptrdiff_t y_stride, + const uint8_t* above, + const uint8_t* left); +#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c + +int vpx_vector_var_c(const int16_t* ref, const int16_t* src, const int bwl); +int vpx_vector_var_neon(const int16_t* ref, const int16_t* src, const int bwl); +#define vpx_vector_var vpx_vector_var_neon + +void vpx_dsp_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_scale_rtcd.h b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_scale_rtcd.h new file mode 100644 index 00000000000..555013e0a75 --- /dev/null +++ b/chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_scale_rtcd.h @@ -0,0 +1,101 @@ +// This file is generated. Do not edit. +#ifndef VPX_SCALE_RTCD_H_ +#define VPX_SCALE_RTCD_H_ + +#ifdef RTCD_C +#define RTCD_EXTERN +#else +#define RTCD_EXTERN extern +#endif + +struct yv12_buffer_config; + +#ifdef __cplusplus +extern "C" { +#endif + +void vp8_horizontal_line_2_1_scale_c(const unsigned char* source, + unsigned int source_width, + unsigned char* dest, + unsigned int dest_width); +#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c + +void vp8_horizontal_line_5_3_scale_c(const unsigned char* source, + unsigned int source_width, + unsigned char* dest, + unsigned int dest_width); +#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c + +void vp8_horizontal_line_5_4_scale_c(const unsigned char* source, + unsigned int source_width, + unsigned char* dest, + unsigned int dest_width); +#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c + +void vp8_vertical_band_2_1_scale_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c + +void vp8_vertical_band_2_1_scale_i_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c + +void vp8_vertical_band_5_3_scale_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c + +void vp8_vertical_band_5_4_scale_c(unsigned char* source, + unsigned int src_pitch, + unsigned char* dest, + unsigned int dest_pitch, + unsigned int dest_width); +#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c + +void vp8_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc, + struct yv12_buffer_config* dst_ybc); +#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c + +void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config* ybf); +#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c + +void vpx_extend_frame_borders_c(struct yv12_buffer_config* ybf); +#define vpx_extend_frame_borders vpx_extend_frame_borders_c + +void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config* ybf); +#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c + +void vpx_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc, + struct yv12_buffer_config* dst_ybc); +#define vpx_yv12_copy_frame vpx_yv12_copy_frame_c + +void vpx_yv12_copy_y_c(const struct yv12_buffer_config* src_ybc, + struct yv12_buffer_config* dst_ybc); +#define vpx_yv12_copy_y vpx_yv12_copy_y_c + +void vpx_scale_rtcd(void); + +#include "vpx_config.h" + +#ifdef RTCD_C +#include "vpx_ports/arm.h" +static void setup_rtcd_internal(void) { + int flags = arm_cpu_caps(); + + (void)flags; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.asm index d24146afdb2..9bae4f7ce9e 100644 --- a/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.asm @@ -85,6 +85,8 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 +.equ CONFIG_ML_VAR_PARTITION , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits diff --git a/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.h index df5f6f87029..9578b563a5d 100644 --- a/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/generic/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.asm index 6aa13d720aa..57637ae08a6 100644 --- a/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.asm @@ -81,5 +81,7 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 +%define CONFIG_ML_VAR_PARTITION 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384 diff --git a/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.h index 7749f38f9be..a65ea2d53e2 100644 --- a/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/mips64el/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/mips64el/vpx_config.h index 98374b198c0..d79a46a9ea3 100644 --- a/chromium/third_party/libvpx/source/config/linux/mips64el/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/mips64el/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/mipsel/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/mipsel/vpx_config.h index 1a8a71b75f4..9910a7ff03b 100644 --- a/chromium/third_party/libvpx/source/config/linux/mipsel/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/mipsel/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.asm b/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.asm index ffaf2d94f9d..0f7956f63aa 100644 --- a/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.asm @@ -81,5 +81,7 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 +%define CONFIG_ML_VAR_PARTITION 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384 diff --git a/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.h b/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.h index c6e9e82ee32..260602b9784 100644 --- a/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/linux/x64/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.asm b/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.asm index 6aa13d720aa..57637ae08a6 100644 --- a/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.asm @@ -81,5 +81,7 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 +%define CONFIG_ML_VAR_PARTITION 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384 diff --git a/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.h b/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.h index 7749f38f9be..a65ea2d53e2 100644 --- a/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.asm b/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.asm index ffaf2d94f9d..0f7956f63aa 100644 --- a/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.asm @@ -81,5 +81,7 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 +%define CONFIG_ML_VAR_PARTITION 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384 diff --git a/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.h b/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.h index c6e9e82ee32..260602b9784 100644 --- a/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/mac/x64/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/nacl/vpx_config.h b/chromium/third_party/libvpx/source/config/nacl/vpx_config.h index df5f6f87029..9578b563a5d 100644 --- a/chromium/third_party/libvpx/source/config/nacl/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/nacl/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/vpx_version.h b/chromium/third_party/libvpx/source/config/vpx_version.h index 812b751bbdb..cdae165d3e8 100644 --- a/chromium/third_party/libvpx/source/config/vpx_version.h +++ b/chromium/third_party/libvpx/source/config/vpx_version.h @@ -2,7 +2,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 7 #define VERSION_PATCH 0 -#define VERSION_EXTRA "902-g753fd86e8" +#define VERSION_EXTRA "1132-ge188b5435" #define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) -#define VERSION_STRING_NOSP "v1.7.0-902-g753fd86e8" -#define VERSION_STRING " v1.7.0-902-g753fd86e8" +#define VERSION_STRING_NOSP "v1.7.0-1132-ge188b5435" +#define VERSION_STRING " v1.7.0-1132-ge188b5435" diff --git a/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.asm b/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.asm index 4e7f6863eb2..054b531a305 100644 --- a/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.asm @@ -81,5 +81,7 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 +%define CONFIG_ML_VAR_PARTITION 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384 diff --git a/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.h b/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.h index 2cf19145915..2444863db9f 100644 --- a/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/win/ia32/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/config/win/x64/vpx_config.asm b/chromium/third_party/libvpx/source/config/win/x64/vpx_config.asm index ef886a31f30..f992b5147dd 100644 --- a/chromium/third_party/libvpx/source/config/win/x64/vpx_config.asm +++ b/chromium/third_party/libvpx/source/config/win/x64/vpx_config.asm @@ -81,5 +81,7 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 +%define CONFIG_ML_VAR_PARTITION 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384 diff --git a/chromium/third_party/libvpx/source/config/win/x64/vpx_config.h b/chromium/third_party/libvpx/source/config/win/x64/vpx_config.h index 6d539498521..093f2546478 100644 --- a/chromium/third_party/libvpx/source/config/win/x64/vpx_config.h +++ b/chromium/third_party/libvpx/source/config/win/x64/vpx_config.h @@ -93,6 +93,8 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 +#define CONFIG_ML_VAR_PARTITION 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ diff --git a/chromium/third_party/libvpx/source/libvpx/args.h b/chromium/third_party/libvpx/source/libvpx/args.h index 54abe04607d..aae8ec06a53 100644 --- a/chromium/third_party/libvpx/source/libvpx/args.h +++ b/chromium/third_party/libvpx/source/libvpx/args.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef ARGS_H_ -#define ARGS_H_ +#ifndef VPX_ARGS_H_ +#define VPX_ARGS_H_ #include <stdio.h> #ifdef __cplusplus @@ -60,4 +60,4 @@ int arg_parse_enum_or_int(const struct arg *arg); } // extern "C" #endif -#endif // ARGS_H_ +#endif // VPX_ARGS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/configure b/chromium/third_party/libvpx/source/libvpx/configure index 6c0adc7f920..e864e57fb45 100755 --- a/chromium/third_party/libvpx/source/libvpx/configure +++ b/chromium/third_party/libvpx/source/libvpx/configure @@ -278,6 +278,8 @@ HAVE_LIST=" EXPERIMENT_LIST=" fp_mb_stats emulate_hardware + non_greedy_mv + ml_var_partition " CONFIG_LIST=" dependency_tracking @@ -634,6 +636,12 @@ process_toolchain() { # Avoid this warning for third_party C++ sources. Some reorganization # would be needed to apply this only to test/*.cc. check_cflags -Wshorten-64-to-32 && add_cflags_only -Wshorten-64-to-32 + + # Quiet gcc 6 vs 7 abi warnings: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 + if enabled arm; then + check_add_cxxflags -Wno-psabi + fi fi if enabled icc; then diff --git a/chromium/third_party/libvpx/source/libvpx/examples/svc_context.h b/chromium/third_party/libvpx/source/libvpx/examples/svc_context.h index 74b4d5b50f8..c5779ce8a9f 100644 --- a/chromium/third_party/libvpx/source/libvpx/examples/svc_context.h +++ b/chromium/third_party/libvpx/source/libvpx/examples/svc_context.h @@ -13,8 +13,8 @@ * spatial SVC frame */ -#ifndef VPX_SVC_CONTEXT_H_ -#define VPX_SVC_CONTEXT_H_ +#ifndef VPX_EXAMPLES_SVC_CONTEXT_H_ +#define VPX_EXAMPLES_SVC_CONTEXT_H_ #include "vpx/vp8cx.h" #include "vpx/vpx_encoder.h" @@ -109,4 +109,4 @@ void vpx_svc_dump_statistics(SvcContext *svc_ctx); } // extern "C" #endif -#endif // VPX_SVC_CONTEXT_H_ +#endif // VPX_EXAMPLES_SVC_CONTEXT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/examples/vp9_spatial_svc_encoder.c b/chromium/third_party/libvpx/source/libvpx/examples/vp9_spatial_svc_encoder.c index 8e3f17e34e4..50d9106ac59 100644 --- a/chromium/third_party/libvpx/source/libvpx/examples/vp9_spatial_svc_encoder.c +++ b/chromium/third_party/libvpx/source/libvpx/examples/vp9_spatial_svc_encoder.c @@ -925,6 +925,9 @@ int main(int argc, const char **argv) { svc_ctx.spatial_layers, frame_cnt == 0, &ref_frame_config); } + ref_frame_config.duration[0] = frame_duration * 1; + ref_frame_config.duration[1] = frame_duration * 1; + vpx_codec_control(&codec, VP9E_SET_SVC_REF_FRAME_CONFIG, &ref_frame_config); // Keep track of input frames, to account for frame drops in rate control @@ -976,34 +979,31 @@ int main(int argc, const char **argv) { #if OUTPUT_RC_STATS // TODO(marpan): Put this (to line728) in separate function. if (svc_ctx.output_rc_stat) { + int num_layers_encoded = 0; vpx_codec_control(&codec, VP9E_GET_SVC_LAYER_ID, &layer_id); parse_superframe_index(cx_pkt->data.frame.buf, cx_pkt->data.frame.sz, sizes_parsed, &count); if (enc_cfg.ss_number_layers == 1) sizes[0] = cx_pkt->data.frame.sz; - if (svc_ctx.temporal_layering_mode != - VP9E_TEMPORAL_LAYERING_MODE_BYPASS) { - int num_layers_encoded = 0; - for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { - sizes[sl] = 0; - if (cx_pkt->data.frame.spatial_layer_encoded[sl]) { - sizes[sl] = sizes_parsed[num_layers_encoded]; - num_layers_encoded++; - } + for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { + sizes[sl] = 0; + if (cx_pkt->data.frame.spatial_layer_encoded[sl]) { + sizes[sl] = sizes_parsed[num_layers_encoded]; + num_layers_encoded++; } - for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { - unsigned int sl2; - uint64_t tot_size = 0; - for (sl2 = 0; sl2 <= sl; ++sl2) { - if (cx_pkt->data.frame.spatial_layer_encoded[sl2]) - tot_size += sizes[sl2]; - } - if (tot_size > 0) - vpx_video_writer_write_frame( - outfile[sl], cx_pkt->data.frame.buf, (size_t)(tot_size), - cx_pkt->data.frame.pts); + } + for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { + unsigned int sl2; + uint64_t tot_size = 0; + for (sl2 = 0; sl2 <= sl; ++sl2) { + if (cx_pkt->data.frame.spatial_layer_encoded[sl2]) + tot_size += sizes[sl2]; } + if (tot_size > 0) + vpx_video_writer_write_frame( + outfile[sl], cx_pkt->data.frame.buf, (size_t)(tot_size), + cx_pkt->data.frame.pts); } for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { if (cx_pkt->data.frame.spatial_layer_encoded[sl]) { @@ -1089,15 +1089,6 @@ int main(int argc, const char **argv) { } } - // Compensate for the extra frame count for the bypass mode. - if (svc_ctx.temporal_layering_mode == VP9E_TEMPORAL_LAYERING_MODE_BYPASS) { - for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { - const int layer = - sl * enc_cfg.ts_number_layers + layer_id.temporal_layer_id; - --rc.layer_input_frames[layer]; - } - } - printf("Processed %d frames\n", frame_cnt); fclose(infile); #if OUTPUT_RC_STATS diff --git a/chromium/third_party/libvpx/source/libvpx/ivfdec.h b/chromium/third_party/libvpx/source/libvpx/ivfdec.h index af725572b48..847cd79f3fe 100644 --- a/chromium/third_party/libvpx/source/libvpx/ivfdec.h +++ b/chromium/third_party/libvpx/source/libvpx/ivfdec.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef IVFDEC_H_ -#define IVFDEC_H_ +#ifndef VPX_IVFDEC_H_ +#define VPX_IVFDEC_H_ #include "./tools_common.h" @@ -25,4 +25,4 @@ int ivf_read_frame(FILE *infile, uint8_t **buffer, size_t *bytes_read, } /* extern "C" */ #endif -#endif // IVFDEC_H_ +#endif // VPX_IVFDEC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/ivfenc.h b/chromium/third_party/libvpx/source/libvpx/ivfenc.h index ebdce47be8f..483f2d2c591 100644 --- a/chromium/third_party/libvpx/source/libvpx/ivfenc.h +++ b/chromium/third_party/libvpx/source/libvpx/ivfenc.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef IVFENC_H_ -#define IVFENC_H_ +#ifndef VPX_IVFENC_H_ +#define VPX_IVFENC_H_ #include "./tools_common.h" @@ -30,4 +30,4 @@ void ivf_write_frame_size(FILE *outfile, size_t frame_size); } /* extern "C" */ #endif -#endif // IVFENC_H_ +#endif // VPX_IVFENC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/md5_utils.h b/chromium/third_party/libvpx/source/libvpx/md5_utils.h index bd4991b3ad9..e0d5a2d1fbd 100644 --- a/chromium/third_party/libvpx/source/libvpx/md5_utils.h +++ b/chromium/third_party/libvpx/source/libvpx/md5_utils.h @@ -20,8 +20,8 @@ * Still in the public domain. */ -#ifndef MD5_UTILS_H_ -#define MD5_UTILS_H_ +#ifndef VPX_MD5_UTILS_H_ +#define VPX_MD5_UTILS_H_ #ifdef __cplusplus extern "C" { @@ -46,4 +46,4 @@ void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]); } // extern "C" #endif -#endif // MD5_UTILS_H_ +#endif // VPX_MD5_UTILS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/rate_hist.h b/chromium/third_party/libvpx/source/libvpx/rate_hist.h index 00a1676a617..d6a4c685195 100644 --- a/chromium/third_party/libvpx/source/libvpx/rate_hist.h +++ b/chromium/third_party/libvpx/source/libvpx/rate_hist.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef RATE_HIST_H_ -#define RATE_HIST_H_ +#ifndef VPX_RATE_HIST_H_ +#define VPX_RATE_HIST_H_ #include "vpx/vpx_encoder.h" @@ -37,4 +37,4 @@ void show_rate_histogram(struct rate_hist *hist, const vpx_codec_enc_cfg_t *cfg, } // extern "C" #endif -#endif // RATE_HIST_H_ +#endif // VPX_RATE_HIST_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/third_party/googletest/README.libvpx b/chromium/third_party/libvpx/source/libvpx/third_party/googletest/README.libvpx index da6f7780415..f4ca22bbadb 100644 --- a/chromium/third_party/libvpx/source/libvpx/third_party/googletest/README.libvpx +++ b/chromium/third_party/libvpx/source/libvpx/third_party/googletest/README.libvpx @@ -20,3 +20,7 @@ Local Modifications: LICENSE README.md src + +- Make WithParamInterface<T>::GetParam static in order to avoid + initialization issues + https://github.com/google/googletest/pull/1830 diff --git a/chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/include/gtest/gtest.h b/chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/include/gtest/gtest.h index 26e787d99eb..456e4a84961 100644 --- a/chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/include/gtest/gtest.h +++ b/chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/include/gtest/gtest.h @@ -1775,11 +1775,8 @@ class WithParamInterface { virtual ~WithParamInterface() {} // The current parameter value. Is also available in the test fixture's - // constructor. This member function is non-static, even though it only - // references static data, to reduce the opportunity for incorrect uses - // like writing 'WithParamInterface<bool>::GetParam()' for a test that - // uses a fixture whose parameter type is int. - const ParamType& GetParam() const { + // constructor. + static const ParamType& GetParam() { GTEST_CHECK_(parameter_ != NULL) << "GetParam() can only be called inside a value-parameterized test " << "-- did you intend to write TEST_P instead of TEST_F?"; diff --git a/chromium/third_party/libvpx/source/libvpx/tools/non_greedy_mv/non_greedy_mv.py b/chromium/third_party/libvpx/source/libvpx/tools/non_greedy_mv/non_greedy_mv.py new file mode 100644 index 00000000000..a63af246d7b --- /dev/null +++ b/chromium/third_party/libvpx/source/libvpx/tools/non_greedy_mv/non_greedy_mv.py @@ -0,0 +1,170 @@ +import sys +import matplotlib.pyplot as plt +from matplotlib.collections import LineCollection +from matplotlib import colors as mcolors +import numpy as np +import math + + +def draw_mv_ls(axis, mv_ls, mode=0): + colors = np.array([(1., 0., 0., 1.)]) + segs = np.array([ + np.array([[ptr[0], ptr[1]], [ptr[0] + ptr[2], ptr[1] + ptr[3]]]) + for ptr in mv_ls + ]) + line_segments = LineCollection( + segs, linewidths=(1.,), colors=colors, linestyle='solid') + axis.add_collection(line_segments) + if mode == 0: + axis.scatter(mv_ls[:, 0], mv_ls[:, 1], s=2, c='b') + else: + axis.scatter( + mv_ls[:, 0] + mv_ls[:, 2], mv_ls[:, 1] + mv_ls[:, 3], s=2, c='b') + + +def draw_pred_block_ls(axis, mv_ls, bs, mode=0): + colors = np.array([(0., 0., 0., 1.)]) + segs = [] + for ptr in mv_ls: + if mode == 0: + x = ptr[0] + y = ptr[1] + else: + x = ptr[0] + ptr[2] + y = ptr[1] + ptr[3] + x_ls = [x, x + bs, x + bs, x, x] + y_ls = [y, y, y + bs, y + bs, y] + + segs.append(np.column_stack([x_ls, y_ls])) + line_segments = LineCollection( + segs, linewidths=(.5,), colors=colors, linestyle='solid') + axis.add_collection(line_segments) + + +def read_frame(fp, no_swap=0): + plane = [None, None, None] + for i in range(3): + line = fp.readline() + word_ls = line.split() + word_ls = [int(item) for item in word_ls] + rows = word_ls[0] + cols = word_ls[1] + + line = fp.readline() + word_ls = line.split() + word_ls = [int(item) for item in word_ls] + + plane[i] = np.array(word_ls).reshape(rows, cols) + if i > 0: + plane[i] = plane[i].repeat(2, axis=0).repeat(2, axis=1) + plane = np.array(plane) + if no_swap == 0: + plane = np.swapaxes(np.swapaxes(plane, 0, 1), 1, 2) + return plane + + +def yuv_to_rgb(yuv): + #mat = np.array([ + # [1.164, 0 , 1.596 ], + # [1.164, -0.391, -0.813], + # [1.164, 2.018 , 0 ] ] + # ) + #c = np.array([[ -16 , -16 , -16 ], + # [ 0 , -128, -128 ], + # [ -128, -128, 0 ]]) + + mat = np.array([[1, 0, 1.4075], [1, -0.3445, -0.7169], [1, 1.7790, 0]]) + c = np.array([[0, 0, 0], [0, -128, -128], [-128, -128, 0]]) + mat_c = np.dot(mat, c) + v = np.array([mat_c[0, 0], mat_c[1, 1], mat_c[2, 2]]) + mat = mat.transpose() + rgb = np.dot(yuv, mat) + v + rgb = rgb.astype(int) + rgb = rgb.clip(0, 255) + return rgb / 255. + + +def read_feature_score(fp, mv_rows, mv_cols): + line = fp.readline() + word_ls = line.split() + feature_score = np.array([math.log(float(v) + 1, 2) for v in word_ls]) + feature_score = feature_score.reshape(mv_rows, mv_cols) + return feature_score + + +def read_frame_dpl_stats(fp): + line = fp.readline() + word_ls = line.split() + frame_idx = int(word_ls[1]) + mi_rows = int(word_ls[3]) + mi_cols = int(word_ls[5]) + bs = int(word_ls[7]) + mi_size = bs / 8 + mv_ls = [] + mv_rows = int((math.ceil(mi_rows * 1. / mi_size))) + mv_cols = int((math.ceil(mi_cols * 1. / mi_size))) + for i in range(mv_rows * mv_cols): + line = fp.readline() + word_ls = line.split() + row = int(word_ls[0]) * 8. + col = int(word_ls[1]) * 8. + mv_row = int(word_ls[2]) / 8. + mv_col = int(word_ls[3]) / 8. + mv_ls.append([col, row, mv_col, mv_row]) + mv_ls = np.array(mv_ls) + img = yuv_to_rgb(read_frame(fp)) + feature_score = read_feature_score(fp, mv_rows, mv_cols) + ref = None + line = fp.readline() + word_ls = line.split() + if int(word_ls[1]): + ref = yuv_to_rgb(read_frame(fp)) + return frame_idx, mv_ls, img, ref, bs, feature_score + + +def read_dpl_stats_file(filename, frame_num=0): + fp = open(filename) + line = fp.readline() + width = 0 + height = 0 + data_ls = [] + while (line): + if line[0] == '=': + data_ls.append(read_frame_dpl_stats(fp)) + line = fp.readline() + if frame_num > 0 and len(data_ls) == frame_num: + break + return data_ls + + +if __name__ == '__main__': + filename = sys.argv[1] + data_ls = read_dpl_stats_file(filename, frame_num=5) + for frame_idx, mv_ls, img, ref, bs, feature_score in data_ls: + fig, axes = plt.subplots(2, 2) + + axes[0][0].imshow(img) + draw_mv_ls(axes[0][0], mv_ls) + draw_pred_block_ls(axes[0][0], mv_ls, bs, mode=0) + #axes[0].grid(color='k', linestyle='-') + axes[0][0].set_ylim(img.shape[0], 0) + axes[0][0].set_xlim(0, img.shape[1]) + + if ref is not None: + axes[0][1].imshow(ref) + draw_mv_ls(axes[0][1], mv_ls, mode=1) + draw_pred_block_ls(axes[0][1], mv_ls, bs, mode=1) + #axes[1].grid(color='k', linestyle='-') + axes[0][1].set_ylim(ref.shape[0], 0) + axes[0][1].set_xlim(0, ref.shape[1]) + + axes[1][0].imshow(feature_score) + feature_score_arr = feature_score.flatten() + feature_score_max = feature_score_arr.max() + feature_score_min = feature_score_arr.min() + step = (feature_score_max - feature_score_min) / 20. + feature_score_bins = np.arange(feature_score_min, feature_score_max, step) + axes[1][1].hist(feature_score_arr, bins=feature_score_bins) + + plt.show() + print frame_idx, len(mv_ls) diff --git a/chromium/third_party/libvpx/source/libvpx/tools/set_analyzer_env.sh b/chromium/third_party/libvpx/source/libvpx/tools/set_analyzer_env.sh index 17869ee8904..814a0e7fd0d 100644 --- a/chromium/third_party/libvpx/source/libvpx/tools/set_analyzer_env.sh +++ b/chromium/third_party/libvpx/source/libvpx/tools/set_analyzer_env.sh @@ -13,6 +13,7 @@ sanitizer="${1}" case "${sanitizer}" in address) ;; + cfi) ;; integer) ;; memory) ;; thread) ;; @@ -20,7 +21,7 @@ case "${sanitizer}" in clear) echo "Clearing environment:" set -x - unset CC CXX LD + unset CC CXX LD AR unset CFLAGS CXXFLAGS LDFLAGS unset ASAN_OPTIONS MSAN_OPTIONS TSAN_OPTIONS UBSAN_OPTIONS set +x @@ -74,6 +75,13 @@ cflags="${cflags} -fno-omit-frame-pointer" # Exact backtraces. cflags="${cflags} -fno-optimize-sibling-calls" +if [ "${sanitizer}" = "cfi" ]; then + # https://clang.llvm.org/docs/ControlFlowIntegrity.html + cflags="${cflags} -flto -fvisibility=hidden" + ldflags="${ldflags} -flto -fuse-ld=gold" + export AR="llvm-ar" +fi + set -x export CC="clang" export CXX="clang++" @@ -100,6 +108,9 @@ case "${sanitizer}" in export ASAN_OPTIONS="${sanitizer_options}" set +x ;; + cfi) + # No environment settings + ;; memory) set -x export MSAN_OPTIONS="${sanitizer_options}" diff --git a/chromium/third_party/libvpx/source/libvpx/tools/tiny_ssim.c b/chromium/third_party/libvpx/source/libvpx/tools/tiny_ssim.c index 6c1d784d3b7..6f4b6d7350a 100644 --- a/chromium/third_party/libvpx/source/libvpx/tools/tiny_ssim.c +++ b/chromium/third_party/libvpx/source/libvpx/tools/tiny_ssim.c @@ -121,11 +121,11 @@ static int open_input_file(const char *file_name, input_file_t *input, int w, input->w = w; input->h = h; // handle odd frame sizes - input->frame_size = w * h + ((w + 1) / 2 * (h + 1) / 2) * 2; + input->frame_size = w * h + ((w + 1) / 2) * ((h + 1) / 2) * 2; if (bit_depth > 8) { input->frame_size *= 2; - input->buf = malloc(input->frame_size); } + input->buf = malloc(input->frame_size); break; } } @@ -156,12 +156,12 @@ static size_t read_input_file(input_file_t *in, unsigned char **y, r1 = fread(in->buf, in->frame_size, 1, in->file); *y = in->buf; *u = in->buf + in->w * in->h; - *v = *u + (1 + in->w) / 2 * (1 + in->h) / 2; + *v = *u + ((1 + in->w) / 2) * ((1 + in->h) / 2); } else { r1 = fread(in->buf, in->frame_size, 1, in->file); *y = in->buf; *u = in->buf + (in->w * in->h) * 2; - *v = *u + 2 * ((1 + in->w) / 2 * (1 + in->h) / 2); + *v = *u + 2 * ((1 + in->w) / 2) * ((1 + in->h) / 2); } break; } @@ -605,7 +605,7 @@ int main(int argc, char *argv[]) { } if (open_input_file(argv[1], &in[0], w, h, bit_depth) < 0) { - fprintf(stderr, "File %s can't be opened or parsed!\n", argv[2]); + fprintf(stderr, "File %s can't be opened or parsed!\n", argv[1]); goto clean_up; } @@ -617,7 +617,7 @@ int main(int argc, char *argv[]) { } if (bit_depth == 10) peak = 1023.0; - if (bit_depth == 12) peak = 4095; + if (bit_depth == 12) peak = 4095.0; if (open_input_file(argv[2], &in[1], w, h, bit_depth) < 0) { fprintf(stderr, "File %s can't be opened or parsed!\n", argv[2]); diff --git a/chromium/third_party/libvpx/source/libvpx/tools_common.h b/chromium/third_party/libvpx/source/libvpx/tools_common.h index e41de3195f5..41253729c6c 100644 --- a/chromium/third_party/libvpx/source/libvpx/tools_common.h +++ b/chromium/third_party/libvpx/source/libvpx/tools_common.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef TOOLS_COMMON_H_ -#define TOOLS_COMMON_H_ +#ifndef VPX_TOOLS_COMMON_H_ +#define VPX_TOOLS_COMMON_H_ #include <stdio.h> @@ -163,4 +163,4 @@ void vpx_img_truncate_16_to_8(vpx_image_t *dst, vpx_image_t *src); } /* extern "C" */ #endif -#endif // TOOLS_COMMON_H_ +#endif // VPX_TOOLS_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/video_common.h b/chromium/third_party/libvpx/source/libvpx/video_common.h index 44b27a83901..77eb9fac0cd 100644 --- a/chromium/third_party/libvpx/source/libvpx/video_common.h +++ b/chromium/third_party/libvpx/source/libvpx/video_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VIDEO_COMMON_H_ -#define VIDEO_COMMON_H_ +#ifndef VPX_VIDEO_COMMON_H_ +#define VPX_VIDEO_COMMON_H_ #include "./tools_common.h" @@ -20,4 +20,4 @@ typedef struct { struct VpxRational time_base; } VpxVideoInfo; -#endif // VIDEO_COMMON_H_ +#endif // VPX_VIDEO_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/video_reader.h b/chromium/third_party/libvpx/source/libvpx/video_reader.h index 73c25b00a7d..1f5c8088bb8 100644 --- a/chromium/third_party/libvpx/source/libvpx/video_reader.h +++ b/chromium/third_party/libvpx/source/libvpx/video_reader.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VIDEO_READER_H_ -#define VIDEO_READER_H_ +#ifndef VPX_VIDEO_READER_H_ +#define VPX_VIDEO_READER_H_ #include "./video_common.h" @@ -48,4 +48,4 @@ const VpxVideoInfo *vpx_video_reader_get_info(VpxVideoReader *reader); } // extern "C" #endif -#endif // VIDEO_READER_H_ +#endif // VPX_VIDEO_READER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/video_writer.h b/chromium/third_party/libvpx/source/libvpx/video_writer.h index a769811c440..b4d242b920f 100644 --- a/chromium/third_party/libvpx/source/libvpx/video_writer.h +++ b/chromium/third_party/libvpx/source/libvpx/video_writer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VIDEO_WRITER_H_ -#define VIDEO_WRITER_H_ +#ifndef VPX_VIDEO_WRITER_H_ +#define VPX_VIDEO_WRITER_H_ #include "./video_common.h" @@ -41,4 +41,4 @@ int vpx_video_writer_write_frame(VpxVideoWriter *writer, const uint8_t *buffer, } // extern "C" #endif -#endif // VIDEO_WRITER_H_ +#endif // VPX_VIDEO_WRITER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/alloccommon.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/alloccommon.h index 5d0840c670c..517d73085da 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/alloccommon.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/alloccommon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ALLOCCOMMON_H_ -#define VP8_COMMON_ALLOCCOMMON_H_ +#ifndef VPX_VP8_COMMON_ALLOCCOMMON_H_ +#define VPX_VP8_COMMON_ALLOCCOMMON_H_ #include "onyxc_int.h" @@ -27,4 +27,4 @@ void vp8_setup_version(VP8_COMMON *oci); } // extern "C" #endif -#endif // VP8_COMMON_ALLOCCOMMON_H_ +#endif // VPX_VP8_COMMON_ALLOCCOMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/blockd.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/blockd.h index ddcc307eb8d..22af8980b35 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/blockd.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/blockd.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_BLOCKD_H_ -#define VP8_COMMON_BLOCKD_H_ +#ifndef VPX_VP8_COMMON_BLOCKD_H_ +#define VPX_VP8_COMMON_BLOCKD_H_ void vpx_log(const char *format, ...); @@ -304,4 +304,4 @@ extern void vp8_setup_block_dptrs(MACROBLOCKD *x); } // extern "C" #endif -#endif // VP8_COMMON_BLOCKD_H_ +#endif // VPX_VP8_COMMON_BLOCKD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h index 9b01bba312d..b342096b552 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_COEFUPDATEPROBS_H_ -#define VP8_COMMON_COEFUPDATEPROBS_H_ +#ifndef VPX_VP8_COMMON_COEFUPDATEPROBS_H_ +#define VPX_VP8_COMMON_COEFUPDATEPROBS_H_ #ifdef __cplusplus extern "C" { @@ -194,4 +194,4 @@ const vp8_prob vp8_coef_update_probs } // extern "C" #endif -#endif // VP8_COMMON_COEFUPDATEPROBS_H_ +#endif // VPX_VP8_COMMON_COEFUPDATEPROBS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/common.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/common.h index bbfc4f39348..8593e822b7e 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_COMMON_H_ -#define VP8_COMMON_COMMON_H_ +#ifndef VPX_VP8_COMMON_COMMON_H_ +#define VPX_VP8_COMMON_COMMON_H_ #include <assert.h> @@ -45,4 +45,4 @@ extern "C" { } // extern "C" #endif -#endif // VP8_COMMON_COMMON_H_ +#endif // VPX_VP8_COMMON_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h index f3f54f6a254..b25e4a45a3c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_DEFAULT_COEF_PROBS_H_ -#define VP8_COMMON_DEFAULT_COEF_PROBS_H_ +#ifndef VPX_VP8_COMMON_DEFAULT_COEF_PROBS_H_ +#define VPX_VP8_COMMON_DEFAULT_COEF_PROBS_H_ #ifdef __cplusplus extern "C" { @@ -157,4 +157,4 @@ static const vp8_prob default_coef_probs } // extern "C" #endif -#endif // VP8_COMMON_DEFAULT_COEF_PROBS_H_ +#endif // VPX_VP8_COMMON_DEFAULT_COEF_PROBS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/entropy.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/entropy.h index d088560011b..fbdb7bcfca8 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/entropy.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/entropy.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ENTROPY_H_ -#define VP8_COMMON_ENTROPY_H_ +#ifndef VPX_VP8_COMMON_ENTROPY_H_ +#define VPX_VP8_COMMON_ENTROPY_H_ #include "treecoder.h" #include "blockd.h" @@ -105,4 +105,4 @@ void vp8_coef_tree_initialize(void); } // extern "C" #endif -#endif // VP8_COMMON_ENTROPY_H_ +#endif // VPX_VP8_COMMON_ENTROPY_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymode.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymode.h index b3fad19be0e..c772cece573 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymode.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymode.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ENTROPYMODE_H_ -#define VP8_COMMON_ENTROPYMODE_H_ +#ifndef VPX_VP8_COMMON_ENTROPYMODE_H_ +#define VPX_VP8_COMMON_ENTROPYMODE_H_ #include "onyxc_int.h" #include "treecoder.h" @@ -85,4 +85,4 @@ void vp8_kf_default_bmode_probs( } // extern "C" #endif -#endif // VP8_COMMON_ENTROPYMODE_H_ +#endif // VPX_VP8_COMMON_ENTROPYMODE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymv.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymv.h index 63730009033..40039f5b2c3 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/entropymv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ENTROPYMV_H_ -#define VP8_COMMON_ENTROPYMV_H_ +#ifndef VPX_VP8_COMMON_ENTROPYMV_H_ +#define VPX_VP8_COMMON_ENTROPYMV_H_ #include "treecoder.h" @@ -46,4 +46,4 @@ extern const MV_CONTEXT vp8_mv_update_probs[2], vp8_default_mv_context[2]; } // extern "C" #endif -#endif // VP8_COMMON_ENTROPYMV_H_ +#endif // VPX_VP8_COMMON_ENTROPYMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/extend.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/extend.h index 7da5ce31dac..586a38a4f37 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/extend.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/extend.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_EXTEND_H_ -#define VP8_COMMON_EXTEND_H_ +#ifndef VPX_VP8_COMMON_EXTEND_H_ +#define VPX_VP8_COMMON_EXTEND_H_ #include "vpx_scale/yv12config.h" @@ -29,4 +29,4 @@ void vp8_copy_and_extend_frame_with_rect(YV12_BUFFER_CONFIG *src, } // extern "C" #endif -#endif // VP8_COMMON_EXTEND_H_ +#endif // VPX_VP8_COMMON_EXTEND_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/filter.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/filter.h index f1d5ece4a5f..6acee22b21b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/filter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/filter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_FILTER_H_ -#define VP8_COMMON_FILTER_H_ +#ifndef VPX_VP8_COMMON_FILTER_H_ +#define VPX_VP8_COMMON_FILTER_H_ #include "vpx_ports/mem.h" @@ -28,4 +28,4 @@ extern DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters[8][6]); } // extern "C" #endif -#endif // VP8_COMMON_FILTER_H_ +#endif // VPX_VP8_COMMON_FILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/findnearmv.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/findnearmv.h index c1eaa269800..9bb6c2e9fb9 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/findnearmv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/findnearmv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_FINDNEARMV_H_ -#define VP8_COMMON_FINDNEARMV_H_ +#ifndef VPX_VP8_COMMON_FINDNEARMV_H_ +#define VPX_VP8_COMMON_FINDNEARMV_H_ #include "./vpx_config.h" #include "mv.h" @@ -148,4 +148,4 @@ static INLINE B_PREDICTION_MODE above_block_mode(const MODE_INFO *cur_mb, int b, } // extern "C" #endif -#endif // VP8_COMMON_FINDNEARMV_H_ +#endif // VPX_VP8_COMMON_FINDNEARMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/header.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/header.h index 1df01fc6fa5..e64e2419085 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/header.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/header.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_HEADER_H_ -#define VP8_COMMON_HEADER_H_ +#ifndef VPX_VP8_COMMON_HEADER_H_ +#define VPX_VP8_COMMON_HEADER_H_ #ifdef __cplusplus extern "C" { @@ -45,4 +45,4 @@ typedef struct { } // extern "C" #endif -#endif // VP8_COMMON_HEADER_H_ +#endif // VPX_VP8_COMMON_HEADER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/invtrans.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/invtrans.h index c7af32fb675..aed7bb0600b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/invtrans.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/invtrans.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_INVTRANS_H_ -#define VP8_COMMON_INVTRANS_H_ +#ifndef VPX_VP8_COMMON_INVTRANS_H_ +#define VPX_VP8_COMMON_INVTRANS_H_ #include "./vpx_config.h" #include "vp8_rtcd.h" @@ -54,4 +54,4 @@ static INLINE void vp8_inverse_transform_mby(MACROBLOCKD *xd) { } // extern "C" #endif -#endif // VP8_COMMON_INVTRANS_H_ +#endif // VPX_VP8_COMMON_INVTRANS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/loopfilter.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/loopfilter.h index 7484563e06a..0733046e5af 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/loopfilter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/loopfilter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_LOOPFILTER_H_ -#define VP8_COMMON_LOOPFILTER_H_ +#ifndef VPX_VP8_COMMON_LOOPFILTER_H_ +#define VPX_VP8_COMMON_LOOPFILTER_H_ #include "vpx_ports/mem.h" #include "vpx_config.h" @@ -100,4 +100,4 @@ void vp8_loop_filter_row_simple(struct VP8Common *cm, } // extern "C" #endif -#endif // VP8_COMMON_LOOPFILTER_H_ +#endif // VPX_VP8_COMMON_LOOPFILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/mips/msa/vp8_macros_msa.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/mips/msa/vp8_macros_msa.h index 6bec3adec39..14f83799ffd 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/mips/msa/vp8_macros_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/mips/msa/vp8_macros_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_MIPS_MSA_VP8_MACROS_MSA_H_ -#define VP8_COMMON_MIPS_MSA_VP8_MACROS_MSA_H_ +#ifndef VPX_VP8_COMMON_MIPS_MSA_VP8_MACROS_MSA_H_ +#define VPX_VP8_COMMON_MIPS_MSA_VP8_MACROS_MSA_H_ #include <msa.h> @@ -1757,4 +1757,4 @@ \ tmp1_m; \ }) -#endif /* VP8_COMMON_MIPS_MSA_VP8_MACROS_MSA_H_ */ +#endif // VPX_VP8_COMMON_MIPS_MSA_VP8_MACROS_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/modecont.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/modecont.h index b58c7dc2d3d..031f74f2ff6 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/modecont.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/modecont.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_MODECONT_H_ -#define VP8_COMMON_MODECONT_H_ +#ifndef VPX_VP8_COMMON_MODECONT_H_ +#define VPX_VP8_COMMON_MODECONT_H_ #ifdef __cplusplus extern "C" { @@ -21,4 +21,4 @@ extern const int vp8_mode_contexts[6][4]; } // extern "C" #endif -#endif // VP8_COMMON_MODECONT_H_ +#endif // VPX_VP8_COMMON_MODECONT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/mv.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/mv.h index b6d2147af87..4cde12f201a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/mv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/mv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_MV_H_ -#define VP8_COMMON_MV_H_ +#ifndef VPX_VP8_COMMON_MV_H_ +#define VPX_VP8_COMMON_MV_H_ #include "vpx/vpx_integer.h" #ifdef __cplusplus @@ -30,4 +30,4 @@ typedef union int_mv { } // extern "C" #endif -#endif // VP8_COMMON_MV_H_ +#endif // VPX_VP8_COMMON_MV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/onyx.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/onyx.h index 72fba2ec56b..ebdabc9b2d0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/onyx.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/onyx.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ONYX_H_ -#define VP8_COMMON_ONYX_H_ +#ifndef VPX_VP8_COMMON_ONYX_H_ +#define VPX_VP8_COMMON_ONYX_H_ #ifdef __cplusplus extern "C" { @@ -281,4 +281,4 @@ int vp8_get_quantizer(struct VP8_COMP *c); } #endif -#endif // VP8_COMMON_ONYX_H_ +#endif // VPX_VP8_COMMON_ONYX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h index 9a12c7fb67d..ef8d0076209 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ONYXC_INT_H_ -#define VP8_COMMON_ONYXC_INT_H_ +#ifndef VPX_VP8_COMMON_ONYXC_INT_H_ +#define VPX_VP8_COMMON_ONYXC_INT_H_ #include "vpx_config.h" #include "vp8_rtcd.h" @@ -174,4 +174,4 @@ typedef struct VP8Common { } // extern "C" #endif -#endif // VP8_COMMON_ONYXC_INT_H_ +#endif // VPX_VP8_COMMON_ONYXC_INT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxd.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxd.h index d3c1b0e972c..49f524bb34d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxd.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/onyxd.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_ONYXD_H_ -#define VP8_COMMON_ONYXD_H_ +#ifndef VPX_VP8_COMMON_ONYXD_H_ +#define VPX_VP8_COMMON_ONYXD_H_ /* Create/destroy static data structures. */ #ifdef __cplusplus @@ -60,4 +60,4 @@ int vp8dx_get_quantizer(const struct VP8D_COMP *c); } #endif -#endif // VP8_COMMON_ONYXD_H_ +#endif // VPX_VP8_COMMON_ONYXD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/postproc.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/postproc.h index 7be112b1635..218a68ea32d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/postproc.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/postproc.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_POSTPROC_H_ -#define VP8_COMMON_POSTPROC_H_ +#ifndef VPX_VP8_COMMON_POSTPROC_H_ +#define VPX_VP8_COMMON_POSTPROC_H_ #include "vpx_ports/mem.h" struct postproc_state { @@ -43,4 +43,4 @@ void vp8_multiframe_quality_enhance(struct VP8Common *cm); } // extern "C" #endif -#endif // VP8_COMMON_POSTPROC_H_ +#endif // VPX_VP8_COMMON_POSTPROC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/ppflags.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/ppflags.h index 96e3af6c9c1..bdf08734b96 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/ppflags.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/ppflags.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_PPFLAGS_H_ -#define VP8_COMMON_PPFLAGS_H_ +#ifndef VPX_VP8_COMMON_PPFLAGS_H_ +#define VPX_VP8_COMMON_PPFLAGS_H_ #ifdef __cplusplus extern "C" { @@ -36,4 +36,4 @@ typedef struct { } // extern "C" #endif -#endif // VP8_COMMON_PPFLAGS_H_ +#endif // VPX_VP8_COMMON_PPFLAGS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/quant_common.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/quant_common.h index ff4203df870..049840a2725 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/quant_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/quant_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_QUANT_COMMON_H_ -#define VP8_COMMON_QUANT_COMMON_H_ +#ifndef VPX_VP8_COMMON_QUANT_COMMON_H_ +#define VPX_VP8_COMMON_QUANT_COMMON_H_ #include "string.h" #include "blockd.h" @@ -30,4 +30,4 @@ extern int vp8_ac_uv_quant(int QIndex, int Delta); } // extern "C" #endif -#endif // VP8_COMMON_QUANT_COMMON_H_ +#endif // VPX_VP8_COMMON_QUANT_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/reconinter.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/reconinter.h index 4cdd4fee0fd..394badb44c0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/reconinter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/reconinter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_RECONINTER_H_ -#define VP8_COMMON_RECONINTER_H_ +#ifndef VPX_VP8_COMMON_RECONINTER_H_ +#define VPX_VP8_COMMON_RECONINTER_H_ #ifdef __cplusplus extern "C" { @@ -34,4 +34,4 @@ extern void vp8_build_inter4x4_predictors_mbuv(MACROBLOCKD *x); } // extern "C" #endif -#endif // VP8_COMMON_RECONINTER_H_ +#endif // VPX_VP8_COMMON_RECONINTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra.h index fd7c725f35d..029ac00a24b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_RECONINTRA_H_ -#define VP8_COMMON_RECONINTRA_H_ +#ifndef VPX_VP8_COMMON_RECONINTRA_H_ +#define VPX_VP8_COMMON_RECONINTRA_H_ #include "vp8/common/blockd.h" @@ -32,4 +32,4 @@ void vp8_init_intra_predictors(void); } // extern "C" #endif -#endif // VP8_COMMON_RECONINTRA_H_ +#endif // VPX_VP8_COMMON_RECONINTRA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h index e17fc58c012..9bcd993866b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_RECONINTRA4X4_H_ -#define VP8_COMMON_RECONINTRA4X4_H_ +#ifndef VPX_VP8_COMMON_RECONINTRA4X4_H_ +#define VPX_VP8_COMMON_RECONINTRA4X4_H_ #include "vp8/common/blockd.h" #ifdef __cplusplus @@ -42,4 +42,4 @@ void vp8_init_intra4x4_predictors_internal(void); } // extern "C" #endif -#endif // VP8_COMMON_RECONINTRA4X4_H_ +#endif // VPX_VP8_COMMON_RECONINTRA4X4_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h index f3ffa16607a..903a536aed8 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_SETUPINTRARECON_H_ -#define VP8_COMMON_SETUPINTRARECON_H_ +#ifndef VPX_VP8_COMMON_SETUPINTRARECON_H_ +#define VPX_VP8_COMMON_SETUPINTRARECON_H_ #include "./vpx_config.h" #include "vpx_scale/yv12config.h" @@ -37,4 +37,4 @@ static INLINE void setup_intra_recon_left(unsigned char *y_buffer, } // extern "C" #endif -#endif // VP8_COMMON_SETUPINTRARECON_H_ +#endif // VPX_VP8_COMMON_SETUPINTRARECON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h index 0ee9a52ceb0..e37c471f632 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_SWAPYV12BUFFER_H_ -#define VP8_COMMON_SWAPYV12BUFFER_H_ +#ifndef VPX_VP8_COMMON_SWAPYV12BUFFER_H_ +#define VPX_VP8_COMMON_SWAPYV12BUFFER_H_ #include "vpx_scale/yv12config.h" @@ -24,4 +24,4 @@ void vp8_swap_yv12_buffer(YV12_BUFFER_CONFIG *new_frame, } // extern "C" #endif -#endif // VP8_COMMON_SWAPYV12BUFFER_H_ +#endif // VPX_VP8_COMMON_SWAPYV12BUFFER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/systemdependent.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/systemdependent.h index 3d44e37cf24..83a5513aaef 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/systemdependent.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/systemdependent.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_SYSTEMDEPENDENT_H_ -#define VP8_COMMON_SYSTEMDEPENDENT_H_ +#ifndef VPX_VP8_COMMON_SYSTEMDEPENDENT_H_ +#define VPX_VP8_COMMON_SYSTEMDEPENDENT_H_ #include "vpx_config.h" @@ -24,4 +24,4 @@ void vp8_machine_specific_config(struct VP8Common *); } // extern "C" #endif -#endif // VP8_COMMON_SYSTEMDEPENDENT_H_ +#endif // VPX_VP8_COMMON_SYSTEMDEPENDENT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/threading.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/threading.h index b082bf109e4..58b90137269 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/threading.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/threading.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_THREADING_H_ -#define VP8_COMMON_THREADING_H_ +#ifndef VPX_VP8_COMMON_THREADING_H_ +#define VPX_VP8_COMMON_THREADING_H_ #include "./vpx_config.h" @@ -209,4 +209,4 @@ static INLINE void vp8_atomic_spin_wait( } // extern "C" #endif -#endif // VP8_COMMON_THREADING_H_ +#endif // VPX_VP8_COMMON_THREADING_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/treecoder.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/treecoder.h index d8503cf3f8f..00b1e7b24db 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/treecoder.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/treecoder.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_TREECODER_H_ -#define VP8_COMMON_TREECODER_H_ +#ifndef VPX_VP8_COMMON_TREECODER_H_ +#define VPX_VP8_COMMON_TREECODER_H_ #ifdef __cplusplus extern "C" { @@ -79,4 +79,4 @@ void vp8bc_tree_probs_from_distribution(int n, /* n = size of alphabet */ } // extern "C" #endif -#endif // VP8_COMMON_TREECODER_H_ +#endif // VPX_VP8_COMMON_TREECODER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h index 3696c08dc2d..3fc942e0509 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_VP8_ENTROPYMODEDATA_H_ -#define VP8_COMMON_VP8_ENTROPYMODEDATA_H_ +#ifndef VPX_VP8_COMMON_VP8_ENTROPYMODEDATA_H_ +#define VPX_VP8_COMMON_VP8_ENTROPYMODEDATA_H_ #ifdef __cplusplus extern "C" { @@ -169,4 +169,4 @@ const vp8_prob } // extern "C" #endif -#endif // VP8_COMMON_VP8_ENTROPYMODEDATA_H_ +#endif // VPX_VP8_COMMON_VP8_ENTROPYMODEDATA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h index 4d27f5eb2ea..ef0e4ae4fe7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_SKIN_DETECTION_H_ -#define VP8_COMMON_SKIN_DETECTION_H_ +#ifndef VPX_VP8_COMMON_VP8_SKIN_DETECTION_H_ +#define VPX_VP8_COMMON_VP8_SKIN_DETECTION_H_ #include "vp8/encoder/onyx_int.h" #include "vpx/vpx_integer.h" @@ -44,4 +44,4 @@ void vp8_compute_skin_map(struct VP8_COMP *const cpi, FILE *yuv_skinmap_file); } // extern "C" #endif -#endif // VP8_COMMON_SKIN_DETECTION_H_ +#endif // VPX_VP8_COMMON_VP8_SKIN_DETECTION_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/common/x86/filter_x86.h b/chromium/third_party/libvpx/source/libvpx/vp8/common/x86/filter_x86.h index d282841bee4..570ff866644 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/common/x86/filter_x86.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/common/x86/filter_x86.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_COMMON_X86_FILTER_X86_H_ -#define VP8_COMMON_X86_FILTER_X86_H_ +#ifndef VPX_VP8_COMMON_X86_FILTER_X86_H_ +#define VPX_VP8_COMMON_X86_FILTER_X86_H_ #include "vpx_ports/mem.h" @@ -30,4 +30,4 @@ extern DECLARE_ALIGNED(16, const short, vp8_bilinear_filters_x86_8[8][16]); } // extern "C" #endif -#endif // VP8_COMMON_X86_FILTER_X86_H_ +#endif // VPX_VP8_COMMON_X86_FILTER_X86_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h index 9c529f26636..e342d7c5cfe 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_DBOOLHUFF_H_ -#define VP8_DECODER_DBOOLHUFF_H_ +#ifndef VPX_VP8_DECODER_DBOOLHUFF_H_ +#define VPX_VP8_DECODER_DBOOLHUFF_H_ #include <stddef.h> #include <limits.h> @@ -127,4 +127,4 @@ static INLINE int vp8dx_bool_error(BOOL_DECODER *br) { } // extern "C" #endif -#endif // VP8_DECODER_DBOOLHUFF_H_ +#endif // VPX_VP8_DECODER_DBOOLHUFF_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c index 0d54a9442b9..82b72d21edc 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c @@ -756,6 +756,9 @@ static void setup_token_decoder(VP8D_COMP *pbi, ptrdiff_t ext_first_part_size = token_part_sizes - pbi->fragments.ptrs[0] + 3 * (num_token_partitions - 1); + if (fragment_size < (unsigned int)ext_first_part_size) + vpx_internal_error(&pbi->common.error, VPX_CODEC_CORRUPT_FRAME, + "Corrupted fragment size %d", fragment_size); fragment_size -= (unsigned int)ext_first_part_size; if (fragment_size > 0) { pbi->fragments.sizes[0] = (unsigned int)ext_first_part_size; @@ -773,6 +776,9 @@ static void setup_token_decoder(VP8D_COMP *pbi, first_fragment_end, fragment_end, fragment_idx - 1, num_token_partitions); pbi->fragments.sizes[fragment_idx] = (unsigned int)partition_size; + if (fragment_size < (unsigned int)partition_size) + vpx_internal_error(&pbi->common.error, VPX_CODEC_CORRUPT_FRAME, + "Corrupted fragment size %d", fragment_size); fragment_size -= (unsigned int)partition_size; assert(fragment_idx <= num_token_partitions); if (fragment_size > 0) { diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h index f33b07351d3..504e943d855 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_DECODEMV_H_ -#define VP8_DECODER_DECODEMV_H_ +#ifndef VPX_VP8_DECODER_DECODEMV_H_ +#define VPX_VP8_DECODER_DECODEMV_H_ #include "onyxd_int.h" @@ -23,4 +23,4 @@ void vp8_decode_mode_mvs(VP8D_COMP *); } // extern "C" #endif -#endif // VP8_DECODER_DECODEMV_H_ +#endif // VPX_VP8_DECODER_DECODEMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h index c563cf6e93a..1402956259a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_DECODERTHREADING_H_ -#define VP8_DECODER_DECODERTHREADING_H_ +#ifndef VPX_VP8_DECODER_DECODERTHREADING_H_ +#define VPX_VP8_DECODER_DECODERTHREADING_H_ #ifdef __cplusplus extern "C" { @@ -27,4 +27,4 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows); } // extern "C" #endif -#endif // VP8_DECODER_DECODERTHREADING_H_ +#endif // VPX_VP8_DECODER_DECODERTHREADING_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h index f0b125444f0..410a431ba0f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_DETOKENIZE_H_ -#define VP8_DECODER_DETOKENIZE_H_ +#ifndef VPX_VP8_DECODER_DETOKENIZE_H_ +#define VPX_VP8_DECODER_DETOKENIZE_H_ #include "onyxd_int.h" @@ -24,4 +24,4 @@ int vp8_decode_mb_tokens(VP8D_COMP *, MACROBLOCKD *); } // extern "C" #endif -#endif // VP8_DECODER_DETOKENIZE_H_ +#endif // VPX_VP8_DECODER_DETOKENIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/ec_types.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/ec_types.h index 8da561f479b..84feb269df0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/ec_types.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/ec_types.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_EC_TYPES_H_ -#define VP8_DECODER_EC_TYPES_H_ +#ifndef VPX_VP8_DECODER_EC_TYPES_H_ +#define VPX_VP8_DECODER_EC_TYPES_H_ #ifdef __cplusplus extern "C" { @@ -50,4 +50,4 @@ typedef struct { } // extern "C" #endif -#endif // VP8_DECODER_EC_TYPES_H_ +#endif // VPX_VP8_DECODER_EC_TYPES_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/error_concealment.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/error_concealment.h index 89c78c14420..608a79f1891 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/error_concealment.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/error_concealment.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_ERROR_CONCEALMENT_H_ -#define VP8_DECODER_ERROR_CONCEALMENT_H_ +#ifndef VPX_VP8_DECODER_ERROR_CONCEALMENT_H_ +#define VPX_VP8_DECODER_ERROR_CONCEALMENT_H_ #include "onyxd_int.h" #include "ec_types.h" @@ -38,4 +38,4 @@ void vp8_interpolate_motion(MACROBLOCKD *mb, int mb_row, int mb_col, } // extern "C" #endif -#endif // VP8_DECODER_ERROR_CONCEALMENT_H_ +#endif // VPX_VP8_DECODER_ERROR_CONCEALMENT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h index 3689258f191..bdf990c6d8f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_ONYXD_INT_H_ -#define VP8_DECODER_ONYXD_INT_H_ +#ifndef VPX_VP8_DECODER_ONYXD_INT_H_ +#define VPX_VP8_DECODER_ONYXD_INT_H_ #include "vpx_config.h" #include "vp8/common/onyxd.h" @@ -150,4 +150,4 @@ int vp8_remove_decoder_instances(struct frame_buffers *fb); } // extern "C" #endif -#endif // VP8_DECODER_ONYXD_INT_H_ +#endif // VPX_VP8_DECODER_ONYXD_INT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/treereader.h b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/treereader.h index dd0f0986e97..1e27f29fd05 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/decoder/treereader.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/decoder/treereader.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_DECODER_TREEREADER_H_ -#define VP8_DECODER_TREEREADER_H_ +#ifndef VPX_VP8_DECODER_TREEREADER_H_ +#define VPX_VP8_DECODER_TREEREADER_H_ #include "./vpx_config.h" #include "vp8/common/treecoder.h" @@ -42,4 +42,4 @@ static INLINE int vp8_treed_read( } // extern "C" #endif -#endif // VP8_DECODER_TREEREADER_H_ +#endif // VPX_VP8_DECODER_TREEREADER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h index ed45bff9e20..ee3f3e4aab8 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_BITSTREAM_H_ -#define VP8_ENCODER_BITSTREAM_H_ +#ifndef VPX_VP8_ENCODER_BITSTREAM_H_ +#define VPX_VP8_ENCODER_BITSTREAM_H_ #ifdef __cplusplus extern "C" { @@ -29,4 +29,4 @@ void vp8_update_coef_probs(struct VP8_COMP *cpi); } // extern "C" #endif -#endif // VP8_ENCODER_BITSTREAM_H_ +#endif // VPX_VP8_ENCODER_BITSTREAM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/block.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/block.h index 492af0e41fd..1bc5ef75bc2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/block.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/block.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_BLOCK_H_ -#define VP8_ENCODER_BLOCK_H_ +#ifndef VPX_VP8_ENCODER_BLOCK_H_ +#define VPX_VP8_ENCODER_BLOCK_H_ #include "vp8/common/onyx.h" #include "vp8/common/blockd.h" @@ -165,4 +165,4 @@ typedef struct macroblock { } // extern "C" #endif -#endif // VP8_ENCODER_BLOCK_H_ +#endif // VPX_VP8_ENCODER_BLOCK_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h index 3c5775f096f..2cf62def135 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h @@ -15,8 +15,8 @@ * Description : Bool Coder header file. * ****************************************************************************/ -#ifndef VP8_ENCODER_BOOLHUFF_H_ -#define VP8_ENCODER_BOOLHUFF_H_ +#ifndef VPX_VP8_ENCODER_BOOLHUFF_H_ +#define VPX_VP8_ENCODER_BOOLHUFF_H_ #include "vpx_ports/mem.h" #include "vpx/internal/vpx_codec_internal.h" @@ -121,4 +121,4 @@ static void vp8_encode_bool(BOOL_CODER *br, int bit, int probability) { } // extern "C" #endif -#endif // VP8_ENCODER_BOOLHUFF_H_ +#endif // VPX_VP8_ENCODER_BOOLHUFF_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h index 278dce73f40..0cd6cb4e65b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_DCT_VALUE_COST_H_ -#define VP8_ENCODER_DCT_VALUE_COST_H_ +#ifndef VPX_VP8_ENCODER_DCT_VALUE_COST_H_ +#define VPX_VP8_ENCODER_DCT_VALUE_COST_H_ #ifdef __cplusplus extern "C" { @@ -341,4 +341,4 @@ static const short dct_value_cost[2048 * 2] = { } // extern "C" #endif -#endif // VP8_ENCODER_DCT_VALUE_COST_H_ +#endif // VPX_VP8_ENCODER_DCT_VALUE_COST_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h index 0597deab2d4..5cc4505f09a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_DCT_VALUE_TOKENS_H_ -#define VP8_ENCODER_DCT_VALUE_TOKENS_H_ +#ifndef VPX_VP8_ENCODER_DCT_VALUE_TOKENS_H_ +#define VPX_VP8_ENCODER_DCT_VALUE_TOKENS_H_ #ifdef __cplusplus extern "C" { @@ -845,4 +845,4 @@ static const TOKENVALUE dct_value_tokens[2048 * 2] = { } // extern "C" #endif -#endif // VP8_ENCODER_DCT_VALUE_TOKENS_H_ +#endif // VPX_VP8_ENCODER_DCT_VALUE_TOKENS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h index 2976325dc57..a3ab34c8a04 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_DEFAULTCOEFCOUNTS_H_ -#define VP8_ENCODER_DEFAULTCOEFCOUNTS_H_ +#ifndef VPX_VP8_ENCODER_DEFAULTCOEFCOUNTS_H_ +#define VPX_VP8_ENCODER_DEFAULTCOEFCOUNTS_H_ #ifdef __cplusplus extern "C" { @@ -232,4 +232,4 @@ static const unsigned int default_coef_counts } // extern "C" #endif -#endif // VP8_ENCODER_DEFAULTCOEFCOUNTS_H_ +#endif // VPX_VP8_ENCODER_DEFAULTCOEFCOUNTS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/denoising.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/denoising.h index 91d87b3a1cd..51ae3b0ab33 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/denoising.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/denoising.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_DENOISING_H_ -#define VP8_ENCODER_DENOISING_H_ +#ifndef VPX_VP8_ENCODER_DENOISING_H_ +#define VPX_VP8_ENCODER_DENOISING_H_ #include "block.h" #include "vp8/common/loopfilter.h" @@ -100,4 +100,4 @@ void vp8_denoiser_denoise_mb(VP8_DENOISER *denoiser, MACROBLOCK *x, } // extern "C" #endif -#endif // VP8_ENCODER_DENOISING_H_ +#endif // VPX_VP8_ENCODER_DENOISING_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h index 5274aba4120..cc8cf4d713d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_ENCODEFRAME_H_ -#define VP8_ENCODER_ENCODEFRAME_H_ +#ifndef VPX_VP8_ENCODER_ENCODEFRAME_H_ +#define VPX_VP8_ENCODER_ENCODEFRAME_H_ #include "vp8/encoder/tokenize.h" @@ -37,4 +37,4 @@ int vp8cx_encode_intra_macroblock(struct VP8_COMP *cpi, struct macroblock *x, } // extern "C" #endif -#endif // VP8_ENCODER_ENCODEFRAME_H_ +#endif // VPX_VP8_ENCODER_ENCODEFRAME_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h index 3956cf5fb1e..021dc5ed76b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_ENCODEINTRA_H_ -#define VP8_ENCODER_ENCODEINTRA_H_ +#ifndef VPX_VP8_ENCODER_ENCODEINTRA_H_ +#define VPX_VP8_ENCODER_ENCODEINTRA_H_ #include "onyx_int.h" #ifdef __cplusplus @@ -25,4 +25,4 @@ void vp8_encode_intra4x4block(MACROBLOCK *x, int ib); } // extern "C" #endif -#endif // VP8_ENCODER_ENCODEINTRA_H_ +#endif // VPX_VP8_ENCODER_ENCODEINTRA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h index b55ba3ac3f1..db577ddc108 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_ENCODEMB_H_ -#define VP8_ENCODER_ENCODEMB_H_ +#ifndef VPX_VP8_ENCODER_ENCODEMB_H_ +#define VPX_VP8_ENCODER_ENCODEMB_H_ #include "onyx_int.h" @@ -37,4 +37,4 @@ void vp8_encode_inter16x16y(MACROBLOCK *x); } // extern "C" #endif -#endif // VP8_ENCODER_ENCODEMB_H_ +#endif // VPX_VP8_ENCODER_ENCODEMB_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h index 87db30f3105..347b9feffea 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_ENCODEMV_H_ -#define VP8_ENCODER_ENCODEMV_H_ +#ifndef VPX_VP8_ENCODER_ENCODEMV_H_ +#define VPX_VP8_ENCODER_ENCODEMV_H_ #include "onyx_int.h" @@ -26,4 +26,4 @@ void vp8_build_component_cost_table(int *mvcost[2], const MV_CONTEXT *mvc, } // extern "C" #endif -#endif // VP8_ENCODER_ENCODEMV_H_ +#endif // VPX_VP8_ENCODER_ENCODEMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h index 95bf73d182c..598fe60559b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_ETHREADING_H_ -#define VP8_ENCODER_ETHREADING_H_ +#ifndef VPX_VP8_ENCODER_ETHREADING_H_ +#define VPX_VP8_ENCODER_ETHREADING_H_ #include "vp8/encoder/onyx_int.h" @@ -29,4 +29,4 @@ void vp8cx_remove_encoder_threads(struct VP8_COMP *cpi); } #endif -#endif // VP8_ENCODER_ETHREADING_H_ +#endif // VPX_VP8_ENCODER_ETHREADING_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h index ac8a7b1bfb6..f5490f1efff 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_FIRSTPASS_H_ -#define VP8_ENCODER_FIRSTPASS_H_ +#ifndef VPX_VP8_ENCODER_FIRSTPASS_H_ +#define VPX_VP8_ENCODER_FIRSTPASS_H_ #ifdef __cplusplus extern "C" { @@ -28,4 +28,4 @@ extern size_t vp8_firstpass_stats_sz(unsigned int mb_count); } // extern "C" #endif -#endif // VP8_ENCODER_FIRSTPASS_H_ +#endif // VPX_VP8_ENCODER_FIRSTPASS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h index a67f226946a..4e2766b1c51 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_LOOKAHEAD_H_ -#define VP8_ENCODER_LOOKAHEAD_H_ +#ifndef VPX_VP8_ENCODER_LOOKAHEAD_H_ +#define VPX_VP8_ENCODER_LOOKAHEAD_H_ #include "vpx_scale/yv12config.h" #include "vpx/vpx_integer.h" @@ -96,4 +96,4 @@ unsigned int vp8_lookahead_depth(struct lookahead_ctx *ctx); } // extern "C" #endif -#endif // VP8_ENCODER_LOOKAHEAD_H_ +#endif // VPX_VP8_ENCODER_LOOKAHEAD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h index b6228798ff3..490b0b87252 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_MCOMP_H_ -#define VP8_ENCODER_MCOMP_H_ +#ifndef VPX_VP8_ENCODER_MCOMP_H_ +#define VPX_VP8_ENCODER_MCOMP_H_ #include "block.h" #include "vpx_dsp/variance.h" @@ -78,4 +78,4 @@ typedef int (*vp8_diamond_search_fn_t)(MACROBLOCK *x, BLOCK *b, BLOCKD *d, } // extern "C" #endif -#endif // VP8_ENCODER_MCOMP_H_ +#endif // VPX_VP8_ENCODER_MCOMP_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h index dfb8989f7f9..422a79b3608 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_MODECOSTS_H_ -#define VP8_ENCODER_MODECOSTS_H_ +#ifndef VPX_VP8_ENCODER_MODECOSTS_H_ +#define VPX_VP8_ENCODER_MODECOSTS_H_ #ifdef __cplusplus extern "C" { @@ -23,4 +23,4 @@ void vp8_init_mode_costs(struct VP8_COMP *x); } // extern "C" #endif -#endif // VP8_ENCODER_MODECOSTS_H_ +#endif // VPX_VP8_ENCODER_MODECOSTS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h index da36628afad..58f5a976230 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_MR_DISSIM_H_ -#define VP8_ENCODER_MR_DISSIM_H_ +#ifndef VPX_VP8_ENCODER_MR_DISSIM_H_ +#define VPX_VP8_ENCODER_MR_DISSIM_H_ #include "vpx_config.h" #ifdef __cplusplus @@ -24,4 +24,4 @@ extern void vp8_store_drop_frame_info(VP8_COMP *cpi); } // extern "C" #endif -#endif // VP8_ENCODER_MR_DISSIM_H_ +#endif // VPX_VP8_ENCODER_MR_DISSIM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h index c489b46c2d3..603de8bcbc2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_ONYX_INT_H_ -#define VP8_ENCODER_ONYX_INT_H_ +#ifndef VPX_VP8_ENCODER_ONYX_INT_H_ +#define VPX_VP8_ENCODER_ONYX_INT_H_ #include <stdio.h> #include "vpx_config.h" @@ -733,4 +733,4 @@ void vp8_set_speed_features(VP8_COMP *cpi); } // extern "C" #endif -#endif // VP8_ENCODER_ONYX_INT_H_ +#endif // VPX_VP8_ENCODER_ONYX_INT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h index bf1d0c97499..392fb41593f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_PICKINTER_H_ -#define VP8_ENCODER_PICKINTER_H_ +#ifndef VPX_VP8_ENCODER_PICKINTER_H_ +#define VPX_VP8_ENCODER_PICKINTER_H_ #include "vpx_config.h" #include "vp8/common/onyxc_int.h" @@ -30,4 +30,4 @@ extern int vp8_get_inter_mbpred_error(MACROBLOCK *mb, } // extern "C" #endif -#endif // VP8_ENCODER_PICKINTER_H_ +#endif // VPX_VP8_ENCODER_PICKINTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h index e6ad0dbf265..03597e5427a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_PICKLPF_H_ -#define VP8_ENCODER_PICKLPF_H_ +#ifndef VPX_VP8_ENCODER_PICKLPF_H_ +#define VPX_VP8_ENCODER_PICKLPF_H_ #ifdef __cplusplus extern "C" { @@ -27,4 +27,4 @@ void vp8cx_pick_filter_level(struct yv12_buffer_config *sd, VP8_COMP *cpi); } #endif -#endif // VP8_ENCODER_PICKLPF_H_ +#endif // VPX_VP8_ENCODER_PICKLPF_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/quantize.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/quantize.h index 267150f99fb..78746c0c20b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/quantize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/quantize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_QUANTIZE_H_ -#define VP8_ENCODER_QUANTIZE_H_ +#ifndef VPX_VP8_ENCODER_QUANTIZE_H_ +#define VPX_VP8_ENCODER_QUANTIZE_H_ #ifdef __cplusplus extern "C" { @@ -31,4 +31,4 @@ extern void vp8cx_init_quantizer(struct VP8_COMP *cpi); } // extern "C" #endif -#endif // VP8_ENCODER_QUANTIZE_H_ +#endif // VPX_VP8_ENCODER_QUANTIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h index 249de4e706c..844c72cb861 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_RATECTRL_H_ -#define VP8_ENCODER_RATECTRL_H_ +#ifndef VPX_VP8_ENCODER_RATECTRL_H_ +#define VPX_VP8_ENCODER_RATECTRL_H_ #include "onyx_int.h" @@ -37,4 +37,4 @@ extern int vp8_drop_encodedframe_overshoot(VP8_COMP *cpi, int Q); } // extern "C" #endif -#endif // VP8_ENCODER_RATECTRL_H_ +#endif // VPX_VP8_ENCODER_RATECTRL_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h index 960bd8f1cdf..e22b58b8af2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_RDOPT_H_ -#define VP8_ENCODER_RDOPT_H_ +#ifndef VPX_VP8_ENCODER_RDOPT_H_ +#define VPX_VP8_ENCODER_RDOPT_H_ #include "./vpx_config.h" @@ -123,4 +123,4 @@ void vp8_set_mbmode_and_mvs(MACROBLOCK *x, MB_PREDICTION_MODE mb, int_mv *mv); } // extern "C" #endif -#endif // VP8_ENCODER_RDOPT_H_ +#endif // VPX_VP8_ENCODER_RDOPT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h index 1395a341185..4ddbdbbd265 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_SEGMENTATION_H_ -#define VP8_ENCODER_SEGMENTATION_H_ +#ifndef VPX_VP8_ENCODER_SEGMENTATION_H_ +#define VPX_VP8_ENCODER_SEGMENTATION_H_ #include "string.h" #include "vp8/common/blockd.h" @@ -26,4 +26,4 @@ extern void vp8_update_gf_useage_maps(VP8_COMP *cpi, VP8_COMMON *cm, } // extern "C" #endif -#endif // VP8_ENCODER_SEGMENTATION_H_ +#endif // VPX_VP8_ENCODER_SEGMENTATION_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/temporal_filter.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/temporal_filter.h index 865d909fb65..fd39f5cb873 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/temporal_filter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/temporal_filter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_TEMPORAL_FILTER_H_ -#define VP8_ENCODER_TEMPORAL_FILTER_H_ +#ifndef VPX_VP8_ENCODER_TEMPORAL_FILTER_H_ +#define VPX_VP8_ENCODER_TEMPORAL_FILTER_H_ #ifdef __cplusplus extern "C" { @@ -23,4 +23,4 @@ void vp8_temporal_filter_prepare_c(struct VP8_COMP *cpi, int distance); } #endif -#endif // VP8_ENCODER_TEMPORAL_FILTER_H_ +#endif // VPX_VP8_ENCODER_TEMPORAL_FILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h index e5dbdfc5af4..46425ac8f9b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_TOKENIZE_H_ -#define VP8_ENCODER_TOKENIZE_H_ +#ifndef VPX_VP8_ENCODER_TOKENIZE_H_ +#define VPX_VP8_ENCODER_TOKENIZE_H_ #include "vp8/common/entropy.h" #include "block.h" @@ -53,4 +53,4 @@ extern const TOKENVALUE *const vp8_dct_value_tokens_ptr; } // extern "C" #endif -#endif // VP8_ENCODER_TOKENIZE_H_ +#endif // VPX_VP8_ENCODER_TOKENIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h index e76699092bf..0d7b06e568d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP8_ENCODER_TREEWRITER_H_ -#define VP8_ENCODER_TREEWRITER_H_ +#ifndef VPX_VP8_ENCODER_TREEWRITER_H_ +#define VPX_VP8_ENCODER_TREEWRITER_H_ /* Trees map alphabets into huffman-like codes suitable for an arithmetic bit coder. Timothy S Murphy 11 October 2004 */ @@ -99,4 +99,4 @@ void vp8_cost_tokens2(int *Costs, const vp8_prob *, vp8_tree, int); } // extern "C" #endif -#endif // VP8_ENCODER_TREEWRITER_H_ +#endif // VPX_VP8_ENCODER_TREEWRITER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c b/chromium/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c index e1c31341bc1..b5f96a17e41 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c +++ b/chromium/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c @@ -49,7 +49,7 @@ static struct vp8_extracfg default_extracfg = { #if !(CONFIG_REALTIME_ONLY) 0, /* cpu_used */ #else - 4, /* cpu_used */ + 4, /* cpu_used */ #endif 0, /* enable_auto_alt_ref */ 0, /* noise_sensitivity */ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h index 33e68d8188c..c64822e27c6 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_ARM_NEON_VP9_IHT_NEON_H_ -#define VP9_COMMON_ARM_NEON_VP9_IHT_NEON_H_ +#ifndef VPX_VP9_COMMON_ARM_NEON_VP9_IHT_NEON_H_ +#define VPX_VP9_COMMON_ARM_NEON_VP9_IHT_NEON_H_ #include <arm_neon.h> @@ -269,4 +269,4 @@ typedef struct { iht_1d cols, rows; // vertical and horizontal } iht_2d; -#endif // VP9_COMMON_ARM_NEON_VP9_IHT_NEON_H_ +#endif // VPX_VP9_COMMON_ARM_NEON_VP9_IHT_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h index a3a1638572d..5faa4f2be5a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_ALLOCCOMMON_H_ -#define VP9_COMMON_VP9_ALLOCCOMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_ALLOCCOMMON_H_ +#define VPX_VP9_COMMON_VP9_ALLOCCOMMON_H_ #define INVALID_IDX -1 // Invalid buffer index. @@ -41,4 +41,4 @@ void vp9_swap_current_and_last_seg_map(struct VP9Common *cm); } // extern "C" #endif -#endif // VP9_COMMON_VP9_ALLOCCOMMON_H_ +#endif // VPX_VP9_COMMON_VP9_ALLOCCOMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h index 1473806502e..65db065a659 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_BLOCKD_H_ -#define VP9_COMMON_VP9_BLOCKD_H_ +#ifndef VPX_VP9_COMMON_VP9_BLOCKD_H_ +#define VPX_VP9_COMMON_VP9_BLOCKD_H_ #include "./vpx_config.h" @@ -61,12 +61,6 @@ typedef struct { #define ALTREF_FRAME 3 #define MAX_REF_FRAMES 4 -#define LAST2_FRAME 4 -#define LAST3_FRAME 5 -#define BWDREF_FRAME 6 -#define ALTREF2_FRAME 7 -#define LAST_REF_FRAMES 3 - typedef int8_t MV_REFERENCE_FRAME; // This structure now relates to 8x8 block regions. @@ -292,4 +286,4 @@ void vp9_set_contexts(const MACROBLOCKD *xd, struct macroblockd_plane *pd, } // extern "C" #endif -#endif // VP9_COMMON_VP9_BLOCKD_H_ +#endif // VPX_VP9_COMMON_VP9_BLOCKD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common.h index 666c3beaf03..ae8dad38eb2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_COMMON_H_ -#define VP9_COMMON_VP9_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_COMMON_H_ +#define VPX_VP9_COMMON_VP9_COMMON_H_ /* Interface header for common constant data structures and lookup tables */ @@ -75,4 +75,4 @@ static INLINE int get_unsigned_bits(unsigned int num_values) { } // extern "C" #endif -#endif // VP9_COMMON_VP9_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h index 5c6a7e8ff3e..a533c5f058d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_COMMON_DATA_H_ -#define VP9_COMMON_VP9_COMMON_DATA_H_ +#ifndef VPX_VP9_COMMON_VP9_COMMON_DATA_H_ +#define VPX_VP9_COMMON_VP9_COMMON_DATA_H_ #include "vp9/common/vp9_enums.h" #include "vpx/vpx_integer.h" @@ -42,4 +42,4 @@ extern const uint8_t need_top_left[INTRA_MODES]; } // extern "C" #endif -#endif // VP9_COMMON_VP9_COMMON_DATA_H_ +#endif // VPX_VP9_COMMON_VP9_COMMON_DATA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h index 0ab502592b3..d026651df76 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_ENTROPY_H_ -#define VP9_COMMON_VP9_ENTROPY_H_ +#ifndef VPX_VP9_COMMON_VP9_ENTROPY_H_ +#define VPX_VP9_COMMON_VP9_ENTROPY_H_ #include "vpx/vpx_integer.h" #include "vpx_dsp/prob.h" @@ -194,4 +194,4 @@ static INLINE int get_entropy_context(TX_SIZE tx_size, const ENTROPY_CONTEXT *a, } // extern "C" #endif -#endif // VP9_COMMON_VP9_ENTROPY_H_ +#endif // VPX_VP9_COMMON_VP9_ENTROPY_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h index 0ee663fe883..a756c8d0b8c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_ENTROPYMODE_H_ -#define VP9_COMMON_VP9_ENTROPYMODE_H_ +#ifndef VPX_VP9_COMMON_VP9_ENTROPYMODE_H_ +#define VPX_VP9_COMMON_VP9_ENTROPYMODE_H_ #include "vp9/common/vp9_entropy.h" #include "vp9/common/vp9_entropymv.h" @@ -104,4 +104,4 @@ void tx_counts_to_branch_counts_8x8(const unsigned int *tx_count_8x8p, } // extern "C" #endif -#endif // VP9_COMMON_VP9_ENTROPYMODE_H_ +#endif // VPX_VP9_COMMON_VP9_ENTROPYMODE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h index e2fe37a327a..dcc8e299899 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_ENTROPYMV_H_ -#define VP9_COMMON_VP9_ENTROPYMV_H_ +#ifndef VPX_VP9_COMMON_VP9_ENTROPYMV_H_ +#define VPX_VP9_COMMON_VP9_ENTROPYMV_H_ #include "./vpx_config.h" @@ -133,4 +133,4 @@ void vp9_inc_mv(const MV *mv, nmv_context_counts *mvctx); } // extern "C" #endif -#endif // VP9_COMMON_VP9_ENTROPYMV_H_ +#endif // VPX_VP9_COMMON_VP9_ENTROPYMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h index 056b298b3db..bc665534de7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_ENUMS_H_ -#define VP9_COMMON_VP9_ENUMS_H_ +#ifndef VPX_VP9_COMMON_VP9_ENUMS_H_ +#define VPX_VP9_COMMON_VP9_ENUMS_H_ #include "./vpx_config.h" #include "vpx/vpx_integer.h" @@ -140,4 +140,4 @@ typedef uint8_t PREDICTION_MODE; } // extern "C" #endif -#endif // VP9_COMMON_VP9_ENUMS_H_ +#endif // VPX_VP9_COMMON_VP9_ENUMS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h index 9d2b8e1dbf2..b379665b1c1 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_FILTER_H_ -#define VP9_COMMON_VP9_FILTER_H_ +#ifndef VPX_VP9_COMMON_VP9_FILTER_H_ +#define VPX_VP9_COMMON_VP9_FILTER_H_ #include "./vpx_config.h" #include "vpx/vpx_integer.h" @@ -38,4 +38,4 @@ extern const InterpKernel *vp9_filter_kernels[4]; } // extern "C" #endif -#endif // VP9_COMMON_VP9_FILTER_H_ +#endif // VPX_VP9_COMMON_VP9_FILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h index e2cfe61b662..11be838c020 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_FRAME_BUFFERS_H_ -#define VP9_COMMON_VP9_FRAME_BUFFERS_H_ +#ifndef VPX_VP9_COMMON_VP9_FRAME_BUFFERS_H_ +#define VPX_VP9_COMMON_VP9_FRAME_BUFFERS_H_ #include "vpx/vpx_frame_buffer.h" #include "vpx/vpx_integer.h" @@ -50,4 +50,4 @@ int vp9_release_frame_buffer(void *cb_priv, vpx_codec_frame_buffer_t *fb); } // extern "C" #endif -#endif // VP9_COMMON_VP9_FRAME_BUFFERS_H_ +#endif // VPX_VP9_COMMON_VP9_FRAME_BUFFERS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h index 3e83b8402de..94eeaf599e1 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_IDCT_H_ -#define VP9_COMMON_VP9_IDCT_H_ +#ifndef VPX_VP9_COMMON_VP9_IDCT_H_ +#define VPX_VP9_COMMON_VP9_IDCT_H_ #include <assert.h> @@ -78,4 +78,4 @@ void vp9_highbd_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input, } // extern "C" #endif -#endif // VP9_COMMON_VP9_IDCT_H_ +#endif // VPX_VP9_COMMON_VP9_IDCT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h index 481a6cdc63c..daf3b91315e 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_LOOPFILTER_H_ -#define VP9_COMMON_VP9_LOOPFILTER_H_ +#ifndef VPX_VP9_COMMON_VP9_LOOPFILTER_H_ +#define VPX_VP9_COMMON_VP9_LOOPFILTER_H_ #include "vpx_ports/mem.h" #include "./vpx_config.h" @@ -157,4 +157,4 @@ int vp9_loop_filter_worker(void *arg1, void *unused); } // extern "C" #endif -#endif // VP9_COMMON_VP9_LOOPFILTER_H_ +#endif // VPX_VP9_COMMON_VP9_LOOPFILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h index dfff8c23d65..f53e1c2f9d9 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_MFQE_H_ -#define VP9_COMMON_VP9_MFQE_H_ +#ifndef VPX_VP9_COMMON_VP9_MFQE_H_ +#define VPX_VP9_COMMON_VP9_MFQE_H_ #ifdef __cplusplus extern "C" { @@ -28,4 +28,4 @@ void vp9_mfqe(struct VP9Common *cm); } // extern "C" #endif -#endif // VP9_COMMON_VP9_MFQE_H_ +#endif // VPX_VP9_COMMON_VP9_MFQE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h index 4c8eac7213d..14dde7dd052 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_MV_H_ -#define VP9_COMMON_VP9_MV_H_ +#ifndef VPX_VP9_COMMON_VP9_MV_H_ +#define VPX_VP9_COMMON_VP9_MV_H_ #include "vpx/vpx_integer.h" @@ -52,4 +52,4 @@ static INLINE void clamp_mv(MV *mv, int min_col, int max_col, int min_row, } // extern "C" #endif -#endif // VP9_COMMON_VP9_MV_H_ +#endif // VPX_VP9_COMMON_VP9_MV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h index 2b2c1ba9eed..ebe5fdad1f0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_MVREF_COMMON_H_ -#define VP9_COMMON_VP9_MVREF_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_MVREF_COMMON_H_ +#define VPX_VP9_COMMON_VP9_MVREF_COMMON_H_ #include "vp9/common/vp9_onyxc_int.h" #include "vp9/common/vp9_blockd.h" @@ -320,4 +320,4 @@ void vp9_append_sub8x8_mvs_for_idx(VP9_COMMON *cm, MACROBLOCKD *xd, int block, } // extern "C" #endif -#endif // VP9_COMMON_VP9_MVREF_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_MVREF_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h index 690fca79623..45d3b0f82f3 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_ONYXC_INT_H_ -#define VP9_COMMON_VP9_ONYXC_INT_H_ +#ifndef VPX_VP9_COMMON_VP9_ONYXC_INT_H_ +#define VPX_VP9_COMMON_VP9_ONYXC_INT_H_ #include "./vpx_config.h" #include "vpx/internal/vpx_codec_internal.h" @@ -70,6 +70,7 @@ typedef struct { int mi_rows; int mi_cols; uint8_t released; + int frame_index; vpx_codec_frame_buffer_t raw_frame_buffer; YV12_BUFFER_CONFIG buf; } RefCntBuffer; @@ -413,4 +414,4 @@ static INLINE int partition_plane_context(const MACROBLOCKD *xd, int mi_row, } // extern "C" #endif -#endif // VP9_COMMON_VP9_ONYXC_INT_H_ +#endif // VPX_VP9_COMMON_VP9_ONYXC_INT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c index dfc315eeacf..5373b021812 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c @@ -293,7 +293,7 @@ static void swap_mi_and_prev_mi(VP9_COMMON *cm) { } int vp9_post_proc_frame(struct VP9Common *cm, YV12_BUFFER_CONFIG *dest, - vp9_ppflags_t *ppflags) { + vp9_ppflags_t *ppflags, int unscaled_width) { const int q = VPXMIN(105, cm->lf.filter_level * 2); const int flags = ppflags->post_proc_flag; YV12_BUFFER_CONFIG *const ppbuf = &cm->post_proc_buffer; @@ -359,7 +359,7 @@ int vp9_post_proc_frame(struct VP9Common *cm, YV12_BUFFER_CONFIG *dest, if (flags & (VP9D_DEMACROBLOCK | VP9D_DEBLOCK)) { if (!cm->postproc_state.limits) { cm->postproc_state.limits = - vpx_calloc(cm->width, sizeof(*cm->postproc_state.limits)); + vpx_calloc(unscaled_width, sizeof(*cm->postproc_state.limits)); } } diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h index 6059094114b..0aafa72ca8a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_POSTPROC_H_ -#define VP9_COMMON_VP9_POSTPROC_H_ +#ifndef VPX_VP9_COMMON_VP9_POSTPROC_H_ +#define VPX_VP9_COMMON_VP9_POSTPROC_H_ #include "vpx_ports/mem.h" #include "vpx_scale/yv12config.h" @@ -38,7 +38,7 @@ struct VP9Common; #define MFQE_PRECISION 4 int vp9_post_proc_frame(struct VP9Common *cm, YV12_BUFFER_CONFIG *dest, - vp9_ppflags_t *flags); + vp9_ppflags_t *flags, int unscaled_width); void vp9_denoise(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, int q, uint8_t *limits); @@ -50,4 +50,4 @@ void vp9_deblock(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, int q, } // extern "C" #endif -#endif // VP9_COMMON_VP9_POSTPROC_H_ +#endif // VPX_VP9_COMMON_VP9_POSTPROC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h index b8b647bf18d..a0e30176269 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_PPFLAGS_H_ -#define VP9_COMMON_VP9_PPFLAGS_H_ +#ifndef VPX_VP9_COMMON_VP9_PPFLAGS_H_ +#define VPX_VP9_COMMON_VP9_PPFLAGS_H_ #ifdef __cplusplus extern "C" { @@ -33,4 +33,4 @@ typedef struct { } // extern "C" #endif -#endif // VP9_COMMON_VP9_PPFLAGS_H_ +#endif // VPX_VP9_COMMON_VP9_PPFLAGS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c index 15c7e6376c9..375cb4d76c7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c @@ -13,6 +13,32 @@ #include "vp9/common/vp9_pred_common.h" #include "vp9/common/vp9_seg_common.h" +int vp9_compound_reference_allowed(const VP9_COMMON *cm) { + int i; + for (i = 1; i < REFS_PER_FRAME; ++i) + if (cm->ref_frame_sign_bias[i + 1] != cm->ref_frame_sign_bias[1]) return 1; + + return 0; +} + +void vp9_setup_compound_reference_mode(VP9_COMMON *cm) { + if (cm->ref_frame_sign_bias[LAST_FRAME] == + cm->ref_frame_sign_bias[GOLDEN_FRAME]) { + cm->comp_fixed_ref = ALTREF_FRAME; + cm->comp_var_ref[0] = LAST_FRAME; + cm->comp_var_ref[1] = GOLDEN_FRAME; + } else if (cm->ref_frame_sign_bias[LAST_FRAME] == + cm->ref_frame_sign_bias[ALTREF_FRAME]) { + cm->comp_fixed_ref = GOLDEN_FRAME; + cm->comp_var_ref[0] = LAST_FRAME; + cm->comp_var_ref[1] = ALTREF_FRAME; + } else { + cm->comp_fixed_ref = LAST_FRAME; + cm->comp_var_ref[0] = GOLDEN_FRAME; + cm->comp_var_ref[1] = ALTREF_FRAME; + } +} + int vp9_get_reference_mode_context(const VP9_COMMON *cm, const MACROBLOCKD *xd) { int ctx; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h index 005290980e6..ee59669359c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_PRED_COMMON_H_ -#define VP9_COMMON_VP9_PRED_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_PRED_COMMON_H_ +#define VPX_VP9_COMMON_VP9_PRED_COMMON_H_ #include "vp9/common/vp9_blockd.h" #include "vp9/common/vp9_onyxc_int.h" @@ -145,6 +145,10 @@ static INLINE vpx_prob vp9_get_pred_prob_single_ref_p2(const VP9_COMMON *cm, return cm->fc->single_ref_prob[vp9_get_pred_context_single_ref_p2(xd)][1]; } +int vp9_compound_reference_allowed(const VP9_COMMON *cm); + +void vp9_setup_compound_reference_mode(VP9_COMMON *cm); + // Returns a context number for the given MB prediction signal // The mode info data structure has a one element border above and to the // left of the entries corresponding to real blocks. @@ -190,4 +194,4 @@ static INLINE unsigned int *get_tx_counts(TX_SIZE max_tx_size, int ctx, } // extern "C" #endif -#endif // VP9_COMMON_VP9_PRED_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_PRED_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h index 4bae4a89677..ec8b9f4c6a7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_QUANT_COMMON_H_ -#define VP9_COMMON_VP9_QUANT_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_QUANT_COMMON_H_ +#define VPX_VP9_COMMON_VP9_QUANT_COMMON_H_ #include "vpx/vpx_codec.h" #include "vp9/common/vp9_seg_common.h" @@ -33,4 +33,4 @@ int vp9_get_qindex(const struct segmentation *seg, int segment_id, } // extern "C" #endif -#endif // VP9_COMMON_VP9_QUANT_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_QUANT_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h index bb9291a2646..2c6d6695aba 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_RECONINTER_H_ -#define VP9_COMMON_VP9_RECONINTER_H_ +#ifndef VPX_VP9_COMMON_VP9_RECONINTER_H_ +#define VPX_VP9_COMMON_VP9_RECONINTER_H_ #include "vp9/common/vp9_filter.h" #include "vp9/common/vp9_onyxc_int.h" @@ -103,4 +103,4 @@ void vp9_setup_pre_planes(MACROBLOCKD *xd, int idx, } // extern "C" #endif -#endif // VP9_COMMON_VP9_RECONINTER_H_ +#endif // VPX_VP9_COMMON_VP9_RECONINTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h index 78e41c88118..426a35ebfa2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_RECONINTRA_H_ -#define VP9_COMMON_VP9_RECONINTRA_H_ +#ifndef VPX_VP9_COMMON_VP9_RECONINTRA_H_ +#define VPX_VP9_COMMON_VP9_RECONINTRA_H_ #include "vpx/vpx_integer.h" #include "vp9/common/vp9_blockd.h" @@ -28,4 +28,4 @@ void vp9_predict_intra_block(const MACROBLOCKD *xd, int bwl_in, TX_SIZE tx_size, } // extern "C" #endif -#endif // VP9_COMMON_VP9_RECONINTRA_H_ +#endif // VPX_VP9_COMMON_VP9_RECONINTRA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h index ada8dbaad5c..53c6eef7256 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_SCALE_H_ -#define VP9_COMMON_VP9_SCALE_H_ +#ifndef VPX_VP9_COMMON_VP9_SCALE_H_ +#define VPX_VP9_COMMON_VP9_SCALE_H_ #include "vp9/common/vp9_mv.h" #include "vpx_dsp/vpx_convolve.h" @@ -68,4 +68,4 @@ static INLINE int valid_ref_frame_size(int ref_width, int ref_height, } // extern "C" #endif -#endif // VP9_COMMON_VP9_SCALE_H_ +#endif // VPX_VP9_COMMON_VP9_SCALE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h index b3520e7dccb..72a9a5ec472 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_SCAN_H_ -#define VP9_COMMON_VP9_SCAN_H_ +#ifndef VPX_VP9_COMMON_VP9_SCAN_H_ +#define VPX_VP9_COMMON_VP9_SCAN_H_ #include "vpx/vpx_integer.h" #include "vpx_ports/mem.h" @@ -55,4 +55,4 @@ static INLINE const scan_order *get_scan(const MACROBLOCKD *xd, TX_SIZE tx_size, } // extern "C" #endif -#endif // VP9_COMMON_VP9_SCAN_H_ +#endif // VPX_VP9_COMMON_VP9_SCAN_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h index b9bf75d5802..b63e4f49990 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_SEG_COMMON_H_ -#define VP9_COMMON_VP9_SEG_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_SEG_COMMON_H_ +#define VPX_VP9_COMMON_VP9_SEG_COMMON_H_ #include "vpx_dsp/prob.h" @@ -78,4 +78,4 @@ extern const vpx_tree_index vp9_segment_tree[TREE_SIZE(MAX_SEGMENTS)]; } // extern "C" #endif -#endif // VP9_COMMON_VP9_SEG_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_SEG_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c index e0f5e0d834c..d4b076645fb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c @@ -38,11 +38,11 @@ static INLINE void sync_read(VP9LfSync *const lf_sync, int r, int c) { const int nsync = lf_sync->sync_range; if (r && !(c & (nsync - 1))) { - pthread_mutex_t *const mutex = &lf_sync->mutex_[r - 1]; + pthread_mutex_t *const mutex = &lf_sync->mutex[r - 1]; mutex_lock(mutex); while (c > lf_sync->cur_sb_col[r - 1] - nsync) { - pthread_cond_wait(&lf_sync->cond_[r - 1], mutex); + pthread_cond_wait(&lf_sync->cond[r - 1], mutex); } pthread_mutex_unlock(mutex); } @@ -69,12 +69,12 @@ static INLINE void sync_write(VP9LfSync *const lf_sync, int r, int c, } if (sig) { - mutex_lock(&lf_sync->mutex_[r]); + mutex_lock(&lf_sync->mutex[r]); lf_sync->cur_sb_col[r] = cur; - pthread_cond_signal(&lf_sync->cond_[r]); - pthread_mutex_unlock(&lf_sync->mutex_[r]); + pthread_cond_signal(&lf_sync->cond[r]); + pthread_mutex_unlock(&lf_sync->mutex[r]); } #else (void)lf_sync; @@ -251,19 +251,19 @@ void vp9_loop_filter_alloc(VP9LfSync *lf_sync, VP9_COMMON *cm, int rows, { int i; - CHECK_MEM_ERROR(cm, lf_sync->mutex_, - vpx_malloc(sizeof(*lf_sync->mutex_) * rows)); - if (lf_sync->mutex_) { + CHECK_MEM_ERROR(cm, lf_sync->mutex, + vpx_malloc(sizeof(*lf_sync->mutex) * rows)); + if (lf_sync->mutex) { for (i = 0; i < rows; ++i) { - pthread_mutex_init(&lf_sync->mutex_[i], NULL); + pthread_mutex_init(&lf_sync->mutex[i], NULL); } } - CHECK_MEM_ERROR(cm, lf_sync->cond_, - vpx_malloc(sizeof(*lf_sync->cond_) * rows)); - if (lf_sync->cond_) { + CHECK_MEM_ERROR(cm, lf_sync->cond, + vpx_malloc(sizeof(*lf_sync->cond) * rows)); + if (lf_sync->cond) { for (i = 0; i < rows; ++i) { - pthread_cond_init(&lf_sync->cond_[i], NULL); + pthread_cond_init(&lf_sync->cond[i], NULL); } } } @@ -286,17 +286,17 @@ void vp9_loop_filter_dealloc(VP9LfSync *lf_sync) { #if CONFIG_MULTITHREAD int i; - if (lf_sync->mutex_ != NULL) { + if (lf_sync->mutex != NULL) { for (i = 0; i < lf_sync->rows; ++i) { - pthread_mutex_destroy(&lf_sync->mutex_[i]); + pthread_mutex_destroy(&lf_sync->mutex[i]); } - vpx_free(lf_sync->mutex_); + vpx_free(lf_sync->mutex); } - if (lf_sync->cond_ != NULL) { + if (lf_sync->cond != NULL) { for (i = 0; i < lf_sync->rows; ++i) { - pthread_cond_destroy(&lf_sync->cond_[i]); + pthread_cond_destroy(&lf_sync->cond[i]); } - vpx_free(lf_sync->cond_); + vpx_free(lf_sync->cond); } #endif // CONFIG_MULTITHREAD vpx_free(lf_sync->lfdata); diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h index 0f7c3ff7488..f92df5bd62d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_THREAD_COMMON_H_ -#define VP9_COMMON_VP9_THREAD_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_THREAD_COMMON_H_ +#define VPX_VP9_COMMON_VP9_THREAD_COMMON_H_ #include "./vpx_config.h" #include "vp9/common/vp9_loopfilter.h" #include "vpx_util/vpx_thread.h" @@ -24,8 +24,8 @@ struct FRAME_COUNTS; // Loopfilter row synchronization typedef struct VP9LfSyncData { #if CONFIG_MULTITHREAD - pthread_mutex_t *mutex_; - pthread_cond_t *cond_; + pthread_mutex_t *mutex; + pthread_cond_t *cond; #endif // Allocate memory to store the loop-filtered superblock index in each row. int *cur_sb_col; @@ -60,4 +60,4 @@ void vp9_accumulate_frame_counts(struct FRAME_COUNTS *accum, } // extern "C" #endif -#endif // VP9_COMMON_VP9_THREAD_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_THREAD_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h index 1b11c2680de..4ccf0a3d5f6 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_VP9_TILE_COMMON_H_ -#define VP9_COMMON_VP9_TILE_COMMON_H_ +#ifndef VPX_VP9_COMMON_VP9_TILE_COMMON_H_ +#define VPX_VP9_COMMON_VP9_TILE_COMMON_H_ #ifdef __cplusplus extern "C" { @@ -37,4 +37,4 @@ void vp9_get_tile_n_bits(int mi_cols, int *min_log2_tile_cols, } // extern "C" #endif -#endif // VP9_COMMON_VP9_TILE_COMMON_H_ +#endif // VPX_VP9_COMMON_VP9_TILE_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c index 3c17c3dc3ed..48c49e2f5f3 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c @@ -45,32 +45,6 @@ #define MAX_VP9_HEADER_SIZE 80 -static int is_compound_reference_allowed(const VP9_COMMON *cm) { - int i; - for (i = 1; i < REFS_PER_FRAME; ++i) - if (cm->ref_frame_sign_bias[i + 1] != cm->ref_frame_sign_bias[1]) return 1; - - return 0; -} - -static void setup_compound_reference_mode(VP9_COMMON *cm) { - if (cm->ref_frame_sign_bias[LAST_FRAME] == - cm->ref_frame_sign_bias[GOLDEN_FRAME]) { - cm->comp_fixed_ref = ALTREF_FRAME; - cm->comp_var_ref[0] = LAST_FRAME; - cm->comp_var_ref[1] = GOLDEN_FRAME; - } else if (cm->ref_frame_sign_bias[LAST_FRAME] == - cm->ref_frame_sign_bias[ALTREF_FRAME]) { - cm->comp_fixed_ref = GOLDEN_FRAME; - cm->comp_var_ref[0] = LAST_FRAME; - cm->comp_var_ref[1] = ALTREF_FRAME; - } else { - cm->comp_fixed_ref = LAST_FRAME; - cm->comp_var_ref[0] = GOLDEN_FRAME; - cm->comp_var_ref[1] = ALTREF_FRAME; - } -} - static int read_is_valid(const uint8_t *start, size_t len, const uint8_t *end) { return len != 0 && len <= (size_t)(end - start); } @@ -118,7 +92,7 @@ static void read_inter_mode_probs(FRAME_CONTEXT *fc, vpx_reader *r) { static REFERENCE_MODE read_frame_reference_mode(const VP9_COMMON *cm, vpx_reader *r) { - if (is_compound_reference_allowed(cm)) { + if (vp9_compound_reference_allowed(cm)) { return vpx_read_bit(r) ? (vpx_read_bit(r) ? REFERENCE_MODE_SELECT : COMPOUND_REFERENCE) : SINGLE_REFERENCE; @@ -1976,7 +1950,7 @@ static int read_compressed_header(VP9Decoder *pbi, const uint8_t *data, cm->reference_mode = read_frame_reference_mode(cm, &r); if (cm->reference_mode != SINGLE_REFERENCE) - setup_compound_reference_mode(cm); + vp9_setup_compound_reference_mode(cm); read_frame_reference_mode_probs(cm, &r); for (j = 0; j < BLOCK_SIZE_GROUPS; j++) diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h index 44717f546a5..ba95e72344b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_DECODER_VP9_DECODEFRAME_H_ -#define VP9_DECODER_VP9_DECODEFRAME_H_ +#ifndef VPX_VP9_DECODER_VP9_DECODEFRAME_H_ +#define VPX_VP9_DECODER_VP9_DECODEFRAME_H_ #ifdef __cplusplus extern "C" { @@ -32,4 +32,4 @@ void vp9_decode_frame(struct VP9Decoder *pbi, const uint8_t *data, } // extern "C" #endif -#endif // VP9_DECODER_VP9_DECODEFRAME_H_ +#endif // VPX_VP9_DECODER_VP9_DECODEFRAME_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h index b460cb8fb17..11b45ace063 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_DECODER_VP9_DECODEMV_H_ -#define VP9_DECODER_VP9_DECODEMV_H_ +#ifndef VPX_VP9_DECODER_VP9_DECODEMV_H_ +#define VPX_VP9_DECODER_VP9_DECODEMV_H_ #include "vpx_dsp/bitreader.h" @@ -26,4 +26,4 @@ void vp9_read_mode_info(TileWorkerData *twd, VP9Decoder *const pbi, int mi_row, } // extern "C" #endif -#endif // VP9_DECODER_VP9_DECODEMV_H_ +#endif // VPX_VP9_DECODER_VP9_DECODEMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c index b4d05f663e1..5e41274cc89 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c @@ -397,7 +397,7 @@ int vp9_get_raw_frame(VP9Decoder *pbi, YV12_BUFFER_CONFIG *sd, #if CONFIG_VP9_POSTPROC if (!cm->show_existing_frame) { - ret = vp9_post_proc_frame(cm, sd, flags); + ret = vp9_post_proc_frame(cm, sd, flags, cm->width); } else { *sd = *cm->frame_to_show; ret = 0; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h index 5f22c00cb86..1c488961a8d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_DECODER_VP9_DECODER_H_ -#define VP9_DECODER_VP9_DECODER_H_ +#ifndef VPX_VP9_DECODER_VP9_DECODER_H_ +#define VPX_VP9_DECODER_VP9_DECODER_H_ #include "./vpx_config.h" @@ -131,4 +131,4 @@ static INLINE void decrease_ref_count(int idx, RefCntBuffer *const frame_bufs, } // extern "C" #endif -#endif // VP9_DECODER_VP9_DECODER_H_ +#endif // VPX_VP9_DECODER_VP9_DECODER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h index 7b0d876016d..a32052fffff 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_DECODER_VP9_DETOKENIZE_H_ -#define VP9_DECODER_VP9_DETOKENIZE_H_ +#ifndef VPX_VP9_DECODER_VP9_DETOKENIZE_H_ +#define VPX_VP9_DECODER_VP9_DETOKENIZE_H_ #include "vpx_dsp/bitreader.h" #include "vp9/decoder/vp9_decoder.h" @@ -27,4 +27,4 @@ int vp9_decode_block_tokens(TileWorkerData *twd, int plane, } // extern "C" #endif -#endif // VP9_DECODER_VP9_DETOKENIZE_H_ +#endif // VPX_VP9_DECODER_VP9_DETOKENIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h index 5a8ec8300c1..b0c7750736b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_DECODER_VP9_DSUBEXP_H_ -#define VP9_DECODER_VP9_DSUBEXP_H_ +#ifndef VPX_VP9_DECODER_VP9_DSUBEXP_H_ +#define VPX_VP9_DECODER_VP9_DSUBEXP_H_ #include "vpx_dsp/bitreader.h" @@ -23,4 +23,4 @@ void vp9_diff_update_prob(vpx_reader *r, vpx_prob *p); } // extern "C" #endif -#endif // VP9_DECODER_VP9_DSUBEXP_H_ +#endif // VPX_VP9_DECODER_VP9_DSUBEXP_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/mips/msa/vp9_fdct_msa.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/mips/msa/vp9_fdct_msa.h index 794bec70b64..fa1af2fc571 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/mips/msa/vp9_fdct_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/mips/msa/vp9_fdct_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_MIPS_MSA_VP9_FDCT_MSA_H_ -#define VP9_ENCODER_MIPS_MSA_VP9_FDCT_MSA_H_ +#ifndef VPX_VP9_ENCODER_MIPS_MSA_VP9_FDCT_MSA_H_ +#define VPX_VP9_ENCODER_MIPS_MSA_VP9_FDCT_MSA_H_ #include "vpx_dsp/mips/fwd_txfm_msa.h" #include "vpx_dsp/mips/txfm_macros_msa.h" @@ -113,4 +113,4 @@ PCKEV_H4_SH(in0_r_m, in0_r_m, in1_r_m, in1_r_m, s2_m, s2_m, s3_m, s3_m, \ out0, out1, out2, out3); \ } -#endif /* VP9_ENCODER_MIPS_MSA_VP9_FDCT_MSA_H_ */ +#endif // VPX_VP9_ENCODER_MIPS_MSA_VP9_FDCT_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h index e508cb44ac2..22a657e035c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h @@ -15,8 +15,8 @@ * for altref frames. Go to alt_ref_aq_private.h for implmentation details. */ -#ifndef VP9_ENCODER_VP9_ALT_REF_AQ_H_ -#define VP9_ENCODER_VP9_ALT_REF_AQ_H_ +#ifndef VPX_VP9_ENCODER_VP9_ALT_REF_AQ_H_ +#define VPX_VP9_ENCODER_VP9_ALT_REF_AQ_H_ #include "vpx/vpx_integer.h" @@ -124,4 +124,4 @@ void vp9_alt_ref_aq_destroy(struct ALT_REF_AQ *const self); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_ALT_REF_AQ_H_ +#endif // VPX_VP9_ENCODER_VP9_ALT_REF_AQ_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h index b1b56561d82..749d3c198ab 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_AQ_360_H_ -#define VP9_ENCODER_VP9_AQ_360_H_ +#ifndef VPX_VP9_ENCODER_VP9_AQ_360_H_ +#define VPX_VP9_ENCODER_VP9_AQ_360_H_ #include "vp9/encoder/vp9_encoder.h" @@ -24,4 +24,4 @@ void vp9_360aq_frame_setup(VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_AQ_VARIANCE_H_ +#endif // VPX_VP9_ENCODER_VP9_AQ_360_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h index a00d34e7025..d3cb34c0132 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_AQ_COMPLEXITY_H_ -#define VP9_ENCODER_VP9_AQ_COMPLEXITY_H_ +#ifndef VPX_VP9_ENCODER_VP9_AQ_COMPLEXITY_H_ +#define VPX_VP9_ENCODER_VP9_AQ_COMPLEXITY_H_ #ifdef __cplusplus extern "C" { @@ -33,4 +33,4 @@ void vp9_setup_in_frame_q_adj(struct VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_AQ_COMPLEXITY_H_ +#endif // VPX_VP9_ENCODER_VP9_AQ_COMPLEXITY_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c index 66e2babcdc3..a2a742493bc 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c @@ -52,9 +52,11 @@ CYCLIC_REFRESH *vp9_cyclic_refresh_alloc(int mi_rows, int mi_cols) { } void vp9_cyclic_refresh_free(CYCLIC_REFRESH *cr) { - vpx_free(cr->map); - vpx_free(cr->last_coded_q_map); - vpx_free(cr); + if (cr != NULL) { + vpx_free(cr->map); + vpx_free(cr->last_coded_q_map); + vpx_free(cr); + } } // Check if this coding block, of size bsize, should be considered for refresh diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h index 43ab6ecb8bc..a4a9f1c98bf 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ -#define VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ +#ifndef VPX_VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ +#define VPX_VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ #include "vpx/vpx_integer.h" #include "vp9/common/vp9_blockd.h" @@ -147,4 +147,4 @@ void vp9_cyclic_refresh_limit_q(const struct VP9_COMP *cpi, int *q); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ +#endif // VPX_VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h index 12848f74c42..a4f872879d7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_AQ_VARIANCE_H_ -#define VP9_ENCODER_VP9_AQ_VARIANCE_H_ +#ifndef VPX_VP9_ENCODER_VP9_AQ_VARIANCE_H_ +#define VPX_VP9_ENCODER_VP9_AQ_VARIANCE_H_ #include "vp9/encoder/vp9_encoder.h" @@ -31,4 +31,4 @@ double vp9_log_block_var(VP9_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bs); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_AQ_VARIANCE_H_ +#endif // VPX_VP9_ENCODER_VP9_AQ_VARIANCE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c index 79fc160c12c..76b7b123db4 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c @@ -217,7 +217,8 @@ static void write_ref_frames(const VP9_COMMON *cm, const MACROBLOCKD *const xd, } if (is_compound) { - vpx_write(w, mi->ref_frame[0] == GOLDEN_FRAME, + const int idx = cm->ref_frame_sign_bias[cm->comp_fixed_ref]; + vpx_write(w, mi->ref_frame[!idx] == cm->comp_var_ref[1], vp9_get_pred_prob_comp_ref_p(cm, xd)); } else { const int bit0 = mi->ref_frame[0] != LAST_FRAME; @@ -909,10 +910,21 @@ int vp9_get_refresh_mask(VP9_COMP *cpi) { (cpi->refresh_golden_frame << cpi->alt_fb_idx); } else { int arf_idx = cpi->alt_fb_idx; - if ((cpi->oxcf.pass == 2) && cpi->multi_arf_allowed) { - const GF_GROUP *const gf_group = &cpi->twopass.gf_group; - arf_idx = gf_group->arf_update_idx[gf_group->index]; + GF_GROUP *const gf_group = &cpi->twopass.gf_group; + + if (cpi->multi_layer_arf) { + for (arf_idx = 0; arf_idx < REF_FRAMES; ++arf_idx) { + if (arf_idx != cpi->alt_fb_idx && arf_idx != cpi->lst_fb_idx && + arf_idx != cpi->gld_fb_idx) { + int idx; + for (idx = 0; idx < gf_group->stack_size; ++idx) + if (arf_idx == gf_group->arf_index_stack[idx]) break; + if (idx == gf_group->stack_size) break; + } + } } + cpi->twopass.gf_group.top_arf_idx = arf_idx; + if (cpi->use_svc && cpi->svc.use_set_ref_frame_config && cpi->svc.temporal_layering_mode == VP9E_TEMPORAL_LAYERING_MODE_BYPASS) return cpi->svc.update_buffer_slot[cpi->svc.spatial_layer_id]; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h index b296560b922..208651dc227 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_BITSTREAM_H_ -#define VP9_ENCODER_VP9_BITSTREAM_H_ +#ifndef VPX_VP9_ENCODER_VP9_BITSTREAM_H_ +#define VPX_VP9_ENCODER_VP9_BITSTREAM_H_ #ifdef __cplusplus extern "C" { @@ -38,12 +38,12 @@ void vp9_bitstream_encode_tiles_buffer_dealloc(VP9_COMP *const cpi); void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, size_t *size); static INLINE int vp9_preserve_existing_gf(VP9_COMP *cpi) { - return !cpi->multi_arf_allowed && cpi->refresh_golden_frame && - cpi->rc.is_src_frame_alt_ref && !cpi->use_svc; + return cpi->refresh_golden_frame && cpi->rc.is_src_frame_alt_ref && + !cpi->use_svc; } #ifdef __cplusplus } // extern "C" #endif -#endif // VP9_ENCODER_VP9_BITSTREAM_H_ +#endif // VPX_VP9_ENCODER_VP9_BITSTREAM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h index 31cf2b5a8ae..06130584f0f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_BLOCK_H_ -#define VP9_ENCODER_VP9_BLOCK_H_ +#ifndef VPX_VP9_ENCODER_VP9_BLOCK_H_ +#define VPX_VP9_ENCODER_VP9_BLOCK_H_ #include "vpx_util/vpx_thread.h" @@ -208,10 +208,13 @@ struct macroblock { void (*highbd_inv_txfm_add)(const tran_low_t *input, uint16_t *dest, int stride, int eob, int bd); #endif +#if CONFIG_ML_VAR_PARTITION + DECLARE_ALIGNED(16, uint8_t, est_pred[64 * 64]); +#endif // CONFIG_ML_VAR_PARTITION }; #ifdef __cplusplus } // extern "C" #endif -#endif // VP9_ENCODER_VP9_BLOCK_H_ +#endif // VPX_VP9_ENCODER_VP9_BLOCK_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c index 52a81afb58f..b74b9027cab 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c @@ -139,17 +139,22 @@ void vp9_setup_pc_tree(VP9_COMMON *cm, ThreadData *td) { } void vp9_free_pc_tree(ThreadData *td) { - const int tree_nodes = 64 + 16 + 4 + 1; int i; - // Set up all 4x4 mode contexts - for (i = 0; i < 64; ++i) free_mode_context(&td->leaf_tree[i]); + if (td == NULL) return; - // Sets up all the leaf nodes in the tree. - for (i = 0; i < tree_nodes; ++i) free_tree_contexts(&td->pc_tree[i]); + if (td->leaf_tree != NULL) { + // Set up all 4x4 mode contexts + for (i = 0; i < 64; ++i) free_mode_context(&td->leaf_tree[i]); + vpx_free(td->leaf_tree); + td->leaf_tree = NULL; + } - vpx_free(td->pc_tree); - td->pc_tree = NULL; - vpx_free(td->leaf_tree); - td->leaf_tree = NULL; + if (td->pc_tree != NULL) { + const int tree_nodes = 64 + 16 + 4 + 1; + // Sets up all the leaf nodes in the tree. + for (i = 0; i < tree_nodes; ++i) free_tree_contexts(&td->pc_tree[i]); + vpx_free(td->pc_tree); + td->pc_tree = NULL; + } } diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h index 2bcc26e94bd..d2cdb101054 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_CONTEXT_TREE_H_ -#define VP9_ENCODER_VP9_CONTEXT_TREE_H_ +#ifndef VPX_VP9_ENCODER_VP9_CONTEXT_TREE_H_ +#define VPX_VP9_ENCODER_VP9_CONTEXT_TREE_H_ #include "vp9/common/vp9_blockd.h" #include "vp9/encoder/vp9_block.h" @@ -56,6 +56,7 @@ typedef struct { // scope of refactoring. int rate; int64_t dist; + int64_t rdcost; #if CONFIG_VP9_TEMPORAL_DENOISING unsigned int newmv_sse; @@ -99,4 +100,4 @@ void vp9_free_pc_tree(struct ThreadData *td); } // extern "C" #endif -#endif /* VP9_ENCODER_VP9_CONTEXT_TREE_H_ */ +#endif // VPX_VP9_ENCODER_VP9_CONTEXT_TREE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h index 70a1a2e0e93..638d72a9161 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_COST_H_ -#define VP9_ENCODER_VP9_COST_H_ +#ifndef VPX_VP9_ENCODER_VP9_COST_H_ +#define VPX_VP9_ENCODER_VP9_COST_H_ #include "vpx_dsp/prob.h" #include "vpx/vpx_integer.h" @@ -55,4 +55,4 @@ void vp9_cost_tokens_skip(int *costs, const vpx_prob *probs, vpx_tree tree); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_COST_H_ +#endif // VPX_VP9_ENCODER_VP9_COST_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c index ab91971a300..8c039b2cb9d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c @@ -263,6 +263,14 @@ static VP9_DENOISER_DECISION perform_motion_compensation( denoise_layer_idx = num_spatial_layers - spatial_layer - 1; } + // Force copy (no denoise, copy source in denoised buffer) if + // running_avg_y[frame] is NULL. + if (denoiser->running_avg_y[frame].buffer_alloc == NULL) { + // Restore everything to its original state + *mi = saved_mi; + return COPY_BLOCK; + } + if (ctx->newmv_sse > sse_thresh(bs, increase_denoising)) { // Restore everything to its original state *mi = saved_mi; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h index d2129ecf44f..2362c4f50fb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_DENOISER_H_ -#define VP9_ENCODER_DENOISER_H_ +#ifndef VPX_VP9_ENCODER_VP9_DENOISER_H_ +#define VPX_VP9_ENCODER_VP9_DENOISER_H_ #include "vp9/encoder/vp9_block.h" #include "vp9/encoder/vp9_skin_detection.h" @@ -126,4 +126,4 @@ void vp9_denoiser_update_ref_frame(struct VP9_COMP *const cpi); } // extern "C" #endif -#endif // VP9_ENCODER_DENOISER_H_ +#endif // VPX_VP9_ENCODER_VP9_DENOISER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c index 1b559fad34a..ad30951afa3 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c @@ -43,6 +43,7 @@ #include "vp9/encoder/vp9_ethread.h" #include "vp9/encoder/vp9_extend.h" #include "vp9/encoder/vp9_multi_thread.h" +#include "vp9/encoder/vp9_partition_models.h" #include "vp9/encoder/vp9_pickmode.h" #include "vp9/encoder/vp9_rd.h" #include "vp9/encoder/vp9_rdopt.h" @@ -2026,8 +2027,10 @@ static void update_stats(VP9_COMMON *cm, ThreadData *td) { [has_second_ref(mi)]++; if (has_second_ref(mi)) { - counts->comp_ref[vp9_get_pred_context_comp_ref_p(cm, xd)] - [ref0 == GOLDEN_FRAME]++; + const int idx = cm->ref_frame_sign_bias[cm->comp_fixed_ref]; + const int ctx = vp9_get_pred_context_comp_ref_p(cm, xd); + const int bit = mi->ref_frame[!idx] == cm->comp_var_ref[1]; + counts->comp_ref[ctx][bit]++; } else { counts->single_ref[vp9_get_pred_context_single_ref_p1(xd)][0] [ref0 != LAST_FRAME]++; @@ -3039,22 +3042,6 @@ static INLINE int get_motion_inconsistency(MOTION_DIRECTION this_mv, } #endif -#define NN_MAX_HIDDEN_LAYERS 10 -#define NN_MAX_NODES_PER_LAYER 128 - -// Neural net model config. -typedef struct { - int num_inputs; // Number of input nodes, i.e. features. - int num_outputs; // Number of output nodes. - int num_hidden_layers; // Number of hidden layers, maximum 10. - // Number of nodes for each hidden layer. - int num_hidden_nodes[NN_MAX_HIDDEN_LAYERS]; - // Weight parameters, indexed by layer. - const float *weights[NN_MAX_HIDDEN_LAYERS + 1]; - // Bias parameters, indexed by layer. - const float *bias[NN_MAX_HIDDEN_LAYERS + 1]; -} NN_CONFIG; - // Calculate prediction based on the given input features and neural net config. // Assume there are no more than NN_MAX_NODES_PER_LAYER nodes in each hidden // layer. @@ -3102,164 +3089,7 @@ static void nn_predict(const float *features, const NN_CONFIG *nn_config, } } -static const float partition_nn_weights_64x64_layer0[7 * 8] = { - -3.571348f, 0.014835f, -3.255393f, -0.098090f, -0.013120f, 0.000221f, - 0.056273f, 0.190179f, -0.268130f, -1.828242f, -0.010655f, 0.937244f, - -0.435120f, 0.512125f, 1.610679f, 0.190816f, -0.799075f, -0.377348f, - -0.144232f, 0.614383f, -0.980388f, 1.754150f, -0.185603f, -0.061854f, - -0.807172f, 1.240177f, 1.419531f, -0.438544f, -5.980774f, 0.139045f, - -0.032359f, -0.068887f, -1.237918f, 0.115706f, 0.003164f, 2.924212f, - 1.246838f, -0.035833f, 0.810011f, -0.805894f, 0.010966f, 0.076463f, - -4.226380f, -2.437764f, -0.010619f, -0.020935f, -0.451494f, 0.300079f, - -0.168961f, -3.326450f, -2.731094f, 0.002518f, 0.018840f, -1.656815f, - 0.068039f, 0.010586f, -}; - -static const float partition_nn_bias_64x64_layer0[8] = { - -3.469882f, 0.683989f, 0.194010f, 0.313782f, - -3.153335f, 2.245849f, -1.946190f, -3.740020f, -}; - -static const float partition_nn_weights_64x64_layer1[8] = { - -8.058566f, 0.108306f, -0.280620f, -0.818823f, - -6.445117f, 0.865364f, -1.127127f, -8.808660f, -}; - -static const float partition_nn_bias_64x64_layer1[1] = { - 6.46909416f, -}; - -static const NN_CONFIG partition_nnconfig_64x64 = { - 7, // num_inputs - 1, // num_outputs - 1, // num_hidden_layers - { - 8, - }, // num_hidden_nodes - { - partition_nn_weights_64x64_layer0, - partition_nn_weights_64x64_layer1, - }, - { - partition_nn_bias_64x64_layer0, - partition_nn_bias_64x64_layer1, - }, -}; - -static const float partition_nn_weights_32x32_layer0[7 * 8] = { - -0.295437f, -4.002648f, -0.205399f, -0.060919f, 0.708037f, 0.027221f, - -0.039137f, -0.907724f, -3.151662f, 0.007106f, 0.018726f, -0.534928f, - 0.022744f, 0.000159f, -1.717189f, -3.229031f, -0.027311f, 0.269863f, - -0.400747f, -0.394366f, -0.108878f, 0.603027f, 0.455369f, -0.197170f, - 1.241746f, -1.347820f, -0.575636f, -0.462879f, -2.296426f, 0.196696f, - -0.138347f, -0.030754f, -0.200774f, 0.453795f, 0.055625f, -3.163116f, - -0.091003f, -0.027028f, -0.042984f, -0.605185f, 0.143240f, -0.036439f, - -0.801228f, 0.313409f, -0.159942f, 0.031267f, 0.886454f, -1.531644f, - -0.089655f, 0.037683f, -0.163441f, -0.130454f, -0.058344f, 0.060011f, - 0.275387f, 1.552226f, -}; - -static const float partition_nn_bias_32x32_layer0[8] = { - -0.838372f, -2.609089f, -0.055763f, 1.329485f, - -1.297638f, -2.636622f, -0.826909f, 1.012644f, -}; - -static const float partition_nn_weights_32x32_layer1[8] = { - -1.792632f, -7.322353f, -0.683386f, 0.676564f, - -1.488118f, -7.527719f, 1.240163f, 0.614309f, -}; - -static const float partition_nn_bias_32x32_layer1[1] = { - 4.97422546f, -}; - -static const NN_CONFIG partition_nnconfig_32x32 = { - 7, // num_inputs - 1, // num_outputs - 1, // num_hidden_layers - { - 8, - }, // num_hidden_nodes - { - partition_nn_weights_32x32_layer0, - partition_nn_weights_32x32_layer1, - }, - { - partition_nn_bias_32x32_layer0, - partition_nn_bias_32x32_layer1, - }, -}; - -static const float partition_nn_weights_16x16_layer0[7 * 8] = { - -1.717673f, -4.718130f, -0.125725f, -0.183427f, -0.511764f, 0.035328f, - 0.130891f, -3.096753f, 0.174968f, -0.188769f, -0.640796f, 1.305661f, - 1.700638f, -0.073806f, -4.006781f, -1.630999f, -0.064863f, -0.086410f, - -0.148617f, 0.172733f, -0.018619f, 2.152595f, 0.778405f, -0.156455f, - 0.612995f, -0.467878f, 0.152022f, -0.236183f, 0.339635f, -0.087119f, - -3.196610f, -1.080401f, -0.637704f, -0.059974f, 1.706298f, -0.793705f, - -6.399260f, 0.010624f, -0.064199f, -0.650621f, 0.338087f, -0.001531f, - 1.023655f, -3.700272f, -0.055281f, -0.386884f, 0.375504f, -0.898678f, - 0.281156f, -0.314611f, 0.863354f, -0.040582f, -0.145019f, 0.029329f, - -2.197880f, -0.108733f, -}; - -static const float partition_nn_bias_16x16_layer0[8] = { - 0.411516f, -2.143737f, -3.693192f, 2.123142f, - -1.356910f, -3.561016f, -0.765045f, -2.417082f, -}; - -static const float partition_nn_weights_16x16_layer1[8] = { - -0.619755f, -2.202391f, -4.337171f, 0.611319f, - 0.377677f, -4.998723f, -1.052235f, 1.949922f, -}; - -static const float partition_nn_bias_16x16_layer1[1] = { - 3.20981717f, -}; - -static const NN_CONFIG partition_nnconfig_16x16 = { - 7, // num_inputs - 1, // num_outputs - 1, // num_hidden_layers - { - 8, - }, // num_hidden_nodes - { - partition_nn_weights_16x16_layer0, - partition_nn_weights_16x16_layer1, - }, - { - partition_nn_bias_16x16_layer0, - partition_nn_bias_16x16_layer1, - }, -}; - -static const float partition_feature_mean[24] = { - 303501.697372f, 3042630.372158f, 24.694696f, 1.392182f, - 689.413511f, 162.027012f, 1.478213f, 0.0, - 135382.260230f, 912738.513263f, 28.845217f, 1.515230f, - 544.158492f, 131.807995f, 1.436863f, 0.0f, - 43682.377587f, 208131.711766f, 28.084737f, 1.356677f, - 138.254122f, 119.522553f, 1.252322f, 0.0f, -}; - -static const float partition_feature_std[24] = { - 673689.212982f, 5996652.516628f, 0.024449f, 1.989792f, - 985.880847f, 0.014638f, 2.001898f, 0.0f, - 208798.775332f, 1812548.443284f, 0.018693f, 1.838009f, - 396.986910f, 0.015657f, 1.332541f, 0.0f, - 55888.847031f, 448587.962714f, 0.017900f, 1.904776f, - 98.652832f, 0.016598f, 1.320992f, 0.0f, -}; - -// Error tolerance: 0.01%-0.0.05%-0.1% -static const float partition_linear_weights[24] = { - 0.111736f, 0.289977f, 0.042219f, 0.204765f, 0.120410f, -0.143863f, - 0.282376f, 0.847811f, 0.637161f, 0.131570f, 0.018636f, 0.202134f, - 0.112797f, 0.028162f, 0.182450f, 1.124367f, 0.386133f, 0.083700f, - 0.050028f, 0.150873f, 0.061119f, 0.109318f, 0.127255f, 0.625211f, -}; - +#define FEATURES 7 // Machine-learning based partition search early termination. // Return 1 to skip split and rect partitions. static int ml_pruning_partition(VP9_COMMON *const cm, MACROBLOCKD *const xd, @@ -3280,7 +3110,7 @@ static int ml_pruning_partition(VP9_COMMON *const cm, MACROBLOCKD *const xd, const NN_CONFIG *nn_config = NULL; const float *mean, *sd, *linear_weights; float nn_score, linear_score; - float features[7]; + float features[FEATURES]; assert(b_width_log2_lookup[bsize] == b_height_log2_lookup[bsize]); vpx_clear_system_state(); @@ -3288,15 +3118,15 @@ static int ml_pruning_partition(VP9_COMMON *const cm, MACROBLOCKD *const xd, switch (bsize) { case BLOCK_64X64: offset = 0; - nn_config = &partition_nnconfig_64x64; + nn_config = &vp9_partition_nnconfig_64x64; break; case BLOCK_32X32: offset = 8; - nn_config = &partition_nnconfig_32x32; + nn_config = &vp9_partition_nnconfig_32x32; break; case BLOCK_16X16: offset = 16; - nn_config = &partition_nnconfig_16x16; + nn_config = &vp9_partition_nnconfig_16x16; break; default: assert(0 && "Unexpected block size."); return 0; } @@ -3325,8 +3155,8 @@ static int ml_pruning_partition(VP9_COMMON *const cm, MACROBLOCKD *const xd, last_par = 1; } - mean = &partition_feature_mean[offset]; - sd = &partition_feature_std[offset]; + mean = &vp9_partition_feature_mean[offset]; + sd = &vp9_partition_feature_std[offset]; features[0] = ((float)ctx->rate - mean[0]) / sd[0]; features[1] = ((float)ctx->dist - mean[1]) / sd[1]; features[2] = ((float)mag_mv / 2 - mean[2]) * sd[2]; @@ -3336,9 +3166,10 @@ static int ml_pruning_partition(VP9_COMMON *const cm, MACROBLOCKD *const xd, features[6] = ((float)last_par - mean[6]) * sd[6]; // Predict using linear model. - linear_weights = &partition_linear_weights[offset]; - linear_score = linear_weights[7]; - for (i = 0; i < 7; ++i) linear_score += linear_weights[i] * features[i]; + linear_weights = &vp9_partition_linear_weights[offset]; + linear_score = linear_weights[FEATURES]; + for (i = 0; i < FEATURES; ++i) + linear_score += linear_weights[i] * features[i]; if (linear_score > 0.1f) return 0; // Predict using neural net model. @@ -3348,210 +3179,9 @@ static int ml_pruning_partition(VP9_COMMON *const cm, MACROBLOCKD *const xd, if (nn_score < -0.0f && linear_score < 0.1f) return 1; return 0; } +#undef FEATURES #define FEATURES 4 -#define Q_CTX 3 -#define RESOLUTION_CTX 2 -static const float partition_breakout_weights_64[RESOLUTION_CTX][Q_CTX] - [FEATURES + 1] = { - { - { - -0.016673f, - -0.001025f, - -0.000032f, - 0.000833f, - 1.94261885f - 2.1f, - }, - { - -0.160867f, - -0.002101f, - 0.000011f, - 0.002448f, - 1.65738142f - 2.5f, - }, - { - -0.628934f, - -0.011459f, - -0.000009f, - 0.013833f, - 1.47982645f - 1.6f, - }, - }, - { - { - -0.064309f, - -0.006121f, - 0.000232f, - 0.005778f, - 0.7989465f - 5.0f, - }, - { - -0.314957f, - -0.009346f, - -0.000225f, - 0.010072f, - 2.80695581f - 5.5f, - }, - { - -0.635535f, - -0.015135f, - 0.000091f, - 0.015247f, - 2.90381241f - 5.0f, - }, - }, - }; - -static const float partition_breakout_weights_32[RESOLUTION_CTX][Q_CTX] - [FEATURES + 1] = { - { - { - -0.010554f, - -0.003081f, - -0.000134f, - 0.004491f, - 1.68445992f - 3.5f, - }, - { - -0.051489f, - -0.007609f, - 0.000016f, - 0.009792f, - 1.28089404f - 2.5f, - }, - { - -0.163097f, - -0.013081f, - 0.000022f, - 0.019006f, - 1.36129403f - 3.2f, - }, - }, - { - { - -0.024629f, - -0.006492f, - -0.000254f, - 0.004895f, - 1.27919173f - 4.5f, - }, - { - -0.083936f, - -0.009827f, - -0.000200f, - 0.010399f, - 2.73731065f - 4.5f, - }, - { - -0.279052f, - -0.013334f, - 0.000289f, - 0.023203f, - 2.43595719f - 3.5f, - }, - }, - }; - -static const float partition_breakout_weights_16[RESOLUTION_CTX][Q_CTX] - [FEATURES + 1] = { - { - { - -0.013154f, - -0.002404f, - -0.000977f, - 0.008450f, - 2.57404566f - 5.5f, - }, - { - -0.019146f, - -0.004018f, - 0.000064f, - 0.008187f, - 2.15043926f - 2.5f, - }, - { - -0.075755f, - -0.010858f, - 0.000030f, - 0.024505f, - 2.06848121f - 2.5f, - }, - }, - { - { - -0.007636f, - -0.002751f, - -0.000682f, - 0.005968f, - 0.19225763f - 4.5f, - }, - { - -0.047306f, - -0.009113f, - -0.000518f, - 0.016007f, - 2.61068869f - 4.0f, - }, - { - -0.069336f, - -0.010448f, - -0.001120f, - 0.023083f, - 1.47591054f - 5.5f, - }, - }, - }; - -static const float partition_breakout_weights_8[RESOLUTION_CTX][Q_CTX] - [FEATURES + 1] = { - { - { - -0.011807f, - -0.009873f, - -0.000931f, - 0.034768f, - 1.32254851f - 2.0f, - }, - { - -0.003861f, - -0.002701f, - 0.000100f, - 0.013876f, - 1.96755111f - 1.5f, - }, - { - -0.013522f, - -0.008677f, - -0.000562f, - 0.034468f, - 1.53440356f - 1.5f, - }, - }, - { - { - -0.003221f, - -0.002125f, - 0.000993f, - 0.012768f, - 0.03541421f - 2.0f, - }, - { - -0.006069f, - -0.007335f, - 0.000229f, - 0.026104f, - 0.17135315f - 1.5f, - }, - { - -0.039894f, - -0.011419f, - 0.000070f, - 0.061817f, - 0.6739977f - 1.5f, - }, - }, - }; - // ML-based partition search breakout. static int ml_predict_breakout(const VP9_COMP *const cpi, BLOCK_SIZE bsize, const MACROBLOCK *const x, @@ -3568,16 +3198,16 @@ static int ml_predict_breakout(const VP9_COMP *const cpi, BLOCK_SIZE bsize, switch (bsize) { case BLOCK_64X64: - linear_weights = partition_breakout_weights_64[resolution_ctx][q_ctx]; + linear_weights = vp9_partition_breakout_weights_64[resolution_ctx][q_ctx]; break; case BLOCK_32X32: - linear_weights = partition_breakout_weights_32[resolution_ctx][q_ctx]; + linear_weights = vp9_partition_breakout_weights_32[resolution_ctx][q_ctx]; break; case BLOCK_16X16: - linear_weights = partition_breakout_weights_16[resolution_ctx][q_ctx]; + linear_weights = vp9_partition_breakout_weights_16[resolution_ctx][q_ctx]; break; case BLOCK_8X8: - linear_weights = partition_breakout_weights_8[resolution_ctx][q_ctx]; + linear_weights = vp9_partition_breakout_weights_8[resolution_ctx][q_ctx]; break; default: assert(0 && "Unexpected block size."); return 0; } @@ -3619,8 +3249,283 @@ static int ml_predict_breakout(const VP9_COMP *const cpi, BLOCK_SIZE bsize, return linear_score >= cpi->sf.ml_partition_search_breakout_thresh[q_ctx]; } #undef FEATURES -#undef Q_CTX -#undef RESOLUTION_CTX + +#define FEATURES 17 +#define LABELS 4 +static void ml_prune_rect_partition(VP9_COMP *const cpi, MACROBLOCK *const x, + BLOCK_SIZE bsize, + const PC_TREE *const pc_tree, + int *allow_horz, int *allow_vert, + int64_t ref_rd, int mi_row, int mi_col) { + const NN_CONFIG *nn_config = NULL; + float score[LABELS] = { + 0.0f, + }; + int thresh = -1; + int i; + + if (ref_rd <= 0 || ref_rd > 1000000000) return; + + switch (bsize) { + case BLOCK_8X8: break; + case BLOCK_16X16: + nn_config = &vp9_rect_part_nnconfig_16; + thresh = cpi->sf.ml_prune_rect_partition_threhold[1]; + break; + case BLOCK_32X32: + nn_config = &vp9_rect_part_nnconfig_32; + thresh = cpi->sf.ml_prune_rect_partition_threhold[2]; + break; + case BLOCK_64X64: + nn_config = &vp9_rect_part_nnconfig_64; + thresh = cpi->sf.ml_prune_rect_partition_threhold[3]; + break; + default: assert(0 && "Unexpected block size."); return; + } + if (!nn_config || thresh < 0) return; + + // Feature extraction and model score calculation. + { + const int64_t none_rdcost = pc_tree->none.rdcost; + const VP9_COMMON *const cm = &cpi->common; + const int dc_q = vp9_dc_quant(cm->base_qindex, 0, cm->bit_depth); + int feature_index = 0; + unsigned int block_var = 0; + unsigned int sub_block_var[4] = { 0 }; + float features[FEATURES]; + + features[feature_index++] = + (float)(pc_tree->partitioning == PARTITION_NONE); + features[feature_index++] = logf((float)(dc_q * dc_q) / 256.0f + 1.0f); + + // Calculate source pixel variance. + { + struct buf_2d buf; + const BLOCK_SIZE subsize = get_subsize(bsize, PARTITION_SPLIT); + const int bs = 4 * num_4x4_blocks_wide_lookup[bsize]; + const MACROBLOCKD *const xd = &x->e_mbd; + vp9_setup_src_planes(x, cpi->Source, mi_row, mi_col); + + (void)xd; +#if CONFIG_VP9_HIGHBITDEPTH + if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { + block_var = vp9_high_get_sby_perpixel_variance(cpi, &x->plane[0].src, + bsize, xd->bd); + } else { + block_var = vp9_get_sby_perpixel_variance(cpi, &x->plane[0].src, bsize); + } +#else + block_var = vp9_get_sby_perpixel_variance(cpi, &x->plane[0].src, bsize); +#endif // CONFIG_VP9_HIGHBITDEPTH + + buf.stride = x->plane[0].src.stride; + for (i = 0; i < 4; ++i) { + const int x_idx = (i & 1) * bs / 2; + const int y_idx = (i >> 1) * bs / 2; + buf.buf = x->plane[0].src.buf + x_idx + y_idx * buf.stride; +#if CONFIG_VP9_HIGHBITDEPTH + if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { + sub_block_var[i] = + vp9_high_get_sby_perpixel_variance(cpi, &buf, subsize, xd->bd); + } else { + sub_block_var[i] = vp9_get_sby_perpixel_variance(cpi, &buf, subsize); + } +#else + sub_block_var[i] = vp9_get_sby_perpixel_variance(cpi, &buf, subsize); +#endif // CONFIG_VP9_HIGHBITDEPTH + } + } + + features[feature_index++] = logf((float)block_var + 1.0f); + features[feature_index++] = logf((float)ref_rd + 1.0f); + features[feature_index++] = (none_rdcost > 0 && none_rdcost < 1000000000) + ? (float)pc_tree->none.skippable + : 0.0f; + + for (i = 0; i < 4; ++i) { + const int64_t this_rd = pc_tree->split[i]->none.rdcost; + const int rd_valid = this_rd > 0 && this_rd < 1000000000; + // Ratio between sub-block RD and whole block RD. + features[feature_index++] = + rd_valid ? ((float)this_rd / (float)ref_rd) : 1.0f; + // Sub-block skippable. + features[feature_index++] = + rd_valid ? ((float)pc_tree->split[i]->none.skippable) : 0.0f; + } + + { + const float denom = (float)(block_var + 1); + const float low_b = 0.1f; + const float high_b = 10.0f; + for (i = 0; i < 4; ++i) { + // Ratio between the quarter sub-block variance and the + // whole-block variance. + float var_ratio = (float)(sub_block_var[i] + 1) / denom; + if (var_ratio < low_b) var_ratio = low_b; + if (var_ratio > high_b) var_ratio = high_b; + features[feature_index++] = var_ratio; + } + } + assert(feature_index == FEATURES); + nn_predict(features, nn_config, score); + } + + // Make decisions based on the model score. + { + int max_score = -1000; + int horz = 0, vert = 0; + int int_score[LABELS]; + for (i = 0; i < LABELS; ++i) { + int_score[i] = (int)(100 * score[i]); + max_score = VPXMAX(int_score[i], max_score); + } + thresh = max_score - thresh; + for (i = 0; i < LABELS; ++i) { + if (int_score[i] >= thresh) { + if ((i >> 0) & 1) horz = 1; + if ((i >> 1) & 1) vert = 1; + } + } + *allow_horz = *allow_horz && horz; + *allow_vert = *allow_vert && vert; + } +} +#undef FEATURES +#undef LABELS + +// Use a neural net model to prune partition-none and partition-split search. +// The model uses prediction residue variance and quantization step size as +// input features. +#define FEATURES 6 +static void ml_predict_var_rd_paritioning(VP9_COMP *cpi, MACROBLOCK *x, + BLOCK_SIZE bsize, int mi_row, + int mi_col, int *none, int *split) { + VP9_COMMON *const cm = &cpi->common; + MACROBLOCKD *xd = &x->e_mbd; + MODE_INFO *mi = xd->mi[0]; + const NN_CONFIG *nn_config = NULL; + DECLARE_ALIGNED(16, uint8_t, pred_buf[64 * 64]); + int i; + float thresh_low = -1.0f; + float thresh_high = 0.0f; + + switch (bsize) { + case BLOCK_64X64: + nn_config = &vp9_var_rd_part_nnconfig_64; + thresh_low = -3.0f; + thresh_high = 3.0f; + break; + case BLOCK_32X32: + nn_config = &vp9_var_rd_part_nnconfig_32; + thresh_low = -3.0; + thresh_high = 3.0f; + break; + case BLOCK_16X16: + nn_config = &vp9_var_rd_part_nnconfig_16; + thresh_low = -4.0; + thresh_high = 4.0f; + break; + case BLOCK_8X8: + nn_config = &vp9_var_rd_part_nnconfig_8; + thresh_low = -2.0; + thresh_high = 2.0f; + break; + default: assert(0 && "Unexpected block size."); return; + } + + if (!nn_config) return; + + mi->ref_frame[1] = NONE; + mi->sb_type = bsize; + // Do a simple single motion search to find a prediction for current block. + // The variance of the residue will be used as input features. + { + const MV_REFERENCE_FRAME ref = + cpi->rc.is_src_frame_alt_ref ? ALTREF_FRAME : LAST_FRAME; + YV12_BUFFER_CONFIG *yv12 = get_ref_frame_buffer(cpi, ref); + MV ref_mv = { 0, 0 }; + MV ref_mv_full = { 0, 0 }; + const int step_param = 1; + const MvLimits tmp_mv_limits = x->mv_limits; + const SEARCH_METHODS search_method = NSTEP; + const int sadpb = x->sadperbit16; + MV best_mv = { 0, 0 }; + int cost_list[5]; + + assert(yv12 != NULL); + if (!yv12) return; + vp9_setup_pre_planes(xd, 0, yv12, mi_row, mi_col, + &cm->frame_refs[ref - 1].sf); + mi->ref_frame[0] = ref; + vp9_set_mv_search_range(&x->mv_limits, &ref_mv); + vp9_full_pixel_search(cpi, x, bsize, &ref_mv_full, step_param, + search_method, sadpb, cond_cost_list(cpi, cost_list), + &ref_mv, &best_mv, 0, 0); + best_mv.row *= 8; + best_mv.col *= 8; + x->mv_limits = tmp_mv_limits; + mi->mv[0].as_mv = best_mv; + + set_ref_ptrs(cm, xd, mi->ref_frame[0], mi->ref_frame[1]); + xd->plane[0].dst.buf = pred_buf; + xd->plane[0].dst.stride = 64; + vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize); + } + + vpx_clear_system_state(); + + { + float features[FEATURES] = { 0.0f }; + const int dc_q = vp9_dc_quant(cm->base_qindex, 0, cm->bit_depth); + int feature_idx = 0; + float score; + + // Generate model input features. + features[feature_idx++] = logf((float)(dc_q * dc_q) / 256.0f + 1.0f); + vp9_setup_src_planes(x, cpi->Source, mi_row, mi_col); + // Get the variance of the residue as input features. + { + const int bs = 4 * num_4x4_blocks_wide_lookup[bsize]; + const BLOCK_SIZE subsize = get_subsize(bsize, PARTITION_SPLIT); + const uint8_t *pred = pred_buf; + const uint8_t *src = x->plane[0].src.buf; + const int src_stride = x->plane[0].src.stride; + const int pred_stride = 64; + unsigned int sse; + // Variance of whole block. + const unsigned int var = + cpi->fn_ptr[bsize].vf(src, src_stride, pred, pred_stride, &sse); + const float factor = (var == 0) ? 1.0f : (1.0f / (float)var); + + features[feature_idx++] = logf((float)var + 1.0f); + for (i = 0; i < 4; ++i) { + const int x_idx = (i & 1) * bs / 2; + const int y_idx = (i >> 1) * bs / 2; + const int src_offset = y_idx * src_stride + x_idx; + const int pred_offset = y_idx * pred_stride + x_idx; + // Variance of quarter block. + const unsigned int sub_var = + cpi->fn_ptr[subsize].vf(src + src_offset, src_stride, + pred + pred_offset, pred_stride, &sse); + const float var_ratio = (var == 0) ? 1.0f : factor * (float)sub_var; + features[feature_idx++] = var_ratio; + } + } + assert(feature_idx == FEATURES); + + // Feed the features into the model to get the confidence score. + nn_predict(features, nn_config, &score); + + // Higher score means that the model has higher confidence that the split + // partition is better than the non-split partition. So if the score is + // high enough, we skip the none-split partition search; if the score is + // low enough, we skip the split partition search. + if (score > thresh_high) *none = 0; + if (score < thresh_low) *split = 0; + } +} +#undef FEATURES +#undef LABELS int get_rdmult_delta(VP9_COMP *cpi, BLOCK_SIZE bsize, int mi_row, int mi_col, int orig_rdmult) { @@ -3687,7 +3592,7 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, ENTROPY_CONTEXT l[16 * MAX_MB_PLANE], a[16 * MAX_MB_PLANE]; PARTITION_CONTEXT sl[8], sa[8]; TOKENEXTRA *tp_orig = *tp; - PICK_MODE_CONTEXT *ctx = &pc_tree->none; + PICK_MODE_CONTEXT *const ctx = &pc_tree->none; int i; const int pl = partition_plane_context(xd, mi_row, mi_col, bsize); BLOCK_SIZE subsize; @@ -3777,7 +3682,8 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, } if (cpi->sf.use_square_partition_only && - bsize > cpi->sf.use_square_only_threshold) { + (bsize > cpi->sf.use_square_only_thresh_high || + bsize < cpi->sf.use_square_only_thresh_low)) { if (cpi->use_svc) { if (!vp9_active_h_edge(cpi, mi_row, mi_step) || x->e_mbd.lossless) partition_horz_allowed &= force_horz_split; @@ -3850,10 +3756,28 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, } #endif + pc_tree->partitioning = PARTITION_NONE; + + if (cpi->sf.ml_var_partition_pruning) { + int do_ml_var_partition_pruning = + !frame_is_intra_only(cm) && partition_none_allowed && do_split && + mi_row + num_8x8_blocks_high_lookup[bsize] <= cm->mi_rows && + mi_col + num_8x8_blocks_wide_lookup[bsize] <= cm->mi_cols; +#if CONFIG_VP9_HIGHBITDEPTH + if (x->e_mbd.cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) + do_ml_var_partition_pruning = 0; +#endif // CONFIG_VP9_HIGHBITDEPTH + if (do_ml_var_partition_pruning) { + ml_predict_var_rd_paritioning(cpi, x, bsize, mi_row, mi_col, + &partition_none_allowed, &do_split); + } + } + // PARTITION_NONE if (partition_none_allowed) { rd_pick_sb_modes(cpi, tile_data, x, mi_row, mi_col, &this_rdc, bsize, ctx, best_rdc.rdcost); + ctx->rdcost = this_rdc.rdcost; if (this_rdc.rate != INT_MAX) { if (cpi->sf.prune_ref_frame_for_rect_partitions) { const int ref1 = ctx->mic.ref_frame[0]; @@ -3963,6 +3887,9 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, } } restore_context(x, mi_row, mi_col, a, l, sa, sl, bsize); + } else { + vp9_zero(ctx->pred_mv); + ctx->mic.interp_filter = EIGHTTAP; } // store estimated motion vector @@ -3979,6 +3906,10 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, // PARTITION_SPLIT // TODO(jingning): use the motion vectors given by the above search as // the starting point of motion search in the following partition type check. + pc_tree->split[0]->none.rdcost = 0; + pc_tree->split[1]->none.rdcost = 0; + pc_tree->split[2]->none.rdcost = 0; + pc_tree->split[3]->none.rdcost = 0; if (do_split || must_split) { subsize = get_subsize(bsize, PARTITION_SPLIT); load_pred_mv(x, ctx); @@ -4063,9 +3994,9 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, } else { // skip rectangular partition test when larger block size // gives better rd cost - if ((cpi->sf.less_rectangular_check) && - ((bsize > cpi->sf.use_square_only_threshold) || - (best_rdc.dist < dist_breakout_thr))) + if (cpi->sf.less_rectangular_check && + (bsize > cpi->sf.use_square_only_thresh_high || + best_rdc.dist < dist_breakout_thr)) do_rect &= !partition_none_allowed; } restore_context(x, mi_row, mi_col, a, l, sa, sl, bsize); @@ -4087,6 +4018,21 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, if (used_frames) pc_tree->vertical[1].skip_ref_frame_mask = ~used_frames; } + { + int do_ml_rect_partition_pruning = + !frame_is_intra_only(cm) && !force_horz_split && !force_vert_split && + (partition_horz_allowed || partition_vert_allowed) && bsize > BLOCK_8X8; +#if CONFIG_VP9_HIGHBITDEPTH + if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) + do_ml_rect_partition_pruning = 0; +#endif + if (do_ml_rect_partition_pruning) { + ml_prune_rect_partition(cpi, x, bsize, pc_tree, &partition_horz_allowed, + &partition_vert_allowed, best_rdc.rdcost, mi_row, + mi_col); + } + } + // PARTITION_HORZ if (partition_horz_allowed && (do_rect || vp9_active_h_edge(cpi, mi_row, mi_step))) { @@ -4130,8 +4076,8 @@ static void rd_pick_partition(VP9_COMP *cpi, ThreadData *td, best_rdc = sum_rdc; pc_tree->partitioning = PARTITION_HORZ; - if ((cpi->sf.less_rectangular_check) && - (bsize > cpi->sf.use_square_only_threshold)) + if (cpi->sf.less_rectangular_check && + bsize > cpi->sf.use_square_only_thresh_high) do_rect = 0; } restore_context(x, mi_row, mi_col, a, l, sa, sl, bsize); @@ -4300,6 +4246,7 @@ static void encode_rd_sb_row(VP9_COMP *cpi, ThreadData *td, rd_auto_partition_range(cpi, tile_info, xd, mi_row, mi_col, &x->min_partition_size, &x->max_partition_size); } + td->pc_root->none.rdcost = 0; rd_pick_partition(cpi, td, tile_data, tp, mi_row, mi_col, BLOCK_64X64, &dummy_rdc, INT64_MAX, td->pc_root); } @@ -4550,6 +4497,83 @@ static void pred_pixel_ready_reset(PC_TREE *pc_tree, BLOCK_SIZE bsize) { } } +#if CONFIG_ML_VAR_PARTITION +#define FEATURES 6 +#define LABELS 2 +static int ml_predict_var_paritioning(VP9_COMP *cpi, MACROBLOCK *x, + BLOCK_SIZE bsize, int mi_row, + int mi_col) { + VP9_COMMON *const cm = &cpi->common; + const NN_CONFIG *nn_config = NULL; + float thresh_low = -0.2f; + float thresh_high = 0.0f; + + switch (bsize) { + case BLOCK_64X64: + nn_config = &vp9_var_part_nnconfig_64; + thresh_low = -0.3f; + thresh_high = -0.1f; + break; + case BLOCK_32X32: nn_config = &vp9_var_part_nnconfig_32; break; + case BLOCK_16X16: nn_config = &vp9_var_part_nnconfig_16; break; + case BLOCK_8X8: break; + default: assert(0 && "Unexpected block size."); return -1; + } + + if (!nn_config) return -1; + + vpx_clear_system_state(); + + { + float features[FEATURES] = { 0.0f }; + const int dc_q = vp9_dc_quant(cm->base_qindex, 0, cm->bit_depth); + int feature_idx = 0; + float score[LABELS]; + + features[feature_idx++] = logf((float)(dc_q * dc_q) / 256.0f + 1.0f); + vp9_setup_src_planes(x, cpi->Source, mi_row, mi_col); + { + const int bs = 4 * num_4x4_blocks_wide_lookup[bsize]; + const BLOCK_SIZE subsize = get_subsize(bsize, PARTITION_SPLIT); + const int sb_offset_row = 8 * (mi_row & 7); + const int sb_offset_col = 8 * (mi_col & 7); + const uint8_t *pred = x->est_pred + sb_offset_row * 64 + sb_offset_col; + const uint8_t *src = x->plane[0].src.buf; + const int src_stride = x->plane[0].src.stride; + const int pred_stride = 64; + unsigned int sse; + int i; + // Variance of whole block. + const unsigned int var = + cpi->fn_ptr[bsize].vf(src, src_stride, pred, pred_stride, &sse); + const float factor = (var == 0) ? 1.0f : (1.0f / (float)var); + + features[feature_idx++] = logf((float)var + 1.0f); + for (i = 0; i < 4; ++i) { + const int x_idx = (i & 1) * bs / 2; + const int y_idx = (i >> 1) * bs / 2; + const int src_offset = y_idx * src_stride + x_idx; + const int pred_offset = y_idx * pred_stride + x_idx; + // Variance of quarter block. + const unsigned int sub_var = + cpi->fn_ptr[subsize].vf(src + src_offset, src_stride, + pred + pred_offset, pred_stride, &sse); + const float var_ratio = (var == 0) ? 1.0f : factor * (float)sub_var; + features[feature_idx++] = var_ratio; + } + } + + assert(feature_idx == FEATURES); + nn_predict(features, nn_config, score); + if (score[0] > thresh_high) return 3; + if (score[0] < thresh_low) return 0; + return -1; + } +} +#undef FEATURES +#undef LABELS +#endif // CONFIG_ML_VAR_PARTITION + static void nonrd_pick_partition(VP9_COMP *cpi, ThreadData *td, TileDataEnc *tile_data, TOKENEXTRA **tp, int mi_row, int mi_col, BLOCK_SIZE bsize, @@ -4579,6 +4603,11 @@ static void nonrd_pick_partition(VP9_COMP *cpi, ThreadData *td, !force_vert_split && yss <= xss && bsize >= BLOCK_8X8; int partition_vert_allowed = !force_horz_split && xss <= yss && bsize >= BLOCK_8X8; +#if CONFIG_ML_VAR_PARTITION + const int use_ml_based_partitioning = + sf->partition_search_type == ML_BASED_PARTITION; +#endif // CONFIG_ML_VAR_PARTITION + (void)*tp_orig; // Avoid checking for rectangular partitions for speed >= 6. @@ -4609,6 +4638,20 @@ static void nonrd_pick_partition(VP9_COMP *cpi, ThreadData *td, partition_vert_allowed &= force_vert_split; } +#if CONFIG_ML_VAR_PARTITION + if (use_ml_based_partitioning) { + if (partition_none_allowed || do_split) do_rect = 0; + if (partition_none_allowed && do_split) { + const int ml_predicted_partition = + ml_predict_var_paritioning(cpi, x, bsize, mi_row, mi_col); + if (ml_predicted_partition == 0) do_split = 0; + if (ml_predicted_partition == 3) partition_none_allowed = 0; + } + } +#endif // CONFIG_ML_VAR_PARTITION + + if (!partition_none_allowed && !do_split) do_rect = 1; + ctx->pred_pixel_ready = !(partition_vert_allowed || partition_horz_allowed || do_split); @@ -4622,26 +4665,28 @@ static void nonrd_pick_partition(VP9_COMP *cpi, ThreadData *td, ctx->skip = x->skip; if (this_rdc.rate != INT_MAX) { - int pl = partition_plane_context(xd, mi_row, mi_col, bsize); + const int pl = partition_plane_context(xd, mi_row, mi_col, bsize); this_rdc.rate += cpi->partition_cost[pl][PARTITION_NONE]; this_rdc.rdcost = RDCOST(x->rdmult, x->rddiv, this_rdc.rate, this_rdc.dist); if (this_rdc.rdcost < best_rdc.rdcost) { - int64_t dist_breakout_thr = sf->partition_search_breakout_thr.dist; - int64_t rate_breakout_thr = sf->partition_search_breakout_thr.rate; - - dist_breakout_thr >>= - 8 - (b_width_log2_lookup[bsize] + b_height_log2_lookup[bsize]); - - rate_breakout_thr *= num_pels_log2_lookup[bsize]; - best_rdc = this_rdc; if (bsize >= BLOCK_8X8) pc_tree->partitioning = PARTITION_NONE; - if (!x->e_mbd.lossless && this_rdc.rate < rate_breakout_thr && - this_rdc.dist < dist_breakout_thr) { - do_split = 0; - do_rect = 0; +#if CONFIG_ML_VAR_PARTITION + if (!use_ml_based_partitioning) +#endif // CONFIG_ML_VAR_PARTITION + { + int64_t dist_breakout_thr = sf->partition_search_breakout_thr.dist; + int64_t rate_breakout_thr = sf->partition_search_breakout_thr.rate; + dist_breakout_thr >>= + 8 - (b_width_log2_lookup[bsize] + b_height_log2_lookup[bsize]); + rate_breakout_thr *= num_pels_log2_lookup[bsize]; + if (!x->e_mbd.lossless && this_rdc.rate < rate_breakout_thr && + this_rdc.dist < dist_breakout_thr) { + do_split = 0; + do_rect = 0; + } } } } @@ -5040,6 +5085,111 @@ static void nonrd_use_partition(VP9_COMP *cpi, ThreadData *td, update_partition_context(xd, mi_row, mi_col, subsize, bsize); } +#if CONFIG_ML_VAR_PARTITION +// Get a prediction(stored in x->est_pred) for the whole 64x64 superblock. +static void get_estimated_pred(VP9_COMP *cpi, const TileInfo *const tile, + MACROBLOCK *x, int mi_row, int mi_col) { + VP9_COMMON *const cm = &cpi->common; + const int is_key_frame = frame_is_intra_only(cm); + + set_offsets(cpi, tile, x, mi_row, mi_col, BLOCK_64X64); + + if (!is_key_frame) { + MACROBLOCKD *xd = &x->e_mbd; + MODE_INFO *mi = xd->mi[0]; + YV12_BUFFER_CONFIG *yv12 = get_ref_frame_buffer(cpi, LAST_FRAME); + const YV12_BUFFER_CONFIG *yv12_g = NULL; + const BLOCK_SIZE bsize = BLOCK_32X32 + (mi_col + 4 < cm->mi_cols) * 2 + + (mi_row + 4 < cm->mi_rows); + int pixels_wide = 64, pixels_high = 64; + unsigned int y_sad_g, y_sad_thr; + unsigned int y_sad = UINT_MAX; + + assert(yv12 != NULL); + + if (xd->mb_to_right_edge < 0) pixels_wide += (xd->mb_to_right_edge >> 3); + if (xd->mb_to_bottom_edge < 0) pixels_high += (xd->mb_to_bottom_edge >> 3); + + if (!(is_one_pass_cbr_svc(cpi) && cpi->svc.spatial_layer_id) || + cpi->svc.use_gf_temporal_ref_current_layer) { + // For now, GOLDEN will not be used for non-zero spatial layers, since + // it may not be a temporal reference. + yv12_g = get_ref_frame_buffer(cpi, GOLDEN_FRAME); + } + + // Only compute y_sad_g (sad for golden reference) for speed < 8. + if (cpi->oxcf.speed < 8 && yv12_g && yv12_g != yv12 && + (cpi->ref_frame_flags & VP9_GOLD_FLAG)) { + vp9_setup_pre_planes(xd, 0, yv12_g, mi_row, mi_col, + &cm->frame_refs[GOLDEN_FRAME - 1].sf); + y_sad_g = cpi->fn_ptr[bsize].sdf( + x->plane[0].src.buf, x->plane[0].src.stride, xd->plane[0].pre[0].buf, + xd->plane[0].pre[0].stride); + } else { + y_sad_g = UINT_MAX; + } + + if (cpi->oxcf.lag_in_frames > 0 && cpi->oxcf.rc_mode == VPX_VBR && + cpi->rc.is_src_frame_alt_ref) { + yv12 = get_ref_frame_buffer(cpi, ALTREF_FRAME); + vp9_setup_pre_planes(xd, 0, yv12, mi_row, mi_col, + &cm->frame_refs[ALTREF_FRAME - 1].sf); + mi->ref_frame[0] = ALTREF_FRAME; + y_sad_g = UINT_MAX; + } else { + vp9_setup_pre_planes(xd, 0, yv12, mi_row, mi_col, + &cm->frame_refs[LAST_FRAME - 1].sf); + mi->ref_frame[0] = LAST_FRAME; + } + mi->ref_frame[1] = NONE; + mi->sb_type = BLOCK_64X64; + mi->mv[0].as_int = 0; + mi->interp_filter = BILINEAR; + + { + const MV dummy_mv = { 0, 0 }; + y_sad = vp9_int_pro_motion_estimation(cpi, x, bsize, mi_row, mi_col, + &dummy_mv); + x->sb_use_mv_part = 1; + x->sb_mvcol_part = mi->mv[0].as_mv.col; + x->sb_mvrow_part = mi->mv[0].as_mv.row; + } + + // Pick ref frame for partitioning, bias last frame when y_sad_g and y_sad + // are close if short_circuit_low_temp_var is on. + y_sad_thr = cpi->sf.short_circuit_low_temp_var ? (y_sad * 7) >> 3 : y_sad; + if (y_sad_g < y_sad_thr) { + vp9_setup_pre_planes(xd, 0, yv12_g, mi_row, mi_col, + &cm->frame_refs[GOLDEN_FRAME - 1].sf); + mi->ref_frame[0] = GOLDEN_FRAME; + mi->mv[0].as_int = 0; + y_sad = y_sad_g; + } else { + x->pred_mv[LAST_FRAME] = mi->mv[0].as_mv; + } + + set_ref_ptrs(cm, xd, mi->ref_frame[0], mi->ref_frame[1]); + xd->plane[0].dst.buf = x->est_pred; + xd->plane[0].dst.stride = 64; + vp9_build_inter_predictors_sb(xd, mi_row, mi_col, BLOCK_64X64); + } else { +#if CONFIG_VP9_HIGHBITDEPTH + switch (xd->bd) { + case 8: memset(x->est_pred, 128, 64 * 64 * sizeof(x->est_pred[0])); break; + case 10: + memset(x->est_pred, 128 * 4, 64 * 64 * sizeof(x->est_pred[0])); + break; + case 12: + memset(x->est_pred, 128 * 16, 64 * 64 * sizeof(x->est_pred[0])); + break; + } +#else + memset(x->est_pred, 128, 64 * 64 * sizeof(x->est_pred[0])); +#endif // CONFIG_VP9_HIGHBITDEPTH + } +} +#endif // CONFIG_ML_VAR_PARTITION + static void encode_nonrd_sb_row(VP9_COMP *cpi, ThreadData *td, TileDataEnc *tile_data, int mi_row, TOKENEXTRA **tp) { @@ -5131,6 +5281,17 @@ static void encode_nonrd_sb_row(VP9_COMP *cpi, ThreadData *td, nonrd_use_partition(cpi, td, tile_data, mi, tp, mi_row, mi_col, BLOCK_64X64, 1, &dummy_rdc, td->pc_root); break; +#if CONFIG_ML_VAR_PARTITION + case ML_BASED_PARTITION: + get_estimated_pred(cpi, tile_info, x, mi_row, mi_col); + x->max_partition_size = BLOCK_64X64; + x->min_partition_size = BLOCK_8X8; + x->sb_pickmode_part = 1; + nonrd_pick_partition(cpi, td, tile_data, tp, mi_row, mi_col, + BLOCK_64X64, &dummy_rdc, 1, INT64_MAX, + td->pc_root); + break; +#endif // CONFIG_ML_VAR_PARTITION case SOURCE_VAR_BASED_PARTITION: set_source_var_based_partition(cpi, tile_info, x, mi, mi_row, mi_col); nonrd_use_partition(cpi, td, tile_data, mi, tp, mi_row, mi_col, @@ -5685,16 +5846,11 @@ void vp9_encode_frame(VP9_COMP *cpi) { // side behavior is where the ALT ref buffer has opposite sign bias to // the other two. if (!frame_is_intra_only(cm)) { - if ((cm->ref_frame_sign_bias[ALTREF_FRAME] == - cm->ref_frame_sign_bias[GOLDEN_FRAME]) || - (cm->ref_frame_sign_bias[ALTREF_FRAME] == - cm->ref_frame_sign_bias[LAST_FRAME])) { - cpi->allow_comp_inter_inter = 0; - } else { + if (vp9_compound_reference_allowed(cm)) { cpi->allow_comp_inter_inter = 1; - cm->comp_fixed_ref = ALTREF_FRAME; - cm->comp_var_ref[0] = LAST_FRAME; - cm->comp_var_ref[1] = GOLDEN_FRAME; + vp9_setup_compound_reference_mode(cm); + } else { + cpi->allow_comp_inter_inter = 0; } } diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h index cf5ae3d8ac7..1798c004884 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_ENCODEFRAME_H_ -#define VP9_ENCODER_VP9_ENCODEFRAME_H_ +#ifndef VPX_VP9_ENCODER_VP9_ENCODEFRAME_H_ +#define VPX_VP9_ENCODER_VP9_ENCODEFRAME_H_ #include "vpx/vpx_integer.h" @@ -49,4 +49,4 @@ void vp9_set_variance_partition_thresholds(struct VP9_COMP *cpi, int q, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_ENCODEFRAME_H_ +#endif // VPX_VP9_ENCODER_VP9_ENCODEFRAME_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h index cf943bedfdf..fa41f70efbf 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_ENCODEMB_H_ -#define VP9_ENCODER_VP9_ENCODEMB_H_ +#ifndef VPX_VP9_ENCODER_VP9_ENCODEMB_H_ +#define VPX_VP9_ENCODER_VP9_ENCODEMB_H_ #include "./vpx_config.h" #include "vp9/encoder/vp9_block.h" @@ -48,4 +48,4 @@ void vp9_encode_intra_block_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_ENCODEMB_H_ +#endif // VPX_VP9_ENCODER_VP9_ENCODEMB_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h index 9fc7ab8dc45..8bbf857872d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_ENCODEMV_H_ -#define VP9_ENCODER_VP9_ENCODEMV_H_ +#ifndef VPX_VP9_ENCODER_VP9_ENCODEMV_H_ +#define VPX_VP9_ENCODER_VP9_ENCODEMV_H_ #include "vp9/encoder/vp9_encoder.h" @@ -35,4 +35,4 @@ void vp9_update_mv_count(ThreadData *td); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_ENCODEMV_H_ +#endif // VPX_VP9_ENCODER_VP9_ENCODEMV_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c index e1a3fbf06f9..edb4cb288c8 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c @@ -791,6 +791,15 @@ static void setup_frame(VP9_COMP *cpi) { if (!cpi->use_svc) cm->frame_context_idx = cpi->refresh_alt_ref_frame; } + // TODO(jingning): Overwrite the frame_context_idx index in multi-layer ARF + // case. Need some further investigation on if we could apply this to single + // layer ARF case as well. + if (cpi->multi_layer_arf && !cpi->use_svc) { + GF_GROUP *const gf_group = &cpi->twopass.gf_group; + cm->frame_context_idx = clamp(gf_group->layer_depth[gf_group->index] - 1, 0, + FRAME_CONTEXTS - 1); + } + if (cm->frame_type == KEY_FRAME) { cpi->refresh_golden_frame = 1; cpi->refresh_alt_ref_frame = 1; @@ -2187,8 +2196,6 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf, #endif cpi->refresh_alt_ref_frame = 0; - cpi->multi_arf_last_grp_enabled = 0; - cpi->b_calculate_psnr = CONFIG_INTERNAL_STATS; init_level_info(&cpi->level_info); @@ -2229,9 +2236,11 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf, if (cpi->b_calculate_consistency) { CHECK_MEM_ERROR(cm, cpi->ssim_vars, - vpx_malloc(sizeof(*cpi->ssim_vars) * 4 * - cpi->common.mi_rows * cpi->common.mi_cols)); + vpx_calloc(cpi->common.mi_rows * cpi->common.mi_cols, + sizeof(*cpi->ssim_vars) * 4)); cpi->worst_consistency = 100.0; + } else { + cpi->ssim_vars = NULL; } #endif @@ -2459,6 +2468,10 @@ void vp9_remove_compressor(VP9_COMP *cpi) { if (!cpi) return; +#if CONFIG_INTERNAL_STATS + vpx_free(cpi->ssim_vars); +#endif + cm = &cpi->common; if (cm->current_video_frame > 0) { #if CONFIG_INTERNAL_STATS @@ -2530,7 +2543,6 @@ void vp9_remove_compressor(VP9_COMP *cpi) { fclose(f); } - #endif #if 0 @@ -2911,11 +2923,14 @@ static int big_rate_miss(VP9_COMP *cpi) { // test in two pass for the first static int two_pass_first_group_inter(VP9_COMP *cpi) { - TWO_PASS *const twopass = &cpi->twopass; - GF_GROUP *const gf_group = &twopass->gf_group; - if ((cpi->oxcf.pass == 2) && - (gf_group->index == gf_group->first_inter_index)) { - return 1; + if (cpi->oxcf.pass == 2) { + TWO_PASS *const twopass = &cpi->twopass; + GF_GROUP *const gf_group = &twopass->gf_group; + const int gfg_index = gf_group->index; + + if (gfg_index == 0) return gf_group->update_type[gfg_index] == LF_UPDATE; + return gf_group->update_type[gfg_index - 1] != LF_UPDATE && + gf_group->update_type[gfg_index] == LF_UPDATE; } else { return 0; } @@ -2965,211 +2980,19 @@ static int recode_loop_test(VP9_COMP *cpi, int high_limit, int low_limit, int q, return force_recode; } -// This function is used to shift the virtual indices of last reference frames -// as follows: -// LAST_FRAME -> LAST2_FRAME -> LAST3_FRAME -// when the LAST_FRAME is updated. -static INLINE void shift_last_ref_frames(VP9_COMP *cpi) { - int ref_frame; - for (ref_frame = LAST_REF_FRAMES - 1; ref_frame > 0; --ref_frame) { - cpi->ref_fb_idx[ref_frame] = cpi->ref_fb_idx[ref_frame - 1]; - - // [0] is allocated to the current coded frame. The statistics for the - // reference frames start at [LAST_FRAME], i.e. [1]. - if (!cpi->rc.is_src_frame_alt_ref) { - memcpy(cpi->interp_filter_selected[ref_frame + LAST_FRAME], - cpi->interp_filter_selected[ref_frame - 1 + LAST_FRAME], - sizeof(cpi->interp_filter_selected[ref_frame - 1 + LAST_FRAME])); - } - } -} - -void update_multi_arf_ref_frames(VP9_COMP *cpi) { +void update_ref_frames(VP9_COMP *cpi) { VP9_COMMON *const cm = &cpi->common; BufferPool *const pool = cm->buffer_pool; + GF_GROUP *const gf_group = &cpi->twopass.gf_group; - // NOTE: Save the new show frame buffer index for --test-code=warn, i.e., - // for the purpose to verify no mismatch between encoder and decoder. - if (cm->show_frame) cpi->last_show_frame_buf_idx = cm->new_fb_idx; - - // At this point the new frame has been encoded. - // If any buffer copy / swapping is signaled it should be done here. - - if (cm->frame_type == KEY_FRAME) { - int ref_frame; - for (ref_frame = 0; ref_frame < REF_FRAMES; ++ref_frame) { - ref_cnt_fb(pool->frame_bufs, - &cm->ref_frame_map[cpi->ref_fb_idx[ref_frame]], - cm->new_fb_idx); - } - return; - } - - if (vp9_preserve_existing_gf(cpi)) { - // We have decided to preserve the previously existing golden frame as our - // new ARF frame. However, in the short term in function - // av1_bitstream.c::get_refresh_mask() we left it in the GF slot and, if - // we're updating the GF with the current decoded frame, we save it to the - // ARF slot instead. - // We now have to update the ARF with the current frame and swap gld_fb_idx - // and alt_fb_idx so that, overall, we've stored the old GF in the new ARF - // slot and, if we're updating the GF, the current frame becomes the new GF. - int tmp; - - ref_cnt_fb(pool->frame_bufs, - &cm->ref_frame_map[cpi->ref_fb_idx[ALTREF_FRAME - 1]], - cm->new_fb_idx); - tmp = cpi->ref_fb_idx[ALTREF_FRAME - 1]; - cpi->ref_fb_idx[ALTREF_FRAME - 1] = cpi->ref_fb_idx[GOLDEN_FRAME - 1]; - cpi->ref_fb_idx[GOLDEN_FRAME - 1] = tmp; - - // We need to modify the mapping accordingly - cpi->arf_map[0] = cpi->ref_fb_idx[ALTREF_FRAME - 1]; - } else if (cpi->rc.is_src_frame_ext_arf && cm->show_existing_frame) { - // Deal with the special case for showing existing internal ALTREF_FRAME - // Refresh the LAST_FRAME with the ALTREF_FRAME and retire the LAST3_FRAME - // by updating the virtual indices. - const GF_GROUP *const gf_group = &cpi->twopass.gf_group; - const int which_arf = gf_group->arf_ref_idx[gf_group->index]; - int tmp; - assert(gf_group->update_type[gf_group->index] == INTNL_OVERLAY_UPDATE); - - tmp = cpi->ref_fb_idx[LAST_REF_FRAMES - 1]; - shift_last_ref_frames(cpi); - - cpi->ref_fb_idx[LAST_FRAME - 1] = cpi->ref_fb_idx[ALTREF2_FRAME - 1]; - cpi->ref_fb_idx[ALTREF2_FRAME - 1] = tmp; - - // We need to modify the mapping accordingly - cpi->arf_map[which_arf] = cpi->ref_fb_idx[ALTREF2_FRAME - 1]; - - memcpy(cpi->interp_filter_selected[LAST_FRAME], - cpi->interp_filter_selected[ALTREF2_FRAME], - sizeof(cpi->interp_filter_selected[ALTREF2_FRAME])); - } else { /* For non key/golden frames */ - // === ALTREF_FRAME === - if (cpi->refresh_alt_ref_frame) { - int arf_idx = cpi->ref_fb_idx[ALTREF_FRAME - 1]; - int which_arf = 0; - ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[arf_idx], cm->new_fb_idx); - - memcpy(cpi->interp_filter_selected[ALTREF_FRAME + which_arf], - cpi->interp_filter_selected[0], - sizeof(cpi->interp_filter_selected[0])); - } - - // === GOLDEN_FRAME === - if (cpi->refresh_golden_frame) { - ref_cnt_fb(pool->frame_bufs, - &cm->ref_frame_map[cpi->ref_fb_idx[GOLDEN_FRAME - 1]], - cm->new_fb_idx); - - memcpy(cpi->interp_filter_selected[GOLDEN_FRAME], - cpi->interp_filter_selected[0], - sizeof(cpi->interp_filter_selected[0])); - } - - // === BWDREF_FRAME === - if (cpi->refresh_bwd_ref_frame) { - ref_cnt_fb(pool->frame_bufs, - &cm->ref_frame_map[cpi->ref_fb_idx[BWDREF_FRAME - 1]], - cm->new_fb_idx); - - memcpy(cpi->interp_filter_selected[BWDREF_FRAME], - cpi->interp_filter_selected[0], - sizeof(cpi->interp_filter_selected[0])); - } - - // === ALTREF2_FRAME === - if (cpi->refresh_alt2_ref_frame) { - ref_cnt_fb(pool->frame_bufs, - &cm->ref_frame_map[cpi->ref_fb_idx[ALTREF2_FRAME - 1]], - cm->new_fb_idx); - - memcpy(cpi->interp_filter_selected[ALTREF2_FRAME], - cpi->interp_filter_selected[0], - sizeof(cpi->interp_filter_selected[0])); - } - } - - if (cpi->refresh_last_frame) { - // NOTE(zoeliu): We have two layers of mapping (1) from the per-frame - // reference to the reference frame buffer virtual index; and then (2) from - // the virtual index to the reference frame buffer physical index: - // - // LAST_FRAME, ..., LAST3_FRAME, ..., ALTREF_FRAME - // | | | - // v v v - // ref_fb_idx[0], ..., ref_fb_idx[2], ..., ref_fb_idx[ALTREF_FRAME-1] - // | | | - // v v v - // ref_frame_map[], ..., ref_frame_map[], ..., ref_frame_map[] - // - // When refresh_last_frame is set, it is intended to retire LAST3_FRAME, - // have the other 2 LAST reference frames shifted as follows: - // LAST_FRAME -> LAST2_FRAME -> LAST3_FRAME - // , and then have LAST_FRAME refreshed by the newly coded frame. - // - // To fulfill it, the decoder will be notified to execute following 2 steps: - // - // (a) To change ref_frame_map[] and have the virtual index of LAST3_FRAME - // to point to the newly coded frame, i.e. - // ref_frame_map[lst_fb_idexes[2]] => new_fb_idx; - // - // (b) To change the 1st layer mapping to have LAST_FRAME mapped to the - // original virtual index of LAST3_FRAME and have the other mappings - // shifted as follows: - // LAST_FRAME, LAST2_FRAME, LAST3_FRAME - // | | | - // v v v - // ref_fb_idx[2], ref_fb_idx[0], ref_fb_idx[1] - int tmp; - - ref_cnt_fb(pool->frame_bufs, - &cm->ref_frame_map[cpi->ref_fb_idx[LAST_REF_FRAMES - 1]], - cm->new_fb_idx); - - tmp = cpi->ref_fb_idx[LAST_REF_FRAMES - 1]; - - shift_last_ref_frames(cpi); - cpi->ref_fb_idx[0] = tmp; - - assert(cm->show_existing_frame == 0); - memcpy(cpi->interp_filter_selected[LAST_FRAME], - cpi->interp_filter_selected[0], - sizeof(cpi->interp_filter_selected[0])); - - if (cpi->rc.is_last_bipred_frame) { - // Refresh the LAST_FRAME with the BWDREF_FRAME and retire the - // LAST3_FRAME by updating the virtual indices. - // - // NOTE: The source frame for BWDREF does not have a holding position as - // the OVERLAY frame for ALTREF's. Hence, to resolve the reference - // virtual index reshuffling for BWDREF, the encoder always - // specifies a LAST_BIPRED right before BWDREF and completes the - // reshuffling job accordingly. - tmp = cpi->ref_fb_idx[LAST_REF_FRAMES - 1]; - - shift_last_ref_frames(cpi); - cpi->ref_fb_idx[0] = cpi->ref_fb_idx[BWDREF_FRAME - 1]; - cpi->ref_fb_idx[BWDREF_FRAME - 1] = tmp; - - memcpy(cpi->interp_filter_selected[LAST_FRAME], - cpi->interp_filter_selected[BWDREF_FRAME], - sizeof(cpi->interp_filter_selected[BWDREF_FRAME])); - } + // Pop ARF. + if (cm->show_existing_frame) { + cpi->lst_fb_idx = cpi->alt_fb_idx; + cpi->alt_fb_idx = + stack_pop(gf_group->arf_index_stack, gf_group->stack_size); + --gf_group->stack_size; } - // Assign virtual indexes for LAST_FRAME, GOLDEN_FRAME, and ALTREF_FRAME - cpi->lst_fb_idx = cpi->ref_fb_idx[LAST_FRAME - 1]; - cpi->gld_fb_idx = cpi->ref_fb_idx[GOLDEN_FRAME - 1]; - cpi->alt_fb_idx = cpi->ref_fb_idx[ALTREF_FRAME - 1]; -} - -void update_ref_frames(VP9_COMP *cpi) { - VP9_COMMON *const cm = &cpi->common; - BufferPool *const pool = cm->buffer_pool; - // At this point the new frame has been encoded. // If any buffer copy / swapping is signaled it should be done here. if (cm->frame_type == KEY_FRAME) { @@ -3196,16 +3019,21 @@ void update_ref_frames(VP9_COMP *cpi) { cpi->gld_fb_idx = tmp; } else { /* For non key/golden frames */ if (cpi->refresh_alt_ref_frame) { - int arf_idx = cpi->alt_fb_idx; - if ((cpi->oxcf.pass == 2) && cpi->multi_arf_allowed) { - const GF_GROUP *const gf_group = &cpi->twopass.gf_group; - arf_idx = gf_group->arf_update_idx[gf_group->index]; - } + int arf_idx = gf_group->top_arf_idx; + + // Push new ARF into stack. + stack_push(gf_group->arf_index_stack, cpi->alt_fb_idx, + gf_group->stack_size); + ++gf_group->stack_size; + + assert(arf_idx < REF_FRAMES); ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[arf_idx], cm->new_fb_idx); memcpy(cpi->interp_filter_selected[ALTREF_FRAME], cpi->interp_filter_selected[0], sizeof(cpi->interp_filter_selected[0])); + + cpi->alt_fb_idx = arf_idx; } if (cpi->refresh_golden_frame) { @@ -3230,13 +3058,16 @@ void update_ref_frames(VP9_COMP *cpi) { cpi->interp_filter_selected[0], sizeof(cpi->interp_filter_selected[0])); } + + if (gf_group->update_type[gf_group->index] == MID_OVERLAY_UPDATE) { + cpi->alt_fb_idx = + stack_pop(gf_group->arf_index_stack, gf_group->stack_size); + --gf_group->stack_size; + } } void vp9_update_reference_frames(VP9_COMP *cpi) { - if (cpi->extra_arf_allowed) - update_multi_arf_ref_frames(cpi); - else - update_ref_frames(cpi); + update_ref_frames(cpi); #if CONFIG_VP9_TEMPORAL_DENOISING vp9_denoiser_update_ref_frame(cpi); @@ -3813,6 +3644,20 @@ static void save_encode_params(VP9_COMP *cpi) { } #endif +static INLINE void set_raw_source_frame(VP9_COMP *cpi) { +#ifdef ENABLE_KF_DENOISE + if (is_spatial_denoise_enabled(cpi)) { + cpi->raw_source_frame = vp9_scale_if_required( + cm, &cpi->raw_unscaled_source, &cpi->raw_scaled_source, + (oxcf->pass == 0), EIGHTTAP, 0); + } else { + cpi->raw_source_frame = cpi->Source; + } +#else + cpi->raw_source_frame = cpi->Source; +#endif +} + static int encode_without_recode_loop(VP9_COMP *cpi, size_t *size, uint8_t *dest) { VP9_COMMON *const cm = &cpi->common; @@ -3826,7 +3671,10 @@ static int encode_without_recode_loop(VP9_COMP *cpi, size_t *size, ? cpi->svc.downsample_filter_phase[cpi->svc.spatial_layer_id] : 0; - if (cm->show_existing_frame) return 1; + if (cm->show_existing_frame) { + if (is_psnr_calc_enabled(cpi)) set_raw_source_frame(cpi); + return 1; + } // Flag to check if its valid to compute the source sad (used for // scene detection and for superblock content state in CBR mode). @@ -4105,7 +3953,10 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size, int qrange_adj = 1; #endif - if (cm->show_existing_frame) return; + if (cm->show_existing_frame) { + if (is_psnr_calc_enabled(cpi)) set_raw_source_frame(cpi); + return; + } set_size_independent_vars(cpi); @@ -4304,8 +4155,9 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size, // Special case if the projected size is > the max allowed. if ((q == q_high) && ((rc->projected_frame_size >= rc->max_frame_bandwidth) || - (rc->projected_frame_size >= - big_rate_miss_high_threshold(cpi)))) { + (!rc->is_src_frame_alt_ref && + (rc->projected_frame_size >= + big_rate_miss_high_threshold(cpi))))) { int max_rate = VPXMAX(1, VPXMIN(rc->max_frame_bandwidth, big_rate_miss_high_threshold(cpi))); double q_val_high; @@ -4410,7 +4262,7 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size, #endif // Have we been forced to adapt Q outside the expected range by an extreme // rate miss. If so adjust the active maxQ for the subsequent frames. - if (q > cpi->twopass.active_worst_quality) { + if (!rc->is_src_frame_alt_ref && (q > cpi->twopass.active_worst_quality)) { cpi->twopass.active_worst_quality = q; } else if (oxcf->vbr_corpus_complexity && q == q_low && rc->projected_frame_size < rc->this_frame_target) { @@ -4529,16 +4381,21 @@ YV12_BUFFER_CONFIG *vp9_scale_if_required( } } -static void set_arf_sign_bias(VP9_COMP *cpi) { +static void set_ref_sign_bias(VP9_COMP *cpi) { VP9_COMMON *const cm = &cpi->common; - const GF_GROUP *const gf_group = &cpi->twopass.gf_group; - const int gfg_index = gf_group->index; + RefCntBuffer *const ref_buffer = get_ref_cnt_buffer(cm, cm->new_fb_idx); + const int cur_frame_index = ref_buffer->frame_index; + MV_REFERENCE_FRAME ref_frame; - // If arf_src_offset is less than the GOP length, its arf is on the direction - // 1 side. - cm->ref_frame_sign_bias[ALTREF_FRAME] = - cpi->rc.source_alt_ref_active && - gf_group->arf_src_offset[gfg_index] < cpi->rc.baseline_gf_interval - 1; + for (ref_frame = LAST_FRAME; ref_frame < MAX_REF_FRAMES; ++ref_frame) { + const int buf_idx = get_ref_frame_buf_idx(cpi, ref_frame); + const RefCntBuffer *const ref_cnt_buf = + get_ref_cnt_buffer(&cpi->common, buf_idx); + if (ref_cnt_buf) { + cm->ref_frame_sign_bias[ref_frame] = + cur_frame_index < ref_cnt_buf->frame_index; + } + } } static int setup_interp_filter_search_mask(VP9_COMP *cpi) { @@ -4746,6 +4603,16 @@ static void vp9_try_disable_lookahead_aq(VP9_COMP *cpi, size_t *size, } } +static void set_frame_index(VP9_COMP *cpi, VP9_COMMON *cm) { + RefCntBuffer *const ref_buffer = get_ref_cnt_buffer(cm, cm->new_fb_idx); + + if (ref_buffer) { + const GF_GROUP *const gf_group = &cpi->twopass.gf_group; + ref_buffer->frame_index = + cm->current_video_frame + gf_group->arf_src_offset[gf_group->index]; + } +} + static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size, uint8_t *dest, unsigned int *frame_flags) { @@ -4785,8 +4652,13 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size, if (is_spatial_denoise_enabled(cpi)) spatial_denoise_frame(cpi); #endif - // Set the arf sign bias for this frame. - set_arf_sign_bias(cpi); + if (cm->show_existing_frame == 0) { + // Update frame index + set_frame_index(cpi, cm); + + // Set the arf sign bias for this frame. + set_ref_sign_bias(cpi); + } // Set default state for segment based loop filter update flags. cm->lf.mode_ref_delta_update = 0; @@ -4950,6 +4822,8 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size, vp9_rc_postencode_update(cpi, *size); + *size = VPXMAX(1, *size); + #if 0 output_frame_level_debug_stats(cpi); #endif @@ -5575,10 +5449,46 @@ void init_tpl_stats(VP9_COMP *cpi) { } } +#if CONFIG_NON_GREEDY_MV +static void prepare_nb_full_mvs(const TplDepFrame *tpl_frame, int mi_row, + int mi_col, int_mv *nb_full_mvs) { + const int dirs[NB_MVS_NUM][2] = { { -1, 0 }, { 0, -1 }, { 1, 0 }, { 0, 1 } }; + int i; + for (i = 0; i < NB_MVS_NUM; ++i) { + int r = dirs[i][0]; + int c = dirs[i][1]; + if (mi_row + r >= 0 && mi_row + r < tpl_frame->mi_rows && mi_col + c >= 0 && + mi_col + c < tpl_frame->mi_cols) { + const TplDepStats *tpl_ptr = + &tpl_frame + ->tpl_stats_ptr[(mi_row + r) * tpl_frame->stride + mi_col + c]; + if (tpl_ptr->ready) { + nb_full_mvs[i].as_mv.row = tpl_ptr->mv.as_mv.row >> 3; + nb_full_mvs[i].as_mv.col = tpl_ptr->mv.as_mv.col >> 3; + } else { + nb_full_mvs[i].as_int = INVALID_MV; + } + } else { + nb_full_mvs[i].as_int = INVALID_MV; + } + } +} +#endif + +#if CONFIG_NON_GREEDY_MV +uint32_t motion_compensated_prediction(VP9_COMP *cpi, ThreadData *td, + int frame_idx, uint8_t *cur_frame_buf, + uint8_t *ref_frame_buf, int stride, + BLOCK_SIZE bsize, int mi_row, int mi_col, + TplDepStats *tpl_stats, int rf_idx) { + MV *mv = &tpl_stats->mv_arr[rf_idx].as_mv; +#else // CONFIG_NON_GREEDY_MV uint32_t motion_compensated_prediction(VP9_COMP *cpi, ThreadData *td, - uint8_t *cur_frame_buf, + int frame_idx, uint8_t *cur_frame_buf, uint8_t *ref_frame_buf, int stride, - MV *mv, BLOCK_SIZE bsize) { + BLOCK_SIZE bsize, int mi_row, int mi_col, + MV *mv) { +#endif // CONFIG_NON_GREEDY_MV MACROBLOCK *const x = &td->mb; MACROBLOCKD *const xd = &x->e_mbd; MV_SPEED_FEATURES *const mv_sf = &cpi->sf.mv; @@ -5590,6 +5500,12 @@ uint32_t motion_compensated_prediction(VP9_COMP *cpi, ThreadData *td, uint32_t sse; int cost_list[5]; const MvLimits tmp_mv_limits = x->mv_limits; +#if CONFIG_NON_GREEDY_MV + // lambda is used to adjust the importance of motion vector consitency. + // TODO(angiebird): Figure out lambda's proper value. + double lambda = 10000; + int_mv nb_full_mvs[NB_MVS_NUM]; +#endif MV best_ref_mv1 = { 0, 0 }; MV best_ref_mv1_full; /* full-pixel value of best_ref_mv1 */ @@ -5608,9 +5524,22 @@ uint32_t motion_compensated_prediction(VP9_COMP *cpi, ThreadData *td, vp9_set_mv_search_range(&x->mv_limits, &best_ref_mv1); +#if CONFIG_NON_GREEDY_MV + (void)search_method; + (void)sadpb; + prepare_nb_full_mvs(&cpi->tpl_stats[frame_idx], mi_row, mi_col, nb_full_mvs); + vp9_full_pixel_diamond_new(cpi, x, &best_ref_mv1_full, step_param, lambda, + MAX_MVSEARCH_STEPS - 1 - step_param, 1, + &cpi->fn_ptr[bsize], nb_full_mvs, tpl_stats, + rf_idx); +#else + (void)frame_idx; + (void)mi_row; + (void)mi_col; vp9_full_pixel_search(cpi, x, bsize, &best_ref_mv1_full, step_param, search_method, sadpb, cond_cost_list(cpi, cost_list), &best_ref_mv1, mv, 0, 0); +#endif /* restore UMV window */ x->mv_limits = tmp_mv_limits; @@ -5618,7 +5547,7 @@ uint32_t motion_compensated_prediction(VP9_COMP *cpi, ThreadData *td, // Ignore mv costing by sending NULL pointer instead of cost array bestsme = cpi->find_fractional_mv_step( x, mv, &best_ref_mv1, cpi->common.allow_high_precision_mv, x->errorperbit, - &cpi->fn_ptr[bsize], 0, mv_sf->subpel_iters_per_step, + &cpi->fn_ptr[bsize], 0, mv_sf->subpel_search_level, cond_cost_list(cpi, cost_list), NULL, NULL, &distortion, &sse, NULL, 0, 0); @@ -5682,6 +5611,19 @@ void tpl_model_store(TplDepStats *tpl_stats, int mi_row, int mi_col, for (idy = 0; idy < mi_height; ++idy) { tpl_ptr = &tpl_stats[(mi_row + idy) * stride + mi_col]; for (idx = 0; idx < mi_width; ++idx) { +#if CONFIG_NON_GREEDY_MV + int rf_idx; + for (rf_idx = 0; rf_idx < 3; ++rf_idx) { + tpl_ptr->mv_dist[rf_idx] = src_stats->mv_dist[rf_idx]; + tpl_ptr->mv_cost[rf_idx] = src_stats->mv_cost[rf_idx]; + tpl_ptr->inter_cost_arr[rf_idx] = src_stats->inter_cost; + tpl_ptr->recon_error_arr[rf_idx] = src_stats->recon_error_arr[rf_idx]; + tpl_ptr->sse_arr[rf_idx] = src_stats->sse_arr[rf_idx]; + tpl_ptr->mv_arr[rf_idx].as_int = src_stats->mv_arr[rf_idx].as_int; + } + tpl_ptr->feature_score = src_stats->feature_score; + tpl_ptr->ready = 1; +#endif tpl_ptr->intra_cost = intra_cost; tpl_ptr->inter_cost = inter_cost; tpl_ptr->mc_dep_cost = tpl_ptr->intra_cost + tpl_ptr->mc_flow; @@ -5796,6 +5738,31 @@ void wht_fwd_txfm(int16_t *src_diff, int bw, tran_low_t *coeff, } } +#if CONFIG_NON_GREEDY_MV +double get_feature_score(uint8_t *buf, ptrdiff_t stride, int rows, int cols) { + double IxIx = 0; + double IxIy = 0; + double IyIy = 0; + double score; + int r, c; + vpx_clear_system_state(); + for (r = 0; r + 1 < rows; ++r) { + for (c = 0; c + 1 < cols; ++c) { + int diff_x = buf[r * stride + c] - buf[r * stride + c + 1]; + int diff_y = buf[r * stride + c] - buf[(r + 1) * stride + c]; + IxIx += diff_x * diff_x; + IxIy += diff_x * diff_y; + IyIy += diff_y * diff_y; + } + } + IxIx /= (rows - 1) * (cols - 1); + IxIy /= (rows - 1) * (cols - 1); + IyIy /= (rows - 1) * (cols - 1); + score = (IxIx * IyIy - IxIy * IxIy + 0.0001) / (IxIx + IyIy + 0.0001); + return score; +} +#endif + void mode_estimation(VP9_COMP *cpi, MACROBLOCK *x, MACROBLOCKD *xd, struct scale_factors *sf, GF_PICTURE *gf_picture, int frame_idx, int16_t *src_diff, tran_low_t *coeff, @@ -5867,13 +5834,32 @@ void mode_estimation(VP9_COMP *cpi, MACROBLOCK *x, MACROBLOCKD *xd, x->mv_limits.col_max = ((cm->mi_cols - 1 - mi_col) * MI_SIZE) + (17 - 2 * VP9_INTERP_EXTEND); +#if CONFIG_NON_GREEDY_MV + tpl_stats->feature_score = get_feature_score( + xd->cur_buf->y_buffer + mb_y_offset, xd->cur_buf->y_stride, bw, bh); +#endif + for (rf_idx = 0; rf_idx < 3; ++rf_idx) { int_mv mv; - if (ref_frame[rf_idx] == NULL) continue; + if (ref_frame[rf_idx] == NULL) { +#if CONFIG_NON_GREEDY_MV + tpl_stats->inter_cost_arr[rf_idx] = -1; +#endif + continue; + } - motion_compensated_prediction(cpi, td, xd->cur_buf->y_buffer + mb_y_offset, - ref_frame[rf_idx]->y_buffer + mb_y_offset, - xd->cur_buf->y_stride, &mv.as_mv, bsize); +#if CONFIG_NON_GREEDY_MV + motion_compensated_prediction( + cpi, td, frame_idx, xd->cur_buf->y_buffer + mb_y_offset, + ref_frame[rf_idx]->y_buffer + mb_y_offset, xd->cur_buf->y_stride, bsize, + mi_row, mi_col, tpl_stats, rf_idx); + mv.as_int = tpl_stats->mv_arr[rf_idx].as_int; +#else + motion_compensated_prediction( + cpi, td, frame_idx, xd->cur_buf->y_buffer + mb_y_offset, + ref_frame[rf_idx]->y_buffer + mb_y_offset, xd->cur_buf->y_stride, bsize, + mi_row, mi_col, &mv.as_mv); +#endif // TODO(jingning): Not yet support high bit-depth in the next three // steps. @@ -5909,12 +5895,24 @@ void mode_estimation(VP9_COMP *cpi, MACROBLOCK *x, MACROBLOCKD *xd, inter_cost = vpx_satd(coeff, pix_num); +#if CONFIG_NON_GREEDY_MV + tpl_stats->inter_cost_arr[rf_idx] = inter_cost; + get_quantize_error(x, 0, coeff, qcoeff, dqcoeff, tx_size, + &tpl_stats->recon_error_arr[rf_idx], + &tpl_stats->sse_arr[rf_idx]); +#endif + if (inter_cost < best_inter_cost) { best_rf_idx = rf_idx; best_inter_cost = inter_cost; best_mv.as_int = mv.as_int; +#if CONFIG_NON_GREEDY_MV + *recon_error = tpl_stats->recon_error_arr[rf_idx]; + *sse = tpl_stats->sse_arr[rf_idx]; +#else get_quantize_error(x, 0, coeff, qcoeff, dqcoeff, tx_size, recon_error, sse); +#endif } } best_intra_cost = VPXMAX(best_intra_cost, 1); @@ -5926,7 +5924,8 @@ void mode_estimation(VP9_COMP *cpi, MACROBLOCK *x, MACROBLOCKD *xd, tpl_stats->mv.as_int = best_mv.as_int; } -void mc_flow_dispenser(VP9_COMP *cpi, GF_PICTURE *gf_picture, int frame_idx) { +void mc_flow_dispenser(VP9_COMP *cpi, GF_PICTURE *gf_picture, int frame_idx, + BLOCK_SIZE bsize) { TplDepFrame *tpl_frame = &cpi->tpl_stats[frame_idx]; YV12_BUFFER_CONFIG *this_frame = gf_picture[frame_idx].frame; YV12_BUFFER_CONFIG *ref_frame[3] = { NULL, NULL, NULL }; @@ -5951,7 +5950,6 @@ void mc_flow_dispenser(VP9_COMP *cpi, GF_PICTURE *gf_picture, int frame_idx) { DECLARE_ALIGNED(16, tran_low_t, qcoeff[32 * 32]); DECLARE_ALIGNED(16, tran_low_t, dqcoeff[32 * 32]); - const BLOCK_SIZE bsize = BLOCK_32X32; const TX_SIZE tx_size = max_txsize_lookup[bsize]; const int mi_height = num_8x8_blocks_high_lookup[bsize]; const int mi_width = num_8x8_blocks_wide_lookup[bsize]; @@ -6018,19 +6016,97 @@ void mc_flow_dispenser(VP9_COMP *cpi, GF_PICTURE *gf_picture, int frame_idx) { } } +#if CONFIG_NON_GREEDY_MV +#define DUMP_TPL_STATS 0 +#if DUMP_TPL_STATS +static void dump_buf(uint8_t *buf, int stride, int row, int col, int h, int w) { + printf("%d %d\n", h, w); + for (int i = 0; i < h; ++i) { + for (int j = 0; j < w; ++j) { + printf("%d ", buf[(row + i) * stride + col + j]); + } + } + printf("\n"); +} + +static void dump_frame_buf(const YV12_BUFFER_CONFIG *frame_buf) { + dump_buf(frame_buf->y_buffer, frame_buf->y_stride, 0, 0, frame_buf->y_height, + frame_buf->y_width); + dump_buf(frame_buf->u_buffer, frame_buf->uv_stride, 0, 0, + frame_buf->uv_height, frame_buf->uv_width); + dump_buf(frame_buf->v_buffer, frame_buf->uv_stride, 0, 0, + frame_buf->uv_height, frame_buf->uv_width); +} + +static void dump_tpl_stats(const VP9_COMP *cpi, int tpl_group_frames, + const GF_PICTURE *gf_picture, BLOCK_SIZE bsize) { + int frame_idx; + const VP9_COMMON *cm = &cpi->common; + for (frame_idx = 1; frame_idx < tpl_group_frames; ++frame_idx) { + const TplDepFrame *tpl_frame = &cpi->tpl_stats[frame_idx]; + int idx = 0; + int mi_row, mi_col; + int rf_idx; + const int mi_height = num_8x8_blocks_high_lookup[bsize]; + const int mi_width = num_8x8_blocks_wide_lookup[bsize]; + printf("=\n"); + printf("frame_idx %d mi_rows %d mi_cols %d bsize %d\n", frame_idx, + cm->mi_rows, cm->mi_cols, mi_width * MI_SIZE); + for (mi_row = 0; mi_row < cm->mi_rows; ++mi_row) { + for (mi_col = 0; mi_col < cm->mi_cols; ++mi_col) { + if ((mi_row % mi_height) == 0 && (mi_col % mi_width) == 0) { + const TplDepStats *tpl_ptr = + &tpl_frame->tpl_stats_ptr[mi_row * tpl_frame->stride + mi_col]; + int_mv mv = tpl_ptr->mv_arr[idx]; + printf("%d %d %d %d\n", mi_row, mi_col, mv.as_mv.row, mv.as_mv.col); + } + } + } + + dump_frame_buf(gf_picture[frame_idx].frame); + + for (mi_row = 0; mi_row < cm->mi_rows; ++mi_row) { + for (mi_col = 0; mi_col < cm->mi_cols; ++mi_col) { + if ((mi_row % mi_height) == 0 && (mi_col % mi_width) == 0) { + const TplDepStats *tpl_ptr = + &tpl_frame->tpl_stats_ptr[mi_row * tpl_frame->stride + mi_col]; + printf("%f ", tpl_ptr->feature_score); + } + } + } + printf("\n"); + + rf_idx = gf_picture[frame_idx].ref_frame[idx]; + printf("has_ref %d\n", rf_idx != -1); + if (rf_idx != -1) { + YV12_BUFFER_CONFIG *ref_frame_buf = gf_picture[rf_idx].frame; + dump_frame_buf(ref_frame_buf); + } + } +} +#endif // DUMP_TPL_STATS +#endif // CONFIG_NON_GREEDY_MV + static void setup_tpl_stats(VP9_COMP *cpi) { GF_PICTURE gf_picture[MAX_LAG_BUFFERS]; const GF_GROUP *gf_group = &cpi->twopass.gf_group; int tpl_group_frames = 0; int frame_idx; + const BLOCK_SIZE bsize = BLOCK_32X32; init_gop_frames(cpi, gf_picture, gf_group, &tpl_group_frames); init_tpl_stats(cpi); // Backward propagation from tpl_group_frames to 1. - for (frame_idx = tpl_group_frames - 1; frame_idx > 0; --frame_idx) - mc_flow_dispenser(cpi, gf_picture, frame_idx); + for (frame_idx = tpl_group_frames - 1; frame_idx > 0; --frame_idx) { + mc_flow_dispenser(cpi, gf_picture, frame_idx, bsize); + } +#if CONFIG_NON_GREEDY_MV +#if DUMP_TPL_STATS + dump_tpl_stats(cpi, tpl_group_frames, gf_picture, bsize); +#endif // DUMP_TPL_STATS +#endif // CONFIG_NON_GREEDY_MV } int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, @@ -6058,10 +6134,12 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, // Is multi-arf enabled. // Note that at the moment multi_arf is only configured for 2 pass VBR and // will not work properly with svc. - if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf > 1)) - cpi->multi_arf_allowed = 1; + // Enable the Jingning's new "multi_layer_arf" code if "enable_auto_arf" + // is greater than or equal to 2. + if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf >= 2)) + cpi->multi_layer_arf = 1; else - cpi->multi_arf_allowed = 0; + cpi->multi_layer_arf = 0; // Normal defaults cm->reset_frame_context = 0; @@ -6089,9 +6167,14 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, } } + // Clear arf index stack before group of pictures processing starts. + if (cpi->twopass.gf_group.index == 1) { + stack_init(cpi->twopass.gf_group.arf_index_stack, MAX_LAG_BUFFERS * 2); + cpi->twopass.gf_group.stack_size = 0; + } + if (arf_src_index) { assert(arf_src_index <= rc->frames_to_key); - if ((source = vp9_lookahead_peek(cpi->lookahead, arf_src_index)) != NULL) { cpi->alt_ref_source = source; @@ -6192,7 +6275,11 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, // adjust frame rates based on timestamps given if (cm->show_frame) { - adjust_frame_rate(cpi, source); + if (cpi->use_svc && cpi->svc.use_set_ref_frame_config && + cpi->svc.duration[cpi->svc.spatial_layer_id] > 0) + vp9_svc_adjust_frame_rate(cpi); + else + adjust_frame_rate(cpi, source); } if (is_one_pass_cbr_svc(cpi)) { @@ -6211,15 +6298,6 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, cm->cur_frame = &pool->frame_bufs[cm->new_fb_idx]; - if (!cpi->use_svc && cpi->multi_arf_allowed) { - if (cm->frame_type == KEY_FRAME) { - init_buffer_indices(cpi); - } else if (oxcf->pass == 2) { - const GF_GROUP *const gf_group = &cpi->twopass.gf_group; - cpi->alt_fb_idx = gf_group->arf_ref_idx[gf_group->index]; - } - } - // Start with a 0 size frame. *size = 0; @@ -6364,7 +6442,8 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, ppflags.post_proc_flag = VP9D_DEBLOCK; ppflags.deblocking_level = 0; // not used in vp9_post_proc_frame() ppflags.noise_level = 0; // not used in vp9_post_proc_frame() - vp9_post_proc_frame(cm, pp, &ppflags); + vp9_post_proc_frame(cm, pp, &ppflags, + cpi->un_scaled_source->y_width); } #endif vpx_clear_system_state(); @@ -6410,11 +6489,11 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, cpi->summedp_quality += frame_ssim2 * weight; cpi->summedp_weights += weight; #if 0 - { + if (cm->show_frame) { FILE *f = fopen("q_used.stt", "a"); fprintf(f, "%5d : Y%f7.3:U%f7.3:V%f7.3:F%f7.3:S%7.3f\n", - cpi->common.current_video_frame, y2, u2, v2, - frame_psnr2, frame_ssim2); + cpi->common.current_video_frame, psnr2.psnr[1], + psnr2.psnr[2], psnr2.psnr[3], psnr2.psnr[0], frame_ssim2); fclose(f); } #endif @@ -6497,7 +6576,7 @@ int vp9_get_preview_raw_frame(VP9_COMP *cpi, YV12_BUFFER_CONFIG *dest, } else { int ret; #if CONFIG_VP9_POSTPROC - ret = vp9_post_proc_frame(cm, dest, flags); + ret = vp9_post_proc_frame(cm, dest, flags, cpi->un_scaled_source->y_width); #else if (cm->frame_to_show) { *dest = *cm->frame_to_show; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h index c740eada517..75f177fcc16 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_ENCODER_H_ -#define VP9_ENCODER_VP9_ENCODER_H_ +#ifndef VPX_VP9_ENCODER_VP9_ENCODER_H_ +#define VPX_VP9_ENCODER_VP9_ENCODER_H_ #include <stdio.h> @@ -289,6 +289,17 @@ typedef struct TplDepStats { int ref_frame_index; int_mv mv; + +#if CONFIG_NON_GREEDY_MV + int ready; + double mv_dist[3]; + double mv_cost[3]; + int64_t inter_cost_arr[3]; + int64_t recon_error_arr[3]; + int64_t sse_arr[3]; + int_mv mv_arr[3]; + double feature_score; +#endif } TplDepStats; typedef struct TplDepFrame { @@ -521,8 +532,6 @@ typedef struct VP9_COMP { int refresh_last_frame; int refresh_golden_frame; - int refresh_bwd_ref_frame; - int refresh_alt2_ref_frame; int refresh_alt_ref_frame; int ext_refresh_frame_flags_pending; @@ -684,10 +693,6 @@ typedef struct VP9_COMP { // Indices are: max_tx_size-1, tx_size_ctx, tx_size int tx_size_cost[TX_SIZES - 1][TX_SIZE_CONTEXTS][TX_SIZES]; - int multi_arf_allowed; - int multi_arf_enabled; - int multi_arf_last_grp_enabled; - #if CONFIG_VP9_TEMPORAL_DENOISING VP9_DENOISER denoiser; #endif @@ -762,13 +767,6 @@ typedef struct VP9_COMP { uint8_t *count_arf_frame_usage; uint8_t *count_lastgolden_frame_usage; - // Parameters on multi-layer ALTREFs - int num_extra_arfs; - int arf_map[MAX_EXT_ARFS + 1]; - int arf_pos_in_gf[MAX_EXT_ARFS + 1]; - int arf_pos_for_ovrly[MAX_EXT_ARFS + 1]; - int extra_arf_allowed; - int multi_layer_arf; vpx_roi_map_t roi; } VP9_COMP; @@ -818,6 +816,27 @@ int vp9_set_size_literal(VP9_COMP *cpi, unsigned int width, void vp9_set_svc(VP9_COMP *cpi, int use_svc); +static INLINE int stack_pop(int *stack, int stack_size) { + int idx; + const int r = stack[0]; + for (idx = 1; idx < stack_size; ++idx) stack[idx - 1] = stack[idx]; + + return r; +} + +static INLINE int stack_top(const int *stack) { return stack[0]; } + +static INLINE void stack_push(int *stack, int new_item, int stack_size) { + int idx; + for (idx = stack_size; idx > 0; --idx) stack[idx] = stack[idx - 1]; + stack[0] = new_item; +} + +static INLINE void stack_init(int *stack, int length) { + int idx; + for (idx = 0; idx < length; ++idx) stack[idx] = -1; +} + int vp9_get_quantizer(struct VP9_COMP *cpi); static INLINE int frame_is_kf_gf_arf(const VP9_COMP *cpi) { @@ -843,6 +862,10 @@ static INLINE int get_ref_frame_buf_idx(const VP9_COMP *const cpi, return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : INVALID_IDX; } +static INLINE RefCntBuffer *get_ref_cnt_buffer(VP9_COMMON *cm, int fb_idx) { + return fb_idx != INVALID_IDX ? &cm->buffer_pool->frame_bufs[fb_idx] : NULL; +} + static INLINE YV12_BUFFER_CONFIG *get_ref_frame_buffer( VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) { VP9_COMMON *const cm = &cpi->common; @@ -993,4 +1016,4 @@ void vp9_set_row_mt(VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_ENCODER_H_ +#endif // VPX_VP9_ENCODER_VP9_ENCODER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c index e8fc1107b68..dc08ef343e7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c @@ -270,19 +270,19 @@ void vp9_row_mt_sync_mem_alloc(VP9RowMTSync *row_mt_sync, VP9_COMMON *cm, { int i; - CHECK_MEM_ERROR(cm, row_mt_sync->mutex_, - vpx_malloc(sizeof(*row_mt_sync->mutex_) * rows)); - if (row_mt_sync->mutex_) { + CHECK_MEM_ERROR(cm, row_mt_sync->mutex, + vpx_malloc(sizeof(*row_mt_sync->mutex) * rows)); + if (row_mt_sync->mutex) { for (i = 0; i < rows; ++i) { - pthread_mutex_init(&row_mt_sync->mutex_[i], NULL); + pthread_mutex_init(&row_mt_sync->mutex[i], NULL); } } - CHECK_MEM_ERROR(cm, row_mt_sync->cond_, - vpx_malloc(sizeof(*row_mt_sync->cond_) * rows)); - if (row_mt_sync->cond_) { + CHECK_MEM_ERROR(cm, row_mt_sync->cond, + vpx_malloc(sizeof(*row_mt_sync->cond) * rows)); + if (row_mt_sync->cond) { for (i = 0; i < rows; ++i) { - pthread_cond_init(&row_mt_sync->cond_[i], NULL); + pthread_cond_init(&row_mt_sync->cond[i], NULL); } } } @@ -301,17 +301,17 @@ void vp9_row_mt_sync_mem_dealloc(VP9RowMTSync *row_mt_sync) { #if CONFIG_MULTITHREAD int i; - if (row_mt_sync->mutex_ != NULL) { + if (row_mt_sync->mutex != NULL) { for (i = 0; i < row_mt_sync->rows; ++i) { - pthread_mutex_destroy(&row_mt_sync->mutex_[i]); + pthread_mutex_destroy(&row_mt_sync->mutex[i]); } - vpx_free(row_mt_sync->mutex_); + vpx_free(row_mt_sync->mutex); } - if (row_mt_sync->cond_ != NULL) { + if (row_mt_sync->cond != NULL) { for (i = 0; i < row_mt_sync->rows; ++i) { - pthread_cond_destroy(&row_mt_sync->cond_[i]); + pthread_cond_destroy(&row_mt_sync->cond[i]); } - vpx_free(row_mt_sync->cond_); + vpx_free(row_mt_sync->cond); } #endif // CONFIG_MULTITHREAD vpx_free(row_mt_sync->cur_col); @@ -327,11 +327,11 @@ void vp9_row_mt_sync_read(VP9RowMTSync *const row_mt_sync, int r, int c) { const int nsync = row_mt_sync->sync_range; if (r && !(c & (nsync - 1))) { - pthread_mutex_t *const mutex = &row_mt_sync->mutex_[r - 1]; + pthread_mutex_t *const mutex = &row_mt_sync->mutex[r - 1]; pthread_mutex_lock(mutex); while (c > row_mt_sync->cur_col[r - 1] - nsync + 1) { - pthread_cond_wait(&row_mt_sync->cond_[r - 1], mutex); + pthread_cond_wait(&row_mt_sync->cond[r - 1], mutex); } pthread_mutex_unlock(mutex); } @@ -365,12 +365,12 @@ void vp9_row_mt_sync_write(VP9RowMTSync *const row_mt_sync, int r, int c, } if (sig) { - pthread_mutex_lock(&row_mt_sync->mutex_[r]); + pthread_mutex_lock(&row_mt_sync->mutex[r]); row_mt_sync->cur_col[r] = cur; - pthread_cond_signal(&row_mt_sync->cond_[r]); - pthread_mutex_unlock(&row_mt_sync->mutex_[r]); + pthread_cond_signal(&row_mt_sync->cond[r]); + pthread_mutex_unlock(&row_mt_sync->mutex[r]); } #else (void)row_mt_sync; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h index a396e621d7d..cda0293bcf0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_ETHREAD_H_ -#define VP9_ENCODER_VP9_ETHREAD_H_ +#ifndef VPX_VP9_ENCODER_VP9_ETHREAD_H_ +#define VPX_VP9_ENCODER_VP9_ETHREAD_H_ #ifdef __cplusplus extern "C" { @@ -33,8 +33,8 @@ typedef struct EncWorkerData { // Encoder row synchronization typedef struct VP9RowMTSyncData { #if CONFIG_MULTITHREAD - pthread_mutex_t *mutex_; - pthread_cond_t *cond_; + pthread_mutex_t *mutex; + pthread_cond_t *cond; #endif // Allocate memory to store the sb/mb block index in each row. int *cur_col; @@ -69,4 +69,4 @@ void vp9_temporal_filter_row_mt(struct VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_ETHREAD_H_ +#endif // VPX_VP9_ENCODER_VP9_ETHREAD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h index c0dd7571596..4ba7fc95e3d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_EXTEND_H_ -#define VP9_ENCODER_VP9_EXTEND_H_ +#ifndef VPX_VP9_ENCODER_VP9_EXTEND_H_ +#define VPX_VP9_ENCODER_VP9_EXTEND_H_ #include "vpx_scale/yv12config.h" #include "vpx/vpx_integer.h" @@ -28,4 +28,4 @@ void vp9_copy_and_extend_frame_with_rect(const YV12_BUFFER_CONFIG *src, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_EXTEND_H_ +#endif // VPX_VP9_ENCODER_VP9_EXTEND_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.c index 01ac22807f2..58c3a435d9f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.c @@ -44,6 +44,7 @@ #define COMPLEXITY_STATS_OUTPUT 0 #define FIRST_PASS_Q 10.0 +#define NORMAL_BOOST 100 #define MIN_ARF_GF_BOOST 240 #define MIN_DECAY_FACTOR 0.01 #define NEW_MV_MODE_PENALTY 32 @@ -2070,7 +2071,7 @@ static int calculate_boost_bits(int frame_count, int boost, // return 0 for invalid inputs (could arise e.g. through rounding errors) if (!boost || (total_group_bits <= 0) || (frame_count < 0)) return 0; - allocation_chunks = (frame_count * 100) + boost; + allocation_chunks = (frame_count * NORMAL_BOOST) + boost; // Prevent overflow. if (boost > 1023) { @@ -2084,18 +2085,6 @@ static int calculate_boost_bits(int frame_count, int boost, 0); } -// Current limit on maximum number of active arfs in a GF/ARF group. -#define MAX_ACTIVE_ARFS 2 -#define ARF_SLOT1 2 -#define ARF_SLOT2 3 -// This function indirects the choice of buffers for arfs. -// At the moment the values are fixed but this may change as part of -// the integration process with other codec features that swap buffers around. -static void get_arf_buffer_indices(unsigned char *arf_buffer_indices) { - arf_buffer_indices[0] = ARF_SLOT1; - arf_buffer_indices[1] = ARF_SLOT2; -} - // Used in corpus vbr: Calculates the total normalized group complexity score // for a given number of frames starting at the current position in the stats // file. @@ -2119,249 +2108,91 @@ static double calculate_group_score(VP9_COMP *cpi, double av_score, return score_total; } -static void define_gf_multi_arf_structure(VP9_COMP *cpi) { - RATE_CONTROL *const rc = &cpi->rc; - TWO_PASS *const twopass = &cpi->twopass; - GF_GROUP *const gf_group = &twopass->gf_group; - int i; - int frame_index = 0; - const int key_frame = cpi->common.frame_type == KEY_FRAME; - - // The use of bi-predictive frames are only enabled when following 3 - // conditions are met: - // (1) ALTREF is enabled; - // (2) The bi-predictive group interval is at least 2; and - // (3) The bi-predictive group interval is strictly smaller than the - // golden group interval. - const int is_bipred_enabled = - cpi->extra_arf_allowed && rc->source_alt_ref_pending && - rc->bipred_group_interval && - rc->bipred_group_interval <= - (rc->baseline_gf_interval - rc->source_alt_ref_pending); - int bipred_group_end = 0; - int bipred_frame_index = 0; - - const unsigned char ext_arf_interval = - (unsigned char)(rc->baseline_gf_interval / (cpi->num_extra_arfs + 1) - 1); - int which_arf = cpi->num_extra_arfs; - int subgroup_interval[MAX_EXT_ARFS + 1]; - int is_sg_bipred_enabled = is_bipred_enabled; - int accumulative_subgroup_interval = 0; - - // For key frames the frame target rate is already set and it - // is also the golden frame. - // === [frame_index == 0] === - if (!key_frame) { - if (rc->source_alt_ref_active) { - gf_group->update_type[frame_index] = OVERLAY_UPDATE; - gf_group->rf_level[frame_index] = INTER_NORMAL; - } else { - gf_group->update_type[frame_index] = GF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_STD; +static void find_arf_order(VP9_COMP *cpi, GF_GROUP *gf_group, + int *index_counter, int depth, int start, int end) { + TWO_PASS *twopass = &cpi->twopass; + const FIRSTPASS_STATS *const start_pos = twopass->stats_in; + FIRSTPASS_STATS fpf_frame; + const int mid = (start + end) >> 1; + const int min_frame_interval = 3; + int idx; + + // Process regular P frames + if ((end - start < min_frame_interval) || + (depth > cpi->oxcf.enable_auto_arf)) { + int idx; + for (idx = start; idx < end; ++idx) { + gf_group->update_type[*index_counter] = LF_UPDATE; + gf_group->arf_src_offset[*index_counter] = 0; + gf_group->rf_level[*index_counter] = INTER_NORMAL; + gf_group->layer_depth[*index_counter] = depth; + ++(*index_counter); } - gf_group->arf_update_idx[frame_index] = 0; - gf_group->arf_ref_idx[frame_index] = 0; + return; } - gf_group->bidir_pred_enabled[frame_index] = 0; - gf_group->brf_src_offset[frame_index] = 0; - - frame_index++; - - bipred_frame_index++; - - // === [frame_index == 1] === - if (rc->source_alt_ref_pending) { - gf_group->update_type[frame_index] = ARF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_STD; - gf_group->arf_src_offset[frame_index] = - (unsigned char)(rc->baseline_gf_interval - 1); - - gf_group->arf_update_idx[frame_index] = 0; - gf_group->arf_ref_idx[frame_index] = 0; - - gf_group->bidir_pred_enabled[frame_index] = 0; - gf_group->brf_src_offset[frame_index] = 0; - // NOTE: "bidir_pred_frame_index" stays unchanged for ARF_UPDATE frames. - - // Work out the ARFs' positions in this gf group - // NOTE: ALT_REFs' are indexed inversely, but coded in display order - // (except for the original ARF). In the example of three ALT_REF's, - // We index ALTREF's as: KEY ----- ALT2 ----- ALT1 ----- ALT0 - // but code them in the following order: - // KEY-ALT0-ALT2 ----- OVERLAY2-ALT1 ----- OVERLAY1 ----- OVERLAY0 - // - // arf_pos_for_ovrly[]: Position for OVERLAY - // arf_pos_in_gf[]: Position for ALTREF - cpi->arf_pos_for_ovrly[0] = frame_index + cpi->num_extra_arfs + - gf_group->arf_src_offset[frame_index] + 1; - for (i = 0; i < cpi->num_extra_arfs; ++i) { - cpi->arf_pos_for_ovrly[i + 1] = - frame_index + (cpi->num_extra_arfs - i) * (ext_arf_interval + 2); - subgroup_interval[i] = cpi->arf_pos_for_ovrly[i] - - cpi->arf_pos_for_ovrly[i + 1] - (i == 0 ? 1 : 2); - } - subgroup_interval[cpi->num_extra_arfs] = - cpi->arf_pos_for_ovrly[cpi->num_extra_arfs] - frame_index - - (cpi->num_extra_arfs == 0 ? 1 : 2); - - ++frame_index; + assert(abs(mid - start) >= 1 && abs(mid - end) >= 1); - // Insert an extra ARF - // === [frame_index == 2] === - if (cpi->num_extra_arfs) { - gf_group->update_type[frame_index] = INTNL_ARF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_LOW; - gf_group->arf_src_offset[frame_index] = ext_arf_interval; + // Process ARF frame + gf_group->layer_depth[*index_counter] = depth; + gf_group->update_type[*index_counter] = ARF_UPDATE; + gf_group->arf_src_offset[*index_counter] = mid - start; + gf_group->rf_level[*index_counter] = GF_ARF_LOW; - gf_group->arf_update_idx[frame_index] = which_arf; - gf_group->arf_ref_idx[frame_index] = 0; - ++frame_index; - } - accumulative_subgroup_interval += subgroup_interval[cpi->num_extra_arfs]; - } + for (idx = 0; idx <= mid; ++idx) + if (EOF == input_stats(twopass, &fpf_frame)) break; - for (i = 0; i < rc->baseline_gf_interval - rc->source_alt_ref_pending; ++i) { - gf_group->arf_update_idx[frame_index] = which_arf; - gf_group->arf_ref_idx[frame_index] = which_arf; + gf_group->gfu_boost[*index_counter] = VPXMAX( + MIN_ARF_GF_BOOST, calc_arf_boost(cpi, end - mid, mid - start) >> depth); - // If we are going to have ARFs, check whether we can have BWDREF in this - // subgroup, and further, whether we can have ARF subgroup which contains - // the BWDREF subgroup but contained within the GF group: - // - // GF group --> ARF subgroup --> BWDREF subgroup - if (rc->source_alt_ref_pending) { - is_sg_bipred_enabled = - is_bipred_enabled && - (subgroup_interval[which_arf] > rc->bipred_group_interval); - } + reset_fpf_position(twopass, start_pos); - // NOTE: 1. BIDIR_PRED is only enabled when the length of the bi-predictive - // frame group interval is strictly smaller than that of the GOLDEN - // FRAME group interval. - // 2. Currently BIDIR_PRED is only enabled when alt-ref is on. - if (is_sg_bipred_enabled && !bipred_group_end) { - const int cur_brf_src_offset = rc->bipred_group_interval - 1; - - if (bipred_frame_index == 1) { - // --- BRF_UPDATE --- - gf_group->update_type[frame_index] = BRF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_LOW; - gf_group->brf_src_offset[frame_index] = cur_brf_src_offset; - } else if (bipred_frame_index == rc->bipred_group_interval) { - // --- LAST_BIPRED_UPDATE --- - gf_group->update_type[frame_index] = LAST_BIPRED_UPDATE; - gf_group->rf_level[frame_index] = INTER_NORMAL; - gf_group->brf_src_offset[frame_index] = 0; - - // Reset the bi-predictive frame index. - bipred_frame_index = 0; - } else { - // --- BIPRED_UPDATE --- - gf_group->update_type[frame_index] = BIPRED_UPDATE; - gf_group->rf_level[frame_index] = INTER_NORMAL; - gf_group->brf_src_offset[frame_index] = 0; - } - gf_group->bidir_pred_enabled[frame_index] = 1; - - bipred_frame_index++; - // Check whether the next bi-predictive frame group would entirely be - // included within the current golden frame group. - // In addition, we need to avoid coding a BRF right before an ARF. - if (bipred_frame_index == 1 && - (i + 2 + cur_brf_src_offset) >= accumulative_subgroup_interval) { - bipred_group_end = 1; - } - } else { - gf_group->update_type[frame_index] = LF_UPDATE; - gf_group->rf_level[frame_index] = INTER_NORMAL; - gf_group->bidir_pred_enabled[frame_index] = 0; - gf_group->brf_src_offset[frame_index] = 0; - } + ++(*index_counter); - ++frame_index; + find_arf_order(cpi, gf_group, index_counter, depth + 1, start, mid); - // Check if we need to update the ARF. - if (is_sg_bipred_enabled && cpi->num_extra_arfs && which_arf > 0 && - frame_index > cpi->arf_pos_for_ovrly[which_arf]) { - --which_arf; - accumulative_subgroup_interval += subgroup_interval[which_arf] + 1; - - // Meet the new subgroup; Reset the bipred_group_end flag. - bipred_group_end = 0; - // Insert another extra ARF after the overlay frame - if (which_arf) { - gf_group->update_type[frame_index] = INTNL_ARF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_LOW; - gf_group->arf_src_offset[frame_index] = ext_arf_interval; - - gf_group->arf_update_idx[frame_index] = which_arf; - gf_group->arf_ref_idx[frame_index] = 0; - ++frame_index; - } - } - } + gf_group->update_type[*index_counter] = USE_BUF_FRAME; + gf_group->arf_src_offset[*index_counter] = 0; + gf_group->rf_level[*index_counter] = INTER_NORMAL; + gf_group->layer_depth[*index_counter] = depth; + ++(*index_counter); - // NOTE: We need to configure the frame at the end of the sequence + 1 that - // is the start frame for the next group. Otherwise prior to the call to - // av1_rc_get_second_pass_params() the data will be undefined. - gf_group->arf_update_idx[frame_index] = 0; - gf_group->arf_ref_idx[frame_index] = 0; + find_arf_order(cpi, gf_group, index_counter, depth + 1, mid + 1, end); +} - if (rc->source_alt_ref_pending) { +static INLINE void set_gf_overlay_frame_type(GF_GROUP *gf_group, + int frame_index, + int source_alt_ref_active) { + if (source_alt_ref_active) { gf_group->update_type[frame_index] = OVERLAY_UPDATE; gf_group->rf_level[frame_index] = INTER_NORMAL; - - cpi->arf_pos_in_gf[0] = 1; - if (cpi->num_extra_arfs) { - // Overwrite the update_type for extra-ARF's corresponding internal - // OVERLAY's: Change from LF_UPDATE to INTNL_OVERLAY_UPDATE. - for (i = cpi->num_extra_arfs; i > 0; --i) { - cpi->arf_pos_in_gf[i] = - (i == cpi->num_extra_arfs ? 2 : cpi->arf_pos_for_ovrly[i + 1] + 1); - - gf_group->update_type[cpi->arf_pos_for_ovrly[i]] = INTNL_OVERLAY_UPDATE; - gf_group->rf_level[cpi->arf_pos_for_ovrly[i]] = INTER_NORMAL; - } - } + gf_group->layer_depth[frame_index] = MAX_ARF_LAYERS - 1; } else { gf_group->update_type[frame_index] = GF_UPDATE; gf_group->rf_level[frame_index] = GF_ARF_STD; + gf_group->layer_depth[frame_index] = 0; } - - gf_group->bidir_pred_enabled[frame_index] = 0; - gf_group->brf_src_offset[frame_index] = 0; } -static void define_gf_group_structure(VP9_COMP *cpi) { +static int define_gf_group_structure(VP9_COMP *cpi) { RATE_CONTROL *const rc = &cpi->rc; TWO_PASS *const twopass = &cpi->twopass; GF_GROUP *const gf_group = &twopass->gf_group; int i; int frame_index = 0; int key_frame; - int mid_frame_idx; - unsigned char arf_buffer_indices[MAX_ACTIVE_ARFS]; int normal_frames; key_frame = cpi->common.frame_type == KEY_FRAME; - get_arf_buffer_indices(arf_buffer_indices); + gf_group->frame_start = cpi->common.current_video_frame; + gf_group->frame_end = gf_group->frame_start + rc->baseline_gf_interval - 1; // For key frames the frame target rate is already set and it // is also the golden frame. // === [frame_index == 0] === - if (!key_frame) { - if (rc->source_alt_ref_active) { - gf_group->update_type[frame_index] = OVERLAY_UPDATE; - gf_group->rf_level[frame_index] = INTER_NORMAL; - } else { - gf_group->update_type[frame_index] = GF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_STD; - } - gf_group->arf_update_idx[frame_index] = arf_buffer_indices[0]; - gf_group->arf_ref_idx[frame_index] = arf_buffer_indices[0]; - } + if (!key_frame) + set_gf_overlay_frame_type(gf_group, frame_index, rc->source_alt_ref_active); ++frame_index; @@ -2369,49 +2200,34 @@ static void define_gf_group_structure(VP9_COMP *cpi) { if (rc->source_alt_ref_pending) { gf_group->update_type[frame_index] = ARF_UPDATE; gf_group->rf_level[frame_index] = GF_ARF_STD; - + gf_group->layer_depth[frame_index] = 1; gf_group->arf_src_offset[frame_index] = (unsigned char)(rc->baseline_gf_interval - 1); - - gf_group->arf_update_idx[frame_index] = arf_buffer_indices[0]; - gf_group->arf_ref_idx[frame_index] = - arf_buffer_indices[cpi->multi_arf_last_grp_enabled && - rc->source_alt_ref_active]; ++frame_index; - - if (cpi->multi_arf_enabled) { - // Set aside a slot for a level 1 arf. - gf_group->update_type[frame_index] = ARF_UPDATE; - gf_group->rf_level[frame_index] = GF_ARF_LOW; - gf_group->arf_src_offset[frame_index] = - (unsigned char)((rc->baseline_gf_interval >> 1) - 1); - gf_group->arf_update_idx[frame_index] = arf_buffer_indices[1]; - gf_group->arf_ref_idx[frame_index] = arf_buffer_indices[0]; - ++frame_index; - } } - // Note index of the first normal inter frame int eh group (not gf kf arf) - gf_group->first_inter_index = frame_index; + if (rc->source_alt_ref_pending && cpi->multi_layer_arf) { + find_arf_order(cpi, gf_group, &frame_index, 2, 0, + rc->baseline_gf_interval - 1); - // Define middle frame - mid_frame_idx = frame_index + (rc->baseline_gf_interval >> 1) - 1; + set_gf_overlay_frame_type(gf_group, frame_index, + rc->source_alt_ref_pending); + + gf_group->arf_src_offset[frame_index] = 0; + + return frame_index; + } normal_frames = rc->baseline_gf_interval - (key_frame || rc->source_alt_ref_pending); + for (i = 0; i < normal_frames; ++i) { - int arf_idx = 0; if (twopass->stats_in >= twopass->stats_in_end) break; - if (rc->source_alt_ref_pending && cpi->multi_arf_enabled) { - if (frame_index <= mid_frame_idx) arf_idx = 1; - } - - gf_group->arf_update_idx[frame_index] = arf_buffer_indices[arf_idx]; - gf_group->arf_ref_idx[frame_index] = arf_buffer_indices[arf_idx]; - gf_group->update_type[frame_index] = LF_UPDATE; gf_group->rf_level[frame_index] = INTER_NORMAL; + gf_group->arf_src_offset[frame_index] = 0; + gf_group->layer_depth[frame_index] = MAX_ARF_LAYERS - 1; ++frame_index; } @@ -2420,27 +2236,23 @@ static void define_gf_group_structure(VP9_COMP *cpi) { // We need to configure the frame at the end of the sequence + 1 that will be // the start frame for the next group. Otherwise prior to the call to // vp9_rc_get_second_pass_params() the data will be undefined. - gf_group->arf_update_idx[frame_index] = arf_buffer_indices[0]; - gf_group->arf_ref_idx[frame_index] = arf_buffer_indices[0]; + + set_gf_overlay_frame_type(gf_group, frame_index, rc->source_alt_ref_pending); if (rc->source_alt_ref_pending) { gf_group->update_type[frame_index] = OVERLAY_UPDATE; gf_group->rf_level[frame_index] = INTER_NORMAL; - - // Final setup for second arf and its overlay. - if (cpi->multi_arf_enabled) - gf_group->update_type[mid_frame_idx] = OVERLAY_UPDATE; } else { gf_group->update_type[frame_index] = GF_UPDATE; gf_group->rf_level[frame_index] = GF_ARF_STD; } + gf_group->arf_src_offset[frame_index] = 0; - // Note whether multi-arf was enabled this group for next time. - cpi->multi_arf_last_grp_enabled = cpi->multi_arf_enabled; + return frame_index; } -static void allocate_gf_multi_arf_bits(VP9_COMP *cpi, int64_t gf_group_bits, - int gf_arf_bits) { +static void allocate_gf_group_bits(VP9_COMP *cpi, int64_t gf_group_bits, + int gf_arf_bits) { VP9EncoderConfig *const oxcf = &cpi->oxcf; RATE_CONTROL *const rc = &cpi->rc; TWO_PASS *const twopass = &cpi->twopass; @@ -2452,6 +2264,7 @@ static void allocate_gf_multi_arf_bits(VP9_COMP *cpi, int64_t gf_group_bits, int key_frame; const int max_bits = frame_max_bits(&cpi->rc, oxcf); int64_t total_group_bits = gf_group_bits; + int mid_frame_idx; int normal_frames; int normal_frame_bits; int last_frame_reduction = 0; @@ -2460,9 +2273,7 @@ static void allocate_gf_multi_arf_bits(VP9_COMP *cpi, int64_t gf_group_bits, double this_frame_score = 1.0; // Define the GF structure and specify - define_gf_multi_arf_structure(cpi); - - //======================================== + int gop_frames = define_gf_group_structure(cpi); key_frame = cpi->common.frame_type == KEY_FRAME; @@ -2486,165 +2297,71 @@ static void allocate_gf_multi_arf_bits(VP9_COMP *cpi, int64_t gf_group_bits, gf_group->bit_allocation[frame_index] = gf_arf_bits; ++frame_index; - - // Skip all the extra-ARF's right after ARF at the starting segment of - // the current GF group. - if (cpi->num_extra_arfs) { - while (gf_group->update_type[frame_index] == INTNL_ARF_UPDATE) - ++frame_index; - } } + // Define middle frame + mid_frame_idx = frame_index + (rc->baseline_gf_interval >> 1) - 1; + normal_frames = (rc->baseline_gf_interval - rc->source_alt_ref_pending); if (normal_frames > 1) normal_frame_bits = (int)(total_group_bits / normal_frames); else normal_frame_bits = (int)total_group_bits; - if (oxcf->vbr_corpus_complexity) { - av_score = get_distribution_av_err(cpi, twopass); - tot_norm_frame_score = calculate_group_score(cpi, av_score, normal_frames); - } + gf_group->gfu_boost[1] = rc->gfu_boost; - // Allocate bits to the other frames in the group. - for (i = 0; i < normal_frames; ++i) { - if (EOF == input_stats(twopass, &frame_stats)) break; + if (cpi->multi_layer_arf) { + int idx; + int arf_depth_bits[MAX_ARF_LAYERS] = { 0 }; + int arf_depth_count[MAX_ARF_LAYERS] = { 0 }; + int arf_depth_boost[MAX_ARF_LAYERS] = { 0 }; + int total_arfs = 1; // Account for the base layer ARF. - if (oxcf->vbr_corpus_complexity) { - this_frame_score = calculate_norm_frame_score(cpi, twopass, oxcf, - &frame_stats, av_score); - normal_frame_bits = (int)((double)total_group_bits * - (this_frame_score / tot_norm_frame_score)); + for (idx = 0; idx < gop_frames; ++idx) { + if (gf_group->update_type[idx] == ARF_UPDATE) { + arf_depth_boost[gf_group->layer_depth[idx]] += gf_group->gfu_boost[idx]; + ++arf_depth_count[gf_group->layer_depth[idx]]; + } } - target_frame_size = normal_frame_bits; - if ((i == (normal_frames - 1)) && (i >= 1)) { - last_frame_reduction = normal_frame_bits / 16; - target_frame_size -= last_frame_reduction; - } + for (idx = 2; idx < MAX_ARF_LAYERS; ++idx) { + if (arf_depth_boost[idx] == 0) break; + arf_depth_bits[idx] = calculate_boost_bits( + rc->baseline_gf_interval, arf_depth_boost[idx], total_group_bits); - // TODO(zoeliu): Further check whether following is needed for - // hierarchical GF group structure. - if (rc->source_alt_ref_pending && cpi->multi_arf_enabled) { - target_frame_size -= (target_frame_size >> 4); + total_group_bits -= arf_depth_bits[idx]; + total_arfs += arf_depth_count[idx]; } + // offset the base layer arf + normal_frames -= (total_arfs - 1); + if (normal_frames > 1) + normal_frame_bits = (int)(total_group_bits / normal_frames); + else + normal_frame_bits = (int)total_group_bits; + + target_frame_size = normal_frame_bits; target_frame_size = clamp(target_frame_size, 0, VPXMIN(max_bits, (int)total_group_bits)); - if (gf_group->update_type[frame_index] == BRF_UPDATE) { - // Boost up the allocated bits on BWDREF_FRAME - gf_group->bit_allocation[frame_index] = - target_frame_size + (target_frame_size >> 2); - } else if (gf_group->update_type[frame_index] == LAST_BIPRED_UPDATE) { - // Press down the allocated bits on LAST_BIPRED_UPDATE frames - gf_group->bit_allocation[frame_index] = - target_frame_size - (target_frame_size >> 1); - } else if (gf_group->update_type[frame_index] == BIPRED_UPDATE) { - // TODO(zoeliu): Investigate whether the allocated bits on BIPRED_UPDATE - // frames need to be further adjusted. - gf_group->bit_allocation[frame_index] = target_frame_size; - } else { - assert(gf_group->update_type[frame_index] == LF_UPDATE || - gf_group->update_type[frame_index] == INTNL_OVERLAY_UPDATE); - gf_group->bit_allocation[frame_index] = target_frame_size; - } - - ++frame_index; - - // Skip all the extra-ARF's. - if (cpi->num_extra_arfs) { - while (gf_group->update_type[frame_index] == INTNL_ARF_UPDATE) - ++frame_index; - } - } - - // NOTE: We need to configure the frame at the end of the sequence + 1 that - // will be the start frame for the next group. Otherwise prior to the - // call to av1_rc_get_second_pass_params() the data will be undefined. - if (rc->source_alt_ref_pending) { - if (cpi->num_extra_arfs) { - // NOTE: For bit allocation, move the allocated bits associated with - // INTNL_OVERLAY_UPDATE to the corresponding INTNL_ARF_UPDATE. - // i > 0 for extra-ARF's and i == 0 for ARF: - // arf_pos_for_ovrly[i]: Position for INTNL_OVERLAY_UPDATE - // arf_pos_in_gf[i]: Position for INTNL_ARF_UPDATE - for (i = cpi->num_extra_arfs; i > 0; --i) { - assert(gf_group->update_type[cpi->arf_pos_for_ovrly[i]] == - INTNL_OVERLAY_UPDATE); - - // Encoder's choice: - // Set show_existing_frame == 1 for all extra-ARF's, and hence - // allocate zero bit for both all internal OVERLAY frames. - gf_group->bit_allocation[cpi->arf_pos_in_gf[i]] = - gf_group->bit_allocation[cpi->arf_pos_for_ovrly[i]]; - gf_group->bit_allocation[cpi->arf_pos_for_ovrly[i]] = 0; + // The first layer ARF has its bit allocation assigned. + for (idx = frame_index; idx < gop_frames; ++idx) { + switch (gf_group->update_type[idx]) { + case ARF_UPDATE: + gf_group->bit_allocation[idx] = + (int)((arf_depth_bits[gf_group->layer_depth[idx]] * + gf_group->gfu_boost[idx]) / + arf_depth_boost[gf_group->layer_depth[idx]]); + break; + case USE_BUF_FRAME: gf_group->bit_allocation[idx] = 0; break; + default: gf_group->bit_allocation[idx] = target_frame_size; break; } } - } -} - -static void allocate_gf_group_bits(VP9_COMP *cpi, int64_t gf_group_bits, - int gf_arf_bits) { - VP9EncoderConfig *const oxcf = &cpi->oxcf; - RATE_CONTROL *const rc = &cpi->rc; - TWO_PASS *const twopass = &cpi->twopass; - GF_GROUP *const gf_group = &twopass->gf_group; - FIRSTPASS_STATS frame_stats; - int i; - int frame_index = 0; - int target_frame_size; - int key_frame; - const int max_bits = frame_max_bits(&cpi->rc, oxcf); - int64_t total_group_bits = gf_group_bits; - int mid_boost_bits = 0; - int mid_frame_idx; - int normal_frames; - int normal_frame_bits; - int last_frame_reduction = 0; - double av_score = 1.0; - double tot_norm_frame_score = 1.0; - double this_frame_score = 1.0; - - // Define the GF structure and specify - define_gf_group_structure(cpi); - - key_frame = cpi->common.frame_type == KEY_FRAME; - - // For key frames the frame target rate is already set and it - // is also the golden frame. - // === [frame_index == 0] === - if (!key_frame) { - gf_group->bit_allocation[frame_index] = - rc->source_alt_ref_active ? 0 : gf_arf_bits; - } - - // Deduct the boost bits for arf (or gf if it is not a key frame) - // from the group total. - if (rc->source_alt_ref_pending || !key_frame) total_group_bits -= gf_arf_bits; + gf_group->bit_allocation[idx] = 0; - ++frame_index; - - // === [frame_index == 1] === - // Store the bits to spend on the ARF if there is one. - if (rc->source_alt_ref_pending) { - gf_group->bit_allocation[frame_index] = gf_arf_bits; - - ++frame_index; - - // Set aside a slot for a level 1 arf. - if (cpi->multi_arf_enabled) ++frame_index; + return; } - // Define middle frame - mid_frame_idx = frame_index + (rc->baseline_gf_interval >> 1) - 1; - - normal_frames = (rc->baseline_gf_interval - rc->source_alt_ref_pending); - if (normal_frames > 1) - normal_frame_bits = (int)(total_group_bits / normal_frames); - else - normal_frame_bits = (int)total_group_bits; - if (oxcf->vbr_corpus_complexity) { av_score = get_distribution_av_err(cpi, twopass); tot_norm_frame_score = calculate_group_score(cpi, av_score, normal_frames); @@ -2666,11 +2383,6 @@ static void allocate_gf_group_bits(VP9_COMP *cpi, int64_t gf_group_bits, target_frame_size -= last_frame_reduction; } - if (rc->source_alt_ref_pending && cpi->multi_arf_enabled) { - mid_boost_bits += (target_frame_size >> 4); - target_frame_size -= (target_frame_size >> 4); - } - target_frame_size = clamp(target_frame_size, 0, VPXMIN(max_bits, (int)total_group_bits)); @@ -2685,15 +2397,6 @@ static void allocate_gf_group_bits(VP9_COMP *cpi, int64_t gf_group_bits, // We need to configure the frame at the end of the sequence + 1 that will be // the start frame for the next group. Otherwise prior to the call to // vp9_rc_get_second_pass_params() the data will be undefined. - - if (rc->source_alt_ref_pending) { - // Final setup for second arf and its overlay. - if (cpi->multi_arf_enabled) { - gf_group->bit_allocation[2] = - gf_group->bit_allocation[mid_frame_idx] + mid_boost_bits; - gf_group->bit_allocation[mid_frame_idx] = 0; - } - } } // Adjusts the ARNF filter for a GF group. @@ -2711,7 +2414,6 @@ static void adjust_group_arnr_filter(VP9_COMP *cpi, double section_noise, } // Analyse and define a gf/arf group. -#define ARF_DECAY_BREAKOUT 0.10 #define ARF_ABS_ZOOM_THRESH 4.0 #define MAX_GF_BOOST 5400 @@ -2756,7 +2458,7 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { const int is_key_frame = frame_is_intra_only(cm); const int arf_active_or_kf = is_key_frame || rc->source_alt_ref_active; - int disable_bwd_extarf; + double gop_intra_factor = 1.0; // Reset the GF group data structures unless this is a key // frame in which case it will already have been done. @@ -2797,36 +2499,49 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { { int int_max_q = (int)(vp9_convert_qindex_to_q(twopass->active_worst_quality, cpi->common.bit_depth)); - int int_lbq = (int)(vp9_convert_qindex_to_q(rc->last_boosted_qindex, - cpi->common.bit_depth)); + int q_term = (cm->current_video_frame == 0) + ? int_max_q / 32 + : (int)(vp9_convert_qindex_to_q(rc->last_boosted_qindex, + cpi->common.bit_depth) / + 6); active_min_gf_interval = rc->min_gf_interval + arf_active_or_kf + VPXMIN(2, int_max_q / 200); active_min_gf_interval = VPXMIN(active_min_gf_interval, rc->max_gf_interval + arf_active_or_kf); - if (cpi->multi_arf_allowed) { - active_max_gf_interval = rc->max_gf_interval; - } else { - // The value chosen depends on the active Q range. At low Q we have - // bits to spare and are better with a smaller interval and smaller boost. - // At high Q when there are few bits to spare we are better with a longer - // interval to spread the cost of the GF. - active_max_gf_interval = 12 + arf_active_or_kf + VPXMIN(4, (int_lbq / 6)); - - // We have: active_min_gf_interval <= - // rc->max_gf_interval + arf_active_or_kf. - if (active_max_gf_interval < active_min_gf_interval) { - active_max_gf_interval = active_min_gf_interval; - } else { - active_max_gf_interval = VPXMIN(active_max_gf_interval, - rc->max_gf_interval + arf_active_or_kf); - } + // The value chosen depends on the active Q range. At low Q we have + // bits to spare and are better with a smaller interval and smaller boost. + // At high Q when there are few bits to spare we are better with a longer + // interval to spread the cost of the GF. + active_max_gf_interval = 11 + arf_active_or_kf + VPXMIN(5, q_term); - // Would the active max drop us out just before the near the next kf? - if ((active_max_gf_interval <= rc->frames_to_key) && - (active_max_gf_interval >= (rc->frames_to_key - rc->min_gf_interval))) - active_max_gf_interval = rc->frames_to_key / 2; + // Force max GF interval to be odd. + active_max_gf_interval = active_max_gf_interval | 0x01; + + // We have: active_min_gf_interval <= + // rc->max_gf_interval + arf_active_or_kf. + if (active_max_gf_interval < active_min_gf_interval) { + active_max_gf_interval = active_min_gf_interval; + } else { + active_max_gf_interval = VPXMIN(active_max_gf_interval, + rc->max_gf_interval + arf_active_or_kf); } + + // Would the active max drop us out just before the near the next kf? + if ((active_max_gf_interval <= rc->frames_to_key) && + (active_max_gf_interval >= (rc->frames_to_key - rc->min_gf_interval))) + active_max_gf_interval = rc->frames_to_key / 2; + } + + if (cpi->multi_layer_arf) { + int layers = 0; + int max_layers = VPXMIN(MAX_ARF_LAYERS, cpi->oxcf.enable_auto_arf); + + // Adapt the intra_error factor to active_max_gf_interval limit. + for (i = active_max_gf_interval; i > 0; i >>= 1) ++layers; + + layers = VPXMIN(max_layers, layers); + gop_intra_factor += (layers * 0.25); } i = 0; @@ -2901,11 +2616,11 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { // Don't break out with a very short interval. (i >= active_min_gf_interval) && // If possible dont break very close to a kf - ((rc->frames_to_key - i) >= rc->min_gf_interval) && + ((rc->frames_to_key - i) >= rc->min_gf_interval) && (i & 0x01) && (!flash_detected) && ((mv_ratio_accumulator > mv_ratio_accumulator_thresh) || (abs_mv_in_out_accumulator > abs_mv_in_out_thresh) || - (sr_accumulator > next_frame.intra_error)))) { + (sr_accumulator > gop_intra_factor * next_frame.intra_error)))) { break; } @@ -2926,13 +2641,6 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { // Calculate the boost for alt ref. rc->gfu_boost = calc_arf_boost(cpi, forward_frames, (i - 1)); rc->source_alt_ref_pending = 1; - - // Test to see if multi arf is appropriate. - cpi->multi_arf_enabled = - (cpi->multi_arf_allowed && (rc->baseline_gf_interval >= 6) && - (zero_motion_accumulator < 0.995)) - ? 1 - : 0; } else { rc->gfu_boost = VPXMIN(MAX_GF_BOOST, calc_arf_boost(cpi, 0, (i - 1))); rc->source_alt_ref_pending = 0; @@ -2945,44 +2653,7 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { rc->gfu_boost = VPXMIN((int)rc->gfu_boost, i * 200); #endif - rc->baseline_gf_interval = - ((twopass->kf_zeromotion_pct >= STATIC_KF_GROUP_THRESH) && - (i >= rc->frames_to_key)) - ? i - : (i - (is_key_frame || rc->source_alt_ref_pending)); - - // TODO(zoeliu): Turn on the option to disable extra ALTREFs for still GF - // groups. - // Disable extra altrefs for "still" gf group: - // zero_motion_accumulator: minimum percentage of (0,0) motion; - // avg_sr_coded_error: average of the SSE per pixel of each frame; - // avg_raw_err_stdev: average of the standard deviation of (0,0) - // motion error per block of each frame. -#if 0 - assert(num_mbs > 0); - disable_bwd_extarf = - (zero_motion_accumulator > MIN_ZERO_MOTION && - avg_sr_coded_error / num_mbs < MAX_SR_CODED_ERROR && - avg_raw_err_stdev < MAX_RAW_ERR_VAR); -#else - disable_bwd_extarf = 0; -#endif // 0 - - if (disable_bwd_extarf) cpi->extra_arf_allowed = 0; - - if (!cpi->extra_arf_allowed) { - cpi->num_extra_arfs = 0; - } else { - // Compute how many extra alt_refs we can have - cpi->num_extra_arfs = get_number_of_extra_arfs(rc->baseline_gf_interval, - rc->source_alt_ref_pending); - } - // Currently at maximum two extra ARFs' are allowed - assert(cpi->num_extra_arfs <= MAX_EXT_ARFS); - - rc->bipred_group_interval = BFG_INTERVAL; - // The minimum bi-predictive frame group interval is 2. - if (rc->bipred_group_interval < 2) rc->bipred_group_interval = 0; + rc->baseline_gf_interval = i - rc->source_alt_ref_pending; // Reset the file position. reset_fpf_position(twopass, start_pos); @@ -3035,11 +2706,7 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { twopass->kf_group_error_left -= gf_group_err; // Allocate bits to each of the frames in the GF group. - if (cpi->extra_arf_allowed) { - allocate_gf_multi_arf_bits(cpi, gf_group_bits, gf_arf_bits); - } else { - allocate_gf_group_bits(cpi, gf_group_bits, gf_arf_bits); - } + allocate_gf_group_bits(cpi, gf_group_bits, gf_arf_bits); // Reset the file position. reset_fpf_position(twopass, start_pos); @@ -3242,7 +2909,6 @@ static void find_next_key_frame(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { // Clear the alt ref active flag and last group multi arf flags as they // can never be set for a key frame. rc->source_alt_ref_active = 0; - cpi->multi_arf_last_grp_enabled = 0; // KF is always a GF so clear frames till next gf counter. rc->frames_till_gf_update_due = 0; @@ -3464,113 +3130,6 @@ static void find_next_key_frame(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) { } } -// Define the reference buffers that will be updated post encode. -static void configure_multi_arf_buffer_updates(VP9_COMP *cpi) { - TWO_PASS *const twopass = &cpi->twopass; - - cpi->rc.is_src_frame_alt_ref = 0; - cpi->rc.is_bwd_ref_frame = 0; - cpi->rc.is_last_bipred_frame = 0; - cpi->rc.is_bipred_frame = 0; - cpi->rc.is_src_frame_ext_arf = 0; - - switch (twopass->gf_group.update_type[twopass->gf_group.index]) { - case KF_UPDATE: - cpi->refresh_last_frame = 1; - cpi->refresh_golden_frame = 1; - cpi->refresh_bwd_ref_frame = 1; - cpi->refresh_alt2_ref_frame = 1; - cpi->refresh_alt_ref_frame = 1; - break; - - case LF_UPDATE: - cpi->refresh_last_frame = 1; - cpi->refresh_golden_frame = 0; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - break; - - case GF_UPDATE: - cpi->refresh_last_frame = 1; - cpi->refresh_golden_frame = 1; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - break; - - case OVERLAY_UPDATE: - cpi->refresh_last_frame = 0; - cpi->refresh_golden_frame = 1; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - - cpi->rc.is_src_frame_alt_ref = 1; - break; - - case ARF_UPDATE: - cpi->refresh_last_frame = 0; - cpi->refresh_golden_frame = 0; - // NOTE: BWDREF does not get updated along with ALTREF_FRAME. - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 1; - break; - - case BRF_UPDATE: - cpi->refresh_last_frame = 0; - cpi->refresh_golden_frame = 0; - cpi->refresh_bwd_ref_frame = 1; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - - cpi->rc.is_bwd_ref_frame = 1; - break; - - case LAST_BIPRED_UPDATE: - cpi->refresh_last_frame = 1; - cpi->refresh_golden_frame = 0; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - - cpi->rc.is_last_bipred_frame = 1; - break; - - case BIPRED_UPDATE: - cpi->refresh_last_frame = 1; - cpi->refresh_golden_frame = 0; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - - cpi->rc.is_bipred_frame = 1; - break; - - case INTNL_OVERLAY_UPDATE: - cpi->refresh_last_frame = 1; - cpi->refresh_golden_frame = 0; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 0; - cpi->refresh_alt_ref_frame = 0; - - cpi->rc.is_src_frame_alt_ref = 1; - cpi->rc.is_src_frame_ext_arf = 1; - break; - - case INTNL_ARF_UPDATE: - cpi->refresh_last_frame = 0; - cpi->refresh_golden_frame = 0; - cpi->refresh_bwd_ref_frame = 0; - cpi->refresh_alt2_ref_frame = 1; - cpi->refresh_alt_ref_frame = 0; - break; - - default: assert(0); break; - } -} - static int is_skippable_frame(const VP9_COMP *cpi) { // If the current frame does not have non-zero motion vector detected in the // first pass, and so do its previous and forward frames, then this frame @@ -3604,11 +3163,7 @@ void vp9_rc_get_second_pass_params(VP9_COMP *cpi) { if (gf_group->update_type[gf_group->index] == ARF_UPDATE) { int target_rate; - if (cpi->extra_arf_allowed) { - configure_multi_arf_buffer_updates(cpi); - } else { - vp9_configure_buffer_updates(cpi, gf_group->index); - } + vp9_configure_buffer_updates(cpi, gf_group->index); target_rate = gf_group->bit_allocation[gf_group->index]; target_rate = vp9_rc_clamp_pframe_target_size(cpi, target_rate); @@ -3701,11 +3256,7 @@ void vp9_rc_get_second_pass_params(VP9_COMP *cpi) { #endif } - if (cpi->extra_arf_allowed) { - configure_multi_arf_buffer_updates(cpi); - } else { - vp9_configure_buffer_updates(cpi, gf_group->index); - } + vp9_configure_buffer_updates(cpi, gf_group->index); // Do the firstpass stats indicate that this frame is skippable for the // partition search? diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h index 0a7e1adf7d9..b5f21eacb97 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_FIRSTPASS_H_ -#define VP9_ENCODER_VP9_FIRSTPASS_H_ +#ifndef VPX_VP9_ENCODER_VP9_FIRSTPASS_H_ +#define VPX_VP9_ENCODER_VP9_FIRSTPASS_H_ #include <assert.h> @@ -49,6 +49,7 @@ typedef struct { #define BFG_INTERVAL 2 #define MAX_EXT_ARFS 2 #define MIN_EXT_ARF_INTERVAL 4 +#define MAX_ARF_LAYERS 6 typedef struct { double frame_mb_intra_factor; @@ -116,13 +117,9 @@ typedef enum { GF_UPDATE = 2, ARF_UPDATE = 3, OVERLAY_UPDATE = 4, - USE_BUF_FRAME = 5, // Use show existing frame, no ref buffer update - BRF_UPDATE = 6, // Backward Reference Frame - LAST_BIPRED_UPDATE = 7, // Last Bi-predictive Frame - BIPRED_UPDATE = 8, // Bi-predictive Frame, but not the last one - INTNL_OVERLAY_UPDATE = 9, // Internal Overlay Frame - INTNL_ARF_UPDATE = 10, // Internal Altref Frame (candidate for ALTREF2) - FRAME_UPDATE_TYPES = 11 + MID_OVERLAY_UPDATE = 5, + USE_BUF_FRAME = 6, // Use show existing frame, no ref buffer update + FRAME_UPDATE_TYPES = 7 } FRAME_UPDATE_TYPE; #define FC_ANIMATION_THRESH 0.15 @@ -134,15 +131,19 @@ typedef enum { typedef struct { unsigned char index; - unsigned char first_inter_index; RATE_FACTOR_LEVEL rf_level[MAX_STATIC_GF_GROUP_LENGTH + 2]; FRAME_UPDATE_TYPE update_type[MAX_STATIC_GF_GROUP_LENGTH + 2]; unsigned char arf_src_offset[MAX_STATIC_GF_GROUP_LENGTH + 2]; - unsigned char arf_update_idx[MAX_STATIC_GF_GROUP_LENGTH + 2]; - unsigned char arf_ref_idx[MAX_STATIC_GF_GROUP_LENGTH + 2]; - unsigned char brf_src_offset[MAX_STATIC_GF_GROUP_LENGTH + 2]; - unsigned char bidir_pred_enabled[MAX_STATIC_GF_GROUP_LENGTH + 2]; + unsigned char layer_depth[MAX_STATIC_GF_GROUP_LENGTH + 2]; int bit_allocation[MAX_STATIC_GF_GROUP_LENGTH + 2]; + int gfu_boost[MAX_STATIC_GF_GROUP_LENGTH + 2]; + + int frame_start; + int frame_end; + // TODO(jingning): The array size of arf_stack could be reduced. + int arf_index_stack[MAX_LAG_BUFFERS * 2]; + int top_arf_idx; + int stack_size; } GF_GROUP; typedef struct { @@ -233,4 +234,4 @@ static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { } // extern "C" #endif -#endif // VP9_ENCODER_VP9_FIRSTPASS_H_ +#endif // VPX_VP9_ENCODER_VP9_FIRSTPASS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h index 89c08f207a4..ad09c11198a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_JOB_QUEUE_H_ -#define VP9_ENCODER_VP9_JOB_QUEUE_H_ +#ifndef VPX_VP9_ENCODER_VP9_JOB_QUEUE_H_ +#define VPX_VP9_ENCODER_VP9_JOB_QUEUE_H_ typedef enum { FIRST_PASS_JOB, @@ -43,4 +43,4 @@ typedef struct { int num_jobs_acquired; } JobQueueHandle; -#endif // VP9_ENCODER_VP9_JOB_QUEUE_H_ +#endif // VPX_VP9_ENCODER_VP9_JOB_QUEUE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h index 995588386f1..c627bede239 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_LOOKAHEAD_H_ -#define VP9_ENCODER_VP9_LOOKAHEAD_H_ +#ifndef VPX_VP9_ENCODER_VP9_LOOKAHEAD_H_ +#define VPX_VP9_ENCODER_VP9_LOOKAHEAD_H_ #include "vpx_scale/yv12config.h" #include "vpx/vpx_encoder.h" @@ -111,4 +111,4 @@ unsigned int vp9_lookahead_depth(struct lookahead_ctx *ctx); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_LOOKAHEAD_H_ +#endif // VPX_VP9_ENCODER_VP9_LOOKAHEAD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.c index 46d626def17..2ec048b5314 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.c @@ -59,7 +59,7 @@ static unsigned int do_16x16_motion_iteration(VP9_COMP *cpi, const MV *ref_mv, uint32_t sse; cpi->find_fractional_mv_step( x, dst_mv, ref_mv, cpi->common.allow_high_precision_mv, x->errorperbit, - &v_fn_ptr, 0, mv_sf->subpel_iters_per_step, + &v_fn_ptr, 0, mv_sf->subpel_search_level, cond_cost_list(cpi, cost_list), NULL, NULL, &distortion, &sse, NULL, 0, 0); } diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h index c3af972bc00..7b629861d51 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_MBGRAPH_H_ -#define VP9_ENCODER_VP9_MBGRAPH_H_ +#ifndef VPX_VP9_ENCODER_VP9_MBGRAPH_H_ +#define VPX_VP9_ENCODER_VP9_MBGRAPH_H_ #ifdef __cplusplus extern "C" { @@ -37,4 +37,4 @@ void vp9_update_mbgraph_stats(struct VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_MBGRAPH_H_ +#endif // VPX_VP9_ENCODER_VP9_MBGRAPH_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c index 12c147ead7a..995c54fc74c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c @@ -263,27 +263,6 @@ static INLINE const uint8_t *pre(const uint8_t *buf, int stride, int r, int c) { } \ } -// TODO(yunqingwang): SECOND_LEVEL_CHECKS_BEST was a rewrote of -// SECOND_LEVEL_CHECKS, and SECOND_LEVEL_CHECKS should be rewritten -// later in the same way. -#define SECOND_LEVEL_CHECKS_BEST \ - { \ - unsigned int second; \ - int br0 = br; \ - int bc0 = bc; \ - assert(tr == br || tc == bc); \ - if (tr == br && tc != bc) { \ - kc = bc - tc; \ - } else if (tr != br && tc == bc) { \ - kr = br - tr; \ - } \ - CHECK_BETTER(second, br0 + kr, bc0); \ - CHECK_BETTER(second, br0, bc0 + kc); \ - if (br0 != br || bc0 != bc) { \ - CHECK_BETTER(second, br0 + kr, bc0 + kc); \ - } \ - } - #define SETUP_SUBPEL_SEARCH \ const uint8_t *const z = x->plane[0].src.buf; \ const int src_stride = x->plane[0].src.stride; \ @@ -755,10 +734,32 @@ uint32_t vp9_find_best_sub_pixel_tree( bc = tc; } - if (iters_per_step > 1 && best_idx != -1) SECOND_LEVEL_CHECKS_BEST; + if (iters_per_step > 0 && best_idx != -1) { + unsigned int second; + const int br0 = br; + const int bc0 = bc; + assert(tr == br || tc == bc); - tr = br; - tc = bc; + if (tr == br && tc != bc) { + kc = bc - tc; + if (iters_per_step == 1) { + CHECK_BETTER(second, br0, bc0 + kc); + } + } else if (tr != br && tc == bc) { + kr = br - tr; + if (iters_per_step == 1) { + CHECK_BETTER(second, br0 + kr, bc0); + } + } + + if (iters_per_step > 1) { + CHECK_BETTER(second, br0 + kr, bc0); + CHECK_BETTER(second, br0, bc0 + kc); + if (br0 != br || bc0 != bc) { + CHECK_BETTER(second, br0 + kr, bc0 + kc); + } + } + } search_step += 4; hstep >>= 1; @@ -1576,6 +1577,153 @@ static int exhuastive_mesh_search(const MACROBLOCK *x, MV *ref_mv, MV *best_mv, return best_sad; } +#if CONFIG_NON_GREEDY_MV +static double nb_mvs_inconsistency(const MV *mv, const int_mv *nb_mvs) { + int i; + double best_cost = -1; + vpx_clear_system_state(); + for (i = 0; i < NB_MVS_NUM; ++i) { + if (nb_mvs[i].as_int != INVALID_MV) { + MV nb_mv = nb_mvs[i].as_mv; + const double row_diff = mv->row - nb_mv.row; + const double col_diff = mv->col - nb_mv.col; + double cost = row_diff * row_diff + col_diff * col_diff; + cost = log2(1 + cost); + if (best_cost < 0) { + best_cost = cost; + } else { + best_cost = cost < best_cost ? cost : best_cost; + } + } + } + if (best_cost < 0) { + return 0; + } else { + return best_cost; + } +} + +double vp9_diamond_search_sad_new(const MACROBLOCK *x, + const search_site_config *cfg, + const MV *init_full_mv, MV *best_full_mv, + double *best_mv_dist, double *best_mv_cost, + int search_param, double lambda, int *num00, + const vp9_variance_fn_ptr_t *fn_ptr, + const int_mv *nb_full_mvs) { + int i, j, step; + + const MACROBLOCKD *const xd = &x->e_mbd; + uint8_t *what = x->plane[0].src.buf; + const int what_stride = x->plane[0].src.stride; + const uint8_t *in_what; + const int in_what_stride = xd->plane[0].pre[0].stride; + const uint8_t *best_address; + + double bestsad; + int best_site = -1; + int last_site = -1; + + // search_param determines the length of the initial step and hence the number + // of iterations. + // 0 = initial step (MAX_FIRST_STEP) pel + // 1 = (MAX_FIRST_STEP/2) pel, + // 2 = (MAX_FIRST_STEP/4) pel... + // const search_site *ss = &cfg->ss[search_param * cfg->searches_per_step]; + const MV *ss_mv = &cfg->ss_mv[search_param * cfg->searches_per_step]; + const intptr_t *ss_os = &cfg->ss_os[search_param * cfg->searches_per_step]; + const int tot_steps = cfg->total_steps - search_param; + vpx_clear_system_state(); + + *best_full_mv = *init_full_mv; + clamp_mv(best_full_mv, x->mv_limits.col_min, x->mv_limits.col_max, + x->mv_limits.row_min, x->mv_limits.row_max); + *num00 = 0; + + // Work out the start point for the search + in_what = xd->plane[0].pre[0].buf + best_full_mv->row * in_what_stride + + best_full_mv->col; + best_address = in_what; + + // Check the starting position + *best_mv_dist = fn_ptr->sdf(what, what_stride, in_what, in_what_stride); + *best_mv_cost = nb_mvs_inconsistency(best_full_mv, nb_full_mvs); + bestsad = (*best_mv_dist) + lambda * (*best_mv_cost); + + i = 0; + + for (step = 0; step < tot_steps; step++) { + int all_in = 1, t; + + // All_in is true if every one of the points we are checking are within + // the bounds of the image. + all_in &= ((best_full_mv->row + ss_mv[i].row) > x->mv_limits.row_min); + all_in &= ((best_full_mv->row + ss_mv[i + 1].row) < x->mv_limits.row_max); + all_in &= ((best_full_mv->col + ss_mv[i + 2].col) > x->mv_limits.col_min); + all_in &= ((best_full_mv->col + ss_mv[i + 3].col) < x->mv_limits.col_max); + + // If all the pixels are within the bounds we don't check whether the + // search point is valid in this loop, otherwise we check each point + // for validity.. + if (all_in) { + unsigned int sad_array[4]; + + for (j = 0; j < cfg->searches_per_step; j += 4) { + unsigned char const *block_offset[4]; + + for (t = 0; t < 4; t++) block_offset[t] = ss_os[i + t] + best_address; + + fn_ptr->sdx4df(what, what_stride, block_offset, in_what_stride, + sad_array); + + for (t = 0; t < 4; t++, i++) { + const MV this_mv = { best_full_mv->row + ss_mv[i].row, + best_full_mv->col + ss_mv[i].col }; + const double mv_dist = sad_array[t]; + const double mv_cost = nb_mvs_inconsistency(&this_mv, nb_full_mvs); + double thissad = mv_dist + lambda * mv_cost; + if (thissad < bestsad) { + bestsad = thissad; + *best_mv_dist = mv_dist; + *best_mv_cost = mv_cost; + best_site = i; + } + } + } + } else { + for (j = 0; j < cfg->searches_per_step; j++) { + // Trap illegal vectors + const MV this_mv = { best_full_mv->row + ss_mv[i].row, + best_full_mv->col + ss_mv[i].col }; + + if (is_mv_in(&x->mv_limits, &this_mv)) { + const uint8_t *const check_here = ss_os[i] + best_address; + const double mv_dist = + fn_ptr->sdf(what, what_stride, check_here, in_what_stride); + const double mv_cost = nb_mvs_inconsistency(&this_mv, nb_full_mvs); + double thissad = mv_dist + lambda * mv_cost; + if (thissad < bestsad) { + bestsad = thissad; + *best_mv_dist = mv_dist; + *best_mv_cost = mv_cost; + best_site = i; + } + } + i++; + } + } + if (best_site != last_site) { + best_full_mv->row += ss_mv[best_site].row; + best_full_mv->col += ss_mv[best_site].col; + best_address += ss_os[best_site]; + last_site = best_site; + } else if (best_address == in_what) { + (*num00)++; + } + } + return bestsad; +} +#endif // CONFIG_NON_GREEDY_MV + int vp9_diamond_search_sad_c(const MACROBLOCK *x, const search_site_config *cfg, MV *ref_mv, MV *best_mv, int search_param, int sad_per_bit, int *num00, @@ -1930,6 +2078,74 @@ unsigned int vp9_int_pro_motion_estimation(const VP9_COMP *cpi, MACROBLOCK *x, return best_sad; } +#if CONFIG_NON_GREEDY_MV +// Runs sequence of diamond searches in smaller steps for RD. +/* do_refine: If last step (1-away) of n-step search doesn't pick the center + point as the best match, we will do a final 1-away diamond + refining search */ +double vp9_full_pixel_diamond_new(const VP9_COMP *cpi, MACROBLOCK *x, + MV *mvp_full, int step_param, double lambda, + int further_steps, int do_refine, + const vp9_variance_fn_ptr_t *fn_ptr, + const int_mv *nb_full_mvs, + TplDepStats *tpl_stats, int rf_idx) { + MV *dst_mv = &tpl_stats->mv_arr[rf_idx].as_mv; + MV temp_mv; + int n, num00 = 0; + double thissme; + double mv_dist; + double mv_cost; + double bestsme; + vpx_clear_system_state(); + bestsme = vp9_diamond_search_sad_new(x, &cpi->ss_cfg, mvp_full, &temp_mv, + &mv_dist, &mv_cost, step_param, lambda, + &n, fn_ptr, nb_full_mvs); + *dst_mv = temp_mv; + tpl_stats->mv_dist[rf_idx] = mv_dist; + tpl_stats->mv_cost[rf_idx] = mv_cost; + + // If there won't be more n-step search, check to see if refining search is + // needed. + if (n > further_steps) do_refine = 0; + + while (n < further_steps) { + ++n; + if (num00) { + num00--; + } else { + thissme = vp9_diamond_search_sad_new(x, &cpi->ss_cfg, mvp_full, &temp_mv, + &mv_dist, &mv_cost, step_param + n, + lambda, &num00, fn_ptr, nb_full_mvs); + // check to see if refining search is needed. + if (num00 > further_steps - n) do_refine = 0; + + if (thissme < bestsme) { + bestsme = thissme; + *dst_mv = temp_mv; + tpl_stats->mv_dist[rf_idx] = mv_dist; + tpl_stats->mv_cost[rf_idx] = mv_cost; + } + } + } + + // final 1-away diamond refining search + if (do_refine) { + const int search_range = 8; + MV best_mv = *dst_mv; + thissme = + vp9_refining_search_sad_new(x, &best_mv, &mv_dist, &mv_cost, lambda, + search_range, fn_ptr, nb_full_mvs); + if (thissme < bestsme) { + bestsme = thissme; + *dst_mv = best_mv; + tpl_stats->mv_dist[rf_idx] = mv_dist; + tpl_stats->mv_cost[rf_idx] = mv_cost; + } + } + return bestsme; +} +#endif // CONFIG_NON_GREEDY_MV + // Runs sequence of diamond searches in smaller steps for RD. /* do_refine: If last step (1-away) of n-step search doesn't pick the center point as the best match, we will do a final 1-away diamond @@ -2053,6 +2269,87 @@ static int full_pixel_exhaustive(VP9_COMP *cpi, MACROBLOCK *x, return bestsme; } +#if CONFIG_NON_GREEDY_MV +double vp9_refining_search_sad_new(const MACROBLOCK *x, MV *best_full_mv, + double *best_mv_dist, double *best_mv_cost, + double lambda, int search_range, + const vp9_variance_fn_ptr_t *fn_ptr, + const int_mv *nb_full_mvs) { + const MACROBLOCKD *const xd = &x->e_mbd; + const MV neighbors[4] = { { -1, 0 }, { 0, -1 }, { 0, 1 }, { 1, 0 } }; + const struct buf_2d *const what = &x->plane[0].src; + const struct buf_2d *const in_what = &xd->plane[0].pre[0]; + const uint8_t *best_address = get_buf_from_mv(in_what, best_full_mv); + double best_sad; + int i, j; + vpx_clear_system_state(); + *best_mv_dist = + fn_ptr->sdf(what->buf, what->stride, best_address, in_what->stride); + *best_mv_cost = nb_mvs_inconsistency(best_full_mv, nb_full_mvs); + best_sad = (*best_mv_dist) + lambda * (*best_mv_cost); + + for (i = 0; i < search_range; i++) { + int best_site = -1; + const int all_in = ((best_full_mv->row - 1) > x->mv_limits.row_min) & + ((best_full_mv->row + 1) < x->mv_limits.row_max) & + ((best_full_mv->col - 1) > x->mv_limits.col_min) & + ((best_full_mv->col + 1) < x->mv_limits.col_max); + + if (all_in) { + unsigned int sads[4]; + const uint8_t *const positions[4] = { best_address - in_what->stride, + best_address - 1, best_address + 1, + best_address + in_what->stride }; + + fn_ptr->sdx4df(what->buf, what->stride, positions, in_what->stride, sads); + + for (j = 0; j < 4; ++j) { + const MV mv = { best_full_mv->row + neighbors[j].row, + best_full_mv->col + neighbors[j].col }; + const double mv_dist = sads[j]; + const double mv_cost = nb_mvs_inconsistency(&mv, nb_full_mvs); + const double thissad = mv_dist + lambda * mv_cost; + if (thissad < best_sad) { + best_sad = thissad; + *best_mv_dist = mv_dist; + *best_mv_cost = mv_cost; + best_site = j; + } + } + } else { + for (j = 0; j < 4; ++j) { + const MV mv = { best_full_mv->row + neighbors[j].row, + best_full_mv->col + neighbors[j].col }; + + if (is_mv_in(&x->mv_limits, &mv)) { + const double mv_dist = + fn_ptr->sdf(what->buf, what->stride, + get_buf_from_mv(in_what, &mv), in_what->stride); + const double mv_cost = nb_mvs_inconsistency(&mv, nb_full_mvs); + const double thissad = mv_dist + lambda * mv_cost; + if (thissad < best_sad) { + best_sad = thissad; + *best_mv_dist = mv_dist; + *best_mv_cost = mv_cost; + best_site = j; + } + } + } + } + + if (best_site == -1) { + break; + } else { + best_full_mv->row += neighbors[best_site].row; + best_full_mv->col += neighbors[best_site].col; + best_address = get_buf_from_mv(in_what, best_full_mv); + } + } + + return best_sad; +} +#endif // CONFIG_NON_GREEDY_MV + int vp9_refining_search_sad(const MACROBLOCK *x, MV *ref_mv, int error_per_bit, int search_range, const vp9_variance_fn_ptr_t *fn_ptr, diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h index 3d1f10a7533..adb02bc1abd 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_MCOMP_H_ -#define VP9_ENCODER_VP9_MCOMP_H_ +#ifndef VPX_VP9_ENCODER_VP9_MCOMP_H_ +#define VPX_VP9_ENCODER_VP9_MCOMP_H_ #include "vp9/encoder/vp9_block.h" #include "vpx_dsp/variance.h" @@ -119,8 +119,24 @@ void vp9_set_subpel_mv_search_range(MvLimits *subpel_mv_limits, const MvLimits *umv_window_limits, const MV *ref_mv); +#if CONFIG_NON_GREEDY_MV +#define NB_MVS_NUM 4 +struct TplDepStats; +double vp9_refining_search_sad_new(const MACROBLOCK *x, MV *best_full_mv, + double *best_mv_dist, double *best_mv_cost, + double lambda, int search_range, + const vp9_variance_fn_ptr_t *fn_ptr, + const int_mv *nb_full_mvs); + +double vp9_full_pixel_diamond_new(const struct VP9_COMP *cpi, MACROBLOCK *x, + MV *mvp_full, int step_param, double lambda, + int further_steps, int do_refine, + const vp9_variance_fn_ptr_t *fn_ptr, + const int_mv *nb_full_mvs, + struct TplDepStats *tpl_stats, int rf_idx); +#endif // CONFIG_NON_GREEDY_MV #ifdef __cplusplus } // extern "C" #endif -#endif // VP9_ENCODER_VP9_MCOMP_H_ +#endif // VPX_VP9_ENCODER_VP9_MCOMP_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h index f59ad183344..a2276f4fe63 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_MULTI_THREAD_H -#define VP9_ENCODER_VP9_MULTI_THREAD_H +#ifndef VPX_VP9_ENCODER_VP9_MULTI_THREAD_H_ +#define VPX_VP9_ENCODER_VP9_MULTI_THREAD_H_ #include "vp9/encoder/vp9_encoder.h" #include "vp9/encoder/vp9_job_queue.h" @@ -38,4 +38,4 @@ int vp9_get_tiles_proc_status(MultiThreadHandle *multi_thread_ctxt, int *tile_completion_status, int *cur_tile_id, int tile_cols); -#endif // VP9_ENCODER_VP9_MULTI_THREAD_H +#endif // VPX_VP9_ENCODER_VP9_MULTI_THREAD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h index 335cdbe6434..574b7c337d1 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_NOISE_ESTIMATE_H_ -#define VP9_ENCODER_NOISE_ESTIMATE_H_ +#ifndef VPX_VP9_ENCODER_VP9_NOISE_ESTIMATE_H_ +#define VPX_VP9_ENCODER_VP9_NOISE_ESTIMATE_H_ #include "vp9/encoder/vp9_block.h" #include "vp9/encoder/vp9_skin_detection.h" @@ -48,4 +48,4 @@ void vp9_update_noise_estimate(struct VP9_COMP *const cpi); } // extern "C" #endif -#endif // VP9_ENCODER_NOISE_ESTIMATE_H_ +#endif // VPX_VP9_ENCODER_VP9_NOISE_ESTIMATE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h new file mode 100644 index 00000000000..904d214001b --- /dev/null +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h @@ -0,0 +1,1172 @@ +/* + * Copyright (c) 2018 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef VPX_VP9_ENCODER_VP9_PARTITION_MODELS_H_ +#define VPX_VP9_ENCODER_VP9_PARTITION_MODELS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#define NN_MAX_HIDDEN_LAYERS 10 +#define NN_MAX_NODES_PER_LAYER 128 + +// Neural net model config. It defines the layout of a neural net model, such as +// the number of inputs/outputs, number of layers, the number of nodes in each +// layer, as well as the weights and bias of each node. +typedef struct { + int num_inputs; // Number of input nodes, i.e. features. + int num_outputs; // Number of output nodes. + int num_hidden_layers; // Number of hidden layers, maximum 10. + // Number of nodes for each hidden layer. + int num_hidden_nodes[NN_MAX_HIDDEN_LAYERS]; + // Weight parameters, indexed by layer. + const float *weights[NN_MAX_HIDDEN_LAYERS + 1]; + // Bias parameters, indexed by layer. + const float *bias[NN_MAX_HIDDEN_LAYERS + 1]; +} NN_CONFIG; + +// Partition search breakout model. +#define FEATURES 4 +#define Q_CTX 3 +#define RESOLUTION_CTX 2 +static const float + vp9_partition_breakout_weights_64[RESOLUTION_CTX][Q_CTX][FEATURES + 1] = { + { + { + -0.016673f, + -0.001025f, + -0.000032f, + 0.000833f, + 1.94261885f - 2.1f, + }, + { + -0.160867f, + -0.002101f, + 0.000011f, + 0.002448f, + 1.65738142f - 2.5f, + }, + { + -0.628934f, + -0.011459f, + -0.000009f, + 0.013833f, + 1.47982645f - 1.6f, + }, + }, + { + { + -0.064309f, + -0.006121f, + 0.000232f, + 0.005778f, + 0.7989465f - 5.0f, + }, + { + -0.314957f, + -0.009346f, + -0.000225f, + 0.010072f, + 2.80695581f - 5.5f, + }, + { + -0.635535f, + -0.015135f, + 0.000091f, + 0.015247f, + 2.90381241f - 5.0f, + }, + }, + }; + +static const float + vp9_partition_breakout_weights_32[RESOLUTION_CTX][Q_CTX][FEATURES + 1] = { + { + { + -0.010554f, + -0.003081f, + -0.000134f, + 0.004491f, + 1.68445992f - 3.5f, + }, + { + -0.051489f, + -0.007609f, + 0.000016f, + 0.009792f, + 1.28089404f - 2.5f, + }, + { + -0.163097f, + -0.013081f, + 0.000022f, + 0.019006f, + 1.36129403f - 3.2f, + }, + }, + { + { + -0.024629f, + -0.006492f, + -0.000254f, + 0.004895f, + 1.27919173f - 4.5f, + }, + { + -0.083936f, + -0.009827f, + -0.000200f, + 0.010399f, + 2.73731065f - 4.5f, + }, + { + -0.279052f, + -0.013334f, + 0.000289f, + 0.023203f, + 2.43595719f - 3.5f, + }, + }, + }; + +static const float + vp9_partition_breakout_weights_16[RESOLUTION_CTX][Q_CTX][FEATURES + 1] = { + { + { + -0.013154f, + -0.002404f, + -0.000977f, + 0.008450f, + 2.57404566f - 5.5f, + }, + { + -0.019146f, + -0.004018f, + 0.000064f, + 0.008187f, + 2.15043926f - 2.5f, + }, + { + -0.075755f, + -0.010858f, + 0.000030f, + 0.024505f, + 2.06848121f - 2.5f, + }, + }, + { + { + -0.007636f, + -0.002751f, + -0.000682f, + 0.005968f, + 0.19225763f - 4.5f, + }, + { + -0.047306f, + -0.009113f, + -0.000518f, + 0.016007f, + 2.61068869f - 4.0f, + }, + { + -0.069336f, + -0.010448f, + -0.001120f, + 0.023083f, + 1.47591054f - 5.5f, + }, + }, + }; + +static const float vp9_partition_breakout_weights_8[RESOLUTION_CTX][Q_CTX] + [FEATURES + 1] = { + { + { + -0.011807f, + -0.009873f, + -0.000931f, + 0.034768f, + 1.32254851f - 2.0f, + }, + { + -0.003861f, + -0.002701f, + 0.000100f, + 0.013876f, + 1.96755111f - 1.5f, + }, + { + -0.013522f, + -0.008677f, + -0.000562f, + 0.034468f, + 1.53440356f - 1.5f, + }, + }, + { + { + -0.003221f, + -0.002125f, + 0.000993f, + 0.012768f, + 0.03541421f - 2.0f, + }, + { + -0.006069f, + -0.007335f, + 0.000229f, + 0.026104f, + 0.17135315f - 1.5f, + }, + { + -0.039894f, + -0.011419f, + 0.000070f, + 0.061817f, + 0.6739977f - 1.5f, + }, + }, + }; +#undef FEATURES +#undef Q_CTX +#undef RESOLUTION_CTX + +// Rectangular partition search pruning model. +#define FEATURES 17 +#define LABELS 4 +static const float vp9_rect_part_nn_weights_16_layer0[FEATURES * 32] = { + 1.262885f, -0.533345f, -0.161280f, 0.106098f, 0.194799f, 0.003600f, + 0.394783f, -0.053954f, 0.264474f, -0.016651f, 0.376765f, 0.221471f, + 0.489799f, 0.054924f, 0.018292f, 0.037633f, -0.053430f, 1.092426f, + 0.205791f, -0.055661f, -0.227335f, 0.301274f, -0.169917f, 0.100426f, + 0.254388f, 0.103465f, 0.189560f, 0.116479f, 1.647195f, -0.667044f, + 0.067795f, -0.044580f, 0.019428f, 0.072938f, -0.797569f, -0.077539f, + -0.225636f, 0.262883f, -1.048009f, 0.210118f, -0.416156f, -0.143741f, + -0.296985f, 0.205918f, -0.517383f, -0.118527f, -0.396606f, -0.113128f, + -0.279468f, 0.096141f, -0.342051f, -0.337036f, 0.143222f, -0.860280f, + 0.137169f, 0.339767f, -0.336076f, 0.071988f, 0.251557f, -0.004068f, + 0.170734f, 0.237283f, -0.332443f, 0.073643f, 0.375357f, 0.220407f, + 0.150708f, -0.176979f, 0.265786f, -0.105878f, -0.337465f, -0.000491f, + 0.234308f, -0.098973f, 0.129038f, -0.205936f, -0.034793f, -0.106981f, + 0.009974f, 0.037861f, -0.282874f, -0.354414f, 0.023021f, -0.266749f, + -0.041762f, -0.721725f, 0.182262f, -0.273945f, 0.123722f, -0.036749f, + -0.788645f, -0.081560f, -0.472226f, 0.004654f, -0.756766f, -0.132186f, + 1.085412f, -0.221324f, -0.072577f, -0.172834f, -0.104831f, -1.391641f, + -0.345893f, 0.194442f, -0.306583f, -0.041813f, -0.267635f, -0.218568f, + -0.178452f, 0.044421f, -0.128042f, -0.094797f, -0.253724f, 0.273931f, + 0.144843f, -0.401416f, -0.014354f, -0.348929f, 0.123550f, 0.494504f, + -0.007050f, -0.143830f, 0.111292f, 0.211057f, -1.579988f, 0.117744f, + -1.732487f, 0.009320f, -1.162696f, 0.176687f, -0.705609f, 0.524827f, + 0.089822f, 0.082976f, -0.023681f, 0.006120f, -0.907175f, -0.026273f, + 0.019027f, 0.027170f, -0.462563f, -0.535335f, 0.202231f, 0.709803f, + -0.112251f, -1.213869f, 0.225714f, 0.323785f, -0.518254f, -0.014235f, + -0.070790f, -0.369589f, 0.373399f, 0.002738f, 0.175113f, 0.084529f, + -0.101586f, -0.018978f, 0.773392f, -0.673230f, -0.549279f, 0.790196f, + 0.658609f, -0.826831f, -0.514211f, 0.575341f, -0.711311f, 0.276289f, + -0.435715f, 0.392986f, -0.079298f, -0.318719f, 0.188429f, -0.114366f, + 0.172527f, -0.261721f, -0.216761f, 0.163822f, -0.189374f, -0.391901f, + 0.142013f, -0.135046f, 0.144419f, 0.053887f, 0.074673f, -0.290791f, + -0.039560f, -0.103830f, -0.330263f, -0.042091f, 0.050646f, -0.057466f, + -0.069064f, -0.412864f, 0.071097f, 0.126693f, 0.175397f, -0.168485f, + 0.018129f, -0.419188f, -0.272024f, -0.436859f, -0.425711f, -0.024382f, + 0.248042f, -0.169090f, -0.346878f, -0.070926f, 0.292278f, -0.197610f, + -0.218286f, 0.290846f, 0.297843f, 0.247394f, -0.160736f, 0.110314f, + 0.276000f, -0.301676f, -0.232816f, -0.127576f, -0.174457f, -0.124503f, + 0.264880f, -0.332379f, 0.012659f, -0.197333f, 0.604700f, 0.801582f, + 0.758702f, 0.691880f, 0.440917f, 0.773548f, 0.064242f, 1.147508f, + -0.127543f, -0.189628f, -0.122994f, -0.226776f, -0.053531f, -0.187548f, + 0.226554f, -0.273451f, 0.011751f, 0.009133f, 0.185091f, 0.003031f, + 0.000525f, 0.221829f, 0.331550f, -0.202558f, -0.286550f, 0.100683f, + 0.268818f, 0.179971f, -0.050016f, 0.579665f, 0.015911f, 0.033068f, + 0.077768f, -0.017757f, -1.411251f, 0.051519f, -1.745767f, 0.011258f, + -1.947372f, 0.111396f, -1.112755f, -0.008989f, -0.006211f, -0.002098f, + -0.015236f, -0.095697f, -0.095820f, 0.044622f, -0.112096f, 0.060000f, + 0.138957f, -0.462708f, 0.590790f, -0.021405f, -0.283744f, -1.141749f, + 0.213121f, -0.332311f, -0.314090f, -0.789311f, 0.157605f, -0.438019f, + 0.642189f, -0.340764f, -0.996025f, 0.109871f, 0.106128f, -0.010505f, + -0.117233f, -0.223194f, 0.344105f, -0.308754f, 0.386020f, -0.305270f, + -0.538281f, -0.270720f, -0.101688f, 0.207580f, 0.237153f, -0.055730f, + 0.842779f, 0.393543f, 0.007886f, -0.318167f, 0.603768f, 0.388241f, + 0.421536f, 0.632080f, 0.423965f, 0.371472f, 0.456827f, 0.488134f, + 0.358997f, 0.032621f, -0.017104f, 0.032198f, 0.113266f, -0.312277f, + 0.178189f, 0.234180f, 0.134271f, -0.414889f, 0.774141f, -0.225043f, + 0.614052f, -0.279921f, 1.329141f, -0.140827f, 0.797267f, -0.171361f, + 0.066205f, 0.339976f, 0.015223f, 0.193725f, -0.245067f, -0.035578f, + -0.084043f, 0.086756f, 0.029478f, -0.845370f, 0.388613f, -1.215236f, + 0.304573f, -0.439884f, -0.293969f, -0.107988f, -0.267837f, -0.695339f, + -0.702099f, 0.359047f, 0.511730f, 1.429516f, 0.216959f, -0.313828f, + 0.068062f, -0.124917f, -0.648327f, -0.308411f, -0.378467f, -0.429288f, + -0.032415f, -0.357005f, 0.170068f, 0.161167f, -0.250280f, -0.320468f, + -0.408987f, -0.201496f, -0.155996f, 0.021067f, 0.141083f, -0.202733f, + -0.130953f, -0.278148f, -0.042051f, 0.070576f, 0.009982f, -0.044326f, + -0.346851f, -0.255397f, -0.346456f, 0.281781f, 0.001618f, 0.120648f, + 0.297140f, 0.198343f, 0.186104f, 0.183548f, -0.344482f, 0.182258f, + 0.291003f, -0.330228f, -0.048174f, 0.133694f, 0.264582f, 0.229671f, + -0.167251f, -0.316040f, 0.191829f, 0.153417f, -0.345158f, -0.212790f, + -0.878872f, -0.313099f, -0.028368f, 0.065869f, -0.695388f, 1.102812f, + -0.605539f, 0.400680f, -0.350120f, -0.432965f, 0.034553f, -0.693476f, + -0.045708f, 0.492409f, -0.043825f, -0.430522f, 0.071159f, -0.317376f, + -1.164842f, 0.112394f, 0.034137f, -0.611882f, 0.251020f, -0.245113f, + 0.286093f, -0.187883f, 0.340263f, -0.211592f, -0.065706f, -0.332148f, + 0.104026f, -0.003206f, 0.036397f, 0.206499f, 0.161962f, 0.037663f, + -0.313039f, -0.199837f, 0.117952f, -0.182145f, -0.343724f, 0.017625f, + 0.033427f, -0.288075f, -0.101873f, -0.083378f, 0.147870f, 0.049598f, + -0.241824f, 0.070494f, 0.140942f, -0.013795f, 0.020023f, -0.192213f, + -0.320505f, -0.193072f, 0.147260f, 0.311352f, 0.053486f, 0.183716f, + 0.142535f, 0.294333f, -0.054853f, 0.293314f, -0.025398f, 0.190815f, + -0.137574f, -0.191864f, -0.190950f, -0.205988f, -0.199046f, -0.017582f, + -0.149347f, 0.131040f, 0.006854f, -0.350732f, 0.113301f, -0.194371f, + -0.296885f, -0.249199f, -0.193946f, 0.116150f, -0.310411f, -0.325851f, + -0.053275f, -0.063419f, 0.204170f, -0.091940f, -0.146229f, 0.298173f, + 0.053349f, -0.368540f, 0.235629f, -0.317825f, -0.107304f, -0.114618f, + 0.058709f, -0.272070f, 0.076224f, 0.110668f, -0.193282f, -0.135440f, + -0.267950f, -0.102285f, 0.102699f, -0.159082f, 0.262721f, -0.263227f, + 0.094509f, -0.113405f, 0.069888f, -0.169665f, 0.070800f, 0.035432f, + 0.054243f, 0.264229f, 0.117416f, 0.091568f, -0.022069f, -0.069214f, + 0.124543f, 0.070413f, -0.039343f, 0.082823f, -0.838348f, 0.153727f, + -0.000947f, 0.270348f, -1.404952f, -0.159680f, -0.234320f, 0.061023f, + 0.271660f, -0.541834f, 0.570828f, -0.277254f, +}; + +static const float vp9_rect_part_nn_bias_16_layer0[32] = { + 0.045740f, 0.292685f, -0.754007f, -0.150412f, -0.006171f, 0.005915f, + 0.000167f, 0.322797f, -0.381793f, 0.349786f, 0.003878f, -0.307203f, + 0.000000f, 0.029122f, 0.000000f, 0.625494f, 0.302105f, -0.362807f, + -0.034002f, -0.573278f, 0.240021f, 0.083965f, 0.000000f, -0.018979f, + -0.147739f, -0.036990f, 0.000000f, 0.000000f, -0.026790f, -0.000036f, + -0.073448f, 0.398328f, +}; + +static const float vp9_rect_part_nn_weights_16_layer1[32 * LABELS] = { + 0.095090f, 0.831754f, 0.484433f, 0.472945f, 0.086165f, -0.442388f, + 0.176263f, -0.760247f, 0.419932f, -0.131377f, 0.075814f, 0.089844f, + -0.294718f, 0.299808f, -0.318435f, -0.623205f, -0.346703f, 0.494356f, + 0.949221f, 0.524653f, 0.044095f, 0.428540f, 0.402571f, -0.216920f, + 0.423915f, 1.023334f, -0.366449f, 0.395057f, 0.057576f, 0.094019f, + 0.247685f, -0.007200f, -0.420023f, -0.728965f, -0.063040f, -0.071321f, + 0.209298f, 0.486625f, -0.244375f, 0.263219f, -0.250463f, -0.260301f, + 0.068579f, 0.177644f, -0.155311f, -0.027606f, -0.101614f, 0.553046f, + -0.462729f, -0.237568f, -0.589316f, 0.045182f, 0.551759f, -0.196872f, + 0.183040f, 0.054341f, 0.252784f, -0.536486f, -0.024425f, 0.154942f, + -0.086636f, 0.360416f, 0.214773f, -0.170876f, -0.363522f, -0.464099f, + 0.145494f, -0.099329f, 0.343718f, 0.286427f, 0.085540f, -0.105182f, + 0.155543f, 0.290939f, -0.067069f, 0.228399f, 0.178247f, 0.113031f, + -0.067336f, 0.441062f, 0.132364f, -0.263403f, -0.263925f, -0.083613f, + -0.268577f, -0.204442f, 0.052526f, 0.334787f, -0.064285f, -0.197875f, + 0.296405f, 0.396440f, 0.033231f, 0.229087f, 0.118289f, 0.490894f, + -0.527582f, -0.897206f, -0.325708f, -0.433018f, -0.053989f, 0.223814f, + -0.352319f, 0.772440f, -0.108648f, -0.082859f, -0.342718f, 0.033022f, + -0.309199f, -0.560337f, 0.208476f, 0.520309f, -0.241035f, -0.560391f, + -1.268968f, -0.267567f, 0.129461f, -0.385547f, 0.080142f, 0.065785f, + -0.159324f, -0.580704f, -0.315150f, -0.224900f, -0.110807f, -0.230163f, + 0.307266f, 0.153446f, +}; + +static const float vp9_rect_part_nn_bias_16_layer1[LABELS] = { + -0.455437f, + 0.255310f, + 0.452974f, + -0.278733f, +}; + +static const NN_CONFIG vp9_rect_part_nnconfig_16 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 32, + }, // num_hidden_nodes + { + vp9_rect_part_nn_weights_16_layer0, + vp9_rect_part_nn_weights_16_layer1, + }, + { + vp9_rect_part_nn_bias_16_layer0, + vp9_rect_part_nn_bias_16_layer1, + }, +}; + +static const float vp9_rect_part_nn_weights_32_layer0[FEATURES * 32] = { + 0.735110f, -0.238477f, 0.101978f, 0.311671f, -0.123833f, 1.596506f, + -0.341982f, -0.480170f, -0.247587f, 0.613159f, -0.279899f, -0.740856f, + 0.499051f, 0.039041f, 0.056763f, 0.258874f, 0.470812f, -0.121635f, + -0.318852f, -0.098677f, -0.214714f, -0.159974f, -0.305400f, -0.344477f, + -0.260653f, -0.007737f, -0.053016f, -0.158079f, 0.151911f, -0.057685f, + -0.230948f, -0.165940f, -0.127591f, -0.192084f, 1.890390f, -0.315123f, + -0.714531f, -0.015355f, 0.186437f, 0.305504f, 0.035343f, -0.556783f, + 0.239364f, -0.297789f, 0.202735f, -0.707576f, 0.710250f, 0.223346f, + -0.291511f, 0.235778f, 0.455338f, -0.059402f, 0.084530f, -0.115117f, + -0.103696f, -0.192821f, 0.114579f, -0.223487f, 0.306864f, 0.021887f, + -0.028040f, 0.087866f, 0.038870f, -0.081742f, -0.056052f, -0.130837f, + 0.201058f, 0.293391f, 1.880344f, 0.339162f, 0.040928f, -0.503942f, + 0.476333f, 0.259272f, 0.629416f, 0.869369f, 0.622841f, 1.012843f, + 0.715795f, 1.958844f, -1.697462f, 0.071334f, 0.074189f, 0.014585f, + -0.002536f, 0.021900f, 0.151883f, 0.169501f, -0.333018f, -0.247512f, + -0.418575f, -0.473960f, -0.004501f, -0.280939f, -0.162188f, -0.355632f, + 0.136654f, -0.100967f, -0.350435f, -0.135386f, 0.037237f, 0.136982f, + -0.084157f, -0.073248f, 0.021792f, 0.077429f, -0.083042f, -3.169569f, + 0.016261f, -3.351328f, 0.021120f, -3.572247f, 0.023870f, -4.312754f, + 0.040973f, -0.038328f, -0.015052f, 0.017702f, 0.101427f, 0.115458f, + -0.304792f, 0.021826f, -0.157998f, 0.341022f, -0.013465f, 0.105076f, + -0.261465f, 0.318730f, 0.065701f, 0.314879f, -0.064785f, 0.282824f, + 0.100542f, 0.057260f, -0.003756f, -0.026214f, -0.264641f, 0.275545f, + -0.049201f, -0.283015f, -0.057363f, 0.183570f, 0.243161f, -0.255764f, + 0.099747f, -0.156157f, -0.262494f, 0.231521f, -0.262617f, -0.186096f, + 0.171720f, 0.018983f, -0.145545f, 0.197662f, -0.001502f, -0.267526f, + 0.001960f, 0.003260f, 0.045237f, -0.377174f, -0.042499f, -0.015278f, + -0.196779f, -0.262797f, -0.318427f, -0.126092f, -0.339723f, 0.205288f, + -0.544284f, -0.507896f, -0.316622f, -0.090312f, -0.250917f, -0.337263f, + -0.220199f, -0.296591f, -0.116816f, 0.052381f, 0.145681f, 0.016521f, + -0.093549f, -0.097822f, 0.023140f, -0.010346f, 0.036181f, 0.145826f, + -0.139123f, -0.462638f, -0.007315f, 0.156533f, -0.102787f, 0.143586f, + -0.092094f, -0.144220f, -0.168994f, -0.045833f, 0.021628f, -0.421794f, + -0.055857f, 0.217931f, -0.061937f, -0.028768f, -0.078250f, -0.426939f, + -0.223118f, -0.230080f, -0.194988f, -0.197673f, -0.020918f, 0.139945f, + 0.186951f, -0.071317f, -0.084007f, -0.138597f, 0.101950f, 0.093870f, + 0.153226f, 0.017799f, -0.088539f, -0.037796f, 0.340412f, 0.183305f, + 0.391880f, -1.127417f, 0.132762f, -0.228565f, 0.399035f, 0.017483f, + -0.041619f, 0.017849f, 0.092340f, 0.054204f, 0.681185f, 0.421034f, + 0.112520f, -0.040618f, -0.040148f, -0.360647f, 0.053555f, 0.192854f, + 0.076968f, -0.179224f, -0.081617f, -0.287661f, -0.191072f, -0.310227f, + -0.332226f, -0.039786f, -0.247795f, -0.232201f, -0.333533f, -0.077995f, + -0.471732f, 0.051829f, 0.090488f, 0.142465f, -0.120490f, -0.286151f, + -0.049117f, -0.251082f, 0.211884f, -0.223366f, 0.063565f, 0.229938f, + -0.059348f, -0.029573f, -0.064303f, -0.156148f, 0.086958f, -0.297613f, + -0.125107f, 0.062718f, 0.339137f, -0.218896f, -0.057290f, -0.236670f, + -0.143783f, -0.119429f, 0.242320f, -0.323464f, -0.178377f, 0.238275f, + -0.025042f, 0.074798f, 0.111329f, -0.299773f, -0.151748f, -0.261607f, + 0.215626f, 0.202243f, -0.121896f, -0.024283f, -0.293854f, -0.018232f, + -0.012629f, -0.199297f, -0.060595f, 0.432339f, -0.158735f, -0.028380f, + 0.326639f, 0.222546f, -0.218135f, -0.495955f, -0.015055f, -0.104206f, + -0.268823f, 0.116765f, 0.041769f, -0.187095f, 0.225090f, 0.198195f, + 0.001502f, -0.219212f, -0.244779f, -0.017690f, -0.033197f, -0.339813f, + -0.325453f, 0.002499f, -0.066113f, 0.043235f, 0.324275f, -0.630642f, + -1.440551f, 0.174527f, 0.124619f, -1.187345f, 1.372693f, -0.278393f, + -0.058673f, -0.286338f, 1.708757f, -0.325094f, -0.543172f, -0.229411f, + 0.169927f, 0.175064f, 0.198321f, 0.117351f, 0.220882f, 0.138078f, + -0.158000f, -0.286708f, 0.096046f, -0.321788f, 0.206949f, -0.014473f, + -0.321234f, 0.100033f, -0.108266f, 0.166824f, 0.032904f, -0.065760f, + -0.303896f, 0.180342f, -0.301145f, -0.352554f, 0.149089f, 0.013277f, + 0.256019f, -0.109770f, 1.832588f, -0.132568f, 1.527658f, -0.164252f, + -0.857880f, -0.242694f, -0.553797f, 0.334023f, -0.332759f, -0.166203f, + -0.223175f, 0.007953f, -0.175865f, -0.134590f, -0.023858f, -0.011983f, + 0.054403f, -0.147054f, -0.176901f, -0.166893f, -0.292662f, -0.010569f, + -0.041744f, -0.060398f, -0.237584f, 0.154246f, -0.083270f, -0.314016f, + -0.374736f, 0.100063f, 0.048401f, -0.061952f, -0.178816f, 0.157243f, + 0.221991f, -0.065035f, 0.098517f, -0.190704f, -0.210613f, -0.274884f, + -0.341442f, -0.205281f, 0.073644f, 0.130667f, 0.149194f, -0.018172f, + 1.796154f, -1.017806f, -0.169655f, 0.104239f, 0.344313f, 0.643042f, + 0.730177f, 0.270776f, 0.581631f, -1.090649f, 0.707472f, 1.411035f, + 0.268739f, 0.178860f, -0.062251f, -0.118611f, -0.215759f, 0.023485f, + -0.105320f, 0.036396f, -0.059604f, 0.090024f, 0.095224f, -0.053497f, + -0.084040f, 0.055836f, 0.111678f, 0.014886f, -0.178380f, 0.079662f, + -0.123580f, 0.057379f, -0.409844f, -0.305386f, -0.987808f, -0.291094f, + 0.063966f, 0.263709f, -0.337221f, 0.720093f, 0.105030f, 0.848950f, + 0.071835f, 0.228972f, 0.057705f, -2.154561f, -0.201303f, -0.058856f, + -0.020081f, 0.029375f, 0.234837f, -0.001063f, 0.042527f, 0.014567f, + -0.299420f, -0.289117f, 0.275219f, 0.263596f, -0.186026f, -0.111364f, + -0.118393f, -0.318778f, 0.010710f, -0.286836f, -0.070330f, -0.049497f, + 0.093162f, -0.298085f, 0.204761f, -0.206633f, -0.009057f, -0.235372f, + 0.185300f, -0.271814f, 0.281732f, 0.268149f, -0.018967f, 0.162748f, + -0.086694f, -0.063839f, -0.097473f, -0.280120f, 0.324688f, 0.157911f, + -0.064794f, -0.266017f, -0.305608f, -0.196854f, -0.185767f, 0.199455f, + 0.102264f, 0.070866f, 0.172045f, 0.266433f, -0.176167f, 0.251657f, + -0.239220f, 0.229667f, 0.156115f, -0.221345f, 0.270720f, 0.109367f, + 0.230352f, -0.384561f, -0.026329f, 0.005928f, -0.087685f, -0.097995f, + -0.153864f, 0.117211f, -0.226492f, -0.379832f, -0.201714f, 0.049707f, + -0.292120f, 0.114074f, -0.085307f, -0.485356f, -0.347405f, 0.089361f, + -0.419273f, -0.320764f, -0.107254f, -0.274615f, -0.292991f, 0.095602f, + -0.078789f, 0.138927f, 0.270813f, 0.205814f, 0.065003f, 0.169171f, + 0.056142f, -0.005792f, 0.059483f, 0.060149f, +}; + +static const float vp9_rect_part_nn_bias_32_layer0[32] = { + -1.749808f, 0.000000f, 0.239736f, -0.000424f, 0.431792f, -0.150833f, + 2.866760f, 0.000000f, 0.000000f, -0.281434f, 0.000000f, -0.150086f, + 0.000000f, -0.008346f, -0.204104f, -0.006581f, 0.000000f, -0.197006f, + 0.000000f, -0.735287f, -0.028345f, -1.180116f, -0.106524f, 0.000000f, + 0.075879f, -0.150966f, -2.438914f, 0.000000f, -0.011775f, -0.024204f, + -0.138235f, -0.123763f, +}; + +static const float vp9_rect_part_nn_weights_32_layer1[32 * LABELS] = { + 0.622235f, 0.264894f, -0.424216f, 0.103989f, 1.401192f, -0.063838f, + -5.216846f, 0.329234f, -0.293113f, 0.457519f, -0.271899f, 0.043771f, + -0.203823f, 0.573535f, -0.192703f, 0.054939f, 0.163019f, 0.124803f, + 0.160664f, 0.385406f, -0.091403f, 0.320204f, 0.101181f, -0.157792f, + -0.095555f, -0.255011f, 1.326614f, -0.138076f, -0.082434f, -0.342442f, + 0.184067f, -0.076395f, 0.050263f, 0.251065f, 0.291743f, 0.197838f, + -0.950922f, 0.280202f, 2.904905f, -0.219434f, 0.284386f, 0.375005f, + 0.193817f, -0.298663f, -0.255364f, -0.297545f, 0.030518f, -0.023892f, + -0.396120f, -0.253027f, 0.237235f, -0.550249f, -0.076817f, -0.201374f, + 0.292708f, 0.341936f, -0.532215f, 0.180634f, -0.943291f, -0.217179f, + 0.251611f, -0.306310f, 0.229054f, -0.350337f, -0.192707f, 0.146781f, + 0.409007f, 0.279088f, -0.307357f, 0.199059f, 2.780962f, 0.163723f, + -0.226445f, 0.242830f, 0.220356f, -0.057621f, 0.196677f, -0.179975f, + -0.314636f, 0.218271f, -0.278653f, -0.226286f, 0.034275f, -0.320149f, + 0.154779f, 0.074937f, -0.015650f, -0.281735f, -0.495227f, -0.075036f, + -0.871024f, -0.350643f, 0.343468f, 0.095665f, 0.447121f, -0.059040f, + 0.244757f, 0.223122f, 0.272544f, 0.129678f, -1.700183f, 0.254869f, + 2.528983f, 0.217362f, 0.327765f, -0.129369f, -0.003560f, -0.532537f, + 0.080216f, -0.739488f, -0.299813f, 0.185421f, 0.265994f, 0.152268f, + -0.401829f, -0.901380f, 0.347747f, -0.524845f, -0.201163f, 0.063585f, + -0.517479f, -0.077816f, -0.735739f, -0.161411f, -0.113607f, -0.306188f, + 0.190817f, -0.362567f, +}; + +static const float vp9_rect_part_nn_bias_32_layer1[LABELS] = { + -0.833530f, + 0.860502f, + 0.708645f, + -1.083700f, +}; + +static const NN_CONFIG vp9_rect_part_nnconfig_32 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 32, + }, // num_hidden_nodes + { + vp9_rect_part_nn_weights_32_layer0, + vp9_rect_part_nn_weights_32_layer1, + }, + { + vp9_rect_part_nn_bias_32_layer0, + vp9_rect_part_nn_bias_32_layer1, + }, +}; + +static const float vp9_rect_part_nn_weights_64_layer0[FEATURES * 32] = { + 0.029424f, -0.295893f, -0.313259f, -0.090484f, -0.104946f, 0.121361f, + 0.137971f, -0.137984f, -0.328158f, -0.137280f, -0.276995f, -0.153118f, + 0.187893f, 0.105787f, -0.236591f, -0.114325f, -0.000708f, 1.936191f, + 0.048491f, -0.026048f, -0.206916f, 0.830237f, -0.152354f, 0.074191f, + -0.153813f, 0.148942f, -0.103457f, 0.028252f, 1.758264f, -2.123016f, + 0.120182f, 0.049954f, 0.110450f, -0.199360f, 0.642198f, 0.040225f, + -0.140886f, 0.091833f, -0.122788f, 1.172115f, -0.833333f, -0.505218f, + 0.736050f, -0.109958f, -0.839030f, -0.399916f, 1.029718f, 0.408977f, + -0.836882f, 0.389683f, -1.134413f, -1.529672f, -0.146351f, 0.089298f, + 0.083772f, -0.697869f, 1.683311f, -0.882446f, 0.494428f, -0.122128f, + 0.659819f, -0.057178f, -0.915390f, -0.192412f, 0.046613f, 0.010697f, + 0.040782f, 0.110807f, -0.225332f, -0.327730f, -0.114825f, 0.063511f, + 0.050503f, 0.023602f, 0.006524f, -0.274547f, -0.607145f, -0.143812f, + -0.327689f, -0.333072f, -0.017138f, -0.183992f, -0.200622f, -0.262463f, + -0.132799f, -0.018155f, -0.534214f, -0.385994f, 0.116278f, -0.752879f, + -0.090734f, -0.249152f, 0.071716f, 0.029603f, -0.382456f, -0.122894f, + 1.349552f, -0.885192f, 0.257903f, -0.265945f, -0.045579f, 0.112247f, + -0.122810f, -0.258285f, -0.145427f, -0.127442f, 0.072778f, 0.072549f, + 0.182149f, 0.239403f, 0.167205f, -0.291616f, -0.281237f, 0.335735f, + 0.208511f, -0.239628f, -0.022236f, -0.177370f, 0.207808f, 0.023535f, + 0.137455f, 0.016406f, -0.138685f, 0.188732f, 0.205513f, 0.209787f, + 0.060592f, 0.239954f, -0.128341f, -0.291585f, 0.022141f, -0.311201f, + -0.010199f, -0.314224f, -0.351915f, -0.079775f, -0.260028f, -0.015953f, + 0.007404f, 0.051589f, 0.019771f, -2.337926f, 0.024596f, -2.512399f, + -0.023138f, -2.421380f, 0.016515f, -3.269775f, 0.026844f, -0.053660f, + -0.013213f, -0.029248f, 0.114357f, 0.259100f, -0.141749f, -0.106802f, + -0.117323f, -0.294698f, -0.316012f, -0.328013f, 0.016459f, 0.136175f, + 0.223327f, 0.322312f, -0.297297f, 0.118286f, -0.317197f, -0.116692f, + 0.262236f, -0.032443f, -0.392128f, -0.199989f, -0.383621f, 0.008347f, + -0.079302f, -0.005529f, 0.049261f, 0.145948f, -0.263592f, -0.317109f, + 0.260015f, -0.499341f, -0.171764f, -0.017815f, 0.149186f, 0.178294f, + -0.492198f, 0.016956f, 0.008067f, -0.057734f, -0.189979f, -0.131489f, + -0.163303f, 0.121378f, -0.172272f, 0.125891f, 0.120654f, 0.071314f, + 0.117423f, -0.242167f, 0.047170f, 0.234302f, -0.355370f, -0.336112f, + -0.255471f, -0.267792f, -0.135367f, -0.284411f, 0.254592f, 0.098749f, + 0.224989f, 0.258450f, -0.306878f, 0.153551f, -0.175806f, -0.244459f, + -0.274922f, 0.254346f, 0.110309f, 0.036054f, 0.095133f, -0.589646f, + 0.080543f, 0.154155f, 0.133797f, -0.401518f, 0.798127f, 0.066742f, + 1.449216f, 0.282498f, 1.210638f, -0.280643f, 0.572386f, -0.308133f, + -0.053143f, 0.008437f, 0.269565f, 0.347616f, 0.087180f, -0.771104f, + 0.200800f, 0.157578f, 0.474128f, -0.971488f, 0.193451f, 0.340339f, + -0.123425f, 0.560754f, -0.139621f, -0.281721f, -0.100162f, 0.250926f, + 0.281100f, 0.197680f, 0.138629f, 1.045823f, 0.339047f, 0.036698f, + -0.159210f, 0.727869f, -1.371850f, 0.116241f, -2.180194f, 0.214055f, + -0.213691f, 0.447957f, -1.129966f, 0.543598f, 0.147599f, 0.060034f, + -0.049415f, -0.095858f, 0.290599f, 0.059512f, 0.198343f, -0.211903f, + 0.158736f, -0.090220f, -0.221992f, 0.198320f, 0.028632f, -0.408238f, + -0.368266f, -0.218740f, -0.379023f, -0.173573f, -0.035179f, 0.240176f, + 0.237714f, -0.417132f, -0.184989f, 0.046818f, -0.016965f, -0.524012f, + -0.094848f, -0.225678f, 0.021766f, -0.028366f, 0.072343f, -0.039980f, + 0.023334f, -0.392397f, 0.164450f, -0.201650f, -0.519754f, -0.023352f, + -4.559466f, -0.115996f, 0.135844f, 0.152599f, -0.111570f, 1.870310f, + 0.003522f, 1.893098f, -0.134055f, 1.850787f, 0.085160f, -2.203354f, + 0.380799f, -0.074047f, 0.023760f, 0.077310f, 0.273381f, -1.163135f, + -0.024976f, 0.093252f, 0.011445f, -0.129009f, -2.200677f, -0.013703f, + -1.964109f, -0.027246f, -2.135679f, 0.049465f, -3.879032f, 0.195114f, + -0.018085f, 0.016755f, 0.036330f, 0.169138f, 0.003548f, -0.028565f, + -0.178196f, -0.020577f, -0.104330f, -0.270961f, -0.282822f, -0.228735f, + -0.292561f, 0.271648f, 0.129171f, 0.376168f, -0.265005f, -0.093002f, + -0.185514f, 0.025598f, 0.055265f, -0.212784f, -0.249005f, 0.051507f, + -0.267868f, 0.162227f, -0.237365f, 0.267479f, -0.051543f, -0.288800f, + -0.246119f, 0.216296f, 0.226888f, -0.123005f, 0.068040f, -0.096630f, + -0.100500f, 0.161640f, -0.349187f, -0.061229f, 0.042915f, 0.024949f, + -0.083086f, -0.407249f, -0.428306f, -0.381137f, -0.508822f, 0.354796f, + -0.612346f, -0.230076f, -0.734103f, -0.550571f, -0.318788f, -0.300091f, + -0.336045f, -0.494406f, -0.206900f, 0.079942f, 0.149065f, -0.533360f, + 0.940431f, -0.078860f, 1.418633f, -0.117527f, 1.349170f, 0.242658f, + 0.559328f, 0.258770f, -0.014508f, -0.204775f, -0.292631f, 0.498345f, + -0.274918f, 0.051670f, 0.157748f, -0.179721f, -0.183330f, -0.393550f, + -0.208848f, 0.060742f, -0.159654f, 0.047757f, -0.400256f, -0.084606f, + -0.080619f, -0.359664f, -0.078305f, -0.455653f, 0.227624f, -0.385606f, + -0.060326f, -0.209831f, -0.077008f, 0.148862f, 0.209908f, 0.047655f, + -0.342292f, -0.088375f, -0.115465f, 0.082700f, 0.036465f, -0.001792f, + -0.285730f, 0.114632f, 0.239254f, -0.348543f, 0.044916f, -0.299003f, + -0.244756f, -0.180802f, 0.314253f, -0.127788f, -0.221512f, 0.034787f, + -0.208388f, 0.349156f, 0.265975f, -0.068335f, 0.261372f, 0.146705f, + -0.098729f, 0.293699f, -0.111342f, 0.207402f, -0.038772f, 0.124135f, + -0.237450f, -0.191511f, -0.052240f, -0.237151f, 0.005013f, 0.139441f, + -0.153634f, -0.021596f, -0.036220f, -0.077873f, -0.085995f, -0.254555f, + -0.204382f, -0.082362f, 0.941796f, 0.253800f, -0.957468f, 0.095795f, + 0.122046f, -0.310364f, 0.087301f, 0.012704f, 0.193265f, -0.058303f, + 0.250452f, 0.835269f, 0.507383f, 0.109957f, -0.145028f, -0.114419f, + -0.225618f, 0.132387f, -0.063335f, -0.325776f, -0.346173f, -0.006653f, + -0.133534f, -0.085549f, -0.050177f, 0.173103f, 0.025421f, 0.105512f, + 0.258036f, 0.153116f, 0.290202f, -0.333699f, -0.072405f, -0.124069f, + -0.241933f, -0.313318f, 0.013623f, -0.237440f, -0.232228f, -0.170850f, + -0.039212f, 0.162468f, -0.330162f, -0.218462f, -0.287064f, -0.181673f, + -0.161059f, 0.024664f, -0.108642f, -0.231707f, 0.217994f, -1.128878f, + 0.093010f, 0.101513f, 0.055895f, -0.354538f, 0.844174f, 0.254335f, + 1.920298f, -0.230777f, 0.798144f, 0.206425f, 0.580655f, -0.177645f, + -0.412061f, 0.112629f, -0.476438f, 0.209436f, +}; + +static const float vp9_rect_part_nn_bias_64_layer0[32] = { + 0.000000f, 0.345406f, -0.499542f, -1.718246f, -0.147443f, -0.408843f, + -0.008997f, -0.107946f, 2.117510f, 0.000000f, -0.141830f, -0.049079f, + 0.000000f, -1.331136f, -1.417843f, -0.485054f, -0.100856f, -0.230750f, + -2.574372f, 2.310627f, -0.030363f, 0.000000f, -0.310119f, -1.314316f, + -0.108766f, -0.107918f, 0.000000f, 0.000000f, 0.093643f, 0.000000f, + 0.000000f, -0.902343f, +}; + +static const float vp9_rect_part_nn_weights_64_layer1[32 * LABELS] = { + 0.404567f, 1.168492f, 0.051714f, 0.827941f, 0.135334f, 0.456922f, + -0.370524f, 0.062865f, -3.076300f, -0.290613f, 0.280029f, -0.101778f, + 0.250216f, 0.347721f, 0.466400f, 0.030845f, 0.114570f, 0.089456f, + 1.519938f, -3.493788f, 0.264212f, -0.109125f, 0.306644f, 0.368206f, + -0.052168f, -0.229630f, -0.339932f, -0.080472f, 0.319845f, 0.143818f, + -0.172595f, 0.372777f, -0.082072f, -0.505781f, -0.288321f, -0.473028f, + -0.027567f, -0.034329f, -0.291965f, -0.063262f, 1.721741f, 0.118914f, + 0.183681f, 0.041611f, 0.266371f, 0.005896f, -0.484705f, 0.665535f, + -0.240945f, -0.017963f, -1.409440f, 2.031976f, 0.240327f, -0.116604f, + 0.273245f, -0.170570f, -0.085491f, -0.340315f, -0.209651f, -0.217460f, + -0.249373f, 0.009193f, 0.009467f, -0.272909f, 0.308472f, -0.551173f, + 0.168374f, -0.583229f, 0.140082f, -0.585715f, -0.010929f, 0.159779f, + 1.438104f, 0.293111f, -0.053339f, -0.101828f, -0.280573f, -0.211265f, + -0.323605f, -0.540908f, 0.101366f, -0.005288f, -1.517046f, 2.078767f, + 0.215597f, 0.144012f, 0.315888f, -0.251324f, 0.150482f, -0.137871f, + 0.235116f, -0.194202f, -0.153475f, -0.312384f, -0.375510f, 0.336488f, + -0.379837f, -1.004979f, -0.312587f, -0.406174f, 0.154290f, -0.539766f, + -0.230074f, 0.303564f, 0.719439f, -0.235108f, -0.204978f, 0.399229f, + 0.290222f, -0.278713f, -0.667069f, -0.420550f, 0.164893f, -0.459689f, + -1.035368f, 0.818909f, 0.275137f, -0.291006f, -0.061505f, 0.052737f, + -0.084871f, -0.348335f, 0.312544f, 0.120753f, -0.707222f, -0.010050f, + -0.137148f, -0.351765f, +}; + +static const float vp9_rect_part_nn_bias_64_layer1[LABELS] = { + -0.926768f, + 0.765832f, + 0.663683f, + -0.621865f, +}; + +static const NN_CONFIG vp9_rect_part_nnconfig_64 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 32, + }, // num_hidden_nodes + { + vp9_rect_part_nn_weights_64_layer0, + vp9_rect_part_nn_weights_64_layer1, + }, + { + vp9_rect_part_nn_bias_64_layer0, + vp9_rect_part_nn_bias_64_layer1, + }, +}; +#undef FEATURES +#undef LABELS + +#define FEATURES 7 +// Partition pruning model(neural nets). +static const float vp9_partition_nn_weights_64x64_layer0[FEATURES * 8] = { + -3.571348f, 0.014835f, -3.255393f, -0.098090f, -0.013120f, 0.000221f, + 0.056273f, 0.190179f, -0.268130f, -1.828242f, -0.010655f, 0.937244f, + -0.435120f, 0.512125f, 1.610679f, 0.190816f, -0.799075f, -0.377348f, + -0.144232f, 0.614383f, -0.980388f, 1.754150f, -0.185603f, -0.061854f, + -0.807172f, 1.240177f, 1.419531f, -0.438544f, -5.980774f, 0.139045f, + -0.032359f, -0.068887f, -1.237918f, 0.115706f, 0.003164f, 2.924212f, + 1.246838f, -0.035833f, 0.810011f, -0.805894f, 0.010966f, 0.076463f, + -4.226380f, -2.437764f, -0.010619f, -0.020935f, -0.451494f, 0.300079f, + -0.168961f, -3.326450f, -2.731094f, 0.002518f, 0.018840f, -1.656815f, + 0.068039f, 0.010586f, +}; + +static const float vp9_partition_nn_bias_64x64_layer0[8] = { + -3.469882f, 0.683989f, 0.194010f, 0.313782f, + -3.153335f, 2.245849f, -1.946190f, -3.740020f, +}; + +static const float vp9_partition_nn_weights_64x64_layer1[8] = { + -8.058566f, 0.108306f, -0.280620f, -0.818823f, + -6.445117f, 0.865364f, -1.127127f, -8.808660f, +}; + +static const float vp9_partition_nn_bias_64x64_layer1[1] = { + 6.46909416f, +}; + +static const NN_CONFIG vp9_partition_nnconfig_64x64 = { + FEATURES, // num_inputs + 1, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_partition_nn_weights_64x64_layer0, + vp9_partition_nn_weights_64x64_layer1, + }, + { + vp9_partition_nn_bias_64x64_layer0, + vp9_partition_nn_bias_64x64_layer1, + }, +}; + +static const float vp9_partition_nn_weights_32x32_layer0[FEATURES * 8] = { + -0.295437f, -4.002648f, -0.205399f, -0.060919f, 0.708037f, 0.027221f, + -0.039137f, -0.907724f, -3.151662f, 0.007106f, 0.018726f, -0.534928f, + 0.022744f, 0.000159f, -1.717189f, -3.229031f, -0.027311f, 0.269863f, + -0.400747f, -0.394366f, -0.108878f, 0.603027f, 0.455369f, -0.197170f, + 1.241746f, -1.347820f, -0.575636f, -0.462879f, -2.296426f, 0.196696f, + -0.138347f, -0.030754f, -0.200774f, 0.453795f, 0.055625f, -3.163116f, + -0.091003f, -0.027028f, -0.042984f, -0.605185f, 0.143240f, -0.036439f, + -0.801228f, 0.313409f, -0.159942f, 0.031267f, 0.886454f, -1.531644f, + -0.089655f, 0.037683f, -0.163441f, -0.130454f, -0.058344f, 0.060011f, + 0.275387f, 1.552226f, +}; + +static const float vp9_partition_nn_bias_32x32_layer0[8] = { + -0.838372f, -2.609089f, -0.055763f, 1.329485f, + -1.297638f, -2.636622f, -0.826909f, 1.012644f, +}; + +static const float vp9_partition_nn_weights_32x32_layer1[8] = { + -1.792632f, -7.322353f, -0.683386f, 0.676564f, + -1.488118f, -7.527719f, 1.240163f, 0.614309f, +}; + +static const float vp9_partition_nn_bias_32x32_layer1[1] = { + 4.97422546f, +}; + +static const NN_CONFIG vp9_partition_nnconfig_32x32 = { + FEATURES, // num_inputs + 1, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_partition_nn_weights_32x32_layer0, + vp9_partition_nn_weights_32x32_layer1, + }, + { + vp9_partition_nn_bias_32x32_layer0, + vp9_partition_nn_bias_32x32_layer1, + }, +}; + +static const float vp9_partition_nn_weights_16x16_layer0[FEATURES * 8] = { + -1.717673f, -4.718130f, -0.125725f, -0.183427f, -0.511764f, 0.035328f, + 0.130891f, -3.096753f, 0.174968f, -0.188769f, -0.640796f, 1.305661f, + 1.700638f, -0.073806f, -4.006781f, -1.630999f, -0.064863f, -0.086410f, + -0.148617f, 0.172733f, -0.018619f, 2.152595f, 0.778405f, -0.156455f, + 0.612995f, -0.467878f, 0.152022f, -0.236183f, 0.339635f, -0.087119f, + -3.196610f, -1.080401f, -0.637704f, -0.059974f, 1.706298f, -0.793705f, + -6.399260f, 0.010624f, -0.064199f, -0.650621f, 0.338087f, -0.001531f, + 1.023655f, -3.700272f, -0.055281f, -0.386884f, 0.375504f, -0.898678f, + 0.281156f, -0.314611f, 0.863354f, -0.040582f, -0.145019f, 0.029329f, + -2.197880f, -0.108733f, +}; + +static const float vp9_partition_nn_bias_16x16_layer0[8] = { + 0.411516f, -2.143737f, -3.693192f, 2.123142f, + -1.356910f, -3.561016f, -0.765045f, -2.417082f, +}; + +static const float vp9_partition_nn_weights_16x16_layer1[8] = { + -0.619755f, -2.202391f, -4.337171f, 0.611319f, + 0.377677f, -4.998723f, -1.052235f, 1.949922f, +}; + +static const float vp9_partition_nn_bias_16x16_layer1[1] = { + 3.20981717f, +}; + +static const NN_CONFIG vp9_partition_nnconfig_16x16 = { + FEATURES, // num_inputs + 1, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_partition_nn_weights_16x16_layer0, + vp9_partition_nn_weights_16x16_layer1, + }, + { + vp9_partition_nn_bias_16x16_layer0, + vp9_partition_nn_bias_16x16_layer1, + }, +}; +#undef FEATURES + +#if CONFIG_ML_VAR_PARTITION +#define FEATURES 6 +static const float vp9_var_part_nn_weights_64_layer0[FEATURES * 8] = { + -0.249572f, 0.205532f, -2.175608f, 1.094836f, -2.986370f, 0.193160f, + -0.143823f, 0.378511f, -1.997788f, -2.166866f, -1.930158f, -1.202127f, + -0.611875f, -0.506422f, -0.432487f, 0.071205f, 0.578172f, -0.154285f, + -0.051830f, 0.331681f, -1.457177f, -2.443546f, -2.000302f, -1.389283f, + 0.372084f, -0.464917f, 2.265235f, 2.385787f, 2.312722f, 2.127868f, + -0.403963f, -0.177860f, -0.436751f, -0.560539f, 0.254903f, 0.193976f, + -0.305611f, 0.256632f, 0.309388f, -0.437439f, 1.702640f, -5.007069f, + -0.323450f, 0.294227f, 1.267193f, 1.056601f, 0.387181f, -0.191215f, +}; + +static const float vp9_var_part_nn_bias_64_layer0[8] = { + -0.044396f, -0.938166f, 0.000000f, -0.916375f, + 1.242299f, 0.000000f, -0.405734f, 0.014206f, +}; + +static const float vp9_var_part_nn_weights_64_layer1[8] = { + 1.635945f, 0.979557f, 0.455315f, 1.197199f, + -2.251024f, -0.464953f, 1.378676f, -0.111927f, +}; + +static const float vp9_var_part_nn_bias_64_layer1[1] = { + -0.37972447f, +}; + +static const NN_CONFIG vp9_var_part_nnconfig_64 = { + FEATURES, // num_inputs + 1, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_part_nn_weights_64_layer0, + vp9_var_part_nn_weights_64_layer1, + }, + { + vp9_var_part_nn_bias_64_layer0, + vp9_var_part_nn_bias_64_layer1, + }, +}; + +static const float vp9_var_part_nn_weights_32_layer0[FEATURES * 8] = { + 0.067243f, -0.083598f, -2.191159f, 2.726434f, -3.324013f, 3.477977f, + 0.323736f, -0.510199f, 2.960693f, 2.937661f, 2.888476f, 2.938315f, + -0.307602f, -0.503353f, -0.080725f, -0.473909f, -0.417162f, 0.457089f, + 0.665153f, -0.273210f, 0.028279f, 0.972220f, -0.445596f, 1.756611f, + -0.177892f, -0.091758f, 0.436661f, -0.521506f, 0.133786f, 0.266743f, + 0.637367f, -0.160084f, -1.396269f, 1.020841f, -1.112971f, 0.919496f, + -0.235883f, 0.651954f, 0.109061f, -0.429463f, 0.740839f, -0.962060f, + 0.299519f, -0.386298f, 1.550231f, 2.464915f, 1.311969f, 2.561612f, +}; + +static const float vp9_var_part_nn_bias_32_layer0[8] = { + 0.368242f, 0.736617f, 0.000000f, 0.757287f, + 0.000000f, 0.613248f, -0.776390f, 0.928497f, +}; + +static const float vp9_var_part_nn_weights_32_layer1[8] = { + 0.939884f, -2.420850f, -0.410489f, -0.186690f, + 0.063287f, -0.522011f, 0.484527f, -0.639625f, +}; + +static const float vp9_var_part_nn_bias_32_layer1[1] = { + -0.6455006f, +}; + +static const NN_CONFIG vp9_var_part_nnconfig_32 = { + FEATURES, // num_inputs + 1, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_part_nn_weights_32_layer0, + vp9_var_part_nn_weights_32_layer1, + }, + { + vp9_var_part_nn_bias_32_layer0, + vp9_var_part_nn_bias_32_layer1, + }, +}; + +static const float vp9_var_part_nn_weights_16_layer0[FEATURES * 8] = { + 0.742567f, -0.580624f, -0.244528f, 0.331661f, -0.113949f, -0.559295f, + -0.386061f, 0.438653f, 1.467463f, 0.211589f, 0.513972f, 1.067855f, + -0.876679f, 0.088560f, -0.687483f, -0.380304f, -0.016412f, 0.146380f, + 0.015318f, 0.000351f, -2.764887f, 3.269717f, 2.752428f, -2.236754f, + 0.561539f, -0.852050f, -0.084667f, 0.202057f, 0.197049f, 0.364922f, + -0.463801f, 0.431790f, 1.872096f, -0.091887f, -0.055034f, 2.443492f, + -0.156958f, -0.189571f, -0.542424f, -0.589804f, -0.354422f, 0.401605f, + 0.642021f, -0.875117f, 2.040794f, 1.921070f, 1.792413f, 1.839727f, +}; + +static const float vp9_var_part_nn_bias_16_layer0[8] = { + 2.901234f, -1.940932f, -0.198970f, -0.406524f, + 0.059422f, -1.879207f, -0.232340f, 2.979821f, +}; + +static const float vp9_var_part_nn_weights_16_layer1[8] = { + -0.528731f, 0.375234f, -0.088422f, 0.668629f, + 0.870449f, 0.578735f, 0.546103f, -1.957207f, +}; + +static const float vp9_var_part_nn_bias_16_layer1[1] = { + -1.95769405f, +}; + +static const NN_CONFIG vp9_var_part_nnconfig_16 = { + FEATURES, // num_inputs + 1, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_part_nn_weights_16_layer0, + vp9_var_part_nn_weights_16_layer1, + }, + { + vp9_var_part_nn_bias_16_layer0, + vp9_var_part_nn_bias_16_layer1, + }, +}; +#undef FEATURES +#endif // CONFIG_ML_VAR_PARTITION + +#define FEATURES 6 +#define LABELS 1 +static const float vp9_var_rd_part_nn_weights_64_layer0[FEATURES * 8] = { + -0.100129f, 0.128867f, -1.375086f, -2.268096f, -1.470368f, -2.296274f, + 0.034445f, -0.062993f, -2.151904f, 0.523215f, 1.611269f, 1.530051f, + 0.418182f, -1.330239f, 0.828388f, 0.386546f, -0.026188f, -0.055459f, + -0.474437f, 0.861295f, -2.208743f, -0.652991f, -2.985873f, -1.728956f, + 0.388052f, -0.420720f, 2.015495f, 1.280342f, 3.040914f, 1.760749f, + -0.009062f, 0.009623f, 1.579270f, -2.012891f, 1.629662f, -1.796016f, + -0.279782f, -0.288359f, 1.875618f, 1.639855f, 0.903020f, 0.906438f, + 0.553394f, -1.621589f, 0.185063f, 0.605207f, -0.133560f, 0.588689f, +}; + +static const float vp9_var_rd_part_nn_bias_64_layer0[8] = { + 0.659717f, 0.120912f, 0.329894f, -1.586385f, + 1.715839f, 0.085754f, 2.038774f, 0.268119f, +}; + +static const float vp9_var_rd_part_nn_weights_64_layer1[8 * LABELS] = { + -3.445586f, 2.375620f, 1.236970f, 0.804030f, + -2.448384f, 2.827254f, 2.291478f, 0.790252f, +}; + +static const float vp9_var_rd_part_nn_bias_64_layer1[LABELS] = { + -1.16608453f, +}; + +static const NN_CONFIG vp9_var_rd_part_nnconfig_64 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_rd_part_nn_weights_64_layer0, + vp9_var_rd_part_nn_weights_64_layer1, + }, + { + vp9_var_rd_part_nn_bias_64_layer0, + vp9_var_rd_part_nn_bias_64_layer1, + }, +}; + +static const float vp9_var_rd_part_nn_weights_32_layer0[FEATURES * 8] = { + 0.022420f, -0.032201f, 1.228065f, -2.767655f, 1.928743f, 0.566863f, + 0.459229f, 0.422048f, 0.833395f, 0.822960f, -0.232227f, 0.586895f, + 0.442856f, -0.018564f, 0.227672f, -1.291306f, 0.119428f, -0.776563f, + -0.042947f, 0.183129f, 0.592231f, 1.174859f, -0.503868f, 0.270102f, + -0.330537f, -0.036340f, 1.144630f, 1.783710f, 1.216929f, 2.038085f, + 0.373782f, -0.430258f, 1.957002f, 1.383908f, 2.012261f, 1.585693f, + -0.394399f, -0.337523f, -0.238335f, 0.007819f, -0.368294f, 0.437875f, + -0.318923f, -0.242000f, 2.276263f, 1.501432f, 0.645706f, 0.344774f, +}; + +static const float vp9_var_rd_part_nn_bias_32_layer0[8] = { + -0.023846f, -1.348117f, 1.365007f, -1.644164f, + 0.062992f, 1.257980f, -0.098642f, 1.388472f, +}; + +static const float vp9_var_rd_part_nn_weights_32_layer1[8 * LABELS] = { + 3.016729f, 0.622684f, -1.021302f, 1.490383f, + 1.702046f, -2.964618f, 0.689045f, 1.711754f, +}; + +static const float vp9_var_rd_part_nn_bias_32_layer1[LABELS] = { + -1.28798676f, +}; + +static const NN_CONFIG vp9_var_rd_part_nnconfig_32 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_rd_part_nn_weights_32_layer0, + vp9_var_rd_part_nn_weights_32_layer1, + }, + { + vp9_var_rd_part_nn_bias_32_layer0, + vp9_var_rd_part_nn_bias_32_layer1, + }, +}; + +static const float vp9_var_rd_part_nn_weights_16_layer0[FEATURES * 8] = { + -0.726813f, -0.026748f, 1.376946f, 1.467961f, 1.961810f, 1.690412f, + 0.596484f, -0.261486f, -0.310905f, -0.366311f, -1.300086f, -0.534336f, + 0.040520f, -0.032391f, -1.194214f, 2.438063f, -3.915334f, 1.997270f, + 0.673696f, -0.676393f, 1.654886f, 1.553838f, 1.129691f, 1.360201f, + 0.255001f, 0.336442f, -0.487759f, -0.634555f, 0.479170f, -0.110475f, + -0.661852f, -0.158872f, -0.350243f, -0.303957f, -0.045018f, 0.586151f, + -0.262463f, 0.228079f, -1.688776f, -1.594502f, -2.261078f, -1.802535f, + 0.034748f, -0.028476f, 2.713258f, 0.212446f, -1.529202f, -2.560178f, +}; + +static const float vp9_var_rd_part_nn_bias_16_layer0[8] = { + 0.495983f, 1.858545f, 0.162974f, 1.992247f, + -2.698863f, 0.110020f, 0.550830f, 0.420941f, +}; + +static const float vp9_var_rd_part_nn_weights_16_layer1[8 * LABELS] = { + 1.768409f, -1.394240f, 1.076846f, -1.762808f, + 1.517405f, 0.535195f, -0.426827f, 1.002272f, +}; + +static const float vp9_var_rd_part_nn_bias_16_layer1[LABELS] = { + -1.65894794f, +}; + +static const NN_CONFIG vp9_var_rd_part_nnconfig_16 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_rd_part_nn_weights_16_layer0, + vp9_var_rd_part_nn_weights_16_layer1, + }, + { + vp9_var_rd_part_nn_bias_16_layer0, + vp9_var_rd_part_nn_bias_16_layer1, + }, +}; + +static const float vp9_var_rd_part_nn_weights_8_layer0[FEATURES * 8] = { + -0.804900f, -1.214983f, 0.840202f, 0.686566f, 0.155804f, 0.025542f, + -1.244635f, -0.368403f, 0.364150f, 1.081073f, 0.552387f, 0.452715f, + 0.652968f, -0.293058f, 0.048967f, 0.021240f, -0.662981f, 0.424700f, + 0.008293f, -0.013088f, 0.747007f, -1.453907f, -1.498226f, 1.593252f, + -0.239557f, -0.143766f, 0.064311f, 1.320998f, -0.477411f, 0.026374f, + 0.730884f, -0.675124f, 0.965521f, 0.863658f, 0.809186f, 0.812280f, + 0.513131f, 0.185102f, 0.211354f, 0.793666f, 0.121714f, -0.015383f, + -0.650980f, -0.046581f, 0.911141f, 0.806319f, 0.974773f, 0.815893f, +}; + +static const float vp9_var_rd_part_nn_bias_8_layer0[8] = { + 0.176134f, 0.651308f, 2.007761f, 0.068812f, + 1.061517f, 1.487161f, -2.308147f, 1.099828f, +}; + +static const float vp9_var_rd_part_nn_weights_8_layer1[8 * LABELS] = { + 0.683032f, 1.326393f, -1.661539f, 1.438920f, + 1.118023f, -2.237380f, 1.518468f, 2.010416f, +}; + +static const float vp9_var_rd_part_nn_bias_8_layer1[LABELS] = { + -1.65423989f, +}; + +static const NN_CONFIG vp9_var_rd_part_nnconfig_8 = { + FEATURES, // num_inputs + LABELS, // num_outputs + 1, // num_hidden_layers + { + 8, + }, // num_hidden_nodes + { + vp9_var_rd_part_nn_weights_8_layer0, + vp9_var_rd_part_nn_weights_8_layer1, + }, + { + vp9_var_rd_part_nn_bias_8_layer0, + vp9_var_rd_part_nn_bias_8_layer1, + }, +}; +#undef FEATURES +#undef LABELS + +// Partition pruning model(linear). +static const float vp9_partition_feature_mean[24] = { + 303501.697372f, 3042630.372158f, 24.694696f, 1.392182f, + 689.413511f, 162.027012f, 1.478213f, 0.0, + 135382.260230f, 912738.513263f, 28.845217f, 1.515230f, + 544.158492f, 131.807995f, 1.436863f, 0.0f, + 43682.377587f, 208131.711766f, 28.084737f, 1.356677f, + 138.254122f, 119.522553f, 1.252322f, 0.0f, +}; + +static const float vp9_partition_feature_std[24] = { + 673689.212982f, 5996652.516628f, 0.024449f, 1.989792f, + 985.880847f, 0.014638f, 2.001898f, 0.0f, + 208798.775332f, 1812548.443284f, 0.018693f, 1.838009f, + 396.986910f, 0.015657f, 1.332541f, 0.0f, + 55888.847031f, 448587.962714f, 0.017900f, 1.904776f, + 98.652832f, 0.016598f, 1.320992f, 0.0f, +}; + +// Error tolerance: 0.01%-0.0.05%-0.1% +static const float vp9_partition_linear_weights[24] = { + 0.111736f, 0.289977f, 0.042219f, 0.204765f, 0.120410f, -0.143863f, + 0.282376f, 0.847811f, 0.637161f, 0.131570f, 0.018636f, 0.202134f, + 0.112797f, 0.028162f, 0.182450f, 1.124367f, 0.386133f, 0.083700f, + 0.050028f, 0.150873f, 0.061119f, 0.109318f, 0.127255f, 0.625211f, +}; + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // VPX_VP9_ENCODER_VP9_PARTITION_MODELS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h index cecca058b47..8881b44daaa 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_PICKLPF_H_ -#define VP9_ENCODER_VP9_PICKLPF_H_ +#ifndef VPX_VP9_ENCODER_VP9_PICKLPF_H_ +#define VPX_VP9_ENCODER_VP9_PICKLPF_H_ #ifdef __cplusplus extern "C" { @@ -26,4 +26,4 @@ void vp9_pick_filter_level(const struct yv12_buffer_config *sd, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_PICKLPF_H_ +#endif // VPX_VP9_ENCODER_VP9_PICKLPF_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c index 04c7b3c2c07..416d437e07d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c @@ -246,7 +246,7 @@ static int combined_motion_search(VP9_COMP *cpi, MACROBLOCK *x, cpi->find_fractional_mv_step( x, &tmp_mv->as_mv, &ref_mv, cpi->common.allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], subpel_force_stop, - cpi->sf.mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list), + cpi->sf.mv.subpel_search_level, cond_cost_list(cpi, cost_list), x->nmvjointcost, x->mvcost, &dis, &x->pred_sse[ref], NULL, 0, 0); *rate_mv = vp9_mv_bit_cost(&tmp_mv->as_mv, &ref_mv, x->nmvjointcost, x->mvcost, MV_COST_WEIGHT); @@ -1538,7 +1538,7 @@ static int search_new_mv(VP9_COMP *cpi, MACROBLOCK *x, &x->mbmi_ext->ref_mvs[ref_frame][0].as_mv, cpi->common.allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], cpi->sf.mv.subpel_force_stop, - cpi->sf.mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list), + cpi->sf.mv.subpel_search_level, cond_cost_list(cpi, cost_list), x->nmvjointcost, x->mvcost, &dis, &x->pred_sse[ref_frame], NULL, 0, 0); } else if (svc->use_base_mv && svc->spatial_layer_id) { if (frame_mv[NEWMV][ref_frame].as_int != INVALID_MV) { @@ -2756,9 +2756,9 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x, int mi_row, x, &tmp_mv, &mbmi_ext->ref_mvs[ref_frame][0].as_mv, cpi->common.allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], cpi->sf.mv.subpel_force_stop, - cpi->sf.mv.subpel_iters_per_step, - cond_cost_list(cpi, cost_list), x->nmvjointcost, x->mvcost, - &dummy_dist, &x->pred_sse[ref_frame], NULL, 0, 0); + cpi->sf.mv.subpel_search_level, cond_cost_list(cpi, cost_list), + x->nmvjointcost, x->mvcost, &dummy_dist, + &x->pred_sse[ref_frame], NULL, 0, 0); xd->mi[0]->bmi[i].as_mv[0].as_mv = tmp_mv; } else { diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h index 9aa00c4fabf..15207e6cf4d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_PICKMODE_H_ -#define VP9_ENCODER_VP9_PICKMODE_H_ +#ifndef VPX_VP9_ENCODER_VP9_PICKMODE_H_ +#define VPX_VP9_ENCODER_VP9_PICKMODE_H_ #include "vp9/encoder/vp9_encoder.h" @@ -32,4 +32,4 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x, int mi_row, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_PICKMODE_H_ +#endif // VPX_VP9_ENCODER_VP9_PICKMODE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h index 61320361b6c..ed9b8495849 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_QUANTIZE_H_ -#define VP9_ENCODER_VP9_QUANTIZE_H_ +#ifndef VPX_VP9_ENCODER_VP9_QUANTIZE_H_ +#define VPX_VP9_ENCODER_VP9_QUANTIZE_H_ #include "./vpx_config.h" #include "vp9/encoder/vp9_block.h" @@ -59,4 +59,4 @@ int vp9_qindex_to_quantizer(int qindex); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_QUANTIZE_H_ +#endif // VPX_VP9_ENCODER_VP9_QUANTIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c index 70613c9eb7b..76e310ac274 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c @@ -47,8 +47,6 @@ #define MIN_BPB_FACTOR 0.005 #define MAX_BPB_FACTOR 50 -#define FRAME_OVERHEAD_BITS 200 - #if CONFIG_VP9_HIGHBITDEPTH #define ASSIGN_MINQ_TABLE(bit_depth, name) \ do { \ @@ -212,18 +210,23 @@ int vp9_estimate_bits_at_q(FRAME_TYPE frame_type, int q, int mbs, int vp9_rc_clamp_pframe_target_size(const VP9_COMP *const cpi, int target) { const RATE_CONTROL *rc = &cpi->rc; const VP9EncoderConfig *oxcf = &cpi->oxcf; - const int min_frame_target = - VPXMAX(rc->min_frame_bandwidth, rc->avg_frame_bandwidth >> 5); - if (target < min_frame_target) target = min_frame_target; - if (cpi->refresh_golden_frame && rc->is_src_frame_alt_ref) { - // If there is an active ARF at this location use the minimum - // bits on this frame even if it is a constructed arf. - // The active maximum quantizer insures that an appropriate - // number of bits will be spent if needed for constructed ARFs. - target = min_frame_target; + + if (cpi->oxcf.pass != 2) { + const int min_frame_target = + VPXMAX(rc->min_frame_bandwidth, rc->avg_frame_bandwidth >> 5); + if (target < min_frame_target) target = min_frame_target; + if (cpi->refresh_golden_frame && rc->is_src_frame_alt_ref) { + // If there is an active ARF at this location use the minimum + // bits on this frame even if it is a constructed arf. + // The active maximum quantizer insures that an appropriate + // number of bits will be spent if needed for constructed ARFs. + target = min_frame_target; + } } + // Clip the frame target to the maximum allowed value. if (target > rc->max_frame_bandwidth) target = rc->max_frame_bandwidth; + if (oxcf->rc_max_inter_bitrate_pct) { const int max_rate = rc->avg_frame_bandwidth * oxcf->rc_max_inter_bitrate_pct / 100; @@ -774,13 +777,19 @@ static int get_kf_active_quality(const RATE_CONTROL *const rc, int q, kf_low_motion_minq, kf_high_motion_minq); } -static int get_gf_active_quality(const RATE_CONTROL *const rc, int q, +static int get_gf_active_quality(const VP9_COMP *const cpi, int q, vpx_bit_depth_t bit_depth) { + const GF_GROUP *const gf_group = &cpi->twopass.gf_group; + const RATE_CONTROL *const rc = &cpi->rc; + int *arfgf_low_motion_minq; int *arfgf_high_motion_minq; + const int gfu_boost = cpi->multi_layer_arf + ? gf_group->gfu_boost[gf_group->index] + : rc->gfu_boost; ASSIGN_MINQ_TABLE(bit_depth, arfgf_low_motion_minq); ASSIGN_MINQ_TABLE(bit_depth, arfgf_high_motion_minq); - return get_active_quality(q, rc->gfu_boost, gf_low, gf_high, + return get_active_quality(q, gfu_boost, gf_low, gf_high, arfgf_low_motion_minq, arfgf_high_motion_minq); } @@ -932,7 +941,7 @@ static int rc_pick_q_and_bounds_one_pass_cbr(const VP9_COMP *cpi, } else { q = active_worst_quality; } - active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth); + active_best_quality = get_gf_active_quality(cpi, q, cm->bit_depth); } else { // Use the lower of active_worst_quality and recent/average Q. if (cm->current_video_frame > 1) { @@ -1079,7 +1088,7 @@ static int rc_pick_q_and_bounds_one_pass_vbr(const VP9_COMP *cpi, if (oxcf->rc_mode == VPX_CQ) { if (q < cq_level) q = cq_level; - active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth); + active_best_quality = get_gf_active_quality(cpi, q, cm->bit_depth); // Constrained quality use slightly lower active best. active_best_quality = active_best_quality * 15 / 16; @@ -1094,7 +1103,7 @@ static int rc_pick_q_and_bounds_one_pass_vbr(const VP9_COMP *cpi, delta_qindex = vp9_compute_qdelta(rc, q, q * 0.50, cm->bit_depth); active_best_quality = VPXMAX(qindex + delta_qindex, rc->best_quality); } else { - active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth); + active_best_quality = get_gf_active_quality(cpi, q, cm->bit_depth); } } else { if (oxcf->rc_mode == VPX_Q) { @@ -1185,13 +1194,10 @@ int vp9_frame_type_qdelta(const VP9_COMP *cpi, int rf_level, int q) { 1.75, // GF_ARF_STD 2.00, // KF_STD }; - static const FRAME_TYPE frame_type[RATE_FACTOR_LEVELS] = { - INTER_FRAME, INTER_FRAME, INTER_FRAME, INTER_FRAME, KEY_FRAME - }; const VP9_COMMON *const cm = &cpi->common; - int qdelta = - vp9_compute_qdelta_by_rate(&cpi->rc, frame_type[rf_level], q, - rate_factor_deltas[rf_level], cm->bit_depth); + + int qdelta = vp9_compute_qdelta_by_rate( + &cpi->rc, cm->frame_type, q, rate_factor_deltas[rf_level], cm->bit_depth); return qdelta; } @@ -1278,7 +1284,7 @@ static int rc_pick_q_and_bounds_two_pass(const VP9_COMP *cpi, int *bottom_index, if (oxcf->rc_mode == VPX_CQ) { if (q < cq_level) q = cq_level; - active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth); + active_best_quality = get_gf_active_quality(cpi, q, cm->bit_depth); // Constrained quality use slightly lower active best. active_best_quality = active_best_quality * 15 / 16; @@ -1287,7 +1293,7 @@ static int rc_pick_q_and_bounds_two_pass(const VP9_COMP *cpi, int *bottom_index, if (!cpi->refresh_alt_ref_frame) { active_best_quality = cq_level; } else { - active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth); + active_best_quality = get_gf_active_quality(cpi, q, cm->bit_depth); // Modify best quality for second level arfs. For mode VPX_Q this // becomes the baseline frame q. @@ -1295,7 +1301,7 @@ static int rc_pick_q_and_bounds_two_pass(const VP9_COMP *cpi, int *bottom_index, active_best_quality = (active_best_quality + cq_level + 1) / 2; } } else { - active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth); + active_best_quality = get_gf_active_quality(cpi, q, cm->bit_depth); } } else { if (oxcf->rc_mode == VPX_Q) { @@ -1445,6 +1451,12 @@ void vp9_configure_buffer_updates(VP9_COMP *cpi, int gf_group_index) { cpi->refresh_alt_ref_frame = 0; cpi->rc.is_src_frame_alt_ref = 1; break; + case MID_OVERLAY_UPDATE: + cpi->refresh_last_frame = 1; + cpi->refresh_golden_frame = 0; + cpi->refresh_alt_ref_frame = 0; + cpi->rc.is_src_frame_alt_ref = 1; + break; case USE_BUF_FRAME: cpi->refresh_last_frame = 0; cpi->refresh_golden_frame = 0; @@ -2003,6 +2015,8 @@ void vp9_rc_get_svc_params(VP9_COMP *cpi) { int target = rc->avg_frame_bandwidth; int layer = LAYER_IDS_TO_IDX(svc->spatial_layer_id, svc->temporal_layer_id, svc->number_temporal_layers); + if (svc->first_spatial_layer_to_encode) + svc->layer_context[svc->temporal_layer_id].is_key_frame = 0; // Periodic key frames is based on the super-frame counter // (svc.current_superframe), also only base spatial layer is key frame. // Key frame is set for any of the following: very first frame, frame flags diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h index 87b1ec33e87..3b441bf1f50 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_RATECTRL_H_ -#define VP9_ENCODER_VP9_RATECTRL_H_ +#ifndef VPX_VP9_ENCODER_VP9_RATECTRL_H_ +#define VPX_VP9_ENCODER_VP9_RATECTRL_H_ #include "vpx/vpx_codec.h" #include "vpx/vpx_integer.h" @@ -32,6 +32,8 @@ extern "C" { #define FIXED_GF_INTERVAL 8 // Used in some testing modes only #define ONEHALFONLY_RESIZE 0 +#define FRAME_OVERHEAD_BITS 200 + // Threshold used to define a KF group as static (e.g. a slide show). // Essentially this means that no frame in the group has more than 1% of MBs // that are not marked as coded with 0,0 motion in the first pass. @@ -112,16 +114,6 @@ typedef struct { int source_alt_ref_active; int is_src_frame_alt_ref; - // Length of the bi-predictive frame group interval - int bipred_group_interval; - - // NOTE: Different types of frames may have different bits allocated - // accordingly, aiming to achieve the overall optimal RD performance. - int is_bwd_ref_frame; - int is_last_bipred_frame; - int is_bipred_frame; - int is_src_frame_ext_arf; - int avg_frame_bandwidth; // Average frame size target for clip int min_frame_bandwidth; // Minimum allocation used for any frame int max_frame_bandwidth; // Maximum burst rate allowed for a frame. @@ -320,4 +312,4 @@ void vp9_estimate_qp_gop(struct VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_RATECTRL_H_ +#endif // VPX_VP9_ENCODER_VP9_RATECTRL_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c index 9048499da13..2e4a4fe9fa2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c @@ -164,8 +164,14 @@ void vp9_init_me_luts(void) { static const int rd_boost_factor[16] = { 64, 32, 32, 32, 24, 16, 12, 12, 8, 8, 4, 4, 2, 2, 1, 0 }; + +// Note that the element below for frame type "USE_BUF_FRAME", which indicates +// that the show frame flag is set, should not be used as no real frame +// is encoded so we should not reach here. However, a dummy value +// is inserted here to make sure the data structure has the right number +// of values assigned. static const int rd_frame_type_factor[FRAME_UPDATE_TYPES] = { 128, 144, 128, - 128, 144 }; + 128, 144, 144 }; int64_t vp9_compute_rd_mult_based_on_qindex(const VP9_COMP *cpi, int qindex) { const int64_t q = vp9_dc_quant(qindex, 0, cpi->common.bit_depth); diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h index 919f74ebd0b..f2fc776a4aa 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_RD_H_ -#define VP9_ENCODER_VP9_RD_H_ +#ifndef VPX_VP9_ENCODER_VP9_RD_H_ +#define VPX_VP9_ENCODER_VP9_RD_H_ #include <limits.h> @@ -219,4 +219,4 @@ unsigned int vp9_high_get_sby_perpixel_variance(struct VP9_COMP *cpi, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_RD_H_ +#endif // VPX_VP9_ENCODER_VP9_RD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c index 025c5f8e449..698faa343bb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c @@ -701,17 +701,18 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col, blk_row, blk_col, plane_bsize, tx_bsize); dist = (int64_t)tmp * 16; } - } else if (max_txsize_lookup[plane_bsize] == tx_size) { - if (x->skip_txfm[(plane << 2) + (block >> (tx_size << 1))] == - SKIP_TXFM_NONE) { + } else { + int skip_txfm_flag = SKIP_TXFM_NONE; + if (max_txsize_lookup[plane_bsize] == tx_size) + skip_txfm_flag = x->skip_txfm[(plane << 2) + (block >> (tx_size << 1))]; + if (skip_txfm_flag == SKIP_TXFM_NONE) { // full forward transform and quantization vp9_xform_quant(x, plane, block, blk_row, blk_col, plane_bsize, tx_size); if (x->block_qcoeff_opt) vp9_optimize_b(x, plane, block, tx_size, coeff_ctx); dist_block(args->cpi, x, plane, plane_bsize, block, blk_row, blk_col, tx_size, &dist, &sse); - } else if (x->skip_txfm[(plane << 2) + (block >> (tx_size << 1))] == - SKIP_TXFM_AC_ONLY) { + } else if (skip_txfm_flag == SKIP_TXFM_AC_ONLY) { // compute DC coefficient tran_low_t *const coeff = BLOCK_OFFSET(x->plane[plane].coeff, block); tran_low_t *const dqcoeff = BLOCK_OFFSET(xd->plane[plane].dqcoeff, block); @@ -738,13 +739,6 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col, sse = x->bsse[(plane << 2) + (block >> (tx_size << 1))] << 4; dist = sse; } - } else { - // full forward transform and quantization - vp9_xform_quant(x, plane, block, blk_row, blk_col, plane_bsize, tx_size); - if (x->block_qcoeff_opt) - vp9_optimize_b(x, plane, block, tx_size, coeff_ctx); - dist_block(args->cpi, x, plane, plane_bsize, block, blk_row, blk_col, - tx_size, &dist, &sse); } rd = RDCOST(x->rdmult, x->rddiv, 0, dist); @@ -1826,7 +1820,7 @@ static void joint_motion_search(VP9_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, bestsme = cpi->find_fractional_mv_step( x, &tmp_mv, &ref_mv[id].as_mv, cpi->common.allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], 0, - cpi->sf.mv.subpel_iters_per_step, NULL, x->nmvjointcost, x->mvcost, + cpi->sf.mv.subpel_search_level, NULL, x->nmvjointcost, x->mvcost, &dis, &sse, second_pred, pw, ph); } @@ -2015,7 +2009,7 @@ static int64_t rd_pick_best_sub8x8_mode( cpi->find_fractional_mv_step( x, new_mv, &bsi->ref_mv[0]->as_mv, cm->allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], sf->mv.subpel_force_stop, - sf->mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list), + sf->mv.subpel_search_level, cond_cost_list(cpi, cost_list), x->nmvjointcost, x->mvcost, &distortion, &x->pred_sse[mi->ref_frame[0]], NULL, 0, 0); @@ -2457,7 +2451,7 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, cpi->find_fractional_mv_step( x, &tmp_mv->as_mv, &ref_mv, cm->allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], cpi->sf.mv.subpel_force_stop, - cpi->sf.mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list), + cpi->sf.mv.subpel_search_level, cond_cost_list(cpi, cost_list), x->nmvjointcost, x->mvcost, &dis, &x->pred_sse[ref], NULL, 0, 0); } *rate_mv = vp9_mv_bit_cost(&tmp_mv->as_mv, &ref_mv, x->nmvjointcost, @@ -3356,6 +3350,10 @@ void vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, TileDataEnc *tile_data, if (comp_pred) { if (!cpi->allow_comp_inter_inter) continue; + if (cm->ref_frame_sign_bias[ref_frame] == + cm->ref_frame_sign_bias[second_ref_frame]) + continue; + // Skip compound inter modes if ARF is not available. if (!(cpi->ref_frame_flags & flag_list[second_ref_frame])) continue; @@ -3941,7 +3939,8 @@ void vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, TileDataEnc *tile_data, #if CONFIG_BETTER_HW_COMPATIBILITY // forbid 8X4 and 4X8 partitions if any reference frame is scaled. if (bsize == BLOCK_8X4 || bsize == BLOCK_4X8) { - int ref_scaled = vp9_is_scaled(&cm->frame_refs[ref_frame - 1].sf); + int ref_scaled = ref_frame > INTRA_FRAME && + vp9_is_scaled(&cm->frame_refs[ref_frame - 1].sf); if (second_ref_frame > INTRA_FRAME) ref_scaled += vp9_is_scaled(&cm->frame_refs[second_ref_frame - 1].sf); if (ref_scaled) continue; @@ -3987,6 +3986,11 @@ void vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, TileDataEnc *tile_data, comp_pred = second_ref_frame > INTRA_FRAME; if (comp_pred) { if (!cpi->allow_comp_inter_inter) continue; + + if (cm->ref_frame_sign_bias[ref_frame] == + cm->ref_frame_sign_bias[second_ref_frame]) + continue; + if (!(cpi->ref_frame_flags & flag_list[second_ref_frame])) continue; // Do not allow compound prediction if the segment level reference frame // feature is in use as in this case there can only be one reference. diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h index 795c91aef7a..8b810bc4758 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_RDOPT_H_ -#define VP9_ENCODER_VP9_RDOPT_H_ +#ifndef VPX_VP9_ENCODER_VP9_RDOPT_H_ +#define VPX_VP9_ENCODER_VP9_RDOPT_H_ #include "vp9/common/vp9_blockd.h" @@ -56,4 +56,4 @@ void vp9_rd_pick_inter_mode_sub8x8(struct VP9_COMP *cpi, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_RDOPT_H_ +#endif // VPX_VP9_ENCODER_VP9_RDOPT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h index d3282ee1919..5d4ce97eba9 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_RESIZE_H_ -#define VP9_ENCODER_VP9_RESIZE_H_ +#ifndef VPX_VP9_ENCODER_VP9_RESIZE_H_ +#define VPX_VP9_ENCODER_VP9_RESIZE_H_ #include <stdio.h> #include "vpx/vpx_integer.h" @@ -65,4 +65,4 @@ void vp9_highbd_resize_frame444(const uint8_t *const y, int y_stride, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_RESIZE_H_ +#endif // VPX_VP9_ENCODER_VP9_RESIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h index 562805543b8..7a2255f8b01 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_SEGMENTATION_H_ -#define VP9_ENCODER_VP9_SEGMENTATION_H_ +#ifndef VPX_VP9_ENCODER_VP9_SEGMENTATION_H_ +#define VPX_VP9_ENCODER_VP9_SEGMENTATION_H_ #include "vp9/common/vp9_blockd.h" #include "vp9/encoder/vp9_encoder.h" @@ -47,4 +47,4 @@ void vp9_reset_segment_features(struct segmentation *seg); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_SEGMENTATION_H_ +#endif // VPX_VP9_ENCODER_VP9_SEGMENTATION_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h index 8880bff466a..46a722af9bf 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_SKIN_MAP_H_ -#define VP9_ENCODER_VP9_SKIN_MAP_H_ +#ifndef VPX_VP9_ENCODER_VP9_SKIN_DETECTION_H_ +#define VPX_VP9_ENCODER_VP9_SKIN_DETECTION_H_ #include "vp9/common/vp9_blockd.h" #include "vpx_dsp/skin_detection.h" @@ -37,4 +37,4 @@ void vp9_output_skin_map(struct VP9_COMP *const cpi, FILE *yuv_skinmap_file); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_SKIN_MAP_H_ +#endif // VPX_VP9_ENCODER_VP9_SKIN_DETECTION_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c index dca47924e39..44909239d32 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c @@ -70,14 +70,15 @@ static void set_good_speed_feature_framesize_dependent(VP9_COMP *cpi, // speed 0 features sf->partition_search_breakout_thr.dist = (1 << 20); sf->partition_search_breakout_thr.rate = 80; - sf->use_square_only_threshold = BLOCK_SIZES; + sf->use_square_only_thresh_high = BLOCK_SIZES; + sf->use_square_only_thresh_low = BLOCK_4X4; if (is_480p_or_larger) { // Currently, the machine-learning based partition search early termination // is only used while VPXMIN(cm->width, cm->height) >= 480 and speed = 0. sf->ml_partition_search_early_termination = 1; } else { - sf->use_square_only_threshold = BLOCK_32X32; + sf->use_square_only_thresh_high = BLOCK_32X32; } if (!is_1080p_or_larger) { @@ -95,29 +96,49 @@ static void set_good_speed_feature_framesize_dependent(VP9_COMP *cpi, if (speed >= 1) { sf->ml_partition_search_early_termination = 0; - sf->use_square_only_threshold = BLOCK_4X4; - + sf->use_ml_partition_search_breakout = 1; + if (is_480p_or_larger) + sf->use_square_only_thresh_high = BLOCK_64X64; + else + sf->use_square_only_thresh_high = BLOCK_32X32; + sf->use_square_only_thresh_low = BLOCK_16X16; if (is_720p_or_larger) { sf->disable_split_mask = cm->show_frame ? DISABLE_ALL_SPLIT : DISABLE_ALL_INTER_SPLIT; - sf->partition_search_breakout_thr.dist = (1 << 23); - sf->use_ml_partition_search_breakout = 0; + sf->partition_search_breakout_thr.dist = (1 << 22); + sf->ml_partition_search_breakout_thresh[0] = -5.0f; + sf->ml_partition_search_breakout_thresh[1] = -5.0f; + sf->ml_partition_search_breakout_thresh[2] = -9.0f; } else { sf->disable_split_mask = DISABLE_COMPOUND_SPLIT; sf->partition_search_breakout_thr.dist = (1 << 21); - sf->ml_partition_search_breakout_thresh[0] = 0.0f; - sf->ml_partition_search_breakout_thresh[1] = 0.0f; - sf->ml_partition_search_breakout_thresh[2] = 0.0f; + sf->ml_partition_search_breakout_thresh[0] = -1.0f; + sf->ml_partition_search_breakout_thresh[1] = -1.0f; + sf->ml_partition_search_breakout_thresh[2] = -1.0f; + } + +#if CONFIG_VP9_HIGHBITDEPTH + if (cpi->Source->flags & YV12_FLAG_HIGHBITDEPTH) { + sf->use_square_only_thresh_high = BLOCK_4X4; + sf->use_square_only_thresh_low = BLOCK_SIZES; + if (is_720p_or_larger) { + sf->partition_search_breakout_thr.dist = (1 << 23); + sf->use_ml_partition_search_breakout = 0; + } } +#endif } if (speed >= 2) { + sf->use_square_only_thresh_high = BLOCK_4X4; + sf->use_square_only_thresh_low = BLOCK_SIZES; if (is_720p_or_larger) { sf->disable_split_mask = cm->show_frame ? DISABLE_ALL_SPLIT : DISABLE_ALL_INTER_SPLIT; sf->adaptive_pred_interp_filter = 0; sf->partition_search_breakout_thr.dist = (1 << 24); sf->partition_search_breakout_thr.rate = 120; + sf->use_ml_partition_search_breakout = 0; } else { sf->disable_split_mask = LAST_AND_INTRA_SPLIT_ONLY; sf->partition_search_breakout_thr.dist = (1 << 22); @@ -196,8 +217,14 @@ static void set_good_speed_feature_framesize_independent(VP9_COMP *cpi, sf->adaptive_rd_thresh_row_mt = 0; sf->allow_skip_recode = 1; sf->less_rectangular_check = 1; - sf->use_square_partition_only = !frame_is_boosted(cpi); + sf->use_square_partition_only = !boosted; sf->prune_ref_frame_for_rect_partitions = 1; + sf->ml_var_partition_pruning = 1; + + sf->ml_prune_rect_partition_threhold[0] = -1; + sf->ml_prune_rect_partition_threhold[1] = 350; + sf->ml_prune_rect_partition_threhold[2] = 325; + sf->ml_prune_rect_partition_threhold[3] = 250; if (cpi->twopass.fr_content_type == FC_GRAPHICS_ANIMATION) { sf->exhaustive_searches_thresh = (1 << 22); @@ -215,12 +242,20 @@ static void set_good_speed_feature_framesize_independent(VP9_COMP *cpi, if (speed >= 1) { sf->enable_tpl_model = 0; - sf->prune_ref_frame_for_rect_partitions = 0; + sf->ml_var_partition_pruning = 0; + sf->ml_prune_rect_partition_threhold[1] = 200; + sf->ml_prune_rect_partition_threhold[2] = 200; + sf->ml_prune_rect_partition_threhold[3] = 200; +#if CONFIG_VP9_HIGHBITDEPTH + if (cpi->Source->flags & YV12_FLAG_HIGHBITDEPTH) + sf->prune_ref_frame_for_rect_partitions = 0; +#endif // CONFIG_VP9_HIGHBITDEPTH + if (oxcf->pass == 2) { TWO_PASS *const twopass = &cpi->twopass; if ((twopass->fr_content_type == FC_GRAPHICS_ANIMATION) || vp9_internal_image_edge(cpi)) { - sf->use_square_partition_only = !frame_is_boosted(cpi); + sf->use_square_partition_only = !boosted; } else { sf->use_square_partition_only = !frame_is_intra_only(cm); } @@ -237,7 +272,7 @@ static void set_good_speed_feature_framesize_independent(VP9_COMP *cpi, sf->adaptive_motion_search = 1; sf->mv.auto_mv_step_size = 1; sf->adaptive_rd_thresh = 2; - sf->mv.subpel_iters_per_step = 1; + sf->mv.subpel_search_level = 1; sf->mode_skip_start = 10; sf->adaptive_pred_interp_filter = 1; sf->allow_acl = 0; @@ -278,6 +313,11 @@ static void set_good_speed_feature_framesize_independent(VP9_COMP *cpi, sf->recode_tolerance_low = 15; sf->recode_tolerance_high = 45; sf->enhanced_full_pixel_motion_search = 0; + sf->prune_ref_frame_for_rect_partitions = 0; + sf->ml_prune_rect_partition_threhold[1] = -1; + sf->ml_prune_rect_partition_threhold[2] = -1; + sf->ml_prune_rect_partition_threhold[3] = -1; + sf->mv.subpel_search_level = 0; if (cpi->twopass.fr_content_type == FC_GRAPHICS_ANIMATION) { for (i = 0; i < MAX_MESH_STEP; ++i) { @@ -476,7 +516,7 @@ static void set_rt_speed_feature_framesize_independent( sf->disable_filter_search_var_thresh = 100; sf->use_uv_intra_rd_estimate = 1; sf->skip_encode_sb = 1; - sf->mv.subpel_iters_per_step = 1; + sf->mv.subpel_search_level = 0; sf->adaptive_rd_thresh = 4; sf->mode_skip_start = 6; sf->allow_skip_recode = 0; @@ -585,9 +625,18 @@ static void set_rt_speed_feature_framesize_independent( sf->use_altref_onepass = 1; sf->use_compound_nonrd_pickmode = 1; } +#if CONFIG_ML_VAR_PARTITION + if (!frame_is_intra_only(cm) && cm->width >= 360 && cm->height >= 360) + sf->partition_search_type = ML_BASED_PARTITION; + else + sf->partition_search_type = VAR_BASED_PARTITION; +#if CONFIG_VP9_HIGHBITDEPTH + if (cpi->Source->flags & YV12_FLAG_HIGHBITDEPTH) + sf->partition_search_type = VAR_BASED_PARTITION; +#endif // CONFIG_VP9_HIGHBITDEPTH +#else sf->partition_search_type = VAR_BASED_PARTITION; - // Turn on this to use non-RD key frame coding mode. - sf->use_nonrd_pick_mode = 1; +#endif // CONFIG_ML_VAR_PARTITION sf->mv.search_method = NSTEP; sf->mv.reduce_first_step_size = 1; sf->skip_encode_sb = 0; @@ -805,7 +854,7 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) { sf->mv.search_method = NSTEP; sf->recode_loop = ALLOW_RECODE_FIRST; sf->mv.subpel_search_method = SUBPEL_TREE; - sf->mv.subpel_iters_per_step = 2; + sf->mv.subpel_search_level = 2; sf->mv.subpel_force_stop = 0; sf->optimize_coefficients = !is_lossless_requested(&cpi->oxcf); sf->mv.reduce_first_step_size = 0; @@ -828,7 +877,8 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) { sf->partition_search_type = SEARCH_PARTITION; sf->less_rectangular_check = 0; sf->use_square_partition_only = 0; - sf->use_square_only_threshold = BLOCK_SIZES; + sf->use_square_only_thresh_high = BLOCK_SIZES; + sf->use_square_only_thresh_low = BLOCK_4X4; sf->auto_min_max_partition_size = NOT_IN_USE; sf->rd_auto_partition_min_limit = BLOCK_4X4; sf->default_max_partition_size = BLOCK_64X64; @@ -887,6 +937,11 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) { sf->limit_newmv_early_exit = 0; sf->bias_golden = 0; sf->base_mv_aggressive = 0; + sf->ml_prune_rect_partition_threhold[0] = -1; + sf->ml_prune_rect_partition_threhold[1] = -1; + sf->ml_prune_rect_partition_threhold[2] = -1; + sf->ml_prune_rect_partition_threhold[3] = -1; + sf->ml_var_partition_pruning = 0; // Some speed-up features even for best quality as minimal impact on quality. sf->adaptive_rd_thresh = 1; diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h index 331ca49d709..a895ed2354b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_SPEED_FEATURES_H_ -#define VP9_ENCODER_VP9_SPEED_FEATURES_H_ +#ifndef VPX_VP9_ENCODER_VP9_SPEED_FEATURES_H_ +#define VPX_VP9_ENCODER_VP9_SPEED_FEATURES_H_ #include "vp9/common/vp9_enums.h" @@ -136,20 +136,25 @@ typedef enum { } INTERP_FILTER_MASK; typedef enum { - // Search partitions using RD/NONRD criterion + // Search partitions using RD/NONRD criterion. SEARCH_PARTITION, - // Always use a fixed size partition + // Always use a fixed size partition. FIXED_PARTITION, REFERENCE_PARTITION, // Use an arbitrary partitioning scheme based on source variance within - // a 64X64 SB + // a 64X64 SB. VAR_BASED_PARTITION, - // Use non-fixed partitions based on source variance - SOURCE_VAR_BASED_PARTITION + // Use non-fixed partitions based on source variance. + SOURCE_VAR_BASED_PARTITION, + +#if CONFIG_ML_VAR_PARTITION + // Make partition decisions with machine learning models. + ML_BASED_PARTITION +#endif // CONFIG_ML_VAR_PARTITION } PARTITION_SEARCH_TYPE; typedef enum { @@ -191,8 +196,9 @@ typedef struct MV_SPEED_FEATURES { // the same process. Along the way it skips many diagonals. SUBPEL_SEARCH_METHODS subpel_search_method; - // Maximum number of steps in logarithmic subpel search before giving up. - int subpel_iters_per_step; + // Subpel MV search level. Can take values 0 - 2. Higher values mean more + // extensive subpel search. + int subpel_search_level; // Control when to stop subpel search: // 0: Full subpel search. @@ -331,13 +337,21 @@ typedef struct SPEED_FEATURES { // rd than partition type split. int less_rectangular_check; - // Disable testing non square partitions. (eg 16x32) + // Disable testing non square partitions(eg 16x32) for block sizes larger than + // use_square_only_thresh_high or smaller than use_square_only_thresh_low. int use_square_partition_only; - BLOCK_SIZE use_square_only_threshold; + BLOCK_SIZE use_square_only_thresh_high; + BLOCK_SIZE use_square_only_thresh_low; // Prune reference frames for rectangular partitions. int prune_ref_frame_for_rect_partitions; + // Threshold values used for ML based rectangular partition search pruning. + // If < 0, the feature is turned off. + // Higher values mean more aggressiveness to skip rectangular partition + // search that results in better encoding speed but worse coding performance. + int ml_prune_rect_partition_threhold[4]; + // Sets min and max partition sizes for this 64x64 region based on the // same 64x64 in last encoded frame, and the left and above neighbor. AUTO_MIN_MAX_MODE auto_min_max_partition_size; @@ -494,11 +508,17 @@ typedef struct SPEED_FEATURES { // Use ML-based partition search early breakout. int use_ml_partition_search_breakout; + // Higher values mean more aggressiveness for partition search breakout that + // results in better encoding speed but worse compression performance. float ml_partition_search_breakout_thresh[3]; // Machine-learning based partition search early termination int ml_partition_search_early_termination; + // Machine-learning based partition search pruning using prediction residue + // variance. + int ml_var_partition_pruning; + // Allow skipping partition search for still image frame int allow_partition_search_skip; @@ -577,4 +597,4 @@ void vp9_set_speed_features_framesize_dependent(struct VP9_COMP *cpi); } // extern "C" #endif -#endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ +#endif // VPX_VP9_ENCODER_VP9_SPEED_FEATURES_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h index 26c89e2ea78..f0d544b5270 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_SUBEXP_H_ -#define VP9_ENCODER_VP9_SUBEXP_H_ +#ifndef VPX_VP9_ENCODER_VP9_SUBEXP_H_ +#define VPX_VP9_ENCODER_VP9_SUBEXP_H_ #ifdef __cplusplus extern "C" { @@ -37,4 +37,4 @@ int vp9_prob_diff_update_savings_search_model(const unsigned int *ct, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_SUBEXP_H_ +#endif // VPX_VP9_ENCODER_VP9_SUBEXP_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c index 818b04c19da..1321c457575 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c @@ -1005,11 +1005,13 @@ void vp9_svc_constrain_inter_layer_pred(VP9_COMP *const cpi) { } } } - // Check for disabling inter-layer prediction if the reference for inter-layer - // prediction (the reference that is scaled) is not the previous spatial layer - // from the same superframe, then we disable inter-layer prediction. - // Only need to check when inter_layer prediction is not set to OFF mode. - if (svc->disable_inter_layer_pred != INTER_LAYER_PRED_OFF) { + // For fixed/non-flexible SVC: check for disabling inter-layer prediction. + // If the reference for inter-layer prediction (the reference that is scaled) + // is not the previous spatial layer from the same superframe, then we disable + // inter-layer prediction. Only need to check when inter_layer prediction is + // not set to OFF mode. + if (svc->temporal_layering_mode != VP9E_TEMPORAL_LAYERING_MODE_BYPASS && + svc->disable_inter_layer_pred != INTER_LAYER_PRED_OFF) { // We only use LAST and GOLDEN for prediction in real-time mode, so we // check both here. MV_REFERENCE_FRAME ref_frame; @@ -1045,7 +1047,7 @@ void vp9_svc_constrain_inter_layer_pred(VP9_COMP *const cpi) { void vp9_svc_assert_constraints_pattern(VP9_COMP *const cpi) { SVC *const svc = &cpi->svc; - // For fixed/non-flexible mode, the folllowing constraint are expected, + // For fixed/non-flexible mode, the following constraint are expected, // when inter-layer prediciton is on (default). if (svc->temporal_layering_mode != VP9E_TEMPORAL_LAYERING_MODE_BYPASS && svc->disable_inter_layer_pred == INTER_LAYER_PRED_ON && @@ -1060,7 +1062,8 @@ void vp9_svc_assert_constraints_pattern(VP9_COMP *const cpi) { // Non-base temporal only predicts from lower temporal layer. assert(svc->fb_idx_temporal_layer_id[cpi->lst_fb_idx] < svc->temporal_layer_id); - if (svc->spatial_layer_id > 0) { + if (svc->spatial_layer_id > 0 && cpi->ref_frame_flags & VP9_GOLD_FLAG && + svc->spatial_layer_id > svc->first_spatial_layer_to_encode) { // Non-base spatial only predicts from lower spatial layer with same // temporal_id. assert(svc->fb_idx_spatial_layer_id[cpi->gld_fb_idx] == @@ -1068,7 +1071,8 @@ void vp9_svc_assert_constraints_pattern(VP9_COMP *const cpi) { assert(svc->fb_idx_temporal_layer_id[cpi->gld_fb_idx] == svc->temporal_layer_id); } - } else if (svc->spatial_layer_id > 0) { + } else if (svc->spatial_layer_id > 0 && + svc->spatial_layer_id > svc->first_spatial_layer_to_encode) { // Only 1 reference for frame whose base is key; reference may be LAST // or GOLDEN, so we check both. if (cpi->ref_frame_flags & VP9_LAST_FLAG) { @@ -1196,3 +1200,9 @@ void vp9_svc_update_ref_frame(VP9_COMP *const cpi) { vp9_copy_flags_ref_update_idx(cpi); vp9_svc_update_ref_frame_buffer_idx(cpi); } + +void vp9_svc_adjust_frame_rate(VP9_COMP *const cpi) { + int64_t this_duration = + cpi->svc.timebase_fac * cpi->svc.duration[cpi->svc.spatial_layer_id]; + vp9_new_framerate(cpi, 10000000.0 / this_duration); +} diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h index cb2884e228f..fceab7780bb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_SVC_LAYERCONTEXT_H_ -#define VP9_ENCODER_VP9_SVC_LAYERCONTEXT_H_ +#ifndef VPX_VP9_ENCODER_VP9_SVC_LAYERCONTEXT_H_ +#define VPX_VP9_ENCODER_VP9_SVC_LAYERCONTEXT_H_ #include "vpx/vpx_encoder.h" @@ -175,6 +175,12 @@ typedef struct SVC { int use_set_ref_frame_config; int temporal_layer_id_per_spatial[VPX_SS_MAX_LAYERS]; + + int first_spatial_layer_to_encode; + + int64_t duration[VPX_SS_MAX_LAYERS]; + + int64_t timebase_fac; } SVC; struct VP9_COMP; @@ -242,8 +248,10 @@ void vp9_svc_update_ref_frame_buffer_idx(struct VP9_COMP *const cpi); void vp9_svc_update_ref_frame(struct VP9_COMP *const cpi); +void vp9_svc_adjust_frame_rate(struct VP9_COMP *const cpi); + #ifdef __cplusplus } // extern "C" #endif -#endif // VP9_ENCODER_VP9_SVC_LAYERCONTEXT_ +#endif // VPX_VP9_ENCODER_VP9_SVC_LAYERCONTEXT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c index 571ec0f31e8..51668d01d61 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c @@ -424,9 +424,9 @@ static uint32_t temporal_filter_find_matching_mb_c(VP9_COMP *cpi, // Ignore mv costing by sending NULL pointer instead of cost array bestsme = cpi->find_fractional_mv_step( x, ref_mv, &best_ref_mv1, cpi->common.allow_high_precision_mv, - x->errorperbit, &cpi->fn_ptr[BLOCK_16X16], 0, - mv_sf->subpel_iters_per_step, cond_cost_list(cpi, cost_list), NULL, NULL, - &distortion, &sse, NULL, 0, 0); + x->errorperbit, &cpi->fn_ptr[BLOCK_16X16], 0, mv_sf->subpel_search_level, + cond_cost_list(cpi, cost_list), NULL, NULL, &distortion, &sse, NULL, 0, + 0); // Restore input state x->plane[0].src = src; @@ -840,8 +840,10 @@ static void adjust_arnr_filter(VP9_COMP *cpi, int distance, int group_boost, } // Adjustments for second level arf in multi arf case. - if (cpi->oxcf.pass == 2 && cpi->multi_arf_allowed) - if (gf_group->rf_level[gf_group->index] != GF_ARF_STD) strength >>= 1; + // Leave commented out place holder for possible filtering adjustment with + // new multi-layer arf code. + // if (cpi->oxcf.pass == 2 && cpi->multi_arf_allowed) + // if (gf_group->rf_level[gf_group->index] != GF_ARF_STD) strength >>= 1; // TODO(jingning): Skip temporal filtering for intermediate frames that will // be used as show_existing_frame. Need to further explore the possibility to diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h index 775e49cc537..1cccc198b11 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_TEMPORAL_FILTER_H_ -#define VP9_ENCODER_VP9_TEMPORAL_FILTER_H_ +#ifndef VPX_VP9_ENCODER_VP9_TEMPORAL_FILTER_H_ +#define VPX_VP9_ENCODER_VP9_TEMPORAL_FILTER_H_ #ifdef __cplusplus extern "C" { @@ -28,4 +28,4 @@ void vp9_temporal_filter_iterate_row_c(VP9_COMP *cpi, ThreadData *td, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_TEMPORAL_FILTER_H_ +#endif // VPX_VP9_ENCODER_VP9_TEMPORAL_FILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h index b2f63ffef5a..6407ff92376 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_TOKENIZE_H_ -#define VP9_ENCODER_VP9_TOKENIZE_H_ +#ifndef VPX_VP9_ENCODER_VP9_TOKENIZE_H_ +#define VPX_VP9_ENCODER_VP9_TOKENIZE_H_ #include "vp9/common/vp9_entropy.h" @@ -127,4 +127,4 @@ static INLINE int vp9_get_token_cost(int v, int16_t *token, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_TOKENIZE_H_ +#endif // VPX_VP9_ENCODER_VP9_TOKENIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h index a8b9c2cd312..86c5fa22447 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_ENCODER_VP9_TREEWRITER_H_ -#define VP9_ENCODER_VP9_TREEWRITER_H_ +#ifndef VPX_VP9_ENCODER_VP9_TREEWRITER_H_ +#define VPX_VP9_ENCODER_VP9_TREEWRITER_H_ #include "vpx_dsp/bitwriter.h" @@ -48,4 +48,4 @@ static INLINE void vp9_write_token(vpx_writer *w, const vpx_tree_index *tree, } // extern "C" #endif -#endif // VP9_ENCODER_VP9_TREEWRITER_H_ +#endif // VPX_VP9_ENCODER_VP9_TREEWRITER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c b/chromium/third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c index d7ed514c1d3..3b2d9a86617 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c +++ b/chromium/third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c @@ -249,7 +249,7 @@ static vpx_codec_err_t validate_config(vpx_codec_alg_priv_t *ctx, RANGE_CHECK(extra_cfg, row_mt, 0, 1); RANGE_CHECK(extra_cfg, motion_vector_unit_test, 0, 2); - RANGE_CHECK(extra_cfg, enable_auto_alt_ref, 0, 2); + RANGE_CHECK(extra_cfg, enable_auto_alt_ref, 0, MAX_ARF_LAYERS); RANGE_CHECK(extra_cfg, cpu_used, -9, 9); RANGE_CHECK_HI(extra_cfg, noise_sensitivity, 6); RANGE_CHECK(extra_cfg, tile_columns, 0, 6); @@ -1099,7 +1099,7 @@ static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx, // There's no codec control for multiple alt-refs so check the encoder // instance for its status to determine the compressed data size. data_sz = ctx->cfg.g_w * ctx->cfg.g_h * get_image_bps(img) / 8 * - (cpi->multi_arf_allowed ? 8 : 2); + (cpi->multi_layer_arf ? 8 : 2); if (data_sz < kMinCompressedSize) data_sz = kMinCompressedSize; if (ctx->cx_data == NULL || ctx->cx_data_sz < data_sz) { ctx->cx_data_sz = data_sz; @@ -1150,6 +1150,8 @@ static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx, size_t size, cx_data_sz; unsigned char *cx_data; + cpi->svc.timebase_fac = timebase_units_to_ticks(timebase, 1); + // Set up internal flags if (ctx->base.init_flags & VPX_CODEC_USE_PSNR) cpi->b_calculate_psnr = 1; @@ -1449,6 +1451,7 @@ static vpx_codec_err_t ctrl_set_svc_layer_id(vpx_codec_alg_priv_t *ctx, int sl; svc->spatial_layer_to_encode = data->spatial_layer_id; + svc->first_spatial_layer_to_encode = data->spatial_layer_id; // TODO(jianj): Deprecated to be removed. svc->temporal_layer_id = data->temporal_layer_id; // Allow for setting temporal layer per spatial layer for superframe. @@ -1536,6 +1539,7 @@ static vpx_codec_err_t ctrl_set_svc_ref_frame_config(vpx_codec_alg_priv_t *ctx, cpi->svc.lst_fb_idx[sl] = data->lst_fb_idx[sl]; cpi->svc.gld_fb_idx[sl] = data->gld_fb_idx[sl]; cpi->svc.alt_fb_idx[sl] = data->alt_fb_idx[sl]; + cpi->svc.duration[sl] = data->duration[sl]; } return VPX_CODEC_OK; } diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h b/chromium/third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h index 6a101b03def..a1c335278d2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_VP9_DX_IFACE_H_ -#define VP9_VP9_DX_IFACE_H_ +#ifndef VPX_VP9_VP9_DX_IFACE_H_ +#define VPX_VP9_VP9_DX_IFACE_H_ #include "vp9/decoder/vp9_decoder.h" @@ -48,4 +48,4 @@ struct vpx_codec_alg_priv { int row_mt; }; -#endif // VP9_VP9_DX_IFACE_H_ +#endif // VPX_VP9_VP9_DX_IFACE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h b/chromium/third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h index 9f27abe4693..a1921db636c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_VP9_IFACE_COMMON_H_ -#define VP9_VP9_IFACE_COMMON_H_ +#ifndef VPX_VP9_VP9_IFACE_COMMON_H_ +#define VPX_VP9_VP9_IFACE_COMMON_H_ #include "vpx_ports/mem.h" @@ -142,4 +142,4 @@ static VP9_REFFRAME ref_frame_to_vp9_reframe(vpx_ref_frame_type_t frame) { assert(0 && "Invalid Reference Frame"); return VP9_LAST_FLAG; } -#endif // VP9_VP9_IFACE_COMMON_H_ +#endif // VPX_VP9_VP9_IFACE_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/vp9cx.mk b/chromium/third_party/libvpx/source/libvpx/vp9/vp9cx.mk index d5b167bf753..f5a76dcbfeb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp9/vp9cx.mk +++ b/chromium/third_party/libvpx/source/libvpx/vp9/vp9cx.mk @@ -64,6 +64,7 @@ VP9_CX_SRCS-yes += encoder/vp9_ratectrl.c VP9_CX_SRCS-yes += encoder/vp9_rd.c VP9_CX_SRCS-yes += encoder/vp9_rdopt.c VP9_CX_SRCS-yes += encoder/vp9_pickmode.c +VP9_CX_SRCS-yes += encoder/vp9_partition_models.h VP9_CX_SRCS-yes += encoder/vp9_segmentation.c VP9_CX_SRCS-yes += encoder/vp9_segmentation.h VP9_CX_SRCS-yes += encoder/vp9_speed_features.c diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h b/chromium/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h index 522e5c1684a..9eed85e5de7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h @@ -40,8 +40,8 @@ * Once initialized, the instance is manged using other functions from * the vpx_codec_* family. */ -#ifndef VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ -#define VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ +#ifndef VPX_VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ +#define VPX_VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ #include "../vpx_decoder.h" #include "../vpx_encoder.h" #include <stdarg.h> @@ -442,4 +442,4 @@ void vpx_internal_error(struct vpx_internal_error_info *info, } // extern "C" #endif -#endif // VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ +#endif // VPX_VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vp8.h b/chromium/third_party/libvpx/source/libvpx/vpx/vp8.h index 059c9d0f656..442163cc4fe 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vp8.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vp8.h @@ -27,8 +27,8 @@ /*!\file * \brief Provides controls common to both the VP8 encoder and decoder. */ -#ifndef VPX_VP8_H_ -#define VPX_VP8_H_ +#ifndef VPX_VPX_VP8_H_ +#define VPX_VPX_VP8_H_ #include "./vpx_codec.h" #include "./vpx_image.h" @@ -150,4 +150,4 @@ VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *) } // extern "C" #endif -#endif // VPX_VP8_H_ +#endif // VPX_VPX_VP8_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vp8cx.h b/chromium/third_party/libvpx/source/libvpx/vpx/vp8cx.h index 6aa5dcb98cf..7a232b0ef90 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vp8cx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vp8cx.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_VP8CX_H_ -#define VPX_VP8CX_H_ +#ifndef VPX_VPX_VP8CX_H_ +#define VPX_VPX_VP8CX_H_ /*!\defgroup vp8_encoder WebM VP8/VP9 Encoder * \ingroup vp8 @@ -810,6 +810,7 @@ typedef struct vpx_svc_ref_frame_config { int reference_last[VPX_SS_MAX_LAYERS]; /**< Last as eference. */ int reference_golden[VPX_SS_MAX_LAYERS]; /**< Golden as reference. */ int reference_alt_ref[VPX_SS_MAX_LAYERS]; /**< Altref as reference. */ + int64_t duration[VPX_SS_MAX_LAYERS]; /**< Duration per spatial layer. */ } vpx_svc_ref_frame_config_t; /*!\brief VP9 svc frame dropping mode. @@ -1007,4 +1008,4 @@ VPX_CTRL_USE_TYPE(VP9E_SET_SVC_SPATIAL_LAYER_SYNC, } // extern "C" #endif -#endif // VPX_VP8CX_H_ +#endif // VPX_VPX_VP8CX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vp8dx.h b/chromium/third_party/libvpx/source/libvpx/vpx/vp8dx.h index d0e39ef01ec..fd6030107d9 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vp8dx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vp8dx.h @@ -17,8 +17,8 @@ * \brief Provides definitions for using VP8 or VP9 within the vpx Decoder * interface. */ -#ifndef VPX_VP8DX_H_ -#define VPX_VP8DX_H_ +#ifndef VPX_VPX_VP8DX_H_ +#define VPX_VPX_VP8DX_H_ #ifdef __cplusplus extern "C" { @@ -199,4 +199,4 @@ VPX_CTRL_USE_TYPE(VP9D_SET_ROW_MT, int) } // extern "C" #endif -#endif // VPX_VP8DX_H_ +#endif // VPX_VPX_VP8DX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_codec.h b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_codec.h index ad05f4c74e9..0f8d7851e72 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_codec.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_codec.h @@ -35,8 +35,8 @@ * Once initialized, the instance is manged using other functions from * the vpx_codec_* family. */ -#ifndef VPX_VPX_CODEC_H_ -#define VPX_VPX_CODEC_H_ +#ifndef VPX_VPX_VPX_CODEC_H_ +#define VPX_VPX_VPX_CODEC_H_ #ifdef __cplusplus extern "C" { @@ -465,4 +465,4 @@ vpx_codec_err_t vpx_codec_control_(vpx_codec_ctx_t *ctx, int ctrl_id, ...); #ifdef __cplusplus } #endif -#endif // VPX_VPX_CODEC_H_ +#endif // VPX_VPX_VPX_CODEC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_decoder.h b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_decoder.h index 2ff12112bcf..f113f7196b6 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_decoder.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_decoder.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_VPX_DECODER_H_ -#define VPX_VPX_DECODER_H_ +#ifndef VPX_VPX_VPX_DECODER_H_ +#define VPX_VPX_VPX_DECODER_H_ /*!\defgroup decoder Decoder Algorithm Interface * \ingroup codec @@ -362,4 +362,4 @@ vpx_codec_err_t vpx_codec_set_frame_buffer_functions( #ifdef __cplusplus } #endif -#endif // VPX_VPX_DECODER_H_ +#endif // VPX_VPX_VPX_DECODER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_encoder.h b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_encoder.h index ab49bdf7d55..bddd72191be 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_encoder.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_encoder.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_VPX_ENCODER_H_ -#define VPX_VPX_ENCODER_H_ +#ifndef VPX_VPX_VPX_ENCODER_H_ +#define VPX_VPX_VPX_ENCODER_H_ /*!\defgroup encoder Encoder Algorithm Interface * \ingroup codec @@ -981,4 +981,4 @@ const vpx_image_t *vpx_codec_get_preview_frame(vpx_codec_ctx_t *ctx); #ifdef __cplusplus } #endif -#endif // VPX_VPX_ENCODER_H_ +#endif // VPX_VPX_VPX_ENCODER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h index ac17c529df0..2813ca6d962 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_VPX_FRAME_BUFFER_H_ -#define VPX_VPX_FRAME_BUFFER_H_ +#ifndef VPX_VPX_VPX_FRAME_BUFFER_H_ +#define VPX_VPX_VPX_FRAME_BUFFER_H_ /*!\file * \brief Describes the decoder external frame buffer interface. @@ -80,4 +80,4 @@ typedef int (*vpx_release_frame_buffer_cb_fn_t)(void *priv, } // extern "C" #endif -#endif // VPX_VPX_FRAME_BUFFER_H_ +#endif // VPX_VPX_VPX_FRAME_BUFFER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_image.h b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_image.h index 0c9cac73678..a1b7ce688c2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_image.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_image.h @@ -12,8 +12,8 @@ * \brief Describes the vpx image descriptor and associated operations * */ -#ifndef VPX_VPX_IMAGE_H_ -#define VPX_VPX_IMAGE_H_ +#ifndef VPX_VPX_VPX_IMAGE_H_ +#define VPX_VPX_VPX_IMAGE_H_ #ifdef __cplusplus extern "C" { @@ -204,4 +204,4 @@ void vpx_img_free(vpx_image_t *img); } // extern "C" #endif -#endif // VPX_VPX_IMAGE_H_ +#endif // VPX_VPX_VPX_IMAGE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_integer.h b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_integer.h index 63417ce2c4a..4e7236fc52e 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx/vpx_integer.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx/vpx_integer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_VPX_INTEGER_H_ -#define VPX_VPX_INTEGER_H_ +#ifndef VPX_VPX_VPX_INTEGER_H_ +#define VPX_VPX_VPX_INTEGER_H_ /* get ptrdiff_t, size_t, wchar_t, NULL */ #include <stddef.h> @@ -60,4 +60,4 @@ typedef size_t uintptr_t; #include <inttypes.h> #endif -#endif // VPX_VPX_INTEGER_H_ +#endif // VPX_VPX_VPX_INTEGER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h index a17c5a6cc48..518ef4336e8 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_ARM_HIGHBD_IDCT_NEON_H_ -#define VPX_DSP_ARM_HIGHBD_IDCT_NEON_H_ +#ifndef VPX_VPX_DSP_ARM_HIGHBD_IDCT_NEON_H_ +#define VPX_VPX_DSP_ARM_HIGHBD_IDCT_NEON_H_ #include <arm_neon.h> @@ -471,4 +471,4 @@ void vpx_highbd_idct16x16_256_add_half1d(const int32_t *input, int32_t *output, uint16_t *dest, const int stride, const int bd); -#endif // VPX_DSP_ARM_HIGHBD_IDCT_NEON_H_ +#endif // VPX_VPX_DSP_ARM_HIGHBD_IDCT_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h index 6283926891e..c02311326bd 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_ARM_IDCT_NEON_H_ -#define VPX_DSP_ARM_IDCT_NEON_H_ +#ifndef VPX_VPX_DSP_ARM_IDCT_NEON_H_ +#define VPX_VPX_DSP_ARM_IDCT_NEON_H_ #include <arm_neon.h> @@ -916,4 +916,4 @@ void vpx_idct32_6_neon(const tran_low_t *input, int16_t *output); void vpx_idct32_8_neon(const int16_t *input, void *const output, int stride, const int highbd_flag); -#endif // VPX_DSP_ARM_IDCT_NEON_H_ +#endif // VPX_VPX_DSP_ARM_IDCT_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h index 6745464d738..943865b3c28 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_ARM_MEM_NEON_H_ -#define VPX_DSP_ARM_MEM_NEON_H_ +#ifndef VPX_VPX_DSP_ARM_MEM_NEON_H_ +#define VPX_VPX_DSP_ARM_MEM_NEON_H_ #include <arm_neon.h> #include <assert.h> @@ -181,4 +181,4 @@ static INLINE void store_u8(uint8_t *buf, int stride, const uint8x8_t a) { buf += stride; vst1_lane_u32((uint32_t *)buf, a_u32, 1); } -#endif // VPX_DSP_ARM_MEM_NEON_H_ +#endif // VPX_VPX_DSP_ARM_MEM_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h index c09841223c8..9e6833aad3d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_ARM_SUM_NEON_H_ -#define VPX_DSP_ARM_SUM_NEON_H_ +#ifndef VPX_VPX_DSP_ARM_SUM_NEON_H_ +#define VPX_VPX_DSP_ARM_SUM_NEON_H_ #include <arm_neon.h> @@ -35,4 +35,4 @@ static INLINE uint32x2_t horizontal_add_uint32x4(const uint32x4_t a) { return vadd_u32(vreinterpret_u32_u64(vget_low_u64(b)), vreinterpret_u32_u64(vget_high_u64(b))); } -#endif // VPX_DSP_ARM_SUM_NEON_H_ +#endif // VPX_VPX_DSP_ARM_SUM_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h index d85cbcee464..43340e48d9a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_ARM_TRANSPOSE_NEON_H_ -#define VPX_DSP_ARM_TRANSPOSE_NEON_H_ +#ifndef VPX_VPX_DSP_ARM_TRANSPOSE_NEON_H_ +#define VPX_VPX_DSP_ARM_TRANSPOSE_NEON_H_ #include <arm_neon.h> @@ -1313,4 +1313,4 @@ static INLINE void load_and_transpose_s32_8x8( transpose_s32_8x8(a0, a1, a2, a3, a4, a5, a6, a7); } -#endif // VPX_DSP_ARM_TRANSPOSE_NEON_H_ +#endif // VPX_VPX_DSP_ARM_TRANSPOSE_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h index c1634ed55f6..4f27da9d2f4 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h @@ -8,6 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#ifndef VPX_VPX_DSP_ARM_VPX_CONVOLVE8_NEON_H_ +#define VPX_VPX_DSP_ARM_VPX_CONVOLVE8_NEON_H_ + #include <arm_neon.h> #include "./vpx_config.h" @@ -131,3 +134,5 @@ static INLINE uint8x8_t scale_filter_8(const uint8x8_t *const s, return convolve8_8(ss[0], ss[1], ss[2], ss[3], ss[4], ss[5], ss[6], ss[7], filters, filter3, filter4); } + +#endif // VPX_VPX_DSP_ARM_VPX_CONVOLVE8_NEON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h index e1a9911715f..b123d1cb080 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_ARM_VPX_CONVOLVE8_NEON_ASM_H_ -#define VPX_DSP_ARM_VPX_CONVOLVE8_NEON_ASM_H_ +#ifndef VPX_VPX_DSP_ARM_VPX_CONVOLVE8_NEON_ASM_H_ +#define VPX_VPX_DSP_ARM_VPX_CONVOLVE8_NEON_ASM_H_ #define DECLARE_FILTER(dir, type) \ void vpx_convolve8_##dir##_filter_##type##_neon( \ @@ -26,4 +26,4 @@ DECLARE_FILTER(avg_vert, type1); DECLARE_FILTER(vert, type2); DECLARE_FILTER(avg_vert, type2); -#endif /* VPX_DSP_ARM_VPX_CONVOLVE8_NEON_ASM_H_ */ +#endif // VPX_VPX_DSP_ARM_VPX_CONVOLVE8_NEON_ASM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h index 16272ae3a2f..fbc1003090a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_BITREADER_H_ -#define VPX_DSP_BITREADER_H_ +#ifndef VPX_VPX_DSP_BITREADER_H_ +#define VPX_VPX_DSP_BITREADER_H_ #include <stddef.h> #include <limits.h> @@ -131,4 +131,4 @@ static INLINE int vpx_read_tree(vpx_reader *r, const vpx_tree_index *tree, } // extern "C" #endif -#endif // VPX_DSP_BITREADER_H_ +#endif // VPX_VPX_DSP_BITREADER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h index 8a48a95ed19..b27703a4dbc 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_BITREADER_BUFFER_H_ -#define VPX_DSP_BITREADER_BUFFER_H_ +#ifndef VPX_VPX_DSP_BITREADER_BUFFER_H_ +#define VPX_VPX_DSP_BITREADER_BUFFER_H_ #include <limits.h> @@ -44,4 +44,4 @@ int vpx_rb_read_inv_signed_literal(struct vpx_read_bit_buffer *rb, int bits); } // extern "C" #endif -#endif // VPX_DSP_BITREADER_BUFFER_H_ +#endif // VPX_VPX_DSP_BITREADER_BUFFER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h index e63092a1ae9..ec3975e942c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_BITWRITER_H_ -#define VPX_DSP_BITWRITER_H_ +#ifndef VPX_VPX_DSP_BITWRITER_H_ +#define VPX_VPX_DSP_BITWRITER_H_ #include "vpx_ports/mem.h" @@ -94,4 +94,4 @@ static INLINE void vpx_write_literal(vpx_writer *w, int data, int bits) { } // extern "C" #endif -#endif // VPX_DSP_BITWRITER_H_ +#endif // VPX_VPX_DSP_BITWRITER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h index a123a2fe8c9..3662cb64df6 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_BITWRITER_BUFFER_H_ -#define VPX_DSP_BITWRITER_BUFFER_H_ +#ifndef VPX_VPX_DSP_BITWRITER_BUFFER_H_ +#define VPX_VPX_DSP_BITWRITER_BUFFER_H_ #include "vpx/vpx_integer.h" @@ -35,4 +35,4 @@ void vpx_wb_write_inv_signed_literal(struct vpx_write_bit_buffer *wb, int data, } // extern "C" #endif -#endif // VPX_DSP_BITWRITER_BUFFER_H_ +#endif // VPX_VPX_DSP_BITWRITER_BUFFER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h index 29e139c73ba..a43c8ea7f7f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_FWD_TXFM_H_ -#define VPX_DSP_FWD_TXFM_H_ +#ifndef VPX_VPX_DSP_FWD_TXFM_H_ +#define VPX_VPX_DSP_FWD_TXFM_H_ #include "vpx_dsp/txfm_common.h" @@ -22,4 +22,4 @@ static INLINE tran_high_t fdct_round_shift(tran_high_t input) { } void vpx_fdct32(const tran_high_t *input, tran_high_t *output, int round); -#endif // VPX_DSP_FWD_TXFM_H_ +#endif // VPX_VPX_DSP_FWD_TXFM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h index e86fd3996a1..6eedbeac357 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_INV_TXFM_H_ -#define VPX_DSP_INV_TXFM_H_ +#ifndef VPX_VPX_DSP_INV_TXFM_H_ +#define VPX_VPX_DSP_INV_TXFM_H_ #include <assert.h> @@ -122,4 +122,4 @@ static INLINE uint8_t clip_pixel_add(uint8_t dest, tran_high_t trans) { } // extern "C" #endif -#endif // VPX_DSP_INV_TXFM_H_ +#endif // VPX_VPX_DSP_INV_TXFM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/common_dspr2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/common_dspr2.h index 0a42f5cec21..87a5bbab561 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/common_dspr2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/common_dspr2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_COMMON_MIPS_DSPR2_H_ -#define VPX_COMMON_MIPS_DSPR2_H_ +#ifndef VPX_VPX_DSP_MIPS_COMMON_DSPR2_H_ +#define VPX_VPX_DSP_MIPS_COMMON_DSPR2_H_ #include <assert.h> #include "./vpx_config.h" @@ -45,4 +45,4 @@ static INLINE void prefetch_store_streamed(unsigned char *dst) { } // extern "C" #endif -#endif // VPX_COMMON_MIPS_DSPR2_H_ +#endif // VPX_VPX_DSP_MIPS_COMMON_DSPR2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/convolve_common_dspr2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/convolve_common_dspr2.h index 48e440d73c5..14b65bc650c 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/convolve_common_dspr2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/convolve_common_dspr2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_VPX_COMMON_DSPR2_H_ -#define VPX_DSP_MIPS_VPX_COMMON_DSPR2_H_ +#ifndef VPX_VPX_DSP_MIPS_CONVOLVE_COMMON_DSPR2_H_ +#define VPX_VPX_DSP_MIPS_CONVOLVE_COMMON_DSPR2_H_ #include <assert.h> @@ -55,4 +55,4 @@ void vpx_convolve2_vert_dspr2(const uint8_t *src, ptrdiff_t src_stride, } // extern "C" #endif -#endif // VPX_DSP_MIPS_VPX_COMMON_DSPR2_H_ +#endif // VPX_VPX_DSP_MIPS_CONVOLVE_COMMON_DSPR2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/fwd_txfm_msa.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/fwd_txfm_msa.h index fd589224d32..c0be56b8197 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/fwd_txfm_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/fwd_txfm_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_FWD_TXFM_MSA_H_ -#define VPX_DSP_MIPS_FWD_TXFM_MSA_H_ +#ifndef VPX_VPX_DSP_MIPS_FWD_TXFM_MSA_H_ +#define VPX_VPX_DSP_MIPS_FWD_TXFM_MSA_H_ #include "vpx_dsp/mips/txfm_macros_msa.h" #include "vpx_dsp/txfm_common.h" @@ -361,4 +361,4 @@ void fdct8x16_1d_column(const int16_t *input, int16_t *tmp_ptr, int32_t src_stride); void fdct16x8_1d_row(int16_t *input, int16_t *output); -#endif // VPX_DSP_MIPS_FWD_TXFM_MSA_H_ +#endif // VPX_VPX_DSP_MIPS_FWD_TXFM_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_dspr2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_dspr2.h index 27881f0db6c..cbea22f20f7 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_dspr2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_dspr2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_INV_TXFM_DSPR2_H_ -#define VPX_DSP_MIPS_INV_TXFM_DSPR2_H_ +#ifndef VPX_VPX_DSP_MIPS_INV_TXFM_DSPR2_H_ +#define VPX_VPX_DSP_MIPS_INV_TXFM_DSPR2_H_ #include <assert.h> @@ -25,7 +25,6 @@ extern "C" { #if HAVE_DSPR2 #define DCT_CONST_ROUND_SHIFT_TWICE_COSPI_16_64(input) \ ({ \ - \ int32_t tmp, out; \ int dct_cost_rounding = DCT_CONST_ROUNDING; \ int in = input; \ @@ -73,4 +72,4 @@ void iadst16_dspr2(const int16_t *input, int16_t *output); } // extern "C" #endif -#endif // VPX_DSP_MIPS_INV_TXFM_DSPR2_H_ +#endif // VPX_VPX_DSP_MIPS_INV_TXFM_DSPR2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_msa.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_msa.h index 1fe9b28e8ad..3b66249ef2e 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_INV_TXFM_MSA_H_ -#define VPX_DSP_MIPS_INV_TXFM_MSA_H_ +#ifndef VPX_VPX_DSP_MIPS_INV_TXFM_MSA_H_ +#define VPX_VPX_DSP_MIPS_INV_TXFM_MSA_H_ #include "vpx_dsp/mips/macros_msa.h" #include "vpx_dsp/mips/txfm_macros_msa.h" @@ -408,4 +408,4 @@ void vpx_idct16_1d_rows_msa(const int16_t *input, int16_t *output); void vpx_iadst16_1d_columns_addblk_msa(int16_t *input, uint8_t *dst, int32_t dst_stride); void vpx_iadst16_1d_rows_msa(const int16_t *input, int16_t *output); -#endif // VPX_DSP_MIPS_INV_TXFM_MSA_H_ +#endif // VPX_VPX_DSP_MIPS_INV_TXFM_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_filters_dspr2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_filters_dspr2.h index 5b0c73345b7..ec339be8685 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_filters_dspr2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_filters_dspr2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_FILTERS_DSPR2_H_ -#define VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_FILTERS_DSPR2_H_ +#ifndef VPX_VPX_DSP_MIPS_LOOPFILTER_FILTERS_DSPR2_H_ +#define VPX_VPX_DSP_MIPS_LOOPFILTER_FILTERS_DSPR2_H_ #include <stdlib.h> @@ -731,4 +731,4 @@ static INLINE void wide_mbfilter_dspr2( } // extern "C" #endif -#endif // VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_FILTERS_DSPR2_H_ +#endif // VPX_VPX_DSP_MIPS_LOOPFILTER_FILTERS_DSPR2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_macros_dspr2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_macros_dspr2.h index 38ed0b2a631..9af0b42360f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_macros_dspr2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_macros_dspr2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_MACROS_DSPR2_H_ -#define VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_MACROS_DSPR2_H_ +#ifndef VPX_VPX_DSP_MIPS_LOOPFILTER_MACROS_DSPR2_H_ +#define VPX_VPX_DSP_MIPS_LOOPFILTER_MACROS_DSPR2_H_ #include <stdlib.h> @@ -432,4 +432,4 @@ extern "C" { } // extern "C" #endif -#endif // VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_MACROS_DSPR2_H_ +#endif // VPX_VPX_DSP_MIPS_LOOPFILTER_MACROS_DSPR2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_masks_dspr2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_masks_dspr2.h index ee111422668..24c492bea0d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_masks_dspr2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_masks_dspr2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_MASKS_DSPR2_H_ -#define VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_MASKS_DSPR2_H_ +#ifndef VPX_VPX_DSP_MIPS_LOOPFILTER_MASKS_DSPR2_H_ +#define VPX_VPX_DSP_MIPS_LOOPFILTER_MASKS_DSPR2_H_ #include <stdlib.h> @@ -352,4 +352,4 @@ static INLINE void flatmask5(uint32_t p4, uint32_t p3, uint32_t p2, uint32_t p1, } // extern "C" #endif -#endif // VP9_COMMON_MIPS_DSPR2_VP9_LOOPFILTER_MASKS_DSPR2_H_ +#endif // VPX_VPX_DSP_MIPS_LOOPFILTER_MASKS_DSPR2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_msa.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_msa.h index 49fd74c25a4..1ea05e0b0b3 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_LOOPFILTER_MSA_H_ -#define VPX_DSP_LOOPFILTER_MSA_H_ +#ifndef VPX_VPX_DSP_MIPS_LOOPFILTER_MSA_H_ +#define VPX_VPX_DSP_MIPS_LOOPFILTER_MSA_H_ #include "vpx_dsp/mips/macros_msa.h" @@ -174,4 +174,4 @@ mask_out = limit_in < (v16u8)mask_out; \ mask_out = __msa_xori_b(mask_out, 0xff); \ } -#endif /* VPX_DSP_LOOPFILTER_MSA_H_ */ +#endif // VPX_VPX_DSP_MIPS_LOOPFILTER_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/macros_msa.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/macros_msa.h index f9a446e7bc1..a3a5a4dfeeb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/macros_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/macros_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_MACROS_MSA_H_ -#define VPX_DSP_MIPS_MACROS_MSA_H_ +#ifndef VPX_VPX_DSP_MIPS_MACROS_MSA_H_ +#define VPX_VPX_DSP_MIPS_MACROS_MSA_H_ #include <msa.h> @@ -1966,4 +1966,4 @@ \ tmp1_m; \ }) -#endif /* VPX_DSP_MIPS_MACROS_MSA_H_ */ +#endif // VPX_VPX_DSP_MIPS_MACROS_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/txfm_macros_msa.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/txfm_macros_msa.h index f077fa4814a..f27504a2078 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/txfm_macros_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/txfm_macros_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_TXFM_MACROS_MIPS_MSA_H_ -#define VPX_DSP_MIPS_TXFM_MACROS_MIPS_MSA_H_ +#ifndef VPX_VPX_DSP_MIPS_TXFM_MACROS_MSA_H_ +#define VPX_VPX_DSP_MIPS_TXFM_MACROS_MSA_H_ #include "vpx_dsp/mips/macros_msa.h" @@ -98,4 +98,4 @@ SRARI_W4_SW(m4_m, m5_m, tmp2_m, tmp3_m, DCT_CONST_BITS); \ PCKEV_H2_SH(m5_m, m4_m, tmp3_m, tmp2_m, out2, out3); \ } -#endif // VPX_DSP_MIPS_TXFM_MACROS_MIPS_MSA_H_ +#endif // VPX_VPX_DSP_MIPS_TXFM_MACROS_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/vpx_convolve_msa.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/vpx_convolve_msa.h index d53244596be..a0280c5434b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/vpx_convolve_msa.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/vpx_convolve_msa.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_MIPS_VPX_CONVOLVE_MSA_H_ -#define VPX_DSP_MIPS_VPX_CONVOLVE_MSA_H_ +#ifndef VPX_VPX_DSP_MIPS_VPX_CONVOLVE_MSA_H_ +#define VPX_VPX_DSP_MIPS_VPX_CONVOLVE_MSA_H_ #include "vpx_dsp/mips/macros_msa.h" #include "vpx_dsp/vpx_filter.h" @@ -119,4 +119,4 @@ extern const uint8_t mc_filt_mask_arr[16 * 3]; AVER_UB2_UB(tmp0_m, dst0, tmp1_m, dst1, tmp0_m, tmp1_m); \ ST8x4_UB(tmp0_m, tmp1_m, pdst_m, stride); \ } -#endif /* VPX_DSP_MIPS_VPX_CONVOLVE_MSA_H_ */ +#endif // VPX_VPX_DSP_MIPS_VPX_CONVOLVE_MSA_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/postproc.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/postproc.h index 43cb5c8e8de..37f993f8147 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/postproc.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/postproc.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_POSTPROC_H_ -#define VPX_DSP_POSTPROC_H_ +#ifndef VPX_VPX_DSP_POSTPROC_H_ +#define VPX_VPX_DSP_POSTPROC_H_ #ifdef __cplusplus extern "C" { @@ -22,4 +22,4 @@ int vpx_setup_noise(double sigma, int8_t *noise, int size); } #endif -#endif // VPX_DSP_POSTPROC_H_ +#endif // VPX_VPX_DSP_POSTPROC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/bitdepth_conversion_vsx.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/bitdepth_conversion_vsx.h index 2c5d9a4f6a5..7ac873f9fc0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/bitdepth_conversion_vsx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/bitdepth_conversion_vsx.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_PPC_BITDEPTH_CONVERSION_VSX_H_ -#define VPX_DSP_PPC_BITDEPTH_CONVERSION_VSX_H_ +#ifndef VPX_VPX_DSP_PPC_BITDEPTH_CONVERSION_VSX_H_ +#define VPX_VPX_DSP_PPC_BITDEPTH_CONVERSION_VSX_H_ #include "./vpx_config.h" #include "vpx/vpx_integer.h" @@ -44,4 +44,4 @@ static INLINE void store_tran_low(int16x8_t v, int32_t c, tran_low_t *s) { #endif } -#endif // VPX_DSP_PPC_BITDEPTH_CONVERSION_VSX_H_ +#endif // VPX_VPX_DSP_PPC_BITDEPTH_CONVERSION_VSX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.h index 36159850a0c..7031742c1c9 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.h @@ -1,3 +1,16 @@ +/* + * Copyright (c) 2018 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef VPX_VPX_DSP_PPC_INV_TXFM_VSX_H_ +#define VPX_VPX_DSP_PPC_INV_TXFM_VSX_H_ + #include "vpx_dsp/ppc/types_vsx.h" void vpx_round_store4x4_vsx(int16x8_t *in, int16x8_t *out, uint8_t *dest, @@ -31,3 +44,5 @@ void vpx_round_store16x16_vsx(int16x8_t *src0, int16x8_t *src1, uint8_t *dest, int stride); void vpx_idct16_vsx(int16x8_t *src0, int16x8_t *src1); void vpx_iadst16_vsx(int16x8_t *src0, int16x8_t *src1); + +#endif // VPX_VPX_DSP_PPC_INV_TXFM_VSX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c index 3fd4a6a2d06..51a24151a7d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c @@ -111,7 +111,6 @@ void vpx_subtract_block_vsx(int rows, int cols, int16_t *diff, pred, pred_stride); } break; - default: - assert(0); // unreachable + default: assert(0); // unreachable } } diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/transpose_vsx.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/transpose_vsx.h index 9a87869ef04..4883b734ad2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/transpose_vsx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/transpose_vsx.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_PPC_TRANSPOSE_VSX_H_ -#define VPX_DSP_PPC_TRANSPOSE_VSX_H_ +#ifndef VPX_VPX_DSP_PPC_TRANSPOSE_VSX_H_ +#define VPX_VPX_DSP_PPC_TRANSPOSE_VSX_H_ #include "./vpx_config.h" #include "vpx_dsp/ppc/types_vsx.h" @@ -130,4 +130,4 @@ static INLINE void transpose_8x8(const int16x8_t *a, int16x8_t *b) { b[7] = vec_mergel(s2_3, s2_7); } -#endif // VPX_DSP_PPC_TRANSPOSE_VSX_H_ +#endif // VPX_VPX_DSP_PPC_TRANSPOSE_VSX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/txfm_common_vsx.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/txfm_common_vsx.h index 525bc7838e5..2907a1fe40f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/txfm_common_vsx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/txfm_common_vsx.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_PPC_TXFM_COMMON_VSX_H_ -#define VPX_DSP_PPC_TXFM_COMMON_VSX_H_ +#ifndef VPX_VPX_DSP_PPC_TXFM_COMMON_VSX_H_ +#define VPX_VPX_DSP_PPC_TXFM_COMMON_VSX_H_ #include "vpx_dsp/ppc/types_vsx.h" @@ -87,4 +87,4 @@ static const int16x8_t cospi30_v = { 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606 }; static const int16x8_t cospi31_v = { 804, 804, 804, 804, 804, 804, 804, 804 }; -#endif // VPX_DSP_PPC_TXFM_COMMON_VSX_H_ +#endif // VPX_VPX_DSP_PPC_TXFM_COMMON_VSX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/types_vsx.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/types_vsx.h index f8db6ca89c1..4cba7d3658b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/types_vsx.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/types_vsx.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_PPC_TYPES_VSX_H_ -#define VPX_DSP_PPC_TYPES_VSX_H_ +#ifndef VPX_VPX_DSP_PPC_TYPES_VSX_H_ +#define VPX_VPX_DSP_PPC_TYPES_VSX_H_ #include <altivec.h> @@ -105,4 +105,4 @@ static const uint8x16_t vec_perm_odd_even_pack = { 0x00, 0x01, 0x10, 0x11, 0x08, 0x09, 0x18, 0x19, 0x0C, 0x0D, 0x1C, 0x1D }; -#endif // VPX_DSP_PPC_TYPES_VSX_H_ +#endif // VPX_VPX_DSP_PPC_TYPES_VSX_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/prob.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/prob.h index f1cc0eaa105..30d37c6a7d6 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/prob.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/prob.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_PROB_H_ -#define VPX_DSP_PROB_H_ +#ifndef VPX_VPX_DSP_PROB_H_ +#define VPX_VPX_DSP_PROB_H_ #include <assert.h> @@ -103,4 +103,4 @@ DECLARE_ALIGNED(16, extern const uint8_t, vpx_norm[256]); } // extern "C" #endif -#endif // VPX_DSP_PROB_H_ +#endif // VPX_VPX_DSP_PROB_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnr.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnr.h index 43bcb1f1dba..a5563557e97 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnr.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnr.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_PSNR_H_ -#define VPX_DSP_PSNR_H_ +#ifndef VPX_VPX_DSP_PSNR_H_ +#define VPX_VPX_DSP_PSNR_H_ #include "vpx_scale/yv12config.h" @@ -54,4 +54,4 @@ double vpx_psnrhvs(const YV12_BUFFER_CONFIG *source, #ifdef __cplusplus } // extern "C" #endif -#endif // VPX_DSP_PSNR_H_ +#endif // VPX_VPX_DSP_PSNR_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnrhvs.c b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnrhvs.c index b3910152c47..3b533decd62 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnrhvs.c +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnrhvs.c @@ -126,8 +126,10 @@ static double calc_psnrhvs(const unsigned char *src, int _systride, const uint8_t *_dst8 = dst; const uint16_t *_src16 = CONVERT_TO_SHORTPTR(src); const uint16_t *_dst16 = CONVERT_TO_SHORTPTR(dst); - int16_t dct_s[8 * 8], dct_d[8 * 8]; - tran_low_t dct_s_coef[8 * 8], dct_d_coef[8 * 8]; + DECLARE_ALIGNED(16, int16_t, dct_s[8 * 8]); + DECLARE_ALIGNED(16, int16_t, dct_d[8 * 8]); + DECLARE_ALIGNED(16, tran_low_t, dct_s_coef[8 * 8]); + DECLARE_ALIGNED(16, tran_low_t, dct_d_coef[8 * 8]); double mask[8][8]; int pixels; int x; diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/quantize.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/quantize.h index e1328454633..94c8206d9c3 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/quantize.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/quantize.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_QUANTIZE_H_ -#define VPX_DSP_QUANTIZE_H_ +#ifndef VPX_VPX_DSP_QUANTIZE_H_ +#define VPX_VPX_DSP_QUANTIZE_H_ #include "./vpx_config.h" #include "vpx_dsp/vpx_dsp_common.h" @@ -45,4 +45,4 @@ void vpx_highbd_quantize_dc_32x32(const tran_low_t *coeff_ptr, int skip_block, } // extern "C" #endif -#endif // VPX_DSP_QUANTIZE_H_ +#endif // VPX_VPX_DSP_QUANTIZE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h index a2e99baf7e7..91640c33d5a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_SKIN_DETECTION_H_ -#define VPX_DSP_SKIN_DETECTION_H_ +#ifndef VPX_VPX_DSP_SKIN_DETECTION_H_ +#define VPX_VPX_DSP_SKIN_DETECTION_H_ #ifdef __cplusplus extern "C" { @@ -21,4 +21,4 @@ int vpx_skin_pixel(const int y, const int cb, const int cr, int motion); } // extern "C" #endif -#endif // VPX_DSP_SKIN_DETECTION_H_ +#endif // VPX_VPX_DSP_SKIN_DETECTION_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ssim.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ssim.h index 4f2bb1d556c..c382237fc6d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ssim.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/ssim.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_SSIM_H_ -#define VPX_DSP_SSIM_H_ +#ifndef VPX_VPX_DSP_SSIM_H_ +#define VPX_VPX_DSP_SSIM_H_ #define MAX_SSIM_DB 100.0; @@ -84,4 +84,4 @@ double vpx_highbd_calc_ssim(const YV12_BUFFER_CONFIG *source, } // extern "C" #endif -#endif // VPX_DSP_SSIM_H_ +#endif // VPX_VPX_DSP_SSIM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h index d01d7085a27..25f4fdb3276 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_TXFM_COMMON_H_ -#define VPX_DSP_TXFM_COMMON_H_ +#ifndef VPX_VPX_DSP_TXFM_COMMON_H_ +#define VPX_VPX_DSP_TXFM_COMMON_H_ #include "vpx_dsp/vpx_dsp_common.h" @@ -63,4 +63,4 @@ static const tran_coef_t sinpi_2_9 = 9929; static const tran_coef_t sinpi_3_9 = 13377; static const tran_coef_t sinpi_4_9 = 15212; -#endif // VPX_DSP_TXFM_COMMON_H_ +#endif // VPX_VPX_DSP_TXFM_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/variance.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/variance.h index 100573299b9..b67e9297e1d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/variance.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/variance.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_VARIANCE_H_ -#define VPX_DSP_VARIANCE_H_ +#ifndef VPX_VPX_DSP_VARIANCE_H_ +#define VPX_VPX_DSP_VARIANCE_H_ #include "./vpx_config.h" @@ -82,4 +82,4 @@ typedef struct vp9_variance_vtable { } // extern "C" #endif -#endif // VPX_DSP_VARIANCE_H_ +#endif // VPX_VPX_DSP_VARIANCE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h index 7979268a954..d5793e17ad5 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_VPX_CONVOLVE_H_ -#define VPX_DSP_VPX_CONVOLVE_H_ +#ifndef VPX_VPX_DSP_VPX_CONVOLVE_H_ +#define VPX_VPX_DSP_VPX_CONVOLVE_H_ #include "./vpx_config.h" #include "vpx/vpx_integer.h" @@ -35,4 +35,4 @@ typedef void (*highbd_convolve_fn_t)(const uint16_t *src, ptrdiff_t src_stride, } // extern "C" #endif -#endif // VPX_DSP_VPX_CONVOLVE_H_ +#endif // VPX_VPX_DSP_VPX_CONVOLVE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h index c8c852374f5..6782c906375 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_VPX_DSP_COMMON_H_ -#define VPX_DSP_VPX_DSP_COMMON_H_ +#ifndef VPX_VPX_DSP_VPX_DSP_COMMON_H_ +#define VPX_VPX_DSP_VPX_DSP_COMMON_H_ #include "./vpx_config.h" #include "vpx/vpx_integer.h" @@ -70,4 +70,4 @@ static INLINE uint16_t clip_pixel_highbd(int val, int bd) { } // extern "C" #endif -#endif // VPX_DSP_VPX_DSP_COMMON_H_ +#endif // VPX_VPX_DSP_VPX_DSP_COMMON_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h index 6cea251bcca..05eb572651b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_VPX_FILTER_H_ -#define VPX_DSP_VPX_FILTER_H_ +#ifndef VPX_VPX_DSP_VPX_FILTER_H_ +#define VPX_VPX_DSP_VPX_FILTER_H_ #include "vpx/vpx_integer.h" @@ -30,4 +30,4 @@ typedef int16_t InterpKernel[SUBPEL_TAPS]; } // extern "C" #endif -#endif // VPX_DSP_VPX_FILTER_H_ +#endif // VPX_VPX_DSP_VPX_FILTER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/avg_pred_sse2.c b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/avg_pred_sse2.c index f83b26490e7..e7db75559ac 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/avg_pred_sse2.c +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/avg_pred_sse2.c @@ -13,6 +13,7 @@ #include "./vpx_dsp_rtcd.h" #include "vpx/vpx_integer.h" +#include "vpx_dsp/x86/mem_sse2.h" void vpx_comp_avg_pred_sse2(uint8_t *comp, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride) { @@ -45,10 +46,9 @@ void vpx_comp_avg_pred_sse2(uint8_t *comp, const uint8_t *pred, int width, r = _mm_loadu_si128((const __m128i *)ref); ref += 16; } else if (width == 4) { - r = _mm_set_epi32(*(const uint32_t *)(ref + 3 * ref_stride), - *(const uint32_t *)(ref + 2 * ref_stride), - *(const uint32_t *)(ref + ref_stride), - *(const uint32_t *)(ref)); + r = _mm_set_epi32(loadu_uint32(ref + 3 * ref_stride), + loadu_uint32(ref + 2 * ref_stride), + loadu_uint32(ref + ref_stride), loadu_uint32(ref)); ref += 4 * ref_stride; } else { diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_avx2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_avx2.h index 3552c07cd36..c02b47a3ebf 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_avx2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_avx2.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_BITDEPTH_CONVERSION_AVX2_H_ -#define VPX_DSP_X86_BITDEPTH_CONVERSION_AVX2_H_ +#ifndef VPX_VPX_DSP_X86_BITDEPTH_CONVERSION_AVX2_H_ +#define VPX_VPX_DSP_X86_BITDEPTH_CONVERSION_AVX2_H_ #include <immintrin.h> @@ -41,4 +41,4 @@ static INLINE void store_tran_low(__m256i a, tran_low_t *b) { _mm256_storeu_si256((__m256i *)b, a); #endif } -#endif // VPX_DSP_X86_BITDEPTH_CONVERSION_AVX2_H_ +#endif // VPX_VPX_DSP_X86_BITDEPTH_CONVERSION_AVX2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_sse2.h index 5d1d7795723..74dde656b1d 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_sse2.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_BITDEPTH_CONVERSION_SSE2_H_ -#define VPX_DSP_X86_BITDEPTH_CONVERSION_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_BITDEPTH_CONVERSION_SSE2_H_ +#define VPX_VPX_DSP_X86_BITDEPTH_CONVERSION_SSE2_H_ #include <xmmintrin.h> @@ -53,4 +53,4 @@ static INLINE void store_zero_tran_low(tran_low_t *a) { _mm_store_si128((__m128i *)(a), zero); #endif } -#endif // VPX_DSP_X86_BITDEPTH_CONVERSION_SSE2_H_ +#endif // VPX_VPX_DSP_X86_BITDEPTH_CONVERSION_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve.h index 68d7589d45d..bb427c8a38f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_CONVOLVE_H_ -#define VPX_DSP_X86_CONVOLVE_H_ +#ifndef VPX_VPX_DSP_X86_CONVOLVE_H_ +#define VPX_VPX_DSP_X86_CONVOLVE_H_ #include <assert.h> @@ -200,4 +200,4 @@ typedef void highbd_filter8_1dfunction(const uint16_t *src_ptr, } #endif // CONFIG_VP9_HIGHBITDEPTH -#endif // VPX_DSP_X86_CONVOLVE_H_ +#endif // VPX_VPX_DSP_X86_CONVOLVE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_avx2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_avx2.h index bc96b738f46..343af9fd0d0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_avx2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_avx2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_CONVOLVE_AVX2_H_ -#define VPX_DSP_X86_CONVOLVE_AVX2_H_ +#ifndef VPX_VPX_DSP_X86_CONVOLVE_AVX2_H_ +#define VPX_VPX_DSP_X86_CONVOLVE_AVX2_H_ #include <immintrin.h> // AVX2 @@ -102,4 +102,4 @@ static INLINE __m128i convolve8_8_avx2(const __m256i *const s, #undef MM256_BROADCASTSI128_SI256 -#endif // VPX_DSP_X86_CONVOLVE_AVX2_H_ +#endif // VPX_VPX_DSP_X86_CONVOLVE_AVX2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_ssse3.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_ssse3.h index e5d452f99ea..8a4b1651336 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_ssse3.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_ssse3.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_CONVOLVE_SSSE3_H_ -#define VPX_DSP_X86_CONVOLVE_SSSE3_H_ +#ifndef VPX_VPX_DSP_X86_CONVOLVE_SSSE3_H_ +#define VPX_VPX_DSP_X86_CONVOLVE_SSSE3_H_ #include <assert.h> #include <tmmintrin.h> // SSSE3 @@ -109,4 +109,4 @@ static INLINE __m128i convolve8_8_odd_offset_ssse3(const __m128i *const s, return temp; } -#endif // VPX_DSP_X86_CONVOLVE_SSSE3_H_ +#endif // VPX_VPX_DSP_X86_CONVOLVE_SSSE3_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_sse2.h index 5201e764c83..ffd37ff3761 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_sse2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_FWD_TXFM_SSE2_H_ -#define VPX_DSP_X86_FWD_TXFM_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_FWD_TXFM_SSE2_H_ +#define VPX_VPX_DSP_X86_FWD_TXFM_SSE2_H_ #ifdef __cplusplus extern "C" { @@ -368,4 +368,4 @@ static INLINE void transpose_and_output8x8( } // extern "C" #endif -#endif // VPX_DSP_X86_FWD_TXFM_SSE2_H_ +#endif // VPX_VPX_DSP_X86_FWD_TXFM_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse2.h index c89666b1e30..78cf9111d93 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_HIGHBD_INV_TXFM_SSE2_H_ -#define VPX_DSP_X86_HIGHBD_INV_TXFM_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_HIGHBD_INV_TXFM_SSE2_H_ +#define VPX_VPX_DSP_X86_HIGHBD_INV_TXFM_SSE2_H_ #include <emmintrin.h> // SSE2 @@ -401,4 +401,4 @@ static INLINE void highbd_write_buffer_4(uint16_t *const dest, const __m128i in, recon_and_store_4(out, dest, bd); } -#endif // VPX_DSP_X86_HIGHBD_INV_TXFM_SSE2_H_ +#endif // VPX_VPX_DSP_X86_HIGHBD_INV_TXFM_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse4.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse4.h index 5a7fd1d3997..f446bb13f37 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse4.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse4.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_HIGHBD_INV_TXFM_SSE4_H_ -#define VPX_DSP_X86_HIGHBD_INV_TXFM_SSE4_H_ +#ifndef VPX_VPX_DSP_X86_HIGHBD_INV_TXFM_SSE4_H_ +#define VPX_VPX_DSP_X86_HIGHBD_INV_TXFM_SSE4_H_ #include <smmintrin.h> // SSE4.1 @@ -109,4 +109,4 @@ static INLINE void highbd_idct4_sse4_1(__m128i *const io) { void vpx_highbd_idct8x8_half1d_sse4_1(__m128i *const io); void vpx_highbd_idct16_4col_sse4_1(__m128i *const io /*io[16]*/); -#endif // VPX_DSP_X86_HIGHBD_INV_TXFM_SSE4_H_ +#endif // VPX_VPX_DSP_X86_HIGHBD_INV_TXFM_SSE4_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm index e1f9657dfac..db4aaf4ea0a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm @@ -111,45 +111,33 @@ SECTION .text cglobal highbd_sub_pixel_avg_variance%1xh, 7, 7, 13, src, src_stride, \ x_offset, y_offset, \ dst, dst_stride, \ - sec, sec_stride, height, sse, \ - g_bilin_filter, g_pw_8 + sec, sec_stride, height, sse %define block_height dword heightm %define sec_str sec_stridemp - - ; Store bilin_filter and pw_8 location in stack - %if GET_GOT_DEFINED == 1 - GET_GOT eax - add esp, 4 ; restore esp - %endif - - lea ecx, [GLOBAL(bilin_filter_m)] - mov g_bilin_filterm, ecx - - lea ecx, [GLOBAL(pw_8)] - mov g_pw_8m, ecx - - LOAD_IF_USED 0, 1 ; load eax, ecx back %else cglobal highbd_sub_pixel_variance%1xh, 7, 7, 13, src, src_stride, \ x_offset, y_offset, \ - dst, dst_stride, height, sse, \ - g_bilin_filter, g_pw_8 + dst, dst_stride, height, sse %define block_height heightd + %endif - ; Store bilin_filter and pw_8 location in stack - %if GET_GOT_DEFINED == 1 - GET_GOT eax - add esp, 4 ; restore esp - %endif + ; reuse argument stack space + %define g_bilin_filterm x_offsetm + %define g_pw_8m y_offsetm - lea ecx, [GLOBAL(bilin_filter_m)] - mov g_bilin_filterm, ecx + ; Store bilin_filter and pw_8 location in stack + %if GET_GOT_DEFINED == 1 + GET_GOT eax + add esp, 4 ; restore esp + %endif - lea ecx, [GLOBAL(pw_8)] - mov g_pw_8m, ecx + lea ecx, [GLOBAL(bilin_filter_m)] + mov g_bilin_filterm, ecx - LOAD_IF_USED 0, 1 ; load eax, ecx back - %endif + lea ecx, [GLOBAL(pw_8)] + mov g_pw_8m, ecx + + LOAD_IF_USED 0, 1 ; load eax, ecx back %else %if %2 == 1 ; avg cglobal highbd_sub_pixel_avg_variance%1xh, 7, 7, 13, src, src_stride, \ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_sse2.h index d573f66c9f8..b4bbd186d2b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_sse2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_INV_TXFM_SSE2_H_ -#define VPX_DSP_X86_INV_TXFM_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_INV_TXFM_SSE2_H_ +#define VPX_VPX_DSP_X86_INV_TXFM_SSE2_H_ #include <emmintrin.h> // SSE2 @@ -707,4 +707,4 @@ void idct32_1024_8x32(const __m128i *const in, __m128i *const out); void idct32_34_8x32_sse2(const __m128i *const in, __m128i *const out); void idct32_34_8x32_ssse3(const __m128i *const in, __m128i *const out); -#endif // VPX_DSP_X86_INV_TXFM_SSE2_H_ +#endif // VPX_VPX_DSP_X86_INV_TXFM_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_ssse3.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_ssse3.h index e785c8eda13..e9f0f690334 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_ssse3.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_ssse3.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_INV_TXFM_SSSE3_H_ -#define VPX_DSP_X86_INV_TXFM_SSSE3_H_ +#ifndef VPX_VPX_DSP_X86_INV_TXFM_SSSE3_H_ +#define VPX_VPX_DSP_X86_INV_TXFM_SSSE3_H_ #include <tmmintrin.h> @@ -107,4 +107,4 @@ static INLINE void idct8x8_12_add_kernel_ssse3(__m128i *const io /* io[8] */) { void idct32_135_8x32_ssse3(const __m128i *const in, __m128i *const out); -#endif // VPX_DSP_X86_INV_TXFM_SSSE3_H_ +#endif // VPX_VPX_DSP_X86_INV_TXFM_SSSE3_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/loopfilter_sse2.c b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/loopfilter_sse2.c index 28e6fd65f92..853c4d270b1 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/loopfilter_sse2.c +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/loopfilter_sse2.c @@ -13,6 +13,7 @@ #include "./vpx_dsp_rtcd.h" #include "vpx_ports/mem.h" #include "vpx_ports/emmintrin_compat.h" +#include "vpx_dsp/x86/mem_sse2.h" static INLINE __m128i abs_diff(__m128i a, __m128i b) { return _mm_or_si128(_mm_subs_epu8(a, b), _mm_subs_epu8(b, a)); @@ -212,21 +213,21 @@ void vpx_lpf_vertical_4_sse2(uint8_t *s, int p /* pitch */, // 00 10 20 30 01 11 21 31 02 12 22 32 03 13 23 33 ps1ps0 = _mm_unpacklo_epi8(ps1ps0, x0); - *(int *)(s + 0 * p - 2) = _mm_cvtsi128_si32(ps1ps0); + storeu_uint32(s + 0 * p - 2, _mm_cvtsi128_si32(ps1ps0)); ps1ps0 = _mm_srli_si128(ps1ps0, 4); - *(int *)(s + 1 * p - 2) = _mm_cvtsi128_si32(ps1ps0); + storeu_uint32(s + 1 * p - 2, _mm_cvtsi128_si32(ps1ps0)); ps1ps0 = _mm_srli_si128(ps1ps0, 4); - *(int *)(s + 2 * p - 2) = _mm_cvtsi128_si32(ps1ps0); + storeu_uint32(s + 2 * p - 2, _mm_cvtsi128_si32(ps1ps0)); ps1ps0 = _mm_srli_si128(ps1ps0, 4); - *(int *)(s + 3 * p - 2) = _mm_cvtsi128_si32(ps1ps0); + storeu_uint32(s + 3 * p - 2, _mm_cvtsi128_si32(ps1ps0)); - *(int *)(s + 4 * p - 2) = _mm_cvtsi128_si32(qs1qs0); + storeu_uint32(s + 4 * p - 2, _mm_cvtsi128_si32(qs1qs0)); qs1qs0 = _mm_srli_si128(qs1qs0, 4); - *(int *)(s + 5 * p - 2) = _mm_cvtsi128_si32(qs1qs0); + storeu_uint32(s + 5 * p - 2, _mm_cvtsi128_si32(qs1qs0)); qs1qs0 = _mm_srli_si128(qs1qs0, 4); - *(int *)(s + 6 * p - 2) = _mm_cvtsi128_si32(qs1qs0); + storeu_uint32(s + 6 * p - 2, _mm_cvtsi128_si32(qs1qs0)); qs1qs0 = _mm_srli_si128(qs1qs0, 4); - *(int *)(s + 7 * p - 2) = _mm_cvtsi128_si32(qs1qs0); + storeu_uint32(s + 7 * p - 2, _mm_cvtsi128_si32(qs1qs0)); } void vpx_lpf_horizontal_16_sse2(unsigned char *s, int p, @@ -1626,16 +1627,12 @@ static INLINE void transpose(unsigned char *src[], int in_p, x5 = _mm_unpacklo_epi16(x2, x3); // 00 10 20 30 40 50 60 70 01 11 21 31 41 51 61 71 x6 = _mm_unpacklo_epi32(x4, x5); - _mm_storel_pd((double *)(out + 0 * out_p), - _mm_castsi128_pd(x6)); // 00 10 20 30 40 50 60 70 - _mm_storeh_pd((double *)(out + 1 * out_p), - _mm_castsi128_pd(x6)); // 01 11 21 31 41 51 61 71 + mm_storelu(out + 0 * out_p, x6); // 00 10 20 30 40 50 60 70 + mm_storehu(out + 1 * out_p, x6); // 01 11 21 31 41 51 61 71 // 02 12 22 32 42 52 62 72 03 13 23 33 43 53 63 73 x7 = _mm_unpackhi_epi32(x4, x5); - _mm_storel_pd((double *)(out + 2 * out_p), - _mm_castsi128_pd(x7)); // 02 12 22 32 42 52 62 72 - _mm_storeh_pd((double *)(out + 3 * out_p), - _mm_castsi128_pd(x7)); // 03 13 23 33 43 53 63 73 + mm_storelu(out + 2 * out_p, x7); // 02 12 22 32 42 52 62 72 + mm_storehu(out + 3 * out_p, x7); // 03 13 23 33 43 53 63 73 // 04 14 24 34 05 15 25 35 06 16 26 36 07 17 27 37 x4 = _mm_unpackhi_epi16(x0, x1); @@ -1643,17 +1640,13 @@ static INLINE void transpose(unsigned char *src[], int in_p, x5 = _mm_unpackhi_epi16(x2, x3); // 04 14 24 34 44 54 64 74 05 15 25 35 45 55 65 75 x6 = _mm_unpacklo_epi32(x4, x5); - _mm_storel_pd((double *)(out + 4 * out_p), - _mm_castsi128_pd(x6)); // 04 14 24 34 44 54 64 74 - _mm_storeh_pd((double *)(out + 5 * out_p), - _mm_castsi128_pd(x6)); // 05 15 25 35 45 55 65 75 + mm_storelu(out + 4 * out_p, x6); // 04 14 24 34 44 54 64 74 + mm_storehu(out + 5 * out_p, x6); // 05 15 25 35 45 55 65 75 // 06 16 26 36 46 56 66 76 07 17 27 37 47 57 67 77 x7 = _mm_unpackhi_epi32(x4, x5); - _mm_storel_pd((double *)(out + 6 * out_p), - _mm_castsi128_pd(x7)); // 06 16 26 36 46 56 66 76 - _mm_storeh_pd((double *)(out + 7 * out_p), - _mm_castsi128_pd(x7)); // 07 17 27 37 47 57 67 77 + mm_storelu(out + 6 * out_p, x7); // 06 16 26 36 46 56 66 76 + mm_storehu(out + 7 * out_p, x7); // 07 17 27 37 47 57 67 77 } while (++idx8x8 < num_8x8_to_transpose); } diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/mem_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/mem_sse2.h index 419f1786309..5209a062882 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/mem_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/mem_sse2.h @@ -8,13 +8,27 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_MEM_SSE2_H_ -#define VPX_DSP_X86_MEM_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_MEM_SSE2_H_ +#define VPX_VPX_DSP_X86_MEM_SSE2_H_ #include <emmintrin.h> // SSE2 +#include <string.h> #include "./vpx_config.h" +static INLINE void storeu_uint32(void *dst, uint32_t v) { + memcpy(dst, &v, sizeof(v)); +} + +static INLINE uint32_t loadu_uint32(const void *src) { + uint32_t v; + memcpy(&v, src, sizeof(v)); + return v; +} + +#define mm_storelu(dst, v) memcpy((dst), (const char *)&(v), 8) +#define mm_storehu(dst, v) memcpy((dst), (const char *)&(v) + 8, 8) + static INLINE __m128i loadh_epi64(const __m128i s, const void *const src) { return _mm_castps_si128( _mm_loadh_pi(_mm_castsi128_ps(s), (const __m64 *)src)); @@ -126,4 +140,4 @@ static INLINE void storeu_8bit_16x4(const __m128i *const s, uint8_t *const d, _mm_storeu_si128((__m128i *)(d + 3 * stride), s[3]); } -#endif // VPX_DSP_X86_MEM_SSE2_H_ +#endif // VPX_VPX_DSP_X86_MEM_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_x86.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_x86.h index 0e07a2ac5f8..bb9e32f71eb 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_x86.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_x86.h @@ -8,6 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#ifndef VPX_VPX_DSP_X86_QUANTIZE_X86_H_ +#define VPX_VPX_DSP_X86_QUANTIZE_X86_H_ + #include <emmintrin.h> #include "./vpx_config.h" @@ -75,3 +78,5 @@ static INLINE int16_t accumulate_eob(__m128i eob) { eob = _mm_max_epi16(eob, eob_shuffled); return _mm_extract_epi16(eob, 1); } + +#endif // VPX_VPX_DSP_X86_QUANTIZE_X86_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/subpel_variance_sse2.asm b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/subpel_variance_sse2.asm index d938c1da4fa..88967a3f14b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/subpel_variance_sse2.asm +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/subpel_variance_sse2.asm @@ -132,44 +132,33 @@ SECTION .text %if %2 == 1 ; avg cglobal sub_pixel_avg_variance%1xh, 7, 7, 13, src, src_stride, \ x_offset, y_offset, dst, dst_stride, \ - sec, sec_stride, height, sse, \ - g_bilin_filter, g_pw_8 + sec, sec_stride, height, sse %define block_height dword heightm %define sec_str sec_stridemp - - ;Store bilin_filter and pw_8 location in stack - %if GET_GOT_DEFINED == 1 - GET_GOT eax - add esp, 4 ; restore esp - %endif - - lea ecx, [GLOBAL(bilin_filter_m)] - mov g_bilin_filterm, ecx - - lea ecx, [GLOBAL(pw_8)] - mov g_pw_8m, ecx - - LOAD_IF_USED 0, 1 ; load eax, ecx back %else cglobal sub_pixel_variance%1xh, 7, 7, 13, src, src_stride, \ x_offset, y_offset, dst, dst_stride, \ - height, sse, g_bilin_filter, g_pw_8 + height, sse %define block_height heightd + %endif + + ; reuse argument stack space + %define g_bilin_filterm x_offsetm + %define g_pw_8m y_offsetm - ;Store bilin_filter and pw_8 location in stack - %if GET_GOT_DEFINED == 1 - GET_GOT eax - add esp, 4 ; restore esp - %endif + ;Store bilin_filter and pw_8 location in stack + %if GET_GOT_DEFINED == 1 + GET_GOT eax + add esp, 4 ; restore esp + %endif - lea ecx, [GLOBAL(bilin_filter_m)] - mov g_bilin_filterm, ecx + lea ecx, [GLOBAL(bilin_filter_m)] + mov g_bilin_filterm, ecx - lea ecx, [GLOBAL(pw_8)] - mov g_pw_8m, ecx + lea ecx, [GLOBAL(pw_8)] + mov g_pw_8m, ecx - LOAD_IF_USED 0, 1 ; load eax, ecx back - %endif + LOAD_IF_USED 0, 1 ; load eax, ecx back %else %if %2 == 1 ; avg cglobal sub_pixel_avg_variance%1xh, 7, 7, 13, src, src_stride, \ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/transpose_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/transpose_sse2.h index 8a0119ca7e5..6e07871b181 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/transpose_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/transpose_sse2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_TRANSPOSE_SSE2_H_ -#define VPX_DSP_X86_TRANSPOSE_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_TRANSPOSE_SSE2_H_ +#define VPX_VPX_DSP_X86_TRANSPOSE_SSE2_H_ #include <emmintrin.h> // SSE2 @@ -364,4 +364,4 @@ static INLINE void transpose_32bit_8x4(const __m128i *const in, out[7] = _mm_unpackhi_epi64(a6, a7); } -#endif // VPX_DSP_X86_TRANSPOSE_SSE2_H_ +#endif // VPX_VPX_DSP_X86_TRANSPOSE_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/txfm_common_sse2.h b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/txfm_common_sse2.h index 0a9542c85b4..de5ce43b00a 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/txfm_common_sse2.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/txfm_common_sse2.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_DSP_X86_TXFM_COMMON_SSE2_H_ -#define VPX_DSP_X86_TXFM_COMMON_SSE2_H_ +#ifndef VPX_VPX_DSP_X86_TXFM_COMMON_SSE2_H_ +#define VPX_VPX_DSP_X86_TXFM_COMMON_SSE2_H_ #include <emmintrin.h> #include "vpx/vpx_integer.h" @@ -29,4 +29,4 @@ _mm_setr_epi16((int16_t)(a), (int16_t)(b), (int16_t)(c), (int16_t)(d), \ (int16_t)(e), (int16_t)(f), (int16_t)(g), (int16_t)(h)) -#endif // VPX_DSP_X86_TXFM_COMMON_SSE2_H_ +#endif // VPX_VPX_DSP_X86_TXFM_COMMON_SSE2_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/variance_sse2.c b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/variance_sse2.c index a2a13a68b67..02790525563 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/variance_sse2.c +++ b/chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/variance_sse2.c @@ -14,6 +14,7 @@ #include "./vpx_config.h" #include "./vpx_dsp_rtcd.h" #include "vpx_ports/mem.h" +#include "vpx_dsp/x86/mem_sse2.h" static INLINE unsigned int add32x4_sse2(__m128i val) { val = _mm_add_epi32(val, _mm_srli_si128(val, 8)); @@ -35,8 +36,8 @@ unsigned int vpx_get_mb_ss_sse2(const int16_t *src) { } static INLINE __m128i load4x2_sse2(const uint8_t *const p, const int stride) { - const __m128i p0 = _mm_cvtsi32_si128(*(const uint32_t *)(p + 0 * stride)); - const __m128i p1 = _mm_cvtsi32_si128(*(const uint32_t *)(p + 1 * stride)); + const __m128i p0 = _mm_cvtsi32_si128(loadu_uint32(p + 0 * stride)); + const __m128i p1 = _mm_cvtsi32_si128(loadu_uint32(p + 1 * stride)); const __m128i p01 = _mm_unpacklo_epi32(p0, p1); return _mm_unpacklo_epi8(p01, _mm_setzero_si128()); } diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h b/chromium/third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h index 2c259d322e6..5631130243b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_MEM_INCLUDE_VPX_MEM_INTRNL_H_ -#define VPX_MEM_INCLUDE_VPX_MEM_INTRNL_H_ +#ifndef VPX_VPX_MEM_INCLUDE_VPX_MEM_INTRNL_H_ +#define VPX_VPX_MEM_INCLUDE_VPX_MEM_INTRNL_H_ #include "./vpx_config.h" #define ADDRESS_STORAGE_SIZE sizeof(size_t) @@ -28,4 +28,4 @@ #define align_addr(addr, align) \ (void *)(((size_t)(addr) + ((align)-1)) & ~(size_t)((align)-1)) -#endif // VPX_MEM_INCLUDE_VPX_MEM_INTRNL_H_ +#endif // VPX_VPX_MEM_INCLUDE_VPX_MEM_INTRNL_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c b/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c index eeba34c373b..18abf1158b5 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c +++ b/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c @@ -16,12 +16,14 @@ #include "include/vpx_mem_intrnl.h" #include "vpx/vpx_integer.h" +#if !defined(VPX_MAX_ALLOCABLE_MEMORY) #if SIZE_MAX > (1ULL << 40) #define VPX_MAX_ALLOCABLE_MEMORY (1ULL << 40) #else // For 32-bit targets keep this below INT_MAX to avoid valgrind warnings. #define VPX_MAX_ALLOCABLE_MEMORY ((1ULL << 31) - (1 << 16)) #endif +#endif // Returns 0 in case of overflow of nmemb * size. static int check_size_argument_overflow(uint64_t nmemb, uint64_t size) { diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h b/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h index a4274b8856c..7689a05e6ea 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_MEM_VPX_MEM_H_ -#define VPX_MEM_VPX_MEM_H_ +#ifndef VPX_VPX_MEM_VPX_MEM_H_ +#define VPX_VPX_MEM_VPX_MEM_H_ #include "vpx_config.h" #if defined(__uClinux__) @@ -49,4 +49,4 @@ static INLINE void *vpx_memset16(void *dest, int val, size_t length) { } #endif -#endif // VPX_MEM_VPX_MEM_H_ +#endif // VPX_VPX_MEM_VPX_MEM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/arm.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/arm.h index 7be6104a4f5..6458a2c5b00 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/arm.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/arm.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_ARM_H_ -#define VPX_PORTS_ARM_H_ +#ifndef VPX_VPX_PORTS_ARM_H_ +#define VPX_VPX_PORTS_ARM_H_ #include <stdlib.h> #include "vpx_config.h" @@ -36,4 +36,4 @@ int arm_cpu_caps(void); } // extern "C" #endif -#endif // VPX_PORTS_ARM_H_ +#endif // VPX_VPX_PORTS_ARM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/asmdefs_mmi.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/asmdefs_mmi.h index a9a49745afd..28355bf9fbf 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/asmdefs_mmi.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/asmdefs_mmi.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_ASMDEFS_MMI_H_ -#define VPX_PORTS_ASMDEFS_MMI_H_ +#ifndef VPX_VPX_PORTS_ASMDEFS_MMI_H_ +#define VPX_VPX_PORTS_ASMDEFS_MMI_H_ #include "./vpx_config.h" #include "vpx/vpx_integer.h" @@ -78,4 +78,4 @@ #endif /* HAVE_MMI */ -#endif /* VPX_PORTS_ASMDEFS_MMI_H_ */ +#endif // VPX_VPX_PORTS_ASMDEFS_MMI_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/bitops.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/bitops.h index 0ed7189ff65..5b2f31cd11e 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/bitops.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/bitops.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_BITOPS_H_ -#define VPX_PORTS_BITOPS_H_ +#ifndef VPX_VPX_PORTS_BITOPS_H_ +#define VPX_VPX_PORTS_BITOPS_H_ #include <assert.h> @@ -72,4 +72,4 @@ static INLINE int get_msb(unsigned int n) { } // extern "C" #endif -#endif // VPX_PORTS_BITOPS_H_ +#endif // VPX_VPX_PORTS_BITOPS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h index 903534e0c0f..d6cc68ee4d2 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_EMMINTRIN_COMPAT_H_ -#define VPX_PORTS_EMMINTRIN_COMPAT_H_ +#ifndef VPX_VPX_PORTS_EMMINTRIN_COMPAT_H_ +#define VPX_VPX_PORTS_EMMINTRIN_COMPAT_H_ #if defined(__GNUC__) && __GNUC__ < 4 /* From emmintrin.h (gcc 4.5.3) */ @@ -52,4 +52,4 @@ extern __inline __m128d } #endif -#endif // VPX_PORTS_EMMINTRIN_COMPAT_H_ +#endif // VPX_VPX_PORTS_EMMINTRIN_COMPAT_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem.h index bfef783b133..317c6dc0613 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_MEM_H_ -#define VPX_PORTS_MEM_H_ +#ifndef VPX_VPX_PORTS_MEM_H_ +#define VPX_VPX_PORTS_MEM_H_ #include "vpx_config.h" #include "vpx/vpx_integer.h" @@ -51,4 +51,4 @@ #define VPX_WITH_ASAN 0 #endif // __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) -#endif // VPX_PORTS_MEM_H_ +#endif // VPX_VPX_PORTS_MEM_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h index b0608591f89..b17015e7ecf 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_MEM_OPS_H_ -#define VPX_PORTS_MEM_OPS_H_ +#ifndef VPX_VPX_PORTS_MEM_OPS_H_ +#define VPX_VPX_PORTS_MEM_OPS_H_ /* \file * \brief Provides portable memory access primitives @@ -224,4 +224,4 @@ static VPX_INLINE void mem_put_le32(void *vmem, MEM_VALUE_T val) { mem[3] = (MAU_T)((val >> 24) & 0xff); } /* clang-format on */ -#endif // VPX_PORTS_MEM_OPS_H_ +#endif // VPX_VPX_PORTS_MEM_OPS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h index ccac391ba00..8649b87623b 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_MEM_OPS_ALIGNED_H_ -#define VPX_PORTS_MEM_OPS_ALIGNED_H_ +#ifndef VPX_VPX_PORTS_MEM_OPS_ALIGNED_H_ +#define VPX_VPX_PORTS_MEM_OPS_ALIGNED_H_ #include "vpx/vpx_integer.h" @@ -168,4 +168,4 @@ mem_put_le_aligned_generic(32) #undef swap_endian_32_se /* clang-format on */ -#endif // VPX_PORTS_MEM_OPS_ALIGNED_H_ +#endif // VPX_VPX_PORTS_MEM_OPS_ALIGNED_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/msvc.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/msvc.h index 3ff71474b3b..d58de3535a0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/msvc.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/msvc.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_MSVC_H_ -#define VPX_PORTS_MSVC_H_ +#ifndef VPX_VPX_PORTS_MSVC_H_ +#define VPX_VPX_PORTS_MSVC_H_ #ifdef _MSC_VER #include "./vpx_config.h" @@ -29,4 +29,4 @@ static INLINE double round(double x) { #endif // _MSC_VER < 1800 #endif // _MSC_VER -#endif // VPX_PORTS_MSVC_H_ +#endif // VPX_VPX_PORTS_MSVC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/ppc.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/ppc.h index ed29ef25b45..a11f4e8732e 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/ppc.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/ppc.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_PPC_H_ -#define VPX_PORTS_PPC_H_ +#ifndef VPX_VPX_PORTS_PPC_H_ +#define VPX_VPX_PORTS_PPC_H_ #include <stdlib.h> #include "./vpx_config.h" @@ -26,4 +26,4 @@ int ppc_simd_caps(void); } // extern "C" #endif -#endif // VPX_PORTS_PPC_H_ +#endif // VPX_VPX_PORTS_PPC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/system_state.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/system_state.h index 72993782af4..03557e4bd73 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/system_state.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/system_state.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_SYSTEM_STATE_H_ -#define VPX_PORTS_SYSTEM_STATE_H_ +#ifndef VPX_VPX_PORTS_SYSTEM_STATE_H_ +#define VPX_VPX_PORTS_SYSTEM_STATE_H_ #include "./vpx_config.h" @@ -27,4 +27,4 @@ extern void vpx_clear_system_state(); } // extern "C" #endif -#endif // VPX_PORTS_SYSTEM_STATE_H_ +#endif // VPX_VPX_PORTS_SYSTEM_STATE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h index 7d9fc3b4063..4eb592b87e5 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_VPX_ONCE_H_ -#define VPX_PORTS_VPX_ONCE_H_ +#ifndef VPX_VPX_PORTS_VPX_ONCE_H_ +#define VPX_VPX_PORTS_VPX_ONCE_H_ #include "vpx_config.h" @@ -137,4 +137,4 @@ static void once(void (*func)(void)) { } #endif -#endif // VPX_PORTS_VPX_ONCE_H_ +#endif // VPX_VPX_PORTS_VPX_ONCE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h index 2083b4ece44..4934d5296a0 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_VPX_TIMER_H_ -#define VPX_PORTS_VPX_TIMER_H_ +#ifndef VPX_VPX_PORTS_VPX_TIMER_H_ +#define VPX_VPX_PORTS_VPX_TIMER_H_ #include "./vpx_config.h" @@ -106,4 +106,4 @@ static INLINE int vpx_usec_timer_elapsed(struct vpx_usec_timer *t) { return 0; } #endif /* CONFIG_OS_SUPPORT */ -#endif // VPX_PORTS_VPX_TIMER_H_ +#endif // VPX_VPX_PORTS_VPX_TIMER_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_ports/x86.h b/chromium/third_party/libvpx/source/libvpx/vpx_ports/x86.h index 4b053b23693..f6aac18329f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_ports/x86.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_ports/x86.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_PORTS_X86_H_ -#define VPX_PORTS_X86_H_ +#ifndef VPX_VPX_PORTS_X86_H_ +#define VPX_VPX_PORTS_X86_H_ #include <stdlib.h> #if defined(_MSC_VER) @@ -332,4 +332,4 @@ static INLINE unsigned int x87_set_double_precision(void) { } // extern "C" #endif -#endif // VPX_PORTS_X86_H_ +#endif // VPX_VPX_PORTS_X86_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h b/chromium/third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h index 478a4834610..fd5ba7ccdc1 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_SCALE_VPX_SCALE_H_ -#define VPX_SCALE_VPX_SCALE_H_ +#ifndef VPX_VPX_SCALE_VPX_SCALE_H_ +#define VPX_VPX_SCALE_VPX_SCALE_H_ #include "vpx_scale/yv12config.h" @@ -19,4 +19,4 @@ extern void vpx_scale_frame(YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, unsigned int vscale, unsigned int vratio, unsigned int interlaced); -#endif // VPX_SCALE_VPX_SCALE_H_ +#endif // VPX_VPX_SCALE_VPX_SCALE_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_scale/yv12config.h b/chromium/third_party/libvpx/source/libvpx/vpx_scale/yv12config.h index b9b33621449..53728af42c5 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_scale/yv12config.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_scale/yv12config.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_SCALE_YV12CONFIG_H_ -#define VPX_SCALE_YV12CONFIG_H_ +#ifndef VPX_VPX_SCALE_YV12CONFIG_H_ +#define VPX_VPX_SCALE_YV12CONFIG_H_ #ifdef __cplusplus extern "C" { @@ -100,4 +100,4 @@ int vpx_free_frame_buffer(YV12_BUFFER_CONFIG *ybf); } #endif -#endif // VPX_SCALE_YV12CONFIG_H_ +#endif // VPX_VPX_SCALE_YV12CONFIG_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_util/endian_inl.h b/chromium/third_party/libvpx/source/libvpx/vpx_util/endian_inl.h index dc387740958..1b6ef56c695 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_util/endian_inl.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_util/endian_inl.h @@ -9,8 +9,8 @@ // // Endian related functions. -#ifndef VPX_UTIL_ENDIAN_INL_H_ -#define VPX_UTIL_ENDIAN_INL_H_ +#ifndef VPX_VPX_UTIL_ENDIAN_INL_H_ +#define VPX_VPX_UTIL_ENDIAN_INL_H_ #include <stdlib.h> #include "./vpx_config.h" @@ -115,4 +115,4 @@ static INLINE uint64_t BSwap64(uint64_t x) { #endif // HAVE_BUILTIN_BSWAP64 } -#endif // VPX_UTIL_ENDIAN_INL_H_ +#endif // VPX_VPX_UTIL_ENDIAN_INL_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h b/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h index 50469106565..b06a8dce347 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_UTIL_VPX_ATOMICS_H_ -#define VPX_UTIL_VPX_ATOMICS_H_ +#ifndef VPX_VPX_UTIL_VPX_ATOMICS_H_ +#define VPX_VPX_UTIL_VPX_ATOMICS_H_ #include "./vpx_config.h" @@ -108,4 +108,4 @@ static INLINE int vpx_atomic_load_acquire(const vpx_atomic_int *atomic) { } // extern "C" #endif // __cplusplus -#endif // VPX_UTIL_VPX_ATOMICS_H_ +#endif // VPX_VPX_UTIL_VPX_ATOMICS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h b/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h index 53a5f4966a4..43a9780071f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h @@ -12,8 +12,8 @@ // Original source: // https://chromium.googlesource.com/webm/libwebp -#ifndef VPX_THREAD_H_ -#define VPX_THREAD_H_ +#ifndef VPX_VPX_UTIL_VPX_THREAD_H_ +#define VPX_VPX_UTIL_VPX_THREAD_H_ #include "./vpx_config.h" @@ -412,4 +412,4 @@ const VPxWorkerInterface *vpx_get_worker_interface(void); } // extern "C" #endif -#endif // VPX_THREAD_H_ +#endif // VPX_VPX_UTIL_VPX_THREAD_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h b/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h index 1cb7029817e..ce1102458ed 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h +++ b/chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPX_UTIL_VPX_WRITE_YUV_FRAME_H_ -#define VPX_UTIL_VPX_WRITE_YUV_FRAME_H_ +#ifndef VPX_VPX_UTIL_VPX_WRITE_YUV_FRAME_H_ +#define VPX_VPX_UTIL_VPX_WRITE_YUV_FRAME_H_ #include <stdio.h> #include "vpx_scale/yv12config.h" @@ -24,4 +24,4 @@ void vpx_write_yuv_frame(FILE *yuv_file, YV12_BUFFER_CONFIG *s); } // extern "C" #endif -#endif // VPX_UTIL_VPX_WRITE_YUV_FRAME_H_ +#endif // VPX_VPX_UTIL_VPX_WRITE_YUV_FRAME_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpxenc.h b/chromium/third_party/libvpx/source/libvpx/vpxenc.h index d867e9d9548..b780aedca69 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpxenc.h +++ b/chromium/third_party/libvpx/source/libvpx/vpxenc.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPXENC_H_ -#define VPXENC_H_ +#ifndef VPX_VPXENC_H_ +#define VPX_VPXENC_H_ #include "vpx/vpx_encoder.h" @@ -61,4 +61,4 @@ struct VpxEncoderConfig { } // extern "C" #endif -#endif // VPXENC_H_ +#endif // VPX_VPXENC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/vpxstats.h b/chromium/third_party/libvpx/source/libvpx/vpxstats.h index 5c9ea34f71a..3625ee3291f 100644 --- a/chromium/third_party/libvpx/source/libvpx/vpxstats.h +++ b/chromium/third_party/libvpx/source/libvpx/vpxstats.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef VPXSTATS_H_ -#define VPXSTATS_H_ +#ifndef VPX_VPXSTATS_H_ +#define VPX_VPXSTATS_H_ #include <stdio.h> @@ -40,4 +40,4 @@ vpx_fixed_buf_t stats_get(stats_io_t *stats); } // extern "C" #endif -#endif // VPXSTATS_H_ +#endif // VPX_VPXSTATS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/warnings.h b/chromium/third_party/libvpx/source/libvpx/warnings.h index 6b8ae6796f3..15558c64374 100644 --- a/chromium/third_party/libvpx/source/libvpx/warnings.h +++ b/chromium/third_party/libvpx/source/libvpx/warnings.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WARNINGS_H_ -#define WARNINGS_H_ +#ifndef VPX_WARNINGS_H_ +#define VPX_WARNINGS_H_ #ifdef __cplusplus extern "C" { @@ -30,4 +30,4 @@ void check_encoder_config(int disable_prompt, } // extern "C" #endif -#endif // WARNINGS_H_ +#endif // VPX_WARNINGS_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/webmdec.h b/chromium/third_party/libvpx/source/libvpx/webmdec.h index 7dcb170caf3..d8618b07d67 100644 --- a/chromium/third_party/libvpx/source/libvpx/webmdec.h +++ b/chromium/third_party/libvpx/source/libvpx/webmdec.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBMDEC_H_ -#define WEBMDEC_H_ +#ifndef VPX_WEBMDEC_H_ +#define VPX_WEBMDEC_H_ #include "./tools_common.h" @@ -66,4 +66,4 @@ void webm_free(struct WebmInputContext *webm_ctx); } // extern "C" #endif -#endif // WEBMDEC_H_ +#endif // VPX_WEBMDEC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/webmenc.h b/chromium/third_party/libvpx/source/libvpx/webmenc.h index b4a9e357bb8..4176e820814 100644 --- a/chromium/third_party/libvpx/source/libvpx/webmenc.h +++ b/chromium/third_party/libvpx/source/libvpx/webmenc.h @@ -7,8 +7,8 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBMENC_H_ -#define WEBMENC_H_ +#ifndef VPX_WEBMENC_H_ +#define VPX_WEBMENC_H_ #include <stdio.h> #include <stdlib.h> @@ -52,4 +52,4 @@ void write_webm_file_footer(struct WebmOutputContext *webm_ctx); } // extern "C" #endif -#endif // WEBMENC_H_ +#endif // VPX_WEBMENC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/y4menc.h b/chromium/third_party/libvpx/source/libvpx/y4menc.h index 69d590413ec..9a367e34c63 100644 --- a/chromium/third_party/libvpx/source/libvpx/y4menc.h +++ b/chromium/third_party/libvpx/source/libvpx/y4menc.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef Y4MENC_H_ -#define Y4MENC_H_ +#ifndef VPX_Y4MENC_H_ +#define VPX_Y4MENC_H_ #include "./tools_common.h" @@ -30,4 +30,4 @@ int y4m_write_frame_header(char *buf, size_t len); } // extern "C" #endif -#endif // Y4MENC_H_ +#endif // VPX_Y4MENC_H_ diff --git a/chromium/third_party/libvpx/source/libvpx/y4minput.h b/chromium/third_party/libvpx/source/libvpx/y4minput.h index 9e69ceb835a..a4a8b18dc53 100644 --- a/chromium/third_party/libvpx/source/libvpx/y4minput.h +++ b/chromium/third_party/libvpx/source/libvpx/y4minput.h @@ -11,8 +11,8 @@ * Copyright (C) 2002-2010 The Xiph.Org Foundation and contributors. */ -#ifndef Y4MINPUT_H_ -#define Y4MINPUT_H_ +#ifndef VPX_Y4MINPUT_H_ +#define VPX_Y4MINPUT_H_ #include <stdio.h> #include "vpx/vpx_image.h" @@ -65,4 +65,4 @@ int y4m_input_fetch_frame(y4m_input *_y4m, FILE *_fin, vpx_image_t *img); } // extern "C" #endif -#endif // Y4MINPUT_H_ +#endif // VPX_Y4MINPUT_H_ |