MXPA98001809A - Estimation and compensation of the movement of planes of the video object for digital video entrelaz - Google Patents

Estimation and compensation of the movement of planes of the video object for digital video entrelaz

Info

Publication number
MXPA98001809A
MXPA98001809A MXPA/A/1998/001809A MX9801809A MXPA98001809A MX PA98001809 A MXPA98001809 A MX PA98001809A MX 9801809 A MX9801809 A MX 9801809A MX PA98001809 A MXPA98001809 A MX PA98001809A
Authority
MX
Mexico
Prior art keywords
motion vector
field
macroblock
candidate
horizontal
Prior art date
Application number
MXPA/A/1998/001809A
Other languages
Spanish (es)
Inventor
Chen Xuemin
O Eifrig Robert
Luthra Ajay
Original Assignee
General Instrument Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Instrument Corporation filed Critical General Instrument Corporation
Publication of MXPA98001809A publication Critical patent/MXPA98001809A/en

Links

Abstract

The present invention relates to a motion estimation and compensation technique for interlaced digital video, for example for video object planes (VOPs). The predictive motion vectors that are used in the differential coding of a current macroblock with field coding (700) are obtained by using the mean of the motion vectors (MV1, MV2, MV3) of the blocks or macroblocks (712, 722, 732) surrounding. When a macroblock (820) is itself encoded with interleaving, an average motion vector is used for said macroblock and the values of the fractional pixels are correlated with the pixel half, when the current block (912) is not encoded with interleaving but a block surrounding (820) if it is, the field movement vectors can be used individually or averaged. In a technique of repetitive filling for even VOP encoded with interlacing (1,010), the even lines (0, 2 ..., 14) and the odd lines (1, 3, ..., 15) of the VOP and the surrounding block (1,000). Within each field (1,210, 1,220), the outer pixels (1,6) are filled in by adjusting them to the nearest pixel limit value (0,6) or with an average of two limit pixels (0,6; 1,7) . The lines are then rounded to provide a single VOP image filled with reference

Description

ESTIMATION AND COMPENSATION OF THE MOVEMENT OF PLANES í OF THE OBJECT OF VIDEO FOR DIGITAL VIDEO ENTRELAZADO FIELD OF THE INVENTION The present invention relates to a method and apparatus for encoding digital video images such as video object plans (VOPs), and, in particular, to the techniques of motion estimation and compensation for digital video interlaced. A filler technique is also presented to extend the area of a coded and interleaved reference VOP.
BACKGROUND OF THE INVENTION The invention is particularly suitable for used with various multimedia applications and is compatible with the standard MPEG-4 Verification Model (VM) described in document ISO / IEC / JTC1 / SC29 / WG11 N1642, entitled "MPEG-4 Video Verification Model Version 7.0", April 1997, incorporated herein by reference.
The MPEG-2 standard is a precursor to the MPEG-4 standard and is described in ISO / IEC 13818-2, entitled "Information Technology - Generic Codig of Moving Pictures and Associated Audio, Recopunendation H.262," of 25 March 1994, incorporated herein by reference. 25 The MPEG-4 is a new coding standard that P1134 / 98 MX provides a flexible framework and an open set of coding tools for the communication, access and manipulation of digital audiovisual data. These tools support a wide range of features. The flexible MPEG-4 framework supports various combinations of coding tools and their corresponding functionalities for the applications required by the computer, telecommunications and entertainment industries (ie, TV and "" or cinema), such as database navigation, information retrieval, and interactive communications, MPEG-4 provides standardized or standardized core technologies that allow the efficient storage, transmission and manipulation of video data in multimedia environments. , MPEG-4 achieves efficient compression, scalability of the object and X. spatial and temporal scalability and the resilience of error. 20 The MPEG-4 video encoder / codec (VM) is a hybrid encoder based on block and object, with motion compensation. The texture is encoded with a discrete cosine transformation (DCT) of 8x8 using block motion compensation overlapped. The shapes of the object are represented as P1134 / 98 MX alpha and encoded maps using a content-based arithmetic coding algorithm (CAE) or a modified DCT encoder, using both the temporal prediction. The encoder can handle moving objects or sprites as they are known in the area of computer graphics. Other coding methods, such as wave train coding and moving objects, can also be used for special applications. The encoding of the compensated motion texture is a well-known approach to video coding and can be modeled as a three-stage process. The first stage is signal processing that includes estimation and motion compensation (ME / MC) and a spatial transformation of two dimensions (2-D). The objective of the ME / MC and the spatial transformation is to take advantage of the temporal and spatial correlations in a video sequence to optimize the speed-distortion performance of the quantization and entropy coding with a complexity constraint. The most common technique for ME / MC has been the coincidence or pairing of blocks and the most common spatial transformation has been DCT. However, special aspects arise for the ME / MC of the VOPs, particularly when the VOP itself is P1134 / 98 MX encoded with interlaced and / or used images of * - reference that are encoded with interlace. In addition, for arbitrarily shaped VOPs that are encoded with interleaving, special attention should be paid to the area of the reference image used for motion prediction. In accordance with the above, it would be desirable to have an efficient technique for ME / MC coding of a VOP, which is encoded with interleaving and / or use ^ 6 J reference images that are encoded with interlacing. The technique should provide the differential coding of the motion vectors of a block or macroblock of the VOP using vectors of movement of blocks or neighboring macroblocks. The corresponding decoder. It would be further desirable to have an efficient technique for filling the area of a reference image for the encoding of interleaved VOPs. The present invention provides a system having the above advantages as well as other advantages.
SUMMARY OF THE INVENTION In accordance with the present invention, a method and apparatus for coding motion estimation and motion compensation are presented. of a plane of the video object (VOP) or an image of P1134 / 98 MX • similar video that is itself encoded with interleaving and / or uses reference images that are encoded with interlacing. A first method provides the horizontal and vertical components of the motion vector, for use in differentially encoding the respective horizontal and vertical components of the motion vector of the first and second fields of a macroblock with ordinary field coding of a Ufe digital video image. The first, second and third candidate blocks near the current macroblock have horizontal and vertical components of the associated motion vector, which can be used to predict the motion vectors of the current macroblock. He The first block immediately precedes the current macroblock of a current row, the second block is immediately above the current macroblock in a preceding row, and r the third block immediately follows the second block in the preceding row. In this way, the candidate blocks are in a spatial neighborhood with respect to the current macroblock. A horizontal component of the motion vector is selected to be used to differentially encode the horizontal components of the motion vector of the first and second fields of the current macroblock with P1134 / 98 MX field coding according to the median of the * - horizontal components of the movement vector of the first, second and third candidate blocks. Alternatively, an average or some other weighted function may be used. In a similar way, a vertical component of the motion vector is determined. When one of the candidate blocks is a subset of a macroblock, the block that is closest to the upper left portion of the macroblock ^ ÜPo current is used as the candidate block of that particular macroblock. For example, the candidate block can be an 8x8 block in a 16x16 macroblock. A second method provides the horizontal and vertical components of the motion vector for use it to differentially encode the horizontal and vertical components of the motion vector, respectively, of a current block predicted in progressive form or one predicted ahead of a digital video image. A block predicted in form progressive can be used as a macroblock of 16x16. A block with advanced prediction uses a combination of 8x8 motion compensation and overlapped block motion compensation. In any case, the current block is not coded with interlaced.
P1134 / 98 MX The first, second and third candidate blocks # - they have associated horizontal and vertical components of the movement vector. If, at least one of the candidate blocks is a macroblock candidates with field coding having first and second fields, then the first and second fields each have the corresponding horizontal and vertical components of the motion vector. A horizontal component of the motion vector is selected to be used in the differential encoding of the horizontal component of the motion vector of the current block in accordance with a value derived from the horizontal components of the motion vector of the candidate blocks first, second and third. In particular, the selected horizontal component of the motion vector can be determined in accordance with the median of the horizontal components of the motion vector of the candidate blocks, including the corresponding components horizontals of the movement vector of the first and second fields of at least one macroblock candidates with field coding. Alternatively, the respective horizontal components of the first candidate movement vector and second field of at least one macroblock with P1134 / 9S MX Field coding can be averaged to obtain F ~ at least one corresponding horizontal component averaged from the motion vector. The selected horizontal component of the motion vector is then determined as a standard with the mean of the horizontal components of the motion vector of the candidate blocks different from the at least one candidate macroblock with field coding, if any, and the at least one corresponding horizontal component averaged from the motion vector. For example, if the three candidate acroblocks have field prediction or are predicted field (ie, interlaced with the horizontal components of the motion vector of the first and second fields of each macroblock candidates are averaged to obtain three horizontal components averaged from the motion vector. The selected horizontal component of the motion vector, to differentially encode the horizontal component of the motion vector of the block current, is then the median of the three averaged components of the motion vector. In a similar way, a vertical component of the motion vector is selected. When the motion vectors of the first and second field of the at least one macroblock candidates with field coding are averaged, all P1134 / 98 MX the fractional pixel mismatches correlate with # - a half pixel offset to provide a better prediction. In a third method, the current macroblock has predicted field or field predicted and at least one of the candidate blocks is a macroblock with coded field or field coding. The selected horizontal component of the motion vector to be used in the differential coding of the component The horizontal vector of the movement vector of the first field of the current macroblock is determined in accordance with a value derived from (i) the horizontal components of the motion vector of the candidate blocks other than the at least one candidate macroblock with field coding, if there are any and, (ii) the horizontal components of the movement vector of the first field of the at least f a candidate macroblock with field coding. For example, the median can be used. In this way, only the first field of the macroblock or 20 candidate macroblocks of predicted field is used. Alternatively, only the second field of the macroblock or candidate macroblocks with field prediction can be used to predict the second field of the current macroblock. 25 In another alternative, the respective components P1134 / 98 MX horizontals of the motion vector, the first and second field of the at least one candidate macroblock with field coding, are averaged to obtain at least one corresponding horizontal component averaged from the motion vector. The horizontal component, selected from the motion vector to be used in the differential coding of the horizontal components of the motion vector of at least one of the first and second fields of the current macroblock, is determined in accordance with the median of (i) the horizontal movement vectors of the candidate blocks different from the at least one candidate coded field macroblock, if any, and, (ii) the at least one corresponding horizontal component averaged from the movement vector. In a similar way, a vertical component of the motion vector is selected. When the horizontal components of the movement vector of the first and second field of the at least one candidate macroblock with field coding are averaged, all fractional pixel mismatches correlate with a half pixel shift. A corresponding method and decoder apparatus is also presented. Also presented is a method and apparatus for filling a digital video image that includes a VOP of P1134 / 98 MX coded field comprising upper and lower field pixel lines interleaved to provide a filled reference VOP. By filling in the VOP, the image area is extended. The VOP is transported, at least in part, in a region that includes pixels that are outside the boundary pixels of the VOP. The pixel lines of the upper and lower field are rearranged from the interleaved order to provide an upper field block comprising the upper field pixel lines and a lower field block ß pß comprising the lower field pixel lines. The outer pixels are filled in separately within the respective upper and lower field blocks. After the pixels have been filled , the upper and lower field pixel lines comprising the filled outer pixels are reordered to the interleaved order to provide the filled reference image. During filling, when a particular pixel of the outer pixels is located between two of the boundary pixels of the VOP in the corresponding upper or lower field block, the outer pixel is assigned a value of compliance with the average of the two boundary pixels. When a particular pixel of the pixels outside is located between one of the boundary pixels of the P1134 / 98 MX VOP and one edge or end of the region in the corresponding field block, but not between two boundary pixels of the VOP in the corresponding field block, the outer pixel is assigned a value of conformity with one of the boundary pixels. The term "between" means limited by internal pixels along a line of horizontal or vertical pixel grid. For example, the region can be a macroblock of 16x16. When a particular exterior pixel is located * k 'between two edges of the region in the corresponding field block, but not between a boundary pixel of the VOP and one edge of the region and not between two of the boundary pixels of the VOP, the particular outer pixel is assigned a value in accordance with at least one of: (a) an exterior pixel padding that is closer to the particular outer pixel that moves horizontally in the region; and, (b) a filled outer pixel that is closer to the particular outer pixel that moves vertically in the region. For example, when the filled outer pixels are When the horizontal pixel is available moving both horizontally and vertically from the particular outer pixel in the region, the average can be used.
BRIEF DESCRIPTION OF THE DRAWINGS 25 Figure 1 is an illustration of a process of P1134 / 98 MX < P- encoding and decoding of the video object plane (VOP) in accordance with the present invention. Figure 2 is a block diagram of an encoder in accordance with the present invention. Figure 3 illustrates an interpolation scheme for a half pixel search. Figure 4 illustrates a scheme for estimating motion with a restricted motion vector in accordance with the present invention. & Figure 5 illustrates a scheme for estimating motion with an unrestricted motion vector in accordance with the present invention. Figure 6 illustrates the reordering of pixel lines in an adaptive frame / prediction scheme field in accordance with the present invention. Figure 7 illustrates a macroblock in current field mode with block in neighboring frame mode having predictors associated with the candidate motion vector in accordance with the present invention. Figure 8 illustrates a current field mode macroblock with neighboring frame mode blocks having associated candidate predictors of associated motion vector, in accordance with the present invention. Figure 9 illustrates a block in mode current advanced prediction with frame mode blocks P1134 / 98 MX neighbors and the macroblock in field mode have associated the predictors of the candidate motion vector according to the present invention. Figure 10 illustrates the filling of the macroblock-based VOP for the prediction of movement in accordance with the present invention. Figure 11 illustrates repetitive replenishment within a macroblock for motion prediction in accordance with the present invention. Figure 12 illustrates the repetitive replenishment within a macroblock for the prediction of movement after the grouping of the pixel lines of the same field in accordance with the present invention. Figure 13 is a block diagram of a decoder in accordance with the present invention. Figure 14 illustrates a layer structure of the macroblock in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION A method and an apparatus for the ME / MC coding of a VOP which itself is encoded with interleaving and / or uses reference images that are encoded with interleaving and, to fill the area of an image are presented. reference to encode the interleaved VOPs.
P1134 / 98 MX Figure 1 is an illustration of a process of coding and decoding a plane of the video object (VOP) in accordance with the present invention. The frame 105 includes three image elements, including a square front element 107, an oblong front element 108 and a bottom landscape element 109. In the frame 115, the elements are designated VOP using a segmentation mask in such a way that the VOP 117 represents the square front element 107, the VOP 118 * á represents the forward oblong element 108 and the VOP 119 represents the background landscape element 109. A VOP can have an arbitrary shape and a succession of VOPs is known as a video object. A full rectangular video frame can also be considered as a VOP. Thus, the term "VOP" will be used herein to indicate both arbitrary and non-arbitrary (for example, rectangular) image area forms. You get a segmentation mask using known techniques and, it has a format similar to that of the ITU-R 601 luminance data. It is identified that each pixel belongs to a certain region of the video frame. Table 105 and the VOP data in Table 115 are supplied to separate coding functions. In In particular, the VOPs 117, 118 and 119 are submitted to the P1134 / 98 MX shape, motion and texture coding in the encoders 137, 138 and 139. With the shape coding, binary information and gray scale form are encoded. With motion coding, shape information is encoded using motion estimation within a frame. With texture coding, a spatial transformation such as DCT can be performed to obtain transformation coefficients that can have variable length coding for compression. The encoded VOP data is then combined in a multiplexer (MUX) 140 for transmission on a channel 145. Alternatively, the data may be stored in a recording medium. The received coded VOP data is separated by a demultiplexer (DEMUX) 150, so that the separate VOPs 117-119 are decoded and retrieved. Tables 155, 165 and 175 show that the VOPs 117, 118 and 119, respectively, have been decoded and recovered and, therefore, can be individually manipulated using a compositor 160 that interconnects with a library of videos 170, for example . The compositor can be a device such as a personal computer that is located in the user's place to allow the user to avoid the received data to provide a personalized image.
P1134 / 98 MX J- ~ For example, the user's personal video library 170 may include a previously stored VOP 178 (e.g., a circle) that is different from the received VOPs. The user can compose a table 185, at 5 where the circular VOP 178 replaces the square VOP 117. The table 185 thus includes the VOPs 118 and 119 received and the VOP 178 stored locally. In another example, the background VOP 109 may be replaced by a background of the user's selection. For example, when watching a news broadcast on television, the driver can be coded as a VOP that is separated from the background, such as in a news studio. The user can select a background from library 170 or from another television program, such as it can be a channel with information about stock or climate quotes. Therefore, the user can act as a video editor. The video library 170 can also store VOPs that are received via channel 145 and, can access VOPs and other image elements through a network such as the Internet. Generally, a video assignment comprises a single VOP or a sequence of VOPs. The process of encoding and decoding the video object of Figure 1 allows many applications P1134 / 98 MX JÉ recreational or entertainment, commercial and educational, including games on personal computers, virtual environments, graphical user interfaces, videoconferences, internet applications and 5 similar ones. In particular, the capacity for the ME / MC with VOPs encoded with interleaving (e.g., in field mode) in accordance with the present invention, provides even greater capabilities. Figure 2 is a block diagram of a ^ m encoder in accordance with the present invention. The encoder is suitable for use with both predictive coding VOPs (P-VOPs) and bidirectionally encoded or bi-directionally encoded VOPs (B-VOPs). The P-VOPs may include several macroblocks that can be individually encoded using an intraframe mode in an interframe fashion. With intraframe coding (INTRA) the macroblock is encoded without reference to another macroblock. With the coding In the inter-frame (ÍNTER), the macroblock is differentially encoded with respect to a temporally subsequent frame in a mode known as forward prediction. The temporarily subsequent table is known as an anchor box or reference frame. The anchor box (for For example, a VOP) must be a P-VOP, not a B-VOP.
P1134 / 98 MX J - With forward prediction, the current macroblock is compared to a macroblock search area in the anchor box to determine the best match. A corresponding movement vector describes the relative displacement of the current macroblock with respect to the best match macroblock. Additionally, an advanced prediction mode P-VOPs can be used, where the movement compensation is done in blocks of 8x8 instead of macroblocks of 16x16. In addition, both P-VOP macroblocks encoded both intraframe and interframe can be encoded in a frame mode or in a field mode. The B-VOPs can use the forward prediction mode as described above in connection with P-VOPs, as well as backward prediction, bidirectional prediction and direct mode, all of which are inter-frame techniques. B-VOPs do not normally use macroblocks with intraframe coding under Version 7.0 of the MPEG-4 video verification model previously mentioned, although this is subject to change. The anchor box (for example, a VOP) must be a P-VOP, not a B-VOP. With the backward prediction of the B-VOPs, the current macroblock is compared to a search area of macroblocks in an anchor box temporarily prior to P1134 / 98 MX - Í ~ determine the best match. A corresponding motion vector describes the relative displacement of the current macroblock with respect to the best match macroblock. With the bidirectional prediction of B-VOPs, 5 of the current macroblock is compared to a macroblock search area in both a prior temporal anchor box and a subsequent temporal anchor box to determine the best match. The forward and backward motion vectors describe the JL? 6 relative displacement of the current macroblock with respect to the best match macroblocks. With the direct mode prediction of the B-VOPs, a motion vector is derived for an 8x8 block when the macroblock placed in the next P-VOP uses the advanced 8x8 prediction mode. The motion vector of the 8x8 block in the P-VOP is linearly scaled to derive a motion vector for the. block in the B-VOP without having to search to find a block of better match. 20 The encoder, shown generally in 200, includes a shape encoder 210, a motion estimation function 220, a motion compensation function 230 and a texture encoder 240 which each receive the pixel data input of video in terminal 205. The estimate function 220 P1134 / 98 MX - ^ - of movement, the motion compensation function 230, the texture encoder 240 and the shape encoder 210 also receive the VOP form information input in the terminal 207, such as the MPEG-4 parameter VOP__of_arbitrary_shape . When this parameter is zero, the VOP has a rectangular shape and, therefore, the shape encoder 210 is not used. A reconstructed anchor VOP function 250 provides a reconstructed anchor VOP for use by * part of the motion estimation function 220 and the motion compensation function 230. For P-VOPs, the anchor VOP occurs after the current VOP in the order of presentation and can be separated from the current VOP by one or more intermediate images. The current VOP registered of a compensated motion anchor VOP in the subtracter 260 to provide a residue that is encoded in the texture encoder 240. The texture encoder 240 performs the DCT to provide the texture information (e.g., transformation coefficients) to a multiplexer (MUX) 280. The texture encoder 240 also provides information that is added with the output of the motion compensator 230 in the adder 270 for input to function 250 of the reconstructed anchor VOP. 25 Movement information (for example, P1134 / 98 MX ? / motion vectors) is supplied from the motion estimation function 220 to the MUX 280, while the shape information indicating the shape of the VOP is supplied from the shape coding function 210 to the 5 MUX 280. The MUX 280 provides a corresponding current multiplexed data to a buffer 290 for subsequent communication in a data channel. The pixel data that is input to the encoder can have a YUV 4: 2: 0 format. The VOP is represented by a boundary rectangle. The upper left coordinate of the boundary rectangle is rounded to the nearest even number no greater than the upper left coordinates of the rectangle closest to the closest rectangle. In accordance with above, the upper left coordinate of the boundary rectangle of the chrominance component is half the luminance component.
Figure 3 illustrates an interpolation scheme for a half pixel search. The estimate of Movement and motion compensation (ME / MC) generally includes matching a block of a current video frame (e.g., a current block) with a block in a searched area of a reference frame (e.g., a block). predicted or a reference block). He or she reference frames can be separated from the table P1134 / 98 MX Current Hr through one or more intermediate images. The displacement of the reference block with respect to the current block is the motion vector (MV), which has horizontal (x) and vertical (y) components. Positive values of the MV components indicate that the predicted block is to the right of and, below, the current block. A block of compensated motion difference is formed by subtracting pixel values point by point ? of the predicted block of the current block. The texture coding is then performed in the difference block. The encoded MV and the encoded texture information of the difference block are transmitted to the decoder. The decoder can then rebuild an approximate current block by adding the block of difference quatificado to the block predicted in accordance with the MV. The block for the ME / MC can be n 16x16 frame block (macroblock), an 8x8 frame block or a 16x8 field block. 20 In the ME / MC, it is generally desirable to have small residual values for the difference block, use little bits for the motion vectors, and have low computational complexity. Due to its low computational complexity with respect to other measures of difference, the sum of the absolute difference (SAD), is P1134 / 98 MX ? k- commonly used to select the motion vector that meets these criteria, as follows. Sean. { c (i, j), i, j, = 0,1, ..., N-l} the pixels of the current block and be. { p (m, n), m, n, = R, -R + l, ..., -1, 0, 1, ..., R + N-1} the 5 pixels in the search range of the reference frame. So was where. { x, y = -R, -R + l, ..., -10,1, ..., R-1} , R and C are positive constants. The pair (x, y) resulting from the minimum SAD value is the optimal complete pixel movement vector (MV) having horizontal and vertical components, for example, (MVx, MVy). Observe that a MV of (0, 0) is favored because a positive constant C is subtracted ^ from the SAD when (x, y) = (0,0). For example, for a block of 16x16, C = 128. In accordance with the above, the distribution of the MVs can be concentrated close to (0, 0), so that the entropy coding of the MVs is more efficient. The precision of (MVx, MVy) is adjusted or placed in half a pixel. The interpolation of the box must be used P1134 / 98 MX K ~ anchor so that p (i + x, j + y) is defined so that x or y is half of an integer. The interpolation is performed as shown in Figure 3. The entire pixel positions are represented by the "+" symbol, as shown in A, B, C and D. Half-pixel positions are indicated by a circle, according to it is shown in a, b, c and d. As can be seen, a = A, b = (A + B) // 2 c = (A + C) // 2, and d = (A + B + C + D) // 4, where "//" denotes rounded division, as mentioned below in P? or connection to * tables 2 and 3. A block of compensated motion difference is defined as d (i, j) = c (i, j) - p (i + MVX, j + MVy), i, j = 0.1 ..., N - 1. The difference block d (i, j) is transformed, quantified and decoded by entropy. In a decoder, the motion vector (MVx, MVy) and the quantized difference block. { d (i, j)} they are available to reconstruct the current frame as follows: c (i, j) = d (i, j) - p (i + MVX, j + MVy), i, j = 0,1 ..., N - 1. For a color format of Y: U: V = 4: 2: 0, the size of the macroblock is 16x16 pixels for the Y component (luminance) and 8x8 pixels for the U / V components (chrominance). The search range R (in units of half pixels) can be selected by the user and is represented by a parameter called 25 f_code, where R = (x, y): 2 = x, and < 2f} , according P1134 / 98 MX ~ WQf shows in Table 1, below. For example, for f_code = l, the components of the motion vector can adopt values from -16 to +15.5, in half-pixel increments. For f_code = 2, the components of the motion vector can take their values from -32 to +31.5 in half-pixel increments.
Table 1 The motion vectors for the chrominance blocks are derived from those of the luminance blocks. Since a pixel in a chrominance block corresponds to two pixels in each direction in the corresponding luminance block, that is, the chrominance component is at half the resolution of the luminance, the MV for the chrominance block is a means of the MV of the luminance block. In addition, since the MV of the luminance block can have values of half a pixel, the MV for the chrominance block can consequently have values of one quarter of a pixel. But, since only the P1134 / 98 MX ß f half pixel interpolation for the MC of the chrominance block, the values of a quarter of a pixel have to be rounded off to half pixel values. Table 2, below, shows the manner in which the required rounding operation 5 is performed. For example, 1/4 is rounded to 1/2, 2/4 is the same as 1/2 and 3/4 is rounded to 1/2.
Table 2 Pixel value 1/4 0 1 2 3 Pixel value 1/2 0 1 1 1 * Although only the reconstructed previous frame is available for the MC in the decoder, in the encoder for the ME there is a choice to use either the previous frame reconstructed or the original frame. It is advantageous to use the original preview box in the ME but not in the MC, since the complexity is smaller and, the MV can represent the true movement in a closer way so the chrominance components can be predicted more accurately. For some video sequences, such as when If there is rapid movement or a change of scene, coding the difference block may require more bits than the direct DCT coding of the actual current values of the current block. In accordance with this, it is P1134 / 98 MX It is desirable to have a decision criterion in order to adaptively choose to code the current block directly (for example, INTRA mode) or differentially (for example, INTER mode). The following parameters are calculated to make the INTRA / INTER decision: N - l N - l N - l N - l mean = S? c (i, j) and A =? ? \ c (i, j) - mean ¿T --o j = 0 1 = 0 j = 0 where N is the size of the block (for example, N = 16). The INTRA mode is chosen if A < (SAD ± nter (MVx, MVy) -2 * Nc), otherwise, the ÍNTER mode is used. Note that the MV in SADj_nter (MVX, MVy) for this decision is at a pixel resolution at zero. If you choose INTRA mode, you do not need traditional operations for motion search. If the ÍNTER mode is chosen, the motion search for the MV of half a pixel continues. Figure 4 illustrates a scheme for estimating motion with a restricted motion vector in accordance with the present invention. Advanced ME / MC techniques include an unrestricted motion vector, advanced prediction and bidirectional ME / MC. In the basic ME / MC technique, the predicted block is a block in the previous subfield. However, if the current block is in a corner or on the edges of the current frame, the MV range is restricted. An advanced technique is to allow MVs not P1134 / 98 MX restricted for these corner and edge blocks. With this technique, the previous frame extends in all four directions (for example, to the left, up, right and down) repeating (for example, filling in) the edge pixels several times in accordance with a code word (for example, f_code, described earlier in Table 1) indicating the relative range of motion. With a wider range of motion, a correspondingly larger search area is required. The difference block is generated by applying the ME / MC against the extended previous frame and taking the difference between the current block and the predicted block that may be partially outside the frame boundary. This technique improves the coding efficiency of the boundary blocks and can result in an improved image. For example, with the basic ME / MC technique, a previous frame 400 includes a predicted block 410 that is in a search range. The relative position of the macroblock (MB) of the current frame is shown with a dashed line 430. The corresponding motion vector can be, for example, (MVX, MVy) = (8.0) if the predicted block is offset by eight pixels horizontally to the right and zero pixels vertically. Figure 5 illustrates a scheme for estimating movement with an unrestricted motion vector P1134 / 98 MX wttf in accordance with the present invention. Elements with a similar numbering correspond to the elements of Figure 4. With this advanced ME / MC technique, the search range 520 can cross over the limit of the previous frame 5 400 towards an extended previous frame 500. The corresponding motion vector can be, for example, (MVX, Mvy) = (8, -10), and the block predicted is horizontally shifted eight pixels to the right and vertically ten pixels to the top, where vertically downwards is considered as the positive direction. Figure 6 illustrates the reordering of the pixel lines in an adaptive frame / field prediction scheme in accordance with the present invention. In a first aspect of the advanced prediction technique, an adaptive technique is used to define whether a current macroblock of 16x16 pixels should be encoded with ME / MC as it is or, divided into four blocks of 8x8 pixels each, where each 8x8 block is encoded with ME / MC separately or, if the movement estimate based on the field is used, where the pixel lines of the macroblock are re-ordered to group lines of the same field into two field blocks of 16x8 and each block of 16x8 is coded with ME / MC in the form separated.
P1134 / 98 MX An image in field mode, for example, a macroblock of 16x16, is generally displayed in 600. The macroblock includes the lines with numbering pairs 602, 604, 606, 608, 610, 612, 614 and 616 and lines with numbering odd 603, 605, 607, 609, 611, 613, 615 and 617. The even and odd lines are interleaved in that way and form the upper and lower (or first and second) fields respectively. When the pixel lines in the image 600 are swapped to form luminance blocks of the same field, the macroblock, generally shown at 650, is formed .. The arrows, shown generally at 645, indicate the rearrangement of the lines 602-617. For example, the par-line 602, which is the first line of the macroblock 600, is also the first line of the macroblock 650. The par-line 604 is rearranged as the second line of the macroblock 650. Similarly, the even lines 606, 608, 610 , 612, 614 and 616, are reordered as the third octave lines, respectively, of the macroblock 650. In this way, a 680 luminance region of 16x8 is formed with even numbered lines. Similarly, the odd numbered lines 603, 605, 607, 609, 611, 613, 615 and 617 form a region of 16x8, 685. The decision process for choosing the MC mode for P-VOPs is as follows. For the video in mode P1134 / 98 MX box, first get the sum of the absolute differences (SAD) for a single block of 16x16, for example, SAD1 6 (MVx, MVy); and, for four 8x8 blocks, for example, SAD8 (MVxl, MVyl), SAD8 (MVx2, MVy2), SAD8 (MVx3, MVy3), and 4 SAD8 (MVx4, MVy4). Yes? SADg (MV? I, MVy ±) < SAD1 6 (MVX, MVy) - 128 1 = 1 choose the 8x8 prediction; otherwise, choose the 16x16 prediction. For interlaced video, get SADtop (MVx_top, MVy_top), SADbottom (MVx_bottom, MVy_bottom), where (MVx_top, MVy_top) and (MVx_bottom, MVy_bottom) are the motion vector for both the upper (par) and the lower ( odd) . Then, choose the reference field that has the smallest SAD (for example, for SADtop and SAD ottom) from the midfield field sample search. The decision of the global prediction mode is based on choosing the minimum of: 4 (a) SAD16 (MVx, MVy), (b)? SAD8 (MV? I> MVyi) + 128 and 1 = 1 (C) SADtop (MVx_top, MVy-top) + SADbottom (MVx_bottom, MVy_bot tom) +64.
If the term of part (a) is the minimum, the prediction of 16x16 is used. If the term of subsection (b) is the minimum, the movement compensation of 8x8 (advanced prediction mode) is used. If the term of subsection (c) is the minimum, the movement estimate based on the field is used.
P1134 / 98 MX If the 8x8 prediction is chosen, there are four MVs for the four 8x8 luminance blocks, that is, one MV for each 8x8 block. The MV of the two chrominance blocks is then obtained by obtaining an average of these four MVs and dividing the average value by two. Since each MV for the 8x8 luminance block has an accuracy of half a pixel, the MV for the chrominance blocks can have a value of one-sixth of a pixel. Table 3, below, specifies the conversion of a sixteenth pixel value to a half pixel value for the chrominance MVs. For example, from 0 to 2/16 are rounded to 0, from 3/16 to 13/16 are rounded to 1/2 and from 14/16 and 15/16 are rounded to 2/2 = 1.
Table 3 Pixel value 1/16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Pixel value 1/2 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 With the field prediction, there are two MVs for the two 16x8 blocks. The luminance prediction is generated as follows. The even lines of the macroblock (for example, lines 602, 604, 606, 608, 610, 612, 614 and 616) are defined by the movement vector of the upper field using the specified reference field. The movement vector is specified in the coordinates P1134 / 98 MX of the distal square shape that vertical displacements * of full pixel correspond to even integer values of the vertical coordinate of the movement vector y, a vertical displacement of half pixels is denoted by odd integer values. When a vertical shift of half a pixel is specified, only the pixels of the lines are combined within the same reference field. The MV for the two chrominance blocks is derived from the motion vector (luminance) when dividing each component between 2 then, round as follows. The horizontal component is rounded correlating all the fractional values in a half pixel shift. This is the same procedure described in Table 2. The vertical component of the motion vector is an integer and the vertical component of the resulting chrominance movement vector is rounded to an integer. And the result of dividing by two produces a non-integer value, 1S is rounded to the adjacent odd integer. Note that the integer values of the odd integer values denote vertical interpolation between lines of the same field. The second aspect of the advanced prediction technique is the overlapping MC for luminance blocks. In the following discussion, four MVs are always assumed for a luminance block of 16x16. The case of an MV of 16x16 can be considered to have four 8x8 MVs P1134 / 98 MX identical Each pixel in a 8x8 luminance predicate block is a weighted sum of three prediction values specified in the following equation: p »(i, j) = (H0 (i, j) iHl (i, j) -r (i , j) + H2 (i, mj) -s (i, j)) / 8 where the division by eight is rounding to the nearest half pixel with rounding away from zero. The weight matrices for EQ (Í, J), H? (I, j) and (H2 (i, j) are specified in Tables 4-6, respectively, below. (I, j) = (0, 0) is the upper left value in ^ Eb each table and (i, j) = (7,7) is the lower right value In Table 5, the four upper rows indicate the weights of the upper neighbor motion vector in both that the lower four rows indicate the weights of the lower neighboring movement vector In Table 6, 15 the four columns on the left indicate the weights of the left neighbor movement vector while the four columns on the right indicate the weights of the vector of right neighbor movement.
P1134 / 98 MX Table 4 4 5 5 5 5 5 5 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 5 5 5 5 6 6 6 6 5 5 5 5 6 6 6 6 5 5 5 5 6 6 6 6 5 5 5 5 5 5 5 5 5 5 4 5 5 5 5 5 5 4 Table 5 P1134 / 98 MX Table 6 The values of q (i, j), r (i, j) and (i, j) are the pixels of the previous frame, defined as follows. q (i, j) = p (i + MVx °, j + MVy °) r (i, j) = P (i + MVx, j + MV) e (i, j) = p (i + MV, j + MV ^). where (MVX / MVy) is the MV of the current 8x8 luminance block, (MVxMVy) is the MV of the block either above (for j = 0, 1,2,3) or below (for j = 4, 5,6,7) of the current block y, (MVxMVy) is the MV of the block either to the left (for i = 0, 1, 2,3) or to the right (for i = 4,5,6,7 ) of the current block. Figure 7 illustrates a macroblock of the current field mode with blocks in neighboring frame mode that P1134 / 98 MX they have predictors of the changed movement vector associated in accordance with the present invention. A P-VOP can be used. When encoding is used in inter mode, the motion vectors for the current image blocks must be transmitted. Motion vectors are differentially encoded using a spatial neighborhood of motion vectors that have already been transmitted. That is, since data is processed from the top to the bottom and from the ^ éfü i -zqui -erda to the right through an image in virtually all video standards, the movement vectors of the blocks that are above and / or to the left of the current block are available for processing current block. These vectors of movement are therefore predictive candidates for differential coding. The encoding of the movement vector is effected separately in the horizontal and vertical components in the current block. For each MV component in a P-VOP, for example, the median value of the candidate predictors for the same component can be calculated and, the value of the difference between the value of the component and that of the median can be encoded using variable length codes. 25 When coding tools are used P1134 / 98 MX Interleaved EBM, candidate predictors for motion vectors based on the field in a current P-VOP can be obtained as follows. The macroblock 700 is a macroblock of current field mode (eg, 16x16 pixels.5) The surrounding macroblocks include a macroblock 710 that immediately precedes the current macroblock 700 in the current row 715, a macroblock 720 that is immediately above the current macroblock in a preceding row 725 and, a macroblock 730 immediately following the macroblock 720 in the preceding row. The macroblock 700 has first associated vectors of horizontal and vertical movement of field VXfi, and MVyfi, respectively, and, second vectors of horizontal and vertical movement of field MVxf2, and MVyf2, respectively. The vertical and horizontal components of the motion vector are not shown separately in Figure 7 for simplicity. For example, assume that the ? first field includes rows of even number and the second field includes rows of odd number. Also, in the example shown, the advanced prediction mode used for the macroblocks 710, 720 and 730, so that the macroblock 710 includes a candidate block 712 of 8x8 with the associated horizontal and vertical movement vectors MV1X and MVly, respectively, the macroblock 720 includes a block candidate 722 of 8x8 with the component partners P1134 / 98 MX The horizontal and vertical movement vector MV2X and MV2y, respectively, and the macroblock 730 includes a candidate block 732 of 8x8 with the associated horizontal and vertical components of the motion vector MV3X and MV3y, respectively. it is possible that any or all candidate blocks 712, 722 and 732 are macroblocks, ie, where advanced prediction is not used, none of the macroblocks 710, 720, 730 is field predicted in this illustration. 8x8 particular block of a macroblock is used as a candidate, the macroblock will have three other sub-blocks with the associated horizontal and vertical components of the motion vector that are suitable for use when differentially encoding the components of the movement sector of the macroblock 700 with current field coding. Generally, it is * desirable to select the macroblock sub-block ^ particular that is closest to the upper left portion of the current macroblock as the candidate block, as shown. The horizontal and vertical components of the predictive movement vector, Px and Py, respectively, can be determined in accordance with the present invention from Px = median (MV1X, MV2x, MV3X) and Py = median (MVly, MV2y, MV3y). It has been found that the use of the median P1134 / 98 MX '§BÉ * provides efficient coding. The median is the number in half or average number in an ordered sequence that has an odd number of elements or the average of the two numbers in the middle of a sequence that has a number 5 pair of elements. For example, the median of the sequence (1, 2, 4) is 2, and, the median of the sequence (1, 2, 4, 10) is 3. The median is the same as the average when there are two numbers in a sequence. Other functions besides the AfO median. For example, the average can be used, that is, Px = l / 3 MV1X + 1/3 MV2X + 1/3 MV3X. Alternatively, some other weighting scheme can be used, for example, Px = 0.4 MV1X + 0.4 MV2X + 0.2 MV3X. In addition, while in the present example three blocks are used candidates, two or more can be used. Additionally, the location of the candidate blocks may vary. For example, a candidate block (not shown) immediately preceding macroblock 720 may be used. In addition, for coding schemes that employ sufficient buffer storage capacity, the candidate blocks are followed by the current macroblock 700 in the current row 715 or in a subsequent row (not shown can be used). For the differential coding of the current macroblock 25 to obtain a difference value of the vector of P1134 / 98 MX movement, in MVD, in accordance with this invention, both fields use the same predictor. That is, MVDxfl = MVxfl-Px, MVDyf? = MVyf? .- Py, MVDxf2 = MVxf2-Px and MVDyf2 = MVyf2-Py. Figure 8 illustrates a macroblock in current field mode with blocks in neighboring frame mode and a field mode macroblock having associated candidate motion vector predictors in accordance with the present invention. A P-VOP can be used. The 0W (elements of similar numbering correspond to the elements of Figure 7. The vertical and horizontal components of the motion vector are not shown separately in Figure 8 for simplicity.Here, the candidate macroblock 820 that is immediately on top of the current macroblock 700 in the previous row 725 is coded field. In this way, the macroblock 820 has associated first and second field vectors that include horizontal components of the motion vector, MV2xfl and MV2xf2, Y, l ° s vertical components of the vector of movement, MV2yfi and MV2yf. Generally, when the current macroblock is predicted field, at least one of the neighboring spatial macroblocks is field predicted, then, the selectors of the candidate motion vector can be generated using the same block field P1134 / 98 MX candidates. That is, for the first field of the macroblock current, the first field motion vectors of the surrounding predicted field macroblocks are used. Similarly, for the second field of the current macroblock, the second field movement vectors of the surrounding predicted field macroblocks are used. Specifically, the first horizontal field predictor is Pxfi = median (MVlx, MV2xfi, MV3X), the first vertical field predictor is Pyfl = median (MVly, MV2yfl, ^ R MV3y), the second horizontal field predictor is Pxf2 = median (MVlx, MV2xf2, MV3X), and the second vertical field predictor is Pyf2 = median (MVly, MV2yf2, MV3y). The motion vector difference values are MVDxfl = MVxfl-Pxfl, MVDyfl = MVyfl-Pyfl, MVDxf2 = MVxf2-Pxf2, and MVDyf2 = MVyf2-Pyf2. Alternatively, the first and second field movement vectors of the macroblock 820 (and any other candidate macroblock in field mode) can be averaged to obtain horizontal and vertical components of the averaged movement vector. The processing then proceeds as discussed in connection with Figure 7. Specifically, a horizontal component of the averaged motion vector for the macroblock 820 is MV2X = (MV2xfi + MV2xf) / 2, whereas the vertical component averaging of the motion vector for the macroblock 820 P1134 / 98 MX is MV2y = (MV2yfl + MV2yf2) / 2. The horizontal and vertical components of the predictive movement vector, respectively, are Px = median (MVlx, MV2X, MV3X) and Py = median (MVly, MV2y, MV3y). The difference values of the motion vector for the current macroblock 700 are MVDxfi = MVxf? -Px, MVDyfl = MVyfl-Py, MVDxf2 = MVxf2-Px, and MVDyf2 = MVyf2-Py. When two or more of the candidate macroblocks are predicted field, processing may proceed to ^ 10 as above for each predicted field macroblock. For coding efficiency, to ensure that the vertical component of a field motion vector is an integer, the difference of the vertical component of the motion vector is encoded in the current bit as MVDyfi = (MVyfl-int (Py)) / 2, where (Py), means truncate Py in the direction of zero to the nearest integer. This ensures that all fractional pixel slides are correlated with a medium shift pixel. For example, if Mvyfl = 4 and Py = 3.5, then MVDyfl = (MVyfl-int (Py)) / 2 = (4-int (3.5)) / 2 = (4-3) /2=0.5. otherwise, if the function "int", MVDyfl = (MVyf? ~ Py) / 2 = (4- 3.5) /2=(0.5) /2=0.25, it can not be coded so efficiently. The factor of 1/2 is used to reduce the magnitude of MVDyfi, causing it to be encoded in P1134 / 98 MX more efficient using the VLC motion vector. Figure 9 illustrates a block in current advanced prediction mode with blocks in neighboring frame mode and a macroblock in field mode having associated predictors of the candidate motion vector in accordance with the present invention. A P-VOP can be used. The elements of similar numeration correspond to the elements in Figures 7 and 8. The vertical and horizontal components of the motion vector * are not shown separated in Figure 9 for simplicity. The current block 912 in a current macroblock 900 is shown as an 8x8 block of advanced prediction. Alternatively, the current block 912 may be a macroblock (progressive) in frame mode which is the same than the macroblock 900. Remember that with the advanced prediction mode, each of the four 8x8 blocks of a macroblock is coded with ME / MV separately. In general, when the current block is encoded as a progressive macroblock or as a block (8x8) of advanced prediction and, at least one of the neighboring macrocodes of spatial encoding has field prediction, the components of the candidate motion vector can be generated by averaging the first and second components of the motion vector of field, by using both first and second components of the P1134 / 98 MX field movement vector as candidates or, using one of the first and second components of the field movement vector, but not both. Specifically, in a first option, the components of the motion vector of the interleaved candidate macroblocks are averaged within the block. For example, for macroblock 820, the components averaged for the motion vector are MV2x = (MV2xfl + MV2xf2) / 2, and MV2y = (MV2yfl + MV2yf2) / 2. The horizontal and vertical components of the predictor movement vector are, respectively, Px = median (MVlx, MV2x, MV3x) and Py = median (MVly, MV2y, MV3y) and, the difference values of the motion vector for the block current 912 are MVDx = MVx-Px and MVDy = MVy-Py. Mvx and Mvy are the components horizontal and vertical of the movement vector, respectively, of the current block 912. In a second option, both field movement vectors of the macroblock 820 are candidate predictors. For example, for the macroblock 820, the horizontal and vertical components of the predictive movement vector Px and Py, respectively, can be determined from Px = median (MVlx, MV2xfl, MV2xf2, MV3x) and Py = median (MVly, MV2yFl, MV2yF2, MV2Y), and the values of difference of movement vector for block current 912 are MVDx = MVx-Px and MVDy = MVy-Py.
P1134 / 98 MX In a third option, the first field movement vectors of macroblock 820 are candidate predictors. For example, for macroblock 820, the horizontal and vertical components of the predictor movement vector, respectively, are Px = median (MVlx, MV2xfl, MV3x) and Py = median (MVly, MV2yfl, Mvy). The difference values of the motion vector for the current block 912 are MVDx = MVx-Px and MVDy = MVy-Py. In a fourth option, the second field movement vectors of macroblock 820 are candidate predictors. For example, for macroblock 820, the horizontal and vertical components of the predictor movement vector are, respectively, Px = median (MVlx, MV2xf2, MV3x) and Py = median (MVly, MV2yf2, Mvy). The difference values of the motion vector for the current block 912 are MVDx = MVx-Px and MVDy = MVy-Py. As discussed previously, when the pixel data of the first and second fields are averaged, all shifts of the fractional pixels correlate with a half pixel shift for coding efficiency. Figure 10 illustrates the filling of a macroblock-based VOP for the prediction of movement in accordance with the present invention. In an encoder, the filling is used to increase the area of a P1134 / 98 MX reference image for motion estimation before # of motion compensation. The technique is particularly adapted for use with arbitrarily shaped video object planes (VOPs). A macroblock can similarly be filled in a decoder as soon as the macroblock is rebuilt. For example, a VOP 1010 with a star shape in a frame or in another image region 1000 can be filled in to fill blocks that are in the ^ 0 VOP limit, as well as other neighboring macroblocks. Blocks designated lightweight (for example, - such as block 1020) are all limit blocks, and are processed with normal padding. The blocks designated with darker shading (for example, such as block 1030) are adjacent to the limit blocks and processed with extended filling. Additionally, extended blocks (not shown) can also be filled. the amount of the required filling is related to the parameter f_ discussed above in connection with Table 1. The blocks can be 16x16 luma blocks or 8x8 chrominance blocks. The filling fills the areas outside the VOP by repeating the limit pixels of the VOP. If a pixel outside the VOP can be filled by repeating P1134 / 98 MX ff - one or more limit pixels, the average of those particular limit pixels is used. Normal refilling is required when refilling within a boundary block. First, each horizontal line of the blocks in frame 1000 is scanned to provide continuous line segments that are either internal to the VOP (e.g., including the limit pixels of the VOP), or external to the VOP. If the entire line in a block is internal to the VOP, "refilling" is not performed. ^ P0 If in a block there are inner and outer segments, and the outer segment is located between an inner segment and the edge of the block, the pixels of the inner segment are adjusted to the value of the inner segment pixel in the limit of the VOP that is more near to that particular outer segment. For example, for the sequence from left to right E1-E5 and 16-116 on a 16-pixel scan line, where "E'1 denotes an outer pixel and" i "denotes an outer pixel, E1-E5 are adjusted in Y6, for the sequence E1-E5, 16-110 and E11-E16, E1-E5 are set to Y6, and E11-E16 are set to 110. If an outer segment is between two inner segments, the outer segment is filled with the average of the two boundary pixels of the inner segments. By example, for sequence 11-15, E6-E10 and 111-116, E6-E10 P1134 / 98 MX they fit in (15 + 111) / 2. The above process is repeated for each horizontal and vertical scan line in each block. If a 'pixel can be filled in by both horizontal and vertical boundary pixels, the average is used. It is possible for an outer line segment to extend horizontally through a block without finding an inner line segment. In this case, for each pixel in the line segment, it is scanned horizontally in both directions to find the closest filled outer pixel. If there is a tie (that is, the pixels filled to the right and to the left are equidistant from a current pixel), use the pixel to the left of the current pixel. Similarly, it is possible for an outer line segment to extend vertically through a block without finding an inner line segment. In this case, for each pixel of the line segment, scan vertically in both directions to find the closest filled outer pixel. If there is a tie (that is, the pixels filled above and below are equidistant from a current pixel), use the pixel above the current pixel. The outer pixel is then replaced by the average of the pixels found in bidirectional horizontal and vertical scans.
P1134 / 98"M? * However, when the VOP is encoded with interleaving, a modified filling technique can be used as described below. FIGURE 11 illustrates repetitive replenishment within a macroblock for motion prediction in accordance with the present invention. A block is shown such as for example a luminance macroblock of 16x16 1100. Each pixel location is designated by a coordinate (i, j). The coordinate system (i, j) ** 10 used in FIGURES 11 and 12 does not necessarily correspond to the coordinates (i, j) or the variables used elsewhere on the description. For example, the upper left pixel is designated (0,0). Each pixel column in macroblock 1100 is numbered from 0 to 15, while each row is also numbered from 0 to 15. The locations of the pixels that are shaded are part of a VOP. For example, the pixels (0.6-15), (1.7-15), (2.8-15), (3.9-15), (4.10-15), (5.11-) 20 15), (6,12-15), (7,13-15), (8, 14 and 15), (9,15), (12,15), (13,14 and 15), (14 , 13-15) and (15,12-15), are part of a VOP. The non-shaded pixels (that is, the exterior ones) are not part of the VOP. Using the filling technique discussed in connection with FIGURE 10, the pixels exteriors can be filled with limit pixel values Pll 34/98 MX - (for example, interiors) of the VOP. For example, the outer pixels (0.0-5) are set at the limit pixel (0.6) of the VOP. The outer pixel (1.6) is adjusted to the average of the limit pixels (0.6) and (1.7). The outer pixel (10,15) is adjusted to the average of the limit pixels (9,15) and (12,15). The outer pixel (9,14) is adjusted to the average of the limit pixels (8,14) and (9,15), and so on. FIGURE 12 illustrates repetitive filling "I ^^ P" 10 within a macroblock for motion prediction after grouping pixel lines from the same field in accordance with the present invention When VOPs are encoded with interleaves, a modified filling technique is needed for the values of the pixels of illuminance of a reference VOP used for the MC / MC. In accordance with the present invention, the values of the luminance pixels are divided into upper and lower fields and the filling in each field is performed separately. For example, as shown in The block 1200, the even rows of the pixel data of the table 1100 of FIGURE 11, are divided into an upper field block 1210 (for example, V0P_top) and a lower field block 1220 (for example, VOP-bottom ), each of which is 16x8. The column numbers, indicated through "" and ", range from 0 to 15, while the P1134 / 98 MX JP ^ row numbers, indicated by "j", extend from 0, 2, 4,. . . , 14, and from 1, 3, 5,. . . 15. Each pixel value of the block 1200 can therefore be described by a coordinate (i, j). 5 The upper field block 1210 includes rows 0, 2, 4, 6, 8, 10, 12 and 14, while the lower field block 1220 includes rows 1, 3, 5, 7, 9, 11, 13 and 15. Next, each line in the respective blocks it is scanned horizontally to provide the outer and inner line segments as previously discussed. For example, (0-8,14) and (13-15,14) are inner line segments, while (9-12,14) is an inner line segment. The repetitive filling is then applied in separate form for each field. For example, in the upper field block 1210, the outer pixels (0,0), (0,2) and (0,4) are adjusted to the value of the inner pixel (0,6), the outer pixel (9,14) is adjusted to the average of the values of the limit pixels (8,14) and (13,14), the outer pixel (1.6), fits the average values of the limit pixels (0.6) and (1.8), and so on. In the lower field block 1220, the outer pixels (0.1), (0.3) and (0.5), are adjusted to the value of the inner pixel (0.7). Finally, after filling, both field blocks 1210 and 1220 combine to form a P1134 / 98 MX # only reference VOP filled with luminance. That is, the lines are rearranged in the interleaved order shown in FIGURE 11. FIGURE 13 is a block diagram of a decoder in accordance with the present invention. The decoder, generally shown at 1300, can be used to receive a decode of the encoded data signals transmitted from the encoder of FIGURE 2. The data of the encoded video image and the data of the differentially encoded motion vector are received at the terminal 1340 and supplied to a demultiplexer (DEMUX) 1342. The encoded video image data is normally differentially encoded into DCT transformation coefficients as a prediction error signal (for example, waste). The function decoding function 1344 processes the data when the VOP has an arbitrary shape to retrieve the form information, which is supplied, in turn, to a function 1350 of movement compensation and a 1352 function of VOP reconstruction. the texture decoding function 1346 effects an inverse DCT on the transformation coefficients to recover the residue information. For macroblocks with INTRA coding, the pixel information is retrieved directly and it is P1134 / 9 and MX supplies to function V52 of reconstruction of the VOP. For blocks and macroblocks with ÍNTER coding, the pixel information provided from the texture decoding function 1346 to the reconstructed VOP 5 function 1352, represents a residue between the current macroblock and a reference macroblock. For blocks and macroblocks with ÍNTER coding, the motion decoding function 1348 processes the encoded motion vector data for recover the differential motion vectors and provide them to the motion compensation function 1350 and to a memory 1349 of the motion vector, such as a RAM. The motion compensation function 1350 receives the data from the vector of differential motion and determines a reference movement vector (e.g., a predictor of the motion vector) in accordance with the present invention. The reference movement vector is obtained from one or more of the macroblocks that are in a neighborhood space to the current macroblock. For example, when the encoder provides a reference movement vector that is the median of three neighboring macroblocks, the motion compensation function 1350 must recalculate the median of the components of the movement vector (for example, the horizontal and the P1134 /? 5 MX vertical), and the sum of the median of the components with the components of the differential motion vector of the current macroblock to obtain the full motion vector of the current macroblock. The motion compensation function may also need to have circuitry to average the components of the motion vector of the upper and lower fields of a neighboring macroblock with field coding. In this way, the memory 1349 of the motion vector is required to store the complete motion vectors of the neighboring macroblocks once these full motion vectors are determined. For example, using the scheme presented in FIGS. 7-9, the motion vectors of the macroblock immediately preceding the current macroblock in the current row must be stored together with the macroblocks of the preceding row that are directly above and on the right. of the current macroblock. For row-by-row processing of a video frame or VOP, memory 1349 may be required to store up to one row of motion vector data. This can be seen by observing that when the full motion vector of the current macroblock is determined, this value must be stored for use in determining a subsequent reference motion vector, since the current macroblock will be a P1134 / 98 MX * - neighboring macroblock in a preceding row when the next row is processed. In addition, when neighboring macroblocks are coded field, the components of the motion vector must be stored for both the upper and lower fields. Once the motion compensation function 1350 determines a complete reference movement vector and adds it to the differential motion vector of the current macroblock, the full motion vector # 10 of the current macroblock is available. In accordance with the foregoing, the motion compensation function 1350 can now recover the best matching data from the anchor box from a VOP memory 1354, such as a RAM, and provide the pixel data of the anchor table to the VOP reconstruction function to reconstruct the current macroblock. In accordance with the present invention, the quality of the macroblock image reconstructed is improved using the full motion vectors of the neighboring macroblocks for determine the reference movement vector. The filling can also be effected by the motion compensation function 1350. The data recovered from the best match is added again to the pixel residue in function 1352 of reconstruction of the VOP to obtain the current macroblock or block P1134 / 98 MX decoded The reconstructed block is issued as a video output signal and is also supplied to the VOP 1354 memory to provide new anchor frame data. Note that an appropriate buffering capacity of video data may be required, depending on the frame transmission and presentation ordsince the anchor box for P-VOPs is the temporally future frame in the order of presentation. Generally, the decoder will perform the # 10 same as the encoder to determine the median or other value that was used as the predictor of the movement vector for the current VOP or block. Alternatively, when the predictor of the motion vector is the same as the movement vector of one of the candidate macroblocks, it is possible to transmit a codeword to the decoder designating the particular macroblock. For example, a code 00 may mean that the motion vector of the previous block was used in the same row, a code 01 may mean that the vector of movement of the block above the current block in the previous row and, a code 10 can mean that the motion vector of the next block in the previous row was used .. In this case, the decoder can directly use the predictor of the block. motion vector of the designated macroblock and does not need to have access to loe P1134 / 98 MX 1450, indicates whether a macroblock is coded with interleaving and supplies the reference data of the field movement vector that informs the decoder of the coding mode of the current macroblock or block. The decoder uses this information to calculate the motion vector for a current macroblock. For example, if the current macroblock does not have interlaced coding but at least one of the reference macroblocks does, then the decoder will average the components of the motion vector of each of the interleaved coded reference macroblocks for use in the determination. of a reference movement vector for the current macroblock. Alternatively, the upper or lower field movement vector is used in the reference macroblock, but not both. If the current macroblock is coded with interleaving, then the decoder will calculate a reference movement vector in separate form for each field. The coding mode can also determine which of the candidate macroblocks, if any, has a motion vector that is the same as the reference movement vector used in the differential encoding of the motion vector of the current macroblock. The interlaced_information field can be stored P1134 / 98 MX for sub-sequential operation as required in memory 1349 of the motion vector or other memory in the decoder. The Interlaced_information field may also include a dct_type flag indicating whether the line of the eigenior and inferior field pixelee in a coded field macroblock is reordered from the interleaved order, for example, for padding. It will be appreciated that the arrangement shown in FIGURE # 10 14 is only one example and that another arrangement to communicate the relevant information to the decoder will be apparent to those skilled in the art. Next, the syntax of the current bit to be used according to the present will be described. invention. MPEG-4 provides video syntax with a class hierarchy that includes a Video Session (Video Session or VS), Video Object (Video Object or VO), Layer or Stratum of the Video Object (Video Object Layer or VOL ) o Layer or Layer of the Texture Object (Texture Object Layer or SUN), Group of the Video Object Plane, and in the lower part a Plane of the Video Object. The syntax of the Layer or Section of the Video Object Plane, shown below, can indicate if a macroblock current is encoded with interleaving in accordance with The present invention as shown further below. The P113 -; MX syntax that is not part of the present invention (for example, interlaced, if (interlaced) and top_fiel_first). Here, the term "interlaced1 '= 1 if the current macroblock is encoded with interlacing.The term *" "top_field_firet" indicates that the euperior field of the current macroblock will be processed first. Other terms are defined in the aforementioned "MPEG-4 Video Verification Model Vereion 7.0". Only a portion of the conventional syntax is shown for compactness and the omitted portions will be denoted by three vertically arranged points.
P1134 / 98 MX A syntax of the most detailed macroblock layer or layer in accordance with the present invention when the Interlaced_information = l field is shown below. Field_prediction = l if the current macroblock is predicted with interlacing. The field flags referred to Pll 34/98 MX they have a value of zero for the euperior field and a value of 1 for the inferior field. For P-VOPe when field_prediction = l, doe differentiate from the motion vector obey the eintaxis, and the field movement vector euperior followed by the lower field motion vector. The eintaxie also takes into account the B-VOPe. In particular, for B-VOPS, when field_prediction = l, ee code doe or four differences of the vector of movement. The order of the differences of the motion vector for an interpolated macroblock is the upper forward field, the lower forward field, the upper backward field, and the lower backward field. For unidirectional interlaced prediction (for example, only in advance or in reverse), the difference of the motion vector of the upper field is followed by the difference of the motion vector of the lower field.
P1134 / 9tí MX $ In accordance with the foregoing, it can be seen that the present invention provides a method and an apparatus for encoding digital video images such as for example video object planes (VOPs) and, in particular, techniques for estimating and compensating for movement. for interlaced digital video. A technique for providing predictive motion vectors to be used in differential coding a The current field predicted macroblock uses the median of the motion vectors of the surrounding blocks or macroblocks. When a surrounding macroblock is itself encoded with interleaving, an average of the motion vector for that macroblock can be used, and Pll 34/98 MX the values of the fractional pixels will be correlated with half a pixel. When the current block is not encoded with interlaced but, a surrounding block if it is, the field movement vectors of the surrounding block 5 may be used individually or averaged. A decoder according to the present invention uses a bit current syntax to determine the coding mode of a macroblock, for example, such as a coded field macroblock. ^ .J The decoder can store the neighboring macroblock encoding mode for subsequent eu.ueo. In a repetitive filling technique for a VOP with interlaced coding, the euperior and bottom lines of the VOP and the surrounding block are grouped.
Within each field, the outer pixels are filled in by adjusting it to the value of the closest boundary pixel or to the average of the two boundary pixels. The lines are then reordered to provide a single reference VOP image. While the invention has been described in connection with several specific embodiments, those skilled in the art will appreciate that numerous adaptations and modifications may be made thereto without departing from the spirit and scope of the invention as set forth in claims.
P1134 / 98 MX

Claims (60)

    * NOVELTY OF THE INVENTION Having defined the present invention, it is considered as a novelty and, therefore, the content of the following 5 CLAIMS is claimed as property; 1. A method for providing horizontal and vertical components of the motion vector for use in the differential encoding of loe ^ reepectivoe horizontal and vertical components of the vector
  1. ^ Or movement of a current block of a digital video image, where: the first, second and third candidate blogs have associated horizontal and vertical components of the movement vector; The first block is at least a portion of a first macroblock that immediately precedes the current block in a current row; the second block is at least a portion of a second macroblock that is immediately above 20 of the current block in a preceding row; the third block is at least a portion of a third macroblock immediately following the second macroblock in the preceding row; and at least one of the candidate blocks 25 first, second and third and the current block is field
  2. P1134 / 98 MX encoded; the method comprises at least one of the steps: (a) selecting a horizontal component of the motion vector to be used in differentially encoding the horizontal component of the motion vector of the current block in accordance with a value derived from the horizontal components of the vector of __ movement of candidate blocks first, second and • -10 third; and (b) selecting a vertical component of the motion vector to be used in differentially encoding the vertical component of the motion vector of the current block in accordance with a value 15 derived from the vertical components of the movement vector of the first, second and third candidate blocks. 2. The method according to claim 1, wherein at least one particular macroblock of the
  3. The first, second and third macroblocks comprise a plurality of blocks, each having associated horizontal and vertical components of the movement vector suitable for use in differentially encoding the components of the movement vector of the current block, the
  4. The method comprises the additional step of:
  5. P1134 / 98 MX selecting one of a plurality of blocks in the particular macroblock that is closest to a top left portion of the current block as the candidate block of the particular macroblock. 3. The method according to claim 1 or 2, comprising the additional step of: providing the data for transmission with at least one component encoded in differential form of the motion vector indicating whether the current block is
  6. UNCLE OF CODED FIELD. The method according to one of the preceding claims, wherein: the current block is a block with progressive coding or a block with prediction coding 15 advanced; and at least one of the candidate blocks is a coded field candidate macroblock having first and second fields, each with the respective horizontal and vertical components of the motion vector. 5. The method according to claim 4, wherein: the step of selecting a horizontal component of the motion vector effects a selection in accordance with a median of the horizontal components 25 of the movement vector of the candidate blocks,
  7. P1134 / 98 MX including the corresponding horizontal components of the movement vector of the first and second fields of the at least one coded field candidate macroblock; and the step of selecting the vertical component of the motion vector makes a selection in accordance with a median of the verticalee components of the movement vector of the candidate blocks, including the corresponding vertical components of the movement vector of the first and second fields of the at least one candidate macroblock with field coding. The method according to claim 4 or 5, comprising the additional steps of: averaging the respective first and second horizontal components of the field movement vector of the at least one candidate macroblock with field coding to obtain at least one corresponding horizontal component averaged motion vector; wherein the step of selecting the horizontal component of the motion vector effects a selection in accordance with the median of the horizontal components of the motion vector of the candidate blocks other than the at least one candidate macroblock with field coding, if any, and the
  8. P1134 / 98 MX at least one corresponding averaged horizontal component of the motion vector; and averaging the respective first and second vertical components of the field movement vector of the at least one candidate macroblock with field coding to obtain at least one corresponding averaged vertical component of the motion vector; wherein: the step of selecting the vertical component of the motion vector effects a selection in accordance with the median of the vertical components of the motion vector of the candidate blocks other than at least one candidate macroblock with field coding, if any , and the at least one corresponding averaged vertical component of the motion vector. The method according to claim 6, wherein: the first and second horizontal components of the field movement vector of the at least one candidate macroblock with field coding are averaged such that all the fractional pixel slides are correlated with a half pixel displacement; and the first and second verticalee component of the field movement vector of the at least one candidate macroblock with field coding ee
  9. P1134 / 98 MX ? f averaged in such a way that all the shifts of the fractional pixels correlate with a half pixel shift. The method according to one of claims 1 to 3, wherein the current block is a coded field macroblock having first and second fields, each with the respective horizontal and vertical components of the motion vector, the method comprising additional steps to: ^ • select a horizontal component of the motion vector to be used to differentially encode the horizontal components of the movement vector of the first and second fields of the current macroblock with field coding in accordance with a derived value 15 of the horizontal components of the movement vector of the first, second and third candidate blocks, and select a vertical component of the motion vector to be used to differentially encode the vertical components of the movement vector of the 20 first and second fields of the current macroblock with field coding in accordance with a value derived from the vertical components of the movement vector of the first, second and third candidate blocks. 9. The method according to claim 8, wherein at least one of the candidate blocks is a
  10. P1134 / 9S MX * macroblock candidate with field coding that has first and second fields, each with the respective horizontal and vertical component of the motion vector. 10. The method according to claim 9, wherein: the step of selecting the horizontal component * of the motion vector effects a selection to encode the horizontal component of the motion vector ^^ of the first field of the current macroblock in accordance with 10 the median of (i) the horizontal components of the movement vector of the candidate blocks different from the at least one candidate macroblock with field coding, if any, and (ii) the horizontal components of the movement vector of the first field of the at least 15 a candidate macroblock with field coding; the step of selecting the horizontal component of the motion vector effects a selection to encode the horizontal component of the motion vector of the second field of the current macroblock in accordance with the median of (i) the horizontal components of the motion vector of the candidate blocks different from the at least one candidate macroblock with field coding, if any, and (ii) the horizontalee components of the movement vector of the second field of the at least one candidate macroblock with field coding;
  11. P1134 / 98 MX
  12. The selection of the vertical component of the motion vector makes a selection to code the vertical component of the motion vector of the first field of the current macroblock is determined in accordance with the median of (i) the vertical components of the vector of Candidate block movements differ from at least one candidate macroblock with field coding, if any, and (ii) the vertical components of the movement vector of the candidate block. "^? 0 first field of the at least one candidate macroblock with camp coding, the selection step of the vertical component of the movement vector makes a selection to encode the vertical component of the movement vector of the second 15 field of the current macroblock is determined in accordance with a median of (i) the vertical components of the motion vector of the candidate blocks different from the at least one candidate macroblock with field coding, if any, and (ii) 20 the vertical components of the motion vector of the second field of the at least one candidate macroblock with field coding. The method according to claim 9, comprising the additional steps of: averaging the respective components
  13. P1134 / 98 MX * horizontal first and second of the field movement vector of the at least one candidate macroblock with field coding to obtain at least a corresponding averaged horizontal component of the motion vector, where: the horizontal component selected from the motion vector to be used in differentially encoding the orizontalee component of the motion vector of at least one of the first and second fields of the
  14. The current macroblock is determined in accordance with the median of (i) the horizontal components of the movement vector of the candidate blocks other than the at least one candidate macroblock with field coding, if any, and (ii) the at least one correspondent 15 averaged horizontal component of the motion vector; And averaging the respective first and second vertical components of the field motion vector of at least one candidate macroblock with field coding 20 to obtain at least one corresponding averaged vertical component of the motion vector; where: the selected vertical component of the motion vector to be used to differentially encode the vertical components of the motion vector of 25 menoe one of the first and second fields of the
  15. P1134 / 98 MX
  16. The current macroblock determines in accordance with the median of (i) the vertical components of the motion vector of the candidate blocks, different from at least one candidate macroblock with field coding, if any, and (ii) the at least one Corresponding vertical component averaged from the movement vector. The method according to claim 11, wherein: the horizontal components of the first and second "^ k field of the movement vector of the at least one candidate macroblock with field coding is averaged such that all fractional pixel shifts are correlated with a half pixel shift, and the vertical components of the first and second field are correlated. of the movement vector of the at least one candidate macroblock with field coding are averaged in such a way that all fractional pixel slides are correlated with a 20 half pixel offset. 13. A method for decoding a current block of digital video image data, the current block has differentially encoded horizontal and vertical components of the motion vector, which 25 comprises at least one of the steps of:
  17. P1134 / 98 MX (a) determining a horizontal component of the motion vector used to differentially encode the horizontal component of the motion vector of the current block in accordance with a value based on the horizontal components of the motion vector of the candidate blocks first, second and third, and (b) determining a vertical component of the motion vector used to differentially encode a vertical component of the motion vector of the current block in accordance with a value based on the vertical components of the motion vector of the candidate blocks first , second and third; wherein: the first block is at least a portion of a first macroblock immediately preceding the current block in a current row; the second block is at least a portion of a second macroblock that is immediately above the current block in a preceding row; the third block is at least a portion of a third macroblock immediately following the second macroblock in the preceding row; and at least one of the candidate blocks is first, second and third and the current block has field coding. 14. The method according to claim 13, in
  18. P1134 / 98 MX where: the current block is a block with progressive coding or a block with advanced prediction coding; and at least one of the candidate blocks is a candidate macroblock with field coding having first and second fields, each with the respective horizontal and vertical components of the motion vector. The method according to claim 14, wherein the horizontal component of the motion vector used in the coding of the horizontal component of the movement vector of the first field of the current macroblock is determined in accordance with the median of (i) the horizontal components of the movement vector of the candidate blocks different from the at least one candidate macroblock with field coding, if any, and (ii) the horizontal components of the movement vector of the first field of the at least one candidate macroblock with field coding; the horizontal component of the motion vector used in the coding of the horizontal component of the motion vector of the second field of the current macroblock is determined in accordance with the median of (i) the horizontal components of the motion vector of the candidate blocks differ from the menoe a
  19. P1134 / 98 MX candidate macroblock with field coding, if any, and (ii) the horizontal components of the movement vector of the second field of the at least one candidate macroblock with field coding; the vertical component of the motion vector used in the vertical component coding of the motion vector of the first field of the current macroblock is determined according to the median of (i) the vertical components of the motion vector of the candidate blocks different from the minus a candidate macroblock with field coding, if any, and (ii) the vertical components of the movement vector of the first field of the at least one candidate macroblock with field coding; the vertical component of the motion vector used in the vertical component coding of the motion vector of the second field of the current macroblock is determined in accordance with the median of (i) the vertical components of the motion vector of the candidate blocks other than at minus a candidate macroblock with field coding, if any, and (ii) the components of the movement vector of the second field of the field, at least one candidate macroblock with field coding. 16. The method according to claim 14 or 15,
  20. P1134 / 98 MX comprising the additional steps of: averaging the respective horizontal components of the first and second field of the movement vector of the at least one candidate macroblock with field coding to obtain at least a corresponding averaged horizontal component of the motion vector; wherein: the horizontal component of the motion vector used to differentially encode the horizontal components of the motion vector of at least one of the first and second fields of the current macroblock is determined in accordance with the median of (i) the horizontal components of the vector of movement of candidate blocks different from at least one 15 candidate macroblock with field coding, if any, and (ii) the at least one corresponding horizontal component averaged from the motion vector;
  21. And averaging the respective vertical components 20 of the first and second field of the movement vector of the at least one candidate macroblock with field coding to obtain at least a corresponding averaged vertical component of the motion vector; where: the vertical component of the motion vector 25 used to differentially encode the components
  22. P1134 / 9S MX verticals of the movement vector of at least one of the first and second fields of the current macroblock is determined in accordance with the median of (i) the vertical components of the movement vector of the candidate blocks other than the at least one candidate macroblock with field coding, if there is any and, (ii) the at least one corresponding averaged vertical component of the motion vector. The method according to claim 16, wherein: the horizontal components of the first and second field of the motion vector of the at least one candidate macroblock with field coding are averaged such that all fractional pixel slides correlate with a displacement of half a pixel; and the vertical components of the first and second field of the motion vector of the at least one candidate macroblock with field coding are averaged such that all fractional pixel shifts are correlated with a half pixel shift. 18. The method of one of claims 13 to 17, wherein the current block is a macroblock with field coding having first and second field,
  23. P1134 / 98 MX
  24. Each one with the respective horizontal and vertical components of the motion vector, the method comprises the additional step of: determining a horizontal component of the motion vector used to differentially encode the horizontal components of the motion vector of the first and second fields of the current macroblock with field coding in accordance with a value based on the horizontal components of the motion vector of ßc the candidate blocks first, second and third; and determining a vertical component of the motion vector used in differentially encoding the vertical components of the motion vector of the first and second fields of the current macroblock with 15 field coding in accordance with a value based on the vertical components of the motion vector of the first, second and third candidate blocks. 19. The method according to claim 18, wherein at least one of the candidate blocks is a 20 macroblock with field coding having first and second fields, each with respective horizontal and vertical components of the motion vector. 20. The method according to claim 19, wherein the horizontal component of the motion vector
  25. 25 used to differentially encode the components P1134 / 98 MX horizontals of the motion vector at least one of the first and second fields of the current macroblock with field coding is determined in accordance with the median of the horizontal components of the motion vector of the candidate blocks, including the corresponding horizontal components of the vector of movement of the first and second fields of the at least one candidate macroblock with field coding; and vertical component of the motion vector used in differentially encoding the vertical components of the motion vector of at least one of the first and second fields of the current macroblock with field coding is determined in accordance with the median of the vertical components of the vector movement of the candidate blocks, including the corresponding vertical components of the movement vector of the first and second fields of the at least one candidate macroblock with field coding. 21. The method according to claim 19, comprising the additional steps of: averaging the respective horizontal components of the first and second field of the motion vector of the at least one candidate macroblock with field coding to obtain at least one corresponding horizontal component vector averaged P1134 / 98 MX of movement; wherein the horizontal component of the motion vector used to differentially code the horizontal components of the motion vector of the first and second fields of the current macroblock with field coding is determined in accordance with the median of the horizontal components of the movement vector of the candidate blocks different from the at least one candidate macroblock with field coding, if any, and the at least one corresponding horizontal component averaged from the motion vector; and averaging the vertical components of the first and second field of the motion vector of the at least one candidate macroblock with field coding to obtain at least one corresponding averaged vertical component of the motion vector; where: the vertical component of the motion vector used to differentially encode. The verticale components of the movement vector of the first and second fields of the current macroblock with field coding ee determines the conformity of the median of the "vertical components of the vector of movement of the candidates different from the at least a candidate macroblock with field coding, if any, and the P1134 / 98 MX at least a corresponding averaged vertical component of the motion vector. 22. The method according to claim 21, wherein: the horizontal components of the first and second field of the movement vector of the at least one candidate macroblock with field coding are averaged such that all the shifts ^. fractions of pixels are correlated with a 10 half pixel shift; and the vertical components of the first and second field of the motion vector of the at least one candidate macroblock with field coding are averaged such that all fractional pixel shifts correlate with a half-pixel shift. 23. The method according to one of claims 13 to 22, wherein: the horizontal component of the motion vector used to differentially encode the horizontal component of the motion vector of the current block is determined in accordance with the median of the horizontal component of the block. movement vector of the first, second and third candidate blocks; and 25 the vertical component of the movement vector P1134 / 98 MX used in differentially encoding the vertical component of the motion vector of the current block is determined in accordance with the median of the verticalee components of the motion vector of the block 5 candidate first, second and third. 24. The method according to claims 13 a 23, which comprises the additional step of: decoding the candidate blocks first, ^, second and third to recover the horizontal components • . . 10 and vertical movement vector associated with them. 25. The method according to claim 13 to 24, comprising the additional step of: recovering the data transmitted with the at least one component of the differentially encoded motion vector indicating whether the current block is coded field.
  26. 26. The method according to claim 25, wherein: the coding mode designates the components of the motion vector of one of the first, second and third candidate blocks as the same as the components of the motion vector used in differentially encoding a the vector components of 25 movement of the current block. P1134 / 98 MX
  27. 27. The method according to one of the claims 13 to 26, wherein the digital video image comprises macroblocks that are processed row by row, comprising the additional steps of: processing the second and third macroblocks in the preceding row to recover the horizontal and vertical components of the associated motion vector with the same; store the horizontal and vertical components of the motion vector associated with macroblocks xO second and third; processing the first macroblock in the current row to retrieve the horizontal and vertical components of the motion vector associated with it; and subsequently recover the horizontal and vertical components of the
  28. The motion vector is associated with the macroblock, second and third to be used in at least one of the determination steps. 28. A method for filling a digital video image that includes a plane of the video object (VOP) of
  29. In the field encoded or field encoded, comprising pixelee lines of the upper and lower field conveyed in an interleaved order to provide a reference filled VOP, the VOP will be transported, at least in part, in a region that includes pixels that 25 outside the pixel limit of the VOP, the method
  30. P1134 / 9S MX it comprises the steps of: processing the pixel lines of the upper and lower field of the interleaved order to provide an upper field block comprising the upper field pixel lines and, a lower field block comprising the pixelee lines of the lower field; and filling the outer pixels separately within the respective upper and lower field blocks. 29. The method according to claim 28, comprising the additional step of: processing the pixel lines of the upper and lower field comprising filled outer pixels in interleaved order. 30. The method according to claim 28 or 29, where: when a particular pixel of the outer pixels is located between the vertex pixels of the VOP in the corresponding field block, the filling step comprises the additional step of: assigning a particular pixel of the outer pixels a value in accordance with the average doe pixelee limit. 31. The method according to claim 28 or 29, wherein:
  31. P1134 / 98 MX when a particular pixel of the outer pixels is located between one of the boundary pixels of the VOP and one edge of the region in the corresponding field block but, not between two of the boundary pixels of the VOP at 5 the corresponding field block, the The filling step comprises the additional step of: assigning a particular pixel of the outer pixels to a value of conformity with one of the pixels "limit". 32. The method according to claim 28 or 29, where: when a particular pixel of the outer pixels is located between two edges of the region in the corresponding field block, but not between one of the 15 pixelee limit of the VOP and one edge of the region in the corresponding field block, and not between two of the ga pixels limit of the VOP in the corresponding field block, the filling step comprises the additional step of: assigning to the particular pixel of the pixels 20 outside a conformance value with at least one of: (a) a filled outer pixel that is closer to the particular pixel of the outer pixels moving horizontally in the region in the corresponding field block; and 25 (b) a filled outer pixel that is more
  32. P1134 / 98 MX close to the particular pixel of the outer pixels that are moving vertically in the region in the corresponding field block. 33. An apparatus for providing components 5 horizontal and vertical motion vector to be used in differentially encoding the respective horizontal and vertical component of the motion vector of a current block of a digital video image, in _ where T? the first, second and third candidate blocks have aoceciated horizontal and vertical component of the motion vector; the first block is at least a portion of a first macroblock immediately preceding the current block 15 in a current row; the second blog is at least a portion of a second macroblock that is immediately above the current block in a preceding row; the third block is at least a portion of a third macroblock immediately following the second macroblock in the preceding row; and at least one of the first, second and third candidate blocks and the current block is coded field. 25 the apparatus comprises at least one of:
  33. P1134 / 98 MX (a) a means for electing a horizontal component of the motion vector to be used to differentially encode the horizontal component of the motion vector of the current block in accordance with a value derived from the horizontal components of the motion vector of the candidate blocks first, second and third; and (b) a means for electing a vertical component of the motion vector for use in differentially encoding the vertical component of the motion vector of the current block in accordance with a value derived from the vertical components of the motion vector of the candidate blocks first, second and third. 34. The apparatus according to claim 33, wherein at least one particular macroblock of the first, second and third macroblocks comprises a plurality of blocks, each of which has associated horizontal and vertical components of the appropriate motion vector to be used. In differentially encoding the components of the motion vector of the current block, the apparatus further comprises: means for selecting a block of the plurality of blocks in the particular macroblock that is closest to the left upper portion of the block
  34. P1134 / 9S MX 9 * current as the candidate block of the particular macroblock.
  35. 35. The apparatus according to claim 33 or 34, further comprising: a means for • providing data for the traffic with the at least one component of the differentially encoded motion vector indicating whether the current block is coded field.
  36. 36. The apparatus according to claim 33 to 35, wherein: the current block is a block with progreeiva coding or with advanced prediction coding; and at least one of the candidate blocks is a coded field candidate macroblock having first and second fields, each with the respective horizontal and vertical components of the motion vector.
  37. 37. The apparatus according to claim 36, wherein: the medium. to select a horizontal component of the movement vector makes a selection 20 in accordance with the median of the horizontal components of the motion vector of the candidate blocks, including the corresponding horizontal components of the motion vector of the first and second fields of the at least one candidate macroblock of 25 coded field; Y P1134 / 98 MX the means for selecting a vertical component of the motion vector effects a selection in accordance with the median of the vertical components of the movement vector of the candidate blocks, including the corresponding vertical components of the motion vector of the first and second fields of the minus a coded field candidate macroblock.
  38. 38. The apparatus according to claim 36, further comprising: means for averaging the respective horizontal components of the first and second field of the motion vector of the at least one candidate field macroblock coded to obtain at least a corresponding averaged horizontal component of the movement vector; wherein the means for selecting a horizontal component of the motion vector effects a selection in accordance with the median of the horizontal components of the motion vector of the candidate blocks different from the at least one candidate coded field macroblock, if any and, the at least one corresponding horizontal averaged of the motion vector; and a means for averaging the respective vertical components of the first and second field of the P1134 / 98 MX movement vector of the at least one candidate field macroblock coded to obtain at least a corresponding averaged vertical component of the motion vector; wherein: the means for selecting a vertical component of the motion vector effects a selection in accordance with the median of the vertical components of the motion vector of the candidate blocks other than the at least one candidate coded field macroblock, if any and , the at least one corresponding vertical averaged of the motion vector.
  39. 39. The apparatus according to claim 38, wherein: the horizontal components of the first and second field of the motion vector of the at least one candidate coded field macroblock are averaged such that all fractional pixel shifts are correlated with a half pixel displacement; and the verticalee component of the motion vector of the first and second field of the at least one coded field candidate macroblock are averaged such that all fractional pixel shifts correlate with a half pixel shift. P1134 / 98 MX
  40. 40. The apparatus according to one of claims 33 to 35, wherein: the current block is a coded field macroblock having first and second fields, each with the respective horizontal and vertical components of the motion vector; the motion vector horizontal component selection means selects a horizontal component of the motion vector to be used in differentially encoding the horizontal components of the motion vector of the first and second fields of the current coded field macroblock in accordance with a value derived from the horizontal components of the movement vector of the first, second and third candidate blocks; and the vertical component selection means of the motion vector selects a vertical component of the motion vector to be used in differentially encoding the vertical components of the motion vector of the first and second fields of the current coded field macroblock in accordance with a derived value of the vertical components of the movement vector of the first, second and third candidate blocks. 41. The apparatus according to claim 40, wherein:
  41. P1134 / 98 MX at least one of the candidate blocks is a coded field candidate macroblock having first and second fields, each with the respective horizontal and vertical component of the motion vector.
  42. 42. The apparatus according to claim 41, wherein: the means for electing a horizontal component for the motion vector effects a selection to encode the horizontal component of the '10 motion vector of the first field of the current macroblock in accordance with the median of (i) the horizontal components of the movement vector of the candidate blocks different from the at least one candidate coded field macroblock, if any, and (ii) the 15 horizontal components of the movement vector of the first field of the at least one macroblock coded field candidate; -% .- the means for selecting a horizontal component of the motion vector effects a selection 20 to encode the horizontal component of the motion vector of the second field of the current macroblock in accordance with the median of (i) the horizontal components of the motion vector of the different candidate blocks from the at least one macroblock 25 coded field candidate, if any, and (ii) the P1134 / 98 MX horizontal components of the movement vector of the second field of the at least one coded field candidate macroblock; the means for selecting a vertical component of the motion vector effects a selection for encoding the vertical component of the motion vector of the first field of the current macroblock is determined in accordance with the median of (i) the vertical components of the motion vector of the blocks candidates other than at least one candidate coded field macroblock, if any, and (ii) the vertical components of the movement vector of the first field of the at least one coded field candidate macroblock; and the means for selecting a vertical component of the motion vector effects a selection to encode the vertical component of the motion vector of the second field of the current macroblock is determined in accordance with a median of (i) the vertical components of the movement vector of the block candidate from the at least one candidate coded field macroblock, if any, and (ii) the verticalee components of the movement vector from the second field of the at least one coded field candidate macroblock. P1134 / 98 MX
  43. 43. The apparatus according to claim 41 or 42, further comprising: means for averaging the respective first and second horizontal component of the field movement vector of the at least one coded field candidate macroblock to obtain at least one corresponding averaged horizontal component of the motion vector, wherein: the selected horizontal component of the motion vector for use in differentially encoding the horizontal components of the motion vector of at least one of the first and second fields of the current macroblock is determined in accordance with the median of (i) the horizontal components of the vector of 15 movement of the candidate blocks different from the at least one candidate coded field macroblock, if any, and (ii) the at least one corresponding '^ horizontal component averaged motion vector; And a means for averaging the respective first and second vertical components of the field motion vector of the at least one candidate coded field macroblock to obtain at least a corresponding vertical component averaged from the vector 25 of movement; where: P1134 / 98 MX the vertical component selected from the motion vector to be used in differentially encoding the vertical components of the motion vector of at least one of the first and second fields of the current macroblock is determined in accordance with the median of (i) the verticalee components of the vector of movement of candidate blocks different from at least one macroblock candidate of coded field, there are some and, (ii) the at least one corresponding averaged vertical component of the motion vector.
  44. 44. The apparatus according to claim 43, wherein: the horizontal components of the first and second field of the motion vector of the at least one coded field candidate macroblock are averaged such that all fractional pixel shifts are correlated with a half pixel offset; And the vertical components of the first and second field of the motion vector of the at least one coded field candidate macroblock are averaged such that all pixel fractional correlations are correlated with a half pixel shift.
  45. 45. An apparatus for decoding a current block of digital video image data, the current block has P1134 / 98 MX ^ F associated differentially encoded horizontal and vertical components of the motion vector, comprising at least one of: (a) a means for determining a horizontal component of the motion vector used to differentially encode the horizontal component of the motion vector of the block current in accordance with a value attached to the horizontal component of the movement vector of the candidate blocks first, selecting and third, and (b) a means to determine a vertical component of the motion vector used in differentially encoding a vertical component of the motion vector of the current block in accordance with a value 15 based on the vertical components of the movement vector of the first, second and third candidate blocks; wherein: the first block is at least a portion of a first macroblock immediately preceding the current block 20 in a current row; the second block is at least a portion of a second macroblock that is immediately above the current block in a preceding row; the third block is at least a portion of a third macroblock that immediately follows the second P1134 / 98 MX macroblock in the preceding row; and at least one of the first, second and third candidate blocks and the current coded field block ee.
  46. 46. The apparatus according to claim 45, wherein: the current block is a progressive coding block or a block with advanced prediction coding; and ^. at least one of the candidate blocks is a * ^ 0 macroblock coded field candidate that has first and second fields, each with the respective horizontal and vertical component of the motion vector.
  47. 47. The apparatus according to claim 46, wherein: the horizontal component of the motion vector used in the coding of the horizontal component of the motion vector of the first field of the macroblock > current is determined in accordance with the median of (i) the horizontal components of the motion vector of 20 the candidate blocks are different from the at least one coded field candidate macroblock, and there are some, and (ii) the horizontal components of the motion vector of the first field of the at least one coded field candidate macroblock; 25 the horizontal component of the movement vector P1134 / 98 MX used in the coding of the horizontal component of the motion vector of the second field of the current macroblock is determined in accordance with the median of (i) the horizontal components of the motion vector of 5 block candidates different from the at least one macroblock candidate field encoded, there is some and, (ii) the horizontal components of the movement vector of the second field of the at least one candidate macroblock ^^ of coded field; '- "LO The vertical component of the motion vector used in the coding of the vertical component of the motion vector of the first field of the current macroblock is determined in accordance with the median of (i) the vertical components of the movement vector of the 15 candidate blocks different from the at least one candidate coded field macroblock, if any, and (ii) the vertical components of the movement vector of the first field of the at least one coded field candidate macroblock; The vertical component of the motion vector used in the coding of the vertical component of the motion vector of the second field of the current macroblock is determined in accordance with the median of (i) the vertical components of the motion vector of the locus. 25 candidate blocks different from at least one P1134 / 98 MX W? macroblock coded field candidate, there are some and, (ii) the vertical components of the movement vector of the second field of the at least one coded field candidate macroblock.
  48. 48. The apparatus according to claim 46, further comprising: a means for averaging the respective horizontal components of the first and second field of the ^^ movement vector of at least one macroblock -10 coded field candidate to obtain at least one corresponding averaged horizontal component of the motion vector; wherein: the horizontal component of the motion vector used to differentially encode the horizontal components of the motion vector of at least one of the first and second fields of the current macroblock is determined in accordance with the median of (i) the horizontal components of the movement vector of the candidate blocks different from the at least one candidate macroblock of coded field, if any and, (ii) the at least one corresponding horizontal component averaged from the movement vector; and a means for averaging the respective vertical components of the first and second field of the 25 movement vector of at least one macroblock P1134 / 98 MX ^ fc ^ coded field candidate to obtain at least a corresponding averaged vertical component of the motion vector; where: the vertical component of the motion vector 5 used in differentially encoding the vertical components of the motion vector of the at least one of the first and second fields of the current macroblock is determined in accordance with the median of (i) the vertical components of the motion vector of the ^ LO candidate blocks different from the at least one macroblock candidate of coded field, if any and, (ii) the at least one corresponding averaged vertical component of the motion vector.
  49. 49. The apparatus according to claim 48, wherein: the horizontal components of the first and second field of the motion vector of the at least one candidate coded field macroblock are averaged such that all pixel fractional shifts 20 correlate with a half pixel shift; and the vertical components of the first and second field of the motion vector of the at least one coded field candidate macroblock are averaged such that all pixel fractional shifts 25 are correlated with a half pixel offset. P1134 / 98 MX >
  50. 50. The apparatus of one of claims 45, wherein the current block is a coded field macroblock having first and second fields, each with the respective horizontal and vertical component of the block. 5 motion vector, the apparatus further comprises: means for determining a horizontal component of the motion vector used to differentially encode the horizontal components of the vector of «Movement of the first and second field of the current field macroblock j.0 coded in accordance with a value evaluated in the horizontal components of the movement vector of the first, second and third candidate blocks; and a means for determining a vertical component 15 of the motion vector used in differentially encoding the vertical components of the motion vector of the first and second fields of the current coded field macroblock in accordance with a value based on the vertical components of the vector of the vector. movement of the first, second and third candidate blocks.
  51. 51. The apparatus according to claim 50, wherein at least one of the candidate blocks is a coded field macroblock having field first and 25 second, each with respective horizontal and P1134 / 98 MX second, each with respective horizontal and vertical component of the motion vector.
  52. 52. The apparatus according to claim 51, wherein: the horizontal component of the motion vector used in differentially encoding the horizontal components of the motion vector of at least one of the first and second fields of the current coded field macroblock is determined from conformity with the median of the horizontal components of the movement vector of the candidate blocks, including the corresponding horizontal components of the movement vector of the first and second fields of the at least one candidate coded field macroblock; and the vertical component of the motion vector used to differentially code the vertical components of the motion vector of at least one of the first and second fields of the current coded field macroblock is determined in accordance with the median of the vertical components of the vector movement of the candidate block, including the corresponding vertical components of the movement vector of the first and second fields of the at least one coded field candidate macroblock.
  53. 53. The apparatus according to claim 51 or 52, P1134 / 98 MX * which further comprises a means for averaging the respective horizontal components of the first and second field of the motion vector of the at least one candidate field-coded macroblock to obtain at least a corresponding averaged horizontal component of the motion vector; where the horizontal component of the motion vector used to differentially encode the 10 horizontal components of the movement vector of the first and second fields of the current coded field macroblock is determined according to the median of the horizontal components of the movement vector of the different candidate blocks of the at least one 15 macroblock candidate of coded field, if any, and the at least one corresponding horizontal component < Jfe averaged from the movement vector; and a means for averaging the respective vertical components of the first and second field of the 20 movement vector of the at least one coded field candidate macroblock to obtain a corresponding averaged vertical component of the motion vector; where: the vertical component of the motion vector 25 used in differentially encoding the components P1134 / 5Í MX The vertical vectors of the movement vector of the first and second fields of the current coded field macroblock are determined according to the median of the vertical components of the movement vector of the different candidate blocks of the at least one candidate coded field macroblock, if any. some, and the at least one corresponding averaged vertical component of the motion vector.
  54. 54. The apparatus according to claim 53, wherein: the horizontal components of the first and second field of the motion vector of the at least one candidate coded field macroblock are averaged such that all fractional pixel shifts correlate with a half pixel shift; and the vertical components of the first and second field of the motion vector of the at least one coded field candidate macroblock are averaged such that all fractional pixel shifts correlate with a half-pixel shift.
  55. 55. The apparatus according to one of claims 45 to 52, wherein: the horizontal component of the motion vector used to differentially encode the component Pll 4/98 MX 1 * horizontal movement vector of the current block is determined in accordance with the median of the horizontal components of the movement vector of the first, second and third candidate blocks; and the vertical component of the motion vector used to differentially code the vertical component of the motion vector of the current block is determined in accordance with the median of the vertical components of the movement vector of the first, second and third candidate blocks.
  56. 56. The apparatus according to claims 45 to 55, further comprising: a decoder for decoding the first, second and third candidate blocks to recover the 15 horizontal and vertical components of the motion vector associated with them. ^
  57. 57. The apparatus according to claim 45 to 56, further comprising: means for recovering transmitted data with the at least one component of the differentially encoded motion vector indicating whether the current block is coded field.
  58. 58. The apparatus according to claim 57, wherein: the coding mode designates the components Pll 34/98 H? * of the motion vector of one of the first, second and third candidate blocks as the same as the components of the motion vector used to differentially encode the components of the motion vector of the current block.
  59. 59. The apparatus according to one of claims 45 to 58, wherein the digital video image comprises macroblocks that are processed row by row, comprising 3j # additionally: a means for processing the second and third macroblocks in the preceding row for recover the horizontal and vertical components of the movement vector associated with them; a means to store the components 15 horizontal and vertical motion vector associated with the second and third macroblocks; "t_" - means for processing the first macroblock in the current row to recover the horizontal and vertical components of the movement vector associated with it; 20 a means for subsequently recovering the horizontal and vertical components of the motion vector associated with the second and third macroblocks for use by at least one of the determination steps. 25
  60. 60. An apparatus for filling a video image Fl 134/98 MX * digital including a plane of the coded field or coded field video object (VOP), comprising pixel lines of the upper and lower field transported in an interleaved order to provide a reference filled VOP, the VOP will be transported, at least partially, in a region that includes pixels that are outside the boundary pixels of the VOP, the apparatus comprises: id a means to process the pixel lines of 10 upper and lower field of the interleaved order to provide an upper field block comprising the upper field pixel lines and, a lower field block comprising the pixel lines of the lower field; and 15 filling the outer pixels separately within the respective upper and lower field blocks. P1134 / 98 MX
MXPA/A/1998/001809A 1997-03-07 1998-03-06 Estimation and compensation of the movement of planes of the video object for digital video entrelaz MXPA98001809A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US60/040,120 1997-03-07
US60/042,245 1997-03-31
US08897847 1997-07-21

Publications (1)

Publication Number Publication Date
MXPA98001809A true MXPA98001809A (en) 1999-05-31

Family

ID=

Similar Documents

Publication Publication Date Title
US6026195A (en) Motion estimation and compensation of video object planes for interlaced digital video
AU724796B2 (en) Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
CA2230422C (en) Intra-macroblock dc and ac coefficient prediction for interlaced digital video
JP6312787B2 (en) Moving picture decoding apparatus, moving picture decoding method, moving picture encoding apparatus, moving picture encoding method, moving picture encoded data, and recording medium
US6483874B1 (en) Efficient motion estimation for an arbitrarily-shaped object
USRE41383E1 (en) Method and apparatus for encoding interplaced macroblock texture information
EP2178302A2 (en) Image coding apparatus and image decoding apparatus
EP1835757B1 (en) Motion picture encoding
JP3440830B2 (en) Image encoding apparatus and method, and recording medium
JP2000023194A (en) Method and device for picture encoding, method and device for picture decoding and provision medium
USRE38564E1 (en) Motion estimation and compensation of video object planes for interlaced digital video
MXPA98001809A (en) Estimation and compensation of the movement of planes of the video object for digital video entrelaz
AU758254B2 (en) Padding of video object planes for interlaced digital video
AU728756B2 (en) Motion estimation and compensation of video object planes for interlaced digital video
JP2012186762A (en) Video encoding device, video decoding device, video encoding method, and video decoding method
MXPA98001810A (en) Prediction and coding of planes of the object of video of prediccion bidireccional for digital video entrelaz
MXPA98001807A (en) Prediction of dc and ac coefficient of intra-macrobloque for digital video concaten
MXPA00008676A (en) Method and apparatus for padding interlaced macroblock texture information