Changeset 1007 in 3DVCSoftware
- Timestamp:
- 22 Jul 2014, 10:27:09 (10 years ago)
- Location:
- branches/HTM-11.2-dev2-MediaTek/source
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.cpp
r976 r1007 761 761 762 762 #endif //HHI_VSO 763 #if MTK_I0099_VPS_EX2 764 ("LimQtPredFlag", m_bLimQtPredFlag , true , "Use Predictive Coding with QTL" ) 765 #endif 766 #if !MTK_I0099_VPS_EX2 763 767 #if H_3D_QTLPC 764 768 ("QTL", m_bUseQTL , true , "Use depth Quadtree Limitation" ) 765 769 ("PC", m_bUsePC , true , "Use Predictive Coding with QTL" ) 770 #endif 766 771 #endif 767 772 #if H_3D_IV_MERGE … … 2491 2496 printf("WVSO:%d ", m_bUseWVSO ); 2492 2497 #endif 2498 #if MTK_I0099_VPS_EX2 2499 printf("LimQtPredFlag:%d", m_bLimQtPredFlag ? 1 : 0); 2500 #endif 2501 #if !MTK_I0099_VPS_EX2 2493 2502 #if H_3D_QTLPC 2494 2503 printf("QTL:%d ", m_bUseQTL); 2495 2504 printf("PC:%d " , m_bUsePC ); 2505 #endif 2496 2506 #endif 2497 2507 #if H_3D_IV_MERGE -
branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.h
r976 r1007 128 128 vector<Bool> m_ivMvPredFlag; ///< Interview motion vector prediction 129 129 #if H_3D_SPIVMP 130 Int m_iSubPULog2Size; 131 Int m_iSubPUMPILog2Size; 132 #endif 130 Int m_iSubPULog2Size; 131 Int m_iSubPUMPILog2Size; 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 … … 473 476 Bool m_useDLT; ///< flag for using DLT 474 477 #endif 478 #if !MTK_I0099_VPS_EX2 475 479 #if H_3D_QTLPC 476 480 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation 477 481 Bool m_bUsePC; ///< flag for using Predictive Coding with QTL 482 #endif 478 483 #endif 479 484 #if H_3D_INTER_SDC -
branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncTop.cpp
r976 r1007 202 202 m_cTEncTop.setUseDLT ( isDepth ? m_useDLT : false ); 203 203 #endif 204 #if !MTK_I0099_VPS_EX2 204 205 #if H_3D_QTLPC 205 206 m_cTEncTop.setUseQTL ( isDepth ? m_bUseQTL : false ); 206 207 m_cTEncTop.setUsePC ( isDepth ? m_bUsePC : false ); 208 #endif 207 209 #endif 208 210 //====== Depth Inter SDC ========= … … 1815 1817 { 1816 1818 vps.setSubPULog2Size ( layer, (layer != 1) ? 6: 0 ); 1819 #if MTK_I0099_VPS_EX2 1820 vps.setSubPUMPILog2Size ( layer, (!isLayerZero) ? m_iSubPUMPILog2Size: 0 ); 1821 #endif 1817 1822 } 1818 1823 else … … 1843 1848 } 1844 1849 #endif 1850 #if MTK_I0099_VPS_EX2 1851 vps.setLimQtPredFlag ( layer, isDepth && m_bLimQtPredFlag ); 1852 #endif 1845 1853 #if H_3D_NBDV_REF 1846 1854 vps.setDepthRefinementFlag ( layer, !isLayerZero && !isDepth && m_depthRefinementFlag ); … … 1859 1867 #endif 1860 1868 } 1869 #if !MTK_I0099_VPS_EX2 1861 1870 #if H_3D_SPIVMP 1862 1871 vps.setSubPUMPILog2Size( m_iSubPUMPILog2Size ); 1872 #endif 1863 1873 #endif 1864 1874 #if H_3D -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp
r976 r1007 6650 6650 if( getSlice()->getIsDepth() ) 6651 6651 { 6652 #if MTK_I0099_VPS_EX2 6653 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId()); 6654 #else 6652 6655 iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size(); 6656 #endif 6653 6657 } 6654 6658 -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.cpp
r976 r1007 1974 1974 #endif 1975 1975 #endif 1976 #if MTK_I0099_VPS_EX2 1977 m_bLimQtPredFlag [ i ] = false; 1978 #endif 1976 1979 #if H_3D_VSP 1977 1980 m_viewSynthesisPredFlag[ i ] = false; … … 2502 2505 , m_pcmLog2MaxSize ( 5) 2503 2506 , m_uiPCMLog2MinSize ( 7) 2507 #if !MTK_I0099_VPS_EX2 2504 2508 #if H_3D_QTLPC 2505 2509 , m_bUseQTL (false) 2506 2510 , m_bUsePC (false) 2511 #endif 2507 2512 #endif 2508 2513 , m_bitDepthY ( 8) -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.h
r976 r1007 800 800 #if H_3D_SPIVMP 801 801 Int m_iSubPULog2Size [MAX_NUM_LAYERS ]; 802 #if MTK_I0099_VPS_EX2 803 Int m_iSubPUMPILog2Size [MAX_NUM_LAYERS ]; 804 #else 802 805 Int m_iSubPUMPILog2Size; 803 806 #endif 807 #endif 808 #endif 809 #if MTK_I0099_VPS_EX2 810 Bool m_bLimQtPredFlag [ MAX_NUM_LAYERS ]; 804 811 #endif 805 812 #if H_3D_VSP … … 1130 1137 Int getSubPULog2Size(Int layerIdInVps) { return m_iSubPULog2Size[layerIdInVps]; } 1131 1138 Void setSubPULog2Size(Int layerIdInVps, Int u) { m_iSubPULog2Size[layerIdInVps] = u;} 1139 #if MTK_I0099_VPS_EX2 1140 Int getSubPUMPILog2Size(Int layerIdInVps) { return m_iSubPUMPILog2Size[layerIdInVps]; } 1141 Void setSubPUMPILog2Size(Int layerIdInVps, Int u) { m_iSubPUMPILog2Size[layerIdInVps] = u;} 1142 #else 1132 1143 Int getSubPUMPILog2Size( ) { return m_iSubPUMPILog2Size; } 1133 1144 Void setSubPUMPILog2Size( Int u ) { m_iSubPUMPILog2Size = u; } 1134 1145 #endif 1146 #endif 1147 #endif 1148 #if MTK_I0099_VPS_EX2 1149 Void setLimQtPredFlag ( Int layerIdInVps, Bool val ) { m_bLimQtPredFlag[ layerIdInVps ] = val; } 1150 Bool getLimQtPredFlag ( Int layerIdInVps ) { return m_bLimQtPredFlag[layerIdInVps];} 1135 1151 #endif 1136 1152 #if H_3D_VSP … … 1466 1482 Bool m_useAMP; 1467 1483 1484 #if !MTK_I0099_VPS_EX2 1468 1485 #if H_3D_QTLPC 1469 1486 Bool m_bUseQTL; 1470 1487 Bool m_bUsePC; 1488 #endif 1471 1489 #endif 1472 1490 // Parameter … … 1732 1750 1733 1751 #endif 1752 #if !MTK_I0099_VPS_EX2 1734 1753 #if H_3D_QTLPC 1735 1754 Void setUseQTL( Bool b ) { m_bUseQTL = b; } … … 1737 1756 Void setUsePC ( Bool b ) { m_bUsePC = b; } 1738 1757 Bool getUsePC () { return m_bUsePC; } 1758 #endif 1739 1759 #endif 1740 1760 #if H_MV -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TypeDef.h
r995 r1007 249 249 // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX 250 250 #endif 251 252 #define MTK_I0099_VPS_EX2 1 ///< JCT3V-I0099, sub-PU size signaling and lim_qt_pred_flag in VPS extension 2 253 251 254 252 255 // Rate Control -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecCAVLC.cpp
r976 r1007 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 } … … 1767 1769 if ( i != 0 ) 1768 1770 { 1771 #if MTK_I0099_VPS_EX2 1772 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1773 #endif 1769 1774 if( !( pcVPS->getDepthId( i ) == 1 ) ) 1770 1775 { 1771 1776 #if H_3D_IV_MERGE 1777 #if !MTK_I0099_VPS_EX2 1772 1778 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1779 #endif 1773 1780 if( !pcVPS->getNumDirectRefLayers(i) ) 1774 1781 { … … 1802 1809 else 1803 1810 { 1811 #if !MTK_I0099_VPS_EX2 1804 1812 #if H_3D_IV_MERGE 1805 1813 if(i!=1) … … 1818 1826 } 1819 1827 #endif 1828 #endif 1820 1829 #if H_3D_IV_MERGE 1821 1830 READ_FLAG( uiCode, "mpi_flag[i]" ); pcVPS->setMPIFlag( i, uiCode == 1 ? true : false ); 1822 1831 #endif 1832 #if MTK_I0099_VPS_EX2 1833 READ_UVLC (uiCode, "log2_mpi_sub_PU_size_minus3[i]"); pcVPS->setSubPUMPILog2Size(i, uiCode+3); 1834 #endif 1823 1835 READ_FLAG( uiCode, "vps_depth_modes_flag[i]" ); pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false ); 1824 // READ_FLAG( uiCode, "lim_qt_pred_flag[i]"); pcVPS->setLimQtPreFlag ( i, uiCode == 1 ? true : false ); 1836 #if MTK_I0099_VPS_EX2 1837 READ_FLAG( uiCode, "lim_qt_pred_flag[i]"); pcVPS->setLimQtPredFlag ( i, uiCode == 1 ? true : false ); 1838 #endif 1825 1839 #if H_3D_INTER_SDC 1826 1840 READ_FLAG( uiCode, "depth_inter_SDC_flag" ); pcVPS->setInterSDCFlag( i, uiCode ? true : false ); … … 1857 1871 } 1858 1872 } 1873 #if !MTK_I0099_VPS_EX2 1859 1874 READ_UVLC (uiCode, "log2_sub_PU_MPI_size_minus3"); pcVPS->setSubPUMPILog2Size( uiCode + 3 ); 1875 #endif 1860 1876 READ_FLAG( uiCode, "iv_mv_scaling_flag"); pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false ); 1861 1877 } -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecSbac.cpp
r976 r1007 721 721 Bool bParseSplitFlag = true; 722 722 723 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 723 #if MTK_I0099_VPS_EX2 724 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 725 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 726 #else 727 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 728 #endif 724 729 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 725 730 Bool bDepthMapDetect = (pcTexture != NULL); … … 728 733 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); 729 734 735 #if MTK_I0099_VPS_EX2 736 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag) 737 #else 730 738 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC()) 739 #endif 731 740 { 732 741 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 770 779 #if H_3D_QTLPC 771 780 Bool bParsePartSize = true; 781 #if MTK_I0099_VPS_EX2 782 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 783 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 784 #else 772 785 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 786 #endif 773 787 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 774 788 Bool bDepthMapDetect = (pcTexture != NULL); … … 779 793 Bool depthDependent = false; 780 794 UInt uiTexturePart = uiMode; 795 #if MTK_I0099_VPS_EX2 796 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag ) 797 #else 781 798 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC()) 799 #endif 782 800 { 783 801 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCavlc.cpp
r976 r1007 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 } … … 1562 1564 if (i!= 0) 1563 1565 { 1566 #if MTK_I0099_VPS_EX2 1567 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1568 #endif 1564 1569 if ( !( pcVPS->getDepthId( i ) == 1 ) ) 1565 1570 { 1566 1571 #if H_3D_IV_MERGE 1572 #if !MTK_I0099_VPS_EX2 1567 1573 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1574 #endif 1568 1575 #if H_3D_SPIVMP 1569 1576 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]"); … … 1585 1592 else 1586 1593 { 1594 #if !MTK_I0099_VPS_EX2 1587 1595 if(i!=1) 1588 1596 { … … 1595 1603 } 1596 1604 #endif 1605 #endif 1597 1606 #if H_3D_IV_MERGE 1598 1607 WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 , "mpi_flag[i]" ); 1599 1608 #endif 1609 #if MTK_I0099_VPS_EX2 1610 WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]"); 1611 #endif 1600 1612 WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 , "vps_depth_modes_flag[i]" ); 1601 //WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); 1613 #if MTK_I0099_VPS_EX2 1614 WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); 1615 #endif 1602 1616 #if H_3D_INTER_SDC 1603 1617 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" ); … … 1625 1639 } 1626 1640 } 1641 #if !MTK_I0099_VPS_EX2 1627 1642 WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3"); 1643 #endif 1628 1644 #if H_3D_TMVP 1629 1645 WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 , "iv_mv_scaling_flag" ); -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCfg.h
r976 r1007 420 420 Bool m_useMPI; 421 421 #endif 422 #if !MTK_I0099_VPS_EX2 422 423 #if H_3D_QTLPC 423 424 Bool m_bUseQTL; 424 425 Bool m_bUsePC; 426 #endif 425 427 #endif 426 428 #endif … … 1008 1010 Void setUseDLT ( Bool b) { m_useDLT = b; } 1009 1011 #endif 1012 #if !MTK_I0099_VPS_EX2 1010 1013 #if H_3D_QTLPC 1011 1014 Void setUseQTL ( Bool b ) { m_bUseQTL = b; } … … 1014 1017 Bool getUsePC () { return m_bUsePC; } 1015 1018 #endif 1019 #endif 1016 1020 #if H_3D_IV_MERGE 1017 1021 Void setUseMPI ( Bool b ) { m_useMPI = b; } -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCu.cpp
r976 r1007 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(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg) 540 #else 533 541 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL()) 542 #endif 534 543 { 535 544 TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU … … 685 694 686 695 #if H_3D_QTLPC 696 #if MTK_I0099_VPS_EX2 697 if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg) 698 #else 687 699 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL()) 700 #endif 688 701 { 689 702 bTrySplitDQP = bTrySplit; -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncSbac.cpp
r976 r1007 664 664 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 665 665 #if H_3D_QTLPC 666 #if MTK_I0099_VPS_EX2 667 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 668 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 669 #else 666 670 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 671 #endif 667 672 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 668 673 Bool bDepthMapDetect = (pcTexture != NULL); … … 673 678 Bool depthDependent = false; 674 679 UInt uiTexturePart = eSize; 680 #if MTK_I0099_VPS_EX2 681 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag ) 682 #else 675 683 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() ) 684 #endif 676 685 { 677 686 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 1031 1040 Bool bCodeSplitFlag = true; 1032 1041 1042 #if MTK_I0099_VPS_EX2 1043 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 1044 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 1045 #else 1033 1046 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 1047 #endif 1034 1048 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 1035 1049 Bool bDepthMapDetect = (pcTexture != NULL); … … 1038 1052 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); 1039 1053 1054 #if MTK_I0099_VPS_EX2 1055 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag ) 1056 #else 1040 1057 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC()) 1058 #endif 1041 1059 { 1042 1060 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); -
branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncTop.cpp
r976 r1007 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.