* [FFmpeg-devel] [PATCH 1/2] libavfilter/vf_minterpolate: Hoist hot loop in `set_frame_data`
@ 2025-08-29 20:19 Zsolt Vadász via ffmpeg-devel
0 siblings, 0 replies; only message in thread
From: Zsolt Vadász via ffmpeg-devel @ 2025-08-29 20:19 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Zsolt Vadász
Signed-off-by: Zsolt Vadasz <zsolt_vadasz@protonmail.com>
---
libavfilter/vf_minterpolate.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/libavfilter/vf_minterpolate.c b/libavfilter/vf_minterpolate.c
index d034783bc5..2406259056 100644
--- a/libavfilter/vf_minterpolate.c
+++ b/libavfilter/vf_minterpolate.c
@@ -939,17 +939,20 @@ static void set_frame_data(MIContext *mi_ctx, int alpha, AVFrame *avf_out)
weight_sum = ALPHA_MAX;
}
- for (i = 0; i < pixel_refs->nb; i++) {
- Frame *frame = &mi_ctx->frames[pixel_refs->refs[i]];
- if (chroma) {
+ if (chroma) {
+ for (i = 0; i < pixel_refs->nb; i++) {
+ Frame *frame = &mi_ctx->frames[pixel_refs->refs[i]];
x_mv = (x >> mi_ctx->log2_chroma_w) + pixel_mvs->mvs[i][0] / (1 << mi_ctx->log2_chroma_w);
y_mv = (y >> mi_ctx->log2_chroma_h) + pixel_mvs->mvs[i][1] / (1 << mi_ctx->log2_chroma_h);
- } else {
+ val += pixel_weights->weights[i] * frame->avf->data[plane][x_mv + y_mv * frame->avf->linesize[plane]];
+ }
+ } else {
+ for (i = 0; i < pixel_refs->nb; i++) {
+ Frame *frame = &mi_ctx->frames[pixel_refs->refs[i]];
x_mv = x + pixel_mvs->mvs[i][0];
y_mv = y + pixel_mvs->mvs[i][1];
+ val += pixel_weights->weights[i] * frame->avf->data[plane][x_mv + y_mv * frame->avf->linesize[plane]];
}
-
- val += pixel_weights->weights[i] * frame->avf->data[plane][x_mv + y_mv * frame->avf->linesize[plane]];
}
val = ROUNDED_DIV(val, weight_sum);
--
2.51.0
_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-08-29 20:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-29 20:19 [FFmpeg-devel] [PATCH 1/2] libavfilter/vf_minterpolate: Hoist hot loop in `set_frame_data` Zsolt Vadász via ffmpeg-devel
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git