Ticket #51: Profile0nCheckings.patch

File Profile0nCheckings.patch, 8.8 KB (added by fhendry, 10 years ago)
  • cfg/encoder_intra_main.cfg

     
    55#======== Profile/Level ================
    66#Profile                      : main
    77NumProfileTierLevel           : 3
    8 #Profile for the whole bitstream
    9 Profile0                      : scalable-main       
    10 #Profile for the base layer --- this will be ignored when BL is not HEVC
    11 Profile1                      : main
    12 #Profile for the enhancement layer
    13 Profile2                      : scalable-main
     8Profile0                      : main        #Profile for BL (NOTE01: this profile applies to whole layers but only BL is outputted)
     9                                            #               (NOTE02: this profile has no effect when NonHEVCBase is set to 1)
     10Profile1                      : main        #Profile for BL (NOTE01: this profile applies to HEVC BL only)
     11                                            #               (NOTE02: When NonHEVCBase is set to 1, this profile & associated level should be updated appropriately)
     12Profile2                      : scalable-main       #Scalable profile
    1413
    1514#======== Unit definition ================
    1615MaxCUWidth                    : 64          # Maximum coding unit width in pixel
  • cfg/encoder_intra_main10.cfg

     
    55#======== Profile/Level ================
    66#Profile                      : main10
    77NumProfileTierLevel           : 3
    8 #Profile for the whole bitstream
    9 Profile0                      : scalable-main10       
    10 #Profile for the base layer --- this will be ignored when BL is not HEVC
    11 Profile1                      : main10
    12 #Profile for the enhancement layer
    13 Profile2                      : scalable-main10
     8Profile0                      : main10        #Profile for BL (NOTE01: this profile applies to whole layers but only BL is outputted)
     9                                              #               (NOTE02: this profile has no effect when NonHEVCBase is set to 1)
     10Profile1                      : main10        #Profile for BL (NOTE01: this profile applies to HEVC BL only)
     11                                              #               (NOTE02: When NonHEVCBase is set to 1, this profile & associated level should be updated appropriately)
     12Profile2                      : scalable-main10       #Scalable profile
    1413
    1514#======== Unit definition ================
    1615MaxCUWidth                    : 64          # Maximum coding unit width in pixel
  • cfg/encoder_lowdelay_main.cfg

     
    55#======== Profile/Level ================
    66#Profile                       : main
    77NumProfileTierLevel           : 3
    8 #Profile for the whole bitstream
    9 Profile0                      : scalable-main       
    10 #Profile for the base layer --- this will be ignored when BL is not HEVC
    11 Profile1                      : main
    12 #Profile for the enhancement layer
    13 Profile2                      : scalable-main
     8Profile0                      : main        #Profile for BL (NOTE01: this profile applies to whole layers but only BL is outputted)
     9                                            #               (NOTE02: this profile has no effect when NonHEVCBase is set to 1)
     10Profile1                      : main        #Profile for BL (NOTE01: this profile applies to HEVC BL only)
     11                                            #               (NOTE02: When NonHEVCBase is set to 1, this profile & associated level should be updated appropriately)
     12Profile2                      : scalable-main       #Scalable profile
    1413
    1514#======== Unit definition ================
    1615MaxCUWidth                    : 64          # Maximum coding unit width in pixel
  • cfg/encoder_lowdelay_main10.cfg

     
    55#======== Profile/Level ================
    66#Profile                      : main10
    77NumProfileTierLevel           : 3
    8 #Profile for the whole bitstream
    9 Profile0                      : scalable-main10
    10 #Profile for the base layer --- this will be ignored when BL is not HEVC
    11 Profile1                      : main10
    12 #Profile for the enhancement layer
    13 Profile2                      : scalable-main10
     8Profile0                      : main10        #Profile for BL (NOTE01: this profile applies to whole layers but only BL is outputted)
     9                                              #               (NOTE02: this profile has no effect when NonHEVCBase is set to 1)
     10Profile1                      : main10        #Profile for BL (NOTE01: this profile applies to HEVC BL only)
     11                                              #               (NOTE02: When NonHEVCBase is set to 1, this profile & associated level should be updated appropriately)
     12Profile2                      : scalable-main10       #Scalable profile
    1413
    1514#======== Unit definition ================
    1615MaxCUWidth                    : 64          # Maximum coding unit width in pixel
  • cfg/encoder_randomaccess_main.cfg

     
    55#======== Profile/Level ================
    66#Profile                      : main
    77NumProfileTierLevel           : 3
    8 #Profile for the whole bitstream
    9 Profile0                      : scalable-main       
    10 #Profile for the base layer --- this will be ignored when BL is not HEVC
    11 Profile1                      : main
    12 #Profile for the enhancement layer
    13 Profile2                      : scalable-main
     8Profile0                      : main        #Profile for BL (NOTE01: this profile applies to whole layers but only BL is outputted)
     9                                            #               (NOTE02: this profile has no effect when NonHEVCBase is set to 1)
     10Profile1                      : main        #Profile for BL (NOTE01: this profile applies to HEVC BL only)
     11                                            #               (NOTE02: When NonHEVCBase is set to 1, this profile & associated level should be updated appropriately)
     12Profile2                      : scalable-main       #Scalable profile
    1413
    1514#======== Unit definition ================
    1615MaxCUWidth                    : 64          # Maximum coding unit width in pixel
  • cfg/encoder_randomaccess_main10.cfg

     
    55#======== Profile/Level ================
    66#Profile                      : main10
    77NumProfileTierLevel           : 3
    8 #Profile for the whole bitstream
    9 Profile0                      : scalable-main10       
    10 #Profile for the base layer --- this will be ignored when BL is not HEVC
    11 Profile1                      : main10
    12 #Profile for the enhancement layer
    13 Profile2                      : scalable-main10
     8Profile0                      : main10        #Profile for BL (NOTE01: this profile applies to whole layers but only BL is outputted)
     9                                              #               (NOTE02: this profile has no effect when NonHEVCBase is set to 1)
     10Profile1                      : main10        #Profile for BL (NOTE01: this profile applies to HEVC BL only)
     11                                              #               (NOTE02: When NonHEVCBase is set to 1, this profile & associated level should be updated appropriately)
     12Profile2                      : scalable-main10       #Scalable profile
    1413
    1514#======== Unit definition ================
    1615MaxCUWidth                    : 64          # Maximum coding unit width in pixel
  • source/App/TAppEncoder/TAppEncCfg.cpp

     
    26052605    }
    26062606    ii++;
    26072607  }
     2608  if (m_numLayers > 1 && m_numPTLInfo > 1 && !m_nonHEVCBaseLayerFlag)
     2609  {
     2610    assert(m_profileList[0] <= Profile::MULTIVIEWMAIN);  //Profile IDC of PTL in VPS shall be one of single-layer profile IDCs
     2611    assert(m_profileList[0] == m_profileList[1]);        //Profile IDC of VpsProfileTierLevel[ 0 ] and VpsProfileTierLevel[ 1 ] shall be the same when BL is HEVC compatible
     2612    assert(m_levelList[0] >= m_levelList[1]);            //Level IDC of VpsProfileTierLevel[ 0 ] should not be less than level IDC of VpsProfileTierLevel[ 1 ].
     2613                                                         //NOTE that this is not conformance constraint but it would be nice if our encoder can prevent inefficient level IDC assignment
     2614    if (m_levelList[0] == m_levelList[1]) printf("Warning: Level0 is set the same as Level1\n");
     2615  }
    26082616#else
    26092617  if( m_profile==Profile::NONE )
    26102618  {