Changeset 1030 in 3DVCSoftware
- Timestamp:
- 30 Jul 2014, 19:51:27 (10 years ago)
- Location:
- branches/HTM-11.2-dev0/source
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.2-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r1015 r1030 767 767 768 768 #endif //HHI_VSO 769 #if MTK_I0099_VPS_EX2 770 ("LimQtPredFlag", m_bLimQtPredFlag , true , "Use Predictive Coding with QTL" ) 771 #endif 772 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX 769 773 #if H_3D_QTLPC 770 774 ("QTL", m_bUseQTL , true , "Use depth Quadtree Limitation" ) 775 #if !MTK_I0099_VPS_EX2 771 776 ("PC", m_bUsePC , true , "Use Predictive Coding with QTL" ) 777 #endif 778 #endif 772 779 #endif 773 780 #if H_3D_IV_MERGE … … 2497 2504 printf("WVSO:%d ", m_bUseWVSO ); 2498 2505 #endif 2506 #if MTK_I0099_VPS_EX2 2507 printf("LimQtPredFlag:%d ", m_bLimQtPredFlag ? 1 : 0); 2508 #endif 2509 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX 2499 2510 #if H_3D_QTLPC 2500 2511 printf("QTL:%d ", m_bUseQTL); 2512 #if !MTK_I0099_VPS_EX2 2501 2513 printf("PC:%d " , m_bUsePC ); 2514 #endif 2515 #endif 2502 2516 #endif 2503 2517 #if H_3D_IV_MERGE -
branches/HTM-11.2-dev0/source/App/TAppEncoder/TAppEncCfg.h
r1015 r1030 131 131 Int m_iSubPUMPILog2Size; 132 132 #endif 133 #endif 134 #if MTK_I0099_VPS_EX2 135 Bool m_bLimQtPredFlag; 133 136 #endif 134 137 #if H_3D_ARP /// < flag and number of weighting factors in ARP … … 479 482 Bool m_useSingleDepthMode; ///< flag for using single depth mode 480 483 #endif 484 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX 485 #if H_3D_QTLPC 486 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation 487 #if !MTK_I0099_VPS_EX2 488 Bool m_bUsePC; ///< flag for using Predictive Coding with QTL 489 #endif 490 #endif 491 #endif 492 481 493 #if H_3D_QTLPC 482 494 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation -
branches/HTM-11.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r1015 r1030 208 208 m_cTEncTop.setUseSingleDepthMode ( isDepth ? m_useSingleDepthMode : false ); 209 209 #endif 210 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX 211 #if H_3D_QTLPC 212 m_cTEncTop.setUseQTL ( isDepth ? m_bUseQTL : false ); 213 #if !MTK_I0099_VPS_EX2 214 m_cTEncTop.setUsePC ( isDepth ? m_bUsePC : false ); 215 #endif 216 #endif 217 #endif 218 210 219 #if H_3D_QTLPC 211 220 m_cTEncTop.setUseQTL ( isDepth ? m_bUseQTL : false ); … … 1821 1830 { 1822 1831 vps.setSubPULog2Size ( layer, (layer != 1) ? 6: 0 ); 1832 #if MTK_I0099_VPS_EX2 1833 vps.setSubPUMPILog2Size ( layer, (!isLayerZero) ? m_iSubPUMPILog2Size: 0 ); 1834 #endif 1823 1835 } 1824 1836 else … … 1839 1851 { 1840 1852 vps.setIvMvPredFlag (layer, false); 1853 #if SEC_HLS_CLEANUP_I0100 1854 vps.setIvMvScalingFlag (layer, false); 1855 #endif 1841 1856 } 1842 1857 else … … 1850 1865 vps.setIvMvPredFlag ( layer, !isLayerZero && m_ivMvPredFlag[0] ); 1851 1866 } 1852 } 1867 #if SEC_HLS_CLEANUP_I0100 1868 vps.setIvMvScalingFlag (layer, m_ivMvScalingFlag); 1869 #endif 1870 } 1871 #endif 1872 #if MTK_I0099_VPS_EX2 1873 vps.setLimQtPredFlag ( layer, isDepth && m_bLimQtPredFlag ); 1853 1874 #endif 1854 1875 #if H_3D_NBDV_REF … … 1868 1889 #endif 1869 1890 } 1891 #if !MTK_I0099_VPS_EX2 1870 1892 #if H_3D_SPIVMP 1871 1893 vps.setSubPUMPILog2Size( m_iSubPUMPILog2Size ); 1872 1894 #endif 1895 #endif 1873 1896 #if H_3D 1897 #if !SEC_HLS_CLEANUP_I0100 1874 1898 vps.setIvMvScalingFlag( m_ivMvScalingFlag ); 1899 #endif 1875 1900 #endif 1876 1901 } -
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 -
branches/HTM-11.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1015 r1030 1051 1051 Void TDecCavlc::parseSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 1052 1052 { 1053 #if !MTK_I0099_VPS_EX2 1053 1054 UInt uiCode; 1054 1055 #if H_3D_QTLPC … … 1061 1062 pcSPS->setUsePC( uiCode ); 1062 1063 } 1064 #endif 1063 1065 #endif 1064 1066 } … … 1756 1758 { 1757 1759 UInt uiCode; 1760 #if SEC_VPS_CLEANUP_I0090 1761 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1762 #else 1758 1763 for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1764 #endif 1759 1765 { 1760 1766 #if H_3D_ARP … … 1765 1771 pcVPS->setSubPULog2Size(i, 0); 1766 1772 #endif 1773 #if !SEC_VPS_CLEANUP_I0090 1767 1774 if ( i != 0 ) 1768 { 1775 #endif 1776 { 1777 #if MTK_I0099_VPS_EX2 1778 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1779 #if SEC_HLS_CLEANUP_I0100 1780 READ_FLAG( uiCode, "iv_mv_scaling_flag[i]"); pcVPS->setIvMvScalingFlag ( i, uiCode == 1 ? true : false ); 1781 #endif 1782 #endif 1769 1783 if( !( pcVPS->getDepthId( i ) == 1 ) ) 1770 1784 { 1771 1785 #if H_3D_IV_MERGE 1786 #if !MTK_I0099_VPS_EX2 1772 1787 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1788 #endif 1773 1789 if( !pcVPS->getNumDirectRefLayers(i) ) 1774 1790 { … … 1802 1818 else 1803 1819 { 1820 #if !MTK_I0099_VPS_EX2 1804 1821 #if H_3D_IV_MERGE 1805 1822 if(i!=1) … … 1818 1835 } 1819 1836 #endif 1837 #endif 1820 1838 #if H_3D_IV_MERGE 1821 1839 READ_FLAG( uiCode, "mpi_flag[i]" ); pcVPS->setMPIFlag( i, uiCode == 1 ? true : false ); 1840 #endif 1841 #if MTK_I0099_VPS_EX2 1842 READ_UVLC (uiCode, "log2_mpi_sub_PU_size_minus3[i]"); pcVPS->setSubPUMPILog2Size(i, uiCode+3); 1822 1843 #endif 1823 1844 READ_FLAG( uiCode, "vps_depth_modes_flag[i]" ); pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false ); … … 1825 1846 READ_FLAG( uiCode, "ivp_flag[i]" ); pcVPS->setIVPFlag( i, uiCode == 1 ? true : false ); 1826 1847 #endif 1827 // READ_FLAG( uiCode, "lim_qt_pred_flag[i]"); pcVPS->setLimQtPreFlag ( i, uiCode == 1 ? true : false ); 1848 #if MTK_I0099_VPS_EX2 1849 READ_FLAG( uiCode, "lim_qt_pred_flag[i]"); pcVPS->setLimQtPredFlag ( i, uiCode == 1 ? true : false ); 1850 #endif 1828 1851 #if H_3D_INTER_SDC 1829 1852 READ_FLAG( uiCode, "depth_inter_SDC_flag" ); pcVPS->setInterSDCFlag( i, uiCode ? true : false ); … … 1838 1861 1839 1862 READ_UVLC( uiCamParPrecision, "cp_precision" ); 1863 #if SEC_VPS_CLEANUP_I0090 1864 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++) 1865 #else 1840 1866 for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++) 1867 #endif 1841 1868 { 1842 1869 pcVPS->setCamParPresent ( viewIndex, false ); … … 1860 1887 } 1861 1888 } 1889 #if !MTK_I0099_VPS_EX2 1862 1890 READ_UVLC (uiCode, "log2_sub_PU_MPI_size_minus3"); pcVPS->setSubPUMPILog2Size( uiCode + 3 ); 1891 #endif 1892 #if !SEC_HLS_CLEANUP_I0100 1863 1893 READ_FLAG( uiCode, "iv_mv_scaling_flag"); pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false ); 1894 #endif 1864 1895 } 1865 1896 #endif … … 2462 2493 } 2463 2494 #if H_3D_IC 2495 #if SEC_HLS_CLEANUP_I0100 2496 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 ) 2497 #else 2464 2498 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth()) 2499 #endif 2465 2500 { 2466 2501 UInt uiCodeTmp = 0; -
branches/HTM-11.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r1029 r1030 780 780 Bool bParseSplitFlag = true; 781 781 782 #if MTK_I0099_VPS_EX2 783 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 784 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 785 #else 782 786 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 787 #endif 783 788 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 784 789 Bool bDepthMapDetect = (pcTexture != NULL); … … 787 792 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 788 793 794 #if MTK_I0099_VPS_EX2 795 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag) 796 #else 789 797 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC()) 798 #endif 790 799 { 791 800 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 829 838 #if H_3D_QTLPC 830 839 Bool bParsePartSize = true; 840 #if MTK_I0099_VPS_EX2 841 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 842 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 843 #else 831 844 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 845 #endif 832 846 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 833 847 Bool bDepthMapDetect = (pcTexture != NULL); … … 838 852 Bool depthDependent = false; 839 853 UInt uiTexturePart = uiMode; 854 #if MTK_I0099_VPS_EX2 855 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag ) 856 #else 840 857 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC()) 858 #endif 841 859 { 842 860 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); -
branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r1015 r1030 887 887 { 888 888 #if H_3D_QTLPC 889 #if !MTK_I0099_VPS_EX2 889 890 //GT: This has to go to VPS 890 891 if( depthFlag ) … … 893 894 WRITE_FLAG( pcSPS->getUsePC() ? 1 : 0, "use_pc_flag"); 894 895 } 896 #endif 895 897 #endif 896 898 } … … 1558 1560 Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS ) 1559 1561 { 1562 #if SEC_VPS_CLEANUP_I0090 1563 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1564 #else 1560 1565 for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1561 { 1566 #endif 1567 { 1568 #if !SEC_VPS_CLEANUP_I0090 1562 1569 if (i!= 0) 1563 { 1570 #endif 1571 { 1572 #if MTK_I0099_VPS_EX2 1573 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1574 #if SEC_HLS_CLEANUP_I0100 1575 WRITE_FLAG( pcVPS->getIvMvScalingFlag( i ) ? 1 : 0 , "iv_mv_scaling_flag[i]" ); 1576 #endif 1577 1578 #endif 1564 1579 if ( !( pcVPS->getDepthId( i ) == 1 ) ) 1565 1580 { 1566 1581 #if H_3D_IV_MERGE 1582 #if !MTK_I0099_VPS_EX2 1567 1583 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1584 #endif 1568 1585 #if H_3D_SPIVMP 1569 1586 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]"); … … 1585 1602 else 1586 1603 { 1604 #if !MTK_I0099_VPS_EX2 1587 1605 if(i!=1) 1588 1606 { … … 1595 1613 } 1596 1614 #endif 1615 #endif 1597 1616 #if H_3D_IV_MERGE 1598 1617 WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 , "mpi_flag[i]" ); 1618 #endif 1619 #if MTK_I0099_VPS_EX2 1620 WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]"); 1599 1621 #endif 1600 1622 WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 , "vps_depth_modes_flag[i]" ); … … 1602 1624 WRITE_FLAG( pcVPS->getIVPFlag( i ) ? 1 : 0 , "IVP_flag[i]" ); 1603 1625 #endif 1604 //WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); 1626 #if MTK_I0099_VPS_EX2 1627 WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); 1628 #endif 1629 1605 1630 #if H_3D_INTER_SDC 1606 1631 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" ); … … 1610 1635 } 1611 1636 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" ); 1637 #if SEC_VPS_CLEANUP_I0090 1638 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++) 1639 #else 1612 1640 for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++) 1641 #endif 1613 1642 { 1614 1643 WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" ); … … 1628 1657 } 1629 1658 } 1659 #if !MTK_I0099_VPS_EX2 1630 1660 WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3"); 1661 #endif 1631 1662 #if H_3D_TMVP 1663 #if !SEC_HLS_CLEANUP_I0100 1632 1664 WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 , "iv_mv_scaling_flag" ); 1665 #endif 1633 1666 #endif 1634 1667 } … … 2016 2049 } 2017 2050 #if H_3D_IC 2051 #if SEC_HLS_CLEANUP_I0100 2052 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 ) 2053 #else 2018 2054 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth()) 2055 #endif 2019 2056 { 2020 2057 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); -
branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncCfg.h
r1015 r1030 426 426 Bool m_useMPI; 427 427 #endif 428 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX 428 429 #if H_3D_QTLPC 429 430 Bool m_bUseQTL; 431 #if !MTK_I0099_VPS_EX2 430 432 Bool m_bUsePC; 433 #endif 434 #endif 431 435 #endif 432 436 #endif … … 1022 1026 Bool getUseSingleDepthMode () { return m_useSingleDepthMode; } 1023 1027 #endif 1028 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX 1024 1029 #if H_3D_QTLPC 1025 1030 Void setUseQTL ( Bool b ) { m_bUseQTL = b; } 1026 1031 Bool getUseQTL () { return m_bUseQTL; } 1032 #if !MTK_I0099_VPS_EX2 1027 1033 Void setUsePC ( Bool b ) { m_bUsePC = b; } 1028 1034 Bool getUsePC () { return m_bUsePC; } 1035 #endif 1036 #endif 1029 1037 #endif 1030 1038 #if H_3D_IV_MERGE -
branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r1029 r1030 409 409 410 410 #if H_3D_QTLPC 411 #if MTK_I0099_VPS_EX2 412 TComVPS *vps = pcPic->getSlice(0)->getVPS(); 413 Bool bLimQtPredFalg = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId()); 414 #else 411 415 TComSPS *sps = pcPic->getSlice(0)->getSPS(); 416 #endif 412 417 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); 413 418 … … 531 536 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 532 537 538 #if MTK_I0099_VPS_EX2 539 #if MTK_I0099_FIX 540 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg )) 541 #else 542 if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg) 543 #endif 544 #else 533 545 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL()) 546 #endif 534 547 { 535 548 TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU … … 685 698 686 699 #if H_3D_QTLPC 700 #if MTK_I0099_VPS_EX2 701 #if MTK_I0099_FIX 702 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg )) 703 #else 704 if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg) 705 #endif 706 #else 687 707 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL()) 708 #endif 688 709 { 689 710 bTrySplitDQP = bTrySplit; -
branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r1029 r1030 714 714 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 715 715 #if H_3D_QTLPC 716 #if MTK_I0099_VPS_EX2 717 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 718 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 719 #else 716 720 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 721 #endif 717 722 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 718 723 Bool bDepthMapDetect = (pcTexture != NULL); … … 723 728 Bool depthDependent = false; 724 729 UInt uiTexturePart = eSize; 730 #if MTK_I0099_VPS_EX2 731 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag ) 732 #else 725 733 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() ) 734 #endif 726 735 { 727 736 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 1081 1090 Bool bCodeSplitFlag = true; 1082 1091 1092 #if MTK_I0099_VPS_EX2 1093 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 1094 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 1095 #else 1083 1096 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 1097 #endif 1084 1098 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 1085 1099 Bool bDepthMapDetect = (pcTexture != NULL); … … 1088 1102 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 1089 1103 1104 #if MTK_I0099_VPS_EX2 1105 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag ) 1106 #else 1090 1107 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC()) 1108 #endif 1091 1109 { 1092 1110 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); -
branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r976 r1030 744 744 m_cSPS.setUseAMP ( m_useAMP ); 745 745 746 #if !MTK_I0099_VPS_EX2 746 747 #if H_3D_QTLPC 747 748 m_cSPS.setUseQTL( m_bUseQTL ); 748 749 m_cSPS.setUsePC ( m_bUsePC ); 750 #endif 749 751 #endif 750 752
Note: See TracChangeset for help on using the changeset viewer.