ITU-T Recommendation H.263

Title: Video coding for low bit rate communication

Date of adoption: 02/1998

Summary

This Recommendation specifies a coded representation that can be used for compressing the moving picture component of audio-visual services at low bit rates. The basic configuration of the video source coding algorithm is based on Recommendation H.261 and is a hybrid of inter-picture prediction to utilize temporal redundancy and transform coding of the remaining signal to reduce spatial redundancy. The source coder can operate on five standardized video source formats: sub-QCIF, QCIF, CIF, 4CIF and 16CIF, and can also operate using a broad range of custom video formats.

TABLE OF CONTENTS

    Page
1 Scope 1
2 References 1
3 Brief specification 2
3.1 Video input and output 2
3.2 Digital output and input 2
3.3 Sampling frequency 2
3.4 Source coding algorithm 2
3.4.1 Continuous Presence Multipoint and Video Multiplex mode 3
3.4.2 Unrestricted Motion Vector mode 3
3.4.3 Syntax-based Arithmetic Coding mode 3
3.4.4 Advanced Prediction mode 3
3.4.5 PB-frames mode 3
3.4.6 Forward Error Correction 3
3.4.7 Advanced INTRA Coding mode 4
3.4.8 Deblocking Filter mode 4
3.4.9 Slice Structured mode 4
3.4.10 Supplemental enhancement information 4
3.4.11 Improved PB-frames mode 4
3.4.12 Reference Picture Selection mode 4
3.4.13 Temporal, SNR and Spatial Scalability mode 5
3.4.14 Reference Picture Resampling mode 5
3.4.15 Reduced-Resolution Update mode 5
3.4.16 Independent Segment Decoding mode 5
3.4.17 Alternative INTER VLC mode 5
3.4.18 Modified Quantization mode 5
3.5 Bit rate 6
3.6 Buffering 6
3.7 Symmetry of transmission 6
3.8 Error handling 6
3.9 Multipoint operation 7
4 Source coder 7
4.1 Source format 7
4.2 Video source coding algorithm 9
4.2.1 GOBs, slices, macroblocks and blocks 9
4.2.2 Prediction 11
4.2.3 Motion compensation 12
4.2.4 Quantization 12
4.3 Coding control 13
4.4 Forced updating 13
4.5 Byte alignment of start codes 13
5 Syntax and semantics 13
5.1 Picture layer 22
5.1.1 Picture Start Code (PSC) (22 bits) 22
5.1.2 Temporal Reference (TR) (8 bits) 23
5.1.3 Type Information (PTYPE) (Variable Length) 23
5.1.4 Plus PTYPE (PLUSPTYPE) (Variable Length) 24
5.1.5 Custom Picture Format (CPFMT) (23 bits) 27
5.1.6 Extended Pixel Aspect Ratio (EPAR) (16 bits) 28
5.1.7 Custom Picture Clock Frequency Code (CPCFC) (8 bits) 28
5.1.8 Extended Temporal Reference (ETR) (2 bits) 28
5.1.9 Unlimited Unrestricted Motion Vectors Indicator (UUI) (Variable length) 29
5.1.10 Slice Structured Submode bits (SSS) (2 bits) 29
5.1.11 Enhancement Layer Number (ELNUM) (4 bits) 29
5.1.12 Reference Layer Number (RLNUM) (4 bits) 29
5.1.13 Reference Picture Selection Mode Flags (RPSMF) (3 bits) 29
5.1.14 Temporal Reference for Prediction Indication (TRPI) (1 bit) 30
5.1.15 Temporal Reference for Prediction (TRP) (10 bits) 30
5.1.16 Back-Channel message Indication (BCI) (Variable length) 30
5.1.17 Back-Channel Message (BCM) (Variable length) 30
5.1.18 Reference Picture Resampling Parameters (RPRP) (Variable length) 30
5.1.19 Quantizer Information (PQUANT) (5 bits) 30
5.1.20 Continuous Presence Multipoint and Video Multiplex (CPM) (1 bit) 31
5.1.21 Picture Sub-Bitstream Indicator (PSBI) (2 bits) 31
5.1.22 Temporal Reference for B-pictures in PB-frames (TRB) (3/5 bits) 31
5.1.23 Quantization information for B-pictures in PB-frames (DBQUANT) (2 bits) 31
5.1.24 Extra Insertion Information (PEI) (1 bit) 31
5.1.25 Supplemental Enhancement Information (PSUPP) (0/8/16 ... bits) 31
5.1.26 Stuffing (ESTUF) (Variable length) 32
5.1.27 End Of Sequence (EOS) (22 bits) 32
5.1.28 Stuffing (PSTUF) (Variable length) 32
5.2 Group of Blocks Layer 32
5.2.1 Stuffing (GSTUF) (Variable length) 32
5.2.2 Group of Block Start Code (GBSC) (17 bits) 33
5.2.3 Group Number (GN) (5 bits) 33
5.2.4 GOB Sub-Bitstream Indicator (GSBI) (2 bits) 33
5.2.5 GOB Frame ID (GFID) (2 bits) 33
5.2.6 Quantizer Information (GQUANT) (5 bits) 33
5.3 Macroblock layer 33
5.3.1 Coded macroblock indication (COD) (1 bit) 34
5.3.2 Macroblock type & Coded Block Pattern for Chrominance (MCBPC) (Variable length) 34
5.3.3 Macroblock mode for B-blocks (MODB) (Variable length) 37
5.3.4 Coded Block Pattern for B-blocks (CBPB) (6 bits) 37
5.3.5 Coded Block Pattern for luminance (CBPY) (Variable length) 37
5.3.6 Quantizer Information (DQUANT) (2 bits/Variable Length) 37
5.3.7 Motion Vector Data (MVD) (Variable length) 38
5.3.8 Motion Vector Data (MVD2-4) (Variable length) 40
5.3.9 Motion Vector Data for B-macroblock (MVDB) (Variable length) 40
5.4 Block layer 40
5.4.1 DC coefficient for INTRA blocks (INTRADC) (8 bits) 41
5.4.2 Transform Coefficient (TCOEF) (Variable length) 41
6 Decoding process 44
6.1 Motion compensation 44
6.1.1 Differential motion vectors 44
6.1.2 Interpolation for subpixel prediction 46
6.2 Coefficients decoding 46
6.2.1 Inverse quantization 46
6.2.2 Clipping of reconstruction levels 46
6.2.3 Zigzag positioning 47
6.2.4 Inverse transform 47
6.3 Reconstruction of blocks 47
6.3.1 Summation 47
6.3.2 Clipping 48
Annex A Inverse transform accuracy specification 48
Annex B Hypothetical Reference Decoder 49
Annex C Considerations for multipoint 51
C.1 Freeze picture request 51
C.2 Fast update request 51
C.3 Freeze picture release 51
C.4 Continuous Presence Multipoint and Video Multiplexing (CPM) 51
C.4.1 End Of Sub-Bitstream code (EOSBS) (23 bits) 52
C.4.2 Ending Sub-Bitstream Indicator (ESBI) (2 bits) 53
Annex D Unrestricted Motion Vector mode 53
D.1 Motion vectors over picture boundaries 53
D.1.1 Restrictions for motion vector values 54
D.2 Extension of the motion vector range 54
Annex E Syntax-based Arithmetic Coding mode 56
E.1 Introduction 56
E.2 Specification of SAC encoder 57
E.3 Specification of SAC decoder 58
E.4 Syntax 58
E.5 PSC_FIFO 59
E.6 Header layer symbols 59
E.7 Macroblock and Block layer symbols 60
E.8 SAC models 61
Annex F Advanced Prediction mode 64
F.1 Introduction 64
F.2 Four motion vectors per macroblock 64
F.3 Overlapped motion compensation for luminance 65
Annex G PB-frames mode 68
G.1 Introduction 68
G.2 PB-frames and INTRA blocks 69
G.3 Block layer 69
G.4 Calculation of vectors for the B-picture in a PB-frame 69
G.5 Prediction of a B-block in a PB-frame 70
Annex H Forward error correction for coded video signal 72
H.1 Introduction 72
H.2 Error correction framing 72
H.3 Error correcting code 72
H.4 Relock time for error corrector framing 72
Annex I Advanced INTRA Coding mode 73
I.1 Introduction 73
I.2 Syntax 74
I.3 Decoding process 74
Annex J Deblocking Filter mode 80
J.1 Introduction 80
J.2 Relation to UMV and AP modes (Annexes D and F) 81
J.3 Definition of the deblocking edge filter 81
Annex K Slice Structured mode 85
K.1 Introduction 85
K.2 Structure of slice layer 86
K.2.1 Stuffing (SSTUF) (Variable length) 86
K.2.2 Slice Start Code (SSC) (17 bits) 86
K.2.3 Slice Emulation Prevention Bit 1 (SEPB1) (1 bit) 86
K.2.4 Slice Sub-Bitstream Indicator (SSBI) (4 bits) 86
K.2.5 Macroblock Address (MBA) (5/6/7/9/11/12/13/14 bits) 87
K.2.6 Slice Emulation Prevention Bit 2 (SEPB2) (1 bit) 87
K.2.7 Quantizer Information (SQUANT) (5 bits) 87
K.2.8 Slice Width Indication in Macroblocks (SWI) (3/4/5/6/7 bits) 87
K.2.9 Slice Emulation Prevention Bit 3 (SEPB3) (1 bit) 88
Annex L Supplemental Enhancement Information Specification 88
L.1 Introduction 88
L.2 PSUPP format 88
L.3 Do Nothing 89
L.4 Full-Picture Freeze Request 89
L.5 Partial-Picture Freeze Request 89
L.6 Resizing Partial-Picture Freeze Request 90
L.7 Partial-Picture Freeze-Release Request 90
L.8 Full-Picture Snapshot Tag 90
L.9 Partial-Picture Snapshot Tag 91
L.10 Video Time Segment Start Tag 91
L.11 Video Time Segment End Tag 91
L.12 Progressive Refinement Segment Start Tag 91
L.13 Progressive Refinement Segment End Tag 91
L.14 Chroma Keying Information 92
L.15 Extended Function Type 94
Annex M Improved PB-frames mode 94
M.1 Introduction 94
M.2 BPB-macroblock prediction modes 95
M.2.1 Bidirectional prediction 95
M.2.2 Forward prediction 95
M.2.3 Backward prediction 95
M.3 Calculation of vectors for bidirectional prediction of a the B-macroblock 95
M.4 MODB table 95
Annex N Reference Picture Selection mode 96
N.1 Introduction 96
N.2 Video source coding algorithm 97
N.3 Channel for back-channel messages 97
N.3.1 Separate logical channel mode 98
N.3.2 Videomux mode 98
N.4 Syntax 98
N.4.1 Forward channel 98
N.4.2 Back-Channel Message (BCM) syntax 100
N.5 Decoder process 101
Annex O Temporal, SNR, and Spatial Scalability mode 102
O.1 Overview 102
O.1.1 Temporal scalability 102
O.1.2 SNR scalability 103
O.1.3 Spatial scalability 104
O.1.4 Multilayer scalability 105
O.2 Transmission order of pictures 106
O.3 Picture layer syntax 108
O.4 Macroblock layer syntax 108
O.4.1 Coded macroblock indication (COD) (1 bit) 110
O.4.2 MBTYPE/MCBPC (VLC) 110
O.4.3 Coded Block Pattern for Chrominance (CBPC) (Variable length) 112
O.4.4 Coded Block Pattern for Luminance (CBPY) (Variable length) 112
O.4.5 Quantizer Information (DQUANT) (2 bits/Variable length) 113
O.4.6 Motion vector data (MVDFW, MVDBW) (Variable length) 113
O.5 Motion vector decoding 113
O.5.1 Differential motion vectors 113
O.5.2 Motion vectors in direct mode 113
O.6 Interpolation filters 113
Annex P Reference picture resampling 116
P.1 Introduction 116
P.2 Syntax 119
P.2.1 Warping Displacement Accuracy (WDA) (2 bits) 119
P.2.2 Warping parameters (Variable length) 119
P.2.3 Fill Mode (FILL_MODE) (2 bits) 120
P.2.4 Fill Color Specification (Y_FILL, CB_EPB, CB_FILL, CR_EPB, CR_FILL) (26 bits) 120
P.3 Resampling algorithm 121
P.4 Example of implementation 124
P.4.1 Displacements of virtual points 124
P.4.2 Resampling algorithm 124
P.5 Factor-of-4 resampling 126
P.5.1 Factor-of-4 upsampling 126
P.5.2 Factor-of-4 downsampling 128
Annex Q Reduced-Resolution Update mode 129
Q.1 Introduction 129
Q.2 Decoding procedure 130
Q.2.1 Reference preparation 131
Q.2.2 Macroblock layer decoding 131
Q.2.3 Picture store 132
Q.2.4 Display 132
Q.3 Extension of referenced picture 133
Q.4 Reconstruction of motion vectors 134
Q.5 Enlarged overlapped motion compensation for luminance 136
Q.6 Upsampling of the reduced-resolution reconstructed prediction error 138
Q.6.1 Upsampling procedure for the pixels inside a 16 × 16 reconstructed prediction error block 140
Q.6.2 Upsampling procdedure for the pixels at the boundary of 16 × 16 reconstructed prediction error block 141
Q.7 Block boundary filter 141
Q.7.1 Definition of the default block boundary filter 142
Q.7.2 Definition of the block boundary filter when Deblocking Filter mode is used 142
Annex R Independent Segment Decoding mode 143
R.1 Introduction 143
R.2 Mode operation 143
R.3 Constraints on usage 144
R.3.1 Constraint on segment shapes 144
R.3.2 Constraint on changes of segment shapes 144
Annex S Alternative INTER VLC mode 145
S.1 Introduction 145
S.2 Alternative INTER VLC for coefficients 145
S.2.1 Encoder action 145
S.2.2 Decoder action 145
S.3 Alternative INTER VLC for CBPY 146
Annex T Modified Quantization mode 146
T.1 Introduction 146
T.2 Modified DQUANT Update 146
T.2.1 Small-step QUANT alteration 146
T.2.2 Arbitrary QUANT selection 147
T.3 Altered quantization step size for chrominance coefficients 147
T.4 Modified coefficient range 148
T.5 Usage restrictions 148
Appendix I Error tracking 149
I.1 Introduction 149
I.2 Error tracking 149
Appendix II Recommended Optional Enhancement 150
II.1 Introduction 150
II.2 Levels of preferred mode support 151
II.2.1 Level 1 preferred modes 151
II.2.2 Level 2 preferred modes 152
II.2.3 Level 3 preferred modes 152
II.3 Picture formats and picture clock frequencies 153