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
516 stars 172 forks source link

Handle corner case of sad64x64 comparison #500

Closed intelmark closed 4 years ago

intelmark commented 4 years ago

Changed the check for pBestSad64x64 to also include being equal to the value, as the computed value might equal pBestSad64x64 without a correct corresponding motion vector ever being set.

We are thus changing to <= to include this corner case.

Signed-off-by: Mark Feldman mark.feldman@intel.com

Closes #481

tianjunwork commented 4 years ago

Hi @intelmark , could you add the test result with -asm 0, -asm 1 with avx2/avx512 here? Please also check MD5. Thank you.

intelmark commented 4 years ago

Testing shows that with -asm 0 and -asm 1, both with avx2 and avx512 encodings with the latest commits in this PR are binary identical.

intelmark commented 4 years ago

Isn’t needed.

Previous check was for the Sad64x64 to be "not equal" to the best one. The fix was to also check if Sad64x64 is "equal". Hence the check now includes all cases and is no longer needed.

tianjunwork commented 4 years ago

Hi @tszumski , could you help review the PR? Thank you.

tianjunwork commented 4 years ago

Hi @intelmark , please rerun the CI fast type. And also check for perf. Thank you.

tszumski commented 4 years ago

Hi Mark, Changes looks good but I have different proposition for AVX changes (less code): https://github.com/tszumski/SVT-HEVC/commit/80362a5b909dcce6577145b98881ecbd02118177

intelmark commented 4 years ago

python SVT-HEVC_FunctionalTests.py Fast -type asm_test

Test Begin... Total Number of Tests: 108 Total Passed: 108 Percentage Passed: 100.0% Time Elapsed: 9 minute(s), 53 second(s)

Speed check: (PR 500) Bin/Release/SvtHevcEncApp -i /testfiles/bbb_1920x1080_420p.yuv -w 1920 -h 1080 -asm 0 -encMode 0 -intra-period 100 -scd 0 -rc 0 -q 22 -n 100 -b Slibbb.265 Average Speed: 2.11 fps Total Encoding Time: 47446 ms Total Execution Time: 47952 ms Average Latency: 33999 ms Max Latency: 46614 ms

(master branch) Average Speed: 2.08 fps Total Encoding Time: 48028 ms Total Execution Time: 48529 ms Average Latency: 34168 ms Max Latency: 47832 ms