Loading in 2 Seconds...
Contextbased Adaptive Coding and the Emerging H.26L Video Compression Standard. Thomas Wiegand Heinrich Hertz Institute Berlin, Germany wiegand@hhi.de. ITUT Project H.26L.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Contextbased Adaptive Codingand the Emerging H.26L Video Compression Standard
Thomas Wiegand
Heinrich Hertz Institute
Berlin, Germany
wiegand@hhi.de
ITUT Project H.26L
Coder
Control
Control
Data
Transform/Quantizer
Quant.Transf. coeffs

Decoder
Deq./Inv. Transform
Entropy
Coding
0
Motion
Compensated
Predictor
Intra/Inter
Motion
Data
Motion
Estimator
H.26L Structure
Still using a hybrid of DPCM and transform codingas in prior standards.
Common elements with other standards include:
16x16 macroblocks
Conventional sampling of chrominance and association of luminance and chrominance data
Block motion displacement
Motion vectors over picture boundaries
Variable blocksize motion
Block transforms (not wavelets or fractals)
Scalar quantization
Coder
Control
Control
Data
Transform/Quantizer
Quant.Transf. coeffs

Decoder
Deq./Inv. Transform
Mode 1
Mode 2
Mode 3
Mode 4
Entropy
Coding
0
0
1
0
0
1
1
2
3
0
Motion
Compensated
Predictor
Mode 5
Mode 6
Mode 7
0
1
2
3
0
1
0
1
2
3
2
3
4
5
6
7
Intra/Inter
4
5
6
7
4
5
8
9
10
11
6
7
12
13
14
15
Motion
Data
1/4 (QCIF) or 1/8 (CIF) pel
Motion
Estimator
H.26L: Motion Compensation Accuracy
Entropy
Coding
Multiple Reference Frames for
Motion Compensation
H.26L: Multiple Reference Frames
Coder
Control
Control
Data
Transform/Quantizer
Quant.Transf. coeffs

Decoder
Deq./Inv. Transform
0
Motion
Compensated
Predictor
Intra/Inter
Motion
Data
Motion
Estimator
Motion Compensation:
Various block sizes and shapes for motion compensation (7 segmentations of the macroblock: 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4)
Multiple reference pictures (per H.263++ Annex U)
Temporallyreversed motion
B picture prediction weighting
New “SP” transition pictures for sequence switching
1/4 sample (sort of per MPEG4) and 1/8 sample accuracy motion
6x6 tap filtering to 1/2 sample accuracy, bilinear filtering to 1/4 sample accuracy, special position with heavier filtering
8x8 tap filtering applied repeatedly for 1/8 pel motion
Coder
Control
Control
Data
Transform/Quantizer
Quant.Transf. coeffs

Decoder
Deq./Inv. Transform
Entropy
Coding
0
Motion
Compensated
Predictor
Intra/Inter
Motion
Data
Motion
Estimator
H.26L: Residual Coding
Transform
Integer transform approximating a DCT
Based primarily on 4x4 transform size (all prior standards used 8x8)
Expanded to 8x8 for chroma by 2x2 DC transform
Intra Coding Structure
Directional spatial prediction (6 types luma, 1 chroma)
Expanded to 16x16 for luma intra by 4x4 DC Xfm
Quantization
Two inverse scan patterns
Logarithmic step size control
Smaller step size for chroma (per H.263 Annex T)
Deblocking Filter (in loop)
Distinct Network Adaptation Layer (NAL) design for network transport
Slicestructure coding
Data partitioning
Coder
Control
Control
Data
Transform/Quantizer
Quant.Transf. coeffs

Decoder
Deq./Inv. Transform
Entropy
Coding
0
Motion
Compensated
Predictor
Intra/Inter
Motion
Data
Motion
Estimator
H.26L: Entropy Coding
Entropy Coding in H.26L: Type 1 of 2
Simple design with some disadvantages:
Entropy Coding in H.26L: Type 2 of 2
Contextbased adaptive binary arithmetic codes(CABAC)
CABAC: Technical Overview
update probability estimation
Context modeling
Probability estimation
Coding engine
Binarization
Adaptive binary arithmetic coder
Uses the provided model for the actual encodingand updates the model
Maps nonbinary symbols to a binary sequence
Chooses a model conditioned on past observations
Symbol
Binarization
0
1
1
0 1
2
0 0 1
3
0 0 0 1
4
0 0 0 0 1
5
0 0 0 0 0 1
6
0 0 0 0 0 0 1
.
...
Bin_no
1 2 3 4 5 6 7 ...
Binarization
0, for A+B < 2,
1, else
ctx_no (C) =
B
A
C
Example: Context Modeling and Binarization
Neighboring symbols A and B used for conditioning of current symbol C
Context determination rule
Current symbol
C=4
A=2, B=3 ctx_no(C)=1
Context selection
0 0 0 0 1
Binarization
Choice of model depends on bin_no
(bit, model_no.): (0,1) (0,2) (0,3) (0,3) (1,3)
Feed into the arithmetic coder
Probability Estimation and Adaptation
Binary Arithmetic Coding
Results: BitRate Reduction
Results: BitRate Reduction
MPEG4: Advanced Simple Profile (ASP)
Motion Compensation: 1/4 pel
Global Motion Compensation
H.26L:
Motion Compensation: 1/4 pel (QCIF), 1/8 pel (CIF)
Using CABAC entropy coding
5 reference frames in 7 of 8 cases (News: 17 / 25)
Both:
Sequence structure IBBPBBP...
QPB=QPP+2 (step size: +25%)
Search range: 32x32 around 16x16 predictor
Wellknown D+lR optimization techniques
RD Curves: Foreman (QCIF, 10Hz)
39
38
37
36
35
34
33
Average PSNR(Y) [dB]
32
31
30
29
28
MPEG4
27
H.26L
26
0
16
32
48
64
80
96
112
128
Bitrate [kbit/s]
RD Curves: Flowergarden (CIF, 30Hz)
38
37
36
35
34
33
32
31
Average PSNR(Y) [dB]
30
29
28
27
26
25
MPEG4
24
23
H.26L
22
0
256
512
768
1024
1280
1536
1792
2048
2304
Bitrate [kbit/s]
PSNR Results: H.26L TML8vs. MPEG4 ASP Anchor
Subjective Comparison
Conclusions