mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:17:44 +00:00
LibVideo/VP9: Pre-calculate inter-frames' reference frame scale factors
Changing the calculation of reference frame scale factors to be done on a per-frame basis reduces the amount of work done in `predict_inter_block()`, which is a big hotspot in most videos. This reduces decode times in a test video from YouTube by about 5% (~37.2s -> ~35.4s).
This commit is contained in:
parent
5cd5edc3bd
commit
bc49af08b4
4 changed files with 88 additions and 43 deletions
|
@ -220,6 +220,9 @@ DecoderErrorOr<void> Parser::uncompressed_header(FrameContext& frame_context)
|
|||
render_size = TRY(parse_render_size(frame_context.bit_stream, frame_size));
|
||||
frame_context.high_precision_motion_vectors_allowed = TRY_READ(frame_context.bit_stream.read_bit());
|
||||
frame_context.interpolation_filter = TRY(read_interpolation_filter(frame_context.bit_stream));
|
||||
for (auto i = 0; i < REFS_PER_FRAME; i++) {
|
||||
TRY(m_decoder.prepare_referenced_frame(frame_size, frame_context.reference_frame_indices[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue