2015-09-21 3 views
1

Я ищу спецификации HEVC \ H.265 (особенно для атомов hvc1 и hvcC), но я не могу найти их в режиме онлайн.Где я могу найти спецификации HEVC H.265

Есть ли бесплатная спецификация для HEVC on-line?

+0

ребята, кто-нибудь ???? Я нашел это: http://lists.matroska.org/pipermail/matroska-devel/2013-September/004567.html , но поскольку это не официальное лицо, я не знаю, могу ли я считать на нем –

+0

Эта ссылка ссылается на другой формат контейнера. 'hvc1' и' hvcC' используются во всех форматах контейнеров, полученных из формата базового медиафайла ISO (например, mp4). Формат контейнера Matroska - это нечто иное. – Bastian35022

ответ

3

Спецификация HEVC/H.265 свободно доступна here. Однако он не содержит информации об hvc1 и атомах hvcC. Они определены в MPEG-4 Part 15, что в основном является расширением формата медиафайлов ISO (основа mp4) для переноса содержимого AVC и HEVC. Для HEVC вам нужна (по крайней мере) версия с 2014 года, так как более ранние версии содержат информацию о AVC. К сожалению, эта спецификация недоступна бесплатно.

Некоторые дополнительные указания, если это мешает вам получать спецификации: коробка hvc1/hev1 обрабатывается точно так же, как и avc1/2/3/4 коробки. Коробка hvcC, хотя анализируется несколько иначе, чем поле avcC. Для разбора этого варианта вы можете посмотреть, как это анализируется в некоторых проектах с открытым исходным кодом, таких как ffmpeg или vlc.

2

Я использовал эту структуру для ее анализа. Я взял его из ISO/IEC 14496-15: 2014.

aligned(8) class HEVCDecoderConfigurationRecord 
{ 
    unsigned int(8) configurationVersion = 1; 
    unsigned int(2) general_profile_space; 
    unsigned int(1) general_tier_flag; 
    unsigned int(5) general_profile_idc; 
    unsigned int(32) general_profile_compatibility_flags; 
    unsigned int(48) general_constraint_indicator_flags; 
    unsigned int(8) general_level_idc; 
    bit(4) reserved = ‘1111’b; 
    unsigned int(12) min_spatial_segmentation_idc; 
    bit(6) reserved = ‘111111’b; 
    unsigned int(2) parallelismType; 
    bit(6) reserved = ‘111111’b; 
    unsigned int(2) chroma_format_idc; 
    bit(5) reserved = ‘11111’b; 
    unsigned int(3) bit_depth_luma_minus8; 
    bit(5) reserved = ‘11111’b; 
    unsigned int(3) bit_depth_chroma_minus8; 
    bit(16) avgFrameRate; 
    bit(2) constantFrameRate; 
    bit(3) numTemporalLayers; 
    bit(1) temporalIdNested; 
    unsigned int(2) lengthSizeMinusOne; 
    unsigned int(8) numOfArrays; 
    for (j=0; j < numOfArrays; j++) 
    { 
     bit(1) array_completeness; 
     unsigned int(1) reserved = 0; 
     unsigned int(6) NAL_unit_type; 
     unsigned int(16) numNalus; 
     for (i=0; i< numNalus; i++) 
     { 
      unsigned int(16) nalUnitLength; 
      bit(8*nalUnitLength) nalUnit; 
     } 
    } 
}