Changeset 809 in 3DVCSoftware for branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder
- Timestamp:
- 29 Jan 2014, 03:07:07 (11 years ago)
- Location:
- branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder/TEncCu.cpp
r795 r809 1955 1955 } 1956 1956 else 1957 #endif 1958 #if NTT_STORE_SPDV_VSP_G0148 1959 if ( vspFlag[uiMergeCand] ) 1957 1960 { 1958 #endif 1961 UInt partAddr; 1962 Int vspSize; 1963 Int width, height; 1964 rpcTempCU->getPartIndexAndSize( 0, partAddr, width, height ); 1965 1966 if( uhInterDirNeighbours[ uiMergeCand ] & 0x01 ) 1967 { 1968 rpcTempCU->setMvFieldPUForVSP( rpcTempCU, partAddr, width, height, REF_PIC_LIST_0, cMvFieldNeighbours[ 2*uiMergeCand + 0 ].getRefIdx(), vspSize ); 1969 rpcTempCU->setVSPFlag( partAddr, vspSize ); 1970 } 1971 else 1972 { 1973 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1974 } 1975 if( uhInterDirNeighbours[ uiMergeCand ] & 0x02 ) 1976 { 1977 rpcTempCU->setMvFieldPUForVSP( rpcTempCU, partAddr, width, height, REF_PIC_LIST_1 , cMvFieldNeighbours[ 2*uiMergeCand + 1 ].getRefIdx(), vspSize ); 1978 rpcTempCU->setVSPFlag( partAddr, vspSize ); 1979 } 1980 else 1981 { 1982 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1983 } 1984 1985 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level 1986 } 1987 else 1988 #endif 1989 { 1959 1990 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level 1960 1991 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1961 1992 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1962 #if H_3D_SPIVMP1963 1993 } 1964 #endif1965 1994 // do MC 1966 1995 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); … … 1992 2021 1993 2022 rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth ); 2023 #if NTT_STORE_SPDV_VSP_G0148 // possible bug fix 2024 if( rpcTempCU->getSkipFlag(0) ) 2025 { 2026 rpcTempCU->setTrIdxSubParts(0, 0, uhDepth); 2027 } 2028 #endif 1994 2029 #if H_3D_INTER_SDC 1995 2030 TComDataCU *rpcTempCUPre = rpcTempCU; … … 2214 2249 2215 2250 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 2216 2251 2252 #if NTT_STORE_SPDV_VSP_G0148 // possible bug fix 2253 if( rpcTempCU->getQtRootCbf(0)==0 ) 2254 { 2255 rpcTempCU->setTrIdxSubParts(0, 0, uhDepth); 2256 } 2257 #endif 2217 2258 2218 2259 #if H_3D_VSO // M4 -
branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder/TEncSearch.cpp
r795 r809 3643 3643 3644 3644 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 3645 3646 #if H_3D_VSP && NTT_STORE_SPDV_VSP_G0148 3647 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3648 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3649 #endif 3645 3650 3646 3651 #if H_3D_SPIVMP … … 3662 3667 } 3663 3668 else 3664 { 3665 #endif 3669 #endif 3670 #if NTT_STORE_SPDV_VSP_G0148 3671 if ( vspFlag[uiMergeCand] ) 3672 { 3673 UInt partAddr; 3674 Int vspSize; 3675 Int width, height; 3676 pcCU->getPartIndexAndSize( iPUIdx, partAddr, width, height ); 3677 3678 if( uhInterDirNeighbours[ uiMergeCand ] & 0x01 ) 3679 { 3680 pcCU->setMvFieldPUForVSP( pcCU, partAddr, width, height, REF_PIC_LIST_0, cMvFieldNeighbours[ 2*uiMergeCand + 0 ].getRefIdx(), vspSize ); 3681 pcCU->setVSPFlag( partAddr, vspSize ); 3682 } 3683 else 3684 { 3685 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3686 } 3687 if( uhInterDirNeighbours[ uiMergeCand ] & 0x02 ) 3688 { 3689 pcCU->setMvFieldPUForVSP( pcCU, partAddr, width, height, REF_PIC_LIST_1, cMvFieldNeighbours[ 2*uiMergeCand + 1 ].getRefIdx(), vspSize ); 3690 pcCU->setVSPFlag( partAddr, vspSize ); 3691 } 3692 else 3693 { 3694 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3695 } 3696 } 3697 else 3698 #endif 3699 { 3666 3700 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3667 3701 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3668 #if H_3D_SPIVMP 3669 } 3670 #endif 3671 3672 #if H_3D_VSP 3702 } 3703 3704 #if H_3D_VSP && !NTT_STORE_SPDV_VSP_G0148 3673 3705 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3674 3706 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); … … 4426 4458 } 4427 4459 else 4428 { 4429 #endif 4460 #endif 4461 #if NTT_STORE_SPDV_VSP_G0148 4462 if ( vspFlag[uiMRGIndex] ) 4463 { 4464 UInt partAddrTemp; 4465 Int vspSize; 4466 Int width, height; 4467 pcCU->getPartIndexAndSize( iPartIdx, partAddrTemp, width, height ); // true or pcCU->getTotalNumPart()==256 4468 4469 if( uiMRGInterDir & 0x01 ) 4470 { 4471 pcCU->setMvFieldPUForVSP( pcCU, partAddrTemp, width, height, REF_PIC_LIST_0, cMRGMvField[0].getRefIdx(), vspSize ); 4472 pcCU->setVSPFlag( partAddrTemp, vspSize ); 4473 } 4474 else 4475 { 4476 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 4477 } 4478 if( uiMRGInterDir & 0x02 ) 4479 { 4480 pcCU->setMvFieldPUForVSP( pcCU, partAddrTemp, width, height, REF_PIC_LIST_1, cMRGMvField[1].getRefIdx(), vspSize ); 4481 pcCU->setVSPFlag( partAddrTemp, vspSize ); 4482 } 4483 else 4484 { 4485 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4486 } 4487 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4488 } 4489 else 4490 #endif 4491 { 4430 4492 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4431 4493 { … … 4433 4495 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4434 4496 } 4435 #if H_3D_SPIVMP 4436 } 4437 #endif 4497 } 4438 4498 4439 4499 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvd ( cMvZero, ePartSize, uiPartAddr, 0, iPartIdx );
Note: See TracChangeset for help on using the changeset viewer.