Changeset 450 in SHVCSoftware
- Timestamp:
- 8 Nov 2013, 07:03:24 (11 years ago)
- Location:
- branches/SHM-4.0-dev/source/Lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.cpp
r448 r450 459 459 //inter-layer reference picture 460 460 461 #if ILR_RESTR462 461 Int maxTidIlRefPicsPlus1 = ( m_layerId > 0 && m_activeNumILRRefIdx > 0)? m_pcVPS->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerId()) : 0; 463 462 if( m_layerId > 0 && m_activeNumILRRefIdx > 0 && ( ( (Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<= maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) ) 464 #else //#if ILR_RESTR465 if( m_layerId > 0 && m_activeNumILRRefIdx > 0 )466 #endif //#if ILR_RESTR467 463 { 468 464 #if REF_IDX_MFM … … 488 484 TComPic* rpsCurrList1[MAX_NUM_REF+1]; 489 485 #if SVC_EXTENSION 490 #if ILR_RESTR491 486 Int numInterLayerRPSPics = 0; 492 487 #if M0040_ADAPTIVE_RESOLUTION_CHANGE … … 577 572 #endif 578 573 } 579 #endif580 574 #if JCTVC_M0458_INTERLAYER_RPS_SIG 581 575 Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_activeNumILRRefIdx; … … 583 577 Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_numILRRefIdx; 584 578 #endif 585 #else 579 #else //SVC_EXTENSION 586 580 Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr; 587 #endif 581 #endif //SVC_EXTENSION 588 582 #if FIX1071 589 583 if (checkNumPocTotalCurr) … … 642 636 { 643 637 Int refLayerIdc = m_interLayerPredLayerIdc[i]; 644 #if ILR_RESTR645 638 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerId()); 646 639 if( ((Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<=maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) 647 #endif 640 { 648 641 rpsCurrList0[cIdx] = ilpPic[refLayerIdc]; 649 } 650 } 651 #endif 652 #endif 642 } 643 } 644 } 645 #endif 646 #endif //SVC_EXTENSION 653 647 for ( i=0; i<NumPocStCurr1; i++, cIdx++) 654 648 { … … 670 664 { 671 665 Int refLayerIdc = m_interLayerPredLayerIdc[i]; 672 #if ILR_RESTR 673 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerId()); 666 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerId()); 674 667 if( ((Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<=maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) 675 #endif 676 rpsCurrList0[cIdx] = ilpPic[refLayerIdc]; 668 { 669 rpsCurrList0[cIdx] = ilpPic[refLayerIdc]; 670 } 677 671 } 678 672 } … … 707 701 { 708 702 Int refLayerIdc = m_interLayerPredLayerIdc[i]; 709 #if ILR_RESTR710 703 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerId()); 711 704 if( ((Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<=maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) 712 #endif 713 rpsCurrList1[cIdx] = ilpPic[refLayerIdc]; 714 } 715 } 716 #endif 705 { 706 rpsCurrList1[cIdx] = ilpPic[refLayerIdc]; 707 } 708 } 709 } 710 #endif //SVC_EXTENSION 717 711 718 712 assert(cIdx == numPocTotalCurr); -
branches/SHM-4.0-dev/source/Lib/TLibCommon/TypeDef.h
r449 r450 122 122 #define JCTVC_M0203_INTERLAYER_PRED_IDC 1 ///< JCTVC-M0203: implementation of Inter-layer Prediction Indication 123 123 #if JCTVC_M0203_INTERLAYER_PRED_IDC 124 #define ILR_RESTR 1 ///< JCTVC-M0209: Inter-layer RPS and RPL125 #define ILR_RESTR_FIX 1 ///< Fix encoder crash when temporal layers are used with scalable coding126 124 #define EARLY_REF_PIC_MARKING 1 ///< Decoded picture marking of sub-layer non-reference pictures 127 125 #define N0120_MAX_TID_REF_PRESENT_FLAG 1 ///< JCTVC-N0120: max_tid_ref_pics_plus1_present_flag -
branches/SHM-4.0-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r448 r450 753 753 pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR)); 754 754 #if SVC_EXTENSION 755 #if ILR_RESTR && ILR_RESTR_FIX756 Int interLayerPredLayerIdcTmp[MAX_VPS_LAYER_ID_PLUS1];757 Int activeNumILRRefIdxTmp = 0;758 #endif759 755 if (m_layerId > 0) 760 756 { 757 Int interLayerPredLayerIdcTmp[MAX_VPS_LAYER_ID_PLUS1]; 758 Int activeNumILRRefIdxTmp = 0; 759 761 760 for( Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ ) 762 761 { … … 769 768 pcSlice->setBaseColPic( *cListPic, refLayerIdc ); 770 769 771 #if ILR_RESTR && ILR_RESTR_FIX772 770 // Apply temporal layer restriction to inter-layer prediction 773 771 Int maxTidIlRefPicsPlus1 = m_pcEncTop->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getLayerId()); … … 780 778 continue; // ILP is not valid due to temporal layer restriction 781 779 } 782 #endif783 780 784 781 const Window &scalEL = m_pcEncTop->getScaledRefLayerWindow(refLayerIdc); … … 809 806 } 810 807 811 #if ILR_RESTR && ILR_RESTR_FIX812 808 // Update the list of active inter-layer pictures 813 809 for ( Int i = 0; i < activeNumILRRefIdxTmp; i++) … … 821 817 pcSlice->setInterLayerPredEnabledFlag(false); 822 818 } 823 #endif824 819 825 820 if( pocCurr % m_pcCfg->getIntraPeriod() == 0 )
Note: See TracChangeset for help on using the changeset viewer.