Changeset 1316 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon
- Timestamp:
- 21 Jul 2015, 20:08:08 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibCommon
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/TComChromaFormat.cpp
r1259 r1316 132 132 //set the significance map context selection parameters 133 133 134 if (pcCU->getSlice()->getSPS()->get UseSingleSignificanceMapContext()134 if (pcCU->getSlice()->getSPS()->getSpsRangeExtension().getTransformSkipContextEnabledFlag() 135 135 && (pcCU->getCUTransquantBypass(uiAbsPartIdx) || (pcCU->getTransformSkip(uiAbsPartIdx, component) != 0))) 136 136 { -
branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.h
r1315 r1316 284 284 Void setExplicitRdpcmModePartRange ( UInt rdpcmMode, ComponentID compID, UInt uiAbsPartIdx, UInt uiCoveredPartIdxes ); 285 285 286 Bool isRDPCMEnabled ( UInt uiAbsPartIdx ) { return getSlice()->getSPS()->get UseResidualDPCM(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); } 287 287 288 288 Void setCrossComponentPredictionAlphaPartRange ( Char alphaValue, ComponentID compID, UInt uiAbsPartIdx, UInt uiCoveredPartIdxes ); -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r1295 r1316 1816 1816 } 1817 1817 1818 //! get AC and DC values for weighted pred 1819 Void TComSlice::getWpAcDcParam(WPACDCParam *&wp) 1820 { 1821 wp = m_weightACDCParam; 1822 } 1823 1818 1824 //! init AC and DC values for weighted pred 1819 1825 Void TComSlice::initWpAcDcParam() … … 1856 1862 Void TComSlice::initWpScaling(const TComSPS *sps) 1857 1863 { 1858 const Bool bUseHighPrecisionPredictionWeighting = sps->get UseHighPrecisionPredictionWeighting();1864 const Bool bUseHighPrecisionPredictionWeighting = sps->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag(); 1859 1865 for ( Int e=0 ; e<NUM_REF_PIC_LIST_01 ; e++ ) 1860 1866 { … … 2040 2046 // ------------------------------------------------------------------------------------------------ 2041 2047 2048 TComSPSRExt::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 2042 2064 TComSPS::TComSPS() 2043 2065 : m_SPSId ( 0) … … 2062 2084 , m_pcmLog2MaxSize ( 5) 2063 2085 , 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)2070 2086 , m_bPCMFilterDisableFlag (false) 2071 , m_disableIntraReferenceSmoothing(false)2072 2087 , m_uiBitsForPOC ( 8) 2073 2088 , m_numLongTermRefPicSPS ( 0) … … 2106 2121 } 2107 2122 2108 for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++)2109 {2110 m_useResidualDPCM[signallingModeIndex] = false;2111 }2112 2113 2123 ::memset(m_ltRefPicPocLsbSps, 0, sizeof(m_ltRefPicPocLsbSps)); 2114 2124 ::memset(m_usedByCurrPicLtSPSFlag, 0, sizeof(m_usedByCurrPicLtSPSFlag)); … … 2244 2254 const Int TComSPS::m_winUnitY[]={1,2,1,1}; 2245 2255 2256 TComPPSRExt::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 2246 2272 TComPPS::TComPPS() 2247 2273 : m_PPSId (0) … … 2252 2278 , m_bSliceChromaQpFlag (false) 2253 2279 , m_uiMaxCuDQPDepth (0) 2254 , m_MaxCuChromaQpAdjDepth (0)2255 , m_ChromaQpAdjTableSize (0)2256 2280 , m_chromaCbQpOffset (0) 2257 2281 , m_chromaCrQpOffset (0) 2258 2282 , m_numRefIdxL0DefaultActive (1) 2259 2283 , m_numRefIdxL1DefaultActive (1) 2260 , m_useCrossComponentPrediction (false)2261 2284 , m_TransquantBypassEnableFlag (false) 2262 2285 , m_useTransformSkip (false) 2263 , m_transformSkipLog2MaxSize (2)2264 2286 , m_dependentSliceSegmentsEnabledFlag(false) 2265 2287 , m_tilesEnabledFlag (false) … … 2290 2312 #endif //SVC_EXTENSION 2291 2313 { 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 2299 2314 #if SVC_EXTENSION 2300 2315 ::memset(m_scaledRefLayerOffsetPresentFlag, 0, sizeof(m_scaledRefLayerOffsetPresentFlag)); -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h
r1295 r1316 1304 1304 }; 1305 1305 1306 /// SPS RExt class 1307 class TComSPSRExt // Names aligned to text specification 1308 { 1309 private: 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 1319 public: 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 }; 1306 1360 1307 1361 /// SPS class … … 1345 1399 BitDepths m_bitDepths; 1346 1400 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];1354 1401 Int m_pcmBitDepths[MAX_NUM_CHANNEL_TYPE]; 1355 1402 Bool m_bPCMFilterDisableFlag; 1356 Bool m_disableIntraReferenceSmoothing;1357 1403 1358 1404 UInt m_uiBitsForPOC; … … 1377 1423 Bool m_vuiParametersPresentFlag; 1378 1424 TComVUI m_vuiParameters; 1425 1426 TComSPSRExt m_spsRangeExtension; 1379 1427 1380 1428 static const Int m_winUnitX[MAX_CHROMA_FORMAT_IDC+1]; … … 1486 1534 #endif 1487 1535 const BitDepths& getBitDepths() const { return m_bitDepths; } 1488 Int getMaxLog2TrDynamicRange(ChannelType channelType) const { return get UseExtendedPrecision() ? 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; } 1489 1537 1490 1538 Int getDifferentialLumaChromaBitDepth() const { return Int(m_bitDepths.recon[CHANNEL_TYPE_LUMA]) - Int(m_bitDepths.recon[CHANNEL_TYPE_CHROMA]); } 1491 1539 Int getQpBDOffset(ChannelType type) const { return m_qpBDOffset[type]; } 1492 1540 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; }1497 1541 1498 1542 Void setUseSAO(Bool bVal) { m_bUseSAO = bVal; } 1499 1543 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; }1515 1544 1516 1545 UInt getMaxTLayers() const { return m_uiMaxTLayers; } … … 1523 1552 Void setPCMFilterDisableFlag( Bool bValue ) { m_bPCMFilterDisableFlag = bValue; } 1524 1553 Bool getPCMFilterDisableFlag() const { return m_bPCMFilterDisableFlag; } 1525 Void setDisableIntraReferenceSmoothing(Bool bValue) { m_disableIntraReferenceSmoothing=bValue; }1526 Bool getDisableIntraReferenceSmoothing() const { return m_disableIntraReferenceSmoothing; }1527 1554 1528 1555 Bool getScalingListFlag() const { return m_scalingListEnabledFlag; } … … 1548 1575 const TComPTL* getPTL() const { return &m_pcPTL; } 1549 1576 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 1550 1605 1551 1606 #if SVC_EXTENSION … … 1602 1657 }; 1603 1658 1659 1660 1661 /// PPS RExt class 1662 class TComPPSRExt // Names aligned to text specification 1663 { 1664 private: 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 1675 public: 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 1604 1722 /// PPS class 1605 1723 class TComPPS … … 1616 1734 UInt m_uiMaxCuDQPDepth; 1617 1735 1618 // Chroma QP Adjustments1619 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...] otherwise1622 1623 1736 Int m_chromaCbQpOffset; 1624 1737 Int m_chromaCrQpOffset; … … 1630 1743 Bool m_useWeightedBiPred; //!< Use of Weighting Bi-Prediction (B_SLICE) 1631 1744 Bool m_OutputFlagPresentFlag; //!< Indicates the presence of output_flag in slice header 1632 Bool m_useCrossComponentPrediction;1633 UInt m_saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE];1634 1745 Bool m_TransquantBypassEnableFlag; //!< Indicates presence of cu_transquant_bypass_flag in CUs. 1635 1746 Bool m_useTransformSkip; 1636 Int m_transformSkipLog2MaxSize;1637 1747 Bool m_dependentSliceSegmentsEnabledFlag; //!< Indicates the presence of dependent slices 1638 1748 Bool m_tilesEnabledFlag; //!< Indicates the presence of tiles … … 1662 1772 UInt m_log2ParallelMergeLevelMinus2; 1663 1773 Int m_numExtraSliceHeaderBits; 1774 1775 TComPPSRExt m_ppsRangeExtension; 1664 1776 1665 1777 #if SVC_EXTENSION … … 1724 1836 } 1725 1837 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 ) const1732 {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...] otherwise1735 }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...] otherwise1741 m_ChromaQpAdjTableIncludingNullEntry[cuChromaQpOffsetIdxPlus1].u.comp.CrOffset = crOffset;1742 m_ChromaQpAdjTableSize = max(m_ChromaQpAdjTableSize, cuChromaQpOffsetIdxPlus1);1743 }1744 1745 1838 Void setNumRefIdxL0DefaultActive(UInt ui) { m_numRefIdxL0DefaultActive=ui; } 1746 1839 UInt getNumRefIdxL0DefaultActive() const { return m_numRefIdxL0DefaultActive; } … … 1753 1846 Void setWPBiPred( Bool b ) { m_useWeightedBiPred = b; } 1754 1847 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 1761 1848 Void setOutputFlagPresentFlag( Bool b ) { m_OutputFlagPresentFlag = b; } 1762 1849 Bool getOutputFlagPresentFlag() const { return m_OutputFlagPresentFlag; } … … 1766 1853 Bool getUseTransformSkip() const { return m_useTransformSkip; } 1767 1854 Void setUseTransformSkip( Bool b ) { m_useTransformSkip = b; } 1768 UInt getTransformSkipLog2MaxSize() const { return m_transformSkipLog2MaxSize; }1769 Void setTransformSkipLog2MaxSize( UInt u ) { m_transformSkipLog2MaxSize = u; }1770 1855 1771 1856 Void setLoopFilterAcrossTilesEnabledFlag(Bool b) { m_loopFilterAcrossTilesEnabledFlag = b; } … … 1818 1903 Bool getSliceHeaderExtensionPresentFlag() const { return m_sliceHeaderExtensionPresentFlag; } 1819 1904 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 1820 1930 #if SVC_EXTENSION 1821 1931 Int getExtensionFlag() const { return m_extensionFlag; } … … 2257 2367 } 2258 2368 2259 WPACDCParam* getWpAcDcParam() { return &m_weightACDCParam[0]; } 2260 2369 Void getWpAcDcParam( WPACDCParam *&wp ); 2261 2370 Void initWpAcDcParam(); 2262 2371 -
branches/SHM-dev/source/Lib/TLibCommon/TComTU.cpp
r1259 r1316 237 237 { 238 238 // rotation only for 4x4 intra, and is only used for non-transformed blocks (the latter is not checked here) 239 return getCU()->getSlice()->getSPS()->get UseResidualRotation()239 return getCU()->getSlice()->getSPS()->getSpsRangeExtension().getTransformSkipRotationEnabledFlag() 240 240 && mRect[compID].width == 4 241 241 && getCU()->isIntra(GetAbsPartIdxTU()); -
branches/SHM-dev/source/Lib/TLibCommon/TComTrQuant.cpp
r1307 r1316 109 109 chromaQpOffset += cu.getSlice()->getSliceChromaQpDelta(compID); 110 110 111 chromaQpOffset += cu.getSlice()->getPPS()->get ChromaQpAdjTableAt(cu.getChromaQpAdj(0)).u.offset[Int(compID)-1];111 chromaQpOffset += cu.getSlice()->getPPS()->getPpsRangeExtension().getChromaQpOffsetListEntry(cu.getChromaQpAdj(0)).u.offset[Int(compID)-1]; 112 112 } 113 113 … … 1206 1206 // Represents scaling through forward transform 1207 1207 Int iTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange); 1208 if (useTransformSkip && pcCU->getSlice()->getSPS()->get UseExtendedPrecision())1208 if (useTransformSkip && pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag()) 1209 1209 { 1210 1210 iTransformShift = std::max<Int>(0, iTransformShift); … … 1294 1294 // Represents scaling through forward transform 1295 1295 Int iTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange); 1296 if (useTransformSkip && pcCU->getSlice()->getSPS()->get UseExtendedPrecision())1296 if (useTransformSkip && pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag()) 1297 1297 { 1298 1298 iTransformShift = std::max<Int>(0, iTransformShift); … … 1356 1356 1357 1357 // Represents scaling through forward transform 1358 const Bool bClipTransformShiftTo0 = (pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0) && pcCU->getSlice()->getSPS()->get UseExtendedPrecision();1358 const Bool bClipTransformShiftTo0 = (pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0) && pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag(); 1359 1359 const Int originalTransformShift = getTransformShift(channelBitDepth, uiLog2TrSize, maxLog2TrDynamicRange); 1360 1360 const Int iTransformShift = bClipTransformShiftTo0 ? std::max<Int>(0, originalTransformShift) : originalTransformShift; … … 1708 1708 UInt absPartIdxTU = rTu.GetAbsPartIdxTU(); 1709 1709 UInt uiTrMode=rTu.GetTransformDepthRel(); 1710 if( (pcCU->getCbf(absPartIdxTU, compID, uiTrMode) == 0) && (isLuma(compID) || !pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction()) )1710 if( (pcCU->getCbf(absPartIdxTU, compID, uiTrMode) == 0) && (isLuma(compID) || !pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) ) 1711 1711 { 1712 1712 return; … … 2052 2052 2053 2053 Int iTransformShift = getTransformShift(channelBitDepth, rTu.GetEquivalentLog2TrSize(component), maxLog2TrDynamicRange); 2054 if (rTu.getCU()->getSlice()->getSPS()->get UseExtendedPrecision())2054 if (rTu.getCU()->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag()) 2055 2055 { 2056 2056 iTransformShift = std::max<Int>(0, iTransformShift); … … 2109 2109 2110 2110 Int iTransformShift = getTransformShift(channelBitDepth, rTu.GetEquivalentLog2TrSize(component), maxLog2TrDynamicRange); 2111 if (rTu.getCU()->getSlice()->getSPS()->get UseExtendedPrecision())2111 if (rTu.getCU()->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag()) 2112 2112 { 2113 2113 iTransformShift = std::max<Int>(0, iTransformShift); … … 2173 2173 const UInt uiLog2TrSize = rTu.GetEquivalentLog2TrSize(compID); 2174 2174 2175 const Bool extendedPrecision = pcCU->getSlice()->getSPS()->get UseExtendedPrecision();2175 const Bool extendedPrecision = pcCU->getSlice()->getSPS()->getSpsRangeExtension().getExtendedPrecisionProcessingFlag(); 2176 2176 const Int maxLog2TrDynamicRange = pcCU->getSlice()->getSPS()->getMaxLog2TrDynamicRange(toChannelType(compID)); 2177 2177 #if SVC_EXTENSION … … 2189 2189 // Represents scaling through forward transform 2190 2190 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) 2192 2192 { 2193 2193 iTransformShift = std::max<Int>(0, iTransformShift); 2194 2194 } 2195 2195 2196 const Bool bUseGolombRiceParameterAdaptation = pcCU->getSlice()->getSPS()->get UseGolombRiceParameterAdaptation();2196 const Bool bUseGolombRiceParameterAdaptation = pcCU->getSlice()->getSPS()->getSpsRangeExtension().getPersistentRiceAdaptationEnabledFlag(); 2197 2197 const UInt initialGolombRiceParameter = m_pcEstBitsSbac->golombRiceAdaptationStatistics[rTu.getGolombRiceStatisticsIndex(compID)] / RExt__GOLOMB_RICE_INCREMENT_DIVISOR; 2198 2198 UInt uiGoRiceParam = initialGolombRiceParameter; -
branches/SHM-dev/source/Lib/TLibCommon/TComWeightPrediction.cpp
r1287 r1316 226 226 227 227 const UInt numValidComponent = pcCU->getPic()->getNumberValidComponents(); 228 const Bool bUseHighPrecisionPredictionWeighting = pcSlice->getSPS()->get UseHighPrecisionPredictionWeighting();228 const Bool bUseHighPrecisionPredictionWeighting = pcSlice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag(); 229 229 230 230 if ( bBiDir )
Note: See TracChangeset for help on using the changeset viewer.