Changeset 334 in SHVCSoftware for branches/SHM-3.0-dev/source/Lib
- Timestamp:
- 9 Aug 2013, 18:05:42 (11 years ago)
- Location:
- branches/SHM-3.0-dev/source/Lib
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-3.0-dev/source/Lib/TLibCommon/TComSlice.cpp
r324 r334 584 584 rpsCurrList0[cIdx] = RefPicSetStCurr0[i]; 585 585 } 586 #if RPL_INIT_N0316_N0082 587 #if REF_IDX_FRAMEWORK 588 if( m_layerId > 0 ) 589 { 590 #if JCTVC_M0458_INTERLAYER_RPS_SIG 591 for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++) 592 #else 593 for( i = 0; i < m_numILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++) 594 #endif 595 { 596 Int refLayerIdc = m_interLayerPredLayerIdc[i]; 597 #if ILR_RESTR 598 Int maxSubLayerForILPPlus1 = getVPS()->getMaxSublayerForIlpPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerId()); 599 if( ((Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<=maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) 600 #endif 601 rpsCurrList0[cIdx] = ilpPic[refLayerIdc]; 602 } 603 } 604 #endif 605 #endif 586 606 for ( i=0; i<NumPocStCurr1; i++, cIdx++) 587 607 { … … 592 612 rpsCurrList0[cIdx] = RefPicSetLtCurr[i]; 593 613 } 594 614 #if !RPL_INIT_N0316_N0082 595 615 #if REF_IDX_FRAMEWORK 596 616 if( m_layerId > 0 ) … … 611 631 } 612 632 #endif 633 #endif 613 634 assert(cIdx == numPocTotalCurr); 614 635 … … 692 713 TComRefPicListModification* refPicListModification = &m_RefPicListModification; 693 714 Int numberOfRpsCurrTempList = this->getNumRpsCurrTempList(); // total number of ref pics in listTemp0 including inter-layer ref pics 715 #if RPL_INIT_N0316_N0082 716 Int numberOfPocBeforeCurr = this->getNumNegativeRpsCurrTempList(); // number of negative temporal ref pics 717 #endif 694 718 695 719 assert(m_aiNumRefIdx[REF_PIC_LIST_0] > 1); … … 697 721 698 722 //set L0 inter-layer reference picture modification 723 #if RPL_INIT_N0316_N0082 724 Bool hasModification = (m_aiNumRefIdx[REF_PIC_LIST_0] == (numberOfPocBeforeCurr + m_activeNumILRRefIdx)) ? false : true; 725 #else 699 726 Bool hasModification = (m_aiNumRefIdx[REF_PIC_LIST_0] == numberOfRpsCurrTempList) ? false : true; 727 #endif 728 #if FINAL_RPL_CHANGE_N0082 729 hasModification = false; //modification is not necessary 730 #endif 700 731 refPicListModification->setRefPicListModificationFlagL0(hasModification); 701 732 if(hasModification) … … 721 752 #endif 722 753 { 754 #if RPL_INIT_N0316_N0082 755 if((numberOfPocBeforeCurr) >= m_aiNumRefIdx[REF_PIC_LIST_0]) 756 refPicListModification->setRefPicSetIdxL0(m_aiNumRefIdx[REF_PIC_LIST_0] - i, numberOfPocBeforeCurr); 757 else 758 { 759 refPicListModification->setRefPicSetIdxL0(m_aiNumRefIdx[REF_PIC_LIST_0] - i, numberOfPocBeforeCurr); 760 for (Int j = numberOfPocBeforeCurr; j < (m_aiNumRefIdx[REF_PIC_LIST_0] - i); j++) 761 refPicListModification->setRefPicSetIdxL0(j, j + m_activeNumILRRefIdx); 762 } 763 #else 723 764 refPicListModification->setRefPicSetIdxL0(m_aiNumRefIdx[REF_PIC_LIST_0] - i, numberOfRpsCurrTempList - i); 765 #endif 724 766 } 725 767 } … … 758 800 } 759 801 #endif 760 802 #if RPL_INIT_N0316_N0082 803 Int TComSlice::getNumNegativeRpsCurrTempList() 804 { 805 if( m_eSliceType == I_SLICE ) 806 { 807 return 0; 808 } 809 810 Int numPocBeforeCurr = 0; 811 for( UInt i = 0; i < m_pcRPS->getNumberOfNegativePictures(); i++ ) 812 { 813 if(m_pcRPS->getUsed(i)) 814 { 815 numPocBeforeCurr++; 816 } 817 } 818 819 return numPocBeforeCurr; 820 } 821 #endif 761 822 Int TComSlice::getNumRpsCurrTempList() 762 823 { -
branches/SHM-3.0-dev/source/Lib/TLibCommon/TComSlice.h
r328 r334 1567 1567 Bool getMvdL1ZeroFlag () { return m_bLMvdL1Zero; } 1568 1568 Int getNumRpsCurrTempList(); 1569 #if RPL_INIT_N0316_N0082 1570 Int getNumNegativeRpsCurrTempList(); 1571 #endif 1569 1572 Int getList1IdxToList0Idx ( Int list1Idx ) { return m_list1IdxToList0Idx[list1Idx]; } 1570 1573 Void setReferenced(Bool b) { m_bRefenced = b; } -
branches/SHM-3.0-dev/source/Lib/TLibCommon/TypeDef.h
r333 r334 47 47 #if SVC_EXTENSION 48 48 #define MAX_LAYERS 2 ///< max number of layers the codec is supposed to handle 49 49 #define RPL_INIT_N0316_N0082 1 ///< N0316, N0082: initial reference picture list construction 50 #define FINAL_RPL_CHANGE_N0082 1 ///< N0082: final ref picture list change (encoder) 50 51 #define M0464_TILE_BOUNDARY_ALIGNED_FLAG 1 ///< VUI flag to indicate tile boundary alignment 51 52 #define M0463_VUI_EXT_ILP_REF 1 ///< VUI extension inter-layer dependency offset signalling -
branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncTop.cpp
r323 r334 886 886 for( Int i = 0; i < getGOPSize()+m_extraRPSs; i++) 887 887 { 888 #if FINAL_RPL_CHANGE_N0082 889 GOPEntry ge = m_ppcTEncTop[m_cSPS.getLayerId()]->getGOPEntry(i); 890 #else 888 891 GOPEntry ge = getGOPEntry(i); 892 #endif 889 893 rps = rpsList->getReferencePictureSet(i); 890 894 rps->setNumberOfPictures(ge.m_numRefPics);
Note: See TracChangeset for help on using the changeset viewer.