About the Author |
|
xiii | |
Preface |
|
xv | |
Glossary |
|
xvii | |
|
|
xxi | |
|
|
xxix | |
|
|
1 | (6) |
|
|
1 | (1) |
|
|
1 | (3) |
|
1.3 The role of standards |
|
|
4 | (1) |
|
1.4 Why H.264 Advanced Video Coding is important |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
6 | (1) |
|
2 Video formats and quality |
|
|
7 | (18) |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
8 | (4) |
|
|
9 | (1) |
|
|
9 | (2) |
|
|
11 | (1) |
|
|
12 | (4) |
|
|
12 | (1) |
|
|
13 | (1) |
|
2.4.3 YCrCb sampling formats |
|
|
14 | (2) |
|
|
16 | (3) |
|
2.5.1 Intermediate formats |
|
|
16 | (1) |
|
2.5.2 Standard Definition |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
19 | (5) |
|
2.6.1 Subjective quality measurement |
|
|
20 | (1) |
|
2.6.2 Objective quality measurement |
|
|
21 | (3) |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
25 | (56) |
|
|
25 | (1) |
|
|
26 | (2) |
|
|
28 | (12) |
|
3.3.1 Temporal prediction |
|
|
28 | (10) |
|
3.3.2 Spatial model: intra prediction |
|
|
38 | (2) |
|
|
40 | (17) |
|
3.4.1 Predictive image coding |
|
|
41 | (1) |
|
|
42 | (8) |
|
|
50 | (2) |
|
3.4.4 Reordering and zero encoding |
|
|
52 | (5) |
|
|
57 | (11) |
|
|
57 | (1) |
|
3.5.2 Variable-length coding |
|
|
58 | (7) |
|
|
65 | (3) |
|
3.6 The hybrid DPCM/DCT video CODEC model |
|
|
68 | (11) |
|
|
79 | (1) |
|
|
79 | (2) |
|
|
81 | (18) |
|
|
81 | (1) |
|
|
81 | (2) |
|
4.2.1 A video compression format |
|
|
81 | (1) |
|
4.2.2 An industry standard |
|
|
82 | (1) |
|
4.2.3 A toolkit for video compression |
|
|
83 | (1) |
|
4.2.4 Better video compression |
|
|
83 | (1) |
|
4.3 How does an H.264 codec work? |
|
|
83 | (8) |
|
|
85 | (4) |
|
|
89 | (2) |
|
4.4 The H.264/AVC Standard |
|
|
91 | (1) |
|
4.5 H.264 Profiles and Levels |
|
|
92 | (2) |
|
|
94 | (3) |
|
|
97 | (1) |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
99 | (38) |
|
|
99 | (1) |
|
5.1.1 A note about syntax examples |
|
|
99 | (1) |
|
|
100 | (1) |
|
5.3 Frames, fields and pictures |
|
|
101 | (13) |
|
|
104 | (1) |
|
|
104 | (2) |
|
5.3.3 Reference picture lists |
|
|
106 | (5) |
|
5.3.4 Frame and field coding |
|
|
111 | (3) |
|
|
114 | (1) |
|
|
115 | (2) |
|
|
117 | (2) |
|
|
117 | (1) |
|
|
117 | (1) |
|
|
118 | (1) |
|
|
119 | (15) |
|
|
119 | (2) |
|
|
121 | (1) |
|
5.7.3 Macroblock prediction |
|
|
122 | (2) |
|
|
124 | (3) |
|
5.7.5 Macroblock syntax examples |
|
|
127 | (7) |
|
|
134 | (1) |
|
|
135 | (2) |
|
|
137 | (42) |
|
|
137 | (1) |
|
6.2 Macroblock prediction |
|
|
137 | (1) |
|
|
138 | (11) |
|
6.3.1 4 × 4 luma prediction modes |
|
|
143 | (3) |
|
6.3.2 16 × 16 luma prediction modes |
|
|
146 | (1) |
|
6.3.3 Chroma prediction modes |
|
|
147 | (1) |
|
6.3.4 8 x 8 luma prediction, High profiles |
|
|
148 | (1) |
|
6.3.5 Signalling intra prediction modes |
|
|
148 | (1) |
|
|
149 | (22) |
|
|
151 | (1) |
|
6.4.2 Interpolating reference pictures |
|
|
152 | (5) |
|
6.4.3 Macroblock prediction |
|
|
157 | (5) |
|
6.4.4 Motion vector prediction |
|
|
162 | (1) |
|
6.4.5 Motion compensated prediction |
|
|
162 | (2) |
|
6.4.6 Inyter prediction examples |
|
|
164 | (5) |
|
6.4.7 Prediction structures |
|
|
169 | (2) |
|
|
171 | (6) |
|
|
172 | (1) |
|
|
173 | (1) |
|
6.5.3 Filter implementation |
|
|
174 | (1) |
|
6.5.4 Loop filter example |
|
|
174 | (3) |
|
|
177 | (1) |
|
|
177 | (2) |
|
7 H.264 transform and coding |
|
|
179 | (44) |
|
|
179 | (1) |
|
7.2 Transform and quantization |
|
|
179 | (27) |
|
7.2.1 The H.364 transforms |
|
|
179 | (1) |
|
7.2.2 Trasnform processes |
|
|
180 | (5) |
|
7.2.3 Tnteger transform and quanitzation: 4 x 4 blocks |
|
|
185 | (13) |
|
7.2.4 Interger transform and quantization: 8 x 8 blocks |
|
|
198 | (5) |
|
|
203 | (1) |
|
7.2.6 Transform and quantization extensions in the High profiles |
|
|
204 | (2) |
|
|
206 | (2) |
|
|
208 | (12) |
|
|
208 | (2) |
|
7.4.2 Context Adaptive Variable Length Coding, CAVLC |
|
|
210 | (7) |
|
7.4.3 Context Adaptive Binary Arithmetic Coding, CABAC |
|
|
217 | (3) |
|
|
220 | (1) |
|
|
221 | (2) |
|
8 H.264 conformance, Transport and licensing |
|
|
223 | (32) |
|
|
223 | (1) |
|
8.2 Conforming to the Standard |
|
|
223 | (14) |
|
|
224 | (2) |
|
|
226 | (4) |
|
8.2.3 Hypthetical Reference Decoder |
|
|
230 | (6) |
|
8.2.4 Conformance testing |
|
|
236 | (1) |
|
8.3 H.264 coding tools for transport support |
|
|
237 | (7) |
|
|
237 | (1) |
|
8.3.2 Arbitrary Slice Order (ASO) |
|
|
238 | (1) |
|
8.2.3 Slice Groups/Flexible Macroblock Order (FMO) |
|
|
238 | (2) |
|
|
240 | (3) |
|
8.3.5 Data partitioned slices |
|
|
243 | (1) |
|
8.4 Transport of H.264 data |
|
|
244 | (4) |
|
8.4.1 Encapsulation in RBSPs, NALUs and packets |
|
|
244 | (1) |
|
8.4.2 Transport protocols |
|
|
245 | (2) |
|
|
247 | (1) |
|
8.4.4 Coding and transport issues |
|
|
247 | (1) |
|
8.5 Supplemental Information |
|
|
248 | (1) |
|
8.5.1 Supplemental Enhancement Information (SEI) |
|
|
248 | (1) |
|
8.5.2 Video Usability Information (VUI) |
|
|
248 | (1) |
|
|
248 | (5) |
|
8.6.1 Video coding patents |
|
|
250 | (2) |
|
8.6.2 Video coding standards and patents |
|
|
252 | (1) |
|
8.6.3 Licensing H.264/AVC patents |
|
|
252 | (1) |
|
|
253 | (1) |
|
|
253 | (2) |
|
|
255 | (32) |
|
|
255 | (1) |
|
9.2 Experimenting with H.264 |
|
|
256 | (9) |
|
9.2.1 The JM Reference Software |
|
|
256 | (5) |
|
9.2.2 Other software encoders/decoders |
|
|
261 | (2) |
|
9.2.3 H.264 stream analysis |
|
|
263 | (2) |
|
9.3 Performance comparisons |
|
|
265 | (9) |
|
9.3.1 Performance criteria |
|
|
265 | (1) |
|
9.3.2 Performance examples: Foreman sequence, QCIF resolution |
|
|
265 | (4) |
|
9.3.3 Performance examples: Forman and Container sequences |
|
|
269 | (2) |
|
9.3.4 Performance examples: Inter prediction structures |
|
|
271 | (2) |
|
9.3.5 Performance examples: H.264 vs. MPEG-4 Visual |
|
|
273 | (1) |
|
|
274 | (5) |
|
9.4.1 Rate control in the JM reference encoder |
|
|
276 | (3) |
|
|
279 | (4) |
|
9.5.1 Rate Distortion Optimized mode selection |
|
|
281 | (2) |
|
9.6 Low complexity coding |
|
|
283 | (2) |
|
Approximating the cost function |
|
|
283 | (1) |
|
9.6.2 Reducing the set of tested modes |
|
|
284 | (1) |
|
|
285 | (1) |
|
|
285 | (1) |
|
|
285 | (2) |
|
10 Extensions and directions |
|
|
287 | (26) |
|
|
287 | (1) |
|
10.2 Scalable Video Coding |
|
|
288 | (14) |
|
10.2.1 Simulcast transmission |
|
|
288 | (1) |
|
10.2.2 Scalable transmission |
|
|
289 | (1) |
|
10.2.3 Applications of Scalable Video Coding |
|
|
290 | (1) |
|
10.2.4 Scalable video Coding in H.264 |
|
|
290 | (2) |
|
10.2.5 Temporal scalability |
|
|
292 | (2) |
|
10.2.6 Quality scalability: overview |
|
|
294 | (1) |
|
10.2.7 Spatial scalability: overview |
|
|
294 | (1) |
|
10.2.8 Spatial scalability in detail |
|
|
294 | (4) |
|
10.2.9 Quality scalibility in detail |
|
|
298 | (1) |
|
10.2.10 Combined scalability |
|
|
299 | (1) |
|
|
299 | (3) |
|
10.3 Multiview Video Coding |
|
|
302 | (4) |
|
10.3.1 H.264 Multiview Video Coding |
|
|
304 | (2) |
|
10.4 Configurable Video Coding |
|
|
306 | (4) |
|
10.4.1 MPEG Reconfigurable Video Coding |
|
|
307 | (1) |
|
10.4.2 Fully Configurable Video Coding |
|
|
308 | (2) |
|
|
310 | (1) |
|
|
310 | (1) |
|
|
311 | (2) |
Index |
|
313 | |