Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
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
2fa6e1ce
Commit
2fa6e1ce
authored
Sep 11, 2017
by
Rupert Swarbrick
Browse files
Add 32x128/128x32 block sizes
Change-Id: Ieb28f40d85e4db4af33648c32c406dd2931ceb89
parent
c01cc430
Changes
21
Hide whitespace changes
Inline
Side-by-side
aom_dsp/aom_dsp_rtcd_defs.pl
View file @
2fa6e1ce
...
...
@@ -47,6 +47,10 @@ if (aom_config("CONFIG_EXT_PARTITION_TYPES") eq "yes") {
push
@block_sizes
,
[
32
,
8
];
push
@block_sizes
,
[
16
,
64
];
push
@block_sizes
,
[
64
,
16
];
if
(
aom_config
("
CONFIG_EXT_PARTITION
")
eq
"
yes
")
{
push
@block_sizes
,
[
32
,
128
];
push
@block_sizes
,
[
128
,
32
];
}
}
@tx_dims
=
(
2
,
4
,
8
,
16
,
32
);
...
...
@@ -820,14 +824,18 @@ if (aom_config("CONFIG_AV1_ENCODER") eq "yes") {
foreach
(
@block_sizes
)
{
(
$w
,
$h
)
=
@$_
;
add_proto
qw/unsigned int/
,
"
aom_obmc_sad
${w}
x
${h}
",
"
const uint8_t *pre, int pre_stride, const int32_t *wsrc, const int32_t *mask
";
specialize
"
aom_obmc_sad
${w}
x
${h}
",
qw/sse4_1/
;
if
(
!
((
$w
==
128
&&
$h
==
32
)
||
(
$w
==
32
&&
$h
==
128
)))
{
specialize
"
aom_obmc_sad
${w}
x
${h}
",
qw/sse4_1/
;
}
}
if
(
aom_config
("
CONFIG_HIGHBITDEPTH
")
eq
"
yes
")
{
foreach
(
@block_sizes
)
{
(
$w
,
$h
)
=
@$_
;
add_proto
qw/unsigned int/
,
"
aom_highbd_obmc_sad
${w}
x
${h}
",
"
const uint8_t *pre, int pre_stride, const int32_t *wsrc, const int32_t *mask
";
specialize
"
aom_highbd_obmc_sad
${w}
x
${h}
",
qw/sse4_1/
;
if
(
!
((
$w
==
128
&&
$h
==
32
)
||
(
$w
==
32
&&
$h
==
128
)))
{
specialize
"
aom_highbd_obmc_sad
${w}
x
${h}
",
qw/sse4_1/
;
}
}
}
}
...
...
aom_dsp/sad.c
View file @
2fa6e1ce
...
...
@@ -167,11 +167,15 @@ sadMxN(16, 64)
sadMxNx4D
(
16
,
64
)
sadMxN
(
64
,
16
)
sadMxNx4D
(
64
,
16
)
sadMxN
(
32
,
128
)
sadMxNx4D
(
32
,
128
)
sadMxN
(
128
,
32
)
sadMxNx4D
(
128
,
32
)
#endif
/* clang-format on */
#if CONFIG_HIGHBITDEPTH
static
INLINE
static
INLINE
unsigned
int
highbd_sad
(
const
uint8_t
*
a8
,
int
a_stride
,
const
uint8_t
*
b8
,
int
b_stride
,
int
width
,
int
height
)
{
int
y
,
x
;
...
...
@@ -336,12 +340,16 @@ highbd_sadMxN(16, 64)
highbd_sadMxNx4D
(
16
,
64
)
highbd_sadMxN
(
64
,
16
)
highbd_sadMxNx4D
(
64
,
16
)
highbd_sadMxN
(
32
,
128
)
highbd_sadMxNx4D
(
32
,
128
)
highbd_sadMxN
(
128
,
32
)
highbd_sadMxNx4D
(
128
,
32
)
#endif
/* clang-format on */
#endif // CONFIG_HIGHBITDEPTH
#if CONFIG_AV1 && CONFIG_EXT_INTER
static
INLINE
static
INLINE
unsigned
int
masked_sad
(
const
uint8_t
*
src
,
int
src_stride
,
const
uint8_t
*
a
,
int
a_stride
,
const
uint8_t
*
b
,
int
b_stride
,
const
uint8_t
*
m
,
int
m_stride
,
...
...
@@ -405,11 +413,13 @@ MASKSADMxN(8, 32)
MASKSADMxN
(
32
,
8
)
MASKSADMxN
(
16
,
64
)
MASKSADMxN
(
64
,
16
)
MASKSADMxN
(
32
,
128
)
MASKSADMxN
(
128
,
32
)
#endif
/* clang-format on */
#if CONFIG_HIGHBITDEPTH
static
INLINE
static
INLINE
unsigned
int
highbd_masked_sad
(
const
uint8_t
*
src8
,
int
src_stride
,
const
uint8_t
*
a8
,
int
a_stride
,
const
uint8_t
*
b8
,
int
b_stride
,
...
...
@@ -476,6 +486,8 @@ HIGHBD_MASKSADMXN(8, 32)
HIGHBD_MASKSADMXN
(
32
,
8
)
HIGHBD_MASKSADMXN
(
16
,
64
)
HIGHBD_MASKSADMXN
(
64
,
16
)
HIGHBD_MASKSADMXN
(
32
,
128
)
HIGHBD_MASKSADMXN
(
128
,
32
)
#endif
#endif // CONFIG_HIGHBITDEPTH
#endif // CONFIG_AV1 && CONFIG_EXT_INTER
...
...
@@ -536,11 +548,13 @@ OBMCSADMxN(8, 32)
OBMCSADMxN
(
32
,
8
)
OBMCSADMxN
(
16
,
64
)
OBMCSADMxN
(
64
,
16
)
OBMCSADMxN
(
32
,
128
)
OBMCSADMxN
(
128
,
32
)
#endif
/* clang-format on */
#if CONFIG_HIGHBITDEPTH
static
INLINE
static
INLINE
unsigned
int
highbd_obmc_sad
(
const
uint8_t
*
pre8
,
int
pre_stride
,
const
int32_t
*
wsrc
,
const
int32_t
*
mask
,
int
width
,
int
height
)
{
...
...
@@ -594,6 +608,8 @@ HIGHBD_OBMCSADMXN(8, 32)
HIGHBD_OBMCSADMXN
(
32
,
8
)
HIGHBD_OBMCSADMXN
(
16
,
64
)
HIGHBD_OBMCSADMXN
(
64
,
16
)
HIGHBD_OBMCSADMXN
(
32
,
128
)
HIGHBD_OBMCSADMXN
(
128
,
32
)
#endif
/* clang-format on */
#endif // CONFIG_HIGHBITDEPTH
...
...
aom_dsp/variance.c
View file @
2fa6e1ce
...
...
@@ -258,7 +258,11 @@ VARIANCES(8, 32)
VARIANCES
(
32
,
8
)
VARIANCES
(
16
,
64
)
VARIANCES
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
VARIANCES
(
32
,
128
)
VARIANCES
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
GET_VAR
(
16
,
16
)
GET_VAR
(
8
,
8
)
...
...
@@ -665,7 +669,11 @@ HIGHBD_VARIANCES(8, 32)
HIGHBD_VARIANCES
(
32
,
8
)
HIGHBD_VARIANCES
(
16
,
64
)
HIGHBD_VARIANCES
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
HIGHBD_VARIANCES
(
32
,
128
)
HIGHBD_VARIANCES
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
HIGHBD_GET_VAR
(
8
)
HIGHBD_GET_VAR
(
16
)
...
...
@@ -854,7 +862,11 @@ MASK_SUBPIX_VAR(8, 32)
MASK_SUBPIX_VAR
(
32
,
8
)
MASK_SUBPIX_VAR
(
16
,
64
)
MASK_SUBPIX_VAR
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
MASK_SUBPIX_VAR
(
32
,
128
)
MASK_SUBPIX_VAR
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
#if CONFIG_HIGHBITDEPTH
void
aom_highbd_comp_mask_pred_c
(
uint16_t
*
comp_pred
,
const
uint8_t
*
pred8
,
...
...
@@ -993,7 +1005,11 @@ HIGHBD_MASK_SUBPIX_VAR(8, 32)
HIGHBD_MASK_SUBPIX_VAR
(
32
,
8
)
HIGHBD_MASK_SUBPIX_VAR
(
16
,
64
)
HIGHBD_MASK_SUBPIX_VAR
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
HIGHBD_MASK_SUBPIX_VAR
(
32
,
128
)
HIGHBD_MASK_SUBPIX_VAR
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
#endif // CONFIG_HIGHBITDEPTH
#endif // CONFIG_AV1 && CONFIG_EXT_INTER
...
...
@@ -1106,7 +1122,13 @@ OBMC_VAR(16, 64)
OBMC_SUBPIX_VAR
(
16
,
64
)
OBMC_VAR
(
64
,
16
)
OBMC_SUBPIX_VAR
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
OBMC_VAR
(
32
,
128
)
OBMC_SUBPIX_VAR
(
32
,
128
)
OBMC_VAR
(
128
,
32
)
OBMC_SUBPIX_VAR
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
#if CONFIG_HIGHBITDEPTH
static
INLINE
void
highbd_obmc_variance64
(
const
uint8_t
*
pre8
,
int
pre_stride
,
...
...
@@ -1303,6 +1325,12 @@ HIGHBD_OBMC_VAR(16, 64)
HIGHBD_OBMC_SUBPIX_VAR
(
16
,
64
)
HIGHBD_OBMC_VAR
(
64
,
16
)
HIGHBD_OBMC_SUBPIX_VAR
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
HIGHBD_OBMC_VAR
(
32
,
128
)
HIGHBD_OBMC_SUBPIX_VAR
(
32
,
128
)
HIGHBD_OBMC_VAR
(
128
,
32
)
HIGHBD_OBMC_SUBPIX_VAR
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
#endif // CONFIG_HIGHBITDEPTH
#endif // CONFIG_AV1 && CONFIG_MOTION_VAR
aom_dsp/x86/highbd_subtract_sse2.c
View file @
2fa6e1ce
...
...
@@ -215,6 +215,10 @@ SUBTRACT_FUN(8x32) { STACK_V(16, subtract_8x16); }
SUBTRACT_FUN
(
32
x8
)
{
STACK_H
(
16
,
subtract_16x8
);
}
SUBTRACT_FUN
(
16
x64
)
{
STACK_V
(
32
,
subtract_16x32
);
}
SUBTRACT_FUN
(
64
x16
)
{
STACK_H
(
32
,
subtract_32x16
);
}
#if CONFIG_EXT_PARTITION
SUBTRACT_FUN
(
32
x128
)
{
STACK_V
(
64
,
subtract_32x64
);
}
SUBTRACT_FUN
(
128
x32
)
{
STACK_H
(
64
,
subtract_64x32
);
}
#endif
static
SubtractWxHFuncType
getSubtractFunc
(
int
rows
,
int
cols
)
{
if
(
rows
==
4
)
{
...
...
@@ -240,6 +244,9 @@ static SubtractWxHFuncType getSubtractFunc(int rows, int cols) {
if
(
cols
==
16
)
return
subtract_16x32
;
if
(
cols
==
32
)
return
subtract_32x32
;
if
(
cols
==
64
)
return
subtract_64x32
;
#if CONFIG_EXT_PARTITION
if
(
cols
==
128
)
return
subtract_128x32
;
#endif // CONFIG_EXT_PARTITION
}
if
(
rows
==
64
)
{
if
(
cols
==
16
)
return
subtract_16x64
;
...
...
@@ -251,6 +258,7 @@ static SubtractWxHFuncType getSubtractFunc(int rows, int cols) {
}
#if CONFIG_EXT_PARTITION
if
(
rows
==
128
)
{
if
(
cols
==
32
)
return
subtract_32x128
;
if
(
cols
==
64
)
return
subtract_64x128
;
if
(
cols
==
128
)
return
subtract_128x128
;
}
...
...
aom_dsp/x86/masked_sad_intrin_ssse3.c
View file @
2fa6e1ce
...
...
@@ -100,7 +100,11 @@ MASKSAD8XN_SSSE3(32)
MASKSADMXN_SSSE3
(
32
,
8
)
MASKSADMXN_SSSE3
(
16
,
64
)
MASKSADMXN_SSSE3
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
MASKSADMXN_SSSE3
(
32
,
128
)
MASKSADMXN_SSSE3
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
static
INLINE
unsigned
int
masked_sad_ssse3
(
const
uint8_t
*
src_ptr
,
int
src_stride
,
...
...
@@ -298,7 +302,11 @@ HIGHBD_MASKSADMXN_SSSE3(8, 32)
HIGHBD_MASKSADMXN_SSSE3
(
32
,
8
)
HIGHBD_MASKSADMXN_SSSE3
(
16
,
64
)
HIGHBD_MASKSADMXN_SSSE3
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
HIGHBD_MASKSADMXN_SSSE3
(
32
,
128
)
HIGHBD_MASKSADMXN_SSSE3
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
static
INLINE
unsigned
int
highbd_masked_sad_ssse3
(
const
uint8_t
*
src8
,
int
src_stride
,
const
uint8_t
*
a8
,
int
a_stride
,
...
...
aom_dsp/x86/masked_variance_intrin_ssse3.c
View file @
2fa6e1ce
...
...
@@ -133,7 +133,11 @@ MASK_SUBPIX_VAR8XH_SSSE3(32)
MASK_SUBPIX_VAR_SSSE3
(
32
,
8
)
MASK_SUBPIX_VAR_SSSE3
(
64
,
16
)
MASK_SUBPIX_VAR_SSSE3
(
16
,
64
)
#endif
#if CONFIG_EXT_PARTITION
MASK_SUBPIX_VAR_SSSE3
(
128
,
32
)
MASK_SUBPIX_VAR_SSSE3
(
32
,
128
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
static
INLINE
__m128i
filter_block
(
const
__m128i
a
,
const
__m128i
b
,
const
__m128i
filter
)
{
...
...
@@ -716,6 +720,10 @@ HIGHBD_MASK_SUBPIX_VAR_SSSE3(8, 32)
HIGHBD_MASK_SUBPIX_VAR_SSSE3
(
32
,
8
)
HIGHBD_MASK_SUBPIX_VAR_SSSE3
(
16
,
64
)
HIGHBD_MASK_SUBPIX_VAR_SSSE3
(
64
,
16
)
#if CONFIG_EXT_PARTITION
HIGHBD_MASK_SUBPIX_VAR_SSSE3
(
32
,
128
)
HIGHBD_MASK_SUBPIX_VAR_SSSE3
(
128
,
32
)
#endif
#endif
static
INLINE
__m128i
highbd_filter_block
(
const
__m128i
a
,
const
__m128i
b
,
...
...
aom_dsp/x86/obmc_variance_sse4.c
View file @
2fa6e1ce
...
...
@@ -153,7 +153,11 @@ OBMCVARWXH(8, 32)
OBMCVARWXH
(
32
,
8
)
OBMCVARWXH
(
16
,
64
)
OBMCVARWXH
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
OBMCVARWXH
(
32
,
128
)
OBMCVARWXH
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
////////////////////////////////////////////////////////////////////////////////
// High bit-depth
...
...
@@ -368,5 +372,9 @@ HBD_OBMCVARWXH(8, 32)
HBD_OBMCVARWXH
(
32
,
8
)
HBD_OBMCVARWXH
(
16
,
64
)
HBD_OBMCVARWXH
(
64
,
16
)
#endif
#if CONFIG_EXT_PARTITION
HBD_OBMCVARWXH
(
32
,
128
)
HBD_OBMCVARWXH
(
128
,
32
)
#endif // CONFIG_EXT_PARTITION
#endif // CONFIG_EXT_PARTITION_TYPES
#endif // CONFIG_HIGHBITDEPTH
av1/common/av1_loopfilter.c
View file @
2fa6e1ce
...
...
@@ -2751,7 +2751,11 @@ static const uint32_t av1_prediction_masks[NUM_EDGE_DIRS][BLOCK_SIZES_ALL] = {
8
-
1
,
// BLOCK_8X32,
32
-
1
,
// BLOCK_32X8,
16
-
1
,
// BLOCK_16X64,
64
-
1
// BLOCK_64X16
64
-
1
,
// BLOCK_64X16
#if CONFIG_EXT_PARTITION
32
-
1
,
// BLOCK_32X128
128
-
1
,
// BLOCK_128X32
#endif // CONFIG_EXT_PARTITION
},
// mask for horizontal edges filtering
{
...
...
@@ -2783,7 +2787,11 @@ static const uint32_t av1_prediction_masks[NUM_EDGE_DIRS][BLOCK_SIZES_ALL] = {
32
-
1
,
// BLOCK_8X32,
8
-
1
,
// BLOCK_32X8,
64
-
1
,
// BLOCK_16X64,
16
-
1
// BLOCK_64X16
16
-
1
,
// BLOCK_64X16
#if CONFIG_EXT_PARTITION
128
-
1
,
// BLOCK_32X128
32
-
1
,
// BLOCK_128X32
#endif // CONFIG_EXT_PARTITION
},
};
...
...
av1/common/blockd.h
View file @
2fa6e1ce
...
...
@@ -1087,6 +1087,10 @@ static INLINE int is_rect_tx_allowed_bsize(BLOCK_SIZE bsize) {
0
,
// BLOCK_32X8
0
,
// BLOCK_16X64
0
,
// BLOCK_64X16
#if CONFIG_EXT_PARTITION
0
,
// BLOCK_32X128
0
,
// BLOCK_128X32
#endif // CONFIG_EXT_PARTITION
};
return
LUT
[
bsize
];
...
...
@@ -1132,6 +1136,10 @@ static INLINE int is_quarter_tx_allowed_bsize(BLOCK_SIZE bsize) {
0
,
// BLOCK_32X8
0
,
// BLOCK_16X64
0
,
// BLOCK_64X16
#if CONFIG_EXT_PARTITION
0
,
// BLOCK_32X128
0
,
// BLOCK_128X32
#endif // CONFIG_EXT_PARTITION
};
return
LUT_QTTX
[
bsize
];
...
...
av1/common/common_data.h
View file @
2fa6e1ce
...
...
@@ -29,41 +29,93 @@ extern "C" {
// Log 2 conversion lookup tables for block width and height
static
const
uint8_t
b_width_log2_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
0
,
0
,
0
,
#endif
0
,
0
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
IF_EXT_PARTITION
(
4
,
5
,
5
)
0
,
2
,
1
,
3
,
2
,
4
0
,
0
,
0
,
#endif
0
,
0
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
IF_EXT_PARTITION
(
4
,
5
,
5
)
0
,
2
,
1
,
3
,
2
,
4
,
IF_EXT_PARTITION
(
3
,
5
)
};
static
const
uint8_t
b_height_log2_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
0
,
0
,
0
,
#endif
0
,
1
,
0
,
1
,
2
,
1
,
2
,
3
,
2
,
3
,
4
,
3
,
4
,
IF_EXT_PARTITION
(
5
,
4
,
5
)
2
,
0
,
3
,
1
,
4
,
2
0
,
0
,
0
,
#endif
0
,
1
,
0
,
1
,
2
,
1
,
2
,
3
,
2
,
3
,
4
,
3
,
4
,
IF_EXT_PARTITION
(
5
,
4
,
5
)
2
,
0
,
3
,
1
,
4
,
2
,
IF_EXT_PARTITION
(
5
,
3
)
};
// Log 2 conversion lookup tables for modeinfo width and height
static
const
uint8_t
mi_width_log2_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CB4X4
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
0
,
0
,
0
,
#endif
0
,
0
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
IF_EXT_PARTITION
(
4
,
5
,
5
)
0
,
2
,
1
,
3
,
2
,
4
0
,
0
,
0
,
#endif
0
,
0
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
IF_EXT_PARTITION
(
4
,
5
,
5
)
0
,
2
,
1
,
3
,
2
,
4
,
IF_EXT_PARTITION
(
3
,
5
)
#else // CONFIG_CB4X4
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
IF_EXT_PARTITION
(
3
,
4
,
4
)
0
,
1
,
0
,
2
,
1
,
3
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
IF_EXT_PARTITION
(
3
,
4
,
4
)
0
,
1
,
0
,
2
,
1
,
3
,
IF_EXT_PARTITION
(
2
,
4
)
#endif
};
static
const
uint8_t
mi_height_log2_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CB4X4
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
0
,
0
,
0
,
#endif
0
,
1
,
0
,
1
,
2
,
1
,
2
,
3
,
2
,
3
,
4
,
3
,
4
,
IF_EXT_PARTITION
(
5
,
4
,
5
)
2
,
0
,
3
,
1
,
4
,
2
0
,
0
,
0
,
#endif
0
,
1
,
0
,
1
,
2
,
1
,
2
,
3
,
2
,
3
,
4
,
3
,
4
,
IF_EXT_PARTITION
(
5
,
4
,
5
)
2
,
0
,
3
,
1
,
4
,
2
,
IF_EXT_PARTITION
(
5
,
3
)
#else // CONFIG_CB4X4
0
,
0
,
0
,
0
,
1
,
0
,
1
,
2
,
1
,
2
,
3
,
2
,
3
,
IF_EXT_PARTITION
(
4
,
3
,
4
)
1
,
0
,
2
,
0
,
3
,
1
0
,
0
,
0
,
0
,
1
,
0
,
1
,
2
,
1
,
2
,
3
,
2
,
3
,
IF_EXT_PARTITION
(
4
,
3
,
4
)
1
,
0
,
2
,
0
,
3
,
1
,
IF_EXT_PARTITION
(
2
,
4
)
#endif
};
...
...
@@ -74,10 +126,10 @@ static const uint8_t mi_size_wide[BLOCK_SIZES_ALL] = {
1
,
1
,
1
,
#endif
1
,
1
,
2
,
2
,
2
,
4
,
4
,
4
,
8
,
8
,
8
,
16
,
16
,
IF_EXT_PARTITION
(
16
,
32
,
32
)
1
,
4
,
2
,
8
,
4
,
16
IF_EXT_PARTITION
(
16
,
32
,
32
)
1
,
4
,
2
,
8
,
4
,
16
,
IF_EXT_PARTITION
(
8
,
32
)
#else // CONFIG_CB4X4
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
4
,
4
,
4
,
8
,
8
,
IF_EXT_PARTITION
(
8
,
16
,
16
)
1
,
2
,
1
,
4
,
2
,
8
2
,
8
,
IF_EXT_PARTITION
(
4
,
16
)
#endif
};
static
const
uint8_t
mi_size_high
[
BLOCK_SIZES_ALL
]
=
{
...
...
@@ -86,10 +138,10 @@ static const uint8_t mi_size_high[BLOCK_SIZES_ALL] = {
1
,
1
,
1
,
#endif
1
,
2
,
1
,
2
,
4
,
2
,
4
,
8
,
4
,
8
,
16
,
8
,
16
,
IF_EXT_PARTITION
(
32
,
16
,
32
)
4
,
1
,
8
,
2
,
16
,
4
IF_EXT_PARTITION
(
32
,
16
,
32
)
4
,
1
,
8
,
2
,
16
,
4
,
IF_EXT_PARTITION
(
32
,
8
)
#else // CONFIG_CB4X4
1
,
1
,
1
,
1
,
2
,
1
,
2
,
4
,
2
,
4
,
8
,
4
,
8
,
IF_EXT_PARTITION
(
16
,
8
,
16
)
2
,
1
,
4
,
1
,
8
,
2
8
,
2
,
IF_EXT_PARTITION
(
16
,
4
)
#endif
};
/* clang-format on */
...
...
@@ -97,80 +149,168 @@ static const uint8_t mi_size_high[BLOCK_SIZES_ALL] = {
// Width/height lookup tables in units of various block sizes
static
const
uint8_t
block_size_wide
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
2
,
2
,
4
,
2
,
2
,
4
,
#endif
4
,
4
,
8
,
8
,
8
,
16
,
16
,
16
,
32
,
32
,
32
,
64
,
64
,
IF_EXT_PARTITION
(
64
,
128
,
128
)
4
,
16
,
8
,
32
,
16
,
64
4
,
4
,
8
,
8
,
8
,
16
,
16
,
16
,
32
,
32
,
32
,
64
,
64
,
IF_EXT_PARTITION
(
64
,
128
,
128
)
4
,
16
,
8
,
32
,
16
,
64
,
IF_EXT_PARTITION
(
32
,
128
)
};
static
const
uint8_t
block_size_high
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
2
,
4
,
2
,
2
,
4
,
2
,
#endif
4
,
8
,
4
,
8
,
16
,
8
,
16
,
32
,
16
,
32
,
64
,
32
,
64
,
IF_EXT_PARTITION
(
128
,
64
,
128
)
16
,
4
,
32
,
8
,
64
,
16
4
,
8
,
4
,
8
,
16
,
8
,
16
,
32
,
16
,
32
,
64
,
32
,
64
,
IF_EXT_PARTITION
(
128
,
64
,
128
)
16
,
4
,
32
,
8
,
64
,
16
,
IF_EXT_PARTITION
(
128
,
32
)
};
static
const
uint8_t
num_4x4_blocks_wide_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
1
,
1
,
1
,
1
,
1
,
1
,
#endif
1
,
1
,
2
,
2
,
2
,
4
,
4
,
4
,
8
,
8
,
8
,
16
,
16
,
IF_EXT_PARTITION
(
16
,
32
,
32
)
1
,
4
,
2
,
8
,
4
,
16
1
,
1
,
2
,
2
,
2
,
4
,
4
,
4
,
8
,
8
,
8
,
16
,
16
,
IF_EXT_PARTITION
(
16
,
32
,
32
)
1
,
4
,
2
,
8
,
4
,
16
,
IF_EXT_PARTITION
(
8
,
32
)
};
static
const
uint8_t
num_4x4_blocks_high_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
1
,
1
,
1
,
1
,
1
,
1
,
#endif
1
,
2
,
1
,
2
,
4
,
2
,
4
,
8
,
4
,
8
,
16
,
8
,
16
,
IF_EXT_PARTITION
(
32
,
16
,
32
)
4
,
1
,
8
,
2
,
16
,
4
1
,
2
,
1
,
2
,
4
,
2
,
4
,
8
,
4
,
8
,
16
,
8
,
16
,
IF_EXT_PARTITION
(
32
,
16
,
32
)
4
,
1
,
8
,
2
,
16
,
4
,
IF_EXT_PARTITION
(
32
,
8
)
};
static
const
uint8_t
num_8x8_blocks_wide_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
1
,
1
,
1
,
1
,
1
,
1
,
#endif
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
4
,
4
,
4
,
8
,
8
,
IF_EXT_PARTITION
(
8
,
16
,
16
)
1
,
2
,
1
,
4
,
2
,
8
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
4
,
4
,
4
,
8
,
8
,
IF_EXT_PARTITION
(
8
,
16
,
16
)
1
,
2
,
1
,
4
,
2
,
8
,
IF_EXT_PARTITION
(
4
,
16
)
};
static
const
uint8_t
num_8x8_blocks_high_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
1
,
1
,
1
,
1
,
1
,
1
,
#endif
1
,
1
,
1
,
1
,
2
,
1
,
2
,
4
,
2
,
4
,
8
,
4
,
8
,
IF_EXT_PARTITION
(
16
,
8
,
16
)
2
,
1
,
4
,
1
,
8
,
2
1
,
1
,
1
,
1
,
2
,
1
,
2
,
4
,
2
,
4
,
8
,
4
,
8
,
IF_EXT_PARTITION
(
16
,
8
,
16
)
2
,
1
,
4
,
1
,
8
,
2
,
IF_EXT_PARTITION
(
16
,
4
)
};
static
const
uint8_t
num_16x16_blocks_wide_lookup
[
BLOCK_SIZES_ALL
]
=
{
#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
1
,
1
,
1
,
1
,
1
,
1
,
#endif
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
4
,
4
,
IF_EXT_PARTITION
(
4
,
8
,
8
)
1
,