0% found this document useful (0 votes)
10 views6 pages

INDEX

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views6 pages

INDEX

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Contents

.......................................... ... 1
1.1
1.2 V.................................. 2
1.3

2 Digital Video. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Introduction ............................................. 5
2.2 Concepts, Capture and Display ............................... 5
2.2.1 The Video Image .... . . .............................. 5
2.2.2 Digital Video ....... . .......................... ..... 5
2.2.3 Video Capture ...... . ............................... 7
2.2.4 Sampling .......................................... 7
2.2.5 Display ........ . .................................. 9
2.3 Colour Spaces .......................................... 10
2.3.1 RGB ............................................ 11
2.3.2 YCrCb .......................................... 12
2.4 The Human Visual System ................................. 16
2.5 Video Quality............. . ............................. 16
2.5.1 Subjective Quality Measurement ........................ 17
2.5.2 Objective Quality Measurement ......................... 19
2.6 Standards for Representing Digital Video ....................... 23
2.7 Applications.... . ....................................... 24
2.7.1 Platforms. . ....................................... 25
2.8 ............................................ 25
.............................................. 26

3 Image and Video Compression Fundamentals . . . . . . . . . . . . . . . 27


3.1 Introduction ............................................ 27

3.2 Image and Video Compression............................... 28


3.2.1 DPCM (Differential Pulse Code Modulation)................ 30
3.2.2 Transform Coding .................................. 31
3.2.3 Motion-compensated Prediction ......................... 31
3.2.4 Model-based Coding................................. 32
3.3 Image CODEC.......................................... 33
3.3.1 Transform Coding .................................. 33
3.3.2 Quantisation....................................... 35
vi CONTENTS

3.3.3 Entropy Coding .................................... 37


3.3.
4 Decoding. ........................................ 40
3.
4 Video CODEC .......................................... 41
3.
4 .1 Frame Differencing.................................. 42
3.
4 .2 Motion-compensated Prediction ......................... 43
3.
4 .3 Transform, Quantisation and Entropy Encoding .............. 45
3.
4.4 Decoding...................... . .................. 45
3. 45

4 Video Coding Standards: JPEG and MPEG................. 47


4 .1 Introduction ............................................ 47
4 .2 The International Standards Bodies............................ 47
4.2.1 The Expert Groups .................. . ............... 48
4 .2.2 The Standardisation Process ........................... 50
4 .2.3 Understanding and Using the Standards ................... 50
4 .3 JPEG (Joint Photographic Experts Group) ....................... 51
4 .3.1 JPEG ........................................... 51
4 .3.2 Motion JPEG ...................................... 56
4 .3.3 JPEG-2000 ....................................... 56
44. MPEG (Moving Picture Experts Group) ........................ 58
4.4.1 MPEG-1 ......................................... 58
4 .4 .2 MPEG-2 ......................................... 6 4
4.4 .3 MPEG-4 ......................................... 67
4 .5 .......................................... 76
............................................... 76

5 Video Coding Standards: H.261, H.263 and H.26L . . . . . . . . . . . 79


5.1 Introduction ............................................ 79
5.2 H.26 1 ................................................ 80
5.3 H.26 3 ................................................ 80
5.3.1 Features.......................................... 81
5.4 The H.26 3 Optional Modes/H.26 3+........................... 81
5.
4 .1 H.26 3 Profiles ............................... . ..... 86
5.5 H.26L................................................ 87
5.6 Performance of the Video Coding Standards ..................... 90
5.7 Summary.............................................. 91
References........................................... . ..... 92

6 Motion Estimation and Compensation . . . . . . . . . . . . . . . . . . . . . . 93


6.1 Introduction ...... ...................................... 93
6.2 Motion Estimation and Compensation.......................... 94
6.2.1 Requirements for Motion Estimation and Compensation ........ 94
6.2.2 Block Matching .............................. . ..... 95
6.2.3 Minimising Difference Energy.......................... 97
6.3 Full Search Motion Estimation. .......... . . . . . .... .... . ...... 99
6.
4 Fast Search ............. . ............................. 10 2
4 .1 Three-Step Search (TSS)............................. 10 2
6.
CONTENTS vii

6.4.2 Logarithmic Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103


6.4.3 Cross Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.4.4 One-at-a-Time Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.4.5 Nearest Neighbours Search . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.4.6 Hierarchical Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.5 Comparison of Motion Estimation Algorithms . . . . . . . . . . . . . . . . . . . 109
6.6 Sub-Pixel Motion Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.7 Choice of Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.7.1 Forward Prediction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.7.2 Backwards Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.7.3 Bidirectional Prediction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.7.4 Multiple Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.8 Enhancements to the Motion Model . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.8.1 Vectors That can Point Outside the Reference Picture. . . . . . . . . 115
6.8.2 Variable Block Sizes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.8.3 Overlapped Block Motion Compensation (OBMC). . . . . . . . . . . 116
6.8.4 Complex Motion Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.9 I mplementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.9.1 Software Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.9.2 Hardware Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
125
125

7 Transform Coding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127


7. l Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.2 Discrete Cosine Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Discrete Wavelet Transform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.4 Fast
. Algorithms for the DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.4.1 Separable Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.4.2 Flowgraph Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.4.3 Distributed Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.4.4 Other DCT Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7.5 Implementing the DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.5.1 Software DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.5.2 Hardware DCT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.6 Quantisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.6.1 Types of Quantiser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.6.2 Quantiser Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.6.3 Quantiser Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.6.4 Vector Quantisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
160
161

8 Entropy Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163


8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2 Data Symbols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.2.1 Run-Level Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
viii CONTENTS

8.2.2 Other Symbols . . . . . . . . . . . . . . .. ... .. .. ... ........ . 167


8.3 Huffman Coding. . . . . . . . . . . . . . . . . . . .. .... . .. ........... . 169
8.3.1 'True' Huffman Coding. . . . . . . . . .. .... . .. ........... . 169
8.3.2 Modified Huffman Coding. . . . . . . .. . .... .. ........... . 174
8.3.3 Table Design . . . . . . . . . . . . . . . . .. ..... .. ........... . 174
8.3.4 Entropy Coding Example . . . . . . . .. ..... .. .. ........ . 177
8.3.5 Variable Length Encoder Design . . .. ..... .. .... . ... ... . 180
8.3.6 Variable Length Decoder Design . . .. ..... .. .......... . . 184
8.3.7 Dealing with Errors . . . . . . . . . . . .. ..... .. .. ..... .... . 186
8.4 Arithmetic Coding . . . . . . . . . . . . . . . . . .. ..... .. .... ....... . 188
8.4.1 Implementation Issues. . . . . . . . . . .. ..... .. ... .... .... . 191
. 192
. 193

9 Pre- and Post-processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195


9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.2 Pre-filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.2.1 Camera Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.2.2 Camera Movement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9 .3 Post-filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.3. l Image Distortion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.3.2 De-blocking Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.3.3 De-ringing Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.3.4 Error Concealment Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
208
209

10 Rate, Distortion and Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . 211


10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
10.2 Bit Rate and Distortion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
10.2. l The Importance of Rate Control . . . . . . . . . . . . . . . . . . . . . . 212
10.2.2 Rate-Distortion Performance . . . . . . . . . . . . . . . . . . . . . . . . 215
10.2.3 The Rate-Distortion Problem . . . . . . . . . . . . . . . . . . . . . . . . 217
10.2.4 Practical Rate Control Methods . . . . . . . . . . . . . . . . . . . . . . 220
10.3 Computational Complexity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
10.3.l Computational Complexity and Video Quality . . . . . . . . . . . 226
10.3.2 Variable
. Complexity Algorithms. . . . . . . . . . . . . . . . . . . . . . 228
10.3.3 Complexity-Rate Control. . . . . . . . . . . . . . . . . . . . . . . . . . . 231
1 . 232
232

11 Transmission of Coded Video. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235


11 .1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ... . ....... . 235
I 1.2 Quality of Service Requirements and Constraints . . .. ... . .. . . .. . . 235
11.2.1 QoS Requirements for Coded Video . . . . . .. ... . ....... . 235
11.2.2 Practical QoS Performance . . . . . . . . . . . .. . .. . ....... . 239
11.2.3 Effect of QoS Constraints on Coded Video .. ... . ....... . 24 l
CONTENTS ix

11.3 Design for Optimum QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244


11.3.1 Bit Rate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.3.2 Error Resilience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.3.3 Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.4 Transmission Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
11.4.1 Digital Television Broadcasting: MPEG-2 Systemsffransport . 249
11.4.2 Packet Video: H.323 Multimedia Conferencing . . . . . . . . . . . 252
1 254
255

12 Platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
12.2 General-purpose Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
12.2.1 Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12.2.2 Multimedia Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12.3 Digital Signal Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.4 Embedded Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.5 Media Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.6 Video Signal Processors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.7 Custom Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.8 Co-processors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.9 269
.... 270

13 Video CODEC Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271


13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.2 Video CODEC I nterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.2.1 Video I n/Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
13.2.2 Coded Data In/Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
13.2.3 Control Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
13.2.4 Status Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
13.3 Design of a Software CODEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
13.3.1 Design Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
13.3.2 Specification and Partitioning. . . . . . . . . . . . . . . . . . . . . . . . 279
13.3.3 Designing the Functional Blocks . . . . . . . . . . . . . . . . . . . . . 282
13.3.4 Improving Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
13.3.5 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
13.4 Design of a Hardware CODEC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
13.4.1 Design Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
13.4.2 Specification and Partitioning. . . . . . . . . . . . . . . . . . . . . . . . 285
13.4.3 Designing the Functional Blocks . . . . . . . . . . . . . . . . . . . . . 286
13.4.4 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
1 287
287

14 Future Developments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289


14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
X CONTENTS

14.2 Standards Evolution 289


14.3 Video Coding Research .................................. 290
14.4 Platform Trends ....................................... 290
14.5 Application Trends ..................................... 291
14.6 Video CODEC Design................................... 292
References................................................ 293

You might also like