Other Free Encyclopedias » Online Encyclopedia » Encyclopedia - Featured Articles » Contributed Topics from K-O

MPEG-4 Advanced Video Compression (MPEG-4 AVC)/H.264 - Network Adaptation Layer (NAL) and Video Coding Layer (VCL)

data information set slice

Definition: MPEG-4 AVC or H.264 video compression standard was developed to enhance compression performance over current de facto standard MPEG-2 that was developed about 10 years ago primarily for digital TV systems with interlaced video coding.

H.264 is known to achieve a significant improvement in rate-distortion efficiency compared with existing standards, and is designed for broadcast TV over cable/DSL/satellite, IP set-tops and high-definition DVD recorders.

Network Adaptation Layer (NAL) and Video Coding Layer (VCL)

VCL is designed to efficiently represent the video content, while NAL encapsulates the VCL representation of video with header information in such a way that a variety of transport layers and storage media can easily adopt compressed contents. To this end, a NAL unit specifies both byte-stream and packet-based formats. NAL units are classified into VCL and non-VCL NAL units. The VCL NAL units contain the data that represents the values of the samples in the video pictures, and the non-VCL NAL units contain additional information such as timing information.

H.264 Video Specific Semantics and Syntax

There are 5 levels of headers in H..264 video bitstream syntax – Sequence parameter set, Picture parameter set, Slice level, MB, and Block. Sequence parameter set contains basic parameters such as profile and level data, seq_parameter_set_id (identifies sequence parameter set that is referred to), MaxFrameNum, display order related parameters, num_ref_frames (maximum total number of short-term and long-term reference frames), frame_mbs_only_flag, direct_8×8_inference_flag (specifies the method used in the derivation process of luma MVs for B_Skip, B_Direct_16×16, B_Direct_8×8), etc. Picture parameter set contains information about pic_paramter_set_id (identifies the picture parameter set that is referred to in the Slice header), seq_parameter_set_id, entropy_coding_mode_flag (either CA-BAC or CA-VLC), slice definition related parameters, maximum reference index data for reference list0 or list1, weighted_pred_flag (whether weighted prediction is applied to P and SP Slices), weighted_bipred_idc (weighted bi-prediction mode applied to B Slices), Qp related data, deblocking_filter_control_present_flag (syntax element controlling the characteristics of the deblocking filter is present in the Slice header), etc.

In Slice header, there is information about slice attributes, extra display order related parameters, direct_spatial_mv_pred_flag, override information about reference index for list0 and list1, deblocking filter related data, etc. Slice data contains mb_skip related data and MB layer information. MB layer contains mb_type, coded_block_pattern, mb_qp_delta. Based on mb_type information, mb_pred or sub_mb_pred data are put into the bitstream. And then residual data are appended. The mb_pred and sub_mb_pred information contain reference picture indices and MV data. Note that each 8×8 block area refer to a same reference picture even though different MVs can be used for different 4×4 blocks in a single 8×8 block. There are two residual data syntax order defined – one for CA-VLC and the other for CA- BAC.

MPEG-4 Video Compression - MPEG-4 Shape Coding, MPEG-4 Texture Coding, Scalability Coding Tool [next] [back] MPEG-2 Video Compression - MPEG-2 Video New Features with respect to MPEG-1

User Comments

Your email address will be altered so spam harvesting bots can't read it easily.
Hide my email completely instead?

Cancel or