Changeset 1316 in SHVCSoftware for branches/SHM-dev/source/App


Ignore:
Timestamp:
21 Jul 2015, 20:08:08 (10 years ago)
Author:
seregin
Message:

port rev 4391

Location:
branches/SHM-dev/source/App/TAppEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r1311 r1316  
    876876    cfg_aiPadX[layer]               = &m_acLayerCfg[layer].m_aiPad[0];
    877877    cfg_aiPadY[layer]               = &m_acLayerCfg[layer].m_aiPad[1];
    878     cfg_useExtendedPrecision[layer] = &m_acLayerCfg[layer].m_useExtendedPrecision;
     878    cfg_useExtendedPrecision[layer] = &m_acLayerCfg[layer].m_extendedPrecisionProcessingFlag;
    879879
    880880    cfg_maxCuDQPDepth[layer]        = &m_acLayerCfg[layer].m_iMaxCuDQPDepth;
     
    11651165  ("MSBExtendedBitDepthC",                            m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA],           0, "As per MSBExtendedBitDepth but for chroma component. (default:MSBExtendedBitDepth)")
    11661166  ("InternalBitDepthC",                               m_internalBitDepth[CHANNEL_TYPE_CHROMA],              0, "As per InternalBitDepth but for chroma component. (default:InternalBitDepth)")
    1167   ("ExtendedPrecision",                               m_useExtendedPrecision,                           false, "Increased internal accuracies to support high bit depths (not valid in V1 profiles)")
    1168   ("HighPrecisionPredictionWeighting",                m_useHighPrecisionPredictionWeighting,            false, "Use high precision option for weighted prediction (not valid in V1 profiles)")
     1167  ("ExtendedPrecision",                               m_extendedPrecisionProcessingFlag,                false, "Increased internal accuracies to support high bit depths (not valid in V1 profiles)")
     1168  ("HighPrecisionPredictionWeighting",                m_highPrecisionOffsetsEnabledFlag,                false, "Use high precision option for weighted prediction (not valid in V1 profiles)")
    11691169  ("InputColourSpaceConvert",                         inputColourSpaceConvert,                     string(""), "Colour space conversion to apply to input video. Permitted values are (empty string=UNCHANGED) " + getListOfColourSpaceConverts(true))
    11701170  ("SNRInternalColourSpace",                          m_snrInternalColourSpace,                         false, "If true, then no colour space conversion is applied prior to SNR, otherwise inverse of input is applied.")
     
    13121312  ("MaxCuDQPDepth,-dqd",                              m_iMaxCuDQPDepth,                                     0, "max depth for a minimum CuDQP")
    13131313#endif
    1314   ("MaxCUChromaQpAdjustmentDepth",                    m_maxCUChromaQpAdjustmentDepth,                      -1, "Maximum depth for CU chroma Qp adjustment - set less than 0 to disable")
     1314  ("MaxCUChromaQpAdjustmentDepth",                    m_diffCuChromaQpOffsetDepth,                         -1, "Maximum depth for CU chroma Qp adjustment - set less than 0 to disable")
    13151315
    13161316  ("CbQpOffset,-cbqpofs",                             m_cbQpOffset,                                         0, "Chroma Cb QP Offset")
     
    13431343  // Coding tools
    13441344  ("AMP",                                             m_enableAMP,                                       true, "Enable asymmetric motion partitions")
    1345   ("CrossComponentPrediction",                        m_useCrossComponentPrediction,                    false, "Enable the use of cross-component prediction (not valid in V1 profiles)")
     1345  ("CrossComponentPrediction",                        m_crossComponentPredictionEnabledFlag,            false, "Enable the use of cross-component prediction (not valid in V1 profiles)")
    13461346  ("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")
    13471347  ("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")
     
    13491349  ("TransformSkip",                                   m_useTransformSkip,                               false, "Intra transform skipping")
    13501350  ("TransformSkipFast",                               m_useTransformSkipFast,                           false, "Fast intra transform skipping")
    1351   ("TransformSkipLog2MaxSize",                        m_transformSkipLog2MaxSize,                          2U, "Specify transform-skip maximum size. Minimum 2. (not valid in V1 profiles)")
    1352   ("ImplicitResidualDPCM",                            m_useResidualDPCM[RDPCM_SIGNAL_IMPLICIT],         false, "Enable implicitly signalled residual DPCM for intra (also known as sample-adaptive intra predict) (not valid in V1 profiles)")
    1353   ("ExplicitResidualDPCM",                            m_useResidualDPCM[RDPCM_SIGNAL_EXPLICIT],         false, "Enable explicitly signalled residual DPCM for inter (not valid in V1 profiles)")
    1354   ("ResidualRotation",                                m_useResidualRotation,                            false, "Enable rotation of transform-skipped and transquant-bypassed TUs through 180 degrees prior to entropy coding (not valid in V1 profiles)")
    1355   ("SingleSignificanceMapContext",                    m_useSingleSignificanceMapContext,                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)")
    1356   ("GolombRiceParameterAdaptation",                   m_useGolombRiceParameterAdaptation,               false, "Enable the adaptation of the Golomb-Rice parameter over the course of each slice")
    1357   ("AlignCABACBeforeBypass",                          m_alignCABACBeforeBypass,                         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" )
     1351  ("TransformSkipLog2MaxSize",                        m_log2MaxTransformSkipBlockSize,                     2U, "Specify transform-skip maximum size. Minimum 2. (not valid in V1 profiles)")
     1352  ("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)")
     1353  ("ExplicitResidualDPCM",                            m_rdpcmEnabledFlag[RDPCM_SIGNAL_EXPLICIT],        false, "Enable explicitly signalled residual DPCM for inter (not valid in V1 profiles)")
     1354  ("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)")
     1355  ("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)")
     1356  ("GolombRiceParameterAdaptation",                   m_persistentRiceAdaptationEnabledFlag,            false, "Enable the adaptation of the Golomb-Rice parameter over the course of each slice")
     1357  ("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" )
    13581358  ("SAO",                                             m_bUseSAO,                                         true, "Enable Sample Adaptive Offset")
    13591359  ("MaxNumOffsetsPerPic",                             m_maxNumOffsetsPerPic,                             2048, "Max number of SAO offset per picture (Default: 2048)")
     
    18581858    m_acLayerCfg[layer].m_chromaFormatIDC      = ((tmpChromaFormat == 0) ? (m_acLayerCfg[layer].m_InputChromaFormatIDC) : (numberToChromaFormat(tmpChromaFormat)));
    18591859
    1860     m_acLayerCfg[layer].m_useHighPrecisionPredictionWeighting = false;
    1861     m_acLayerCfg[layer].m_useExtendedPrecision = false;
     1860    m_acLayerCfg[layer].m_highPrecisionOffsetsEnabledFlag = false;
     1861    m_acLayerCfg[layer].m_extendedPrecisionProcessingFlag = false;
    18621862
    18631863    if( m_acLayerCfg[layer].m_layerSwitchOffBegin < m_acLayerCfg[layer].m_layerSwitchOffEnd )
     
    18811881    for (UInt channelType = 0; channelType < MAX_NUM_CHANNEL_TYPE; channelType++)
    18821882    {
    1883       m_acLayerCfg[layer].m_saoOffsetBitShift[channelType] = 0;
     1883      m_acLayerCfg[layer].m_log2SaoOffsetScale[channelType] = 0;
    18841884    }
    18851885       
     
    19251925      {
    19261926        // produce a valid combination, if possible.
    1927         const Bool bUsingGeneralRExtTools  = m_useResidualRotation                    ||
    1928           m_useSingleSignificanceMapContext        ||
    1929           m_useResidualDPCM[RDPCM_SIGNAL_IMPLICIT] ||
    1930           m_useResidualDPCM[RDPCM_SIGNAL_EXPLICIT] ||
    1931           !m_enableIntraReferenceSmoothing         ||
    1932           m_useGolombRiceParameterAdaptation       ||
    1933           m_transformSkipLog2MaxSize!=2;
    1934         const Bool bUsingChromaQPAdjustment= m_maxCUChromaQpAdjustmentDepth >= 0;
    1935         const Bool bUsingExtendedPrecision = m_acLayerCfg[layer].m_useExtendedPrecision;
     1927        const Bool bUsingGeneralRExtTools  = m_transformSkipRotationEnabledFlag  ||
     1928          m_transformSkipContextEnabledFlag         ||
     1929          m_rdpcmEnabledFlag[RDPCM_SIGNAL_IMPLICIT] ||
     1930          m_rdpcmEnabledFlag[RDPCM_SIGNAL_EXPLICIT] ||
     1931          !m_enableIntraReferenceSmoothing          ||
     1932          m_persistentRiceAdaptationEnabledFlag     ||
     1933          m_log2MaxTransformSkipBlockSize!=2;
     1934        const Bool bUsingChromaQPAdjustment= m_diffCuChromaQpOffsetDepth >= 0;
     1935        const Bool bUsingExtendedPrecision = m_acLayerCfg[layer].m_extendedPrecisionProcessingFlag;
    19361936        m_acLayerCfg[layer].m_chromaFormatConstraint = NUM_CHROMA_FORMAT;
    19371937        automaticallySelectRExtProfile(bUsingGeneralRExtTools,
     
    20302030    {
    20312031      // produce a valid combination, if possible.
    2032       const Bool bUsingGeneralRExtTools  = m_useResidualRotation                    ||
    2033                                            m_useSingleSignificanceMapContext        ||
    2034                                            m_useResidualDPCM[RDPCM_SIGNAL_IMPLICIT] ||
    2035                                            m_useResidualDPCM[RDPCM_SIGNAL_EXPLICIT] ||
    2036                                            !m_enableIntraReferenceSmoothing         ||
    2037                                            m_useGolombRiceParameterAdaptation       ||
    2038                                            m_transformSkipLog2MaxSize!=2;
    2039       const Bool bUsingChromaQPAdjustment= m_maxCUChromaQpAdjustmentDepth >= 0;
    2040       const Bool bUsingExtendedPrecision = m_useExtendedPrecision;
     2032      const Bool bUsingGeneralRExtTools  = m_transformSkipRotationEnabledFlag        ||
     2033                                           m_transformSkipContextEnabledFlag         ||
     2034                                           m_rdpcmEnabledFlag[RDPCM_SIGNAL_IMPLICIT] ||
     2035                                           m_rdpcmEnabledFlag[RDPCM_SIGNAL_EXPLICIT] ||
     2036                                           !m_enableIntraReferenceSmoothing          ||
     2037                                           m_persistentRiceAdaptationEnabledFlag     ||
     2038                                           m_log2MaxTransformSkipBlockSize!=2;
     2039      const Bool bUsingChromaQPAdjustment= m_diffCuChromaQpOffsetDepth >= 0;
     2040      const Bool bUsingExtendedPrecision = m_extendedPrecisionProcessingFlag;
    20412041      m_chromaFormatConstraint = NUM_CHROMA_FORMAT;
    20422042      automaticallySelectRExtProfile(bUsingGeneralRExtTools,
     
    26172617      if (m_internalBitDepth[ch]>10)
    26182618      {
    2619         m_saoOffsetBitShift[ch]=UInt(Clip3<Int>(0, m_internalBitDepth[ch]-10, Int(m_internalBitDepth[ch]-10 + 0.165*m_iQP - 3.22 + 0.5) ) );
     2619        m_log2SaoOffsetScale[ch]=UInt(Clip3<Int>(0, m_internalBitDepth[ch]-10, Int(m_internalBitDepth[ch]-10 + 0.165*m_iQP - 3.22 + 0.5) ) );
    26202620      }
    26212621      else
    26222622      {
    2623         m_saoOffsetBitShift[ch]=0;
     2623        m_log2SaoOffsetScale[ch]=0;
    26242624      }
    26252625    }
    26262626    else
    26272627    {
    2628       m_saoOffsetBitShift[ch]=UInt(saoOffsetBitShift[ch]);
     2628      m_log2SaoOffsetScale[ch]=UInt(saoOffsetBitShift[ch]);
    26292629    }
    26302630  }
     
    29082908Void TAppEncCfg::xCheckParameter(UInt layerIdx)
    29092909{
    2910   Bool m_useExtendedPrecision                = m_acLayerCfg[layerIdx].m_useExtendedPrecision;
    2911   Bool m_useHighPrecisionPredictionWeighting = m_acLayerCfg[layerIdx].m_useHighPrecisionPredictionWeighting;
     2910  Bool m_extendedPrecisionProcessingFlag     = m_acLayerCfg[layerIdx].m_extendedPrecisionProcessingFlag;
     2911  Bool m_highPrecisionOffsetsEnabledFlag     = m_acLayerCfg[layerIdx].m_highPrecisionOffsetsEnabledFlag;
    29122912  ChromaFormat m_chromaFormatIDC             = m_acLayerCfg[layerIdx].m_chromaFormatIDC;
    29132913  ChromaFormat m_chromaFormatConstraint      = m_acLayerCfg[layerIdx].m_chromaFormatConstraint;
     
    29182918  Int m_MSBExtendedBitDepth[] = {m_acLayerCfg[layerIdx].m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA], m_acLayerCfg[layerIdx].m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA]}; 
    29192919
    2920   m_saoOffsetBitShift[CHANNEL_TYPE_LUMA]   = m_acLayerCfg[layerIdx].m_saoOffsetBitShift[CHANNEL_TYPE_LUMA];
    2921   m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA] = m_acLayerCfg[layerIdx].m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA];
     2920  m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA]   = m_acLayerCfg[layerIdx].m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA];
     2921  m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] = m_acLayerCfg[layerIdx].m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA];
    29222922
    29232923  Int layerPTLIdx = m_acLayerCfg[layerIdx].m_layerPTLIdx;
     
    29932993  {
    29942994    xConfirmPara(m_lowerBitRateConstraintFlag==false && m_intraConstraintFlag==false, "The lowerBitRateConstraint flag cannot be false when intraConstraintFlag is false");
    2995     xConfirmPara(m_alignCABACBeforeBypass && m_profile!=Profile::HIGHTHROUGHPUTREXT, "AlignCABACBeforeBypass must not be enabled unless the high throughput profile is being used.");
     2995    xConfirmPara(m_cabacBypassAlignmentEnabledFlag && m_profile!=Profile::HIGHTHROUGHPUTREXT, "AlignCABACBeforeBypass must not be enabled unless the high throughput profile is being used.");
    29962996    if (m_profile == Profile::MAINREXT)
    29972997    {
     
    30013001      const Bool bValidProfile = (bitDepthIdx > 3 || chromaFormatIdx>3) ? false : (validRExtProfileNames[intraIdx][bitDepthIdx][chromaFormatIdx] != NONE);
    30023002      xConfirmPara(!bValidProfile, "Invalid intra constraint flag, bit depth constraint flag and chroma format constraint flag combination for a RExt profile");
    3003       const Bool bUsingGeneralRExtTools  = m_useResidualRotation                    ||
    3004                                            m_useSingleSignificanceMapContext        ||
    3005                                            m_useResidualDPCM[RDPCM_SIGNAL_IMPLICIT] ||
    3006                                            m_useResidualDPCM[RDPCM_SIGNAL_EXPLICIT] ||
    3007                                            !m_enableIntraReferenceSmoothing         ||
    3008                                            m_useGolombRiceParameterAdaptation       ||
    3009                                            m_transformSkipLog2MaxSize!=2;
    3010       const Bool bUsingChromaQPTool      = m_maxCUChromaQpAdjustmentDepth >= 0;
    3011       const Bool bUsingExtendedPrecision = m_useExtendedPrecision;
     3003      const Bool bUsingGeneralRExtTools  = m_transformSkipRotationEnabledFlag        ||
     3004                                           m_transformSkipContextEnabledFlag         ||
     3005                                           m_rdpcmEnabledFlag[RDPCM_SIGNAL_IMPLICIT] ||
     3006                                           m_rdpcmEnabledFlag[RDPCM_SIGNAL_EXPLICIT] ||
     3007                                           !m_enableIntraReferenceSmoothing          ||
     3008                                           m_persistentRiceAdaptationEnabledFlag     ||
     3009                                           m_log2MaxTransformSkipBlockSize!=2;
     3010      const Bool bUsingChromaQPTool      = m_diffCuChromaQpOffsetDepth >= 0;
     3011      const Bool bUsingExtendedPrecision = m_extendedPrecisionProcessingFlag;
    30123012
    30133013      xConfirmPara((m_chromaFormatConstraint==CHROMA_420 || m_chromaFormatConstraint==CHROMA_400) && bUsingChromaQPTool, "CU Chroma QP adjustment cannot be used for 4:0:0 or 4:2:0 RExt profiles");
     
    30423042    xConfirmPara(m_lowerBitRateConstraintFlag==false, "LowerBitrateConstraintFlag must be true for non main-RExt profiles.");
    30433043
    3044     xConfirmPara(m_useCrossComponentPrediction==true, "CrossComponentPrediction must not be used for non main-RExt profiles.");
    3045     xConfirmPara(m_transformSkipLog2MaxSize!=2, "Transform Skip Log2 Max Size must be 2 for V1 profiles.");
    3046     xConfirmPara(m_useResidualRotation==true, "UseResidualRotation must not be enabled for non main-RExt profiles.");
    3047     xConfirmPara(m_useSingleSignificanceMapContext==true, "UseSingleSignificanceMapContext must not be enabled for non main-RExt profiles.");
    3048     xConfirmPara(m_useResidualDPCM[RDPCM_SIGNAL_IMPLICIT]==true, "ImplicitResidualDPCM must not be enabled for non main-RExt profiles.");
    3049     xConfirmPara(m_useResidualDPCM[RDPCM_SIGNAL_EXPLICIT]==true, "ExplicitResidualDPCM must not be enabled for non main-RExt profiles.");
    3050     xConfirmPara(m_useGolombRiceParameterAdaptation==true, "GolombRiceParameterAdaption must not be enabled for non main-RExt profiles.");
    3051     xConfirmPara(m_useExtendedPrecision==true, "UseExtendedPrecision must not be enabled for non main-RExt profiles.");
    3052     xConfirmPara(m_useHighPrecisionPredictionWeighting==true, "UseHighPrecisionPredictionWeighting must not be enabled for non main-RExt profiles.");
     3044    xConfirmPara(m_crossComponentPredictionEnabledFlag==true, "CrossComponentPrediction must not be used for non main-RExt profiles.");
     3045    xConfirmPara(m_log2MaxTransformSkipBlockSize!=2, "Transform Skip Log2 Max Size must be 2 for V1 profiles.");
     3046    xConfirmPara(m_transformSkipRotationEnabledFlag==true, "UseResidualRotation must not be enabled for non main-RExt profiles.");
     3047    xConfirmPara(m_transformSkipContextEnabledFlag==true, "UseSingleSignificanceMapContext must not be enabled for non main-RExt profiles.");
     3048    xConfirmPara(m_rdpcmEnabledFlag[RDPCM_SIGNAL_IMPLICIT]==true, "ImplicitResidualDPCM must not be enabled for non main-RExt profiles.");
     3049    xConfirmPara(m_rdpcmEnabledFlag[RDPCM_SIGNAL_EXPLICIT]==true, "ExplicitResidualDPCM must not be enabled for non main-RExt profiles.");
     3050    xConfirmPara(m_persistentRiceAdaptationEnabledFlag==true, "GolombRiceParameterAdaption must not be enabled for non main-RExt profiles.");
     3051    xConfirmPara(m_extendedPrecisionProcessingFlag==true, "UseExtendedPrecision must not be enabled for non main-RExt profiles.");
     3052    xConfirmPara(m_highPrecisionOffsetsEnabledFlag==true, "UseHighPrecisionPredictionWeighting must not be enabled for non main-RExt profiles.");
    30533053    xConfirmPara(m_enableIntraReferenceSmoothing==false, "EnableIntraReferenceSmoothing must be enabled for non main-RExt profiles.");
    3054     xConfirmPara(m_alignCABACBeforeBypass, "AlignCABACBeforeBypass cannot be enabled for non main-RExt profiles.");
     3054    xConfirmPara(m_cabacBypassAlignmentEnabledFlag, "AlignCABACBeforeBypass cannot be enabled for non main-RExt profiles.");
    30553055  }
    30563056
     
    30603060
    30613061#if !RExt__HIGH_BIT_DEPTH_SUPPORT
    3062   if (m_useExtendedPrecision)
     3062  if (m_extendedPrecisionProcessingFlag)
    30633063  {
    30643064    for (UInt channelType = 0; channelType < MAX_NUM_CHANNEL_TYPE; channelType++)
     
    30793079  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)" );
    30803080
    3081   xConfirmPara( m_saoOffsetBitShift[CHANNEL_TYPE_LUMA]   > (m_internalBitDepth[CHANNEL_TYPE_LUMA  ]<10?0:(m_internalBitDepth[CHANNEL_TYPE_LUMA  ]-10)), "SaoLumaOffsetBitShift must be in the range of 0 to InternalBitDepth-10, inclusive");
    3082   xConfirmPara( m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA] > (m_internalBitDepth[CHANNEL_TYPE_CHROMA]<10?0:(m_internalBitDepth[CHANNEL_TYPE_CHROMA]-10)), "SaoChromaOffsetBitShift must be in the range of 0 to InternalBitDepthC-10, inclusive");
     3081  xConfirmPara( m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA]   > (m_internalBitDepth[CHANNEL_TYPE_LUMA  ]<10?0:(m_internalBitDepth[CHANNEL_TYPE_LUMA  ]-10)), "SaoLumaOffsetBitShift must be in the range of 0 to InternalBitDepth-10, inclusive");
     3082  xConfirmPara( m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] > (m_internalBitDepth[CHANNEL_TYPE_CHROMA]<10?0:(m_internalBitDepth[CHANNEL_TYPE_CHROMA]-10)), "SaoChromaOffsetBitShift must be in the range of 0 to InternalBitDepthC-10, inclusive");
    30833083
    30843084  xConfirmPara( m_chromaFormatIDC >= NUM_CHROMA_FORMAT,                                     "ChromaFormatIDC must be either 400, 420, 422 or 444" );
     
    31323132  }
    31333133
    3134   if(m_useCrossComponentPrediction && (m_chromaFormatIDC != CHROMA_444))
     3134  if(m_crossComponentPredictionEnabledFlag && (m_chromaFormatIDC != CHROMA_444))
    31353135  {
    31363136    fprintf(stderr, "****************************************************************************\n");
     
    31383138    fprintf(stderr, "****************************************************************************\n");
    31393139
    3140     m_useCrossComponentPrediction = false;
     3140    m_crossComponentPredictionEnabledFlag = false;
    31413141  }
    31423142
     
    31513151  }
    31523152
    3153   xConfirmPara (m_transformSkipLog2MaxSize < 2, "Transform Skip Log2 Max Size must be at least 2 (4x4)");
    3154 
    3155   if (m_transformSkipLog2MaxSize!=2 && m_useTransformSkipFast)
     3153  xConfirmPara (m_log2MaxTransformSkipBlockSize < 2, "Transform Skip Log2 Max Size must be at least 2 (4x4)");
     3154
     3155  if (m_log2MaxTransformSkipBlockSize!=2 && m_useTransformSkipFast)
    31563156  {
    31573157    fprintf(stderr, "***************************************************************************\n");
     
    43144314  printf("Bitstream      File               : %s\n", m_pBitstreamFile      );
    43154315#else //SVC_EXTENSION
    4316   printf("Input          File               : %s\n", m_pchInputFile          );
    4317   printf("Bitstream      File               : %s\n", m_pchBitstreamFile      );
    4318   printf("Reconstruction File               : %s\n", m_pchReconFile          );
    4319   printf("Real     Format                   : %dx%d %dHz\n", m_iSourceWidth - m_confWinLeft - m_confWinRight, m_iSourceHeight - m_confWinTop - m_confWinBottom, m_iFrameRate );
    4320   printf("Internal Format                   : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate );
     4316  printf("\n");
     4317  printf("Input          File                    : %s\n", m_pchInputFile          );
     4318  printf("Bitstream      File                    : %s\n", m_pchBitstreamFile      );
     4319  printf("Reconstruction File                    : %s\n", m_pchReconFile          );
     4320  printf("Real     Format                        : %dx%d %dHz\n", m_iSourceWidth - m_confWinLeft - m_confWinRight, m_iSourceHeight - m_confWinTop - m_confWinBottom, m_iFrameRate );
     4321  printf("Internal Format                        : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate );
    43214322#endif //SVC_EXTENSION
    43224323
    4323   printf("Sequence PSNR output              : %s\n", (m_printMSEBasedSequencePSNR ? "Linear average, MSE-based" : "Linear average only") );
    4324   printf("Sequence MSE output               : %s\n", (m_printSequenceMSE ? "Enabled" : "Disabled") );
    4325   printf("Frame MSE output                  : %s\n", (m_printFrameMSE    ? "Enabled" : "Disabled") );
    4326   printf("Cabac-zero-word-padding           : %s\n", (m_cabacZeroWordPaddingEnabled? "Enabled" : "Disabled") );
     4324  printf("Sequence PSNR output                   : %s\n", (m_printMSEBasedSequencePSNR ? "Linear average, MSE-based" : "Linear average only") );
     4325  printf("Sequence MSE output                    : %s\n", (m_printSequenceMSE ? "Enabled" : "Disabled") );
     4326  printf("Frame MSE output                       : %s\n", (m_printFrameMSE    ? "Enabled" : "Disabled") );
     4327  printf("Cabac-zero-word-padding                : %s\n", (m_cabacZeroWordPaddingEnabled? "Enabled" : "Disabled") );
    43274328  if (m_isField)
    43284329  {
    4329     printf("Frame/Field                       : Field based coding\n");
    4330     printf("Field index                       : %u - %d (%d fields)\n", m_FrameSkip, m_FrameSkip+m_framesToBeEncoded-1, m_framesToBeEncoded );
    4331     printf("Field Order                       : %s field first\n", m_isTopFieldFirst?"Top":"Bottom");
     4330    printf("Frame/Field                            : Field based coding\n");
     4331    printf("Field index                            : %u - %d (%d fields)\n", m_FrameSkip, m_FrameSkip+m_framesToBeEncoded-1, m_framesToBeEncoded );
     4332    printf("Field Order                            : %s field first\n", m_isTopFieldFirst?"Top":"Bottom");
    43324333
    43334334  }
    43344335  else
    43354336  {
    4336     printf("Frame/Field                       : Frame based coding\n");
    4337     printf("Frame index                       : %u - %d (%d frames)\n", m_FrameSkip, m_FrameSkip+m_framesToBeEncoded-1, m_framesToBeEncoded );
     4337    printf("Frame/Field                            : Frame based coding\n");
     4338    printf("Frame index                            : %u - %d (%d frames)\n", m_FrameSkip, m_FrameSkip+m_framesToBeEncoded-1, m_framesToBeEncoded );
    43384339  }
    43394340#if !SVC_EXTENSION
     
    43534354      rextSubProfile="main_444_16 [NON STANDARD]";
    43544355    }
    4355     printf("Profile                           : %s (%s)\n", profileToString(m_profile), (rextSubProfile.empty())?"INVALID REXT PROFILE":rextSubProfile.c_str() );
     4356    printf("Profile                                : %s (%s)\n", profileToString(m_profile), (rextSubProfile.empty())?"INVALID REXT PROFILE":rextSubProfile.c_str() );
    43564357  }
    43574358  else
    43584359  {
    4359     printf("Profile                           : %s\n", profileToString(m_profile) );
    4360   }
    4361   printf("CU size / depth / total-depth     : %d / %d / %d\n", m_uiMaxCUWidth, m_uiMaxCUDepth, m_uiMaxTotalCUDepth );
    4362   printf("RQT trans. size (min / max)       : %d / %d\n", 1 << m_uiQuadtreeTULog2MinSize, 1 << m_uiQuadtreeTULog2MaxSize );
    4363   printf("Max RQT depth inter               : %d\n", m_uiQuadtreeTUMaxDepthInter);
    4364   printf("Max RQT depth intra               : %d\n", m_uiQuadtreeTUMaxDepthIntra);
    4365 #endif
    4366   printf("Min PCM size                      : %d\n", 1 << m_uiPCMLog2MinSize);
    4367   printf("Motion search range               : %d\n", m_iSearchRange );
     4360    printf("Profile                                : %s\n", profileToString(m_profile) );
     4361  }
     4362  printf("CU size / depth / total-depth          : %d / %d / %d\n", m_uiMaxCUWidth, m_uiMaxCUDepth, m_uiMaxTotalCUDepth );
     4363  printf("RQT trans. size (min / max)            : %d / %d\n", 1 << m_uiQuadtreeTULog2MinSize, 1 << m_uiQuadtreeTULog2MaxSize );
     4364  printf("Max RQT depth inter                    : %d\n", m_uiQuadtreeTUMaxDepthInter);
     4365  printf("Max RQT depth intra                    : %d\n", m_uiQuadtreeTUMaxDepthIntra);
     4366#endif
     4367  printf("Min PCM size                           : %d\n", 1 << m_uiPCMLog2MinSize);
     4368  printf("Motion search range                    : %d\n", m_iSearchRange );
    43684369#if !SVC_EXTENSION
    4369   printf("Intra period                      : %d\n", m_iIntraPeriod );
    4370 #endif
    4371   printf("Decoding refresh type             : %d\n", m_iDecodingRefreshType );
     4370  printf("Intra period                           : %d\n", m_iIntraPeriod );
     4371#endif
     4372  printf("Decoding refresh type                  : %d\n", m_iDecodingRefreshType );
    43724373#if !SVC_EXTENSION
    4373   printf("QP                                : %5.2f\n", m_fQP );
    4374   printf("Max dQP signaling depth           : %d\n", m_iMaxCuDQPDepth);
    4375 #endif
    4376 
    4377   printf("Cb QP Offset                      : %d\n", m_cbQpOffset   );
    4378   printf("Cr QP Offset                      : %d\n", m_crQpOffset);
    4379   printf("Max CU chroma QP adjustment depth : %d\n", m_maxCUChromaQpAdjustmentDepth);
    4380   printf("QP adaptation                     : %d (range=%d)\n", m_bUseAdaptiveQP, (m_bUseAdaptiveQP ? m_iQPAdaptationRange : 0) );
    4381   printf("GOP size                          : %d\n", m_iGOPSize );
     4374  printf("QP                                     : %5.2f\n", m_fQP );
     4375  printf("Max dQP signaling depth                : %d\n", m_iMaxCuDQPDepth);
     4376#endif
     4377
     4378  printf("Cb QP Offset                           : %d\n", m_cbQpOffset   );
     4379  printf("Cr QP Offset                           : %d\n", m_crQpOffset);
     4380  printf("QP adaptation                          : %d (range=%d)\n", m_bUseAdaptiveQP, (m_bUseAdaptiveQP ? m_iQPAdaptationRange : 0) );
     4381  printf("GOP size                               : %d\n", m_iGOPSize );
    43824382#if !SVC_EXTENSION
    4383   printf("Input bit depth                   : (Y:%d, C:%d)\n", m_inputBitDepth[CHANNEL_TYPE_LUMA], m_inputBitDepth[CHANNEL_TYPE_CHROMA] );
    4384   printf("MSB-extended bit depth            : (Y:%d, C:%d)\n", m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA], m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] );
    4385   printf("Internal bit depth                : (Y:%d, C:%d)\n", m_internalBitDepth[CHANNEL_TYPE_LUMA], m_internalBitDepth[CHANNEL_TYPE_CHROMA] );
    4386   printf("PCM sample bit depth              : (Y:%d, C:%d)\n", m_bPCMInputBitDepthFlag ? m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA] : m_internalBitDepth[CHANNEL_TYPE_LUMA],
    4387                                                                m_bPCMInputBitDepthFlag ? m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] : m_internalBitDepth[CHANNEL_TYPE_CHROMA] );
    4388   printf("Extended precision processing     : %s\n", (m_useExtendedPrecision                   ? "Enabled" : "Disabled") );
    4389 #endif
    4390   printf("Intra reference smoothing         : %s\n", (m_enableIntraReferenceSmoothing          ? "Enabled" : "Disabled") );
    4391   printf("Implicit residual DPCM            : %s\n", (m_useResidualDPCM[RDPCM_SIGNAL_IMPLICIT] ? "Enabled" : "Disabled") );
    4392   printf("Explicit residual DPCM            : %s\n", (m_useResidualDPCM[RDPCM_SIGNAL_EXPLICIT] ? "Enabled" : "Disabled") );
    4393   printf("Residual rotation                 : %s\n", (m_useResidualRotation                    ? "Enabled" : "Disabled") );
    4394   printf("Single significance map context   : %s\n", (m_useSingleSignificanceMapContext        ? "Enabled" : "Disabled") );
    4395   printf("Cross-component prediction        : %s\n", (m_useCrossComponentPrediction            ? (m_reconBasedCrossCPredictionEstimate ? "Enabled (reconstructed-residual-based estimate)" : "Enabled (encoder-side-residual-based estimate)") : "Disabled") );
     4383  printf("Input bit depth                        : (Y:%d, C:%d)\n", m_inputBitDepth[CHANNEL_TYPE_LUMA], m_inputBitDepth[CHANNEL_TYPE_CHROMA] );
     4384  printf("MSB-extended bit depth                 : (Y:%d, C:%d)\n", m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA], m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] );
     4385  printf("Internal bit depth                     : (Y:%d, C:%d)\n", m_internalBitDepth[CHANNEL_TYPE_LUMA], m_internalBitDepth[CHANNEL_TYPE_CHROMA] );
     4386  printf("PCM sample bit depth                   : (Y:%d, C:%d)\n", m_bPCMInputBitDepthFlag ? m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA] : m_internalBitDepth[CHANNEL_TYPE_LUMA],
     4387                                                                    m_bPCMInputBitDepthFlag ? m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] : m_internalBitDepth[CHANNEL_TYPE_CHROMA] );
     4388#endif
     4389  printf("Intra reference smoothing              : %s\n", (m_enableIntraReferenceSmoothing           ? "Enabled" : "Disabled") );
     4390  printf("diff_cu_chroma_qp_offset_depth         : %d\n", m_diffCuChromaQpOffsetDepth);
    43964391#if !SVC_EXTENSION
    4397   printf("High-precision prediction weight  : %s\n", (m_useHighPrecisionPredictionWeighting    ? "Enabled" : "Disabled") );
    4398 #endif
    4399   printf("Golomb-Rice parameter adaptation  : %s\n", (m_useGolombRiceParameterAdaptation       ? "Enabled" : "Disabled") );
    4400   printf("CABAC bypass bit alignment        : %s\n", (m_alignCABACBeforeBypass                 ? "Enabled" : "Disabled") );
     4392  printf("extended_precision_processing_flag     : %s\n", (m_extendedPrecisionProcessingFlag         ? "Enabled" : "Disabled") );
     4393#endif
     4394  printf("implicit_rdpcm_enabled_flag            : %s\n", (m_rdpcmEnabledFlag[RDPCM_SIGNAL_IMPLICIT] ? "Enabled" : "Disabled") );
     4395  printf("explicit_rdpcm_enabled_flag            : %s\n", (m_rdpcmEnabledFlag[RDPCM_SIGNAL_EXPLICIT] ? "Enabled" : "Disabled") );
     4396  printf("transform_skip_rotation_enabled_flag   : %s\n", (m_transformSkipRotationEnabledFlag        ? "Enabled" : "Disabled") );
     4397  printf("transform_skip_context_enabled_flag    : %s\n", (m_transformSkipContextEnabledFlag         ? "Enabled" : "Disabled") );
     4398  printf("cross_component_prediction_enabled_flag: %s\n", (m_crossComponentPredictionEnabledFlag     ? (m_reconBasedCrossCPredictionEstimate ? "Enabled (reconstructed-residual-based estimate)" : "Enabled (encoder-side-residual-based estimate)") : "Disabled") );
     4399#if !SVC_EXTENSION
     4400  printf("high_precision_offsets_enabled_flag    : %s\n", (m_highPrecisionOffsetsEnabledFlag         ? "Enabled" : "Disabled") );
     4401#endif
     4402  printf("persistent_rice_adaptation_enabled_flag: %s\n", (m_persistentRiceAdaptationEnabledFlag     ? "Enabled" : "Disabled") );
     4403  printf("cabac_bypass_alignment_enabled_flag    : %s\n", (m_cabacBypassAlignmentEnabledFlag         ? "Enabled" : "Disabled") );
    44014404  if (m_bUseSAO)
    44024405  {
    4403     printf("Sao Luma Offset bit shifts        : %d\n", m_saoOffsetBitShift[CHANNEL_TYPE_LUMA]);
    4404     printf("Sao Chroma Offset bit shifts      : %d\n", m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA]);
     4406    printf("log2_sao_offset_scale_luma             : %d\n", m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA]);
     4407    printf("log2_sao_offset_scale_chroma           : %d\n", m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA]);
    44054408  }
    44064409
    44074410  switch (m_costMode)
    44084411  {
    4409     case COST_STANDARD_LOSSY:               printf("Cost function:                    : Lossy coding (default)\n"); break;
    4410     case COST_SEQUENCE_LEVEL_LOSSLESS:      printf("Cost function:                    : Sequence_level_lossless coding\n"); break;
    4411     case COST_LOSSLESS_CODING:              printf("Cost function:                    : Lossless coding with fixed QP of %d\n", LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP); break;
    4412     case COST_MIXED_LOSSLESS_LOSSY_CODING:  printf("Cost function:                    : Mixed_lossless_lossy coding with QP'=%d for lossless evaluation\n", LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP_PRIME); break;
    4413     default:                                printf("Cost function:                    : Unknown\n"); break;
     4412    case COST_STANDARD_LOSSY:               printf("Cost function:                         : Lossy coding (default)\n"); break;
     4413    case COST_SEQUENCE_LEVEL_LOSSLESS:      printf("Cost function:                         : Sequence_level_lossless coding\n"); break;
     4414    case COST_LOSSLESS_CODING:              printf("Cost function:                         : Lossless coding with fixed QP of %d\n", LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP); break;
     4415    case COST_MIXED_LOSSLESS_LOSSY_CODING:  printf("Cost function:                         : Mixed_lossless_lossy coding with QP'=%d for lossless evaluation\n", LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP_PRIME); break;
     4416    default:                                printf("Cost function:                         : Unknown\n"); break;
    44144417  }
    44154418
    44164419#if !RC_SHVC_HARMONIZATION
    4417   printf("RateControl                       : %d\n", m_RCEnableRateControl );
     4420  printf("RateControl                            : %d\n", m_RCEnableRateControl );
    44184421
    44194422  if(m_RCEnableRateControl)
    44204423  {
    4421     printf("TargetBitrate                     : %d\n", m_RCTargetBitrate );
    4422     printf("KeepHierarchicalBit               : %d\n", m_RCKeepHierarchicalBit );
    4423     printf("LCULevelRC                        : %d\n", m_RCLCULevelRC );
    4424     printf("UseLCUSeparateModel               : %d\n", m_RCUseLCUSeparateModel );
    4425     printf("InitialQP                         : %d\n", m_RCInitialQP );
    4426     printf("ForceIntraQP                      : %d\n", m_RCForceIntraQP );
    4427   }
    4428 #endif
    4429 
    4430   printf("Max Num Merge Candidates          : %d\n", m_maxNumMergeCand);
     4424    printf("TargetBitrate                          : %d\n", m_RCTargetBitrate );
     4425    printf("KeepHierarchicalBit                    : %d\n", m_RCKeepHierarchicalBit );
     4426    printf("LCULevelRC                             : %d\n", m_RCLCULevelRC );
     4427    printf("UseLCUSeparateModel                    : %d\n", m_RCUseLCUSeparateModel );
     4428    printf("InitialQP                              : %d\n", m_RCInitialQP );
     4429    printf("ForceIntraQP                           : %d\n", m_RCForceIntraQP );
     4430  }
     4431#endif
     4432
     4433  printf("Max Num Merge Candidates               : %d\n", m_maxNumMergeCand);
    44314434  printf("\n");
    44324435
     
    44524455  printf("TransformSkip:%d ",     m_useTransformSkip              );
    44534456  printf("TransformSkipFast:%d ", m_useTransformSkipFast       );
    4454   printf("TransformSkipLog2MaxSize:%d ", m_transformSkipLog2MaxSize);
     4457  printf("TransformSkipLog2MaxSize:%d ", m_log2MaxTransformSkipBlockSize);
    44554458  printf("Slice: M=%d ", m_sliceMode);
    44564459  if (m_sliceMode!=NO_SLICES)
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h

    r1311 r1316  
    168168
    169169  GOPEntry  m_GOPList[MAX_GOP];                               ///< the coding structure entries from the config file
    170 
    171170  Int       m_numReorderPics[MAX_TLAYER];                     ///< total number of reorder pictures
    172171  Int       m_maxDecPicBuffering[MAX_TLAYER];                 ///< total number of pictures in the decoded picture buffer
    173   Bool      m_useCrossComponentPrediction;                    ///< flag enabling the use of cross-component prediction
     172  Bool      m_crossComponentPredictionEnabledFlag;            ///< flag enabling the use of cross-component prediction
    174173  Bool      m_reconBasedCrossCPredictionEstimate;             ///< causes the alpha calculation in encoder search to be based on the decoded residual rather than the pre-transform encoder-side residual
    175   UInt      m_saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE];        ///< number of bits for the upward bit shift operation on the decoded SAO offsets
     174  UInt      m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE];       ///< number of bits for the upward bit shift operation on the decoded SAO offsets
    176175  Bool      m_useTransformSkip;                               ///< flag for enabling intra transform skipping
    177176  Bool      m_useTransformSkipFast;                           ///< flag for enabling fast intra transform skipping
    178   UInt      m_transformSkipLog2MaxSize;                       ///< transform-skip maximum size (minimum of 2)
    179   Bool      m_useResidualRotation;                            ///< control flag for transform-skip/transquant-bypass residual rotation
    180   Bool      m_useSingleSignificanceMapContext;                ///< control flag for transform-skip/transquant-bypass single significance map context
    181   Bool      m_useResidualDPCM[NUMBER_OF_RDPCM_SIGNALLING_MODES];///< control flags for residual DPCM
     177  UInt      m_log2MaxTransformSkipBlockSize;                  ///< transform-skip maximum size (minimum of 2)
     178  Bool      m_transformSkipRotationEnabledFlag;               ///< control flag for transform-skip/transquant-bypass residual rotation
     179  Bool      m_transformSkipContextEnabledFlag;                ///< control flag for transform-skip/transquant-bypass single significance map context
     180  Bool      m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES];///< control flags for residual DPCM
    182181  Bool      m_enableAMP;
    183   Bool      m_useGolombRiceParameterAdaptation;               ///< control flag for Golomb-Rice parameter adaptation over each slice
    184   Bool      m_alignCABACBeforeBypass;
     182  Bool      m_persistentRiceAdaptationEnabledFlag;            ///< control flag for Golomb-Rice parameter adaptation over each slice
     183  Bool      m_cabacBypassAlignmentEnabledFlag;
    185184
    186185  // coding quality
     
    196195  Int       m_iMaxCuDQPDepth;                                 ///< Max. depth for a minimum CuDQPSize (0:default)
    197196#endif
    198   Int       m_maxCUChromaQpAdjustmentDepth;
     197  Int       m_diffCuChromaQpOffsetDepth;                      ///< If negative, then do not apply chroma qp offsets.
    199198
    200199  Int       m_cbQpOffset;                                     ///< Chroma Cb QP Offset (0:default)
     
    234233  Int       m_MSBExtendedBitDepth[MAX_NUM_CHANNEL_TYPE];      ///< bit-depth of input samples after MSB extension
    235234  Int       m_internalBitDepth[MAX_NUM_CHANNEL_TYPE];         ///< bit-depth codec operates at (input/output files will be converted)
    236   Bool      m_useExtendedPrecision;
    237   Bool      m_useHighPrecisionPredictionWeighting;
     235  Bool      m_extendedPrecisionProcessingFlag;
     236  Bool      m_highPrecisionOffsetsEnabledFlag;
    238237
    239238  //coding tools (chroma format)
     
    298297#if !SVC_EXTENSION
    299298  Int       m_iWaveFrontSynchro; //< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current.
     299  Int       m_iWaveFrontFlush; //< enable(1)/disable(0) the CABAC flush at the end of each line of LCUs.
    300300#endif
    301301
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncLayerCfg.h

    r1290 r1316  
    8888  Int       m_maxTidIlRefPicsPlus1;
    8989  Int       m_waveFrontSynchro;                   ///< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current.
     90  Int       m_waveFrontFlush;                     ///< enable(1)/disable(0) the CABAC flush at the end of each line of LCUs.
    9091
    9192  Int       m_iQP;                                            ///< QP value of key-picture (integer)
     
    115116  Int       m_MSBExtendedBitDepth[MAX_NUM_CHANNEL_TYPE];      ///< bit-depth of input samples after MSB extension
    116117  Int       m_internalBitDepth[MAX_NUM_CHANNEL_TYPE];         ///< bit-depth codec operates at (input/output files will be converted)
    117   UInt      m_saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE];
    118   Bool      m_useExtendedPrecision;
    119   Bool      m_useHighPrecisionPredictionWeighting;
     118  UInt      m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE];
     119  Bool      m_extendedPrecisionProcessingFlag;
     120  Bool      m_highPrecisionOffsetsEnabledFlag;
    120121
    121122  Int       m_repFormatIdx;
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r1311 r1316  
    414414    m_acTEncTop[layer].setMaxDeltaQP                                       ( m_iMaxDeltaQP  );
    415415    m_acTEncTop[layer].setMaxCuDQPDepth                                    ( m_acLayerCfg[layer].m_iMaxCuDQPDepth  );
    416     m_acTEncTop[layer].setMaxCUChromaQpAdjustmentDepth                     ( m_maxCUChromaQpAdjustmentDepth );
     416    m_acTEncTop[layer].setDiffCuChromaQpOffsetDepth                        ( m_diffCuChromaQpOffsetDepth );
    417417    m_acTEncTop[layer].setChromaCbQpOffset                                 ( m_cbQpOffset     );
    418418    m_acTEncTop[layer].setChromaCrQpOffset                                 ( m_crQpOffset  );
     
    426426    m_acTEncTop[layer].setUseAdaptiveQP                                    ( m_bUseAdaptiveQP  );
    427427    m_acTEncTop[layer].setQPAdaptationRange                                ( m_iQPAdaptationRange );
    428     m_acTEncTop[layer].setUseExtendedPrecision                             ( m_acLayerCfg[layer].m_useExtendedPrecision );
    429     m_acTEncTop[layer].setUseHighPrecisionPredictionWeighting              ( m_acLayerCfg[layer].m_useHighPrecisionPredictionWeighting );
     428    m_acTEncTop[layer].setExtendedPrecisionProcessingFlag                  ( m_acLayerCfg[layer].m_extendedPrecisionProcessingFlag );
     429    m_acTEncTop[layer].setHighPrecisionOffsetsEnabledFlag                  ( m_acLayerCfg[layer].m_highPrecisionOffsetsEnabledFlag );
    430430
    431431    //====== Tool list ========   
     
    455455    m_acTEncTop[layer].setUseCbfFastMode                                   ( m_bUseCbfFastMode  );
    456456    m_acTEncTop[layer].setUseEarlySkipDetection                            ( m_useEarlySkipDetection );
    457     m_acTEncTop[layer].setUseCrossComponentPrediction                      ( m_useCrossComponentPrediction );
     457    m_acTEncTop[layer].setCrossComponentPredictionEnabledFlag              ( m_crossComponentPredictionEnabledFlag );
    458458    m_acTEncTop[layer].setUseReconBasedCrossCPredictionEstimate            ( m_reconBasedCrossCPredictionEstimate );
    459     m_acTEncTop[layer].setSaoOffsetBitShift                                ( CHANNEL_TYPE_LUMA  , m_saoOffsetBitShift[CHANNEL_TYPE_LUMA]   );
    460     m_acTEncTop[layer].setSaoOffsetBitShift                                ( CHANNEL_TYPE_CHROMA, m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA] );
     459    m_acTEncTop[layer].setLog2SaoOffsetScale                               ( CHANNEL_TYPE_LUMA  , m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA]   );
     460    m_acTEncTop[layer].setLog2SaoOffsetScale                               ( CHANNEL_TYPE_CHROMA, m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] );
    461461    m_acTEncTop[layer].setUseTransformSkip                                 ( m_useTransformSkip      );
    462462    m_acTEncTop[layer].setUseTransformSkipFast                             ( m_useTransformSkipFast  );
    463     m_acTEncTop[layer].setUseResidualRotation                              ( m_useResidualRotation   );
    464     m_acTEncTop[layer].setUseSingleSignificanceMapContext                  ( m_useSingleSignificanceMapContext   );
    465     m_acTEncTop[layer].setUseGolombRiceParameterAdaptation                 ( m_useGolombRiceParameterAdaptation );
    466     m_acTEncTop[layer].setAlignCABACBeforeBypass                           ( m_alignCABACBeforeBypass );
    467     m_acTEncTop[layer].setTransformSkipLog2MaxSize                         ( m_transformSkipLog2MaxSize  );
     463    m_acTEncTop[layer].setTransformSkipRotationEnabledFlag                 ( m_transformSkipRotationEnabledFlag   );
     464    m_acTEncTop[layer].setTransformSkipContextEnabledFlag                  ( m_transformSkipContextEnabledFlag   );
     465    m_acTEncTop[layer].setPersistentRiceAdaptationEnabledFlag              ( m_persistentRiceAdaptationEnabledFlag );
     466    m_acTEncTop[layer].setCabacBypassAlignmentEnabledFlag                  ( m_cabacBypassAlignmentEnabledFlag );
     467    m_acTEncTop[layer].setLog2MaxTransformSkipBlockSize                    ( m_log2MaxTransformSkipBlockSize  );
    468468    for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++)
    469469    {
    470       m_acTEncTop[layer].setUseResidualDPCM                                ( RDPCMSignallingMode(signallingModeIndex), m_useResidualDPCM[signallingModeIndex]);
     470      m_acTEncTop[layer].setRdpcmEnabledFlag                               ( RDPCMSignallingMode(signallingModeIndex), m_rdpcmEnabledFlag[signallingModeIndex]);
    471471    }
    472472    m_acTEncTop[layer].setUseConstrainedIntraPred                          ( m_bUseConstrainedIntraPred );
     
    521521    m_acTEncTop[layer].setPCMFilterDisableFlag                              ( m_bPCMFilterDisableFlag);
    522522
    523     m_acTEncTop[layer].setDisableIntraReferenceSmoothing                    (!m_enableIntraReferenceSmoothing );
     523    m_acTEncTop[layer].setIntraSmoothingDisabledFlag                        (!m_enableIntraReferenceSmoothing );
    524524    m_acTEncTop[layer].setDecodedPictureHashSEIEnabled                      ( m_decodedPictureHashSEIEnabled );
    525525    m_acTEncTop[layer].setRecoveryPointSEIEnabled                           ( m_recoveryPointSEIEnabled );
     
    851851  m_cTEncTop.setMaxDeltaQP                                        ( m_iMaxDeltaQP  );
    852852  m_cTEncTop.setMaxCuDQPDepth                                     ( m_iMaxCuDQPDepth  );
    853   m_cTEncTop.setMaxCUChromaQpAdjustmentDepth                      ( m_maxCUChromaQpAdjustmentDepth );
     853  m_cTEncTop.setDiffCuChromaQpOffsetDepth                         ( m_diffCuChromaQpOffsetDepth );
    854854  m_cTEncTop.setChromaCbQpOffset                                  ( m_cbQpOffset     );
    855855  m_cTEncTop.setChromaCrQpOffset                                  ( m_crQpOffset  );
     
    863863  m_cTEncTop.setUseAdaptiveQP                                     ( m_bUseAdaptiveQP  );
    864864  m_cTEncTop.setQPAdaptationRange                                 ( m_iQPAdaptationRange );
    865   m_cTEncTop.setUseExtendedPrecision                              ( m_useExtendedPrecision );
    866   m_cTEncTop.setUseHighPrecisionPredictionWeighting               ( m_useHighPrecisionPredictionWeighting );
     865  m_cTEncTop.setExtendedPrecisionProcessingFlag                   ( m_extendedPrecisionProcessingFlag );
     866  m_cTEncTop.setHighPrecisionOffsetsEnabledFlag                   ( m_highPrecisionOffsetsEnabledFlag );
    867867  //====== Tool list ========
    868868  m_cTEncTop.setDeltaQpRD                                         ( m_uiDeltaQpRD  );
     
    892892  m_cTEncTop.setUseFastIntraScalable                              ( m_useFastIntraScalable );
    893893#endif
    894   m_cTEncTop.setUseCrossComponentPrediction                       ( m_useCrossComponentPrediction );
     894  m_cTEncTop.setCrossComponentPredictionEnabledFlag               ( m_crossComponentPredictionEnabledFlag );
    895895  m_cTEncTop.setUseReconBasedCrossCPredictionEstimate             ( m_reconBasedCrossCPredictionEstimate );
    896   m_cTEncTop.setSaoOffsetBitShift                                 ( CHANNEL_TYPE_LUMA  , m_saoOffsetBitShift[CHANNEL_TYPE_LUMA]   );
    897   m_cTEncTop.setSaoOffsetBitShift                                 ( CHANNEL_TYPE_CHROMA, m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA] );
     896  m_cTEncTop.setLog2SaoOffsetScale                                ( CHANNEL_TYPE_LUMA  , m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA]   );
     897  m_cTEncTop.setLog2SaoOffsetScale                                ( CHANNEL_TYPE_CHROMA, m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] );
    898898  m_cTEncTop.setUseTransformSkip                                  ( m_useTransformSkip      );
    899899  m_cTEncTop.setUseTransformSkipFast                              ( m_useTransformSkipFast  );
    900   m_cTEncTop.setUseResidualRotation                               ( m_useResidualRotation  );
    901   m_cTEncTop.setUseSingleSignificanceMapContext                   ( m_useSingleSignificanceMapContext   );
    902   m_cTEncTop.setUseGolombRiceParameterAdaptation                  ( m_useGolombRiceParameterAdaptation );
    903   m_cTEncTop.setAlignCABACBeforeBypass                            ( m_alignCABACBeforeBypass );
    904   m_cTEncTop.setTransformSkipLog2MaxSize                          ( m_transformSkipLog2MaxSize  );
     900  m_cTEncTop.setTransformSkipRotationEnabledFlag                  ( m_transformSkipRotationEnabledFlag );
     901  m_cTEncTop.setTransformSkipContextEnabledFlag                   ( m_transformSkipContextEnabledFlag   );
     902  m_cTEncTop.setPersistentRiceAdaptationEnabledFlag               ( m_persistentRiceAdaptationEnabledFlag );
     903  m_cTEncTop.setCabacBypassAlignmentEnabledFlag                   ( m_cabacBypassAlignmentEnabledFlag );
     904  m_cTEncTop.setLog2MaxTransformSkipBlockSize                     ( m_log2MaxTransformSkipBlockSize  );
    905905  for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++)
    906906  {
    907     m_cTEncTop.setUseResidualDPCM                                 ( RDPCMSignallingMode(signallingModeIndex), m_useResidualDPCM[signallingModeIndex]);
     907    m_cTEncTop.setRdpcmEnabledFlag                                ( RDPCMSignallingMode(signallingModeIndex), m_rdpcmEnabledFlag[signallingModeIndex]);
    908908  }
    909909  m_cTEncTop.setUseConstrainedIntraPred                           ( m_bUseConstrainedIntraPred );
     
    948948  m_cTEncTop.setPCMFilterDisableFlag                              ( m_bPCMFilterDisableFlag);
    949949
    950   m_cTEncTop.setDisableIntraReferenceSmoothing                    (!m_enableIntraReferenceSmoothing );
     950  m_cTEncTop.setIntraSmoothingDisabledFlag                        (!m_enableIntraReferenceSmoothing );
    951951  m_cTEncTop.setDecodedPictureHashSEIEnabled                      ( m_decodedPictureHashSEIEnabled );
    952952  m_cTEncTop.setRecoveryPointSEIEnabled                           ( m_recoveryPointSEIEnabled );
Note: See TracChangeset for help on using the changeset viewer.