Changeset 840 in 3DVCSoftware for branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder
- Timestamp:
- 8 Feb 2014, 15:29:19 (11 years ago)
- Location:
- branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r839 r840 1805 1805 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1806 1806 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1807 #if !UPDATE_HM13 1807 1808 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); 1809 #endif 1808 1810 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 1809 1811 #if H_3D_IC … … 1992 1994 if( rpcTempCU != rpcTempCUPre ) 1993 1995 { 1994 rpcTempCU->initEstData( uhDepth, orgQP );1996 rpcTempCU->initEstData( uhDepth, orgQP, bTransquantBypassFlag ); 1995 1997 rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth ); 1996 1998 } … … 2022 2024 if( rpcTempCU != rpcTempCUPre ) 2023 2025 { 2024 rpcTempCU->initEstData( uhDepth, orgQP );2026 rpcTempCU->initEstData( uhDepth, orgQP, bTransquantBypassFlag ); 2025 2027 rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth ); 2026 2028 } … … 2121 2123 #endif 2122 2124 { 2125 2126 #if UPDATE_HM13 2127 #if H_3D 2128 const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0); 2129 #endif 2130 #endif 2123 2131 #if H_3D_FAST_TEXTURE_ENCODING 2124 2132 if(!(bFMD && (ePartSize == SIZE_2Nx2N))) //have motion estimation or merge check … … 2144 2152 if( bFirstTime == false && rpcTempCU->getSlice()->getVPS()->getUseAdvRP( iLayerId ) ) 2145 2153 { 2154 #if UPDATE_HM13 2155 rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0),bTransquantBypassFlag ); 2156 #else 2146 2157 rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0) ); 2158 #endif 2147 2159 } 2148 2160 #endif … … 2258 2270 { 2259 2271 Int orgQP = rpcBestCU->getQP( 0 ); 2272 #if UPDATE_HM13 2273 rpcTempCU->initEstData( uhDepth, orgQP ,bTransquantBypassFlag ); 2274 #else 2260 2275 rpcTempCU->initEstData( uhDepth, orgQP ); 2276 #endif 2261 2277 rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth ); 2262 2278 } -
branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r837 r840 798 798 } 799 799 800 #if H_3D_INTER_SDC 801 #if QC_SDC_UNIFY_G0130 802 Void TEncEntropy::encodeDeltaDC ( TComDataCU* pcCU, UInt absPartIdx ) 803 { 804 m_pcEntropyCoderIf->codeDeltaDC( pcCU, absPartIdx ); 805 } 806 807 Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 808 { 809 if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) || 810 ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getVpsDepthModesFlag( pcCU->getSlice()->getLayerIdInVps() ) ) ) 811 { 812 return; 813 } 814 815 #if SEC_INTER_SDC_G0101 816 if( !pcCU->getSlice()->getIsDepth() || pcCU->getPartitionSize( uiAbsPartIdx ) != SIZE_2Nx2N || pcCU->isSkipped( uiAbsPartIdx ) ) 817 #else 818 if( !pcCU->getSlice()->getIsDepth() || ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) != SIZE_2Nx2N ) || pcCU->isSkipped( uiAbsPartIdx ) ) 819 #endif 820 { 821 return; 822 } 823 824 #if SEC_INTER_SDC_G0101 825 assert( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N || ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->isSkipped( uiAbsPartIdx ) ) ); 826 #else 827 assert( ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) || ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->isSkipped( uiAbsPartIdx ) ) ); 828 #endif 829 830 if( bRD ) 831 { 832 uiAbsPartIdx = 0; 833 } 834 835 m_pcEntropyCoderIf->codeSDCFlag( pcCU, uiAbsPartIdx ); 836 } 837 #else 838 Void TEncEntropy::encodeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 839 { 840 if( !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) 841 { 842 return; 843 } 844 845 if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( uiAbsPartIdx ) || pcCU->isSkipped( uiAbsPartIdx ) ) 846 { 847 return; 848 } 849 850 if( bRD ) 851 { 852 uiAbsPartIdx = 0; 853 } 854 855 m_pcEntropyCoderIf->codeInterSDCFlag( pcCU, uiAbsPartIdx ); 856 } 857 858 Void TEncEntropy::encodeInterSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 859 { 860 if( !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) 861 { 862 return; 863 } 864 865 if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( uiAbsPartIdx ) || !pcCU->getInterSDCFlag( uiAbsPartIdx ) ) 866 { 867 return; 868 } 869 870 if( bRD ) 871 { 872 uiAbsPartIdx = 0; 873 } 874 875 // number of segments depends on prediction mode for INTRA 876 UInt uiNumSegments = ( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) ? 1 : ( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ? 4 : 2 ); 877 878 // encode residual data for each segment 879 for( UInt uiSeg = 0; uiSeg < uiNumSegments; uiSeg++ ) 880 { 881 m_pcEntropyCoderIf->codeInterSDCResidualData( pcCU, uiAbsPartIdx, uiSeg ); 882 } 883 } 884 #endif 885 #endif 886 #if H_3D_DBBP 887 Void TEncEntropy::encodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 888 { 889 if( bRD ) 890 { 891 uiAbsPartIdx = 0; 892 } 893 m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx ); 894 } 895 #endif 800 896 //! \} -
branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncSbac.h
r837 r840 257 257 ContextModel3DBuffer m_cTransformSkipSCModel; 258 258 ContextModel3DBuffer m_CUTransquantBypassFlagSCModel; 259 260 #if H_3D_DIM 261 ContextModel3DBuffer m_cDepthIntraModeSCModel; 262 ContextModel3DBuffer m_cDdcFlagSCModel; 263 ContextModel3DBuffer m_cDdcDataSCModel; 264 #if QC_GENERIC_SDC_G0122 265 ContextModel3DBuffer m_cAngleFlagSCModel; 266 #if !QC_SDC_UNIFY_G0130 267 ContextModel3DBuffer m_cIntraSdcFlagSCModel; 268 #endif 269 #endif 270 #if H_3D_DIM_DMM 271 ContextModel3DBuffer m_cDmm1DataSCModel; 272 #endif 273 #if H_3D_DIM_SDC 274 ContextModel3DBuffer m_cSDCResidualFlagSCModel; 275 ContextModel3DBuffer m_cSDCResidualSCModel; 276 #endif 277 #endif 278 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130 279 ContextModel3DBuffer m_cInterSDCFlagSCModel; 280 ContextModel3DBuffer m_cInterSDCResidualSCModel; 281 ContextModel3DBuffer m_cInterSDCResidualSignFlagSCModel; 282 #endif 283 #if QC_SDC_UNIFY_G0130 284 ContextModel3DBuffer m_cSDCFlagSCModel; 285 #endif 286 #if H_3D_DBBP 287 ContextModel3DBuffer m_cDBBPFlagSCModel; 288 #endif 259 289 }; 260 290 -
branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r839 r840 6044 6044 UInt uiBits = 0; 6045 6045 TComYuv *pDummy = NULL; 6046 if( m_bUseSBACRD ) 6047 { 6048 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[pcCU->getDepth(0)][CI_CURR_BEST] ); 6049 } 6046 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[pcCU->getDepth(0)][CI_CURR_BEST] ); 6050 6047 6051 6048 xAddSymbolBitsInter( pcCU, 0, 0, uiBits, pDummy, NULL, pDummy ); … … 6066 6063 pcCU->getTotalCost() = rdCost; 6067 6064 6068 if( m_bUseSBACRD ) 6069 { 6070 m_pcRDGoOnSbacCoder->store( m_pppcRDSbacCoder[ pcCU->getDepth( 0 ) ][ CI_TEMP_BEST ] ); 6071 } 6065 m_pcRDGoOnSbacCoder->store( m_pppcRDSbacCoder[ pcCU->getDepth( 0 ) ][ CI_TEMP_BEST ] ); 6072 6066 } 6073 6067
Note: See TracChangeset for help on using the changeset viewer.