Ignore:
Timestamp:
3 Dec 2012, 16:57:58 (12 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)]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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());
Note: See TracChangeset for help on using the changeset viewer.