Changeset 724 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComSlice.cpp
- Timestamp:
- 30 Nov 2013, 12:29:49 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComSlice.cpp
r655 r724 751 751 if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0) 752 752 continue; 753 753 #if !SHARP_ARP_REF_CHECK_F0105 754 // move the following to setARPStepNum() to define ARP related thing in ARP function. 755 #if QC_MTK_INTERVIEW_ARP_F0123_F0108 756 for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) 757 { 758 if ( this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() != getPOC() ) 759 { 760 this->setFirstTRefIdx (RefPicList(uiRefListIdx), i); 761 break; 762 } 763 } 764 #endif 765 #endif 754 766 Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm(); 755 767 for(Int i = 1; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) … … 1826 1838 #if H_3D_IV_MERGE 1827 1839 m_ivMvPredFlag [ i ] = false; 1840 #if MTK_SPIVMP_F0110 1841 m_iSubPULog2Size [ i ] = 0; 1842 #endif 1828 1843 #endif 1829 1844 #if H_3D_VSP … … 1835 1850 #if H_3D_INTER_SDC 1836 1851 m_bInterSDCFlag [ i ] = false; 1852 #endif 1853 #if SEC_MPI_ENABLING_MERGE_F0150 1854 m_bMPIFlag [ i ] = false; 1837 1855 #endif 1838 1856 } … … 2831 2849 2832 2850 #if H_3D_ARP 2851 #if SHARP_ARP_REF_CHECK_F0105 2852 Void TComSlice::setARPStepNum( TComPicLists*ivPicLists ) 2853 #else 2833 2854 Void TComSlice::setARPStepNum() 2834 { 2855 #endif 2856 { 2857 #if SHARP_ARP_REF_CHECK_F0105 2858 Bool tempRefPicInListsFlag = false; 2859 #else 2835 2860 Bool bAllIvRef = true; 2836 2861 #endif 2862 #if QC_MTK_INTERVIEW_ARP_F0123_F0108 2863 if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP()) 2864 #else 2837 2865 if(!getVPS()->getUseAdvRP(getLayerId())) 2866 #endif 2838 2867 { 2839 2868 m_nARPStepNum = 0; … … 2841 2870 else 2842 2871 { 2872 #if SHARP_ARP_REF_CHECK_F0105 2873 setFirstTRefIdx (REF_PIC_LIST_0, -1); 2874 setFirstTRefIdx (REF_PIC_LIST_1, -1); 2875 for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ ) 2876 { 2877 for(Int i = 0; i < getNumRefIdx(RefPicList(refListIdx)); i++ ) 2878 { 2879 if ( getRefPic(RefPicList(refListIdx), i)->getPOC() != getPOC() ) 2880 { 2881 setFirstTRefIdx (RefPicList(refListIdx), i); 2882 break; 2883 } 2884 } 2885 } 2886 tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0; 2887 m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0; 2888 #else 2843 2889 for( Int iRefListId = 0; iRefListId < 2; iRefListId++ ) 2844 2890 { … … 2863 2909 } 2864 2910 m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0; 2865 } 2911 #endif 2912 } 2913 #if SHARP_ARP_REF_CHECK_F0105 2914 if (tempRefPicInListsFlag) 2915 { 2916 for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ ) 2917 { 2918 RefPicList eRefPicList = RefPicList( refListIdx ); 2919 Int prevPOC = getRefPic(eRefPicList, getFirstTRefIdx(eRefPicList) )->getPOC(); 2920 for( Int i = 0; i < getNumActiveRefLayerPics(); i++ ) 2921 { 2922 Int layerIdInNuh = getRefPicLayerId( i ); 2923 Int viewIdx = getVPS()->getViewId( layerIdInNuh ); 2924 TComPic*pcPicPrev = ivPicLists->getPic(viewIdx, 0, prevPOC); 2925 if (getFirstTRefIdx(eRefPicList) >= 0 && pcPicPrev && pcPicPrev->getSlice( 0 )->isReferenced()) 2926 { 2927 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = true; 2928 } 2929 else 2930 { 2931 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = false; 2932 } 2933 } 2934 } 2935 } 2936 #endif 2866 2937 } 2867 2938 #endif … … 2967 3038 setupLUT = setupLUT || getVPS()->getDepthRefinementFlag( layerIdInVPS ); 2968 3039 #endif 3040 3041 #if QC_DEPTH_IV_MRG_F0125 3042 setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() ); 3043 #endif 2969 3044 2970 3045 if( !setupLUT )
Note: See TracChangeset for help on using the changeset viewer.