-
Es
gibt zahlreiche Fernseh- und Video-Digitalsignal-Abtastratenstandards.
Eine Abtastrate von 13,5 MHz ist beispielsweise mit dem 4:2:2 Component
Digital Standard (CCIR 601) kompatibel. Das Abtasten mit dieser
Rate erzeugt 720 aktive Videoabtastwerte pro horizontaler linearisierter
Zeile und 483 vertikale Zeilen an einer Standard-Fernsehröhre. Dieses
Auflösungsniveau
wird auch als Standarddefinitionsfernsehen (SDTV) bezeichnet. SDTV
zeigt aktive Videoinformationen mit 483 von 525 Zeilen pro Vollbild
im verschachtelten Modus an. Hochauflösendes Fernsehen (HDTV) tastet
typischerweise im Abtastwertbereich im Bereich von 72 MHz bis 81
MHz ab. Die Society of Motion Picture and Television Engineers,
SMPTE hat ein HDTV-Format von 1920 Abtastwerten (Pixeln) pro horizontaler
Zeile und 1035 vertikalen Zeilen angenommen. Zusätzlich zu diesem Format existieren
weitere Fernsehformate wie z. B. die D2-MAC-, PAL- und SECAM-Standards
in Europa und der Wide Screen Television (WST) Standard.
-
Die
horizontale und vertikale Pixelauflösung kann sich am besten als
normierte horizontale und vertikale Dimension für das resultierende Bild vorgestellt
werden. In diesem Zusammenhang werden die Bilder hinsichtlich eines
Pixels mit Standardgröße normiert.
Somit wird eine andere Bildauflösung
direkt in eine andere Bildgröße umgesetzt.
-
Bei
den vielen existierenden Standards ist es erwünscht, von einem Standard in
den anderen umsetzen zu können,
wie z. B. für
die Anzeige eines in einem Standardformat aufgezeichneten Fernseh-/Videosignals
in einem Fernsehgerät,
das zur Anzeige eines anderen Standardformats ausgelegt ist. Es
ist auch erwünscht,
irgendeine Bildverzerrung, die durch die Umsetzung verursacht wird,
auf einem Minimum zu halten. Da der anfängliche Standard und der endgültige Standard
vor der Umsetzung nicht bekannt sein können, ist es auch erwünscht, ein
universelleres System zu haben, das Umwandlungen unter allen Formaten
handhaben kann.
-
In
einigen Fällen
wird diese räumliche
Umsetzung als Videogrößenänderung
bezeichnet. Die Videogrößenänderung
ermöglicht
beispielsweise, dass ein Bewegungsbildfilm mit voller Größe (35 mm,
24 Vollbilder pro Sekunde) mit einem Seitenverhältnis von mehr als 16 mal 9
an einem NTSC-Fernsehgerät
mit einem Seitenverhältnis
von 4 mal 3 angezeigt wird, ohne dass die Ausgangsanzeige zur "letter box" werden muss. Im digitalen
Bereich erfordert die Videogrößenänderung,
dass das Eingangssignal digital erneut abgetastet wird.
-
Die
digitale Neuabtastung erzeugt eine andere Darstellung des digitalen
Eingangssignals durch Berechnen von Punkten des angezeigten Signals,
die nicht notwendigerweise im ursprünglichen Signal existierten.
Neue Abtastwerte werden durch ein Interpolationsverfahren in Momenten
erzeugt, die vorher keine Abtastwerte hatten. Eine flexible digitale
Interpolationsfilterarchitektur ist in der Lage, eine Video-/Fernsehzeile
in eine willkürliche
Größe zu ändern. Ein
Beispiel der Videogrößenänderung
ist im US-Patent Nr. 08/317 474, herausgegeben am 4. November 1994,
mit dem Titel FILTER SELECTION CIRCUIT FOR DIGITAL RESAMPLING SYSTEM,
beschrieben, das durch den Hinweis hierin aufgenommen wird.
-
Ein
weiteres Beispiel von Videogrößenänderung
findet in Bild-in-Bild-Fernsehanzeigen statt. Das US-Patent Nr.
4 652 908, herausgegeben am 24. März 1987, mit dem Titel FILTERING
SYSTEM FOR PROCESSING A REDUCED RESOLUTION VIDEO IMAGE, beschreibt
ein System zur Videosignalverarbeitung, um ein Bild mit verringerter
Größe für die Anzeige
innerhalb eines Fernsehbildschirms mit größerem Bild zu erzeugen. Dieses
System beinhaltet eine Verringerung des Signals auf eine bereits
bekannte, kleinere Bildgröße.
-
Um
die Größenänderung
auszuführen,
ist es erforderlich, dass sowohl eine hori zontale als auch eine vertikale
Neuabtastung stattfinden. Um beispielsweise ein HDTV-Signal von
1920 × 1035
in ein SDTV-Signal von 720 × 483
umzusetzen, ist es erforderlich, dass sowohl eine horizontale als
auch eine vertikale Neuabtastoperation stattfinden. Für Echtzeit-
oder fast Echtzeit-Anwendungen ist es erwünscht, dass die horizontalen und
vertikalen Größenänderungsoperationen
im Wesentlichen gleichzeitig stattfinden. Eine Methode auf Blockbasis
zum Ausführen
dieses Prozesses wurde verwendet, wobei jedes Bild (d. h. Vollbild)
in blockförmige Stücke aufgeteilt
wird und jedes Stück
durch einen separaten Prozessor erneut abgetastet wird. Jeder von
diesen mehreren Prozessoren arbeitet parallel an einem einzelnen
Block.
-
Dieser
Prozess kann insofern ungünstig
sein, als er Probleme einführt,
die mit Interpolations- und Überlappungsanforderungen
in Zusammenhang stehen. Sobald die Verarbeitung für jeden
der separaten unterteilten Blöcke
vollständig
ist, wird das endgültige
Bild erzeugt, indem die separat verarbeiteten Blöcke zusammengesetzt werden.
-
Ein
weiteres Verfahren zum Ausführen
sowohl einer horizontalen als auch vertikalen Neuabtastung besteht
darin, ein nicht rekursives (FIR) Filter, das eine abgegriffene
Verzögerungsleitung
umfasst, für
die vertikale Verarbeitung zu verwenden, wobei die gesamte Verzögerung,
die von der Verzögerungsleitung
vorgesehen wird, in der Größenordnung
von mehreren Zeilenintervallen liegt. Dieses Verfahren erfordert
jedoch einen sehr großen
Aufwand aufgrund der Speicheranforderungen. Wenn eine ausreichende
Verarbeitung nicht stattfindet (beispielsweise aufgrund eines unzureichenden
Speichers), werden der Bereich und die Qualität der Umsetzung verschlechtert.
-
US 4 908 874 offenbart ein
System zum räumlichen
Transformieren von Bildern durch eine separate Transformation von
jeder Dimension des Bildes durch ein Rasterabtast-Fernsehsystem,
das für
jede Farbkomponente einen Transponierungsspeicher, der eine Änderung
der Abtastrichtung von horizontal zu vertikal vorsieht, ein vertikales
Transformationssystem, das in der vertikalen Richtung die vertikal
abgetasteten Videoinformationen transformiert, einen zweiten Transponierungsspeicher,
der zum Empfangen der vertikal transformierten Videoinformationen
und zum Vorsehen einer Änderung
der Abtastrichtung von vertikal zurück zu horizontal gekoppelt
ist, und ein horizontales Transformationssystem, das zum horizontalen
Transformieren des horizontal abgetasteten Videosignals gekoppelt
ist, um ein Farbkomponenten-Ausgangssignal
zu erzeugen, umfasst. Das Transformationssystem wird durch eine
Transformationszusammensetzungseinrichtung und eine Zerlegungseinrichtung,
die Eingangsbefehle empfängt,
die X- und Y-Vortranslationen,
eine X- und Y-Größensteuerung,
Z-Achsen-Drehwinkel und X- und
Y-Nachtranslationen festlegen, um eine befohlene zusammengesetzte
Transformation zu erzeugen, die dann in horizontale und vertikale
Komponenten zerlegt wird, gesteuert.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung umfasst ein System zum Umsetzen eines digitalen
Eingangssignals mit einer Auflösung
eines vertikalen und horizontalen Bildelements (Pixels) in ein digitales
Ausgangssignal mit einer anderen horizontalen und vertikalen Pixelauflösung. Das
digitale Eingangssignal wird in einen ersten Speicher eingespeist,
der das Eingangssignal speichert. Ein horizontales Neuabtastfilter
wird verwendet, um die normierte horizontale Dimension des digitalen
Eingangssignals in die normierte horizontale Dimension des gewünschten
Ausgangssignals umzusetzen, Das Ausgangssignal des horizontalen
Neuabtastmittels wird so transponiert, dass die vertikale Dimension
des Ausgangssignals in einer horizontalen Orientierung liegt. Das transponierte
Signal wird dann in einem zweiten Speicher gespeichert.
-
Das
transponierte Signal mit der erneut abgetasteten horizontalen Dimension
im zweiten Speicher wird in ein vertikales Neuabtastfilter eingespeist,
das die vertikalen Dimensionsinformationen des transponierten Signals
in das gewünschte
Format des Ausgangssignals umsetzt. Dieses vertikal erneut abgetastete
Signal wird dann so transponiert, dass die horizontalen und vertikalen
Dimensionen in derselben Orientierung liegen wie das digitale Eingangssignal.
Das neu transponierte Signal wird dann in einem dritten Speicher
als digitales Ausgangssignal gespeichert.
-
KURZBESCHREIBUNG
DER FIGUREN
-
Die
Erfindung wird anhand eines nicht begrenzenden Beispiels mit Bezug
auf die beigefügten
Zeichnungen beschrieben, in denen:
-
1 ein
Blockdiagramm eines Videogrößenänderungssystems
mit drei Filtern gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ist;
-
2 ein
Blockdiagramm des in 1 gezeigten Videogrößenänderungssystems
mit dem Einschluss von FIFO-Speicherpuffern ist;
-
3 ein
Blockdiagramm einer alternativen Ausführungsform des in 2 gezeigten
Videogrößenänderungssystems
ist, wobei das Dezimierungsfilter auch eine Bandbegrenzungsfähigkeit
umfasst und das Bandbegrenzungsfilter und Interpolationsfilter in
einem einzelnen Block mit einer Rückkopplungsschleife enthalten
sind;
-
4A, 4B und 4C Ablaufdiagramme
sind, die zum Beschreiben der Operation der beispielhaften Ausführungsform
eines Videogrößenänderungssystems
gemäß der vorliegenden
Erfindung, das in 2 gezeigt ist, nützlich sind;
-
5A, 5B und 5C Ablaufdiagramme
sind, die zum Beschreiben der Operation der beispielhaften Ausführungsform
der vorliegenden Erfindung, die in 3 gezeigt
ist, nützlich
sind;
-
6A, 6B und 6C Frequenzkennlinienkurven
für drei
verschiedene Dezimie rungsfilter sind, die um Faktoren von 2, 4 bzw.
8 dezimieren;
-
7A, 7B, 7C, 7D, 7E und 7F Frequenzkennlinienkurven
sind, die verschiedenen Skalierungsfaktoren in der Operation der
beispielhaften Ausführungsform
der vorliegenden Erfindung, die in 3 gezeigt
ist, entsprechen; und
-
8 ein
Blockdiagramm eines Eingangsprozessors für ein Videogrößenänderungssystem
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ist;
-
9 ein
Blockdiagramm eines Ausgangsprozessors für ein Videogrößenänderungssystem
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ist; und
-
10 ein
Ablaufplan ist, der ein Verfahren zum Betreiben einer beispielhaften
Ausführungsform
der vorliegenden Erfindung zeigt.
-
11 ein
Blockdiagramm einer Parallelverarbeitungsarchitektur gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ist;
-
12 ein
Blockdiagramm einer in 1 gezeigten Verarbeitungszelle
ist;
-
13 ein
Blockdiagramm einer beispielhaften Ausführungsform einer Verarbeitungszelle,
wie in 1 gezeigt, mit einer Verbindung mit einer Schaltmatrix
ist;
-
14 ein
Ablaufdiagramm ist, das zum Verstehen des Betriebs der vorliegenden
Erfindung nützlich ist;
-
15 ein
Ablaufdiagramm ist, das zum Verstehen der Operation eines Systems
mit vier Kanälen
gemäß der vorliegenden
Erfindung nützlich
ist;
-
16A eine Speicherabbildung für eine Systemkonfiguration
mit zwei Kanälen
gemäß der vorliegenden
Erfindung ist;
-
16B ein Blockdiagramm einer Parallelverarbeitungsarchitektur
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ist, das die Transponierung von Zeilen-
und Spalteninformationen während
der Verarbeitung ist;
-
17A ein Blockdiagramm einer Schaltmatrixverbindung
mit zwei Kanälen
ist;
-
17B ein Ablaufdiagramm ist, das zum Beschreiben
der in 7A gezeigten Matrix nützlich ist;
-
18A ein Blockdiagramm einer Schaltmatrixverbindung
mit vier Kanälen
ist;
-
18B ein Ablaufdiagramm ist, das zum Beschreiben
der in 18A gezeigten Matrix nützlich ist (welches
Abtastwerte für
einen der vier Kanäle
zeigt);
-
19 ein
Ablaufplan ist, der ein Verfahren zum Betreiben einer beispielhaften
Ausführungsform
der vorliegenden Erfindung zeigt;
-
20 ein
Blockdiagramm einer Parallelverarbeitungsarchitektur ist, die parallele
Zeileninformationen als ihre Eingabe empfängt und parallele Zeileninformationen
als ihre Ausgabe liefert; und
-
21 ein
Blockdiagramm einer Parallelverarbeitungsarchitektur, die parallele
Abtastinformationen annimmt und parallele Zeileninformationen ausgibt,
gemäß der vorliegenden
Erfindung ist.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
1 zeigt
ein beispielhaftes Videogrößenänderungssystem 10 gemäß der vorliegenden
Erfindung. Das System 10 ist ein digitales Filtersystem,
das digitale Signalinformationen entsprechend einem Fernseh-/Videosignal
als ein Eingangssignal in einem Abtastformat annimmt und digitale
Signalinformationen in einem anderen Abtastformat als dem Eingangssignalformat
ausgibt. Das System 10 ist ein eindimensionales Filtersystem,
das, wie nachstehend beschrieben, die Eingangssignale horizontal
und vertikal verarbeiten kann. Für
die hierin beschriebenen Ausführungsformen
werden die Signalinformationen in das Filtersystem in einer horizontalen
Orientierung (d. h. nach Zeilen) zur erneuten Abtastung eingelesen.
-
Das
System 10 ist nicht für
eine spezielle Videogrößenänderungs-Formatumsetzung
ausgelegt, sondern ist vielmehr als flexible Interpolationsfilterarchitektur
ausgelegt, die in der Lage ist, irgendein Videozeilenformat in eine
willkürliche
Größe zu ändern. Die
Größenänderung
wird im digitalen Bereich ohne Umwandlung von digitalen Signalen
in analoge Signale zur Verarbeitung ausgeführt.
-
Die
Videogrößenänderung
gemäß der vorliegenden
Erfindung ist in drei Bereiche oder Umsetzungsbereiche unterteilt.
Der erste ist eine Abtastratenerhöhung, wobei die digitalen Eingangsabtastwerte
in ein digitales Abtastformat mit einer höheren Abtastrate umgesetzt
werden. Ein Beispiel geht von einem Fernsehsignal mit Standarddefinition
(d. h. 720 Abtastwerte pro Zeile) zu einem hochauflösendem Fernsehsignal
(d. h. 1920 Abtastwerte pro Zeile). Der zweite ist eine Abtastratenverringerung,
wobei das Verhältnis
der Abtastwerte pro Zeile der Eingangssignalinformationen zu den
gewünschten
Abtastwerten pro Zeile der Ausgangssignalinformationen größer ist
als 0,5 und geringer ist als 1,0. Ein Beispiel für eine Abtastratenverringerung
ist die Umsetzung von Breitbildschirm-Fernsehen (16 mal 9 Seitenverhältnis mit
960 Abtastwerten pro Zeile) in Standarddefinitions-Fernsehen (4
mal 3 Seitenverhältnis,
d. h. 720 Abtastwerte pro Zeile). Schließlich ist der dritte Bereich
die Dezimierung, wobei das Verhältnis
des Eingangsabtast- zum Ausgangsabtastformat geringer als oder gleich
0,5 ist. Ein Beispiel für
die Dezimierung ist die Umsetzung von hochauflösendem Fernsehen (d. h. 1920
Abtastwerte pro Zeile) in Standarddefinitions-Fernsehen (d. h. 720
Abtastwerte pro Zeile).
-
Das
System 10 umfasst 3 Filter. Die drei Filter sind ein Dezimierungsfilter 12,
ein Bandbegrenzungsfilter 14 und ein Interpolationsfilter 18.
Das Dezimierungsfilter 12 und das Bandbegrenzungsfilter 14 können in einem
einzelnen integrierten Schaltungschip kombiniert sein, der als Block 16 dargestellt
ist. Eine zusätzliche Bandbegrenzung
kann vor der Dezimierung geschehen.
-
Im
Abtastratenerhöhungsmodus
filtern das Dezimierungsfilter 12 und das Bandbegrenzungsfilter 14 die
Eingangsdaten nicht, statt dessen arbeiten sie als "Allpass"-Filter. Dies liegt
daran, dass das Interpolationsfilter 18 zur Abtastratenerhöhung der
Eingangsdaten in ein höheres
Abtastformat ohne Bedarf für
Bandbegrenzung ausreicht. Das Interpolationsfilter 18 kann
dann programmiert werden, um die zusätzlichen Abtastwerte zu erzeugen,
die für
das Format mit höherer
Ausgangsabtastrate erforderlich sind.
-
Im
Abtastratenverringerungsmodus filtert das Dezimierungsfilter 12 nicht
die Eingangsabtastdaten (d, h. es wirkt als Allpassfilter), da die
Bandbreite der höheren
Eingangsabtastdaten nicht zu hoch ist für das niedrigere Abtastformat.
Wenn ein digitales Signal einfach ohne Bandbegrenzung in der Abtastrate
verringert wird, wird das Ergebnis rückgefaltet. Daher ist es erforderlich,
das Eingangssignal vor der Abtastratenverringerung einer Bandbegrenzung
zu unterziehen. Folglich dient das Bandbegrenzungsfilter 14 zum
Verringern der Bandbreite des Eingangssignals vor der Abtastratenverringerung
durch das Interpolationsfilter 18.
-
Das
Bandbegrenzungsfilter 14 kann ein nicht-rekursives (FIR)
Filter sein, das unter einer Gruppe von Filterkoeffizienten auswählen kann,
die durch einen Skalierungsfaktor bestimmt sind. Der Skalierungsfaktor
ist das Verhältnis
der Eingangsabtastrate zur Ausgangsabtastrate. Das Bandbegrenzungsfilter 14 verringert
die Bandbreite des Eingangssignals genügend, um zu verhindern, dass
eine Rückfaltung
im Interpolationsfilter 18 stattfindet.
-
Der
dritte Modus erfordert eine Dezimierung im Abtastratenverringerungsprozess.
Wenn der Skalierungsfaktor geringer ist als 0,5, kann die Qualität der Umsetzung
vom Format der höheren
Eingangsabtastrate in das Format der niedrigeren Ausgangsabtastrate
unter Verwendung nur des Bandbegrenzungsfilters 14 nachteilig
beeinflusst werden, da das Bandbegrenzungsfilter 14 die
Bandbreite vor der Interpolation nicht ausreichend verringern kann.
Wenn der Skalierungsfaktor geringer ist als 0,5, dezimiert das Dezimierungsfilter 12 in
einer beispielhaften Ausführungsform
die Eingangsdaten um einen ganzzahligen Betrag. In einer beispielhaften
Ausführungsform
kann das Dezimierungsfilter 12 beispielsweise eine integrierte
Schaltung Harris HSP43168 sein. Dieses spezielle Dezimierungsfilter
dezimiert die Eingangsdaten um einen Faktor von 2, 4 oder 8. Weitere
Dezimierungen liegen vollständig
innerhalb der Beschreibung der Erfindung, was eine andere integrierte
Schaltung und/oder zusätzliche
Schaltungsanordnung erfordert, wie es für Fachleute verständlich wäre. Zwei
Harris HSP43168 Chips können
beispielsweise in Reihe verwendet werden, um die Dezimierungsfaktoren
zu erhöhen.
Mit Rückbezug
auf die in 1 gezeigte Ausführungsform
kann der Eingangsabtastwert um einen Faktor von 2, 4 oder 8 dezimiert
werden, um eine Abtastrate von 1/2, 1/4 oder 1/8 ihrer ursprünglichen
Abtastrate vor dem Eintritt in das Bandbegrenzungsfilter 14 zu
erreichen, um die Bandbreite weiter zu verringern. Das Harris-Filter
ist auch in der Lage zu einfachen FIR-Filteroperationen, um eine Bandbegrenzung für den Abtastratenerhöhungs- und
Abtastratenverringerungsmodus bereitzustellen, welches als kombiniertes Dezimierungsfilter
und Bandbegrenzungsfilter wirkt.
-
Wenn
ein Eingangssignal mit einer Abtastrate von 1920 Abtastwerten pro
Zeile hinsichtlich der Größe auf ein
SDTV-Abtastformat von 720 Abtastwerten pro Zeile geändert werden
würde,
würde ein
Dezimierungsmodus (Modus 3) für
das System 10 verwendet werden. Das Eingangssignal von
1920 Abtastwerten pro Zeile tritt in das Dezimierungsfilter 12 ein,
in dem eine Dezimierung von 1/2 (Dezimierungsfaktor von 2) stattfindet. Dies
führt dazu,
dass jeder zweite Abtastwert herausgeworfen wird, d. h. nur eine
Hälfte
der Eingangssignalabtastwerte verwendet werden. Zwei ist die größte ganze
Zahl, durch die 1920 dividiert werden kann und ein Ergebnis ergibt,
das größer als
die oder gleich der gewünschten
Ausgangsabtastrate von 720 ist. Das dezimierte Signal von 960 Abtastwerten
tritt dann in das Bandbegrenzungsfilter 14 ein, in dem
die Bandbreite des Signals verringert wird. Das Signal mit verringerter
Bandbreite von 960 Abtastwerten tritt dann in das Interpolationsfilter 18 ein,
in dem eine Verkleinerungsinterpolation stattfindet, wobei die 960
Abtastwerte in 720 Abtastwerte umgesetzt werden. Die 720 Abtastwerte
werden dann aus dem Interpolationsfilter 18 ausgegeben.
-
2 zeigt
ein eindimensionales Videogrößenänderungssystem 20.
Das Videogrößenänderungssystem 20 nimmt
die drei Filterkomponenten des Systems 10 und fügt einen
FIFO-Speicherpuffer 22 zwischen dem Dezimierungsfilter 12 und
dem Bandbegrenzungsfilter 14 und einen FIFO-Speicherpuffer 24 zwischen dem
Bandbegrenzungsfilter 14 und dem Interpolationsfilter 18 hinzu.
Die FIFO-Speicher 22 und 24 sind Zeilenpufferspeicher
(First-in/First-out-Speicherschaltungen).
Die FIFOs 22 und 24 halten Daten vor dem Eintritt in
die nächste
Schaltungsphase. Im Dezimierungsmodus unter Verwendung eines Skalierungsfaktors
von 2 schreibt das Dezimierungsfilter 12 beispielsweise
jeden zweiten Abtastwert in den FIFO 22. Das Bandbegrenzungsfilter 14 liest
dann jeden Abtastwert aus dem FIFO 22 (960 Abtastwerte
insgesamt), wenn es seine Bandbegrenzungsoperationen durchführt. Ohne
den FIFO 22 würde
das Bandbegrenzungsfilter 14 jeden zweiten Eingangsabtastwert
bearbeiten (unter der Annahme eines Dezimierungsfaktors von 2),
was erfordert, dass das Bandbegrenzungsfilter 14 konstant
seine Operation startet und stoppt. Der FIFO 22 ermöglicht eine
konstante Operation des Bandbegrenzungsfilters 14.
-
Eine
Beispieloperation des Systems 20, die als drei Zeilen für jede der
vorstehend beschriebenen drei Moden dargestellt ist, ist in 4A, 4B und 4C gezeigt.
-
4A zeigt
das System 20, das im Abtastratenerhöhungsmodus arbeitet, um die
Anzahl von Abtastwerten in einer horizontalen Zeile eines Bildes
zu erhöhen.
Die Operation des Dezimierungsfilters 12, des Bandbegrenzungsfilters 16 und
des Interpolationsfilters 18 ist in der Zeitsequenz gegen
ein horizontales Synchronisationsimpulssignal H gezeigt. Wenn die
erste Zeile von Eingangsdaten in das Dezimierungsfilter 12 des Systems 20 eintritt,
wirkt das Dezimierungsfilter 12 als Allpassfilter, während das
Bandbegrenzungsfilter 14 und das Interpolationsfilter 18 inaktiv
sind, da noch keine Daten diese Filter erreicht haben. Während des
zweiten Zeilenintervalls wirken das Dezimierungsfilter 12 und
das Bandbegrenzungsfilter 14 beide als Allpassfilter, während das
Interpolationsfilter 18 noch inaktiv ist. Während des
dritten Zeilenintervalls wirken das Dezimierungsfilter 12 und
das Bandbegrenzungsfilter 14 noch als Allpassfilter, während das
Interpolationsfilter 18 die Eingangsdaten entsprechend
der ersten Zeile von Videoinformationen interpoliert. Während des
vierten Zeilenintervalls wirken das Dezimierungsfilter 12 und
das Bandbegrenzungsfilter 14 als Allpassfilter und das
Interpolationsfilter 18 interpoliert die zweite Zeile von
Videoinformationen. Dies setzt sich für jede Zeile von Videoinformationen,
die in das System 20 eingegeben wird, fort.
-
In 4B ist
der Abtastratenverringerungsmodus der Operation des Systems 20 im
Zeitzeilenformat dargestellt. In diesem Beispiel ist die Anzahl
von Abtastwerten in einer horizontalen Zeile verringert. Während des
ersten Zeilenintervalls des horizontalen Synchronisationssignals
H wirkt das Dezimierungsfilter 12 als Allpassfilter, während das
Bandbegrenzungsfilter 14 und das Interpolationsfilter 18 inaktiv
sind. Während
des zweiten Zeilenintervalls wirkt das Dezimierungsfilter 12 als
Allpassfilter, während
das Bandbegrenzungsfilter 14 die erste Zeile von Informationen
einer Bandbegrenzung unterzieht. Das Interpolationsfilter 18 ist
während dieses
zweiten Zeilenintervalls noch inaktiv. Während des dritten Zeilenintervalls
wirkt das Dezimierungsfilter 12 noch als Allpassfilter,
während
das Bandbegrenzungsfilter 14 die Bandbreite der zweiten
Zeile von Daten begrenzt. Daten für die Zeile Eins haben nun
das Interpolationsfilter 18 erreicht, in dem eine Interpolation
für die
Abtastratenverringerung stattfindet. Während des vierten Zeilenintervalls
wirkt das Dezimierungsfilter 12 als Allpassfilter, während das
Bandbegrenzungsfilter 14 die Bandbreite der dritten Zeile
von Eingangsdaten begrenzt. Das Interpolationsfilter 18 interpoliert
die zweite Zeile von Eingangsdaten.
-
4C stellt
die Operation des Dezimierungsmodus des Systems 20 in einem
Zeitzeilenformat dar. Dieser Modus wird verwendet, wenn die Abtastratenverringerung
um einen Faktor von mehr als zwei zu Eins stattfindet. Während des
ersten Zyklus dezimiert das Dezimierungsfilter 12 die Informationen
der Zeile Eins. Wenn von 1920 Abtastwerten zu einer letztlichen
Ausgabe von 720 Abtastwerten gegangen wird, wird ein Skalierungsfaktor
von 2 verwendet, um die Anzahl von Eingangsabtastwerten um eine
Hälfte
zu verringern. Während
des ersten horizontalen Zeilenintervalls sind das Bandbegrenzungsfilter 14 und
das Interpolationsfilter 18 inaktiv. Im zweiten Zeilenintervall
dezimiert das Dezimierungsfilter 12 die zweite Zeile von
Informationen. Das Bandbegrenzungsfilter 14 unterzieht
die erste Zeile von Informationen während der ersten Hälfte des
horizontalen Zeilenintervalls einer Bandbegrenzung und ist während der
zweiten Hälfte
inaktiv. Das Bandbegrenzungsfilter 14 arbeitet nur während einer
Hälfte
des horizontalen Zeilenintervalls, da nur eine Hälfte des ursprünglichen
Eingangssignals nach der Dezimierung vorhanden ist. Das Interpolationsfilter 18 arbeitet
auch nur während
einer Hälfte
des horizontalen Zeilenintervalls. Im dritten horizontalen Zeilenintervall
dezimiert das Dezimierungsfilter 12 die dritte Zeile von
Eingangsdaten, während
das Bandbegrenzungsfilter 14 die Bandbreite der zweiten
Zeile während
der Hälfte
des horizontalen Zeilenintervalls begrenzt. Das Interpolationsfilter 18 interpoliert
die zweite Zeile von Eingangsdaten während einer Hälfte des
horizontalen Zeilenintervalls. Ein ähnlicher Satz von Operationen
findet während
des vierten und der anschließenden
horizontalen Zeilenintervalle statt.
-
Es
ist auch möglich,
das Filter mit unterschiedlichen Taktraten zu betreiben. Das Dezimierungsfilter 12 kann
beispielsweise mit einer ersten Taktrate arbeiten, während das
Bandbegrenzungsfilter 14 mit einer Hälfte der Taktrate des Dezimierungsfilters 12 arbeitet.
In dieser Weise werden Daten in den FIFO 22 mit einer schnelleren
Rate geschrieben und aus dem FIFO 22 mit einer langsameren
Rate gelesen. Wenn das Dezimierungsfilter 12 die Daten
hält, dann
scheint der Datenfluss konstant (d. h. keine Inaktivitätsperiode).
-
3 zeigt
ein Videogrößenänderungssystem 30.
Das Videogrößenänderungssystem 30 ist
eine zusätzliche
Ausführungsform
der vorliegenden Erfindung, in der das Dezimierungsfilter 12 auch
eine Bandbegrenzungsfähigkeit
umfasst und das Bandbegrenzungsfilter 14 und das Interpolationsfilter 18 in
einem einzelnen Halbleiterchip 26 kombiniert sind. Ein
Rückkopplungsweg 28 führt Daten
nach der Bandbegrenzungsoperation zu einem Eingang Y zurück, um die
Interpolationsoperation auszuführen.
Ein zusätzlicher
FIFO 32 kann nach der Interpolation in der Interpolationsschaltung 26 arbeiten.
Der FIFO 32 würde
mit Daten entsprechend der stattfindenden Interpolation geladen
werden.
-
Ein
Computer 34 ist mit dem System 30 zur Steuerung
der im System 30 enthaltenen Filter verbunden gezeigt.
Der Computer 34 umfasst einen Mikroprozessor, eine Tastatur,
eine Anzeige, eine Speichervorrichtung und eine Eingabe/Ausgabe-Hardware
(E/A-Hardware) zur Verbindung mit dem System 30.
-
5A, 5B und 5C stellen
die Operation des Abtastratenerhöhungsmodus,
des Abtastrateverringerungsmodus und des Dezimierungsmodus des Systems 30 dar.
In 5A wirkt das Dezimierungsfilter 12 als
Allpassfilter für
alle horizontalen Zeilen des Bildes. Das Bandbegrenzungs-/Interpolationsfilter 26 ist während des
ersten horizontalen Zeilenintervalls inaktiv. Während des zweiten und der anschließenden Zeilenintervalle
interpoliert das Filter 26 die vorherige Zeile, die durch
das Filter 12 gelaufen ist.
-
5B stellt
die Operation des Abtastratenverringerungsmodus des Systems 30 dar.
Im Abtastratenverringerungsmodus wirkt das Filter 12 als
Bandbegrenzungsfilter während
jedes horizontalen Zeilenintervalls. Während des ersten horizontalen
Zeilenintervalls ist das Filter 26 inaktiv. Während des
zweiten und anschließender
Zeilenintervalle interpoliert das Filter 26 die vorherige
Eingangszeile, die während
des vorherigen Zeilenintervalls einer Bandbegrenzung unterzogen
wurde.
-
In 5C ist
die Operation des Dezimierungsmodus des Systems 30 dargestellt.
Während
jedes horizontalen Zeilenintervalls dezimiert das Filter 12 die
aktuelle Eingangszeile. Während
des ersten Zeilenintervalls ist das Filter 26 inaktiv.
Während
des zweiten und anschließender
Zeilenintervalle führt
das Filter 26 eine Bandbegrenzungsoperation des Signals,
das im vorherigen Zeilenintervall dezimiert wurde, aus. Während der zweiten
Hälfte
des Zeilenintervalls führt
das Filter 26 seine Interpolationsoperation aus.
-
Das
Interpolationsfilter 18 und das Bandbegrenzungs-/Interpolationsfilter 26 können in
einer beispielhaften Ausführungsform
der vorliegenden Erfindung ein Filter Gennum GF90101 sein. Dieses
Filter ist eine integrierte Mehrphasen-FIR- Filterschaltung, die sowohl zur Interpolation
als auch zur Abtastwert-FIR-Filterung in
der Lage ist. Die Schaltung weist eine Doppel-Eingangsanschluss-Multiplexfähigkeit
auf, die zwei gleichzeitige Filteroperationen (d. h. Dezimierungsmodus)
ermöglicht.
Im Dezimierungsmodus dezimiert das Dezimierungsfilter 12 des
Systems 30 die Eingangsdaten, wobei weniger als die Hälfte der
Eingangsdaten belassen wird, damit sie zum Bandbegrenzungs-/Interpolationsfilter 26 geleitet
werden. Das Filter 26 hat somit genügend Zeit, um seine Bandbegrenzungsoperation
und seine Interpolationsoperation gleichzeitig auszuführen.
-
Sowohl
das Dezimierungsfilter 12 als auch das Bandbegrenzungs-Interpolationsfilter 26 des
Systems 30 enthalten separate Speicherbänke mit auswählbaren
Filterkoeffizienten in einer beispielhaften Ausführungsform der vorliegenden
Erfindung. Das Dezimierungsfilter 12 weist einen Speicher
auf, der aus 32 Stellen mit jeweils 8 Abgriffen besteht. Die Speicherstellen
0-19 enthalten die Abgriffsgewichtungskoeffizienten für die Dezimierungsfilter,
während
die Stellen 20–31
die Abgriffsgewichtungskoeffizienten für die Bandbegrenzungsfilter
enthalten. Unter Verwendung der integrierten Harris-Schaltung in
einer beispielhaften Ausführungsform kann
das Filter 12 eine Faltungsfilterarchitektur verwenden.
Obwohl es aus nur 8 Abgriffen besteht, ist es in der Lage, ein Filter
mit 15 Abgriffen zu implementieren. Folglich stellen die Abgriffswerte,
die im Speicher gespeichert sind, nur die Hälfte des vollständigen Filters
dar (dies begrenzt diese Verwendung der integrierten Harris-Schaltung
auf Anwendungen, in denen symmetrische Filter verwendet werden können).
-
Die
Filterlänge,
die für
den Dezimierungsmodus verwendet wird, ist länger als für einfache FIR-Filter. Wenn
beispielsweise um einen Faktor von 2 dezimiert wird, wird ein Filter
mit 31 Abgriffen verwendet. Dies erfordert 2 separate Speicherstellen
für jeden
Abgriff. Wenn um einen Faktor von 4 dezimiert wird, wird ein Filter
mit 63 Abgriffen verwendet, was 4 separate Speicherstellen für jeden
Abgriff erfordert. Wenn um einen Faktor von Acht dezimiert wird,
wird ein Filter mit 127 Abgriffen Verwendet und die integrierte
Schaltung ist so konfiguriert, dass sie acht Speicherstellen pro
Abgriff aufweist. TABELLE
1 Speicherinhalt
des Dezimierungsfilters 12 für
das System 30
Stelle(n) | Filter |
0,
1 | Horizontale
2:1-Dezimierung |
2,
3 | Vertikale
2:1-Dezimierung |
4,
5, 6, 7 | Horizontale
4:1-Dezimierung |
8,
9, 10, 11 | Vertikale
4:1-Dezimierung |
12
bis 19 | Horizontale
und Vertikale 8:1-Dezimierung |
20 | Horizontales
Bandbegrenzungsfilter #2 |
21 | Horizontales
Bandbegrenzungsfilter #3 |
22 | Horizontales
Bandbegrenzungsfilter #4 |
23 | Horizontales
Bandbegrenzungsfilter #5 |
24 | Horizontales
Bandbegrenzungsfilter #6 |
25 | Vertikales
Bandbegrenzungsfilter #2 |
26 | Vertikales
Bandbegrenzungsfilter #3 |
27 | Vertikales
Bandbegrenzungsfilter #4 |
28 | Vertikales
Bandbegrenzungsfilter #5 |
29 | Vertikales
Bandbegrenzungsfilter #6 |
30 | Horizontales
Bandbegrenzungsfilter #1 |
31 | Vertikales
Bandbegrenzungsfilter #1 |
-
Der
Speicher für
das Bandbegrenzungs-/Interpolationsfilter 26 in einer beispielhaften
Ausführungsform
unter Verwendung des Gennum GF9101 Chips hat eine Kapazität von 108
Stellen von 12 Abgriffsgewichtungskoeffizienten pro Stelle.
-
Die
Speicherstellen 0-95 enthalten Interpolationsfilter, die nicht mit
der Software modifiziert werden können. Die Bandbegrenzungsfilter,
die im Dezimierungsmodus verwendet werden, werden in den Stellen 96-107
gehalten. Die folgende Tabelle ist eine Auflistung des Speicherinhalts
des Bandbegrenzungs-/Interpolationsfilters
26. TABELLE
2 Speicherinhalt
des Bandbegrenzungs-/Interpolationsfilters 26 für das System 30
Stelle(n) | Filter |
0 bis
95 | Interpolationsfilter |
96 | Horizontales
Bandbegrenzungsfilter #1 |
97 | Horizontales
Bandbegrenzungsfilter #2 |
98 | Horizontales
Bandbegrenzungsfilter #3 |
99 | Horizontales
Bandbegrenzungsfilter #4 |
100 | Horizontales
Bandbegrenzungsfilter #5 |
101 | Horizontales
Bandbegrenzungsfilter #6 |
102 | Vertikales
Bandbegrenzungsfilter #1 |
103 | Vertikales
Bandbegrenzungsfilter #2 |
104 | Vertikales
Bandbegrenzungsfilter #3 |
105 | Vertikales
Bandbegrenzungsfilter #4 |
106 | Vertikales
Bandbegrenzungsfilter #5 |
107 | Vertikales
Bandbegrenzungsfilter #6 |
-
In
einer beispielhaften Ausführungsform
wurden die Betriebsarten des Systems
30 über sechs
verschiedene Filtereigenschaften unterteilt. Diese Filtereigenschaften
sind in der folgenden Tabelle gezeigt. TABELLE
3 Filterauswahltabelle
für das
System 30
Skalierungsfaktor | Bandbegrenzungsfilter |
>= 1,0 | Horizontales/Vertikales
Filter #1 |
<= 1,0 und > 11/12 | Horizontales/Vertikales
Filter #2 |
<= 11/12 und > 5/6 | Horizontales/Vertikales
Filter #3 |
<= 5/6 und > 3/4 | Horizontales/Vertikales
Filter #4 |
<= 3/4 und > 2/3 | Horizontales/Vertikales
Filter #5 |
<= 2/3 und > 0,5 | Horizontales/Vertikales
Filter #6 |
-
Wenn
die Anzahl von aktiven Eingangsabtastwerten beispielsweise 1920
ist (d. h. für
verschachteltes HDTV) und die Anzahl von gewünschten aktiven Ausgangsabtastwerten
1280 ist (d. h. für
progressives HDTV), wird der Skalierungsfaktor als 1280 ÷ 1920
= 2/3 berechnet. Aus der obigen Tabelle ist zu sehen, dass diese
Umsetzung das Horizontale/Vertikale Filter #6 als Bandbegrenzungsfilterabschnitt
des Dezimierungsfilters 12 des Systems 30 erfordert.
-
Wenn
im Dezimierungsmodus gearbeitet wird, dezimiert das Filter 12 um
einen Faktor von 2, wenn der Skalierungsfaktor > 0,25 und <= 0,5 ist. Wenn der Skalierungsfaktor > 0,125 und <= 0,25 ist, dezimiert
das Dezimierungsfilter 12 um einen Faktor von 4. Wenn der
Skalierungsfaktor schließlich
geringer als oder gleich 0,125 ist, dezimiert das Dezimierungsfilter 12 um
einen Faktor von 8.
-
Wenn
im Dezimierungsmodus gearbeitet wird, arbeitet das Bandbegrenzungs-/Interpolationsfilter 26 in
seinem Bandbegrenzungsmodus. Das zu verwendende spezielle Bandbegrenzungsfilter
wird so ausgewählt,
dass irgendeine Dezimierung berücksichtigt
wird, die vor der Bandbegrenzung stattfindet. Wenn vom hochauflösenden Fernsehen
zum Standarddefinitionsfernsehen gekommen wird, ist der Skalierungsfaktor
beispielsweise 720 ÷ 1920
= 0,375. Da der Skalierungsfaktor < 0,5
ist, arbeitet das System 30 im Dezimierungsmodus. Sobald
das Dezimierungsfilter 12 die Eingangsabtastwerte um einen
Faktor von 2 dezimiert, werden 960 Abtastwerte zuerst zum FIFO 22 und
dann zum Bandbegrenzungsinterpolationsfilter 26 geliefert.
Das Filter 26 unterzieht die Signalauflösung von 960 Abtastwerten auf
720 Abtastwerte einer Bandbegrenzung. Der Skalierungsfaktor für das Filter
B wird dann zu 720 960 = 0,75. Unter Verwendung der obigen Tabelle
führt ein Skalierungsfaktor
von 0,75 zur Verwendung des Bandbegrenzungsfilters #5 des Filters 26.
Somit ist der Skalierungsfaktor für das Dezimierungsfilter 12 anders
als jener des Bandbegrenzungs-/Interpolationsfilters 26.
-
6A, 6B und 6C zeigen
Beispielfilterkennliniengraphen für das Dezimierungsfilter 12,
das im System 30 gezeigt ist. In jeder dieser Fig. ist
fn gleich einer Nyquist-Frequenz. 6A zeigt
die Filterkennlinie während
einer 2:1-Dezimierung. 6B zeigt
eine Filterkennlinie während
einer 4:1-Dezimierung. 6C zeigt eine Filterkennlinie
während
einer 8:1-Dezimierung.
-
7A–7F sind
Beispielfilterkennliniengraphen, die das Bandbegrenzungsfilter 26 darstellen, das
im System 30 verwendet wird. 7A–7F entsprechen
den Filtern 1 bis 6, die in der vorstehend beschriebenen Tabelle
3 aufgelistet sind.
-
Mit
Bezug auf 7A führt beispielsweise ein Skalierungsfaktor
von mehr als oder gleich 1 zu der in 7A gezeigten
Allpass-Frequenzgangkennlinie, wenn das horizontale/vertikale Filter
Nr. 1 verwendet wird. Mit Bezug auf 7B ist
ebenso eine Filterkennlinie, wenn der Skalierungsfaktor geringer
als oder gleich 1,0 und größer als
11/12 ist, unter Verwendung eines horizontalen/vertikalen Filters
Nr. 2 gezeigt. Die restlichen 7C–7F entsprechen
Frequenzkennlinien, wenn die horizontalen/vertikalen Filter Nr.
3-6 jeweils verwendet werden.
-
Wenn
ein verschachteltes SDTV-Ausgangssignal behandelt wird, ist die
aktive vertikale Größe gleich der
Anzahl von aktiven Zeilen im vollen Vollbild. Wenn in ein SDTV-Verschachtelungsformat
umgesetzt wird, erzeugt ein Videogrößenänderungssystem wie z. B. das
System 30 ein progressives (nicht-verschachteltes) Ausgangssignal. Zusätzliche
Ausgangsprozessoren (nicht dargestellt) lassen dann jede zweite
Zeile aus, um ein Ausgangssignal im verschachtelten Format zu erzeugen.
-
Im
Betrieb sind die in Tabellen 1 und 2 aufgelisteten Filter in einer
Computerdatei enthalten, die im Computer 34 (3)
gespeichert ist. Diese Datei kann beispielsweise in einer Speichervorrichtung
wie z. B. einem Festplattenlaufwerk des Personalcomputers 34 enthalten
sein. Andere Speichermittel als ein Festplattenlaufwerk und Prozessormittel
als ein Personalcomputer können
für diese
Zwecke verwendet werden, wie für Fachleute
verständlich
ist. Die Formatsteuereinheit, die ein Videogrößenänderungssystem wie z. B. das System 30 betreibt,
verwendet diese Datei beim Konstruieren der erforderlichen Filterkoeffizienten,
um eine gewünschte
Formatumsetzung auszuführen.
In einer beispielhaften Ausführungsform
wird ein separates Computerprogramm, das im Computer 34 gespeichert
ist, verwendet, um eine zweite Computerdatei aus den Filterinformationen
zu konstruieren, die in der ersten Computerdatei enthalten sind.
Die zweite Computerdatei liegt in einer Form vor, die zur Verwendung
durch das System 30 geeignet ist.
-
In
einer alternativen Ausführungsform
kann ein Anwender spezielle Filterkoeffizienten für das Dezimierungsfilter 12 oder
das Bandbegrenzungsfilter 26 liefern. Das Liefern von Filterkoeffizienten
ermöglicht
die Erzeugung von Filterkennlinien mit Frequenzkennlinienkurven,
die anders sind als die in 6A–6C und 7A-7F gezeigten.
-
TABELLE
4 Eingangsdateiformat
-
Tabelle
4 zeigt die Reihenfolge, in der die in einer beispielhaften Ausführungsform
verwendeten Filter in der von einem Anwender gelieferten Eingangsdatei
erscheinen. Das beispielhafte Format verwendet einen separaten Satz
von Filterkoeffizienten für
die Luminanz (Y) und Chrominanz (C). Folglich folgt das C-Filter
unmittelbar den Y-Filtern mit dem identischen Format.
-
Das
Folgende sind zusätzliche
Beispiele der Operation einer beispielhaften Umsetzung unter Verwendung
des Systems 30.
-
Das
erste Beispiel setzt ein Bild mit 1125 Zeilen im verschachtelten
Form in 525 Zeilen im progressiven Format um. Für diese Umsetzung werden die
horizontalen Dimensionskomponenten von 1920 Abtastwerten pro Zeile
auf 720 Abtastwerte pro Zeile einer Abtastratenverringerung unterzogen,
während
die vertikalen Dimensionskomponenten von 518 aktiven Abtastwerten
pro Spalte auf 484 aktive Abtastwerte pro Spalte einer Abtastratenverringerung
unterzogen werden. Der erste Schritt in der Umsetzung bestimmt,
welche Filter für
die Videogrößenänderung
verwendet werden.
-
Für die horizontale
Größenänderung
wird der Skalierungsfaktor als 720 1920 = 0,375 bestimmt. Folglich
arbeitet das Dezimierungsfilter 12 im Dezimierungsmodus
(Modus 3) unter Verwendung eines Dezimierungsfaktors von 2. Der
Skalierungsfaktor für
das Bandbegrenzungs-/Interpolationsfilter 26 ist anders
als der Skalierungsfaktor für
das Dezimierungsfilter 12. Der Skalierungsfaktor für das Filter 26 ist
720 ÷ 960
= 0,75. Der Unterschied ist ein Ergebnis des Filters 26 mit
einer Eingabe von 960, welches die ursprüngliche Eingabe von 1920, dezimiert
um einen Faktor von 2, ist. In diesem Modus sind die erforderlichen
Filter für
die Umsetzung das horizontale 2:1-Dezimierungsfilter für das Dezimierungsfilter 12 und
das horizontale/Bandbegrenzungsfilter für das Filter 26. Wenn
die Bandbegrenzungskennlinie für
das Filter 26 festgelegt wird, sollte das Filter 26 auf
weniger als 0,75 der Nyquist-Frequenz eine Bandbegrenzung durchführen.
-
Für die vertikale
Dimensionsumsetzung ist der Skalierungsfaktor 484 ÷ 518 =
0,934. Folglich arbeitet das Dezimierungsfilter 12 im Bandbegrenzungsmodus.
In diesem Modus ist das verwendete Filter das Allpassfilter für das Dezimierungsfilter 12.
Das Bandbegrenzungsfilter des Filters 26 ist in diesem
Modus nicht erforderlich.
-
Das
zweite Beispiel beinhaltet eine Umsetzung von 1125 Zeilen eines
Signals im verschachtelten Format in ein verschachteltes Signalformat
mit 525 Zeilen. Für
diese Umsetzung werden die horizontalen Dimensionskomponenten von
1920 Abtastwerten pro Zeile auf 720 Abtastwerte pro Zeile einer
Abtastratenverringerung unterzogen, während die vertikalen Dimensionskomponenten
von 518 Abtastwerten pro Spalte in 484 Abtastwerte pro Spalte einer
Abtastratenverringerung unterzogen werden. Die tatsächliche
Anzahl von Zeilen pro Halbbild, die als Ausgangssignal erzeugt werden,
ist 242. 484 vertikale Zeilen pro Vollbild sind erforderlich, da das
System 30 ein progressives (nicht-verschachteltes) Ausgangssignal
erzeugt. Wie vorher beschrieben, wird zum Erzeugen eines verschachtelten
Ausgangssignals unter Verwendung der vorliegenden Erfindung jede zweite
Zeile verworfen.
-
Für dieses
zweite Beispiel sind die interessierenden Filter zu denjenigen identisch,
die für
das vorherige Beispiel beschrieben wurden (1125 verschachtelt zu
525 progressiv).
-
Für die dritte
Umsetzung wird ein progressives Format von 525 Abtastwerten pro
Zeile in ein verschachteltes Format von 1125 Abtastwerten pro Zeile
umgesetzt. Für
diese Umsetzung wird die horizontale Dimension von 720 Abtastwerten
pro Zeile in 1920 Abtastwerte pro Zeile einer Abtastratenerhöhung unterzogen,
während
die vertikale Dimension von 484 aktiven Abtastwerten pro Spalte
in 518 aktive Abtastwerte pro Spalte einer Abtastratenerhöhung unterzogen
wird. Der Skalierungsfaktor für
die horizontale Umsetzung ist 1920 ÷ 720 = 2,667. Folglich arbeitet
das Dezimierungsfilter 12 im Allpassfiltermodus, während das
Bandbe grenzungs-/Interpolationsfilter 26 keine Bandbegrenzungsfunktion
ausführt.
Für die
vertikale Umsetzung ist der Skalierungsfaktor 518 ÷ 484 =
1,07. In diesem Modus arbeitet das Dezimierungsfilter 12 im
Allpassfiltermodus, während
das Filter 26 keine Bandbegrenzungsoperation ausführt.
-
In
einer beispielhaften Ausführungsform
weist das System 30 ein digitales Eingangsverarbeitungs-Vorderende
und ein digitales Ausgangsverarbeitungs-Hinterende auf, die in 8 bzw. 9 gezeigt sind.
-
Der
digitale Eingangsprozessor 40 umfasst einen parallelen
Eingangsblock 42 zum Eingeben von Signalen über eine
parallele Verbindung. Ein HDN-Quellensignal kann beispielsweise
in einer parallelen 8-Bit-Form empfangen werden. Der digitale Eingangsprozessor 40 enthält auch
einen seriellen Eingangsabschnitt zum Empfangen eines digitalen
seriellen Eingangssignals wie z. B. eines SDN-Videosignals mit 270 Mbps
oder eines Videosignals von Breitbildschirm-Standarddefinitions-TV
(WSDN) mit 360 Mbps oder eines Videosignals von N mit erweiterter
Definition (EDTV). Im parallelen Eingangsblock 42 werden
ECL-Signale in den TTL-Pegel für
die Verarbeitung umgesetzt. In einer beispielhaften Ausführungsform
verwendet der serielle digitale Eingangsblock 44 einen
seriellen Gennum-Empfänger
GS9005, ein automatisches Abstimmuntersystem (GS9010) und einen
Decodierer (GS9000), um serielle Eingangssignale zu empfangen. Der
digitalisierte analoge Eingangsblock 46 wird verwendet,
um digitalisierte analoge Signale von einem Analog-Digital-Umsetzer
zu empfangen. Dies ist erforderlich, wenn ein analoges Eingangssignal
verwendet wird. Nachdem die verschiedenen Komponenten des Eingangssignals
zur digitalen Eingangsplatine 40 geliefert wurden, werden
sie in Matrixblöcken 48 und
in einem Gammatabellenblock 49 verarbeitet. Der Matrixblock 48 wird
verwendet, um RGB-Quellen in eine Form eines Luminanzsignals (Y)
und (R-Y) und (B-Y) Farbdifferenzsignals (d. h. YCrCb) umzusetzen,
die verwendet wird, wenn Signale in einer beispielhaften Ausführungsform
der vorliegenden Erfindung verarbeitet werden. RGB oder andere Signalformate
können
auch als Eingangssignal verwendet werden, wie für Fach leute verständlich ist.
Die Gammatabelle 49 kann für die nicht-lineare Verarbeitung
wie z. B. Ändern
der Gammakurve eines Ausgangsvideosignals verwendet werden. Die
Gammatabelle 49 kann auch verwendet werden, um den Schwarzpegel
des Ausgangsvideo durch Addieren oder Subtrahieren eines festen Versatzes
im Luminanzsignal zu ändern.
-
Die
Signalverarbeitung fährt
am Zeilenmultiplexerblock (Zeilen-MUX-Block) 50 fort, wo
die Luminanz- und Chrominanzsignale für die parallele Verarbeitung
umformatiert werden. Der Zeilen-MUX 50 teilt die geraden
und ungeraden Luminanzsignale in vier Sätze von Zeilen-FIFOs auf, wobei
jeder FIFO eine vollständige Luminanzzeile
aufweist. Schließlich
wird der Ausgangssteuerblock 52 verwendet, um Eingangssignalquellen unter
Verwendung eines Referenzsignals auszuwählen, um das Schreiben von
aktiven Daten in die FIFOs des Zeilen-MUX-Blocks 50 zu steuern. Die
Ausgangssteuerung 52 gibt ein Signal zur Verarbeitung im
System 30 über
Gennum-Codierer (GS90002) aus.
-
In 9 ist
ein Blockdiagramm des digitalen Ausgangsprozessors 60 gezeigt.
Der digitale Ausgangsprozessor 60 nimmt umgesetzte Ausgangssignale
vom System 30 zur Ausgabe an eine Vorrichtung wie z. B. ein
HDN-Gerät
oder ein SDTV-Gerät
an. Der digitale Ausgangsprozessor 60 verwendet eine entsprechende Anzahl
von Verarbeitungsblöcken
für die
Anzahl von Ausgangszeilen, die vom System 30 ausgegeben
werden. In diesem Beispiel sind vier Verarbeitungsblöcke 62, 64, 66 und 68 gezeigt.
Die Verarbeitungsblöcke 62–68 setzen
den seriellen Eingangsdatenstrom in einen parallelen Datenstrom
unter Verwendung der Gennum-Decodierer (GS9000) um. Verschiedene
Komponentensignale werden aus dem parallelen Videodatensignal extrahiert,
bevor es an den ECL-Abschnitt 70 ausgegeben wird. Der ECL-Abschnitt 70 setzt
das TTL-Signal, das vom Verarbeitungsblock 62–68 ausgegeben
wird, in ECL-Signale um. Der ECL-Umsetzerblock 70 erzeugt
dann Signale zur Anzeige auf einer geeigneten Anzeigevorrichtung.
-
In 10 ist
ein Ablaufplan gezeigt, der ein Betriebsverfahren einer beispielhaften
Ausführungsform der
vorliegenden Erfindung zeigt.
-
Ein
Signal wird am Block 72 angelegt. Nach der Eingabe hängt die
Bestimmung dessen, ob die Dezimierung erforderlich ist, von der
Differenz zwischen der Abtastwertauflösung des Eingangssignals und
jener des letztlichen Ausgangssignals ab. Wenn die Dezimierung erforderlich
ist, findet die Dezimierung im Block 76 statt. Wenn nicht,
wird eine Bestimmung im Block 78 durchgeführt, ob
eine Bandbegrenzung erforderlich ist. Der Bandbegrenzungsschritt
hängt von
der Bandbreite des Signals vor der Interpolation ab. Wenn eine Bandbegrenzung
erforderlich ist, findet die Bandbegrenzung statt, wie im Block 80 angegeben.
Der nächste
Schritt ist die Interpolation im Block 82. Die Interpolation
erzeugt das Ausgangssignal, wie im Block 84 gezeigt. Zusätzliche
Schritte können
zu diesem allgemeinen Verfahren hinzugefügt werden, wie mit Bezug auf
die Operation der Systeme 10, 20 und 30,
die vorher beschrieben wurden, angegeben.
-
11 zeigt
ein beispielhaftes Videogrößenänderungssystem 90 gemäß der vorliegenden
Erfindung. Das System 90 ist mit einem Eingangsvollbild 92,
mit einer ersten Anzahl von horizontalen und vertikalen Abtastwerten
gezeigt, die in ein erstes Verarbeitungszellennetz 98 eintreten,
das das Eingangsvollbild 92 hinsichtlich der Größe ändert, um
ein Ausgangsvollbild 94 mit einer zweiten Anzahl von horizontalen
bzw. vertikalen Abtastwerten zu erzeugen. Das Eingangsvollbild 92 ist
im Betrieb der vorliegenden Erfindung als digitales Eingangssignal
dargestellt und das Ausgangsvollbild 95 ist als digitales
Ausgangssignal dargestellt. Das Verarbeitungszellennetz 98 ist
in eine Vielzahl von Verarbeitungszellen 961 , 962 ... 96n (einzeln
und im Allgemeinen als "Verarbeitungszelle 96" bezeichnet) unterteilt.
Das System 90 ist nicht für eine spezielle Videogrößenänderungs-Formatumsetzung
ausgelegt, sondern ist vielmehr als flexible (variable) Interpolationsfilterarchitektur
ausgelegt, die in der Lage ist, irgendein zweidimensionales Bild
in eine andere Größe zu ändern. Die Größenänderung
wird im digitalen Bereich ohne Umsetzung von digitalen Signalen
in analoge Signale zur Verarbeitung ausgeführt.
-
Jede
im Verarbeitungszellennetz 98 enthaltene Verarbeitungszelle 96 verarbeitet
eine vorbestimmte Anzahl von horizontalen Zeilen (Reihen) von Informationen
vom Eingangsvollbild 92 in Abhängigkeit von der Anzahl n von
Verarbeitungszellen 96, die für eine spezielle Videogrößenänderungsumsetzung
und/oder Ausführungsform
der vorliegenden Erfindung verwendet werden. Die Verarbeitungszelle 961 verarbeitet beispielsweise die Zeilen
1, n+1, 2n+1 und so weiter des Eingangsvollbildes 92. Die
Verarbeitungszelle 962 verarbeitet die
Zeilen 2, n+2, 2n+2 und so weiter. Die Verarbeitungszelle 96n verarbeitet die Zeilen n, n+n, 2n+n
und so weiter. Die Endzuweisung von Zeilen zur Verarbeitung durch
eine spezielle Verarbeitungszelle 96 im Verarbeitungszellennetz 98 wird
durch die Anzahl von Zellen n in einem speziellen Verarbeitungszellennetz 98 sowie das
Eingangs- und Ausgangsvideoformat bestimmt.
-
12 und 13 zeigen
beispielhafte Ausführungsformen
einer Verarbeitungszelle 96. In 12 ist eine
Verarbeitungszelle 96 mit einem Videosignaleingang gezeigt,
der in einen Eingangsvollbild-First-in/First-out- (FIFO) Speicher 100 mit
einer als 1X bezeichneten Verarbeitungsrate eintritt. Die in 12 gezeigte
Ausführungsform
kann in einem System wie z. B. dem in 11 gezeigten
verwendet werden, welches nur eine Verarbeitungszelle verwendet. 13 zeigt
eine beispielhafte Verarbeitungszelle 96, die parallel
mit anderen Verarbeitungszellen verwendet werden kann. In diesem
beispielhaften System umfasst die in 11 gezeigte
Verarbeitungszelle dann einen FIFO-Speicher 100, ein Neuabtastfilter 21,
einen Matrixspeicher 102 und einen FIFO-Speicher 108.
Jeder Speicher hält
nur einen Abschnitt des Bildes (d. h. jede n-te Zeile oder n-te
Spalte). Die Schaltmatrix 100 ist unter allen Verarbeitungszellen
gezeigt. Sie leitet Abtastwerte vom Filter 30 zum Speicher 104 oder 106,
um die Transponierungsfunktion zu implementieren. Der Deutlichkeit
halber wird die Operation der in 12 gezeigten
Verarbeitungsschaltungsanordnung beschrieben, gefolgt von einer
Beschreibung der Operation der Schaltmatrix 110, die in 13 gezeigt
ist, beim Verteilen der Abtastwerte. In einer beispielhaften Ausführungsform
sind die FIFO-Speicher sequentielle Speicher und die Speicher 104 und 106 sind
adressierbare Speicher. Zusätzliche
Kanäle 111 sind
gezeigt, die in die Schaltmatrix 110 eintreten, um Abtastwertdaten
für die
Transponierungsspeicherverarbeitung zu verteilen.
-
Ein
Neuabtastfilter 21 wie z. B. die Größenänderungssysteme 10, 20 und 30 (vorher
mit Bezug auf 1, 2 und 3 beschrieben)
ist dazu ausgelegt, die horizontalen Zeilen- und vertikalen Spaltensegmente
eines Eingangssignals in ein gewünschtes
Ausgangssignalformat umzusetzen. Bei der Umsetzung von einem HDTV-Format
von 1920 × 1035
in ein SDTV-Format von 720 × 483
wird beispielsweise eine Umsetzung von 1920 in 720 in der horizontalen
Dimension und 1035 in 483 in der vertikalen Dimension durch das
Neuabtastfilter 21 ausgeführt. In einer beispielhaften
Ausführungsform
wird das Größenänderungssystem 20 (vorstehend
beschrieben) als Neuabtastfilter 21 verwendet. Das Neuabtastfilter 21 20 bearbeitet
ein Eingangssignal in einer horizontalen Orientierung, d. h. es
verarbeitet eine horizontale Zeile der Eingangsinformationen, um eine
neu abgetastete horizontale Zeile auszugeben.
-
Die
aus dem FIFO 100 gelesenen Informationen treten in den
Vollbildverarbeitungszyklus des Neuabtasifilters 21 oder
mit einer Verarbeitungsrate ein, die zweimal die Verarbeitungsrate
ist, bei der die Signalinformationen in den FIFO 60 eingetreten
sind. Das Neuabtastfilter 21 führt die horizontale Zeilenformatumsetzung
während
eines ersten Zeitraums des Vollbildverarbeitungszyklus aus. Die
horizontale Zeilenformatumsetzung setzt die horizontale Dimension
des digitalen Eingangssignals in die vorbestimmte horizontale Dimension
des Ausgangssignals um. Die horizontale Dimension ist tatsächlich eine
Anzahl von normierten horizontalen Abtastwerten pro Einheitslänge. Ebenso
ist die vertikale Dimension der Eingangs- und Ausgangssignale die
Anzahl von normierten vertikalen Abtastwerten pro Einheitslänge.
-
Das
erneut abgetastete Signal vom Neuabtastfiltersystem 21 wird
in der Transponierungsform in den Speicher 104 geschrieben.
Der Speicher 104 ist als einer von zwei Speichern gezeigt,
die den Speicherblock 102 bilden. Der zweite Speicher ist
der Speicher 106. Das erneut abgetastete Signal wird in
den Speicher 104 (in der Transponierungsform) während der
ersten Hälfte
des Verarbeitungszyklus (d. h. des ersten halben Vollbildintervalls)
geschrieben. Während
der zweiten Hälfte
des Verarbeitungszyklus werden die Informationen, die im Speicher 104 gespeichert
sind, im Spaltenformat gelesen und dann in das Neuabtastfilter 21 zurückgeführt. Das
Zurückführen der
erneut abgetasteten horizontalen Signalinformationen in das Neuabtastfilter 21 ermöglicht,
dass das Neuabtastfilter 20 eine Neuabtastung der Abtastwerte
der vertikalen Dimension ausführt, wodurch
die Neuabtastung des ursprünglichen
Eingangssignals vollendet wird, das in die spezielle Verarbeitungszelle 96 eingetreten
ist. Die vertikale Neuabtastung entspricht der erforderlichen Umsetzung,
um die vorbestimmte vertikale Ausgangsdimension für das Ausgangssignal
zu erhalten. Die Informationen von der zweiten (vertikalen) Neuabtastung
werden dann in den Speicher 106 in der Transponierungsform
während
der zweiten Hälfte
des Verarbeitungszyklus geschrieben.
-
Während der
ersten Hälfte
des Verarbeitungszyklus werden Informationen, die im Speicher 106 gespeichert
sind, auch vom Ausgangsvollbild-FIFO 108 gelesen. Das letzte
Ausgangssignal wird vom Ausgangsvollbild-FIFO 108 gelesen.
Aufgrund der sequentiellen Art der für diese beispielhafte Ausführungsform
beschriebenen Verarbeitung wird, wenn ein Vollbild von Videoinformationen
während
eines Verarbeitungszyklus verarbeitet wird, ein neues Vollbild in
den Vollbild-FIFO 100 geladen.
-
Um
die separate horizontale und vertikale Verarbeitung in Echtzeit
auszuführen,
kann es in Abhängigkeit
von dem Faktor, um den die Abtastwerte verringert oder erhöht werden,
erwünscht
sein, die Taktrate der Verarbeitung des Eingangssignals zu verdoppeln.
In dieser Weise dauert die horizontale Verarbeitung ungefähr eine
Hälfte
des Verarbeitungszyklus, während
die vertikale Verarbeitung ungefähr
die zweite Hälfte
des Verarbeitungszyklus dauert. Das Speichern des digitalen Eingangssignals
im Eingangsvollbild-FIFO 100 wirkt als Puffer und ermöglicht,
dass die Informationen mit einer schnelleren Taktrate gelesen werden.
Dies ist in den Fig. als 1X-Signal, das in den Vollbild-FIFO 100 eintritt,
und als 2X-Signal, das den Vollbild-FIFO 100 verlässt, dargestellt.
-
Die
vorstehend für
eine einzelne Zelle 96 beschriebene Verarbeitung wird durch
eine Vielzahl von Verarbeitungszellen 961 –96n in einer beispielhaften Ausführungsform
in Abhängigkeit
von der Anzahl von parallelen Verarbeitungszellen 96, die
verwendet werden, ausgeführt.
In beispielhaften Ausführungsformen
der vorliegenden Erfindung führen
Systeme mit 1, 2, 4 und 8 Zellen (oder Kanälen) die erforderlichen Umsetzungen aus.
Eine größere oder
geringere Anzahl von Verarbeitungszellen 96 kann in Abhängigkeit
von der speziellen Anwendung der vorliegenden Erfindung auch verwendet
werden.
-
Eines
der von dem vorliegenden System gelösten Probleme betrifft die
Geschwindigkeitseigenschaften von existierenden Filtern. Derzeit
arbeiten Filter typischerweise mit einer Taktgeschwindigkeit von
ungefähr bis
zu 40 MHz. Filter dieser Art können
die Abtastrate von ungefähr
75 MHz von einigen HDTV-Signalen
nicht bearbeiten. Der Wunsch, die Eingangssignal-Abtastrate zu verdoppeln,
um die horizontale und vertikale Signalneuabtastung in Echtzeit
auszuführen,
d. h. während
eines einzelnen Verarbeitungszyklus, macht dieses Problem noch komplizierter.
Um dieses Problem zu lösen,
werden in einer beispielhaften Ausführungsform der vorliegenden
Erfindung mehrere Verarbeitungszellen 96 verwendet und
mit einer Schaltmatrix 110 miteinander verbunden, wie in 13 gezeigt.
Zusammen sehen mehrere parallele Verarbeitungszellen 961 –96n somit eine effektive Verarbeitungszeit
vor, die ausreicht, um die Abtastratenanforderungen des Eingangssignals
zu handhaben.
-
Unter
Verwendung des Beispiels eines HDN-Signals mit ungefähr 75 MHz
als Eingangssignal können vier
Verarbeitungszellen 96 (d. h. 961 , 962 , 963 , 964 ) der in 13 gezeigten
Art, die jeweils mit ungefähr
40 MHz arbeiten, verwendet werden, um eine effektive Abtastrate
von 160 MHz bereitzustellen. Diese Abtast rate von 160 MHz ist geringfügig größer als
die Abtastrate von 150 MHz (2 × 75
MHz), die erforderlich ist, wenn das eingegebene HDTV von 75 MHz
während
der Verarbeitung verdoppelt wird (zur Behandlung der horizontalen und
vertikalen Verarbeitung in einem einzelnen Verarbeitungszyklus).
In der beispielhaften Ausführungsform sehen
vier Filter, die mit 40 MHz arbeiten, eine effektive Abtastrate
von 160 MHz vor, die ausreicht, um die Verarbeitung auszuführen. Mehr
Kanäle,
die langsamere Filter verwenden, könnten auch verwendet werden, solange
die kumulative Abtastrate größer als
oder gleich zweimal die Abtastrate des Eingangssignals ist.
-
Da
das Eingangssignal verdoppelt wird und derzeitige Filter mit Abtastraten
von 40 MHz oder darunter arbeiten (aufgrund von Filtergeschwindigkeitsbegrenzungen
in der hierin beschriebenen beispielhaften Ausführungsform), wird die Taktrate
des Eingangssignals in den Vollbild-FIFO 100 wünschenswerterweise
auf 20 MHz gesetzt oder verlangsamt. Wenn vier Verarbeitungszellen 96,
die jeweils mit 20 MHz arbeiten (jeweils mit ihrem eigenen FIFO 100),
verwendet werden, ist die maximale Eingangssignal-Taktfrequenz folglich
80 MHz (4 × 20
MHz). Mit erneutem Bezug auf das Beispiel eines Eingangssignals
von ungefähr
75 MHz ist diese maximale Eingangssignalfrequenz größer als
das Eingangssignal von ungefähr
75 MHz und reicht somit aus, um die gewünschte Verarbeitung auszuführen. Wenn
sie über
der Eingangssignalrate von 75 MHz liegt, sieht dies den zusätzlichen
Vorteil von zusätzlicher
Zeit zum Kompensieren von möglichen Übertragungsverzögerungen oder
anderen Verzögerungen
vor.
-
Um
das Eingangssignal in Segmente zu unterteilen, die für die Unterverarbeitung
durch jede der Verarbeitungszellen 961 –96n geeignet sind, wird ein Transponierungsspeicher
oder Verarbeitungsschema implementiert, um sowohl die horizontale
als auch vertikale Signalverarbeitung vorzusehen und die Erzeugung
eines endgültigen
Ausgangsbildes aus den separat verarbeiteten Signalen in jeder der
Verarbeitungszellen 96 zu ermöglichen. Spezielle horizontale
Zeilen des Eingangsvollbildes 92 werden für jede separate Verarbeitungszelle 96 festgelegt,
wie in 15 und 16 gezeigt.
Während
der Verarbeitung durch die separaten Verarbeitungszellen werden
die Transponierungsspeicher 102 jeder Verarbeitungszelle
durch die Schaltmatrix 110 miteinander verbunden.
-
14 zeigt
ein Ablaufdiagramm, das die Operation einer Verarbeitungszelle 96 darstellt,
wie in 12 gezeigt. Das digitale Eingangssignal
wird in den Eingangs-FIFO 100 während eines vollständigen Verarbeitungszyklus
geschrieben. Ein gesamtes Eingangsvollbild von Informationen wird
aus dem Eingangs-FIFO 100 in nur einer Hälfte eines
Verarbeitungszyklus gelesen, da die Informationen mit zweimal der
Verarbeitungsrate des Videoinformations-Eingangssignals, die im FIFO-100 gespeichert
wurden, gelesen wird. Nach der Verarbeitung im Neuabtasffilter 21 treten
die erneut abgetasteten Signalinformationen in den Transponierungsspeicher 102 ein
und werden in den Speicher 104 geschrieben. In der zweiten
Hälfte
eines Verarbeitungszyklus werden Signalinformationen aus dem Speicher 104 zur
Rückführung zum
Neuabtasffilter 21 gelesen. In dieser Weise findet sowohl
die horizontale als auch die vertikale Signalneuabtastung statt.
-
Während der
ersten Hälfte
eines Verarbeitungszyklus werden auch erneut abgetastete Signalinformationen
aus dem Speicher 106 gelesen und in den Ausgangs-FIFO 108 geschrieben.
Während
der zweiten Hälfte
eines Verarbeitungszyklus werden erneut abgetastete Signalinformationen
in den Speicher 106 geschrieben. Während eines vollständigen Verarbeitungszyklus
werden schließlich
Informationen, die im Ausgangs-FIFO 108 gespeichert sind,
gelesen, um das erneut abgetastete endgültige Ausgangssignal zu erzeugen.
-
15 stellt
die Operation des Systems 90 als Vier-Kanal-System dar.
Die Operation jeder Verarbeitungszelle 961 –964 ist über einen einzelnen Verarbeitungszyklus
(d. h. einzelnes Vollbild) für
jede Zeile und Spalte von verarbeiteten und gespeicherten Signalinformationen
dargestellt. Die Eingangs- und Ausgangsvollbild-FIFOs 100 und 108 sind
nur einmal dargestellt, da ihre Operation für jede der Verarbeitungszellen
dieselbe ist.
-
Die
in den Eingangsvollbild-FIFO 100 geschriebenen Signalinformationen
werden über
den vollen Verarbeitungszyklus mit einer als 1X bezeichneten Signalrate
geschrieben. In einer beispielhaften Ausführungsform unter Verwendung
eines HDTV-Eingangssignals von ungefähr 75 MHz wäre die 1X-Abtastrate für jede Prozessorzelle 961 –964 20 MHz. Sobald ein Eingangsvollbild-FIFO ein Vollbild
von Informationen enthält
(nach einem Verarbeitungszyklus), können die Informationen mit
zweimal (2X) der Taktrate während
der ersten Hälfte
des Verarbeitungszyklus ausgelesen werden. In einer beispielhaften
Ausführungsform
findet die horizontale Verarbeitung während der ersten Hälfte des
Verarbeitungszyklus statt und die vertikale Verarbeitung findet während der
zweiten Hälfte
des Verarbeitungszyklus statt. Dies stellt alle Informationen für die Verarbeitung bereit,
so dass sowohl die horizontale als auch die vertikale Neuabtastung
während
eines einzelnen Verarbeitungszyklus (Vollbildintervalls) stattfinden
können. 15 stellt
nur einen Abschnitt der verarbeiteten Vollbildinformationen dar.
Die Anzahl von aktuellen verarbeiteten Zeilen und Spalten hängt von
der Voilbildgröße des endgültigen Ausgangssignals
ab. Wenn beispielsweise in ein 720 × 483 SDTV-Signal umgesetzt
wird, wäre das
endgültige
Ausgangsbild 720 Zeilen mal 483 Spalten.
-
Aus
der Darstellung in 15 ist zu sehen, dass die Zuweisung
von Zeilen für
die horizontale Verarbeitung vertikal verteilt ist, so dass die
Ausgabe aus den Prozessoren 961 , 962 , 963 , 964 während
jedes Verarbeitungszyklus Informationen für die vertikalen Spalten liefert.
Die Verarbeitungszelle 961 verarbeitet
beispielsweise die Zeilen 1, 5, 9 und so weiter in steigenden Schritten
von 4. Die Verarbeitungszelle 962 beginnt
die Verarbeitung mit der Zeile 2, dann der Zeile 6 und so weiter,
auch in ansteigenden Schritten von 4. Die Verarbeitungszelle 963 beginnt die Verarbeitung mit der Zeile
3, dann der Zeile 7 und so weiter. Die Verarbeitungszelle 964 beginnt die Verarbeitung mit der Zeile
4, dann der Zeile 8 und so weiter. Nachdem jede Zeile verarbeitet
ist, werden die im Speicher 104 gespeicherten resultierenden
Informationen (für
die Eingabe zurück
in das Neuabtastfilter 21 zur vertikalen Neuabtastung)
mit den vertikalen Spalteninformationen in einer horizontalen Formatorientierung
orientiert, wie in 6 gezeigt, um einem
Neuabtasifilter 21 gerecht zu werden, das horizontal verarbeitet.
In dieser Weise werden, wenn jeder Verarbeitungszyklus vollständig ist,
die Signalinformationen geeignet orientiert, um die Verarbeitung
der vertikalen Signalinformationen während der zweiten Hälfte des
Verarbeitungszyklus zu beginnen.
-
16A stellt die Speicherabbildung für eine Konfiguration
mit zwei Kanälen
dar. In der Konfiguration mit zwei Kanälen wird die horizontale Zeile
für die
Verarbeitung durch zwei Prozessoren, "Kanal 0" und "Kanal 1", jeweils mit seinem eigenen Speicher 106,
unterteilt. Jeder zweite Abtastwert wird in einen anderen der zwei Speicher 106 geschrieben.
Wie in 16A gezeigt, ist eine erläuternde
Zeile 0 gezeigt, während
sie in einem Prozessor des Kanals 0 verarbeitet wird, und eine erläuternde
Zeile 1 wird in einem Prozessor des Kanals 1 verarbeitet.
-
Wenn
die Zeile 0 verarbeitet wird, werden die Abtastwerte 0, 2 und 4
in die Spalte 1 des Speichers 106 des Kanals 0 geschrieben.
Die Abtastwerte 1 und 3 der Zeile 0 werden in die Spalte 1 des Speichers 106 des Kanals
1 geschrieben. Die Zeile 1 im Prozessor des Kanals 1 wird folgendermaßen geschrieben.
Die Abtastwerte 0, 2 und 4 werden in die Spalte 2 des Speichers 106 des
Kanals 0 geschrieben, während
die Abtastwerte 1 und 3 in die Spalte 2 des Speichers 106 des
Kanals 1 geschrieben werden. Folglich ist zu sehen, dass jede Zeile
oder Reihe der jeweiligen Speicher des Kanals 0 und Kanals 1 nun
Abtastwerte enthält,
die derselben ydim-Position der verarbeiteten Eingangszeile entsprechen.
-
Bei
der horizontalen Verarbeitung muss die Schaltmatrix (wie z. B. die
Schaltmatrix 1/2 in 17A) vollständige Spalten in einen einzelnen
Speicher 106 schreiben, während vollständige Zeilen
während
der vertikalen Verarbeitung geschrieben werden müssen. Um dies durchzuführen, müssen die
aus dem zweiten Zeilen-FIFO 108 (für eine Konfiguration mit zwei
Kanälen)
gelesenen Daten um einen einzelnen Taktzyklus verzögert werden.
In einem System mit vier Kanälen
ist eine Verzögerung
von einem Taktzyklus für
jeden zusätzlichen
Kanal erforderlich (d. h. zwischen dem zweiten und dem dritten Kanal
und zwischen dem dritten und dem vierten Kanal). Tabelle 5 stellt
die Datenfolge für
eine Konfiguration mit zwei Kanälen
dar und Tabelle 6 stellt die Datenfolge für eine Konfiguration mit vier
Kanälen
dar.
-
-
-
16B zeigt ein Beispiel der Speicherkonfiguration
des Eingangsvollbildes 92 (in 11 gezeigt) und
des Zwischenausgangsvollbildes 95. Das Eingangsvollbild 92 weist
eine Konfiguration von Zeilen, die mit A-J bezeichnet sind, und
Spalten, die mit 1–6
bezeichnet sind, auf. Die Zeilen von Abtastwerten, d. h. A1, A2, ... A6; B1, B2,
... B6 usw. treten in jeweilige Neuabtastfilter 211 –214 von jeweiligen Verarbeitungszellen 961 –964 ein, um die horizontale Verarbeitung
auszuführen.
Das Neuabtastfilter 211 der Verarbeitungszelle 961 verarbeitet die Zeilen A, E und I.
Das Neuabtastfilter 212 der Verarbeitungszelle 962 verarbeitet die Zeilen B, F und J. Das
Neuabtastfilter 213 der Verarbeitungszelle 963 verarbeitet die Zeilen C, G, K. Das
Neuabtastfilter 214 der Verarbeitungszelle 964 verarbeitet die Zeilen D, H, L. Nach
der Verarbeitung geschieht eine Transponierung, durch die die horizontalen
Zeileninformationen in vertikale Spalteninformationen umgesetzt
werden und im Speicher 104 als Zwischenausgangsvollbild 95 gespeichert
werden. Somit enthält
die Zeile 1 des Zwischenausgangsvollbildes 95 nun die Abtastwerte
A1, B1, C1, ... L1; während
die Zeile 2 die Abtastwerte A2, B2, C2, ... L2 enthält, usw.
-
Die
gezeigten Informationen, die als Zwischenausgangsvollbild 95 gespeichert
werden, werden dann in das geeignete Neuabtastfilter 21 jeder
Verarbeitungszelle 961 –964 zurückgeführt, um die Verarbeitung in
der vertikalen Dimension zu beenden.
-
In
einer beispielhaften Ausführungsform
wird die Verarbeitung für
die vertikale Dimension durch die Neuabtastfilter 301 –304 der Verarbeitungszellen 961 –964 durch Verarbeiten der vertikalen Informationen
in der horizontalen Konfiguration (Orientierung), die als Zwischenausgangsvollbild 95 gezeigt
sind, ausgeführt.
Durch Transponieren der erneut abgetasteten Informationen nach der
horizontalen Neuabtastung werden die digitalen Eingangssignalinformationen
folglich in einem Format orientiert, so dass die vertikale Neuabtastverarbeitung
in den Verarbeitungszellen 961 –964 stattfinden kann. Nach der vertikalen
Neuabtastverarbeitung transponiert das transponierte Speicherschema
der vorliegenden Erfindung den Speicher wieder in die ursprüngliche Orientierung
der horizontalen und vertikalen Dimensionen für die Ausgabe als digitales Ausgangssignal.
-
Das
transponierte Speicherschema wird durch Verbinden der Vielzahl von
Verarbeitungszellen 96, die die parallele Verarbeitung
des digitalen Eingangssignals ausführen, ausgeführt. Der
transponierte Speicher verwendet eine Schaltmatrix 100 (13),
um die Kommunikation unter den Verarbeitungszellen zu ermöglichen,
die verwendet werden, um die Verarbeitung aller Informationen auszuführen und
die ursprüngliche
horizontale und vertikale Dimensionsorientierung wieder zu erzeugen.
-
17A zeigt ein Beispiel eines Systems mit zwei
Kanälen
mit einem einzelnen Schalter, der zwischen zwei Neuabtastfilter 21 und
zwei Speicher 106 geschaltet ist. 17b stellt
das Ablaufdiagramm zum Umschalten zwischen den zwei Speichern 106 durch
die Neuabtastfilter 21 dar. Der Schalter 112 schaltet
mit der Hälfte
des Verarbeitungszyklus um, wobei Informationen im Speicher 106 einer
ersten Verarbeitungszelle im Speicher 106 einer zweiten
Verarbeitungszelle für
jedes der jeweiligen Neuabtastfilter 21 gespeichert werden.
Dies stellt die Orientierung der Informationen, die erforderlich
ist, um die vertikale Verarbeitung in den jeweiligen Neuabtastfiltern 21 auszuführen, und
dann für
die Umsetzung der aktuellen horizontalen verarbeiteten Signale zurück in die
ursprüngliche
horizontale/vertikale Orientierung (mit dem neuen erneut abgetasteten
Format) nach der vertikalen Verarbeitung bereit.
-
Für das in 18a gezeigte Netz mit vier Kanälen sehen die Schalter 114, 116, 118 und 40 (die
zum Schalter 112 identisch und äquivalent sind) das Umschalten
von erneut abgetasteten Signalinformationen in die Speicher 106 gemäß dem in 18b gezeigten Ablaufdiagramm vor.
-
In
einer beispielhaften Ausführungsform
sind die für
die Speicher 104 und 106 verwendeten Speichervorrichtungen
statische RAMs. In einer beispielhaften Ausführungsform sind die Schalter,
wie z. B. der Schalter 112, der in der Schaltmatrix 100 verwendet
wird, auch High Speed CMOS Bus Exchange Switches, die von Quality
Semiconductor, Inc. unter der Teilenummer QS32383 hergestellt werden.
Jeder Halbleiterschalter 112 besteht aus einem Satz von
fünf Vier-Punkt-Schaltern mit
einer Verzögerung
von Null, die in Abhängigkeit
vom Zustand des Steuersignals für
den speziellen Halbleiterschalter 112 jeweils die Abtastdaten
durchlassen oder das Ausgangssignal durchlassen.
-
19 zeigt
einen Ablaufplan 130, der den Prozess einer beispielhaften
Ausführungsform
der vorliegenden Erfindung darstellt. Dieses Ablaufdiagramm ist
vorgesehen, um darzustellen, wie der Prozess unter Verwendung eines
Unversalcomputers wie z. B. des in 3 gezeigten
Computers 34 implementiert werden kann. Im Block 132 wird
das digitale Videoeingangssignal in einen FIFO-Vollbildspeicher mit einer einzelnen Verarbeitungsrate
eingegeben. Das eingegebene digitale Videosignal wird aus dem FIFO-Vollbildspeicher
mit der doppelten Eingangsverarbeitungsrate in Schritt 134 ausgelesen.
Das digitale Eingangsvideosignal wird einer horizontalen Neuabtastung
in Schritt 136 unterzogen und wird in Schritt 138 im
Transponierungsspeicher gespeichert. Die Speicherung im Transponierungsspeicher
ist derart, dass die Orientierung die Verarbeitung der Signalinformationen
der vertikalen Dimension ermöglicht.
-
Das
transponierte Signal wird in der vertikalen Dimension in Schritt 140 erneut
abgetastet. Die vertikal erneut abgetasteten Signalinformationen
werden dann in Schritt 142 im Speicher in der ursprünglichen
Orientierung der horizontalen und vertikalen Signalinformationen
in Schritt 144 gespeichert. Schließlich wird das gespeicherte,
horizontal und vertikal umformatierte Signal aus dem Speicher mit
der ursprünglichen
Verarbeitungsrate in Schritt 146 gelesen.
-
Adressenerzeugung
-
Die
Adresse des statischen Speichers wird zusammen mit der Matrixschaltersteuerung
für die
Transponierungsoperation behandelt. Die Speichergröße in einer
beispielhaften Ausführungsform
ist 512K. Diese Größe entspricht
einer Adressenlänge
von 19 Bits. Der Speicher mit 512K wurde so gewählt, dass er eine maximale
Bildabmessung von 2K × 2K
in einem beispielhaften System ermöglicht. Andere Speichergrößen und Bildabmessungen
könnten
mit geeigneten Einstellungen auch verwendet werden.
-
Die
19-Bit-Adressenbits werden in X- und Y-Koordinaten aufgeteilt, um
die 2-dimensionale
Art des Speichers zu realisieren. Das heißt, die Anzahl von Bits, die
für jede
Koordinate zugewiesen werden, ist durch die Größe des Bildes bestimmt.
-
Ein
22-Bit-Wort, das die X- und Y-Verarbeitungsdimension darstellt (4
Bits für
jede Dimension), wird in eine Speichersteuerung über eine serielle Leitung in
einer beispielhaften Ausführungsform
heruntergeladen. Die Dimensionen legen die erforderliche Größe des Speichers
für die
Transponierungsoperation fest und werden aufgeteilt als: word[21:0]
= ydim[10:0] || xdim[10:0], wobei "||" eine
Verkettung darstellt.
-
Der
xdim-Parameter nimmt den Wert der aktiven horizontalen Größe des Ausgangsformats.
Dies wird verwendet, da, bis die Abtastdaten den Speicher 104 erreichen,
er in die horizontale Ausgangsgröße umgesetzt
wurde, was die Eingangsgröße für die Speicherzuweisung
irrelevant macht. Der ydim-Parameter nimmt den Wert der größeren der
aktiven vertikalen Größe des Eingangs-
oder Ausgangsformats, so dass die Gesamtzahl an Eingangszeilen in
den Speicher 104 während
der horizontalen Verarbeitung geschrieben werden, während die
Gesamtzahl von Ausgangszeilen in den Speicher 106 während der
vertikalen Verarbeitung geschrieben werden. Folglich ist die größere der
Eingangs- oder Ausgangszahl von Zeilen für die Zuweisung der Adressenbits
erforderlich.
-
Das
Adressierungssystem besteht aus vier einzelnen Zählern (nicht dargestellt) für die Speicheradressierungsanforderungen.
Das heißt,
es besteht ein Satz von X- und Y-Zählern für jeden Speicher (106 und 104). Diese
Speicherzähler
werden als xa, ya, xb und yb bezeichnet.
-
Die
Operation der Speicherzähler
ist für
die horizontalen und vertikalen Verarbeitungsausgaben unterschiedlich.
Die zwei Modi werden mit Bezug auf Tabelle 7 beschrieben (wobei
nch = die Anzahl von Verarbeitungskanälen im System: 4 für Y (Luminanz),
2 für C
(Chrominanz)).
-
Tabelle 7
-
Horizontale Verarbeitung
-
1. Schreiben in die Speicherbank
1
-
-
- yb:
- Rücksetzen am Beginn von jeder
Zeile Zählen
von 0 bis xdim/nch, Inkrementieren um 1 alle nch Zyklen
- xb:
- Rücksetzen am Beginn jedes Halbbildes/Vollbildes
obere Bits: Zählen
von 0 bis ydim Inkrementieren um 1 am Beginn jeder Zeile untere
Bits: Zählen
von 0 bis nch-1, Inkrementieren der unteren Bits um 1 bei jedem
Zyklus, dann Zurücklaufen
auf 0 und Inkrementieren fortsetzen
-
Beispiel:
-
- 1. Zeile: 0, 1,... nch-1, 0, 1,..., nch-1,...
- 2. Zeile: nch, nch+1,... 2nch-1, nch, nch+1,... 2nch-1,...
- 3. Zeile: 2nch, 2nch+1,... 3nch-1, 2nch, 2nch+1,... 3nch-1...
letzte
Zeile: ydim, ydim+1,... ydim+nch-1, ydim, ydim+1,... ydim+nch-1,...
-
Tabelle 7 (Fortsetzung)
-
2. Lesen aus der Speicherbank
0
-
-
- xa:
- Rücksetzen am Beginn jedes Halbbildes/Vollbildes
und nach "Zählungsende" Zählen von
0 bis xdim, Inkrementieren um 1 bei jedem Zyklus
- ya:
- Rücksetzen am Beginn jedes Teilbildes/Vollbildes
Zählen
von 0 bis ydim/nch, Inkrementieren um 1 nach jedem "Zählungsende" für
xa
-
Vertikale Verarbeitung
-
1. Lesen aus der Speicherbank 1
-
-
- xb:
- Rücksetzen am Beginn jeder Zeile
Zählen
von 0 bis ydim, Inkrementieren um 1 bei jedem Zyklus
- yb:
- Rücksetzen am Beginn jedes Halbbildes/Vollbildes
Zählen
von 0 bis xdim/nch, Inkrementieren um 1 am Beginn jeder Zeile
-
2. Schreiben in die Speicherbank
A
-
-
- ya:
- Rücksetzen am Beginn jeder Zeile
Zählen
von 0 bis ydim/nch, Inkrementieren um 1 alle nch Zyklen
- xa:
- Rücksetzen am Beginn jedes Halbbildes/Vollbildes
obere Bits: Zählen
von 0 bis xdim, Inkrementieren um 1 am Beginn jeder Zeile untere
Bits: Zählen
von 0 bis nch-1, Inkrementieren der unteren Bits um 1 bei jedem
Zyklus
-
Tabelle 7 (Fortsetzung)
-
Beispiel:
-
- 1. Spalte: 0, 1, ... nch-1, 0, 1, ... nch-1, ...
- 2. Spalte: nch, nch-1, ... 2nch-1, nch, nch-1, ... 2nch-1, ...
- 3. Spalte: 2nch, 2nch+1, ... 3nch-1, 2nch, 2nch-1, ... 3nch-1
...
letzte Spalte: xdim, xdim+1, ... xdim+nch-1, xdim, xdim+1,
... xdim+nch-1
-
Im
Schreibmodus müssen
die Speicherzähler
um einen einzelnen Taktzyklus voneinander versetzt sein. Das heißt, die
Zähler
für den
Kanal 1 (xb, yb) beginnen einen Taktzyklus später als die Zähler für den Kanal
0 (xa, ya) usw. Dies wird durch Verzögern des Signals act_v, das
die Zähler
startet, um die Kanalnummer durchgeführt.
-
Im
Schreibmodus werden die unteren Bits von xa und xb separat von den
oberen Bits gesteuert. Während
die oberen Bits am Beginn jeder Zeile durch das Signal v_start zurückgesetzt
werden, werden die unteren Bits alle nch Zyklen zurückgesetzt.
In einer beispielhaften Ausführungsform
wird ein separater Kanalzähler
parallel mit den Adressenzählern
laufen lassen. Er zählt
von 0 bis nch-1 und fährt
nach dem Rücksetzen
auf 0 fort. Dies wird durch Erzeugen eines separaten Rücksetzsignals
für die
unteren Bits implementiert.
-
Dieser
Kanalzähler
wird auch verwendet, um Schaltmatrix-Steuersignale zu erzeugen,
wie z. B. das Steuersignal, das für den Schalter 112 in 17B und die Schalter 114, 116, 118 und 120 in 18B dargestellt ist.
-
In
einer beispielhaften Ausführungsform
werden "Zählungsende"-Decodierungen nicht
implementiert, wenn sie nicht erforderlich sind, um Platz zu sparen.
Der Zählerwert
wird mit dem Verarbeitungsgrößenparameter
verglichen, was eine große
Menge an Logik erfordern kann.
-
Im
Lesemodus wird die "Zählungsende"=Decodierung für die xb-Zählung für die Kantenerweiterung verwendet.
Während
der vertikalen Verarbeitung werden Daten aus dem Speicher 104 gelesen
und in die Neuabtastfilter 21 zur vertikalen Größenänderung
zurückgeführt.
-
Während der
horizontalen Verarbeitung werden Daten vom Speicher 106 gelesen
und dann dem Ausgangsvollbild-FIFO 108 zugeführt. Dem
letzten Abtastwert, der aus jeder Zeile gelesen wird, müssen unmittelbar
die ersten Abtastwerte in der nächsten
Zeile folgen. Um dies zu erleichtern, wird eine "Zählungsende"-Decodierung für die xb-Adresse
verwendet, um das Ende jeder Zeile zu erfassen.
-
Im
Schreibmodus müssen
die "Zählungsende"-Decodierungen nicht
für irgendeinen
der Speicherzähler
implementiert werden. Obwohl dies verursacht, dass "Mülldaten" in den Speicher geschrieben werden,
wird auf diese Daten niemals zugegriffen. Um einen Überlauf
zu verhindern, müssen
die Speicherzähler
gestoppt werden, bevor die Bits knapp werden. Die ya- und yb-Speicherzähler erfordern
keine Zählungsende-Decodierungen
entweder im Lese- oder Schreibmodus. Der Überlaufschutz muss natürlich wieder
implementiert werden.
-
In
einer beispielhaften Ausführungsform
wird ein separates Freigabesignal erzeugt, um jeden der Speicherzähler zu
inkrementieren. Im Schreibmodus schalten die Freigaben am Ende jeder
Kanalzählung
auf aktiv. Dies ist, wie die ya- und yb-Speicherzähler alle
nch Zyklen inkrementieren. Ein separates (stopx) Signal wird jedoch
erzeugt, um zu verhindern, dass die oberen Bits von xa und xb an
diesem Punkt inkrementieren. Diese oberen Bits inkrementieren am
Beginn jeder Zeile in einer beispielhaften Ausführungsform um Eins. Dies wird
durch Deaktivieren des stopx-Signals einmal am Beginn jeder Zeile
durchgeführt,
so dass, sobald die unteren Bits einen Wert von nch erreichen, die
oberen Bits automatisch um 1 inkrementieren. Im Lesemodus ermöglicht das
Freigabesignal einfach, dass der xb-Zähler bei jedem Zyklus inkrementiert,
während
der yb-Zähler am
Beginn jeder Zeile inkrementiert.
-
Die
ya-, xa-Gruppe inkrementiert anders als die yb-, xb-Gruppe in ihren
jeweiligen Lesemodi. Wenn aus dem Speicher 104 gelesen
wird, werden die Abtastdaten zum Neuabtastfilter 21 zur
vertikalen Verarbeitung zurückgeführt. Die
Abtastdaten müssen
in derselben Weise gelesen werden wie die Abtastdaten, die vom Eingangsvollbild-FIFO 100 während der
horizontalen Verarbeitung geliefert werden. Das heißt, eine
neue Spalte wird gelesen, was mit jedem v_start-Impuls beginnt.
-
Bei
dieser beispielhaften Implementierung gibt es Zeitabschnitte, in
denen keine Abtastdaten aus dem Speicher gelesen werden. Es ist
jedoch immer noch erforderlich, bestimmte Merkmale der Verarbeitung
(vor allem Kantenerweiterung) zu handhaben. Dies ist für das Auslesen
aus dem Speicher 106 nicht der Fall. Die Daten, die aus
dem Speicher 106 gelesen werden, werden direkt zum Ausgangsvollbild-FIFO 108 gesandt, der
während
der Verarbeitung nicht dieselben Einschränkungen hat.
-
Das
Speicheradressierungsschema könnte
den Bereich von Ausgangsformaten, die vom beispielhaften Verarbeitungssystem
bearbeitet werden könnten,
begrenzen. Bei einer Umsetzung von 11251 (verschachtelt) in 720p
(progressiv) wird beispielsweise ein Halbbild von 1920 × 518 in
ein Vollbild von 1280 × 720
umgesetzt. In diesem Modus werden 518 Impulse v_start erzeugt, um
jede Eingangszeile anzugeben. Bei der Ausgabe sind jedoch 710 Zeilen
erforderlich. Wenn eine einzelne Zeile nach jedem Impuls v_start
gelesen wird, wäre
somit nicht genügend
Zeit, um alle 720 Zeilen aus dem Speicher zu lesen. Daher wird das
Lesen in einem einzelnen Burst ausgeführt, wobei eine Zeile unmittelbar
der anderen folgt.
-
Ein
Freigabesignal wird erzeugt, um einem Ausgangsformatierer (nicht
dargestellt) zu signalisieren, wenn die Abtastdaten vom Speicher
geliefert werden. Das Freigabesignal kippt in einer beispielhaften
Ausführungsform
mit dem ersten Abtastwert im Vollbild von niedrig auf hoch.
-
Um
zu verhindern, dass der FIFO 108 zusammenbricht, kann das
Schreiben durch Kippen des Signals auf niedrig, bevor der FIFO 108 aufgefüllt ist,
gestoppt werden. Die Position dieser fallenden Flanke muss nicht in
der exakten Position des letzten Abtastwerts auftreten, sondern
muss nur auftreten, nachdem geschrieben wird. Eine Schaltungsanordnung
zum Implementieren einer exakten Decodierung könnte eine beträchtlich Menge
an Platz belegen, so dass eine Abschätzung unter Verwendung von
Schaltungen durchgeführt
werden kann, die nur die oberen 6 Bits von ydim annehmen.
-
Während der
horizontalen Verarbeitung sind die Dimensionen der Abtastdaten,
die in die Speicherbank 104 geschrieben werden, xdim × ydim/nch.
ydim/nch Zeilen werden in jeden Speicher 104 geschrieben, da
die Gesamtzahl von Zeilen, ydim, über die nch Verarbeitungskanäle verteilt
ist. Ebenso werden xdim/nch × ydim
Abtastwerte in den Speicher 106 während der vertikalen Verarbeitung
geschrieben.
-
Die
19 Adressenbits müssen
zugewiesen werden, um diesem Speicherzuweisungsschema gerecht zu werden.
Die Bits 18-11 sind für
die unteren 8 Bits der Y-Adresse reserviert, während die Bits 7-0 für die unteren 8
Bits der X-Adresse reserviert sind. Dies belässt drei Bits, 10-8, die auf
der Basis der Verarbeitungsdimensionen zugewiesen werden.
-
Dieses
Speicherzuweisungsschema ist erforderlich, um eine unterschiedliche
Kombination von X- und Y-Größen zu ermöglichen.
Der 512K-Speicher ermöglicht
Bildgrößen bis
zu 2K × 2K,
aber 8 Verarbeitungskanäle
wären erforderlich
(512K × 8
= 2K × 2K).
Mit einer Konfiguration mit 4 Kanälen können Bildgrößen von bis zu 2K × 1K (oder
1K × 2K)
verarbeitet werden. Tabelle 8 zeigt, wie die Bits 10-8 der Speicheradresse
in einer beispielhaften Ausführungsform
zugewiesen werden.
-
Tabelle 8
-
- Speicherbank 0
- wenn (xdim ≤ 255)
- Der X-Adresse werden 8 Bits zugewiesen: xa[7:0] = addra[7:0]
- Der Y-Adresse werden 11 Bits zugewiesen: ya[10:0] = addra[10:8]
|| addra[18:11]
- wenn (256 ≤ xdim ≤ 511)
- Der X-Adresse werden 9 Bits zugewiesen: xa[8:0] = addra [8:0]
- Der Y-Adresse werden 10 Bits zugewiesen: xa[9:0] = addra[18:9]
|| addra[18:11]
- wenn (512 ≤ xdim ≤ 1023)
- Der X-Adresse werden 10 Bits zugewiesen: xa[9:0] = addra[9:0]
- Der Y-Adresse werden 9 Bits zugewiesen: ya[8:0] = addra[10]
|| addra [10:11]
- wenn (xdim ≤ 1024)
- Der X-Adresse werden 11 Bits zugewiesen xa[10:0] = addra [10:0]
- Der Y-Adresse werden 8 Bits zugewiesen ya[7:0] = addra[18:11]
- Speicherbank 1
- wenn (ydim ≤ 255)
- Der X-Adresse werden 8 Bits zugewiesen: yb[7:0] = addrb[7:0]
- Der Y-Adresse werden 11 Bits zugewiesen: yb[10:0] = addrb[10:8]
|| addrb[18:11]
- wenn (256 ≤ ydim ≤ 511)
- Der X-Adresse werden 9 Bits zugewiesen: xb[8:0] = addrb[8:0]
- Der Y-Adresse werden 10 Bits zugewiesen: yb[9:0] = addrb[10:9]
|| addrb [18:11]
- wenn (512 ≤ ydim ≤ 1023)
- Der X-Adresse werden 10 Bits zugewiesen: xb[9:0] = addrb[9:0]
- Der Y-Adresse werden 9 Bits zugewiesen: yb[8:0] = addrb[10]
|| addrb[18:11]
- wenn (ydim ≤ 1024)
- Der X-Adresse werden 11 Bits zugewiesen xbj[10:0] = addrb[10:0]
- Der Y-Adresse werden 8 Bits zugewiesen yb[7:0] = addrb[18:11]
- wobei addra = 19-Bit-Adresse der Speicherbank 0
- wobei addrb = 19-Bit-Adresse der Speicherbank 1
-
Für HDTV 1920 × 518 würden beispielsweise
11 Bits für
die X-Adresse zugewiesen werden und 8 Bits würden für die Y-Adresse des Speichers 106 zugewiesen
werden. Für
den Speicher 104 sind 10 Bits für die X-Adresse reserviert
und 9 Bits sind für
die Y-Adresse reserviert.
-
Die
Adressenbits [18:11] und [7:0] werden einfach von den unteren 8
Bits der y- bzw.
x-Speicherzähler genommen.
Eine zusätzliche
Logik kann jedoch erforderlich sein, um die Bits [10:8] auf der
Basis der Verarbeitungsdimensionen zu multiplexieren. Das einfache
Hinzufügen
dieses zusätzlichen
Niveaus an Logik zum Ausgang der Zähler kann die Zeitsteueranforderungen
verletzen. Somit wird ein "Vorschau"-Inkrementierer im System
implementiert. Das heißt,
die Werte für
die Bits [18:11] müssen
in dem Zyklus berechnet werden, bevor sie erforderlich sind und
registriert werden.
-
Dies
wird durch Betrachten der 8 Adressenbits, die immer für die Zählerausgabe
zugewiesen werden, durchgeführt.
Wenn lauter 1-en erfasst werden, muss das Bit 8 den Zustand beim
folgenden Taktzyklus ändern.
Dasselbe Schema wird für
die Bits 9 und 10 verwendet und kann als T-Flip-Flops implementiert
werden. Somit stehen immer 11 Bits von jedem der 4 Zähler zur
Verfügung,
aber nicht alle werden gleichzeitig verwendet.
-
In 20 ist
ein System 160 zum Annehmen von parallelen Abtastdaten
und zum Ausgeben von parallelen Zeilenabtastdaten gezeigt. Im System 160 wird
ein Eingangssignal in den Sequentiell-/Parallel-Zeilen-Demultiplexer 150 eingespeist.
Der Sequentiell-/Parallel-Zeilen-Demultiplexer 150 unterteilt
die parallelen Abtasteingangsdaten in separate parallele Kanäle. 20 stellt
einen einzelnen verarbeiteten Kanal dar. Jeder zusätzliche
Kanal nach dem Ausgang aus dem Sequentiell-/Parallel-Zeilen-Demultiplexer 150 tritt
in eine Verarbeitungszelle ähnlich
der für
den Kanal 1 beschriebenen ein.
-
Nach
dem Verlassen des Sequentiell-/Parallel-Zeilen-Demultiplexers 150 und dem
Eintritt in den Abtastdatenvollbild-FIFO 108 treten die
Abtastdaten in das Neuabtastfilter 21 ein, wo die horizontale
Neuabtastung stattfindet. Das erneut abgetastete Signal tritt in
die Schaltmatrix 110 vor dem Eintritt in den Transponierungsspeicher 102 ein.
Die Transponierung findet so statt, dass die vertikale Verarbeitung
ausgeführt
werden kann. Die transponierten Daten verlassen den Transponierungsspeicher 102 und
treten in das Neuabtastfilter 21 ein. Gleichzeitig treten
die verarbeiteten Informationen in den Vollbild-FIFO 108 ein,
wo sie später
mit den vertikal erneut abgetasteten Daten vor dem Eintritt in den
Parallel-/Sequentiell-Zeilen-Multiplexer 152 kombiniert
werden. Eine endgültige
Ausgabe wird vom Parallel-/Sequentiell-Zeilen-Multiplexer 152 erzeugt.
-
Da
das System 160 dazu ausgelegt ist, parallele Zeilendaten
anzunehmen und parallele Zeilendaten auszugeben, enthält jeder
Kanal, der durch den Sequentiell-/Parallel-Zeilen-Demultiplexer 150 demultiplexiert wird,
Abtastdaten mit denselben x- und y-Dimensionen für sowohl die Ausgangs- als
auch Eingangssignale. Folglich geht das Neuabtastfilter 21 dem
Transponierungsspeicher 102 voran.
-
Dieses
Verfahren hält
das Datenformat (parallele Zeilendaten) am Eingangs- und Ausgangsvollbild-FIFO
(100 und 108) gleich. Dies erfordert jedoch, dass
die Zeilen-FIFOs die parallelen Zeilen erzeugen, was die Menge an
erforderlicher Hardware erhöhen
würde.
Wenn dies nicht erforderlich ist (und zum Verringern der Hardwareanforderungen),
kann eine Sequentiell-/Parallel-Zeilenumsetzung folgendermaßen ausgelassen
werden. Das in 21 gezeigte Neuabtastsystem 162 ist
dazu ausgelegt, parallele Abtastdaten anzunehmen und eine parallele
Zeilenausgabe zu liefern. Das Eingangssignal tritt in den Abtastdemultiplexer 154 ein.
Ein einzelner Kanal 1 ist gezeigt, der den Abtastdemultiplexer 154 verlässt und
in den Vollbild-FIFO 100 eintritt. Wie das System 160 können mehrere
Kanäle
(2, 4 usw.) vom Abtastdemultiplexer 154 erzeugt werden. Jeder
Kanal würde
dann in seine eigene Verarbeitungszelle ähnlich der für den Kanal
1 beschriebenen eintreten. Die Abtastdaten treten in den Vollbild-FIFO 100 vor dem
Eintritt in den Transponierungsspeicher 102 ein. Vom Transponierungsspeicher 102 treten
die Abtastdaten in das Neuabtastfilter 21 ein, um die vertikale
Neuabtastung auszuführen.
Die vertikal erneut abgetasteten Daten treten dann in die Schaltmatrix 110 ein,
um die Informationen zur Speicherung im Transponierungsspeicher 102 zu
transponieren. Nach der Transponierung kann eine horizontale Verarbeitung
im Neuabtastfilter 21 stattfinden. Nach der Neuabtastung
werden horizontal und vertikal verarbeitete Informationen im Vollbild-FIFO 108 vor
der Parallel-/Sequentiell-Zeilen-Multiplexierung
im Parallel-/Sequentiell-Zeilen-Multiplexer 152 gespeichert.
Das endgültige
Ausgangssignal verlässt
den Parallel-/Sequentiell-Zeilen-Multiplexer 152.
-
Da
parallele Abtastdaten eingegeben werden und parallele Zeilendaten
ausgegeben werden, werden die Eingangssignalabtastwerte in der x-Dimension
in Abhängigkeit
von der Anzahl von Kanälen
im System 162 inkrementiert. Wenn beispielsweise der Kanal 162 vier
Kanäle
aufweist, würde
die erste Zeile, die vom Abtastdemultiplexer 154 erzeugt
wird, den Abtastwert 0, 4, 8 usw. umfassen. Der zweite Kanal würde die
Abtästwerte 1,
5, 9 usw. umfassen. Der dritte Kanal würde die Abtastwerte 2, 6, 10
usw. umfassen und der vierte Kanal würde die Abtastwerte 3, 7, 11
usw. umfassen.
-
Die
Ausgangskanäle
nach der Neuabtastung und Transponierung würden aus Zeilen mit den geeigneten
x-Dimensionen (d. h. 0, 1, 2, 3, 4 usw.) bestehen. Jeder Kanal würde vor
der Parallel-/Sequentiell-Zeilen-Multiplexierung in dieser Weise
orientiert werden.
-
Es
ist selbstverständlich,
dass das System 160 auch rekonfiguriert werden könnte, um
parallele Zeileninformationen anzunehmen und parallele Abtastdaten
auszugeben. Dazu wäre
die Schaltmatrix 110 für
die vertikale Verarbeitung nicht aktiv und ein Parallel-/Sequentiell-Zeilen-Multiplexer 152 wäre durch
einen Abtastmultiplexer (nicht dargestellt) ersetzt. Für ein solches
Beispiel würden
die Eingangsinformationen orientiert werden, wie mit Bezug auf das
System 160 beschrieben. Die Ausgangssignalinformationen
würden
jedoch in derselben Weise orientiert werden wie das für das System 162 beschriebene
Eingangssignal.
-
Obwohl
spezielle Ausführungsformen
der vorliegenden Erfindung hierin offenbart sind, ist nicht beabsichtigt,
die Erfindung auf eine solche Offenbarung zu begrenzen, und Änderungen
und Modifikationen können innerhalb
des Schutzbereichs der folgenden Ansprüche integriert und verkörpert werden: