Ticket #651: 20120806-bug-fix.patch

File 20120806-bug-fix.patch, 1.6 KB (added by kchono, 9 years ago)
  • source/Lib/TLibDecoder/TDecCu.cpp

     
    287287    pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
    288288  }
    289289
    290   if (pcCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())
     290  if (pcCU->getSlice()->getPPS()->getTransquantBypassEnableFlag() && pcCU->getNumSucIPCM() == 0 )
    291291  {
    292292    m_pcEntropyDecoder->decodeCUTransquantBypassFlag( pcCU, uiAbsPartIdx, uiDepth );
    293293  }
  • source/Lib/TLibEncoder/TEncCu.cpp

     
    14701470{
    14711471  UInt uiDepth = rpcTempCU->getDepth( 0 );
    14721472
     1473  rpcTempCU->setCUTransquantBypassSubParts(false, 0, uiDepth);
     1474
    14731475#if SKIP_FLAG
    14741476  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    14751477#endif
  • source/Lib/TLibEncoder/TEncEntropy.cpp

     
    134134
    135135Void TEncEntropy::encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    136136{
     137  if( bRD )
     138  {
     139    uiAbsPartIdx = 0;
     140  }
     141  if( !bRD )
     142  {
     143    if( pcCU->getLastCUSucIPCMFlag() && pcCU->getIPCMFlag(uiAbsPartIdx) )
     144    {
     145      return;
     146    }
     147  }
    137148  m_pcEntropyCoderIf->codeCUTransquantBypassFlag( pcCU, uiAbsPartIdx );
    138149}
    139150