1.2 Profile and level parameters
档次和级别参数
吐槽几句:这一部分的参数可能专业术语比较多,可能需要先学 H.265 的理论知识再来看。本人确实没有去系统学过,然后就发现很多专业名词看不懂,以及不知所云,翻译也会有很多不到位的地方(TvT)。如果有翻译不到位的地方,可以跟我反映,我也会及时进行修改的。
upd(2022-10-22): 在学习过程中,发现 profile 一词翻译成档次才对,之前一直翻译成配置文件,在此修正。
Profile
- 默认值 none
指定的编码比特流所遵循的档次(Profile)
在第一代的 HEVC 中,合法的取值为:none, main, main10, main-still-picture
在第二代的 HEVC 中,合法的取值为:main-RExt, high-throughput-RExt, monochrome, monochrome12, monochrome16, main12, main_422_10, main_422_12, main_444, main_444_10, main_444_12, main_444_16, main_intra, main_10_intra, main_12_intra, main_422_10_intra, main_422_12_intra, main_444_intra, main_444_10_intra, main_444_12_intra, main_444_16_intra, hight_throughput_444_16_intra.
补充:以下的档次字符串也是合法的:high_throughput_444, high_throughput_444_10, high_throughput_444_14.
当 main-RExt 或 high-throughput-RExt 被指定,约束标志(constrain flag)将通过手动指定,或通过其它提供的设置(supplied settings)计算得到。
兼容性标志位(compatibility flags)将通过档次自动确定。注意:目前只有有限的验证,其编码器配置符合档次、等级和层的约束。
原文: There is currently only limited validation that the encoder configuration complies with the profile, level and tier constraints.
这段话太难翻译了呜呜呜~
Level
- 默认值为 none
指定所编码的比特流遵从的级别。合法的取值有:none 1、2、2.1、3、3.1、4、4.1、5、5.1、5.2、6、6.1、6.2、8.5
注意:目前只有有限的验证,其编码器配置符合档次、等级和层的约束。
Tier
- 默认值为 main
指定编码的比特流遵从的级别层。合法的取值有:main high
注意:目前只有有限的验证,其编码器配置符合档次、等级和层的约束。
MaxBitDepthConstraint
- 默认值为0
当 Profile 的值为 main-RExt 时,指定用于推算出给 RExt 档次的 general_max_bit_depth 约束标志的值。如果为 0,则使用 InternalBitDepth 和 InternalBitDepthC 的最大值。
RExt: Range Extension
MaxChromaFormatConstraint
- 默认值为 0
当 Profile 的值为 main-RExt 时,指定色度格式以用于 RExt 档次的一般约束。当值为 0 时,使用 ChromaFormatIDC 的值。
IntraConstraintFlag
- 默认值为 false
当 Profile 的值为 main-RExt 时,指定用于 RExt 档次的 general_intra_constraint_flag 的值。
OnePictureOnlyConstraintFlag
- 默认值为 false
当 Profile 的值为 main-RExt 时,指定用于 Rext 档次的 general_one_picture_only_constraint_flag 的值。
LowerBitRateConstraintFlag
- 默认值为 false
指定用于 RExt 档次的 general_lower_bit_constraint_flag 的值
ProgressiveSource
- 默认值为 false
指定 general_progressive_source_flag 的值
progressive adj. 逐步发展的
InterlancedSource
- 默认为 false
指定general_interlaced_source_flag 的值
interlaced adj. 交错的
ProgressiveSource 和 InterlancedSource:用于指定 CVS(Coded Video Sequence 已编码视频序列)中图像的扫描方式,即逐行扫描、隔行扫描或未指明扫描方式等
参考万帅的《H.265/HEVC》中对上述变量的解释。下同
NonPackedSource
- 默认值为 false
指定 general_non_packed_constraint_flag 的值
general_non_packed_constraint_flag: 指明 CVS 中是否存在打包成帧的SEI(Supplemental Enhancement Information 补充增强信息)。
SEI:可参考这篇博客
FrameOnly
- 默认值为 false
指定 general_frame_only_constraint_flag 的值。
general_frame_only_constraint_flag:指定 field_seq_flag 的值是否为0