Changeset 823 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibEncoder


Ignore:
Timestamp:
9 Jul 2014, 03:42:42 (11 years ago)
Author:
seregin
Message:

update to HM-15.0

Location:
branches/SHM-dev/source/Lib/TLibEncoder
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r815 r823  
    193193  if( pcPPS->getTilesEnabledFlag() )
    194194  {
    195     WRITE_UVLC( pcPPS->getNumColumnsMinus1(),                                    "num_tile_columns_minus1" );
    196     WRITE_UVLC( pcPPS->getNumRowsMinus1(),                                       "num_tile_rows_minus1" );
    197     WRITE_FLAG( pcPPS->getUniformSpacingFlag(),                                  "uniform_spacing_flag" );
    198     if( pcPPS->getUniformSpacingFlag() == 0 )
    199     {
    200       for(UInt i=0; i<pcPPS->getNumColumnsMinus1(); i++)
    201       {
    202         WRITE_UVLC( pcPPS->getColumnWidth(i)-1,                                  "column_width_minus1" );
    203       }
    204       for(UInt i=0; i<pcPPS->getNumRowsMinus1(); i++)
    205       {
    206         WRITE_UVLC( pcPPS->getRowHeight(i)-1,                                    "row_height_minus1" );
    207       }
    208     }
    209     if(pcPPS->getNumColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0)
     195    WRITE_UVLC( pcPPS->getNumTileColumnsMinus1(),                                    "num_tile_columns_minus1" );
     196    WRITE_UVLC( pcPPS->getTileNumRowsMinus1(),                                       "num_tile_rows_minus1" );
     197    WRITE_FLAG( pcPPS->getTileUniformSpacingFlag(),                                  "uniform_spacing_flag" );
     198    if( !pcPPS->getTileUniformSpacingFlag() )
     199    {
     200      for(UInt i=0; i<pcPPS->getNumTileColumnsMinus1(); i++)
     201      {
     202        WRITE_UVLC( pcPPS->getTileColumnWidth(i)-1,                                  "column_width_minus1" );
     203      }
     204      for(UInt i=0; i<pcPPS->getTileNumRowsMinus1(); i++)
     205      {
     206        WRITE_UVLC( pcPPS->getTileRowHeight(i)-1,                                    "row_height_minus1" );
     207      }
     208    }
     209    if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0)
    210210    {
    211211      WRITE_FLAG( pcPPS->getLoopFilterAcrossTilesEnabledFlag()?1 : 0,          "loop_filter_across_tiles_enabled_flag");
     
    340340  if( defaultDisplayWindow.getWindowEnabledFlag() )
    341341  {
    342     WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset(),      "def_disp_win_left_offset");
    343     WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset(),    "def_disp_win_right_offset");
    344     WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset(),      "def_disp_win_top_offset");
    345     WRITE_UVLC(defaultDisplayWindow.getWindowBottomOffset(),    "def_disp_win_bottom_offset");
     342    WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset()  / TComSPS::getWinUnitX(pcSPS->getChromaFormatIdc()), "def_disp_win_left_offset");
     343    WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset() / TComSPS::getWinUnitX(pcSPS->getChromaFormatIdc()), "def_disp_win_right_offset");
     344    WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset()   / TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc()), "def_disp_win_top_offset");
     345    WRITE_UVLC(defaultDisplayWindow.getWindowBottomOffset()/ TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc()), "def_disp_win_bottom_offset");
    346346  }
    347347  TimingInfo *timingInfo = pcVUI->getTimingInfo();
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h

    r815 r823  
    107107  Int       m_iSourceWidth;
    108108  Int       m_iSourceHeight;
    109   Int       m_conformanceMode;
    110109  Window    m_conformanceWindow;
    111110  Int       m_framesToBeEncoded;
     
    208207  Bool      m_bPCMFilterDisableFlag;
    209208  Bool      m_loopFilterAcrossTilesEnabledFlag;
    210   Int       m_iUniformSpacingIdr;
     209  Bool      m_tileUniformSpacingFlag;
    211210  Int       m_iNumColumnsMinus1;
    212   UInt*     m_puiColumnWidth;
    213211  Int       m_iNumRowsMinus1;
    214   UInt*     m_puiRowHeight;
     212  std::vector<Int> m_tileColumnWidth;
     213  std::vector<Int> m_tileRowHeight;
    215214
    216215  Int       m_iWaveFrontSynchro;
     
    248247  Int*      m_codedPivotValue;
    249248  Int*      m_targetPivotValue;
    250 #if P0050_KNEE_FUNCTION_SEI
    251   Bool      m_kneeSEIEnabled;
    252   Int       m_kneeSEIId;
    253   Bool      m_kneeSEICancelFlag;
    254   Bool      m_kneeSEIPersistenceFlag;
    255   Bool      m_kneeSEIMappingFlag;
    256   Int       m_kneeSEIInputDrange;
    257   Int       m_kneeSEIInputDispLuminance;
    258   Int       m_kneeSEIOutputDrange;
    259   Int       m_kneeSEIOutputDispLuminance;
    260   Int       m_kneeSEINumKneePointsMinus1;
    261   Int*      m_kneeSEIInputKneePoint;
    262   Int*      m_kneeSEIOutputKneePoint;
    263 #endif
    264 #if Q0074_SEI_COLOR_MAPPING
    265   Char*     m_seiColorMappingFile;
    266 #endif
    267249  Int       m_framePackingSEIEnabled;
    268250  Int       m_framePackingSEIType;
     
    276258  Int       m_SOPDescriptionSEIEnabled;
    277259  Int       m_scalableNestingSEIEnabled;
    278 #if Q0189_TMVP_CONSTRAINTS
    279   Int       m_TMVPConstraintsSEIEnabled;
    280 #endif
    281260  //====== Weighted Prediction ========
    282261  Bool      m_useWeightedPred;       //< Use of Weighting Prediction (P_SLICE)
     
    389368  Int  m_nCGSLUTBit;
    390369#endif
     370#if P0050_KNEE_FUNCTION_SEI
     371  Bool      m_kneeSEIEnabled;
     372  Int       m_kneeSEIId;
     373  Bool      m_kneeSEICancelFlag;
     374  Bool      m_kneeSEIPersistenceFlag;
     375  Bool      m_kneeSEIMappingFlag;
     376  Int       m_kneeSEIInputDrange;
     377  Int       m_kneeSEIInputDispLuminance;
     378  Int       m_kneeSEIOutputDrange;
     379  Int       m_kneeSEIOutputDispLuminance;
     380  Int       m_kneeSEINumKneePointsMinus1;
     381  Int*      m_kneeSEIInputKneePoint;
     382  Int*      m_kneeSEIOutputKneePoint;
     383#endif
     384#if Q0074_SEI_COLOR_MAPPING
     385  Char*     m_seiColorMappingFile;
     386#endif
     387#if Q0189_TMVP_CONSTRAINTS
     388  Int       m_TMVPConstraintsSEIEnabled;
     389#endif
    391390#endif //SVC_EXTENSION
    392391
    393392public:
    394393  TEncCfg()
    395   : m_puiColumnWidth()
    396   , m_puiRowHeight()
     394  : m_tileColumnWidth()
     395  , m_tileRowHeight()
    397396  {}
    398397
    399398  virtual ~TEncCfg()
    400   {
    401     delete[] m_puiColumnWidth;
    402     delete[] m_puiRowHeight;
    403   }
     399  {}
    404400 
    405401  Void setProfile(Profile::Name profile) { m_profile = profile; }
     
    437433  Void      setMaxRefPicNum                 ( Int iMaxRefPicNum )           { m_iMaxRefPicNum = iMaxRefPicNum;  }
    438434
    439   Bool      getMaxTempLayer                 ()                              { return m_maxTempLayer;              }
     435  Int       getMaxTempLayer                 ()                              { return m_maxTempLayer;              }
    440436  Void      setMaxTempLayer                 ( Int maxTempLayer )            { m_maxTempLayer = maxTempLayer;      }
    441437  //======== Transform =============
     
    582578  Void  setLFCrossTileBoundaryFlag               ( Bool   val  )       { m_loopFilterAcrossTilesEnabledFlag = val; }
    583579  Bool  getLFCrossTileBoundaryFlag               ()                    { return m_loopFilterAcrossTilesEnabledFlag;   }
    584   Void  setUniformSpacingIdr           ( Int i )           { m_iUniformSpacingIdr = i; }
    585   Int   getUniformSpacingIdr           ()                  { return m_iUniformSpacingIdr; }
     580  Void  setTileUniformSpacingFlag      ( Bool b )          { m_tileUniformSpacingFlag = b; }
     581  Bool  getTileUniformSpacingFlag      ()                  { return m_tileUniformSpacingFlag; }
    586582  Void  setNumColumnsMinus1            ( Int i )           { m_iNumColumnsMinus1 = i; }
    587583  Int   getNumColumnsMinus1            ()                  { return m_iNumColumnsMinus1; }
    588   Void  setColumnWidth ( UInt* columnWidth )
    589   {
    590     if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 )
    591     {
    592       Int  m_iWidthInCU = ( m_iSourceWidth%g_uiMaxCUWidth ) ? m_iSourceWidth/g_uiMaxCUWidth + 1 : m_iSourceWidth/g_uiMaxCUWidth;
    593       m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ];
    594 
    595       for(Int i=0; i<m_iNumColumnsMinus1; i++)
    596       {
    597         m_puiColumnWidth[i] = columnWidth[i];
    598         printf("col: m_iWidthInCU= %4d i=%4d width= %4d\n",m_iWidthInCU,i,m_puiColumnWidth[i]); //AFU
    599       }
    600     }
    601   }
    602   UInt  getColumnWidth                 ( UInt columnidx )  { return *( m_puiColumnWidth + columnidx ); }
     584  Void  setColumnWidth ( const std::vector<Int>& columnWidth ) { m_tileColumnWidth = columnWidth; }
     585  UInt  getColumnWidth                 ( UInt columnIdx )      { return m_tileColumnWidth[columnIdx]; }
    603586  Void  setNumRowsMinus1               ( Int i )           { m_iNumRowsMinus1 = i; }
    604587  Int   getNumRowsMinus1               ()                  { return m_iNumRowsMinus1; }
    605   Void  setRowHeight (UInt* rowHeight)
    606   {
    607     if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 )
    608     {
    609       Int  m_iHeightInCU = ( m_iSourceHeight%g_uiMaxCUHeight ) ? m_iSourceHeight/g_uiMaxCUHeight + 1 : m_iSourceHeight/g_uiMaxCUHeight;
    610       m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ];
    611 
    612       for(Int i=0; i<m_iNumRowsMinus1; i++)
    613       {
    614         m_puiRowHeight[i] = rowHeight[i];
    615         printf("row: m_iHeightInCU=%4d i=%4d height=%4d\n",m_iHeightInCU,i,m_puiRowHeight[i]); //AFU
    616       }
    617     }
    618   }
    619   UInt  getRowHeight                   ( UInt rowIdx )     { return *( m_puiRowHeight + rowIdx ); }
     588  Void  setRowHeight ( const std::vector<Int>& rowHeight)      { m_tileRowHeight = rowHeight; }
     589  UInt  getRowHeight                   ( UInt rowIdx )         { return m_tileRowHeight[rowIdx]; }
    620590  Void  xCheckGSParameters();
    621591  Void  setWaveFrontSynchro(Int iWaveFrontSynchro)       { m_iWaveFrontSynchro = iWaveFrontSynchro; }
     
    865835  UInt      getNumLayer           () { return m_numLayer;             } 
    866836  Void      setNumLayer           (UInt uiNum)   { m_numLayer = uiNum;  }
    867   Void      setConformanceMode    (Int mode)     { m_conformanceMode = mode; }
    868837  Void      setConformanceWindow(Window& conformanceWindow ) { m_conformanceWindow = conformanceWindow; }
    869838  Void      setElRapSliceTypeB(Int bEnabled) {m_elRapSliceBEnabled = bEnabled;}
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r821 r823  
    13921392      if(pcSlice->isTemporalLayerSwitchingPoint(rcListPic) || pcSlice->getSPS()->getTemporalIdNestingFlag())
    13931393      {
    1394 #if !Q0108_TSA_STSA
     1394#if SVC_EXTENSION && !Q0108_TSA_STSA
    13951395        if( pcSlice->getLayerId() > 0 )
    13961396        {
     
    14911491        if(isSTSA==true)
    14921492        {   
    1493 #if !Q0108_TSA_STSA
     1493#if SVC_EXTENSION && !Q0108_TSA_STSA
    14941494          if( pcSlice->getLayerId() > 0 )
    14951495          {
     
    20542054    UInt uiRealEndAddress = uiExternalAddress*pcPic->getNumPartInCU()+uiInternalAddress;
    20552055
    2056     UInt uiCummulativeTileWidth;
    2057     UInt uiCummulativeTileHeight;
    20582056    Int  p, j;
    20592057    UInt uiEncCUAddr;
    20602058
    2061     //set NumColumnsMinus1 and NumRowsMinus1
    2062     pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() );
    2063     pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() );
    2064 
    2065     //create the TComTileArray
    2066     pcPic->getPicSym()->xCreateTComTileArray();
    2067 
    2068     if( pcSlice->getPPS()->getUniformSpacingFlag() == 1 )
    2069     {
    2070       //set the width for each tile
    2071       for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++)
    2072       {
    2073         for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++)
    2074         {
    2075           pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->
    2076             setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1)
    2077             - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) );
    2078         }
    2079       }
    2080 
    2081       //set the height for each tile
    2082       for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++)
    2083       {
    2084         for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++)
    2085         {
    2086           pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->
    2087             setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1)
    2088             - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) );   
    2089         }
    2090       }
    2091     }
    2092     else
    2093     {
    2094       //set the width for each tile
    2095       for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++)
    2096       {
    2097         uiCummulativeTileWidth = 0;
    2098         for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1(); p++)
    2099         {
    2100           pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->setTileWidth( pcSlice->getPPS()->getColumnWidth(p) );
    2101           uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(p);
    2102         }
    2103         pcPic->getPicSym()->getTComTile(j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth );
    2104       }
    2105 
    2106       //set the height for each tile
    2107       for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++)
    2108       {
    2109         uiCummulativeTileHeight = 0;
    2110         for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1(); p++)
    2111         {
    2112           pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->setTileHeight( pcSlice->getPPS()->getRowHeight(p) );
    2113           uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(p);
    2114         }
    2115         pcPic->getPicSym()->getTComTile(p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight );
    2116       }
    2117     }
    2118     //intialize each tile of the current picture
    2119     pcPic->getPicSym()->xInitTiles();
     2059    pcPic->getPicSym()->initTiles(pcSlice->getPPS());
    21202060
    21212061#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     
    27832723
    27842724#if SETTING_NO_OUT_PIC_PRIOR
     2725          pcSlice->setNoRaslOutputFlag(false);
    27852726          if (pcSlice->isIRAP())
    27862727          {
     
    27902731            }
    27912732            //the inference for NoOutputPriorPicsFlag
     2733            // KJS: This cannot happen at the encoder
    27922734            if (!m_bFirst && pcSlice->isIRAP() && pcSlice->getNoRaslOutputFlag())
    27932735            {
     
    36793621  assert (m_iGopSize > 0);
    36803622 
    3681   return;
    3682 }
    3683 
    3684 Void TEncGOP::xInitGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut )
    3685 {
    3686   assert( iNumPicRcvd > 0 );
    3687   //  Exception for the first frame
    3688   if ( iPOCLast == 0 )
    3689   {
    3690     m_iGopSize    = 1;
    3691   }
    3692   else
    3693     m_iGopSize    = m_pcCfg->getGOPSize();
    3694  
    3695   assert (m_iGopSize > 0);
    3696 
    36973623  return;
    36983624}
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.h

    r815 r823  
    207207protected:
    208208 
    209   Void xInitGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, Bool isField );
    210   Void  xInitGOP          ( Int iPOC, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut );
    211   Void  xGetBuffer        ( TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, Int iNumPicRcvd, Int iTimeOffset, TComPic*& rpcPic, TComPicYuv*& rpcPicYuvRecOut, Int pocCurr, Bool isField );
     209  Void  xInitGOP          ( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, bool isField );
     210  Void  xGetBuffer        ( TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, Int iNumPicRcvd, Int iTimeOffset, TComPic*& rpcPic, TComPicYuv*& rpcPicYuvRecOut, Int pocCurr, bool isField );
    212211 
    213212  Void  xCalculateAddPSNR ( TComPic* pcPic, TComPicYuv* pcPicD, const AccessUnit&, Double dEncTime );
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncSearch.cpp

    r815 r823  
    48964896    if( bCodeChroma )
    48974897    {
     4898      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     4899      m_pcEntropyCoder->resetBits();
    48984900      m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode );
    48994901      m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U );
    4900       uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsY;
     4902      uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits();
    49014903     
     4904      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     4905      m_pcEntropyCoder->resetBits();
    49024906      m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode );
    49034907      m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V );
    4904       uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - ( uiSingleBitsY + uiSingleBitsU );
     4908      uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits();
    49054909    }
    49064910   
     
    49394943      {
    49404944        const Double singleCostY = m_pcRdCost->calcRdCost( uiSingleBitsY, uiNonzeroDistY );
     4945        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    49414946        m_pcEntropyCoder->resetBits();
    49424947        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA,     uiTrMode );
     
    49644969    else if( checkTransformSkipY )
    49654970    {
     4971      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    49664972      m_pcEntropyCoder->resetBits();
    49674973      m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA, uiTrMode );
     
    50155021        {
    50165022          const Double dSingleCostU = m_pcRdCost->calcRdCost( uiSingleBitsU, uiNonzeroDistU );
     5023          m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    50175024          m_pcEntropyCoder->resetBits();
    50185025          m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U,     uiTrMode );
     
    50405047      else if( checkTransformSkipUV )
    50415048      {
     5049        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    50425050        m_pcEntropyCoder->resetBits();
    50435051        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U, uiTrMode );
     
    50845092        {
    50855093          const Double dSingleCostV = m_pcRdCost->calcRdCost( uiSingleBitsV, uiNonzeroDistV );
     5094          m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    50865095          m_pcEntropyCoder->resetBits();
    50875096          m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V,     uiTrMode );
     
    51095118      else if( checkTransformSkipUV )
    51105119      {
     5120        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    51115121        m_pcEntropyCoder->resetBits();
    51125122        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V, uiTrMode );
     
    52875297      pcCU->setCbfSubParts( uiAbsSumTransformSkipV ? uiSetCbf : 0, TEXT_CHROMA_V, uiAbsPartIdx, pcCU->getDepth(0)+uiTrModeC );
    52885298
    5289       m_pcEntropyCoder->resetBits();
    52905299      uiSingleBitsU = 0;
    52915300      uiSingleBitsV = 0;
     
    52935302      if( uiAbsSumTransformSkipU )
    52945303      {
     5304        m_pcEntropyCoder->resetBits();
    52955305        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode );
    52965306        m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U );
     
    53355345      if( uiAbsSumTransformSkipV )
    53365346      {
     5347        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     5348        m_pcEntropyCoder->resetBits();
    53375349        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode );
    53385350        m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V );
    5339         uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsU;
     5351        uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits();
    53405352
    53415353        curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp

    r815 r823  
    10411041  {
    10421042    TComVUI* pcVUI = m_cSPS.getVuiParameters();
    1043     pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioIdc() != -1);
     1043    pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioInfoPresentFlag());
    10441044    pcVUI->setAspectRatioIdc(getAspectRatioIdc());
    10451045    pcVUI->setSarWidth(getSarWidth());
     
    14771477Void  TEncTop::xInitPPSforTiles()
    14781478{
    1479   m_cPPS.setUniformSpacingFlag( m_iUniformSpacingIdr );
    1480   m_cPPS.setNumColumnsMinus1( m_iNumColumnsMinus1 );
    1481   m_cPPS.setNumRowsMinus1( m_iNumRowsMinus1 );
    1482   if( m_iUniformSpacingIdr == 0 )
    1483   {
    1484     m_cPPS.setColumnWidth( m_puiColumnWidth );
    1485     m_cPPS.setRowHeight( m_puiRowHeight );
     1479  m_cPPS.setTileUniformSpacingFlag( m_tileUniformSpacingFlag );
     1480  m_cPPS.setNumTileColumnsMinus1( m_iNumColumnsMinus1 );
     1481  m_cPPS.setNumTileRowsMinus1( m_iNumRowsMinus1 );
     1482  if( !m_tileUniformSpacingFlag )
     1483  {
     1484    m_cPPS.setTileColumnWidth( m_tileColumnWidth );
     1485    m_cPPS.setTileRowHeight( m_tileRowHeight );
    14861486  }
    14871487  m_cPPS.setLoopFilterAcrossTilesEnabledFlag( m_loopFilterAcrossTilesEnabledFlag );
    14881488
    14891489  // # substreams is "per tile" when tiles are independent.
    1490   if (m_iWaveFrontSynchro
    1491     )
     1490  if (m_iWaveFrontSynchro )
    14921491  {
    14931492    m_cPPS.setNumSubstreams(m_iWaveFrontSubstreams * (m_iNumColumnsMinus1+1));
     
    15151514  }
    15161515
    1517   if( m_iNumColumnsMinus1 && m_iUniformSpacingIdr==0 )
     1516  if( m_iNumColumnsMinus1 && !m_tileUniformSpacingFlag )
    15181517  {
    15191518    for(Int i=0; i<m_iNumColumnsMinus1; i++)
    15201519    {
    1521       uiCummulativeColumnWidth += m_puiColumnWidth[i];
     1520      uiCummulativeColumnWidth += m_tileColumnWidth[i];
    15221521    }
    15231522
     
    15421541  }
    15431542
    1544   if( m_iNumRowsMinus1 && m_iUniformSpacingIdr==0 )
     1543  if( m_iNumRowsMinus1 && !m_tileUniformSpacingFlag )
    15451544  {
    15461545    for(Int i=0; i<m_iNumRowsMinus1; i++)
    1547     {
    1548       uiCummulativeRowHeight += m_puiRowHeight[i];
    1549     }
     1546      uiCummulativeRowHeight += m_tileRowHeight[i];
    15501547
    15511548    if( uiCummulativeRowHeight >= iHeightInCU )
Note: See TracChangeset for help on using the changeset viewer.