Changeset 210 in 3DVCSoftware for trunk/source/Lib/TLibCommon
- Timestamp:
- 11 Dec 2012, 18:52:43 (12 years ago)
- Location:
- trunk/source/Lib/TLibCommon
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/CommonDef.h
r208 r210 58 58 59 59 #define HM_VERSION "6.1" 60 #define NV_VERSION "5.0 .1" ///< Current software version60 #define NV_VERSION "5.0" ///< Current software version 61 61 62 62 // ==================================================================================================================== … … 185 185 // VPS constants 186 186 // ==================================================================================================================== 187 #if QC_MVHEVC_B0046 188 #define MAX_LAYER_NUM MAX_VIEW_NUM 189 #endif 187 190 #if VIDYO_VPS_INTEGRATION 188 191 #define MAX_LAYER_NUM MAX_VIEW_NUM … … 480 483 NAL_UNIT_CODED_SLICE, 481 484 #if H0566_TLA 485 #if QC_REM_IDV_B0046 486 NAL_UNIT_RESERVED, 487 #else 482 488 NAL_UNIT_CODED_SLICE_IDV, 489 #endif 483 490 NAL_UNIT_CODED_SLICE_TLA, 484 491 NAL_UNIT_CODED_SLICE_CRA, … … 508 515 NAL_UNIT_RESERVED_23, 509 516 NAL_UNIT_UNSPECIFIED_24, 510 #if VIDYO_VPS_INTEGRATION 517 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 511 518 NAL_UNIT_VPS, 512 519 #else -
trunk/source/Lib/TLibCommon/NAL.h
r100 r210 51 51 NalRefIdc m_nalRefIDC; ///< nal_ref_idc 52 52 #endif 53 #if VIDYO_VPS_INTEGRATION 53 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 54 54 unsigned m_layerId; 55 55 unsigned m_temporalId; ///< temporal_id … … 69 69 NalUnitType nalUnitType, 70 70 Bool nalRefFlag, 71 #if !VIDYO_VPS_INTEGRATION 71 #if !VIDYO_VPS_INTEGRATION & !QC_MVHEVC_B0046 72 72 Int viewId, 73 73 Bool isDepth, … … 78 78 :m_nalUnitType (nalUnitType) 79 79 ,m_nalRefFlag (nalRefFlag) 80 #if !VIDYO_VPS_INTEGRATION 80 #if !VIDYO_VPS_INTEGRATION & !QC_MVHEVC_B0046 81 81 ,m_viewId (viewId) 82 82 ,m_isDepth (isDepth) … … 139 139 return m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR 140 140 #if H0566_TLA 141 #if !QC_REM_IDV_B0046 141 142 || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDV 143 #endif 142 144 || m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA 143 145 || m_nalUnitType == NAL_UNIT_CODED_SLICE_TLA -
trunk/source/Lib/TLibCommon/TComDataCU.cpp
r205 r210 4331 4331 { 4332 4332 // col [2] 4333 #if !QC_TMVP_IDX_MOD_B0046 4333 4334 Int iRefIdxSkip[2] = {-1, -1}; 4334 4335 for (Int i=0; i<2; i++) … … 4350 4351 iRefIdxSkip[i] = (iRefIdxTmp != -1) ? iRefIdxTmp : 0; 4351 4352 } 4353 #endif 4352 4354 //>> MTK colocated-RightBottom 4353 4355 UInt uiPartIdxRB; … … 4361 4363 4362 4364 TComMv cColMv; 4365 #if QC_TMVP_IDX_MOD_B0046 4366 Int iRefIdx = 0; 4367 #else 4363 4368 Int iRefIdx; 4364 4369 #endif 4365 4370 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 4366 4371 { … … 4395 4400 } 4396 4401 } 4402 #if !QC_TMVP_IDX_MOD_B0046 4397 4403 iRefIdx = iRefIdxSkip[0]; 4398 4404 #else 4405 iRefIdx = 0; 4406 #endif 4399 4407 Bool bExistMV = false; 4400 4408 UInt uiPartIdxCenter; … … 4414 4422 if ( getSlice()->isInterB() ) 4415 4423 { 4424 #if !QC_TMVP_IDX_MOD_B0046 4416 4425 iRefIdx = iRefIdxSkip[1]; 4426 #else 4427 iRefIdx = 0; 4428 #endif 4417 4429 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx); 4418 4430 if( bExistMV == false ) … … 6427 6439 if( pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) >= 0 ) 6428 6440 { 6441 #if QC_IV_AS_LT_B0046 6442 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getIsLongTerm(); 6443 Bool bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm(); 6444 iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ); 6445 if ( (bIsCurrRefLongTerm == bIsNeibRefLongTerm) && (iNeibRefPOC == iCurrRefPOC) ) 6446 #else 6429 6447 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6430 6448 { … … 6433 6451 iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ); 6434 6452 if( iNeibRefPOC == iCurrRefPOC ) // Same Reference Frame But Diff List// 6453 #endif 6435 6454 { 6436 6455 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx); … … 6569 6588 Int iNeibRefPOC; 6570 6589 6590 #if QC_IV_AS_LT_B0046 6591 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getIsLongTerm(); 6592 Bool bIsNeibRefLongTerm = false; 6593 #endif 6571 6594 if( pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) >= 0 ) 6572 6595 { 6573 6596 iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ); 6597 #if QC_IV_AS_LT_B0046 6598 bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm() ; 6599 if ( (bIsCurrRefLongTerm == bIsNeibRefLongTerm) && (iNeibRefPOC == iCurrRefPOC) ) 6600 #else 6574 6601 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6575 6602 return false; 6576 6603 if( iNeibRefPOC == iCurrRefPOC ) // Same Reference Frame But Diff List// 6604 #endif 6577 6605 { 6578 6606 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx); … … 6592 6620 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList)->getMv(uiIdx); 6593 6621 TComMv rcMv; 6594 6622 #if QC_IV_AS_LT_B0046 6623 bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx))->getIsLongTerm(); 6624 if ( bIsCurrRefLongTerm == bIsNeibRefLongTerm ) 6625 { 6626 #else 6595 6627 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6596 6628 { 6597 6629 return false; 6598 6630 } 6599 6631 #endif 6600 6632 Int iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC ); 6601 6633 if ( iScale == 4096 ) … … 6612 6644 pInfo->m_acMvCand[ pInfo->iN++] = rcMv; 6613 6645 return true; 6646 #if QC_IV_AS_LT_B0046 6647 } 6648 #endif 6614 6649 } 6615 6650 //---------------------- V2(END) --------------------// … … 6619 6654 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx); 6620 6655 TComMv rcMv; 6621 6656 #if QC_IV_AS_LT_B0046 6657 bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm(); ; 6658 if ( bIsCurrRefLongTerm == bIsNeibRefLongTerm ) 6659 { 6660 #else 6622 6661 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6623 6662 { 6624 6663 return false; 6625 6664 } 6626 6665 #endif 6627 6666 Int iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC ); 6628 6667 if ( iScale == 4096 ) … … 6639 6678 pInfo->m_acMvCand[ pInfo->iN++] = rcMv; 6640 6679 return true; 6680 #if QC_IV_AS_LT_B0046 6681 } 6682 #endif 6641 6683 } 6642 6684 //---------------------- V3(END) --------------------// … … 6749 6791 Int iColPOC, iColRefPOC, iCurrPOC, iCurrRefPOC, iScale; 6750 6792 #if SONY_COLPIC_AVAILABILITY 6793 #if QC_IV_AS_LT_B0046 6794 Int iColViewOrderIdx, iCurrViewOrderIdx, iCurrRefViewOrderIdx; 6795 #else 6751 6796 Int iColViewOrderIdx, iColRefViewOrderIdx, iCurrViewOrderIdx, iCurrRefViewOrderIdx; 6797 #endif 6752 6798 #endif 6753 6799 TComMv cColMv; … … 6780 6826 } 6781 6827 6782 #if !SONY_COLPIC_AVAILABILITY 6828 #if !SONY_COLPIC_AVAILABILITY&!QC_IV_AS_LT_B0046 6783 6829 if( m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewId() != m_pcSlice->getViewId() ) 6784 6830 return false; … … 6808 6854 iColRefPOC = pColCU->getSlice()->getRefPOC(eColRefPicList, iColRefIdx); 6809 6855 6856 #if !QC_IV_AS_LT_B0046 6810 6857 #if SONY_COLPIC_AVAILABILITY 6811 6858 iColRefViewOrderIdx = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewOrderIdx(); … … 6816 6863 } 6817 6864 #endif 6818 6865 #else 6866 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getIsLongTerm(); 6867 Bool bIsColRefLongTerm = pColCU->getSlice()->getWasLongTerm(eColRefPicList, iColRefIdx); 6868 if(bIsCurrRefLongTerm != bIsColRefLongTerm) 6869 { 6870 assert( ((iColPOC == iColRefPOC)&&(iCurrPOC != iCurrRefPOC))||((iColPOC != iColRefPOC)&&(iCurrPOC == iCurrRefPOC))); 6871 return false; 6872 } 6873 #endif 6819 6874 cColMv = pColCU->getCUMvField(eColRefPicList)->getMv(uiAbsPartAddr); 6820 6875 6821 6876 iCurrRefPOC = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getPOC(); 6877 #if QC_IV_AS_LT_B0046 6878 { 6879 assert( ((iColPOC != iColRefPOC)&&(iCurrPOC != iCurrRefPOC))||((iColPOC == iColRefPOC)&&(iCurrPOC == iCurrRefPOC))); 6880 if(!bIsCurrRefLongTerm) //short-term 6881 { 6882 iScale = xGetDistScaleFactor(iCurrPOC, iCurrRefPOC, iColPOC, iColRefPOC); 6883 if ( iScale == 4096 ) 6884 { 6885 rcMv = cColMv; 6886 } 6887 else 6888 { 6889 rcMv = cColMv.scaleMv( iScale ); 6890 } 6891 }else 6892 #if QC_MVHEVC_B0046 6893 rcMv = cColMv; //inter-view 6894 #else 6895 { 6896 #if SONY_COLPIC_AVAILABILITY 6897 Int iColRefViewOrderIdx = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewOrderIdx(); 6898 iScale = xGetDistScaleFactor(iCurrViewOrderIdx, iCurrRefViewOrderIdx, iColViewOrderIdx, iColRefViewOrderIdx); 6899 if ( iScale == 4096 ) 6900 { 6901 rcMv = cColMv; 6902 } 6903 else 6904 { 6905 rcMv = cColMv.scaleMv( iScale ); 6906 } 6907 #else 6908 return false; 6909 #endif 6910 } 6911 #endif 6912 } 6913 #else 6822 6914 #if SONY_COLPIC_AVAILABILITY 6823 6915 iScale = 0; … … 6841 6933 rcMv = cColMv.scaleMv( iScale ); 6842 6934 } 6843 6935 #endif 6844 6936 return true; 6845 6937 } -
trunk/source/Lib/TLibCommon/TComDepthMapGenerator.h
r189 r210 239 239 Bool m_bDecoder; 240 240 TComPrediction* m_pcPrediction; 241 #if VIDYO_VPS_INTEGRATION 241 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 242 242 TComVPSAccess* m_pcVPSAccess; 243 243 #endif -
trunk/source/Lib/TLibCommon/TComPic.cpp
r189 r210 519 519 UInt uiTempLayer = currSlice->getRefPic(eRefPicList, lpRef)->getCurrSlice()->getTLayer(); 520 520 Int iTempDiff = (iTempPoc > iPOCCurr) ? (iTempPoc - iPOCCurr): (iPOCCurr - iTempPoc); 521 #if QC_REM_IDV_B0046 522 TComSlice* refSlice = currSlice->getRefPic(eRefPicList, lpRef)->getCurrSlice(); 523 bRAP = (refSlice->getSPS()->getViewId() && (refSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || refSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA))? 1: 0; 524 #else 521 525 bRAP = (currSlice->getRefPic(eRefPicList, lpRef)->getCurrSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDV? 1:0); 526 #endif 522 527 if( bRAP) 523 528 { -
trunk/source/Lib/TLibCommon/TComPic.h
r189 r210 140 140 TComSlice* getSlice(Int i) { return m_apcPicSym->getSlice(i); } 141 141 TComSlice* getCurrSlice() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx); } 142 #if VIDYO_VPS_INTEGRATION 142 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 143 143 TComVPS* getVPS() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx)->getVPS(); } 144 144 #endif -
trunk/source/Lib/TLibCommon/TComPrediction.cpp
r189 r210 924 924 } 925 925 #endif 926 #if !QC_MVHEVC_B0046 926 927 Int ixFrac = iHor & 0x3; 927 928 Int iyFrac = iVer & 0x3; 929 #endif 928 930 Int iRefOffset = ( iHor >> 2 ) + ( iVer >> 2 ) * iRefStride; 929 931 #endif -
trunk/source/Lib/TLibCommon/TComPrediction.h
r189 r210 105 105 #else 106 106 Void xPredInterLumaBlk ( TComDataCU *cu, TComPicYuv *refPic, UInt partAddr, TComMv *mv, Int width, Int height, TComYuv *&dstPic, Bool bi ); 107 Void xPredInterChromaBlk( TComDataCU *cu, TComPicYuv *refPic, UInt partAddr, TComMv *mv, Int width, Int height, TComYuv *&dstPic, Bool bi ); 107 108 #endif 108 Void xPredInterChromaBlk( TComDataCU *cu, TComPicYuv *refPic, UInt partAddr, TComMv *mv, Int width, Int height, TComYuv *&dstPic, Bool bi );109 109 Void xWeightedAverage ( TComDataCU* pcCU, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, Int iRefIdx0, Int iRefIdx1, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvDst ); 110 110 -
trunk/source/Lib/TLibCommon/TComSlice.cpp
r189 r210 44 44 45 45 TComSlice::TComSlice() 46 #if QC_MVHEVC_B0046 47 : m_iPPSId ( 0 ) 48 #else 46 49 : m_iPPSId ( -1 ) 50 #endif 47 51 , m_iPOC ( 0 ) 48 52 , m_iLastIDR ( 0 ) … … 142 146 resetWpScalingLC(m_weightPredTableLC); 143 147 initWpAcDcParam(); 148 #if QC_IV_AS_LT_B0046 149 for(Int iNumCount = 0; iNumCount < MAX_NUM_REF+1; iNumCount++) 150 { 151 m_bWasLongTerm[0][iNumCount] = false; 152 m_bWasLongTerm[1][iNumCount] = false; 153 } 154 #endif 144 155 } 145 156 … … 472 483 { 473 484 pcRefPic = xGetInterViewRefPic( rapcInterViewRefPics, getViewId() + m_pcSPS->getUsableInterViewRef(i) ); 485 #if QC_IV_AS_LT_B0046 486 pcRefPic->setIsLongTerm( 1 ); 487 #else 474 488 pcRefPic->setIsLongTerm( 0 ); 489 #endif 475 490 pcRefPic->getPicYuvRec()->extendPicBorder(); 476 491 RefPicSetIvCurr[NumPocIvCurr] = pcRefPic; … … 513 528 { 514 529 m_apcRefPicList[0][cIdx] = m_RefPicListModification.getRefPicListModificationFlagL0() ? refPicListTemp0[ m_RefPicListModification.getRefPicSetIdxL0(cIdx) ] : refPicListTemp0[cIdx]; 530 #if QC_IV_AS_LT_B0046 531 setWasLongTerm(m_apcRefPicList[0][cIdx]->getIsLongTerm(), REF_PIC_LIST_0, cIdx); 532 #endif 515 533 } 516 534 if( m_eSliceType == P_SLICE ) … … 524 542 { 525 543 m_apcRefPicList[1][cIdx] = m_RefPicListModification.getRefPicListModificationFlagL1() ? refPicListTemp1[ m_RefPicListModification.getRefPicSetIdxL1(cIdx) ] : refPicListTemp1[cIdx]; 544 #if QC_IV_AS_LT_B0046 545 setWasLongTerm(m_apcRefPicList[1][cIdx]->getIsLongTerm(), REF_PIC_LIST_1, cIdx); 546 #endif 526 547 } 527 548 } … … 876 897 for(i=0;i<pReferencePictureSet->getNumberOfPositivePictures()+pReferencePictureSet->getNumberOfNegativePictures();i++) 877 898 { 899 #if QC_IV_AS_LT_B0046 900 if( rpcPic->getPicSym()->getSlice(0)->getPOC() == this->getPOC() + pReferencePictureSet->getDeltaPOC(i)) 901 #else 878 902 if(!rpcPic->getIsLongTerm() && rpcPic->getPicSym()->getSlice(0)->getPOC() == this->getPOC() + pReferencePictureSet->getDeltaPOC(i)) 903 #endif 879 904 { 880 905 isReference = 1; … … 886 911 for(;i<pReferencePictureSet->getNumberOfPictures();i++) 887 912 { 913 #if QC_IV_AS_LT_B0046 914 if( (rpcPic->getPicSym()->getSlice(0)->getPOC()%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) == pReferencePictureSet->getPOC(i)%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) 915 #else 888 916 if(rpcPic->getIsLongTerm() && (rpcPic->getPicSym()->getSlice(0)->getPOC()%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) == pReferencePictureSet->getPOC(i)%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) 917 #endif 889 918 { 890 919 isReference = 1; … … 1390 1419 // Video parameter set (VPS) 1391 1420 // ------------------------------------------------------------------------------------------------ 1421 #if QC_MVHEVC_B0046 1422 TComVPS::TComVPS() 1423 : m_VPSId ( 0) 1424 , m_uiMaxTLayers ( 1) 1425 , m_uiMaxLayers ( 1) 1426 , m_bTemporalIdNestingFlag (false) 1427 , m_uiNumHRDParameter ( 0) 1428 , m_numAddiLayerOperationPoints (2) 1429 , m_numAddiProLevelSets ( 1) 1430 { 1431 for( Int i = 0; i < MAX_LAYER_NUM; i++) 1432 { 1433 m_numOpLayerIdMinus1[i] = 0; 1434 if(i) 1435 m_numDirectRefLayer[i] = 1; 1436 else 1437 m_numDirectRefLayer[i] = 0; 1438 for( Int j = 0; j < MAX_LAYER_NUM; j++) 1439 { 1440 m_numDirectRefID[i][j] = 0; 1441 m_numOpLayerId[i][j] = 0; 1442 } 1443 m_uiViewId[i] = 0; 1444 m_iViewOrderIdx[i] = 0; 1445 } 1446 1447 for( Int i = 0; i < MAX_TLAYER; i++) 1448 { 1449 m_numReorderPics[i] = 0; 1450 m_uiMaxDecPicBuffering[i] = 0; 1451 m_uiMaxLatencyIncrease[i] = 0; 1452 } 1453 } 1454 1455 TComVPS::~TComVPS() 1456 { 1457 } 1458 #else 1392 1459 #if VIDYO_VPS_INTEGRATION 1393 1460 TComVPS::TComVPS() … … 1422 1489 1423 1490 #endif 1424 1491 #endif 1425 1492 1426 1493 // ------------------------------------------------------------------------------------------------ … … 1429 1496 1430 1497 TComSPS::TComSPS() 1431 #if VIDYO_VPS_INTEGRATION 1498 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1432 1499 : m_VPSId ( 0) 1433 1500 , m_SPSId ( 0) … … 1481 1548 , m_bLCMod (false) 1482 1549 #if H0412_REF_PIC_LIST_RESTRICTION 1550 #if QC_MVHEVC_B0046 1551 , m_restrictedRefPicListsFlag ( 0) 1552 #else 1483 1553 , m_restrictedRefPicListsFlag ( 1) 1554 #endif 1484 1555 , m_listsModificationPresentFlag( 0) 1485 1556 #endif … … 1522 1593 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 1523 1594 , m_bUseDMM (false) 1595 #endif 1596 #if FLEX_CODING_ORDER_M23723 && HHI_DMM_PRED_TEX 1597 , m_bUseDMM34 (false) 1524 1598 #endif 1525 1599 #if OL_QTLIMIT_PREDCODING_B0068 … … 1734 1808 TComSPS::initMultiviewSPS( UInt uiViewId, Int iViewOrderIdx, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset ) 1735 1809 { 1810 #if !QC_MVHEVC_B0046 1736 1811 AOT( uiViewId == 0 && iViewOrderIdx != 0 ); 1737 1812 AOT( uiViewId != 0 && iViewOrderIdx == 0 ); 1738 1813 AOT( uiViewId != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) ); 1739 1814 #endif 1740 1815 m_uiViewId = uiViewId; 1741 1816 m_iViewOrderIdx = iViewOrderIdx; … … 1745 1820 ::memset( m_aaiCodedScale, 0x00, sizeof( m_aaiCodedScale ) ); 1746 1821 ::memset( m_aaiCodedOffset, 0x00, sizeof( m_aaiCodedOffset ) ); 1822 #if !QC_MVHEVC_B0046 1747 1823 if( !m_bCamParInSliceHeader ) 1748 1824 { … … 1755 1831 } 1756 1832 } 1833 #endif 1757 1834 } 1758 1835 … … 2374 2451 , m_ppsMap(MAX_NUM_PPS) 2375 2452 , m_apsMap(MAX_NUM_APS) 2376 #if VIDYO_VPS_INTEGRATION 2453 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 2377 2454 , m_vpsMap(MAX_NUM_VPS) 2378 2455 #endif -
trunk/source/Lib/TLibCommon/TComSlice.h
r189 r210 144 144 #endif 145 145 146 #if VIDYO_VPS_INTEGRATION 146 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 147 147 /// VPS class 148 148 … … 156 156 157 157 UInt m_uiExtensionType; 158 158 #if !QC_MVHEVC_B0046 159 159 Bool m_bDependentFlag[MAX_LAYER_NUM]; 160 #else 161 UInt m_uiNumHRDParameter; 162 UInt m_numAddiLayerOperationPoints; 163 UInt m_numAddiProLevelSets; 164 UInt m_numDirectRefLayer[MAX_LAYER_NUM]; 165 UInt m_numDirectRefID[MAX_LAYER_NUM][MAX_LAYER_NUM]; 166 UInt m_numOpLayerIdMinus1[MAX_LAYER_NUM]; 167 UInt m_numOpLayerId[MAX_LAYER_NUM][MAX_LAYER_NUM]; 168 #endif 160 169 UInt m_uiViewId[MAX_LAYER_NUM]; 170 #if !QC_MVHEVC_B0046 161 171 Bool m_bDepthFlag[MAX_LAYER_NUM]; 172 #endif 162 173 Int m_iViewOrderIdx[MAX_LAYER_NUM]; 174 #if !QC_MVHEVC_B0046 163 175 UInt m_uiDependentLayer[MAX_LAYER_NUM]; 176 #endif 164 177 165 178 UInt m_numReorderPics[MAX_TLAYER]; … … 182 195 Bool getTemporalNestingFlag () { return m_uiMaxLayers; } 183 196 Void setTemporalNestingFlag (UInt t) { m_bTemporalIdNestingFlag = t; } 184 197 #if !QC_MVHEVC_B0046 185 198 Void setExtensionType(UInt v) { m_uiExtensionType = v; } 186 199 UInt getExtensionType() { return m_uiExtensionType; } … … 188 201 Void setDependentFlag(Bool d, UInt layer) { m_bDependentFlag[layer] = d; } 189 202 Bool getDependentFlag(UInt layer) { return m_bDependentFlag[layer]; } 190 203 #endif 191 204 Void setViewId(UInt v, UInt layer) { m_uiViewId[layer] = v; } 192 205 UInt getViewId(UInt layer) { return m_uiViewId[layer]; } 193 206 #if !QC_MVHEVC_B0046 194 207 Void setDepthFlag(Bool d, UInt layer) { m_bDepthFlag[layer] = d; } 195 208 Bool getDepthFlag(UInt layer) { return m_bDepthFlag[layer]; } 196 209 #endif 197 210 Void setViewOrderIdx(Int v, UInt layer) { m_iViewOrderIdx[layer] = v; } 198 211 Int getViewOrderIdx(UInt layer) { return m_iViewOrderIdx[layer]; } 199 212 #if !QC_MVHEVC_B0046 200 213 Void setDependentLayer(UInt v, UInt layer) { m_uiDependentLayer[layer] = v; } 201 214 UInt getDependentLayer(UInt layer) { return m_uiDependentLayer[layer]; } 202 215 #endif 203 216 Void setNumReorderPics(UInt v, UInt tLayer) { m_numReorderPics[tLayer] = v; } 204 217 UInt getNumReorderPics(UInt tLayer) { return m_numReorderPics[tLayer]; } … … 209 222 Void setMaxLatencyIncrease(UInt v, UInt tLayer) { m_uiMaxLatencyIncrease[tLayer] = v; } 210 223 UInt getMaxLatencyIncrease(UInt tLayer) { return m_uiMaxLatencyIncrease[tLayer]; } 211 224 #if QC_MVHEVC_B0046 225 Void setNumHRDParameters(UInt n) { m_uiNumHRDParameter = n; } 226 UInt getNumHRDParameters() { return m_uiNumHRDParameter; } 227 Void setNumDirectRefLayer(UInt n, UInt layer) { m_numDirectRefLayer[layer] = n; }; 228 UInt getNumDirectRefLayer(UInt layer) { return m_numDirectRefLayer[layer]; }; 229 Void setDirectRefLayerId (UInt n, UInt layer, UInt refId) { m_numDirectRefID[layer][refId] = n; assert(refId < MAX_NUM_REF ); }; 230 UInt getDirectRefLayerId ( UInt layer, UInt refId) { return m_numDirectRefID[layer][refId]; }; 231 UInt getNumAddiLayerOperationPoints( ) { return m_numAddiLayerOperationPoints; }; 232 Void setNumAddiLayerOperationPoints(UInt n) { m_numAddiLayerOperationPoints = n; }; 233 Void setNumAddiProLevelSets (UInt n) { m_numAddiProLevelSets = n;} 234 UInt getNumAddiProLevelSets ( ) { return m_numAddiProLevelSets;} 235 236 Void setNumOpLayerIdMinus1 (UInt n, UInt layer) { m_numOpLayerIdMinus1[layer] = n;} 237 UInt getNumOpLayerIdMinus1 (UInt layer ) { return m_numOpLayerIdMinus1[layer];} 238 239 Void setNumOpLayerId (UInt n, UInt layer, UInt OpId) { m_numOpLayerId[layer][OpId] = n;} 240 UInt getNumOpLayerId (UInt layer, UInt OpId ) { return m_numOpLayerId[layer][OpId];} 241 242 #endif 212 243 }; 213 244 … … 218 249 { 219 250 private: 220 #if VIDYO_VPS_INTEGRATION 251 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 221 252 Int m_VPSId; 222 253 #endif … … 363 394 #endif 364 395 396 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER_M23723 397 Bool m_bUseDMM34; 398 #endif 399 365 400 #if OL_QTLIMIT_PREDCODING_B0068 366 401 Bool m_bUseQTLPC; … … 391 426 TComSPS(); 392 427 virtual ~TComSPS(); 393 #if VIDYO_VPS_INTEGRATION 428 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 394 429 Int getVPSId () { return m_VPSId; } 395 430 Void setVPSId (Int i) { m_VPSId = i; } … … 643 678 #endif 644 679 680 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER_M23723 681 Bool getUseDMM34() { return m_bUseDMM34; } 682 Void setUseDMM34( Bool b ) { m_bUseDMM34 = b; } 683 #endif 684 645 685 #if OL_QTLIMIT_PREDCODING_B0068 646 686 Void setUseQTLPC( Bool b ) { m_bUseQTLPC = b; } … … 1221 1261 1222 1262 // access channel 1223 #if VIDYO_VPS_INTEGRATION 1263 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1224 1264 TComVPS* m_pcVPS; 1265 #endif 1266 #if QC_IV_AS_LT_B0046 1267 Bool m_bWasLongTerm[2][MAX_NUM_REF+1]; //was long-term picture 1225 1268 #endif 1226 1269 TComSPS* m_pcSPS; … … 1297 1340 Int m_aaiCodedOffset[2][MAX_VIEW_NUM]; 1298 1341 1299 #if SONY_COLPIC_AVAILABILITY 1342 #if SONY_COLPIC_AVAILABILITY|QC_MVHEVC_B0046 1300 1343 Int m_iViewOrderIdx; 1301 1344 #endif … … 1311 1354 Void initTiles(); 1312 1355 1313 #if VIDYO_VPS_INTEGRATION 1356 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1314 1357 Void setVPS ( TComVPS* pcVPS ) { m_pcVPS = pcVPS; } 1315 1358 TComVPS* getVPS () { return m_pcVPS; } 1316 1359 #endif 1360 #if QC_IV_AS_LT_B0046 1361 Void setWasLongTerm( Bool lt, RefPicList e, Int iRefIdx ) { m_bWasLongTerm[e][iRefIdx] = lt; } 1362 Bool getWasLongTerm( RefPicList e, Int iRefIdx ) { return m_bWasLongTerm[e][iRefIdx] ; } 1363 #endif 1364 1317 1365 Void setSPS ( TComSPS* pcSPS ) { m_pcSPS = pcSPS; } 1318 1366 TComSPS* getSPS () { return m_pcSPS; } … … 1587 1635 Void setViewId( Int viewId ) { m_viewId = viewId; } 1588 1636 Int getViewId() { return m_viewId; } 1637 #if QC_MVHEVC_B0046 1638 Void setViewOrderIdx(Int v, UInt layer) { m_iViewOrderIdx = v; } 1639 Int getViewOrderIdx() { return m_iViewOrderIdx; } 1640 #endif 1589 1641 Void setIsDepth( Bool isDepth ) { m_isDepth = isDepth; } 1590 1642 Bool getIsDepth() { return m_isDepth; } … … 1655 1707 } 1656 1708 1709 #if QC_MVHEVC_B0046 1710 Void clearPSList() 1711 { 1712 m_paramsetMap.clear(); 1713 } 1714 #endif 1657 1715 private: 1658 1716 std::map<Int,T *> m_paramsetMap; … … 1665 1723 ParameterSetManager(); 1666 1724 virtual ~ParameterSetManager(); 1667 #if VIDYO_VPS_INTEGRATION 1725 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1668 1726 //! store video parameter set and take ownership of it 1669 1727 Void storeVPS(TComVPS *vps) { m_vpsMap.storePS( vps->getVPSId(), vps); }; … … 1671 1729 TComVPS* getVPS(Int vpsId) { return m_vpsMap.getPS(vpsId); }; 1672 1730 TComVPS* getFirstVPS() { return m_vpsMap.getFirstPS(); }; 1731 #if QC_MVHEVC_B0046 1732 Void clearVPS() { m_vpsMap.clearPSList(); }; 1733 Void clearSPS() { m_spsMap.clearPSList(); }; 1734 Void clearPPS() { m_ppsMap.clearPSList(); }; 1735 #endif 1673 1736 #endif 1674 1737 //! store sequence parameter set and take ownership of it … … 1693 1756 ParameterSetMap<TComPPS> m_ppsMap; 1694 1757 ParameterSetMap<TComAPS> m_apsMap; 1695 #if VIDYO_VPS_INTEGRATION 1758 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1696 1759 ParameterSetMap<TComVPS> m_vpsMap; 1697 1760 #endif -
trunk/source/Lib/TLibCommon/TypeDef.h
r205 r210 41 41 //! \ingroup TLibCommon 42 42 //! \{ 43 43 #define QC_MVHEVC_B0046 0 //JCT3V-B0046: disable 3DHEVC tools 44 #define QC_IV_AS_LT_B0046 1 //JCT3V-B0046: inter-view reference pictures are treated as long-term pictures, scaling of motion vectors for DCP based on ViewId/ViewOrderIdx is disabled 45 #define QC_TMVP_IDX_MOD_B0046 1 //JCT3V-B0046: the reference index for temporal merging candidate is set to 0, as defined in HEVC 46 #define QC_REM_IDV_B0046 1 //JCT3V-B0046: removal of IDV NAL unit type 47 #define FIX_DEL_NULLPTR 1 48 #define FIX_MISUSE_REFINDEX 1 49 #define FIX_FCO_COMP_WARNING 1 50 #define DV_V_RESTRICTION_B0037 1 // JCT3V-B0037 disparity vector vertical range restriction 51 52 #if !QC_MVHEVC_B0046 44 53 ///// ***** FIXES ********* 45 54 // A … … 52 61 #define FIX_DMM_NEG_DIST 1 53 62 #define FIX_LGE_DVMCP_B0133 1 54 #define FIX_MISUSE_REFINDEX 1 55 63 64 65 // FCO 66 #define FLEX_CODING_ORDER_M23723 1 67 #if FLEX_CODING_ORDER_M23723 68 #define DISABLE_FCO_FOR_VSO 0 // Optional compile settings to disable VSO with FCO. 69 #endif 56 70 57 71 ///// ***** PATCHES ********* … … 178 192 179 193 #define HHI_MPI_MERGE_POS 0 180 194 #endif 181 195 ///// ***** HM 6.1 ********* 182 196 #define SKIPFRAME_BUGFIX 1 ///< bug fix to enable skipFrame at decoder … … 478 492 // VPS INTEGRATION 479 493 // ==================================================================================================================== 480 494 #if !QC_MVHEVC_B0046 481 495 #if VIDYO_VPS_INTEGRATION 482 496 #define MAX_NUM_VPS 10 483 497 #endif 498 #else 499 #define MAX_NUM_VPS 1 500 #endif 501 484 502 485 503 // ====================================================================================================================
Note: See TracChangeset for help on using the changeset viewer.