Changeset 122 in 3DVCSoftware for branches/HTM-4.0-Orange


Ignore:
Timestamp:
7 Sep 2012, 13:06:10 (12 years ago)
Author:
tech
Message:

Removal of static variables in xCompressCU + cleanup

Location:
branches/HTM-4.0-Orange/source/Lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.0-Orange/source/Lib/TLibCommon/TComPic.h

    r100 r122  
    113113  Int**                 m_aaiCodedOffset;
    114114
     115#if OL_DEPTHLIMIT_A0044
     116  UInt*                 m_texPartInfo;
     117  UInt                  m_uiTexPartIndex;
     118#endif
     119
    115120public:
    116121  TComPic();
     
    243248  Void          removeResidualBuffer    ();
    244249#endif
     250
     251#if OL_DEPTHLIMIT_A0044
     252  UInt        accessPartInfo        ( UInt count )   { return m_texPartInfo[m_uiTexPartIndex + count]; };
     253  Void        incrementTexPartIndex (            )   { m_uiTexPartIndex += 2;    };
     254  UInt        getTexPartIndex       ()               { return m_uiTexPartIndex;  };
     255  Void        setTexPartIndex       ( UInt idx   )   { m_uiTexPartIndex = idx; };
     256  Void        setPartInfo           ( UInt* texPart) { m_texPartInfo    = texPart;  };
     257#endif
     258
    245259  Bool          getValidSlice                                  (Int sliceID)  {return m_pbValidSlice[sliceID];}
    246260  Int           getSliceGranularityForNDBFilter                ()             {return m_sliceGranularityForNDBFilter;}
  • branches/HTM-4.0-Orange/source/Lib/TLibEncoder/TEncCu.cpp

    r117 r122  
    455455  TComPic *pcTexture;
    456456  TComDataCU * pcTextureCU;
    457 
    458   static UInt* texPartInfo;
    459   static UInt  uiTexPartIndex;
    460   static Bool  depthMapDetect =  false;
    461 
     457  Bool  depthMapDetect =  false;
    462458  UInt         uiPrevTexPartIndex = 0;
    463459#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    464   static Bool bIntraSliceDetect = false;
     460  Bool bIntraSliceDetect = false;
    465461#endif
    466462  Bool bTry2NxN = false;
    467463  Bool bTryNx2N = false;
    468   if(uiDepth == 0)
    469   {
    470     pcTexture = rpcBestCU->getSlice()->getTexturePic();
    471     if(pcTexture != NULL) //depth map being encoded
    472     {
     464  pcTexture = rpcBestCU->getSlice()->getTexturePic();
     465  if(pcTexture != NULL) //depth map being encoded
     466  {
     467    depthMapDetect = true;
    473468#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    474       bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE);
    475 #endif
     469    bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE);
     470#endif
     471    if(uiDepth == 0)
     472    {
    476473      pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() );
    477       texPartInfo = pcTextureCU -> readPartInfo();
    478       uiTexPartIndex = 0;
    479       depthMapDetect = true;
    480     }
    481     else
    482     {
    483       depthMapDetect = false;
    484     }
     474      pcTexture->setPartInfo(pcTextureCU->readPartInfo());
     475      pcTexture->setTexPartIndex(0); //pcTextureCU->setTexPartIndex(0); //uiTexPartIndex = 0;
     476    }
     477  }
     478  else
     479  {
     480    depthMapDetect = false;
    485481  }
    486482#endif
     
    635631#endif
    636632      {
    637         assert(uiDepth == (UInt)texPartInfo[uiTexPartIndex+1]);
    638         if((UInt)texPartInfo[uiTexPartIndex] == 1) //NxN modes
     633        assert(uiDepth == pcTexture->accessPartInfo(1));
     634        if(pcTexture->accessPartInfo(0) == 1) //NxN modes
    639635        {
    640636          bTrySplit = true;
    641637          bTryNx2N = true;
    642638          bTry2NxN = true;
    643           uiPrevTexPartIndex = uiTexPartIndex;
    644           uiTexPartIndex += 2;
     639          uiPrevTexPartIndex = pcTexture->getTexPartIndex();
     640          pcTexture->incrementTexPartIndex();
    645641        }
    646         else if((UInt)texPartInfo[uiTexPartIndex] == 0) //2Nx2N modes
     642        else if(pcTexture->accessPartInfo(0) == 0) //2Nx2N modes
    647643        {
    648644          UInt uiTexdepth;
     
    651647
    652648          //scan ahead till next depth
    653           uiTexdepth = (UInt)texPartInfo[uiTexPartIndex+1];
    654           uiPrevTexPartIndex = uiTexPartIndex;
    655           uiTexPartIndex+=2;
    656           temp_uiTexPartIndex = uiTexPartIndex; //store in case to rewind
    657 
    658           while(uiTexdepth != (UInt)texPartInfo[uiTexPartIndex+1] && uiTexdepth != 0)
     649          uiTexdepth = pcTexture->accessPartInfo(1);
     650          uiPrevTexPartIndex = pcTexture->getTexPartIndex();
     651          pcTexture->incrementTexPartIndex();
     652          temp_uiTexPartIndex = pcTexture->getTexPartIndex(); //store in case to rewind
     653
     654          while(uiTexdepth != pcTexture->accessPartInfo(1) && uiTexdepth != 0)
    659655          {
    660             if((UInt)texPartInfo[uiTexPartIndex+1] < uiTexdepth)
     656            if(pcTexture->accessPartInfo(1) < uiTexdepth)
    661657            {
    662658              break;
    663659            }
    664             uiTexPartIndex+=2;
    665 
    666             if((UInt)texPartInfo[uiTexPartIndex+1] == OL_END_CU)
     660            pcTexture->incrementTexPartIndex(); //uiTexPartIndex+=2;
     661
     662            if(pcTexture->accessPartInfo(1) == OL_END_CU)
    667663            {
    668               uiTexPartIndex = temp_uiTexPartIndex;
     664              pcTexture->setTexPartIndex(temp_uiTexPartIndex);
    669665              uiTexdepth++;
    670666              if(uiTexdepth >= g_uiMaxCUDepth)
     
    675671          }
    676672        }
    677         else if((UInt)texPartInfo[uiTexPartIndex] == OL_END_CU)
     673        else if(pcTexture->accessPartInfo(0) == OL_END_CU)
    678674        {
    679675          bTrySplit = false;
     
    681677          bTry2NxN = false;
    682678        }
    683         else if((UInt)texPartInfo[uiTexPartIndex] == 2) //2NxN case
     679        else if(pcTexture->accessPartInfo(0) == 2) //2NxN case
    684680        {
    685681          bTrySplit = false;
    686682          bTryNx2N = false;
    687683          bTry2NxN = true;
    688           uiPrevTexPartIndex = uiTexPartIndex;
    689           uiTexPartIndex += 2;
     684          uiPrevTexPartIndex = pcTexture->getTexPartIndex();
     685          pcTexture->incrementTexPartIndex(); ;
    690686        }
    691         else if((UInt)texPartInfo[uiTexPartIndex] == 3) //Nx2N case
     687        else if(pcTexture->accessPartInfo(0) == 3) //Nx2N case
    692688        {
    693689          bTrySplit = false;
    694690          bTryNx2N = true;
    695691          bTry2NxN = false;
    696           uiPrevTexPartIndex = uiTexPartIndex;
    697           uiTexPartIndex += 2;
     692          uiPrevTexPartIndex = pcTexture->getTexPartIndex();
     693          pcTexture->incrementTexPartIndex(); ;
    698694        }
    699695      }
     
    861857#endif
    862858                {
    863                   assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    864859                  if (bTrySplit)
    865860                  {
     
    902897#endif
    903898            {
    904               assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    905899              if (bTryNx2N)
    906900              {
     
    953947#endif
    954948            {
    955               assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    956949              if (bTry2NxN)
    957950              {
     
    10231016#endif
    10241017              {
    1025                 assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    10261018                if (bTry2NxN)
    10271019                {
     
    11091101#endif
    11101102              {
    1111                 assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    11121103                if (bTry2NxN)
    11131104                {
     
    11981189#endif
    11991190              {
    1200                 assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    12011191                if (bTryNx2N)
    12021192                {
     
    12761266#endif
    12771267              {
    1278                 assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    12791268                if (bTryNx2N)
    12801269                {
     
    14231412#endif
    14241413            {
    1425               assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
    14261414              if (bTrySplit)
    14271415              {
Note: See TracChangeset for help on using the changeset viewer.