Changeset 1316 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibEncoder
- Timestamp:
- 21 Jul 2015, 20:08:08 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibEncoder
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r1307 r1316 228 228 Bool pps_extension_flags[NUM_PPS_EXTENSION_FLAGS]={false}; 229 229 230 pps_extension_flags[PPS_EXT__REXT] = ( 231 ( pcPPS->getUseTransformSkip() && (pcPPS->getTransformSkipLog2MaxSize() != 2)) 232 || pcPPS->getUseCrossComponentPrediction() 233 || ( pcPPS->getChromaQpAdjTableSize() > 0 ) 234 || ( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_LUMA) !=0 ) || ( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_CHROMA) !=0 ) 235 ) 236 ; 230 pps_extension_flags[PPS_EXT__REXT] = pcPPS->getPpsRangeExtension().settingsDifferFromDefaults(pcPPS->getUseTransformSkip()); 237 231 238 232 // Other PPS extension flags checked here. … … 277 271 { 278 272 case PPS_EXT__REXT: 279 280 if (pcPPS->getUseTransformSkip())281 273 { 282 WRITE_UVLC( pcPPS->getTransformSkipLog2MaxSize()-2, "log2_max_transform_skip_block_size_minus2"); 274 const TComPPSRExt &ppsRangeExtension = pcPPS->getPpsRangeExtension(); 275 if (pcPPS->getUseTransformSkip()) 276 { 277 WRITE_UVLC( ppsRangeExtension.getLog2MaxTransformSkipBlockSize()-2, "log2_max_transform_skip_block_size_minus2"); 278 } 279 280 WRITE_FLAG((ppsRangeExtension.getCrossComponentPredictionEnabledFlag() ? 1 : 0), "cross_component_prediction_enabled_flag" ); 281 282 WRITE_FLAG(UInt(ppsRangeExtension.getChromaQpOffsetListEnabledFlag()), "chroma_qp_offset_list_enabled_flag" ); 283 if (ppsRangeExtension.getChromaQpOffsetListEnabledFlag()) 284 { 285 WRITE_UVLC(ppsRangeExtension.getDiffCuChromaQpOffsetDepth(), "diff_cu_chroma_qp_offset_depth"); 286 WRITE_UVLC(ppsRangeExtension.getChromaQpOffsetListLen() - 1, "chroma_qp_offset_list_len_minus1"); 287 /* skip zero index */ 288 for (Int cuChromaQpOffsetIdx = 0; cuChromaQpOffsetIdx < ppsRangeExtension.getChromaQpOffsetListLen(); cuChromaQpOffsetIdx++) 289 { 290 WRITE_SVLC(ppsRangeExtension.getChromaQpOffsetListEntry(cuChromaQpOffsetIdx+1).u.comp.CbOffset, "cb_qp_offset_list[i]"); 291 WRITE_SVLC(ppsRangeExtension.getChromaQpOffsetListEntry(cuChromaQpOffsetIdx+1).u.comp.CrOffset, "cr_qp_offset_list[i]"); 292 } 293 } 294 295 WRITE_UVLC( ppsRangeExtension.getLog2SaoOffsetScale(CHANNEL_TYPE_LUMA), "log2_sao_offset_scale_luma" ); 296 WRITE_UVLC( ppsRangeExtension.getLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA), "log2_sao_offset_scale_chroma" ); 283 297 } 284 285 WRITE_FLAG((pcPPS->getUseCrossComponentPrediction() ? 1 : 0), "cross_component_prediction_enabled_flag" );286 287 WRITE_FLAG(UInt(pcPPS->getChromaQpAdjTableSize() > 0), "chroma_qp_offset_list_enabled_flag" );288 if (pcPPS->getChromaQpAdjTableSize() > 0)289 {290 WRITE_UVLC(pcPPS->getMaxCuChromaQpAdjDepth(), "diff_cu_chroma_qp_offset_depth");291 WRITE_UVLC(pcPPS->getChromaQpAdjTableSize() - 1, "chroma_qp_offset_list_len_minus1");292 /* skip zero index */293 for (Int cuChromaQpOffsetIdx = 0; cuChromaQpOffsetIdx < pcPPS->getChromaQpAdjTableSize(); cuChromaQpOffsetIdx++)294 {295 WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(cuChromaQpOffsetIdx+1).u.comp.CbOffset, "cb_qp_offset_list[i]");296 WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(cuChromaQpOffsetIdx+1).u.comp.CrOffset, "cr_qp_offset_list[i]");297 }298 }299 300 WRITE_UVLC( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_LUMA), "log2_sao_offset_scale_luma" );301 WRITE_UVLC( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_CHROMA), "log2_sao_offset_scale_chroma" );302 298 break; 299 303 300 #if SVC_EXTENSION 304 301 case PPS_EXT__MLAYER: … … 713 710 Bool sps_extension_flags[NUM_SPS_EXTENSION_FLAGS]={false}; 714 711 715 sps_extension_flags[SPS_EXT__REXT] = ( 716 pcSPS->getUseResidualRotation() 717 || pcSPS->getUseSingleSignificanceMapContext() 718 || pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_IMPLICIT) 719 || pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_EXPLICIT) 720 || pcSPS->getUseExtendedPrecision() 721 || pcSPS->getDisableIntraReferenceSmoothing() 722 || pcSPS->getUseHighPrecisionPredictionWeighting() 723 || pcSPS->getUseGolombRiceParameterAdaptation() 724 || pcSPS->getAlignCABACBeforeBypass() 725 ); 712 sps_extension_flags[SPS_EXT__REXT] = pcSPS->getSpsRangeExtension().settingsDifferFromDefaults(); 726 713 727 714 // Other SPS extension flags checked here. … … 762 749 { 763 750 case SPS_EXT__REXT: 764 765 WRITE_FLAG( (pcSPS->getUseResidualRotation() ? 1 : 0), "transform_skip_rotation_enabled_flag"); 766 WRITE_FLAG( (pcSPS->getUseSingleSignificanceMapContext() ? 1 : 0), "transform_skip_context_enabled_flag"); 767 WRITE_FLAG( (pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_IMPLICIT) ? 1 : 0), "implicit_rdpcm_enabled_flag" ); 768 WRITE_FLAG( (pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_EXPLICIT) ? 1 : 0), "explicit_rdpcm_enabled_flag" ); 769 WRITE_FLAG( (pcSPS->getUseExtendedPrecision() ? 1 : 0), "extended_precision_processing_flag" ); 770 WRITE_FLAG( (pcSPS->getDisableIntraReferenceSmoothing() ? 1 : 0), "intra_smoothing_disabled_flag" ); 771 WRITE_FLAG( (pcSPS->getUseHighPrecisionPredictionWeighting() ? 1 : 0), "high_precision_offsets_enabled_flag" ); 772 WRITE_FLAG( (pcSPS->getUseGolombRiceParameterAdaptation() ? 1 : 0), "persistent_rice_adaptation_enabled_flag" ); 773 WRITE_FLAG( (pcSPS->getAlignCABACBeforeBypass() ? 1 : 0), "cabac_bypass_alignment_enabled_flag" ); 751 { 752 const TComSPSRExt &spsRangeExtension=pcSPS->getSpsRangeExtension(); 753 754 WRITE_FLAG( (spsRangeExtension.getTransformSkipRotationEnabledFlag() ? 1 : 0), "transform_skip_rotation_enabled_flag"); 755 WRITE_FLAG( (spsRangeExtension.getTransformSkipContextEnabledFlag() ? 1 : 0), "transform_skip_context_enabled_flag"); 756 WRITE_FLAG( (spsRangeExtension.getRdpcmEnabledFlag(RDPCM_SIGNAL_IMPLICIT) ? 1 : 0), "implicit_rdpcm_enabled_flag" ); 757 WRITE_FLAG( (spsRangeExtension.getRdpcmEnabledFlag(RDPCM_SIGNAL_EXPLICIT) ? 1 : 0), "explicit_rdpcm_enabled_flag" ); 758 WRITE_FLAG( (spsRangeExtension.getExtendedPrecisionProcessingFlag() ? 1 : 0), "extended_precision_processing_flag" ); 759 WRITE_FLAG( (spsRangeExtension.getIntraSmoothingDisabledFlag() ? 1 : 0), "intra_smoothing_disabled_flag" ); 760 WRITE_FLAG( (spsRangeExtension.getHighPrecisionOffsetsEnabledFlag() ? 1 : 0), "high_precision_offsets_enabled_flag" ); 761 WRITE_FLAG( (spsRangeExtension.getPersistentRiceAdaptationEnabledFlag() ? 1 : 0), "persistent_rice_adaptation_enabled_flag" ); 762 WRITE_FLAG( (spsRangeExtension.getCabacBypassAlignmentEnabledFlag() ? 1 : 0), "cabac_bypass_alignment_enabled_flag" ); 774 763 break; 764 } 775 765 #if SVC_EXTENSION 776 766 case SPS_EXT__MLAYER: … … 1299 1289 } 1300 1290 1301 if (pcSlice->getPPS()->get ChromaQpAdjTableSize() > 0)1291 if (pcSlice->getPPS()->getPpsRangeExtension().getChromaQpOffsetListEnabledFlag()) 1302 1292 { 1303 1293 WRITE_FLAG(pcSlice->getUseChromaQpAdj(), "cu_chroma_qp_offset_enabled_flag"); … … 1715 1705 1716 1706 #if SVC_EXTENSION 1717 Int range=pcSlice->getSPS()->get UseHighPrecisionPredictionWeighting() ? (1<<pcSlice->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128;1707 Int range=pcSlice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag() ? (1<<pcSlice->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128; 1718 1708 #else 1719 Int range=pcSlice->getSPS()->get UseHighPrecisionPredictionWeighting() ? (1<<pcSlice->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128;1709 Int range=pcSlice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag() ? (1<<pcSlice->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128; 1720 1710 #endif 1721 1711 Int pred = ( range - ( ( range*wp[j].iWeight)>>(wp[j].uiLog2WeightDenom) ) ); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h
r1311 r1316 177 177 Int m_iMaxDeltaQP; // Max. absolute delta QP (1:default) 178 178 Int m_iMaxCuDQPDepth; // Max. depth for a minimum CuDQP (0:default) 179 Int m_ maxCUChromaQpAdjustmentDepth;179 Int m_diffCuChromaQpOffsetDepth; ///< If negative, then do not apply chroma qp offsets. 180 180 181 181 Int m_chromaCbQpOffset; // Chroma Cb QP Offset (0:default) … … 186 186 Bool m_bUseAdaptQpSelect; 187 187 #endif 188 Bool m_ useExtendedPrecision;189 Bool m_ useHighPrecisionPredictionWeighting;188 Bool m_extendedPrecisionProcessingFlag; 189 Bool m_highPrecisionOffsetsEnabledFlag; 190 190 Bool m_bUseAdaptiveQP; 191 191 Int m_iQPAdaptationRange; … … 206 206 Bool m_bUseCbfFastMode; 207 207 Bool m_useEarlySkipDetection; 208 Bool m_ useCrossComponentPrediction;208 Bool m_crossComponentPredictionEnabledFlag; 209 209 Bool m_reconBasedCrossCPredictionEstimate; 210 UInt m_ saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE];210 UInt m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]; 211 211 Bool m_useTransformSkip; 212 212 Bool m_useTransformSkipFast; 213 UInt m_ transformSkipLog2MaxSize;214 Bool m_ useResidualRotation;215 Bool m_ useSingleSignificanceMapContext;216 Bool m_ useGolombRiceParameterAdaptation;217 Bool m_ alignCABACBeforeBypass;218 Bool m_ useResidualDPCM[NUMBER_OF_RDPCM_SIGNALLING_MODES];213 UInt m_log2MaxTransformSkipBlockSize; 214 Bool m_transformSkipRotationEnabledFlag; 215 Bool m_transformSkipContextEnabledFlag; 216 Bool m_persistentRiceAdaptationEnabledFlag; 217 Bool m_cabacBypassAlignmentEnabledFlag; 218 Bool m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES]; 219 219 Int* m_aidQP; 220 220 UInt m_uiDeltaQpRD; … … 235 235 Bool m_bPCMInputBitDepthFlag; 236 236 Bool m_bPCMFilterDisableFlag; 237 Bool m_ disableIntraReferenceSmoothing;237 Bool m_intraSmoothingDisabledFlag; 238 238 Bool m_loopFilterAcrossTilesEnabledFlag; 239 239 Bool m_tileUniformSpacingFlag; … … 551 551 Void setMaxCuDQPDepth ( Int i ) { m_iMaxCuDQPDepth = i; } 552 552 553 Int get MaxCUChromaQpAdjustmentDepth () const { return m_maxCUChromaQpAdjustmentDepth; }554 Void set MaxCUChromaQpAdjustmentDepth (Int value) { m_maxCUChromaQpAdjustmentDepth = value; }553 Int getDiffCuChromaQpOffsetDepth () const { return m_diffCuChromaQpOffsetDepth; } 554 Void setDiffCuChromaQpOffsetDepth (Int value) { m_diffCuChromaQpOffsetDepth = value; } 555 555 556 556 Void setChromaCbQpOffset ( Int i ) { m_chromaCbQpOffset = i; } … … 565 565 #endif 566 566 567 Bool get UseExtendedPrecision () const { return m_useExtendedPrecision; }568 Void set UseExtendedPrecision (Bool value) { m_useExtendedPrecision= value; }569 570 Bool get UseHighPrecisionPredictionWeighting() const { return m_useHighPrecisionPredictionWeighting; }571 Void set UseHighPrecisionPredictionWeighting(Bool value) { m_useHighPrecisionPredictionWeighting = value; }567 Bool getExtendedPrecisionProcessingFlag () const { return m_extendedPrecisionProcessingFlag; } 568 Void setExtendedPrecisionProcessingFlag (Bool value) { m_extendedPrecisionProcessingFlag = value; } 569 570 Bool getHighPrecisionOffsetsEnabledFlag() const { return m_highPrecisionOffsetsEnabledFlag; } 571 Void setHighPrecisionOffsetsEnabledFlag(Bool value) { m_highPrecisionOffsetsEnabledFlag = value; } 572 572 573 573 Void setUseAdaptiveQP ( Bool b ) { m_bUseAdaptiveQP = b; } … … 662 662 UInt getPCMLog2MinSize () { return m_uiPCMLog2MinSize; } 663 663 664 Bool get UseCrossComponentPrediction () const { return m_useCrossComponentPrediction; }665 Void set UseCrossComponentPrediction (const Bool value) { m_useCrossComponentPrediction= value; }664 Bool getCrossComponentPredictionEnabledFlag () const { return m_crossComponentPredictionEnabledFlag; } 665 Void setCrossComponentPredictionEnabledFlag (const Bool value) { m_crossComponentPredictionEnabledFlag = value; } 666 666 Bool getUseReconBasedCrossCPredictionEstimate () const { return m_reconBasedCrossCPredictionEstimate; } 667 667 Void setUseReconBasedCrossCPredictionEstimate (const Bool value) { m_reconBasedCrossCPredictionEstimate = value; } 668 Void set SaoOffsetBitShift(ChannelType type, UInt uiBitShift) { m_saoOffsetBitShift[type] = uiBitShift; }668 Void setLog2SaoOffsetScale(ChannelType type, UInt uiBitShift) { m_log2SaoOffsetScale[type] = uiBitShift; } 669 669 670 670 Bool getUseTransformSkip () { return m_useTransformSkip; } 671 671 Void setUseTransformSkip ( Bool b ) { m_useTransformSkip = b; } 672 Bool get UseResidualRotation () const { return m_useResidualRotation; }673 Void set UseResidualRotation (const Bool value) { m_useResidualRotation= value; }674 Bool get UseSingleSignificanceMapContext () const { return m_useSingleSignificanceMapContext; }675 Void set UseSingleSignificanceMapContext (const Bool value) { m_useSingleSignificanceMapContext= value; }676 Bool get UseGolombRiceParameterAdaptation () const { return m_useGolombRiceParameterAdaptation; }677 Void set UseGolombRiceParameterAdaptation (const Bool value) { m_useGolombRiceParameterAdaptation= value; }678 Bool get AlignCABACBeforeBypass () const { return m_alignCABACBeforeBypass; }679 Void set AlignCABACBeforeBypass (const Bool value) { m_alignCABACBeforeBypass= value; }680 Bool get UseResidualDPCM (const RDPCMSignallingMode signallingMode) const { return m_useResidualDPCM[signallingMode]; }681 Void set UseResidualDPCM (const RDPCMSignallingMode signallingMode, const Bool value) { m_useResidualDPCM[signallingMode] = value; }672 Bool getTransformSkipRotationEnabledFlag () const { return m_transformSkipRotationEnabledFlag; } 673 Void setTransformSkipRotationEnabledFlag (const Bool value) { m_transformSkipRotationEnabledFlag = value; } 674 Bool getTransformSkipContextEnabledFlag () const { return m_transformSkipContextEnabledFlag; } 675 Void setTransformSkipContextEnabledFlag (const Bool value) { m_transformSkipContextEnabledFlag = value; } 676 Bool getPersistentRiceAdaptationEnabledFlag () const { return m_persistentRiceAdaptationEnabledFlag; } 677 Void setPersistentRiceAdaptationEnabledFlag (const Bool value) { m_persistentRiceAdaptationEnabledFlag = value; } 678 Bool getCabacBypassAlignmentEnabledFlag () const { return m_cabacBypassAlignmentEnabledFlag; } 679 Void setCabacBypassAlignmentEnabledFlag (const Bool value) { m_cabacBypassAlignmentEnabledFlag = value; } 680 Bool getRdpcmEnabledFlag (const RDPCMSignallingMode signallingMode) const { return m_rdpcmEnabledFlag[signallingMode]; } 681 Void setRdpcmEnabledFlag (const RDPCMSignallingMode signallingMode, const Bool value) { m_rdpcmEnabledFlag[signallingMode] = value; } 682 682 Bool getUseTransformSkipFast () { return m_useTransformSkipFast; } 683 683 Void setUseTransformSkipFast ( Bool b ) { m_useTransformSkipFast = b; } 684 UInt get TransformSkipLog2MaxSize () const { return m_transformSkipLog2MaxSize; }685 Void set TransformSkipLog2MaxSize ( UInt u ) { m_transformSkipLog2MaxSize = u; }686 Void setDisableIntraReferenceSmoothing (Bool bValue) { m_disableIntraReferenceSmoothing=bValue; }687 Bool getDisableIntraReferenceSmoothing () const { return m_disableIntraReferenceSmoothing; }684 UInt getLog2MaxTransformSkipBlockSize () const { return m_log2MaxTransformSkipBlockSize; } 685 Void setLog2MaxTransformSkipBlockSize ( UInt u ) { m_log2MaxTransformSkipBlockSize = u; } 686 Bool getIntraSmoothingDisabledFlag () const { return m_intraSmoothingDisabledFlag; } 687 Void setIntraSmoothingDisabledFlag (Bool bValue) { m_intraSmoothingDisabledFlag=bValue; } 688 688 689 689 Int* getdQPs () { return m_aidQP; } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCu.cpp
r1314 r1316 97 97 } 98 98 99 m_bEncodeDQP = false;100 m_ CodeChromaQpAdjFlag= false;101 m_ ChromaQpAdjIdc= 0;99 m_bEncodeDQP = false; 100 m_stillToCodeChromaQpOffsetFlag = false; 101 m_cuChromaQpOffsetIdxPlus1 = 0; 102 102 103 103 // initialize partition order. … … 486 486 } 487 487 488 m_ ChromaQpAdjIdc= 0;488 m_cuChromaQpOffsetIdxPlus1 = 0; 489 489 if (pcSlice->getUseChromaQpAdj()) 490 490 { … … 495 495 */ 496 496 Int lgMinCuSize = sps.getLog2MinCodingBlockSize() + 497 std::max<Int>(0, sps.getLog2DiffMaxMinCodingBlockSize()-Int(pps.get MaxCuChromaQpAdjDepth()));498 m_ ChromaQpAdjIdc = ((uiLPelX >> lgMinCuSize) + (uiTPelY >> lgMinCuSize)) % (pps.getChromaQpAdjTableSize() + 1);497 std::max<Int>(0, sps.getLog2DiffMaxMinCodingBlockSize()-Int(pps.getPpsRangeExtension().getDiffCuChromaQpOffsetDepth())); 498 m_cuChromaQpOffsetIdxPlus1 = ((uiLPelX >> lgMinCuSize) + (uiTPelY >> lgMinCuSize)) % (pps.getPpsRangeExtension().getChromaQpOffsetListLen() + 1); 499 499 } 500 500 … … 1095 1095 } 1096 1096 1097 if( uiDepth == pps.get MaxCuChromaQpAdjDepth() && pcSlice->getUseChromaQpAdj())1097 if( uiDepth == pps.getPpsRangeExtension().getDiffCuChromaQpOffsetDepth() && pcSlice->getUseChromaQpAdj()) 1098 1098 { 1099 1099 setCodeChromaQpAdjFlag(true); … … 1122 1122 } 1123 1123 1124 if( uiDepth <= pps.get MaxCuChromaQpAdjDepth() && pcSlice->getUseChromaQpAdj())1124 if( uiDepth <= pps.getPpsRangeExtension().getDiffCuChromaQpOffsetDepth() && pcSlice->getUseChromaQpAdj()) 1125 1125 { 1126 1126 setCodeChromaQpAdjFlag(true); … … 1357 1357 rpcTempCU->setPredModeSubParts( MODE_INTER, 0, uhDepth ); // interprets depth relative to CTU level 1358 1358 rpcTempCU->setCUTransquantBypassSubParts( bTransquantBypassFlag, 0, uhDepth ); 1359 rpcTempCU->setChromaQpAdjSubParts( bTransquantBypassFlag ? 0 : m_ ChromaQpAdjIdc, 0, uhDepth );1359 rpcTempCU->setChromaQpAdjSubParts( bTransquantBypassFlag ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uhDepth ); 1360 1360 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to CTU level 1361 1361 rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to CTU level … … 1453 1453 rpcTempCU->setPartSizeSubParts ( ePartSize, 0, uhDepth ); 1454 1454 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 1455 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_ ChromaQpAdjIdc, 0, uhDepth );1455 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uhDepth ); 1456 1456 1457 1457 #if SVC_EXTENSION … … 1508 1508 rpcTempCU->setPartSizeSubParts( eSize, 0, uiDepth ); 1509 1509 rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth ); 1510 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_ ChromaQpAdjIdc, 0, uiDepth );1510 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uiDepth ); 1511 1511 1512 1512 Pel resiLuma[NUMBER_OF_STORED_RESIDUAL_TYPES][MAX_CU_SIZE * MAX_CU_SIZE]; … … 1573 1573 rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth ); 1574 1574 rpcTempCU->setTrIdxSubParts ( 0, 0, uiDepth ); 1575 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_ ChromaQpAdjIdc, 0, uiDepth );1575 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uiDepth ); 1576 1576 1577 1577 m_pcPredSearch->IPCMSearch( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth]); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCu.h
r1307 r1316 81 81 // Data : encoder control 82 82 Bool m_bEncodeDQP; 83 Bool m_ CodeChromaQpAdjFlag;84 Int m_ ChromaQpAdjIdc;83 Bool m_stillToCodeChromaQpOffsetFlag; //indicates whether chroma QP offset flag needs to coded at this particular CU granularity. 84 Int m_cuChromaQpOffsetIdxPlus1; // if 0, then cu_chroma_qp_offset_flag will be 0, otherwise cu_chroma_qp_offset_flag will be 1. 85 85 86 86 // Access channel … … 162 162 Void setdQPFlag ( Bool b ) { m_bEncodeDQP = b; } 163 163 164 Bool getCodeChromaQpAdjFlag() { return m_ CodeChromaQpAdjFlag; }165 Void setCodeChromaQpAdjFlag( Bool b ) { m_ CodeChromaQpAdjFlag = b; }164 Bool getCodeChromaQpAdjFlag() { return m_stillToCodeChromaQpOffsetFlag; } 165 Void setCodeChromaQpAdjFlag( Bool b ) { m_stillToCodeChromaQpOffsetFlag = b; } 166 166 167 167 #if ADAPTIVE_QP_SELECTION -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSbac.cpp
r1315 r1316 839 839 TComDataCU *pcCU = rTu.getCU(); 840 840 841 if( isLuma(compID) || !pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction() )841 if( isLuma(compID) || !pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag() ) 842 842 { 843 843 return; … … 915 915 { 916 916 Int internalIdc = cu->getChromaQpAdj( absPartIdx ); 917 Int tableSize = cu->getSlice()->getPPS()->getChromaQpAdjTableSize();917 Int chromaQpOffsetListLen = cu->getSlice()->getPPS()->getPpsRangeExtension().getChromaQpOffsetListLen(); 918 918 /* internal_idc == 0 => flag = 0 919 919 * internal_idc > 1 => code idc value (if table size warrents) */ 920 920 m_pcBinIf->encodeBin( internalIdc > 0, m_ChromaQpAdjFlagSCModel.get( 0, 0, 0 ) ); 921 921 922 if (internalIdc > 0 && tableSize> 1)923 { 924 xWriteUnaryMaxSymbol( internalIdc - 1, &m_ChromaQpAdjIdcSCModel.get( 0, 0, 0 ), 0, tableSize- 1 );922 if (internalIdc > 0 && chromaQpOffsetListLen > 1) 923 { 924 xWriteUnaryMaxSymbol( internalIdc - 1, &m_ChromaQpAdjIdcSCModel.get( 0, 0, 0 ), 0, chromaQpOffsetListLen - 1 ); 925 925 } 926 926 } … … 1013 1013 } 1014 1014 1015 if (!TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(component), pcCU->getSlice()->getPPS()->get TransformSkipLog2MaxSize()))1015 if (!TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(component), pcCU->getSlice()->getPPS()->getPpsRangeExtension().getLog2MaxTransformSkipBlockSize())) 1016 1016 { 1017 1017 return; … … 1252 1252 1253 1253 const ChannelType channelType = toChannelType(compID); 1254 const Bool extendedPrecision = sps.get UseExtendedPrecision();1255 1256 const Bool alignCABACBeforeBypass = sps.get AlignCABACBeforeBypass();1254 const Bool extendedPrecision = sps.getSpsRangeExtension().getExtendedPrecisionProcessingFlag(); 1255 1256 const Bool alignCABACBeforeBypass = sps.getSpsRangeExtension().getCabacBypassAlignmentEnabledFlag(); 1257 1257 const Int maxLog2TrDynamicRange = sps.getMaxLog2TrDynamicRange(channelType); 1258 1258 … … 1309 1309 //-------------------------------------------------------------------------------------------------- 1310 1310 1311 const Bool bUseGolombRiceParameterAdaptation = sps.get UseGolombRiceParameterAdaptation();1311 const Bool bUseGolombRiceParameterAdaptation = sps.getSpsRangeExtension().getPersistentRiceAdaptationEnabledFlag(); 1312 1312 UInt ¤tGolombRiceStatistic = m_golombRiceAdaptationStatistics[rTu.getGolombRiceStatisticsIndex(compID)]; 1313 1313 -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSearch.cpp
r1315 r1316 968 968 TCoeff* pcCoeff = bRealCoeff ? pcCU->getCoeff(component) : m_ppcQTTempCoeff[component][uiQTLayer]; 969 969 970 if (isChroma(component) && (pcCU->getCbf( rTu.GetAbsPartIdxTU(), COMPONENT_Y, uiTrMode ) != 0) && pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction() )970 if (isChroma(component) && (pcCU->getCbf( rTu.GetAbsPartIdxTU(), COMPONENT_Y, uiTrMode ) != 0) && pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag() ) 971 971 { 972 972 m_pcEntropyCoder->encodeCrossComponentPrediction( rTu, component ); … … 1173 1173 #endif 1174 1174 { 1175 const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(compID, uiChFinalMode, uiWidth, uiHeight, chFmt, sps.get DisableIntraReferenceSmoothing());1175 const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(compID, uiChFinalMode, uiWidth, uiHeight, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag()); 1176 1176 1177 1177 initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sDebug) ); … … 1234 1234 } 1235 1235 1236 if (pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction())1236 if (pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 1237 1237 { 1238 1238 if (bUseCrossCPrediction) … … 1307 1307 Pel* pRecIPred = piRecIPred; 1308 1308 1309 if (pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction())1309 if (pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 1310 1310 { 1311 1311 if (bUseCrossCPrediction) … … 1465 1465 Bool checkTransformSkip = pcCU->getSlice()->getPPS()->getUseTransformSkip(); 1466 1466 Int bestModeId[MAX_NUM_COMPONENT] = { 0, 0, 0}; 1467 checkTransformSkip &= TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(COMPONENT_Y), pcCU->getSlice()->getPPS()->get TransformSkipLog2MaxSize());1467 checkTransformSkip &= TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(COMPONENT_Y), pcCU->getSlice()->getPPS()->getPpsRangeExtension().getLog2MaxTransformSkipBlockSize()); 1468 1468 checkTransformSkip &= (!pcCU->getCUTransquantBypass(0)); 1469 1469 … … 1533 1533 } 1534 1534 1535 if (pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction())1535 if (pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 1536 1536 { 1537 1537 const Int xOffset = rTu.getRect( COMPONENT_Y ).x0; … … 1600 1600 dSingleCost = m_pcRdCost->calcRdCost( uiSingleBits, uiSingleDistLuma ); 1601 1601 1602 if (pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction())1602 if (pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 1603 1603 { 1604 1604 const Int xOffset = rTu.getRect( COMPONENT_Y ).x0; … … 1673 1673 dRDCost += dSplitCost; 1674 1674 1675 if (pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction())1675 if (pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 1676 1676 { 1677 1677 const Int xOffset = rTu.getRect( COMPONENT_Y ).x0; … … 1947 1947 1948 1948 Bool checkTransformSkip = pcCU->getSlice()->getPPS()->getUseTransformSkip(); 1949 checkTransformSkip &= TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(COMPONENT_Cb), pcCU->getSlice()->getPPS()->get TransformSkipLog2MaxSize());1949 checkTransformSkip &= TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(COMPONENT_Cb), pcCU->getSlice()->getPPS()->getPpsRangeExtension().getLog2MaxTransformSkipBlockSize()); 1950 1950 1951 1951 if ( m_pcEncCfg->getUseTransformSkipFast() ) 1952 1952 { 1953 checkTransformSkip &= TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(COMPONENT_Y), pcCU->getSlice()->getPPS()->get TransformSkipLog2MaxSize());1953 checkTransformSkip &= TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(COMPONENT_Y), pcCU->getSlice()->getPPS()->getPpsRangeExtension().getLog2MaxTransformSkipBlockSize()); 1954 1954 1955 1955 if (checkTransformSkip) … … 1995 1995 1996 1996 const Bool checkCrossComponentPrediction = (pcCU->getIntraDir(CHANNEL_TYPE_CHROMA, subTUAbsPartIdx) == DM_CHROMA_IDX) 1997 && pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction()1997 && pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag() 1998 1998 && (pcCU->getCbf(subTUAbsPartIdx, COMPONENT_Y, uiTrDepth) != 0); 1999 1999 … … 2323 2323 #endif 2324 2324 2325 const Bool bUseFilter=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiMode, puRect.width, puRect.height, chFmt, sps.get DisableIntraReferenceSmoothing());2325 const Bool bUseFilter=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag()); 2326 2326 2327 2327 predIntraAng( COMPONENT_Y, uiMode, piOrg, uiStride, piPred, uiStride, tuRecurseWithPU, bAboveAvail, bLeftAvail, bUseFilter, TComPrediction::UseDPCMForFirstPassIntraEstimation(tuRecurseWithPU, uiMode) ); … … 2435 2435 xSetIntraResultLumaQT( pcRecoYuv, tuRecurseWithPU ); 2436 2436 2437 if (pps.get UseCrossComponentPrediction())2437 if (pps.getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 2438 2438 { 2439 2439 const Int xOffset = tuRecurseWithPU.getRect( COMPONENT_Y ).x0; … … 2511 2511 xSetIntraResultLumaQT( pcRecoYuv, tuRecurseWithPU ); 2512 2512 2513 if (pps.get UseCrossComponentPrediction())2513 if (pps.getPpsRangeExtension().getCrossComponentPredictionEnabledFlag()) 2514 2514 { 2515 2515 const Int xOffset = tuRecurseWithPU.getRect( COMPONENT_Y ).x0; … … 4762 4762 4763 4763 checkTransformSkip[compID] = pcCU->getSlice()->getPPS()->getUseTransformSkip() && 4764 TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(compID), pcCU->getSlice()->getPPS()->get TransformSkipLog2MaxSize()) &&4764 TUCompRectHasAssociatedTransformSkipFlag(rTu.getRect(compID), pcCU->getSlice()->getPPS()->getPpsRangeExtension().getLog2MaxTransformSkipBlockSize()) && 4765 4765 (!pcCU->isLosslessCoded(0)); 4766 4766 … … 4783 4783 #endif 4784 4784 const Bool isCrossCPredictionAvailable = isChroma(compID) 4785 && pcCU->getSlice()->getPPS()->get UseCrossComponentPrediction()4785 && pcCU->getSlice()->getPPS()->getPpsRangeExtension().getCrossComponentPredictionEnabledFlag() 4786 4786 && (pcCU->getCbf(subTUAbsPartIdx, COMPONENT_Y, uiTrMode) != 0); 4787 4787 -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r1307 r1316 502 502 rpcSlice->setSliceChromaQpDelta( COMPONENT_Cb, 0 ); 503 503 rpcSlice->setSliceChromaQpDelta( COMPONENT_Cr, 0 ); 504 rpcSlice->setUseChromaQpAdj( rpcSlice->getPPS()->get ChromaQpAdjTableSize() > 0);504 rpcSlice->setUseChromaQpAdj( rpcSlice->getPPS()->getPpsRangeExtension().getChromaQpOffsetListEnabledFlag() ); 505 505 rpcSlice->setNumRefIdx(REF_PIC_LIST_0,m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive); 506 506 rpcSlice->setNumRefIdx(REF_PIC_LIST_1,m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp
r1309 r1316 121 121 if (m_bUseSAO) 122 122 { 123 m_cEncSAO.create( getSourceWidth(), getSourceHeight(), m_chromaFormatIDC, m_maxCUWidth, m_maxCUHeight, m_maxTotalCUDepth, m_ saoOffsetBitShift[CHANNEL_TYPE_LUMA], m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA] );123 m_cEncSAO.create( getSourceWidth(), getSourceHeight(), m_chromaFormatIDC, m_maxCUWidth, m_maxCUHeight, m_maxTotalCUDepth, m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA], m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] ); 124 124 #if SAO_ENCODE_ALLOW_USE_PREDEBLOCK 125 125 m_cEncSAO.createEncData(getSaoCtuBoundary()); … … 949 949 } 950 950 951 m_cSPS.setUseExtendedPrecision(m_useExtendedPrecision);952 m_cSPS.setUseHighPrecisionPredictionWeighting(m_useHighPrecisionPredictionWeighting);953 954 951 m_cSPS.setUseSAO( m_bUseSAO ); 955 m_cSPS.setUseResidualRotation(m_useResidualRotation);956 m_cSPS.setUseSingleSignificanceMapContext(m_useSingleSignificanceMapContext);957 m_cSPS.setUseGolombRiceParameterAdaptation(m_useGolombRiceParameterAdaptation);958 m_cSPS.setAlignCABACBeforeBypass(m_alignCABACBeforeBypass);959 960 for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++)961 {962 m_cSPS.setUseResidualDPCM(RDPCMSignallingMode(signallingModeIndex), m_useResidualDPCM[signallingModeIndex]);963 }964 952 965 953 m_cSPS.setMaxTLayers( m_maxTempLayer ); … … 976 964 977 965 m_cSPS.setPCMFilterDisableFlag ( m_bPCMFilterDisableFlag ); 978 m_cSPS.setDisableIntraReferenceSmoothing( m_disableIntraReferenceSmoothing );979 966 m_cSPS.setScalingListFlag ( (m_useScalingListId == SCALING_LIST_OFF) ? 0 : 1 ); 980 967 m_cSPS.setUseStrongIntraSmoothing( m_useStrongIntraSmoothing ); … … 1032 1019 m_cSPS.getVuiParameters()->setHrdParametersPresentFlag( true ); 1033 1020 } 1021 1022 // Set up SPS range extension settings 1023 m_cSPS.getSpsRangeExtension().setTransformSkipRotationEnabledFlag(m_transformSkipRotationEnabledFlag); 1024 m_cSPS.getSpsRangeExtension().setTransformSkipContextEnabledFlag(m_transformSkipContextEnabledFlag); 1025 for (UInt signallingModeIndex = 0; signallingModeIndex < NUMBER_OF_RDPCM_SIGNALLING_MODES; signallingModeIndex++) 1026 { 1027 m_cSPS.getSpsRangeExtension().setRdpcmEnabledFlag(RDPCMSignallingMode(signallingModeIndex), m_rdpcmEnabledFlag[signallingModeIndex]); 1028 } 1029 m_cSPS.getSpsRangeExtension().setExtendedPrecisionProcessingFlag(m_extendedPrecisionProcessingFlag); 1030 m_cSPS.getSpsRangeExtension().setIntraSmoothingDisabledFlag( m_intraSmoothingDisabledFlag ); 1031 m_cSPS.getSpsRangeExtension().setHighPrecisionOffsetsEnabledFlag(m_highPrecisionOffsetsEnabledFlag); 1032 m_cSPS.getSpsRangeExtension().setPersistentRiceAdaptationEnabledFlag(m_persistentRiceAdaptationEnabledFlag); 1033 m_cSPS.getSpsRangeExtension().setCabacBypassAlignmentEnabledFlag(m_cabacBypassAlignmentEnabledFlag); 1034 1034 } 1035 1035 … … 1066 1066 } 1067 1067 1068 if ( m_maxCUChromaQpAdjustmentDepth >= 0 ) 1069 { 1070 m_cPPS.setMaxCuChromaQpAdjDepth(m_maxCUChromaQpAdjustmentDepth); 1071 m_cPPS.setChromaQpAdjTableAt(1, 6, 6); 1068 if ( m_diffCuChromaQpOffsetDepth >= 0 ) 1069 { 1070 m_cPPS.getPpsRangeExtension().setDiffCuChromaQpOffsetDepth(m_diffCuChromaQpOffsetDepth); 1071 m_cPPS.getPpsRangeExtension().clearChromaQpOffsetList(); 1072 m_cPPS.getPpsRangeExtension().setChromaQpOffsetListEntry(1, 6, 6); 1072 1073 /* todo, insert table entries from command line (NB, 0 should not be touched) */ 1073 1074 } 1074 1075 else 1075 1076 { 1076 m_cPPS.setMaxCuChromaQpAdjDepth(0); 1077 m_cPPS.clearChromaQpAdjTable(); 1078 } 1077 m_cPPS.getPpsRangeExtension().setDiffCuChromaQpOffsetDepth(0); 1078 m_cPPS.getPpsRangeExtension().clearChromaQpOffsetList(); 1079 } 1080 m_cPPS.getPpsRangeExtension().setCrossComponentPredictionEnabledFlag(m_crossComponentPredictionEnabledFlag); 1081 m_cPPS.getPpsRangeExtension().setLog2SaoOffsetScale(CHANNEL_TYPE_LUMA, m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA ]); 1082 m_cPPS.getPpsRangeExtension().setLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA, m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA]); 1079 1083 1080 1084 m_cPPS.setQpOffset(COMPONENT_Cb, m_chromaCbQpOffset ); … … 1085 1089 m_cPPS.setUseWP( m_useWeightedPred ); 1086 1090 m_cPPS.setWPBiPred( m_useWeightedBiPred ); 1087 m_cPPS.setUseCrossComponentPrediction(m_useCrossComponentPrediction);1088 m_cPPS.setSaoOffsetBitShift(CHANNEL_TYPE_LUMA, m_saoOffsetBitShift[CHANNEL_TYPE_LUMA ]);1089 m_cPPS.setSaoOffsetBitShift(CHANNEL_TYPE_CHROMA, m_saoOffsetBitShift[CHANNEL_TYPE_CHROMA]);1090 1091 m_cPPS.setOutputFlagPresentFlag( false ); 1091 1092 m_cPPS.setSignHideFlag(getSignHideFlag()); … … 1145 1146 m_cPPS.setTransquantBypassEnableFlag(getTransquantBypassEnableFlag()); 1146 1147 m_cPPS.setUseTransformSkip( m_useTransformSkip ); 1147 m_cPPS. setTransformSkipLog2MaxSize( m_transformSkipLog2MaxSize );1148 m_cPPS.getPpsRangeExtension().setLog2MaxTransformSkipBlockSize( m_log2MaxTransformSkipBlockSize ); 1148 1149 1149 1150 if (m_sliceSegmentMode != NO_SLICES) -
branches/SHM-dev/source/Lib/TLibEncoder/WeightPredAnalysis.cpp
r1287 r1316 112 112 } 113 113 114 const Int fixedBitShift = (slice->getSPS()->get UseHighPrecisionPredictionWeighting())?RExt__PREDICTION_WEIGHTING_ANALYSIS_DC_PRECISION:0;114 const Int fixedBitShift = (slice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag())?RExt__PREDICTION_WEIGHTING_ANALYSIS_DC_PRECISION:0; 115 115 weightACDCParam[compID].iDC = (((iOrgDC<<fixedBitShift)+(iSample>>1)) / iSample); 116 116 weightACDCParam[compID].iAC = iOrgAC; … … 204 204 { 205 205 const Int numComp = slice->getPic()->getPicYuvOrg()->getNumberValidComponents(); 206 const Bool bUseHighPrecisionWeighting = slice->getSPS()->get UseHighPrecisionPredictionWeighting();206 const Bool bUseHighPrecisionWeighting = slice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag(); 207 207 const Int numPredDir = slice->isInterP() ? 1 : 2; 208 208 … … 215 215 for ( Int refIdxTemp = 0; refIdxTemp < slice->getNumRefIdx(eRefPicList); refIdxTemp++ ) 216 216 { 217 WPACDCParam *currWeightACDCParam = slice->getWpAcDcParam(); 218 WPACDCParam *refWeightACDCParam = slice->getRefPic(eRefPicList, refIdxTemp)->getSlice(0)->getWpAcDcParam(); 217 WPACDCParam *currWeightACDCParam, *refWeightACDCParam; 218 slice->getWpAcDcParam(currWeightACDCParam); 219 slice->getRefPic(eRefPicList, refIdxTemp)->getSlice(0)->getWpAcDcParam(refWeightACDCParam); 219 220 220 221 #if SVC_EXTENSION … … 225 226 if( validILRPic ) 226 227 { 227 refWeightACDCParam = slice->getWpAcDcParam();228 slice->getWpAcDcParam(refWeightACDCParam); 228 229 } 229 230 #endif … … 332 333 const Int iDefaultWeight = ((Int)1<<log2Denom); 333 334 const Int iNumPredDir = slice->isInterP() ? 1 : 2; 334 const Bool useHighPrecisionPredictionWeighting = slice->getSPS()->get UseHighPrecisionPredictionWeighting();335 const Bool useHighPrecisionPredictionWeighting = slice->getSPS()->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag(); 335 336 336 337 assert (iNumPredDir <= Int(NUM_REF_PIC_LIST_01));
Note: See TracChangeset for help on using the changeset viewer.