From 54d88c84a8368b6e882c6212e33f42b89db4bbae Mon Sep 17 00:00:00 2001 From: Jerome Jiang Date: Mon, 28 Aug 2017 19:37:58 +0000 Subject: [PATCH] Roll src/third_party/libvpx/source/libvpx/ 6b9c691da..30c261b1e (27 commits) https://chromium.googlesource.com/webm/libvpx.git/+log/6b9c691dafc8..30c261b1ebe8 $ git log 6b9c691da..30c261b1e --date=short --no-merges --format='%ad %ae %s' 2017-08-23 marpan vp9: SVC: Skip NEWMV for small blocks for (0, 0) base_mv. 2017-08-22 johannkoenig quantize avx: copy implementation to intrinsics 2017-08-21 johannkoenig quantize neon: round dqcoeff towards zero 2017-08-10 johannkoenig quantize fp: neon implementation 2017-08-22 marpan vp9: Condition lighting change detection on CBR mode. 2017-08-22 johannkoenig quantize ssse3: copy style from sse2 2017-08-22 johannkoenig quantize sse2: copy opts from ssse3 2017-08-22 johannkoenig quantize: capture skip block early 2017-08-21 johannkoenig quantize: ignore skip_block in arm 2017-08-21 johannkoenig quantize: ignore skip_block in x86 2017-08-21 johannkoenig quantize fp: ignore skip_block in arm 2017-08-21 johannkoenig quantize fp: ignore skip_block in x86 2017-08-02 johannkoenig quantize test: test _fp_ version of quantize 2017-08-16 johannkoenig Remove skip_block from quantize 2017-08-18 slavarnway vpx_dsp: get32x32var_avx2() cleanup 2017-08-07 slavarnway vpx_dsp: vpx_get16x16var_avx2() cleanup 2017-08-02 yinshiyou-hf vpx_dsp:loongson optimize vpx_subtract_block_c (case 4x4,8x8,16x16) with mmi. 2017-08-17 jzern highbd_idct32x32*,idct32_34_4x32_quarter_1_2: fix typo 2017-08-16 johannkoenig quantize: normalize intermediate types 2017-08-16 jzern inv_txfm_sse2.h: correct idct*/iadst* prototypes (...) Created with: roll-dep src/third_party/libvpx/source/libvpx R=johannkoenig@google.com Bug: Change-Id: I950d78242ad44264c1a4f5e1a985956fea24affa Reviewed-on: https://chromium-review.googlesource.com/636045 Reviewed-by: Tom Finegan Commit-Queue: Tom Finegan Cr-Commit-Position: refs/heads/master@{#497842} --- DEPS | 2 +- third_party/libvpx/README.chromium | 4 +- third_party/libvpx/libvpx_srcs.gni | 13 +++- .../source/config/ios/arm-neon/vp9_rtcd.h | 13 +++- .../libvpx/source/config/ios/arm64/vp9_rtcd.h | 13 +++- .../linux/arm-neon-cpu-detect/vp9_rtcd.h | 26 ++++++- .../source/config/linux/arm-neon/vp9_rtcd.h | 13 +++- .../source/config/linux/arm64/vp9_rtcd.h | 13 +++- .../source/config/linux/ia32/vpx_dsp_rtcd.h | 69 ++++++++++++++++++- .../source/config/linux/x64/vpx_dsp_rtcd.h | 48 ++++++++++++- .../source/config/mac/ia32/vpx_dsp_rtcd.h | 69 ++++++++++++++++++- .../source/config/mac/x64/vpx_dsp_rtcd.h | 48 ++++++++++++- .../libvpx/source/config/vpx_version.h | 6 +- .../source/config/win/ia32/vpx_dsp_rtcd.h | 69 ++++++++++++++++++- .../source/config/win/x64/vpx_dsp_rtcd.h | 48 ++++++++++++- 15 files changed, 423 insertions(+), 31 deletions(-) diff --git a/DEPS b/DEPS index 1e938b9afbd976..50fa0346c6bf70 100644 --- a/DEPS +++ b/DEPS @@ -208,7 +208,7 @@ deps = { Var('chromium_git') + '/external/selenium/py.git' + '@' + '5fd78261a75fe08d27ca4835fb6c5ce4b42275bd', 'src/third_party/libvpx/source/libvpx': - Var('chromium_git') + '/webm/libvpx.git' + '@' + '6b9c691dafc884424e05b5294b6e0e4996d533a5', + Var('chromium_git') + '/webm/libvpx.git' + '@' + '30c261b1ebe8f06d687cac5b3b442d51a7839d00', 'src/third_party/ffmpeg': Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + 'dbbdb1680bd8e77ea72f8e5a79a09101bd7a9bdd', diff --git a/third_party/libvpx/README.chromium b/third_party/libvpx/README.chromium index 6ed060d925cc72..6093bfcbd54910 100644 --- a/third_party/libvpx/README.chromium +++ b/third_party/libvpx/README.chromium @@ -5,9 +5,9 @@ License: BSD License File: source/libvpx/LICENSE Security Critical: yes -Date: Tuesday August 15 2017 +Date: Wednesday August 23 2017 Branch: master -Commit: 6b9c691dafc884424e05b5294b6e0e4996d533a5 +Commit: 30c261b1ebe8f06d687cac5b3b442d51a7839d00 Description: Contains the sources used to compile libvpx binaries used by Google Chrome and diff --git a/third_party/libvpx/libvpx_srcs.gni b/third_party/libvpx/libvpx_srcs.gni index 53d01a5b33603c..4ac157eeeb099e 100644 --- a/third_party/libvpx/libvpx_srcs.gni +++ b/third_party/libvpx/libvpx_srcs.gni @@ -444,10 +444,14 @@ libvpx_srcs_x86_ssse3 = [ libvpx_srcs_x86_sse4_1 = [ "//third_party/libvpx/source/libvpx/vp8/encoder/x86/quantize_sse4.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct16x16_add_sse4.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct32x32_add_sse4.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct4x4_add_sse4.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct8x8_add_sse4.c", ] -libvpx_srcs_x86_avx = [ "//third_party/libvpx/source/libvpx/vp9/encoder/x86/vp9_diamond_search_sad_avx.c" ] +libvpx_srcs_x86_avx = [ + "//third_party/libvpx/source/libvpx/vp9/encoder/x86/vp9_diamond_search_sad_avx.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_avx.c", +] libvpx_srcs_x86_avx2 = [ "//third_party/libvpx/source/libvpx/vp9/encoder/x86/vp9_error_avx2.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_avx2.c", @@ -906,10 +910,14 @@ libvpx_srcs_x86_64_ssse3 = [ libvpx_srcs_x86_64_sse4_1 = [ "//third_party/libvpx/source/libvpx/vp8/encoder/x86/quantize_sse4.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct16x16_add_sse4.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct32x32_add_sse4.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct4x4_add_sse4.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/highbd_idct8x8_add_sse4.c", ] -libvpx_srcs_x86_64_avx = [ "//third_party/libvpx/source/libvpx/vp9/encoder/x86/vp9_diamond_search_sad_avx.c" ] +libvpx_srcs_x86_64_avx = [ + "//third_party/libvpx/source/libvpx/vp9/encoder/x86/vp9_diamond_search_sad_avx.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/x86/quantize_avx.c", +] libvpx_srcs_x86_64_avx2 = [ "//third_party/libvpx/source/libvpx/vp9/encoder/x86/vp9_error_avx2.c", "//third_party/libvpx/source/libvpx/vpx_dsp/x86/fwd_txfm_avx2.c", @@ -2789,6 +2797,7 @@ libvpx_srcs_mips = [ "//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/asmdefs_mmi.h", "//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", diff --git a/third_party/libvpx/source/config/ios/arm-neon/vp9_rtcd.h b/third_party/libvpx/source/config/ios/arm-neon/vp9_rtcd.h index 8eedae103ed784..8cd3c193adbc5e 100644 --- a/third_party/libvpx/source/config/ios/arm-neon/vp9_rtcd.h +++ b/third_party/libvpx/source/config/ios/arm-neon/vp9_rtcd.h @@ -199,7 +199,18 @@ void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); -#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c +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, diff --git a/third_party/libvpx/source/config/ios/arm64/vp9_rtcd.h b/third_party/libvpx/source/config/ios/arm64/vp9_rtcd.h index 8eedae103ed784..8cd3c193adbc5e 100644 --- a/third_party/libvpx/source/config/ios/arm64/vp9_rtcd.h +++ b/third_party/libvpx/source/config/ios/arm64/vp9_rtcd.h @@ -199,7 +199,18 @@ void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); -#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c +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, diff --git a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp9_rtcd.h b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp9_rtcd.h index 4c485fb885dfee..7a339e572221d1 100644 --- a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp9_rtcd.h +++ b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp9_rtcd.h @@ -237,7 +237,28 @@ void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); -#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c +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); +RTCD_EXTERN void (*vp9_quantize_fp_32x32)(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_scale_and_extend_frame_c(const struct yv12_buffer_config* src, struct yv12_buffer_config* dst, @@ -274,6 +295,9 @@ static void setup_rtcd_internal(void) { vp9_quantize_fp = vp9_quantize_fp_c; if (flags & HAS_NEON) vp9_quantize_fp = vp9_quantize_fp_neon; + vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c; + if (flags & HAS_NEON) + vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_neon; } #endif diff --git a/third_party/libvpx/source/config/linux/arm-neon/vp9_rtcd.h b/third_party/libvpx/source/config/linux/arm-neon/vp9_rtcd.h index 8eedae103ed784..8cd3c193adbc5e 100644 --- a/third_party/libvpx/source/config/linux/arm-neon/vp9_rtcd.h +++ b/third_party/libvpx/source/config/linux/arm-neon/vp9_rtcd.h @@ -199,7 +199,18 @@ void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); -#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c +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, diff --git a/third_party/libvpx/source/config/linux/arm64/vp9_rtcd.h b/third_party/libvpx/source/config/linux/arm64/vp9_rtcd.h index 8eedae103ed784..8cd3c193adbc5e 100644 --- a/third_party/libvpx/source/config/linux/arm64/vp9_rtcd.h +++ b/third_party/libvpx/source/config/linux/arm64/vp9_rtcd.h @@ -199,7 +199,18 @@ void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); -#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c +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, diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/linux/ia32/vpx_dsp_rtcd.h index 90eff413ae0361..10f0c3358c2f43 100644 --- a/third_party/libvpx/source/config/linux/ia32/vpx_dsp_rtcd.h +++ b/third_party/libvpx/source/config/linux/ia32/vpx_dsp_rtcd.h @@ -4345,13 +4345,35 @@ void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c +void vpx_highbd_idct32x32_1024_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_1024_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c +void vpx_highbd_idct32x32_135_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_135_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, uint16_t* dest, @@ -4370,7 +4392,18 @@ void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c +void vpx_highbd_idct32x32_34_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_34_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, uint16_t* dest, @@ -6089,6 +6122,19 @@ void vpx_quantize_b_ssse3(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); +void vpx_quantize_b_avx(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); RTCD_EXTERN void (*vpx_quantize_b)(const tran_low_t* coeff_ptr, intptr_t n_coeffs, int skip_block, @@ -8956,9 +9002,24 @@ static void setup_rtcd_internal(void) { vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse4_1; + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse4_1; + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse4_1; vpx_highbd_idct32x32_1_add = vpx_highbd_idct32x32_1_add_c; if (flags & HAS_SSE2) vpx_highbd_idct32x32_1_add = vpx_highbd_idct32x32_1_add_sse2; + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse4_1; vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_c; if (flags & HAS_SSE2) vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse2; @@ -9280,6 +9341,8 @@ static void setup_rtcd_internal(void) { vpx_quantize_b = vpx_quantize_b_sse2; if (flags & HAS_SSSE3) vpx_quantize_b = vpx_quantize_b_ssse3; + if (flags & HAS_AVX) + vpx_quantize_b = vpx_quantize_b_avx; vpx_sad16x16 = vpx_sad16x16_c; if (flags & HAS_SSE2) vpx_sad16x16 = vpx_sad16x16_sse2; diff --git a/third_party/libvpx/source/config/linux/x64/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/linux/x64/vpx_dsp_rtcd.h index 5aa8e2e9e30ba4..76174db294a2e4 100644 --- a/third_party/libvpx/source/config/linux/x64/vpx_dsp_rtcd.h +++ b/third_party/libvpx/source/config/linux/x64/vpx_dsp_rtcd.h @@ -3695,13 +3695,35 @@ void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c +void vpx_highbd_idct32x32_1024_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_1024_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c +void vpx_highbd_idct32x32_135_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_135_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, uint16_t* dest, @@ -3717,7 +3739,18 @@ void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c +void vpx_highbd_idct32x32_34_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_34_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, uint16_t* dest, @@ -7218,6 +7251,15 @@ static void setup_rtcd_internal(void) { vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse4_1; + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse4_1; + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse4_1; + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse4_1; vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse4_1; diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/mac/ia32/vpx_dsp_rtcd.h index 90eff413ae0361..10f0c3358c2f43 100644 --- a/third_party/libvpx/source/config/mac/ia32/vpx_dsp_rtcd.h +++ b/third_party/libvpx/source/config/mac/ia32/vpx_dsp_rtcd.h @@ -4345,13 +4345,35 @@ void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c +void vpx_highbd_idct32x32_1024_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_1024_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c +void vpx_highbd_idct32x32_135_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_135_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, uint16_t* dest, @@ -4370,7 +4392,18 @@ void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c +void vpx_highbd_idct32x32_34_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_34_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, uint16_t* dest, @@ -6089,6 +6122,19 @@ void vpx_quantize_b_ssse3(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); +void vpx_quantize_b_avx(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); RTCD_EXTERN void (*vpx_quantize_b)(const tran_low_t* coeff_ptr, intptr_t n_coeffs, int skip_block, @@ -8956,9 +9002,24 @@ static void setup_rtcd_internal(void) { vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse4_1; + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse4_1; + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse4_1; vpx_highbd_idct32x32_1_add = vpx_highbd_idct32x32_1_add_c; if (flags & HAS_SSE2) vpx_highbd_idct32x32_1_add = vpx_highbd_idct32x32_1_add_sse2; + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse4_1; vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_c; if (flags & HAS_SSE2) vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse2; @@ -9280,6 +9341,8 @@ static void setup_rtcd_internal(void) { vpx_quantize_b = vpx_quantize_b_sse2; if (flags & HAS_SSSE3) vpx_quantize_b = vpx_quantize_b_ssse3; + if (flags & HAS_AVX) + vpx_quantize_b = vpx_quantize_b_avx; vpx_sad16x16 = vpx_sad16x16_c; if (flags & HAS_SSE2) vpx_sad16x16 = vpx_sad16x16_sse2; diff --git a/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h index 5aa8e2e9e30ba4..76174db294a2e4 100644 --- a/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h +++ b/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h @@ -3695,13 +3695,35 @@ void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c +void vpx_highbd_idct32x32_1024_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_1024_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c +void vpx_highbd_idct32x32_135_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_135_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, uint16_t* dest, @@ -3717,7 +3739,18 @@ void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c +void vpx_highbd_idct32x32_34_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_34_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, uint16_t* dest, @@ -7218,6 +7251,15 @@ static void setup_rtcd_internal(void) { vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse4_1; + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse4_1; + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse4_1; + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse4_1; vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse4_1; diff --git a/third_party/libvpx/source/config/vpx_version.h b/third_party/libvpx/source/config/vpx_version.h index f27b67d27cfe1c..7b71ebe025d3c1 100644 --- a/third_party/libvpx/source/config/vpx_version.h +++ b/third_party/libvpx/source/config/vpx_version.h @@ -1,7 +1,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 6 #define VERSION_PATCH 1 -#define VERSION_EXTRA "1074-g6b9c691da" +#define VERSION_EXTRA "1117-g30c261b1e" #define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) -#define VERSION_STRING_NOSP "v1.6.1-1074-g6b9c691da" -#define VERSION_STRING " v1.6.1-1074-g6b9c691da" +#define VERSION_STRING_NOSP "v1.6.1-1117-g30c261b1e" +#define VERSION_STRING " v1.6.1-1117-g30c261b1e" diff --git a/third_party/libvpx/source/config/win/ia32/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/win/ia32/vpx_dsp_rtcd.h index 90eff413ae0361..10f0c3358c2f43 100644 --- a/third_party/libvpx/source/config/win/ia32/vpx_dsp_rtcd.h +++ b/third_party/libvpx/source/config/win/ia32/vpx_dsp_rtcd.h @@ -4345,13 +4345,35 @@ void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c +void vpx_highbd_idct32x32_1024_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_1024_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c +void vpx_highbd_idct32x32_135_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_135_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, uint16_t* dest, @@ -4370,7 +4392,18 @@ void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c +void vpx_highbd_idct32x32_34_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_34_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, uint16_t* dest, @@ -6089,6 +6122,19 @@ void vpx_quantize_b_ssse3(const tran_low_t* coeff_ptr, uint16_t* eob_ptr, const int16_t* scan, const int16_t* iscan); +void vpx_quantize_b_avx(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); RTCD_EXTERN void (*vpx_quantize_b)(const tran_low_t* coeff_ptr, intptr_t n_coeffs, int skip_block, @@ -8956,9 +9002,24 @@ static void setup_rtcd_internal(void) { vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse4_1; + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse4_1; + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse4_1; vpx_highbd_idct32x32_1_add = vpx_highbd_idct32x32_1_add_c; if (flags & HAS_SSE2) vpx_highbd_idct32x32_1_add = vpx_highbd_idct32x32_1_add_sse2; + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_c; + if (flags & HAS_SSE2) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse4_1; vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_c; if (flags & HAS_SSE2) vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse2; @@ -9280,6 +9341,8 @@ static void setup_rtcd_internal(void) { vpx_quantize_b = vpx_quantize_b_sse2; if (flags & HAS_SSSE3) vpx_quantize_b = vpx_quantize_b_ssse3; + if (flags & HAS_AVX) + vpx_quantize_b = vpx_quantize_b_avx; vpx_sad16x16 = vpx_sad16x16_c; if (flags & HAS_SSE2) vpx_sad16x16 = vpx_sad16x16_sse2; diff --git a/third_party/libvpx/source/config/win/x64/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/win/x64/vpx_dsp_rtcd.h index 5aa8e2e9e30ba4..76174db294a2e4 100644 --- a/third_party/libvpx/source/config/win/x64/vpx_dsp_rtcd.h +++ b/third_party/libvpx/source/config/win/x64/vpx_dsp_rtcd.h @@ -3695,13 +3695,35 @@ void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c +void vpx_highbd_idct32x32_1024_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_1024_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_1024_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c +void vpx_highbd_idct32x32_135_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_135_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_135_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input, uint16_t* dest, @@ -3717,7 +3739,18 @@ void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input, uint16_t* dest, int stride, int bd); -#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c +void vpx_highbd_idct32x32_34_add_sse2(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +void vpx_highbd_idct32x32_34_add_sse4_1(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); +RTCD_EXTERN void (*vpx_highbd_idct32x32_34_add)(const tran_low_t* input, + uint16_t* dest, + int stride, + int bd); void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input, uint16_t* dest, @@ -7218,6 +7251,15 @@ static void setup_rtcd_internal(void) { vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct16x16_38_add = vpx_highbd_idct16x16_38_add_sse4_1; + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_1024_add = vpx_highbd_idct32x32_1024_add_sse4_1; + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_135_add = vpx_highbd_idct32x32_135_add_sse4_1; + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse2; + if (flags & HAS_SSE4_1) + vpx_highbd_idct32x32_34_add = vpx_highbd_idct32x32_34_add_sse4_1; vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse2; if (flags & HAS_SSE4_1) vpx_highbd_idct4x4_16_add = vpx_highbd_idct4x4_16_add_sse4_1;