简体   繁体   English

我在哪里可以找到 HEVC \\ H.265 规范

[英]Where can I find HEVC \ H.265 specs

I'm looking for HEVC \\ H.265 specs (especially for hvc1 and hvcC atoms) but I'm not able to find them on-line.我正在寻找 HEVC \\ H.265 规范(特别是对于 hvc1 和 hvcC 原子),但我无法在线找到它们。

Is there a free spec for HEVC on-line?是否有在线 HEVC 的免费规范?

The HEVC/H.265 spec is freely available here . HEVC/H.265 规范可在此处免费获得。 However, it does not contain information about the hvc1 and the hvcC atoms.但是,它不包含有关hvc1hvcC原子的信息。 These are defined in MPEG-4 Part 15 , which is basically an extension of the ISO base media file format (the basis of mp4) for carrying AVC and HEVC content.这些在MPEG-4 Part 15中定义,它基本上是 ISO 基本媒体文件格式(mp4 的基础)的扩展,用于承载 AVC 和 HEVC 内容。 For HEVC, you need (at least) the version from 2014, as earlier versions only have information about AVC.对于 HEVC,您(至少)需要 2014 年的版本,因为早期版本仅包含有关 AVC 的信息。 Unfortunately, this spec is not available for free.不幸的是,这个规范不是免费的。

Some further guidance if this prevents you from getting the spec: the hvc1 / hev1 box is parsed exactly the same way as the avc1 / 2 / 3 / 4 boxes.如果这会阻止您获得规范,请提供一些进一步的指导: hvc1 / hev1框的解析方式与avc1 / 2 / 3 / 4框完全相同。 The hvcC box though is parsed slightly differently than the avcC box. hvcC框的解析方式与avcC框略有不同。 For parsing that one, you could look at how this is parsed in some open source projects, such as ffmpeg or vlc .为了解析那个,你可以看看它在一些开源项目中是如何解析的,比如 ffmpeg 或vlc

I've used this structure to parse it.我已经使用这个结构来解析它。 I took it from ISO/IEC 14496-15:2014.我取自 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;
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM