EP0293644A1 - Method for determining movement vector fields from digital image sequences - Google Patents
Method for determining movement vector fields from digital image sequences Download PDFInfo
- Publication number
- EP0293644A1 EP0293644A1 EP88107514A EP88107514A EP0293644A1 EP 0293644 A1 EP0293644 A1 EP 0293644A1 EP 88107514 A EP88107514 A EP 88107514A EP 88107514 A EP88107514 A EP 88107514A EP 0293644 A1 EP0293644 A1 EP 0293644A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- motion vector
- motion vectors
- image
- pixels
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 271
- 239000013598 vector Substances 0.000 title claims abstract description 254
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000006073 displacement reaction Methods 0.000 claims abstract description 8
- 239000002131 composite material Substances 0.000 claims abstract description 3
- 230000008569 process Effects 0.000 claims description 13
- 238000013144 data compression Methods 0.000 claims description 8
- 238000009499 grossing Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 37
- 230000006872 improvement Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 229920001817 Agar Polymers 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Definitions
- the present invention relates to a method for determining motion vector fields from digital image sequences, which calculates a motion vector field from each two successive images, which associates each pixel of an image with an image point of the other image, the assignment being defined in each case by a motion vector, which is the reproduces relative displacement of the pixels relative to each other, and each pixel in a square or rectangular block of pixels receives the same motion vector.
- the motion vector fields are e.g. B. used in image data compression for the purpose of transmitting digital images with low data rates to predict the next, not yet transmitted image from already transmitted images.
- motion vector fields Another application of the motion vector fields is the reconstruction of missing images from an image sequence that was undersampled in time for the purpose of data compression. That means that e.g. B. only every third image of the sequence is available and the two missing images between two existing images (the "reference point images”) are to be interpolated as "movement-correctly" as possible, so that the movements of objects in the reconstructed scene run as smoothly as in the original .
- motion vector fields are required which indicate for each pixel of an image to be interpolated which image point or which image points are to be used in the two associated reference point images for the reconstruction of the relevant pixel.
- a motion vector is assigned to each pixel of an image or also to a group of adjacent pixels in the motion vector fields, which motion vector describes the local motion by two components, namely the horizontal and the vertical motion component.
- a problem with the determination of such motion vector fields is that the movements present in an image sequence are generally dependent on the location of the pixels, so that several different motion vectors can occur in a small image section, in particular at the edges of moving objects. Therefore, to determine a motion vector for a certain pixel, only this pixel itself should actually be considered. On the other hand, a motion vector cannot be determined from a single pixel, if only because the motion vector contains two components and each individual pixel defines only one equation for these two unknowns, cf. BBKP Horn, BG Schunck: "Determining optical flow", Artificial Intelligence 17, pp. 185-203, 1981.
- the image for which motion vectors are to be determined is divided into square or rectangular blocks of constant size, ie with a predetermined number of pixels (often 16x16 or 8x8), cf. BCM Lin, SC Kwatra: “Motion compensated interframe color image coding ", Proc. Int. Conf. on Communications, 1984, vol. 1, pp. 516-520 and H. Brusewitz, P. Weiss:” A videoconference system at 384 kbit / s ". Picture Coding Symposium, Tokyo , Abstracts p. 212, 1986.
- the same motion vector is determined for all pixels in a block, namely on the assumption that approximately the motion in the small image section that corresponds to a block is constant.
- the motion vector for a BLock in image B is determined by picking out the block in image A that contains the pixels shifted by the motion vector from image A for a large number of possible motion vectors in a predetermined value range, and that from the plurality of these blocks, the one is selected that has the least difference to the given block in image B.
- the difference between two blocks in Figures A and B is determined by a suitable distance, namely z. B. the sum of the squares (L2 norm) or the sum of the amounts (L1 norm) of the pixel differences, expressed.
- the motion vector in which the two blocks from image A and image B have the smallest distance is adopted in the motion vector field sought.
- a problem with this method is that the description of the image content as model parameters is only valid within narrow limits and z. B. fails with large shifts between image A and image B. Furthermore, the environment of the image point is used to calculate the model parameters for a pixel, again the uniformity of the movement in this environment is presupposed, so that the choice of the size of this environment poses the same problems as the choice of block size in block matching processes. The fact that the surroundings of the pixels overlap each other results in vector fields that change only slightly from one pixel to the next and therefore do not correctly represent jumps in the movement that occur at object boundaries.
- the motion vector field must be interpolated from the given motion vectors using suitable means.
- Problematic here are the reliable finding of the distinctive points or lines, for which the motion vectors are initially determined, and the segmentation of the image into areas with uniform movement, which can be determined from the given vectors of the distinctive points or lines by interpolation. Because of the difficulty of these subtasks, these methods are practically only suitable for image sequences with rigid bodies, such as, for. B. vehicles, but not for processing scenes with moving people, as they often occur in image data compression.
- the present invention has for its object to provide a novel method of the type mentioned, by means of which motion vector fields can be determined from a given image sequence, special measures being taken to ensure that the motion vector fields reproduce the motion actually present in the image as far as possible.
- the object is achieved by a method for determining motion vector fields from digital image sequences, which determines a motion vector field from two successive images, which assigns a pixel of the other image to each pixel of one image, the assignment being defined in each case by a motion vector which defines the relative Displacement of the pixels against each other, and where each pixel in a square or rectangular block of pixels receive the same motion vector, solved, which is characterized according to the invention in that the determination of the motion vectors is carried out by minimizing a composite objective function, which on the one hand the differences of the luminance values of the pixels assigned to one another of the two given images is taken into account, and secondly the differences between motion vectors whose coordinates are adjacent, namely so-called neighboring motion vectors , evaluated with the aid of a smoothness measure, and that the minimization of this objective function is carried out in such a way that first the motion vectors minimizing the objective function are determined with the restriction that the motion vectors are constant in larger than the finally aimed blocks, and then each of these Blocks are
- the method according to the invention is based on the principle of block matchine explained above, see HG Musmann et al, as stated above, ie a motion vector is generated for each block of pixels by evaluating a target function for various possible vectors and searching for that Motion vector that delivers the optimum of the target function is determined.
- the method is described below on the basis of a preferred exemplary embodiment for the case in which a motion vector field is determined from two images - image A and image B - one for blocks of 4 * 4 pixels (pixels) uniform motion vector field is defined.
- the process begins with larger blocks that contain several small blocks. In the present example, blocks with the size 16 * 16 are started.
- d () is used for each pixel b (i, j) in block B (m, n) and for each motion vector [r, s] in question.
- the "penalty term” thus consists of the L1 norm of the motion vector, multiplied by a control parameter ⁇ and by the number of pixels in a block, namely 256.
- a square value range is usually chosen for S, e.g. B. the set of all motion vectors [r, s] for which the maximum amount of the two components r and s does not exceed an upper limit.
- d i, j, r, s
- the value range S is best limited to a number of sample values [r, s] in a fixed grid (e.g. lattice constant 4) and then in the vicinity of the Optimums continued to be searched ("Three Step Search", see, for example, BHG Musmann, P. Pirsch, H.-J. Grallert: "Advances in Picture Coding", Proc. IEEE 73 (1985) 4, pp. 523-548.
- the accuracy of the method can be increased in that the search for the optimal motion vector is carried out partly in low-pass filtered images, which in turn can be combined with undersampling of the image in order to reduce expenditure.
- This first step of the motion vector determination method therefore represents a known block matching method, which, however, is introduced by introducing the "penalty term" P16 (r, s) according to Eq. 1.7a, b was modified for the purpose of smoothing the motion vector fields.
- this motion vector field is improved iteratively (Relaxation).
- a new "penalty term” or a new smoothness measure P16 ′ (m, n, r, s) is now defined, with the aid of which the deviation of the motion vectors X16 (m, n) from their respective four neighboring motion vectors X16 ( m-1, n), X16 (m + 1, n), X16 (m, n-1) and X16 (m, n + 1) is measured, see FIG. 3.
- P16 ′ (m, n, r, s) abs (r - x16 (m-1, n)) + abs (s - y16 (m-1, n)) + + abs (r - x16 (m + 1, n)) + abs (s - y16 (m + 1, n)) + + abs (r - x16 (m, n-1)) + abs (s - y16 (m, n-1)) + + abs (r - x16 (m, n + 1)) + abs (s - y16 (m, n + 1)) * * ⁇ * 16 (2.1)
- r and s are the components of a motion vector [r, s] which is to be used as the new motion vector X16 (m, n) for block B (m, n).
- the smoothness measure P16 '(m, n, r, s) thus represents the sum of the absolute norms (L1 norms) of the four difference vectors between X16 (m, n) and its neighbors, multiplied by a control parameter " ⁇ " and the edge length of one Blocks, namely 16.
- the control parameter " ⁇ " the degree of smoothness of the motion vector field can be controlled in the relaxation step.
- the L1 standard was chosen because it preserves edges in the motion vector field as they occur at object edges, in contrast to the "quadritic standard" (L2 standard), which favors continuous transitions.
- the L1 norm of neighboring vectors and not the L2 norm means that edges are preserved in this smoothing process, similar to MEDIAN filtering.
- the median of a set of numbers is the least that minimizes the sum of the amounts of the differences, that is, the sum of the L1 norms.
- the previously described smoothing by minimizing D16 ⁇ (m, n, r, s) can therefore also be interpreted as a generalized median filtering of the motion vectors, which takes into account the "displaced frame differences".
- the quantities x (i, j) and y (i, j) etc. are the components of the motion vectors X (i, j) which result from the motion vector field X16 (m, n) in that all pixels b ( i, j) in block B (m, n) the same motion vector X16 (m, n) is assigned:
- the motion vector field is further optimized in the following - d. H.
- the objective function Z is further minimized by halving the size of the blocks in which the motion vector field is assumed to be uniform.
- This process step corresponds exactly to the relaxation step for block size 16, as described above, but with the change that "16" is to be replaced by "8” in the equations for the target function.
- D8 ⁇ (p, q, rs) corresponding to D16 ⁇ (m, n, r, s) according to Eq. 2.2 minimizes which is a smoothness measure P8 '(p, q, r, s) as in Eq. 2.1 contains.
- P8 '(p, q, r, s) as in Eq. 2.1 contains.
- the same value as for block size 16 can be used for ⁇ (see Eq. 2.1).
- This process step corresponds exactly to the relaxation steps for block sizes 16 and 8.
- block subdivision and “relaxation” can be continued up to block size 1 * 1 pixel; however, for many applications a resolution of the motion vector field with one motion vector per 4 * 4 pixels is sufficient.
- FIG. 8 shows a functional arrangement with which the motion vector determination method described above can in principle be carried out.
- the final motion vector field is determined in a sequence of variations of the motion vector field, taking into account the respective values of the target function Z.
- the method described above can also be used to determine motion vector fields for image interpolation. For this, only the sizes that measure the "displaced frame differences", namely D16 (m, n, r, s) (Eq. 1.6) and the corresponding sizes for the blocks of sizes 8 * 8 and 4 * 4, something to be modified.
- a movement vector determination is necessary on the transmission side in order to determine the movement vectors for the movement-compensating prediction. Since these motion vectors have to be transmitted, the motion vector field cannot be refined here at will. However, these motion vectors can also be used for the prediction in addition to the prediction for motion-compensating interpolation if a refined motion vector field is obtained beforehand from the transferred motion vector field and the transmitted images present on the receiver.
- the previously described multi-stage process can therefore be used in such a way that the process steps “initialization with block size 16 * 16" and “iterations with block size 16" are carried out on the transmission side and the remaining process steps ("block subdivision” and “iterations” for blocks of 8 and 4) at the receiver, see FIG. 9.
- the course of the iterative improvement (ITER) for a given block size L is shown in FIG. 5.
- the motion vector which minimizes the objective function with modified smoothness measure is determined here for all blocks B (m, n).
- the iterative improvement follows the flow chart according to FIG. 6. There is a logging field FINISHED (m, n), which indicates for each block B (m, n) - with the respective block size L - whether the block is still closed edit is - ie
- the DONE field is set to zero for all blocks.
- the minimum of the target function in a certain value range (OPTI) is searched for all blocks that are not yet "DONE", see FIG. 7.
- DONE (m, n) 1 for all these blocks set. If the motion vector of the block has changed during the minimum search, the DONE field for the neighboring blocks is set so that they can be processed again.
- the division of the blocks is preferably carried out in each case by halving the edge lengths of the blocks.
- two pixels namely one from the first and one from the second image, are assigned to each pixel of this intermediate image.
- the differences in the luminance values of corresponding pixels of the two successive images within a block of pixels are evaluated by means of the sum of the absolute amounts of the differences in the luminance values and used as summands in the target function to be minimized, these summands forming a first component of the target function.
- the differences in the luminance values of corresponding pixels of the two successive images within a block of pixels can also be evaluated by means of the sum of the squares of the differences in the luminance values and used as summands in the target function to be minimized, these summands forming a first component of the target function.
- only those four neighboring motion vectors are used as neighbors of each motion vector, the coordinates of which are horizontally and vertically adjacent to the coordinates of the relevant motion vector, i. that is, their coordinates differ by (0.1), (0, -1), (1.0) or (-1.0) from the coordinates of the relevant motion vector.
- the smoothness measure is modified in such a way that instead of the differences between neighboring motion vectors, the amount norms of motion vectors to be optimized - multiplied by a weighting factor - are used in the target function by means of the smoothness measure.
- each individual motion vector is optimized in turn by variation in a relevant value range , until a smaller value of the objective function can no longer be found in this way for any motion vector.
- the range of values of the motion vectors within which the individual motion vectors are varied in order to minimize the objective function is made dependent on the values of the motion vectors in the motion vector field already calculated, so that the range of values for the optimization of the motion vector field is small if neighboring Motion vectors are the same or similar, and is only larger if neighboring motion vectors have large differences between them.
- a logging system has the effect that only those motion vectors are optimized again with a view to a possible reduction in the value of the target function, the neighboring motion vectors of which have changed since the last optimization of the motion vector in question, so that the smoothness measure has also changed, where appropriate the logging system contains a logging field with a storage space per block for storing control information for the optimization process.
- the difference between the motion vectors of the current motion vector field and those of the motion vector field calculated immediately beforehand from a previous pair of successive images can also be determined and used in the smoothness measure, for the purpose of smoothing the motion vector field in the time axis direction, d. H. for matching successive motion vector fields.
- the method according to the invention can also be used in cases in which there are two successive means Data compression of images transmitted from a coder via a channel to a decoder, motion vector fields are determined for the purpose of inserting intermediate images, in such a way that corresponding motion vector fields that have already been transmitted are used to initialize the method.
- the appendix shows a complete program listing with 42 pages (p 1 ... p 42) covering the entire process sequence according to the invention for a preferred programming example in the programming language FORTRAN.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Ermittlung von Bewegungsvektorfeldern aus digitalen Bildsequenzen, das aus jeweils zwei aufeinanderfolgenden Bildern ein Bewegungsvektorfeld berechnet, welches jedem Bildpunkt eines Bildes einen Bildpunkt des anderen Bildes zuordnet, wobei die Zuordnung jeweils durch einen Bewegungsvektor definiert ist, welcher die relative Verschiebung der Bildpunkte gegeneinander wiedergibt, und wobei jeweils alle Bildpunkte in einem quadratischen oder rechteckigen Block von Bildpunkten den gleichen Bewegungsvektor erhalten.The present invention relates to a method for determining motion vector fields from digital image sequences, which calculates a motion vector field from each two successive images, which associates each pixel of an image with an image point of the other image, the assignment being defined in each case by a motion vector, which is the reproduces relative displacement of the pixels relative to each other, and each pixel in a square or rectangular block of pixels receives the same motion vector.
Für verschiedene Anwendungsfälle, z. B. Bilddatenkompression oder maschinelles Sehen (Roboter, Szenenanalyse), ist es erforderlich, die in einer digitalen Bildsequenz vorhandenen Verschiebungen der Bildinhalte von Bild zu Bild, die sich aus Objektbewegungen oder auch Kamerabewegungen ergeben, automatisch zu erfassen. Diese Verschiebungen der lokalen Bildinhalte können durch Bewegungsvektorfelder dargestellt werden, welche z. B. zu jedem Bildpunkt eines Bildes angeben, um wieviel sich der Bildinhalt an dieser Stelle gegenüber dem vorherigen Bild verschoben hat.For different applications, e.g. B. image data compression or machine vision (robot, scene analysis), it is necessary to automatically detect the existing in a digital image sequence shifts in image content from image to image, which result from object movements or camera movements. These shifts in the local image content can be represented by motion vector fields which, for. B. for each pixel of an image indicate how much the image content has shifted at this point compared to the previous image.
Die Bewegungsvektorfelder werden z. B. in der Bilddatenkompression zum Zwecke der Übertragung digitaler Bilder mit niedrigen Datenraten dazu verwendet, aus bereits übertragenen Bildern das nächste, noch nicht übertragene Bild vorherzusagen. Je besser diese Vorhersage ist, desto kleiner ist die Datenrate, die zur Übertragung des neuen Bildes erforderlich ist, bzw. mit desto besserer Bildqualität kann das neue Bild bei vorgegebener Datenrate übertragen werden.The motion vector fields are e.g. B. used in image data compression for the purpose of transmitting digital images with low data rates to predict the next, not yet transmitted image from already transmitted images. The better this prediction is, the smaller the data rate that is required for the transmission of the new image, or with the better image quality, the new image can be transmitted at a predetermined data rate.
Ein weiterer Anwendungsfall der Bewegungsvektorfelder ist die Rekonstruktion fehlender Bilder aus einer Bildsequenz, die zum Zwecke der Datenkompression zeitlich unterabgetastet wurde. Das bedeutet, daß z. B. nur jedes dritte Bild der Sequenz verfügbar ist und die beiden fehlenden Bilder zwischen je zwei vorhandenen Bildern (den "Stützstellenbildern") möglichst "bewegungsrichtig" zu interpolieren sind, so daß in der rekonstruierten Szene die Bewegungen von Objekten so gleichmäßig wie im Original ablaufen. Hierfür sind Bewegungsvektorfelder erforderlich, die für jeden Bildpunkt eines zu interpolierenden BIldes angeben, welcher Bildpunkt bzw. welche BIldpunkte in den beiden zugehörigen Stützstellenbildern für die Rekonstruktion des betreffenden Bildpunktes zu verwenden sind.Another application of the motion vector fields is the reconstruction of missing images from an image sequence that was undersampled in time for the purpose of data compression. That means that e.g. B. only every third image of the sequence is available and the two missing images between two existing images (the "reference point images") are to be interpolated as "movement-correctly" as possible, so that the movements of objects in the reconstructed scene run as smoothly as in the original . For this purpose, motion vector fields are required which indicate for each pixel of an image to be interpolated which image point or which image points are to be used in the two associated reference point images for the reconstruction of the relevant pixel.
In jedem Falle ist in den Bewegungsvektorfeldern jedem Bildpunkt eines Bildes oder auch je einer Gruppe von benachbarten Bildpunkten ein Bewegungsvektor zugeordnet, der die lokale Bewegung durch zwei Komponenten, nämlich den horizontalen und den vertikalen Bewegungsanteil, beschreibt.In any case, a motion vector is assigned to each pixel of an image or also to a group of adjacent pixels in the motion vector fields, which motion vector describes the local motion by two components, namely the horizontal and the vertical motion component.
Ein Problem bei der Ermittlung solcher Bewegungsvektorfelder besteht darin, daß die in einer Bildsequenz vorhandenen Bewegungen in der Regel vom Ort der Bildpunkte abhängig sind, so daß bereits in einem kleinen Bildausschnitt mehrere verschiedene Bewegungsvektoren vorkommen können, und zwar insbesondere an den Rändern bewegter Objekte. Daher darf für die Ermittlung eines Bewegungsvektors für einen bestimmten Bildpunkt eigentlich nur dieser Bildpunkt selbst betrachtet werden. Andererseits ist aus einem einzelnen Bildpunkt ein Bewegungsvektor schon deshalb nicht ermittelbar, weil der Bewegungsvektor zwei Komponenten beinhaltet und jeder einzelne Bildpunkt nur eine Gleichung für diese zwei Unbekannten definiert, vergl. z. B. B.K.P. Horn, B.G. Schunck: "Determining optical flow", Artificial Intelligence 17, pp. 185-203, 1981. Aber auch in einer kleinen Umgebung um den Bildpunkt herum ist der Bildinhalt häufig noch so wenig struktiert, daß die Bewegung am Ort des betreffenden Bildpunkts nicht eindeutig feststellbar ist. Daraus ergibt sich die Schwierigkeit, daß einerseits in Gebieten mit stark vom Ort anhängigen Bewegungsvektoren nur kleine Umgebungen zur Berechnung eines Bewegungsvektors zu verwenden sind, andererseits in Gebieten mit nicht deutlich strukturierten Bildinhalten große Umgebungen benötigt werden, um eindeutig die Bewegung erkennen zu köennen. Es ist daher notwendig, die Größe der jeweiligen Umgebung zu variieren, und es muß außerdem auch Vorwissen, nämlich z. B. die Annahme einer bestimmten Glattheit des Bewegungsvektorfeldes, ausgenutzt werden, um auch bei verrauschten Bildern und in wenig differenzierten Bildausschnitten Bewegungsvektoren zu erhalten, die für die obigen Anwendungsfälle brauchbar sind.A problem with the determination of such motion vector fields is that the movements present in an image sequence are generally dependent on the location of the pixels, so that several different motion vectors can occur in a small image section, in particular at the edges of moving objects. Therefore, to determine a motion vector for a certain pixel, only this pixel itself should actually be considered. On the other hand, a motion vector cannot be determined from a single pixel, if only because the motion vector contains two components and each individual pixel defines only one equation for these two unknowns, cf. BBKP Horn, BG Schunck: "Determining optical flow", Artificial Intelligence 17, pp. 185-203, 1981. But is also in a small environment around the pixel the content of the picture is often structured so little that the movement at the location of the pixel in question cannot be clearly determined. This results in the difficulty that, on the one hand, only small surroundings are to be used for calculating a movement vector in areas with movement vectors that are strongly dependent on the location, and on the other hand, large areas are required in areas with not clearly structured image contents in order to be able to clearly recognize the movement. It is therefore necessary to vary the size of the respective environment, and it must also have previous knowledge, namely z. B. the assumption of a certain smoothness of the motion vector field can be used in order to obtain motion vectors that are useful for the above applications even with noisy images and in little differentiated image sections.
Es sind bisher im wesentlichen drei verschiedene Ansätze zur Bewegungsvektorschätzung untersucht worden, vergl. z. B. H.G. Musmann, P. Pirsch, H.-J. Grallert: "Advances in Picture Coding", Proc. IEEE 73 (1985) 4, pp. 523-548, und zwar
- 1) Block-Matching-Verfahren,
- 2) Differentielle Verfahren,
- 3) Verfahren, die mit markanten Punkten arbeiten.
- 1) block matching method,
- 2) differential methods,
- 3) Procedures that work with distinctive points.
Die Arbeitsweise dieser Verfahren wird im folgenden für den Fall, daß für ein Bild (z. B. Bild B) einer Bildsequenz die Verschiebung der Bildinhalte gegenüber dem Vorläuferbild (Bild A) bestimmt werden soll, kurz erläutert.The mode of operation of these methods is briefly explained below in the event that the shift of the image contents with respect to the previous image (image A) is to be determined for an image (for example image B) of an image sequence.
In Block-Matching-Verfahren wird das Bild, für das Bewegungsvektoren bestimmt werden sollen, in quadratische oder rechteckige Blöcke konstanter Größe, d. h. mit vorgegebener Anzahl von Bildpunkten (häufig 16x16 oder 8x8) unterteilt, vergl. z. B. C.M. Lin, S.C. Kwatra: "Motion compensated interframe color image coding", Proc. Int. Conf. on Communications, 1984, vol. 1, pp. 516-520 und H. Brusewitz, P. Weiss: "A videoconference system at 384 kbit/s". Picture Coding Symposium, Tokyo, Abstracts p. 212, 1986. Für alle Bildpunkte in einem Block wird der gleiche Bewegungsvektor bestimmt, und zwar entsprechend der Annahme, daß näherungsweise die Bewegung in dem kleinen Bildausschnitt, der einem Block entspricht, konstant ist.In block matching methods, the image for which motion vectors are to be determined is divided into square or rectangular blocks of constant size, ie with a predetermined number of pixels (often 16x16 or 8x8), cf. BCM Lin, SC Kwatra: "Motion compensated interframe color image coding ", Proc. Int. Conf. on Communications, 1984, vol. 1, pp. 516-520 and H. Brusewitz, P. Weiss:" A videoconference system at 384 kbit / s ". Picture Coding Symposium, Tokyo , Abstracts p. 212, 1986. The same motion vector is determined for all pixels in a block, namely on the assumption that approximately the motion in the small image section that corresponds to a block is constant.
Hierbei wird der Bewegungsvektor für einen BLock in Bild B dadurch bestimmt, daß für eine Vielzahl von möglichen Bewegungsvektoren in einem vorgegebenen Wertbereich jeweils derjenige Block in Bild A herausgegriffen wird, der die um den Bewegungsvektor verschobenen Bildpunkte aus Bild A enthält, und daß aus der Vielzahl dieser Blöcke derjenige ausgewählt wird, der zu dem gegebenen Block in Bild B den geringsten Unterschied aufweist. Der Unterschied zweier Blöcke in Bild A und B wird dabei durch ein geeignetes Abstandsmaß, nämlich z. B. die Summe der Quadrate (L2-Norm) oder die Summe der Beträge (L1-Norm) der Bildpunktdifferenzen, ausgedrückt. Derjenige Bewegungsvektor, bei dem die beiden Blöcke aus Bild A und Bild B den geringsten Abstand aufweisen, wird in das gesuchte Bewegungsvektorfeld übernommen.Here, the motion vector for a BLock in image B is determined by picking out the block in image A that contains the pixels shifted by the motion vector from image A for a large number of possible motion vectors in a predetermined value range, and that from the plurality of these blocks, the one is selected that has the least difference to the given block in image B. The difference between two blocks in Figures A and B is determined by a suitable distance, namely z. B. the sum of the squares (L2 norm) or the sum of the amounts (L1 norm) of the pixel differences, expressed. The motion vector in which the two blocks from image A and image B have the smallest distance is adopted in the motion vector field sought.
Das Problem hierbei besteht - wie eingangs ausgeführt - in der Wahl der passenden Blockgröße: Bei zu großen Blöcken wird das Bewegungsvektorfeld zu grob und ungenau, weil die Annahme konstanter Bewegung in den einzelnen Blöcken nicht mehr stimmt; bei zu kleinen Blöcken ist häufig der Bildinhalt zu undifferenziert, um die richtige Objektbewegung erkennen zu lassen. In der Veröffentlichung G. Kummerfeldt, F. May, W. Wolf: "Coding television signals at 320 and 64 kbit/s", Image Coding, M. Kunt, T.S. Huang (Herausgeber), Proc. SPIE 594, pp. 119-128, 1985 wird der Versuch gemacht, durch nachträgliches Zusammenfassen und Glätten der Bewegungsvektoren mehrerer Blöcke, die als zu einem Objekt gehörig klassifiziert werden, das Problem der falsch geschätzten Vektoren in Blöcken mit ambivalentem Bildinhalt zu lösen. Die Ergebnisse zeigen jedoch, daß dieser Ansatz nur bei sehr einfach zu beschreibenden Gesamtbewegungen des Bildinhalts, wie "Kamerazoom: ohne zusätzliche Objektbewegungen, eine Verbesserung des Bewegungsvektorfeldes - in diesem Fall für den Einsatz in der bewegungsadaptiven Prädiktion in der Bilddatenkompression - bewirkt.The problem here - as stated at the beginning - is the selection of the appropriate block size: If the blocks are too large, the motion vector field becomes too coarse and inaccurate because the assumption of constant movement in the individual blocks is no longer correct; if the blocks are too small, the image content is often too undifferentiated to allow the correct object movement to be recognized. In the publication G. Kummerfeldt, F. May, W. Wolf: "Coding television signals at 320 and 64 kbit / s", Image Coding, M. Kunt, TS Huang (editor), Proc. SPIE 594, pp. 119-128, 1985, an attempt is made to retroactively combine and smooth the motion vectors of several blocks that are classified as belonging to an object solve the incorrectly estimated vectors in blocks with ambivalent image content. The results show, however, that this approach only improves the overall movement of the image content with very simple to describe overall movements of the image content, such as "camera zoom: without additional object movements - in this case for use in motion-adaptive prediction in image data compression.
Bei den differentiellen Verfahren, vergl. z. B. P. Robert, C. Cafforio, F. Rocca: "Time/space recursions for differential motion estimation, " Image Coding, M. Kunt, T.S. Huang (Herausgeber), Proc. SPIE 594, pp. 175-185, 1986, wird die Annahme einer konstanten Bewegung für einen Block benachbarter Bildpunkte fallengelassen und stattdessen für jeden Bildpunkt ein eigener Bewegungsvektor ermittelt. Zu diesem Zweck werden für jeden Bildpunkt bestimmte Modellparameter berechnet, die den lokalen Verlauf des Bildsignals in der Umgebung des Bildpunktes beschreiben, und aus diesen Parametern sowie aus der Differenz der Bildinhalte von Bild A und B am Ort des betrachteten Bildpunkts wird auf die zugrundeliegende Bewegung, d. h. die Verschiebung der Bildinhalte gegeneinander, geschlossen. Da in der Regel diese Schätzung der Bewegung zunächst nur eine Näherungslösung ist, wird die Prozedur iterativ fortgesetzt, solange bis sich keine weitere Verbesserung des Bewegungsvektors mehr ergibt.In the differential method, cf. B. P. Robert, C. Cafforio, F. Rocca: "Time / space recursions for differential motion estimation," Image Coding, M. Kunt, T.S. Huang (Editor), Proc. SPIE 594, pp. 175-185, 1986, the assumption of a constant movement for a block of neighboring pixels is dropped and instead a separate motion vector is determined for each pixel. For this purpose, certain model parameters are calculated for each pixel, which describe the local course of the image signal in the vicinity of the pixel, and from these parameters and from the difference in the image contents of images A and B at the location of the pixel under consideration, the underlying movement is d. H. the shift of the image contents against each other, closed. Since this estimate of the movement is initially only an approximate solution, the procedure is continued iteratively until there is no further improvement in the movement vector.
Ein Problem bei diesem Verfahren besteht darin, daß die Beschreibung des Bildinhalts mittals Modellparametern nur in engen Grenzen gültig ist und z. B. bei großen Verschiebungen zwischen BIld A und Bild B versagt. Weiterhin wird zur Berechnung der Modellparameter für einen Bildpunkt die Umgebung des Bildpunkts mit herangezogen, wobei wiederum die Gleichförmigkeit der Bewegung in dieser Umgebung vorausgesetzt wird, so daß die Wahl der Größe dieser Umgebung die gleichen Probleme aufwirft wie die Wahl der Blockgröße in Block-Matching-Verfahren. Dadurch, daß sich die Umgebungen der Bildpunkte gegenseitig überlappen, ergeben sich Vektorfelder, die sich von einem Bildpunkt zum nächsten nur wenig ändern und daher Sprünge in der Bewegung, wie sie an Objektgrenzen auftreten, nicht richtig wiedergeben.A problem with this method is that the description of the image content as model parameters is only valid within narrow limits and z. B. fails with large shifts between image A and image B. Furthermore, the environment of the image point is used to calculate the model parameters for a pixel, again the uniformity of the movement in this environment is presupposed, so that the choice of the size of this environment poses the same problems as the choice of block size in block matching processes. The fact that the surroundings of the pixels overlap each other results in vector fields that change only slightly from one pixel to the next and therefore do not correctly represent jumps in the movement that occur at object boundaries.
In der Veröffentlichung B.K.P. Horn, B.G. Schunck: "Determining optical flow", Artificial Intelligence 17, pp. 185-203, 1981, wird die Frage diskutiert, wie bei diesen differentiellen Verfahren dafür gesorgt werden kann, daß auch in homogenen Bildbereichen, die keine eindeutige Bewegungserkennung zulassen, sinnvolle, der Realität weitgehend entsprechende Bewegungsvektorfelder ermittelt werden können. Es wird vorgeschlagen, in die zu minimierende Zielfunktion einen Term mit aufzunehmen, der die Unglattheit des entstehenden Bewegungsvektorfeldes ausdrückt. Wegen der Gestaltung dieses die Unglattheit des Bewegungsvektorfeldes messenden Anteils der Zielfunktion - es wird die quadratische Norm der sog. "Laplacian" des Vektorfeldes gemessen, vor allem weil dieses eine analytische, mathematisch einfach handhabbare Funktion ergibt - entstehen Probleme des Verfahrens an Objektgrenzen: Sprünge im Bewegungsvektorfeld werden fälschlicherweise unterdrückt.In the publication B.K.P. Horn, B.G. Schunck: "Determining optical flow", Artificial Intelligence 17, pp. 185-203, 1981, the question is discussed as to how it can be ensured with these differential methods that even in homogeneous image areas which do not permit unambiguous motion detection, meaningful motion vector fields largely corresponding to reality can be determined. It is proposed to include in the objective function to be minimized a term that expresses the smoothness of the motion vector field that arises. Because of the design of this part of the target function, which measures the smoothness of the motion vector field - the quadratic norm of the so-called "Laplacian" of the vector field is measured, above all because this results in an analytical, mathematically easy-to-use function - problems of the method at object boundaries arise: jumps in the Motion vector fields are incorrectly suppressed.
In der dritten Art von Verfahren wird versucht, das Problem, daß die tatsächliche Objektbewegung aus dem lokalen Bildinhalt oft nicht eindeutig erkennbar ist, dadurch zu umgehen, daß zunächst markante Punkte ("Grauwertecken") oder auch Linien (Helligkeitskanten) im Bild gesucht werden und nur für diese Punkte oder längs der Linien ein Bewegungsvektor ermittelt wird, vergl. z. B. R. Lenz: "Estimation of 2-D general motion parameters in TV scenes", Proc. 7th Int. Conf. Pattern Rec., Montreal, Canada, July 30-Aug.2, 1984. Vol. 1, pp. 546-548 und C.J. Radford: "Optical flow fields in Houch transform space", Pattern Recognition Letters 4, pp. 293-303, 1986. Dann muß für den Rest der Bildpunkte das Bewegungsvektorfeld mit geeigneten Mitteln aus den gegebenen Bewegungsvektoren interpoliert werden. Problematisch hierbei sind das zuverlässige Auffinden der markanten Punkte bzw. Linien, für welche zunächst die Bewegungsvektoren ermittelt werden, und die Segmentierung des Bildes in Gebiete mit gleichförmiger Bewegung, welche aus den gegebenen Vektoren der markanten Punkte bzw. Linien durch Interpolation ermittelt werden kann. Wegen der Schwierigkeit dieser Teilaufgaben eignen sich diese Verfahren praktisch nur für Bildsequenzen mit starren Körpern, wie z. B. Fahrzeugen, jedoch nicht für Verarbeitung von Szenen mit sich bewegenden Personen, wie sie häufig in der Bilddatenkompression vorkommen.In the third type of method an attempt is made to circumvent the problem that the actual object movement is often not clearly recognizable from the local image content by first searching for striking points ("gray value corners") or also lines (brightness edges) in the image and a motion vector is determined only for these points or along the lines, cf. BR Lenz: "Estimation of 2-D general motion parameters in TV scenes", Proc. 7th Int. Conf. Pattern Rec., Montreal, Canada, July 30-Aug. 2, 1984. Vol. 1, pp. 546-548 and CJ Radford: "Optical flow fields in Houch transform space", Pattern Recognition
Auch für diese Verfahren sind Glättungsoperatoren entwickelt worden, vergl. z. B. H.-H Nagel, W. Enkelmann: "An investigation of smoothness constraints for the estimation of displacement vector fields from image sequences". IEEE Trans. PAMI-8/5, pp. 565-593, Sept. 1986, und zwar wiederum basierend auf der quadratischen Norm einer aus dem Bewegungsvektorfeld angeleiteten Unglattheits-Funktion. Da hierbei die bekannten Probleme an Objektgrenzen entstehen, wurde in dieser Arbeit vorgeschlagen, eine "gerichtete Glattheirsforderung" aufzustellen, die eine Glättung des Bewegungsvektorfeldes nur senkrecht zum Gradienten des Helligverlaufs in dem betreffenden Bild bewirken soll. Das hieraus entstehende Verfahren ist allerdings sehr aufwendig.Smoothing operators have also been developed for these methods, cf. B. H.-H Nagel, W. Enkelmann: "An investigation of smoothness constraints for the estimation of displacement vector fields from image sequences". IEEE Trans. PAMI-8/5, pp. 565-593, Sept. 1986, again based on the quadratic norm of a smoothness function derived from the motion vector field. Since this creates the known problems at object boundaries, it was proposed in this work to set up a "directed smoothness requirement" which should only smooth the motion vector field perpendicular to the gradient of the brightness in the image in question. However, the resulting process is very complex.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein neuartiges Verfahren der eingangs genannten Art zu schaffen, mittels dessen Bewegungsvektorfelder aus einer gegebenen Bildsequenz bestimmt werden können, wobei durch besondere Maßnahmen dafür gesorgt wird, daß die Bewegungsvektorfelder möglichst die tatsächlich im Bild vorhandene Bewegung wiedergeben.The present invention has for its object to provide a novel method of the type mentioned, by means of which motion vector fields can be determined from a given image sequence, special measures being taken to ensure that the motion vector fields reproduce the motion actually present in the image as far as possible.
Die Aufgabe wird durch ein Verfahren zur Ermittlung von Bewegungsvektorfeldern aus digitalen Bildsequenzen, das aus jeweils zwei aufeinanderfolgenden Bildern ein Bewegungsvektorfeld ermittelt, welches jedem Bildpunkt des einen Bildes einen Bildpunkt des anderen Bildes zuordnet, wobei die Zuordnung jeweils durch einen Bewegungsvektor definiert ist, welcher die relative Verschiebung der Bildpunkte gegeneinander wiedergibt, und wobei jeweils alle Bildpunkte in einem quadratischen oder rechteckigen Block von Bildpunkten den gleichen Bewegungsvektor erhalten, gelöst, das erfindungsgemäß dadurch gekennzeichnet ist, daß die Ermittlung der Bewegungsvektoren durch Minimierung einer zusammengesetzten Zielfunktion durchgeführt wird, welche zum einen die Differenzen der Luminanzwerte der einander zugeordneten Bildpunkte der beiden gegebenen Bilder berücksichtigt, zum anderen die Differenzen zwischen Bewegungsvektoren, deren Koordinaten benachbart sind, nämlich sog. Nachbar-Bewegungsvektoren, mit Hilfe eines Glattheitsmaßes bewertet, und daß die Minimierung dieser Zielfunktion in der Weise durchgeführt wird, daß zunächst die die Zielfunktion minimierenden Bewegungsvektoren unter der Einschränkung ermittelt werden, daß die Bewegungsvektoren in größeren als den endgültig angestrebten Blöcken konstant sind, und daß anschließend jeder dieser Blöcke in kleinere, vorzugsweise gleichgroße Blöcke unterteilt wird, bis die angestrebte Blockgröße erreicht ist, wobei nach jeder Verkleinerung der Blöcke wiederum die Zielfunktion durch Variation der Bewegungsvektoren minimiert wird.The object is achieved by a method for determining motion vector fields from digital image sequences, which determines a motion vector field from two successive images, which assigns a pixel of the other image to each pixel of one image, the assignment being defined in each case by a motion vector which defines the relative Displacement of the pixels against each other, and where each pixel in a square or rectangular block of pixels receive the same motion vector, solved, which is characterized according to the invention in that the determination of the motion vectors is carried out by minimizing a composite objective function, which on the one hand the differences of the luminance values of the pixels assigned to one another of the two given images is taken into account, and secondly the differences between motion vectors whose coordinates are adjacent, namely so-called neighboring motion vectors , evaluated with the aid of a smoothness measure, and that the minimization of this objective function is carried out in such a way that first the motion vectors minimizing the objective function are determined with the restriction that the motion vectors are constant in larger than the finally aimed blocks, and then each of these Blocks are subdivided into smaller, preferably equally large, blocks until the desired block size is reached, the objective function being minimized by varying the motion vectors after each reduction of the blocks.
Das erfindungsgemäße Verfahren geht von dem weiter oben erläuterten Prinzip des Block-Matchine aus, vergl. H.G. Musmann et al, wie zuvor angegeben, d. h. es wird jeweils für einen Block von Bildpunkten ein Bewegungsvektor durch Auswertung einer Zielfunktion für verschiedene mögliche Vektoren und Suche nach demjenigen Bewegungsvektor, der das Optimum der Zielfunktion liefert, ermittelt.The method according to the invention is based on the principle of block matchine explained above, see HG Musmann et al, as stated above, ie a motion vector is generated for each block of pixels by evaluating a target function for various possible vectors and searching for that Motion vector that delivers the optimum of the target function is determined.
Vorteilhafte Weiterbildungen der Erfindung sind durch die in den Unteransprüchen angegebenen Merkmale gekennzeichnet.Advantageous developments of the invention are characterized by the features specified in the subclaims.
Zur Überwindung der weiter oben erläuterten Probleme sind gemäß der Erfindung die folgenden neuen Prinzipien in das Bewegungsvektor-Ermittlungsverfahren aufgenommen worden:
- 1) Um ein Bewegungsvektorfeld mit hoher Auflösung zu erhalten, das auch an Objektgrenzen die tatsächliche Bewegung mit hoher Genauigkeit beschreibt, wird das Bild in kleine Blöcke von z. B. 4*4 Bildpunkten (Pixel) unterteilt, für die jeweils ein Bewegungsvektor ermittelt wird. Jedoch wird zum Zwecke der Überwindung der Nachteile der kleinen Blöcke (möglicherweise ambivalenter, nicht genügend charakteristischer Bildinhalt) zunächst in einem ersten Schritt des Verfahrens eine Bewegungsvektor-Ermittlung für erheblich größere Blöcke (z. B. 16*16 oder 32*32 Bildpunkte) durchgeführt. Diese großen Blöcke werden in weiteren Schritten des Verfahrens in kleinere Blöcke unterteilt, wofür jeweils ein eigener Bewegungsvektor ermittelt wird, wobei die Bewegungsvektoren der großen Blöcke als Ausgangspunkt und Hilfsmittel dienen. (ABNEHMENDE BLOCKGRÖSSE).
- 2) Anstelle der üblichen Zielfunktionen von Block-Matching-Verfahren, die nur die Differenzen der Bildpunktwerte der aufeinanderfolgenden Bilder zum Ausdruck bringen, werden in dem erfindungsgemäßen Verfahren Zielfunktionen verwendet, die durch geeignete ZUSATZTERME auch die "GLATTHEIT" des Bewegungsvektorfeldes berücksichtigen. Insbesondere wird im ersten Schritt des Verfahrens bei der Initialisierung des Bewegungsvektorfeldes mit großer Blockgröße zunächst die Länge der einzelnen Bewegungsvektoren mit in die minimierende Zielfunktion einbezogen. In den Folgeschritten des Verfahrens werden dann die Unterschiede "benachbarter" Bewegungsvektoren, d. h. der Bewegungsvektoren benachbarter Blöcke, in die Zielfunktion mit hineingenommen. Durch diese Art der Zielfunktion kann eine Glättung des Bewegungsvektorfeldes und eine Unterdrücking von Ermittlungsfehlern, die als "Ausreißer" hervortreten, bewirkt werden, und zwar auch bei der Ermittlung der Bewegung von Objekten, die ihre Form ändern können, wie z. B. Personen.
- 3)Die bei anderen Verfahren (differentiellen sowie mit markanten Punkten arbeitenden Verfahren) im Zusammenhang mit Glattheitsmaßen auftauchenden Probleme an Objektkanten, wo Sprünge im Bewegungsvektorfeld möglich sein müssen, werden in dem erfindungsgemäßen Block-Matching-Verfahren dadurch vermieden, daß das Glattheitsmaß, welches die Unterschiede benachbarter Bewegungsvektoren mißt, nicht auf der quadratischen Norm, sondern auf der BETRAGSNORM der Differenzen beruht. Der Effekt ist ähnlich einer MEDIAN-Filterung des Bewegungsvektorfeldes, bei der auch ausgeprägte Sprünge im Bewegungsvektorfeld erhalten bleiben und nur sog. "Ausreißer" unterdrückt werden. Dieses Glattheitsmaß ermöglicht daher auch das korrekte Ermitteln von Bewegungsvektorfeldern an Objektkanten.
- 4) Speziell in der Bildcodierung zum Zwecke der Bilddatenkompression kann das Verfahren in der Weise angewendet werden, daß sendseitig zunächst nur mit größeren Blöcken gearbeitet wird und die zugehörigen Bewegungsvektoren zum Empfänger übertragen werden. Diese Bewegungsvektoren werden zur bewegungskompensierenden Prädiktion von Bildern im Sender (Coder) und Empfänger (Decoder) verwendet. Zusätzlich werden auf der Empfängerseite mit Hilfe der empfangenen BIlder iterativ die noch fehlenden Verfeinerungschritte für das Bewegungsvektorfeld durchgeführt, bis die gewünschte kleinste Blockgröße erreicht ist. DIeses Bewegungsvektorfeld kann dann dazu verwendet werden, fehlende BIlder der Bildsequenz, die beim Sender zwecks Datenreduktion übersprungen wurden, bewegungsrichtig zu INTERPOLIEREN.
- 1) In order to obtain a motion vector field with high resolution, which also describes the actual motion with high accuracy at object boundaries, the image is divided into small blocks of e.g. B. 4 * 4 pixels (pixels), for each of which a motion vector is determined. However, in order to overcome the disadvantages of the small blocks (possibly ambivalent, not sufficiently characteristic picture content), a motion vector determination for considerably larger blocks (e.g. 16 * 16 or 32 * 32 pixels) is carried out in a first step of the method . In further steps of the method, these large blocks are subdivided into smaller blocks, for each of which a separate motion vector is determined, the motion vectors of the large blocks serving as a starting point and aids. (DECREASING BLOCK SIZE).
- 2) Instead of the usual target functions of block matching methods, which only express the differences in the pixel values of the successive images, target functions are used in the method according to the invention, which also take into account the "SMOOTHNESS" of the motion vector field by means of suitable ADDITIONAL TERMS. In particular, in the first step of the method, when the motion vector field is initialized with a large block size, the length of the individual motion vectors is first included in the minimizing target function. In the subsequent steps of the method, the differences between "adjacent" motion vectors, ie the motion vectors of adjacent blocks, are then included in the target function. This type of objective function can smooth the motion vector field and suppress Detection errors that appear as "outliers" are caused, including when determining the movement of objects that can change their shape, such as. B. People.
- 3) The problems that occur with other methods (differential methods as well as methods with distinctive points) in connection with smoothness measures at object edges, where jumps in the motion vector field must be possible, are avoided in the block matching method according to the invention in that the smoothness measure which the Measures differences of neighboring motion vectors, not based on the quadratic norm, but on the AMOUNT of the differences. The effect is similar to MEDIAN filtering of the motion vector field, in which pronounced jumps in the motion vector field are retained and only so-called "outliers" are suppressed. This smoothness measure therefore also enables the correct determination of motion vector fields at object edges.
- 4) Especially in image coding for the purpose of image data compression, the method can be used in such a way that on the transmission side only larger blocks are initially used and the associated motion vectors are transmitted to the receiver. These motion vectors are used for motion-compensating prediction of images in the transmitter (coder) and receiver (decoder). In addition, the missing refinement steps for the motion vector field are carried out iteratively on the receiver side with the aid of the received images until the desired smallest block size is reached. This motion vector field can then be used to INTERPOLATE missing images of the image sequence that were skipped at the transmitter for the purpose of data reduction.
Im folgenden wird die Erfindung anhand mehrerer Figuren im einzelnen beschrieben.
- Fig. 1 zeigt eine schematische Darstellung des Ablaufs des Bewegungsvektor-Ermittlungsverfahrens für eine endgültige Blockgröße 4*4 und eine Startblockgröße 16*16.
- Fig. 2 zeigt eine schematische Darstellung der Art und Weise einer durchzuführenden Blockunterteilung.
- Fig. 3 zeigt die Darstellung eines Bewegungsvektors X16(m,n) mit den Bewegungsvektoren der vier Nachbarblöcke.
- Fig. 4 zeigt ein Flußdiagramm für den Gesamtablauf des Verfahrens.
- Fig. 5 zeigt ein erstes Unter-Flußdiagramm, das den Ablauf der Initialisierung des Verfahrens verdeutlicht.
- Fig. 6 zeigt ein zweites Unter-Flußdiagramm, das den Ablauf der Iterationsschritte innerhalb des Verfahrens verdeutlicht.
- Fig. 7 zeigt ein drittes Unter-Flußdiagramm, das den Ablauf eines Optimierungsvorgangs innerhalb des Verfahrens verdeutlicht.
- Fig. 8 zeigt eine blockschaltbildartige Darstellung des Bewegungsvektor-Ermittlungsverfahrens.
- Fig. 9 zeigt ein Blockschaltbild betreffend eine Bildsequenzen-Übertragungsanordnung, die Einrichtungen zur Durchführung des erfindungsgemäßen Verfahrens enthält.
- 1 shows a schematic representation of the sequence of the motion vector determination method for a
final block size 4 * 4 and astarting block size 16 * 16. - Fig. 2 shows a schematic representation of the manner of a block division to be carried out.
- 3 shows the representation of a motion vector X16 (m, n) with the motion vectors of the four neighboring blocks.
- 4 shows a flow chart for the overall sequence of the method.
- FIG. 5 shows a first sub-flow diagram which illustrates the process of initializing the method.
- FIG. 6 shows a second sub-flow diagram which clarifies the sequence of the iteration steps within the method.
- FIG. 7 shows a third sub-flow diagram which clarifies the course of an optimization process within the method.
- FIG. 8 shows a block diagram representation of the motion vector determination method.
- FIG. 9 shows a block diagram relating to an image sequence transmission arrangement which contains devices for carrying out the method according to the invention.
Das Verfahren wird im folgenden anhand eines bevorzugten Ausführungsbeispiels für den Fall beschrieben, bei dem aus zwei Bildern - Bild A und Bild B - ein Bewegungsvektorfeld ermittelt wird, wobei jeweils für Blöcke von 4*4 Bildpunkten (Pixel) ein uniformes Bewegungsvektorfeld definiert wird. Das Verfahren beginnt zunächst mit größeren Blöcken, die mehrere kleine Blöcke beinhalten. In dem vorliegenden Beispiel wird mit Blöcken der Größe 16*16 begonnen.The method is described below on the basis of a preferred exemplary embodiment for the case in which a motion vector field is determined from two images - image A and image B - one for blocks of 4 * 4 pixels (pixels) uniform motion vector field is defined. The process begins with larger blocks that contain several small blocks. In the present example, blocks with the
Der gesamte Verfahrensablauf folgt dann einem Schema, wie es in Fig. 1 dargestellt ist.The entire process sequence then follows a scheme as shown in FIG. 1.
Die Verfahrensschritte werden im folgenden beschrieben.The process steps are described below.
Gegeben sind die zwei aufeinanderfolgenden BIlder A und B einer Sequenz, die aus Bildpunkten
a(k,h), k = 1...I, h = 1...J (1.1a)
und
b(i,j), i = 1...I, j = 1...J (1.1b)
bestehen, wobei i bzw. k der Zeilenindex, j bzw. h der Spaltenindex ist.The two successive images A and B of a sequence are given, which consist of pixels
a (k, h), k = 1 ... I, h = 1 ... J (1.1a)
and
b (i, j), i = 1 ... I, j = 1 ... J (1.1b)
exist, where i and k is the row index, j and h is the column index.
Ziel des gesamten Verfahrens ist die Ermittlung eines Bewegungsvektorfeldes X(i,j), i = 1...I, j = 1...J. (1.1c)The aim of the entire method is to determine a motion vector field X (i, j), i = 1 ... I, j = 1 ... J. (1.1c)
Das Bild B wird nun in Blöcke
B(m,n), mit m = 1...M, n = 1...N (1.2)
unterteilt, die jeweils 16*16 Bildpunkte b(i,j) enthalten, vergl. Fig. 2.Image B is now in blocks
B (m, n), with m = 1 ... M, n = 1 ... N (1.2)
subdivided, each containing 16 * 16 pixels b (i, j), see FIG. 2.
Zu jedem Block B(m,n) wird nun ein vorläufiger, als Hilfsmittel dienender Bewegungsvektor
X16(m,n) = [x16(m,n),y16(m,n)] (1.3)
ermittelt, der aus zwei Komponenten, nämlich der horizontalen Verschiebung x16(m,n) und der vertikalen Verschiebung y16(m,n), besteht.For each block B (m, n) there is now a provisional motion vector that serves as an aid
X16 (m, n) = [x16 (m, n), y16 (m, n)] (1.3)
determined, which consists of two components, namely the horizontal displacement x16 (m, n) and the vertical displacement y16 (m, n).
Durch diesen Bewegungsvektor X16(m,n) wird jedem Bildpunkt b(i,j) im Block B(m,n) ein Bildpunkt a(k,h) aus Bild A zugeordnet, und zwar durch die Verknüpfung
k = i + x16(m,n) (1,4a) und
h = j + y16(m,n), (1.4b)
d. h. die Koordinaten [k,h] des Bildpunkts a(k,h), der dem Bildpunkt b(i,j) zugeordnet wird, ergeben sich durch Addition des Verschiebungs- oder Bewegungsvektors X16(m,n) zu den Koordinated [i,j].This motion vector X16 (m, n) assigns a pixel a (k, h) from image A to each pixel b (i, j) in block B (m, n), specifically through the linkage
k = i + x16 (m, n) (1.4a) and
h = j + y16 (m, n), (1.4b)
ie the coordinates [k, h] of the pixel a (k, h), which is assigned to the pixel b (i, j), result from adding the displacement or motion vector X16 (m, n) to the coordinated [i, j].
Zur Berechnung von X16(m,n) wird für jeden Bildpunkt (Pixel) b(i,j) im Block B(m,n) und für jeden in Betracht kommenden Bewegungsvektor [r,s] die "Displaced Frame Difference" d(i,j,r,s) definiert:
d(i,j,r,s) = b(i,j) - a(i+r,j+s), (1.5)
d. h. die Differenz zu dem entsprechenden, um einen Bewegungsvektor [r,s] verschobenen Bildpunkt aus dem Bild A.To calculate X16 (m, n), the "Displaced Frame Difference" d () is used for each pixel b (i, j) in block B (m, n) and for each motion vector [r, s] in question. i, j, r, s) defines:
d (i, j, r, s) = b (i, j) - a (i + r, j + s), (1.5)
that is, the difference from the corresponding image point shifted by a motion vector [r, s] from image A.
Sodann werden die Absolutbeträge der Differenzen d(i,j,r,s) innerhalb des Blocks B(M,n) aufsummiert, wodurch sich die L1-Norm (Betragsnorm) D16(m,n,r,s) der "Displaced Frame DIfference" für den Block B(m,n) und den Bewegungsvektor [r,s] ergibt:
Zu dieser Summe D(m,n,r,s) wird nun noch - als eine erste Maßnahme zur Glättung der Bewegungsvektorfelder - ein "Straf-Term" (Penalty) P16(r,s) hinzuaddiert, der die Länge des Bewegungsvektors [r,s] bewertet:
D16′(m,n,r,s) = D16(m,n,r,s) + P16(r,s) (1.7a)
wobei
P16(r,s) = 256 * β * (abs(r) + abs(s)) (1.7b)
ist.In addition to this sum D (m, n, r, s), a first measure for smoothing the motion vector fields is added "Penalty Term" (Penalty) P16 (r, s) added, which evaluates the length of the motion vector [r, s]:
D16 ′ (m, n, r, s) = D16 (m, n, r, s) + P16 (r, s) (1.7a)
in which
P16 (r, s) = 256 * β * (abs (r) + abs (s)) (1.7b)
is.
Der "Straf-Term" besteht also aus der L1-Norm des Bewegungsvektors, multipliziert mit einem Steuerparameter β und mit der Anzahl Bildpunkte in einem BLock, nämlich 256. Mit dem Parameter β kann bestimmt werden, wie stark die Länge des Bewegungsvektors in die Zielfunktion D16′(m,n,r,s) eingeht. (Ein typischer Wert für β, der sich in Simulationsexperimenten bewährt hat, ist β = 1,0).The "penalty term" thus consists of the L1 norm of the motion vector, multiplied by a control parameter β and by the number of pixels in a block, namely 256. The parameter β can be used to determine how much the length of the motion vector is in the target function D16 ′ (m, n, r, s) is received. (A typical value for β that has proven itself in simulation experiments is β = 1.0).
Sodann wird das Minimum von D16′(m,n,r,s) durch Variation von [r,s] in einem vorgegebenen Wertbereich S bestimmt, wodurch sich der gesuchte Bewegungsvektor X16(m,n) = [x16(m,n),y16(m,n)] ergibt:
Üblicherweise wird für S ein quadratischer Wertbereich gewählt, z. B. die Menge aller Bewegungsvektoren [r,s], bei welchen der maximale Betrag der beiden Komponenten r und s eine obere Grenze nicht überschreitet.A square value range is usually chosen for S, e.g. B. the set of all motion vectors [r, s] for which the maximum amount of the two components r and s does not exceed an upper limit.
Durch die Addition des "Straf-Terms", der ein modifiziertes Glattheitsmaß darstellt, zu D(m,n,r,s) wird erreicht, daß in homogenen Bildbereichen oder an gerade verlaufenden Kanten, wo die Bewegung nicht eindeutig aus dem lokalen Bildinhalt bestimmt werden kann (kein deutliches Minimum von D(m,n,r,s), kurze Bewegungsvektoren bevorzugt werden. Somit wird bereits die Wahrscheinlichkeit für das Auftreten von "Ausreißern" im Bewegungsvektorfeld reduziert.By adding the "penalty term", which represents a modified smoothness measure, to D (m, n, r, s) it is achieved that in homogeneous image areas or on straight edges where the movement is not clearly from the local image content can be determined (no clear minimum of D (m, n, r, s), short motion vectors are preferred. The probability of "outliers" occurring in the motion vector field is thus already reduced.
Für β = 1,0 muß z. B. ein Bewegungsvektor [r,s] = [0,1] eine im Durchschnitt um mindestens 1,0 geringere "Displaced Frame Difference" d(i,j,r,s) ergeben, damit er dem Nullvektor [r,s] = [0,0] vorgezogen wird. Entsprechendes gilt für größere Bewegungsvektoren.For β = 1.0 z. For example, a motion vector [r, s] = [0.1] results in an average displaced frame difference d (i, j, r, s) that is at least 1.0 smaller, so that it corresponds to the zero vector [r, s] = [0.0] is preferred. The same applies to larger motion vectors.
Da eine vollständige Suche (Full Search) in der Regel zu zeitaufwendig ist, wird der Wertbereich S am besten zunächst auf eine Anzahl Stichprobenwerte [r,s] in einem festen Raster (z. B. Gitterkonstante 4) beschränkt und anschließend in der Umgebung des Optimums weitergesucht ("Three Step Search", vergl. z. B. H.G. Musmann, P. Pirsch, H.-J. Grallert: "Advances in Picture Coding", Proc. IEEE 73 (1985) 4, pp. 523-548. In diesem Fall kann die Treffsicherheit des Verfahrens dadurch erhöht werden, daß die Suche nach dem optimalen Bewegungsvektor teilweise in tiefpaßgefilterten Bildern durchgeführt wird. Hiermit kann wiederum eine Unterabtastung des Bildes zur Aufwandsreduktion verknüpft werden.Since a full search is usually too time-consuming, the value range S is best limited to a number of sample values [r, s] in a fixed grid (e.g. lattice constant 4) and then in the vicinity of the Optimums continued to be searched ("Three Step Search", see, for example, BHG Musmann, P. Pirsch, H.-J. Grallert: "Advances in Picture Coding", Proc. IEEE 73 (1985) 4, pp. 523-548. In In this case, the accuracy of the method can be increased in that the search for the optimal motion vector is carried out partly in low-pass filtered images, which in turn can be combined with undersampling of the image in order to reduce expenditure.
Dieser erste Schritt des Bewegungsvektor-Ermittlungsverfahrens stellt also ein bekanntes Block-Matching-Verfahren dar, welches jedoch durch Einführung des "Straf-Terms" P16(r,s) nach Gl. 1.7a,b zum Zwecke der Glättung der Bewegungsvektorfelder modifiziert wurde.This first step of the motion vector determination method therefore represents a known block matching method, which, however, is introduced by introducing the "penalty term" P16 (r, s) according to Eq. 1.7a, b was modified for the purpose of smoothing the motion vector fields.
Nach der Bestimmung der vorläufigen Bewegungsvektoren X16(m,n) für alle Blöcke B(m,n), wie zuvor beschrieben, erfolgt eine iterative Verbesserung dieses Bewegungsvektorfeldes (Relaxation). Dazu wird nun ein neuer "Straf-Term" bzw. ein neues Glattheitsmaß P16′(m,n,r,s) definiert, mit dessen Hilfe die Abweichung der Bewegungsvektoren X16(m,n) von ihren jeweiligen vier Nachbar-Bewegungsvektoren X16(m-1,n), X16(m+1,n), X16(m,n-1) und X16(m,n+1) gemessen wird, vergl. Fig. 3.After the provisional motion vectors X16 (m, n) have been determined for all blocks B (m, n), as described above, this motion vector field is improved iteratively (Relaxation). For this purpose, a new "penalty term" or a new smoothness measure P16 ′ (m, n, r, s) is now defined, with the aid of which the deviation of the motion vectors X16 (m, n) from their respective four neighboring motion vectors X16 ( m-1, n), X16 (m + 1, n), X16 (m, n-1) and X16 (m, n + 1) is measured, see FIG. 3.
Das Glattheitsmaß P16′(m,n,r,s) ist definiert durch:
P16′(m,n,r,s)= abs (r - x16(m-1,n)) + abs (s - y16(m-1,n)) +
+ abs (r - x16(m+1,n)) + abs (s - y16(m+1,n)) +
+ abs (r - x16(m,n-1)) + abs (s - y16(m,n-1)) +
+ abs (r - x16(m,n+1)) + abs (s - y16(m,n+1)) *
* α * 16 (2.1)The smoothness measure P16 ′ (m, n, r, s) is defined by:
P16 ′ (m, n, r, s) = abs (r - x16 (m-1, n)) + abs (s - y16 (m-1, n)) +
+ abs (r - x16 (m + 1, n)) + abs (s - y16 (m + 1, n)) +
+ abs (r - x16 (m, n-1)) + abs (s - y16 (m, n-1)) +
+ abs (r - x16 (m, n + 1)) + abs (s - y16 (m, n + 1)) *
* α * 16 (2.1)
Hierbei sind r und s die Komponenten eines Bewegungsvektors [r,s], der als neuer Bewegungsvektor X16(m,n) für den Block B(m,n) eingesetzt werden soll.Here, r and s are the components of a motion vector [r, s] which is to be used as the new motion vector X16 (m, n) for block B (m, n).
Das Glattheitsmaß P16′(m,n,r,s) stellt also die Summe der Betragsnormen (L1-Normen) der vier Differenzvektoren zwischen X16(m,n) und seinen Nachbarn dar, multipliziert mit einem Steuerparameter "α" und der Kantenlänge eines Blocks, nämlich 16. Mit dem Steuerparameter "α" kann der Grad der Glattheit des Bewegungsvektorfeldes in dem Relaxations-Schritt kontrolliert werden. Die L1-Norm wurde gewählt, da hiermit Kanten im Bewegungsvektorfeld, wie sie an Objekträndern vorkommen, erhalten bleiben, im Gegensatz zur "quadritischen Norm" (L2-Norm), die kontinuierliche Übergänge bevorzugt.The smoothness measure P16 '(m, n, r, s) thus represents the sum of the absolute norms (L1 norms) of the four difference vectors between X16 (m, n) and its neighbors, multiplied by a control parameter "α" and the edge length of one Blocks, namely 16. With the control parameter "α", the degree of smoothness of the motion vector field can be controlled in the relaxation step. The L1 standard was chosen because it preserves edges in the motion vector field as they occur at object edges, in contrast to the "quadritic standard" (L2 standard), which favors continuous transitions.
Aus dem Glattheitsmaß P16′(m,n,r,s) und der "Displaced Frame Difference" D16(m,n,r,s) (Gl. 1.6) wird eine neue Zielfunktion D16˝(m,n,r,s) gebildet:
D16˝(m,n,r,s) = D(m,n,r,s) + P16′(m,n,r,s) (2.2)From the smoothness measure P16 ′ (m, n, r, s) and the “displaced frame difference” D16 (m, n, r, s) (Eq. 1.6) a new target function D16˝ (m, n, r, s ) educated:
D16˝ (m, n, r, s) = D (m, n, r, s) + P16 ′ (m, n, r, s) (2.2)
Eine Glättung des Bewegungsvektorfeldes geschieht nun dadurch, daß zunächst von dem nach Gl. 1.8 (ohne Nachbarschaftsbeziehungen) ermittelten Bewegungsvektorfeld ausgegangen wird, und von dieser Vorbelegung ausgehend schrittweise für einen Block nach dem anderen ein neuer, optimaler Bewegungsvektor X16(m,n) bestimmt wird, und zwar mittels
X16(m,n) = [x16(m,n),y16(m,n)] (2.3a)
so daß
X16 (m, n) = [x16 (m, n), y16 (m, n)] (2.3a)
so that
Hierbei wird, um den Suchaufwand zu begrenzen (und als weitere Maßnahme zur Glättung der Vektoren), der Wertbereich S(m,n) für jeden BLock adaptiv gestaltet, und zwar derart, daß die Suche um so umfangreicher ist, je unterschiedlicher die Bewegungsvektoren X16(m,n)= x16(m,n),y16(m,n) und deren je vier Nachbar-Bewegungsvektoren sind:
S(m,n) = [rmin...rmax, smin...smax] (2.4a)
mit
rmin = min (x16(m,n), x16(m-1,n), x16(m+1,n), x16(m,n-1), x16(m,n+1))
rmax = max (x16(m,n), x16(m-1,n), x16(m+1,n), x16(m,n-1), x16(m,n+1))
smin = min (y16(m,n), y16(m-1,n), y16(m+1,n), y16(m,n-1), y16(m,n+1))
smax = max (y16(m,n), y16(m-1,n), y16(m+1,n), y16(m,n-1), y16(m,n+1)) (2.4b)In order to limit the search effort (and as a further measure for smoothing the vectors), the value range S (m, n) is designed adaptively for each BLock in such a way that the search is all the more extensive, the different the motion vectors X16 (m, n) = x16 (m, n), y16 (m, n) and their four neighboring motion vectors are:
S (m, n) = [rmin ... rmax, smin ... smax] (2.4a)
With
rmin = min (x16 (m, n), x16 (m-1, n), x16 (m + 1, n), x16 (m, n-1), x16 (m, n + 1))
rmax = max (x16 (m, n), x16 (m-1, n), x16 (m + 1, n), x16 (m, n-1), x16 (m, n + 1))
smin = min (y16 (m, n), y16 (m-1, n), y16 (m + 1, n), y16 (m, n-1), y16 (m, n + 1))
smax = max (y16 (m, n), y16 (m-1, n), y16 (m + 1, n), y16 (m, n-1), y16 (m, n + 1)) (2.4b )
Es werden nur solche Bewegungsvektoren [r,s] untersucht, für die gilt:
rmin ≦ r ≦ rmax und smin ≦ s ≦ smax.Only those motion vectors [r, s] are examined for which the following applies:
rmin ≦ r ≦ rmax and smin ≦ s ≦ smax.
In Gebieten mit konstantem Bewegungsvektor auch über die Blockgrenzen hinweg ist rmin = x16(m,n) = rmax und smin = y16(m,n) = smax, so daß der Wertbereich auf einen Punkt zusammenschrumpft und kein Suchaufwand entsteht. Nur beim Vorhandensein von Sprüngen und sonstigen Divergenzen und "Ausreißern" im Bewegungsvektorfeld wird nach einer Verbesserung gesucht.In areas with a constant motion vector even across the block boundaries, rmin = x16 (m, n) = rmax and smin = y16 (m, n) = smax, so that the value range is at one point shrinks and no search effort arises. An improvement is only sought if there are jumps and other divergences and "outliers" in the motion vector field.
Nachdem für alle Blöcke B(m,n) einmal nach einer Verbesserung des Vektors X16(m,n) gesucht wurde, muß der Vorgang für alle diejenigen Blöcke B(m,n) nochmals wiederholt werden, für welche sich mindestens einer der vier Nachbar-Bewegungsvektoren X16(m-1,n) usw. im vorhergehenden Durchlauf geändert hat. Daraus ergibt sich ein iterativer Prozeß, der solange fortzusetzen ist, bis sich keiner der Bewegungsvektoren X16(m,n) mehr verbessern läßt, und zwar unter Konstanthaltung der vier Nachbarn.After looking for an improvement of the vector X16 (m, n) once for all blocks B (m, n), the process must be repeated for all those blocks B (m, n) for which at least one of the four neighbors is Motion vectors X16 (m-1, n), etc. changed in the previous pass. This results in an iterative process that has to be continued until none of the motion vectors X16 (m, n) can be improved, while keeping the four neighbors constant.
In der Regel genügen etwa 5 bis 10 Iterationen, und zwar je nach Grad der Bewegung im Bild, wobei zu berücksichtigen ist, daß nur in der ersten Iteration wirklich alle Blöcke überprüft werden müssen und sodann nur noch diejenigen, in deren Nachbarschaft beim letzten Durchlauf noch Änderungen aufgetreten sind.As a rule, about 5 to 10 iterations are sufficient, depending on the degree of movement in the image, whereby it must be taken into account that all blocks really only have to be checked in the first iteration and then only those in their vicinity during the last run Changes have occurred.
Die Tatsache, daß dem Glattheitsmaß P16′(m,n,r,s) Gl. 2.1) die L1-Norm benachbarter Vektoren und nicht etwa die L2-Norm zugrundeliegt, führt dazu, daß bei diesem Glättungsprozeß Kanten erhalten bleiben, ähnlich wie bei MEDIAN-Filterung. In der Tat ist je der Medianwert einer Menge von Zahlen dergenige, welcher die Summe der Beträge der Differenzen, also die Summe der L1-Normen, minimiert. Die zuvor beschriebene Glättung durch Minimierung von D16˝(m,n,r,s) kann daher auch als verallgemeinerte Medianfilterung der Bewegungsvektoren, die die "Displaced-Frame-Differenzen" berücksichtigt, interpretiert werden.The fact that the smoothness measure P16 '(m, n, r, s) Eq. 2.1) The L1 norm of neighboring vectors and not the L2 norm, on the other hand, means that edges are preserved in this smoothing process, similar to MEDIAN filtering. In fact, the median of a set of numbers is the least that minimizes the sum of the amounts of the differences, that is, the sum of the L1 norms. The previously described smoothing by minimizing D16˝ (m, n, r, s) can therefore also be interpreted as a generalized median filtering of the motion vectors, which takes into account the "displaced frame differences".
Es ist nun ein lokales Optimum der Gesamt-Zielfunktion Z erreicht, die sich durch Summation von D16˝(m,n,r,s) über alle Blöcke B(m,n) im Bild ergibt, d. h. für Z gilt:
Z = Z1 + αZ2, (2.5)
wobei
Z = Z1 + αZ2, (2.5)
in which
Hierbei sind die Größen x(i,j) bzw. y(i,j) usw. die Komponenten der Bewegungsvektoren X(i,j), die sich aus dem Bewegungsvektorfeld X16(m,n) dadurch ergeben, daß allen Bildpunkten b(i,j) im Block B(m,n) der gleiche Bewegungsvektor X16(m,n) zugewiesen wird:
X(i,j) = [x(i,j),y(i,j)] = X16(m,n) falls b(i,j) in B(m,n). (2.8)Here, the quantities x (i, j) and y (i, j) etc. are the components of the motion vectors X (i, j) which result from the motion vector field X16 (m, n) in that all pixels b ( i, j) in block B (m, n) the same motion vector X16 (m, n) is assigned:
X (i, j) = [x (i, j), y (i, j)] = X16 (m, n) if b (i, j) in B (m, n). (2.8)
Das Bewegungsvektorfeld wird im folgenden dadurch weiter optimiert - d. h. die Zielfunktion Z wird dadurch weiter minimiert - daß die Größe der Blöcke, in denen das Bewegungsvektorfeld als gleichförmig vorausgesetzt wird, halbiert wird.The motion vector field is further optimized in the following - d. H. the objective function Z is further minimized by halving the size of the blocks in which the motion vector field is assumed to be uniform.
Aus dem gegebenen Bewegungsvektorfeld [X16(m,n)] für die 16er-Blöcke wird ein neues Feld [X8(p,q)] für 8er-Blöcke B8(p,q) erstellt, das aus den Bewegungsvektoren
X8(p,q) = [x8(p,q),y8(p,q)] (3.1)
besteht. Dazu werden alle 16er-Blöcke in je vier 8er-Blöcke unterteilt, und jeder der Teilblöcke bekommt zunächst den gleichen Bewegungsvektor, nämlich den des 16er-Blocks, zugewiesen. Dieses neue Bewegungsvektorfeld dient als Vorgabe für den nächsten Relaxationsschritt.From the given motion vector field [X16 (m, n)] for the blocks of 16, a new field [X8 (p, q)] for blocks of 8 B8 (p, q) is created, which consists of the motion vectors
X8 (p, q) = [x8 (p, q), y8 (p, q)] (3.1)
consists. For this purpose, all 16-blocks are divided into four 8-blocks, and each of the sub-blocks is initially assigned the same motion vector, namely that of the 16-block. This new motion vector field serves as the default for the next relaxation step.
Dieser Verfahrensschritt entspricht genau dem Relaxationsschritt for Blockgröße 16, wie er zuvor beschrieben wurde, jedoch mit der Änderung, daß in den Gleichungen für die Zielfunktion "16" durch "8" zu ersetzen ist. Es wird also eine Zielfunktion D8˝(p,q,rs) entsprechend D16˝(m,n,r,s) nach Gl. 2.2 minimiert, welche ein Glattheitsmaß P8′(p,q,r,s) wie in Gl. 2.1 enthält. Es kann hier für α (s. Gl. 2.1) der gleiche Wert wie bei Blockgröße 16 verwendet werden.This process step corresponds exactly to the relaxation step for
Wie bei der Blockunterteilung von 16*16 auf 8*8 Bildpunkte werden nun die Bewegungsvektoren, die für Blöcke der Größe 8*8 ermittelt wurden, auf je vier Blöcke mit 4*4 Bildpunkten verteilt.As with the block division from 16 * 16 to 8 * 8 pixels, the motion vectors that were determined for blocks of
Dieser Verfahrensschritt entspricht genau den Relaxationsschritten für Blockgröße 16 und 8.This process step corresponds exactly to the relaxation steps for
Die Verfahrensschritte "Blockunterteilung" und "Relaxation" können bis zur Blockgröße 1*1 Bildpunkt fortgesetzt werden; jedoch ist für viele Anwendungsfälle eine Auflösung des Bewegungsvektorfeldes mit einem Bewegungsvektor je 4*4 Bildpunkten ausreichend.The process steps "block subdivision" and "relaxation" can be continued up to block
In Fig. 8 ist eine funktionelle Anordnung dargestellt, mit der das zuvor beschriebene Bewegungsvektor-Ermittlungsverfahren im Prinzip durchgeführt werden kann.FIG. 8 shows a functional arrangement with which the motion vector determination method described above can in principle be carried out.
Ausgehend von zwei Eingangsbildern A und B wird in einer Abfolge von Variationen des Bewegungsvektorfeldes unter Beachtung der jeweiligen Werte der Zielfunktion Z das endfültige Bewegungsvektorfeld bestimmt.Starting from two input images A and B, the final motion vector field is determined in a sequence of variations of the motion vector field, taking into account the respective values of the target function Z.
Das zuvor beschriebene Verfahren kann auch zur Ermittlung von Bewegungsvektorfeldern für die Bild-Interpolation eingesetzt werden. Hierzu müssen nur die Größen, die die "Displaced-Frame-Differenzen" messen, nämlich D16 (m,n,r,s) (Gl. 1.6) und die entsprechenden Größen für die Blöcke der Größen 8*8 und 4*4, etwas modifiziert werden.The method described above can also be used to determine motion vector fields for image interpolation. For this, only the sizes that measure the "displaced frame differences", namely D16 (m, n, r, s) (Eq. 1.6) and the corresponding sizes for the blocks of
Wenn z. B. zwischen die gegebenen Bilder A und B genau ein Zwischenbild durch bewegungsadaptive Interpolation so eingefügt werden soll, daß bewegte Ojekte sich in dem interpolierten Bild gerade um die Hälfe der Verschiebung von Bild A nach Bild B weiterbewegt haben, so ergibt sich anstelle von D16(m,n,r,s) in Gl. 1.6 die neue Größe D16i (m,n,r,s), wobei i für Interpolation steht:
d′(i,j,r,s) = b(i-r/2,j-s/2) - a(i+r/2,j+s/2) (7.2)
Der Bewegungsvektor [r,s] wird also nun nicht vollständig auf das Bild A angewendet, sondern zur Hälfte auf Bild A und mit umgekehrtem Vorzeichen auf Bild B, so daß insgesamt Bild A und Bild B wieder um den gesamten Bewegungsvektor [r,s] gegeneinander versetzt sind.If e.g. B. Exactly one intermediate image should be inserted between the given images A and B by motion-adaptive interpolation in such a way that moving objects in the interpolated image have just moved by half the shift from image A to image B, instead of D16 ( m, n, r, s) in Eq. 1.6 the new size D16i (m, n, r, s), where i stands for interpolation:
d ′ (i, j, r, s) = b (ir / 2, js / 2) - a (i + r / 2, j + s / 2) (7.2)
The motion vector [r, s] is now not completely applied to image A, but half to image A and with the opposite sign to image B, so that image A and image B again around the entire motion vector [r, s] are offset from each other.
Entsprechendes gilt auch für die Interpolation um höhere Faktoren als 2, d. h. falls zwei oder mehr Bilder zwischen die gegebenen Bilder A und B eingefügt werden sollen. Allgemein wird auf Bild A die Verschiebung [r*r,t*s] und auf Bild B die Verschiebung [(t-1)*r,(t-1)*s] angewendet, und zwar mit 0 < t < 1.The same applies to interpolation by factors higher than 2, i.e. H. if two or more images are to be inserted between the given images A and B. In general, the shift [r * r, t * s] is applied to image A and the shift [(t-1) * r, (t-1) * s] to image B, with 0 <t <1.
Falls die Verschiebung nicht auf ganzzahlige Bildpunkt-Koordinaten führt, ist eine Rundung erforderlich.If the shift does not lead to integer pixel coordinates, rounding is required.
In einem Bewegtbild-Codierverfahren wird die Bewegungsvektor-Ermittlung für zwei Zwecke verwendet:
- 1) Bewegungskompensierende Prädiktion bei Sender und Empfänger
- 2) Bewegungsadaptive Interpolation fehlender Bilder beim Empfänger.
- 1) Movement-compensating prediction for sender and receiver
- 2) Motion adaptive interpolation of missing images at the receiver.
Hierbei ist sendeseitig eine Bewegungsvektor-Ermittlung notwendig, um die Bewegungsvektoren für die Bewegungskompensierende Prädiktion zu ermitteln. Da diese Bewegungsvektoren übertragen werden müssen, kann man hier das Bewegungsvektorfeld nicht beliebig verfeinern. Diese Bewegungsvektoren können jedoch beim Empfänger zusätzlich zur Prädiktion auch zur bewegungskompensierenden Interpolation eingesetzt werden, wenn zuvor aus dem übertragenen Bewegungsvektorfeld und den empfängerseitig vorhandenen übertragenen Bildern ein verfeinertes Bewegungsvektorfeld gewonnen wird.In this case, a movement vector determination is necessary on the transmission side in order to determine the movement vectors for the movement-compensating prediction. Since these motion vectors have to be transmitted, the motion vector field cannot be refined here at will. However, these motion vectors can also be used for the prediction in addition to the prediction for motion-compensating interpolation if a refined motion vector field is obtained beforehand from the transferred motion vector field and the transmitted images present on the receiver.
Für die Anwendung in der Bildsequenzencodierung kann daher das zuvor beschriebene mehrstufige Verfahren (s. Fig. 1) in der Weise verwendet werden, daß die Verfahrensschritte "Initialisierung mit Blockgröße 16*16" sowie "Iterationen mit Blockgröße 16" auf der Sendeseite durchgeführt werden und die übrigen Verfahrensschritte ("Blockunterteilung" und "Iterationen" für 8er- und 4er-Blöcke) beim Empfänger, vergl. Fig. 9.For use in image sequence coding, the previously described multi-stage process (see FIG. 1) can therefore be used in such a way that the process steps "initialization with
In Simulationsexperimenten hat sich gezeigt, daß sich tatsächlich das sendeseitig für bewegungskompensierende Prädiktion gewonnene Bewegungsvektorfeld als Vorgabe für eine empfängerseitige Verfeinerung zum Zwecke der Interpolation eignet, wobei sendeseitig die "Displaced Frame Difference" D16(m,n,r,s) aus Gl. 1.6 und empfängerseitig die an die Interpolation angepaßte Funktion D16i(m,n,r,s) (Gln. 7.1, 7.2) bzw. deren Entsprechungen für kleinere Blöcke verwendet werden.Simulation experiments have shown that the motion vector field obtained on the transmitter side for motion-compensating prediction is actually suitable as a specification for a receiver-side refinement for the purpose of interpolation, the "Displaced Frame Difference" D16 (m, n, r, s) from Eq. 1.6 and on the receiver side the function D16i (m, n, r, s) (Eq. 7.1, 7.2) adapted to the interpolation or its equivalents are used for smaller blocks.
Der Ablauf des zuvor erläuterten Bewegungsvektor-Ermittlungsverfahrens wird durch die in Fig. 4 bis Fig. 7 gezeigten Flußdiagramme verdeutlicht.The sequence of the motion vector determination method explained above is illustrated by the flow diagrams shown in FIGS. 4 to 7.
Fig. 4 stellt den Gesamt-Ablaufplan des Verfahrens dar, in dem gezeigt ist, daß zunächst mit der maximalen Blockgröße L = Lmax eine Initialisierung (INIT) des Vektorfeldes stattfindet und daß daran anschließend für alle Blockgrößen von Lmax bis Lmin - wobei jeweils die Blockkantenlänge L halbiert wird - eine iterative Verbesserung (ITER) stattfindet. Der Ablauf der iterativen Verbesserung (ITER) bei gegebener Blockgröße L ist in Fig. 5 gezeigt. Es wird hier für alle Blöcke B(m,n) der Bewegungsvektor ermittelt, der die Zielfunktion mit modifiziertem Glattheitsmaß minimiert.Fig. 4 shows the overall flow chart of the method, in which it is shown that initially with the maximum block size L = L max an initialization (INIT) of the vector field takes place and that subsequently for all block sizes from L max to L min - where the block edge length L is halved - an iterative improvement (ITER) takes place. The course of the iterative improvement (ITER) for a given block size L is shown in FIG. 5. The motion vector which minimizes the objective function with modified smoothness measure is determined here for all blocks B (m, n).
Die iterative Verbesserung (ITER) folgt dem Ablaufplan gemäß Fig. 6. Es existiert hier ein Protokollierungsfeld FERTIG(m,n), das für jeden Block B(m,n) - mit der jeweiligen Blockgröße L - angibt, ob der Block noch zu bearbeiten ist - d. h.The iterative improvement (ITER) follows the flow chart according to FIG. 6. There is a logging field FINISHED (m, n), which indicates for each block B (m, n) - with the respective block size L - whether the block is still closed edit is - ie
FERTIG(m,n) = 0 - oder ob er sich bereits in einem lokalen Optimum (d.h. Minimum) der Zielfunktion befindet - d. h. FERTIG(m,n) = 1. Zunächst wird das Feld FERTIG für alle Blöcke auf Null gesetzt. In der darauffolgenden Schleife wird jeweils für alle Blöcke, die noch nicht "FERTIG" sind, das Minimum der Zielfunktion in einem bestimmten Wertebereich gesucht (OPTI), vergl. Fig. 7. Für alle diese Blöcke wird FERTIG (m,n) = 1 gesetzt. Falls sich bei der Minimumsuche der Bewegungsvektor des Blocks verändert hat, wird für die Nachbarblöcke das Feld FERTIG auf Null gesetzt, damit diese nochmals bearbeitet werden. Wenn alle Blöcke den Wert FERTIG(m,n) = 1 haben, ist die Iterationenfolge beendet.DONE (m, n) = 0 - or whether it is already in a local optimum (i.e. minimum) of the target function - d. H. DONE (m, n) = 1. First, the DONE field is set to zero for all blocks. In the following loop, the minimum of the target function in a certain value range (OPTI) is searched for all blocks that are not yet "DONE", see FIG. 7. DONE (m, n) = 1 for all these blocks set. If the motion vector of the block has changed during the minimum search, the DONE field for the neighboring blocks is set so that they can be processed again. When all blocks have the value FINISHED (m, n) = 1, the iteration sequence is ended.
Den Ablauf des Optimierungsschritts (OPTI), der in ITER durchlaufen wird, zeigt. Fig. 7.The process of the optimization step (OPTI), which is run through in ITER, shows. Fig. 7.
Zusammenfassend ist festzustellen, daß das Unterteilen der Blöcke jeweils vorzugsweise durch Halbieren der Kantenlängen der Blöcke durchgeführt wird. Bei einem Einfügen eines Zwischenbildes zwischen die beiden Bilder werden jedem Bildpunkt dieses Zwischenbildes zwei Bildpunkte, nämlich einer aus dem ersten und einer aus dem zweiten Bild, zugeordnet. Die Differenzen der Luminanzwerte einander entsprechender Bildpunkte der beiden aufeinanderfolgenden Bilder innerhalb eines Blocks von Bildpunkten werden mittels der Summe der Absolutbeträge der Differenzen der Luminanzwerte bewertet und als Summanden in der zu minimierenden Zielfunktion verwendet, wobei diese Summanden eine erste Komponente der Zielfunktion bilden. Die Differenzen der Luminanzwerte einander entsprechender Bildpunkte der beiden aufeinanderfolgenden Bilder innerhalb eines Blocks von Bildpunkten können auch mittels der Summe der Quadrate der Differenzen der Luminanzwerte bewertet und als Summanden in der zu minimierenden Zielfunktion verwendet werden, wobei diese Summanden eine erste Komponente der Zielfunktion bilden.In summary, it should be noted that the division of the blocks is preferably carried out in each case by halving the edge lengths of the blocks. When an intermediate image is inserted between the two images, two pixels, namely one from the first and one from the second image, are assigned to each pixel of this intermediate image. The differences in the luminance values of corresponding pixels of the two successive images within a block of pixels are evaluated by means of the sum of the absolute amounts of the differences in the luminance values and used as summands in the target function to be minimized, these summands forming a first component of the target function. The differences in the luminance values of corresponding pixels of the two successive images within a block of pixels can also be evaluated by means of the sum of the squares of the differences in the luminance values and used as summands in the target function to be minimized, these summands forming a first component of the target function.
Das erfindungsgemäße Verfahren sieht außerdem vor, daß die Differenzen zwischen Nachbar-Bewegungsvektoren durch die Be tragsnormen dieser Differenzen ausdrückt werden, wobei die Summe dieser Betragsnormen eine zweite Komponente der Zielfunktion bildet und als das Glattheitsmaß verwendet wird. Zumindest eine der beiden Komponenten wird mit einem Gewichtungsfaktor multipliziert, und die entsprechenden Produkte bilden durch Summation die Zielfunktion, wobei die Zielfunktion vorzugsweise die Form Z = Z1 + α Z2 hat, wobei Z1 die erste Komponente, Z2 die zweite Komponente und α der Gewichtungsfaktor sind.The inventive method also provides that the differences between neighboring motion vectors by the Be norms of these differences are expressed, the sum of these norms forming a second component of the objective function and used as the smoothness measure. At least one of the two components is multiplied by a weighting factor, and the corresponding products form the target function by summation, the target function preferably having the form Z = Z1 + α Z2, Z1 being the first component, Z2 the second component and α the weighting factor .
Als Nachbarn jedes Bewegungsvektors werden in dem bevorzugten Ausführungsbeispiel nur diejenigen vier Nachbar-Bewegungsvektoren verwendet, deren Koordinaten sich horizontal und vertikal in Nachbarschaft zu den Koordinaten des betreffenden Bewegungsvektor befinden, d. h., daß sich deren Koordinaten um (0,1), (0,-1), (1,0) oder (-1,0) von den Koordinaten des betreffenden Bewegungsvektors unterscheiden.In the preferred embodiment, only those four neighboring motion vectors are used as neighbors of each motion vector, the coordinates of which are horizontally and vertically adjacent to the coordinates of the relevant motion vector, i. that is, their coordinates differ by (0.1), (0, -1), (1.0) or (-1.0) from the coordinates of the relevant motion vector.
Bei der Initialisierung des Bewegungsvektorfeldes mit großen Blöcken - vorzugsweise 16-16 Bildpunkte (Pixel) - nämlich solange noch nicht für jeden Block zumindest schon einmal ein Bewegungsvektor berechnet wurde, wird das Glattheitsmaß dahingehend modifiziert, daß statt der Differenzen zwischen Nachbar-Bewegungsvektoren die Betragsnormen der zu optimierenden Bewegungsvektoren - multipliziert mit einem Gewichtungsfaktor - in der Zielfunktion mittels des Glattheitsmaßes verwendet werden.When initializing the motion vector field with large blocks - preferably 16-16 pixels (pixels) - namely as long as a motion vector has not been calculated for each block at least once, the smoothness measure is modified in such a way that instead of the differences between neighboring motion vectors, the amount norms of motion vectors to be optimized - multiplied by a weighting factor - are used in the target function by means of the smoothness measure.
In jeder Stufe der Blockunterteilung, d. h. am Anfang bei der maximalen Blockgröße und daraufhin nach jeder Blockunterteilung, die vorzugsweise bis zu einer Blockgröße von 4x4 Bildpunkten (Pixel) durchgeführt wird, wird so lange der Reihe nach jeder einzelne Bewegungsvektor durch Variation in einem betreffenden Wertbereich optimiert, bis für keinen Bewegungsvektor mehr auf diese Weise ein kleinerer Wert der Zielfunktion gefunden werden kann.In each stage of the block subdivision, ie at the beginning at the maximum block size and then after each block subdivision, which is preferably carried out up to a block size of 4x4 pixels (pixels), each individual motion vector is optimized in turn by variation in a relevant value range , until a smaller value of the objective function can no longer be found in this way for any motion vector.
Der Wertbereich der Bewegungsvektoren, innerhalb dessen die einzelnen Bewegungsvektoren variiert werden, um die Zielfunktion zu minimieren, wird davon anhängig gemacht, welche Werte die Bewegungsvektoren in dem bereits berechneten Bewegungsvektorfeld haben, so daß der Wertbereich für die Optimierung des Bewegungsvektorfeldes klein ist, wenn Nachbar-Bewegungsvektoren gleich oder ähnlich sind, und nur dann größer ist, wenn Nachbar-Bewegungsvektoren große Differenzen untereinander aufweisen.The range of values of the motion vectors within which the individual motion vectors are varied in order to minimize the objective function is made dependent on the values of the motion vectors in the motion vector field already calculated, so that the range of values for the optimization of the motion vector field is small if neighboring Motion vectors are the same or similar, and is only larger if neighboring motion vectors have large differences between them.
Durch ein Protokollierungssystem wird bewirkt, daß nur diejenigen Bewegungsvektoren nochmals im Hinblick auf eine mögliche Verkleinerung des Werts der Zielfunktion optimiert werden, deren Nachbar-Bewegungsvektoren sich seit der letzten Optimierung des betreffenden Bewegungsvektors verändert haben, so daß sich gegebenenfalls auch das Glattheitsmaß verändert hat, wobei das Protokollierungssystem ein Protokollierungsfeld mit einem Speicherplatz je Block zur Speicherung einer Steuerinformation für den Optimierungsablauf enthält.A logging system has the effect that only those motion vectors are optimized again with a view to a possible reduction in the value of the target function, the neighboring motion vectors of which have changed since the last optimization of the motion vector in question, so that the smoothness measure has also changed, where appropriate the logging system contains a logging field with a storage space per block for storing control information for the optimization process.
Bei der Optimierung eines bestimmten Bewegungsvektors braucht nicht unbedingt jeder Bewegungsvektor des betreffenden Wertbereichs, sondern nur eine Teilmenge der Bewegungsvektoren nach einem vorbestimmten Schema in Betracht gezogen zu werden.When optimizing a particular motion vector, it is not absolutely necessary to take into account each motion vector of the relevant value range, but only a subset of the motion vectors according to a predetermined scheme.
Zusätzlich zu der Differenz zwischen Nachbar-Bewegungsvektoren in dem zu berechnenden Bewegungsvektorfeld kann auch die Differenz zwischen den Bewegungsvektoren des aktuellen Bewegungsvektorfeldes und denen des unmittelbar vorher aus einem vorangehenden Paar aufeinanderfolgender Bilder berechneten Bewegungsvektorfeldes ermittelt und in dem Glattheitsmaß verwendet werden, und zwar zum Zwecke der Glättung des Bewegungsvektorfeldes in der Zeitachsenrichtung, d. h. zur Angleichung aufeinanderfolgender Bewegungsvektorfelder.In addition to the difference between neighboring motion vectors in the motion vector field to be calculated, the difference between the motion vectors of the current motion vector field and those of the motion vector field calculated immediately beforehand from a previous pair of successive images can also be determined and used in the smoothness measure, for the purpose of smoothing the motion vector field in the time axis direction, d. H. for matching successive motion vector fields.
Das erfindungsgemäße Verfahren kann auch in Fällen angewendet werden, in denen aus je zwei aufeinanderfolgenden, mittels Datenkompression von einem Coder über einen Kanal zu einem Decoder übertragenen Bildern Bewegungsvektorfelder zum Zwecke des Einfügens von Zwischenbildern ermittelt werden, und zwar derart, daß zur Initialisierung des Verfahrens entsprechende Bewegungsvektorfelder verwendet werden, die bereits zuvor übertragen worden sind.The method according to the invention can also be used in cases in which there are two successive means Data compression of images transmitted from a coder via a channel to a decoder, motion vector fields are determined for the purpose of inserting intermediate images, in such a way that corresponding motion vector fields that have already been transmitted are used to initialize the method.
Im Anhang ist ein vollständiges Programm-Listing mit 42 Seiten Umfang (p 1 ... p 42) über den gesamten erfindungsgemäßen Verfahrensablauf für ein bevorzugtes Programmierungsbeispiel in der Programmiersprache FORTRAN wiedergegeben.The appendix shows a complete program listing with 42 pages (
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT88107514T ATE74219T1 (en) | 1987-06-02 | 1988-05-10 | METHOD FOR DETERMINING MOTION VECTOR FIELDS FROM DIGITAL IMAGE SEQUENCES. |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE3718491 | 1987-06-02 | ||
DE3718491 | 1987-06-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0293644A1 true EP0293644A1 (en) | 1988-12-07 |
EP0293644B1 EP0293644B1 (en) | 1992-03-25 |
Family
ID=6328906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP88107514A Expired - Lifetime EP0293644B1 (en) | 1987-06-02 | 1988-05-10 | Method for determining movement vector fields from digital image sequences |
Country Status (5)
Country | Link |
---|---|
US (1) | US4924310A (en) |
EP (1) | EP0293644B1 (en) |
JP (1) | JPH0192885A (en) |
AT (1) | ATE74219T1 (en) |
DE (1) | DE3869475D1 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0395267A2 (en) * | 1989-04-27 | 1990-10-31 | Sony Corporation | Motion dependent video signal processing |
EP0395270A2 (en) * | 1989-04-27 | 1990-10-31 | Sony Corporation | Motion dependent video signal processing |
EP0395269A2 (en) * | 1989-04-27 | 1990-10-31 | Sony Corporation | Motion dependent video signal processing |
EP0410192A1 (en) * | 1989-07-25 | 1991-01-30 | Robert Bosch Gmbh | Circuit for estimation of motion in a captured image |
FR2651399A1 (en) * | 1989-08-29 | 1991-03-01 | Thomson Consumer Electronics | METHOD AND DEVICE FOR ESTIMATING AND HIERARCHIZED CODING OF THE MOTION OF IMAGE SEQUENCES. |
EP0420653A2 (en) * | 1989-09-29 | 1991-04-03 | Victor Company Of Japan, Ltd. | Motion picture data coding/decoding system having motion vector coding unit and decoding unit |
EP0446001A2 (en) * | 1990-03-06 | 1991-09-11 | Victor Company Of Japan, Ltd. | Motion vector detection circuit used in hierarchical processing of moving picture signal |
EP0466981A1 (en) * | 1990-07-20 | 1992-01-22 | Koninklijke Philips Electronics N.V. | Motion vector processing device |
EP0478217A2 (en) * | 1990-09-28 | 1992-04-01 | Sony United Kingdom Limited | Motion dependent video signal processing |
EP0515890A2 (en) * | 1991-05-31 | 1992-12-02 | Daimler-Benz Aerospace Aktiengesellschaft | Terrain monitoring method |
FR2684258A1 (en) * | 1991-11-27 | 1993-05-28 | Thomson Consumer Electronics | METHOD FOR ESTIMATING AND CODING HIERARCHISE OF THE MOTION OF IMAGE SEQUENCES. |
DE4406837A1 (en) * | 1993-03-03 | 1994-09-08 | Gold Star Co | Image correction device and method for a camcorder |
Families Citing this family (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5047850A (en) * | 1989-03-03 | 1991-09-10 | Matsushita Electric Industrial Co., Ltd. | Detector for detecting vector indicating motion of image |
JPH07105949B2 (en) * | 1989-03-20 | 1995-11-13 | 松下電器産業株式会社 | Image motion vector detection device and shake correction device |
JPH0771296B2 (en) * | 1989-03-20 | 1995-07-31 | 松下電器産業株式会社 | Motion vector detector |
US5265172A (en) * | 1989-10-13 | 1993-11-23 | Texas Instruments Incorporated | Method and apparatus for producing optical flow using multi-spectral images |
US5617482A (en) * | 1990-08-15 | 1997-04-01 | Televerket | Method of motion compensation and elastic deformation in picture sequences |
DE4104067C2 (en) * | 1991-02-11 | 1994-08-25 | Telefonbau & Normalzeit Gmbh | Process for improving the quality of motion vectors for digital image transmission |
JP2677312B2 (en) * | 1991-03-11 | 1997-11-17 | 工業技術院長 | Camera work detection method |
SE469866B (en) * | 1991-04-12 | 1993-09-27 | Dv Sweden Ab | Method for estimating motion content in video signals |
US5208673A (en) * | 1991-11-05 | 1993-05-04 | Matsushita Electric Corporation Of America | Noise reduction in frame transmitted video signals |
EP0557007A2 (en) * | 1992-02-15 | 1993-08-25 | Sony Corporation | Picture processing apparatus |
US5500904A (en) * | 1992-04-22 | 1996-03-19 | Texas Instruments Incorporated | System and method for indicating a change between images |
US5471544A (en) * | 1992-05-18 | 1995-11-28 | Markandey; Vishal | Condition number-based smoothins of optical flow fields |
DE69415702T2 (en) * | 1993-02-22 | 1999-05-20 | Matsushita Electric Industrial Co., Ltd., Kadoma, Osaka | Methods and devices for coding and decoding moving images |
US5453787A (en) * | 1993-12-10 | 1995-09-26 | International Business Machines Corporation | Variable spatial frequency chrominance encoding in software motion video compression |
US5465118A (en) * | 1993-12-17 | 1995-11-07 | International Business Machines Corporation | Luminance transition coding method for software motion video compression/decompression |
US5537155A (en) * | 1994-04-29 | 1996-07-16 | Motorola, Inc. | Method for estimating motion in a video sequence |
WO1996008114A1 (en) * | 1994-09-02 | 1996-03-14 | David Sarnoff Research Center, Inc. | Method and apparatus for global-to-local block motion estimation |
TW322238U (en) * | 1995-06-06 | 1997-12-01 | Nippon Steel Corp | A moving picture signal decoder |
US5717463A (en) * | 1995-07-24 | 1998-02-10 | Motorola, Inc. | Method and system for estimating motion within a video sequence |
AU6951596A (en) * | 1995-08-28 | 1997-03-19 | Motorola, Inc. | Method and system for performing an l1 norm operation |
JP3183155B2 (en) * | 1996-03-18 | 2001-07-03 | 株式会社日立製作所 | Image decoding apparatus and image decoding method |
JP2001506820A (en) * | 1996-11-27 | 2001-05-22 | プリンストン ビデオ イメージ,インコーポレイテッド | Motion tracking using image texture templates |
CN1108064C (en) * | 1997-10-23 | 2003-05-07 | 索尼电子有限公司 | Apparatus and method for recovery of lost/damaged data in bitstream of data based on compatibility |
US6282684B1 (en) | 1997-10-23 | 2001-08-28 | Sony Corporation | Apparatus and method for recovery of data in a lossy transmission environment |
US6163868A (en) | 1997-10-23 | 2000-12-19 | Sony Corporation | Apparatus and method for providing robust error recovery for errors that occur in a lossy transmission environment |
US6581170B1 (en) | 1997-10-23 | 2003-06-17 | Sony Corporation | Source coding to provide for robust error recovery during transmission losses |
US6535148B1 (en) | 1999-02-12 | 2003-03-18 | Sony Corporation | Method and apparatus for truncated decoding |
US6307979B1 (en) | 1999-02-12 | 2001-10-23 | Sony Corporation | Classified adaptive error recovery method and apparatus |
US6363118B1 (en) | 1999-02-12 | 2002-03-26 | Sony Corporation | Apparatus and method for the recovery of compression constants in the encoded domain |
US6170074B1 (en) | 1999-02-12 | 2001-01-02 | Sony Corporation | Source coding to provide for robust error recovery |
US6621936B1 (en) | 1999-02-12 | 2003-09-16 | Sony Corporation | Method and apparatus for spatial class reduction |
US6178266B1 (en) | 1999-02-12 | 2001-01-23 | Sony Corporation | Method and apparatus for the recovery of compression constants in the encoded domain |
US6192161B1 (en) | 1999-02-12 | 2001-02-20 | Sony Corporation | Method and apparatus for adaptive filter tap selection according to a class |
US6591398B1 (en) | 1999-02-12 | 2003-07-08 | Sony Corporation | Multiple processing system |
US6307560B1 (en) | 1999-02-12 | 2001-10-23 | Sony Corporation | Classified adaptive spatio-temporal format conversion method and apparatus |
US7010737B2 (en) * | 1999-02-12 | 2006-03-07 | Sony Corporation | Method and apparatus for error data recovery |
US6519369B1 (en) | 1999-02-12 | 2003-02-11 | Sony Corporation | Method and apparatus for filter tap expansion |
US6154761A (en) * | 1999-02-12 | 2000-11-28 | Sony Corporation | Classified adaptive multiple processing system |
US6151416A (en) * | 1999-02-12 | 2000-11-21 | Sony Corporation | Method and apparatus for adaptive class tap selection according to multiple classification |
DE19909622A1 (en) * | 1999-03-05 | 2000-09-07 | Bosch Gmbh Robert | Method and device for determining a shift of images of an image sequence |
US6697489B1 (en) | 1999-03-30 | 2004-02-24 | Sony Corporation | Method and apparatus for securing control words |
US7730300B2 (en) * | 1999-03-30 | 2010-06-01 | Sony Corporation | Method and apparatus for protecting the transfer of data |
US7565546B2 (en) | 1999-03-30 | 2009-07-21 | Sony Corporation | System, method and apparatus for secure digital content transmission |
US6741725B2 (en) * | 1999-05-26 | 2004-05-25 | Princeton Video Image, Inc. | Motion tracking using image-texture templates |
US6473876B1 (en) | 1999-06-29 | 2002-10-29 | Sony Corporation | Method and apparatus for encoding of bitstreams using rotation |
US6389562B1 (en) | 1999-06-29 | 2002-05-14 | Sony Corporation | Source code shuffling to provide for robust error recovery |
US6549672B1 (en) * | 1999-06-29 | 2003-04-15 | Sony Corporation | Method and apparatus for recovery of encoded data using central value |
US6493842B1 (en) | 1999-06-29 | 2002-12-10 | Sony Corporation | Time-varying randomization for data synchronization and implicit information transmission |
US6522785B1 (en) | 1999-09-24 | 2003-02-18 | Sony Corporation | Classified adaptive error recovery method and apparatus |
US6351494B1 (en) | 1999-09-24 | 2002-02-26 | Sony Corporation | Classified adaptive error recovery method and apparatus |
US6539517B1 (en) | 1999-11-09 | 2003-03-25 | Sony Corporation | Data transformation for explicit transmission of control information |
US7039614B1 (en) | 1999-11-09 | 2006-05-02 | Sony Corporation | Method for simulcrypting scrambled data to a plurality of conditional access devices |
US6754371B1 (en) | 1999-12-07 | 2004-06-22 | Sony Corporation | Method and apparatus for past and future motion classification |
US7225164B1 (en) * | 2000-02-15 | 2007-05-29 | Sony Corporation | Method and apparatus for implementing revocation in broadcast networks |
US20040205812A1 (en) * | 2000-06-22 | 2004-10-14 | Candelore Brant L. | Method and apparatus for routing program data in a program viewing unit |
US6665450B1 (en) * | 2000-09-08 | 2003-12-16 | Avid Technology, Inc. | Interpolation of a sequence of images using motion analysis |
US20020159749A1 (en) * | 2001-03-15 | 2002-10-31 | Koninklijke Philips Electronics N.V. | Method and apparatus for motion estimation in image-sequences with efficient content-based smoothness constraint |
US6782054B2 (en) * | 2001-04-20 | 2004-08-24 | Koninklijke Philips Electronics, N.V. | Method and apparatus for motion vector estimation |
US7043058B2 (en) * | 2001-04-20 | 2006-05-09 | Avid Technology, Inc. | Correcting motion vector maps for image processing |
US7545957B2 (en) * | 2001-04-20 | 2009-06-09 | Avid Technology, Inc. | Analyzing motion of characteristics in images |
US6987866B2 (en) * | 2001-06-05 | 2006-01-17 | Micron Technology, Inc. | Multi-modal motion estimation for video sequences |
US7747853B2 (en) | 2001-06-06 | 2010-06-29 | Sony Corporation | IP delivery of secure digital content |
US7895616B2 (en) | 2001-06-06 | 2011-02-22 | Sony Corporation | Reconstitution of program streams split across multiple packet identifiers |
US7350082B2 (en) | 2001-06-06 | 2008-03-25 | Sony Corporation | Upgrading of encryption |
US7151831B2 (en) * | 2001-06-06 | 2006-12-19 | Sony Corporation | Partial encryption and PID mapping |
US7823174B2 (en) | 2002-01-02 | 2010-10-26 | Sony Corporation | Macro-block based content replacement by PID mapping |
US7218738B2 (en) * | 2002-01-02 | 2007-05-15 | Sony Corporation | Encryption and content control in a digital broadcast system |
US7765567B2 (en) | 2002-01-02 | 2010-07-27 | Sony Corporation | Content replacement by PID mapping |
US7233669B2 (en) * | 2002-01-02 | 2007-06-19 | Sony Corporation | Selective encryption to enable multiple decryption keys |
US7376233B2 (en) | 2002-01-02 | 2008-05-20 | Sony Corporation | Video slice and active region based multiple partial encryption |
US7155012B2 (en) * | 2002-01-02 | 2006-12-26 | Sony Corporation | Slice mask and moat pattern partial encryption |
US7292691B2 (en) | 2002-01-02 | 2007-11-06 | Sony Corporation | Progressive video refresh slice detection |
US7242773B2 (en) * | 2002-09-09 | 2007-07-10 | Sony Corporation | Multiple partial encryption using retuning |
US7039938B2 (en) * | 2002-01-02 | 2006-05-02 | Sony Corporation | Selective encryption for video on demand |
US7302059B2 (en) * | 2002-01-02 | 2007-11-27 | Sony Corporation | Star pattern partial encryption |
US7215770B2 (en) * | 2002-01-02 | 2007-05-08 | Sony Corporation | System and method for partially encrypted multimedia stream |
US7194676B2 (en) | 2002-03-01 | 2007-03-20 | Avid Technology, Inc. | Performance retiming effects on synchronized data in an editing system |
US7530084B2 (en) * | 2002-05-28 | 2009-05-05 | Sony Corporation | Method and apparatus for synchronizing dynamic graphics |
EP1387588A2 (en) * | 2002-08-02 | 2004-02-04 | KDDI Corporation | Image matching device and method for motion estimation |
US8818896B2 (en) | 2002-09-09 | 2014-08-26 | Sony Corporation | Selective encryption with coverage encryption |
US7724907B2 (en) | 2002-11-05 | 2010-05-25 | Sony Corporation | Mechanism for protecting the transfer of digital content |
US8572408B2 (en) | 2002-11-05 | 2013-10-29 | Sony Corporation | Digital rights management of a digital device |
US8645988B2 (en) | 2002-12-13 | 2014-02-04 | Sony Corporation | Content personalization for digital content |
US8667525B2 (en) * | 2002-12-13 | 2014-03-04 | Sony Corporation | Targeted advertisement selection from a digital stream |
US20040165586A1 (en) * | 2003-02-24 | 2004-08-26 | Read Christopher Jensen | PID filters based network routing |
US7409702B2 (en) | 2003-03-20 | 2008-08-05 | Sony Corporation | Auxiliary program association table |
US7292692B2 (en) | 2003-03-25 | 2007-11-06 | Sony Corporation | Content scrambling with minimal impact on legacy devices |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
US20130107938A9 (en) * | 2003-05-28 | 2013-05-02 | Chad Fogg | Method And Apparatus For Scalable Video Decoder Using An Enhancement Stream |
US20050036067A1 (en) * | 2003-08-05 | 2005-02-17 | Ryal Kim Annon | Variable perspective view of video images |
US7286667B1 (en) | 2003-09-15 | 2007-10-23 | Sony Corporation | Decryption system |
US7620180B2 (en) | 2003-11-03 | 2009-11-17 | Sony Corporation | Preparation of content for multiple conditional access methods in video on demand |
US7346163B2 (en) * | 2003-10-31 | 2008-03-18 | Sony Corporation | Dynamic composition of pre-encrypted video on demand content |
US20050097597A1 (en) * | 2003-10-31 | 2005-05-05 | Pedlow Leo M.Jr. | Hybrid storage of video on demand content |
US7343013B2 (en) | 2003-12-16 | 2008-03-11 | Sony Corporation | Composite session-based encryption of video on demand content |
US7263187B2 (en) * | 2003-10-31 | 2007-08-28 | Sony Corporation | Batch mode session-based encryption of video on demand content |
US7853980B2 (en) | 2003-10-31 | 2010-12-14 | Sony Corporation | Bi-directional indices for trick mode video-on-demand |
FR2862466A1 (en) * | 2003-11-19 | 2005-05-20 | France Telecom | Video image sequence watermarking for reduced visual impact having bit sequence modification placement optimally watermarked movement vectors only using predetermined optimally watermarked movement vectors |
US8041190B2 (en) | 2004-12-15 | 2011-10-18 | Sony Corporation | System and method for the creation, synchronization and delivery of alternate content |
US7895617B2 (en) | 2004-12-15 | 2011-02-22 | Sony Corporation | Content substitution editor |
GB2431795A (en) * | 2005-10-31 | 2007-05-02 | Sony Uk Ltd | Motion vector selection based on integrity |
GB2431798A (en) * | 2005-10-31 | 2007-05-02 | Sony Uk Ltd | Motion vector selection based on integrity |
US8185921B2 (en) | 2006-02-28 | 2012-05-22 | Sony Corporation | Parental control of displayed content using closed captioning |
US7555464B2 (en) | 2006-03-01 | 2009-06-30 | Sony Corporation | Multiple DRM management |
US20080095414A1 (en) * | 2006-09-12 | 2008-04-24 | Vladimir Desh | Correction of functional nuclear imaging data for motion artifacts using anatomical data |
US8526502B2 (en) * | 2007-09-10 | 2013-09-03 | Entropic Communications, Inc. | Method and apparatus for line based vertical motion estimation and compensation |
US8385404B2 (en) | 2008-09-11 | 2013-02-26 | Google Inc. | System and method for video encoding using constructed reference frame |
US8326075B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video encoding using adaptive loop filter |
US20110026596A1 (en) * | 2009-07-28 | 2011-02-03 | Wei Hong | Method and System for Block-Based Motion Estimation for Motion-Compensated Frame Rate Conversion |
US9532059B2 (en) | 2010-10-05 | 2016-12-27 | Google Technology Holdings LLC | Method and apparatus for spatial scalability for video coding |
US8611415B1 (en) | 2010-11-15 | 2013-12-17 | Google Inc. | System and method for coding using improved motion estimation |
US8891626B1 (en) | 2011-04-05 | 2014-11-18 | Google Inc. | Center of motion for encoding motion fields |
US8693547B2 (en) | 2011-04-06 | 2014-04-08 | Google Inc. | Apparatus and method for coding using motion vector segmentation |
US8781004B1 (en) | 2011-04-07 | 2014-07-15 | Google Inc. | System and method for encoding video using variable loop filter |
US8780996B2 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method for encoding and decoding video data |
US8780971B1 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method of encoding using selectable loop filters |
US8638854B1 (en) | 2011-04-07 | 2014-01-28 | Google Inc. | Apparatus and method for creating an alternate reference frame for video compression using maximal differences |
US9154799B2 (en) | 2011-04-07 | 2015-10-06 | Google Inc. | Encoding and decoding motion via image segmentation |
US8804819B1 (en) | 2011-04-19 | 2014-08-12 | Google Inc. | Method and apparatus for encoding video using data frequency |
US9749638B1 (en) | 2011-04-28 | 2017-08-29 | Google Inc. | Method and apparatus for encoding video with dynamic quality improvement |
US8705620B1 (en) | 2011-04-28 | 2014-04-22 | Google Inc. | Method and apparatus for encoding anchor frame by encoding features using layers |
US8989256B2 (en) | 2011-05-25 | 2015-03-24 | Google Inc. | Method and apparatus for using segmentation-based coding of prediction information |
CN103797795B (en) | 2011-07-01 | 2017-07-28 | 谷歌技术控股有限责任公司 | Method and apparatus for motion-vector prediction |
US8885706B2 (en) | 2011-09-16 | 2014-11-11 | Google Inc. | Apparatus and methodology for a video codec system with noise reduction capability |
CN104041041B (en) | 2011-11-04 | 2017-09-01 | 谷歌技术控股有限责任公司 | Motion vector scaling for the vectorial grid of nonuniform motion |
US9247257B1 (en) | 2011-11-30 | 2016-01-26 | Google Inc. | Segmentation based entropy encoding and decoding |
US9014265B1 (en) | 2011-12-29 | 2015-04-21 | Google Inc. | Video coding using edge detection and block partitioning for intra prediction |
US8908767B1 (en) | 2012-02-09 | 2014-12-09 | Google Inc. | Temporal motion vector prediction |
US9094681B1 (en) | 2012-02-28 | 2015-07-28 | Google Inc. | Adaptive segmentation |
US9131073B1 (en) | 2012-03-02 | 2015-09-08 | Google Inc. | Motion estimation aided noise reduction |
WO2013162980A2 (en) | 2012-04-23 | 2013-10-31 | Google Inc. | Managing multi-reference picture buffers for video data coding |
US9609341B1 (en) | 2012-04-23 | 2017-03-28 | Google Inc. | Video data encoding and decoding using reference picture lists |
US20130286227A1 (en) * | 2012-04-30 | 2013-10-31 | T-Mobile Usa, Inc. | Data Transfer Reduction During Video Broadcasts |
US9172970B1 (en) | 2012-05-29 | 2015-10-27 | Google Inc. | Inter frame candidate selection for a video encoder |
US9014266B1 (en) | 2012-06-05 | 2015-04-21 | Google Inc. | Decimated sliding windows for multi-reference prediction in video coding |
US11317101B2 (en) | 2012-06-12 | 2022-04-26 | Google Inc. | Inter frame candidate selection for a video encoder |
US9344729B1 (en) | 2012-07-11 | 2016-05-17 | Google Inc. | Selective prediction signal filtering |
US9380298B1 (en) | 2012-08-10 | 2016-06-28 | Google Inc. | Object-based intra-prediction |
US9288484B1 (en) | 2012-08-30 | 2016-03-15 | Google Inc. | Sparse coding dictionary priming |
US9503746B2 (en) | 2012-10-08 | 2016-11-22 | Google Inc. | Determine reference motion vectors |
US9485515B2 (en) | 2013-08-23 | 2016-11-01 | Google Inc. | Video coding using reference motion vectors |
US9210432B2 (en) | 2012-10-08 | 2015-12-08 | Google Inc. | Lossless inter-frame video coding |
US9225979B1 (en) | 2013-01-30 | 2015-12-29 | Google Inc. | Remote access encoding |
US9210424B1 (en) | 2013-02-28 | 2015-12-08 | Google Inc. | Adaptive prediction block size in video coding |
US9300906B2 (en) | 2013-03-29 | 2016-03-29 | Google Inc. | Pull frame interpolation |
RU2538941C1 (en) * | 2013-06-14 | 2015-01-10 | Общество с ограниченной ответственностью "Аби Девелопмент" | Recognition quality enhancements by increasing image resolution |
US9756331B1 (en) | 2013-06-17 | 2017-09-05 | Google Inc. | Advance coded reference prediction |
US9313493B1 (en) | 2013-06-27 | 2016-04-12 | Google Inc. | Advanced motion estimation |
US9286653B2 (en) | 2014-08-06 | 2016-03-15 | Google Inc. | System and method for increasing the bit depth of images |
US9153017B1 (en) | 2014-08-15 | 2015-10-06 | Google Inc. | System and method for optimized chroma subsampling |
US10102613B2 (en) | 2014-09-25 | 2018-10-16 | Google Llc | Frequency-domain denoising |
US10134110B1 (en) * | 2015-04-01 | 2018-11-20 | Pixelworks, Inc. | Temporal stability for single frame super resolution |
US9807416B2 (en) | 2015-09-21 | 2017-10-31 | Google Inc. | Low-latency two-pass video coding |
US10390048B2 (en) * | 2016-02-15 | 2019-08-20 | Qualcomm Incorporated | Efficient transform coding using optimized compact multi-pass transforms |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2172171A (en) * | 1985-03-04 | 1986-09-10 | Kokusai Denshin Denwa Co Ltd | Motion vector calculating system for detecting a moving object on a screen |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0089409B1 (en) * | 1982-03-18 | 1989-03-29 | VDO Adolf Schindling AG | Fuel cut-off control system in an internal-combustion engine |
JPS60158786A (en) * | 1984-01-30 | 1985-08-20 | Kokusai Denshin Denwa Co Ltd <Kdd> | Detection system of picture moving quantity |
EP0204006B1 (en) * | 1984-12-17 | 1991-10-09 | Nippon Hoso Kyokai | System for transmitting stereoscopic television pictures |
DE3684047D1 (en) * | 1985-07-02 | 1992-04-09 | Matsushita Electric Ind Co Ltd | BLOCK CODING DEVICE. |
JP2506332B2 (en) * | 1986-03-04 | 1996-06-12 | 国際電信電話株式会社 | High-efficiency coding method for moving image signals |
-
1988
- 1988-05-10 AT AT88107514T patent/ATE74219T1/en not_active IP Right Cessation
- 1988-05-10 DE DE8888107514T patent/DE3869475D1/en not_active Expired - Lifetime
- 1988-05-10 EP EP88107514A patent/EP0293644B1/en not_active Expired - Lifetime
- 1988-05-30 JP JP63132513A patent/JPH0192885A/en active Pending
-
1989
- 1989-08-22 US US07/397,049 patent/US4924310A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2172171A (en) * | 1985-03-04 | 1986-09-10 | Kokusai Denshin Denwa Co Ltd | Motion vector calculating system for detecting a moving object on a screen |
Non-Patent Citations (1)
Title |
---|
PROCEEDINGS: WORKSHOP ON MOTION: REPRESENTATION AND ANALYSIS, 7.-9. Mai 1986, Seiten 81-87, IEEE, South Carolina, US; W. ENKELMANN: "Investigations of multigrid algorithms for the estimation of optical flow fields in image sequences" * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0395267A2 (en) * | 1989-04-27 | 1990-10-31 | Sony Corporation | Motion dependent video signal processing |
EP0395269A2 (en) * | 1989-04-27 | 1990-10-31 | Sony Corporation | Motion dependent video signal processing |
EP0395269A3 (en) * | 1989-04-27 | 1992-01-08 | Sony Corporation | Motion dependent video signal processing |
EP0395267A3 (en) * | 1989-04-27 | 1992-01-08 | Sony Corporation | Motion dependent video signal processing |
GB2231748B (en) * | 1989-04-27 | 1993-08-18 | Sony Corp | Motion dependent video signal processing |
EP0395270A3 (en) * | 1989-04-27 | 1992-02-05 | Sony Corporation | Motion dependent video signal processing |
EP0395270A2 (en) * | 1989-04-27 | 1990-10-31 | Sony Corporation | Motion dependent video signal processing |
EP0410192A1 (en) * | 1989-07-25 | 1991-01-30 | Robert Bosch Gmbh | Circuit for estimation of motion in a captured image |
FR2651399A1 (en) * | 1989-08-29 | 1991-03-01 | Thomson Consumer Electronics | METHOD AND DEVICE FOR ESTIMATING AND HIERARCHIZED CODING OF THE MOTION OF IMAGE SEQUENCES. |
WO1991003797A1 (en) * | 1989-08-29 | 1991-03-21 | Thomson Consumer Electronics S.A. | Method and device for estimation and hierarchical coding of the motion of image sequences |
US5351095A (en) * | 1989-08-29 | 1994-09-27 | Thomson Consumer Electronics | Method and device for estimating and hierarchically coding the motion of sequences of images |
EP0420653A2 (en) * | 1989-09-29 | 1991-04-03 | Victor Company Of Japan, Ltd. | Motion picture data coding/decoding system having motion vector coding unit and decoding unit |
EP0420653A3 (en) * | 1989-09-29 | 1992-06-03 | Victor Company Of Japan, Ltd. | Motion picture data coding/decoding system having motion vector coding unit and decoding unit |
EP0446001A2 (en) * | 1990-03-06 | 1991-09-11 | Victor Company Of Japan, Ltd. | Motion vector detection circuit used in hierarchical processing of moving picture signal |
EP0446001A3 (en) * | 1990-03-06 | 1993-05-19 | Victor Company Of Japan, Ltd. | Motion vector detection circuit used in hierarchical processing of moving picture signal |
EP0466981A1 (en) * | 1990-07-20 | 1992-01-22 | Koninklijke Philips Electronics N.V. | Motion vector processing device |
US5148269A (en) * | 1990-07-20 | 1992-09-15 | U.S. Philips Corporation | Motion vector processing device |
EP0478217A2 (en) * | 1990-09-28 | 1992-04-01 | Sony United Kingdom Limited | Motion dependent video signal processing |
EP0478217A3 (en) * | 1990-09-28 | 1993-05-19 | Sony Broadcast & Communications Limited | Motion dependent video signal processing |
EP0515890A3 (en) * | 1991-05-31 | 1994-02-02 | Deutsche Aerospace | |
EP0515890A2 (en) * | 1991-05-31 | 1992-12-02 | Daimler-Benz Aerospace Aktiengesellschaft | Terrain monitoring method |
FR2684258A1 (en) * | 1991-11-27 | 1993-05-28 | Thomson Consumer Electronics | METHOD FOR ESTIMATING AND CODING HIERARCHISE OF THE MOTION OF IMAGE SEQUENCES. |
WO1993011502A1 (en) * | 1991-11-27 | 1993-06-10 | Thomson Consumer Electronics S.A. | Method for estimating and hierarchically coding image sequence motion |
DE4406837A1 (en) * | 1993-03-03 | 1994-09-08 | Gold Star Co | Image correction device and method for a camcorder |
Also Published As
Publication number | Publication date |
---|---|
ATE74219T1 (en) | 1992-04-15 |
EP0293644B1 (en) | 1992-03-25 |
DE3869475D1 (en) | 1992-04-30 |
US4924310A (en) | 1990-05-08 |
JPH0192885A (en) | 1989-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0293644B1 (en) | Method for determining movement vector fields from digital image sequences | |
DE69421837T2 (en) | Video encoders and decoders | |
EP0259562B1 (en) | Method for interframe prediction coding with movement compensation | |
DE69123359T2 (en) | VIDEO IMAGE PROCESSING | |
DE69027479T2 (en) | Motion-dependent video signal processing | |
DE69722637T2 (en) | MOTION ESTIMATION SYSTEM AND METHOD FOR A VIDEO ENCODER | |
DE3587448T2 (en) | Device for an effective coding of television signals. | |
DE3874705T2 (en) | METHOD FOR ESTIMATING MOTION WITH SEVERAL PREDICTORS FOR POINTS OF AN ELECTRONIC IMAGE. | |
DE69031055T2 (en) | Motion-dependent video signal processing | |
DE69413384T2 (en) | METHOD FOR DETERMINING THE INEQUALITY BETWEEN MONOSCOPIC IMAGES THAT ARE A STEREOSCOPIC IMAGE | |
DE69525525T2 (en) | Image processing system using pixel-to-pixel motion estimation and image decimation | |
DE69623330T2 (en) | FEATURE-BASED VIDEO COMPRESSION PROCESS | |
DE69534399T2 (en) | Method and device for determining feature points | |
DE69314630T2 (en) | METHOD FOR ADAPTIVELY ESTIMATING UNWANTED IMAGE SHAKERS IN IMAGE SEQUENCES OF DIGITAL TELEVISION SIGNALS | |
DE69723550T2 (en) | CODING AND DECODING OF GRAPHIC SYMBOLS | |
DE69427801T2 (en) | Method and device for determining motion vector fields by suppressing local deviations | |
DE69801209T2 (en) | Hierarchical recursive motion estimator for motion picture encoders | |
EP0309669A2 (en) | Method for scenery model aided image data reduction for digital television signals | |
DE69028651T2 (en) | Motion-dependent video signal processing | |
DE3837590A1 (en) | PROCESS FOR REDUCING THE DATA RATE OF DIGITAL IMAGE DATA | |
DE19618984B4 (en) | Method for motion evaluation in image data and apparatus for carrying out this method | |
DE69320461T2 (en) | Motion compensated video image processing | |
DE69028792T2 (en) | Motion-dependent video signal processing | |
EP0468279B1 (en) | Method for determining motion vectors for the blocks of a source image sequence | |
DE69027704T2 (en) | Motion-dependent video signal processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB IT LI LU NL SE |
|
17P | Request for examination filed |
Effective date: 19890529 |
|
17Q | First examination report despatched |
Effective date: 19910822 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE CH DE FR GB IT LI LU NL SE |
|
REF | Corresponds to: |
Ref document number: 74219 Country of ref document: AT Date of ref document: 19920415 Kind code of ref document: T |
|
REF | Corresponds to: |
Ref document number: 3869475 Country of ref document: DE Date of ref document: 19920430 |
|
ET | Fr: translation filed | ||
ITF | It: translation for a ep patent filed | ||
GBT | Gb: translation of ep patent filed (gb section 77(6)(a)/1977) | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed | ||
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: AT Payment date: 19930421 Year of fee payment: 6 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: BE Payment date: 19930512 Year of fee payment: 6 Ref country code: SE Payment date: 19930512 Year of fee payment: 6 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: LU Payment date: 19930518 Year of fee payment: 6 |
|
EPTA | Lu: last paid annual fee | ||
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: CH Payment date: 19931008 Year of fee payment: 6 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 19940510 Ref country code: AT Effective date: 19940510 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Effective date: 19940511 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Effective date: 19940531 Ref country code: CH Effective date: 19940531 Ref country code: LI Effective date: 19940531 |
|
BERE | Be: lapsed |
Owner name: SIEMENS A.G. Effective date: 19940531 |
|
EUG | Se: european patent has lapsed |
Ref document number: 88107514.7 Effective date: 19941210 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
EUG | Se: european patent has lapsed |
Ref document number: 88107514.7 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: NL Payment date: 20070503 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20070822 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20070508 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IT Payment date: 20070515 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20070516 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20080509 |
|
NLV7 | Nl: ceased due to reaching the maximum lifetime of a patent |
Effective date: 20080510 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20080510 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20080509 |