Ignore:
Timestamp:
16 Jun 2015, 04:13:09 (9 years ago)
Author:
mediatek-htm
Message:

The reactivation of depth intra skip mode (DIS), the MACRO is "NH_3D_DIS".

by Yi-Wen Chen (yiwen.chen@…)

Location:
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1247 r1258  
    25502550  assert(0);
    25512551}
    2552 #if H_3D
     2552#if NH_3D_DIS
    25532553Void TEncCavlc::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx )
    25542554{
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCavlc.h

    r1227 r1258  
    121121  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    122122  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    123 #if H_3D
     123#if NH_3D_DIS
    124124  Void codeDIS           ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    125125#endif
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCu.cpp

    r1227 r1258  
    739739    }
    740740#endif
    741 #if H_3D
     741#if NH_3D_DIS
    742742    rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP  );
    743743    if( rpcBestCU->getSlice()->getDepthIntraSkipFlag() )
     
    15831583  }
    15841584
    1585 #if H_3D
     1585#if NH_3D_DIS
    15861586  m_pcEntropyCoder->encodeDIS( pcCU, uiAbsPartIdx );
    15871587  if(!pcCU->getDISFlag(uiAbsPartIdx))
     
    16281628  setCodeChromaQpAdjFlag( codeChromaQpAdj );
    16291629  setdQPFlag( bCodeDQP );
    1630 #if H_3D
     1630#if NH_3D_DIS
    16311631  }
    16321632#endif
     
    20212021            mergeCandBuffer[uiMergeCand] = 1;
    20222022          }
    2023 #if H_3D
     2023#if NH_3D_DIS
    20242024          rpcTempCU->setDISFlagSubParts( false, 0, uhDepth );
    20252025#endif
     
    20632063              }
    20642064              rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2065 #if H_3D
     2065#if NH_3D_DIS
    20662066              rpcTempCU->setDISFlagSubParts( false, 0, uhDepth );
    20672067#endif
     
    22142214      }
    22152215#endif
    2216 #if H_3D
     2216#if NH_3D_DIS
    22172217      rpcTempCU->setDISFlagSubParts( false, 0, uhDepth );
    22182218#endif
     
    23312331          }
    23322332          rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2333 #if H_3D
     2333#if NH_3D_DIS
    23342334          rpcTempCU->setDISFlagSubParts( false, 0, uhDepth );
    23352335#endif
     
    24402440    pMask   += 2*uiMaskStride;
    24412441  }
    2442 }
    2443 
    2444 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )
    2445 {
    2446   UInt uiDepth = rpcTempCU->getDepth( 0 );
    2447   if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N))
    2448   {
    2449     return;
    2450   }
    2451 
    2452 #if NH_3D_VSO // M5
    2453   if( m_pcRdCost->getUseRenModel() )
    2454   {
    2455     UInt  uiWidth     = m_ppcOrigYuv[uiDepth]->getWidth   ( COMPONENT_Y );
    2456     UInt  uiHeight    = m_ppcOrigYuv[uiDepth]->getHeight  ( COMPONENT_Y );
    2457     Pel*  piSrc       = m_ppcOrigYuv[uiDepth]->getAddr    ( COMPONENT_Y );
    2458     UInt  uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride  ( COMPONENT_Y );
    2459     m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
    2460   }
    2461 #endif
    2462 
    2463   rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2464   rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );
    2465   rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth );
    2466   rpcTempCU->setCUTransquantBypassSubParts( rpcTempCU->getCUTransquantBypass(0), 0, uiDepth );
    2467 
    2468   rpcTempCU->setTrIdxSubParts(0, 0, uiDepth);
    2469   rpcTempCU->setCbfSubParts(0, 1, 1, 0, uiDepth);
    2470   rpcTempCU->setDISFlagSubParts(true, 0, uiDepth);
    2471   rpcTempCU->setLumaIntraDirSubParts (DC_IDX, 0, uiDepth);
    2472 #if NH_3D_SDC_INTRA
    2473   rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth);
    2474 #endif
    2475 
    2476   UInt uiPreCalcDistC;
    2477   m_pcPredSearch  ->estIntraPredDIS      ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, false );
    2478 
    2479 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
    2480   Int oldTraceCopyBack = g_traceCopyBack;
    2481   g_traceCopyBack = false; 
    2482 #endif
    2483   m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() );
    2484   #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 
    2485     g_traceCopyBack = oldTraceCopyBack;
    2486   #endif
    2487 
    2488 
    2489   m_pcEntropyCoder->resetBits();
    2490   if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())
    2491   {
    2492     m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0,          true );
    2493   }
    2494   m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
    2495   m_pcEntropyCoder->encodeDIS( rpcTempCU, 0,          true );
    2496 
    2497 
    2498   m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]);
    2499 
    2500   rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits();
    2501   rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded();
    2502 
    2503 
    2504 #if NH_3D_VSO // M6
    2505   if( m_pcRdCost->getUseLambdaScaleVSO())
    2506   {
    2507     rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCostVSO( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 
    2508   }
    2509   else
    2510 #endif
    2511     rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
    2512 
    2513 
    2514   xCheckDQP( rpcTempCU );
    2515   xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth);
    25162442}
    25172443
     
    26512577}
    26522578#endif
    2653 
     2579#if NH_3D_DIS
     2580Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )
     2581{
     2582  UInt uiDepth = rpcTempCU->getDepth( 0 );
     2583  if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N))
     2584  {
     2585    return;
     2586  }
     2587
     2588#if NH_3D_VSO // M5
     2589  if( m_pcRdCost->getUseRenModel() )
     2590  {
     2591    UInt  uiWidth     = m_ppcOrigYuv[uiDepth]->getWidth   ( COMPONENT_Y );
     2592    UInt  uiHeight    = m_ppcOrigYuv[uiDepth]->getHeight  ( COMPONENT_Y );
     2593    Pel*  piSrc       = m_ppcOrigYuv[uiDepth]->getAddr    ( COMPONENT_Y );
     2594    UInt  uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride  ( COMPONENT_Y );
     2595    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2596  }
     2597#endif
     2598
     2599  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
     2600  rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );
     2601  rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth );
     2602  rpcTempCU->setCUTransquantBypassSubParts( rpcTempCU->getCUTransquantBypass(0), 0, uiDepth );
     2603
     2604  rpcTempCU->setTrIdxSubParts(0, 0, uiDepth);
     2605  rpcTempCU->setCbfSubParts(0, COMPONENT_Y, 0, uiDepth);
     2606  rpcTempCU->setDISFlagSubParts(true, 0, uiDepth);
     2607  rpcTempCU->setIntraDirSubParts(CHANNEL_TYPE_LUMA, DC_IDX, 0, uiDepth);
     2608#if NH_3D_SDC_INTRA
     2609  rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth);
     2610#endif
     2611
     2612  UInt uiPreCalcDistC;
     2613  m_pcPredSearch  ->estIntraPredDIS      ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, false );
     2614
     2615#if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
     2616  Int oldTraceCopyBack = g_traceCopyBack;
     2617  g_traceCopyBack = false; 
     2618#endif
     2619  m_ppcRecoYuvTemp[uiDepth]->copyToPicComponent(COMPONENT_Y, rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getCtuRsAddr(), rpcTempCU->getZorderIdxInCtu() );
     2620#if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 
     2621  g_traceCopyBack = oldTraceCopyBack;
     2622#endif
     2623
     2624  m_pcEntropyCoder->resetBits();
     2625  if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())
     2626  {
     2627    m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0,          true );
     2628  }
     2629  m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
     2630  m_pcEntropyCoder->encodeDIS( rpcTempCU, 0,          true );
     2631
     2632  m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]);
     2633
     2634  rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits();
     2635  rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded();
     2636
     2637#if NH_3D_VSO // M6
     2638  if( m_pcRdCost->getUseLambdaScaleVSO())
     2639  {
     2640    rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCostVSO( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 
     2641  }
     2642  else
     2643#endif
     2644  rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
     2645
     2646  xCheckDQP( rpcTempCU );
     2647  xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth);
     2648}
     2649#endif
    26542650Void TEncCu::xCheckRDCostIntra( TComDataCU *&rpcBestCU,
    26552651                                TComDataCU *&rpcTempCU,
     
    26772673
    26782674  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2679 #if H_3D
     2675#if NH_3D_DIS
    26802676  rpcTempCU->setDISFlagSubParts( false, 0, uiDepth );
    26812677#endif
     
    27152711    m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0,          true );
    27162712  }
    2717 #if H_3D
     2713#if NH_3D_DIS
    27182714  m_pcEntropyCoder->encodeDIS( rpcTempCU, 0,          true );
    27192715  if(!rpcTempCU->getDISFlag(0))
     
    27352731  setCodeChromaQpAdjFlag( codeChromaQpAdjFlag );
    27362732  setdQPFlag( bCodeDQP );
    2737 #if H_3D
     2733#if NH_3D_DIS
    27382734  }
    27392735#endif
     
    27822778
    27832779  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2784 #if H_3D
     2780#if NH_3D_DIS
    27852781  rpcTempCU->setDISFlagSubParts( false, 0, uiDepth );
    27862782#endif
     
    28042800
    28052801  m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
    2806 #if H_3D
     2802#if NH_3D_DIS
    28072803  m_pcEntropyCoder->encodeDIS( rpcTempCU, 0,          true );
    28082804#endif
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCu.h

    r1209 r1258  
    159159  Void  xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false );
    160160#endif
    161 #if H_3D
     161#if NH_3D_DIS
    162162  Void  xCheckRDCostDIS   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
    163163#endif
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1227 r1258  
    116116  m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx );
    117117}
    118 #if H_3D
     118#if NH_3D_DIS
    119119Void TEncEntropy::encodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    120120{
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncEntropy.h

    r1227 r1258  
    7979  virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8080  virtual Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    81 #if H_3D
     81#if NH_3D_DIS
    8282  virtual Void codeDIS          ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8383#endif
     
    165165  Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    166166  Void encodeSkipFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    167 #if H_3D
     167#if NH_3D_DIS
    168168  Void encodeDIS               ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false );
    169169#endif
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSbac.cpp

    r1227 r1258  
    6262, m_cCUSplitFlagSCModel                ( 1,             1,                      NUM_SPLIT_FLAG_CTX                   , m_contextModels + m_numContextModels, m_numContextModels)
    6363, m_cCUSkipFlagSCModel                 ( 1,             1,                      NUM_SKIP_FLAG_CTX                    , m_contextModels + m_numContextModels, m_numContextModels)
    64 #if H_3D
     64#if NH_3D_DIS
    6565, m_cCUDISFlagSCModel                  ( 1,             1,                      NUM_DIS_FLAG_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    6666, m_cCUDISTypeSCModel                  ( 1,             1,                      NUM_DIS_TYPE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
     
    143143  m_cCUSplitFlagSCModel.initBuffer                ( eSliceType, iQp, (UChar*)INIT_SPLIT_FLAG );
    144144  m_cCUSkipFlagSCModel.initBuffer                 ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    145 #if H_3D
     145#if NH_3D_DIS
    146146  m_cCUDISFlagSCModel.initBuffer                  ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG );
    147147  m_cCUDISTypeSCModel.initBuffer                  ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE );
     
    231231      curCost  = m_cCUSplitFlagSCModel.calcCost                ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    232232      curCost += m_cCUSkipFlagSCModel.calcCost                 ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG );
    233 #if H_3D
     233#if NH_3D_DIS
    234234      curCost += m_cCUDISFlagSCModel.calcCost                  ( curSliceType, qp, (UChar*)INIT_DIS_FLAG );
    235235      curCost += m_cCUDISTypeSCModel.calcCost                  ( curSliceType, qp, (UChar*)INIT_DIS_TYPE );
     
    297297  }
    298298}
    299 
    300 #if H_3D
    301   m_cCUDISFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG );
    302   m_cCUDISTypeSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE );
    303 #endif
    304299#if H_3D_ARP
    305300  m_cCUPUARPWSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_ARPW );
     
    420415}
    421416
    422 #if H_3D
     417#if NH_3D_DIS
    423418Void TEncSbac::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx )
    424419{
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSbac.h

    r1227 r1258  
    138138  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    139139  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    140 #if H_3D
     140#if NH_3D_DIS
    141141  Void codeDIS           ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    142142#endif
     
    204204  ContextModel3DBuffer m_cCUSplitFlagSCModel;
    205205  ContextModel3DBuffer m_cCUSkipFlagSCModel;
    206 #if H_3D
     206#if NH_3D_DIS
    207207  ContextModel3DBuffer m_cCUDISFlagSCModel;
    208208  ContextModel3DBuffer m_cCUDISTypeSCModel;
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSearch.cpp

    r1248 r1258  
    10071007        }
    10081008        m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true );
    1009 #if H_3D
     1009#if NH_3D_DIS
    10101010        m_pcEntropyCoder->encodeDIS(pcCU, 0, true );
    10111011        if(!pcCU->getDISFlag(uiAbsPartIdx))
     
    10131013        m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    10141014      }
    1015 #if H_3D
     1015#if NH_3D_DIS
    10161016      else
    10171017      {
     
    10191019      }
    10201020#endif
    1021 #if H_3D
     1021#if NH_3D_DIS
    10221022      if(!pcCU->getDISFlag(uiAbsPartIdx))
    10231023      {
     
    10371037        }
    10381038      }
    1039 #if H_3D
    1040     }
    1041 #endif
    1042   }
    1043 #if H_3D
     1039#if NH_3D_DIS
     1040    }
     1041#endif
     1042  }
     1043#if NH_3D_DIS
    10441044    if(!pcCU->getDISFlag(uiAbsPartIdx))
    10451045    {
     
    10801080#endif
    10811081#endif
    1082 #if H_3D
     1082#if NH_3D_DIS
    10831083      }
    10841084#endif
     
    18751875}
    18761876
    1877 #if H_3D
     1877#if NH_3D_DIS
    18781878Void TEncSearch::xIntraCodingDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode )
    18791879{
    18801880  UInt    uiWidth           = pcCU     ->getWidth   ( 0 );
    18811881  UInt    uiHeight          = pcCU     ->getHeight  ( 0 );
    1882   UInt    uiStride          = pcOrgYuv ->getStride  ();
    1883   Pel*    piOrg             = pcOrgYuv ->getLumaAddr( uiAbsPartIdx );
    1884   Pel*    piPred            = pcPredYuv->getLumaAddr( uiAbsPartIdx );
     1882  UInt    uiStride          = pcOrgYuv ->getStride  (COMPONENT_Y);
     1883  Pel*    piOrg             = pcOrgYuv ->getAddr(COMPONENT_Y, uiAbsPartIdx );
     1884  Pel*    piPred            = pcPredYuv->getAddr(COMPONENT_Y, uiAbsPartIdx );
    18851885
    18861886  AOF( uiWidth == uiHeight );
    18871887  AOF( uiAbsPartIdx == 0 );
    1888   pcCU->setDISTypeSubParts(uiPredMode, uiAbsPartIdx, 0, pcCU->getDepth(0)); 
     1888  pcCU->setDISTypeSubParts((UChar)uiPredMode, uiAbsPartIdx, pcCU->getDepth(0)); 
    18891889  //===== reconstruction =====
    18901890
    18911891  Bool bAboveAvail = false;
    18921892  Bool bLeftAvail  = false;
    1893   pcCU->getPattern()->initPattern   ( pcCU, 0, 0 );
    1894   pcCU->getPattern()->initAdiPattern( pcCU, 0, 0, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
     1893
     1894  TComTURecurse rTu(pcCU, 0);
     1895  const ChromaFormat chFmt     = rTu.GetChromaFormat();
    18951896
    18961897  if ( uiPredMode == 0 )
    18971898  {
    1898     predIntraLumaAng( pcCU->getPattern(), VER_IDX, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     1899    const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, VER_IDX, uiWidth, uiHeight, chFmt, pcCU->getSlice()->getSPS()->getSpsRangeExtension().getIntraSmoothingDisabledFlag());
     1900    initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, COMPONENT_Y, bUseFilteredPredictions  DEBUG_STRING_PASS_INTO(sTemp) );
     1901    predIntraAng( COMPONENT_Y, VER_IDX, 0, uiStride, piPred, uiStride, rTu, bAboveAvail, bLeftAvail, bUseFilteredPredictions );
    18991902  }
    19001903  else if ( uiPredMode == 1 )
    19011904  {
    1902     predIntraLumaAng( pcCU->getPattern(), HOR_IDX, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     1905    const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, HOR_IDX, uiWidth, uiHeight, chFmt, pcCU->getSlice()->getSPS()->getSpsRangeExtension().getIntraSmoothingDisabledFlag());
     1906    initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, COMPONENT_Y, bUseFilteredPredictions  DEBUG_STRING_PASS_INTO(sTemp) );
     1907    predIntraAng( COMPONENT_Y, HOR_IDX, 0, uiStride, piPred, uiStride, rTu, bAboveAvail, bLeftAvail, bUseFilteredPredictions );
    19031908  }
    19041909  else if ( uiPredMode == 2 )
    19051910  {
    1906     Pel pSingleDepth = 1 << ( g_bitDepthY - 1 );
     1911    Pel pSingleDepth = 1 << ( pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) - 1 );
    19071912    pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 0 );
    19081913    for( UInt uiY = 0; uiY < uiHeight; uiY++ )
     
    19171922  else if ( uiPredMode == 3 )
    19181923  {
    1919     Pel pSingleDepth = 1 << ( g_bitDepthY - 1 );
     1924    Pel pSingleDepth = 1 << ( pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) - 1 );
    19201925    pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 1 );
    19211926    for( UInt uiY = 0; uiY < uiHeight; uiY++ )
     
    19301935
    19311936  // clear UV
    1932   UInt  uiStrideC     = pcPredYuv->getCStride();
    1933   Pel   *pRecCb       = pcPredYuv->getCbAddr();
    1934   Pel   *pRecCr       = pcPredYuv->getCrAddr();
     1937  UInt  uiStrideC     = pcPredYuv->getStride(COMPONENT_Cb);
     1938  Pel   *pRecCb       = pcPredYuv->getAddr(COMPONENT_Cb);
     1939  Pel   *pRecCr       = pcPredYuv->getAddr(COMPONENT_Cr);
    19351940
    19361941  for (Int y=0; y<uiHeight/2; y++)
     
    19381943    for (Int x=0; x<uiWidth/2; x++)
    19391944    {
    1940       pRecCb[x] = 1<<(g_bitDepthC-1);
    1941       pRecCr[x] = 1<<(g_bitDepthC-1);
     1945      pRecCb[x] = 1<<(pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA)-1);
     1946      pRecCr[x] = 1<<(pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA)-1);
    19421947    }
    19431948
     
    19461951  }
    19471952
    1948   piPred            = pcPredYuv->getLumaAddr( uiAbsPartIdx );
     1953  piPred            = pcPredYuv->getAddr(COMPONENT_Y, uiAbsPartIdx );
    19491954  //===== determine distortion =====
    1950 #if H_3D_VSO
     1955#if NH_3D_VSO
    19511956  if ( m_pcRdCost->getUseVSO() )
    1952     ruiDist = m_pcRdCost->getDistPartVSO  ( pcCU, uiAbsPartIdx, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false );
     1957    ruiDist = m_pcRdCost->getDistPartVSO  ( pcCU, uiAbsPartIdx, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA), piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false );
    19531958  else
    19541959#endif
    1955     ruiDist = m_pcRdCost->getDistPart(g_bitDepthY, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight );
     1960    ruiDist = m_pcRdCost->getDistPart(pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA), piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, COMPONENT_Y );
    19561961
    19571962  //===== determine rate and r-d cost =====
     
    19601965  UInt uiBits = m_pcEntropyCoder->getNumberOfWrittenBits();
    19611966
    1962 #if H_3D_VSO
     1967#if NH_3D_VSO
    19631968  if ( m_pcRdCost->getUseLambdaScaleVSO())
    19641969    dRDCost = m_pcRdCost->calcRdCostVSO( uiBits, ruiDist );
     
    27212726}
    27222727
    2723 #if H_3D
     2728#if NH_3D_DIS
    27242729Void TEncSearch::estIntraPredDIS( TComDataCU* pcCU,
    27252730                                  TComYuv*    pcOrgYuv,
     
    27342739  UInt    uiHeight       = pcCU->getHeight(0);
    27352740
    2736 
    2737   Pel* piOrg         = pcOrgYuv ->getLumaAddr( 0, uiWidth );
    2738   UInt uiStride      = pcPredYuv->getStride();
    2739 
     2741#if NH_3D_VSO // M36
     2742  Pel* piOrg         = pcOrgYuv ->getAddr(COMPONENT_Y, 0, uiWidth );
     2743  UInt uiStride      = pcPredYuv->getStride(COMPONENT_Y);
     2744#endif
    27402745  Dist   uiDist = 0;
    27412746  Double dCost   = 0.0;
     
    27522757    uiDist = 0;
    27532758    dCost   = 0.0;
    2754 #if H_3D_VSO // M36
     2759#if NH_3D_VSO // M36
    27552760    if( m_pcRdCost->getUseRenModel() )
    27562761    {
     
    27712776
    27722777
    2773   pcCU->setDISTypeSubParts(uiBestDISType, 0, 0, uiDepth); 
     2778  pcCU->setDISTypeSubParts((UChar)uiBestDISType, 0, uiDepth); 
    27742779  assert(uiBestDISType >= 0);
    27752780
     
    70917096
    70927097    m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true );
    7093 #if H_3D
     7098#if NH_3D_DIS
    70947099    m_pcEntropyCoder->encodeDIS ( pcCU, 0, true );
    70957100#endif
  • branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSearch.h

    r1243 r1258  
    192192                                  Pel         resiLuma[NUMBER_OF_STORED_RESIDUAL_TYPES][MAX_CU_SIZE * MAX_CU_SIZE]
    193193                                  DEBUG_STRING_FN_DECLARE(sDebug));
    194 #if H_3D
     194#if NH_3D_DIS
    195195  Void  estIntraPredDIS        ( TComDataCU* pcCU,
    196196                                 TComYuv*    pcOrgYuv,
     
    344344  Void  xStoreIntraResultQT       ( const ComponentID compID, TComTU &rTu);
    345345  Void  xLoadIntraResultQT        ( const ComponentID compID, TComTU &rTu);
    346 #if H_3D
     346#if NH_3D_DIS
    347347  Void xIntraCodingDIS           ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode );
    348348#endif
Note: See TracChangeset for help on using the changeset viewer.