Changeset 773 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComSlice.cpp
- Timestamp:
- 16 Jan 2014, 09:56:13 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComSlice.cpp
r758 r773 110 110 #endif 111 111 , m_pocResetFlag (false) 112 #if H_MV _6_RALS_O0149_11112 #if H_MV 113 113 , m_crossLayerBlaFlag (false) 114 114 #endif … … 753 753 { 754 754 if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0) 755 { 755 756 continue; 756 #if !SHARP_ARP_REF_CHECK_F0105 757 // move the following to setARPStepNum() to define ARP related thing in ARP function. 758 #if QC_MTK_INTERVIEW_ARP_F0123_F0108 759 for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) 760 { 761 if ( this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() != getPOC() ) 762 { 763 this->setFirstTRefIdx (RefPicList(uiRefListIdx), i); 764 break; 765 } 766 } 767 #endif 768 #endif 757 } 769 758 Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm(); 770 759 for(Int i = 1; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) … … 782 771 Void TComSlice::setCamparaSlice( Int** aaiScale, Int** aaiOffset ) 783 772 { 784 #if CAM_HLS_F0136_F0045_F0082785 773 if( m_pcVPS->hasCamParInSliceHeader( m_viewIndex ) ) 786 #else787 if( m_pcSPS->hasCamParInSliceHeader() )788 #endif789 774 { 790 775 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < m_viewIndex; uiBaseViewIndex++ ) … … 1716 1701 , m_hrdOpSetIdx (NULL) 1717 1702 , m_cprmsPresentFlag (NULL) 1718 #if H_MV _6_HRD_O0217_131703 #if H_MV 1719 1704 , m_dpbSize (NULL) 1720 #endif1721 #if H_MV1722 1705 , m_vpsVUI ( NULL ) 1723 1706 #endif … … 1734 1717 for( Int layerId = 0; layerId < MAX_VPS_NUH_LAYER_ID_PLUS1; layerId++ ) 1735 1718 { 1736 #if H_MV_6_HRD_O0217_131737 1719 m_layerIdIncludedFlag[lsIdx][layerId] = (( lsIdx == 0 ) && ( layerId == 0 )) ; 1738 #else1739 m_layerIdIncludedFlag[lsIdx][layerId] = false;1740 #endif1741 1720 } 1742 1721 } … … 1752 1731 m_moreOutputLayerSetsThanDefaultFlag = false; 1753 1732 m_numAddOutputLayerSetsMinus1 = -1; 1754 #if H_MV_6_PS_0109_251755 1733 m_defaultOneTargetOutputLayerIdc = 0; 1756 #else1757 m_defaultOneTargetOutputLayerFlag = false;1758 #endif1759 1734 1760 1735 for ( Int i = 0; i < MAX_VPS_OUTPUTLAYER_SETS; i++) … … 1767 1742 } 1768 1743 } 1769 #if H_MV_6_GEN_0153_281770 1744 m_altOutputLayerFlag = false; 1771 #endif1772 1745 m_maxOneActiveRefLayerFlag = false; 1773 1746 m_directDepTypeLenMinus2 = 0; … … 1806 1779 m_layerIdInNuh [i] = ( i == 0 ) ? 0 : -1; 1807 1780 m_numDirectRefLayers[i] = 0; 1808 #if !H_MV_6_ILDDS_O0225_301809 m_maxTidIlRefPicPlus1[i] = 7;1810 #endif1811 1781 m_vpsRepFormatIdx [i] = 0; 1812 #if H_MV_6_MISC_O0062_311813 1782 m_pocLsbNotPresentFlag[i] = 0; 1814 #endif1815 1783 m_repFormat [i] = NULL; 1816 1784 m_viewIdVal [i] = 0; … … 1819 1787 m_viewIndex [i] = -1; 1820 1788 m_vpsDepthModesFlag [i] = false; 1821 #if H_3D_DIM_DLT1822 #if !DLT_DIFF_CODING_IN_PPS1823 m_bUseDLTFlag [i] = false;1824 1825 // allocate some memory and initialize with default mapping1826 m_iNumDepthmapValues[i] = ((1 << g_bitDepthY)-1)+1;1827 m_iBitsPerDepthValue[i] = numBitsForValue(m_iNumDepthmapValues[i]);1828 1829 m_iDepthValue2Idx[i] = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);1830 m_iIdx2DepthValue[i] = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);1831 1832 //default mapping1833 for (Int d=0; d<m_iNumDepthmapValues[i]; d++)1834 {1835 m_iDepthValue2Idx[i][d] = d;1836 m_iIdx2DepthValue[i][d] = d;1837 }1838 #endif1839 #endif1840 #if H_3D1841 1789 m_ivMvScalingFlag = true; 1842 #endif1843 1790 #endif 1844 1791 … … 1848 1795 m_directDependencyType[i][j] = -1; 1849 1796 m_refLayerId[i][j] = -1; 1850 #if H_MV_6_ILDDS_O0225_301851 1797 m_maxTidIlRefPicsPlus1[i][j] = 7; 1852 #endif1853 1798 } 1854 1799 … … 1863 1808 } 1864 1809 m_vpsVUI = new TComVPSVUI; 1865 #if H_MV_6_HRD_O0217_131866 1810 m_dpbSize = new TComDpbSize; 1867 #endif 1868 # 1811 1869 1812 #if H_3D 1870 1813 for( Int i = 0; i < MAX_NUM_LAYERS; i++ ) … … 1872 1815 #if H_3D_IV_MERGE 1873 1816 m_ivMvPredFlag [ i ] = false; 1874 #if MTK_SPIVMP_F01101817 #if H_3D_SPIVMP 1875 1818 m_iSubPULog2Size [ i ] = 0; 1876 1819 #endif … … 1885 1828 m_bInterSDCFlag [ i ] = false; 1886 1829 #endif 1887 #if SEC_MPI_ENABLING_MERGE_F01501830 #if H_3D_IV_MERGE 1888 1831 m_bMPIFlag [ i ] = false; 1889 1832 #endif … … 1895 1838 TComVPS::~TComVPS() 1896 1839 { 1897 if( m_hrdParameters != NULL ) delete[] m_hrdParameters;1840 if( m_hrdParameters != NULL ) delete[] m_hrdParameters; 1898 1841 if( m_hrdOpSetIdx != NULL ) delete[] m_hrdOpSetIdx; 1899 1842 if( m_cprmsPresentFlag != NULL ) delete[] m_cprmsPresentFlag; 1900 1843 #if H_MV 1901 1844 if ( m_vpsVUI != NULL ) delete m_vpsVUI; 1902 #if H_MV_6_HRD_O0217_131903 1845 if ( m_dpbSize != NULL ) delete m_dpbSize; 1904 #endif1905 1846 1906 1847 for( Int i = 0; i < MAX_NUM_LAYERS; i++ ) 1907 1848 { 1908 1849 if (m_repFormat[ i ] != NULL ) delete m_repFormat[ i ]; 1909 #if H_3D_DIM_DLT 1910 #if !DLT_DIFF_CODING_IN_PPS 1911 if ( m_iDepthValue2Idx[i] != 0 ) 1912 { 1913 xFree( m_iDepthValue2Idx[i] ); 1914 m_iDepthValue2Idx[i] = 0; 1915 } 1916 1917 if ( m_iIdx2DepthValue[i] != 0 ) 1918 { 1919 xFree( m_iIdx2DepthValue[i] ); 1920 m_iIdx2DepthValue[i] = 0; 1921 } 1922 #endif 1923 #endif 1924 } 1925 #endif 1926 #if CAM_HLS_F0136_F0045_F0082 1850 } 1851 #endif 1852 #if H_3D 1927 1853 deleteCamPars(); 1928 1854 #endif 1929 1855 } 1930 1931 #if H_3D_DIM_DLT1932 #if !DLT_DIFF_CODING_IN_PPS1933 Void TComVPS::setDepthLUTs(Int layerIdInVps, Int* idxToDepthValueTable, Int iNumDepthValues)1934 {1935 if( idxToDepthValueTable == NULL || iNumDepthValues == 0 ) // default mapping only1936 return;1937 1938 // copy idx2DepthValue to internal array1939 memcpy(m_iIdx2DepthValue[layerIdInVps], idxToDepthValueTable, iNumDepthValues*sizeof(UInt));1940 1941 UInt uiMaxDepthValue = ((1 << g_bitDepthY)-1);1942 for(Int p=0; p<=uiMaxDepthValue; p++)1943 {1944 Int iIdxDown = 0;1945 Int iIdxUp = iNumDepthValues-1;1946 Bool bFound = false;1947 1948 // iterate over indices to find lower closest depth1949 Int i = 1;1950 while(!bFound && i<iNumDepthValues)1951 {1952 if( m_iIdx2DepthValue[layerIdInVps][i] > p )1953 {1954 iIdxDown = i-1;1955 bFound = true;1956 }1957 1958 i++;1959 }1960 // iterate over indices to find upper closest depth1961 i = iNumDepthValues-2;1962 bFound = false;1963 while(!bFound && i>=0)1964 {1965 if( m_iIdx2DepthValue[layerIdInVps][i] < p )1966 {1967 iIdxUp = i+1;1968 bFound = true;1969 }1970 1971 i--;1972 }1973 1974 // assert monotony1975 assert(iIdxDown<=iIdxUp);1976 1977 // assign closer depth value/idx1978 if( abs(p-m_iIdx2DepthValue[layerIdInVps][iIdxDown]) < abs(p-m_iIdx2DepthValue[layerIdInVps][iIdxUp]) )1979 {1980 m_iDepthValue2Idx[layerIdInVps][p] = iIdxDown;1981 }1982 else1983 {1984 m_iDepthValue2Idx[layerIdInVps][p] = iIdxUp;1985 }1986 1987 }1988 1989 // update DLT variables1990 m_iNumDepthmapValues[layerIdInVps] = iNumDepthValues;1991 m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]);1992 }1993 #endif1994 #endif1995 1856 1996 1857 #if H_MV … … 2079 1940 return foundLayerIdinNuh; 2080 1941 } 2081 #if CAM_HLS_F0136_F0045_F0082 1942 2082 1943 Void TComVPS::createCamPars(Int iNumViews) 2083 1944 { … … 2168 2029 } 2169 2030 } 2170 #endif // CAM_HLS_F0136_F0045_F00822171 2031 2172 2032 #endif // H_3D … … 2204 2064 assert( lsIdx >= 0 ); 2205 2065 assert( lsIdx <= getVpsNumLayerSetsMinus1() ); 2206 #if H_MV_6_HRD_O0217_132207 2066 return (Int) m_layerSetLayerIdList[ lsIdx ].size(); 2208 #else 2209 Int numLayersInIdList = 0; 2210 for (Int layerId = 0; layerId < getVpsMaxLayerId(); layerId++ ) 2211 { 2212 numLayersInIdList += ( getLayerIdIncludedFlag( lsIdx, layerId ) ); 2213 } 2214 return numLayersInIdList; 2215 #endif 2216 } 2217 2218 #if H_MV_6_HRD_O0217_13 2067 } 2068 2219 2069 Int TComVPS::getNumOutputLayerSets() 2220 2070 { … … 2226 2076 return numOutputLayerSets; 2227 2077 } 2228 #endif2229 2078 2230 2079 Int TComVPS::getNumViews() … … 2258 2107 } 2259 2108 2260 #if H_MV_6_HRD_O0217_132261 2109 Void TComVPS::deriveLayerSetLayerIdList() 2262 2110 { … … 2294 2142 } 2295 2143 } 2296 #endif2297 2144 #endif // H_MV 2298 2145 … … 2349 2196 , m_spsScalingListRefLayerId ( 0 ) 2350 2197 2351 #if !H_MV_6_PS_REP_FORM_18_19_202352 , m_updateRepFormatFlag ( true )2353 #else2354 2198 , m_updateRepFormatFlag ( false ) 2355 2199 , m_spsRepFormatIdx ( 0 ) 2356 #endif2357 2200 , m_interViewMvVertConstraintFlag (false) 2358 2201 #endif … … 2370 2213 ::memset(m_ltRefPicPocLsbSps, 0, sizeof(m_ltRefPicPocLsbSps)); 2371 2214 ::memset(m_usedByCurrPicLtSPSFlag, 0, sizeof(m_usedByCurrPicLtSPSFlag)); 2372 #if H_MV _6_PSEM_O0142_32215 #if H_MV 2373 2216 m_spsExtensionFlag = false; 2374 2217 for( Int i = 0; i < PS_EX_T_MAX_NUM; i++ ) … … 2376 2219 m_spsExtensionTypeFlag[ i ] = false; 2377 2220 } 2378 #endif2379 #if H_MV_6_SHVC_O0098_362380 2221 m_numScaledRefLayerOffsets = 0; 2381 2222 … … 2548 2389 , m_ppsInferScalingListFlag(false) 2549 2390 , m_ppsScalingListRefLayerId(0) 2550 #if DLT_DIFF_CODING_IN_PPS2391 #if H_3D 2551 2392 , m_pcDLT(NULL) 2552 2393 #endif … … 2571 2412 } 2572 2413 2573 #if DLT_DIFF_CODING_IN_PPS2414 #if H_3D 2574 2415 TComDLT::TComDLT() 2575 2416 : m_bDltPresentFlag(false) … … 2753 2594 if ( layerIdCurr > 0 ) 2754 2595 { 2755 #if H_MV_6_PS_REP_FORM_18_19_202756 2596 Int repFormatIdx = getUpdateRepFormatFlag() ? getSpsRepFormatIdx() : vps->getVpsRepFormatIdx( vps->getLayerIdInVps( layerIdCurr ) ) ; 2757 2597 TComRepFormat* repFormat = vps->getRepFormat( repFormatIdx ); 2758 #else2759 TComRepFormat* repFormat = vps->getRepFormat( vps->getVpsRepFormatIdx( vps->getLayerIdInVps( layerIdCurr ) ) );2760 if ( !getUpdateRepFormatFlag() )2761 {2762 #endif2763 2598 setChromaFormatIdc( repFormat->getChromaFormatVpsIdc() ); 2764 2599 //// ToDo: add when supported: … … 2773 2608 setBitDepthC ( repFormat->getBitDepthVpsChromaMinus8() + 8 ); 2774 2609 setQpBDOffsetC ( (Int) (6* ( getBitDepthC() -8 ) ) ); 2775 #if !H_MV_6_PS_REP_FORM_18_19_202776 }2777 else2778 #else2779 2610 if ( getLayerId() > 0 && getUpdateRepFormatFlag() ) 2780 #endif2781 2611 { 2782 2612 assert( getChromaFormatIdc() <= repFormat->getChromaFormatVpsIdc() ); … … 2808 2638 } 2809 2639 #endif 2810 #if H_3D 2811 #if !CAM_HLS_F0136_F0045_F0082 2812 Void 2813 TComSPS::initCamParaSPS( UInt uiViewIndex, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset ) 2814 { 2815 AOT( uiViewIndex != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) ); 2816 2817 m_uiCamParPrecision = ( uiViewIndex ? uiCamParPrecision : 0 ); 2818 m_bCamParInSliceHeader = ( uiViewIndex ? bCamParSlice : false ); 2819 ::memset( m_aaiCodedScale, 0x00, sizeof( m_aaiCodedScale ) ); 2820 ::memset( m_aaiCodedOffset, 0x00, sizeof( m_aaiCodedOffset ) ); 2821 2822 if( !m_bCamParInSliceHeader ) 2823 { 2824 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < uiViewIndex; uiBaseViewIndex++ ) 2825 { 2826 m_aaiCodedScale [ 0 ][ uiBaseViewIndex ] = aaiScale [ uiBaseViewIndex ][ uiViewIndex ]; 2827 m_aaiCodedScale [ 1 ][ uiBaseViewIndex ] = aaiScale [ uiViewIndex ][ uiBaseViewIndex ]; 2828 m_aaiCodedOffset[ 0 ][ uiBaseViewIndex ] = aaiOffset[ uiBaseViewIndex ][ uiViewIndex ]; 2829 m_aaiCodedOffset[ 1 ][ uiBaseViewIndex ] = aaiOffset[ uiViewIndex ][ uiBaseViewIndex ]; 2830 } 2831 } 2832 } 2833 #endif 2834 #endif 2640 2835 2641 TComReferencePictureSet::TComReferencePictureSet() 2836 2642 : m_numberOfPictures (0) … … 3150 2956 { 3151 2957 TComPic* pcPic = ivPicLists->getPic( targetDecLayerIdSet[ i ], curPoc ); 3152 #if H_MV_LAYER_WISE_STARTUP3153 2958 if ( pcPic ) 3154 2959 { 3155 #endif3156 2960 if( pcPic->getSlice(0)->isReferenced() && pcPic->getSlice(0)->getTemporalLayerNonReferenceFlag() ) 3157 2961 { … … 3176 2980 } 3177 2981 } 3178 #if H_MV_LAYER_WISE_STARTUP 3179 } 3180 #endif 2982 } 3181 2983 } 3182 2984 } … … 3236 3038 3237 3039 3238 #if H_MV_6_ILDDS_ILREFPICS_27_343239 3040 Int TComSlice::getRefLayerPicFlag( Int i ) 3240 3041 { … … 3279 3080 return numRefLayerPics; 3280 3081 } 3281 #endif3282 3082 3283 3083 … … 3293 3093 else if (getVPS()->getAllRefLayersActiveFlag() ) 3294 3094 { 3295 #if H_MV_6_ILDDS_ILREFPICS_27_343296 3095 numActiveRefLayerPics = getNumRefLayerPics(); 3297 #else3298 numActiveRefLayerPics = getVPS()->getNumDirectRefLayers( getLayerId() );3299 #endif3300 3096 } 3301 3097 else if ( !getInterLayerPredEnabledFlag() ) … … 3305 3101 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 ) 3306 3102 { 3307 #if H_MV_6_ILDDS_ILREFPICS_27_343308 3103 numActiveRefLayerPics = getRefLayerPicFlag( 0 ) ? 1 : 0; 3309 #else3310 numActiveRefLayerPics = 1;3311 #endif3312 3104 } 3313 3105 else … … 3324 3116 3325 3117 #if H_3D_ARP 3326 #if SHARP_ARP_REF_CHECK_F01053327 3118 Void TComSlice::setARPStepNum( TComPicLists*ivPicLists ) 3328 #else 3329 Void TComSlice::setARPStepNum() 3330 #endif 3331 { 3332 #if SHARP_ARP_REF_CHECK_F0105 3119 { 3333 3120 Bool tempRefPicInListsFlag = false; 3334 #else3335 Bool bAllIvRef = true;3336 #endif3337 #if QC_MTK_INTERVIEW_ARP_F0123_F01083338 3121 if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP()) 3339 #else3340 if(!getVPS()->getUseAdvRP(getLayerId()))3341 #endif3342 3122 { 3343 3123 m_nARPStepNum = 0; … … 3345 3125 else 3346 3126 { 3347 #if SHARP_ARP_REF_CHECK_F01053348 3127 setFirstTRefIdx (REF_PIC_LIST_0, -1); 3349 3128 setFirstTRefIdx (REF_PIC_LIST_1, -1); … … 3361 3140 tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0; 3362 3141 m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0; 3363 #else 3364 for( Int iRefListId = 0; iRefListId < 2; iRefListId++ ) 3365 { 3366 RefPicList eRefPicList = RefPicList( iRefListId ); 3367 Int iNumRefIdx = getNumRefIdx(eRefPicList); 3368 3369 if( iNumRefIdx <= 0 ) 3370 { 3371 continue; 3372 } 3373 3374 for ( Int i = 0; i < iNumRefIdx; i++ ) 3375 { 3376 if( getRefPic( eRefPicList, i)->getPOC() != getPOC() ) 3377 { 3378 bAllIvRef = false; 3379 break; 3380 } 3381 } 3382 3383 if( bAllIvRef == false ) { break; } 3384 } 3385 m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0; 3386 #endif 3387 } 3388 #if SHARP_ARP_REF_CHECK_F0105 3142 } 3143 3389 3144 if (tempRefPicInListsFlag) 3390 3145 { … … 3407 3162 } 3408 3163 } 3409 } 3410 } 3411 #endif 3164 } 3165 } 3412 3166 } 3413 3167 #endif … … 3514 3268 #endif 3515 3269 3516 #if QC_DEPTH_IV_MRG_F01253270 #if H_3D_IV_MERGE 3517 3271 setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() ); 3518 3272 #endif … … 3543 3297 assert( m_depthToDisparityF != NULL ); 3544 3298 3545 #if CAM_HLS_F0136_F0045_F00823546 3299 TComVPS* vps = getVPS(); 3547 #else 3548 TComSPS* sps = getSPS(); 3549 #endif 3550 3551 #if CAM_HLS_F0136_F0045_F0082 3300 3552 3301 Int log2Div = g_bitDepthY - 1 + vps->getCamParPrecision(); 3553 3302 Int viewIndex = getViewIndex(); … … 3559 3308 Int* invCodScale = camParaSH ? m_aaiCodedScale [ 1 ] : vps->getInvCodedScale ( viewIndex ); 3560 3309 Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : vps->getInvCodedOffset( viewIndex ); 3561 #else3562 Int log2Div = g_bitDepthY - 1 + sps->getCamParPrecision();3563 3564 Bool camParaSH = m_pcSPS->hasCamParInSliceHeader();3565 3566 Int* codScale = camParaSH ? m_aaiCodedScale [ 0 ] : sps->getCodedScale ();3567 Int* codOffset = camParaSH ? m_aaiCodedOffset[ 0 ] : sps->getCodedOffset ();3568 Int* invCodScale = camParaSH ? m_aaiCodedScale [ 1 ] : sps->getInvCodedScale ();3569 Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : sps->getInvCodedOffset();3570 #endif3571 3310 3572 3311 for (Int i = 0; i <= ( getViewIndex() - 1); i++) … … 3925 3664 TComVPSVUI::TComVPSVUI() 3926 3665 { 3927 #if H_MV_6_PS_O0223_293928 3666 m_crossLayerIrapAlignedFlag = true; 3929 #endif3930 3667 m_bitRatePresentVpsFlag = false; 3931 3668 m_picRatePresentVpsFlag = false; … … 3955 3692 } 3956 3693 } 3957 #if H_MV_6_PS_O0118_333958 3694 for ( Int i = 0; i < MAX_NUM_VIDEO_SIGNAL_INFO; i++ ) 3959 3695 { 3960 3696 m_videoSignalInfo [i] = NULL; 3961 3697 } 3962 #endif 3963 3964 #if H_MV_6_HRD_O0164_15 3698 3965 3699 m_vpsVuiBspHrdPresentFlag = false; 3966 3700 m_vpsVuiBspHrdParameters = new TComVpsVuiBspHrdParameters(); 3967 #endif 3968 } 3969 3970 #if H_MV_6_PS_O0118_33 3701 } 3702 3971 3703 TComVPSVUI::~TComVPSVUI() 3972 3704 { … … 3977 3709 } 3978 3710 3979 #if H_MV_6_HRD_O0164_153980 3711 if ( m_vpsVuiBspHrdParameters ) delete m_vpsVuiBspHrdParameters; 3981 3712 m_vpsVuiBspHrdParameters = NULL; 3982 #endif 3983 } 3984 #endif 3985 3986 #if H_MV_6_PS_REP_FORM_18_19_20 3713 } 3714 3987 3715 Void TComRepFormat::inferChromaAndBitDepth( TComRepFormat* prevRepFormat, Bool encoderFlag ) 3988 3716 { … … 4002 3730 } 4003 3731 } 4004 #endif 4005 4006 #if H_MV_6_HRD_O0164_15 3732 4007 3733 Void TComVpsVuiBspHrdParameters::checkLayerInBspFlag( TComVPS* vps, Int h ) 4008 3734 { … … 4031 3757 } 4032 3758 } 4033 #endif 4034 #endif 3759 3760 Void TComVUI::inferVideoSignalInfo( TComVPS* vps, Int layerIdCurr ) 3761 { 3762 if ( layerIdCurr == 0 || !vps->getVpsVuiPresentFlag() ) 3763 { 3764 return; 3765 } 3766 3767 TComVPSVUI* vpsVUI = vps->getVPSVUI(); 3768 assert( vpsVUI != NULL ); 3769 3770 TComVideoSignalInfo* videoSignalInfo = vpsVUI->getVideoSignalInfo( vpsVUI->getVpsVideoSignalInfoIdx( vps->getLayerIdInVps( layerIdCurr ) ) ); 3771 assert( videoSignalInfo != NULL ); 3772 3773 setVideoFormat ( videoSignalInfo->getVideoVpsFormat () ); 3774 setVideoFullRangeFlag ( videoSignalInfo->getVideoFullRangeVpsFlag () ); 3775 setColourPrimaries ( videoSignalInfo->getColourPrimariesVps () ); 3776 setTransferCharacteristics( videoSignalInfo->getTransferCharacteristicsVps() ); 3777 setMatrixCoefficients ( videoSignalInfo->getMatrixCoeffsVps () ); 3778 } 3779 #endif
Note: See TracChangeset for help on using the changeset viewer.