Update tx_type switch code in idct

Change-Id: Ia244bfd4b4eb9d703653792bc4f64c6f5358ae19
This commit is contained in:
Linfeng Zhang 2018-01-30 16:55:22 -08:00
parent 3636330490
commit 82e9c30334
3 changed files with 26 additions and 27 deletions

View File

@ -147,31 +147,30 @@ void vp9_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int stride,
transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]);
switch (tx_type) { switch (tx_type) {
case 0: // DCT_DCT case DCT_DCT:
idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a); idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a);
transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]);
idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a); idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a);
break; break;
case 1: // ADST_DCT case ADST_DCT:
idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a); idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a);
transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]);
iadst8(a); iadst8(a);
break; break;
case 2: // DCT_ADST case DCT_ADST:
iadst8(a); iadst8(a);
transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]);
idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a); idct8x8_64_1d_bd8_kernel(cospis0, cospis1, a);
break; break;
case 3: // ADST_ADST default:
assert(tx_type == ADST_ADST);
iadst8(a); iadst8(a);
transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); transpose_s16_8x8(&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]);
iadst8(a); iadst8(a);
break; break;
default: assert(0); break;
} }
idct8x8_add8x8_neon(a, dest, stride); idct8x8_add8x8_neon(a, dest, stride);

View File

@ -20,23 +20,23 @@ void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride,
in[1] = load_input_data8(input + 8); in[1] = load_input_data8(input + 8);
switch (tx_type) { switch (tx_type) {
case 0: // DCT_DCT case DCT_DCT:
idct4_sse2(in); idct4_sse2(in);
idct4_sse2(in); idct4_sse2(in);
break; break;
case 1: // ADST_DCT case ADST_DCT:
idct4_sse2(in); idct4_sse2(in);
iadst4_sse2(in); iadst4_sse2(in);
break; break;
case 2: // DCT_ADST case DCT_ADST:
iadst4_sse2(in); iadst4_sse2(in);
idct4_sse2(in); idct4_sse2(in);
break; break;
case 3: // ADST_ADST default:
assert(tx_type == ADST_ADST);
iadst4_sse2(in); iadst4_sse2(in);
iadst4_sse2(in); iadst4_sse2(in);
break; break;
default: assert(0); break;
} }
// Final round and shift // Final round and shift
@ -65,23 +65,23 @@ void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride,
in[7] = load_input_data8(input + 8 * 7); in[7] = load_input_data8(input + 8 * 7);
switch (tx_type) { switch (tx_type) {
case 0: // DCT_DCT case DCT_DCT:
vpx_idct8_sse2(in); vpx_idct8_sse2(in);
vpx_idct8_sse2(in); vpx_idct8_sse2(in);
break; break;
case 1: // ADST_DCT case ADST_DCT:
vpx_idct8_sse2(in); vpx_idct8_sse2(in);
iadst8_sse2(in); iadst8_sse2(in);
break; break;
case 2: // DCT_ADST case DCT_ADST:
iadst8_sse2(in); iadst8_sse2(in);
vpx_idct8_sse2(in); vpx_idct8_sse2(in);
break; break;
case 3: // ADST_ADST default:
assert(tx_type == ADST_ADST);
iadst8_sse2(in); iadst8_sse2(in);
iadst8_sse2(in); iadst8_sse2(in);
break; break;
default: assert(0); break;
} }
// Final rounding and shift // Final rounding and shift
@ -199,23 +199,23 @@ void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *dest,
load_buffer_8x16(input, in1); load_buffer_8x16(input, in1);
switch (tx_type) { switch (tx_type) {
case 0: // DCT_DCT case DCT_DCT:
idct16_sse2(in0, in1); idct16_sse2(in0, in1);
idct16_sse2(in0, in1); idct16_sse2(in0, in1);
break; break;
case 1: // ADST_DCT case ADST_DCT:
idct16_sse2(in0, in1); idct16_sse2(in0, in1);
iadst16_sse2(in0, in1); iadst16_sse2(in0, in1);
break; break;
case 2: // DCT_ADST case DCT_ADST:
iadst16_sse2(in0, in1); iadst16_sse2(in0, in1);
idct16_sse2(in0, in1); idct16_sse2(in0, in1);
break; break;
case 3: // ADST_ADST default:
assert(tx_type == ADST_ADST);
iadst16_sse2(in0, in1); iadst16_sse2(in0, in1);
iadst16_sse2(in0, in1); iadst16_sse2(in0, in1);
break; break;
default: assert(0); break;
} }
write_buffer_8x16(dest, in0, stride); write_buffer_8x16(dest, in0, stride);

View File

@ -170,13 +170,13 @@ void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride,
fadst4_sse2(in); fadst4_sse2(in);
write_buffer_4x4(output, in); write_buffer_4x4(output, in);
break; break;
case ADST_ADST: default:
assert(tx_type == ADST_ADST);
load_buffer_4x4(input, in, stride); load_buffer_4x4(input, in, stride);
fadst4_sse2(in); fadst4_sse2(in);
fadst4_sse2(in); fadst4_sse2(in);
write_buffer_4x4(output, in); write_buffer_4x4(output, in);
break; break;
default: assert(0); break;
} }
} }
@ -1097,14 +1097,14 @@ void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride,
right_shift_8x8(in, 1); right_shift_8x8(in, 1);
write_buffer_8x8(output, in, 8); write_buffer_8x8(output, in, 8);
break; break;
case ADST_ADST: default:
assert(tx_type == ADST_ADST);
load_buffer_8x8(input, in, stride); load_buffer_8x8(input, in, stride);
fadst8_sse2(in); fadst8_sse2(in);
fadst8_sse2(in); fadst8_sse2(in);
right_shift_8x8(in, 1); right_shift_8x8(in, 1);
write_buffer_8x8(output, in, 8); write_buffer_8x8(output, in, 8);
break; break;
default: assert(0); break;
} }
} }
@ -1963,13 +1963,13 @@ void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride,
fadst16_sse2(in0, in1); fadst16_sse2(in0, in1);
write_buffer_16x16(output, in0, in1, 16); write_buffer_16x16(output, in0, in1, 16);
break; break;
case ADST_ADST: default:
assert(tx_type == ADST_ADST);
load_buffer_16x16(input, in0, in1, stride); load_buffer_16x16(input, in0, in1, stride);
fadst16_sse2(in0, in1); fadst16_sse2(in0, in1);
right_shift_16x16(in0, in1); right_shift_16x16(in0, in1);
fadst16_sse2(in0, in1); fadst16_sse2(in0, in1);
write_buffer_16x16(output, in0, in1, 16); write_buffer_16x16(output, in0, in1, 16);
break; break;
default: assert(0); break;
} }
} }