Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
dd1acdfc
Commit
dd1acdfc
authored
Nov 23, 2017
by
Luc Trudeau
Committed by
Debargha Mukherjee
Dec 04, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Intra Prediction for 4x16 and 16x4
Change-Id: Ia190c8b70173b48c91ae0dbb12d007c2a3f5d9b9
parent
d2cfbefb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
10 deletions
+35
-10
aom_dsp/aom_dsp_rtcd_defs.pl
aom_dsp/aom_dsp_rtcd_defs.pl
+1
-0
aom_dsp/intrapred.c
aom_dsp/intrapred.c
+16
-4
av1/common/common_data.h
av1/common/common_data.h
+11
-4
av1/common/reconintra.c
av1/common/reconintra.c
+7
-2
No files found.
aom_dsp/aom_dsp_rtcd_defs.pl
View file @
dd1acdfc
...
...
@@ -64,6 +64,7 @@ foreach $w (@tx_dims) {
push
@tx_sizes
,
[
$w
,
$w
];
foreach
$h
(
@tx_dims
)
{
push
@tx_sizes
,
[
$w
,
$h
]
if
(
$w
>=
4
&&
$h
>=
4
&&
(
$w
==
2
*$h
||
$h
==
2
*$w
));
push
@tx_sizes
,
[
$w
,
$h
]
if
(
$w
>=
4
&&
$h
>=
4
&&
(
$w
==
4
*$h
||
$h
==
4
*$w
));
}
}
...
...
aom_dsp/intrapred.c
View file @
dd1acdfc
...
...
@@ -949,6 +949,8 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
intra_pred_sized(type, 32, 16) \
intra_pred_sized(type, 32, 64) \
intra_pred_sized(type, 64, 32) \
intra_pred_sized(type, 4, 16) \
intra_pred_sized(type, 16, 4) \
intra_pred_highbd_sized(type, 4, 8) \
intra_pred_highbd_sized(type, 8, 4) \
intra_pred_highbd_sized(type, 8, 16) \
...
...
@@ -956,7 +958,9 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
intra_pred_highbd_sized(type, 16, 32) \
intra_pred_highbd_sized(type, 32, 16) \
intra_pred_highbd_sized(type, 32, 64) \
intra_pred_highbd_sized(type, 64, 32)
intra_pred_highbd_sized(type, 64, 32) \
intra_pred_highbd_sized(type, 4, 16) \
intra_pred_highbd_sized(type, 16, 4)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
...
...
@@ -981,12 +985,16 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
intra_pred_sized(type, 16, 8) \
intra_pred_sized(type, 16, 32) \
intra_pred_sized(type, 32, 16) \
intra_pred_sized(type, 4, 16) \
intra_pred_sized(type, 16, 4) \
intra_pred_highbd_sized(type, 4, 8) \
intra_pred_highbd_sized(type, 8, 4) \
intra_pred_highbd_sized(type, 8, 16) \
intra_pred_highbd_sized(type, 16, 8) \
intra_pred_highbd_sized(type, 16, 32) \
intra_pred_highbd_sized(type, 32, 16)
intra_pred_highbd_sized(type, 32, 16) \
intra_pred_highbd_sized(type, 4, 16) \
intra_pred_highbd_sized(type, 16, 4)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
...
...
@@ -1014,7 +1022,9 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
intra_pred_sized(type, 16, 32) \
intra_pred_sized(type, 32, 16) \
intra_pred_sized(type, 32, 64) \
intra_pred_sized(type, 64, 32)
intra_pred_sized(type, 64, 32) \
intra_pred_sized(type, 4, 16) \
intra_pred_sized(type, 16, 4)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
...
...
@@ -1032,7 +1042,9 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
intra_pred_sized(type, 8, 16) \
intra_pred_sized(type, 16, 8) \
intra_pred_sized(type, 16, 32) \
intra_pred_sized(type, 32, 16)
intra_pred_sized(type, 32, 16) \
intra_pred_sized(type, 4, 16) \
intra_pred_sized(type, 16, 4)
#define intra_pred_above_4x4(type) \
intra_pred_sized(type, 8, 8) \
intra_pred_sized(type, 16, 16) \
...
...
av1/common/common_data.h
View file @
dd1acdfc
...
...
@@ -677,10 +677,17 @@ static const TX_SIZE max_txsize_rect_intra_lookup[BLOCK_SIZES_ALL] = {
TX_32X32
,
TX_32X32
,
TX_32X32
,
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_TX64X64
// 4x16, 16x4, 8x32
TX_4X8
,
TX_8X4
,
TX_8X16
,
// 32x8 16x64, 64x16
TX_16X8
,
TX_16X32
,
TX_32X16
,
#if CONFIG_EXT_PARTITION_TYPES && CONFIG_RECT_TX_EXT_INTRA
// 4x16, 16x4,
TX_4X16
,
TX_16X4
,
#else
// 4x16, 16x4,
TX_4X8
,
TX_8X4
,
#endif // CONFIG_EXT_PARTITION_TYPES && CONFIG_RECT_TX_EXT_INTRA
// 8x32, 32x8
TX_8X16
,
TX_16X8
,
// 16x64, 64x16
TX_16X32
,
TX_32X16
,
#if CONFIG_EXT_PARTITION
#if CONFIG_TX64X64
// 32x128 128x32
...
...
av1/common/reconintra.c
View file @
dd1acdfc
...
...
@@ -671,7 +671,9 @@ static void av1_init_intra_predictors_internal(void) {
p[TX_16X32] = aom_##type##_predictor_16x32; \
p[TX_32X16] = aom_##type##_predictor_32x16; \
p[TX_32X64] = aom_##type##_predictor_32x64; \
p[TX_64X32] = aom_##type##_predictor_64x32;
p[TX_64X32] = aom_##type##_predictor_64x32; \
p[TX_4X16] = aom_##type##_predictor_4x16; \
p[TX_16X4] = aom_##type##_predictor_16x4;
#else
#define INIT_RECTANGULAR(p, type) \
p[TX_4X8] = aom_##type##_predictor_4x8; \
...
...
@@ -679,7 +681,9 @@ static void av1_init_intra_predictors_internal(void) {
p[TX_8X16] = aom_##type##_predictor_8x16; \
p[TX_16X8] = aom_##type##_predictor_16x8; \
p[TX_16X32] = aom_##type##_predictor_16x32; \
p[TX_32X16] = aom_##type##_predictor_32x16;
p[TX_32X16] = aom_##type##_predictor_32x16; \
p[TX_4X16] = aom_##type##_predictor_4x16; \
p[TX_16X4] = aom_##type##_predictor_16x4;
#endif // CONFIG_TX64X64
#if CONFIG_TX64X64
...
...
@@ -2638,6 +2642,7 @@ static void predict_intra_block_helper(const AV1_COMMON *cm,
return
;
}
#endif
build_intra_predictors
(
xd
,
ref
,
ref_stride
,
dst
,
dst_stride
,
mode
,
tx_size
,
have_top
?
AOMMIN
(
txwpx
,
xr
+
txwpx
)
:
0
,
have_top_right
?
AOMMIN
(
txwpx
,
xr
)
:
0
,
...
...
Write
Preview
Markdown
is supported
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