Changeset 1030 in 3DVCSoftware for branches/HTM-11.2-dev0/source/Lib/TLibCommon
- Timestamp:
- 30 Jul 2014, 19:51:27 (11 years ago)
- Location:
- branches/HTM-11.2-dev0/source/Lib/TLibCommon
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r1029 r1030 5967 5967 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex(); 5968 5968 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5969 #if SEC_HLS_CLEANUP_I0100 5970 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) ) 5971 #else 5969 5972 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() ) 5973 #endif 5970 5974 { 5971 5975 rcMv = cColMv.scaleMv( iScale ); … … 6778 6782 if( getSlice()->getIsDepth() ) 6779 6783 { 6784 #if MTK_I0099_VPS_EX2 6785 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId()); 6786 #else 6780 6787 iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size(); 6788 #endif 6781 6789 } 6782 6790 -
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r1029 r1030 568 568 pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, i, iNumSPInOneLine, uiSPAddr[i]); 569 569 } 570 #if SHARP_ARP_CHROMA_I0104 571 if( pcCU->getARPW( uiPartAddr ) != 0 ) 572 { 573 return; 574 } 575 #endif 570 576 // horizontal sub-PU merge 571 577 for (Int i=0; i<iNumSP; i++) … … 1469 1475 pcCU->clipMv(cMv); 1470 1476 TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(); 1477 #if QC_I0129_ARP_FIX 1478 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true ); 1479 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true ); 1480 #else 1471 1481 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true ); 1472 1482 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true ); 1473 1483 #endif 1474 1484 if( dW > 0 ) 1475 1485 { … … 1479 1489 TComMv cMVwithDisparity = cMv + cDistparity.m_acNBDV; 1480 1490 pcCU->clipMv(cMVwithDisparity); 1491 #if SHARP_ARP_CHROMA_I0104 1492 if (iWidth <= 8) 1493 { 1494 pYuvB0->clear(); pYuvB1->clear(); 1495 } 1496 #endif 1481 1497 1482 1498 assert ( cDistparity.bDV ); … … 1487 1503 1488 1504 pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec(); 1505 #if QC_I0129_ARP_FIX 1506 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1507 #if SHARP_ARP_CHROMA_I0104 1508 if (iWidth > 8) 1509 #endif 1510 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1511 #else 1489 1512 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true ); 1490 1513 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true ); 1514 #endif 1491 1515 #else 1492 1516 pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec(); … … 1496 1520 1497 1521 pcPicYuvRef = pcPicYuvBaseRef->getPicYuvRec(); 1522 #if QC_I0129_ARP_FIX 1523 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1524 #if SHARP_ARP_CHROMA_I0104 1525 if (iWidth > 8) 1526 #endif 1527 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1528 #else 1498 1529 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true ); 1499 1530 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true ); 1500 1531 #endif 1501 1532 pYuvB0->subtractARP( pYuvB0 , pYuvB1 , uiPartAddr , iWidth , iHeight ); 1502 1533 … … 1508 1539 } 1509 1540 } 1541 1542 #if QC_I0051_ARP_SIMP 1543 Bool TComPrediction::xCheckBiInterviewARP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc ) 1544 { 1545 Int iRefIdx = pcCU->getCUMvField( eBaseRefPicList )->getRefIdx( uiPartAddr ); 1546 TComMv cDMv = pcCU->getCUMvField( eBaseRefPicList )->getMv( uiPartAddr ); 1547 TComPic* pcPicYuvBaseCol = pcCU->getSlice()->getRefPic( eBaseRefPicList, iRefIdx ); 1548 TComPicYuv* pcYuvBaseCol = pcPicYuvBaseCol->getPicYuvRec(); 1549 Int uiLCUAddr,uiAbsPartAddr; 1550 Int irefPUX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[uiPartAddr]] + iWidth/2 + ((cDMv.getHor() + 2)>>2); 1551 Int irefPUY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[uiPartAddr]] + iHeight/2 + ((cDMv.getVer() + 2)>>2); 1552 1553 irefPUX = (Int)Clip3<Int>(0, pcCU->getSlice()->getSPS()-> getPicWidthInLumaSamples()-1, irefPUX); 1554 irefPUY = (Int)Clip3<Int>(0, pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples()-1, irefPUY); 1555 pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1556 TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr ); 1557 1558 TComPic* pcPicYuvBaseTRef = NULL; 1559 pcPicYuvCurrTRef = NULL; 1560 1561 //If there is available motion in base reference list, use it 1562 if(!pColCU->isIntra(uiAbsPartAddr)) 1563 { 1564 for(Int iList = 0; iList < (pColCU->getSlice()->isInterB() ? 2: 1); iList ++) 1565 { 1566 RefPicList eRefPicListCurr = RefPicList(iList); 1567 Int iRef = pColCU->getCUMvField(eRefPicListCurr)->getRefIdx(uiAbsPartAddr); 1568 if( iRef != -1) 1569 { 1570 pcPicYuvBaseTRef = pColCU->getSlice()->getRefPic(eRefPicListCurr, iRef); 1571 Int iCurrPOC = pColCU->getSlice()->getPOC(); 1572 Int iCurrRefPOC = pcPicYuvBaseTRef->getPOC(); 1573 Int iCurrRef = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr); 1574 #if MTK_I0072_IVARP_SCALING_FIX 1575 if( iCurrRef >= 0 && iCurrPOC != iCurrRefPOC) 1576 #else 1577 if( iCurrRef >= 0) 1578 #endif 1579 { 1580 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); 1581 Int iTargetPOC = pcPicYuvCurrTRef->getPOC(); 1582 pcPicYuvBaseTRef = pcCU->getSlice()->getBaseViewRefPic(iTargetPOC, pcPicYuvBaseCol->getViewIndex() ); 1583 if(pcPicYuvBaseTRef) 1584 { 1585 cBaseTMV = pColCU->getCUMvField(eRefPicListCurr)->getMv(uiAbsPartAddr); 1586 Int iScale = pcCU-> xGetDistScaleFactor(iCurrPOC, iTargetPOC, iCurrPOC, iCurrRefPOC); 1587 if ( iScale != 4096 ) 1588 { 1589 cBaseTMV = cBaseTMV.scaleMv( iScale ); 1590 } 1591 iCurrTRefPoc = iTargetPOC; 1592 return true; 1593 } 1594 } 1595 } 1596 } 1597 } 1598 1599 //If there is no available motion in base reference list, use ( 0, 0 ) 1600 if( pcCU->getSlice()->getFirstTRefIdx( eBaseRefPicList ) >= 0 ) 1601 { 1602 cBaseTMV.set( 0, 0 ); 1603 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic( eBaseRefPicList, pcCU->getSlice()->getFirstTRefIdx( eBaseRefPicList ) ); 1604 iCurrTRefPoc = pcPicYuvCurrTRef->getPOC(); 1605 return true; 1606 } 1607 1608 return false; 1609 } 1610 #endif 1611 1510 1612 Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled ) 1511 1613 { … … 1541 1643 pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1542 1644 TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr ); 1543 1645 #if QC_I0051_ARP_SIMP 1646 if( pcCU->getSlice()->isInterB() && !pcCU->getSlice()->getIsDepth() ) 1647 { 1648 RefPicList eOtherRefList = ( eRefPicList == REF_PIC_LIST_0 ) ? REF_PIC_LIST_1 : REF_PIC_LIST_0; 1649 Int iOtherRefIdx = pcCU->getCUMvField( eOtherRefList )->getRefIdx( uiPartAddr ); 1650 //The other prediction direction is temporal ARP 1651 if( iOtherRefIdx >= 0 && pcCU->getSlice()->getViewIndex() == pcCU->getSlice()->getRefPic( eOtherRefList, iOtherRefIdx )->getViewIndex() ) 1652 { 1653 bTMVAvai = true; 1654 pcPicYuvBaseTRef = pcCU->getSlice()->getRefPic( eOtherRefList, iOtherRefIdx ); 1655 Int iCurrPOC = pcCU->getSlice()->getPOC(); 1656 Int iCurrRefPOC = pcPicYuvBaseTRef->getPOC(); 1657 Int iCurrRef = pcCU->getSlice()->getFirstTRefIdx( eOtherRefList ); 1658 1659 if( iCurrRef >= 0 ) 1660 { 1661 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic( eOtherRefList,iCurrRef ); 1662 Int iTargetPOC = pcPicYuvCurrTRef->getPOC(); 1663 pcPicYuvBaseTRef = pcCU->getSlice()->getBaseViewRefPic( iTargetPOC, pcPicYuvBaseCol->getViewIndex() ); 1664 if( pcPicYuvBaseTRef ) 1665 { 1666 cBaseTMV = pcCU->getCUMvField( eOtherRefList )->getMv( uiPartAddr ); 1667 Int iScale = pcCU-> xGetDistScaleFactor( iCurrPOC, iTargetPOC, iCurrPOC, iCurrRefPOC ); 1668 if ( iScale != 4096 ) 1669 { 1670 cBaseTMV = cBaseTMV.scaleMv( iScale ); 1671 } 1672 } 1673 else 1674 { 1675 dW = 0; 1676 } 1677 } 1678 else 1679 { 1680 dW = 0; 1681 } 1682 } 1683 1684 //Both prediction directions are inter-view ARP 1685 if ( iOtherRefIdx >= 0 && !bTMVAvai ) 1686 { 1687 RefPicList eBaseList = REF_PIC_LIST_0; 1688 Int iCurrTRefPoc; 1689 bTMVAvai = ( eBaseList != eRefPicList ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eOtherRefList, iOtherRefIdx )->getViewIndex() ); 1690 1691 if ( bTMVAvai ) 1692 { 1693 if( xCheckBiInterviewARP( pcCU, uiPartAddr, iWidth, iHeight, eBaseList, pcPicYuvCurrTRef, cBaseTMV, iCurrTRefPoc ) ) 1694 { 1695 pcPicYuvBaseTRef = pcCU->getSlice()->getBaseViewRefPic( iCurrTRefPoc, pcPicYuvBaseCol->getViewIndex() ); 1696 if ( pcPicYuvBaseTRef == NULL ) 1697 { 1698 dW = 0; 1699 } 1700 } 1701 else 1702 { 1703 dW = 0; 1704 } 1705 } 1706 } 1707 } 1708 1709 if( !pColCU->isIntra( uiAbsPartAddr ) && !bTMVAvai ) 1710 #else 1544 1711 if(!pColCU->isIntra(uiAbsPartAddr)) 1712 #endif 1545 1713 { 1546 1714 TComMvField puMVField; … … 1555 1723 Int iCurrRefPOC = pcPicYuvBaseTRef->getPOC(); 1556 1724 Int iCurrRef = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr); 1725 #if MTK_I0072_IVARP_SCALING_FIX 1726 if (iCurrRef >= 0 && iCurrRefPOC != iCurrPOC) 1727 #else 1557 1728 if( iCurrRef >= 0) 1729 #endif 1558 1730 { 1559 1731 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); … … 1582 1754 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic (eRefPicList, pcCU->getSlice()->getFirstTRefIdx(eRefPicList)); 1583 1755 } 1584 1756 #if QC_I0129_ARP_FIX 1757 xPredInterLumaBlk ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), bTMVAvai); 1758 xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), bTMVAvai); 1759 #else 1585 1760 xPredInterLumaBlk ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi, bTMVAvai); 1586 1761 xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi, bTMVAvai); 1587 1762 #endif 1588 1763 if( dW > 0 && bTMVAvai ) 1589 1764 { … … 1596 1771 pcCU->clipMv(cBaseTMV); 1597 1772 pcCU->clipMv(cTempMv); 1598 1773 #if SHARP_ARP_CHROMA_I0104 1774 if (iWidth <= 8) 1775 { 1776 pYuvCurrTRef->clear(); pYuvBaseTRef->clear(); 1777 } 1778 #endif 1779 #if QC_I0129_ARP_FIX 1780 xPredInterLumaBlk ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1781 #if SHARP_ARP_CHROMA_I0104 1782 if (iWidth > 8) 1783 #endif 1784 xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1785 xPredInterLumaBlk ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1786 #if SHARP_ARP_CHROMA_I0104 1787 if (iWidth > 8) 1788 #endif 1789 xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1790 #else 1599 1791 xPredInterLumaBlk ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi, true); 1600 1792 xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi, true); … … 1602 1794 xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, bi, true); 1603 1795 1796 #endif 1604 1797 pYuvCurrTRef->subtractARP( pYuvCurrTRef , pYuvBaseTRef , uiPartAddr , iWidth , iHeight ); 1605 1798 if(dW == 2) … … 2135 2328 Int iRecStride = ( eType == TEXT_LUMA ) ? pRecPic->getStride() : pRecPic->getCStride(); 2136 2329 Int iRefStride = ( eType == TEXT_LUMA ) ? pRefPic->getStride() : pRefPic->getCStride(); 2330 #if SEC_IC_NEIGHBOR_CLIP_I0080 2331 Int iRefOffset, iHor, iVer; 2332 #else 2137 2333 Int iCUPelX, iCUPelY, iRefX, iRefY, iRefOffset, iHor, iVer; 2138 2334 2139 2335 iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]]; 2140 2336 iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]]; 2337 #endif 2141 2338 iHor = pcCU->getSlice()->getIsDepth() ? pMv->getHor() : ( ( pMv->getHor() + 2 ) >> 2 ); 2142 2339 iVer = pcCU->getSlice()->getIsDepth() ? pMv->getVer() : ( ( pMv->getVer() + 2 ) >> 2 ); 2340 #if !SEC_IC_NEIGHBOR_CLIP_I0080 2143 2341 iRefX = iCUPelX + iHor; 2144 2342 iRefY = iCUPelY + iVer; 2343 #endif 2145 2344 if( eType != TEXT_LUMA ) 2146 2345 { … … 2158 2357 Int precShift = std::max(0, (( eType == TEXT_LUMA ) ? g_bitDepthY : g_bitDepthC) - 12); 2159 2358 2359 #if SEC_IC_NEIGHBOR_CLIP_I0080 2360 if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) ) 2361 #else 2160 2362 if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelY > 0 && iRefY > 0 ) 2363 #endif 2161 2364 { 2162 2365 iRefOffset = iHor + iVer * iRefStride - iRefStride; … … 2188 2391 } 2189 2392 2190 2393 #if SEC_IC_NEIGHBOR_CLIP_I0080 2394 if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) ) 2395 #else 2191 2396 if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelX > 0 && iRefX > 0 ) 2397 #endif 2192 2398 { 2193 2399 iRefOffset = iHor + iVer * iRefStride - 1; -
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComPrediction.h
r1029 r1030 90 90 #if H_3D_ARP 91 91 Void xPredInterUniARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL ); 92 #if QC_I0051_ARP_SIMP 93 Bool xCheckBiInterviewARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc ); 94 #endif 92 95 Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL ); 93 96 #endif -
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComSlice.cpp
r1015 r1030 1952 1952 m_viewIndex [i] = -1; 1953 1953 m_vpsDepthModesFlag [i] = false; 1954 #if SEC_HLS_CLEANUP_I0100 1955 m_ivMvScalingFlag[i] = true; 1956 #else 1957 m_ivMvScalingFlag = true; 1958 #endif 1959 #endif 1954 1960 #if SEPARATE_FLAG_I0085 1955 1961 m_bIVPFlag [i] = false; … … 1986 1992 m_iSubPULog2Size [ i ] = 0; 1987 1993 #endif 1994 #endif 1995 #if MTK_I0099_VPS_EX2 1996 m_bLimQtPredFlag [ i ] = false; 1988 1997 #endif 1989 1998 #if H_3D_VSP … … 2518 2527 , m_pcmLog2MaxSize ( 5) 2519 2528 , m_uiPCMLog2MinSize ( 7) 2529 #if !MTK_I0099_VPS_EX2 2520 2530 #if H_3D_QTLPC 2521 2531 , m_bUseQTL (false) 2522 2532 , m_bUsePC (false) 2533 #endif 2523 2534 #endif 2524 2535 , m_bitDepthY ( 8) -
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComSlice.h
r1023 r1030 798 798 #if H_3D_IV_MERGE 799 799 Bool m_ivMvPredFlag [ MAX_NUM_LAYERS ]; 800 #if SEC_HLS_CLEANUP_I0100 801 Bool m_ivMvScalingFlag [ MAX_NUM_LAYERS ]; 802 #endif 800 803 #if H_3D_SPIVMP 801 804 Int m_iSubPULog2Size [MAX_NUM_LAYERS ]; 805 #if MTK_I0099_VPS_EX2 806 Int m_iSubPUMPILog2Size [MAX_NUM_LAYERS ]; 807 #else 802 808 Int m_iSubPUMPILog2Size; 803 809 #endif 810 #endif 811 #endif 812 #if MTK_I0099_VPS_EX2 813 Bool m_bLimQtPredFlag [ MAX_NUM_LAYERS ]; 804 814 #endif 805 815 #if H_3D_VSP … … 820 830 Int ***m_aaaiCodedScale ; 821 831 Int ***m_aaaiCodedOffset; 832 833 #if !SEC_HLS_CLEANUP_I0100 822 834 Bool m_ivMvScalingFlag; 835 #endif 836 823 837 #endif 824 838 #if H_3D_INTER_SDC … … 1133 1147 Int getSubPULog2Size(Int layerIdInVps) { return m_iSubPULog2Size[layerIdInVps]; } 1134 1148 Void setSubPULog2Size(Int layerIdInVps, Int u) { m_iSubPULog2Size[layerIdInVps] = u;} 1149 #if MTK_I0099_VPS_EX2 1150 Int getSubPUMPILog2Size(Int layerIdInVps) { return m_iSubPUMPILog2Size[layerIdInVps]; } 1151 Void setSubPUMPILog2Size(Int layerIdInVps, Int u) { m_iSubPUMPILog2Size[layerIdInVps] = u;} 1152 #else 1135 1153 Int getSubPUMPILog2Size( ) { return m_iSubPUMPILog2Size; } 1136 1154 Void setSubPUMPILog2Size( Int u ) { m_iSubPUMPILog2Size = u; } 1137 1155 #endif 1156 #endif 1157 #endif 1158 #if MTK_I0099_VPS_EX2 1159 Void setLimQtPredFlag ( Int layerIdInVps, Bool val ) { m_bLimQtPredFlag[ layerIdInVps ] = val; } 1160 Bool getLimQtPredFlag ( Int layerIdInVps ) { return m_bLimQtPredFlag[layerIdInVps];} 1138 1161 #endif 1139 1162 #if H_3D_VSP … … 1152 1175 #endif 1153 1176 1177 #if SEC_HLS_CLEANUP_I0100 1178 Bool getIvMvScalingFlag ( Int layerIdInVps ) { return m_ivMvScalingFlag[ layerIdInVps ]; } 1179 Void setIvMvScalingFlag (Int layerIdInVps, Bool b ) { m_ivMvScalingFlag[ layerIdInVps ] = b; } 1180 #else 1154 1181 Bool getIvMvScalingFlag ( ) { return m_ivMvScalingFlag; } 1155 1182 Void setIvMvScalingFlag ( Bool b ) { m_ivMvScalingFlag = b; } 1183 #endif 1184 1156 1185 #if H_3D_INTER_SDC 1157 1186 Bool getInterSDCFlag ( Int layerIdInVps ) { return m_bInterSDCFlag[layerIdInVps]; } … … 1477 1506 Bool m_useAMP; 1478 1507 1508 #if !MTK_I0099_VPS_EX2 1479 1509 #if H_3D_QTLPC 1480 1510 Bool m_bUseQTL; 1481 1511 Bool m_bUsePC; 1512 #endif 1482 1513 #endif 1483 1514 // Parameter … … 1743 1774 1744 1775 #endif 1776 #if !MTK_I0099_VPS_EX2 1745 1777 #if H_3D_QTLPC 1746 1778 Void setUseQTL( Bool b ) { m_bUseQTL = b; } … … 1748 1780 Void setUsePC ( Bool b ) { m_bUsePC = b; } 1749 1781 Bool getUsePC () { return m_bUsePC; } 1782 #endif 1750 1783 #endif 1751 1784 #if H_MV -
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComYuv.cpp
r872 r1030 689 689 UInt iSrc1Stride = pcYuvSrc1->getStride(); 690 690 UInt iDstStride = getStride(); 691 #if QC_I0129_ARP_FIX 692 Int iIFshift = IF_INTERNAL_PREC - g_bitDepthY; 693 Int iOffSet = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS; 694 #endif 691 695 for ( y = uiHeight-1; y >= 0; y-- ) 692 696 { … … 696 700 if( bClip ) 697 701 { 702 #if QC_I0129_ARP_FIX 703 pDst[x] = ClipY( ( pDst[x] + iOffSet ) >> iIFshift ); 704 #else 698 705 pDst[x] = ClipY( pDst[x] ); 706 #endif 699 707 } 700 708 } … … 719 727 UInt iSrc1Stride = pcYuvSrc1->getCStride(); 720 728 UInt iDstStride = getCStride(); 729 #if QC_I0129_ARP_FIX 730 Int iIFshift = IF_INTERNAL_PREC - g_bitDepthC; 731 Int iOffSet = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS; 732 #endif 721 733 for ( y = uiHeight-1; y >= 0; y-- ) 722 734 { … … 727 739 if( bClip ) 728 740 { 741 #if QC_I0129_ARP_FIX 742 pDstU[x] = ClipC( ( pDstU[x] + iOffSet ) >> iIFshift ); 743 pDstV[x] = ClipC( ( pDstV[x] + iOffSet ) >> iIFshift ); 744 #else 729 745 pDstU[x] = ClipC( pDstU[x] ); 730 746 pDstV[x] = ClipC( pDstV[x] ); 747 #endif 731 748 } 732 749 } … … 744 761 { 745 762 subtractARPLuma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth , uiHeight ); 763 #if SHARP_ARP_CHROMA_I0104 764 if (uiWidth > 8) 765 #endif 746 766 subtractARPChroma( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 ); 747 767 } … … 803 823 { 804 824 multiplyARPLuma( uiAbsPartIdx , uiWidth , uiHeight , dW ); 825 #if SHARP_ARP_CHROMA_I0104 826 if (uiWidth > 8) 827 #endif 805 828 multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW ); 806 829 } -
branches/HTM-11.2-dev0/source/Lib/TLibCommon/TypeDef.h
r1029 r1030 123 123 // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121 124 124 // MTK_LOW_LATENCY_IC_ENCODING_H0086 Low-latency IC encoding in JCT3V-H0086 125 126 #define SEC_IC_NEIGHBOR_CLIP_I0080 1 // Clipping of neighboring sample position, JCT3V-I0080 125 127 126 128 … … 262 264 #endif 263 265 266 #define MTK_I0099_VPS_EX2 1 ///< JCT3V-I0099, sub-PU size signaling and lim_qt_pred_flag in VPS extension 2 267 #define MTK_I0099_FIX 1 ///< Fix the problem of removing encoder only QTL 268 264 269 // Rate Control 265 270 #define KWU_FIX_URQ 1 266 271 #define KWU_RC_VIEWRC_E0227 0 ///< JCT3V-E0227, view-wise target bitrate allocation 267 272 #define KWU_RC_MADPRED_E0227 0 ///< JCT3V-E0227, inter-view MAD prediction 273 274 #define SEC_VPS_CLEANUP_I0090 1 275 #define SEC_HLS_CLEANUP_I0100 1 268 276 269 277 #endif // H_3D … … 295 303 #if H_3D_ARP 296 304 #define H_3D_ARP_WFNR 3 305 #define QC_I0129_ARP_FIX 1 306 #define QC_I0051_ARP_SIMP 1 307 #define SHARP_ARP_CHROMA_I0104 1 308 #define MTK_I0072_IVARP_SCALING_FIX 1 297 309 #endif 298 310
Note: See TracChangeset for help on using the changeset viewer.