OpenVisualCloud / SVT-HEVC

SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Other
517 stars 171 forks source link

[Performance]Average speed has big difference in the same encMode (e.g M10 & M11) among 4k between P420/P422/P444 #283

Open liweki opened 5 years ago

liweki commented 5 years ago

[Test environment] OS: Ubuntu 18.04.2 LTS SVT CommitID: 039366e

[Issue Description] While use 4k P420/P422/P444 YUV input clip to run performance test, we found there is big different FPS (Average speed) in the same encMode, the issue is obvious seen in encMode 9-11.

Below is the test data:

SuiteName QP Resolution Type FPS-M9 FPS-M10 FPS-M11
Netflix_Boat_4096x2160_10bit_60Hz_P420 37 4096x2160 P420 50.85 53.81 50.9
Netflix_Boat_4096x2160_10bit_60Hz_P422 37 4096x2160 P422 32.42 37.03 38.13
Netflix_Boat_4096x2160_10bit_60Hz_P444 37 4096x2160 P444 27.45 27.87 27.19

Test command line we used: encoders/SvtHevcEncApp -encMode 11 -w 4096 -h 2160 -i yuvs/Netflix_Boat_4096x2160_10bit_60Hz_P420.yuv -q 37 -fps 60 -b bitstreams/M11_T1_Netflix_Boat_4096x2160_10bit_60Hz_P420_Q37.bin -n 300 -intra-period 55 -bit-depth 10 -color-format 1

wangjingz commented 5 years ago

4K resolution 10bit P444/P422 have more than 30% performance decrease compared with P420 under M9~M11.

lijing0010 commented 5 years ago

@liweki , to test performance, please use -nb (which preload yuv into mem to avoid disk I/O), and set -n > 2000 The command you attach didn't use -nb and 300 frames is too short for a speed test. also please use numatrl or -ss 0/ -ss 1

lijing0010 commented 5 years ago

@liweki please re-run the speed test. This one is an invalid case if you read from disk directly, it's bounded by disk I/O , not encoder. (Since the size of P444 is 2x P420 and P422 is 1.5x of P420. This can map to your speed result.)

wangjingz commented 5 years ago

Updated add parameters -nb and -ss to re-test SVT-HEVC 4k 420/422/444 performance, the test data as following. 422/444 also have the big performance different compared with 420. test clip: Netflix_Boat_4096x2160_10bit_60Hz_P4xx.yuv

encoders/SvtHevcEncApp -encMode 11 -w 4096 -h 2160 -i yuvs/Netflix_Boat_4096x2160_10bit_60Hz_P422.yuv -q 37 -fps 60 -b bitstreams/M11_T1_Netflix_Boat_4096x2160_10bit_60Hz_P422_Q37.bin -n 3000 -nb 3000 -intra-period 55 -bit-depth 10 -color-format 2 -ss 0

Color format encMode -n, -nb -ss fps_time1 fps_time2 fps_time3
420 11 3000 -1 (default) 110.42 109.99 110.91
422 11 3000 -1 (default) 76.26 76.53 76.7
444 11 3000 -1 (default) 51.25 53.41 53.4
420 11 3000 0 118.53 117.12 122.68
422 11 3000 0 82.84 82.74 82.81
444 11 3000 0 67.15 69.12 68.74
420 11 500 -1 (default) 79.69 79.26 79.68
422 11 500 -1 (default) 55.7 55.88 54.63
444 11 500 -1 (default) 40.53 40.63 39.5
420 11 500 0 90.06 92.58 91.56
422 11 500 0 70.01 69.82 63.79
444 11 500 0 52.65 52.48 52.42
420 9 500 -1 (default) 68.83 68.55 69.06
422 9 500 -1 (default) 50.96 50.67 50.97
444 9 500 -1 (default) 38.1 38.1 38.09
420 9 500 1 78.62 78.22 77.94
422 9 500 1 61.2 61.15 60.9
444 9 500 1 46.79 46.89 46.94