Changeset 431 in SHVCSoftware for branches/SHM-3.1-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
11 Oct 2013, 05:54:02 (11 years ago)
Author:
seregin
Message:

initial porting of HM12

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  
    5959#define NV_VERSION        "3.0.1"                 ///< Current software version
    6060#else
    61 #define NV_VERSION        "11.0"                ///< Current software version
     61#define NV_VERSION        "12.0"                ///< Current software version
    6262#endif
    6363
     
    200200 
    201201  NAL_UNIT_CODED_SLICE_TSA_N,     // 2
    202   NAL_UNIT_CODED_SLICE_TSA_R,       // 3
     202  NAL_UNIT_CODED_SLICE_TLA_R,       // 3
    203203 
    204204  NAL_UNIT_CODED_SLICE_STSA_N,    // 4
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/NAL.h

    r412 r431  
    7676    return m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_R
    7777        || m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_N
    78         || m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_R
     78        || m_nalUnitType == NAL_UNIT_CODED_SLICE_TLA_R
    7979        || m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_N
    8080        || m_nalUnitType == NAL_UNIT_CODED_SLICE_STSA_R
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComMv.h

    r370 r431  
    4040
    4141#include "CommonDef.h"
     42#include <cstdlib>
    4243
    4344//! \ingroup TLibCommon
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPic.cpp

    r389 r431  
    5353, m_bUsedByCurr                           (false)
    5454, m_bIsLongTerm                           (false)
    55 , m_bIsUsedAsLongTerm                     (false)
    5655, m_apcPicSym                             (NULL)
    5756, m_pcPicYuvPred                          (NULL)
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPic.h

    r377 r431  
    6666  Bool                  m_bUsedByCurr;            //  Used by current picture
    6767  Bool                  m_bIsLongTerm;            //  IS long term picture
    68   Bool                  m_bIsUsedAsLongTerm;      //  long term picture is used as reference before
    6968  TComPicSym*           m_apcPicSym;              //  Symbol
    7069 
     
    8887  Window                m_defaultDisplayWindow;
    8988
     89  Bool                  m_isTop;
     90  Bool                  m_isField;
     91 
    9092  std::vector<std::vector<TComDataCU*> > m_vSliceCUDataLink;
    9193
     
    194196  std::vector<TComDataCU*>& getOneSliceCUDataForNDBFilter      (Int sliceID) { return m_vSliceCUDataLink[sliceID];}
    195197
     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
    196205  /** transfer ownership of seis to this picture */
    197206  void setSEIs(SEIMessages& seis) { m_SEIs = seis; }
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPicSym.cpp

    r377 r431  
    6161,m_uiNumAllocatedSlice (0)
    6262,m_apcTComDataCU (NULL)
    63 ,m_iTileBoundaryIndependenceIdr (0)
    6463,m_iNumColumnsMinus1 (0)
    6564,m_iNumRowsMinus1(0)
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPicSym.h

    r313 r431  
    100100  TComDataCU**  m_apcTComDataCU;        ///< array of CU data
    101101 
    102   Int           m_iTileBoundaryIndependenceIdr;
    103102  Int           m_iNumColumnsMinus1;
    104103  Int           m_iNumRowsMinus1;
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r345 r431  
    696696  Int k, l, bottomLeft, topRight;
    697697  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];
    699699  UInt blkSize = width;
    700700  UInt offset2D = width;
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRdCost.h

    r313 r431  
    116116private:
    117117  // for distortion
    118   Int                     m_iBlkWidth;
    119   Int                     m_iBlkHeight;
    120118 
    121119#if AMP_SAD
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRom.cpp

    r414 r431  
    5555  ::memset( g_aucConvertToBit,   -1, sizeof( g_aucConvertToBit ) );
    5656  c=0;
    57   for ( i=4; i<MAX_CU_SIZE; i*=2 )
     57  for ( i=4; i<=MAX_CU_SIZE; i*=2 )
    5858  {
    5959    g_aucConvertToBit[ i ] = c;
    6060    c++;
    6161  }
    62   g_aucConvertToBit[ i ] = c;
    6362 
    6463  c=2;
     
    278277
    279278#if FAST_UDI_USE_MPM
    280 const UChar g_aucIntraModeNumFast[7] =
     279const UChar g_aucIntraModeNumFast[MAX_CU_DEPTH] =
    281280{
    282281  3,  //   2x2
     
    285284  3,  //  16x16   
    286285  3,  //  32x32   
    287   3,  //  64x64   
    288   3   // 128x128 
     286  3   //  64x64   
    289287};
    290288#else // FAST_UDI_USE_MPM
    291 const UChar g_aucIntraModeNumFast[7] =
     289const UChar g_aucIntraModeNumFast[MAX_CU_DEPTH] =
    292290{
    293291  3,  //   2x2
     
    296294  4,  //  16x16   33
    297295  4,  //  32x32   33
    298   5,  //  64x64   33
    299   4   // 128x128  33
     296  5   //  64x64   33
    300297};
    301298#endif // FAST_UDI_USE_MPM
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRom.h

    r414 r431  
    5151// ====================================================================================================================
    5252
    53 #define     MAX_CU_DEPTH            7                           // log2(LCUSize)
     53#define     MAX_CU_DEPTH            6                           // log2(LCUSize)
    5454#define     MAX_CU_SIZE             (1<<(MAX_CU_DEPTH))         // maximum allowable size of CU
    5555#define     MIN_PU_SIZE             4
     
    131131// ====================================================================================================================
    132132
    133 extern const UChar  g_aucIntraModeNumFast[7];
     133extern const UChar  g_aucIntraModeNumFast[ MAX_CU_DEPTH ];
    134134
    135135#if FAST_INTRA_SHVC
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.cpp

    r430 r431  
    186186  m_aiNumRefIdx[0]      = 0;
    187187  m_aiNumRefIdx[1]      = 0;
     188 
    188189  m_colFromL0Flag = 1;
    189190 
     
    292293  if (!pocHasMsb)
    293294  {
    294     poc = poc % pocCycle;
     295    poc = poc & (pocCycle - 1);
    295296  }
    296297 
     
    303304      if (!pocHasMsb)
    304305      {
    305         picPoc = picPoc % pocCycle;
     306        picPoc = picPoc & (pocCycle - 1);
    306307      }
    307308     
     
    966967}
    967968
    968 Void TComSlice::checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic)
     969Void TComSlice::checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic)
    969970{
    970971  for(Int i = 0; i < pReferencePictureSet->getNumberOfNegativePictures()+pReferencePictureSet->getNumberOfPositivePictures(); i++)
     
    992993  {
    993994    pocCRA = getPOC();
    994     prevRAPisBLA = false;
     995    associatedIRAPType = getNalUnitType();
    995996  }
    996997  else if ( getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA ) // CRA picture found
    997998  {
    998999    pocCRA = getPOC();
    999     prevRAPisBLA = false;
     1000    associatedIRAPType = getNalUnitType();
    10001001  }
    10011002  else if ( getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP
     
    10041005  {
    10051006    pocCRA = getPOC();
    1006     prevRAPisBLA = true;
     1007    associatedIRAPType = getNalUnitType();
    10071008  }
    10081009}
     
    10291030{
    10301031  TComPic*                 rpcPic;
     1032  setAssociatedIRAPPOC(pocCRA);
    10311033  Int pocCurr = getPOC();
    10321034
     
    11951197}
    11961198
    1197 Int TComSlice::m_prevPOC = 0;
     1199Int TComSlice::m_prevTid0POC = 0;
    11981200
    11991201/** Function for setting the slice's temporal layer ID and corresponding temporal_layer_switching_point_flag.
     
    12501252}
    12511253
     1254
     1255Void 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
    12521414/** Function for applying picture marking based on the Reference Picture Set in pReferencePictureSet.
    12531415*/
     
    12561418  TComPic* rpcPic;
    12571419  Int i, isReference;
     1420
     1421  checkLeadingPictureRestrictions(rcListPic);
    12581422
    12591423  // loop through all pictures in the reference picture buffer
     
    12921456      else
    12931457      {
    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)
    12951462        {
    12961463          isReference = 1;
     
    13111478    assert(rpcPic->getSlice( 0 )->isReferenced()==0||rpcPic->getUsedByCurr()==0||rpcPic->getTLayer()<=this->getTLayer());
    13121479    //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_TSA_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)
    13141481    {
    13151482      assert(rpcPic->getSlice( 0 )->isReferenced()==0||rpcPic->getTLayer()<this->getTLayer());
     
    13521519      else
    13531520      {
    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())
    13551525        {
    13561526          isAvailable = 1;
     
    13711541        if (!pReferencePictureSet->getCheckLTMSBPresent(i))
    13721542        {
    1373           curPoc = curPoc % pocCycle;
    1374           refPoc = refPoc % pocCycle;
     1543          curPoc = curPoc & (pocCycle - 1);
     1544          refPoc = refPoc & (pocCycle - 1);
    13751545        }
    13761546       
     
    21142284    }
    21152285
    2116   /*
     2286/*
    21172287     Note: only the case of "vps_max_temporal_layers_minus1 = 0" is supported.
    2118   */
     2288*/
    21192289    Int i, j;
    21202290    UInt birateValue, cpbSizeValue;
     
    24102580TComScalingList::TComScalingList()
    24112581{
    2412   m_useTransformSkip = false;
    24132582  init();
    24142583}
     2584
    24152585TComScalingList::~TComScalingList()
    24162586{
     
    24952665    {
    24962666      src = getScalingListAddress(sizeIdc, listIdc);
     2667
    24972668      fseek(fp,0,0);
    24982669      do
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.h

    r425 r431  
    166166#endif
    167167
    168   Bool     getUseTransformSkip    ()                                     { return m_useTransformSkip; }     
    169   Void     setUseTransformSkip    (Bool b)                               { m_useTransformSkip = b;    }
    170 
    171168  Int*     getScalingListAddress          (UInt sizeId, UInt listId)           { return m_scalingListCoef[sizeId][listId]; } //!< get matrix coefficient
    172 
    173169  Bool     checkPredMode                  (UInt sizeId, UInt listId);
    174 
    175170  Void     setRefMatrixId                 (UInt sizeId, UInt listId, UInt u)   { m_refMatrixId[sizeId][listId] = u;    }     //!< set reference matrix ID
    176171  UInt     getRefMatrixId                 (UInt sizeId, UInt listId)           { return m_refMatrixId[sizeId][listId]; }     //!< get reference matrix ID
     
    201196  Void     init                    ();
    202197  Void     destroy                 ();
    203 
    204198  Int      m_scalingListDC               [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< the DC value of the matrix coefficient for 16x16
    205199  Bool     m_useDefaultScalingMatrixFlag [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< UseDefaultScalingMatrixFlag
     
    213207
    214208  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                                           
    219210};
    220211
     
    16271618  Int         m_iPOC;
    16281619  Int         m_iLastIDR;
    1629   static Int  m_prevPOC;
     1620  Int         m_iAssociatedIRAP;
     1621  NalUnitType m_iAssociatedIRAPType;
     1622  static Int  m_prevTid0POC;
    16301623  TComReferencePictureSet *m_pcRPS;
    16311624  TComReferencePictureSet m_LocalRPS;
     
    17881781  Void      setRPSidx          ( Int iBDidx ) { m_iBDidx = iBDidx; }
    17891782  Int       getRPSidx          () { return m_iBDidx; }
    1790   Int       getPrevPOC      ()                          { return  m_prevPOC;       }
     1783  Int       getPrevTid0POC      ()                        { return  m_prevTid0POC;       }
    17911784  TComRefPicListModification* getRefPicListModification() { return &m_RefPicListModification; }
    17921785  Void      setLastIDR(Int iIDRPOC)                       { m_iLastIDR = iIDRPOC; }
    17931786  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; }
    17941791  SliceType getSliceType    ()                          { return  m_eSliceType;         }
    17951792  Int       getPOC          ()                          { return  m_iPOC;           }
     
    18171814  Void      checkColRefIdx      (UInt curSliceIdx, TComPic* pic);
    18181815  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; }
    18191817  Bool      getCheckLDC     ()                                  { return m_bCheckLDC; }
    18201818  Bool      getMvdL1ZeroFlag ()                                  { return m_bLMvdL1Zero;    }
     
    18261824  Void      setReferenced(Bool b)                               { m_bRefenced = b; }
    18271825  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;} }
    18291828  Void      setNalUnitType      ( NalUnitType e )               { m_eNalUnitType      = e;      }
    18301829  NalUnitType getNalUnitType    () const                        { return m_eNalUnitType;        }
     
    18481847#endif
    18491848
    1850   Void      checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic);
     1849  Void      checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, NalUnitType& associatedIRAPType, TComList<TComPic *>& rcListPic);
    18511850  Void      decodingRefreshMarking(Int& pocCRA, Bool& bRefreshPending, TComList<TComPic*>& rcListPic);
    18521851  Void      setSliceType        ( SliceType e )                 { m_eSliceType        = e;      }
     
    19171916  Void setTLayerInfo( UInt uiTLayer );
    19181917  Void decodingMarking( TComList<TComPic*>& rcListPic, Int iGOPSIze, Int& iMaxRefPicNum );
     1918  Void checkLeadingPictureRestrictions( TComList<TComPic*>& rcListPic );
    19191919  Void applyReferencePictureSet( TComList<TComPic*>& rcListPic, TComReferencePictureSet *RPSList);
    19201920  Bool isTemporalLayerSwitchingPoint( TComList<TComPic*>& rcListPic );
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TComWeightPrediction.h

    r313 r431  
    5353class TComWeightPrediction
    5454{
    55   wpScalingParam  m_wp0[3], m_wp1[3];
    56 
    5755public:
    5856  TComWeightPrediction();
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TypeDef.h

    r425 r431  
    4343#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)]
    4444
    45 #define HM12_RANDOM_ACCESS               1
    4645#define RANDOM_ACCESS_SEI_FIX            1
     46#if SVC_EXTENSION
    4747#define VPS_NUH_LAYER_ID                 1      ///< JCTVC-N0085: Assert that the nuh_layer_id of VPS NAL unit should be 0
    48 #if SVC_EXTENSION
    4948#define MAX_LAYERS                       2      ///< max number of layers the codec is supposed to handle
    5049#define POC_RESET_FLAG                   1      ///< JCTVC-N0244: POC reset flag for  layer pictures.
     
    156155#define RC_SHVC_HARMONIZATION            1      ///< JCTVC-M0037: rate control for SHVC
    157156
     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.
    158159#else
    159160#define SYNTAX_OUTPUT                    0
     
    165166
    166167#define FIX1071 1 ///< fix for issue #1071
    167 #define VIEW_ID_RELATED_SIGNALING        1 ///< Introduce syntax elements view_id_len_minus1 and view_id_val
    168 #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.
    169168
    170169#define MAX_NUM_PICS_IN_SOP           1024
Note: See TracChangeset for help on using the changeset viewer.