Changeset 688 in SHVCSoftware for branches/SHM-6-dev/source


Ignore:
Timestamp:
17 Apr 2014, 04:52:55 (11 years ago)
Author:
samsung
Message:

JCTVC-Q0200 is integrated. Related macro "Q0200_CONFORMANCE_BL_SIZE"

Location:
branches/SHM-6-dev/source
Files:
8 edited

Legend:

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

    r652 r688  
    694694          const Bool isTff = pcPicTop->isTopField();
    695695#if REPN_FORMAT_IN_VPS
    696           UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
    697           Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
    698           m_acTVideoIOYuvReconFile[layerId].write( pcPicTop->getPicYuvRec(), pcPicBottom->getPicYuvRec(),
    699             conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
    700             conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
    701             conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
    702             conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset(), isTff );
    703 
     696#if Q0200_CONFORMANCE_BL_SIZE
     697Int xScal=1,yScal=1;
     698#else
     699UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
     700Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     701#endif
     702m_acTVideoIOYuvReconFile[layerId].write( pcPicTop->getPicYuvRec(), pcPicBottom->getPicYuvRec(),
     703conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
     704conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
     705conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
     706conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset(), isTff );
    704707#else
    705708#if O0194_DIFFERENT_BITDEPTH_EL_BL
     
    798801          const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
    799802#if REPN_FORMAT_IN_VPS
    800           UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
    801           Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
    802           m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
    803             conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
    804             conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
    805             conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
    806             conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() );
    807 
     803#if Q0200_CONFORMANCE_BL_SIZE
     804Int xScal=1,yScal=1;
     805#else
     806UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
     807Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     808#endif
     809m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
     810conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
     811conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
     812conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
     813conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() );
    808814#else
    809815          m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
     
    898904          const Bool isTff = pcPicTop->isTopField();
    899905#if REPN_FORMAT_IN_VPS
    900           UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
    901           Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
    902           m_acTVideoIOYuvReconFile[layerId].write( pcPicTop->getPicYuvRec(), pcPicBottom->getPicYuvRec(),
    903             conf.getWindowLeftOffset()  *xScal + defDisp.getWindowLeftOffset(),
    904             conf.getWindowRightOffset() *xScal + defDisp.getWindowRightOffset(),
    905             conf.getWindowTopOffset()   *yScal + defDisp.getWindowTopOffset(),
    906             conf.getWindowBottomOffset()*yScal + defDisp.getWindowBottomOffset(), isTff );
    907 
     906#if Q0200_CONFORMANCE_BL_SIZE
     907Int xScal=1,yScal=1;
     908#else
     909UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
     910Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     911#endif
     912m_acTVideoIOYuvReconFile[layerId].write( pcPicTop->getPicYuvRec(), pcPicBottom->getPicYuvRec(),
     913conf.getWindowLeftOffset()  *xScal + defDisp.getWindowLeftOffset(),
     914conf.getWindowRightOffset() *xScal + defDisp.getWindowRightOffset(),
     915conf.getWindowTopOffset()   *yScal + defDisp.getWindowTopOffset(),
     916conf.getWindowBottomOffset()*yScal + defDisp.getWindowBottomOffset(), isTff );
    908917#else
    909918#if O0194_DIFFERENT_BITDEPTH_EL_BL
     
    10051014          const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
    10061015#if REPN_FORMAT_IN_VPS
    1007           UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
    1008           Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
    1009           m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
    1010             conf.getWindowLeftOffset()  *xScal + defDisp.getWindowLeftOffset(),
    1011             conf.getWindowRightOffset() *xScal + defDisp.getWindowRightOffset(),
    1012             conf.getWindowTopOffset()   *yScal + defDisp.getWindowTopOffset(),
    1013             conf.getWindowBottomOffset()*yScal + defDisp.getWindowBottomOffset() );
    1014 
     1016#if Q0200_CONFORMANCE_BL_SIZE
     1017Int xScal=1,yScal=1;
     1018#else
     1019UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc();
     1020Int xScal =  TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     1021#endif
     1022m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
     1023conf.getWindowLeftOffset()  *xScal + defDisp.getWindowLeftOffset(),
     1024conf.getWindowRightOffset() *xScal + defDisp.getWindowRightOffset(),
     1025conf.getWindowTopOffset()   *yScal + defDisp.getWindowTopOffset(),
     1026conf.getWindowBottomOffset()*yScal + defDisp.getWindowBottomOffset() );
    10151027#else
    10161028          m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(),
     
    11051117    const Window &defDisp = m_respectDefDispWindow ? pic->getDefDisplayWindow() : Window();
    11061118    Int xScal =  1, yScal = 1;
    1107 #if REPN_FORMAT_IN_VPS
    1108     UInt chromaFormatIdc = pic->getSlice(0)->getChromaFormatIdc();
    1109     xScal = TComSPS::getWinUnitX( chromaFormatIdc );
    1110     yScal = TComSPS::getWinUnitY( chromaFormatIdc );
    1111 #endif
    1112     m_acTVideoIOYuvReconFile[layerIdx].write( pic->getPicYuvRec(),
    1113       conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
    1114       conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
    1115       conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
    1116       conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() );
     1119#if REPN_FORMAT_IN_VPS && !Q0200_CONFORMANCE_BL_SIZE
     1120UInt chromaFormatIdc = pic->getSlice(0)->getChromaFormatIdc();
     1121xScal = TComSPS::getWinUnitX( chromaFormatIdc );
     1122yScal = TComSPS::getWinUnitY( chromaFormatIdc );
     1123#endif
     1124m_acTVideoIOYuvReconFile[layerIdx].write( pic->getPicYuvRec(),
     1125conf.getWindowLeftOffset()  * xScal + defDisp.getWindowLeftOffset(),
     1126conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(),
     1127conf.getWindowTopOffset()   * yScal + defDisp.getWindowTopOffset(),
     1128conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() );
    11171129  }
    11181130  // update POC of display order
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComDataCU.cpp

    r675 r688  
    35033503  Int leftStartL = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindowForLayer(baseColPic->getSlice(0)->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowLeftOffset();
    35043504  Int topStartL  = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindowForLayer(baseColPic->getSlice(0)->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowTopOffset();
     3505#if Q0200_CONFORMANCE_BL_SIZE
     3506leftStartL+=baseColPic->getConformanceWindow().getWindowLeftOffset();
     3507topStartL+=baseColPic->getConformanceWindow().getWindowTopOffset();
     3508#endif
    35053509#else
    35063510  Int leftStartL = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindow(refLayerIdc).getWindowLeftOffset();
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r652 r688  
    768768#if O0215_PHASE_ALIGNMENT
    769769#if O0194_JOINT_US_BITSHIFT
    770 Void TComPrediction::upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, Bool phaseAlignFlag )
    771 {
    772   m_cUsf.upsampleBasePic( currSlice, refLayerIdc, pcUsPic, pcBasePic, pcTempPic, window, phaseAlignFlag );
     770Void TComPrediction::upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window
     771#if Q0200_CONFORMANCE_BL_SIZE
     772, const Window confBL
     773#endif
     774, Bool phaseAlignFlag )
     775{
     776  m_cUsf.upsampleBasePic( currSlice, refLayerIdc, pcUsPic, pcBasePic, pcTempPic, window
     777#if Q0200_CONFORMANCE_BL_SIZE
     778,  confBL
     779#endif
     780, phaseAlignFlag );
    773781}
    774782#else
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComPrediction.h

    r644 r688  
    121121#if O0215_PHASE_ALIGNMENT
    122122#if O0194_JOINT_US_BITSHIFT
    123   Void upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, Bool phaseAlignFlag );
     123  Void upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window
     124#if Q0200_CONFORMANCE_BL_SIZE
     125, const Window confBL
     126#endif
     127, Bool phaseAlignFlag );
    124128#else
    125129  Void upsampleBasePic( UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, Bool phaseAlignFlag );
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComUpsampleFilter.cpp

    r686 r688  
    9999#if O0215_PHASE_ALIGNMENT
    100100#if O0194_JOINT_US_BITSHIFT
    101 Void TComUpsampleFilter::upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, bool phaseAlignFlag )
     101Void TComUpsampleFilter::upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window
     102#if Q0200_CONFORMANCE_BL_SIZE
     103, const Window confBL
     104#endif
     105, bool phaseAlignFlag )
    102106#else
    103107Void TComUpsampleFilter::upsampleBasePic( UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, bool phaseAlignFlag )
     
    126130  Int heightEL  = pcUsPic->getHeight() - scalEL.getWindowTopOffset()  - scalEL.getWindowBottomOffset();
    127131  Int strideEL  = pcUsPic->getStride();
    128 
     132#if Q0200_CONFORMANCE_BL_SIZE
     133widthBL-= (confBL.getWindowLeftOffset()+confBL.getWindowRightOffset());
     134heightBL-=(confBL.getWindowBottomOffset()+confBL.getWindowTopOffset());
     135#endif
    129136#if P0312_VERT_PHASE_ADJ
    130137  Bool vertPhasePositionEnableFlag = scalEL.getVertPhasePositionEnableFlag();
     
    317324    Int bottomEndL = pcUsPic->getHeight() - scalEL.getWindowBottomOffset();
    318325    Int leftOffset = leftStartL > 0 ? leftStartL : 0;
    319 
     326#if Q0200_CONFORMANCE_BL_SIZE
     327leftStartL+= confBL.getWindowLeftOffset()<<4;
     328topStartL+= confBL.getWindowTopOffset()<<4;
     329#endif
    320330#if N0214_INTERMEDIATE_BUFFER_16BITS
    321331#if O0194_JOINT_US_BITSHIFT
     
    411421    widthBL   = pcBasePic->getWidth ();
    412422    heightBL  = pcBasePic->getHeight();
    413 
     423#if Q0200_CONFORMANCE_BL_SIZE
     424widthBL-= confBL.getWindowLeftOffset()+confBL.getWindowRightOffset();
     425heightBL-=confBL.getWindowBottomOffset()+confBL.getWindowTopOffset();
     426#endif
    414427    widthEL   = pcUsPic->getWidth () - scalEL.getWindowLeftOffset() - scalEL.getWindowRightOffset();
    415428    heightEL  = pcUsPic->getHeight() - scalEL.getWindowTopOffset()  - scalEL.getWindowBottomOffset();
     
    431444    Int bottomEndC = (pcUsPic->getHeight() >> 1) - (scalEL.getWindowBottomOffset() >> 1);
    432445    leftOffset = leftStartC > 0 ? leftStartC : 0;
    433 
     446#if Q0200_CONFORMANCE_BL_SIZE
     447leftStartC+= (confBL.getWindowLeftOffset()>>1)<<4;
     448topStartC+= (confBL.getWindowTopOffset()>>1)<<4;
     449#endif
    434450    shiftX = 16;
    435451    shiftY = 16;
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComUpsampleFilter.h

    r644 r688  
    4545#if O0215_PHASE_ALIGNMENT
    4646#if O0194_JOINT_US_BITSHIFT
    47   Void upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, Bool phaseAlignFlag );
     47  Void upsampleBasePic( TComSlice* currSlice, UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window
     48#if Q0200_CONFORMANCE_BL_SIZE
     49, const Window confBL
     50#endif
     51, Bool phaseAlignFlag );
    4852#else
    4953  Void upsampleBasePic( UInt refLayerIdc, TComPicYuv* pcUsPic, TComPicYuv* pcBasePic, TComPicYuv* pcTempPic, const Window window, Bool phaseAlignFlag );
  • branches/SHM-6-dev/source/Lib/TLibCommon/TypeDef.h

    r686 r688  
    4242
    4343#define SYNTAX_BYTES                     10      ///< number of bytes taken by syntaxes per 4x4 block [RefIdxL0(1byte), RefIdxL1(1byte), MVxL0(2bytes), MVyL0(2bytes), MVxL1(2bytes), MVyL1(2bytes)]
    44 
     44#define Q0200_CONFORMANCE_BL_SIZE        1       ///< JCTVC-Q0200; use conformance picture size in re-sampling processs
    4545#if SVC_EXTENSION
    4646#define MAX_LAYERS                       8      ///< max number of layers the codec is supposed to handle
  • branches/SHM-6-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r683 r688  
    658658  {
    659659    Window &conf = pcSPS->getConformanceWindow();
    660 #if REPN_FORMAT_IN_VPS
     660#if REPN_FORMAT_IN_VPS && !Q0200_CONFORMANCE_BL_SIZE
    661661    READ_UVLC(   uiCode, "conf_win_left_offset" );               conf.setWindowLeftOffset  ( uiCode );
    662662    READ_UVLC(   uiCode, "conf_win_right_offset" );              conf.setWindowRightOffset ( uiCode );
Note: See TracChangeset for help on using the changeset viewer.