Changeset 826 in 3DVCSoftware for branches/HTM-9.3-dev0/source
- Timestamp:
- 5 Feb 2014, 18:55:49 (11 years ago)
- Location:
- branches/HTM-9.3-dev0/source/Lib
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.3-dev0/source/Lib/TLibCommon/ContextTables.h
r816 r826 97 97 98 98 #if H_3D_ARP 99 #if MTK_ARP_FLAG_CABAC_SIMP_G0061 100 #define NUM_ARPW_CTX 3 ///< number of context models for weighting factor index used by advanced residual prediction 101 #else 99 102 #define NUM_ARPW_CTX 4 ///< number of context models for weighting factor index used by advanced residual prediction 100 103 #endif 104 #endif 101 105 102 106 #if H_3D_IC 107 #if MTK_IC_FLAG_CABAC_SIMP_G0061 108 #define NUM_IC_FLAG_CTX 1 ///< number of context models for illumination compensation flag 109 #else 103 110 #define NUM_IC_FLAG_CTX 3 ///< number of context models for illumination compensation flag 111 #endif 104 112 #endif 105 113 … … 368 376 369 377 #if H_3D_ARP 378 #if MTK_ARP_FLAG_CABAC_SIMP_G0061 379 static const UChar 380 INIT_ARPW[3][NUM_ARPW_CTX] = 381 { 382 { 162, 153, 162 }, 383 { 162, 153, 162 }, 384 { 162, 153, 162 }, 385 }; 386 #else 370 387 static const UChar 371 388 INIT_ARPW[3][NUM_ARPW_CTX] = … … 376 393 }; 377 394 #endif 378 395 #endif 379 396 #if H_3D_IC 397 #if MTK_IC_FLAG_CABAC_SIMP_G0061 398 static const UChar 399 INIT_IC_FLAG[3][NUM_IC_FLAG_CTX] = 400 { 401 { 154 }, 402 { 154 }, 403 { 154 }, 404 }; 405 #else 380 406 static const UChar 381 407 INIT_IC_FLAG[3][NUM_IC_FLAG_CTX] = … … 386 412 }; 387 413 #endif 414 #endif 388 415 #if H_3D_DIM 389 416 static const UChar -
branches/HTM-9.3-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r821 r826 2398 2398 uiCtx = ( pcTempCU ) ? ((pcTempCU->getARPW( uiTempPartIdx )==0)?0:1) : 0; 2399 2399 2400 #if !MTK_ARP_FLAG_CABAC_SIMP_G0061 2400 2401 pcTempCU = getPUAbove( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx ); 2401 2402 uiCtx += ( pcTempCU ) ? ((pcTempCU->getARPW( uiTempPartIdx )==0)?0:1): 0; 2402 2403 #endif 2403 2404 return uiCtx; 2404 2405 } 2405 2406 #endif 2406 2407 #if !MTK_IC_FLAG_CABAC_SIMP_G0061 2407 2408 #if H_3D_IC 2408 2409 UInt TComDataCU::getCtxICFlag( UInt uiAbsPartIdx ) … … 2422 2423 } 2423 2424 #endif 2424 2425 #endif 2425 2426 #if H_3D_DBBP 2426 2427 Pel* TComDataCU::getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride) … … 3460 3461 Bool* abCandIsInter, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int* vspFlag, Int& iCount3DV, InheritedVSPDisInfo* inheritedVSPDisInfo ) 3461 3462 { 3463 #if MTK_NBDV_IVREF_FIX_G0067 3464 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1) 3465 #else 3462 3466 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() ) 3467 #endif 3463 3468 { 3464 3469 return false; … … 4694 4699 Bool ivMvPredFlag = getSlice()->getVPS()->getIvMvPredFlag( getSlice()->getLayerIdInVps() ); 4695 4700 4701 #if MTK_NBDV_IVREF_FIX_G0067 4702 if ( ivMvPredFlag && cDisInfo.m_aVIdxCan!=-1) 4703 #else 4696 4704 if ( ivMvPredFlag ) 4705 #endif 4697 4706 { 4698 4707 getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP ); … … 6950 6959 // Init disparity struct for results 6951 6960 pDInfo->bDV = false; 6961 #if MTK_NBDV_IVREF_FIX_G0067 6962 pDInfo->m_aVIdxCan = -1; 6963 #endif 6952 6964 // Init struct for disparities from MCP neighboring blocks 6953 6965 IDVInfo cIDVInfo; -
branches/HTM-9.3-dev0/source/Lib/TLibCommon/TComDataCU.h
r816 r826 781 781 UInt getCTXARPWFlag ( UInt uiAbsPartIdx ); 782 782 #endif 783 #if !MTK_IC_FLAG_CABAC_SIMP_G0061 783 784 #if H_3D_IC 784 785 UInt getCtxICFlag ( UInt uiAbsPartIdx ); 786 #endif 785 787 #endif 786 788 UInt getSliceStartCU ( UInt pos ) { return m_sliceStartCU[pos-m_uiAbsIdxInLCU]; } -
branches/HTM-9.3-dev0/source/Lib/TLibCommon/TComSlice.cpp
r816 r826 3132 3132 for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ ) 3133 3133 { 3134 #if MTK_ARP_REF_SELECTION_G0053 3135 Int diffPOC=MAX_INT; 3136 Int idx=-1; 3137 #endif 3134 3138 for(Int i = 0; i < getNumRefIdx(RefPicList(refListIdx)); i++ ) 3135 3139 { 3136 3140 if ( getRefPic(RefPicList(refListIdx), i)->getPOC() != getPOC() ) 3137 3141 { 3142 #if MTK_ARP_REF_SELECTION_G0053 3143 if( abs(getRefPic(RefPicList(refListIdx), i)->getPOC() - getPOC()) < diffPOC) 3144 { 3145 diffPOC=abs(getRefPic(RefPicList(refListIdx), i)->getPOC() - getPOC()); 3146 idx=i; 3147 } 3148 #else 3138 3149 setFirstTRefIdx (RefPicList(refListIdx), i); 3139 3150 break; 3151 #endif 3140 3152 } 3153 #if MTK_ARP_REF_SELECTION_G0053 3154 if(idx>=0) 3155 { 3156 setFirstTRefIdx (RefPicList(refListIdx), idx); 3157 } 3158 #endif 3141 3159 } 3142 3160 } -
branches/HTM-9.3-dev0/source/Lib/TLibCommon/TypeDef.h
r816 r826 78 78 // HHI_QTLPC_RAU_OFF_C0160 // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 79 79 80 #ifdef H_3D_QTLPC 81 #define MTK_TEX_DEP_PAR_G0055 1 // Texture-partition-dependent depth partition. JCT3V-G0055 82 #endif 80 83 #define H_3D_VSO 1 // VSO, View synthesis optimization, includes: 81 84 // HHI_VSO … … 102 105 // SHARP_ARP_REF_CHECK_F0105 ARP reference picture selection and DPB check 103 106 // LGE_ARP_CTX_F0161 JCT3V-F0161 107 #define MTK_ARP_REF_SELECTION_G0053 1 // ARP Reference picture selection in JCT3V-G0053 108 #define MTK_ARP_FLAG_CABAC_SIMP_G0061 1 // Use 2 context for ARP flag referring to only left neighbor block in JCT3V-G0061 104 109 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 105 110 // Unifying rounding offset, for IC part, JCT3V-D0135 … … 109 114 // LGE_IC_CTX_F0160 //JCT3V-F0160 110 115 // SEC_ONLY_TEXTURE_IC_F0151 116 #define MTK_IC_FLAG_CABAC_SIMP_G0061 1 // Use only 1 context for IC flag in JCT3V-G0061 111 117 112 118 #if H_3D_NBDV … … 117 123 // NBDV_DEFAULT_VIEWIDX_BUGFIX Bug fix for invalid default view index for NBDV 118 124 // NTT_DoNBDV_VECTOR_CLIP_E0141 disparity vector clipping in DoNBDV, JCT3V-E0141 and JCT3V-E0209 125 #define MTK_NBDV_IVREF_FIX_G0067 1 // Disable IvMC, VSP when IVREF is not available, JCT3V-G0067 119 126 #endif 120 127 … … 231 238 #define H_3D_ARP_WFNR 3 232 239 #endif 240 #define KHU_SIMP_SPIVMP_G0147 1 // Simplification on Sub-PU level temporal interview motion prediction 233 241 234 242 #if H_3D_SPIVMP … … 237 245 #define QC_DEPTH_MERGE_SIMP_G0127 1 // Remove DV candidate and shifting candidate for depth coding 238 246 239 #define KHU_SIMP_SPIVMP_G0147 1 // Simplification on Sub-PU level temporal interview motion prediction247 #define SEC_IC_ARP_SIG_G0072 1 // Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121 240 248 241 249 ///// ***** DEPTH INTRA MODES ********* -
branches/HTM-9.3-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r820 r826 415 415 UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx); 416 416 417 #if !SEC_IC_ARP_SIG_G0072 417 418 #if H_3D_IC 418 419 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 419 420 #endif 421 #endif 420 422 #if H_3D_ARP 421 423 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth ); 424 #endif 425 #if SEC_IC_ARP_SIG_G0072 426 #if H_3D_IC 427 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 428 #endif 422 429 #endif 423 430 -
branches/HTM-9.3-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r820 r826 111 111 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 112 112 113 #if SEC_IC_ARP_SIG_G0072 114 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 ) 115 #else 113 116 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 117 #endif 114 118 { 115 119 return; … … 268 272 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 269 273 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 274 #if !SEC_IC_ARP_SIG_G0072 270 275 #if H_3D_IC 271 276 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 272 277 #endif 278 #endif 273 279 #if H_3D_ARP 274 280 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 281 #endif 282 #if SEC_IC_ARP_SIG_G0072 283 #if H_3D_IC 284 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 285 #endif 275 286 #endif 276 287 #if H_3D_DBBP … … 429 440 } 430 441 } 442 #if !SEC_IC_ARP_SIG_G0072 431 443 #if H_3D_IC 432 444 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 433 445 #endif 446 #endif 434 447 #if H_3D_ARP 435 448 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 449 #endif 450 #if SEC_IC_ARP_SIG_G0072 451 #if H_3D_IC 452 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 453 #endif 436 454 #endif 437 455 } -
branches/HTM-9.3-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r820 r826 793 793 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 794 794 795 #if MTK_TEX_DEP_PAR_G0055 796 Bool depthDependent = false; 797 UInt uiTexturePart = uiMode; 798 #endif 795 799 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC()) 796 800 { 797 801 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); 798 802 assert(pcTextureCU->getDepth(uiAbsPartIdx) >= uiDepth); 803 #if !MTK_TEX_DEP_PAR_G0055 799 804 if (pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth && pcTextureCU->getPartitionSize( uiAbsPartIdx ) != SIZE_NxN) 805 #else 806 if(pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth ) 807 { 808 depthDependent = true; 809 uiTexturePart = pcTextureCU->getPartitionSize( uiAbsPartIdx ); 810 } 811 if (pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth && pcTextureCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N) 812 #endif 800 813 { 801 814 bParsePartSize = false; … … 842 855 if(bParsePartSize) 843 856 { 857 #endif 858 #if MTK_TEX_DEP_PAR_G0055 859 if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N) 860 { 844 861 #endif 845 862 UInt uiMaxNumBits = 2; … … 879 896 } 880 897 } 898 #if MTK_TEX_DEP_PAR_G0055 899 } 900 else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD) 901 { 902 UInt uiMaxNumBits = 1; 903 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) ) 904 { 905 uiMaxNumBits ++; 906 } 907 for ( UInt ui = 0; ui < uiMaxNumBits; ui++ ) 908 { 909 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) ); 910 if ( uiSymbol ) 911 { 912 break; 913 } 914 uiMode++; 915 } 916 eMode = (PartSize) uiMode; 917 if(uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==1 ) 918 { 919 eMode = SIZE_2NxN; 920 } 921 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth )==0 && uiSymbol==0) 922 { 923 eMode = SIZE_2NxN; 924 } 925 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==0) 926 { 927 m_pcTDecBinIf->decodeBinEP(uiSymbol); 928 eMode = (uiSymbol == 0? SIZE_2NxnU : SIZE_2NxnD); 929 } 930 } 931 else if(uiTexturePart == SIZE_Nx2N|| uiTexturePart==SIZE_nLx2N || uiTexturePart==SIZE_nRx2N) 932 { 933 UInt uiMaxNumBits = 1; 934 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) ) 935 { 936 uiMaxNumBits ++; 937 } 938 for ( UInt ui = 0; ui < uiMaxNumBits; ui++ ) 939 { 940 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) ); 941 if ( uiSymbol ) 942 { 943 break; 944 } 945 uiMode++; 946 } 947 eMode = (PartSize) uiMode; 948 if(uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==1 ) 949 { 950 eMode = SIZE_Nx2N; 951 } 952 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth )==0 && uiSymbol==0) 953 { 954 eMode = SIZE_Nx2N; 955 } 956 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==0) 957 { 958 m_pcTDecBinIf->decodeBinEP(uiSymbol); 959 eMode = (uiSymbol == 0? SIZE_nLx2N : SIZE_nRx2N); 960 } 961 } 962 else 963 assert(0); 964 #endif 881 965 #if H_MV_ENC_DEC_TRAC 882 966 DTRACE_CU("part_mode", eMode ) … … 2067 2151 if( 1 == uiW ) 2068 2152 { 2153 #if MTK_ARP_FLAG_CABAC_SIMP_G0061 2154 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 2 ) ); 2155 #else 2069 2156 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 3 ) ); 2157 #endif 2070 2158 uiW += ( 1 == uiCode ? 1 : 0 ); 2071 2159 } … … 2087 2175 { 2088 2176 UInt uiSymbol = 0; 2177 #if MTK_IC_FLAG_CABAC_SIMP_G0061 2178 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) ); 2179 #else 2089 2180 UInt uiCtxIC = pcCU->getCtxICFlag( uiAbsPartIdx ); 2090 2181 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) ); 2182 #endif 2091 2183 #if !H_MV_ENC_DEC_TRAC 2092 2184 DTRACE_CABAC_VL( g_nSymbolCounter++ ); -
branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r821 r826 563 563 bTryNx2N = false; 564 564 bTry2NxN = false; 565 #if MTK_TEX_DEP_PAR_G0055 566 if( pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize(uiCUIdx) != SIZE_2Nx2N) 567 { 568 if(pcTextureCU->getPartitionSize(uiCUIdx)==SIZE_2NxN || pcTextureCU->getPartitionSize(uiCUIdx)==SIZE_2NxnU|| pcTextureCU->getPartitionSize(uiCUIdx)==SIZE_2NxnD) 569 bTry2NxN = true; 570 else 571 bTryNx2N = true; 572 } 573 #endif 565 574 } 566 575 } … … 1611 1620 #endif 1612 1621 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx ); 1622 #if !SEC_IC_ARP_SIG_G0072 1613 1623 #if H_3D_IC 1614 1624 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1615 1625 #endif 1626 #endif 1616 1627 #if H_3D_ARP 1617 1628 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1629 #endif 1630 #if SEC_IC_ARP_SIG_G0072 1631 #if H_3D_IC 1632 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1633 #endif 1618 1634 #endif 1619 1635 finishCU(pcCU,uiAbsPartIdx,uiDepth); … … 1638 1654 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1639 1655 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1656 #if !SEC_IC_ARP_SIG_G0072 1640 1657 #if H_3D_IC 1641 1658 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1642 1659 #endif 1660 #endif 1643 1661 #if H_3D_ARP 1644 1662 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1663 #endif 1664 #if SEC_IC_ARP_SIG_G0072 1665 #if H_3D_IC 1666 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1667 #endif 1645 1668 #endif 1646 1669 #if H_3D_INTER_SDC … … 1872 1895 #if H_3D_ARP 1873 1896 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 1897 #if SEC_IC_ARP_SIG_G0072 1898 if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag ) 1899 #else 1874 1900 if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV ) 1901 #endif 1875 1902 { 1876 1903 nARPWMax = 0; … … 2177 2204 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 2178 2205 2206 #if SEC_IC_ARP_SIG_G0072 2207 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) ) 2208 #else 2179 2209 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV ) 2210 #endif 2180 2211 { 2181 2212 nARPWMax = 0; -
branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r820 r826 160 160 Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 161 161 { 162 #if SEC_IC_ARP_SIG_G0072 163 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 ) 164 #else 162 165 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 166 #endif 163 167 { 164 168 return; -
branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r820 r826 691 691 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 692 692 693 #if MTK_TEX_DEP_PAR_G0055 694 Bool depthDependent = false; 695 UInt uiTexturePart = eSize; 696 #endif 693 697 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() ) 694 698 { … … 696 700 UInt uiCUIdx = (pcCU->getZorderIdxInCU() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCU(); 697 701 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); 702 #if !MTK_TEX_DEP_PAR_G0055 698 703 if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) != SIZE_NxN) 704 #else 705 if(pcTextureCU->getDepth(uiCUIdx) == uiDepth ) 706 { 707 depthDependent = true; 708 uiTexturePart = pcTextureCU->getPartitionSize( uiCUIdx ); 709 } 710 if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) == SIZE_2Nx2N) 711 #endif 699 712 { 700 713 assert( eSize == SIZE_2Nx2N ); … … 718 731 DTRACE_CU("part_mode", eSize ) 719 732 #endif 733 #if MTK_TEX_DEP_PAR_G0055 734 if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N) 735 { 736 #endif 720 737 switch(eSize) 721 738 { … … 784 801 } 785 802 } 803 #if MTK_TEX_DEP_PAR_G0055 804 } 805 else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD) 806 { 807 //assert(eSize!=SIZE_NxN); 808 //assert(eSize!=SIZE_Nx2N); 809 //assert(eSize==SIZE_2Nx2N || eSize==SIZE_2NxN || eSize==SIZE_2NxnU || eSize==SIZE_2NxnD); 810 switch(eSize) 811 { 812 case SIZE_2Nx2N: 813 { 814 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 815 break; 816 } 817 case SIZE_2NxN: 818 { 819 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 820 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) ) 821 { 822 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 823 } 824 break; 825 } 826 case SIZE_2NxnU: 827 case SIZE_2NxnD: 828 { 829 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 830 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 831 m_pcBinIf->encodeBinEP((eSize == SIZE_2NxnU? 0: 1)); 832 break; 833 } 834 default: 835 { 836 assert(0); 837 } 838 } 839 } 840 else if(uiTexturePart == SIZE_Nx2N|| uiTexturePart==SIZE_nLx2N || uiTexturePart==SIZE_nRx2N) 841 { 842 //assert(eSize!=SIZE_NxN); 843 //assert(eSize!=SIZE_2NxN); 844 //assert(eSize==SIZE_2Nx2N ||eSize==SIZE_Nx2N || eSize==SIZE_nLx2N || eSize==SIZE_nRx2N); 845 switch(eSize) 846 { 847 case SIZE_2Nx2N: 848 { 849 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 850 break; 851 } 852 case SIZE_Nx2N: 853 { 854 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 855 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) ) 856 { 857 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 858 } 859 break; 860 } 861 case SIZE_nLx2N: 862 case SIZE_nRx2N: 863 { 864 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 865 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) ); 866 m_pcBinIf->encodeBinEP((eSize == SIZE_nLx2N? 0: 1)); 867 break; 868 } 869 default: 870 { 871 assert(0); 872 } 873 } 874 } 875 else 876 { 877 printf("uiTexturePart=%d",uiTexturePart); 878 assert(0); 879 } 880 #endif 786 881 } 787 882 … … 918 1013 if( nBinNum > 1 ) 919 1014 { 1015 #if MTK_ARP_FLAG_CABAC_SIMP_G0061 1016 m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 2 ) ); 1017 #else 920 1018 m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 3 ) ); 1019 #endif 921 1020 } 922 1021 #if H_MV_ENC_DEC_TRAC … … 936 1035 // get context function is here 937 1036 UInt uiSymbol = pcCU->getICFlag( uiAbsPartIdx ) ? 1 : 0; 1037 #if MTK_IC_FLAG_CABAC_SIMP_G0061 1038 m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) ); 1039 #else 938 1040 UInt uiCtxIC = pcCU->getCtxICFlag( uiAbsPartIdx ) ; 939 1041 m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) ); 1042 #endif 940 1043 #if !H_MV_ENC_DEC_TRAC 941 1044 DTRACE_CABAC_VL( g_nSymbolCounter++ ); -
branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r820 r826 5456 5456 m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true); 5457 5457 m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, true ); 5458 #if !SEC_IC_ARP_SIG_G0072 5458 5459 #if H_3D_IC 5459 5460 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 5460 5461 #endif 5462 #endif 5461 5463 #if H_3D_ARP 5462 5464 m_pcEntropyCoder->encodeARPW( pcCU, 0 ); 5465 #endif 5466 #if SEC_IC_ARP_SIG_G0072 5467 #if H_3D_IC 5468 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 5469 #endif 5463 5470 #endif 5464 5471 uiBits = m_pcEntropyCoder->getNumberOfWrittenBits(); … … 7036 7043 m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true); 7037 7044 m_pcEntropyCoder->encodeMergeIndex(pcCU, 0, true); 7045 #if !SEC_IC_ARP_SIG_G0072 7038 7046 #if H_3D_IC 7039 7047 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7040 7048 #endif 7049 #endif 7041 7050 #if H_3D_ARP 7042 7051 m_pcEntropyCoder->encodeARPW( pcCU, 0 ); 7052 #endif 7053 #if SEC_IC_ARP_SIG_G0072 7054 #if H_3D_IC 7055 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7056 #endif 7043 7057 #endif 7044 7058 ruiBits += m_pcEntropyCoder->getNumberOfWrittenBits(); … … 7055 7069 m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 7056 7070 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 7071 #if !SEC_IC_ARP_SIG_G0072 7057 7072 #if H_3D_IC 7058 7073 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7059 7074 #endif 7075 #endif 7060 7076 #if H_3D_ARP 7061 7077 m_pcEntropyCoder->encodeARPW( pcCU , 0 ); 7078 #endif 7079 #if SEC_IC_ARP_SIG_G0072 7080 #if H_3D_IC 7081 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7082 #endif 7062 7083 #endif 7063 7084 #if H_3D_INTER_SDC
Note: See TracChangeset for help on using the changeset viewer.