[go: up one dir, main page]

DE69524522T2 - Verfahren und System zur bidirektionalen Bewegungskompensation zur Kompression bewegter Bilder - Google Patents

Verfahren und System zur bidirektionalen Bewegungskompensation zur Kompression bewegter Bilder

Info

Publication number
DE69524522T2
DE69524522T2 DE69524522T DE69524522T DE69524522T2 DE 69524522 T2 DE69524522 T2 DE 69524522T2 DE 69524522 T DE69524522 T DE 69524522T DE 69524522 T DE69524522 T DE 69524522T DE 69524522 T2 DE69524522 T2 DE 69524522T2
Authority
DE
Germany
Prior art keywords
block
backward
frame
area
motion compensation
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
Application number
DE69524522T
Other languages
English (en)
Other versions
DE69524522D1 (de
Inventor
Hayashi Naoya
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of DE69524522D1 publication Critical patent/DE69524522D1/de
Application granted granted Critical
Publication of DE69524522T2 publication Critical patent/DE69524522T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/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
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein ein Verfahren und ein System zur Kompression von Bewegungsbildern. Genauer gesagt betrifft die Erfindung ein Verfahren und ein System für eine Bewegungskompensation in beiden von vergangenen und zukünftigen Richtungen, welches Verfahren und welches System in einem Videocodierer zu verwenden sind, der eine Datenmenge an Bewegungsbildern komprimiert.
  • Beschreibung des Standes der Technik
  • Ein bidirektionales Bewegungskompensationsverfahren ist bei Videocodierern verwendet worden, das eine Datenkompression von Bewegungsbildern durchführt. Da eine Datenmenge von Bewegungsbildern allgemein sehr groß ist, werden solche Bewegungsbilder häufig zur Übertragung und Speicherung komprimiert und auf der Empfangs- oder Wiedergabeseite dekomprimiert. Eine solche Datenkompression und -dekompression wird auch Codieren und Decodieren genannt. Beispielsweise sind ein H.261-System der ITU-T-Empfehlung, das bei einem Bildtelefon, einer Video-Telekonferenz und so weiter zu verwenden ist, eine Expertengruppe für bewegte Bilder (MPEG = Motion Picture Expert Group), die zum Aufzeichnen in einem Speichermedium zu verwenden ist, und so weiter, als solche Codier- und Decodiersysteme bekannt gewesen.
  • Bei einem solchen Kompressionssystem ist ein Interframeprädiktionscodiersystem verwendet worden. Das Interframeprädiktionscodiersystem verwendet eine starke Korrelation zwischen jeweiligen Frames, die die Bewegungsbilder bilden. Daher wird in einem solchen System ein hohes Kompressionsverhältnis durch Vorbereiten eines Prädiktionsframes bzw. Vorhersageframes aus einem vorangehend codierten Frame und durch Codieren einer Differenz bzw. eines Unterschieds erreicht, d.h. eines Vorhersagefehlers zwischen dem aktuell codierten Frame (der hierin nachfolgend "aktueller Frame" genannt wird) und dem Vorhersageframe bzw. Prädiktionsframe.
  • Andererseits variiert ein Objekt bei einer Bewegung seine Position etwas von Frame zu Frame. Daher kann durch Ableiten eines Vorhersagefehlers nach einem Bewegen des Vorhersageframes gemäß der Bewegung des Objekts der Vorhersagefehler kleiner gemacht werden, um ein weiteres Erhöhen eines Kompressionsverhältnisses zuzulassen. Die Information, die eine solche Bewegung anzeigt, wird Bewegungsvektor genannt und zusammen mit dem Vorhersagefehler übertragen oder aufgezeichnet.
  • Der Vorhersageframe wird auf der Basis des Frames erzeugt, der in der Vergangenheit übertragen oder aufgezeichnet worden ist. Jedoch ist im MPEG-System zusätzlich zu dem Frame von mehreren Frames zuvor (der hierin nachfolgend "vergangener Referenzframe" genannt wird) ein Frame von mehreren Frames später (der hierin nachfolgend "zukünftiger Frame" genannt wird) vorgesehen, um einen virtuellen Frame durch Interpolieren des vergangenen Frames und des zukünftigen Frames in einer Zeitbasisrichtung als den Vorhersageframe zu erzeugen.
  • Wenn der Vorhersageframe vom zukünftigen Frame abgeleitet wird, wird der aktuelle Frame nach dem zugehörigen zukünftigen Frame codiert, was die Reihenfolge der Frames ändert.
  • Zusätzlich kann dann, wenn eine Korrelation zwischen dem aktuellen Frame und dem Vorhersageframe niedrig ist, wie beispielsweise eine Szenenänderung in dem Fall, in welchem Bewegungsbilder umgeschaltet werden, ein höheres Kompressionsverhältnis durch Codieren des aktuellen Frames als durch Codieren vom Vorhersagefehler aus erhalten werden. Demgemäß wird die Kompression durch geeignetes Umschalten des Falls, in welchem der Vorhersagefehler codiert wird und des Falls, in welchem der aktuelle Frame codiert wird, wie er ist, durchgeführt.
  • In der hierin nachfolgend angegebenen Diskussion wird die Vorhersage bzw. Prädiktion, bei welcher der vergangene Frame als der Vorhersageframe genommen wird, "Vorwärts-Vorhersagecodierung" genannt, wird die Vorhersage bzw. Prädiktion, bei welcher der zukünftige Frame als der Vorhersageframe genommen wird, "Rückwärts-Vorhersagecodierung" genannt, wird die Vorhersage bzw. Prädiktion, bei welcher der virtuelle Frame, der durch eine Interpolation der vergangenen und zukünftigen Frames in der Zeitbasisrichtung abgeleitet ist, als der Vorhersageframe genommen wird, "bidirektionale Vorhersagecodierung" genannt. Weiterhin werden die vorangehenden drei Typen einer Vorhersagecodierung allgemein "Interframeprädiktionscodierung" genannt. Ebenso wird das Codieren zum Codieren des aktuellen Frames, wie er ist, "Intraframecodierung" bzw. "Zwischenframecodierung" genannt.
  • Wenn Bewegungsbilder durch ein MPEG-System codiert werden, wird die Codierung der Frames durchgeführt, wie es in Fig. 12 dargestellt ist. In Fig. 12 sind für zehn Frames die Zeichen I, P, B, die die Typen der Frames darstellen, und Zahlen der Frames zum Identifizieren jeweiliger Frames angegeben.
  • Der Typ des Frames stellt den Typ des Codiersystems dar, das für jeweilige individuelle Frames verwendet werden kann. Beispielsweise ist der Frame in einem Fall des Frames, der durch das Bezugszeichen I identifiziert ist, derjenige, bei welchem alle Blöcke durch eine Intraframecodierung codiert werden. Bei dem Frame, der durch das Bezugszeichen P identifiziert ist, werden eine Vorwärts- Vorhersagecodierung oder die Intraframecodierungs in bezug auf jeden einzelnen Block im Frame selektiv verwendet.
  • Der Frame, der durch das Bezugszeichen B identifiziert ist, ist der Frame, bei welchem die Vorwärts-Vorhersagecodierung, die Rückwärts-Vorhersagecodierung, die bidirektionale Vorhersagecodierung oder die Intraframecodierung in bezug auf jeden einzelnen Block im Frame selektiv verwendet werden. Ein solches Codiersystem, das für einen jeweiligen individuellen bzw. einzelnen Block im Frame verwendet wird, wird "Block-Codiertyp" und gelegentlich "Codiertyp" genannt.
  • Die Vorwärts-Vorhersagecodierung bezieht sich auf den letzten I-Frame oder P- Frame in der Vergangenheit. Andererseits bezieht sich die Rückwärts- Vorhersagecodierung auf den letzten I-Frame oder P-Frame in der Zukunft.
  • Das bidirektionale Vorhersagecodieren bezieht sich auf den letzten I-Frame oder P-Frame in der Vergangenheit und auf den letzten I-Frame oder P-Frame in der Zukunft.
  • Das bedeutet, daß dann, wenn der P-Frame durch die Vorwärts- Vorhersagecodierung oder die Interframecodierung codiert wird, der Frame P4 auf den I1-Frame Bezug nimmt und der Frame P7 auf den Frame P4 Bezug nimmt.
  • Andererseits nehmen dann, wenn der P-Frame durch eine der Vorwärts- Vorhersagecodierung, der Rückwärts-Vorhersagecodierung, der bidirektionalen Vorhersagecodierung und der Intraframecodierung codiert wird, die Frames B2 und B3 Bezug auf die Frames I1 und P4, nehmen die Frames B5, B6 Bezug auf die Frames P4 und P7 bzw. nehmen die Frames B8, B9 Bezug auf die Frames P7, I10.
  • Es sollte beachtet werden, daß zur Bezugnahme auf den zukünftigen Frame ein solcher zukünftiger Frame codiert worden sein muß, bevor der aktuelle Frame codiert wird. Daher wird die Reihenfolge einer Codierung I1 → P4 → B2 → B3 → P7 → B5 → B6 → I10 → B8 → B9.
  • Das bedeutet, daß der erste Frame I1 durch eine Intraframecodierungs für jeweilige Blöcke codiert wird. Dann wird der nächste Frame P4 durch einen des Codiertyps der Vorwärts-Vorhersagecodierung und der Intraframecodierung für jeweilige Blöcke im Frame unter Bezugnahme auf den Frame I1 codiert.
  • Darauffolgend werden die Frames B2 und B3 jeweils durch einen des Codiertyps der Vorwärts-Vorhersagecodierung unter Bezugnahme auf den Frame I1, der Rückwärts-Vorhersagecodierung unter Bezugnahme auf den Frame P4 und der bidirektionalen Vorwärts-Vorhersagecodierung unter Bezugnahme auf die Frames I1 und P4 für jeweilige Blöcke im Frame codiert.
  • Der Frame P7 wird durch einen des Codiertyps der Vorwärts-Vorhersagecodierung unter Bezugnahme auf den Frame P4 oder die Intraframecodierungs für jeweilige Blöcke im Frame codiert.
  • Ebenso werden die nächsten Frames B5 und B6 jeweils durch einen des Codiertyps der Vorwärts-Vorhersagecodierung unter Bezugnahme auf den Frame P4, der Rückwärts-Vorhersagecodierung unter Bezugnahme auf den Frame P7 und der bidirektionalen Vorwärts-Vorhersagecodierung unter Bezugnahme auf die Frames P4 und P7 für jeweilige Blöcke im Frame codiert.
  • Jeweilige Blöcke im Frame I10 werden durch die Intraframecodierung codiert. Jeweilige Blöcke in den Frames B8 und B9 werden jeweils durch einen des Codierungstyps der Vorwärts-Vorhersagecodierung unter Bezugnahme auf den Frame P7, der Rückwärts-Vorhersagecodierung unter Bezugnahme auf den Frame I10 und der bidirektionalen Vorhersagecodierung unter Bezugnahme auf die Frames P7 und I10 codiert.
  • Im Videocodierer gemäß dem MPEG-System wird das Codieren des aktuellen Frames H, wie er in Fig. 11 gezeigt ist, durch Anlegen jeweiliger Blöcke im aktuellen Frame H an den Eingangsanschluß 100 des in Fig. 10 gezeigten Systems durchgeführt. Hier wird unter jeweiligen Blöcken im aktuellen Frame H der Block, der gegenwärtig bearbeitet wird, "aktueller Block H1" genannt.
  • In einem Referenzframespeicher 110 beziehen sich herzustellende Referenzframes auf die Interframeprädiktionscodierung. Beispielsweise sind vor einem Codieren des Frames 11 der Fig. 12 Null-Daten im Referenzframespeicher 110 enthalten. Jedoch wird während einer Bearbeitung des Frames 11 nach einer Codierung mittels eines Subtrahierers 101, einer Einheit für eine diskrete Kosinustransformation (DCT) 102 und eines Quantisierungsteils 103 der codierte Frame 11, der durch einen Umkehrquantisierer 105, eine Umkehr-DCT 106 und einen Addierer 107 decodiert wird, im Referenzframespeicher 110 gespeichert.
  • Wenn der Frame P4, der dem Frame I1 folgt, codiert wird, wird der Frame P4, der einmal codiert ist, und dann decodiert, im Referenzframespeicher 110 gespeichert.
  • Demgemäß werden im Referenzframespeicher 110 der bereits codierte vergangene Frame 11 und der zukünftige Frame P4 gespeichert, während die Frames B2 und B3 codiert werden.
  • Auf ein Codieren des Frames P7 nachfolgend zu den Frames B2 und B3 hin, ersetzt der Frame P7, der einmal codiert und dann decodiert ist, den Frame 11 im Referenzframespeicher 110.
  • Gleichermaßen wird immer auf ein Codieren des Frames 110 hin der Frame 110, der einmal codiert und dann decodiert ist, anstelle des Frames P4 im Referenzframespeicher 110 gespeichert.
  • Das bedeutet, daß im Referenzframespeicher 110, der während der aktuellen Bearbeitung codiert und dann decodiert wird, anstelle der vorangehend gespeicherten Frames gespeichert, um seinen Inhalt einem Updaten zu unterziehen.
  • Der Subtrahierer 101 leitet eine Differenz zwischen einem eingegebenen aktuellen Block H1 und einem vorhergesagten Black, der von einem Bewegungskompensationsteil 111 zugeführt wird, ab und gibt die resultierende Differenz zu einem DCT- Teil 102 aus. Der Bewegungskompensationsteil 111 bestimmt den Codiertyp für den aktuellen Block und gibt den vorhergesagten Block entsprechend dem bestimmten Codiertyp aus.
  • Beispielsweise wird in einem Fall des Blocks im I-Frame deshalb, weil der Codiertyp eine Intraframecodierung wird, der Block mit "0" in allen Werten als der Vorhersageblock ausgegeben.
  • Andererseits wird in einem Fall des Blocks im P-Frame dann, wenn der Codiertyp eine Vorwärts-Vorhersagecodierung ist, ein aus dem vergangenen Referenzframe erzeugter Vorwärts-Vorhersageblock als der Vorwärtsblock ausgegeben. Wenn der Codiertyp die Intraframecodierung ist, wird der Block mit "0" in allen Werten als der Vorhersageblock ausgegeben.
  • In einem Fall des Blocks im B-Frame wird dann, wenn der Codiertyp eine Vorwärts- Vorhersagecodierung ist, ein aus dem vergangenen Referenzframe erzeugter Vorwärts-Vorhersageblock als der Vorhersageblock ausgegeben. Wenn der Codiertyp die Rückwärts-Vorhersagecodierung ist, wird ein aus dem zukünftigen Referenzframe erzeugter Rückwärts-Vorhersageblock als der Vorhersageblock ausgegeben. Wenn der Codiertyp die bidirektionale Vorhersagecodierung ist, wird ein aus den vergangenen und zukünftigen Referenzframes erzeugter bidirektionaler Vorhersageblock als der Vorhersageblock ausgegeben. Andererseits wird dann, wenn der Codiertyp die Intraframecodierung ist, der Block mit "0" in allen Werten als der Vorhersageblock ausgegeben.
  • Demgemäß wird dann, wenn der Codiertyp des aktuellen Blocks H1 die Intraframecodierung ist, der Block mit "0" in allen Werten als der Vorhersageblock ausgegeben. Somit wird der aktuelle Block H1 vom Subtrahierer 101 ausgegeben, wie er ist.
  • In einem Fall, der ein anderer als der Codiertyp des Intraframecodierens ist, wird der vorhergesagte Fehlerblock als Differenz zwischen dem aktuellen Block H1 und dem durch die Interframeprädiktion erzeugten Vorhersageblock ausgegeben. Der aktuelle Block H1 oder der vorhergesagte Fehlerblock wird durch eine zweidimensionale diskrete Kosinustransformation in der DCT 102 in Frequenzkomponenten transformiert und zum Quantisierungsteil 103 ausgegeben.
  • Der Quantisierungsteil 103 teilt die von der DCT 102 zugeführten Frequenzkomponenten durch einen Parameter, der Quantisierungs-Schwellenwert genannt wird. Der Quantisierungs-Schwellenwert ist allgemein groß in bezug auf die Hochfrequenzkomponenten und klein in bezug auf die Niederfrequenzkomponenten. Daher werden die Hochfrequenzkomponenten grob quantisiert und werden die Niederfrequenzkomponenten fein quantisiert.
  • Dadurch ist, während eine bestimmte Menge an Information in den Hochfrequenzkomponenten verloren werden kann, die Information der Hochfrequenzkomponenten nicht visuell wahrnehmbar, und die Kompression ohne eine Bildqualitätsverschlechterung wird erreicht. Die quantisierten Frequenzkomponenten werden unter Verwendung einer statistischen Art durch einen Huffman-Codierteil 104 weiter komprimiert und über einen Selektor 108 zu einem Anschluß 109 ausgegeben.
  • Andererseits werden dann, wenn der aktuelle Frame H der I-Frame oder der P- Frame ist, da der I-Frame oder der P-Frame als Vorwärtsframe für den nachfolgenden Frame verwendet wird, die quantisierten Frequenzkomponenten auch zum Umkehr-Quantisierungsteil 105 ausgegeben, um die ursprünglichen Frequenzkomponenten durch eine Multiplikation der quantisierten Frequenzkomponenten und des Quantisierungs-Schwellenwerts wiederzugewinnen.
  • Die wiedergewonnenen Frequenzkomponenten werden einer zweidimensionalen inversen diskreten Kosinustransformation durch die inverse DCT-Einheit 106 zum Wiedergewinnen des aktuellen Blocks oder des vorhergesagten Fehlerblocks unterzogen. Der aktuelle Block oder der vorhergesagte Fehlerblock, der wiedergewonnen wird, wird zum Addierer 107 ausgegeben. Es sollte beachtet werden, daß für die Tatsache, daß die Frequenzkomponenten einmal einer Quantisierung unterzogen sind und aufgrund eines Berechnungsfehlers im DCT-Teil 102 und im inversen DCT-Teil 106, der wiedergewonnene aktuelle Block H1 oder der wiedergewonnene vorhergesagte Fehlerblock nicht identisch zu den ursprünglichen sein kann. Jedoch hat der wiedergewonnene aktuelle Block H1 oder der wiedergewonnene Fehlerblock Werte, die ausreichend nahezu den ursprünglichen sind.
  • Im Addierer wird der aktuelle Block H1 oder der vorhergesagte Fehlerblock zum Vorhersageblock addiert, der vom Bewegungskompensationsteil 111 ausgegeben wird. Demgemäß wird dann, wenn der Codiertyp die Intraframecodierung ist, der wiedergewonnene aktuelle Block zu dem Block mit "0" in allen Werten hinzugefügt, um den aktuellen Block zu decodieren.
  • Andererseits werden dann, wenn der Codiertyp die Interframeprädiktionscodierung ist, der wiedergewonnene vorhergesagte Fehlerblock und der Vorhersageblock addiert. Somit wird, gleich dem obigen, der aktuelle Block decodiert.
  • Der aktuelle Block, der decodiert ist, wie es oben aufgezeigt ist, wird in einer Reihenfolge im Referenzframespeicher 110 als Ersatz für den Block des älteren Frames für eine Verwendung als der Vorhersageframe für die nachfolgenden Frames gespeichert.
  • Der Bewegungskompensationsteil 111 weist einen Bewegungsvektor- Erfassungsteil 112, einen Vorhersagefehler-Bewertungsteil 113, einen Vorwärts- Vorhersageblock-Erzeugungsteil 114, einen Rückwärts-Vorhersageblock- Erzeugungsteil 115, einen bidirektionalen Vorhersageblock-Erzeugungsteil 116, einen Codiertyp-Beurteilungsteil 117 und Selektoren 118 und 119 auf. Zum Bewegungskompensationsteil 111 werden der aktuelle Block H1 und der Referenzblock J1 des aus dem Referenzframespeicher 110 gelesenen Referenzframes J zugeführt (siehe Fig. 11).
  • Der Referenzbereich J1 enthält allgemeinen einen Block bei derselben Position wie den aktuellen Block H1 im Referenzframe und hat einen größeren Bereich als der aktuelle Block H1. In einem Fall des MPEG-Systems sind sowohl der aktuelle Block H1 als auch der Referenzbereich J1 das Luminanzsignal.
  • Wenn der P-Frame codiert wird, wird der Referenzbereich aus dem im Referenzframespeicher 110 gespeicherten vergangenen Frame gelesen. Andererseits werden dann, wenn der B-Frame codiert wird, jeweilige Referenzbereiche aus dem vergangenen Frame und dem zukünftigen Frame, die im Referenzframespeicher 110 gespeichert sind, ausgelesen. Andererseits ist dann, wenn der I-Frame codiert wird, eine Vorhersage einer Bewegung nicht nötig, und es wird unnötig, daß der Referenzbereich ausgelesen wird.
  • Im Bewegungsvektor-Erfassungsteil 112 werden ein Block J2 mit dem nächsten Inhalt zum aktuellen Block H1 im Referenzbereich (hierin nachfolgend "ähnlicher Block" genannt) und der Bewegungsvektor erfaßt. Die Beziehung beim Frame ist in Fig. 11 gezeigt.
  • Eine Differenz zwischen der Position H2, die den im Referenzbereich J1 beim aktuellen Frame erfaßten ähnlichen Block J2 projiziert, und der Position des aktuellen Blocks H1 wird ein Bewegungsvektor H3. Der aus dem vergangenen Referenzframe erfaßte Bewegungsvektor wird hierin nachfolgend "Vorwärts-Bewegungsvektor" genannt, und der aus dem zukünftigen Referenzframe erfaßte Bewegungsvektor wird hierin nachfolgend "Rückwärts-Bewegungsvektor genannt.
  • Wenn der P-Frame codiert wird, wird der erfaßte Vorwärts-Bewegungsvektor zum Vorwärts-Vorhersageblock-Erzeugungsteil 114 ausgegeben. Andererseits wird dann, wenn der B-Frame codiert wird, ein erfaßter Vorwärts-Bewegungsvektor zum Vorwärts-Vorhersageblock-Erzeugungsteil 114 ausgegeben und wird der Rückwärts-Bewegungsvektor zum Rückwärts-Vorhersageblock-Erzeugungsteil 115 ausgegeben.
  • Im Bewegungsvektor-Erfassungsteil 112 wird zusätzlich zur Erfassung dieser Bewegungsvektoren eine Berechnung einer Summe eines Absolutwerts einer AC- Komponente (eine Summe des Absolutwerts der Abweichung gegenüber dem Durchschnittswert) des aktuellen Blocks abgeleitet. Die abgeleitete Summe des Absolutwerts der AC-Komponente wird zu einem Codiertyp-Beurteilungsteil 117 ausgegeben.
  • Der Vorwärts-Vorhersageblock-Erzeugungsteil 114 liest den Teil entsprechend dem Bewegungsvektor des vergangenen Referenzframes aus dem Referenzframespeicher 110 aus, d.h. den ähnlichen Block, und stellt den gelesenen ähnlichen Block als den Vorwärts-Vorhersageblock ein.
  • Der Rückwärts-Vorhersageblock-Erzeugungsteil 115 liest den Teil entsprechend dem Bewegungsvektor des zukünftigen Referenzframes aus dem Referenzframespeicher 110 aus, d.h. den ähnlichen Block, und stellt den gelesenen ähnlichen Block als den Rückwärts-Vorhersageblock ein.
  • Ein bidirektionaler Vorhersageblock-Erzeugungsteil 116 bildet einen Durchschnitt des Vorwärts-Vorhersageblocks vom Vorwärts-Vorhersageblock-Erzeugungsteil 114 und des Rückwärts-Vorhersageblocks vom Rückwärts-Vorhersageblock- Erzeugungsteil 115 und gibt dies als bidirektionalen Vorhersageblock aus.
  • Der durch den Vorwärts-Vorhersageblock-Erzeugungsteil 114 erzeugte Vorwärts- Vorhersageblock, der durch den Rückwärts-Vorhersageblock-Erzeugungsteil 115 erzeugte Rückwärts-Vorhersageblock und der durch den bidirektionalen Vorhersageblock-Erzeugungsteil 116 erzeugte bidirektionale Vorhersageblock werden zum Vorhersagefehler-Bewertungsteil 113 und zum Selektor 118 zugeführt.
  • Zum Vorhersagefehler-Bewertungsteil 113 wird auch der durch einen Anschluß 100 eingegebene aktuelle Block zugeführt. Der Vorwärtsfehler-Bewertungsteil 113 bewertet eine Ähnlichkeit des Vorhersageblocks und des aktuellen Blocks, um das Interframeprädiktionscodiersystem auszuwählen, bei welchem die beste Bewertung einer Ähnlichkeit gegeben ist.
  • Das bedeutet, daß in einem Fall des P-Frames nur die Vorwärts- Vorhersagecodierung verwendet werden kann. Daher leitet der Vorhersagefehler- Bewertungsteil 113 Daten zum Bewerten einer Ähnlichkeit zu dem Vorwärts- Vorhersageblock und dem aktuellen Block ab.
  • Dann gibt der Vorwärtsfehler-Bewertungsteil 113 die Bewertungsdaten bzw. Auswertedaten und das Auswahlsignal, das die Vorwärts-Vorhersagecodierung anzeigt, zum Codiertyp-Beurteilungsteil 117 aus. In Zusammenhang damit gibt der Vorwärtsfehler-Bewertungsteil 113 das Auswahlsignal zum Selektor 118 aus und, durch das Auswahlsignal, wählt der Selektor 118 den Vorwärts-Vorhersageblock zur Ausgabe zum Selektor 119 aus.
  • Andererseits kann in einem Fall des B-Frames eine der Vorwärts- Vorhersagecodierung und der Rückwärts-Vorhersagecodierung und der bidirektionalen Vorhersagecodierung verwendet werden. Daher leitet der Vorwärtsfehler- Bewertungsteil 113 berechnete Daten zum Bewerten einer Ähnlichkeit zwischen dem aktuellen Block und jeweils dem Vorwärts-Vorhersageblock, dem Rückwärts- Vorhersageblock und dem bidirektionalen Vorhersageblock ab.
  • Dann gibt der Vorwärtsfehler-Bewertungsteil 113 die Auswertedaten bzw. Bewertungsdaten und das Auswahlsignal, das das Interframeprädiktionscodiersystem anzeigt, dessen Vorhersageblock dem aktuellen Block am ähnlichsten ist, zum Codiertyp-Beurteilungsteil 117 aus. In Zusammenhang damit gibt der Vorwärtsfehler-Bewertungsteil 113 das Auswahlsignal zum Selektor 118 aus, und der Selektor 118 wählt den durch das Auswahlsignal angezeigten Vorhersageblock aus, um ihn zum Selektor 119 auszugeben.
  • Der Codiertyp-Beurteilungsteil 117 vergleicht die eingegebenen Auswertedaten und die Summe des Absolutwerts der AC-Komponente des aktuellen Blocks zum Abschätzen, welche der Interframeprädiktionscodierung, die durch den Vorwärtsfehler-Bewertungsteil 113 ausgewählt ist, und der Intraframecodierung eine kleinere Codemenge haben wird.
  • Wenn der Codiertyp-Beurteilungsteil 117 beurteilt, daß die Intraframecodierung eine kleinere Codemenge haben wird, gibt der Codiertyp-Beurteilungstyp 117 ein Signal, das die Intraframecodierung als den Codiertyp anzeigt, zu den Selektoren · 108 und 109 aus.
  • Andererseits gibt dann, wenn der Codiertyp-Beurteilungsteil 117 beurteilt, daß die durch den Vorwärtsfehler-Bewertungsteil 113 ausgewählte Interframeprädiktionscodierung eine kleinere Codemenge haben wird als die Intraframecodierung, der Codiertyp-Beurteilungsteil 117 das Signal, das die entsprechende Interframeprädiktionscodierung anzeigt, als den Codiertyp zu den Selektoren 108 und 109 aus.
  • Es sollte beachtet werden, daß der Codiertyp-Beurteilungsteil 117 das Signal, das die Intraframecodierung als den Codiertyp anzeigt, konstant zu den Selektoren 108 und 109 ausgibt, während der I-Frame codiert wird.
  • Der Selektor 119 gibt einen Block mit "0" in allen Werten aus, während der Codiertyp die Intraframecodierung ist, und gibt den vom Selektor 118 ausgegebenen Vorhersageblock aus, wenn der Codiertyp die Interframeprädiktionscodierung ist.
  • Wie es oben aufgezeigt ist, gibt der Bewegungskompensationsteil 111 den Codiertyp des aktuellen Blocks und des Vorhersageblocks aus. Andererseits gibt der Bewegungskompensationsteil 111 den Vorwärts-Bewegungsvektor aus, wenn der Codiertyp die Vorwärts-Vorhersagecodierung ist, den Rückwärts-Bewegungsvektor, wenn der Codiertyp die Rückwärts-Vorhersagecodierung ist und jeweilige der Vorwärts- und Rückwärtsvektoren, wenn der Codiertyp die bidirektionale Vorhersagecodierung ist.
  • Diese Bewegungsvektoren und der Codiertyp werden gemäß einem vorbestimmten Datenformat durch den Anschluß 109 über den Selektor 108 zusammen mit den Vorhersagefehlerblock oder den aktuellen Block, der durch eine Huffman- Codierung komprimiert ist, ausgegeben. Wie es oben aufgezeigt ist, wird der aktuelle Frame blockweise komprimiert.
  • Der Prozeß des Bewegungskompensationsteils 111 besteht im Erfassen des Bewegungsvektors durch Heraussuchen des ähnlichen Blocks im Referenzbereich, um den Vorhersageblock mit dem bestimmten Codiertyp auszugeben.
  • Unter diesen Prozessen wird eine Erfassung des Bewegungsvektors durch Verwenden eines Verfahrens durchgeführt, bei welchen Blöcken mit der gleichen Größe wie der aktuelle Block im Referenzbereich (hierin nachfolgend "Referenzblock" genannt) extrahiert werden, und, normalerweise für jeden extrahierten Block, eine Summe der absoluten Fehler der Pixel, die einen Block bilden (hierin nachfolgend "Verzerrung" genannt), berechnet wird, um einen Block mit der kleinsten Summe als den ähnlichen Block auszuwählen.
  • Das bedeutet, daß unter der Annahme, daß die Größe des Blocks (M Pixel in der horizontalen Richtung) · (M Pixel in der vertikalen Richtung) ist, der aktuelle Block f(ix, iy) ist, der aus dem Referenzbereich extrahierte Referenzblock g(ix + vx, iy + vy) ist (wobei ix, iy jeweils eine Koordinate in der horizontalen und der vertikalen Richtung sind und 0 = ix, iy = M - 1 gilt), und vx, vy horizontale und vertikale Komponenten sind, die eine Differenz einer Position zum aktuellen Block darstellen. Dann kann die Verzerrung ausgedrückt werden durch:
  • Summe = : g(ix + vx, iy + vy) - f(ix, iy): ...(1)
  • Daher ist der ähnliche Block der Referenzblock mit der kleinsten Summe des Absolutwerts des durch die vorangehende Gleichung (1) ausgedrückten Vorhersagefehlers, und der Bewegungsvektor zu dieser Zeit ist (vx, vy).
  • In der folgenden Diskussion wird der Prozeß einer Berechnung der Summe des Absolutwerts des Vorhersagefehlers, der aus dem Referenzbereich extrahierten Referenzblöcke und des aktuellen Blocks "Blockanpassung" genannt.
  • Grundsätzlich ist es wünschenswert, den Codiertyp durch Vergleichen der Codemenge in den Fällen aller möglichen Codiertypen aus einer Intraframeprädiktionscodierung und der Interframecodierung auszuwählen, die für den aktuellen Block anwendbar sind, und durch Auswählen von einem mit der kleinsten Codemenge.
  • Jedoch wird es in einem solchen Fall nötig, ein Codieren für den P-Frame zweimal durchzuführen, und viermal für den B-Frame, um die Prozeßperiode inhärent auszudehnen. Daher ist ein solches Verfahren allgemein nicht verwendet worden. Als Ersatz gibt es ein typisches Verfahren zum Abschätzen, welches Codiersystem die kleinste Codemenge zum Bestimmen des Codiertyps haben wird.
  • Bei solchen Verfahren werden Auswertedaten bzw. Bewertungsdaten einer Ähnlichkeit zwischen dem Vorhersageblock der Interframeprädiktionscodierung und dem aktuellen Block berechnet, und die Bewertungsdaten werden mit der Summe des Absolutwerts der AC-Komponenten (die hierin nachfolgend "AC-Leistung" genannt werden) des aktuellen Blocks verglichen.
  • Hier kann die Summe des Absolutwerts der AC-Komponente durch die folgende Gleichung ausgedrückt werden:
  • Summe = : f(ix, iy)-favr: ...(2)
  • Wobei favr
  • f(ix, iy)/(M · M)
  • Als Beispiel für die Bewertungsdaten einer Ähnlichkeit zwischen dem Vorhersageblock und dem aktuellen Block kann die mit einem Nehmen des Vorwärts- Vorhersageblocks als g(ix + vx, iy + vy) der vorangehenden Gleichung (1) abgeleitete Verzerrung für den P-Frame verwendet werden.
  • Andererseits kann in einem Fall des B-Frames die kleinste Summe bei drei Arten von Summen der Absolutwerte des mit einem Nehmen des Vorwärts- Vorhersageblocks, des Rückwärts-Vorhersageblocks, des bidirektionalen Vorhersageblocks als g(ix + vx, iy + vy) der vorangehenden Gleichung (1) abgeleiteten Vorhersagefehler verwendet werden.
  • Bei einem Vergleich zwischen den Bewertungsdaten und der Summe der Absolutwerte der AC-Leistung wird dann, wenn die Bewertungsdaten kleiner als die AC- Leistung sind, die Interframeprädiktionscodierung ausgewählt. Andererseits wird dann, wenn die Bewertungsdaten größer als die oder gleich der Summe der Absolutwerte der AC-Komponente sind, die Intraframecodierung ausgewählt.
  • Demgemäß wird beim Block des P-Frames eine der Vorwärts- Vorhersagecodierung und der Intraframecodierungs ausgewählt. Andererseits wird beim Block das B-Frames eine der Vorwärts-Vorhersagecodierung, der Rückwärts- Vorhersagecodierung, der bidirektionalen Vorhersagecodierung und der Intraframecodierung auf eine adaptive Weise zum Durchführen einer Codierung ausgewählt. Es soll beachtet werden, daß beim Block des I-Frames immer die Intraframecodierung ausgewählt wird.
  • Als das System zum Implementieren der Bewegungsvorhersage, wie es oben aufgezeigt ist, ist ein bidirektionales Vorhersagecodiersystem verfügbar, wie es in Fig. 7 dargestellt ist. Der Bewegungskompensationsprozessor 50 dieses bidirektionalen Vorhersagecodiersystems speichert temporär den aktuellen Block und zwei Referenzblöcke, die aus den vergangenen und zukünftigen Referenzframes ausgelesen sind, in den internen Speichern 52 bis 54 zum Reduzieren von Zeiten zum Auslesen aus dem externen Speicher, was eine relativ lange Auslesezeit erfordert. Dann wird das nötige Pixel aus den internen Speichern 52 bis 54 anstelle des Referenzframespeichers 9 für eine sofortige Verarbeitung ausgelesen (Cache- Verarbeitung).
  • In Fig. 7 erzeugt ein Adressengenerator 51 des Bewegungskompensationsprozessors 50 ein Adressensignal zum Auslesen des aktuellen Blocks aus einem Speicher 1 für einen aktuellen Frame und speichert den aus dem Speicher 1 für einen aktuellen Frame ausgelesenen aktuellen Block in einem Speicher 52 für einen aktuellen Block. Ein Adressengenerator 56 erzeugt ein Adressensignal zum Auslesen des aktuellen Blocks aus dem Speicher 52 für einen aktuellen Block.
  • Ein Adressengenerator 55 erzeugt ein Adressensignal zum Lesen eines Referenzbereichs aus einem Referenzframespeicher 9. Der Referenzbereich des vergangenen Referenzframes (der hierin nachfolgend Vorwärts-Referenzbereich genannt wird), der aus dem Referenzframespeicher 9 ausgelesen ist, wird in einem Vorwärts-Referenzbereichsspeicher 53 gespeichert. Ein Adressengenerator 57 erzeugt ein Adressensignal zum Auslesen des Vorwärts-Referenzbereichs aus dem Vorwärts-Referenzbereichsspeicher 53.
  • Der Referenzbereich des zukünftigen Referenzframes (der hierin nachfolgend Rückwärts-Referenzbereich genannt wird), der aus dem Referenzframespeicher 9 ausgelesen ist, wird in einem Rückwärts-Referenzbereichsspeicher 54 gespeichert. Ein Adressengenerator 58 erzeugt ein Adressensignal zum Auslesen des Rückwärts-Referenzbereichs aus dem Rückwärts-Referenzbereichsspeicher 54.
  • Ein Arithmetikteil 59 führt eine Berechnung einer Verzerrung auf der Basis des aktuellen Blocks aus dem Speicher 52 für einen aktuellen Block und des Vorwärts- Referenzbereichs aus dem Vorwärts-Referenzbereichsspeicher 53 (über den Selektor 68) oder auf der Basis des aktuellen Blocks und des Rückwärts- Referenzbereichs aus dem Rückwärts-Referenzbereichsspeicher 54 (über den Selektor 68) durch, und wählt den ähnlichen Block, der von ihnen die kleinste Verzerrung hat. Der Arithmetikteil 59 berechnet auch eine AC-Leistung unter Verwendung des aktuellen Blocks und eines AC-Leistungsregisters 61 (über den Selektor 68), um die Summe der Absolutwerte der AC-Komponenten zu erfassen und um eine der Summen mit dem kleinsten Wert von ihnen zu erfassen.
  • Ein Paketadressengenerator 60 erzeugt ein Adressensignal zum Ausgeben des Codiertyps, des Vorwärtsvektors und des Rückwärtsvektors. Ein AC-Register 61 speichert die Summe der Absolutwerte der AC-Komponente des aktuellen Blocks.
  • Ein Vorwärts-Bewegungsvektorregister 62 speichert den Vorwärts- Bewegungsvektor. Ein Rückwärts-Bewegungsvektorregister 63 speichert den Rückwärts-Bewegungsvektor. Ein Codiertyp-Selektor 64 beurteilt den Codierungstyp des aktuellen Blocks. Ein Durchschnittsbildungsteil 65 leitet den bidirektionalen Vorhersageblock auf der Basis des Vorwärts-Vorhersageblocks und des Rückwärts-Vorhersageblocks ab.
  • Ein Interframeprädiktions-Selektor 66 wählt eine der Interframeprädiktionscodierungen aus. Eine Steuerung 67 steuert eine Betriebszeit des Gesamtbewegungskompensationsprozessors 50.
  • Hier wird eine Korrespondenz zwischen dem in Fig. 7 dargestellten Bewegungskompensationsprozessor 50 und dem in Fig. 10 dargestellten Bewegungskompensationsteil 111 wie folgt gebildet.
  • Der durch den Bewegungsvektor-Erfassungsteil 112 des Bewegungskompensationsteils 111 durchgeführte Prozeß wird durch den Vorwärts- Referenzbereichsspeicher 53, den Rückwärts-Referenzbereichsspeicher 54, die Adressengeneratoren 57 und 58, einen Arithmetikteil 59, den Selektor 58, das AC- Register 61, das Vorwärts-Bewegungsvektorregister 62 und das Rückwärts- Bewegungsvektorregister 63 des Bewegungskompensationsprozessors 50 realisiert.
  • Andererseits kann der durch den Vorwärts-Vorhersageblock-Erzeugungsteil 114 durchgeführte Prozeß durch den Vorwärts-Referenzbereichsspeicher 53 und den Adressengenerator 57 realisiert werden. Der durch den Rückwärts- Vorhersageblock-Erzeugungsteil 115 durchgeführte Prozeß wird durch den Rückwärts-Referenzbereichsspeicher 54 und den Adressengenerator 58 realisiert.
  • Der durch den bidirektionalen Vorhersageblock-Erzeugungsteil 116 durchgeführte Prozeß wird durch den Durchschnittsbildungsteil 65 realisiert. Andererseits wird der durch den Vorhersagefehler-Bewertungsteil 113 durchgeführte Prozeß durch den Interframeprädiktions-Selektor 66 realisiert. Der Prozeß des Codiertyp- Beurteilungsteils 117 wird durch den Codiertyp-Selektor 64 realisiert.
  • Als nächstes wird der Betrieb des Bewegungskompensationsprozessors 50 in bezug auf den aktuellen Block mit horizontalen M Pixeln x vertikalen M Pixeln und Vorwärts- und Rückwärts-Referenzbereiche mit jeweils rechteckigen Bereichen um den aktuellen Block von horizontalen NH Pixeln x NV Pixeln (NH > M, NV > M) diskutiert.
  • Der Speicher 52 für einen aktuellen Block, der Vorwärts-Referenzbereichsspeicher 53 und der Rückwärts-Referenzbereichsspeicher 54 haben Kapazitäten zum Speichern der oben identifizierten Größe des aktuellen Blocks und der Vorwärts- und Rückwärts-Referenzbereiche.
  • Andererseits wird, bis es nicht anders spezifiziert ist, die folgende Diskussion für den Fall eines Codierens des B-Frames angegeben. Während nur eine Vorwärts- Vorhersagecodierung als die Interframeprädiktionscodierung für den P-Frame durchgeführt wird und nur eine Intraframecodierung für den I-Frame durchgeführt wird, kann der Prozeß für den P-Frame und den I-Frame durch eine geringfügigere Teilmodifikation des Prozesses für den B-Frame realisiert werden. Daher wird eine Diskussion für eine Prädiktionscodierung bzw. Vorhersagecodierung für die P- und I-Frame ausgeschlossen, um die Offenbarung einfach genug zu halten, um ein klares Verstehen zu erleichtern.
  • Im Bewegungskompensationsprozessor 50 wird zuerst der Vorwärts- Bewegungsvektor erfaßt und darauffolgend wird der Rückwärts-Bewegungsvektor erfaßt. Der Bewegungskompensationsprozessor 50 erzeugt gleichzeitig den Vorwärts-Vorhersageblock, den Rückwärts-Vorhersageblock und den bidirektionalen Vorhersageblock und erzeugt Bewertungsdaten zum Bewerten einer Ähnlichkeit von diesen Vorhersageblöcken und dem aktuellen Block.
  • Der Bewegungskompensationsprozessor 50 wählt ein Interframeprädiktionscodiersystem unter der Vorwärts-Vorhersagecodierung, der Rückwärts- Vorhersagecodierung und der bidirektionalen Vorhersagecodierung auf der Basis der Bewertungsdaten aus und bestimmt dann den Codiertyp durch einen Vergleich zwischen der Interframeprädiktionscodierung und der Intraframecodierung. Darauffolgend gibt der Bewegungskompensationsprozessor 50 den bestimmten Codiertyp, den Bewegungsvektor und den Vorhersageblock aus.
  • Im Bewegungskompensationsprozessor 50 wird eine Erfassung des Vorwärts- Bewegungsvektors auf die folgende Weise durchgeführt. Zuerst erzeugt der Adressengenerator 56 das gelesene Adressensignal des Speichers 52 für einen aktuellen Block. Dann wird der aktuelle Block aus dem Speicher 52 für einen aktuellen Block ausgelesen und zum Arithmetikteil 59 zugeführt.
  • Andererseits erzeugt der Adressengenerator 57 das gelesene Adressensignal des Vorwärts-Referenzbereichsspeichers 53. Dann wird der Referenzblock aus horizontalen M Pixeln und vertikalen M Pixeln extrahiert, der bei der Position ganz links oben im Vorwärts-Referenzbereich angeordnet ist. Der so extrahierte Vorwärts- Referenzblock wird über den Selektor 68 zum Arithmetikteil 59 zugeführt.
  • Der Arithmetikteil 59 führt eine arithmetische Operation gemäß der vorangehenden Gleichung (1) durch, um die Verzerrung abzuleiten. Das bedeutet, daß der Arithmetikteil 59 eine Blockanpassung zwischen dem aktuellen Block und dem Referenzblock durchführt, der bei der Position ganz links oben im Vorwärts- Referenzbereich angeordnet ist.
  • Der Arithmetikteil 59 speichert die Summe der Absolutwerte des durch eine Berechnung der vorangehenden Gleichung (1) erhaltenen Vorhersagefehlers und eine Differenz zwischen den Positionen des Referenzblocks und des aktuellen Blocks in einem internen Register (nicht gezeigt).
  • Gleich dem vorangehenden Prozeß wird der aktuelle Block zum Arithmetikteil 59 zugeführt. Dann wird auch der Referenzblock, der aus dem Vorwärts- Referenzbereich im Vorwärts-Referenzbereichsspeicher 53 extrahiert und um ein Pixel in der horizontalen Richtung zum vorangehenden Referenzblock, der bei der Position ganz links oben angeordnet ist, benachbart ist, zum Arithmetikteil 59 zugeführt. Der Arithmetikteil 59 führt dann eine Arithmetikoperation für eine Blockanpassung zwischen dem neu extrahierten Referenzblock und dem aktuellen Block durch.
  • Der Arithmetikteil 59 vergleicht die beim aktuellen Betriebszyklus abgeleitete Verzerrung mit der Summe der Absolutwerte des beim vorangehenden Zyklus erhaltenen Vorhersagefehlers und speichert den kleineren und die entsprechende Differenz zwischen den Positionen des Referenzblocks und des aktuellen Blocks.
  • Der vorangehende Prozeß wird in bezug auf möglichst alle aus dem Vorwärts- Referenzbereich extrahierten Referenzblöcke durchgeführt. Dann wird der Abstand zwischen den Positionen des Referenzblocks und des aktuellen Blocks, der im internen Register zurückbleibt, der Vorwärts-Bewegungsvektor. Der so abgeleitete Vorwärts-Bewegungsvektor wird im Vorwärts-Bewegungsvektorregister 62 gespeichert. Somit kann eine Erfassung des Vorwärts-Bewegungsvektors beendet werden.
  • Jedoch wird dann, wenn der aktuelle Block an den Rändern des Frames ist, ein Teil des Referenzbereichs außerhalb des Frames gelangen. Beispielsweise gelangt dann, wenn der aktuelle Block am oberen Rand angeordnet ist, der obere Teil des Referenzbereichs aus horizontalen NH Pixeln x vertikalen (NV - M) Pixeln/2 Pixeln außerhalb des Rasters. Wenn der aktuelle Block am linken Seitenende angeordnet ist, gelangt der Teil aus (den horizontalen (NH - M)/2 Pixeln) x vertikalen NV Pixeln der linken Seite des Vorwärts-Referenzbereichs außerhalb des Rasters.
  • Da in einem solchen Teil des Vorwärts-Referenzbereichsspeichers 53 ungültige Pixel gespeichert werden, sollten die Ergebnisse einer Blockanpassung zwischen dem aktuellen Block und dem Referenzblock mit solchen ungültigen Pixeln ignoriert werden.
  • Demgemäß überwacht der Arithmetikteil 59 die Position des aktuellen Blocks auf dem Raster und die Position des Referenzblocks, um das Ergebnis einer Blockanpassung zu ignorieren, wenn der Referenzblock die Pixel außerhalb des Rasters enthält.
  • Der Rückwärts-Bewegungsvektor kann bei einem ähnlichen Verfahren wie einer Erfassung des Vorwärts-Bewegungsvektors durch Extrahieren des Referenzblocks aus dem Rückwärts-Referenzbereich im Rückwärts-Referenzbereichsspeicher 54 erfaßt werden. Der erfaßte Rückwärts-Bewegungsvektor wird im Rückwärts- Bewegungsvektorregister 63 gespeichert.
  • Als nächstes wird der durch den Vorwärts-Bewegungsvektor aus dem Vorwärts- Bewegungsvektorregister 62 bestimmte Vorwärts-Vorhersageblock aus dem Vorwärts-Referenzbereichsspeicher 53 durch Erzeugen des Leseadressensignals aus dem Adressengenerator 57 zum Lesen der Referenzblöcke vom linken oberen Pixel in einer durch den Vorwärts-Bewegungsvektor aus dem Vorwärts- Bewegungsvektorregister 62 bestimmten Reihenfolge gelesen.
  • Gleichzeitig wird der Rückwärts-Vorhersageblock aus dem Rückwärts- Referenzbereichsspeicher 54 durch Erzeugen des Leseadressensignals aus dem Adressengenerator 58 zum Lesen der Referenzblöcke vom linken oberen Pixel in einer durch den Rückwärts-Bewegungsvektor aus dem Rückwärts- Bewegungsvektorregister 63 bestimmten Reihenfolge ausgelesen.
  • Die Pixel des Vorwärts-Vorhersageblocks und des Rückwärts-Vorhersageblocks, die jeweils aus dem Vorwärts-Referenzbereichsspeicher 53 und dem Rückwärts- Referenzbereichsspeicher 54 gelesen werden, werden einer Durchschnittsbildung durch den Durchschnittsbildungsteil 65 unterzogen. Somit werden die Pixel, die den bidirektionalen Vorhersageblock bilden, vom Durchschnittsbildungsteil 65 ausgegeben.
  • In Zusammenhang damit wird der aktuelle Block aus dem Speicher 52 für einen aktuellen Block durch Erzeugen des Leseadressensignals aus dem Adressengenerator 56 ausgegeben, so daß die Pixel in einer Reihenfolge vom linken oberen Pixel aus ausgelesen werden.
  • Auf diese Weise werden der aktuelle Block und dementsprechend der Vorwärts- Vorhersageblock, der Rückwärts-Vorhersageblock und der bidirektionale Vorhersageblock pro einem Pixel in einer Reihenfolge zum Interframeprädiktions-Selektor 66 ausgegeben.
  • Im Interframeprädiktions-Selektor 66 sind drei Vorhersagefehler-Akkumulatoren (nicht gezeigt) vorgesehen, um gleichzeitig drei Arten von Summen der Absolutwerte des mit einem Nehmen des Vorwärts-Vorhersageblocks, des Rückwärts- Vorhersageblocks und des bidirektionalen Vorhersageblocks als g(ix + vx, iy + vy) der Gleichung (1) abgeleiteten Vorhersagefehlers abzuleiten.
  • Wenn eine Eingabe des Vorhersageblocks beendet ist, vergleicht der Interframeprädiktions-Selektor 66 die Summen der Absolutwerte des Vorhersagefehlers und gibt ein Auswahlsignal, das das Interframeprädiktionscodiersystem mit der minimalen Summe der Absolutwerte des Vorhersagefehlers anzeigt, zum Codiertyp- Selektor 64 aus. Der Interframeprädiktions-Selektor 66 gibt auch die Summe der Absolutwerte des Vorhersagefehlers des ausgewählten Interframeprädiktionscodiersystems als die Auswertedaten bzw. Bewertungsdaten zum Bewerten einer Ähnlichkeit des Vorhersageblocks und des aktuellen Blocks zum Codiertyp- Selektor 64 aus.
  • Es sollte beachtet werden, daß deshalb, weil nur eine Vorwärts- Vorhersagecodierung für den P-Frame verwendet werden kann, das Auswahlsignal, das die Vorwärts-Vorhersagecodierung anzeigt, für den P-Frame zum Codiertyp-Selektor 64 konstant ausgegeben wird, und die Summe der Absolutwerte des Vorhersagefehlers der Vorwärts-Vorhersagecodierung zum Codiertyp-Selektor 64 als die Bewertungsdaten. Das Auswahlsignal, das die Vorwärts- Vorhersagecodierung anzeigt, wird auch zum Selektor 69 ausgegeben.
  • Als nächstes wird durch Einsetzen von "0" zum AC-Register 61, was gleich dem Fall einer Erfassung des Vorwärts-Bewegungsvektors ist, der aus dem Speicher 52 für einen aktuellen Block ausgelesene aktuelle Block zum Arithmetikteil 59 zugeführt.
  • Gleichzeitig wird der Wert des AC-Registers 61 über den Selektor 68 zum Arithmetikteil 59 zugeführt, und er leitet die Summe der Absolutwerte des Vorhersagefehlers mit einem Nehmen von "0" als g(ix + iv, iy + vy) der Gleichung (1) ab.
  • Durch Ableiten von favr der Gleichung (2) durch Teilen der Summe der Absolutwerte des Vorhersagefehlers mit einem Quadrat von M wird der abgeleitete Wert im AC-Register 61 gespeichert. Hier kann deshalb, weil M 16 ist, eine Teilung durch Streichen niederwertigerer 8 Bits realisiert werden.
  • Der Prozeß gleich dem obigen wird noch einmal ausgeführt, um die Summe der Absolutwerte des Vorhersagefehlers durchzuführen, des aktuellen Blocks und des Werts des AC-Registers 61 über den Selektor 68 zum Arithmetikteil 59 abzuleiten. Somit kann die Summe des Absolutwerts der AC-Komponente der Gleichung (2) berechnet werden. Die Summe des Absolutwerts der AC-Komponente wird im AC- Register 61 gespeichert.
  • Die abgeleitete Summe des Absolutwerts der AC-Komponente des aktuellen Blocks und der aus dem Interframeprädiktions-Selektor 66 ausgegebenen Bewertungsdaten werden zum Codiertyp-Selektor 64 ausgegeben. Wenn die Bewertungsdaten kleiner als die Summe des Absolutwerts der AC-Komponente sind, führt der Codiertyp-Selektor 64 eine Beurteilung durch, um die durch den Interframeprädiktions-Selektor 66 ausgegebene Interframeprädiktionscodierung auszuwählen. Andererseits wird dann, wenn die Bewertungsdaten größer als die oder gleich der Summe des Absolutwerts der AC-Komponente sind, die Intraframecodierung ausgewählt.
  • Der Codiertyp-Selektor 64 gibt das Ergebnis einer Beurteilung zum Selektor 70 aus. Es sollte beachtet werden, daß in einem Fall eines Codierens des I-Frames der Codiertyp-Selektor 64 konstant die Intraframecodierung auswählt.
  • Darauffolgend werden der Codiertyp des aktuellen Blocks aus dem Codiertyp- Selektor 64, der Vorwärts-Bewegungsvektor aus dem Vorwärts- Bewegungsvektorregister 62 und der Rückwärts-Bewegungsvektor aus dem Rückwärts-Bewegungsvektorregister 63 sequentiell vom Anschluß 75 als jeweilige Ergebnisse einer Vorhersage ausgegeben.
  • Zum Codiertyp-Selektor 64, zum Vorwärts-Bewegungsvektorregister 62 und zum Rückwärts-Bewegungsvektorregister 63 wird das Paketadressensignal vom Paketadressengenerator 60 zugeführt.
  • In diesem Fall wird die Paketadresse "0" dem Codiertyp zugeordnet, wird die Paketadresse "1" dem Vorwärts-Bewegungsvektor zugeordnet, und wird die Paketadresse "2" dem Rückwärts-Bewegungsvektor zugeordnet.
  • Nach einer Beendigung eines Prozesses des aktuellen Blocks unterzieht der Paketadressengenerator 60 Adressen in der Reihenfolge von "0", "1", "2" einem Updaten. Daher werden durch den Anschluß 75 in einer Reihenfolge der Codiertyp vom Codiertyp-Selektor 64, der die Paketadresse konstant decodiert, der Vorwärts- Bewegungsvektor aus dem Vorwärts-Bewegungsvektorregister 62 und der Rückwärts-Bewegungsvektor aus dem Rückwärts-Bewegungsvektorregister 63 ausgegeben.
  • Als nächstes wird der Vorhersageblock entsprechend dem Codiertyp pro einem Pixel durch den Anschluß 77 ausgegeben. Daher erzeugen die Adressengeneratoren 57 und 58 Adressensignale zum Ausgeben des Vorwärts-Vorhersageblocks und des Rückwärts-Vorhersageblocks.
  • Demgemäß wird der Vorwärts-Vorhersageblock vom Vorwärts-Referenzbereichsspeicher 53 zum Selektor 69 ausgegeben. Der Rückwärts- Vorhersageblock wird vom Rückwärts-Referenzbereichsspeicher 54 zum Selektor 69 ausgegeben. Ebenso wird der bidirektionale Vorhersageblock vom Durchschnittsbildungsteil 65 zum Selektor 69 ausgegeben.
  • Der Selektor 69 wählt einen des Vorwärts-Vorhersageblocks, des Rückwärts- Vorhersageblocks und des bidirektionalen Vorhersageblocks in Abhängigkeit vom Auswahlsignal vom Interframeprädiktions-Selektor 66 aus und gibt ihn zum Selektor 70 aus.
  • Da der Codiertyp vom Codiertyp-Selektor 64 zum Selektor 70 geliefert wird, gibt der Selektor 70, wenn die Intraframecodierung bestimmt ist, den Block mit "0" für alle Werte durch den Anschluß 77 aus. Andererseits gibt der Selektor 70, wenn der Codiertyp bestimmt ist, der ein anderer als die Intraframecodierung ist, den durch den Selektor 69 ausgewählten Vorhersageblock durch den Anschluß 77 aus.
  • Die Steuerung 67 steuert die Ausgabezeit jeweiliger Daten, wie es oben aufgezeigt ist, in Abhängigkeit von einem durch einen Anschluß 67 eingegebenen Zeitsteuersignal.
  • Wie es oben diskutiert ist, wählt der in Fig. 7 dargestellte Bewegungskompensationsprozessor 50 adaptiv eine der Vorwärts-Vorhersagecodierung und der Intraframecodierung für den Block des P-Frames, eine der Vorwärts- Vorhersagecodierung, der Rückwärts-Vorhersagecodierung, der bidirektionalen Vorhersagecodierung und der Intraframecodierung für den Block des P-Frames aus, um das Ergebnis einer Vorhersage und den Vorhersageblock auszugeben.
  • Andererseits kann selbst für einen I-Frame das Ergebnis einer Vorhersage ausgegeben werden. Der Block mit "0" in allen Werten kann als der Vorhersageblock ausgegeben werden.
  • Es sollte beachtet werden, daß unter Ergebnissen eine Vorhersage der Vorwärts- Bewegungsvektor nur dann effektiv ist, wenn der Codiertyp die Vorwärts- Vorhersagecodierung oder die bidirektionale Vorhersagecodierung ist, der Rückwärts-Bewegungsvektor nur dann effektiv ist, wenn der Codiertyp die Rückwärts- Vorhersagecodierung oder die bidirektionale Vorhersagecodierung ist. Daher wird der effektive Bewegungsvektor gemäß dem Codiertyp aus dem Bewegungskompensationsprozessor 50 ausgewählt.
  • Beim herkömmlichen bidirektionalen Bewegungskompensationssystem, wie es oben aufgezeigt ist, werden der Codiertyp des aktuellen Blocks, der Bewegungsvektor in Abhängigkeit vom Codiertyp und der Vorhersageblock adaptiv zur Ausgabe ausgewählt.
  • In einem solchen bidirektionalen Vorhersagesystem, bei welchem die Größe des Referenzbereichs horizontale NH Pixel x vertikale NV Pixel beträgt, wird es nötig, eine Blockanpassung (NN - M + 1) · (NV - M + 1)-mal durchzuführen und den minimalen Wert von (NH - M + 1) · (NV - M + 1) in bezug auf eine Anzahl von Summen der Absolutwerte des Vorhersagefehlers auszuwählen.
  • Andererseits sollte für einen Zyklus einer Blockanpassung eine Arithmetikoperation zum Ableiten der Summe des Absolutwerts des Fehlers M² mal durchgeführt werden. Weiterhin wird beim bidirektionalen Vorhersagesystem dann, wenn der Referenzbereich breiter und innerhalb des Rasters ist, die Möglichkeit zum Finden des Vorhersageblocks mit einer hohen Ähnlichkeit zum aktuellen Block höher, um ein Kompressionsverhältnis bei einem Beibehalten einer Bildqualität zu erhöhen.
  • Jedoch erfordert eine Erfassung des Bewegungsvektors eine sehr große Menge an Berechnungen. Daher ist zum Erweitern des Referenzbereichs die entsprechend lange Zeit zur Erfassung des Bewegungsvektors im Arithmetikteil 59 erforderlich. Somit wird es schwierig, sie auf Echtzeit-Videocodierer anzuwenden.
  • Andererseits werden zum Erweitern des Referenzbereichs die Kapazitäten des Vorwärts-Referenzbereichsspeichers 53 und des Rückwärts- Referenzbereichsspeichers 54 erhöht. Dies veranlaßt ein Erhöhen der Chipgröße einer LSI und veranlaßt somit ein Erhöhen der Kosten.
  • Es sollte beachtet werden, daß als Technologie zum Verkürzen einer Prozeßzeit bei einer Erfassung des Bewegungsvektors eine Technologie zum Vorhersagen der Größe des Bewegungsvektors und um dadurch die Größe des Referenzbereichs in bezug auf jeden Block zu bestimmen, in der japanischen ungeprüften Patentveröffentlichung (Kokai) Nr. Showa 63-144626 offenbart worden ist.
  • Dies ist die Technologie zum Bestimmen der Größe des Referenzbereichs durch Bewerten einer Differenz zwischen dem Referenzblock bei derselben Position wie der aktuelle Block und dem aktuellen Block oder durch Bezugnahme auf die Größe des in bezug auf den direkt zuvor codierten Block erfaßten Bewegungsvektors.
  • Das bedeutet, daß dann, wenn eine Anzahl von nutzlosen Blockanpassungen durch Kleinermachen des Referenzbereichs reduziert werden kann, die Prozeßzeit des Blocks verkürzt werden kann. Jedoch deshalb, weil Bewegungsbilder eine konstante Frameperiode haben und die konstante Anzahl von Blöcken pro einem Frame enthalten, ist es nötig, ein Codieren für den Block in einem Frame innerhalb der Periode eines Frames zu beenden, um die Frames stetig zu codieren.
  • Demgemäß wird es bei einem Anwenden dieser Technologie selbst dann, wenn der Vorhersageblock mit einer hohen Ähnlichkeit gegenüber dem aktuellen Block durch Erweitern des Referenzbereichs des Blocks gefunden werden kann, möglich, daß alle Blöcke nicht innerhalb der Periode eines Frames verarbeitet werden können, bis die Prozeßzeit durch Verkleinern des Referenzbereichs für andere Blöcke entsprechend verkürzt werden kann.
  • Es ist schwierig, alle Blöcke im Frame innerhalb einer Frameperiode durch ein Bestimmen der Größe des Referenzbereichs für jeden Block zu verarbeiten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Daher ist die vorliegende Erfindung zum Lösen der oben aufgezeigten Probleme ausgearbeitet. Es ist eine Aufgabe der vorliegenden Erfindung, ein bidirektionales Bewegungskompensationsverfahren und -system zum effizienten Suchen von Vektoren zu schaffen.
  • Die vorliegende Erfindung ist in den unabhängigen Ansprüchen 1 und 2 definiert. Ein abhängiger Anspruch 3 definiert ein besonderes Ausführungsbeispiel der Erfindung.
  • Vorzugsweise weist ein bidirektionales Bewegungskompensationsverfahren einen Schritt zum Ausgeben des Vorhersageblocks zum Codieren eines aktuellen Blocks in Abhängigkeit vom ausgewählten Codiertyp auf.
  • Bei einer bevorzugten Zusammensetzung weist ein bidirektionales Bewegungskompensationssystem eine Einrichtung zum Ausgeben des Vorhersageblocks zum Codieren eines aktuellen Blocks in Abhängigkeit vom ausgewählten Codiertyp auf.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird vollständiger aus der hierin nachfolgend angegebenen detaillierten Beschreibung und aus den beigefügten Zeichnungen des bevorzugten Ausführungsbeispiels der Erfindung verstanden, welche jedoch nicht als beschränkend für die vorliegende Erfindung genommen werden sollten, sondern nur zur Erklärung und zum Verstehen dienen.
  • Die Zeichnungen zeigen folgendes:
  • Fig. 1 ist ein Blockdiagramm, das einen Aufbau des bevorzugten Ausführungsbeispiels eines bidirektionalen Vorhersagesystems gemäß der vorliegenden Erfindung zeigt;
  • Fig. 2 ist eine Darstellung zum Erklären des bevorzugten Ausführungsbeispiels eines bidirektionalen Vorhersageverfahrens gemäß der vorliegenden Erfindung;
  • Fig. 3 ist eine Darstellung, die eine Block-Verarbeitungszeit beim bevorzugten Ausführungsbeispiel der bidirektionalen Vorhersage gemäß der Erfindung zeigt;
  • Fig. 4 ist ein Blockdiagramm, das einen Aufbau des bevorzugten Ausführungsbeispiels eines Bewegungskompensationsprozessors gemäß der Erfindung zeigt;
  • Fig. 5 ist eine Darstellung, die einen Aufbau des in Fig. 4 gezeigten Referenzframespeichers zeigt;
  • Fig. 6 ist ein Ablaufdiagramm, das einen Verarbeitungsbetrieb des bevorzugten Ausführungsbeispiels des bidirektionalen Vorhersageverfahrens gemäß der vorliegenden Erfindung zeigt;
  • Fig. 7 ist ein Blockdiagramm, das eine Zusammensetzung des Bewegungskompensationsprozessors bei einer Basistechnologie der vorliegenden Erfindung zeigt;
  • Fig. 8 ist ein Blockdiagramm, das einen Aufbau des bidirektionalen Vorhersagesystems bei einer Basistechnologie der vorliegenden Erfindung zeigt;
  • Fig. 9 ist eine Darstellung, die eine Block-Verarbeitungszeit der in Fig. 8 gezeigten Vorrichtung zeigt;
  • Fig. 10 ist eine Darstellung, die eine Erklärung eines Videocodierers beim Stand der Technik zeigt;
  • Fig. 11 ist eine Darstellung, die eine Erklärung des Bewegungsvektors zeigt; und
  • Fig. 12 ist eine Darstellung, die ein Beispiel. eines Codierens von Frames zeigt.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Die vorliegende Erfindung wird hierin nachfolgend detailliert unter Bezugnahme auf die beigefügten Zeichnungen diskutiert. In der folgenden Beschreibung sind zahlreiche spezifische Details aufgezeigt, um für ein ernsthaftes Verstehen der vorliegenden Erfindung zusorgen. Es wird jedoch Fachleuten auf dem Gebiet offensichtlich werden, daß die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. Andererseits sind wohlbekannte Strukturen nicht detailliert gezeigt, um die vorliegende Erfindung nicht unnötigerweise zu verdunkeln.
  • Vor einer detaillierten Diskussion des bevorzugten Ausführungsbeispiels des bidirektionalen Vorhersagesystems und des Verfahrens dafür gemäß der vorliegenden Erfindung wird die Grundidee der vorliegenden Erfindung unter Bezugnahme auf Fig. 8 diskutiert. Grundsätzlich basiert die vorliegende Erfindung auf der Idee, daß die Prozeßzeit zum Suchen eines Bewegungsvektors eines aktuellen Blocks durch Reduzieren eines Gebiets eines Referenzbereichs verkürzt werden kann, auf welchen beim Suchen des Bewegungsvektors Bezug genommen wird.
  • Wie es in Fig. 8 gezeigt ist, weist ein bidirektionales Vorhersagesystem einen Speicher 1 für einen aktuellen Frame, Bewegungskompensationsprozessoren 81-1 bis 81-3, Referenziramespeicher 82-1 bis 82-3, einen Zeitgabegenerator 83, einen Vorhersageergebnis-Selektor 84, eine Bewegungsvektor-Korrektureinheit 85, einen Referenzpositions-Indikator 86, einen Rückwärts-Vorhersageblockgenerator 87, einen Vorwärts-Vorhersageblockgenerator 88, einen bidirektionalen Vorhersageblockgenerator 89, Selektoren 90 und 91 und Anschlüsse 10, 92 bis 95 auf.
  • Hier ist der Vorwärts-Referenzbereich in einer Reihenfolge von links aus in Vorwärts-Referenzunterbereiche r1, r0 und r2 aufgeteilt. Ebenso ist der Rückwärts- Referenzbereich in einer Reihenfolge von links aus in Rückwärts- Referenzunterbereiche s1, s0 und s2 aufgeteilt. Dem Bewegungsvorhersageprozessor 81-1 sind der Vorwärts-Referenzunterbereich r0 in der Mitte und der Rückwärts-Referenzunterbereich s0 in der Mitte zugeordnet. Dem Bewegungsvorhersageprozessor 81-2 sind der Vorwärts-Referenzunterbereich r1 auf der linken Seite und der Rückwärts-Referenzunterbereich s1 auf der linken Seite zugeordnet. Dem Bewegungsvorhersageprozessor 81-3 sind der Vorwärts-Referenzunterbereich r2 auf der rechten Seite und der Rückwärts-Referenzunterbereich s2 auf der rechten Seite zugeordnet. Somit werden der Vorwärts-Bewegungsvektor und der Rückwärts-Bewegungsvektor erfaßt.
  • In diesem Fall lesen die Bewegungskompensationsprozessoren 81-1 bis 81-3 einen zugeordneten Vorwärts-Referenzbereich und einen zugeordneten Rückwärts- Referenzbereich aus dem in den Referenzframespeichern 82-1 bis 82-3 gespeicherten selben Referenzframe aus, um die Vorwärts-Bewegungsvektoren und die Rückwärts-Bewegungsvektoren zu erfassen.
  • Die Positionen des Vorwärts-Referenzbereichs und des Rückwärts- Referenzbereichs, die jeweils den Bewegungskompensationsprozessoren 81-1 bis 81-3 zugeordnet sind, werden durch die Referenzpositions-Bestimmungseinheit 86 bestimmt. Die Bewegungskompensationsprozessoren 81-1 bis 81-3 führen eine Blockanpassung mit einem vom Speicher 1 für einen aktuellen Frame zugeführten gemeinsamen aktuellen Block in jeweils den bestimmten Vorwärts- Referenzbereichen und den bestimmten Rückwärts-Referenzbereichen durch, um den Vorwärts-Bewegungsvektor und den Rückwärts-Bewegungsvektor zu erfassen.
  • Da die Vorwärts-Referenzbereiche und die Rückwärts-Referenzbereiche, die den Bewegungskompensationsprozessoren 81-1 bis 81-3 zugeordnet sind, dieselbe Größe haben, werden die Prozesse dann, wenn die Prozesse gleichzeitig begonnen werden, gleichzeitig beendet. Die Ergebnisse einer Kompensation, wie beispielsweise ein erfaßter Bewegungsvektor und so weiter, werden gleichzeitig zum Vorhersageergebnis-Selektor 84 ausgegeben.
  • Jedoch deshalb, weil die Bewegungskompensationsprozessoren 81-1 bis 81-3 jeweils den Bewegungsvektor unter der Voraussetzung erfassen, daß der aktuelle Block in der Mitte des Referenzbereichs auf dem Raster angeordnet ist, wird es nötig, den durch die Bewegungskompensationsprozessoren 81-1 und 81-3 ausgegebenen Bewegungsvektor zu korrigieren.
  • Der Vorhersageergebnis-Selektor 84 wählt einen der Bewegungskompensationsprozessoren aus. Dann wird der durch den ausgewählten der Bewegungskompensationsprozessoren ausgegebene Bewegungsvektor korrigiert und durch die Bewegungsvektor-Korrektureinheit 85 gemäß der Position des Referenzbereichs ausgegeben.
  • Der vorangehende Prozeß wird zu der Prozeßzeit durchgeführt, wie sie in Fig. 9 gezeigt ist. In Fig. 9 stellen i-1 bis i-3 eine Erfassung des Vorwärts- Bewegungsvektors dar, sind j-1 bis j-3 Ergebnisse der Vorwärtsvorhersage und stellen k-1 bis k-3 eine Erfassung des Rückwärts-Bewegungsvektors dar. I-1 bis I-3 sind Ergebnisse der Rückwärts-Vorhersage, m1 stellt eine Analyse der Ergebnisse der Vorwärtsvorhersage dar, m2 stellt eine Analyse der Ergebnisse der Rückwärtsvorhersage dar, n1 stellt eine Korrektur des Vorwärts-Bewegungsvektors dar, n2 stellt eine Korrektur des Rückwärts-Bewegungsvektors dar, o stellt die Vorwärts-, die Rückwärts- und die bidirektionale Vorhersageblock-Erzeugung dar, p stellt eine Bestimmung des Codiertyps dar und q stellt die Vorhersageblock-Ausgabe dar.
  • Anfangs erfassen jeweilige Bewegungskompensationsprozessoren 81-1 bis 81-3 einen Vorwärts-Bewegungsvektor. Wenn die durch diese Bewegungskompensationsprozessoren 81-1 bis 81-3 erfaßten Vorwärts-Bewegungsvektoren ausgegeben werden, führt der Vorhersageergebnis-Selektor 84 eine Analyse für das Vorwärts- Vorhersageergebnis durch, um einen der Vorwärts-Bewegungsvektoren auszuwählen. Die Bewegungsvektor-Korrektureinheit 85 führt eine Korrektur des durch den Vorhersageergebnis-Selektor 84 ausgewählten Vorwärts-Bewegungsvektors durch.
  • Als nächstes werden im selben Prozeß wie dem obigen eine Erfassung des Rückwärts-Bewegungsvektors, eine Ausgabe und eine Korrektur durchgeführt. Darauffolgend werden der Vorwärts-Vorhersageblock, der Rückwärts-Vorhersageblock und der bidirektionale Vorhersageblock entsprechend dem ausgegebenen Vorwärts-Bewegungsvektor und dem ausgegebenen Rückwärts-Bewegungsvektor aus einem entsprechenden der Referenzframespeicher 82-1 bis 82-3 erzeugt, um sie zum Bewegungskompensationsprozessor 81-1 zuzuführen. Aus diesem wird der Codiertyp bestimmt, um den entsprechenden Vorhersageblock basierend auf dem bestimmten Codiertyp auszugeben.
  • Bei der oben angegebenen Technologie kann durch gleichzeitiges Erfassen der Bewegungsvektoren mit einem Aufteilen des Referenzbereichs die Zeit zum Erfassen des Bewegungsvektors verkürzt werden. Im Fall der in Fig. 8 gezeigten Zusammensetzung kann die Bewegungsvektor-Erfassungszeit auf ein Drittel des herkömmlichen Systems verkürzt werden.
  • Eine solche Idee ist in der gleichzeitig anhängigen japanischen Patentanmeldung Nr. Heisei 5-345916 offenbart worden, die der gleichzeitig anhängigen EP- Anmeldung 94 120 543.7 (EP-A-0 660 615) entspricht, die im gemeinsamen Besitz ist.
  • Während die vorangehende Zusammensetzung ein signifikantes Verkürzen der Prozeßzeit bei einer Erfassung des Bewegungsvektors erreicht, hat sie noch Spielraum, um für eine bessere Leistungsfähigkeit verbessert zu werden. Der Bewegungsvektor wird nämlich außerhalb des Bewegungskompensationsprozessors bestimmt. Daher wird der unter Bezugnahme auf den Bewegungsvektor erzeugte Vorhersageblock durch den Vorwärts-Vorhersageblock-Generator 88, den Rückwärts-Vorhersageblock-Generator 87 und den bidirektionalen Vorhersageblock- Generator 89 außerhalb des Bewegungskompensationsprozessors erzeugt. Da diese durch Auslesen aus den externen Referenzframespeichern 82-1 bis 82-3 erzeugt werden, die normalerweise eine lange Auslesezeit haben, erfordert daher dieser Teil eines Prozesses inhärent eine lange Zeit.
  • Andererseits dient bei Betrachtung des Falls, bei welchem der Referenzbereichsspeicher (der Speicher 52 für einen aktuellen Block, der Vorwärts- Referenzbereichsspeicher 53, der Rückwärts-Referenzbereichsspeicher 54) im Bewegungskompensationsprozessor 50 vorgesehen ist und er eine Erzeugung des Vorhersageblocks innerhalb des Bewegungskompensationsprozessors 50 durchführt, wie er in Fig. 7 gezeigt ist, da der bidirektionale Vorhersageblock aus dem Vorwärts-Vorhersageblock und dem Rückwärts-Vorhersageblock erzeugt wird, beispielsweise der Bewegungskompensationsprozessor 81-2 zum Erzeugen des bidirektionalen Vorhersageblocks aus dem Vorwärts-Referenzbereich r1 und dem Rückwärts-Referenzbereich s1.
  • Gleichermaßen dient der Bewegungskompensationsprozessor 81-3 zum Erzeugen des bidirektionalen Vorhersageblocks aus dem Vorwärts-Referenzbereich r2 und dem Rückwärts-Referenzbereich s2. Daher hat deshalb, weil der Vorhersageblock unter Verwendung eines schmalen Referenzbereichs erzeugt wird, er eine geringe Wahrscheinlichkeit, den bidirektionalen Vorhersageblock mit einer ausreichenden Ähnlichkeit zum aktuellen Block zu erzeugen. Daher ist es nicht möglich, auf zufriedenstellende Weise ein hohes Datenkompressionsverhältnis zu erreichen.
  • Die vorliegende Erfindung ist zum Erzielen einer höheren Leistungsfähigkeit bei einer Erzeugung der Vorhersageblöcke und in bezug auf eine Datenkompression ausgearbeitet worden.
  • In Fig. 1 ist das bevorzugte Ausführungsbeispiel eines bidirektionalen Vorhersagesystems gemäß der vorliegenden Erfindung ein System für eine parallele Verarbeitung bzw. einen parallelen Prozeß unter Verwendung von drei Bewegungskompensationsprozessoren, die synchron arbeiten, was gleich dem bidirektionalen Vorhersagesystem in der parallelen Anordnung beim Stand der Technik ist, wie es in fig. 8 dargestellt ist.
  • Das bevorzugte Ausführungsbeispiel eines bidirektionalen Vorhersagesystems weist einen Speicher 1 für einen aktuellen Frame, Bewegungskompensationsprozessoren 2-1 bis 2-3, Referenzframespeicher 3-1 bis 3-3, eine Referenzpositions- Bestimmungseinheit 4, einen Vorhersageblock-Selektor 5, eine Bewegungsvektor- Korrektureinheit 6, einen Vorhersageergebnis-Selektor 7, einen Zeitgabegenerator 8 und Anschlüsse 10 bis 15 auf.
  • Fig. 2 ist eine Darstellung zum Erklären des bevorzugten Ausführungsbeispiels eines bidirektionalen Vorhersageverfahrens gemäß der vorliegenden Erfindung. Das bevorzugte Ausführungsbeispiel des bidirektionalen Vorhersageverfahrens gemäß der vorliegenden Erfindung wird unter Bezugnahme auf Fig. 2 diskutiert.
  • Betrachtet man beispielsweise ein Objekt, das sich von links nach rechts in einem Raster bewegt, ist eine Anzahl von Frames in einer Sekunde normalerweise 25 bis 60 Frames und ist das Frameintervall (eine Periode) vergleichsweise kurz. Somit verändert das Objekt auf dem Raster die Position von links nach rechts pro Frame etwas.
  • Allgemein bewegt sich das Objekt bei einer Bewegung mit einer geringfügigen Veränderung der Position des Rasters mit einem Verstreichen an Zeit, bis es sich sehr schnell bewegt, und das Objekt bewegt sich in einer kurzen Periode in dem Ausmaß mehrerer Frames linear.
  • Demgemäß ist es dann, wenn die Position des Objekts im vergangenen Frame auf der linken Seite gegenüber der Position des Objekts im aktuellen Frame angeordnet ist, sehr wahrscheinlich, daß das Objekt im zukünftigen Frame auf der rechten Seite relativ zur Position des Objekts im aktuellen Frame positioniert ist, und es ist unwahrscheinlich, daß das Objekt bei der Position linksseitig zur Position im aktuellen Frame bewegt wird.
  • Gleichermaßen kann in einer anderen Richtung gesagt werden, daß ein Ausführungsbeispiel der vorliegenden Erfindung unter Berücksichtigung einer Linearität der Bewegung des Objekts auf dem Raster überarbeitet ist.
  • In Fig. 2 ist angenommen, daß der aktuelle Frame A der B-Frame ist. Dann werden im hierin nachfolgend' diskutierten Prozeß jeweilige Blöcke im aktuellen Frame A bei dem Verfahren codiert abgeschätzt, um ein höchstes Kompressionsverhältnis zwischen vier Arten von Codiersystemen der Vorwärts-Vorhersagecodierung, der Rückwärts-Vorhersagecodierung, der bidirektionalen Vorhersagecodierung und der Intraframecodierung in bezug auf den Vorwärts-Referenzframe C und den Rückwärts-Referenzframe E zu erreichen.
  • Ein Vorwärts-Referenzbereich C1 und ein Rückwärts-Referenzbereich E1 werden derart eingestellt, daß sie in der horizontalen Richtung ausgedehnt sind, um ein Kompressionsverhältnis unter Beibehaltung der Bildqualität durch eine folgende Bewegung in der horizontalen Richtung des Objekts auf dem Raster zu erhöhen.
  • Zuerst werden der Vorwärts-Referenzbereich C1 und der Rückwärts- Referenzbereich E1 jeweils in drei kleinere Bereiche D0 bis D2 und G0 bis G2 aufgeteilt (die hierin nachfolgend "Vorwärts-Referenzunterbereiche" und "Rückwärts- Referenzunterbereiche" genannt werden). Die Vorwärts-Referenzunterbereiche D0 bis D2 und die Rückwärts-Referenzunterbereiche G0 bis G2 sind derart angeordnet, daß sie sich in der horizontalen Richtung überlagern.
  • Die Gebiete der Vorwärts-Referenzunterbereiche D0 bis D2 und der Rückwärts- Referenzunterbereiche G0 bis G2 werden derart eingestellt, daß sie gleich zueinander sind. Das Überlagerungsgebiet der Referenzunterbereiche entspricht der Größe M des aktuellen Blocks in der horizontalen Richtung, d.h. für 16 Pixel.
  • Wie es in Fig. 2 gezeigt ist, werden im Vorwärts-Referenzbereich C1 die Vorwärts- Referenzunterbereiche D1, D0, D2 in einer Reihenfolge von der linken Seite aus eingestellt. Andererseits werden im Rückwärts-Referenzbereich E1 die Rückwärts- Referenzunterbereiche G1, G0, G2 in einer Reihenfolge von der linken Seite aus eingestellt.
  • Unter der Annahme, daß der Vorwärts-Referenzbereich C1 horizontale 64 Pixel x vertikale 32 Pixel ist, haben die Vorwärts-Referenzunterbereiche D0 bis D2 jeweils horizontale 32 Pixel x vertikale 32 Pixel. Der Vorwärts-Referenzunterbereich D1 bildet die linke Hälfte des Vorwärts-Referenzbereichs C1, der Vorwärts- Referenzunterbereich D0 bildet den Mittenteil des Vorwärts-Referenzbereichs C1 und der Vorwärts-Referenzunterbereich D2 bildet die rechte Hälfte des Vorwärts- Referenzbereichs C1.
  • Unter der Annahme, daß der Rückwärts-Referenzbereich E1 horizontale 64 Pixel x vertikale 32 Pixel ist, haben die Rückwärts-Referenzunterbereich G0 bis G2 jeweils horizontale 32 Pixel x vertikale 32 Pixel. Der Rückwärts-Referenzunterbereich G1 bildet die linke Hälfte des Rückwärts-Referenzbereichs E1, der Rückwärts- Referenzunterbereich G0 bildet den Mittenteil des Rückwärts-Referenzbereich E1 und der Rückwärts-Referenzunterbereich G2 bildet die rechte Hälfte des Rückwärts-Referenzbereichs E1.
  • Wie es oben unter Bezugnahme auf den aufgeteilten Vorwärts-Referenzbereich C1 und den aufgeteilten Rückwärts-Referenzbereich E1 aufgezeigt ist, wird der Codiertyp durch die Bewegungskompensationsprozessoren 2-1 bis 2-3 zum Ausgeben des Codiertyps, des Bewegungsvektors und des Vorhersageblocks bestimmt.
  • In diesem Fall bestimmt der Bewegungskompensationsprozessor 2-1 den Codiertyp bei einem Lesen des zuvor zugeordneten Vorwärts-Referenzunterbereich D0 und des zuvor zugeordneten Rückwärts-Referenzunterbereichs G0.
  • Andererseits bestimmt der Bewegungskompensationsprozessor 2-2 den Codiertyp mit einem Lesen des vorläufig zugeordneten Vorwärts-Referenzunterbereichs D1 und des vorläufig zugeordneten Rückwärts-Referenzunterbereichs G2.
  • Weiterhin bestimmt der Bewegungskompensationsprozessor 2-3 den Codiertyp mit einem Lesen des vorläufig zugeordneten Vorwärts-Referenzunterbereichs D2 und des vorläufig zugeordneten Rückwärts-Referenzunterbereichs G1.
  • Der Betrieb des bevorzugten Ausführungsbeispiels des bidirektionalen Vorhersagesystems gemäß der vorliegenden Erfindung wird unter Bezugnahme auf die Fig. 1 und 2 diskutiert. Hierin nachfolgend ist angenommen, daß die Größe des Frames derart angenommen ist, daß sie horizontale NX Pixel x vertikale NY Pixel ist. Hier ist NX ein Vielfaches von 16, welches die Anzahl von Pixeln in der horizontalen Richtung des aktuellen Blocks ist, und ist NY ein Vielfaches von 16, welches die Anzahl von Pixeln in der vertikalen Richtung des aktuellen Blocks ist.
  • Es sollte beachtet werden, daß dann, wenn NX und NY die vorangehende Bedingung nicht erfüllen können, eine geeignete Anzahl von Pixeln am rechten Ende oder am unteren Ende des Rasters hinzugefügt wird, so daß der Frame derart ausgebildet werden kann, daß er ein Vielfaches der Anzahlen von Pixeln in den horizontalen und vertikalen Richtungen des aktuellen Blocks ist.
  • Wie es aufgezeigt ist, sind die Größen des Vorwärts-Referenzbereichs C1 und des Rückwärts-Referenzbereichs E1 jeweils horizontale 64 Pixel x vertikale 32 Pixel und sind die Größen der Vorwärts-Referenzunterbereiche D0 bis D2 und der Rückwärts-Referenzunterbereiche G0 bis G2 jeweils horizontale 32 Pixel x vertikale 32 Pixel.
  • Den Bewegungskompensationsprozessoren 2-1 bis 2-3 wird dasselbe Zeitsteuersignal vom Zeitgabegenerator 8 zugeführt. Ebenso haben die Bewegungskompensationsprozessoren 2-1 bis 2-3 wechselseitig dieselbe Zusammensetzung, und sie arbeiten synchron, um den Prozeß zum Durchführen einer bidirektionalen Vorhersage in den Referenzbereichen der identischen Größen gleichzeitig zu beginnen und gleichzeitig zu beenden.
  • Andererseits sind an jeweilige, der Bewegungskompensationsprozessoren 2-1 bis 2-3 die Referenzframespeicher 3-1 bis 3-3 angeschlossen. Somit lesen jeweilige Bewegungskompensationsprozessoren 2-1 bis 2-3 die entsprechenden Vorwärts- Referenzunterbereiche D0 bis D2 und die entsprechenden Rückwärts- Referenzunterbereiche G0 bis G2 von den in den Referenzframespeichern 3-1 bis 3-3 gespeicherten Referenzframes, während derselbe Referenzframe über den Anschluß 11 in den Referenzframespeichern 3-1 bis 3-3 gespeichert wird.
  • Die Positionen der Vorwärts-Referenzunterbereiche D0 bis D2 und der Rückwärts- Referenzunterbereiche G0 bis G2, die jeweils den Bewegungskompensationsprozessoren 2-1 bis 2-3 zugeordnet sind, werden durch die Referenzpositions- Bestimmungseinheit 4 bestimmt.
  • Der Bewegungskompensationsprozessor 2-1 liest nämlich den Vorwärts- Referenzunterbereich D0 und den Rückwärts-Referenzunterbereich G0, der Bewegungskompensationsprozessor 2-2 liest den Vorwärts-Referenzunterbereich D1 und den Rückwärts-Referenzunterbereich G2 und der Bewegungskompensationsprozessor 2-3 liest den Vorwärts-Referenzunterbereich D2 und den Rückwärts- Referenzunterbereich G1.
  • Die Bewegungskompensationsprozessoren 2-1 bis 2-3 führen bidirektionale Vorhersageprozesse des vom Speicher 1 für einen aktuellen Frame zugeführten gemeinsamen aktuellen Blocks in jeweiligen Referenzbereichen auf im wesentlichen dieselbe Weise wie beim herkömmlichen Prozeß durch, wie er in Fig. 7 dargestellt ist.
  • Die Bewegungskompensationsprozessoren 2-1 bis 2-3 erfassen nämlich jeweils anfangs die Vorwärts-Bewegungsvektoren und die Rückwärts-Bewegungsvektoren und erzeugen dann Vorwärts-Vorhersageblöcke und die Rückwärts- Vorhersageblöcke.
  • Darauffolgend erzeugen die jeweiligen Bewegungskompensationsprozessoren 2-1 bis 2-3 die bidirektionalen Vorhersageblöcke durch eine jeweilige Durchschnittsbildung der erzeugten Vorwärts-Vorhersageblöcke und der erzeugten Rückwärts- Vorhersageblöcke. Die Bewegungskompensationsprozessoren 2-1 bis 2-3 erzeugen auch Auswertedaten bzw. Bewertungsdaten zum Bewerten der Ähnlichkeit dieser Vorhersageblöcke und des aktuellen Blocks.
  • Die jeweiligen Bewegungskompensationsprozessoren 2-1 bis 2-3 wählen den Interframeprädiktionscodiertyp aus, bei welchem die minimalen Bewertungsdaten erhalten werden können, leiten die Summen der Absolutwerte der AC-Komponenten des aktuellen Blocks ab und beurteilen den Codiertyp für den aktuellen Block durch Vergleichen der Summen der Absolutwerte der AC-Komponenten und der minimalen Bewertungsdaten und wählen somit den Vorhersageblock aus.
  • Es sollte beachtet werden, daß der Vorwärts-Bewegungsvektor und der Rückwärts- Bewegungsvektor unter einer Voraussetzung, daß der aktuelle Block in der Mitte des Referenzbereichs angeordnet ist, durch die Bewegungskompensationsprozessoren 2-1 bis 2-3 auf die gleiche Weise wie im Stand der Technik erfaßt werden. Daher wird eine Korrektur des Vorwärts-Bewegungsvektors und des Rückwärts- Bewegungsvektors in Abhängigkeit von der Position der Referenzbereiche nötig.
  • Andererseits sollten der Vorwärts-Referenzbereich C1 und der Rückwärts- Referenzbereich E1 innerhalb des Rasters sein. Beim Prozeß des Bewegungskompensationsprozessors 2-1 wird die Position des aktuellen Blocks auf dem Raster die Mitte des zugeordneten Vorwärts-Referenzunterbereichs D0 und des zugeordneten Rückwärts-Referenzunterbereichs G0. Daher wird bei dem Prozeß des Bewegungskompensationsprozessors 2-1 kein Problem entstehen, da das Ergebnis einer Blockanpassung mit dem Referenzblock, der den Bereich außerhalb des Rasters enthält, ignoriert wird.
  • Jedoch werden beim Prozeß der Bewegungskompensationsprozessoren 2-2 und 2-3 die Prozesse unter der Voraussetzung durchgeführt, daß die Position des aktuellen Blocks in der Mitte jeweiliger der zugeordneten Vorwärts- und Rückwärts- Referenzunterbereiche D1, D2 und G2, G1 ist, während der aktuelle Block nicht in der Mitte dieser Unterbereiche angeordnet ist. Daher enthalten die Bewegungskompensationsprozessoren 2-2 und 2-3 inhärent dann, wenn der aktuelle Block in der Nähe des Endes des Rasters angeordnet ist, den Bereich außerhalb des Schirms im Vorwärts-Referenzunterbereich und/oder im Rückwärts- Referenzunterbereich und werden einen Prozeß ohne eine Erkennung der Tatsache durchführen, daß die Vorwärts- und/oder Rückwärts-Referenzunterbereiche den Bereich außerhalb des Schirms enthalten. Daher ist es möglich, daß das Ergebnis einer Ausgabe der Bewegungskompensationsprozessoren 2-2 und 2-3 fehlerhaft ist.
  • Wenn einmal die Bestimmungen des Codiertyps durch die Bewegungskompensationsprozessoren 2-1 bis 2-3 beendet sind, werden die Ergebnisse einer Vorhersage in Reaktion auf das vom Zeitgabegenerator 8 ausgegebene Zeitgabesteuersignal gleichzeitig zum Vorhersageergebnis-Selektor 7 ausgegeben.
  • Als Ergebnisse einer Vorhersage werden (1) eine Position des aktuellen Blocks auf dem Raster (hier die Koordinate des Pixels in der linken oberen Ecke des aktuellen Blocks), (2) die Bewertungsdaten einer Ähnlichkeit des Vorhersageblocks und des aktuellen Blocks, der bei der Bestimmung des Codiertyps verwendet wird, (3) der Codiertyp des aktuellen Blocks, (4) der Vorwärts-Bewegungsvektor und (5) der Rückwärts-Bewegungsvektor in einer Reihenfolge ausgegeben.
  • Der Vorhersageergebnis-Selektor 7 wählt eine der Ausgaben der Bewegungskompensationsprozessoren 2-1 bis 2-3 aus und gibt die Identifikationsnummer des ausgewählten der Bewegungskompensationsprozessoren 2-1 bis 2-3, den Vorwärts-Bewegungsvektor und den Rückwärts-Bewegungsvektor, die als Ergebnisse einer Vorhersage durch den ausgewählten der Bewegungskompensationsprozessoren 2-1 bis 2-3 ausgegeben sind, zur Bewegungsvektor-Korrektureinheit 6 aus.
  • Andererseits gibt der Vorhersageergebnis-Selektor 7 auch die Identifikationsnummer des ausgewählten der Bewegungskompensationsprozessoren 2-1 bis 2-3 zum Vorhersageblock-Selektor 5 aus. In Zusammenhang damit gibt der Vorhersageergebnis-Selektor 7 den Codiertyp als die Ergebnisse einer Vorhersage durch den ausgewählten der Bewegungskompensationsprozessoren 2-1 bis 2-7 zum Anschluß 15 aus.
  • Im Vorhersageergebnis-Selektor 7 wird nämlich die Position des aktuellen Blocks auf dem Raster als die ersten Daten, die in den Ergebnissen einer Vorhersage enthalten sind, aus dem Ergebnis einer Vorhersage des Bewegungskompensationsprozessors 2-1 eingegeben, um die Ausgabe des Bewegungsvorhersageprozessors auszuschließen, in welchem der Vorwärts-Referenzbereich C1 oder der Rückwärts-Referenzbereich E1 außerhalb des Rasters gelangt.
  • Hier wird dann, wenn als die Position des aktuellen Blocks auf dem Raster die Koordinate des Pixels bei der linken oberen Ecke des aktuellen Blocks durch (ix, iy) (0 = ix, < NX, 0 = iy < NY) ausgedrückt, gelangen die linken Seiten des Vorwärts- Referenzbereichs D1 und des Rückwärts-Referenzbereichs G1 teilweise außerhalb des Rasters, wo ix = 0 bis ix = 16 und gelangen die rechten Seiten des Vorwärts- Referenzbereichs D2 und des Rückwärts-Referenzbereichs G2 teilweise außerhalb des Rasters, wo ix = NX - 32 bis ix = NX - 16.
  • Daher ist es dann, wenn die Position des aktuellen Blocks eine dieser Positionen ist, möglich, daß das Ergebnis einer Ausgabe vom Bewegungskompensationsprozessor 2-2 oder 2-3 einen Fehler enthält. Daher sollte das Ergebnis einer Ausgabe des Bewegungskompensationsprozessors 2-2 oder 2-3 weggelassen werden.
  • Es sollte beachtet werden, daß auf gleiche Weise dann, wenn iy = 0 bis iy = 16, Teile der oberen Teile jeweiliger Referenzbereiche außerhalb des Rasters angeordnet sind, und dann, wenn iy = NY - 32 bis iy = NY - 16, Teile der unteren Teile jeweiliger Referenzbereiche außerhalb des Rasters angeordnet sind. Jedoch sollte bei dem gezeigten Beispiel deshalb, weil die Referenzbereiche in bezug auf die Position in der vertikalen Richtung nicht verändert werden, kein Problem entstehen.
  • Demgemäß wird dann, wenn der aktuelle Block bis zu 2 Blöcke vom linken Ende des Rasters oder 2 Blöcke vom rechten Ende des Rasters angeordnet ist, das Ergebnis einer Vorhersage durch den Bewegungskompensationsprozessor 2-1 ausgewählt.
  • Als nächstes vergleicht der Vorhersageergebnis-Selektor 7 die Bewertungsdaten als die zweiten Daten, die in den eingegebenen Ergebnissen einer Vorhersage enthalten sind, um einen der Bewegungskompensationsprozessoren 2-1 bis 2-3 auszuwählen, der die Bewertungsdaten mit dem minimalen Wert eingibt. Dann erhält der Vorhersageergebnis-Selektor 7 die Identifikationsnummer des ausgewählten Bewegungskompensationsprozessors.
  • Der minimale Wert der Bewertungsdaten stellt dar, daß der Vorhersageblock, der aus der Interframeprädiktion resultiert, die durch den ausgewählten Bewegungskompensationsprozessor durchgeführt wird, die höchste Ähnlichkeit mit dem aktuellen Block hat. Demgemäß sollte der durch die Bewertungsdaten mit dem minimalen Wert bestimmte Codiertyp als der Codiertyp des aktuellen Blocks optimal sein.
  • Daher nimmt der Vorhersageergebnis-Selektor 7 den Codiertyp als die dritten Daten auf, die im Ergebnis einer Vorhersage enthalten sind, das durch den ausgewählten Bewegungskompensationsprozessor ausgegeben wird, und gibt sie zum Anschluß 15 aus.
  • Ebenso nimmt der Vorhersageergebnis-Selektor 7 auch den Vorwärts- Bewegungsvektor und den Rückwärts-Bewegungsvektor als die vierten und fünften Daten, die im Ergebnis einer Vorhersage enthalten sind, die durch den ausgewählten Bewegungskompensationsprozessor durchgeführt wird, und gibt sie zur Bewegungsvektor-Korrektureinheit 6 aus. Andererseits gibt der Vorhersageergebnis- Selektor 7 die Identifikationsnummer des ausgewählten Bewegungskompensationsprozessors zum Vorhersageblock-Selektor 5 aus.
  • Die Bewegungsvektor-Korrektureinheit 6 führt eine Korrektur des Vorwärts- Bewegungsvektors und des Rückwärts-Bewegungsvektors in Abhängigkeit von der eingegebenen Nummer des Bewegungskompensationsprozessors durch und gibt sie zu den Anschlüssen 12 und 13 aus. Die Bewegungsvektor-Korrektureinheit 6 führt nämlich eine Korrektur für den Vorwärts-Bewegungsvektor und den Rückwärts-Bewegungsvektor auf die folgende Weise durch, und zwar unter der Annahme, daß der eingegebene Vorwärts-Bewegungsvektor (vx1, vy1) ist und der eingegebene Rückwärts-Bewegungsvektor (vx2, vy2) ist.
  • Andererseits wird dann, wenn der Vorwärts-Bewegungsvektor und der Rückwärts- Bewegungsvektor vom Bewegungskompensationsprozessor 2-1 eingegeben werden, der korrigierte Vorwärts-Bewegungsvektor (vx1, vy1) und wird der korrigierte Rückwärts-Bewegungsvektor (vx2, vy2).
  • Wenn der Vorwärts-Bewegungsvektor und der Rückwärts-Bewegungsvektor vom Bewegungskompensationsprozessor 2-2 eingegeben werden, wird der korrigierte Vorwärts-Bewegungsvektor (vx1 - 16, vy1) und wird der korrigierte Rückwärts- Bewegungsvektor (vx2 + 16, vy2).
  • Gleichermaßen wird dann, wenn der Vorwärts-Bewegungsvektor und der Rückwärts-Bewegungsvektor vom Bewegungskompensationsprozessor 2-3 eingegeben werden, der korrigierte Vorwärts-Bewegungsvektor (vx1 + 16, vy1) und wird der korrigierte Rückwärts-Bewegungsvektor (vx2 - 16, vy2).
  • Eine solche Korrektur berücksichtigt die Differenz der Positionen der Referenzbereiche der Bewegungskompensationsprozessoren 2-1 bis 2-3. Beispielsweise ist der Vorwärts-Referenzbereich D1 des Bewegungskompensationsprozessors 2-2, bei der Position angeordnet, die gegenüber der Position des Vorwärts- Referenzbereichs D0 des Bewegungskompensationsprozessors 2-1 bis zu 16 Pixel nach links verschoben ist. Daher wird der tatsächliche Vorwärts-Bewegungsvektor durch die oben aufgezeigte Korrektur ein richtiger Wert.
  • Ebenso ist der Rückwärts-Referenzbereich G2 des Bewegungskompensationsprozessors 2-2 bei der Position angeordnet, die gegenüber der Position des Rückwärts-Referenzbereichs G0 des Bewegungskompensationsprozessors 2-1 bis zu 16 Pixel nach rechts verschoben ist. Daher wird der tatsächliche Vorwärts- Bewegungsvektor durch die oben aufgezeigte Korrektur ein richtiger Wert.
  • Gleichermaßen sind die Positionen des Vorwärts-Referenzbereichs D2 und des Rückwärts-Referenzbereichs G1 des Bewegungskompensationsprozessors 2-3 auch gegenüber den Positionen der Vorwärts- und Rückwärts-Referenzbereiche D0 und G1 des Bewegungskompensationsprozessors 2-1 versetzt, und der Vorwärts-Bewegungsvektor und der Rückwärts-Bewegungsvektor, die durch den Bewegungskompensationsprozessor 2-3 abgeleitet werden, werden durch die oben aufgezeigte Korrektur ein richtiger Wert.
  • Demgemäß werden als Ergebnis einer parallelen Erfassung der Bewegungsvektoren innerhalb des innerhalb des Rasters angeordneten Referenzbereichs unter Verwendung dreier Bewegungskompensationsprozessoren 2-1 bis 2-3 der vom Bewegungskompensationsprozessor, der die kleinsten Bewertungsdaten ausgibt, ausgegebene Codiertyp, der korrigierte Vorwärts-Bewegungsvektor und der korrigierte Rückwärts-Bewegungsvektor jeweils zu den Anschlüssen 15, 12, 13 ausgegeben.
  • In diesem Fall sind jeweiligen Bewegungskompensationsprozessoren 2-1 bis 2-3 zugeordnete Erfassungsbereiche des Bewegungsvektors -8 = vx1, vx2 = 8, -8 = vy1, vy2 = 8, da die Größe der jeweiligen der Bewegungskompensationsprozessoren 2-1 bis 2-3 zugeordneten Referenzbereiche horizontale 32 Pixel x vertikale 32 Pixel ist. Durch Korrigieren von diesen auf die oben aufgezeigte Weise kann das Folgende gebildet werden.
  • In einem Fall des Bewegungskompensationsprozessors 2-1 wird der Vorwärts- Bewegungsvektor (-8 = vx1 = 8, -8 = vy1 = 8) und wird der korrigierte Rückwärts- Bewegungsvektor (-8 = vx2 = 8, -8 = vy2 = 8).
  • In einem Fall des Bewegungskompensationsprozessors 2-2 wird der Vorwärts- Bewegungsvektor (-24 = vx1 = -8, -8 = vy1 = 8) und wird der korrigierte Rückwärts- Bewegungsvektor (8 = vx2 = 24, -8 = vy2 = 8).
  • In einem Fall des Bewegungskompensationsprozessors 2-3 wird der Vorwärts- Bewegungsvektor (8 = vx1 = 24, -8 = vy1 = 8) und wird der korrigierte Rückwärts- Bewegungsvektor (-24 = vx2 = -8, -8 = vy2 = 8).
  • Demgemäß wird der Erfassungsbereich des Vorwärts-Bewegungsvektors -24 = vx1 = 24, -8 = vy1 = 8 und wird der Erfassungsbereich des Rückwärts- Bewegungsvektors -24 = vx2 = 24, -8 = vy2 = 8. Somit kann ein dreifach größerer Erfassungsbereich im Vergleich zu demselben erhalten werden, bei welchem nur ein Bewegungskompensationsprozessor verwendet wird.
  • Der Vorhersageblock-Selektor 5 reagiert auf die Identifikationsnummer des durch den Vorhersageergebnis-Selektor 7 ausgewählten Bewegungskompensationsprozessors, um einen internen Selektor (nicht gezeigt) zum Ausgeben des durch den Bewegungskompensationsprozessor ausgegebenen Vorhersageblocks zu einem Anschluß 14 einzustellen.
  • Demgemäß gibt dann, wenn die drei Bewegungskompensationsprozessoren 2-1 bis 2-3 die Vorhersageblöcke gleichzeitig in Reaktion auf das vom Zeitgabegenerator 8 ausgegebene Zeitgabesteuersignal ausgeben, der Vorhersageblock-Selektor 5 den durch den durch den Vorhersageergebnis-Selektor 7 ausgewählten Bewegungskompensationsprozessor ausgegebenen Vorhersageblock zum Anschluß 14 aus.
  • Wie es oben aufgezeigt ist, wird durch paralleles Anordnen der drei Bewegungskompensationsprozessoren 2-1 bis 2-3 zum Durchführen einer bidirektionalen Vorhersage im Vorwärts-Referenzbereich und im Rückwärts-Referenzbereich von horizontalen 32 Pixeln x vertikalen 32 Pixeln die bidirektionale Vorhersage innerhalb des Vorwärts-Referenzbereichs C1 und des Rückwärts-Referenzbereichs E1 von horizontalen 64 Pixeln x vertikalen 32 Pixeln durchgeführt.
  • Initiieren andererseits die jeweiligen Bewegungskompensationsprozessoren 2-1 bis 2-3 die Prozesse gleichzeitig und beenden die Prozesse gleichzeitig, wird die Prozeßzeit eines Ausführungsbeispiels der bidirektionalen Vorhersage gemäß der Erfindung eine Summe der Prozeßzeit eines Bewegungskompensationsprozessors und der Prozeßzeit des Vorhersageergebnis-Selektor 7 und der Bewegungsvektor- Korrektureinheit 6.
  • Zusätzlich kann die Prozeßzeit im Vergleich zur Prozeßzeit jeweiliger Bewegungskompensationsprozessoren zum Durchführen einer Erfassung des Vorwärts- Bewegungsvektors und des Rückwärts-Bewegungsvektors kleiner gemacht werden. Das gezeigte Ausführungsbeispiel der Erfindung kann nämlich eine bidirektionale Vorhersage unter Verwendung eines zweimal größeren Referenzbereichs mit einer äquivalenten Prozeßzeit gegenüber dem Stand der Technik durchführen.
  • Während das vorangehende Ausführungsbeispiel in bezug auf drei Bewegungskompensationsprozessoren diskutiert worden ist, die parallel verwendet werden, sollte es offensichtlich sein, eine größere Anzahl von Bewegungskompensationsprozessoren zu verwenden, um den Referenzbereich weiter auszuweiten.
  • In einem solchen Fall kann die Prozeßzeit im wesentlichen vergleichbar mit der Prozeßzeit durch einen einzigen Bewegungskompensationsprozessor gehalten werden. Andererseits können bei einer parallelen Anordnung der Bewegungskompensationsprozessoren hinzugefügte Schaltungen relativ einfache Zusammensetzungen sein, wie beispielsweise der Vorhersageergebnis-Selektor 7, die Bewegungsvektor-Korrektureinheit 6 und der Vorhersageblock-Selektor 5.
  • Fig. 3 zeigt eine Block-Prozeßzeitgabe durch ein Ausführungsbeispiel der Erfindung. In Fig. 3 stellen a-1 bis a-3 eine Erfassung des Vorwärts-Bewegungsvektors dar, stellen b-1 bis b-3 eine Erfassung des Rückwärts-Bewegungsvektors dar, stellen c-1 bis c-3 eine Bestimmung des Codiertyps dar, stellen d-1 bis d-3 eine Ausgabe der Ergebnisse einer Vorhersage dar, stellen e-1 bis e-3 eine Ausgabe der Vorhersageblöcke dar, stellt s eine Analyse des Ergebnisses einer Vorhersage dar, stellt g eine Korrektur des Vorwärts-Bewegungsvektors und des Rückwärts- Bewegungsvektors dar und stellt h eine Auswahl des Vorhersageblocks und eine Ausgabe des ausgewählten Vorhersageblocks dar.
  • Wie es in Fig. 3 gezeigt ist, werden bei den Bewegungskompensationsprozessoren 2-1 bis 2-3 die Erfassung der Vorwärts-Bewegungsvektoren a-1 bis a-3, die Erfassung der Rückwärts-Bewegungsvektoren b-1 bis b-3, eine Bestimmung der Codiertypen c-1 bis c-3, die Ausgabe der Vorhersageergebnisse d-1 bis d-3, eine Ausgabe der Vorhersageblöcke e-1 bis e-3 gleichzeitig initiiert und gleichzeitig beendet. Daher ist die gesamte Prozeßzeit im wesentlichen vergleichbar mit der Prozeßzeit des einzelnen Bewegungskompensationsprozessors.
  • Fig. 4 ist ein Blockdiagramm, das eine Zusammensetzung des bevorzugten Ausführungsbeispiels des Bewegungskompensationsprozessors gemäß der vorliegenden Erfindung zeigt. In Fig. 4 hat der Bewegungskompensationsprozessor 2 im wesentlichen dieselbe Zusammensetzung wie der Stand der Technik der Fig. 7, außer einem Hinzufügen eines Anschlusses 49, der mit den Offset- bzw. Versatzregistern 38 und 39 verbunden ist, und eines Adressengenerators 20 und eines Interframeprädiktionscodier-Selektors 35, die mit dem Paketadressengenerator 29 verbunden sind.
  • Der Bewegungskompensationsprozessor 2 weist nämlich Adressengeneratoren 20, 24 bis 27, einen Speicher 21 für einen aktuellen Block, einen Vorwärts- Referenzbereichsspeicher 22, einen Rückwärts-Referenzbereichsspeicher 23, einen Arithmetikteil 28, den Paketadressengenerator 29, ein AC-Register 30, ein Vorwärts-Bewegungsvektorregister 31, ein Rückwärts-Bewegungsvektorregister 32, einen Codiertyp-Selektor 33, einen Durchschnittsbildungsteil 34, einen Interframeprädiktions-Selektor 35, eine Steuerung 36, Selektoren 37, 40 und 41, Offset- bzw. Versatzregister 38 und 39 und Anschlüsse 42 bis 49 auf.
  • Andererseits ist der Bewegungskompensationsprozessor 2 jeweils mit dem Speicher 1 für einen aktuellen Frame und dem Referenzframespeicher 9 verbunden. Der Speicher 1 für einen aktuellen Frame ist nämlich über den Anschluß 42 mit dem Adressengenerator 20 und über den Anschluß 43 mit dem Speicher 21 für einen aktuellen Block verbunden.
  • Der Referenzframespeicher 9 ist über den Anschluß 45 mit dem Adressengenerator 24 verbunden. Ebenso ist der Referenzframespeicher 9 über den Anschluß 44 mit dem Vorwärts-Referenzbereichsspeicher 22 und dem Rückwärts- Referenzbereichsspeicher 23 verbunden.
  • Beim Bewegungskompensationsprozessor 2 wird die Koordinate des Pixels der linken oberen Ecke des aktuellen Blocks, das die Position des aktuellen Blocks auf dem Raster anzeigt, über den Anschluß 46 vom Adressengenerator 20 ausgegeben, was im Ergebnis der Vorhersage enthalten ist. Andererseits gibt der Interframeprädiktions-Selektor 35 die Bewertungsdaten, die die Ähnlichkeit des aktuellen Blocks und jeweiliger auszugebender Vorhersageblöcke über den Anschluß 46 zum Codiertyp-Selektor 33 aus, was im Ergebnis einer Vorhersage ebenso enthalten ist.
  • Zuerst wird ein Betrieb der Offset-Referenzbereich 38 und 29 und die Ausgabenreihenfolge des Ergebnisses einer Vorhersage diskutiert. Dann wird die Tatsache diskutiert, daß der Bewegungskompensationsprozessor 2 eine Bewegungsvorhersage gleich dem herkömmlichen bidirektionalen Vorhersagesystem durchführen kann. Ebenso wird weiterhin die Tatsache diskutiert, daß das bevorzugte Ausführungsbeispiel des Bewegungskompensationsprozessors 2 auf das bevorzugte Ausführungsbeispiel des bidirektionalen Bewegungskompensationssystems gemäß der Erfindung anwendbar ist.
  • Hier ist zur Vereinfachung der Offenbarung angenommen, daß die Adresse des Referenzframespeichers 9 ein Pixel in einer Adresse speichert, wie es in Fig. 5 gezeigt ist.
  • Das bedeutet, daß zwei im Referenzframespeicher 9 gespeicherte Frames als h1(jx, jy) und h2(jx, jy) angenommen sind, wobei jx und jy Koordinaten in den horizontalen und vertikalen Richtungen sind und 0 = jx < NX und. 0 = jy < NY gilt. Die ersten Zeilen bzw. Linien, bei welchen jy des ersten Frames h1(jx, jy) Null wird, sind von einer Adresse 0 bis NX - 1 gespeichert. Gleichermaßen sind Pixel pro einer Zeile gespeichert, so daß die (NY)-ten Zeilen, bei welchen jy NY-1 werden, von einer Adresse NX(NY-1) bis NX*NY-1 in einer Reihenfolge gespeichert werden. Somit wird die Adresse von h1 (jx, jy) jy*NX + jx. Dabei stellt "*" eine "Multiplikation" där.
  • Andererseits wird der zweite Frame h2(jx, jy) auf die ähnliche Weise von der Adresse abgespeichert, die der Endadresse NX*NY des ersten Frames h1(jx, jy) am nächsten ist. Solche Adressen werden im Referenzframespeicher 9 zugeordnet. Demgemäß wird die Adresse des zweiten Frames h2(jx, jy) jy*NX + jx + NX*NY.
  • Die folgende Diskussion für den Bewegungskompensationsprozessor 2-1 wird derart angegeben, daß er einen Vorwärts-Referenzbereich C1 und einen Rückwärts- Referenzbereich E1 mit horizontalen 32 Pixeln x vertikalen 32 Pixeln hat.
  • Daher können im normalen Fall, in welchem die Position des aktuellen Blocks auf dem Raster in der Mitte des Vorwärts-Referenzbereichs C1 und des Rückwärts- Referenzbereichs E1 angeordnet ist, wenn die Koordinate des Pixels bei der linken oberen Ecke des aktuellen Blocks (ix, iy) (0 = ix < NX, 0 = iy < NY) ist, die Koordinaten (jx, jy) (0 = jx < NX, 0 = jy < NY) der Pixel, die den Vorwärts-Referenzbereich C1 und den Rückwärts-Referenzbereich E1 bilden, als jx - 8 = jx < ix + 23, iy - 8 = = jy < iy + 23 ausgedrückt werden.
  • Das Offsetregister 38 ist zum Einstellen eines Offsets bzw. Versatzes vorgesehen, der zur Adresse des Vorwärts-Referenzbereichs C1 hinzuzufügen ist, die aus dem externen Referenzframespeicher 9 durch den Anschluß 49 gelesen wird. Andererseits stellt das Offsetregister 39 einen Offset ein, der der Adresse des Rückwärts- Referenzbereichs E1 hinzuzufügen ist, die durch den Anschluß 49 aus dem externen Referenzframespeicher 9 ausgelesen wird.
  • Der im Offsetregister 38 gespeicherte Wert ist derart angenommen, daß er "Offset 0" ist, und der im Offsetregister 39 gespeicherte Wert ist derart angenommen, daß er "Offset 1" ist. Wenn die Koordinate des Pixels bei der linken oberen Ecke des aktuellen Blocks (ix, iy) (0 = ix < NX, 0 = iy < NY) ist, wird die durch den Adressengenerator 24 beim Lesen des Vorwärts-Referenzbereichs C1 zu erzeugende Adresse wie folgt.
  • Die Adresse der ersten Zeile des Vorwärts-Referenzbereichs C1 ist Basis + (jy - 8)*NX + ix - 8 + Offset 0, ..., Basis + (jy - 8)*NX + ix + 23 + Offset 0.
  • Die Adresse der zweiten Zeile des Vorwärts-Referenzbereichs C1 ist Basis + (jy - 7)*NX + ix - 8 + Offset 0, ..., Basis + (jy - 7)*NX + ix + 23 + Offset 0.
  • Gleichermaßen ist die 32-te Zeile des Vorwärts-Referenzbereichs C1 Basis + (jy + 23)*NX + ix - 8 + Offset 0, ..., Basis + (jy + 23)*NX + ix + 23 + Offset 0.
  • Jedoch ist bei der vorangehenden Adresse "Basis" die Adresse (0 oder NX*NY) des Anfangspixels des vergangenen Frames.
  • Andererseits ist die durch den Adressengenerator 24 beim Auslesen des Rückwärts-Referenzbereichs E1 zu erzeugende Adresse wie folgt.
  • Die Adresse der ersten Zeile des Rückwärts-Referenzbereichs E1 ist Basis + (jy - 8)*NX + ix - 8 + Offset 1, ..., Basis + (jy - 8)*NX + ix + 23 + Offset 1.
  • Die Adresse der zweiten Zeile des Rückwärts-Referenzbereichs E1 ist Basis + (jy - 7)*NX + ix - 8 + Offset 1 ,..., Basis + (jy - 7)*NX + ix + 23 + Offset 1.
  • Gleichermaßen ist die 32-te Zeile des Rückwärts-Referenzbereichs E1 Basis + (jy + 23)*NX + ix - 8 + Offset 1, ..., Basis + (jy + 23)*NX + ix + 23 + Offset 1.
  • Jedoch ist bei der vorangehenden Adresse "Basis" die Adresse (0 oder NX*NY) des Anfangspixels des zukünftigen Frames.
  • Der Bewegungskompensationsprozessor 2 gibt die Ergebnisse einer Vorhersage in der oben angegebenen Reihenfolge gemäß der durch den Paketadressengenerator 29 erzeugten Paketadresse über den Anschluß 46 aus. Ebenso ordnet der Bewegungskompensationsprozessor 2 "0", "1", "2", "3" und "4" der Paketadresse für den Adressengenerator 20, den Interframeprädiktions-Selektor 35, den Codiertyp- Selektor 33, das Vorwärts-Bewegungsvektorregister 31 und das Rückwärts- Bewegungsvektorregister 32 zu.
  • Für die Paketadresse "0" wird nämlich die Position des aktuellen Blocks auf dem Raster (Koordinate des Pixels der linken oberen Ecke des aktuellen oberen Blocks) zugeordnet. Der Paketadresse "1 " werden die Bewertungsdaten zum Bewerten einer Ähnlichkeit des Vorhersageblocks und des aktuellen Blocks zugeordnet. Der Paketadresse "2" wird der Codiertyp des aktuellen Blocks zugeordnet. Der Paketadresse "3" wird der Vorwärts-Bewegungsvektor zugeordnet. Der Paketadresse "4" wird der Rückwärts-Bewegungsvektor zugeordnet.
  • Demgemäß erscheint dann, wenn der Paketadressengenerator 29 die Paketadressen "0" bis "4" in einer Reihenfolge erzeugt, das Ergebnis einer Vorhersage am Anschluß 46 in der Reihenfolge.
  • Als nächstes wird ein Betrieb des Bewegungskompensationsprozessors 2 diskutiert. Wie es oben aufgezeigt ist, hat der Bewegungskompensationsprozessor 2 den Anschluß 49 mit den Offsetregistern 38 und 39 verbunden, zusätzlich zum herkömmlichen Bewegungskompensationsprozessor zum Ausgeben der Position des aktuellen Blocks auf dem Raster und der Bewertungsdaten vor dem Ergebnis einer Vorhersage, das herkömmlicherweise ausgegeben worden ist, als das Ergebnis einer Vorhersage.
  • Daher werden durch vorläufiges Schreiben von "0" in die Offsetregister 38 und 39 durch den Anschluß 49 "Offset 0" und "Offset 1" der durch den Adressengenerator 24 beim Lesen des Vorwärts-Referenzbereichs C1 und des Rückwärts- Referenzbereichs E1 erzeugten Adresse jeweils "0". Daher können der Vorwärts- Referenzbereich und der Rückwärts-Referenzbereich E1, in welchen die Position des aktuellen Blocks auf dem Raster in der Mitte der Referenzbereiche positioniert ist, im Vorwärts-Referenzbereichspeicher 22 und im Rückwärts-Referenzbereichspeicher 23 gespeichert werden. Daher kann, gleich wie beim Stand der Technik, der Vorhersageblock durch Verwenden des Vorwärts- Referenzbereichs C1 und des Rückwärts-Referenzbereichs E1 ausgegeben werden. Daher ist dann, wenn der Bewegungskompensationsprozessor 2 der Fig. 4 denselben Vorwärts-Referenzbereich C1 und denselben Rückwärts-Referenzbereich E1 mit den Bewegungskompensationsprozessoren 2-1 bis 2-3 der Fig. 1 lesen kann, der Bewegungskompensationsprozessor 2 offensichtlich auf das in Fig. 1 dargestellte bidirektionale Vorhersagesystem anwendbar.
  • Wenn die Werte "0" über den Anschluß 49 in die Offsetregister 38 und 39 geschrieben werden, können der Vorwärts-Referenzbereich C1 und der Rückwärts- Referenzbereich E1, bei welchen die Position des aktuellen Blocks auf dem Raster in der Mitte der Referenzbereiche positioniert ist, im Vorwärts- Referenzbereichspeicher 22 und im Rückwärts-Referenzbereichspeicher 23 gespeichert werden.
  • Demgemäß werden der Vorwärts-Referenzbereich D0 und der Rückwärts- Referenzbereich G0, die in Fig. 2 gezeigt sind, so gelesen, daß der Bewegungskompensationsprozessor 2, der in Fig. 4 dargestellt ist, als der Bewegungskompensationsprozessor 2-1 der Fig. 2 verwendet werden kann.
  • Andererseits wird dann, wenn "-16" durch den Anschluß 49 in das Offsetregister 38 geschrieben wird, die durch den Adressengenerator 24 beim Lesen des Vorwärts- Referenzbereichs C1 zu erzeugende Adresse wie folgt.
  • Die Adresse der ersten Zeile des Vorwärts-Referenzbereichs C1 wird Basis + (jy - 8)*NX + ix - 8 - 16, ..., Basis + (jy - 8)*NX + ix + 23 - 16.
  • Andererseits wird die Adresse der zweiten Zeile des Vorwärts-Referenzbereichs C1 Basis + (jy - 7)*Nx + ix - 8 - 16, ..., Basis + (jy - 7)*NX + ix + 23 - 16.
  • Gleichermaßen wird die Adresse der 32-ten Zeile des Vorwärts-Referenzbereichs C1 Basis + (jy + 23)*NX + ix - 8 - 16, ..., Basis + (jy + 23)*NX + ix + 23 - 16.
  • Dies bedeutet, daß dann, wenn "16" in das Offsetregister 38 geschrieben wird, der Bereichsoffset für 16 Pixel in Richtung nach links relativ zu dem Fall, in welchem der Wert des Offsetregisters 38 "0" ist, gelesen wird. Demgemäß wird der Vorwärts-Referenzbereich D1 der Fig. 2 ausgelesen.
  • Gleichermaßen wird dann, wenn ein Wert "16" durch den Anschluß 49 in das Offsetregister 39 geschrieben wird, die durch das Adressenregister 24 beim Lesen des Rückwärts-Referenzbereichs E1 erzeugte Adresse wie folgt.
  • Die Adresse der ersten Zeile des Rückwärts-Referenzbereichs E1 wird Basis + (jy + 8)*NX + ix - 8 + 16, ..., Basis + (jy - 8)*NX + ix + 23 + 16.
  • Andererseits wird die Adresse der zweiten Zeile des Rückwärts-Referenzbereichs E1 Basis + (jy - 7)*NX + ix - 8 + 16, ..., Basis + (jy - 7)*NX + ix + 23 + 16.
  • Gleichermaßen wird die Adresse der 32-ten Zeile des Rückwärts-Referenzbereichs E1 Basis + (jy + 23)*NX + ix - 8 + 16, ..., Basis + (jy + 23)*NX + ix + 23 + 16.
  • Dies bedeutet, daß dann, wenn "16" in das Offsetregister 39 geschrieben wird, der Bereichsoffset für 16 Pixel in Richtung nach rechts relativ zu dem Fall, in welchem der Wert des Offsetregisters 39 "0" ist, gelesen wird. Demgemäß wird der Rückwärts-Referenzbereich G2 der Fig. 2 ausgelesen.
  • Daher entspricht das Vorangehende einem Lesen des Vorwärts-Referenzbereichs D1 und des Rückwärts-Referenzbereichs G2, die in Fig. 2 gezeigt sind und gelesen werden. Daher ist der Bewegungskompensationsprozessor 2 der Fig. 4 als der Bewegungskompensationsprozessor 2-2 der Fig. 1 anwendbar.
  • Gleichermaßen werden dann, wenn der Wert "16" über den Anschluß 49 in das Offsetregister 38 geschrieben wird und der Wert "-16" über den Anschluß 49 in das Offsetregister 39 geschrieben wird, der Vorwärts-Referenzbereich D2 und der Rückwärts-Referenzbereich G1 der Fig. 2 gelesen. Daher kann der Bewegungskompensationsprozessor 2 der Fig. 4 als der Bewegungskompensationsprozessor 2-3 der Fig. 1 verwendet werden.
  • Demgemäß kann dann, wenn "0" in das Offsetregister 38 geschrieben ist und "0" in das Offsetregister 39 geschrieben ist, der Bewegungskompensationsprozessor 2 als der Bewegungskompensationsprozessor 2-1 der Fig. 1 verwendet werden. Gleichermaßen kann dann, wenn "-16" in das Offsetregister 38 geschrieben ist und "16" in das Offsetregister 39 geschrieben ist, der Bewegungskompensationsprozessor 2 als der Bewegungskompensationsprozessor 2-2 verwendet werden. Ebenso kann dann, wenn "16" in das Offsetregister 38 geschrieben ist und "-16" in das Offsetregister 39 geschrieben ist, der Bewegungskompensationsprozessor 2 als der Bewegungskompensationsprozessor 2-3 verwendet werden.
  • Wie es oben aufgezeigt ist, kann der in Fig. 4 dargestellte Bewegungskompensationsprozessor 2 als die Bewegungskompensationsprozessoren 2-1 bis 2-3 des bidirektionalen Vorhersagesystems der Fig. 1 verwendet werden. Es sollte beachtet werden, daß, während das gezeigte Ausführungsbeispiel in bezug auf ein Beispiel darstellt und diskutiert worden ist, bei welchem der Vorwärts-Referenzbereich und der Rückwärts-Referenzbereich in der horizontalen Richtung bewegt werden, es möglich ist, diese Referenzbereiche in einer anderen Richtung zu bewegen, indem die Werte der Offsetregister 38 und 39 geeignet eingestellt werden.
  • Die Fig. 6 zeigt ein Ablaufdiagramm, das den Prozeßbetrieb bzw. Verarbeitungsbetrieb des bevorzugten Ausführungsbeispiels des bidirektionalen Vorhersageverfahrens gemäß der vorliegenden Erfindung zeigt. Das gezeigte Ausführungsbeispiel des bidirektionalen Vorhersageverfahrens gemäß der vorliegenden Erfindung wird unter Bezugnahme auf Fig. 6 diskutiert.
  • Zuerst wird dann, wenn der aktuelle Block bei einem Schritt S1 zum Eingeben eines aktuellen Blocks eingegeben wird, der eingegebene aktuelle Block zu Prozessen S2 bis S4 zugeführt.
  • Im jeweiligen Prozeß der Schritte S2 bis S4 werden jeweilige Vorwärts- Referenzbereiche D0 bis D2 bei einem Schritt S21 zum Eingeben eines Vorwärts- Referenzbereichs D0, einem Schritt S31 zum Eingeben eines Vorwärts- Referenzbereichs D1 und einem Schritt S41 zum Eingeben eines Vorwärts- Referenzbereichs D2 eingegeben. Darauffolgend kann bei Schritten S22, S32, S42 zum Erfassen eines Vorwärts-Bewegungsvektors eine Erfassung der Vorwärts- Bewegungsvektoren in jeweiligen Vorwärts-Referenzbereichen D0 bis D2 durchgeführt werden.
  • Gleichermaßen werden jeweilige Rückwärts-Referenzbereiche G0 bis G2 bei einem Schritt S23 zum Eingeben eines Rückwärts-Referenzbereichs G0, einem Schritt S33 zum Eingeben eines Rückwärts-Referenzbereichs G1 und einem Schritt S44 zum Eingeben eines Rückwärts-Referenzbereichs G2 eingegeben. Darauffolgend kann bei Schritten S24, S34, S44 zum Erfassen eines Rückwärts- Bewegungsvektors eine Erfassung der Rückwärts-Bewegungsvektoren in jeweiligen Rückwärts-Referenzbereichen G0 bis G2 durchgeführt werden.
  • Bei Schritten S25, S35 und S45 zur primären Auswahl einer Interframecodierung werden der Vorwärts-Vorhersageblock, der Rückwärts-Vorhersageblock und der bidirektionale Vorhersageblock auf die gleiche Weise wie im Stand der Technik erzeugt. Dann werden auf die gleiche Weise wie beim Stand der Technik die Bewertungsdaten zum Bewerten einer Ähnlichkeit zum aktuellen Block durch Verwenden der Summe der Absolutwerte des Vorhersagefehlers der vorangehenden Gleichung (1) berechnet.
  • Bei den Schritten S25, S35 und S45 zur primären Auswahl einer Interframecodierung werden die berechneten Bewertungsdaten miteinander verglichen, um den Vorhersageblock mit dem kleinsten Wert und den Kandidaten der Interframeprädiktionscodierung auszuwählen. In einem solchen Fall können die Bewertungsdaten, der Kandidat des Vorwärts-Bewegungsvektors und der Kandidat des Rückwärts-Bewegungsvektors auch gespeichert werden.
  • Durch die jeweiligen Prozeßschritte S21 bis S25, S31 bis S35 und S41 bis S45 der Prozeßschritte S2 bis S4 werden drei Gruppen der Kandidaten der Interframeprädiktionscodierung, die Bewertungsdaten zum Bewerten einer Ähnlichkeit zwischen den Vorhersageblöcken und dem aktuellen Block in den Systemen, der Kandidat des Vorwärts-Bewegungsvektors und der Kandidat des Rückwärts- Bewegungsvektors erhalten.
  • Als nächstes wird bei einem Schritt S5 zur sekundären Auswahl einer. Interframeprädiktionscodierung eine der oben angegebenen drei Interframeprädiktionscodierungen ausgewählt. Das Verfahren zur Auswahl ist dasselbe wie das herkömmliche Verfahren. Das bedeutet, daß die Bewertungsdaten, die jeweils den Kandidaten der Interframeprädiktionscodierung entsprechen, verglichen werden, um dem Interframeprädiktionscodiersystem Kandidaten mit den kleinsten Bewertungsdaten auszuwählen.
  • Darauffolgend wird bei einem Schritt zum Ableiten der Summe des Absolutwerts einer AC-Komponente S6 die Summe des Absolutwerts einer AC-Komponente abgeleitet. Dann erfolgt ein Vergleich der Summe des Absolutwerts einer AC- Komponente, die beim Schritt S6 abgeleitet ist, und der Bewertungsdaten entsprechend der durch den Schritt S5 zur sekundären Auswahl einer Interframeprädiktionscodierung ausgewählten Interframeprädiktionscodierung, um den Codiertyp zu bestimmen.
  • Bei einem Schritt S8 zum Ausgeben eines Vorhersageergebnisses werden dann, wenn der Codiertyp der Interframeprädiktionscodiersystemkandidat ist, der bestimmte Codiertyp und der dementsprechende Bewegungsvektor ausgegeben. Darauffolgend wird bei einem Schritt S9 zur Ausgabe eines Vorhersageblocks der durch den bestimmten Codiertyp identifizierte Vorhersageblock erzeugt und ausgegeben.
  • Gleich dem Stand der Technik ist der Vorhersageblock ein Block mit "0" in allen Werten in einem Fall der Intraframecodierung, und sonst der Vorhersageblock des durch den vorangehenden Schritt S5 zur sekundären Auswahl einer Interframeprädiktionscodierung ausgewählten Interframeprädiktionscodierkandidaten.
  • Durch die Prozesse der Schritte S1 bis S9 kann der herkömmliche Bewegungskompensationsprozeß durchgeführt werden. Es sollte beachtet werden, daß, während die vorangehende Diskussion in bezug auf den B-Frame angegeben worden ist, die Prozesse für den P-Frame und den I-Frame durch teilweises Modifizieren des oben angegebenen Prozesses für den B-Frame realisiert werden können.
  • Das bedeutet, daß beim P-Frame die Rückwärts-Vorhersagecodierung konstant als das Interframeprädiktionscodiersystem ausgewählt ist. Beim I-Frame ist immer die Intraframecodierung als der Codiertyp ausgewählt.
  • Bei einem Vergleichen des oben angegebenen bidirektionalen Vorhersageverfahrens, wie es oben aufgezeigt ist, mit einem Verfahren zum Durchführen einer bidirektionalen Vorhersage unter Bezugnahme auf den Vorwärts-Referenzbereich C1 und den Rückwärts-Referenzbereich E1 als einzigen Referenzbereich erzeugt das oben angegebene bidirektionale Vorhersageverfahren den Vorwärts- Referenzbereich und den Rückwärts-Referenzbereich jeweils mit Größen, die die Hälfte des herkömmlichen. Referenzbereichs haben.
  • Es sollte beachtet werden, daß normalerweise der vergangene Referenzframe, der aktuelle Frame und der zukünftige Referenzframe ein Intervall in der Größenordnung von 3 bis 5 Frames haben. Daher ist es dann, wenn das Objekt, das sich auf dem Raster von links nach rechts bewegt, beim aktuellen Block erscheint, sehr gut möglich, daß der Vorhersageblock mit einer hohen Ähnlichkeit zum aktuellen Block im Schritt S3 gefunden wird, wobei der Vorwärts-Referenzbereich D1 und der Rückwärts-Referenzbereich G2 kombiniert sind.
  • Andererseits ist es dann, wenn das Objekt, das sich auf dem Raster von rechts nach links bewegt, beim aktuellen Block erscheint, sehr gut möglich, daß der Vorhersageblock mit einer starken Ähnlichkeit zum aktuellen Block beim Schritt S4 gefunden wird, bei welchem der Vorwärts-Referenzbereich D2 und der Rückwärts- Referenzbereich G1 kombiniert sind.
  • Weiterhin ist es dann, wenn das Objekt, das sich nicht bewegt, beim aktuellen Block erscheint, sehr gut möglich, daß der Vorhersageblock mit einer starken Ähnlichkeit zum aktuellen Block beim Schritt S2 gefunden wird, bei welchem der Vorwärts-Referenzbereich D0 und der Rückwärts-Referenzbereich G0 kombiniert sind.
  • Demgemäß kann durch Verwenden des bidirektionalen Vorhersageverfahrens, wie es oben aufgezeigt ist, erwartet werden, daß der Vorhersageblock mit einer vergleichbaren Ähnlichkeit zum aktuellen Block, wie beim herkömmlichen Verfahren erhalten werden kann.
  • Andererseits können deshalb, weil der Vorwärts-Referenzbereich C1 und der Rückwärts-Referenzbereich E1 in jeweilige Vorwärts-Referenzbereiche D0 bis D2 und Rückwärts-Referenzbereiche G0 bis G2 aufgeteilt sind und ein Einstellen auf eine überlagernde Weise erfolgt, ein paralleler Prozeß, wie er in Fig. 6 gezeigt ist, für eine Gruppe aus dem Vorwärts-Referenzbereich D0 und dem Rückwärts- Referenzbereich G0, eine Gruppe aus dem Vorwärts-Referenzbereich D1 und dem Rückwärts-Referenzbereich G2 und eine Gruppe aus dem Vorwärts-Referenzbereich D2 und dem Rückwärts-Referenzbereich G1 ermöglicht werden.
  • Weiterhin ergibt ein Vergleichen der nötigen Speicherkapazität zum Durchführen dieser Prozesse, während der herkömmliche Referenzbereich horizontale 64 Pixel x vertikale 32 Pixel ist, daß das oben angegebene bidirektionale Vorhersageverfahren den Referenzbereich aus horizontalen 32 Pixeln x vertikalen 32 Pixeln hat. Somit wird die erforderliche Speicherkapazität die Hälfte. Daher kann ein Speicherverbrauch signifikant reduziert werden.
  • Es sollte beachtet werden, daß, während das oben angegebene Ausführungsbeispiel der Erfindung den Referenzbereich in einer horizontalen Richtung vergrößert, auf gleiche Weise der Referenzbereich in einer vertikalen Richtung vergrößert werden kann. Beispielsweise ist es auszuwählen, daß der Vorwärts-Referenzbereich und der Rückwärts-Referenzbereich horizontale 32 Pixel x vertikale 64 Pixel sind und ein jeweiliger Referenzbereich in drei Unterbereiche aus horizontalen 32 Pixeln x vertikalen 32 Pixeln aufgeteilt ist, um einander zu überlagern.
  • Es sollte erkannt werden, daß der gleiche Effekt wie beim bevorzugten Ausführungsbeispiel der Erfindung durch Durchführen einer bidirektionalen Vorhersage mit einer Gruppe aus dem Vorwärts-Referenzbereich beim Mittenteil und dem Rückwärts-Referenzbereich beim Mittenteil, einer Gruppe aus dem Vorwärts- Referenzbereich bei der oberen Hälfte und dem Rückwärts-Referenzbereich bei der unteren Hälfte und einer Gruppe aus dem Vorwärts-Referenzbereich bei der unteren Hälfte und dem Rückwärts-Referenzbereich bei der oberen Hälfte erhalten werden kann.
  • Ebenso ist es weiterhin möglich, eine bidirektionale Vorhersage durch diagonalsymmetrisches Kombinieren eines Vorwärts-Referenzbereichs und eines Rückwärts-Referenzbereichs in bezug auf den aktuellen Block durch Erhöhen einer Anzahl von geteilten Referenzbereichen in der horizontalen Richtung und der vertikalen Richtung durchzuführen.
  • Wie es oben aufgezeigt ist, kann durch Aufteilen des Vorwärts-Referenzbereichs C1 und des Rückwärts-Referenzbereichs E1 in eine Vielzahl von kleineren Gebietsbereichen mit wechselseitig gleichen Gebieten, durch Bilden von Gruppen aus dem Vorwärts-Referenzbereich D1 und dem Rückwärts-Referenzbereich G2 oder dem Vorwärts-Referenzbereich D2 und dem Rückwärts-Referenzbereich G1, die jeweils bei einer symmetrischen Position relativ zum aktuellen Block angeordnet sind, und durch Durchführen einer bidirektionalen Vorhersage in bezug zu jeder Gruppe ein paralleler Prozeß, der durch das System auf einfache Weise zu realisieren ist, ermöglicht werden. Weiterhin kann der Vorhersageblock mit einer Ähnlichkeit zum aktuellen Block, vergleichbar mit dem Stand der Technik, erhalten werden.
  • Andererseits kann beim vorangehenden bidirektionalen Vorhersagesystem, das einem parallelen Prozeß mit dem bidirektionalen Vorhersageverfahren durchführt, wie es oben aufgezeigt ist, der Vorhersageblock mit einer Ähnlichkeit gegenüber dem aktuellen Block, die vergleichbar mit dem Stand der Technik ist, in einer kürzeren Zeit erhalten werden.
  • Zusätzlich kann beim oben angegebenen bidirektionalen Vorhersagesystem unter Verwendung des oben angegebenen bidirektionalen Vorhersageverfahrens der Vorhersageblock aus den Speichern in den Bewegungskompensationsprozessoren 2-1 bis 2-3 erhalten werden, und daher wird im Vergleich mit dem herkömmlichen System ein Prozeß hoher Geschwindigkeit möglich. Durch den Prozeß hoher Geschwindigkeit wird es möglich, die Anzahl von Blöcken im Frame zu erhöhen, und somit, ein größeres Bild zu verarbeiten.
  • Weiterhin erlaubt der Bewegungskompensationsprozessor 2 eine Realisierung des bidirektionalen Vorhersagesystems, wenn er einzeln verwendet wird oder wenn er parallel angeordnet wird. Dies ermöglicht eine parallele Anordnung der Bewegungskompensationsprozessoren. In einem solchen Fall kann dann, wenn die Bewegungskompensationsprozessoren 2 parallel angeordnet werden, die Prozeßperiode mit dem Fall vergleichbar sein, in welchem der Bewegungskompensationsprozessor 2 einzeln verwendet wird. Daher wird selbst bei einem höheren Kompressionsverhältnis unter Beibehaltung der Bildqualität ein Echtzeitprozeß möglich.
  • Obwohl die Erfindung in bezug auf ihr beispielhaftes Ausführungsbeispiel dargestellt und beschrieben worden ist, sollte von Fachleuten auf dem Gebiet verstanden werden, daß das Vorangehende und verschiedene andere Änderungen, Weglassungen und Hinzufügungen dabei und daran durchgeführt werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Daher sollte die vorliegende Erfindung nicht als auf das oben aufgezeigte spezifische Ausführungsbeispiel beschränkt verstanden werden.

Claims (3)

1. Verfahren zum Komprimieren von Videodaten von Bewegungsbildern einschließlich eines Verfahrens für eine bidirektionale Bewegungskompensation mit den folgenden Schritten:
für einen gegebenen Block des aktuellen Videoframes Auswählen eines Referenzbereichs in jedem eines Vorwärts- und Rückwärts-Referenzframes und Teilen jedes ausgewählten Bereichs in drei Unterbereiche mit gleichem Gebiet, wobei der erste und der zweite Unterbereich aneinandergrenzend sind und das gesamte Gebiet des Bereichs besetzen und der dritte Unterbereich den ersten und den zweiten Unterbereich in gleicher Größe überlagert;
Durchführen einer ersten Vorwärts-Bewegungskompensation für den Block und Berechnen erster Vorwärts-Auswertedaten auf der Basis der Daten im dritten Unterbereich des ausgewählten Referenzbereichs des Vorwärts- Referenzframes,
Durchführen einer ersten Rückwärts-Bewegungskompensation für den Block und Berechnen erster Rückwärts-Auswertedaten auf der Basis der Daten im dritten Unterbereich des ausgewählten Referenzbereichs des Rückwärts-Referenzframes,
Durchführen einer ersten bidirektionalen Bewegungskompensation für den Block und Berechnen erster bidirektionaler Auswertedaten auf der Basis der Daten in den dritten Unterbereichen der ausgewählten Referenzbereiche der Vorwärts- und Rückwärts-Referenzframes,
Durchführen einer zweiten Vorwärts-Bewegungskompensation für den Block und Berechnen zweiter Vorwärts-Auswertedaten auf der Basis der Daten im ersten Unterbereich des ausgewählten Bereichs des Vorwärts- Referenzframes,
Durchführen einer zweiten Rückwärts-Bewegungskompensation für den Block und Berechnen zweiter Rückwärts-Auswertedaten auf der Basis der Daten im zweiten Unterbereich des ausgewählten Bereichs des Rückwärts- Referenzframes,
Durchführen einer zweiten bidirektionalen Bewegungskompensation für den Block und Berechnen zweiter bidirektionaler Auswertedaten auf der Basis der Daten im ersten Unterbereich des ausgewählten Bereichs des Vorwärts- Referenzframes und der Daten im zweiten Unterbereich des zweiten ausgewählten Bereichs des Rückwärts-Referenzframes,
Durchführen einer dritten Vorwärts-Bewegungskompensation für den Block und Berechnen dritter Vorwärts-Auswertedaten auf der Basis der Daten im zweiten Unterbereich des ausgewählten Bereichs des Vorwärts- Referenzframes,
Durchführen einer dritten Rückwärts-Bewegungskompensation für den Block und Berechnen dritter Rückwärts-Auswertedaten auf der Basis der Daten im ersten Unterbereich des ausgewählten Bereichs des Rückwärts- Referenzframes,
Durchführen einer dritten bidirektionalen Bewegungskompensation für den Block und Berechnen dritter bidirektionaler Auswertedaten auf der Basis der Daten im zweiten Unterbereich des ausgewählten Bereichs des Vorwärts- Referenzframes und der Daten im ersten Unterbereich des ausgewählten Bereichs des Rückwärts-Referenzframes,
Auswählen als Interframe-Prädiktionscodierung einer der ersten, der zweiten und der dritten Vorwärts-Bewegungskompensation, der ersten, der zweiten und der dritten Rückwärts-Bewegungskompensation und der ersten, der zweiten und der dritten bidirektionalen Bewegungskompensation durch Vergleichen der ersten, der zweiten und der dritten Vorwärts-Auswertedaten, der ersten, der zweiten und der dritten Rückwärts-Auswertedaten und der ersten, der zweiten und der dritten bidirektionalen Auswertedaten für eine Interframe-Prädiktionscodierung,
Auswählen als den Codierungstyp für die Blockcodierung im Frame oder die Interframe-Prädiktionscodierung durch Vergleichen von Auswertedaten für die Codierung im Frame und der Auswertedaten für die Interframe-Prädiktionscodierung.
2. System zum Komprimieren von Videodaten von Bewegungsbildern einschließlich einer Einrichtung für eine bidirektionale Bewegungskompensation, die folgendes aufweist:
eine Einrichtung zum Auswählen, für einen gegebenen Block des aktuellen Videoframes, eines Referenzbereichs in jedem eines Vorwärts- und Rückwärts-Referenzframes und zum Teilen jedes ausgewählten Bereichs in drei Unterbereiche mit gleichem Gebiet, wobei der erste und der zweite Unterbereich aneinandergrenzend sind und das gesamte Gebiet des Bereichs besetzen und der dritte Unterbereich den ersten und den zweiten Unterbereich in gleicher Größe überlagert;
eine Verarbeitungseinrichtung zum
Durchführen einer ersten Vorwärts-Bewegungskompensation für den Block und Berechnen erster Vorwärts-Auswertedaten auf der Basis der Daten im dritten Unterbereich des ausgewählten Referenzbereichs des Vorwärts- Referenzframes,
Durchführen einer ersten Rückwärts-Bewegungskompensation für den Block und Berechnen erster Rückwärts-Auswertedaten auf der Basis der Daten im dritten Unterbereich des ausgewählten Referenzbereichs des Rückwärts-Referenzframes,
Durchführen einer ersten bidirektionalen Bewegungskompensation für den Block und Berechnen erster bidirektionaler Auswertedaten auf der Basis der Daten in den dritten Unterbereichen der ausgewählten Referenzbereiche der Vorwärts- und Rückwärts-Referenzframes,
Auswählen als eine erste Interframe-Prädiktionscodierung einer der ersten Vorwärts-Bewegungskompensation, der ersten Rückwärts- Bewegungskompensation und der ersten bidirektionalen Bewegungskompensation durch Vergleichen der ersten Vorwärts-, der ersten Rückwärts- und der ersten bidirektionalen Auswertedaten und Auswählen der Auswertedaten für die ausgewählte Interframe-Prädiktionscodierung als Auswertedaten für die erste Interframe-Prädiktionscodierung,
Auswählen als einen ersten Codierungstyp für die Blockcodierung im Frame oder die erste Interframe-Prädiktionscodierung durch Vergleichen von Auswertedaten für die Codierung im Frame und der Auswertedaten für die erste Interframe-Prädiktionscodierung und Auswählen der Auswertedaten für den ausgewählten Codierungstyp als Auswertedaten für den ersten Codierungstyp,
eine zweite Verarbeitungseinrichtung zum
Durchführen einer zweiten Vorwärts-Bewegungskompensation für den Block und Berechnen zweiter Vorwärts-Auswertedaten auf der Basis der Daten im ersten Unterbereich des ausgewählten Referenzbereichs des Vorwärts-Referenzframes,
Durchführen einer zweiten Rückwärts-Bewegungskompensation für den Block und Berechnen zweiter Rückwärts-Auswertedaten auf der Basis der Daten im zweiten Unterbereich des ausgewählten Referenzbereichs des Rückwärts-Referenzframes,
Durchführen einer zweiten bidirektionalen Bewegungskompensation für den Block und Berechnen zweiter bidirektionaler Auswertedaten auf der Basis der Daten im ersten Unterbereich des ausgewählten Referenzbereichs des Vorwärts-Referenzframes und der Daten im zweiten Unterbereich des ausgewählten Referenzbereichs des Rückwärts-Referenzframes,
Auswählen als eine zweite Interframe-Prädiktionscodierung einer der zweiten Vorwärts-Bewegungskompensation, der zweiten Rückwärts- Bewegungskompensation und der zweiten bidirektionalen Bewegungskompensation durch Vergleichen der zweiten Vorwärts-, der zweiten Rückwärts- und der zweiten bidirektionalen Auswertedaten und Auswählen der Auswertedaten für die ausgewählte Interframe-Prädiktionscodierung als Auswertedaten für die zweite Interframe-Prädiktionscodierung,
Auswählen als einen zweiten Codierungstyp für die Blockcodierung im Frame oder die zweite Interframe-Prädiktionscodierung durch Vergleichen von Auswertedaten für die Codierung im Frame und der Auswertedaten für die zweite Interframe-Prädiktionscodierung und Auswählen der Auswertedaten für den ausgewählten Codierungstyp als Auswertedaten für den zweiten Codierungstyp,
eine dritte Verarbeitungseinrichtung zum
Durchführen einer dritten Vorwärts-Bewegungskompensation für den Block und Berechnen dritter Vorwärts-Auswertedaten auf der Basis der Daten im zweiten Unterbereich des ausgewählten Referenzbereichs des Vorwärts- Referenzframes,
Durchführen einer dritten Rückwärts-Bewegungskompensation für den Block und Berechnen dritter Rückwärts-Auswertedaten auf der Basis der Daten im ersten Unterbereich des ausgewählten Referenzbereichs des Rückwärts-Referenzframes,
Durchführen einer dritten bidirektionalen Bewegungskompensation für den Block und Berechnen dritter bidirektionaler Auswertedaten auf der Basis der Daten im zweiten Unterbereich des ausgewählten Referenzbereichs des Vorwärts-Referenzframes und der Daten im ersten Unterbereich des ausgewählten Referenzbereichs des Rückwärts-Referenzframes,
Auswählen als eine dritte Interframe-Prädiktionscodierung einer der dritten Vorwärts-Bewegungskompensation, der dritten Rückwärts- Bewegungskompensation und der dritten bidirektionalen Bewegungskompensation durch Vergleichen der dritten Vorwärts-, der dritten Rückwärts- und der dritten bidirektionalen Auswertedaten und Auswählen der Auswertedaten für die ausgewählte Interframe-Prädiktionscodierung als Auswertedaten für die dritte Interframe-Prädiktionscodierung,
Auswählen als einen dritten Codierungstyp für die Blockcodierung im Frame oder die dritte Interframe-Prädiktionscodierung durch Vergleichen von Auswertedaten für die Codierung im Frame und der Auswertedaten für die dritte Interframe-Prädiktionscodierung und Auswählen der Auswertedaten für den ausgewählten Codierungstyp als Auswertedaten für den dritten Codierungstyp,
Auswählen als den Codierungstyp für den Block des ersten, des zweiten oder des dritten Codierungstyps durch Vergleichen der Auswertedaten für den ersten, den zweiten und den dritten Codierungstyp.
3. System zum Komprimieren von Videodaten von Bewegungsbildern nach Anspruch 2, wobei jede der ersten, der zweiten und der dritten Verarbeitungseinrichtung folgendes aufweist:
eine Einrichtung zum Ausgeben eines Ergebnisses einer Bewegungskompensation einschließlich des ausgewählten Codierungstyps und zum Ausgeben von Framepositionsinformationen des Blocks und der Auswertedaten für den ausgewählten Codierungstyp vor einem Ausgeben des Ergebnisses einer Bewegungskompensation,
eine Einrichtung zum Ausgeben eines Prädiktionsblocks und eines Prädiktionsfehlerblocks zum Codieren des Blocks in Abhängigkeit vom ausgewählten Codierungstyp.
DE69524522T 1994-09-28 1995-09-28 Verfahren und System zur bidirektionalen Bewegungskompensation zur Kompression bewegter Bilder Expired - Fee Related DE69524522T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23272194A JP2671820B2 (ja) 1994-09-28 1994-09-28 両方向予測方法及び両方向予測装置

Publications (2)

Publication Number Publication Date
DE69524522D1 DE69524522D1 (de) 2002-01-24
DE69524522T2 true DE69524522T2 (de) 2002-05-29

Family

ID=16943751

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69524522T Expired - Fee Related DE69524522T2 (de) 1994-09-28 1995-09-28 Verfahren und System zur bidirektionalen Bewegungskompensation zur Kompression bewegter Bilder

Country Status (4)

Country Link
US (1) US5699128A (de)
EP (1) EP0705038B1 (de)
JP (1) JP2671820B2 (de)
DE (1) DE69524522T2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04207481A (ja) * 1990-11-30 1992-07-29 Canon Inc 動き検出装置
DE69528853T2 (de) * 1994-01-31 2003-07-03 Canon K.K., Tokio/Tokyo System und Verfahren zum Editieren bewegter Bilder
US5825927A (en) * 1996-01-16 1998-10-20 Hitachi America, Ltd. Methods and apparatus for encoding video data in a manner that is well suited for decoding by regular or downconverting decoders
JPH1084499A (ja) * 1996-09-10 1998-03-31 Victor Co Of Japan Ltd 適応フィルタ装置
JP2000050272A (ja) * 1998-07-31 2000-02-18 Sony Corp 復号化装置及び方法
US6438254B1 (en) * 1999-03-17 2002-08-20 Matsushita Electric Industrial Co., Ltd. Motion vector detection method, motion vector detection apparatus, and data storage media
JP3550681B2 (ja) * 1999-12-10 2004-08-04 日本電気株式会社 画像検索装置及び方法、並びに類似画像検索プログラムを格納した記憶媒体
KR100708091B1 (ko) * 2000-06-13 2007-04-16 삼성전자주식회사 양방향 움직임 벡터를 이용한 프레임 레이트 변환 장치 및그 방법
JP2002094386A (ja) * 2000-09-12 2002-03-29 Mitsubishi Electric Corp 符号化装置、復号装置、符号化方法および復号方法
NL1016791C2 (nl) * 2000-12-04 2002-06-05 Holec Holland Nv Hybride elektrische schakelinrichting.
US6765964B1 (en) * 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
JP3861607B2 (ja) * 2001-02-22 2006-12-20 セイコーエプソン株式会社 画像信号復号装置
US7027510B2 (en) * 2002-03-29 2006-04-11 Sony Corporation Method of estimating backward motion vectors within a video sequence
US7889792B2 (en) * 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
TWI258673B (en) * 2004-02-16 2006-07-21 Sunplus Technology Co Ltd Bi-directional motion compensation method to reduce temporal buffer
US20050286629A1 (en) * 2004-06-25 2005-12-29 Adriana Dumitras Coding of scene cuts in video sequences using non-reference frames
JP5018085B2 (ja) * 2004-06-29 2012-09-05 ソニー株式会社 動き予測補償方法及び動き予測補償装置
US7965898B2 (en) * 2005-10-28 2011-06-21 Nvidia Corporation Accelerating video decoding using multiple processors
JP4993676B2 (ja) * 2006-09-01 2012-08-08 キヤノン株式会社 画像符号化装置及び画像符号化方法
JP5190059B2 (ja) * 2006-09-07 2013-04-24 トムソン ライセンシング それぞれのグループがイントラ符号化ピクチャと2つを超える予測符号化ピクチャを含むビデオ系列のグループオブピクチャを符号化する方法及び装置
US9445121B2 (en) 2008-08-04 2016-09-13 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
HU1000640D0 (en) * 2010-11-29 2011-02-28 Holografika Hologrameloeallito Fejlesztoe Es Forgalmazo Kft Image coding and decoding method and apparatus for efficient encoding and decoding of 3d field content
JP6057165B2 (ja) * 2011-01-25 2017-01-11 サン パテント トラスト 動画像復号化方法
US8644620B1 (en) 2011-06-21 2014-02-04 Google Inc. Processing of matching regions in a stream of screen images
JP5462305B2 (ja) * 2012-03-12 2014-04-02 株式会社東芝 画像処理装置、画像処理方法およびそのプログラム
KR101582093B1 (ko) * 2014-02-21 2016-01-04 삼성전자주식회사 단층 촬영 장치 및 그에 따른 단층 영상 복원 방법
EP3295660A4 (de) * 2015-06-03 2019-05-29 MediaTek Inc. Verfahren zur palettencodierung von bild- und videodaten

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63144626A (ja) * 1986-12-09 1988-06-16 Fujitsu Ltd 動ベクトル検出方式
GB2231744B (en) * 1989-04-27 1993-07-07 Sony Corp Motion dependent video signal processing
EP0424026B1 (de) * 1989-10-14 1997-07-23 Sony Corporation Anordnung und Verfahren zum Übertragen eines Videosignals
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
JP3031152B2 (ja) * 1993-12-24 2000-04-10 日本電気株式会社 動き予測プロセッサ及び動き予測装置

Also Published As

Publication number Publication date
JP2671820B2 (ja) 1997-11-05
DE69524522D1 (de) 2002-01-24
EP0705038B1 (de) 2001-12-12
EP0705038A3 (de) 1998-01-28
JPH0898183A (ja) 1996-04-12
EP0705038A2 (de) 1996-04-03
US5699128A (en) 1997-12-16

Similar Documents

Publication Publication Date Title
DE69524522T2 (de) Verfahren und System zur bidirektionalen Bewegungskompensation zur Kompression bewegter Bilder
DE69224055T2 (de) Bildsignalkodier- und -dekodiergerät
DE69838630T2 (de) Prädiktive Digitalvideosignalkodierung- und Dekodierungsmethode unter Verwendung von Blockinterpolation
DE69620094T2 (de) Videokodierungsvorrichtung
DE69031105T2 (de) Videosignalkodierungsverfahren
DE69803195T2 (de) Codeumsetzung
DE69632232T2 (de) Verfahren und Vorrichtung zur Komprimierung von Videoinformationen mit bewegungsabhängiger Prädiktion
DE69330620T2 (de) Verfahren und Einrichtung zur Bildkodierung
DE69629137T2 (de) Bildkodierungsgerät und Bilddekodierungsgerät
DE69801209T2 (de) Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
DE69714071T2 (de) Vorrichtung zur kompression von pixelblöcken in einem bildverarbeitungssystem
DE4345015C2 (de) Digitale Signalverarbeitungsvorrichtung
DE69013213T2 (de) Einrichtung zur Zwischenbild-Vorhersagekodierung eines Videosignals.
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
DE69820142T2 (de) Dekodierverfahren für bewegte Bilder, und dementsprechendes Dekodiergerät
DE69333789T2 (de) Kodierung von kontinuierlichen Bilddaten
DE69130329T2 (de) System und verfahren zur codierung eines zeilensprunghalbbildes
DE69214638T2 (de) Gerät zum komprimieren von video-daten
DE69033782T2 (de) Verfahren und Anordnung zum Kodieren/Dekodieren eines Videosignales
DE69330191T2 (de) Prädiktive Zwischenbildkodierungsvorrichtung mit Bewegungsausgleich
DE69324958T2 (de) Kompression und Dekompression von Bildern
DE69422266T2 (de) Verfahren, Vorrichtung und Schaltung zur Verbesserung von Bewegungskompensation bei digitaler Bildkodierung
DE69123705T2 (de) Verfahren zur Kompression von bewegten Bildsignalen nach dem Zeilensprungverfahren
DE69323986T2 (de) Vorrichtung und Verfahren zur Bildverarbeitung
DE69323156T2 (de) Bilddatenkomprimierungs/Dekomprimierungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP

8339 Ceased/non-payment of the annual fee