Changeset 693 in 3DVCSoftware for branches/HTM-8.2-dev1-Sharp/source/Lib/TLibCommon/TComSlice.cpp
- Timestamp:
- 13 Nov 2013, 08:14:41 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev1-Sharp/source/Lib/TLibCommon/TComSlice.cpp
r666 r693 751 751 if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0) 752 752 continue; 753 #if !SHARP_ARP_REF_CHECK_F0105 754 // move the following to setARPStepNum() to define ARP related thing in ARP function. 753 755 #if QC_MTK_INTERVIEW_ARP_F0123_F0108 754 756 for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) … … 760 762 } 761 763 } 764 #endif 762 765 #endif 763 766 Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm(); … … 2840 2843 2841 2844 #if H_3D_ARP 2845 #if SHARP_ARP_REF_CHECK_F0105 2846 Void TComSlice::setARPStepNum( TComPicLists*ivPicLists ) 2847 #else 2842 2848 Void TComSlice::setARPStepNum() 2843 { 2849 #endif 2850 { 2851 #if SHARP_ARP_REF_CHECK_F0105 2852 Bool tempRefPicInListsFlag = false; 2853 #else 2844 2854 Bool bAllIvRef = true; 2855 #endif 2845 2856 #if QC_MTK_INTERVIEW_ARP_F0123_F0108 2846 2857 if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP()) … … 2853 2864 else 2854 2865 { 2866 #if SHARP_ARP_REF_CHECK_F0105 2867 setFirstTRefIdx (REF_PIC_LIST_0, -1); 2868 setFirstTRefIdx (REF_PIC_LIST_1, -1); 2869 for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ ) 2870 { 2871 for(Int i = 0; i < getNumRefIdx(RefPicList(refListIdx)); i++ ) 2872 { 2873 if ( getRefPic(RefPicList(refListIdx), i)->getPOC() != getPOC() ) 2874 { 2875 setFirstTRefIdx (RefPicList(refListIdx), i); 2876 break; 2877 } 2878 } 2879 } 2880 tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0; 2881 m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0; 2882 #else 2855 2883 for( Int iRefListId = 0; iRefListId < 2; iRefListId++ ) 2856 2884 { … … 2875 2903 } 2876 2904 m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0; 2877 } 2905 #endif 2906 } 2907 #if SHARP_ARP_REF_CHECK_F0105 2908 if (tempRefPicInListsFlag) 2909 { 2910 for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ ) 2911 { 2912 RefPicList eRefPicList = RefPicList( refListIdx ); 2913 Int prevPOC = getRefPic(eRefPicList, getFirstTRefIdx(eRefPicList) )->getPOC(); 2914 for( Int i = 0; i < getNumActiveRefLayerPics(); i++ ) 2915 { 2916 Int layerIdInNuh = getRefPicLayerId( i ); 2917 Int viewIdx = getVPS()->getViewId( layerIdInNuh ); 2918 TComPic*pcPicPrev = ivPicLists->getPic(viewIdx, 0, prevPOC); 2919 if (getFirstTRefIdx(eRefPicList) >= 0 && pcPicPrev && pcPicPrev->getSlice( 0 )->isReferenced()) 2920 { 2921 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = true; 2922 } 2923 else 2924 { 2925 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = false; 2926 } 2927 } 2928 } 2929 } 2930 #endif 2878 2931 } 2879 2932 #endif
Note: See TracChangeset for help on using the changeset viewer.