Changeset 950 in 3DVCSoftware for trunk/source/Lib/TLibEncoder
- Timestamp:
- 25 Apr 2014, 12:38:00 (11 years ago)
- Location:
- trunk/source/Lib/TLibEncoder
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r884 r950 272 272 WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag"); 273 273 274 #if MTK_DLT_CODING_FIX_H0091 275 if(( !pcPPS->getSPS()->getVPS()->getDepthId( pcPPS->getSPS()->getLayerId() ) )|| 276 pcPPS->getLayerId() != 1 ) 277 { 278 pcPPS->setPpsExtensionTypeFlag( PPS_EX_T_3D, false ); 279 } 280 #endif 281 274 282 #if !H_MV 275 283 WRITE_FLAG( 0, "pps_extension_flag" ); -
trunk/source/Lib/TLibEncoder/TEncCfg.h
r884 r950 401 401 #if H_3D_IC 402 402 Bool m_bUseIC; 403 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 404 Bool m_bUseICLowLatencyEnc; 405 #endif 403 406 #endif 404 407 #if H_3D_INTER_SDC … … 511 514 Void setUseIC ( Bool bVal ) { m_bUseIC = bVal; } 512 515 Bool getUseIC () { return m_bUseIC; } 516 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 517 Void setUseICLowLatencyEnc ( Bool bVal ) { m_bUseICLowLatencyEnc = bVal; } 518 Bool getUseICLowLatencyEnc () { return m_bUseICLowLatencyEnc; } 519 #endif 513 520 #endif 514 521 #if H_3D_INTER_SDC -
trunk/source/Lib/TLibEncoder/TEncCu.cpp
r884 r950 1814 1814 rpcTempCU->initAvailableFlags(); 1815 1815 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1816 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo 1816 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 1817 #if !ETRIKHU_CLEANUP_H0083 1818 , vspFlag 1819 #endif 1820 , inheritedVSPDisInfo 1817 1821 #if H_3D_SPIVMP 1818 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 1822 #if !ETRIKHU_CLEANUP_H0083_MISSING 1823 , bSPIVMPFlag 1824 #endif 1825 , pcMvFieldSP, puhInterDirSP 1819 1826 #endif 1820 1827 , numValidMergeCand 1821 1828 ); 1829 1830 #if ETRIKHU_CLEANUP_H0083 1831 rpcTempCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours, vspFlag 1832 #if H_3D_SPIVMP 1833 , bSPIVMPFlag 1834 #endif 1835 , numValidMergeCand 1836 ); 1837 #endif 1838 1822 1839 #else 1823 1840 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand ); … … 2383 2400 pDBBPTmpData->auhMergeIndex[uiSegment] = rpcTempCU->getMergeIndex(0); 2384 2401 2402 #if RWTH_DBBP_NO_SPU_H0057 2403 AOF( rpcTempCU->getSPIVMPFlag(0) == false ); 2404 AOF( rpcTempCU->getVSPFlag(0) == 0 ); 2405 #else 2385 2406 pDBBPTmpData->ahVSPFlag[uiSegment] = rpcTempCU->getVSPFlag(0); 2386 2407 pDBBPTmpData->acDvInfo[uiSegment] = rpcTempCU->getDvInfo(0); 2408 #endif 2387 2409 2388 2410 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 2416 2438 rpcTempCU->setMergeIndexSubParts(pDBBPTmpData->auhMergeIndex[uiSegment], uiPartAddr, uiSegment, uhDepth); 2417 2439 2440 #if !RWTH_DBBP_NO_SPU_H0057 2418 2441 rpcTempCU->setVSPFlagSubParts(pDBBPTmpData->ahVSPFlag[uiSegment], uiPartAddr, uiSegment, uhDepth); 2419 2442 rpcTempCU->setDvInfoSubParts(pDBBPTmpData->acDvInfo[uiSegment], uiPartAddr, uiSegment, uhDepth); 2443 #endif 2420 2444 2421 2445 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) -
trunk/source/Lib/TLibEncoder/TEncEntropy.cpp
r884 r950 163 163 uiAbsPartIdx = 0; 164 164 } 165 165 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 166 else 167 { 168 g_aICEnableCANDIDATE[pcCU->getSlice()->getDepth()]++; 169 if(pcCU->getICFlag(uiAbsPartIdx)) 170 { 171 g_aICEnableNUM[pcCU->getSlice()->getDepth()]++; 172 } 173 } 174 #endif 166 175 if( pcCU->isICFlagRequired( uiAbsPartIdx ) ) 167 176 m_pcEntropyCoderIf->codeICFlag( pcCU, uiAbsPartIdx ); … … 246 255 247 256 #if H_3D_DBBP 257 258 #if MTK_DBBP_SIGNALING_H0094 259 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ) 260 #else 248 261 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getPartitionSize(uiAbsPartIdx) == RWTH_DBBP_PACK_MODE ) 262 #endif 249 263 { 250 264 encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD); … … 252 266 if( pcCU->getDBBPFlag(uiAbsPartIdx) ) 253 267 { 268 #if !MTK_DBBP_SIGNALING_H0094 254 269 AOF( pcCU->getPartitionSize(uiAbsPartIdx) == RWTH_DBBP_PACK_MODE ); 270 #endif 255 271 // restore virtual partition size for DBBP blocks 256 272 pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth); … … 274 290 return; 275 291 } 292 #if !MTK_SDC_FLAG_FIX_H0095 276 293 #if H_3D_DIM_SDC 277 294 if( pcCU->getSDCFlag(uiAbsPartIdx) ) … … 279 296 return; 280 297 } 298 #endif 281 299 #endif 282 300 -
trunk/source/Lib/TLibEncoder/TEncSbac.cpp
r884 r950 93 93 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 94 94 , m_cAngleFlagSCModel ( 1, 1, NUM_ANGLE_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 95 #if H_3D_DIM_DMM 95 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 96 96 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 97 97 #endif … … 169 169 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 170 170 m_cAngleFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG ); 171 #if H_3D_DIM_DMM 171 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 172 172 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 173 173 #endif … … 255 255 curCost += m_cDdcDataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DDC_DATA ); 256 256 curCost += m_cAngleFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_ANGLE_FLAG ); 257 #if H_3D_DIM_DMM 257 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 258 258 curCost += m_cDmm1DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM1_DATA ); 259 259 #endif … … 319 319 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 320 320 m_cAngleFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG ); 321 #if H_3D_DIM_DMM 321 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 322 322 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 323 323 #endif … … 482 482 m_pcBinIf->encodeBin( 1, rcSCModel ); 483 483 UInt uiCount = 0; 484 #if QC_SIMP_DELTADC_CODING_H0131 485 Bool bNoExGo = ( uiSymbol < 3 ); 486 487 while( --uiSymbol && ++uiCount < 3 ) 488 #else 484 489 Bool bNoExGo = (uiSymbol < 13); 485 490 486 491 while( --uiSymbol && ++uiCount < 13 ) 492 #endif 487 493 { 488 494 m_pcBinIf->encodeBin( 1, rcSCModel ); … … 520 526 for ( Int i = 0; i < iNumBit; i++ ) 521 527 { 528 #if MTK_DMM_SIMP_CODE_H0092 529 m_pcBinIf->encodeBinEP( ( uiTabIdx >> i ) & 1 ); 530 #else 522 531 m_pcBinIf->encodeBin( ( uiTabIdx >> i ) & 1, m_cDmm1DataSCModel.get(0, 0, 0) ); 532 #endif 523 533 } 524 534 } … … 1233 1243 if( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() >> pcCU->getDepth( absPartIdx ) ) < 64 ) //DMM and HEVC intra modes are both allowed 1234 1244 { 1245 #if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 1246 m_pcBinIf->encodeBin( isDimMode( dir ) ? 0 : 1, m_cAngleFlagSCModel.get( 0, 0, 0 ) ); 1247 #else 1235 1248 m_pcBinIf->encodeBin( isDimMode( dir ) ? 0 : 1, m_cAngleFlagSCModel.get( 0, 0, pcCU->getCtxAngleFlag( absPartIdx ) ) ); 1249 #endif 1236 1250 } 1237 1251 if( isDimMode( dir ) ) … … 2313 2327 dimDeltaDC = isDimDeltaDC( dir ); 2314 2328 } 2315 2329 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113 2330 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2331 #else 2316 2332 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) ); 2333 #endif 2317 2334 } 2318 2335 else //all-zero inter SDC is not allowed … … 2356 2373 Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2357 2374 { 2375 #if !MTK_DBBP_SIGNALING_H0094 2358 2376 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2359 2377 AOF( ePartSize == RWTH_DBBP_PACK_MODE ); 2378 #endif 2360 2379 AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ); 2361 2380 AOF( !pcCU->getSlice()->getIsDepth() ); -
trunk/source/Lib/TLibEncoder/TEncSbac.h
r884 r950 258 258 ContextModel3DBuffer m_cDdcDataSCModel; 259 259 ContextModel3DBuffer m_cAngleFlagSCModel; 260 #if H_3D_DIM_DMM 260 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 261 261 ContextModel3DBuffer m_cDmm1DataSCModel; 262 262 #endif -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r884 r950 1146 1146 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1147 1147 { 1148 #if H_3D_DIM 1148 #if H_3D_DIM && !SEC_NO_RESI_DLT_H0105 1149 1149 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1150 1150 { … … 1221 1221 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1222 1222 { 1223 #if H_3D_DIM 1223 #if H_3D_DIM && !SEC_NO_RESI_DLT_H0105 1224 1224 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1225 1225 { … … 1989 1989 // get DC prediction for each segment 1990 1990 Pel apDCPredValues[2]; 1991 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 1992 if ( getDimType( uiLumaPredMode ) == DMM1_IDX || getDimType( uiLumaPredMode ) == DMM4_IDX ) 1993 { 1994 apDCPredValues[0] = pcCU->getDmmPredictor( 0 ); 1995 apDCPredValues[1] = pcCU->getDmmPredictor( 1 ); 1996 } 1997 else 1998 #endif 1991 1999 analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode ); 1992 2000 … … 3666 3674 pcCU->setInterDirSubParts(pDBBPTmpData->auhInterDir[0], 0, 0, pcCU->getDepth(0)); // interprets depth relative to LCU level 3667 3675 3676 #if !RWTH_DBBP_NO_SPU_H0057 3668 3677 pcCU->setVSPFlagSubParts(pDBBPTmpData->ahVSPFlag[0], 0, 0, pcCU->getDepth(0)); 3669 3678 pcCU->setDvInfoSubParts(pDBBPTmpData->acDvInfo[0], 0, 0, pcCU->getDepth(0)); 3679 #endif 3670 3680 3671 3681 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 3697 3707 pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 3698 3708 #if H_3D_VSP 3709 #if !ETRIKHU_CLEANUP_H0083 3699 3710 , vspFlag 3711 #endif 3700 3712 , inheritedVSPDisInfo 3701 3713 #endif 3702 3714 #if H_3D_SPIVMP 3703 , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP 3715 #if !ETRIKHU_CLEANUP_H0083_MISSING 3716 , pbSPIVMPFlag 3717 #endif 3718 , pcMvFieldSP, puhInterDirSP 3719 #endif 3720 , numValidMergeCand 3721 ); 3722 3723 #if ETRIKHU_CLEANUP_H0083 3724 pcCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours 3725 #if H_3D_VSP 3726 , vspFlag 3727 #endif 3728 #if H_3D_SPIVMP 3729 , pbSPIVMPFlag 3704 3730 #endif 3705 3731 , numValidMergeCand 3706 3732 ); 3733 #endif 3707 3734 #else 3708 3735 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); … … 3718 3745 pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 3719 3746 #if H_3D_VSP 3747 #if !ETRIKHU_CLEANUP_H0083 3720 3748 , vspFlag 3749 #endif 3721 3750 , inheritedVSPDisInfo 3722 3751 #endif 3723 3752 #if H_3D_SPIVMP 3724 , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP 3753 #if !ETRIKHU_CLEANUP_H0083_MISSING 3754 , pbSPIVMPFlag 3755 #endif 3756 , pcMvFieldSP, puhInterDirSP 3757 #endif 3758 , numValidMergeCand 3759 ); 3760 3761 #if ETRIKHU_CLEANUP_H0083 3762 pcCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 3763 #if H_3D_VSP 3764 , vspFlag 3765 #endif 3766 #if H_3D_SPIVMP 3767 , pbSPIVMPFlag 3725 3768 #endif 3726 3769 , numValidMergeCand 3727 3770 ); 3771 #endif 3728 3772 #else 3729 3773 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r872 r950 866 866 ) 867 867 { 868 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 869 pcSlice ->xSetApplyIC(pcEncTop->getUseICLowLatencyEnc()); 870 #else 868 871 pcSlice ->xSetApplyIC(); 872 #endif 869 873 if ( pcSlice->getApplyIC() ) 870 874 {
Note: See TracChangeset for help on using the changeset viewer.