-
Die vorliegende Erfindung betrifft
eine inverse diskrete Cosinus-Transformation (IDCT) und insbesondere,
jedoch nicht ausschließlich,
ein Verfahren und eine Schaltung zur Konvertierung einer Ausgangssequenz zur
Bewegungskompensierung von IDCTtransformierten Bilddaten.
-
Die weit verbreiteten Speichermedien
oder Bildübertragungssysteme
verwenden analoge Verfahren. Wenn diese analogen Verfahren in digitale
Verfahren umgewandelt werden, können
Bildqualität
und Zuverlässigkeit
verbessert und die Datenverarbeitung erleichtert werden, da die
Forschung in dieser Richtung deutliche Fortschritte gemacht hat.
Eine solche digitale Videosignalverarbeitungstechnik wird bereits
im hochauflösenden
Fernsehen (High Definition Television, HDTV), in digitalen Videokassettenrekordern
(DVCR) und Videokonferenzsystemen angewendet, und die Bereiche ihrer
Anwendung werden sich erwartungsgemäß weiter ausweiten.
-
Da ein digitales Signalverarbeitungssystem
jedoch eine große
Menge an Informationsdaten benötigt, wird
für eine
effektive Nutzung von Übertragungskanälen und
Speichermedien eine Datenkompression notwendig. Unter der Führung der
Moving Pictures Expert Group (MPEG) wird die Etablierung internationaler Standards
für ein
Bewegtbild-Codierverfahren aktiv vorangetrieben.
-
Ein allgemeines Verfahren zur Komprimierung
eines Bildsignals wird effektiv durchgeführt, indem redundante Informationen
durch räumliche
oder zeitliche Korrelationen ersetzt werden, die wiederum durch
Codierung mit variabler Länge
codiert werden. Ein typisches Komprimierungsverfahren ist eine Entropie-Codierung
unter Verwendung einer bewegungskompensierten diskreten Cosinus-Transformation
(DCT), wie in 1 dargestellt,
die von der MPEG in ihrer Empfehlung internationaler Standards für die Bewegtbildcodierung übernommen
wurde.
-
Im Folgenden wird ein allgemeiner
Bewegtbildcodierer unter Bezugnahme auf 1 kurz beschrieben.
-
In 1 empfängt ein
Bildumordner 1 ein Quellbildsignal und führt Farbkoordinatenkonvertierungs-Subsampling
oder -Blockaufteilung zur Umordnung der Bilder durch. Ein erster
Halbbild-/Vollbild-Speicher 2 speichert das vom Bildumordner 1 ausgegebene
Bildsignal im Falle einer Interframe-Codierung in Einheiten eines
Halbbildes, oder im Falle einer Intraframe-Codierung in Einheiten
eines Vollbildes. Ein Subtraktor 3 subtrahiert das vorhergehende
bewegungskompensierte Bildsignal, das von einem adaptiven Prädiktor 10 ausgegeben
wird, von dem aktuellen Bildsignal, das in Einheiten eines Halbbildes
oder Vollbildes vorliegt und von dem ersten Halbbild-Nollbild-Speicher 2 ausgegeben
wird, um ein Differenzbildsignal zu erzeugen. Eine DCT-Einrichtung 4 führt in Bezug
auf das vom Subtraktor 3 ausgegebene Differenzbildsignal
eine DCT-Operation
durch und gibt einen Transformationskoeffizienten für das Differenzbildsignal
aus.
-
Ein Quantisierer (Q) 5 empfängt den
von der DCT-Einrichtung 4 ausgegebenen Transformationskoeffizienten
und verändert
eine Quantisierungsschrittweite entsprechend der Ausgabe einer Bitraten-Steuerung 13,
um eine Quantisierung durchzuführen.
Ein inverser Quantisierer (IQ) 6 rekonstruiert aus dem
vom Quantisierer 5 ausgegebenen quantisierten Signal wieder
ein ursprüngliches
nicht-qantisiertes Signal. Eine inverse DCT-(IDCT)-Einrichtung 7 rekonstruiert
aus dem vom inversen Quantisierer 6 ausgegebenen invers-quantisierten
Signal wieder ein Signal, das nicht gemäß DCT transformiert ist. Ein
Addierer 8 addiert das von der IDCT-Einrichtung 7 rekonstruierte
Bildsignal zu dem vom adaptiven Prädiktor 10 ausgegebenen
bewegungskompensierten Bildsignal. Ein zweiter Halbbild-Nollbild-Speicher 9 speichert
das vom Addierer 8 ausgegebene rekonstruierte Bildsignal
entsprechend eines Codierungsmodus in Einheiten eines Halbbildes
oder eines Vollbildes. Der adaptive Prädiktor 10 kompensiert
den Bewegungsindex des vorhergehenden Bildes, das in dem zweiten
Halbbild-Nollbild-Speicher 9 gespeichert
ist, auf Grundlage der Bewegungsvektordaten und der von einem Bewegungsschätzer 11 ausgegebenen
Modusdaten, und gibt die Ergebnisse an den Subtraktor 3 und den
Addierer 8 werter. Der Bewegungsschätzer schätzt die Bewegung des aktuellen
Bildes und des von dem ersten Halbbild-Nollbild-Speicher 2 ausgegebenen
vorhergehenden Bildes, um einen Bewegungsvektor zu erzeugen. Um
den Bewegungsvektor zu erzeugen, führen die meisten Codierer auf
der Basis eines minimalen absoluten Fehlers (Minimum Absolute Error,
MAE) eine vollständige
Suche innerhalb eines konstanten Suchbereiches in den Einheiten
fester Blöcke
durch. Der von dem Bewegungsschätzer 11 erzeugte
Bewegungsvektor wird an den adaptiven Prädiktor 10 und an einen
Codierer für
Codes variabler Länge/Multiplexer (VLC/MUX) 14 ausgegeben.
Eine Aktivitätsberechnungs-Einrichtung 12 berechnet
die Aktivitäten
des von dem ersten Halbbild-Nollbild-Speicher 2 ausgegebenen
Bildsignals, um das Ergebnis an die Bitraten-Steuerung 13 weiterzugeben.
-
Die Bitraten-Steuerung 13 multipliziert
eine Referenz-Quantisierungsschrittweite, die abhängig von der
in einem Puffer 15 gespeicherten Datenmenge bestimmt wird,
mit der von der Aktivitätsberechnungs-Einrichtung 12 ausgegebenen
Aktivität
des Bildsignals, und berechnet eine neue Quantisierungsschrittweite,
um diese an den Quantisierer 5 weiterzugeben. Entsprechend
passt der Quantisierer 5 die Quantisierungsschrittweite
je nach dem von der Bitraten-Steuerung 13 ausgegebenen
Ergebnis an, sodass die Datenausgabe des VLC/MUX 14 an
eine Zielbitmenge angenähert
werden kann. Der VLC/MUX 14 codiert das vom Quantizer 5 quantisierte
Signal mit variablen Wortlängen
und multiplext das mit variablen Wortlängen codierte Signal, den von
der Bitraten-Steuerung 13 ausgegebenen
Quantisierungsparameter und den vom Bewegungsschätzer 11 ausgegebenen
Bewegungsvektor. Da die Länge
der vom VLC/MUX 14 ausgegebenen Daten nicht konstant ist,
werden die Daten vorübergehend
in einem Puffer 15 gespeichert und dann bei konstanter
Geschwindigkeit über Übertragungskanäle an die
Empfangsseite übermittelt.
-
In einem solchen Entropie-Codierverfahren
unter Verwendung einer bewegungskompensierten DCT werden das aus
dem zweiten Halbbild-Nollbild-Speicher 9 durch eine Bewegungskompensierungs-Einrichtung,
d. h. den adaptiven Prädiktor 10,
ausgelesene Bildsignal, und das von der IDCT-Einrichtung 7 ausgegebene
Bildsignal im Addieren 8 addiert, um ein Bildsignal zu
rekonstruieren. In einer solchen Situation bestehen folgende Probleme:
Erstens, da das von dem zweiten Halbbild-/Vollbild-Speicher 9 zur
Bewegungskompensierung ausgelesene Bildsignal in Einheiten von mehreren
Bildpunkten, wie z. B. 64-Bit-Paralleldaten bei MPEG-2, verarbeitet
wird, sollte die Datenausgabe aus der IDCT-Einrichtung 7 gepackt
werden. Zweitens sind das von der IDCT-Einrichtung 7 ausgegebene
Signal und der Ausgangspunkt für
die Bewegungskompensation nicht immer identisch. Außerdem sollte
bei der Bewegungskompensation, da für den Zugriff auf einen externen Speicher
Zeit benötigt
wird, die Signalausgabe der IDCT-Einrichtung 7 verzögert werden.
Drittens, da die Daten aus der IDCT-Einrchtung 7 in einem Halbbild-
oder Vollbildformat oder einem Halbbild-DCT- oder Vollbild-DCT-Format,
je nach dem Format eines Eingangssignals, ausgegeben werden, ist
ein Formatkonverter erforderlich, der für das Eingangsdatenformat der
Bewegungskompensierungs-Einrichtung geeignet ist.
-
In EP-A-0 503 956 (C-Cube Microsystems)
werden ein Verfahren und eine Struktur zur Decodierung von intraframe-
und interframe-codierten komprimierten Videodaten beschrieben, die
eine Blockspeichereinrichtung umfassen, die entsprechend vier vorbestimmten
Zyklen geschrieben und ausgelesen wird.
-
Es ist ein Ziel der bevorzugten Ausführungsbeispiele
vorliegender Erfindung, ein Verfahren und eine Schaltung zur Konvertierung
einer Ausgangssequenz bereitzustellen, um in einer Bewegtbild-Codierungsvorrichtung
die Sequenzen eines von einer inversen DCT-Einrichtung ausgegebenen
Bildsignals und einer Datenausgabe aus einer Bewegungskompensations-Einrichtung
einander zuzuordnen.
-
Gemäß einem Aspekt vorliegender
Erfindung wird ein Verfahren zur Konvertierung einer Ausgangssequenz
zur Anwendung mit einer inversen diskreten Cosinus-Transformation (IDCT)
bereitgestellt, in welchem ein Vorgang des Schreibens von Daten
in einen Speicher gleichzeitig mit einem Vorgang des Lesens dieser Daten
aus diesem Speicher durchgeführt
wird, wobei das Verfahren dadurch gekennzeichnet ist, dass es zur Zuordnung
der Ausgangssequenzen von IDCT-transformierten Bilddaten, die ein
Differenzbildsignal zwischen einem aktuellen Bildsignal und einem
bewegungskompensierten Bildsignal darstellen, zu bewegungskompensierten
Bilddaten dient, wobei das Verfahren die folgenden Schritte umfasst:
a) Packen der IDCT-transformierten Daten in eine vorbestimmte Einheit
und Schreiben der gepackten Daten in den Speicher und Erzeugen eines
Leseanforderungssignals; b) Erzeugen eines Übernahmesignals in Reaktion
auf das Leseanforderungssignal, sodass Ausgangssequenzen der IDCTtransformierten
Daten passenden Ausgangssequenzen der bewegungskompensierten Daten
zugeordnet werden; c) Lesen der gepackten Daten aus dem Speicher
gemäß dem Übernahmesignal;
und d) Addieren der aus dem Speicher gelesenen Daten zu den bewegungskompensierten
Daten zur Erzeugung eines rekonstruierten Bildsignals, wobei die
aus dem Speicher ausgegebenen Daten in ein vorbestimmtes Datenformat
konvertiert werden, welches einem Datenformat der bewegungskompensierten
Daten ent spricht, indem Speicheradressen gesteuert werden, die während des
Schreibvorgangs zum Schreiben der gepackten Daten in den Speicher
oder während
des Lesevorgangs zum Lesen der Daten aus dem Speicher genutzt werden,
und wobei der Speicher in zwei Speicherbänke geteilt ist und jede Speicherbank
durch sechs diskrete Cosinus-Transformations-(DCT)-Blöcke definiert
ist.
-
Entsprechend umfasst der Schreibvorgang
die Erzeugung des Leseanforderungssignals, wenn die IDCT-transformierten
Daten vollständig
in dem Speicher in der vorbestimmten Einheit gespeichert sind.
-
Entsprechend wird das Leseanforderungssignal
erzeugt, wenn für
eine der Speicherbänke
eine Schreiboperation abgeschlossen ist.
-
Entsprechend umfasst Schritt a) den
Teilschritt einer Erzeugung von Schreibadressen, umfasst Schritt b)
den Teilschritt einer Erzeugung von Leseadressen, und umfasst dass
Schritt c) die folgenden Teilschritte: c1) sequenzielles Ordnen
der Schreibadressen; und c2) Umordnen der Leseadressen.
-
Entsprechend umfasst Schritt a) den
Teilschritt einer Erzeugung von Schreibadressen, umfasst Schritt b)
den Teilschritt einer Erzeugung von Leseadressen, und umfasst dass
Schritt c) die folgenden Teilschritte: c1) sequenzielles Ordnen
der Leseadressen; und c2) Umordnen der Schreibadressen.
-
Gemäß einem werteren Aspekt vorliegender
Erfindung wird eine Schaltung zur Konvertierung einer Ausgangssequenz
zur Anwendung mit einer inversen diskreten Cosinus-Transformation
(IDCT) bereitgestellt, in welcher ein Vorgang des Schreibens von
Daten in einen Speicher durch eine Schreibsteuerung gleichzeitig mit
einem Vorgang des Lesens dieser Daten aus diesem Speicher durch
eine Lesesteuerung durchgeführt wird,
wobei die Schaltung zur Zuordnung der Ausgangssequenzen von IDCTtransformierten
Bilddaten, die ein Differenzbildsignal zwischen einem aktuellen
Bildsignal und einem bewegungskompensierten Bildsignal darstellen,
zu bewegungskompensierten Bilddaten dient, wobei die Schaltung die
folgenden Elemente umfasst: Den Speicher zur Speicherung der IDCT-transformierten
Daten, die in einer vorbestimmten Einheit gepackt sind; die Schreibsteuerung
zur Erzeugung einer Schreibadresse und eines Schreibsteuersignals
zur Steuerung der Vorgangs des Schreibens der IDCT-transformierten
Daten in den Speicher und zur Erzeugung eines Leseanforderungssignals
bei Abschluss der Schreiboperation; die Lesesteuerung zum Empfang
eines Übernahmesignals,
das in Reaktion auf das Leseanforderungssignal erzeugt wird, und
zur Erzeugung einer Leseadresse und eines Lesesteuersignals zum
Lesen der IDCTtransformierten Daten aus dem Speicher; und einen Addierer
zum Addieren der aus dem Speicher gelesenen Daten zu den bewegungskompensierten
Daten, um rekonstruierte Bildsignale zu erzeugen, wobei die aus
dem Speicher ausgegebenen Daten in ein vorbestimmtes Datenformat
konvertiert werden, welches einem Datenformat der bewegungskompensierten
Daten entspricht, indem die Schreibadresse gesteuert wird, die zum
Schreiben der gepackten Daten in den Speicher durch die Schreibsteuerung
benutzt wird, oder indem die Leseadresse gesteuert wird, die zum
Lesen der gespeicherten Daten aus dem Speicher durch die Lesesteuerung
benutzt wird, und wobei der Speicher in zwei Speicherbänke geteilt
ist und jede Speicherbank durch sechs diskrete Cosinus-Transformations-(DCT)-Blöcke definiert
ist.
-
Entsprechend erzeugt die Schreibsteuerung
das Leseanforderungssignal, wenn die IDCT-transformierten Daten
vollständig
in dem Speicher in der vorbestimmten Einheit gespeichert sind.
-
Entsprechend wird das Leseanforderungssignal
erzeugt, wenn für
eine der Speicherbänke
eine Schreiboperation abgeschlossen ist.
-
Entsprechend erzeugt die Schreibsteuerung
weitere Schreibadressen und erzeugt die Lesesteuerung wertere Leseadressen,
wobei die Schreibadresse unter den Schreibadressen sequenziell eingeordnet
wird und die Leseadresse unter den Leseadressen umgeordnet wird.
-
Entsprechend erzeugt die Schreibsteuerung
weitere Schreibadressen und erzeugt die Lesesteuerung wertere Leseadressen,
wobei die Leseadresse unter den Leseadressen sequenziell eingeordnet
wird und die Schreibadresse unter den Schreibadressen umgeordnet
wird.
-
Es wird ersichtlich werden, dass
das Leseanforderungssignal vorzugsweise dann bei abgeschlossener
Schreiboperation in einer Speicherbank erzeugt wird, wenn der Speicher
in zwei Speicherbänke
geteilt ist und jede Speicherbank durch sechs 8x8-DCT-Blöcke definiert
ist.
-
Weiterhin werden vorzugsweise Schreibadressen
sequenziell geordnet und Leseadressen umgeordnet.
-
Außerdem werden vorzugsweise
Leseadressen sequenziell geordnet und Schreibadressen umgeordnet.
-
Durch eine ausführliche Beschreibung eines
bevorzugten Ausführungsbeispiels
vorliegender Erfindung wird diese besser verständlich werden, wobei diese
Beschreibung ausschließlich
als Beispiel dient und wobei auf die beiliegenden Zeichnungen Bezug
genommen wird, von denen:
-
1 ein
Blockdiagramm einer allgemeinen Bewegtbild-Codierungsvorrichtung
zeigt; Abb. 2A und 2B Bildausgabedaten
einer in 1 gezeigten
IDCT-Einrichtung bzw. Speicherbänke
der IDCT-Einrichtung darstellen;
-
3A bis 3C Datenformate für die jeweiligen
in 2 gezeigten Speicherbanktypen darstellen;
-
4 ein
Blockdiagramm einer Schaltung zur Konvertierung einer Ausgangssequenz
gemäß vorliegender
Erfindung in der IDCT-Einrichtung zeigt, in dem die Verbindungen
verschiedener Komponenten dargestellt sind;
-
5 ein
detailliertes Schaltbild eines Schreibsteuersignalgenerators einer
in 4 gezeigten Schreibsteuerung
zeigt;
-
6A bis 6L Impulsdiagramme von Steuersignalen
zeigen, die von dem in 5 gezeigten Schreibsteuersignalgenerator
erzeugt werden;
-
7A bis 71 detaillierte Impulsdiagramme während einer
Schreiboperation der in 4 gezeigten Schreibsteuerung
im Speicher unter Verwendung von Steuersignalen, die in dem in 5 gezeigten Schreibsteuersignalgeneratore
rzeugt werden, zeigen;
-
8 ein
detailliertes Schaltbild der in 4 gezeigten
Schreibsteuerung zeigt;
-
9A bis 9P Impulsdiagramme der Steuersignale,
die in der in 4 gezeigten
Lesesteuerung erzeugt werden, zeigen;
-
10A bis 10F detaillierte Impulsdiagramme
zeigen, die Signale während
einer Leseoperation des Speichers unter Verwendung der Lesesteuersignale
darstellen, die von der in 4 gezeigten
Lesesteuerung erzeugt werden;
-
11 ein
Beispiel einer Implementierung einer Modusbestimmungsschaltung zur
Bestimmung eines Schreib-/Lesemodus des in 4 gezeigten Speichers zeigt;
-
12 ein
Beispiel einer Implementierung einer Umordnungsschaltung in der
in 4 gezeigten Lesesteuerung
zeigt;
-
13A bis 13D Impulsdiagramme eines
Re-Multiplexing eines Chrominanzsignals darstellen, das von der
in 4 gezeigten Lesesteuerung
ausgegeben wird; und
-
14 ein
detailliertes Schaltbild der in 4 gezeigten
Lesesteuerung zeigt.
-
In dem hier beschriebenen Ausführungsbeispiel
vorliegender Erfindung laufen drei im Folgenden beschriebene Operationen
parallel ab: Erstens werden die von der IDCT-Einrichtung 7 ausgegebenen
Daten gepackt und dann in einen vorbestimmten Speicher geschrieben.
Zweitens wird ein Leseanforderungssignal zum Lesen der Daten der
IDCT-Einrichtung 7 erzeugt und eine Leseübernahme
der IDCT-Einrichtung 7 während einer vorgegebenen Zeit
verarbeitet und gelesen. Drittens wird das Format der von der IDCT-Einrichtung 7 gelesenen
Daten konvertiert. Eine Zeitlücke
zwischen Anforderung und Übernahme
wird durch einen internen Puffer gelöst.
-
Vorliegende Erfindung kann problemlos
an jede Art einer Bilddatenausgabe von der IDCT-Einrichtung 7 angepasst
werden und wird selbst dann benutzt, wenn eine andere Bitanzahl,
eine andere Anzahl an Speicherbänken,
ein anderes Eingabeformat oder ein anderes Ausgabeformat vorliegen.
Hier soll der Einfachheit halber die Verwendung eines MPEG-2-Datentyps,
des am häufigsten
verwendeten Datentyps, angenommen werden. Das heißt, die
IDCT-Einrichtung 7 hat eine 9-Bit-Ausgabe, und ein Makroblock
(MB) besteht aus vier 8x8-Luminanzblöcken sowie zwei 8x8-Chrominanzblöcken.
-
2A zeigt
Bilddatenausgaben der in 1 gezeigten
IDCT-Einrichtung 7. Die IDCT-Einrichtung 7 umfasst
einen Direktzugriffsspeicher (RAM) mit zwei Speicherbänken Bank#1
und Bank#2, wie in 2B gezeigt.
Eine vom Ausgabeformat abhängige
Halbbild-Nollbild-Kennung für
ein Bild identifiziert ein Vollbild, indem sie einen „HIGH-(H)"-Wert
annimmt und idenfiziert ein Halbbild, indem sie einen „LOW-(L)"-Wert
annimmt. Eine DCT-Typ-Kennung idenfiziert ein Vollbild, indem sie
einen „HIGH-(H)"-Wert annimmt, und
idenfiziert ein Halbbild, indem sie einen „LOW-(L)"-Wert annimmt. Damit
ist die kumulative Verzögerung
zwischen einer Anforderung und einer Übernahme vernachlässigbar,
wenn die Größe der Ausgabedaten
in der IDCT unter 1 Makroblock (MB) beträgt.
-
3A bis 3C stellen Datenformate für die jeweiligen
in 2 gezeigten Speicherbanktypen dar, wobei 3A das Datenformat bei einem
Halbbild und 3B das
Datenformat bei einem Vollbild zeigt. Das heißt, dass in 3A die Y1-, Y3- und Cb-Blöcke in der
Speicherbank Bank#1, und die Y2-, Y4- und Cr-Blöcke in der Speicherbank Bank#2
gespeichert werden. Für
einen Vollbild-DCT-Modus zeigt 3C die
Datenformate für
ein Vollbild und einen Halbbild-DCT-Modus. Hier können die
Eingangsbilddaten je nach dem jeweiligen Datenformat in einen Typ
vereinheitlicht werden, und zwar mittels zweier Verfahren: Das erste
Verfahren ordnet Daten für
jedes Halbbild oder Vollbild um, während die Daten in einen Speicher
geschrieben werden, und das zweite Verfahren ordnet Daten für jedes
Halbbild oder Vollbild um, während
die Daten aus einem Speicher gelesen werden. In vorliegender Erfindung
wird das zweite Verfahren angewen det, wobei jedoch durch einfaches
Modifizieren des zweiten Verfahrens auch das erste Verfahren implementiert
werden kann.
-
4 zeigt
ein Blockdiagramm einer Schaltung zur Konvertierung einer Ausgangssequenz
gemäß dieses
Ausführungsbeispiels
vorliegender Erfindung in der IDCT-Einrichtung, in dem die Verbindungen
zwischen den einzelnen Komponenten dargestellt sind.
-
Die Schaltung zur Konvertierung einer
Ausgangssequenz gemäß vorliegender
Erfindung umfasst im Wesentlichen eine Schreibsteuerung 41,
eine Lesesteuerung 43, und einen FIFO-(first-in-first-out)-Speicher 45.
Ein Ausgangsport der Schreibsteuerung 41 ist mit Eingangsports
der Lesesteuerung 43 bzw. des FIFO-Speichers 45 verbunden.
Ein Ausgangsport der Lesesteuerung 43 ist mit einem Eingangsport
des FIFO-Speichers 45 verbunden. Hier wird ein Arbeitsspeicher
als FIFO-Speicher 45 eingesetzt, wodurch der Hardware-Gesamtumfang
reduziert und ein kompaktes Design ermöglicht wird. Die Arbeitsweise
der Schreibsteuerung 41, der Lesesteuerung 43 und
des FIFO Speichers 45 wird im Folgenden unter Bezugnahme
auf 5 bis 14 ausführlich beschrieben.
-
5 zeigt
ein detailliertes Schaltbild eines Schreibsteuersignalgenerators
der in 4 gezeigten Schreibsteuerung 41.
Der Schreibsteuersignalgenerator umfasst vier D-Flipflops 51, 53, 54 und 58,
einen Zähler 52,
zwei UND-Gatter 55 und 57, einen Inverter 56 und
neun Schieberegister (SFT-REG) 59a bis 59i.
-
6A bis 6L zeigen Impulsdiagramme
von Steuersignalen, die von dem in 5 gezeigten Schreibsteuersignalgenerator
erzeugt werden. 6A zeigt
ein Taktsignal Clk20. 6B zeigt
ein ,Block Start'-Signal Block_start. 6C zeigt
ein ,Data Valid'-Signal data_valid. 6D zeigt
ein ,Makroblock Start'-Signal mb_start. 6E zeigt von der IDCT-Einrichtung 7 (1) ausgegebene Daten-IDCT[8:0]. 6F zeigt ein Signal, das
durch Latchen des ,Block Start'-Signals mit einer fallenden Flanke
des Taktsignals Clk20 (6A)
unter Verwendung des ersten D-Flipflop 51 erhalten wird. 6G stellt das DCNT[5:0]-Signal
dar, das vom Synchron-Reset-6-Bit-Zähler 52 ausgegeben
wird. 6H stellt einen Schreib-Blockimpuls
dar, der durch das Latchen des decodierten Taktsignals DCNT[2:0]
= 7 mit einer fallender Flanke des Taktsignals Clk20 (6A) ausgegeben wird. 6 1 zeigt ein Signal, das durch das Latchen des
,Data Valid'-Signals data_valid (6C)
mit einer fallender Flanke des Taktsignals Clk20 (6A) unter Verwendung des
dritten D-Flipflop 54 erzeugt wird. 6J zeigt das Schreib-Blocksignal, das
durch das Latchen des decodierten Taktsignals DCNT[2:0] = 6 mit
einer steigenden Flanke des Taktsignals Clk20 (6A) ausgegeben wird, welches
eine Variante von 6H darstellt. 6K zeigt eine Schreibadresse
und 6L zeigt das in 6J gezeigte Signal invertiert.
-
7A bis 71 zeigen detaillierte Impulsdiagramme
während
einer Schreiboperation für
das Schreiben in den Speicher, gesteuert durch die in 8 dargestellte Schreibsteuerung,
die im Nachfolgenden beschrieben wird und die von dem in 5 gezeigten Schreibsteuersignalgenerator
erzeugte Schreibsteuersignale nutzt. 7A beschreibt
ein Taktsignal Clk40. 7B beschreibt
ein Taktsignal Clk20. 7C beschreibt
ein Schreib-Blocksignal, das in den in 8 gezeigten D-Flipflop D71 eingegeben
wird. 7D beschreibt
ein Ausgabesignal (a) des D-Flipflop D71, 7E beschreibt ein Ausgabesignal (b) des
D-Flipflop D72, und 7F beschreibt
ein Ausgabesignal (c) des D-Flipflop D73. 7G beschreibt ein Lese-/Schreibsignal
(RW-Signal), das
vom Puffer 71 ausgegeben wird. 7H beschreibt
ein WCEN-Signal, das vom ODER-Gatter O71 ausgegeben wird,
und 71 beschreibt eine Schreibadresse
für den
FIFO-Speicher.
-
8 zeigt
ein detailliertes Schaltbild der in 4 dargestellten
Schreibsteuerung 41, die zwölf D-Flipflops D71 bis D82 umfasst,
zwei NAND-Gatter NAN71 und NAN72, einen Puffer B71,
ein ODER-Gatter 071, einen ,6'-Decodierer 71,
einen Zähler 72 und
einen ,47'-Decodierer 73. Hier stellt das vom D-Flipflop D79 ausgegebene
Lese-Bankauswahlsignal
eine Kennung dar, die anzeigt, dass die Schreiboperation in der
aktuellen Bank abgeschlossen ist. Außerdem zeigt das RW-Signal
durch einen ,H'-Wert eine Leseoperation und durch einen ,L'-Wert
eine Schreiboperation an. Hier nutzt der ,47'-Decodierer nur die
Werte 0 bis 47 aus den Werten von 0 bis 63 eines
WCNT[5:0]-Signals.
-
Im Folgenden wird die Arbeitsweise
der in 4 gezeigten Schreibsteuerung 41 unter
Bezugnahme auf 5 bis 8 beschrieben.
-
Zuerst wird ein 1-Bildpunkt-Signal
IDCT[8:0], das aus neun Datenbits besteht, von der in 1 gezeigten IDCT-Einrichtung 7 ausgegeben
und entsprechend dem in 6A dargestellten
Taktsignal Clk20 in das Schieberegister 59a eingegeben.
Das aus dem Schieberegister 59a ausgegebene 1-Bildpunkt-Signal
wird jeweils entsprechend dem Taktsignal Clk20 in jedes
von acht Schieberegistern 59b bis 59i eingegeben.
Das bedeutet, da das 1-Bildpunkt-Signal aus 9 Bits besteht, eine
Gesamtmenge von 72 Datenbits, d. h. DIN[71:0] werden aus
den Ausgaben von acht Schieberegistern 59b bis 59i gebildet.
Diese 72 DIN[71:0]-Datenbits werden sequenziell in den
in 4 gezeigten Speicher 45 geschrieben.
-
Damit wird, wenn die 72-Bit-Daten,
d. h. DIN[71:0] bereit sind, das vom Zähler 52 ausgegebene DCNT[2:0]=6
im Inverter 56 und UND-Gatter 57 decodiert und
dann mit einer steigenden Flanke des Taktsignals Clk20 unter
Verwendung des vierten D-Flipflops 58 gelatcht,
um den in 6J dargestellten
Schreib-Blockimpuls auszugeben. Alternativ wird ein vom Zähler 52 ausgegebenes
DCNT[2:0] = 7 im Inverter 56 und UND-Gatter 57 decodiert und dann
mit einer fallenden Flanke des Taktsignals Clk20 gelatcht,
um den in 6H dargestellten
Schreib-Blockimpuls auszugeben. Das bedeutet, dass der Schreib-Blockimpuls
ab Eingabe des ersten IDCT-Datensignals für jedes achte Datensignal erzeugt
wird. Auf der Grundlage des Schreib-Blockimpulses werden die in 7A bis 71 dargestellten
Steuerimpulse erzeugt.
-
Die in 6K dargestellte
Schreibadresse des Speichers 45 wird durch schrittweises
Erhöhen
der Schreibzählerausgabe
WCNT[5:0] entsprechend der steigenden Flanke des Schreib-Blockimpulses
erzeugt. Wenn ein Makroblock vollständig eingeschrieben ist, erzeugt
der in 8 gezeigte D-Flipflop D78 ein mc_start_flag-Signal
zur Verwendung als Anforderungssignal anderer Verarbeitungseinheiten.
-
9A bis 9P sind Impulsdiagramme der
Lesesteuersignale, die in der in 4 gezeigten
und in 14 ausführlicher
dargestellten Lesesteuerung erzeugt werden. 9A beschreibt ein Taktsignal Clk20. 9B beschreibt ein IDCT FIFO-Lesestart-Signal. 9C beschreibt die Ausgabe
eines NAND-Gatters, das eine NAND-Operation in Bezug auf eine Signalausgabe
durchführt,
indem das Lesestart-Signal invertiert wird, nachdem es zweimal mit
der fallenden Flanke des Taktsignals Clk20 und des idct_start-Signals
verzögert wurde. 9D beschreibt ein RCNT[5:0]-Signal. Abb.
-
9E beschreibt ein RADDR[5:0]-Signal. 9F beschreibt ein Signal,
das nach einer ,47'-Decodierung in Bezug auf das RCNT[5:0]-Signal
und dem Latchen des RCNT[5:0]-Signals
mit der fallenden Flanke des Taktsignals Clk20 von einem
invertierenden Ausgabeport eines D-Flipflop ausgegeben wird. 9G beschreibt ein Signal,
das von einem Ausgabeport eines anderen D-Flipflops nach dem Latchen
des in 9F dargestellten
Signals mit der steigenden Flanke des Taktsignals Clk20 ausgegeben
wird. 9H beschreibt ein
Signal, das von einem invertierenden Ausgabeport des D-Flipflop
nach dem Latchen des in 9D dargestellten
Signals mit der steigenden Flanke des Taktsignals Clk20 ausgegeben
wird. 91 beschreibt ein Lese-Blocksignal. 9J beschreibt eine Ausgabe
des Schieberegisters 152. 9K beschreibt
eine Ausgabe des Schieberegisters 153a. 9L beschreibt eine Ausgabe des Schieberegisters 153b. 9M beschreibt ein YC-Signal,
das nach Verzögerung
des RCNT[5]-Signals durch das Clk20 unter Verwendung zweier
D-Flipflops ausgegeben wird, wobei das YC-Signal einen Luminanzblock eines ,L'-Status
und einen Chrominanzblock eines ,H'-Status umfasst, die durch Multiplexen
einen Luminanz/Chrominanz-Block erzeugen. 9N beschreibt ein MC-Signal, das nach
Verzögerung
des RCNT[0]-Signals durch das Clk20 unter Verwendung zweier
D-Flipflops ausgegeben wird, wobei das MC-Signal ein höchstwertiges-Bit-(MSB)-Signal
eines ,L'-Status und ein niederwertigstes-Bit-(LSB)-Signal eines ,H'-Status
umfasst, die durch Multiplexen ein Chrominanzauswahl-Referenzsignal erzeugen. 90 beschreibt ein ,MUX Valid Block'-Signal,
das nach Verzögerung
des Lese-Blocksignals unter Verwendung zweier D-Flipflops ausgegeben
wird. 9P beschreibt
eine Datenausgabe des IDCT-RAM 151.
-
10A bis 10F zeigen detaillierte Impulsdiagramme
von Signalen während
der Leseoperation des Speichers unter Verwendung der Lesesteuersignale,
die in der in 4 und 14 gezeigten Lesesteuerung 43 erzeugt
werden. 10A beschreibt
ein Taktsignal Clk40, 10B beschreibt
ein Taktsignal Clk20, 10C beschreibt
einen vereinfachten Leseblock, 10D zeigt
ein Signal, das durch Latchen des Taktsignals Clk20 mit
der fallenden Flanke des Taktsignals Clk40 ausgegeben wird, 10E beschreibt ein Signal,
das von einem Ausgabeport eines D-Flipflops nach dem Latchen des
in 10D dargestellten
Signals mit der steigenden Flanke des Taktsignals Clk40 ausgegeben
wird, und 10F beschreibt
ein RCEN-Signal.
-
11 zeigt
ein Beispiel einer Implementierung einer Modusbestimmungsschaltung
zur Bestimmung eines Schreib-/Lesemodus des in 4 gezeigten Speichers 45, die
ein NAND-Gatter NA91, einen Puffer B91 und einen
Multiplexer 111 umfasst.
-
12 zeigt
ein Beispiel einer Implementierung einer Umordnungsschaltung in
der in 4 gezeigten Lesesteuerung 43,
die eine Grundform-Ausgabeeinrichtung 121, einen Luminanzkonverter 122,
einen Chrominanzkonverter 124, zwei Multiplexer 123 und 125 und
ein UND-Gatter A121 umfasst.
-
Im Folgenden wird die Arbeitsweise
der zwei Multiplexer 123 und 125 beschrieben.
-
Unabhängig davon, ob ein ,HIGH'-
oder ein ,LOW'-dct_type-Signal in das UND-Gatter A121 eingegeben wird,
wählt der
Multiplexer 123 ein von der Grundform-Ausgabeeinrichtung 121 ausgegebenes
Signal aus, wenn das Vollbild-/Halbbild-Signal ,LOW' ist. Wenn das
Vollbild-/Halbbild-Signal ,HIGH' und das dct_type-Signal ,LOW' ist,
wählt der
Multiplexer 123 eine Ausgabe vom Chrominanzkonverter 124 aus.
Wenn das Vollbild-/Halbbild-Signal ,HIGH' und das dct type-Signal
,HIGH' ist, wählt
der Multiplexer 123 eine Ausgabe vom Luminanzkonverter 122 aus
und wählt
der Multiplexer 125 anschließend die Ausgabe des Chrominanzkonverters 124 aus.
-
13A bis 13D beschreiben Impulsdiagramme
eines Re-Multiplexing eines Chrominanzsignals, das von der in 4 gezeigten Lesesteuerung
ausgegeben wird, wobei 13 ein Taktsignal Clk20 beschreibt, 13B ein RCNT[3:0]-Signal
beschreibt, 13C ein
Signal beschreibt, das durch einmalige Verzögerung des DOUT-Signals ausgegeben
wird, welches vom IDCT-RAM 151 mit einer steigenden Flanke
des Taktsignals Clk20 ausgegeben wird, und 13D ein Signal beschreibt, das durch
zweimalige Verzögerung des
DOUT-Signals ausgegeben wird, welches vom IDCT-RAM 151 mit
einer steigenden Flanke des Taktsignals Clk20 ausgegeben
wird.
-
14 zeigt
ein detailliertes Schaltbild der in 4 gezeigten
Lesesteuerung, die einen Zähler 141, einen
,47'-Decodierer 142, eine Grundform-Ausgabeeinrichtung 143,
einen Luminanzkonverter 144, einen Chrominanzkonverter 145,
sechs Multiplexer
146 bis 150 und 154,
und eine Vielzahl an logischen Gattern, z. B. D-Flipflops, NAND-Gatter, ODER-Gatter,
umfasst.
-
Auch wenn hier nicht gezeigt, wird
ein Vollbild-/Halbbild-Eingangssignal oder dct type-Signal unter
Verwendung eines idct_start-Signals als ein Taktsignal ausgegeben.
Der IDCT-RAM 151 besteht hier aus zwei Bänken.
-
Im Folgenden wird die Arbeitsweise
der in 4 gezeigten Lesesteuerung 43 unter
Bezugnahme auf 8 bis 14 beschrieben.
-
Zunächst empfängt ein externer Anforderungsprozessor
(nicht gezeigt) ein von einer Schreibsteuerung 41 (4) ausgegebenes Anforderungssignal,
um ein Übernahmesignal
zur Anwendung auf die in 4 und 14 gezeigte Lesesteuerung 43 zu
erzeugen, welches durch ein idct FIFO-Lesestart-Signal definiert wird.
Wenn das idct FIFO-Lesestart-Signal in die in 4 und 14 gezeigte
Lesesteuerung 43 eingegeben wird, wird der Lese Zählwert um
1 erhöht
und startet die Schreiboperation.
-
Da die Schreib- und Leseoperationen
immer gleichzeitig ausgeführt
werden, ist der Gesamtzeitablauf so gestaltet, dass die Leseoperation
während
einer ,HIGH'-Periode
des Systemtaktes Clk20 ausgeführt wird, und die Schreiboperation
während
einer ,LOW'-Periode desselben ausgeführt wird.
-
Die sequenziell erzeugten Leseadressen
werden, wie oben beschrieben, je nach Eingabedatenmodus einzeln
gelesen.
-
Die folgenden Tabellen 1 bis 4 zeigen
die Umordnung der Folge der zu lesenden Daten in Bezug auf ein Halbbild,
ein Vollbild und Vollbild-DCT. In diesen Fällen ist der Ausgabetyp nach
Halbbildern festgelegt. Eine festgesetzte Speicherumordnung ist
jedoch eher durch andere Verfahren anwendbar. In den Tabellen 2 bis
4 geben die zwei oberen Zeilen Luminanzsignale an, die im oberen
Bereich der Speicherbänke
(d. h. Y1 und Y2)
bzw. im mittleren Bereich der Speicherbänke (d. h. Y3 und
Y4) gespeichert sind. Die untere Zeile dieser Tabellen
gibt die Adressen für
Cr und Cb an. Zum Beispiel geben die ersten acht Spalten in der
unteren Zeile in 2 den oberen Bereich
von Cr und Cb an, und die letzten acht Spalten die unteren Bereiche
von Cr und Cb.
-
Tabelle 1 gibt die Adressen im Speicher
für ein
Halbbild wie in 3A gezeigt
an. Tabelle 2 gibt eine Folge von Leseadressen für ein Halbbild an. Tabelle
3 gibt eine Folge von Leseadressen für ein Vollbild im Falle einer
Halbbild-DCT an, wobei die Folge von Luminanzsignalen mit der in
Tabelle 2 übereinstimmt,
auch wenn die Folge von Chrominanzsignalen sich unterscheidet. Tabelle
4 gibt eine Folge von Leseadressen für ein Vollbild im Falle einer
Vollbild-DCT an, wobei die Folge von Luminanzsignalen und die Folge
von Chrominanzsignalen sich beide von denen in Tabelle 2 unterscheiden.
-
-
-
-
-
-
Die folgenden Tabellen 5 und 6 geben
die Typen der Tabellen zur Umordnung wie in den Tabellen 2 bis 4 an,
in denen die jeweils obere Zeile RCNT[3:0], und die untere Zeile
RADDR[3:0] angibt.
-
Tabelle
5
Tabelle
6
Die folgenden Tabellen
7 bis
9 beschreiben
die Umordnung, die problemlos durch das Austauschen von Bits vorgenommen
werden kann.
-
-
-
-
-
Im Falle eines Luminanzsignals wird
das Ausgabesignal des in 4 gezeigten
Speichers 45 sequenziell ausgegeben. Jedoch ist es wünschenswert,
dass im Falle eines Chrominanzsignals jeder vierte Bildpunkt von
Cb und Cr multiplext wird. 13 stellt
ein Beispiel für
das Multiplexen des Chrominanzsignals dar, in dem durch das Multiplexen
des Chrominanzsignals eine Verzögerung
erzeugt wird. Diese Verzögerung
kann aufgehoben werden, indem die Verzögerungen der Chrominanz- und
der Luminanzsignale einander zugeordnet werden.
-
Gemäß einem weiteren Ausführungsbeispiel
kann an Stelle des Leseadressen-Konvertierungsverfahrens
ein Schreibadressen-Konvertierungsverfahren angewendet werden. Außerdem kann
das Multiplexen des Chrominanzsignals auf andere Weise erfolgen.
Die Anzahl der Bildpunkt-Einheiten kann einen anderen Wert als 8
Bildpunkte annehmen. Außerdem
können
mehr als zwei IDCT-Speicherbänke
verwendet werden. Weiterhin kann an Stelle eines RAM-Speichers ein
FIFO-Speicher verwendet werden.
-
Wie oben gemäß dem Verfahren und der Schaltung
zur Konvertierung einer Ausgangssequenz nach vorliegender Erfindung
beschrieben, ist ein Formatkonverter nicht erforderlich, da die
von einer inversen DCT ausgegebenen Sequenzen eines Bildsignals
und die von einer Bewegungskompensierungs-Einrichtung ausgegebenen
Sequenzen durch ein Adressen-Zuordnungsverfahren einander zugeordnet
werden. Dadurch wird die Nachverarbeitung reduziert. Außerdem arbeitet
die Schaltung durch die Zeitlücke
zwischen Anforderungsoperation und Übernahmeoperation stets ohne
Verarbeitungsverzögerung.
Durch die Zuordnung eines Luminanz-Ausgabesignals zu einem Chrominanz-Ausgabesignals
wird eine vereinfachte Schnittstellenschaltung bereitgestellt. Es
kann eine kompakte implementierte Hardware erreicht werden.
-
Auch wenn vorliegende Erfindung zu
Anschauungszwecken anhand bevorzugter Ausführungsbeispiele offengelegt
wurde, wird Fachleuten ersichtlich sein, dass verschiedene Modifizierungen,
Zusätze
und Ersetzungen möglich
sind, ohne außerhalb
der Reichweite der Erfindung zu liegen, wie sie in den beiliegenden
Patentansprüchen
dargelegt wird.