Changeset 693 in 3DVCSoftware for branches/HTM-8.2-dev1-Sharp
- Timestamp:
- 13 Nov 2013, 08:14:41 (11 years ago)
- Location:
- branches/HTM-8.2-dev1-Sharp
- Files:
-
- 3 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev1-Sharp/source/Lib/TLibCommon/TComPrediction.cpp
r666 r693 784 784 if( cDistparity.bDV ) 785 785 { 786 #if SHARP_ARP_REF_CHECK_F0105 787 Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList); 788 if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC()!= pcCU->getSlice()->getPOC() ) 789 #else 786 790 if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC()!= pcCU->getSlice()->getPOC() ) 791 #endif 787 792 { 788 793 bTobeScaled = true; … … 790 795 791 796 pcPicYuvBaseCol = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getPOC(), cDistparity.m_aVIdxCan ); 797 798 #if SHARP_ARP_REF_CHECK_F0105 799 pcPicYuvBaseRef = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC(), cDistparity.m_aVIdxCan ); 800 801 if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, cDistparity.m_aVIdxCan)) 802 #else 792 803 pcPicYuvBaseRef = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC(), cDistparity.m_aVIdxCan ); 793 804 794 805 if( ( !pcPicYuvBaseCol || pcPicYuvBaseCol->getPOC() != pcCU->getSlice()->getPOC() ) || ( !pcPicYuvBaseRef || pcPicYuvBaseRef->getPOC() != pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC() ) ) 806 #endif 795 807 { 796 808 dW = 0; … … 799 811 else 800 812 { 813 #if SHARP_ARP_REF_CHECK_F0105 814 assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC() ); 815 #else 801 816 assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC() ); 817 #endif 802 818 } 803 819 … … 870 886 871 887 assert(dW > 0); 888 #if SHARP_ARP_REF_CHECK_F0105 889 if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, pcPicYuvBaseCol->getViewIndex())) 890 { 891 dW = 0; 892 } 893 #endif 872 894 Int uiLCUAddr,uiAbsPartAddr; 873 895 Int irefPUX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[uiPartAddr]] + iWidth/2 + ((cDMv.getHor() + 2)>>2); -
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 -
branches/HTM-8.2-dev1-Sharp/source/Lib/TLibCommon/TComSlice.h
r666 r693 1730 1730 #endif 1731 1731 #if H_3D_ARP 1732 #if SHARP_ARP_REF_CHECK_F0105 1733 Bool m_arpRefPicAvailable[2][MAX_NUM_LAYERS]; 1734 #endif 1732 1735 TComList<TComPic*> * m_pBaseViewRefPicList[MAX_NUM_LAYERS]; 1733 1736 UInt m_nARPStepNum; … … 1821 1824 #if H_3D_ARP 1822 1825 Void setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx ) { m_pBaseViewRefPicList[iViewIdx] = pListPic; } 1826 #if SHARP_ARP_REF_CHECK_F0105 1827 Void setARPStepNum( TComPicLists*ivPicLists ); 1828 #else 1823 1829 Void setARPStepNum(); 1830 #endif 1824 1831 TComPic* getBaseViewRefPic ( UInt uiPOC , Int iViewIdx ) { return xGetRefPic( *m_pBaseViewRefPicList[iViewIdx], uiPOC ); } 1825 1832 UInt getARPStepNum( ) { return m_nARPStepNum; } … … 2026 2033 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } 2027 2034 #endif 2035 #if SHARP_ARP_REF_CHECK_F0105 2036 Bool getArpRefPicAvailable( RefPicList e, Int viewIdx) {return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; } 2037 #endif 2028 2038 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; } 2029 2039 Bool getIsDepth () { return m_isDepth; } -
branches/HTM-8.2-dev1-Sharp/source/Lib/TLibCommon/TypeDef.h
r676 r693 209 209 #define QC_MTK_INTERVIEW_ARP_F0123_F0108 1 //JCT3V-F0123; JCT3V-F0108 210 210 #define QC_MTK_INTERVIEW_ARP_F0123_F0108 1 //JCT3V-F0123; JCT3V-F0108 211 #define SHARP_ARP_REF_CHECK_F0105 1 // ARP reference picture selection and DPB check 211 212 #define LGE_ARP_CTX_F0161 1 //JCT3V-F0161 212 213 #endif -
branches/HTM-8.2-dev1-Sharp/source/Lib/TLibDecoder/TDecTop.cpp
r655 r693 951 951 pcSlice->setRefPicList ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true ); 952 952 #if H_3D_ARP 953 #if SHARP_ARP_REF_CHECK_F0105 954 pcSlice->setARPStepNum(m_ivPicLists); 955 #else 953 956 pcSlice->setARPStepNum(); 957 #endif 954 958 if( pcSlice->getARPStepNum() > 1 ) 955 959 { -
branches/HTM-8.2-dev1-Sharp/source/Lib/TLibEncoder/TEncGOP.cpp
r655 r693 724 724 #if H_3D_ARP 725 725 //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh 726 #if SHARP_ARP_REF_CHECK_F0105 727 pcSlice->setARPStepNum(m_ivPicLists); 728 #else 726 729 pcSlice->setARPStepNum(); 730 #endif 727 731 if(pcSlice->getARPStepNum() > 1) 728 732 {
Note: See TracChangeset for help on using the changeset viewer.