Changeset 882 in 3DVCSoftware for branches/HTM-10.1-dev0/source/Lib
- Timestamp:
- 28 Mar 2014, 01:17:13 (11 years ago)
- Location:
- branches/HTM-10.1-dev0/source/Lib
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-10.1-dev0/source/Lib/TLibCommon/SEI.h
r872 r882 72 72 SCALABLE_NESTING = 133, 73 73 REGION_REFRESH_INFO = 134, 74 #if H_MV _HLS_7_SEI_P0204_2674 #if H_MV 75 75 SUB_BITSTREAM_PROPERTY = 139, // Final PayloadType to be defined after finalization 76 76 #endif … … 366 366 }; 367 367 368 #if H_MV _HLS_7_SEI_P0204_26368 #if H_MV 369 369 class SEISubBitstreamProperty : public SEI 370 370 { -
branches/HTM-10.1-dev0/source/Lib/TLibCommon/TComSlice.cpp
r881 r882 112 112 , m_interLayerPredEnabledFlag (false) 113 113 , m_numInterLayerRefPicsMinus1 (0) 114 #if H_MV _HLS_7_POC_P0041114 #if H_MV 115 115 , m_sliceSegmentHeaderExtensionLength (0) 116 116 , m_pocResetIdc (0) … … 1284 1284 1285 1285 1286 1287 1286 /** Function for applying picture marking based on the Reference Picture Set in pReferencePictureSet. 1288 1287 */ … … 1340 1339 1341 1340 } 1342 #if H_MV _HLS_7_MISC_P0130_201341 #if H_MV 1343 1342 if( isReference ) // Current picture is in the temporal RPS 1344 1343 { … … 1727 1726 } 1728 1727 } 1729 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271730 m_vpsNumberLayerSetsMinus1 = -1;1731 #endif1732 1728 m_vpsNumProfileTierLevelMinus1 = -1; 1733 1729 1734 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271735 for ( Int i = 0; i < MAX_VPS_PROFILE_TIER_LEVEL; i++)1736 {1737 #if !H_MV_HLS_7_VPS_P0048_141738 m_profileRefMinus1[ i ] = -1;1739 #endif1740 }1741 1742 m_moreOutputLayerSetsThanDefaultFlag = false;1743 m_numAddOutputLayerSetsMinus1 = -1;1744 m_defaultOneTargetOutputLayerIdc = 0;1745 #else1746 1730 m_numAddOutputLayerSets = -1; 1747 1731 m_defaultTargetOutputLayerIdc = 0; 1748 #endif1749 1732 1750 1733 for ( Int i = 0; i < MAX_VPS_OUTPUTLAYER_SETS; i++) … … 1756 1739 m_outputLayerFlag[i][j] = false; 1757 1740 } 1758 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271759 1741 m_altOutputLayerFlag[ i ] = false; 1760 #endif 1761 } 1762 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27 1763 m_altOutputLayerFlag = false; 1764 #endif 1742 } 1765 1743 m_maxOneActiveRefLayerFlag = false; 1766 1744 m_directDepTypeLenMinus2 = 0; … … 1768 1746 1769 1747 m_avcBaseLayerFlag = false; 1770 #if H_MV_HLS_7_VPS_P0307_231771 1748 m_vpsNonVuiExtensionLength = 0; 1772 #else1773 m_vpsVuiOffset = 0;1774 #endif1775 1749 m_splittingFlag = false; 1776 1750 … … 1786 1760 { 1787 1761 m_vpsProfilePresentFlag [i] = false; 1788 #if !H_MV_HLS_7_VPS_P0048_141789 m_profileRefMinus1[i] = 0;1790 #endif1791 1762 m_outputLayerSetIdxMinus1 [i] = 0; 1792 1763 for( Int j = 0; j < MAX_VPS_NUH_LAYER_ID_PLUS1; j++ ) … … 2099 2070 Int TComVPS::getNumOutputLayerSets() 2100 2071 { 2101 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_272102 2072 return getNumAddOutputLayerSets() + getVpsNumLayerSetsMinus1() + 1; 2103 #else2104 Int numOutputLayerSets = getVpsNumberLayerSetsMinus1( ) + 1;2105 if ( getMoreOutputLayerSetsThanDefaultFlag( ) )2106 {2107 numOutputLayerSets += (getNumAddOutputLayerSetsMinus1( ) + 1);2108 }2109 return numOutputLayerSets;2110 #endif2111 2073 } 2112 2074 … … 2156 2118 } 2157 2119 2158 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_272159 2120 Void TComVPS::initTargetLayerIdLists() 2160 2121 { … … 2176 2137 } 2177 2138 } 2178 #else 2179 Void TComVPS::deriveTargetLayerIdLists() 2180 { 2181 m_targetDecLayerIdLists.resize( getNumOutputLayerSets() ); 2182 m_targetOptLayerIdLists.resize( getNumOutputLayerSets() ); 2183 2184 for (Int targetOptLayerSetIdx = 0; targetOptLayerSetIdx < getNumOutputLayerSets(); targetOptLayerSetIdx++ ) 2185 { 2186 Int targetDecLayerSetIdx = getOutputLayerSetIdxMinus1( targetOptLayerSetIdx ) + 1; 2187 Int lsIdx = targetDecLayerSetIdx; 2188 2189 for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ ) 2190 { 2191 m_targetDecLayerIdLists[targetOptLayerSetIdx].push_back( m_layerSetLayerIdList[ lsIdx ][ j ] ); 2192 if( getOutputLayerFlag( targetOptLayerSetIdx, j )) // This seems to be wrong in draft text 2193 { 2194 m_targetOptLayerIdLists[targetOptLayerSetIdx].push_back( m_layerSetLayerIdList[ lsIdx ][ j ] ); 2195 } 2196 } 2197 } 2198 } 2199 #endif 2139 2140 Bool TComVPS::inferOutputLayerFlag( Int i, Int j ) 2141 { 2142 Bool outputLayerFlag; 2143 switch ( getDefaultTargetOutputLayerIdc( ) ) 2144 { 2145 case 0: 2146 outputLayerFlag = true; 2147 break; 2148 case 1: 2149 outputLayerFlag = ( j == m_layerSetLayerIdList[ getLayerSetIdxForOutputLayerSet( i ) ].size() - 1 ); 2150 break; 2151 case 2: 2152 if ( i == 0 && j == 0) 2153 { 2154 outputLayerFlag = true; // This is a software only fix for a bug in the spec. In spec outputLayerFlag is neither present nor inferred. 2155 } 2156 else 2157 { 2158 assert( 0 ); 2159 } 2160 break; 2161 default: 2162 assert( 0 ); 2163 break; 2164 } 2165 return outputLayerFlag; 2166 } 2200 2167 2201 2168 #endif // H_MV … … 2445 2412 , m_ppsInferScalingListFlag(false) 2446 2413 , m_ppsScalingListRefLayerId(0) 2447 #if H_MV_HLS_7_POC_P00412448 2414 , m_pocResetInfoPresentFlag(false) 2449 #endif2450 2415 #if H_3D 2451 2416 , m_pcDLT(NULL) … … 2455 2420 m_scalingList = new TComScalingList; 2456 2421 2457 #if H_MV _HLS_7_GEN_P0166_PPS_EXTENSION2422 #if H_MV 2458 2423 for( Int i = 0; i < PS_EX_T_MAX_NUM; i++ ) 2459 2424 { … … 2461 2426 } 2462 2427 #endif 2463 2464 2428 } 2465 2429 … … 2980 2944 // Consider to check here: 2981 2945 // "If the current picture is a RADL picture, there shall be no entry in the RefPicSetInterLayer0 and RefPicSetInterLayer1 that is a RASL picture. " 2982 #if H_MV_HLS_7_MISC_P0130_202983 2946 assert( picRef->getSlice(0)->getDiscardableFlag() == false ); // "There shall be no picture that has discardable_flag equal to 1 in RefPicSetInterLayer0 or RefPicSetInterLayer1". 2984 #endif2985 2947 } 2986 2948 } … … 3018 2980 { 3019 2981 break; 3020 }2982 } 3021 2983 } 3022 2984 … … 3028 2990 if ( pcPic ) 3029 2991 { 3030 if( pcPic->getSlice(0)->isReferenced() && pcPic->getSlice(0)->getTemporalLayerNonReferenceFlag() ) 3031 { 3032 Bool remainingInterLayerReferencesFlag = false; 3033 for( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ ) 2992 if( pcPic->getSlice(0)->isReferenced() && pcPic->getSlice(0)->getTemporalLayerNonReferenceFlag() ) 3034 2993 { 3035 TComVPS* vpsSlice = pcPic->getSlice(0)->getVPS(); 3036 if ( vps->nuhLayerIdIncluded( targetDecLayerIdSet[ j ] ) ) 2994 Bool remainingInterLayerReferencesFlag = false; 2995 for( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ ) 2996 { 2997 TComVPS* vpsSlice = pcPic->getSlice(0)->getVPS(); 2998 if ( vps->nuhLayerIdIncluded( targetDecLayerIdSet[ j ] ) ) 2999 { 3000 for( Int k = 0; k < vpsSlice->getNumDirectRefLayers( targetDecLayerIdSet[ j ] ); k++ ) 3001 { 3002 if ( targetDecLayerIdSet[ i ] == vpsSlice->getRefLayerId( targetDecLayerIdSet[ j ], k ) ) 3003 { 3004 remainingInterLayerReferencesFlag = true; 3005 } 3006 } 3007 } 3008 } 3009 if( !remainingInterLayerReferencesFlag ) 3037 3010 { 3038 for( Int k = 0; k < vpsSlice->getNumDirectRefLayers( targetDecLayerIdSet[ j ] ); k++ ) 3039 { 3040 if ( targetDecLayerIdSet[ i ] == vpsSlice->getRefLayerId( targetDecLayerIdSet[ j ], k ) ) 3041 { 3042 remainingInterLayerReferencesFlag = true; 3011 pcPic->getSlice(0)->setReferenced( false ); 3043 3012 } 3044 3013 } 3045 } 3046 } 3047 if( !remainingInterLayerReferencesFlag ) 3048 { 3049 pcPic->getSlice(0)->setReferenced( false ); 3050 } 3051 } 3052 } 3053 } 3054 } 3014 } 3015 } 3016 } 3055 3017 } 3056 3018 … … 3157 3119 Int numActiveRefLayerPics; 3158 3120 3159 #if H_MV_HLS_7_MISC_P0079_183160 3121 if( getLayerId() == 0 || getNumRefLayerPics() == 0 ) 3161 #else3162 if( getLayerId() == 0 || getVPS()->getNumDirectRefLayers( getLayerId() ) == 0 )3163 #endif3164 3122 { 3165 3123 numActiveRefLayerPics = 0; … … 3175 3133 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 ) 3176 3134 { 3177 #if H_MV_HLS_7_MISC_P0079_183178 3135 numActiveRefLayerPics = 1; 3179 #else3180 numActiveRefLayerPics = getRefLayerPicFlag( 0 ) ? 1 : 0;3181 #endif3182 3136 } 3183 3137 else … … 3828 3782 { 3829 3783 m_crossLayerIrapAlignedFlag = true; 3830 #if H_MV_HLS_7_MISC_P0068_213831 3784 m_allLayersIdrAlignedFlag = false; 3832 #endif3833 3785 m_bitRatePresentVpsFlag = false; 3834 3786 m_picRatePresentVpsFlag = false; … … 3857 3809 m_minHorizontalCtuOffsetPlus1 [i][j] = -1; 3858 3810 } 3859 #if H_MV_HLS_7_MISC_P0182_133860 3811 m_baseLayerParameterSetCompatibilityFlag[i] = false; 3861 #endif3862 3812 } 3863 3813 for ( Int i = 0; i < MAX_NUM_VIDEO_SIGNAL_INFO; i++ ) -
branches/HTM-10.1-dev0/source/Lib/TLibCommon/TComSlice.h
r881 r882 473 473 Bool m_crossLayerPicTypeAlignedFlag; 474 474 Bool m_crossLayerIrapAlignedFlag; 475 #if H_MV_HLS_7_MISC_P0068_21476 475 Bool m_allLayersIdrAlignedFlag; 477 #endif478 476 Bool m_bitRatePresentVpsFlag; 479 477 Bool m_picRatePresentVpsFlag; … … 484 482 Int m_constantPicRateIdc [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER]; 485 483 Int m_avgPicRate [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER]; 486 #if H_MV_HLS_7_VPS_P0076_15487 484 Bool m_videoSignalInfoIdxPresentFlag; 488 485 Int m_vpsNumVideoSignalInfoMinus1; 489 486 TComVideoSignalInfo* m_videoSignalInfo[MAX_NUM_VIDEO_SIGNAL_INFO]; 490 487 Int m_vpsVideoSignalInfoIdx [MAX_NUM_VIDEO_SIGNAL_INFO]; 491 #endif492 488 Bool m_tilesNotInUseFlag; 493 489 Bool m_tilesInUseFlag [MAX_NUM_LAYERS]; … … 500 496 Bool m_ctuBasedOffsetEnabledFlag [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 501 497 Int m_minHorizontalCtuOffsetPlus1 [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 502 #if !H_MV_HLS_7_VPS_P0076_15503 Bool m_videoSignalInfoIdxPresentFlag;504 Int m_vpsNumVideoSignalInfoMinus1;505 TComVideoSignalInfo* m_videoSignalInfo[MAX_NUM_VIDEO_SIGNAL_INFO];506 Int m_vpsVideoSignalInfoIdx [MAX_NUM_VIDEO_SIGNAL_INFO];507 #endif508 498 Bool m_vpsVuiBspHrdPresentFlag; 509 499 TComVpsVuiBspHrdParameters* m_vpsVuiBspHrdParameters; 510 #if H_MV_HLS_7_MISC_P0182_13511 500 Bool m_baseLayerParameterSetCompatibilityFlag[MAX_NUM_LAYERS]; 512 #endif513 501 514 502 public: … … 521 509 Bool getCrossLayerIrapAlignedFlag( ) { return m_crossLayerIrapAlignedFlag; } 522 510 523 #if H_MV_HLS_7_MISC_P0068_21524 511 Void setAllLayersIdrAlignedFlag( Bool flag ) { m_allLayersIdrAlignedFlag = flag; } 525 512 Bool getAllLayersIdrAlignedFlag( ) { return m_allLayersIdrAlignedFlag; } 526 #endif527 513 528 514 Void setBitRatePresentVpsFlag( Bool flag ) { m_bitRatePresentVpsFlag = flag; } … … 550 536 Int getAvgPicRate( Int i, Int j ) { return m_avgPicRate[i][j]; } 551 537 552 #if H_MV_HLS_7_VPS_P0076_15553 538 Void setVideoSignalInfoIdxPresentFlag( Bool flag ) { m_videoSignalInfoIdxPresentFlag = flag; } 554 539 Bool getVideoSignalInfoIdxPresentFlag( ) { return m_videoSignalInfoIdxPresentFlag; } … … 562 547 Void setVpsVideoSignalInfoIdx( Int i, Int val ) { m_vpsVideoSignalInfoIdx[i] = val; } 563 548 Int getVpsVideoSignalInfoIdx( Int i ) { return m_vpsVideoSignalInfoIdx[i]; } 564 #endif565 549 566 550 Void setTilesNotInUseFlag( Bool flag ) { m_tilesNotInUseFlag = flag; } … … 593 577 Void setMinHorizontalCtuOffsetPlus1( Int i, Int j, Int val ) { m_minHorizontalCtuOffsetPlus1[i][j] = val; } 594 578 Int getMinHorizontalCtuOffsetPlus1( Int i, Int j ) { return m_minHorizontalCtuOffsetPlus1[i][j]; } 595 #if !H_MV_HLS_7_VPS_P0076_15 596 Void setVideoSignalInfoIdxPresentFlag( Bool flag ) { m_videoSignalInfoIdxPresentFlag = flag; } 597 Bool getVideoSignalInfoIdxPresentFlag( ) { return m_videoSignalInfoIdxPresentFlag; } 598 599 Void setVideoSignalInfo( Int i, TComVideoSignalInfo* val ) { m_videoSignalInfo[i] = val; } 600 TComVideoSignalInfo* getVideoSignalInfo( Int i ) { return m_videoSignalInfo[i]; } 601 602 Void setVpsNumVideoSignalInfoMinus1( Int val ) { m_vpsNumVideoSignalInfoMinus1 = val; } 603 Int getVpsNumVideoSignalInfoMinus1( ) { return m_vpsNumVideoSignalInfoMinus1; } 604 605 Void setVpsVideoSignalInfoIdx( Int i, Int val ) { m_vpsVideoSignalInfoIdx[i] = val; } 606 Int getVpsVideoSignalInfoIdx( Int i ) { return m_vpsVideoSignalInfoIdx[i]; } 607 #endif 579 608 580 Void setVpsVuiBspHrdPresentFlag( Bool flag ) { m_vpsVuiBspHrdPresentFlag = flag; } 609 581 Bool getVpsVuiBspHrdPresentFlag( ) { return m_vpsVuiBspHrdPresentFlag; } … … 612 584 TComVpsVuiBspHrdParameters* getVpsVuiBspHrdParameters( ) { return m_vpsVuiBspHrdParameters; } 613 585 614 #if H_MV_HLS_7_MISC_P0182_13615 586 Void setBaseLayerParameterSetCompatibilityFlag( Int i, Bool flag ) { m_baseLayerParameterSetCompatibilityFlag[i] = flag; } 616 587 Bool getBaseLayerParameterSetCompatibilityFlag( Int i ) { return m_baseLayerParameterSetCompatibilityFlag[i]; } 617 #endif 618 619 #if H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG 588 620 589 Void inferVpsVui( Bool encoderFlag ) 621 590 { … … 631 600 632 601 } 633 #endif634 602 }; 635 603 … … 768 736 /// VPS EXTENSION SYNTAX ELEMENTS 769 737 Bool m_avcBaseLayerFlag; 770 #if H_MV_HLS_7_VPS_P0307_23771 738 Int m_vpsNonVuiExtensionLength; 772 #else773 Int m_vpsVuiOffset;774 #endif775 739 Bool m_splittingFlag; 776 740 Bool m_scalabilityMaskFlag [MAX_NUM_SCALABILITY_TYPES]; … … 788 752 Int m_maxTidIlRefPicsPlus1 [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 789 753 Bool m_allRefLayersActiveFlag; 790 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27791 Int m_vpsNumberLayerSetsMinus1;792 #endif793 754 Int m_vpsNumProfileTierLevelMinus1; 794 755 Bool m_vpsProfilePresentFlag [MAX_VPS_OP_SETS_PLUS1]; 795 756 796 #if !H_MV_HLS_7_VPS_P0048_14797 Int m_profileRefMinus1 [MAX_VPS_PROFILE_TIER_LEVEL];798 #endif799 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27800 757 Int m_numAddOutputLayerSets; 801 758 Int m_defaultTargetOutputLayerIdc; 802 #else803 Bool m_moreOutputLayerSetsThanDefaultFlag;804 Int m_numAddOutputLayerSetsMinus1;805 Int m_defaultOneTargetOutputLayerIdc;806 #endif807 759 808 760 Int m_outputLayerSetIdxMinus1 [MAX_VPS_OUTPUTLAYER_SETS]; 809 761 Bool m_outputLayerFlag [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1]; 810 762 Int m_profileLevelTierIdx [MAX_VPS_OUTPUTLAYER_SETS ]; 811 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27812 763 Bool m_altOutputLayerFlag [MAX_VPS_OUTPUTLAYER_SETS]; 813 #else814 Bool m_altOutputLayerFlag;815 #endif816 764 Bool m_repFormatIdxPresentFlag; 817 765 Int m_vpsNumRepFormatsMinus1; … … 972 920 Bool getAvcBaseLayerFlag() { return m_avcBaseLayerFlag; } 973 921 974 #if H_MV_HLS_7_VPS_P0307_23975 922 Void setVpsNonVuiExtensionLength( Int val ) { m_vpsNonVuiExtensionLength = val; } 976 923 Int getVpsNonVuiExtensionLength( ) { return m_vpsNonVuiExtensionLength; } 977 #else978 Void setVpsVuiOffset( Int val ) { m_vpsVuiOffset = val; }979 Int getVpsVuiOffset( ) { return m_vpsVuiOffset; }980 #endif981 924 982 925 Void setSplittingFlag( Bool val ) { m_splittingFlag = val; } … … 1021 964 Bool getAllRefLayersActiveFlag( ) { return m_allRefLayersActiveFlag; } 1022 965 1023 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271024 Void setVpsNumberLayerSetsMinus1( Int val ) { m_vpsNumberLayerSetsMinus1 = val; }1025 Int getVpsNumberLayerSetsMinus1( ) { return m_vpsNumberLayerSetsMinus1; }1026 #endif1027 1028 966 Void setVpsNumProfileTierLevelMinus1( Int val ) { m_vpsNumProfileTierLevelMinus1 = val; } 1029 967 Int getVpsNumProfileTierLevelMinus1( ) { return m_vpsNumProfileTierLevelMinus1; } … … 1032 970 Bool getVpsProfilePresentFlag( Int idx ) { return m_vpsProfilePresentFlag[idx]; } 1033 971 1034 #if !H_MV_HLS_7_VPS_P0048_141035 Void setProfileRefMinus1( Int profileTierLevelIdx, Int val ) { m_profileRefMinus1[ profileTierLevelIdx ] = val; }1036 Int getProfileRefMinus1( Int profileTierLevelIdx ) { return m_profileRefMinus1[ profileTierLevelIdx ]; }1037 Void checkProfileRefMinus1( Int i ) { assert( getProfileRefMinus1( i ) + 1 <= i ); }; // The value of profile_ref_minus1[ i ] + 1 shall be less than or equal to i.1038 #endif1039 1040 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271041 Void setMoreOutputLayerSetsThanDefaultFlag( Bool flag ) { m_moreOutputLayerSetsThanDefaultFlag = flag; }1042 Bool getMoreOutputLayerSetsThanDefaultFlag() { return m_moreOutputLayerSetsThanDefaultFlag; }1043 #endif1044 1045 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271046 972 Void setNumAddOutputLayerSets( Int val ) { m_numAddOutputLayerSets = val; } 1047 973 Int getNumAddOutputLayerSets( ) { return m_numAddOutputLayerSets; } 1048 #else 1049 Void setNumAddOutputLayerSetsMinus1( Int val ) { m_numAddOutputLayerSetsMinus1 = val; } 1050 Int getNumAddOutputLayerSetsMinus1( ) { return m_numAddOutputLayerSetsMinus1; } 1051 #endif 1052 1053 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27 974 1054 975 Void setDefaultTargetOutputLayerIdc( Int val ) { m_defaultTargetOutputLayerIdc = val; } 1055 976 Int getDefaultTargetOutputLayerIdc( ) { return m_defaultTargetOutputLayerIdc; } 1056 #else1057 Void setDefaultOneTargetOutputLayerIdc( Int val ) { m_defaultOneTargetOutputLayerIdc = val; }1058 Int getDefaultOneTargetOutputLayerIdc( ) { return m_defaultOneTargetOutputLayerIdc; }1059 Void checkDefaultOneTargetOutputLayerIdc( ) { assert( m_defaultOneTargetOutputLayerIdc >= 0 && m_defaultOneTargetOutputLayerIdc <= 1 ); }1060 #endif1061 977 1062 978 Void setOutputLayerSetIdxMinus1( Int outLayerSetIdx, Int val ) { m_outputLayerSetIdxMinus1[ outLayerSetIdx ] = val; } … … 1065 981 Void setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag ) { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; } 1066 982 Bool getOutputLayerFlag( Int outLayerSetIdx, Int i ) { return m_outputLayerFlag[ outLayerSetIdx ][ i ]; } 1067 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27 1068 Bool inferOutputLayerFlag( Int i, Int j ) 1069 { 1070 Bool outputLayerFlag; 1071 switch ( getDefaultTargetOutputLayerIdc( ) ) 1072 { 1073 case 0: 1074 outputLayerFlag = true; 1075 break; 1076 case 1: 1077 outputLayerFlag = ( j == m_layerSetLayerIdList[ getLayerSetIdxForOutputLayerSet( i ) ].size() - 1 ); 1078 break; 1079 case 2: 1080 if ( i == 0 && j == 0) 1081 { 1082 outputLayerFlag = true; // This is a software only fix for a bug in the spec. In spec outputLayerFlag neither present nor inferred. 1083 } 1084 else 1085 { 1086 assert( 0 ); 1087 } 1088 break; 1089 default: 1090 assert( 0 ); 1091 break; 1092 } 1093 return outputLayerFlag; 1094 } 1095 #else 1096 Bool inferOutputLayerFlag( Int layerSetIdx, Int i ) { return ( getDefaultOneTargetOutputLayerIdc( ) == 0 || ( ( getDefaultOneTargetOutputLayerIdc( ) == 1 ) && ( i == m_layerSetLayerIdList[layerSetIdx].size() - 1 ) )); } 1097 #endif 983 984 Bool inferOutputLayerFlag( Int i, Int j ); 1098 985 1099 986 Void setProfileLevelTierIdx( Int outLayerSetIdx, Int val ) { m_profileLevelTierIdx[ outLayerSetIdx ] = val; } 1100 987 Int getProfileLevelTierIdx( Int outLayerSetIdx ) { return m_profileLevelTierIdx[ outLayerSetIdx ]; } 1101 988 1102 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271103 989 Void setAltOutputLayerFlag( Int i, Bool flag ) { m_altOutputLayerFlag[i] = flag; } 1104 990 Bool getAltOutputLayerFlag( Int i ) { return m_altOutputLayerFlag[i]; } 1105 #else1106 Void setAltOutputLayerFlag( Bool flag ) { m_altOutputLayerFlag = flag; }1107 Bool getAltOutputLayerFlag( ) { return m_altOutputLayerFlag; }1108 #endif1109 991 1110 992 Void setRepFormatIdxPresentFlag( Bool flag ) { m_repFormatIdxPresentFlag = flag; } … … 1165 1047 1166 1048 Int getProfileLevelTierIdxLen() { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); }; 1167 1168 #if H_MV_HLS_7_VPS_P0306_221169 1049 Int getVpsRepFormatIdxLen() { return gCeilLog2( getVpsNumRepFormatsMinus1() + 1 ); }; 1170 #endif 1050 1171 1051 Int getNumLayersInIdList ( Int lsIdx ); 1172 1052 … … 1176 1056 Void deriveLayerSetLayerIdList(); 1177 1057 1178 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271179 1058 Int getLayerSetIdxForOutputLayerSet( Int i ) { return ( i <= getVpsNumLayerSetsMinus1() ) ? i : getOutputLayerSetIdxMinus1( i ) + 1 ; }; 1180 1059 … … 1187 1066 Int getNumOutputLayersInOutputLayerSet( Int i ) { return (Int) getTargetOptLayerIdList( i ).size(); }; 1188 1067 Int getOlsHighestOutputLayerId( Int i ) { return getTargetOptLayerIdList( i ).back(); }; 1189 #else 1190 Void deriveTargetLayerIdLists(); 1191 std::vector<Int> getTargetDecLayerIdList( Int targetOptLayerSetIdx ) { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; }; 1192 std::vector<Int> getTargetOptLayerIdList( Int targetOptLayerSetIdx ) { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; }; 1193 #endif 1194 1195 #if H_MV_HLS_7_HRD_P0156_7 1068 1196 1069 Int getMaxSubLayersInLayerSetMinus1( Int i ) 1197 1070 { … … 1205 1078 return maxSLMinus1; 1206 1079 } 1207 #endif1208 1080 1209 1081 // inference … … 1230 1102 UInt getCamParPrecision () { return m_uiCamParPrecision; } 1231 1103 Bool getCamParPresent ( Int viewIndex ) { return m_bCamParPresent[viewIndex]; } 1232 #if FIX_CAM_PARS_COLLECTOR1233 1104 Void setCamParPresent ( Int viewIndex, Bool val ) { m_bCamParPresent[viewIndex] = val; } 1234 #endif1235 1105 Bool hasCamParInSliceHeader( Int viewIndex ) { return m_bCamParInSliceHeader[viewIndex]; } 1236 1106 Void setHasCamParInSliceHeader( Int viewIndex, Bool b ) { m_bCamParInSliceHeader[viewIndex] = b; } … … 1936 1806 Int m_ppsScalingListRefLayerId; 1937 1807 1938 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION1939 1808 Bool m_ppsExtensionTypeFlag[PS_EX_T_MAX_NUM]; 1940 #endif1941 #if H_MV_HLS_7_POC_P00411942 1809 Bool m_pocResetInfoPresentFlag; 1943 #endif1944 1810 #endif 1945 1811 … … 2084 1950 Int getPpsScalingListRefLayerId( ) { return m_ppsScalingListRefLayerId; } 2085 1951 2086 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION2087 1952 Void setPpsExtensionTypeFlag( Int i, Bool flag ) { m_ppsExtensionTypeFlag[i] = flag; } 2088 1953 Bool getPpsExtensionTypeFlag( Int i ) { return m_ppsExtensionTypeFlag[i]; } 2089 #endif 2090 2091 #if H_MV_HLS_7_POC_P0041 1954 2092 1955 Void setPocResetInfoPresentFlag( Bool flag ) { m_pocResetInfoPresentFlag = flag; } 2093 1956 Bool getPocResetInfoPresentFlag( ) { return m_pocResetInfoPresentFlag; } 2094 #endif2095 2096 1957 #endif 2097 1958 }; … … 2239 2100 Int m_interLayerPredLayerIdc [MAX_NUM_LAYERS]; 2240 2101 2241 #if H_MV_HLS_7_POC_P00412242 2102 Int m_sliceSegmentHeaderExtensionLength; 2243 2103 Int m_pocResetIdc; … … 2248 2108 Int m_pocMsbVal; 2249 2109 Bool m_pocMsbValRequiredFlag; 2250 #endif2251 2110 2252 2111 #if H_3D … … 2596 2455 Int getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; } 2597 2456 2598 #if H_MV_HLS_7_POC_P00412599 2457 Void setSliceSegmentHeaderExtensionLength( Int val ) { m_sliceSegmentHeaderExtensionLength = val; } 2600 2458 Int getSliceSegmentHeaderExtensionLength( ) { return m_sliceSegmentHeaderExtensionLength; } … … 2633 2491 return getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA; 2634 2492 } 2635 #endif2636 2493 2637 2494 // Additional variables derived in slice header semantics -
branches/HTM-10.1-dev0/source/Lib/TLibCommon/TypeDef.h
r881 r882 308 308 309 309 ///////////////////////////////////////////////////////////////////////////////////////// 310 /////////////////////////////////// HTM-10.1 Integrations//////////////////////////////310 /////////////////////////////////// TBD ////////////////////////////// 311 311 ///////////////////////////////////////////////////////////////////////////////////////// 312 312 313 314 // TBD315 313 // #define H_MV_HLS_7_POC_P0041_3 0 // (POC/P0041/POC reset) #3 It was remarked that we should require each non-IRAP picture that has discardable_flag equal to 1 to have NUT value indicating that it is a sub-layer non-reference picture. This was agreed. Decision: Adopt (with constraint for discardable_flag as described above) 316 314 // #define H_MV_HLS_7_POC_P0041_FIXES 0 // (POC/P0041/Fixes) For each non-IRAP picture that has discardable_flag equal to 1 to have NUT value indicating that it is a sub-layer non-reference picture. … … 324 322 // #define H_MV_HLS_7_VPS_P0300_27 0 // Output part only. (VPS/P0300/alt output layer flag) #27 Change alt output layer flag to be signalled within the loop of output layer sets, from JCTVC-P0300-v2. Decision: Adopt. 325 323 326 327 #define H_MV_HLS_7_VPS_P0306_22 1 // (VPS/P0306/ue(v) coded syntax elements) #22 Several minor modifications to the VPS syntax, consistent with eliminating the previous intention to avoid ue(v) parsing in the VPS 328 #define H_MV_HLS_7_SEI_P0204_26 1 // (SEI/P0204/sub-bitstream SEI) #26 Add sub-bitstream property SEI message. Decision: Adopt 329 #define H_MV_HLS_7_MISC_P0130_20 1 // (MISC/P0130/discardable not in inter-layer RPS) #20 Add constraint restricting pictures marked as discardable from being present in the temporal or inter-layer RPS, 330 #define H_MV_HLS_7_VPS_P0125_24 1 // (VPS/P0125/VPS extension offset ) #24 Decision: Keep it as a reserved FFFF value. 331 #define H_MV_HLS_7_VPS_P0307_23 1 // (VPS/P0307/VPS VUI extension) #23 Decision: Adopt modification in P0307. 332 #define H_MV_HLS_7_POC_P0041 1 // Syntax related to POC reset 333 334 335 #define H_MV_HLS7_GEN 0 // General changes (not tested) 336 #define H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27 1 // Output layer sets, various 337 // (VPS/P0300/alt output layer flag) #27 Change alt output layer flag to be signalled within the loop of output layer sets, from JCTVC-P0300-v2. Decision: Adopt. 338 // (VPS/P0156/Num of output_layer_flag) #10 Proposal 3: The output_layer_flag[ i ][ j ] is signalled for j equal to 0 to NumLayersInIdList[ lsIdx ] inclusive. It was remarked that we might be able to just assume that the top layer is always output; however, this was not entirely clear , so the safe thing to do may be to also send the flag for this layer. 339 // (VPS/P0295/Default output layer sets) #5 Discussion from (P0110). Decision: Three-state approach (text in P0295, decoder shall allow 3 to be present and shall treat 3 the same as the value 2). 340 341 342 #define H_MV_HLS_7_HRD_P0156_7 1 // (HRD/P0156/MaxSubLayersInLayerSetMinus1) #7 Proposal 1: signal, in the VPS extension, the DPB parameters for an output layer set for sub-DPBs only up to the maximum temporal sub-layers in the corresponding layer set 343 #define H_MV_HLS_7_VPS_P0048_14 1 // (VPS/P0048/profile_ref_minus1 rem) #14 Remove profile_ref_minus1 from the VPS extension, from JCTVC-P0048 344 #define H_MV_HLS_7_VPS_P0076_15 1 // (VPS/P0076/video signal info move) #15 Move video signal information syntax structure earlier in the VPS VUI. 345 #define H_MV_HLS_7_SPS_P0155_16_32 1 // (SPS/P0155/sps_sub_layer_ordering_info) #16, #32 Not signal the sps_max_num_reorder_pics[], sps_max_latency_increase_plus1[], and sps_max_dec_pic_buffering_minus1[] syntax elements in the SPS when nuh_layer_id > 0. 346 #define H_MV_HLS_7_GEN_P0166_PPS_EXTENSION 1 // (GEN/P0166/pps_extension) #17 Add PPS extension type flags for conditional presence of syntax extensions per extension type, aligned with the SPS extension type flags, from JCTVC-P0166. Further align the SPS extension type flags syntax between RExt and MV-HEVC/SHVC 347 #define H_MV_HLS_7_FIX_SET_DPB_SIZE 1 // Fix derivation dpb size parameters 348 #define H_MV_HLS_7_RESERVED_FLAGS 1 // Added flags 349 // (SPS/P0312/SHVC reserved flag) The flag will be used for the syntax vert_phase_position_enable_flag in SHVC draft 350 // (VPS/O0215/SHVC reserved flag): this flag will be used for the syntax cross_layer_phase_alignment_flag in SHVC draft. 351 // (VPS VUI/O0199,P0312/SHVC reserved flags) the 3 reserved bits will be used for the syntaxes single_layer_for_non_irap_flag, higher_layer_irap_skip_flag and vert_phase_position_not_in_use_flag in SHVC draft. 352 #define H_MV_FIX_VPS_LAYER_ID_NOT_EQUAL_ZERO 1 // Discard VPS with nuh_layer_Id > 0 353 #define H_MV_HLS_7_MISC_P0130_EOS 1 // (MISC/P0130/EOS NAL layer id) #19 Require that end of bitstream NAL unit shall have nuh_layer_id equal to 0, from JCTVC-P0130. Decoders shall allow an end of bitstream NAL unit with nuh_layer_id > 0 to be present, and shall ignore the NAL unit. 354 #define H_MV_HLS_7_MISC_P0182_13 1 // (MISC/P0182/BL PS Compatibility flag) #13 Define the flag (in VPS VUI) with the proposed semantics, without specifying an associated extraction process. Editors to select the position in the VPS VUI. 355 #define H_MV_HLS_7_MISC_P0068_21 1 // (MISC/P0068/all irap idr flag) #21 Add flag in VUI to indicate that all IRAP pictures are IDRs and that all layer pictures in an AU are IDR aligned, from JCTVC-P0068 proposal 1. 356 #define H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG 1 // Fix inference of cross_layer_irap_aligned_flag 357 #define H_MV_HLS_7_MISC_P0079_18 1 // (MISC/P0079/NumActiveRefLayerPics) #18 Modification of derivation of variable NumActiveRefLayerPics. 358 #define FIX_CAM_PARS_COLLECTOR 1 359 #define UPDATE_HM13 1 // Only some parts in H_3D parts are marked! 360 #if H_3D 361 #define H_3D_FIX_G0148_BRACE 1 362 #endif 324 #define H_MV_HLS7_GEN 0 // General changes (not tested) 325 326 327 363 328 ///////////////////////////////////////////////////////////////////////////////////////// 364 329 /////////////////////////////////// HM RELATED DEFINES //////////////////////////////// … … 397 362 #define MAX_NUM_BITSTREAM_PARTITIONS 100 ///< Maximum value is actually not specified 398 363 #define MAX_NUM_BSP_SCHED_COMBINATION 100 ///< Maximum value is actually not specified 399 #if H_MV_HLS_7_SEI_P0204_26400 364 #define MAX_SUB_STREAMS 1024 401 #endif402 365 #else 403 366 #define MAX_NUM_LAYER_IDS 64 … … 890 853 #if H_MV 891 854 892 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION893 855 enum PpsExtensionTypes 894 856 { … … 902 864 903 865 //Below for sps, would be good if this could be aligned 904 #endif905 866 906 867 enum PsExtensionTypes -
branches/HTM-10.1-dev0/source/Lib/TLibDecoder/SEIread.cpp
r872 r882 99 99 fprintf( g_hTrace, "=========== Scalable Nesting SEI message ===========\n"); 100 100 break; 101 #if H_MV _HLS_7_SEI_P0204_26101 #if H_MV 102 102 case SEI::SUB_BITSTREAM_PROPERTY: 103 103 fprintf( g_hTrace, "=========== Sub-bitstream property SEI message ===========\n"); … … 245 245 xParseSEIScalableNesting((SEIScalableNesting&) *sei, nalUnitType, payloadSize, sps); 246 246 break; 247 #if H_MV _HLS_7_SEI_P0204_26247 #if H_MV 248 248 case SEI::SUB_BITSTREAM_PROPERTY: 249 249 sei = new SEISubBitstreamProperty; … … 777 777 778 778 } 779 #if H_MV _HLS_7_SEI_P0204_26779 #if H_MV 780 780 Void SEIReader::xParseSEISubBitstreamProperty(SEISubBitstreamProperty &sei) 781 781 { -
branches/HTM-10.1-dev0/source/Lib/TLibDecoder/SEIread.h
r872 r882 73 73 Void xParseSEISOPDescription (SEISOPDescription &sei, UInt payloadSize); 74 74 Void xParseSEIScalableNesting (SEIScalableNesting& sei, const NalUnitType nalUnitType, UInt payloadSize, TComSPS *sps); 75 #if H_MV _HLS_7_SEI_P0204_2675 #if H_MV 76 76 Void xParseSEISubBitstreamProperty (SEISubBitstreamProperty &sei); 77 77 Void xResizeSubBitstreamPropertySeiArrays(SEISubBitstreamProperty &sei); -
branches/HTM-10.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r877 r882 366 366 367 367 READ_FLAG( uiCode, "pps_extension_flag"); 368 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION369 368 if (uiCode) 370 369 { … … 383 382 if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_MV ) ) 384 383 { 385 #if H_MV_HLS_7_POC_P0041386 384 READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 ); 387 #endif388 385 } 389 386 … … 406 403 #endif 407 404 } 408 #else409 if (uiCode)410 {411 #if H_3D412 parsePPSExtension( pcPPS, pcVPS );413 READ_FLAG( uiCode, "pps_extension2_flag");414 if ( uiCode )415 {416 #endif417 while ( xMoreRbspData() )418 {419 READ_FLAG( uiCode, "pps_extension_data_flag");420 }421 #if H_3D422 }423 #endif424 }425 #endif426 405 } 427 406 … … 849 828 assert(uiCode <= 12); 850 829 851 #if H_MV _HLS_7_SPS_P0155_16_32830 #if H_MV 852 831 if ( pcSPS->getLayerId() == 0 ) 853 832 { … … 888 867 } 889 868 } 890 #if H_MV _HLS_7_SPS_P0155_16_32869 #if H_MV 891 870 } 892 871 #endif … … 1053 1032 READ_SVLC( iCode, "scaled_ref_layer_right_offset" ); pcSPS->setScaledRefLayerRightOffset( j, iCode ); 1054 1033 READ_SVLC( iCode, "scaled_ref_layer_bottom_offset" ); pcSPS->setScaledRefLayerBottomOffset( j, iCode ); 1055 #if H_MV_HLS_7_RESERVED_FLAGS1056 1034 READ_FLAG( uiCode, "sps_multilayer_ext_reserved_zero_flag[ i ]" ); 1057 #endif1058 1035 } 1059 1036 } … … 1092 1069 assert (pcVPS->getMaxTLayers()>1||pcVPS->getTemporalNestingFlag()); 1093 1070 1094 #if H_MV_HLS_7_VPS_P0125_241095 1071 READ_CODE( 16, uiCode, "vps_reserved_ffff_16bits" ); assert(uiCode == 0xffff); 1096 #else1097 #if H_MV && !H_MV_HLS7_GEN1098 READ_CODE( 16, uiCode, "vps_extension_offset" );1099 #else1100 READ_CODE( 16, uiCode, "vps_reserved_ffff_16bits" ); assert(uiCode == 0xffff);1101 #endif1102 #endif1103 1072 parsePTL ( pcVPS->getPTL(), true, pcVPS->getMaxTLayers()-1); 1104 1073 UInt subLayerOrderingInfoPresentFlag; … … 1212 1181 READ_FLAG( uiCode, "avc_base_layer_flag" ); pcVPS->setAvcBaseLayerFlag( uiCode == 1 ? true : false ); 1213 1182 1214 #if !H_MV_HLS_7_VPS_P0307_231215 READ_FLAG( uiCode, "vps_vui_present_flag" ); pcVPS->setVpsVuiPresentFlag( uiCode == 1 );1216 if ( pcVPS->getVpsVuiPresentFlag() )1217 {1218 READ_CODE( 16, uiCode, "vps_vui_offset" ); pcVPS->setVpsVuiOffset( uiCode );1219 }1220 #endif1221 1222 1183 READ_FLAG( uiCode, "splitting_flag" ); pcVPS->setSplittingFlag( uiCode == 1 ? true : false ); 1223 1184 … … 1325 1286 1326 1287 READ_FLAG( uiCode, "all_ref_layers_active_flag" ); pcVPS->setAllRefLayersActiveFlag( uiCode == 1 ); 1327 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27 1328 READ_CODE( 10, uiCode, "vps_number_layer_sets_minus1" ); pcVPS->setVpsNumberLayerSetsMinus1 ( uiCode ); 1329 #endif 1330 1331 #if !H_MV_HLS_7_VPS_P0306_22 1332 READ_CODE( 6, uiCode, "vps_num_profile_tier_level_minus1" ); pcVPS->setVpsNumProfileTierLevelMinus1( uiCode ); 1333 #else 1288 1334 1289 READ_UVLC( uiCode, "vps_num_profile_tier_level_minus1" ); pcVPS->setVpsNumProfileTierLevelMinus1( uiCode ); 1335 #endif 1290 1336 1291 for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ ) 1337 1292 { 1338 1293 READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 ); 1339 #if !H_MV_HLS_7_VPS_P0048_141340 if( !pcVPS->getVpsProfilePresentFlag( i ) )1341 {1342 READ_CODE( 6, uiCode, "profile_ref_minus1[i]" ); pcVPS->setProfileRefMinus1( i, uiCode );1343 pcVPS->checkProfileRefMinus1( i );1344 }1345 #endif1346 1294 parsePTL ( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers()-1); 1347 1295 if( !pcVPS->getVpsProfilePresentFlag( i ) ) 1348 1296 { 1349 1297 TComPTL temp = *pcVPS->getPTL( i ); 1350 #if H_MV_HLS_7_VPS_P0048_141351 1298 *pcVPS->getPTL( i ) = *pcVPS->getPTL( i - 1 ); 1352 #else1353 *pcVPS->getPTL( i ) = *pcVPS->getPTL( pcVPS->getProfileRefMinus1( i ) + 1 );1354 #endif1355 1299 pcVPS->getPTL( i )->copyLevelFrom( &temp ); 1356 1300 } 1357 1301 } 1358 1302 1359 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271360 1303 READ_UVLC( uiCode, "num_add_output_layer_sets" ); pcVPS->setNumAddOutputLayerSets( uiCode ); 1361 1304 pcVPS->initTargetLayerIdLists( ); … … 1365 1308 } 1366 1309 1367 #else1368 Int numOutputLayerSets = pcVPS->getVpsNumberLayerSetsMinus1( ) + 1;1369 1370 READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); pcVPS->setMoreOutputLayerSetsThanDefaultFlag( uiCode == 1 );1371 1372 if ( pcVPS->getMoreOutputLayerSetsThanDefaultFlag( ) )1373 {1374 READ_CODE( 10, uiCode, "num_add_output_layer_sets_minus1" ); pcVPS->setNumAddOutputLayerSetsMinus1( uiCode );1375 numOutputLayerSets += ( pcVPS->getNumAddOutputLayerSetsMinus1( ) + 1);1376 }1377 1378 if( numOutputLayerSets > 1)1379 {1380 READ_CODE( 2, uiCode, "default_one_target_output_layer_idc" ); pcVPS->setDefaultOneTargetOutputLayerIdc( uiCode );1381 pcVPS->checkDefaultOneTargetOutputLayerIdc();1382 }1383 #endif1384 1385 1310 pcVPS->setOutputLayerFlag(0, 0, pcVPS->inferOutputLayerFlag( 0, 0 )); 1386 1311 pcVPS->setOutputLayerSetIdxMinus1(0, -1); 1387 1312 1388 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271389 1313 pcVPS->deriveTargetLayerIdList( 0 ); 1390 1314 for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ ) 1391 1315 { 1392 1316 if( i > pcVPS->getVpsNumLayerSetsMinus1( ) ) 1393 #else1394 for( Int i = 1; i < numOutputLayerSets; i++ )1395 {1396 if( i > pcVPS->getVpsNumberLayerSetsMinus1( ) )1397 #endif1398 1317 { 1399 1318 READ_UVLC( uiCode, "output_layer_set_idx_minus1[i]" ); pcVPS->setOutputLayerSetIdxMinus1( i, uiCode ); 1400 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271401 1319 } 1402 1320 … … 1416 1334 } 1417 1335 pcVPS->deriveTargetLayerIdList( i ); 1418 #else 1419 for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1; j++ ) 1420 { 1421 READ_FLAG( uiCode, "output_layer_flag" ); pcVPS->setOutputLayerFlag( i, j, uiCode == 1 ); 1422 } 1423 } 1424 else 1425 { // These inference rules would also be helpful in spec text 1426 pcVPS->setOutputLayerSetIdxMinus1(i, i - 1 ); 1427 for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1; j++ ) 1428 { 1429 pcVPS->setOutputLayerFlag(i,j, pcVPS->inferOutputLayerFlag( i, j )); 1430 } 1431 } 1432 #endif 1336 1433 1337 if ( pcVPS->getProfileLevelTierIdxLen() > 0 ) 1434 1338 { … … 1436 1340 } 1437 1341 1438 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271439 1342 if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 ) 1440 1343 { … … 1442 1345 } 1443 1346 } 1444 #else1445 }1446 if( pcVPS->getMaxLayersMinus1() > 0 )1447 {1448 READ_FLAG( uiCode, "alt_output_layer_flag" ); pcVPS->setAltOutputLayerFlag( uiCode == 1 );1449 }1450 #endif1451 1452 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271453 pcVPS->deriveTargetLayerIdLists();1454 #endif1455 1347 1456 1348 READ_FLAG( uiCode, "rep_format_idx_present_flag" ); pcVPS->setRepFormatIdxPresentFlag( uiCode == 1 ); 1457 1349 if ( pcVPS->getRepFormatIdxPresentFlag() ) 1458 1350 { 1459 #if H_MV_HLS_7_VPS_P0306_221460 1351 READ_UVLC( uiCode, "vps_num_rep_formats_minus1" ); pcVPS->setVpsNumRepFormatsMinus1( uiCode ); 1461 #else1462 READ_CODE( 4, uiCode, "vps_num_rep_formats_minus1" ); pcVPS->setVpsNumRepFormatsMinus1( uiCode );1463 #endif1464 1352 } 1465 1353 … … 1479 1367 if( pcVPS->getVpsNumRepFormatsMinus1() > 0 ) 1480 1368 { 1481 #if H_MV_HLS_7_VPS_P0306_221482 1369 READ_CODE( pcVPS->getVpsRepFormatIdxLen(), uiCode, "vps_rep_format_idx[i]" ); pcVPS->setVpsRepFormatIdx( i, uiCode ); 1483 #else1484 READ_CODE( 8, uiCode, "vps_rep_format_idx" ); pcVPS->setVpsRepFormatIdx( i, uiCode );1485 #endif1486 1370 } 1487 1371 } … … 1500 1384 } 1501 1385 1502 #if H_MV_HLS_7_RESERVED_FLAGS1503 1386 READ_FLAG( uiCode, "vps_reserved_zero_flag" ); 1504 #endif1505 1387 parseDpbSize( pcVPS ); 1506 1388 … … 1531 1413 } 1532 1414 1533 #if H_MV_HLS_7_VPS_P0307_231534 1415 READ_UVLC( uiCode, "vps_non_vui_extension_length" ); pcVPS->setVpsNonVuiExtensionLength( uiCode ); 1535 1416 for ( Int i = 1; i <= pcVPS->getVpsNonVuiExtensionLength(); i++ ) … … 1538 1419 } 1539 1420 READ_FLAG( uiCode, "vps_vui_present_flag" ); pcVPS->setVpsVuiPresentFlag( uiCode == 1 ); 1540 #endif1541 #if !H_MV_HLS_7_RESERVED_FLAGS1542 READ_FLAG( uiCode, "vps_shvc_reserved_zero_flag" );1543 #endif1544 1421 if( pcVPS->getVpsVuiPresentFlag() ) 1545 1422 { … … 1547 1424 parseVPSVUI( pcVPS ); 1548 1425 } 1549 #if H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG1550 1426 { 1551 1427 TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( ); … … 1553 1429 pcVPSVUI->inferVpsVui( false ); 1554 1430 } 1555 #endif1556 1431 1557 1432 pcVPS->checkVPSExtensionSyntax(); … … 1601 1476 READ_FLAG( uiCode, "cross_layer_irap_aligned_flag" ); pcVPSVUI->setCrossLayerIrapAlignedFlag( uiCode == 1 ); 1602 1477 } 1603 #if H_MV_HLS_7_MISC_P0068_211604 1478 if( pcVPSVUI->getCrossLayerIrapAlignedFlag( ) ) 1605 1479 { 1606 1480 READ_FLAG( uiCode, "all_layers_idr_aligned_flag" ); pcVPSVUI->setAllLayersIdrAlignedFlag( uiCode == 1 ); 1607 1481 } 1608 #endif1609 1482 READ_FLAG( uiCode, "bit_rate_present_vps_flag" ); pcVPSVUI->setBitRatePresentVpsFlag( uiCode == 1 ); 1610 1483 READ_FLAG( uiCode, "pic_rate_present_vps_flag" ); pcVPSVUI->setPicRatePresentVpsFlag( uiCode == 1 ); 1611 1484 if( pcVPSVUI->getBitRatePresentVpsFlag( ) || pcVPSVUI->getPicRatePresentVpsFlag( ) ) 1612 1485 { 1613 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271614 1486 for( Int i = 0; i <= pcVPS->getVpsNumLayerSetsMinus1(); i++ ) 1615 #else1616 for( Int i = 0; i <= pcVPS->getVpsNumberLayerSetsMinus1(); i++ )1617 #endif1618 1487 { 1619 1488 for( Int j = 0; j <= pcVPS->getMaxTLayers(); j++ ) … … 1641 1510 } 1642 1511 1643 #if H_MV_HLS_7_VPS_P0076_151644 1512 READ_FLAG( uiCode, "video_signal_info_idx_present_flag" ); pcVPSVUI->setVideoSignalInfoIdxPresentFlag( uiCode == 1 ); 1645 1513 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ) … … 1675 1543 } 1676 1544 } 1677 #endif1678 1545 1679 1546 READ_FLAG( uiCode, "tiles_not_in_use_flag" ); pcVPSVUI->setTilesNotInUseFlag( uiCode == 1 ); … … 1712 1579 } 1713 1580 1714 #if H_MV_HLS_7_RESERVED_FLAGS1715 1581 READ_CODE( 3, uiCode, "vps_vui_reserved_zero_3bits" ); 1716 #endif1717 1718 1582 READ_FLAG( uiCode, "ilp_restricted_ref_layers_flag" ); pcVPSVUI->setIlpRestrictedRefLayersFlag( uiCode == 1 ); 1719 1583 … … 1737 1601 } 1738 1602 1739 #if !H_MV_HLS_7_VPS_P0076_151740 READ_FLAG( uiCode, "video_signal_info_idx_present_flag" ); pcVPSVUI->setVideoSignalInfoIdxPresentFlag( uiCode == 1 );1741 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() )1742 {1743 READ_CODE( 4, uiCode, "vps_num_video_signal_info_minus1" ); pcVPSVUI->setVpsNumVideoSignalInfoMinus1( uiCode );1744 }1745 else1746 {1747 pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() );1748 }1749 1750 for( Int i = 0; i <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1(); i++ )1751 {1752 assert( pcVPSVUI->getVideoSignalInfo( i ) == NULL );1753 TComVideoSignalInfo* curVideoSignalInfo = new TComVideoSignalInfo();1754 parseVideoSignalInfo( curVideoSignalInfo );1755 pcVPSVUI->setVideoSignalInfo(i, curVideoSignalInfo );1756 }1757 1758 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )1759 {1760 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1761 {1762 READ_CODE( 4, uiCode, "vps_video_signal_info_idx" ); pcVPSVUI->setVpsVideoSignalInfoIdx( i, uiCode );1763 assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );1764 }1765 }1766 else1767 {1768 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1769 {1770 pcVPSVUI->setVpsVideoSignalInfoIdx( i, pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i );1771 }1772 }1773 #endif1774 1603 READ_FLAG( uiCode, "vps_vui_bsp_hrd_present_flag" ); pcVPSVUI->setVpsVuiBspHrdPresentFlag( uiCode == 1 ); 1775 1604 if ( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) ) … … 1777 1606 parseVpsVuiBspHrdParameters( pcVPS ); 1778 1607 } 1779 #if H_MV_HLS_7_MISC_P0182_131780 1608 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1781 1609 { … … 1785 1613 } 1786 1614 } 1787 #endif1788 1615 } 1789 1616 … … 1864 1691 { 1865 1692 READ_FLAG( uiCode, "sub_layer_flag_info_present_flag" ); dpbSize->setSubLayerFlagInfoPresentFlag( i, uiCode == 1 ); 1866 #if H_MV_HLS_7_HRD_P0156_71867 1693 for( Int j = 0; j <= vps->getMaxSubLayersInLayerSetMinus1( i ); j++ ) 1868 #else1869 for( Int j = 0; j <= vps->getMaxTLayers() - 1 ; j++ )1870 #endif1871 1694 { 1872 1695 if( j > 0 && dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) ) … … 1876 1699 if( dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) ) 1877 1700 { 1878 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271879 1701 for( Int k = 0; k < vps->getNumSubDpbs( vps->getLayerSetIdxForOutputLayerSet( i )); k++ ) 1880 #else1881 for( Int k = 0; k < vps->getNumSubDpbs( vps->getOutputLayerSetIdxMinus1( i ) + 1 ); k++ )1882 #endif1883 1702 { 1884 1703 READ_UVLC( uiCode, "max_vps_dec_pic_buffering_minus1" ); dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, uiCode ); … … 1983 1802 for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++) 1984 1803 { 1985 #if FIX_CAM_PARS_COLLECTOR1986 1804 pcVPS->setCamParPresent ( viewIndex, false ); 1987 1805 pcVPS->setHasCamParInSliceHeader( viewIndex, false ); 1988 #endif1989 1806 READ_FLAG( uiCode, "cp_present_flag[i]" ); bCamParPresentFlag = ( uiCode == 1); 1990 1807 if ( bCamParPresentFlag ) … … 2718 2535 if(pps->getSliceHeaderExtensionPresentFlag()) 2719 2536 { 2720 #if !H_MV_HLS_7_POC_P00412721 READ_UVLC(uiCode,"slice_header_extension_length");2722 for(Int i=0; i<uiCode; i++)2723 {2724 UInt ignore;2725 READ_CODE(8,ignore,"slice_header_extension_data_byte");2726 }2727 }2728 #else2729 2537 #if H_MV 2730 2538 READ_UVLC( uiCode, "slice_segment_header_extension_length" ); rpcSlice->setSliceSegmentHeaderExtensionLength( uiCode ); … … 2796 2604 } 2797 2605 } 2798 #endif2799 2606 #endif 2800 2607 } -
branches/HTM-10.1-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r881 r882 895 895 #endif 896 896 897 #if H_3D && UPDATE_HM13897 #if H_3D 898 898 Bool useDltFlag = (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()); 899 899 … … 921 921 { 922 922 #if H_3D 923 #if UPDATE_HM13924 923 if ( useDltFlag ) 925 #else926 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )927 #endif928 924 { 929 925 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 ] ) ); -
branches/HTM-10.1-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r872 r882 51 51 m_aaiCodedOffset = new Int* [ MAX_NUM_LAYERS ]; 52 52 m_aaiCodedScale = new Int* [ MAX_NUM_LAYERS ]; 53 #if !FIX_CAM_PARS_COLLECTOR54 m_aiViewId = new Int [ MAX_NUM_LAYERS ];55 56 m_bViewReceived = new Bool [ MAX_NUM_LAYERS ];57 #endif58 53 for( UInt uiId = 0; uiId < MAX_NUM_LAYERS; uiId++ ) 59 54 { … … 65 60 m_iLog2Precision = LOG2_DISP_PREC_LUT; 66 61 m_uiBitDepthForLUT = 8; // fixed 67 #if FIX_CAM_PARS_COLLECTOR68 62 m_receivedIdc = NULL; 69 63 m_vps = NULL; 70 #endif71 64 } 72 65 … … 80 73 delete [] m_aaiCodedOffset; 81 74 delete [] m_aaiCodedScale; 82 #if !FIX_CAM_PARS_COLLECTOR83 delete [] m_aiViewId;84 delete [] m_bViewReceived;85 #endif86 75 87 76 xDeleteArray( m_adBaseViewShiftLUT, MAX_NUM_LAYERS, MAX_NUM_LAYERS, 2 ); 88 77 xDeleteArray( m_aiBaseViewShiftLUT, MAX_NUM_LAYERS, MAX_NUM_LAYERS, 2 ); 89 #if FIX_CAM_PARS_COLLECTOR90 78 xDeleteArray( m_receivedIdc, m_uiMaxViewIndex + 1 ); 91 #endif 92 } 93 94 95 #if FIX_CAM_PARS_COLLECTOR 79 } 80 81 96 82 Void 97 83 CamParsCollector::init( FILE* pCodedScaleOffsetFile, TComVPS* vps) … … 159 145 } 160 146 } 161 #else162 Void163 CamParsCollector::init( FILE* pCodedScaleOffsetFile )164 {165 m_bInitialized = true;166 m_pCodedScaleOffsetFile = pCodedScaleOffsetFile;167 m_uiCamParsCodedPrecision = 0;168 m_bCamParsVaryOverTime = false;169 m_iLastViewIndex = -1;170 m_iLastPOC = -1;171 m_uiMaxViewIndex = 0;172 }173 #endif174 175 147 176 148 … … 206 178 CamParsCollector::xInitLUTs( UInt uiSourceView, UInt uiTargetView, Int iScale, Int iOffset, Double****& radLUT, Int****& raiLUT) 207 179 { 208 #if FIX_CAM_PARS_COLLECTOR209 180 Int iLog2DivLuma = m_uiBitDepthForLUT + m_vps->getCamParPrecision() + 1 - m_iLog2Precision; AOF( iLog2DivLuma > 0 ); 210 #else211 Int iLog2DivLuma = m_uiBitDepthForLUT + m_uiCamParsCodedPrecision + 1 - m_iLog2Precision; AOF( iLog2DivLuma > 0 );212 #endif213 181 Int iLog2DivChroma = iLog2DivLuma + 1; 214 182 … … 252 220 } 253 221 254 #if !FIX_CAM_PARS_COLLECTOR255 Void256 CamParsCollector::setSlice( TComSlice* pcSlice )257 {258 259 if( pcSlice == 0 )260 {261 AOF( xIsComplete() );262 if( m_bCamParsVaryOverTime || m_iLastPOC == 0 )263 {264 xOutput( m_iLastPOC );265 }266 return;267 }268 269 if ( pcSlice->getIsDepth())270 {271 return;272 }273 274 Bool bFirstAU = ( pcSlice->getPOC() == 0 );275 Bool bFirstSliceInAU = ( pcSlice->getPOC() != Int ( m_iLastPOC ) );276 Bool bFirstSliceInView = ( pcSlice->getViewIndex() != UInt( m_iLastViewIndex ) || bFirstSliceInAU );277 278 AOT( bFirstSliceInAU && pcSlice->getViewIndex() != 0 );279 AOT( !bFirstSliceInAU && pcSlice->getViewIndex() < UInt( m_iLastViewIndex ) );280 281 AOT( !bFirstSliceInAU && pcSlice->getViewIndex() > UInt( m_iLastViewIndex + 1 ) );282 283 AOT( !bFirstAU && pcSlice->getViewIndex() > m_uiMaxViewIndex );284 285 if ( !bFirstSliceInView )286 {287 if( m_bCamParsVaryOverTime ) // check consistency of slice parameters here288 {289 UInt uiViewIndex = pcSlice->getViewIndex();290 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < uiViewIndex; uiBaseViewIndex++ )291 {292 AOF( m_aaiCodedScale [ uiBaseViewIndex ][ uiViewIndex ] == pcSlice->getCodedScale () [ uiBaseViewIndex ] );293 AOF( m_aaiCodedOffset[ uiBaseViewIndex ][ uiViewIndex ] == pcSlice->getCodedOffset () [ uiBaseViewIndex ] );294 AOF( m_aaiCodedScale [ uiViewIndex ][ uiBaseViewIndex ] == pcSlice->getInvCodedScale () [ uiBaseViewIndex ] );295 AOF( m_aaiCodedOffset[ uiViewIndex ][ uiBaseViewIndex ] == pcSlice->getInvCodedOffset() [ uiBaseViewIndex ] );296 }297 }298 return;299 }300 301 if( bFirstSliceInAU )302 {303 if( !bFirstAU )304 {305 AOF( xIsComplete() );306 xOutput( m_iLastPOC );307 }308 ::memset( m_bViewReceived, false, MAX_NUM_LAYERS * sizeof( Bool ) );309 }310 311 UInt uiViewIndex = pcSlice->getViewIndex();312 m_bViewReceived[ uiViewIndex ] = true;313 if( bFirstAU )314 {315 m_uiMaxViewIndex = std::max( m_uiMaxViewIndex, uiViewIndex );316 m_aiViewId[ uiViewIndex ] = pcSlice->getViewId();317 318 if( uiViewIndex == 1 )319 {320 m_uiCamParsCodedPrecision = pcSlice->getVPS()->getCamParPrecision ();321 m_bCamParsVaryOverTime = pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex );322 }323 else if( uiViewIndex > 1 )324 {325 AOF( m_uiCamParsCodedPrecision == pcSlice->getVPS()->getCamParPrecision () );326 AOF( m_bCamParsVaryOverTime == pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ) );327 }328 329 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ )330 {331 if( m_bCamParsVaryOverTime )332 {333 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getCodedScale () [ uiBaseIndex ];334 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getCodedOffset () [ uiBaseIndex ];335 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getInvCodedScale () [ uiBaseIndex ];336 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getInvCodedOffset() [ uiBaseIndex ];337 xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT);338 xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT);339 }340 else341 {342 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedScale (uiViewIndex) [ uiBaseIndex ];343 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedOffset (uiViewIndex) [ uiBaseIndex ];344 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedScale (uiViewIndex) [ uiBaseIndex ];345 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedOffset(uiViewIndex) [ uiBaseIndex ];346 xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );347 xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );348 }349 }350 }351 else352 {353 AOF( m_aiViewId[ uiViewIndex ] == pcSlice->getViewId() );354 if( m_bCamParsVaryOverTime )355 {356 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ )357 {358 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getCodedScale () [ uiBaseIndex ];359 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getCodedOffset () [ uiBaseIndex ];360 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getInvCodedScale () [ uiBaseIndex ];361 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getInvCodedOffset() [ uiBaseIndex ];362 363 xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );364 xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );365 }366 }367 }368 369 m_iLastViewIndex = (Int)pcSlice->getViewIndex();370 m_iLastPOC = (Int)pcSlice->getPOC();371 }372 373 #else374 222 Void 375 223 CamParsCollector::setSlice( TComSlice* pcSlice ) … … 440 288 } 441 289 } 442 #endif443 290 444 291 … … 454 301 #endif 455 302 456 #if !FIX_CAM_PARS_COLLECTOR457 Bool458 CamParsCollector::xIsComplete()459 {460 for( UInt uiView = 0; uiView <= m_uiMaxViewIndex; uiView++ )461 {462 if( m_bViewReceived[ uiView ] == 0 )463 {464 return false;465 }466 }467 return true;468 }469 #endif470 303 471 304 Void … … 474 307 if( m_pCodedScaleOffsetFile ) 475 308 { 476 #if FIX_CAM_PARS_COLLECTOR477 309 if( iPOC == m_firstReceivedPoc ) 478 #else479 if( iPOC == 0 )480 #endif481 310 { 482 311 fprintf( m_pCodedScaleOffsetFile, "# ViewIndex ViewId\n" ); 483 312 fprintf( m_pCodedScaleOffsetFile, "#----------- ------------\n" ); 484 #if FIX_CAM_PARS_COLLECTOR485 313 for( UInt uiViewIndex = 0; uiViewIndex <= m_uiMaxViewIndex; uiViewIndex++ ) 486 314 { 487 315 fprintf( m_pCodedScaleOffsetFile, "%12d %12d\n", uiViewIndex, m_vps->getViewIdVal( uiViewIndex ) ); 488 #else489 for( UInt uiViewIndex = 0; uiViewIndex <= m_uiMaxViewIndex; uiViewIndex++ )490 {491 fprintf( m_pCodedScaleOffsetFile, "%12d %12d\n", uiViewIndex, m_aiViewId[ uiViewIndex ] );492 #endif493 316 } 494 317 fprintf( m_pCodedScaleOffsetFile, "\n\n"); … … 496 319 fprintf( m_pCodedScaleOffsetFile, "#----------- ------------ ------------ ------------ ------------ ------------ ------------\n" ); 497 320 } 498 #if FIX_CAM_PARS_COLLECTOR499 321 if( iPOC == m_firstReceivedPoc || m_bCamParsVaryOverTime ) 500 #else501 if( iPOC == 0 || m_bCamParsVaryOverTime )502 #endif503 322 { 504 323 Int iS = iPOC; … … 510 329 if( uiViewIndex != uiBaseIndex ) 511 330 { 512 #if FIX_CAM_PARS_COLLECTOR513 331 if ( m_receivedIdc[uiBaseIndex][uiViewIndex] != 0 ) 514 332 { … … 516 334 iS, iE, uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_vps->getCamParPrecision() ); 517 335 } 518 #else519 fprintf( m_pCodedScaleOffsetFile, "%12d %12d %12d %12d %12d %12d %12d\n",520 iS, iE, uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_uiCamParsCodedPrecision );521 #endif522 523 336 } 524 337 } … … 641 454 for( Int temporalLayer=0; temporalLayer < MAX_TLAYER; temporalLayer++) 642 455 { 643 #if H_MV _HLS_7_SPS_P0155_16_32456 #if H_MV 644 457 numReorderPics[temporalLayer] = ( getLayerId() == 0 ) ? pcSlice->getSPS()->getNumReorderPics(temporalLayer) : pcSlice->getVPS()->getNumReorderPics(temporalLayer); 645 458 #else … … 647 460 #endif 648 461 } 649 #if H_MV _HLS_7_SPS_P0155_16_32462 #if H_MV 650 463 if ( getLayerId() == 0 ) 651 464 { -
branches/HTM-10.1-dev0/source/Lib/TLibDecoder/TDecTop.h
r881 r882 71 71 ~CamParsCollector (); 72 72 73 #if FIX_CAM_PARS_COLLECTOR74 73 Void init ( FILE* pCodedScaleOffsetFile, TComVPS* vps ); 75 #else76 Void init ( FILE* pCodedScaleOffsetFile );77 #endif78 74 79 75 Void uninit (); … … 94 90 95 91 private: 96 #if FIX_CAM_PARS_COLLECTOR97 92 Void xResetReceivedIdc( Bool overWriteFlag ); 98 #else99 Bool xIsComplete ();100 #endif101 93 Void xOutput ( Int iPOC ); 102 94 … … 108 100 Int** m_aaiCodedScale; 109 101 110 #if !FIX_CAM_PARS_COLLECTOR111 Int* m_aiViewId;112 #else113 102 TComVPS* m_vps; 114 103 Int** m_receivedIdc; … … 116 105 Int m_lastPoc; 117 106 Int m_firstReceivedPoc; 118 #endif 119 120 121 #if !FIX_CAM_PARS_COLLECTOR 122 Bool* m_bViewReceived; 123 UInt m_uiCamParsCodedPrecision; 124 #endif 107 108 125 109 Bool m_bCamParsVaryOverTime; 126 #if !FIX_CAM_PARS_COLLECTOR127 Int m_iLastViewIndex;128 Int m_iLastPOC;129 UInt m_uiMaxViewIndex;130 #endif131 132 110 133 111 UInt m_uiBitDepthForLUT; -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/NALwrite.cpp
r872 r882 91 91 vector<uint8_t>& rbsp = nalu.m_Bitstream.getFIFO(); 92 92 93 #if H_MV _HLS_7_MISC_P0130_EOS// This will handle situation when writing NAL with zero payload93 #if H_MV // This will handle situation when writing NAL with zero payload 94 94 if (rbsp.size() == 0) return; 95 95 #endif -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/SEIwrite.cpp
r872 r882 93 93 fprintf( g_hTrace, "=========== Scalable Nesting SEI message ===========\n"); 94 94 break; 95 #if H_MV _HLS_7_SEI_P0204_2695 #if H_MV 96 96 case SEI::SUB_BITSTREAM_PROPERTY: 97 97 fprintf( g_hTrace, "=========== Sub-bitstream property SEI message ===========\n"); … … 151 151 xWriteSEIScalableNesting(bs, *static_cast<const SEIScalableNesting*>(&sei), sps); 152 152 break; 153 #if H_MV _HLS_7_SEI_P0204_26153 #if H_MV 154 154 case SEI::SUB_BITSTREAM_PROPERTY: 155 155 xWriteSEISubBitstreamProperty(*static_cast<const SEISubBitstreamProperty*>(&sei)); … … 589 589 } 590 590 591 #if H_MV _HLS_7_SEI_P0204_26591 #if H_MV 592 592 Void SEIWriter::xWriteSEISubBitstreamProperty(const SEISubBitstreamProperty &sei) 593 593 { -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/SEIwrite.h
r872 r882 66 66 Void xWriteSEISOPDescription(const SEISOPDescription& sei); 67 67 Void xWriteSEIScalableNesting(TComBitIf& bs, const SEIScalableNesting& sei, TComSPS *sps); 68 #if H_MV _HLS_7_SEI_P0204_2668 #if H_MV 69 69 Void xWriteSEISubBitstreamProperty(const SEISubBitstreamProperty &sei); 70 70 #endif -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r877 r882 272 272 WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag"); 273 273 274 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION275 274 #if !H_MV 276 275 WRITE_FLAG( 0, "pps_extension_flag" ); … … 290 289 if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_MV ) ) 291 290 { 292 #if H_MV_HLS_7_POC_P0041293 291 WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag( ) ? 1 : 0 , "poc_reset_info_present_flag" ); 294 #endif295 292 } 296 293 … … 303 300 304 301 #endif 305 #else 306 #if !H_3D 307 WRITE_FLAG( 0, "pps_extension_flag" ); 308 #else 309 WRITE_FLAG( 1, "pps_extension_flag" ); 310 codePPSExtension( pcPPS ); 311 WRITE_FLAG( 0, "pps_extension2_flag" ); 312 #endif 313 #endif 302 314 303 } 315 304 … … 725 714 #endif 726 715 WRITE_UVLC( pcSPS->getBitsForPOC()-4, "log2_max_pic_order_cnt_lsb_minus4" ); 727 #if H_MV _HLS_7_SPS_P0155_16_32716 #if H_MV 728 717 if ( pcSPS->getLayerId() == 0 ) 729 718 { … … 741 730 } 742 731 } 743 #if H_MV _HLS_7_SPS_P0155_16_32732 #if H_MV 744 733 } 745 734 #endif … … 871 860 WRITE_SVLC( pcSPS->getScaledRefLayerRightOffset( j ), "scaled_ref_layer_right_offset" ); 872 861 WRITE_SVLC( pcSPS->getScaledRefLayerBottomOffset( j ), "scaled_ref_layer_bottom_offset" ); 873 #if H_MV_HLS_7_RESERVED_FLAGS874 862 WRITE_FLAG( 0, "sps_multilayer_ext_reserved_zero_flag[ j ]" ); 875 #endif876 863 } 877 864 } … … 904 891 WRITE_FLAG( pcVPS->getTemporalNestingFlag(), "vps_temporal_id_nesting_flag" ); 905 892 assert (pcVPS->getMaxTLayers()>1||pcVPS->getTemporalNestingFlag()); 906 #if H_MV_HLS_7_VPS_P0125_24907 893 WRITE_CODE( 0xffff, 16, "vps_reserved_ffff_16bits" ); 908 #else909 #if H_MV && !H_MV_HLS7_GEN910 WRITE_CODE( 0xffff, 16, "vps_extension_offset" );911 #else912 WRITE_CODE( 0xffff, 16, "vps_reserved_ffff_16bits" );913 #endif914 #endif915 894 codePTL( pcVPS->getPTL(), true, pcVPS->getMaxTLayers() - 1 ); 916 895 const Bool subLayerOrderingInfoPresentFlag = 1; … … 1010 989 { 1011 990 WRITE_FLAG( pcVPS->getAvcBaseLayerFlag() ? 1 : 0, "avc_base_layer_flag" ); 1012 #if !H_MV_HLS_7_VPS_P0307_231013 WRITE_FLAG( pcVPS->getVpsVuiPresentFlag() ? 1 : 0 , "vps_vui_present_flag" );1014 if ( pcVPS->getVpsVuiPresentFlag() )1015 {1016 WRITE_CODE( pcVPS->getVpsVuiOffset( ), 16, "vps_vui_offset" ); // TBD1017 }1018 #endif1019 1020 991 WRITE_FLAG( pcVPS->getSplittingFlag() ? 1 : 0, "splitting_flag" ); 1021 992 1022 993 for( Int type = 0; type < MAX_NUM_SCALABILITY_TYPES; type++ ) 1023 994 { … … 1042 1013 { 1043 1014 WRITE_CODE( pcVPS->getLayerIdInNuh( i ), 6, "layer_id_in_nuh[i]"); 1044 }1015 } 1045 1016 else 1046 1017 { 1047 1018 assert( pcVPS->getLayerIdInNuh( i ) == i ); 1048 }1019 } 1049 1020 1050 1021 assert( pcVPS->getLayerIdInVps( pcVPS->getLayerIdInNuh( i ) ) == i ); … … 1064 1035 1065 1036 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1037 WRITE_CODE( pcVPS->getViewIdLen( ), 4, "view_id_len" ); 1038 1039 if ( pcVPS->getViewIdLen( ) > 0 ) 1040 { 1041 for( Int i = 0; i < pcVPS->getNumViews(); i++ ) 1042 { 1043 WRITE_CODE( pcVPS->getViewIdVal( i ), pcVPS->getViewIdLen( ), "view_id_val[i]" ); 1044 } 1045 } 1046 else 1047 { 1048 for( Int i = 0; i < pcVPS->getNumViews(); i++ ) 1049 { 1050 assert( pcVPS->getViewIdVal( i ) == 0 ); 1051 } 1052 } 1082 1053 1083 1054 … … 1122 1093 1123 1094 WRITE_FLAG( pcVPS->getAllRefLayersActiveFlag( ) ? 1 : 0 , "all_ref_layers_active_flag" ); 1124 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271125 WRITE_CODE( pcVPS->getVpsNumberLayerSetsMinus1( ) , 10, "vps_number_layer_sets_minus1" );1126 #endif1127 1128 #if !H_MV_HLS_7_VPS_P0306_221129 WRITE_CODE( pcVPS->getVpsNumProfileTierLevelMinus1( ), 6, "vps_num_profile_tier_level_minus1" );1130 #else1131 1095 WRITE_UVLC( pcVPS->getVpsNumProfileTierLevelMinus1( ), "vps_num_profile_tier_level_minus1" ); 1132 #endif1133 1096 1134 1097 for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ ) 1135 1098 { 1136 1099 WRITE_FLAG( pcVPS->getVpsProfilePresentFlag( i ) ? 1 : 0, "vps_profile_present_flag[i]" ); 1137 #if !H_MV_HLS_7_VPS_P0048_141138 if( !pcVPS->getVpsProfilePresentFlag( i ) )1139 {1140 WRITE_CODE( pcVPS->getProfileRefMinus1( i ), 6, "profile_ref_minus1[i]" );1141 pcVPS->checkProfileRefMinus1( i );1142 }1143 #endif1144 1100 codePTL( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers() - 1 ); 1145 1101 } 1146 1102 1147 1148 1149 1150 1151 1152 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271153 1103 WRITE_UVLC( pcVPS->getNumAddOutputLayerSets( ), "num_add_output_layer_sets" ); 1154 1104 … … 1157 1107 WRITE_CODE( pcVPS->getDefaultTargetOutputLayerIdc( ), 2, "default_target_output_layer_idc" ); 1158 1108 } 1159 #else 1160 Int numOutputLayerSets = pcVPS->getVpsNumberLayerSetsMinus1( ) + 1; 1161 1162 WRITE_FLAG( pcVPS->getMoreOutputLayerSetsThanDefaultFlag( ) ? 1 : 0, "more_output_layer_sets_than_default_flag" ); 1163 1164 if ( pcVPS->getMoreOutputLayerSetsThanDefaultFlag( ) ) 1165 { 1166 WRITE_CODE( pcVPS->getNumAddOutputLayerSetsMinus1( ) , 10, "num_add_output_layer_sets_minus1" ); 1167 numOutputLayerSets += ( pcVPS->getNumAddOutputLayerSetsMinus1( ) + 1 ); 1168 } 1169 1170 if( numOutputLayerSets > 1) 1171 { 1172 WRITE_CODE( pcVPS->getDefaultOneTargetOutputLayerIdc( ), 2, "default_one_target_output_layer_idc" ); 1173 pcVPS->checkDefaultOneTargetOutputLayerIdc(); 1174 } 1175 #endif 1109 1176 1110 1177 1111 assert( pcVPS->getOutputLayerFlag(0, 0) == pcVPS->inferOutputLayerFlag( 0, 0 )); 1178 1112 assert( pcVPS->getOutputLayerSetIdxMinus1( 0 ) == -1 ); 1179 1113 1180 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271181 1182 1114 for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ ) 1183 1115 { 1184 1116 if( i > pcVPS->getVpsNumLayerSetsMinus1( ) ) 1185 #else1186 for( Int i = 1; i < numOutputLayerSets; i++ )1187 {1188 if( i > pcVPS->getVpsNumberLayerSetsMinus1( ) )1189 #endif1190 1117 { 1191 1118 WRITE_UVLC( pcVPS->getOutputLayerSetIdxMinus1( i ), "output_layer_set_idx_minus1[i]" ); 1192 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271193 1119 } 1194 1120 … … 1208 1134 } 1209 1135 1210 #else1211 for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1 ; j++ )1212 {1213 WRITE_FLAG( pcVPS->getOutputLayerFlag( i, j) ? 1 : 0, "output_layer_flag" );1214 }1215 }1216 else1217 { // These inference rules would also be helpful in spec text1218 assert( pcVPS->getOutputLayerSetIdxMinus1(i ) == i - 1 );1219 for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1; j++ )1220 {1221 assert( pcVPS->getOutputLayerFlag( i , j ) == pcVPS->inferOutputLayerFlag( i, j ));1222 }1223 }1224 #endif1225 1136 if ( pcVPS->getProfileLevelTierIdxLen() > 0 ) 1226 1137 { 1227 1138 WRITE_CODE( pcVPS->getProfileLevelTierIdx( i ), pcVPS->getProfileLevelTierIdxLen() ,"profile_level_tier_idx[ i ]" ); 1228 1139 } 1229 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271230 1140 if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 ) 1231 1141 { … … 1233 1143 } 1234 1144 } 1235 #else1236 }1237 1238 if( pcVPS->getMaxLayersMinus1() > 0 )1239 {1240 WRITE_FLAG( pcVPS->getAltOutputLayerFlag( ) ? 1 : 0 , "alt_output_layer_flag" );1241 }1242 #endif1243 1244 1245 1246 1247 1145 1248 1146 WRITE_FLAG( pcVPS->getRepFormatIdxPresentFlag( ) ? 1 : 0 , "rep_format_idx_present_flag" ); 1249 1147 if ( pcVPS->getRepFormatIdxPresentFlag() ) 1250 1148 { 1251 #if H_MV_HLS_7_VPS_P0306_221252 1149 WRITE_UVLC( pcVPS->getVpsNumRepFormatsMinus1( ), "vps_num_rep_formats_minus1" ); 1253 #else1254 WRITE_CODE( pcVPS->getVpsNumRepFormatsMinus1( ), 4, "vps_num_rep_formats_minus1" );1255 #endif1256 1150 } 1257 1151 … … 1269 1163 if( pcVPS->getVpsNumRepFormatsMinus1() > 0 ) 1270 1164 { 1271 #if H_MV_HLS_7_VPS_P0306_221272 1165 WRITE_CODE( pcVPS->getVpsRepFormatIdx(i), pcVPS->getVpsRepFormatIdxLen(), "vps_rep_format_idx[i]" ); 1273 #else1274 WRITE_CODE( pcVPS->getVpsRepFormatIdx( i ), 8, "vps_rep_format_idx" );1275 #endif1276 1166 } 1277 1167 } … … 1289 1179 } 1290 1180 } 1291 #if H_MV_HLS_7_RESERVED_FLAGS1292 1181 WRITE_FLAG( 0, "vps_reserved_zero_flag" ); 1293 #endif1294 1182 codeDpbSize( pcVPS ); 1295 1183 … … 1321 1209 } 1322 1210 } 1323 #if H_MV_HLS_7_VPS_P0307_231324 1211 WRITE_UVLC( 0, "vps_non_vui_extension_length" ); 1325 1212 WRITE_FLAG( pcVPS->getVpsVuiPresentFlag() ? 1 : 0 , "vps_vui_present_flag" ); 1326 #endif 1327 #if !H_MV_HLS_7_RESERVED_FLAGS 1328 WRITE_FLAG ( 0, "vps_shvc_reserved_zero_flag" ); 1329 #endif 1330 if( pcVPS->getVpsVuiPresentFlag() ) 1331 { 1332 m_pcBitIf->writeAlignOne(); // vps_vui_alignment_bit_equal_to_one 1333 codeVPSVUI( pcVPS ); 1334 } 1335 #if H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG 1336 { 1337 TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( ); 1338 assert( pcVPSVUI ); 1339 pcVPSVUI->inferVpsVui( true ); 1340 } 1341 #endif 1342 } 1213 if( pcVPS->getVpsVuiPresentFlag() ) 1214 { 1215 m_pcBitIf->writeAlignOne(); // vps_vui_alignment_bit_equal_to_one 1216 codeVPSVUI( pcVPS ); 1217 } 1218 { 1219 TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( ); 1220 assert( pcVPSVUI ); 1221 pcVPSVUI->inferVpsVui( true ); 1222 } 1223 } 1224 1343 1225 Void TEncCavlc::codeVideoSignalInfo( TComVideoSignalInfo* pcVideoSignalInfo ) 1344 1226 { … … 1359 1241 { 1360 1242 WRITE_FLAG( dpbSize->getSubLayerFlagInfoPresentFlag( i ) ? 1 : 0 , "sub_layer_flag_info_present_flag" ); 1361 #if H_MV_HLS_7_HRD_P0156_71362 1243 for( Int j = 0; j <= vps->getMaxSubLayersInLayerSetMinus1( i ); j++ ) 1363 #else1364 for( Int j = 0; j <= vps->getMaxTLayers() - 1 ; j++ )1365 #endif1366 1244 { 1367 1245 if( j > 0 && dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) ) … … 1371 1249 if( dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) ) 1372 1250 { 1373 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271374 1251 for( Int k = 0; k < vps->getNumSubDpbs( vps->getLayerSetIdxForOutputLayerSet( i )); k++ ) 1375 #else1376 for( Int k = 0; k < vps->getNumSubDpbs( vps->getOutputLayerSetIdxMinus1( i ) + 1 ); k++ ) // Preliminary fix does not match with spec1377 #endif1378 1252 { 1379 1253 WRITE_UVLC( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ), "max_vps_dec_pic_buffering_minus1" ); … … 1395 1269 if ( j > 0 ) 1396 1270 { 1397 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271398 1271 for( Int k = 0; k < vps->getNumSubDpbs( vps->getLayerSetIdxForOutputLayerSet( i ) ); k++ ) 1399 #else1400 for( Int k = 0; k < vps->getNumSubDpbs( vps->getOutputLayerSetIdxMinus1( i ) + 1 ); k++ )1401 #endif1402 1272 { 1403 1273 assert( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ) == dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) ); … … 1451 1321 WRITE_FLAG( pcVPSVUI->getCrossLayerIrapAlignedFlag( ) ? 1 : 0 , "cross_layer_irap_aligned_flag" ); 1452 1322 } 1453 #if H_MV_HLS_7_MISC_P0068_211454 1323 if( pcVPSVUI->getCrossLayerIrapAlignedFlag( ) ) 1455 1324 { 1456 1325 WRITE_FLAG( pcVPSVUI->getAllLayersIdrAlignedFlag( ) ? 1 : 0 , "all_layers_idr_aligned_flag" ); 1457 1326 } 1458 #endif1459 1327 WRITE_FLAG( pcVPSVUI->getBitRatePresentVpsFlag( ) ? 1 : 0 , "bit_rate_present_vps_flag" ); 1460 1328 WRITE_FLAG( pcVPSVUI->getPicRatePresentVpsFlag( ) ? 1 : 0 , "pic_rate_present_vps_flag" ); 1461 1329 if( pcVPSVUI->getBitRatePresentVpsFlag( ) || pcVPSVUI->getPicRatePresentVpsFlag( ) ) 1462 1330 { 1463 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_271464 1331 for( Int i = 0; i <= pcVPS->getVpsNumLayerSetsMinus1(); i++ ) 1465 #else1466 for( Int i = 0; i <= pcVPS->getVpsNumberLayerSetsMinus1(); i++ )1467 #endif1468 1332 { 1469 1333 for( Int j = 0; j <= pcVPS->getMaxTLayers(); j++ ) … … 1491 1355 } 1492 1356 1493 #if H_MV_HLS_7_VPS_P0076_151494 1357 WRITE_FLAG( pcVPSVUI->getVideoSignalInfoIdxPresentFlag( ) ? 1 : 0 , "video_signal_info_idx_present_flag" ); 1495 1358 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ) … … 1525 1388 } 1526 1389 } 1527 #endif1528 1390 WRITE_FLAG( pcVPSVUI->getTilesNotInUseFlag( ) ? 1 : 0 , "tiles_not_in_use_flag" ); 1529 1391 if( !pcVPSVUI->getTilesNotInUseFlag() ) … … 1560 1422 } 1561 1423 } 1562 #if H_MV_HLS_7_RESERVED_FLAGS1563 1424 WRITE_CODE( 0, 3, "vps_vui_reserved_zero_3bits" ); 1564 #endif1565 1425 WRITE_FLAG( pcVPSVUI->getIlpRestrictedRefLayersFlag( ) ? 1 : 0 , "ilp_restricted_ref_layers_flag" ); 1566 1426 … … 1584 1444 } 1585 1445 1586 #if !H_MV_HLS_7_VPS_P0076_15 1587 WRITE_FLAG( pcVPSVUI->getVideoSignalInfoIdxPresentFlag( ) ? 1 : 0 , "video_signal_info_idx_present_flag" ); 1588 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ) 1589 { 1590 WRITE_CODE( pcVPSVUI->getVpsNumVideoSignalInfoMinus1( ), 4, "vps_num_video_signal_info_minus1" ); 1591 } 1592 else 1593 { 1594 pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() ); 1595 } 1596 1597 for( Int i = 0; i <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1(); i++ ) 1598 { 1599 assert( pcVPSVUI->getVideoSignalInfo( i ) != NULL ); 1600 TComVideoSignalInfo* curVideoSignalInfo = pcVPSVUI->getVideoSignalInfo( i ); 1601 codeVideoSignalInfo( curVideoSignalInfo ); 1602 } 1603 1604 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 ) 1605 { 1606 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1607 { 1608 WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" ); 1609 assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() ); 1610 } 1611 } 1612 else 1613 { 1614 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1615 { 1616 assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) == ( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i ) ); 1617 } 1618 } 1619 #endif 1446 1620 1447 WRITE_FLAG( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) ? 1 : 0 , "vps_vui_bsp_hrd_present_flag" ); 1621 1448 if ( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) ) … … 1623 1450 codeVpsVuiBspHrdParameters( pcVPS ); 1624 1451 } 1625 #if H_MV_HLS_7_MISC_P0182_131626 1452 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1627 1453 { … … 1630 1456 WRITE_FLAG( pcVPSVUI->getBaseLayerParameterSetCompatibilityFlag( i ) ? 1 : 0 , "base_layer_parameter_set_compatibility_flag" ); 1631 1457 } 1632 } 1633 #endif 1458 } 1634 1459 } 1635 1460 … … 2225 2050 #endif 2226 2051 2227 #if !H_MV_HLS_7_POC_P0041 2228 #if PPS_FIX_DEPTH 2229 if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag() || pcSlice->getIsDepth() ) 2230 #else 2231 if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag()) 2232 #endif 2233 { 2234 WRITE_UVLC(0,"slice_header_extension_length"); 2235 } 2236 #endif 2237 2238 #if H_MV_HLS_7_POC_P0041 2052 2239 2053 #if !H_MV 2240 2054 if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag()) … … 2344 2158 } 2345 2159 #endif 2346 #endif2347 2160 } 2348 2161 -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncCfg.h
r876 r882 347 347 348 348 Bool m_useStrongIntraSmoothing; ///< enable the use of strong intra smoothing (bi_linear interpolation) for 32x32 blocks when reference samples are flat. 349 #if H_MV _HLS_7_SEI_P0204_26349 #if H_MV 350 350 Bool m_subBistreamPropSEIEnabled; 351 351 Int m_numAdditionalSubStreams; … … 785 785 Int getScalableNestingSEIEnabled() { return m_scalableNestingSEIEnabled; } 786 786 787 #if H_MV _HLS_7_SEI_P0204_26787 #if H_MV 788 788 Bool getSubBitstreamPropSEIEnabled() { return m_subBistreamPropSEIEnabled;} 789 789 Void setSubBitstreamPropSEIEnabled(Bool x) { m_subBistreamPropSEIEnabled = x;} -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r881 r882 1794 1794 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1795 1795 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1796 #if !UPDATE_HM131797 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );1798 #endif1799 1796 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 1800 1797 #if H_3D_IC … … 2085 2082 { 2086 2083 2087 #if UPDATE_HM132088 2084 #if H_3D 2089 2085 const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0); 2090 #endif2091 2086 #endif 2092 2087 #if H_3D_FAST_TEXTURE_ENCODING … … 2109 2104 if( bFirstTime == false && rpcTempCU->getSlice()->getVPS()->getUseAdvRP( iLayerId ) ) 2110 2105 { 2111 #if UPDATE_HM132112 2106 rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0),bTransquantBypassFlag ); 2113 #else2114 rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0) );2115 #endif2116 2107 } 2117 2108 #endif … … 2222 2213 { 2223 2214 Int orgQP = rpcBestCU->getQP( 0 ); 2224 #if UPDATE_HM132225 2215 rpcTempCU->initEstData( uhDepth, orgQP ,bTransquantBypassFlag ); 2226 #else2227 rpcTempCU->initEstData( uhDepth, orgQP );2228 #endif2229 2216 rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth ); 2230 2217 } -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r872 r882 296 296 } 297 297 298 #if H_MV _HLS_7_SEI_P0204_26298 #if H_MV 299 299 SEISubBitstreamProperty *TEncGOP::xCreateSEISubBitstreamProperty( TComSPS *sps) 300 300 { … … 365 365 delete sei; 366 366 } 367 #if H_MV _HLS_7_SEI_P0204_26367 #if H_MV 368 368 if( m_pcCfg->getSubBitstreamPropSEIEnabled() ) 369 369 { -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncGOP.h
r872 r882 212 212 213 213 SEIToneMappingInfo* xCreateSEIToneMappingInfo(); 214 #if H_MV _HLS_7_SEI_P0204_26214 #if H_MV 215 215 SEISubBitstreamProperty *xCreateSEISubBitstreamProperty( TComSPS *sps); 216 216 #endif -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r881 r882 4601 4601 } 4602 4602 else 4603 #if H_3D_FIX_G0148_BRACE4604 4603 { 4605 #endif4606 4604 #endif 4607 4605 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4608 4606 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 4609 4607 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4610 #if H_3D _FIX_G0148_BRACE4608 #if H_3D 4611 4609 } 4612 4610 #endif -
branches/HTM-10.1-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r872 r882 667 667 m_cSPS.setSPSId( getLayerIdInVps() ); 668 668 m_cSPS.setLayerId( getLayerId() ); 669 #endif670 #if H_MV_HLS_7_VPS_P0048_14671 669 // Code below needs to be moved to VPS 672 670 #endif … … 832 830 m_cPPS.setSPSId( getLayerIdInVps() ); 833 831 834 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION835 #if H_MV836 832 m_cPPS.setPpsExtensionTypeFlag ( PPS_EX_T_MV ,true ); 837 833 #if H_3D 838 834 m_cPPS.setPpsExtensionTypeFlag ( PPS_EX_T_3D ,true ); 839 #endif840 #endif841 835 #endif 842 836 #endif
Note: See TracChangeset for help on using the changeset viewer.