Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
0cf54d40
Commit
0cf54d40
authored
Oct 16, 2017
by
Sebastien Alaiwan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove abandonned SUPERTX experiment
Change-Id: I9d3f0380865790d8adcb85f03305b193bc1949d7
parent
365e644a
Changes
28
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
375 additions
and
4906 deletions
+375
-4906
av1/common/av1_loopfilter.c
av1/common/av1_loopfilter.c
+80
-155
av1/common/blockd.h
av1/common/blockd.h
+0
-21
av1/common/common_data.h
av1/common/common_data.h
+0
-27
av1/common/entropymode.c
av1/common/entropymode.c
+0
-31
av1/common/entropymode.h
av1/common/entropymode.h
+0
-7
av1/common/enums.h
av1/common/enums.h
+0
-5
av1/common/onyxc_int.h
av1/common/onyxc_int.h
+0
-14
av1/common/reconinter.c
av1/common/reconinter.c
+25
-383
av1/common/reconinter.h
av1/common/reconinter.h
+6
-29
av1/decoder/decodeframe.c
av1/decoder/decodeframe.c
+8
-1101
av1/decoder/decodemv.c
av1/decoder/decodemv.c
+79
-150
av1/decoder/decodemv.h
av1/decoder/decodemv.h
+0
-6
av1/encoder/bitstream.c
av1/encoder/bitstream.c
+15
-234
av1/encoder/bitstream.h
av1/encoder/bitstream.h
+0
-3
av1/encoder/context_tree.c
av1/encoder/context_tree.c
+0
-25
av1/encoder/context_tree.h
av1/encoder/context_tree.h
+0
-11
av1/encoder/encodeframe.c
av1/encoder/encodeframe.c
+148
-2442
av1/encoder/encodemb.c
av1/encoder/encodemb.c
+0
-28
av1/encoder/encodemb.h
av1/encoder/encodemb.h
+0
-3
av1/encoder/firstpass.c
av1/encoder/firstpass.c
+0
-3
av1/encoder/rdopt.c
av1/encoder/rdopt.c
+12
-125
av1/encoder/rdopt.h
av1/encoder/rdopt.h
+2
-21
av1/encoder/tokenize.c
av1/encoder/tokenize.c
+0
-49
av1/encoder/tokenize.h
av1/encoder/tokenize.h
+0
-5
build/cmake/aom_config_defaults.cmake
build/cmake/aom_config_defaults.cmake
+0
-1
build/cmake/aom_experiment_deps.cmake
build/cmake/aom_experiment_deps.cmake
+0
-7
configure
configure
+0
-7
tools/aom_entropy_optimizer.c
tools/aom_entropy_optimizer.c
+0
-13
No files found.
av1/common/av1_loopfilter.c
View file @
0cf54d40
...
...
@@ -640,15 +640,7 @@ static uint8_t get_filter_level(const AV1_COMMON *cm,
return
cm
->
mi
[
mi_row
*
cm
->
mi_stride
+
mi_col
].
mbmi
.
filt_lvl
;
#endif
#if CONFIG_SUPERTX
const
int
segment_id
=
AOMMIN
(
mbmi
->
segment_id
,
mbmi
->
segment_id_supertx
);
assert
(
IMPLIES
(
supertx_enabled
(
mbmi
),
mbmi
->
segment_id_supertx
!=
MAX_SEGMENTS
));
assert
(
IMPLIES
(
supertx_enabled
(
mbmi
),
mbmi
->
segment_id_supertx
<=
mbmi
->
segment_id
));
#else
const
int
segment_id
=
mbmi
->
segment_id
;
#endif // CONFIG_SUPERTX
if
(
cm
->
delta_lf_present_flag
)
{
#if CONFIG_LOOPFILTER_LEVEL
int
delta_lf
;
...
...
@@ -706,15 +698,7 @@ static uint8_t get_filter_level(const loop_filter_info_n *lfi_n,
return
mbmi
->
filt_lvl
;
#endif
#if CONFIG_SUPERTX
const
int
segment_id
=
AOMMIN
(
mbmi
->
segment_id
,
mbmi
->
segment_id_supertx
);
assert
(
IMPLIES
(
supertx_enabled
(
mbmi
),
mbmi
->
segment_id_supertx
!=
MAX_SEGMENTS
));
assert
(
IMPLIES
(
supertx_enabled
(
mbmi
),
mbmi
->
segment_id_supertx
<=
mbmi
->
segment_id
));
#else
const
int
segment_id
=
mbmi
->
segment_id
;
#endif // CONFIG_SUPERTX
return
lfi_n
->
lvl
[
segment_id
][
mbmi
->
ref_frame
[
0
]][
mode_lf_lut
[
mbmi
->
mode
]];
}
#endif
...
...
@@ -1619,20 +1603,12 @@ static void build_masks(AV1_COMMON *const cm,
static
void
build_y_mask
(
AV1_COMMON
*
const
cm
,
const
loop_filter_info_n
*
const
lfi_n
,
const
MODE_INFO
*
mi
,
const
int
shift_y
,
#if CONFIG_SUPERTX
int
supertx_enabled
,
#endif // CONFIG_SUPERTX
LOOP_FILTER_MASK
*
lfm
)
{
const
MB_MODE_INFO
*
mbmi
=
&
mi
->
mbmi
;
const
TX_SIZE
tx_size_y
=
txsize_sqr_map
[
mbmi
->
tx_size
];
const
TX_SIZE
tx_size_y_left
=
txsize_horz_map
[
mbmi
->
tx_size
];
const
TX_SIZE
tx_size_y_above
=
txsize_vert_map
[
mbmi
->
tx_size
];
#if CONFIG_SUPERTX
const
BLOCK_SIZE
block_size
=
supertx_enabled
?
(
BLOCK_SIZE
)(
3
*
tx_size_y
)
:
mbmi
->
sb_type
;
#else
const
BLOCK_SIZE
block_size
=
mbmi
->
sb_type
;
#endif
#if CONFIG_EXT_DELTA_Q
#if CONFIG_LOOPFILTER_LEVEL
const
int
filter_level
=
get_filter_level
(
cm
,
lfi_n
,
0
,
0
,
mbmi
);
...
...
@@ -1751,151 +1727,100 @@ void av1_setup_mask(AV1_COMMON *const cm, const int mi_row, const int mi_col,
// through the recursive loop structure multiple times.
switch
(
mip
[
0
]
->
mbmi
.
sb_type
)
{
case
BLOCK_64X64
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
0
,
0
,
lfm
);
break
;
case
BLOCK_64X32
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
0
,
0
,
lfm
);
#if CONFIG_SUPERTX && CONFIG_TX64X64
if
(
supertx_enabled
(
&
mip
[
0
]
->
mbmi
))
break
;
#endif // CONFIG_SUPERTX && CONFIG_TX64X64
case
BLOCK_64X32
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
0
,
0
,
lfm
);
mip2
=
mip
+
mode_info_stride
*
4
;
if
(
4
>=
max_rows
)
break
;
build_masks
(
cm
,
lfi_n
,
mip2
[
0
],
32
,
8
,
lfm
);
break
;
case
BLOCK_32X64
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
0
,
0
,
lfm
);
#if CONFIG_SUPERTX && CONFIG_TX64X64
if
(
supertx_enabled
(
&
mip
[
0
]
->
mbmi
))
break
;
#endif // CONFIG_SUPERTX && CONFIG_TX64X64
case
BLOCK_32X64
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
0
,
0
,
lfm
);
mip2
=
mip
+
4
;
if
(
4
>=
max_cols
)
break
;
build_masks
(
cm
,
lfi_n
,
mip2
[
0
],
4
,
2
,
lfm
);
break
;
default:
#if CONFIG_SUPERTX && CONFIG_TX64X64
if
(
mip
[
0
]
->
mbmi
.
tx_size
==
TX_64X64
)
{
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
0
,
0
,
lfm
);
}
else
{
#endif // CONFIG_SUPERTX && CONFIG_TX64X64
for
(
idx_32
=
0
;
idx_32
<
4
;
mip
+=
offset_32
[
idx_32
],
++
idx_32
)
{
const
int
shift_y_32
=
shift_32_y
[
idx_32
];
const
int
shift_uv_32
=
shift_32_uv
[
idx_32
];
const
int
mi_32_col_offset
=
((
idx_32
&
1
)
<<
2
);
const
int
mi_32_row_offset
=
((
idx_32
>>
1
)
<<
2
);
if
(
mi_32_col_offset
>=
max_cols
||
mi_32_row_offset
>=
max_rows
)
continue
;
switch
(
mip
[
0
]
->
mbmi
.
sb_type
)
{
case
BLOCK_32X32
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
break
;
case
BLOCK_32X16
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
#if CONFIG_SUPERTX
if
(
supertx_enabled
(
&
mip
[
0
]
->
mbmi
))
break
;
#endif
if
(
mi_32_row_offset
+
2
>=
max_rows
)
continue
;
mip2
=
mip
+
mode_info_stride
*
2
;
build_masks
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32
+
16
,
shift_uv_32
+
4
,
lfm
);
break
;
case
BLOCK_16X32
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
#if CONFIG_SUPERTX
if
(
supertx_enabled
(
&
mip
[
0
]
->
mbmi
))
break
;
#endif
if
(
mi_32_col_offset
+
2
>=
max_cols
)
continue
;
mip2
=
mip
+
2
;
build_masks
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32
+
2
,
shift_uv_32
+
1
,
lfm
);
break
;
default:
#if CONFIG_SUPERTX
if
(
mip
[
0
]
->
mbmi
.
tx_size
==
TX_32X32
)
{
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
break
;
}
#endif
for
(
idx_16
=
0
;
idx_16
<
4
;
mip
+=
offset_16
[
idx_16
],
++
idx_16
)
{
const
int
shift_y_32_16
=
shift_y_32
+
shift_16_y
[
idx_16
];
const
int
shift_uv_32_16
=
shift_uv_32
+
shift_16_uv
[
idx_16
];
const
int
mi_16_col_offset
=
mi_32_col_offset
+
((
idx_16
&
1
)
<<
1
);
const
int
mi_16_row_offset
=
mi_32_row_offset
+
((
idx_16
>>
1
)
<<
1
);
if
(
mi_16_col_offset
>=
max_cols
||
mi_16_row_offset
>=
max_rows
)
continue
;
switch
(
mip
[
0
]
->
mbmi
.
sb_type
)
{
case
BLOCK_16X16
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16
,
shift_uv_32_16
,
lfm
);
break
;
case
BLOCK_16X8
:
#if CONFIG_SUPERTX
if
(
supertx_enabled
(
&
mip
[
0
]
->
mbmi
))
break
;
#endif
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16
,
shift_uv_32_16
,
lfm
);
if
(
mi_16_row_offset
+
1
>=
max_rows
)
continue
;
mip2
=
mip
+
mode_info_stride
;
build_y_mask
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32_16
+
8
,
#if CONFIG_SUPERTX
0
,
#endif
lfm
);
break
;
case
BLOCK_8X16
:
#if CONFIG_SUPERTX
if
(
supertx_enabled
(
&
mip
[
0
]
->
mbmi
))
break
;
#endif
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16
,
shift_uv_32_16
,
lfm
);
if
(
mi_16_col_offset
+
1
>=
max_cols
)
continue
;
mip2
=
mip
+
1
;
build_y_mask
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32_16
+
1
,
#if CONFIG_SUPERTX
0
,
#endif
lfm
);
break
;
default:
{
const
int
shift_y_32_16_8_zero
=
shift_y_32_16
+
shift_8_y
[
0
];
#if CONFIG_SUPERTX
if
(
mip
[
0
]
->
mbmi
.
tx_size
==
TX_16X16
)
{
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16_8_zero
,
shift_uv_32_16
,
lfm
);
break
;
}
#endif
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16_8_zero
,
shift_uv_32_16
,
lfm
);
mip
+=
offset
[
0
];
for
(
idx_8
=
1
;
idx_8
<
4
;
mip
+=
offset
[
idx_8
],
++
idx_8
)
{
const
int
shift_y_32_16_8
=
shift_y_32_16
+
shift_8_y
[
idx_8
];
const
int
mi_8_col_offset
=
mi_16_col_offset
+
((
idx_8
&
1
));
const
int
mi_8_row_offset
=
mi_16_row_offset
+
((
idx_8
>>
1
));
if
(
mi_8_col_offset
>=
max_cols
||
mi_8_row_offset
>=
max_rows
)
continue
;
build_y_mask
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16_8
,
#if CONFIG_SUPERTX
supertx_enabled
(
&
mip
[
0
]
->
mbmi
),
#endif
lfm
);
}
break
;
for
(
idx_32
=
0
;
idx_32
<
4
;
mip
+=
offset_32
[
idx_32
],
++
idx_32
)
{
const
int
shift_y_32
=
shift_32_y
[
idx_32
];
const
int
shift_uv_32
=
shift_32_uv
[
idx_32
];
const
int
mi_32_col_offset
=
((
idx_32
&
1
)
<<
2
);
const
int
mi_32_row_offset
=
((
idx_32
>>
1
)
<<
2
);
if
(
mi_32_col_offset
>=
max_cols
||
mi_32_row_offset
>=
max_rows
)
continue
;
switch
(
mip
[
0
]
->
mbmi
.
sb_type
)
{
case
BLOCK_32X32
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
break
;
case
BLOCK_32X16
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
if
(
mi_32_row_offset
+
2
>=
max_rows
)
continue
;
mip2
=
mip
+
mode_info_stride
*
2
;
build_masks
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32
+
16
,
shift_uv_32
+
4
,
lfm
);
break
;
case
BLOCK_16X32
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32
,
shift_uv_32
,
lfm
);
if
(
mi_32_col_offset
+
2
>=
max_cols
)
continue
;
mip2
=
mip
+
2
;
build_masks
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32
+
2
,
shift_uv_32
+
1
,
lfm
);
break
;
default:
for
(
idx_16
=
0
;
idx_16
<
4
;
mip
+=
offset_16
[
idx_16
],
++
idx_16
)
{
const
int
shift_y_32_16
=
shift_y_32
+
shift_16_y
[
idx_16
];
const
int
shift_uv_32_16
=
shift_uv_32
+
shift_16_uv
[
idx_16
];
const
int
mi_16_col_offset
=
mi_32_col_offset
+
((
idx_16
&
1
)
<<
1
);
const
int
mi_16_row_offset
=
mi_32_row_offset
+
((
idx_16
>>
1
)
<<
1
);
if
(
mi_16_col_offset
>=
max_cols
||
mi_16_row_offset
>=
max_rows
)
continue
;
switch
(
mip
[
0
]
->
mbmi
.
sb_type
)
{
case
BLOCK_16X16
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16
,
shift_uv_32_16
,
lfm
);
break
;
case
BLOCK_16X8
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16
,
shift_uv_32_16
,
lfm
);
if
(
mi_16_row_offset
+
1
>=
max_rows
)
continue
;
mip2
=
mip
+
mode_info_stride
;
build_y_mask
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32_16
+
8
,
lfm
);
break
;
case
BLOCK_8X16
:
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16
,
shift_uv_32_16
,
lfm
);
if
(
mi_16_col_offset
+
1
>=
max_cols
)
continue
;
mip2
=
mip
+
1
;
build_y_mask
(
cm
,
lfi_n
,
mip2
[
0
],
shift_y_32_16
+
1
,
lfm
);
break
;
default:
{
const
int
shift_y_32_16_8_zero
=
shift_y_32_16
+
shift_8_y
[
0
];
build_masks
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16_8_zero
,
shift_uv_32_16
,
lfm
);
mip
+=
offset
[
0
];
for
(
idx_8
=
1
;
idx_8
<
4
;
mip
+=
offset
[
idx_8
],
++
idx_8
)
{
const
int
shift_y_32_16_8
=
shift_y_32_16
+
shift_8_y
[
idx_8
];
const
int
mi_8_col_offset
=
mi_16_col_offset
+
((
idx_8
&
1
));
const
int
mi_8_row_offset
=
mi_16_row_offset
+
((
idx_8
>>
1
));
if
(
mi_8_col_offset
>=
max_cols
||
mi_8_row_offset
>=
max_rows
)
continue
;
build_y_mask
(
cm
,
lfi_n
,
mip
[
0
],
shift_y_32_16_8
,
lfm
);
}
break
;
}
}
break
;
}
}
break
;
}
#if CONFIG_SUPERTX && CONFIG_TX64X64
}
#endif // CONFIG_SUPERTX && CONFIG_TX64X64
break
;
}
// The largest loopfilter we have is 16x16 so we use the 16x16 mask
...
...
av1/common/blockd.h
View file @
0cf54d40
...
...
@@ -360,10 +360,6 @@ typedef struct MB_MODE_INFO {
#endif
int8_t
skip
;
int8_t
segment_id
;
#if CONFIG_SUPERTX
// Minimum of all segment IDs under the current supertx block.
int8_t
segment_id_supertx
;
#endif // CONFIG_SUPERTX
int8_t
seg_id_predicted
;
// valid only when temporal_update is enabled
#if CONFIG_MRC_TX
...
...
@@ -759,9 +755,6 @@ typedef struct macroblockd {
TXFM_CONTEXT
left_txfm_context_buffer
[
2
*
MAX_MIB_SIZE
];
TX_SIZE
max_tx_size
;
#if CONFIG_SUPERTX
TX_SIZE
supertx_size
;
#endif
#endif
#if CONFIG_LOOP_RESTORATION
...
...
@@ -877,14 +870,6 @@ static const TX_TYPE intra_mode_to_tx_type_context[INTRA_MODES] = {
ADST_ADST
,
// PAETH
};
#if CONFIG_SUPERTX
static
INLINE
int
supertx_enabled
(
const
MB_MODE_INFO
*
mbmi
)
{
TX_SIZE
max_tx_size
=
txsize_sqr_map
[
mbmi
->
tx_size
];
return
tx_size_wide
[
max_tx_size
]
>
AOMMIN
(
block_size_wide
[
mbmi
->
sb_type
],
block_size_high
[
mbmi
->
sb_type
]);
}
#endif // CONFIG_SUPERTX
#define USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 1
#if CONFIG_RECT_TX
...
...
@@ -1387,12 +1372,6 @@ static INLINE TX_SIZE av1_get_uv_tx_size(const MB_MODE_INFO *mbmi,
assert
(
mbmi
->
tx_size
>
TX_2X2
);
#endif // CONFIG_CHROMA_2X2
#if CONFIG_SUPERTX
if
(
supertx_enabled
(
mbmi
))
return
uvsupertx_size_lookup
[
txsize_sqr_map
[
mbmi
->
tx_size
]]
[
pd
->
subsampling_x
][
pd
->
subsampling_y
];
#endif // CONFIG_SUPERTX
const
TX_SIZE
uv_txsize
=
uv_txsize_lookup
[
mbmi
->
sb_type
][
mbmi
->
tx_size
][
pd
->
subsampling_x
]
[
pd
->
subsampling_y
];
...
...
av1/common/common_data.h
View file @
0cf54d40
...
...
@@ -2119,33 +2119,6 @@ static const int intra_mode_context[INTRA_MODES] = {
};
#endif
#if CONFIG_SUPERTX
static
const
TX_SIZE
uvsupertx_size_lookup
[
TX_SIZES
][
2
][
2
]
=
{
// ss_x == 0 ss_x == 0 ss_x == 1 ss_x == 1
// ss_y == 0 ss_y == 1 ss_y == 0 ss_y == 1
#if CONFIG_CHROMA_2X2
{
{
TX_4X4
,
TX_4X4
},
{
TX_4X4
,
TX_4X4
}
},
#endif
{
{
TX_4X4
,
TX_4X4
},
{
TX_4X4
,
TX_4X4
}
},
{
{
TX_8X8
,
TX_4X4
},
{
TX_4X4
,
TX_4X4
}
},
{
{
TX_16X16
,
TX_8X8
},
{
TX_8X8
,
TX_8X8
}
},
{
{
TX_32X32
,
TX_16X16
},
{
TX_16X16
,
TX_16X16
}
},
#if CONFIG_TX64X64
{
{
TX_64X64
,
TX_32X32
},
{
TX_32X32
,
TX_32X32
}
},
#endif // CONFIG_TX64X64
};
#if CONFIG_EXT_PARTITION_TYPES
static
const
int
partition_supertx_context_lookup
[
EXT_PARTITION_TYPES
]
=
{
-
1
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
};
#else
static
const
int
partition_supertx_context_lookup
[
PARTITION_TYPES
]
=
{
-
1
,
0
,
0
,
1
};
#endif // CONFIG_EXT_PARTITION_TYPES
#endif // CONFIG_SUPERTX
#if CONFIG_NCOBMC_ADAPT_WEIGHT
// NCOBMC_ADAPT_INTRPL only supports block size >= BLOCK_8X8 and <= BLOCK_64X64
static
const
ADAPT_OVERLAP_BLOCK
adapt_overlap_block_lookup
[
BLOCK_SIZES_ALL
]
=
{
...
...
av1/common/entropymode.c
View file @
0cf54d40
...
...
@@ -2654,25 +2654,6 @@ static const aom_cdf_prob
};
#endif // CONFIG_FILTER_INTRA
#if CONFIG_SUPERTX
static const aom_prob
default_supertx_prob[PARTITION_SUPERTX_CONTEXTS][TX_SIZES] = {
#if CONFIG_CHROMA_2X2
#if CONFIG_TX64X64
{ 1, 1, 160, 160, 170, 180 }, { 1, 1, 200, 200, 210, 220 },
#else
{ 1, 1, 160, 160, 170 }, { 1, 1, 200, 200, 210 },
#endif // CONFIG_TX64X64
#else
#if CONFIG_TX64X64
{ 1, 160, 160, 170, 180 }, { 1, 200, 200, 210, 220 },
#else
{ 1, 160, 160, 170 }, { 1, 200, 200, 210 },
#endif // CONFIG_TX64X64
#endif // CONFIG_CHROMA_2X2
};
#endif // CONFIG_SUPERTX
// FIXME(someone) need real defaults here
static const aom_prob default_segment_tree_probs[SEG_TREE_PROBS] = {
128, 128, 128, 128, 128, 128, 128
...
...
@@ -6565,9 +6546,6 @@ static void init_mode_probs(FRAME_CONTEXT *fc) {
av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob);
av1_copy(fc->interintra_mode_cdf, default_interintra_mode_cdf);
#endif // CONFIG_INTERINTRA
#if CONFIG_SUPERTX
av1_copy(fc->supertx_prob, default_supertx_prob);
#endif // CONFIG_SUPERTX
av1_copy(fc->seg.tree_probs, default_segment_tree_probs);
av1_copy(fc->seg.pred_probs, default_segment_pred_probs);
#if CONFIG_NEW_MULTISYMBOL
...
...
@@ -6704,15 +6682,6 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
#endif // CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
#if CONFIG_SUPERTX
for (i = 0; i < PARTITION_SUPERTX_CONTEXTS; ++i) {
for (j = TX_8X8; j < TX_SIZES; ++j) {
fc->supertx_prob[i][j] = av1_mode_mv_merge_probs(
pre_fc->supertx_prob[i][j], counts->supertx[i][j]);
}
}
#endif // CONFIG_SUPERTX
for (i = 0; i < INTER_MODE_CONTEXTS; i++)
aom_tree_merge_probs(
av1_inter_compound_mode_tree, pre_fc->inter_compound_mode_probs[i],
...
...
av1/common/entropymode.h
View file @
0cf54d40
...
...
@@ -326,9 +326,6 @@ typedef struct frame_contexts {
aom_cdf_prob
intrabc_cdf
[
CDF_SIZE
(
2
)];
#endif
int
initialized
;
#if CONFIG_SUPERTX
aom_prob
supertx_prob
[
PARTITION_SUPERTX_CONTEXTS
][
TX_SIZES
];
#endif // CONFIG_SUPERTX
struct
segmentation_probs
seg
;
#if CONFIG_FILTER_INTRA
aom_prob
filter_intra_probs
[
PLANE_TYPES
];
...
...
@@ -541,10 +538,6 @@ typedef struct FRAME_COUNTS {
unsigned
int
inter_ext_tx
[
EXT_TX_SIZES
][
TX_TYPES
];
#endif // CONFIG_EXT_TX
#endif // CONFIG_ENTROPY_STATS
#if CONFIG_SUPERTX
unsigned
int
supertx
[
PARTITION_SUPERTX_CONTEXTS
][
TX_SIZES
][
2
];
unsigned
int
supertx_size
[
TX_SIZES
];
#endif // CONFIG_SUPERTX
struct
seg_counts
seg
;
#if CONFIG_FILTER_INTRA
unsigned
int
filter_intra
[
PLANE_TYPES
][
2
];
...
...
av1/common/enums.h
View file @
0cf54d40
...
...
@@ -712,11 +712,6 @@ typedef enum {
#define MODE_CTX_REF_FRAMES (TOTAL_REFS_PER_FRAME + COMP_REFS)
#if CONFIG_SUPERTX
#define PARTITION_SUPERTX_CONTEXTS 2
#define MAX_SUPERTX_BLOCK_SIZE BLOCK_32X32
#endif // CONFIG_SUPERTX
#if CONFIG_LOOP_RESTORATION
typedef
enum
{
RESTORE_NONE
,
...
...
av1/common/onyxc_int.h
View file @
0cf54d40
...
...
@@ -914,20 +914,6 @@ static INLINE int is_chroma_reference(int mi_row, int mi_col, BLOCK_SIZE bsize,
#endif
}
#if CONFIG_SUPERTX
static
INLINE
int
need_handle_chroma_sub8x8
(
BLOCK_SIZE
bsize
,
int
subsampling_x
,
int
subsampling_y
)
{
const
int
bw
=
mi_size_wide
[
bsize
];
const
int
bh
=
mi_size_high
[
bsize
];
if
(
bsize
>=
BLOCK_8X8
||
((
!
(
bh
&
0x01
)
||
!
subsampling_y
)
&&
(
!
(
bw
&
0x01
)
||
!
subsampling_x
)))
return
0
;
else
return
1
;
}
#endif
static
INLINE
BLOCK_SIZE
scale_chroma_bsize
(
BLOCK_SIZE
bsize
,
int
subsampling_x
,
int
subsampling_y
)
{
BLOCK_SIZE
bs
=
bsize
;
...
...
av1/common/reconinter.c
View file @
0cf54d40
...
...
@@ -834,64 +834,6 @@ void av1_init_wedge_masks() {
init_wedge_masks
();
}
#if CONFIG_SUPERTX
static
void
build_masked_compound_wedge_extend
(
uint8_t
*
dst
,
int
dst_stride
,
const
uint8_t
*
src0
,
int
src0_stride
,
const
uint8_t
*
src1
,
int
src1_stride
,
const
INTERINTER_COMPOUND_DATA
*
const
comp_data
,
BLOCK_SIZE
sb_type
,
int
wedge_offset_x
,
int
wedge_offset_y
,
int
h
,
int
w
)
{
const
int
subh
=
(
2
<<
b_height_log2_lookup
[
sb_type
])
==
h
;
const
int
subw
=
(
2
<<
b_width_log2_lookup
[
sb_type
])
==
w
;
const
uint8_t
*
mask
;
size_t
mask_stride
;
switch
(
comp_data
->
interinter_compound_type
)
{
case
COMPOUND_WEDGE
:
mask
=
av1_get_soft_mask
(
comp_data
->
wedge_index
,
comp_data
->
wedge_sign
,
sb_type
,
wedge_offset_x
,
wedge_offset_y
);
mask_stride
=
MASK_MASTER_STRIDE
;
break
;
#if CONFIG_COMPOUND_SEGMENT
case
COMPOUND_SEG
:
mask
=
comp_data
->
seg_mask
;
mask_stride
=
block_size_wide
[
sb_type
];
break
;
#endif
default:
assert
(
0
);
return
;
}
aom_blend_a64_mask
(
dst
,
dst_stride
,
src0
,
src0_stride
,
src1
,
src1_stride
,
mask
,
(
int
)
mask_stride
,
h
,
w
,
subh
,
subw
);
}
#if CONFIG_HIGHBITDEPTH
static
void
build_masked_compound_wedge_extend_highbd
(
uint8_t
*
dst_8
,
int
dst_stride
,
const
uint8_t
*
src0_8
,
int
src0_stride
,
const
uint8_t
*
src1_8
,
int
src1_stride
,
const
INTERINTER_COMPOUND_DATA
*
const
comp_data
,
BLOCK_SIZE
sb_type
,
int
wedge_offset_x
,
int
wedge_offset_y
,
int
h
,
int
w
,
int
bd
)
{
const
int
subh
=
(
2
<<
b_height_log2_lookup
[
sb_type
])
==
h
;
const
int
subw
=
(
2
<<
b_width_log2_lookup
[
sb_type
])
==
w
;
const
uint8_t
*
mask
;
size_t
mask_stride
;
switch
(
comp_data
->
interinter_compound_type
)
{
case
COMPOUND_WEDGE
:
mask
=
av1_get_soft_mask
(
comp_data
->
wedge_index
,
comp_data
->
wedge_sign
,
sb_type
,
wedge_offset_x
,
wedge_offset_y
);
mask_stride
=
MASK_MASTER_STRIDE
;
break
;
#if CONFIG_COMPOUND_SEGMENT
case
COMPOUND_SEG
:
mask
=
comp_data
->
seg_mask
;
mask_stride
=
block_size_wide
[
sb_type
];
break
;
#endif
default:
assert
(
0
);
return
;
}
aom_highbd_blend_a64_mask
(
dst_8
,
dst_stride
,
src0_8
,
src0_stride
,
src1_8
,
src1_stride
,
mask
,
(
int
)
mask_stride
,
h
,
w
,
subh
,
subw
,
bd
);
}
#endif // CONFIG_HIGHBITDEPTH
#else
#if CONFIG_CONVOLVE_ROUND
static
void
build_masked_compound_no_round
(
CONV_BUF_TYPE
*
dst
,
int
dst_stride
,
const
CONV_BUF_TYPE
*
src0
,
...
...
@@ -939,16 +881,12 @@ static void build_masked_compound_highbd(
subh
,
subw
,
bd
);
}
#endif // CONFIG_HIGHBITDEPTH
#endif // CONFIG_SUPERTX
void
av1_make_masked_inter_predictor
(
const
uint8_t
*
pre
,
int
pre_stride
,
uint8_t
*
dst
,
int
dst_stride
,
const
int
subpel_x
,
const
int
subpel_y
,
const
struct
scale_factors
*
sf
,
int
w
,
int
h
,
ConvolveParams
*
conv_params
,
InterpFilters
interp_filters
,
int
xs
,
int
ys
,
#if CONFIG_SUPERTX
int
wedge_offset_x
,
int
wedge_offset_y
,
#endif // CONFIG_SUPERTX
#if CONFIG_GLOBAL_MOTION || CONFIG_WARPED_MOTION || CONFIG_COMPOUND_SEGMENT
int
plane
,
#endif
...
...
@@ -1050,18 +988,6 @@ void av1_make_masked_inter_predictor(
}
#endif // CONFIG_COMPOUND_SEGMENT
#if CONFIG_SUPERTX
#if CONFIG_HIGHBITDEPTH
if
(
xd
->
cur_buf
->
flags
&
YV12_FLAG_HIGHBITDEPTH
)
build_masked_compound_wedge_extend_highbd
(
dst
,
dst_stride
,
dst
,
dst_stride
,
tmp_dst
,
MAX_SB_SIZE
,
&
comp_data
,
mi
->
mbmi
.
sb_type
,
wedge_offset_x
,
wedge_offset_y
,
h
,
w
,
xd
->
bd
);
else
#endif // CONFIG_HIGHBITDEPTH
build_masked_compound_wedge_extend
(
dst
,
dst_stride
,
dst
,
dst_stride
,
tmp_dst
,
MAX_SB_SIZE
,
&
comp_data
,
mi
->
mbmi
.
sb_type
,
wedge_offset_x
,
wedge_offset_y
,
h
,
w
);
#else
#if CONFIG_CONVOLVE_ROUND
if
(
is_conv_no_round
)
{
build_masked_compound_no_round
(
org_dst
,
org_dst_stride
,
org_dst
,
...
...
@@ -1095,7 +1021,6 @@ void av1_make_masked_inter_predictor(
#if CONFIG_CONVOLVE_ROUND
}
#endif // CONFIG_CONVOLVE_ROUND
#endif // CONFIG_SUPERTX
}
// TODO(sarahparker) av1_highbd_build_inter_predictor and
...
...
@@ -1182,11 +1107,7 @@ static INLINE void build_inter_predictors(
#if CONFIG_MOTION_VAR
const
MODE_INFO
*
mi
,
int
build_for_obmc
,
#endif // CONFIG_MOTION_VAR
int
block
,
int
bw
,
int
bh
,
int
x
,
int
y
,
int
w
,
int
h
,
#if CONFIG_SUPERTX
int
wedge_offset_x
,
int
wedge_offset_y
,
#endif // CONFIG_SUPERTX
int
mi_x
,
int
mi_y
)
{
int
block
,
int
bw
,
int
bh
,
int
x
,
int
y
,
int
w
,
int
h
,
int
mi_x
,
int
mi_y
)
{
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
#if !CONFIG_MOTION_VAR
const
MODE_INFO
*
mi
=
xd
->
mi
[
0
];
...
...
@@ -1365,19 +1286,11 @@ static INLINE void build_inter_predictors(
if
(
is_masked_compound_type
(
mi
->
mbmi
.
interinter_compound_type
))
{
// masked compound type has its own average mechanism
conv_params
.
do_average
=
0
;