Changeset 1321 in 3DVCSoftware for trunk/source/Lib/TLibEncoder
- Timestamp:
- 7 Sep 2015, 18:16:33 (9 years ago)
- Location:
- trunk/source/Lib/TLibEncoder
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp
r1313 r1321 156 156 #if FAST_BIT_EST 157 157 m_fracBits = pcTEncBinCABAC->m_fracBits; 158 #if NH_MV 158 159 D_PRINT_INDENT(g_traceEncFracBits, "CopyState " + n2s(m_fracBits) ); 160 #endif 159 161 #endif 160 162 } … … 171 173 } 172 174 #if FAST_BIT_EST 175 #if NH_MV 173 176 D_PRINT_INDENT( g_traceEncFracBits, "Reset Bits Before" + n2s(m_fracBits) ); 177 #endif 174 178 m_fracBits &= 32767; 179 #if NH_MV 175 180 D_PRINT_INDENT( g_traceEncFracBits, "Reset Bits " + n2s(m_fracBits) ); 181 #endif 176 182 #endif 177 183 } -
trunk/source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp
r1313 r1321 59 59 m_pcTComBitIf->write(0, UInt(m_fracBits >> 15) ); 60 60 m_fracBits &= 32767; 61 #if NH_MV 61 62 D_PRINT_INDENT( g_traceEncFracBits, "Finish " + n2s(m_fracBits) ); 63 #endif 62 64 } 63 65 … … 81 83 m_uiBinsCoded += m_binCountIncrement; 82 84 m_fracBits += rcCtxModel.getEntropyBits( binValue ); 85 #if NH_MV 83 86 D_PRINT_INDENT( g_traceEncFracBits, "EncodeBin " + n2s(m_fracBits) ); 87 #endif 84 88 85 89 rcCtxModel.update( binValue ); … … 113 117 m_uiBinsCoded += m_binCountIncrement; 114 118 m_fracBits += 32768; 115 D_PRINT_INDENT( g_traceEncFracBits , "EncodeBinEP " + n2s(m_fracBits) ); 119 #if NH_MV 120 D_PRINT_INDENT( g_traceEncFracBits , "EncodeBinEP " + n2s(m_fracBits) ); 121 #endif 116 122 } 117 123 … … 126 132 m_uiBinsCoded += numBins & -m_binCountIncrement; 127 133 m_fracBits += 32768 * numBins; 134 #if NH_MV 128 135 D_PRINT_INDENT( g_traceEncFracBits , "EncodeBinsEP " + n2s(m_fracBits) ); 136 #endif 129 137 } 130 138 … … 138 146 m_uiBinsCoded += m_binCountIncrement; 139 147 m_fracBits += ContextModel::getEntropyBitsTrm( binValue ); 148 #if NH_MV 140 149 D_PRINT_INDENT( g_traceEncFracBits , "EncodeBinTrm " + n2s(m_fracBits) ); 150 #endif 141 151 } 142 152 … … 144 154 { 145 155 m_fracBits = (m_fracBits + 32767) & (~32767); 156 #if NH_MV 146 157 D_PRINT_INDENT( g_traceEncFracBits, "Align " + n2s(m_fracBits) ); 158 #endif 147 159 } 148 160 -
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r1313 r1321 40 40 #include "SEIwrite.h" 41 41 42 #if NH_ 3D42 #if NH_MV 43 43 #include "TEncTop.h" 44 44 #endif … … 53 53 { 54 54 fprintf( g_hTrace, "=========== Video Parameter Set ===========\n" ); 55 } 55 56 56 57 Void xTraceSPSHeader () … … 380 381 WRITE_CODE((pcPPS->getDLT()->getDepthViewBitDepth() - 8), 4, "pps_bit_depth_for_depth_layers_minus8"); 381 382 382 #if NH_3D_DLT_FIX383 383 for( Int i = 0; i <= pcPPS->getDLT()->getNumDepthViews()-1; i++ ) 384 #else385 for( Int i = 0; i <= pcPPS->getDLT()->getNumDepthViews(); i++ )386 #endif387 384 { 388 385 Int layerId = pcPPS->getDLT()->getDepthIdxToLayerId(i); … … 748 745 WRITE_UVLC( pcSPS->getMaxDecPicBuffering(i) - 1, "sps_max_dec_pic_buffering_minus1[i]" ); 749 746 WRITE_UVLC( pcSPS->getNumReorderPics(i), "sps_max_num_reorder_pics[i]" ); 747 #if NH_MV 748 WRITE_UVLC( pcSPS->getSpsMaxLatencyIncreasePlus1(i), "sps_max_latency_increase_plus1[i]" ); 749 #else 750 750 WRITE_UVLC( pcSPS->getMaxLatencyIncrease(i), "sps_max_latency_increase_plus1[i]" ); 751 #endif 751 752 if (!subLayerOrderingInfoPresentFlag) 752 753 { … … 814 815 codeShortTermRefPicSet( rps,false, i); 815 816 } 817 #if NH_MV 818 WRITE_FLAG( pcSPS->getLongTermRefPicsPresentFlag() ? 1 : 0, "long_term_ref_pics_present_flag" ); 819 if (pcSPS->getLongTermRefPicsPresentFlag()) 820 #else 816 821 WRITE_FLAG( pcSPS->getLongTermRefsPresent() ? 1 : 0, "long_term_ref_pics_present_flag" ); 817 822 if (pcSPS->getLongTermRefsPresent()) 823 #endif 818 824 { 819 825 WRITE_UVLC(pcSPS->getNumLongTermRefPicSPS(), "num_long_term_ref_pics_sps" ); … … 1747 1753 //write slice address 1748 1754 const Int sliceSegmentRsAddress = pcSlice->getPic()->getPicSym()->getCtuTsToRsAddrMap(ctuTsAddress); 1749 1755 #if NH_MV 1756 // This should actually be done somewhere else and not in writing process. 1757 pcSlice->setFirstSliceSegementInPicFlag( sliceSegmentRsAddress==0 ); 1758 WRITE_FLAG( pcSlice->getFirstSliceSegementInPicFlag() , "first_slice_segment_in_pic_flag" ); 1759 #else 1750 1760 WRITE_FLAG( sliceSegmentRsAddress==0, "first_slice_segment_in_pic_flag" ); 1761 #endif 1751 1762 if ( pcSlice->getRapPicFlag() ) 1752 1763 { … … 1760 1771 else 1761 1772 #endif 1762 1763 1773 WRITE_UVLC( pcSlice->getPPS()->getPPSId(), "slice_pic_parameter_set_id" ); 1764 1774 if ( pcSlice->getPPS()->getDependentSliceSegmentsEnabledFlag() && (sliceSegmentRsAddress!=0) ) … … 1772 1782 if ( !pcSlice->getDependentSliceSegmentFlag() ) 1773 1783 { 1774 1775 1784 #if NH_MV 1776 1785 Int esb = 0; //Don't use i, otherwise will shadow something below … … 1861 1870 } 1862 1871 } 1872 #if NH_MV 1873 if(pcSlice->getSPS()->getLongTermRefPicsPresentFlag()) 1874 #else 1863 1875 if(pcSlice->getSPS()->getLongTermRefsPresent()) 1876 #endif 1864 1877 { 1865 1878 Int numLtrpInSH = rps->getNumberOfLongtermPictures(); … … 2196 2209 Bool isDBFEnabled = (!pcSlice->getDeblockingFilterDisable()); 2197 2210 2198 if(pcSlice->getPPS()->getLoopFilterAcrossSlicesEnabledFlag() && ( isSAOEnabled || isDBFEnabled ))2211 if(pcSlice->getPPS()->getLoopFilterAcrossSlicesEnabledFlag() && ( isSAOEnabled || isDBFEnabled )) 2199 2212 { 2200 2213 WRITE_FLAG(pcSlice->getLFCrossSliceBoundaryFlag()?1:0, "slice_loop_filter_across_slices_enabled_flag"); … … 2204 2217 { 2205 2218 Int voiInVps = vps->getVoiInVps( pcSlice->getViewIndex() ); 2206 #if NH_3D_FIX_TICKET_1012207 2219 if( vps->getCpInSliceSegmentHeaderFlag( voiInVps ) ) 2208 #else2209 if( vps->getCpInSliceSegmentHeaderFlag( voiInVps ) && !pcSlice->getIsDepth() )2210 #endif2211 2220 { 2212 2221 for( Int m = 0; m < vps->getNumCp( voiInVps ); m++ ) … … 2257 2266 if( pcSlice->getPocMsbValRequiredFlag() ) 2258 2267 { 2259 pcSlice->setPocMsb ValPresentFlag( true );2268 pcSlice->setPocMsbCycleValPresentFlag( true ); 2260 2269 } 2261 2270 else 2262 2271 { 2263 pcSlice->setPocMsb ValPresentFlag( false );2264 } 2265 } 2266 2267 if( pcSlice->getPocMsb ValPresentFlag() )2272 pcSlice->setPocMsbCycleValPresentFlag( false ); 2273 } 2274 } 2275 2276 if( pcSlice->getPocMsbCycleValPresentFlag() ) 2268 2277 { 2269 2278 // Int iMaxPOClsb = 1<< pcSlice->getSPS()->getBitsForPOC(); currently unused 2270 2279 2271 2280 UInt lengthVal = 1; 2272 UInt tempVal = pcSlice->getPocMsb Val() + 1;2281 UInt tempVal = pcSlice->getPocMsbCycleVal() + 1; 2273 2282 assert ( tempVal ); 2274 2283 while( 1 != tempVal ) … … 2314 2323 if( !pcSlice->getPocMsbValRequiredFlag() && pcSlice->getVPS()->getVpsPocLsbAlignedFlag() ) 2315 2324 { 2316 WRITE_FLAG( pcSlice->getPocMsb ValPresentFlag( ) ? 1 : 0 , "poc_msb_val_present_flag" );2325 WRITE_FLAG( pcSlice->getPocMsbCycleValPresentFlag( ) ? 1 : 0 , "poc_msb_cycle_val_present_flag" ); 2317 2326 } 2318 2327 else 2319 2328 { 2320 assert( pcSlice->getPocMsb ValPresentFlag() == pcSlice->inferPocMsbValPresentFlag( ) );2329 assert( pcSlice->getPocMsbCycleValPresentFlag() == pcSlice->inferPocMsbCycleValPresentFlag( ) ); 2321 2330 } 2322 2331 2323 if( pcSlice->getPocMsb ValPresentFlag() )2324 { 2325 WRITE_UVLC( pcSlice->getPocMsb Val( ), "poc_msb_val" );2332 if( pcSlice->getPocMsbCycleValPresentFlag() ) 2333 { 2334 WRITE_UVLC( pcSlice->getPocMsbCycleVal( ), "poc_msb_cycle_val" ); 2326 2335 } 2327 2336 … … 2347 2356 for (Int i = 0; i < maxNumSubLayersMinus1; i++) 2348 2357 { 2349 #if !NH_MV2350 #endif2351 2358 WRITE_FLAG( pcPTL->getSubLayerProfilePresentFlag(i), "sub_layer_profile_present_flag[i]" ); 2352 #if !NH_MV2353 #endif2354 2359 WRITE_FLAG( pcPTL->getSubLayerLevelPresentFlag(i), "sub_layer_level_present_flag[i]" ); 2355 2360 } -
trunk/source/Lib/TLibEncoder/TEncCavlc.h
r1313 r1321 66 66 67 67 protected: 68 #if NH_ 3D68 #if NH_MV 69 69 TEncTop* m_encTop; 70 70 #endif … … 179 179 Void codeExplicitRdpcmMode( TComTU &rTu, const ComponentID compID ); 180 180 181 #if NH_ 3D181 #if NH_MV 182 182 TEncTop* getEncTop() { return m_encTop; }; 183 183 Void setEncTop( TEncTop* et ) { m_encTop = et; }; -
trunk/source/Lib/TLibEncoder/TEncCu.cpp
r1313 r1321 764 764 if( rpcBestCU->getSlice()->getDepthIntraSkipFlag() ) 765 765 { 766 xCheckRDCostDIS( rpcBestCU, rpcTempCU, SIZE_2Nx2N );766 xCheckRDCostDIS( rpcBestCU, rpcTempCU, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug) ); 767 767 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 768 768 } … … 795 795 { 796 796 #if NH_3D_FAST_TEXTURE_ENCODING 797 xCheckRDCostInter( rpcBestCU, rpcTempCU DEBUG_STRING_PASS_INTO(sDebug), SIZE_NxN, bFMD );797 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug), bFMD ); 798 798 #else 799 799 … … 1096 1096 1097 1097 if((rpcBestCU->getSlice()->getSliceType() == I_SLICE) || 1098 ((!m_pcEncCfg->getDisableIntraPUsInInterSlices()) && ( // avoid very complex intra if it is unlikely1098 ((!m_pcEncCfg->getDisableIntraPUsInInterSlices()) && ( 1099 1099 (rpcBestCU->getCbf( 0, COMPONENT_Y ) != 0) || 1100 1100 ((rpcBestCU->getCbf( 0, COMPONENT_Cb ) != 0) && (numberValidComponents > COMPONENT_Cb)) || 1101 ((rpcBestCU->getCbf( 0, COMPONENT_Cr ) != 0) && (numberValidComponents > COMPONENT_Cr)) 1101 ((rpcBestCU->getCbf( 0, COMPONENT_Cr ) != 0) && (numberValidComponents > COMPONENT_Cr)) // avoid very complex intra if it is unlikely 1102 1102 #if NH_3D_ENC_DEPTH 1103 1103 || rpcBestCU->getSlice()->getIsDepth() … … 1785 1785 } 1786 1786 1787 #if NH_MV 1787 1788 D_PRINT_INC_INDENT( g_traceModeCheck, "xCheckRDCostMerge2Nx2N" ); 1789 #endif 1788 1790 1789 1791 #if NH_3D_MLC … … 1970 1972 for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual ) 1971 1973 { 1974 #if NH_MV 1972 1975 D_PRINT_INC_INDENT ( g_traceModeCheck, "uiNoResidual: " + n2s( uiNoResidual) ); 1976 #endif 1973 1977 1974 1978 for( UInt uiMergeCand = 0; uiMergeCand < numValidMergeCand; ++uiMergeCand ) … … 1983 1987 } 1984 1988 #endif 1989 #if NH_MV 1985 1990 D_PRINT_INC_INDENT ( g_traceModeCheck, "uiMergeCand: "+ n2s(uiMergeCand) ); 1991 #endif 1986 1992 1987 1993 if(!(uiNoResidual==1 && mergeCandBuffer[uiMergeCand]==1)) … … 2173 2179 2174 2180 xCheckDQP( rpcTempCU ); 2175 xCheckBestMode( rpcBestCU, rpcTempCU, uhDepth );2181 xCheckBestMode( rpcBestCU, rpcTempCU, uhDepth DEBUG_STRING_PASS_INTO(bestStr) DEBUG_STRING_PASS_INTO(tmpStr) ); 2176 2182 } 2177 2183 } … … 2197 2203 } 2198 2204 } 2205 #if NH_MV 2199 2206 D_DEC_INDENT( g_traceModeCheck ); 2207 #endif 2200 2208 } 2201 2209 … … 2229 2237 } 2230 2238 } 2239 #if NH_MV 2231 2240 D_DEC_INDENT( g_traceModeCheck ); 2241 #endif 2232 2242 } 2233 2243 DEBUG_STRING_APPEND(sDebug, bestStr) … … 2239 2249 delete[] puhInterDirSP; 2240 2250 #endif 2251 #if NH_MV 2241 2252 D_DEC_INDENT( g_traceModeCheck ); 2253 #endif 2242 2254 } 2243 2255 … … 2265 2277 } 2266 2278 2279 #if NH_MV 2267 2280 D_PRINT_INC_INDENT(g_traceModeCheck, "xCheckRDCostInter; ePartSize:" + n2s( ePartSize) ); 2281 #endif 2268 2282 2269 2283 … … 2354 2368 { 2355 2369 #if NH_3D_ARP 2356 if( nARPWMax ) 2357 { 2358 continue; 2359 } 2360 else 2361 #endif 2362 { 2363 D_DEC_INDENT( g_traceModeCheck ); 2364 return; 2365 } 2370 if( nARPWMax ) 2371 { 2372 continue; 2373 } 2374 else 2375 #endif 2376 { 2377 #if NH_MV 2378 D_DEC_INDENT( g_traceModeCheck ); 2379 #endif 2380 return; 2381 } 2366 2382 } 2367 2383 #endif … … 2468 2484 2469 2485 xCheckDQP( rpcTempCU ); 2470 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth );2486 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth DEBUG_STRING_PASS_INTO(sDebug) DEBUG_STRING_PASS_INTO(sTest)); 2471 2487 } 2472 2488 … … 2479 2495 } 2480 2496 #endif 2497 #if NH_MV 2481 2498 D_DEC_INDENT( g_traceModeCheck ); 2499 #endif 2482 2500 } 2483 2501 … … 2683 2701 #endif 2684 2702 #if NH_3D_DIS 2685 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )2703 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize DEBUG_STRING_FN_DECLARE(sDebug) ) 2686 2704 { 2705 DEBUG_STRING_NEW(sTest) 2687 2706 UInt uiDepth = rpcTempCU->getDepth( 0 ); 2688 2707 if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N)) … … 2691 2710 } 2692 2711 2712 #if NH_MV 2693 2713 D_PRINT_INC_INDENT(g_traceModeCheck, "xCheckRDCostDIS" ); 2714 #endif 2694 2715 2695 2716 #if NH_3D_VSO // M5 … … 2753 2774 xCheckDQP( rpcTempCU ); 2754 2775 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth DEBUG_STRING_PASS_INTO(sDebug) DEBUG_STRING_PASS_INTO(sTest) ); 2776 #if NH_MV 2755 2777 D_DEC_INDENT( g_traceModeCheck ); 2778 #endif 2756 2779 } 2757 2780 #endif … … 2777 2800 } 2778 2801 } 2802 #if NH_MV 2779 2803 D_PRINT_INC_INDENT (g_traceModeCheck, "xCheckRDCostIntra; eSize: " + n2s(eSize) ); 2780 2804 #endif 2805 2781 2806 UInt uiDepth = rpcTempCU->getDepth( 0 ); 2782 2807 #if NH_3D_VSO // M5 … … 2830 2855 m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0, true ); 2831 2856 } 2832 #if NH_3D_DIS && !NH_3D_DIS_FIX 2857 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2858 #if NH_3D_DIS 2833 2859 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2834 2860 if(!rpcTempCU->getDISFlag(0)) 2835 2861 { 2836 2862 #endif 2837 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2838 #if NH_3D_DIS_FIX 2839 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2840 if(!rpcTempCU->getDISFlag(0)) 2841 { 2842 #endif 2843 m_pcEntropyCoder->encodePredMode( rpcTempCU, 0, true ); 2844 m_pcEntropyCoder->encodePartSize( rpcTempCU, 0, uiDepth, true ); 2845 m_pcEntropyCoder->encodePredInfo( rpcTempCU, 0 ); 2846 m_pcEntropyCoder->encodeIPCMInfo(rpcTempCU, 0, true ); 2863 m_pcEntropyCoder->encodePredMode( rpcTempCU, 0, true ); 2864 m_pcEntropyCoder->encodePartSize( rpcTempCU, 0, uiDepth, true ); 2865 m_pcEntropyCoder->encodePredInfo( rpcTempCU, 0 ); 2866 m_pcEntropyCoder->encodeIPCMInfo(rpcTempCU, 0, true ); 2847 2867 #if NH_3D_SDC_INTRA 2848 2868 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2849 2869 #endif 2850 2870 2851 // Encode Coefficients2852 Bool bCodeDQP = getdQPFlag();2853 Bool codeChromaQpAdjFlag = getCodeChromaQpAdjFlag();2854 m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, bCodeDQP, codeChromaQpAdjFlag );2855 setCodeChromaQpAdjFlag( codeChromaQpAdjFlag );2856 setdQPFlag( bCodeDQP );2871 // Encode Coefficients 2872 Bool bCodeDQP = getdQPFlag(); 2873 Bool codeChromaQpAdjFlag = getCodeChromaQpAdjFlag(); 2874 m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, bCodeDQP, codeChromaQpAdjFlag ); 2875 setCodeChromaQpAdjFlag( codeChromaQpAdjFlag ); 2876 setdQPFlag( bCodeDQP ); 2857 2877 #if NH_3D_DIS 2858 2878 } … … 2877 2897 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth DEBUG_STRING_PASS_INTO(sDebug) DEBUG_STRING_PASS_INTO(sTest)); 2878 2898 2899 #if NH_MV 2879 2900 D_DEC_INDENT( g_traceModeCheck ); 2880 } 2901 #endif 2902 } 2881 2903 2882 2904 … … 2912 2934 } 2913 2935 #endif 2914 2915 2936 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2916 2937 #if NH_3D_DIS -
trunk/source/Lib/TLibEncoder/TEncCu.h
r1313 r1321 163 163 #endif 164 164 #if NH_3D_DIS 165 Void xCheckRDCostDIS ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize );165 Void xCheckRDCostDIS ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize DEBUG_STRING_FN_DECLARE(sDebug) ); 166 166 #endif 167 167 Void xCheckRDCostIntra ( TComDataCU *&rpcBestCU, -
trunk/source/Lib/TLibEncoder/TEncEntropy.cpp
r1313 r1321 119 119 Void TEncEntropy::encodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 120 120 { 121 #if NH_3D_FIX_TICKET_98122 121 if( !pcCU->getSlice()->getDepthIntraSkipFlag() ) 123 #else124 if ( !pcCU->getSlice()->getIsDepth() )125 #endif126 122 { 127 123 return; -
trunk/source/Lib/TLibEncoder/TEncEntropy.h
r1313 r1321 140 140 Void resetBits () { m_pcEntropyCoderIf->resetBits(); } 141 141 UInt getNumberOfWrittenBits () { 142 #if NH_MV 142 143 D_PRINT_INDENT(g_encNumberOfWrittenBits, "NumBits: " + n2s( m_pcEntropyCoderIf->getNumberOfWrittenBits() )) 144 #endif 143 145 return m_pcEntropyCoderIf->getNumberOfWrittenBits(); } 144 146 Void resetEntropy (const TComSlice *pSlice) { m_pcEntropyCoderIf->resetEntropy(pSlice); } -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r1313 r1321 1428 1428 if ( gopNum == MAX_GOP) 1429 1429 { 1430 printf( "\nError: FrameI_l%d cannot enable inter-component prediction .\n", pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) );1430 printf( "\nError: FrameI_l%d cannot enable inter-component prediction on slice level. All reference layers need to be available and at least one tool using inter-component prediction must be enabled in the SPS. \n", pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) ); 1431 1431 } 1432 1432 else 1433 1433 { 1434 printf( "\nError: Frame%d_l%d cannot enable inter-component prediction .\n", gopNum, pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) );1434 printf( "\nError: Frame%d_l%d cannot enable inter-component prediction on slice level. All reference layers need to be available and at least one tool using inter-component prediction must be enabled in the SPS. \n", gopNum, pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) ); 1435 1435 } 1436 1436 … … 1441 1441 pcSlice->checkInCompPredRefLayers(); 1442 1442 } 1443 1444 1443 #if NH_3D_IV_MERGE 1445 1444 // This needs to be done after initialization of 3D tool parameters. -
trunk/source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp
r1313 r1321 826 826 } 827 827 828 #if NH_MV 828 829 D_PRINT_INDENT( g_traceSAOCost, "SAO mode " + n2s( mode ) + " Cost: " + n2s( modeCost) ); 829 830 #endif 830 831 if(modeCost < minCost) 831 832 { -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r1313 r1321 1530 1530 ) 1531 1531 { 1532 #if NH_MV 1532 1533 D_PRINT_INC_INDENT( g_traceModeCheck, "xRecurIntraCodingLumaQT; zeroResiFlag " + n2s(zeroResiFlag) ) 1534 #endif 1533 1535 1534 1536 TComDataCU *pcCU = rTu.getCU(); … … 1713 1715 dSingleCost = 0.0; 1714 1716 #if NH_3D_ENC_DEPTH 1715 #if NH_3D_ENC_DEPTH_FIX1716 1717 xIntraCodingTUBlock( pcOrgYuv, pcPredYuv, pcResiYuv, resiLumaSingle, false, uiSingleDistLuma, COMPONENT_Y, rTu DEBUG_STRING_PASS_INTO(sDebug), 0, zeroResiFlag ); 1717 #else1718 xIntraCodingTUBlock( pcOrgYuv, pcPredYuv, pcResiYuv, resiLumaSingle, false, uiSingleDistLuma, COMPONENT_Y, rTu DEBUG_STRING_PASS_INTO(sDebug), zeroResiFlag );1719 #endif1720 1718 #else 1721 1719 pcCU ->setTransformSkipSubParts ( 0, COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); … … 1841 1839 } 1842 1840 } 1841 #if NH_MV 1843 1842 D_DEC_INDENT( g_traceModeCheck ); 1843 #endif 1844 1844 return; 1845 1845 } … … 1888 1888 ruiDistY += uiSingleDistLuma; 1889 1889 dRDCost += dSingleCost; 1890 #if NH_MV 1890 1891 D_DEC_INDENT( g_traceModeCheck ); 1892 #endif 1891 1893 } 1892 1894 … … 1907 1909 TComTURecurse rTu(pcCU, 0); 1908 1910 const ChromaFormat chFmt = rTu.GetChromaFormat(); 1909 1911 DEBUG_STRING_NEW(sTemp) 1910 1912 if ( uiPredMode == 0 ) 1911 1913 { … … 2031 2033 TComTURecurse tuRecurseCU(pcCU, 0); 2032 2034 TComTURecurse tuRecurseWithPU(tuRecurseCU, false, TComTU::DONT_SPLIT); 2033 2035 DEBUG_STRING_NEW(sTemp) 2034 2036 initIntraPatternChType( tuRecurseWithPU, COMPONENT_Y, false DEBUG_STRING_PASS_INTO(sTemp) ); 2035 2037 … … 2086 2088 2087 2089 //===== init pattern for luma prediction ===== 2088 2090 DEBUG_STRING_NEW(sTemp2) 2089 2091 initIntraPatternChType( tuRecurseWithPU, COMPONENT_Y, bUseFilter DEBUG_STRING_PASS_INTO(sTemp2) ); 2090 2092 … … 2212 2214 2213 2215 //===== determine distortion ===== 2214 #if NH_3D_INTRA_SDC_RD_FIX2215 2216 #if NH_3D_VSO 2216 2217 if( m_pcRdCost->getUseVSO() ) … … 2219 2220 } 2220 2221 else 2221 #endif2222 #else2223 #if NH_3D_VSO2224 if( m_pcRdCost->getUseVSO() )2225 {2226 if( m_pcRdCost->getUseEstimatedVSD() )2227 {2228 ruiDist = m_pcRdCost->getDistPartVSD( pcCU, uiAbsPartIdx, bitDepthY, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false );2229 }2230 else2231 {2232 ruiDist = m_pcRdCost->getDistPartVSO( pcCU, uiAbsPartIdx, bitDepthY, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false );2233 }2234 }2235 else2236 #endif2237 2222 #endif 2238 2223 { … … 2754 2739 Bool bLumaOnly ) 2755 2740 { 2741 #if NH_MV 2756 2742 D_PRINT_INC_INDENT(g_traceModeCheck, "estIntraPredDis"); 2743 #endif 2757 2744 2758 2745 UInt uiDepth = pcCU->getDepth(0); … … 2772 2759 for( UInt uiPredMode = 0; uiPredMode < 4 ; uiPredMode++ ) 2773 2760 { 2761 #if NH_MV 2774 2762 D_PRINT_INC_INDENT(g_traceModeCheck, "uiPredMode" + n2s(uiPredMode ) ); 2763 #endif 2775 2764 2776 2765 // set context models … … 2796 2785 pcPredYuv->copyPartToPartYuv(pcRecoYuv, 0, uiWidth, uiHeight); 2797 2786 } 2787 #if NH_MV 2798 2788 D_DEC_INDENT( g_traceModeCheck ); 2789 #endif 2799 2790 } 2800 2791 … … 2807 2798 //===== set distortion (rate and r-d costs are determined later) ===== 2808 2799 pcCU->getTotalDistortion() = uiBestDist; 2800 #if NH_MV 2809 2801 D_DEC_INDENT( g_traceModeCheck ); 2802 #endif 2810 2803 } 2811 2804 #endif … … 2826 2819 ) 2827 2820 { 2821 #if NH_MV 2828 2822 D_PRINT_INC_INDENT( g_traceModeCheck, "estIntraPredLumaQT"); 2823 #endif 2829 2824 2830 2825 const UInt uiDepth = pcCU->getDepth(0); … … 2882 2877 { 2883 2878 const UInt uiPartOffset=tuRecurseWithPU.GetAbsPartIdxTU(); 2879 #if NH_MV 2884 2880 D_PRINT_INC_INDENT(g_traceModeCheck, "uiPartOffset: " + n2s(uiPartOffset ) ); 2881 #endif 2885 2882 2886 2883 // for( UInt uiPU = 0, uiPartOffset=0; uiPU < uiNumPU; uiPU++, uiPartOffset += uiQNumParts ) … … 2927 2924 m_pcRdCost->setDistParam(distParam, sps.getBitDepth(CHANNEL_TYPE_LUMA), piOrg, uiStride, piPred, uiStride, puRect.width, puRect.height, bUseHadamard); 2928 2925 2929 #if NH_3D _IC_FIX2926 #if NH_3D 2930 2927 distParam.bUseIC = false; 2931 2928 #endif … … 2940 2937 Distortion uiSad = 0; 2941 2938 #endif 2939 #if NH_MV 2942 2940 D_PRINT_INC_INDENT(g_traceModeCheck, "preTest; uiMode " + n2s(uiMode) ); 2941 #endif 2943 2942 2944 2943 const Bool bUseFilter=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag()); … … 2993 2992 2994 2993 CandNum += xUpdateCandList( uiMode, cost, numModesForFullRD, uiRdModeList, CandCostList ); 2994 #if NH_MV 2995 2995 D_DEC_INDENT( g_traceModeCheck ); 2996 #endif 2996 2997 } 2997 2998 … … 3193 3194 #endif 3194 3195 3196 #if NH_MV 3195 3197 D_PRINT_INC_INDENT(g_traceModeCheck, "Test; uiOrgMode: " + n2s(uiOrgMode) ); 3198 #endif 3196 3199 3197 3200 pcCU->setIntraDirSubParts ( CHANNEL_TYPE_LUMA, uiOrgMode, uiPartOffset, uiDepth + uiInitTrDepth ); … … 3395 3398 } // SDC loop 3396 3399 #endif 3400 #if NH_MV 3397 3401 D_DEC_INDENT( g_traceModeCheck ); 3402 #endif 3398 3403 } // Mode loop 3399 3404 … … 3554 3559 pcCU->setSDCFlagSubParts ( bBestUseSDC, uiPartOffset, uiDepth + uiInitTrDepth ); 3555 3560 #endif 3561 #if NH_MV 3556 3562 D_DEC_INDENT( g_traceModeCheck ); 3563 #endif 3557 3564 } while (tuRecurseWithPU.nextSection(tuRecurseCU)); 3558 3565 … … 3583 3590 //===== set distortion (rate and r-d costs are determined later) ===== 3584 3591 pcCU->getTotalDistortion() = uiOverallDistY; 3592 #if NH_MV 3585 3593 D_DEC_INDENT( g_traceModeCheck ); 3594 #endif 3586 3595 } 3587 3596 … … 3892 3901 ) 3893 3902 { 3903 #if NH_MV 3894 3904 D_PRINT_INC_INDENT(g_traceModeCheck, "xMergeEstimation" ); 3905 #endif 3895 3906 3896 3907 UInt uiAbsPartIdx = 0; … … 4014 4025 for( UInt uiMergeCand = 0; uiMergeCand < numValidMergeCand; ++uiMergeCand ) 4015 4026 { 4027 #if NH_MV 4016 4028 D_PRINT_INC_INDENT(g_traceModeCheck, "uiMergeCand: " + n2s(uiMergeCand) ); 4029 #endif 4017 4030 Distortion uiCostCand = std::numeric_limits<Distortion>::max(); 4018 4031 UInt uiBitsCand = 0; … … 4092 4105 uiCostCand = uiCostCand + m_pcRdCost->getCost( uiBitsCand ); 4093 4106 4107 #if NH_MV 4094 4108 D_PRINT_INDENT( g_traceRDCost, "IP RD Cost: " + n2s(uiCostCand)); 4109 #endif 4095 4110 4096 4111 if ( uiCostCand < ruiCost ) … … 4102 4117 uiMergeIndex = uiMergeCand; 4103 4118 } 4119 #if NH_MV 4104 4120 D_DEC_INDENT( g_traceModeCheck ); 4105 } 4121 #endif 4122 } 4123 #if NH_MV 4106 4124 D_DEC_INDENT( g_traceModeCheck ); 4125 #endif 4107 4126 } 4108 4127 … … 4142 4161 { 4143 4162 4163 #if NH_MV 4144 4164 D_PRINT_INC_INDENT(g_traceModeCheck, "predInterSearch"); 4165 #endif 4145 4166 4146 4167 for(UInt i=0; i<NUM_REF_PIC_LIST_01; i++) … … 4210 4231 for ( Int iPartIdx = 0; iPartIdx < iNumPart; iPartIdx++ ) 4211 4232 { 4233 #if NH_MV 4212 4234 D_PRINT_INC_INDENT(g_traceModeCheck, "iPartIdx: " + n2s(iPartIdx) ); 4235 #endif 4213 4236 4214 4237 Distortion uiCost[2] = { std::numeric_limits<Distortion>::max(), std::numeric_limits<Distortion>::max() }; … … 4258 4281 for ( Int iRefList = 0; iRefList < iNumPredDir; iRefList++ ) 4259 4282 { 4283 #if NH_MV 4260 4284 D_PRINT_INC_INDENT(g_traceModeCheck, "iRefList: " + n2s(iRefList) ); 4285 #endif 4261 4286 4262 4287 RefPicList eRefPicList = ( iRefList ? REF_PIC_LIST_1 : REF_PIC_LIST_0 ); … … 4264 4289 for ( Int iRefIdxTemp = 0; iRefIdxTemp < pcCU->getSlice()->getNumRefIdx(eRefPicList); iRefIdxTemp++ ) 4265 4290 { 4291 #if NH_MV 4266 4292 D_PRINT_INC_INDENT(g_traceModeCheck, "iRefIdxTemp: " + n2s(iRefIdxTemp) ); 4293 #endif 4267 4294 4268 4295 uiBitsTemp = uiMbBits[iRefList]; … … 4338 4365 refIdxValidList1 = iRefIdxTemp; 4339 4366 } 4367 #if NH_MV 4340 4368 D_DEC_INDENT( g_traceModeCheck ); 4341 } 4369 #endif 4370 } 4371 #if NH_MV 4342 4372 D_DEC_INDENT( g_traceModeCheck ); 4373 #endif 4343 4374 } 4344 4375 … … 4609 4640 xGetInterPredictionError( pcCU, pcOrgYuv, iPartIdx, uiMEError, m_pcEncCfg->getUseHADME() ); 4610 4641 uiMECost = uiMEError + m_pcRdCost->getCost( uiMEBits ); 4642 #if NH_MV 4611 4643 D_PRINT_INDENT( g_traceRDCost, "IP RD Cost: " + n2s(uiMECost)); 4644 #endif 4612 4645 } 4613 4646 #else … … 4756 4789 // MC 4757 4790 motionCompensation ( pcCU, pcPredYuv, REF_PIC_LIST_X, iPartIdx ); 4791 #if NH_MV 4758 4792 D_DEC_INDENT( g_traceModeCheck ); 4793 #endif 4759 4794 } // end of for ( Int iPartIdx = 0; iPartIdx < iNumPart; iPartIdx++ ) 4760 4795 4761 4796 setWpScalingDistParam( pcCU, -1, REF_PIC_LIST_X ); 4762 4797 4798 #if NH_MV 4763 4799 D_DEC_INDENT( g_traceModeCheck ); 4800 #endif 4764 4801 return; 4765 4802 } … … 4769 4806 Void TEncSearch::xEstimateMvPredAMVP( TComDataCU* pcCU, TComYuv* pcOrgYuv, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMvPred, Bool bFilled, Distortion* puiDistBiP ) 4770 4807 { 4808 #if NH_MV 4771 4809 D_PRINT_INC_INDENT(g_traceModeCheck, "xEstimateMvPredAMVP"); 4810 #endif 4772 4811 4773 4812 AMVPInfo* pcAMVPInfo = pcCU->getCUMvField(eRefPicList)->getAMVPInfo(); … … 4847 4886 if(pcCU->getSlice()->getMvdL1ZeroFlag() && eRefPicList==REF_PIC_LIST_1) 4848 4887 { 4888 #if NH_MV 4849 4889 D_PRINT_INC_INDENT(g_traceModeCheck, "Init"); 4890 #endif 4850 4891 4851 4892 (*puiDistBiP) = xGetTemplateCost( pcCU, uiPartAddr, pcOrgYuv, &m_cYuvPredTemp, rcMvPred, 0, AMVP_MAX_NUM_CANDS, eRefPicList, iRefIdx, iRoiWidth, iRoiHeight); 4852 4893 4894 #if NH_MV 4853 4895 D_DEC_INDENT( g_traceModeCheck ); 4896 #endif 4854 4897 } 4855 4898 return; … … 4867 4910 for ( i = 0 ; i < pcAMVPInfo->iN; i++) 4868 4911 { 4912 #if NH_MV 4869 4913 D_PRINT_INC_INDENT(g_traceModeCheck, "Cand i=" + n2s(i) + " X: " + n2s( pcAMVPInfo->m_acMvCand[i].getHor() ) + " Y: " + n2s( pcAMVPInfo->m_acMvCand[i].getVer() )); 4914 #endif 4870 4915 4871 4916 Distortion uiTmpCost; … … 4879 4924 } 4880 4925 4926 #if NH_MV 4881 4927 D_DEC_INDENT( g_traceModeCheck ); 4928 #endif 4882 4929 } 4883 4930 … … 4889 4936 pcCU->setMVPNumSubParts( pcAMVPInfo->iN, eRefPicList, uiPartAddr, uiPartIdx, pcCU->getDepth(uiPartAddr)); 4890 4937 4938 #if NH_MV 4891 4939 D_DEC_INDENT( g_traceModeCheck ); 4940 #endif 4892 4941 4893 4942 return; … … 5094 5143 Void TEncSearch::xMotionEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPartIdx, RefPicList eRefPicList, TComMv* pcMvPred, Int iRefIdxPred, TComMv& rcMv, UInt& ruiBits, Distortion& ruiCost, Bool bBi ) 5095 5144 { 5145 #if NH_MV 5096 5146 D_PRINT_INC_INDENT(g_traceModeCheck, "xMotionEstimation"); 5147 #endif 5097 5148 5098 5149 UInt uiPartAddr; … … 5227 5278 ruiCost = (Distortion)( floor( fWeight * ( (Double)ruiCost - (Double)m_pcRdCost->getCost( uiMvBits ) ) ) + (Double)m_pcRdCost->getCost( ruiBits ) ); 5228 5279 5280 #if NH_MV 5229 5281 D_PRINT_INDENT(g_traceRDCost, "ME Cost:" + n2s(ruiCost) ); 5230 5282 D_DEC_INDENT ( g_traceModeCheck ); 5283 #endif 5231 5284 } 5232 5285 … … 5788 5841 Bool bSkipResidual DEBUG_STRING_FN_DECLARE(sDebug) ) 5789 5842 { 5843 #if NH_MV 5790 5844 D_PRINT_INC_INDENT(g_traceModeCheck, "encodeResAndCalcRdInterCU; Skip residual: " + n2s(bSkipResidual)); 5845 #endif 5791 5846 5792 5847 assert ( !pcCU->isIntra(0) ); … … 5883 5938 } 5884 5939 #endif 5940 #if NH_MV 5885 5941 D_DEC_INDENT( g_traceModeCheck ); 5942 #endif 5886 5943 5887 5944 return; … … 6049 6106 } 6050 6107 #endif 6108 #if NH_MV 6051 6109 D_DEC_INDENT( g_traceModeCheck ); 6110 #endif 6052 6111 } 6053 6112 … … 6207 6266 DEBUG_STRING_FN_DECLARE(sDebug) ) 6208 6267 { 6268 #if NH_MV 6209 6269 D_PRINT_INC_INDENT(g_traceModeCheck, "xEstimateInterResidualQT"); 6270 #endif 6210 6271 6211 6272 TComDataCU *pcCU = rTu.getCU(); … … 6260 6321 if( bCheckFull ) 6261 6322 { 6323 #if NH_MV 6262 6324 D_PRINT_INC_INDENT(g_traceModeCheck, "bCheckFull" ); 6325 #endif 6263 6326 6264 6327 Double minCost[MAX_NUM_COMPONENT][2/*0 = top (or whole TU for non-4:2:2) sub-TU, 1 = bottom sub-TU*/]; … … 6349 6412 for (Int transformSkipModeId = 0; transformSkipModeId < transformSkipModesToTest; transformSkipModeId++) 6350 6413 { 6414 #if NH_MV 6351 6415 D_PRINT_INC_INDENT( g_traceModeCheck && ( transformSkipModeId > 0) , "TransformSkipModeId: " + n2s(transformSkipModeId) ); 6416 #endif 6352 6417 6353 6418 pcCU->setTransformSkipPartRange(transformSkipModeId, compID, subTUAbsPartIdx, partIdxesPerSubTU); … … 6358 6423 const Bool bUseCrossCPrediction = crossCPredictionModeId != 0; 6359 6424 6425 #if NH_MV 6360 6426 D_PRINT_INC_INDENT( g_traceModeCheck, "Zero" ); 6427 #endif 6361 6428 6362 6429 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); … … 6511 6578 } 6512 6579 6580 6513 6581 DEBUG_STRING_NEW(sSingleStringTest) 6514 6515 D_DEC_INDENT( g_traceModeCheck );6516 6582 #if NH_MV 6583 D_DEC_INDENT( g_traceModeCheck ); 6584 #endif 6517 6585 if( currAbsSum > 0 ) //if non-zero coefficients are present, a residual needs to be derived for further prediction 6518 6586 { 6587 #if NH_MV 6519 6588 D_PRINT_INC_INDENT(g_traceModeCheck, "NonZero"); 6589 #endif 6520 6590 6521 6591 if (isFirstMode) … … 6611 6681 currCompCost = nonCoeffCost; 6612 6682 } 6683 #if NH_MV 6613 6684 D_DEC_INDENT( g_traceModeCheck ); 6685 #endif 6614 6686 6615 6687 // evaluate … … 6689 6761 } 6690 6762 } 6763 #if NH_MV 6691 6764 D_DEC_INDENT( g_traceModeCheck ); 6765 #endif 6692 6766 } 6693 6767 … … 6700 6774 } // component loop 6701 6775 6776 #if NH_MV 6702 6777 D_PRINT_INC_INDENT(g_traceModeCheck, "Final"); 6778 #endif 6703 6779 6704 6780 for(UInt ch = 0; ch < numValidComp; ch++) … … 6758 6834 dSingleCost = m_pcRdCost->calcRdCost( uiSingleBits, uiSingleDist ); 6759 6835 6836 #if NH_MV 6760 6837 D_DEC_INDENT( g_traceModeCheck ); 6761 6838 D_DEC_INDENT( g_traceModeCheck ); 6839 #endif 6762 6840 } // check full 6763 6841 … … 6765 6843 if( bCheckSplit ) 6766 6844 { 6845 #if NH_MV 6767 6846 D_PRINT_INC_INDENT(g_traceModeCheck, "bCheckSplit" ); 6847 #endif 6768 6848 if( bCheckFull ) 6769 6849 { … … 6935 7015 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_TEST ] ); 6936 7016 } 7017 #if NH_MV 6937 7018 D_DEC_INDENT( g_traceModeCheck ); 7019 #endif 6938 7020 } 6939 7021 else … … 6955 7037 #endif 6956 7038 } 7039 #if NH_MV 6957 7040 D_DEC_INDENT( g_traceModeCheck ); 7041 #endif 6958 7042 DEBUG_STRING_APPEND(sDebug, debug_reorder_data_inter_token[MAX_NUM_COMPONENT]) 7043 6959 7044 } 6960 7045 -
trunk/source/Lib/TLibEncoder/TEncSearch.h
r1313 r1321 351 351 #endif 352 352 353 #if NH_3D_DMM 353 354 // ------------------------------------------------------------------------------------------------------------------- 354 355 // Depth intra search 355 356 // ------------------------------------------------------------------------------------------------------------------- 356 #if NH_3D_DMM 357 357 358 Void xCalcBiSegDCs ( Pel* ptrSrc, UInt srcStride, Bool* biSegPattern, Int patternStride, Pel& valDC1, Pel& valDC2, Pel defaultVal, Bool subSamp = false ); 358 359 Void xSearchDmmDeltaDCs ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 ); -
trunk/source/Lib/TLibEncoder/TEncTop.cpp
r1313 r1321 83 83 m_aICEnableNum = NULL; 84 84 #endif 85 #if NH_ 3D85 #if NH_MV 86 86 m_cCavlcCoder.setEncTop(this); 87 87 #endif … … 350 350 m_cPreanalyzer.xPreanalyze( dynamic_cast<TEncPic*>( pcPicCurr ) ); 351 351 } 352 #if NH_MV353 352 pcPicCurr->setLayerId( getLayerId()); 354 #endif355 353 #if NH_3D 356 354 pcPicCurr->setScaleOffset( m_cameraParameters->getCodedScale(), m_cameraParameters->getCodedOffset() ); … … 361 359 Void TEncTop::deletePicBuffer() 362 360 { 361 362 #if !NH_MV 363 363 TComList<TComPic*>::iterator iterPic = m_cListPic.begin(); 364 364 Int iSize = Int( m_cListPic.size() ); 365 366 365 for ( Int i = 0; i < iSize; i++ ) 367 366 { … … 372 371 pcPic = NULL; 373 372 } 373 #endif 374 374 } 375 375 … … 404 404 if( gopId == 0) 405 405 { 406 m_cGOPEncoder.initGOP(m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut, accessUnitsOut);406 m_cGOPEncoder.initGOP(m_iPOCLast, m_iNumPicRcvd, *(m_ivPicLists->getSubDpb( getLayerId(), false )), rcListPicYuvRecOut, accessUnitsOut); 407 407 #else 408 408 if (pcPicYuvOrg != NULL) … … 434 434 #if NH_MV 435 435 } 436 m_cGOPEncoder.compressPicInGOP(m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut, accessUnitsOut, false, false, snrCSC, m_printFrameMSE, gopId);436 m_cGOPEncoder.compressPicInGOP(m_iPOCLast, m_iNumPicRcvd, *(m_ivPicLists->getSubDpb(getLayerId(), false) ), rcListPicYuvRecOut, accessUnitsOut, false, false, snrCSC, m_printFrameMSE, gopId); 437 437 438 438 if( gopId + 1 == m_cGOPEncoder.getGOPSize() ) … … 574 574 // At this point, the SPS and PPS can be considered activated - they are copied to the new TComPic. 575 575 576 #if NH_MV 577 TComList<TComPic*>& cListPic = *(m_ivPicLists->getSubDpb(getLayerId(), false) ); 578 TComSlice::sortPicList(cListPic); 579 #else 576 580 TComSlice::sortPicList(m_cListPic); 577 578 581 #endif 582 583 584 #if NH_MV 585 if (cListPic.size() >= (UInt)(m_iGOPSize + getMaxDecPicBuffering(MAX_TLAYER-1) + 2) ) 586 { 587 TComList<TComPic*>::iterator iterPic = cListPic.begin(); 588 Int iSize = Int( cListPic.size() ); 589 #else 579 590 if (m_cListPic.size() >= (UInt)(m_iGOPSize + getMaxDecPicBuffering(MAX_TLAYER-1) + 2) ) 580 591 { 581 592 TComList<TComPic*>::iterator iterPic = m_cListPic.begin(); 582 593 Int iSize = Int( m_cListPic.size() ); 594 #endif 583 595 for ( Int i = 0; i < iSize; i++ ) 584 596 { … … 604 616 } 605 617 618 #if NH_MV 619 cListPic.pushBack( rpcPic ); 620 #else 606 621 m_cListPic.pushBack( rpcPic ); 622 #endif 607 623 } 608 624 rpcPic->setReconMark (false); … … 1056 1072 m_cPPS.setOutputFlagPresentFlag( false ); 1057 1073 #if NH_MV 1058 #if NH_MV_FIX_TICKET_1001059 1074 m_cPPS.setNumExtraSliceHeaderBits( 2 ); 1060 #else1061 m_cPPS.setNumExtraSliceHeaderBits( 3 );1062 #endif1063 1075 #endif 1064 1076 m_cPPS.setSignHideFlag(getSignHideFlag()); -
trunk/source/Lib/TLibEncoder/TEncTop.h
r1313 r1321 76 76 Int m_iNumPicRcvd; ///< number of received pictures 77 77 UInt m_uiNumAllPicCoded; ///< number of coded pictures 78 #if !NH_MV 78 79 TComList<TComPic*> m_cListPic; ///< dynamic list of pictures 80 #endif 79 81 80 82 #if NH_MV … … 170 172 // ------------------------------------------------------------------------------------------------------------------- 171 173 174 #if NH_MV 175 TComList<TComPic*>* getListPic () { return m_ivPicLists->getSubDpb( getLayerId(), false); } 176 #else 172 177 TComList<TComPic*>* getListPic () { return &m_cListPic; } 178 #endif 173 179 TEncSearch* getPredSearch () { return &m_cSearch; } 174 180
Note: See TracChangeset for help on using the changeset viewer.