Introduction to H 264AVC Video Coding Thomas Wiegand














































































- Slides: 78
Introduction to H. 264/AVC Video Coding Thomas Wiegand, Gary J. Sullivan, Gisle Bjøntegaard, and Ajay Luthra, “Overview of the H. 264/AVC Video Coding Standard, ” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7, JULY 2003 Jörn Ostermann, Jan Bormans, Peter List, Detlev Marpe, Matthias Narroschke, Fernando Pereira, Thomas Stockhammer, and Thomas Wedi, “Video coding with H. 264/AVC: Tools, Performance, and Complexity, ” Circuits and Systems Magazine, IEEE , Vol. 4 , Issue: 1 , First Quarter 2004 MC-2009 VC Lab
Outline ¡ ¡ ¡ Goals of the H. 264/AVC Structure of H. 264/AVC video encoder Design feature highlights l l l ¡ ¡ ¡ 10/29/2020 prediction methods Transform details and VLC Robustness on transmission Video coding layer Hypothetical reference decoder Profiles and Levels Network adaptation layer Comparisons MC-2009 VC Lab 2
Goals of the H. 264/AVC ¡ Video Coding Experts Group (VCEG), ITU-T SG 16 Q. 6 l l l 10/29/2020 l H. 26 L project (early 1998) Target – double the coding efficiency in comparison to any other existing video coding standards for a broad variety applications. H. 261, H. 262 (MPEG-2), H. 263 (H. 263+, H. 263++) MC-2009 VC Lab 3
Structure of H. 264/AVC video encoder H. 264/AVC Conceptual Layers Video Coding Layer Encoder Video Coding Layer Decoder VCL-NAL Interface Network Abstraction Layer Encoder Network Abstraction Layer Decoder NAL Decoder Interface NAL Encoder Interface Transport Layer H. 264 to H. 320 H. 264 to MPEG-2 …… Wired Networks 10/29/2020 H. 264 to H. 324/M H. 264 to File Format TCP/IP …… Wireless Networks …… MC-2009 VC Lab 4
Design feature highlights (1) — improved on prediction methods ¡ Variable block-size motion compensation with small block sizes l ¡ Quarter-sample-accurate motion compensation l 10/29/2020 A minimum luma motion compensation block size as small as 4× 4. First found in an advanced profile of the MPEG 4 Visual (part 2) standard, but further reduces the complexity of the interpolation processing compared to the prior design. MC-2009 VC Lab 5
Design feature highlights (2) — improved on prediction methods ¡ Motion vectors over picture boundaries l First found as an optional feature in H. 263 is included in H. 264/AVC. ------------------------¡ Multiple reference picture motion compensation ¡ Decoupling of referencing order from display order l l l (X)IBBPBBPBBP… => IPBBPBBPBB… Bounded by a total memory capacity imposed to ensure decoding ability. Enables removing the extra delay previously associated with bi-predictive coding. 10/29/2020 MC-2009 VC Lab 6
Design feature highlights (3) — improved on prediction methods ¡ ¡ Decoupling of picture representation methods from picture referencing capability l B-frame could not be used as references for l prediction Referencing to closest pictures Weighted prediction l l A new innovation in H. 264/AVC allows the motioncompensated prediction signal to be weighted and offset by amounts specified by the encoder. For scene fading, etc --------------------------10/29/2020 MC-2009 VC Lab 7
Design feature highlights (4) — improved on prediction methods ¡ Improved “skipped” and “direct” motion inference l l 10/29/2020 Inferring motion in “skipped” areas => for global motion Enhanced motion inference method for “direct” MC-2009 VC Lab 8
Design feature highlights (5) — improved on prediction methods ¡ Directional spatial prediction for intra coding Allowing prediction from neighboring areas that were not coded using intra coding l Something not enabled when using the transform-domain prediction method found in H. 263+ and MPEG 4 Visual l 10/29/2020 MC-2009 VC Lab 9
Design feature highlights (6) — improved on prediction methods ¡ In-the-loop deblocking filtering Building further on a concept from an optional feature of H. 263+ l The deblocking filter in the H. 264/AVC design is brought within the motion-compensated prediction loop l 10/29/2020 MC-2009 VC Lab 10
Design feature highlights (7) — other parts ¡ Small block-size transform The new H. 264/AVC design is based primarily on a 4× 4 transform. l Allowing the encoder to represent signals in a more locally-adaptive fashion, which reduces artifacts known colloquially as “ringing”. l • Quantization: DPCM for DC terms • Spurious frequencies: truncation mismatch periods 10/29/2020 MC-2009 VC Lab 11
Design feature highlights (8) — other parts ¡ Hierarchical block transform l Using a hierarchical transform to extend the effective block size use for low-frequency chroma information to an 8× 8 array l Allowing the encoder to select a special coding type for intra coding, enabling extension of the length of the luma transform for low-frequency information to a 16× 16 block size 10/29/2020 MC-2009 VC Lab 12
Design feature highlights (9) — other parts ¡ Short word-length transform l ¡ While previous designs have generally required 32 bit processing, the H. 264/AVC design requires only 16 -bit arithmetic. Exact-match inverse transform l l 10/29/2020 Building on a path laid out as an optional feature in the H. 263++ effort, H. 264/AVC is the first standard to achieve exact equality of decoded video content from all decoders. Integer transform MC-2009 VC Lab 13
Design feature highlights (10) — other parts ¡ Arithmetic entropy coding l While arithmetic coding was previously found as an optional feature of H. 263, a more effective use of this technique is found in H. 264/AVC to create a very powerful entropy coding method known as CABAC (context-adaptive binary arithmetic coding) 10/29/2020 MC-2009 VC Lab 14
Design feature highlights (11) — other parts ¡ Context-adaptive entropy coding l CAVLC (context-adaptive variable-length coding) l CABAC (context-adaptive binary arithmetic coding) 10/29/2020 MC-2009 VC Lab 15
Design feature highlights (12) — Robustness to data errors/losses and flexibility for operation over a variety of network environments ¡ Parameter set structure l ¡ The parameter set design provides for robust and efficient conveyance header information NAL unit syntax structure l 10/29/2020 Each syntax structure in H. 264/AVC is placed into a logical data packet called a NAL unit MC-2009 VC Lab 16
Design feature highlights (13) — Robustness to data errors/losses and flexibility for operation over a variety of network environments ¡ Flexible slice size l l Unlike the rigid slice structure found in MPEG -2 (which reduces coding efficiency by increasing the quantity of header data and decreasing the effectiveness of prediction), slice sizes in H. 264/AVC are highly flexible, as was the case earlier in MPEG-1. 10/29/2020 MC-2009 VC Lab 17
Design feature highlights (14) — Robustness to data errors/losses and flexibility for operation over a variety of network environments ¡ Flexible macroblock ordering (FMO) l ¡ Significantly enhance robustness to data losses by managing the spatial relationship between the regions that are coded in each slice Arbitrary slice ordering (ASO) l l l 10/29/2020 sending and receiving the slices of the picture in any order relative to each other first found in an optional part of H. 263+ can improve end-to-end delay in real-time applications, particularly when used on networks having out-of-order delivery behavior MC-2009 VC Lab 18
Design feature highlights (15) — Robustness to data errors/losses and flexibility for operation over a variety of network environments ¡ Redundant pictures l Enhance robustness to data loss l A new ability to allow an encoder to send redundant representations of regions of pictures 10/29/2020 MC-2009 VC Lab 19
Design feature highlights (15) — Robustness to data errors/losses and flexibility for operation over a variety of network environments ¡ Data Partitioning l Allows the syntax of each slice to be separated into up to three different partitions for transmission, depending on a categorization of syntax elements l This part of the design builds further on a path taken in MPEG-4 Visual and in an optional part of H. 263++. l The design is simplified by having a single syntax with partitioning of that same syntax controlled by a specified categorization of syntax elements. 10/29/2020 MC-2009 VC Lab 20
Design feature highlights (16) — Robustness to data errors/losses and flexibility for operation over a variety of network environments ¡ SP/SI synchronization/switching pictures l A new feature consisting of picture types that allow exact synchronization of the decoding process of some decoders with an ongoing video stream produced by other decoders without penalizing all decoders with the loss of efficiency resulting from sending an I picture l Enable switching a decoder between different data rates, recovery from data losses or errors, as well as enabling trick modes such as fast-forward, fastreverse, etc. 10/29/2020 MC-2009 VC Lab 21
Coded Video Sequences A coded video sequence consists of a series of access units that are sequential in the NAL unit stream and use only one sequence parameter set. ¡ Can be decoded independently ¡ Start with an instantaneous decoding refresh (IDR) access unit – must be Intra. ¡ A NAL unit stream may contain one or more coded video sequences. 10/29/2020 MC-2009 VC Lab 22 ¡
VCL (Video Coding Layer) input video DCT - Q VLC 16× 16 macroblocks output bitstream IQ Intra / inter Intra. Prediction IDCT Motion Compensation Motion Estimation 10/29/2020 Decoder Frame Memory De-blocking Filter output video Clipping MC-2009 VC Lab YCb. Cr Color Space and 4: 2: 0 Sampling 23
Pictures, Frames, and Fields Progressive Frame Top Field Bottom Field ∆t Interlaced Frame (Top Field First) 10/29/2020 MC-2009 VC Lab 24
Slices and Slice Groups (1) Slice #0 Slice #1 Slice #2 Subdivision of a picture into slices when not using FMO. (Flexible Macroblock Ordering) 10/29/2020 MC-2009 VC Lab 25
Slices and Slice Groups (2) Slice Group #0 Slice Group #1 Slice Group #2 Subdivision of a QCIF frame into slices utilizing FMO. 10/29/2020 MC-2009 VC Lab 26
Slice coding types ¡ ¡ I Slice P Slice B Slice SP Slice l l ¡ Switching between P slices efficient switching between different pre-coded pictures becomes possible. SI Slice l l 10/29/2020 Switching between I slices Allowing an exact match of a macroblock in an SP slice for random access and error recovery purposes. MC-2009 VC Lab 27
Adaptive Frame/Field Coding Operation ¡ ¡ Three modes can be chosen adaptively for each frame in a sequence. Picture-adaptive frame/field l Frame mode (PAFF) l Field mode 16% ~ 20% save over frame-only for ITU-R 601 “Canoa”, “Rugby”, etc. l Frame mode / Field coded MBAFF For a frames consists of mixed moving regions l l l The frame/field encoding decision can be made for each vertical pair of macroblocks (a 16× 32 luma region) in a frame. to code the nonmoving regions in frame mode and the moving regions in the field mode. Macroblock-adaptive frame/field (MBAFF) 10/29/2020 MC-2009 VC Lab 28
Macroblock-adaptive frame/field (MBAFF) A Pair of Macroblocks in Frame Mode 10/29/2020 Top/Bottom Macroblocks in Field Mode MC-2009 VC Lab 29
PAFF vs. MBAFF ¡ ¡ The main idea of MBAFF is to preserve as much spatial consistency as possible. In MBAFF, one field cannot use the macroblocks in the other field of the same frame as a reference for motion prediction. PAFF coding can be more efficient than MBAFF coding in the case of rapid global motion, scene change, or intra picture refresh. MBAFF was reported to reduce bit rates 14 ~ 16% over PAFF for ITU-R 601 (Mobile and Calendar, MPEG-4 World News) 10/29/2020 MC-2009 VC Lab 30
Intra-Frame Prediction (1) ¡ Intra_4× 4 l ¡ Intra_16× 16 together with chroma prediction l l ¡ Well suited for coding of parts of a picture with significant detail. More suited for coding very smooth areas of a picture. 4 prediction modes I_PCM l Bypass prediction and transform coding and, send the values of the encoded samples directly 10/29/2020 MC-2009 VC Lab 31
Intra-Frame Prediction(2) ¡ Intra_16 16 l l Vertical prediction Horizontal prediction DC-prediction Plane-prediction ¡ ¡ A B A + B Works very well in areas of a gently changing luminance. Chrominance signals l l 8 8 blocks Very smooth in most cases. ¡ 10/29/2020 Use the same modes as in Intra_16 16. MC-2009 VC Lab 32
Intra-Frame Prediction (3) ¡ In H. 263+ and MPEG-4 Visual l ¡ Intra prediction is conduced in the transform domain In H. 264/AVC l 10/29/2020 Intra prediction is always conducted in the spatial domain MC-2009 VC Lab 33
Intra-Frame Prediction (3) 10/29/2020 MC-2009 VC Lab 34
Intra-Frame Prediction (4) 10/29/2020 Across slice boundaries is not allowed. MC-2009 VC Lab 35
Inter-Frame Prediction in P slices (1) Segmentations of the macroblock MB Types 8 16 16 8 8 8 8 16 8 8 8 x 8 Types 8 8 4 8 4 4 *P_Skip www. vcodex. com H. 264 / MPEG-4 Part 10 : Inter Prediction 10/29/2020 MC-2009 VC Lab 36
Inter-Frame Prediction in P slices (2) The accuracy of motion compensation E F cc dd K L 10/29/2020 A aa B C bb D G M b f j q s R gg S T hh U a d e h i n p c H g k m r N b 1=(E-5 F+20 G+20 H-5 I+J) h 1=(A-5 C+20 G+20 M-5 R+T) I J ee ff O P MC-2009 VC Lab b=(b 1+16) >> 5 clipped to h=(h 1+16) >> 5 0~255 -----j 1=cc-5 dd+20 h 1+20 m 1 -5 ee+ff clipped to j = (j 1+512) >>10 0~255 -----a=(G+b+1) >>1 e=(b+h+1) >> 1 37
Inter-Frame Prediction in P slices (3) Multiframe motion-compensated prediction ∆=1 ∆=4 ∆=2 4 Prior Decoded Pictures As Reference 10/29/2020 MC-2009 VC Lab Current Picture 38
Inter-Frame Prediction in B slices ¡ ¡ Other pictures can refer pictures containing B slices Weighted averaging of two distinct motioncompensated prediction Utilizing two distinct lists of reference pictures (list 0, list 1) 4 prediction types l ¡ list 0, list 1, bi-predictive, direct prediction, B_Skip For each partition, the prediction type can be chosen separately. 10/29/2020 MC-2009 VC Lab 39
Transform, Scaling, and Quantization(1) ¡ 4 4 and 2 2 DCT l Integer transform matrix -1 INTRA_16 16 H 2 H 1 Cb Y 10/29/2020 Cr DCT 17 16 H 3 0 1 4 5 18 19 22 23 2 3 6 7 20 21 24 25 8 9 12 13 Cb Cr 10 11 14 15 Y Transmission order: -1, 0, 1, …, 24, 25 MC-2009 VC Lab 40
Transform, Scaling, and Quantization(2) Repeated Transforms Intra_16× 16, chroma intra modes are intend coding for smooth areas ¡ The DC coefficients undergo a second transform with the results that we have transform coefficients covering the whole macroblock ¡ 00 indices correspond to the indices of 2× 2 inverse Hadamard transform 10/29/2020 MC-2009 VC Lab 01 0 10 1 11 2 3 41 Repeat transform for chroma blocks
Transform, Scaling, and Quantization(3) ¡ Quantized by scalar quantizer; the quantization step size is chosen by a so-called quantization parameter (QP) that has 52 values. ¡ An increment of QP by 1 results in an increase of the required data rate of approximately 12%. (The step size doubles with each increment of 6 of QP. ) QSTEP = 2(QP-4)/6 ¡ 21/6 1. 12 A change of step size by approximately 12% also means roughly a reduction of bit rate by approximately 12% R (1/1. 12) R if 10/29/2020 MC-2009 VC Lab Q STEP 1. 12 QSTEP 42
Transform, Scaling, and Quantization(4) ¡ Scanning order l l ¡ Zig-zag scan For 2× 2 DC coefficients of the chroma component ¡ raster-scan order All inverse transform operations in H. 264/AVC can be implemented using only additions and bit-shifting operations of 16 -bit integer values. No drift problem between encoders and decoders. Only 16 -bit memory accesses are needed for a good implementation of the forward transform and quantization process in the encoder 10/29/2020 MC-2009 VC Lab 43 ¡
Entropy Coding ¡ Two methods of entropy coding are supported l An exp-Golomb code - a single infiniteextent codeword table for all syntax elements. l For quantized transform coefficients ¡ 10/29/2020 Context-Adaptive Variable Length Coding (CAVLC) MC-2009 VC Lab 44
CAVLC (1) ¡ # of nonzero quantized coefficients (N) and the actual size, and position of the coefficients are coded separately 7, 6, -2, 0, -1, 0, 0, 0, 0 , 0. 1) # of nonzero coefficients (N) and “Trailing T 1 s = 2, N = 5, These two values are coded as a combined event. One out of 4 VLC tables is used based on the number of coefficients in neighboring blocks. 10/29/2020 MC-2009 VC Lab 45
CAVLC (2) 7, 6, -2, 0, -1, 0, 0, 0, 0 , 0. 2) Encoding the value of Coefficients For T 1 s, only sign need to be coded. Coefficient values are coded in reverse order: -2, 6, … A starting VLC is used for -2, and a new VLC may be used based on the just coded coefficient. In this way adaptation is obtained in the use of VLC tables, Six exp-Golomb code tables are available for this adaptation. 10/29/2020 MC-2009 VC Lab 46
CAVLC (3) 7, 6, -2, 0, -1, 0, 0, 0, 0 , 0. 3) Sign Information For T 1 s, this is sent as single bit. For the other coefficients, the sign bit is included in the exp-Golomb codes 10/29/2020 MC-2009 VC Lab 47
CAVLC (4) 7, 6, -2, 0, -1, 0, 0, 0, 0 , 0. 4) Total. Zeroes The number of zeros between the last nonzero coefficient of the scan and its start. Total. Zeroes = 3 N=5, => the number must in the range 0 -11, 15 tables are available for N in the range 1 -15. (If N=16 there is no zero coefficient. ) 5) Run. Before In this example it must be specified how the 3 zeros are distributed. The number of 0 s before the last coefficient is coded. 2, => range: 0 -3 => a suitable VLC is used. 1, => range: 0 -1 10/29/2020 MC-2009 VC Lab 48
CAVLC vs CABAC 10/29/2020 ¡ The efficiency of entropy coding can be improved further if the Context-Adaptive Binary Arithmetic Coding (CABAC) is used. ¡ Compared to CAVLC, CABAC typically provides a reduction in bit rate between 5%~15%. ¡ The highest gains are typically obtained when coding interlaced TV signals. MC-2009 VC Lab 49
CABAC 10/29/2020 MC-2009 VC Lab 50
In-Loop Deblocking filter Apply deblocking filter on p 0 and q 0 if each of conditions satisfied 1. |p 0 -q 0|<α(QP) 2. |p 1 -p 0|<β(QP) 3. |q 1 -q 0|<β(QP). p 1 and q 1: if β < α q 0 p 2 q 1 q 2 p 0 p 1 4× 4 block edge |p 2 -p 0|<β(QP) or |q 2 q 0|< β(QP) *The filter reduces the bit rate by 5%~10% typically. 10/29/2020 MC-2009 VC Lab 51
Hypothetical Reference Decoder ¡ In H. 264/AVC HRD specifies operation of two buffers: l The coded picture buffer (CPB) ¡ l ¡ Modeling the arrival and removal time of the coded bits. The decoded picture buffer (DPB) Similar in spirit to what MPEG-2 had, but is more flexible in support at a variety of bit rates without excessive delay. 10/29/2020 MC-2009 VC Lab 52
Hypothetical Reference Decoder ¡ H. 264 hypothetical reference decoder (HRD): guarantee that the buffers never overflow or underflow • rate allocation: allocate proper bits to each coding allocation unit according to the buffer status • quantization parameter adjustment: how to adjustment adjust the encoder parameters to properly encode each unit with the allocated bits • Find the relation between the rate and the quantization parameter 10/29/2020 MC-2009 VC Lab 53
The Relation between QSTEP and QP ¡ In H. 264/AVC, the relation between QSTEP and QP is QSTEP = 2 (QP-4)/6. 10/29/2020 MC-2009 VC Lab 54
The Relation between PSNR and the quantization parameter QP ¡ The Relation between PSNR and the quantization parameter QP is where l and b are the constants. 10/29/2020 MC-2009 VC Lab 55
Profiles and Levels Baseline, Main, and Extended ¡ Baseline supports all features in H. 264/AVC except ¡ l l Set 1: B slices, weighted prediction, CABAC, field coding, and picture or macroblock adaptive switching between frame and field coding. Set 2: SP/SI slices, and slice data partitioning. 10/29/2020 MC-2009 VC Lab 56
H. 264/AVC Profiles 10/29/2020 MC-2009 VC Lab 57
Structure of H. 264/AVC video encoder H. 264/AVC Conceptual Layers Video Coding Layer Encoder Video Coding Layer Decoder VCL-NAL Interface Network Abstraction Layer Encoder Network Abstraction Layer Decoder NAL Decoder Interface NAL Encoder Interface Transport Layer H. 264 to H. 320 H. 264 to MPEG-2 …… Wired Networks 10/29/2020 H. 264 to H. 324/M H. 264 to File Format TCP/IP …… Wireless Networks …… MC-2009 VC Lab 58
NAL (Network Abstraction Layer) ¡ ¡ Designed in order to provide “network friendliness” facilitates the ability to map H. 264/AVC VCL data to transport layers such as: l l 10/29/2020 RTP/IP for any kind of real-time wire-line and wireless Internet services (conversational and streaming); File formats, e. g. , ISO MP 4 for storage and MMS; H. 32 X for wireline and wireless conversational services; MPEG-2 systems for broadcasting services, etc. MC-2009 VC Lab 59
Key concepts of NAL Units ¡ Byte stream and Packet format uses of NAL units ¡ Parameter sets ¡ Access units ¡ 10/29/2020 MC-2009 VC Lab 60
NAL units 1 byte header payload Integer number of bytes Interleaved as necessary with emulation prevention bytes, which are bytes inserted with a specific value to prevent a particular pattern of data called a start code prefix from being accidentally generated inside the payload. The NAL unit structure definition specifies a generic format for use in both packet-oriented and bitstream-oriented transport systems, and a series of NAL units generated by an encoder is referred to as a NAL unit stream. 10/29/2020 MC-2009 VC Lab 61
NAL units in byte-stream format use ¡ H. 320 and MPEG-2/H. 222. 0 systems l l require delivery of the entire or partial NAL unit stream as an ordered stream of bytes or bits. Each NAL unit is prefixed by a specific pattern of three bytes called a start code prefix. payload 10/29/2020 MC-2009 VC Lab 62
NAL units in packet-transport system use ¡ Internet protocol/RTP systems l The inclusion of start code prefixes in the data would be a waste of data carrying capacity, so instead the NAL units can be carried in data packets without start code prefixes. payload 10/29/2020 MC-2009 VC Lab 63
VCL and no-VCL NAL units ¡ VCL NAL units l ¡ The data that represents the values of the samples in the video pictures Non-VCL NAL l 10/29/2020 Any associated additional information such as parameter sets (important header data that can apply to a large number of VCL NAL units) and supplemental enhancement information (timing information and other supplemental data that may enhance usability of the decoded video signal but are not necessary for decoding the values of the samples in the video pictures). MC-2009 VC Lab 64
Parameter Sets (1) ¡ A parameter set is supposed to contain information that is expected to rarely change and offers the decoding of a large number of VCL NAL units. 10/29/2020 MC-2009 VC Lab 65
Parameter Sets (2) ¡ Two types of parameter sets: l Sequence parameter sets ¡ Apply to a series of consecutive coded video pictures called a coded video sequence; l Picture parameter sets ¡ Apply to the decoding of one or more individual pictures within a coded video sequence. 10/29/2020 MC-2009 VC Lab 66
Parameter Sets (3) The Structure VCL NAL unit Identifier to Picture parameter set Identifier to Sequence parameter set Non VCL NAL unit 10/29/2020 MC-2009 VC Lab 67
Parameter Sets (4) Transmission In-band Out of band Non VCL NAL unit Non VCL NAL unit 10/29/2020 MC-2009 VC Lab 68
Parameter set use with reliable “out-ofband” parameter set exchange H. 264/AVC Encoder 1 2 3 NAL unit with VCL Data encoded with PS#3 (address in Slice Header ) Reliable Parameter Set Exchange H. 264/AVC Decoder 3 2 1 Parameter Set #3 • Video format PAL • Entr. Code CABAC • … 10/29/2020 MC-2009 VC Lab 69
Access Units ¡ A set of NAL units in a specified form is referred to as an access unit. start redundant coded picture access unit delimiter Supplemental Enhancement Information end of sequence SEI VCL NAL units slices primary coded picture or slice data partitions 10/29/2020 end of stream MC-2009 VC Lab end 70
Comparisons (1) 10/29/2020 MC-2009 VC Lab 71
Comparisons (2) 10/29/2020 MC-2009 VC Lab 72
Comparisons (3) 10/29/2020 MC-2009 VC Lab 73
Comparisons (4) 10/29/2020 MC-2009 VC Lab 74
New Features in H. 264 ¡ ¡ ¡ ¡ ¡ Multi-mode, multi-reference MC Motion vector can point out of image border 1/4 -, 1/8 -pixel motion vector precision B-frame prediction weighting 4 4 integer transform Multi-mode intra-prediction In-loop de-blocking filter UVLC (Uniform Variable Length Coding) NAL (Network Abstraction Layer) SP-slices 10/29/2020 MC-2009 VC Lab 75
MPEG-4: H. 263 + Additions + Variable Shape Coding ¡ ¡ ¡ ¡ Goal: Support for interactive multimedia Visual Object (AO), Audio Object (AO) and AVO 18 video coding profiles Roughly follows H. 263 design and adds all prior features and (most important) shape coding Includes zero-tree wavelet coding of still textured pictures, segmented coding of shapes, coding of synthetic content 2 D & 3 D mesh coding, face animation modeling 10 -bit and 12 -bit video Contains 9 parts. Part 10 is H. 264/AVC 10/29/2020 MC-2009 VC Lab 76
SP-Slices ¡ ¡ Efficiently switching between two bitstreams Provides VCR-like functions 10/29/2020 MC-2009 VC Lab 77
B-frame Prediction Weighting I 0 B 1 B 2 B 3 P 4 B 5 B 6 Time ¡ Playback order: I 0 B 1 B 2 B 3 P 4 B 5 B 6 ……. . . ¡ Bitstream order: I 0 P 4 B 2 P 8 B 5 ……. . . 10/29/2020 B 1 B 3 MC-2009 VC Lab 78














































































