Skip to content
Open
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
25c0ad0
Rework speed features 2 - 5 (#5080)
chengchen-google Jul 1, 2026
59eebce
Move set_sb_size() to encoder dir (#5084)
jingninghan Jul 8, 2026
f3cea3d
Move get_partition() to enc dir (#5091)
jingninghan Jul 9, 2026
88cd18b
Partitioning bugfix (#5095)
chengchen-google Jul 11, 2026
fb72060
Inter mode search: restructure loop, prune_motion_mode (#5098)
yeqing-wu Jul 14, 2026
63157f9
Remove FSC path from intra joint UV function (#5111)
jingninghan Jul 15, 2026
da0896f
Rework single-ref to compound pruning (#5099)
yeqing-wu Jul 15, 2026
1501bc2
Fix latent assert in handle_newmv MV-precision cache lookup (#5114)
yeqing-wu Jul 15, 2026
3971155
Add per-ref RD-based pruning for single-ref NEWMV / WARP_NEWMV (#5100)
yeqing-wu Jul 15, 2026
bd03298
Single-ref NEWMV DRL search speed features (#5101)
yeqing-wu Jul 15, 2026
220e1f9
Add pruning for refinemv, INTERINTRA, and WARP_DELTA (#5102)
yeqing-wu Jul 16, 2026
3d31d48
Skip IST/STX cascade for intra-luma zero-quant primary (#5103)
yeqing-wu Jul 16, 2026
d7db1f7
Rework av2_encode_block_intra_joint_uv (#5118)
jingninghan Jul 16, 2026
5c1d92d
Remove mlayer/implicit-ref-map TIP suppression (#5119)
yeqing-wu Jul 17, 2026
d36c538
Add cctx type array update back (#5123)
jingninghan Jul 18, 2026
08a9b57
Skip temporary prediction for opfl modes. (#5126)
jadhuran Jul 21, 2026
40e5a98
Hybrid search of multi way transform in rough search and winner mode …
jadhuran Jul 21, 2026
b48a78c
Add a speed level for intra region in inter frames (#5130)
leolzhao Jul 22, 2026
d3de6b2
Add 6 param warp search in winner mode by tid (#5129)
jadhuran Jul 22, 2026
57894a6
Disable switchable SMVR at speed >= 1 and rename DMVR as SMVR or refi…
kslu-aom Jul 22, 2026
e6fa3db
Enhanced inter mode cache reuse (#5133)
leolzhao Jul 22, 2026
a9c01bd
Refactor search_tx_type() (#5136)
mudassir-sg Jul 22, 2026
90e42b3
Increase TCQ threshold based on base QP (#5132)
motongxu Jul 23, 2026
62e2bee
Add a speed feature to improve intra mode pruning
ranjit-tulabandu Jul 22, 2026
0bd432f
Enable skip tx search when max_eob<512 (#5144)
motongxu Jul 23, 2026
5affb67
Encoder speedup for pruning partitions
linzhen-beep Jul 22, 2026
0f5e014
Add realtime(rt) flag, encoder options / config
jianj-g Jul 22, 2026
a0a5865
Speed up on uneven 4way partition and MV precision. (#5149)
jadhuran Jul 27, 2026
a62a620
Add SSE2 optimization for interp_cubic() (#5135)
deepa-kg Jul 27, 2026
7acfff1
Transform partition encoder speedup (#5165)
linzhen-beep Jul 27, 2026
377253e
Pruning compound reference frame search in speed >= 1 (#5163)
kslu-aom Jul 27, 2026
7052acc
Add macro for maximum qp selection (#5145)
arnab-dey-12 Jul 27, 2026
9992c35
Fast method for AMVD with newmv mode (#5166)
leolzhao Jul 27, 2026
d4e4db6
Skip AMVD modes for NEAR NEWMV, NEW NEARMV modes (#5167)
jadhuran Jul 27, 2026
e77afc0
Add warp interintra in winner based on wrl index (#5164)
jadhuran Jul 28, 2026
a19079e
Improve readability of search_tx_type() (#5160)
mudassir-sg Jul 28, 2026
e0bac90
MLP intra mode pruning (#5162)
YixinDu1 Jul 28, 2026
0efefd1
Cleanup PartitionSearchState context (#5157)
ram-mohan Jul 28, 2026
276561d
Use MFMV_STACK_SIZE as `process_ref` array size
satheeshkumar02 Jul 27, 2026
61ebb89
Refactor check_and_add_process_ref()
satheeshkumar02 Jul 27, 2026
3b273fe
Remove unused `ProcessRefTMVP->type` and associated code
satheeshkumar02 Jul 27, 2026
0487cdc
Prevent auto inlining of motion_field_projection_side()
satheeshkumar02 Jul 27, 2026
99815e0
Adaptive tx search level (#5170)
motongxu Jul 29, 2026
1a98eb1
Rework av2_update_nbr_diagonal_c (#5172)
jingninghan Jul 29, 2026
b2cfb54
MLP-based partition pre-screener (#5168)
YixinDu1 Jul 29, 2026
946d6f9
Add default speed features for RTC (#5155)
jianj-g Jul 29, 2026
e341b34
Simplify pc tree recurse functions
ram-mohan Jul 21, 2026
89a7d87
Tweak adaptive_tx_type_search speed feature
linzhen-beep Jul 29, 2026
3aee035
Add enable_low_complexity_decode (LC) mode (#5183)
yunqingwang1 Jul 31, 2026
b361a6f
Cleanup unused code in compound type search (#5176)
RemyaPrakasan Jul 31, 2026
78d9f4c
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