Changeset 321 in SHVCSoftware


Ignore:
Timestamp:
2 Aug 2013, 22:52:20 (11 years ago)
Author:
seregin
Message:

remove INTRA_BL

Location:
branches/SHM-3.0-dev/source
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-3.0-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r317 r321  
    21872187  printf("ENCODER_FAST_MODE: %d ", ENCODER_FAST_MODE);
    21882188  printf("REF_IDX_MFM: %d ", REF_IDX_MFM);
    2189 #elif INTRA_BL
    2190   printf("INTRA_BL:%d ", INTRA_BL);
    21912189#endif
    21922190#else
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/ContextTables.h

    r313 r321  
    9292#define NUM_SAO_MERGE_FLAG_CTX        1       ///< number of context models for SAO merge flags
    9393#define NUM_SAO_TYPE_IDX_CTX          1       ///< number of context models for SAO type index
    94 #if INTRA_BL
    95 #define NUM_INTRA_BL_PRED_CTX         3
    96 #endif
    9794
    9895#define NUM_TRANSFORMSKIP_FLAG_CTX    1       ///< number of context models for transform skipping
     
    330327};
    331328
    332 #if INTRA_BL
    333 static const UChar
    334 INIT_INTRA_BL_PRED_FLAG[3][NUM_INTRA_BL_PRED_CTX] =
    335 {
    336   { 185,  185,  201, },
    337   { 197,  197,  185, },
    338   { 197,  197,  185, },
    339 };
    340 #endif
    341329static const UChar
    342330INIT_TRANSFORMSKIP_FLAG[3][2*NUM_TRANSFORMSKIP_FLAG_CTX] =
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComDataCU.cpp

    r319 r321  
    16431643  pcTempCU = getPULeft( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx );
    16441644 
    1645 #if INTRA_BL
    1646   iLeftIntraDir  = pcTempCU ? ( pcTempCU->isIntra( uiTempPartIdx ) && ( !pcTempCU->isIntraBL( uiTempPartIdx ) ) ? pcTempCU->getLumaIntraDir( uiTempPartIdx ) : DC_IDX ) : DC_IDX;
    1647 #else
    16481645  iLeftIntraDir  = pcTempCU ? ( pcTempCU->isIntra( uiTempPartIdx ) ? pcTempCU->getLumaIntraDir( uiTempPartIdx ) : DC_IDX ) : DC_IDX;
    1649 #endif
    16501646 
    16511647  // Get intra direction of above PU
    16521648  pcTempCU = getPUAbove( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx, true, true );
    16531649 
    1654 #if INTRA_BL
    1655   iAboveIntraDir = pcTempCU ? ( pcTempCU->isIntra( uiTempPartIdx ) && ( !pcTempCU->isIntraBL( uiTempPartIdx ) ) ? pcTempCU->getLumaIntraDir( uiTempPartIdx ) : DC_IDX ) : DC_IDX;
    1656 #else
    16571650  iAboveIntraDir = pcTempCU ? ( pcTempCU->isIntra( uiTempPartIdx ) ? pcTempCU->getLumaIntraDir( uiTempPartIdx ) : DC_IDX ) : DC_IDX;
    1658 #endif
    16591651 
    16601652  uiPredNum = 3;
     
    17981790  UInt log2CbSize = g_aucConvertToBit[getWidth( absPartIdx )] + 2;
    17991791  PartSize  partSize  = getPartitionSize( absPartIdx );
    1800 #if INTRA_BL
    1801   UInt quadtreeTUMaxDepth = isIntra( absPartIdx ) ? m_pcSlice->getSPS()->getQuadtreeTUMaxDepthIntra() : m_pcSlice->getSPS()->getQuadtreeTUMaxDepthInter();
    1802 #else
    18031792  UInt quadtreeTUMaxDepth = getPredictionMode( absPartIdx ) == MODE_INTRA ? m_pcSlice->getSPS()->getQuadtreeTUMaxDepthIntra() : m_pcSlice->getSPS()->getQuadtreeTUMaxDepthInter();
    1804 #endif
    18051793  Int intraSplitFlag = ( getPredictionMode( absPartIdx ) == MODE_INTRA && partSize == SIZE_NxN ) ? 1 : 0;
    18061794  Int interSplitFlag = ((quadtreeTUMaxDepth == 1) && (getPredictionMode( absPartIdx ) == MODE_INTER) && (partSize != SIZE_2Nx2N) );
     
    18241812  return log2MinTUSizeInCU;
    18251813}
    1826 
    1827 #if INTRA_BL
    1828 UInt TComDataCU::getCtxIntraBLFlag( UInt uiAbsPartIdx )
    1829 {
    1830   TComDataCU* pcTempCU;
    1831   UInt        uiTempPartIdx;
    1832   UInt        uiCtx = 0;
    1833  
    1834   // Get BCBP of left PU
    1835 #if DEPENDENT_SLICES
    1836   Bool bDepSliceRestriction = ( !m_pcSlice->getPPS()->getDependentSliceEnabledFlag());
    1837   pcTempCU = getPULeft( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx, true, bDepSliceRestriction );
    1838 #else
    1839   pcTempCU = getPULeft( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx );
    1840 #endif 
    1841   uiCtx    = ( pcTempCU ) ? pcTempCU->isIntraBL( uiTempPartIdx ) : 0;
    1842  
    1843   // Get BCBP of above PU
    1844 #if DEPENDENT_SLICES
    1845   pcTempCU = getPUAbove( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx, true, bDepSliceRestriction );
    1846 #else
    1847   pcTempCU = getPUAbove( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx );
    1848 #endif 
    1849   uiCtx   += ( pcTempCU ) ? pcTempCU->isIntraBL( uiTempPartIdx ) : 0;
    1850  
    1851   return uiCtx;
    1852 }
    1853 #endif
    18541814
    18551815#if REF_IDX_ME_ZEROMV
     
    25542514  TComDataCU* pcCULeft = 0;
    25552515  pcCULeft = getPULeft( uiLeftPartIdx, uiPartIdxLB );
    2556 #if INTRA_BL
    2557   if( pcCULeft && pcCULeft->isIntraBL( uiLeftPartIdx ) )
    2558   {
    2559     pcCULeft = NULL;
    2560   }
    2561 #endif
     2516
    25622517  Bool isAvailableA1 = pcCULeft &&
    25632518  pcCULeft->isDiffMER(xP -1, yP+nPSH-1, xP, yP) &&
     
    25912546  TComDataCU* pcCUAbove = 0;
    25922547  pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT );
    2593 #if INTRA_BL
    2594   if( pcCUAbove && pcCUAbove->isIntraBL( uiAbovePartIdx ) )
    2595   {
    2596     pcCUAbove = NULL;
    2597   }
    2598 #endif
     2548
    25992549  Bool isAvailableB1 = pcCUAbove &&
    26002550  pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP) &&
     
    26282578  TComDataCU* pcCUAboveRight = 0;
    26292579  pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT );
    2630 #if INTRA_BL
    2631   if( pcCUAboveRight && pcCUAboveRight->isIntraBL( uiAboveRightPartIdx ) )
    2632   {
    2633     pcCUAboveRight = NULL;
    2634   }
    2635 #endif
     2580
    26362581  Bool isAvailableB0 = pcCUAboveRight &&
    26372582  pcCUAboveRight->isDiffMER(xP+nPSW, yP-1, xP, yP) &&
     
    26642609  TComDataCU* pcCULeftBottom = 0;
    26652610  pcCULeftBottom = this->getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB );
    2666 #if INTRA_BL
    2667   if( pcCULeftBottom && pcCULeftBottom->isIntraBL( uiLeftBottomPartIdx ) )
    2668   {
    2669     pcCULeftBottom = NULL;
    2670   }
    2671 #endif
     2611
    26722612  Bool isAvailableA0 = pcCULeftBottom &&
    26732613  pcCULeftBottom->isDiffMER(xP-1, yP+nPSH, xP, yP) &&
     
    27022642    TComDataCU* pcCUAboveLeft = 0;
    27032643    pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr );
    2704 #if INTRA_BL
    2705     if( pcCUAboveLeft && pcCUAboveLeft->isIntraBL( uiAboveLeftPartIdx ) )
    2706     {
    2707       pcCUAboveLeft = NULL;
    2708     }
    2709 #endif
     2644
    27102645    Bool isAvailableB2 = pcCUAboveLeft &&
    27112646    pcCUAboveLeft->isDiffMER(xP-1, yP-1, xP, yP) &&
     
    30102945  UInt idx;
    30112946  tmpCU = getPUBelowLeft(idx, uiPartIdxLB);
    3012 #if INTRA_BL
    3013   bAddedSmvp = (tmpCU != NULL) && (!tmpCU->isIntra(idx));
    3014 #else
    30152947  bAddedSmvp = (tmpCU != NULL) && (tmpCU->getPredictionMode(idx) != MODE_INTRA);
    3016 #endif
    30172948
    30182949  if (!bAddedSmvp)
    30192950  {
    30202951    tmpCU = getPULeft(idx, uiPartIdxLB);
    3021 #if INTRA_BL
    3022     bAddedSmvp = (tmpCU != NULL) && (!tmpCU->isIntra(idx));
    3023 #else
    30242952    bAddedSmvp = (tmpCU != NULL) && (tmpCU->getPredictionMode(idx) != MODE_INTRA);
    3025 #endif
    30262953  }
    30272954
     
    40193946}
    40203947
    4021 #if INTRA_BL
    4022 Void TComDataCU::getBaseLumaBlk ( UInt uiWidth, UInt uiHeight, UInt uiAbsPartIdx, Pel* piPred, UInt uiStride )
    4023 {
    4024   TComPicYuv* pcBaseRec = getSlice()->getFullPelBaseRec();
    4025   UInt uiStrideBase = pcBaseRec->getStride();
    4026   Pel* piBase = pcBaseRec->getLumaAddr( getAddr(), getZorderIdxInCU() + uiAbsPartIdx );
    4027  
    4028   for ( UInt y = 0; y < uiHeight; y ++ )
    4029   {
    4030     memcpy( piPred + y * uiStride, piBase + y * uiStrideBase, uiWidth * sizeof( Pel ) );
    4031   }
    4032 }
    4033 
    4034 Void TComDataCU::getBaseChromaBlk ( UInt uiWidth, UInt uiHeight, UInt uiAbsPartIdx, Pel* piPred, UInt uiStride, UInt uiChromaId )
    4035 {
    4036   TComPicYuv* pcBaseRec = getSlice()->getFullPelBaseRec();
    4037 
    4038   UInt uiStrideBase = pcBaseRec->getCStride();
    4039   Pel* piBase;
    4040  
    4041   if( uiChromaId == 0 )
    4042   {
    4043     piBase = pcBaseRec->getCbAddr( getAddr(), getZorderIdxInCU() + uiAbsPartIdx );
    4044   }
    4045   else
    4046   {
    4047     piBase = pcBaseRec->getCrAddr( getAddr(), getZorderIdxInCU() + uiAbsPartIdx );
    4048   }
    4049  
    4050   for ( UInt y = 0; y < uiHeight; y ++ )
    4051   {
    4052     memcpy( piPred + y * uiStride, piBase + y * uiStrideBase, uiWidth * sizeof( Pel ) );
    4053   }
    4054 }
    4055 
    4056 #endif
    4057 
    40583948#if SVC_COL_BLK
    40593949TComDataCU*  TComDataCU::getBaseColCU( UInt refLayerIdc, UInt uiCuAbsPartIdx, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase )
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComDataCU.h

    r319 r321  
    489489  // -------------------------------------------------------------------------------------------------------------------
    490490 
    491 #if INTRA_BL
    492   Void          getBaseLumaBlk   ( UInt uiWidth, UInt uiHeight, UInt uiAbsPartIdx, Pel* piPred, UInt uiStride );
    493   Void          getBaseChromaBlk ( UInt uiWidth, UInt uiHeight, UInt uiAbsPartIdx, Pel* piPred, UInt uiStride, UInt uiChromaId );
    494 #endif
    495 #if INTRA_BL
    496   Bool          isIntraBL ( UInt uiPartIdx )  { return m_pePredMode[ uiPartIdx ] == MODE_INTRA_BL; }
    497   Bool          isIntra   ( UInt uiPartIdx )  { return m_pePredMode[ uiPartIdx ] == MODE_INTRA || m_pePredMode[ uiPartIdx ] == MODE_INTRA_BL; }
    498 #else
    499491  Bool          isIntra   ( UInt uiPartIdx )  { return m_pePredMode[ uiPartIdx ] == MODE_INTRA; }
    500 #endif
    501492  Bool          isSkipped ( UInt uiPartIdx );                                                     ///< SKIP (no residual)
    502493  Bool          isBipredRestriction( UInt puIdx );
     
    525516  UInt&         getTotalBins            ()                            { return m_uiTotalBins;                                                                                                  }
    526517
    527 #if INTRA_BL
    528   UInt          getCtxIntraBLFlag               ( UInt   uiAbsPartIdx                                 );
    529 #endif 
    530 
     518#if REF_IDX_FRAMEWORK
    531519#if FAST_INTRA_SHVC
    532520  Int           reduceSetOfIntraModes              (  UInt   uiAbsPartIdx, Int* uiIntraDirPred, Int &fullSetOfModes );
     
    536524  Bool xCheckZeroMVILRMerge(UChar uhInterDir, TComMvField& cMvFieldL0, TComMvField& cMvFieldL1);
    537525  Bool xCheckZeroMVILRMvdL1Zero(Int iRefList, Int iRefIdx, Int MvpIdx);
     526#endif
    538527#endif
    539528
     
    549538  UInt          getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra);
    550539
     540#if REF_IDX_FRAMEWORK
    551541#if SVC_COL_BLK
    552542  TComDataCU*   getBaseColCU( UInt refLayerIdc, UInt uiCuAbsPartIdx, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase );
    553543  TComDataCU*   getBaseColCU( UInt refLayerIdc, UInt uiPelX, UInt uiPelY, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase );
    554544  Void          scaleBaseMV( UInt refLayerIdc, TComMvField& rcMvFieldEnhance, TComMvField& rcMvFieldBase );
     545#endif
    555546#endif
    556547};
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r319 r321  
    408408}
    409409
    410 #if INTRA_BL
    411 Void TComPrediction::getBaseBlk( TComDataCU* pcCU, TComYuv* pcYuvPred, Int iPartAddr, Int iWidth, Int iHeight )
    412 {
    413   pcCU->getBaseLumaBlk( iWidth, iHeight, iPartAddr, pcYuvPred->getLumaAddr( iPartAddr ), pcYuvPred->getStride() );
    414   pcCU->getBaseChromaBlk( iWidth >> 1, iHeight >> 1, iPartAddr, pcYuvPred->getCbAddr( iPartAddr ), pcYuvPred->getCStride(), 0 );
    415   pcCU->getBaseChromaBlk( iWidth >> 1, iHeight >> 1, iPartAddr, pcYuvPred->getCrAddr( iPartAddr ), pcYuvPred->getCStride(), 1 );
    416 }
    417 #endif
    418 
    419410Void TComPrediction::motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList, Int iPartIdx )
    420411{
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComPrediction.h

    r313 r321  
    101101 
    102102  Void    initTempBuff();
    103  
    104 #if INTRA_BL
    105   Void getBaseBlk ( TComDataCU* pcCU, TComYuv* pcYuvPred, Int iPartAddr, Int iWidth, Int iHeight );
    106 #endif
     103
    107104  // inter
    108105  Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 );
     
    121118  Int  getPredicBufHeight()       { return m_iYuvExtHeight; }
    122119
     120#if REF_IDX_FRAMEWORK
    123121#if SVC_UPSAMPLING
    124122#if SCALED_REF_LAYER_OFFSETS
     
    128126#endif
    129127#endif
     128#endif
    130129};
    131130
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TypeDef.h

    r320 r321  
    113113#define M0457_IL_SAMPLE_PRED_ONLY_FLAG   0
    114114#endif
    115 
    116 #else
    117 #define INTRA_BL                         1      ///< inter-layer texture prediction
    118115#endif
    119116
     
    458455  MODE_INTER,           ///< inter-prediction mode
    459456  MODE_INTRA,           ///< intra-prediction mode
    460 #if INTRA_BL
    461   MODE_INTRA_BL,        ///< inter-layer intra-prediction mode
    462 #endif
    463457  MODE_NONE = 15
    464458};
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r313 r321  
    22152215  return (cnt>0);
    22162216}
    2217 
    2218 #if INTRA_BL
    2219 Void TDecCavlc::parseIntraBLFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
    2220 {
    2221   assert(0);
    2222 }
    2223 #endif
    2224 
    22252217//! \}
    22262218
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCAVLC.h

    r313 r321  
    118118  Void updateContextTables  ( SliceType /*eSliceType*/, Int /*iQp*/ ) { return; }
    119119
    120 #if INTRA_BL
    121   Void parseIntraBLFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
    122 #endif
    123 
    124120  Void xParsePredWeightTable ( TComSlice* pcSlice );
    125121  Void  parseScalingList               ( TComScalingList* scalingList );
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCu.cpp

    r319 r321  
    334334    return;
    335335  }
    336 #if INTRA_BL
    337   m_pcEntropyDecoder->decodeIntraBLFlag( pcCU, uiAbsPartIdx, 0, uiDepth );
    338   if ( pcCU->isIntraBL( uiAbsPartIdx ) )
    339   {
    340     pcCU->setSizeSubParts( g_uiMaxCUWidth>>uiDepth, g_uiMaxCUHeight>>uiDepth, uiAbsPartIdx, uiDepth );
    341   }
    342   else
    343   {
    344 #endif
    345336
    346337  m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth );
     
    357348    }
    358349  }
    359 #if INTRA_BL
     350
     351  UInt uiCurrWidth      = pcCU->getWidth ( uiAbsPartIdx );
     352  UInt uiCurrHeight     = pcCU->getHeight( uiAbsPartIdx );
     353 
    360354  // prediction mode ( Intra : direction mode, Inter : Mv, reference idx )
    361355  m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]);
    362   }
    363 #endif
    364 
    365   UInt uiCurrWidth      = pcCU->getWidth ( uiAbsPartIdx );
    366   UInt uiCurrHeight     = pcCU->getHeight( uiAbsPartIdx );
    367  
    368 #if !INTRA_BL
    369   // prediction mode ( Intra : direction mode, Inter : Mv, reference idx )
    370   m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]);
    371 #endif
    372356
    373357  // Coefficient decoding
     
    440424      xReconIntraQT( m_ppcCU[uiDepth], uiDepth );
    441425      break;
    442 #if INTRA_BL
    443     case MODE_INTRA_BL:
    444       xReconIntraQT( m_ppcCU[uiDepth], uiAbsPartIdx, uiDepth );
    445       break;
    446 #endif
    447426    default:
    448427      assert(0);
     
    512491 
    513492  //===== get prediction signal =====
    514 #if INTRA_BL
    515   if(pcCU->isIntraBL ( uiAbsPartIdx ) )
    516   {
    517     pcCU->getBaseLumaBlk( uiWidth, uiHeight, uiAbsPartIdx, piPred, uiStride );
    518   }
    519   else
    520 #endif
    521493  m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
    522494 
     
    603575 
    604576  //===== get prediction signal =====
    605 #if INTRA_BL
    606   if(pcCU->isIntraBL ( uiAbsPartIdx ) )
    607   {
    608     pcCU->getBaseChromaBlk( uiWidth, uiHeight, uiAbsPartIdx, piPred, uiStride, uiChromaId );
    609   }
    610   else
    611 #endif
    612   {
    613     if( uiChromaPredMode == DM_CHROMA_IDX )
    614     {
    615       uiChromaPredMode = pcCU->getLumaIntraDir( 0 );
    616     }
    617     m_pcPrediction->predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 
    618   }
     577  if( uiChromaPredMode == DM_CHROMA_IDX )
     578  {
     579    uiChromaPredMode = pcCU->getLumaIntraDir( 0 );
     580  }
     581  m_pcPrediction->predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 
    619582
    620583  //===== inverse transform =====
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCu.h

    r319 r321  
    7777#endif
    7878 
    79 #if INTRA_BL
    80   TComPicYuv*         m_pcPicYuvRecBase;       ///< reconstructed base layer
    81 #endif
    82  
    8379public:
    8480  TDecCu();
     
    106102#if SVC_EXTENSION
    107103  TDecTop*   getLayerDec        ( UInt LayerId )  { return m_ppcTDecTop[LayerId]; }
    108 #if INTRA_BL
    109   Void  setBaseRecPic           ( TComPicYuv* p ) { m_pcPicYuvRecBase = p; }
    110 #endif
    111104#endif
    112105protected:
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecEntropy.cpp

    r319 r321  
    5858}
    5959
    60 #if INTRA_BL
    61 Void TDecEntropy::decodeIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
    62 {
    63   m_pcEntropyDecoderIf->parseIntraBLFlag( pcCU, uiAbsPartIdx, uiPartIdx, uiDepth );
    64 }
    65 #endif
    66 
    6760/** decode merge flag
    6861 * \param pcSubCU
     
    111104Void TDecEntropy::decodePredInfo    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU )
    112105{
    113 #if INTRA_BL
    114   if( pcCU->isIntraBL( uiAbsPartIdx ) )                                 // Do nothing for Intra BL mode.
    115   {
    116     return;
    117   }
    118 #endif
    119106  if( pcCU->isIntra( uiAbsPartIdx ) )                                 // If it is Intra mode, encode intra prediction mode.
    120107  {
     
    450437   
    451438    pcCU->setCbfSubParts ( 0, TEXT_LUMA, uiAbsPartIdx, uiDepth );
    452 #if INTRA_BL
    453     if( ( !pcCU->isIntra(uiAbsPartIdx) ) && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) )
    454 #else
    455439    if( pcCU->getPredictionMode(uiAbsPartIdx) != MODE_INTRA && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) )
    456 #endif
    457440    {
    458441      pcCU->setCbfSubParts( 1 << uiTrDepth, TEXT_LUMA, uiAbsPartIdx, uiDepth );
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecEntropy.h

    r313 r321  
    107107  virtual Void parseTransformSkipFlags ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt width, UInt height, UInt uiDepth, TextType eTType) = 0;
    108108
    109 #if INTRA_BL
    110   virtual Void parseIntraBLFlag   ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) = 0;
    111 #endif
    112 
    113109  virtual Void updateContextTables( SliceType eSliceType, Int iQp ) = 0;
    114110 
     
    170166  Void updateContextTables    ( SliceType eSliceType, Int iQp ) { m_pcEntropyDecoderIf->updateContextTables( eSliceType, iQp ); }
    171167 
    172 #if INTRA_BL
    173   Void decodeIntraBLFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
    174 #endif
    175  
    176168private:
    177169  Void xDecodeTransform        ( TComDataCU* pcCU, UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP );
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecSbac.cpp

    r313 r321  
    7777, m_cTransformSkipSCModel     ( 1,             2,               NUM_TRANSFORMSKIP_FLAG_CTX    , m_contextModels + m_numContextModels, m_numContextModels)
    7878, m_CUTransquantBypassFlagSCModel( 1,          1,               NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX, m_contextModels + m_numContextModels, m_numContextModels)
    79 #if INTRA_BL
    80 , m_cIntraBLPredFlagSCModel   (1,              1,               NUM_INTRA_BL_PRED_CTX         , m_contextModels + m_numContextModels, m_numContextModels)
    81 #endif
    8279{
    8380  assert( m_numContextModels <= MAX_NUM_CTX_MOD );
     
    138135
    139136  m_cCUTransSubdivFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
    140 #if INTRA_BL
    141   m_cIntraBLPredFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTRA_BL_PRED_FLAG );
    142 #endif
    143137  m_cTransformSkipSCModel.initBuffer     ( sliceType, qp, (UChar*)INIT_TRANSFORMSKIP_FLAG );
    144138  m_CUTransquantBypassFlagSCModel.initBuffer( sliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG );
     
    186180  m_cSaoTypeIdxSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SAO_TYPE_IDX );
    187181  m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
    188 #if INTRA_BL
    189   m_cIntraBLPredFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTRA_BL_PRED_FLAG );
    190 #endif
    191182  m_cTransformSkipSCModel.initBuffer     ( eSliceType, iQp, (UChar*)INIT_TRANSFORMSKIP_FLAG );
    192183  m_CUTransquantBypassFlagSCModel.initBuffer( eSliceType, iQp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG );
     
    438429}
    439430
    440 #if INTRA_BL
    441 Void TDecSbac::parseIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
    442 {
    443   if( pcCU->getLayerId() == 0 )
    444   {
    445     return;
    446   }
    447 
    448   UInt uiSymbol = 0;
    449 
    450   UInt uiCtxIntraBL = pcCU->getCtxIntraBLFlag( uiAbsPartIdx ) ;
    451   m_pcTDecBinIf->decodeBin( uiSymbol, m_cIntraBLPredFlagSCModel.get( 0, 0, uiCtxIntraBL ));
    452   DTRACE_CABAC_VL( g_nSymbolCounter++ );
    453   DTRACE_CABAC_T( "\tIntrBLFlag" );
    454   DTRACE_CABAC_T( "\tuiSymbol: ");
    455   DTRACE_CABAC_V( uiSymbol );
    456   DTRACE_CABAC_T( "\n");
    457 
    458   if ( uiSymbol )
    459   {
    460     pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth );
    461     pcCU->setPredModeSubParts( MODE_INTRA_BL, uiAbsPartIdx, uiDepth );
    462     pcCU->setTrIdxSubParts( 0, uiAbsPartIdx, uiDepth );
    463     pcCU->setLumaIntraDirSubParts ( DC_IDX, uiAbsPartIdx, uiDepth );   
    464   }
    465 }
    466 #endif
    467 
    468431/** parse merge flag
    469432 * \param pcCU
     
    555518  UInt uiSymbol, uiMode = 0;
    556519  PartSize eMode;
    557  
    558 #if INTRA_BL
    559   if ( pcCU->isIntraBL( uiAbsPartIdx ) )
    560   {
    561     assert( 0 );
    562   }
    563 #endif
     520
    564521  if ( pcCU->isIntra( uiAbsPartIdx ) )
    565522  {
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecSbac.h

    r313 r321  
    135135  Void  parseScalingList ( TComScalingList* /*scalingList*/ ) {}
    136136
    137 #if INTRA_BL
    138   Void parseIntraBLFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
    139 #endif
    140137private:
    141138  UInt m_uiLastDQpNonZero;
     
    174171  ContextModel3DBuffer m_cTransformSkipSCModel;
    175172  ContextModel3DBuffer m_CUTransquantBypassFlagSCModel;
    176 #if INTRA_BL
    177   ContextModel3DBuffer m_cIntraBLPredFlagSCModel;
    178 #endif
    179173};
    180174
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecSlice.cpp

    r313 r321  
    197197  UInt uiTileLCUX;
    198198  Int iNumSubstreamsPerTile = 1; // if independent.
    199 #if INTRA_BL
    200   m_pcCuDecoder->setBaseRecPic( rpcPic->getLayerId() > 0 ? rpcPic->getFullPelBaseRec(rpcPic->getLayerId()-1) : NULL);
    201 #endif
     199
    202200  Bool depSliceSegmentsEnabled = rpcPic->getSlice(rpcPic->getCurrSliceIdx())->getPPS()->getDependentSliceSegmentsEnabledFlag();
    203201  uiTileStartLCU = rpcPic->getPicSym()->getTComTile(rpcPic->getPicSym()->getTileIdxMap(iStartCUAddr))->getFirstCUAddr();
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r313 r321  
    812812#if REF_IDX_FRAMEWORK
    813813    if (m_layerId == 0)
    814 #elif INTRA_BL
    815     if( m_layerId > 0 )
    816     {
    817       pcSlice->setRefPicList( m_cListPic );
    818     }
    819     else
    820814#endif
    821815#if FIX1071
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r313 r321  
    17261726  return true;
    17271727}
    1728 
    1729 #if INTRA_BL
    1730 Void TEncCavlc::codeIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    1731 {
    1732   assert(0);
    1733 }
    1734 
    1735 #endif
    17361728//! \}
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncCavlc.h

    r313 r321  
    112112  Void codeMergeFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    113113  Void codeMergeIndex    ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    114 #if INTRA_BL
    115   Void codeIntraBLFlag   ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    116 #endif
    117114 
    118115  Void codeInterModeFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiEncMode );
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncCu.cpp

    r319 r321  
    763763          }
    764764        }
    765 #if INTRA_BL
    766       if(m_pcPicYuvRecBase)
    767       {
    768         xCheckRDCostIntraBL( rpcBestCU, rpcTempCU );
    769         rpcTempCU->initEstData( uiDepth, iQP );
    770       }
    771 #endif
    772765#if (ENCODER_FAST_MODE)
    773766      if(pcPic->getLayerId() > 0)
     
    12151208    return;
    12161209  }
    1217 #if INTRA_BL
    1218   m_pcEntropyCoder->encodeIntraBLFlag( pcCU, uiAbsPartIdx );
    1219   if ( !pcCU->isIntraBL( uiAbsPartIdx ) )
    1220   {
    1221 #endif
    12221210  m_pcEntropyCoder->encodePredMode( pcCU, uiAbsPartIdx );
    12231211 
     
    12381226  // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    12391227  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
    1240 #if INTRA_BL
    1241   }
    1242 #endif
    12431228 
    12441229  // Encode Coefficients
     
    15681553 
    15691554  m_pcEntropyCoder->resetBits();
    1570 #if INTRA_BL
    1571   m_pcEntropyCoder->encodeIntraBLFlag ( rpcTempCU, 0,       true );
    1572 #endif
     1555
    15731556  if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())
    15741557  {
     
    16241607
    16251608  m_pcEntropyCoder->resetBits();
    1626 #if INTRA_BL
    1627   m_pcEntropyCoder->encodeIntraBLFlag ( rpcTempCU, 0,       true );
    1628 #endif
     1609
    16291610  if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())
    16301611  {
     
    18791860#endif
    18801861
    1881 #if INTRA_BL
    1882 Void TEncCu::xCheckRDCostIntraBL( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU )
    1883 {
    1884   UInt uiDepth = rpcTempCU->getDepth( 0 );
    1885   rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    1886   rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );
    1887   rpcTempCU->setPredModeSubParts( MODE_INTRA_BL, 0, uiDepth ); 
    1888   rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uiDepth );
    1889 
    1890   m_pcPredSearch->setBaseRecPic( m_pcPicYuvRecBase );
    1891   m_pcPredSearch->estIntraBLPredQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth] );
    1892 
    1893   m_pcEntropyCoder->resetBits();
    1894   m_pcEntropyCoder->encodeIntraBLFlag ( rpcTempCU, 0,       true );
    1895   m_pcEntropyCoder->encodeSkipFlag( rpcTempCU, 0,       true );
    1896   if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())
    1897   {
    1898     m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0,          true );
    1899   }
    1900 
    1901   // Encode Coefficients
    1902   Bool bCodeDQP = getdQPFlag();
    1903   m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, rpcTempCU->getWidth (0), rpcTempCU->getHeight(0), bCodeDQP );
    1904   setdQPFlag( bCodeDQP );
    1905  
    1906   if( m_bUseSBACRD ) m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]);
    1907  
    1908   rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits();
    1909   if(m_pcEncCfg->getUseSBACRD())
    1910   {
    1911     rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded();
    1912   }
    1913   rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
    1914  
    1915   xCheckDQP( rpcTempCU );
    1916   xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth);
    1917 }
    1918 #endif
    19191862#if (ENCODER_FAST_MODE)
    19201863Void TEncCu::xCheckRDCostILRUni(TComDataCU *&rpcBestCU, TComDataCU *&rpcTempCU, UInt refLayerId)
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncCu.h

    r313 r321  
    8484  //  Access channel
    8585  TEncCfg*                m_pcEncCfg;
    86 #if INTRA_BL
    87   TComPicYuv*             m_pcPicYuvRecBase;       ///< reconstructed base layer
    88 #endif
    8986  TEncSearch*             m_pcPredSearch;
    9087  TComTrQuant*            m_pcTrQuant;
     
    134131  Int   updateLCUDataISlice ( TComDataCU* pcCU, Int LCUIdx, Int width, Int height );
    135132#endif
    136 #if INTRA_BL
    137   Void  setBaseRecPic       ( TComPicYuv* p ) { m_pcPicYuvRecBase = p; }   
    138 #endif
     133
    139134protected:
    140135  Void  finishCU            ( TComDataCU*  pcCU, UInt uiAbsPartIdx,           UInt uiDepth        );
     
    157152#endif
    158153  Void  xCheckRDCostIntra   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
    159 #if INTRA_BL
    160   Void  xCheckRDCostIntraBL ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU  );
    161 #endif
    162154#if ENCODER_FAST_MODE
    163155  Void  xCheckRDCostILRUni  ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt refLayerId);
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncEntropy.cpp

    r319 r321  
    166166  }
    167167
    168 #if INTRA_BL
    169   if( pcCU->isIntraBL( uiAbsPartIdx ) )
    170   {
    171     return;
    172   }
    173 #endif
    174 
    175168  m_pcEntropyCoderIf->codePredMode( pcCU, uiAbsPartIdx );
    176169}
     
    251244    }
    252245  }
    253 #if INTRA_BL
    254     if( pcCU->isIntra(uiAbsPartIdx) && pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_NxN && uiDepth == pcCU->getDepth(uiAbsPartIdx) )
    255 #else
    256246 
    257247  if( pcCU->getPredictionMode(uiAbsPartIdx) == MODE_INTRA && pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_NxN && uiDepth == pcCU->getDepth(uiAbsPartIdx) )
    258 #endif
    259248  {
    260249    assert( uiSubdiv );
     
    342331    }
    343332   
    344 #if INTRA_BL
    345     if( ( !pcCU->isIntra( uiAbsPartIdx ) ) && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) )
    346 #else
    347333    if( pcCU->getPredictionMode(uiAbsPartIdx) != MODE_INTRA && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) )
    348 #endif
    349334    {
    350335      assert( pcCU->getCbf( uiAbsPartIdx, TEXT_LUMA, 0 ) );
     
    427412Void TEncEntropy::encodePredInfo( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    428413{
    429 #if INTRA_BL
    430   assert ( !pcCU->isIntraBL( uiAbsPartIdx ) );
    431 #endif
    432414  if( bRD )
    433415  {
     
    751733}
    752734
    753 #if INTRA_BL
    754 Void TEncEntropy::encodeIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    755 {
    756   if( pcCU->getLayerId() == 0 )
    757   {
    758     return;
    759   }
    760 
    761   if( bRD )
    762   {
    763     uiAbsPartIdx = 0;
    764   }
    765   m_pcEntropyCoderIf->codeIntraBLFlag( pcCU, uiAbsPartIdx );
    766 }
    767 #endif
    768735//! \}
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncEntropy.h

    r313 r321  
    8585  virtual Void codeMergeIndex    ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8686  virtual Void codeSplitFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    87  
    88 #if INTRA_BL
    89   virtual Void codeIntraBLFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    90 #endif
     87
    9188  virtual Void codePartSize      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9289  virtual Void codePredMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
     
    164161  Void encodeMergeFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    165162  Void encodeMergeIndex   ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    166 #if INTRA_BL
    167   Void encodeIntraBLFlag  ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    168 #endif
    169163  Void encodePredMode          ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    170164  Void encodePartSize          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, Bool bRD = false );
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncSbac.cpp

    r313 r321  
    8383, m_cTransformSkipSCModel     ( 1,             2,               NUM_TRANSFORMSKIP_FLAG_CTX    , m_contextModels + m_numContextModels, m_numContextModels)
    8484, m_CUTransquantBypassFlagSCModel( 1,          1,               NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX, m_contextModels + m_numContextModels, m_numContextModels)
    85 #if INTRA_BL
    86 , m_cIntraBLPredFlagSCModel   (1,              1,               NUM_INTRA_BL_PRED_CTX         , m_contextModels + m_numContextModels, m_numContextModels)
    87 #endif
    8885{
    8986  assert( m_numContextModels <= MAX_NUM_CTX_MOD );
     
    134131  m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
    135132  m_cSaoMergeSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_SAO_MERGE_FLAG );
    136 #if INTRA_BL
    137   m_cIntraBLPredFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTRA_BL_PRED_FLAG );
    138 #endif
    139133  m_cSaoTypeIdxSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SAO_TYPE_IDX );
    140134  m_cTransformSkipSCModel.initBuffer     ( eSliceType, iQp, (UChar*)INIT_TRANSFORMSKIP_FLAG );
     
    169163      curCost  = m_cCUSplitFlagSCModel.calcCost       ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    170164      curCost += m_cCUSkipFlagSCModel.calcCost        ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG );
    171 #if INTRA_BL
    172       curCost += m_cIntraBLPredFlagSCModel.calcCost   ( curSliceType, qp, (UChar*)INIT_INTRA_BL_PRED_FLAG );
    173 #endif
    174165      curCost += m_cCUMergeFlagExtSCModel.calcCost    ( curSliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT);
    175166      curCost += m_cCUMergeIdxExtSCModel.calcCost     ( curSliceType, qp, (UChar*)INIT_MERGE_IDX_EXT);
     
    243234  m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
    244235  m_cSaoMergeSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_SAO_MERGE_FLAG );
    245 #if INTRA_BL
    246   m_cIntraBLPredFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTRA_BL_PRED_FLAG );
    247 #endif
    248236  m_cSaoTypeIdxSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SAO_TYPE_IDX );
    249237  m_cTransformSkipSCModel.initBuffer     ( eSliceType, iQp, (UChar*)INIT_TRANSFORMSKIP_FLAG );
     
    428416{
    429417  PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
    430 #if INTRA_BL
    431   assert( !pcCU->isIntraBL( uiAbsPartIdx ) );
    432 #endif
     418
    433419  if ( pcCU->isIntra( uiAbsPartIdx ) )
    434420  {
     
    16001586}
    16011587
    1602 #if INTRA_BL
    1603 /** code intra_bl flag
    1604  * \param pcCU
    1605  * \param uiAbsPartIdx
    1606  * \returns Void
    1607  */
    1608 Void TEncSbac::codeIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    1609 {
    1610   // get context function is here
    1611   UInt uiSymbol = pcCU->isIntraBL( uiAbsPartIdx ) ? 1 : 0;
    1612 
    1613   UInt uiCtxIntraBL = pcCU->getCtxIntraBLFlag( uiAbsPartIdx ) ;
    1614   m_pcBinIf->encodeBin(uiSymbol, m_cIntraBLPredFlagSCModel.get( 0, 0, uiCtxIntraBL ));
    1615 
    1616   DTRACE_CABAC_VL( g_nSymbolCounter++ );
    1617   DTRACE_CABAC_T( "\tuiSymbol: ");
    1618   DTRACE_CABAC_V( uiSymbol );
    1619   DTRACE_CABAC_T( "\n");
    1620 }
    1621 #endif
    16221588//! \}
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncSbac.h

    r313 r321  
    132132  Void codeSplitFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    133133  Void codeMVPIdx        ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList );
    134  
    135 #if INTRA_BL
    136   Void codeIntraBLFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    137 #endif
     134
    138135  Void codePartSize      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    139136  Void codePredMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
     
    206203  ContextModel3DBuffer m_cTransformSkipSCModel;
    207204  ContextModel3DBuffer m_CUTransquantBypassFlagSCModel;
    208 #if INTRA_BL
    209   ContextModel3DBuffer m_cIntraBLPredFlagSCModel;
    210 #endif
    211205};
    212206
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncSearch.cpp

    r319 r321  
    906906        m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    907907      }
    908 #if INTRA_BL
    909       m_pcEntropyCoder->encodeIntraBLFlag ( pcCU, 0, true );
    910       if( pcCU->isIntraBL( 0 ) )
    911       {
    912         return;
    913       }
    914 #endif     
     908   
    915909      m_pcEntropyCoder  ->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
    916910
     
    950944    }
    951945  }
    952 #if INTRA_BL
    953   if( pcCU->isIntraBL( 0 ) )
    954   {
    955     return;
    956   }
    957 #endif
     946
    958947  if( bChroma )
    959948  {
     
    10551044    pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, uiTrDepth, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
    10561045    //===== get prediction signal =====
    1057 #if INTRA_BL
    1058     if(pcCU->isIntraBL ( uiAbsPartIdx ) )
    1059     {
    1060       pcCU->getBaseLumaBlk( uiWidth, uiHeight, uiAbsPartIdx, piPred, uiStride );
    1061     }
    1062     else
    1063 #endif
    10641046    predIntraLumaAng( pcCU->getPattern(), uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
    10651047    // save prediction
     
    12471229
    12481230    //===== get prediction signal =====
    1249 #if INTRA_BL
    1250   if(pcCU->isIntraBL ( uiAbsPartIdx ) )
    1251   {
    1252     pcCU->getBaseChromaBlk( uiWidth, uiHeight, uiAbsPartIdx, piPred, uiStride, uiChromaId );
    1253   }
    1254   else
    1255 #endif
    1256     {
    1257       predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
    1258     }
     1231    predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     1232
    12591233    // save prediction
    12601234    if( default0Save1Load2 == 1 )
     
    55765550
    55775551  {
    5578 #if INTRA_BL
    5579     assert( !pcCU->isIntra(uiAbsPartIdx) );
    5580 #else
    55815552    assert( pcCU->getPredictionMode(uiAbsPartIdx) != MODE_INTRA );
    5582 #endif
    55835553    if( bSubdivAndCbf )
    55845554    {
     
    58145784    }
    58155785    m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true );
    5816 #if INTRA_BL
    5817     if(m_pcEncCfg->getLayerId())
    5818     {
    5819       m_pcEntropyCoder->encodeIntraBLFlag(pcCU, 0, true);
    5820       assert( pcCU->isIntraBL( 0 ) == false );
    5821     }
    5822 #endif
    58235786    m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    58245787    m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
     
    62426205#endif
    62436206
    6244 #if INTRA_BL
    6245 Void
    6246 TEncSearch::estIntraBLPredQT( TComDataCU* pcCU,
    6247                            TComYuv*    pcOrgYuv,
    6248                            TComYuv*    pcPredYuv,
    6249                            TComYuv*    pcResiYuv,
    6250                            TComYuv*    pcRecoYuv )
    6251 {
    6252   UInt    uiDepth        = pcCU->getDepth(0);
    6253   UInt    uiOverallDistY = 0;
    6254   UInt    uiOverallDistC = 0;
    6255  
    6256   //===== set QP and clear Cbf =====
    6257   if ( pcCU->getSlice()->getPPS()->getUseDQP() == true)
    6258   {
    6259     pcCU->setQPSubParts( pcCU->getQP(0), 0, uiDepth );
    6260   }
    6261   else
    6262   {
    6263     pcCU->setQPSubParts( pcCU->getSlice()->getSliceQp(), 0, uiDepth );
    6264   }
    6265  
    6266   //===== init pattern for luma prediction =====
    6267   Bool bAboveAvail = false;
    6268   Bool bLeftAvail  = false;
    6269   pcCU->getPattern()->initPattern   ( pcCU, 0, 0 );
    6270   pcCU->getPattern()->initAdiPattern( pcCU, 0, 0, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
    6271  
    6272   pcCU->setLumaIntraDirSubParts ( DC_IDX, 0, uiDepth );
    6273  
    6274   // set context models
    6275   if( m_bUseSBACRD )
    6276   {
    6277     m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[uiDepth][CI_CURR_BEST] );
    6278   }
    6279  
    6280   // determine residual for partition
    6281   Double dPUCost   = 0.0;
    6282   xRecurIntraCodingQT( pcCU, 0, 0, false, pcOrgYuv, pcPredYuv, pcResiYuv, uiOverallDistY, uiOverallDistC, false, dPUCost );
    6283   xSetIntraResultQT( pcCU, 0, 0, false, pcRecoYuv );
    6284  
    6285   //=== update PU data ====
    6286   pcCU->copyToPic( uiDepth, 0, 0 );
    6287    
    6288   //===== reset context models =====
    6289   if(m_bUseSBACRD)
    6290   {
    6291     m_pcRDGoOnSbacCoder->load(m_pppcRDSbacCoder[uiDepth][CI_CURR_BEST]);
    6292   }
    6293 
    6294   //===== set distortion (rate and r-d costs are determined later) =====
    6295   pcCU->getTotalDistortion() = uiOverallDistY + uiOverallDistC;
    6296 }
    6297 
    6298 #endif
    62996207//! \}
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncSearch.h

    r313 r321  
    9999#if SVC_EXTENSION
    100100  TEncTop**       m_ppcTEncTop;
    101 #if INTRA_BL
    102   TComPicYuv*     m_pcPicYuvRecBase;       ///< reconstructed base layer
    103 #endif
    104101#endif
    105102 
     
    192189                                  TComYuv*    pcRecoYuv,
    193190                                  UInt        uiPreCalcDistC );
    194  
    195 #if INTRA_BL
    196   Void setBaseRecPic            ( TComPicYuv* pcPicYuvRecBase ) { m_pcPicYuvRecBase = pcPicYuvRecBase; } 
    197   TComPicYuv* getBaseRecPic     ()                              { return m_pcPicYuvRecBase; }
    198   Void  estIntraBLPredQT        ( TComDataCU* pcCU,
    199                                   TComYuv*    pcOrgYuv,
    200                                   TComYuv*    pcPredYuv,
    201                                   TComYuv*    pcResiYuv,
    202                                   TComYuv*    pcRecoYuv );
    203 #endif
    204191 
    205192  /// encoder estimation - inter prediction (non-skip)
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncSlice.cpp

    r314 r321  
    980980  UInt uiTileLCUX     = 0;
    981981
    982 #if INTRA_BL
    983   m_pcCuEncoder->setBaseRecPic( rpcPic->getLayerId() > 0 ? rpcPic->getFullPelBaseRec(rpcPic->getLayerId()-1) : NULL);
    984 #endif
    985 
    986982  Bool depSliceSegmentsEnabled = pcSlice->getPPS()->getDependentSliceSegmentsEnabledFlag();
    987983  uiCUAddr = rpcPic->getPicSym()->getCUOrderMap( uiStartCUAddr /rpcPic->getNumPartInCU());
Note: See TracChangeset for help on using the changeset viewer.