- Timestamp:
- 8 Oct 2013, 11:25:37 (11 years ago)
- Location:
- branches/SHM-3.1-dev/source
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-3.1-dev/source/App/TAppEncoder/TAppEncTop.cpp
r412 r414 1055 1055 #endif 1056 1056 } 1057 #if IL_SL_SIGNALLING_N0371 1058 for(i = 1; i < vps->getMaxLayers(); i++) 1059 { 1060 for(Int j = 0; j < i; j++) 1061 { 1062 vps->setScalingListLayerDependency( i, j, vps->checkLayerDependency( i,j ) ); 1063 } 1064 } 1065 #endif 1057 1066 #endif 1058 1067 #if JCTVC_M0458_INTERLAYER_RPS_SIG -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRom.cpp
r370 r414 526 526 Int g_mvScalingFactor [MAX_LAYERS][2] = {{0,0}, {0,0}}; 527 527 Int g_posScalingFactor [MAX_LAYERS][2] = {{0,0}, {0,0}}; 528 529 #if IL_SL_SIGNALLING_N0371 530 Int ref_scalingListDC [MAX_LAYERS][SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; 531 Int ref_scalingListCoef [MAX_LAYERS][SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][MAX_MATRIX_COEF_NUM]; 532 Int activeRefPPSId [MAX_LAYERS]; 533 Int activeRefSPSId [MAX_LAYERS]; 534 #endif 528 535 #endif 529 536 -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComRom.h
r370 r414 282 282 extern Int g_mvScalingFactor [MAX_LAYERS][2]; 283 283 extern Int g_posScalingFactor [MAX_LAYERS][2]; 284 285 #if IL_SL_SIGNALLING_N0371 286 extern Int ref_scalingListDC [MAX_LAYERS][SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; 287 extern Int ref_scalingListCoef [MAX_LAYERS][SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][MAX_MATRIX_COEF_NUM]; 288 extern Int activeRefPPSId [MAX_LAYERS]; 289 extern Int activeRefSPSId [MAX_LAYERS]; 290 #endif 284 291 #endif 285 292 -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r412 r414 46 46 47 47 #if SVC_EXTENSION 48 ParameterSetMap<TComVPS> ParameterSetManager::m_vpsMap(MAX_NUM_VPS); 49 Int ParameterSetManager::m_activeVPSId = -1; 48 ParameterSetMap<TComVPS> ParameterSetManager::m_vpsMap(MAX_NUM_VPS); 49 Int ParameterSetManager::m_activeVPSId = -1; 50 #if IL_SL_SIGNALLING_N0371 51 TComSPS* TComSPS::m_pcSPS[MAX_LAYERS]; 52 TComPPS* TComPPS::m_pcPPS[MAX_LAYERS]; 53 #endif 50 54 #endif 51 55 … … 1879 1883 } 1880 1884 #endif 1885 <<<<<<< .mine 1886 1887 #if IL_SL_SIGNALLING_N0371 1888 Bool TComVPS::checkLayerDependency(UInt i, UInt j) 1889 { 1890 if( this->getDirectDependencyFlag(i, j) == true ) 1891 { 1892 return true; 1893 } 1894 else 1895 { 1896 for(UInt k=i-1; k>j; k--) 1897 { 1898 if( this->getDirectDependencyFlag(i, k) == true ) 1899 { 1900 checkLayerDependency( k,j ); 1901 } 1902 } 1903 } 1904 return false; 1905 } 1906 #endif 1907 1908 ======= 1881 1909 #if VIEW_ID_RELATED_SIGNALING 1882 1910 Int TComVPS::getNumViews() … … 1912 1940 } 1913 1941 #endif 1942 >>>>>>> .r413 1914 1943 // ------------------------------------------------------------------------------------------------ 1915 1944 // Sequence parameter set (SPS) … … 2382 2411 /** set default quantization matrix to array 2383 2412 */ 2413 #if IL_SL_SIGNALLING_N0371 2414 Void TComSlice::setDefaultScalingList( UInt layerId ) 2415 #else 2384 2416 Void TComSlice::setDefaultScalingList() 2417 #endif 2385 2418 { 2386 2419 for(UInt sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++) … … 2388 2421 for(UInt listId=0;listId<g_scalingListNum[sizeId];listId++) 2389 2422 { 2423 #if IL_SL_SIGNALLING_N0371 2424 getScalingList()->processDefaultMarix(sizeId, listId, layerId); 2425 #else 2390 2426 getScalingList()->processDefaultMarix(sizeId, listId); 2427 #endif 2391 2428 } 2392 2429 } … … 2449 2486 { 2450 2487 src = getScalingListAddress(sizeIdc, listIdc); 2451 2452 2488 fseek(fp,0,0); 2453 2489 do … … 2563 2599 * \param Index of input matrix 2564 2600 */ 2601 #if IL_SL_SIGNALLING_N0371 2602 Void TComScalingList::processDefaultMarix(UInt sizeId, UInt listId, UInt layerId) 2603 #else 2565 2604 Void TComScalingList::processDefaultMarix(UInt sizeId, UInt listId) 2566 { 2605 #endif 2606 { 2607 #if IL_SL_SIGNALLING_N0371 2608 Int i,coefNum = min(MAX_MATRIX_COEF_NUM,(Int)g_scalingListSize[sizeId]); 2609 UInt* scan = (sizeId == 0) ? g_auiSigLastScan [ SCAN_DIAG ] [ 1 ] : g_sigLastScanCG32x32; 2610 Int *src = getScalingListDefaultAddress(sizeId, listId); 2611 #endif 2612 2567 2613 ::memcpy(getScalingListAddress(sizeId, listId),getScalingListDefaultAddress(sizeId,listId),sizeof(Int)*min(MAX_MATRIX_COEF_NUM,(Int)g_scalingListSize[sizeId])); 2614 2615 #if IL_SL_SIGNALLING_N0371 2616 for(i = 0; i < coefNum; i++) 2617 { 2618 ref_scalingListCoef[layerId][sizeId][listId][i] = src[scan[i]]; 2619 } 2620 #endif 2621 2568 2622 setScalingListDC(sizeId,listId,SCALING_LIST_DC); 2623 #if IL_SL_SIGNALLING_N0371 2624 ref_scalingListDC[layerId][sizeId][listId] = SCALING_LIST_DC; 2625 #endif 2569 2626 } 2570 2627 2571 2628 /** check DC value of matrix for default matrix signaling 2572 2629 */ 2630 #if IL_SL_SIGNALLING_N0371 2631 Void TComScalingList::checkDcOfMatrix( UInt layerId ) 2632 #else 2573 2633 Void TComScalingList::checkDcOfMatrix() 2634 #endif 2574 2635 { 2575 2636 for(UInt sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++) … … 2580 2641 if(getScalingListDC(sizeId,listId) == 0) 2581 2642 { 2643 #if IL_SL_SIGNALLING_N0371 2644 processDefaultMarix(sizeId, listId, layerId); 2645 #else 2582 2646 processDefaultMarix(sizeId, listId); 2647 #endif 2583 2648 } 2584 2649 } … … 2661 2726 m_activeVPSId = vpsId; 2662 2727 m_activeSPSId = spsId; 2728 2729 #if IL_SL_SIGNALLING_N0371 2730 activeRefPPSId[ sps->getLayerId() ] = ppsId; 2731 activeRefSPSId[ sps->getLayerId() ] = spsId; 2732 #endif 2733 2663 2734 return true; 2664 2735 } -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.h
r411 r414 156 156 Void setScalingListPresentFlag (Bool b) { m_scalingListPresentFlag = b; } 157 157 Bool getScalingListPresentFlag () { return m_scalingListPresentFlag; } 158 159 #if IL_SL_SIGNALLING_N0371 160 UInt m_layerId; 161 162 Void setPredScalingListFlag (Bool b) { m_predScalingListFlag = b; } 163 Bool getPredScalingListFlag () { return m_predScalingListFlag; } 164 Void setScalingListRefLayerId (UInt b) { m_scalingListRefLayerId = b; } 165 UInt getScalingListRefLayerId () { return m_scalingListRefLayerId; } 166 #endif 167 158 168 Bool getUseTransformSkip () { return m_useTransformSkip; } 159 169 Void setUseTransformSkip (Bool b) { m_useTransformSkip = b; } 170 160 171 Int* getScalingListAddress (UInt sizeId, UInt listId) { return m_scalingListCoef[sizeId][listId]; } //!< get matrix coefficient 172 161 173 Bool checkPredMode (UInt sizeId, UInt listId); 174 162 175 Void setRefMatrixId (UInt sizeId, UInt listId, UInt u) { m_refMatrixId[sizeId][listId] = u; } //!< set reference matrix ID 163 176 UInt getRefMatrixId (UInt sizeId, UInt listId) { return m_refMatrixId[sizeId][listId]; } //!< get reference matrix ID 164 177 Int* getScalingListDefaultAddress (UInt sizeId, UInt listId); //!< get default matrix coefficient 178 179 #if IL_SL_SIGNALLING_N0371 180 Void processDefaultMarix (UInt sizeId, UInt listId, UInt layerId ); 181 #else 165 182 Void processDefaultMarix (UInt sizeId, UInt listId); 183 #endif 184 166 185 Void setScalingListDC (UInt sizeId, UInt listId, UInt u) { m_scalingListDC[sizeId][listId] = u; } //!< set DC value 167 186 168 187 Int getScalingListDC (UInt sizeId, UInt listId) { return m_scalingListDC[sizeId][listId]; } //!< get DC value 188 189 #if IL_SL_SIGNALLING_N0371 190 Void setLayerId(UInt layerId) { m_layerId = layerId; } 191 UInt getLayerId() { return m_layerId; } 192 Void checkDcOfMatrix ( UInt m_layerId ); 193 #else 169 194 Void checkDcOfMatrix (); 195 #endif 196 170 197 Void processRefMatrix (UInt sizeId, UInt listId , UInt refListId ); 171 198 Bool xParseScalingList (Char* pchFile); … … 174 201 Void init (); 175 202 Void destroy (); 203 176 204 Int m_scalingListDC [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< the DC value of the matrix coefficient for 16x16 177 205 Bool m_useDefaultScalingMatrixFlag [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< UseDefaultScalingMatrixFlag 178 206 UInt m_refMatrixId [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< RefMatrixID 179 207 Bool m_scalingListPresentFlag; //!< flag for using default matrix 208 209 #if IL_SL_SIGNALLING_N0371 210 Bool m_predScalingListFlag; //!< flag for inter-layer scaling-list prediction 211 UInt m_scalingListRefLayerId; //!< scaling_list_ref_layer_id 212 #endif 213 180 214 UInt m_predMatrixId [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< reference list index 215 181 216 Int *m_scalingListCoef [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< quantization matrix 217 182 218 Bool m_useTransformSkip; //!< transform skipping flag for setting default scaling matrix for 4x4 183 219 }; … … 469 505 Int m_numLayerInIdList[MAX_VPS_LAYER_SETS_PLUS1]; 470 506 #endif 507 #if IL_SL_SIGNALLING_N0371 508 Bool m_scalingListLayerDependency[MAX_LAYERS][MAX_LAYERS]; // layer dependency for scaling list 509 #endif 471 510 TComPTL m_pcPTL; 472 511 TimingInfo m_timingInfo; … … 554 593 Int m_avgPicRate [MAX_VPS_LAYER_SETS_PLUS1][MAX_TLAYER]; 555 594 #endif 595 <<<<<<< .mine 596 597 ======= 556 598 #if REPN_FORMAT_IN_VPS 557 599 Bool m_repFormatIdxPresentFlag; … … 564 606 Int m_viewIdVal [MAX_LAYERS]; 565 607 #endif 608 >>>>>>> .r413 566 609 public: 567 610 TComVPS(); … … 629 672 Void deriveLayerIdListVariables(); 630 673 #endif 674 675 #if IL_SL_SIGNALLING_N0371 676 Bool checkLayerDependency(UInt i, UInt j); 677 Bool getScalingListLayerDependency ( UInt layerId, UInt refLayerId ) { return m_scalingListLayerDependency[layerId][refLayerId]; } 678 Void setScalingListLayerDependency ( UInt layerId, UInt refLayerId, Bool val ) { m_scalingListLayerDependency[layerId][refLayerId] = val; } 679 #endif 680 631 681 TComPTL* getPTL() { return &m_pcPTL; } 632 682 TimingInfo* getTimingInfo() { return &m_timingInfo; } … … 1083 1133 Bool m_scalingListEnabledFlag; 1084 1134 Bool m_scalingListPresentFlag; 1135 1085 1136 TComScalingList* m_scalingList; //!< ScalingList class pointer 1137 1086 1138 UInt m_uiMaxDecPicBuffering[MAX_TLAYER]; 1087 1139 UInt m_uiMaxLatencyIncrease[MAX_TLAYER]; // Really max latency increase plus 1 (value 0 expresses no limit) … … 1107 1159 #if SVC_EXTENSION 1108 1160 UInt m_layerId; 1161 1162 #if IL_SL_SIGNALLING_N0371 1163 TComVPS* m_pVPS; 1164 static TComSPS* m_pcSPS[MAX_LAYERS]; 1165 Bool m_predScalingListFlag; 1166 UInt m_scalingListRefLayerId; 1167 #endif 1168 1109 1169 #endif 1110 1170 #if REF_IDX_MFM … … 1229 1289 Bool getScalingListPresentFlag() { return m_scalingListPresentFlag; } 1230 1290 Void setScalingListPresentFlag( Bool b ) { m_scalingListPresentFlag = b; } 1291 1292 #if IL_SL_SIGNALLING_N0371 1293 Bool getPredScalingListFlag() { return m_predScalingListFlag; } 1294 Void setPredScalingListFlag( Bool b ) { m_predScalingListFlag = b; } 1295 UInt getScalingListRefLayerId() { return m_scalingListRefLayerId; } 1296 Void setScalingListRefLayerId( UInt b ) { m_scalingListRefLayerId = b; } 1297 1298 TComVPS* getVPS() { return m_pVPS; } 1299 Void setVPS( TComVPS* vps ) { m_pVPS = vps; } 1300 static TComSPS* getSPS(UInt layerId) { return m_pcSPS[layerId]; } 1301 static Void setSPS(UInt layerId, TComSPS* sps) { m_pcSPS[layerId] = sps; } 1302 #endif 1303 1231 1304 Void setScalingList ( TComScalingList *scalingList); 1232 1305 TComScalingList* getScalingList () { return m_scalingList; } //!< get ScalingList class pointer in SPS 1306 1233 1307 UInt getMaxDecPicBuffering (UInt tlayer) { return m_uiMaxDecPicBuffering[tlayer]; } 1234 1308 Void setMaxDecPicBuffering ( UInt ui, UInt tlayer ) { m_uiMaxDecPicBuffering[tlayer] = ui; } … … 1364 1438 Int m_deblockingFilterTcOffsetDiv2; //< tc offset for deblocking filter 1365 1439 Bool m_scalingListPresentFlag; 1440 1441 #if SVC_EXTENSION 1442 UInt m_layerId; 1443 1444 #if IL_SL_SIGNALLING_N0371 1445 static TComPPS* m_pcPPS[MAX_LAYERS]; 1446 Bool m_predScalingListFlag; 1447 UInt m_scalingListRefLayerId; 1448 #endif 1449 1450 #endif 1451 1366 1452 TComScalingList* m_scalingList; //!< ScalingList class pointer 1453 1367 1454 Bool m_listsModificationPresentFlag; 1368 1455 UInt m_log2ParallelMergeLevelMinus2; … … 1478 1565 Bool getScalingListPresentFlag() { return m_scalingListPresentFlag; } 1479 1566 Void setScalingListPresentFlag( Bool b ) { m_scalingListPresentFlag = b; } 1567 1568 #if IL_SL_SIGNALLING_N0371 1569 Void setLayerId(UInt layerId) { m_layerId = layerId; } 1570 UInt getLayerId() { return m_layerId; } 1571 1572 Bool getPredScalingListFlag() { return m_predScalingListFlag; } 1573 Void setPredScalingListFlag( Bool b ) { m_predScalingListFlag = b; } 1574 UInt getScalingListRefLayerId() { return m_scalingListRefLayerId; } 1575 Void setScalingListRefLayerId( UInt b ) { m_scalingListRefLayerId = b; } 1576 1577 static TComPPS* getPPS(UInt layerId) { return m_pcPPS[layerId]; } 1578 static Void setPPS(UInt layerId, TComPPS* pps) { m_pcPPS[layerId] = pps; } 1579 #endif 1580 1480 1581 Void setScalingList ( TComScalingList *scalingList); 1481 1582 TComScalingList* getScalingList () { return m_scalingList; } //!< get ScalingList class pointer in PPS … … 1879 1980 Void setScalingList ( TComScalingList* scalingList ) { m_scalingList = scalingList; } 1880 1981 TComScalingList* getScalingList () { return m_scalingList; } 1982 1983 #if IL_SL_SIGNALLING_N0371 1984 Void setDefaultScalingList ( UInt m_layerId ); 1985 #else 1881 1986 Void setDefaultScalingList (); 1987 #endif 1988 1882 1989 Bool checkDefaultScalingList (); 1883 1990 Void setCabacInitFlag ( Bool val ) { m_cabacInitFlag = val; } //!< set CABAC initial flag -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComTrQuant.cpp
r389 r414 2494 2494 /** set flat matrix value to quantized coefficient 2495 2495 */ 2496 #if IL_SL_SIGNALLING_N0371 2497 Void TComTrQuant::setFlatScalingList( UInt m_layerId ) 2498 #else 2496 2499 Void TComTrQuant::setFlatScalingList() 2500 #endif 2497 2501 { 2498 2502 UInt size,list; … … 2503 2507 for(list = 0; list < g_scalingListNum[size]; list++) 2504 2508 { 2509 #if IL_SL_SIGNALLING_N0371 2510 ref_scalingListDC[m_layerId][size][list] = SCALING_LIST_DC; 2511 for(UInt i=0; i<MAX_MATRIX_COEF_NUM; i++) 2512 { 2513 ref_scalingListCoef[m_layerId][size][list][i] = SCALING_LIST_DC; 2514 } 2515 #endif 2516 2505 2517 for(qp=0;qp<SCALING_LIST_REM_NUM;qp++) 2506 2518 { -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComTrQuant.h
r313 r414 181 181 Void setUseScalingList ( Bool bUseScalingList){ m_scalingListEnabledFlag = bUseScalingList; }; 182 182 Bool getUseScalingList (){ return m_scalingListEnabledFlag; }; 183 184 #if IL_SL_SIGNALLING_N0371 185 Void setFlatScalingList ( UInt m_layerId ); 186 #else 183 187 Void setFlatScalingList (); 188 #endif 189 184 190 Void xsetFlatScalingList ( UInt list, UInt size, UInt qp); 185 191 Void xSetScalingListEnc ( TComScalingList *scalingList, UInt list, UInt size, UInt qp); -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TypeDef.h
r413 r414 60 60 #define TEMP_SCALABILITY_FIX 1 ///< fix for temporal scalability 61 61 #endif 62 <<<<<<< .mine 63 #define IL_SL_SIGNALLING_N0371 1 ///< JCTVC-N0371: inter-layer scaling list 64 #define M0464_TILE_BOUNDARY_ALIGNED_FLAG 0 ///< VUI flag to indicate tile boundary alignment 65 ======= 66 >>>>>>> .r413 62 67 #define M0463_VUI_EXT_ILP_REF 0 ///< VUI extension inter-layer dependency offset signalling 63 68 #define SPS_EXTENSION 1 ///< Define sps_extension() syntax structure -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r411 r414 291 291 } 292 292 READ_FLAG( uiCode, "pps_scaling_list_data_present_flag" ); pcPPS->setScalingListPresentFlag( uiCode ? true : false ); 293 294 #if IL_SL_SIGNALLING_N0371 295 pcPPS->setPPS( pcPPS->getLayerId(), pcPPS ); 296 #endif 297 293 298 if(pcPPS->getScalingListPresentFlag ()) 294 299 { 300 #if IL_SL_SIGNALLING_N0371 301 pcPPS->getScalingList()->setLayerId( pcPPS->getLayerId() ); 302 303 if( pcPPS->getLayerId() > 0 ) 304 { 305 READ_FLAG( uiCode, "pps_pred_scaling_list_flag" ); pcPPS->setPredScalingListFlag( uiCode ? true : false ); 306 pcPPS->getScalingList()->setPredScalingListFlag( pcPPS->getPredScalingListFlag() ); 307 308 if( pcPPS->getPredScalingListFlag() ) 309 { 310 READ_UVLC ( uiCode, "scaling_list_pps_ref_layer_id" ); pcPPS->setScalingListRefLayerId( uiCode ); 311 312 // The value of pps_scaling_list_ref_layer_id shall be in the range of 0 to 62, inclusive 313 assert( pcPPS->getScalingListRefLayerId() >= 0 && pcPPS->getScalingListRefLayerId() <= 62 ); 314 315 // When avc_base_layer_flag is equal to 1, it is a requirement of bitstream conformance that the value of pps_scaling_list_ref_layer_id shall be greater than 0 316 if( pcPPS->getSPS()->getVPS()->getAvcBaseLayerFlag() ) 317 { 318 assert( pcPPS->getScalingListRefLayerId() > 0 ); 319 } 320 321 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 322 // pps_infer_scaling_list_flag in the PPS is equal to 1, pps_infer_scaling_list_flag shall be equal to 0 for the PPS that is active for the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id 323 assert( pcPPS->getPPS( pcPPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false ); 324 325 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 326 // the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB 327 assert( pcPPS->getSPS()->getVPS()->getScalingListLayerDependency( pcPPS->getLayerId(), pcPPS->getScalingListRefLayerId() ) == true ); 328 329 pcPPS->getScalingList()->setScalingListRefLayerId( pcPPS->getScalingListRefLayerId() ); 330 parseScalingList( pcPPS->getScalingList() ); 331 } 332 else 333 { 334 parseScalingList( pcPPS->getScalingList() ); 335 } 336 } 337 else 338 { 339 parseScalingList( pcPPS->getScalingList() ); 340 } 341 #else 295 342 parseScalingList( pcPPS->getScalingList() ); 343 #endif 296 344 } 297 345 … … 522 570 } 523 571 #endif 572 #if IL_SL_SIGNALLING_N0371 573 pcSPS->setVPS( parameterSetManager->getPrefetchedVPS(pcSPS->getVPSId()) ); 574 pcSPS->setSPS( pcSPS->getLayerId(), pcSPS ); 575 #endif 524 576 if ( pcSPS->getMaxTLayers() == 1 ) 525 577 { … … 647 699 Int addCuDepth = max (0, log2MinCUSize - (Int)pcSPS->getQuadtreeTULog2MinSize() ); 648 700 pcSPS->setMaxCUDepth( maxCUDepthDelta + addCuDepth ); 649 650 701 READ_FLAG( uiCode, "scaling_list_enabled_flag" ); pcSPS->setScalingListFlag ( uiCode ); 702 651 703 if(pcSPS->getScalingListFlag()) 652 704 { … … 654 706 if(pcSPS->getScalingListPresentFlag ()) 655 707 { 708 709 #if IL_SL_SIGNALLING_N0371 710 pcSPS->getScalingList()->setLayerId( pcSPS->getLayerId() ); 711 712 if( pcSPS->getLayerId() > 0 ) 713 { 714 READ_FLAG( uiCode, "sps_pred_scaling_list_flag" ); pcSPS->setPredScalingListFlag ( uiCode ); 715 pcSPS->getScalingList()->setPredScalingListFlag( pcSPS->getPredScalingListFlag() ); 716 717 if( pcSPS->getPredScalingListFlag() ) 718 { 719 READ_UVLC( uiCode, "scaling_list_sps_ref_layer_id" ); pcSPS->setScalingListRefLayerId( uiCode ); 720 721 // The value of sps_scaling_list_ref_layer_id shall be in the range of 0 to 62, inclusive 722 assert( pcSPS->getScalingListRefLayerId() >= 0 && pcSPS->getScalingListRefLayerId() <= 62 ); 723 724 // When avc_base_layer_flag is equal to 1, it is a requirement of bitstream conformance that the value of sps_scaling_list_ref_layer_id shall be greater than 0 725 if( pcSPS->getVPS()->getAvcBaseLayerFlag() ) 726 { 727 assert( pcSPS->getScalingListRefLayerId() > 0 ); 728 } 729 730 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 731 // sps_infer_scaling_list_flag in the SPS is equal to 1, sps_infer_scaling_list_flag shall be equal to 0 for the SPS that is active for the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id 732 assert( pcSPS->getSPS( pcSPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false ); 733 734 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 735 // the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB 736 assert( pcSPS->getVPS()->getScalingListLayerDependency( pcSPS->getLayerId(), pcSPS->getScalingListRefLayerId() ) == true ); 737 738 pcSPS->getScalingList()->setScalingListRefLayerId( pcSPS->getScalingListRefLayerId() ); 739 parseScalingList( pcSPS->getScalingList() ); 740 } 741 else 742 { 743 parseScalingList( pcSPS->getScalingList() ); 744 } 745 } 746 else 747 { 748 parseScalingList( pcSPS->getScalingList() ); 749 } 750 #else 656 751 parseScalingList( pcSPS->getScalingList() ); 752 #endif 753 657 754 } 658 755 } … … 1243 1340 } 1244 1341 } 1245 #endif 1342 1343 #endif 1344 1345 #if IL_SL_SIGNALLING_N0371 1346 for(i = 1; i < vps->getMaxLayers(); i++) 1347 { 1348 for(j = 0; j < i; j++) 1349 { 1350 vps->setScalingListLayerDependency( i, j, vps->checkLayerDependency( i,j ) ); 1351 } 1352 } 1353 #endif 1354 1246 1355 #if M0040_ADAPTIVE_RESOLUTION_CHANGE 1247 1356 READ_FLAG(uiCode, "single_layer_for_non_irap_flag" ); vps->setSingleLayerForNonIrapFlag(uiCode == 1 ? true : false); … … 2447 2556 UInt code, sizeId, listId; 2448 2557 Bool scalingListPredModeFlag; 2558 2449 2559 //for each size 2450 2560 for(sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++) … … 2452 2562 for(listId = 0; listId < g_scalingListNum[sizeId]; listId++) 2453 2563 { 2564 #if IL_SL_SIGNALLING_N0371 2565 if ( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2566 { 2567 READ_FLAG( code, "scaling_list_pred_mode_flag"); 2568 scalingListPredModeFlag = (code) ? true : false; 2569 if(!scalingListPredModeFlag) //Copy Mode 2570 { 2571 READ_UVLC( code, "scaling_list_pred_matrix_id_delta"); 2572 scalingList->setRefMatrixId (sizeId,listId,(UInt)((Int)(listId)-(code))); 2573 if( sizeId > SCALING_LIST_8x8 ) 2574 { 2575 scalingList->setScalingListDC(sizeId,listId,((listId == scalingList->getRefMatrixId (sizeId,listId))? 16 :scalingList->getScalingListDC(sizeId, scalingList->getRefMatrixId (sizeId,listId)))); 2576 } 2577 scalingList->processRefMatrix( sizeId, listId, scalingList->getRefMatrixId (sizeId,listId)); 2578 2579 } 2580 else //DPCM Mode 2581 { 2582 xDecodeScalingList(scalingList, sizeId, listId); 2583 } 2584 } 2585 else 2586 { 2587 READ_FLAG( code, "scaling_list_pred_mode_flag"); 2588 scalingListPredModeFlag = (code) ? true : false; 2589 if(!scalingListPredModeFlag) //Copy Mode 2590 { 2591 READ_UVLC( code, "scaling_list_pred_matrix_id_delta"); 2592 scalingList->setRefMatrixId (sizeId,listId,(UInt)((Int)(listId)-(code))); 2593 if( sizeId > SCALING_LIST_8x8 ) 2594 { 2595 scalingList->setScalingListDC(sizeId,listId,((listId == scalingList->getRefMatrixId (sizeId,listId))? 16 :scalingList->getScalingListDC(sizeId, scalingList->getRefMatrixId (sizeId,listId)))); 2596 } 2597 scalingList->processRefMatrix( sizeId, listId, scalingList->getRefMatrixId (sizeId,listId)); 2598 2599 } 2600 else //DPCM Mode 2601 { 2602 xDecodeScalingList(scalingList, sizeId, listId); 2603 } 2604 } 2605 #else 2454 2606 READ_FLAG( code, "scaling_list_pred_mode_flag"); 2455 2607 scalingListPredModeFlag = (code) ? true : false; … … 2469 2621 xDecodeScalingList(scalingList, sizeId, listId); 2470 2622 } 2623 #endif 2471 2624 } 2472 2625 } … … 2490 2643 if( sizeId > SCALING_LIST_8x8 ) 2491 2644 { 2645 #if IL_SL_SIGNALLING_N0371 2646 if( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2647 { 2648 ref_scalingListDC[scalingList->getLayerId()][sizeId][listId] = scalingList->getScalingListDC(sizeId,listId); 2649 scalingList->setScalingListDC(sizeId,listId,ref_scalingListDC[scalingList->getScalingListRefLayerId()][sizeId][listId]); 2650 } 2651 else 2652 { 2653 READ_SVLC( scalingListDcCoefMinus8, "scaling_list_dc_coef_minus8"); 2654 scalingList->setScalingListDC(sizeId,listId,scalingListDcCoefMinus8 + 8); 2655 nextCoef = scalingList->getScalingListDC(sizeId,listId); 2656 ref_scalingListDC[scalingList->getLayerId()][sizeId][listId] = scalingList->getScalingListDC(sizeId,listId); 2657 } 2658 #else 2492 2659 READ_SVLC( scalingListDcCoefMinus8, "scaling_list_dc_coef_minus8"); 2493 2660 scalingList->setScalingListDC(sizeId,listId,scalingListDcCoefMinus8 + 8); 2494 2661 nextCoef = scalingList->getScalingListDC(sizeId,listId); 2662 #endif 2495 2663 } 2496 2664 2497 2665 for(i = 0; i < coefNum; i++) 2498 2666 { 2667 #if IL_SL_SIGNALLING_N0371 2668 if( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2669 { 2670 ref_scalingListCoef[scalingList->getLayerId()][sizeId][listId][i] = dst[scan[i]]; 2671 dst[scan[i]] = ref_scalingListCoef[scalingList->getScalingListRefLayerId()][sizeId][listId][i]; 2672 } 2673 else 2674 { 2675 READ_SVLC( data, "scaling_list_delta_coef"); 2676 nextCoef = (nextCoef + data + 256 ) % 256; 2677 dst[scan[i]] = nextCoef; 2678 ref_scalingListCoef[scalingList->getLayerId()][sizeId][listId][i] = dst[scan[i]]; 2679 } 2680 #else 2499 2681 READ_SVLC( data, "scaling_list_delta_coef"); 2500 2682 nextCoef = (nextCoef + data + 256 ) % 256; 2501 2683 dst[scan[i]] = nextCoef; 2684 #endif 2502 2685 } 2503 2686 } -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecCAVLC.h
r389 r414 75 75 Void parseVPSExtension ( TComVPS* pcVPS ); 76 76 #endif 77 77 78 #if VPS_VUI 78 79 Void parseVPSVUI ( TComVPS* pcVPS ); -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r412 r414 1232 1232 if(pcSlice->getSPS()->getScalingListFlag()) 1233 1233 { 1234 #if IL_SL_SIGNALLING_N0371 1235 pcSlice->getSPS()->getScalingList()->setLayerId( m_layerId ); 1236 #endif 1237 1234 1238 pcSlice->setScalingList ( pcSlice->getSPS()->getScalingList() ); 1239 1235 1240 if(pcSlice->getPPS()->getScalingListPresentFlag()) 1236 1241 { 1242 #if IL_SL_SIGNALLING_N0371 1243 pcSlice->getPPS()->getScalingList()->setLayerId( m_layerId ); 1244 #endif 1245 1237 1246 pcSlice->setScalingList ( pcSlice->getPPS()->getScalingList() ); 1238 1247 } … … 1240 1249 if(!pcSlice->getPPS()->getScalingListPresentFlag() && !pcSlice->getSPS()->getScalingListPresentFlag()) 1241 1250 { 1251 #if IL_SL_SIGNALLING_N0371 1252 pcSlice->setDefaultScalingList( m_layerId ); 1253 #else 1242 1254 pcSlice->setDefaultScalingList(); 1255 #endif 1243 1256 } 1244 1257 m_cTrQuant.setScalingListDec(pcSlice->getScalingList()); … … 1247 1260 else 1248 1261 { 1262 #if IL_SL_SIGNALLING_N0371 1263 m_cTrQuant.setFlatScalingList( m_layerId ); 1264 #else 1249 1265 m_cTrQuant.setFlatScalingList(); 1266 #endif 1250 1267 m_cTrQuant.setUseScalingList(false); 1251 1268 } … … 1278 1295 sps->setLayerId(m_layerId); 1279 1296 #endif 1297 1280 1298 #if SPS_SUB_LAYER_INFO 1281 1299 m_cEntropyDecoder.decodeSPS( sps, &m_parameterSetManagerDecoder[0] ); … … 1301 1319 { 1302 1320 TComPPS* pps = new TComPPS(); 1321 1322 #if IL_SL_SIGNALLING_N0371 1323 pps->setLayerId(m_layerId); 1324 #endif 1325 1303 1326 m_cEntropyDecoder.decodePPS( pps ); 1304 1327 #if SVC_EXTENSION -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecTop.h
r411 r414 79 79 80 80 TComSlice* m_apcSlicePilot; 81 81 82 82 SEIMessages m_SEIs; ///< List of SEI messages that have been received before the first slice and between slices 83 83 -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r411 r414 221 221 } 222 222 WRITE_FLAG( pcPPS->getScalingListPresentFlag() ? 1 : 0, "pps_scaling_list_data_present_flag" ); 223 224 #if IL_SL_SIGNALLING_N0371 225 pcPPS->setPPS( pcPPS->getLayerId(), pcPPS ); 226 #endif 227 223 228 if( pcPPS->getScalingListPresentFlag() ) 224 229 { … … 226 231 printf("PPS\n"); 227 232 #endif 233 234 #if IL_SL_SIGNALLING_N0371 235 m_pcSlice->getScalingList()->setLayerId( pcPPS->getLayerId() ); 236 237 if( pcPPS->getLayerId() > 0 ) 238 { 239 WRITE_FLAG( pcPPS->getPredScalingListFlag() ? 1 : 0, "pps_pred_scaling_list_flag" ); 240 m_pcSlice->getScalingList()->setPredScalingListFlag( pcPPS->getPredScalingListFlag() ); 241 242 if( pcPPS->getPredScalingListFlag() ) 243 { 244 // The value of pps_scaling_list_ref_layer_id shall be in the range of 0 to 62, inclusive 245 assert( pcPPS->getScalingListRefLayerId() >= 0 && pcPPS->getScalingListRefLayerId() <= 62 ); 246 247 // When avc_base_layer_flag is equal to 1, it is a requirement of bitstream conformance that the value of pps_scaling_list_ref_layer_id shall be greater than 0 248 if( pcPPS->getSPS()->getVPS()->getAvcBaseLayerFlag() ) 249 { 250 assert( pcPPS->getScalingListRefLayerId() > 0 ); 251 } 252 253 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 254 // pps_infer_scaling_list_flag in the PPS is equal to 1, pps_infer_scaling_list_flag shall be equal to 0 for the PPS that is active for the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id 255 assert( pcPPS->getPPS( pcPPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false ); 256 257 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 258 // the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB 259 assert( pcPPS->getSPS()->getVPS()->getScalingListLayerDependency( pcPPS->getLayerId(), pcPPS->getScalingListRefLayerId() ) == true ); 260 261 WRITE_UVLC( pcPPS->getScalingListRefLayerId(), "scaling_list_pps_ref_layer_id" ); 262 m_pcSlice->getScalingList()->setScalingListRefLayerId( pcPPS->getScalingListRefLayerId() ); 263 codeScalingList( m_pcSlice->getScalingList() ); 264 } 265 else 266 { 267 codeScalingList( m_pcSlice->getScalingList() ); 268 } 269 } 270 else 271 { 272 codeScalingList( m_pcSlice->getScalingList() ); 273 } 274 #else 228 275 codeScalingList( m_pcSlice->getScalingList() ); 276 #endif 277 229 278 } 230 279 WRITE_FLAG( pcPPS->getListsModificationPresentFlag(), "lists_modification_present_flag"); … … 489 538 WRITE_UVLC( pcSPS->getQuadtreeTUMaxDepthIntra() - 1, "max_transform_hierarchy_depth_intra" ); 490 539 WRITE_FLAG( pcSPS->getScalingListFlag() ? 1 : 0, "scaling_list_enabled_flag" ); 540 541 #if IL_SL_SIGNALLING_N0371 542 pcSPS->setSPS( pcSPS->getLayerId(), pcSPS ); 543 #endif 544 491 545 if(pcSPS->getScalingListFlag()) 492 546 { … … 497 551 printf("SPS\n"); 498 552 #endif 553 554 #if IL_SL_SIGNALLING_N0371 555 m_pcSlice->getScalingList()->setLayerId( pcSPS->getLayerId() ); 556 557 if( pcSPS->getLayerId() > 0 ) 558 { 559 WRITE_FLAG( pcSPS->getPredScalingListFlag() ? 1 : 0, "sps_pred_scaling_list_flag" ); 560 m_pcSlice->getScalingList()->setPredScalingListFlag( pcSPS->getPredScalingListFlag() ); 561 562 if( pcSPS->getPredScalingListFlag() ) 563 { 564 565 // The value of sps_scaling_list_ref_layer_id shall be in the range of 0 to 62, inclusive 566 assert( pcSPS->getScalingListRefLayerId() >= 0 && pcSPS->getScalingListRefLayerId() <= 62 ); 567 568 // When avc_base_layer_flag is equal to 1, it is a requirement of bitstream conformance that the value of sps_scaling_list_ref_layer_id shall be greater than 0 569 if( pcSPS->getVPS()->getAvcBaseLayerFlag() ) 570 { 571 assert( pcSPS->getScalingListRefLayerId() > 0 ); 572 } 573 574 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 575 // sps_infer_scaling_list_flag in the SPS is equal to 1, sps_infer_scaling_list_flag shall be equal to 0 for the SPS that is active for the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id 576 assert( pcSPS->getSPS( pcSPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false ); 577 578 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 579 // the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB 580 assert( pcSPS->getVPS()->getScalingListLayerDependency( pcSPS->getLayerId(), pcSPS->getScalingListRefLayerId() ) == true ); 581 582 WRITE_UVLC( pcSPS->getScalingListRefLayerId(), "scaling_list_sps_ref_layer_id" ); 583 m_pcSlice->getScalingList()->setScalingListRefLayerId( pcSPS->getScalingListRefLayerId() ); 584 codeScalingList( m_pcSlice->getScalingList() ); 585 } 586 else 587 { 588 codeScalingList( m_pcSlice->getScalingList() ); 589 } 590 } 591 else 592 { 499 593 codeScalingList( m_pcSlice->getScalingList() ); 594 } 595 #else 596 codeScalingList( m_pcSlice->getScalingList() ); 597 #endif 598 500 599 } 501 600 } … … 517 616 TComRPSList* rpsList = pcSPS->getRPSList(); 518 617 TComReferencePictureSet* rps; 519 618 520 619 WRITE_UVLC(rpsList->getNumberOfReferencePictureSets(), "num_short_term_ref_pic_sets" ); 521 620 for(Int i=0; i < rpsList->getNumberOfReferencePictureSets(); i++) … … 949 1048 } 950 1049 } 1050 1051 #if IL_SL_SIGNALLING_N0371 1052 for(i = 1; i < vps->getMaxLayers(); i++) 1053 { 1054 for(j = 0; j < i; j++) 1055 { 1056 vps->setScalingListLayerDependency( i, j, vps->checkLayerDependency( i,j ) ); 1057 } 1058 } 1059 #endif 1060 951 1061 #endif 952 1062 #if M0040_ADAPTIVE_RESOLUTION_CHANGE … … 1901 2011 startBit = m_pcBitIf->getNumberOfWrittenBits(); 1902 2012 #endif 2013 2014 #if IL_SL_SIGNALLING_N0371 2015 if( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2016 { 2017 scalingListPredModeFlag = scalingList->checkPredMode( sizeId, listId ); 2018 WRITE_FLAG( scalingListPredModeFlag, "scaling_list_pred_mode_flag" ); 2019 if(!scalingListPredModeFlag)// Copy Mode 2020 { 2021 WRITE_UVLC( (Int)listId - (Int)scalingList->getRefMatrixId (sizeId,listId), "scaling_list_pred_matrix_id_delta"); 2022 } 2023 else// DPCM Mode 2024 { 2025 xCodeScalingList(scalingList, sizeId, listId); 2026 } 2027 } 2028 else 2029 { 2030 scalingListPredModeFlag = scalingList->checkPredMode( sizeId, listId ); 2031 WRITE_FLAG( scalingListPredModeFlag, "scaling_list_pred_mode_flag" ); 2032 if(!scalingListPredModeFlag)// Copy Mode 2033 { 2034 WRITE_UVLC( (Int)listId - (Int)scalingList->getRefMatrixId (sizeId,listId), "scaling_list_pred_matrix_id_delta"); 2035 } 2036 else// DPCM Mode 2037 { 2038 xCodeScalingList(scalingList, sizeId, listId); 2039 } 2040 } 2041 #else 1903 2042 scalingListPredModeFlag = scalingList->checkPredMode( sizeId, listId ); 1904 2043 WRITE_FLAG( scalingListPredModeFlag, "scaling_list_pred_mode_flag" ); … … 1911 2050 xCodeScalingList(scalingList, sizeId, listId); 1912 2051 } 2052 #endif 2053 1913 2054 #if SCALING_LIST_OUTPUT_RESULT 1914 2055 printf("Matrix [%d][%d] Bit %d\n",sizeId,listId,m_pcBitIf->getNumberOfWrittenBits() - startBit); 1915 2056 #endif 2057 1916 2058 } 1917 2059 } … … 1933 2075 Int data; 1934 2076 Int *src = scalingList->getScalingListAddress(sizeId, listId); 2077 1935 2078 if( sizeId > SCALING_LIST_8x8 ) 1936 2079 { 2080 #if IL_SL_SIGNALLING_N0371 2081 if( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2082 { 2083 ref_scalingListDC[scalingList->getLayerId()][sizeId][listId] = scalingList->getScalingListDC(sizeId,listId); 2084 scalingList->setScalingListDC(sizeId,listId,ref_scalingListDC[scalingList->getScalingListRefLayerId()][sizeId][listId]); 2085 } 2086 else 2087 { 2088 WRITE_SVLC( scalingList->getScalingListDC(sizeId,listId) - 8, "scaling_list_dc_coef_minus8"); 2089 nextCoef = scalingList->getScalingListDC(sizeId,listId); 2090 ref_scalingListDC[scalingList->getLayerId()][sizeId][listId] = scalingList->getScalingListDC(sizeId,listId); 2091 } 2092 #else 1937 2093 WRITE_SVLC( scalingList->getScalingListDC(sizeId,listId) - 8, "scaling_list_dc_coef_minus8"); 1938 2094 nextCoef = scalingList->getScalingListDC(sizeId,listId); 2095 #endif 1939 2096 } 1940 2097 for(Int i=0;i<coefNum;i++) 1941 2098 { 2099 #if IL_SL_SIGNALLING_N0371 2100 if( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2101 { 2102 ref_scalingListCoef[scalingList->getLayerId()][sizeId][listId][i] = src[scan[i]]; 2103 src[scan[i]] = ref_scalingListCoef[scalingList->getScalingListRefLayerId()][sizeId][listId][i]; 2104 } 2105 else 2106 { 2107 data = src[scan[i]] - nextCoef; 2108 ref_scalingListCoef[scalingList->getLayerId()][sizeId][listId][i] = src[scan[i]]; 2109 nextCoef = src[scan[i]]; 2110 if(data > 127) 2111 { 2112 data = data - 256; 2113 } 2114 if(data < -128) 2115 { 2116 data = data + 256; 2117 } 2118 2119 WRITE_SVLC( data, "scaling_list_delta_coef"); 2120 } 2121 #else 1942 2122 data = src[scan[i]] - nextCoef; 1943 2123 nextCoef = src[scan[i]]; … … 1952 2132 1953 2133 WRITE_SVLC( data, "scaling_list_delta_coef"); 2134 #endif 1954 2135 } 1955 2136 } -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncCavlc.h
r389 r414 87 87 Void codeVPSExtension ( TComVPS* pcVPS ); 88 88 #endif 89 89 90 #if VPS_VUI 90 91 Void codeVPSVUI (TComVPS *vps); -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r413 r414 593 593 #endif 594 594 595 #if IL_SL_SIGNALLING_N0371 596 m_pcEncTop->getScalingList()->setLayerId( m_layerId ); 597 #endif 598 595 599 pcSlice->setLastIDR(m_iLastIDR); 596 600 pcSlice->setSliceIdx(0); … … 601 605 if(m_pcEncTop->getUseScalingListId() == SCALING_LIST_OFF) 602 606 { 607 #if IL_SL_SIGNALLING_N0371 608 m_pcEncTop->getTrQuant()->setFlatScalingList( m_layerId ); 609 #else 603 610 m_pcEncTop->getTrQuant()->setFlatScalingList(); 611 #endif 604 612 m_pcEncTop->getTrQuant()->setUseScalingList(false); 605 613 m_pcEncTop->getSPS()->setScalingListPresentFlag(false); … … 608 616 else if(m_pcEncTop->getUseScalingListId() == SCALING_LIST_DEFAULT) 609 617 { 618 #if IL_SL_SIGNALLING_N0371 619 pcSlice->getScalingList()->setLayerId( m_layerId ); 620 #endif 621 622 #if IL_SL_SIGNALLING_N0371 623 pcSlice->setDefaultScalingList ( m_layerId ); 624 #else 610 625 pcSlice->setDefaultScalingList (); 626 #endif 627 611 628 m_pcEncTop->getSPS()->setScalingListPresentFlag(false); 612 629 m_pcEncTop->getPPS()->setScalingListPresentFlag(false); … … 616 633 else if(m_pcEncTop->getUseScalingListId() == SCALING_LIST_FILE_READ) 617 634 { 635 #if IL_SL_SIGNALLING_N0371 636 pcSlice->getScalingList()->setLayerId( m_layerId ); 637 #endif 638 618 639 if(pcSlice->getScalingList()->xParseScalingList(m_pcCfg->getScalingListFile())) 619 640 { 641 #if IL_SL_SIGNALLING_N0371 642 pcSlice->setDefaultScalingList ( m_layerId ); 643 #else 620 644 pcSlice->setDefaultScalingList (); 621 } 645 #endif 646 } 647 #if IL_SL_SIGNALLING_N0371 648 pcSlice->getScalingList()->checkDcOfMatrix( m_layerId ); 649 #else 622 650 pcSlice->getScalingList()->checkDcOfMatrix(); 651 #endif 623 652 m_pcEncTop->getSPS()->setScalingListPresentFlag(pcSlice->checkDefaultScalingList()); 653 654 #if IL_SL_SIGNALLING_N0371 655 if( m_layerId > 0 ) 656 { 657 m_pcEncTop->getSPS()->setPredScalingListFlag (true); 658 m_pcEncTop->getSPS()->setScalingListRefLayerId( 0 ); 659 } 660 #endif 661 624 662 m_pcEncTop->getPPS()->setScalingListPresentFlag(false); 663 664 #if IL_SL_SIGNALLING_N0371 665 if( m_layerId > 0 ) 666 { 667 m_pcEncTop->getPPS()->setPredScalingListFlag (false); 668 m_pcEncTop->getPPS()->setScalingListRefLayerId( 0 ); 669 } 670 #endif 671 625 672 m_pcEncTop->getTrQuant()->setScalingList(pcSlice->getScalingList()); 626 673 m_pcEncTop->getTrQuant()->setUseScalingList(true); … … 1493 1540 #if SVC_EXTENSION 1494 1541 nalu = NALUnit(NAL_UNIT_SPS, 0, m_layerId); 1542 #if IL_SL_SIGNALLING_N0371 1543 pcSlice->getSPS()->setVPS( pcSlice->getVPS() ); 1544 #endif 1495 1545 #else 1496 1546 nalu = NALUnit(NAL_UNIT_SPS); -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncTop.cpp
r411 r414 110 110 initROM(); 111 111 #endif 112 112 113 113 // create processing unit classes 114 114 #if SVC_EXTENSION … … 761 761 Void TEncTop::xInitPPS() 762 762 { 763 #if IL_SL_SIGNALLING_N0371 764 m_cPPS.setLayerId(m_layerId); 765 #endif 766 763 767 m_cPPS.setConstrainedIntraPred( m_bUseConstrainedIntraPred ); 764 768 Bool bUseDQP = (getMaxCuDQPDepth() > 0)? true : false; -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncTop.h
r411 r414 130 130 131 131 #if SVC_EXTENSION 132 132 133 TEncTop** m_ppcTEncTop; 133 134 TEncTop* getLayerEnc(UInt layer) { return m_ppcTEncTop[layer]; }
Note: See TracChangeset for help on using the changeset viewer.