100% found this document useful (1 vote)
115 views51 pages

Basic Video Compression Technique

This chapter discusses basic video compression techniques used in video coding standards. It introduces concepts of temporal redundancy reduction through motion compensation between frames, including motion estimation to find motion vectors and motion compensated prediction. It describes methods for searching motion vectors, including sequential search, 2D logarithmic search and hierarchical search. It discusses video coding standards H.261, H.263 which apply these techniques. It aims to provide an understanding of fundamental video compression principles and technologies.

Uploaded by

Toaster97
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
115 views51 pages

Basic Video Compression Technique

This chapter discusses basic video compression techniques used in video coding standards. It introduces concepts of temporal redundancy reduction through motion compensation between frames, including motion estimation to find motion vectors and motion compensated prediction. It describes methods for searching motion vectors, including sequential search, 2D logarithmic search and hierarchical search. It discusses video coding standards H.261, H.263 which apply these techniques. It aims to provide an understanding of fundamental video compression principles and technologies.

Uploaded by

Toaster97
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 51

Fundamentals of Multimedia, Chapter 10

Chapter 10
Basic Video Compression Techniques

10.1 Introduction to Video Compression 10.2 Video Compression with Motion Compensation 10.3 Search for Motion Vectors 10.4 H.261 10.5 H.263 10.6 Further Exploration

1
w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

10.1 Introduction to Video Compression


A video consists of a time-ordered sequence of frames, i.e., images. An obvious solution to video compression would be predictive coding based on previous frames. Compression proceeds by subtracting images: subtract in time order and code the residual error. It can be done even better by searching for just the right parts of the image to subtract from the previous frame.

w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

10.2 Video Compression with Motion Compensation


Consecutive frames in a video are similar temporal redundancy exists. Temporal redundancy is exploited so that not every frame of the video needs to be coded independently as a new image. The dierence between the current frame and other frame(s) in the sequence will be coded small values and low entropy, good for compression. Steps of Video compression based on Motion Compensation (MC): 1. Motion Estimation (motion vector search). 2. MC-based Prediction. 3. Derivation of the prediction error, i.e., the dierence.
w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Motion Compensation
Each image is divided into macroblocks of size N N .
By default, N = 16 for luminance images. For chrominance images, N = 8 if 4:2:0 chroma subsampling is adopted.

Motion compensation is performed at the macroblock level.


The current image frame is referred to as Target Frame. A match is sought between the macroblock in the Target Frame and the most similar macroblock in previous and/or future frame(s) (referred to as Reference frame(s)). The displacement of the reference macroblock to the target macroblock is called a motion vector MV. Figure 10.1 shows the case of forward prediction in which the Reference frame is taken to be a previous frame.

w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Reference frame
(x, y) (x0, y0) 2p + 1

Target frame
(x, y) (x0, y0) N N
Macroblock

MV

2p + 1
Matched macroblock Search window

Fig. 10.1: Macroblocks and Motion Vector in Video Compression.

MV search is usually limited to a small immediate neighborhood both horizontal and vertical displacements in the range [p, p]. This makes a search window of size (2p + 1) (2p + 1).

w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

10.3 Search for Motion Vectors


The dierence between two macroblocks can then be measured by their Mean Absolute Dierence (MAD):
1
2 N 1 N 1

M AD(i, j) =

|C(x + k, y + l) R(x + i + k, y + j + l)|


k=0 l=0

(10.1)

N size of the macroblock, k and l indices for pixels in the macroblock, i and j horizontal and vertical displacements, C(x + k, y + l) pixels in macroblock in Target frame, R(x + i + k, y + j + l) pixels in macroblock in Reference frame.

The goal of the search is to nd a vector (i, j) as the motion vector MV = (u, v), such that M AD(i, j) is minimum:
(u, v) = [ (i, j) | M AD(i, j) is minimum, i [p, p], j [p, p] ] (10.2)

w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Sequential Search
Sequential search: sequentially search the whole (2p + 1) (2p + 1) window in the Reference frame (also referred to as Full search). a macroblock centered at each of the positions within the window is compared to the macroblock in the Target frame pixel by pixel and their respective M AD is then derived using Eq. (10.1). The vector (i, j) that oers the least M AD is designated as the MV (u, v) for the macroblock in the Target frame. sequential search method is very costly assuming each pixel comparison requires three operations (subtraction, absolute value, addition), the cost for obtaining a motion vector for a single macroblock is (2p+1)(2p+1)N 2 3 O(p2N 2).
w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

PROCEDURE 10.1 Motion-vector:sequential-search


begin min M AD = LARGE N U M BER; for i = p to p for j = p to p /* Initialization */

{
cur M AD = M AD(i, j); if cur M AD < min M AD

{
min M AD = cur M AD; u = i; v = j; /* Get the coordinates for MV. */

} }
end

w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

2D Logarithmic Search
Logarithmic search: a cheaper version, that is suboptimal but still usually eective. The procedure for 2D Logarithmic Search of motion vectors takes several iterations and is akin to a binary search: As illustrated in Fig.10.2, initially only nine locations in the search window are used as seeds for a MAD-based search; they are marked as 1. After the one that yields the minimum M AD is located, the center of the new search region is moved to it and the step-size (oset) is reduced to half. In the next iteration, the nine new locations are marked as 2, and so on. 9
Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

(x0 p, y0 p)
2 2

3 3 3 1 2 1 2

3 2 3

3 3 3 1

(x0 + p, y0 p)

MV
1

(x0, y0)

p/2

(x0 p, y0 + p)

(x0 + p, y0 + p)

Fig. 10.2: 2D Logarithmic Search for Motion Vectors.

w w.jntuworld.com

10

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

PROCEDURE 10.2 Motion-vector:2D-logarithmic-search


begin oset =
p 2

Specify nine macroblocks within the search window in the Reference frame, they are centered at (x0, y0) and separated by oset horizontally and/or vertically; while last = TRUE

{
Find one of the nine specied macroblocks that yields minimum M AD; if oset = 1 then last = TRUE; oset = oset/2 ; Form a search region with the new oset and new center found;

}
end

w w.jntuworld.com

11

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Using the same example as in the previous subsection, the total operations per second is dropped to:

OP S per second = (8 ( log2 p + 1) + 1) N 2 3 = (8 log2 15 + 9) 162 3 1.25 109

720 480 30 NN 720 480 30 16 16

w w.jntuworld.com

12

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Hierarchical Search
The search can benet from a hierarchical (multiresolution) approach in which initial estimation of the motion vector can be obtained from images with a signicantly reduced resolution. Figure 10.3: a three-level hierarchical search in which the original image is at Level 0, images at Levels 1 and 2 are obtained by down-sampling from the previous levels by a factor of 2, and the initial search is conducted at Level 2. Since the size of the macroblock is smaller and p can also be proportionally reduced, the number of operations required is greatly reduced.

w w.jntuworld.com

13

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Motion Vectors

Level 0

Motion Estimation

Downsample by a factor of 2

Level 1

Motion Estimation

Downsample by a factor of 2 Level 2 Motion Estimation

Fig. 10.3: A Three-level Hierarchical Search for Motion Vectors. 14


Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

Hierarchical Search (Contd)


Given the estimated motion vector (uk, vk) at Level k, a 3 3 neighborhood centered at (2 uk, 2 vk) at Level k 1 is searched for the rened motion vector. the renement is such that at Level k 1 the motion vector (uk1, vk1) satises: (2uk 1 uk1 2uk + 1, 2vk 1 vk1 2vk + 1)

Let (x0, k y0)kdenote the center of the macroblock at Level k in the Target frame. The procedure for hierarchical motion
0 the vector search for the macroblock centered at (x0, y0) in Target frame can be outlined as follows:

w w.jntuworld.com

15

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

PROCEDURE 10.3 Motion-vector:hierarchical-search


begin // Get macroblock center position at the lowest resolution Level k
0 k = x0/2k; k = y0 x0 y0 /2k; Use Sequential (or 2D Logarithmic) search method to get initial estimated

MV(uk, vk) at Level k;


while last = TRUE

{
Find one of the nine macroblocks that yields minimum M AD at Level k 1 centered at
k x 2(x0 + uk) + 1, 2(y0 k (2(x0k + uk) 1 + vk) 1 y 2(y0 k+ vk) + 1); then last = TRUE; if k = 1

k = k 1; Assign (x0k , y0k ) and (uk, vk) with the new center location and MV;

}
end

w w.jntuworld.com

16

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Table 10.1 Comparison of Computational Cost of Motion Vector Search based on examples
Search Method OP S per second for 720 480 at 30 fps p = 15 Sequential search 2D Logarithmic search 3-level Hierarchical search 29.89 109 1.25 109 0.51 109 p =7 7.00 109 0.78 109 0.40 109

w w.jntuworld.com

17

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

10.4 H.261
H.261: An earlier digital video compression standard, its principle of MC-based compression is retained in all later video compression standards. The standard was designed for videophone, video conferencing and other audiovisual services over ISDN. The video codec supports bit-rates of p 64 kbps, where p ranges from 1 to 30 (Hence also known as p 64). Require that the delay of the video encoder be less than 150 msec so that the video can be used for real-time bidirectional video conferencing.

w w.jntuworld.com

18

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

ITU Recommendations & H.261 Video Formats


H.261 belongs to the following set of ITU recommendations for visual telephony systems: 1. H.221 Frame structure for an audiovisual channel supporting 64 to 1,920 kbps. 2. H.230 Frame control signals for audiovisual systems. 3. H.242 Audiovisual communication protocols. 4. H.261 Video encoder/decoder for audiovisual services at p 64 kbps. 5. H.320 Narrow-band audiovisual terminal equipment for p 64 kbps transmission.

w w.jntuworld.com

19

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Table 10.2 Video Formats Supported by H.261

Video format

Luminance image resolution

Chrominance image resolution 88 72 176 144

Bit-rate (Mbps) (if 30 fps and uncompressed ) 9.1 36.5

H.261 support

QCIF CIF

176 144 352 288

required optional

w w.jntuworld.com

20

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Fig. 10.4: H.261 Frame Sequence.

w w.jntuworld.com

21

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

H.261 Frame Sequence


Two types of image frames are dened: Intra-frames (I-frames) and Inter-frames (P-frames):
I-frames are treated as independent images. Transform coding method similar to JPEG is applied within each I-frame, hence Intra. P-frames are not independent: coded by a forward predictive coding method (prediction from a previous P-frame is allowed not just from a previous I-frame). Temporal redundancy removal is included in P-frame coding, whereas I-frame coding performs only spatial redundancy removal. To avoid propagation of coding errors, an I-frame is usually sent a couple of times in each second of the video.

Motion vectors in H.261 are always measured in units of full pixel and they have a limited range of 15 pixels, i.e., p = 15. 22
Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

Intra-frame (I-frame) Coding


For each macroblock For each
8 8 block

Cb Y Cr

I frame

DCT Quantization Entropy coding

1010010

Fig. 10.5: I-frame Coding.


Macroblocks are of size 16 16 pixels for the Y frame, and 8 8 for Cb and Cr frames, since 4:2:0 chroma subsampling is employed. A macroblock consists of four Y, one Cb, and one Cr 8 8 blocks. For each 8 8 block a DCT transform is applied, the DCT coecients then go through quantization zigzag scan and entropy coding.

w w.jntuworld.com

23

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Inter-frame (P-frame) Predictive Coding


Figure 10.6 shows the H.261 P-frame coding scheme based on motion compensation: For each macroblock in the Target frame, a motion vector is allocated by one of the search methods discussed earlier. After the prediction, a dierence macroblock is derived to measure the prediction error. Each of these 8 8 blocks go through DCT, quantization, zigzag scan and entropy coding procedures.

w w.jntuworld.com

24

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

The P-frame coding encodes the dierence macroblock (not the Target macroblock itself). Sometimes, a good match cannot be found, i.e., the prediction error exceeds a certain acceptable level. The MB itself is then encoded (treated as an Intra MB) and in this case it is termed a non-motion compensated MB. For motion vector, the dierence MVD is sent for entropy coding:

MVD = MVPreceding MVCurrent

(10.3)

w w.jntuworld.com

25

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Target frame

16 16 Reference frame

Current macroblock

Difference macroblock

Y
Best match

Cb Cr

For each 8 8 block DCT Quantization Entropy coding

Motion vector

0110010 Fig. 10.6: H.261 P-frame Coding Based on Motion Compensation.

w w.jntuworld.com

26

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Quantization in H.261
The quantization in H.261 uses a constant step size, for all DCT coecients within a macroblock. If we use DCT and QDCT to denote the DCT coecients before and after the quantization, then for DC coecients in Intra mode: QDCT = round DCT step size = round DCT 8 (10.4)

for all other coecients:

QDCT =

DCT = step size

DCT 2 scale

(10.5)

scale an integer in the range of [1, 31].


w w.jntuworld.com

27

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

H.261 Encoder and Decoder


Fig. 10.7 shows a relatively complete picture of how the H.261 encoder and decoder work. A scenario is used where frames I, P1, and P2 are encoded and then decoded. Note: decoded frames (not the original frames) are used as reference frames in motion estimation. The data that goes through the observation points indicated by the circled numbers are summarized in Tables 10.3 and 10.4.

w w.jntuworld.com

28

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Intraframe Current Frame 1

Quantization Control DCT

3 Interframe

VLE

Output Buffer

Output Code

Q1

IDCT Intraframe

0
Interframe Prediction 2

+
6 Frame Memory Motion vector

MCbased Prediction

Motion Estimation

(a) Encoder

Fig. 10.7: H.261 Encoder and Decoder.

w w.jntuworld.com

29

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Quantization Control VLE Input Buffer Input Code

Q1

IDCT Intraframe

0
Interframe Prediction 2 MCbased Prediction

+
4 Frame Memory Motion vector

Decoded Frame

(b) Decoder

Fig. 10.7 (Contd): H.261 Encoder and Decoder.

w w.jntuworld.com

30

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Table 10.3: Data Flow at the Observation Points in H.261 Encoder

Current Frame I P1 P2

Observation Point 1 2 3 4 5 I P1 P2 P1 P2 D1 D2 I 1 D 2 D 0 P1 P2

6 I P 1 P 2

Table 10.4: Data Flow at the Observation Points in H.261 Decoder

Current Frame Observation Point 1 2 3 4 I P1 P2 I 1 D 2 D 31 P1 P2 0 P1 P2 I P 1 P 2

w w.jntuworld.com

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

A Glance at Syntax of H.261 Video Bitstream


Fig. 10.8 shows the syntax of H.261 video bitstream: a hierarchy of four layers: Picture, Group of Blocks (GOB), Macroblock, and Block. 1. The Picture layer: PSC (Picture Start Code) delineates boundaries between pictures. TR (Temporal Reference) provides a time-stamp for the picture. 2. The GOB layer: H.261 pictures are divided into regions of 11 3 macroblocks, each of which is called a Group of Blocks (GOB).
Fig. 10.9 depicts the arrangement of GOBs in a CIF or QCIF luminance image. For instance, the CIF image has 2 6 GOBs, corresponding to its image resolution of 352 288 pixels. Each GOB has its Start Code (GBSC) and Group number (GN).
w w.jntuworld.com

32

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

In case a network error causes a bit error or the loss of some bits, H.261 video can be recovered and resynchronized at the next identiable GOB. GQuant indicates the Quantizer to be used in the GOB unless it is overridden by any subsequent MQuant (Quantizer for Macroblock). GQuant and MQuant are referred to as scale in Eq. (10.5).

3. The Macroblock layer: Each Macroblock (MB) has its own Address indicating its position within the GOB, Quantizer (MQuant), and six 8 8 image blocks (4 Y, 1 Cb, 1 Cr). 4. The Block layer: For each 8 8 block, the bitstream starts with DC value, followed by pairs of length of zerorun (Run) and the subsequent non-zero value (Level) for ACs, and nally the End of Block (EOB) code. The range of Run is [0, 63]. Level reects quantized values its range is [127, 127] and Level = 0. 33
Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

H.261 Picture Frame

PSC

TR

PType

GOB

GOB

GOB

picture layer GOB layer

GBSC

GN

GQuant

MB

MB

Address

Type

MQuant

MVD

CBP

b0

b1

b5

macroblock layer

DC

(Run, Level)

(Run, Level)

EOB

block layer

PSC: PType: GBSC: GQuant: MQuant: CBP:

Picture Start Code Picture Type GOB Start Code GOB Quantizer MB Quantizer Coded Block Pattern

TR: GOB: GN: MB: MVD: EOB:

Temporal Reference Group of Blocks Group Number Macro Block Motion Vector Data End of Block

Fig. 10.8: Syntax of H.261 Video Bitstream. 34


Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

GOB 0 GOB 2 GOB 4 GOB 6 GOB 8 GOB 10 CIF

GOB 1 GOB 3 GOB 5 GOB 7 GOB 9 GOB 11

GOB 0 GOB 1 GOB 2 QCIF

Fig. 10.9: Arrangement of GOBs in H.261 Luminance Images.

w w.jntuworld.com

35

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

10.5 H.263
H.263 is an improved video coding standard for video conferencing and other audiovisual services transmitted on Public Switched Telephone Networks (PSTN). Aims at low bit-rate communications at bit-rates of less than 64 kbps. Uses predictive coding for inter-frames to reduce temporal redundancy and transform coding for the remaining signal to reduce spatial redundancy (for both Intra-frames and inter-frame prediction).

w w.jntuworld.com

36

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Table 10.5 Video Formats Supported by H.263


Video format Luminance image resolution sub-QCIF QCIF CIF 4CIF 16CIF 128 96 176 144 352 288 704 576 1, 408 1, 152 Chrominance image resolution 64 48 88 72 176 144 352 288 704 576 Bit-rate (Mbps) (if 30 fps and uncompressed) 4.4 9.1 36.5 146.0 583.9 Bit-rate (kbps) BPPmaxKb (compressed) 64 64 256 512 1024

w w.jntuworld.com

37

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

H.263 & Group of Blocks (GOB)


As in H.261, H.263 standard also supports the notion of Group of Blocks (GOB). The dierence is that GOBs in H.263 do not have a xed size, and they always start and end at the left and right borders of the picture. As shown in Fig. 10.10, each QCIF luminance image consists of 9 GOBs and each GOB has 11 1 MBs (176 16 pixels), whereas each 4CIF luminance image consists of 18 GOBs and each GOB has 44 2 MBs (704 32 pixels).

w w.jntuworld.com

38

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

GOB 0 GOB 1 GOB 2 GOB 3 GOB 4 GOB 5 Sub-QCIF GOB 0 GOB 1 GOB 2 GOB 3 GOB 4 GOB 5 GOB 6 GOB 7 GOB 8 QCIF

GOB 0 GOB 1 GOB 2 GOB 3 GOB 4 GOB 5

GOB 15 GOB 16 GOB 17

CIF, 4CIF, and 16CIF

Fig. 10.10 Arrangement of GOBs in H.263 Luminance Images.

w w.jntuworld.com

39

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Motion Compensation in H.263


The horizontal and vertical components of the MV are predicted from the median values of the horizontal and vertical components, respectively, of MV1, MV2, MV3 from the previous, above and above and right MBs (see Fig. 10.11 (a)). For the Macroblock with MV(u, v): up = median(u1, u2, u3), vp = median(v1, v2, v3). (10.6)

Instead of coding the MV(u, v) itself, the error vector (u, v) is coded, where u = u up and v = v vp.

w w.jntuworld.com

40

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

MV2 MV3 MV1 MV

MV MV1 MV2 MV3 (a)

Current motion vector Previous motion vector Above motion vector Above and right motion vector

MV2 MV3 (0, 0) MV

MV1 MV1 MV1 MV

MV2 (0, 0) MV1 MV

Border (b)

Fig. 10.11 Prediction of Motion Vector in H.263. 41


Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

Half-Pixel Precision
In order to reduce the prediction error, half-pixel precision is supported in H.263 vs. full-pixel precision only in H.261. The default range for both the horizontal and vertical components u and v of MV(u, v) are now [16, 15.5]. The pixel values needed at half-pixel positions are generated by a simple bilinear interpolation method, as shown in Fig. 10.12.

w w.jntuworld.com

42

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

A a b

Full-pixel position Half-pixel position a=A b = (A + B + 1) / 2 c = (A + C + 1) / 2 d = (A + B + C + D + 2) / 4

C Fig. 10.12: H.263.

Half-pixel Prediction by Bilinear Interpolation in

w w.jntuworld.com

43

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

Optional H.263 Coding Modes


H.263 species many negotiable coding options in its various Annexes. Four of the common options are as follows: 1. Unrestricted motion vector mode: The pixels referenced are no longer restricted to be within the boundary of the image. When the motion vector points outside the image boundary, the value of the boundary pixel that is geometrically closest to the referenced pixel is used. The maximum range of motion vectors is [-31.5, 31.5].

w w.jntuworld.com

44

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

2. Syntax-based arithmetic coding mode: As in H.261, variable length coding (VLC) is used in H.263 as a default coding method for the DCT coecients. Similar to H.261, the syntax of H.263 is also structured as a hierarchy of four layers. Each layer is coded using a combination of xed length code and variable length code. 3. Advanced prediction mode: In this mode, the macroblock size for MC is reduced from 16 to 8. Four motion vectors (from each of the 8 8 blocks) are generated for each macroblock in the luminance image. 45
Li & Drew c Prentice Hall 2003

w w.jntuworld.com

Fundamentals of Multimedia, Chapter 10

4. PB-frames mode: In H.263, a PB-frame consists of two pictures being coded as one unit, as shown Fig. 10.13. The use of the PB-frames mode is indicated in PTYPE. The PB-frames mode yields satisfactory results for videos with moderate motions. Under large motions, PB-frames do not compress as well as B-frames and an improved new mode has been developed in Version 2 of H.263.

w w.jntuworld.com

46

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

PB-frame

I or P

Fig. 10.13: A PB-frame in H.263.

w w.jntuworld.com

47

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

H.263+ and H.263++


The aim of H.263+: broaden the potential applications and oer additional exibility in terms of custom source formats, dierent pixel aspect ratio and clock frequencies. H.263+ provides 12 new negotiable modes in addition to the four optional modes in H.263. It uses Reversible Variable Length Coding (RVLC) to encode the dierence motion vectors. A slice structure is used to replace GOB to oer additional exibility.

w w.jntuworld.com

48

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

H.263+ implements Temporal, SNR, and Spatial scalabilities. Support of Improved PB-frames mode in which the two motion vectors of the B-frame do not have to be derived from the forward motion vector of the P-frame as in Version 1. H.263+ includes deblocking lters in the coding loop to reduce blocking eects.

w w.jntuworld.com

49

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

H.263++ includes the baseline coding methods of H.263 and additional recommendations for Enhanced Reference Picture Selection (ERPS), Data Partition Slice (DPS), and Additional Supplemental Enhancement Information. The ERPS mode operates by managing a multi-frame buer for stored frames enhances coding eciency and error resilience capabilities. The DPS mode provides additional enhancement to error resilience by separating header and motion vector data from DCT coecient data in the bitstream and protects the motion vector data by using a reversible code.

w w.jntuworld.com

50

Li & Drew c Prentice Hall 2003

Fundamentals of Multimedia, Chapter 10

10.6 Further Exploration


Text books:
A Java H.263 decoder by A.M. Tekalp Digital Video and HDTV Algorithms and Interfaces by C.A. Poynton Image and Video Compression Standards by V. Bhaskaran and K. Konstantinides Video Coding: An introduction to standard codecs by M. Ghanbari Video processing and communications by Y. Wang et al. Web sites: ing: Link to Further Exploration for Chapter 10.. includ-

Tutorials and White Papers on H.261 and H263 H.261 and H.263 software implementations An H263/H263+ library A Java H.263 decoder

w w.jntuworld.com

51

Li & Drew c Prentice Hall 2003

You might also like