Merge "Migrate quantization functions from vp9/ to vpx_dsp/"
authorYunqing Wang <yunqingwang@google.com>
Mon, 20 Jul 2015 16:20:06 +0000 (16:20 +0000)
committerGerrit Code Review <noreply-gerritcodereview@google.com>
Mon, 20 Jul 2015 16:20:07 +0000 (16:20 +0000)
1  2 
vpx_dsp/vpx_dsp.mk
vpx_dsp/vpx_dsp_rtcd_defs.pl

Simple merge
@@@ -38,79 -47,104 +47,104 @@@ if ($opts{arch} eq "x86_64") 
  #
  # Loopfilter
  #
 -add_proto qw/void vp9_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh";
 -specialize qw/vp9_lpf_vertical_16 sse2 neon_asm msa/;
 -$vp9_lpf_vertical_16_neon_asm=vp9_lpf_vertical_16_neon;
 +add_proto qw/void vpx_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh";
 +specialize qw/vpx_lpf_vertical_16 sse2 neon_asm msa/;
 +$vpx_lpf_vertical_16_neon_asm=vpx_lpf_vertical_16_neon;
  
 -add_proto qw/void vp9_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh";
 -specialize qw/vp9_lpf_vertical_16_dual sse2 neon_asm msa/;
 -$vp9_lpf_vertical_16_dual_neon_asm=vp9_lpf_vertical_16_dual_neon;
 +add_proto qw/void vpx_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh";
 +specialize qw/vpx_lpf_vertical_16_dual sse2 neon_asm msa/;
 +$vpx_lpf_vertical_16_dual_neon_asm=vpx_lpf_vertical_16_dual_neon;
  
 -add_proto qw/void vp9_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 -specialize qw/vp9_lpf_vertical_8 sse2 neon msa/;
 +add_proto qw/void vpx_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 +specialize qw/vpx_lpf_vertical_8 sse2 neon msa/;
  
 -add_proto qw/void vp9_lpf_vertical_8_dual/, "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";
 -specialize qw/vp9_lpf_vertical_8_dual sse2 neon_asm msa/;
 -$vp9_lpf_vertical_8_dual_neon_asm=vp9_lpf_vertical_8_dual_neon;
 +add_proto qw/void vpx_lpf_vertical_8_dual/, "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";
 +specialize qw/vpx_lpf_vertical_8_dual sse2 neon_asm msa/;
 +$vpx_lpf_vertical_8_dual_neon_asm=vpx_lpf_vertical_8_dual_neon;
  
 -add_proto qw/void vp9_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 -specialize qw/vp9_lpf_vertical_4 mmx neon msa/;
 +add_proto qw/void vpx_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 +specialize qw/vpx_lpf_vertical_4 mmx neon msa/;
  
 -add_proto qw/void vp9_lpf_vertical_4_dual/, "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";
 -specialize qw/vp9_lpf_vertical_4_dual sse2 neon msa/;
 +add_proto qw/void vpx_lpf_vertical_4_dual/, "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";
 +specialize qw/vpx_lpf_vertical_4_dual sse2 neon msa/;
  
 -add_proto qw/void vp9_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 -specialize qw/vp9_lpf_horizontal_16 sse2 avx2 neon_asm msa/;
 -$vp9_lpf_horizontal_16_neon_asm=vp9_lpf_horizontal_16_neon;
 +add_proto qw/void vpx_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 +specialize qw/vpx_lpf_horizontal_16 sse2 avx2 neon_asm msa/;
 +$vpx_lpf_horizontal_16_neon_asm=vpx_lpf_horizontal_16_neon;
  
 -add_proto qw/void vp9_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 -specialize qw/vp9_lpf_horizontal_8 sse2 neon msa/;
 +add_proto qw/void vpx_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 +specialize qw/vpx_lpf_horizontal_8 sse2 neon msa/;
  
 -add_proto qw/void vp9_lpf_horizontal_8_dual/, "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";
 -specialize qw/vp9_lpf_horizontal_8_dual sse2 neon_asm msa/;
 -$vp9_lpf_horizontal_8_dual_neon_asm=vp9_lpf_horizontal_8_dual_neon;
 +add_proto qw/void vpx_lpf_horizontal_8_dual/, "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";
 +specialize qw/vpx_lpf_horizontal_8_dual sse2 neon_asm msa/;
 +$vpx_lpf_horizontal_8_dual_neon_asm=vpx_lpf_horizontal_8_dual_neon;
  
 -add_proto qw/void vp9_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 -specialize qw/vp9_lpf_horizontal_4 mmx neon msa/;
 +add_proto qw/void vpx_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
 +specialize qw/vpx_lpf_horizontal_4 mmx neon msa/;
  
 -add_proto qw/void vp9_lpf_horizontal_4_dual/, "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";
 -specialize qw/vp9_lpf_horizontal_4_dual sse2 neon msa/;
 +add_proto qw/void vpx_lpf_horizontal_4_dual/, "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";
 +specialize qw/vpx_lpf_horizontal_4_dual sse2 neon msa/;
  
  if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
 -  add_proto qw/void vp9_highbd_lpf_vertical_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd";
 -  specialize qw/vp9_highbd_lpf_vertical_16 sse2/;
 +  add_proto qw/void vpx_highbd_lpf_vertical_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd";
 +  specialize qw/vpx_highbd_lpf_vertical_16 sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_vertical_16_dual/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd";
 -  specialize qw/vp9_highbd_lpf_vertical_16_dual sse2/;
 +  add_proto qw/void vpx_highbd_lpf_vertical_16_dual/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd";
 +  specialize qw/vpx_highbd_lpf_vertical_16_dual sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_vertical_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 -  specialize qw/vp9_highbd_lpf_vertical_8 sse2/;
 +  add_proto qw/void vpx_highbd_lpf_vertical_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 +  specialize qw/vpx_highbd_lpf_vertical_8 sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_vertical_8_dual/, "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";
 -  specialize qw/vp9_highbd_lpf_vertical_8_dual sse2/;
 +  add_proto qw/void vpx_highbd_lpf_vertical_8_dual/, "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";
 +  specialize qw/vpx_highbd_lpf_vertical_8_dual sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_vertical_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 -  specialize qw/vp9_highbd_lpf_vertical_4 sse2/;
 +  add_proto qw/void vpx_highbd_lpf_vertical_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 +  specialize qw/vpx_highbd_lpf_vertical_4 sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_vertical_4_dual/, "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";
 -  specialize qw/vp9_highbd_lpf_vertical_4_dual sse2/;
 +  add_proto qw/void vpx_highbd_lpf_vertical_4_dual/, "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";
 +  specialize qw/vpx_highbd_lpf_vertical_4_dual sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_horizontal_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 -  specialize qw/vp9_highbd_lpf_horizontal_16 sse2/;
 +  add_proto qw/void vpx_highbd_lpf_horizontal_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 +  specialize qw/vpx_highbd_lpf_horizontal_16 sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_horizontal_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 -  specialize qw/vp9_highbd_lpf_horizontal_8 sse2/;
 +  add_proto qw/void vpx_highbd_lpf_horizontal_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 +  specialize qw/vpx_highbd_lpf_horizontal_8 sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_horizontal_8_dual/, "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";
 -  specialize qw/vp9_highbd_lpf_horizontal_8_dual sse2/;
 +  add_proto qw/void vpx_highbd_lpf_horizontal_8_dual/, "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";
 +  specialize qw/vpx_highbd_lpf_horizontal_8_dual sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_horizontal_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 -  specialize qw/vp9_highbd_lpf_horizontal_4 sse2/;
 +  add_proto qw/void vpx_highbd_lpf_horizontal_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd";
 +  specialize qw/vpx_highbd_lpf_horizontal_4 sse2/;
  
 -  add_proto qw/void vp9_highbd_lpf_horizontal_4_dual/, "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";
 -  specialize qw/vp9_highbd_lpf_horizontal_4_dual sse2/;
 +  add_proto qw/void vpx_highbd_lpf_horizontal_4_dual/, "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";
 +  specialize qw/vpx_highbd_lpf_horizontal_4_dual sse2/;
  }  # CONFIG_VP9_HIGHBITDEPTH
  
+ #
+ # Encoder functions.
+ #
+ if (vpx_config("CONFIG_VP9_ENCODER") eq "yes") {
+ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
+   add_proto qw/void vp9_quantize_b/, "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";
+   specialize qw/vp9_quantize_b/;
+   add_proto qw/void vp9_quantize_b_32x32/, "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";
+   specialize qw/vp9_quantize_b_32x32/;
+   add_proto qw/void vp9_highbd_quantize_b/, "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";
+   specialize qw/vp9_highbd_quantize_b sse2/;
+   add_proto qw/void vp9_highbd_quantize_b_32x32/, "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";
+   specialize qw/vp9_highbd_quantize_b_32x32 sse2/;
+ } else {
+   add_proto qw/void vp9_quantize_b/, "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";
+   specialize qw/vp9_quantize_b sse2/, "$ssse3_x86_64_x86inc";
+   add_proto qw/void vp9_quantize_b_32x32/, "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";
+   specialize qw/vp9_quantize_b_32x32/, "$ssse3_x86_64_x86inc";
+ }  # CONFIG_VP9_ENCODER
+ }  # CONFIG_VP9_HIGHBITDEPTH
  if (vpx_config("CONFIG_ENCODERS") eq "yes") {
  #
  # Block subtraction