On Thu, Mar 21, 2019 at 11:09:21AM -0400, Shaofei Wang wrote:
> It enabled MULTIPLE SIMPLE filter graph concurrency, which bring above about
> 4%~20% improvement in some 1:N scenarios by CPU or GPU acceleration
> 
> Below are some test cases and comparison as reference.
> (Hardware platform: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz)
> (Software: Intel iHD driver - 16.9.00100, CentOS 7)
> 
> For 1:N transcode by GPU acceleration with vaapi:
> ./ffmpeg -vaapi_device /dev/dri/renderD128 -hwaccel vaapi \
>     -hwaccel_output_format vaapi \
>     -i ~/Videos/1920x1080p_30.00_x264_qp28.h264 \
>     -vf "scale_vaapi=1280:720" -c:v h264_vaapi -f null /dev/null \
>     -vf "scale_vaapi=720:480" -c:v h264_vaapi -f null /dev/null
> 
>     test results:
>                 2 encoders 5 encoders 10 encoders
>     Improved       6.1%    6.9%       5.5%
> 
> For 1:N transcode by GPU acceleration with QSV:
> ./ffmpeg -hwaccel qsv -c:v h264_qsv \
>     -i ~/Videos/1920x1080p_30.00_x264_qp28.h264 \
>     -vf "scale_qsv=1280:720:format=nv12" -c:v h264_qsv -f null /dev/null \
>     -vf "scale_qsv=720:480:format=nv12" -c:v h264_qsv -f null /dev/null
> 
>     test results:
>                 2 encoders  5 encoders 10 encoders
>     Improved       6%       4%         15%
> 
> For Intel GPU acceleration case, 1 decode to N scaling, by QSV:
> ./ffmpeg -hwaccel qsv -c:v h264_qsv \
>     -i ~/Videos/1920x1080p_30.00_x264_qp28.h264 \
>     -vf "scale_qsv=1280:720:format=nv12,hwdownload" -pix_fmt nv12 -f null 
> /dev/null \
>     -vf "scale_qsv=720:480:format=nv12,hwdownload" -pix_fmt nv12 -f null 
> /dev/null
> 
>     test results:
>                 2 scale  5 scale   10 scale
>     Improved       12%     21%        21%
> 
> For CPU only 1 decode to N scaling:
> ./ffmpeg -i ~/Videos/1920x1080p_30.00_x264_qp28.h264 \
>     -vf "scale=1280:720" -pix_fmt nv12 -f null /dev/null \
>     -vf "scale=720:480" -pix_fmt nv12 -f null /dev/null
> 
>     test results:
>                 2 scale  5 scale   10 scale
>     Improved       25%    107%       148%
> 
> Signed-off-by: Wang, Shaofei <shaofei.w...@intel.com>
> Reviewed-by: Michael Niedermayer <mich...@niedermayer.cc>
> Reviewed-by: Mark Thompson <s...@jkqxz.net>
> ---
> The patch will only effect on multiple SIMPLE filter graphs pipeline,
> Passed fate and refine the possible data race,
> AFL tested, without introducing extra crashs/hangs:
> 
>                           american fuzzy lop 2.52b (ffmpeg_g)
> 
>     ┌─ process timing ─────────────────────────────────────┬─ overall results 
> ─────┐
>     │        run time : 0 days, 9 hrs, 48 min, 48 sec      │  cycles done : 0 
>      │
>     │   last new path : 0 days, 0 hrs, 0 min, 0 sec        │  total paths : 
> 1866   │
>     │ last uniq crash : none seen yet                      │ uniq crashes : 0 
>      │
>     │  last uniq hang : 0 days, 9 hrs, 19 min, 23 sec      │   uniq hangs : 
> 35     │
>     ├─ cycle progress ────────────────────┬─ map coverage 
> ─┴───────────────────────┤
>     │  now processing : 0 (0.00%)         │    map density : 24.91% / 36.60%  
>      │
>     │ paths timed out : 0 (0.00%)         │ count coverage : 2.40 bits/tuple  
>      │
>     ├─ stage progress ────────────────────┼─ findings in depth 
> ────────────────────┤
>     │  now trying : calibration           │ favored paths : 1 (0.05%)         
>      │
>     │ stage execs : 0/8 (0.00%)           │  new edges on : 1100 (58.95%)     
>      │
>     │ total execs : 123k                  │ total crashes : 0 (0 unique)      
>      │
>     │  exec speed : 3.50/sec (zzzz...)    │  total tmouts : 52 (47 unique)    
>      │
>     ├─ fuzzing strategy yields ───────────┴───────────────┬─ path geometry 
> ────────┤
>     │   bit flips : 0/0, 0/0, 0/0                         │    levels : 2     
>      │
>     │  byte flips : 0/0, 0/0, 0/0                         │   pending : 1866  
>      │
>     │ arithmetics : 0/0, 0/0, 0/0                         │  pend fav : 1     
>      │
>     │  known ints : 0/0, 0/0, 0/0                         │ own finds : 1862  
>      │
>     │  dictionary : 0/0, 0/0, 0/0                         │  imported : n/a   
>      │
>     │       havoc : 0/0, 0/0                              │ stability : 
> 76.69%     │
>     │        trim : 0.00%/1828, n/a                       
> ├────────────────────────┘
>     └─────────────────────────────────────────────────────┘          [cpu000: 
> 59%]
> 
>  fftools/ffmpeg.c | 172 
> +++++++++++++++++++++++++++++++++++++++++++++++++------
>  fftools/ffmpeg.h |  13 +++++
>  2 files changed, 169 insertions(+), 16 deletions(-)

This changes the output for some cases like:

./ffmpeg -y -i mm-short.mpg -flags +aic -qscale 2 -vcodec h263p -t 1  -qscale 
10 old.avi

-rw-r----- 1 michael michael 86434 Mar 22 01:07 new.avi
-rw-r----- 1 michael michael 86402 Mar 22 01:07 old.avi

i assume this is unintended


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

"I am not trying to be anyone's saviour, I'm trying to think about the
 future and not be sad" - Elon Musk

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to