Ignore:
Timestamp:
5 Feb 2012, 22:00:22 (13 years ago)
Author:
poznan-univ
Message:

Poznan disocclusion coding - CU Skip

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/0.2-poznan-univ/source/App/TAppDecoder/TAppDecTop.cpp

    r5 r11  
    163163    if( eNalUnitType == NAL_UNIT_SPS )
    164164    {
     165#if POZNAN_SYNTH
     166      if(cComSPS.getViewId()==0 && !cComSPS.isDepth()) // it should be called at first view at the begining of the stream
     167        initRenderer(cComSPS);
     168#endif
    165169      if( cComSPS.isDepth() && (m_bUsingDepth==false) )  // expected not using depth, but bitstream are using depth
    166170      {                                                     // know from sps
     
    539543  return pcRefPic;
    540544}
     545
     546#if POZNAN_SYNTH
     547Void TAppDecTop::initRenderer(TComSPS &cComSPS)
     548{
     549  m_cAvailabilityRenderer.init(cComSPS.getWidth(), cComSPS.getHeight(),true,0,LOG2_DISP_PREC_LUT,true, 0,0,0,0,0,6,4,1,0,6 );  //GT: simplest configuration
     550}
     551//*
     552Void TAppDecTop::storeSynthPicsInBuffer(Int iCoddedViewIdx,Int iCoddedViewOrderIdx, Int iCurPoc, Bool bDepth)
     553{
     554  Int  iLeftViewIdx  = -1;
     555  Int  iRightViewIdx = -1;
     556  Int  iNearestViewIdx = -1;
     557  Bool bIsBaseView;
     558  Bool bRenderFromLeft;
     559
     560  Int iRelDistToLeft = 128;
     561  if(iCoddedViewIdx==0) //First on View Coded List
     562  {
     563    TComPic* pcPic = getPicFromView( iCoddedViewIdx, iCurPoc, false );
     564    return;
     565  }
     566  iNearestViewIdx = 0;
     567  bRenderFromLeft = iCoddedViewOrderIdx>0?true:false;
     568  //m_cCamParsCollector.getNearestBaseView(iCoddedViewIdx, iNearestViewIdx, iRelDistToLeft, bRenderFromLeft);
     569
     570  m_cAvailabilityRenderer.setShiftLUTs(
     571    m_cCamParsCollector.getBaseViewShiftLUTD()[iNearestViewIdx][iCoddedViewIdx],
     572    m_cCamParsCollector.getBaseViewShiftLUTI()[iNearestViewIdx][iCoddedViewIdx],
     573    m_cCamParsCollector.getBaseViewShiftLUTI()[iNearestViewIdx][iCoddedViewIdx],
     574    m_cCamParsCollector.getBaseViewShiftLUTD()[iNearestViewIdx][iCoddedViewIdx],//right
     575    m_cCamParsCollector.getBaseViewShiftLUTI()[iNearestViewIdx][iCoddedViewIdx],
     576    m_cCamParsCollector.getBaseViewShiftLUTI()[iNearestViewIdx][iCoddedViewIdx],
     577    iRelDistToLeft
     578  );
     579
     580  TComPic* pcPic = getPicFromView( iCoddedViewIdx, iCurPoc, bDepth );
     581
     582  TComPicYuv* pcPicYuvSynthView = pcPic->getPicYuvSynth();
     583  TComPicYuv* pcPicYuvAvailView = pcPic->getPicYuvAvail();
     584  if(!pcPicYuvSynthView)
     585  {
     586    pcPic->addSynthesisBuffer();
     587    pcPicYuvSynthView = pcPic->getPicYuvSynth();
     588  }
     589  if(!pcPicYuvAvailView)
     590  {
     591    pcPic->addAvailabilityBuffer();
     592    pcPicYuvAvailView = pcPic->getPicYuvAvail();
     593  }
     594
     595  //m_cAvailabilityRenderer.extrapolateAvailabilityView( xGetPicFromView( iNearestViewIdx, iCurPoc, false )->getPicYuvRec(), xGetPicFromView( iNearestViewIdx, iCurPoc, true )->getPicYuvRec(), pcPicYuvERView, pcPicYuvAvailView, bRenderFromLeft );
     596  m_cAvailabilityRenderer.extrapolateAvailabilityView( getPicFromView( iNearestViewIdx, iCurPoc, false )->getPicYuvRec(), getPicFromView( iNearestViewIdx, iCurPoc, true )->getPicYuvRec(), pcPicYuvSynthView, pcPicYuvAvailView, bRenderFromLeft );
     597
     598  pcPicYuvAvailView->setBorderExtension( false );//Needed??
     599  pcPicYuvAvailView->extendPicBorder();//Needed??
     600
     601#if POZNAN_OUTPUT_AVAILABLE_MAP
     602  {
     603  Char acFilenameBase[1024];
     604  ::sprintf( acFilenameBase,  "Available_%s_%s_V%d.yuv", (bDepth ? "Depth":"Tex"),( true ? "Dec" : "Enc" ), iCoddedViewIdx);
     605  pcPicYuvAvailView->dump(acFilenameBase, iCurPoc!=0);
     606  }
     607#endif
     608#if POZNAN_OUTPUT_SYNTH
     609  {
     610  Char acFilenameBase[1024];
     611  ::sprintf( acFilenameBase,  "Synth_%s_%s_V%d.yuv", (bDepth ? "Depth":"Tex"),( true ? "Dec" : "Enc" ), iCoddedViewIdx );
     612  pcPicYuvSynthView->dump(acFilenameBase, iCurPoc!=0);
     613  }
     614#endif
     615 
     616}
     617#endif
Note: See TracChangeset for help on using the changeset viewer.