DE69425896T2 - Method and device for motion vector detection in an image encoder with image decimation - Google Patents
Method and device for motion vector detection in an image encoder with image decimationInfo
- Publication number
- DE69425896T2 DE69425896T2 DE1994625896 DE69425896T DE69425896T2 DE 69425896 T2 DE69425896 T2 DE 69425896T2 DE 1994625896 DE1994625896 DE 1994625896 DE 69425896 T DE69425896 T DE 69425896T DE 69425896 T2 DE69425896 T2 DE 69425896T2
- Authority
- DE
- Germany
- Prior art keywords
- point
- frame
- search
- motion vector
- motion
- 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 - Fee Related
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Kodieren eines Bildsignals; und insbesondere ein Verfahren und eine Vorrichtung zum Schätzen eines Bewegungsvektors in einem Frame-Dezimier-Bildkodierer, der für die Datenkompression eine Frame-Dezimiertechnik zusammen mit einer Bewegungsschätzung und -kompensation auf einer Pixel- zu-Pixel-Basis anwendet.The present invention relates to a method and apparatus for encoding an image signal; and more particularly to a method and apparatus for estimating a motion vector in a frame decimation image encoder that uses a frame decimation technique for data compression together with motion estimation and compensation on a pixel-by-pixel basis.
Wie wohlbekannt ist, kann die Übertragung digitalisierter Bildsignale eine sehr viel höhere Qualität als die Übertragung analoger Signale liefern. Wenn ein eine Sequenz an Bild- "Frames" umfassendes Bildsignal in digitaler Form ausgedrückt wird, wird eine erhebliche Datenmenge für die Übertragung erzeugt, insbesondere in dem Falle eines hochauflösenden Fernsehsystems. Da jedoch die verfügbare Frequenzbandbreite eines herkömmlichen Übertragungskanals beschränkt ist, die erheblichen Mengen digitaler Daten durch die beschränkte Kanalbandbreite zu übertragen, ist es unausweislich, das Volumen der Übertragungsdaten zu komprimieren oder zu reduzieren. Unter verschiedenen Bildkomprimiertechniken ist die sog. Hybridkodiertechnik, welche zeitliche und räumliche Komprimiertechniken zusammen mit einer statistischen Kodiertechnik kombiniert, dafür bekannt, am effektivsten zu sein.As is well known, the transmission of digitized image signals can provide much higher quality than the transmission of analog signals. When an image signal comprising a sequence of image "frames" is expressed in digital form, a significant amount of data is generated for transmission, particularly in the case of a high definition television system. However, since the available frequency bandwidth of a conventional transmission channel is limited to transmit the significant amounts of digital data through the limited channel bandwidth, it is impractical to compress or reduce the volume of the transmission data. Among various image compression techniques, the so-called hybrid coding technique, which combines temporal and spatial compression techniques together with a statistical coding technique, is known to be the most effective.
Die meisten Hybridkodiertechniken wenden eine bewegungskompensierte DPCM (DPCM = "differential pulse code modulation", d. h. Differenzpulscodemodulation), eine zweidimensionale DCT (DCT = "discrete cosine transform", d. h. diskrete Kosinustransformation), eine Quantisierung der DCT-Koeffizienten und eine VLC (VLC = "variable length coding", d. h. Kodierung variabler Länge) an. Die bewegungskompensierte DPCM ist ein Prozeß, bei dem die Bewegung eines Objektes zwischen einem aktuellen Frame und seinem vorhergehenden Frame bestimmt wird, und der aktuelle Frame entsprechend dem Bewegungsfluß des Objektes vorhergesagt wird, um ein Differenzsignal zu erzeugen, das den Unterschied zwischen dem aktuellen Frame und seiner Vorhersage darstellt. Dieses Verfahren ist beispielsweise in Staffan Ericsson, "Fixed and Adaptive Predictors for Hybrid Predictive/Transform Coding", IEEE Transactions on Communications, COM-33, Nr. 12 (Dezember 1985); und in Ninomiya und Ohtsuka, "A Motion-Compensated Interframe Coding Scheme for Television Pictures", IEEE Transactions on Communications, COM-30, Nr. 1 (Januar 1982) beschrieben.Most hybrid coding techniques apply a motion compensated DPCM (differential pulse code modulation), a two-dimensional DCT (discrete cosine transform), a quantization of the DCT coefficients and a VLC (variable length coding). Motion compensated DPCM is a process in which the motion of an object between a current frame and its previous frame is determined and the current frame is predicted according to the motion flow of the object to produce a difference signal representing the difference between the current frame and its prediction. This method is described, for example, in Staffan Ericsson, "Fixed and Adaptive Predictors for Hybrid Predictive/Transform Coding", IEEE Transactions on Communications, COM-33, No. 12 (December 1985); and in Ninomiya and Ohtsuka, "A Motion-Compensated Interframe Coding Scheme for Television Pictures", IEEE Transactions on Communications, COM-30, No. 1 (January 1982).
Genauer gesagt, werden bei der bewegungskompensierten DPCM aktuelle Frame-Daten aus den entsprechenden Daten des vorhergehenden Frames, basierend auf einer Schätzung der Bewegung zwischen dem aktuellen und dem vorhergehenden Frame, vorhergesagt. Eine solche geschätzte Bewegung kann anhand zweidimensionaler Bewegungsvektoren beschrieben werden, welche die Verschiebung von Pixeln zwischen dem vorhergehenden und dem aktuellen Frame beschreiben.More specifically, in motion compensated DPCM, current frame data is predicted from the corresponding data of the previous frame based on an estimate of the motion between the current and previous frames. Such estimated motion can be described using two-dimensional motion vectors that describe the displacement of pixels between the previous and current frames.
Es hat viele Ansätze gegeben, die Verschiebung von Pixeln eines Objektes zu schätzen. Im allgemeinen können diese in zwei Typen klassifiziert werden, d. h. eine Bewegungsschätzung auf einer Block-zu-Block-Basis und einer Pixel-zu-Pixel-Basis.There have been many approaches to estimate the displacement of pixels of an object. In general, these can be classified into two types, i.e., motion estimation on a block-by-block basis and a pixel-by-pixel basis.
Bei der Bewegungsschätzung auf der Block-zu-Block-Basis wird ein Block in einem aktuellen Frame mit Blöcken in dessen vorhergehendem Frame verglichen, bis eine beste Übereinstimmung bestimmt wird. Hieraus kann ein Interframe-Verschiebungsvektor (wie viel sich der Block zwischen den Frames bewegt hat) für den gesamten Block für den zu übertragenden aktuellen Frame geschätzt werden. Bei der Bewegungsschätzung auf einer Block-zu-Block-Basis kann jedoch bei dem Bewegungskompensationsprozeß ein Blockeffekt an den Grenzen eines Blocks auftreten; und es kann zu schlechten Schätzungen führen, falls sich nicht alle Pixel in dem Block auf die gleiche Weise bewegen, wodurch die Gesamtkodiereffizienz vermindert wird.In motion estimation on a block-by-block basis, a block in a current frame is compared with blocks in its previous frame until a best match is determined. From this, an interframe displacement vector (how much the block has moved between frames) can be estimated for the entire block for the current frame to be transmitted. In motion estimation on a block-by-block basis, however, the motion compensation process can introduce a block effect at the boundaries of a block. and it can lead to poor estimates if not all pixels in the block move in the same way, reducing the overall coding efficiency.
Bei Anwendung eines Pixel-zu-Pixel-Ansatzes wird andererseits eine Verschiebung für jeden und für alle Pixel bestimmt. Diese Technik erlaubt eine genauere Schätzung des Pixelwertes und hat die Fähigkeit, Skalierungsänderungen (z. B. Zoomen, eine Bewegung senkrecht zur Bildebene) leichter handzuhaben. Da bei dem Pixel-zu-Pixel-Ansatz jedoch ein Bewegungsvektor bei jedem und bei allen Pixeln bestimmt wird, ist es unmöglich, tatsächlich all die Bewegungsvektoren einem Empfänger zu übertragen. Daher werden dem Empfänger Bewegungsvektoren für einen Satz ausgewählter Pixel, d. h. Merkmalspunkte, übertragen, wobei jeder der Merkmalspunkte als eine Position eines Pixels definiert ist, der seine benachbarten Pixel so repräsentieren kann, daß in dem Empfänger Bewegungsvektoren für Nicht-Merkmalspunkte aus denjenigen für Merkmalspunkte wiedergewonnen werden können. Die vorliegende Erfindung betrifft vorrangig die Bewegungsschätzung unter Verwendung von Merkmalspunkten. In einem Kodierer, der die Bewegungsschätzung, basierend auf Merkmalspunkten, anwendet, wird zuerst eine Anzahl an Merkmalspunkten unter all den in dem vorhergehenden Frame enthaltenen Pixeln ausgewählt. Dann werden Bewegungsvektoren für jeden der ausgewählten Merkmalspunkte bestimmt, wobei jeder der Bewegungsvektoren eine räumliche Verschiebung zwischen einem Merkmalspunkt in dem aktuellen Frame und einem entsprechenden Übereinstimmungspunkt, d. h. einem ähnlichsten Pixel, in dem vorhergehenden Frame ist. Genauer gesagt, wird der Übereinstimmungspunkt für jeden der Merkmalspunkte in einem Suchbereich innerhalb eines Referenzframes gesucht, z. B. einem vorhergehenden Frame, wobei der Suchbereich als ein Bereich mit einer vorbestimmten Fläche definiert ist, welche die Position seines entsprechenden Merkmalspunktes einschließt.On the other hand, when using a pixel-by-pixel approach, a displacement is determined for each and all pixels. This technique allows a more accurate estimation of the pixel value and has the ability to handle scale changes (e.g. zooming, a movement perpendicular to the image plane) more easily. However, since the pixel-by-pixel approach determines a motion vector at each and all pixels, it is impossible to actually transmit all the motion vectors to a receiver. Therefore, motion vectors are transmitted to the receiver for a set of selected pixels, i.e. feature points, where each of the feature points is defined as a position of a pixel that can represent its neighboring pixels such that motion vectors for non-feature points can be recovered from those for feature points in the receiver. The present invention primarily relates to motion estimation using feature points. In an encoder applying motion estimation based on feature points, first a number of feature points are selected from among all the pixels contained in the previous frame. Then motion vectors are determined for each of the selected feature points, where each of the motion vectors is a spatial displacement between a feature point in the current frame and a corresponding match point, i.e., a most similar pixel, in the previous frame. More specifically, the match point for each of the feature points is searched in a search region within a reference frame, e.g., a previous frame, where the search region is defined as a region having a predetermined area enclosing the position of its corresponding feature point.
Eine weitere Komprimierungstechnik, die leicht implementiert werden kann, ist ein Frame-Dezimierverfahren, das die Datenmenge durch Kodieren und Übertragen lediglich ausgewählter Frames des Videobildes und Überspringen oder Dezimieren der verbleibenden, dazwischen vorliegenden Frames vermindert (siehe z. B. "Video Codec for Audiovisual Services at p · 64 kb/s", CCITT Recommendation H.261, CDM XV-R 37-E, International Telegraph and Telephone Consultative Committee (CCITT), August 1990).Another compression technique that can be easily implemented is a frame decimation technique that reduces the amount of data by encoding and transmitting only selected frames of the video image and skipping or decimating the remaining frames in between (see, for example, "Video Codec for Audiovisual Services at p · 64 kb/s", CCITT Recommendation H.261, CDM XV-R 37-E, International Telegraph and Telephone Consultative Committee (CCITT), August 1990).
Gewöhnlich ist die Eingabe an den Bildkodierer ein Bildsignal mit 30 Frames/sek. Die Framerate, die aus dem Überspringen von einem, zwei oder drei Frames zwischen jeweils zwei kodierten Frames resultiert, ist typischerweise 15, 10 bzw. 7,5 Frames/sek.Typically, the input to the image encoder is an image signal at 30 frames/sec. The frame rate resulting from skipping one, two, or three frames between every two encoded frames is typically 15, 10, or 7.5 frames/sec, respectively.
Bei einem herkömmlichen Bildkodierer, der sowohl die Hybridkodier- als auch die Frame-Dezimiertechnik anwendet, werden die ausgewählten Frames des Bildsignals unter Anwendung sowohl von Interframe- als auch Transformations-Kodierverfahren kodiert, und die aus dem Interframekodieren erhaltenen Bewegungsvektoren werden zwischen zwei aufeinanderfolgenden kodierten Frames detektiert. Da einige der Frames übersprungen werden, wird der Bewegungssprung oder die Bewegungsverschiebung zwischen zwei aufeinanderfolgenden kodierten Frames abrupter als diejenige des undezimierten ursprünglichen Bildsignals, was zur Erzeugung größerer Bewegungsvektoren führt. Daher sollte zum Detektieren eines optimalen Bewegungsvektors zwischen zwei kodierten Frames ein größerer Suchbereich in dem vorhergehenden kodierten Frame verwendet werden, wobei dessen Größe von der Framerate der kodierten Frames oder dem Dezimiergrad abhängt. Da die Berechnungskomplexität des Blockvergleichsalgorithmus normalerweise abhängig von der Größe des Suchbereiches ist, kann dem Bildkodierer, der die Frame-Dezimiertechnik anwendet, eine größere Rechenlast zum Schätzen der Bewegungsvektoren auferlegt werden.In a conventional image encoder using both the hybrid coding and frame decimation techniques, the selected frames of the image signal are encoded using both interframe and transform coding methods, and the motion vectors obtained from the interframe coding are detected between two consecutive encoded frames. Since some of the frames are skipped, the motion jump or shift between two consecutive encoded frames becomes more abrupt than that of the undecimated original image signal, resulting in the generation of larger motion vectors. Therefore, to detect an optimal motion vector between two encoded frames, a larger search area should be used in the previous encoded frame, the size of which depends on the frame rate of the encoded frames or the decimation degree. Since the computational complexity of the block matching algorithm is usually dependent on the size of the search area, the image encoder applying the frame decimation technique may be subjected to a larger computational burden for estimating the motion vectors.
Das Dokument IEEE 1993 International Conference on Consumer Electronics, 8, Juni 1993, Rosemont, IL, ISA, Seiten 2-3, J. Nieweglowski et al. "A Novel Video Coding Scheme Based on Temporal Prediction using Digital Image Warping" offenbart ein Verfahren für die zeitliche Vorhersage von Bildsequenzen. In dem vorhergehenden Frame werden Merkmalspixel ausgewählt, die auf einem rechteckförmigen Gitter angeordnet sind. Diese Merkmalspunkte werden mittels einer Blockvergleichstechnik mit Pixeln in dem aktuellen Frame verglichen, um einen Bewegungsvektor für jeden Merkmalspunkt zu ermitteln. Die verbleibenden Pixel in den rechteckförmig geformten Blöcken, die von den Merkmalspunkten gebildet werden, werden mittels eines perspektivischen Transformationsalgorithmus zu den Blöcken übertragen, die von den bewegungskompensierten Merkmalspunkten gebildet werden.The document IEEE 1993 International Conference on Consumer Electronics, 8, June 1993, Rosemont, IL, ISA, pages 2-3, J. Nieweglowski et al. "A Novel Video Coding Scheme Based on Temporal Prediction using Digital Image Warping" discloses a method for temporal prediction of image sequences. In the previous frame, feature pixels are selected arranged on a rectangular grid. These feature points are compared with pixels in the current frame using a block matching technique to determine a motion vector for each feature point. The remaining pixels in the rectangular shaped blocks formed by the feature points are transferred to the blocks formed by the motion compensated feature points using a perspective transformation algorithm.
Das Dokument EP-A-424 026 offenbart ein Bildsignal-Kodierverfahren, bei dem eine Sequenz von sieben aufeinanderfolgenden Frames kodiert wird, indem ein erster Teil dieser Frames über eine Intra-Frame-Kodierung kodiert wird und der verbleibende Teil dieser Frames über eine Inter-Frame-Kodierung kodiert wird. Es werden Bewegungsvektoren für einige Frames bei einer Vorwärtsvorhersage und für einige andere Frames bei einer Rückwärtsvorhersage berechnet. Ferner werden vorhergesagte Frames mit diesen Bewegungsvektoren berechnet und anschließend weiter interpoliert.Document EP-A-424 026 discloses an image signal coding method in which a sequence of seven consecutive frames is encoded by encoding a first part of these frames via intra-frame coding and the remaining part of these frames via inter-frame coding. Motion vectors are calculated for some frames in a forward prediction and for some other frames in a backward prediction. Furthermore, predicted frames are calculated using these motion vectors and then further interpolated.
Das Dokument EP-A-397 402 zeigt ein Bildsignal-Kodierverfahren, das eine Bewegungsschätzung zusammen mit einer Frame- Dezimierung umfaßt.Document EP-A-397 402 shows an image signal coding method comprising motion estimation together with frame decimation.
Das Dokument ICASSP 1991, INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING, Vol. 4, 14. April 1991, Toronto, Ont, CA, Seiten 2712-2716, Sullivan et al. "Motion Compensation for Video compression using Control Grid Interpolation" offenbart ein Bildsignal-Kodierverfahren, das eine Bewegungskompensationstechnik, basierend auf einer Steuerungsgitterinterpolation anwendet.The document ICASSP 1991, INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING, Vol. 4, 14 April 1991, Toronto, Ont, CA, pages 2712-2716, Sullivan et al. "Motion Compensation for Video compression using Control Grid Interpolation" discloses an image signal coding method that applies a motion compensation technique based on control grid interpolation.
Es ist daher ein vorrangiges Ziel der vorliegenden Erfindung, ein verbessertes Verfahren und eine verbesserte Vorrichtung zum Detektieren von Bewegungsvektoren von Merkmalspunkten zwischen zwei kodierten Frames in Mehrfachschritten für die Verwendung in einem Frame-Dezimier-Bildkodierer bereitzustellen, womit die gesamte Berechnungskomplexität des Bildkodierers vermindert wird.It is therefore a primary object of the present invention to provide an improved method and apparatus for detecting motion vectors of feature points between two coded frames in multiple steps for use in a frame decimation image encoder, thereby reducing the overall computational complexity of the image encoder.
Die Erfindung erreicht dieses Ziel mit dem Gegenstand der Ansprüche 1 bzw. 3. Ein bevorzugtes Ausführungsbeispiel der Erfindung ist in dem abhängigen Anspruch 2 beschrieben.The invention achieves this object with the subject matter of claims 1 and 3, respectively. A preferred embodiment of the invention is described in the dependent claim 2.
Die obigen und weitere Ziele und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung bevorzugter Ausführungsbeispiele mit Bezug auf die beigefügte Zeichnung deutlich, in der:The above and other objects and features of the present invention will become apparent from the following description of preferred embodiments with reference to the accompanying drawings, in which:
Fig. 1 ein Blockdiagramm eines Bildkodierers ist, der einen Bewegungsschätzblock der vorliegenden Erfindung verwendet;Fig. 1 is a block diagram of an image encoder using a motion estimation block of the present invention;
Fig. 2A und 2B Unterschiede zwischen dem erfindungsgemäßen Verfahren und den Bewegungsschätztechniken aus dem Stand der Technik darstellen;Fig. 2A and 2B illustrate differences between the inventive method and the prior art motion estimation techniques;
Fig. 3 ein Blockdiagramm des Bewegungsschätzblocks der vorliegenden Erfindung darstellt;Figure 3 is a block diagram of the motion estimation block of the present invention;
Fig. 4 ein Blockdiagramm des in Fig. 1 gezeigten Vorhersageblocks darstellt; undFig. 4 is a block diagram of the prediction block shown in Fig. 1; and
Fig. 5 ein Verfahren zum Detektieren eines Bewegungsvektors für die Nicht-Merkmalspunkte beispielhaft darstellt.Fig. 5 exemplifies a method for detecting a motion vector for the non-feature points.
Mit Bezug auf Fig. 1 ist ein Blockdiagramm eines Bildkodierers gezeigt, der einen Bewegungsschätzblock 126 der vorliegenden Erfindung anwendet. Ein digitales Bildeingangssignal wird einem Frame-Dezimierer 101 und dem Bewegungsschätzblock 126 eingegeben. Bei dem Frame-Dezimierer 101 werden zu kodierende Frames durch Überspringen der dazwischenliegenden Frames mit einer vorbestimmten Frame-Dezimierrate, die den Dezimiergrad darstellt, ausgewählt und einem Subtrahierer 102 eingegeben. Beispielsweise wählt oder verwendet der Frame- Dezimierer 101 jeden zweiten oder jeden dritten Frame des Bildsignals, falls das vorherbestimmte Dezimierverhältnis 2 bzw. 3 ist.Referring to Fig. 1, there is shown a block diagram of an image encoder employing a motion estimation block 126 of the present invention. A digital image input signal is input to a frame decimator 101 and the motion estimation block 126. At the frame decimator 101, frames to be encoded are selected by skipping the intervening frames at a predetermined frame decimation rate representing the decimation degree and input to a subtractor 102. For example, the frame decimator 101 selects or uses every second or every third frame of the image signal if the predetermined decimation ratio is 2 or 3, respectively.
Beim Bewegungsschätzblock 126 werden das aktuelle oder übersprungene Framesignal auf einer Leitung L10 und ein rekonstruiertes vorhergehendes kodiertes Framesignal auf einer Leitung L12 von einem Frame-Speicher 124 verarbeitet, um einen ersten Satz Bewegungsvektoren zu berechnen und zu schätzen, von denen jeder eine Verschiebung zwischen einem Merkmalspunkt des aktuellen Frames und einem am besten passenden Punkt darstellt, der in einem entsprechenden Suchbereich in dem vorhergehenden kodierten Frame enthalten ist.At motion estimation block 126, the current or skipped frame signal on a line L10 and a reconstructed previous encoded frame signal on a line L12 from a frame memory 124 are processed to calculate and estimate a first set of motion vectors, each of which represents a displacement between a feature point of the current frame and a best-matching point contained in a corresponding search area in the previous encoded frame.
Gemäß der vorliegenden Erfindung werden die Bewegungsvektoren zwischen zwei ausgewählten Frames, d. h. dem aktuellen Frame und dem vorhergehenden kodierten Frame, in Mehrfachschritten detektiert, wie nachfolgend mit Bezug auf Fig. 2A und 3 beschrieben wird. In jedem der Schritte wird ein Bewegungsvektor zwischen zwei aufeinanderfolgenden Frames, einschließlich übersprungenen Frames sowie kodierten Frames, detektiert und gespeichert, wobei ein Bewegungsvektor zwischen zwei kodierten Frames bereitgestellt wird, indem die gespeicherten Bewegungsvektoren danach addiert werden.According to the present invention, the motion vectors between two selected frames, i.e., the current frame and the previous encoded frame, are detected in multiple steps as described below with reference to Figs. 2A and 3. In each of the steps, a motion vector between two consecutive frames, including skipped frames as well as encoded frames, is detected and stored, and a motion vector between two encoded frames is provided by adding the stored motion vectors thereafter.
Der Bewegungsvektor auf einer Leitung L20, der von dem Bewegungsschätzblock 126 bereitgestellt wird, wird einem Vorhersageblock 122 und einem Entropiekodierer 107 zugeführt.The motion vector on a line L20 provided by the motion estimation block 126 is fed to a prediction block 122 and an entropy encoder 107.
In Antwort auf den Bewegungsvektor wird bei dem Vorhersageblock 122 ein Vorhersagesignal auf einer Pixel-zu-Pixel-Basis ermittelt, wie mit Bezug auf Fig. 4 beschrieben wird, und dem Subtrahierer 102 und einem Addierer 115 auf einer Leitung L30 bereitgestellt.In response to the motion vector, a prediction signal is determined on a pixel-by-pixel basis at the prediction block 122, as described with reference to Figure 4, and provided to the subtractor 102 and an adder 115 on a line L30.
Das Vorhersagesignal von dem Vorhersageblock 122 wird von dem Signal des aktuellen Frames bei dem Subtrahierer 102 subtrahiert; und die resultierenden Daten, d. h. ein den Differenzpixelwert anzeigendes Fehlersignal, werden einem Bildsignalkodierer 105 eingegeben, wobei ein Satz Fehlersignale in einen Satz quantisierter Transformationskoeffizienten kodiert wird, indem beispielsweise eine diskrete Kosinustransformation (DCT) und irgendein der bekannten Quantisierungsverfahren angewandt werden. Danach werden die quantisierten Transformationskoeffizienten über zwei Signalpfade übertragen: der eine führt zu dem Entropiekodierer 107, bei dem die quantisierten Transformationskoeffizienten zusammen mit dem über die Leitung L20 zugeführten Bewegungsvektor unter Anwendung beispielsweise einer Kombination aus einer Lauflängen- und Variabellängen-Kodiertechnik für deren Übertragung kodiert werden; und der andere führt zu einem Bildsignaldekodierer 113, bei dem die quantisierten Transformationskoeffizienten in ein rekonstruiertes Differenzfehlersignal zurückkonvertiert werden, indem die inverse Quantisierung und die inverse Transformation angewandt werden. Eine Rekonstruktion des Fehlersignals wird benötigt, damit der Kodierer das Verhalten des Dekodierers in einem Empfänger überwachen kann und dabei verhindern kann, daß das rekonstruierte Signal des Dekodierers von dem aktuellen Framesignal divergiert.The prediction signal from the prediction block 122 is subtracted from the current frame signal at the subtractor 102; and the resulting data, i.e. an error signal indicative of the difference pixel value, is input to an image signal encoder 105, where a set of error signals is encoded into a set of quantized transform coefficients using, for example, a discrete cosine transform (DCT) and any of the known quantization techniques. Thereafter, the quantized transform coefficients are transmitted via two signal paths: one leads to the entropy encoder 107, where the quantized transform coefficients are encoded together with the motion vector supplied via the line L20 using, for example, a combination of a run-length and variable-length coding technique for transmission thereof; and the other leads to a picture signal decoder 113, where the quantized transform coefficients are converted back into a reconstructed differential error signal by applying the inverse quantization and the inverse transform. Reconstruction of the error signal is required so that the encoder can monitor the behavior of the decoder in a receiver and thereby prevent the decoder's reconstructed signal from diverging from the current frame signal.
Das rekonstruierte Fehlersignal von dem Bildsignaldekodierer 113 und das Vorhersagesignal von dem Vorhersageblock 122 werden bei dem Addierer 115 kombiniert, um ein rekonstruiertes aktuelles Framesignal zu liefern, das in den FrameSpeicher 124 geschrieben werden soll.The reconstructed error signal from the image signal decoder 113 and the prediction signal from the prediction block 122 are combined at the adder 115 to produce a reconstructed current frame signal to be written into the frame memory 124.
Fig. 2A und 2B stellen schematisch das Bewegungsvektordetektionsverfahren gemäß der vorliegenden Erfindung bzw. das herkömmliche Bewegungsvektordetektionsverfahren dar. Aus Darstellungszwecken ist angenommen worden, daß das Frame-Dezimierverhältnis gleich 3 ist, d. h. zwei Frames werden zwischen dem vorhergehenden kodierten Frame und dem aktuellen zu kodierenden ausgewählten Frame übersprungen. Fig. 2A zeigt eine Prozedur zum Schätzen eines Bewegungsvektors zwischen einem aktuellen Frame F1 und dem vorhergehenden kodierten Frame F4, der in dem Frame-Speicher 124 gespeichert ist, gemäß der vorliegenden Erfindung. Zwei übersprungene Frames F2 und F3 werden in einem Frame-Datenstapel 190 gespeichert, der in Fig. 3 gezeigt ist, welche die Details des in Fig. 1 gezeigten Bewegungsschätzblocks 126 zeigt. Zuerst wird ein Suchbereich SR3 entsprechend einem Suchpunkt SP4 des vorhergehenden kodierten Frames F4 in dessen nachfolgendem übersprungenem Frame F3 bestimmt, wobei der Suchpunkt SP4 einer der Merkmalspunkte des vorhergehenden kodierten Frames F4 ist. Der am besten passende Punkt zu SP4 wird aus dem Suchbereich SR3 ermittelt, und ein Bewegungsvektor MV3 zwischen F4 und F3 bereitgestellt. Danach wird mit dem am besten passenden Punkt SP3 in F3 als neuer Suchpunkt ein entsprechender Suchbereich SR2, der um MV3 von dem Suchbereich SR3 verschoben ist, in dessen nachfolgendem übersprungenem Frame F2 bestimmt. Der am besten passende Punkt des Suchpunktes SP3 wird in SR2 detektiert, und ein Bewegungsvektor MV2 zwischen F3 und F2 bereitgestellt. Auf ähnliche Weise wird ein Bewegungsvektor MV1 zwischen F2 und dem aktuellen Frame F1 detektiert. Der endgültige Bewegungsvektor zwischen dem aktuellen Frame F1 und dem vorhergehenden kodierten Frame F4 ist eine Vektorsumme von MV1, MV2 und MV3, welche die Verschiebung zwischen dem Suchpunkt SP4 in F4 und dem am besten passenden Punkt SP1 in F1 darstellt.2A and 2B schematically illustrate the motion vector detection method according to the present invention and the conventional motion vector detection method, respectively. For illustration purposes, it has been assumed that the frame decimation ratio is equal to 3, i.e., two frames are skipped between the previous encoded frame and the current selected frame to be encoded. Fig. 2A shows a procedure for estimating a motion vector between a current frame F1 and the previous encoded frame F4 stored in the frame memory 124 according to the present invention. Two skipped frames F2 and F3 are stored in a frame data stack 190 shown in Fig. 3, which shows the details of the motion estimation block 126 shown in Fig. 1. First, a search area SR3 corresponding to a search point SP4 of the previous encoded frame F4 is determined in its subsequent skipped frame F3, where the search point SP4 is one of the feature points of the previous encoded frame F4. The best matching point to SP4 is detected from the search area SR3, and a motion vector MV3 is provided between F4 and F3. Thereafter, with the best matching point SP3 in F3 as a new search point, a corresponding search area SR2 shifted by MV3 from the search area SR3 is determined in its subsequent skipped frame F2. The best matching point of the search point SP3 is detected in SR2, and a motion vector MV2 is provided between F3 and F2. Similarly, a motion vector MV1 is detected between F2 and the current frame F1. The final motion vector between the current frame F1 and the previous encoded frame F4 is a vector sum of MV1, MV2 and MV3, which represents the displacement between the search point SP4 in F4 and the best-matching point SP1 in F1.
Der oben beschriebene Prozeß zum Schätzen eines Bewegungsvektors für einen Merkmalspunkt in dem vorhergehenden kodierten Frame wird für all die anderen Merkmalspunkte in dem vorhergehenden kodierten Frame wiederholt.The process described above for estimating a motion vector for a feature point in the previous encoded frame is repeated for all the other feature points in the previous encoded frame.
Fig. 2B zeigt eine Prozedur zum Detektieren eines Bewegungsvektors zwischen einem vorhergehenden kodierten Frame F4 und dem aktuellen Frame F1 unter Anwendung des Bewegungsschätzverfahrens aus dem Stand der Technik. Der am besten passende Punkt zum Suchpunkt SP4 wird direkt in einem Suchbereich in F1 ermittelt. Falls ein Suchbereich mit der gleichen Größe wie diejenige in dem in Fig. 2A dargestellten Verfahren, z. B. SR5, verwendet wird, wird der am besten passende Punkt SP1, der in dem aktuellen Frame F1 durch das Verfahren der Fig. 2A bestimmt wird, außerhalb der Grenze des Suchbereichs SR5 liegen. Daher sollte ein größerer Suchbereich, z. B. SR6, verwendet werden, um einen genaueren Bewegungsvektor zu erhalten. Die Größe der Bewegung zwischen dem aktuellen Frame und dem vorhergehenden kodierten Frame hängt stark von dem Frame- Dezimierverhältnis ab. Daher sollte ein größerer Suchbereich in dem aktuellen Frame proportional zu dem Frame-Dezimierverhältnis verwendet werden, um einen genaueren Bewegungsvektor zu erhalten. Falls ein größerer Suchbereich, z. B. SR6, verwendet wird, um einen genauen Bewegungsvektor zu erhalten, wird die Berechnungskomplexität zum Ermitteln eines am besten passenden Punktes in dem Suchbereich abhängig von der Größe des Suchbereichs ansteigen. Dementsprechend wird das Verfahren der Fig. 2A weniger Berechnungsaufwand als das Verfahren der Fig. 2B auferlegen, außer für die zusätzliche Berechnungszeit, die zum Durchführen der Mehrschrittverarbeitung erforderlich ist.Fig. 2B shows a procedure for detecting a motion vector between a previous encoded frame F4 and the current frame F1 using the prior art motion estimation method. The best matching point to the search point SP4 is directly determined in a search area in F1. If a search area with the same size as that in the method shown in Fig. 2A, e.g. SR5, is used, the best matching point SP1 determined in the current frame F1 by the method of Fig. 2A will be outside the boundary of the search area SR5. Therefore, a larger search area, e.g. SR6, should be used to obtain a more accurate motion vector. The amount of motion between the current frame and the previous encoded frame depends greatly on the frame decimation ratio. Therefore, a larger search area should be used in the current frame in proportion to the frame decimation ratio to obtain a more accurate motion vector. If a larger search area, e.g., SR6, is used to obtain an accurate motion vector, the computational complexity of finding a best-fitting point in the search area will increase depending on the size of the search area. Accordingly, the method of Fig. 2A will impose less computational overhead than the method of Fig. 2B, except for the additional computational time required to perform the multi-step processing.
Mit Bezug auf Fig. 3 ist ein detailliertes Blockdiagramm des in Fig. 1 gezeigten Bewegungsschätzblocks 126 der vorliegenden Erfindung gezeigt.Referring to Fig. 3, a detailed block diagram of the motion estimation block 126 of the present invention shown in Fig. 1 is shown.
Das dem Bewegungsschätzblock 126 auf der Leitung L10 eingegebene Bildsignal wird einem Frame-Datenstapel 190 zugeführt.The image signal input to the motion estimation block 126 on line L10 is fed to a frame data stack 190.
Genauer gesagt, werden die übersprungenen Frames und der aktuelle Frame des Bildsignals dem Frame-Datenstapel 190 zugeführt und dort gespeichert, um von dort einem Bewegungsvektor-Detektierblock 210 bereitgestellt zu werden.More specifically, the skipped frames and the current frame of the image signal are supplied to and stored in the frame data stack 190 to be provided therefrom to a motion vector detection block 210.
Der aus dem Frame-Speicher 124 wiedergewonnene vorhergehende kodierte Frame wird einem Merkmalspunkt-Auswahlblock 200 und dem Bewegungsvektor-Detektierblock 210 über die Leitung L12 eingegeben. Bei dem Merkmalspunkt-Auswahlblock 200 werden eine Anzahl Merkmalspunkte unter den in dem vorhergehenden kodierten Frame enthaltenen Pixeln ausgewählt. Jeder der Merkmalspunkte ist als eine Position eines Pixels definiert, der geeignet ist, seine benachbarten Pixel zu repräsentieren.The previous encoded frame retrieved from the frame memory 124 is input to a feature point selection block 200 and the motion vector detection block 210 via the line L12. At the feature point selection block 200, a number of feature points are selected from among the pixels included in the previous encoded frame. Each of the feature points is defined as a position of a pixel suitable to represent its neighboring pixels.
Jeder der ausgewählten Merkmalspunkte wird einem Merkmalspunkt-Aktualisierblock 220 zugeführt und dort, wie nachfolgend beschrieben, aktualisiert. Der aktualisierte Merkmalspunkt wird dem Bewegungsvektor-Detektierblock 210 als der Suchpunkt zugeführt, wie mit Bezug auf Fig. 2A erläutert ist, um einen Bewegungsvektor für den aktualisierten Merkmalspunkt zu detektieren. Mit dem Verarbeitungsstart ist der aktualisierte Merkmalspunkt gleich dem von dem Merkmalspunkt- Auswahlblock 200 zugeführten Merkmalspunkt. Der Bewegungsvektor-Detektierblock 210 findet den am besten passenden Punkt für den Merkmalspunkt, z. B. den Suchpunkt SP4 in Fig. 2A, in dem Suchbereich SR3 des übersprungenen Frames F3 und bestimmt dabei den Bewegungsvektor MV3 zwischen dem Suchpunkt SP4 und dem am besten passenden Punkt in dem Suchbereich SR3. Es gibt viele Verarbeitungsalgorithmen, um den Bewegungsvektor für den Merkmalspunkt zu detektieren. Einer der Verarbeitungsalgorithmen besteht darin, zuerst eine bestimmte Blockgröße für einen Merkmalspunkt einzustellen und anschließend einen Bewegungsvektor für den Merkmalspunkt zu detektieren, indem einer der wohlbekannten Blockvergleichsalgorithmen angewandt wird.Each of the selected feature points is supplied to a feature point updating block 220 and updated there as described below. The updated feature point is supplied to the motion vector detecting block 210 as the search point, as explained with reference to Fig. 2A, to detect a motion vector for the updated feature point. At the start of processing, the updated feature point is equal to the feature point supplied from the feature point selecting block 200. The motion vector detecting block 210 finds the best matching point for the feature point, e.g., the search point SP4 in Fig. 2A, in the search area SR3 of the skipped frame F3, and thereby determines the motion vector MV3 between the search point SP4 and the best matching point in the search area SR3. There are many processing algorithms to detect the motion vector for the feature point. One of the processing algorithms is to first set a certain block size for a feature point and then detect a motion vector for the feature point by applying one of the well-known block matching algorithms.
Der Bewegungsvektor MV3 wird einem Bewegungsvektor-Akkumulator 230 zugeführt, um dort gespeichert zu werden; und dem Merkmalspunkt-Aktualisierblock 220, wodurch der am besten passende Punkt SP3 als ein neuer, aktualisierter Merkmalspunkt dem Bewegungsvektor-Detektierblock 210 bereitgestellt wird. Bei dem Bewegungsvektor-Detektierblock 210 wird der am besten passende Punkt für einen neuen Suchpunkt, der der neue Merkmalspunkt SP3 in Fig. 2A ist, in dem Suchbereich SR2 des übersprungenen Frames F2 bestimmt, und dadurch der Bewegungsvektor MV2 zwischen dem Suchpunkt SP2 und dem am besten passenden Punkt SP2 in dem Suchbereich SR2 bestimmt. Der Bewegungsvektor MV2 wird dann dem Bewegungsvektor-Akkumulator 230 übersandt, um zu MV3 addiert zu werden, und dem Merkmalspunkt-Aktualisierblock 220 übersandt. Dieser Prozeß zum Detektieren eines Bewegungsvektors und Aktualisieren eines Merkmalspunktes wird zwischen dem übersprungenen Frame F2 und dem aktuellen Frame F1 wiederholt. Durch Akkumulieren der detektierten Bewegungsvektoren, z. B. MV1, MV2 und MV3, stellt der Bewegungsvektor-Akkumulator 230 einen endgültigen Bewegungsvektor, z. B. MV, in Fig. 2B gezeigt, zwischen dem Merkmalspunkt SP4 in dem vorhergehenden kodierten Frame und dem am besten passenden Punkt, z. B. SP1, in dessen entsprechendem Suchbereich, z. B. SR1, innerhalb des aktuellen Frames auf der Leitung L20 bereit. Für all die Merkmalspunkte in dem vorhergehenden kodierten Frame wird der obige Prozeß wiederholt, und dabei dem in Fig. 1 gezeigten Vorhersageblock 122 der erste Satz an Bewegungsvektoren für die Merkmalspunkte bereitgestellt.The motion vector MV3 is supplied to a motion vector accumulator 230 to be stored therein; and to the feature point update block 220, whereby the best matching point SP3 is provided as a new updated feature point to the motion vector detection block 210. At the motion vector detection block 210, the best matching point for a new search point, which is the new feature point SP3 in Fig. 2A, is determined in the search area SR2 of the skipped frame F2, and thereby the motion vector MV2 between the search point SP2 and the best matching point SP2 in the search area SR2 is determined. The motion vector MV2 is then sent to the motion vector accumulator 230 to be added to MV3 and sent to the feature point updating block 220. This process of detecting a motion vector and updating a feature point is repeated between the skipped frame F2 and the current frame F1. By accumulating the detected motion vectors, e.g. For all the feature points in the previous encoded frame, e.g., MV1, MV2, and MV3, the motion vector accumulator 230 provides a final motion vector, e.g., MV, shown in Fig. 2B, between the feature point SP4 in the previous encoded frame and the best matching point, e.g., SP1, in its corresponding search region, e.g., SR1, within the current frame on line L20. For all the feature points in the previous encoded frame, the above process is repeated, thereby providing the first set of motion vectors for the feature points to the prediction block 122 shown in Fig. 1.
Auch wenn die vorliegende Erfindung bezüglich eines Frame- Dezimierverhältnisses von 3 beschrieben worden ist, können unterschiedliche Frame-Dezimierverfahren oder -verhältnisse beim Kodieren eines Bildsignals angewandt werden, und die Bewegungsvektoren können auf ähnliche Weise berechnet werden, wie hier dargestellt worden ist.Although the present invention has been described with respect to a frame decimation ratio of 3, different frame decimation methods or ratios may be used in encoding an image signal and the motion vectors may be calculated in a similar manner as has been presented herein.
Mit Bezug auf Fig. 4 ist ein detailliertes Blockdiagramm des Vorhersageblocks 122 gezeigt. Ein erster Satz Bewegungsvektoren für die Merkmalspunkte wird von dem Bewegungsschätzblock 126 auf der Leitung L20 einem Nicht-Merkmalspunkt-Bewegungsschätzer 214 bereitgestellt. In dem Nicht-Merkmalspunkt-Bewe gungsschätzer 214 wird ein zweiter Satz Bewegungsvektoren für jeden der Nicht-Merkmalspunkte, d. h. Punkte des vorhergehenden kodierten Frames außer den Merkmalspunkten, unter Verwendung des ersten Satzes Bewegungsvektoren für die Merkmalspunkte bestimmt.Referring to Fig. 4, a detailed block diagram of the prediction block 122 is shown. A first set of motion vectors for the feature points is provided from the motion estimation block 126 on line L20 to a non-feature point motion estimator 214. In the non-feature point motion In the motion estimator 214, a second set of motion vectors is determined for each of the non-feature points, ie, points of the previous encoded frame other than the feature points, using the first set of motion vectors for the feature points.
Fig. 5 zeigt ein beispielshaftes Verfahren zum Detektieren eines Bewegungsvektors für einen Nicht-Merkmalspunkt für den Fall, bei dem Merkmalspunkte ungleichmäßig in dem gesamten Frame verteilt sind. Ein Bewegungsvektor für einen mit einem Stern markierten Pixel eines Nicht-Merkmalspunktes wird unter Verwendung der Merkmalspunkte berechnet, die innerhalb einer kreisförmigen Grenze mit einem Radius von dr + da angeordnet sind, wobei da die Entfernung eines nächsten Merkmalspunktes von der mit dem Stern markierten Pixelposition ist, und dr ein vorbestimmter erweiterter Radius zum Einschließen weiterer Merkmalspunkte ist, die bei der Bewegungsvektorberechnung verwendet werden sollen. Falls beispielsweise der nächste Merkmalspunkt zu dem mit dem Stern markierten Pixel "Y" ist und der Merkmalspunkt "X" innerhalb der kreisförmigen Grenze mit dem Radius (da + dr) liegt, wird der Bewegungsvektor (MVX, MVy) für den mit dem Stern markierten Pixel wie folgt berechnet: Fig. 5 shows an exemplary method for detecting a motion vector for a non-feature point for the case where feature points are unevenly distributed throughout the frame. A motion vector for a star-marked pixel of a non-feature point is calculated using the feature points located within a circular boundary with a radius of dr + da, where da is the distance of a nearest feature point from the star-marked pixel position, and dr is a predetermined extended radius for enclosing other feature points to be used in the motion vector calculation. For example, if the nearest feature point to the star-marked pixel is "Y" and the feature point "X" is within the circular boundary with radius (da + dr), the motion vector (MVX, MVy) for the star-marked pixel is calculated as follows:
wobei dx und dy jeweils die Entfernungen der Merkmalspunkte X und Y von der mit dem Stern markierten Pixelposition sind;where dx and dy are the distances of the feature points X and Y from the pixel position marked with the star, respectively;
und (MVx, MVy)x und (MVx, MVy)y jeweils die Bewegungsvektoren für die Merkmalspunkte sind.and (MVx, MVy)x and (MVx, MVy)y are the motion vectors for the feature points, respectively.
Mit erneutem Bezug auf Fig. 4 wird der bestimmte zweite Satz Bewegungsvektoren für Nicht-Merkmalspunkte einem Pixel-zu- Pixel-Vorhersager 216 bereitgestellt, wobei jeder Wert der Pixel, die in einem vorhergesagten aktuellen Frame enthalten sein sollen, mit beiden Sätzen an Bewegungsvektoren bestimmt wird.Referring again to Figure 4, the determined second set of motion vectors for non-feature points is provided to a pixel-to-pixel predictor 216, where each value of the pixels to be included in a predicted current frame is determined using both sets of motion vectors.
Claims (3)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP94120950A EP0720383B1 (en) | 1994-12-30 | 1994-12-30 | Method and apparatus for detecting motion vectors in a frame decimating video encoder |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69425896D1 DE69425896D1 (en) | 2000-10-19 |
DE69425896T2 true DE69425896T2 (en) | 2001-01-11 |
Family
ID=8216584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1994625896 Expired - Fee Related DE69425896T2 (en) | 1994-12-30 | 1994-12-30 | Method and device for motion vector detection in an image encoder with image decimation |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE69425896T2 (en) |
-
1994
- 1994-12-30 DE DE1994625896 patent/DE69425896T2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69425896D1 (en) | 2000-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69525525T2 (en) | Image processing system using pixel-to-pixel motion estimation and image decimation | |
DE69417480T2 (en) | Determination of motion vectors in a video encoder with image decimation | |
DE69523340T2 (en) | METHOD AND DEVICE FOR ENCODING A VIDEO SIGNAL USING A MOTION ESTIMATION WITH CHARACTERISTIC POINTS | |
DE69636189T2 (en) | Method and apparatus for coding and decoding a video signal using a motion estimation with characteristic points | |
DE69123705T2 (en) | Method for the compression of moving image signals according to the interlaced method | |
DE69824554T2 (en) | METHOD AND ARRANGEMENT FOR PRODUCING A STILL IMAGE WITH HIGH RESOLUTION | |
DE69313692T2 (en) | Coding and decoding for video compression with automatic field / image motion compensation on the sub-pixel level | |
DE69834902T2 (en) | MOTION COMPENSATED PREDICTIVE PICTURE CODING AND DECODING | |
DE69418525T2 (en) | Image signal coding with high effectiveness | |
DE602004002455T2 (en) | Motion vector estimation through adaptive temporal prediction | |
DE69530336T2 (en) | Motion compensation for interlaced digital video signals | |
DE60014444T2 (en) | METHOD AND DEVICE FOR MOTOR ESTIMATION USING NEIGHBORHOOD BLOCKS | |
DE69224250T2 (en) | Derivation and use of motion vectors in a differential pulse code modulation system | |
DE3856536T2 (en) | Coding of data that is represented like a multidimensional matrix | |
DE69131438T2 (en) | Adaptive motion compensation for digital television | |
EP0309669B1 (en) | Method for scenery model aided image data reduction for digital television signals | |
DE69129595T2 (en) | Systems and methods for coding alternating fields in interlaced picture sequences | |
DE69232063T2 (en) | Adaptive motion compensation with multiple motion compensators | |
DE19704439C2 (en) | Method and device for motion estimation in a digital video encoder using trajectories | |
DE60319239T2 (en) | MOTION ESTIMATION WITH WEIGHTED FORECAST | |
DE69421837T2 (en) | Video encoders and decoders | |
EP0359094B1 (en) | System for transmitting a picture signal with a high temporal and spatial resolution | |
DE69738264T2 (en) | Video encoding and video decoding device | |
DE69133024T2 (en) | System and method for coding video signals | |
DE69323156T2 (en) | Image data compression / decompression system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |