Changeset 1037 in SHVCSoftware for branches/SHM-dev/source/App


Ignore:
Timestamp:
27 Feb 2015, 21:05:56 (10 years ago)
Author:
seregin
Message:

implementation of alpha channel SEI (JCTVC-P0123) with macro P0123_ALPHA_CHANNEL_SEI, patch was provided by Matteo Naccari <Matteo.Naccari@…>

Location:
branches/SHM-dev/source/App/TAppEncoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r1030 r1037  
    16881688  ("SEIMasteringDisplayWhitePoint",                   cfg_DisplayWhitePointCode,     cfg_DisplayWhitePointCode, "Mastering display white point CIE xy coordinates in normalised increments of 1/50000 (e.g. 0.333 = 16667)")
    16891689   
     1690#if P0123_ALPHA_CHANNEL_SEI
     1691  ("SEIAlphaChannelInfo",                     m_alphaSEIEnabled,                        false, "Enables transmission of information associated with alpha channel (default : 0)")
     1692  ("SEIAlphaCancelFlag",                      m_alphaCancelFlag,                         true, "Denotes that this SEI message cancels the persistence of any previously received alpha channel SEI message (default : 1)")
     1693  ("SEIAlphaUseIdc",                          m_alphaUseIdc,                                2, "Denotes the use of the received alpha channel in final picture composition (e.g. pre-multiplied alpha, default : 2)")
     1694  ("SEIAlphaBitDepthMinus8",                  m_alphaBitDepthMinus8,                        0, "Denotes the bit depth associated with the received alpha channel (default : 0)")
     1695  ("SEIAlphaTransparentValue",                m_alphaTransparentValue,                      0, "Denotes the sample value which is considered transparent for alpha blending purposes (default : 0)")
     1696  ("SEIAlphaOpaqueValue",                     m_alphaOpaqueValue,                         255, "Denotes the sample value which is considered opaque for alpha blending purposes (default : 255)")
     1697  ("SEIAlphaIncrementFlag",                   m_alphaIncrementFlag,                     false, "Denotes whether the sample values should be incremented by one for the purposes of alpha blending (default : 0)")
     1698  ("SEIAlphaClipFlag",                        m_alphaClipFlag,                          false, "Denotes whether clipping is applied to the sample values (default : 0)")
     1699  ("SEIAlphaClipType",                        m_alphaClipTypeFlag,                      false, "Denotes the type of clipping applied to the sample values (0 = binary, 1 = linear, default : 0)")
     1700#endif
    16901701#if Q0096_OVERLAY_SEI
    16911702  ("SEIOverlayInfo",                          m_overlaySEIEnabled,                      false, "Control generation of Selectable Overlays SEI messages")
     
    44734484  }
    44744485
     4486#if P0123_ALPHA_CHANNEL_SEI
     4487  if( m_alphaSEIEnabled && !m_alphaCancelFlag )
     4488  {
     4489    xConfirmPara(0 < m_alphaUseIdc || m_alphaUseIdc > 2, "SEIAlphaUseIdc greater than 2 is reserved for future use by ITU-T | ISO/IEC");
     4490    xConfirmPara(m_alphaBitDepthMinus8 < 0 || m_alphaBitDepthMinus8 > 7, "SEIAlphaBitDepthMinus8 shall be in the range 0 to 7 inclusive");
     4491  }
     4492#endif
    44754493#if Q0096_OVERLAY_SEI
    44764494  if( m_overlaySEIEnabled && !m_overlayInfoCancelFlag )
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h

    r1029 r1037  
    436436  Int       m_layersNotPresentSEIEnabled;
    437437#endif
    438 
     438#if P0123_ALPHA_CHANNEL_SEI
     439  Bool      m_alphaSEIEnabled;
     440  Bool      m_alphaCancelFlag;
     441  Int       m_alphaUseIdc;
     442  Int       m_alphaBitDepthMinus8;
     443  Int       m_alphaTransparentValue;
     444  Int       m_alphaOpaqueValue;
     445  Bool      m_alphaIncrementFlag;
     446  Bool      m_alphaClipFlag;
     447  Bool      m_alphaClipTypeFlag;
     448#endif
    439449#if SVC_EXTENSION
    440450#if FAST_INTRA_SHVC
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r1031 r1037  
    612612    m_acTEncTop[layer].setKneeSEIOutputKneePoint                            ( m_kneeSEIOutputKneePoint );
    613613    m_acTEncTop[layer].setMasteringDisplaySEI                               ( m_masteringDisplay );
     614#if P0123_ALPHA_CHANNEL_SEI
     615    m_acTEncTop[layer].setAlphaSEIEnabled                                   ( m_alphaSEIEnabled );
     616    m_acTEncTop[layer].setAlphaCancelFlag                                   ( m_alphaCancelFlag );
     617    m_acTEncTop[layer].setAlphaUseIdc                                       ( m_alphaUseIdc );
     618    m_acTEncTop[layer].setAlphaBitDepthMinus8                               ( m_alphaBitDepthMinus8 );
     619    m_acTEncTop[layer].setAlphaTransparentValue                             ( m_alphaTransparentValue );
     620    m_acTEncTop[layer].setAlphaOpaqueValue                                  ( m_alphaOpaqueValue );
     621    m_acTEncTop[layer].setAlphaIncrementFlag                                ( m_alphaIncrementFlag );
     622    m_acTEncTop[layer].setAlphaClipFlag                                     ( m_alphaClipFlag );
     623    m_acTEncTop[layer].setAlphaClipTypeFlag                                 ( m_alphaClipTypeFlag );
     624#endif
    614625#if Q0096_OVERLAY_SEI
    615626    m_acTEncTop[layer].setOverlaySEIEnabled                                 ( m_overlaySEIEnabled );
Note: See TracChangeset for help on using the changeset viewer.