49 #define strdup _strdup
52 #define MACRO_TO_STRING_HELPER(val) #val
53 #define MACRO_TO_STRING(val) MACRO_TO_STRING_HELPER(val)
56 namespace po = df::program_options_lite;
115 , m_snrInternalColourSpace(false)
116 , m_outputInternalColourSpace(false)
163 #if X0038_LAMBDA_FROM_QP_CAPABILITY
335 { 0, 0, 0, 350000, 0, 0, 1500000, 3000000, 0, 6000000, 10000000, 0, 12000000, 20000000, 0, 25000000, 40000000, 60000000, 60000000, 120000000, 240000000 },
336 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30000000, 50000000, 0, 100000000, 160000000, 240000000, 240000000, 480000000, 800000000 }
367 template<
typename T,
typename P>
370 for (
UInt i = 0; i < mapLen; i++)
372 if (val == map[i].value)
377 return std::string();
380 template<
typename T,
typename P>
387 for (; i < mapLen && str!=map[i].str; i++);
395 in.setstate(ios::failbit);
440 SMultiValueInput(
const T &minValue,
const T &maxValue, std::size_t minNumberValues=0, std::size_t maxNumberValues=0)
442 SMultiValueInput(
const T &minValue,
const T &maxValue, std::size_t minNumberValues, std::size_t maxNumberValues,
const T* defValues,
const UInt numDefValues)
462 UInt val=strtoul(pStr, &eptr, 0);
464 bSuccess=!(*eptr!=0 && !isspace(*eptr) && *eptr!=
',') && !(val<minValIncl || val>maxValIncl);
472 Int val=strtol(pStr, &eptr, 0);
474 bSuccess=!(*eptr!=0 && !isspace(*eptr) && *eptr!=
',') && !(val<minValIncl || val>maxValIncl);
482 Double val=strtod(pStr, &eptr);
484 bSuccess=!(*eptr!=0 && !isspace(*eptr) && *eptr!=
',') && !(val<minValIncl || val>maxValIncl);
492 Int val=strtol(pStr, &eptr, 0);
494 bSuccess=!(*eptr!=0 && !isspace(*eptr) && *eptr!=
',') && !(val<
Int(minValIncl) || val>
Int(maxValIncl));
505 string tmp; in >> tmp; str+=
" " + tmp;
509 const TChar *pStr=str.c_str();
511 for(;isspace(*pStr);pStr++);
516 T val=readValue(pStr, bSuccess);
519 in.setstate(ios::failbit);
523 if (maxNumValuesIncl != 0 && values.size() >= maxNumValuesIncl)
525 in.setstate(ios::failbit);
528 values.push_back(val);
530 for(;isspace(*pStr);pStr++);
535 for(;isspace(*pStr);pStr++);
538 if (values.size() < minNumValuesIncl)
540 in.setstate(ios::failbit);
545 #if JVET_E0059_FLOATING_POINT_QP_FIX
565 const Bool bUsingChromaQPAdjustment,
566 const Bool bUsingExtendedPrecision,
567 const Bool bIntraConstraintFlag,
568 UInt &bitDepthConstraint,
570 const Int maxBitDepth,
574 UInt trialBitDepthConstraint=maxBitDepth;
575 if (trialBitDepthConstraint<8)
577 trialBitDepthConstraint=8;
579 else if (trialBitDepthConstraint==9 || trialBitDepthConstraint==11)
581 trialBitDepthConstraint++;
583 else if (trialBitDepthConstraint>12)
585 trialBitDepthConstraint=16;
589 if (bUsingExtendedPrecision || trialBitDepthConstraint==16)
591 bitDepthConstraint = 16;
594 else if (bUsingGeneralRExtTools)
596 if (chromaFormat ==
CHROMA_400 && !bIntraConstraintFlag)
598 bitDepthConstraint = 16;
603 bitDepthConstraint = trialBitDepthConstraint;
609 if (bIntraConstraintFlag)
612 bitDepthConstraint = trialBitDepthConstraint;
617 bitDepthConstraint = trialBitDepthConstraint == 8 ? 8 : 12;
622 bitDepthConstraint = trialBitDepthConstraint;
623 chromaFormatConstraint = chromaFormat;
624 if (bUsingChromaQPAdjustment && chromaFormat ==
CHROMA_420)
628 if (chromaFormatConstraint ==
CHROMA_422 && bitDepthConstraint == 8)
630 bitDepthConstraint = 10;
632 if (chromaFormatConstraint ==
CHROMA_420 && !bIntraConstraintFlag)
634 bitDepthConstraint = 12;
648 Bool do_help =
false;
651 Int tmpInputChromaFormat;
652 Int tmpConstraintChromaFormat;
653 Int tmpWeightedPredictionMethod;
654 Int tmpFastInterSearchMode;
655 Int tmpMotionEstimationSearchMethod;
657 Int tmpSliceSegmentMode;
658 Int tmpDecodedPictureHashSEIMappedType;
659 string inputColourSpaceConvert;
664 SMultiValueInput<UInt> cfg_ColumnWidth (0, std::numeric_limits<UInt>::max(), 0, std::numeric_limits<UInt>::max());
665 SMultiValueInput<UInt> cfg_RowHeight (0, std::numeric_limits<UInt>::max(), 0, std::numeric_limits<UInt>::max());
666 SMultiValueInput<Int> cfg_startOfCodedInterval (std::numeric_limits<Int>::min(), std::numeric_limits<Int>::max(), 0, 1<<16);
667 SMultiValueInput<Int> cfg_codedPivotValue (std::numeric_limits<Int>::min(), std::numeric_limits<Int>::max(), 0, 1<<16);
668 SMultiValueInput<Int> cfg_targetPivotValue (std::numeric_limits<Int>::min(), std::numeric_limits<Int>::max(), 0, 1<<16);
672 const Int defaultLumaLevelTodQp_QpChangePoints[] = {-3, -2, -1, 0, 1, 2, 3, 4, 5, 6};
673 const Int defaultLumaLevelTodQp_LumaChangePoints[] = { 0, 301, 367, 434, 501, 567, 634, 701, 767, 834};
676 UInt lumaLevelToDeltaQPMode;
678 const UInt defaultInputKneeCodes[3] = { 600, 800, 900 };
679 const UInt defaultOutputKneeCodes[3] = { 100, 250, 450 };
680 Int cfg_kneeSEINumKneePointsMinus1=0;
681 SMultiValueInput<UInt> cfg_kneeSEIInputKneePointValue (1, 999, 0, 999, defaultInputKneeCodes,
sizeof(defaultInputKneeCodes )/
sizeof(
UInt));
682 SMultiValueInput<UInt> cfg_kneeSEIOutputKneePointValue (0, 1000, 0, 999, defaultOutputKneeCodes,
sizeof(defaultOutputKneeCodes)/
sizeof(
UInt));
683 const Int defaultPrimaryCodes[6] = { 0,50000, 0,0, 50000,0 };
684 const Int defaultWhitePointCode[2] = { 16667, 16667 };
685 SMultiValueInput<Int> cfg_DisplayPrimariesCode (0, 50000, 6, 6, defaultPrimaryCodes,
sizeof(defaultPrimaryCodes )/
sizeof(
Int));
686 SMultiValueInput<Int> cfg_DisplayWhitePointCode (0, 50000, 2, 2, defaultWhitePointCode,
sizeof(defaultWhitePointCode)/
sizeof(
Int));
703 #if ERP_SR_OV_SEI_MESSAGE
713 SMultiValueInput<UInt> cfg_rwpSEIProjRegionWidth (0, std::numeric_limits<UInt>::max(), 0, std::numeric_limits<UChar>::max());
714 SMultiValueInput<UInt> cfg_rwpSEIProjRegionHeight (0, std::numeric_limits<UInt>::max(), 0, std::numeric_limits<UChar>::max());
715 SMultiValueInput<UInt> cfg_rwpSEIRwpSEIProjRegionTop (0, std::numeric_limits<UInt>::max(), 0, std::numeric_limits<UChar>::max());
716 SMultiValueInput<UInt> cfg_rwpSEIProjRegionLeft (0, std::numeric_limits<UInt>::max(), 0, std::numeric_limits<UChar>::max());
717 SMultiValueInput<UInt> cfg_rwpSEIPackedRegionWidth (0, std::numeric_limits<UShort>::max(), 0, std::numeric_limits<UChar>::max());
718 SMultiValueInput<UInt> cfg_rwpSEIPackedRegionHeight (0, std::numeric_limits<UShort>::max(), 0, std::numeric_limits<UChar>::max());
719 SMultiValueInput<UInt> cfg_rwpSEIPackedRegionTop (0, std::numeric_limits<UShort>::max(), 0, std::numeric_limits<UChar>::max());
720 SMultiValueInput<UInt> cfg_rwpSEIPackedRegionLeft (0, std::numeric_limits<UShort>::max(), 0, std::numeric_limits<UChar>::max());
721 SMultiValueInput<UInt> cfg_rwpSEIRwpLeftGuardBandWidth (0, std::numeric_limits<UChar>::max(), 0, std::numeric_limits<UChar>::max());
722 SMultiValueInput<UInt> cfg_rwpSEIRwpRightGuardBandWidth (0, std::numeric_limits<UChar>::max(), 0, std::numeric_limits<UChar>::max());
723 SMultiValueInput<UInt> cfg_rwpSEIRwpTopGuardBandHeight (0, std::numeric_limits<UChar>::max(), 0, std::numeric_limits<UChar>::max());
724 SMultiValueInput<UInt> cfg_rwpSEIRwpBottomGuardBandHeight (0, std::numeric_limits<UChar>::max(), 0, std::numeric_limits<UChar>::max());
725 SMultiValueInput<Bool> cfg_rwpSEIRwpGuardBandNotUsedForPredFlag (0, 1, 0, std::numeric_limits<UChar>::max());
728 Int warnUnknowParameter = 0;
731 (
"help", do_help,
false,
"this help text")
733 (
"WarnUnknowParameter,w", warnUnknowParameter, 0,
"warn for unknown configuration parameters instead of failing")
736 (
"InputFile,i",
m_inputFileName,
string(
""),
"Original YUV input file name")
738 (
"ReconFile,o",
m_reconFileName,
string(
""),
"Reconstructed YUV output file name")
743 (
"MSBExtendedBitDepth",
m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA], 0,
"bit depth of luma component after addition of MSBs of value 0 (used for synthesising High Dynamic Range source material). (default:InputBitDepth)")
744 (
"InternalBitDepth",
m_internalBitDepth[
CHANNEL_TYPE_LUMA], 0,
"Bit-depth the codec operates at. (default:MSBExtendedBitDepth). If different to MSBExtendedBitDepth, source data will be converted")
747 (
"MSBExtendedBitDepthC",
m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA], 0,
"As per MSBExtendedBitDepth but for chroma component. (default:MSBExtendedBitDepth)")
751 (
"InputColourSpaceConvert", inputColourSpaceConvert,
string(
""),
"Colour space conversion to apply to input video. Permitted values are (empty string=UNCHANGED) " +
getListOfColourSpaceConverts(
true))
752 (
"SNRInternalColourSpace",
m_snrInternalColourSpace,
false,
"If true, then no colour space conversion is applied prior to SNR, otherwise inverse of input is applied.")
753 (
"OutputInternalColourSpace",
m_outputInternalColourSpace,
false,
"If true, then no colour space conversion is applied for reconstructed video, otherwise inverse of input is applied.")
754 (
"InputChromaFormat", tmpInputChromaFormat, 420,
"InputChromaFormatIDC")
755 (
"MSEBasedSequencePSNR",
m_printMSEBasedSequencePSNR,
false,
"0 (default) emit sequence PSNR only as a linear average of the frame PSNRs, 1 = also emit a sequence PSNR based on an average of the frame MSEs")
756 (
"PrintFrameMSE",
m_printFrameMSE,
false,
"0 (default) emit only bit count and PSNRs for each frame, 1 = also emit MSE values")
757 (
"PrintSequenceMSE",
m_printSequenceMSE,
false,
"0 (default) emit only bit rate and PSNRs for the whole sequence, 1 = also emit MSE values")
759 (
"PrintMSSSIM",
m_printMSSSIM,
false,
"0 (default) do not print MS-SSIM scores, 1 = print MS-SSIM scores for each frame and for the whole sequence")
761 (
"CabacZeroWordPaddingEnabled",
m_cabacZeroWordPaddingEnabled,
true,
"0 do not add conforming cabac-zero-words to bit streams, 1 (default) = add cabac-zero-words as required")
762 (
"ChromaFormatIDC,-cf", tmpChromaFormat, 0,
"ChromaFormatIDC (400|420|422|444 or set 0 (default) for same as InputChromaFormat)")
764 (
"ConformanceWindowMode",
m_conformanceWindowMode, 0,
"Window conformance mode (0: no window, 1:automatic padding, 2:padding, 3:conformance")
765 (
"HorizontalPadding,-pdx",
m_aiPad[0], 0,
"Horizontal source padding for conformance window mode 2")
766 (
"VerticalPadding,-pdy",
m_aiPad[1], 0,
"Vertical source padding for conformance window mode 2")
767 (
"ConfLeft",
m_confWinLeft, 0,
"Deprecated alias of ConfWinLeft")
768 (
"ConfRight",
m_confWinRight, 0,
"Deprecated alias of ConfWinRight")
769 (
"ConfTop",
m_confWinTop, 0,
"Deprecated alias of ConfWinTop")
770 (
"ConfBottom",
m_confWinBottom, 0,
"Deprecated alias of ConfWinBottom")
771 (
"ConfWinLeft",
m_confWinLeft, 0,
"Left offset for window conformance mode 3")
772 (
"ConfWinRight",
m_confWinRight, 0,
"Right offset for window conformance mode 3")
773 (
"ConfWinTop",
m_confWinTop, 0,
"Top offset for window conformance mode 3")
774 (
"ConfWinBottom",
m_confWinBottom, 0,
"Bottom offset for window conformance mode 3")
777 (
"FrameSkip,-fs",
m_FrameSkip, 0u,
"Number of frames to skip at start of input YUV")
779 (
"FramesToBeEncoded,f",
m_framesToBeEncoded, 0,
"Number of frames to be encoded (default=all)")
780 (
"ClipInputVideoToRec709Range",
m_bClipInputVideoToRec709Range,
false,
"If true then clip input video to the Rec. 709 Range on loading when InternalBitDepth is less than MSBExtendedBitDepth")
781 (
"ClipOutputVideoToRec709Range",
m_bClipOutputVideoToRec709Range,
false,
"If true then clip output video to the Rec. 709 Range on saving when OutputBitDepth is less than InternalBitDepth")
782 (
"SummaryOutFilename",
m_summaryOutFilename,
string(),
"Filename to use for producing summary output file. If empty, do not produce a file.")
783 (
"SummaryPicFilenameBase",
m_summaryPicFilenameBase,
string(),
"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.")
784 (
"SummaryVerboseness",
m_summaryVerboseness, 0u,
"Specifies the level of the verboseness of the text output")
787 (
"FieldCoding",
m_isField,
false,
"Signals if it's a field based coding")
788 (
"TopFieldFirst, Tff",
m_isTopFieldFirst,
false,
"In case of field based coding, signals whether if it's a top field first or not")
789 (
"EfficientFieldIRAPEnabled",
m_bEfficientFieldIRAPEnabled,
true,
"Enable to code fields in a specific, potentially more efficient, order.")
793 (
"Profile", UIProfile,
UI_NONE,
"Profile name to use for encoding. Use main (for main), main10 (for main10), main-still-picture, main-RExt (for Range Extensions profile), any of the RExt specific profile names, or none")
796 (
"MaxBitDepthConstraint",
m_bitDepthConstraint, 0u,
"Bit depth to use for profile-constraint for RExt profiles. 0=automatically choose based upon other parameters")
797 (
"MaxChromaFormatConstraint", tmpConstraintChromaFormat, 0,
"Chroma-format to use for the profile-constraint for RExt profiles. 0=automatically choose based upon other parameters")
798 (
"IntraConstraintFlag",
m_intraConstraintFlag,
false,
"Value of general_intra_constraint_flag to use for RExt profiles (not used if an explicit RExt sub-profile is specified)")
799 (
"OnePictureOnlyConstraintFlag",
m_onePictureOnlyConstraintFlag,
false,
"Value of general_one_picture_only_constraint_flag to use for RExt profiles (not used if an explicit RExt sub-profile is specified)")
800 (
"LowerBitRateConstraintFlag",
m_lowerBitRateConstraintFlag,
true,
"Value of general_lower_bit_rate_constraint_flag to use for RExt profiles")
822 (
"IntraPeriod,-ip",
m_iIntraPeriod, -1,
"Intra period in frames, (-1: only first frame)")
823 (
"DecodingRefreshType,-dr",
m_iDecodingRefreshType, 0,
"Intra refresh type (0:none 1:CRA 2:IDR 3:RecPointSEI)")
824 (
"GOPSize,g",
m_iGOPSize, 1,
"GOP size of temporal structure")
825 #if JCTVC_Y0038_PARAMS
826 (
"ReWriteParamSetsFlag",
m_bReWriteParamSetsFlag,
true,
"Enable rewriting of Parameter sets before every (intra) random access point")
831 (
"FastSearch", tmpMotionEstimationSearchMethod,
Int(
MESEARCH_DIAMOND),
"0:Full search 1:Diamond 2:Selective 3:Enhanced Diamond")
834 (
"MinSearchWindow",
m_minSearchWindow, 8,
"Minimum motion search window size for the adaptive window ME")
835 (
"RestrictMESampling",
m_bRestrictMESampling,
false,
"Restrict ME Sampling for selective inter motion search")
836 (
"ClipForBiPredMEEnabled",
m_bClipForBiPredMeEnabled,
false,
"Enables clipping in the Bi-Pred ME. It is disabled to reduce encoder run-time")
839 (
"HadamardME",
m_bUseHADME,
true,
"Hadamard ME for fractional-pel")
840 (
"ASR",
m_bUseASR,
false,
"Adaptive motion search range");
844 (
"LambdaModifier0,-LM0",
m_adLambdaModifier[ 0 ], (
Double )1.0,
"Lambda modifier for temporal layer 0. If LambdaModifierI is used, this will not affect intra pictures")
845 (
"LambdaModifier1,-LM1",
m_adLambdaModifier[ 1 ], (
Double )1.0,
"Lambda modifier for temporal layer 1. If LambdaModifierI is used, this will not affect intra pictures")
846 (
"LambdaModifier2,-LM2",
m_adLambdaModifier[ 2 ], (
Double )1.0,
"Lambda modifier for temporal layer 2. If LambdaModifierI is used, this will not affect intra pictures")
847 (
"LambdaModifier3,-LM3",
m_adLambdaModifier[ 3 ], (
Double )1.0,
"Lambda modifier for temporal layer 3. If LambdaModifierI is used, this will not affect intra pictures")
848 (
"LambdaModifier4,-LM4",
m_adLambdaModifier[ 4 ], (
Double )1.0,
"Lambda modifier for temporal layer 4. If LambdaModifierI is used, this will not affect intra pictures")
849 (
"LambdaModifier5,-LM5",
m_adLambdaModifier[ 5 ], (
Double )1.0,
"Lambda modifier for temporal layer 5. If LambdaModifierI is used, this will not affect intra pictures")
850 (
"LambdaModifier6,-LM6",
m_adLambdaModifier[ 6 ], (
Double )1.0,
"Lambda modifier for temporal layer 6. If LambdaModifierI is used, this will not affect intra pictures")
851 (
"LambdaModifierI,-LMI", cfg_adIntraLambdaModifier, cfg_adIntraLambdaModifier,
"Lambda modifiers for Intra pictures, comma separated, up to one the number of temporal layer. If entry for temporalLayer exists, then use it, else if some are specified, use the last, else use the standard LambdaModifiers.")
852 (
"IQPFactor,-IQF",
m_dIntraQpFactor, -1.0,
"Intra QP Factor for Lambda Computation. If negative, the default will scale lambda based on GOP size (unless LambdaFromQpEnable then IntraQPOffset is used instead)")
855 #if JVET_E0059_FLOATING_POINT_QP_FIX
856 (
"QP,q",
m_iQP, 30,
"Qp value")
857 (
"QPIncrementFrame,-qpif",
m_qpIncrementAtSourceFrame,
OptionalValue<UInt>(),
"If a source file frame number is specified, the internal QP will be incremented for all POCs associated with source frames >= frame number. If empty, do not increment.")
859 (
"QP,q", m_fQP, 30.0,
"Qp value, if value is float, QP is switched once during encoding")
861 #if X0038_LAMBDA_FROM_QP_CAPABILITY
862 (
"IntraQPOffset",
m_intraQPOffset, 0,
"Qp offset value for intra slice, typically determined based on GOP size")
863 (
"LambdaFromQpEnable",
m_lambdaFromQPEnable,
false,
"Enable flag for derivation of lambda from QP")
865 (
"DeltaQpRD,-dqr",
m_uiDeltaQpRD, 0u,
"max dQp offset for slice")
866 (
"MaxDeltaQP,d",
m_iMaxDeltaQP, 0,
"max dQp offset for block")
867 (
"MaxCuDQPDepth,-dqd",
m_iMaxCuDQPDepth, 0,
"max depth for a minimum CuDQP")
868 (
"MaxCUChromaQpAdjustmentDepth",
m_diffCuChromaQpOffsetDepth, -1,
"Maximum depth for CU chroma Qp adjustment - set less than 0 to disable")
870 (
"LumaLevelToDeltaQPMode", lumaLevelToDeltaQPMode, 0u,
"Luma based Delta QP 0(default): not used. 1: Based on CTU average, 2: Based on Max luma in CTU")
872 (
"LumaLevelToDeltaQPMappingLuma", cfg_lumaLeveltoDQPMappingLuma, cfg_lumaLeveltoDQPMappingLuma,
"Luma to Delta QP Mapping - luma thresholds")
873 (
"LumaLevelToDeltaQPMappingDQP", cfg_lumaLeveltoDQPMappingQP, cfg_lumaLeveltoDQPMappingQP,
"Luma to Delta QP Mapping - DQP values")
874 (
"CbQpOffset,-cbqpofs",
m_cbQpOffset, 0,
"Chroma Cb QP Offset")
875 (
"CrQpOffset,-crqpofs",
m_crQpOffset, 0,
"Chroma Cr QP Offset")
881 (
"SliceChromaQPOffsetPeriodicity",
m_sliceChromaQpOffsetPeriodicity, 0u,
"Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature.")
882 (
"SliceCbQpOffsetIntraOrPeriodic",
m_sliceChromaQpOffsetIntraOrPeriodic[0], 0,
"Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table.")
883 (
"SliceCrQpOffsetIntraOrPeriodic",
m_sliceChromaQpOffsetIntraOrPeriodic[1], 0,
"Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table.")
888 (
"AdaptiveQP,-aq",
m_bUseAdaptiveQP,
false,
"QP adaptation based on a psycho-visual model")
894 (
"RDpenalty",
m_rdPenalty, 0,
"RD-penalty for 32x32 TU for intra in non-intra slices. 0:disabled 1:RD-penalty 2:maximum RD-penalty")
903 (
"AMP",
m_enableAMP,
true,
"Enable asymmetric motion partitions")
905 (
"ReconBasedCrossCPredictionEstimate",
m_reconBasedCrossCPredictionEstimate,
false,
"When determining the alpha value for cross-component prediction, use the decoded residual rather than the pre-transform encoder-side residual")
906 (
"SaoLumaOffsetBitShift", saoOffsetBitShift[CHANNEL_TYPE_LUMA], 0,
"Specify the luma SAO bit-shift. If negative, automatically calculate a suitable value based upon bit depth and initial QP")
907 (
"SaoChromaOffsetBitShift", saoOffsetBitShift[
CHANNEL_TYPE_CHROMA], 0,
"Specify the chroma SAO bit-shift. If negative, automatically calculate a suitable value based upon bit depth and initial QP")
911 (
"ImplicitResidualDPCM",
m_rdpcmEnabledFlag[
RDPCM_SIGNAL_IMPLICIT],
false,
"Enable implicitly signalled residual DPCM for intra (also known as sample-adaptive intra predict) (not valid in V1 profiles)")
913 (
"ResidualRotation",
m_transformSkipRotationEnabledFlag,
false,
"Enable rotation of transform-skipped and transquant-bypassed TUs through 180 degrees prior to entropy coding (not valid in V1 profiles)")
914 (
"SingleSignificanceMapContext",
m_transformSkipContextEnabledFlag,
false,
"Enable, for transform-skipped and transquant-bypassed TUs, the selection of a single significance map context variable for all coefficients (not valid in V1 profiles)")
916 (
"AlignCABACBeforeBypass",
m_cabacBypassAlignmentEnabledFlag,
false,
"Align the CABAC engine to a defined fraction of a bit prior to coding bypass data. Must be 1 in high bit rate profile, 0 otherwise" )
917 (
"SAO",
m_bUseSAO,
true,
"Enable Sample Adaptive Offset")
918 (
"TestSAODisableAtPictureLevel",
m_bTestSAODisableAtPictureLevel,
false,
"Enables the testing of disabling SAO at the picture level after having analysed all blocks")
919 (
"SaoEncodingRate",
m_saoEncodingRate, 0.75,
"When >0 SAO early picture termination is enabled for luma and chroma")
920 (
"SaoEncodingRateChroma",
m_saoEncodingRateChroma, 0.5,
"The SAO early picture termination rate to use for chroma (when m_SaoEncodingRate is >0). If <=0, use results for luma")
921 (
"MaxNumOffsetsPerPic",
m_maxNumOffsetsPerPic, 2048,
"Max number of SAO offset per picture (Default: 2048)")
922 (
"SAOLcuBoundary",
m_saoCtuBoundary,
false,
"0: right/bottom CTU boundary areas skipped from SAO parameter estimation, 1: non-deblocked pixels are used for those areas")
923 (
"SAOResetEncoderStateAfterIRAP",
m_saoResetEncoderStateAfterIRAP,
false,
"When true, resets the encoder's SAO state after an IRAP (POC order). Disabled by default.")
924 (
"SliceMode", tmpSliceMode,
Int(
NO_SLICES),
"0: Disable all Recon slice limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice")
926 "\t1: max number of CTUs per slice"
927 "\t2: max number of bytes per slice"
928 "\t3: max number of tiles per slice")
929 (
"SliceSegmentMode", tmpSliceSegmentMode,
Int(
NO_SLICES),
"0: Disable all slice segment limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice")
931 "\t1: max number of CTUs per slice segment"
932 "\t2: max number of bytes per slice segment"
933 "\t3: max number of tiles per slice segment")
937 (
"FastUDIUseMPMEnabled",
m_bFastUDIUseMPMEnabled,
true,
"If enabled, adapt intra direction search, accounting for MPM")
946 (
"IntraReferenceSmoothing",
m_enableIntraReferenceSmoothing,
true,
"0: Disable use of intra reference smoothing (not valid in V1 profiles). 1: Enable use of intra reference smoothing (same as V1)")
947 (
"WeightedPredP,-wpP",
m_useWeightedPred,
false,
"Use weighted prediction in P slices")
948 (
"WeightedPredB,-wpB",
m_useWeightedBiPred,
false,
"Use weighted (bidirectional) prediction in B slices")
953 (
"ColumnWidthArray", cfg_ColumnWidth, cfg_ColumnWidth,
"deprecated alias of TileColumnWidthArray")
954 (
"RowHeightArray", cfg_RowHeight, cfg_RowHeight,
"deprecated alias of TileRowHeightArray")
956 (
"TileUniformSpacing",
m_tileUniformSpacingFlag,
false,
"Indicates that tile columns and rows are distributed uniformly")
959 (
"TileColumnWidthArray", cfg_ColumnWidth, cfg_ColumnWidth,
"Array containing tile column width values in units of CTU")
960 (
"TileRowHeightArray", cfg_RowHeight, cfg_RowHeight,
"Array containing tile row height values in units of CTU")
961 (
"LFCrossTileBoundaryFlag",
m_bLFCrossTileBoundaryFlag,
true,
"1: cross-tile-boundary loop filtering. 0:non-cross-tile-boundary loop filtering")
964 (
"ScalingListFile",
m_scalingListFileName,
string(
""),
"Scaling list file name. Use an empty string to produce help.")
968 (
"SEIDecodedPictureHash", tmpDecodedPictureHashSEIMappedType, 0,
"Control generation of decode picture hash SEI messages\n"
973 (
"TMVPMode",
m_TMVPModeId, 1,
"TMVP mode 0: TMVP disable for all slices. 1: TMVP enable for all slices (default) 2: TMVP enable for certain slices only")
981 (
"KeepHierarchicalBit",
m_RCKeepHierarchicalBit, 0,
"Rate control: 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation" )
982 (
"LCULevelRateControl",
m_RCLCULevelRC,
true,
"Rate control: true: CTU level RC; false: picture level RC" )
984 (
"InitialQP",
m_RCInitialQP, 0,
"Rate control: initial QP" )
985 (
"RCForceIntraQP",
m_RCForceIntraQP,
false,
"Rate control: force intra QP to be equal to initial QP" )
986 (
"RCCpbSaturation",
m_RCCpbSaturationEnabled,
false,
"Rate control: enable target bits saturation to avoid CPB overflow and underflow" )
987 (
"RCCpbSize",
m_RCCpbSize, 0u,
"Rate control: CPB size" )
991 (
"CUTransquantBypassFlagForce",
m_CUTransquantBypassFlagForce,
false,
"Force transquant bypass mode, when transquant_bypass_enabled_flag is enabled")
993 (
"RecalculateQPAccordingToLambda",
m_recalculateQPAccordingToLambda,
false,
"Recalculate QP values according to lambda values. Do not suggest to be enabled in all intra case")
1000 (
"SarWidth",
m_sarWidth, 0,
"horizontal size of the sample aspect ratio")
1001 (
"SarHeight",
m_sarHeight, 0,
"vertical size of the sample aspect ratio")
1002 (
"OverscanInfoPresent",
m_overscanInfoPresentFlag,
false,
"Indicates whether conformant decoded pictures are suitable for display using overscan\n")
1003 (
"OverscanAppropriate",
m_overscanAppropriateFlag,
false,
"Indicates whether conformant decoded pictures are suitable for display using overscan\n")
1004 (
"VideoSignalTypePresent",
m_videoSignalTypePresentFlag,
false,
"Signals whether video_format, video_full_range_flag, and colour_description_present_flag are present")
1005 (
"VideoFormat",
m_videoFormat, 5,
"Indicates representation of pictures")
1006 (
"VideoFullRange",
m_videoFullRangeFlag,
false,
"Indicates the black level and range of luma and chroma signals")
1007 (
"ColourDescriptionPresent",
m_colourDescriptionPresentFlag,
false,
"Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present")
1008 (
"ColourPrimaries",
m_colourPrimaries, 2,
"Indicates chromaticity coordinates of the source primaries")
1009 (
"TransferCharacteristics",
m_transferCharacteristics, 2,
"Indicates the opto-electronic transfer characteristics of the source")
1010 (
"MatrixCoefficients",
m_matrixCoefficients, 2,
"Describes the matrix coefficients used in deriving luma and chroma from RGB primaries")
1011 (
"ChromaLocInfoPresent",
m_chromaLocInfoPresentFlag,
false,
"Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present")
1014 (
"NeutralChromaIndication",
m_neutralChromaIndicationFlag,
false,
"Indicates that the value of all decoded chroma samples is equal to 1<<(BitDepthCr-1)")
1016 (
"DefDispWinLeftOffset",
m_defDispWinLeftOffset, 0,
"Specifies the left offset of the default display window from the conformance window")
1017 (
"DefDispWinRightOffset",
m_defDispWinRightOffset, 0,
"Specifies the right offset of the default display window from the conformance window")
1018 (
"DefDispWinTopOffset",
m_defDispWinTopOffset, 0,
"Specifies the top offset of the default display window from the conformance window")
1019 (
"DefDispWinBottomOffset",
m_defDispWinBottomOffset, 0,
"Specifies the bottom offset of the default display window from the conformance window")
1020 (
"FrameFieldInfoPresentFlag",
m_frameFieldInfoPresentFlag,
false,
"Indicates that pic_struct and field coding related values are present in picture timing SEI messages")
1021 (
"PocProportionalToTimingFlag",
m_pocProportionalToTimingFlag,
false,
"Indicates that the POC value is proportional to the output time w.r.t. first picture in CVS")
1024 (
"TilesFixedStructure",
m_tilesFixedStructureFlag,
false,
"Indicates that each active picture parameter set has the same values of the syntax elements related to tiles")
1026 (
"MaxBytesPerPicDenom",
m_maxBytesPerPicDenom, 2,
"Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units associated with any coded picture")
1027 (
"MaxBitsPerMinCuDenom",
m_maxBitsPerMinCuDenom, 1,
"Indicates an upper bound for the number of bits of coding_unit() data")
1028 (
"Log2MaxMvLengthHorizontal",
m_log2MaxMvLengthHorizontal, 15,
"Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units")
1029 (
"Log2MaxMvLengthVertical",
m_log2MaxMvLengthVertical, 15,
"Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units");
1031 (
"SEIColourRemappingInfoFileRoot,-cri",
m_colourRemapSEIFileRoot, string(
""),
"Colour Remapping Information SEI parameters root file name (wo num ext)")
1036 (
"SEIToneMapId",
m_toneMapId, 0,
"Specifies Id of Tone Mapping SEI message for a given session")
1037 (
"SEIToneMapCancelFlag",
m_toneMapCancelFlag,
false,
"Indicates that Tone Mapping SEI message cancels the persistence or follows")
1038 (
"SEIToneMapPersistenceFlag",
m_toneMapPersistenceFlag,
true,
"Specifies the persistence of the Tone Mapping SEI message")
1040 (
"SEIToneMapTargetBitDepth",
m_toneMapTargetBitDepth, 8,
"Specifies Output BitDepth of Tone mapping function")
1041 (
"SEIToneMapModelId",
m_toneMapModelId, 0,
"Specifies Model utilized for mapping coded data into target_bit_depth range\n"
1042 "\t0: linear mapping with clipping\n"
1043 "\t1: sigmoidal mapping\n"
1044 "\t2: user-defined table mapping\n"
1045 "\t3: piece-wise linear mapping\n"
1046 "\t4: luminance dynamic range information ")
1047 (
"SEIToneMapMinValue",
m_toneMapMinValue, 0,
"Specifies the minimum value in mode 0")
1048 (
"SEIToneMapMaxValue",
m_toneMapMaxValue, 1023,
"Specifies the maximum value in mode 0")
1049 (
"SEIToneMapSigmoidMidpoint",
m_sigmoidMidpoint, 512,
"Specifies the centre point in mode 1")
1050 (
"SEIToneMapSigmoidWidth",
m_sigmoidWidth, 960,
"Specifies the distance between 5% and 95% values of the target_bit_depth in mode 1")
1051 (
"SEIToneMapStartOfCodedInterval", cfg_startOfCodedInterval, cfg_startOfCodedInterval,
"Array of user-defined mapping table")
1052 (
"SEIToneMapNumPivots",
m_numPivots, 0,
"Specifies the number of pivot points in mode 3")
1053 (
"SEIToneMapCodedPivotValue", cfg_codedPivotValue, cfg_codedPivotValue,
"Array of pivot point")
1054 (
"SEIToneMapTargetPivotValue", cfg_targetPivotValue, cfg_targetPivotValue,
"Array of pivot point")
1055 (
"SEIToneMapCameraIsoSpeedIdc",
m_cameraIsoSpeedIdc, 0,
"Indicates the camera ISO speed for daylight illumination")
1056 (
"SEIToneMapCameraIsoSpeedValue",
m_cameraIsoSpeedValue, 400,
"Specifies the camera ISO speed for daylight illumination of Extended_ISO")
1057 (
"SEIToneMapExposureIndexIdc",
m_exposureIndexIdc, 0,
"Indicates the exposure index setting of the camera")
1058 (
"SEIToneMapExposureIndexValue",
m_exposureIndexValue, 400,
"Specifies the exposure index setting of the camera of Extended_ISO")
1062 (
"SEIToneMapRefScreenLuminanceWhite",
m_refScreenLuminanceWhite, 350,
"Specifies reference screen brightness setting in units of candela per square metre")
1064 (
"SEIToneMapNominalBlackLevelLumaCodeValue",
m_nominalBlackLevelLumaCodeValue, 16,
"Specifies luma sample value of the nominal black level assigned decoded pictures")
1065 (
"SEIToneMapNominalWhiteLevelLumaCodeValue",
m_nominalWhiteLevelLumaCodeValue, 235,
"Specifies luma sample value of the nominal white level assigned decoded pictures")
1066 (
"SEIToneMapExtendedWhiteLevelLumaCodeValue",
m_extendedWhiteLevelLumaCodeValue, 300,
"Specifies luma sample value of the extended dynamic range assigned decoded pictures")
1069 "\t0: unspecified - Chroma filter is unknown or is determined by the application"
1070 "\t1: User-defined - Filter coefficients are specified in the chroma sampling filter hint SEI message"
1071 "\t2: Standards-defined - ITU-T Rec. T.800 | ISO/IEC15444-1, 5/3 filter")
1073 "\t0: unspecified - Chroma filter is unknown or is determined by the application"
1074 "\t1: User-defined - Filter coefficients are specified in the chroma sampling filter hint SEI message"
1075 "\t2: Standards-defined - ITU-T Rec. T.800 | ISO/IEC15444-1, 5/3 filter")
1078 "\t3: side by side - frames are displayed horizontally\n"
1079 "\t4: top bottom - frames are displayed vertically\n"
1080 "\t5: frame alternation - one frame is alternated with the other")
1081 (
"SEIFramePackingId",
m_framePackingSEIId, 0,
"Id of frame packing SEI message for a given session")
1084 "\t0: unspecified\n"
1085 "\t1: stereo pair, frame0 represents left view\n"
1086 "\t2: stereo pair, frame0 represents right view")
1092 "\tN: 0 < N < (2^16 - 1) enable display orientation SEI message with anticlockwise_rotation = N and display_orientation_repetition_period = 1\n"
1097 "\tN: 0 < N enable no display SEI message for temporal layer N or higher\n"
1102 (
"SEITempMotionConstrainedTileSets",
m_tmctsSEIEnabled,
false,
"Control generation of temporal motion constrained tile sets SEI message")
1106 (
"SEITimeCodeEnabled",
m_timeCodeSEIEnabled,
false,
"Control generation of time code information SEI message")
1108 (
"SEITimeCodeTimeStampFlag", cfg_timeCodeSeiTimeStampFlag, cfg_timeCodeSeiTimeStampFlag,
"Time stamp flag associated to each time set")
1109 (
"SEITimeCodeFieldBasedFlag", cfg_timeCodeSeiNumUnitFieldBasedFlag, cfg_timeCodeSeiNumUnitFieldBasedFlag,
"Field based flag associated to each time set")
1110 (
"SEITimeCodeCountingType", cfg_timeCodeSeiCountingType, cfg_timeCodeSeiCountingType,
"Counting type associated to each time set")
1111 (
"SEITimeCodeFullTsFlag", cfg_timeCodeSeiFullTimeStampFlag, cfg_timeCodeSeiFullTimeStampFlag,
"Full time stamp flag associated to each time set")
1112 (
"SEITimeCodeDiscontinuityFlag", cfg_timeCodeSeiDiscontinuityFlag, cfg_timeCodeSeiDiscontinuityFlag,
"Discontinuity flag associated to each time set")
1113 (
"SEITimeCodeCntDroppedFlag", cfg_timeCodeSeiCntDroppedFlag, cfg_timeCodeSeiCntDroppedFlag,
"Counter dropped flag associated to each time set")
1114 (
"SEITimeCodeNumFrames", cfg_timeCodeSeiNumberOfFrames, cfg_timeCodeSeiNumberOfFrames,
"Number of frames associated to each time set")
1115 (
"SEITimeCodeSecondsValue", cfg_timeCodeSeiSecondsValue, cfg_timeCodeSeiSecondsValue,
"Seconds value for each time set")
1116 (
"SEITimeCodeMinutesValue", cfg_timeCodeSeiMinutesValue, cfg_timeCodeSeiMinutesValue,
"Minutes value for each time set")
1117 (
"SEITimeCodeHoursValue", cfg_timeCodeSeiHoursValue, cfg_timeCodeSeiHoursValue,
"Hours value for each time set")
1118 (
"SEITimeCodeSecondsFlag", cfg_timeCodeSeiSecondsFlag, cfg_timeCodeSeiSecondsFlag,
"Flag to signal seconds value presence in each time set")
1119 (
"SEITimeCodeMinutesFlag", cfg_timeCodeSeiMinutesFlag, cfg_timeCodeSeiMinutesFlag,
"Flag to signal minutes value presence in each time set")
1120 (
"SEITimeCodeHoursFlag", cfg_timeCodeSeiHoursFlag, cfg_timeCodeSeiHoursFlag,
"Flag to signal hours value presence in each time set")
1121 (
"SEITimeCodeOffsetLength", cfg_timeCodeSeiTimeOffsetLength, cfg_timeCodeSeiTimeOffsetLength,
"Time offset length associated to each time set")
1122 (
"SEITimeCodeTimeOffset", cfg_timeCodeSeiTimeOffsetValue, cfg_timeCodeSeiTimeOffsetValue,
"Time offset associated to each time set")
1123 (
"SEIKneeFunctionInfo",
m_kneeSEIEnabled,
false,
"Control generation of Knee function SEI messages")
1131 (
"SEIKneeFunctionNumKneePointsMinus1", cfg_kneeSEINumKneePointsMinus1, 2,
"Specifies the number of knee points - 1")
1132 (
"SEIKneeFunctionInputKneePointValue", cfg_kneeSEIInputKneePointValue, cfg_kneeSEIInputKneePointValue,
"Array of input knee point")
1133 (
"SEIKneeFunctionOutputKneePointValue", cfg_kneeSEIOutputKneePointValue, cfg_kneeSEIOutputKneePointValue,
"Array of output knee point")
1135 (
"SEIMasteringDisplayMaxLuminance",
m_masteringDisplay.
maxLuminance, 10000u,
"Specifies the mastering display maximum luminance value in units of 1/10000 candela per square metre (32-bit code value)")
1136 (
"SEIMasteringDisplayMinLuminance",
m_masteringDisplay.
minLuminance, 0u,
"Specifies the mastering display minimum luminance value in units of 1/10000 candela per square metre (32-bit code value)")
1137 (
"SEIMasteringDisplayPrimaries", cfg_DisplayPrimariesCode, cfg_DisplayPrimariesCode,
"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)")
1138 (
"SEIMasteringDisplayWhitePoint", cfg_DisplayWhitePointCode, cfg_DisplayWhitePointCode,
"Mastering display white point CIE xy coordinates in normalised increments of 1/50000 (e.g. 0.333 = 16667)")
1139 (
"SEIPreferredTransferCharacterisics",
m_preferredTransferCharacteristics, -1,
"Value for the preferred_transfer_characteristics field of the Alternative transfer characteristics SEI which will override the corresponding entry in the VUI. If negative, do not produce the respective SEI message")
1140 (
"SEIGreenMetadataType",
m_greenMetadataType, 0u,
"Value for the green_metadata_type specifies the type of metadata that is present in the SEI message. If green_metadata_type is 1, then metadata enabling quality recovery after low-power encoding is present")
1141 (
"SEIXSDMetricType",
m_xsdMetricType, 0u,
"Value for the xsd_metric_type indicates the type of the objective quality metric. PSNR is the only type currently supported")
1143 (
"SEICCVEnabled",
m_ccvSEIEnabled,
false,
"Enables the Content Colour Volume SEI message")
1144 (
"SEICCVCancelFlag",
m_ccvSEICancelFlag,
true,
"Specifies the persistence of any previous content colour volume SEI message in output order.")
1145 (
"SEICCVPersistenceFlag",
m_ccvSEIPersistenceFlag,
false,
"Specifies the persistence of the content colour volume SEI message for the current layer.")
1146 (
"SEICCVPrimariesPresent",
m_ccvSEIPrimariesPresentFlag,
true,
"Specifies whether the CCV primaries are present in the content colour volume SEI message.")
1147 (
"m_ccvSEIPrimariesX0",
m_ccvSEIPrimariesX[0], 0.300,
"Specifies the x coordinate of the first (green) primary for the content colour volume SEI message")
1148 (
"m_ccvSEIPrimariesY0",
m_ccvSEIPrimariesY[0], 0.600,
"Specifies the y coordinate of the first (green) primary for the content colour volume SEI message")
1149 (
"m_ccvSEIPrimariesX1",
m_ccvSEIPrimariesX[1], 0.150,
"Specifies the x coordinate of the second (blue) primary for the content colour volume SEI message")
1150 (
"m_ccvSEIPrimariesY1",
m_ccvSEIPrimariesY[1], 0.060,
"Specifies the y coordinate of the second (blue) primary for the content colour volume SEI message")
1151 (
"m_ccvSEIPrimariesX2",
m_ccvSEIPrimariesX[2], 0.640,
"Specifies the x coordinate of the third (red) primary for the content colour volume SEI message")
1152 (
"m_ccvSEIPrimariesY2",
m_ccvSEIPrimariesY[2], 0.330,
"Specifies the y coordinate of the third (red) primary for the content colour volume SEI message")
1153 (
"SEICCVMinLuminanceValuePresent",
m_ccvSEIMinLuminanceValuePresentFlag,
true,
"Specifies whether the CCV min luminance value is present in the content colour volume SEI message")
1154 (
"SEICCVMinLuminanceValue",
m_ccvSEIMinLuminanceValue, 0.0,
"specifies the CCV min luminance value in the content colour volume SEI message")
1155 (
"SEICCVMaxLuminanceValuePresent",
m_ccvSEIMaxLuminanceValuePresentFlag,
true,
"Specifies whether the CCV max luminance value is present in the content colour volume SEI message")
1156 (
"SEICCVMaxLuminanceValue",
m_ccvSEIMaxLuminanceValue, 0.1,
"specifies the CCV max luminance value in the content colour volume SEI message")
1157 (
"SEICCVAvgLuminanceValuePresent",
m_ccvSEIAvgLuminanceValuePresentFlag,
true,
"Specifies whether the CCV avg luminance value is present in the content colour volume SEI message")
1158 (
"SEICCVAvgLuminanceValue",
m_ccvSEIAvgLuminanceValue, 0.01,
"specifies the CCV avg luminance value in the content colour volume SEI message")
1160 #if ERP_SR_OV_SEI_MESSAGE
1161 (
"SEIErpEnabled",
m_erpSEIEnabled,
false,
"Control generation of equirectangular projection SEI messages")
1162 (
"SEIErpCancelFlag",
m_erpSEICancelFlag,
true,
"Indicate that equirectangular projection SEI message cancels the persistence or follows")
1163 (
"SEIErpPersistenceFlag",
m_erpSEIPersistenceFlag,
false,
"Specifies the persistence of the equirectangular projection SEI messages")
1164 (
"SEIErpGuardBandFlag",
m_erpSEIGuardBandFlag,
false,
"Indicate the existence of guard band areas in the constituent picture")
1166 (
"SEIErpLeftGuardBandWidth",
m_erpSEILeftGuardBandWidth, 0u,
"Indicate the width of the guard band on the left side of the constituent picture")
1167 (
"SEIErpRightGuardBandWidth",
m_erpSEIRightGuardBandWidth, 0u,
"Indicate the width of the guard band on the right side of the constituent picture")
1169 (
"SEISphereRotationCancelFlag",
m_sphereRotationSEICancelFlag,
true,
"Indicate that sphere rotation SEI message cancels the persistence or follows")
1175 (
"SEIOmniViewportId",
m_omniViewportSEIId, 0u,
"An identifying number that may be used to identify the purpose of the one or more recommended viewport regions")
1176 (
"SEIOmniViewportCancelFlag",
m_omniViewportSEICancelFlag,
true,
"Indicate that omni viewport SEI message cancels the persistence or follows")
1179 (
"SEIOmniViewportAzimuthCentre", cfg_omniViewportSEIAzimuthCentre, cfg_omniViewportSEIAzimuthCentre,
"Indicate the centre of the i-th recommended viewport region")
1180 (
"SEIOmniViewportElevationCentre", cfg_omniViewportSEIElevationCentre, cfg_omniViewportSEIElevationCentre,
"Indicate the centre of the i-th recommended viewport region")
1181 (
"SEIOmniViewportTiltCentre", cfg_omniViewportSEITiltCentre, cfg_omniViewportSEITiltCentre,
"Indicates the tilt angle of the i-th recommended viewport region")
1182 (
"SEIOmniViewportHorRange", cfg_omniViewportSEIHorRange, cfg_omniViewportSEIHorRange,
"Indicates the azimuth range of the i-th recommended viewport region")
1183 (
"SEIOmniViewportVerRange", cfg_omniViewportSEIVerRange, cfg_omniViewportSEIVerRange,
"Indicates the elevation range of the i-th recommended viewport region")
1186 (
"SEICmpEnabled",
m_cmpSEIEnabled,
false,
"Controls generation of cubemap projection SEI message")
1187 (
"SEICmpCancelFlag",
m_cmpSEICmpCancelFlag,
true,
"Specifies the persistence of any previous cubemap projection SEI message in output order.")
1188 (
"SEICmpPersistenceFlag",
m_cmpSEICmpPersistenceFlag,
false,
"Specifies the persistence of the cubemap projection SEI message for the current layer.")
1191 (
"SEIRwpEnabled",
m_rwpSEIEnabled,
false,
"Controls if region-wise packing SEI message enabled")
1192 (
"SEIRwpCancelFlag",
m_rwpSEIRwpCancelFlag,
true,
"Specifies the persistence of any previous region-wise packing SEI message in output order.")
1193 (
"SEIRwpPersistenceFlag",
m_rwpSEIRwpPersistenceFlag,
false,
"Specifies the persistence of the region-wise packing SEI message for the current layer.")
1194 (
"SEIRwpConstituentPictureMatchingFlag",
m_rwpSEIConstituentPictureMatchingFlag,
false,
"Specifies the information in the SEI message apply individually to each constituent picture or to the projected picture.")
1195 (
"SEIRwpNumPackedRegions",
m_rwpSEINumPackedRegions, 0,
"specifies the number of packed regions when constituent picture matching flag is equal to 0.")
1200 (
"SEIRwpTransformType", cfg_rwpSEIRwpTransformType, cfg_rwpSEIRwpTransformType,
"specifies the rotation and mirroring to be applied to the i-th packed region.")
1201 (
"SEIRwpGuardBandFlag", cfg_rwpSEIRwpGuardBandFlag, cfg_rwpSEIRwpGuardBandFlag,
"specifies the existence of guard band in the i-th packed region.")
1202 (
"SEIRwpProjRegionWidth", cfg_rwpSEIProjRegionWidth, cfg_rwpSEIProjRegionWidth,
"specifies the width of the i-th projected region.")
1203 (
"SEIRwpProjRegionHeight", cfg_rwpSEIProjRegionHeight, cfg_rwpSEIProjRegionHeight,
"specifies the height of the i-th projected region.")
1204 (
"SEIRwpProjRegionTop", cfg_rwpSEIRwpSEIProjRegionTop, cfg_rwpSEIRwpSEIProjRegionTop,
"specifies the top sample row of the i-th projected region.")
1205 (
"SEIRwpProjRegionLeft", cfg_rwpSEIProjRegionLeft, cfg_rwpSEIProjRegionLeft,
"specifies the left-most sample column of the i-th projected region.")
1206 (
"SEIRwpPackedRegionWidth", cfg_rwpSEIPackedRegionWidth, cfg_rwpSEIPackedRegionWidth,
"specifies the width of the i-th packed region.")
1207 (
"SEIRwpPackedRegionHeight", cfg_rwpSEIPackedRegionHeight, cfg_rwpSEIPackedRegionHeight,
"specifies the height of the i-th packed region.")
1208 (
"SEIRwpPackedRegionTop", cfg_rwpSEIPackedRegionTop, cfg_rwpSEIPackedRegionTop,
"specifies the top luma sample row of the i-th packed region.")
1209 (
"SEIRwpPackedRegionLeft", cfg_rwpSEIPackedRegionLeft, cfg_rwpSEIPackedRegionLeft,
"specifies the left-most luma sample column of the i-th packed region.")
1210 (
"SEIRwpLeftGuardBandWidth", cfg_rwpSEIRwpLeftGuardBandWidth, cfg_rwpSEIRwpLeftGuardBandWidth,
"specifies the width of the guard band on the left side of the i-th packed region.")
1211 (
"SEIRwpRightGuardBandWidth", cfg_rwpSEIRwpRightGuardBandWidth, cfg_rwpSEIRwpRightGuardBandWidth,
"specifies the width of the guard band on the right side of the i-th packed region.")
1212 (
"SEIRwpTopGuardBandHeight", cfg_rwpSEIRwpTopGuardBandHeight, cfg_rwpSEIRwpTopGuardBandHeight,
"specifies the height of the guard band above the i-th packed region.")
1213 (
"SEIRwpBottomGuardBandHeight", cfg_rwpSEIRwpBottomGuardBandHeight, cfg_rwpSEIRwpBottomGuardBandHeight,
"specifies the height of the guard band below the i-th packed region.")
1214 (
"SEIRwpGuardBandNotUsedForPredFlag", cfg_rwpSEIRwpGuardBandNotUsedForPredFlag, cfg_rwpSEIRwpGuardBandNotUsedForPredFlag,
"Specifies if the guard bands is used in the inter prediction process.")
1215 (
"SEIRwpGuardBandType", cfg_rwpSEIRwpGuardBandType, cfg_rwpSEIRwpGuardBandType,
"Specifies the type of the guard bands for the i-th packed region.")
1218 (
"SEIRegionalNestingFileRoot,-rns",
m_regionalNestingSEIFileRoot,
string(
""),
"Regional nesting SEI parameters root file name (wo num ext)")
1222 #if EXTENSION_360_VIDEO
1223 TExt360AppEncCfg::TExt360AppEncCfgContext ext360CfgContext;
1224 m_ext360.addOptions(opts, ext360CfgContext);
1229 std::ostringstream cOSS;
1235 const list<const TChar*>& argv_unhandled =
po::scanArgv(opts, argc, (
const TChar**) argv, err);
1237 for (list<const TChar*>::const_iterator it = argv_unhandled.begin(); it != argv_unhandled.end(); it++)
1239 fprintf(stderr,
"Unhandled argument ignored: `%s'\n", *it);
1242 if (argc == 1 || do_help)
1251 if (!warnUnknowParameter)
1280 printf(
"The number of columns whose width are defined is larger than the allowed number of columns.\n" );
1281 exit( EXIT_FAILURE );
1285 printf(
"The width of some columns is not defined.\n" );
1286 exit( EXIT_FAILURE );
1291 for(
UInt i=0; i<cfg_ColumnWidth.values.size(); i++)
1306 printf(
"The number of rows whose height are defined is larger than the allowed number of rows.\n" );
1307 exit( EXIT_FAILURE );
1311 printf(
"The height of some rows is not defined.\n" );
1312 exit( EXIT_FAILURE );
1317 for(
UInt i=0; i<cfg_RowHeight.values.size(); i++)
1361 #if EXTENSION_360_VIDEO
1362 m_ext360.processOptions(ext360CfgContext);
1417 if (UIProfile >= 1000 && UIProfile <= 12316)
1422 fprintf(stderr,
"Error: The bit depth and chroma format constraints are not used when an explicit RExt profile is specified\n");
1428 switch ((UIProfile/100)%10)
1430 case 0: tmpConstraintChromaFormat=400;
break;
1431 case 1: tmpConstraintChromaFormat=420;
break;
1432 case 2: tmpConstraintChromaFormat=422;
break;
1433 default: tmpConstraintChromaFormat=444;
break;
1436 else if (UIProfile >= 21308 && UIProfile <= 22316)
1441 fprintf(stderr,
"Error: The bit depth and chroma format constraints are not used when an explicit RExt profile is specified\n");
1451 switch ((UIProfile/100)%10)
1453 case 0: tmpConstraintChromaFormat=400;
break;
1454 case 1: tmpConstraintChromaFormat=420;
break;
1455 case 2: tmpConstraintChromaFormat=422;
break;
1456 default: tmpConstraintChromaFormat=444;
break;
1461 fprintf(stderr,
"Error: Unprocessed UI profile\n");
1498 fprintf(stderr,
"Error: Intra constraint flag must be true when one_picture_only_constraint_flag is true\n");
1508 bUsingChromaQPAdjustment,
1509 bUsingExtendedPrecision,
1519 fprintf(stderr,
"Error: The bit depth and chroma format constraints must either both be specified or both be configured automatically\n");
1539 fprintf(stderr,
"Unknown profile selected\n");
1577 fprintf(stderr,
"Error: picture width is not an integer multiple of the specified chroma subsampling\n");
1582 fprintf(stderr,
"Error: picture height is not an integer multiple of the specified chroma subsampling\n");
1601 fprintf(stderr,
"Warning: Conformance window enabled, but all conformance window parameters set to zero\n");
1605 fprintf(stderr,
"Warning: Conformance window enabled, padding parameters will be ignored\n");
1614 fprintf(stderr,
"Error: bad slice mode\n");
1620 fprintf(stderr,
"Error: bad slice segment mode\n");
1625 if (tmpDecodedPictureHashSEIMappedType<0 || tmpDecodedPictureHashSEIMappedType>=
Int(
NUMBER_OF_HASHTYPES))
1627 fprintf(stderr,
"Error: bad checksum mode\n");
1631 if (tmpDecodedPictureHashSEIMappedType==0)
1644 #if JVET_E0059_FLOATING_POINT_QP_FIX
1647 UInt switchingPOC=0;
1664 if (
m_iQP < m_fQP )
1678 if (saoOffsetBitShift[ch]<0)
1704 assert( cfg_lumaLeveltoDQPMappingLuma.
values.size() == cfg_lumaLeveltoDQPMappingQP.values.size() );
1706 for(
UInt i=0; i<cfg_lumaLeveltoDQPMappingLuma.
values.size(); i++)
1722 if ( fscanf(fpt,
"%d", &iValue ) == EOF )
1735 for(
UInt idx=0; idx<6; idx++)
1739 for(
UInt idx=0; idx<2; idx++)
1751 for(
UInt i=0; i<num; i++)
1762 if( !cfg_codedPivotValue.
values.empty() && !cfg_targetPivotValue.values.empty() )
1769 m_targetPivotValue[i] = cfg_targetPivotValue.values.size() > i ? cfg_targetPivotValue.values[i] : 0;
1782 assert ( cfg_kneeSEINumKneePointsMinus1 >= 0 && cfg_kneeSEINumKneePointsMinus1 < 999 );
1784 for(
Int i=0; i<(cfg_kneeSEINumKneePointsMinus1+1); i++)
1787 kpp.
inputKneePoint = cfg_kneeSEIInputKneePointValue.values.size() > i ? cfg_kneeSEIInputKneePointValue.values[i] : 1;
1792 #if ERP_SR_OV_SEI_MESSAGE
1807 m_omniViewportSEIVerRange[i] = cfg_omniViewportSEIVerRange .values.size() > i ? cfg_omniViewportSEIVerRange .values[i] : 0;
1857 for(
Int j=0; j < 4; j++ )
1880 m_timeSetArray[i].
secondsFlag = cfg_timeCodeSeiSecondsFlag .values.size()>i ? cfg_timeCodeSeiSecondsFlag .values [i] : 0;
1882 m_timeSetArray[i].
hoursFlag = cfg_timeCodeSeiHoursFlag .values.size()>i ? cfg_timeCodeSeiHoursFlag .values [i] : 0;
1892 UInt uiAddCUDepth = 0;
1916 fprintf(stderr,
"******************************************************************\n");
1917 fprintf(stderr,
"** WARNING: --SEIDecodedPictureHash is now disabled by default. **\n");
1918 fprintf(stderr,
"** Automatic verification of decoded pictures by a **\n");
1919 fprintf(stderr,
"** decoder requires this option to be enabled. **\n");
1920 fprintf(stderr,
"******************************************************************\n");
1924 fprintf(stderr,
"***************************************************************************\n");
1925 fprintf(stderr,
"** WARNING: For conforming bitstreams a valid Profile value must be set! **\n");
1926 fprintf(stderr,
"***************************************************************************\n");
1930 fprintf(stderr,
"***************************************************************************\n");
1931 fprintf(stderr,
"** WARNING: For conforming bitstreams a valid Level value must be set! **\n");
1932 fprintf(stderr,
"***************************************************************************\n");
1935 Bool check_failed =
false;
1936 #define xConfirmPara(a,b) check_failed |= confirmPara(a,b)
1956 xConfirmPara(!bValidProfile,
"Invalid intra constraint flag, bit depth constraint flag and chroma format constraint flag combination for a RExt profile");
1971 xConfirmPara(bUsingGeneralRExtTools,
"Combination of tools and profiles are not possible in the specified RExt profile.");
1979 fprintf(stderr,
"********************************************************************************************************\n");
1980 fprintf(stderr,
"** WARNING: The RExt constraint flags describe a non standard combination (used for development only) **\n");
1981 fprintf(stderr,
"********************************************************************************************************\n");
1990 xConfirmPara(!bValidProfile,
"Invalid intra constraint flag and bit depth constraint flag combination for a RExt high profile throughput profile");
1995 if(bitDepthIdx == 3)
1999 else if(bitDepthIdx < 3)
2041 #if !RExt__HIGH_BIT_DEPTH_SUPPORT
2046 xConfirmPara((
m_internalBitDepth[channelType] > 8) ,
"Model is not configured to support high enough internal accuracies - enable RExt__HIGH_BIT_DEPTH_SUPPORT to use increased precision internal data types etc...");
2053 xConfirmPara((
m_internalBitDepth[channelType] > 12) ,
"Model is not configured to support high enough internal accuracies - enable RExt__HIGH_BIT_DEPTH_SUPPORT to use increased precision internal data types etc...");
2058 xConfirmPara( (
m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA ] <
m_inputBitDepth[CHANNEL_TYPE_LUMA ]),
"MSB-extended bit depth for luma channel (--MSBExtendedBitDepth) must be greater than or equal to input bit depth for luma channel (--InputBitDepth)" );
2059 xConfirmPara( (
m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] <
m_inputBitDepth[CHANNEL_TYPE_CHROMA]),
"MSB-extended bit depth for chroma channel (--MSBExtendedBitDepthC) must be greater than or equal to input bit depth for chroma channel (--InputBitDepthC)" );
2074 xConfirmPara( m_iDecodingRefreshType < 0 || m_iDecodingRefreshType > 3,
"Decoding Refresh Type must be comprised between 0 and 3 included" );
2084 fprintf(stderr,
"****************************************************************************\n");
2085 fprintf(stderr,
"** WARNING: Picture Timing SEI should be enabled for field coding! **\n");
2086 fprintf(stderr,
"****************************************************************************\n");
2092 fprintf(stderr,
"****************************************************************************\n");
2093 fprintf(stderr,
"** WARNING: Cross-component prediction is specified for 4:4:4 format only **\n");
2094 fprintf(stderr,
"****************************************************************************\n");
2101 fprintf(stderr,
"****************************************************************************\n");
2102 fprintf(stderr,
"** WARNING: --HadamardME has been disabled due to the enabling of **\n");
2103 fprintf(stderr,
"** --CUTransquantBypassFlagForce **\n");
2104 fprintf(stderr,
"****************************************************************************\n");
2113 fprintf(stderr,
"***************************************************************************\n");
2114 fprintf(stderr,
"** WARNING: Transform skip fast is enabled (which only tests NxN splits),**\n");
2115 fprintf(stderr,
"** but transform skip log2 max size is not 2 (4x4) **\n");
2116 fprintf(stderr,
"** It may be better to disable transform skip fast mode **\n");
2117 fprintf(stderr,
"***************************************************************************\n");
2122 xConfirmPara( m_loopFilterBetaOffsetDiv2 < -6 || m_loopFilterBetaOffsetDiv2 > 6,
"Loop Filter Beta Offset div. 2 exceeds supported range (-6 to 6)");
2123 xConfirmPara( m_loopFilterTcOffsetDiv2 < -6 || m_loopFilterTcOffsetDiv2 > 6,
"Loop Filter Tc Offset div. 2 exceeds supported range (-6 to 6)");
2167 #if ADAPTIVE_QP_SELECTION
2256 Bool verifiedGOP=
false;
2257 Bool errorGOP=
false;
2278 xConfirmPara(
m_GOPList[i].m_temporalId!=0 ,
"The last frame in each GOP must have temporal ID = 0 " );
2293 xConfirmPara( abs(
m_GOPList[i].m_CbQPoffset ) > 12,
"Cb QP Offset for one of the GOP entries exceeds supported range (-12 to 12)" );
2294 xConfirmPara( abs(
m_GOPList[i].m_CbQPoffset +
m_cbQpOffset) > 12,
"Cb QP Offset for one of the GOP entries, when combined with the PPS Cb offset, exceeds supported range (-12 to 12)" );
2295 xConfirmPara( abs(
m_GOPList[i].m_CrQPoffset ) > 12,
"Cr QP Offset for one of the GOP entries exceeds supported range (-12 to 12)" );
2296 xConfirmPara( abs(
m_GOPList[i].m_CrQPoffset +
m_crQpOffset) > 12,
"Cr QP Offset for one of the GOP entries, when combined with the PPS Cr offset, exceeds supported range (-12 to 12)" );
2305 while(!verifiedGOP&&!errorGOP)
2307 Int curGOP = (checkGOP-1)%m_iGOPSize;
2311 printf(
"\nError: found fewer Reference Picture Sets than GOPSize\n");
2317 Bool beforeI =
false;
2328 for(
Int j=0; j<numRefs; j++)
2330 if(refList[j]==absPOC)
2335 if(absPOC%m_iGOPSize ==
m_GOPList[k].m_POC%m_iGOPSize)
2348 printf(
"\nError: ref pic %d is not available for GOP frame %d\n",
m_GOPList[curGOP].m_referencePics[i],curGOP+1);
2353 if(!beforeI&&!errorGOP)
2360 if(numOK==m_iGOPSize)
2383 for(
Int offset = -1; offset>-checkGOP; offset--)
2386 Int offGOP = (checkGOP-1+offset)%m_iGOPSize;
2387 Int offPOC = ((checkGOP-1+offset)/m_iGOPSize)*m_iGOPSize +
m_GOPList[offGOP].
m_POC;
2391 for(
Int i=0; i<numRefs; i++)
2393 if(refList[i]==offPOC)
2398 for(
Int i=0; i<newRefs; i++)
2407 Int insertPoint=newRefs;
2413 for(
Int j=0; j<newRefs; j++)
2421 Int prev = offPOC-curPOC;
2423 for(
Int j=insertPoint; j<newRefs+1; j++)
2435 if(newRefs>=numPrefRefs)
2453 for(
Int i = 0; i<= refPics; i++)
2455 Int deltaPOC = ((i != refPics)?
m_GOPList[rIdx].m_referencePics[i] : 0);
2456 Int absPOCref = refPOC+deltaPOC;
2462 if (
m_GOPList[m_iGOPSize+m_extraRPSs].m_usedByCurrPic[j])
2488 refList[numRefs]=absPOC;
2492 refList[numRefs]=curPOC;
2518 Int highestDecodingNumberWithLowerPOC = 0;
2523 highestDecodingNumberWithLowerPOC = j;
2527 for(
Int j=0; j<highestDecodingNumberWithLowerPOC; j++)
2540 for(
Int i=0; i<MAX_TLAYER-1; i++)
2570 Int maxTileWidth = 0;
2571 Int maxTileHeight = 0;
2599 Int accColumnWidth = 0;
2613 Int accRowHeight = 0;
2622 Int maxSizeInSamplesY = maxTileWidth*maxTileHeight;
2641 xConfirmPara( m_toneMapCodedDataBitDepth < 8 || m_toneMapCodedDataBitDepth > 14 ,
"SEIToneMapCodedDataBitDepth must be in rage 8 to 14");
2643 xConfirmPara( m_toneMapModelId < 0 || m_toneMapModelId > 4 ,
"SEIToneMapModelId must be in rage 0 to 4");
2654 xConfirmPara( kneeSEINumKneePointsMinus1 < 0 || kneeSEINumKneePointsMinus1 > 998,
"SEIKneeFunctionNumKneePointsMinus1 must be in the range of 0 to 998");
2655 for (
UInt i=0; i<=kneeSEINumKneePointsMinus1; i++ )
2681 printf(
"\nInitial QP for rate control is not specified. Reset not to use force intra QP!" );
2702 printf (
"Warning: CPB size is set equal to zero. Adjusting value to be equal to TargetBitrate!\n");
2713 xConfirmPara(m_framePackingSEIType < 3 || m_framePackingSEIType > 5 ,
"SEIFramePackingType must be in rage 3 to 5");
2723 printf(
"Warning: SEITempMotionConstrainedTileSets is set to false to disable temporal motion-constrained tile sets SEI message because there are no tiles enabled.\n");
2730 printf(
"Warning: Constrained Encoding for Temporal Motion Constrained Tile Sets is enabled. Disabling filtering across tile boundaries!\n");
2742 #if ERP_SR_OV_SEI_MESSAGE
2745 xConfirmPara( m_erpSEIGuardBandType < 0 || m_erpSEIGuardBandType > 8,
"SEIEquirectangularprojectionGuardBandType must be in the range of 0 to 7");
2760 xConfirmPara( m_omniViewportSEIId < 0 || m_omniViewportSEIId > 1023,
"SEIomniViewportId must be in the range of 0 to 1023");
2761 xConfirmPara( m_omniViewportSEICntMinus1 < 0 || m_omniViewportSEICntMinus1 > 15,
"SEIomniViewportCntMinus1 must be in the range of 0 to 15");
2773 #if EXTENSION_360_VIDEO
2774 check_failed |= m_ext360.verifyParameters();
2788 for (
UInt profileIndex = 0; profileIndex < numberOfProfiles; profileIndex++)
2797 std::cerr <<
"ERROR: Unknown profile \"" << profile <<
"\" in profileToString" << std::endl;
2812 printf(
"Sequence MSE output : %s\n", (
m_printSequenceMSE ?
"Enabled" :
"Disabled") );
2813 printf(
"Frame MSE output : %s\n", (
m_printFrameMSE ?
"Enabled" :
"Disabled") );
2814 #if JVET_F0064_MSSSIM
2815 printf(
"MS-SSIM output : %s\n", (
m_printMSSSIM ?
"Enabled" :
"Disabled") );
2820 printf(
"Frame/Field : Field based coding\n");
2827 printf(
"Frame/Field : Frame based coding\n");
2844 std::string rextSubProfile;
2845 if (validProfileName!=
UI_NONE)
2849 if (rextSubProfile ==
"main_444_16")
2851 rextSubProfile=
"main_444_16 [NON STANDARD]";
2853 printf(
"Profile : %s (%s)\n",
profileToString(
m_profile), (rextSubProfile.empty())?
"INVALID REXT PROFILE":rextSubProfile.c_str() );
2861 std::string subProfile;
2862 if (validProfileName!=
UI_NONE)
2866 printf(
"Profile : %s (%s)\n",
profileToString(
m_profile), (subProfile.empty())?
"INVALID HIGH THROUGHPUT REXT PROFILE":subProfile.c_str() );
2884 #if JVET_E0059_FLOATING_POINT_QP_FIX
2891 printf(
"QP : %d\n",
m_iQP );
2894 printf(
"QP : %5.2f\n", m_fQP );
2930 default: printf(
"Cost function: : Unknown\n");
break;
2955 printf(
"TOOL CFG: ");
2971 printf(
"RQT:%d ", 1 );
2991 printf(
"TransQuantBypassEnabled: =1");
3005 #if ADAPTIVE_QP_SELECTION
3012 #if EXTENSION_360_VIDEO
3013 m_ext360.outputConfigurationSummary();
3028 printf(
"Error: %s\n",message);
UInt m_pcmLog2MaxSize
log2 of maximum PCM block size
Int m_sphereRotationSEIYaw
static struct MapStrToScalingListMode strToScalingListMode[]
Void create()
create option handling class
ChromaFormat m_InputChromaFormatIDC
TComSEIMasteringDisplay m_masteringDisplay
static const Int MAX_NUM_REF_PICS
max. number of pictures used for reference
Bool m_RCEnableRateControl
enable rate control or not
std::string m_scalingListFileName
quantization matrix file name
Bool m_recalculateQPAccordingToLambda
recalculate QP value according to the lambda value
Bool m_ccvSEIMaxLuminanceValuePresentFlag
Bool m_signDataHidingEnabledFlag
Int m_chromaSampleLocTypeTopField
Specifies the location of chroma samples for top field.
UInt m_RCCpbSize
CPB size.
Double m_ccvSEIAvgLuminanceValue
Bool m_bFastUDIUseMPMEnabled
Bool m_useStrongIntraSmoothing
enable strong intra smoothing for 32x32 blocks where the reference samples are flat ...
std::vector< Int > m_omniViewportSEIAzimuthCentre
Int m_iDecodingRefreshType
random access type
Bool m_loopFilterOffsetInPPS
offset for deblocking filter in 0 = slice header, 1 = PPS
Bool m_TransquantBypassEnabledFlag
transquant_bypass_enabled_flag setting in PPS.
Bool m_transformSkipRotationEnabledFlag
control flag for transform-skip/transquant-bypass residual rotation
Int m_deblockingFilterMetric
blockiness metric in encoder
std::vector< UChar > m_rwpSEIRwpTopGuardBandHeight
std::vector< UInt > m_rwpSEIProjRegionHeight
UInt m_uiMaxCUDepth
max. CU depth (as specified by command line)
UInt m_FrameSkip
number of skipped frames from the beginning
UInt g_uiMaxCpbSize[2][21]
#define xConfirmPara(a, b)
Double m_ccvSEIMaxLuminanceValue
Bool m_videoFullRangeFlag
Indicates the black level and range of luma and chroma signals.
void doHelp(ostream &out, Options &opts, unsigned columns)
Double chromaQpOffset
Chroma QP Offset (0.0:default)
Bool m_colourDescriptionPresentFlag
Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present...
Int m_crQpOffset
Chroma Cr QP Offset (0:default)
Bool m_saoCtuBoundary
SAO parameter estimation using non-deblocked pixels for CTU bottom and right boundary areas...
Bool m_rwpSEIRwpPersistenceFlag
static const Int LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP
QP to use for lossless coding.
Bool m_cmpSEICmpPersistenceFlag
Bool m_bUseAdaptiveQP
Flag for enabling QP adaptation based on a psycho-visual model.
Bool m_recoveryPointSEIEnabled
#define MACRO_TO_STRING(val)
Int m_log2MaxMvLengthHorizontal
Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units...
Int m_colourPrimaries
Indicates chromaticity coordinates of the source primaries.
Bool m_bPCMInputBitDepthFlag
0: PCM bit-depth is internal bit-depth. 1: PCM bit-depth is input bit-depth.
Int m_inputFileHeight
height of image in input file (this is equivalent to sourceHeight, if sourceHeight is not subsequentl...
GOPEntry m_GOPList[MAX_GOP]
the coding structure entries from the config file
std::string m_reconFileName
output reconstruction file
MESearchMethod
supported ME search methods
Int m_cbQpOffset
Chroma Cb QP Offset (0:default)
std::vector< std::pair< Int, Int > > mapping
first=luma level, second=delta QP.
Int m_matrixCoefficients
Describes the matrix coefficients used in deriving luma and chroma from RGB primaries.
Bool m_intraConstraintFlag
Int m_MSBExtendedBitDepth[MAX_NUM_CHANNEL_TYPE]
bit-depth of input samples after MSB extension
Int m_iQPAdaptationRange
dQP range by QP adaptation
Int m_outputBitDepth[MAX_NUM_CHANNEL_TYPE]
bit-depth of output file
Bool m_lowerBitRateConstraintFlag
Double maxMethodWeight
weight of max luma value when mode = 2
Bool m_toneMappingInfoSEIEnabled
Int m_transferCharacteristics
Indicates the opto-electronic transfer characteristics of the source.
std::vector< Int > m_omniViewportSEITiltCentre
global variables & functions (header)
Int m_inputBitDepth[MAX_NUM_CHANNEL_TYPE]
bit-depth of input file
static std::string enumToString(P map[], UInt mapLen, const T val)
std::vector< UInt > m_rwpSEIProjRegionWidth
Bool m_ccvSEIAvgLuminanceValuePresentFlag
Double m_dIntraQpFactor
Intra Q Factor. If negative, use a default equation: 0.57*(1.0 - Clip3( 0.0, 0.5, 0...
Int m_extendedWhiteLevelLumaCodeValue
ChromaFormat m_chromaFormatConstraint
Bool m_ccvSEIMinLuminanceValuePresentFlag
std::vector< UInt > m_rwpSEIProjRegionLeft
don't use slices / slice segments
Int m_iFrameRate
source frame-rates (Hz)
Int m_chromaSampleLocTypeBottomField
Specifies the location of chroma samples for bottom field.
Bool m_snrInternalColourSpace
if true, then no colour space conversion is applied for snr calculation, otherwise inverse of input i...
Int m_exposureCompensationValueNumerator
Bool parseCfg(Int argc, TChar *argv[])
parse configuration file to fill member variables
Bool m_vuiParametersPresentFlag
enable generation of VUI parameters
UInt m_sliceChromaQpOffsetPeriodicity
Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nat...
Bool m_bitstreamRestrictionFlag
Signals whether bitstream restriction parameters are present.
Bool m_tilesFixedStructureFlag
Indicates that each active picture parameter set has the same values of the syntax elements related t...
Int m_iQP
QP value of key-picture (integer)
Bool m_omniViewportSEIEnabled
UInt m_uiQuadtreeTULog2MaxSize
std::string m_colourRemapSEIFileRoot
SliceConstraint m_sliceMode
static Int getWinUnitY(Int chromaFormatIdc)
Bool m_cmpSEICmpCancelFlag
Bool m_bufferingPeriodSEIEnabled
Bool m_bHarmonizeGopFirstFieldCoupleEnabled
static struct MapStrToUIProfileName strToUIProfileName[]
UInt m_temporalSubsampleRatio
temporal subsample ratio, 2 means code every two frames
Int m_iSourceWidth
source width in pixel
Int m_chromaResamplingHorFilterIdc
Int m_sarHeight
vertical size of the sample aspect ratio
std::vector< UShort > m_rwpSEIPackedRegionHeight
ScalingListMode m_useScalingListId
using quantization matrix
Int m_cameraIsoSpeedValue
Int m_videoFormat
Indicates representation of pictures.
Double chromaQpScale
Chroma QP Scale (0.0:default)
UInt m_log2ParallelMergeLevel
Parallel merge estimation region.
Int m_usedByCurrPic[MAX_NUM_REF_PICS]
Double m_saoEncodingRate
When >0 SAO early picture termination is enabled for luma and chroma.
Bool m_motionVectorsOverPicBoundariesFlag
Indicates that no samples outside the picture boundaries are used for inter prediction.
Int m_framePackingSEIInterpretation
Int m_defDispWinRightOffset
Specifies the right offset from the conformance window of the default window.
std::string m_summaryOutFilename
filename to use for producing summary output file.
Int m_displayOrientationSEIAngle
std::vector< UChar > m_rwpSEIRwpRightGuardBandWidth
static struct MapStrToProfile strToProfile[]
Int m_loopFilterTcOffsetDiv2
tc offset for deblocking filter
std::vector< Int > m_tileColumnWidth
void setDefaults(Options &opts)
std::string m_bitstreamFileName
output bitstream file
Bool m_aspectRatioInfoPresentFlag
Signals whether aspect_ratio_idc is present.
Bool m_bFastMEAssumingSmootherMVEnabled
Enables fast ME assuming a smoother MV.
Bool m_bLoopFilterDisable
flag for using deblocking filter
Bool m_bUseBLambdaForNonKeyLowDelayPictures
Bool m_sphereRotationSEICancelFlag
Int m_numReorderPics[MAX_TLAYER]
total number of reorder pictures
Int m_loopFilterBetaOffsetDiv2
beta offset for deblocking filter
UInt m_uiLog2DiffMaxMinCodingBlockSize
difference between largest and smallest CU depth
Int m_exposureCompensationValueDenomIdc
list< const char * > scanArgv(Options &opts, unsigned argc, const char *argv[], ErrorReporter &error_reporter)
Bool m_exposureCompensationValueSignFlag
UInt m_erpSEIRightGuardBandWidth
Bool m_SOPDescriptionSEIEnabled
Bool m_frameOnlyConstraintFlag
static ChromaFormat numberToChromaFormat(const Int val)
Bool confirmPara(Bool bflag, const TChar *message)
Bool m_omniViewportSEICancelFlag
Bool m_highPrecisionOffsetsEnabledFlag
std::vector< UShort > m_rwpSEIPackedRegionLeft
Bool m_timeCodeSEIEnabled
Bool m_isField
enable field coding
std::vector< UChar > m_rwpSEIRwpTransformType
FastInterSearchMode m_fastInterSearchMode
Parameter that controls fast encoder settings.
WCGChromaQPControl m_wcgChromaQpControl
Wide-colour-gamut chroma QP control.
Int m_refIdc[MAX_NUM_REF_PICS+1]
#define EXTENSION_360_VIDEO
extension for 360/spherical video coding support; this macro should be controlled by makefile...
std::vector< Bool > m_rwpSEIRwpGuardBandFlag
Int m_maxNumOffsetsPerPic
SAO maximun number of offset per picture.
Bool m_RCForceIntraQP
force all intra picture to use initial QP or not
Bool m_useEarlySkipDetection
flag for using Early SKIP Detection
std::string m_summaryPicFilenameBase
Base filename to use for producing summary picture output files. The actual filenames used will have ...
Int m_preferredTransferCharacteristics
Double m_saoEncodingRateChroma
The SAO early picture termination rate to use for chroma (when m_SaoEncodingRate is >0)...
Bool m_framePackingSEIEnabled
OptionSpecific addOptions()
Double m_ccvSEIPrimariesX[MAX_NUM_COMPONENT]
LumaLevelToDQPMode mode
use deltaQP determined by block luma level
std::string m_inputFileName
source file name
Int m_iSourceHeight
source height in pixel (when interlaced = field height)
static const UIProfileName validRExtHighThroughPutProfileNames[2][4]
Bool m_outputInternalColourSpace
if true, then no colour space conversion is applied for reconstructed video, otherwise inverse of inp...
Int m_toneMapCodedDataBitDepth
Int m_RCKeepHierarchicalBit
0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation ...
UInt m_omniViewportSEICntMinus1
Int m_activeParameterSetsSEIEnabled
Double m_QPOffsetModelScale
static const Int MAX_GOP
max. value of hierarchical GOP size
Bool m_crossComponentPredictionEnabledFlag
flag enabling the use of cross-component prediction
Int m_minSearchWindow
ME minimum search window size for the Adaptive Window ME.
Bool m_omniViewportSEIPersistenceFlag
Bool m_sphereRotationSEIEnabled
Int m_toneMapTargetBitDepth
static struct MapStrToLevel strToLevel[]
Double m_ccvSEIPrimariesY[MAX_NUM_COMPONENT]
Bool m_segmentedRectFramePackingSEICancel
Bool m_useRDOQTS
flag for using RD optimized quantization for transform skip
Int m_defDispWinTopOffset
Specifies the top offset from the conformance window of the default window.
Int m_conformanceWindowMode
static struct MapStrToTier strToTier[]
Bool m_transformSkipContextEnabledFlag
control flag for transform-skip/transquant-bypass single significance map context ...
Bool m_extendedPrecisionProcessingFlag
std::vector< UShort > m_rwpSEIPackedRegionWidth
std::vector< Int > m_tileRowHeight
Bool m_useSelectiveRDOQ
flag for using selective RDOQ
UInt m_erpSEIGuardBandType
static const Int LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP_PRIME
QP' to use for mixed_lossy_lossless coding.
#define ADAPTIVE_QP_SELECTION
G382: Adaptive reconstruction levels, non-normative part for adaptive QP selection.
Int m_sphereRotationSEIPitch
Bool m_bClipOutputVideoToRec709Range
Bool m_ccvSEIPrimariesPresentFlag
#define JVET_F0064_MSSSIM
Calculate MS-SSIM scores.
Bool enabled
Enabled flag (0:default)
Int m_iIntraPeriod
period of I-slice (random access period)
LumaLevelToDeltaQPMapping m_lumaLevelToDeltaQPMapping
mapping from luma level to Delta QP.
Int m_maxBytesPerPicDenom
Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units associated with...
Int * m_aidQP
array of slice QP values
Bool m_gradualDecodingRefreshInfoEnabled
Bool m_bFastDeltaQP
Fast Delta QP (false:default)
Int m_segmentedRectFramePackingSEIType
Bool m_toneMapPersistenceFlag
Int m_RCInitialQP
inital QP for rate control
Bool m_rwpSEIConstituentPictureMatchingFlag
UInt m_uiMaxCUWidth
max. CU width in pixel
Bool m_AccessUnitDelimiter
add Access Unit Delimiter NAL units
Bool m_sphereRotationSEIPersistenceFlag
Bool m_bUseEarlyCU
flag for using Early CU setting
Bool m_RCLCULevelRC
true: LCU level rate control; false: picture level rate control NOTE: code-tidy - rename to m_RCCtuLe...
Bool numUnitFieldBasedFlag
Int m_sarWidth
horizontal size of the sample aspect ratio
Bool m_bLFCrossTileBoundaryFlag
1: filter across tile boundaries 0: do not filter across tile boundaries
TEncCfg::TEncSEIKneeFunctionInformation m_kneeFunctionInformationSEI
Double chromaCrQpScale
Chroma Cr QP Scale (1.0:default)
static istream & readStrToEnum(P map[], UInt mapLen, istream &in, T &val)
Int m_maxBitsPerMinCuDenom
Indicates an upper bound for the number of bits of coding_unit() data.
Bool m_erpSEIPersistenceFlag
Bool m_useWeightedPred
Use of weighted prediction in P slices.
Double m_ccvSEIMinLuminanceValue
Bool m_useTransformSkip
flag for enabling intra transform skipping
Void xCheckParameter()
check validity of configuration values
Int m_rwpSEIPackedPictureHeight
Int m_iGOPSize
GOP size of hierarchical structure.
Int m_sliceSegmentArgument
argument according to selected slice segment mode
static istream & operator>>(istream &in, Tier &tier)
Int m_bipredSearchRange
ME search range for bipred refinement.
Bool m_entropyCodingSyncEnabledFlag
Bool colourVolumeSEIEnabled
Double m_QPOffsetModelOffset
Bool m_cabacZeroWordPaddingEnabled
Bool m_pictureTimingSEIEnabled
UInt m_summaryVerboseness
Specifies the level of the verboseness of the text output.
Handle encoder configuration parameters (header)
std::vector< UChar > m_rwpSEIRwpBottomGuardBandHeight
Bool m_cabacBypassAlignmentEnabledFlag
UInt m_uiQuadtreeTULog2MinSize
Int m_nominalBlackLevelLumaCodeValue
Int m_inputFileWidth
width of image in input file (this is equivalent to sourceWidth, if sourceWidth is not subsequently a...
ChromaFormat m_chromaFormatIDC
ChromaFormat
chroma formats (according to semantics of chroma_format_idc)
WeightedPredictionMethod m_weightedPredictionMethod
Bool m_progressiveSourceFlag
Double m_adLambdaModifier[MAX_TLAYER]
Lambda modifier array for each temporal layer.
std::vector< UInt > m_omniViewportSEIVerRange
Bool m_bClipForBiPredMeEnabled
Enables clipping for Bi-Pred ME.
Bool m_printMSEBasedSequencePSNR
Int m_intraQPOffset
QP offset for intra slice (integer)
static struct MapStrToCostMode strToCostMode[]
Bool m_frameFieldInfoPresentFlag
Indicates that pic_struct values are present in picture timing SEI messages.
Limit maximum number of largest coding tree units in a slice / slice segments.
Bool m_nonPackedConstraintFlag
Int m_sliceArgument
argument according to selected slice mode
Bool m_useRDOQ
flag for using RD optimized quantization
Double chromaCbQpScale
Chroma Cb QP Scale (1.0:default)
Bool m_bUseCbfFastMode
flag for using Cbf Fast PU Mode Decision
std::string m_dQPFileName
QP offset for each slice (initialized from external file)
static const UInt LUMA_LEVEL_TO_DQP_LUT_MAXSIZE
max LUT size for QP offset based on luma
UInt m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]
number of bits for the upward bit shift operation on the decoded SAO offsets
Bool m_chromaLocInfoPresentFlag
Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present...
Bool m_useWeightedBiPred
Use of bi-directional weighted prediction in B slices.
std::vector< UChar > m_rwpSEIRwpGuardBandType
Bool m_videoSignalTypePresentFlag
Signals whether video_format, video_full_range_flag, and colour_description_present_flag are present...
Bool m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES]
control flags for residual DPCM
void parseConfigFile(Options &opts, const string &filename, ErrorReporter &error_reporter)
Bool m_scalableNestingSEIEnabled
Bool m_RCUseLCUSeparateModel
use separate R-lambda model at LCU level NOTE: code-tidy - rename to m_RCUseCtuSeparateModel ...
Void destroy()
destroy option handling class
UInt m_uiPCMLog2MinSize
log2 of minimum PCM block size
static const UIProfileName validRExtProfileNames[2][4][4]
Bool m_bReWriteParamSetsFlag
Flag to enable rewriting of parameter sets at random access points.
Bool m_useTransformSkipFast
flag for enabling fast intra transform skipping
Int m_iSourceHeightOrg
original source height in pixel (when interlaced = frame height)
Int m_minSpatialSegmentationIdc
Indicates the maximum size of the spatial segments in the pictures in the coded video sequence...
UInt m_bitDepthConstraint
Int m_rwpSEIPackedPictureWidth
Bool m_bEfficientFieldIRAPEnabled
enable an efficient field IRAP structure.
static const Int MAX_TLAYER
Explicit temporal layer QP offset - max number of temporal layer.
Bool m_tileUniformSpacingFlag
std::vector< UShort > m_rwpSEIPackedRegionTop
Bool m_bTestSAODisableAtPictureLevel
UInt m_uiQuadtreeTUMaxDepthIntra
Bool m_bPCMFilterDisableFlag
PCM filter disable flag.
InputColourSpaceConversion m_inputColourSpaceConvert
colour space conversion to apply to input video
Bool m_segmentedRectFramePackingSEIPersistence
Int * m_startOfCodedInterval
Bool m_saoResetEncoderStateAfterIRAP
When true, SAO encoder state will be reset following an IRAP.
Int m_chromaResamplingVerFilterIdc
Int m_framePackingSEIType
Bool m_bRestrictMESampling
Restrict sampling for the Selective ME.
Int m_aspectRatioIdc
aspect_ratio_idc
#define RNSEI
Support for signalling regional nesting SEI message.
CostMode m_costMode
Cost mode to use.
std::vector< Double > m_adIntraLambdaModifier
Lambda modifier for Intra pictures, one for each temporal layer. If size>temporalLayer, then use [temporalLayer], else if size>0, use [size()-1], else use m_adLambdaModifier.
static Int getWinUnitX(Int chromaFormatIdc)
Int m_numTileColumnsMinus1
Int m_maxDecPicBuffering[MAX_TLAYER]
total number of pictures in the decoded picture buffer
Bool m_bDisableIntraPUsInInterSlices
Flag for disabling intra predicted PUs in inter slices.
UInt m_uiQuadtreeTUMaxDepthInter
Bool m_RCCpbSaturationEnabled
enable target bits saturation to avoid CPB overflow and underflow
#define MCTS_ENC_CHECK
Temporal MCTS encoder constraint and decoder checks. Also requires SEITMCTSTileConstraint to be enabl...
Bool m_bUseASR
flag for using adaptive motion search range
UInt m_maxNumMergeCand
Max number of merge candidates.
Bool m_ccvSEIPersistenceFlag
TComSEITimeSet m_timeSetArray[MAX_TIMECODE_SEI_SETS]
UInt m_erpSEILeftGuardBandWidth
std::vector< Bool > m_rwpSEIRwpGuardBandNotUsedForPredFlag
Bool m_chromaResamplingFilterSEIenabled
static Void automaticallySelectRExtProfile(const Bool bUsingGeneralRExtTools, const Bool bUsingChromaQPAdjustment, const Bool bUsingExtendedPrecision, const Bool bIntraConstraintFlag, UInt &bitDepthConstraint, ChromaFormat &chromaFormatConstraint, const Int maxBitDepth, const ChromaFormat chromaFormat)
Int m_rwpSEINumPackedRegions
Int m_diffCuChromaQpOffsetDepth
If negative, then do not apply chroma qp offsets.
Bool m_enableIntraReferenceSmoothing
flag for enabling(default)/disabling intra reference smoothing/filtering
Bool m_segmentedRectFramePackingSEIEnabled
std::vector< UChar > m_rwpSEIRwpLeftGuardBandWidth
MESearchMethod m_motionEstimationSearchMethod
Bool m_tmctsSEITileConstraint
Bool m_rwpSEIRwpCancelFlag
UInt m_uiMaxTotalCUDepth
max. total CU depth - includes depth of transform-block structure
Bool m_reconBasedCrossCPredictionEstimate
causes the alpha calculation in encoder search to be based on the decoded residual rather than the pr...
Rate control manager class.
Void xPrintParameter()
print configuration values
Bool m_bUseConstrainedIntraPred
flag for using constrained intra prediction
Int m_defDispWinBottomOffset
Specifies the bottom offset from the conformance window of the default window.
std::string m_regionalNestingSEIFileRoot
UInt m_uiDeltaQpRD
dQP range for multi-pass slice QP optimization
Bool m_persistentRiceAdaptationEnabledFlag
control flag for Golomb-Rice parameter adaptation over each slice
std::vector< UInt > m_omniViewportSEIHorRange
Bool m_defaultDisplayWindowFlag
Indicates the presence of the default window parameters.
Bool m_overscanAppropriateFlag
Indicates whether conformant decoded pictures are suitable for display using overscan.
Int m_internalBitDepth[MAX_NUM_CHANNEL_TYPE]
bit-depth codec operates at (input/output files will be converted)
Int m_sphereRotationSEIRoll
Int m_refScreenLuminanceWhite
Int m_defDispWinLeftOffset
Specifies the left offset from the conformance window of the default window.
Bool m_bUseHADME
flag for using HAD in sub-pel ME
Bool m_onePictureOnlyConstraintFlag
Int m_iSearchRange
ME search range.
SliceConstraint m_sliceSegmentMode
Int m_RCTargetBitrate
target bitrate when rate control is enabled
Bool m_bClipInputVideoToRec709Range
Int m_framePackingSEIQuincunx
Bool m_neutralChromaIndicationFlag
Indicates that the value of all decoded chroma samples is equal to 1<<(BitDepthCr-1) ...
Bool m_interlacedSourceFlag
Int m_rwpSEIProjPictureHeight
static const Int MAX_TIMECODE_SEI_SETS
Maximum number of time sets.
Int m_sliceChromaQpOffsetIntraOrPeriodic[2]
Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChroma...
Int m_numTicksPocDiffOneMinus1
Number of ticks minus 1 that for a POC difference of one.
Bool m_CUTransquantBypassFlagForce
if transquant_bypass_enabled_flag, then, if true, all CU transquant bypass flags will be set to true...
std::vector< UInt > m_rwpSEIRwpSEIProjRegionTop
Bool m_usePCM
flag for using IPCM
std::istringstream & operator>>(std::istringstream &in, GOPEntry &entry)
Double m_RCInitialCpbFullness
initial CPB fullness
Bool m_temporalLevel0IndexSEIEnabled
Int m_nominalWhiteLevelLumaCodeValue
Int m_extraRPSs
extra RPSs added to handle CRA
std::vector< Int > m_omniViewportSEIElevationCentre
Int m_rwpSEIProjPictureWidth
Bool m_erpSEIGuardBandFlag
Int m_maxTempLayer
Max temporal layer.
Bool m_bFastMEForGenBLowDelayEnabled
Int m_referencePics[MAX_NUM_REF_PICS]
Bool m_pocProportionalToTimingFlag
Indicates that the POC value is proportional to the output time w.r.t. first picture in CVS...
OptionalValue< UInt > m_qpIncrementAtSourceFrame
Optional source frame number at which all subsequent frames are to use an increased internal QP...
HashType m_decodedPictureHashSEIType
Checksum mode for decoded picture hash SEI message.
Bool m_useFastDecisionForMerge
flag for using Fast Decision Merge RD-Cost
Int m_aiPad[2]
number of padded pixels for width and height
UInt m_log2MaxTransformSkipBlockSize
transform-skip maximum size (minimum of 2)
Int m_log2MaxMvLengthVertical
Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units...
Bool m_decodingUnitInfoSEIEnabled
Int m_framesToBeEncoded
number of encoded frames
Int m_extendedRangeWhiteLevel
UInt m_uiMaxCUHeight
max. CU height in pixel
Int m_iMaxDeltaQP
max. |delta QP|
Int m_iMaxCuDQPDepth
Max. depth for a minimum CuDQPSize (0:default)
Bool m_lambdaFromQPEnable
enable flag for QP:lambda fix
Bool m_bLFCrossSliceBoundaryFlag
1: filter across slice boundaries 0: do not filter across slice boundaries
Bool m_overscanInfoPresentFlag
Signals whether overscan_appropriate_flag is present.
const TChar * profileToString(const Profile::Name profile)
Int m_rdPenalty
RD-penalty for 32x32 TU for intra in non-intra slices (0: no RD-penalty, 1: RD-penalty, 2: maximum RD-penalty)