Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
On Sun, Dec 23, 2018 at 12:57 AM Jean-Baptiste Kempf wrote: > > Hello, > > On Sat, 22 Dec 2018, at 13:02, Carl Eugen Hoyos wrote: > > > HEVC-compliant encoder library core that achieves excellent > > > density-quality > > > > I don't find it ideal that FFmpeg git claims that an Intel encoder > > does something "excellent" - unrelated to our actual opinion. > > Please rephrase. > > My understanding from the testing we've done, is that SVT is a good encoder > for live cases, but clearly not excellent in all cases, notably the VOD > scenarios that are often used with FFmpeg. For this part, SVT-HEVC will public a white paper (Now the white paper on the internal legal review status, after the review finish, will) > > > > tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and > > > > (and while there, also remove / change "highly optimized") > > Yep, mention AVX-512, not the marketing terms. Will update as the comments :) > > > > Xeon D processors. Intel open source SVT-HEVC encoder in: > > > https://github.com/intel/SVT-HEVC. > > > > > This wrapper work with SVT-HEVC master branch, more information can get > > > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/. > > > > This is irrelevant: > > If SVT is another example of a library that does not plan some kind > > of api stability, we should not merge your patch. > > If api stability is to be expected, the sentence is not necessary. > > API will be stable, from my understandings, but not soon. > > I've talked with the SVT-HEVC guys, I think the API is a stable status now. (Maybe have small change if adds/export some new features, but in this type case, SVT-HEVC will update the version, so we can cover this in the FFmpeg wrappers to check the SVT-HEVC version). ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
On 12/23/18, Helmut K. C. Tessarek wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA512 > > On 2018-12-22 23:35, Carl Eugen Hoyos wrote: >>> API will be stable, from my understandings, but not soon. >> >> If this is correct - I have no idea - the patch should be sent >> again once the api is believed to be stable. > > In that case I'm wondering why libaom has a wrapper in ffmpeg. Just a > few days ago they broke the wrapper. > > What about dav1d? Yes, developers said it shouldn't be used yet, but > ffmpeg still has a wrapper that had to be changed several times already. > > I don't have a proplem that this has happened, but telling someone > that an API has to be stable while there are clearly 3rd party libs, > which APIs are not stable, in ffmpeg is rather a joke - not to say > slightly inconsistent. Completely agree, we should remove unstable wrappers. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 On 2018-12-22 23:35, Carl Eugen Hoyos wrote: >> API will be stable, from my understandings, but not soon. > > If this is correct - I have no idea - the patch should be sent > again once the api is believed to be stable. In that case I'm wondering why libaom has a wrapper in ffmpeg. Just a few days ago they broke the wrapper. What about dav1d? Yes, developers said it shouldn't be used yet, but ffmpeg still has a wrapper that had to be changed several times already. I don't have a proplem that this has happened, but telling someone that an API has to be stable while there are clearly 3rd party libs, which APIs are not stable, in ffmpeg is rather a joke - not to say slightly inconsistent. Cheers, K. C. -BEGIN PGP SIGNATURE- iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAlwfmKsACgkQvgmFNJ1E 3QD7axAAuE1BN6AD205taTQE81wDbxiAVZwewQcPf/45TU/FnlUHKcU/CUnEgM0H wcyvbMSXjjJfVEHrUzHUohOKlQTwVwGyKDvSwaGTU4cjkPFjO4/ZTzlYHPU6QlvN vFgv70SG1kVNQ7UwxZD5Jd2jbnUCmxwiKRq7jkjf3RpK9/yC4i0X1SF51n7JwliI BFHuTSYSEQ/XY66bdnQEJq6McA75wY4Z8s+zWTF+69qN5vrDfZt5/fhZG6L0ttpR ViCiNGB9CG/aPBS2s2C6oOHBx7bfSCdj5QPrIB80YeifUvTXXJpGJ0gHBosljisW yoDR259FcEh/c4ApN0DV7bwptOuILyJI5wTntbT2b8YZxdjyoX3shUTeixtRHnhA fRemFIcOXa5pU0aaTJUxtaBsAcmla58qowmU+mujPYakg/XAVoxDVG3lqIt9/Dkj d8Q+sheuH3z9HemRAG6ddnDhneqQmarcUEma/vVzZKTcWBfW4MXzdR2UWoLS+XhP 6u4C0/uCSOUlqI8dN+FAD9JZODN/Bm/+ybI7A8eLTuzlb6U1Mqwy44pzkgn70YrZ vZ6aEzfyKE9NPpYCkKwHkitRrQtM0jqgN6Ew/tT2xOpqiq0Y8vXV8cbiYxvsMVks PCme8HEZ8X0/j/pP5KeapXotbSfK+nQpe7gOOVCbH6d/H83ooCo= =66Eo -END PGP SIGNATURE- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
2018-12-22 17:57 GMT+01:00, Jean-Baptiste Kempf : > On Sat, 22 Dec 2018, at 13:02, Carl Eugen Hoyos wrote: >> > This wrapper work with SVT-HEVC master branch, more information can get >> > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/. >> >> This is irrelevant: >> If SVT is another example of a library that does not plan some kind >> of api stability, we should not merge your patch. >> If api stability is to be expected, the sentence is not necessary. > > API will be stable, from my understandings, but not soon. If this is correct - I have no idea - the patch should be sent again once the api is believed to be stable. Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
Hello, On Sat, 22 Dec 2018, at 13:02, Carl Eugen Hoyos wrote: > > HEVC-compliant encoder library core that achieves excellent density-quality > > I don't find it ideal that FFmpeg git claims that an Intel encoder > does something "excellent" - unrelated to our actual opinion. > Please rephrase. My understanding from the testing we've done, is that SVT is a good encoder for live cases, but clearly not excellent in all cases, notably the VOD scenarios that are often used with FFmpeg. > > tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and > > (and while there, also remove / change "highly optimized") Yep, mention AVX-512, not the marketing terms. > > Xeon D processors. Intel open source SVT-HEVC encoder in: > > https://github.com/intel/SVT-HEVC. > > > This wrapper work with SVT-HEVC master branch, more information can get > > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/. > > This is irrelevant: > If SVT is another example of a library that does not plan some kind > of api stability, we should not merge your patch. > If api stability is to be expected, the sentence is not necessary. API will be stable, from my understandings, but not soon. -- Jean-Baptiste Kempf - President +33 672 704 734 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
2018-12-22 10:15 GMT+01:00, Jun Zhao : > The Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder) is an > HEVC-compliant encoder library core that achieves excellent density-quality I don't find it ideal that FFmpeg git claims that an Intel encoder does something "excellent" - unrelated to our actual opinion. Please rephrase. > tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and (and while there, also remove / change "highly optimized") > Xeon D processors. Intel open source SVT-HEVC encoder in: > https://github.com/intel/SVT-HEVC. > This wrapper work with SVT-HEVC master branch, more information can get > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/. This is irrelevant: If SVT is another example of a library that does not plan some kind of api stability, we should not merge your patch. If api stability is to be expected, the sentence is not necessary. > For SVT-HEVC build, you can switch the branch to master, then run: This should not be part of the commit message here. [...] Please either: Add some quality metrics in the email. Or: Explain that the license (and the fact that the encoder is not terrible) is sufficient reason to merge. Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper
The Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder) is an HEVC-compliant encoder library core that achieves excellent density-quality tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and Xeon D processors. Intel open source SVT-HEVC encoder in: https://github.com/intel/SVT-HEVC. This wrapper work with SVT-HEVC master branch, more information can get from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/. For SVT-HEVC build, you can switch the branch to master, then run: 1. mkdir build && cd build && cmake ../ && make -j `nproc` && sudo make install in the directory. (Yes, SVT-HEVC now support the full CMake style's build/install after the commit https://github.com/intel/SVT-HEVC/commit/f28d492971ef58dc655ccdc7d819cc18ddb45a2f) For FFmpeg build. need to: 1. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib and export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig before enable SVT-HEVC in FFmpeg. 2. in FFmpeg part, need to "--enable-libsvthevc" options in config step. This patches based on Zhengxu, huang/hassene's hard work. SVT-HEVC encoder have some interesting features compare with the exsting HEVC encoder. - Multidimensional parallelism a). Picture-based parallelism b). Segment-based parallelism (scales over many CPU cores) c). Will support tile-based parallelism soon - Human Visual System(HVS)-optimized classification for a). Data-efficient processsing b). Computationally efficient partitioning and mode decision c). Higher coding efficiency - Resource adaptive scalability a). Speed up factor vs HM 16 about 70 times (4K/60fps content, SVT-HEVC enable subjective quality mode with preset setting with M0(highest quality)) b). Outperformance the x265 encoder in CQP mode Some performance data: - Real-time encoding of up to 1x 8Kp60/10-bit streams on the Platinum 8180 with preset M11/subjective quality mode - Real-time encoding of up to 2x 8Kp50/10-bit streams on the Platinum 8180 with preset M12/subjective quality mode - Real-time encoding of up to 4x 4Kp60/10-bit streams on the Gold 6148 with preset M12/subjective quality mode - Real-time encoding of up to 6x 4Kp60/10-bit streams on the Platinum 8180 with preset M12/subjective quality mode More performance/quality data will be public as a white paper as soon after the internal review finished. V5: - Change the config options (didn't need to enable-gpl for BSD+Patent, it's can compatible with LGPL2+, thanks Xavier correct this part), now just need to "--enable-libsvthevc" option. - Refine the code as the FFmpeg community's comments (https://patchwork.ffmpeg.org/patch/11347/, Tks Mark great review) - Add force_idr option. - Update the docs part as current implement (Tks Gyan review the docs part) V4: - Add more options support and update related docs (profile/aud/tile/...) - Rebase the docs in general.texi based on Gyan's review - Refine the encoder.texi part as Gyan's suggestion V3: - Merge Changelog patch to new wrapper(Tks Moritz/Carl's review) V2: - Refine the error handle (Tks Steven/James's review). - Add docs part (Tks Steven/Moritz's review). - Use named parameters in options. - Follow FFmpeg coding style and Changelog. V1: - Add libsvt hevc encoder wrapper and a Changelog entry. Jun Zhao (2): lavc/svt_hevc: add libsvt hevc encoder wrapper. doc: Add libsvt_hevc encoder docs Changelog|1 + configure|4 + doc/encoders.texi| 145 + doc/general.texi | 15 ++ libavcodec/Makefile |1 + libavcodec/allcodecs.c |1 + libavcodec/libsvt_hevc.c | 526 ++ 7 files changed, 693 insertions(+), 0 deletions(-) create mode 100644 libavcodec/libsvt_hevc.c ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel