summaryrefslogtreecommitdiff
path: root/chromium/third_party/libvpx
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-12-10 16:19:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-12-10 16:01:50 +0000
commit51f6c2793adab2d864b3d2b360000ef8db1d3e92 (patch)
tree835b3b4446b012c75e80177cef9fbe6972cc7dbe /chromium/third_party/libvpx
parent6036726eb981b6c4b42047513b9d3f4ac865daac (diff)
downloadqtwebengine-chromium-51f6c2793adab2d864b3d2b360000ef8db1d3e92.tar.gz
BASELINE: Update Chromium to 71.0.3578.93
Change-Id: I6a32086c33670e1b033f8b10e6bf1fd4da1d105d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/third_party/libvpx')
-rw-r--r--chromium/third_party/libvpx/BUILD.gn27
-rw-r--r--chromium/third_party/libvpx/README.chromium4
-rwxr-xr-xchromium/third_party/libvpx/generate_gni.sh18
-rw-r--r--chromium/third_party/libvpx/libvpx_srcs.gni872
-rw-r--r--chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/ios/arm64/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/arm64/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp8_rtcd.h498
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vp9_rtcd.h369
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.asm92
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.c10
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_config.h100
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_dsp_rtcd.h5166
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm-neon/vpx_scale_rtcd.h101
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp8_rtcd.h498
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vp9_rtcd.h369
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.asm92
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.c10
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_config.h100
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_dsp_rtcd.h5166
-rw-r--r--chromium/third_party/libvpx/source/config/linux/chromeos-arm64/vpx_scale_rtcd.h101
-rw-r--r--chromium/third_party/libvpx/source/config/linux/generic/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/generic/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/ia32/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/mips64el/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/mipsel/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/x64/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/linux/x64/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/mac/ia32/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/mac/x64/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/mac/x64/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/nacl/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/vpx_version.h6
-rw-r--r--chromium/third_party/libvpx/source/config/win/ia32/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/win/ia32/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/config/win/x64/vpx_config.asm2
-rw-r--r--chromium/third_party/libvpx/source/config/win/x64/vpx_config.h2
-rw-r--r--chromium/third_party/libvpx/source/libvpx/args.h6
-rwxr-xr-xchromium/third_party/libvpx/source/libvpx/configure8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/examples/svc_context.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/examples/vp9_spatial_svc_encoder.c49
-rw-r--r--chromium/third_party/libvpx/source/libvpx/ivfdec.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/ivfenc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/md5_utils.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/rate_hist.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/third_party/googletest/README.libvpx4
-rw-r--r--chromium/third_party/libvpx/source/libvpx/third_party/googletest/src/include/gtest/gtest.h7
-rw-r--r--chromium/third_party/libvpx/source/libvpx/tools/non_greedy_mv/non_greedy_mv.py170
-rw-r--r--chromium/third_party/libvpx/source/libvpx/tools/set_analyzer_env.sh13
-rw-r--r--chromium/third_party/libvpx/source/libvpx/tools/tiny_ssim.c12
-rw-r--r--chromium/third_party/libvpx/source/libvpx/tools_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/video_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/video_reader.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/video_writer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/alloccommon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/blockd.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/entropy.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/entropymode.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/entropymv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/extend.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/filter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/findnearmv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/header.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/invtrans.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/loopfilter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/mips/msa/vp8_macros_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/modecont.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/mv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/onyx.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/onyxd.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/postproc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/ppflags.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/quant_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/reconinter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/systemdependent.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/threading.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/treecoder.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/common/x86/filter_x86.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/ec_types.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/error_concealment.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/decoder/treereader.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/block.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/denoising.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/quantize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/temporal_filter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c2
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/arm/neon/vp9_iht_neon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h12
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h7
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c4
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c26
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h10
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c38
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h10
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c30
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c2
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/mips/msa/vp9_fdct_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c20
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h10
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h9
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c23
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h7
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c1000
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c607
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h55
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c38
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h10
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.c769
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h31
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.c2
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c345
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h22
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h1172
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c10
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c64
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h18
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c36
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c91
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h44
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c26
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h14
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c12
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vp9/vp9cx.mk1
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vp8.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vp8cx.h7
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vp8dx.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vpx_codec.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vpx_decoder.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vpx_encoder.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vpx_image.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx/vpx_integer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/highbd_idct_neon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/idct_neon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/mem_neon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h5
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/common_dspr2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/convolve_common_dspr2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/fwd_txfm_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_dspr2.h7
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/inv_txfm_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_filters_dspr2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_macros_dspr2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_masks_dspr2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/loopfilter_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/macros_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/txfm_macros_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/mips/vpx_convolve_msa.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/postproc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/bitdepth_conversion_vsx.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.h15
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c3
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/transpose_vsx.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/txfm_common_vsx.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ppc/types_vsx.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/prob.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnr.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/psnrhvs.c6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/quantize.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/ssim.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/variance.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/avg_pred_sse2.c8
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_avx2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/bitdepth_conversion_sse2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_avx2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/convolve_ssse3.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_sse2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_inv_txfm_sse4.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm46
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_sse2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/inv_txfm_ssse3.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/loopfilter_sse2.c41
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/mem_sse2.h20
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_x86.h5
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/subpel_variance_sse2.asm45
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/transpose_sse2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/txfm_common_sse2.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_dsp/x86/variance_sse2.c5
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c2
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/arm.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/asmdefs_mmi.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/bitops.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/mem.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/msvc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/ppc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/system_state.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_ports/x86.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_scale/yv12config.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_util/endian_inl.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpxenc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/vpxstats.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/warnings.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/webmdec.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/webmenc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/y4menc.h6
-rw-r--r--chromium/third_party/libvpx/source/libvpx/y4minput.h6
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_