Merge "Consistent names for inverse hybrid transforms (1 of 2)."
This commit is contained in:
commit
107897cf05
@ -500,10 +500,10 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
C, Trans16x16HT,
|
C, Trans16x16HT,
|
||||||
::testing::Values(
|
::testing::Values(
|
||||||
make_tuple(&vp9_short_fht16x16_c, &vp9_short_iht16x16_add_c, 0),
|
make_tuple(&vp9_short_fht16x16_c, &vp9_iht16x16_256_add_c, 0),
|
||||||
make_tuple(&vp9_short_fht16x16_c, &vp9_short_iht16x16_add_c, 1),
|
make_tuple(&vp9_short_fht16x16_c, &vp9_iht16x16_256_add_c, 1),
|
||||||
make_tuple(&vp9_short_fht16x16_c, &vp9_short_iht16x16_add_c, 2),
|
make_tuple(&vp9_short_fht16x16_c, &vp9_iht16x16_256_add_c, 2),
|
||||||
make_tuple(&vp9_short_fht16x16_c, &vp9_short_iht16x16_add_c, 3)));
|
make_tuple(&vp9_short_fht16x16_c, &vp9_iht16x16_256_add_c, 3)));
|
||||||
|
|
||||||
#if HAVE_SSE2
|
#if HAVE_SSE2
|
||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
@ -514,9 +514,9 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
SSE2, Trans16x16HT,
|
SSE2, Trans16x16HT,
|
||||||
::testing::Values(
|
::testing::Values(
|
||||||
make_tuple(&vp9_short_fht16x16_sse2, &vp9_short_iht16x16_add_sse2, 0),
|
make_tuple(&vp9_short_fht16x16_sse2, &vp9_iht16x16_256_add_sse2, 0),
|
||||||
make_tuple(&vp9_short_fht16x16_sse2, &vp9_short_iht16x16_add_sse2, 1),
|
make_tuple(&vp9_short_fht16x16_sse2, &vp9_iht16x16_256_add_sse2, 1),
|
||||||
make_tuple(&vp9_short_fht16x16_sse2, &vp9_short_iht16x16_add_sse2, 2),
|
make_tuple(&vp9_short_fht16x16_sse2, &vp9_iht16x16_256_add_sse2, 2),
|
||||||
make_tuple(&vp9_short_fht16x16_sse2, &vp9_short_iht16x16_add_sse2, 3)));
|
make_tuple(&vp9_short_fht16x16_sse2, &vp9_iht16x16_256_add_sse2, 3)));
|
||||||
#endif
|
#endif
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -39,7 +39,7 @@ void fht4x4(int16_t *in, int16_t *out, uint8_t* /*dst*/,
|
|||||||
}
|
}
|
||||||
void iht4x4_add(int16_t* /*in*/, int16_t *out, uint8_t *dst,
|
void iht4x4_add(int16_t* /*in*/, int16_t *out, uint8_t *dst,
|
||||||
int stride, int tx_type) {
|
int stride, int tx_type) {
|
||||||
vp9_short_iht4x4_add_c(out, dst, stride >> 1, tx_type);
|
vp9_iht4x4_16_add_c(out, dst, stride >> 1, tx_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
class FwdTrans4x4Test : public ::testing::TestWithParam<int> {
|
class FwdTrans4x4Test : public ::testing::TestWithParam<int> {
|
||||||
|
@ -300,10 +300,10 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
C, FwdTrans8x8HT,
|
C, FwdTrans8x8HT,
|
||||||
::testing::Values(
|
::testing::Values(
|
||||||
make_tuple(&vp9_short_fht8x8_c, &vp9_short_iht8x8_add_c, 0),
|
make_tuple(&vp9_short_fht8x8_c, &vp9_iht8x8_64_add_c, 0),
|
||||||
make_tuple(&vp9_short_fht8x8_c, &vp9_short_iht8x8_add_c, 1),
|
make_tuple(&vp9_short_fht8x8_c, &vp9_iht8x8_64_add_c, 1),
|
||||||
make_tuple(&vp9_short_fht8x8_c, &vp9_short_iht8x8_add_c, 2),
|
make_tuple(&vp9_short_fht8x8_c, &vp9_iht8x8_64_add_c, 2),
|
||||||
make_tuple(&vp9_short_fht8x8_c, &vp9_short_iht8x8_add_c, 3)));
|
make_tuple(&vp9_short_fht8x8_c, &vp9_iht8x8_64_add_c, 3)));
|
||||||
|
|
||||||
#if HAVE_SSE2
|
#if HAVE_SSE2
|
||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
@ -313,9 +313,9 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
SSE2, FwdTrans8x8HT,
|
SSE2, FwdTrans8x8HT,
|
||||||
::testing::Values(
|
::testing::Values(
|
||||||
make_tuple(&vp9_short_fht8x8_sse2, &vp9_short_iht8x8_add_sse2, 0),
|
make_tuple(&vp9_short_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 0),
|
||||||
make_tuple(&vp9_short_fht8x8_sse2, &vp9_short_iht8x8_add_sse2, 1),
|
make_tuple(&vp9_short_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 1),
|
||||||
make_tuple(&vp9_short_fht8x8_sse2, &vp9_short_iht8x8_add_sse2, 2),
|
make_tuple(&vp9_short_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 2),
|
||||||
make_tuple(&vp9_short_fht8x8_sse2, &vp9_short_iht8x8_add_sse2, 3)));
|
make_tuple(&vp9_short_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 3)));
|
||||||
#endif
|
#endif
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
; be found in the AUTHORS file in the root of the source tree.
|
; be found in the AUTHORS file in the root of the source tree.
|
||||||
;
|
;
|
||||||
|
|
||||||
EXPORT |vp9_short_iht4x4_add_neon|
|
EXPORT |vp9_iht4x4_16_add_neon|
|
||||||
ARM
|
ARM
|
||||||
REQUIRE8
|
REQUIRE8
|
||||||
PRESERVE8
|
PRESERVE8
|
||||||
@ -139,7 +139,7 @@
|
|||||||
MEND
|
MEND
|
||||||
|
|
||||||
AREA Block, CODE, READONLY ; name this block of code
|
AREA Block, CODE, READONLY ; name this block of code
|
||||||
;void vp9_short_iht4x4_add_neon(int16_t *input, uint8_t *dest,
|
;void vp9_iht4x4_16_add_neon(int16_t *input, uint8_t *dest,
|
||||||
; int dest_stride, int tx_type)
|
; int dest_stride, int tx_type)
|
||||||
;
|
;
|
||||||
; r0 int16_t input
|
; r0 int16_t input
|
||||||
@ -147,7 +147,7 @@
|
|||||||
; r2 int dest_stride
|
; r2 int dest_stride
|
||||||
; r3 int tx_type)
|
; r3 int tx_type)
|
||||||
; This function will only handle tx_type of 1,2,3.
|
; This function will only handle tx_type of 1,2,3.
|
||||||
|vp9_short_iht4x4_add_neon| PROC
|
|vp9_iht4x4_16_add_neon| PROC
|
||||||
|
|
||||||
; load the inputs into d16-d19
|
; load the inputs into d16-d19
|
||||||
vld1.s16 {q8,q9}, [r0]!
|
vld1.s16 {q8,q9}, [r0]!
|
||||||
@ -175,7 +175,7 @@ iadst_idct
|
|||||||
; then transform columns
|
; then transform columns
|
||||||
IADST4x4_1D
|
IADST4x4_1D
|
||||||
|
|
||||||
b end_vp9_short_iht4x4_add_neon
|
b end_vp9_iht4x4_16_add_neon
|
||||||
|
|
||||||
idct_iadst
|
idct_iadst
|
||||||
; generate constants
|
; generate constants
|
||||||
@ -191,7 +191,7 @@ idct_iadst
|
|||||||
; then transform columns
|
; then transform columns
|
||||||
IDCT4x4_1D
|
IDCT4x4_1D
|
||||||
|
|
||||||
b end_vp9_short_iht4x4_add_neon
|
b end_vp9_iht4x4_16_add_neon
|
||||||
|
|
||||||
iadst_iadst
|
iadst_iadst
|
||||||
; generate constants
|
; generate constants
|
||||||
@ -206,7 +206,7 @@ iadst_iadst
|
|||||||
; then transform columns
|
; then transform columns
|
||||||
IADST4x4_1D
|
IADST4x4_1D
|
||||||
|
|
||||||
end_vp9_short_iht4x4_add_neon
|
end_vp9_iht4x4_16_add_neon
|
||||||
; ROUND_POWER_OF_TWO(temp_out[j], 4)
|
; ROUND_POWER_OF_TWO(temp_out[j], 4)
|
||||||
vrshr.s16 q8, q8, #4
|
vrshr.s16 q8, q8, #4
|
||||||
vrshr.s16 q9, q9, #4
|
vrshr.s16 q9, q9, #4
|
||||||
@ -232,6 +232,6 @@ end_vp9_short_iht4x4_add_neon
|
|||||||
vst1.32 {d26[1]}, [r1], r2
|
vst1.32 {d26[1]}, [r1], r2
|
||||||
vst1.32 {d26[0]}, [r1] ; no post-increment
|
vst1.32 {d26[0]}, [r1] ; no post-increment
|
||||||
bx lr
|
bx lr
|
||||||
ENDP ; |vp9_short_iht4x4_add_neon|
|
ENDP ; |vp9_iht4x4_16_add_neon|
|
||||||
|
|
||||||
END
|
END
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
; be found in the AUTHORS file in the root of the source tree.
|
; be found in the AUTHORS file in the root of the source tree.
|
||||||
;
|
;
|
||||||
|
|
||||||
EXPORT |vp9_short_iht8x8_add_neon|
|
EXPORT |vp9_iht8x8_64_add_neon|
|
||||||
ARM
|
ARM
|
||||||
REQUIRE8
|
REQUIRE8
|
||||||
PRESERVE8
|
PRESERVE8
|
||||||
@ -559,7 +559,7 @@
|
|||||||
|
|
||||||
|
|
||||||
AREA Block, CODE, READONLY ; name this block of code
|
AREA Block, CODE, READONLY ; name this block of code
|
||||||
;void vp9_short_iht8x8_add_neon(int16_t *input, uint8_t *dest,
|
;void vp9_iht8x8_64_add_neon(int16_t *input, uint8_t *dest,
|
||||||
; int dest_stride, int tx_type)
|
; int dest_stride, int tx_type)
|
||||||
;
|
;
|
||||||
; r0 int16_t input
|
; r0 int16_t input
|
||||||
@ -567,7 +567,7 @@
|
|||||||
; r2 int dest_stride
|
; r2 int dest_stride
|
||||||
; r3 int tx_type)
|
; r3 int tx_type)
|
||||||
; This function will only handle tx_type of 1,2,3.
|
; This function will only handle tx_type of 1,2,3.
|
||||||
|vp9_short_iht8x8_add_neon| PROC
|
|vp9_iht8x8_64_add_neon| PROC
|
||||||
|
|
||||||
; load the inputs into d16-d19
|
; load the inputs into d16-d19
|
||||||
vld1.s16 {q8,q9}, [r0]!
|
vld1.s16 {q8,q9}, [r0]!
|
||||||
@ -602,7 +602,7 @@ iadst_idct
|
|||||||
; then transform columns
|
; then transform columns
|
||||||
IADST8X8_1D
|
IADST8X8_1D
|
||||||
|
|
||||||
b end_vp9_short_iht8x8_add_neon
|
b end_vp9_iht8x8_64_add_neon
|
||||||
|
|
||||||
idct_iadst
|
idct_iadst
|
||||||
; generate IADST constants
|
; generate IADST constants
|
||||||
@ -620,7 +620,7 @@ idct_iadst
|
|||||||
; then transform columns
|
; then transform columns
|
||||||
IDCT8x8_1D
|
IDCT8x8_1D
|
||||||
|
|
||||||
b end_vp9_short_iht8x8_add_neon
|
b end_vp9_iht8x8_64_add_neon
|
||||||
|
|
||||||
iadst_iadst
|
iadst_iadst
|
||||||
; generate IADST constants
|
; generate IADST constants
|
||||||
@ -635,7 +635,7 @@ iadst_iadst
|
|||||||
; then transform columns
|
; then transform columns
|
||||||
IADST8X8_1D
|
IADST8X8_1D
|
||||||
|
|
||||||
end_vp9_short_iht8x8_add_neon
|
end_vp9_iht8x8_64_add_neon
|
||||||
pop {r0-r10}
|
pop {r0-r10}
|
||||||
|
|
||||||
; ROUND_POWER_OF_TWO(temp_out[j], 5)
|
; ROUND_POWER_OF_TWO(temp_out[j], 5)
|
||||||
@ -691,6 +691,6 @@ end_vp9_short_iht8x8_add_neon
|
|||||||
vst1.64 {d6}, [r0], r2
|
vst1.64 {d6}, [r0], r2
|
||||||
vst1.64 {d7}, [r0], r2
|
vst1.64 {d7}, [r0], r2
|
||||||
bx lr
|
bx lr
|
||||||
ENDP ; |vp9_short_iht8x8_add_neon|
|
ENDP ; |vp9_iht8x8_64_add_neon|
|
||||||
|
|
||||||
END
|
END
|
||||||
|
@ -280,7 +280,7 @@ static void iadst4_1d(const int16_t *input, int16_t *output) {
|
|||||||
output[3] = dct_const_round_shift(s3);
|
output[3] = dct_const_round_shift(s3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vp9_short_iht4x4_add_c(int16_t *input, uint8_t *dest, int dest_stride,
|
void vp9_iht4x4_16_add_c(int16_t *input, uint8_t *dest, int dest_stride,
|
||||||
int tx_type) {
|
int tx_type) {
|
||||||
const transform_2d IHT_4[] = {
|
const transform_2d IHT_4[] = {
|
||||||
{ idct4_1d, idct4_1d }, // DCT_DCT = 0
|
{ idct4_1d, idct4_1d }, // DCT_DCT = 0
|
||||||
@ -395,7 +395,7 @@ static const transform_2d IHT_8[] = {
|
|||||||
{ iadst8_1d, iadst8_1d } // ADST_ADST = 3
|
{ iadst8_1d, iadst8_1d } // ADST_ADST = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
void vp9_short_iht8x8_add_c(int16_t *input, uint8_t *dest, int dest_stride,
|
void vp9_iht8x8_64_add_c(int16_t *input, uint8_t *dest, int dest_stride,
|
||||||
int tx_type) {
|
int tx_type) {
|
||||||
int i, j;
|
int i, j;
|
||||||
int16_t out[8 * 8];
|
int16_t out[8 * 8];
|
||||||
@ -813,7 +813,7 @@ static const transform_2d IHT_16[] = {
|
|||||||
{ iadst16_1d, iadst16_1d } // ADST_ADST = 3
|
{ iadst16_1d, iadst16_1d } // ADST_ADST = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
void vp9_short_iht16x16_add_c(int16_t *input, uint8_t *dest, int dest_stride,
|
void vp9_iht16x16_256_add_c(int16_t *input, uint8_t *dest, int dest_stride,
|
||||||
int tx_type) {
|
int tx_type) {
|
||||||
int i, j;
|
int i, j;
|
||||||
int16_t out[16 * 16];
|
int16_t out[16 * 16];
|
||||||
@ -1362,7 +1362,7 @@ void vp9_iht_add(TX_TYPE tx_type, int16_t *input, uint8_t *dest, int stride,
|
|||||||
if (tx_type == DCT_DCT)
|
if (tx_type == DCT_DCT)
|
||||||
vp9_idct4x4_add(input, dest, stride, eob);
|
vp9_idct4x4_add(input, dest, stride, eob);
|
||||||
else
|
else
|
||||||
vp9_short_iht4x4_add(input, dest, stride, tx_type);
|
vp9_iht4x4_16_add(input, dest, stride, tx_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vp9_iht_add_8x8(TX_TYPE tx_type, int16_t *input, uint8_t *dest,
|
void vp9_iht_add_8x8(TX_TYPE tx_type, int16_t *input, uint8_t *dest,
|
||||||
@ -1371,7 +1371,7 @@ void vp9_iht_add_8x8(TX_TYPE tx_type, int16_t *input, uint8_t *dest,
|
|||||||
vp9_idct8x8_add(input, dest, stride, eob);
|
vp9_idct8x8_add(input, dest, stride, eob);
|
||||||
} else {
|
} else {
|
||||||
if (eob > 0) {
|
if (eob > 0) {
|
||||||
vp9_short_iht8x8_add(input, dest, stride, tx_type);
|
vp9_iht8x8_64_add(input, dest, stride, tx_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1382,7 +1382,7 @@ void vp9_iht_add_16x16(TX_TYPE tx_type, int16_t *input, uint8_t *dest,
|
|||||||
vp9_idct16x16_add(input, dest, stride, eob);
|
vp9_idct16x16_add(input, dest, stride, eob);
|
||||||
} else {
|
} else {
|
||||||
if (eob > 0) {
|
if (eob > 0) {
|
||||||
vp9_short_iht16x16_add(input, dest, stride, tx_type);
|
vp9_iht16x16_256_add(input, dest, stride, tx_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -297,14 +297,14 @@ specialize vp9_idct32x32_1024_add sse2 neon
|
|||||||
prototype void vp9_idct32x32_1_add "int16_t *input, uint8_t *dest, int dest_stride"
|
prototype void vp9_idct32x32_1_add "int16_t *input, uint8_t *dest, int dest_stride"
|
||||||
specialize vp9_idct32x32_1_add sse2
|
specialize vp9_idct32x32_1_add sse2
|
||||||
|
|
||||||
prototype void vp9_short_iht4x4_add "int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
|
prototype void vp9_iht4x4_16_add "int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
|
||||||
specialize vp9_short_iht4x4_add sse2 neon
|
specialize vp9_iht4x4_16_add sse2 neon
|
||||||
|
|
||||||
prototype void vp9_short_iht8x8_add "int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
|
prototype void vp9_iht8x8_64_add "int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
|
||||||
specialize vp9_short_iht8x8_add sse2 neon
|
specialize vp9_iht8x8_64_add sse2 neon
|
||||||
|
|
||||||
prototype void vp9_short_iht16x16_add "int16_t *input, uint8_t *output, int pitch, int tx_type"
|
prototype void vp9_iht16x16_256_add "int16_t *input, uint8_t *output, int pitch, int tx_type"
|
||||||
specialize vp9_short_iht16x16_add sse2
|
specialize vp9_iht16x16_256_add sse2
|
||||||
|
|
||||||
# dct and add
|
# dct and add
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ static void iadst4_1d_sse2(__m128i *in) {
|
|||||||
in[3] = _mm_unpackhi_epi64(in[1], in[1]);
|
in[3] = _mm_unpackhi_epi64(in[1], in[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vp9_short_iht4x4_add_sse2(int16_t *input, uint8_t *dest, int stride,
|
void vp9_iht4x4_16_add_sse2(int16_t *input, uint8_t *dest, int stride,
|
||||||
int tx_type) {
|
int tx_type) {
|
||||||
__m128i in[4];
|
__m128i in[4];
|
||||||
const __m128i zero = _mm_setzero_si128();
|
const __m128i zero = _mm_setzero_si128();
|
||||||
@ -883,7 +883,7 @@ static void iadst8_1d_sse2(__m128i *in) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void vp9_short_iht8x8_add_sse2(int16_t *input, uint8_t *dest, int stride,
|
void vp9_iht8x8_64_add_sse2(int16_t *input, uint8_t *dest, int stride,
|
||||||
int tx_type) {
|
int tx_type) {
|
||||||
__m128i in[8];
|
__m128i in[8];
|
||||||
const __m128i zero = _mm_setzero_si128();
|
const __m128i zero = _mm_setzero_si128();
|
||||||
@ -2386,7 +2386,7 @@ static INLINE void write_buffer_8x16(uint8_t *dest, __m128i *in, int stride) {
|
|||||||
RECON_AND_STORE(dest, in[15]);
|
RECON_AND_STORE(dest, in[15]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vp9_short_iht16x16_add_sse2(int16_t *input, uint8_t *dest, int stride,
|
void vp9_iht16x16_256_add_sse2(int16_t *input, uint8_t *dest, int stride,
|
||||||
int tx_type) {
|
int tx_type) {
|
||||||
__m128i in0[16], in1[16];
|
__m128i in0[16], in1[16];
|
||||||
|
|
||||||
|
@ -623,7 +623,7 @@ void vp9_encode_block_intra(int plane, int block, BLOCK_SIZE plane_bsize,
|
|||||||
// case.
|
// case.
|
||||||
xd->itxm_add(dqcoeff, dst, pd->dst.stride, *eob);
|
xd->itxm_add(dqcoeff, dst, pd->dst.stride, *eob);
|
||||||
else
|
else
|
||||||
vp9_short_iht4x4_add(dqcoeff, dst, pd->dst.stride, tx_type);
|
vp9_iht4x4_16_add(dqcoeff, dst, pd->dst.stride, tx_type);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1109,7 +1109,7 @@ static int64_t rd_pick_intra4x4block(VP9_COMP *cpi, MACROBLOCK *x, int ib,
|
|||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
if (tx_type != DCT_DCT)
|
if (tx_type != DCT_DCT)
|
||||||
vp9_short_iht4x4_add(BLOCK_OFFSET(pd->dqcoeff, block),
|
vp9_iht4x4_16_add(BLOCK_OFFSET(pd->dqcoeff, block),
|
||||||
dst, pd->dst.stride, tx_type);
|
dst, pd->dst.stride, tx_type);
|
||||||
else
|
else
|
||||||
xd->itxm_add(BLOCK_OFFSET(pd->dqcoeff, block), dst, pd->dst.stride,
|
xd->itxm_add(BLOCK_OFFSET(pd->dqcoeff, block), dst, pd->dst.stride,
|
||||||
|
Loading…
Reference in New Issue
Block a user