Changeset 936 in 3DVCSoftware for branches/HTM-10.2-dev0/source/Lib/TLibCommon
- Timestamp:
- 22 Apr 2014, 16:03:08 (11 years ago)
- Location:
- branches/HTM-10.2-dev0/source/Lib/TLibCommon
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-10.2-dev0/source/Lib/TLibCommon/ContextTables.h
r884 r936 430 430 431 431 #if H_3D_DBBP 432 #if MTK_DBBP_SIGNALING_H0094 432 433 static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] = 433 434 { 434 { CNU }, 435 { CNU }, 436 { CNU }, 437 }; 438 #endif 439 440 #endif 435 { 161 }, 436 { 161 }, 437 { 161 }, 438 }; 439 #else 440 static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] = 441 { 442 { CNU }, 443 { CNU }, 444 { CNU }, 445 }; 446 #endif 447 #endif 448 449 #endif -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r935 r936 2352 2352 2353 2353 TComMv cDv = depthRefineFlag ? DvInfo.m_acDoNBDV : DvInfo.m_acNBDV; 2354 #if SEC_VER_DONBDV_H0103 2355 if( depthRefineFlag ) 2356 { 2357 cDv.setVer(0); 2358 } 2359 #endif 2354 2360 2355 2361 Int depthPosX = Clip3(0, iPictureWidth - iWidth, iBlkX + ((cDv.getHor()+2)>>2)); … … 4245 4251 && !bARPFlag 4246 4252 #endif 4253 #if RWTH_DBBP_NO_SPU_H0057 4254 && !bDBBPFlag 4255 #endif 4247 4256 ) 4248 4257 { … … 4268 4277 && !bARPFlag 4269 4278 #endif 4279 #if RWTH_DBBP_NO_SPU_H0057 4280 && !bDBBPFlag 4281 #endif 4270 4282 ) 4271 4283 { … … 4291 4303 && !bARPFlag 4292 4304 #endif 4305 #if RWTH_DBBP_NO_SPU_H0057 4306 && !bDBBPFlag 4307 #endif 4293 4308 ) 4294 4309 { … … 4311 4326 #if H_3D_ARP 4312 4327 && !bARPFlag 4328 #endif 4329 #if RWTH_DBBP_NO_SPU_H0057 4330 && !bDBBPFlag 4313 4331 #endif 4314 4332 ) … … 4334 4352 #if H_3D_ARP 4335 4353 && !bARPFlag 4354 #endif 4355 #if RWTH_DBBP_NO_SPU_H0057 4356 && !bDBBPFlag 4336 4357 #endif 4337 4358 ) … … 5194 5215 (nPSW + nPSH > 12) && 5195 5216 #endif 5217 #if RWTH_DBBP_NO_SPU_H0057 5218 !bDBBPFlag && 5219 #endif 5196 5220 #if ETRIKHU_CLEANUP_H0083 5197 5221 xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) ) … … 7169 7193 7170 7194 TComMv cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV; 7195 #if SEC_VER_DONBDV_H0103 7196 if( depthRefineFlag ) 7197 { 7198 cDv.setVer(0); 7199 } 7200 #endif 7171 7201 7172 7202 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); … … 7308 7338 7309 7339 TComMv cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV; 7340 #if SEC_VER_DONBDV_H0103 7341 if( depthRefineFlag ) 7342 { 7343 cDv.setVer(0); 7344 } 7345 #endif 7310 7346 7311 7347 Bool abPdmAvailable[8] = {false, false, false, false, false, false, false, false}; -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComDataCU.h
r935 r936 70 70 Bool abMergeFlag[2]; // for two segments 71 71 UChar auhMergeIndex[2]; // for two segments 72 #if !RWTH_DBBP_NO_SPU_H0057 72 73 Char ahVSPFlag[2]; // for two segments 73 74 DisInfo acDvInfo[2]; // for two segments 75 #endif 74 76 75 77 PartSize eVirtualPartSize; -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r935 r936 643 643 644 644 // start mapping process 645 #if !MTK_DBBP_AMP_REM_H0072 645 646 Bool bAMPAvail = uiSize > 8; 646 647 Int matchedPartSum[6][2] = {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}; // counter for each part size and boolean option 647 648 PartSize virtualPartSizes[6] = { SIZE_Nx2N, SIZE_2NxN, SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N }; 649 #else 650 Int matchedPartSum[2][2] = {{0,0},{0,0}}; // counter for each part size and boolean option 651 PartSize virtualPartSizes[2] = { SIZE_Nx2N, SIZE_2NxN}; 652 #endif 648 653 649 654 UInt uiHalfSize = uiSize>>1; 655 #if !MTK_DBBP_AMP_REM_H0072 650 656 UInt uiQuarterSize = uiSize>>2; 657 #endif 651 658 652 659 for (Int y=0; y<uiSize; y+=iSubSample) … … 681 688 } 682 689 690 #if !MTK_DBBP_AMP_REM_H0072 683 691 if( bAMPAvail ) 684 692 { … … 723 731 } 724 732 } 733 #endif 725 734 } 726 735 … … 732 741 733 742 Int iMaxMatchSum = 0; 734 for(Int p=0; p<6; p++) // loop over partition sizes 743 #if !MTK_DBBP_AMP_REM_H0072 744 for(Int p=0; p<6; p++) // loop over partition 745 #else 746 for(Int p=0; p<2; p++) // loop over partition 747 #endif 735 748 { 736 749 for( Int b=0; b<=1; b++ ) // loop over boolean options … … 842 855 843 856 UInt uiMaskStride= MAX_CU_SIZE; 857 #if SEC_DBBP_FILTERING_H0104 858 Pel filSrc = 0; 859 Pel* tmpTar = 0; 860 tmpTar = (Pel *)xMalloc(Pel, uiWidth*uiHeight); 861 #endif 844 862 845 863 // backup pointer … … 855 873 856 874 // filtering 875 #if SEC_DBBP_FILTERING_H0104 876 tmpTar[y*uiWidth+x] = piSrc[ucSegment][x]; 877 #else 857 878 Bool t = (y==0)?pMaskStart[(y+1)*uiMaskStride+x]:pMaskStart[(y-1)*uiMaskStride+x]; 858 879 Bool l = (x==0)?pMaskStart[y*uiMaskStride+x+1]:pMaskStart[y*uiMaskStride+x-1]; … … 862 883 Bool bBlend = !((t&&l&&b&&r) || (!t&&!l&&!b&&!r)); 863 884 piDst[x] = bBlend?((piSrc[0][x]+piSrc[1][x]+1)>>1):piSrc[ucSegment][x]; 885 #endif 864 886 } 865 887 866 888 piSrc[0] += uiSrcStride; 867 889 piSrc[1] += uiSrcStride; 890 #if !SEC_DBBP_FILTERING_H0104 868 891 piDst += uiDstStride; 892 #endif 869 893 pMask += uiMaskStride; 870 894 } 895 896 #if SEC_DBBP_FILTERING_H0104 897 for (Int y=0; y<uiHeight; y++) 898 { 899 for (Int x=0; x<uiWidth; x++) 900 { 901 Bool t = (y==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y-1)*uiMaskStride+x]; 902 Bool l = (x==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x-1]; 903 Bool b = (y==uiHeight-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y+1)*uiMaskStride+x]; 904 Bool r = (x==uiWidth-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x+1]; 905 Bool c =pMaskStart[y*uiMaskStride+x]; 906 907 Pel left, right, top, bottom; 908 left = (x==0) ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x-1]; 909 right = (x==uiWidth-1) ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x+1]; 910 top = (y==0) ? tmpTar[y*uiWidth+x] : tmpTar[(y-1)*uiWidth+x]; 911 bottom = (y==uiHeight-1) ? tmpTar[y*uiWidth+x] : tmpTar[(y+1)*uiWidth+x]; 912 913 if(!((l&&r&&c) || (!l&&!r&&!c))) 914 { 915 filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 )); 916 } 917 else 918 { 919 filSrc = tmpTar[y*uiWidth+x]; 920 } 921 922 if(!((t&&b&&c) || (!t&&!b&&!c))) 923 { 924 filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( top + (filSrc << 1) + bottom ) >> 2 )); 925 } 926 piDst[x] = filSrc; 927 } 928 piDst += uiDstStride; 929 } 930 if ( tmpTar ) { xFree(tmpTar); tmpTar = NULL; } 931 #endif 871 932 872 933 // now combine chroma … … 879 940 UInt uiWidthC = uiWidth >> 1; 880 941 UInt uiHeightC = uiHeight >> 1; 942 #if SEC_DBBP_FILTERING_H0104 943 Pel filSrcU = 0, filSrcV = 0; 944 Pel* tmpTarU = 0, *tmpTarV = 0; 945 tmpTarU = (Pel *)xMalloc(Pel, uiWidthC*uiHeightC); 946 tmpTarV = (Pel *)xMalloc(Pel, uiWidthC*uiHeightC); 947 #endif 881 948 pMask = pMaskStart; 882 949 … … 889 956 890 957 // filtering 958 #if SEC_DBBP_FILTERING_H0104 959 tmpTarU[y*uiWidthC+x] = piSrcU[ucSegment][x]; 960 tmpTarV[y*uiWidthC+x] = piSrcV[ucSegment][x]; 961 #else 891 962 Bool t = (y==0)?pMaskStart[(y+1)*2*uiMaskStride+x*2]:pMaskStart[(y-1)*2*uiMaskStride+x*2]; 892 963 Bool l = (x==0)?pMaskStart[y*2*uiMaskStride+(x+1)*2]:pMaskStart[y*2*uiMaskStride+(x-1)*2]; … … 898 969 piDstU[x] = bBlend?((piSrcU[0][x]+piSrcU[1][x]+1)>>1):piSrcU[ucSegment][x]; 899 970 piDstV[x] = bBlend?((piSrcV[0][x]+piSrcV[1][x]+1)>>1):piSrcV[ucSegment][x]; 971 #endif 900 972 } 901 973 … … 904 976 piSrcV[0] += uiSrcStrideC; 905 977 piSrcV[1] += uiSrcStrideC; 978 #if !SEC_DBBP_FILTERING_H0104 906 979 piDstU += uiDstStrideC; 907 980 piDstV += uiDstStrideC; 981 #endif 908 982 pMask += 2*uiMaskStride; 909 983 } 984 985 #if SEC_DBBP_FILTERING_H0104 986 for (Int y=0; y<uiHeightC; y++) 987 { 988 for (Int x=0; x<uiWidthC; x++) 989 { 990 Bool t = (y==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y-1)*2*uiMaskStride+x*2]; 991 Bool l = (x==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x-1)*2]; 992 Bool b = (y==uiHeightC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y+1)*2*uiMaskStride+x*2]; 993 Bool r = (x==uiWidthC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x+1)*2]; 994 Bool c =pMaskStart[y*2*uiMaskStride+x*2]; 995 996 Pel leftU, rightU, topU, bottomU; 997 leftU = (x==0) ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x-1]; 998 rightU = (x==uiWidthC-1) ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x+1]; 999 topU = (y==0) ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y-1)*uiWidthC+x]; 1000 bottomU = (y==uiHeightC-1) ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y+1)*uiWidthC+x]; 1001 1002 Pel leftV, rightV, topV, bottomV; 1003 leftV = (x==0) ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x-1]; 1004 rightV = (x==uiWidthC-1) ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x+1]; 1005 topV = (y==0) ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y-1)*uiWidthC+x]; 1006 bottomV = (y==uiHeightC-1) ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y+1)*uiWidthC+x]; 1007 1008 if(!((l&&r&&c) || (!l&&!r&&!c))) 1009 { 1010 filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 )); 1011 filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 )); 1012 } 1013 else 1014 { 1015 filSrcU = tmpTarU[y*uiWidthC+x]; 1016 filSrcV = tmpTarV[y*uiWidthC+x]; 1017 } 1018 1019 if(!((t&&b&&c) || (!t&&!b&&!c))) 1020 { 1021 filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topU + (filSrcU << 1) + bottomU ) >> 2 )); 1022 filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topV + (filSrcV << 1) + bottomV ) >> 2 )); 1023 } 1024 1025 piDstU[x] = filSrcU; 1026 piDstV[x] = filSrcV; 1027 } 1028 piDstU += uiDstStrideC; 1029 piDstV += uiDstStrideC; 1030 } 1031 if ( tmpTarU ) { xFree(tmpTarU); tmpTarU = NULL; } 1032 if ( tmpTarV ) { xFree(tmpTarV); tmpTarV = NULL; } 1033 #endif 910 1034 } 911 1035 #endif -
branches/HTM-10.2-dev0/source/Lib/TLibCommon/TypeDef.h
r935 r936 260 260 #define DVFROM_ABOVE 1 261 261 #define IDV_CANDS 2 262 #define SEC_VER_DONBDV_H0103 1 // Vertical DV Restriction for DoNBDV 262 263 #endif 263 264 … … 275 276 #if H_3D_DIM_DLT 276 277 #define H_3D_DELTA_DLT 1 278 #define SEC_NO_RESI_DLT_H0105 1 279 #define MTK_DLT_CODING_FIX_H0091 1 277 280 #endif 278 281 #define H_3D_DIM_ENC 1 // Depth Intra encoder optimizations, includes: … … 303 306 #define DBBP_INVALID_SHORT (-4) 304 307 #define RWTH_DBBP_PACK_MODE SIZE_2NxN 308 #define MTK_DBBP_AMP_REM_H0072 1 309 #define RWTH_DBBP_NO_SPU_H0057 1 310 #define SEC_DBBP_FILTERING_H0104 1 311 #define MTK_DBBP_SIGNALING_H0094 1 305 312 #endif 306 313
Note: See TracChangeset for help on using the changeset viewer.