视频编码层:VCL到底是什么以及它的功能是什么

时间:2015-12-02 08:06:04

标签: streaming video-streaming h.264 codec

我正在阅读使用RTP数据包流的H264编解码器及其用法。我也指RFC 6184为同一个。

我的问题如下。

  1. VCL属于协议堆栈的确切位置。
  2. VCL图层的预期功能是什么。
  3. 到目前为止,我只能从NAL的维基百科页面了解NAL功能。

    以下是维基页面的摘录。

    NAL旨在提供网络友好性"为各种系统实现简单有效的VCL定制。 NAL有助于将VCL数据映射到传输层,例如:

    1. 任何类型的实时有线和无线互联网服务的RTP / IP。
    2. 文件格式,例如用于存储和MMS的ISO MP4。
    3. H.32X,用于有线和无线会话服务。
    4. 用于广播服务的MPEG-2系统等

2 个答案:

答案 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