EmaiThis Page

H.264 / MPEG-4: Video CODEC For High Quality Video Streaming

The H.264 and the MPEG-4 Part 10, also named Advanced Video Coding (AVC), is jointly developed by ITU and ISO. H.264/MPEG-4 supports video compression (coding) for video-conferencing and video-telephony applications. The H.264 video codec has a very broad rang of applications that covers all forms of digital compressed video from, low bit-rate Internet streaming applications to HDTV broadcast and Digital Cinema applications with nearly lossless coding. 

H.264 / MPEG-4 is designed as a simple and straightforward video coding, with enhanced compression performance, and to provide a “network-friendly” video representation. H.264/MPEG-4 has achieved a significant improvement in the rate-distortion efficiency –providing a factor of two in bit-rate savings compared with MPEG-2 Video, which is the most common standard used for video storage and transmission. The coding gain of H.264 over H.263 is in the range of 25% to 50%, depends on the types of applications.  

The H.264/MPEG-4 design covers a Video Coding Layer (VCL), which efficiently represents the video content, and a Network Abstraction Layer (NAL), which formats the VCL representation of the video and provides header information in a manner appropriate for conveyance by particular transport layers (such as Real Time Transport Protocol) 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 bitstream delivery is - except that each NAL unit can be preceded by a start code prefix in a bitstream-oriented transport layer.

 H.264 / MPEG-4 video streams need to be packetized for transportion over networks. The transport protocol for H.264/MPEG-4 streams is the Real Time Transport Protocol (RTP).


The following table lists the H.264 / MPEG-4 key features and benefits:  

Feature

Benefit

Quarter-sample-accurate motion compensation

H.264 codec uses quarter-sample-accurate motion compensation as in H.263 with further enhancements and reduced complexity.

Display order and referencing independency

The decoder may choose the most efficient way of displaying pictures for motion compensation referencing improving overall performance.

Weighted prediction

Motion-compensated prediction signal may be weighted and offset by the encoder, improving performance in scenes containing fades.

Small block-size transform

H.264 is based primarily on 4x4 transform, which positively influences the quality of certain scenes.

Hierarchical block-size transform

Even though the default block-size transform is 4x4, the standard is flexible enough for bigger block-size transforms, such as 8x8 or 16x16, for improved performance in certain scenes.

Short word-length transform

H.264 reduces computation complexity requiring only 16-bit processing.

Exact-match inverse transform

As opposed to most previous standards, all decoders processing video stream encoded using H.264 will produce exactly the same picture.

Arithmetic and context-adaptive entropy coding

H.264 codec uses advanced entropy coding methods improving overall performance.

Parameter set structure

The separation of the parameter set structure from the remaining data and special handling makes it less prone to information loss.

Protocol Structure - H.263: Video Coding and Decoding (CODEC)

The Network Abstraction Layer (NAL) unit type octet has the following format:

1

3 8bit

F

NRI Type

F: Forbidden_zero_bit.  The H.264 specification declares a value of 1 as a syntax violation.

NRI: nal_ref_idc.  00: the content of the NAL unit is not used to reconstruct reference pictures for inter picture prediction.  Other values: the decoding of the NAL unit is required to maintain the integrity of the reference pictures.

Type: nal_unit_payload type.

   Type   Packet   Type name  

   ---------------------------------------------------------

   0 undefined   -

   1-23     NAL unit  Single NAL unit packet per H.264  

   24     STAP-A  Single-time aggregation packet 

   25     STAP-B  Single-time aggregation packet 

   26  MTAP16Multi-time aggregation packet  

   27  MTAP24Multi-time aggregation packet  

   28  FU-A Fragmentation unit 

   29  FU-B Fragmentation unit 

   30-31  undefined   

Since the Real Time Transport Protocol (RTP) is the transport protocol for H.264/MPEG-4 video streams, the H.264 / MPEG-4 pakects are encapsulated by RTP frames.
Related Protocols
RTSP , RTP , RTCPH.323 , H.245 , H.261 , H.263 , MPEG-2

Sponsor Source

H.264 / MPEG-4  is jointly defined by  ITU-T (http://www.itu.int/ITU-T/ ) and ISO.



Reference

http://www.javvin.com/protocol/rfc3984.pdf : RTP Payload Format for H.264 Video

http://www.vcodex.com/h264.html :H.264 / MPEG-4 Part 10 Tutorials