Changeset 969 in 3DVCSoftware
- Timestamp:
- 5 Jul 2014, 09:34:43 (10 years ago)
- Location:
- branches/HTM-11.1-dev0/source
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r964 r969 523 523 #if H_3D_IC 524 524 ("IlluCompEnable", m_abUseIC, true, "Enable illumination compensation") 525 #if MTK_LOW_LATENCY_IC_ENCODING_H0086526 525 ("IlluCompLowLatencyEnc", m_bUseLowLatencyICEnc, false, "Enable low-latency illumination compensation encoding") 527 #endif528 526 #endif 529 527 #if H_3D_INTER_SDC … … 2515 2513 #if H_3D_IC 2516 2514 printf( "IlluCompEnable:%d ", m_abUseIC); 2517 #if MTK_LOW_LATENCY_IC_ENCODING_H00862518 2515 printf ("IlluCompLowLatencyEnc:%d ", m_bUseLowLatencyICEnc); 2519 #endif2520 2516 #endif 2521 2517 #if H_3D_NBDV_REF -
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncCfg.h
r964 r969 140 140 #if H_3D_IC 141 141 Bool m_abUseIC; 142 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 143 Bool m_bUseLowLatencyICEnc; 144 #endif 142 Bool m_bUseLowLatencyICEnc; 145 143 #endif 146 144 #if H_3D_NBDV_REF -
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r964 r969 193 193 m_cTEncTop.setDWeight ( isDepth ? m_iDWeight : 0 ); 194 194 #endif // H_3D_VSO 195 #if H_3D_ARP && !QC_IV_PRED_CONSTRAINT_H0137196 //====== Advanced Inter-view Residual Prediction =========197 m_cTEncTop.setUseAdvRP ( ( isDepth || 0==layerIdInVps ) ? 0 : m_uiUseAdvResPred );198 m_cTEncTop.setARPStepNum ( ( isDepth || 0==layerIdInVps ) ? 1 : H_3D_ARP_WFNR );199 #endif200 195 #if H_3D_SPIVMP 201 196 m_cTEncTop.setSubPULog2Size (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size ); … … 204 199 #if H_3D_IC 205 200 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC ); 206 #if MTK_LOW_LATENCY_IC_ENCODING_H0086207 201 m_cTEncTop.setUseICLowLatencyEnc ( m_bUseLowLatencyICEnc ); 208 #endif209 202 #endif 210 203 //========== Depth intra modes ========== … … 1869 1862 1870 1863 #if H_3D_ARP 1871 #if QC_IV_PRED_CONSTRAINT_H01371872 1864 vps.setUseAdvRP ( layer, ( isDepth || isLayerZero || !vps.getNumDirectRefLayers(layer) ) ? 0 : m_uiUseAdvResPred ); 1873 1865 vps.setARPStepNum ( layer, ( isDepth || isLayerZero || !vps.getNumDirectRefLayers(layer) ) ? 1 : H_3D_ARP_WFNR ); 1874 #else1875 vps.setUseAdvRP ( layer, ( isDepth || isLayerZero ) ? 0 : m_uiUseAdvResPred );1876 vps.setARPStepNum ( layer, ( isDepth || isLayerZero ) ? 1 : H_3D_ARP_WFNR );1877 #endif1878 1866 #endif 1879 1867 #if H_3D_SPIVMP … … 1893 1881 1894 1882 #if H_3D_IV_MERGE 1895 #if QC_IV_PRED_CONSTRAINT_H01371896 1883 if( !vps.getNumDirectRefLayers(layer) ) 1897 1884 { … … 1900 1887 else 1901 1888 { 1902 #endif 1903 if( isDepth ) 1904 { 1905 vps.setIvMvPredFlag ( layer, (layer != 1) && m_ivMvPredFlag[1] ); 1906 } 1907 else 1908 { 1909 vps.setIvMvPredFlag ( layer, !isLayerZero && m_ivMvPredFlag[0] ); 1910 } 1911 #if QC_IV_PRED_CONSTRAINT_H0137 1912 } 1913 #endif 1889 if( isDepth ) 1890 { 1891 vps.setIvMvPredFlag ( layer, (layer != 1) && m_ivMvPredFlag[1] ); 1892 } 1893 else 1894 { 1895 vps.setIvMvPredFlag ( layer, !isLayerZero && m_ivMvPredFlag[0] ); 1896 } 1897 } 1914 1898 #endif 1915 1899 #if H_3D_NBDV_REF … … 1917 1901 #endif 1918 1902 #if H_3D_VSP 1919 #if QC_IV_PRED_CONSTRAINT_H01371920 1903 vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && vps.getNumDirectRefLayers(layer) && m_viewSynthesisPredFlag ); 1921 #else1922 vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && m_viewSynthesisPredFlag );1923 #endif1924 1904 #endif 1925 1905 #if H_3D_DBBP -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r968 r969 4377 4377 if ( ivMvPredFlag && cDisInfo.m_aVIdxCan!=-1) 4378 4378 { 4379 #if SEC_ADAPT_DISABLE_IVMP4380 4379 getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP, bICFlag ); 4381 #else4382 getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP );4383 #endif4384 4380 } 4385 4381 … … 6709 6705 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 6710 6706 #endif 6711 #if SEC_ADAPT_DISABLE_IVMP6712 6707 , Bool bICFlag 6713 #endif6714 6708 ) 6715 6709 { … … 6753 6747 #endif 6754 6748 6755 #if SEC_ADAPT_DISABLE_IVMP6756 6749 if(!bICFlag) 6757 6750 { 6758 #endif6759 6751 6760 6752 #if H_3D_SPIVMP 6761 //////////////////////////////// 6762 //////////sub-PU IvMC/////////// 6763 //////////////////////////////// 6764 if(!m_pcSlice->getIsDepth()) 6765 { 6766 if (!getDBBPFlag(0)) 6767 { 6768 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 6769 getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 6770 6771 for (Int i=0; i<iNumSP; i++) 6772 { 6773 puhInterDirSP[i] = 0; 6774 pcMvFieldSP[2*i].getMv().set(0, 0); 6775 pcMvFieldSP[2*i+1].getMv().set(0,0); 6776 pcMvFieldSP[2*i].setRefIdx(-1); 6777 pcMvFieldSP[2*i+1].setRefIdx(-1); 6778 } 6753 //////////////////////////////// 6754 //////////sub-PU IvMC/////////// 6755 //////////////////////////////// 6756 if(!m_pcSlice->getIsDepth()) 6757 { 6758 if (!getDBBPFlag(0)) 6759 { 6760 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 6761 getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 6762 6763 for (Int i=0; i<iNumSP; i++) 6764 { 6765 puhInterDirSP[i] = 0; 6766 pcMvFieldSP[2*i].getMv().set(0, 0); 6767 pcMvFieldSP[2*i+1].getMv().set(0,0); 6768 pcMvFieldSP[2*i].setRefIdx(-1); 6769 pcMvFieldSP[2*i+1].setRefIdx(-1); 6770 } 6771 6772 Int iBaseCUAddr; 6773 Int iBaseAbsPartIdx; 6774 TComDataCU* pcBaseCU; 6775 Int iPartition = 0; 6776 6777 Int iDelX = iSPWidth/2; 6778 Int iDelY = iSPHeight/2; 6779 6780 Int iCenterPosX = iCurrPosX + ( ( iWidth / iSPWidth ) >> 1 ) * iSPWidth + ( iSPWidth >> 1 ); 6781 Int iCenterPosY = iCurrPosY + ( ( iHeight / iSPHeight ) >> 1 ) * iSPHeight + (iSPHeight >> 1); 6782 Int iRefCenterCUAddr, iRefCenterAbsPartIdx; 6783 6784 if(iWidth == iSPWidth && iHeight == iSPHeight) 6785 { 6786 iCenterPosX = iCurrPosX + (iWidth >> 1); 6787 iCenterPosY = iCurrPosY + (iHeight >> 1); 6788 } 6789 6790 Int iRefCenterPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 6791 Int iRefCenterPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) ); 6792 6793 pcBaseRec->getCUAddrAndPartIdx( iRefCenterPosX , iRefCenterPosY , iRefCenterCUAddr, iRefCenterAbsPartIdx ); 6794 TComDataCU* pcDefaultCU = pcBasePic->getCU( iRefCenterCUAddr ); 6795 if(!( pcDefaultCU->getPredictionMode( iRefCenterAbsPartIdx ) == MODE_INTRA )) 6796 { 6797 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 6798 { 6799 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 6800 Bool stopLoop = false; 6801 for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop) 6802 { 6803 RefPicList eDefaultRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 6804 TComMvField cDefaultMvField; 6805 pcDefaultCU->getMvField( pcDefaultCU, iRefCenterAbsPartIdx, eDefaultRefPicList, cDefaultMvField ); 6806 Int iDefaultRefIdx = cDefaultMvField.getRefIdx(); 6807 if (iDefaultRefIdx >= 0) 6808 { 6809 Int iDefaultRefPOC = pcDefaultCU->getSlice()->getRefPOC(eDefaultRefPicList, iDefaultRefIdx); 6810 if (iDefaultRefPOC != pcSlice->getPOC()) 6811 { 6812 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++) 6813 { 6814 if (iDefaultRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 6815 { 6816 abPdmAvailable[ uiCurrRefListId ] = true; 6817 TComMv cMv(cDefaultMvField.getHor(), cDefaultMvField.getVer()); 6818 #if H_3D_NBDV 6819 #if H_3D_IV_MERGE 6820 if( !bIsDepth ) 6821 { 6822 #endif 6823 cMv.setIDVFlag (true); 6824 cMv.setIDVHor (cDv.getHor()); 6825 cMv.setIDVVer (cDv.getVer()); 6826 cMv.setIDVVId (iViewIndex); 6827 #if H_3D_IV_MERGE 6828 } 6829 #endif 6830 #endif 6831 #if !(NTT_BUG_FIX_TK54) 6832 clipMv( cMv ); 6833 #endif 6834 paiPdmRefIdx [ uiCurrRefListId ] = iPdmRefIdx; 6835 pacPdmMv [ uiCurrRefListId ] = cMv; 6836 stopLoop = true; 6837 break; 6838 } 6839 } 6840 } 6841 } 6842 } 6843 } 6844 } 6845 availableMcDc[0] = ( abPdmAvailable[0]? 1 : 0) + (abPdmAvailable[1]? 2 : 0); 6846 6847 if(availableMcDc[0]) 6848 { 6849 6850 Int iBasePosX, iBasePosY; 6851 for (Int i=iCurrPosY; i < iCurrPosY + iHeight; i += iSPHeight) 6852 { 6853 for (Int j = iCurrPosX; j < iCurrPosX + iWidth; j += iSPWidth) 6854 { 6855 iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, j + iDelX + ( (cDv.getHor() + 2 ) >> 2 )); 6856 iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, i + iDelY + ( (cDv.getVer() + 2 ) >> 2 )); 6857 6858 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY, iBaseCUAddr, iBaseAbsPartIdx ); 6859 pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 6860 if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA )) 6861 { 6862 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 6863 { 6864 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 6865 Bool bLoop_stop = false; 6866 for(Int iLoop = 0; iLoop < 2 && !bLoop_stop; ++iLoop) 6867 { 6868 RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 6869 TComMvField cBaseMvField; 6870 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField ); 6871 Int iBaseRefIdx = cBaseMvField.getRefIdx(); 6872 if (iBaseRefIdx >= 0) 6873 { 6874 Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx); 6875 if (iBaseRefPOC != pcSlice->getPOC()) 6876 { 6877 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++) 6878 { 6879 if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 6880 { 6881 abPdmAvailable[ uiCurrRefListId ] = true; 6882 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 6883 6884 if( !bIsDepth ) 6885 { 6886 cMv.setIDVFlag (true); 6887 cMv.setIDVHor (cDv.getHor()); 6888 cMv.setIDVVer (cDv.getVer()); 6889 cMv.setIDVVId (iViewIndex); 6890 } 6891 6892 #if !(NTT_BUG_FIX_TK54) 6893 clipMv( cMv ); 6894 #endif 6895 bLoop_stop = true; 6896 6897 pcMvFieldSP[2*iPartition + uiCurrRefListId].setMvField(cMv, iPdmRefIdx); 6898 break; 6899 } 6900 } 6901 } 6902 } 6903 } 6904 } 6905 } 6906 6907 puhInterDirSP[iPartition] = (pcMvFieldSP[2*iPartition].getRefIdx()!=-1 ? 1: 0) + (pcMvFieldSP[2*iPartition+1].getRefIdx()!=-1 ? 2: 0); 6908 if (puhInterDirSP[iPartition] == 0) 6909 { 6910 puhInterDirSP[iPartition] = availableMcDc[0]; 6911 pcMvFieldSP[2*iPartition].setMvField(pacPdmMv[0], paiPdmRefIdx[0]); 6912 pcMvFieldSP[2*iPartition + 1].setMvField(pacPdmMv[1], paiPdmRefIdx[1]); 6913 6914 } 6915 if (iSPHeight + iSPWidth == 12) 6916 { 6917 if (puhInterDirSP[iPartition] == 3) 6918 { 6919 puhInterDirSP[iPartition] = 1; 6920 pcMvFieldSP[2*iPartition + 1].setMvField(TComMv(0,0), -1); 6921 } 6922 } 6923 iPartition ++; 6924 } 6925 } 6926 } 6927 } 6928 6929 iCurrPosX += ( iWidth >> 1 ); 6930 iCurrPosY += ( iHeight >> 1 ); 6931 } 6932 #endif 6933 6934 //////////////////////////////// 6935 /////// IvMC + IvMCShift /////// 6936 //////////////////////////////// 6937 6938 #if H_3D_SPIVMP 6939 if(m_pcSlice->getIsDepth()) 6940 { 6941 iCurrPosX += ( iWidth >> 1 ); 6942 iCurrPosY += ( iHeight >> 1 ); 6943 } 6944 for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 6945 #else 6946 for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++) 6947 #endif 6948 { 6949 // iLoopCan == 0 --> IvMC 6950 // iLoopCan == 1 --> IvMCShift 6779 6951 6780 6952 Int iBaseCUAddr; 6781 6953 Int iBaseAbsPartIdx; 6782 TComDataCU* pcBaseCU; 6783 Int iPartition = 0; 6784 6785 Int iDelX = iSPWidth/2; 6786 Int iDelY = iSPHeight/2; 6787 6788 Int iCenterPosX = iCurrPosX + ( ( iWidth / iSPWidth ) >> 1 ) * iSPWidth + ( iSPWidth >> 1 ); 6789 Int iCenterPosY = iCurrPosY + ( ( iHeight / iSPHeight ) >> 1 ) * iSPHeight + (iSPHeight >> 1); 6790 Int iRefCenterCUAddr, iRefCenterAbsPartIdx; 6791 6792 if(iWidth == iSPWidth && iHeight == iSPHeight) 6793 { 6794 iCenterPosX = iCurrPosX + (iWidth >> 1); 6795 iCenterPosY = iCurrPosY + (iHeight >> 1); 6796 } 6797 6798 Int iRefCenterPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 6799 Int iRefCenterPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) ); 6800 6801 pcBaseRec->getCUAddrAndPartIdx( iRefCenterPosX , iRefCenterPosY , iRefCenterCUAddr, iRefCenterAbsPartIdx ); 6802 TComDataCU* pcDefaultCU = pcBasePic->getCU( iRefCenterCUAddr ); 6803 if(!( pcDefaultCU->getPredictionMode( iRefCenterAbsPartIdx ) == MODE_INTRA )) 6804 { 6954 6955 Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 ); 6956 Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 ); 6957 6958 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) ); 6959 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) ); 6960 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx ); 6961 6962 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 6963 if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA )) 6964 { 6965 // Loop reference picture list of current slice (X in spec). 6805 6966 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 6806 6967 { 6807 6968 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 6969 6808 6970 Bool stopLoop = false; 6971 // Loop reference picture list of candidate slice (Y in spec) 6809 6972 for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop) 6810 6973 { 6811 RefPicList e DefaultRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId );6812 TComMvField c DefaultMvField;6813 pc DefaultCU->getMvField( pcDefaultCU, iRefCenterAbsPartIdx, eDefaultRefPicList, cDefaultMvField );6814 Int i DefaultRefIdx = cDefaultMvField.getRefIdx();6815 if (i DefaultRefIdx >= 0)6974 RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 6975 TComMvField cBaseMvField; 6976 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField ); 6977 Int iBaseRefIdx = cBaseMvField.getRefIdx(); 6978 if (iBaseRefIdx >= 0) 6816 6979 { 6817 Int i DefaultRefPOC = pcDefaultCU->getSlice()->getRefPOC(eDefaultRefPicList, iDefaultRefIdx);6818 if (i DefaultRefPOC != pcSlice->getPOC())6980 Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx); 6981 if (iBaseRefPOC != pcSlice->getPOC()) 6819 6982 { 6820 6983 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++) 6821 6984 { 6822 if (i DefaultRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))6985 if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 6823 6986 { 6824 abPdmAvailable[ uiCurrRefListId] = true;6825 TComMv cMv(c DefaultMvField.getHor(), cDefaultMvField.getVer());6987 abPdmAvailable[ (uiCurrRefListId + (iLoopCan<<2)) ] = true; 6988 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 6826 6989 #if H_3D_NBDV 6827 6990 #if H_3D_IV_MERGE … … 6840 7003 clipMv( cMv ); 6841 7004 #endif 6842 paiPdmRefIdx [ uiCurrRefListId] = iPdmRefIdx;6843 pacPdmMv [ uiCurrRefListId] = cMv;7005 paiPdmRefIdx [ (uiCurrRefListId + (iLoopCan<<2)) ] = iPdmRefIdx; 7006 pacPdmMv [ (uiCurrRefListId + (iLoopCan<<2)) ] = cMv; 6844 7007 stopLoop = true; 6845 7008 break; … … 6851 7014 } 6852 7015 } 6853 availableMcDc[0] = ( abPdmAvailable[0]? 1 : 0) + (abPdmAvailable[1]? 2 : 0); 6854 6855 if(availableMcDc[0]) 6856 { 6857 6858 Int iBasePosX, iBasePosY; 6859 for (Int i=iCurrPosY; i < iCurrPosY + iHeight; i += iSPHeight) 6860 { 6861 for (Int j = iCurrPosX; j < iCurrPosX + iWidth; j += iSPWidth) 6862 { 6863 iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, j + iDelX + ( (cDv.getHor() + 2 ) >> 2 )); 6864 iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, i + iDelY + ( (cDv.getVer() + 2 ) >> 2 )); 6865 6866 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY, iBaseCUAddr, iBaseAbsPartIdx ); 6867 pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 6868 if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA )) 6869 { 6870 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 6871 { 6872 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 6873 Bool bLoop_stop = false; 6874 for(Int iLoop = 0; iLoop < 2 && !bLoop_stop; ++iLoop) 6875 { 6876 RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 6877 TComMvField cBaseMvField; 6878 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField ); 6879 Int iBaseRefIdx = cBaseMvField.getRefIdx(); 6880 if (iBaseRefIdx >= 0) 6881 { 6882 Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx); 6883 if (iBaseRefPOC != pcSlice->getPOC()) 6884 { 6885 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++) 6886 { 6887 if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 6888 { 6889 abPdmAvailable[ uiCurrRefListId ] = true; 6890 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 6891 6892 if( !bIsDepth ) 6893 { 6894 cMv.setIDVFlag (true); 6895 cMv.setIDVHor (cDv.getHor()); 6896 cMv.setIDVVer (cDv.getVer()); 6897 cMv.setIDVVId (iViewIndex); 6898 } 6899 6900 #if !(NTT_BUG_FIX_TK54) 6901 clipMv( cMv ); 6902 #endif 6903 bLoop_stop = true; 6904 6905 pcMvFieldSP[2*iPartition + uiCurrRefListId].setMvField(cMv, iPdmRefIdx); 6906 break; 6907 } 6908 } 6909 } 6910 } 6911 } 6912 } 6913 } 6914 6915 puhInterDirSP[iPartition] = (pcMvFieldSP[2*iPartition].getRefIdx()!=-1 ? 1: 0) + (pcMvFieldSP[2*iPartition+1].getRefIdx()!=-1 ? 2: 0); 6916 if (puhInterDirSP[iPartition] == 0) 6917 { 6918 puhInterDirSP[iPartition] = availableMcDc[0]; 6919 pcMvFieldSP[2*iPartition].setMvField(pacPdmMv[0], paiPdmRefIdx[0]); 6920 pcMvFieldSP[2*iPartition + 1].setMvField(pacPdmMv[1], paiPdmRefIdx[1]); 6921 6922 } 6923 if (iSPHeight + iSPWidth == 12) 6924 { 6925 if (puhInterDirSP[iPartition] == 3) 6926 { 6927 puhInterDirSP[iPartition] = 1; 6928 pcMvFieldSP[2*iPartition + 1].setMvField(TComMv(0,0), -1); 6929 } 6930 } 6931 iPartition ++; 6932 } 6933 } 6934 } 6935 } 6936 6937 iCurrPosX += ( iWidth >> 1 ); 6938 iCurrPosY += ( iHeight >> 1 ); 6939 } 6940 #endif 6941 6942 //////////////////////////////// 6943 /////// IvMC + IvMCShift /////// 6944 //////////////////////////////// 6945 6946 #if H_3D_SPIVMP 6947 if(m_pcSlice->getIsDepth()) 6948 { 6949 iCurrPosX += ( iWidth >> 1 ); 6950 iCurrPosY += ( iHeight >> 1 ); 6951 } 6952 for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 6953 #else 6954 for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++) 6955 #endif 6956 { 6957 // iLoopCan == 0 --> IvMC 6958 // iLoopCan == 1 --> IvMCShift 6959 6960 Int iBaseCUAddr; 6961 Int iBaseAbsPartIdx; 6962 6963 Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 ); 6964 Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 ); 6965 6966 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) ); 6967 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) ); 6968 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx ); 6969 6970 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 6971 if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA )) 6972 { 6973 // Loop reference picture list of current slice (X in spec). 6974 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 6975 { 6976 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 6977 6978 Bool stopLoop = false; 6979 // Loop reference picture list of candidate slice (Y in spec) 6980 for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop) 6981 { 6982 RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 6983 TComMvField cBaseMvField; 6984 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField ); 6985 Int iBaseRefIdx = cBaseMvField.getRefIdx(); 6986 if (iBaseRefIdx >= 0) 6987 { 6988 Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx); 6989 if (iBaseRefPOC != pcSlice->getPOC()) 6990 { 6991 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++) 6992 { 6993 if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 6994 { 6995 abPdmAvailable[ (uiCurrRefListId + (iLoopCan<<2)) ] = true; 6996 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 6997 #if H_3D_NBDV 6998 #if H_3D_IV_MERGE 6999 if( !bIsDepth ) 7000 { 7001 #endif 7002 cMv.setIDVFlag (true); 7003 cMv.setIDVHor (cDv.getHor()); 7004 cMv.setIDVVer (cDv.getVer()); 7005 cMv.setIDVVId (iViewIndex); 7006 #if H_3D_IV_MERGE 7007 } 7008 #endif 7009 #endif 7010 #if !(NTT_BUG_FIX_TK54) 7011 clipMv( cMv ); 7012 #endif 7013 paiPdmRefIdx [ (uiCurrRefListId + (iLoopCan<<2)) ] = iPdmRefIdx; 7014 pacPdmMv [ (uiCurrRefListId + (iLoopCan<<2)) ] = cMv; 7015 stopLoop = true; 7016 break; 7017 } 7018 } 7019 } 7020 } 7021 } 7022 } 7023 } 7024 } 7016 } 7025 7017 #if H_3D_SPIVMP 7026 7018 #if H_3D_FIX_DBBP_IVMP 7027 for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)7019 for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 7028 7020 #else 7029 for(Int iLoopCan = ( 1 - m_pcSlice->getIsDepth() ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)7021 for(Int iLoopCan = ( 1 - m_pcSlice->getIsDepth() ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 7030 7022 #endif 7031 7023 #else 7032 for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++) 7033 #endif 7034 { 7035 availableMcDc[(iLoopCan << 1)] = ( abPdmAvailable[(iLoopCan<<2)] ? 1 : 0 ) + ( abPdmAvailable[1 + (iLoopCan<<2)] ? 2 : 0); 7036 } 7037 7038 #if SEC_ADAPT_DISABLE_IVMP 7039 } 7040 #endif 7024 for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++) 7025 #endif 7026 { 7027 availableMcDc[(iLoopCan << 1)] = ( abPdmAvailable[(iLoopCan<<2)] ? 1 : 0 ) + ( abPdmAvailable[1 + (iLoopCan<<2)] ? 2 : 0); 7028 } 7029 7030 } 7041 7031 7042 7032 //////////////////////////////// -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComDataCU.h
r968 r969 508 508 #if H_3D_SPIVMP 509 509 , TComMvField* pcMFieldSP, UChar* puhInterDirSP 510 #endif 511 #if SEC_ADAPT_DISABLE_IVMP 510 #endif 512 511 , Bool bICFlag 513 #endif514 512 ); 515 513 #endif -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComRom.cpp
r964 r969 360 360 Char g_aucConvertToBit [ MAX_CU_SIZE+1 ]; 361 361 362 #if MTK_LOW_LATENCY_IC_ENCODING_H0086362 #if H_3D_IC 363 363 UInt g_aICEnableCANDIDATE[10] = { 0, }; 364 364 UInt g_aICEnableNUM[ 10 ] = { 0, }; -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComRom.h
r964 r969 189 189 extern Char g_aucConvertToBit [ MAX_CU_SIZE+1 ]; // from width to log2(width)-2 190 190 191 #if MTK_LOW_LATENCY_IC_ENCODING_H0086191 #if H_3D_IC 192 192 extern UInt g_aICEnableCANDIDATE[10]; 193 193 extern UInt g_aICEnableNUM[ 10 ]; //10 layers 194 extern Int g_lastlayer;194 extern Int g_lastlayer; 195 195 #endif 196 196 -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComSlice.cpp
r964 r969 3541 3541 #endif 3542 3542 #if H_3D_IC 3543 #if MTK_LOW_LATENCY_IC_ENCODING_H00863544 3543 Void TComSlice::xSetApplyIC(Bool bUseLowLatencyICEnc) 3545 #else 3546 Void TComSlice::xSetApplyIC() 3547 #endif 3548 { 3549 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 3544 { 3550 3545 if(bUseLowLatencyICEnc) 3551 3546 { … … 3592 3587 Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]); 3593 3588 3594 if( ratio > MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086)3589 if( ratio > IC_LOW_LATENCY_ENCODING_THRESHOLD) 3595 3590 { 3596 3591 m_bApplyIC=true; … … 3608 3603 else 3609 3604 { 3610 #endif3611 3605 Int iMaxPelValue = ( 1 << g_bitDepthY ); 3612 3606 Int *aiRefOrgHist; … … 3682 3676 aiCurrHist = NULL; 3683 3677 aiRefOrgHist = NULL; 3684 #if MTK_LOW_LATENCY_IC_ENCODING_H00863685 3678 }//if(bUseLowLatencyICEnc) 3686 #endif3687 3679 } 3688 3680 #endif -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComSlice.h
r964 r969 2466 2466 Bool getApplyIC() { return m_bApplyIC; } 2467 2467 Void xSetApplyIC(); 2468 #if MTK_LOW_LATENCY_IC_ENCODING_H00862469 2468 Void xSetApplyIC(Bool bUseLowLatencyICEnc); 2470 #endif2471 2469 Void setIcSkipParseFlag( Bool b ) { m_icSkipParseFlag = b; } 2472 2470 Bool getIcSkipParseFlag() { return m_icSkipParseFlag; } -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TypeDef.h
r968 r969 289 289 #define IC_CONST_SHIFT 5 290 290 #define IC_SHIFT_DIFF 12 291 #define IC_LOW_LATENCY_ENCODING_THRESHOLD 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086 291 292 #endif 292 293 … … 319 320 #define MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085 1 // Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085 320 321 #define MTK_LOW_LATENCY_IC_ENCODING_H0086 1 // Low-latency IC encoding in JCT3V-H0086 321 #if MTK_LOW_LATENCY_IC_ENCODING_H0086322 #define MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086323 #endif324 #define SEC_ADAPT_DISABLE_IVMP 1 // Disalbing IVMP merge candidates when IC is enabled, JCT3V-H0070325 326 #define MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113 1 // Use only one context for CABAC of delta_dc_flag as in JCTVC-H0084, JCTVC-H0100 and JCTVC-H0113327 #define MTK_SDC_FLAG_FIX_H0095 1 // Remove conditional check of PCM flag based on SDC flag, JCTVC-H0095328 #define MTK_DMM_SIMP_CODE_H0092 1 // Remove CABAC context for DMM1 mode coding329 330 #define QC_IV_PRED_CONSTRAINT_H0137 1 // Constraint on inter-view (motion) prediction tools331 #define ETRIKHU_CLEANUP_H0083 1 // cleaned-up source code for constructing merging candidate list332 322 #endif 333 323 -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r967 r969 1936 1936 #if H_3D_IV_MERGE 1937 1937 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1938 #if QC_IV_PRED_CONSTRAINT_H01371939 1938 if( !pcVPS->getNumDirectRefLayers(i) ) 1940 1939 { 1941 1940 assert( !uiCode ); 1942 1941 } 1943 #endif1944 1942 #if H_3D_SPIVMP 1945 1943 READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]"); pcVPS->setSubPULog2Size(i, uiCode+3); … … 1948 1946 #if H_3D_ARP 1949 1947 READ_FLAG( uiCode, "iv_res_pred_flag[i]" ); pcVPS->setUseAdvRP ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 ); 1950 #if QC_IV_PRED_CONSTRAINT_H01371951 1948 if( !pcVPS->getNumDirectRefLayers(i) ) 1952 1949 { 1953 1950 assert( !uiCode ); 1954 1951 } 1955 #endif1956 1952 #endif 1957 1953 #if H_3D_NBDV_REF … … 1960 1956 #if H_3D_VSP 1961 1957 READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false ); 1962 #if QC_IV_PRED_CONSTRAINT_H01371963 1958 if( !pcVPS->getNumDirectRefLayers(i) ) 1964 1959 { 1965 1960 assert( !uiCode ); 1966 1961 } 1967 #endif1968 1962 #endif 1969 1963 #if H_3D_DBBP … … 1977 1971 { 1978 1972 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1979 #if QC_IV_PRED_CONSTRAINT_H01371980 1973 if( !pcVPS->getNumDirectRefLayers(i) ) 1981 1974 { 1982 1975 assert( !uiCode ); 1983 1976 } 1984 #endif1985 1977 } 1986 1978 #endif -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r968 r969 201 201 return; 202 202 } 203 #if !MTK_SDC_FLAG_FIX_H0095204 #if H_3D_DIM_SDC205 if( pcCU->getSDCFlag(uiAbsPartIdx) )206 {207 return;208 }209 #endif210 #endif211 203 212 204 m_pcEntropyDecoderIf->parseIPCMInfo( pcCU, uiAbsPartIdx, uiDepth ); -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r968 r969 87 87 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 88 88 , m_cAngleFlagSCModel ( 1, 1, NUM_ANGLE_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 89 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H009290 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)91 #endif92 89 #if H_3D_DIM_SDC 93 90 , m_cSDCResidualFlagSCModel ( 1, 1, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 171 168 m_cDdcDataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DDC_DATA ); 172 169 m_cAngleFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_ANGLE_FLAG ); 173 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092174 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA );175 #endif176 170 #if H_3D_DIM_SDC 177 171 m_cSDCResidualFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); … … 241 235 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 242 236 m_cAngleFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG ); 243 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092244 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );245 #endif246 237 #if H_3D_DIM_SDC 247 238 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); … … 422 413 for( Int i = 0; i < iNumBit; i++ ) 423 414 { 424 #if MTK_DMM_SIMP_CODE_H0092 425 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 426 #else 427 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm1DataSCModel.get(0, 0, 0) ); 428 #endif 415 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 429 416 uiIdx += uiSymbol << i; 430 417 } … … 2073 2060 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 2074 2061 uiNumSegments = isDimMode( dir ) ? 2 : 1; 2075 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H01132076 2062 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2077 #else2078 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) );2079 #endif2080 2063 if( pcCU->getSDCFlag( absPartIdx ) ) 2081 2064 { -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecSbac.h
r964 r969 218 218 ContextModel3DBuffer m_cDdcDataSCModel; 219 219 ContextModel3DBuffer m_cAngleFlagSCModel; 220 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092221 ContextModel3DBuffer m_cDmm1DataSCModel;222 #endif223 220 #if H_3D_DIM_SDC 224 221 ContextModel3DBuffer m_cSDCResidualFlagSCModel; -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncCfg.h
r964 r969 403 403 #if H_3D_IC 404 404 Bool m_bUseIC; 405 #if MTK_LOW_LATENCY_IC_ENCODING_H0086406 405 Bool m_bUseICLowLatencyEnc; 407 #endif408 406 #endif 409 407 #if H_3D_INTER_SDC … … 516 514 Void setUseIC ( Bool bVal ) { m_bUseIC = bVal; } 517 515 Bool getUseIC () { return m_bUseIC; } 518 #if MTK_LOW_LATENCY_IC_ENCODING_H0086519 516 Void setUseICLowLatencyEnc ( Bool bVal ) { m_bUseICLowLatencyEnc = bVal; } 520 517 Bool getUseICLowLatencyEnc () { return m_bUseICLowLatencyEnc; } 521 #endif522 518 #endif 523 519 #if H_3D_INTER_SDC -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r967 r969 157 157 158 158 if( !pcCU->getSlice()->getApplyIC() ) 159 { 159 160 return; 160 161 if( bRD ) 162 {163 uiAbsPartIdx = 0;164 }165 #if MTK_LOW_LATENCY_IC_ENCODING_H0086 161 } 162 163 if( bRD ) 164 { 165 uiAbsPartIdx = 0; 166 } 166 167 else 167 168 { … … 172 173 } 173 174 } 174 #endif175 175 if( pcCU->isICFlagRequired( uiAbsPartIdx ) ) 176 { 176 177 m_pcEntropyCoderIf->codeICFlag( pcCU, uiAbsPartIdx ); 178 } 177 179 } 178 180 #endif … … 282 284 return; 283 285 } 284 #if !MTK_SDC_FLAG_FIX_H0095285 #if H_3D_DIM_SDC286 if( pcCU->getSDCFlag(uiAbsPartIdx) )287 {288 return;289 }290 #endif291 #endif292 286 293 287 if( bRD ) -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r967 r969 93 93 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 94 94 , m_cAngleFlagSCModel ( 1, 1, NUM_ANGLE_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 95 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H009296 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)97 #endif98 95 #if H_3D_DIM_SDC 99 96 , m_cSDCResidualFlagSCModel ( 1, 1, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 169 166 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 170 167 m_cAngleFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG ); 171 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092172 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );173 #endif174 168 #if H_3D_DIM_SDC 175 169 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); … … 255 249 curCost += m_cDdcDataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DDC_DATA ); 256 250 curCost += m_cAngleFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_ANGLE_FLAG ); 257 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092258 curCost += m_cDmm1DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );259 #endif260 251 } 261 252 #endif … … 319 310 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 320 311 m_cAngleFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG ); 321 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092322 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );323 #endif324 312 #if H_3D_DIM_SDC 325 313 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); … … 520 508 for ( Int i = 0; i < iNumBit; i++ ) 521 509 { 522 #if MTK_DMM_SIMP_CODE_H0092 523 m_pcBinIf->encodeBinEP( ( uiTabIdx >> i ) & 1 ); 524 #else 525 m_pcBinIf->encodeBin( ( uiTabIdx >> i ) & 1, m_cDmm1DataSCModel.get(0, 0, 0) ); 526 #endif 510 m_pcBinIf->encodeBinEP( ( uiTabIdx >> i ) & 1 ); 527 511 } 528 512 } … … 2317 2301 dimDeltaDC = isDimDeltaDC( dir ); 2318 2302 } 2319 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H01132320 2303 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2321 #else2322 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) );2323 #endif2324 2304 } 2325 2305 else //all-zero inter SDC is not allowed -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncSbac.h
r950 r969 258 258 ContextModel3DBuffer m_cDdcDataSCModel; 259 259 ContextModel3DBuffer m_cAngleFlagSCModel; 260 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092261 ContextModel3DBuffer m_cDmm1DataSCModel;262 #endif263 260 #if H_3D_DIM_SDC 264 261 ContextModel3DBuffer m_cSDCResidualFlagSCModel; -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
r964 r969 930 930 ) 931 931 { 932 #if MTK_LOW_LATENCY_IC_ENCODING_H0086933 932 pcSlice ->xSetApplyIC(pcEncTop->getUseICLowLatencyEnc()); 934 #else935 pcSlice ->xSetApplyIC();936 #endif937 933 if ( pcSlice->getApplyIC() ) 938 934 {
Note: See TracChangeset for help on using the changeset viewer.