2015-12-02 148 views
0

我正在阅读关于H264编解码器及其使用RTP数据包流的使用。我也指RFC 6184相同。视频编码层:什么是VCL和它的功能是什么

我有几个问题如下。

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

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

下面是维基页面的摘录。

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

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

你可以在这里阅读有关VCL:http://stackoverflow.com/questions/24884827/ – szatmary

+0

@szatmary我已经阅读了你的答案,但我觉得它比VCL更加NAL。 –

回答

0

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

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

大概在这个时候我的理解是模糊的。你能帮助我提供任何链接或提供的答案。 –

+1

它来源于个人项目经验和一般“关注点分离”原则。 VCL产生一个视频数据块,然后将其打包并通过网络传输或存储到磁盘。我可以罚款的最佳来源:http://iphome.hhi.de/wiegand/assets/pdfs/DIC_H264_07.pdf – smirnoff

1

要获取有关VCL和NAL一定的了解,看看在H264 standard document在部分7.4.1 NAL单元语义

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

为了阐述一点,VCL将更多地使用视频压缩标准(与网络层不同)。因此它不属于任何网络协议栈。 NAL在拥塞时帮助网络路由器。为了在接收端实现更好的解码,关键数据包不应该丢失。因此,NAL给出了潜在峰值的规定,以了解给定数据包在解码过程中的重要性,并有助于作出适当的决定(要么丢弃数据包)。这只是NAL的一个简单例子。

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