Title: ITUT Recommendation H'261
1ITU-T Recommendation H.261
2H.261
- The Recommendation H.261 describes the video
coding and decoding methods for the moving
picture component of audiovisual services
(videophone, videoconference, etc.) at the rates
of p64 kbit/s, where p is in the range 1 to 30.
3H.261 Coder
Video in
DCT
Q
Inverse DCT
Motion Compensation
Loop Filter
4Motion Estimation
- For each 16?16 macroblock (MB), ME searches the
best match in the referenced frame, and returns a
motion vector MV (X,Y). - Both X and Y have integer value not exceeding
15. - Only the difference (residuals) between the MB
and the best match is DCT encoded
5Coding of Motion Vectors
011 00001010 00000111
6Scan Line Order, MB by MB
- Scan Line Order
- Search Range
Frame n-1
Frame n
7Motion Compensation Motion Estimation
- MC is optional for each MB
- Only one MV for each MB
- The ME compares a 16x16 macroblock in the
luminance block (Y) throughout a small search
area of the previously transmitted frame - Both horizontal and vertical components of these
motion vectors have integer values not exceeding
15. - The MV is used for all 4 Y blocks. The MV for
both Cb and Cr is derived by halving the
component values of the MB MV. - The displacement with the smallest absolute
macroblock difference, determined by the sum of
the absolute values of the pel-to-pel difference
throughout the block, is considered the MV for
the particular MB
8- Compare the difference between two blocks (one is
in the current frame, and the other is in the
reference frame)
p 1, sum of absolute difference p 2, mean
square error
p
-
Current block
Candidate block
9Quantization
- Within a MB, the same quantizer is used for all
coefficient excepts the INTRA dc one - of quantizers is 1 for INTRA dc coefficient and
31 for all other coefficients - MB quantization factor, Q, sometimes termed
MQUANT - C(u,v) F(u,v) / 2Q if Q is odd
- C(u,v) (F(u,v) 1)/2Q if Q is even (Fgt0
?, Flt0?-) - Quantization for INTRA dc term
- C (F4) / 8 with inverse F 8C
?2,4, , 62
10Loop Filter (FIL)
- The filter is separable into one-dimensional
horizontal and vertical functions. - The function is non-recursive with coefficients
of ¼, ½, ¼ except at block edges. - The function has coefficients of 0, 1, 0 at block
edges. - The filter is switched on/off for all 6 blocks in
a MB according to MTYPE.
11H.261 Decoder
Intra
Inverse DCT
Inter
Motion Compensation
Loop Filter
12H.261 Video Formats
Y pixel
Cb, Cr pixel
Block boundary
13Arrangement of H.261
352
176
176
176
48
48
288
QCIF
CIF
14Arrangements of H.261
176
176
144
48
GOB (Group Of Block)
QCIF picture
8
8
16
8
8
16
MB (Macro Block)
15Positioning of luminance and chrominance samples
Y pixel
Cb, Cr pixel
Block boundary
16Data Structure of Compressed Bitstream in H.261
Picture Layer
GOB Layer
MB Layer
Block Layer
Fixed Length Code
Variable Length Code
17Structure of picture layer
- Picture start code (PSC) (20 bits)
- 0000 0000 0000 0001 0000
- Temporal reference (TR) (5 bits)
- It is formed by incrementing its value in the
previously transmitted picture header by one plus
the number of non-transmitted pictures since that
last transmitted one. (Only the five LSBs used)
18Structure of picture layer
- Type information (PTYPE) (6 bits)
- Bit 1 Split screen indicator
- Bit 2 Document camera indicator, 0 off, 1 on
- Bit 3 Freeze picture release, 0 off, 1 on
- Bit 4 Source format, 0 QCIF, 1 CIF
- Bit 5 Optional still image model HI_RES, 0 on,
1 off - Bit 6 Spare
- where Bit 1 is MSB
- Extra insertion information (PEI) (1 bit)
- 1 signals the presence of the following
optional data field.
19GOB Layer
- Group of blocks start code (GBSC) (16 bits)
- 0000 0000 0000 0001 (if 0000 followed, then it
is treated as a PSC) - Group number (GN) (4 bits)
- GN indicates the position of the group of blocks.
13, 14 and 15 are reserved for future use. 0
(0000) is used in the PSC.
20GOB Layer
- Quantizer information (GQUANT) (5 bits)
- The quantizer to be used in the GOB until
overridden by any subsequent MQUENT. - Extra insertion information (GEI) (1 bit)
- 1 signals the presence of the following
optional data field. - Spare information (GSPARE) (0/8/16 bits)
- If GEI 1, then the following 8-bits data is
GSPARE.
21MB Layer
- Macroblock address(MBA) (Variable length TABLE
1) - MBA indicates the position of a MB within a GOB.
It is the difference between the absolute
addresses of the MB and the last transmitted MB. - Type information (MTYPE) (Variable length TABLE
2)
22MB Layer
- Quantizer (MQUANT) (5 bits)
- MQUANT is present only if so indicated by MTYPE
(1, 3, 6, 9).
23MB Layer
- Motion vector data (MVD) (Variable length TABLE
3) - MVD is obtained from the MV (for the MB) by
subtracting the vector of the preceding MB. The
vector of the preceding MB is regarded as zero in
the following three situations - 1) evaluating MVD for MB 1, 12, 23.
- 2)evaluating MVD for MBs in which MBA does not
represent a difference of 1 - 3) MTYPE of the previous MB was not MC.
- Only one of the pair will yield a MV falling
within the permitted range.
24MB Layer
- Coded block pattern (CBP) (Variable length TABLE
4) - CBP is present if indicated by MTYPE (2, 3, 5, 6,
8, 9). The codeword gives a pattern number
signifying those blocks in the MB for which at
least one transform coefficient is transmitted. - CBP 32P1 16P2 8P3 4P4 2P5 P6
- where Pn 1 if any coefficient is present for
block n, else 0.
Cb
Cr
Y
25Block Layer
- Transform coefficients (TCOEFF) (Variable length
TABLE 5) - TCOEFF is always present for all six blocks in a
MB when MTYPE indicates INTRA. In other cases
MTYPE and CBP signal which blocks have
coefficient data transmitted for them. - The most commonly occurring combination of
successive zeros (RUN) and the following value
(LEVEL) are encoded with variable length codes in
TABLE 5. Other combinations of (RUN, LEVEL) are
encoded with a 20-bit word consisting of 6 bits
ESCAPE, 6 bits RUN and 8 bits LEVEL.
(Run, Level)
26Block Layer
- There are two code tables in TABLE 5
- 1) Being used for the first transmitted LEVEL in
INTER, INTERMC, and INTERMCFIL blocks. (EOB is
not included). - 2) Being used for all other LEVELs (EOB is
included) except the first one in INTRA blocks
which is fixed length coded with 8 bits. - Coefficients after the last non-zero one are not
transmitted. EOB is always the last item in
blocks for which coefficients are transmitted.
27Structure of H.261 Bitstream
28Coding of H.261 Bitstream
Picture Layer
PSC
TR
PTYPE
PEI
PSPARE
GOB Layer
GBSC
GN
GQUANT
GEI
GSPARE
MB Layer
29Coding of H.261 Bitstream
TCOEFF
EOB
Fixed length
Variable length
30H.263
- H.263 (H.261) (MPEG-like features)
- Compared to H.261
- More allowable picture formats
- Half-pixel motion estimation, no loop filter
- Different VLC tables at macroblock and block
levels - Four negotiable options
- 34 dB better PSNR than H.261 at lt64 kbps
31H.263 Video Formats
32Four Negotiable Options
- Unrestricted Motion Vector motion vectors can
point outside the picture, - -31.5 to 31.5 instead of 16 to 15.5
- Advanced Prediction Mode 8 ? 8 motion vectors,
overlapped block motion compensation, and motion
vectors can point outside the picture - Syntax-based Arithmetic Coding (about 5
decreasing in bit-rate) - PB-frame
33H.263 12 Optional Modes
- Annex D New Unrestricted Motion Vector (mv range
up to /- 256) - Annex I Advanced Intra Coding
- Annex J Deblocking Filter
- Annex M Improved PB-Frame
- Annex O Temporal, Spatial, and SNR Scalability
- Annex P Reference Picture Resampling
- Annex Q Reduced Resolution Update
34H.263 Optional Modes
- Annex S Alternative Inter VLC
- Annex I Modified Quantization
- Error Resilience
- Annex K Slice Structured
- Annex R Independent Segment Decoding
- Annex N Reference Picture Selection
35Codec Implementation Issues
- Fast algorithm for motion estimation
- Fast algorithm for DCT/IDCT
- Huffman table implementation
- Program design
- Program diagram
- Memory assess (frame stores)
- Register assignment
- Program redundancy
36Supplemental Enhancement Information
- Enhanced features
- Picture freeze and release
- Tagging information
- Snapshot
- Video segment start/end
- Progressive refinement start/end
- Chroma key
- Can be discarded by decoders that do not
understand