Changeset 1313 in 3DVCSoftware for trunk/source/Lib/TLibRenderer/TRenSingleModel.cpp
- Timestamp:
- 13 Aug 2015, 17:38:13 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibRenderer/TRenSingleModel.cpp
r1179 r1313 36 36 #include "TRenSingleModel.h" 37 37 38 #if H_3D_VSO38 #if NH_3D_VSO 39 39 40 40 ////////////// TRENSINGLE MODEL /////////////// 41 41 template <BlenMod iBM, Bool bBitInc> 42 42 TRenSingleModelC<iBM,bBitInc>::TRenSingleModelC() 43 : m_iDistShift ( ( g_bitDepthY - 8) << 1 )43 : m_iDistShift ( ( ENC_INTERNAL_BIT_DEPTH - REN_BIT_DEPTH) << 1 ) 44 44 { 45 45 m_iWidth = -1; … … 259 259 if ( pcOrgVideo && !bKeepReference ) 260 260 { 261 TRenFilter::copy( pcOrgVideo->getLumaAddr() + m_iHorOffset * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth, m_iUsedHeight, m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]); 262 TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr() + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]); 263 TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCrAddr() + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[2], m_aiRefVideoStrides[2]); 261 assert( pcOrgVideo->getChromaFormat() != CHROMA_420 ); 262 263 TRenFilter<REN_BIT_DEPTH>::copy( pcOrgVideo->getAddr( COMPONENT_Y ) + m_iHorOffset * pcOrgVideo->getStride( COMPONENT_Y ), pcOrgVideo->getStride( COMPONENT_Y ), m_iWidth, m_iUsedHeight, m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]); 264 TRenFilter<REN_BIT_DEPTH>::sampleCUpHorUp(0, pcOrgVideo->getAddr( COMPONENT_Cb ) + (m_iHorOffset >> 1) * pcOrgVideo->getStride( COMPONENT_Cb ), pcOrgVideo->getStride( COMPONENT_Cb ), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]); 265 TRenFilter<REN_BIT_DEPTH>::sampleCUpHorUp(0, pcOrgVideo->getAddr( COMPONENT_Cr ) + (m_iHorOffset >> 1) * pcOrgVideo->getStride( COMPONENT_Cr ), pcOrgVideo->getStride( COMPONENT_Cr ), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[2], m_aiRefVideoStrides[2]); 264 266 xSetStructRefView(); 265 267 } … … 285 287 break; 286 288 case 2: 287 TRenFilter ::setupZLUT( true, 30, iDistToLeft, ppiBaseShiftLutLeft, ppiBaseShiftLutRight, m_iBlendZThres, m_iBlendDistWeight, m_piInvZLUTLeft, m_piInvZLUTRight );289 TRenFilter<REN_BIT_DEPTH>::setupZLUT( true, 30, iDistToLeft, ppiBaseShiftLutLeft, ppiBaseShiftLutRight, m_iBlendZThres, m_iBlendDistWeight, m_piInvZLUTLeft, m_piInvZLUTRight ); 288 290 #if H_3D_VSO_EARLY_SKIP 289 291 xRenderL<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false); … … 452 454 #if H_3D_VSO_COLOR_PLANES 453 455 // U Planes 454 pcOutSampleRow[iPosX].iULeft = 1 << ( g_bitDepthC- 1);455 pcOutSampleRow[iPosX].iURight = 1 << ( g_bitDepthC- 1);456 pcOutSampleRow[iPosX].iUBlended = 1 << ( g_bitDepthC- 1);457 458 // V Planes 459 pcOutSampleRow[iPosX].iVLeft = 1 << ( g_bitDepthC- 1);460 pcOutSampleRow[iPosX].iVRight = 1 << ( g_bitDepthC- 1);461 pcOutSampleRow[iPosX].iVBlended = 1 << ( g_bitDepthC- 1);456 pcOutSampleRow[iPosX].iULeft = 1 << (REN_BIT_DEPTH - 1); 457 pcOutSampleRow[iPosX].iURight = 1 << (REN_BIT_DEPTH - 1); 458 pcOutSampleRow[iPosX].iUBlended = 1 << (REN_BIT_DEPTH - 1); 459 460 // V Planes 461 pcOutSampleRow[iPosX].iVLeft = 1 << (REN_BIT_DEPTH - 1); 462 pcOutSampleRow[iPosX].iVRight = 1 << (REN_BIT_DEPTH - 1); 463 pcOutSampleRow[iPosX].iVBlended = 1 << (REN_BIT_DEPTH - 1); 462 464 #endif 463 465 //// Input Samples … … 475 477 #if H_3D_VSO_EARLY_SKIP 476 478 template <BlenMod iBM, Bool bBitInc> RMDist 477 TRenSingleModelC<iBM,bBitInc>::getDistDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData ,Pel * piOrgData, Int iOrgStride )479 TRenSingleModelC<iBM,bBitInc>::getDistDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData , const Pel * piOrgData, Int iOrgStride ) 478 480 #else 479 481 template <BlenMod iBM, Bool bBitInc> RMDist 480 TRenSingleModelC<iBM,bBitInc>::getDistDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData )482 TRenSingleModelC<iBM,bBitInc>::getDistDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData ) 481 483 #endif 482 484 { … … 517 519 #if H_3D_VSO_EARLY_SKIP 518 520 template <BlenMod iBM, Bool bBitInc> Void 519 TRenSingleModelC<iBM,bBitInc>::setDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData,Pel* piOrgData, Int iOrgStride )521 TRenSingleModelC<iBM,bBitInc>::setDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData, const Pel* piOrgData, Int iOrgStride ) 520 522 #else 521 523 template <BlenMod iBM, Bool bBitInc> Void 522 TRenSingleModelC<iBM,bBitInc>::setDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData )524 TRenSingleModelC<iBM,bBitInc>::setDepth( Int iViewPos, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData ) 523 525 #endif 524 526 { … … 558 560 TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv ) 559 561 { 560 AOT( pcPicYuv->getWidth() != m_iWidth ); 561 AOT( pcPicYuv->getHeight() < m_iUsedHeight + m_iHorOffset ); 562 AOT( pcPicYuv->getWidth( COMPONENT_Y ) != m_iWidth ); 563 AOT( pcPicYuv->getChromaFormat() != CHROMA_420 ); 564 565 AOT( pcPicYuv->getHeight( COMPONENT_Y ) < m_iUsedHeight + m_iHorOffset ); 562 566 563 567 #if H_3D_VSO_COLOR_PLANES … … 590 594 { 591 595 AOT( iViewPos != 0 && iViewPos != 1); 592 AOT( pcPicYuv->getWidth() != m_iWidth ); 593 AOT( pcPicYuv->getHeight() < m_iUsedHeight + m_iHorOffset ); 596 AOT( pcPicYuv->getWidth( COMPONENT_Y) != m_iWidth ); 597 AOT( pcPicYuv->getChromaFormat( ) != CHROMA_420 ); 598 AOT( pcPicYuv->getHeight( COMPONENT_Y ) < m_iUsedHeight + m_iHorOffset ); 594 599 595 600 Pel RenModelOutPels::* piD = 0; 596 601 xGetSampleStrDepthPtrs(iViewPos, piD); 597 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piD, pcPicYuv->get LumaAddr() + pcPicYuv->getStride() * m_iHorOffset, pcPicYuv->getStride(), m_iWidth, m_iUsedHeight );598 pcPicYuv->setChromaTo( 1 << ( g_bitDepthC- 1) );602 xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piD, pcPicYuv->getAddr( COMPONENT_Y ) + pcPicYuv->getStride( COMPONENT_Y ) * m_iHorOffset, pcPicYuv->getStride( COMPONENT_Y ), m_iWidth, m_iUsedHeight ); 603 pcPicYuv->setChromaTo( 1 << (REN_BIT_DEPTH - 1) ); 599 604 } 600 605 … … 603 608 TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv ) 604 609 { 605 AOT( pcPicYuv->getWidth() != m_iWidth ); 606 AOT( pcPicYuv->getHeight() < m_iUsedHeight + m_iHorOffset); 610 AOT( pcPicYuv->getChromaFormat( ) != CHROMA_420 ); 611 AOT( pcPicYuv->getWidth( COMPONENT_Y ) != m_iWidth ); 612 AOT( pcPicYuv->getHeight( COMPONENT_Y ) < m_iUsedHeight + m_iHorOffset); 607 613 608 614 #if H_3D_VSO_COLOR_PLANES … … 633 639 634 640 template <BlenMod iBM, Bool bBitInc> RMDist 635 TRenSingleModelC<iBM,bBitInc>::getDistVideo( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData )641 TRenSingleModelC<iBM,bBitInc>::getDistVideo( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData ) 636 642 { 637 643 AOF(false); … … 640 646 641 647 template <BlenMod iBM, Bool bBitInc> Void 642 TRenSingleModelC<iBM,bBitInc>::setVideo( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData )648 TRenSingleModelC<iBM,bBitInc>::setVideo( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData ) 643 649 { 644 650 AOF(false); … … 665 671 #if H_3D_VSO_EARLY_SKIP 666 672 template <BlenMod iBM, Bool bBitInc> template<Bool bSet> __inline RMDist 667 TRenSingleModelC<iBM,bBitInc>::xRenderL( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData, Bool bFast)673 TRenSingleModelC<iBM,bBitInc>::xRenderL( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData, Bool bFast) 668 674 #else 669 675 template <BlenMod iBM, Bool bBitInc> template<Bool bSet> __inline RMDist 670 TRenSingleModelC<iBM,bBitInc>::xRenderL( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData)676 TRenSingleModelC<iBM,bBitInc>::xRenderL( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData) 671 677 #endif 672 678 { … … 789 795 #ifdef H_3D_VSO_EARLY_SKIP 790 796 template <BlenMod iBM, Bool bBitInc> template<Bool bSet> __inline RMDist 791 TRenSingleModelC<iBM,bBitInc>::xRenderR( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData , Bool bFast)797 TRenSingleModelC<iBM,bBitInc>::xRenderR( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData , Bool bFast) 792 798 #else 793 799 template <BlenMod iBM, Bool bBitInc> template<Bool bSet> __inline RMDist 794 TRenSingleModelC<iBM,bBitInc>::xRenderR( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData )800 TRenSingleModelC<iBM,bBitInc>::xRenderR( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData ) 795 801 #endif 796 802 { … … 1877 1883 TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget ) 1878 1884 { 1879 TRenFilter ::copy ( ppiSrcVideoPel[0], piStrides[0], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getLumaAddr() + m_iHorOffset * rpcPicYuvTarget->getStride() , rpcPicYuvTarget->getStride () );1880 TRenFilter ::sampleDown2Tap13( ppiSrcVideoPel[1], piStrides[1], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getCbAddr () + (m_iHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );1881 TRenFilter ::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getCrAddr () + (m_iHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );1885 TRenFilter<REN_BIT_DEPTH>::copy ( ppiSrcVideoPel[0], piStrides[0], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getAddr( COMPONENT_Y ) + m_iHorOffset * rpcPicYuvTarget->getStride( COMPONENT_Y ), rpcPicYuvTarget->getStride( COMPONENT_Y ) ); 1886 TRenFilter<REN_BIT_DEPTH>::sampleDown2Tap13( ppiSrcVideoPel[1], piStrides[1], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getAddr( COMPONENT_Cb ) + (m_iHorOffset >> 1) * rpcPicYuvTarget->getStride( COMPONENT_Cb ), rpcPicYuvTarget->getStride( COMPONENT_Cb) ); 1887 TRenFilter<REN_BIT_DEPTH>::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getAddr( COMPONENT_Cr ) + (m_iHorOffset >> 1) * rpcPicYuvTarget->getStride( COMPONENT_Cr ), rpcPicYuvTarget->getStride( COMPONENT_Cr) ); 1882 1888 } 1883 1889 … … 1895 1901 template <BlenMod iBM, Bool bBitInc> 1896 1902 __inline Bool 1897 TRenSingleModelC<iBM,bBitInc>::xDetectEarlySkipL( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData,Pel* piOrgData, Int iOrgStride)1903 TRenSingleModelC<iBM,bBitInc>::xDetectEarlySkipL( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData, const Pel* piOrgData, Int iOrgStride) 1898 1904 { 1899 1905 RM_AOF( m_bEarlySkip ); … … 1927 1933 template <BlenMod iBM, Bool bBitInc> 1928 1934 __inline Bool 1929 TRenSingleModelC<iBM,bBitInc>::xDetectEarlySkipR( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData,Pel* piOrgData, Int iOrgStride)1935 TRenSingleModelC<iBM,bBitInc>::xDetectEarlySkipR( Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, const Pel* piNewData, const Pel* piOrgData, Int iOrgStride) 1930 1936 { 1931 1937 RM_AOF( m_bEarlySkip ); … … 1958 1964 } 1959 1965 #endif 1960 #endif // H_3D1961 1966 #endif // NH_3D 1967
Note: See TracChangeset for help on using the changeset viewer.