diff options
author | Paul Wilkins <paulwilkins@google.com> | 2014-12-19 15:02:58 +0000 |
---|---|---|
committer | Paul Wilkins <paulwilkins@google.com> | 2014-12-19 15:02:58 +0000 |
commit | 9946ee23e0a4c158e26a505b162a072f81b8a3be (patch) | |
tree | 166e50bf8f9a3597165533d0630ce6e889f3529b /vp9/encoder/x86 | |
parent | 8ac3f9adaa25ab3f22dfbdc14e578a075afead53 (diff) | |
download | libvpx-9946ee23e0a4c158e26a505b162a072f81b8a3be.tar libvpx-9946ee23e0a4c158e26a505b162a072f81b8a3be.tar.gz libvpx-9946ee23e0a4c158e26a505b162a072f81b8a3be.tar.bz2 libvpx-9946ee23e0a4c158e26a505b162a072f81b8a3be.zip |
Revert "Removal of legacy zbin_extra / zbin_oq_value."
This reverts commit e9b586e21bb899e247346e82bccf5afb42604910.
Change-Id: I5b36e6727da6c05278d97e2c37b80c109f79bed4
Diffstat (limited to 'vp9/encoder/x86')
-rw-r--r-- | vp9/encoder/x86/vp9_dct_sse2.c | 3 | ||||
-rw-r--r-- | vp9/encoder/x86/vp9_dct_ssse3.c | 3 | ||||
-rw-r--r-- | vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c | 26 | ||||
-rw-r--r-- | vp9/encoder/x86/vp9_quantize_sse2.c | 8 |
4 files changed, 24 insertions, 16 deletions
diff --git a/vp9/encoder/x86/vp9_dct_sse2.c b/vp9/encoder/x86/vp9_dct_sse2.c index ae22a0b32..e671f3998 100644 --- a/vp9/encoder/x86/vp9_dct_sse2.c +++ b/vp9/encoder/x86/vp9_dct_sse2.c @@ -254,7 +254,7 @@ void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, const int16_t* round_ptr, const int16_t* quant_ptr, const int16_t* quant_shift_ptr, int16_t* qcoeff_ptr, int16_t* dqcoeff_ptr, const int16_t* dequant_ptr, - uint16_t* eob_ptr, + int zbin_oq_value, uint16_t* eob_ptr, const int16_t* scan_ptr, const int16_t* iscan_ptr) { __m128i zero; @@ -287,6 +287,7 @@ void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, (void)scan_ptr; (void)zbin_ptr; (void)quant_shift_ptr; + (void)zbin_oq_value; (void)coeff_ptr; // Pre-condition input (shift by two) diff --git a/vp9/encoder/x86/vp9_dct_ssse3.c b/vp9/encoder/x86/vp9_dct_ssse3.c index 5c0ad7892..237c5e278 100644 --- a/vp9/encoder/x86/vp9_dct_ssse3.c +++ b/vp9/encoder/x86/vp9_dct_ssse3.c @@ -23,7 +23,7 @@ void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, const int16_t* quant_shift_ptr, int16_t* qcoeff_ptr, int16_t* dqcoeff_ptr, const int16_t* dequant_ptr, - uint16_t* eob_ptr, + int zbin_oq_value, uint16_t* eob_ptr, const int16_t* scan_ptr, const int16_t* iscan_ptr) { __m128i zero; @@ -57,6 +57,7 @@ void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, (void)scan_ptr; (void)zbin_ptr; (void)quant_shift_ptr; + (void)zbin_oq_value; (void)coeff_ptr; // Pre-condition input (shift by two) diff --git a/vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c b/vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c index 0bce9c321..55c6ed71f 100644 --- a/vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c +++ b/vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c @@ -24,6 +24,7 @@ void vp9_highbd_quantize_b_sse2(const tran_low_t *coeff_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, + int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan) { @@ -31,11 +32,11 @@ void vp9_highbd_quantize_b_sse2(const tran_low_t *coeff_ptr, __m128i zbins[2]; __m128i nzbins[2]; - zbins[0] = _mm_set_epi32((int)zbin_ptr[1], - (int)zbin_ptr[1], - (int)zbin_ptr[1], - (int)zbin_ptr[0]); - zbins[1] = _mm_set1_epi32((int)zbin_ptr[1]); + zbins[0] = _mm_set_epi32((int)(zbin_ptr[1] + zbin_oq_value), + (int)(zbin_ptr[1] + zbin_oq_value), + (int)(zbin_ptr[1] + zbin_oq_value), + (int)(zbin_ptr[0] + zbin_oq_value)); + zbins[1] = _mm_set1_epi32((int)(zbin_ptr[1] + zbin_oq_value)); nzbins[0] = _mm_setzero_si128(); nzbins[1] = _mm_setzero_si128(); @@ -110,6 +111,7 @@ void vp9_highbd_quantize_b_32x32_sse2(const tran_low_t *coeff_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, + int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan) { @@ -118,14 +120,14 @@ void vp9_highbd_quantize_b_32x32_sse2(const tran_low_t *coeff_ptr, int idx = 0; int idx_arr[1024]; int i, eob = -1; - const int zbin0_tmp = ROUND_POWER_OF_TWO(zbin_ptr[0], 1); - const int zbin1_tmp = ROUND_POWER_OF_TWO(zbin_ptr[1], 1); + const int zbin0_tmp = ROUND_POWER_OF_TWO(zbin_ptr[0] + zbin_oq_value, 1); + const int zbin1_tmp = ROUND_POWER_OF_TWO(zbin_ptr[1] + zbin_oq_value, 1); (void)scan; - zbins[0] = _mm_set_epi32(zbin1_tmp, - zbin1_tmp, - zbin1_tmp, - zbin0_tmp); - zbins[1] = _mm_set1_epi32(zbin1_tmp); + zbins[0] = _mm_set_epi32((zbin1_tmp + zbin_oq_value), + (zbin1_tmp + zbin_oq_value), + (zbin1_tmp + zbin_oq_value), + (zbin0_tmp + zbin_oq_value)); + zbins[1] = _mm_set1_epi32((zbin1_tmp + zbin_oq_value)); nzbins[0] = _mm_setzero_si128(); nzbins[1] = _mm_setzero_si128(); diff --git a/vp9/encoder/x86/vp9_quantize_sse2.c b/vp9/encoder/x86/vp9_quantize_sse2.c index 679c66e30..e06eb2f15 100644 --- a/vp9/encoder/x86/vp9_quantize_sse2.c +++ b/vp9/encoder/x86/vp9_quantize_sse2.c @@ -18,7 +18,7 @@ void vp9_quantize_b_sse2(const int16_t* coeff_ptr, intptr_t n_coeffs, const int16_t* round_ptr, const int16_t* quant_ptr, const int16_t* quant_shift_ptr, int16_t* qcoeff_ptr, int16_t* dqcoeff_ptr, const int16_t* dequant_ptr, - uint16_t* eob_ptr, + int zbin_oq_value, uint16_t* eob_ptr, const int16_t* scan_ptr, const int16_t* iscan_ptr) { __m128i zero; @@ -39,10 +39,13 @@ void vp9_quantize_b_sse2(const int16_t* coeff_ptr, intptr_t n_coeffs, // Setup global values { + __m128i zbin_oq; __m128i pw_1; + zbin_oq = _mm_set1_epi16(zbin_oq_value); zbin = _mm_load_si128((const __m128i*)zbin_ptr); round = _mm_load_si128((const __m128i*)round_ptr); quant = _mm_load_si128((const __m128i*)quant_ptr); + zbin = _mm_add_epi16(zbin, zbin_oq); pw_1 = _mm_set1_epi16(1); zbin = _mm_sub_epi16(zbin, pw_1); dequant = _mm_load_si128((const __m128i*)dequant_ptr); @@ -226,13 +229,14 @@ void vp9_quantize_fp_sse2(const int16_t* coeff_ptr, intptr_t n_coeffs, const int16_t* round_ptr, const int16_t* quant_ptr, const int16_t* quant_shift_ptr, int16_t* qcoeff_ptr, int16_t* dqcoeff_ptr, const int16_t* dequant_ptr, - uint16_t* eob_ptr, + int zbin_oq_value, uint16_t* eob_ptr, const int16_t* scan_ptr, const int16_t* iscan_ptr) { __m128i zero; (void)scan_ptr; (void)zbin_ptr; (void)quant_shift_ptr; + (void)zbin_oq_value; coeff_ptr += n_coeffs; iscan_ptr += n_coeffs; |