From patchwork Sun Dec 9 09:24:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 11346 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id E44A744D911 for ; Sun, 9 Dec 2018 11:25:16 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3B31568A956; Sun, 9 Dec 2018 11:25:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C66C368A90B for ; Sun, 9 Dec 2018 11:25:00 +0200 (EET) Received: by mail-pg1-f180.google.com with SMTP id d72so3598900pga.9 for ; Sun, 09 Dec 2018 01:25:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=2JJiu8nY+4NVfvdKOx0EELevK/oOxZhPihUSOtBME2o=; b=lzhIa/WNPO6oQcRl0lkJOe2F78JGBllTTTr8jF7iuOKhP+T57PiIev2j+nEB6J/pZs vgtDN2sAKwQSE1QWiWsf0MfHinuaMaxFLMCG+4AuFUkbpWykOu0/hmD5cIHYZ1dkVIjT GKNOV/fHWhzMDliqrq2lMvK3vxXnow2IkiZCNwNA0WzdHNmOoO4Wu1iUf7e8CLx2rSPr Drjk/u/nO7U6jcLsaE/sMUg9L9L2z7ET78VlYHUUJbd18UDuInDzv2vQd2V4ZgT/Z+lW 19gC3IYW7jjQkTAthg/c7K/NNPH5bGUoYFEJH/G8C5utoc0/GjeO4I6Yvu1DRooidd1v K0gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=2JJiu8nY+4NVfvdKOx0EELevK/oOxZhPihUSOtBME2o=; b=VLVa6z9D/ejlB1DxVJG1VE7LSNzBTFlSi6n2Zy5wGmH0USa+vWlmKEgnQBR2gLWJ2Q 5MwHn8OSWY2lkeb9w/TAVVMtsp8GaF3i0+wLJPYOvfV2JBrkhO6xTeKvdpOb4NLCvVq8 0SboIqTKPaiPGxq1wPPL6Fm+L5aCwDAAf7SBXBAMS46/TMpV/CF8JaZRRw5k0HKh/Sgn ZjepcRHVP9KeTAO3WzS0+5RRg6M+GVCQfGNYu5TLR3ARji17TGSPeK88crtLaSEUzzJe Yawr1+zSf70r2prsx3oV+Hk8CAeLUqtUAC71UVrgteYgl0f52oCqi6RnZQvw0RHW2jAn Sk0A== X-Gm-Message-State: AA+aEWaRqZiUUd+dIYuI2Ela8Mzrq+nvZ64qawIUmcVgurOy9FcFglQn grTzkmLvxi5XqIUcCd/oQN7fXarn X-Google-Smtp-Source: AFSGD/V6SKE0XiUkBhL9UMNNR9TRvs5kMMs3UGvYUF1vyRRm1Q2f+WLOcFzk41npYlBpWztSekGKiA== X-Received: by 2002:a63:9a52:: with SMTP id e18mr7255765pgo.14.1544347509445; Sun, 09 Dec 2018 01:25:09 -0800 (PST) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id 69sm12548244pgg.86.2018.12.09.01.25.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 01:25:08 -0800 (PST) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 9 Dec 2018 17:24:55 +0800 Message-Id: <1544347495-28528-3-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1544347495-28528-1-git-send-email-mypopydev@gmail.com> References: <1544347495-28528-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH V4 2/2] doc: Add libsvt_hevc encoder docs X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: "Huang, Zhengxu" , hassene , Jun Zhao , Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Add docs for libsvt_hevc encoder in encoders.texi and general.texi Signed-off-by: Jun Zhao Signed-off-by: Huang, Zhengxu Signed-off-by: hassene --- doc/encoders.texi | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/general.texi | 14 +++++ 2 files changed, 171 insertions(+), 0 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 4db7764..822044f 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -1566,6 +1566,163 @@ Set maximum NAL size in bytes. Allow skipping frames to hit the target bitrate if set to 1. @end table +@section libsvt_hevc + +Intel Scalable Video Technology HEVC encoder wrapper. + +This encoder requires the presence of the headers and +library during configuration. You need to explicitly configure the +build with @code{--enable-libsvt}. The library is detected using +@command{pkg-config}. + +For more information about the library see +@url{https://github.com/intel/SVT-HEVC.git}. + +@subsection Options + +The following FFmpeg global options affect the configurations of the +libsvt_hevc encoder. + +@table @option +@item b (@emph{bitrate}) +Set the bitrate (as a number of bits per second). Default is 7M. + +@item refs (@emph{ref}) +Number of reference frames each P-frame can use. The range is from @var{0-16}. +Default is 0(disabled). + +@item g / @option{gop_size} +Set the GOP size. Default is 64. + +@item flags +cgop +Enable closed GOP. + +@item qmin (@emph{min-q}) +Defaults 10 + +@item qmax (@emph{max-q}) +Defaults 48 + +Set minimum/maximum quantisation values. Valid range is from 0 to 51 +(Only used when bit rate control mode @option{rc} is set to 0(cqp) mode. +Has to be qmax > = qmin). + +@item profile (@emph{profile}) +Set profile restrictions. Can assume one of the following possible values: + +Default is 2 (main10). + +@table @samp +@item main +main profile +@item main10 +main10 profile +@end table + +@item level + +@option{profile} sets the value of @emph{profile_idc} and the @emph{constraint_set*_flag}s. +@option{level} sets the value of @emph{level_idc}. + +@end table + +The encoder also has its own specific options: + +@table @option +@item vui +Enables or disables the vui structure in the HEVC elementary +bitstream. 0 = Off, 1 = On. Default is 0 (Off). + +@item aud (@emph{aud}) +Enable use of access unit delimiters when set to 1. Default is 0 (Off). + +@item hielevel +Set hierarchical levels. Can assume one of the following possible values: + +Default is 3 (4level). + +@table @samp +@item flat +none hierarchy level +@item 2level +2-level hierarchy +@item 3level +3-level hierarchy +@item 4level +4-level hierarchy +@end table + +@item la_depth +Set look-ahead depth, depending on bit rate control mode @option{rc}, when +bit rate control mode is set to vbr it's best to set this parameter to be +equal to the intra period value (such is the default set by the encoder), +when cqp is chosen, then a look ahead is recommended. The range is from @var{0-256}. + +@item intra_ref_type +Set intra refesh type. Can assume one of the following possible values: + +Default is 2 (idr). + +@table @samp +@item cra +open group of pictures +@item idr +closed group of pictures +@end table + +@item preset +A preset defining the quality vs density tradeoff point that the +encoding is to be performed at.(e.g. 0 is the highest quality mode, +12 is the highest density mode). The range is from @var{0-12}. Default is 9. + +@item tier +Set @emph{general_tier_flag}. This may affect the level chosen for the stream +if it is not explicitly specified. Can assume one of the following possible values: + +Default is 1 (main). + +@table @samp +@item main +main tier +@item high +high tier +@end table + +@item rc +Set bit rate control mode. Can assume one of the following possible values: + +Default is 0 (cqp). + +@table @samp +@item cqp +Constant QP (CQP) mode +@item vbr +Variable Bit Rate (VBR) mode +@end table + +@item qp +Initial quantization parameter for the intra pictures used when +@option{rc} is cqp mode. The range is from @var{0-51}. Default is 32. + +@item sc_detection +Enables or disables the scene change detection algorithm. Default is 0 (disable). + +@item tune +Set quality tuning mode. Can assume one of the following possible values: + +Default is 1 (objective). + +@table @samp +@item subjective +Subjective quality mode +@item objective +Objective quality mode for PSNR / SSIM / VMAF benchmarking +@end table + +@item bl_mode +Enables or disables Random Access Prediction. Default is 0 (disable). +@end table + @section libtheora libtheora Theora encoder wrapper. diff --git a/doc/general.texi b/doc/general.texi index 2bc33d1..81995a0 100644 --- a/doc/general.texi +++ b/doc/general.texi @@ -126,6 +126,20 @@ The dispatcher is open source and can be downloaded from with the @code{--enable-libmfx} option and @code{pkg-config} needs to be able to locate the dispatcher's @code{.pc} files. +@section Intel SVT-HEVC + +FFmpeg can make use of the SVT-HEVC library for HEVC encoding. + +Go to @url{https://github.com/intel/SVT-HEVC.git} and follow the instructions +for installing the library. Then pass @code{--enable-libsvt} to configure to +enable it. + +@float NOTE +Intel SVT_HEVC encoder is under the BSD-2-Clause Plus Patent License +(see @url{https://spdx.org/licenses/BSD-2-Clause-Patent.html} for +details), you must upgrade FFmpeg's license to GPL in order to use it. +@end float + @section Kvazaar FFmpeg can make use of the Kvazaar library for HEVC encoding.