Changeset 769 in 3DVCSoftware
- Timestamp:
- 13 Jan 2014, 08:05:57 (11 years ago)
- Location:
- branches/HTM-9.2-dev0/source
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r768 r769 1743 1743 * This permits the ability to omit a GOP structure specification */ 1744 1744 #if H_MV 1745 if (m_iIntraPeriod[layer] == 1 && m_GOPList[0].m_POC == -1) 1746 { 1745 if (m_iIntraPeriod[layer] == 1 && m_GOPList[0].m_POC == -1) { 1747 1746 #else 1748 1747 if (m_iIntraPeriod == 1 && m_GOPList[0].m_POC == -1) { … … 1773 1772 Int numOK=0; 1774 1773 #if H_MV 1774 xConfirmPara( m_iIntraPeriod[layer] >=0&&(m_iIntraPeriod[layer]%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" ); 1775 #else 1775 1776 xConfirmPara( m_iIntraPeriod >=0&&(m_iIntraPeriod%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" ); 1776 #else1777 xConfirmPara( m_iIntraPeriod[layer] >=0&&(m_iIntraPeriod[layer]%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" );1778 1777 #endif 1779 1778 -
branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r768 r769 208 208 209 209 m_cTEncTop.setIvPicLists ( &m_ivPicLists ); 210 // H_MV210 #endif // H_MV 211 211 m_cTEncTop.setVPS(&vps); 212 212 … … 1945 1945 } 1946 1946 #endif 1947 #endif 1947 1948 1948 //! \} -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.cpp
r768 r769 110 110 #endif 111 111 , m_pocResetFlag (false) 112 #if H_MV 112 113 , m_crossLayerBlaFlag (false) 114 #endif 113 115 , m_discardableFlag (false) 114 116 , m_interLayerPredEnabledFlag (false) … … 1699 1701 , m_hrdOpSetIdx (NULL) 1700 1702 , m_cprmsPresentFlag (NULL) 1703 #if H_MV 1701 1704 , m_dpbSize (NULL) 1702 #if H_MV1703 1705 , m_vpsVUI ( NULL ) 1704 1706 #endif … … 1787 1789 m_ivMvScalingFlag = true; 1788 1790 #endif 1789 #endif1790 1791 1791 1792 for( Int j = 0; j < MAX_NUM_LAYERS; j++ ) … … 1808 1809 m_vpsVUI = new TComVPSVUI; 1809 1810 m_dpbSize = new TComDpbSize; 1810 # 1811 1811 1812 #if H_3D 1812 1813 for( Int i = 0; i < MAX_NUM_LAYERS; i++ ) … … 1831 1832 #endif 1832 1833 } 1834 #endif 1833 1835 #endif 1834 1836 } … … 2211 2213 ::memset(m_ltRefPicPocLsbSps, 0, sizeof(m_ltRefPicPocLsbSps)); 2212 2214 ::memset(m_usedByCurrPicLtSPSFlag, 0, sizeof(m_usedByCurrPicLtSPSFlag)); 2215 #if H_MV 2213 2216 m_spsExtensionFlag = false; 2214 2217 for( Int i = 0; i < PS_EX_T_MAX_NUM; i++ ) … … 2230 2233 m_scaledRefLayerBottomOffset [i] = 0; 2231 2234 } 2235 #endif 2232 2236 } 2233 2237 … … 3774 3778 } 3775 3779 #endif 3776 -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.h
r768 r769 53 53 #if H_MV 54 54 class TComPicLists; 55 class TComVPS; 55 56 #endif 56 57 // ==================================================================================================================== … … 62 63 // ==================================================================================================================== 63 64 64 class TComVPS;65 65 /// Reference Picture Set class 66 66 class TComReferencePictureSet … … 829 829 UInt getMaxTLayers () { return m_uiMaxTLayers; } 830 830 Void setMaxTLayers (UInt t) { m_uiMaxTLayers = t; } 831 832 #if H_MV 831 833 UInt getMaxSubLayersMinus1() { return m_uiMaxTLayers - 1; } // For consistency with draft spec 832 #if H_MV833 834 UInt getMaxLayersMinus1() { return m_uiMaxLayersMinus1; }; 834 835 Void setMaxLayersMinus1(UInt l) { m_uiMaxLayersMinus1 = l; } … … 989 990 990 991 TComVPSVUI* getVPSVUI( ) { return m_vpsVUI; } 991 // VPS EXTENSION SEMANTICS VARIABLES 992 993 // VPS EXTENSION SEMANTICS VARIABLES 992 994 Void setLayerIdInVps( Int layerIdInNuh, Int val ) { m_layerIdInVps[layerIdInNuh] = val; } 993 995 Int getLayerIdInVps( Int layerIdInNuh ) { assert( m_layerIdInVps[layerIdInNuh] >= 0 ); return m_layerIdInVps[layerIdInNuh]; } … … 2369 2371 Bool getPocResetFlag( ) { return m_pocResetFlag; } 2370 2372 2371 Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; }2372 Bool getDiscardableFlag( ) { return m_discardableFlag; }2373 2374 Void setInterLayerPredEnabledFlag( Bool flag ) { m_interLayerPredEnabledFlag = flag; }2375 Bool getInterLayerPredEnabledFlag( ) { return m_interLayerPredEnabledFlag; }2376 2377 Void setNumInterLayerRefPicsMinus1( Int val ) { m_numInterLayerRefPicsMinus1 = val; }2378 Int getNumInterLayerRefPicsMinus1( ) { return m_numInterLayerRefPicsMinus1; }2379 2380 Void setInterLayerPredLayerIdc( Int i, Int val ) { m_interLayerPredLayerIdc[i] = val; }2381 Int getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; }2373 Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; } 2374 Bool getDiscardableFlag( ) { return m_discardableFlag; } 2375 2376 Void setInterLayerPredEnabledFlag( Bool flag ) { m_interLayerPredEnabledFlag = flag; } 2377 Bool getInterLayerPredEnabledFlag( ) { return m_interLayerPredEnabledFlag; } 2378 2379 Void setNumInterLayerRefPicsMinus1( Int val ) { m_numInterLayerRefPicsMinus1 = val; } 2380 Int getNumInterLayerRefPicsMinus1( ) { return m_numInterLayerRefPicsMinus1; } 2381 2382 Void setInterLayerPredLayerIdc( Int i, Int val ) { m_interLayerPredLayerIdc[i] = val; } 2383 Int getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; } 2382 2384 2383 2385 // Additional variables derived in slice header semantics -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TypeDef.h
r768 r769 55 55 56 56 #ifndef HEVC_EXT 57 #define HEVC_EXT 057 #define HEVC_EXT 2 58 58 #endif 59 59 … … 233 233 234 234 #if H_3D_DIM_DLT 235 #define Log2( n ) ( log((double)n) / log(2.0) ) // Ed.(GT): This is very very bad and should be fixed to used integer arithmetics ( see gCeilLog2 ) moreover it should not be defined in the tool macro section!236 235 #define H_3D_DELTA_DLT 1 237 236 #endif … … 279 278 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 280 279 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 281 280 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 281 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 282 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 283 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 284 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 282 285 283 286 ///////////////////////////////////////////////////////////////////////////////////////// … … 329 332 #define MAX_NUM_BITSTREAM_PARTITIONS 100 ///< Maximum value is actually not specified 330 333 #define MAX_NUM_BSP_SCHED_COMBINATION 100 ///< Maximum value is actually not specified 334 #else 335 #define MAX_NUM_LAYER_IDS 64 331 336 #endif 332 337 … … 845 850 }; 846 851 847 848 #endif 849 #endif 852 #define Log2( n ) ( log((double)n) / log(2.0) ) // Ed.(GT): This is very very bad and should be fixed to used integer arithmetics ( see gCeilLog2 ) moreover it should not be defined in the tool macro section! 853 #endif 854 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r768 r769 937 937 938 938 READ_FLAG( uiCode, "sps_extension_flag"); 939 #if H_MV 939 940 pcSPS->setSpsExtensionFlag( uiCode ); 940 941 if (pcSPS->getSpsExtensionFlag( ) ) 941 { 942 #else 943 if (uiCode) 944 #endif 945 { 946 #if H_MV 942 947 for (Int i = 0; i < PS_EX_T_MAX_NUM; i++) 943 948 { … … 964 969 if ( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_ESC )) 965 970 { 971 #endif 966 972 while ( xMoreRbspData() ) 967 973 { 968 974 READ_FLAG( uiCode, "sps_extension_data_flag"); 969 975 } 970 } 976 #if H_MV 977 } 978 #endif 971 979 } 972 980 } … … 1073 1081 } 1074 1082 } 1083 #if H_MV 1075 1084 pcVPS->deriveLayerSetLayerIdList(); 1085 #endif 1076 1086 TimingInfo *timingInfo = pcVPS->getTimingInfo(); 1077 1087 READ_FLAG( uiCode, "vps_timing_info_present_flag"); timingInfo->setTimingInfoPresentFlag (uiCode ? true : false); … … 1890 1900 1891 1901 1902 #if H_MV 1892 1903 UInt slicePicOrderCntLsb = 0; 1893 1904 Int iPOClsb = slicePicOrderCntLsb; // Needed later … … 1936 1947 rpcSlice->setPOC ( 0 ); 1937 1948 } 1949 #endif 1938 1950 1939 1951 if( rpcSlice->getIdrPicFlag() ) 1940 1952 { 1953 #if !H_MV 1954 rpcSlice->setPOC(0); 1955 #endif 1941 1956 TComReferencePictureSet* rps = rpcSlice->getLocalRPS(); 1942 1957 rps->setNumberOfNegativePictures(0); … … 1951 1966 else 1952 1967 { 1968 #if !H_MV 1969 READ_CODE(sps->getBitsForPOC(), uiCode, "pic_order_cnt_lsb"); 1970 Int iPOClsb = uiCode; 1971 Int iPrevPOC = rpcSlice->getPrevTid0POC(); 1972 Int iMaxPOClsb = 1<< sps->getBitsForPOC(); 1973 Int iPrevPOClsb = iPrevPOC & (iMaxPOClsb - 1); 1974 Int iPrevPOCmsb = iPrevPOC-iPrevPOClsb; 1975 Int iPOCmsb; 1976 if( ( iPOClsb < iPrevPOClsb ) && ( ( iPrevPOClsb - iPOClsb ) >= ( iMaxPOClsb / 2 ) ) ) 1977 { 1978 iPOCmsb = iPrevPOCmsb + iMaxPOClsb; 1979 } 1980 else if( (iPOClsb > iPrevPOClsb ) && ( (iPOClsb - iPrevPOClsb ) > ( iMaxPOClsb / 2 ) ) ) 1981 { 1982 iPOCmsb = iPrevPOCmsb - iMaxPOClsb; 1983 } 1984 else 1985 { 1986 iPOCmsb = iPrevPOCmsb; 1987 } 1988 if ( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP 1989 || rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL 1990 || rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_N_LP ) 1991 { 1992 // For BLA picture types, POCmsb is set to 0. 1993 iPOCmsb = 0; 1994 } 1995 rpcSlice->setPOC (iPOCmsb+iPOClsb); 1996 #endif 1953 1997 TComReferencePictureSet* rps; 1954 1998 rps = rpcSlice->getLocalRPS(); -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r767 r769 725 725 #endif 726 726 727 #if H_MV 727 728 xCeckNoClrasOutput(); 729 #endif 728 730 // Skip pictures due to random access 729 731 if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay)) … … 731 733 m_prevSliceSkipped = true; 732 734 m_skippedPOC = m_apcSlicePilot->getPOC(); 733 sliceSkippedFlag = true; 735 #if H_MV 736 sliceSkippedFlag = true; 737 #endif 734 738 return false; 735 739 } … … 739 743 m_prevSliceSkipped = true; 740 744 m_skippedPOC = m_apcSlicePilot->getPOC(); 741 sliceSkippedFlag = true; 745 #if H_MV 746 sliceSkippedFlag = true; 747 #endif 742 748 return false; 743 749 } … … 1273 1279 return true; 1274 1280 } 1281 #if H_MV 1275 1282 else if ( !m_layerInitilizedFlag[ m_layerId ] ) // start of random access point, m_pocRandomAccess has not been set yet. 1283 #else 1284 else if (m_pocRandomAccess == MAX_INT) // start of random access point, m_pocRandomAccess has not been set yet. 1285 #endif 1276 1286 { 1277 1287 if ( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA … … 1281 1291 { 1282 1292 1293 #if H_MV 1283 1294 if ( xAllRefLayersInitilized() ) 1284 1295 { … … 1290 1301 return true; 1291 1302 } 1303 #else 1304 // set the POC random access since we need to skip the reordered pictures in the case of CRA/CRANT/BLA/BLANT. 1305 m_pocRandomAccess = m_apcSlicePilot->getPOC(); 1306 #endif 1292 1307 } 1293 1308 else if ( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP ) 1294 1309 { 1310 #if H_MV 1295 1311 if ( xAllRefLayersInitilized() ) 1296 1312 { 1297 1313 m_layerInitilizedFlag[ m_layerId ] = true; 1314 m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable. 1315 } 1316 else 1317 { 1318 return true; 1319 } 1320 #else 1298 1321 m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable. 1322 #endif 1299 1323 } 1300 1324 else 1301 1325 { 1302 return true; 1303 } 1304 } 1305 else 1306 { 1326 #if H_MV_FIX_SKIP_PICTURES 1307 1327 static Bool warningMessage[MAX_NUM_LAYERS]; 1308 1328 static Bool warningInitFlag = false; … … 1322 1342 warningMessage[m_layerId] = false; 1323 1343 } 1344 #else 1345 static Bool warningMessage = false; 1346 if(!warningMessage) 1347 { 1348 printf("\nWarning: this is not a valid random access point and the data is discarded until the first CRA picture"); 1349 warningMessage = true; 1350 } 1351 #endif 1324 1352 return true; 1325 1353 } … … 1331 1359 return true; 1332 1360 } 1361 #if H_MV 1333 1362 return !m_layerInitilizedFlag[ getLayerId() ]; 1363 #else 1364 // if we reach here, then the picture is not skipped. 1365 return false; 1366 #endif 1334 1367 } 1335 1368 … … 1373 1406 } 1374 1407 1408 #if H_MV 1375 1409 Void TDecTop::xCeckNoClrasOutput() 1376 1410 { … … 1407 1441 } 1408 1442 #endif 1443 #endif 1409 1444 //! \} -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r765 r769 1796 1796 #endif 1797 1797 #else 1798 #if H_3D 1798 1799 rpcTempCU->m_bAvailableFlagA1 = 0; 1799 1800 rpcTempCU->m_bAvailableFlagB1 = 0; … … 1803 1804 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1804 1805 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1806 #else 1807 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1808 #endif 1805 1809 #endif 1806 1810 -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r767 r769 817 817 pcVUI->setOverscanInfoPresentFlag(getOverscanInfoPresentFlag()); 818 818 pcVUI->setOverscanAppropriateFlag(getOverscanAppropriateFlag()); 819 #if H_MV 819 820 pcVUI->setVideoSignalTypePresentFlag(getVideoSignalTypePresentFlag() && getLayerId() == 0 ); 821 #else 822 pcVUI->setVideoSignalTypePresentFlag(getVideoSignalTypePresentFlag()); 823 #endif 820 824 pcVUI->setVideoFormat(getVideoFormat()); 821 825 pcVUI->setVideoFullRangeFlag(getVideoFullRangeFlag());
Note: See TracChangeset for help on using the changeset viewer.