diff options
author | Scott LaVarnway <slavarnway@google.com> | 2015-12-02 04:50:46 -0800 |
---|---|---|
committer | Scott LaVarnway <slavarnway@google.com> | 2015-12-02 04:50:46 -0800 |
commit | f0b0b1fe627e760d27d9917af7c217f11c57c3ad (patch) | |
tree | 6013f6de2b1cee54b088f0c1cb0a1984b4182495 /vpx_dsp/inv_txfm.c | |
parent | 2669e0594985122a9baacf02691083e1f8d54261 (diff) | |
download | libvpx-f0b0b1fe627e760d27d9917af7c217f11c57c3ad.tar libvpx-f0b0b1fe627e760d27d9917af7c217f11c57c3ad.tar.gz libvpx-f0b0b1fe627e760d27d9917af7c217f11c57c3ad.tar.bz2 libvpx-f0b0b1fe627e760d27d9917af7c217f11c57c3ad.zip |
VP9: Add ssse3 version of vpx_idct32x32_135_add()
Change-Id: I9a780131efaad28cf1ad233ae64c5c319a329727
Diffstat (limited to 'vpx_dsp/inv_txfm.c')
-rw-r--r-- | vpx_dsp/inv_txfm.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/vpx_dsp/inv_txfm.c b/vpx_dsp/inv_txfm.c index 5f3cfddbd..a0f59bf75 100644 --- a/vpx_dsp/inv_txfm.c +++ b/vpx_dsp/inv_txfm.c @@ -1194,6 +1194,33 @@ void vpx_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, } } +void vpx_idct32x32_135_add_c(const tran_low_t *input, uint8_t *dest, + int stride) { + tran_low_t out[32 * 32] = {0}; + tran_low_t *outptr = out; + int i, j; + tran_low_t temp_in[32], temp_out[32]; + + // Rows + // only upper-left 16x16 has non-zero coeff + for (i = 0; i < 16; ++i) { + idct32_c(input, outptr); + input += 32; + outptr += 32; + } + + // Columns + for (i = 0; i < 32; ++i) { + for (j = 0; j < 32; ++j) + temp_in[j] = out[j * 32 + i]; + idct32_c(temp_in, temp_out); + for (j = 0; j < 32; ++j) { + dest[j * stride + i] = clip_pixel_add(dest[j * stride + i], + ROUND_POWER_OF_TWO(temp_out[j], 6)); + } + } +} + void vpx_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int stride) { tran_low_t out[32 * 32] = {0}; |