Changeset 1287 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder
- Timestamp:
- 17 Jul 2015, 05:43:37 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibDecoder
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1275 r1287 766 766 READ_UVLC( uiCode, "bit_depth_luma_minus8" ); 767 767 #if O0043_BEST_EFFORT_DECODING 768 pcSPS->setStreamBitDepth(CHANNEL_TYPE_LUMA, 8 + uiCode); 768 769 const UInt forceDecodeBitDepth = pcSPS->getForceDecodeBitDepth(); 769 g_bitDepthInStream[CHANNEL_TYPE_LUMA] = 8 + uiCode;770 770 if (forceDecodeBitDepth != 0) 771 771 { … … 774 774 #endif 775 775 assert(uiCode <= 8); 776 777 776 pcSPS->setBitDepth(CHANNEL_TYPE_LUMA, 8 + uiCode); 777 778 778 #if O0043_BEST_EFFORT_DECODING 779 pcSPS->setQpBDOffset(CHANNEL_TYPE_LUMA, (Int) (6*( g_bitDepthInStream[CHANNEL_TYPE_LUMA]-8)) );779 pcSPS->setQpBDOffset(CHANNEL_TYPE_LUMA, (Int) (6*(pcSPS->getStreamBitDepth(CHANNEL_TYPE_LUMA)-8)) ); 780 780 #else 781 781 pcSPS->setQpBDOffset(CHANNEL_TYPE_LUMA, (Int) (6*uiCode) ); … … 784 784 READ_UVLC( uiCode, "bit_depth_chroma_minus8" ); 785 785 #if O0043_BEST_EFFORT_DECODING 786 g_bitDepthInStream[CHANNEL_TYPE_CHROMA] = 8 + uiCode;786 pcSPS->setStreamBitDepth(CHANNEL_TYPE_CHROMA, 8 + uiCode); 787 787 if (forceDecodeBitDepth != 0) 788 788 { … … 793 793 pcSPS->setBitDepth(CHANNEL_TYPE_CHROMA, 8 + uiCode); 794 794 #if O0043_BEST_EFFORT_DECODING 795 pcSPS->setQpBDOffset(CHANNEL_TYPE_CHROMA, (Int) (6*( g_bitDepthInStream[CHANNEL_TYPE_CHROMA]-8)) );795 pcSPS->setQpBDOffset(CHANNEL_TYPE_CHROMA, (Int) (6*(pcSPS->getStreamBitDepth(CHANNEL_TYPE_CHROMA)-8)) ); 796 796 #else 797 797 pcSPS->setQpBDOffset(CHANNEL_TYPE_CHROMA, (Int) (6*uiCode) ); … … 1821 1821 1822 1822 #if SVC_EXTENSION 1823 g_bitDepthLayer[CHANNEL_TYPE_LUMA][pcSlice->getLayerId()] = pcSlice->getBitDepthY(); 1824 g_bitDepthLayer[CHANNEL_TYPE_CHROMA][pcSlice->getLayerId()] = pcSlice->getBitDepthC(); 1825 1826 assert( pcSlice->getSliceQp() >= -pcSlice->getQpBDOffsetY() ); 1823 assert( pcSlice->getSliceQp() >= -pcSlice->getQpBDOffset(CHANNEL_TYPE_LUMA) ); 1827 1824 #else 1828 1825 assert( pcSlice->getSliceQp() >= -sps->getQpBDOffset(CHANNEL_TYPE_LUMA) ); … … 2360 2357 2361 2358 #if SVC_EXTENSION 2362 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffset Y();2359 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffset(CHANNEL_TYPE_LUMA); 2363 2360 #else 2364 2361 Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffset(CHANNEL_TYPE_LUMA); … … 2483 2480 wp[COMPONENT_Y].iWeight = (iDeltaWeight + (1<<wp[COMPONENT_Y].uiLog2WeightDenom)); 2484 2481 READ_SVLC( wp[COMPONENT_Y].iOffset, iNumRef==0?"luma_offset_l0[i]":"luma_offset_l1[i]" ); 2485 Int range=sps->getUseHighPrecisionPredictionWeighting() ? (1<<g_bitDepth[CHANNEL_TYPE_LUMA])/2 : 128; 2482 #if SVC_EXTENSION 2483 Int range=sps->getUseHighPrecisionPredictionWeighting() ? (1<<pcSlice->getBitDepth(CHANNEL_TYPE_LUMA))/2 : 128; 2484 #else 2485 Int range=sps->getUseHighPrecisionPredictionWeighting() ? (1<<sps->getBitDepth(CHANNEL_TYPE_LUMA))/2 : 128; 2486 #endif 2486 2487 assert( wp[0].iOffset >= -range ); 2487 2488 assert( wp[0].iOffset < range ); … … 2496 2497 if ( wp[COMPONENT_Cb].bPresentFlag ) 2497 2498 { 2498 Int range=sps->getUseHighPrecisionPredictionWeighting() ? (1<<g_bitDepth[CHANNEL_TYPE_CHROMA])/2 : 128; 2499 #if SVC_EXTENSION 2500 Int range=sps->getUseHighPrecisionPredictionWeighting() ? (1<<pcSlice->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128; 2501 #else 2502 Int range=sps->getUseHighPrecisionPredictionWeighting() ? (1<<sps->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128; 2503 #endif 2499 2504 for ( Int j=1 ; j<numValidComp ; j++ ) 2500 2505 { -
branches/SHM-dev/source/Lib/TLibDecoder/TDecCu.cpp
r1263 r1287 499 499 if ( pcCU->getQtRootCbf( 0) ) 500 500 { 501 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) ); 501 #if SVC_EXTENSION 502 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getBitDepths() ); 503 #else 504 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() ); 505 #endif 502 506 } 503 507 else … … 642 646 #endif 643 647 648 #if SVC_EXTENSION 649 const Int clipbd = pcCU->getSlice()->getBitDepth(toChannelType(compID)); 650 #else 651 const Int clipbd = pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)); 652 #endif 644 653 #if O0043_BEST_EFFORT_DECODING 645 const Int bitDepthDelta = g_bitDepthInStream[toChannelType(compID)] - g_bitDepth[toChannelType(compID)]; 646 #endif 647 const Int clipbd = g_bitDepth[toChannelType(compID)]; 654 const Int bitDepthDelta = pcCU->getSlice()->getSPS()->getStreamBitDepth(toChannelType(compID)) - clipbd; 655 #endif 648 656 649 657 if( useCrossComponentPrediction ) … … 825 833 Pel* piPicReco = pcCU->getPic()->getPicYuvRec()->getAddr(compID, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu()+uiPartIdx); 826 834 const UInt uiPicStride = pcCU->getPic()->getPicYuvRec()->getStride(compID); 827 const UInt uiPcmLeftShiftBit = g_bitDepth[toChannelType(compID)] - pcCU->getSlice()->getSPS()->getPCMBitDepth(toChannelType(compID)); 835 #if SVC_EXTENSION 836 const UInt uiPcmLeftShiftBit = pcCU->getSlice()->getBitDepth(toChannelType(compID)) - pcCU->getSlice()->getSPS()->getPCMBitDepth(toChannelType(compID)); 837 #else 838 const UInt uiPcmLeftShiftBit = pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)) - pcCU->getSlice()->getSPS()->getPCMBitDepth(toChannelType(compID)); 839 #endif 828 840 829 841 for(UInt uiY = 0; uiY < uiHeight; uiY++ ) -
branches/SHM-dev/source/Lib/TLibDecoder/TDecGop.cpp
r1273 r1287 63 63 //! \ingroup TLibDecoder 64 64 //! \{ 65 static Void calcAndPrintHashStatus(TComPicYuv& pic, const SEIDecodedPictureHash* pictureHashSEI );65 static Void calcAndPrintHashStatus(TComPicYuv& pic, const SEIDecodedPictureHash* pictureHashSEI, const BitDepths &bitDepths); 66 66 // ==================================================================================================================== 67 67 // Constructor / destructor / initialization / destroy … … 246 246 printf ("Warning: Got multiple decoded picture hash SEI messages. Using first."); 247 247 } 248 calcAndPrintHashStatus(*(pcPic->getPicYuvRec()), hash); 248 #if SVC_EXTENSION 249 calcAndPrintHashStatus(*(pcPic->getPicYuvRec()), hash, pcSlice->getBitDepths()); 250 #else 251 calcAndPrintHashStatus(*(pcPic->getPicYuvRec()), hash, pcSlice->getSPS()->getBitDepths()); 252 #endif 249 253 } 250 254 #if CONFORMANCE_BITSTREAM_MODE … … 275 279 * unk - no SEI message was available for comparison 276 280 */ 277 static Void calcAndPrintHashStatus(TComPicYuv& pic, const SEIDecodedPictureHash* pictureHashSEI )281 static Void calcAndPrintHashStatus(TComPicYuv& pic, const SEIDecodedPictureHash* pictureHashSEI, const BitDepths &bitDepths) 278 282 { 279 283 /* calculate MD5sum for entire reconstructed picture */ … … 289 293 { 290 294 hashType = "MD5"; 291 numChar = calcMD5(pic, recon_digest );295 numChar = calcMD5(pic, recon_digest, bitDepths); 292 296 break; 293 297 } … … 295 299 { 296 300 hashType = "CRC"; 297 numChar = calcCRC(pic, recon_digest );301 numChar = calcCRC(pic, recon_digest, bitDepths); 298 302 break; 299 303 } … … 301 305 { 302 306 hashType = "Checksum"; 303 numChar = calcChecksum(pic, recon_digest );307 numChar = calcChecksum(pic, recon_digest, bitDepths); 304 308 break; 305 309 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecSbac.cpp
r1285 r1287 947 947 UInt uiSign; 948 948 #if SVC_EXTENSION 949 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffset Y();949 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffset(CHANNEL_TYPE_LUMA); 950 950 #else 951 951 Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffset(CHANNEL_TYPE_LUMA); … … 1687 1687 1688 1688 Void TDecSbac::parseSAOBlkParam (SAOBlkParam& saoBlkParam 1689 #if SVC_EXTENSION1690 , UInt* saoMaxOffsetQVal1691 #endif1692 1689 , Bool* sliceEnabled 1693 1690 , Bool leftMergeAvail 1694 1691 , Bool aboveMergeAvail 1692 , const BitDepths &bitDepths 1695 1693 ) 1696 1694 { … … 1727 1725 const ComponentID firstCompOfChType = getFirstComponentOfChannel(toChannelType(compIdx)); 1728 1726 SAOOffset& ctbParam = saoBlkParam[compIdx]; 1729 1727 #if O0043_BEST_EFFORT_DECODING 1728 const Int bitDepthOrig = bitDepths.stream[toChannelType(compIdx)]; 1729 const Int forceBitDepthAdjust = bitDepthOrig - bitDepths.recon[toChannelType(compIdx)]; 1730 #else 1731 const Int bitDepthOrig = bitDepths.recon[toChannelType(compIdx)]; 1732 #endif 1733 const Int maxOffsetQVal=TComSampleAdaptiveOffset::getMaxOffsetQVal(bitDepthOrig); 1730 1734 if(!sliceEnabled[compIdx]) 1731 1735 { … … 1766 1770 if(ctbParam.modeIdc == SAO_MODE_NEW) 1767 1771 { 1768 #if O0043_BEST_EFFORT_DECODING1769 Int bitDepthOrig = g_bitDepthInStream[toChannelType(compIdx)];1770 Int forceBitDepthAdjust = bitDepthOrig - g_bitDepth[toChannelType(compIdx)];1771 #endif1772 1772 Int offset[4]; 1773 1773 for(Int i=0; i< 4; i++) 1774 1774 { 1775 #if O0043_BEST_EFFORT_DECODING 1776 Int saoMaxOffsetQVal = (1<<(min(bitDepthOrig, MAX_SAO_TRUNCATED_BITDEPTH)-5))-1; 1777 parseSaoMaxUvlc(uiSymbol, saoMaxOffsetQVal); //sao_offset_abs 1778 #else 1779 #if SVC_EXTENSION 1780 parseSaoMaxUvlc(uiSymbol, saoMaxOffsetQVal[compIdx] ); //sao_offset_abs 1781 #else 1782 parseSaoMaxUvlc(uiSymbol, g_saoMaxOffsetQVal[compIdx] ); //sao_offset_abs 1783 #endif 1784 #endif 1775 parseSaoMaxUvlc(uiSymbol, maxOffsetQVal ); //sao_offset_abs 1785 1776 offset[i] = (Int)uiSymbol; 1786 1777 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecSbac.h
r1285 r1287 93 93 Void parseSaoTypeIdx ( UInt& ruiVal ); 94 94 Void parseSaoUflc ( UInt uiLength, UInt& ruiVal ); 95 96 #if SVC_EXTENSION 97 Void parseSAOBlkParam (SAOBlkParam& saoBlkParam, UInt* saoMaxOffsetQVal, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail ); 98 #else 99 Void parseSAOBlkParam (SAOBlkParam& saoBlkParam, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail); 100 #endif 95 Void parseSAOBlkParam (SAOBlkParam& saoBlkParam, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail, const BitDepths &bitDepths); 101 96 Void parseSaoSign (UInt& val); 102 97 -
branches/SHM-dev/source/Lib/TLibDecoder/TDecSlice.cpp
r1259 r1287 61 61 } 62 62 63 #if SVC_EXTENSION 64 Void TDecSlice::init(TDecEntropy* pcEntropyDecoder, TDecCu* pcCuDecoder, UInt* saoMaxOffsetQVal) 63 Void TDecSlice::init(TDecEntropy* pcEntropyDecoder, TDecCu* pcCuDecoder) 65 64 { 66 65 m_pcEntropyDecoder = pcEntropyDecoder; 67 66 m_pcCuDecoder = pcCuDecoder; 68 m_saoMaxOffsetQVal = saoMaxOffsetQVal; 69 } 70 #else 71 Void TDecSlice::init(TDecEntropy* pcEntropyDecoder, TDecCu* pcCuDecoder) 72 { 73 m_pcEntropyDecoder = pcEntropyDecoder; 74 m_pcCuDecoder = pcCuDecoder; 75 } 76 #endif 67 } 77 68 78 69 Void TDecSlice::decompressSlice(TComInputBitstream** ppcSubstreams, TComPic* pcPic, TDecSbac* pcSbacDecoder) … … 211 202 } 212 203 #if SVC_EXTENSION 213 pcSbacDecoder->parseSAOBlkParam( saoblkParam, m_saoMaxOffsetQVal, sliceEnabled, leftMergeAvail, aboveMergeAvail);204 pcSbacDecoder->parseSAOBlkParam( saoblkParam, sliceEnabled, leftMergeAvail, aboveMergeAvail, pcSlice->getBitDepths()); 214 205 #else 215 pcSbacDecoder->parseSAOBlkParam( saoblkParam, sliceEnabled, leftMergeAvail, aboveMergeAvail );216 #endif 206 pcSbacDecoder->parseSAOBlkParam( saoblkParam, sliceEnabled, leftMergeAvail, aboveMergeAvail, pcSlice->getSPS()->getBitDepths()); 207 #endif 217 208 } 218 209 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecSlice.h
r1259 r1287 77 77 virtual ~TDecSlice(); 78 78 79 #if SVC_EXTENSION80 Void init ( TDecEntropy* pcEntropyDecoder, TDecCu* pcMbDecoder, UInt* saoMaxOffsetQVal );81 #else82 79 Void init ( TDecEntropy* pcEntropyDecoder, TDecCu* pcMbDecoder ); 83 #endif84 80 Void create (); 85 81 Void destroy (); -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r1285 r1287 181 181 #if SVC_EXTENSION 182 182 m_cGopDecoder.init( m_ppcTDecTop, &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO); 183 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder, m_cSAO.getSaoMaxOffsetQVal() );184 183 #else 185 184 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO); 185 #endif 186 186 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder ); 187 #endif188 187 m_cEntropyDecoder.init(&m_cPrediction); 189 188 } … … 499 498 // it is needed where the VPS is accessed through the slice 500 499 pBLPic->getSlice(0)->setVPS( vps ); 501 502 g_bitDepthLayer[CHANNEL_TYPE_LUMA][0] = repFormat->getBitDepthVpsLuma();503 g_bitDepthLayer[CHANNEL_TYPE_CHROMA][0] = repFormat->getBitDepthVpsChroma();504 500 } 505 501 } … … 577 573 578 574 // TODO: remove the use of the following globals: 579 for (UInt channel = 0; channel < MAX_NUM_CHANNEL_TYPE; channel++)580 {581 #if SVC_EXTENSION582 g_bitDepth[channel] = isLuma(ChannelType(channel)) ? vps->getBitDepthY(sps, m_apcSlicePilot->getLayerId()) : vps->getBitDepthC(sps, m_apcSlicePilot->getLayerId());583 #else584 g_bitDepth[channel] = sps->getBitDepth(ChannelType(channel));585 #endif586 }587 575 g_uiMaxCUWidth = sps->getMaxCUWidth(); 588 576 g_uiMaxCUHeight = sps->getMaxCUHeight(); … … 1310 1298 if( pFile->good() ) 1311 1299 { 1312 Bool is16bit = g_bitDepthLayer[CHANNEL_TYPE_LUMA][0] > 8 || g_bitDepthLayer[CHANNEL_TYPE_CHROMA][0]> 8;1300 Bool is16bit = pBLPic->getSlice(0)->getBitDepth(CHANNEL_TYPE_LUMA) > 8 || pBLPic->getSlice(0)->getBitDepth(CHANNEL_TYPE_CHROMA) > 8; 1313 1301 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth(COMPONENT_Y); 1314 1302 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight(COMPONENT_Y); … … 1604 1592 if( pcSlice->getPPS()->getCGSFlag() && m_c3DAsymLUTPPS.isRefLayer( pcSlice->getVPS()->getRefLayerId(m_layerId, refLayerIdc) ) ) 1605 1593 { 1606 assert( pcSlice->getBaseColPic( refLayerIdc )->getSlice( 0 )->getBitDepth Y() == m_c3DAsymLUTPPS.getInputBitDepthY() );1607 assert( pcSlice->getBaseColPic( refLayerIdc )->getSlice( 0 )->getBitDepth C() == m_c3DAsymLUTPPS.getInputBitDepthC() );1608 assert( pcSlice->getBitDepth Y() >= m_c3DAsymLUTPPS.getOutputBitDepthY() );1609 assert( pcSlice->getBitDepth Y() >= m_c3DAsymLUTPPS.getOutputBitDepthC() );1594 assert( pcSlice->getBaseColPic( refLayerIdc )->getSlice( 0 )->getBitDepth(CHANNEL_TYPE_LUMA) == m_c3DAsymLUTPPS.getInputBitDepthY() ); 1595 assert( pcSlice->getBaseColPic( refLayerIdc )->getSlice( 0 )->getBitDepth(CHANNEL_TYPE_CHROMA) == m_c3DAsymLUTPPS.getInputBitDepthC() ); 1596 assert( pcSlice->getBitDepth(CHANNEL_TYPE_LUMA) >= m_c3DAsymLUTPPS.getOutputBitDepthY() ); 1597 assert( pcSlice->getBitDepth(CHANNEL_TYPE_LUMA) >= m_c3DAsymLUTPPS.getOutputBitDepthC() ); 1610 1598 1611 1599 if( !m_pColorMappedPic ) … … 1614 1602 } 1615 1603 1616 m_c3DAsymLUTPPS.colorMapping( pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), 1604 m_c3DAsymLUTPPS.colorMapping( pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), m_pColorMappedPic ); 1617 1605 pBaseColRec = m_pColorMappedPic; 1618 1606 } … … 1624 1612 if( pcSlice->getVPS()->isSamplePredictionType( pcSlice->getVPS()->getLayerIdxInVps(m_layerId), pcSlice->getVPS()->getLayerIdxInVps(refLayerId) ) ) 1625 1613 { 1626 m_cPrediction.upsampleBasePic( pcSlice, refLayerIdc, m_pcPic->getFullPelBaseRec(refLayerIdc), pBaseColRec, m_pcPic->getPicYuvRec() );1614 m_cPrediction.upsampleBasePic( pcSlice, refLayerIdc, m_pcPic->getFullPelBaseRec(refLayerIdc), pBaseColRec, m_pcPic->getPicYuvRec(), pcSlice->getBaseColPic( refLayerIdc )->getSlice( 0 )->getBitDepth(CHANNEL_TYPE_LUMA), pcSlice->getBaseColPic( refLayerIdc )->getSlice( 0 )->getBitDepth(CHANNEL_TYPE_CHROMA)); 1627 1615 } 1628 1616 } … … 1804 1792 }; 1805 1793 #if SVC_EXTENSION 1806 m_cTrQuant.setFlatScalingList(pcSlice->getChromaFormatIdc(), maxLog2TrDynamicRange );1794 m_cTrQuant.setFlatScalingList(pcSlice->getChromaFormatIdc(), maxLog2TrDynamicRange, pcSlice->getBitDepths()); 1807 1795 #else 1808 m_cTrQuant.setFlatScalingList(pcSlice->getSPS()->getChromaFormatIdc(), maxLog2TrDynamicRange );1796 m_cTrQuant.setFlatScalingList(pcSlice->getSPS()->getChromaFormatIdc(), maxLog2TrDynamicRange, pcSlice->getSPS()->getBitDepths()); 1809 1797 #endif 1810 1798 m_cTrQuant.setUseScalingList(false); … … 2210 2198 const TComSPS* sps = slice->getSPS(); 2211 2199 2212 Int bitDepthY = slice->getBitDepthY();2213 Int bitDepthC = slice->getBitDepthC();2214 2215 2200 if( m_layerId > 0 ) 2216 2201 { 2217 2218 g_bitDepth[CHANNEL_TYPE_LUMA] = bitDepthY;2219 g_bitDepth[CHANNEL_TYPE_CHROMA] = bitDepthC;2220 2202 g_uiMaxCUWidth = sps->getMaxCUWidth(); 2221 2203 g_uiMaxCUHeight = sps->getMaxCUHeight(); … … 2559 2541 2560 2542 TDecTop *pcTDecTopBase = (TDecTop *)getRefLayerDec( i ); 2561 TComPicYuv* pcPicYuvRecBase = (*(pcTDecTopBase->getListPic()->begin()))->getPicYuvRec(); 2562 2563 UInt refLayerId = vps.getRefLayerId(m_layerId, i); 2564 Bool sameBitDepths = ( g_bitDepthLayer[CHANNEL_TYPE_LUMA][m_layerId] == g_bitDepthLayer[CHANNEL_TYPE_LUMA][refLayerId] ) && ( g_bitDepthLayer[CHANNEL_TYPE_CHROMA][m_layerId] == g_bitDepthLayer[CHANNEL_TYPE_CHROMA][refLayerId] ); 2543 TComPicYuv* pcPicYuvRecBase = (*(pcTDecTopBase->getListPic()->begin()))->getPicYuvRec(); 2544 2545 const Int bitDepthLuma = vps.getBitDepth(CHANNEL_TYPE_LUMA, &sps, m_layerId); 2546 const Int bitDepthChroma = vps.getBitDepth(CHANNEL_TYPE_CHROMA, &sps, m_layerId); 2547 const Int refBitDepthLuma = (*(pcTDecTopBase->getListPic()->begin()))->getSlice(0)->getBitDepth(CHANNEL_TYPE_LUMA); 2548 const Int refBitDepthChroma = (*(pcTDecTopBase->getListPic()->begin()))->getSlice(0)->getBitDepth(CHANNEL_TYPE_CHROMA); 2549 2550 Bool sameBitDepths = ( bitDepthLuma == refBitDepthLuma ) && ( bitDepthChroma == refBitDepthChroma ); 2565 2551 2566 2552 if( pcPicYuvRecBase->getWidth(COMPONENT_Y) == vps.getPicWidthInLumaSamples(&sps, m_layerId) && pcPicYuvRecBase->getHeight(COMPONENT_Y) == vps.getPicHeightInLumaSamples(&sps, m_layerId) && equalOffsets && zeroPhase )
Note: See TracChangeset for help on using the changeset viewer.