Changeset 994 in 3DVCSoftware
- Timestamp:
- 15 Jul 2014, 15:44:07 (10 years ago)
- Location:
- branches/HTM-11.2-dev3-HiSilicon
- Files:
-
- 3 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TComDataCU.cpp
r983 r994 2677 2677 } 2678 2678 2679 #if HS_DMM_SIGNALLING_I0120 2680 if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) ) 2681 #else 2679 2682 if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) && !isDimDeltaDC( getLumaIntraDir( uiAbsPartIdx ) ) ) 2683 #endif 2680 2684 { 2681 2685 return true; … … 2690 2694 // check prediction mode 2691 2695 UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 2696 #if HS_DMM_SIGNALLING_I0120 2697 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX ) ) 2698 #else 2692 2699 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) ) 2700 #endif 2693 2701 return true; 2694 2702 -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TComPrediction.cpp
r976 r994 423 423 424 424 UInt dimType = getDimType ( uiIntraMode ); 425 Bool dimDeltaDC = isDimDeltaDC( uiIntraMode ); 425 #if !HS_DMM_SIGNALLING_I0120 426 Bool dimDeltaDC = isDimDeltaDC( uiIntraMode ); 427 #endif 426 428 Bool isDmmMode = (dimType < DMM_NUM_TYPE); 427 429 … … 474 476 Pel segDC1 = 0; 475 477 Pel segDC2 = 0; 478 #if HS_DMM_SIGNALLING_I0120 479 if( !pcCU->getSDCFlag( uiAbsPartIdx ) ) 480 #else 476 481 if( dimDeltaDC ) 482 #endif 477 483 { 478 484 Pel deltaDC1 = pcCU->getDimDeltaDC( dimType, 0, uiAbsPartIdx ); -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TComWedgelet.h
r773 r994 58 58 #define DIM_NO_IDX MAX_UINT 59 59 60 #if HS_DMM_SIGNALLING_I0120 61 __inline UInt getDimType ( Int intraMode ) 62 { 63 Int dimType = intraMode-DIM_OFFSET; 64 return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; 65 } 66 #else 60 67 __inline UInt getDimType ( Int intraMode ) { Int dimType = (intraMode-DIM_OFFSET)/2; return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; } 68 #endif 61 69 __inline Bool isDimMode ( Int intraMode ) { return (getDimType( intraMode ) < DIM_NUM_TYPE); } 70 #if !HS_DMM_SIGNALLING_I0120 62 71 __inline Bool isDimDeltaDC( Int intraMode ) { return (isDimMode( intraMode ) && ((intraMode-DIM_OFFSET)%2) == 1); } 72 #endif 63 73 #endif 64 74 -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TypeDef.h
r993 r994 294 294 #define H_3D_DIM_SDC 1 // Simplified Depth Coding method 295 295 #define H_3D_DIM_DLT 1 // Depth Lookup Table 296 #define HS_DMM_SIGNALLING_I0120 1 296 297 297 298 #if H_3D_DIM_DLT -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibDecoder/TDecSbac.cpp
r983 r994 1194 1194 if( !uiSymbol ) 1195 1195 { 1196 #if HS_DMM_SIGNALLING_I0120 1197 pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth ); 1198 #else 1196 1199 pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth ); 1200 #endif 1197 1201 } 1198 1202 else 1199 1203 { 1204 #if HS_DMM_SIGNALLING_I0120 1205 pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth ); 1206 #else 1200 1207 pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth ); 1208 #endif 1201 1209 } 1202 1210 } … … 2112 2120 } 2113 2121 2122 #if HS_DMM_SIGNALLING_I0120 2123 UInt symbol = 1; 2124 UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1; 2125 #else 2114 2126 UInt symbol = 0; 2115 2127 UInt uiNumSegments = 0; 2116 2128 #endif 2129 2130 #if HS_DMM_SIGNALLING_I0120 2131 if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx )) 2132 { 2133 #else 2117 2134 if( pcCU->isIntra( absPartIdx ) ) 2118 2135 { 2119 2136 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 2120 2137 uiNumSegments = isDimMode( dir ) ? 2 : 1; 2138 #endif 2121 2139 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2140 #if !HS_DMM_SIGNALLING_I0120 2122 2141 if( pcCU->getSDCFlag( absPartIdx ) ) 2123 2142 { 2143 #endif 2124 2144 assert( pcCU->getPartitionSize( absPartIdx ) == SIZE_2Nx2N ); 2125 2145 pcCU->setTrIdxSubParts( 0, absPartIdx, depth ); 2126 2146 pcCU->setCbfSubParts( 1, 1, 1, absPartIdx, depth ); 2127 2147 } 2148 #if !HS_DMM_SIGNALLING_I0120 2128 2149 else 2129 2150 { … … 2136 2157 symbol = 1; 2137 2158 } 2159 #endif 2138 2160 2139 2161 -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibEncoder/TEncSbac.cpp
r983 r994 2324 2324 } 2325 2325 2326 #if HS_DMM_SIGNALLING_I0120 2327 UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1; 2328 UInt dimDeltaDC = 1; 2329 #else 2326 2330 UInt uiNumSegments = 0; 2327 2331 UInt dimDeltaDC = 0; 2328 2332 #endif 2333 2334 #if HS_DMM_SIGNALLING_I0120 2335 if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx )) 2336 { 2337 #else 2329 2338 if( pcCU->isIntra( absPartIdx ) ) 2330 2339 { … … 2334 2343 if( pcCU->getSDCFlag( absPartIdx ) ) 2335 2344 { 2345 #endif 2336 2346 if( uiNumSegments == 1 ) 2337 2347 { … … 2342 2352 dimDeltaDC = ( pcCU->getSDCSegmentDCOffset( 0, absPartIdx ) || pcCU->getSDCSegmentDCOffset( 1, absPartIdx ) ) ? 1 : 0; 2343 2353 } 2354 #if !HS_DMM_SIGNALLING_I0120 2344 2355 } 2345 2356 else … … 2347 2358 dimDeltaDC = isDimDeltaDC( dir ); 2348 2359 } 2360 #endif 2349 2361 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2350 2362 } 2363 #if !HS_DMM_SIGNALLING_I0120 2351 2364 else //all-zero inter SDC is not allowed 2352 2365 { … … 2354 2367 dimDeltaDC = 1; 2355 2368 } 2369 #endif 2356 2370 2357 2371 if( dimDeltaDC ) -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibEncoder/TEncSearch.cpp
r993 r994 3157 3157 pcCU->setDimDeltaDC( dmmType, 1, uiPartOffset, deltaDC2 ); 3158 3158 3159 #if HS_DMM_SIGNALLING_I0120 3160 uiRdModeList[ numModesForFullRD++ ] = (dmmType +DIM_OFFSET); 3161 #else 3159 3162 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType +DIM_OFFSET); 3160 3163 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET); 3164 #endif 3161 3165 3162 3166 if( DMM4_IDX == dmmType ) { biSegmentation->destroy(); delete biSegmentation; } … … 3213 3217 if (uiMode < numModesForFullRD) 3214 3218 { 3215 3219 uiOrgMode = uiRdModeList[uiMode]; 3216 3220 } 3217 3221 else … … 3226 3230 { 3227 3231 if (uiOrgMode != uiBestPUModeConv && uiOrgMode != uiSecondBestPUModeConv && uiOrgMode != uiThirdBestPUModeConv 3228 && uiOrgMode > 1 && uiOrgMode < NUM_INTRA_MODE && varCU < 4)3232 && uiOrgMode > 1 && uiOrgMode < NUM_INTRA_MODE && varCU < 4) 3229 3233 continue; 3230 3234 }
Note: See TracChangeset for help on using the changeset viewer.