WO1998021894A1 - Verfahren zur bewegtbilddatenkompression und kodiervorrichtung zur durchführung des verfahrens - Google Patents

Verfahren zur bewegtbilddatenkompression und kodiervorrichtung zur durchführung des verfahrens Download PDF

Info

Publication number
WO1998021894A1
WO1998021894A1 PCT/DE1997/002715 DE9702715W WO9821894A1 WO 1998021894 A1 WO1998021894 A1 WO 1998021894A1 DE 9702715 W DE9702715 W DE 9702715W WO 9821894 A1 WO9821894 A1 WO 9821894A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
motion vector
reference frame
video
determined
Prior art date
Application number
PCT/DE1997/002715
Other languages
English (en)
French (fr)
Inventor
Stephan Wenger
Original Assignee
Teles Ag Informationstechnologien
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Teles Ag Informationstechnologien filed Critical Teles Ag Informationstechnologien
Publication of WO1998021894A1 publication Critical patent/WO1998021894A1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the invention relates to a method for moving image data compression according to the preamble of claim 1 and a coding device for performing the method.
  • the international standards for the exchange of moving images of the MPEG family as well as ITU-T H.261 and H.263 include several methods for compressing video data in digital form.
  • a method is known in which a frame is divided into macroblocks and it is examined which shift of the macroblocks takes place from frame to frame. The result of this motion estimation is expressed by a motion vector and this is communicated to the recipient.
  • each macroblock is first compared with the spatially corresponding macroblock of a reference frame for time t-1.
  • the reference frame is created by decoding the encoded, previous frame. If there are significant differences between the macroblocks, it is determined whether the new macroblock of the frame under consideration is composed of spatially shifted macroblocks of the Can determine reference frames. At the same time, it is checked whether the pixel values differentiate between a considered macroblock and the corresponding macroblock of the reference frame. Differences that occur are additionally coded and transmitted as change information.
  • the encoded image is decoded again within the encoder and used as a reference frame for the next frame read by the camera.
  • the known compression method for reducing the temporal redundancy between successive images is associated with considerable coding times, especially since the motion vector search is very computationally and time-consuming.
  • the motion vector search for a new image can only begin after after. an encoding of the previous picture, this was decoded again to form a reference frame.
  • the latency in the encoder is usually at least two full frames.
  • the minimum latency remains at twice the available frame rate. For example, if an encoder can only encode ten frames per second, the minimum latency is 200 ms.
  • the motion vector search takes up a lot of computing time compared to the other tasks of an encoder. For a typical video conference video signal with little movement, this is Computing time typically 70% of the total computing time required. In film sequences with camera pans, the computing time increases up to 95%.
  • the present invention has for its object to provide a method for moving image data compression and a coding device for performing the method, which are characterized by a low latency of the individual frames in the encoder and a high frame rate in the coding enable.
  • the motion vectors are no longer calculated solely on the basis of a reference image generated in the encoder by coding and decoding. Instead, the last, not yet encoded camera image is used as the basis for calculating the motion vectors. Since the approximation motion vectors calculated here may not correspond exactly to the motion vector which is "correct" according to the known standard method, after the approximation motion vectors have been calculated, a fine search is carried out on the reference question generated by coding and decoding the previous image. The maximum Vector length of the motion vector fine search can be kept an order of magnitude smaller than in the known method, as a result of which the computing effort can be reduced by two orders of magnitude.
  • the solution according to the invention enables a much faster calculation of the motion vectors and thereby reduces the delay time in the encoder. This makes it possible to achieve higher frame rates when coding the video data and / or higher coding qualities compared to known methods. The quality of the moving image transmission is thereby improved overall.
  • a comparison is preferably made between the macroblocks of a frame read in by the video camera and the macroblocks, the previous, unprocessed reference frame, already during the reading in of the new frame.
  • each new frame is buffered in order to serve as a reference frame for the next frame.
  • the calculation of the approximation motion vectors therefore continues when a new frame is read in.
  • a motion vector search can only begin after the previous frame has been encoded and decoded again.
  • the compressed video data are read into a buffer and read out of it again at a constant bit rate. If the available bandwidth of the transmission path or the required computing capacity changes, the encoder is fed back in such a way that the number of compressed frames is reduced and / or the information losses occurring during coding are increased. This prevents the buffer from overflowing.
  • a macro block of image information is shifted against a large number of motion vectors to be tested in each case.
  • To determine whether a tested motion vector is the "correct" vector for a macroblock under consideration usually either the sum of the amounts or the sum of the squares of the deviations between the pixel values of the new macroblock and those of the macroblock of the reference image shifted by the motion vector to be tested used.
  • the threshold from which a motion vector is recognized as "correct" and the search process is terminated, it is preferably adaptively adapted to the bandwidth situation and, in the case of a software implementation of the encoder, to the processor load.
  • the motion vector search is carried out by testing various test vectors.
  • the macroblocks considered in the method according to the invention preferably have a size of 8 8 or 16 x 16 pixels.
  • the maximum length of the motion vector is preferably between 16 and 48 pixels.
  • the method according to the invention can basically be used for macroblocks of any size and for any maximum length of the motion vector.
  • the change information for each “macro block” of the reference frame is determined for each macro block.
  • the difference image determined (but not the motion vectors) is encoded with loss and sent to the receiver.
  • a 2-dimensional discrete cosine transformation is carried out on the difference image.
  • the determined matrix elements are quantized and weighted, which reduces the fine structure in the image, but also significantly reduces the amount of data.
  • Figure 1 a schematic representation of a known system for the transmission of moving images
  • Figure la a representation of individual components of a known coding device according to ITU-T recommendation H.263;
  • Figure 2 is a schematic representation of a coding device according to the invention.
  • Figure 3a the upper left corner of a video image Ft read in by a camera at time t with a highlighted macroblock
  • Figure 3b the upper left corner of a video image F - ⁇ - i read by a camera at time t-1, in which, in addition to the macroblock at time t, the corresponding macroblock is shown at time t-1;
  • Figure 4 the upper left corner of a video image F't-1 at time t-1 after encoding and decoding the picture, in which, in addition to the macroblocks of Figures 3a and 3b, the "correct" corresponding macroblock is shown at time t-1 and
  • Figure 5 a representation of the individual components of a coding device according to the invention.
  • FIG. 1 shows a system for the transmission of video signals known in the prior art, in which the bit rate is reduced in accordance with the known international standards.
  • a video signal is generated in a video camera 1 in a known manner.
  • the video signal contains the respective luminance and chrominance values of the individual pixels Video image.
  • the analog signal is sampled and digitized in a digitizer 2. Low-pass filtering may be carried out beforehand.
  • Low-pass filtering may be carried out beforehand.
  • For transmission of the video images via the ISDN telephone network for example in the context of video telephony, it is necessary to considerably reduce the very high bit rate of up to 400 Mbit / s that arises when digitizing the analog video signal.
  • a chrominance undersampling takes place in a preprocessing unit 3, that is to say the color difference components U and V of the chrominance signal are transmitted with a lower frequency than the luminance component Y.
  • bit data stream is interframed in a coding device 4.
  • the temporal redundancy in successive video images hereinafter also referred to as frames, is reduced.
  • the coding device 4 has an encoder 41, a decoder 42, a variable run-length encoder 43 and a buffer 44.
  • the bit rate-reduced digital video signal in the encoder 4 is sent via a telecommunication connection 6 to the receiver, where it is decoded in a decoding device 7 and displayed on a screen 8.
  • the video signal is preferably transmitted via an ISDN line with bandwidths between 40 kbit / s and 366 kbit / s. However, the transmission can also be packet-switched via the Internet or intranets with sufficient bandwidth or on any other data network.
  • the frame coming from the camera at time t is subdivided into macro blocks with a size of 16 ⁇ 16 pixels.
  • the shift of corresponding macroblocks from image to image is determined.
  • each of the macro blocks of a frame is compared with the spatially corresponding macro block of a reference frame.
  • the reference frame is made available at the output of decoder 42 and is generated by decoding the encoded previous frame.
  • the advantage of choosing such a reference frame is that the frame present at the output of decoder 42 is identical to the frame received at receiver 8.
  • the shift of a macroblock in relation to the "actual" image received by the receiver is therefore determined.
  • the new macro block can be determined from spatially shifted macro blocks of the reference frame.
  • the displacement between corresponding macroblocks of the new frame and the reference frame is expressed by a motion vector of a certain direction and length.
  • the methods for determining the correct motion vector are known per se. For the test whether a tested motion vector is the "correct" vector for the macroblock under consideration, either the sum or the sum of the squares of the deviations between the pixel values of the new macroblock and those of the macroblock of the reference image shifted by the motion vector to be tested is considered and searched for a minimum of this sum.
  • the maximum length of the motion vector depends on the standard used and is usually (+ -16 / + - 16), currently maximum (+ -48 / + - 48) pixels. If there is no shift of a considered macroblock from picture to picture, the motion vector is equal to (0.0).
  • the change information between a macro block of the frame under consideration and the corresponding ("correct") macro block of the reference frame is determined as a further measure for reducing the temporal redundancy in the encoder 41, that is to say the respective pixel values are compared.
  • the difference image undergoes a two-dimensional discrete cosine transformation in a manner known per se. This is followed by quantization and weighting of the matrix elements of the discrete cosine transformation, with the matrix elements below a certain size being set to the value 0, which is associated with a reduction in the fine structure in the image and means lossy coding, but due to the subsequent Huffman -Coding saves significant bandwidth.
  • the quantized matrix of the discrete cosine transformation is read out and the corresponding bit sequence together with the bit sequence for the motion vectors is fed to the variable run length encoder 43.
  • This is followed by the buffer 44, from which the data are read out at a constant bit rate.
  • the number of frames encoded in the encoder 41 is reduced, i.e. individual frames coming from the camera 1 are not encoded and not transmitted to the recipient.
  • the input bit rate of the buffer drops and the buffer inventory increases off again.
  • only the quantization of the coefficients of the discrete cosine transformation is coarsened.
  • FIG. 1 For a better understanding of the prior art, the individual components of the encoder 41 and the decoder 42 of the coding device 4 are shown in FIG. The representation corresponds to ITU-T recommendation H.263.
  • the coding device has a transformation unit T, a quantization unit Q, an inverse quantization unit Q -1 , an inverse transformation unit T -1 , a motion vector determination unit P with video memory, a coding control unit CC (Coding Control) and two switches 401, 402 on.
  • the transformation unit T there is a two-dimensional discrete cosine transformation of the individual macroblocks of a frame and in the subsequent quantization unit Q, the matrix elements of the discrete cosine transformation are quantized and weighted, as described with reference to FIG. 1.
  • a frame coded in this way is firstly supplied to a video multiplex coder via a line q.
  • the coded frame is decoded by means of the inverse quantization unit Q -1 and the inverse transformation unit T " 1 and fed to the motion vector determination unit P as a reference frame.
  • the reference frame thus represents a coded frame and then decoded again.
  • the motion vector determination unit also becomes The frame following the frame under consideration is supplied directly, ie without coding, via a line 403.
  • By comparing the reference frame with the subsequent frame as described with reference to FIG Shifting corresponding macroblocks from picture to picture expresses and is led via a line v to the video multiplex coder. It is necessary for the reference frame to be fully calculated before a new motion vector search can begin.
  • the coded and then decoded frame is further fed back via a line 404 from the unit P to the input of the switch 401 to form a difference image, as symbolically indicated by the minus sign.
  • the difference image contains the change information between the macro blocks of the new frame (video in) and the corresponding macro blocks of the reference frame coming from the unit P.
  • the difference image then undergoes a two-dimensional discrete cosine transformation in the transformation unit T and the quantization unit Q and, after subsequent decoding, forms the next reference frame for the unit P.
  • the coding control unit CC receives information about the buffer state from the buffer 44 (not shown in FIG. 1 a). Depending on the buffer status, the coding control unit CC has three control options.
  • the transformation unit T is informed of the change information between the macro blocks of a new frame and the corresponding macro blocks of the reference frame.
  • a full screen i.e. the entire information of a frame in the Units T and Q transformed. This is required at regular intervals to prevent the real and encoded images from drifting apart.
  • the coding control unit CC sets a flag on a line p.
  • the coding control unit CC can control the accuracy of the quantization via a line 406.
  • the corresponding control information is also transmitted to the video multiplex coder via a line qz (quantizer indication).
  • the lines p, t, qz, q, v are combined to form a data and signal bus and fed to the video multiplex coder which is assigned to the variable run length encoder 43.
  • the data are fed from the variable run length encoder 43 to the adjoining buffer 44, from which they are read out at a constant bit rate (cf. FIG. 1).
  • FIG. 2 schematically shows an encoder 410 according to the invention. It is pointed out that the functional units shown do not necessarily also exist in reality. The individual components of the encoder 410 can optionally be implemented in hardware, in software, on a video chip and / or in the CPU of the system, for example a PC.
  • the encoder 410 has storage means 411 in which the previous image Ft-i arriving from the camera is stored without this having previously been encoded. On the basis of the last camera image F -i, the motion vectors for the individual macroblocks of the frame F-j- are calculated in a first method step. This is shown schematically in FIGS. 3a and 3b.
  • FIGS. 3a, 3b show the upper left corner of a video image that consists of individual pixels 10.
  • the frame F- ⁇ is shown with a macro block 11.
  • the corresponding macroblock of the reference frame F-t-i is sought for this macroblock 11.
  • the macroblock 11 is shown with only 4 x 4 pixels.
  • the macro block is actually 16 x 16 or 8 x 8 pixels in size.
  • the image information (auto) shown in the macroblock is also only to be understood schematically.
  • the "correct" motion vector V is now searched for in the reference frame F - ⁇ - i, which represents the previous, unprocessed image coming from the camera.
  • F - ⁇ - i represents the previous, unprocessed image coming from the camera.
  • FIG. 3b shows the reference frame F -imt the corresponding, "correct" macroblock 12, which has the greatest agreement in the image information with the macroblock 11 of the frame Ft, which is also shown in FIG. 3b for better clarity.
  • a motion vector is considered to be the "correct” vector if the sum of the amounts or the sum of the squares of the deviations between the pixel values of the new macro block 11 and those of the macro block 12 shifted by the motion vector V to be tested is minimal.
  • the threshold from which a motion vector is recognized as "correct” and the search process is terminated is adaptively adapted to the bandwidth situation and, if appropriate, the processor load.
  • the calculation of the motion vector V begins as soon as the frame Ft is read in from the video camera 1. There is no need to wait until the coding and decoding process for the previous picture has been completed. As a result, the delay time in the encoder 4 is reduced. With a maximum length of the motion vector of + -48 pixels and a macro block size of 16 x 16 pixels, the motion vector search can begin for the first time after reading in the first 112 lines of the frame.
  • the motion vector V calculated on the basis of the reference image Ft-i does not necessarily correspond exactly to the motion vector which would be "correct” according to the known methods of the MPEG family and the ITU-T H.261 and H.263 standards. This is disadvantageous in that the decoded frame F'- 1 is present at the receiver 8 and should therefore be made the basis for the motion vector search.
  • a motion vector fine search is carried out on the basis of the reference picture F't-i present at the output of the decoder 42, which represents the coded and then decoded previous frame Ft-i.
  • the maximum vector length can be kept one order of magnitude smaller during the fine search, which reduces the computation effort by a total of two orders of magnitude.
  • the fine search is the previously determined proximity motion vector V is used as a basis.
  • the search for the "correct" corresponding macroblock 13 is therefore started immediately with the macroblock 12 corresponding to macroblock 12 of the reference frame Ft-i spatial. Based on this, the "correct" macroblock and the corresponding "correct” motion vector V are determined.
  • a spiral search is preferably carried out due to the small maximum vector length required and due to the better results.
  • the change between the macro block 13 of the reference frame F't-i and the macro block 11 of the frame Ft is calculated in a DCT device 413 and the difference signal is subjected to a discrete cosine transformation. This is done in a manner known per se, so that there is no need to go into this in detail.
  • FIG. 5 shows the coding device 410 according to the invention in a representation based on the representation in FIG.
  • a memory 411 and an approximation motion vector determination unit 414 are provided.
  • Ft-i is rather 411 buffered (delay 1 frame). This is preferably implemented by an alternating frame buffer exchange.
  • the proximity motion vector determining unit 414 is supplied with a newly arriving frame Ft via a line 416 and the previous frame Ft-i stored in the memory 411 via a line 417. As described with reference to FIGS. 3a, 3b, the proximity motion vector determination unit 414 uses these two frames to determine the proximity motion vectors.
  • the determined proximity motion vectors are fed via a line 415 to the coding control unit CC and via this to the further coding units T, Q, T -1 , Q -1 , P (coding loop), in particular the motion vector determination unit P, which detects the motion vector Performs fine search and the determined "correct" motion vectors V on line v to the video multiplex coder.
  • the coding control unit CC determines the depth with which the motion vector search is carried out.
  • the approximation motion vectors obtained are used as described in FIG. 4 as estimation vectors for the motion vector fine search which takes place on the "real" reference frame F't-1. As a result, the effort in the actual motion vector search algorithm within the coding loop is kept low.
  • the motion vector search is carried out in a simple data flow architecture in a video front-end or video accelerator chip. This eliminates the complex handshaking of the decoded reference frame with this chip.
  • the rough search for the approximation motion vector Tor V is implemented on an accelerator chip, but the searches are carried out in software on the main processor of the system. Due to the new method for calculating the motion vector V, the computational effort for the main processor in relation to the motion vector search is reduced by at least a factor of 10. In a typical video conference environment, the effort for the motion vector search is only 1.6% instead of around 70% according to the status of the technique. This enables higher coding qualities even with software-based coding systems.
  • the accelerator chip part can, for example, be integrated into video-> PCI bridges due to the simple data flow architecture.
  • the main memory of a PC or a comparable computer is used as the storage means 411.
  • the information of the reference frame Ft-i reaches the encoder 410 (Unified Memory Architecture (UMA)) via a data bus.
  • UMA Unified Memory Architecture
  • the invention is not limited in its implementation 'of the foregoing embodiments. Rather, a number of variants are conceivable which make use of the invention even with fundamentally different types.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Die Erfindung betrifft ein Verfahren und eine Kodiervorrichtung zur Bewegtbilddatenkompression, bei denen von einer Videokamera kommende Frames (Ft, Ft-1) in Makroblöcke unterteilt werden und zu jedem Makroblock eines Frames durch Vergleich mit Makroblöcken eines zeitlich früher liegenden Referenzframes ein Bewegungsvektor ermittelt wird. Erfingungsgemäß wird als Referenzframe (Ft-1) zunächst das vorangegangene von der Videokamera kommende, unbearbeitete Bild verwendet und auf der Basis dieses Referenzframes (Ft-1) zu jedem Makroblock ein Näherungs-Bewegungsvektor (V) ermittelt. Anschließend erfolgt ausgehend von dem ermittelten Näherungs-Bewegungsvektor (V) eine Bewegungsvektor-Feinsuche in einem weiteren Referenzframe (F't-1), das durch Dekodieren des kodierten vorangegangenen Bildes (Ft-1) erzeugt wird. Die Erfindung ermöglicht eine Bewegtbilddatenkompression, die sich durch eine geringe Latenzzeit der einzelnen Frames im Kodierer auszeichnet und eine hohe Framerate bei der Kodierung ermöglicht.

Description

Verfahren zur Bewegtbilddatenkompression und Kodiervorrichtung zur Durchführung des Verfahrens
Gegenstand der Erfindung
Die Erfindung betrifft ein Verfahren zur Bewegtbilddatenkompression nach der Oberbegriff des Anspruchs 1 und eine Kodiervorrichtung zur Durchführung des Verfahrens.
Hintergrund der Erfindung
Die internationalen Standards zum Austausch von Bewegtbildern der MPEG-Familie sowie ITU-T H.261 und H.263 umfassen mehrere Verfahren zur Kompression von in digitaler Form vorliegender Videodaten. Zur Reduktion der zeitlichen Redundanz aufeinanderfolgender Videobilder (Frames) ist ein Verfahren bekannt, bei dem ein Frame in Makroblöcke aufgeteilt und untersucht wird, welche Verschiebung der Makroblöcke von Frame zu Frame erfolgt. Das Ergebnis dieser Bewegungsschätzung wird durch einen Bewegungsvektor ausgedrückt und dieser dem Empfänger mitgeteilt.
Im einzelnen wird bei einem zum Zeitpunkt t von einer Videokamera kommenden Frame jeder Makroblock zunächst mit dem spatial korrespondierenden Makroblock eines Referenzframes für den Zeitpunkt t-1 verglichen. Das Referenzframe entsteht durch Dekodierung des kodierten, vorangegangenen Frames. Bei signifikanten Unterschieden zwischen den Makroblöcken wird ermittelt, ob der neue Makroblock des betrachteten Frames sich aus spatial verschobenen Makroblöcken des Referenzframes ermitteln läßt. Gleichzeitig wird überprüft, ob die Pixelwerte zwischen einem betrachteten Makroblock und dem korrespondieren Makroblock des Referenzframes differenzieren. Auftretende Differenzen werden als Ände- rungsinformation zusätzlich codiert und übertragen.
Das kodierte Bild wird innerhalb des Kodierers wieder dekodiert und als Referenzframe für das nächste, von der Kamera eingelesene Frame verwendet.
Das bekannte Kompressionsverfahren zur Reduktion der zeitlichen Redundanz zwischen aufeinanderfolgenden Bildern ist mit erheblichen Kodierungszeiten verbunden, insbesondere da die Bewegungsvektorsuche sehr rechen- und zeitintensiv ist. Auch kann zu einem neuen Bild die Bewegungsvektorsuche erst beginnen, nachdem nach . einer Kodierung des vorangehenden Bildes dieses zur Bildung eines Referenzframes wieder dekodiert wurde.
Üblicherweise beträgt die Latenzzeit im Kodierer mindestens zwei volle Frames. Für den Fall, daß etwa aufgrund einer begrenzt zur Verfügung stehenden Bandbreite bei der Übertragung des komprimierten Videodatenstroms oder aufgrund fehlender Rechengeschwindigkeit nicht die volle Framerate der Videokamera kodiert werden kann, so bleibt die minimale Latenzzeit bei der doppelten zur Verfügung stehenden Framerate. Wenn ein Kodierer beispielsweise nur zehn Frames pro Sekunde kodieren kann, so beträgt die minimale Latenzzeit 200 ms.
Die Bewegungsvektorsuche beansprucht bei dem derzeit eingesetzten Algorithmen gemessen an den anderen Aufgaben eines Kodierers sehr viel Rechenzeit. Bei einem typischen Video- konferenz-Videosignal mit wenig Bewegung beträgt diese Rechenzeit typischerweise 70 % der gesamten erforderlichen Rechenzeit. Bei Filmsequenzen mit Kameraschwenks steigt die Rechenzeit auf bis zu 95 %.
Aufgabe der Erfindung
Ausgehend von diesem .Stand der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein Verfahren zur Bewegtbilddatenkompression sowie eine Kodiervorrichtung zur Durchführung des Verfahrens zur Verfügung zu stellen, die sich durch eine geringe Latenzzeit der einzelnen Frames im Kodierer auszeichnen und eine hohe Framerate bei der Kodierung ermöglichen.
Zusammenfassung der Erfindung
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 und durch eine Kodiervorrichtung mit den Merkmalen des Anspruch 11 gelöst. Bevorzugte und vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Gemäß der erfindungsgemäßen Lösung werden die Bewegungsvektoren nicht mehr allein auf der Basis eines im Kodierer durch Kodieren und Dekodieren erzeugten Referenzbildes berechnet. Stattdessen wird als Basis für die Berechnung der Bewegungsvektoren zunächst das letzte, noch nicht kodierte Kamerabild verwendet. Da die dabei berechneten Nä- herungs-Bewegungsvektoren möglicherweise nicht exakt dem Bewegungsvektor entsprechen, der nach dem bekannten standardgemäßen Verfahren "korrekt" ist, wird nach Berechnung der Näherungs-Bewegungsvektoren eine Feinsuche auf dem durch Kodieren und Dekodieren des vorangegangenen Bildes erzeugten Referenzfra es durchgeführt. Dabei kann die maximale Vektorlänge der Bewegungsvektor-Feinsuche um eine Größenordnung geringer gehalten werden als bei dem bekannten Verfahren, wodurch sich der Rechenaufwand um zwei Größenordnungen verringern läßt.
Die erfindungsgemäße Lösung ermöglicht eine wesentlich schnellere Berechnung der Bewegungsvektoren und verringert dadurch die Verzögerungszeit im Kodierer. Damit ist es möglich, gegenüber bekannten Verfahren höhere Frameraten bei der Kodierung der Videodaten und/oder höhere Kodierqualitäten zu verwirklichen. Die Qualität der Bewegtbildübertragung wird dadurch insgesamt verbessert.
Bevorzugt erfolgt ein Vergleich zwischen den Makroblöcken eines von der Videokamera eingelesenen Frames und den Makroblöcken, des vorangegangenen, unbearbeiteten Referenzframes bereits während des Einlesens des neuen Frames. Hierzu wird jedes neue Frame zwischengespeichert , um für das nächstfolgende Frame als Referenzframe zu dienen. Die Berechnung der Näherungs-Bewegungsvektoren setzt somit noch bei Einlesen eines neuen Frames ein. Bei dem bekannten Verfahren kann eine Bewegungsvektorsuche erst beginnen, nachdem das vorherige Frame kodiert und wieder dekodiert ist.
Wenn man Makroblöcke einer Größe von 16 x 16 Pixel verwendet und die maximale Länge des Bewegungsvektors auf 48 Pixel festlegt, so kann schon nach Einlesen von 112 Zeilen des Videobildes eine vollständige Näherungs-Bewegungsvektor- suche beginnen. Da bei der Suche nach einem Bewegungsvektor jedoch zunächst Bewegungsvektoren mit einer geringen Länge getestet werden, kann die Näherungs-Bewegungsvektorsuche sogar noch eher beginnen. Bei einer geringen zur Verfügung stehenden Bandbreite des Übertragungsweges zum Empfänger sowie bei sehr hohen Rechenleistungen werden nicht alle von der Videokamera kommenden Frames komprimiert, sondern einzelne Frames ausgelassen. Auch in diesem Fall wird jedoch eine "Grobsuche" durchgeführt. Die bei der "Grobsuche" ermittelten Näherungs-Bewe- gungsvektoren werden , summiert und bei dem nächstfolgenden kompriminerte Frame als Ausgangsvektor für die Bewegungsvektor-Feinsuche verwendet. Dies führt bei bis zu drei ausgelassenen Frames noch zu guten Ergebnissen, d.h. die maximale Bewegungsvektorlänge kann bei der Feinsuche klein gehalten werden.
Um eine konstante Übertragung der Daten zum Empfänger zu gewährleisten, werden die komprimierten Videodaten in einen Puffer eingelesen und aus diesem mit konstanter Bitrate wieder ausgelesen. Sofern sich die zur Verfügung stehende Bandbreite des Übertragungsweges oder die erforderliche Rechenkapazität ändert, erfolgt eine Rückkopplung auf den Kodierer derart, daß die Zahl der komprimierten Frames verringert und/oder die bei der Kodierung auftretendenen Informationsverluste erhöht werden. Auf diese Weise wird ein Überlaufen des Puffers verhindert.
Zur Bewegungsvektorsuche wird ein Makroblock Bildinformation gegen eine Vielzahl von jeweils zu testenden Bewegungsvektoren verschoben. Um festzustellen, ob ein getesteter Bewegungsvektor der "richtige" Vektor für einen betrachteten Makroblock ist, wird üblicherweise entweder die Summe der Beträge oder die Summe der Quadrate der Abweichungen zwischen den Pixelwerten des neuen Makroblocks und denen des um den zu testenden Bewegungsvektor verschobenen Makroblocks des Referenzbildes benutzt. Die Schwelle, ab der ein Bewegungsvektor als "richtig" erkannt und der Suchvorgang abgebrochen wird, wird bevorzugt adaptiv der Bandbreitesituation sowie im Falle einer Softwareimplementierung des Kodierers auch der Prozessorlast angepaßt. Die Bewegungsvektorsuche erfolgt durch Testen verschiedener Testvektoren.
Die bei dem erfindungsgemäßen Verfahren betrachteten Makroblöcke weisen bevorzugt eine Größe von 8 8 oder von 16 x 16 Pixel auf. Die maximale Länge des Bewegungsvektors liegt bevorzugt zwischen 16 und 48 Pixel. Jedoch wird darauf hingewiesen, daß das erfindungsgemäße Verfahren grundsätzlich bei Makroblöcken beliebiger Größe und bei einer beliebigen maximalen Länge des Bewegungsvektors anwendbar ist.
Gemäß den bekannten internationalen Standards wird zusätzlich zum Bewegungsvektor für jeden Makroblock die Änderungs- information gegenüber dem "passenden" Makroblock des Referenzframes ermittelt. Das dabei ermittelte Differenzbild (nicht jedoch die Bewegungsvektoren) wird verlustbehaftet kodiert und zum Empfänger gesandt. Hierzu wird an dem Differenzbild eine 2-dimensionale diskrete Cosinus-Tranformation durchgeführt. Die ermittelten Matrixelemente werden quanti- siert und gewichtet, wodurch zwar die Feinstruktur im Bild gesenkt, aber auch das Datenaufkommen deutlich reduziert wird.
Beschreibung eines Ausführungsbeispiels
Die Erfindung wird nachfolgend unter Bezugnahme auf die Figuren der Zeichnung an einem Ausführungsbeispiel näher erläutert. Es zeigen
Figur 1 - eine schematische Darstellung eines bekannten Systems zur Übertragung von Bewegtbildern; Figur la - eine Darstellung einzelner Komponenten einer bekannten Kodiervorrichtung gemäß der ITU-T Empfehlung H.263;
Figur 2 - eine schematische Darstellung einer erfindungsgemäßen Kodiervorrichtung;
Figur 3a - die linke obere Ecke eines von einer Kamera eingelesenen Videobildes Ft zum Zeitpunkt t mit einem hervorgehobenen Makroblock;
Figur 3b - die linke obere Ecke eines von einer Kamera eingelesenen Videobildes F-^-i zum Zeitpunkt t-1, bei dem neben dem Makroblock zum Zeitpunkt t der korrespondierende Makroblock zum Zeitpunkt t-1 dargestellt ist;
Figur 4 - die linke obere Ecke eines Videobildes F't-1 zum Zeitpunkt t-1 nach Kodieren und Dekodieren des Bildes, bei dem neben den Makroblöcken der Figuren 3a und 3b der "korrekte" korrespondierende Makroblock zum Zeitpunkt t-1 dargestellt ist und
Figur 5 - eine Darstellung der einzelnen Komponenten einer erfindungsgemäßen Kodiervorrichtung .
Figur 1 zeigt ein im Stand der Technik bekanntes System zur Übertragung von Videosignalen, bei dem eine Bitraten-Reduktion nach den bekannten internationalen Standards erfolgt. Ein Videosignal wird in einer Videokamera 1 in bekannter Weise erzeugt. Das Videosignal enthält die jeweiligen Luminanz- und Chrominanzwerte der einzelnen Pixel eines Videobildes. In einem Digitalisierer 2 wird das analoge Signal abgetastet und digitalisiert. Zuvor erfolgt gegebenenfalls eine Tiefpaßfilterung. Für eine Übertragung der Videobilder über das ISDN-Telefonnetz, beispielsweise im Rahmen der Bildtelefonie, ist es erforderlich, die bei der Digitalisierung des analogen Videosignals entstehende sehr hohe Bitrate von bis, zu 400 Mbit/s ganz erheblich zu reduzieren.
In einer Vorverarbeitungseinheit 3 erfolgt eine Chrominanzunterabtastung, das heißt die Farbdifferenzkomponenten U und V des Chrominanzsignals werden mit geringerer Häufigkeit übertragen als die Luminanzkomponente Y.
Anschließend erfolgt in einer Kodiervorrichtung 4 eine Interframe-Kodierung des Bitdatenstro s . Hierbei wird die zeitliche Redundanz in aufeinanderfolgenden Videobildern, im folgenden auch Frames genannt, reduziert.
Die Kodiervorrichtung 4 weist einen Kodierer 41, einen Dekodierer 42, einen variablen Lauflängenkodierer 43 und einen Puffer 44 auf. Das im Kodierer 4 bitratenreduzierte digitale Videosignal wird über eine Telekommunikationsverbindung 6 zum Empfänger gesendet, wo es in einer Dekodiervorrichtung 7 dekodiert und auf einem Bildschirm 8 dargestellt wird. Die Übertragung des Videosignals erfolgt dabei bevorzugt über eine ISDN-Leitung mit Bandbreiten zwischen 40 kbit/s und 366 kbit/s. Die Übertragung kann jedoch auch paketvermittelt über das Internet oder Intranets mit ausreichender Bandbreite oder auf beliebigen anderen Datennetzen erfolgen. Im Kodierer 41 wird das zum Zeitpunkt t von der Kamera kommende Frame in Makroblöcke einer Größe von 16 x 16 Pixel unterteilt. Zur Reduktion der zeitlichen Redundanz aufeinanderfolgender Frames wird die Verschiebung korrespondierender Makroblöcke von Bild zu Bild festgestellt. Hierzu wird jeder der Makroblöcke eines Frames mit dem spatial korrespondierenden Makroblock eines Referenzframes verglichen. Der Referenzframe wird am Ausgang des Dekodierers 42 zur Verfügung gestellt und durch Dekodierung des kodierten vorangegangenen Frames erzeugt. Der Vorteil in der Wahl eines derartigen Referenzframes liegt darin, daß das am Ausgang des Dekodierers 42 vorliegende Frame identisch mit dem beim Empfänger 8 empfangenen Frame ist. Es wird daher die Verschiebung eines Makroblocks in Bezug auf das "tatsächliche" vom Empfänger empfangene Bild ermittelt.
Sofern bei einem Vergleich eines Makroblocks eines neuen Frames mit dem spatial korrespondierenden Makroblock des Referenzframes signifikante Unterschiede auftreten, wird ermittelt, ob der neue Makroblock sich aus spatial verschobenen Makroblöcken des Referenzframes ermitteln läßt. Die Verschiebung zwischen korrespondierenden Makroblöcken des neuen Frames und des Referenzframes wird durch einen Bewegungsvektor einer bestimmten Richtung und Länge ausgedrückt.
Die Verfahren zur Bestimmung des richtigen Bewegungsvektors sind an sich bekannt. Für den Test, ob ein getesteter Bewegungsvektor der "richtige" Vektor für den betrachteten Makroblock ist, wird üblicherweise entweder die Summe oder die Summe der Quadrate der Abweichungen zwischen den Pixelwerten des neuen Makroblocks und denen des um den zu testenden Bewegungsvektor verschobenen Makroblocks des Referenzbildes betrachtet und ein Minimum dieser Summe gesucht. Die maximale Länge des Bewegungsvektors hängt von dem verwendeten Standard ab und beträgt üblicherweise (+-16/+-16) , maximal derzeit (+-48/+-48) Pixel. Sofern keine Verschiebung eines betrachteten Makroblocks von Bild zu Bild auftritt, ist der Bewegungsvektor gleich (0,0).
Zusätzlich zur Bestimmung eines Bewegungsvektors wird als weitere Maßnahme zur Reduktion der zeitlichen Redundanz im Kodierer 41 die Änderungsinformation zwischen einem Makroblock des betrachteten Frames und dem korrespondierenden ("richtigen") Makroblock des Referenzframes festgestellt, das heißt es werden die jeweiligen Pixelwerte verglichen. Das Differenzbild erfährt in an sich bekannter Weise eine zweidimensionale Diskrete Cosinus-Transformation. Daran schließt sich eine Quantisierung und Gewichtung der Matrixelemente der diskreten Cosinus-Transformation an, wobei die Matrixelemente unterhalb einer bestimmten Größe auf den Wert 0 gesetzt werden, was mit einer Verminderung der Feinstruktur im Bild einhergeht und eine verlustbehaftete Kodierung bedeutet, allerdings durch die anschließende Huffman-Codierung signifikant Bandbreite spart.
Die quantisierte Matrix der diskreten Cosinus-Transformation wird ausgelesen und die entsprechende Bitfolge zusammen mit der Bitfolge für die Bewegungsvektoren dem variablen Lauflängenkodierer 43 zugeführt. Daran schließt sich der Puffer 44 an, aus dem die Daten mit konstanter Bitrate ausgelesen werden. Durch eine durch den Pfeil 9 angedeutete Rückkopplung zwischen Puffer 44 und Kodierer 41 wird für den Fall, daß der Puffer 44 überzulaufen droht, die Anzahl der im Kodierer 41 kodierten Frames verringert, das heißt es werden einzelne von der Kamera 1 kommende Frames nicht kodiert und nicht zum Empfänger übertragen. Hierdurch fällt die Eingangsbitrate des Puffers und der Pufferbestand nimmt wieder ab. Alternativ wird lediglich die Quantisierung der Koeffizienten der diskreten Cosinus-Transformation vergröbert.
Zu einem besseren Verständnis des Standes der Technik sind in Figur la die einzelnen Komponenten des Kodierers 41 und des Dekodierers 42 der Kodiervorrichtung 4 dargestellt. Die Darstellung entspricht dabei der ITU-T Empfehlung H.263.
Die Kodiervorrichtung weist eine Transformationseinheit T, eine Quantisierungseinheit Q, eine inverse Quantisierungsei- nheit Q-1, eine inverse Transformationseinheit T-1, eine Be- wegungsvektor-Ermittlungseinheit P mit Videospeicher, eine Kodierkontrolleinheit CC (Coding Control) und zwei Schalter 401, 402 auf. In der Transformationseinheit T erfolgt eine zweidimensionale diskrete Cosinus-Transformation der einzelnen Makroblöcke eines Frames und in der darauf folgenden Quantisierungseinheit Q eine Quantisierung und Gewichtung der Matrixelemente der diskreten Cosinus-Transformation, wie in Bezug auf Figur 1 beschrieben.
Ein auf diese Weise kodiertes Frame wird zum einen über eine Leitung q einem Video Multiplex Coder zugeführt. Zum anderen wird das kodierte Frame mittels der inversen Quantisierungseinheit Q-1 und der inversen Transformationseinheit T"1 dekodiert und der Bewegungsvektor-Ermittlungseinheit P als Referenzframe zugeführt. Das Referenzframe stellt also ein kodiertes und danach wieder dekodiertes Frame dar. Weiter wird der Bewegungsvektor-Ermittlungseinheit über eine Leitung 403 das dem betrachteten Frame nachfolgende Frame unmittelbar, d.h. ohne eine Kodierung zugeführt. Durch einen Vergleich des Referenzframes mit dem nachfolgenden Frame wird, wie in Bezug auf Figur 1 beschrieben, für jeden Maktroblock ein Bewegungsvektor ermittelt, der die Verschiebung korrespondierender Makroblöcke von Bild zu Bild ausdrückt und über eine Leitung v zum Video Multiplex Coder geleitet wird. Dabei ist es erforderlich, daß das Referenzframe bereits vollständig berechnet ist, bevor eine neue Bewegungsvektorsuche beginnen kann.
Das kodierte und anschließend dekodierte Frame wird des weiteren über eine Leitung 404 von der Einheit P vor den Eingang des Schalters 401 zur Bildung eines Differenzbildes zurückgeführt, wie durch das Minus-Zeichen symbolisch angedeutet ist. Das Differenzbild enthält die Änderungsin- formationen zwischen den Makroblöcken des neuen Frame (Video in) und den korrespondierenden Makroblöcken des von der Einheit P kommenden Referenzframe. Das Differenzbild erfährt dann in der Transformationseinheit T und der Quantisierungseinheit Q wiederum eine zweidimensionale diskrete Cosinus-Transformation und bildet nach anschließender Dekodierung das nächste Referenzframe für die Einheit P.
Über die Kodierkontrolleinheit CC ist es möglich, den Kodiervorgang zu regeln. Als einzige Regelungsinformation erhält die Kodierkontrolleinheit CC dabei von dem Puffer 44 (in Fig. la nicht dargestellt) Informationen über den Pufferzustand. In Abhängigkeit vom Pufferzustand besitzt die Kodierkontrolleinheit CC drei Regelungsmöglichkeiten.
Zum einen kann sie über eine Leitung 405 den Schalter 401 zwischen einer Intra- (obere Position) und einer Inter- (untere Position) Stellung hin- und herschalten. In der Inter-Stellung wird der Transformationseinheit T die Ände- rungsinformation zwischen den Makroblöcken eines neuen Frame und den entsprechenden Makroblöcken des Referenzframe mitgeteilt. In der Intra-Stellung wird dagegen ein Vollbild, also die gesamte Information eines Frames in den Einheiten T und Q transformiert. Dies ist in regelmäßigen Abständen erforderlich, um ein Auseinanderdriften zwischen den Folgen realer und kodierter Bilder zu verhindern. Je nachdem, ob ein Intra-Frame oder ein Inter-Fra e kodiert wird, setzt die Kodierkontrolleinheit CC ein Flag auf einer Leitung p.
Des weiteren kann die Kodierkontrolleinheit CC über eine Leitung 406 die Genauigkeit der Quantisierung steuern. Die entsprechenden Steuerinformationen werden über eine Leitung qz (quantizer indication) ebenfalls zum Video Multiplex Coder übertragen.
Schließlich besteht die Möglichkeit, bei einem Überlaufen des Puffers ein Frame überhaupt nicht zu übertragen. Für diesen Fall wird auf einer Leitung t ein Flag entsprechend gesetzt.
Die Leitungen p, t, qz , q, v werden zu einem Daten- und Signalbus zusammengefaßt und dem Video Multiplex Coder zugeführt, der dem variablen Lauflängenkodierer 43 zugeordnet ist. Vom variablen Lauflängenkodierer 43 werden die Daten dem sich daran anschließenden Puffer 44 zugeführt, aus dem sie mit konstanter Bitrate ausgelesen werden (vgl. Figur 1) .
Diese Zusammenhänge sind hier nur angedeutet und im einzelnen in der ITU-T Empfehlung H.263 beschrieben. Ähnliche Strukturen finden sich in der ITU-T Empfehlung H.261 und dem MPEG-Standard. Figur 2 zeigt schematisch einen erfindungsgemäßen Kodierer 410. Es wird darauf hingewiesen, daß die dargestellten funktioneilen Einheiten nicht notwendigerweise auch real existieren. Die Verwirklichung der einzelnen Komponenten des Kodierers 410 kann wahlweise in Hardware, in Software, auf einem Video-Chip und/oder in der CPU des Systems, etwa eines PC's erfolgen.
Der Kodierer 410 weist Speichermittel 411 auf, in denen das vorherige, von der Kamera ankommende Bild Ft-i gespeichert wird, ohne daß dieses zuvor eine Kodierung erfährt. Auf der Basis des letzten Kamerabildes F -i werden in einem ersten Verfahrensschritt die Bewegungsvektoren zu den einzelnen Makroblöcken des Frames F-j- berechnet. Dies ist in den Figuren 3a und 3b schematisch dargestellt.
Die Figuren 3a, 3b zeigen die linke obere Ecke eines Videobildes, das aus einzelnen Pixeln 10 besteht. In Figur 3a ist das betrachtete Frame F-^ mit einem Makroblock 11 dargestellt. Zu diesem Makroblock 11 wird der korrespondierende Makroblock des Referenzframes F-t-i gesucht. Der Makroblock 11 ist der Anschaulichkeit halber mit lediglich 4 x 4 Pixeln dargestellt. Tatsächlich weist der Makroblock eine Größe von 16 x 16 oder 8 x 8 Pixeln auf. Die im Makroblock dargestellte Bildinformation (Auto) ist ebenfalls lediglich schematisch aufzufassen.
In einer Vergleichseinrichtung 412 des Kodierers 410 wird nun im Referenzframe F-^-i, der das vorangegangene, unbearbeitete, von der Kamera kommende Bild darstellt, der "richtige" Bewegungsvektor V gesucht. Es bieten sich hierzu zum einen eine hierarchische Suche (hierarchical search) und zum anderen eine spirale Suche (spiral search) an. Beide Verfahren sind an sich bekannt, so daß nicht im Detail auf diese Verfahren eingegangen wird (vgl. etwa Krumpa, Gerd: Algorithmen zur Bewegungsschätzung im Videotelephon, Dissertation, TU Chemnitz, 1991) .
Es sei lediglich erwähnt, daß bei der hierarchischen Suche ausgehend vom dem spatial mit dem Makroblock 11 des Frames F-t korrespondierenden Makroblock des Frames F-^-i zunächst alle Bewegungsvektoren der Länge n = 1 mit den Richtungen 0°, 45°, 90°, ..., 315° getestet werden. Ist keiner der Vektoren der gesuchte Bewegungsvektor, so wird die Länge des Vektors verdoppelt und die Suche wiederholt, bis n gleich der maximalen Bewegungsvektorlänge ist. Um das "Best Match" erfolgt eine zusätzliche Suche.
Bei der spiralen Suche werden ausgehend vom dem spatial mit dem Makroblock 11 des Frames Ft korrespondierenden Makroblock des Frames F-^-i alle denkbaren Vektoren der Länge n = 1 überprüft. Ist der Vektor nicht gefunden, so wird n erhöht und die Suche beginnt von neuem. Dieses Verfahren macht sich zunutze, daß kleine Vektoren statistisch häufiger vorkommen.
Figur 3b zeigt das Referenzframe F -i m t dem korrespondierenden, "richtigen" Makroblock 12, der die meiste Übereinstimmung in der Bildinformation mit dem Makroblock 11 des Frames Ft aufweist, der zur besseren Anschaulichkeit auch in Figur 3b dargestellt ist. Wie bereits ausgeführt, wird ein Bewegungsvektor als der "richtige" Vektor angesehen, wenn die Summe der Beträge oder die Summe der Quadrate der Abweichungen zwischen den Pixelwerten des neuen Makroblocks 11 und denen des um den zu testenden Bewegungsvektor V verschobenen Makroblocks 12 minimal ist. Die Schwelle, ab der ein Bewegungsvektor als "richtig" erkannt und der Suchvorgang abgebrochen wird, wird adaptiv der Bandbreitesituation und ggf. der Prozessor-Last angepaßt.
Die Berechnung des Bewegungsvektors V beginnt bereits während des Einlesens des Frames Ft von der Videokamera 1. Es muß nicht abgewartet werden, bis der Kodierungs- und Dekodierungsvorgang zu dem vorangegangenen Bild abgeschlossen ist. Hierdurch wird die Verzögerungszeit im Kodierer 4 herabgesetzt. Bei einer maximalen Länge des Bewegungsvektors von +-48 Pixel und einer Makroblockgröße von 16 x 16 Pixel kann die Bewegungsvektorsuche erstmalig nach Einlesen der ersten 112 Zeilen des Frames beginnen.
Der auf der Basis des Referenzbildes Ft-i berechnete Bewegungsvektor V entspricht allerdings nicht notwendig exakt dem Bewegungsvektor , der nach den bekannten Verfahren der MPEG-Familie sowie der Standards ITU-T H.261 und H.263 "korrekt" wäre. Dies ist insofern nachteilig, als beim Empfänger 8 das dekodierte Frame F't-l vorliegt und dieses daher zur Grundlage für die Bewegungsvektorsuche gemacht werden sollte.
In einem zweiten Verfahrensschritt wird daher nachfolgend in der Vergleichseinrichtung 412 eine Bewegungsvektor-Fein- suche auf der Basis des am Ausgang des Dekodierers 42 vorliegenden Referenzbildes F't-i durchgeführt, das das kodierte und anschließend dekodierte vorausgehende Frame Ft-i darstellt.
Wie in Figur 4 dargestellt, kann die maximale Vektorlänge bei der Feinsuche jedoch um eine Größenordnung geringer gehalten werden, wodurch sich der Rechenaufwand um insgesamt zwei Größenordnungen verringert. So wird der Feinsuche der zuvor ermittelte Näherungs-Bewegungsvektor V zugrundegelegt. Im Frame F't-i wird also die Suche nach dem "korrekten" korrespondierenden Makroblock 13 sogleich bei dem dem Makroblock 12 des Referenzframes Ft-i spatial korrespondierenden Makroblock begonnen. Hiervon ausgehend wird der "korrekte" Makroblock und der entsprechende "korrekte" Bewegungsvektor V ermittelt.
Bevorzugt wird bei der Feinsuche aufgrund der nur kleinen erforderlichen maximalen Vektorlänge und aufgrund der besseren Ergebnisse eine spirale Suche (spiral search) vorgenommen.
Nach Ermittlung des Bewegungsvektors V wird in einer DCT-Einrichtung 413 die Änderung zwischen dem Makroblock 13 des Referenzframes F't-i und dem Makroblock 11 des Frames Ft berechnet und das Differenzsignal einer diskreten Cosinus-Transformation unterzogen. Dies erfolgt in an sich bekannter Weise, so daß hierauf nicht näher eingegangen werden muß.
Sofern nicht alle von der Videokamera kommenden Frames komprimiert, sondern einzelne Frames ausgelassen werden, wird dennoch eine "Grobsuche" durchgeführt und werden die bei der "Grobsuche" ermittelten Näherungs-Bewegungsvektoren V summiert und bei dem nächstfolgenden kompriminerte Frame als Ausgangsvektor für die Bewegungsvektor-Feinsuche verwendet.
Figur 5 zeigt die erfindungsgemäße Kodiervorrichtung 410 in einer Darstellung, die sich an der Darstellung der Figur la orientiert. Zusätzlich zu den in Figur la dargestellten Einheiten sind ein Speicher 411 und eine Näherungs-Bewegu- ngsvektor-Ermittlungseinheit 414 vorgesehen. In dem Spei- eher 411 wird das vorangegangene Frame Ft-i zwischengespei- chert (delay 1 Frame) . Dies wird bevorzugt durch einen alternierenden Framebuffer-Tausch implementiert.
Der Näherungs-Bewegungsvektor-Ermittlungseinheit 414 wird über eine Leitung 416 ein neu einkommendes Frame Ft und über eine Leitung 417 das im Speicher 411 gespeicherte vorangegangene Frame Ft-i zugeführt. Wie anhand der Figuren 3a, 3b beschrieben, erfolgt in der Näherungs-Bewegungsve- ktor-Ermittlungseinheit 414 anhand dieser beiden Frames eine Ermittlung der Näherungs-Bewegungsvektoren. Die ermittelten Näherungs-Bewegungsvektoren werden über eine Leitung 415 der Kodierkontrolleinheit CC und über diese den weiteren Kodiereinheiten T, Q, T-1, Q-1, P (Coding-Loop) , insbesondere der Bewegungsvektor-Ermittlungseinheit P zugeführt, die die Bewegungsvektor-Feinsuche durchführt und die ermittelten "korrekten" Bewegungsvektoren V auf der Leitung v an den Video Multiplex Coder leitet. Die Kodierkontrolleinheit CC legt dabei fest, mit welcher Tiefe die Bewegungsvektorsuche erfolgt.
Die erhaltenen Näherungs-Bewegungsvektoren werden wie in Fig. 4 beschrieben als Schätzvektoren für die Bewegungsvektor-Feinsuche verwendet, die auf dem "echten" Referenzframe F't-l erfolgt. Dadurch wird der Aufwand im eigentlichen Bewegungsvektor-Suchalgorithmus innerhalb der Coding-Loop gering gehalten.
Die Bewegungsvektorsuche wird in einer Ausgestaltung der Erfindung in einer einfachen Dataflow-Architektur in einem Video-Frontend- oder Video-Accelerator-Chip durchgeführt. Hierdurch kann das komplexe Handshaking des dekodierten Referenzframes mit diesem Chip entfallen. Alternativ wird lediglich die Grobsuche nach dem Näherungs-Bewegungsvek- tor V auf einem Accelerator-Chip verwirklicht, die Nachsuche hingegen in Software auf dem Hauptprozessor des Systems. Aufgrund des neuen Verfahrens zur Berechnung des Bewegungsvektors V reduziert sich der Rechenaufwand für den Hauptprozessor in Bezug auf die Bewegungsvektorsuche um mindestens den Faktor 10. Bei einer typischen Videokonferenzumgebung beträgt der Aufwand für die Bewegungsvektorsuche damit lediglich 1,6 % statt rund 70 % gemäß dem Stand der Technik. Dies ermöglicht höhere Kodierqualitäten auch bei Software-basierten Kodierungssystemen.
Das Accelerator-Chipteil kann zum Beispiel aufgrund der einfachen Data-Flow-Architektur in Video->PCI-Bridges integriert werden.
Als Speichermittel 411 wird in einem Ausführungsbeispiel (nicht dargestellt) der Hauptspeicher eines PC oder eines vergleichbaren Rechners verwendet. Die Information des Referenzframes Ft-i gelangt dabei über einen Datenbus zum Kodierer 410 (Unified Memory Architecture (UMA) ) .
Die Erfindung beschränkt sich in ihrer Ausführung' nicht auf die vorstehend angegebenen Ausführungsbeispiele. Vielmehr sind eine Anzahl von Varianten denkbar, welche von der Erfindung auch bei grundsätzlich anders gearteten Ausführungen Gebrauch machen.
* * * * *

Claims

Ansprüche
Verfahren zur Bewegtbilddatenkompression, bei dem von einer Videokamera, oder einer anderen Quelle kommende Frames in Makroblöcke mit N mal M Pixeln unterteilt werden und zu jedem Makroblock eines Frames durch Vergleich mit Makroblöcken eines zeitlich früher liegenden Referenzframes ein Bewegungsvektor ermittelt wird, der die Richtung und die Länge der Verschiebung eines Makroblocks in Bezug auf das Referenzframe angibt,
dadurch gekennzeichnet, daß
a) als Referenzframe zunächst ein von der Videokamera kommendes, unbearbeitetes Frame (Ft-i) verwendet und auf der Basis dieses Referenzframes (Ft-i) zu jedem Makroblock (11) ein Näherungs-Bewegungsvektor (V) ermittelt wird und
b) anschließend ausgehend von dem ermittelten Näherungs- Bewegungsvektor (V) eine Bewegungsvektor-Feinsuche in einem weiteren Referenzframe (F't-i) erfolgt, das durch Dekodieren des kodierten vorherigen Frames (Ft-i) erzeugt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zusätzlich zum Bewegungsvektor (V) für jeden Makroblock (11) die Änderungsinformation gegenüber dem korrespondierenden Makroblock (13) des Referenzframes (F't-l) ermittelt wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Änderungsinformation verlustbehaftet kodiert wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß bezüglich der Änderungsinformation zu jedem Makroblock eine Diskrete Cosinus-Transformation vorgenommen und die dabei ermittelten Koeffizienten mit einer Gewichtungsma- trix bewertet werden.
Verfahren nach mindestens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß ein Vergleich zwischen den Makroblöcken (11) eines Frames (Ft) und den Makroblöcken (12) des vorangegangenen, unbearbeiteten Referenzframes (Ft-i) bereits während des Einlesens des Frames (Ft) von der Kamera (1) beginnt.
Verfahren nach mindestens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß die kodierten Daten vor ihrer Übertragung an einen Empfänger in einen Puffer (44) eingelesen und bei einem verzögerten Auslesen der Videodaten aus dem Puffer (44) nur einzelne von der Kamera kommende Frames kodiert werden und/oder die Kodierungsqualität verringert wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß im Falle des Auslassens der Kodierung einzelner Frames die Näherungs-Bewegungsvektoren (V) summiert und bei dem nächstfolgenden komprimierten Frame als Ausgangsvektor für die Bewegungsvektor-Feinsuche verwendet werden.
Verfahren nach mindestens einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Schwelle, ab der ein Bewegungsvektor (V) bzw. ein Näherungs-Bewegungsvektor (V) als korrekt angesehen wird, adaptiv der Bandbrei- tesituation des Übertragungswegs und der Last des verwendeten Prozessors angepaßt wird.
9. Verfahren nach mindestens einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die maximale Länge des Bewegungsvektors zwischen 4 und 48 Pixel beträgt.
10. Verfahren nach mindestens einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Ermittlung eines Näherungs-Bewegungsvektors (V) im ersten Referenzframe (Ft-i) in einem eigenen Videochip erfolgt, während die anschließende Feinsuche im zweiten Referenzframe (F't-l) auf einem Hauptprozessor des Systems erfolgt.
11. Kodiervorrichtung zur Durchführung des Verfahrens nach Anspruch 1, gekennzeichnet durch
a) Speichermittel (411) zum Speichern eines unbearbeiteten, direkt von einer Videokamera (1) kommenden Frames
(Ft-l) /
b) einen Dekodierer (42) zum Dekodieren eines kodierten Frames und
c) einen Kodierer (410) mit Mittel (412) zum Berechnen eines Näherungs-Bewegungsvektors (V) auf der Basis des in den Speichermitteln (411) gespeicherten Referenzframes (Ft-i) sowie mit Mitteln (412) zum Berechnen eines Bewegungsvektors (V) auf der Basis der ermittelten Näherungs-Bewegungsvektoren (V) und dem durch Dekodieren des kodierten vorherigen Frames erzeugten Referenzframe (F't-i) •
12. Kodiervorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß das Speichermittel (411) der Hauptspeicher eines PC oder eines vergleichbaren Rechners ist und die Information des Referenzframes (Ft-i) über einen Datenbus zum Kodierer (410) gelangt.
13. Kodiervorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß sämtliche Einrichtungen der Kodiervorrichtung (4) in einen Video-Chip integriert sind.
* * * * *
PCT/DE1997/002715 1996-11-14 1997-11-14 Verfahren zur bewegtbilddatenkompression und kodiervorrichtung zur durchführung des verfahrens WO1998021894A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19648612A DE19648612A1 (de) 1996-11-14 1996-11-14 Verfahren zur Bewegtbilddatenkompression und Kodiervorrichtung zur Durchführung des Verfahrens
DE19648612.2 1996-11-14

Publications (1)

Publication Number Publication Date
WO1998021894A1 true WO1998021894A1 (de) 1998-05-22

Family

ID=7812608

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1997/002715 WO1998021894A1 (de) 1996-11-14 1997-11-14 Verfahren zur bewegtbilddatenkompression und kodiervorrichtung zur durchführung des verfahrens

Country Status (2)

Country Link
DE (1) DE19648612A1 (de)
WO (1) WO1998021894A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109089120A (zh) * 2011-09-06 2018-12-25 英特尔公司 分析辅助编码

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992017092A1 (en) 1991-03-27 1992-10-15 Lingner & Fischer Gmbh Toothbrush having a flexibly linked zone in its head
WO1996002165A1 (en) 1994-07-13 1996-02-01 The Procter & Gamble Company Resiliently flexible bristle bearing head toothbrush

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0652676A1 (de) * 1993-11-08 1995-05-10 Sony Corporation Verfahren und Vorrichtung zur Komprimierung eines digitalen Bewegtbildsignals
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992017092A1 (en) 1991-03-27 1992-10-15 Lingner & Fischer Gmbh Toothbrush having a flexibly linked zone in its head
WO1996002165A1 (en) 1994-07-13 1996-02-01 The Procter & Gamble Company Resiliently flexible bristle bearing head toothbrush

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MING-TING SUN ET AL: "A FLEXIBLE VLSI ARCHITECTURE FOR FULL-SEARCH BLOCK-MATCHING MOTION -VECTOR ESTIMATION", PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, PORTLAND, MAY 8 - 11, 1989, vol. VOL. 1, no. SYMP. 22, 8 May 1989 (1989-05-08), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 179 - 182, XP000131592 *
SHIN-ICHI URAMOTO ET AL: "A HALF-PEL PRECISION MOTION ESTIMATION PROCESSOR FOR NTSC-RESOLUTION VIDEO", PROCEEDINGS OF THE CUSTOM INTEGRATED CIRCUITS CONFERENCE, SAN DIEGO, MAY 9 - 12, 1993, no. CONF. 15, 9 May 1993 (1993-05-09), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 11.02.01 - 11.02.04, XP000409684 *
SHIN-ICHI URAMOTO ET AL: "AN MPEG2 VIDEO DECODER LSI WITH HIERARCHICAL CONTROL MECHANISM", IEICE TRANSACTIONS ON ELECTRONICS, vol. E78-C, no. 12, 1 December 1995 (1995-12-01), pages 1697 - 1708, XP000555576 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109089120A (zh) * 2011-09-06 2018-12-25 英特尔公司 分析辅助编码
CN109089120B (zh) * 2011-09-06 2024-05-17 英特尔公司 分析辅助编码

Also Published As

Publication number Publication date
DE19648612A1 (de) 1998-05-20

Similar Documents

Publication Publication Date Title
DE10190285B4 (de) Verfahren und System zur Verarbeitung von komprimierten Videosignalen
DE69027785T2 (de) Einrichtung zur Zwischenbild-Vorhersagekodierung eines Videosignals
DE69116869T2 (de) Digitale bildkodierung mit einer zufallsabtastung der bilder
DE69834902T2 (de) Bewegungskompensierte prädiktive bildkodierung und -dekodierung
DE69635369T2 (de) Videokodierungsvorrichtung
EP0309669B1 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
DE4343211B4 (de) Adaptives Bildkompressionsverfahren und adaptive Bildkompressionsvorrichtung
DE69735838T2 (de) Videokodierer mit Transformationskoeffizientenprädiktion
DE69837003T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
DE19704439C2 (de) Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien
DE69836696T2 (de) Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide
DE69124536T2 (de) Bildkodiervorrichtung
DE69738494T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE3837590A1 (de) Verfahren zum reduzieren der datenrate von digitalen bilddaten
EP1025708B1 (de) Verfahren und vorrichtung zur verarbeitung eines digitalisierten bildes
DE19825042A1 (de) Verfahren zur Bewegungsvektorcodierung bei MPEG-4
DE19743202B4 (de) Verfahren zum Codieren eines Bewegungsvektors
DE4442643B4 (de) Verfahren zum Abschätzen der Bewegung in einem Bewegtbild
DE10343220B3 (de) Verfahren und Vorrichtung zur Transcodierung eines Datenstroms, der ein oder mehrere codierte digitalisierte Bilder umfasst
DE10296787B4 (de) Selektive Prädikation für ein Intra-Codieren eines Videodatenblocks
DE19717608B4 (de) Wahrnehmungsfehlerbearbeitungsverfahren und Bildkodierungsvorrichtung, welche dieses Verfahren verwendet
DE69828144T2 (de) Verfahren und vorrichtung zur videocodierung und -decodierung
EP0525900B1 (de) Filterschaltung zur Vorverarbeitung eines Videosignals
DE69636273T2 (de) Bewegtbildcodiervorrichtung, Bewegtbilddecodiervorrichtung und Bewegtbildcodier-/-Decodiervorrichtung
EP1101196B1 (de) Verfahren und anordnung zur bewegungsschätzung in einem digitalisierten bild mit bildpunkten

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA NO US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA