H264 编码标准配置档次 Profile 详解

H264 中 Profile

  1. 定义: H264 标准中规定了 多种档次Profile, 每种 Profile 都规定了一个算法特征和限制的子集,任何遵守某个 Profile 的解码器都应该支持与其相应的子集。
  2. 维基百科中解释:
    The standard defines several sets of capabilities, which are referred to as profiles, targeting specific classes of applications. These are declared using a profile code (profile_idc) and sometimes a set of additional constraints applied in the encoder. The profile code and indicated constraints allow a decoder to recognize the requirements for decoding that specific bitstream. (And in many system environments, only one or two profiles are allowed to be used, so decoders in those environments do not need to be concerned with recognizing the less commonly used profiles.) By far the most commonly used profile is the High Profile.
  3. Profile 表
  • 非可伸缩 2D 视频应用:
    H264 编码标准配置档次 Profile 详解_第1张图片

  • 对于摄像机、编辑和专业应用程序,该标准包含四个额外的只包含帧内的Profile,它们被定义为其他相应Profile的简单子集。这些大多是专业应用(例如相机和编辑系统):
    H264 编码标准配置档次 Profile 详解_第2张图片

  • SVC( Scalable Video Coding)扩展
    H264 编码标准配置档次 Profile 详解_第3张图片

  • MVC(Multiview Video Coding) 扩展
    H264 编码标准配置档次 Profile 详解_第4张图片

  • MFC(Multi-resolution Frame-Compatible) 扩展
    在这里插入图片描述

  • 3D-AVC 扩展
    在这里插入图片描述

  1. 特定 Profile 中特性支持表
    H264 编码标准配置档次 Profile 详解_第5张图片
  2. BaseMainExtended 之间编码功能差距

H264 编码标准配置档次 Profile 详解_第6张图片

x264中 Profile 使用

  1. x264 中支持 六种 Profile 设置,在 base.h 文件中声明。
    H264 编码标准配置档次 Profile 详解_第7张图片
  2. 解析外部设置的 Profile 的字符串匹配到 x264 内部对应的枚举,调用函数profile_string_to_int()来完成。
    H264 编码标准配置档次 Profile 详解_第8张图片
  3. 具体的 Profile 应用的 API 通过函数x264_param_apply_profile()来完成,可以看到,如没有特别指定 Profie,默认的就是High 级别。可以看到 x264 中设置 ProfileBaseMainHigh 之间的编码参数差距。
    H264 编码标准配置档次 Profile 详解_第9张图片

VideoToolBox中 Profile 使用

  1. 通过 查看FFmpeg 源码,可以看到 VideoToolBox 中关于 H264 标准的Profile 的解释;和 Level 绑定应用。
    H264 编码标准配置档次 Profile 详解_第10张图片

参考

  • 维基百科
  • x264编码参数详细介绍:profile、preset、tune、level、码控

你可能感兴趣的:(H264(AVC)标准,H264,x264,编码Profile,视频编解码,实时音视频,VideoToolBox,FFmpeg)