Note: The effect of this option is as if the input video is externally
converted to the MSBExtendedBitDepth and then to the InternalBitDepth
and then coded with this value as InputBitDepth. The codec has no
notion of different bit depths.
\\
\Option{OutputBitDepth}&
%\ShortOption{\None} &
\Default{0}&
Specifies the bit depth of the output locally reconstructed video file.
When 0, the setting defaults to the value of InternalBitDepth.
Note: This option has no effect on the decoding process.
\\
\Option{InputBitDepthC}%
\Option{MSBExtendedBitDepthC}%
\Option{InternalBitDepthC}%
\Option{OutputBitDepthC}&
%\ShortOption{\None} &
\Default{0}%
\Default{0}%
\Default{0}%
\Default{0}&
Specifies the various bit-depths for chroma components. These only need
to be specified if non-equal luma and chroma bit-depth processing is
required. When 0, the setting defaults to the corresponding non-Chroma value.
\\
\Option{InputColourSpaceConvert}&
%\ShortOption{\None} &
\Default{\NotSet}&
The colour space conversion to apply to input video. Permitted values are:
\par
\begin{tabular}{lp{0.3\textwidth}}
UNCHANGED & No colour space conversion is applied \\
YCbCrToYCrCb & Swap the second and third components \\
YCbCrtoYYY & Set the second and third components to the values in the first \\
RGBtoGBR & Reorder the three components \\
\end{tabular}
\par
If no value is specified, no colour space conversion is applied. The list may eventually also include RGB to YCbCr or YCgCo conversions.
\\
\Option{SNRInternalColourSpace}&
%\ShortOption{\None} &
\Default{false}&
When this is set true, then no colour space conversion is applied prior to PSNR calculation, otherwise the inverse of InputColourSpaceConvert is applied.
\\
\Option{OutputInternalColourSpace}&
%\ShortOption{\None} &
\Default{false}&
When this is set true, then no colour space conversion is applied to the reconstructed video, otherwise the inverse of InputColourSpaceConvert is applied.
\\
\Option{InputChromaFormat}&
%\ShortOption{\None} &
\Default{420}&
Specifies the chroma format used in the input file. Permitted values (depending on the profile) are 400, 420, 422 or 444.
\\
\Option{ChromaFormatIDC (-cf)}&
%\ShortOption{-cf} &
\Default{0}&
Specifies the chroma format to use for processing. Permitted values (depending on the profile) are 400, 420, 422 or 444; the value of 0 indicates that the value of InputChromaFormat should be used instead.
\\
\Option{MSEBasedSequencePSNR}&
%\ShortOption{\None} &
\Default{false}&
When 0, the PSNR output is a linear average of the frame PSNRs; when 1, additional PSNRs are output which are formed from the average MSE of all the frames. The latter is useful when coding near-losslessly, where occasional frames become lossless.
\\
\Option{PrintFrameMSE}&
%\ShortOption{\None} &
\Default{false}&
When 1, the Mean Square Error (MSE) values of each frame will also be output alongside the default PSNR values.
\\
\Option{PrintSequenceMSE}&
%\ShortOption{\None} &
\Default{false}&
When 1, the Mean Square Error (MSE) values of the entire sequence will also be output alongside the default PSNR values.
\\
\Option{SummaryOutFilename}&
%\ShortOption{\None} &
\Default{false}&
Filename to use for producing summary output file. If empty, do not produce a file.
\\
\Option{SummaryPicFilenameBase}&
%\ShortOption{\None} &
\Default{false}&
Base filename to use for producing summary picture output files. The actual filenames used will have I.txt, P.txt and B.txt appended. If empty, do not produce a file.
\\
\Option{SummaryVerboseness}&
%\ShortOption{\None} &
\Default{false}&
Specifies the level of the verboseness of the text output.
\\
\Option{CabacZeroWordPaddingEnabled}&
%\ShortOption{\None} &
\Default{false}&
When 1, CABAC zero word padding will be enabled. This is currently not the default value for the setting.
\\
\Option{ConformanceWindowMode}&
%\ShortOption{\None} &
\Default{0}&
Specifies how the parameters related to the conformance window are interpreted (cropping/padding).
The following modes are available:
\par
\begin{tabular}{cp{0.43\textwidth}}
0 & No cropping / padding \\
1 & Automatic padding to the next minimum CU size \\
2 & Padding according to parameters HorizontalPadding and VerticalPadding \\
3 & Cropping according to parameters ConfWinLeft, ConfWinRight, ConfWinTop and ConfWinBottom \\
\end{tabular}
\\
\Option{HorizontalPadding (-pdx)}%
\Option{VerticalPadding (-pdy)}&
%\ShortOption{-pdx}%
%\ShortOption{-pdy} &
\Default{0}&
Specifies the horizontal and vertical padding to be applied to the input
video in luma samples when ConformanceWindowMode is 2. Must be a multiple of
the chroma resolution (e.g. a multiple of two for 4:2:0).
\\
\Option{ConfWinLeft}%
\Option{ConfWinRight}%
\Option{ConfWinTop}%
\Option{ConfWinBottom}&
%\ShortOption{\None} &
\Default{0}&
Specifies the horizontal and vertical cropping to be applied to the
input video in luma samples when ConformanceWindowMode is 3.
Must be a multiple of the chroma resolution (e.g. a multiple of
two for 4:2:0).
\\
\Option{FrameRate (-fr)}&
%\ShortOption{-fr} &
\Default{0}&
Specifies the frame rate of the input video.
Note: This option only affects the reported bit rates.
\\
\Option{FrameSkip (-fs)}&
%\ShortOption{-fs} &
\Default{0}&
Specifies a number of frames to skip at beginning of input video file.
\\
\Option{FramesToBeEncoded (-f)}&
%\ShortOption{-f} &
\Default{0}&
Specifies the number of frames to be encoded (see note regarding TemporalSubsampleRatio). When 0, all frames are coded.
\\
\Option{TemporalSubsampleRatio (-ts)}&
%\ShortOption{-fs} &
\Default{1}&
Temporally subsamples the input video sequence. A value of $N$ will skip $(N-1)$ frames of input video after each coded input video frame. Note the FramesToBeEncoded does not account for the temporal skipping of frames, which will reduce the number of frames encoded accordingly. The reported bit rates will be reduced and VUI information is scaled so as to present the video at the correct speed. The minimum and default value is 1.
\\
\Option{FieldCoding}&
%\ShortOption{\None} &
\Default{false}&
When 1, indicates that field-based coding is to be applied.
\\
\Option{TopFieldFirst (-Tff)}&
%\ShortOption{\None} &
\Default{0}&
Indicates the order of the fields packed into the input frame. When 1, the top field is temporally first.
\\
\Option{ClipInputVideoToRec709Range}&
%\ShortOption{\None} &
\Default{0}&
If 1 then clip input video to the Rec. 709 Range on loading when InternalBitDepth is less than MSBExtendedBitDepth.
\\
\Option{ClipOutputVideoToRec709Range}&
%\ShortOption{\None} &
\Default{0}&
If 1 then clip output video to the Rec. 709 Range on saving when OutputBitDepth is less than InternalBitDepth.
\\
\Option{EfficientFieldIRAPEnabled}&
%\ShortOption{\None} &
\Default{1}&
Enable to code fields in a specific, potentially more efficient, order.
\\
\Option{HarmonizeGopFirstFieldCoupleEnabled}&
%\ShortOption{\None} &
\Default{1}&
Enables harmonization of Gop first field couple.
\\
\Option{AccessUnitDelimiter}&
%\ShortOption{\None} &
\Default{0}&
Add Access Unit Delimiter NAL units between all Access Units.
\\
\end{OptionTableNoShorthand}
%%
%% profile, level and conformance options
%%
\begin{OptionTableNoShorthand}{Profile and level parameters}{tab:profile}
\Option{Profile}&
%\ShortOption{\None} &
\Default{none}&
Specifies the profile to which the encoded bitstream complies.
NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
\\
\Option{Tier}&
%\ShortOption{\None} &
\Default{main}&
Specifies the level tier to which the encoded bitsream complies.
Valid values are: main, high.
NB: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
\\
\Option{MaxBitDepthConstraint}&
%\ShortOption{\None} &
\Default{0}&
For --profile=main-RExt, specifies the value to use to derive the general_max_bit_depth constraint flags for RExt profiles; when 0, use $\max(InternalBitDepth, InternalBitDepthC)$
\\
\Option{MaxChromaFormatConstraint}&
%\ShortOption{\None} &
\Default{0}&
For --profile=main-RExt, specifies the chroma-format to use for the general profile constraints for RExt profiles; when 0, use the value of ChromaFormatIDC.
\\
\Option{IntraConstraintFlag}&
%\ShortOption{\None} &
\Default{false}&
For --profile=main-RExt, specifies the value of general_intra_constraint_flag to use for RExt profiles.
\\
\Option{OnePictureOnlyConstraintFlag}&
%\ShortOption{\None} &
\Default{false}&
For --profile=main-RExt, specifies the value of general_one_picture_only_constraint_flag to use for RExt profiles.
\\
\Option{LowerBitRateConstraintFlag}&
%\ShortOption{\None} &
\Default{true}&
Specifies the value of general_lower_bit_constraint_flag to use for RExt profiles.
\\
\Option{ProgressiveSource}&
%\ShortOption{\None} &
\Default{false}&
Specifies the value of general_progressive_source_flag
\\
\Option{InterlacedSource}&
%\ShortOption{\None} &
\Default{false}&
Specifies the value of general_interlaced_source_flag
\\
\Option{NonPackedSource}&
%\ShortOption{\None} &
\Default{false}&
Specifies the value of general_non_packed_constraint_flag
\\
\Option{FrameOnly}&
%\ShortOption{\None} &
\Default{false}&
Specifies the value of general_frame_only_constraint_flag
Enables or disables the use of early CU determination. When enabled, skipped CUs will not be split further.
\\
\Option{CFM}&
%\ShortOption{\None} &
\Default{false}&
Enables or disables the use of Cbf-based fast encoder mode. When enabled, once a 2Nx2N CU has been evaluated, if the RootCbf is 0, further PU splits will not be evaluated.
\\
\Option{ESD}&
%\ShortOption{\None} &
\Default{false}&
Enables or disables the use of early skip detection. When enabled, the skip mode will be tested before any other.
\\
\Option{FEN}&
%\ShortOption{\None} &
\Default{0}&
Controls the use of different fast encoder coding tools. The following
tools are supported in different combinations:
\par
\begin{tabular}{cp{0.45\textwidth}}
a & In the SAD computation for blocks having size larger than 8, only
the lines of even rows in the block are considered. \\
b & The number of iterations used in the bi-directional motion vector
refinement in the motion estimation process is reduced from 4 to 1. \\
\end{tabular}
Depending on the value of the parameter, the following combinations are
supported:
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Disable all modes \\
1 & Use both a \& b tools\\
2 & Use only tool b \\
3 & Use only tool a \\
\end{tabular}
\\
\Option{FDM}&
%\ShortOption{\None} &
\Default{true}&
Enables or disables the use of fast encoder decisions for 2Nx2N merge
mode. When enabled, the RD cost for the merge mode of the current
candidate is not evaluated if the merge skip mode was the best merge
mode for one of the previous candidates.
\\
\Option{RDpenalty}&
%\ShortOption{\None} &
\Default{0}&
RD-penalty for 32x32 TU for intra in non-intra slices.
Enabling this parameter can reduce the visibility of CU boundaries in the coded picture.
In addition, independent on the IntraQPFactor, if HadamardME=false, then for an inter slice the final $\lambda$ is scaled by a factor of $0.95$.
\\
\Option{CbQpOffset (-cbqpofs)}%
\Option{CrQpOffset (-crqpofs)}&
%\ShortOption{-cbqpofs}%
%\ShortOption{-crqpofs} &
\Default{0}%
\Default{0}&
Global offset to apply to the luma QP to derive the QP of Cb and Cr
respectively. These options correspond to the values of cb_qp_offset
and cr_qp_offset, that are transmitted in the PPS. Valid values are in
the range $[-12, 12]$.
\\
\Option{LumaLevelToDeltaQPMode}&
\Default{0}&
Luma-level based Delta QP modulation.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & not used \\
1 & Based on CTU average \\
2 & Based on Max luma in CTU\\
\end{tabular}
\\
\Option{LumaLevelToDeltaQPMaxValWeight}&
\Default{1.0}&
Weight of per block maximum luma value when LumaLevelToDeltaQPMode=2.
\\
\Option{LumaLevelToDeltaQPMappingLuma}&
\Default{\NotSet}&
Specify luma values to use for the luma to delta QP mapping instead of using default values. Default values are: 0, 301, 367, 434, 501, 567, 634, 701, 767, 834.
\\
\Option{LumaLevelToDeltaQPMappingDQP}&
\Default{\NotSet}&
Specify DQP values to use for the luma to delta QP mapping instead of using default values. Default values are: -3, -2, -1, 0, 1, 2, 3, 4, 5, 6.
\\
\Option{WCGPPSEnable}&
\Default{0}&
Enable the WCG PPS modulation of the chroma QP, rather than the slice,
which, unlike slice-level modulation, allows the deblocking process
to consider the adjustment.
To use, specify a fractional QP:
the first part of the sequence will use $qpc=floor(QP)$ in the following
calculation and PPS-0; the second part of the sequence will use $qpc=ceil(QP)$
and PPS-1. The $chromaQp$ that is then stored in the PPS is given as:
$clip(round(WCGPPSXXQpScale*baseCQp)+XXQpOffset)$ where $baseCQp=(WCGPPSChromaQpScale*qpc+WCGPPSChromaQpOffset)$.
Note that the slices will continue to have a delta QP applied.
\\
\Option{WCGPPSChromaQpScale}&
\Default{0.0}&
Scale parameter for the linear chroma QP offset mapping used for WCG content.
\\
\Option{WCGPPSChromaQpOffset}&
\Default{0.0}&
Offset parameter for the linear chroma QP offset mapping used for WCG content.
\\
\Option{WCGPPSCbQpScale}%
\Option{WCGPPSCrQpScale}&
\Default{1.0}&
Per chroma component QP scale factor depending on capture and representation color space.
For Cb component with BT.2020 container use 1.14; for BT.709 material and 1.04 for P3 material.
For Cr component with BT.2020 container use 1.79; for BT.709 material and 1.39 for P3 material.
\\
\Option{SliceChromaQPOffsetPeriodicity}&
\Default{0}&
Defines the periodicity for inter slices that use the slice-level chroma QP offsets, as defined by SliceCbQpOffsetIntraOrPeriodic and SliceCrQpOffsetIntraOrPeriodic. A value of 0 disables the periodicity. It is intended to be used in low-delay configurations where an regular intra period is not defined.
\\
\Option{SliceCbQpOffsetIntraOrPeriodic}%
\Option{SliceCrQpOffsetIntraOrPeriodic}&
\Default{0}&
Defines the slice-level QP offset to be used for intra slices, or once every 'SliceChromaQPOffsetPeriodicity' pictures.
\\
\Option{MaxCuDQPDepth (-dqd)}&
%\ShortOption{\None} &
\Default{0}&
Defines maximum depth of a minimum CuDQP for sub-LCU-level delta QP.
MaxCuDQPDepth shall be greater than or equal to SliceGranularity.
\\
\Option{RDOQ}&
%\ShortOption{\None} &
\Default{true}&
Enables or disables rate-distortion-optimized quantization for transformed TUs.
\\
\Option{RDOQTS}&
%\ShortOption{\None} &
\Default{true}&
Enables or disables rate-distortion-optimized quantization for transform-skipped TUs.
\\
\Option{SelectiveRDOQ}&
%\ShortOption{\None} &
\Default{false}&
Enables or disables selective rate-distortion-optimized quantization.
A simple quantization is use to pre-analyze, whether to bypass the RDOQ process or not.
If all the coefficients are quantized to 0, the RDOQ process is bypassed.
Otherwise, the RDOQ process is performed as usual.
\\
\Option{DeltaQpRD (-dqr)}&
%\ShortOption{-dqr} &
\Default{0}&
Specifies the maximum QP offset at slice level for multi-pass slice
encoding. When encoding, each slice is tested multiple times by using
slice QP values in the range $[-\mathrm{DeltaQpRD}, \mathrm{DeptaQpRD}]$,
and the best QP value is chosen as the slice QP.
\\
\Option{MaxDeltaQP (-d)}&
%\ShortOption{-d} &
\Default{0}&
Specifies the maximum QP offset at the largest coding unit level for
the block-level adaptive QP assignment scheme. In the encoder, each
largest coding unit is tested multiple times by using the QP values in
the range $[-\mathrm{MaxDeltaQP}, \mathrm{MaxDeltaQP}]$, and the best QP
value is chosen as the QP value of the largest coding unit.
\\
\Option{dQPFile (-m)}&
%\ShortOption{-m} &
\Default{\NotSet}&
Specifies a file containing a list of QP deltas. The $n$-th line
(where $n$ is 0 for the first line) of this file corresponds to the QP
value delta for the picture with POC value $n$.
\\
\Option{AdaptiveQp (-aq)}&
%\ShortOption{-aq} &
\Default{false}&
Enable or disable QP adaptation based upon a psycho-visual model.
\\
\Option{MaxQPAdaptationRange (-aqr)}&
%\ShortOption{-aqps} &
\Default{6}&
Specifies the maximum QP adaptation range.
\\
\Option{AdaptiveQpSelection (-aqps)}&
%\ShortOption{-aqps} &
\Default{false}&
Specifies whether QP values for non-I frames will be calculated on the
fly based on statistics of previously coded frames.
Specifies the first bit stream to be read until a pre-defined switch point is encountered.
\\
\Option{DecodeBitstream2}&
%\ShortOption{\None} &
\Default{}&
Specifies the second bit stream, to be read after the first random access point after a QP switch point (specified using SwitchPOC and SwitchQP).
\\
\Option{DebugPOC}&
%\ShortOption{\None} &
\Default{-1}&
Specifies a POC, at which a bit stream specified using DebugBitstream or DecodeBitstream1 is no longer read, but rather normal encoding is started.
\\
\Option{DebugCTU}&
%\ShortOption{\None} &
\Default{-1}&
When the POC is encountered at which normal encoding is to be resumed, if set, this option specifies that CTUs up to the specified CTU(in raster scan addressing order are to be read from the specified bit stream, after which normal encoding is started the specified CTU.
\\
\Option{SwitchPOC}&
%\ShortOption{\None} &
\Default{-1}&
Specifies a POC, at which the specified bit stream is no longer read, but rather normal encoding is started.
\\
\Option{SwitchDQP}&
%\ShortOption{\None} &
\Default{0}&
Specifies a QP offset to be applied when normal encoding is started as specified by SwitchPOC.
\\
\Option{FastForwardToPOC}&
%\ShortOption{\None} &
\Default{0}&
When encoding a bit streams, all frames that are not references including transitive references to the specified POC are skipped.
\\
\Option{StopAfterFFtoPOC}&
%\ShortOption{\None} &
\Default{false}&
If enabled, causes the encoder to not encode any frame after the frame specified by FastForwardToPOC option, in encoding order.
Specifies the horizontal size of the sample aspect ratio.
\\
\Option{SarHeight}&
\Default{0}&
Specifies the vertical size of the sample aspect ratio.
\\
\Option{OverscanInfoPresent}&
\Default{false}&
Signals whether overscan_info_present_flag is present.
\\
\Option{OverscanAppropriate}&
\Default{false}&
Indicates whether cropped decoded pictures are suitable for display using overscan.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Indicates that the decoded pictures should not be displayed using overscan. \\
1 & Indicates that the decoded pictures may be displayed using overscan. \\
\end{tabular}
\\
\Option{VideoSignalTypePresent}&
\Default{false}&
Signals whether video_format, video_full_range_flag, and colour_description_present_flag are present.
\\
\Option{VideoFormat}&
\Default{5}&
Indicates representation of pictures.
\\
\Option{VideoFullRange}&
\Default{false}&
Indicates the black level and range of luma and chroma signals.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Indicates that the luma and chroma signals are to be scaled prior to display. \\
1 & Indicates that the luma and chroma signals are not to be scaled prior to display. \\
\end{tabular}
\\
\Option{ColourDescriptionPresent}&
\Default{false}&
Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present.
\\
\Option{ColourPrimaries}&
\Default{2}&
Indicates chromaticity coordinates of the source primaries.
\\
\Option{TransferCharateristics}&
\Default{2}&
Indicates the opto-electronic transfer characteristics of the source.
\\
\Option{MatrixCoefficients}&
\Default{2}&
Describes the matrix coefficients used in deriving luma and chroma from RGB primaries.
\\
\Option{ChromaLocInfoPresent}&
\Default{false}&
Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present.
\\
\Option{ChromaSampleLocTypeTopField}&
\Default{0}&
Specifies the location of chroma samples for top field.
\\
\Option{ChromaSampleLocTypeBottomField}&
\Default{0}&
Specifies the location of chroma samples for bottom field.
\\
\Option{NeutralChromaIndication}&
\Default{false}&
Indicates that the value of all decoded chroma samples is equal to 1<<(BitDepthCr-1).
\\
\Option{DefaultDisplayWindowFlag}&
\Default{flag}&
Indicates the presence of the Default Window parameters.
\par
\begin{tabular}{cp{0.45\textwidth}}
false & Disabled \\
true & Enabled \\
\end{tabular}
\\
\Option{DefDispWinLeftOffset}%
\Option{DefDispWinRightOffset}%
\Option{DefDispWinTopOffset}%
\Option{DefDispWinBottomOffset}&
\Default{0}&
Specifies the horizontal and vertical offset to be applied to the
input video from the conformance window in luma samples.
Must be a multiple of the chroma resolution (e.g. a multiple of two for 4:2:0).
\\
\Option{FrameFieldInfoPresentFlag}&
\Default{false}&
Specificies the value of the VUI syntax element `frame_field_info_present_flag', which indicates that pic_struct and field coding related values are present in picture timing SEI messages.
\\
\Option{PocProportionalToTimingFlag}&
\Default{false}&
Specificies the value of the VUI syntax element `vui_poc_proportional_to_timing_flag', which indicates that the POC value is proportional to the output time with respect to the first picture in the CVS.
\\
\Option{NumTicksPocDiffOneMinus}&
\Default{0}&
Specificies the value of the VUI syntax element `vui_num_ticks_poc_diff_one_minus1', which specifies the number of clock ticks corresponding to a difference of picture order count values equal to 1, and is used only when PocProportionalToTimingFlag is true.
\\
\Option{BitstreamRestriction}&
\Default{false}&
Signals whether bitstream restriction parameters are present.
\\
\Option{TilesFixedStructure}&
\Default{false}&
Indicates that each active picture parameter set has the same values of the syntax elements related to tiles.
\\
\Option{MotionVectorsOverPicBoundaries}&
\Default{false}&
Indicates that no samples outside the picture boundaries are used for inter prediction.
\\
\Option{MaxBytesPerPicDenom}&
\Default{2}&
Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units associated with any coded picture.
\\
\Option{MaxBitsPerMinCuDenom}&
\Default{1}&
Indicates an upper bound for the number of bits of coding_unit() data.
\\
\Option{Log2MaxMvLengthHorizontal}&
\Default{15}&
Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units.
\\
\Option{Log2MaxMvLengthVertical}&
\Default{15}&
Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units.
lossless & As with sequence_level_lossless, but QP is also set to 0 (this will be deprecated in the future) \\
mixed_lossless_lossy & As with sequence_level_lossless, but QP'=4 is used for pre-estimates of transquant-bypass blocks \\
\end{tabular}
\\
\Option{ExtendedPrecision}&
\Default{false}&
Specifies the use of extended_precision_processing flag. Note that unless the HIGH_BIT_DEPTH_SUPPORT macro in TypeDef.h is enabled, all internal bit depths must be 8 when the ExtendedPrecision setting is enabled.
This setting is only valid for the 16-bit RExt profiles.
\\
\Option{HighPrecisionPredictionWeighting}&
\Default{false}&
Specifies the value of high_precision_prediction_weighting_flag. This setting is only valid for the 16-bit or 4:4:4 RExt profiles.
\\
\Option{CrossComponentPrediction}&
\Default{false}&
When true, specifies the use of the cross component prediction tool (4:4:4 processing only). Version 1 and some Version 2 (RExt) profiles require this to be false.
\\
\Option{ReconBasedCrossCPredictionEstimate}&
\Default{false}&
If true, then when determining the alpha value for cross-component prediction, use the reconstructed residual rather than the pre-transform encoder-side residual
\\
\Option{SaoLumaOffsetBitShift}
\Option{SaoChromaOffsetBitShift}&
\Default{0}
\Default{0}&
Specifies the shift to apply to the SAO parameters. If negative, an estimate will be calculated based upon the initial QP. Version 1 and some Version 2 (RExt) profiles require this to be 0.
\\
\Option{TransformSkipLog2MaxSize}&
\Default{2}&
Specifies the maximum TU size for which transform-skip can be used; the minimum value is 2. Version 1 and some Version 2 (RExt) profiles require this to be 2.
\\
\Option{ImplicitResidualDPCM}&
\Default{false}&
When true, specifies the use of the implicitly signalled residual RDPCM tool (for intra). Version 1 and some Version 2 (RExt) profiles require this to be false.
\\
\Option{ExplicitResidualDPCM}&
\Default{false}&
When true, specifies the use of the explicitly signalled residual RDPCM tool (for intra-block-copy and inter). Version 1 and some Version 2 (RExt) profiles require this to be false.
\\
\Option{ResidualRotation}&
\Default{false}&
When true, specifies the use of the residual rotation tool. Version 1 and some Version 2 (RExt) profiles require this to be false.
\\
\Option{SingleSignificanceMapContext}&
\Default{false}&
When true, specifies the use of a single significance map context for transform-skipped and transquant-bypassed TUs. Version 1 and some Version 2 (RExt) profiles require this to be false.
\\
\Option{GolombRiceParameterAdaptation}&
\Default{false}&
When true, enable the adaptation of the Golomb-Rice parameter over the course of each slice. Version 1 and some Version 2 (RExt) profiles require this to be false.
\\
\Option{AlignCABACBeforeBypass}&
\Default{false}&
When true, align the CABAC engine to a defined fraction of a bit prior to coding bypass data (including sign bits) when coeff_abs_level_remaining syntax elements are present in the group.
This must always be true for the high-throughput-RExt profile, and false otherwise.
\\
\Option{IntraReferenceSmoothing}&
\Default{true}&
When true, enable intra reference smoothing, otherwise disable it. Version 1 and some Version 2 (RExt) profiles require this to be true.
\\
\end{OptionTableNoShorthand}
\subsection{Encoder SEI parameters}
The table below lists the SEI messages defined for Version 1 and Range-Extensions, and if available, the respective table that lists the controls within the HM Encoder to include the messages within the bit stream.
\begin{SEIListTable}{List of Version 1 and RExt SEI messages}
0 & Buffering period & Table \ref{tab:sei-buffering-period}\\
Specifies luma sample value of the extended dynamic range assigned decoded pictures.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Frame packing arrangement SEI message encoder parameters}{tab:sei-frame-packing-arrangement}
\Option{SEIFramePacking}&
\Default{0}&
Enables or disables the insertion of the Frame packing arrangement SEI messages.
\\
\Option{SEIFramePackingType}&
\Default{0}&
Indicates the arrangement type in the Frame packing arrangement SEI message.
This option has no effect if SEIFramePacking is disabled.
\par
\begin{tabular}{cp{0.35\textwidth}}
3 & Side by Side \\
4 & Top Bottom \\
5 & Frame Alternate \\
\end{tabular}
\\
\Option{SEIFramePackingInterpretation}&
\Default{0}&
Indicates the constituent frames relationship in the Frame packing arrangement SEI message.
This option has no effect if SEIFramePacking is disabled.
\par
\begin{tabular}{cp{0.35\textwidth}}
0 & Unspecified \\
1 & Frame 0 is associated with the left view of a stereo pair \\
2 & Frame 0 is associated with the right view of a stereo pair \\
\end{tabular}
\\
\Option{SEIFramePackingQuincunx}&
\Default{0}&
Enables or disables the quincunx_sampling signalling in the
Frame packing arrangement SEI messages. This option has no
effect if SEIFramePacking is disabled.
\\
\Option{SEIFramePackingId}&
\Default{0}&
Indicates the session number in the Frame packing arrangement
SEI messages. This option has no effect if SEIFramePacking is
disabled.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Display orientation SEI message encoder parameters}{tab:sei-display-orientation}
\Option{SEIDisplayOrientation}&
\Default{0}&
Enables or disables the insertion of the Display orientation
SEI messages.
\par
\begin{tabular}{cp{0.20\textwidth}}
0 & Disabled \\
N: $0 < N < (2^{16}-1)$& Enable display orientation SEI message with
\mbox{anticlockwise_rotation = N}
and \mbox{display_orientation_repetition_period = 1}\\
\end{tabular}
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Green Metadata SEI message encoder parameters}{tab:sei-green-metadata}
\Option{SEIGreenMetadataType}&
\Default{0}&
Specifies the type of metadata that is present in the SEI message.
\par
\begin{tabular}{cp{0.35\textwidth}}
0 & Reserved \\
1 & Metadata enabling quality recovery after low-power encoding is present \\
\end{tabular}
\\
\Option{SEIXSDMetricType}&
\Default{0}&
Indicates the type of the objective quality metric.
\par
\begin{tabular}{cp{0.35\textwidth}}
0 & PSNR is used as objective quality metric \\
\end{tabular}
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Structure of pictures information SEI message encoder parameters}{tab:sei-sop-info}
\Option{SEISOPDescription}&
\Default{0}&
Enables or disables the insertion of the Structure of pictures information SEI messages.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Active parameter sets SEI message encoder parameters}{tab:sei-active-parameter-sets}
\Option{SEIActiveParameterSets}&
\Default{0}&
Enables or disables the insertion of the Active parameter sets
SEI messages.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Decoding unit information SEI message encoder parameters}{tab:sei-decoding-unit-info}
\Option{SEIDecodingUnitInfo}&
\Default{0}&
Enables or disables the insertion of the Decoding unit information
SEI messages. This option has no effect if VuiParametersPresent is disabled.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Temporal sub-layer zero index SEI message encoder parameters}{tab:sei-temporal-level-0}
\Option{SEITemporalLevel0Index}&
\Default{0}&
Enables or disables the insertion of the Temporal level zero index
SEI messages.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Decoded picture hash SEI message encoder parameters}{tab:sei-decoded-picture-hash}
\Option{SEIDecodedPictureHash}&
\Default{0}&
Enables or disables the calculation and insertion of the Decoded picture hash
SEI messages.
\par
\begin{tabular}{cp{0.35\textwidth}}
0 & Disabled \\
1 & Transmits MD5 in SEI message and writes the value to the encoder
log \\
2 & Transmits CRC in SEI message and writes the value to the encoder
log \\
3 & Transmits checksum in SEI message and writes the value to the encoder
log \\
\end{tabular}
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Scalable nesting SEI message encoder parameters}{tab:sei-scalable-nesting}
\Option{SEIScalableNesting}&
\Default{0}&
Enables or disables the use of the scalable nesting SEI messages.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Region refresh information SEI message encoder parameters}{tab:sei-region-refresh-info}
\Option{SEIGradualDecodingRefreshInfo}&
\Default{0}&
Enables or disables the insertion of the Gradual decoding refresh information
SEI messages.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{No display SEI message encoder parameters}{tab:sei-no-display}
\Option{SEINoDisplay}&
\Default{0}&
When non-zero, generate no-display SEI message for temporal layer N or higher.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Time code SEI message encoder parameters}{tab:sei-time-code}
\Option{SEITimeCodeEnabled}&
\Default{false}&
When true (non-zero), generate Time code SEI messages.
\\
\Option{SEITimeCodeNumClockTs}&
\Default{0}&
Number of clock time sets, in the range of 0 to 3 (inclusive).
\\
\Option{SEITimeCodeTimeStampFlag}&
\Default{\None}&
Time stamp flag associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeFieldBasedFlag}&
\Default{\None}&
Field based flag associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeCountingType}&
\Default{\None}&
Counting type associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeFullTsFlag}&
\Default{\None}&
Full time stamp flag associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeDiscontinuityFlag}&
\Default{\None}&
Discontinuity flag associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeCntDroppedFlag}&
\Default{\None}&
Counter dropped flag associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeNumFrames}&
\Default{\None}&
Number of frames associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeSecondsFlag}&
\Default{\None}&
Flag to signal seconds value presence in each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeMinutesFlag}&
\Default{\None}&
Flag to signal minutes value presence in each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeHoursFlag}&
\Default{\None}&
Flag to signal hours value presence in each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeSecondsValue}&
\Default{\None}&
Seconds value for each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeMinutesValue}&
\Default{\None}&
Minutes value for each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeHoursValue}&
\Default{\None}&
Hours value for each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeOffsetLength}&
\Default{\None}&
Time offset length associated to each time set (comma or space separated list of entries).
\\
\Option{SEITimeCodeTimeOffset}&
\Default{\None}&
Time offset associated to each time set (comma or space separated list of entries).
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Mastering display colour volume SEI message encoder parameters}{tab:sei-mastering-display-colour-volume}
\Option{SEIMasteringDisplayColourVolume}&
\Default{false}&
When true (non-zero), generate Mastering display colour volume SEI message.
\\
\Option{SEIMasteringDisplayMaxLuminance}&
\Default{10000}&
Specifies the mastering display maximum luminance value in units of 1/10000 candela per square metre.
\\
\Option{SEIMasteringDisplayMinLuminance}&
\Default{0}&
Specifies the mastering display minimum luminance value in units of 1/10000 candela per square metre.
\\
\Option{SEIMasteringDisplayPrimaries}&
\Default{0,50000, 0,0, 50000,0}&
Mastering display primaries for all three colour planes in CIE xy coordinates in increments of 1/50000 (results in the ranges 0 to 50000 inclusive).
\\
\Option{SEIMasteringDisplayWhitePoint}&
\Default{16667, 16667}&
Mastering display white point CIE xy coordinates in normalized increments of 1/50000 (e.g. 0.333 = 16667).
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Segmented rectangular frame packing arrangement SEI message encoder parameters}{tab:sei-seg-rect-fpa}
\Option{SEISegmentedRectFramePacking}&
\Default{0}&
Controls generation of segmented rectangular frame packing SEI messages.
\\
\Option{SEISegmentedRectFramePackingCancel}&
\Default{false}&
If true, cancels the persistence of any previous SRFPA SEI message.
\\
\Option{SEISegmentedRectFramePackingType}&
\Default{0}&
Specifies the arrangement of the frames in the reconstructed picture.
\\
\Option{SEISegmentedRectFramePackingPersistence}&
\Default{false}&
If false the SEI applies to the current frame only.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Temporal motion-constrained tile sets SEI message encoder parameters}{tab:sei-tmcts}
\Option{SEITempMotionConstrainedTileSets}&
\Default{false}&
When true (non-zero), generates example temporal motion constrained tile sets SEI messages.
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Chroma resampling filter hint SEI message encoder parameters}{tab:chroma-resampling-filter-hint}
\Option{SEIChromaResamplingFilterHint}&
\Default{false}&
When true (non-zero), generates example chroma sampling filter hint SEI messages.
\\
\Option{SEIChromaResamplingHorizontalFilterType}&
\Default{2}&
Defines the index of the chroma sampling horizontal filter:
\par
\begin{tabular}{cp{0.35\textwidth}}
0 & Unspecified \\
1 & Filters signalled within the SEI message \\
2 & Filters as described by SMPTE RP 2050-1:2012\\
\end{tabular}
\\
\Option{SEIChromaResamplingVerticalFilterType}&
\Default{2}&
Defines the index of the chroma sampling vertical filter:
\par
\begin{tabular}{cp{0.35\textwidth}}
0 & Unspecified \\
1 & Filters signalled within the SEI message \\
2 & Filters as described in the 5/3 filter description of ITU-T Rec. T.800 | ISO/IEC 15444-1\\
\end{tabular}
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Knee function SEI message encoder parameters}{tab:sei-knee-function}
\Option{SEIKneeFunctionInfo}&
\Default{false}&
Enables (true) or disables (false) the insertion of the Knee function SEI messages.
\\
\Option{SEIKneeFunctionId}&
\Default{0}&
Specifies Id of Knee function SEI message for a given session.
\\
\Option{SEIKneeFunctionCancelFlag}&
\Default{false}&
Indicates that Knee function SEI message cancels the persistance (true) or follows (false).
\\
\Option{SEIKneeFunctionPersistenceFlag}&
\Default{true}&
Specifies the persistence of the Knee function SEI message.
\\
\Option{SEIKneeFunctionInputDrange}&
\Default{1000}&
Specifies the peak luminance level for the input picture of Knee function SEI messages.
\\
\Option{SEIKneeFunctionInputDispLuminance}&
\Default{100}&
Specifies the expected display brightness for the input picture of Knee function SEI messages.
\\
\Option{SEIKneeFunctionOutputDrange}&
\Default{4000}&
Specifies the peak luminance level for the output picture of Knee function SEI messages.
\\
\Option{SEIKneeFunctionOutputDispLuminance}&
\Default{800}&
Specifies the expected display brightness for the output picture of Knee function SEI messages.
\\
\Option{SEIKneeFunctionNumKneePointsMinus1}&
\Default{2}&
Specifies the number of knee points - 1.
\\
\Option{SEIKneeFunctionInputKneePointValue}&
\Default{}&
Array of input knee point. Default table can be set to the following:
\par
\begin{tabular}{cp{0.45\textwidth}}
600 800 900
\end{tabular}
\\
\Option{SEIKneeFunctionOutputKneePointValue}&
\Default{}&
Array of output knee point. Default table can be set to the following:
\par
\begin{tabular}{cp{0.45\textwidth}}
100 250 450
\end{tabular}
\\
\end{OptionTableNoShorthand}
\begin{OptionTableNoShorthand}{Colour remapping SEI message encoder parameters}{tab:sei-colour-remapping}
\Option{SEIColourRemappingInfoFileRoot (-cri)}&
\Default{\NotSet}&
Specifies the prefix of input Colour Remapping Information file. Prefix is completed by ``_x.txt'' where x is the POC number.
The contents of the file are a list of the SEI message's syntax element names (in decoding order) immediately followed by a `:' and then the associated value.
An example file can be found in cfg/misc/example_colour_remapping_sei_encoder_0.txt.
\\
\end{OptionTableNoShorthand}
%\Option{SEITimeCode} &
%\Default{false} &
%When true, generate time code SEI messages.
%\\
%%
%%
%%
\subsection{Hardcoded encoder parameters}
\begin{MacroTable}{CommonDef.h constants}
ADAPT_SR_SCALE &
1 &
Defines a scaling factor used to derive the motion search range is
adaptive (see ASR configuration parameter). Default value is 1.
\\
MAX_GOP &
64 &
maximum size of value of hierarchical GOP.
\\
MAX_NUM_REF &
4 &
maximum number of multiple reference frames
\\
MAX_NUM_REF_LC &
8 &
maximum number of combined reference frames
\\
AMVP_MAX_NUM_CANDS &
2 &
maximum number of final candidates
\\
AMVP_MAX_NUM_CANDS_MEM &
3 &
\\
MRG_MAX_NUM_CANDS &
5 &
\\
DYN_REF_FREE &
off &
dynamic free of reference memories
\\
MAX_TLAYER &
8 &
maximum number of temporal layers
\\
ADAPT_SR_SCALE &
on &
division factor for adaptive search range
\\
EARLY_SKIP_THRES &
1.5 &
early skip if RD < EARLY_SKIP_THRES*avg[BestSkipRD]
\\
MAX_NUM_REF_PICS &
16 &
\\
MAX_CHROMA_FORMAT_IDC &
3 &
\\
\end{MacroTable}
\subsubsection*{TypeDef.h}
Numerous constants that guard individual adoptions are defined within
where, "(unk)" implies that no MD5 was signalled for this picture,
"(OK)" implies that the decoder agrees with the signalled MD5,
"(***ERROR***)" implies that the decoder disagrees with the signalled
MD5. "[rxMD5:...]" is the signalled MD5 if different.
\end{itemize}
\\
\Option{OutputDecodedSEIMessagesFilename}&
%\ShortOption{\None} &
\Default{\NotSet}&
When a non-empty file name is specified, information regarding any decoded SEI messages will be output to the indicated file. If the file name is '-', then stdout is used instead.
\\
\Option{SEIColourRemappingInfoFilename}&
%\ShortOption{\None} &
\Default{\NotSet}&
Specifies that the colour remapping SEI message should be applied to the output video, with the output written to this file.
If no value is specified, the SEI message is ignored and no mapping is applied.
\\
\Option{RespectDefDispWindow (-w)}&
%\ShortOption{-w} &
\Default{0}&
Video region to be output by the decoder.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Output content inside the conformance window. \\
1 & Output content inside the default window. \\
\end{tabular}
\\
\Option{OutputColourSpaceConvert}&
\Default{\NotSet}&
Specifies the colour space conversion to apply to 444 video. Permitted values are:
\par
\begin{tabular}{lp{0.45\textwidth}}
UNCHANGED & No colour space conversion is applied \\
YCrCbToYCbCr & Swap the second and third components \\
GBRtoRGB & Reorder the three components \\
\end{tabular}
If no value is specified, no colour space conversion is applied. The list may eventually also include RGB to YCbCr or YCgCo conversions.\\
\\
\Option{SEINoDisplay}&
\Default{false}&
When true, do not output frames for which there is an SEI NoDisplay message.
\\
\Option{ClipOutputVideoToRec709Range}&
%\ShortOption{\None} &
\Default{0}&
If 1 then clip output video to the Rec. 709 Range on saving when OutputBitDepth is less than InternalBitDepth.
\\
\end{OptionTableNoShorthand}
\subsection{Using the decoder analyser}
If the decoder is compiled with the macro RExt__DECODER_DEBUG_BIT_STATISTICS defined as 1 (either externally, or by editing TypeDef.h), the decoder will gather fractional bit counts associated with the different syntax elements, producing a table of the number of bits per syntax element, and where appropriate, according to block size and colour component/channel.
The Linux makefile will compile both the analyser and standard version when the `all' or `everything' target is used (where the latter will also build high-bit-depth executables).
\section{Block statistics extension}
\label{sec:block-stat-extens}
The block statistics extension enables straightforward visualization and statistical analysis of coding tool
usage in encoded bitstreams. The extension enables the reference
software encoder and decoder to write out statistics files in a configurable
way, which in turn can be loaded into a suitable YUV player for overlay of the
reconstructed YUV sequence, or can be used for statistical analysis at a
selectable scope (e.g. block/picture/sequence level). An example implementation
for such visualization is available with the open-source YUView player
(\url{https://github.com/IENT/YUView}).
\subsection{Usage}
\label{sec:usage}
The software has to be compiled with the macros ENABLE_TRACING and
K0149_BLOCK_STATISTICS defined as 1. The statistics can be written by either
encoder or decoder.
The extension adds additional trace channels to the ``dtrace'' functionality of
the software. The following trace channels were added:
\begin{description}
\item[D_BLOCK_STATISTICS_ALL] All syntax elements are written, no matter whether
they are actually encoded or derived.
\item[D_BLOCK_STATISTICS_CODED] Tries to write only syntax elements, which have
also been encoded.
\end{description}
The following additional encoder options are available (part of ``dtrace''). See