Changeset 976 in 3DVCSoftware for trunk/source/Lib/TLibDecoder
- Timestamp:
- 7 Jul 2014, 17:27:51 (11 years ago)
- Location:
- trunk/source/Lib/TLibDecoder
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/NALread.cpp
r964 r976 127 127 else 128 128 { 129 #if H_MV _HLS_8_GEN_Q0108_13129 #if H_MV 130 130 131 131 // If nal_unit_type is in the range of BLA_W_LP to RSV_IRAP_VCL23, inclusive, i.e. the coded -
trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
r964 r976 374 374 375 375 #if H_MV 376 #if H_MV_HLS_8_SPS_NODOC_48377 376 READ_FLAG( uiCode, "pps_range_extensions_flag" ); pcPPS->setPpsRangeExtensionsFlag( uiCode == 1 ); 378 377 READ_FLAG( uiCode, "pps_multilayer_extension_flag" ); pcPPS->setPpsMultilayerExtensionFlag( uiCode == 1 ); … … 390 389 if ( pcPPS->getPpsMultilayerExtensionFlag() ) 391 390 { 392 READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 ); 393 #if H_MV_HLS_8_PPS_NODOC_NN 394 READ_FLAG( uiCode, "pps_extension_reserved_zero_flag" ); 395 #endif 391 READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 ); 392 READ_FLAG( uiCode, "pps_extension_reserved_zero_flag" ); 396 393 } 397 394 #if !H_3D … … 406 403 { 407 404 #endif 408 #else 409 for ( Int i = 0; i < PPS_EX_T_MAX_NUM; i++ ) 410 { 411 READ_FLAG( uiCode, "pps_extension_type_flag" ); pcPPS->setPpsExtensionTypeFlag( i, uiCode == 1 ); 412 #if H_3D 413 assert( !pcPPS->getPpsExtensionTypeFlag( i ) || i == PPS_EX_T_MV || i == PPS_EX_T_3D || i == PPS_EX_T_ESC ); 414 #else 415 assert( !pcPPS->getPpsExtensionTypeFlag( i ) || i == PPS_EX_T_MV || i == PPS_EX_T_ESC ); 416 #endif 417 } 418 419 420 if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_MV ) ) 421 { 422 READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 ); 423 } 424 425 #if H_3D 426 if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_3D ) ) // This probably needs to be aligned with Rext and SHVC 427 { 428 parsePPSExtension( pcPPS, pcVPS ); 429 } 430 #endif 431 432 if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_ESC ) ) 433 { 434 #endif 405 435 406 #endif 436 407 … … 481 452 READ_FLAG(uiCode, "inter_view_dlt_pred_enable_flag[ i ]"); 482 453 483 #if MTK_DLT_CODING_FIX_H0091484 454 if( uiCode ) 485 455 { 486 456 assert( pcDLT->getUseDLTFlag( 1 )); 487 457 } 488 #endif489 490 458 pcDLT->setInterViewDltPredEnableFlag( i, (uiCode == 1) ? true : false ); 491 459 … … 795 763 { 796 764 #endif 797 READ_CODE( 3, uiCode, "sps_max_sub_layers_minus1" ); pcSPS->setMaxTLayers ( uiCode+1 );798 assert(uiCode <= 6);799 800 READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" ); pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false );801 if ( pcSPS->getMaxTLayers() == 1 )802 {803 // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0804 assert( uiCode == 1 );805 }806 807 parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1);765 READ_CODE( 3, uiCode, "sps_max_sub_layers_minus1" ); pcSPS->setMaxTLayers ( uiCode+1 ); 766 assert(uiCode <= 6); 767 768 READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" ); pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false ); 769 if ( pcSPS->getMaxTLayers() == 1 ) 770 { 771 // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0 772 assert( uiCode == 1 ); 773 } 774 775 parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1); 808 776 #if H_MV 809 777 } … … 823 791 { 824 792 #endif 825 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( uiCode );826 assert(uiCode <= 3);827 // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream828 assert (uiCode == 1);829 if( uiCode == 3 )830 {831 READ_FLAG( uiCode, "separate_colour_plane_flag"); assert(uiCode == 0);832 }833 834 READ_UVLC ( uiCode, "pic_width_in_luma_samples" ); pcSPS->setPicWidthInLumaSamples ( uiCode );835 READ_UVLC ( uiCode, "pic_height_in_luma_samples" ); pcSPS->setPicHeightInLumaSamples( uiCode );793 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( uiCode ); 794 assert(uiCode <= 3); 795 // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream 796 assert (uiCode == 1); 797 if( uiCode == 3 ) 798 { 799 READ_FLAG( uiCode, "separate_colour_plane_flag"); assert(uiCode == 0); 800 } 801 802 READ_UVLC ( uiCode, "pic_width_in_luma_samples" ); pcSPS->setPicWidthInLumaSamples ( uiCode ); 803 READ_UVLC ( uiCode, "pic_height_in_luma_samples" ); pcSPS->setPicHeightInLumaSamples( uiCode ); 836 804 #if H_MV 837 805 } … … 860 828 { 861 829 #endif 862 READ_UVLC( uiCode, "bit_depth_luma_minus8" );863 assert(uiCode <= 6);864 pcSPS->setBitDepthY( uiCode + 8 );865 pcSPS->setQpBDOffsetY( (Int) (6*uiCode) );866 867 READ_UVLC( uiCode, "bit_depth_chroma_minus8" );868 assert(uiCode <= 6);869 pcSPS->setBitDepthC( uiCode + 8 );870 pcSPS->setQpBDOffsetC( (Int) (6*uiCode) );830 READ_UVLC( uiCode, "bit_depth_luma_minus8" ); 831 assert(uiCode <= 6); 832 pcSPS->setBitDepthY( uiCode + 8 ); 833 pcSPS->setQpBDOffsetY( (Int) (6*uiCode) ); 834 835 READ_UVLC( uiCode, "bit_depth_chroma_minus8" ); 836 assert(uiCode <= 6); 837 pcSPS->setBitDepthC( uiCode + 8 ); 838 pcSPS->setQpBDOffsetC( (Int) (6*uiCode) ); 871 839 #if H_MV 872 840 } … … 880 848 { 881 849 #endif 882 UInt subLayerOrderingInfoPresentFlag;883 READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag");884 885 for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++)886 {887 READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]");888 pcSPS->setMaxDecPicBuffering( uiCode + 1, i);889 READ_UVLC ( uiCode, "sps_num_reorder_pics[i]" );890 pcSPS->setNumReorderPics(uiCode, i);891 READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]");892 pcSPS->setMaxLatencyIncrease( uiCode, i );893 894 if (!subLayerOrderingInfoPresentFlag)895 {896 for (i++; i <= pcSPS->getMaxTLayers()-1; i++)897 {898 pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i);899 pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(0), i);900 pcSPS->setMaxLatencyIncrease(pcSPS->getMaxLatencyIncrease(0), i);901 }902 break;903 }904 }850 UInt subLayerOrderingInfoPresentFlag; 851 READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag"); 852 853 for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++) 854 { 855 READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]"); 856 pcSPS->setMaxDecPicBuffering( uiCode + 1, i); 857 READ_UVLC ( uiCode, "sps_num_reorder_pics[i]" ); 858 pcSPS->setNumReorderPics(uiCode, i); 859 READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]"); 860 pcSPS->setMaxLatencyIncrease( uiCode, i ); 861 862 if (!subLayerOrderingInfoPresentFlag) 863 { 864 for (i++; i <= pcSPS->getMaxTLayers()-1; i++) 865 { 866 pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i); 867 pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(0), i); 868 pcSPS->setMaxLatencyIncrease(pcSPS->getMaxLatencyIncrease(0), i); 869 } 870 break; 871 } 872 } 905 873 #if H_MV 906 874 } … … 912 880 READ_UVLC( uiCode, "log2_diff_max_min_coding_block_size" ); 913 881 pcSPS->setLog2DiffMaxMinCodingBlockSize(uiCode); 914 882 915 883 if (pcSPS->getPTL()->getGeneralPTL()->getLevelIdc() >= Level::LEVEL5) 916 884 { 917 885 assert(log2MinCUSize + pcSPS->getLog2DiffMaxMinCodingBlockSize() >= 5); 918 886 } 919 887 920 888 Int maxCUDepthDelta = uiCode; 921 889 pcSPS->setMaxCUWidth ( 1<<(log2MinCUSize + maxCUDepthDelta) ); … … 948 916 { 949 917 #endif 950 READ_FLAG( uiCode, "sps_scaling_list_data_present_flag" ); pcSPS->setScalingListPresentFlag ( uiCode );951 if(pcSPS->getScalingListPresentFlag ())952 {953 parseScalingList( pcSPS->getScalingList() );954 }918 READ_FLAG( uiCode, "sps_scaling_list_data_present_flag" ); pcSPS->setScalingListPresentFlag ( uiCode ); 919 if(pcSPS->getScalingListPresentFlag ()) 920 { 921 parseScalingList( pcSPS->getScalingList() ); 922 } 955 923 #if H_MV 956 924 } … … 1017 985 { 1018 986 #if H_MV 1019 #if H_MV_HLS_8_SPS_NODOC_481020 987 READ_FLAG( uiCode, "sps_range_extensions_flag" ); pcSPS->setSpsRangeExtensionsFlag( uiCode == 1 ); 1021 988 READ_FLAG( uiCode, "sps_multilayer_extension_flag" ); pcSPS->setSpsMultilayerExtensionFlag( uiCode == 1 ); … … 1050 1017 { 1051 1018 #endif 1052 #else 1053 for (Int i = 0; i < PS_EX_T_MAX_NUM; i++) 1054 { 1055 READ_FLAG( uiCode, "sps_extension_type_flag" ); pcSPS->setSpsExtensionTypeFlag( i, uiCode ); 1056 #if H_3D 1057 assert( !pcSPS->getSpsExtensionTypeFlag( i ) || i == PS_EX_T_MV || i == PS_EX_T_3D || i == PS_EX_T_ESC ); 1058 #else 1059 assert( !pcSPS->getSpsExtensionTypeFlag( i ) || i == PS_EX_T_MV || i == PS_EX_T_ESC ); 1060 #endif 1061 } 1062 1063 if( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_MV )) 1064 { 1065 parseSPSExtension( pcSPS ); 1066 } 1067 1068 #if H_3D 1069 if( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_3D )) 1070 { 1071 parseSPSExtension2( pcSPS, viewIndex, depthFlag ); 1072 } 1073 #endif 1074 1075 if ( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_ESC )) 1076 { 1077 #endif 1078 #endif 1079 while ( xMoreRbspData() ) 1080 { 1081 READ_FLAG( uiCode, "sps_extension_data_flag"); 1082 } 1083 #if H_MV && !H_MV_HLS_8_SPS_NODOC_48 1084 } 1085 #endif 1019 1020 #endif 1021 while ( xMoreRbspData() ) 1022 { 1023 READ_FLAG( uiCode, "sps_extension_data_flag"); 1024 } 1086 1025 } 1087 1026 } … … 1132 1071 1133 1072 READ_CODE( 4, uiCode, "vps_video_parameter_set_id" ); pcVPS->setVPSId( uiCode ); 1134 #if H_MV _HLS_8_SYN_Q0041_031073 #if H_MV 1135 1074 READ_FLAG( uiCode, "vps_base_layer_internal_flag" ); pcVPS->setVpsBaseLayerInternalFlag( uiCode == 1 ); 1136 1075 READ_FLAG( uiCode, "vps_reserved_one_bit" ); assert( uiCode == 1 ); … … 1221 1160 } 1222 1161 } 1223 #if H_MV _HLS_8_RPS_Q0100_361162 #if H_MV 1224 1163 READ_FLAG( uiCode, "vps_extension_flag" ); pcVPS->setVpsExtensionFlag( uiCode == 1 ? true : false ); 1225 1164 if ( pcVPS->getVpsExtensionFlag() ) … … 1262 1201 { 1263 1202 UInt uiCode; 1264 #if !H_MV_HLS_8_SYN_Q0041_031265 READ_FLAG( uiCode, "avc_base_layer_flag" ); pcVPS->setAvcBaseLayerFlag( uiCode == 1 ? true : false );1266 #endif1267 1203 1268 1204 READ_FLAG( uiCode, "splitting_flag" ); pcVPS->setSplittingFlag( uiCode == 1 ? true : false ); … … 1384 1320 } 1385 1321 1386 #if H_MV_HLS_8_SYN_39_191387 1322 if ( pcVPS->getNumIndependentLayers() > 1 ) 1388 1323 { … … 1404 1339 pcVPS->initTargetLayerIdLists( ); 1405 1340 1406 #else1407 READ_UVLC( uiCode, "num_add_layer_sets" ); pcVPS->setNumAddLayerSets( uiCode );1408 pcVPS->initTargetLayerIdLists( );1409 if( pcVPS->getNumOutputLayerSets() > 1)1410 {1411 READ_CODE( 2, uiCode, "default_output_layer_idc" ); pcVPS->setDefaultOutputLayerIdc( std::min( uiCode, (UInt) 2 ) );1412 }1413 #endif1414 1341 1415 1342 pcVPS->setOutputLayerFlag(0, 0, pcVPS->inferOutputLayerFlag( 0, 0 )); … … 1420 1347 for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ ) 1421 1348 { 1422 #if H_MV_HLS_8_SYN_39_191423 1349 if( i >= pcVPS->getNumLayerSets( ) ) 1424 #else1425 if( i > pcVPS->getVpsNumLayerSetsMinus1( ) )1426 #endif1427 1350 { 1428 1351 READ_UVLC( uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode ); … … 1455 1378 } 1456 1379 1457 #if !H_MV_HLS_8_PMS_Q0195_201458 READ_FLAG( uiCode, "rep_format_idx_present_flag" ); pcVPS->setRepFormatIdxPresentFlag( uiCode == 1 );1459 if ( pcVPS->getRepFormatIdxPresentFlag() )1460 {1461 READ_UVLC( uiCode, "vps_num_rep_formats_minus1" ); pcVPS->setVpsNumRepFormatsMinus1( uiCode );1462 }1463 #else1464 1380 READ_UVLC( uiCode, "vps_num_rep_formats_minus1" ); pcVPS->setVpsNumRepFormatsMinus1( uiCode ); 1465 #endif1466 1381 1467 1382 for (Int i = 0; i <= pcVPS->getVpsNumRepFormatsMinus1(); i++ ) … … 1474 1389 } 1475 1390 1476 #if H_MV_HLS_8_PMS_Q0195_201477 1391 if ( pcVPS->getVpsNumRepFormatsMinus1() > 0 ) 1478 1392 { 1479 1393 READ_FLAG( uiCode, "rep_format_idx_present_flag" ); pcVPS->setRepFormatIdxPresentFlag( uiCode == 1 ); 1480 1394 } 1481 #endif1482 1395 if( pcVPS->getRepFormatIdxPresentFlag() ) 1483 1396 { 1484 #if H_MV_HLS_8_SYN_Q0041_031485 1397 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1486 #else 1487 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1488 #endif 1489 { 1490 #if !H_MV_HLS_8_PMS_Q0195_20 1491 if( pcVPS->getVpsNumRepFormatsMinus1() > 0 ) 1492 { 1493 #endif 1398 { 1494 1399 READ_CODE( pcVPS->getVpsRepFormatIdxLen(), uiCode, "vps_rep_format_idx[i]" ); pcVPS->setVpsRepFormatIdx( i, uiCode ); 1495 #if !H_MV_HLS_8_PMS_Q0195_20 1496 } 1497 #endif 1498 } 1499 } 1500 #if H_MV_HLS_8_PMS_Q0195_20 1400 } 1401 } 1501 1402 else 1502 1403 { 1503 #if H_MV_HLS_8_SYN_Q0041_031504 1404 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1505 #else1506 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1507 #endif1508 1405 { 1509 1406 pcVPS->setVpsRepFormatIdx( i, pcVPS->inferVpsRepFormatIdx( i ) ); 1510 1407 } 1511 1408 } 1512 #endif1513 1409 1514 1410 READ_FLAG( uiCode, "max_one_active_ref_layer_flag" ); pcVPS->setMaxOneActiveRefLayerFlag ( uiCode == 1 ); … … 1535 1431 } 1536 1432 1537 #if H_MV_HLS_8_SYN_Q0041_031538 1433 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 2; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1539 1434 { 1540 1435 for( Int j = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; j < i; j++ ) 1541 #else1542 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1543 {1544 for( Int j = 0; j < i; j++ )1545 #endif1546 1436 { 1547 1437 if (pcVPS->getDirectDependencyFlag( i, j) ) … … 1629 1519 if( pcVPSVUI->getBitRatePresentVpsFlag( ) || pcVPSVUI->getPicRatePresentVpsFlag( ) ) 1630 1520 { 1631 #if H_MV_HLS_8_SYN_Q0041_031632 1521 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i <= pcVPS->getVpsNumLayerSetsMinus1(); i++ ) 1633 #else 1634 for( Int i = 0; i <= pcVPS->getVpsNumLayerSetsMinus1(); i++ ) 1635 #endif 1636 { 1637 #if H_MV_HLS_8_MIS_Q0102_30 1522 { 1638 1523 for( Int j = 0; j <= pcVPS->getMaxSubLayersInLayerSetMinus1( i ); j++ ) 1639 #else1640 for( Int j = 0; j <= pcVPS->getMaxTLayers(); j++ )1641 #endif1642 1524 { 1643 1525 if( pcVPSVUI->getBitRatePresentVpsFlag( ) ) … … 1699 1581 if( !pcVPSVUI->getTilesNotInUseFlag() ) 1700 1582 { 1701 #if H_MV_HLS_8_SYN_Q0041_031702 1583 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1703 #else1704 for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )1705 #endif1706 1584 { 1707 1585 READ_FLAG( uiCode, "tiles_in_use_flag[i]" ); pcVPSVUI->setTilesInUseFlag( i, uiCode == 1 ); … … 1711 1589 } 1712 1590 } 1713 #if H_MV_HLS_8_SYN_Q0041_031714 1591 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 2; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1715 #else1716 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1717 #endif1718 1592 { 1719 1593 for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ) ; j++ ) … … 1746 1620 for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ); j++ ) 1747 1621 { 1748 #if H_MV_HLS_8_SYN_Q0041_031749 1622 if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getRefLayerId( pcVPS->getLayerIdInNuh( i ), j ) > 0 ) 1750 1623 { 1751 #endif1752 1624 READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcVPSVUI->setMinSpatialSegmentOffsetPlus1( i, j, uiCode ); 1753 1625 if( pcVPSVUI->getMinSpatialSegmentOffsetPlus1( i, j ) > 0 ) … … 1759 1631 } 1760 1632 } 1761 #if H_MV_HLS_8_SYN_Q0041_03 1762 } 1763 #endif 1633 } 1764 1634 } 1765 1635 } … … 1808 1678 for( Int i = 0; i < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); i++ ) 1809 1679 { 1810 #if H_MV_HLS_8_HRD_Q0101_041811 1680 for( Int j = 0; j < pcVPS->getNumLayersInIdList( h ); j++ ) 1812 1681 { 1813 1682 READ_FLAG( uiCode, "layer_in_bsp_flag" ); vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, uiCode == 1 ); 1814 #else1815 for( Int j = 0; j <= pcVPS->getMaxLayersMinus1(); j++ )1816 {1817 if( pcVPS->getLayerIdIncludedFlag( h ,j ) )1818 {1819 READ_FLAG( uiCode, "layer_in_bsp_flag" ); vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, uiCode == 1 );1820 }1821 else1822 {1823 vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, false ); // This inference seems to be missing in spec1824 }1825 #endif1826 1683 } 1827 1684 } … … 1831 1688 { 1832 1689 READ_UVLC( uiCode, "num_bsp_sched_combinations_minus1" ); vpsVuiBspHrdP->setNumBspSchedCombinationsMinus1( h, uiCode ); 1833 #if H_MV_HLS_8_HRD_Q0182_051834 1690 for( Int i = 0; i <= vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ ) 1835 #else1836 for( Int i = 0; i < vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )1837 #endif1838 1691 { 1839 1692 for( Int j = 0; j < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); j++ ) 1840 1693 { 1841 #if H_MV_HLS_8_HRD_Q0101_041842 1694 READ_CODE( vpsVuiBspHrdP->getBspCombHrdIdxLen(), uiCode, "bsp_comb_hrd_idx" ); vpsVuiBspHrdP->setBspCombHrdIdx( h, i, j, uiCode ); 1843 #else1844 READ_UVLC( uiCode, "bsp_comb_hrd_idx" ); vpsVuiBspHrdP->setBspCombHrdIdx( h, i, j, uiCode );1845 #endif1846 1695 READ_UVLC( uiCode, "bsp_comb_sched_idx" ); vpsVuiBspHrdP->setBspCombSchedIdx( h, i, j, uiCode ); 1847 #if H_MV_HLS_8_HRD_Q0101_041848 1696 vpsVuiBspHrdP->checkBspCombHrdAndShedIdx( pcVPS, h, i, j ); 1849 #endif1850 1697 } 1851 1698 } … … 1872 1719 for( Int i = 1; i < vps->getNumOutputLayerSets(); i++ ) 1873 1720 { 1874 #if H_MV_HLS_8_MIS_Q0102_301875 1721 Int currLsIdx = vps->olsIdxToLsIdx( i ); 1876 #endif1877 1722 READ_FLAG( uiCode, "sub_layer_flag_info_present_flag" ); dpbSize->setSubLayerFlagInfoPresentFlag( i, uiCode == 1 ); 1878 #if H_MV_HLS_8_MIS_Q0102_301879 1723 for( Int j = 0; j <= vps->getMaxSubLayersInLayerSetMinus1( currLsIdx ); j++ ) 1880 #else1881 for( Int j = 0; j <= vps->getMaxSubLayersInLayerSetMinus1( i ); j++ )1882 #endif1883 1724 { 1884 1725 if( j > 0 && dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) ) … … 1888 1729 if( dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) ) 1889 1730 { 1890 #if H_MV_HLS_8_MIS_Q0102_301891 1731 for( Int k = 0; k < vps->getNumLayersInIdList( currLsIdx ); k++ ) 1892 #else1893 for( Int k = 0; k < vps->getNumSubDpbs( vps->olsIdxToLsIdx( i )); k++ )1894 #endif1895 1732 { 1896 1733 READ_UVLC( uiCode, "max_vps_dec_pic_buffering_minus1" ); dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, uiCode ); … … 1903 1740 if ( j > 0 ) 1904 1741 { 1905 #if H_MV_HLS_8_DBP_NODOC_421906 1742 for( Int k = 0; k < vps->getNumLayersInIdList( vps->olsIdxToLsIdx( i ) ); k++ ) 1907 #else1908 for( Int k = 0; k < vps->getNumSubDpbs( vps->olsIdxToLsIdx( i ) ); k++ )1909 #endif1910 1743 { 1911 1744 dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) ); … … 1918 1751 } 1919 1752 } 1920 #endif1921 1753 1922 1754 #if H_3D … … 1939 1771 #if H_3D_IV_MERGE 1940 1772 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1941 #if QC_IV_PRED_CONSTRAINT_H01371942 1773 if( !pcVPS->getNumDirectRefLayers(i) ) 1943 1774 { 1944 1775 assert( !uiCode ); 1945 1776 } 1946 #endif1947 1777 #if H_3D_SPIVMP 1948 1778 READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]"); pcVPS->setSubPULog2Size(i, uiCode+3); … … 1951 1781 #if H_3D_ARP 1952 1782 READ_FLAG( uiCode, "iv_res_pred_flag[i]" ); pcVPS->setUseAdvRP ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 ); 1953 #if QC_IV_PRED_CONSTRAINT_H01371954 1783 if( !pcVPS->getNumDirectRefLayers(i) ) 1955 1784 { 1956 1785 assert( !uiCode ); 1957 1786 } 1958 #endif1959 1787 #endif 1960 1788 #if H_3D_NBDV_REF … … 1963 1791 #if H_3D_VSP 1964 1792 READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false ); 1965 #if QC_IV_PRED_CONSTRAINT_H01371966 1793 if( !pcVPS->getNumDirectRefLayers(i) ) 1967 1794 { 1968 1795 assert( !uiCode ); 1969 1796 } 1970 #endif1971 1797 #endif 1972 1798 #if H_3D_DBBP … … 1980 1806 { 1981 1807 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1982 #if QC_IV_PRED_CONSTRAINT_H01371983 1808 if( !pcVPS->getNumDirectRefLayers(i) ) 1984 1809 { 1985 1810 assert( !uiCode ); 1986 1811 } 1987 #endif1988 1812 } 1989 1813 #endif … … 2037 1861 } 2038 1862 #endif 2039 2040 #if H_MV _HLS_8_HRD_Q0102_081863 #endif 1864 #if H_MV 2041 1865 Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx) 2042 1866 #else … … 2081 1905 sps->inferRepFormat ( vps , rpcSlice->getLayerId() ); 2082 1906 sps->inferScalingList( parameterSetManager->getActiveSPS( sps->getSpsScalingListRefLayerId() ) ); 2083 #if H_MV_HLS_8_HRD_Q0102_082084 1907 sps->inferSpsMaxDecPicBufferingMinus1( vps, targetOlsIdx, rpcSlice->getLayerId(), false ); 2085 #endif2086 #if H_MV_HLS_8_RPS_Q0100_362087 1908 vps->inferDbpSizeLayerSetZero( sps, false ); 2088 #endif2089 1909 2090 1910 if ( sps->getVuiParametersPresentFlag() ) … … 2141 1961 } 2142 1962 2143 #if H 0044_POC_LSB_NOT_PRESENT1963 #if H_MV 2144 1964 UInt slicePicOrderCntLsb = 0; 2145 1965 #endif … … 2195 2015 2196 2016 #if H_MV 2197 #if !H0044_POC_LSB_NOT_PRESENT2198 UInt slicePicOrderCntLsb = 0;2199 #endif2200 2017 Int iPOClsb = slicePicOrderCntLsb; // Needed later 2201 2018 if ( (rpcSlice->getLayerId() > 0 && !vps->getPocLsbNotPresentFlag( rpcSlice->getLayerIdInVps())) || !rpcSlice->getIdrPicFlag() ) … … 2203 2020 READ_CODE(sps->getBitsForPOC(), slicePicOrderCntLsb, "slice_pic_order_cnt_lsb"); 2204 2021 } 2205 #if H_MV_HLS_8_POC_Q0142_322206 2022 rpcSlice->setSlicePicOrderCntLsb( slicePicOrderCntLsb ); 2207 #endif2208 2023 2209 2024 Bool picOrderCntMSBZeroFlag = false; … … 2301 2116 { 2302 2117 parseShortTermRefPicSet(sps,rps, sps->getRPSList()->getNumberOfReferencePictureSets()); 2303 #if H_MV _HLS_8_RPS_Q0100_362118 #if H_MV 2304 2119 if ( !rps->getInterRPSPrediction( ) ) 2305 2120 { // check sum of num_positive_pics and num_negative_pics … … 2414 2229 rps->setNumberOfPictures(offset); 2415 2230 } 2416 #if H_MV _HLS_8_RPS_Q0100_362231 #if H_MV 2417 2232 if ( !rps->getInterRPSPrediction( ) ) 2418 2233 { // check sum of NumPositivePics, NumNegativePics, num_long_term_sps and num_long_term_pics … … 2804 2619 rpcSlice->setPocResetIdc( 0 ); 2805 2620 } 2806 #if H_MV_HLS_8_POC_Q0142_322807 2621 rpcSlice->checkPocResetIdc(); 2808 #endif 2809 2810 #if H0044_POC_LSB_NOT_PRESENT 2622 2811 2623 if ( rpcSlice->getVPS()->getPocLsbNotPresentFlag(rpcSlice->getLayerId()) && slicePicOrderCntLsb > 0 ) 2812 2624 { 2813 2625 assert( rpcSlice->getPocResetIdc() != 2 ); 2814 2626 } 2815 #endif 2627 2816 2628 if( rpcSlice->getPocResetIdc() != 0 ) 2817 2629 { … … 2828 2640 READ_FLAG( uiCode, "full_poc_reset_flag" ); rpcSlice->setFullPocResetFlag( uiCode == 1 ); 2829 2641 READ_CODE( rpcSlice->getPocLsbValLen() , uiCode, "poc_lsb_val" ); rpcSlice->setPocLsbVal( uiCode ); 2830 #if !H_MV_HLS_8_POC_Q0142_322831 #if H0044_POC_LSB_NOT_PRESENT2832 if ( rpcSlice->getVPS()->getPocLsbNotPresentFlag(rpcSlice->getLayerId()) && rpcSlice->getFullPocResetFlag() )2833 {2834 assert( rpcSlice->getPocLsbVal() == 0 );2835 }2836 #endif2837 #endif2838 2642 } 2839 #if H_MV_HLS_8_POC_Q0142_322840 2643 rpcSlice->checkPocLsbVal(); 2841 #endif2842 2644 2843 2645 // Derive the value of PocMs8bValRequiredFlag … … 2852 2654 else 2853 2655 { 2854 #if H_MV_HLS_8_POC_Q0146_152855 2656 rpcSlice->setPocMsbValPresentFlag( rpcSlice->inferPocMsbValPresentFlag( ) ); 2856 #else2857 if( rpcSlice->getPocMsbValRequiredFlag() )2858 {2859 rpcSlice->setPocMsbValPresentFlag( true );2860 }2861 else2862 {2863 rpcSlice->setPocMsbValPresentFlag( false );2864 }2865 #endif2866 2657 } 2867 2658 -
trunk/source/Lib/TLibDecoder/TDecCAVLC.h
r964 r976 109 109 Void parseProfileTier (ProfileTierLevel *ptl); 110 110 Void parseHrdParameters (TComHRD *hrd, Bool cprms_present_flag, UInt tempLevelHigh); 111 #if H_MV _HLS_8_HRD_Q0102_08111 #if H_MV 112 112 Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx); 113 113 #else -
trunk/source/Lib/TLibDecoder/TDecCu.cpp
r964 r976 432 432 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 433 433 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 434 #if !ETRIKHU_CLEANUP_H0083435 ,vspFlag436 #endif437 434 , inheritedVSPDisInfo 438 435 #if H_3D_SPIVMP 439 #if !ETRIKHU_CLEANUP_H0083_MISSING440 , bSPIVMPFlag441 #endif442 436 , pcMvFieldSP, puhInterDirSP 443 437 #endif 444 438 , numValidMergeCand, uiMergeIndex ); 445 439 446 #if ETRIKHU_CLEANUP_H0083447 440 m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 448 441 #if H_3D_SPIVMP … … 450 443 #endif 451 444 , numValidMergeCand ); 452 #endif453 445 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 454 446 #else … … 797 789 } 798 790 799 #if RWTH_DBBP_NO_SPU_H0057800 791 AOF( pcCU->getARPW(uiPartAddr) == 0 ); 801 792 AOF( pcCU->getICFlag(uiPartAddr) == false ); 802 793 AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false ); 803 794 AOF( pcCU->getVSPFlag(uiPartAddr) == 0 ); 804 #else805 pDBBPTmpData->ahVSPFlag[uiSegment] = pcCU->getVSPFlag( uiPartAddr );806 pDBBPTmpData->acDvInfo[uiSegment] = pcCU->getDvInfo( uiPartAddr );807 #endif808 795 } 809 796 … … 814 801 { 815 802 pcCU->setInterDirSubParts( pDBBPTmpData->auhInterDir[uiSegment], 0, 0, uiDepth ); 816 817 #if !RWTH_DBBP_NO_SPU_H0057 818 pcCU->setVSPFlagSubParts( pDBBPTmpData->ahVSPFlag[uiSegment], 0, 0, uiDepth ); 819 pcCU->setDvInfoSubParts( pDBBPTmpData->acDvInfo[uiSegment], 0, 0, uiDepth ); 820 #endif 821 803 822 804 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) 823 805 { … … 839 821 840 822 pcCU->setDBBPFlagSubParts(true, uiPartAddr, uiSegment, uiDepth); 841 842 #if !RWTH_DBBP_NO_SPU_H0057843 pcCU->setVSPFlagSubParts( pDBBPTmpData->ahVSPFlag[uiSegment], uiPartAddr, uiSegment, uiDepth );844 pcCU->setDvInfoSubParts( pDBBPTmpData->acDvInfo[uiSegment], uiPartAddr, uiSegment, uiDepth );845 #endif846 847 823 pcCU->setInterDirSubParts(pDBBPTmpData->auhInterDir[uiSegment], uiPartAddr, uiSegment, uiDepth); // interprets depth relative to LCU level 848 824 … … 946 922 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 947 923 { 948 #if H_3D && !SEC_NO_RESI_DLT_H0105949 if ( useDltFlag )950 {951 pReco [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );952 }953 else954 {955 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );956 }957 #else958 924 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 959 #endif960 925 pRecIPred[ uiX ] = pReco[ uiX ]; 961 926 } … … 1257 1222 // get DC prediction for each segment 1258 1223 Pel apDCPredValues[2]; 1259 #if HS_DMM_SDC_PREDICTOR_UNIFY_H01081260 1224 if ( getDimType( uiLumaPredMode ) == DMM1_IDX || getDimType( uiLumaPredMode ) == DMM4_IDX ) 1261 1225 { … … 1264 1228 } 1265 1229 else 1266 #endif 1267 m_pcPrediction->analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode); 1230 { 1231 m_pcPrediction->analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode); 1232 } 1268 1233 1269 1234 // reconstruct residual based on mask + DC residuals -
trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
r950 r976 140 140 #if H_3D_DBBP 141 141 142 #if MTK_DBBP_SIGNALING_H0094143 142 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ) 144 #else145 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getPartitionSize(uiAbsPartIdx) == RWTH_DBBP_PACK_MODE )146 #endif147 143 { 148 144 decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth); … … 150 146 if( pcCU->getDBBPFlag(uiAbsPartIdx) ) 151 147 { 152 #if !MTK_DBBP_SIGNALING_H0094153 AOF( pcCU->getPartitionSize(uiAbsPartIdx) == RWTH_DBBP_PACK_MODE );154 #endif155 148 156 149 // get collocated depth block … … 169 162 pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth); 170 163 171 #if RWTH_DBBP_NO_SPU_H0057172 164 // make sure that DBBP flag is set for both segments 173 165 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4; 174 166 pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth); 175 167 pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx+uiPUOffset, 1, uiDepth); 176 #endif177 168 } 178 169 } … … 210 201 return; 211 202 } 212 #if !MTK_SDC_FLAG_FIX_H0095213 #if H_3D_DIM_SDC214 if( pcCU->getSDCFlag(uiAbsPartIdx) )215 {216 return;217 }218 #endif219 #endif220 203 221 204 m_pcEntropyDecoderIf->parseIPCMInfo( pcCU, uiAbsPartIdx, uiDepth ); … … 309 292 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 310 293 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 311 #if !ETRIKHU_CLEANUP_H0083312 ,vspFlag313 #endif314 294 , inheritedVSPDisInfo 315 295 #if H_3D_SPIVMP 316 #if !ETRIKHU_CLEANUP_H0083_MISSING317 , bSPIVMPFlag318 #endif319 296 , pcMvFieldSP, puhInterDirSP 320 297 #endif 321 298 , numValidMergeCand ); 322 323 #if ETRIKHU_CLEANUP_H0083324 299 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 325 300 #if H_3D_SPIVMP … … 327 302 #endif 328 303 , numValidMergeCand ); 329 #endif330 304 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 331 305 … … 361 335 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 362 336 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours 363 #if !ETRIKHU_CLEANUP_H0083364 , vspFlag365 #endif366 337 , inheritedVSPDisInfo 367 338 #if H_3D_SPIVMP 368 #if !ETRIKHU_CLEANUP_H0083_MISSING369 , bSPIVMPFlag370 #endif371 339 , pcMvFieldSP, puhInterDirSP 372 340 #endif 373 341 ,numValidMergeCand, uiMergeIndex ); 374 375 #if ETRIKHU_CLEANUP_H0083376 342 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 377 343 #if H_3D_SPIVMP … … 379 345 #endif 380 346 ,numValidMergeCand ); 381 #endif382 347 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 383 348 if(vspFlag[uiMergeIndex]) -
trunk/source/Lib/TLibDecoder/TDecEntropy.h
r964 r976 77 77 #endif 78 78 79 #if H_MV _HLS_8_HRD_Q0102_0879 #if H_MV 80 80 virtual Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx ) = 0; 81 81 #else … … 164 164 Void decodePPS ( TComPPS* pcPPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS); } 165 165 #endif 166 #if H_MV _HLS_8_HRD_Q0102_08166 #if H_MV 167 167 Void decodeSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx) { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager, targetOlsIdx ); } 168 168 #else -
trunk/source/Lib/TLibDecoder/TDecGop.cpp
r964 r976 248 248 calcAndPrintHashStatus(*rpcPic->getPicYuvRec(), hash); 249 249 } 250 251 #if !H_MV_HLS_7_VPS_P0300_27252 #if SETTING_PIC_OUTPUT_MARK253 rpcPic->setOutputMark(rpcPic->getSlice(0)->getPicOutputFlag() ? true : false);254 #else255 rpcPic->setOutputMark(true);256 #endif257 rpcPic->setReconMark(true);258 #endif259 250 } 260 251 -
trunk/source/Lib/TLibDecoder/TDecSbac.cpp
r964 r976 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 ); … … 386 377 uiCount++; 387 378 } 388 #if QC_SIMP_DELTADC_CODING_H0131389 379 while( uiSymbol && ( uiCount != 3 ) ); 390 #else391 while( uiSymbol && ( uiCount != 13 ) );392 #endif393 380 ruiSymbol = uiCount - 1; 394 381 … … 426 413 for( Int i = 0; i < iNumBit; i++ ) 427 414 { 428 #if MTK_DMM_SIMP_CODE_H0092 429 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 430 #else 431 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm1DataSCModel.get(0, 0, 0) ); 432 #endif 415 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 433 416 uiIdx += uiSymbol << i; 434 417 } … … 1137 1120 if( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() >> pcCU->getDepth( absPartIdx ) ) < 64 ) //DMM and HEVC intra modes are both allowed 1138 1121 { 1139 #if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H01351140 1122 m_pcTDecBinIf->decodeBin( uiSymbol, m_cAngleFlagSCModel.get( 0, 0, 0 ) ); 1141 #else1142 m_pcTDecBinIf->decodeBin( uiSymbol, m_cAngleFlagSCModel.get( 0, 0, pcCU->getCtxAngleFlag( absPartIdx ) ) );1143 #endif1144 1123 } 1145 1124 else … … 2081 2060 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 2082 2061 uiNumSegments = isDimMode( dir ) ? 2 : 1; 2083 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H01132084 2062 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2085 #else2086 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) );2087 #endif2088 2063 if( pcCU->getSDCFlag( absPartIdx ) ) 2089 2064 { … … 2156 2131 Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2157 2132 { 2158 #if !MTK_DBBP_SIGNALING_H00942159 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );2160 #endif2161 2133 AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ); 2162 2134 AOF( !pcCU->getSlice()->getIsDepth() ); 2163 #if !MTK_DBBP_SIGNALING_H00942164 AOF( ePartSize == RWTH_DBBP_PACK_MODE );2165 #endif2166 2135 2167 2136 UInt uiSymbol = 0; … … 2172 2141 { 2173 2142 pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth); 2174 #if MTK_DIS_SPBIP8X4_H02052175 2143 UInt uiCurrPartNumQ = (pcCU->getPic()->getNumPartInCU() >> (2 * uiDepth)) >> 2; 2176 2144 pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx + 2*uiCurrPartNumQ, 1, uiDepth); 2177 #endif2178 2145 } 2179 2146 } -
trunk/source/Lib/TLibDecoder/TDecSbac.h
r964 r976 87 87 #endif 88 88 89 #if H_MV _HLS_8_HRD_Q0102_0889 #if H_MV 90 90 Void parseSliceHeader ( TComSlice*& /*rpcSlice*/, ParameterSetManagerDecoder* /*parameterSetManager*/, Int targetOlsIdx ) {} 91 91 #else 92 Void parseSliceHeader ( TComSlice*& /*rpcSlice*/, ParameterSetManagerDecoder* /*parameterSetManager*/ ) {}92 Void parseSliceHeader ( TComSlice*& /*rpcSlice*/, ParameterSetManagerDecoder* /*parameterSetManager*/ ) {} 93 93 #endif 94 94 Void parseTerminatingBit ( UInt& ruiBit ); … … 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; -
trunk/source/Lib/TLibDecoder/TDecSlice.cpp
r950 r976 221 221 } 222 222 } 223 #if MTK_DLT_CODING_FIX_H0091223 #if H_3D 224 224 if( pcSlice->getPPS()->getDLT() != NULL ) 225 225 { -
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r964 r976 371 371 m_isNoOutputPriorPics = false; 372 372 #endif 373 #if H 0056_EOS_CHECKS373 #if H_MV 374 374 m_isLastNALWasEos = false; 375 #endif376 #if H_MV377 375 m_layerId = 0; 378 376 m_viewId = 0; … … 382 380 m_pcCamParsCollector = 0; 383 381 #endif 384 #if H_MV _HLS_8_HRD_Q0102_08382 #if H_MV 385 383 m_targetOptLayerSetIdx = -1; 386 384 #endif … … 511 509 { 512 510 rpcPic->setOutputMark(false); 513 #if H_MV _HLS_7_VPS_P0300_27511 #if H_MV 514 512 rpcPic->setPicOutputFlag(false); 515 513 #endif … … 521 519 { 522 520 rpcPic->setOutputMark(false); 523 #if H_MV _HLS_7_VPS_P0300_27521 #if H_MV 524 522 rpcPic->setPicOutputFlag(false); 525 523 #endif … … 568 566 TComSlice::markIvRefPicsAsShortTerm( m_refPicSetInterLayer0, m_refPicSetInterLayer1 ); 569 567 TComSlice::markCurrPic( pcPic ); 570 #if !H_MV_HLS_8_DBP_NODOC_42571 TComSlice::markIvRefPicsAsUnused ( m_ivPicLists, targetDecLayerIdSet, m_parameterSetManagerDecoder.getActiveVPS(), m_layerId, poc );572 #endif573 568 #endif 574 569 m_bFirstSliceInPicture = true; … … 590 585 { 591 586 pcPicTmp->setOutputMark(false); 592 #if H_MV _HLS_7_VPS_P0300_27587 #if H_MV 593 588 pcPicTmp->setPicOutputFlag(false); 594 589 #endif … … 670 665 } 671 666 672 #if H_MV _HLS_8_HRD_Q0102_08667 #if H_MV 673 668 sps->inferSpsMaxDecPicBufferingMinus1( vps, m_targetOptLayerSetIdx, getLayerId(), false ); 674 #endif675 676 #if H_MV_HLS_8_RPS_Q0100_36677 669 vps->inferDbpSizeLayerSetZero( sps, false ); 678 #endif679 680 #if H_MV_HLS_8_PMS_Q0195_21681 670 // When the value of vps_num_rep_formats_minus1 in the active VPS is equal to 0 682 671 if ( vps->getVpsNumRepFormatsMinus1() == 0 ) … … 685 674 assert( sps->getUpdateRepFormatFlag() == false ); 686 675 } 687 #endif688 689 #if H_MV_HLS_8_RPS_Q0100_36690 676 sps->checkRpsMaxNumPics( vps, getLayerId() ); 691 #endif692 693 #if H_MV_HLS_8_MIS_Q0177_22694 677 if( m_layerId > 0 ) 695 678 { … … 787 770 m_apcSlicePilot->setRefPicSetInterLayer( & m_refPicSetInterLayer0, &m_refPicSetInterLayer1 ); 788 771 m_apcSlicePilot->setLayerId( nalu.m_layerId ); 789 #endif790 791 #if H_MV_HLS_8_HRD_Q0102_08792 772 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_targetOptLayerSetIdx ); 793 #else794 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder);795 773 #endif 796 774 // set POC for dependent slices in skipped pictures … … 1340 1318 case NAL_UNIT_VPS: 1341 1319 xDecodeVPS(); 1342 #if H 0056_EOS_CHECKS1320 #if H_MV 1343 1321 m_isLastNALWasEos = false; 1344 1322 #endif … … 1355 1333 case NAL_UNIT_PREFIX_SEI: 1356 1334 case NAL_UNIT_SUFFIX_SEI: 1357 #if H 0056_EOS_CHECKS1335 #if H_MV 1358 1336 if ( nalu.m_nalUnitType == NAL_UNIT_SUFFIX_SEI ) 1359 1337 { … … 1380 1358 case NAL_UNIT_CODED_SLICE_RASL_N: 1381 1359 case NAL_UNIT_CODED_SLICE_RASL_R: 1382 #if H 0056_EOS_CHECKS1360 #if H_MV 1383 1361 if (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_N || 1384 1362 nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_N || … … 1393 1371 m_isLastNALWasEos = false; 1394 1372 } 1395 #endif 1396 #if H_MV 1373 1397 1374 return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay, newLayerFlag, sliceSkippedFlag ); 1398 1375 #else … … 1401 1378 break; 1402 1379 case NAL_UNIT_EOS: 1403 #if H 0056_EOS_CHECKS1380 #if H_MV 1404 1381 assert( m_isLastNALWasEos == false ); 1405 1382 //Check layer id of the nalu. if it is not 0, give a warning message and just return without doing anything. -
trunk/source/Lib/TLibDecoder/TDecTop.h
r964 r976 195 195 Bool* m_layerInitilizedFlag; // initialization Layers 196 196 static ParameterSetManagerDecoder m_parameterSetManagerDecoder; // storage for parameter sets 197 #if H_MV_HLS_8_HRD_Q0102_08198 197 Int m_targetOptLayerSetIdx; 199 #endif200 198 #else 201 199 ParameterSetManagerDecoder m_parameterSetManagerDecoder; // storage for parameter sets … … 234 232 Bool m_craNoRaslOutputFlag; //value of variable NoRaslOutputFlag of the last CRA pic 235 233 #endif 236 #if H 0056_EOS_CHECKS234 #if H_MV 237 235 Bool m_isLastNALWasEos; 238 236 #endif … … 271 269 Void deletePicBuffer(); 272 270 #if H_MV 273 #if H_MV_HLS_7_VPS_P0300_27274 271 TComVPS* getActiveVPS() { return m_parameterSetManagerDecoder.getActiveVPS( ); } 275 #endif276 272 TComSPS* getActiveSPS() { return m_parameterSetManagerDecoder.getActiveSPS( m_layerId ); } 277 273 #else … … 296 292 Void setIvPicLists ( TComPicLists* picLists) { m_ivPicLists = picLists; } 297 293 Void setLayerInitilizedFlags( Bool* val ) { m_layerInitilizedFlag = val; } 298 #if H_MV_HLS_8_HRD_Q0102_08299 294 Void setTargetOptLayerSetIdx( Int targetOptLayerSetIdx ) { m_targetOptLayerSetIdx = targetOptLayerSetIdx; } 300 #endif301 295 TComVPS* getPrefetchedVPS () { return m_parameterSetManagerDecoder.getPrefetchedVPS( 0 ); }; //Assuming that currently only one VPS is present. 302 296 Int getCurrPoc () { return m_apcSlicePilot->getPOC(); }
Note: See TracChangeset for help on using the changeset viewer.