Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
281fbe3
Rework speed features 2 - 5 (#5080)
chengchen-google Jul 1, 2026
729e081
Move set_sb_size() to encoder dir (#5084)
jingninghan Jul 8, 2026
29dddd0
Move get_partition() to enc dir (#5091)
jingninghan Jul 9, 2026
e80ca1c
Partitioning bugfix (#5095)
chengchen-google Jul 11, 2026
16843f2
Inter mode search: restructure loop, prune_motion_mode (#5098)
yeqing-wu Jul 14, 2026
38ae948
Remove FSC path from intra joint UV function (#5111)
jingninghan Jul 15, 2026
ca356bb
Rework single-ref to compound pruning (#5099)
yeqing-wu Jul 15, 2026
f1b87aa
Fix latent assert in handle_newmv MV-precision cache lookup (#5114)
yeqing-wu Jul 15, 2026
7419eb9
Add per-ref RD-based pruning for single-ref NEWMV / WARP_NEWMV (#5100)
yeqing-wu Jul 15, 2026
99d3224
Single-ref NEWMV DRL search speed features (#5101)
yeqing-wu Jul 15, 2026
c7bc47b
Add pruning for refinemv, INTERINTRA, and WARP_DELTA (#5102)
yeqing-wu Jul 16, 2026
3e40085
Skip IST/STX cascade for intra-luma zero-quant primary (#5103)
yeqing-wu Jul 16, 2026
36b9b44
Rework av2_encode_block_intra_joint_uv (#5118)
jingninghan Jul 16, 2026
5f49db2
Remove mlayer/implicit-ref-map TIP suppression (#5119)
yeqing-wu Jul 17, 2026
1104f6d
Add cctx type array update back (#5123)
jingninghan Jul 18, 2026
79110a9
Skip temporary prediction for opfl modes. (#5126)
jadhuran Jul 21, 2026
b3ee575
Hybrid search of multi way transform in rough search and winner mode …
jadhuran Jul 21, 2026
df4f8aa
Add a speed level for intra region in inter frames (#5130)
leolzhao Jul 22, 2026
e2d7e49
Add 6 param warp search in winner mode by tid (#5129)
jadhuran Jul 22, 2026
ceac6f0
Disable switchable SMVR at speed >= 1 and rename DMVR as SMVR or refi…
kslu-aom Jul 22, 2026
a0f8e7f
Enhanced inter mode cache reuse (#5133)
leolzhao Jul 22, 2026
491ebe3
Refactor search_tx_type() (#5136)
mudassir-sg Jul 22, 2026
96378d8
Increase TCQ threshold based on base QP (#5132)
motongxu Jul 23, 2026
cd7a9c1
Add a speed feature to improve intra mode pruning
ranjit-tulabandu Jul 22, 2026
a9c8867
Enable skip tx search when max_eob<512 (#5144)
motongxu Jul 23, 2026
cca25e5
Encoder speedup for pruning partitions
linzhen-beep Jul 22, 2026
c18bd5f
Add realtime(rt) flag, encoder options / config
jianj-g Jul 22, 2026
2d31303
Speed up on uneven 4way partition and MV precision. (#5149)
jadhuran Jul 27, 2026
888d2a0
Add SSE2 optimization for interp_cubic() (#5135)
deepa-kg Jul 27, 2026
9e966f6
Transform partition encoder speedup (#5165)
linzhen-beep Jul 27, 2026
efe0e28
Pruning compound reference frame search in speed >= 1 (#5163)
kslu-aom Jul 27, 2026
efd6ad8
Add macro for maximum qp selection (#5145)
arnab-dey-12 Jul 27, 2026
c411462
Fast method for AMVD with newmv mode (#5166)
leolzhao Jul 27, 2026
077f739
Skip AMVD modes for NEAR NEWMV, NEW NEARMV modes (#5167)
jadhuran Jul 27, 2026
bba3fcb
Add warp interintra in winner based on wrl index (#5164)
jadhuran Jul 28, 2026
bd8fbb3
Improve readability of search_tx_type() (#5160)
mudassir-sg Jul 28, 2026
0b382e8
MLP intra mode pruning (#5162)
YixinDu1 Jul 28, 2026
e88283f
Cleanup PartitionSearchState context (#5157)
ram-mohan Jul 28, 2026
430ab7d
Use MFMV_STACK_SIZE as `process_ref` array size
satheeshkumar02 Jul 27, 2026
60ae09a
Refactor check_and_add_process_ref()
satheeshkumar02 Jul 27, 2026
8d840b8
Remove unused `ProcessRefTMVP->type` and associated code
satheeshkumar02 Jul 27, 2026
76b4620
Prevent auto inlining of motion_field_projection_side()
satheeshkumar02 Jul 27, 2026
eaf3469
Adaptive tx search level (#5170)
motongxu Jul 29, 2026
49d523e
Rework av2_update_nbr_diagonal_c (#5172)
jingninghan Jul 29, 2026
5d8739a
MLP-based partition pre-screener (#5168)
YixinDu1 Jul 29, 2026
ba70e52
Add default speed features for RTC (#5155)
jianj-g Jul 29, 2026
6a87062
Simplify pc tree recurse functions
ram-mohan Jul 21, 2026
7c5c142
Tweak adaptive_tx_type_search speed feature
linzhen-beep Jul 29, 2026
2b119e6
Add enable_low_complexity_decode (LC) mode (#5183)
yunqingwang1 Jul 31, 2026
d6218bd
Cleanup unused code in compound type search (#5176)
RemyaPrakasan Jul 31, 2026
0aa3a54
Enable deblock filter for partition research (#5180)
jianle973 Aug 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions apps/avmenc.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ const arg_def_t *main_args[] = { &g_av2_codec_arg_defs.help,
&g_av2_codec_arg_defs.skip,
&g_av2_codec_arg_defs.step,
&g_av2_codec_arg_defs.good_dl,
&g_av2_codec_arg_defs.rt_dl,
&g_av2_codec_arg_defs.quietarg,
&g_av2_codec_arg_defs.verbosearg,
&g_av2_codec_arg_defs.psnrarg,
Expand Down Expand Up @@ -303,6 +304,7 @@ const arg_def_t *av2_key_val_args[] = {
&g_av2_codec_arg_defs.enable_joint_mvd,
&g_av2_codec_arg_defs.enable_keyframe_filtering,
&g_av2_codec_arg_defs.enable_lf_sub_pu,
&g_av2_codec_arg_defs.enable_low_complexity_decode,
&g_av2_codec_arg_defs.enable_masked_comp,
&g_av2_codec_arg_defs.enable_mfh_obu_signaling,
&g_av2_codec_arg_defs.enable_mhccp,
Expand Down Expand Up @@ -631,6 +633,7 @@ static void init_config(cfg_options_t *config) {
config->scan_type_info_present_flag = 0;
config->enable_mfh_obu_signaling = 0;
config->operating_points_count = 1;
config->enable_low_complexity_decode = 0;
}

int read_icc_profile(struct AvxEncoderConfig *global, const char *file) {
Expand Down Expand Up @@ -702,6 +705,8 @@ static void parse_global_config(struct AvxEncoderConfig *global, char ***argv) {
global->usage = arg_parse_uint(&arg);
} else if (arg_match(&arg, &g_av2_codec_arg_defs.good_dl, argi)) {
global->usage = AVM_USAGE_GOOD_QUALITY; // Good quality usage
} else if (arg_match(&arg, &g_av2_codec_arg_defs.rt_dl, argi)) {
global->usage = AVM_USAGE_REALTIME; // REALTIME usage
} else if (arg_match(&arg, &g_av2_codec_arg_defs.use_yv12, argi)) {
global->color_type = YV12;
} else if (arg_match(&arg, &g_av2_codec_arg_defs.use_i420, argi)) {
Expand Down
5 changes: 5 additions & 0 deletions av2/arg_defs.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ const av2_codec_arg_definitions_t g_av2_codec_arg_defs = {
.step = ARG_DEF(NULL, "step", 1,
"Encode every n-th frame (after the --skip frames)"),
.good_dl = ARG_DEF(NULL, "good", 0, "Use Good Quality Deadline"),
.rt_dl = ARG_DEF(NULL, "rt", 0, "Use Realtime Quality Deadline"),
.quietarg = ARG_DEF("q", "quiet", 0, "Do not print encode progress"),
.verbosearg = ARG_DEF("v", "verbose", 0, "Show encoder parameters"),
.psnrarg = ARG_DEF(
Expand Down Expand Up @@ -885,6 +886,10 @@ const av2_codec_arg_definitions_t g_av2_codec_arg_defs = {
.use_short_metadata = ARG_DEF(NULL, "use-short-metadata", 1,
"Use short metadata OBU format "
"(0: GROUP format [default], 1: SHORT format)"),
.enable_low_complexity_decode =
ARG_DEF(NULL, "enable-low-complexity-decode", 1,
"Enable low complexity decode "
"(0: false (default), 1: true)"),
#endif // CONFIG_AV2_ENCODER
.enable_short_refresh_frame_flags =
ARG_DEF(NULL, "enable-short-refresh-frame-flags", 1,
Expand Down
2 changes: 2 additions & 0 deletions av2/arg_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ typedef struct av2_codec_arg_definitions {
arg_def_t skip;
arg_def_t step;
arg_def_t good_dl;
arg_def_t rt_dl;
arg_def_t quietarg;
arg_def_t verbosearg;
arg_def_t psnrarg;
Expand Down Expand Up @@ -277,6 +278,7 @@ typedef struct av2_codec_arg_definitions {
arg_def_t dpb_size;
arg_def_t enable_bru;
arg_def_t disable_loopfilters_across_tiles;
arg_def_t enable_low_complexity_decode;
#endif // CONFIG_AV2_ENCODER
arg_def_t frame_hash_metadata;
arg_def_t frame_hash_per_plane;
Expand Down
9 changes: 9 additions & 0 deletions av2/av2.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,8 @@ list(
"${AVM_ROOT}/av2/encoder/palette.h"
"${AVM_ROOT}/av2/encoder/partition_search.h"
"${AVM_ROOT}/av2/encoder/partition_search.c"
"${AVM_ROOT}/av2/encoder/partition_mlp.h"
"${AVM_ROOT}/av2/encoder/partition_mlp.c"
"${AVM_ROOT}/av2/encoder/partition_strategy.h"
"${AVM_ROOT}/av2/encoder/partition_strategy.c"
"${AVM_ROOT}/av2/encoder/pass2_strategy.h"
Expand Down Expand Up @@ -291,6 +293,9 @@ list(
"${AVM_ROOT}/av2/encoder/intra_mode_search.c"
"${AVM_ROOT}/av2/encoder/intra_mode_search.h"
"${AVM_ROOT}/av2/encoder/intra_mode_search_utils.h"
"${AVM_ROOT}/av2/encoder/intra_mode_mlp.c"
"${AVM_ROOT}/av2/encoder/intra_mode_mlp.h"
"${AVM_ROOT}/av2/encoder/intra_mode_mlp_weights.h"
"${AVM_ROOT}/av2/encoder/wedge_utils.c"
"${AVM_ROOT}/av2/encoder/av2_noise_estimate.c"
"${AVM_ROOT}/av2/encoder/av2_noise_estimate.h"
Expand Down Expand Up @@ -396,6 +401,8 @@ list(
"${AVM_ROOT}/av2/encoder/x86/encodetxb_sse2.c"
"${AVM_ROOT}/av2/encoder/x86/highbd_block_error_intrin_sse2.c"
"${AVM_ROOT}/av2/encoder/x86/highbd_temporal_filter_sse2.c"
"${AVM_ROOT}/av2/encoder/x86/intra_mode_mlp_sse2.c"
"${AVM_ROOT}/av2/encoder/x86/model_rd_sse2.c"
"${AVM_ROOT}/av2/encoder/x86/wedge_utils_sse2.c")

list(APPEND AVM_AV2_ENCODER_INTRIN_SSE3 "${AVM_ROOT}/av2/encoder/x86/ml_sse3.c")
Expand All @@ -418,13 +425,15 @@ list(
"${AVM_ROOT}/av2/encoder/x86/highbd_fwd_txfm_avx2.c"
"${AVM_ROOT}/av2/encoder/x86/wedge_utils_avx2.c"
"${AVM_ROOT}/av2/encoder/x86/encodetxb_avx2.c"
"${AVM_ROOT}/av2/encoder/x86/intra_mode_mlp_avx2.c"
"${AVM_ROOT}/av2/encoder/x86/rdopt_avx2.c"
"${AVM_ROOT}/av2/encoder/x86/pickrst_avx2.c")

list(
APPEND
AVM_AV2_ENCODER_INTRIN_NEON
"${AVM_ROOT}/av2/encoder/arm/neon/ml_neon.c"
"${AVM_ROOT}/av2/encoder/arm/neon/intra_mode_mlp_neon.c"
"${AVM_ROOT}/av2/encoder/arm/neon/rdopt_neon.c"
"${AVM_ROOT}/av2/encoder/arm/neon/encodetxb_neon.c"
"${AVM_ROOT}/av2/encoder/arm/neon/hybrid_fwd_txfm_neon.c")
Expand Down
Loading