Changeset 939 in 3DVCSoftware
- Timestamp:
- 22 Apr 2014, 17:08:54 (11 years ago)
- Location:
- branches/HTM-10.2-dev0
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-10.2-dev0/cfg/3D-HEVC/baseCfg_2view+depth.cfg
r872 r939 198 198 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 199 199 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 200 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 200 201 ViewSynthesisPred : 1 # View synthesis prediction 201 202 DepthRefinement : 1 # Dispary refined by depth DoNBDV -
branches/HTM-10.2-dev0/cfg/3D-HEVC/baseCfg_2view.cfg
r872 r939 173 173 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 174 174 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 175 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 175 176 ViewSynthesisPred : 1 # View synthesis prediction 176 177 DepthRefinement : 1 # Dispary refined by depth DoNBDV -
branches/HTM-10.2-dev0/cfg/3D-HEVC/baseCfg_3view+depth.cfg
r872 r939 229 229 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 230 230 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 231 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 231 232 ViewSynthesisPred : 1 # View synthesis prediction 232 233 DepthRefinement : 1 # Dispary refined by depth DoNBDV -
branches/HTM-10.2-dev0/cfg/3D-HEVC/baseCfg_3view.cfg
r872 r939 188 188 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 189 189 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 190 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 190 191 ViewSynthesisPred : 0 # View synthesis prediction 191 192 DepthRefinement : 0 # Dispary refined by depth DoNBDV -
branches/HTM-10.2-dev0/cfg/3D-HEVC/fullCfg.cfg
r872 r939 253 253 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 254 254 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 255 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 255 256 ViewSynthesisPred : 1 # View synthesis prediction 256 257 DepthRefinement : 1 # Dispary refined by depth DoNBDV -
branches/HTM-10.2-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r884 r939 517 517 #if H_3D_IC 518 518 ("IlluCompEnable", m_abUseIC, true, "Enable illumination compensation") 519 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 520 ("IlluCompLowLatencyEnc", m_bUseLowLatencyICEnc, false, "Enable low-latency illumination compensation encoding") 521 #endif 519 522 #endif 520 523 #if H_3D_INTER_SDC … … 2479 2482 #if H_3D_IC 2480 2483 printf( "IlluCompEnable:%d ", m_abUseIC); 2484 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 2485 printf ("IlluCompLowLatencyEnc:%d ", m_bUseLowLatencyICEnc); 2486 #endif 2481 2487 #endif 2482 2488 #if H_3D_NBDV_REF -
branches/HTM-10.2-dev0/source/App/TAppEncoder/TAppEncCfg.h
r884 r939 137 137 #if H_3D_IC 138 138 Bool m_abUseIC; 139 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 140 Bool m_bUseLowLatencyICEnc; 141 #endif 139 142 #endif 140 143 #if H_3D_NBDV_REF -
branches/HTM-10.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r884 r939 178 178 m_cTEncTop.setDWeight ( isDepth ? m_iDWeight : 0 ); 179 179 #endif // H_3D_VSO 180 #if H_3D_ARP181 180 //====== Advanced Inter-view Residual Prediction ========= 182 181 m_cTEncTop.setUseAdvRP ( ( isDepth || 0==layerIdInVps ) ? 0 : m_uiUseAdvResPred ); … … 189 188 #if H_3D_IC 190 189 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC ); 190 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 191 m_cTEncTop.setUseICLowLatencyEnc ( m_bUseLowLatencyICEnc ); 192 #endif 191 193 #endif 192 194 //========== Depth intra modes ========== … … 1793 1795 1794 1796 #if H_3D_ARP 1797 #if QC_IV_PRED_CONSTRAINT_H0137 1798 vps.setUseAdvRP ( layer, ( isDepth || isLayerZero || !vps.getNumDirectRefLayers(layer) ) ? 0 : m_uiUseAdvResPred ); 1799 vps.setARPStepNum ( layer, ( isDepth || isLayerZero || !vps.getNumDirectRefLayers(layer) ) ? 1 : H_3D_ARP_WFNR ); 1800 #else 1795 1801 vps.setUseAdvRP ( layer, ( isDepth || isLayerZero ) ? 0 : m_uiUseAdvResPred ); 1796 1802 vps.setARPStepNum ( layer, ( isDepth || isLayerZero ) ? 1 : H_3D_ARP_WFNR ); 1797 1803 #endif 1804 #endif 1798 1805 #if H_3D_SPIVMP 1799 1806 if( isDepth ) … … 1812 1819 1813 1820 #if H_3D_IV_MERGE 1821 #if QC_IV_PRED_CONSTRAINT_H0137 1822 if( !vps.getNumDirectRefLayers(layer) ) 1823 { 1824 vps.setIvMvPredFlag (layer, false); 1825 } 1826 else 1827 { 1828 #endif 1814 1829 if( isDepth ) 1815 1830 { … … 1820 1835 vps.setIvMvPredFlag ( layer, !isLayerZero && m_ivMvPredFlag[0] ); 1821 1836 } 1837 #if QC_IV_PRED_CONSTRAINT_H0137 1838 } 1839 #endif 1822 1840 #endif 1823 1841 #if H_3D_NBDV_REF … … 1825 1843 #endif 1826 1844 #if H_3D_VSP 1845 #if QC_IV_PRED_CONSTRAINT_H0137 1846 vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && vps.getNumDirectRefLayers(layer) && m_viewSynthesisPredFlag ); 1847 #else 1827 1848 vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && m_viewSynthesisPredFlag ); 1849 #endif 1828 1850 #endif 1829 1851 #if H_3D_DBBP -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/ContextTables.h
r936 r939 110 110 #define NUM_DMM1_DATA_CTX 1 ///< number of context models for DMM1 data 111 111 #endif 112 #if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 113 #define NUM_ANGLE_FLAG_CTX 1 114 #else 112 115 #define NUM_ANGLE_FLAG_CTX 3 116 #endif 113 117 #endif 114 118 … … 368 372 }; 369 373 374 #if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 375 static const UChar 376 INIT_ANGLE_FLAG[3][NUM_ANGLE_FLAG_CTX] = 377 { 378 { 154 }, 379 { 141 }, 380 { 155 }, 381 }; 382 #else 370 383 static const UChar 371 384 INIT_ANGLE_FLAG[3][NUM_ANGLE_FLAG_CTX] = … … 375 388 { 155, 170, 157 }, 376 389 }; 390 #endif 377 391 378 392 static const UChar -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r936 r939 610 610 memset( m_apSegmentDCOffset[1] + firstElement, 0, numElements * sizeof( *m_apSegmentDCOffset[1] ) ); 611 611 #endif 612 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 613 m_apDmmPredictor[0] = 0; 614 m_apDmmPredictor[1] = 0; 615 #endif 612 616 #endif 613 617 #if H_3D_DBBP … … 784 788 m_apSegmentDCOffset[1][ui] = 0; 785 789 #endif 790 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 791 m_apDmmPredictor[0] = 0; 792 m_apDmmPredictor[1] = 0; 793 #endif 786 794 #endif 787 795 #if H_3D_DBBP … … 898 906 memset( m_apSegmentDCOffset[0], 0, sizeof(Pel) * m_uiNumPartition ); 899 907 memset( m_apSegmentDCOffset[1], 0, sizeof(Pel) * m_uiNumPartition ); 908 #endif 909 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 910 m_apDmmPredictor[0] = 0; 911 m_apDmmPredictor[1] = 0; 900 912 #endif 901 913 #endif … … 2389 2401 UInt TComDataCU::getCtxAngleFlag( UInt uiAbsPartIdx ) 2390 2402 { 2403 #if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 2404 return 0; 2405 #else 2391 2406 TComDataCU* pcTempCU; 2392 2407 UInt uiTempPartIdx; … … 2402 2417 2403 2418 return uiCtx; 2419 #endif 2404 2420 } 2405 2421 #endif -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComDataCU.h
r936 r939 195 195 Bool* m_pbSDCFlag; 196 196 Pel* m_apSegmentDCOffset[2]; 197 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 198 Pel m_apDmmPredictor[2]; 199 #endif 197 200 #endif 198 201 #endif … … 580 583 Pel getSDCSegmentDCOffset( UInt uiSeg, UInt uiPartIdx ) { return m_apSegmentDCOffset[uiSeg][uiPartIdx]; } 581 584 Void setSDCSegmentDCOffset( Pel pOffset, UInt uiSeg, UInt uiPartIdx) { m_apSegmentDCOffset[uiSeg][uiPartIdx] = pOffset; } 585 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 586 Void setDmmPredictor ( Pel pOffset, UInt uiSeg) { m_apDmmPredictor[uiSeg] = pOffset; } 587 Pel getDmmPredictor ( UInt uiSeg) { return m_apDmmPredictor[uiSeg]; } 588 #endif 582 589 UInt getCtxSDCFlag ( UInt uiAbsPartIdx ); 583 590 UInt getCtxAngleFlag ( UInt uiAbsPartIdx ); -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r936 r939 500 500 Pel* pDst = piPred; 501 501 xAssignBiSegDCs( pDst, uiStride, biSegPattern, patternStride, segDC1, segDC2 ); 502 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 503 pcCU->setDmmPredictor(segDC1, 0); 504 pcCU->setDmmPredictor(segDC2, 1); 505 #endif 502 506 503 507 #if H_3D_DIM_DMM … … 2324 2328 if (orgDC == false) 2325 2329 { 2330 #if !HS_DMM_SDC_PREDICTOR_UNIFY_H0108 2326 2331 if ( getDimType(uiIntraMode) == DMM1_IDX ) 2327 2332 { … … 2369 2374 } 2370 2375 else 2376 #endif 2371 2377 { 2372 2378 Pel* pLeftTop = pOrig; -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComRom.cpp
r872 r939 360 360 Char g_aucConvertToBit [ MAX_CU_SIZE+1 ]; 361 361 362 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 363 UInt g_aICEnableCANDIDATE[10] = { 0, }; 364 UInt g_aICEnableNUM[ 10 ] = { 0, }; 365 Int g_lastlayer=0; 366 #endif 362 367 #if ENC_DEC_TRACE 363 368 FILE* g_hTrace = NULL; -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComRom.h
r872 r939 189 189 extern Char g_aucConvertToBit [ MAX_CU_SIZE+1 ]; // from width to log2(width)-2 190 190 191 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 192 extern UInt g_aICEnableCANDIDATE[10]; 193 extern UInt g_aICEnableNUM[ 10 ]; //10 layers 194 extern Int g_lastlayer; 195 #endif 196 191 197 #ifndef ENC_DEC_TRACE 192 198 #define ENC_DEC_TRACE 0 -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComSlice.cpp
r884 r939 3220 3220 #endif 3221 3221 #if H_3D_IC 3222 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 3223 Void TComSlice::xSetApplyIC(Bool bUseLowLatencyICEnc) 3224 #else 3222 3225 Void TComSlice::xSetApplyIC() 3223 { 3226 #endif 3227 { 3228 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 3229 if(bUseLowLatencyICEnc) 3230 { 3231 Bool existInterViewRef=false; 3232 TComPic* pcCurrPic = getPic(); 3233 TComPic* pcRefPic = NULL; 3234 for ( Int i = 0; (i < getNumRefIdx( REF_PIC_LIST_0 )) && !existInterViewRef; i++ ) 3235 { 3236 pcRefPic = getRefPic( REF_PIC_LIST_0, i ); 3237 if ( pcRefPic != NULL ) 3238 { 3239 if ( pcCurrPic->getViewIndex() != pcRefPic->getViewIndex() ) 3240 { 3241 existInterViewRef = true; 3242 } 3243 } 3244 } 3245 3246 for ( Int i = 0; (i < getNumRefIdx( REF_PIC_LIST_1 )) && !existInterViewRef; i++ ) 3247 { 3248 pcRefPic = getRefPic( REF_PIC_LIST_1, i ); 3249 if ( pcRefPic != NULL ) 3250 { 3251 if ( pcCurrPic->getViewIndex() != pcRefPic->getViewIndex() ) 3252 { 3253 existInterViewRef = true; 3254 } 3255 } 3256 } 3257 3258 if(!existInterViewRef) 3259 { 3260 m_bApplyIC = false; 3261 } 3262 else 3263 { 3264 Int curLayer=getDepth(); 3265 if( curLayer>9) curLayer=9; // Max layer is 10 3266 3267 m_bApplyIC = true; 3268 Int refLayer = curLayer-1; 3269 if( (refLayer>=0) && (g_aICEnableCANDIDATE[refLayer]>0) ) 3270 { 3271 Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]); 3272 3273 if( ratio > MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086) 3274 { 3275 m_bApplyIC=true; 3276 } 3277 else 3278 { 3279 m_bApplyIC=false; 3280 } 3281 } 3282 g_aICEnableNUM[curLayer]=0; 3283 g_aICEnableCANDIDATE[curLayer]=0; 3284 g_lastlayer=getDepth(); 3285 } 3286 } 3287 else 3288 { 3289 #endif 3224 3290 Int iMaxPelValue = ( 1 << g_bitDepthY ); 3225 3291 Int *aiRefOrgHist; … … 3295 3361 aiCurrHist = NULL; 3296 3362 aiRefOrgHist = NULL; 3363 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 3364 }//if(bUseLowLatencyICEnc) 3365 #endif 3297 3366 } 3298 3367 #endif -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComSlice.h
r884 r939 2179 2179 Bool getApplyIC() { return m_bApplyIC; } 2180 2180 Void xSetApplyIC(); 2181 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 2182 Void xSetApplyIC(Bool bUseLowLatencyICEnc); 2183 #endif 2181 2184 Void setIcSkipParseFlag( Bool b ) { m_icSkipParseFlag = b; } 2182 2185 Bool getIcSkipParseFlag() { return m_icSkipParseFlag; } -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TypeDef.h
r937 r939 120 120 // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121 121 121 122 #define MTK_LOW_LATENCY_IC_ENCODING_H0086 1 // Low-latency IC encoding in JCT3V-H0086 123 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 124 #define MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086 125 #endif 126 122 127 #if H_3D_NBDV 123 128 #define H_3D_NBDV_REF 1 // Depth oriented neighboring block disparity derivation … … 196 201 // HS_TSINGHUA_SDC_SPLIT_G0111 197 202 // QC_PKU_SDC_SPLIT_G0123 Intra SDC Split 198 199 203 #define MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113 1 // Use only one context for CABAC of delta_dc_flag as in JCTVC-H0084, JCTVC-H0100 and JCTVC-H0113 204 #define MTK_SDC_FLAG_FIX_H0095 1 // Remove conditional check of PCM flag based on SDC flag, JCTVC-H0095 205 206 207 #define MTK_DMM_SIMP_CODE_H0092 1 // Remove CABAC context for DMM1 mode coding 200 208 201 209 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 222 230 #define H_3D_FAST_TEXTURE_ENCODING 1 // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173 223 231 // MTK_FAST_TEXTURE_ENCODING_E0173 232 #define QC_IV_PRED_CONSTRAINT_H0137 1 // Constraint on inter-view (motion) prediction tools 224 233 #if H_3D_DIM 225 234 #define H_3D_FAST_DEPTH_INTRA 1 // Fast DMM and RBC Mode Selection … … 275 284 #define H_3D_DIM_DLT 1 // Depth Lookup Table 276 285 286 #define HS_DMM_SDC_PREDICTOR_UNIFY_H0108 1 // Unification of DMM and SDC predictor derivation 287 #define LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 1 // Use only one context for CABAC of dim_not_present_flag 288 #define QC_SIMP_DELTADC_CODING_H0131 1 // Simplify detaDC entropy coding 277 289 #if H_3D_DIM_DLT 278 290 #define H_3D_DELTA_DLT 1 -
branches/HTM-10.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r936 r939 1759 1759 #if H_3D_IV_MERGE 1760 1760 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1761 #if QC_IV_PRED_CONSTRAINT_H0137 1762 if( !pcVPS->getNumDirectRefLayers(i) ) 1763 { 1764 assert( !uiCode ); 1765 } 1766 #endif 1761 1767 #if H_3D_SPIVMP 1762 1768 READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]"); pcVPS->setSubPULog2Size(i, uiCode+3); … … 1765 1771 #if H_3D_ARP 1766 1772 READ_FLAG( uiCode, "iv_res_pred_flag[i]" ); pcVPS->setUseAdvRP ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 ); 1767 1773 #if QC_IV_PRED_CONSTRAINT_H0137 1774 if( !pcVPS->getNumDirectRefLayers(i) ) 1775 { 1776 assert( !uiCode ); 1777 } 1778 #endif 1768 1779 #endif 1769 1780 #if H_3D_NBDV_REF … … 1772 1783 #if H_3D_VSP 1773 1784 READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false ); 1785 #if QC_IV_PRED_CONSTRAINT_H0137 1786 if( !pcVPS->getNumDirectRefLayers(i) ) 1787 { 1788 assert( !uiCode ); 1789 } 1790 #endif 1774 1791 #endif 1775 1792 #if H_3D_DBBP … … 1783 1800 { 1784 1801 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1802 #if QC_IV_PRED_CONSTRAINT_H0137 1803 if( !pcVPS->getNumDirectRefLayers(i) ) 1804 { 1805 assert( !uiCode ); 1806 } 1807 #endif 1785 1808 } 1786 1809 #endif -
branches/HTM-10.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r937 r939 1257 1257 // get DC prediction for each segment 1258 1258 Pel apDCPredValues[2]; 1259 #if HS_DMM_SDC_PREDICTOR_UNIFY_H0108 1260 if ( getDimType( uiLumaPredMode ) == DMM1_IDX || getDimType( uiLumaPredMode ) == DMM4_IDX ) 1261 { 1262 apDCPredValues[0] = pcCU->getDmmPredictor( 0 ); 1263 apDCPredValues[1] = pcCU->getDmmPredictor( 1 ); 1264 } 1265 else 1266 #endif 1259 1267 m_pcPrediction->analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode); 1260 1268 -
branches/HTM-10.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r938 r939 210 210 return; 211 211 } 212 #if !MTK_SDC_FLAG_FIX_H0095 212 213 #if H_3D_DIM_SDC 213 214 if( pcCU->getSDCFlag(uiAbsPartIdx) ) … … 215 216 return; 216 217 } 218 #endif 217 219 #endif 218 220 -
branches/HTM-10.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r936 r939 87 87 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 88 88 , m_cAngleFlagSCModel ( 1, 1, NUM_ANGLE_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 89 #if H_3D_DIM_DMM 89 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 90 90 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 91 91 #endif … … 171 171 m_cDdcDataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DDC_DATA ); 172 172 m_cAngleFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_ANGLE_FLAG ); 173 #if H_3D_DIM_DMM 173 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 174 174 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA ); 175 175 #endif … … 241 241 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 242 242 m_cAngleFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG ); 243 #if H_3D_DIM_DMM 243 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 244 244 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 245 245 #endif … … 386 386 uiCount++; 387 387 } 388 #if QC_SIMP_DELTADC_CODING_H0131 389 while( uiSymbol && ( uiCount != 3 ) ); 390 #else 388 391 while( uiSymbol && ( uiCount != 13 ) ); 389 392 #endif 390 393 ruiSymbol = uiCount - 1; 391 394 … … 423 426 for( Int i = 0; i < iNumBit; i++ ) 424 427 { 428 #if MTK_DMM_SIMP_CODE_H0092 429 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 430 #else 425 431 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm1DataSCModel.get(0, 0, 0) ); 432 #endif 426 433 uiIdx += uiSymbol << i; 427 434 } … … 1128 1135 if( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() >> pcCU->getDepth( absPartIdx ) ) < 64 ) //DMM and HEVC intra modes are both allowed 1129 1136 { 1137 #if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 1138 m_pcTDecBinIf->decodeBin( uiSymbol, m_cAngleFlagSCModel.get( 0, 0, 0 ) ); 1139 #else 1130 1140 m_pcTDecBinIf->decodeBin( uiSymbol, m_cAngleFlagSCModel.get( 0, 0, pcCU->getCtxAngleFlag( absPartIdx ) ) ); 1141 #endif 1131 1142 } 1132 1143 else … … 2068 2079 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 2069 2080 uiNumSegments = isDimMode( dir ) ? 2 : 1; 2070 2081 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113 2082 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2083 #else 2071 2084 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) ); 2072 2085 #endif 2073 2086 if( pcCU->getSDCFlag( absPartIdx ) ) 2074 2087 { -
branches/HTM-10.2-dev0/source/Lib/TLibDecoder/TDecSbac.h
r884 r939 214 214 ContextModel3DBuffer m_cDdcDataSCModel; 215 215 ContextModel3DBuffer m_cAngleFlagSCModel; 216 #if H_3D_DIM_DMM 216 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092 217 217 ContextModel3DBuffer m_cDmm1DataSCModel; 218 218 #endif -
branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncCfg.h
r884 r939 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 -
branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r936 r939 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 ); … … 281 290 return; 282 291 } 292 #if !MTK_SDC_FLAG_FIX_H0095 283 293 #if H_3D_DIM_SDC 284 294 if( pcCU->getSDCFlag(uiAbsPartIdx) ) … … 286 296 return; 287 297 } 298 #endif 288 299 #endif 289 300 -
branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r936 r939 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 -
branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.h
r884 r939 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 -
branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r937 r939 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 -
branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
r872 r939 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.