Changeset 511 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source
- Timestamp:
- 3 Jul 2013, 14:03:18 (11 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp
r510 r511 2654 2654 picDepth = getSlice()->getIvPic( true, refViewIdx ); 2655 2655 2656 / *2656 ////////// 2657 2657 // Code if simply re-writing 2658 if(ucVspMergePos == H_3D_VSPPOSITION && picDepth != NULL && 0 != m_pcSlice->getViewIndex() ) // VSP can be used only when depth is used as input 2659 { 2660 abCandIsInter[iCount] = true; 2661 puhInterDirNeighbours[iCount] = 1; 2662 vspFlag[iCount] = 1; 2663 vspDirTrue[iCount] = 0; // TODO: Check if this is really useful!!!! 2664 2665 Int iRefIdxList0 = getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC() == getSlice()->getPOC() ? 0 : 2666 (getSlice()->getAlterRefIdx(REF_PIC_LIST_0) == -1 ? NOT_VALID : getSlice()->getAlterRefIdx(REF_PIC_LIST_0)); 2667 pcMvFieldNeighbours[iCount<<1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList0 ); 2668 if (getSlice()->isInterB()) 2669 { 2670 puhInterDirNeighbours[iCount] = xGetVspDirection(uiPUIdx); 2671 Int iRefIdxList1 = getSlice()->getRefPic(REF_PIC_LIST_1, 0)->getPOC() == getSlice()->getPOC() ? 0 : 2672 (getSlice()->getAlterRefIdx(REF_PIC_LIST_1) == -1 ? NOT_VALID : getSlice()->getAlterRefIdx(REF_PIC_LIST_1)); 2673 pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList1 ); 2674 } 2675 2676 if ( mrgCandIdx == iCount ) 2677 return true; 2678 2679 iCount++; 2680 } 2681 */ 2658 // if(ucVspMergePos == H_3D_VSPPOSITION && picDepth != NULL && 0 != m_pcSlice->getViewIndex() ) // VSP can be used only when depth is used as input 2659 // { 2660 // abCandIsInter[iCount] = true; 2661 // puhInterDirNeighbours[iCount] = 1; 2662 // vspFlag[iCount] = 1; 2663 // vspDirTrue[iCount] = 0; // TODO: Check if this is really useful!!!! 2664 // 2665 // Int iRefIdxList0 = getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC() == getSlice()->getPOC() ? 0 : 2666 // (getSlice()->getAlterRefIdx(REF_PIC_LIST_0) == -1 ? NOT_VALID : getSlice()->getAlterRefIdx(REF_PIC_LIST_0)); 2667 // pcMvFieldNeighbours[iCount<<1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList0 ); 2668 // if (getSlice()->isInterB()) 2669 // { 2670 // puhInterDirNeighbours[iCount] = xGetVspDirection(uiPUIdx); 2671 // Int iRefIdxList1 = getSlice()->getRefPic(REF_PIC_LIST_1, 0)->getPOC() == getSlice()->getPOC() ? 0 : 2672 // (getSlice()->getAlterRefIdx(REF_PIC_LIST_1) == -1 ? NOT_VALID : getSlice()->getAlterRefIdx(REF_PIC_LIST_1)); 2673 // pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList1 ); 2674 // } 2675 // 2676 // if ( mrgCandIdx == iCount ) 2677 // return true; 2678 // 2679 // iCount++; 2680 // } 2681 ///////////// 2682 2682 2683 if(ucVspMergePos == H_3D_VSP_POSITION && picDepth != NULL && 0 != m_pcSlice->getViewIndex() ) // VSP can be used only when depth is used as input 2683 2684 { … … 2699 2700 if (refViewIdx == viewIdxRefInList) 2700 2701 { 2702 Int iRefIdxList0 = getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC() == getSlice()->getPOC() ? 0 : 2703 (getSlice()->getAlterRefIdx(REF_PIC_LIST_0) == -1 ? NOT_VALID : getSlice()->getAlterRefIdx(REF_PIC_LIST_0)); 2704 2701 2705 refViewAvailFlag = true; 2702 2706 predFlag[iRefListIdX] = 1; 2703 2707 iRefListIdY = 1 - iRefListIdX; 2704 pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i ); 2708 pcMvFieldNeighbours[iCount<<1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList0 ); 2709 // pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i ); // Buggy code 2705 2710 } 2706 2711 } … … 2716 2721 if (refViewIdx != viewIdxRefInList) 2717 2722 { 2723 Int iRefIdxList1 = getSlice()->getRefPic(REF_PIC_LIST_1, 0)->getPOC() == getSlice()->getPOC() ? 0 : 2724 (getSlice()->getAlterRefIdx(REF_PIC_LIST_1) == -1 ? NOT_VALID : getSlice()->getAlterRefIdx(REF_PIC_LIST_1)); 2725 2718 2726 refViewAvailFlag = true; 2719 2727 predFlag[iRefListIdY] = 1; 2720 pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i ); 2728 pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList1 ); 2729 //pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i ); // Buggy code 2721 2730 } 2722 2731 } -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComPrediction.cpp
r510 r511 594 594 595 595 // Step 4: Do compensation 596 TComMv cMv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr ); 596 TComMv cMv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr ); // cMv is the disparity vector derived from the neighbors 597 597 pcCU->clipMv(cMv); 598 598 Int iBlkX = ( pcCU->getAddr() % pRefPicBaseDepth->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ uiAbsPartIdx ] ];
Note: See TracChangeset for help on using the changeset viewer.