Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to encode VVC video like HEVC #25

Closed
harinitw opened this issue Mar 30, 2023 · 4 comments
Closed

How to encode VVC video like HEVC #25

harinitw opened this issue Mar 30, 2023 · 4 comments

Comments

@harinitw
Copy link

good afternoon sir, I installed VVC software, according to your youtube video. I have a small doubt regarding VVC encoding , how to find encoding time bit rate, and psnr like HEVC. In HEVC HM software it shows VC2010, VC21015, VC2016, etc. like HM can we run VVC?
thanks in advance sir..

@MartinEesmaa
Copy link
Owner

MartinEesmaa commented Apr 1, 2023

Hello, @harinitw! Thank you for your reply!

To find encoding time bitrate and PSNR in VVC, you need to encode sample video file to get results, but it's only XPSNR calculation for vvencapp tools.
Here is my example final result of message:

started @ Sat Apr  1 13:38:35 2023
        Total Frames |   Bitrate     Y-PSNR    U-PSNR    V-PSNR    YUV-PSNR
              300    a    7580.0560   34.9054   41.8351   43.4788   36.2365
finished @ Sat Apr  1 13:40:10 2023

Total Time: 95.045 sec. Fps(avg): 3.156 encoded Frames 300

vvencapp reports XPSNR of value 36.2365, but we will use FFmpeg to show PSNR result:

Please note: Raw bitstreams of VVC may result wrong calculation, use mp4box to get real PSNR result: mp4box -add yourfile.266 -new vvc.mp4.

ffmpeg_vvceasy -i original.mp4 -i vvc.mp4 -filter_complex psnr -f null -

Result:
[Parsed_psnr_0 @ 0000025c61f73e40] PSNR y:34.852036 u:41.840254 v:43.497804 average:36.261995 min:33.887332 max:40.456512

If you're looking VVC VTM (VVC Test Model), you can checkout source code of VVC VTM: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM, but it's experts only of a lot commands, nightly day commits and the compiler requires VC2017+ or GCC to build VVC VTM softwares. More information can be found: https://jvet.hhi.fraunhofer.de/

TIP for calculation of VMAF (easy):

ffmpeg_vvceasy -i original.mp4 -i vvc.mp4 -filter_complex libvmaf -f null -

Update: You could also check Multicoreware is developing and release x266 encoder in Q2 2023: https://multicorewareinc.com/faq-x266-webinar/
Update 2: Now the libvmaf is merged with my new FFmpeg build 39f09ed

If you have any issue or question, please let me know.
Thank you! :)

  • Martin Eesmaa

@harinitw
Copy link
Author

sir I successfully encoded a video with the HM programme, but I ran into trouble with the VVC encoding, sir. I watched your YouTube video and built the folder and opened the ALL_BUILD solution file as instructed. I've included a errors of the build solution where the RUN tests issue appeared when I was building the solution. Please explain the process for include configuration files in command parameters. Sincere gratitude, sir

7/43 Test #7: Test_vvenclibtest-timestamps ..................... Passed 60.92 sec
3> Start 8: Test_vvencapp-tooltest
3> 8/43 Test #8: Test_vvencapp-tooltest ...........................***Exception: Illegal 5.66 sec
3> Start 9: Test_vvencFFapp-tooltest
3> 9/43 Test #9: Test_vvencFFapp-tooltest .........................***Exception: Illegal 6.10 sec
3> Start 10: Test_compare_output-tooltest
3>Failed test dependencies: Test_vvencFFapp-tooltest Test_vvencapp-tooltest
3>10/43 Test #10: Test_compare_output-tooltest .....................***Not Run 0.00 sec
3> Start 11: Test_vvencFFapp-tooltest-Scalar
3>11/43 Test #11: Test_vvencFFapp-tooltest-Scalar .................. Passed 10.21 sec
3> Start 12: Test_compare_output-tooltest-Scalar
3>Failed test dependencies: Test_vvencapp-tooltest
3>12/43 Test #12: Test_compare_output-tooltest-Scalar ..............***Not Run 0.00 sec
3> Start 13: Test_vvencFFapp-tooltesttrans
3>13/43 Test #13: Test_vvencFFapp-tooltesttrans ....................***Exception: Illegal 0.49 sec
3> Start 14: Test_output-tooltesttrans
3>Failed test dependencies: Test_vvencFFapp-tooltesttrans
3>14/43 Test #14: Test_output-tooltesttrans ........................***Not Run 0.00 sec
3> Start 15: Test_vvencapp-faster
3>15/43 Test #15: Test_vvencapp-faster ............................. Passed 0.70 sec
3> Start 16: Test_vvencFFapp-faster
3>16/43 Test #16: Test_vvencFFapp-faster ........................... Passed 0.80 sec
3> Start 17: Test_compare_output-faster
3>17/43 Test #17: Test_compare_output-faster ....................... Passed 0.03 sec
3> Start 18: Test_vvencapp-fast
3>18/43 Test #18: Test_vvencapp-fast ............................... Passed 1.23 sec
3> Start 19: Test_vvencFFapp-fast
3>19/43 Test #19: Test_vvencFFapp-fast ............................. Passed 1.29 sec
3> Start 20: Test_compare_output-fast
3>20/43 Test #20: Test_compare_output-fast ......................... Passed 0.02 sec
3> Start 21: Test_vvencFFapp-transcoding
3>21/43 Test #21: Test_vvencFFapp-transcoding ...................... Passed 0.49 sec
3> Start 22: Test_output-transcoding
3>22/43 Test #22: Test_output-transcoding .......................... Passed 0.02 sec
3> Start 23: Test_vvencapp-medium
3>23/43 Test #23: Test_vvencapp-medium .............................***Exception: Illegal 2.32 sec
3> Start 24: Test_vvencFFapp-medium
3>24/43 Test #24: Test_vvencFFapp-medium ...........................***Exception: Illegal 2.30 sec
3> Start 25: Test_compare_output-medium
3>Failed test dependencies: Test_vvencFFapp-medium Test_vvencapp-medium
3>25/43 Test #25: Test_compare_output-medium .......................***Not Run 0.00 sec
3> Start 26: Test_vvencapp-slow
3>26/43 Test #26: Test_vvencapp-slow ............................... Passed 5.78 sec
3> Start 27: Test_vvencFFapp-slow
3>27/43 Test #27: Test_vvencFFapp-slow ............................. Passed 5.99 sec
3> Start 28: Test_compare_output-slow
3>28/43 Test #28: Test_compare_output-slow ......................... Passed 0.02 sec
3> Start 29: Test_vvencapp-medium_noqpa_0thr
3>29/43 Test #29: Test_vvencapp-medium_noqpa_0thr ..................***Exception: Illegal 1.64 sec
3> Start 30: Test_vvencFFapp-medium_noqpa_0thr
3>30/43 Test #30: Test_vvencFFapp-medium_noqpa_0thr ................***Exception: Illegal 1.73 sec
3> Start 31: Test_compare_output-medium_noqpa_0thr
3>Failed test dependencies: Test_vvencFFapp-medium_noqpa_0thr Test_vvencapp-medium_noqpa_0thr
3>31/43 Test #31: Test_compare_output-medium_noqpa_0thr ............***Not Run 0.00 sec
3> Start 32: Test_vvencFFapp-lowdelay_medium_enc
3>32/43 Test #32: Test_vvencFFapp-lowdelay_medium_enc ..............***Exception: Illegal 3.34 sec
3> Start 33: Test_vvencFFapp-lowdelay_medium_dec
3>Failed test dependencies: Test_vvencFFapp-lowdelay_medium_enc
3>33/43 Test #33: Test_vvencFFapp-lowdelay_medium_dec ..............***Not Run 0.00 sec
3> Start 34: Test_vvencapp-medium_rc2p
3>34/43 Test #34: Test_vvencapp-medium_rc2p ........................ Passed 3.33 sec
3> Start 35: Test_vvencFFapp-medium_rc2p
3>35/43 Test #35: Test_vvencFFapp-medium_rc2p ...................... Passed 2.87 sec
3> Start 36: Test_compare_output-medium_rc2p
3>36/43 Test #36: Test_compare_output-medium_rc2p .................. Passed 0.02 sec
3> Start 37: Test_vvencFFapp-medium_rc2p_statsFile1_exp
3>37/43 Test #37: Test_vvencFFapp-medium_rc2p_statsFile1_exp ....... Passed 0.47 sec
3> Start 38: Test_vvencFFapp-medium_rc2p_statsFile2_exp
3>38/43 Test #38: Test_vvencFFapp-medium_rc2p_statsFile2_exp ....... Passed 2.80 sec
3> Start 39: Test_compare_output-medium_rc2p_statsFile_exp
3>39/43 Test #39: Test_compare_output-medium_rc2p_statsFile_exp .... Passed 0.02 sec
3> Start 40: Test_vvencapp-medium_rc2p_statsFile1_easy
3>40/43 Test #40: Test_vvencapp-medium_rc2p_statsFile1_easy ........ Passed 0.47 sec
3> Start 41: Test_vvencapp-medium_rc2p_statsFile2_easy
3>41/43 Test #41: Test_vvencapp-medium_rc2p_statsFile2_easy ........ Passed 2.86 sec
3> Start 42: Test_compare_output-medium_rc2p_statsFile_easy
3>42/43 Test #42: Test_compare_output-medium_rc2p_statsFile_easy ... Passed 0.02 sec
3> Start 43: Cleanup_remove_temp_files
3>43/43 Test #43: Cleanup_remove_temp_files ........................ Passed 0.02 sec
3>
3>67% tests passed, 14 tests failed out of 43
3>
3>Total Test time (real) = 146.58 sec
3>
3>The following tests FAILED:
3> 8 - Test_vvencapp-tooltest (ILLEGAL)
3> 9 - Test_vvencFFapp-tooltest (ILLEGAL)
3> 10 - Test_compare_output-tooltest (Not Run)
3> 12 - Test_compare_output-tooltest-Scalar (Not Run)
3> 13 - Test_vvencFFapp-tooltesttrans (ILLEGAL)
3> 14 - Test_output-tooltesttrans (Not Run)
3> 23 - Test_vvencapp-medium (ILLEGAL)
3> 24 - Test_vvencFFapp-medium (ILLEGAL)
3> 25 - Test_compare_output-medium (Not Run)
3> 29 - Test_vvencapp-medium_noqpa_0thr (ILLEGAL)
3> 30 - Test_vvencFFapp-medium_noqpa_0thr (ILLEGAL)
3> 31 - Test_compare_output-medium_noqpa_0thr (Not Run)
3> 32 - Test_vvencFFapp-lowdelay_medium_enc (ILLEGAL)
3> 33 - Test_vvencFFapp-lowdelay_medium_dec (Not Run)

@MartinEesmaa
Copy link
Owner

MartinEesmaa commented Jun 22, 2023

@harinitw, thank you for your response. Sorry for a long wait time.

Anyway, I'm not kinda sure if you tick check on for ALL_BUILD on Visual Studio, it may be tests wrong or errors, years ago I did default check on ALL_BUILD on my visual studio and did not success for some reason. You can ignore "ALL_BUILD" error message for your option, because it builds all executable files.

For tests, run vvencinterfacetest.exe and vvenclibtest.exe for vvenc tests if it's optional for you to test it out.

But if you want to still report failed tests for your necessary, you can create issue to vvenc or vvdec of Fraunhofer HHI.

  • Martin Eesmaa

@MartinEesmaa
Copy link
Owner

I have to close the issue, because it was generated CMake projects like ALL_BUILD and ZERO_CHECK. ALL_BUILD is reference to make all. See more information: https://cmake.cmake.narkive.com/1h5gz55b/all-build-and-zero-check

Feel free to reopen the issue.

Thank you! :)

Sincerely

  • Martin Eesmaa

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants