我正在阅读使用RTP数据包流的H264
编解码器及其用法。我也指RFC 6184
为同一个。
我的问题如下。
到目前为止,我只能从NAL的维基百科页面了解NAL功能。
以下是维基页面的摘录。
NAL旨在提供网络友好性"为各种系统实现简单有效的VCL定制。 NAL有助于将VCL数据映射到传输层,例如:
答案 0 :(得分:2)
要了解VCL和NAL,请查看{{3>}部分 7.4.1 NAL单位语义
注1 - 指定VCL有效地表示内容 视频数据。指定NAL格式化该数据并提供 标题信息以适合于各种传送的方式 通信渠道或存储媒体。所有数据都包含在 NAL单元,每个单元包含整数个字节。一个NAL unit指定用于面向数据包和 比特流系统。面向数据包的NAL单元的格式 传输和字节流是相同的,除了每个NAL单元都可以 之前是一个起始码前缀和字节中的额外填充字节 流格式。
详细说明,VCL将采用视频压缩标准(与网络层无关)。因此,它不属于任何网络协议栈。 NAL在拥塞时帮助网络路由器。为了在接收器端实现更好的解码,不应丢弃关键数据包。因此,NAL提供了一个潜行峰值条款,以了解给定数据包在解码过程中的重要性,并有助于做出适当的决定(要么丢弃数据包,要么丢弃数据包)。这只是NAL的一个简单例子。
如果在解码语法时需要更多关注,则需要VCL理解。 NAL在VCL周围提供一层保护。 VCL包含切片方面的压缩视频数据。一个视频帧可以分成一个或多个片段。 Slice按照标准语法包含一个或多个压缩格式的宏块(16x16像素块)。
答案 1 :(得分:0)
问题有点模糊 - 你对“协议栈”的定义是什么?我认为VCL不是协议栈的一部分,因为它与网络无关。编码器和解码器的简化图表:
Source -> VCL (Encode) -> NAL -> Packet -> Network
Network -> Packet -> NAL -> Frame -> VCL (Decode) -> Render