Changeset 1316 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon


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

port rev 4391

Location:
branches/SHM-dev/source/Lib/TLibCommon
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/TComChromaFormat.cpp

    r1259 r1316  
    132132  //set the significance map context selection parameters
    133133
    134   if (pcCU->getSlice()->getSPS()->getUseSingleSignificanceMapContext()
     134  if (pcCU->getSlice()->getSPS()->getSpsRangeExtension().getTransformSkipContextEnabledFlag()
    135135      && (pcCU->getCUTransquantBypass(uiAbsPartIdx) || (pcCU->getTransformSkip(uiAbsPartIdx, component) != 0)))
    136136  {
  • branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.h

    r1315 r1316  
    284284  Void          setExplicitRdpcmModePartRange ( UInt rdpcmMode, ComponentID compID, UInt uiAbsPartIdx, UInt uiCoveredPartIdxes );
    285285
    286   Bool          isRDPCMEnabled         ( UInt uiAbsPartIdx )  { return getSlice()->getSPS()->getUseResidualDPCM(isIntra(uiAbsPartIdx) ? RDPCM_SIGNAL_IMPLICIT : RDPCM_SIGNAL_EXPLICIT); }
     286  Bool          isRDPCMEnabled         ( UInt uiAbsPartIdx )  { return getSlice()->getSPS()->getSpsRangeExtension().getRdpcmEnabledFlag(isIntra(uiAbsPartIdx) ? RDPCM_SIGNAL_IMPLICIT : RDPCM_SIGNAL_EXPLICIT); }
    287287
    288288  Void          setCrossComponentPredictionAlphaPartRange    ( Char alphaValue, ComponentID compID, UInt uiAbsPartIdx, UInt uiCoveredPartIdxes );
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp

    r1295 r1316  
    18161816}
    18171817
     1818//! get AC and DC values for weighted pred
     1819Void  TComSlice::getWpAcDcParam(WPACDCParam *&wp)
     1820{
     1821  wp = m_weightACDCParam;
     1822}
     1823
    18181824//! init AC and DC values for weighted pred
    18191825Void  TComSlice::initWpAcDcParam()
     
    18561862Void  TComSlice::initWpScaling(const TComSPS *sps)
    18571863{
    1858   const Bool bUseHighPrecisionPredictionWeighting = sps->getUseHighPrecisionPredictionWeighting();
     1864  const Bool bUseHighPrecisionPredictionWeighting = sps->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag();
    18591865  for ( Int e=0 ; e<NUM_REF_PIC_LIST_01 ; e++ )
    18601866  {
     
    20402046// ------------------------------------------------------------------------------------------------
    20412047
     2048TComSPSRExt::TComSPSRExt()
     2049 : m_transformSkipRotationEnabledFlag   (false)
     2050 , m_transformSkipContextEnabledFlag    (false)
     2051// m_rdpcmEnabledFlag initialized below
     2052 , m_extendedPrecisionProcessingFlag    (false)
     2053 , m_intraSmoothingDisabledFlag         (false)
     2054 , m_highPrecisionOffsetsEnabledFlag    (false)
     2055 , m_persistentRiceAdaptationEnabledFlag(false)
     2056 , m_cabacBypassAlignmentEnabledFlag    (false)
     2057{
     2058  for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++)
     2059  {
     2060    m_rdpcmEnabledFlag[signallingModeIndex] = false;
     2061  }
     2062}
     2063
    20422064TComSPS::TComSPS()
    20432065: m_SPSId                     (  0)
     
    20622084, m_pcmLog2MaxSize            (  5)
    20632085, m_uiPCMLog2MinSize          (  7)
    2064 , m_useExtendedPrecision      (false)
    2065 , m_useHighPrecisionPredictionWeighting(false)
    2066 , m_useResidualRotation       (false)
    2067 , m_useSingleSignificanceMapContext(false)
    2068 , m_useGolombRiceParameterAdaptation(false)
    2069 , m_alignCABACBeforeBypass    (false)
    20702086, m_bPCMFilterDisableFlag     (false)
    2071 , m_disableIntraReferenceSmoothing(false)
    20722087, m_uiBitsForPOC              (  8)
    20732088, m_numLongTermRefPicSPS      (  0)
     
    21062121  }
    21072122
    2108   for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++)
    2109   {
    2110     m_useResidualDPCM[signallingModeIndex] = false;
    2111   }
    2112 
    21132123  ::memset(m_ltRefPicPocLsbSps, 0, sizeof(m_ltRefPicPocLsbSps));
    21142124  ::memset(m_usedByCurrPicLtSPSFlag, 0, sizeof(m_usedByCurrPicLtSPSFlag));
     
    22442254const Int TComSPS::m_winUnitY[]={1,2,1,1};
    22452255
     2256TComPPSRExt::TComPPSRExt()
     2257: m_log2MaxTransformSkipBlockSize      (2)
     2258, m_crossComponentPredictionEnabledFlag(false)
     2259, m_diffCuChromaQpOffsetDepth          (0)
     2260, m_chromaQpOffsetListLen              (0)
     2261// m_ChromaQpAdjTableIncludingNullEntry initialized below
     2262// m_log2SaoOffsetScale initialized below
     2263{
     2264  m_ChromaQpAdjTableIncludingNullEntry[0].u.comp.CbOffset = 0; // Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0. This is initialised here and never subsequently changed.
     2265  m_ChromaQpAdjTableIncludingNullEntry[0].u.comp.CrOffset = 0;
     2266  for(Int ch=0; ch<MAX_NUM_CHANNEL_TYPE; ch++)
     2267  {
     2268    m_log2SaoOffsetScale[ch] = 0;
     2269  }
     2270}
     2271
    22462272TComPPS::TComPPS()
    22472273: m_PPSId                            (0)
     
    22522278, m_bSliceChromaQpFlag               (false)
    22532279, m_uiMaxCuDQPDepth                  (0)
    2254 , m_MaxCuChromaQpAdjDepth            (0)
    2255 , m_ChromaQpAdjTableSize             (0)
    22562280, m_chromaCbQpOffset                 (0)
    22572281, m_chromaCrQpOffset                 (0)
    22582282, m_numRefIdxL0DefaultActive         (1)
    22592283, m_numRefIdxL1DefaultActive         (1)
    2260 , m_useCrossComponentPrediction      (false)
    22612284, m_TransquantBypassEnableFlag       (false)
    22622285, m_useTransformSkip                 (false)
    2263 , m_transformSkipLog2MaxSize         (2)
    22642286, m_dependentSliceSegmentsEnabledFlag(false)
    22652287, m_tilesEnabledFlag                 (false)
     
    22902312#endif //SVC_EXTENSION
    22912313{
    2292   for(Int ch=0; ch<MAX_NUM_CHANNEL_TYPE; ch++)
    2293   {
    2294     m_saoOffsetBitShift[ch] = 0;
    2295   }
    2296   m_ChromaQpAdjTableIncludingNullEntry[0].u.comp.CbOffset = 0; // Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0. This is initialised here and never subsequently changed.
    2297   m_ChromaQpAdjTableIncludingNullEntry[0].u.comp.CrOffset = 0;
    2298 
    22992314#if SVC_EXTENSION
    23002315  ::memset(m_scaledRefLayerOffsetPresentFlag,   0, sizeof(m_scaledRefLayerOffsetPresentFlag));
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h

    r1295 r1316  
    13041304};
    13051305
     1306/// SPS RExt class
     1307class TComSPSRExt // Names aligned to text specification
     1308{
     1309private:
     1310  Bool             m_transformSkipRotationEnabledFlag;
     1311  Bool             m_transformSkipContextEnabledFlag;
     1312  Bool             m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES];
     1313  Bool             m_extendedPrecisionProcessingFlag;
     1314  Bool             m_intraSmoothingDisabledFlag;
     1315  Bool             m_highPrecisionOffsetsEnabledFlag;
     1316  Bool             m_persistentRiceAdaptationEnabledFlag;
     1317  Bool             m_cabacBypassAlignmentEnabledFlag;
     1318
     1319public:
     1320  TComSPSRExt();
     1321
     1322  Bool settingsDifferFromDefaults() const
     1323  {
     1324    return getTransformSkipRotationEnabledFlag()
     1325        || getTransformSkipContextEnabledFlag()
     1326        || getRdpcmEnabledFlag(RDPCM_SIGNAL_IMPLICIT)
     1327        || getRdpcmEnabledFlag(RDPCM_SIGNAL_EXPLICIT)
     1328        || getExtendedPrecisionProcessingFlag()
     1329        || getIntraSmoothingDisabledFlag()
     1330        || getHighPrecisionOffsetsEnabledFlag()
     1331        || getPersistentRiceAdaptationEnabledFlag()
     1332        || getCabacBypassAlignmentEnabledFlag();
     1333  }
     1334
     1335
     1336  Bool getTransformSkipRotationEnabledFlag() const                                     { return m_transformSkipRotationEnabledFlag;     }
     1337  Void setTransformSkipRotationEnabledFlag(const Bool value)                           { m_transformSkipRotationEnabledFlag = value;    }
     1338
     1339  Bool getTransformSkipContextEnabledFlag() const                                      { return m_transformSkipContextEnabledFlag;      }
     1340  Void setTransformSkipContextEnabledFlag(const Bool value)                            { m_transformSkipContextEnabledFlag = value;     }
     1341
     1342  Bool getRdpcmEnabledFlag(const RDPCMSignallingMode signallingMode) const             { return m_rdpcmEnabledFlag[signallingMode];     }
     1343  Void setRdpcmEnabledFlag(const RDPCMSignallingMode signallingMode, const Bool value) { m_rdpcmEnabledFlag[signallingMode] = value;    }
     1344
     1345  Bool getExtendedPrecisionProcessingFlag() const                                      { return m_extendedPrecisionProcessingFlag;      }
     1346  Void setExtendedPrecisionProcessingFlag(Bool value)                                  { m_extendedPrecisionProcessingFlag = value;     }
     1347
     1348  Bool getIntraSmoothingDisabledFlag() const                                           { return m_intraSmoothingDisabledFlag;           }
     1349  Void setIntraSmoothingDisabledFlag(Bool bValue)                                      { m_intraSmoothingDisabledFlag=bValue;           }
     1350
     1351  Bool getHighPrecisionOffsetsEnabledFlag() const                                      { return m_highPrecisionOffsetsEnabledFlag;      }
     1352  Void setHighPrecisionOffsetsEnabledFlag(Bool value)                                  { m_highPrecisionOffsetsEnabledFlag = value;     }
     1353
     1354  Bool getPersistentRiceAdaptationEnabledFlag() const                                  { return m_persistentRiceAdaptationEnabledFlag;  }
     1355  Void setPersistentRiceAdaptationEnabledFlag(const Bool value)                        { m_persistentRiceAdaptationEnabledFlag = value; }
     1356
     1357  Bool getCabacBypassAlignmentEnabledFlag() const                                      { return m_cabacBypassAlignmentEnabledFlag;      }
     1358  Void setCabacBypassAlignmentEnabledFlag(const Bool value)                            { m_cabacBypassAlignmentEnabledFlag = value;     }
     1359};
    13061360
    13071361/// SPS class
     
    13451399  BitDepths        m_bitDepths;
    13461400  Int              m_qpBDOffset[MAX_NUM_CHANNEL_TYPE];
    1347   Bool             m_useExtendedPrecision;
    1348   Bool             m_useHighPrecisionPredictionWeighting;
    1349   Bool             m_useResidualRotation;
    1350   Bool             m_useSingleSignificanceMapContext;
    1351   Bool             m_useGolombRiceParameterAdaptation;
    1352   Bool             m_alignCABACBeforeBypass;
    1353   Bool             m_useResidualDPCM[NUMBER_OF_RDPCM_SIGNALLING_MODES];
    13541401  Int              m_pcmBitDepths[MAX_NUM_CHANNEL_TYPE];
    13551402  Bool             m_bPCMFilterDisableFlag;
    1356   Bool             m_disableIntraReferenceSmoothing;
    13571403
    13581404  UInt             m_uiBitsForPOC;
     
    13771423  Bool             m_vuiParametersPresentFlag;
    13781424  TComVUI          m_vuiParameters;
     1425
     1426  TComSPSRExt      m_spsRangeExtension;
    13791427
    13801428  static const Int m_winUnitX[MAX_CHROMA_FORMAT_IDC+1];
     
    14861534#endif
    14871535  const BitDepths&       getBitDepths() const                                                            { return m_bitDepths;                                                  }
    1488   Int                    getMaxLog2TrDynamicRange(ChannelType channelType) const                         { return getUseExtendedPrecision() ? std::max<Int>(15, Int(m_bitDepths.recon[channelType] + 6)) : 15; }
     1536  Int                    getMaxLog2TrDynamicRange(ChannelType channelType) const                         { return getSpsRangeExtension().getExtendedPrecisionProcessingFlag() ? std::max<Int>(15, Int(m_bitDepths.recon[channelType] + 6)) : 15; }
    14891537
    14901538  Int                    getDifferentialLumaChromaBitDepth() const                                       { return Int(m_bitDepths.recon[CHANNEL_TYPE_LUMA]) - Int(m_bitDepths.recon[CHANNEL_TYPE_CHROMA]); }
    14911539  Int                    getQpBDOffset(ChannelType type) const                                           { return m_qpBDOffset[type];                                           }
    14921540  Void                   setQpBDOffset(ChannelType type, Int i)                                          { m_qpBDOffset[type] = i;                                              }
    1493   Bool                   getUseExtendedPrecision() const                                                 { return m_useExtendedPrecision;                                       }
    1494   Void                   setUseExtendedPrecision(Bool value)                                             { m_useExtendedPrecision = value;                                      }
    1495   Bool                   getUseHighPrecisionPredictionWeighting() const                                  { return m_useHighPrecisionPredictionWeighting;                        }
    1496   Void                   setUseHighPrecisionPredictionWeighting(Bool value)                              { m_useHighPrecisionPredictionWeighting = value;                       }
    14971541
    14981542  Void                   setUseSAO(Bool bVal)                                                            { m_bUseSAO = bVal;                                                    }
    14991543  Bool                   getUseSAO() const                                                               { return m_bUseSAO;                                                    }
    1500 
    1501   Bool                   getUseResidualRotation() const                                                  { return m_useResidualRotation;                                        }
    1502   Void                   setUseResidualRotation(const Bool value)                                        { m_useResidualRotation = value;                                       }
    1503 
    1504   Bool                   getUseSingleSignificanceMapContext()                 const                      { return m_useSingleSignificanceMapContext;                            }
    1505   Void                   setUseSingleSignificanceMapContext(const Bool value)                            { m_useSingleSignificanceMapContext = value;                           }
    1506 
    1507   Bool                   getUseGolombRiceParameterAdaptation()                 const                     { return m_useGolombRiceParameterAdaptation;                           }
    1508   Void                   setUseGolombRiceParameterAdaptation(const Bool value)                           { m_useGolombRiceParameterAdaptation = value;                          }
    1509 
    1510   Bool                   getAlignCABACBeforeBypass()                 const                               { return m_alignCABACBeforeBypass;                                     }
    1511   Void                   setAlignCABACBeforeBypass(const Bool value)                                     { m_alignCABACBeforeBypass = value;                                    }
    1512 
    1513   Bool                   getUseResidualDPCM(const RDPCMSignallingMode signallingMode) const              { return m_useResidualDPCM[signallingMode];                            }
    1514   Void                   setUseResidualDPCM(const RDPCMSignallingMode signallingMode, const Bool value)  { m_useResidualDPCM[signallingMode] = value;                           }
    15151544
    15161545  UInt                   getMaxTLayers() const                                                           { return m_uiMaxTLayers; }
     
    15231552  Void                   setPCMFilterDisableFlag( Bool bValue )                                          { m_bPCMFilterDisableFlag = bValue;                                    }
    15241553  Bool                   getPCMFilterDisableFlag() const                                                 { return m_bPCMFilterDisableFlag;                                      }
    1525   Void                   setDisableIntraReferenceSmoothing(Bool bValue)                                  { m_disableIntraReferenceSmoothing=bValue;                             }
    1526   Bool                   getDisableIntraReferenceSmoothing() const                                       { return m_disableIntraReferenceSmoothing;                             }
    15271554
    15281555  Bool                   getScalingListFlag() const                                                      { return m_scalingListEnabledFlag;                                     }
     
    15481575  const TComPTL*         getPTL() const                                                                  { return &m_pcPTL;                                                     }
    15491576  TComPTL*               getPTL()                                                                        { return &m_pcPTL;                                                     }
     1577
     1578  const TComSPSRExt&     getSpsRangeExtension() const                                                    { return m_spsRangeExtension;                                          }
     1579  TComSPSRExt&           getSpsRangeExtension()                                                          { return m_spsRangeExtension;                                          }
     1580
     1581  // Sequence parameter set range extension syntax
     1582  // WAS: getUseResidualRotation and setUseResidualRotation
     1583  // Now getSpsRangeExtension().getTransformSkipRotationEnabledFlag and getSpsRangeExtension().setTransformSkipRotationEnabledFlag
     1584
     1585  // WAS: getUseSingleSignificanceMapContext and setUseSingleSignificanceMapContext
     1586  // Now: getSpsRangeExtension().getTransformSkipContextEnabledFlag and getSpsRangeExtension().setTransformSkipContextEnabledFlag
     1587
     1588  // WAS: getUseResidualDPCM and setUseResidualDPCM
     1589  // Now: getSpsRangeExtension().getRdpcmEnabledFlag and getSpsRangeExtension().setRdpcmEnabledFlag and
     1590
     1591  // WAS: getUseExtendedPrecision and setUseExtendedPrecision
     1592  // Now: getSpsRangeExtension().getExtendedPrecisionProcessingFlag and getSpsRangeExtension().setExtendedPrecisionProcessingFlag
     1593
     1594  // WAS: getDisableIntraReferenceSmoothing and setDisableIntraReferenceSmoothing
     1595  // Now: getSpsRangeExtension().getIntraSmoothingDisabledFlag and getSpsRangeExtension().setIntraSmoothingDisabledFlag
     1596
     1597  // WAS: getUseHighPrecisionPredictionWeighting and setUseHighPrecisionPredictionWeighting
     1598  // Now: getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag and getSpsRangeExtension().setHighPrecisionOffsetsEnabledFlag
     1599
     1600  // WAS: getUseGolombRiceParameterAdaptation and setUseGolombRiceParameterAdaptation
     1601  // Now: getSpsRangeExtension().getPersistentRiceAdaptationEnabledFlag and getSpsRangeExtension().setPersistentRiceAdaptationEnabledFlag
     1602
     1603  // WAS: getAlignCABACBeforeBypass and setAlignCABACBeforeBypass
     1604  // Now: getSpsRangeExtension().getCabacBypassAlignmentEnabledFlag and getSpsRangeExtension().setCabacBypassAlignmentEnabledFlag
    15501605
    15511606#if SVC_EXTENSION
     
    16021657};
    16031658
     1659
     1660
     1661/// PPS RExt class
     1662class TComPPSRExt // Names aligned to text specification
     1663{
     1664private:
     1665  Int              m_log2MaxTransformSkipBlockSize;
     1666  Bool             m_crossComponentPredictionEnabledFlag;
     1667
     1668  // Chroma QP Adjustments
     1669  Int              m_diffCuChromaQpOffsetDepth;
     1670  Int              m_chromaQpOffsetListLen; // size (excludes the null entry used in the following array).
     1671  ChromaQpAdj      m_ChromaQpAdjTableIncludingNullEntry[1+MAX_QP_OFFSET_LIST_SIZE]; //!< Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise
     1672
     1673  UInt             m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE];
     1674
     1675public:
     1676  TComPPSRExt();
     1677
     1678  Bool settingsDifferFromDefaults(const bool bTransformSkipEnabledFlag) const
     1679  {
     1680    return (bTransformSkipEnabledFlag && (getLog2MaxTransformSkipBlockSize() !=2))
     1681        || (getCrossComponentPredictionEnabledFlag() )
     1682        || (getChromaQpOffsetListEnabledFlag() )
     1683        || (getLog2SaoOffsetScale(CHANNEL_TYPE_LUMA) !=0 )
     1684        || (getLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA) !=0 );
     1685  }
     1686
     1687  UInt                   getLog2MaxTransformSkipBlockSize() const                         { return m_log2MaxTransformSkipBlockSize;         }
     1688  Void                   setLog2MaxTransformSkipBlockSize( UInt u )                       { m_log2MaxTransformSkipBlockSize  = u;           }
     1689
     1690  Bool                   getCrossComponentPredictionEnabledFlag() const                   { return m_crossComponentPredictionEnabledFlag;   }
     1691  Void                   setCrossComponentPredictionEnabledFlag(Bool value)               { m_crossComponentPredictionEnabledFlag = value;  }
     1692
     1693  Void                   clearChromaQpOffsetList()                                        { m_chromaQpOffsetListLen = 0;                    }
     1694
     1695  UInt                   getDiffCuChromaQpOffsetDepth () const                            { return m_diffCuChromaQpOffsetDepth;             }
     1696  Void                   setDiffCuChromaQpOffsetDepth ( UInt u )                          { m_diffCuChromaQpOffsetDepth = u;                }
     1697
     1698  Bool                   getChromaQpOffsetListEnabledFlag() const                         { return getChromaQpOffsetListLen()>0;            }
     1699  Int                    getChromaQpOffsetListLen() const                                 { return m_chromaQpOffsetListLen;                 }
     1700
     1701  const ChromaQpAdj&     getChromaQpOffsetListEntry( Int cuChromaQpOffsetIdxPlus1 ) const
     1702  {
     1703    assert(cuChromaQpOffsetIdxPlus1 < m_chromaQpOffsetListLen+1);
     1704    return m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1]; // Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise
     1705  }
     1706
     1707  Void                   setChromaQpOffsetListEntry( Int cuChromaQpOffsetIdxPlus1, Int cbOffset, Int crOffset )
     1708  {
     1709    assert (cuChromaQpOffsetIdxPlus1 != 0 && cuChromaQpOffsetIdxPlus1 <= MAX_QP_OFFSET_LIST_SIZE);
     1710    m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1].u.comp.CbOffset = cbOffset; // Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise
     1711    m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1].u.comp.CrOffset = crOffset;
     1712    m_chromaQpOffsetListLen = max(m_chromaQpOffsetListLen, cuChromaQpOffsetIdxPlus1);
     1713  }
     1714
     1715  // Now: getPpsRangeExtension().getLog2SaoOffsetScale and getPpsRangeExtension().setLog2SaoOffsetScale
     1716  UInt                   getLog2SaoOffsetScale(ChannelType type) const                    { return m_log2SaoOffsetScale[type];             }
     1717  Void                   setLog2SaoOffsetScale(ChannelType type, UInt uiBitShift)         { m_log2SaoOffsetScale[type] = uiBitShift;       }
     1718
     1719};
     1720
     1721
    16041722/// PPS class
    16051723class TComPPS
     
    16161734  UInt             m_uiMaxCuDQPDepth;
    16171735
    1618   // Chroma QP Adjustments
    1619   Int              m_MaxCuChromaQpAdjDepth;
    1620   Int              m_ChromaQpAdjTableSize; // size (excludes the null entry used in the following array).
    1621   ChromaQpAdj      m_ChromaQpAdjTableIncludingNullEntry[1+MAX_QP_OFFSET_LIST_SIZE]; //!< Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise
    1622 
    16231736  Int              m_chromaCbQpOffset;
    16241737  Int              m_chromaCrQpOffset;
     
    16301743  Bool             m_useWeightedBiPred;                 //!< Use of Weighting Bi-Prediction (B_SLICE)
    16311744  Bool             m_OutputFlagPresentFlag;             //!< Indicates the presence of output_flag in slice header
    1632   Bool             m_useCrossComponentPrediction;
    1633   UInt             m_saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE];
    16341745  Bool             m_TransquantBypassEnableFlag;        //!< Indicates presence of cu_transquant_bypass_flag in CUs.
    16351746  Bool             m_useTransformSkip;
    1636   Int              m_transformSkipLog2MaxSize;
    16371747  Bool             m_dependentSliceSegmentsEnabledFlag; //!< Indicates the presence of dependent slices
    16381748  Bool             m_tilesEnabledFlag;                  //!< Indicates the presence of tiles
     
    16621772  UInt             m_log2ParallelMergeLevelMinus2;
    16631773  Int              m_numExtraSliceHeaderBits;
     1774
     1775  TComPPSRExt      m_ppsRangeExtension;
    16641776
    16651777#if SVC_EXTENSION
     
    17241836  }
    17251837
    1726   Void                   setMaxCuChromaQpAdjDepth ( UInt u )                              { m_MaxCuChromaQpAdjDepth = u;                  }
    1727   UInt                   getMaxCuChromaQpAdjDepth () const                                { return m_MaxCuChromaQpAdjDepth;               }
    1728   Void                   clearChromaQpAdjTable()                                          { m_ChromaQpAdjTableSize = 0;                   }
    1729   Int                    getChromaQpAdjTableSize() const                                  { return m_ChromaQpAdjTableSize;                }
    1730 
    1731   const ChromaQpAdj&     getChromaQpAdjTableAt( Int cuChromaQpOffsetIdxPlus1 ) const
    1732   {
    1733     assert(cuChromaQpOffsetIdxPlus1 < m_ChromaQpAdjTableSize+1);
    1734     return m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1]; // Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise
    1735   }
    1736 
    1737   Void                   setChromaQpAdjTableAt( Int cuChromaQpOffsetIdxPlus1, Int cbOffset, Int crOffset )
    1738   {
    1739     assert (cuChromaQpOffsetIdxPlus1 != 0 && cuChromaQpOffsetIdxPlus1 <= MAX_QP_OFFSET_LIST_SIZE);
    1740     m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1].u.comp.CbOffset = cbOffset; // Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise
    1741     m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1].u.comp.CrOffset = crOffset;
    1742     m_ChromaQpAdjTableSize = max(m_ChromaQpAdjTableSize, cuChromaQpOffsetIdxPlus1);
    1743   }
    1744 
    17451838  Void                   setNumRefIdxL0DefaultActive(UInt ui)                             { m_numRefIdxL0DefaultActive=ui;                }
    17461839  UInt                   getNumRefIdxL0DefaultActive() const                              { return m_numRefIdxL0DefaultActive;            }
     
    17531846  Void                   setWPBiPred( Bool b )                                            { m_useWeightedBiPred = b;                      }
    17541847
    1755   Bool                   getUseCrossComponentPrediction() const                           { return m_useCrossComponentPrediction;         }
    1756   Void                   setUseCrossComponentPrediction(Bool value)                       { m_useCrossComponentPrediction = value;        }
    1757 
    1758   UInt                   getSaoOffsetBitShift(ChannelType type) const                     { return m_saoOffsetBitShift[type];             }
    1759   Void                   setSaoOffsetBitShift(ChannelType type, UInt uiBitShift)          { m_saoOffsetBitShift[type] = uiBitShift;       }
    1760 
    17611848  Void                   setOutputFlagPresentFlag( Bool b )                               { m_OutputFlagPresentFlag = b;                  }
    17621849  Bool                   getOutputFlagPresentFlag() const                                 { return m_OutputFlagPresentFlag;               }
     
    17661853  Bool                   getUseTransformSkip() const                                      { return m_useTransformSkip;                    }
    17671854  Void                   setUseTransformSkip( Bool b )                                    { m_useTransformSkip  = b;                      }
    1768   UInt                   getTransformSkipLog2MaxSize() const                              { return m_transformSkipLog2MaxSize;            }
    1769   Void                   setTransformSkipLog2MaxSize( UInt u )                            { m_transformSkipLog2MaxSize  = u;              }
    17701855
    17711856  Void                   setLoopFilterAcrossTilesEnabledFlag(Bool b)                      { m_loopFilterAcrossTilesEnabledFlag = b;       }
     
    18181903  Bool                   getSliceHeaderExtensionPresentFlag() const                       { return m_sliceHeaderExtensionPresentFlag;     }
    18191904  Void                   setSliceHeaderExtensionPresentFlag(Bool val)                     { m_sliceHeaderExtensionPresentFlag = val;      }
     1905
     1906  const TComPPSRExt&     getPpsRangeExtension() const                                     { return m_ppsRangeExtension;                   }
     1907  TComPPSRExt&           getPpsRangeExtension()                                           { return m_ppsRangeExtension;                   }
     1908
     1909  // WAS: getTransformSkipLog2MaxSize and setTransformSkipLog2MaxSize
     1910  // Now: getPpsRangeExtension().getLog2MaxTransformSkipBlockSize and getPpsRangeExtension().setLog2MaxTransformSkipBlockSize
     1911
     1912  // WAS: getUseCrossComponentPrediction and setUseCrossComponentPrediction
     1913  // Now: getPpsRangeExtension().getCrossComponentPredictionEnabledFlag and getPpsRangeExtension().setCrossComponentPredictionEnabledFlag
     1914
     1915  // WAS: clearChromaQpAdjTable
     1916  // Now: getPpsRangeExtension().clearChromaQpOffsetList
     1917
     1918  // WAS: getMaxCuChromaQpAdjDepth and setMaxCuChromaQpAdjDepth
     1919  // Now: getPpsRangeExtension().getDiffCuChromaQpOffsetDepth and getPpsRangeExtension().setDiffCuChromaQpOffsetDepth
     1920
     1921  // WAS: getChromaQpAdjTableSize
     1922  // Now: getPpsRangeExtension().getChromaQpOffsetListLen
     1923
     1924  // WAS: getChromaQpAdjTableAt and setChromaQpAdjTableAt
     1925  // Now: getPpsRangeExtension().getChromaQpOffsetListEntry and getPpsRangeExtension().setChromaQpOffsetListEntry
     1926
     1927  // WAS: getSaoOffsetBitShift and setSaoOffsetBitShift
     1928  // Now: getPpsRangeExtension().getLog2SaoOffsetScale and getPpsRangeExtension().setLog2SaoOffsetScale
     1929
    18201930#if SVC_EXTENSION
    18211931  Int                    getExtensionFlag() const                                         { return m_extensionFlag;                       }
     
    22572367  }
    22582368
    2259   WPACDCParam*                getWpAcDcParam()                                       { return &m_weightACDCParam[0]; }
    2260 
     2369  Void                        getWpAcDcParam( WPACDCParam *&wp );
    22612370  Void                        initWpAcDcParam();
    22622371
  • branches/SHM-dev/source/Lib/TLibCommon/TComTU.cpp

    r1259 r1316  
    237237{
    238238  // rotation only for 4x4 intra, and is only used for non-transformed blocks (the latter is not checked here)
    239   return    getCU()->getSlice()->getSPS()->getUseResidualRotation()
     239  return    getCU()->getSlice()->getSPS()->getSpsRangeExtension().getTransformSkipRotationEnabledFlag()
    240240         && mRect[compID].width == 4
    241241         && getCU()->isIntra(GetAbsPartIdxTU());
  • branches/SHM-dev/source/Lib/TLibCommon/TComTrQuant.cpp

    r1307 r1316  
    109109    chromaQpOffset += cu.getSlice()->getSliceChromaQpDelta(compID);
    110110
    111     chromaQpOffset += cu.getSlice()->getPPS()->getChromaQpAdjTableAt(cu.getChromaQpAdj(0)).u.offset[Int(compID)-1];
     111    chromaQpOffset += cu.getSlice()->getPPS()->getPpsRangeExtension().getChromaQpOffsetListEntry(cu.getChromaQpAdj(0)).u.offset[Int(compID)-1];
    112112  }
    113113
     
    12061206    // Represents scaling through forward transform
    12071207    Int iTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange);
    1208     if (useTransformSkip && pcCU->getSlice()->getSPS()->getUseExtendedPrecision())
     1208    if (useTransformSkip && pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag())
    12091209    {
    12101210      iTransformShift = std::max<Int>(0, iTransformShift);
     
    12941294  // Represents scaling through forward transform
    12951295  Int iTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange);
    1296   if (useTransformSkip && pcCU->getSlice()->getSPS()->getUseExtendedPrecision())
     1296  if (useTransformSkip && pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag())
    12971297  {
    12981298    iTransformShift = std::max<Int>(0, iTransformShift);
     
    13561356
    13571357  // Represents scaling through forward transform
    1358   const Bool bClipTransformShiftTo0 = (pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0) && pcCU->getSlice()->getSPS()->getUseExtendedPrecision();
     1358  const Bool bClipTransformShiftTo0 = (pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0) && pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag();
    13591359  const Int  originalTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange);
    13601360  const Int  iTransformShift        = bClipTransformShiftTo0 ? std::max<Int>(0, originalTransformShift) : originalTransformShift;
     
    17081708  UInt absPartIdxTU = rTu.GetAbsPartIdxTU();
    17091709  UInt uiTrMode=rTu.GetTransformDepthRel();
    1710   if( (pcCU->getCbf(absPartIdxTU, compID, uiTrMode) == 0) && (isLuma(compID) || !pcCU->getSlice()->getPPS()->getUseCrossComponentPrediction()) )
     1710  if( (pcCU->getCbf(absPartIdxTU, compID, uiTrMode) == 0) && (isLuma(compID) || !pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) )
    17111711  {
    17121712    return;
     
    20522052
    20532053  Int iTransformShift = getTransformShift(channelBitDepth, rTu.GetEquivalentLog2TrSize(component), maxLog2TrDynamicRange);
    2054   if (rTu.getCU()->getSlice()->getSPS()->getUseExtendedPrecision())
     2054  if (rTu.getCU()->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag())
    20552055  {
    20562056    iTransformShift = std::max<Int>(0, iTransformShift);
     
    21092109
    21102110  Int iTransformShift = getTransformShift(channelBitDepth, rTu.GetEquivalentLog2TrSize(component), maxLog2TrDynamicRange);
    2111   if (rTu.getCU()->getSlice()->getSPS()->getUseExtendedPrecision())
     2111  if (rTu.getCU()->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag())
    21122112  {
    21132113    iTransformShift = std::max<Int>(0, iTransformShift);
     
    21732173  const UInt             uiLog2TrSize     = rTu.GetEquivalentLog2TrSize(compID);
    21742174
    2175   const Bool             extendedPrecision = pcCU->getSlice()->getSPS()->getUseExtendedPrecision();
     2175  const Bool             extendedPrecision = pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag();
    21762176  const Int              maxLog2TrDynamicRange = pcCU->getSlice()->getSPS()->getMaxLog2TrDynamicRange(toChannelType(compID));
    21772177#if SVC_EXTENSION
     
    21892189  // Represents scaling through forward transform
    21902190  Int iTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange);
    2191   if ((pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0) && pcCU->getSlice()->getSPS()->getUseExtendedPrecision())
     2191  if ((pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0) && extendedPrecision)
    21922192  {
    21932193    iTransformShift = std::max<Int>(0, iTransformShift);
    21942194  }
    21952195
    2196   const Bool bUseGolombRiceParameterAdaptation = pcCU->getSlice()->getSPS()->getUseGolombRiceParameterAdaptation();
     2196  const Bool bUseGolombRiceParameterAdaptation = pcCU->getSlice()->getSPS()->getSpsRangeExtension().getPersistentRiceAdaptationEnabledFlag();
    21972197  const UInt initialGolombRiceParameter        = m_pcEstBitsSbac->golombRiceAdaptationStatistics[rTu.getGolombRiceStatisticsIndex(compID)] / RExt__GOLOMB_RICE_INCREMENT_DIVISOR;
    21982198        UInt uiGoRiceParam                     = initialGolombRiceParameter;
  • branches/SHM-dev/source/Lib/TLibCommon/TComWeightPrediction.cpp

    r1287 r1316  
    226226
    227227  const UInt numValidComponent                    = pcCU->getPic()->getNumberValidComponents();
    228   const Bool bUseHighPrecisionPredictionWeighting = pcSlice->getSPS()->getUseHighPrecisionPredictionWeighting();
     228  const Bool bUseHighPrecisionPredictionWeighting = pcSlice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag();
    229229
    230230  if ( bBiDir )
Note: See TracChangeset for help on using the changeset viewer.