[FFmpeg-devel] [PATCH] area changed: scdet filter
radu.taraibuta at gmail.com
radu.taraibuta at gmail.com
Sun Jun 2 23:17:29 EEST 2024
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Michael Niedermayer
> Sent: vineri, 31 mai 2024 00:32
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH] area changed: scdet filter
>
> On Mon, May 13, 2024 at 06:52:19PM +0300, radu.taraibuta at gmail.com
> wrote:
> > Previous observations:
> >
> > - Inconsistent code style with other filters. (Mostly using
> > AVFilterLink* link instead of AVFilterLink *link).
> > I hope it's fine now.
> >
> > - Unrelated changes, please split trivial unrelated changes into
> > separate patches.
> > Removed trivial changes from this patch.
> >
> > - Can't tables be generated at .init/.config_props time? No point in
> > storing them into binary.
> > Done.
> >
> > - Adding extra delay is not backward compatible change, it should be
> > implemented properly by adding option for users to select mode: next &
> > prev frame or just next or prev frame.
> > Added legacy option to the mode parameter.
> >
> > - Could split frame clone change into earlier separate patch.
> > Cannot be done. It's either frame clone or 1 frame delay.
> >
> > - Where are results of improvements with accuracy so it can be
confirmed?
> > Here are my test results with manual labeling of scene changes:
> > 2379 Full length movie
> >
> > Method Threshold TP FP FN Precision
> > Recall F
> > Cubic 7 2357 423 22 0.847841727
0.990752417
> > 0.913742973
> > Cubic 10 2297 200 82 0.919903885
0.965531736
> > 0.94216571
> > Cubic 12 2217 146 162 0.938214135
0.931904161
> > 0.935048503
> > Cubic 15 2049 101 330 0.953023256
0.861286255
> > 0.904835505
> > Linear 2.8 2357 1060 22 0.689786362
0.990752417
> > 0.813319531
> > Linear 8 2099 236 280 0.898929336
0.882303489
> > 0.890538821
> > Linear 10 1886 173 493 0.91597863
0.792770071
> > 0.849932402
> > Legacy 5 2235 1260 144 0.639484979
> 0.939470366
> > 0.760980592
> > Legacy 8 1998 414 381 0.828358209
> 0.839848676
> > 0.83406387
> > Legacy 10 1743 193 636 0.900309917
> 0.732660782
> > 0.80787949
> >
> > 15 HDR10Plus_PB_EAC3JOC
> > https://mega.nz/file/nehDka6Z#C5_OPbSZkONdOp1jRmc09C9-
> viDc3zMj8ZHruHcW
> > KyA
> >
> > Method Threshold TP FP FN Precision
> > Recall F
> > Cubic 10 15 0 0 1 1 1
> > Linear 5 13 1 2 0.928571429
0.866666667
> > 0.896551724
> > Legacy 5 12 2 3 0.857142857 0.8
> > 0.827586207
> >
> > 21 (HDR HEVC 10-bit BT.2020 24fps) Exodus Sample
> >
> https://mega.nz/file/Sfw1hDpK#ErxCOpQDVjcI1gq6ZbX3vIfdtXZompkFe0jq47E
> h
> > R2o
> >
> > Method Threshold TP FP FN Precision
> > Recall F
> > Cubic 10 21 0 0 1 1 1
> > Linear 4 20 0 1 1 0.952380952
> > 0.975609756
> > Legacy 4 19 0 2 1 0.904761905
> 0.95
> >
> > 94 Bieber Grammys
> > https://mega.nz/#!c9dhAaKA!MG5Yi-
> MJNATE2_KqcnNJZCRKtTWvdjJP1NwG8Ggdw3E
> >
> > Method Threshold TP FP FN Precision
> > Recall F
> > Cubic 15 91 23 3 0.798245614
0.968085106
> > 0.875
> > Cubic 18 85 9 9 0.904255319
0.904255319
> > 0.904255319
> > Linear 7 79 49 15 0.6171875
0.840425532
> > 0.711711712
> > Linear 8 74 28 20 0.725490196
0.787234043
> > 0.755102041
> > Legacy 7 74 40 20 0.649122807
> 0.787234043
> > 0.711538462
> > Legacy 8 71 26 23 0.731958763
> 0.755319149
> > 0.743455497
> >
> >
> > Improve scene detection accuracy by comparing frame with both previous
> > and next frame (creates one frame delay).
> > Add new mode parameter and new method to compute the frame difference
> > using cubic square to increase the weight of small changes and new mean
> formula.
> > This improves accuracy significantly. Slightly improve performance by
> > not using frame clone.
> > Add legacy mode for backward compatibility.
> >
> > Signed-off-by: raduct <radu.taraibuta at gmail.com>
> > ---
> > doc/filters.texi | 16 ++++
> > libavfilter/scene_sad.c | 151 ++++++++++++++++++++++++++++++++++
> > libavfilter/scene_sad.h | 6 ++
> > libavfilter/vf_scdet.c | 156 +++++++++++++++++++++++++-----------
> > tests/fate/filter-video.mak | 3 +
> > 5 files changed, 284 insertions(+), 48 deletions(-)
> >
> > diff --git a/doc/filters.texi b/doc/filters.texi index
> > bfa8ccec8b..53814e003b 100644
> > --- a/doc/filters.texi
> > +++ b/doc/filters.texi
> > @@ -21797,6 +21797,22 @@ Default value is @code{10.}.
> > @item sc_pass, s
> > Set the flag to pass scene change frames to the next filter. Default
> > value is @code{0}
>
> The patch is corrupted by linebreaks:
>
> Applying: area changed: scdet filter
> error: corrupt patch at line 16
> Patch failed at 0001 area changed: scdet filter
>
> please check the linebreak settings or attach the patch or use git
send-email
>
> thx
>
> [...]
> --
> Michael GnuPG fingerprint:
> 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Homeopathy is like voting while filling the ballot out with transparent
ink.
> Sometimes the outcome one wanted occurs. Rarely its worse than filling out
a
> ballot properly.
Please find attached the patch.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-area-changed-scdet-filter.patch
Type: application/octet-stream
Size: 16106 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240602/e85e72af/attachment.obj>
More information about the ffmpeg-devel
mailing list