Changeset 389 in SHVCSoftware for branches/SHM-3.1-dev/source/App/TAppDecoder


Ignore:
Timestamp:
10 Sep 2013, 17:27:55 (11 years ago)
Author:
qualcomm
Message:

Signaling representation format in VPS (MACRO: REPN_FORMAT_IN_VPS)

Includes signaling of representation format - including picture resolution, bit depth, chroma format - in the VPS, with the option of updating them in the SPS. The configuration file has "RepFormatIdx%d" added to indicate for each layer which representation format is used. The rep_format() structures are automatically created by the encoder. If the bit depth and the chroma format are also changed across layers, some more configuration support would be needed.

From: Adarsh K. Ramasubramonian <aramasub@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-3.1-dev/source/App/TAppDecoder/TAppDecTop.cpp

    r374 r389  
    551551        const Window &conf = pcPic->getConformanceWindow();
    552552        const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
     553#if REPN_FORMAT_IN_VPS
     554        UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
     555        Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     556        m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
     557                                       conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
     558                                       conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
     559                                       conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
     560                                       conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() );
     561
     562#else
    553563        m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
    554564                                       conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
     
    556566                                       conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
    557567                                       conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() );
     568#endif
    558569      }
    559570     
     
    630641        const Window &conf = pcPic->getConformanceWindow();
    631642        const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
     643#if REPN_FORMAT_IN_VPS
     644        UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
     645        Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     646        m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
     647                                       conf.getWindowLeftOffset()  *xScal + defDisp.getWindowLeftOffset(),
     648                                       conf.getWindowRightOffset() *xScal + defDisp.getWindowRightOffset(),
     649                                       conf.getWindowTopOffset()   *yScal + defDisp.getWindowTopOffset(),
     650                                       conf.getWindowBottomOffset()*yScal + defDisp.getWindowBottomOffset() );
     651
     652#else
    632653        m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
    633654                                       conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
     
    635656                                       conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
    636657                                       conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() );
     658#endif
    637659      }
    638660     
Note: See TracChangeset for help on using the changeset viewer.