Ticket #180: fix180.patch

File fix180.patch, 5.3 KB (added by hao, 13 years ago)

Same fix in patch format.

  • source/Lib/TLibDecoder/TDecEntropy.cpp

     
    10191019        decodeQP( pcCU, ((uiAbsPartIdx>>(8-(pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()<<1)))<<(8-(pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()<<1))),
    10201020          min(uiDepth,pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()) );
    10211021        pcCU->setdQPFlag(false);
     1022#if !FIX_TICKET180
    10221023        pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     1024#endif
    10231025#else
    10241026        decodeQP( pcCU, 0, 0 );
    10251027        pcCU->setdQPFlag(false);
  • source/Lib/TLibDecoder/TDecCu.cpp

     
    223223      if( pcCU->getdQPFlag())
    224224      {
    225225        pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
     226#if !FIX_TICKET180
    226227        pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     228#endif
    227229      }
     230#if FIX_TICKET180
     231      pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     232#endif
    228233    }
    229234#endif
    230235   
     
    295300    if( (g_uiMaxCUWidth>>uiDepth) >= pcCU->getSlice()->getPPS()->getMinCuDQPSize() && pcCU->getSlice()->getSPS()->getUseDQP())
    296301    {
    297302      pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
     303#if FIX_TICKET180
     304      pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     305#else
    298306      pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     307#endif
    299308    }
    300309#endif
    301310    return;
     
    310319
    311320    if(pcCU->getIPCMFlag(uiAbsPartIdx))
    312321    {
     322#if SUB_LCU_DQP && FIX_TICKET180
     323      if( (g_uiMaxCUWidth>>uiDepth) >= pcCU->getSlice()->getPPS()->getMinCuDQPSize() && pcCU->getSlice()->getSPS()->getUseDQP())
     324      {
     325        pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
     326        pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     327      }
     328#endif
    313329      return;
    314330    }
    315331  }
     
    330346    if( pcCU->getdQPFlag())
    331347    {
    332348      pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
     349#if !FIX_TICKET180
    333350      pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     351#endif
    334352    }
     353#if FIX_TICKET180
     354    pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     355#endif
    335356  }
    336357#endif
    337358}
  • source/Lib/TLibEncoder/TEncEntropy.cpp

     
    10131013        pcCU->setdQPFlag(false);
    10141014        pcCU->setQPSubParts( pcCU->getQP( uiAbsPartIdx ), ((uiAbsPartIdx>>(8-(pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()<<1)))<<(8-(pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()<<1))),
    10151015          min(uiDepth,pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()) ); // set QP to default QP
     1016#if !FIX_TICKET180
    10161017        pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     1018#endif
    10171019#else
    10181020        encodeQP( pcCU, 0 );
    10191021        pcCU->setdQPFlag(false);
  • source/Lib/TLibEncoder/TEncCu.cpp

     
    952952#if SUB_LCU_DQP
    953953    if( (g_uiMaxCUWidth>>uiDepth) == pcCU->getSlice()->getPPS()->getMinCuDQPSize() && pcCU->getSlice()->getSPS()->getUseDQP())
    954954    {
     955#if FIX_TICKET180
     956      uiAbsPartIdx -= uiQNumParts * 4;
     957#endif
    955958      if( pcCU->getdQPFlag())
    956959      {
     960#if !FIX_TICKET180
    957961        uiAbsPartIdx -= uiQNumParts * 4;
     962#endif
    958963        pcCU->setQPSubParts( pcCU->getRefQP( uiAbsPartIdx ), uiAbsPartIdx, uiDepth ); // set QP to default QP
     964#if !FIX_TICKET180
    959965        pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     966#endif
    960967      }
     968#if FIX_TICKET180
     969      pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     970#endif
    961971    }
    962972#endif
    963973    return;
     
    10021012    if( (g_uiMaxCUWidth>>uiDepth) >= pcCU->getSlice()->getPPS()->getMinCuDQPSize() && pcCU->getSlice()->getSPS()->getUseDQP())
    10031013    {
    10041014      pcCU->setQPSubParts( pcCU->getRefQP( uiAbsPartIdx ), uiAbsPartIdx, uiDepth ); // set QP to default QP
     1015#if FIX_TICKET180
     1016      pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     1017#else
    10051018      pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     1019#endif
    10061020    }
    10071021#endif
    10081022    return;
     
    10181032
    10191033    if(pcCU->getIPCMFlag(uiAbsPartIdx))
    10201034    {
     1035#if SUB_LCU_DQP && FIX_TICKET180
     1036      if( (g_uiMaxCUWidth>>uiDepth) >= pcCU->getSlice()->getPPS()->getMinCuDQPSize() && pcCU->getSlice()->getSPS()->getUseDQP())
     1037      {
     1038        pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
     1039        pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     1040      }
     1041#endif
    10211042      return;
    10221043    }
    10231044  }
     
    10351056    if( pcCU->getdQPFlag())
    10361057    {
    10371058      pcCU->setQPSubParts( pcCU->getRefQP( uiAbsPartIdx ), uiAbsPartIdx, uiDepth ); // set QP to default QP
     1059#if !FIX_TICKET180
    10381060      pcCU->setLastCodedQP( pcCU->getRefQP( uiAbsPartIdx ));
     1061#endif
    10391062    }
     1063#if FIX_TICKET180
     1064    pcCU->setLastCodedQP( pcCU->getQP( uiAbsPartIdx ));
     1065#endif
    10401066  }
    10411067#endif
    10421068}