Changeset 126 in 3DVCSoftware for trunk/source/Lib/TLibEncoder


Ignore:
Timestamp:
7 Sep 2012, 16:47:36 (12 years ago)
Author:
tech
Message:

Merged removal of static variables in OL_DEPTHLIMIT_A0044 from HTM-4.0-Orange Rev. 123

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r116 r126  
    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   {
    470464    pcTexture = rpcBestCU->getSlice()->getTexturePic();
    471465    if(pcTexture != NULL) //depth map being encoded
    472466    {
     467    depthMapDetect = true;
    473468#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    474469      bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE);
    475470#endif
     471    if(uiDepth == 0)
     472    {
    476473      pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() );
    477       texPartInfo = pcTextureCU -> readPartInfo();
    478       uiTexPartIndex = 0;
    479       depthMapDetect = true;
     474      pcTexture->setPartInfo(pcTextureCU->readPartInfo());
     475      pcTexture->setTexPartIndex(0);
     476    }
    480477    }
    481478    else
     
    483480      depthMapDetect = false;
    484481    }
    485   }
    486482#endif
    487483  // get Original YUV data from picture
     
    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();
     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.