[英]How to understand header of H.265
有人可以解释一下 H.264 header 和 H.265 header 之间的区别吗? 我只需要解析 H265 header 但我很难找到合适的参考。
我做了第一个版本的解析器。 我需要检索 pic_width_in_luma_samples、pic_height_in_luma_samples 和 aspectRatioH、aspectRatioV。
我的代码是这样的:
while (buf->Size > 0)
{
//forbidden bit
flushbits(buf, 1);
int nNALType = showbits(buf, 6);
if (nNALType == NAL_TYPE_SPS)
{
// flushbits until I retrieve desired parameter
flushbits(buf, 4); // sps_video_parameter_set_id
}
else
{
// align bits
buf->Size -= buf->BitsLeft & 0x7;
}
}
这是正确的做法吗? 有一种方法可以让我跳过位,直到找到指示我想要的 SPS NAL 类型的“开始序列”?
H.264 和 H.265 的语法相对相似。
两者都有参数集(PPS、SPS),您可以在下面的规范中找到详细信息。 对于 H.265 - 第 33 页,第 7.3 节详细描述了视频参数集。 规范是用类似伪代码的“C”语言完成的,因此将规范翻译成编译代码相对容易。
您可以随时查看一些现有代码 - 例如:
H.264 (AVC) 规范在这里:
https://www.itu.int/rec/T-REC-H.264-202108-I/en
H.265 (HEVC) 规范在这里:
https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.265-201802-S!!PDF-E&type=items
按照这些步骤解析 H265
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.