Changeset 1487 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
24 Nov 2015, 03:13:36 (9 years ago)
Author:
fujitsu
Message:

Added support of scalable range extension profiles. Also corrected few issues such as the confWindow wrong initialization. Code is controlled by the macro SCALABLE_REXT.

Location:
branches/SHM-dev/source/Lib/TLibCommon
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/SHM-dev/source/Lib/TLibCommon/TComPic.cpp

    r1485 r1487  
    292292Void TComPic::copyUpsampledPictureYuv(TComPicYuv*   pcPicYuvIn, TComPicYuv*   pcPicYuvOut)
    293293{
     294#if SCALABLE_REXT
     295  Int upsampledRowWidthLuma = pcPicYuvOut->getStride(COMPONENT_Y); // 2 * pcPicYuvOut->getLumaMargin() + pcPicYuvOut->getWidth();
     296  copyOnetoOnePicture(
     297    pcPicYuvIn->getAddr(COMPONENT_Y),       
     298    pcPicYuvOut->getAddr(COMPONENT_Y),     
     299    pcPicYuvOut->getWidth(COMPONENT_Y),
     300    pcPicYuvOut->getHeight(COMPONENT_Y),
     301    upsampledRowWidthLuma);
     302
     303  if(pcPicYuvOut->getChromaFormat() != CHROMA_400)
     304  {
     305    Int upsampledRowWidthChroma = pcPicYuvOut->getStride(COMPONENT_Cb); //2 * pcPicYuvOut->getChromaMargin() + (pcPicYuvOut->getWidth()>>1);
     306
     307    copyOnetoOnePicture(
     308      pcPicYuvIn->getAddr(COMPONENT_Cr),       
     309      pcPicYuvOut->getAddr(COMPONENT_Cr),     
     310      pcPicYuvOut->getWidth(COMPONENT_Cr),
     311      pcPicYuvOut->getHeight(COMPONENT_Cr),
     312      upsampledRowWidthChroma);
     313    copyOnetoOnePicture(
     314      pcPicYuvIn->getAddr(COMPONENT_Cb),       
     315      pcPicYuvOut->getAddr(COMPONENT_Cb),     
     316      pcPicYuvOut->getWidth(COMPONENT_Cb),
     317      pcPicYuvOut->getHeight(COMPONENT_Cb),
     318      upsampledRowWidthChroma);
     319  }
     320#else
    294321  Int upsampledRowWidthLuma = pcPicYuvOut->getStride(COMPONENT_Y); // 2 * pcPicYuvOut->getLumaMargin() + pcPicYuvOut->getWidth();
    295322  Int upsampledRowWidthCroma = pcPicYuvOut->getStride(COMPONENT_Cb); //2 * pcPicYuvOut->getChromaMargin() + (pcPicYuvOut->getWidth()>>1);
     
    313340    pcPicYuvOut->getHeight(COMPONENT_Y)>>1,
    314341    upsampledRowWidthCroma);
     342#endif
    315343}
    316344
  • TabularUnified branches/SHM-dev/source/Lib/TLibCommon/TComUpsampleFilter.cpp

    r1431 r1487  
    8585  if( !resamplingPhase.phasePresentFlag )
    8686  {
     87#if SCALABLE_REXT
     88    if(chromaFormatIdc == 3)
     89    {
     90      phaseVerChroma = 0;
     91    }
     92    else
     93    {
     94#endif
    8795    Int refRegionHeight = heightBL - windowRL.getWindowTopOffset() - windowRL.getWindowBottomOffset();
    8896    phaseVerChroma = (4 * heightEL + (refRegionHeight >> 1)) / refRegionHeight - 4;
     97#if SCALABLE_REXT
     98    }
     99#endif
    89100  }
    90101
     
    139150    }
    140151
     152#if SCALABLE_REXT
     153  if(chromaFormatIdc != 0)
     154  {
     155#endif
    141156    widthEL  >>= 1;
    142157    heightEL >>= 1;
     
    177192      piDstV += strideEL;
    178193    }
     194#if SCALABLE_REXT
     195  }
     196#endif
    179197  }
    180198  else // general resampling process
     
    290308    //========== UV component upsampling ===========
    291309
     310#if SCALABLE_REXT
     311  if(chromaFormatIdc != 0)
     312  {
     313#endif
    292314    widthEL  >>= 1;
    293315    heightEL >>= 1;
     
    396418      }
    397419    }
     420#if SCALABLE_REXT
     421    }
     422#endif
    398423  }
    399424    pcUsPic->setBorderExtension(false);
  • TabularUnified branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r1486 r1487  
    4848
    4949#if SVC_EXTENSION
     50#define SCALABLE_REXT                    1
     51#define FORMATIDX_CHECK                  1
     52
    5053#define MAX_LAYERS                       8      ///< max number of layers the codec is supposed to handle
    5154
     
    197200// This can be enabled by the makefile
    198201#ifndef RExt__HIGH_BIT_DEPTH_SUPPORT
    199 #define RExt__HIGH_BIT_DEPTH_SUPPORT                      0 ///< 0 (default) use data type definitions for 8-10 bit video, 1 = use larger data types to allow for up to 16-bit video (originally developed as part of N0188)
     202#define RExt__HIGH_BIT_DEPTH_SUPPORT                      1 ///< 0 (default) use data type definitions for 8-10 bit video, 1 = use larger data types to allow for up to 16-bit video (originally developed as part of N0188)
    200203#endif
    201204
     
    644647    SCALABLEMAIN = 7,
    645648    SCALABLEMAIN10 = 8,
     649#if SCALABLE_REXT
     650    SCALABLEREXT = 10
     651#endif
    646652#endif
    647653  };
Note: See TracChangeset for help on using the changeset viewer.