- Timestamp:
- 17 Jun 2013, 03:02:26 (12 years ago)
- Location:
- branches/SHM-2.1-dev/source/Lib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r288 r289 75 75 , m_iDepth ( 0 ) 76 76 , m_bRefenced ( false ) 77 #if SH_DISCARDABLE_FLAG 78 , m_bDiscardableFlag ( false ) 79 #endif 77 80 , m_pcSPS ( NULL ) 78 81 , m_pcPPS ( NULL ) -
branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h
r288 r289 1469 1469 Bool m_bRefenced; 1470 1470 1471 #if SH_DISCARDABLE_FLAG 1472 Bool m_bDiscardableFlag; 1473 #endif 1474 1471 1475 // access channel 1472 1476 TComVPS* m_pcVPS; … … 1628 1632 Bool isRADL() { return (m_eNalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || m_eNalUnitType == NAL_UNIT_CODED_SLICE_RADL_R); } 1629 1633 Bool isRASL() { return (m_eNalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || m_eNalUnitType == NAL_UNIT_CODED_SLICE_RASL_R); } 1634 #endif 1635 1636 #if SH_DISCARDABLE_FLAG 1637 Bool getDiscardableFlag () { return m_bDiscardableFlag; } 1638 Void setDiscardableFlag (Bool b) { m_bDiscardableFlag = b; } 1630 1639 #endif 1631 1640 -
branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h
r288 r289 60 60 #define VPS_PROFILE_OUTPUT_LAYERS 1 ///< M0268: Signal profile information and output layer information as in Sec. 3 of M0268v2 61 61 #define SPS_SUB_LAYER_INFO 1 ///< M0268: Do not signal sps_max_sub_layers_minus1 and sps_temporal_id_nesting_flag for nuh_layer_id greater than 0 62 #endif 62 #define VPS_SPLIT_FLAG 1 ///< M0163: Do not signal dimension_id and the last dimension_id_len_minus1, when splitting_flag is equal to 1. 63 #endif 64 65 #define SH_DISCARDABLE_FLAG 1 ///< M0152: Use one reserved flag in the slice header for discardable flag 63 66 64 67 #define DERIVE_LAYER_ID_LIST_VARIABLES 1 ///< Derived variables based on the variables in VPS - for use in syntax table parsing -
branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r288 r289 920 920 vps->setNumScalabilityTypes(numScalabilityTypes); 921 921 922 #if VPS_SPLIT_FLAG 923 for(j = 0; j < numScalabilityTypes - vps->getSplittingFlag(); j++) 924 #else 922 925 for(j = 0; j < numScalabilityTypes; j++) 926 #endif 923 927 { 924 928 READ_CODE( 3, uiCode, "dimension_id_len_minus1[j]" ); vps->setDimensionIdLen(j, uiCode + 1); 925 929 } 930 #if VPS_SPLIT_FLAG 931 if(vps->getSplittingFlag()) 932 { 933 UInt numBits = 0; 934 for(j = 0; j < numScalabilityTypes - 1; j++) 935 { 936 numBits += vps->getDimensionIdLen(j); 937 } 938 assert( numBits < 6 ); 939 vps->setDimensionIdLen(numScalabilityTypes-1, 6 - numBits); 940 numBits = 6; 941 } 942 #else 926 943 if(vps->getSplittingFlag()) 927 944 { … … 933 950 assert( numBits <= 6 ); 934 951 } 952 #endif 935 953 936 954 READ_FLAG( uiCode, "vps_nuh_layer_id_present_flag" ); vps->setNuhLayerIdPresentFlag(uiCode ? true : false); … … 950 968 vps->setLayerIdInVps(vps->getLayerIdInNuh(i), i); 951 969 970 #if VPS_SPLIT_FLAG 971 if(!vps->getSplittingFlag()) 972 #endif 952 973 for(j = 0; j < numScalabilityTypes; j++) 953 974 { … … 1193 1214 if(!rpcSlice->getDependentSliceSegmentFlag()) 1194 1215 { 1216 1217 #if SH_DISCARDABLE_FLAG 1218 if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits()>0) 1219 { 1220 READ_FLAG(uiCode, "discardable_flag"); // ignored 1221 } 1222 for (Int i = 1; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 1223 { 1224 READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored 1225 } 1226 #else 1195 1227 for (Int i = 0; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 1196 1228 { 1197 1229 READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored 1198 1230 } 1231 #endif 1199 1232 1200 1233 READ_UVLC ( uiCode, "slice_type" ); rpcSlice->setSliceType((SliceType)uiCode); -
branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r288 r289 726 726 } 727 727 728 #if VPS_SPLIT_FLAG 729 for(j = 0; j < vps->getNumScalabilityTypes() - vps->getSplittingFlag(); j++) 730 #else 728 731 for(j = 0; j < vps->getNumScalabilityTypes(); j++) 732 #endif 729 733 { 730 734 WRITE_CODE( vps->getDimensionIdLen(j) - 1, 3, "dimension_id_len_minus1[j]" ); … … 738 742 WRITE_CODE( vps->getLayerIdInNuh(i), 6, "layer_id_in_nuh[i]" ); 739 743 } 744 #if VPS_SPLIT_FLAG 745 if(!vps->getSplittingFlag()) 746 #endif 740 747 for(j = 0; j < vps->getNumScalabilityTypes(); j++) 741 748 { … … 904 911 if ( !pcSlice->getDependentSliceSegmentFlag() ) 905 912 { 906 for (Int i = 0; i < pcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 913 914 #if SH_DISCARDABLE_FLAG 915 if (pcSlice->getPPS()->getNumExtraSliceHeaderBits()>0) 916 { 917 assert(!!"discardable_flag"); 918 WRITE_FLAG(pcSlice->getDiscardableFlag(), "discardable_flag"); 919 } 920 for (Int i = 1; i < pcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 907 921 { 908 922 assert(!!"slice_reserved_undetermined_flag[]"); 909 923 WRITE_FLAG(0, "slice_reserved_undetermined_flag[]"); 910 924 } 925 #else 926 for (Int i = 0; i < pcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 927 { 928 assert(!!"slice_reserved_undetermined_flag[]"); 929 WRITE_FLAG(0, "slice_reserved_undetermined_flag[]"); 930 } 931 #endif 911 932 912 933 WRITE_UVLC( pcSlice->getSliceType(), "slice_type" );
Note: See TracChangeset for help on using the changeset viewer.