Ticket #315: 20120207-HM-5.1-dev-cleanup-dqp-wrap.patch
File 20120207-HM-5.1-dev-cleanup-dqp-wrap.patch, 3.5 KB (added by kchono, 11 years ago) |
---|
-
source/Lib/TLibCommon/TypeDef.h
155 155 156 156 #define G678_LAMBDA_ADJUSTMENT 1 ///< G678: lambda adjustment for rate-constrained test tool 157 157 158 #define FIX_CU_DQP_WRAP 1 ///< Fix wrapping of cu_qp_delta 159 #if FIX_CU_DQP_WRAP 160 #define RESET_QP_OFFSET 1 ///< This macro shall be set equal to 0 or removed when JCTVC-H0400 is integrated. 161 #endif 162 158 163 //////////////////////////// 159 164 // JCT-VC G end 160 165 //////////////////////////// -
source/Lib/TLibDecoder/TDecCAVLC.cpp
2157 2157 Int iDQp; 2158 2158 2159 2159 xReadSvlc( iDQp ); 2160 2161 #if FIX_CU_DQP_WRAP 2162 UInt uiQpBdOffsetY = 6*(g_uiBitIncrement + g_uiBitDepth - 8); 2163 #if RESET_QP_OFFSET 2164 uiQpBdOffsetY = 0; 2165 #endif 2166 uiQp = (((Int) pcCU->getRefQP( uiAbsPartIdx ) + iDQp + 52 + 2*uiQpBdOffsetY )%(52+uiQpBdOffsetY)) - uiQpBdOffsetY; 2167 #else 2160 2168 uiQp = pcCU->getRefQP( uiAbsPartIdx ) + iDQp; 2169 #endif 2161 2170 2162 2171 UInt uiAbsQpCUPartIdx = (uiAbsPartIdx>>(8-(pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()<<1)))<<(8-(pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()<<1)) ; 2163 2172 UInt uiQpCUDepth = min(uiDepth,pcCU->getSlice()->getPPS()->getMaxCuDQPDepth()) ; -
source/Lib/TLibDecoder/TDecSbac.cpp
1281 1281 iDQp = -iDQp; 1282 1282 } 1283 1283 #endif 1284 1285 #if FIX_CU_DQP_WRAP 1286 #if !F745_DQP_BINARIZATION 1287 UInt uiQpBdOffsetY = 6*(g_uiBitIncrement + g_uiBitDepth - 8); 1288 #endif 1289 #if RESET_QP_OFFSET 1290 uiQpBdOffsetY = 0; 1291 #endif 1292 uiDQp = (((Int) pcCU->getRefQP( uiAbsPartIdx ) + iDQp + 52 + 2*uiQpBdOffsetY )%(52+uiQpBdOffsetY)) - uiQpBdOffsetY; 1293 #else 1284 1294 uiDQp = pcCU->getRefQP(uiAbsPartIdx) + iDQp; 1295 #endif 1285 1296 1286 1297 } 1287 1298 -
source/Lib/TLibEncoder/TEncCavlc.cpp
1776 1776 { 1777 1777 Int iDQp = pcCU->getQP( uiAbsPartIdx ) - pcCU->getRefQP( uiAbsPartIdx ); 1778 1778 1779 #if FIX_CU_DQP_WRAP 1780 UInt uiQpBdOffsetY = 6*(g_uiBitIncrement + g_uiBitDepth - 8); 1781 #if RESET_QP_OFFSET 1782 uiQpBdOffsetY = 0; 1783 #endif 1784 iDQp = (iDQp + 78 + uiQpBdOffsetY + (uiQpBdOffsetY/2)) % (52 + uiQpBdOffsetY) - 26 - (uiQpBdOffsetY/2); 1785 #endif 1786 1779 1787 xWriteSvlc( iDQp ); 1780 1788 1781 1789 return; -
source/Lib/TLibEncoder/TEncSbac.cpp
1111 1111 Void TEncSbac::codeDeltaQP( TComDataCU* pcCU, UInt uiAbsPartIdx ) 1112 1112 { 1113 1113 Int iDQp = pcCU->getQP( uiAbsPartIdx ) - pcCU->getRefQP( uiAbsPartIdx ); 1114 1114 1115 #if FIX_CU_DQP_WRAP 1116 { 1117 UInt uiQpBdOffsetY = 6*(g_uiBitIncrement + g_uiBitDepth - 8); 1118 #if RESET_QP_OFFSET 1119 uiQpBdOffsetY = 0; 1120 #endif 1121 iDQp = (iDQp + 78 + uiQpBdOffsetY + (uiQpBdOffsetY/2)) % (52 + uiQpBdOffsetY) - 26 - (uiQpBdOffsetY/2); 1122 } 1123 #endif 1124 1115 1125 if ( iDQp == 0 ) 1116 1126 { 1117 1127 m_pcBinIf->encodeBin( 0, m_cCUDeltaQpSCModel.get( 0, 0, 0 ) );