[FFmpeg-devel] [PATCH V4 0/2] Add libsvt HEVC encoder wrapper

Jun Zhao mypopydev at gmail.com
Sun Dec 9 11:24:53 EET 2018


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 new_api 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 new_api, then run:

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)

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.


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        |  157 ++++++++++++++
 doc/general.texi         |   14 ++
 libavcodec/Makefile      |    1 +
 libavcodec/allcodecs.c   |    1 +
 libavcodec/libsvt_hevc.c |  506 ++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 684 insertions(+), 0 deletions(-)
 create mode 100644 libavcodec/libsvt_hevc.c



More information about the ffmpeg-devel mailing list