Changeset 537 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
- Timestamp:
- 13 Jul 2013, 15:51:26 (12 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/CommonDef.h
r479 r537 115 115 #define MAX_NUM_REF_PICS 16 ///< max. number of pictures used for reference 116 116 #define MAX_NUM_REF 16 ///< max. number of entries in picture reference list 117 #if !L0034_COMBINED_LIST_CLEANUP118 #define MAX_NUM_REF_LC MAX_NUM_REF_PICS // TODO: remove this macro definition (leftover from combined list concept)119 #endif120 117 121 118 #define MAX_UINT 0xFFFFFFFFU ///< max. value of unsigned 32-bit integer -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/NAL.h
r446 r537 94 94 || m_nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R; 95 95 } 96 #if L0045_NON_NESTED_SEI_RESTRICTIONS97 96 Bool isSei() 98 97 { … … 105 104 return ( (UInt)m_nalUnitType < 32 ); 106 105 } 107 #endif108 106 }; 109 107 -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/SEI.cpp
r446 r537 39 39 #include "SEI.h" 40 40 41 #if J0149_TONE_MAPPING_SEI42 41 //Table D-7 Meaning of camera iso sensitivity indicator and exposure index rating indicator 43 42 Int Table_exp_indicator[32] = {0, 10, 12, 16, 20, 25, 32, 40, 50, 64, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 8000, -1}; 44 #endif45 43 46 44 SEIMessages getSeisByType(SEIMessages &seiList, SEI::PayloadType seiType) -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/SEI.h
r446 r537 124 124 125 125 SEIActiveParameterSets() 126 #if !L0047_APS_FLAGS127 :numSpsIdsMinus1(0)128 #else129 126 : activeVPSId (0) 130 127 , m_fullRandomAccessFlag (false) 131 128 , m_noParamSetUpdateFlag (false) 132 129 , numSpsIdsMinus1 (0) 133 #endif134 130 {} 135 131 virtual ~SEIActiveParameterSets() {} 136 132 137 133 Int activeVPSId; 138 #if L0047_APS_FLAGS139 134 Bool m_fullRandomAccessFlag; 140 135 Bool m_noParamSetUpdateFlag; 141 #endif142 136 Int numSpsIdsMinus1; 143 137 std::vector<Int> activeSeqParamSetId; … … 150 144 151 145 SEIBufferingPeriod() 152 #if L0044_CPB_DPB_DELAY_OFFSET153 146 : m_bpSeqParameterSetId (0) 154 147 , m_rapCpbParamsPresentFlag (false) … … 161 154 ::memset(m_initialAltCpbRemovalDelayOffset, 0, sizeof(m_initialAltCpbRemovalDelayOffset)); 162 155 } 163 #else164 {}165 #endif166 156 virtual ~SEIBufferingPeriod() {} 167 157 168 158 UInt m_bpSeqParameterSetId; 169 159 Bool m_rapCpbParamsPresentFlag; 170 #if L0044_CPB_DPB_DELAY_OFFSET171 160 Bool m_cpbDelayOffset; 172 161 Bool m_dpbDelayOffset; 173 #endif174 162 UInt m_initialCpbRemovalDelay [MAX_CPB_CNT][2]; 175 163 UInt m_initialCpbRemovalDelayOffset [MAX_CPB_CNT][2]; 176 164 UInt m_initialAltCpbRemovalDelay [MAX_CPB_CNT][2]; 177 165 UInt m_initialAltCpbRemovalDelayOffset[MAX_CPB_CNT][2]; 178 #if L0328_SPLICING179 166 Bool m_concatenationFlag; 180 167 UInt m_auCpbRemovalDelayDelta; 181 #endif182 168 }; 183 169 class SEIPictureTiming : public SEI … … 188 174 SEIPictureTiming() 189 175 : m_picStruct (0) 190 #if L0046_RENAME_PROG_SRC_IDC191 176 , m_sourceScanType (0) 192 #else193 , m_progressiveSourceIdc (0)194 #endif195 177 , m_duplicateFlag (false) 196 #if L0044_DU_DPB_OUTPUT_DELAY_HRD197 178 , m_picDpbOutputDuDelay (0) 198 #endif199 179 , m_numNalusInDuMinus1 (NULL) 200 180 , m_duCpbRemovalDelayMinus1 (NULL) … … 213 193 214 194 UInt m_picStruct; 215 #if L0046_RENAME_PROG_SRC_IDC216 195 UInt m_sourceScanType; 217 #else218 UInt m_progressiveSourceIdc;219 #endif220 196 Bool m_duplicateFlag; 221 197 222 198 UInt m_auCpbRemovalDelay; 223 199 UInt m_picDpbOutputDelay; 224 #if L0044_DU_DPB_OUTPUT_DELAY_HRD225 200 UInt m_picDpbOutputDuDelay; 226 #endif227 201 UInt m_numDecodingUnitsMinus1; 228 202 Bool m_duCommonCpbRemovalDelayFlag; … … 240 214 : m_decodingUnitIdx(0) 241 215 , m_duSptCpbRemovalDelay(0) 242 #if L0044_DU_DPB_OUTPUT_DELAY_HRD243 216 , m_dpbOutputDuDelayPresentFlag(false) 244 217 , m_picSptDpbOutputDuDelay(0) 245 #endif246 218 {} 247 219 virtual ~SEIDecodingUnitInfo() {} 248 220 Int m_decodingUnitIdx; 249 221 Int m_duSptCpbRemovalDelay; 250 #if L0044_DU_DPB_OUTPUT_DELAY_HRD251 222 Bool m_dpbOutputDuDelayPresentFlag; 252 223 Int m_picSptDpbOutputDuDelay; 253 #endif254 224 }; 255 225 … … 290 260 Int m_frame1GridPositionY; 291 261 Int m_arrangementReservedByte; 292 #if L0045_PERSISTENCE_FLAGS293 262 Bool m_arrangementPersistenceFlag; 294 #else295 Int m_arrangementRepetetionPeriod;296 #endif297 263 Bool m_upsampledAspectRatio; 298 264 }; … … 305 271 SEIDisplayOrientation() 306 272 : cancelFlag(true) 307 #if L0045_PERSISTENCE_FLAGS308 273 , persistenceFlag(0) 309 #else310 , repetitionPeriod(1)311 #endif312 274 , extensionFlag(false) 313 275 {} … … 319 281 320 282 UInt anticlockwiseRotation; 321 #if L0045_PERSISTENCE_FLAGS322 283 Bool persistenceFlag; 323 #else324 UInt repetitionPeriod;325 #endif326 284 Bool extensionFlag; 327 285 }; … … 355 313 }; 356 314 357 #if L0208_SOP_DESCRIPTION_SEI358 315 class SEISOPDescription : public SEI 359 316 { … … 372 329 Int m_sopDescPocDelta[MAX_NUM_PICS_IN_SOP]; 373 330 }; 374 #endif 375 376 #if J0149_TONE_MAPPING_SEI 331 377 332 class SEIToneMappingInfo : public SEI 378 333 { … … 407 362 Int m_extendedWhiteLevelLumaCodeValue; 408 363 }; 409 #endif410 364 411 365 typedef std::list<SEI*> SEIMessages; … … 420 374 Void deleteSEIs (SEIMessages &seiList); 421 375 422 #if K0180_SCALABLE_NESTING_SEI423 376 class SEIScalableNesting : public SEI 424 377 { … … 450 403 SEIMessages m_nestedSEIs; 451 404 }; 452 #endif453 405 454 406 //! \} -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComBitStream.h
r446 r537 193 193 } 194 194 195 Void peekPreviousByte( UInt &byte ) 196 { 197 assert(m_fifo_idx > 0); 198 byte = (*m_fifo)[m_fifo_idx - 1]; 199 } 200 195 201 Void readOutTrailingBits (); 196 202 UChar getHeldBits () { return m_held_bits; } -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp
r534 r537 136 136 #endif 137 137 #endif 138 139 138 m_bDecSubCu = false; 140 139 m_sliceStartCU = 0; … … 143 142 m_pDvInfo = NULL; 144 143 #endif 145 146 144 #if H_3D_VSP 147 145 m_piVSPFlag = NULL; 148 146 #endif 149 150 147 #if H_3D_ARP 151 148 m_puhARPW = NULL; 152 149 #endif 153 154 150 #if H_3D_IC 155 151 m_pbICFlag = NULL; … … 783 779 } 784 780 785 UInt uiTmp = uhWidth*uhHeight;786 787 781 if(getPic()->getPicSym()->getInverseCUOrderMap(getAddr())*m_pcPic->getNumPartInCU()+m_uiAbsIdxInLCU >= getSlice()->getSliceSegmentCurStartCUAddr()) 788 782 { 789 783 m_acCUMvField[0].clearMvField(); 790 784 m_acCUMvField[1].clearMvField(); 791 uiTmp = uhWidth*uhHeight;785 UInt uiTmp = uhWidth*uhHeight; 792 786 793 787 memset( m_pcTrCoeffY, 0, uiTmp * sizeof( *m_pcTrCoeffY ) ); … … 1056 1050 m_uiCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ]; 1057 1051 1058 UInt uiWidth = g_uiMaxCUWidth >> uiDepth;1059 UInt uiHeight = g_uiMaxCUHeight >> uiDepth;1060 1061 1052 m_skipFlag=pcCU->getSkipFlag() + uiPart; 1062 1053 … … 1139 1130 m_apcCUColocated[1] = pcCU->getCUColocated(REF_PIC_LIST_1); 1140 1131 1141 UInt uiTmp = uiWidth*uiHeight;1142 1132 UInt uiMaxCuWidth=pcCU->getSlice()->getSPS()->getMaxCUWidth(); 1143 1133 UInt uiMaxCuHeight=pcCU->getSlice()->getSPS()->getMaxCUHeight(); … … 1151 1141 m_pcIPCMSampleY = pcCU->getPCMSampleY() + uiCoffOffset; 1152 1142 1153 uiTmp >>= 2;1154 1143 uiCoffOffset >>=2; 1155 1144 m_pcTrCoeffCb=pcCU->getCoeffCb() + uiCoffOffset; … … 1352 1341 memcpy( m_sliceStartCU + uiOffset, pcCU->m_sliceStartCU, sizeof( UInt ) * uiNumPartition ); 1353 1342 memcpy( m_sliceSegmentStartCU + uiOffset, pcCU->m_sliceSegmentStartCU, sizeof( UInt ) * uiNumPartition ); 1354 1355 1343 #if H_3D_ARP 1356 1344 memcpy( m_puhARPW + uiOffset, pcCU->getARPW(), iSizeInUchar ); … … 1430 1418 #endif 1431 1419 #endif 1432 1433 1420 memcpy( rpcCU->getDepth() + m_uiAbsIdxInLCU, m_puhDepth, iSizeInUchar ); 1434 1421 memcpy( rpcCU->getWidth() + m_uiAbsIdxInLCU, m_puhWidth, iSizeInUchar ); … … 1465 1452 memcpy( rpcCU->m_sliceStartCU + m_uiAbsIdxInLCU, m_sliceStartCU, sizeof( UInt ) * m_uiNumPartition ); 1466 1453 memcpy( rpcCU->m_sliceSegmentStartCU + m_uiAbsIdxInLCU, m_sliceSegmentStartCU, sizeof( UInt ) * m_uiNumPartition ); 1467 1468 1454 #if H_3D_ARP 1469 1455 memcpy( rpcCU->getARPW() + m_uiAbsIdxInLCU, m_puhARPW, iSizeInUchar ); … … 1539 1525 #endif 1540 1526 #endif 1541 1542 1527 memcpy( rpcCU->getDepth() + uiPartOffset, m_puhDepth, iSizeInUchar ); 1543 1528 memcpy( rpcCU->getWidth() + uiPartOffset, m_puhWidth, iSizeInUchar ); … … 1575 1560 memcpy( rpcCU->m_sliceStartCU + uiPartOffset, m_sliceStartCU, sizeof( UInt ) * uiQNumPart ); 1576 1561 memcpy( rpcCU->m_sliceSegmentStartCU + uiPartOffset, m_sliceSegmentStartCU, sizeof( UInt ) * uiQNumPart ); 1577 1578 1562 #if H_3D_ARP 1579 1563 memcpy( rpcCU->getARPW() + uiPartOffset, m_puhARPW, iSizeInUchar ); … … 2027 2011 return getSlice()->getSliceQp(); 2028 2012 } 2029 else 2030 if ( iLastValidPartIdx >= 0 ) 2013 else if ( iLastValidPartIdx >= 0 ) 2031 2014 { 2032 2015 return getQP( iLastValidPartIdx ); … … 2255 2238 } 2256 2239 #endif 2257 2258 2240 UInt TComDataCU::getCtxInterDir( UInt uiAbsPartIdx ) 2259 2241 { … … 2492 2474 } 2493 2475 #endif 2494 2495 2476 Void TComDataCU::setMergeFlagSubParts ( Bool bMergeFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2496 2477 { … … 2509 2490 } 2510 2491 #endif 2511 2512 2492 Void TComDataCU::setChromIntraDirSubParts( UInt uiDir, UInt uiAbsPartIdx, UInt uiDepth ) 2513 2493 { … … 3030 3010 3031 3011 #endif 3032 3033 3012 /** Constructs a list of merging candidates 3034 3013 * \param uiAbsPartIdx … … 3139 3118 pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3140 3119 TComMv cMvPred = pcMvFieldNeighbours[(iCount<<1)+1].getMv(); 3141 3142 3120 #if H_3D_IC 3143 3121 const TComMv cAdd( 1 << ( 2 - 1 ), 1 << ( 2 - 1 ) ); … … 3568 3546 //>> MTK colocated-RightBottom 3569 3547 UInt uiPartIdxRB; 3570 Int uiLCUIdx = getAddr();3571 3548 3572 3549 deriveRightBottomIdx( uiPUIdx, uiPartIdxRB ); … … 3577 3554 TComMv cColMv; 3578 3555 Int iRefIdx; 3556 Int uiLCUIdx = -1; 3579 3557 3580 3558 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 3581 3559 { 3582 uiLCUIdx = -1;3583 3560 } 3584 3561 else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 3585 3562 { 3586 uiLCUIdx = -1;3587 3563 } 3588 3564 else … … 3597 3573 { 3598 3574 uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdxTmp + uiNumPartInCUWidth + 1) % m_pcPic->getNumPartInCU() ]; 3599 uiLCUIdx = -1 ;3600 3575 } 3601 3576 else if ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) // is not at the last row of LCU But is last column of LCU … … 3607 3582 { 3608 3583 uiAbsPartAddr = 0; 3609 uiLCUIdx = -1 ;3610 3584 } 3611 3585 } … … 3885 3859 if (!bAdded) 3886 3860 { 3887 bAdded =xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLB, MD_LEFT );3861 xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLB, MD_LEFT ); 3888 3862 } 3889 3863 } … … 3898 3872 if(!bAdded) 3899 3873 { 3900 bAdded =xAddMVPCand( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT);3874 xAddMVPCand( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT); 3901 3875 } 3902 3876 bAdded = bAddedSmvp; … … 3913 3887 if(!bAdded) 3914 3888 { 3915 bAdded =xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT);3889 xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT); 3916 3890 } 3917 3891 } … … 3933 3907 UInt uiAbsPartIdx; 3934 3908 UInt uiAbsPartAddr; 3935 Int uiLCUIdx = getAddr();3936 3909 3937 3910 deriveRightBottomIdx( uiPartIdx, uiPartIdxRB ); … … 3940 3913 //---- co-located RightBottom Temporal Predictor (H) ---// 3941 3914 uiAbsPartIdx = g_auiZscanToRaster[uiPartIdxRB]; 3915 Int uiLCUIdx = -1; 3942 3916 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdx] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 3943 3917 { 3944 uiLCUIdx = -1;3945 3918 } 3946 3919 else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdx] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 3947 3920 { 3948 uiLCUIdx = -1;3949 3921 } 3950 3922 else … … 3959 3931 { 3960 3932 uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdx + uiNumPartInCUWidth + 1) % m_pcPic->getNumPartInCU() ]; 3961 uiLCUIdx = -1 ;3962 3933 } 3963 3934 else if ( uiAbsPartIdx / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) // is not at the last row of LCU But is last column of LCU … … 3969 3940 { 3970 3941 uiAbsPartAddr = 0; 3971 uiLCUIdx = -1 ;3972 3942 } 3973 3943 } … … 4043 4013 UInt TComDataCU::getIntraSizeIdx(UInt uiAbsPartIdx) 4044 4014 { 4045 UInt uiShift = ( (m_puhTrIdx[uiAbsPartIdx]==0) && (m_pePartSize[uiAbsPartIdx]==SIZE_NxN) ) ? m_puhTrIdx[uiAbsPartIdx]+1 : m_puhTrIdx[uiAbsPartIdx]; 4046 uiShift = ( m_pePartSize[uiAbsPartIdx]==SIZE_NxN ? 1 : 0 ); 4015 UInt uiShift = ( m_pePartSize[uiAbsPartIdx]==SIZE_NxN ? 1 : 0 ); 4047 4016 4048 4017 UChar uiWidth = m_puhWidth[uiAbsPartIdx]>>uiShift; … … 4130 4099 } 4131 4100 4132 #if L0363_MVP_POC4133 4101 if ( pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) >= 0 && m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getPOC() == pcTmpCU->getSlice()->getRefPOC( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) )) 4134 #else4135 if ( m_pcSlice->isEqualRef(eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx), iRefIdx) )4136 #endif4137 4102 { 4138 4103 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList)->getMv(uiIdx); … … 4340 4305 } 4341 4306 iCurrPOC = m_pcSlice->getPOC(); 4342 iCurrRefPOC = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getPOC();4343 4307 iColPOC = pColCU->getSlice()->getPOC(); 4344 4308 -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComLoopFilter.cpp
r446 r537 461 461 if ( ((piRefP0==piRefQ0)&&(piRefP1==piRefQ1)) || ((piRefP0==piRefQ1)&&(piRefP1==piRefQ0)) ) 462 462 { 463 uiBs = 0;464 463 if ( piRefP0 != piRefP1 ) // Different L0 & L1 465 464 { … … 694 693 for ( UInt iIdx = 0; iIdx < uiNumParts; iIdx++ ) 695 694 { 696 ucBs = 0;697 698 695 uiBsAbsIdx = xCalcBsIdx( pcCU, uiAbsZorderIdx, iDir, iEdge, iIdx); 699 696 ucBs = m_aapucBS[iDir][uiBsAbsIdx]; -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComPrediction.cpp
r532 r537 76 76 m_acYuvPredBase[1].destroy(); 77 77 #endif 78 79 78 if( m_pLumaRecBuffer ) 80 79 { … … 146 145 Pel TComPrediction::predIntraGetPredValDC( Int* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight, Bool bAbove, Bool bLeft ) 147 146 { 147 assert(iWidth > 0 && iHeight > 0); 148 148 Int iInd, iSum = 0; 149 149 Pel pDcVal; … … 934 934 } 935 935 #endif 936 937 936 if ( yFrac == 0 ) 938 937 { … … 1246 1245 return; 1247 1246 } 1248 1249 1247 #if H_3D_IC 1250 1248 /** Function for deriving the position of first non-zero binary bit of a value -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComRdCost.cpp
r531 r537 570 570 #endif 571 571 572 #if RATE_CONTROL_LAMBDA_DOMAIN 572 #if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT 573 573 UInt TComRdCost::getSADPart ( Int bitDepth, Pel* pelCur, Int curStride, Pel* pelOrg, Int orgStride, UInt width, UInt height ) 574 574 { … … 636 636 return xGetSADw( pcDtParam ); 637 637 } 638 639 638 #if H_3D_IC 640 639 if( pcDtParam->bUseIC ) … … 643 642 } 644 643 #endif 645 646 644 Pel* piOrg = pcDtParam->pOrg; 647 645 Pel* piCur = pcDtParam->pCur; … … 675 673 return xGetSADw( pcDtParam ); 676 674 } 677 678 675 #if H_3D_IC 679 676 if( pcDtParam->bUseIC ) … … 682 679 } 683 680 #endif 684 685 681 Pel* piOrg = pcDtParam->pOrg; 686 682 Pel* piCur = pcDtParam->pCur; … … 718 714 return xGetSADw( pcDtParam ); 719 715 } 720 721 716 #if H_3D_IC 722 717 if( pcDtParam->bUseIC ) … … 725 720 } 726 721 #endif 727 728 722 Pel* piOrg = pcDtParam->pOrg; 729 723 Pel* piCur = pcDtParam->pCur; … … 770 764 return xGetSADw( pcDtParam ); 771 765 } 772 773 766 #if H_3D_IC 774 767 if( pcDtParam->bUseIC ) … … 777 770 } 778 771 #endif 779 780 772 Pel* piOrg = pcDtParam->pOrg; 781 773 Pel* piCur = pcDtParam->pCur; … … 820 812 } 821 813 #endif 822 823 814 Pel* piOrg = pcDtParam->pOrg; 824 815 Pel* piCur = pcDtParam->pCur; … … 867 858 return xGetSADw( pcDtParam ); 868 859 } 869 870 860 #if H_3D_IC 871 861 if( pcDtParam->bUseIC ) … … 874 864 } 875 865 #endif 876 877 866 Pel* piOrg = pcDtParam->pOrg; 878 867 Pel* piCur = pcDtParam->pCur; … … 935 924 return xGetSADw( pcDtParam ); 936 925 } 937 938 926 #if H_3D_IC 939 927 if( pcDtParam->bUseIC ) … … 942 930 } 943 931 #endif 944 945 932 Pel* piOrg = pcDtParam->pOrg; 946 933 Pel* piCur = pcDtParam->pCur; … … 996 983 return xGetSADw( pcDtParam ); 997 984 } 998 999 985 #if H_3D_IC 1000 986 if( pcDtParam->bUseIC ) … … 1003 989 } 1004 990 #endif 1005 1006 991 Pel* piOrg = pcDtParam->pOrg; 1007 992 Pel* piCur = pcDtParam->pCur; … … 1096 1081 return xGetSADw( pcDtParam ); 1097 1082 } 1098 1099 1083 #if H_3D_IC 1100 1084 if( pcDtParam->bUseIC ) … … 1103 1087 } 1104 1088 #endif 1105 1106 1089 Pel* piOrg = pcDtParam->pOrg; 1107 1090 Pel* piCur = pcDtParam->pCur; … … 3420 3403 return xGetHADsw( pcDtParam ); 3421 3404 } 3422 3423 3405 #if H_3D_IC 3424 3406 if( pcDtParam->bUseIC ) … … 3427 3409 } 3428 3410 #endif 3429 3430 3411 Pel* piOrg = pcDtParam->pOrg; 3431 3412 Pel* piCur = pcDtParam->pCur; -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComRdCost.h
r504 r537 209 209 #if RATE_CONTROL_LAMBDA_DOMAIN 210 210 Double getLambda() { return m_dLambda; } 211 #if M0036_RC_IMPROVEMENT 212 Double getChromaWeight () {return((m_cbDistortionWeight+m_crDistortionWeight)/2.0);} 213 #endif 211 214 #endif 212 215 … … 331 334 #endif 332 335 333 #if RATE_CONTROL_LAMBDA_DOMAIN 336 #if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT 334 337 UInt getSADPart ( Int bitDepth, Pel* pelCur, Int curStride, Pel* pelOrg, Int orgStride, UInt width, UInt height ); 335 338 #endif -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.cpp
r534 r537 60 60 , m_deblockingFilterBetaOffsetDiv2 ( 0 ) 61 61 , m_deblockingFilterTcOffsetDiv2 ( 0 ) 62 #if !L0034_COMBINED_LIST_CLEANUP63 , m_bRefPicListModificationFlagLC ( false )64 , m_bRefPicListCombinationFlag ( false )65 #endif66 62 , m_bCheckLDC ( false ) 67 63 , m_iSliceQpDelta ( 0 ) … … 80 76 #else 81 77 , m_dLambda ( 0.0 ) 82 #endif83 #if !L0034_COMBINED_LIST_CLEANUP84 , m_bNoBackPredFlag ( false )85 78 #endif 86 79 , m_uiTLayer ( 0 ) … … 131 124 #endif 132 125 { 133 #if L0034_COMBINED_LIST_CLEANUP134 126 m_aiNumRefIdx[0] = m_aiNumRefIdx[1] = 0; 135 #else136 m_aiNumRefIdx[0] = m_aiNumRefIdx[1] = m_aiNumRefIdx[2] = 0;137 #endif138 127 139 128 initEqualRef(); 140 129 141 #if L0034_COMBINED_LIST_CLEANUP142 130 for ( Int idx = 0; idx < MAX_NUM_REF; idx++ ) 143 131 { 144 132 m_list1IdxToList0Idx[idx] = -1; 145 133 } 146 #else147 for(Int iNumCount = 0; iNumCount < MAX_NUM_REF_LC; iNumCount++)148 {149 m_iRefIdxOfLC[REF_PIC_LIST_0][iNumCount]=-1;150 m_iRefIdxOfLC[REF_PIC_LIST_1][iNumCount]=-1;151 m_eListIdFromIdxOfLC[iNumCount]=0;152 m_iRefIdxFromIdxOfLC[iNumCount]=0;153 m_iRefIdxOfL0FromRefIdxOfL1[iNumCount] = -1;154 m_iRefIdxOfL1FromRefIdxOfL0[iNumCount] = -1;155 }156 #endif157 134 for(Int iNumCount = 0; iNumCount < MAX_NUM_REF; iNumCount++) 158 135 { … … 213 190 m_colRefIdx = 0; 214 191 initEqualRef(); 215 #if !L0034_COMBINED_LIST_CLEANUP216 m_bNoBackPredFlag = false;217 m_bRefPicListCombinationFlag = false;218 m_bRefPicListModificationFlagLC = false;219 #endif220 192 m_bCheckLDC = false; 221 193 m_iSliceQpDeltaCb = 0; 222 194 m_iSliceQpDeltaCr = 0; 223 224 #if !L0034_COMBINED_LIST_CLEANUP225 m_aiNumRefIdx[REF_PIC_LIST_C] = 0;226 #endif227 195 228 196 #if H_3D_IV_MERGE … … 378 346 } 379 347 380 #if L0034_COMBINED_LIST_CLEANUP381 348 Void TComSlice::setList1IdxToList0Idx() 382 349 { … … 395 362 } 396 363 } 397 #else398 Void TComSlice::generateCombinedList()399 {400 if(m_aiNumRefIdx[REF_PIC_LIST_C] > 0)401 {402 m_aiNumRefIdx[REF_PIC_LIST_C]=0;403 for(Int iNumCount = 0; iNumCount < MAX_NUM_REF_LC; iNumCount++)404 {405 m_iRefIdxOfLC[REF_PIC_LIST_0][iNumCount]=-1;406 m_iRefIdxOfLC[REF_PIC_LIST_1][iNumCount]=-1;407 m_eListIdFromIdxOfLC[iNumCount]=0;408 m_iRefIdxFromIdxOfLC[iNumCount]=0;409 m_iRefIdxOfL0FromRefIdxOfL1[iNumCount] = -1;410 m_iRefIdxOfL1FromRefIdxOfL0[iNumCount] = -1;411 }412 413 for (Int iNumRefIdx = 0; iNumRefIdx < MAX_NUM_REF; iNumRefIdx++)414 {415 if(iNumRefIdx < m_aiNumRefIdx[REF_PIC_LIST_0])416 {417 Bool bTempRefIdxInL2 = true;418 for ( Int iRefIdxLC = 0; iRefIdxLC < m_aiNumRefIdx[REF_PIC_LIST_C]; iRefIdxLC++ )419 {420 #if H_MV421 if ( m_apcRefPicList[REF_PIC_LIST_0][iNumRefIdx]->getPOC() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getPOC() &&422 m_apcRefPicList[REF_PIC_LIST_0][iNumRefIdx]->getLayerId() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getLayerId() )423 #else424 if ( m_apcRefPicList[REF_PIC_LIST_0][iNumRefIdx]->getPOC() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getPOC() )425 #endif426 {427 m_iRefIdxOfL1FromRefIdxOfL0[iNumRefIdx] = m_iRefIdxFromIdxOfLC[iRefIdxLC];428 m_iRefIdxOfL0FromRefIdxOfL1[m_iRefIdxFromIdxOfLC[iRefIdxLC]] = iNumRefIdx;429 bTempRefIdxInL2 = false;430 break;431 }432 }433 434 if(bTempRefIdxInL2 == true)435 {436 m_eListIdFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = REF_PIC_LIST_0;437 m_iRefIdxFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = iNumRefIdx;438 m_iRefIdxOfLC[REF_PIC_LIST_0][iNumRefIdx] = m_aiNumRefIdx[REF_PIC_LIST_C]++;439 }440 }441 442 if(iNumRefIdx < m_aiNumRefIdx[REF_PIC_LIST_1])443 {444 Bool bTempRefIdxInL2 = true;445 for ( Int iRefIdxLC = 0; iRefIdxLC < m_aiNumRefIdx[REF_PIC_LIST_C]; iRefIdxLC++ )446 {447 #if H_MV448 if ( m_apcRefPicList[REF_PIC_LIST_1][iNumRefIdx]->getPOC() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getPOC() &&449 m_apcRefPicList[REF_PIC_LIST_1][iNumRefIdx]->getLayerId() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getLayerId() )450 #else451 if ( m_apcRefPicList[REF_PIC_LIST_1][iNumRefIdx]->getPOC() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getPOC() )452 #endif453 {454 m_iRefIdxOfL0FromRefIdxOfL1[iNumRefIdx] = m_iRefIdxFromIdxOfLC[iRefIdxLC];455 m_iRefIdxOfL1FromRefIdxOfL0[m_iRefIdxFromIdxOfLC[iRefIdxLC]] = iNumRefIdx;456 bTempRefIdxInL2 = false;457 break;458 }459 }460 if(bTempRefIdxInL2 == true)461 {462 m_eListIdFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = REF_PIC_LIST_1;463 m_iRefIdxFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = iNumRefIdx;464 m_iRefIdxOfLC[REF_PIC_LIST_1][iNumRefIdx] = m_aiNumRefIdx[REF_PIC_LIST_C]++;465 }466 }467 }468 }469 }470 #endif471 472 364 #if H_MV 473 365 Void TComSlice::setRefPicList( TComList<TComPic*>& rcListPic, std::vector<TComPic*>& refPicSetInterLayer , Bool checkNumPocTotalCurr) … … 506 398 UInt NumPocLtCurr = 0; 507 399 Int i; 400 508 401 for(i=0; i < m_pcRPS->getNumberOfNegativePictures(); i++) 509 402 { … … 585 478 } 586 479 587 assert(numPocTotalCurr !=0);480 assert(numPocTotalCurr > 0); 588 481 589 482 m_aiNumRefIdx[0] = getNumRefIdx(REF_PIC_LIST_0); … … 617 510 } 618 511 #endif 512 assert(cIdx == numPocTotalCurr); 619 513 620 514 if (m_eSliceType==B_SLICE) … … 645 539 } 646 540 #endif 541 assert(cIdx == numPocTotalCurr); 647 542 } 648 543 … … 673 568 } 674 569 #else 675 676 for (Int rIdx = 0; rIdx <= (m_aiNumRefIdx[0]-1); rIdx ++)677 {678 m_apcRefPicList[0][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL0() ? rpsCurrList0[ m_RefPicListModification.getRefPicSetIdxL0(rIdx) ] : rpsCurrList0[rIdx % numPocTotalCurr];679 m_ bIsUsedAsLongTerm[0][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL0() ? (m_RefPicListModification.getRefPicSetIdxL0(rIdx) >= (NumPocStCurr0 + NumPocStCurr1))680 : ((rIdx % numPocTotalCurr) >= (NumPocStCurr0 + NumPocStCurr1));681 } 682 if ( m_eSliceType == P_SLICE )570 for (Int rIdx = 0; rIdx < m_aiNumRefIdx[0]; rIdx ++) 571 { 572 cIdx = m_RefPicListModification.getRefPicListModificationFlagL0() ? m_RefPicListModification.getRefPicSetIdxL0(rIdx) : rIdx % numPocTotalCurr; 573 assert(cIdx >= 0 && cIdx < numPocTotalCurr); 574 m_apcRefPicList[0][rIdx] = rpsCurrList0[ cIdx ]; 575 m_bIsUsedAsLongTerm[0][rIdx] = ( cIdx >= NumPocStCurr0 + NumPocStCurr1 ); 576 } 577 if ( m_eSliceType != B_SLICE ) 683 578 { 684 579 m_aiNumRefIdx[1] = 0; … … 687 582 else 688 583 { 689 for (Int rIdx = 0; rIdx <= (m_aiNumRefIdx[1]-1); rIdx ++) 690 { 691 m_apcRefPicList[1][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL1() ? rpsCurrList1[ m_RefPicListModification.getRefPicSetIdxL1(rIdx) ] : rpsCurrList1[rIdx % numPocTotalCurr]; 692 m_bIsUsedAsLongTerm[1][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL1() ? 693 (m_RefPicListModification.getRefPicSetIdxL1(rIdx) >= (NumPocStCurr0 + NumPocStCurr1)): ((rIdx % numPocTotalCurr) >= (NumPocStCurr0 + NumPocStCurr1)); 694 } 695 } 696 #endif 697 } 698 699 #if H_MV && !H_MV_FIX1071 700 // Temporary fix for FIX1071 should be removed later 701 Int TComSlice::getNumRpsCurrTempList( TComReferencePictureSet* rps /* = 0 */) 702 #else 584 for (Int rIdx = 0; rIdx < m_aiNumRefIdx[1]; rIdx ++) 585 { 586 cIdx = m_RefPicListModification.getRefPicListModificationFlagL1() ? m_RefPicListModification.getRefPicSetIdxL1(rIdx) : rIdx % numPocTotalCurr; 587 assert(cIdx >= 0 && cIdx < numPocTotalCurr); 588 m_apcRefPicList[1][rIdx] = rpsCurrList1[ cIdx ]; 589 m_bIsUsedAsLongTerm[1][rIdx] = ( cIdx >= NumPocStCurr0 + NumPocStCurr1 ); 590 } 591 } 592 #endif 593 } 594 703 595 Int TComSlice::getNumRpsCurrTempList() 704 #endif705 596 { 706 597 Int numRpsCurrTempList = 0; … … 710 601 return 0; 711 602 } 712 #if H_MV && !H_MV_FIX1071713 // Temporary fix for FIX1071 should be removed later714 if (rps == NULL)715 {716 rps = m_pcRPS;717 }718 719 for(UInt i=0; i < rps->getNumberOfNegativePictures()+ rps->getNumberOfPositivePictures() + rps->getNumberOfLongtermPictures(); i++)720 {721 if(rps->getUsed(i))722 #else723 603 for(UInt i=0; i < m_pcRPS->getNumberOfNegativePictures()+ m_pcRPS->getNumberOfPositivePictures() + m_pcRPS->getNumberOfLongtermPictures(); i++) 724 604 { 725 605 if(m_pcRPS->getUsed(i)) 726 #endif727 606 { 728 607 numRpsCurrTempList++; … … 945 824 m_deblockingFilterTcOffsetDiv2 = pSrc->m_deblockingFilterTcOffsetDiv2; 946 825 947 #if L0034_COMBINED_LIST_CLEANUP948 826 for (i = 0; i < 2; i++) 949 #else950 for (i = 0; i < 3; i++)951 #endif952 827 { 953 828 m_aiNumRefIdx[i] = pSrc->m_aiNumRefIdx[i]; 954 829 } 955 830 956 #if L0034_COMBINED_LIST_CLEANUP957 831 for (i = 0; i < MAX_NUM_REF; i++) 958 832 { 959 833 m_list1IdxToList0Idx[i] = pSrc->m_list1IdxToList0Idx[i]; 960 834 } 961 #else962 for (i = 0; i < 2; i++)963 {964 for (j = 0; j < MAX_NUM_REF_LC; j++)965 {966 m_iRefIdxOfLC[i][j] = pSrc->m_iRefIdxOfLC[i][j];967 }968 }969 for (i = 0; i < MAX_NUM_REF_LC; i++)970 {971 m_eListIdFromIdxOfLC[i] = pSrc->m_eListIdFromIdxOfLC[i];972 m_iRefIdxFromIdxOfLC[i] = pSrc->m_iRefIdxFromIdxOfLC[i];973 m_iRefIdxOfL1FromRefIdxOfL0[i] = pSrc->m_iRefIdxOfL1FromRefIdxOfL0[i];974 m_iRefIdxOfL0FromRefIdxOfL1[i] = pSrc->m_iRefIdxOfL0FromRefIdxOfL1[i];975 }976 m_bRefPicListModificationFlagLC = pSrc->m_bRefPicListModificationFlagLC;977 m_bRefPicListCombinationFlag = pSrc->m_bRefPicListCombinationFlag;978 #endif979 835 m_bCheckLDC = pSrc->m_bCheckLDC; 980 836 m_iSliceQpDelta = pSrc->m_iSliceQpDelta; … … 1014 870 1015 871 m_pcPic = pSrc->m_pcPic; 872 1016 873 m_colFromL0Flag = pSrc->m_colFromL0Flag; 1017 874 m_colRefIdx = pSrc->m_colRefIdx; … … 1033 890 } 1034 891 1035 #if !L0034_COMBINED_LIST_CLEANUP1036 m_bNoBackPredFlag = pSrc->m_bNoBackPredFlag;1037 #endif1038 892 m_uiTLayer = pSrc->m_uiTLayer; 1039 893 m_bTLayerSwitchingFlag = pSrc->m_bTLayerSwitchingFlag; … … 1366 1220 /** Function for constructing an explicit Reference Picture Set out of the available pictures in a referenced Reference Picture Set 1367 1221 */ 1368 #if FIX1071 && H_MV_FIX10711222 #if FIX1071 1369 1223 Void TComSlice::createExplicitReferencePictureSetFromReference( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet, Bool isRAP) 1370 1224 #else … … 1395 1249 // and should be added to the explicit Reference Picture Set 1396 1250 pcRPS->setDeltaPOC(k, pReferencePictureSet->getDeltaPOC(i)); 1397 #if FIX1071 && H_MV_FIX10711251 #if FIX1071 1398 1252 pcRPS->setUsed(k, pReferencePictureSet->getUsed(i) && (!isRAP)); 1399 1253 #else … … 1566 1420 { 1567 1421 m_numReorderPics[i] = 0; 1568 #if L0323_DPB1569 1422 m_uiMaxDecPicBuffering[i] = 1; 1570 #else1571 m_uiMaxDecPicBuffering[i] = 0;1572 #endif1573 1423 m_uiMaxLatencyIncrease[i] = 0; 1574 1424 } … … 2005 1855 , m_pcmLog2MaxSize ( 5) 2006 1856 , m_uiPCMLog2MinSize ( 7) 2007 #if !L0034_COMBINED_LIST_CLEANUP2008 , m_bUseLComb (false)2009 #endif2010 1857 , m_bitDepthY ( 8) 2011 1858 , m_bitDepthC ( 8) … … 2037 1884 { 2038 1885 m_uiMaxLatencyIncrease[i] = 0; 2039 #if L0323_DPB2040 1886 m_uiMaxDecPicBuffering[i] = 1; 2041 #else2042 m_uiMaxDecPicBuffering[i] = 0;2043 #endif2044 1887 m_numReorderPics[i] = 0; 2045 1888 } … … 2079 1922 TComHRD *hrd = vui->getHrdParameters(); 2080 1923 2081 #if L0043_TIMING_INFO2082 1924 TimingInfo *timingInfo = vui->getTimingInfo(); 2083 1925 timingInfo->setTimingInfoPresentFlag( true ); … … 2103 1945 break; 2104 1946 } 2105 #else2106 hrd->setTimingInfoPresentFlag( true );2107 switch( frameRate )2108 {2109 case 24:2110 hrd->setNumUnitsInTick( 1125000 ); hrd->setTimeScale ( 27000000 );2111 break;2112 case 25:2113 hrd->setNumUnitsInTick( 1080000 ); hrd->setTimeScale ( 27000000 );2114 break;2115 case 30:2116 hrd->setNumUnitsInTick( 900900 ); hrd->setTimeScale ( 27000000 );2117 break;2118 case 50:2119 hrd->setNumUnitsInTick( 540000 ); hrd->setTimeScale ( 27000000 );2120 break;2121 case 60:2122 hrd->setNumUnitsInTick( 450450 ); hrd->setTimeScale ( 27000000 );2123 break;2124 default:2125 hrd->setNumUnitsInTick( 1001 ); hrd->setTimeScale ( 60000 );2126 break;2127 }2128 #endif2129 1947 2130 1948 Bool rateCnt = ( bitRate > 0 ); … … 2139 1957 hrd->setDuCpbRemovalDelayLengthMinus1( 7 ); // 8-bit precision ( plus 1 for last DU in AU ) 2140 1958 hrd->setSubPicCpbParamsInPicTimingSEIFlag( true ); 2141 #if L0044_DU_DPB_OUTPUT_DELAY_HRD2142 1959 hrd->setDpbOutputDelayDuLengthMinus1( 5 + 7 ); // With sub-clock tick factor of 100, at least 7 bits to have the same value as AU dpb delay 2143 #endif2144 1960 } 2145 1961 else … … 2170 1986 UInt birateValue, cpbSizeValue; 2171 1987 UInt ducpbSizeValue; 2172 #if L0363_DU_BIT_RATE2173 1988 UInt duBitRateValue = 0; 2174 #endif2175 1989 2176 1990 for( i = 0; i < MAX_TLAYER; i ++ ) … … 2184 1998 cpbSizeValue = bitRate; // 1 second 2185 1999 ducpbSizeValue = bitRate/numDU; 2186 #if L0363_DU_BIT_RATE2187 2000 duBitRateValue = bitRate; 2188 #endif2189 2001 for( j = 0; j < ( hrd->getCpbCntMinus1( i ) + 1 ); j ++ ) 2190 2002 { … … 2197 2009 hrd->setCpbSizeValueMinus1( i, j, 1, ( cpbSizeValue - 1 ) ); 2198 2010 hrd->setDuCpbSizeValueMinus1( i, j, 1, ( ducpbSizeValue - 1 ) ); 2199 #if L0363_DU_BIT_RATE2200 2011 hrd->setDuBitRateValueMinus1( i, j, 1, ( duBitRateValue - 1 ) ); 2201 #endif2202 2012 hrd->setCbrFlag( i, j, 1, ( j == 0 ) ); 2203 2013 } … … 2282 2092 } 2283 2093 #endif 2284 2285 2094 TComReferencePictureSet::TComReferencePictureSet() 2286 2095 : m_numberOfPictures (0) … … 3167 2976 , m_profileIdc (0) 3168 2977 , m_levelIdc (0) 3169 #if L0046_CONSTRAINT_FLAGS3170 2978 , m_progressiveSourceFlag (false) 3171 2979 , m_interlacedSourceFlag (false) 3172 2980 , m_nonPackedConstraintFlag(false) 3173 2981 , m_frameOnlyConstraintFlag(false) 3174 #endif3175 2982 { 3176 2983 ::memset(m_profileCompatibilityFlag, 0, sizeof(m_profileCompatibilityFlag)); … … 3205 3012 } 3206 3013 #endif 3207 3208 3014 //! \} -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.h
r535 r537 190 190 Int m_levelIdc; 191 191 192 #if L0046_CONSTRAINT_FLAGS193 192 Bool m_progressiveSourceFlag; 194 193 Bool m_interlacedSourceFlag; 195 194 Bool m_nonPackedConstraintFlag; 196 195 Bool m_frameOnlyConstraintFlag; 197 #endif198 196 199 197 public: … … 215 213 Void setLevelIdc(Int x) { m_levelIdc = x; } 216 214 217 #if L0046_CONSTRAINT_FLAGS218 215 Bool getProgressiveSourceFlag() const { return m_progressiveSourceFlag; } 219 216 Void setProgressiveSourceFlag(Bool b) { m_progressiveSourceFlag = b; } … … 227 224 Bool getFrameOnlyConstraintFlag() const { return m_frameOnlyConstraintFlag; } 228 225 Void setFrameOnlyConstraintFlag(Bool b) { m_frameOnlyConstraintFlag = b; } 229 #endif230 226 }; 231 227 … … 253 249 }; 254 250 /// VPS class 255 256 #if SIGNAL_BITRATE_PICRATE_IN_VPS257 class TComBitRatePicRateInfo258 {259 Bool m_bitRateInfoPresentFlag[MAX_TLAYER];260 Bool m_picRateInfoPresentFlag[MAX_TLAYER];261 Int m_avgBitRate[MAX_TLAYER];262 Int m_maxBitRate[MAX_TLAYER];263 Int m_constantPicRateIdc[MAX_TLAYER];264 Int m_avgPicRate[MAX_TLAYER];265 public:266 TComBitRatePicRateInfo();267 Bool getBitRateInfoPresentFlag(Int i) {return m_bitRateInfoPresentFlag[i];}268 Void setBitRateInfoPresentFlag(Int i, Bool x) {m_bitRateInfoPresentFlag[i] = x;}269 270 Bool getPicRateInfoPresentFlag(Int i) {return m_picRateInfoPresentFlag[i];}271 Void setPicRateInfoPresentFlag(Int i, Bool x) {m_picRateInfoPresentFlag[i] = x;}272 273 Int getAvgBitRate(Int i) {return m_avgBitRate[i];}274 Void setAvgBitRate(Int i, Int x) {m_avgBitRate[i] = x;}275 276 Int getMaxBitRate(Int i) {return m_maxBitRate[i];}277 Void setMaxBitRate(Int i, Int x) {m_maxBitRate[i] = x;}278 279 Int getConstantPicRateIdc(Int i) {return m_constantPicRateIdc[i];}280 Void setConstantPicRateIdc(Int i, Int x) {m_constantPicRateIdc[i] = x;}281 282 Int getAvgPicRate(Int i) {return m_avgPicRate[i];}283 Void setAvgPicRate(Int i, Int x) {m_avgPicRate[i] = x;}284 };285 #endif286 251 287 252 struct HrdSubLayerInfo … … 296 261 UInt ducpbSizeValue [MAX_CPB_CNT][2]; 297 262 UInt cbrFlag [MAX_CPB_CNT][2]; 298 #if L0363_DU_BIT_RATE299 263 UInt duBitRateValue [MAX_CPB_CNT][2]; 300 #endif301 264 }; 302 265 … … 304 267 { 305 268 private: 306 #if !L0043_TIMING_INFO307 Bool m_timingInfoPresentFlag;308 UInt m_numUnitsInTick;309 UInt m_timeScale;310 #endif311 269 Bool m_nalHrdParametersPresentFlag; 312 270 Bool m_vclHrdParametersPresentFlag; … … 315 273 UInt m_duCpbRemovalDelayLengthMinus1; 316 274 Bool m_subPicCpbParamsInPicTimingSEIFlag; 317 #if L0044_DU_DPB_OUTPUT_DELAY_HRD318 275 UInt m_dpbOutputDelayDuLengthMinus1; 319 #endif320 276 UInt m_bitRateScale; 321 277 UInt m_cpbSizeScale; … … 329 285 public: 330 286 TComHRD() 331 #if !L0043_TIMING_INFO332 :m_timingInfoPresentFlag(false)333 ,m_numUnitsInTick(1001)334 ,m_timeScale(60000)335 ,m_nalHrdParametersPresentFlag(0)336 #else337 287 :m_nalHrdParametersPresentFlag(0) 338 #endif339 288 ,m_vclHrdParametersPresentFlag(0) 340 289 ,m_subPicCpbParamsPresentFlag(false) … … 342 291 ,m_duCpbRemovalDelayLengthMinus1(0) 343 292 ,m_subPicCpbParamsInPicTimingSEIFlag(false) 344 #if L0044_DU_DPB_OUTPUT_DELAY_HRD345 293 ,m_dpbOutputDelayDuLengthMinus1(0) 346 #endif347 294 ,m_bitRateScale(0) 348 295 ,m_cpbSizeScale(0) … … 353 300 354 301 virtual ~TComHRD() {} 355 #if !L0043_TIMING_INFO356 Void setTimingInfoPresentFlag ( Bool flag ) { m_timingInfoPresentFlag = flag; }357 Bool getTimingInfoPresentFlag ( ) { return m_timingInfoPresentFlag; }358 359 Void setNumUnitsInTick ( UInt value ) { m_numUnitsInTick = value; }360 UInt getNumUnitsInTick ( ) { return m_numUnitsInTick; }361 362 Void setTimeScale ( UInt value ) { m_timeScale = value; }363 UInt getTimeScale ( ) { return m_timeScale; }364 #endif365 302 366 303 Void setNalHrdParametersPresentFlag ( Bool flag ) { m_nalHrdParametersPresentFlag = flag; } … … 382 319 Bool getSubPicCpbParamsInPicTimingSEIFlag () { return m_subPicCpbParamsInPicTimingSEIFlag; } 383 320 384 #if L0044_DU_DPB_OUTPUT_DELAY_HRD385 321 Void setDpbOutputDelayDuLengthMinus1 (UInt value ) { m_dpbOutputDelayDuLengthMinus1 = value; } 386 322 UInt getDpbOutputDelayDuLengthMinus1 () { return m_dpbOutputDelayDuLengthMinus1; } 387 #endif388 323 389 324 Void setBitRateScale ( UInt value ) { m_bitRateScale = value; } … … 426 361 Void setDuCpbSizeValueMinus1 ( Int layer, Int cpbcnt, Int nalOrVcl, UInt value ) { m_HRD[layer].ducpbSizeValue[cpbcnt][nalOrVcl] = value; } 427 362 UInt getDuCpbSizeValueMinus1 ( Int layer, Int cpbcnt, Int nalOrVcl ) { return m_HRD[layer].ducpbSizeValue[cpbcnt][nalOrVcl]; } 428 #if L0363_DU_BIT_RATE429 363 Void setDuBitRateValueMinus1 ( Int layer, Int cpbcnt, Int nalOrVcl, UInt value ) { m_HRD[layer].duBitRateValue[cpbcnt][nalOrVcl] = value; } 430 364 UInt getDuBitRateValueMinus1 (Int layer, Int cpbcnt, Int nalOrVcl ) { return m_HRD[layer].duBitRateValue[cpbcnt][nalOrVcl]; } 431 #endif432 365 Void setCbrFlag ( Int layer, Int cpbcnt, Int nalOrVcl, UInt value ) { m_HRD[layer].cbrFlag[cpbcnt][nalOrVcl] = value; } 433 366 Bool getCbrFlag ( Int layer, Int cpbcnt, Int nalOrVcl ) { return m_HRD[layer].cbrFlag[cpbcnt][nalOrVcl]; } … … 435 368 Void setNumDU ( UInt value ) { m_numDU = value; } 436 369 UInt getNumDU ( ) { return m_numDU; } 437 #if L0045_CONDITION_SIGNALLING438 370 Bool getCpbDpbDelaysPresentFlag() { return getNalHrdParametersPresentFlag() || getVclHrdParametersPresentFlag(); } 439 #endif440 371 }; 441 372 442 #if L0043_TIMING_INFO443 373 class TimingInfo 444 374 { … … 471 401 Void setNumTicksPocDiffOneMinus1 (Int x ) { m_numTicksPocDiffOneMinus1 = x; } 472 402 }; 473 #endif474 403 475 404 class TComVPS … … 483 412 UInt m_numReorderPics[MAX_TLAYER]; 484 413 UInt m_uiMaxDecPicBuffering[MAX_TLAYER]; 485 UInt m_uiMaxLatencyIncrease[MAX_TLAYER]; 414 UInt m_uiMaxLatencyIncrease[MAX_TLAYER]; // Really max latency increase plus 1 (value 0 expresses no limit) 486 415 487 416 UInt m_numHrdParameters; … … 507 436 TComPTL m_pcPTL; 508 437 #endif 509 #if SIGNAL_BITRATE_PICRATE_IN_VPS510 TComBitRatePicRateInfo m_bitRatePicRateInfo;511 #endif512 #if L0043_TIMING_INFO513 438 TimingInfo m_timingInfo; 514 #endif515 516 439 #if H_MV 517 440 /// VPS EXTENSION SYNTAX ELEMENTS … … 648 571 TComPTL* getPTL() { return &m_pcPTL; } 649 572 #endif 650 #if SIGNAL_BITRATE_PICRATE_IN_VPS651 TComBitRatePicRateInfo *getBitratePicrateInfo() { return &m_bitRatePicRateInfo; }652 #endif653 #if L0043_TIMING_INFO654 573 TimingInfo* getTimingInfo() { return &m_timingInfo; } 655 #endif656 574 #if H_MV 657 575 Void setAvcBaseLayerFlag( Bool val ) { m_avcBaseLayerFlag = val; } … … 878 796 Int m_log2MaxMvLengthVertical; 879 797 TComHRD m_hrdParameters; 880 #if L0043_TIMING_INFO881 798 TimingInfo m_timingInfo; 882 #else883 Bool m_pocProportionalToTimingFlag;884 Int m_numTicksPocDiffOneMinus1;885 #endif886 799 #if H_MV 887 800 Bool m_tileBoundariesAlignedFlag; 888 801 #endif 802 889 803 public: 890 804 TComVUI() … … 918 832 ,m_log2MaxMvLengthHorizontal(15) 919 833 ,m_log2MaxMvLengthVertical(15) 920 #if !L0043_TIMING_INFO921 ,m_pocProportionalToTimingFlag(false)922 ,m_numTicksPocDiffOneMinus1(0)923 #endif924 834 #if H_MV 925 835 ,m_tileBoundariesAlignedFlag(true) … … 1019 929 1020 930 TComHRD* getHrdParameters () { return &m_hrdParameters; } 1021 #if L0043_TIMING_INFO1022 931 TimingInfo* getTimingInfo() { return &m_timingInfo; } 1023 #else 1024 Bool getPocProportionalToTimingFlag() {return m_pocProportionalToTimingFlag; } 1025 Void setPocProportionalToTimingFlag(Bool x) {m_pocProportionalToTimingFlag = x;} 1026 Int getNumTicksPocDiffOneMinus1() {return m_numTicksPocDiffOneMinus1;} 1027 Void setNumTicksPocDiffOneMinus1(Int x) { m_numTicksPocDiffOneMinus1 = x;} 1028 #endif 1029 #if H_MV 1030 Bool getTileBoundariesAlignedFlag( ) { return m_tileBoundariesAlignedFlag; } 932 #if H_MV 933 Bool getTileBoundariesAlignedFlag( ) { return m_tileBoundariesAlignedFlag; } 1031 934 Void setTileBoundariesAlignedFlag( Bool flag ) { m_tileBoundariesAlignedFlag = flag; } 1032 935 #endif … … 1070 973 Bool m_useAMP; 1071 974 1072 #if !L0034_COMBINED_LIST_CLEANUP1073 Bool m_bUseLComb;1074 #endif1075 1076 975 // Parameter 1077 976 Int m_bitDepthY; … … 1102 1001 TComScalingList* m_scalingList; //!< ScalingList class pointer 1103 1002 UInt m_uiMaxDecPicBuffering[MAX_TLAYER]; 1104 UInt m_uiMaxLatencyIncrease[MAX_TLAYER]; 1003 UInt m_uiMaxLatencyIncrease[MAX_TLAYER]; // Really max latency increase plus 1 (value 0 expresses no limit) 1105 1004 1106 1005 Bool m_useDF; … … 1203 1102 1204 1103 // Tool list 1205 #if !L0034_COMBINED_LIST_CLEANUP1206 Void setUseLComb (Bool b) { m_bUseLComb = b; }1207 Bool getUseLComb () { return m_bUseLComb; }1208 #endif1209 1210 1104 Bool getUseLossless () { return m_useLossless; } 1211 1105 Void setUseLossless ( Bool b ) { m_useLossless = b; } … … 1554 1448 Int m_deblockingFilterBetaOffsetDiv2; //< beta offset for deblocking filter 1555 1449 Int m_deblockingFilterTcOffsetDiv2; //< tc offset for deblocking filter 1556 #if L0034_COMBINED_LIST_CLEANUP1557 1450 Int m_list1IdxToList0Idx[MAX_NUM_REF]; 1558 1451 Int m_aiNumRefIdx [2]; // for multiple reference of current slice 1559 #else1560 Int m_aiNumRefIdx [3]; // for multiple reference of current slice1561 1562 Int m_iRefIdxOfLC[2][MAX_NUM_REF_LC];1563 Int m_eListIdFromIdxOfLC[MAX_NUM_REF_LC];1564 Int m_iRefIdxFromIdxOfLC[MAX_NUM_REF_LC];1565 Int m_iRefIdxOfL1FromRefIdxOfL0[MAX_NUM_REF_LC];1566 Int m_iRefIdxOfL0FromRefIdxOfL1[MAX_NUM_REF_LC];1567 Bool m_bRefPicListModificationFlagLC;1568 Bool m_bRefPicListCombinationFlag;1569 #endif1570 1452 1571 1453 Bool m_bCheckLDC; … … 1608 1490 1609 1491 Bool m_abEqualRef [2][MAX_NUM_REF][MAX_NUM_REF]; 1610 #if !L0034_COMBINED_LIST_CLEANUP1611 Bool m_bNoBackPredFlag;1612 #endif1613 1492 UInt m_uiTLayer; 1614 1493 Bool m_bTLayerSwitchingFlag; … … 1685 1564 #endif 1686 1565 #endif 1687 1688 1566 public: 1689 1567 TComSlice(); … … 1761 1639 UInt getARPStepNum( ) { return m_nARPStepNum; } 1762 1640 #endif 1763 1764 1641 Int getDepth () { return m_iDepth; } 1765 1642 UInt getColFromL0Flag () { return m_colFromL0Flag; } … … 1769 1646 Bool getCheckLDC () { return m_bCheckLDC; } 1770 1647 Bool getMvdL1ZeroFlag () { return m_bLMvdL1Zero; } 1771 #if H_MV && !H_MV_FIX1071 // This is a temporary fix of the temporary fix L01771772 Int getNumRpsCurrTempList( TComReferencePictureSet* rps = NULL );1773 #else1774 1648 Int getNumRpsCurrTempList(); 1775 #endif1776 #if L0034_COMBINED_LIST_CLEANUP1777 1649 Int getList1IdxToList0Idx ( Int list1Idx ) { return m_list1IdxToList0Idx[list1Idx]; } 1778 #else1779 Int getRefIdxOfLC (RefPicList e, Int iRefIdx) { return m_iRefIdxOfLC[e][iRefIdx]; }1780 Int getListIdFromIdxOfLC(Int iRefIdx) { return m_eListIdFromIdxOfLC[iRefIdx]; }1781 Int getRefIdxFromIdxOfLC(Int iRefIdx) { return m_iRefIdxFromIdxOfLC[iRefIdx]; }1782 Int getRefIdxOfL0FromRefIdxOfL1(Int iRefIdx) { return m_iRefIdxOfL0FromRefIdxOfL1[iRefIdx];}1783 Int getRefIdxOfL1FromRefIdxOfL0(Int iRefIdx) { return m_iRefIdxOfL1FromRefIdxOfL0[iRefIdx];}1784 Bool getRefPicListModificationFlagLC() {return m_bRefPicListModificationFlagLC;}1785 Void setRefPicListModificationFlagLC(Bool bflag) {m_bRefPicListModificationFlagLC=bflag;}1786 Bool getRefPicListCombinationFlag() {return m_bRefPicListCombinationFlag;}1787 Void setRefPicListCombinationFlag(Bool bflag) {m_bRefPicListCombinationFlag=bflag;}1788 #endif1789 1650 Void setReferenced(Bool b) { m_bRefenced = b; } 1790 1651 Bool isReferenced() { return m_bRefenced; } … … 1861 1722 1862 1723 static Void sortPicList ( TComList<TComPic*>& rcListPic ); 1863 #if L0034_COMBINED_LIST_CLEANUP1864 1724 Void setList1IdxToList0Idx(); 1865 #else1866 Bool getNoBackPredFlag() { return m_bNoBackPredFlag; }1867 Void setNoBackPredFlag( Bool b ) { m_bNoBackPredFlag = b; }1868 Void generateCombinedList ();1869 #endif1870 1725 1871 1726 UInt getTLayer () { return m_uiTLayer; } … … 1880 1735 static Void markCurrPic ( TComPic* currPic );; 1881 1736 static Void markIvRefPicsAsUnused ( TComPicLists* ivPicLists, std::vector<Int> targetDecLayerIdSet, TComVPS* vps, Int curLayerId, Int curPoc ); 1882 1883 1884 Void xPrintRefPicList(); 1737 Void xPrintRefPicList(); 1885 1738 #endif 1886 1739 Bool isTemporalLayerSwitchingPoint( TComList<TComPic*>& rcListPic ); 1887 1740 Bool isStepwiseTemporalLayerSwitchingPointCandidate( TComList<TComPic*>& rcListPic ); 1888 1741 Int checkThatAllRefPicsAreAvailable( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet, Bool printErrors, Int pocRandomAccess = 0); 1889 #if FIX1071 && H_MV_FIX10711742 #if FIX1071 1890 1743 Void createExplicitReferencePictureSetFromReference( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet, Bool isRAP); 1891 1744 #else … … 2036 1889 2037 1890 #endif 2038 2039 1891 protected: 2040 1892 TComPic* xGetRefPic (TComList<TComPic*>& rcListPic, -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComTrQuant.cpp
r446 r537 1075 1075 Int iTransformShift = MAX_TR_DYNAMIC_RANGE - uiBitDepth - uiLog2TrSize; // Represents scaling through forward transform 1076 1076 1077 Int iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift; // Right shift of non-RDOQ quantizer; level = (coeff*uiQ + offset)>>q_bits1078 1079 iAdd = (pcCU->getSlice()->getSliceType()==I_SLICE ? 171 : 85) << (iQBits-9);1080 1081 1077 #if ADAPTIVE_QP_SELECTION 1082 iQBits = QUANT_SHIFT + cQpBase.m_iPer + iTransformShift;1078 Int iQBits = QUANT_SHIFT + cQpBase.m_iPer + iTransformShift; 1083 1079 iAdd = (pcCU->getSlice()->getSliceType()==I_SLICE ? 171 : 85) << (iQBits-9); 1084 1080 Int iQBitsC = QUANT_SHIFT + cQpBase.m_iPer + iTransformShift - ARL_C_PRECISION; 1085 1081 Int iAddC = 1 << (iQBitsC-1); 1082 #else 1083 Int iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift; // Right shift of non-RDOQ quantizer; level = (coeff*uiQ + offset)>>q_bits 1084 iAdd = (pcCU->getSlice()->getSliceType()==I_SLICE ? 171 : 85) << (iQBits-9); 1086 1085 #endif 1087 1086 … … 1347 1346 #else 1348 1347 Int j; 1349 { 1350 Short block[ 64 * 64 ]; 1351 Short coeff[ 64 * 64 ]; 1352 { 1348 Short block[ 32 * 32 ]; 1349 Short coeff[ 32 * 32 ]; 1353 1350 for (j = 0; j < iHeight; j++) 1354 1351 { 1355 1352 memcpy( block + j * iWidth, piBlkResi + j * uiStride, iWidth * sizeof( Short ) ); 1356 1353 } 1357 }1358 1354 xTrMxN(bitDepth, block, coeff, iWidth, iHeight, uiMode ); 1359 1355 for ( j = 0; j < iHeight * iWidth; j++ ) … … 1361 1357 psCoeff[ j ] = coeff[ j ]; 1362 1358 } 1363 return ;1364 }1365 1359 #endif 1366 1360 } … … 1382 1376 Int j; 1383 1377 { 1384 Short block[ 64 * 64];1385 Short coeff[ 64 * 64];1378 Short block[ 32 * 32 ]; 1379 Short coeff[ 32 * 32 ]; 1386 1380 for ( j = 0; j < iHeight * iWidth; j++ ) 1387 1381 { … … 1505 1499 UInt uiAbsPartIdx ) 1506 1500 { 1507 Int iQBits = m_cQP.m_iBits;1508 Double dTemp = 0;1509 1501 UInt uiLog2TrSize = g_aucConvertToBit[ uiWidth ] + 2; 1510 Int uiQ = g_quantScales[m_cQP.rem()];1511 1502 1512 1503 UInt uiBitDepth = eTType == TEXT_LUMA ? g_bitDepthY : g_bitDepthC; … … 1519 1510 assert(scalingListType < 6); 1520 1511 1521 iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift; // Right shift of non-RDOQ quantizer; level = (coeff*uiQ + offset)>>q_bits 1522 Double dErrScale = 0; 1512 Int iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift; // Right shift of non-RDOQ quantizer; level = (coeff*uiQ + offset)>>q_bits 1523 1513 Double *pdErrScaleOrg = getErrScaleCoeff(scalingListType,uiLog2TrSize-2,m_cQP.m_iRem); 1524 1514 Int *piQCoefOrg = getQuantCoeff(scalingListType,m_cQP.m_iRem,uiLog2TrSize-2); … … 1572 1562 Double d64BaseCost = 0; 1573 1563 Int iLastScanPos = -1; 1574 dTemp = dErrScale;1575 1564 1576 1565 UInt c1Idx = 0; … … 1601 1590 UInt uiBlkPos = scan[iScanPos]; 1602 1591 // set coeff 1603 uiQ = piQCoef[uiBlkPos];1604 dTemp = pdErrScale[uiBlkPos];1592 Int uiQ = piQCoef[uiBlkPos]; 1593 Double dTemp = pdErrScale[uiBlkPos]; 1605 1594 Int lLevelDouble = plSrcCoeff[ uiBlkPos ]; 1606 1595 lLevelDouble = (Int)min<Int64>((Int64)abs((Int)lLevelDouble) * uiQ , MAX_INT - (1 << (iQBits - 1))); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComWeightPrediction.cpp
r324 r537 271 271 Void TComWeightPrediction::getWpScaling( TComDataCU* pcCU, Int iRefIdx0, Int iRefIdx1, wpScalingParam *&wp0, wpScalingParam *&wp1) 272 272 { 273 assert(iRefIdx0 >= 0 || iRefIdx1 >= 0); 274 273 275 TComSlice* pcSlice = pcCU->getSlice(); 274 276 TComPPS* pps = pcCU->getSlice()->getPPS(); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TypeDef.h
r534 r537 41 41 //! \ingroup TLibCommon 42 42 //! \{ 43 44 43 ///////////////////////////////////////////////////////////////////////////////////////// 45 44 ///////////////////////////////// EXTENSION SELECTION /////////////////////////////////// … … 204 203 ///////////////////////////////////////////////////////////////////////////////////////// 205 204 206 #define FIX1071 1 ///< Temporary fix for issue #1071 207 208 #define L0208_SOP_DESCRIPTION_SEI 1 ///< L0208: add SOP descrioption SEI 205 #define FIX1071 1 ///< fix for issue #1071 206 209 207 #define MAX_NUM_PICS_IN_SOP 1024 210 208 211 #define K0180_SCALABLE_NESTING_SEI 1 ///JCTVC-K0180 scalable nesting sei message212 209 #define MAX_NESTING_NUM_OPS 1024 213 210 #define MAX_NESTING_NUM_LAYER 64 214 215 #define J0149_TONE_MAPPING_SEI 1 ///< J0149: Tone mapping information SEI216 #define L0363_DU_BIT_RATE 1 ///< L0363: add bit_rate_du_value_minus1 to HRD parameters217 #define L0328_SPLICING 1 ///< L0328: splicing support in HRD218 #define L0044_DU_DPB_OUTPUT_DELAY_HRD 1 ///< L0044: Include dpb_output_delay_du_length_minus1 in hrd_parameters(), dpb_output_du_delay in219 ///< picture timing SEI and DU information SEI220 #define L0045_PERSISTENCE_FLAGS 1 ///< L0045: Replace "repetition_period" syntax elements in SEI with "persistence_flag"221 #define L0045_NON_NESTED_SEI_RESTRICTIONS 1 ///< L0045; Include restriction on the order of APS and non-nested BP, PT and DU info SEI messages222 #define L0044_CPB_DPB_DELAY_OFFSET 1 ///< L0044: Include syntax elements cpb_delay_offset and dpb_delay_offset in the BP SEI message223 #define L0047_APS_FLAGS 1 ///< L0047: Include full_random_access_flag and no_param_set_update_flag in the active parameter set SEI message224 #define L0043_TIMING_INFO 1 ///< L0043: Timing information is signalled in VUI outside hrd_parameters()225 #define L0046_RENAME_PROG_SRC_IDC 1 ///< L0046: Rename progressive_source_idc to source_scan_type226 #define L0045_CONDITION_SIGNALLING 1 ///< L0045: Condition the signaling of some syntax elements in picture timing SEI message227 #define L0043_MSS_IDC 1228 #define L0116_ENTRY_POINT 1229 #define L0363_MORE_BITS 1230 #define L0363_MVP_POC 1231 #define L0363_BYTE_ALIGN 1232 #define L0363_SEI_ALLOW_SUFFIX 1233 #define L0323_LIMIT_DEFAULT_LIST_SIZE 1234 #define L0046_CONSTRAINT_FLAGS 1235 #define L0255_MOVE_PPS_FLAGS 1 ///< move some flags to earlier positions in the PPS236 #define L0444_FPA_TYPE 1 ///< allow only FPA types 3, 4 and 5237 #define L0372 1238 #define SIGNAL_BITRATE_PICRATE_IN_VPS 0 ///< K0125: Signal bit_rate and pic_rate in VPS239 #define L0232_RD_PENALTY 1 ///< L0232: RD-penalty for 32x32 TU for intra in non-intra slices240 #define L0386_DB_METRIC 1 ///< L0386: non-normative blockiness metric (automatically configures deblocking parameters in bitstream)241 #define L0323_DPB 1 ///< L0323: Specification of active reference indices and decoded picture buffer242 243 #define L0034_COMBINED_LIST_CLEANUP 1244 211 245 212 #define MAX_VPS_NUM_HRD_PARAMETERS 1 … … 254 221 255 222 #define RATE_CONTROL_LAMBDA_DOMAIN 1 ///< JCTVC-K0103, rate control by R-lambda model 256 #define L0033_RC_BUGFIX 1 ///< JCTVC-L0033, bug fix for R-lambda model based rate control 223 #define M0036_RC_IMPROVEMENT 1 ///< JCTVC-M0036, improvement for R-lambda model based rate control 224 #define TICKET_1090_FIX 1 225 226 #define RC_FIX 1 /// suggested fix for M0036 227 #define RATE_CONTROL_INTRA 1 ///< JCTVC-M0257, rate control for intra 257 228 258 229 #define MAX_CPB_CNT 32 ///< Upper bound of (cpb_cnt_minus1 + 1) … … 281 252 282 253 #define REMOVE_SAO_LCU_ENC_CONSTRAINTS_3 1 ///< disable the encoder constraint that conditionally disable SAO for chroma for entire slice in interleaved mode 283 284 #define REMOVE_SINGLE_SEI_EXTENSION_FLAGS 1 ///< remove display orientation SEI extension flag (there is a generic SEI extension mechanism now)285 254 286 255 #define SAO_ENCODING_CHOICE 1 ///< I0184: picture early termination … … 601 570 REF_PIC_LIST_0 = 0, ///< reference list 0 602 571 REF_PIC_LIST_1 = 1, ///< reference list 1 603 #if !L0034_COMBINED_LIST_CLEANUP604 REF_PIC_LIST_C = 2, ///< combined reference list for uni-prediction in B-Slices605 #endif606 572 REF_PIC_LIST_X = 100 ///< special mark 607 573 };
Note: See TracChangeset for help on using the changeset viewer.