DE69517673T2 - Hierarchical motion vector estimation with several block sizes - Google Patents
Hierarchical motion vector estimation with several block sizesInfo
- Publication number
- DE69517673T2 DE69517673T2 DE1995617673 DE69517673T DE69517673T2 DE 69517673 T2 DE69517673 T2 DE 69517673T2 DE 1995617673 DE1995617673 DE 1995617673 DE 69517673 T DE69517673 T DE 69517673T DE 69517673 T2 DE69517673 T2 DE 69517673T2
- Authority
- DE
- Germany
- Prior art keywords
- block
- search
- motion vector
- hierarchical
- 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.)
- Expired - Lifetime
Links
- 239000013598 vector Substances 0.000 title claims description 72
- 230000006870 function Effects 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 21
- 238000006073 displacement reaction Methods 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Ermitteln von Bewegungsvektoren, und spezieller ein verbessertes Verfahren zum Ermitteln von Bewegungsvektoren aus zwei aufeinanderfolgenden Videobildern unter Verwendung einer hierarchischen Bewegungsschätzmethode.The present invention relates to a method for determining motion vectors, and more particularly to an improved method for determining motion vectors from two consecutive video images using a hierarchical motion estimation method.
Bei zahlreichen elektronischen/elektrischen Anwendungen wie z. B. hochaufläsenden Fernseh- und Videotelefonsystemen muß ein Bildsignal in digitaler Form übertragen werden. Wenn das Bildsignal in einer digitalen Form dargestellt wird, tritt zwangsläufig eine erhebliche digitale Datenmenge auf. Da jedoch die verfügbare Frequenzbandbreite eines herkömmlichen Übertragungskanals beschränkt ist, ist es, um durch diesen das Bildsignal zu übertragen unvermeidlich, die Menge der Übertragungsdaten zu komprimieren oder zu reduzieren. Unter den zahlreichen Videokomprissionstechniken ist eine bewegungskompensierte Zwischenbildcodiertechnik als eine der effizienteren Komprimiertechniken bekannt. Diese verwendet zeitliche Redundanzen der Videosignale zwischen zwei aufeinanderfolgenden Videobildern zur Kompression der Signale.In many electronic/electrical applications, such as high definition television and video telephone systems, an image signal must be transmitted in digital form. When the image signal is represented in a digital form, a significant amount of digital data is inevitably involved. However, since the available frequency bandwidth of a conventional transmission channel is limited, in order to transmit the image signal through it, it is inevitable to compress or reduce the amount of transmission data. Among the numerous video compression techniques, a motion compensated interframe coding technique is known as one of the more efficient compression techniques. It uses temporal redundancies of the video signals between two consecutive video frames to compress the signals.
Beim bewegungskompensierten Zwischenbildcodierverfahren werden momentane Bilddaten aus den vorhergehenden Bilddaten basierend auf einer Schätzung einer Bewegung zwischen dem momentanen und dem vorhergehenden Bild vorhergesagt. Eine derartige Bewegungsschätzung kann unter Verwendung zweidimensionaler Bewegungsvektoren beschrieben werden, die die Pixelverschiebung zwischen dem vorhergehenden und dem momentanen Bild darstellen. Ein im Stand der Technik vorgeschlagenes Bewegungsvektorschätzverfahren ist ein Blockübereinstimmungsalgorithmus (siehe z. B. J. R. Jain et al., "Displacement Measurement and Its Application in Interframe Image Coding", IEEE Transactions an Communications COM-29, Nr. 12 (Dezember 1981)).In the motion compensated inter-frame coding method, current image data is predicted from the previous image data based on an estimate of motion between the current and previous frames. Such motion estimation can be described using two-dimensional motion vectors representing the pixel displacement between the previous and current frames. One motion vector estimation method proposed in the prior art is a block matching algorithm (see, e.g., BJR Jain et al., "Displacement Measurement and Its Application in Interframe Image Coding," IEEE Transactions on Communications COM-29, No. 12 (December 1981)).
Gemäß dem Blockübereinstimmungsalgorithmus wird ein momentanes Bild in mehrere gleich große Suchblöcke unterteilt. Die Größe der Suchblöcke liegt typischerweise zwischen 8 · 8 und 8 · 32 Pixel. Um für einen Suchblock in dem momentanen Bild einen Bewegungsvektor zu ermitteln wird eine Ähnlichkeitsberechnung zwischen dem Suchblock in dem momentanen Bild und jedem Kandidatenblock von mehreren gleich großen Kandidatenblöcken durchgeführt, die in einem im allgemeinen größeren Suchgebiet in einem vorhergehenden Bild enthalten sind. Fehlerfunktionen wie z. B. die mittleren absoluten Fehlerwerte oder mittlere quadratische Fehlerwerte werden verwendet, um eine Ähnlichkeitsmessung zwischen dem Suchblock des momentanen Bildes und jedem Kandidatenblock in dem Suchgebiet durchzuführen. Ein Bewegungsvektor stellt per Definition die Verschiebung zwischen dem Suchblock und einem Block mit der höchsten Übereinstimmung dar, d. h. einem Kandidatenblock, bei welchem sich ein minimaler "Fehlerwert" oder Unterschied ergibt.According to the block matching algorithm, a current image is divided into several equally sized search blocks. The size of the search blocks is typically between 8 x 8 and 8 x 32 pixels. To determine a motion vector for a search block in the current image, a similarity calculation is performed between the search block in the current image and each of several equally sized candidate blocks contained in a generally larger search area in a previous image. Error functions such as mean absolute error values or mean square error values are used to perform a similarity measurement between the search block of the current image and each candidate block in the search area. A motion vector is by definition the displacement between the search block and a block with the highest match, i.e. a candidate block that results in a minimal "error value" or difference.
Jedoch kann bei dieser Blockübereinstimmungsbewegungsschätzmethode, bei welchem ein Suchblock mit einer festen Größe verwendet wird, dann, wenn die Größe des Suchblocks relativ groß ist, der gleich Bewegungsvektor zu sämtlichen Pixeln in dem Suchblock zugeordnet werden, die sich jedoch nicht auf gleiche Weise bewegen. Dadurch wird die Gesamtbildqualität verringert.However, in this block matching motion estimation method using a search block with a fixed size, if the size of the search block is relatively large, the same motion vector may be assigned to all pixels in the search block, but they do not move in the same way. This lowers the overall image quality.
Die JP-A-5328334 beschreibt eine Vorrichtung zum Ermitteln eines Bewegungsvektors zwischen entsprechenden Blöcken eines momentanen und eines vorhergehenden Videobilds unter Verwendung eines Suchalgorithmus, bei welchem maximale und minimale Fehlerwertunterschiede zwischen einem Kandidatenblock und Suchblöcken eines Suchgebiets abgeleitet werden. Der Unterschied zwischen ihnen wird mit einem Schwellwert verglichen. Wenn der Unterschied über dem Schwellwert liegt wird der Vektor, welcher dem Suchblock entspricht, der den minimalen Fehlerwert zeigt als der beste geschätzte Bewegungsvektor ausgegeben. Wenn nicht, wird das Suchgebiet vergrößert.JP-A-5328334 describes an apparatus for determining a motion vector between corresponding blocks of a current and a previous video image using a search algorithm in which maximum and minimum error value differences between a candidate block and search blocks of a search area are derived. The difference between them is compared with a threshold value. If the difference exceeds the threshold, the vector corresponding to the search block showing the minimum error value is output as the best estimated motion vector. If not, the search area is enlarged.
Die EP-A-0538667 beschreibt einen Codierer, bei welchem mehrere Bewegungskompensierer parallel arbeiten. Die Blockgrößen, bei welchen die Kompensierer die entsprechenden Bewegungsvektoren ermitteln, sind hierarchisch organisiert. Der Bewegungskompensierer, der zu der geringsten Menge komprimierten Daten führt wird ausgewählt. Dies hat den zusätzlichen Effekt, daß weniger Bewegungsvektoren codiert werden müssen, wenn das beste Ergebnis bei einem großem Block erzielt wurde.EP-A-0538667 describes an encoder in which several motion compensators work in parallel. The block sizes for which the compensators determine the corresponding motion vectors are organized hierarchically. The motion compensator that results in the smallest amount of compressed data is selected. This has the additional effect that fewer motion vectors need to be coded if the best result was achieved with a large block.
Es ist deswegen ein vorwiegendes Ziel der Erfindung, ein verbessertes Verfahren zu Verfügung zu stellen, mit welchem unter Verwendung einer hierarchischen Bewegungsschätzmethode aus zwei aufeinanderfolgenden Videobildern auf genaue Weise Bewegungsvektoren ermittelt werden können.It is therefore a primary aim of the invention to provide an improved method with which motion vectors can be determined in an accurate manner from two consecutive video images using a hierarchical motion estimation method.
Gemäß der vorliegenden Erfindung wird ein Verfahren zum Ermitteln eines Bewegungsvektors gemäß Anspruch 1 zur Verfügung gestellt, und eine Vorrichtung gemäß Anspruch 7. Bevorzugte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen definiert.According to the present invention, there is provided a method for determining a motion vector according to claim 1, and an apparatus according to claim 7. Preferred embodiments of the invention are defined in the dependent claims.
Das obige und weitere Ziele und Merkmale der vorliegenden Erfindung sind aus der folgenden Beschreibung bevorzugter Ausführungsbeispiele zusammen mit der begleitenden Zeichnung ersichtlich, bei welcher:The above and other objects and features of the present invention will become apparent from the following description of preferred embodiments taken together with the accompanying drawings, in which:
Fig. 1 ein Blockdiagramm der erfindungsgemäßen Vorrichtung zum Bestimmen von Bewegungsvektoren zwischen einem momentanen und einem vorhergehenden Videosignalbild ist;Fig. 1 is a block diagram of the inventive apparatus for determining motion vectors between a current and a previous video signal frame;
Fig. 2 ein genaues Blockdiagramm zeigt, welches einen in Fig. 1 gezeigten Fehlerwerterzeuger darstellt; undFig. 2 shows a detailed block diagram illustrating an error value generator shown in Fig. 1; and
Fig. 3 beispielhafte hierarchische Suchblöcke darstellt.Fig. 3 shows exemplary hierarchical search blocks.
Bezogen auf Fig. 1 ist ein Blockdiagramm der erfindungsgemäßen Vorrichtung zum Ermitteln eines Bewegungsvektors für jeden von mehreren Verarbeitungsblöcken in einem momentanen Bild unter Verwendung einer mehrfach gestaffelten hierarchischen Bewegungsschätzmethode gezeigt. Jeder Verarbeitungsblock mit der Größe von P · Q, z. B. 2 · 2 Pixeln weist hierarchische Suchblöcke in einem momentanen Bild auf.Referring to Fig. 1, a block diagram of the inventive apparatus for determining a motion vector for each of a plurality of processing blocks in a current image using a multi-tiered hierarchical motion estimation method is shown. Each processing block of size P · Q, e.g. 2 · 2 pixels, comprises hierarchical search blocks in a current image.
Die Daten des momentanen Bilds werden als digitales Videoeingangssignal einem Bildspeicher 50 und in einem Blockbildeabschnitt 100 zugeführt, um hierarchische Suchblöcke zu erzeugen. Der Blockbildeabschnitt 100 dient dazu, für jeden Verarbeitungsblock die hierarchischen Suchblöcke zu erzeugen, wobei der Verarbeitungsblock am Zentrum der Suchblöcke angeordnet ist. Ein Suchblock einer Hierarchie ist um 2 N Pixel in vertikaler und horizontaler Richtung, wobei N eine ganze Zahl größer als 0, z. B. 1 ist, größer als ein Suchblock einer niedrigeren Hierarchie, und ein Suchblock einer niedrigsten Hierarchie ist gleich groß wie oder größer als der Verarbeitungsblock.The data of the current image is supplied as a digital video input signal to an image memory 50 and to a block forming section 100 to generate hierarchical search blocks. The block forming section 100 serves to generate the hierarchical search blocks for each processing block, with the processing block located at the center of the search blocks. A search block of a hierarchy is larger than a search block of a lower hierarchy by 2 N pixels in the vertical and horizontal directions, where N is an integer greater than 0, e.g. 1, and a search block of a lowest hierarchy is equal to or larger than the processing block.
Wie in Fig. 1 gezeigt enthält der Blockbildeabschnitt 100 eine Anzahl M, z. B. 4 Blockformatierer, z. B. 110-170. In den Blockformatierern 110, 130, 150 und 170 werden die hierarchischen Suchblöcke für jeden Verarbeitungsblock erzeugt, und die Größen der Suchblöcke variieren in 2 N- Pixelschritten von 2 N bis 2N(M-1) in der horizontalen und vertikalen Richtung, wobei M eine ganze Zahl größer als 1 ist. Spezieller erzeugt ein erster Blockformatierer 110 Suchblöcke einer höchsten Hierarchie mit einer Größe von H · V Pixeln, ein zweiter Blockformatierer 130 erzeugt Suchblöcke einer niedrigeren Hierarchie mit einer Größe von (H-2 N) · (V-2 N), z. B. (H-2) · (V-2) Pixeln, ein dritter Blockformatierer 150 erzeugt Suchblöcke einer noch niedrigeren Hierarchie mit einer Größer von (H-4 N) · (V-4 N), z. B. (H-4) · (V-4) Pixeln, und ein letzter Blockformatierer 170 erzeugt Suchblöcke einer niedrigsten Hierarchie mit einer Größe von (H-2N (M-1)) · (V-2N (M-1)), z. B. (H-2 (M- 1)) · (V-2(M-1)) Pixeln.As shown in Fig. 1, the block forming section 100 includes a number M, e.g. 4, block formatters, e.g. 110-170. In the block formatters 110, 130, 150 and 170, the hierarchical search blocks are generated for each processing block, and the sizes of the search blocks vary in 2 N pixel steps from 2 N to 2 N (M-1) in the horizontal and vertical directions, where M is an integer greater than 1. More specifically, a first block formatter 110 generates search blocks of a highest hierarchy with a size of H x V pixels, a second block formatter 130 generates search blocks of a lower hierarchy with a size of (H-2 N) · (V-2 N), e.g. (H-2) · (V-2) pixels, a third block formatter 150 produces search blocks of a still lower hierarchy with a size of (H-4 N) · (V-4 N), e.g. (H-4) · (V-4) pixels, and a final block formatter 170 produces search blocks of a lowest hierarchy with a size of (H-2N (M-1)) · (V-2N (M-1)), e.g. (H-2 (M- 1)) · (V-2(M-1)) pixels.
In Fig. 3 sind die von den Blockformatierern 110-170 erzeugten hierarchischen Suchblöcke beispielhaft dargestellt, wobei diese hierarchischen Suchblöcke in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung verwendet werden. Aus Darstellungsgründen wurde angenommen, daß H und V für jeden Pixelsuchblock in dem momentanen Bild die gleiche Zahl 16 sind.Figure 3 illustrates by way of example the hierarchical search blocks generated by the block formatters 110-170, which hierarchical search blocks are used in a preferred embodiment of the present invention. For purposes of illustration, H and V have been assumed to be the same number 16 for each pixel search block in the current image.
Wie in Fig. 3 gezeigt ist, bildet der Blockformatierer 110 einen Suchblock 10 mit der Größe von H · V, d. h. 16 · 16 Pixeln, wobei der Suchblock 10 unter Verwendung eines Verarbeitungsblocks 5 als Bezug aufgebaut wird, und der Verarbeitungsblock 5 am Zentrum des Suchblocks 10 angeordnet ist. Auf ähnliche Weise baut der Blockformatierer 130 einen kleineren Suchblock 12 mit der Größe (H-2) · (V- 2), d. h. 14 · 14 Pixeln auf, der Blockformatierer 150 baut einen noch kleineren Suchblock 14 mit der Größe (H-V) · (V- 4), d. h. 12 · 12 Pixeln auf, und der letzte Blockformatierer 170 erzeugt einen kleinsten Suchblock 16 der niedrigsten Suchblockhierarchie mit der Größe (H-8) · (V-8), d. h. 8 · 8 Pixeln unter Verwendung des Verarbeitungsblocks 5 als Bezug, wobei der Verarbeitungsblock 5 am Zentrum der entsprechenden kleineren Suchblöcke 12, 14 und 16 angeordnet ist.As shown in Fig. 3, the block formatter 110 forms a search block 10 with the size of H x V, i.e., 16 x 16 pixels, the search block 10 is constructed using a processing block 5 as a reference, and the processing block 5 is located at the center of the search block 10. Similarly, the block formatter 130 constructs a smaller search block 12 with the size (H-2) x (V-2), i.e., 14 x 14 pixels, the block formatter 150 constructs an even smaller search block 14 with the size (H-V) x (V-4), i.e., 12 x 12 pixels, and the last block formatter 170 creates a smallest search block 16 of the lowest search block hierarchy with the size (H-8) x (V-8), i.e., 16 x 16 pixels. i.e. 8 x 8 pixels using the processing block 5 as a reference, wherein the processing block 5 is located at the center of the corresponding smaller search blocks 12, 14 and 16.
Wieder bezogen auf Fig. 1 werden die von den Blockformatierern 110-170 erzeugten hierarchischen Suchblöcke einer Bewegungsschätzeinheit 200 zugeführt, die mehrere Fehlerfunktionsberechnern 101-270 enthält. Daten des vorhergehenden Bilds vom Bildspeicher 50 werden ebenfalls der Bewegungsschätzeinheit 200 zugeführt. In jedem in der Bewe gungsschätzeinheit 200 enthaltenen Fehlerfunktionsberechner 210-270 werden die Daten des vorhergehenden Bilds von dem Bildspeicher 50 und die Daten des momentanen Bilds verarbeitet, um einen Bewegungsvektor zu berechnen und zu schätzen, der die Verschiebung zwischen einem Suchblock des momentanen Bilds und einem Kandidatenblock darstellt, und bei welchem sich die minimale Fehlerfunktion ergibt.Referring again to Fig. 1, the hierarchical search blocks generated by the block formatters 110-170 are fed to a motion estimation unit 200 which includes a plurality of error function calculators 101-270. Data of the previous frame from the frame store 50 is also fed to the motion estimation unit 200. In each of the motion estimation units 200 The error function calculator 210-270 included processes the previous frame data from the frame memory 50 and the current frame data to calculate and estimate a motion vector representing the displacement between a search block of the current frame and a candidate block, and at which the minimum error function results.
Die Fehlerfunktionsberechner 210, 230, 250 und 270 sind im wesentlichen aus identischen Elementen gebildet, wobei jedes Element der gleichen Funktion dient. Entsprechend ist der Betrieb jedes Fehlerfunktionsberechners 210, 230, 250 oder 270 im wesentlichen identisch. Aus diesem Grund wird die Operation des Fehlerfunktionsberechners 210 stellvertretend unter Bezug auf Fig. 2 im Detail beschrieben, in welcher ein detailliertes Blockdiagramm des Fehlerfunktionsberechners 210 gezeigt ist.The error function calculators 210, 230, 250 and 270 are formed of substantially identical elements, with each element serving the same function. Accordingly, the operation of each error function calculator 210, 230, 250 or 270 is substantially identical. For this reason, the operation of the error function calculator 210 will be described in detail with reference to Figure 2, which shows a detailed block diagram of the error function calculator 210.
Wie in Fig. 2 gezeigt ist, werden die Daten des vorhergehenden Bilds, die von dem in Fig. 1 gezeigten Bildspeicher 50 geliefert werden, an einen Suchgebietsbildeabschnitt 211 zugeführt. Der Suchgebietsbildeabschnitt 211 definiert Suchgebiete des vorhergehenden Bilds mit gleicher Größe, wobei die Größe jedes Suchgebiets im allgemeinen größer als diejenige des Suchblocks ist.As shown in Fig. 2, the previous image data supplied from the image memory 50 shown in Fig. 1 is supplied to a search area forming section 211. The search area forming section 211 defines search areas of the previous image having the same size, the size of each search area being generally larger than that of the search block.
Nachdem das Suchgebiet in dem Suchgebietsbildeabschnitt 211 bestimmt wurde, werden die Suchgebietsdaten mehreren Blockbildeabschnitten, z. B. 212-124 zugeführt. In jedem Blockbildeabschnitt wird ein Kandidatenblock mit H · V, d. h. 16 · 16 Pixeln aus dem Suchgebiet erzeugt. Die Relativverschiebungen der Kandidatenblöcke von dem Ort des Suchblocks in dem momentanen Bild werden als Verschiebungsvektoren, z. B. 612-614 der Kandidatenblöcke ausgegeben. Alle möglichen Kandidatenblöcke mit der Größe H · V Pixeln werden innerhalb des bestimmten Suchgebiets gebildet, und zu jedem Kandidatenblock werden entsprechende Verschiebungsvektoren erhalten.After the search area is determined in the search area forming section 211, the search area data is supplied to a plurality of block forming sections, e.g. 212-124. In each block forming section, a candidate block of H · V, i.e. 16 · 16 pixels, is generated from the search area. The relative displacements of the candidate blocks from the location of the search block in the current image are output as displacement vectors, e.g. 612-614 of the candidate blocks. All possible candidate blocks of size H · V pixels are formed within the determined search area, and corresponding displacement vectors are obtained for each candidate block.
Die Pixeldaten jedes Kandidatenblocks werden von jedem Kandidatenblockbildeabschnitt 212-216 an den jeweiligen Blockübereinstimmabschnitts 215-217 ausgegeben. Die Daten des Suchblocks mit der Größe H · V Pixeln werden ebenfalls von dem in Fig. 1 gezeigten Blockformatierer 110 zu jedem Blockübereinstimmabschnitt 215-217 zugeführt. In jedem Blockübereinstimmabschnitt wird eine Fehlerfunktion, z. B.. mittlere absoluter Fehlerwerte zwischen dem Suchblock von dem Blockformatierer 110 und den Kandidatenblöcken von den entsprechenden Kandidatenblockbildeabschnitten 212-214 berechnet, die dem Mittelwert der absoluten Differenz zwischen den Pixeln in dem Suchblock und dem Kandidatenblock entsprechen. Es wird ein Vergleich z. B. der Lichtintensität oder Helligkeit zwischen entsprechenden Pixeln in dem Suchblock und jedem Kandidatenblock durchgeführt, um für jeden Kandidatenblock eine Fehlerfunktion zu erhalten. Die Fehlerfunktion zeigt den Grad der Ähnlichkeit zwischen dem Suchblock und dem jeweiligen Kandidatenblock an.The pixel data of each candidate block is output from each candidate block forming section 212-216 to the respective block matching section 215-217. The data of the search block of size H x V pixels is also supplied from the block formatter 110 shown in Fig. 1 to each block matching section 215-217. In each block matching section, an error function, e.g., average absolute error values between the search block from the block formatter 110 and the candidate blocks from the corresponding candidate block forming sections 212-214, is calculated, which corresponds to the average of the absolute difference between the pixels in the search block and the candidate block. A comparison, e.g., of the light intensity or brightness between corresponding pixels in the search block and each candidate block is made to obtain an error function for each candidate block. The error function indicates the degree of similarity between the search block and the respective candidate block.
Sämtliche Fehlerfunktionen von den Blockübereinstimmabschnitten 215-217 werden einem Minimalwertdetektor 218 zugeführt. Der Minimalwertdetektor 218 vergleicht die Fehlerfunktionen, und wählt die Fehlerfunktion aus, die einen kleinsten Wert aufweist.All error functions from the block matching sections 215-217 are fed to a minimum value detector 218. The minimum value detector 218 compares the error functions and selects the error function that has a smallest value.
Der Minimalwertdetektor 218 gibt das Signal, welches den Block anzeigt, der zu der minimalen Fehlerfunktion gehört, an einen Selektor 219 aus. Die von den Blockabschnitten 212-214 erhaltenen Verschiebungsvektoren 612- 614 werden dem Selektor 219 ebenfalls zugeführt. Der Selektor 219 wählt dann den Verschiebungsvektors des Kandidatenblocks, der zur minimalen Fehlerfunktion gehört, als Bewegungsvektor für den Suchblock mit der Größe H · V Pixeln aus. Der ermittelte Bewegungsvektor wird als ein erster hierarchischer Bewegungsvektor MV1 an einen Bewegungsvektorselektor 400 und einen Selektor 332 ausgegeben, die in Fig. 1 gezeigt sind. Die von dem Minimalwertdetektor 218 ausgewählte minimale Fehlerfunktion wird als eine erste hierarchische Fehlerfunktion E1 an einen Niedrigwertdetektor 312 und einen Vergleicher 322, die in Fig. 1 gezeigt sind, ausgegeben.The minimum value detector 218 outputs the signal indicating the block corresponding to the minimum error function to a selector 219. The displacement vectors 612-614 obtained from the block sections 212-214 are also supplied to the selector 219. The selector 219 then selects the displacement vector of the candidate block corresponding to the minimum error function as the motion vector for the search block of size H · V pixels. The determined motion vector is output as a first hierarchical motion vector MV1 to a motion vector selector 400 and a selector 332 shown in Fig. 1. The minimum error function selected by the minimum value detector 218 is as a first hierarchical error function E1 to a low value detector 312 and a comparator 322 shown in Fig. 1.
Auf ähnliche Weise vergleicht jeder der in Fig. 1 gezeigten Fehlerfunktionserzeuger 230-270 einen entsprechenden Suchblock mit jedem Kandidatenblock der in seinem entsprechenden Suchgebiet des vorhergehenden Bildes enthalten ist, wobei eine Fehlerfunktion wie z. B. ein mittlerer absoluter Fehlerwert verwendet wird. Daraufhin erzeugt jeder Fehlerfunktionserzeuger 230-270 Fehlerfunktionen für jeden Suchblock bei jeder hierarchischen Ebene. Die Fehlerfunktionen bei jeder hierarchischen Ebene werden verarbeitet, um für jeden Suchblock bei jeder Hierarchie die minimale Fehlerfunktion zu erzeugen. Der Verschiebungsvektor, der der minimalen Fehlerfunktion entspricht, wird als Bewegungsvektor des Suchblocks ausgewählt. Die minimalen Fehlerfunktionen von jedem Fehlerfunktionserzeuger 230-270 werden Niedrigwertdetektoren 312-316 jeweils als zweite hierarchische, dritte hierarchische und letzte hierarchische Fehlerfunktion E2-E4 zugeführt. Jeder Bewegungsvektor für jeden Suchblock in jeder Hierarchie wird den Selektoren 332-336 jeweils als zweiter hierarchischer, dritter hierarchischer und letzter hierarchischer Bewegungsvektor MV2-MV4 zugeführt.Similarly, each of the error function generators 230-270 shown in Fig. 1 compares a corresponding search block with each candidate block contained in its corresponding search area of the previous image using an error function such as an average absolute error value. Each error function generator 230-270 then generates error functions for each search block at each hierarchical level. The error functions at each hierarchical level are processed to generate the minimum error function for each search block at each hierarchy. The displacement vector corresponding to the minimum error function is selected as the motion vector of the search block. The minimum error functions from each error function generator 230-270 are fed to low value detectors 312-316 as second hierarchical, third hierarchical and last hierarchical error functions E2-E4, respectively. Each motion vector for each search block in each hierarchy is fed to selectors 332-336 as second hierarchical, third hierarchical and last hierarchical motion vectors MV2-MV4, respectively.
Der Niedrigwertdetektor 312 gibt eine kleinere Fehlerfunktion unter seinen zwei Eingaben, d. h. der ersten und der zweiten hierarchischen Fehlerfunktion E1, E2 an den Vergleicher 324 und einen nächsten Niedrigwertdetektor 314 aus, und erzeugt ein Steuersignal, das dem Selektor 332 den hierarchischen Bewegungsvektor anzeigt, der zu der kleineren Fehlerfunktion gehört. Der nächste Niedrigwertdetektor 314 gibt eine kleinere Fehlerfunktion unter seinen zwei Eingaben, d. h. der Ausgabe von dem Niedrigwertdetektor 312 und der dritten hierarchischen Fehlerfunktion E3 an den Vergleicher 326 und den Niedrigwertdetektor der nächsten Stufe aus, und erzeugt ein Steuersignal, welches den hierarchischen Bewegungsvektor anzeigt, der zu der kleineren Fehlerfunktion gehört, welches von dort aus an den Selektor 334 ausgegeben wird. Der letzte Niedrigwertdetektor 316 gibt die kleinere Fehlerfunktion unter seine zwei Eingaben, d. h. der Ausgabe von dem Niedrigwertdetektor der vorhergehenden Stufe und der letzten hierarchischen Fehlerfunktion E4 an den Vergleicher 328 aus, und erzeugt ein Steuersignal, welches den hierarchischen Bewegungsvektor anzeigt, der zu der kleineren Fehlerfunktion gehört, welches von dort aus an den Selektor 336 geliefert wird.The low value detector 312 outputs a smaller error function among its two inputs, ie, the first and second hierarchical error functions E1, E2 to the comparator 324 and a next low value detector 314, and generates a control signal indicating to the selector 332 the hierarchical motion vector corresponding to the smaller error function. The next low value detector 314 outputs a smaller error function among its two inputs, ie, the output from the low value detector 312 and the third hierarchical error function E3 to the comparator 326 and the next stage low value detector, and generates a control signal indicating the hierarchical motion vector. corresponding to the smaller error function, which is output therefrom to the selector 334. The last low detector 316 outputs the smaller error function among its two inputs, ie, the output from the previous stage low detector and the last hierarchical error function E4 to the comparator 328, and generates a control signal indicative of the hierarchical motion vector corresponding to the smaller error function, which is output therefrom to the selector 336.
Jeder Komparator 322-328 vergleicht seine zwei Eingaben, d. h. einen vorbestimmten Schwellwert und die ihm zugeführte hierarchische Fehlerfunktion, und erzeugt für den Bewegungsvektorselektor 400 ein logisch hohes oder logisch niedriges Auswahlsignal S1-S4. Das bedeutet, daß jeder Vergleicher ein logisch hohes Auswahlsignal erzeugt, wenn der vorbestimmte Schwellwert größer als die entsprechende hierarchische Fehlerfunktion ist. Sonst erzeugt er für den Bewegungsvektorselektor 400 ein logisch niedriges Auswahlsignal.Each comparator 322-328 compares its two inputs, i.e., a predetermined threshold and the hierarchical error function supplied to it, and generates a logic high or logic low select signal S1-S4 to the motion vector selector 400. That is, each comparator generates a logic high select signal if the predetermined threshold is greater than the corresponding hierarchical error function. Otherwise, it generates a logic low select signal to the motion vector selector 400.
Der Vergleicher 322 vergleicht den vorbestimmten Schwellwert mit der ersten hierarchischen Fehlerfunktion E1 und erzeugt ein logisch hohes Auswahlsignal, wenn der vorbestimmte Schwellwert größer als E1 ist. Sonst erzeugt er für den Bewegungsvektorselektor 400 ein logisch niedriges Auswahlsignal. Auf ähnliche Weise vergleicht jeder Vergleicher 324-328 den vorbestimmten Schwellwert mit der Ausgabe des entsprechenden Niedrigwertdetektors 312-316 und erzeugt ein logisch hohes Auswahlsignal, wenn der vorbestimmte Schwellwert größer als die Ausgabe des entsprechenden Niedrigwertdetektors ist. Sonst erzeugt er für den Bewegungsvektorselektor 400 jeweils ein logisch niedriges Auswahlsignal.The comparator 322 compares the predetermined threshold with the first hierarchical error function E1 and generates a logic high select signal if the predetermined threshold is greater than E1. Otherwise, it generates a logic low select signal for the motion vector selector 400. Similarly, each comparator 324-328 compares the predetermined threshold with the output of the corresponding low detector 312-316 and generates a logic high select signal if the predetermined threshold is greater than the output of the corresponding low detector. Otherwise, it generates a logic low select signal for the motion vector selector 400.
Gemäß der vorliegenden Erfindung werden dann, wenn S1 logisch hoch ist die Auswahlsignale S2-S4 logisch hoch. Wenn S1 logisch niedrig und S2 logisch hoch ist, werden S3-S4 logisch hoch. Mit anderen Worten wird, wenn ein Auswahlsignal, welches einer Hierarchie entspricht, logisch hoch ist, das/die Auswahlsignal(e) welches der niedrigeren Hierarchie entspricht logisch hoch.According to the present invention, when S1 is logic high, the selection signals S2-S4 become logic high. When S1 is logic low and S2 is logic high, S3-S4 logically high. In other words, when a select signal corresponding to a hierarchy is logically high, the select signal(s) corresponding to the lower hierarchy will be logically high.
Jeder Selektor 332-336 wählt in Reaktion auf die von dem jeweiligen Niedrigwertdetektor 312 bis 316 gelieferten Steuersignale einen der zwei in ihn eingegebenen hierarchischen Bewegungsvektoren aus. Das bedeutet, daß der Selektor 332 eine seiner zwei Eingaben, d. h. der erste und zweite hierarchische Bewegungsvektor MV1, MV2 in Reaktion auf das von dem Niedrigwertdetektor 312 gelieferte Steuersignal auswählt, und den ausgewählten Bewegungsvektor an den Selektor 334 und den Bewegungsvektorselektor 400 liefert. Der Selektor 334 wählt eine seiner zwei Eingaben, d. h. die Ausgabe von dem Selektor 332 und der dritte hierarchische Bewegungsvektor MV3 in Reaktion auf das von dem Niedrigwertdetektor 314 gelieferte Steuersignal aus, und liefert den ausgewählten Bewegunsvektor an den Bewegungsvektorselektor 400 und einen Selektor der nächsten Stufe. Der letzte Selektor 336 wählt eine seiner zwei Eingaben, d. h. die Ausgabe von einem Selektor einer vorhergehenden Stufe und der letzte hierarchische Bewegungsvektor MV4 in Reaktion auf das von dem letzten Niedrigwertdetektor 316 erzeugte Steuersignal aus, und liefert den ausgewählten Bewegungsvektor an den Bewegungsvektorselektor 400.Each selector 332-336 selects one of the two hierarchical motion vectors input to it in response to the control signals provided by the respective low level detector 312-316. That is, the selector 332 selects one of its two inputs, i.e., the first and second hierarchical motion vectors MV1, MV2 in response to the control signal provided by the low level detector 312, and supplies the selected motion vector to the selector 334 and the motion vector selector 400. The selector 334 selects one of its two inputs, i.e., the output from the selector 332 and the third hierarchical motion vector MV3 in response to the control signal provided by the low level detector 314, and supplies the selected motion vector to the motion vector selector 400 and a next stage selector. The last selector 336 selects one of its two inputs, i.e., the output from a previous stage selector and the last hierarchical motion vector MV4 in response to the control signal generated by the last low level detector 316, and supplies the selected motion vector to the motion vector selector 400.
Die Auswahlsignale S1-S4 stellen Eingaben für den Bewegungsvektorselektor 400 dar, damit dieser einen der ihm zugeführten Bewegungsvektoren als den Bewegungsvektor für den Verarbeitungsblock auswählt.The selection signals S1-S4 represent inputs to the motion vector selector 400 so that it selects one of the motion vectors supplied to it as the motion vector for the processing block.
Input Digital Video Signal = digitales VideoeingangssignalInput Digital Video Signal = digital video input signal
Frame Memory = BildspeicherFrame Memory = Image Memory
Block Formatter = BlockformatiererBlock Formatter = Block Formatter
Error Function Generator = FehlerfunktionerzeugerError Function Generator = Error Function Generator
Predetermined Threshold = vorbestimmter SchwellwertPredetermined Threshold = predetermined threshold
Small Value Detetector = NiedrigwertdetektorSmall Value Detector = Low Value Detector
Comparator = VergleicherComparator = Comparator
Selector - SelektorSelector - Selector
Motion Vector Selector = Bewegungsvektorselektor,Motion Vector Selector = motion vector selector,
Selected Motion Vector = ausgewählter BewegungsvektorSelected Motion Vector = selected motion vector
From Frame Memory =vom BildspeicherFrom Frame Memory =from frame memory
Search Area Formation = SuchgebietsbildungSearch Area Formation = search area formation
Block Formation = BlockbildungBlock Formation = Block formation
From Block Formatter = vom BlockformatiererFrom Block Formatter = from block formatter
Block Matching = BlockübereinstimmungBlock Matching = Block Match
Minimum Value Detector = MinimalwertdetektorMinimum Value Detector = minimum value detector
Selector = SelektorSelector = Selector
Claims (10)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP95104091A EP0734175B1 (en) | 1995-03-20 | 1995-03-20 | Hierarchical motion vector estimation using multiple block sizes |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69517673D1 DE69517673D1 (en) | 2000-08-03 |
DE69517673T2 true DE69517673T2 (en) | 2000-10-19 |
Family
ID=8219086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1995617673 Expired - Lifetime DE69517673T2 (en) | 1995-03-20 | 1995-03-20 | Hierarchical motion vector estimation with several block sizes |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE69517673T2 (en) |
-
1995
- 1995-03-20 DE DE1995617673 patent/DE69517673T2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69517673D1 (en) | 2000-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19704439C2 (en) | Method and device for motion estimation in a digital video encoder using trajectories | |
DE69803639T2 (en) | Device and method for detecting a motion vector | |
DE69129595T2 (en) | Systems and methods for coding alternating fields in interlaced picture sequences | |
DE69422266T2 (en) | Method, device and circuit for improving motion compensation in digital image coding | |
DE69524235T2 (en) | METHOD AND DEVICE FOR GLOBAL-TO-LOCAL BLOCK MOVEMENT ESTIMATION | |
DE69230115T2 (en) | Evaluation device and method used for a device for the detection of motion vectors | |
DE69523431T2 (en) | Method for determining motion vectors for use in a coding system based on segmentation | |
DE69623330T2 (en) | FEATURE-BASED VIDEO COMPRESSION PROCESS | |
DE69028160T2 (en) | Method for dividing the motion field of an image for encoding a video image | |
DE3874705T2 (en) | METHOD FOR ESTIMATING MOTION WITH SEVERAL PREDICTORS FOR POINTS OF AN ELECTRONIC IMAGE. | |
EP0368151A2 (en) | Method of determining search positions for movement estimation | |
DE19743202B4 (en) | Method for coding a motion vector | |
DE69421158T2 (en) | Motor prediction processor and device | |
DE19618984B4 (en) | Method for motion evaluation in image data and apparatus for carrying out this method | |
DE4442643B4 (en) | Method for estimating motion in a moving image | |
EP0474636B1 (en) | Process for obtaining a decision result for a half-image/full-image data compression process | |
WO2008034715A2 (en) | Method for the compression of data in a video sequence | |
EP0661667A1 (en) | Movement estimation process and apparatus | |
DE10108068A1 (en) | Digital image quality control contour fault viewing technique having two image vector speed calculation and adjacent/nearby pixel comparison with visibility component output relative psychovisual rules. | |
DE69328346T2 (en) | Device for coding digital long-distance image signals | |
DE19717608B4 (en) | Perception error handling method and picture coding apparatus using this method | |
DE102008006928A1 (en) | Frame interpolation device and method | |
DE3751684T2 (en) | Pattern processing | |
DE60207756T2 (en) | IMAGE DATA ACCESS | |
DE68922694T2 (en) | Image motion measurement. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: DAEWOO ELECTRONICS CORP., SEOUL/SOUL, KR |