Changeset 139 in 3DVCSoftware for branches/HTM-4.0-Nokia/source/Lib


Ignore:
Timestamp:
24 Sep 2012, 14:08:01 (12 years ago)
Author:
nokia
Message:

3DV-HTM v4.0: FCO

Location:
branches/HTM-4.0-Nokia/source/Lib
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.0-Nokia/source/Lib/TLibCommon/TComSlice.cpp

    r101 r139  
    14411441, m_bUseDMM                   (false)
    14421442#endif
     1443
     1444#if FLEX_CODING_ORDER && HHI_DMM_PRED_TEX
     1445, m_bUseDMM34                   (false)
     1446#endif
     1447
    14431448{
    14441449  // AMVP parameter
  • branches/HTM-4.0-Nokia/source/Lib/TLibCommon/TComSlice.h

    r101 r139  
    354354#endif
    355355
     356#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     357  Bool  m_bUseDMM34;
     358#endif
     359
    356360#if DEPTH_MAP_GENERATION
    357361  UInt  m_uiPredDepthMapGeneration;
     
    382386  Void setVPSId       (Int i)    { m_VPSId = i;             }
    383387#endif
    384   Int  getSPSId       ()         { return m_SPSId;          }
     388  Int  getSPSId       ()         
     389  { return m_SPSId;          }
    385390  Void setSPSId       (Int i)    { m_SPSId = i;             }
    386391  Int  getProfileIdc  ()         { return m_ProfileIdc;     }
     
    619624#endif
    620625
     626#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     627  Bool getUseDMM34()         { return m_bUseDMM34; }
     628  Void setUseDMM34( Bool b ) { m_bUseDMM34 = b;    }
     629#endif
     630
    621631  Void initMultiviewSPS      ( UInt uiViewId, Int iViewOrderIdx = 0, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );
    622632  Void initMultiviewSPSDepth ( UInt uiViewId, Int iViewOrderIdx );
  • branches/HTM-4.0-Nokia/source/Lib/TLibCommon/TypeDef.h

    r105 r139  
    4646#define FIX_DECODING_WO_WRITING           1
    4747#define FIX_INIT_ROM                      1
     48
    4849#define FIX_VIRT_DESTRUCTOR               1
     50
     51
     52
     53
     54#define FLEX_CODING_ORDER               1
     55#if FLEX_CODING_ORDER
     56  #define DISABLE_FCO_FOR_VSO             1
     57#else
     58  #define DISABLE_FCO_FOR_VSO             0
     59#endif
     60
    4961
    5062
  • branches/HTM-4.0-Nokia/source/Lib/TLibDecoder/TDecTop.cpp

    r77 r139  
    614614
    615615#if SKIPFRAME_BUGFIX
    616 Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay )
    617 #else
    618 Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int iSkipFrame, Int iPOCLastDisplay )
     616Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay
     617)
     618#else
     619Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int iSkipFrame, Int iPOCLastDisplay
     620                           )
    619621#endif
    620622{
     
    969971    assert( m_tAppDecTop != NULL );
    970972    TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView(  m_viewId, pcSlice->getPOC(), false ) : NULL;
     973
     974#if FLEX_CODING_ORDER
     975    if (pcTexturePic != NULL)
     976    {
     977      assert( !m_isDepth || pcTexturePic != NULL );
     978      pcSlice->setTexturePic( pcTexturePic );
     979    }
     980#else
    971981    assert( !m_isDepth || pcTexturePic != NULL );
    972982    pcSlice->setTexturePic( pcTexturePic );
     983#endif
     984   
     985
     986//     //original code
     987//     assert( !m_isDepth || pcTexturePic != NULL );
     988//     pcSlice->setTexturePic( pcTexturePic );
     989
     990
    973991
    974992    std::vector<TComPic*> apcInterViewRefPics = m_tAppDecTop->getInterViewRefPics( m_viewId, pcSlice->getPOC(), m_isDepth, pcSlice->getSPS() );
     
    10821100}
    10831101
     1102
     1103
     1104
     1105
    10841106#if VIDYO_VPS_INTEGRATION
    10851107Void TDecTop::xDecodeVPS()
     
    11471169}
    11481170
    1149 Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay)
     1171Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay
     1172
     1173 )
    11501174{
    11511175  // Initialize entropy decoder
     
    11841208    case NAL_UNIT_CODED_SLICE_CDR:
    11851209#endif
    1186       return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay);
     1210      return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay
     1211        );
    11871212      break;
    11881213    default:
  • branches/HTM-4.0-Nokia/source/Lib/TLibDecoder/TDecTop.h

    r100 r139  
    111111  TComList<TComPic*>      m_cListPic;         //  Dynamic buffer
    112112  ParameterSetManagerDecoder m_parameterSetManagerDecoder;  // storage for parameter sets
     113
     114
    113115  TComRPSList             m_RPSList;
    114116  TComSlice*              m_apcSlicePilot;
    115  
     117
    116118  SEImessages *m_SEIs; ///< "all" SEI messages.  If not NULL, we own the object.
    117119
     
    165167 
    166168  Void  init( TAppDecTop* pcTAppDecTop, Bool bFirstInstance );
    167   Bool  decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay);
     169  Bool  decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay
     170  );
    168171 
    169172  Void  deletePicBuffer();
     
    204207  Void      xActivateParameterSets();
    205208#if SKIPFRAME_BUGFIX
    206   Bool      xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay);
     209  Bool      xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay
     210    );
    207211#else
    208   Bool      xDecodeSlice(InputNALUnit &nalu, Int iSkipFrame, Int iPOCLastDisplay);
     212  Bool      xDecodeSlice(InputNALUnit &nalu, Int iSkipFrame, Int iPOCLastDisplay,
     213    );
    209214#endif
    210215#if VIDYO_VPS_INTEGRATION
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncCfg.h

    r100 r139  
    312312#endif
    313313
     314#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     315  Bool m_bUseDMM34;
     316#endif
     317
    314318  Int      m_iViewOrderIdx;
    315319
     
    799803#endif
    800804
     805#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     806  Void setUseDMM34( Bool b) { m_bUseDMM34 = b;    }
     807  Bool getUseDMM34()        { return m_bUseDMM34; }
     808#endif
     809
    801810  Void      setViewOrderIdx       ( Int   i )      { m_iViewOrderIdx          = i; }
    802811  Void      setCamParPrecision              ( UInt  u )      { m_uiCamParPrecision      = u; }
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncGOP.cpp

    r102 r139  
    167167  TEncSbac* pcSbacCoders = NULL;
    168168  TComOutputBitstream* pcSubstreamsOut = NULL;
     169  int is_Depth;
    169170
    170171  {
     
    255256      pcSlice->setViewId( m_pcEncTop->getViewId() );
    256257      pcSlice->setIsDepth( m_pcEncTop->getIsDepth() );
    257 
     258      is_Depth = m_pcEncTop->getIsDepth();
    258259      m_pcEncTop->getSPS()->setDisInter4x4(m_pcEncTop->getDisInter4x4());
    259260      pcSlice->setScalingList ( m_pcEncTop->getScalingList()  );
     
    461462
    462463#if SAIT_VSO_EST_A0033
    463     m_pcRdCost->setVideoRecPicYuv( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), false, true ) );
     464   
     465{
     466Bool flag_rec;
     467
     468    flag_rec =  ((m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), false, true) == NULL) ? false: true);
     469    m_pcRdCost->setVideoRecPicYuv( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), false, flag_rec ) );
    464470    m_pcRdCost->setDepthPicYuv   ( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), true, false ) );
    465 #endif
    466 
    467 
     471}
     472#endif
    468473  }
    469474#endif
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncSbac.cpp

    r101 r139  
    964964#endif
    965965#if HHI_DMM_PRED_TEX
     966
     967#if FLEX_CODING_ORDER
     968    if ( !pcCU->getSlice()->getSPS()->getUseDMM34() )
     969    {
     970      assert( uiDir != DMM_WEDGE_PREDTEX_D_IDX );
     971      assert( uiDir != DMM_CONTOUR_PREDTEX_D_IDX );
     972    }
     973#endif
     974
    966975    if( uiDir == DMM_WEDGE_PREDTEX_D_IDX )     { xCodeWedgePredTexDeltaInfo  ( pcCU, uiAbsPartIdx ); }
    967976    if( uiDir == DMM_CONTOUR_PREDTEX_D_IDX )   { xCodeContourPredTexDeltaInfo( pcCU, uiAbsPartIdx ); }
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncSearch.cpp

    r100 r139  
    20252025#endif
    20262026#if HHI_DMM_PRED_TEX
     2027
     2028#if FLEX_CODING_ORDER
     2029      if ( pcCU->getSlice()->getSPS()->getUseDMM34() )
     2030      {
     2031#endif
    20272032      UInt uiTexTabIdx  = 0;
    20282033      Int  iTexDeltaDC1 = 0;
     
    20482053        uiRdModeList[ numModesForFullRD++ ] = DMM_CONTOUR_PREDTEX_D_IDX;
    20492054      }
     2055#if FLEX_CODING_ORDER
     2056      }
     2057#endif
    20502058#endif
    20512059    }
     
    20832091
    20842092#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     2093#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     2094      if( m_pcEncCfg->getIsDepth() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight, pcCU->getSlice()->getSPS()->getUseDMM34() )
     2095#if LGE_EDGE_INTRA
     2096        && uiOrgMode < EDGE_INTRA_IDX
     2097#endif
     2098        )
     2099
     2100#else
     2101
    20852102      if( m_pcEncCfg->getIsDepth() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight )
    20862103#if LGE_EDGE_INTRA
     
    20882105#endif
    20892106        )
     2107#endif
    20902108      {
    20912109        continue;
     
    60146032}
    60156033
    6016 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     6034#if ((HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX)&&FLEX_CODING_ORDER)
     6035Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight, Bool bDMMAvailable34 )
     6036#else
    60176037Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight )
     6038#endif
    60186039{
    60196040  if( uiMode < NUM_INTRA_MODE ) return true;
     
    60236044#if HHI_DMM_WEDGE_INTRA
    60246045  if( uiMode == DMM_WEDGE_FULL_IDX        ||
    6025       uiMode == DMM_WEDGE_FULL_D_IDX      ||
    6026       uiMode == DMM_WEDGE_PREDDIR_IDX     ||
    6027       uiMode == DMM_WEDGE_PREDDIR_D_IDX )
     6046    uiMode == DMM_WEDGE_FULL_D_IDX      ||
     6047    uiMode == DMM_WEDGE_PREDDIR_IDX     ||
     6048    uiMode == DMM_WEDGE_PREDDIR_D_IDX )
    60286049  {
    60296050    if( (uiWidth != uiHeight) || (uiWidth < DMM_WEDGEMODEL_MIN_SIZE) || (uiWidth > DMM_WEDGEMODEL_MAX_SIZE) || ( ( uiMode == DMM_WEDGE_PREDDIR_IDX || uiMode == DMM_WEDGE_PREDDIR_D_IDX ) && uiWidth == 4 ) )
     
    60356056#if HHI_DMM_PRED_TEX
    60366057  if( uiMode == DMM_WEDGE_PREDTEX_IDX     ||
    6037       uiMode == DMM_WEDGE_PREDTEX_D_IDX   ||
    6038       uiMode == DMM_CONTOUR_PREDTEX_IDX   ||
    6039       uiMode == DMM_CONTOUR_PREDTEX_D_IDX )
     6058    uiMode == DMM_WEDGE_PREDTEX_D_IDX   ||
     6059    uiMode == DMM_CONTOUR_PREDTEX_IDX   ||
     6060    uiMode == DMM_CONTOUR_PREDTEX_D_IDX )
    60406061  {
    60416062    if( (uiWidth != uiHeight) || (uiWidth < DMM_WEDGEMODEL_MIN_SIZE) || (uiWidth > DMM_WEDGEMODEL_MAX_SIZE) || ( ( uiMode == DMM_CONTOUR_PREDTEX_IDX || uiMode == DMM_CONTOUR_PREDTEX_D_IDX ) && uiWidth == 4 ) )
     
    60436064      bDMMAvailable = false;
    60446065    }
     6066
     6067#if FLEX_CODING_ORDER
     6068    if ( !bDMMAvailable34 )
     6069    {
     6070      bDMMAvailable = false;
     6071    }
     6072#endif
     6073
    60456074  }
    60466075#endif
     
    61486177  xDeltaDCQuantScaleDown( pcCU, riDeltaDC2 );
    61496178}
    6150 #endif
    6151 #if HHI_DMM_WEDGE_INTRA
     6179//#endif
     6180#if HHI_DMM_WEDGE_INTRA 
    61526181Void TEncSearch::findWedgeFullMinDist( TComDataCU*  pcCU,
    61536182                                       UInt         uiAbsPtIdx,
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncSearch.h

    r100 r139  
    315315  Bool predIntraLumaDMMAvailable  ( UInt           uiMode,
    316316                                    UInt           uiWidth,
    317                                     UInt           uiHeight );
     317#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     318                                    UInt         uiHeight,
     319                                    Bool         bDMMAvailable34 );
     320#else
     321                                    UInt         uiHeight );
     322#endif
     323
    318324  Void xGetWedgeDeltaDCsMinDist   ( TComWedgelet*  pcWedgelet,
    319325                                    TComDataCU*    pcCU,
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncSlice.cpp

    r102 r139  
    729729 {
    730730
    731    Int frameWidth = m_pcCfg->getSourceWidth();
     731 
     732#if 0
     733  Int frameWidth = m_pcCfg->getSourceWidth();
    732734   Pel* pVideoRec = m_pcRdCost->getVideoRecPicYuv()->getLumaAddr();
    733735   Int iVideoRecStride = m_pcRdCost->getVideoRecPicYuv()->getStride();
     
    746748     pDepthOrg += iDepthOrgStride;
    747749   }
     750#endif
    748751 }
    749752#endif
  • branches/HTM-4.0-Nokia/source/Lib/TLibEncoder/TEncTop.cpp

    r105 r139  
    768768  m_cSPS.setUseDMM( m_bUseDMM );
    769769#endif
     770
     771#if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER
     772  m_cSPS.setUseDMM34( m_bUseDMM34 );
     773#endif
     774
     775
    770776#if HHI_MPI
    771777  m_cSPS.setUseMVI( m_bUseMVI );
Note: See TracChangeset for help on using the changeset viewer.