Где я могу найти спецификации HEVC \ H.265

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

Есть ли бесплатные спецификации для HEVC онлайн?

2 ответа

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

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

Я использовал эту структуру, чтобы разобрать ее. Я взял это из 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;
        }
    }
}
Другие вопросы по тегам