Block-Based Coding

Download Report

Transcript Block-Based Coding

ITU-T Recommendation
H.261
H.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
p×64 kbit/s, where p is in the range 1
to 30.
H.261 Coder
Video in
DCT
Q
Inverse
DCT
Loop
Filter
Motion
Compensation
Motion 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
Coding of Motion
Vectors
DPCM
Example:
15 14 -13 12 …
-1 -27 25 …
011 00001010 00000111 …
MVD
…
-7&25
-6&26
-5&27
-4&28
-3&29
-2&30
-1
0
1
2&-30
3&-29
4&-28
5&-27
6&-26
7&-25
…
Code
…
0000 0111
0000 1001
0000 1011
0000 111
0001 1
0011
011
1
010
0010
0001 0
0000 110
0000 1010
0000 1000
0000 0110
…
Scan Line Order, MB by MB
• Scan Line Order
Frame n-1
Frame n
• Search Range
MV(1,0)
MV(0,0)
2015/7/16
H.261 VClab 2009
6
Motion 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
• Compare the difference between two
blocks (one is in the current frame, and the other is in
the reference frame)
|
Candidate block
2015/7/16
p
|
-
p = 1, sum of absolute difference
p = 2, mean square error
Current block
H.261 VClab 2009
8
Quantization
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
=2,4, …, 62
MB quantization factor, Q, sometimes termed
MQUANT:
– C(u,v) = F(u,v) / 2Q
– C(u,v) = (F(u,v) ±1)/2Q
if Q is odd
if Q is even (F>0 +, F<0-)
Quantization for INTRA dc term:
– C = (F+4) / 8 with inverse F = 8C
Loop 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.
×¼
×½
×¼
H.261 Decoder
Intra
Inverse
DCT
Inter
Loop
Filter
Motion
Compensation
H.261 Video Formats
Video Luminance (Y)
Format
pixels/line lines/frame
CIF
QCIF
352
176
288
144
Chrominance(Cb, Cr)
pixels/line lines/frame
176
144
88
72
Y pixel
Cb, Cr pixel
Block boundary
Arrangement of H.261
352
48
288
176
176
1
3
5
7
9
11
2
4
6
8
10
12
CIF
176
48
1
2
3
QCIF
Arrangements of H.261
176
5 6 7
176
144
1 2 3 4
8 9 10 11
12 13 14 15 16 17 18 19 20 21 22
48
23 24 25 26 27 28 29 30 31 32 33
1
2
3
GOB (Group Of Block)
QCIF picture
Y1 Y2
16
Y3 Y4
16
8 U
8 V
8
8
MB (Macro Block)
Positioning of luminance and
chrominance samples
Y pixel
Cb, Cr pixel
Block boundary
Data Structure of Compressed
Bitstream in H.261
Picture
Header
GOB
data
GOB
Header
…
GOB
data
MB
data
MB
Header
…
Block
data
MB data
…
Block
data
TCOEFF … TCOEFF EOB
Fixed Length Code
Variable Length Code
Picture
Layer
GOB
Layer
MB
Layer
Block
Layer
Structure of picture layer
PSC TR
PTYPE PEI … PSPARE PEI … GOB data
• 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)
Structure of picture layer
PSC TR
PTYPE PEI … PSPARE PEI … GOB data
• 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.
GOB Layer
GBSC GN
GQUANT GEI … GSPARE GEI … MB data
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.
GOB Layer
GBSC GN
GQUANT GEI … GSPARE GEI … MB data
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.
MB Layer
MBA MTYPE MQUANT MVD CBP Block data
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)
MB Layer
MBA MTYPE MQUANT MVD CBP Block data
Quantizer (MQUANT) (5 bits)
– MQUANT is present only if so indicated
by MTYPE (1, 3, 6, 9).
MB Layer
MBA MTYPE MQUANT MVD CBP Block data
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.
MB Layer
MBA MTYPE MQUANT MVD CBP Block data
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.
1 2 C
Cr 6
Y
b 5
3
4
Block 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
(Run, Level) (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.
Block Layer
There are two code tables in TABLE 5:
– 1) Being used for the first transmitted LEVEL in
INTER, INTER+MC, and INTER+MC+FIL 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.
Structure of H.261 Bitstream
PSC TR
GBSC GN
PTYPE PEI … PSPARE PEI … GOB data
GQUANT GEI … GSPARE GEI … MB data …
MBA MTYPE MQUANT MVD CBP Block data …
Coding of H.261 Bitstream
Picture Layer
PSC TR
PTYPE
PEI
PSPARE
GOB Layer
GOB Layer
GBSC
GN
GQUANT
GEI
GSPARE
MB Layer
Coding of H.261 Bitstream
MB Layer
MVD
MBA
MTYPE
MQUANT
MVD
CBP
Block Layer
CBP
MBA stuffing
TCOEFF
EOB
Fixed length
Variable length
H.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
3~4 dB better PSNR than H.261 at <64 kbps
H.263 Video Formats
SubCIF
Pels/line 128
QCIF
CIF
4CIF
16CIF
176
352
704
1408
Lines
144
288
576
1152
96
Four 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
H.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
H.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
Codec 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
Supplemental 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