NAL单元的各种类型介绍

NAL单元的各种类型介绍NAL 单元的各种类型如下表所示 NAL 分为 VCL 的 NAL 单元和非 VCL 的 NAL 单元 一个以 IDRAccessUni 开始的 CodedSequenc 由一个或多个 IDRSlices 组成 每一个都是 IntraCodedSl 然后紧接着就是非 IDRSlice 或分割 Slice 非 VCL 的 NAL 单元包括 PSP SEI 等 这些参数对解码和显示视频都是很有用的 1 A

NAL单元的各种类型如下表所示:

NAL单元的各种类型介绍

NAL分为VCL的NAL单元和非VCL的NAL单元。

一个以IDR Access Unit开始的Coded Sequence,由一个或多个IDR Slices组成,每一个都是Intra Coded Slice。然后紧接着就是非IDR Slice或分割Slice。非VCL的NAL单元包括PSP、SEI等,这些参数对解码和显示视频都是很有用的。

1、A、B和C类数据分割

组成Slice的Coded Data被存放在三种数据分割中,A、B和C类数据分割。每种分割包含Coded Slice的一个子集。每种分割被单独的存放在一个NAL单元中,因此可以被单独传输。

A类数据分割:包含Slice的头和每个宏块的头;

B类数据分割:包含Intra和SI Slice宏块的被编码的Residual数据;

C类数据分割:包含P、B和SP Slice宏块的被编码的Residual数据。

如果A类数据分割丢失,很难甚至不可能重构其所在的Slice。三类数据分割在对错误的容忍度方面相比,A最不能容忍错误的出现,而C的容错能力最强。在一个容易出错的环境,提高性能的策略包括:对这三种数据分割应用非均匀错误保护。例如,对A类数据分割使用向前纠错,通过不同的通道传输不同类型的数据分割,或者给A类数据分割选择一个最可靠的通道。

2、SEI

SEI(Supplemental Enhancement Information),补充增强信息,这部分参数可以作为H.264的比特流数据而被传输,每一个SEI信息被封装成一个NAL单元。SEI对于解码器来说可能是有用的,但是对于基本的解码过程来说,并不是必须的。

3、PPS和SPS

Parameter Sets是携带解码参数的NAL Units。发送这些参数采用独立于Coded Slices的方式能够提高效率,因为共用的参数仅仅需要传输一次。Parameter Sets对于正确的解码是非常重要的。在一个有损耗的传输场景,在传输过程中比特流或包可能丢失或损坏。在这种网络环境中,Parameter Sets可以通过高质量的服务来发送,比如向前纠错机制或优先级机制。

Parameter Sets与其之外的句法元素之间的关系如下图所示:

NAL单元的各种类型介绍

SPS(Sequence Parameter Set)包含一些通用的参数,比如Profile和Level,比如视频帧的尺寸,参考帧的最大数量等,这些参数对整个Video Sequence或者Programme都是通用的。PPS(Picture Parameter Set)包含一些通用的参数,比如熵编码类型,有效的参考图像的数目和初始化参数等,这些参数可以应用到一个Video Sequence或者一部分编码帧。

4、序列结束符和流结束符

序列结束符表明下一个Access Unit是IDR,比如一个新的Coded Video Sequence的开始。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227052.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:03
下一篇 2026年3月16日 下午10:03


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号