Changeset 580 in SHVCSoftware for branches/SHM-5.0-dev/source/Lib/TLibCommon
- Timestamp:
- 31 Jan 2014, 02:45:49 (11 years ago)
- Location:
- branches/SHM-5.0-dev/source/Lib/TLibCommon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-5.0-dev/source/Lib/TLibCommon/TComSlice.cpp
r579 r580 2302 2302 2303 2303 return scalIdx; 2304 } 2305 #endif 2306 #if VPS_DPB_SIZE_TABLE 2307 Void TComVPS::determineSubDpbInfoFlags() 2308 { 2309 for(Int i = 1; i < getNumOutputLayerSets(); i++) 2310 { 2311 Int layerSetIdxForOutputLayerSet = getOutputLayerSetIdx( i ); 2312 // For each output layer set, set the DPB size for each layer and the reorder/latency value the maximum for all layers 2313 Bool checkFlagOuter = false; // Used to calculate sub_layer_flag_info_present_flag 2314 Bool checkFlagInner[MAX_TLAYER]; // Used to calculate sub_layer_dpb_info_present_flag 2315 2316 for(Int j = 0; j < getMaxTLayers(); j++) 2317 { 2318 // -------------------------------------------------------- 2319 // To determine value of m_subLayerDpbInfoPresentFlag 2320 // -------------------------------------------------------- 2321 if( j == 0 ) // checkFlagInner[0] is always 1 2322 { 2323 checkFlagInner[j] = true; // Always signal sub-layer DPB information for the first sub-layer 2324 } 2325 else 2326 { 2327 checkFlagInner[j] = false; // Initialize to be false. If the values of the current sub-layers matches with the earlier sub-layer, 2328 // then will be continue to be false - i.e. the j-th sub-layer DPB info is not signaled 2329 checkFlagInner[j] |= ( getMaxVpsNumReorderPics(i, j) != getMaxVpsNumReorderPics(i, j - 1) ); 2330 #if CHANGE_NUMSUBDPB_IDX 2331 for(Int k = 0; k < getNumSubDpbs(layerSetIdxForOutputLayerSet) && !checkFlagInner[j]; k++) // If checkFlagInner[j] is true, break and signal the values 2332 #else 2333 for(Int k = 0; k < getNumSubDpbs(i) && !checkFlagInner[j]; k++) // If checkFlagInner[j] is true, break and signal the values 2334 #endif 2335 { 2336 checkFlagInner[j] |= ( getMaxVpsDecPicBufferingMinus1(i, k, j - 1) != getMaxVpsDecPicBufferingMinus1(i, k, j) ); 2337 } 2338 } 2339 // If checkFlagInner[j] = true, then some value needs to be signalled for the j-th sub-layer 2340 setSubLayerDpbInfoPresentFlag( i, j, checkFlagInner[j] ); 2341 } 2342 2343 // -------------------------------------------------------- 2344 // To determine value of m_subLayerFlagInfoPresentFlag 2345 // -------------------------------------------------------- 2346 2347 for(Int j = 1; j < getMaxTLayers(); j++) // Check if DPB info of any of non-zero sub-layers is signaled. If so set flag to one 2348 { 2349 if( getSubLayerDpbInfoPresentFlag(i, j) ) 2350 { 2351 checkFlagOuter = true; 2352 break; 2353 } 2354 } 2355 setSubLayerFlagInfoPresentFlag( i, checkFlagOuter ); 2356 } 2304 2357 } 2305 2358 #endif -
branches/SHM-5.0-dev/source/Lib/TLibCommon/TComSlice.h
r579 r580 1028 1028 Int getNumSubDpbs(Int i) { return m_numSubDpbs[i]; } 1029 1029 Void setNumSubDpbs(Int i, Int x) { m_numSubDpbs[i] = x; } 1030 Void determineSubDpbInfoFlags(); 1030 1031 #endif 1031 1032
Note: See TracChangeset for help on using the changeset viewer.