Changeset 596 in 3DVCSoftware for branches/HTM-DEV-2.0-dev1-Fix/source/Lib/TLibEncoder
- Timestamp:
- 28 Aug 2013, 04:55:26 (12 years ago)
- Location:
- branches/HTM-DEV-2.0-dev1-Fix/source/Lib/TLibEncoder
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-2.0-dev1-Fix/source/Lib/TLibEncoder/TEncCu.cpp
r566 r596 416 416 417 417 Bool bTrySplitDQP = true; 418 418 #if MTK_VSP_FIX_ALIGN_WD_E0172 419 DisInfo DvInfo; 420 DvInfo.bDV = false; 421 DvInfo.m_acNBDV.setZero(); 422 DvInfo.m_aVIdxCan = 0; 423 #if H_3D_NBDV_REF 424 DvInfo.m_acDoNBDV.setZero(); 425 #endif 426 #endif 419 427 static Double afCost[ MAX_CU_DEPTH ]; 420 428 static Int aiNum [ MAX_CU_DEPTH ]; … … 517 525 518 526 #if H_3D_NBDV 527 #if !MTK_VSP_FIX_ALIGN_WD_E0172 519 528 DisInfo DvInfo; 520 529 DvInfo.bDV = false; … … 524 533 DvInfo.m_acDoNBDV.setZero(); 525 534 #endif 526 535 #endif 527 536 if( rpcTempCU->getSlice()->getSliceType() != I_SLICE ) 528 537 { … … 571 580 #endif 572 581 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); rpcTempCU->initEstData( uiDepth, iQP );//by Competition for inter_2Nx2N 582 #if MTK_VSP_FIX_ALIGN_WD_E0172 583 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 584 #endif 573 585 } 574 586 // SKIP … … 578 590 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, &earlyDetectionSkipMode );//by Merge for inter_2Nx2N 579 591 rpcTempCU->initEstData( uiDepth, iQP ); 580 592 #if MTK_VSP_FIX_ALIGN_WD_E0172 593 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 594 #endif 581 595 // fast encoder decision for early skip 582 596 if ( m_pcEncCfg->getUseFastEnc() ) … … 599 613 #endif 600 614 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); rpcTempCU->initEstData( uiDepth, iQP ); 615 #if MTK_VSP_FIX_ALIGN_WD_E0172 616 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 617 #endif 601 618 if(m_pcEncCfg->getUseCbfFastMode()) 602 619 { … … 679 696 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN ); 680 697 rpcTempCU->initEstData( uiDepth, iQP ); 698 #if MTK_VSP_FIX_ALIGN_WD_E0172 699 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 700 #endif 681 701 } 682 702 } … … 692 712 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N ); 693 713 rpcTempCU->initEstData( uiDepth, iQP ); 714 #if MTK_VSP_FIX_ALIGN_WD_E0172 715 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 716 #endif 694 717 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_Nx2N ) 695 718 { … … 705 728 xCheckRDCostInter ( rpcBestCU, rpcTempCU, SIZE_2NxN ); 706 729 rpcTempCU->initEstData( uiDepth, iQP ); 730 #if MTK_VSP_FIX_ALIGN_WD_E0172 731 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 732 #endif 707 733 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxN) 708 734 { … … 737 763 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 738 764 rpcTempCU->initEstData( uiDepth, iQP ); 765 #if MTK_VSP_FIX_ALIGN_WD_E0172 766 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 767 #endif 739 768 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU ) 740 769 { … … 750 779 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 751 780 rpcTempCU->initEstData( uiDepth, iQP ); 781 #if MTK_VSP_FIX_ALIGN_WD_E0172 782 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 783 #endif 752 784 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD ) 753 785 { … … 767 799 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true ); 768 800 rpcTempCU->initEstData( uiDepth, iQP ); 801 #if MTK_VSP_FIX_ALIGN_WD_E0172 802 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 803 #endif 769 804 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU ) 770 805 { … … 780 815 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true ); 781 816 rpcTempCU->initEstData( uiDepth, iQP ); 817 #if MTK_VSP_FIX_ALIGN_WD_E0172 818 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 819 #endif 782 820 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD ) 783 821 { … … 799 837 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 800 838 rpcTempCU->initEstData( uiDepth, iQP ); 839 #if MTK_VSP_FIX_ALIGN_WD_E0172 840 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 841 #endif 801 842 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N ) 802 843 { … … 812 853 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 813 854 rpcTempCU->initEstData( uiDepth, iQP ); 855 #if MTK_VSP_FIX_ALIGN_WD_E0172 856 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 857 #endif 814 858 } 815 859 } … … 825 869 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true ); 826 870 rpcTempCU->initEstData( uiDepth, iQP ); 871 #if MTK_VSP_FIX_ALIGN_WD_E0172 872 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 873 #endif 827 874 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N ) 828 875 { … … 838 885 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true ); 839 886 rpcTempCU->initEstData( uiDepth, iQP ); 887 #if MTK_VSP_FIX_ALIGN_WD_E0172 888 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 889 #endif 840 890 } 841 891 } … … 849 899 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 850 900 rpcTempCU->initEstData( uiDepth, iQP ); 901 #if MTK_VSP_FIX_ALIGN_WD_E0172 902 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 903 #endif 851 904 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 852 905 rpcTempCU->initEstData( uiDepth, iQP ); 906 #if MTK_VSP_FIX_ALIGN_WD_E0172 907 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 908 #endif 853 909 #if H_3D_QTLPC 854 910 } … … 858 914 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 859 915 rpcTempCU->initEstData( uiDepth, iQP ); 916 #if MTK_VSP_FIX_ALIGN_WD_E0172 917 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 918 #endif 860 919 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 861 920 rpcTempCU->initEstData( uiDepth, iQP ); 921 #if MTK_VSP_FIX_ALIGN_WD_E0172 922 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 923 #endif 862 924 #if H_3D_QTLPC 863 925 } … … 1615 1677 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1616 1678 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1679 #if MTK_VSP_FIX_ALIGN_WD_E0172 1680 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 1681 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand ); 1682 #else 1617 1683 #if MTK_VSP_FIX_E0172 1618 1684 Int vspDir[MRG_MAX_NUM_CANDS_MEM]; … … 1622 1688 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, numValidMergeCand ); 1623 1689 #endif 1690 #endif//end of MTK_VSP_FIX_ALIGN_WD_E0172 1624 1691 #else 1625 1692 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); … … 1689 1756 #if H_3D_VSP 1690 1757 rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth ); 1758 #if MTK_VSP_FIX_ALIGN_WD_E0172 1759 rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth ); 1760 #endif 1691 1761 #if MTK_VSP_FIX_E0172 1692 1762 rpcTempCU->setVSPDirSubParts( vspDir[uiMergeCand], 0, 0, uhDepth ); -
branches/HTM-DEV-2.0-dev1-Fix/source/Lib/TLibEncoder/TEncSearch.cpp
r566 r596 3550 3550 #if H_3D_VSP 3551 3551 , Int* vspFlag 3552 #if MTK_VSP_FIX_ALIGN_WD_E0172 3553 , InheritedVSPDisInfo* inheritedVSPDisInfo 3554 #endif 3552 3555 #if MTK_VSP_FIX_E0172 3553 3556 , Int* vspDir … … 3572 3575 #if H_3D_VSP 3573 3576 , vspFlag 3577 #if MTK_VSP_FIX_ALIGN_WD_E0172 3578 , inheritedVSPDisInfo 3579 #endif 3574 3580 #if MTK_VSP_FIX_E0172 3575 3581 , vspDir … … 3586 3592 #if H_3D_VSP 3587 3593 , vspFlag 3594 #if MTK_VSP_FIX_ALIGN_WD_E0172 3595 , inheritedVSPDisInfo 3596 #endif 3588 3597 #if MTK_VSP_FIX_E0172 3589 3598 , vspDir … … 3593 3602 ); 3594 3603 } 3595 #if MTK_VSP_FIX_E0172 3604 #if MTK_VSP_FIX_E0172 || MTK_VSP_FIX_ALIGN_WD_E0172 3596 3605 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand ); 3597 3606 #else … … 3613 3622 #if H_3D_VSP 3614 3623 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3624 #if MTK_VSP_FIX_ALIGN_WD_E0172 3625 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3626 #endif 3615 3627 #if MTK_VSP_FIX_E0172 3616 3628 pcCU->setVSPDirSubParts( vspDir[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); … … 3645 3657 * \returns Void 3646 3658 */ 3647 #if MTK_VSP_FIX_E0172 3659 #if MTK_VSP_FIX_E0172 || MTK_VSP_FIX_ALIGN_WD_E0172 3648 3660 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand ) 3649 3661 #else … … 3655 3667 for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand ) 3656 3668 { 3657 #if MTK_VSP_FIX_E0172 3669 #if MTK_VSP_FIX_E0172 || MTK_VSP_FIX_ALIGN_WD_E0172 3658 3670 if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) ) 3659 3671 #else … … 4277 4289 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 4278 4290 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 4291 #if MTK_VSP_FIX_ALIGN_WD_E0172 4292 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 4293 UInt uiAbsPartIdx = 0; 4294 Int iWidth = 0; 4295 Int iHeight = 0; 4296 pcCU->getPartIndexAndSize( iPartIdx, uiAbsPartIdx, iWidth, iHeight ); 4297 DisInfo OriginalDvInfo = pcCU->getDvInfo(uiAbsPartIdx); 4298 #endif 4279 4299 #if MTK_VSP_FIX_E0172 4280 4300 Int vspDir[MRG_MAX_NUM_CANDS_MEM]; … … 4286 4306 #if H_3D_VSP 4287 4307 , vspFlag 4308 #if MTK_VSP_FIX_ALIGN_WD_E0172 4309 , inheritedVSPDisInfo 4310 #endif 4288 4311 #if MTK_VSP_FIX_E0172 4289 4312 , vspDir … … 4299 4322 #if H_3D_VSP 4300 4323 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4324 #if MTK_VSP_FIX_ALIGN_WD_E0172 4325 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4326 #endif 4301 4327 #if MTK_VSP_FIX_E0172 4302 4328 pcCU->setVSPDirSubParts( vspDir[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); … … 4324 4350 #if H_3D_VSP 4325 4351 pcCU->setVSPFlagSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4352 #if MTK_VSP_FIX_ALIGN_WD_E0172 4353 pcCU->setDvInfoSubParts(OriginalDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4354 #endif 4326 4355 #if MTK_VSP_FIX_E0172 4327 4356 pcCU->setVSPDirSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); -
branches/HTM-DEV-2.0-dev1-Fix/source/Lib/TLibEncoder/TEncSearch.h
r566 r596 415 415 #if H_3D_VSP 416 416 , Int* vspFlag 417 #if MTK_VSP_FIX_ALIGN_WD_E0172 418 , InheritedVSPDisInfo* inheritedVSPDisInfo 419 #endif 417 420 #if MTK_VSP_FIX_E0172 418 421 , Int* vspDir … … 426 429 TComMvField* mvFieldNeighbours, 427 430 UChar* interDirNeighbours, 428 #if MTK_VSP_FIX_E0172 431 #if MTK_VSP_FIX_E0172 || MTK_VSP_FIX_ALIGN_WD_E0172 429 432 Int* vspFlag, 430 433 #endif
Note: See TracChangeset for help on using the changeset viewer.