Changeset 1072 in 3DVCSoftware for branches/HTM-12.1-MV-draft-1/source/Lib/TLibEncoder/TEncCavlc.cpp
- Timestamp:
- 13 Oct 2014, 16:44:51 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.1-MV-draft-1/source/Lib/TLibEncoder/TEncCavlc.cpp
r1066 r1072 185 185 WRITE_FLAG( pcPPS->getSignHideFlag(), "sign_data_hiding_flag" ); 186 186 WRITE_FLAG( pcPPS->getCabacInitPresentFlag() ? 1 : 0, "cabac_init_present_flag" ); 187 #if PPS_FIX_DEPTH188 if( pcPPS->getSPS()->getVPS()->getDepthId(pcPPS->getSPS()->getLayerId()) )189 {190 WRITE_UVLC( pcPPS->getNumRefIdxL0DefaultActive(), "num_ref_idx_l0_default_active_minus1");191 WRITE_UVLC( pcPPS->getNumRefIdxL1DefaultActive(), "num_ref_idx_l1_default_active_minus1");192 }193 else194 {195 #endif196 187 WRITE_UVLC( pcPPS->getNumRefIdxL0DefaultActive()-1, "num_ref_idx_l0_default_active_minus1"); 197 188 WRITE_UVLC( pcPPS->getNumRefIdxL1DefaultActive()-1, "num_ref_idx_l1_default_active_minus1"); 198 #if PPS_FIX_DEPTH199 }200 #endif201 189 WRITE_SVLC( pcPPS->getPicInitQPMinus26(), "init_qp_minus26"); 202 190 WRITE_FLAG( pcPPS->getConstrainedIntraPred() ? 1 : 0, "constrained_intra_pred_flag" ); … … 274 262 #endif 275 263 #endif 276 #if PPS_FIX_DEPTH277 if( pcPPS->getSPS()->getVPS()->getDepthId(pcPPS->getSPS()->getLayerId()) )278 {279 WRITE_FLAG( 1, "lists_modification_present_flag" );280 }281 else282 #endif283 264 WRITE_FLAG( pcPPS->getListsModificationPresentFlag(), "lists_modification_present_flag"); 284 265 WRITE_UVLC( pcPPS->getLog2ParallelMergeLevelMinus2(), "log2_parallel_merge_level_minus2"); 285 266 WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag"); 286 267 287 #if H_3D288 if(( !pcPPS->getSPS()->getVPS()->getDepthId( pcPPS->getSPS()->getLayerId() ) )||289 pcPPS->getLayerId() != 1 )290 {291 pcPPS->setPps3dExtensionFlag( false );292 }293 #endif294 268 295 269 #if !H_MV … … 300 274 WRITE_FLAG( pcPPS->getPpsRangeExtensionsFlag( ) ? 1 : 0 , "pps_range_extensions_flag" ); 301 275 WRITE_FLAG( pcPPS->getPpsMultilayerExtensionFlag( ) ? 1 : 0 , "pps_multilayer_extension_flag" ); 302 #if !H_3D303 276 WRITE_CODE( pcPPS->getPpsExtension6bits( ), 6, "pps_extension_6bits" ); 304 #else305 WRITE_FLAG( pcPPS->getPps3dExtensionFlag( ) ? 1 : 0 , "pps_3d_extension_flag" );306 WRITE_CODE( pcPPS->getPpsExtension5bits( ), 5, "pps_extension_5bits" );307 #endif308 277 if ( pcPPS->getPpsRangeExtensionsFlag() ) 309 278 { … … 321 290 } 322 291 323 #if H_3D 324 if( pcPPS->getPps3dExtensionFlag( ) ) // This probably needs to be aligned with Rext and SHVC 325 { 326 codePPSExtension( pcPPS ); 327 } 328 #endif 329 #endif 330 331 } 332 333 #if H_3D 334 Void TEncCavlc::codePPSExtension ( TComPPS* pcPPS ) 335 { 336 // Assuming that all PPS indirectly refer to the same VPS via different SPS 337 // There is no parsing dependency in decoding DLT in PPS. 338 // The VPS information passed to decodePPS() is used to arrange the decoded DLT tables to their corresponding layers. 339 // This is equivalent to the process of 340 // Step 1) decoding DLT tables based on the number of depth layers, and 341 // Step 2) mapping DLT tables to the depth layers 342 // as described in the 3D-HEVC WD. 343 TComVPS* pcVPS = pcPPS->getSPS()->getVPS(); 344 345 TComDLT* pcDLT = pcPPS->getDLT(); 346 347 WRITE_FLAG( pcDLT->getDltPresentFlag() ? 1 : 0, "dlt_present_flag" ); 348 349 if ( pcDLT->getDltPresentFlag() ) 350 { 351 WRITE_CODE(pcDLT->getNumDepthViews(), 6, "pps_depth_layers_minus1"); 352 WRITE_CODE((pcDLT->getDepthViewBitDepth() - 8), 4, "pps_bit_depth_for_depth_views_minus8"); 353 354 for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 355 { 356 if ( i != 0 ) 357 { 358 if ( pcVPS->getDepthId( i ) == 1 ) 359 { 360 WRITE_FLAG( pcDLT->getUseDLTFlag( i ) ? 1 : 0, "dlt_flag[i]" ); 361 362 if ( pcDLT->getUseDLTFlag( i ) ) 363 { 364 WRITE_FLAG( pcDLT->getInterViewDltPredEnableFlag( i ) ? 1 : 0, "inter_view_dlt_pred_enable_flag[ i ]"); 365 366 // ----------------------------- determine whether to use bit-map ----------------------------- 367 Bool bDltBitMapRepFlag = false; 368 UInt uiNumBitsNonBitMap = 0; 369 UInt uiNumBitsBitMap = 0; 370 371 UInt uiMaxDiff = 0; 372 UInt uiMinDiff = 0xffffffff; 373 UInt uiLengthMinDiff = 0; 374 UInt uiLengthDltDiffMinusMin = 0; 375 376 UInt* puiDltDiffValues = NULL; 377 378 Int aiIdx2DepthValue_coded[256]; 379 UInt uiNumDepthValues_coded = 0; 380 381 uiNumDepthValues_coded = pcDLT->getNumDepthValues(i); 382 for( UInt ui = 0; ui<uiNumDepthValues_coded; ui++ ) 383 { 384 aiIdx2DepthValue_coded[ui] = pcDLT->idx2DepthValue(i, ui); 385 } 386 387 #if H_3D_DELTA_DLT 388 if( pcDLT->getInterViewDltPredEnableFlag( i ) ) 389 { 390 AOF( pcVPS->getDepthId( 1 ) == 1 ); 391 AOF( i > 1 ); 392 // assumes ref layer id to be 1 393 Int* piRefDLT = pcDLT->idx2DepthValue( 1 ); 394 UInt uiRefNum = pcDLT->getNumDepthValues( 1 ); 395 pcDLT->getDeltaDLT(i, piRefDLT, uiRefNum, aiIdx2DepthValue_coded, &uiNumDepthValues_coded); 396 } 397 #endif 398 399 if ( NULL == (puiDltDiffValues = (UInt *)calloc(uiNumDepthValues_coded, sizeof(UInt))) ) 400 { 401 exit(-1); 402 } 403 404 for (UInt d = 1; d < uiNumDepthValues_coded; d++) 405 { 406 puiDltDiffValues[d] = aiIdx2DepthValue_coded[d] - aiIdx2DepthValue_coded[d-1]; 407 408 if ( uiMaxDiff < puiDltDiffValues[d] ) 409 { 410 uiMaxDiff = puiDltDiffValues[d]; 411 } 412 413 if ( uiMinDiff > puiDltDiffValues[d] ) 414 { 415 uiMinDiff = puiDltDiffValues[d]; 416 } 417 } 418 419 // counting bits 420 // diff coding branch 421 uiNumBitsNonBitMap += 8; // u(v) bits for num_depth_values_in_dlt[layerId] (i.e. num_entry[ layerId ]) 422 423 if ( uiNumDepthValues_coded > 1 ) 424 { 425 uiNumBitsNonBitMap += 8; // u(v) bits for max_diff[ layerId ] 426 } 427 428 if ( uiNumDepthValues_coded > 2 ) 429 { 430 uiLengthMinDiff = (UInt) ceil(Log2(uiMaxDiff + 1)); 431 uiNumBitsNonBitMap += uiLengthMinDiff; // u(v) bits for min_diff[ layerId ] 432 } 433 434 uiNumBitsNonBitMap += 8; // u(v) bits for dlt_depth_value0[ layerId ] 435 436 if (uiMaxDiff > uiMinDiff) 437 { 438 uiLengthDltDiffMinusMin = (UInt) ceil(Log2(uiMaxDiff - uiMinDiff + 1)); 439 uiNumBitsNonBitMap += uiLengthDltDiffMinusMin * (uiNumDepthValues_coded - 1); // u(v) bits for dlt_depth_value_diff_minus_min[ layerId ][ j ] 440 } 441 442 // bit map branch 443 uiNumBitsBitMap = 256; // uiNumBitsBitMap = 1 << pcDLT->getDepthViewBitDepth(); 444 445 // determine bDltBitMapFlag 446 bDltBitMapRepFlag = (uiNumBitsBitMap > uiNumBitsNonBitMap) ? false : true; 447 448 // ----------------------------- Actual coding ----------------------------- 449 if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false ) 450 { 451 WRITE_FLAG( bDltBitMapRepFlag ? 1 : 0, "dlt_bit_map_rep_flag[ layerId ]" ); 452 } 453 else 454 { 455 bDltBitMapRepFlag = false; 456 } 457 458 // bit map coding 459 if ( bDltBitMapRepFlag ) 460 { 461 UInt uiDltArrayIndex = 0; 462 for (UInt d=0; d < 256; d++) 463 { 464 if ( d == aiIdx2DepthValue_coded[uiDltArrayIndex] ) 465 { 466 WRITE_FLAG(1, "dlt_bit_map_flag[ layerId ][ j ]"); 467 uiDltArrayIndex++; 468 } 469 else 470 { 471 WRITE_FLAG(0, "dlt_bit_map_flag[ layerId ][ j ]"); 472 } 473 } 474 } 475 // Diff Coding 476 else 477 { 478 WRITE_CODE(uiNumDepthValues_coded, 8, "num_depth_values_in_dlt[i]"); // num_entry 479 480 #if !H_3D_DELTA_DLT 481 if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false ) // Single-view DLT Diff Coding 482 #endif 483 { 484 // The condition if( uiNumDepthValues_coded > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component. 485 if ( uiNumDepthValues_coded > 1 ) 486 { 487 WRITE_CODE(uiMaxDiff, 8, "max_diff[ layerId ]"); // max_diff 488 } 489 490 if ( uiNumDepthValues_coded > 2 ) 491 { 492 WRITE_CODE((uiMinDiff - 1), uiLengthMinDiff, "min_diff_minus1[ layerId ]"); // min_diff_minus1 493 } 494 495 WRITE_CODE(aiIdx2DepthValue_coded[0], 8, "dlt_depth_value0[layerId]"); // entry0 496 497 if (uiMaxDiff > uiMinDiff) 498 { 499 for (UInt d=1; d < uiNumDepthValues_coded; d++) 500 { 501 WRITE_CODE( (puiDltDiffValues[d] - uiMinDiff), uiLengthDltDiffMinusMin, "dlt_depth_value_diff_minus_min[ layerId ][ j ]"); // entry_value_diff_minus_min[ k ] 502 } 503 } 504 } 505 } 506 507 free(puiDltDiffValues); 508 } 509 } 510 } 511 } 512 } 513 } 514 #endif 292 #endif 293 294 } 295 515 296 516 297 Void TEncCavlc::codeVUI( TComVUI *pcVUI, TComSPS* pcSPS ) … … 676 457 } 677 458 678 #if H_3D679 Void TEncCavlc::codeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )680 #else681 459 Void TEncCavlc::codeSPS( TComSPS* pcSPS ) 682 #endif683 460 { 684 461 #if ENC_DEC_TRACE … … 884 661 WRITE_FLAG( pcSPS->getSpsRangeExtensionsFlag( ) ? 1 : 0 , "sps_range_extensions_flag" ); 885 662 WRITE_FLAG( pcSPS->getSpsMultilayerExtensionFlag( ) ? 1 : 0 , "sps_multilayer_extension_flag" ); 886 #if !H_3D887 663 WRITE_CODE( pcSPS->getSpsExtension6bits( ), 6, "sps_extension_6bits" ); 888 #else889 WRITE_FLAG( pcSPS->getSps3dExtensionFlag( ) ? 1 : 0 , "sps_3d_extension_flag" );890 WRITE_CODE( pcSPS->getSpsExtension5bits( ), 5, "sps_extension_5bits" );891 #endif892 664 } 893 665 … … 902 674 } 903 675 904 #if H_3D905 if ( pcSPS->getSps3dExtensionFlag() )906 {907 codeSPSExtension2( pcSPS, viewIndex, depthFlag );908 }909 910 #endif911 676 #endif 912 677 … … 948 713 #endif 949 714 950 #if H_3D951 Void TEncCavlc::codeSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )952 {953 #if H_3D_QTLPC954 #if !MTK_I0099_VPS_EX2955 //GT: This has to go to VPS956 if( depthFlag )957 {958 WRITE_FLAG( pcSPS->getUseQTL() ? 1 : 0, "use_qtl_flag");959 WRITE_FLAG( pcSPS->getUsePC() ? 1 : 0, "use_pc_flag");960 }961 #endif962 #endif963 }964 965 966 #endif967 715 968 716 … … 1068 816 m_pcBitIf->writeAlignOne(); 1069 817 codeVPSExtension( pcVPS ); 1070 #if H_3D1071 WRITE_FLAG( 1, "vps_extension2_flag" );1072 m_pcBitIf->writeAlignOne();1073 codeVPSExtension2( pcVPS );1074 WRITE_FLAG( 0, "vps_extension3_flag" );1075 #else1076 818 WRITE_FLAG( 0, "vps_extension2_flag" ); 1077 #endif1078 819 #else 1079 820 WRITE_FLAG( 0, "vps_extension_flag" ); … … 1802 1543 #endif 1803 1544 1804 #if H_3D1805 Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS )1806 {1807 #if SEC_VPS_CLEANUP_I00901808 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1809 #else1810 for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )1811 #endif1812 {1813 #if !SEC_VPS_CLEANUP_I00901814 if (i!= 0)1815 #endif1816 {1817 #if MTK_I0099_VPS_EX21818 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");1819 #if SEC_HLS_CLEANUP_I01001820 WRITE_FLAG( pcVPS->getIvMvScalingFlag( i ) ? 1 : 0 , "iv_mv_scaling_flag[i]" );1821 #endif1822 1823 #endif1824 if ( !( pcVPS->getDepthId( i ) == 1 ) )1825 {1826 #if H_3D_IV_MERGE1827 #if !MTK_I0099_VPS_EX21828 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");1829 #endif1830 #if H_3D_SPIVMP1831 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");1832 #endif1833 #endif1834 #if H_3D_ARP1835 WRITE_FLAG( pcVPS->getUseAdvRP ( i ) ? 1 : 0, "iv_res_pred_flag[i]" );1836 #endif1837 #if H_3D_NBDV_REF1838 WRITE_FLAG( pcVPS->getDepthRefinementFlag ( i ) ? 1 : 0 , "depth_refinement_flag[i]");1839 #endif1840 #if H_3D_VSP1841 WRITE_FLAG( pcVPS->getViewSynthesisPredFlag( i ) ? 1 : 0 , "view_synthesis_pred_flag[i]");1842 #endif1843 #if H_3D_DBBP1844 WRITE_FLAG( pcVPS->getUseDBBP( i ) ? 1 : 0, "use_dbbp_flag[i]" );1845 #endif1846 }1847 else1848 {1849 #if !MTK_I0099_VPS_EX21850 if(i!=1)1851 {1852 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");1853 }1854 #if H_3D_SPIVMP1855 if (i!=1)1856 {1857 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");1858 }1859 #endif1860 #endif1861 #if H_3D_IV_MERGE1862 WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 , "mpi_flag[i]" );1863 #endif1864 #if MTK_I0099_VPS_EX21865 WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]");1866 #endif1867 WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 , "vps_depth_modes_flag[i]" );1868 #if SEPARATE_FLAG_I00851869 WRITE_FLAG( pcVPS->getIVPFlag( i ) ? 1 : 0 , "IVP_flag[i]" );1870 #endif1871 #if MTK_I0099_VPS_EX21872 WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" );1873 #endif1874 1875 #if H_3D_INTER_SDC1876 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" );1877 #endif1878 }1879 }1880 }1881 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" );1882 #if SEC_VPS_CLEANUP_I00901883 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)1884 #else1885 for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)1886 #endif1887 {1888 WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" );1889 if ( pcVPS->getCamParPresent(viewIndex) )1890 {1891 WRITE_FLAG( pcVPS->hasCamParInSliceHeader(viewIndex) ? 1 : 0, "cp_in_slice_segment_header_flag[i]" );1892 if ( !pcVPS->hasCamParInSliceHeader(viewIndex) )1893 {1894 for( UInt uiIndex = 0; uiIndex < viewIndex; uiIndex++ )1895 {1896 WRITE_SVLC( pcVPS->getCodedScale (viewIndex)[ uiIndex ], "vps_cp_scale" );1897 WRITE_SVLC( pcVPS->getCodedOffset (viewIndex)[ uiIndex ], "vps_cp_off" );1898 WRITE_SVLC( pcVPS->getInvCodedScale (viewIndex)[ uiIndex ] + pcVPS->getCodedScale (viewIndex)[ uiIndex ], "vps_cp_inv_scale_plus_scale" );1899 WRITE_SVLC( pcVPS->getInvCodedOffset(viewIndex)[ uiIndex ] + pcVPS->getCodedOffset(viewIndex)[ uiIndex ], "vps_cp_inv_off_plus_off" );1900 }1901 }1902 }1903 }1904 #if !MTK_I0099_VPS_EX21905 WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3");1906 #endif1907 #if H_3D_TMVP1908 #if !SEC_HLS_CLEANUP_I01001909 WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 , "iv_mv_scaling_flag" );1910 #endif1911 #endif1912 }1913 #endif1914 1545 1915 1546 Void TEncCavlc::codeSliceHeader ( TComSlice* pcSlice ) … … 1952 1583 #endif 1953 1584 } 1954 #if PPS_FIX_DEPTH1955 if( pcSlice->getIsDepth() )1956 {1957 WRITE_UVLC( 1, "slice_pic_parameter_set_id" );1958 }1959 else1960 #endif1961 1585 WRITE_UVLC( pcSlice->getPPS()->getPPSId(), "slice_pic_parameter_set_id" ); 1962 1586 pcSlice->setDependentSliceSegmentFlag(!pcSlice->isNextSlice()); … … 2199 1823 { 2200 1824 Bool overrideFlag = (pcSlice->getNumRefIdx( REF_PIC_LIST_0 )!=pcSlice->getPPS()->getNumRefIdxL0DefaultActive()||(pcSlice->isInterB()&&pcSlice->getNumRefIdx( REF_PIC_LIST_1 )!=pcSlice->getPPS()->getNumRefIdxL1DefaultActive())); 2201 #if PPS_FIX_DEPTH2202 overrideFlag |= (pcSlice->getIsDepth() && !pcSlice->getViewIndex());2203 #endif2204 1825 WRITE_FLAG( overrideFlag ? 1 : 0, "num_ref_idx_active_override_flag"); 2205 1826 if (overrideFlag) … … 2221 1842 pcSlice->setNumRefIdx(REF_PIC_LIST_1, 0); 2222 1843 } 2223 #if PPS_FIX_DEPTH2224 if( (pcSlice->getPPS()->getListsModificationPresentFlag() || (pcSlice->getIsDepth() && !pcSlice->getViewIndex())) && pcSlice->getNumRpsCurrTempList() > 1)2225 #else2226 1844 if( pcSlice->getPPS()->getListsModificationPresentFlag() && pcSlice->getNumRpsCurrTempList() > 1) 2227 #endif2228 1845 { 2229 1846 TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification(); … … 2307 1924 xCodePredWeightTable( pcSlice ); 2308 1925 } 2309 #if H_3D_IC2310 #if SEC_HLS_CLEANUP_I01002311 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )2312 #else2313 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth())2314 #endif2315 {2316 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );2317 if( pcSlice->getApplyIC() )2318 {2319 WRITE_FLAG( pcSlice->getIcSkipParseFlag() ? 1 : 0, "ic_skip_mergeidx0" );2320 }2321 }2322 #endif2323 #if MTK_SINGLE_DEPTH_MODE_I00952324 if(pcSlice->getIsDepth())2325 {2326 WRITE_FLAG( pcSlice->getApplySingleDepthMode() ? 1 : 0, "slice_enable_single_depth_mode" );2327 }2328 #endif2329 #if H_3D_IV_MERGE2330 assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS_MEM);2331 #else2332 1926 assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS); 2333 #endif2334 1927 if (!pcSlice->isIntra()) 2335 1928 { 2336 #if H_3D_IV_MERGE2337 if(pcSlice->getIsDepth())2338 {2339 Bool bMPIFlag = pcSlice->getVPS()->getMPIFlag( pcSlice->getLayerIdInVps() ) ;2340 Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;2341 WRITE_UVLC( ( ( bMPIFlag || ivMvPredFlag ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");2342 }2343 else2344 {2345 Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;2346 WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");2347 }2348 #else2349 1929 WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); 2350 #endif2351 1930 } 2352 1931 Int iCode = pcSlice->getSliceQp() - ( pcSlice->getPPS()->getPicInitQPMinus26() + 26 ); … … 2384 1963 } 2385 1964 } 2386 #if H_3D2387 #if LGE_FCO_I01162388 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && pcSlice->getIsDepth() )2389 #else2390 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() )2391 #endif2392 {2393 for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ )2394 {2395 WRITE_SVLC( pcSlice->getCodedScale ()[ uiId ], "cp_scale" );2396 WRITE_SVLC( pcSlice->getCodedOffset ()[ uiId ], "cp_off" );2397 WRITE_SVLC( pcSlice->getInvCodedScale ()[ uiId ] + pcSlice->getCodedScale ()[ uiId ], "cp_inv_scale_plus_scale" );2398 WRITE_SVLC( pcSlice->getInvCodedOffset()[ uiId ] + pcSlice->getCodedOffset()[ uiId ], "cp_inv_off_plus_off" );2399 }2400 }2401 #endif2402 1965 2403 1966 … … 2734 2297 } 2735 2298 2736 #if H_3D_ARP 2737 Void TEncCavlc::codeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2299 2300 2301 Void TEncCavlc::codeInterModeFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiEncMode ) 2738 2302 { 2739 2303 assert(0); 2740 2304 } 2741 #endif 2742 2743 #if H_3D_IC 2744 Void TEncCavlc::codeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2305 2306 Void TEncCavlc::codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2745 2307 { 2746 2308 assert(0); 2747 2309 } 2748 #endif 2749 2750 Void TEncCavlc::codeInterModeFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiEncMode ) 2310 2311 Void TEncCavlc::codeSkipFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2751 2312 { 2752 2313 assert(0); 2753 2314 } 2754 2755 Void TEncCavlc::codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )2756 {2757 assert(0);2758 }2759 2760 Void TEncCavlc::codeSkipFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )2761 {2762 assert(0);2763 }2764 #if MTK_SINGLE_DEPTH_MODE_I00952765 Void TEncCavlc::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx )2766 {2767 assert(0);2768 }2769 #endif2770 2315 Void TEncCavlc::codeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2771 2316 { … … 3035 2580 } 3036 2581 3037 #if H_3D_INTER_SDC3038 Void TEncCavlc::codeDeltaDC( TComDataCU* pcCU, UInt uiAbsPartIdx )3039 {3040 assert(0);3041 }3042 3043 Void TEncCavlc::codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx )3044 {3045 assert(0);3046 }3047 3048 #endif3049 2582 3050 #if H_3D_DBBP3051 Void TEncCavlc::codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx )3052 {3053 assert(0);3054 }3055 #endif3056 2583 //! \}
Note: See TracChangeset for help on using the changeset viewer.