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