[FFmpeg-devel] [PATCH v2 3/3] lavf/f_select: make the more pixel format usable to avoid autoscale to rgb

Limin Wang lance.lmwang at gmail.com
Sat Jul 20 01:11:33 EEST 2019


On Fri, Jul 19, 2019 at 09:23:24PM +0200, Marton Balint wrote:
> 
> 
> On Fri, 19 Jul 2019, lance.lmwang at gmail.com wrote:
> 
> >From: Limin Wang <lance.lmwang at gmail.com>
> >
> >Below is the tested results for the new added pixel format without autoscale to rgb24:
> >1. AV_PIX_FMT_YUVJ420P
> >time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \
> >"sws_flags=+accurate_rnd+bitexact;movie=../fate-suite/svq3/Vertical400kbit.sorenson3.mov,select=gt(scene\,.25)"
> >
> >master:
> >pkt_pts=1620|tag:lavfi.scene_score=1.000000
> >pkt_pts=4140|tag:lavfi.scene_score=0.875036
> >pkt_pts=5800|tag:lavfi.scene_score=1.000000
> >pkt_pts=6720|tag:lavfi.scene_score=0.461625
> >pkt_pts=8160|tag:lavfi.scene_score=1.000000
> >pkt_pts=9760|tag:lavfi.scene_score=1.000000
> >pkt_pts=14080|tag:lavfi.scene_score=0.838916
> >pkt_pts=15700|tag:lavfi.scene_score=1.000000
> >pkt_pts=18500|tag:lavfi.scene_score=0.474948
> >pkt_pts=20040|tag:lavfi.scene_score=0.379700
> >pkt_pts=21760|tag:lavfi.scene_score=1.000000
> >./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f  0.71s user 0.01s system 99% cpu 0.721 total
> >
> >patch applied:
> >pkt_pts=1620|tag:lavfi.scene_score=1.000000
> >pkt_pts=4140|tag:lavfi.scene_score=0.668643
> >pkt_pts=5800|tag:lavfi.scene_score=0.996721
> >pkt_pts=6720|tag:lavfi.scene_score=0.357390
> >pkt_pts=8160|tag:lavfi.scene_score=0.886268
> >pkt_pts=9760|tag:lavfi.scene_score=0.926219
> >pkt_pts=14080|tag:lavfi.scene_score=0.650033
> >pkt_pts=15700|tag:lavfi.scene_score=1.000000
> >pkt_pts=18500|tag:lavfi.scene_score=0.316402
> >pkt_pts=20040|tag:lavfi.scene_score=0.269509
> >pkt_pts=21760|tag:lavfi.scene_score=1.000000
> >./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f  0.19s user 0.01s system 81% cpu 0.240 total
> >
> >2. AV_PIX_FMT_YUV420P
> >time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \
> >"sws_flags=+accurate_rnd+bitexact;movie=../Passengers_Breakfast_1080-sdr.mkv,select=gt(scene\,.2)"
> >master:
> >pkt_pts=3587|tag:lavfi.scene_score=0.462364
> >pkt_pts=4838|tag:lavfi.scene_score=0.419519
> >pkt_pts=6548|tag:lavfi.scene_score=0.397027
> >pkt_pts=9968|tag:lavfi.scene_score=0.419245
> >pkt_pts=12471|tag:lavfi.scene_score=0.413084
> >pkt_pts=16225|tag:lavfi.scene_score=0.506370
> >pkt_pts=19645|tag:lavfi.scene_score=0.507538
> >pkt_pts=22314|tag:lavfi.scene_score=0.504319
> >pkt_pts=24817|tag:lavfi.scene_score=0.417544
> >pkt_pts=25651|tag:lavfi.scene_score=0.413916
> >pkt_pts=26652|tag:lavfi.scene_score=0.487707
> >18.58s user 0.07s system 99% cpu 18.663 total
> >
> >patch applied:
> >pkt_pts=3587|tag:lavfi.scene_score=0.272173
> >pkt_pts=4838|tag:lavfi.scene_score=0.247841
> >pkt_pts=6548|tag:lavfi.scene_score=0.233134
> >pkt_pts=9968|tag:lavfi.scene_score=0.247253
> >pkt_pts=12471|tag:lavfi.scene_score=0.244129
> >pkt_pts=16225|tag:lavfi.scene_score=0.302531
> >pkt_pts=19645|tag:lavfi.scene_score=0.303560
> >pkt_pts=22314|tag:lavfi.scene_score=0.301861
> >pkt_pts=24817|tag:lavfi.scene_score=0.249331
> >pkt_pts=25651|tag:lavfi.scene_score=0.247096
> >pkt_pts=26652|tag:lavfi.scene_score=0.287728
> >10.90s user 0.06s system 99% cpu 10.967 total
> >
> >3. AV_PIX_FMT_YUV422P
> >
> >time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \
> >"sws_flags=+accurate_rnd+bitexact;movie=../Passengers_Breakfast_1080-sdr.mkv,format=yuv422p,select=gt(scene\,.2)"
> >master:
> >
> >patched applied:
> >pkt_pts=3587|tag:lavfi.scene_score=0.224017
> >pkt_pts=4838|tag:lavfi.scene_score=0.204225
> >pkt_pts=9968|tag:lavfi.scene_score=0.204636
> >pkt_pts=12471|tag:lavfi.scene_score=0.202772
> >pkt_pts=16225|tag:lavfi.scene_score=0.248765
> >pkt_pts=19645|tag:lavfi.scene_score=0.250144
> >pkt_pts=22314|tag:lavfi.scene_score=0.248802
> >pkt_pts=24817|tag:lavfi.scene_score=0.208362
> >pkt_pts=25651|tag:lavfi.scene_score=0.205777
> >pkt_pts=26652|tag:lavfi.scene_score=0.230742
> >
> >4.  AV_PIX_FMT_YUV420P10LE
> >time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \
> >"sws_flags=+accurate_rnd+bitexact;movie=../Passengers_Breakfast_4k.mkv,select=gt(scene\,.2)"
> >
> >master:
> >pkt_pts=3587|tag:lavfi.scene_score=0.269890
> >pkt_pts=4838|tag:lavfi.scene_score=0.248957
> >pkt_pts=6548|tag:lavfi.scene_score=0.234619
> >pkt_pts=9969|tag:lavfi.scene_score=0.224912
> >pkt_pts=12471|tag:lavfi.scene_score=0.225158
> >pkt_pts=16225|tag:lavfi.scene_score=0.289809
> >pkt_pts=19645|tag:lavfi.scene_score=0.285013
> >pkt_pts=22314|tag:lavfi.scene_score=0.280295
> >pkt_pts=24817|tag:lavfi.scene_score=0.206486
> >pkt_pts=25651|tag:lavfi.scene_score=0.208556
> >pkt_pts=26652|tag:lavfi.scene_score=0.249577
> >./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f  76.03s user 0.22s system 99% cpu 1:16.27 total
> >
> >patch applied
> >pkt_pts=3587|tag:lavfi.scene_score=0.630004
> >pkt_pts=4838|tag:lavfi.scene_score=0.580807
> >pkt_pts=6548|tag:lavfi.scene_score=0.548095
> >pkt_pts=9969|tag:lavfi.scene_score=0.529728
> >pkt_pts=12471|tag:lavfi.scene_score=0.529921
> >pkt_pts=16225|tag:lavfi.scene_score=0.680033
> >pkt_pts=19645|tag:lavfi.scene_score=0.670753
> >pkt_pts=22314|tag:lavfi.scene_score=0.660605
> >pkt_pts=24817|tag:lavfi.scene_score=0.490141
> >pkt_pts=25651|tag:lavfi.scene_score=0.494594
> >pkt_pts=26652|tag:lavfi.scene_score=0.584942
> >./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f  50.27s user 0.20s system 99% cpu 50.476 total
> >
> >5. AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8
> >are tested by format= with the fate sample: Vertical400kbit.sorenson3.mov like below:
> >time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \
> >"sws_flags=+accurate_rnd+bitexact;movie=../fate-suite/svq3/Vertical400kbit.sorenson3.mov,format=rgba,select=gt(scene\,.25)"
> >
> >patch applied:
> >pkt_pts=1620|tag:lavfi.scene_score=1.000000
> >pkt_pts=4140|tag:lavfi.scene_score=0.656277
> >pkt_pts=5800|tag:lavfi.scene_score=1.000000
> >pkt_pts=6720|tag:lavfi.scene_score=0.346218
> >pkt_pts=8160|tag:lavfi.scene_score=0.987686
> >pkt_pts=9760|tag:lavfi.scene_score=1.000000
> >pkt_pts=14080|tag:lavfi.scene_score=0.629187
> >pkt_pts=15700|tag:lavfi.scene_score=1.000000
> >pkt_pts=18500|tag:lavfi.scene_score=0.356211
> >pkt_pts=20040|tag:lavfi.scene_score=0.284775
> >pkt_pts=21760|tag:lavfi.scene_score=1.000000
> >
> >6. AV_PIX_FMT_YUVJ422P
> >time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \
> >"sws_flags=+accurate_rnd+bitexact;movie=../fate-suite/svq3/Vertical400kbit.sorenson3.mov,format=yuvj422p,select=gt(scene\,.25)"
> >
> >patch applied:
> >pkt_pts=1620|tag:lavfi.scene_score=0.838281
> >pkt_pts=4140|tag:lavfi.scene_score=0.541382
> >pkt_pts=5800|tag:lavfi.scene_score=0.780588
> >pkt_pts=6720|tag:lavfi.scene_score=0.298274
> >pkt_pts=8160|tag:lavfi.scene_score=0.699106
> >pkt_pts=9760|tag:lavfi.scene_score=0.730136
> >pkt_pts=14080|tag:lavfi.scene_score=0.537742
> >pkt_pts=15700|tag:lavfi.scene_score=0.811946
> >pkt_pts=18500|tag:lavfi.scene_score=0.263382
> >pkt_pts=21760|tag:lavfi.scene_score=0.880773
> >
> >7. Remove the P10LE, NV12, NV16 hardware format support, it can't use the 100 for [0,1] normalized.
> >
> >Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> >---
> >libavfilter/f_select.c                     |  6 +++++-
> >tests/ref/fate/filter-metadata-scenedetect | 16 ++++++++--------
> >2 files changed, 13 insertions(+), 9 deletions(-)
> >
> >diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
> >index eed8df34cb..b9cb5f08eb 100644
> >--- a/libavfilter/f_select.c
> >+++ b/libavfilter/f_select.c
> >@@ -498,7 +498,11 @@ static int query_formats(AVFilterContext *ctx)
> >    } else {
> >        int ret;
> >        static const enum AVPixelFormat pix_fmts[] = {
> >-            AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24,
> >+            AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGBA,
> >+            AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8,
> >+            AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P,
> >+            AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P,
> >+            AV_PIX_FMT_YUV420P10LE,
> 
> I think this supposed to be simply AV_PIX_FMT_YUV420P10, because 1/1
> patch only works with native endian, so you should not explicitly
> specify little endian version of the pixel format here, but use
> native endian instead.
> 
Yes, I'm using AV_PIX_FMT_YUV420P10 at first, when I test the sample, showinfo
filter show it's yuv420p10le, so I change it for it.
By your reminder, I think it's should be native endian.

> Regards,
> Marton
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list