Changeset 431 in SHVCSoftware for branches/SHM-3.1-dev/source/Lib/TLibCommon
- Timestamp:
- 11 Oct 2013, 05:54:02 (11 years ago)
- Location:
- branches/SHM-3.1-dev/source/Lib/TLibCommon
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-3.1-dev/source/Lib/TLibCommon/CommonDef.h
r412 r431 59 59 #define NV_VERSION "3.0.1" ///< Current software version 60 60 #else 61 #define NV_VERSION "1 1.0" ///< Current software version61 #define NV_VERSION "12.0" ///< Current software version 62 62 #endif 63 63 … … 200 200 201 201 NAL_UNIT_CODED_SLICE_TSA_N, // 2 202 NAL_UNIT_CODED_SLICE_T SA_R, // 3202 NAL_UNIT_CODED_SLICE_TLA_R, // 3 203 203 204 204 NAL_UNIT_CODED_SLICE_STSA_N, // 4 -
branches/SHM-3.1-dev/source/Lib/TLibCommon/NAL.h
r412 r431 76 76 return m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_R 77 77 || m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_N 78 || m_nalUnitType == NAL_UNIT_CODED_SLICE_T SA_R78 || m_nalUnitType == NAL_UNIT_CODED_SLICE_TLA_R 79 79 || m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_N 80 80 || m_nalUnitType == NAL_UNIT_CODED_SLICE_STSA_R -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComMv.h
r370 r431 40 40 41 41 #include "CommonDef.h" 42 #include <cstdlib> 42 43 43 44 //! \ingroup TLibCommon -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPic.cpp
r389 r431 53 53 , m_bUsedByCurr (false) 54 54 , m_bIsLongTerm (false) 55 , m_bIsUsedAsLongTerm (false)56 55 , m_apcPicSym (NULL) 57 56 , m_pcPicYuvPred (NULL) -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPic.h
r377 r431 66 66 Bool m_bUsedByCurr; // Used by current picture 67 67 Bool m_bIsLongTerm; // IS long term picture 68 Bool m_bIsUsedAsLongTerm; // long term picture is used as reference before69 68 TComPicSym* m_apcPicSym; // Symbol 70 69 … … 88 87 Window m_defaultDisplayWindow; 89 88 89 Bool m_isTop; 90 Bool m_isField; 91 90 92 std::vector<std::vector<TComDataCU*> > m_vSliceCUDataLink; 91 93 … … 194 196 std::vector<TComDataCU*>& getOneSliceCUDataForNDBFilter (Int sliceID) { return m_vSliceCUDataLink[sliceID];} 195 197 198 /* field coding parameters*/ 199 200 Void setTopField(bool b) {m_isTop = b;} 201 Bool isTopField() {return m_isTop;} 202 Void setField(bool b) {m_isField = b;} 203 Bool isField() {return m_isField;} 204 196 205 /** transfer ownership of seis to this picture */ 197 206 void setSEIs(SEIMessages& seis) { m_SEIs = seis; } -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPicSym.cpp
r377 r431 61 61 ,m_uiNumAllocatedSlice (0) 62 62 ,m_apcTComDataCU (NULL) 63 ,m_iTileBoundaryIndependenceIdr (0)64 63 ,m_iNumColumnsMinus1 (0) 65 64 ,m_iNumRowsMinus1(0) -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPicSym.h
r313 r431 100 100 TComDataCU** m_apcTComDataCU; ///< array of CU data 101 101 102 Int m_iTileBoundaryIndependenceIdr;103 102 Int m_iNumColumnsMinus1; 104 103 Int m_iNumRowsMinus1; -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPrediction.cpp
r345 r431 696 696 Int k, l, bottomLeft, topRight; 697 697 Int horPred; 698 Int leftColumn[MAX_CU_SIZE ], topRow[MAX_CU_SIZE], bottomRow[MAX_CU_SIZE], rightColumn[MAX_CU_SIZE];698 Int leftColumn[MAX_CU_SIZE+1], topRow[MAX_CU_SIZE+1], bottomRow[MAX_CU_SIZE], rightColumn[MAX_CU_SIZE]; 699 699 UInt blkSize = width; 700 700 UInt offset2D = width; -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRdCost.h
r313 r431 116 116 private: 117 117 // for distortion 118 Int m_iBlkWidth;119 Int m_iBlkHeight;120 118 121 119 #if AMP_SAD -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRom.cpp
r414 r431 55 55 ::memset( g_aucConvertToBit, -1, sizeof( g_aucConvertToBit ) ); 56 56 c=0; 57 for ( i=4; i< MAX_CU_SIZE; i*=2 )57 for ( i=4; i<=MAX_CU_SIZE; i*=2 ) 58 58 { 59 59 g_aucConvertToBit[ i ] = c; 60 60 c++; 61 61 } 62 g_aucConvertToBit[ i ] = c;63 62 64 63 c=2; … … 278 277 279 278 #if FAST_UDI_USE_MPM 280 const UChar g_aucIntraModeNumFast[ 7] =279 const UChar g_aucIntraModeNumFast[MAX_CU_DEPTH] = 281 280 { 282 281 3, // 2x2 … … 285 284 3, // 16x16 286 285 3, // 32x32 287 3, // 64x64 288 3 // 128x128 286 3 // 64x64 289 287 }; 290 288 #else // FAST_UDI_USE_MPM 291 const UChar g_aucIntraModeNumFast[ 7] =289 const UChar g_aucIntraModeNumFast[MAX_CU_DEPTH] = 292 290 { 293 291 3, // 2x2 … … 296 294 4, // 16x16 33 297 295 4, // 32x32 33 298 5, // 64x64 33 299 4 // 128x128 33 296 5 // 64x64 33 300 297 }; 301 298 #endif // FAST_UDI_USE_MPM -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRom.h
r414 r431 51 51 // ==================================================================================================================== 52 52 53 #define MAX_CU_DEPTH 7// log2(LCUSize)53 #define MAX_CU_DEPTH 6 // log2(LCUSize) 54 54 #define MAX_CU_SIZE (1<<(MAX_CU_DEPTH)) // maximum allowable size of CU 55 55 #define MIN_PU_SIZE 4 … … 131 131 // ==================================================================================================================== 132 132 133 extern const UChar g_aucIntraModeNumFast[ 7];133 extern const UChar g_aucIntraModeNumFast[ MAX_CU_DEPTH ]; 134 134 135 135 #if FAST_INTRA_SHVC -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r430 r431 186 186 m_aiNumRefIdx[0] = 0; 187 187 m_aiNumRefIdx[1] = 0; 188 188 189 m_colFromL0Flag = 1; 189 190 … … 292 293 if (!pocHasMsb) 293 294 { 294 poc = poc % pocCycle;295 poc = poc & (pocCycle - 1); 295 296 } 296 297 … … 303 304 if (!pocHasMsb) 304 305 { 305 picPoc = picPoc % pocCycle;306 picPoc = picPoc & (pocCycle - 1); 306 307 } 307 308 … … 966 967 } 967 968 968 Void TComSlice::checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic)969 Void TComSlice::checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic) 969 970 { 970 971 for(Int i = 0; i < pReferencePictureSet->getNumberOfNegativePictures()+pReferencePictureSet->getNumberOfPositivePictures(); i++) … … 992 993 { 993 994 pocCRA = getPOC(); 994 prevRAPisBLA = false;995 associatedIRAPType = getNalUnitType(); 995 996 } 996 997 else if ( getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA ) // CRA picture found 997 998 { 998 999 pocCRA = getPOC(); 999 prevRAPisBLA = false;1000 associatedIRAPType = getNalUnitType(); 1000 1001 } 1001 1002 else if ( getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP … … 1004 1005 { 1005 1006 pocCRA = getPOC(); 1006 prevRAPisBLA = true;1007 associatedIRAPType = getNalUnitType(); 1007 1008 } 1008 1009 } … … 1029 1030 { 1030 1031 TComPic* rpcPic; 1032 setAssociatedIRAPPOC(pocCRA); 1031 1033 Int pocCurr = getPOC(); 1032 1034 … … 1195 1197 } 1196 1198 1197 Int TComSlice::m_prev POC = 0;1199 Int TComSlice::m_prevTid0POC = 0; 1198 1200 1199 1201 /** Function for setting the slice's temporal layer ID and corresponding temporal_layer_switching_point_flag. … … 1250 1252 } 1251 1253 1254 1255 Void TComSlice::checkLeadingPictureRestrictions(TComList<TComPic*>& rcListPic) 1256 { 1257 TComPic* rpcPic; 1258 1259 Int nalUnitType = this->getNalUnitType(); 1260 1261 // When a picture is a leading picture, it shall be a RADL or RASL picture. 1262 if(this->getAssociatedIRAPPOC() > this->getPOC()) 1263 { 1264 // Do not check IRAP pictures since they may get a POC lower than their associated IRAP 1265 if(nalUnitType < NAL_UNIT_CODED_SLICE_BLA_W_LP || 1266 nalUnitType > NAL_UNIT_RESERVED_IRAP_VCL23) 1267 { 1268 assert(nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || 1269 nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R || 1270 nalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || 1271 nalUnitType == NAL_UNIT_CODED_SLICE_RADL_R); 1272 } 1273 } 1274 1275 // When a picture is a trailing picture, it shall not be a RADL or RASL picture. 1276 if(this->getAssociatedIRAPPOC() < this->getPOC()) 1277 { 1278 assert(nalUnitType != NAL_UNIT_CODED_SLICE_RASL_N && 1279 nalUnitType != NAL_UNIT_CODED_SLICE_RASL_R && 1280 nalUnitType != NAL_UNIT_CODED_SLICE_RADL_N && 1281 nalUnitType != NAL_UNIT_CODED_SLICE_RADL_R); 1282 } 1283 1284 // No RASL pictures shall be present in the bitstream that are associated 1285 // with a BLA picture having nal_unit_type equal to BLA_W_RADL or BLA_N_LP. 1286 if(nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || 1287 nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R) 1288 { 1289 assert(this->getAssociatedIRAPType() != NAL_UNIT_CODED_SLICE_BLA_W_RADL && 1290 this->getAssociatedIRAPType() != NAL_UNIT_CODED_SLICE_BLA_N_LP); 1291 } 1292 1293 // No RASL pictures shall be present in the bitstream that are associated with 1294 // an IDR picture. 1295 if(nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || 1296 nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R) 1297 { 1298 assert(this->getAssociatedIRAPType() != NAL_UNIT_CODED_SLICE_IDR_N_LP && 1299 this->getAssociatedIRAPType() != NAL_UNIT_CODED_SLICE_IDR_W_RADL); 1300 } 1301 1302 // No RADL pictures shall be present in the bitstream that are associated with 1303 // a BLA picture having nal_unit_type equal to BLA_N_LP or that are associated 1304 // with an IDR picture having nal_unit_type equal to IDR_N_LP. 1305 if(nalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || 1306 nalUnitType == NAL_UNIT_CODED_SLICE_RADL_R) 1307 { 1308 assert(this->getAssociatedIRAPType() != NAL_UNIT_CODED_SLICE_BLA_N_LP && 1309 this->getAssociatedIRAPType() != NAL_UNIT_CODED_SLICE_IDR_N_LP); 1310 } 1311 1312 // loop through all pictures in the reference picture buffer 1313 TComList<TComPic*>::iterator iterPic = rcListPic.begin(); 1314 while ( iterPic != rcListPic.end()) 1315 { 1316 rpcPic = *(iterPic++); 1317 if (rpcPic->getPOC() == this->getPOC()) 1318 { 1319 continue; 1320 } 1321 1322 // Any picture that has PicOutputFlag equal to 1 that precedes an IRAP picture 1323 // in decoding order shall precede the IRAP picture in output order. 1324 // (Note that any picture following in output order would be present in the DPB) 1325 if(rpcPic->getSlice(0)->getPicOutputFlag() == 1) 1326 { 1327 if(nalUnitType == NAL_UNIT_CODED_SLICE_BLA_N_LP || 1328 nalUnitType == NAL_UNIT_CODED_SLICE_BLA_W_LP || 1329 nalUnitType == NAL_UNIT_CODED_SLICE_BLA_W_RADL || 1330 nalUnitType == NAL_UNIT_CODED_SLICE_CRA || 1331 nalUnitType == NAL_UNIT_CODED_SLICE_IDR_N_LP || 1332 nalUnitType == NAL_UNIT_CODED_SLICE_IDR_W_RADL) 1333 { 1334 assert(rpcPic->getPOC() < this->getPOC()); 1335 } 1336 } 1337 1338 // Any picture that has PicOutputFlag equal to 1 that precedes an IRAP picture 1339 // in decoding order shall precede any RADL picture associated with the IRAP 1340 // picture in output order. 1341 if(rpcPic->getSlice(0)->getPicOutputFlag() == 1) 1342 { 1343 if((nalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || 1344 nalUnitType == NAL_UNIT_CODED_SLICE_RADL_R)) 1345 { 1346 // rpcPic precedes the IRAP in decoding order 1347 if(this->getAssociatedIRAPPOC() > rpcPic->getSlice(0)->getAssociatedIRAPPOC()) 1348 { 1349 // rpcPic must not be the IRAP picture 1350 if(this->getAssociatedIRAPPOC() != rpcPic->getPOC()) 1351 { 1352 assert(rpcPic->getPOC() < this->getPOC()); 1353 } 1354 } 1355 } 1356 } 1357 1358 // When a picture is a leading picture, it shall precede, in decoding order, 1359 // all trailing pictures that are associated with the same IRAP picture. 1360 if(nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || 1361 nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R || 1362 nalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || 1363 nalUnitType == NAL_UNIT_CODED_SLICE_RADL_R) 1364 { 1365 if(rpcPic->getSlice(0)->getAssociatedIRAPPOC() == this->getAssociatedIRAPPOC()) 1366 { 1367 // rpcPic is a picture that preceded the leading in decoding order since it exist in the DPB 1368 // rpcPic would violate the constraint if it was a trailing picture 1369 assert(rpcPic->getPOC() <= this->getAssociatedIRAPPOC()); 1370 } 1371 } 1372 1373 // Any RASL picture associated with a CRA or BLA picture shall precede any 1374 // RADL picture associated with the CRA or BLA picture in output order 1375 if(nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || 1376 nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R) 1377 { 1378 if((this->getAssociatedIRAPType() == NAL_UNIT_CODED_SLICE_BLA_N_LP || 1379 this->getAssociatedIRAPType() == NAL_UNIT_CODED_SLICE_BLA_W_LP || 1380 this->getAssociatedIRAPType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL || 1381 this->getAssociatedIRAPType() == NAL_UNIT_CODED_SLICE_CRA) && 1382 this->getAssociatedIRAPPOC() == rpcPic->getSlice(0)->getAssociatedIRAPPOC()) 1383 { 1384 if(rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_N || 1385 rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_R) 1386 { 1387 assert(rpcPic->getPOC() > this->getPOC()); 1388 } 1389 } 1390 } 1391 1392 // Any RASL picture associated with a CRA picture shall follow, in output 1393 // order, any IRAP picture that precedes the CRA picture in decoding order. 1394 if(nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || 1395 nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R) 1396 { 1397 if(this->getAssociatedIRAPType() == NAL_UNIT_CODED_SLICE_CRA) 1398 { 1399 if(rpcPic->getSlice(0)->getPOC() < this->getAssociatedIRAPPOC() && 1400 (rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_N_LP || 1401 rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP || 1402 rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL || 1403 rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || 1404 rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || 1405 rpcPic->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA)) 1406 { 1407 assert(this->getPOC() > rpcPic->getSlice(0)->getPOC()); 1408 } 1409 } 1410 } 1411 } 1412 } 1413 1252 1414 /** Function for applying picture marking based on the Reference Picture Set in pReferencePictureSet. 1253 1415 */ … … 1256 1418 TComPic* rpcPic; 1257 1419 Int i, isReference; 1420 1421 checkLeadingPictureRestrictions(rcListPic); 1258 1422 1259 1423 // loop through all pictures in the reference picture buffer … … 1292 1456 else 1293 1457 { 1294 if(rpcPic->getIsLongTerm() && (rpcPic->getPicSym()->getSlice(0)->getPOC()%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) == pReferencePictureSet->getPOC(i)%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) 1458 Int pocCycle = 1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC(); 1459 Int curPoc = rpcPic->getPicSym()->getSlice(0)->getPOC() & (pocCycle-1); 1460 Int refPoc = pReferencePictureSet->getPOC(i) & (pocCycle-1); 1461 if(rpcPic->getIsLongTerm() && curPoc == refPoc) 1295 1462 { 1296 1463 isReference = 1; … … 1311 1478 assert(rpcPic->getSlice( 0 )->isReferenced()==0||rpcPic->getUsedByCurr()==0||rpcPic->getTLayer()<=this->getTLayer()); 1312 1479 //check that pictures of higher or equal temporal layer are not in the RPS if the current picture is a TSA picture 1313 if(this->getNalUnitType() == NAL_UNIT_CODED_SLICE_T SA_R || this->getNalUnitType() == NAL_UNIT_CODED_SLICE_TSA_N)1480 if(this->getNalUnitType() == NAL_UNIT_CODED_SLICE_TLA_R || this->getNalUnitType() == NAL_UNIT_CODED_SLICE_TSA_N) 1314 1481 { 1315 1482 assert(rpcPic->getSlice( 0 )->isReferenced()==0||rpcPic->getTLayer()<this->getTLayer()); … … 1352 1519 else 1353 1520 { 1354 if(rpcPic->getIsLongTerm() && (rpcPic->getPicSym()->getSlice(0)->getPOC()%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC())) == pReferencePictureSet->getPOC(i)%(1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC()) && rpcPic->getSlice(0)->isReferenced()) 1521 Int pocCycle = 1<<rpcPic->getPicSym()->getSlice(0)->getSPS()->getBitsForPOC(); 1522 Int curPoc = rpcPic->getPicSym()->getSlice(0)->getPOC() & (pocCycle-1); 1523 Int refPoc = pReferencePictureSet->getPOC(i) & (pocCycle-1); 1524 if(rpcPic->getIsLongTerm() && curPoc == refPoc && rpcPic->getSlice(0)->isReferenced()) 1355 1525 { 1356 1526 isAvailable = 1; … … 1371 1541 if (!pReferencePictureSet->getCheckLTMSBPresent(i)) 1372 1542 { 1373 curPoc = curPoc % pocCycle;1374 refPoc = refPoc % pocCycle;1543 curPoc = curPoc & (pocCycle - 1); 1544 refPoc = refPoc & (pocCycle - 1); 1375 1545 } 1376 1546 … … 2114 2284 } 2115 2285 2116 2286 /* 2117 2287 Note: only the case of "vps_max_temporal_layers_minus1 = 0" is supported. 2118 2288 */ 2119 2289 Int i, j; 2120 2290 UInt birateValue, cpbSizeValue; … … 2410 2580 TComScalingList::TComScalingList() 2411 2581 { 2412 m_useTransformSkip = false;2413 2582 init(); 2414 2583 } 2584 2415 2585 TComScalingList::~TComScalingList() 2416 2586 { … … 2495 2665 { 2496 2666 src = getScalingListAddress(sizeIdc, listIdc); 2667 2497 2668 fseek(fp,0,0); 2498 2669 do -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.h
r425 r431 166 166 #endif 167 167 168 Bool getUseTransformSkip () { return m_useTransformSkip; }169 Void setUseTransformSkip (Bool b) { m_useTransformSkip = b; }170 171 168 Int* getScalingListAddress (UInt sizeId, UInt listId) { return m_scalingListCoef[sizeId][listId]; } //!< get matrix coefficient 172 173 169 Bool checkPredMode (UInt sizeId, UInt listId); 174 175 170 Void setRefMatrixId (UInt sizeId, UInt listId, UInt u) { m_refMatrixId[sizeId][listId] = u; } //!< set reference matrix ID 176 171 UInt getRefMatrixId (UInt sizeId, UInt listId) { return m_refMatrixId[sizeId][listId]; } //!< get reference matrix ID … … 201 196 Void init (); 202 197 Void destroy (); 203 204 198 Int m_scalingListDC [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< the DC value of the matrix coefficient for 16x16 205 199 Bool m_useDefaultScalingMatrixFlag [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< UseDefaultScalingMatrixFlag … … 213 207 214 208 UInt m_predMatrixId [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< reference list index 215 216 Int *m_scalingListCoef [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< quantization matrix 217 218 Bool m_useTransformSkip; //!< transform skipping flag for setting default scaling matrix for 4x4 209 Int *m_scalingListCoef [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< quantization matrix 219 210 }; 220 211 … … 1627 1618 Int m_iPOC; 1628 1619 Int m_iLastIDR; 1629 static Int m_prevPOC; 1620 Int m_iAssociatedIRAP; 1621 NalUnitType m_iAssociatedIRAPType; 1622 static Int m_prevTid0POC; 1630 1623 TComReferencePictureSet *m_pcRPS; 1631 1624 TComReferencePictureSet m_LocalRPS; … … 1788 1781 Void setRPSidx ( Int iBDidx ) { m_iBDidx = iBDidx; } 1789 1782 Int getRPSidx () { return m_iBDidx; } 1790 Int getPrev POC () { return m_prevPOC; }1783 Int getPrevTid0POC () { return m_prevTid0POC; } 1791 1784 TComRefPicListModification* getRefPicListModification() { return &m_RefPicListModification; } 1792 1785 Void setLastIDR(Int iIDRPOC) { m_iLastIDR = iIDRPOC; } 1793 1786 Int getLastIDR() { return m_iLastIDR; } 1787 Void setAssociatedIRAPPOC(Int iAssociatedIRAPPOC) { m_iAssociatedIRAP = iAssociatedIRAPPOC; } 1788 Int getAssociatedIRAPPOC() { return m_iAssociatedIRAP; } 1789 Void setAssociatedIRAPType(NalUnitType associatedIRAPType) { m_iAssociatedIRAPType = associatedIRAPType; } 1790 NalUnitType getAssociatedIRAPType() { return m_iAssociatedIRAPType; } 1794 1791 SliceType getSliceType () { return m_eSliceType; } 1795 1792 Int getPOC () { return m_iPOC; } … … 1817 1814 Void checkColRefIdx (UInt curSliceIdx, TComPic* pic); 1818 1815 Bool getIsUsedAsLongTerm (Int i, Int j) { return m_bIsUsedAsLongTerm[i][j]; } 1816 Void setIsUsedAsLongTerm (Int i, Int j, Bool value) { m_bIsUsedAsLongTerm[i][j] = value; } 1819 1817 Bool getCheckLDC () { return m_bCheckLDC; } 1820 1818 Bool getMvdL1ZeroFlag () { return m_bLMvdL1Zero; } … … 1826 1824 Void setReferenced(Bool b) { m_bRefenced = b; } 1827 1825 Bool isReferenced() { return m_bRefenced; } 1828 Void setPOC ( Int i ) { m_iPOC = i; if(getTLayer()==0) m_prevPOC=i; } 1826 Bool isReferenceNalu() { return ((getNalUnitType() <= NAL_UNIT_RESERVED_VCL_R15) && (getNalUnitType()%2 != 0)) || ((getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP) && (getNalUnitType() <= NAL_UNIT_RESERVED_IRAP_VCL23) ); } 1827 Void setPOC ( Int i ) { m_iPOC = i; if ((getTLayer()==0) && (isReferenceNalu() && (getNalUnitType()!=NAL_UNIT_CODED_SLICE_RASL_R)&& (getNalUnitType()!=NAL_UNIT_CODED_SLICE_RADL_R))) {m_prevTid0POC=i;} } 1829 1828 Void setNalUnitType ( NalUnitType e ) { m_eNalUnitType = e; } 1830 1829 NalUnitType getNalUnitType () const { return m_eNalUnitType; } … … 1848 1847 #endif 1849 1848 1850 Void checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic);1849 Void checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic); 1851 1850 Void decodingRefreshMarking(Int& pocCRA, Bool& bRefreshPending, TComList<TComPic*>& rcListPic); 1852 1851 Void setSliceType ( SliceType e ) { m_eSliceType = e; } … … 1917 1916 Void setTLayerInfo( UInt uiTLayer ); 1918 1917 Void decodingMarking( TComList<TComPic*>& rcListPic, Int iGOPSIze, Int& iMaxRefPicNum ); 1918 Void checkLeadingPictureRestrictions( TComList<TComPic*>& rcListPic ); 1919 1919 Void applyReferencePictureSet( TComList<TComPic*>& rcListPic, TComReferencePictureSet *RPSList); 1920 1920 Bool isTemporalLayerSwitchingPoint( TComList<TComPic*>& rcListPic ); -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComWeightPrediction.h
r313 r431 53 53 class TComWeightPrediction 54 54 { 55 wpScalingParam m_wp0[3], m_wp1[3];56 57 55 public: 58 56 TComWeightPrediction(); -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TypeDef.h
r425 r431 43 43 #define SYNTAX_BYTES 10 ///< number of bytes taken by syntaxes per 4x4 block [RefIdxL0(1byte), RefIdxL1(1byte), MVxL0(2bytes), MVyL0(2bytes), MVxL1(2bytes), MVyL1(2bytes)] 44 44 45 #define HM12_RANDOM_ACCESS 146 45 #define RANDOM_ACCESS_SEI_FIX 1 46 #if SVC_EXTENSION 47 47 #define VPS_NUH_LAYER_ID 1 ///< JCTVC-N0085: Assert that the nuh_layer_id of VPS NAL unit should be 0 48 #if SVC_EXTENSION49 48 #define MAX_LAYERS 2 ///< max number of layers the codec is supposed to handle 50 49 #define POC_RESET_FLAG 1 ///< JCTVC-N0244: POC reset flag for layer pictures. … … 156 155 #define RC_SHVC_HARMONIZATION 1 ///< JCTVC-M0037: rate control for SHVC 157 156 157 #define VIEW_ID_RELATED_SIGNALING 1 ///< Introduce syntax elements view_id_len_minus1 and view_id_val 158 #define M0043_LAYERS_PRESENT_SEI 0 ///< JCTVC-M0043: add layers present SEI. Macro shall be equal to 0 according to the JCTVC-N0174 discussion. The code is to be removed. 158 159 #else 159 160 #define SYNTAX_OUTPUT 0 … … 165 166 166 167 #define FIX1071 1 ///< fix for issue #1071 167 #define VIEW_ID_RELATED_SIGNALING 1 ///< Introduce syntax elements view_id_len_minus1 and view_id_val168 #define M0043_LAYERS_PRESENT_SEI 0 ///< JCTVC-M0043: add layers present SEI. Macro shall be equal to 0 according to the JCTVC-N0174 discussion. The code is to be removed.169 168 170 169 #define MAX_NUM_PICS_IN_SOP 1024
Note: See TracChangeset for help on using the changeset viewer.