Changeset 200 in 3DVCSoftware for branches/HTM-5.0-Nokia


Ignore:
Timestamp:
3 Dec 2012, 16:57:58 (11 years ago)
Author:
nokia
Message:

Reintegration of Flexible Coding Order to 3DV-HTM v5.1
To enable following params are required:
FCO : 1
FCOCodingOrder : T0D0D1D2T1T2
VSOConfig: [ox0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][ox2 B(cc1) I(s1.25 s1.5 s1.75)]

Location:
branches/HTM-5.0-Nokia
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.0-Nokia/CommonTestConditionsCfgs/baseCfg_3view+depth.cfg

    r197 r200  
    201201DisparitySearchRangeRestriction : 0                                # 0: No disparity restriction 1: Use disparity restriction
    202202VerticalDisparitySearchRange    : 56                               # vertical disparity search range (in luma samples)
     203FCO                       : 0                                      # Flexible coding order flag in 3DV
     204FCOCodingOrder            : T0D0D1D2T1T2                           # Coding order for Flexible coding order in 3DV
    203205
    204206
     
    213215#========== view synthesis optimization (VSO) ==========
    214216VSOConfig                 : [cx0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][cx2 B(cc1) I(s1.25 s1.5 s1.75)] # VSO configuration string
     217#VSOConfig                 : [ox0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][ox2 B(cc1) I(s1.25 s1.5 s1.75)] # VSO configuration string for FCO = 1
    215218WVSO                       : 1                                     # use of WVSO (Depth distortion metric with a weighted depth fidelity term)
    216219VSOWeight                  : 10                                    # weight of VSO ( in SAD case, cf. squared in SSE case )
  • branches/HTM-5.0-Nokia/source/App/TAppDecoder/TAppDecTop.cpp

    r195 r200  
    8888#endif
    8989 
     90#if FLEX_CODING_ORDER
     91  Int iDepthViewIdx = 0;
     92  Int iTextureViewIdx=0;
     93  Bool first_frame=1;
     94  Bool viewid_zero=true;
     95  Int FCO_index=0;  //when the current frame is not first frame,use FCO_index stand for viewDepth.
     96#endif
     97
    9098#if SONY_COLPIC_AVAILABILITY
    9199  m_tDecTop[0]->setViewOrderIdx(0);
     
    102110    pcListPic[i] = NULL;
    103111    newPicture[i] = false;
     112#if FLEX_CODING_ORDER
     113    FCO_Order[i]=NULL;
     114#endif
     115
    104116  }
    105117
     
    161173        depth = getVPSAccess()->getActiveVPS()->getDepthFlag(nalu.m_layerId);
    162174      }
    163       viewDepthId = nalu.m_layerId;   // coding order T0D0T1D1T2D2
     175#if FLEX_CODING_ORDER
     176      if (viewId>0)
     177      {
     178        viewid_zero=false;
     179      }
     180      if (viewid_zero==false&&viewId==0)
     181      {
     182        first_frame=0; //if viewId has been more than zero and now it set to zero again, we can see that it is not the first view
     183      }
     184      if (first_frame)
     185      { // if the current view is first frame, we set the viewDepthId as texture plus depth and get the FCO order
     186        viewDepthId = iDepthViewIdx+iTextureViewIdx;
     187        FCO_viewDepthId=viewDepthId;
     188      }
     189      else
     190      {//if current view is not first frame, we set the viewDepthId depended on the FCO order
     191        viewDepthId=0;
     192        if (depth)
     193        {
     194          for (FCO_index=0;FCO_index<2*MAX_VIEW_NUM;FCO_index++ )
     195          {
     196            if (FCO_Order[FCO_index]=='D')
     197            {
     198              if (viewId==viewDepthId)
     199                break;
     200              else
     201                viewDepthId++;
     202            }
     203          }
     204        }
     205        else
     206        {
     207          for (FCO_index=0;FCO_index<2*MAX_VIEW_NUM;FCO_index++ )
     208          {
     209            if (FCO_Order[FCO_index]=='T')
     210            {
     211              if (viewId==viewDepthId)
     212                break;
     213              else
     214                viewDepthId++;
     215            }
     216          }
     217        }
     218
     219        viewDepthId=FCO_index;
     220
     221      }
     222
     223
     224#else
     225       viewDepthId = nalu.m_layerId;   // coding order T0D0T1D1T2D2
     226#endif
     227   
    164228#else
    165229      Int viewId = nalu.m_viewId;
    166230      Int depth = nalu.m_isDepth ? 1 : 0;
    167       viewDepthId = viewId * 2 + depth;   // coding order T0D0T1D1T2D2
     231#if FLEX_CODING_ORDER
     232      if (viewId>0)
     233      {
     234        viewid_zero=false;
     235      }
     236      if (viewid_zero==false&&viewId==0)
     237      {
     238        first_frame=0;
     239      }
     240      if (first_frame)
     241      {
     242        viewDepthId = iDepthViewIdx+iTextureViewIdx;
     243        FCO_viewDepthId=viewDepthId;
     244      }
     245      else
     246      {
     247        viewDepthId=0;
     248        if (depth)
     249        {
     250          for (FCO_index=0;FCO_index<2*MAX_VIEW_NUM;FCO_index++ )
     251          {
     252            if (FCO_Order[FCO_index]=='D')
     253            {
     254              if (viewId==viewDepthId)
     255                break;
     256              else
     257                viewDepthId++;
     258            }
     259          }
     260        }
     261        else
     262        {
     263          for (FCO_index=0;FCO_index<2*MAX_VIEW_NUM;FCO_index++ )
     264          {
     265            if (FCO_Order[FCO_index]=='T')
     266            {
     267              if (viewId==viewDepthId)
     268                break;
     269              else
     270                viewDepthId++;
     271            }
     272          }
     273        }
     274
     275        viewDepthId=FCO_index;
     276
     277      }
     278#else
     279  viewDepthId = viewId * 2 + depth;   // coding order T0D0T1D1T2D2
     280#endif
     281     
    168282#endif
    169283#endif     
     
    224338        {
    225339          previousPictureDecoded = true;
     340#if FLEX_CODING_ORDER
     341          if (first_frame)
     342          {
     343            if (depth)
     344            {
     345                iDepthViewIdx++;
     346                FCO_Order[viewDepthId]='D';
     347            }
     348            else
     349           {
     350                iTextureViewIdx++;
     351                FCO_Order[viewDepthId]='T';
     352           }
     353          }
     354
     355#endif
    226356        }
    227357      }
     
    527657TDecTop* TAppDecTop::getTDecTop( Int viewId, Bool isDepth )
    528658{
     659#if FLEX_CODING_ORDER
     660  Int viewnumber=0;
     661  Int i=0;
     662  Bool FCO_flag=0;
     663  if (viewId>FCO_viewDepthId)
     664  {
     665    return NULL;
     666  }
     667  else
     668  {
     669    if (isDepth)
     670   {
     671      for ( i=0; i<=FCO_viewDepthId;i++)
     672      {
     673         if (FCO_Order[i]=='D')
     674         {
     675           if (viewnumber==viewId)
     676           {
     677             FCO_flag=1;
     678             break;
     679           }
     680           else
     681             viewnumber++;
     682         }
     683      }
     684    }
     685    else
     686    {
     687      for ( i=0; i<=FCO_viewDepthId;i++)
     688      {
     689        if (FCO_Order[i]=='T')
     690        {
     691          if (viewnumber==viewId)
     692          {
     693            FCO_flag=1;
     694            break;
     695          }
     696          else
     697            viewnumber++;
     698        }
     699      }
     700    }
     701    if (FCO_flag)
     702    {
     703      return m_tDecTop[i];
     704    }
     705    else
     706      return NULL;
     707   
     708  }
     709
     710    // coding order T0D0T1D1T2D2
     711#else
    529712  return m_tDecTop[(isDepth ? 1 : 0) + viewId * 2];  // coding order T0D0T1D1T2D2
     713#endif
     714 
    530715}
    531716
     
    546731  assert( ( viewId >= 0 ) );
    547732
     733#if FLEX_CODING_ORDER
     734if (getTDecTop(viewId,isDepth))
     735{
     736   TComList<TComPic*>* apcListPic = getTDecTop( viewId, isDepth )->getListPic();
     737   TComPic* pcPic = NULL;
     738   for( TComList<TComPic*>::iterator it=apcListPic->begin(); it!=apcListPic->end(); it++ )
     739   {
     740     if( (*it)->getPOC() == poc )
     741     {
     742       pcPic = *it;
     743       break;
     744     }
     745   }
     746   return pcPic;
     747}
     748else
     749  return NULL;
     750#else
     751
    548752  TComList<TComPic*>* apcListPic = getTDecTop( viewId, isDepth )->getListPic();
    549753  TComPic* pcPic = NULL;
     
    557761  }
    558762  return pcPic;
     763#endif
    559764}
    560765//! \}
  • branches/HTM-5.0-Nokia/source/App/TAppDecoder/TAppDecTop.h

    r195 r200  
    7171  Bool                            m_useDepth;
    7272
     73#if FLEX_CODING_ORDER
     74  Int  FCO_viewDepthId;
     75  Char FCO_Order[MAX_VIEW_NUM*2];
     76#endif
     77
    7378  FILE*                           m_pScaleOffsetFile;
    7479  CamParsCollector                m_cCamParsCollector;
  • branches/HTM-5.0-Nokia/source/App/TAppEncoder/TAppEncCfg.cpp

    r197 r200  
    111111  if (m_pchBitstreamFile != NULL)
    112112    free (m_pchBitstreamFile) ;
     113
     114#if FLEX_CODING_ORDER
     115  if (m_pchMVCJointCodingOrder != NULL)
     116  {
     117    free(m_pchMVCJointCodingOrder) ;
     118  }
     119#endif
     120
    113121#if HHI_VSO
    114122  if (  m_pchVSOConfig != NULL)
     
    203211  string cfg_RowHeight;
    204212  string cfg_ScalingListFile;
     213
     214 #if FLEX_CODING_ORDER
     215  string cfg_JointCodingOrdering;
     216#endif
     217
    205218  po::Options opts;
    206219  opts.addOptions()
     
    246259 
    247260  ("NumberOfViews",         m_iNumberOfViews,    0, "Number of views")
     261
     262#if FLEX_CODING_ORDER
     263  ("FCO",               m_b3DVFlexOrder,   false, "flexible coding order flag" )
     264  ("FCOCodingOrder",   cfg_JointCodingOrdering,  string(""), "The coding order for joint texture-depth coding")
     265#endif
     266
    248267  /* Unit definition parameters */
    249268  ("MaxCUWidth",          m_uiMaxCUWidth,  64u)
     
    533552  m_pchBitstreamFile = cfg_BitstreamFile.empty() ? NULL : strdup(cfg_BitstreamFile.c_str());
    534553  m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str());
     554 
     555#if FLEX_CODING_ORDER
     556  m_pchMVCJointCodingOrder= cfg_JointCodingOrdering.empty()?NULL:strdup(cfg_JointCodingOrdering.c_str());
     557  // If flexible order is enabled and if depth comes before the texture for a view, disable VSO
     558#if HHI_VSO && DISABLE_FCO_FOR_VSO
     559  Bool depthComesFirst = false;
     560  int iter = 0;
     561  if ( m_b3DVFlexOrder )
     562  {
     563    for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++)
     564    {
     565      iter = 0;
     566      for ( Int ii=1; ii<12; ii+=2 )
     567      {
     568        Int iViewIdxCfg = (Int)(m_pchMVCJointCodingOrder[ii]-'0');
     569        if ( iViewIdxCfg == iViewIdx )
     570        {
     571          iter ++;
     572          if ( m_pchMVCJointCodingOrder[ii-1]=='D' ) // depth comes first for this view
     573          {
     574            if(iter == 1)
     575           {
     576            depthComesFirst = true;
     577            break;
     578           }
     579          }
     580          else
     581          {
     582            assert(m_pchMVCJointCodingOrder[ii-1]=='T');
     583          }
     584        }
     585      }
     586    }
     587  }
     588  if (depthComesFirst)
     589  {
     590    m_bUseVSO = false;
     591  }
     592#endif
     593#endif
     594
     595
     596
     597
    535598 
    536599  m_pchColumnWidth = cfg_ColumnWidth.empty() ? NULL: strdup(cfg_ColumnWidth.c_str());
  • branches/HTM-5.0-Nokia/source/App/TAppEncoder/TAppEncCfg.h

    r197 r200  
    8888  Int       m_iNumberOfViews;                                 ///< number Views to Encode
    8989  Bool      m_bUsingDepthMaps;
     90 
     91#if FLEX_CODING_ORDER
     92  char*  m_pchMVCJointCodingOrder;      ///<  texture-depth coding order
     93  Bool    m_b3DVFlexOrder;    ///<  flexible coding order flag
     94#endif
     95
    9096  // coding structure
    9197  Int       m_iIntraPeriod;                                   ///< period of I-slice (random access period)
  • branches/HTM-5.0-Nokia/source/App/TAppEncoder/TAppEncTop.cpp

    r197 r200  
    400400    for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++)
    401401    {
     402
     403#if FLEX_CODING_ORDER
     404      // Detect whether depth comes before than texture for this view
     405      Bool isDepthFirst = false;
     406      if ( m_b3DVFlexOrder )
     407      {
     408        for ( Int ii=1; ii<12; ii+=2 )
     409        {
     410          Int iViewIdxCfg = (Int)(m_pchMVCJointCodingOrder[ii]-'0');
     411          if ( iViewIdxCfg == iViewIdx )
     412          {
     413            if ( m_pchMVCJointCodingOrder[ii-1]=='D' ) // depth comes first for this view
     414            {
     415              isDepthFirst = true;
     416            }
     417            else
     418            {
     419              assert(m_pchMVCJointCodingOrder[ii-1]=='T');
     420            }
     421            break;
     422          }
     423        }
     424      }
     425#endif
     426
    402427      m_depthFrameRcvd.push_back(0);
    403428      m_acTEncDepthTopList.push_back(new TEncTop);
     
    682707    m_acTEncDepthTopList[iViewIdx]->setUseDMM                     ( m_bUseDMM );
    683708#endif
     709
     710#if FLEX_CODING_ORDER && HHI_DMM_PRED_TEX
     711    m_acTEncDepthTopList[iViewIdx]->setUseDMM34( (m_b3DVFlexOrder && isDepthFirst) ? false : m_bUseDMM );
     712#endif
     713
    684714#if OL_QTLIMIT_PREDCODING_B0068
    685715    m_acTEncDepthTopList[iViewIdx]->setUseQTLPC                   (m_bUseQTLPC);
    686716#endif
     717
    687718#if HHI_MPI
    688      m_acTEncDepthTopList[iViewIdx]->setUseMVI( m_bUseMVI );
    689 #endif
     719#if FLEX_CODING_ORDER
     720    m_acTEncDepthTopList[iViewIdx]->setUseMVI( (m_b3DVFlexOrder && isDepthFirst) ? false : m_bUseMVI );
     721#else
     722    m_acTEncDepthTopList[iViewIdx]->setUseMVI( m_bUseMVI );
     723#endif
     724#endif
     725
     726
    690727#if RWTH_SDC_DLT_B0036
    691728      m_acTEncDepthTopList[iViewIdx]->setUseDLT                   ( m_bUseDLT );
     
    10031040      }
    10041041#endif
     1042
     1043#if FLEX_CODING_ORDER
     1044      if (m_b3DVFlexOrder)
     1045      {
     1046        Int  iNumDepthEncoded = 0;
     1047        iNumEncoded = 0;
     1048        Int i=0;
     1049        Int iViewIdx=0;
     1050        Int iNumberofDepthViews = m_bUsingDepthMaps?m_iNumberOfViews:0;
     1051        for (Int j=0; j < (m_iNumberOfViews+ iNumberofDepthViews); j++ )
     1052        {
     1053          if (m_pchMVCJointCodingOrder[i]=='T')
     1054          {
     1055
     1056            i++;
     1057            assert(isdigit(m_pchMVCJointCodingOrder[i]));
     1058            iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0');
     1059
     1060            m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId );
     1061            xWriteOutput(bitstreamFile, iNumEncoded, outputAccessUnits, iViewIdx, false);
     1062            outputAccessUnits.clear();
     1063            i++;
     1064          }
     1065          else if ( m_pchMVCJointCodingOrder[i] == 'D')
     1066          {
     1067
     1068            i++;
     1069            if( m_bUsingDepthMaps )
     1070            {
     1071              assert(isdigit(m_pchMVCJointCodingOrder[i]));
     1072              iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0');
     1073#if SAIT_VSO_EST_A0033
     1074              if( m_bUseVSO && iNextPoc < m_iFrameToBeEncoded )
     1075              {
     1076                m_cCameraData.xSetDispCoeff( iNextPoc, iViewIdx );
     1077                m_acTEncDepthTopList[iViewIdx]->setDispCoeff( m_cCameraData.getDispCoeff() );
     1078              }
     1079#endif
     1080              m_acTEncDepthTopList[iViewIdx]->encode( depthEos[iViewIdx], pcDepthPicYuvOrg, *m_picYuvDepthRec[iViewIdx], outputAccessUnits, iNumDepthEncoded, gopId );
     1081              xWriteOutput(bitstreamFile, iNumDepthEncoded, outputAccessUnits, iViewIdx, true);
     1082              outputAccessUnits.clear();
     1083              i++;
     1084            }
     1085          }
     1086        }
     1087      }
     1088      else
     1089      {
     1090
     1091#endif
     1092
     1093//original code
     1094
     1095
     1096
     1097
     1098
     1099
    10051100      for(Int iViewIdx=0; iViewIdx < m_iNumberOfViews; iViewIdx++ )
    10061101      {
     
    10261121        }
    10271122      }
     1123 
     1124#if FLEX_CODING_ORDER
     1125      }
     1126#endif
     1127
    10281128#if HHI_INTERVIEW_SKIP || HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED
    10291129      for( Int iViewIdx = 0; iViewIdx < m_iNumberOfViews; iViewIdx++ )
  • branches/HTM-5.0-Nokia/source/Lib/TLibCommon/TComSlice.cpp

    r195 r200  
    15941594, m_bUseDMM                   (false)
    15951595#endif
     1596
     1597#if FLEX_CODING_ORDER && HHI_DMM_PRED_TEX
     1598, m_bUseDMM34                   (false)
     1599#endif
     1600
    15961601#if OL_QTLIMIT_PREDCODING_B0068
    15971602, m_bUseQTLPC                 (false)
  • branches/HTM-5.0-Nokia/source/Lib/TLibCommon/TComSlice.h

    r195 r200  
    394394#endif
    395395
     396#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     397  Bool  m_bUseDMM34;
     398#endif
     399
    396400#if OL_QTLIMIT_PREDCODING_B0068
    397401  Bool m_bUseQTLPC;
     
    674678#endif
    675679
     680#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     681  Bool getUseDMM34()         { return m_bUseDMM34; }
     682  Void setUseDMM34( Bool b ) { m_bUseDMM34 = b;    }
     683#endif
     684
    676685#if OL_QTLIMIT_PREDCODING_B0068
    677686  Void setUseQTLPC( Bool b ) { m_bUseQTLPC = b;    }
  • branches/HTM-5.0-Nokia/source/Lib/TLibCommon/TypeDef.h

    r198 r200  
    6262
    6363
     64// FCO
     65#define FLEX_CODING_ORDER               1
     66#if FLEX_CODING_ORDER
     67  #define DISABLE_FCO_FOR_VSO             0 // Optional compile settings to disable VSO with FCO.
     68#endif
     69
    6470///// ***** PATCHES *********
    6571#define TMVP_DEPTH_SWITCH                 1   // JCT3V-B0092 additional encoder option only
  • branches/HTM-5.0-Nokia/source/Lib/TLibDecoder/TDecTop.cpp

    r195 r200  
    10021002    assert( m_tAppDecTop != NULL );
    10031003    TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView(  m_viewId, pcSlice->getPOC(), false ) : NULL;
     1004
     1005#if FLEX_CODING_ORDER
     1006    if (pcTexturePic != NULL)
     1007    {
     1008      assert( !m_isDepth || pcTexturePic != NULL );
     1009      pcSlice->setTexturePic( pcTexturePic );
     1010    }
     1011#else
    10041012    assert( !m_isDepth || pcTexturePic != NULL );
    10051013    pcSlice->setTexturePic( pcTexturePic );
     1014#endif
     1015
    10061016
    10071017    std::vector<TComPic*> apcInterViewRefPics = m_tAppDecTop->getInterViewRefPics( m_viewId, pcSlice->getPOC(), m_isDepth, pcSlice->getSPS() );
  • branches/HTM-5.0-Nokia/source/Lib/TLibEncoder/TEncCfg.h

    r197 r200  
    327327#endif
    328328
     329#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     330  Bool m_bUseDMM34;
     331#endif
     332
    329333#if OL_QTLIMIT_PREDCODING_B0068
    330334  Bool     m_bUseQTLPC;
     
    844848#endif
    845849
     850#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     851  Void setUseDMM34( Bool b) { m_bUseDMM34 = b;    }
     852  Bool getUseDMM34()        { return m_bUseDMM34; }
     853#endif
     854
    846855#if OL_QTLIMIT_PREDCODING_B0068
    847856  Void      setUseQTLPC( Bool b ) { m_bUseQTLPC = b;    }
  • branches/HTM-5.0-Nokia/source/Lib/TLibEncoder/TEncGOP.cpp

    r195 r200  
    363363      assert( tAppEncTop != NULL );
    364364
     365
     366#if FLEX_CODING_ORDER
     367      TComPic * pcTexturePic;
     368      if(m_pcEncTop->getIsDepth() == 1)
     369      {
     370        TComPicYuv * recText;
     371        recText = tAppEncTop->getPicYuvFromView(m_pcEncTop->getViewId(), pcSlice->getPOC(), false ,true);
     372        if(recText == NULL)
     373        {
     374           pcSlice->setTexturePic(NULL);
     375        }
     376        else
     377        {
     378           pcTexturePic = m_pcEncTop->getIsDepth() ? tAppEncTop->getPicFromView( m_pcEncTop->getViewId(), pcSlice->getPOC(), false ) : NULL;
     379           pcSlice->setTexturePic( pcTexturePic );
     380        }
     381      }
     382      else
     383    {
     384        pcTexturePic = m_pcEncTop->getIsDepth() ? tAppEncTop->getPicFromView( m_pcEncTop->getViewId(), pcSlice->getPOC(), false ) : NULL;
     385        assert( !m_pcEncTop->getIsDepth() || pcTexturePic != NULL );
     386          pcSlice->setTexturePic( pcTexturePic );
     387      }
     388
     389#else
    365390      TComPic * const pcTexturePic = m_pcEncTop->getIsDepth() ? tAppEncTop->getPicFromView( m_pcEncTop->getViewId(), pcSlice->getPOC(), false ) : NULL;
    366391      assert( !m_pcEncTop->getIsDepth() || pcTexturePic != NULL );
    367392      pcSlice->setTexturePic( pcTexturePic );
    368393
     394#endif
    369395      std::vector<TComPic*> apcInterViewRefPics = tAppEncTop->getInterViewRefPics( m_pcEncTop->getViewId(), pcSlice->getPOC(), m_pcEncTop->getIsDepth(), pcSlice->getSPS() );
    370396      pcSlice->setRefPicListMvc( rcListPic, apcInterViewRefPics );
     
    466492
    467493#if SAIT_VSO_EST_A0033
    468     m_pcRdCost->setVideoRecPicYuv( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), false, true ) );
     494{
     495   Bool flag_rec;
     496   flag_rec =  ((m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), false, true) == NULL) ? false: true);
     497    m_pcRdCost->setVideoRecPicYuv( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), false, flag_rec ) );
    469498    m_pcRdCost->setDepthPicYuv   ( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), true, false ) );
     499}
    470500#endif
    471501#if LGE_WVSO_A0119
  • branches/HTM-5.0-Nokia/source/Lib/TLibEncoder/TEncSbac.cpp

    r195 r200  
    10761076#endif
    10771077#if HHI_DMM_PRED_TEX
     1078
     1079#if FLEX_CODING_ORDER
     1080    if ( !pcCU->getSlice()->getSPS()->getUseDMM34() )
     1081    {
     1082      assert( uiDir != DMM_WEDGE_PREDTEX_D_IDX );
     1083      assert( uiDir != DMM_CONTOUR_PREDTEX_D_IDX );
     1084    }
     1085#endif
     1086
    10781087    if( uiDir == DMM_WEDGE_PREDTEX_D_IDX )     { xCodeWedgePredTexDeltaInfo  ( pcCU, uiAbsPartIdx ); }
    10791088    if( uiDir == DMM_CONTOUR_PREDTEX_D_IDX )   { xCodeContourPredTexDeltaInfo( pcCU, uiAbsPartIdx ); }
  • branches/HTM-5.0-Nokia/source/Lib/TLibEncoder/TEncSearch.cpp

    r197 r200  
    22442244#endif
    22452245#if HHI_DMM_PRED_TEX
     2246     
     2247#if FLEX_CODING_ORDER
     2248      if ( pcCU->getSlice()->getSPS()->getUseDMM34() )
     2249      {
     2250#endif
    22462251      UInt uiTexTabIdx  = 0;
    22472252      Int  iTexDeltaDC1 = 0;
     
    22672272        uiRdModeList[ numModesForFullRD++ ] = DMM_CONTOUR_PREDTEX_D_IDX;
    22682273      }
     2274#if FLEX_CODING_ORDER
     2275      }
     2276#endif
    22692277#endif
    22702278    }
     
    23112319
    23122320#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     2321#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     2322      if( m_pcEncCfg->getIsDepth() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight, pcCU->getSlice()->getSPS()->getUseDMM34() )
     2323#if LGE_EDGE_INTRA
     2324        && uiOrgMode < EDGE_INTRA_IDX
     2325#endif
     2326        )
     2327
     2328#else
     2329
    23132330      if( m_pcEncCfg->getIsDepth() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight )
    2314 #if LGE_EDGE_INTRA_A0070
     2331#if LGE_EDGE_INTRA
    23152332        && uiOrgMode < EDGE_INTRA_IDX
    23162333#endif
    23172334        )
     2335#endif
    23182336      {
    23192337        continue;
     
    64666484
    64676485#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     6486#if ((HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX)&&FLEX_CODING_ORDER)
     6487Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight, Bool bDMMAvailable34 )
     6488#else
    64686489Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight )
     6490#endif
    64696491{
    64706492  if( uiMode < NUM_INTRA_MODE ) return true;
     
    64946516      bDMMAvailable = false;
    64956517    }
     6518
     6519#if FLEX_CODING_ORDER
     6520    if ( !bDMMAvailable34 )
     6521    {
     6522      bDMMAvailable = false;
     6523    }
     6524#endif
     6525
    64966526  }
    64976527#endif
  • branches/HTM-5.0-Nokia/source/Lib/TLibEncoder/TEncSearch.h

    r197 r200  
    333333
    334334#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     335
    335336  Bool predIntraLumaDMMAvailable  ( UInt           uiMode,
    336337                                    UInt           uiWidth,
    337                                     UInt           uiHeight );
     338#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     339                                    UInt         uiHeight,
     340                                    Bool         bDMMAvailable34 );
     341#else
     342                                    UInt         uiHeight );
     343#endif
     344
    338345  Void xGetWedgeDeltaDCsMinDist   ( TComWedgelet*  pcWedgelet,
    339346                                    TComDataCU*    pcCU,
  • branches/HTM-5.0-Nokia/source/Lib/TLibEncoder/TEncTop.cpp

    r197 r200  
    769769  m_cSPS.setUseDMM( m_bUseDMM );
    770770#endif
     771
     772#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     773  m_cSPS.setUseDMM34( m_bUseDMM34 );
     774#endif
     775
    771776#if OL_QTLIMIT_PREDCODING_B0068
    772777  m_cSPS.setUseQTLPC( m_bUseQTLPC );
Note: See TracChangeset for help on using the changeset viewer.