Changeset 873 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder
- Timestamp:
- 21 Aug 2014, 03:10:10 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r869 r873 381 381 #if REF_REGION_OFFSET 382 382 const Window refEL = pcSlice->getPPS()->getRefLayerWindowForLayer(pcSlice->getVPS()->getRefLayerId(m_layerId, i)); 383 #if RESAMPLING_FIX 384 Bool equalOffsets = scalEL.hasEqualOffset(refEL); 385 #if R0209_GENERIC_PHASE 386 Bool zeroPhase = pcSlice->getPPS()->hasZeroResamplingPhase(pcSlice->getVPS()->getRefLayerId(m_layerId, i)); 387 #endif 388 #else 383 389 Bool zeroOffsets = ( scalEL.getWindowLeftOffset() == 0 && scalEL.getWindowRightOffset() == 0 && scalEL.getWindowTopOffset() == 0 && scalEL.getWindowBottomOffset() == 0 384 390 && refEL.getWindowLeftOffset() == 0 && refEL.getWindowRightOffset() == 0 && refEL.getWindowTopOffset() == 0 && refEL.getWindowBottomOffset() == 0 ); 391 #endif 385 392 #else 386 393 Bool zeroOffsets = ( scalEL.getWindowLeftOffset() == 0 && scalEL.getWindowRightOffset() == 0 && scalEL.getWindowTopOffset() == 0 && scalEL.getWindowBottomOffset() == 0 ); … … 399 406 Bool sameBitDepths = ( g_bitDepthYLayer[m_layerId] == g_bitDepthYLayer[refLayerId] ) && ( g_bitDepthCLayer[m_layerId] == g_bitDepthCLayer[refLayerId] ); 400 407 401 if( pcPicYuvRecBase->getWidth() != pcSlice->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getPicHeightInLumaSamples() || !zeroOffsets || !sameBitDepths 408 if( pcPicYuvRecBase->getWidth() != pcSlice->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getPicHeightInLumaSamples() || !sameBitDepths 409 #if REF_REGION_OFFSET && RESAMPLING_FIX 410 || !equalOffsets 411 #if R0209_GENERIC_PHASE 412 || !zeroPhase 413 #endif 414 #else 415 || !zeroOffsets 416 #endif 402 417 #if Q0048_CGS_3D_ASYMLUT 403 418 || pcSlice->getPPS()->getCGSFlag() > 0 … … 408 423 ) 409 424 #else 410 if(pcPicYuvRecBase->getWidth() != pcSlice->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getPicHeightInLumaSamples() || !zeroOffsets ) 411 #endif 412 #else 413 if(pcPicYuvRecBase->getWidth() != pcSlice->getSPS()->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getSPS()->getPicHeightInLumaSamples() || !zeroOffsets ) 425 if(pcPicYuvRecBase->getWidth() != pcSlice->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getPicHeightInLumaSamples() 426 #if REF_REGION_OFFSET && RESAMPLING_FIX 427 || !equalOffsets 428 #if R0209_GENERIC_PHASE 429 || !zeroPhase 430 #endif 431 #else 432 || !zeroOffsets 433 #endif 434 ) 435 #endif 436 #else 437 if(pcPicYuvRecBase->getWidth() != pcSlice->getSPS()->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getSPS()->getPicHeightInLumaSamples() 438 #if REF_REGION_OFFSET && RESAMPLING_FIX 439 || !equalOffsets 440 #if R0209_GENERIC_PHASE 441 || !zeroPhase 442 #endif 443 #else 444 || !zeroOffsets 445 #endif 446 ) 414 447 #endif 415 448 { … … 1974 2007 Int widthEL = pcPic->getPicYuvRec()->getWidth() - scalEL.getWindowLeftOffset() - scalEL.getWindowRightOffset(); 1975 2008 Int heightEL = pcPic->getPicYuvRec()->getHeight() - scalEL.getWindowTopOffset() - scalEL.getWindowBottomOffset(); 2009 2010 #if RESAMPLING_FIX 2011 #if REF_REGION_OFFSET 2012 // conformance check: the values of RefLayerRegionWidthInSamplesY, RefLayerRegionHeightInSamplesY, ScaledRefRegionWidthInSamplesY and ScaledRefRegionHeightInSamplesY shall be greater than 0 2013 assert(widthEL > 0 && heightEL > 0 && widthBL > 0 && widthEL > 0); 2014 2015 // conformance check: ScaledRefRegionWidthInSamplesY shall be greater or equal to RefLayerRegionWidthInSamplesY and ScaledRefRegionHeightInSamplesY shall be greater or equal to RefLayerRegionHeightInSamplesY 2016 assert(widthEL >= widthBL && heightEL >= heightBL); 2017 2018 #if R0209_GENERIC_PHASE 2019 // conformance check: when ScaledRefRegionWidthInSamplesY is equal to RefLayerRegionWidthInSamplesY, PhaseHorY shall be equal to 0, when ScaledRefRegionWidthInSamplesC is equal to RefLayerRegionWidthInSamplesC, PhaseHorC shall be equal to 0, when ScaledRefRegionHeightInSamplesY is equal to RefLayerRegionHeightInSamplesY, PhaseVerY shall be equal to 0, and when ScaledRefRegionHeightInSamplesC is equal to RefLayerRegionHeightInSamplesC, PhaseVerC shall be equal to 0. 2020 Int phaseHorLuma = pcSlice->getPPS()->getPhaseHorLuma(refLayerIdc); 2021 Int phaseVerLuma = pcSlice->getPPS()->getPhaseVerLuma(refLayerIdc); 2022 Int phaseHorChroma = pcSlice->getPPS()->getPhaseHorChroma(refLayerIdc); 2023 Int phaseVerChroma = pcSlice->getPPS()->getPhaseVerChroma(refLayerIdc); 2024 assert( ( (widthEL != widthBL) || (phaseHorLuma == 0 && phaseHorChroma == 0) ) 2025 && ( (heightEL != heightBL) || (phaseVerLuma == 0 && phaseVerChroma == 0) ) ); 2026 #endif 2027 #endif 2028 #endif 1976 2029 1977 2030 g_mvScalingFactor[refLayerIdc][0] = widthEL == widthBL ? 4096 : Clip3(-4096, 4095, ((widthEL << 8) + (widthBL >> 1)) / widthBL);
Note: See TracChangeset for help on using the changeset viewer.