Changeset 443 in 3DVCSoftware for trunk/source/App/TAppEncoder
- Timestamp:
- 26 May 2013, 15:41:34 (11 years ago)
- Location:
- trunk/source/App/TAppEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncCfg.cpp
r332 r443 383 383 #endif 384 384 #if H3D_IVRP 385 #if QC_ARP_D0177 386 ("MultiviewResPred", m_nUseAdvResPred, (UInt)0, "usage of Advanced residual prediction" ) 387 #else 385 388 ("MultiviewResPred", m_uiMultiviewResPredMode, (UInt)0, "usage of inter-view residual prediction" ) 389 #endif 390 #endif 391 #if MTK_D0156 392 ("UseVSPCompensation", m_bUseVSPCompensation, true, "Depth dependent tools: BVSP" ) 393 ("UseDVPRefine", m_bUseDVPRefine, true, "Depth dependent tools: DoNBDV" ) 386 394 #endif 387 395 … … 392 400 ("SAO", m_abUseSAO, std::vector<Bool>(1, true), "SAO") 393 401 ("MaxNumOffsetsPerPic", m_maxNumOffsetsPerPic, 2048, "2048: default") 402 #if LGE_SAO_MIGRATION_D0091 403 ("SAOLcuBoundary", m_saoLcuBoundary, false, "0: right/bottom LCU boundary areas skipped from SAO parameter estimation, 1: non-deblocked pixels are used for those areas") 404 ("SAOLcuBasedOptimization", m_saoLcuBasedOptimization, true, "0: SAO picture-based optimization, 1: SAO LCU-based optimization ") 405 #else 394 406 ("SAOInterleaving", m_saoInterleavingFlag, false, "0: SAO Picture Mode, 1: SAO Interleaving ") 407 #endif 395 408 396 409 ("ALFEncodePassReduction", m_iALFEncodePassReduction, 0, "0:Original 16-pass, 1: 1-pass, 2: 2-pass encoding") … … 917 930 #endif 918 931 #if H3D_IVRP 932 #if QC_ARP_D0177 933 #if QC_ARP_WARNING_FIX 934 xConfirmPara ( m_nUseAdvResPred > 1 , "0<=ARP<=1" ); 935 #else 936 xConfirmPara ( m_nUseAdvResPred < 0 || m_nUseAdvResPred > 1 , "0<=ARP<=1" ); 937 #endif 938 #else 919 939 xConfirmPara ( m_uiMultiviewResPredMode > 1, "MultiviewResPred must be less than or equal to 1" ); 920 940 xConfirmPara ( m_uiMultiviewResPredMode > 0 && m_uiPredDepthMapGeneration == 0 , "MultiviewResPred > 0 requires PredDepthMapGen > 0" ); 941 #endif 921 942 #endif 922 943 if( m_bUsingDepthMaps ) … … 1625 1646 printf("CIP:%d ", m_bUseConstrainedIntraPred); 1626 1647 printf("PCM:%d ", (m_usePCM && (1<<m_uiPCMLog2MinSize) <= m_uiMaxCUWidth)? 1 : 0); 1648 #if LGE_SAO_MIGRATION_D0091 1649 printf("SAOLcuBasedOptimization:%d ", (m_saoLcuBasedOptimization)?(1):(0)); 1650 #else 1627 1651 printf("SAOInterleaving:%d ", (m_saoInterleavingFlag)?(1):(0)); 1652 #endif 1628 1653 #if LOSSLESS_CODING 1629 1654 printf("LosslessCuEnabled:%d ", (m_useLossless)? 1:0 ); … … 1672 1697 printf("IVSEnable: %d ", m_bUseIVS); 1673 1698 #endif 1699 #if QC_ARP_D0177 1700 printf(" ARP:%d " , m_nUseAdvResPred ); 1701 #endif 1674 1702 printf("\n"); 1675 1703 … … 1708 1736 printf("DLT:%d ", m_bUseDLT ? 1 : 0 ); 1709 1737 #endif 1738 1739 #if MTK_D0156 1740 printf("BVSP:%d ", m_bUseVSPCompensation ? 1 : 0 ); 1741 printf("DoNBDV:%d ", m_bUseDVPRefine ? 1 : 0 ); 1742 #endif 1743 1710 1744 #if LGE_WVSO_A0119 1711 1745 if ( m_bUseWVSO ) -
trunk/source/App/TAppEncoder/TAppEncCfg.h
r332 r443 165 165 #endif 166 166 Int m_maxNumOffsetsPerPic; ///< SAO maximun number of offset per picture 167 #if LGE_SAO_MIGRATION_D0091 168 Bool m_saoLcuBoundary; ///< SAO parameter estimation using non-deblocked pixels for LCU bottom and right boundary areas 169 Bool m_saoLcuBasedOptimization; ///< SAO LCU-based optimization 170 #else 167 171 Bool m_saoInterleavingFlag; ///< SAO interleaving flag 172 #endif 168 173 // coding tools (loop filter) 169 174 vector<Bool> m_abUseALF; ///< flag for using adaptive loop filter [0] - video, [1] - depth … … 217 222 Double m_dMultiviewMvRegLambdaScale; ///< lambda scale for multiview motion vectors regularization 218 223 #endif 219 #if H3D_IVRP 224 #if H3D_IVRP 225 #if QC_ARP_D0177 226 UInt m_nUseAdvResPred; 227 #else 220 228 UInt m_uiMultiviewResPredMode; ///< using multiview residual prediction 229 #endif 221 230 #endif 222 231 … … 317 326 #endif 318 327 328 #if MTK_D0156 329 330 #if MERL_VSP_COMPENSATION_C0152 331 Bool m_bUseVSPCompensation; 332 #endif 333 334 Bool m_bUseDVPRefine; 335 #endif 336 319 337 // internal member functions 320 338 Void xSetGlobal (); ///< set global variables -
trunk/source/App/TAppEncoder/TAppEncTop.cpp
r332 r443 223 223 #endif 224 224 #if H3D_IVRP 225 #if QC_ARP_D0177 226 m_acTEncTopList[iViewIdx]->setUseAdvRP ( iViewIdx ? m_nUseAdvResPred : 0 ); 227 m_acTEncTopList[iViewIdx]->setARPStepNum ( iViewIdx ? QC_ARP_WFNR : 1 ); 228 #else 225 229 m_acTEncTopList[iViewIdx]->setMultiviewResPredMode ( m_uiMultiviewResPredMode ); 230 #endif 231 #endif 232 #if MTK_D0156 233 #if MERL_VSP_COMPENSATION_C0152 234 m_acTEncTopList[iViewIdx]->setUseVSPCompensation ( iViewIdx ? m_bUseVSPCompensation : 0 ); 235 #endif 236 m_acTEncTopList[iViewIdx]->setUseDVPRefine ( iViewIdx ? m_bUseDVPRefine : 0 ); 226 237 #endif 227 238 … … 303 314 #endif 304 315 m_acTEncTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic); 316 #if LGE_SAO_MIGRATION_D0091 317 m_acTEncTopList[iViewIdx]->setSaoLcuBoundary (m_saoLcuBoundary); 318 m_acTEncTopList[iViewIdx]->setSaoLcuBasedOptimization (m_saoLcuBasedOptimization); 319 #else 305 320 m_acTEncTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag); 321 #endif 306 322 m_acTEncTopList[iViewIdx]->setPCMInputBitDepthFlag ( m_bPCMInputBitDepthFlag); 307 323 m_acTEncTopList[iViewIdx]->setPCMFilterDisableFlag ( m_bPCMFilterDisableFlag); … … 560 576 m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegLambdaScale ( 0.0 ); 561 577 #endif 562 #if H3D_IVRP 563 m_acTEncDepthTopList[iViewIdx]->setMultiviewResPredMode ( 0 ); 578 #if H3D_IVRP 579 #if QC_ARP_D0177 580 m_acTEncDepthTopList[iViewIdx]->setUseAdvRP ( 0 ); 581 m_acTEncDepthTopList[iViewIdx]->setARPStepNum ( 1 ); 582 #else 583 m_acTEncDepthTopList[iViewIdx]->setMultiviewResPredMode ( 0 ); 584 #endif 585 #endif 586 #if MTK_D0156 587 588 #if MERL_VSP_COMPENSATION_C0152 589 m_acTEncDepthTopList[iViewIdx]->setUseVSPCompensation ( iViewIdx ? true : false ); 590 #endif 591 592 m_acTEncDepthTopList[iViewIdx]->setUseDVPRefine ( iViewIdx ? true : false ); 564 593 #endif 565 594 … … 605 634 #endif 606 635 m_acTEncDepthTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic); 636 #if LGE_SAO_MIGRATION_D0091 637 m_acTEncDepthTopList[iViewIdx]->setSaoLcuBoundary (m_saoLcuBoundary); 638 m_acTEncDepthTopList[iViewIdx]->setSaoLcuBasedOptimization (m_saoLcuBasedOptimization); 639 #else 607 640 m_acTEncDepthTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag); 641 #endif 608 642 m_acTEncDepthTopList[iViewIdx]->setPCMInputBitDepthFlag ( m_bPCMInputBitDepthFlag); 609 643 m_acTEncDepthTopList[iViewIdx]->setPCMFilterDisableFlag ( m_bPCMFilterDisableFlag); … … 1076 1110 #if MERL_VSP_C0152 1077 1111 #if MERL_VSP_C0152_BugFix_ForNoDepthCase 1078 if(m_bUsingDepthMaps) // VSP can be used only when depth is available as input1112 if(m_bUsingDepthMaps) // VSP can be used only when depth is available as input 1079 1113 { 1080 1114 #endif … … 1087 1121 pEncSlice->setRefPicBaseTxt(pcBaseTxtPic); 1088 1122 pEncSlice->setRefPicBaseDepth(pcBaseDepthPic); 1123 #if MERL_VSP_NBDV_RefVId_Fix_D0166 1124 for (Int refViewId=0; refViewId < iViewIdx; refViewId++ ) 1125 { 1126 pEncSlice->setListDepthPic(m_acTEncDepthTopList[refViewId]->getListPic(), refViewId ); // The list will store only the depth pictures 1127 setBWVSPLUT(refViewId, iViewIdx, gopId, false); 1128 } 1129 #endif 1089 1130 } 1131 #if !MERL_VSP_NBDV_RefVId_Fix_D0166 1090 1132 setBWVSPLUT( iViewIdx, gopId, false); 1133 #endif 1134 #endif 1135 1091 1136 #if MERL_VSP_C0152_BugFix_ForNoDepthCase 1092 1137 } … … 1103 1148 #endif 1104 1149 1105 #endif1106 1150 // call encoding function for one frame 1107 1151 m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId ); … … 1118 1162 TEncSlice* pcSlice = (TEncSlice*) m_acTEncDepthTopList[iViewIdx]->getSliceEncoder(); 1119 1163 pcSlice->setRefPicBaseDepth(pcBaseDepthPic); 1164 #if MERL_VSP_NBDV_RefVId_Fix_D0166 1165 for (Int refViewId=0; refViewId < iViewIdx; refViewId++ ) 1166 { 1167 pcSlice->setListDepthPic(m_acTEncDepthTopList[refViewId]->getListPic(), refViewId ); // The list will store only the depth pictures 1168 setBWVSPLUT( refViewId, iViewIdx, gopId, true); 1169 } 1170 #endif 1120 1171 } 1172 #if !MERL_VSP_NBDV_RefVId_Fix_D0166 1121 1173 setBWVSPLUT( iViewIdx, gopId, true); 1174 #endif 1122 1175 #endif 1123 1176 … … 1636 1689 1637 1690 #if MERL_VSP_C0152 1638 Void TAppEncTop::setBWVSPLUT(Int iCodedViewIdx, Int gopId, Bool isDepth) 1691 1692 Void TAppEncTop::setBWVSPLUT( 1693 #if MERL_VSP_NBDV_RefVId_Fix_D0166 1694 Int iNeighborViewId, 1695 #endif 1696 Int iCodedViewIdx, Int gopId, Bool isDepth) 1639 1697 { 1640 1698 //first view does not have VSP … … 1643 1701 AOT( iCodedViewIdx <= 0); 1644 1702 AOT( iCodedViewIdx >= m_iNumberOfViews ); 1645 1703 #if !MERL_VSP_NBDV_RefVId_Fix_D0166 1646 1704 Int iNeighborViewId = 0; 1705 #endif 1647 1706 //setting look-up table 1648 1707 Int* piShiftLUT = m_cCameraData.getBaseViewShiftLUTI()[iNeighborViewId][iCodedViewIdx][0]; … … 1651 1710 { 1652 1711 TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncDepthTopList[iCodedViewIdx]->getSliceEncoder(); 1712 #if MERL_VSP_NBDV_RefVId_Fix_D0166 1713 pcEncSlice->setBWVSPLUTParam( piShiftLUT, LOG2_DISP_PREC_LUT, iNeighborViewId ); 1714 #else 1653 1715 pcEncSlice->setBWVSPLUTParam( piShiftLUT, LOG2_DISP_PREC_LUT ); 1716 #endif 1654 1717 } 1655 1718 else 1656 1719 { 1657 1720 TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncTopList[iCodedViewIdx]->getSliceEncoder(); 1721 #if MERL_VSP_NBDV_RefVId_Fix_D0166 1722 pcEncSlice->setBWVSPLUTParam( piShiftLUT, LOG2_DISP_PREC_LUT, iNeighborViewId ); 1723 #else 1658 1724 pcEncSlice->setBWVSPLUTParam( piShiftLUT, LOG2_DISP_PREC_LUT ); 1725 #endif 1659 1726 } 1660 1727 -
trunk/source/App/TAppEncoder/TAppEncTop.h
r296 r443 167 167 168 168 #if MERL_VSP_C0152 169 #if MERL_VSP_NBDV_RefVId_Fix_D0166 170 Void setBWVSPLUT( Int refViewIdx, Int iCodedViewIdx, Int gopId, Bool isDepth); 171 #else 169 172 Void setBWVSPLUT( Int iCodedViewIdx, Int gopId, Bool isDepth); 173 #endif 170 174 #endif 171 175 };// END CLASS DEFINITION TAppEncTop
Note: See TracChangeset for help on using the changeset viewer.