- Timestamp:
- 22 May 2013, 22:32:57 (12 years ago)
- Location:
- branches/HTM-6.2-dev0/source/Lib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.2-dev0/source/Lib/TLibCommon/TComPrediction.h
r433 r434 249 249 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 250 250 Void predIntraLumaDMM ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiMode, Pel* piPred, UInt uiStride, Int iWidth, Int iHeight, Bool bAbove, Bool bLeft, Bool bEncoder ); 251 #if QC_DC_PREDICTOR_D0183 252 Void getPredDCs ( Bool* pbPattern, Int iPatternStride, Int* piMask, Int iMaskStride, Int& riPredDC1, Int& riPredDC2 ); 253 #else 251 254 Void getWedgePredDCs ( TComWedgelet* pcWedgelet, Int* piMask, Int iMaskStride, Int& riPredDC1, Int& riPredDC2, Bool bAbove, Bool bLeft ); 252 255 #endif -
branches/HTM-6.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r433 r434 866 866 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 867 867 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 868 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 868 869 decodeSDCResidualData(pcCU, uiAbsPartIdx, uiDepth); 869 870 #endif … … 939 940 m_pcEntropyDecoderIf->parseSDCFlag(pcCU, uiAbsPartIdx, uiDepth ); 940 941 } 942 #endif 941 943 Void TDecEntropy::decodeSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 942 944 { -
branches/HTM-6.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r433 r434 919 919 pcCU->setPredModeSubParts( (PredMode)iPredMode, uiAbsPartIdx, uiDepth ); 920 920 } 921 #if PKU_QC_DEPTH_INTRA_UNI_D0195 922 Void TDecSbac::parseDepthIntraMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 923 { 924 UInt uiPuIdx = ( pcCU->getWidth(uiAbsPartIdx) == 64 )? 2 : ( ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_NxN && pcCU->getWidth(uiAbsPartIdx) == 8 )? 0 : 1); 925 UInt uiDir = 0; 926 Bool bSDCFlag = 0; 927 UInt uiSymbol = 1; 928 UInt uiCode = 0 ; 929 UInt uiBinNum = 0; 930 UInt uiCtxDepthMode = 0; 931 if ( uiPuIdx ==2 ) 932 { 933 while(uiBinNum<2 && uiSymbol) 934 { 935 uiCtxDepthMode = uiPuIdx*3 + uiBinNum; 936 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 937 uiCode = (uiCode<<1)+uiSymbol; 938 uiBinNum++; 939 } 940 if (uiCode == 0) { uiDir = PLANAR_IDX; bSDCFlag = 1;} 941 else if (uiCode == 2) { uiDir = 0; bSDCFlag = 0;} 942 else if (uiCode == 3) { uiDir = DC_IDX; bSDCFlag = 1;} 943 } 944 else if ( uiPuIdx ==0 ) 945 { 946 while(uiBinNum<3 && uiSymbol) 947 { 948 uiCtxDepthMode = uiPuIdx*3 + ( uiBinNum >= 2? 2 : uiBinNum ); 949 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 950 uiCode = (uiCode<<1)+uiSymbol; 951 uiBinNum++; 952 } 953 if (uiCode == 0) { uiDir = 0; bSDCFlag = 0;} 954 else if (uiCode == 2) { uiDir = DMM_WEDGE_FULL_IDX; bSDCFlag = 0;} 955 else if (uiCode == 6) { uiDir = DMM_WEDGE_PREDTEX_IDX; bSDCFlag = 0;} 956 else if (uiCode == 7) { uiDir = EDGE_INTRA_IDX; bSDCFlag = 0;} 957 } 958 else 959 { 960 uiCtxDepthMode = uiPuIdx*3 ; 961 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 962 uiCode = (uiCode<<1)+uiSymbol; 963 if (!uiSymbol) 964 { 965 uiCtxDepthMode = uiPuIdx*3 + 1; 966 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 967 uiCode = (uiCode<<1)+uiSymbol; 968 if (uiSymbol) 969 { 970 uiCtxDepthMode = uiPuIdx*3 + 2; 971 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 972 uiCode = (uiCode<<1)+uiSymbol; 973 } 974 } 975 else 976 { 977 uiCtxDepthMode = uiPuIdx*3 + 1; 978 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 979 uiCode = (uiCode<<1)+uiSymbol; 980 if (!uiSymbol) 981 { 982 uiCtxDepthMode = uiPuIdx*3 + 2; 983 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 984 uiCode = (uiCode<<1)+uiSymbol; 985 } 986 else 987 { 988 uiBinNum = 0; 989 while( uiSymbol && uiBinNum<3 ) 990 { 991 uiCtxDepthMode = uiPuIdx*3 + 2; 992 m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode)); 993 uiCode = (uiCode<<1)+uiSymbol; 994 uiBinNum++; 995 } 996 } 997 } 998 if (uiCode == 0) { uiDir = PLANAR_IDX; bSDCFlag = 1;} 999 else if (uiCode == 2) { uiDir = 5; bSDCFlag = 0;} 1000 else if (uiCode == 3) { uiDir = DMM_WEDGE_FULL_IDX; bSDCFlag = 1;} 1001 else if (uiCode == 4) { uiDir = DMM_WEDGE_FULL_IDX; bSDCFlag = 0;} 1002 else if (uiCode == 5) { uiDir = DMM_CONTOUR_PREDTEX_IDX; bSDCFlag = 0;} 1003 else if (uiCode == 6) { uiDir = DMM_WEDGE_PREDTEX_IDX; bSDCFlag = 0;} 1004 else if (uiCode == 14) { uiDir = DC_IDX; bSDCFlag = 1;} 1005 else if (uiCode == 31) { uiDir = DMM_WEDGE_PREDDIR_IDX; bSDCFlag = 0;} 1006 else if (uiCode == 30) { uiDir = EDGE_INTRA_IDX; bSDCFlag = 0;} 1007 } 1008 pcCU->setLumaIntraDirSubParts( (UChar)uiDir, uiAbsPartIdx, uiDepth ); 1009 pcCU->setSDCFlagSubParts(bSDCFlag, uiAbsPartIdx, 0, uiDepth); 1010 } 1011 Void TDecSbac::parseDepthModelingTable ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 1012 { 1013 parseDepthIntraMode(pcCU,uiAbsPartIdx,uiDepth); 1014 1015 UInt uiDir = pcCU->getLumaIntraDir(uiAbsPartIdx); 1016 Bool bSdcFlag = pcCU->getSDCAvailable(uiAbsPartIdx) && pcCU->getSDCFlag(uiAbsPartIdx); 1017 Bool bDmmFlag = (uiDir >= NUM_INTRA_MODE && uiDir < EDGE_INTRA_IDX &&(!bSdcFlag))? 1:0; 1018 if (uiDir >= NUM_INTRA_MODE && uiDir < EDGE_INTRA_IDX)//DMM modes and SDC DMM1 1019 { 1020 if( uiDir == DMM_WEDGE_FULL_IDX ) { xParseWedgeFullInfo ( pcCU, uiAbsPartIdx, uiDepth ); } 1021 else if( uiDir == DMM_WEDGE_PREDTEX_IDX ) { xParseWedgePredTexInfo ( pcCU, uiAbsPartIdx, uiDepth ); } 1022 else if( uiDir == DMM_WEDGE_PREDDIR_IDX ) { xParseWedgePredDirInfo ( pcCU, uiAbsPartIdx, uiDepth ); } 1023 } 1024 else if(uiDir >= EDGE_INTRA_IDX)//CCM mode 1025 { 1026 xParseEdgeIntraInfo( pcCU, uiAbsPartIdx, uiDepth ); 1027 } 921 1028 922 1029 UInt uiSymbol; … … 1078 1185 bCodeEdgeIntra = true; 1079 1186 } 1187 #endif 1080 1188 #endif 1081 1189 Int uiPreds[3] = {-1, -1, -1}; -
branches/HTM-6.2-dev0/source/Lib/TLibDecoder/TDecSbac.h
r433 r434 192 192 Void parsePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 193 193 Void parsePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 194 #if PKU_QC_DEPTH_INTRA_UNI_D0195 195 Void parseDepthIntraMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 196 Void parseDepthModelingTable( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 197 #endif 194 198 Void parseIntraDirLumaAng( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 195 199 -
branches/HTM-6.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r433 r434 869 869 m_pcEntropyCoderIf->codePredMode( pcCU, uiAbsPartIdx ); 870 870 871 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 871 872 #if RWTH_SDC_DLT_B0036 872 873 // if B-Slice, code SDC flag later … … 1290 1291 { 1291 1292 encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx 1293 #if PKU_QC_DEPTH_INTRA_UNI_D0195 1294 ,bSdcRD 1295 #endif 1296 ); 1297 #if PKU_QC_DEPTH_INTRA_UNI_D0195 1298 if(!pcCU->getSDCFlag(uiAbsPartIdx)) 1299 #endif 1292 1300 encodeIntraDirModeChroma( pcCU, uiAbsPartIdx, bRD ); 1293 1301 } … … 1487 1495 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 1488 1496 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 1497 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 1489 1498 encodeSDCResidualData(pcCU, uiAbsPartIdx); 1490 1499 #endif … … 1904 1913 m_pcEntropyCoderIf->codeSDCFlag(pcCU, uiAbsPartIdx); 1905 1914 } 1915 #endif 1906 1916 Void TEncEntropy::encodeSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 1907 1917 {
Note: See TracChangeset for help on using the changeset viewer.