Labels

Monday, 4 May 2015

what is FU in NAL header??how it will effect to video packet..???

5.8. Fragmentation Units (FUs)

This payload type allows fragmenting a NAL unit into several RTP packets. Doing so on the application layer instead of relying on lower-layer fragmentation (e.g., by IP) has the following advantages: o The payload format is capable of transporting NAL units bigger than 64 kbytes over an IPv4 network that may be present in pre- recorded video, particularly in High-Definition formats (there is a limit of the number of slices per picture, which results in a limit of NAL units per picture, which may result in big NAL units). o The fragmentation mechanism allows fragmenting a single NAL unit and applying generic forward error correction as described in Section 12.5. Wang, et al. Standards Track [Page 29]

RFC 6184           RTP Payload Format for H.264 Video           May 2011


   Fragmentation is defined only for a single NAL unit and not for any
   aggregation packets.  A fragment of a NAL unit consists of an integer
   number of consecutive octets of that NAL unit.  Each octet of the NAL
   unit MUST be part of exactly one fragment of that NAL unit.
   Fragments of the same NAL unit MUST be sent in consecutive order with
   ascending RTP sequence numbers (with no other RTP packets within the
   same RTP packet stream being sent between the first and last
   fragment).  Similarly, a NAL unit MUST be reassembled in RTP sequence
   number order.

   When a NAL unit is fragmented and conveyed within fragmentation units
   (FUs), it is referred to as a fragmented NAL unit.  STAPs and MTAPs
   MUST NOT be fragmented.  FUs MUST NOT be nested; that is, an FU MUST
   NOT contain another FU.

   The RTP timestamp of an RTP packet carrying an FU is set to the NALU-
   time of the fragmented NAL unit.

   Figure 14 presents the RTP payload format for FU-As.  An FU-A
   consists of a fragmentation unit indicator of one octet, a
   fragmentation unit header of one octet, and a fragmentation unit
   payload.

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | FU indicator  |   FU header   |                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
    |                                                               |
    |                         FU payload                            |
    |                                                               |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               :...OPTIONAL RTP padding        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Figure 14.  RTP payload format for FU-A

   Figure 15 presents the RTP payload format for FU-Bs.  An FU-B
   consists of a fragmentation unit indicator of one octet, a
   fragmentation unit header of one octet, a decoding order number (DON)
   (in network byte order), and a fragmentation unit payload.  In other
   words, the structure of FU-B is the same as the structure of FU-A,
   except for the additional DON field.








Wang, et al.                 Standards Track                   [Page 30]

RFC 6184           RTP Payload Format for H.264 Video           May 2011


     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | FU indicator  |   FU header   |               DON             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
    |                                                               |
    |                         FU payload                            |
    |                                                               |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               :...OPTIONAL RTP padding        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Figure 15.  RTP payload format for FU-B

   NAL unit type FU-B MUST be used in the interleaved packetization mode
   for the first fragmentation unit of a fragmented NAL unit.  NAL unit
   type FU-B MUST NOT be used in any other case.  In other words, in the
   interleaved packetization mode, each NALU that is fragmented has an
   FU-B as the first fragment, followed by one or more FU-A fragments.

   The FU indicator octet has the following format:

       +---------------+
       |0|1|2|3|4|5|6|7|
       +-+-+-+-+-+-+-+-+
       |F|NRI|  Type   |
       +---------------+

   Values equal to 28 and 29 in the type field of the FU indicator octet
   identify an FU-A and an FU-B, respectively.  The use of the F bit is
   described in Section 5.3.  The value of the NRI field MUST be set
   according to the value of the NRI field in the fragmented NAL unit.

   The FU header has the following format:

      +---------------+
      |0|1|2|3|4|5|6|7|
      +-+-+-+-+-+-+-+-+
      |S|E|R|  Type   |
      +---------------+

   S:     1 bit
          When set to one, the Start bit indicates the start of a
          fragmented NAL unit.  When the following FU payload is not the
          start of a fragmented NAL unit payload, the Start bit is set
          to zero.





Wang, et al.                 Standards Track                   [Page 31]

RFC 6184           RTP Payload Format for H.264 Video           May 2011


   E:     1 bit
          When set to one, the End bit indicates the end of a fragmented
          NAL unit, i.e., the last byte of the payload is also the last
          byte of the fragmented NAL unit.  When the following FU
          payload is not the last fragment of a fragmented NAL unit, the
          End bit is set to zero.

   R:     1 bit
          The Reserved bit MUST be equal to 0 and MUST be ignored by the
          receiver.

   Type:  5 bits
          The NAL unit payload type as defined in Table 7-1 of [1].

   The value of DON in FU-Bs is selected as described in Section 5.5.

      Informative note: The DON field in FU-Bs allows gateways to
      fragment NAL units to FU-Bs without organizing the incoming NAL
      units to the NAL unit decoding order.

   A fragmented NAL unit MUST NOT be transmitted in one FU; that is, the
   Start bit and End bit MUST NOT both be set to one in the same FU
   header.

   The FU payload consists of fragments of the payload of the fragmented
   NAL unit so that if the fragmentation unit payloads of consecutive
   FUs are sequentially concatenated, the payload of the fragmented NAL
   unit can be reconstructed.  The NAL unit type octet of the fragmented
   NAL unit is not included as such in the fragmentation unit payload,
   but rather the information of the NAL unit type octet of the
   fragmented NAL unit is conveyed in the F and NRI fields of the FU
   indicator octet of the fragmentation unit and in the type field of
   the FU header.  An FU payload MAY have any number of octets and MAY
   be empty.

      Informative note: Empty FUs are allowed to reduce the latency of a
      certain class of senders in nearly lossless environments.  These
      senders can be characterized in that they packetize NALU fragments
      before the NALU is completely generated and, hence, before the
      NALU size is known.  If zero-length NALU fragments were not
      allowed, the sender would have to generate at least one bit of
      data of the following fragment before the current fragment could
      be sent.  Due to the characteristics of H.264, where sometimes
      several macroblocks occupy zero bits, this is undesirable and can
      add delay.  However, the (potential) use of zero-length NALU
      fragments should be carefully weighed against the increased risk
      of the loss of at least a part of the NALU because of the
      additional packets employed for its transmission.



Wang, et al.                 Standards Track                   [Page 32]

RFC 6184           RTP Payload Format for H.264 Video           May 2011


   If a fragmentation unit is lost, the receiver SHOULD discard all
   following fragmentation units in transmission order corresponding to
   the same fragmented NAL unit.

   A receiver in an endpoint or in a MANE MAY aggregate the first n-1
   fragments of a NAL unit to an (incomplete) NAL unit, even if fragment
   n of that NAL unit is not received.  In this case, the
   forbidden_zero_bit of the NAL unit MUST be set to one to indicate a
   syntax violation.

No comments:

Post a Comment