Overview of the H.264/AVC Video Coding Standard

Download Report

Transcript Overview of the H.264/AVC Video Coding Standard

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
Outline



Goals of the H.264/AVC
Structure of H.264/AVC video encoder
Design feature highlights








2015/7/7
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 SG16 Q.6



2015/7/7

H.26L 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
2015/7/7
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


Quarter-sample-accurate motion
compensation

2015/7/7
A minimum luma motion compensation block
size as small as 4×4.
First found in an advanced profile of the MPEG4 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

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



2015/7/7
(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.
MC-2009 VC Lab
6
Design feature highlights (3)
— improved on prediction methods


Decoupling of picture representation methods
from picture referencing capability

B-frame could not be used as references for

prediction
Referencing to closest pictures
Weighted prediction


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
----------------------------------------------------2015/7/7
MC-2009 VC Lab
7
Design feature highlights (4)
— improved on prediction methods

Improved “skipped” and “direct”
motion inference


2015/7/7
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
 Something not enabled when using
the transform-domain prediction
method found in H.263+ and MPEG4 Visual

2015/7/7
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+
 The deblocking filter in the
H.264/AVC design is brought within
the motion-compensated prediction
loop

2015/7/7
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.
 Allowing the encoder to represent
signals in a more locally-adaptive
fashion, which reduces artifacts
known colloquially as “ringing”.

• Quantization: DPCM for DC terms
• Spurious frequencies: truncation mismatch periods
2015/7/7
MC-2009 VC Lab
11
Design feature highlights (8)
— other parts

Hierarchical block transform


2015/7/7
Using a hierarchical transform to extend the
effective block size use for low-frequency
chroma information to an 8×8 array
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
MC-2009 VC Lab
12
Design feature highlights (9)
— other parts

Short word-length transform


While previous designs have generally required 32bit processing, the H.264/AVC design requires only
16-bit arithmetic.
Exact-match inverse transform


2015/7/7
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

2015/7/7
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)
MC-2009 VC Lab
14
Design feature highlights (11)
— other parts

Context-adaptive entropy coding


2015/7/7
CAVLC (context-adaptive variable-length
coding)
CABAC (context-adaptive binary arithmetic
coding)
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


The parameter set design provides for
robust and efficient conveyance header
information
NAL unit syntax structure

2015/7/7
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


2015/7/7
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.
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)


Significantly enhance robustness to data losses by
managing the spatial relationship between the
regions that are coded in each slice
Arbitrary slice ordering (ASO)



2015/7/7
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


2015/7/7
Enhance robustness to data loss
A new ability to allow an encoder to send
redundant representations of regions of
pictures
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



2015/7/7
Allows the syntax of each slice to be separated into
up to three different partitions for transmission,
depending on a categorization of syntax elements
This part of the design builds further on a path taken
in MPEG-4 Visual and in an optional part of H.263++.
The design is simplified by having a single syntax
with partitioning of that same syntax controlled by a
specified categorization of syntax elements.
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


2015/7/7
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
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.
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.
2015/7/7
MC-2009 VC Lab
22
VCL (Video Coding Layer)
input
video
DCT
-
Q
VLC
16×16
macroblocks
output
bitstream
IQ
IntraPrediction
IDCT
Intra / inter
Motion
Compensation
Motion
Estimation
Frame
Memory
De-blocking
Filter
output video
Clipping
2015/7/7
Decoder
MC-2009 VC Lab
YCbCr Color Space and 4:2:0 Sampling
23
Pictures, Frames, and Fields
Progressive
Frame
Top
Field
Bottom
Field
∆t
Interlaced Frame (Top Field First)
2015/7/7
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)
2015/7/7
MC-2009 VC Lab
25
Slices and Slice Groups (2)
Slice Group
#0
Slice Group #0
Slice Group
#1
Slice Group #1
Slice Group #2
Subdivision of a QCIF frame into slices utilizing FMO.
2015/7/7
MC-2009 VC Lab
26
Slice coding types




I Slice
P Slice
B Slice
SP Slice



Switching between P slices
efficient switching between different pre-coded
pictures becomes possible.
SI Slice


2015/7/7
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 (PAFF)
 Frame mode
16% ~ 20% save over frame-only
 Field mode
for ITU-R 601 “Canoa”, “Rugby”, etc.
 Frame mode / Field coded MBAFF
For a frames consists of mixed moving regions



2015/7/7
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)
MC-2009 VC Lab
28
Macroblock-adaptive frame/field
(MBAFF)
A Pair of Macroblocks
in Frame Mode
2015/7/7
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)
2015/7/7
MC-2009 VC Lab
30
Intra-Frame Prediction (1)

Intra_4×4


Intra_16×16 together with chroma
prediction



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

Bypass prediction and transform coding and, send the
values of the encoded samples directly
2015/7/7
MC-2009 VC Lab
31
Intra-Frame Prediction(2)

Intra_16  16




Vertical prediction
Horizontal prediction
DC-prediction
Plane-prediction


A
B
A +B
Works very well in areas of a gently changing
luminance.
Chrominance signals


8  8 blocks
Very smooth in most cases.

2015/7/7
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


Intra prediction is conduced in the
transform domain
In H.264/AVC

2015/7/7
Intra prediction is always conducted in the
spatial domain
MC-2009 VC Lab
33
Intra-Frame Prediction (3)
2015/7/7
MC-2009 VC Lab
34
Intra-Frame Prediction (4)
2015/7/7
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
16
8
8
8
8
8
8
16
8x8 Types
8
8
4
4
8
4
4
4
8
4
*P_Skip
www.vcodex.com H.264 / MPEG-4 Part 10 : Inter Prediction
2015/7/7
MC-2009 VC Lab
36
Inter-Frame Prediction in P slices (2)
The accuracy of motion compensation
2015/7/7
E
F
cc
dd
K
L
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
b1=(E-5F+20G+20H-5I+J)
h1=(A-5C+20G+20M-5R+T)
I
J
ee
ff
O
P
MC-2009 VC Lab
b=(b1+16) >> 5 clipped to
h=(h1+16) >> 5 0~255
---------j1=cc-5dd+20h1+20m1-5ee+ff
clipped to
j = (j1+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
2015/7/7
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
(list0, list1)
4 prediction types


list0, list1, bi-predictive, direct prediction, B_Skip
For each partition, the prediction type can be
chosen separately.
2015/7/7
MC-2009 VC Lab
39
Transform, Scaling, and Quantization(1)

4  4 and 2  2 DCT

Integer transform matrix
1
1
1 1
 2 1  1  2

H1  
1  1  1 1 


1  2 2  1 
1 1 1 1 
1 1 1 1

H2  
1 1 1 1 


1 1 1 1
-1
INTRA_16 16
DCT
Cb
Y
2015/7/7
Cr
17
16
H2
H1
1 1 
H3  

1 1
H3
H3
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
2015/7/7
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
2015/7/7
MC-2009 VC Lab
QSTEP  1.12QSTEP
42
Transform, Scaling, and Quantization(4)

Scanning order



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
2015/7/7
MC-2009 VC Lab

43
Entropy Coding

Two methods of entropy coding are
supported


An exp-Golomb code - a single infiniteextent codeword table for all syntax
elements.
For quantized transform coefficients

2015/7/7
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, 1, 0, 0, 0, 0, 0, 0 ,0 ,0.
1) # of nonzero coefficients (N) and “Trailing T1s
T1s = 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.
2015/7/7
MC-2009 VC Lab
45
CAVLC (2)
7, 6, -2, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ,0 ,0.
2) Encoding the value of Coefficients
For T1s, 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.
2015/7/7
MC-2009 VC Lab
46
CAVLC (3)
7, 6, -2, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ,0 ,0.
3) Sign Information
For T1s, this is sent as single bit.
For the other coefficients, the sign bit is included in
the exp-Golomb codes
2015/7/7
MC-2009 VC Lab
47
CAVLC (4)
7, 6, -2, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ,0 ,0.
4) TotalZeroes
The number of zeros between the last nonzero coefficient
of the scan and its start.
TotalZeroes = 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.)
2015/7/7
5) RunBefore
In this example it must be specified how the 3 zeros are
distributed.
The number of 0s before the last coefficient is coded.
2, => range:0-3 => a suitable VLC is used.
1, => range:0-1
MC-2009 VC Lab
48
CAVLC vs CABAC



2015/7/7
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
2015/7/7
MC-2009 VC Lab
50
In-Loop Deblocking filter
Apply deblocking filter on p0
and q0 if each of conditions
satisfied
1. |p0-q0|<α(QP)
2. |p1-p0|<β(QP)
3. |q1-q0|<β(QP)
. p1 and q1: if
β<α
q0
p2
q1
q2
p0
p1
4×4 block edge
|p2-p0|<β(QP) or
|q2q0|< β(QP)
*The filter reduces the bit rate by 5%~10% typically.
2015/7/7
MC-2009 VC Lab
51
Hypothetical Reference Decoder

In H.264/AVC HRD specifies operation of
two buffers:

The coded picture buffer (CPB)



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.
2015/7/7
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
unit according to the buffer status
• quantization parameter adjustment: how to
adjust the encoder parameters to properly encode
each unit with the allocated bits
• Find the relation between the rate and the
quantization parameter
2015/7/7
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.
2015/7/7
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.
2015/7/7
MC-2009 VC Lab
55
Profiles and Levels


Baseline, Main, and Extended
Baseline supports all features in
H.264/AVC except


2015/7/7
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.
MC-2009 VC Lab
56
H.264/AVC Profiles
2015/7/7
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
2015/7/7
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:




2015/7/7
RTP/IP for any kind of real-time wire-line and
wireless Internet services (conversational and
streaming);
File formats, e.g., ISO MP4 for storage and MMS;
H.32X for wireline and wireless conversational
services;
MPEG-2 systems for broadcasting services, etc.
MC-2009 VC Lab
59
Key concepts of NAL




NAL Units
Byte stream and Packet format uses of
NAL units
Parameter sets
Access units
2015/7/7
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.
2015/7/7
MC-2009 VC Lab
61
NAL units in byte-stream format use

H.320 and MPEG-2/H.222.0 systems


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
2015/7/7
MC-2009 VC Lab
62
NAL units in packet-transport system
use

Internet protocol/RTP systems

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
2015/7/7
MC-2009 VC Lab
63
VCL and no-VCL NAL units

VCL NAL units


The data that represents the values of the samples
in the video pictures
Non-VCL NAL

2015/7/7
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.
2015/7/7
MC-2009 VC Lab
65
Parameter Sets (2)
 Two

types of parameter sets:
Sequence parameter sets
 Apply
to a series of consecutive coded
video pictures called a coded video
sequence;

Picture parameter sets
 Apply
to the decoding of one or more
individual pictures within a coded video
sequence.
2015/7/7
MC-2009 VC Lab
66
Parameter Sets (3)
The Structure
VCL NAL unit
Identifier to Picture
parameter set
Picture parameter set
Identifier to Sequence
parameter set
Sequence parameter set
Non VCL NAL unit
2015/7/7
MC-2009 VC Lab
67
Parameter Sets (4)
Transmission
In-band
Out of band
Non VCL NAL unit
VCL NAL unit
VCL NAL unit
Non VCL NAL unit
2015/7/7
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
•…
2015/7/7
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
2015/7/7
end of stream
MC-2009 VC Lab
end
70
Comparisons (1)
2015/7/7
MC-2009 VC Lab
71
Comparisons (2)
2015/7/7
MC-2009 VC Lab
72
Comparisons (3)
2015/7/7
MC-2009 VC Lab
73
Comparisons (4)
2015/7/7
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
2015/7/7
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
2D & 3D mesh coding, face animation modeling
10-bit and 12-bit video
Contains 9 parts. Part 10 is H.264/AVC
2015/7/7
MC-2009 VC Lab
76
SP-Slices


Efficiently switching between two bitstreams
Provides VCR-like functions
2015/7/7
MC-2009 VC Lab
77
B-frame Prediction Weighting
Time
I0
B1
B2
B3
P4
B5
B6

Playback order: I0 B1 B2 B3
P4
B5
B6 ……...

Bitstream order: I0 P4
B2
P8
B5 ……...
2015/7/7
B1 B3
MC-2009 VC Lab
78