Changeset 120 in 3DVCSoftware for trunk/source
- Timestamp:
- 30 Aug 2012, 19:52:58 (12 years ago)
- Location:
- trunk/source
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncCfg.cpp
r116 r120 336 336 #endif 337 337 #if LGE_WVSO_A0119 338 ("WVSO", m_b WVSO , true , "Use WVSO" )339 ("VSOWeight", m_iVSOWeight , 10 , " VSO Weight" )340 ("VSDWeight", m_iVSDWeight , 1 , " SAIT Weight" )341 ("DWeight", m_iDWeight , 1 , " SSE Weight" )338 ("WVSO", m_bUseWVSO , false , "Use depth fidelity term for VSO" ) 339 ("VSOWeight", m_iVSOWeight , 10 , "Synthesized View Distortion Change weight" ) 340 ("VSDWeight", m_iVSDWeight , 1 , "View Synthesis Distortion estimate weight" ) 341 ("DWeight", m_iDWeight , 1 , "Depth Distortion weight" ) 342 342 #endif 343 343 344 344 #if OL_DEPTHLIMIT_A0044 345 ("DPL", m_bDepthPartitionLimiting, false , "Use DepthPartitionLimiting" )345 ("DPL", m_bDepthPartitionLimiting , false , "Use DepthPartitionLimiting" ) 346 346 #endif 347 347 … … 655 655 656 656 #if LGE_WVSO_A0119 657 m_b WVSO = m_bUseVSO && m_bWVSO && m_bUsingDepthMaps;657 m_bUseWVSO = m_bUseVSO && m_bUseWVSO && m_bUsingDepthMaps; 658 658 #endif 659 659 xCleanUpVectors(); … … 1703 1703 #endif 1704 1704 #if LGE_WVSO_A0119 1705 printf("WVSO:%d ", m_b WVSO );1705 printf("WVSO:%d ", m_bUseWVSO ); 1706 1706 #endif 1707 1707 #if OL_DEPTHLIMIT_A0044 … … 1715 1715 #endif 1716 1716 #if LGE_WVSO_A0119 1717 printf("\nVSO : SAIT: SAD weight = %d : %d : %d ", m_iVSOWeight, m_iVSDWeight, m_iDWeight );1717 printf("\nVSO : VSD : SAD weight = %d : %d : %d ", m_iVSOWeight, m_iVSDWeight, m_iDWeight ); 1718 1718 #endif 1719 1719 printf("\n\n"); -
trunk/source/App/TAppEncoder/TAppEncCfg.h
r116 r120 298 298 #endif 299 299 #if LGE_WVSO_A0119 300 Bool m_b WVSO; ///< flag for using View Synthesis Optimization300 Bool m_bUseWVSO; ///< flag for using View Synthesis Optimization 301 301 Int m_iVSOWeight; 302 302 Int m_iVSDWeight; -
trunk/source/App/TAppEncoder/TAppEncTop.cpp
r116 r120 208 208 #endif 209 209 #if LGE_WVSO_A0119 210 m_acTEncTopList[iViewIdx]->set WVSO( false );210 m_acTEncTopList[iViewIdx]->setUseWVSO ( false ); 211 211 #endif 212 212 #endif … … 531 531 #endif 532 532 #if LGE_WVSO_A0119 533 m_acTEncDepthTopList[iViewIdx]->set WVSO ( m_bWVSO);533 m_acTEncDepthTopList[iViewIdx]->setUseWVSO ( m_bUseWVSO ); 534 534 #endif 535 535 #endif … … 708 708 { 709 709 TEncTop* pcEncTop = ( iContent == 0 ) ? m_acTEncTopList[iViewNum] : m_acTEncDepthTopList[iViewNum]; 710 pcEncTop->set WVSO( m_bWVSO );710 pcEncTop->setUseWVSO ( m_bUseWVSO ); 711 711 pcEncTop->setVSOWeight( m_iVSOWeight ); 712 712 pcEncTop->setVSDWeight( m_iVSDWeight ); 713 pcEncTop->setDWeight ( m_iDWeight );713 pcEncTop->setDWeight ( m_iDWeight ); 714 714 } 715 715 } -
trunk/source/Lib/TLibCommon/TComRdCost.h
r116 r120 381 381 Int m_iVSOWeight; 382 382 Int m_iVSDWeight; 383 Bool m_b WVSO;383 Bool m_bUseWVSO; 384 384 #endif 385 385 … … 417 417 UInt getVSOMode( ) { return m_uiVSOMode; } 418 418 #if LGE_WVSO_A0119 419 Void set WVSO ( Bool bIn ) { m_bWVSO = bIn; };420 Bool get WVSO ( ) { return m_bWVSO;};419 Void setUseWVSO ( Bool bIn ) { m_bUseWVSO = bIn; }; 420 Bool getUseWVSO ( ) { return m_bUseWVSO;}; 421 421 Void setDWeight ( Int iDWeight ) { m_iDWeight = iDWeight; }; 422 422 Int getDWeight () { return m_iDWeight; }; -
trunk/source/Lib/TLibEncoder/TEncCfg.h
r116 r120 205 205 UInt m_uiVSOMode; 206 206 #if LGE_WVSO_A0119 207 Bool m_b WVSO;207 Bool m_bUseWVSO; 208 208 Int m_iVSOWeight; 209 209 Int m_iVSDWeight; … … 477 477 #endif 478 478 #if LGE_WVSO_A0119 479 Void set WVSO ( Bool b ) { m_bWVSO= b; }479 Void setUseWVSO ( Bool b ) { m_bUseWVSO = b; } 480 480 Void setVSOWeight ( Int i ) { m_iVSOWeight = i; } 481 481 Void setVSDWeight ( Int i ) { m_iVSDWeight = i; } … … 563 563 #endif 564 564 #if LGE_WVSO_A0119 565 Bool get WVSO () { return m_bWVSO; }565 Bool getUseWVSO () { return m_bUseWVSO; } 566 566 Int getVSOWeight () { return m_iVSOWeight; } 567 567 Int getVSDWeight () { return m_iVSDWeight; } … … 679 679 Void setSliceGranularity ( Int i ) { m_iSliceGranularity = i; } 680 680 Int getSliceGranularity () { return m_iSliceGranularity; } 681 Void setLFCrossSliceBoundaryFlag( Bool bValue ) { m_bLFCrossSliceBoundaryFlag = bValue; }682 Bool getLFCrossSliceBoundaryFlag() { return m_bLFCrossSliceBoundaryFlag; }681 Void setLFCrossSliceBoundaryFlag ( Bool bValue ) { m_bLFCrossSliceBoundaryFlag = bValue; } 682 Bool getLFCrossSliceBoundaryFlag () { return m_bLFCrossSliceBoundaryFlag; } 683 683 684 684 #if HHI_MPI 685 Void setUseMVI (Bool bVal){m_bUseMVI = bVal;}686 #endif 687 Void setUseSAO (Bool bVal){m_bUseSAO = bVal;}688 Bool getUseSAO() {return m_bUseSAO;}685 Void setUseMVI ( Bool bVal ) {m_bUseMVI = bVal;} 686 #endif 687 Void setUseSAO ( Bool bVal ) {m_bUseSAO = bVal;} 688 Bool getUseSAO () {return m_bUseSAO;} 689 689 #if SAO_UNIT_INTERLEAVING 690 690 Void setMaxNumOffsetsPerPic (Int iVal) { m_maxNumOffsetsPerPic = iVal; } … … 817 817 818 818 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 819 Void setUseDMM( Bool b) { m_bUseDMM = b; }820 Bool getUseDMM() { return m_bUseDMM; }819 Void setUseDMM( Bool b) { m_bUseDMM = b; } 820 Bool getUseDMM() { return m_bUseDMM; } 821 821 #endif 822 822 823 823 #if OL_DEPTHLIMIT_A0044 824 Void setUseDPL(Bool b) {m_bDepthPartitionLimiting = b; }825 Bool getUseDPL() {return m_bDepthPartitionLimiting;}824 Void setUseDPL(Bool b) {m_bDepthPartitionLimiting = b; } 825 Bool getUseDPL() {return m_bDepthPartitionLimiting;} 826 826 #endif 827 827 -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r116 r120 444 444 Int iVSOMode = m_pcEncTop->getVSOMode(); 445 445 m_pcRdCost->setVSOMode( iVSOMode ); 446 446 447 #if HHI_VSO_DIST_INT 447 448 m_pcRdCost->setAllowNegDist( m_pcEncTop->getAllowNegDist() ); … … 465 466 #endif 466 467 #if LGE_WVSO_A0119 467 Bool b WVSO = m_pcEncTop->getWVSO();468 m_pcRdCost->set WVSO( bWVSO );468 Bool bUseWVSO = m_pcEncTop->getUseWVSO(); 469 m_pcRdCost->setUseWVSO( bUseWVSO ); 469 470 #endif 470 471 -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r119 r120 1130 1130 { 1131 1131 #if LGE_WVSO_A0119 1132 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 1133 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 1134 Dist iD = (Dist) m_pcRdCost->getDistPart( piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight ); 1135 Dist iVSO = m_pcRdCost->getDistVS ( pcCU, uiAbsPartIdx, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight, false, 0 ); 1136 ruiDist += (iDWeight * iD + iVSOWeight * iVSO) / ( iDWeight + iVSOWeight); 1137 1138 #else 1139 ruiDist += m_pcRdCost->getDistVS ( pcCU, uiAbsPartIdx, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight, false, 0 ); 1140 #endif 1132 if ( m_pcRdCost->getUseWVSO() ) 1133 { 1134 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 1135 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 1136 Dist iD = (Dist) m_pcRdCost->getDistPart( piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight ); 1137 Dist iVSO = m_pcRdCost->getDistVS ( pcCU, uiAbsPartIdx, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight, false, 0 ); 1138 ruiDist += (iDWeight * iD + iVSOWeight * iVSO) / ( iDWeight + iVSOWeight); 1139 } 1140 else 1141 #endif 1142 { 1143 ruiDist += m_pcRdCost->getDistVS ( pcCU, uiAbsPartIdx, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight, false, 0 ); 1144 } 1141 1145 } 1142 1146 else … … 1912 1916 uiSad = (Dist) ( m_pcRdCost->getDistPart( piPred, uiStride, piOrg, uiStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiPartOffset), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiPartOffset), pcVirRec->getStride(), uiWidth, uiHeight ) ); 1913 1917 #if LGE_WVSO_A0119 1914 Int iDWeight = m_pcRdCost->getDWeight(); 1915 Int iVSDWeight = m_pcRdCost->getVSDWeight(); 1916 Dist iD = (Dist) m_pcRdCost->calcHAD( piOrg, uiStride, piPred, uiStride, uiWidth, uiHeight ); 1917 uiSad = (Dist) (iDWeight * iD + iVSDWeight * uiSad) / (iDWeight + iVSDWeight); 1918 if ( m_pcRdCost->getUseWVSO() ) 1919 { 1920 Int iDWeight = m_pcRdCost->getDWeight(); 1921 Int iVSDWeight = m_pcRdCost->getVSDWeight(); 1922 Dist iD = (Dist) m_pcRdCost->calcHAD( piOrg, uiStride, piPred, uiStride, uiWidth, uiHeight ); 1923 uiSad = (Dist) (iDWeight * iD + iVSDWeight * uiSad) / (iDWeight + iVSDWeight); 1924 } 1918 1925 #endif 1919 1926 } … … 1923 1930 Bool bSad = !m_pcRdCost->getUseRenModel(); 1924 1931 uiSad = m_pcRdCost->getDistVS(pcCU, uiPartOffset, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, bSad, 0 ); 1932 #if LGE_WVSO_A0119 1933 if ( m_pcRdCost->getUseWVSO() ) 1934 { 1935 Int iDWeight = m_pcRdCost->getDWeight()*m_pcRdCost->getDWeight(); 1936 Int iVSDWeight = m_pcRdCost->getVSOWeight()*m_pcRdCost->getVSOWeight(); 1937 Dist iD = (Dist) m_pcRdCost->getDistPart( piOrg, uiStride, piPred, uiStride, uiWidth, uiHeight ); 1938 uiSad = (Dist) (iDWeight * iD + iVSDWeight * uiSad) / (iDWeight + iVSDWeight); 1939 } 1940 #endif 1925 1941 } 1926 1927 1942 } 1928 1943 else … … 4407 4422 uiDistortion = m_pcRdCost->getDistVS( pcCU, 0, rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(), pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(), uiWidth, uiHeight , false, 0 ); 4408 4423 #if LGE_WVSO_A0119 4409 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 4410 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 4411 Dist iD = (Dist) m_pcRdCost->getDistPart( rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(), pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(), uiWidth, uiHeight ); 4412 uiDistortion = (iDWeight * iD + iVSOWeight * (Dist)uiDistortion) / ( iDWeight + iVSOWeight); 4424 if ( m_pcRdCost->getUseWVSO() ) 4425 { 4426 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 4427 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 4428 Dist iD = (Dist) m_pcRdCost->getDistPart( rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(), pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(), uiWidth, uiHeight ); 4429 uiDistortion = (iDWeight * iD + iVSOWeight * (Dist)uiDistortion) / ( iDWeight + iVSOWeight); 4430 } 4413 4431 #endif 4414 4432 } … … 4772 4790 uiDistortionBest = m_pcRdCost->getDistVS ( pcCU, 0, rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(), pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(), uiWidth, uiHeight, false, 0 ); 4773 4791 #if LGE_WVSO_A0119 4774 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 4775 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 4776 Dist iD = (Dist) m_pcRdCost->getDistPart( rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(), pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(), uiWidth, uiHeight ); 4777 uiDistortionBest = (iDWeight * iD + iVSOWeight * (Dist) uiDistortionBest) / ( iDWeight + iVSOWeight); 4792 if ( m_pcRdCost->getUseWVSO() ) 4793 { 4794 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 4795 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 4796 Dist iD = (Dist) m_pcRdCost->getDistPart( rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(), pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(), uiWidth, uiHeight ); 4797 uiDistortionBest = (iDWeight * iD + iVSOWeight * (Dist) uiDistortionBest) / ( iDWeight + iVSOWeight); 4798 } 4778 4799 #endif 4779 4800 } … … 5013 5034 uiDistY = m_pcRdCost->getDistPart( m_pTempPel, 1<< uiLog2TrSize, pcResi->getLumaAddr( uiAbsPartIdx ), pcResi->getStride(), pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPartIdx), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPartIdx), pcVirRec->getStride(), 1<< uiLog2TrSize, 1<< uiLog2TrSize ); 5014 5035 #if LGE_WVSO_A0119 5015 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 5016 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 5017 Dist iD = (Dist) m_pcRdCost->getDistPart( m_pTempPel, trWidth, pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth, trHeight ); 5018 uiDistY = (iDWeight * iD + iVSDWeight * (Dist)uiDistY) / ( iDWeight + iVSDWeight); 5036 if ( m_pcRdCost->getUseWVSO() ) 5037 { 5038 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 5039 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 5040 Dist iD = (Dist) m_pcRdCost->getDistPart( m_pTempPel, trWidth, pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth, trHeight ); 5041 uiDistY = (iDWeight * iD + iVSDWeight * (Dist)uiDistY) / ( iDWeight + iVSDWeight); 5042 } 5019 5043 #endif 5020 5044 } … … 5023 5047 { 5024 5048 uiDistY = m_pcRdCost->getDistVS ( pcCU, uiAbsPartIdx, pcPred->getLumaAddr( uiAbsPartIdx ), pcPred->getStride(), pcOrg->getLumaAddr( uiAbsPartIdx), pcOrg->getStride(), 1<< uiLog2TrSize, 1<< uiLog2TrSize, false, 0 ); // initialized with zero residual distortion 5049 #if LGE_WVSO_A0119 5050 if ( m_pcRdCost->getUseWVSO() ) 5051 { 5052 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 5053 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 5054 Dist iD = (Dist) m_pcRdCost->getDistPart( m_pTempPel, trWidth, pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth, trHeight ); 5055 uiDistY = (iDWeight * iD + iVSOWeight * (Dist)uiDistY) / ( iDWeight + iVSOWeight); 5056 } 5057 #endif 5025 5058 } 5026 5059 } … … 5069 5102 uiNonzeroDistY = m_pcRdCost->getDistPart( m_pcQTTempTComYuv[uiQTTempAccessLayer].getLumaAddr( uiAbsPartIdx ), m_pcQTTempTComYuv[uiQTTempAccessLayer].getStride(), pcResi->getLumaAddr( uiAbsPartIdx ), pcResi->getStride(), pcVirRec->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU()+uiAbsPartIdx ), pcVirOrg->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU()+uiAbsPartIdx ), pcVirRec->getStride(), 1<< uiLog2TrSize, 1<< uiLog2TrSize ); 5070 5103 #if LGE_WVSO_A0119 5071 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 5072 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 5073 Dist iD = (Dist) m_pcRdCost->getDistPart( m_pcQTTempTComYuv[uiQTTempAccessLayer].getLumaAddr( absTUPartIdx ), m_pcQTTempTComYuv[uiQTTempAccessLayer].getStride(),pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth,trHeight ); 5074 uiNonzeroDistY = (iDWeight * iD + iVSDWeight * (Dist) uiNonzeroDistY) / ( iDWeight + iVSDWeight); 5104 if ( m_pcRdCost->getUseWVSO() ) 5105 { 5106 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 5107 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 5108 Dist iD = (Dist) m_pcRdCost->getDistPart( m_pcQTTempTComYuv[uiQTTempAccessLayer].getLumaAddr( absTUPartIdx ), m_pcQTTempTComYuv[uiQTTempAccessLayer].getStride(),pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth,trHeight ); 5109 uiNonzeroDistY = (iDWeight * iD + iVSDWeight * (Dist) uiNonzeroDistY) / ( iDWeight + iVSDWeight); 5110 } 5075 5111 #endif 5076 5112 } … … 5081 5117 uiNonzeroDistY = m_pcRdCost->getDistVS( pcCU, uiAbsPartIdx, m_cYuvRecTemp.getLumaAddr(uiAbsPartIdx), m_cYuvRecTemp.getStride(), 5082 5118 pcOrg->getLumaAddr( uiAbsPartIdx ), pcOrg->getStride(), 1<< uiLog2TrSize, 1<< uiLog2TrSize, false, 0 ); 5119 #if LGE_WVSO_A0119 5120 if ( m_pcRdCost->getUseWVSO() ) 5121 { 5122 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 5123 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 5124 Dist iD = (Dist) m_pcRdCost->getDistPart( m_pcQTTempTComYuv[uiQTTempAccessLayer].getLumaAddr( absTUPartIdx ), m_pcQTTempTComYuv[uiQTTempAccessLayer].getStride(),pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth,trHeight ); 5125 uiNonzeroDistY = (iDWeight * iD + iVSOWeight * (Dist) uiNonzeroDistY) / ( iDWeight + iVSOWeight); 5126 } 5127 #endif 5083 5128 } 5084 5129 } … … 6159 6204 uiActDist = m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirRec->getStride(), uiWidth, uiHeight ); 6160 6205 #if LGE_WVSO_A0119 6161 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6162 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6163 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD ); 6164 uiActDist = (iDWeight * iD + iVSDWeight * (Dist) uiActDist) / ( iDWeight + iVSDWeight); 6206 if ( m_pcRdCost->getUseWVSO() ) 6207 { 6208 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6209 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6210 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD ); 6211 uiActDist = (iDWeight * iD + iVSDWeight * (Dist) uiActDist) / ( iDWeight + iVSDWeight); 6212 } 6165 6213 #endif 6166 6214 } … … 6169 6217 { 6170 6218 uiActDist = m_pcRdCost->getDistVS( pcCU, 0, piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, 0 ); 6219 #if LGE_WVSO_A0119 6220 if ( m_pcRdCost->getUseWVSO() ) 6221 { 6222 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6223 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 6224 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD ); 6225 uiActDist = (iDWeight * iD + iVSOWeight * (Dist) uiActDist) / ( iDWeight + iVSOWeight); 6226 } 6227 #endif 6171 6228 } 6172 6229 … … 6277 6334 uiActDist = m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirRec->getStride(), uiWidth, uiHeight ); 6278 6335 #if LGE_WVSO_A0119 6279 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6280 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6281 Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD ); 6282 uiActDist = (iDWeight * iD + iVSDWeight * (Int) uiActDist) / ( iDWeight + iVSDWeight); 6336 if ( m_pcRdCost->getUseWVSO() ) 6337 { 6338 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6339 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6340 Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD ); 6341 uiActDist = (iDWeight * iD + iVSDWeight * (Int) uiActDist) / ( iDWeight + iVSDWeight); 6342 } 6283 6343 #endif 6284 6344 } … … 6287 6347 { 6288 6348 uiActDist = m_pcRdCost->getDistVS( pcCU, 0, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, 0 ); 6349 #if LGE_WVSO_A0119 6350 if ( m_pcRdCost->getUseWVSO() ) 6351 { 6352 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6353 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 6354 Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD ); 6355 uiActDist = (iDWeight * iD + iVSOWeight * (Int) uiActDist) / ( iDWeight + iVSOWeight); 6356 } 6357 #endif 6289 6358 } 6290 6359 } … … 6349 6418 uiActDist = m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPtIdx), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPtIdx), pcVirRec->getStride(), uiWidth, uiHeight ); 6350 6419 #if LGE_WVSO_A0119 6351 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6352 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6353 Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD ); 6354 uiActDist = (iDWeight * iD + iVSDWeight * (Int) uiActDist) / ( iDWeight + iVSDWeight); 6420 if ( m_pcRdCost->getUseWVSO() ) 6421 { 6422 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6423 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6424 Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD ); 6425 uiActDist = (iDWeight * iD + iVSDWeight * (Int) uiActDist) / ( iDWeight + iVSDWeight); 6426 } 6355 6427 #endif 6356 6428 } … … 6359 6431 { 6360 6432 uiActDist = m_pcRdCost->getDistVS( pcCU, 0, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, 0 ); 6433 #if LGE_WVSO_A0119 6434 if ( m_pcRdCost->getUseWVSO() ) 6435 { 6436 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6437 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 6438 Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD ); 6439 uiActDist = (iDWeight * iD + iVSOWeight * (Int) uiActDist) / ( iDWeight + iVSOWeight); 6440 } 6441 #endif 6361 6442 } 6362 6443 } -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r116 r120 377 377 #endif 378 378 #if LGE_WVSO_A0119 379 if( m_pcCfg->get WVSO() && m_pcCfg->isDepthCoder() )379 if( m_pcCfg->getUseWVSO() && m_pcCfg->isDepthCoder() ) 380 380 { 381 381 … … 384 384 iVSOWeight = m_pcCfg->getVSOWeight(); 385 385 iVSDWeight = m_pcCfg->getVSDWeight(); 386 // if( rpcSlice->getViewId() ) iDWeight = ( iDWeight >> 1 );387 // if( rpcSlice->getPOC() % 8 != 0 ) iDWeight = ( iDWeight >> 1 );388 // if( rpcSlice->getPOC() % 4 != 0 ) iDWeight = ( iDWeight >> 1 );389 // if( rpcSlice->getPOC() % 2 != 0 ) iDWeight = ( iDWeight >> 1 );390 386 391 387 m_pcRdCost->setDWeight( iDWeight );
Note: See TracChangeset for help on using the changeset viewer.