0

I am reading about H264 codec and its usage using the RTP packets stream. I am also referring RFC 6184 for the same.

I have few questions as below.

  1. Where exactly in the protocol stack the VCL belongs.
  2. What are the expected functions of VCL layer.

So far I was just able to understand the NAL functionality from the Wikipedia page of NAL.

Below is the excerpt from the wiki page.

The NAL is designed in order to provide "network friendliness" to enable simple and effective customization of the use of VCL for a broad variety of systems. The NAL facilitates the ability to map VCL data to transport layers such as:

  1. RTP/IP for any kind of real-time wire-line and wireless Internet services.
  2. File formats, e.g., ISO MP4 for storage and MMS.
  3. H.32X for wireline and wireless conversational services.
  4. MPEG-2 systems for broadcasting services, etc
Krishna Oza
  • 1,390
  • 2
  • 25
  • 50

2 Answers2

4

To get some understanding about VCL and NAL, look in H264 standard document at section 7.4.1 NAL unit semantics

NOTE 1 – The VCL is specified to efficiently represent the content of the video data. The NAL is specified to format that data and provide header information in a manner appropriate for conveyance on a variety of communication channels or storage media. All data are contained in NAL units, each of which contains an integer number of bytes. A NAL unit specifies a generic format for use in both packet-oriented and bitstream systems. The format of NAL units for both packet-oriented transport and byte stream is identical except that each NAL unit can be preceded by a start code prefix and extra padding bytes in the byte stream format.

To elaborate a little bit, VCL is to do more with video compression standard (not really to do with Network layer). Hence it doesn't fall under any network protocol stack. NAL comes to aid network routers at times of congestion. To achieve better decoding at receiver end, critical packets shouldn't be dropped. So, NAL gives a provision for sneak peak to understand importance of a given packet in decode process and helps to make an appropriate decision (either to drop a packet or not). It's just one simple example of NAL.

VCL understanding is required if more attention needed at decoding syntax. NAL provides one layer of protection around VCL. VCL contains compressed video data in terms of slice. One video frame can be split into one or more slices. Slice contains one or more Macro blocks (16x16 pixel block) in compressed form, following the standard syntax.

ARK
  • 649
  • 3
  • 14
0

The question is a little vague - what is your definition of the "protocol stack"? I'd argue that VCL is not part of the protocol stack, as it has nothing to do with networking. Simplified diagrams for encoder and decoder:

  Source -> VCL (Encode) -> NAL -> Packet -> Network
  Network -> Packet -> NAL -> Frame -> VCL (Decode) -> Render
smirnoff
  • 420
  • 6
  • 21
  • probably at this point of time my understanding is vague. Can you help me with any links or referrences for the answer provided. – Krishna Oza Dec 07 '15 at 06:12
  • 1
    It comes from the personal project experience and general "separation of concerns" principle. VCL produces a block of video data which then packetized and transferred over the network or stored to disk. The best source I could fine: http://iphome.hhi.de/wiegand/assets/pdfs/DIC_H264_07.pdf – smirnoff Dec 09 '15 at 04:30