Changeset 542 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
- Timestamp:
- 23 Jul 2013, 15:19:06 (12 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/CommonDef.h
r541 r542 60 60 #define HM_VERSION "11.0" ///< 61 61 #else 62 #define NV_VERSION "1 0.1" ///< Current software version62 #define NV_VERSION "11.0" ///< Current software version 63 63 #endif 64 64 -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp
r537 r542 3095 3095 #endif 3096 3096 //pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx()); 3097 #if H_3D _CLEANUPS//Notes from QC: for BVSP coded blocks, the reference index shall not be equal to -1 due to the adoption of JCT3V-D01913097 #if H_3D //Notes from QC: for BVSP coded blocks, the reference index shall not be equal to -1 due to the adoption of JCT3V-D0191 3098 3098 pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx()); 3099 #else3100 if (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0)3101 {3102 for (Int i=0; i<getSlice()->getNumRefIdx(REF_PIC_LIST_0); i++)3103 {3104 if (getSlice()->getRefPOC(REF_PIC_LIST_0, i) == getSlice()->getPOC())3105 {3106 pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,i);3107 break;3108 }3109 }3110 }3111 3099 #endif 3112 3100 } … … 3124 3112 clipMv(cMvPred); 3125 3113 #endif 3126 //pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());3127 #if H_3D_CLEANUPS3128 3114 pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()); 3129 #else3130 if (pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0)3131 {3132 for (Int i=0; i<getSlice()->getNumRefIdx(REF_PIC_LIST_1); i++)3133 {3134 if (getSlice()->getRefPOC(REF_PIC_LIST_1, i) == getSlice()->getPOC())3135 {3136 pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,i);3137 break;3138 }3139 }3140 }3141 #endif3142 3115 } 3143 3116 } 3144 #if !H_3D_CLEANUPS3145 if (!((pcMvFieldNeighbours[iCount<<1].getRefIdx()<0 && !getSlice()->isInterB())3146 || (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0 && pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0 && getSlice()->isInterB())))3147 {3148 #endif3149 3117 #if H_3D_NBDV 3150 3118 pcMvFieldNeighbours[iCount<<1 ].getMv().setIDVFlag (false); … … 3156 3124 } 3157 3125 iCount ++; 3158 #if !H_3D_CLEANUPS3159 }3160 else3161 {3162 assert(0);3163 }3164 #endif3165 3126 } 3166 3127 } … … 3174 3135 3175 3136 Int iPdmInterDir; 3176 #if H_3D_CLEANUPS 3137 3177 3138 if( iPdmDir[0] ) 3178 #else3179 if( iPdmDir[0] && ivMvPredFlag )3180 #endif3181 3139 { 3182 3140 abCandIsInter [ iCount ] = true; … … 3199 3157 iCount ++; 3200 3158 } 3201 #if H_3D_CLEANUPS3202 3159 // early termination 3203 3160 if (iCount == getSlice()->getMaxNumMergeCand()) … … 3206 3163 } 3207 3164 #endif 3208 #endif 3209 3210 #if !H_3D_IV_MERGE 3211 #if H_3D_NBDV //Notes from QC: DvMCP related variables. 3212 //acPdmMv[0].m_bDvMcp = acPdmMv[1].m_bDvMcp = acPdmMv[2].m_bDvMcp = acPdmMv[3].m_bDvMcp = false; 3213 #endif 3214 3215 #if H_3D_NBDV //Notes from QC: Some examples to show how to use the NBDV and DoNBDV variables. Remove this comment once it is done 3216 DisInfo cDisInfo; 3217 cDisInfo.bDV = false; 3218 //if(!bNoPdmMerge) 3219 //{ 3220 //cDisInfo.bDV = getDvInfo(uiAbsPartIdx).bDV; 3221 //cDisInfo.m_aVIdxCan = getDvInfo(uiAbsPartIdx).m_aVIdxCan; 3222 //cDisInfo.m_acNBDV = getDvInfo(uiAbsPartIdx).m_acNBDV; 3223 //#if H_3D_NBDV_REF 3224 //cDisInfo.m_acDoNBDV = getDvInfo(uiAbsPartIdx).m_acDoNBDV; 3225 //#endif 3226 //} 3227 #endif 3228 #endif 3165 3229 3166 //left 3230 3167 UInt uiLeftPartIdx = 0; … … 3402 3339 3403 3340 #if H_3D_IV_MERGE 3404 #if H_3D_CLEANUPS3405 3341 if( iPdmDir[1] ) 3406 #else3407 if(ivMvPredFlag && iPdmDir[1] )3408 #endif3409 3342 { 3410 3343 assert(iCount < getSlice()->getMaxNumMergeCand()); … … 5087 5020 clipMv( cDispVec ); 5088 5021 pDInfo->m_acNBDV = cDispVec; 5089 #if H_3D_CLEANUPS5090 5022 pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ]; 5091 5023 assert(pDInfo->m_aVIdxCan == 0); //Notes from QC: only works for CTC 5092 #else5093 pDInfo->m_aVIdxCan = 0;5094 #endif5095 5024 #if H_3D_NBDV_REF 5096 #if H_3D_CLEANUPS5097 5025 TComPic* picDepth = getSlice()->getIvPic( true, pDInfo->m_aVIdxCan ); 5098 #else5099 TComPic* picDepth = getSlice()->getIvPic( true, 0 );5100 #endif5101 5026 assert(picDepth!=NULL); 5102 5027 5103 5028 if (picDepth && bDepthRefine) 5104 #if H_3D_CLEANUPS 5029 { 5105 5030 estimateDVFromDM (pDInfo->m_aVIdxCan, uiPartIdx, picDepth, uiPartAddr, &cDispVec); 5106 #else 5107 estimateDVFromDM(0, uiPartIdx, picDepth, uiPartAddr, &cDispVec ); // from base view 5108 #endif 5031 } 5109 5032 pDInfo->m_acDoNBDV = cDispVec; 5110 5033 #endif … … 5338 5261 { 5339 5262 TComSlice* pcSlice = getSlice (); 5340 #if H_3D_CLEANUPS //Notes from QC: to be aligned with the spec.5341 5263 Int iViewIndex = pDInfo->m_aVIdxCan; 5342 #else5343 Bool valid = false;5344 5345 Int iViewIndex = 0;5346 5347 for( UInt uiBIndex = 0; uiBIndex < pcSlice->getViewIndex( ) && !valid; uiBIndex++ )5348 {5349 UInt uiBaseIndex = uiBIndex;5350 TComPic* pcBasePic = pcSlice->getIvPic( false, uiBaseIndex );5351 for( Int iRefListId = 0; iRefListId < 2 && !valid; iRefListId++ )5352 {5353 RefPicList eRefPicListTest = RefPicList( iRefListId );5354 Int iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;5355 for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )5356 {5357 if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()5358 && pcBasePic->getViewIndex() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewIndex())5359 {5360 valid = true;5361 iViewIndex = uiBaseIndex;5362 break;5363 }5364 }5365 }5366 }5367 5368 if (!valid)5369 return false;5370 #endif5371 5264 //--- get base CU/PU and check prediction mode --- 5372 5265 TComPic* pcBasePic = pcSlice->getIvPic( false, iViewIndex ); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.cpp
r540 r542 118 118 , m_icSkipParseFlag ( false ) 119 119 #endif 120 #if H_3D _GEN120 #if H_3D 121 121 , m_depthToDisparityB ( NULL ) 122 122 , m_depthToDisparityF ( NULL ) … … 158 158 delete[] m_puiSubstreamSizes; 159 159 m_puiSubstreamSizes = NULL; 160 #if H_3D _GEN160 #if H_3D 161 161 for( UInt i = 0; i < getViewIndex(); i++ ) 162 162 { … … 1529 1529 #endif 1530 1530 } 1531 #if H_3D _GEN1531 #if H_3D 1532 1532 for( Int i = 0; i < MAX_NUM_LAYERS; i++ ) 1533 1533 { … … 2636 2636 } 2637 2637 #endif 2638 #if H_3D _GEN2638 #if H_3D 2639 2639 Void TComSlice::setIvPicLists( TComPicLists* m_ivPicLists ) 2640 2640 { -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.h
r541 r542 1568 1568 Bool m_icSkipParseFlag; 1569 1569 #endif 1570 #if H_3D _GEN1570 #if H_3D 1571 1571 TComPic* m_ivPicsCurrPoc [2][MAX_NUM_LAYERS]; 1572 1572 Int** m_depthToDisparityB; … … 1630 1630 TComPic* getRefPic ( RefPicList e, Int iRefIdx) { return m_apcRefPicList[e][iRefIdx]; } 1631 1631 Int getRefPOC ( RefPicList e, Int iRefIdx) { return m_aiRefPOCList[e][iRefIdx]; } 1632 #if H_3D _GEN1632 #if H_3D 1633 1633 TComPic* getIvPic ( Bool depthFlag, Int viewIndex){ return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 1634 1634 #endif … … 1849 1849 #endif 1850 1850 #endif 1851 #if H_3D _GEN1851 #if H_3D 1852 1852 Void setIvPicLists( TComPicLists* m_ivPicLists ); 1853 1853 Void setDepthToDisparityLUTs(); -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TypeDef.h
r541 r542 55 55 56 56 #ifndef HEVC_EXT 57 #define HEVC_EXT 257 #define HEVC_EXT 1 58 58 #endif 59 59 … … 76 76 // HHI_QTLPC_RAU_OFF_C0160 // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 77 77 78 #define H_3D_PDM_CAM_PARAS 0 ///< PDM related parts of camera parameters, should be removed if not used anymore.79 78 #define H_3D_VSO 1 // VSO, View synthesis optimization, includes: 80 79 // HHI_VSO … … 110 109 // LG_D0092: Multiple VSP candidate allowed 111 110 112 #if H_3D_VSP113 #define H_3D_VSP_POSITION 3 // The only supported position114 #define H_3D_VSP_BLOCKSIZE 4 // Supported values: 1, 2, and 4115 #if H_3D_VSP_BLOCKSIZE == 1116 #define H_3D_VSP_CONSTRAINED 1 // Constrained VSP @ 1x1117 #else118 #define H_3D_VSP_CONSTRAINED 0119 #endif120 #endif121 122 111 #define H_3D_IV_MERGE 1 // Inter-view motion merge candidate 123 112 // HHI_INTER_VIEW_MOTION_PRED … … 130 119 #define H_3D_TMVP 1 // QC_TMVP_C0047 131 120 // Sony_M23639 132 #define H_3D_GEN 1 // Some general changes can be removed after merge 133 #define H_3D_CLEANUPS 1 // Temporary for minor fixes can be removed after merge 134 #define H_3D_FIX 1 // Temporary for minor fixes can be removed after merge 135 #define H_3D_VSO_FIX_BORDRE_EXTENSION 1 // Temporary for minor fixes can be removed after merge 121 136 122 #define H_3D_DIM 1 // DIM, Depth intra modes, includes: 137 123 // HHI_DMM_WEDGE_INTRA … … 156 142 ///////////////////////////////////////////////////////////////////////////////////////// 157 143 144 158 145 ///// ***** VIEW SYNTHESIS OPTIMIZAION ********* 159 146 #if H_3D_VSO … … 169 156 //// ****** Neighbouring block-based Disparity Vector ********* 170 157 #if H_3D_NBDV 171 #if H_3D_CLEANUPS172 158 #define DVFROM_LEFTBELOW 0 173 159 #define DVFROM_LEFT 1 … … 176 162 #define DVFROM_ABOVELEFT 4 177 163 #define IDV_CANDS 5 178 #else179 #define IDV_CANDS 6180 #define DVFROM_LEFTBELOW 1181 #define DVFROM_LEFT 2182 #define DVFROM_ABOVERIGHT 3183 #define DVFROM_ABOVE 4184 #define DVFROM_ABOVELEFT 5185 #endif186 164 #endif 187 165 ///// ***** ADVANCED INTERVIEW RESIDUAL PREDICTION ********* … … 198 176 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 199 177 // LG_ZEROINTRADEPTHRESI_A0087 178 #endif 179 180 ///// ***** VIEW SYNTHESIS PREDICTION ********* 181 #if H_3D_VSP 182 #define H_3D_VSP_POSITION 3 // The only supported position 183 #define H_3D_VSP_BLOCKSIZE 4 // Supported values: 1, 2, and 4 184 #if H_3D_VSP_BLOCKSIZE == 1 185 #define H_3D_VSP_CONSTRAINED 1 // Constrained VSP @ 1x1 186 #else 187 #define H_3D_VSP_CONSTRAINED 0 188 #endif 200 189 #endif 201 190
Note: See TracChangeset for help on using the changeset viewer.