Changeset 210 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncCfg.cpp


Ignore:
Timestamp:
11 Dec 2012, 18:52:43 (12 years ago)
Author:
tech
Message:

Reintegrated /branches/HTM-5.0-dev0 rev. 207.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppEncoder/TAppEncCfg.cpp

    r189 r210  
    111111  if (m_pchBitstreamFile != NULL)
    112112    free (m_pchBitstreamFile) ;
     113#if FLEX_CODING_ORDER_M23723
     114  if (m_pchMVCJointCodingOrder != NULL)
     115  {
     116    free(m_pchMVCJointCodingOrder) ;
     117  }
     118#endif
    113119#if HHI_VSO
    114120  if (  m_pchVSOConfig != NULL)
     
    203209  string cfg_RowHeight;
    204210  string cfg_ScalingListFile;
     211
     212 #if FLEX_CODING_ORDER_M23723
     213  string cfg_JointCodingOrdering;
     214#endif
     215
    205216  po::Options opts;
    206217  opts.addOptions()
     
    246257 
    247258  ("NumberOfViews",         m_iNumberOfViews,    0, "Number of views")
     259#if FLEX_CODING_ORDER_M23723
     260  ("FCO",               m_b3DVFlexOrder,   false, "flexible coding order flag" )
     261  ("FCOCodingOrder",   cfg_JointCodingOrdering,  string(""), "The coding order for joint texture-depth coding")
     262#endif
    248263  /* Unit definition parameters */
    249264  ("MaxCUWidth",          m_uiMaxCUWidth,  64u)
     
    276291  ("FastSearch", m_iFastSearch, 1, "0:Full search  1:Diamond  2:PMVFAST")
    277292  ("SearchRange,-sr",m_iSearchRange, 96, "motion search range")
     293#if DV_V_RESTRICTION_B0037
     294  ("DisparitySearchRangeRestriction",m_bUseDisparitySearchRangeRestriction, false, "restrict disparity search range")
     295  ("VerticalDisparitySearchRange",m_iVerticalDisparitySearchRange, 56, "vertical disparity search range")
     296#endif
    278297  ("BipredSearchRange", m_bipredSearchRange, 4, "motion search range for bipred refinement")
    279298  ("HadamardME", m_bUseHADME, true, "hadamard ME for fractional-pel")
     
    329348  /* Camera Paremetes */
    330349  ("CameraParameterFile,cpf", m_pchCameraParameterFile,    (Char *) 0, "Camera Parameter File Name")
     350#if QC_MVHEVC_B0046
     351  ("BaseViewCameraNumbers" ,  m_aiVId,     std::vector<Int>(1, MAX_VIEW_NUM), "Numbers of base views")
     352#endif
    331353  ("BaseViewCameraNumbers" ,  m_pchBaseViewCameraNumbers,  (Char *) 0, "Numbers of base views")
    332354
     
    526548  m_pchBitstreamFile = cfg_BitstreamFile.empty() ? NULL : strdup(cfg_BitstreamFile.c_str());
    527549  m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str());
    528  
     550#if FLEX_CODING_ORDER_M23723
     551  m_pchMVCJointCodingOrder= cfg_JointCodingOrdering.empty()?NULL:strdup(cfg_JointCodingOrdering.c_str());
     552  // If flexible order is enabled and if depth comes before the texture for a view, disable VSO
     553#if HHI_VSO && DISABLE_FCO_FOR_VSO
     554  Bool depthComesFirst = false;
     555  int iter = 0;
     556  if ( m_b3DVFlexOrder )
     557  {
     558    for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++)
     559    {
     560      iter = 0;
     561      for ( Int ii=1; ii<12; ii+=2 )
     562      {
     563        Int iViewIdxCfg = (Int)(m_pchMVCJointCodingOrder[ii]-'0');
     564        if ( iViewIdxCfg == iViewIdx )
     565        {
     566          iter ++;
     567          if ( m_pchMVCJointCodingOrder[ii-1]=='D' ) // depth comes first for this view
     568          {
     569            if(iter == 1)
     570           {
     571            depthComesFirst = true;
     572            break;
     573           }
     574          }
     575          else
     576          {
     577            assert(m_pchMVCJointCodingOrder[ii-1]=='T');
     578          }
     579        }
     580      }
     581    }
     582  }
     583  if (depthComesFirst)
     584  {
     585    m_bUseVSO = false;
     586  }
     587#endif
     588#endif
    529589  m_pchColumnWidth = cfg_ColumnWidth.empty() ? NULL: strdup(cfg_ColumnWidth.c_str());
    530590  m_pchRowHeight = cfg_RowHeight.empty() ? NULL : strdup(cfg_RowHeight.c_str());
     
    786846}
    787847#else
     848#if !QC_MVHEVC_B0046
    788849  m_cCameraData     .init     ( (UInt)m_iNumberOfViews,
    789850    m_uiInputBitDepth,
     
    797858    LOG2_DISP_PREC_LUT );
    798859#endif
     860#endif
    799861
    800862
    801863  // check validity of input parameters
    802864  xCheckParameter();
     865#if !QC_MVHEVC_B0046
    803866  m_cCameraData.check( false, true );
    804  
     867#endif
    805868  // print-out parameters
    806869  xPrintParameter();
     
    850913  xConfirmPara( m_iFastSearch < 0 || m_iFastSearch > 2,                                     "Fast Search Mode is not supported value (0:Full search  1:Diamond  2:PMVFAST)" );
    851914  xConfirmPara( m_iSearchRange < 0 ,                                                        "Search Range must be more than 0" );
     915#if DV_V_RESTRICTION_B0037
     916  xConfirmPara( m_iVerticalDisparitySearchRange <= 0 ,                                      "Vertical Disparity Search Range must be more than 0" );
     917#endif
    852918  xConfirmPara( m_bipredSearchRange < 0 ,                                                   "Search Range must be more than 0" );
    853919  xConfirmPara( m_iMaxDeltaQP > 7,                                                          "Absolute Delta QP exceeds supported range (0 to 7)" );
     
    15951661  printf("Min PCM size                 : %d\n", 1 << m_uiPCMLog2MinSize);
    15961662  printf("Motion search range          : %d\n", m_iSearchRange );
     1663#if DV_V_RESTRICTION_B0037
     1664  printf("Disp search range restriction: %d\n", m_bUseDisparitySearchRangeRestriction );
     1665  printf("Vertical disp search range   : %d\n", m_iVerticalDisparitySearchRange );
     1666#endif
    15971667  printf("Intra period                 : %d\n", m_iIntraPeriod );
    15981668  printf("Decoding refresh type        : %d\n", m_iDecodingRefreshType );
     
    17451815#if TMVP_DEPTH_SWITCH
    17461816  printf("TMVP:%d ", (m_enableTMVP[1] ? 1 : 0) );
     1817#endif
     1818#if FLEX_CODING_ORDER_M23723
     1819  printf("FCO:%d ",   (m_b3DVFlexOrder ? 1: 0));
     1820
     1821  if(m_b3DVFlexOrder)
     1822  {
     1823    printf("CodingOrder: %s ", m_pchMVCJointCodingOrder);
     1824  }
    17471825#endif
    17481826#if HHI_VSO
Note: See TracChangeset for help on using the changeset viewer.