Changeset 194 in 3DVCSoftware for branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon
- Timestamp:
- 26 Nov 2012, 18:35:20 (12 years ago)
- Location:
- branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/CommonDef.h
r189 r194 185 185 // VPS constants 186 186 // ==================================================================================================================== 187 #if MVHEVC 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 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|MVHEVC 511 518 NAL_UNIT_VPS, 512 519 #else -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/NAL.h
r100 r194 51 51 NalRefIdc m_nalRefIDC; ///< nal_ref_idc 52 52 #endif 53 #if VIDYO_VPS_INTEGRATION 53 #if VIDYO_VPS_INTEGRATION|MVHEVC 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 & !MVHEVC 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 & !MVHEVC 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 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 -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp
r189 r194 4307 4307 { 4308 4308 // col [2] 4309 #if !TMVP_INDEX_MODIFY 4309 4310 Int iRefIdxSkip[2] = {-1, -1}; 4310 4311 for (Int i=0; i<2; i++) … … 4326 4327 iRefIdxSkip[i] = (iRefIdxTmp != -1) ? iRefIdxTmp : 0; 4327 4328 } 4329 #endif 4328 4330 //>> MTK colocated-RightBottom 4329 4331 UInt uiPartIdxRB; … … 4337 4339 4338 4340 TComMv cColMv; 4341 #if TMVP_INDEX_MODIFY 4342 Int iRefIdx = 0; 4343 #else 4339 4344 Int iRefIdx; 4340 4345 #endif 4341 4346 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 4342 4347 { … … 4371 4376 } 4372 4377 } 4378 #if !TMVP_INDEX_MODIFY 4373 4379 iRefIdx = iRefIdxSkip[0]; 4374 4380 #else 4381 iRefIdx = 0; 4382 #endif 4375 4383 Bool bExistMV = false; 4376 4384 UInt uiPartIdxCenter; … … 4390 4398 if ( getSlice()->isInterB() ) 4391 4399 { 4400 #if !TMVP_INDEX_MODIFY 4392 4401 iRefIdx = iRefIdxSkip[1]; 4402 #else 4403 iRefIdx = 0; 4404 #endif 4393 4405 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx); 4394 4406 if( bExistMV == false ) … … 6400 6412 if( pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) >= 0 ) 6401 6413 { 6414 #if IV_AS_LT 6415 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getIsLongTerm(); 6416 Bool bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm(); 6417 iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ); 6418 if ( (bIsCurrRefLongTerm == bIsNeibRefLongTerm) && (iNeibRefPOC == iCurrRefPOC) ) 6419 #else 6402 6420 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6403 6421 { … … 6406 6424 iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ); 6407 6425 if( iNeibRefPOC == iCurrRefPOC ) // Same Reference Frame But Diff List// 6426 #endif 6408 6427 { 6409 6428 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx); … … 6542 6561 Int iNeibRefPOC; 6543 6562 6563 #if IV_AS_LT 6564 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getIsLongTerm(); 6565 Bool bIsNeibRefLongTerm = false; 6566 #endif 6544 6567 if( pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) >= 0 ) 6545 6568 { 6546 6569 iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ); 6570 #if IV_AS_LT 6571 bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm() ; 6572 if ( (bIsCurrRefLongTerm == bIsNeibRefLongTerm) && (iNeibRefPOC == iCurrRefPOC) ) 6573 #else 6547 6574 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6548 6575 return false; 6549 6576 if( iNeibRefPOC == iCurrRefPOC ) // Same Reference Frame But Diff List// 6577 #endif 6550 6578 { 6551 6579 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx); … … 6565 6593 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList)->getMv(uiIdx); 6566 6594 TComMv rcMv; 6567 6595 #if IV_AS_LT 6596 bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx))->getIsLongTerm(); 6597 if ( bIsCurrRefLongTerm == bIsNeibRefLongTerm ) 6598 { 6599 #else 6568 6600 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6569 6601 { 6570 6602 return false; 6571 6603 } 6572 6604 #endif 6573 6605 Int iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC ); 6574 6606 if ( iScale == 4096 ) … … 6585 6617 pInfo->m_acMvCand[ pInfo->iN++] = rcMv; 6586 6618 return true; 6619 #if IV_AS_LT 6620 } 6621 #endif 6587 6622 } 6588 6623 //---------------------- V2(END) --------------------// … … 6592 6627 TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx); 6593 6628 TComMv rcMv; 6594 6629 #if IV_AS_LT 6630 bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm(); ; 6631 if ( bIsCurrRefLongTerm == bIsNeibRefLongTerm ) 6632 { 6633 #else 6595 6634 if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) ) 6596 6635 { 6597 6636 return false; 6598 6637 } 6599 6638 #endif 6600 6639 Int iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC ); 6601 6640 if ( iScale == 4096 ) … … 6612 6651 pInfo->m_acMvCand[ pInfo->iN++] = rcMv; 6613 6652 return true; 6653 #if IV_AS_LT 6654 } 6655 #endif 6614 6656 } 6615 6657 //---------------------- V3(END) --------------------// … … 6722 6764 Int iColPOC, iColRefPOC, iCurrPOC, iCurrRefPOC, iScale; 6723 6765 #if SONY_COLPIC_AVAILABILITY 6766 #if IV_AS_LT 6767 Int iColViewOrderIdx, iCurrViewOrderIdx, iCurrRefViewOrderIdx; 6768 #else 6724 6769 Int iColViewOrderIdx, iColRefViewOrderIdx, iCurrViewOrderIdx, iCurrRefViewOrderIdx; 6770 #endif 6725 6771 #endif 6726 6772 TComMv cColMv; … … 6753 6799 } 6754 6800 6755 #if !SONY_COLPIC_AVAILABILITY 6801 #if !SONY_COLPIC_AVAILABILITY&!IV_AS_LT 6756 6802 if( m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewId() != m_pcSlice->getViewId() ) 6757 6803 return false; … … 6781 6827 iColRefPOC = pColCU->getSlice()->getRefPOC(eColRefPicList, iColRefIdx); 6782 6828 6829 #if !IV_AS_LT 6783 6830 #if SONY_COLPIC_AVAILABILITY 6784 6831 iColRefViewOrderIdx = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewOrderIdx(); … … 6789 6836 } 6790 6837 #endif 6791 6838 #else 6839 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getIsLongTerm(); 6840 Bool bIsColRefLongTerm = pColCU->getSlice()->getWasLongTerm(eColRefPicList, iColRefIdx); 6841 if(bIsCurrRefLongTerm != bIsColRefLongTerm) 6842 { 6843 assert( ((iColPOC == iColRefPOC)&&(iCurrPOC != iCurrRefPOC))||((iColPOC != iColRefPOC)&&(iCurrPOC == iCurrRefPOC))); 6844 return false; 6845 } 6846 #endif 6792 6847 cColMv = pColCU->getCUMvField(eColRefPicList)->getMv(uiAbsPartAddr); 6793 6848 6794 6849 iCurrRefPOC = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getPOC(); 6850 #if IV_AS_LT 6851 { 6852 assert( ((iColPOC != iColRefPOC)&&(iCurrPOC != iCurrRefPOC))||((iColPOC == iColRefPOC)&&(iCurrPOC == iCurrRefPOC))); 6853 if(!bIsCurrRefLongTerm) //short-term 6854 { 6855 iScale = xGetDistScaleFactor(iCurrPOC, iCurrRefPOC, iColPOC, iColRefPOC); 6856 if ( iScale == 4096 ) 6857 { 6858 rcMv = cColMv; 6859 } 6860 else 6861 { 6862 rcMv = cColMv.scaleMv( iScale ); 6863 } 6864 }else 6865 rcMv = cColMv; //inter-view 6866 } 6867 #else 6795 6868 #if SONY_COLPIC_AVAILABILITY 6796 6869 iScale = 0; … … 6814 6887 rcMv = cColMv.scaleMv( iScale ); 6815 6888 } 6816 6889 #endif 6817 6890 return true; 6818 6891 } -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComDepthMapGenerator.h
r189 r194 239 239 Bool m_bDecoder; 240 240 TComPrediction* m_pcPrediction; 241 #if VIDYO_VPS_INTEGRATION 241 #if VIDYO_VPS_INTEGRATION|MVHEVC 242 242 TComVPSAccess* m_pcVPSAccess; 243 243 #endif -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComPic.cpp
r189 r194 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 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 { -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComPic.h
r189 r194 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|MVHEVC 143 143 TComVPS* getVPS() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx)->getVPS(); } 144 144 #endif -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComPrediction.cpp
r189 r194 924 924 } 925 925 #endif 926 #if !MVHEVC 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 -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComPrediction.h
r189 r194 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 -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComSlice.cpp
r189 r194 44 44 45 45 TComSlice::TComSlice() 46 #if MVHEVC 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 IV_AS_LT 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 IV_AS_LT 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 IV_AS_LT 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 IV_AS_LT 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 IV_AS_LT 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 IV_AS_LT 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 MVHEVC 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|MVHEVC 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 MVHEVC 1551 , m_restrictedRefPicListsFlag ( 0) 1552 #else 1483 1553 , m_restrictedRefPicListsFlag ( 1) 1554 #endif 1484 1555 , m_listsModificationPresentFlag( 0) 1485 1556 #endif … … 1734 1805 TComSPS::initMultiviewSPS( UInt uiViewId, Int iViewOrderIdx, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset ) 1735 1806 { 1807 #if !MVHEVC 1736 1808 AOT( uiViewId == 0 && iViewOrderIdx != 0 ); 1737 1809 AOT( uiViewId != 0 && iViewOrderIdx == 0 ); 1738 1810 AOT( uiViewId != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) ); 1739 1811 #endif 1740 1812 m_uiViewId = uiViewId; 1741 1813 m_iViewOrderIdx = iViewOrderIdx; … … 1745 1817 ::memset( m_aaiCodedScale, 0x00, sizeof( m_aaiCodedScale ) ); 1746 1818 ::memset( m_aaiCodedOffset, 0x00, sizeof( m_aaiCodedOffset ) ); 1819 #if !MVHEVC 1747 1820 if( !m_bCamParInSliceHeader ) 1748 1821 { … … 1755 1828 } 1756 1829 } 1830 #endif 1757 1831 } 1758 1832 … … 2374 2448 , m_ppsMap(MAX_NUM_PPS) 2375 2449 , m_apsMap(MAX_NUM_APS) 2376 #if VIDYO_VPS_INTEGRATION 2450 #if VIDYO_VPS_INTEGRATION|MVHEVC 2377 2451 , m_vpsMap(MAX_NUM_VPS) 2378 2452 #endif -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TComSlice.h
r189 r194 144 144 #endif 145 145 146 #if VIDYO_VPS_INTEGRATION 146 #if VIDYO_VPS_INTEGRATION|MVHEVC 147 147 /// VPS class 148 148 … … 156 156 157 157 UInt m_uiExtensionType; 158 158 #if !MVHEVC 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 !MVHEVC 161 171 Bool m_bDepthFlag[MAX_LAYER_NUM]; 172 #endif 162 173 Int m_iViewOrderIdx[MAX_LAYER_NUM]; 174 #if !MVHEVC 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 !MVHEVC 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 !MVHEVC 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 !MVHEVC 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 MVHEVC 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|MVHEVC 221 252 Int m_VPSId; 222 253 #endif … … 391 422 TComSPS(); 392 423 virtual ~TComSPS(); 393 #if VIDYO_VPS_INTEGRATION 424 #if VIDYO_VPS_INTEGRATION|MVHEVC 394 425 Int getVPSId () { return m_VPSId; } 395 426 Void setVPSId (Int i) { m_VPSId = i; } … … 1221 1252 1222 1253 // access channel 1223 #if VIDYO_VPS_INTEGRATION 1254 #if VIDYO_VPS_INTEGRATION|MVHEVC 1224 1255 TComVPS* m_pcVPS; 1256 #endif 1257 #if IV_AS_LT 1258 Bool m_bWasLongTerm[2][MAX_NUM_REF+1]; //was long-term picture 1225 1259 #endif 1226 1260 TComSPS* m_pcSPS; … … 1297 1331 Int m_aaiCodedOffset[2][MAX_VIEW_NUM]; 1298 1332 1299 #if SONY_COLPIC_AVAILABILITY 1333 #if SONY_COLPIC_AVAILABILITY|MVHEVC 1300 1334 Int m_iViewOrderIdx; 1301 1335 #endif … … 1311 1345 Void initTiles(); 1312 1346 1313 #if VIDYO_VPS_INTEGRATION 1347 #if VIDYO_VPS_INTEGRATION|MVHEVC 1314 1348 Void setVPS ( TComVPS* pcVPS ) { m_pcVPS = pcVPS; } 1315 1349 TComVPS* getVPS () { return m_pcVPS; } 1316 1350 #endif 1351 #if IV_AS_LT 1352 Void setWasLongTerm( Bool lt, RefPicList e, Int iRefIdx ) { m_bWasLongTerm[e][iRefIdx] = lt; } 1353 Bool getWasLongTerm( RefPicList e, Int iRefIdx ) { return m_bWasLongTerm[e][iRefIdx] ; } 1354 #endif 1355 1317 1356 Void setSPS ( TComSPS* pcSPS ) { m_pcSPS = pcSPS; } 1318 1357 TComSPS* getSPS () { return m_pcSPS; } … … 1587 1626 Void setViewId( Int viewId ) { m_viewId = viewId; } 1588 1627 Int getViewId() { return m_viewId; } 1628 #if MVHEVC 1629 Void setViewOrderIdx(Int v, UInt layer) { m_iViewOrderIdx = v; } 1630 Int getViewOrderIdx() { return m_iViewOrderIdx; } 1631 #endif 1589 1632 Void setIsDepth( Bool isDepth ) { m_isDepth = isDepth; } 1590 1633 Bool getIsDepth() { return m_isDepth; } … … 1655 1698 } 1656 1699 1700 #if MVHEVC 1701 Void clearPSList() 1702 { 1703 m_paramsetMap.clear(); 1704 } 1705 #endif 1657 1706 private: 1658 1707 std::map<Int,T *> m_paramsetMap; … … 1665 1714 ParameterSetManager(); 1666 1715 virtual ~ParameterSetManager(); 1667 #if VIDYO_VPS_INTEGRATION 1716 #if VIDYO_VPS_INTEGRATION|MVHEVC 1668 1717 //! store video parameter set and take ownership of it 1669 1718 Void storeVPS(TComVPS *vps) { m_vpsMap.storePS( vps->getVPSId(), vps); }; … … 1671 1720 TComVPS* getVPS(Int vpsId) { return m_vpsMap.getPS(vpsId); }; 1672 1721 TComVPS* getFirstVPS() { return m_vpsMap.getFirstPS(); }; 1722 #if MVHEVC 1723 Void clearVPS() { m_vpsMap.clearPSList(); }; 1724 Void clearSPS() { m_spsMap.clearPSList(); }; 1725 Void clearPPS() { m_ppsMap.clearPSList(); }; 1726 #endif 1673 1727 #endif 1674 1728 //! store sequence parameter set and take ownership of it … … 1693 1747 ParameterSetMap<TComPPS> m_ppsMap; 1694 1748 ParameterSetMap<TComAPS> m_apsMap; 1695 #if VIDYO_VPS_INTEGRATION 1749 #if VIDYO_VPS_INTEGRATION|MVHEVC 1696 1750 ParameterSetMap<TComVPS> m_vpsMap; 1697 1751 #endif -
branches/HTM-5.0-Qualcomm/source/Lib/TLibCommon/TypeDef.h
r189 r194 41 41 //! \ingroup TLibCommon 42 42 //! \{ 43 43 #define MVHEVC 0 44 #define IV_AS_LT 1 //inter-view reference pictures are treated as long-term pictures 45 #define TMVP_INDEX_MODIFY 1 //the reference index for temporal merging candidate is set to 0, as defined in HEVC 46 #define QC_REM_IDV 1 //nal unit type NAL_UNIT_CODED_SLICE_IDV is removed. 47 #define BUG_FIX_HTM 1 48 #if !MVHEVC 44 49 ///// ***** FIXES ********* 45 50 // A … … 177 182 178 183 #define HHI_MPI_MERGE_POS 0 179 184 #endif 180 185 ///// ***** HM 6.1 ********* 181 186 #define SKIPFRAME_BUGFIX 1 ///< bug fix to enable skipFrame at decoder … … 477 482 // VPS INTEGRATION 478 483 // ==================================================================================================================== 479 484 #if !MVHEVC 480 485 #if VIDYO_VPS_INTEGRATION 481 486 #define MAX_NUM_VPS 10 482 487 #endif 488 #else 489 #define MAX_NUM_VPS 1 490 #endif 491 483 492 484 493 // ====================================================================================================================
Note: See TracChangeset for help on using the changeset viewer.