【问题标题】:Video Coding Layer : What exactly is VCL and What are its functions视频编码层:VCL到底是什么,它的功能是什么
【发布时间】:2015-12-02 08:06:03
【问题描述】:

我正在阅读有关H264 编解码器及其使用 RTP 数据包流的用法。我也同样指的是RFC 6184

我有几个问题如下。

  1. VCL 究竟属于协议栈的哪个位置。
  2. VCL 层的预期功能是什么。

到目前为止,我只能从 NAL 的维基百科页面了解 NAL 的功能。

以下是维基页面的摘录。

NAL 旨在提供“网络友好性”,以便为各种系统简单有效地定制 VCL 的使用。 NAL 有助于将 VCL 数据映射到传输层,例如:

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

【问题讨论】:

标签: streaming video-streaming h.264 codec


【解决方案1】:

要了解 VCL 和 NAL,请查看 H264 standard document7.4.1 NAL 单元语义部分

注 1 – VCL 被指定为有效地表示 视频数据。 NAL 被指定用于格式化该数据并提供 标题信息以适合在品种上传送的方式 通信渠道或存储介质。所有数据都包含在 NAL 单元,每个单元包含整数个字节。一个 NAL unit 指定了一种通用格式,用于面向数据包和 比特流系统。面向数据包的 NAL 单元的格式 传输和字节流是相同的,除了每个 NAL 单元可以 前面有起始码前缀和字节中的额外填充字节 流格式。

稍微详细说一下,VCL 更多的是与视频压缩标准(与网络层无关)。因此它不属于任何网络协议栈。 NAL 在拥塞时帮助网络路由器。为了在接收端实现更好的解码,不应丢弃关键数据包。因此,NAL 提供了潜行峰值以了解给定数据包在解码过程中的重要性,并有助于做出适当的决定(丢弃或不丢弃数据包)。这只是 NAL 的一个简单示例。

如果在解码语法时需要更多注意,则需要了解 VCL。 NAL 在 VCL 周围提供了一层保护。 VCL 包含切片方面的压缩视频数据。一个视频帧可以分成一个或多个切片。 Slice 包含一个或多个压缩形式的宏块(16x16 像素块),遵循标准语法。

【讨论】:

    【解决方案2】:

    这个问题有点含糊——您对“协议栈”的定义是什么?我认为 VCL 不是协议栈的一部分,因为它与网络无关。编码器和解码器的简化图:

      Source -> VCL (Encode) -> NAL -> Packet -> Network
      Network -> Packet -> NAL -> Frame -> VCL (Decode) -> Render
    

    【讨论】:

    • 可能在这个时候我的理解是模糊的。您能帮我提供所提供答案的任何链接或参考吗?
    • 来源于个人项目经验和一般的“关注点分离”原则。 VCL 产生一个视频数据块,然后打包并通过网络传输或存储到磁盘。最好的来源:iphome.hhi.de/wiegand/assets/pdfs/DIC_H264_07.pdf
    猜你喜欢
    • 2011-08-07
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多