Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
5238e6ea
Commit
5238e6ea
authored
Nov 02, 2016
by
Jingning Han
Browse files
Make highbd rectangular transform block available in the common lib
Change-Id: Ief08b23b30b78d640f6d7c702145e5bcf1b37b57
parent
deef66db
Changes
1
Hide whitespace changes
Inline
Side-by-side
av1/common/idct.c
View file @
5238e6ea
...
...
@@ -147,6 +147,7 @@ static void highbd_iidtx32_c(const tran_low_t *input, tran_low_t *output,
(
void
)
bd
;
for
(
i
=
0
;
i
<
32
;
++
i
)
output
[
i
]
=
input
[
i
]
*
4
;
}
#endif // CONFIG_EXT_TX
static
void
highbd_ihalfright32_c
(
const
tran_low_t
*
input
,
tran_low_t
*
output
,
int
bd
)
{
...
...
@@ -164,6 +165,7 @@ static void highbd_ihalfright32_c(const tran_low_t *input, tran_low_t *output,
// Note overall scaling factor is 4 times orthogonal
}
#if CONFIG_EXT_TX
#if CONFIG_TX64X64
static
void
highbd_iidtx64_c
(
const
tran_low_t
*
input
,
tran_low_t
*
output
,
int
bd
)
{
...
...
@@ -1271,7 +1273,6 @@ void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest8,
}
}
#if CONFIG_EXT_TX
void
av1_highbd_iht4x8_32_add_c
(
const
tran_low_t
*
input
,
uint8_t
*
dest8
,
int
stride
,
int
tx_type
,
int
bd
)
{
static
const
highbd_transform_2d
HIGH_IHT_4x8
[]
=
{
...
...
@@ -1279,6 +1280,7 @@ void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest8,
{
aom_highbd_iadst8_c
,
aom_highbd_idct4_c
},
// ADST_DCT
{
aom_highbd_idct8_c
,
aom_highbd_iadst4_c
},
// DCT_ADST
{
aom_highbd_iadst8_c
,
aom_highbd_iadst4_c
},
// ADST_ADST
#if CONFIG_EXT_TX
{
aom_highbd_iadst8_c
,
aom_highbd_idct4_c
},
// FLIPADST_DCT
{
aom_highbd_idct8_c
,
aom_highbd_iadst4_c
},
// DCT_FLIPADST
{
aom_highbd_iadst8_c
,
aom_highbd_iadst4_c
},
// FLIPADST_FLIPADST
...
...
@@ -1291,6 +1293,7 @@ void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_iidtx8_c
,
aom_highbd_iadst4_c
},
// H_ADST
{
aom_highbd_iadst8_c
,
highbd_iidtx4_c
},
// V_FLIPADST
{
highbd_iidtx8_c
,
aom_highbd_iadst4_c
},
// H_FLIPADST
#endif // CONFIG_EXT_TX
};
const
int
n
=
4
;
const
int
n2
=
8
;
...
...
@@ -1317,7 +1320,9 @@ void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest8,
HIGH_IHT_4x8
[
tx_type
].
cols
(
out
[
i
],
out
[
i
],
bd
);
}
#if CONFIG_EXT_TX
maybe_flip_strides16
(
&
dest
,
&
stride
,
&
outp
,
&
outstride
,
tx_type
,
n2
,
n
);
#endif // CONFIG_EXT_TX
// Sum with the destination
for
(
i
=
0
;
i
<
n2
;
++
i
)
{
...
...
@@ -1337,6 +1342,7 @@ void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest8,
{
aom_highbd_iadst4_c
,
aom_highbd_idct8_c
},
// ADST_DCT
{
aom_highbd_idct4_c
,
aom_highbd_iadst8_c
},
// DCT_ADST
{
aom_highbd_iadst4_c
,
aom_highbd_iadst8_c
},
// ADST_ADST
#if CONFIG_EXT_TX
{
aom_highbd_iadst4_c
,
aom_highbd_idct8_c
},
// FLIPADST_DCT
{
aom_highbd_idct4_c
,
aom_highbd_iadst8_c
},
// DCT_FLIPADST
{
aom_highbd_iadst4_c
,
aom_highbd_iadst8_c
},
// FLIPADST_FLIPADST
...
...
@@ -1349,6 +1355,7 @@ void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_iidtx4_c
,
aom_highbd_iadst8_c
},
// H_ADST
{
aom_highbd_iadst4_c
,
highbd_iidtx8_c
},
// V_FLIPADST
{
highbd_iidtx4_c
,
aom_highbd_iadst8_c
},
// H_FLIPADST
#endif // CONFIG_EXT_TX
};
const
int
n
=
4
;
const
int
n2
=
8
;
...
...
@@ -1375,7 +1382,9 @@ void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest8,
HIGH_IHT_8x4
[
tx_type
].
cols
(
out
[
i
],
out
[
i
],
bd
);
}
#if CONFIG_EXT_TX
maybe_flip_strides16
(
&
dest
,
&
stride
,
&
outp
,
&
outstride
,
tx_type
,
n
,
n2
);
#endif // CONFIG_EXT_TX
// Sum with the destination
for
(
i
=
0
;
i
<
n
;
++
i
)
{
...
...
@@ -1395,6 +1404,7 @@ void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest8,
{
aom_highbd_iadst16_c
,
aom_highbd_idct8_c
},
// ADST_DCT
{
aom_highbd_idct16_c
,
aom_highbd_iadst8_c
},
// DCT_ADST
{
aom_highbd_iadst16_c
,
aom_highbd_iadst8_c
},
// ADST_ADST
#if CONFIG_EXT_TX
{
aom_highbd_iadst16_c
,
aom_highbd_idct8_c
},
// FLIPADST_DCT
{
aom_highbd_idct16_c
,
aom_highbd_iadst8_c
},
// DCT_FLIPADST
{
aom_highbd_iadst16_c
,
aom_highbd_iadst8_c
},
// FLIPADST_FLIPADST
...
...
@@ -1407,6 +1417,7 @@ void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_iidtx16_c
,
aom_highbd_iadst8_c
},
// H_ADST
{
aom_highbd_iadst16_c
,
highbd_iidtx8_c
},
// V_FLIPADST
{
highbd_iidtx16_c
,
aom_highbd_iadst8_c
},
// H_FLIPADST
#endif // CONFIG_EXT_TX
};
const
int
n
=
8
;
const
int
n2
=
16
;
...
...
@@ -1432,7 +1443,9 @@ void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest8,
HIGH_IHT_8x16
[
tx_type
].
cols
(
out
[
i
],
out
[
i
],
bd
);
}
#if CONFIG_EXT_TX
maybe_flip_strides16
(
&
dest
,
&
stride
,
&
outp
,
&
outstride
,
tx_type
,
n2
,
n
);
#endif // CONFIG_EXT_TX
// Sum with the destination
for
(
i
=
0
;
i
<
n2
;
++
i
)
{
...
...
@@ -1452,6 +1465,7 @@ void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest8,
{
aom_highbd_iadst8_c
,
aom_highbd_idct16_c
},
// ADST_DCT
{
aom_highbd_idct8_c
,
aom_highbd_iadst16_c
},
// DCT_ADST
{
aom_highbd_iadst8_c
,
aom_highbd_iadst16_c
},
// ADST_ADST
#if CONFIG_EXT_TX
{
aom_highbd_iadst8_c
,
aom_highbd_idct16_c
},
// FLIPADST_DCT
{
aom_highbd_idct8_c
,
aom_highbd_iadst16_c
},
// DCT_FLIPADST
{
aom_highbd_iadst8_c
,
aom_highbd_iadst16_c
},
// FLIPADST_FLIPADST
...
...
@@ -1464,6 +1478,7 @@ void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_iidtx8_c
,
aom_highbd_iadst16_c
},
// H_ADST
{
aom_highbd_iadst8_c
,
highbd_iidtx16_c
},
// V_FLIPADST
{
highbd_iidtx8_c
,
aom_highbd_iadst16_c
},
// H_FLIPADST
#endif // CONFIG_EXT_TX
};
const
int
n
=
8
;
const
int
n2
=
16
;
...
...
@@ -1489,7 +1504,9 @@ void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest8,
HIGH_IHT_16x8
[
tx_type
].
cols
(
out
[
i
],
out
[
i
],
bd
);
}
#if CONFIG_EXT_TX
maybe_flip_strides16
(
&
dest
,
&
stride
,
&
outp
,
&
outstride
,
tx_type
,
n
,
n2
);
#endif // CONFIG_EXT_TX
// Sum with the destination
for
(
i
=
0
;
i
<
n
;
++
i
)
{
...
...
@@ -1509,6 +1526,7 @@ void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_ihalfright32_c
,
aom_highbd_idct16_c
},
// ADST_DCT
{
aom_highbd_idct32_c
,
aom_highbd_iadst16_c
},
// DCT_ADST
{
highbd_ihalfright32_c
,
aom_highbd_iadst16_c
},
// ADST_ADST
#if CONFIG_EXT_TX
{
highbd_ihalfright32_c
,
aom_highbd_idct16_c
},
// FLIPADST_DCT
{
aom_highbd_idct32_c
,
aom_highbd_iadst16_c
},
// DCT_FLIPADST
{
highbd_ihalfright32_c
,
aom_highbd_iadst16_c
},
// FLIPADST_FLIPADST
...
...
@@ -1521,6 +1539,7 @@ void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_iidtx32_c
,
aom_highbd_iadst16_c
},
// H_ADST
{
highbd_ihalfright32_c
,
highbd_iidtx16_c
},
// V_FLIPADST
{
highbd_iidtx32_c
,
aom_highbd_iadst16_c
},
// H_FLIPADST
#endif // CONFIG_EXT_TX
};
const
int
n
=
16
;
const
int
n2
=
32
;
...
...
@@ -1546,7 +1565,9 @@ void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest8,
HIGH_IHT_16x32
[
tx_type
].
cols
(
out
[
i
],
out
[
i
],
bd
);
}
#if CONFIG_EXT_TX
maybe_flip_strides16
(
&
dest
,
&
stride
,
&
outp
,
&
outstride
,
tx_type
,
n2
,
n
);
#endif // CONFIG_EXT_TX
// Sum with the destination
for
(
i
=
0
;
i
<
n2
;
++
i
)
{
...
...
@@ -1566,6 +1587,7 @@ void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest8,
{
aom_highbd_iadst16_c
,
aom_highbd_idct32_c
},
// ADST_DCT
{
aom_highbd_idct16_c
,
highbd_ihalfright32_c
},
// DCT_ADST
{
aom_highbd_iadst16_c
,
highbd_ihalfright32_c
},
// ADST_ADST
#if CONFIG_EXT_TX
{
aom_highbd_iadst16_c
,
aom_highbd_idct32_c
},
// FLIPADST_DCT
{
aom_highbd_idct16_c
,
highbd_ihalfright32_c
},
// DCT_FLIPADST
{
aom_highbd_iadst16_c
,
highbd_ihalfright32_c
},
// FLIPADST_FLIPADST
...
...
@@ -1578,6 +1600,7 @@ void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest8,
{
highbd_iidtx16_c
,
highbd_ihalfright32_c
},
// H_ADST
{
aom_highbd_iadst16_c
,
highbd_iidtx32_c
},
// V_FLIPADST
{
highbd_iidtx16_c
,
highbd_ihalfright32_c
},
// H_FLIPADST
#endif // CONFIG_EXT_TX
};
const
int
n
=
16
;
const
int
n2
=
32
;
...
...
@@ -1603,7 +1626,9 @@ void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest8,
HIGH_IHT_32x16
[
tx_type
].
cols
(
out
[
i
],
out
[
i
],
bd
);
}
#if CONFIG_EXT_TX
maybe_flip_strides16
(
&
dest
,
&
stride
,
&
outp
,
&
outstride
,
tx_type
,
n
,
n2
);
#endif // CONFIG_EXT_TX
// Sum with the destination
for
(
i
=
0
;
i
<
n
;
++
i
)
{
...
...
@@ -1615,7 +1640,6 @@ void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest8,
}
}
}
#endif // CONFIG_EXT_TX
void
av1_highbd_iht8x8_64_add_c
(
const
tran_low_t
*
input
,
uint8_t
*
dest8
,
int
stride
,
int
tx_type
,
int
bd
)
{
...
...
@@ -1983,7 +2007,6 @@ void av1_highbd_inv_txfm_add_4x4(const tran_low_t *input, uint8_t *dest,
}
}
#if CONFIG_EXT_TX
void
av1_highbd_inv_txfm_add_4x8
(
const
tran_low_t
*
input
,
uint8_t
*
dest
,
int
stride
,
int
eob
,
int
bd
,
TX_TYPE
tx_type
)
{
(
void
)
eob
;
...
...
@@ -2023,7 +2046,6 @@ void av1_highbd_inv_txfm_add_32x16(const tran_low_t *input, uint8_t *dest,
(
void
)
eob
;
av1_highbd_iht32x16_512_add_c
(
input
,
dest
,
stride
,
tx_type
,
bd
);
}
#endif // CONFIG_EXT_TX
void
av1_highbd_inv_txfm_add_8x8
(
const
tran_low_t
*
input
,
uint8_t
*
dest
,
int
stride
,
int
eob
,
int
bd
,
TX_TYPE
tx_type
)
{
...
...
@@ -2193,7 +2215,6 @@ void highbd_inv_txfm_add(const tran_low_t *input, uint8_t *dest, int stride,
case
TX_8X8
:
av1_highbd_inv_txfm_add_8x8
(
input
,
dest
,
stride
,
eob
,
bd
,
tx_type
);
break
;
#if CONFIG_EXT_TX
case
TX_4X8
:
av1_highbd_inv_txfm_add_4x8
(
input
,
dest
,
stride
,
eob
,
bd
,
tx_type
);
break
;
...
...
@@ -2212,7 +2233,6 @@ void highbd_inv_txfm_add(const tran_low_t *input, uint8_t *dest, int stride,
case
TX_32X16
:
av1_highbd_inv_txfm_add_32x16
(
input
,
dest
,
stride
,
eob
,
bd
,
tx_type
);
break
;
#endif // CONFIG_EXT_TX
case
TX_4X4
:
// this is like av1_short_idct4x4 but has a special case around eob<=1
// which is significant (not just an optimization) for the lossless
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment