Changeset 525 in SHVCSoftware


Ignore:
Timestamp:
19 Dec 2013, 21:17:10 (11 years ago)
Author:
sharp
Message:
  1. Deshpande <sdeshpande@…>

JCTVC-O0118 video signal information signaling

Location:
branches/SHM-4.1-dev/source/Lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.1-dev/source/Lib/TLibCommon/TComSlice.cpp

    r520 r525  
    21232123   ::memset(m_ctuBasedOffsetEnabledFlag,     0, sizeof(m_ctuBasedOffsetEnabledFlag));
    21242124   ::memset(m_minHorizontalCtuOffsetPlus1,   0, sizeof(m_minHorizontalCtuOffsetPlus1));
     2125#endif
     2126#if VPS_VUI_VIDEO_SIGNAL
     2127    m_vidSigPresentVpsFlag=true;
     2128    m_vpsVidSigInfo=1;
     2129    ::memset( m_vpsVidSigIdx, 0, sizeof(m_vpsVidSigIdx) );
     2130    m_vpsVidSigIdx[0]=0;
     2131    for (Int i=0; i < 16; i++)
     2132    {
     2133      m_vpsVidFormat[i] = 5;
     2134      m_vpsFullRangeFlag[i] = false;
     2135      m_vpsColorPrimaries[i] = 2;
     2136      m_vpsTransChar[i] = 2;
     2137      m_vpsMatCoeff[i] = 2;
     2138    }
    21252139#endif
    21262140#if VPS_VUI_BITRATE_PICRATE 
  • branches/SHM-4.1-dev/source/Lib/TLibCommon/TComSlice.h

    r524 r525  
    613613  Int         m_minHorizontalCtuOffsetPlus1 [MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1];
    614614#endif
     615#if VPS_VUI_VIDEO_SIGNAL
     616    Bool        m_vidSigPresentVpsFlag;
     617    Int         m_vpsVidSigInfo;
     618    Int         m_vpsVidSigIdx[MAX_VPS_LAYER_ID_PLUS1];
     619    Int         m_vpsVidFormat[16];
     620    Bool        m_vpsFullRangeFlag[16];
     621    Int         m_vpsColorPrimaries[16];
     622    Int         m_vpsTransChar[16];
     623    Int         m_vpsMatCoeff[16];
     624#endif
    615625#if VPS_VUI_BITRATE_PICRATE
    616626  Bool        m_bitRatePresentVpsFlag;
     
    887897  Int  getMinHorizontalCtuOffsetPlus1 ( Int currLayerId, Int refLayerId )            { return m_minHorizontalCtuOffsetPlus1[currLayerId][refLayerId];}
    888898  Void setMinHorizontalCtuOffsetPlus1 ( Int currLayerId, Int refLayerId, Int val )   { m_minHorizontalCtuOffsetPlus1[currLayerId][refLayerId] = val;} 
     899#endif
     900#if VPS_VUI_VIDEO_SIGNAL
     901    Bool   getVideoSigPresentVpsFlag()           { return m_vidSigPresentVpsFlag; }
     902    Void   setVideoSigPresentVpsFlag(Bool x)     { m_vidSigPresentVpsFlag = x;    }
     903    Int    getNumVideoSignalInfo()               { return m_vpsVidSigInfo;        }
     904    Void   setNumVideoSignalInfo(Int x)          { m_vpsVidSigInfo = x;           }
     905    Int    getVideoSignalInfoIdx(Int idx)        { return m_vpsVidSigIdx[idx];    }
     906    Void   setVideoSignalInfoIdx(Int idx, Int x) { m_vpsVidSigIdx[idx] = x;       }
     907    Int    getVideoVPSFormat(Int idx)            { return m_vpsVidFormat[idx];    }
     908    Void   setVideoVPSFormat(Int idx, Int x)     { m_vpsVidFormat[idx] = x;       }
     909    Bool   getVideoFullRangeVpsFlag(Int idx)     { return m_vpsFullRangeFlag[idx];}
     910    Void   setVideoFullRangeVpsFlag(Int idx, Bool x) { m_vpsFullRangeFlag[idx] = x;   }
     911    Int    getColorPrimaries(Int idx)            { return m_vpsColorPrimaries[idx];   }
     912    Void   setColorPrimaries(Int idx, Int x)     { m_vpsColorPrimaries[idx] = x;      }
     913    Int    getTransCharacter(Int idx)            { return m_vpsTransChar[idx];    }
     914    Void   setTransCharacter(Int idx, Int x)     { m_vpsTransChar[idx] = x;       }
     915    Int    getMaxtrixCoeff(Int idx)              { return m_vpsMatCoeff[idx];     }
     916    Void   setMaxtrixCoeff(Int idx, Int x)       { m_vpsMatCoeff[idx] = x;        }
    889917#endif
    890918#if VPS_VUI_BITRATE_PICRATE
  • branches/SHM-4.1-dev/source/Lib/TLibCommon/TypeDef.h

    r524 r525  
    102102#define HIGHER_LAYER_IRAP_SKIP_FLAG      1      ///< JCTVC-O0199: Indication that higher layer IRAP picture uses skip blocks only
    103103#endif
     104#define VPS_VUI_VIDEO_SIGNAL             1      ///< JCTVC-O0118 video signal information
    104105#endif //VPS_VUI
    105106
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r524 r525  
    16231623  }
    16241624#endif
     1625#if VPS_VUI_VIDEO_SIGNAL
     1626    READ_FLAG( uiCode, "video_signal_info_idx_present_flag" ); vps->setVideoSigPresentVpsFlag( uiCode == 1 );
     1627    if (vps->getVideoSigPresentVpsFlag())
     1628    {
     1629        READ_CODE(4, uiCode, "vps_num_video_signal_info_minus1" ); vps->setNumVideoSignalInfo(uiCode + 1);
     1630    }
     1631    else
     1632    {
     1633        vps->setNumVideoSignalInfo(vps->getMaxLayers());
     1634    }
     1635   
     1636   
     1637    for(i = 0; i < vps->getNumVideoSignalInfo(); i++)
     1638    {
     1639        READ_CODE(3, uiCode, "video_vps_format" ); vps->setVideoVPSFormat(i,uiCode);
     1640        READ_FLAG(uiCode, "video_full_range_vps_flag" ); vps->setVideoFullRangeVpsFlag(i,uiCode);
     1641        READ_CODE(8, uiCode, "color_primaries_vps" ); vps->setColorPrimaries(i,uiCode);
     1642        READ_CODE(8, uiCode, "transfer_characteristics_vps" ); vps->setTransCharacter(i,uiCode);
     1643        READ_CODE(8, uiCode, "matrix_coeffs_vps" );vps->setMaxtrixCoeff(i,uiCode);
     1644    }
     1645    if(!vps->getVideoSigPresentVpsFlag())
     1646    {
     1647        for (i=0; i < vps->getMaxLayers(); i++)
     1648        {
     1649            vps->setVideoSignalInfoIdx(i,i);
     1650        }
     1651    }
     1652    else {
     1653        vps->setVideoSignalInfoIdx(0,0);
     1654        if (vps->getNumVideoSignalInfo() > 1 )
     1655        {
     1656            for (i=1; i < vps->getMaxLayers(); i++)
     1657                READ_CODE(4, uiCode, "vps_video_signal_info_idx" ); vps->setVideoSignalInfoIdx(i, uiCode);
     1658        }
     1659        else {
     1660          for (i=1; i < vps->getMaxLayers(); i++)
     1661          {
     1662            vps->setVideoSignalInfoIdx(i,0);
     1663          }
     1664        }
     1665    }
     1666#endif
    16251667}
    16261668#endif
  • branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r524 r525  
    12811281  }
    12821282#endif
     1283#if VPS_VUI_VIDEO_SIGNAL
     1284    WRITE_FLAG( vps->getVideoSigPresentVpsFlag(), "video_signal_info_idx_present_flag" );
     1285    if (vps->getVideoSigPresentVpsFlag())
     1286    {
     1287        WRITE_CODE(vps->getNumVideoSignalInfo()-1, 4, "vps_num_video_signal_info_minus1" );
     1288    }
     1289   
     1290    for(i = 0; i < vps->getNumVideoSignalInfo(); i++)
     1291    {
     1292        WRITE_CODE(vps->getVideoVPSFormat(i), 3, "video_vps_format" );
     1293        WRITE_FLAG(vps->getVideoFullRangeVpsFlag(i), "video_full_range_vps_flag" );
     1294        WRITE_CODE(vps->getColorPrimaries(i), 8, "color_primaries_vps" );
     1295        WRITE_CODE(vps->getTransCharacter(i), 8, "transfer_characteristics_vps" );
     1296        WRITE_CODE(vps->getMaxtrixCoeff(i), 8, "matrix_coeffs_vps" );
     1297    }
     1298   
     1299    if (vps->getVideoSigPresentVpsFlag() && vps->getNumVideoSignalInfo() > 1 )
     1300    {
     1301        for (i=1; i < vps->getMaxLayers(); i++)
     1302            WRITE_CODE(vps->getVideoSignalInfoIdx(i), 4, "vps_video_signal_info_idx" );
     1303    }
     1304#endif
    12831305}
    12841306#endif
Note: See TracChangeset for help on using the changeset viewer.