USPatent applicationPatented

Motion vector estimation apparatus

Granted 28 May 2013 · 5 office actions

Life of the application

19 dated events
⤢ drag to zoom20062008201020122014201620182020202220242026ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

The present invention provides a motion vector estimation apparatus which can decrease circuit size by reducing the amount of computations for detecting a motion vector. The motion vector estimation apparatus in the present invention includes a motion vector estimation unit which estimates a motion vector MV 0 F for the target block BL 0 by searching within a reference picture P 1 for a block with an image similar to an image in the target block BL 0 , which is included in a picture B 2 ; a prediction calculation unit and a prediction range control unit which specify a search range in the reference picture P 1 based on the motion vector MV 0 F and; the motion vector estimation unit estimates the motion vector MV 1 F for the target block BL 1 by searching in the search range for a block with an image similar to an image in the target block BL 1 , which is included in the picture B 3.

Description

20 parts
›BACKGROUND OF THE INVENTION · 1 of 2

(1) Field of the Invention

The present invention is a motion vector estimation apparatus used for inter-picture prediction coding of a moving picture made up of plural pictures and relates to a motion vector estimation apparatus for estimating a position in another picture from which a block has moved, and expressing the motion with motion vectors.

(2) Description of the Related Art

Generally, in picture coding, an amount of information is compressed by using redundancies in spatial direction and temporal direction in moving pictures. Thus, inter-picture prediction coding is used as a method of utilizing redundancies in temporal direction. When coding a picture with inter-picture prediction coding, a picture at the front or the back of the display order is selected as a reference picture. Next, motion vectors are estimated from the reference picture, and the amount of information is compressed by removing redundancies in spatial direction relative to a difference value between a picture, on which motion compensation is performed, and a picture targeted for coding.

In motion picture encoding methods such as MPEG, a picture which performs intra-picture prediction coding using only a picture to be coded without a reference picture is called an I picture. Here, a picture represents an encoding basis which includes both a frame and a field. A picture which is intra-frame prediction coded by referencing a frame that has already been coded is called a P picture, and a picture which is inter-frame prediction coded by referencing two frames that have already been coded is called a B picture.

FIG. 1 is a schematic diagram which shows the prediction relationships for each picture in a motion picture coding scheme. In FIG. 1 , a vertical line indicates a picture and, at the bottom right of each picture, a picture type (I, P, B) is shown. The arrows in FIG. 1 indicate that the picture at the tip of the arrow is inter-picture prediction coded using the picture at the rear of the arrow as a reference picture. For example, the second B picture from the top of the order is encoded using the I picture at the top of the order and the fourth P picture from the top of the order as reference pictures.

FIG. 2 is a diagram which shows the display sequence and the coding sequence of the pictures.

As shown in (a) of FIG. 2 , the display sequence for the pictures is P picture P 1 , B picture B 2 , B picture B 3 , P picture P 4 , B picture B 5 , B picture B 6 , P picture P 7 , B picture B 8 , B picture B 9 and P picture P 10 . On the other hand, the coding sequence for these pictures is B picture B 1 , P picture P 4 , B picture B 2 , B picture B 3 , P picture P 7 , B picture B 5 , B picture B 6 , P picture P 10 , B picture B B 8 and B picture B 9 .

Note that in comparison to conventional moving picture coding schemes such as MPEG-2, in the latest version of the moving picture coding scheme H.264, a B picture may reference more than three B pictures.

FIG. 3 is a diagram which shows the reference relationships in H.264.

As shown in FIG. 3 , a B pictures references, for instance, a P picture that is two pictures ahead and a P picture that is one picture behind the B picture in the display order. Next, the motion vectors in the B picture are estimated. In this way, for H.264, the number of reference pictures which can be referenced for estimating motion vectors relative to the same B picture is larger than MPEG2 (see for example Non-Patent Document 1, ITU-T Recommendation H.264(03/2005): “Advanced video coding for generic audiovisual services”, ITU-T and Non-Patent Document 2, H.264 and MPEG-4 Video Compression “Video Coding for Next generation Multimedia” WILEY.

However, motion vector estimation in inter-picture prediction coding is performed on a block basis. For every block included in the picture targeted for coding, a block with an image nearest the image in the block is searched for among the reference pictures. Thus, in motion vector estimation, the motion vector estimation search range is set in advance in consideration of the normal computation load and the accuracy of the motion vector. Thus, a case where a target moves along with the lapsing of time is anticipated and is compared to the distance between the picture to be coded and the reference picture, and the search range for the motion vector must be expanded.

FIG. 4 is a diagram which shows search ranges for motion vector estimation.

For example, when the distance (inter-picture distance) between the picture to be coded and the reference picture is 1 , and the motion vector search range is ±S×±S, once the inter-picture distance becomes d, the search range for the motion estimation search range becomes (dx±S)×(dx±S). In this way, the search range expands by d×d times. In other words, when the inter-picture distance lengthens, the search range expands in proportion to the rate of change in the distance squared.

As shown in FIG. 4 , when the motion vectors MV 1 , MV 2 and MV 3 for the block included in the (n+3)th picture to be coded are estimated using an nth reference picture, an (n+1)th reference picture or an (n+2)th reference picture, the search range of the (n+1)th reference picture is 2×2 times the search range of the (n+2)th reference picture and the search range for the nth reference picture is 3×3 times the search range of the (n+2)th reference picture.

Thus, when the inter-picture distance increases, the search range for the motion vectors expands sharply and the amount of computations becomes enormous. Thus, in order to decrease the amount of computations, motion vector estimation apparatuses have been proposed which estimate motion vectors by telescopic searches (see for example, Patent Document 1, Japanese Patent Publication No. 2830183, Patent Document 2, Japanese Patent Publication No. 3335137 and Patent Document 3, Japanese Laid-Open Patent No. H10-341440 Publication).

A telescopic search is a method for estimating motion vectors by successively searching for motion in a picture that is between a reference picture and a picture to be coded. In this method, even if the inter-picture distance lengthens, the search range expands proportionally by the rate of change in the distance, not by the ratio of the change in the distance squared.

›BACKGROUND OF THE INVENTION · 2 of 2

FIG. 5 is a diagram which shows a telescopic search.

For example, the motion vector for a block (target block) included in the (n+3)th picture to be coded is estimated using the nth reference picture. In this case, for the telescopic search, a motion vector v 1 is estimated relative to the (n+2)th picture from the (n+3)th picture using a search range (±S×±S) centered on the same position as the target block in the (n+2)th picture. Next, a motion vector v 2 +v 1 is estimated relative to pictures from the (n+3)th picture to the (n+1)th picture using a search range (±S×±S) centered on the position indicated by the motion vector v 1 in the (n+1)th picture. In the same way, the motion vector v 3 +v 2 +v 1 is estimated from the (n+3)th picture to the nth picture, using the search range (±S×±S) centered on a position indicated by the motion vectors v 2 +v 1 in the nth picture. This motion vector is the motion vector v 0 for the target block. In other words, the overall search range becomes 3×(±S×±S).

However, there is the problem that when the motion vector estimation apparatuses in Patent Document 1 through 3 perform a telescopic search, the amount of computations is large.

In other words, in a telescopic search, the search range in each picture is fixed by performing successive motion searches on pictures between a reference picture and a picture to be coded without regard to the respective picture distances. However, in a telescopic search, motion searches are performed successively for pictures between a reference picture and a picture to be coded, and therefore since the reference pictures as well as unrelated pictures in between must be referenced, the number of references will be proportional to the inter-picture distance. Accordingly, the overall search range increases proportionally to the inter-picture range and as a result, the amount of computations increases when estimating motion vectors.

Further, there is the problem that circuit size increases in a motion vector estimation apparatus that performs the telescopic search. In other words, for the motion vector estimation apparatus, the amount of data in the search range for estimating a motion vector, which is read out from the memory storing the reference picture, is large. As a result, for the motion vector estimation apparatus, circuit size increases due to accelerating the memory transfer operation clock and expanding the memory bandwidth (bit width).

FIG. 6 is a diagram which shows changes in the search range in a reference picture. A search range TA 1 in a reference picture RP 1 for a target block (commonly, a macroblock, for instance, a block composed of 16 pixels×16 lines) is a range centered on a block TB 1 which is co-located with a target block in the reference picture RP 1 . Thus, the reference picture RP 1 is composed from horizontal H pixels and vertical V lines, and the search range TA 1 is composed of horizontal h pixels and vertical v lines. Accordingly, when estimating a motion vector for the target block, data for the horizontal h pixels and the vertical v lines are read out of the memory.

Next, when the target block shifts in a horizontal direction, the search range TA 2 in the reference picture RP 1 for the target block becomes a range centered on a block TB 2 co-located with the target block in the reference picture RP 1 . Accordingly, when the target block shifts in a horizontal direction, the search range also shifts by a block width w. In this case, the data read out of the memory when estimating the motion vector for the target block is made up only of data from the search range TA 2 that is not included in the search range TA 1 . In other words, the data newly read out of the memory is data made up of 16 pixels and vertical v lines.

In this way, when the target block shifts in a horizontal direction, only data that is not included in the previous search range is read out of the memory, not all of the data included in the new search range.

For a telescopic search, data in the search range is read out of the memory for pictures which are mutually adjacent as above. However, in this case, the search range for every picture does not always shift by just the width of the block, the search range may shift widely. Thus, even if data in the search range is read out of the memory, motion vector estimation is performed and the data is accumulated for estimating the next motion vector, most of the data in the new search range must be read out of the memory since there is little overlapping information. Accordingly, in a telescopic search, the amount of data transferred from the memory increases. As a result, power consumption rises.

›SUMMARY OF THE INVENTION · 1 of 2

Thus, the present invention is conceived in consideration of the problems above and has as an object providing a motion vector estimation apparatus that reduces the amount of computations for estimating motion vectors and circuit size can be decreased.

In order to carry out the above objects, the motion vector estimation apparatus in the present invention is a motion vector estimation apparatus which estimates a motion vector for a target block included in a picture that includes a first motion estimation unit which estimates a first motion vector for a target block included in a first picture by searching within a reference picture for a block with an image similar to an image in the target block included in the first picture; a search range specification unit which specifies a search range in the reference picture based on the first motion vector; and a second motion estimation unit which estimates a second motion vector for a target block included in a second picture by searching within the search range for a block with an image similar to an image in the target block included in the second picture. For example, the search range specification unit includes: a prediction computation unit which calculates a prediction motion vector for the target block in the second picture by scaling the first motion vector according to a time difference between display times of the first and second picture and the reference picture; and a specification unit which specifies as the search range a range in the reference picture indicated by the prediction motion vector, which is calculated by the prediction computation unit.

When the display time for the first and second pictures are near one another and the target blocks which are included in the respective pictures are spatially co-located, the orientations of the first and second vectors will equalize. Therefore, in the present invention, a search range for estimating the second motion vector can be specified appropriately since the search range is specified based on the first motion vector just as, for example, the search range is specified by calculating the prediction motion vector from the first motion vector. As a result, even when the second picture differs from the reference picture in terms of display time, a motion vector for the target block in the second picture can be estimated in an appropriate search range without expanding the search range in the reference picture. Also, in the present invention, it is not necessary to directly estimate motion vectors as in a telescopic search. As a result, the entire search range in the present invention can be reduced. Further, in the present invention, when shifting the target block in the second picture to estimate a second motion vector for each target block, the transfer data load from the memory (picture memory) can be reduced compared to a telescopic search; the memory storing the reference picture. In other words, even when there is another picture between a reference picture and a second picture in the display order, there is no need to read out the data for a search range in the other picture in the present invention, and further, by shifting the target block for the second picture to estimate the second motion vector for each target block, the search range read out previously can be used effectively and it is possible to reduce the amount of data newly read out of the memory.

Accordingly, in the present invention, since a search range can be limited to an appropriate range, it is possible to reduce the amount of computations for estimating a motion vector, and since the transferred data load from the memory can be reduced, circuit size can be decreased.

Also, the prediction computation unit may calculate the prediction motion vector for the target block in the second picture which is spatially co-located with the target block in the first picture, and the second motion estimation unit may estimate the second motion vector for the target block in the second picture that is spatially co-located with the target block in the first picture.

Thus, since the target block in the first picture and the target block in the second picture are spatially co-located, the prediction motion vector can approach the second motion vector. In other words, it is possible to improve the accuracy of prediction motion vectors and as a result, specify a more appropriate search range.

Also, the first motion estimation unit may estimate a first motion vector for a target block included in each first picture, and the search range specification unit may specify a search range in the reference picture based on a first motion vector in a picture, among first pictures, with the shortest time difference in display time from the second picture.

Thus, when there are plural first motion vectors, since the search range is specified based on a first motion vector in a first picture, which is near the second picture in terms of display time, an appropriate search range can be specified, despite the plural first motion vectors.

Also, the specification unit may specify the range in the reference picture indicated by the prediction motion vector, and a block in the reference picture spatially co-located with the target block in the second picture, as the search range.

Thus, by including a block in the reference picture, that is spatially co-located with the target block in the second picture, into the search range, even if there is not a block with an image similar to the image in the target block in the second picture, which is within the range in the reference picture that is indicated by the prediction motion vector, it is possible to search for the block within another range and estimate an appropriate second motion vector.

Also, the first or second motion estimation unit may estimate a first or second motion vector for a target block included in the first or the second picture while another target block in the first or the second picture is being coded using another first or second motion vector, which has already been estimated.

›SUMMARY OF THE INVENTION · 2 of 2

Thus, when a motion vector estimation apparatus is built into a moving picture coding apparatus, processing time can be reduced overall given that coding and motion estimation processes are pipelined.

Note that the present invention can be realized not only as a motion vector estimation apparatus, but also as a motion vector estimation method, a recordable media in which a motion vector estimation program is stored and an integrated circuit.

The motion vector estimation apparatus in the present invention performs the functional effect of allowing a reduction in the amount of computations for estimating motion vectors by shrinking the search range for motion vectors, and by reducing the amount of data read out from the external memory, allows for increased efficiency in power usage and a decrease in circuit size.

›FURTHER INFORMATION ABOUT TECHNICAL BACKGROUND TO THIS APPLICATION

The disclosure of Japanese Patent Application No. 2005-320189 filed on Nov. 2, 2005 including specification, drawings and claims is incorporated herein by reference in its entirety.

›BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects, advantages and features of the invention will become apparent from the following description thereof taken in conjunction with the accompanying drawings that illustrate a specific embodiment of the invention. In the Drawings:

FIG. 1 is a schematic diagram which shows a prediction relationship for each picture in the moving picture coding scheme;

FIG. 2 is a diagram which shows the display order and the coding order of the pictures;

FIG. 3 is a diagram which shows reference relationships under H.264;

FIG. 4 is a diagram which shows the search range for conventional motion vector estimation;

FIG. 5 is a diagram which shows a telescopic search;

FIG. 6 is a diagram which shows changes in the search range in a reference picture;

FIG. 7 is a block diagram of the moving picture coding apparatus which includes a motion vector estimation apparatus in the embodiment of the present invention;

FIG. 8 is a schematic diagram which shows a prediction generation method for the motion vector in a temporal direct mode;

FIG. 9 is an explanatory diagram for describing the forward prediction vectors calculated by the prediction computation unit in the embodiment of the present invention;

FIG. 10 is a figure which shows a motion vector estimation order in the embodiment of the present invention;

FIG. 11 is an explanatory diagram for describing a backward prediction motion vector calculated by the prediction computation unit in the embodiment of the present invention;

FIG. 12 is a flowchart which shows operations in which the motion vector estimation apparatus in the embodiment of the present invention estimates a motion vector;

FIG. 13 is a flowchart which shows operations in which the mode selection unit calculates an evaluation value in a non-temporal direct mode;

FIG. 14 is a flowchart which shows operations in which the mode selection unit calculates an evaluation value in the temporal direct mode;

FIG. 15 is a figure which shows a prediction motion vector calculation method in a first modification of the present invention;

FIG. 16 is a figure which shows the prediction motion vector calculation method in a second modification of the present invention;

FIG. 17 is a figure which shows the prediction motion vector calculation method in a third modification of the present invention;

FIG. 18 is a figure which shows the prediction motion vector calculation method in a fourth modification of the present invention;

FIG. 19 is a figure which shows the prediction motion vector calculation method in a fifth modification of the present invention;

FIG. 20 is a figure which shows the prediction motion vector calculation method in a sixth modification of the present invention;

FIG. 21 is a figure which shows the prediction motion vector calculation method in a seventh modification of the present invention;

FIG. 22 is a figure which shows the search range in an eighth modification of the present invention;

FIG. 23 is a diagram which shows the state of each picture before the prediction motion vectors are calculated, in the ninth modification of the present invention;

FIG. 24 is a diagram which shows the prediction motion vector calculation method in a ninth modification of the present invention;

FIG. 25 is a diagram which shows pipelining in a tenth modification of the present invention;

FIG. 26 is a diagram which shows the block order for motion vector estimation targets in the tenth modification of the present invention; and

FIG. 27 is a figure which shows a different pipelining from the tenth modification of the present invention.

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 1 of 13

Below, a moving picture coding apparatus that includes a motion vector estimation apparatus in the embodiment of the present invention is described with reference to figures.

FIG. 7 is a block diagram of a moving picture coding apparatus that includes a motion vector estimation apparatus in the embodiment of the present invention.

The moving picture coding apparatus 100 includes, as shown in FIG. 7 , picture memories 112 and 120 , a block selection unit 111 , a difference calculation unit 113 , switches 114 and 127 , a coding unit 115 , an alignment buffer 116 , a coded stream generation unit 117 , a decoding unit 118 , an addition computation unit 119 , a motion vector estimation unit 121 , a storage unit 122 , a prediction computation unit 123 , a search range control unit 124 , a mode selection unit 125 and a motion compensation unit 126 .

The picture memory 112 acquires and stores plural input pictures (pictures), which show a moving picture, in a display order as shown in FIG. 2 . Next, the picture memory 112 outputs a target block (blocks targeted for motion vector estimation or for coding) for each picture selected by the block selection unit 111 to the difference computation unit 113 , the switch 114 and the motion vector estimation unit 121 .

The block selection unit 111 selects, from the pictures stored in the picture memory 112 , a unit of consecutive pictures, for instance, a unit consisting of pictures P 1 , B 2 , B 3 , and P 4 as shown in FIG. 2 . Further, the block selection unit 111 controls the picture memory 112 so that it will select and output a target block at a predetermined position from each picture. Also, the block selection unit 111 outputs the position information for the target block chosen, as well as display order information, for a picture (a target picture) in which the target block is included, to the motion vector estimation unit 121 , the storage unit 122 , the prediction computation unit 123 , the search range control unit 124 and the alignment buffer 116 .

The difference computation unit 113 calculates the difference between the image in the target block, which is included in the input image, and the predicted image outputted from the motion compensation unit 126 , then outputs the calculated result as a prediction residual image.

The switch 114 outputs the target block to the coding unit 115 when intra-picture prediction coding is performed on the target block, and outputs the prediction residual image from the residual computation unit 113 to the coding unit 115 when inter-picture prediction coding is performed on the target block.

The switch 127 outputs the predicted image from the motion compensation unit 126 to the addition computation unit 119 only when inter-picture processing is performed on the target block.

The coding unit 115 generates a coded signal by performing a coding process such as frequency transformation and quantization on the target block or the prediction residual image outputted from the switch 114 .

The alignment buffer 116 outputs the coded signal to the coded stream generation unit 117 by arranging the pictures included in the coded signal in rank according to the coding standard.

The coded stream generation unit 117 performs variable length coding, and so on, on the coded signal outputted from the alignment buffer 116 . Further, upon acquiring information which indicates a motion vector from the mode selection unit 125 , or a motion prediction mode (as described below, direct mode selection information) and so on, the coded stream generation unit 117 generates a coded stream by affixing the information which indicates the motion vector or the motion prediction mode to a coded signal that has been variable length-encoded.

The decoding unit 118 generates a decoded picture by performing a decoding process such as inverse-quantization or inverse frequency transformation on the coded signal outputted from the coding unit 115 .

The addition computation unit 119 generates a reconstructed picture by adding the decoded picture outputted from the decoding unit 118 to the prediction picture outputted, via the switch 127 , from the motion compensation unit 126 .

The picture memory 120 stores, in order, the reconstructed picture generated and outputted by the addition computation unit 119 . As a result, reference pictures are stored in the picture memory 120 .

The motion vector estimation unit 121 acquires the target block outputted from the picture memory 112 . The motion vector estimation unit 121 also reads out the search range in the reference picture for the target block from the picture memory 120 . Next, the motion vector estimation unit 121 estimates a motion vector which indicates image motion in the target block (a motion vector for the targeted in the reference picture), by searching within the search range for a block with an image that approximates the image in the target block.

The prediction computation unit 123 predicts a motion vector for the target block by using temporal direct mode, described below, and calculates the predicted motion vector.

The search range control unit 124 specifies the search range in the reference picture and defines the search range in the motion vector estimation unit 121 based on the prediction motion vector calculated by the prediction computation unit 123 .

The storage unit 122 has an area for storing the motion vector estimated by the motion vector estimation unit 121 .

The mode selection unit 125 selects a motion prediction mode. In other words, the mode selection unit 125 selects either a temporal direct mode or a non-temporal direct mode. Next, when selecting the non-temporal direct mode, the mode selection unit 125 outputs the motion vector estimated by the motion vector estimation unit 121 to the coded stream generation unit 117 and, when selecting the temporal direct mode, the mode selection unit 125 outputs direct mode selection information, which provides notification that the temporal direct mode has been selected, to the coded stream generation unit 117 .

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 2 of 13

The motion vector estimation apparatus 100 a in the present embodiment is characterized in that its circuit size can be decreased by reducing the amount of computation for motion vector estimation. The motion vector estimation apparatus 100 a in the present embodiment includes the block selection unit 111 , the mode selection unit 125 , the motion vector estimation unit 121 , the storage unit 122 , the prediction computation unit 123 and the search range control unit 124 . Further, in the present embodiment, the motion vector estimation unit 121 is composed of a first motion vector estimation unit which estimates a first motion vector, and a second motion vector estimation unit which estimates a second motion vector; the prediction computation unit 123 and the search range control unit 124 are composed as a search region specification unit which specifies a search range in the reference picture based on the first motion vector. Also, in the present embodiment, the prediction computation unit 123 is composed as a prediction computation unit and the search range control unit 124 is composed as a specification unit for specifying a range in the reference picture, which is indicated by the prediction motion vector, as a search range.

A typical temporal direct mode is described in detail below. In the H.264 format, for coding a B picture, a coding mode known as direct mode can be selected in order to reduce motion vector information. In this direct mode, there are two types of methods: temporal and spatial. In the temporal direct mode, the target block itself does not have a motion vector. A motion vector for the target block is predicted and generated by taking a motion vector for another picture which has been coded as a reference motion vector, and by performing scaling based on position relationships in terms of a display time among the pictures.

FIG. 8 is a schematic diagram which shows a prediction generation method for the motion vector in the temporal direct mode. Note that among the reference marks such as P 1 , B 2 and so on shown in FIG. 8 , P stands for P picture, B stands for B picture, and the numbers stand for the display order for each picture. Additionally, each picture P 1 , B 2 , B 3 and P 4 has its own display order information T 1 , T 2 , T 3 and T 4 . In other words, each picture is displayed in the order: picture P 1 , picture B 2 , picture B 3 and picture P 4 .

Below, a block BL 0 in the picture B 3 is coded using the temporal direct mode. In this case, a motion vector MV 1 is utilized, the motion vector MV 1 being a motion vector for the block BL 1 , which is co-located with the block BL 0 in the picture 4 , which is a picture which has been coded and is positioned near the picture B 3 in terms of display time. The motion vector MV 1 is a motion vector utilized when the block BL 1 is coded, and takes the picture P 1 as a reference picture.

Thus, in the temporal direct mode, by applying the motion vector MV 1 to an (Equation 1a) and an (Equation 1b) below, a motion vector (forward motion vector) MVF for the block BL 0 relative to the picture P 1 , and a motion vector (backward motion vector) MVB for the block BL 0 relative to the picture P 4 are calculated. Note that in the (Equation 1a) and the (Equation 1b), Mv expresses the size of the motion vector MV 1 , Mvf expresses the size of the motion vector MVF, and Mvb expresses the size of the motion vector MVB.

Mvf =( T 3 −T 1)/( T 4 −T 1)× Mv   (Equation 1a)

Mvb =( T 4 −T 3)/( T 4 −T 1)× Mv   (Equation 1b)

In this way, in the temporal direct mode, motion compensation is performed for the block BL 0 , which takes the picture P 1 and the picture P 4 as reference pictures, using the motion vector MVF and the motion vector MVB, which are obtained by scaling the motion vector MV 1 . Thus, by simply including information which indicates that temporal direct mode has been selected, there is no need to code and include motion vectors for the block BL 0 in a coded stream; as a result, the bit rate of the coded stream can be reduced.

In the motion vector estimation apparatus 100 a in the present embodiment, motion vectors are predicted for a target block by the temporal direct mode as described above. In other words, the motion vector estimation apparatus 100 a in the present embodiment calculates a prediction motion vector for the target block, specifies a search range in the reference picture from the prediction motion vector and estimates a motion vector within the search range.

FIG. 9 is an explanatory diagram for describing a forward prediction motion vector calculated by the prediction computation unit 123 in the present embodiment. Note that in FIG. 9 , codes P 1 and P 4 indicate P pictures, and codes B 2 and B 3 indicate B pictures. Also, the digits in these reference marks indicate the display order for each picture. Each picture P 1 , B 2 , B 3 and P 4 has display order information T 1 , T 2 , T 3 and T 4 respectively. This display order information indicates the display order and the display time for each picture.

The motion vector estimation unit 121 first estimates a motion vector MV 0 F (a first motion vector) for the target block BL 0 in the picture B 2 , which is a first picture. That is, the motion vector estimation unit 121 estimates the motion vector MV 0 F which denotes the block by searching for a block which has an image most similar to the image in the target block BL 0 , within a search range (partial range) of S pixels by S lines in the reference picture P 1 , centered on the same position as the target block BL 0 in the picture B 2 . Next, the motion vector estimation unit 121 stores the motion vector MV 0 F in the storage unit 122 .

The prediction computation unit 123 reads out the motion vector MV 0 F from the storage unit 122 and calculates a forward prediction motion vector MV 1 F* and a prediction motion vector MV 2 * relative to the target blocks BL 1 and BL 2 , by scaling the motion vector MV 0 F; the target blocks BL 1 and BL 2 being co-located (identical spatial position) with the target block BL 0 in the picture B 3 and the picture P 4 , which are second pictures.

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 3 of 13

More specifically, the prediction computation unit 123 uses the display order information T 1 , T 2 , T 3 and T 4 for the pictures P 1 , B 2 , B 3 and P 4 to calculate the prediction motion vector MV 1 F* for the target block BL 1 , relative to the reference picture P 1 , in the picture B 3 , and the prediction motion vector MV 2 *, relative to the reference picture P 1 , for the reference block BL 2 in the picture P 4 using an (Equation 2a) and an (Equation 2b) below. Note that in the (Equation 2a) and the (Equation 2b), Mv 1 f * and Mv 2 * indicate respectively the size of the prediction motion vectors MV 1 F* and MV 2 *, and Mv 0 F indicates the size of the motion vector MV 0 F.

Mv 1 f *=( T 3 −T 1)/( T 2 −T 1)× Mv 0 F   (Equation 2a)

Mv 2*=( T 4 −T 1)/( T 2 −T 1)× Mv 0 F   (Equation 2b)

Thus, when the display time interval (time difference between display times) for each picture P 1 , B 2 , B 3 and P 4 is an equidistant interval, (3×S) pixels by (3×S) lines becomes the largest searchable range in the reference picture P 1 . In other words, when the display time interval between the picture B 2 and the reference picture P 1 is (T 2 −T 1 )=1, (T 4 −T 1 )=3 becomes the display time interval between the reference picture P 1 and the picture P 4 . Accordingly, when the search range for the motion vector MV 0 F in the picture B 2 is S pixels by S lines, (3×S) pixels by (3×S) lines becomes the largest searchable range. In this way, the largest searchable range is the longest time difference among the time differences in the display times between each target picture and the reference picture P 1 .

The prediction computation unit 123 outputs the prediction motion vectors MV 1 F* and MV 2 F* calculated in this way to the search range control unit 124 .

The search range control unit 124 specifies a search range indicated by the prediction motion vector MV 1 F* in the reference picture P 1 and defines the search range in the motion vector estimation unit 121 . In other words, the search range control unit 124 defines a search range of S pixels by S lines centered on the position in the reference picture P 1 indicated by the prediction motion vector MV 1 F*. The search range control unit 124 specifies the search range indicated by the prediction motion vector MV 2 * in the reference picture P 1 and defines this in the motion vector estimation unit 121 . In other words, the search range control unit 124 defines a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 2 *. In this way, the search range control unit 124 specifies a search range of S pixels by S lines from the largest possible search range with the same size as the search range (partial range) of the motion vector MV 0 F for the target block BL 0 , in order to estimate motion vectors for the target blocks BL 1 and BL 2 .

The motion vector estimation unit 121 reads out, from the picture memory 120 , each search range in the reference picture P 1 defined by the search range control unit 124 , and estimates the forward motion vector for the target block BL 1 (second motion vector) and the motion vector for the target block BL 2 (second motion vector) within the respective search ranges. In other words, after estimating a forward motion vector for the target block BL 0 relative to the reference picture P 1 , the motion vector estimation unit 121 estimates the forward motion vector for the target block BL 1 relative to the reference picture P 1 , and next estimates the forward motion vector for the target block BL 2 relative to the reference picture P 1 . Thus, the motion vector estimation unit 121 stores the motion vectors of the target block BL 1 and the target block BL 2 respectively in the storage unit 122 .

FIG. 10 is a figure which shows a motion vector estimation order. In FIG. 10 , the estimation order of the motion vectors for each block is indicated by numbers inside each block ( 1 , 2 , . . . , N, N+1, . . . ). More specifically, the motion vector estimation apparatus 100 a first estimates a motion vector for the upper left corner block in the picture B 2 , and using the motion vector, estimates a motion vector for the upper left corner block of the picture B 3 and subsequently estimates a motion vector for the upper left corner block in the picture P 4 . Next, upon estimating a motion vector for the second block to the right from the upper left corner of the picture B 2 , the motion vector estimation apparatus 100 a uses the motion vector to estimate a motion vector for the second block to the right from the upper left corner of the picture B 3 . In this way, the motion vector estimation apparatus 100 a estimates the motion vector for the target block in the order: picture B 2 , picture B 3 and picture P 4 , while shifting the target block to the right in each picture.

Next, when the motion vectors for all of the blocks in the highest row have been estimated, the motion vector detection apparatus 100 a estimates the motion vector for each block, as a target block, in a row below the highest row, in the order described above. The motion vector estimation apparatus 100 a estimates motion vectors for every block which is targeted for motion vector estimation, shifting from left to right, top to bottom in the order: picture B 2 , picture B 3 and picture P 4 . As a result, forward motion vectors relative to the reference picture P 1 are estimated for every block in picture B 2 and picture B 3 , and motion vectors are estimated relative to the reference picture P 1 for every block in the picture P 4 .

Thus, when all the motion vectors are estimated relative to the reference picture P 1 for a target block in the picture P 4 , the motion compensation unit 126 performs motion compensation using the estimated motion vector as well as the reference picture P 1 , generating a predicted image for every block in the picture P 4 . Subsequently, the difference computation unit 113 , the coding unit 115 , the decoding unit 118 and the addition computation unit 119 generate restructured pictures through a coded signal from the predicted image and store the restructured picture in the picture memory 120 . As a result, after motion vectors for all of the blocks in the picture P 4 are estimated, the picture P 4 is stored in the picture memory 120 as a reference picture.

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 4 of 13

In this way, upon estimating a motion vector for a block included in the target picture, the motion vector detection apparatus 100 a in the present embodiment estimates motion vectors in an order according to the display order to, for example, estimate the motion vector for a block included in the next target picture in the display order. The motion vector detection apparatus 100 a of the present embodiment does not estimate motion vectors in an order which does not follow the display order, as in the conventional method wherein: after motion vectors for all the blocks in a P picture are estimated, motion vectors for all the blocks in a B picture which precedes the P picture in the display order are estimated.

Next, the motion vector estimation apparatus 100 a estimates backward motion vectors for the picture B 2 and the picture B 3 . As above, the motion vector estimation apparatus 100 a calculates a backward prediction motion vector for every target block in the picture B 2 and the picture B 3 using the temporal direct mode, and estimates a backward motion vector within a search range centered on a position indicated by the prediction motion vector.

FIG. 11 is an explanatory diagram for describing a backward prediction motion vector calculated by the prediction computation unit 123 in the present embodiment.

In order to calculate a backward prediction motion vector for the target block BL 0 and the target block BL 1 , which are co-located with each other in the picture B 2 and in the picture B 3 respectively, the prediction computation unit 123 reads out, from the storage unit 122 , a motion vector MV 2 for the block BL 2 in the reference picture P 4 , which is co-located with the target blocks BL 0 and BL 1 . Subsequently, the prediction computation unit 123 calculates a prediction motion vector MV 0 B* and a prediction motion vector MV 1 B* for the target blocks BL 0 and BL 1 , by scaling the motion vector MV 2 .

More specifically, the prediction computation unit 123 uses the display order information T 1 , T 2 , T 3 and T 4 for the pictures P 1 , B 2 , B 3 and P 4 to calculate the prediction motion vector MV 0 B* for the target block BL 0 in the picture B 2 , relative to the reference picture P 4 , as well as the prediction motion vector MV 1 B* for the target block BL 1 in the picture B 3 , relative to the reference picture P 4 , using the (Equation 3a) and the (Equation 3b) below. Note that in the (Equation 3a) and the (Equation 3b), Mv 0 b * and Mv 1 b * indicate the size of the prediction motion vector MV 0 B*and MV 1 B* respectively, and Mv 2 indicates the size of the motion vector MV 2 .

Mv 0 b *=( T 2 −T 4)/( T 4 −T 1)× Mv 2  (Equation 3a)

Mv 1 b *=( T 3 −T 4)/( T 4 −T 1)× Mv 2  (Equation 3b)

Thus, when the display time interval for each picture P 1 , B 2 , B 3 and P 4 is equidistant, a range of (2×S) pixels by (2×S) lines becomes the largest searchable range in the reference picture P 4 .

The prediction computation unit 123 outputs the prediction motion vectors MV 0 B* and MV 1 B* calculated in this way to the search range control unit 124 .

The search range control unit 124 defines the search range, indicated by the prediction motion vector MV 0 B* in the reference picture P 4 , in the motion vector detection unit 121 . In other words, the search range control unit 124 defines a search range of S pixels by S lines centered on a position in the reference picture P 4 indicated by the prediction motion vector MV 0 B*. The search range control unit 124 defines a search range, which is indicated by the prediction motion vector MV 1 B* in the reference picture P 4 , in the motion vector estimation unit 121 . More specifically, the search range control unit 124 defines a search range of S pixels by S lines centered on a position in the reference picture P 4 indicated by the prediction motion vector MV 1 B*.

The motion vector estimation unit 121 estimates a backward motion vector for the target block BL 0 and a backward motion vector for the target block BL 1 within the search range in the reference picture P 4 defined by the search range control unit 124 . In other words, after estimating the motion vector MV 2 for the block BL 2 in the picture P 4 , the motion vector estimation unit 121 estimates a backward motion vector for the target block BL 0 relative to the reference picture P 4 and next estimates a backward motion vector for the target block BL 1 relative to the reference picture P 4 . Subsequently, the motion vector estimation unit 121 respectively stores backward motion vectors for the target block BL 0 and the target block BL 1 .

The motion vector estimation apparatus 100 a estimates a backward motion vector for every block included in the picture B 2 and the picture B 3 in order from the upper left corner block, shifting target blocks from left to right and top to bottom.

FIG. 12 is a flowchart which shows operations in which the motion vector estimation apparatus 100 a in the present embodiment estimates motion vectors.

First, the block selection unit 111 in the motion vector estimation apparatus 100 a extracts a target block from the picture memory 112 (Step S 100 ). For example, the block selection unit 111 extracts the blocks BL 0 , BL 1 and BL 2 from the target pictures B 2 , B 3 and B 4 respectively as shown in FIG. 9 . Subsequently, the block selection unit 111 selects a block to be processed first from among the target blocks, for example the block BL 0 (Step S 102 ).

The motion vector estimation unit 121 estimates the motion vector (forward motion vector) MV 0 F relative to the reference picture P 1 for the target block BL 0 , which is selected by the block selection unit 111 (Step S 104 ). Next, the motion vector estimation unit 121 stores the estimated motion vector MV 0 F in the storage unit 122 (Step S 106 ).

The prediction computation unit 123 computes (calculates) the forward prediction motion vector MV 1 F* for the target block BL 1 relative to the reference picture P 1 by using the temporal direct mode, i.e. by scaling the motion vector MV 0 F estimated by the motion vector estimation unit 121 (Step S 108 ). In the same way, the prediction computation unit 123 computes (calculates) the prediction motion vector MV 2 * for the target block BL 2 relative to the reference picture P 1 by scaling the motion vector MV 0 F estimated by the motion vector estimation unit 121 (Step S 110 ).

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 5 of 13

The search range control unit 124 specifies a search range in the reference picture P 1 , which is indicated by the prediction motion vector MV 1 F for the target block BL 1 , the prediction motion vector MV 1 F being calculated by the prediction computation unit 123 in order to define the search range in the motion vector estimation unit 121 (Step S 112 ). In the same way, the search range control unit 124 specifies a search range in the reference picture P 1 which is indicated by the prediction motion vector MV 2 * for the target block BL 2 and calculated by the prediction computation unit 123 , in order to define the search range in the motion vector estimation unit 121 (Step S 114 ).

The motion vector estimation unit 121 estimates a motion vector (forward motion vector) MV 1 F for the target block BL 1 by searching for a block with an image similar to the target block BL 1 within the search range defined by the search range control unit 124 for the target block BL 1 (Step S 116 ). In the same way, the motion vector estimation unit 121 estimates the motion vector MV 2 for the target block BL 2 by searching for a block with an image that is similar to the target block BL 2 within the search range defined by the search range control unit 124 for the target block BL 2 (Step S 118 ). Next, the motion vector estimation unit 121 stores the estimated motion vector MV 1 F and the motion vector MV 2 in the storage unit 122 (Step S 120 ).

The forward motion vectors for all of the target blocks BL 0 , BL 1 and BL 2 extracted by the block selection unit 111 are estimated by the processes from Step S 100 to S 120 .

Next, the block selection unit 111 again extracts the target blocks. For example, the block selection unit 111 respectively extracts the blocks BL 0 and BL 1 as target blocks from the target pictures B 2 and B 3 in the picture memory 112 , as shown in FIG. 11 . Subsequently, the block selection unit 111 selects the block BL 2 in the reference picture P 4 , which is co-located with the target blocks BL 0 and BL 1 .

The prediction computation unit 123 reads out, from the storage unit 122 , the motion vector MV 2 for the block BL 2 in the reference picture P 4 , which is selected by the block selection unit 111 (Step S 124 ). Subsequently, the prediction computation unit 123 computes (calculates) a backward prediction motion vector MV 0 B* for the target block BL 0 relative to the reference picture P 4 , by using the temporal direct mode, i.e. by scaling the motion vector MV 2 read out from the storage unit 122 (Step S 126 ). In the same way, the prediction computation unit 123 computes (calculates) the backward prediction motion vector MV 1 B* for the target block BL 1 , relative to the reference picture P 4 , by scaling the motion vector MV 2 read out from the storage unit 122 (Step S 128 ).

The search range control unit 124 specifies the search range in the reference picture P 4 indicated by the prediction motion vector MV 0 B* for the target block BL 0 and calculated by the prediction computation unit 123 and defines the search range for the motion vector estimation unit 121 (Step S 130 ). In the same way, the search range control unit 124 specifies the search range in the reference picture P 4 indicated by the prediction motion vector MV 1 B* for the target block BL 1 and calculated by the prediction computation unit 123 , and defines the search range in the motion vector estimation unit 121 (Step S 132 ).

The motion vector estimation unit 121 estimates a motion vector (backward motion vector) MV 0 B for the target block BL 0 by searching for a block with an image similar to that of the target block BL 0 within the search range defined by the search range control unit 124 for the target block BL 0 (Step S 134 ). In the same way, the motion vector estimation unit 121 estimates a motion vector (backward motion vector) MV 1 B for the target block BL 1 by searching for a block with an image similar to the target block BL 1 within the search range defined by the search range control unit 124 for the target block BL 1 (Step S 136 ). Next, the motion vector estimation unit 121 stores the estimated motion vector MV 0 B and the estimated motion vector MV 1 B in the storage unit 122 (Step S 138 ).

The backward motion vectors for all of the target blocks BL 0 and BL 1 extracted by the block selection unit 111 are estimated in the processes from Step S 122 to S 138 .

In this way, in the motion vector estimation apparatus 100 a in the present embodiment, in order to estimate a motion vector for a target block in a target picture, the motion vector estimation apparatus 100 a scales a motion vector estimated for a target block in another target picture, calculates a prediction motion vector, and specifies a range of S pixels by S lines as a search range in the reference picture indicated by the prediction motion vector. Accordingly, a search range of fixed size is always specified regardless of time difference in the display time between the target picture and the reference picture. On the other hand, conventionally, when the target picture differs from the reference picture in terms of display time, the search range is taken to be a wide range according to the time difference. Accordingly, in the present embodiment, even when the target picture differs from the reference picture in terms of display time, it is possible to shrink the search region and specify an appropriate search region by scaling the motion vector MV 0 F.

Also, in the present embodiment, since there is no need to seek a motion vector between adjacent pictures, drops in estimation accuracy for motion vectors, such as in a telescopic search, can be prevented. Further, in the present embodiment, it is not necessary to directly detect unnecessary motion vectors, as in the telescopic search. As a result, the search range can be reduced as a whole. Further, in the present embodiment, when estimating a motion vector for each target block while shifting target blocks, it is possible to reduce the transferred data load from the picture memory 120 which stores the reference picture, in comparison to a telescopic search. More specifically, in the present embodiment, even if there is another picture in the display order between a reference picture and a target picture, there is no need to read out data in the search range of the other picture from the picture memory 120 , and further, when estimating motion vectors for each target block and shifting the target block, it is possible to effectively use the search range that has been read out to reduce the amount of data newly read out from the picture memory 120 .

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 6 of 13

As a result, in the motion vector estimation apparatus 100 a in the present embodiment, the computation load for estimating the motion vector can be reduced since an appropriate search range can be chosen as the search range, and circuit size can be decreased since the amount of transferred data from the picture memory 120 can be reduced.

When a motion vector for the target block as above is estimated, the mode selection unit 125 uses the estimated motion vector and the prediction motion vector calculated by the prediction computation unit 123 to select either temporal direct mode or non-temporal direct mode. More specifically, upon performing this kind of selection, the mode selection unit 125 uses the prediction residual image, the motion vector and the prediction motion vector, the position information of the target block and the display order of the target pictures to calculate an evaluation value in the temporal direct mode and an evaluation value in the non-temporal direct mode. Thus, the mode selection unit 125 selects a mode based on the comparison results of the evaluation value.

FIG. 13 is a flowchart which shows operations in which the mode selection unit 125 calculates an evaluation value in the non-temporal direct mode.

First, the mode selection unit 125 selects a target block (Step S 200 ). For example, the mode selection unit 125 selects the block BL 1 in the picture B 3 shown in FIG. 9 and FIG. 11 . The mode selection unit 125 reads out, from the storage unit 122 , the forward motion vector MV 1 F and the backward motion vector MV 1 B for the block BL 1 (Step S 202 , S 204 ).

Subsequently, the mode selection unit 125 makes the motion compensation unit 126 extract a block in the reference picture P 1 , indicated by the forward motion vector MV 1 F, as reference data (Step S 206 ) and extract a block in the reference picture P 4 that is indicated by the backward motion vector MV 1 B, as reference data (Step S 208 ). Further, the mode selection unit 125 makes the motion compensation unit 126 calculate an average of the reference data for the reference picture P 1 and the reference data for the reference picture P 4 , and generate averaged reference data (Step S 210 ).

The mode selection unit 125 makes the coded stream generation unit 117 calculate an amount of code for the forward motion vector MV 1 F which is read out in Step S 202 (Step S 212 ) and makes the coded stream generation unit 117 calculate an amount of code for the backward motion vector MV 1 B read out in Step S 204 (Step S 214 ).

The mode selection unit 125 extracts the block BL 1 selected in Step S 200 as input data from the picture memory 112 , via the block selection unit 111 (Step S 216 ). Subsequently, the mode selection unit 125 calculates a sum of absolute value differences between the averaged reference data generated in Step S 210 and the input data extracted in Step S 216 (Step S 218 ).

The mode selection unit 125 calculates an evaluation value in the non-temporal direct mode based on the sum of absolute value differences calculated in Step S 218 and the amount of code calculated in Step S 212 and S 214 (Step S 220 ).

FIG. 14 is a flowchart which shows operations in which the mode selection unit 125 calculates an evaluation value in the temporal direct mode.

First, the mode selection unit 125 selects a target block (Step S 300 ). For example, the mode selection unit 125 selects a block BL 1 for the picture B 3 shown in FIG. 9 and FIG. 11 . Next, the mode selection unit 125 generates direct mode selection information for issuing notification that the temporal direct mode has been selected (Step S 302 ).

Next, the mode selection unit 125 reads out, from the storage unit 122 , the motion vector needed in the temporal direct mode, such as the motion vector MV 2 (Step S 304 ). Subsequently, the mode selection unit 125 makes the prediction computation unit 123 calculate a prediction motion vector (Step S 306 , S 308 ). The prediction computation unit 123 , for example, calculates a forward prediction motion vector MV 1 F* and a backward prediction motion vector MV 1 B* for the block BL 1 selected in Step S 300 , by scaling the motion vector read out in Step S 304 .

Subsequently, the mode selection unit 125 makes the motion compensation unit 126 extract a block in the reference picture P 1 , indicated by the forward prediction motion vector MV 1 F* (Step S 310 ) and extract a block in the reference picture P 4 , indicated by the backward prediction motion vector MV 1 B* (Step S 312 ) as reference data. Further, the mode selection unit 125 makes the motion compensation unit 126 calculate an average of reference data in the reference picture P 1 and reference data in the reference picture P 4 to generate averaged reference data (Step S 314 ).

The mode selection unit 125 extracts the block BL 1 , selected in Step S 300 , as input data from the picture memory 112 via the block selection unit 111 (Step S 316 ). Next, the mode selection unit 125 calculates an absolute value difference between the averaged reference data generated in Step S 314 and the input data extracted in Step S 316 (Step S 318 ).

The mode selection unit 125 calculates an evaluation value in the temporal direct mode based on the absolute value difference calculated in Step S 318 and the direct mode selection information generated in Step S 302 (Step S 320 ).

In this way, upon calculating an evaluation value in the non-temporal direct mode and the temporal direct mode for the block BL 1 , the mode selection unit 125 selects the mode with the higher evaluation value and in which the total amount of code decreases, by comparing evaluation values.

Subsequently, when selecting the non-temporal direct mode, the mode selection unit 125 outputs, to the coded stream generation unit 117 , a motion vector for the target block estimated by the motion vector estimation unit 121 and stored in the storage unit 122 . As a result, the coded stream generation unit 117 performs variable length coding on the motion vector and includes it in the coded stream. However, when selecting the temporal direct mode, the mode selection unit 125 outputs direct mode selection information to the coded stream generation unit 117 . As a result, the coded stream generation unit 117 includes the direct mode selection information in the coded stream.

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 7 of 13

In this way, in the present embodiment, it is always possible to reduce the amount of code in a coded stream by switching between temporal direct mode and non-temporal direct mode based on the evaluation value. Also, in the present embodiment, since the estimation accuracy for the motion vector is high compared to a telescopic search, it is likely that temporal direct mode will be chosen and the amount of code will reduce.

(Modification 1)

Here, the prediction motion vector estimation method in the present embodiment is described for a first modification.

In the embodiment above, a motion vector for a target block included in the earliest picture among plural pictures in the display sequence is scaled. In other words, as shown in FIG. 9 , the motion vector estimation apparatus 100 a estimates the motion vector MV 0 F for the target block BL 0 included in the earliest picture B 2 in the display sequence, and scales the motion vector MV 0 F. As a result, the motion vector estimation apparatus 100 a calculates the forward prediction motion vector MV 1 F* for the target block BL 1 , which is included in the picture B 3 , and the forward prediction motion vector MV 2 * for the target block BL 2 , which is included in the picture P 4 .

In the present modification, by scaling a motion vector for a target block in a picture midway through the display order, among plural pictures, the prediction motion vectors for each target block included in a picture before or after the picture midway through the display order are calculated.

FIG. 15 is a diagram which shows a prediction motion vector calculation method in the first modification.

First, the motion vector estimation unit 121 estimates the motion vector MV 1 F for the target block BL 1 included in the picture B 3 ; the picture B 3 being midway through the display sequence among the target pictures. Next, the motion vector estimation unit 121 stores the motion vector MV 1 F in the storage unit 122 .

Here, for example, the search range for the motion vector for the block in the picture B 2 , relative to the reference picture P 1 , is S pixels by S lines, and the display time interval between the reference picture P 1 and the picture B 3 is twice the display time interval between the reference picture P 1 and the picture B 2 . In this case, the search range in the reference picture P 1 for estimating the motion vector MV 1 F for the target block BL 1 is (2×S) pixels×(2×S) lines.

The prediction computation unit 123 reads out the motion vector MV 1 F from the storage unit 122 and calculates a prediction motion vector MV 0 F* and the prediction motion vector MV 2 * relative to the target blocks BL 0 and BL 2 , which are co-located with the target block BL 1 in the picture B 2 and the picture P 4 , by scaling the motion vector MV 1 F.

More specifically, by using (Equation 4a) and (Equation 4b) below as well as the display order information T 1 , T 2 , T 3 and T 4 for the pictures P 1 , B 2 , B 3 and P 4 , the prediction computation unit 123 calculates the prediction motion vector MV 0 F* relative to the reference picture P 1 for the target block BL 0 in the picture B 2 , as well as the prediction motion vector MV 2 relative to the reference picture P 1 for the target block BL 2 in the picture P 4 . Note that in the (Equation 4a) and the (Equation 4b), Mv 0 f * and Mv 2 * indicate the size of the prediction motion vectors MV 0 F* and MV 2 * respectively, and Mv 1 F indicates the size of the motion vector MV 1 F.

Mv 0 f *=( T 2 −T 1)/( T 3 −T 1)× Mv 1 F   (Equation 4a)

Mv 2*=( T 4 −T 1)/( T 3 −T 1)× Mv 1 F   (Equation 4b)

Upon specifying a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 0 F*, the search range control unit 124 defines this search range into the motion vector estimation unit 121 and; upon specifying a search range of S pixels by S lines centered on the position in the reference picture P 1 indicated by the prediction motion vector MV 2 *, the search range control unit 124 defines this search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a forward motion vector for the target block BL 0 and a motion vector for the target block BL 2 within the search range in the reference picture P 1 , which is defined by the search range control unit 124 . In other words, after estimating the forward motion vector for the target block BL 1 relative to the reference picture P 1 , the motion vector estimation unit 121 estimates the forward motion vector for the target block BL 0 relative to the reference picture P 1 and then estimates the motion vector for the target block BL 2 relative to the reference picture P 1 . Thus, the motion vector estimation unit 121 stores the motion vectors for the target block BL 0 and the target block BL 2 respectively in the storage unit 122 .

In the modification as above, it is possible to calculate prediction motion vectors with a high accuracy for each target block included in pictures before and after a picture in the middle of the display sequence by scaling the motion vector for the target block in the picture.

(Modification 2)

Below, a prediction motion vector calculation method in the present embodiment is described for a second modification.

In the embodiment above, a motion vector for a target block included in the earliest picture, among plural target pictures, in the display order is scaled.

In the present modification, by scaling the motion vector for a target block in the latest picture in the display order, among plural target pictures, the prediction motion vectors for each target block included in a target picture before the latest picture are calculated.

FIG. 16 is a diagram which shows the prediction motion vector calculation method in the second modification.

First, the motion vector estimation unit 121 estimates the motion vector MV 2 for the target block BL 2 included in the picture P 4 , the picture P 4 being the latest picture, among plural target pictures, in the display sequence. Next, the motion vector estimation unit 121 stores the motion vector MV 2 in the storage unit 122 .

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 8 of 13

Here, for example, the search range for the motion vector for the block in the picture B 2 relative to the reference picture P 1 is S pixels by S lines, and the display time interval between the reference picture P 1 and the picture P 4 is three times the display time interval between the reference picture P 1 and the picture B 2 . In this case, the search range in the reference picture P 1 , which is used for estimating a motion vector MV 2 for the target block BL 2 is (3×S) pixels by (3×S) lines.

The prediction computation unit 123 reads out the motion vector MV 2 from the storage unit 122 and calculates the prediction motion vector MV 0 F* and the prediction motion vector MV 1 F* for the target blocks BL 0 and BL 1 , which are co-located with the target block BL 2 in the picture B 2 and the picture B 3 , by scaling the motion vector MV 2 .

More specifically, by using the display order information T 1 , T 2 , T 3 and T 4 for the pictures P 1 , B 2 , B 3 and P 4 , as well as an (Equation 5a) and an (Equation 5b) below, the prediction computation unit 123 calculates the prediction motion vector MV 0 F*, relative to the reference picture P 1 , for the target block BL 0 in the picture B 2 as well as the prediction motion vector MV 1 F* relative to the reference picture P 1 , for the target block BL 1 in the picture B 3 , using the (Equation 5a) and the (Equation 5b) below. Note that in the (Equation 5a) and the (Equation 5b), Mv 0 f * and Mv 1 f * indicate the size of the prediction motion vectors MV 0 F*and MV 1 F* respectively, and Mv 2 indicates the size of the motion vector MV 2 .

MV 0 F *=( T 2 −T 1)/( T 4 −T 1)× Mv 2  (Equation 5a)

Mv 1 f *=( T 3 −T 1)/( T 4 −T 1)× Mv 2  (Equation 5b)

The search range control unit 124 specifies a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 0 F* and defines the search range into the motion vector estimation unit 121 ; the search range control unit 124 also specifies a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 1 F* and defines the search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a forward motion vector for the target block BL 0 and a forward motion vector for the target block BL 1 within the search range in the reference picture P 1 defined by the search range control unit 124 .

In other words, after estimating the motion vector MV 2 for the target block BL 2 relative to the reference picture P 1 , the motion vector estimation unit 121 estimates the forward motion vector for the target block BL 0 relative to the reference picture P 1 and then estimates the forward motion vector for the target block BL 1 relative to the reference picture P 1 . Subsequently, the motion vector estimation unit 121 stores forward motion vectors for the target block BL 0 and the target block BL 1 respectively into the storage unit 122 .

(Modification 3)

Below, the prediction motion vector detection method in the present embodiment is described for a third modification.

When calculating a backward prediction motion vector in the embodiment above, the motion vectors for the P picture are scaled. In other words, as shown in FIG. 11 , the motion vector estimation apparatus 100 a estimates the motion vector MV 2 for the block BL 2 that is included in the reference picture P 4 which is a P picture, and scales the motion vector MV 2 . As a result, the motion vector estimation apparatus 100 a calculates the backward prediction motion vector MV 0 B* for the target block BL 0 , which is included in the picture B 2 , as well as the backward prediction motion vector MV 1 B for the target block BL 1 , which is included in the picture B 3 .

In the present modification, when calculating the backward prediction motion vector, a backward prediction motion vector is calculated for a B picture, i.e. another target picture, by scaling a backward motion vector in the nearest B picture to the reference picture among the target pictures in the display sequence.

FIG. 17 is a diagram which shows the prediction motion vector calculation method in the third modification.

First, the motion vector estimation unit 121 estimates a motion vector (backward motion vector) MV 1 B for the targeted bloc BL 1 included in picture B 3 , which is the nearest to the reference picture P 4 among the target pictures. Next, the motion vector estimation unit 121 stores the motion vector MV 1 B in the storage unit 122 .

The prediction computation unit 123 reads out the motion vector MV 1 B from the storage unit 122 and calculates the prediction motion vector MV 0 B* relative to the target block BL 0 , which is co-located with the target block BL 1 in the picture B 2 , by scaling the motion vector MV 1 B.

More specifically, using the display order information T 1 , T 2 , T 3 and T 4 of the pictures P 1 , B 2 , B 3 and P 4 and (Equation 6) below, the prediction computation unit 123 calculates the prediction motion vector MV 0 B* relative to the reference picture P 4 in the picture B 2 . Note that in the (Equation 6), Mv 0 b * indicates the size of the prediction motion vector MV 0 B*, and Mv 1 B indicates the size of the motion vector MV 1 B.

Mv 0 b *=( T 4 −T 2)/( T 4 −T 3)× Mv 1 b   (Equation 6)

The search range control unit 124 specifies a search range of S pixels by S lines centered on the position in the reference picture P 4 indicated by the prediction motion vector MV 0 B*, and defines the search range in the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a backward motion vector for the target block BL 0 within the search range in the reference picture P 4 defined by the search range control unit 124 . In other words, after estimating a motion vector for the target block BL 0 relative to the reference picture P 1 , the motion vector estimation unit 121 estimates the backward motion vector for the target block BL 0 relative to the reference picture P 4 . Next, the motion vector estimation unit 121 stores the backward motion vector MV 0 B for the target block BL 0 into the storage unit 122 .

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 9 of 13

In this way, for the present modification, by scaling the backward motion vectors in the B picture nearest to the reference picture in the display sequence, the prediction motion vector for a target block included in another B picture next to the B picture may be calculated with great accuracy.

(Modification 4)

Below, the prediction motion vector calculation method in the present embodiment is described for a fourth modification.

In the embodiment above, when calculating a backward prediction motion vector, a motion vector for the P picture is scaled.

In the present modification, when calculating a backward prediction motion vector, the backward prediction motion vector for a B picture is calculated by scaling the backward motion vector for another B picture, which is the furthest from the reference picture among the target pictures in the display sequence.

FIG. 18 is a figure which shows a prediction motion vector calculation method in the fourth modification.

First, the motion vector estimation unit 121 estimates the motion vector (backward motion vector) MV 0 B for the target block BL 0 included in the picture B 2 , which is the furthest from the reference picture P 4 among plural target pictures in the display sequence. Next, the motion vector estimation unit 121 stores the motion vector MV 0 B in the storage unit 122 .

For example, the search range for the motion vector for a block in the picture B 3 , relative to the reference picture P 4 , is S pixels by S lines, and the display time interval between the reference picture P 4 and the picture B 2 is two times the display time interval between the reference picture p 4 and the picture B 3 . In this case, the search range in the reference picture P 4 for estimating the motion vector MV 0 B for the target block BL 0 is (2×S) pixels by (2×S) lines.

The prediction computation unit 123 reads out the motion vector MV 0 B from the storage unit 122 and calculates the prediction motion vector MV 1 B* for the target block BL 1 , which is co-located with the target block BL 0 in the picture B 3 , by scaling the motion vector MV 0 B.

More specifically, the prediction computation unit 123 uses the display order information T 1 , T 2 , T 3 and T 4 for the pictures P 1 , B 2 , B 3 and P 4 to calculate the prediction motion vector MV 1 B*, relative to the reference picture P 4 , for the target block BL 1 in the picture B 3 by (Equation 7) below. Note that in the (Equation 7), Mv 1 b * indicates the size of the prediction motion vector MV 1 B* and Mv 0 b indicates the size of the motion vector MV 0 B.

Mv 1 b *=( T 4 −T 3)/( T 4 −T 2)× Mv 0 b   (Equation 7)

The search range control unit 124 specifies a search range of S pixels by S lines centered on a position in the reference picture P 4 indicated by the prediction motion vector MV 1 B* and defines the search range in the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a backward motion vector for the target block BL 1 within the search range in the reference picture P 4 , which is defined by the search range control unit 124 . In other words, after estimating the backward motion vector for the target block BL 0 relative to the reference picture P 4 , the motion vector estimation unit 121 estimates the backward motion vector for the target block BL 1 relative to the reference picture P 4 . Subsequently, the motion vector estimation unit 121 stores the backward motion vector for the target block BL 1 .

(Modification 5)

Below, the prediction motion vector calculation method in the present embodiment is described for a fifth modification.

In the embodiment above, a motion vector is estimated for a picture among plural target pictures and by scaling the motion vector, another prediction motion vector for another target picture is calculated. In other words, as shown in FIG. 9 , the motion vector estimation apparatus 100 a estimates the motion vector MV 0 F for the target block BL 0 , which is included in the earliest picture B 2 among the target pictures in the display order, and scales the motion vector MV 0 F. As a result, the motion vector estimation apparatus 100 a calculates the forward prediction motion vector MV 1 F* for the target block BL 1 included in the picture B 3 , and calculates the forward prediction motion vector MV 2 * for the target block BL 2 included in the picture P 4 .

In the present modification, the motion vectors for plural target pictures are estimated and the motion vectors in the closest picture to the picture targeted for prediction motion vector calculation are scaled. In this way, the prediction motion vectors are calculated. In other words, in the present modification, a search range in the reference picture is specified based on a first motion vector in a picture with the shortest display time difference from the second picture among the plural first pictures.

FIG. 19 is a figure which shows the prediction motion vector calculation method in the fifth modification. First, the motion vector estimation unit 121 estimates the motion vector (a forward motion vector) MV 0 F for the target block BL 0 included in the picture B 2 , the picture B 2 being the nearest picture to the reference picture P 1 , among the target pictures in the display order. Next, the motion vector estimation unit 121 stores the motion vector MV 0 F in the storage unit 122 . The motion vector estimation unit 121 then estimates a motion vector (a forward motion vector) MV 1 F for the block BL 1 , which is included in the picture B 3 , the picture B 3 being the closest picture after the picture B 2 to the reference picture P 1 among the target pictures in the display order. Next, the motion vector estimation unit 121 stores the motion vector MV 1 F in the storage unit 122 .

Here, for example, the search range for the motion vector for a block of the picture B 2 , relative to the reference picture P 1 , is S pixels by S lines and the display time interval between the reference picture P 1 and the picture B 3 is two times the display time interval between the reference picture P 1 and the picture B 2 . In this case, the search range in the reference picture P 1 , which is used for estimating the motion vector MV 1 F for the target block BL 1 is (2×S) pixels by (2×S) lines.

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 10 of 13

The prediction computation unit 123 reads out the motion vector MV 1 F in the picture B 3 from between the motion vector MV 0 F and the motion vector MV 1 F which are stored in the storage unit 122 , the picture B 3 being nearest to the picture P 4 . Subsequently, the prediction computation unit 123 calculates the prediction motion vector MV 2 * for the target block BL 2 , which is co-located with the target blocks BL 0 and BL 1 in the picture P 4 , by scaling the motion vector MV 1 F.

The search range control unit 124 specifies a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 2 * and defines the search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a motion vector for the target block BL 2 within the search range in the reference picture P 1 , which is defined by the search range control unit 124 . In other words, after estimating the forward motion vector for the target block BL 0 relative to the reference picture P 1 , the motion vector estimation unit 121 estimates a forward motion vector for the target block BL 1 relative to the reference picture P 1 , and next estimates a motion vector for the target block BL 2 relative to the reference picture P 1 . Next, the motion vector estimation unit 121 stores the motion vector for the target block BL 2 in the storage unit 122 .

(Modification 6)

Below, the prediction motion vector calculation method in the present embodiment is described for a sixth modification.

In the embodiment above, a motion vector for a picture from among a plurality of target pictures is estimated and the prediction motion vectors for another target picture are calculated by scaling the motion vectors.

In the present modification, motion vectors for a plurality of target pictures are estimated. Subsequently, when the motion vectors have a uniform orientation, the prediction motion vector for the other target picture is calculated by scaling one of the motion vectors.

FIG. 20 is a figure which shows the prediction motion vector calculation method in the sixth modification. First, the motion vector estimation unit 121 estimates the motion vector (forward motion vector) MV 0 F for the target block BL 0 which is included in the picture B 2 , the picture B 2 being the closest picture to the reference picture P 1 among the target pictures in the display order.

Further, the motion vector estimation unit 121 estimates the motion vector MV 2 for the target block BL 2 , which is included in the picture P 4 , the picture P 4 being the furthest picture from the reference picture P 1 among the target pictures in the display order. Next, the motion vector estimation unit 121 stores the motion vectors MV 0 F and MV 2 in the storage unit 122 .

Here, for example, the search range for the motion vector for the block in the picture B 2 relative to the reference picture P 1 is S pixels by S lines and the display time interval between the reference picture P 1 and the picture P 4 is three times the display time interval between the reference picture P 1 and the picture B 2 . In this case, the search range in the reference picture P 1 , which is used for estimating the motion vector MV 2 for the target block BL 2 is (3×S) pixels by (3×S) lines.

The prediction computation unit 123 reads out and compares the motion vector MV 0 F and the motion vector MV 2 stored in the storage unit 122 . When the motion vectors are uniform, the prediction calculation unit 123 calculates the prediction motion vector MV 1 F* relative to the target block BL 1 , which is co-located with the target blocks BL 0 and BL 2 , by scaling the motion vector MV 0 F or the motion vector MV 2 .

The search range control unit 124 specifies a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 1 F* and defines the search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates the motion vector for the target block BL 1 within the search range in the reference picture P 1 , which is defined by the search range control unit 124 . In other words, after estimating the forward motion vector for the target block BL 0 relative to the reference picture P 1 and estimating a motion vector for the target block BL 2 relative to the reference picture P 1 , the motion vector estimation unit 121 estimates the forward motion vector for the target block BL 1 relative to the reference picture P 1 . Next, the motion vector estimation unit 121 stores the motion vector for the target block BL 1 in the storage unit 122 .

In this modification, when the orientations of each motion vector in plural pictures are respectively uniform, the accuracy of a prediction motion vector can be raised by scaling one of each motion vector in the pictures and calculating a prediction motion vector.

Note that the motion vectors within the search range indicated by the prediction motion vectors need not be estimated since the prediction motion vector calculated in this way is highly accurate. In other words, the prediction motion vectors may be managed in the same way as real motion vectors.

(Modification 7)

Below, the prediction motion vector calculation method in the present embodiment is described for a seventh modification.

In the embodiment above, when calculating a prediction motion vector for a target block relative to the reference picture, a motion vector for a block other than the target block is scaled.

In the present modification, when calculating a prediction motion vector for a target block relative to a reference picture, a motion vector for the target block relative to another reference picture is scaled.

FIG. 21 is a figure which shows the prediction motion vector calculation method in the seventh modification. First, the motion vector estimation unit 121 estimates the motion vector MV 3 F for the target block BL 3 which is included in the picture B 5 , relative to the reference picture P 4 , the picture B 5 being a B picture.

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 11 of 13

The prediction computation unit 123 calculates the prediction motion vector MV 3 F* for the target block BL 3 relative to the reference picture P 1 by scaling the motion vector MV 3 F estimated by the motion vector estimation unit 121 .

The search range control unit 124 specifies a search range of S pixels by S lines centered on a position in the reference picture P 1 indicated by the prediction motion vector MV 3 F*, and defines the search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a motion vector for the target block BL 3 relative to the reference picture P 1 within the search range in the reference picture P 1 , which is defined by the search range control unit 124 . Next, the motion vector estimation unit 121 stores the motion vectors for the target block BL 3 relative to the reference picture P 1 in the storage unit 122 .

The modification is compatible with H.264 in which plural pictures can be referenced.

(Modification 8)

Below, the search range in the present embodiment is described for an eighth modification.

In the embodiment above, motion vectors are estimated by searching within a search range in the reference picture which is centered on a position indicated by a prediction motion vector. In other words, as shown in FIG. 9 , upon estimating the forward motion vector for the target block BL 1 included in the picture B 3 , the motion vector estimation apparatus 100 a searches for a block which has an image approximating that of the target block BL 1 , within only the search region (S pixels by S lines) in the reference picture P 1 , the search region being centered on a position indicated by the prediction motion vector MV 1 F* for the target block BL 1 .

In the present modification, a target block in the reference picture and a block spatially co-located with the target block are included in the search range in the reference picture, which is centered on a position indicated by the prediction motion vector.

FIG. 22 is a figure which shows the search range in the eighth modification. The search range control unit 124 according to the present modification includes the block BL in the reference picture P 1 , which is co-located with the target block BL 1 , into the search range (S pixels by S lines) in the reference picture P 1 , the search range being centered on a position indicated by the prediction motion vector MV 1 F*, which is calculated by the prediction computation unit 123 . The search range control unit 124 includes the block BL in the reference picture, which is co-located with the target block BL 2 , in the search range (S pixels by S lines) in the reference picture P 1 , which is centered on the position indicated by the prediction motion vector MV 2 *, which is calculated by the prediction motion computation unit 123 . The search range control unit 124 specifies a search range that includes the block BL and defines the search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a forward motion vector for the target block BL 1 and a forward motion vector for the target block BL 2 respectively within each search range that includes the block BL in the reference picture P 1 .

In the above modification, it is possible to estimate an appropriate motion vector which could not be estimated within the search range of S pixels by S lines by expanding the search range.

(Modification 9)

Below, the prediction motion vector calculation method in the present embodiment is described for a ninth modification.

In the embodiment above, after calculating the forward prediction motion vector for the B picture, the backward prediction motion vector is calculated.

In the present modification, the forward prediction motion vector and the backward prediction motion vector in the B picture are calculated simultaneously by scaling the forward prediction motion vector and the backward prediction motion vector. Also, in the present modification, before calculating the prediction motion vector, two P pictures are coded and decoded beforehand.

FIG. 23 is a diagram which shows the state of each picture before the prediction motion vectors in the ninth modification are calculated.

In the present modification, the moving picture coding apparatus 100 first codes and decodes two P pictures and stores the pictures as respective reference pictures in the picture memory 120 .

FIG. 24 is a figure which shows the prediction motion vector calculation method in the ninth modification. In the present modification as above, the moving picture coding apparatus 100 first codes and decodes the picture P 1 and the picture P 4 and stores the pictures respectively in the picture memory 120 as reference pictures. Accordingly, after the coding and decoding has been performed, the motion vectors for each block in the reference picture P 4 are stored in the storage unit 122 .

In order to calculate a prediction motion vector for the target blocks BL 0 , BL 1 and BL 5 , which are co-located with and are included in the target pictures B 2 , B 3 and P 7 respectively, the prediction computation unit 123 reads out, from the storage unit 122 , the motion vector MV 2 for the block BL 2 in the reference picture P 4 , which is co-located with the target blocks BL 0 , BL 1 and BL 5 .

Subsequently, the prediction computation unit 123 calculates a forward prediction motion vector MV 0 F*, relative to the reference picture P 1 , for the target block BL 0 which is included in the picture B 2 , and a backward prediction motion vector MV 0 B* relative to the reference picture P 4 , by scaling the motion vector MV 2 . Further, the prediction computation unit 123 calculates the forward prediction motion vector MV 1 F* relative to the reference picture P 1 and the backward prediction motion vector MV 1 B* relative to the reference picture P 4 for the target block BL 1 which is included in the picture B 3 , by scaling the motion vector MV 2 . Further, the prediction computation unit 123 calculates a prediction motion vector MV 5 *, relative to the reference picture P 4 , for the target block BL 5 which is included in the picture P 7 , by scaling the motion vector MV 2 .

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 12 of 13

The search range control unit 124 specifies the search range (S pixels by S lines), which is centered on a position indicated by the prediction motion vector, for every prediction motion vector calculated by the prediction computation unit 123 , and defines the search range into the motion vector estimation unit 121 .

The motion vector estimation unit 121 estimates a motion vector within each search range defined by the search range control unit 124 . In other words, the motion vector estimation unit 121 estimates the forward motion vector for the target block BL 0 in the picture B 2 within the search range in the reference picture P 1 and estimates the backward motion vector for the target block BL 0 in the picture B 2 within the search range in the reference picture P 4 . Afterwards, the motion vector estimation unit 121 estimates the forward motion vector for the target block BL 1 in the picture B 3 within the search range of the reference picture P 1 and estimates the backward motion vector for the target block BL 1 in the picture B 3 within the search range in the reference picture P 4 . Further, the motion vector estimation unit 121 estimates the motion vector for the target block BL 5 in the picture P 7 within the search range in the reference picture P 4 . Next, the motion vector estimation unit 121 sequentially stores the motion vectors estimated in this way into the storage unit 122 .

The motion vector estimation apparatus 100 a performs motion vector estimation on each target block while shifting co-located target blocks included in the target pictures B 2 , B 3 and P 7 respectively. Subsequently, the moving picture coding apparatus 100 codes the pictures B 2 , B 3 and P 7 using the motion vector estimated in this way, decodes the picture P 7 and stores it in the picture memory 120 as a reference picture. Accordingly, after the coding and decoding has been performed, the motion vectors for each block in the picture P 7 are stored in the storage unit 122 .

The motion vector estimation apparatus 100 a changes the target pictures B 2 , B 3 and P 7 for the target pictures B 5 , B 6 and P 10 and performs successive motion vector estimations as above on the target pictures B 5 , B 6 and P 10 .

(Modification 10)

Below, the motion vector estimation method in the present embodiment is described for a tenth modification.

In the present modification, the moving picture coding apparatus 100 performs motion vector estimation, prediction motion vector calculation, search range specification as well as a coding and a decoding process using pipelining.

FIG. 25 is a figure which shows pipelining in the tenth modification. First, the motion vector estimation unit 121 estimates the motion vector MV 0 F for the (N−1)th block BL 0 of the picture B 2 (Step S 500 ).

Afterward, the prediction computation unit 123 calculates the prediction motion vectors MV 1 F* and MV 2 * for the (N−1)th blocks BL 1 and BL 2 respectively in the pictures B 3 and P 4 using the motion vector MV 0 F. Further, the search range control unit 124 specifies a search range indicated by the calculated prediction motion vectors MV 1 F* and MV 2 * (Step S 502 ). While the prediction motion vector calculation and the search range specification are being performed, the motion vector estimation unit 121 estimates the motion vector MV 1 F for the block BL 1 within the search range already specified for the (N−2)th block BL 1 in the picture B 3 (Step S 504 ).

Afterwards, the motion vector estimation unit 121 estimates as above the motion vector MV 2 for the block BL 2 within the search range already specified for the (N−2)th block BL 2 in the picture P 4 (Step S 506 ).

Next, the moving picture coding apparatus 100 codes the prediction residual image for the (N−2)th block BL 2 in the picture P 4 using the motion vector MV 2 estimated as above, and by decoding the encoded prediction remainder, generates a re-constructed image and stores it in the picture memory 120 (Step S 510 ). While the coding and decoding processes are being performed, the motion vector estimation unit 121 estimates the motion vector MV 0 F for the Nth block BL 0 in the picture B 2 (Step S 508 ).

Afterwards, as above, the prediction computation unit 123 calculates the prediction motion vectors MV 1 F* and MV 2 * for the Nth blocks BL 1 and BL 2 in the pictures B 3 and P 4 respectively using the motion vector MV 0 F. Further, the search range control unit 124 specifies a search range indicated by the calculated prediction motion vectors MV 1 F* and MV 2 * (Step S 512 ). While the prediction motion vector calculation and the search range specification is being performed, the motion vector estimation unit 121 estimates the motion vector MV 1 F for the block BL 1 within the search range already specified relative to the (N−1)th block BL 1 in the picture B 3 (Step S 514 ).

Afterward, the motion vector estimation unit 121 estimates, as above, the motion vector MV 2 for the (N−1)th block BL 2 within the search range already specified for the (N−1)th block BL 2 in the picture P 4 (Step S 516 ).

FIG. 26 is a figure which shows the block order for motion vector estimation targets in the present modification.

Note that the N and (N−1) shown in blocks for each picture in FIG. 26 indicate block positions in the picture.

In the present modification, after the forward motion vector for the Nth block in the picture B 2 is estimated by performing pipelining, the forward motion vector for the (N−1)th block in the picture B 3 is estimated and subsequently the forward motion vector for the (N−1)th block in the picture P 4 is estimated.

Below, even when the moving picture coding apparatus 100 estimates a motion vector using the prediction motion vector calculation method in the ninth modification, the motion vector estimation, coding and decoding processes are performed by pipelining.

FIG. 27 is a figure which shows a different pipelining from the present modification. For instance, when the reference picture P 1 and the reference picture P 4 have already been coded and decoded, the motion vector estimation apparatus 100 a calculates the prediction motion vectors MV 0 F* and MV 0 B* for the (N−1)th block BL 0 in the picture B 2 , the prediction motion vectors MV 1 F* and MV 1 B* for the (N−1)th block BL 1 in the picture B 3 and the prediction motion vector MV 5 * for the (N−1)th block BL 5 in the picture P 7 by scaling the motion vector MV 2 for the (N−1)th block BL 2 in the reference picture P 4 . Subsequently, the motion vector estimation apparatus 100 a specifies the respective search ranges from the calculated prediction motion vectors (Step S 600 ).

›DESCRIPTION OF THE PREFERRED EMBODIMENT · 13 of 13

Next, the motion vector estimation apparatus 100 a estimates the motion vectors MV 0 F and MV 0 B for the (N−1)th block BL 0 in the picture B 2 (Step S 602 ).

Subsequently, the moving picture coding apparatus 100 codes the (N−1)th block BL 0 for the picture B 2 using the estimated motion vectors MV 0 F and MV 0 B (Step S 604 ). While the coding is being performed, the motion vector estimation apparatus 100 a estimates the motion vectors MV 1 F and MV 1 B for the (N−1)th block BL 1 in the picture B 3 (Step S 606 ).

Subsequently, the moving picture coding apparatus 100 codes the (N−1)th block BL 1 in the picture B 3 using the estimated motion vectors MV 1 F and MV 1 B (Step S 610 ). While the coding is being performed, the motion vector estimation apparatus 100 a estimates the motion vector MV 5 for the (N−1)th block BL 5 in the picture P 7 (Step S 612 ). Further, the motion vector estimation apparatus 100 a calculates the prediction motion vectors MV 0 F* and MV 0 B* for the Nth block BL 0 in the picture B 2 , the prediction motion vector MV 1 F* for the Nth block BL 1 in the picture B 3 and the prediction motion vector MV 5 * for the Nth block BL 5 in the picture P 7 , by scaling the motion vector MV 2 for the Nth block BL 2 in the reference picture P 4 . Subsequently, the motion vector estimation apparatus 100 a specifies a search range from the respective calculated prediction motion vectors (Step S 608 ).

Next, the motion vector estimation apparatus 100 a estimates the backward motion vectors MV 0 F and MV 0 B for the Nth block BL 0 in the picture B 2 (Step S 614 ). Further, the moving picture coding apparatus 100 codes the prediction residual image for the (N−1)th block BL 5 in the picture P 7 using the motion vector MV 5 estimated in Step S 612 , generates a re-constructed image by decoding the coded prediction residual image and stores the re-constructed image into the picture memory 120 (Step S 616 ).

Subsequently, the moving picture coding apparatus 100 codes the Nth block BL 0 in the picture B 2 using the motion vectors MV 0 F and MV 0 B estimated in Step S 614 (Step S 618 ). While the coding is being performed, the motion vector estimation apparatus 100 a estimates the motion vectors MV 1 F and MV 1 B for the Nth block BL 1 in the picture B 3 (Step S 620 ).

Subsequently, the motion picture coding apparatus 100 codes the Nth block BL 1 in the picture B 3 using the estimated motion vectors MV 1 F and MV 1 B (Step S 624 ). While the coding is being performed, the motion vector estimation apparatus 100 a estimates the motion vector MV 5 for the Nth block BL 5 in the picture P 7 (Step S 626 ). Further, the motion vector estimation apparatus 100 a calculates the prediction motion vectors MV 0 F* and MV 0 B* for the (N+1)th block BL 0 in the picture B 2 , the prediction motion vector MV 1 F* for the (N+1)th block BL 1 in the picture B 3 and the prediction motion vector MV 5 * for the (N+1)th block BL 5 in the picture P 7 , by scaling the (N+1)th block BL 2 in the reference picture P 4 . Subsequently, the motion vector estimation apparatus 100 a specifies the search range respectively from among the calculated prediction motion vectors (Step S 622 ).

In this way, in the present modification, the overall processing time can be reduced by performing the motion vector estimation process and other processes by pipelining.

Above, the present invention is described using the embodiment and its modifications, however the present invention is not limited to these.

For example, in the tenth modification, motion vector estimation processes and other processes are performed by pipelining, however, plural motion vector estimation processes may be executed in parallel. In this case, the motion vector estimation apparatus 100 a includes plural motion vector estimation units 121 . These motion vector estimation units 121 simultaneously execute estimation, for example, of the forward motion vector MV 1 F for the (N−2)th block in the picture B 3 , shown in FIG. 25 , and estimation of the motion vector MV 2 for the (N−2)th block in the picture P 4 .

In the present invention, each functional block in the block diagram ( FIG. 7 and so on) may be realized as an LSI, i.e. an integrated circuit. Each of these parts can be in plural single-function LSIs, or can also be in one integrated LSI. (For example, functions other than memory blocks can be in one integrated LSI.) The name used here is LSI, but it may also be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.

Moreover, ways to achieve integration are not limited to the LSI, and a special circuit or a general purpose processor and so forth can also achieve the integration. Field Programmable Gate Array (FPGA) that can be programmed after manufacturing LSI or a reconfigurable processor that allows re-configuration of the connection or configuration of LSI can be used for the same purpose.

In the future, with advancement in manufacturing technology, a brand-new technology may replace LSI. The integration can be carried out by that technology. Application of biotechnology is one such possibility.

Also, among the functional blocks, the means for storing data which is targeted for coding or decoding may be realized in another configuration without being made into a single chip.

Although only one exemplary embodiment of this invention has been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiment without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention.

›INDUSTRIAL APPLICABILITY

The motion vector estimation apparatus in the present invention performs the effect of decreasing circuit size by reducing the amount of computations for motion vector estimation and is, for instance, effective as a apparatus for generating a coded stream by coding each picture which composes a moving picture for a cellular telephone, a video camera, a DVD apparatus, a personal computer and so forth and decoding the generated coded stream.

Claims as granted

7 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

13 codes
IPC · International Patent Classification
Section H — Electricity
  • H04N19/57
  • H03M7/36
  • H04N19/134
  • H04N19/533
  • H04N19/109
  • H04N19/423
  • H04N19/50
  • H04N19/51
  • H04N11/02
  • H04N11/04
USPC · US Patent Classification
375/240.16375/240.24375/240.15

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoom2007200820092010201120122013USPTOApplicantNon-final rejectionResponse after non-finalApplicant-initiated interviewApplicant-initiated interview
USPTOApplicanthover for detail · click to open
Pendency
6.6 y
2,399 days filing → grant
Office actions
5
non-final + final
Responses
5
1 RCE
Interviews
5
examiner interview summaries
Examiner
Joseph Ustaris
art unit 2483 · TC 2400
Citations: 23 back · 7 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom2008201020122014201620182020202220242026Owner 2
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock