DE69630345T2 - Videovergrösserungsgerät - Google Patents

Videovergrösserungsgerät Download PDF

Info

Publication number
DE69630345T2
DE69630345T2 DE69630345T DE69630345T DE69630345T2 DE 69630345 T2 DE69630345 T2 DE 69630345T2 DE 69630345 T DE69630345 T DE 69630345T DE 69630345 T DE69630345 T DE 69630345T DE 69630345 T2 DE69630345 T2 DE 69630345T2
Authority
DE
Germany
Prior art keywords
pixels
pixel
magnification
sprite
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69630345T
Other languages
English (en)
Other versions
DE69630345D1 (de
Inventor
Donald S. Scottsdale Maricopa County Butler
Richard A. Scottsdale Maricopa County Amano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Technology Inc
Original Assignee
Arris Technology Inc
General Instrument Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arris Technology Inc, General Instrument Corp filed Critical Arris Technology Inc
Application granted granted Critical
Publication of DE69630345D1 publication Critical patent/DE69630345D1/de
Publication of DE69630345T2 publication Critical patent/DE69630345T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4023Decimation- or insertion-based scaling, e.g. pixel or line decimation

Description

  • Bereich der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Videovergrößerungsvorrichtung zum Schrumpfen oder Vergrößern von Videografiken während eines Transfers der Videografik-Datensignale von einem Grafikspeicher auf einen Fernsehschirm.
  • Hintergrund der Erfindung
  • Gewisse im Handel erhältliche Computer, insbesondere Personalcomputer, stellen Schaltkreise bereit, die das Zusammenschließen eines Fernsehsignalgemischs (z. B. ein NTSC-Signal) mit computererzeugten Videografik-Anzeigesignalen, typischerweise Rot, Grün und Blau (RGB) ermöglicht. Genauer ist die moderne Videografikausrüstung im Stande, Hintergründe, Zeichen, Symbole und andere bildliche Darstellungen und Anordnungen in durch die Bedienperson ausgewählten Größen, Formen und Farben zu produzieren.
  • U.S. Patent Nr. 4,737,772 (Nishi et al.), herausgegeben am 12. April 1988, offenbart einen VDC (Videoanzeigekontroller), der einen VDP (Videoanzeigeprozessor), eine Zentraleinheit (CPU), einen Speicher und einen Video-Direktzugriffsspeicher (VRAM) beinhaltet. Der Speicher speichert beide durch die CPU auszuführenden Programme und verschiedene Arten von Bilddaten ab. Der VRAM speichert Bilddaten, welche der VDP ändern und dann nach außen zur Anzeige auf einem Bildschirm einer Kathodenstrahlröhre (CRT = cathode ray tube) transferieren kann. Im VDP erzeugt ein Taktsignalgenerator Taktsignale zum korrekten Abtasten von Elementen des anzuzeigenden Bilds, die von einem horizontalen und einem vertikalen Zähler und der CTR-Anzeige zum Synchronisieren der Datenverarbeitung in einem Bilddatenverarbeitungsschaltkreis (IDPC = image data processing circuit) verwendet werden und zum korrekten Anzeigen derartig verarbeiteter Daten auf dem Bildschirm der CRT-Anzeige. Ein Videodigitalisiergerät prüft ein extern zugeführtes analoges Videosignal und wandelt Signalpegel oder -amplituden des analogen Videosignals in Digitaldaten, die sich jeweils aus 2 oder 4 Bits zusammensetzen, um. Die durch das Videodigitalisiergerät digitalisierten Amplituden-Ausgabedaten stellen ein Standbild dar und werden dem IDPC zugeführt. Der IDPC speichert selektiv sowohl die Videodigitalisiergerät-Ausgabedaten als auch die Farbcodes, die von der CPU durch eine Schnittstellenleitung in den VRAM zugeführt werden. Jeder von der CPU stammende Farbcode stellt eine Farbe eines jeweiligen Anzeigeelements (z. B. Pixel), das auf dem Bildschirm ein Standbild ausmacht, dar. Bei Betrieb liest der IDPC als Reaktion auf einen Anzeigebefehl von der CPU aufeinanderfolgend Punktdaten aus dem VRAM synchron mit der Abtastposition auf der CRT-Anzeige und gibt die Punktdaten an einen Farbpalettenschaltkreis aus. Gleichzeitig berechnet und liest der IDPC Daten, die zum Anzeigen eines Animationsbilds aus dem VRAM nötig sind, und führt dem Farbpalettenschaltkreis Farbcodes zu. Wenn eine Animation und ein Standbild an derselben Anzeigeposition auf dem Bildschirm der CRT-Anzeige befindlich sind, wird vorzugsweise das Animationsbild angezeigt. Der Farbpalettenschaltkreis wandelt jeden Farbcode in drei Farbdaten für Rot, Grün und Blau um, die jeweils aus drei Bits zusammengesetzt sind. Ein Analog-Digital-Wandler (DAC) wandelt die Farbdaten von dem Farbpalettenschaltkreis in R-, G- und B-Signale, die der CRT-Anzeige bereitgestellt werden, um.
  • U.S. Patent Nr. 5,355,175 (Okada et al.), herausgegeben am 11. Oktober 1994, offenbart eine Videomischvorrichtung, die ein Grafik-Videobild und ein Wiedergabe-Videobild bei einer Vielzahl von Mischverhältnissen in einer Bildebene mischt. Überblenddaten, die ein Beispiel für das Mischverhältnis von mindestens einer Zeile des Wiedergabe-Videosignals und des grafischen Videosignals sind, werden gemäß einer vorgegebenen Reihenfolge aufeinanderfolgend erzeugt. Die Überblenddaten werden in einem Haltemittel gehalten und werden synchron mit einem horizontalen Synchronsignal aus dem Haltemittel ausgegeben. Die Pegel des Wiedergabe-Videosignals und des Grafik-Videosignals werden gemäß den aus dem Haltemittel ausgegebenen Überblenddaten einzeln eingestellt und die eingestellten Signale werden zusammengefügt. Das Wiedergabe-Videosignal und das Grafik-Videosignal werden bei dem Mischverhältnis, das für jede Zeile auf einer Bildebene festgesetzt ist, gemischt, um ein Videoausgangssignal von der Vorrichtung zu erzeugen.
  • U.S. Patent Nr. 4,420,770 (Rahman), herausgegeben am 13. Dezember 1983, offenbart ein Videohintergrunderzeugungssystem zur Erzeugung rechteckiger Videomuster mit von der Bedienperson ausgewählten Videoattributen. Das System beinhaltet einen horizontalen Bitspeicher und einen vertikalen Bitspeicher, wobei jeder der Speicher ein 16-Entitäten-Speicher zum Speichern von Informationen für 16 Hintergrundentitäten ist. Der Speicher für jede Hintergrundentität definiert gegenüber liegende Ecken des Hintergrundbereichs für eine Entität auf dem Bildschirm. Wie in 2 des Patents gezeigt, definiert eine erste Entität einen ersten rechteckigen Bereich und eine zweite Entität höherer Priorität definiert einen zweiten, teilweise überlappenden rechteckigen Bereich. Eine Attribut-Nachschlagetabelle speichert Informationen für jede Entität in Bezug auf die Farbvideoausgabe (Rot, Grün, Blau) für jene Entität. Während des Abtastens der Zeilen eines Bilds, das produziert wird, wird die erste Entität in ihrem definierten Bereich produziert und die zweite Entität wird in ihrem definierten Bereich produziert. Die zweite Entität hat jedoch eine höhere Priorität, was darin resultiert, dass der überlappende Bereich der beiden Entitäten mit den gespeicherten Attributen der zweiten Entität dargestellt wird.
  • U. S. Patent Nr. 4,754,270 (Murauchi), herausgegeben am 28. Juni 1988, offenbart eine digitalisierte Anzeigevorrichtung, die im Stande ist, eine Anzeigegröße auf dem Bildschirm einer Anzeige der Art mit Rasterabtastung, wie etwa eine CRT-Anzeige, zu vergrößern oder zu reduzieren. Die Vorrichtung beinhaltet ein adressierbares Speichermittel, ein Eingabedatenmittel und ein Mittel zur Erzeugung variabler Adressdaten. Das adressierbare Speichermittel speichert Anzeigedaten, die in einem vorgegebenen Verhältnis zeitlicher Abstimmung mit einem Rasterabtasten der Anzeige ausgelesen wird, um ein Anzeigebild zu produzieren. Das Eingabedatenmittel führt numerische Daten zu, welche die Bildgröße bestimmen. Das Mittel zur Erzeugung variabler Adressdaten umfasst variable Adressierungsinkremente zur Erzeugung von Adressdaten, die mit Anzeigedatenadressen, die in dem Speichermittel zur Ausgabe der Anzeigedaten gespeichert sind, korreliert werden. Genauer beinhaltet das Mittel zur Erzeugung variabler Adressdaten ein arithmetisches Berechnungsmittel zum digitalen Berechnen von Adressierungsinkrementen als Reaktion auf die numerischen Daten, die von dem Eingabedatenmittel zugeführt werden und auf Taktsignale in Bezug auf das Abtasten der Anzeige. Das Mittel zur Erzeugung variabler Adressdaten spricht auf das arithmetische Berechnungsmittel an, um Adressen zur Adressierung des Speichermittels gemäß den numerischen Daten, die die Bildgröße bestimmen, zu inkrementieren. Genauer wird bei der Anzeige einer Originalgröße eine horizontale Adresse des Speichermittels alle 200 Nanosekunden um eine „1" inkrementiert. Mit anderen Worten beträgt die Punktgröße in horizontaler Richtung der Anzeige 200 Nanosekunden zum Anzeigen der Originalgröße. Die Größe in der horizontalen Richtung kann durch das Ändern der Anzeigezeit von einem Punkt in der horizontalen Richtung vergrößert oder reduziert werden, indem Addend-Daten, die dem Speichermittel bereitgestellt werden, richtig ausgewählt werden. Durch das angemessene Einstellen von Addend-Daten, die dem Mittel zur Erzeugung variabler Adressdaten zugeführt werden, können die Zeichengröße und die damit verbundenen Bilder auf dem Anzeigebildschirm hinsichtlich einer nominalen Größe vergrößert oder reduziert werden.
  • EP-A-0016299 offenbart ein System zum Skalieren eines Bilds unter Verwendung eines einzelnen Skalierungsfaktors, der auf sowohl die horizontale als auch die vertikale Richtung angewandt wird (um das Seitenverhältnis des Originalbilds beizubehalten), indem ausgewählte Pixelspalten und -reihen von dem Originalbild weggelassen oder wiederholt werden. Das offenbarte System kann so nicht schnell angepasst werden, um unabhängige horizontale und vertikale Skalierungsfaktoren auf ein Bild anzuwenden.
  • Derzeit kommt der Bedarf an interaktiven Videografiken auf, die eine vollkommen neue Klasse von Diensten ermöglichen, welche über ein Kabelfernsehnetz ins Haus geliefert werden können. Diese neuen Dienste werden das Zuschauerlebnis für viele traditionelle Fernsehprogramme verbessern, während anderen vermehrte Dienste bereitgestellt werden. NTSC- und PAL- (Phase Alternating Line) Fernsehempfänger haben jedoch im Gegensatz zu Computerbildschirmen eine ziemlich niedrige Videobandbreite und wenden keine Anzeige mit progressiver Abtastung sonder eine mit Verschachtelung an. Diese Begrenzungen bedeuten schwere Einschränkungen für die Generation eines artefaktfreien, hochauflösenden, synthetischen Videosignals. Verbrauchsgüter wie Videospiele umgehen diese Probleme üblich, indem sie niedrigauflösende, nicht verschachtelte Videosignale erzeugen. Dieser Ansatz resultiert darin, dass Bilder niedrige Qualität aufweisen, „blockartig" aussehen, eine begrenzte Farbwahl aufweisen und cartoonartig aussehen. Die Erzeugung synthetischen Videos, das sich Rundfunkqualität annähert, erfordert, dass die erzeugten synthetisierten Signale jenes einer eine Szene abtastenden Videokamera und die nachfolgende analoge Signalverarbeitung für derartige Videokamerasignale emulieren. Daher ist es wünschenswert eine relativ kostengünstige Anordnung bereitzustellen, die erlaubt, gute synthetische Videografiken über die Live-Fernsehprogramme zum Ansehen auf einem normalen verschachtelten NTSC- oder PAL-Fernsehempfänger zu überlagern, mit der Fähigkeit, Videografikdaten während des Transfers von einem Grafikspeicher auf den Bildschirm eines Fernsehempfängers zu schrumpfen oder zu vergrößern.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Videovergrößerungsvorrichtung zum Schrumpfen oder Vergrößern von Videografiken während eines Transfers der Videografik-Datensignale von einem Grafikspeicher auf einen Fernsehschirm.
  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zur Modifikation der Vergrößerung einer Grafik vor der Anzeige der Grafik auf einem Fernsehempfänger, wobei die Vorrichtung ein erstes und ein zweites Vergrößerung modifizierendes Mittel beinhaltet. Das erste Vergrößerung modifizierende Mittel modifiziert die Vergrößerung einer Grafik durch einen ersten unabhängigen, vorgegebenen Vergrößerungsfaktor in eine vertikale Richtung durch das Erzeugen von grafischen Zeilenadressen-Ausgangssignalen. Die grafischen Zeilenadressen-Ausgangssignale werden zum selektiven Verhindern einer Übertragung vorgegebener horizontaler Zeilen der Grafik nach dem Empfang eines vertikalen Vergrößerungsfaktors, der kleiner als eine Einheit ist, verwendet. Ferner werden die grafischen Zeilenadressen-Ausgangssignale verwendet, um zu bewirken, dass die Übertragung vorgegebener horizontaler Zeilen der Grafik nach dem Empfang eines vertikalen Vergrößerungsfaktors, der größer als eine Einheit ist, selektiv wiederholt wird. Das zweite Vergrößerung modifizierende Mittel, spricht auf die Übertragungen der horizontalen Zeilen der Grafik an, welche zur Übertragung durch die grafischen Zeilenadressen-Ausgangssignale des ersten Vergrößerung modifizierenden Mittels zur Modifikation der Vergrößerung der Grafik in eine horizontale Richtung durch einen zweiten unabhängigen vorgegebenen, horizontalen Vergrößerungsfaktor angezeigt sind. Ferner wählt das zweite Vergrößerung modifizierende Mittel N vorgegebene Pixel aus jeder empfangenen Gruppe von X Pixeln aus, welche in eine Übertragungsgruppe von X Pixeln zur Übertragung in jedem Ausgangssignal der Vorrichtung für einen horizontalen Vergrößerungsfaktor, der gleich oder weniger als Einheit ist, gemultiplext werden, wobei N ≤ X. Außerdem bewirkt das zweite Vergrößerung modifizierende Mittel eine Wiederholung von Pixeln aus jeder empfangenen Gruppe von X Pixeln um eine vorgegebene ganzzahlige Menge, die einem horizontalen, ganzzahligen Vergrößerungsfaktor, der größer als Einheit ist, zur Übertragung in jedem Ausgangssignal der Vorrichtung, entspricht.
  • Die Erfindung wird aus der folgenden genaueren Beschreibung in Verbindung mit den begleitenden Zeichnungen leichter verständlich.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockschaltbild einer erfindungsgemäßen Teilnehmerkabelboxeinheit;
  • 2 ist ein Blockschaltbild eines ersten Abschnitts einer Videoverarbeitungsschaltung, die in der erfindungsgemäßen Teilnehmerkabelboxeinheit aus 1 zu finden ist;
  • 3 ist ein Blockschaltbild eines zweiten Abschnitts einer Videoverarbeitungsschaltung, die in der erfindungsgemäßen Teilnehmerkabelboxeinheit aus 1 zu finden ist;
  • 4 ist ein Blockschaltbild eines beispielhaften Pixelanordnungspuffers, der Teil eines ersten Abschnitts der in 2 gezeigten Videoverarbeitungsschaltung bildet;
  • 5 ist ein Blockschaltbild eines beispielhaften Multiplezer-/Überblendreglers, der Teil eines zweiten Abschnitts der in 3 gezeigten Videoverarbeitungsschaltung bildet;
  • 6 ist ein Blockschaltbild einer beispielhaften Anordnung eines Convolvers, der Teil des zweiten Abschnitts der in 3 gezeigten Videoverarbeitungsschaltung bildet;
  • 7 ist ein Blockschaltbild einer Pixelpuffer-Datenröhre und eines Vergrößerungsschaltkreises, die Teil des ersten Abschnitts der erfindungsgemäßen in 2 gezeigten Videoverarbeitungsschaltung bilden;
  • 8 zeigt einen Transfer von Pixeln zwischen einem 32-Bit-Eingabepuffer und einem 32-Bit-Ausgabepuffer während eines ersten Wort-Zeit 0 Zyklus und eines zweiten Wort-Zeit 1 Zyklus in einem in 7 gezeigten Pixelmultiplexer für eine Vergrößerung im eins gemäß der vorliegenden Erfindung;
  • 9 zeigt einen Transfer von Pixeln zwischen einem 32-Bit- Eingabepuffer und einem 32-Bit-Ausgabepuffer während eines ersten Wort-Zeit 0 Zyklus und eines zweiten Wort-Zeit 1 Zyklus in einem in 7 gezeigten Pixelmultiplexer für eine Vergrößerung um 0,5 gemäß der vorliegenden Erfindung;
  • 10 zeigt einen Transfer von Pixeln zwischen einem 32-Bit-Eingabepuffer und einem 32-Bit-Ausgabepuffer während eines ersten Wort-Zeit 0 Zyklus und eines zweiten Wort-Zeit 1 Zyklus in einem in 7 gezeigten Pixelmultiplexer für eine Vergrößerung um zweieinhalb gemäß der vorliegenden Erfindung;
  • 11 zeigt eine erste Seite einer mehrseitigen Kalkulationstabelle, die die Funktionsweise eines erfindungsgemäßen in 7 gezeigten Multiplexer-Antriebs-ROMs darstellt;
  • 12 zeigt eine mittlere Seite einer mehrseitigen Kalkulationstabelle, die die Funktionsweise eines erfindungsgemäßen in 7 gezeigten Multiplexer-Antriebs-ROMs darstellt;
  • 13 zeigt ein Blockschaltbild einer vertikalen Logikschaltung zur Verarbeitung von Vergrößerungsfaktoren in eine vertikale Richtung gemäß der vorliegenden Erfindung;
  • 14 zeigteinen Stromlaufplan für einen ersten Abschnitt eines erfindungsgemäßen in 7 gezeigten Pixelpuffer-Datenrohrs und Vergrößerungsschaltkreises;
  • 15 zeigt einen Stromlaufplan für einen zweiten Abschnitt eines erfindungsgemäßen in 7 gezeigten Pizelpuffer-Datenrohrs und Vergrößerungsschaltkreises;
  • 16 zeigt ein Blockschaltbild eines Quad-Oktal-Multiplexers, der in einem Pixelmultiplexer, welcher in einem erfindungsgemäßen in 7 gezeigten Pixelpuffer-Datenrohr und Vergrößerungsschaltkreis eingeschlossen ist, verwendet wird.
  • Detaillierte Beschreibung
  • Es versteht sich, dass in allen Figuren entsprechende Elemente, die dieselbe Funktion aufweisen, mit derselben Kennzeichnungszahl versehen wurden.
  • Unter Bezugnahme auf 1 ist ein Blockschaltbild einer Teilnehmerkabelboxeinheit 10, die im Hause eines Teilnehmers zu finden ist und die interaktive Videoverarbeitung gemäß der vorliegenden Erfindung bereitstellt, gezeigt. Die Teilnehmerkabelboxeinheit 10 beinhaltet ein erstes Modul (MODUL 1) 12 (in einem ersten Rechteck mit gestrichelter Linie gezeigt) und ein zweites Modul (MODUL 2) 14 (in einem zweiten Rechteck mit gestrichelter Linie gezeigt). Das erste Modul 12 ist eine herkömmliche Anordnung, die einen Radiofrequenz-Basisband-Wandler 20 (RF-Basisband-Wandler) und ein Wandlersteuerungssystem 22 beinhaltet, wobei beide auf dem Stand der Technik bekannt sind. Der RF-Basisband-Wandler 20 empfängt gemultiplexte RF-Fernsehkanalsignale in normalem NTSC- oder PAL-Format, die sich auf einem Kabel 27 von einer fernen Kabelunternehmens-Vermittlungsstelle (nicht gezeigt) ausbreiten und wandelt derartige gemultiplexte RF-Fernsehkanalsignale von ihren gemultiplexten Kanalfrequenzen in Basisbandfrequenzen selektiv um. Der RF-Basisband-Wandler 20 überträgt das resultierende Basisband-Fernsehausgangssignalgemisch aus dem Wandlungsprozess über einen Bus 24 auf das zweite Modul 14. Das Wandlersteuerungssystem 22 am Anwender (Teilnehmer) wird typischerweise durch ein Infrarotfernbedienungsgerät oder eine kleine Tastatur auf der Kabelbox, wie gut auf dem Stand der Technik bekannt, gesteuert. Das Wandlersteuerungssystem 22 funktioniert so, dass es über das Kabel 27 Autorisierungs- und Zugangssteuersignale von einer fernen Kabelunternehmens-Vermittlungsstelle empfängt und/oder auf diese überträgt, Basisband-Videoverwürfelung oder -entwürfelung aktiviert und Nachrichten zur Anzeige auf einem Bildschirm (OSD = on screen display) produziert. Das Wandlersteuerungssystem 22 gibt über einen Bus 29 Steuersignale an den RF-Basisbandwandler 20 zur Auswahl der erwünschten Kanalprogrammierung und über Leitungen 31 und 33 verschiedene Steuer- und entschlüsselte Datensignale (z. B. Steuer- und Aufwärtsdatenausgangssignale, Infrarot-Empfangs- und Übertragungssignale und entschlüsselte T1-Vierphasenumtastungs-Datensignale) an das zweite Modul 14 aus.
  • Das zweite Modul 14 beinhaltet einen seriellen Schnittstellenprozessor (SIP) 30, Ein-/Ausgabegeräte (E/A-Geräte) 32, einen Festwertspeicher (ROM) 34, einen Direktzugriffsspeicher (RAM) 35, eine Zentraleinheit (CPU) 36, einen Grafikspeicher 38 und einen integrierten Schaltkreis 40 (in einem Rechteck mit gestrichelter Linie gezeigt) für Video- und Speichersteuerung (VIDEO- & SP.-ST.). Der SIP 30, die E/A-Geräte 32, der ROM 34, RAM 35, die CPU 36 und eine Speicherkontroller- und Spritezustand-Maschine (MASCH.) 42 des integrierten Schaltkreises 40 für Video- und Speichersteuerung werden über einen Datenbus 48 miteinander verbunden. Die CPU 36 kann eine beliebige geeignete Verarbeitungseinheit beinhalten und ist gemäß der vorliegenden Erfindung eine CPU der Typs 386, die relativ kostengünstig ist. Der ROM 34 kann einen beliebigen geeigneten Speicher, wie etwa einen EPROM-Speicher, zu Initialisierungszwecken und zur Programmierung der CPU 36 beinhalten. Der RAM 35 kann einen beliebigen geeigneten Speicher wie etwa zwei 256 Kilobyte mal 16 Bit-DRAMs, die in Reihe geschaltet sind, beinhalten, um eine 512 K mal 16 Bit-RAM-Konfiguration zur Verwendung als Notitzblockspeicher für die CPU 36 bereitzustellen. Der Grafikspeicher 38 kann einen beliebigen geeigneten Speicher wie etwa einen 32 Bit breiten RAM-Bereich, oder vorzugsweise zwei parallel angeordnete 256 K mal 16 Bit-DRAMs zur Verwendung mit einem 32 Bit breiten Bus 39 beinhalten. Der Grafikspeicher 38 wird verwendet, um Spritedaten, die sich auf die Grafik- und Videobilder beziehen, zu speichern. Die Verwendung eines 32 Bit breiten Busses 39 erlaubt die Verwendung von Speicheradressierung mit schnellseitigem Modus für eine Speicherkontroller und Spritezustand-Maschine 42 und einen Blockspeicherversetzer (nicht gezeigt), der Teil des Video- und Speicherkontrollers 40 bildet. Durch die erhebliche Verwendung der Blockmodus-Speicheradressierung, kann eine mittlere Datentransferrate von ungefähr 52 Nanosekunden erreicht werden, die der Verarbeitung von ungefähr 77 Millionen Bytes Daten pro Sekunde entspricht.
  • Der SIP 30 funktioniert so, dass er Datenkommunikationen zwischen dem ersten Modul 12 und dem zweiten Modul 14 abwickeln kann. Genauer wickelt der SIP 30 alle Datentransfersignale zwischen dem zweiten Modul 14 und dem Wandlersteuerungssystem 22 des ersten Moduls 12 ab. Dieses Datentransfersignale können Formate wie etwa einen T1-artigen Datenstrom bei 1,5 Mbit/Sekunde aufweisen, was den Großteil der Kommunikationstransfers und Ursprungsdaten von einem Imfrarotempfänger (nicht gezeigt) in dem Wandlersteuerungssystem 22 einbezieht. Der SIP 30 kann zur künftigen Erweiterung auch einen synchronen seriellen Vollduplex-Anschluss (nicht gezeigt) umfassen. Derartige Datentransfersignalformate werden zur Kommunikaition zwischen dem Wandlersteuerungssystem 22 auf dem ersten Nlodul 12 und der CPU 36 in dem zweiten Modul 14 verwendet, um die erwünschten Abläufe in dem zweiten Modul 14 zu aktivieren.
  • Der integrierte Schaltkreis 40 für Video- und Speichersteuerung umfasst die Speicherkontroller- und Spritezustand-Maschine 42, komplexe bis YUV-Schaltung 44 und Videoverarbeitungsschaltung 46 (PROZ.). Die Speicherkontroller- und Spritezustand-Maschine 42 ist über einen Datenbus 39 mit dem Grafikspeicher 36 und über einen Datenbus 45 mit der Videoverarbeitungsschaltung 46 gekoppelt. Die komplexe bis YUV-Schaltung 44 empfängt das Basisband-Fernsehsignalgemisch von dem Bus 24 und gibt die anfallenden YUV-Videosignale auf einem Bus 43 an die Speicherkontroller- und Spritezustand-Maschine 42 aus. Die Videoverarbeitungsschaltung 46 empfängt Videosignale von der Speicherkontroller- und Spritezustand-Maschine 44 über den Datenbus 45 und gibt normale NTSC- oder PAL-Videosignale auf einem Bus 47 an einen fernen Fernsehempfänger (nicht gezeigt) oder an eine weitere Verarbeitungsschaltung (nicht gezeigt) aus. Es versteht sich, dass die vorliegende Erfindung in dem Bereich des integrierten Schaltkreises 40 für Video- und Speichersteuerung und dem Grafikspeicher 38 liegt. Die Elemente des ersten Moduls 12 und des zweiten Moduls 14 wurden eingangs zum besseren Verständnis, wie die vorliegende Erfindung in die interaktive Teilnehmerkabelboxeinheit 10 passt, eingeführt und erläutert.
  • Nun mit Bezug auf 2 und 3 werden Blockschaltbilder eines ersten bzw. zweiten Abschnitts einer Videoverarbeitungsschaltung 46 (in einem ersten Rechteck mit gestrichelter Linie gezeigt), die in dem zweiten Modul 14 der erfindungsgemäßen Teilnehmerkabelboxeinheit 10 aus 1 zu finden ist, gezeigt. Wie in 2 gezeigt, ist ein Grafikspeicher 38, der ein Element des zweiten Moduls 14 aus 1 bildet, zur bidirektionalen Kommunikation über einen Datenbus 39 mit einer Speicherkontroller- und Spritezustand-Maschine 42 gekoppelt, die Teil eines Video- und Speicherkontrollers 40 (in einem zweiten Rechteck mit gestrichelter Linie gezeigt) ist, der in dem zweiten Modul 14 aus 1 zu finden ist.
  • Die Speicherkontroller- und Spritezustand-Maschine 42 ist über einen Bus 48 mit einer Zentraleinheit (CPU) 36 (in 1 gezeigt) gekoppelt, um Spriteinformationen in den Grafikspeicher 38 über den Bus 39 zu schreiben, und empfängt ein Halbbild-<1:0>Signal von der komplexen bis YUV-Schaltung 44 aus 1 über den Leiter 56. Dieser Abschnitt der Videoverarbeitungsschaltung 46 umfasst ferner eine Datenröhre 50 (in einem Rechteck mit gestrichelter Linie gezeigt) und einen Pixelanordnungspuffer 52.
  • Der Grafikspeicher 38 beinhaltet mehrere Tabellen, die eine Spritelistentabelle 90, eine Spritedatentabelle 92, eine Leitungssteuerungstabelle 94 und eine Spanlistentabelle 96 beinhalten. Diese Tabellen werden genau in der gleichzeitig schwebenden Patentanmeldung Seriennr. 08/523,394 (GID908) (Butler et al.) mit dem Titel „Apparatur Using Memory Control Tables Related to Video Graphics Processing for TV Receivers", eingereicht am selben Datum wie die vorliegende Erfindung für den vorliegenden Rechtsnachfolger, erläutert. Genauer beinhaltet die Spritelistentabelle 90 einen separaten Speicherteilabschnitt für jedes oder eine Vielzahl von N Sprites (es sind nur Einträge für Sprites Nr. 1, Nr. 2 und Nr. N aufgelisteü). Wie für den Eintrag für Sprite Nr. 1 gezeigt, beinhaltet der Speicherteilabschnitt dafür einen Spritedatenzeigerabschnitt, einen Spritesteuerungenabschnitt, einen Zeilentabellenzeigerabschnitt, einen optionalen Steuerungenabschnitt und einen Halbbildfreigabesteuerabschnitt. Der Spritedatenzeigerabschnitt wird verwendet, um auf die Spritedatentabelle 92 an einer vorgegebenen Stelle für die Pixeldaten für horizontale Zeilen, die mit dem Spriteeintrag verbunden sind, zuzugreifen. Der Spritesteuerungenabschnitt beinhaltet Daten, die sich beispielsweise auf die Größe des Sprites, seine X- und Y-Stelle oder -Position auf dem Bildschirm des Fernsehempfängers und Spezialeffektinformationen hinsichtlich Vergrößerung, Verziehung usw., die auf das Sprite angewandt werden sollen, beziehen. Genauer wird jede Zeile des Sprites um 2 vergrößert, wenn der Spritesteuerungenabschnitt angibt, dass ein Sprite eine Vergrößerung um 2 aufweist. Ähnlicherweise werden alle Zeilen des Sprites um 2 versetzt, wenn der Spritesteuerungenabschnitt angibt, dass ein Sprite eine Versetzung um 2 aufweist. Mit anderen Worten beeinflusst der Spritesteuerungenabschnitt jede horizontale Zeile von Pixeldaten des Sprites auf gleiche Weise.
  • Der Zeilentabellenzeigerabschnitt jedes Spriteeintrags wird verwendet, um auf einen vorgegebenen Abschnitt der Zeilensteuertabelle 94 für Steuerwörter, die mit jenem Spriteeintrag verbunden sind zuzugreifen, um Spezialeffekte zu produzieren, die über die durch den oben erläuterten Spritesteuerungenabschnitt produzierten hinausgehen. Schließlich wird der Halbbildfreigabesteuerabschnitt verwendet, um die erwünschten „Rauchglas-" Effekte (transparente Überlagerung) auf dem Bildschirm des Fernsehempfängers zu produzieren, damit von der Spritelistentabelle 90 auf den Spriteeintrag zugegriffen werden kann. Für jeden der anderen Sprite Nr. 2 bis Nr. N Einträge sind ähnliche Abschnitte gezeigt. Des Weiteren sind die Sprites in der Spritelistentabelle 90 außerdem vorzugsweise mit aufsteigender Priorität aufgelistet, wobei der Eintrag Sprite Nr. 1 beispielsweise eine niedrigste Priorität und der Eintrag Sprite Nr. N eine höchste Priorität hat. Infolge einer derartigen Prioritätsanordnung werden die Pixel eines Sprites mit höherer Priorität Pixel eines Sprites mit niedrigerer Priorität überschreiben, ersetzten oder diesen gegenüber Vorrang nehmen, wo zwei Sprites oder ein Sprite und ein Live-Video sich an einer überlappenden Stelle auf einem Bildschirm eines Fernsehempfängers befinden.
  • Die Spritedatentabelle 92 beinhaltet Datenwörter, einschließlich reiner Daten, für jedes der Pixel jeder horizontalen Zeile für jeden Spriteeintrag der Spritelistentabelle 90. Mit anderen Worten führt bei einem Zugriff auf einen Spriteeintrag in der Spritelistentabelle 90 der Spritedatenzeigerabschnitt den Zugriff zur Spritedatentabelle 92, bei der die Spritedatenwörter (z. B. Sprite A Datenwort bis Sprite C Datenwort) für jenen Spriteeintrag in der Spritedatentabelle 92 des Grafikspeichers 38 gespeichert sind. Es versteht sich, dass diese Spritedatenwörter die numerische Anzahl Zeilen in dem Sprite nicht umfassen, da sich die Größe des Sprites, die Stelle auf dem Bildschirm des Fernsehempfängers usw. für jenes Sprite in dem Spritesteuerungenabschnitt des Spritelisteneintrags befindet. Die Spritelistentabelle 90 und die Spritedatentabelle 92 arbeiten zusammen, indem die Speicherkontrollerund Spritezustand-Maschine 42 zunächst auf die Spritelistentabelle 90 zugreifen und dann unter der Steuerung des Spritedatenzeigerabschnitts, auf die Spritedatentabelle 92 zugreifen, um die Daten wiederzugewinnen, die die Videoverarbeitungsschaltung 46 anweisen, das Sprite auf die durch die Spritedatenwörter beschriebene Weise aufzustellen.
  • Die Zeilensteuertabelle 94 des Grafikspeichers 38 ist eine optional verwendete Tabelle, die Untertabellen separater vorgegebener Längen (nur eine Untertabelle ist gezeigt, die N Steuerwörter umfasst) enthält, wobei jede Untertabelle ein separates Zeilensteuerwort für jede Zeile eines Sprites beinhaltet. Die Zeilensteuerwörter in der Zeilensteuertabelle 94 stellen den horizontalen Zeilen jenes Sprites unabhängige Steuerungen bereit. Genauer beeinflussen, wie oben erwähnt, die Spritesteuerungenabschnitte jedes Spriteeintrags in der Spritelistentabelle 90 jede Zeile eines Sprites auf dieselbe Weise. Dahingegen werden die Zeilensteuerwörter in einer Untertabelle in der Zeilensteuertabelle 94 für einen Spriteeintrag, auf den der Zeilentabellenzeigerabschnitt der Spritelistentabelle 90 zeigt, verwendet, um jeder der horizontalen Zeilen jenes Sprites unabhängige Steuerungen bereitzustellen. Zum Beispiel wird angenommen, dass der Spritesteuerungenabschnitt für den Eintrag Sprite Nr. 1 angibt, dass das Bild Sprite Nr. 1 zehn Zeilen an einer Stelle X und Y auf dem Bildschirm des Fernsehempfängers ohne jegliche Spezialeffekte, wie etwa konstante Offsets, umfasst. Die Pixeldaten für jede der zehn Zeilen des Bilds Sprite Nr. 1 werden in der Spritedatentabelle 92 bereitgestellt, wobei bei der Adresse darin angefangen wird, die durch den Spritedatenzeigerabschnitt des Eintrags Sprite Nr. 1 angegeben ist. Spezialeffekte, die für eine beliebige oder mehrere der zehn Zeilen des Sprites Nr. 1 verwendet werden können, werden in gewissen Zeilensteuerwörtern in der Zeilensteuertabelle 94 gefunden, wobei bei der Adresse angefangen wird, die durch den Zeilentabellenzeigerabschnitt des Eintrags Sprite Nr. 1 angegeben ist. Mit anderen Worten können die Kanten des Bilds des Sprites Nr. 1 in einer geraden Linie auf dem Bildschirm des Fernsehempfängers ausgerichtet sein. Bei den Zeilensteuerwörtern der Zeilensteuertabelle 94 kann jedoch jede Zeile des Eintrags Sprite Nr. 1 beispielsweise unterschiedliche Offsets zum Verziehen des Bilds auf eine vorgegebene Weise aufweisen. Ein Spritebild kann zum Beispiel verzogen werden, indem die damit verbundenen Zeilensteuerwörter der Zeilensteuertabelle 94 so verwendet werden, dass sie auf der Außenfläche eines dreidimensional gezeichneten Zylinders erscheinen.
  • Die Spanlistentabelle 96 ist eine optionale Tabelle, die verwendet wird, um bei der Verarbeitung vieler Spriteeinträge in der Spritelistentabelle 90 Zeit zu sparen. Bei Systemen des Stands der Technik werden jeder der Spriteeinträge in einer Spritelistentabelle 90 aufeinanderfolgend eingetragen, um zu bestimmen, ob dieses Sprite in einem Pixel, das für eine horizontale Zeile unter Verwendung der Größe und der X- und Y-Stelle auf einem für dieses Sprite bestimmten Anzeigebildschirm angeordnet wird, existiert. Daher waren Systeme des Stands der Technik, beispielsweise für Spiele, auf eine kleine Anzahl von Sprites begrenzt (z. B. N = 8 oder 16 Sprites), um die Pixel für jede Zeile innerhalb des notwendigen Zeitraums zur Anzeige einer derartigen horizontalen Zeile auf dem Anzeigebildschirm, anzuordnen.
  • In der vorliegenden Teilnehmerkabelboxeinheit 10, greift die Speicherkontrollen- und Spritezustand-Maschine 42, ohne, dass die optionale Spanlistentabelle 96 anwesend ist, normalerweise auf jeden der Vielzahl von N Sprite-Einträgen, die in der Spritelistentabelle 90 des Grafikspeichers 38 aufgelistet sind, in Reihenfolge zu, um zu bestimmen, welche der N Sprite-Einträge in jedem Pixel der horizontalen Zeilen, die angeordnet werden, existieren. Durch das Zugreifen auf jeden der N Sprite-Einträge der Spritelistentabelle 90, erhält die Speicherkontrollerund Spritezustand-Maschine 42 die Daten von der Spritedatentabelle 92 und die Effekte der optionalen Zeilensteuertabelle 94, die benötigt werden, damit jedes Sprite die Pixeldaten für jede horizontale Zeile, die in dem Pixelanordnungspuffer 52 angeordnet ist, produziert. Wenn die Speicherkontroller- und Spritezustand-Maschine 42 beispielsweise auf 96 unterschiedliche Spriteeinträge zugreift und diese verarbeiten muss, würde die Zeit, die nötig ist, um die 96 Einträge zu verarbeiten, einen erlaubten Zeitraum zum Anordnen jeder horizontalen Zeile von Pixeldaten in dem Pixelanordnungspuffer 52, übersteigen. Die Verwendung der Spanlistentabelle 96 beseitigt dieses Problem.
  • Wenn die optionale Spanlistentabelle 96 verwendet wird, gibt mindestens ein Register (nicht gezeigt) in der Speicherkontroller- und Spritezustand-Maschine 42 an, dass die Spanlistentabelle 96 existiert und stellt alle nötigen Daten für die Speicherkontroller- und Spritezustand-Maschine 42 bereit, um die Spanlistentabelle 96 richtig zu verwenden, einschließlich eines als „Nr. der Sprite-Eintragwörter" vorgesehenen Abschnitts, der eine Anzahl (ganzzahliger Wert) Wörter (AW) pro Spritelisteneintrag, der ein konstanter ganzzahliger Wert für jeden der Spriteeinträge ist, wenn die Spanlistentabelle 96 existiert, enthält. Genauer kann jeder Spriteeintrag in der Spritelistentabelle 90 Wörter für (1) einen Spritedatenzeiger, (2) Spritesteuerungen, (3) ein optionales Zeilentabellenzeigerwort, (4) ein optionales Wort für optionale Spritesteuerungen und (5) ein optionales Halbbildfreigabesteuerungswort umfassen. Daher kann jeder Spriteeintrag der Spritelistentabelle 90 zwischen 2 und 5 Wörtern enthalten. Wenn eine Spanlistentabelle 96 verwendet wird, umfasst jeder der Spriteeinträge der Spriteliste 90 eine selbe Anzahl Wörter (z. B. 5 Wörter), ohne Rücksicht darauf, welche optionalen Wörter normalerweise für jeden Spriteeintrag erforderlich sind. Der Zweck des Registers, das die Anzahl an Spriteeintragwörtern in jedem Spriteeintrag angibt, besteht in der Vereinfachung des Zugriffs auf lediglich gewisse Spriteeinträge der Spritelistentabelle 90 beim Aufbauen der Pixel einer horizontalen Zeile.
  • Die Spanlistentabelle 96 beinhaltet ein Spanlistensteuerwort oder eine Gruppe von Spanlistensteuerwörtern, die beschreiben, welche der in der Spritelistentabelle 90 auffindbaren N Sprites in jeder Zeile einer separaten von einer willkürlich definierten Vielzahl von horizontalen Teilabschnitten eines Fernsehschirms existieren. Es versteht sich, dass die Spanlistentabelle 96 vornehmlich dort verwendet wird, wo viele Sprites vorhanden sind (z. B. N = 96 Sprites), um die Verarbeitungszeit beim Anordnen der Pixeldaten für jede der horizontalen Zeilen in dem Pixelanordnungspuffer 52 herabzusetzen. Die Anzahl Wörter in der Spanlistentabelle 96 hängt von folgender Gleichung ab:
    Anz. Spanlistenwörter = (NS/32)*(NH/NL), Gl. 1
    wobei NS die Anzahl gesamter Sprites auf dem Anzeigebildschirm ist, NH die Anzahl Zeilen in dem Anzeigebildschirm ist, NL die Anzahl Zeilen auf dem Bildschirm eines Fernsehempfängers pro Spanlistenwort oder Wortgruppe ist und 32 die beispielhafte Anzahl an verfügbaren Bits in jedem Wort der Spanlistentabelle 96 repräsentiert. Die Werte für NH und NL sind programmierbare Zahlen und NL kann einen Wert von beispielsweise 2, 4, 8, 16, 32, 64 oder 128 aufweisen. Genauer sind je nachdem, welcher Fernsehempfänger verwendet wird, normalerweise nur etwa 440–500 Zeilen ersichtlich, obgleich elektrisch 525 horizontale Zeilen von Video in zwei Halbbildern einer normalen NTSC-Fernsehanzeige vorhanden sind. Der Anzeigebereich des Bildschirms, auf dem 96 Sprites angezeigt werden sollen, kann von 0–500 Zeilen für eine vorgegebene Anzahl Teilabschnitte reichen, wobei jeder Teilabschnitt eine gleich große Anzahl (NL) Zeilen aufweist.
  • Bei Betrieb bestimmt die Speicherkontroller- und Spritezustand-Maschine 42 von dem einen oder mehreren Registern darin, dass eine Spanlistentabelle 96 existiert, erhält auch die Daten (NS-, NH- und NL-Werte, die Startzeile für den Anzeigebereich und die Anzahl Sprites), die darin gespeichert sind und zur Verwendung mit der Spanlistentabelle 96 benötigt werden, und bestimmt die Anzahl Spanlistenwörter, die für jeden Teilbereich des Anzeigebereichs gemäß Gleichung 1 oben benötigt werden. Beim Anordnen der Pixeldaten für die 525 Zeilen der Videoanzeige, wenn die Speicherkontroller- und Spritezustand-Maschine 42 die Startzeile für den Spanlistenanzeigebereich erreicht, greift die Speicherkontroller- und Spritezustand-Maschine 42 zunächst auf die Spanlistenwörter (z. B. die ersten drei Wörter) zu, die mit einem oberen Teilabschnitt des Spanlistenanzeigebereichs verbunden sind. Von diesen ersten drei Wörtern der Spanlistentabelle 96 bestimmt die Speicherkontroller- und Spritezustand-Maschine 42, dass in diesem Teilabschnitt beispielsweise nur die Spriteeinträge 1, 2, 4 und 6 aktiv sind.
  • Es versteht sich, dass die Speicherkontroller- und Spritezustand-Maschine 42 dasselbe oder mehrere Spanlistenwörter für jede der Zeilen eines Teilabschnitts verwendet, da dieselben Sprites in jeder Zeile jenes Teilabschnitts aktiv sind. Die Speicherkontroller- und Spritezustand-Maschine 42 funktioniert in derselben Weise für jeden der anderen Teilabschnitte des Anzeigebereichs, der von den Spanlistenwörtern abgedeckt ist.
  • Der Halbbildfreigabesteuerabschnitt jedes Spriteeintrags in der Spritelistentabelle 90 bezieht sich auf Steuerungen, die einen „Rauchglas-" Effekt (transparente Überlagerung) bilden, wobei zwei Sprites oder ein Sprite über Live-Video liegen. Genauer ist ein „Rauchglas-" Effekt als ein Überlappungsbereich von zwei Sprites oder eines Sprites über Live-Video definiert, wobei ein erstes Sprite auf dem Bildschirm eines Fernsehempfängers auf Zeilen (z. B. geraden Zeilen) eines ersten Halbbilds eines Bilds angezeigt wird und ein zweites Sprite oder Live-Video auf dem Bildschirm eines Fernsehempfängers auf Zeilen (z. B. ungeraden Zeilen) eines zweiten Halbbilds eines Bilds angezeigt wird. Ein derartiger Effekt ermöglicht, dass ein Bild des ersten Sprites gesehen werden kann, während auch ein Bild eines zweiten Sprites hinter diesem gesehen werden kann, das beispielsweise eine erfasste Momentaufnahme eines Frames eines Live-Videos, das als Spriteeintrag in dem Grafikspeicher 38 gespeichert ist, oder ein eigentliches Live-Video sein kann. Der zweidimensionale Convolver 68 verarbeitet dann das angeordnete Bild, um einen „Rauchglas-" Effekt zwischen den beiden Sprites zu produzieren. Systeme des Stands der Technik verwenden vornehmlich Software, um zwei Bilder rechnerisch zu kombinieren.
  • Der Halbbildfreigabesteuerabschnitt des Spriteeintrags gibt an, dass dieses Sprite nur in den geradzahligen oder ungeradzahligen Zeilen des Bereichs des für dieses Sprite angegebenen Anzeigebildschirms angezeigt werden soll. Wenn die Pixeldaten in jeder horizontalen Zeile einer Anzeige für die Spriteeinträge der Spritelistentabelle 90 angeordnet werden, gibt die Halbbildfreigabesteuerung an, ob derartige Sprites auf einer horizontalen Zeile und mit seinem vorgesehenen Bereich auf einem Anzeigebildschirm existieren oder nicht. Dies ist ein einfaches und günstiges Verfahren, um zu erlauben, dass eine Grafik oder ein Sprite in lediglich eines der beiden Halbbilder eingeführt wird oder in diesem angeschaltet wird.
  • Damit die Speicherkontroller- und Spritezustand-Maschine 42 den „Rauchglas-"Effekt produzieren kann, muss sie wissen, welches Halbbild gegenwärtig auf dem Bildschirm des Fernsehempfängers angezeigt wird. Diese Information, die das gegenwärtige Videohalbbild angibt, wird durch ein 2-Bit-Halbbildsignal (HALBBILD<1:0>, das Bits 1 und 0 angibt), welches von einer entfernten Videosynchronisationsschaltung (nicht gezeigt), die im Allgemeinen an der komplexen bis YUV-Schaltung 44 (in 1 gezeigt) der Teilnehmerkabelboxeinheit 10 befindlich ist und von einem empfangenen Live-Videosignalstrom erhalten wird, übertragen wird, der Speicherkontroller- und Spritezustand-Maschine 42 bereitgestellt. Dieses 2-Bit-Halbbildsignal ist im Grunde ein kontinuierlich laufendes Taktsignal.
  • Die Speicherkontroller- und Spritezustand-Maschine 42 liest auch eine 4-Bit-Halbbildfreigabesteuerung aus dem damit verbundenen Spritelisteneintrag, der angibt, welches Halbbild von zwei Frames, die für ein Sprite gespeichert sind, freigegeben werden soll. Es versteht sich, dass die gesamten Informationen für die Farbe eines Farbbilds innerhalb von vier Halbbildern zweier Frames übertragen werden, um zu erklären, weshalb vier Bits für das Halbbildfreigabesignal gebraucht werden, wobei jeder Frame zwei Halbbilder hat. Des Weiteren ist auch die Verwendung der zwei Frames keine Angelegenheit der Anzeige des Farbbilds sondern wird zur Angelegenheit der auf dem Bildschirm eines verschachtelten Fernsehempfängers produzierten Artefakte (z. B. Flimmern usw.). Genauer werden in einem NTSC-Farbvideosignal (a) 227,5 Farbsynchronsignale in jeder horizontalen Zeile des Bilds, (b) 262,5 Zeilen für jedes der beiden Halbbilder eines Frames und (c) 525 Zeilen in einem Frame, der die beiden Halbbilder beinhaltet, gesendet. Da es 227,5 Farbsynchronsignale pro Zeile gibt, verlaufen, wenn die Farbsynchronsignale auf Zeile 0 des Halbbilds 0 an einem gewissen Punkt in einer positiven Richtung verlaufen, die Farbsynchronsignale dann auf der nächsten Zeile (Zeile 2) des Halbbilds 0 an einem gewissen Punkt in einer negativen Richtung, weil jede Zeile eine Sequenz ganzer Farbsynchronsignale und eine Hälfte eines Farbsynchronsignals anstatt einer Sequenz von nur ganzen Farbsynchronsignalen enthält. Des Weiteren verlaufen, da sich in einem Frame eine ungleiche Anzahl Zeilen (525) befinden, auch die Farbsynchronsignale in der ersten Zeile (Zeile 0) des Halbbilds 0 des nächsten (zweiten) Frames in einer negativen Richtung und werden der Richtung von den Farbsynchronsignalen in Zeile 0 des Halbbilds 0 des unmittelbar vorangehenden Frames entgegen laufen. Um also einen positiven Verlauf von Farbsynchronsignalen in Zeile 0 des Halbbilds 0 eines Frames zu erhalten, tritt das Wiederholungsmuster nur bei jedem zweiten Frame auf. Es versteht sich, dass der gesamte Inhalt für ein Farbbild nach dem ersten Frame vorhanden ist, aber dass die Wiederholungsmuster der Artefakte (z. B. Flimmern usw.) Nebenprodukte eines Vier-Frame-Zyklus sind. Dies hat sich aus einem Kompromiss ergeben, der ursprünglich beim Aufstellen der NTSC-Norm zur Übertragung von Farbfernsehsignalen, die mit Schwarz-Weiß-Fernsehsignalen kompatibel sind, gemacht wurde.
  • Wenn eine Momentaufnahme eines Live-Fernsehbilds als Spriteeintrag in der Spritelistentabelle 90 in den Grafikspeicher 38 gegeben wird, braucht lediglich ein Frame, der zwei Halbbilder beinhaltet, gespeichert zu werden, um anschließend das Bild auf dem Bildschirm eines Fernsehempfängers wieder anzuzeigen. Die 4-Bit-Halbbildfreigabesteuerung wird von der Speicherkontroller- und Spritezustand-Maschine 42 verwendet, um anzugeben, wenn in einem gewissen Frame oder Halbbild, je nach Code der vier Bits, auf ein Sprite zugegriffen werden soll. Beispielsweise gibt eine "1" ein Bit Drei des Halbbildfreigabesignals an, dass das damit verbundene Sprite in Frame 1 freigegeben werden sollte, und eine "1" in Bit Zwei des Halbbildfreigabesignals gibt an, dass das damit verbundene Sprite in Frame 0 freigegeben werden sollte. Ähnlich gibt eine "1" in Bit Eins des Halbbildfreigabesignals an, dass das damit verbundene Sprite in Halbbild 1 freigegeben werden sollte, und eine "1" in Bit Null des Halbbildfreigabesignals gibt an, dass das damit verbundene Sprite in Halbbild 0 freigegeben werden sollte. Bits 3 und 2 werden deshalb für Doppelframe gepufferte Sprites verwendet, während Bits 1 und 0 zum Produzieren eines „Rauchglas-"Effekts, bei dem das Sprite nur in einem Halbbild ersichtlich ist, oder für Doppelframe gepufferte Sprites, bei denen ein Sprite in beiden Halbbildern ersichtlich ist, verwendet werden. Die Speicherkontroller- und Spritezustand-Maschine 42 vergleicht die Halbbild- und Halbbildfreigabesignale, um zu bestimmen, welche der vier einzigartigen Halbbilder in den zwei Frames gegenwärtig eingeschaltet ist, um das Sprite in seinen erwünschten horizontalen Zeilenstellungen anzuzeigen, und zur Remodulation auf das NTSC-Bild, das durch ferne Verarbeitungsschaltkreise (nicht gezeigt) auf dem Fernsehempfängerschirm aufgezeigt werden soll, um gerichtete Farbsynchronsignale richtig bereitzustellen. Genauer wird die Information für das Vier-Halbbild, wie durch die Halbbild- und Halbbildfreigabesignale bestimmt, zum doppelzeilenpuffern in dem Pixelanordnungspuffer 52 verwendet, um zu bestimmen, welche Spritedaten in jede Pixelstellung der Doppelzeilenpuffer 53, 54 und 55 (nur in 4 gezeigt) gegeben werden sollen. Wenn der Vergleich der Halbbild- und Halbbildfreigabesignale eine Halbbildübereinstimmung angibt, werden die Spritedaten aus der Spriteeintragtabelle 90, der Spritedatentabelle 92 und der Zeilensteuertabelle 94 in dem Grafikspeicher 38 gelesen und die Doppelzeilenpuffer 5355 (nur in 4 gezeigt) in dem Pixelanordnungspuffer 52 werden während eines gewissen Halbbilds oder Frames zweckmäßig geladen. Ein Register (nicht gezeigt) in der Speicherkontroller- und Spritezustand-Maschine 42 wird, wenn nötig, von der CPU 36 über den Bus 48 aktualisiert, um anzugeben, welches Halbbild und/oder Frame erwünscht wird, um die Daten eines Spriteeintrags in der Spritelistentabelle 90 in den Pixelanordnungspuffer 52 zu laden.
  • Die Verwendung einfacher Steuerwörter oder Gruppen von Bits und ein Komparator zum Vergleichen der Halbbild- und Halbbildfreigabesignale, um Wiederholungsmuster in horizontalen Zeilen des NTSC-Videosignals zu bestimmen, erlaubt das Bilden eines „Rauchglas-" Effekts auf einer verschachtelten Anzeige. Dies ist im Gegensatz zum Ausführen derselben Funktionen ausschließlich in Software, die einen leistungsstarken und typischerweise relativ teuren Softwareprozessor mit viel Programmierung, wie in gewissen Systemen des Stands der Technik gefunden werden kann, erfordert. In derartigen Systemen des Stands der Technik wirkt der Prozessor (z. B. die CPU 36 in 1) beim Aufbau des Bilds mit, was eine relativ teure CPU 36 erfordert, und wenn der Prozessor herunterfährt, wird der Aufbau des Bilds unterbrochen. Ein Vorteil der vorliegenden Teilnehmerkabelboxeinheit 10 besteht darin, dass, wenn die CPU 36 herunterfährt, jede Animation in dem angezeigten Bild unterbrochen wird, weil die CPU 36 keine Informationen darüber bereitstellt, was sich in dem Bild bewegen soll. Das Bild ist jedoch selbsterhaltend. Genauer weiß der Videografikabschnitt des in 2, 3 und 9 gezeigten Video- und Speicherkontrollers 40, solange der Grafikspeicher 38 nicht korrupt ist, wie das Bild aus den Daten des Grafikspeichers 38 aufzubauen ist.
  • Nun wieder mit Bezug auf 2, beinhaltet der erste Abschnitt der Videoverarbeitungsschaltung 46 ein Datenrohr 50 (in einem Rechteck mit gestrichelter Linie gezeigt) und einen Pixelanordnungspuffer 52. Das Datenrohr 50 beinhaltet einen Pixelpuffer-Adressengenerator 97 und einen Pixelpufferdatenrohr- und Vergrößerungsschaltkreis (PIXELPUFFERDATENROHR- UND VERGR.SCHALT.) 98. Der Pixelpuffer-Adressengenerator 97 und der Pixelpufferdatenrohr- und Vergrößerungsschaltkreis 98 empfangen jeweils Steuerdaten über einen Bus 45, der von der Speicherkontroller- und Spritezustand-Maschine 42 von dem Grafikspeicher 38 erhalten wurde, und der Pixelpufferdatenrohr- und Verg.-Schaltkreis 98 empfängt auch Spritedaten über den Speicherdatenbus 39 für ein bestimmtes Sprite zur Übertragung auf den Pixelanordnungspuffer 52. Der Pixelpuffer-Adressengenerator 97 überträgt Adressenausgangssignale, während der Pixelpufferdatenrohrund Vergrößerungsschaltkreis 98 Steuer- und Datenausgangssignale an den Pixelanordnungspuffer 52 über jeweilige Busse 49 und 51 überträgt. Der Pixelpuffer-Adressengenerator 97 und der Pixelpufferdatenrohr- und Vergrößerungsschaltkreis 98 verwenden Pixeldaten, die von einem Spritesteuerwort in einem Spriteeintrag, einer Spritedatentabelle 92 und einer anderen beliebigen Information aus einer Zeilensteuertabelle 94 in dem Grafikspeicher 38 erhalten wurden, um die Daten für jedes Pixel einer horizontalen Zeile von Pixeln in einer geeigneten Adressenstelle innerhalb der Doppelzeilenpuffer 53, 54 und 55 (nur in 4 gezeigt und im Folgenden erläutert) des Pixelanordnungspuffers 52 zu geben. Spezialeffekte wie Vergrößerung, Verziehung usw., die auf den horizontalen Zeilen eines Spriteeintrags ausgeführt werden sollen, werden von den Spritesteuerwörtern in dem damit verbundenen Spriteeintrag und von einem beliebigen Zeilensteuerwort in der optionalen Zeilensteuertabelle 94 des Grafikspeichers 38 erhalten. Der Pixelpuffer-Adressengenerator 97 des Datenrohrs 50 verwendet diese Informationen, um die Pixeladresse in einer Zeile der Spritedaten, welche aus der Spritedatentabelle 92 des Grafikspeichers 38 erhalten wurden, angemessen zu ändern, um den bestimmten Spezialeffekt zu erreichen. Diese geänderte Adresse wird über den Bus 49 an den Pixelanordnungspufter 52 zur Verwendung beim Geben der damit verbundenen Pixeldaten an die Pixelstelle, die durch die geänderte Adresse in den Doppelzeilenpuffern 53, 54 oder 55 des Pixelanordnungspuffers 52 bestimmt ist, gesendet, um anschließend den bestimmten Spezialeffekt auf dem Fernsehschirm bereitzustellen. Der Pixelpufferdatenrohr- und Vergrößerungsschaltkreis 98, der nachfolgend genauer beschrieben wird, empfängt gleichzeitig die Pixeldaten für die Pixeladresse und überträgt die Pixeldaten auf den Pixelanordnungspufter 52 zur Speicherung an der Adresse des Doppelzeilenpuffers 53, 54 oder 55, die durch den Pixelpuffer-Adressengenerator 97 erzeugt wurde. Der Pixelanordnungspuffer 52 gibt Luminanzpixeldaten für drei angrenzende horizontale Zeilen eines beliebigen Sprites, das auf jenen Zeilen auf Bussen, die mit ZEILE 0, ZEILE 1 und ZEILE 2 gekennzeichnet sind, angezeigt werden soll, aus und gibt Chrominanzpixeldaten, die mit den ZEILE 1 Luminanzausgabedaten verbunden sind, auf einer ZEILE 1c aus.
  • Nun mit Bezug auf 4 wird ein Blockschaltbild eines Pixelanordnungspuffers 52 gezeigt. Der Pixelanordnungspuffer 52 beinhaltet einen ersten, zweiten und dritten Doppelzeilenpuffer 53, 54 bzw. 55 und einen Y/G Zeile 0 Puffer 58. Der erste Doppelzeilenpuffer 53 wird zum Speichern der Y/G (Luminanz-) Zeile 1a Daten und Y/G Zeile 1b Daten für die erste und zweite Zeile eines ersten Halbbilds eines Spritebilds, das über einen Bus 49 von dem Datenrohr 50 empfangen wird, verwendet. Die Zeilenluminanzdaten beinhalten 10 Bits (Bits 9–0) von Daten und Steuerung für jedes Pixel einer Zeile. Der zweite Doppelzeilenpuffer 54 wird zum Speichern der C (Chrominanz-) Zeile 1a und C Zeile 1b Daten der ersten und zweiten Zeile des ersten Halbbilds des Spritebilds, das über den Bus 49 von dem Datenrohr 50 empfangen wird, verwendet. Die Zeilenchrominanzdaten beinhalten 8 Bits (Bits 7–0) von Daten für jedes Pixel einer Zeile. Der dritte Doppelzeilenpuffer 55 wird zum Speichern der Y/G (Luminanz-) Zeile 2a Daten und Y/G Zeile 2b Daten der ersten und zweiten Zeile eines zweiten Halbbilds eines Spritebilds, das über den Bus 49 von dem Datenrohr 50 empfangen wird, verwendet. Die Zeilenluminanzdaten beinhalten 10 Bits (Bits 9–0) von Daten und Steuerung für jedes Pixel einer Zeile. Adressen zum Speichern der empfangenen Pixeldaten in dem jeweils ersten, zweiten und dritten Doppelzeilenpuffer 53, 54 bzw. 55 werden über einen Bus 49 von dem Datenrohr 50 empfangen.
  • Es versteht sich, dass die Zeilen 1a und 2a des ersten und dritten Doppelzeilenpuffers 53 bzw. 55 jeweils eine erste und zweite horizontale Zeile von Pixeldaten speichern, wobei die erste und zweite horizontale Zeile angrenzende Zeilen innerhalb separater Halbbilder des Spritebilds in einem verschachtelten Anzeigeformat sind. Ähnlicherweise speichern Zeilen 1b und 2b des ersten und dritten Doppelzeilenpuffers 53 bzw. 55 jeweils eine dritte und vierte horizontale Zeile, wobei die dritte und vierte horizontale Zeile angrenzende Zeilen innerhalb separater Halbbilder des Spritebilds in einem verschachtelten Anzeigeformat sind. Mit anderen Worten speichern der erste und dritte Doppelzeilenpuffer 53 bzw. 55 aufeinanderfolgend Luminanzdaten und Steuerung für beispielsweise Pixel einem Paar ungerader bzw. gerader Zeilen eines jeweiligen ersten und zweiten Halbbilds, oder umgekehrt, des Spritebilds, während eines Abtastens eines verschachtelten Anzeigeformats. Der zweite Doppelzeilenpuffer 54 speichert die Chrominanzdaten für die Daten von Zeilen, welche in dem Doppelzeilenpuffer 53 gespeichert sind. Ein Chrominanz-Doppelzeilenpuffer (nicht gezeigt), der dem Doppelzeilenpuffer 54 ähnlich ist, kann für den Doppelzeilenpuffer 55 bereitgestellt werden, ist jedoch von der Wirtschaftlichkeit und Unwichtigkeit in einem Convolver, der im Folgenden erklärt wird, gesehen nicht nötig.
  • Die Ausgabedaten von dem ersten Doppelzeilenpufter 53 beinhalten zehn Bits Luminanzdaten und Steuerung für jedes Pixel der darin gespeicherten Zeilen, was parallel für jedes Pixel über einen Bus, der mit ZEILE 1 gekennzeichnet ist, an die Schaltung in 3 ausgegeben wird. Die Ausgabedaten von dem zweiten Doppelzeilenpuffer 54 beinhalten acht Bits Chrominanzdaten für jedes Pixel der darin gespeicherten Zeilen, was parallel für jedes Pixel über einen Bus, der mit ZEILE 1c gekennzeichnet ist, an die Schaltung in 3 ausgegeben wird. Die Ausgabedaten von dem dritten Doppelzeilenpufter 55 beinhalten zehn Bits Luminanzdaten und Steuerung für jedes Pixel der darin gespeicherten Zeilen, was parallel für jedes Pixel über einen Bus, der mit ZEILE 2 gekennzeichnet ist, an die Schaltung in 3 und an den Y/G Zeile 0 Puffer 58 ausgegeben wird. Der Y/G Zeile 0 Puffer 58 funktioniert so, dass er die Zeilendaten und Steuerung, die durch den dritten Doppelzeilenpuffer 55 durch eine horizontale Zeilenperiode ausgegeben werden, verzögert, um eine verzögerte Zeilenausgabe bereitzustellen, die zehn Bits Luminanzdaten und Steuerung für jedes Pixel der darin gespeicherten Zeile beinhaltet, was parallel über einen Bus, der in 3 mit ZEILE 0 zu Schaltung gekennzeichnet ist, ausgegeben wird. Es versteht sich, dass bei einer Abtastfrequenz von 13,5 MHz für die normale NTSC-Fernsehanzeige 858 Pixel pro Zeile des Bilds vorhanden sind, von denen nur ungefähr 704 Pixel tatsächlich angezeigt werden, und dass in zwei Halbbildern eines Bilds 525 horizontale Zeilen von Pixeln vorhanden sind, wovon ungefähr 440–500 Zeilen normalerweise ersichtlich sind, je nachdem, welcher Fernsehempfänger verwendet wird.
  • Eine beispielhafte Betriebssequenz für den ersten und dritten Doppelzeilenpuffer 53 bzw. 55 und den Y/G Zeile 0 Puffer 58 des Pixelanordnungspuffers 52 ist in einer gleichzeitig schwebenden Patentanmeldung mit dem Titel „Apparatus Using Memory Control Tables Related to Video Graphics Processing for TV Receivers", Seriennr. 08/523,394 (GID908) (Butler et al.), eingereicht an demselben Tag wie die vorliegende Anmeldung, beschrieben.
  • Genauer werden während der Initialisierungsschritte Pixeldaten für eine horizontale Zeile 1 eines ersten Halbbilds und Pixeldaten für eine horizontale Zeile 2 eines zweiten Halbbilds in den Abschnitt der Y/G Zeile 1a des ersten Doppelzeilenpuffers 53 bzw. den Abschnitt der Y/G Zeile 2a des dritten Doppelzeilenpuffers 55 während einer ersten horizontalen Zeilenperiode eingegeben. Gleichzeitig dazu werden die Pixeldaten für horizontale Zeilen, die vorher in dem Abschnitt der Y/G Zeile 1b des ersten Doppelzeilenpuffers 53, und dem Abschnitt der Y/G Zeile 2b des dritten Doppelzeilenpuffers 55 (in dem zur Zeit keine Daten gespeichert sind) gespeichert wurden, aus deren jeweiligen Ausgängen ZEILEN 1 und 2 gelesen. Gleichzeitig dazu werden die Pixeldaten für die horizontale Zeile, die vorher in dem Abschnitt Y/G Zeile 2b des dritten Doppelzeilenpuffers 55 (in dem vorher keine Daten gespeichert waren) gespeichert wurde, in den Y/G Zeile 0 Puffer 58 eingegeben, während vorher gespeicherte Pixeldaten für eine horizontale Zeile (keine gültigen Daten) an den Ausgang ZEILE 0 ausgegeben werden. Auf ähnliche Weise werden während einer zweiten horizontalen Zeilenperiode die Pixeldaten für eine horizontale Zeile 3 eines ersten Halbbilds und Pixeldaten für eine horizontale Zeile 4 eines zweiten Halbbilds in den Abschnitt der Y/G Zeile 1b des ersten Doppelzeilenpuffers 53 bzw. den Abschnitt der Y/G Zeile 2b des dritten Doppelzeilenpuffers 55 eingegeben. Gleichzeitig dazu werden die Pixeldaten für horizontale Zeilen 1 und 2, die vorher in dem Abschnitt der Y/G Zeile 1a des ersten Doppelzeilenpuffers 53, und dem Abschnitt der Y/G Zeile 2a des dritten Doppelzeilenpuffers 55 gespeichert wurden, aus deren jeweiligen Ausgängen ZEILEN 1 und 2 gelesen. Noch ferner werden die Pixeldaten für die horizontale Zeile 2, die vorher in dem Abschnitt Y/G Zeile 2a des dritten Doppelzeilenpuffers 55 gespeichert wurde, in den Y/G Zeile 0 Puffer 58 eingegeben, während die vorher gespeicherten Pixeldaten für eine horizontale Zeile (keine gültigen Daten) am Ausgang ZEILE 0 ausgegeben werden.
  • Nach Initialisierung werden während einer dritten horizontalen Zeilenperiode die Pixeldaten für eine horizontale Zeile 5 eines ersten Halbbilds und Pixeldaten für eine horizontale Zeile 6 eines zweiten Halbbilds in den Abschnitt der Y/G Zeile 1a des ersten Doppelzeilenpuffers 53 bzw. den Abschnitt der Y/G Zeile 2a des dritten Doppelzeilenpuffers 55 eingegeben. Gleichzeitig damit werden die Pixeldaten für die horizontalen Zeilen 3 und 4, aus dem Abschnitt der Y/G Zeile 1b des ersten Doppelzeilenpuffers 53 bzw. dem Abschnitt der Y/G Zeile 2b des dritten Doppelzeilenpuffers 55 auf deren jeweiligen Ausgängen ZEILEN 1 und 2 gelesen. Noch ferner werden die Pixeldaten für die horizontale Zeile 4 von dem Abschnitt Y/G Zeile 2b des dritten Doppelzeilenpuffers 55 in den Y/G Zeile 0 Puffer 58 eingegeben, während die vorher gespeicherten Pixeldaten für die Daten der horizontalen Zeile 2 an den Ausgang ZEILE 0 ausgegeben werden. Daher geben die Puffer 58, 53 und 55 Pixeldaten für die horizontalen Zeilen 2, 3 bzw. 4 für ein Sprite auf jeweiligen Ausgängen ZEILEN 0, 1 und 2 während der dritten horizontalen Zeilenperiode aus, wobei die Pixeldaten für die horizontalen Zeilen 2 und 4 Teil des zweiten Halbbilds und die Pixeldaten für die horizontale Zeile 3 Teil des ersten Halbbilds eines Spritebilds sind, die in dem Grafikspeicher 38 gespeichert wurden. Der Vorgang geht während anschließenden horizontalen Zeilenvorgängen für Pixeldaten für anschließende aufeinanderfolgende horizontale Zeilen auf ähnliche Weise weiter.
  • Wieder zurück bei 3 ist ein Blockschaltbild eines zweiten Abschnitts einer Videoverarbeitungsschaltung 46, die in der Teilnehmerkabelboxeinheit 10 auf 1 zu finden ist, gezeigt. Dieser zweite Abschnitt der Videoverarbeitungsschaltung 46 beinhaltet eine Farbpalettenschaltung 60, einen YC-YUV-Demultiplexer 62, einen Multiplexer/Überblendregler (MUXER/ÜBERBLENDREGLER) 64, einen 3 : 1 Multiplexer mit Steuerung (3 : 1 MUXER & ST.) 66 und einen Convolver 68. Die 10-Bit-Pixeldaten (Bits 9 : 0), die sich auf jeder der Zeilen 0, 1, 2 von dem Ausgang des Pixelanordnungspuffers 52 aus 2 für entsprechende Pixel in drei angrenzenden hiorizontalen Zeilen eines Spritebilds verbreiten, werden an separaten Eingängen von jeweils der Farbpalettenschaltung 60, dem YC-YUV-Demultiplexer 62 und dem 3 : 1 Multiplexer mit Steuerung 66 empfangen. Genauer werden Bits 7–0 des parallelen 10 Bit/Pixel-Ausgangs von dem Pixelanordnungpuffer 52 für jeden der Ausgänge ZEILEN 0, 1 und 2 an den Eingängen der Farbpalettenschaltung 60 und dem YC-YUV-Demultiplexer 62 empfangen, während Bits 9 und 8 des parallelen 10 Bit/Pixel Ausgangs von dem Pixelanordnungspuffer 52 für jeden der Ausgänge ZEILEN 0, 1 und 2 an den Eingängen des 3 : 1 Multiplexer mit Steuerung 66 empfangen. Außerdem empfängt der YC-YUV-Demultiplexer 62 die Chrominanzdatenbits 7–0, die auf dem Ausgang ZEILE 1c von dem Pixelanordnungspuffer 52 parallel ausgegeben werden, da die Chrominanzdaten nur verwendet werden, wenn die Sprite-Pixeldaten sich auf ein Echtfarb-Spritesignal beziehen. Genauer definiert der Code selbst die Farbe, wenn die Spritedaten als ein Farbpalettensignal kodiert sind, und die Chrominanzdaten sind nicht wie mit einem Echtfarb-Videosignal gebraucht, erforderlich.
  • Die Farbpalettenschaltung 60 funktioniert so, dass sie erfasst, wann die 8 Bits (Bits 7 : 0) parallel empfangener Pixeldaten auf jedem der Ausgänge ZEILE 0, 1 und 2 separate Codes für bestimmte Farben einer Farbpalette darstellen und jene Farbpalettencodes in ein Ausgangssignal auf Bus 61, der ein 24 Bit YUV gemultiplextes Farbpalettensignal für drei für diese drei Zeilen empfangene 8 Bit-Pixeldaten darstellt, umwandelt. Die Farbpalettenschaltung 60 ist ein wohl bekanntes Gerät und es kann ein beliebiger Schaltkreis dafür verwendet werden. Der YC-YUV-Demulitplexer 62 erfasst, wann die 8 Bits (Bits 7 : 0) parallel empfangener Daten für Pixel auf jedem der Ausgänge ZEILE 0, 1 und 2 von dem Pixelanordnungspuffer 52 Echtfarbdaten (z. B. ein Sprite, das direkt von einem Fernsehbild erhalten wurde) darstellen und verwendet auch die 8-Bit-Chrominanzdaten, die über Ausgänge ZEILE 1c von dem Pixelanordnungspuffer 52 erhalten wurden, um ein 24-Bit-Echtfarb-YUV-Ausgangssignal für Pixel der drei Zeilen zur Übertragung auf dem Bus 63 zu erzeugen.
  • Der Multiplexer/Überblendregler (MUXER/ÜBERBLENDREGLER) 64 empfängt an separaten Eingängen davon jede der 24-Bit-Farbpaletten-YUV-Datensignale, die sich auf einem Bus 61 von der Farbpalettenschaltung 60 verbreiten, die 24-Bit-Echtfarb-YUV-Datensignale, die sich auf Bus 63 von dem YC-YUV-Demultiplexer 62 verbreiten und 24-Bit-YUV-Live-Videosignale auf einem Bus 59. Der Multiplexer/Überblendregler 64 spricht auf Steuersignale auf einer Leitung 67 von dem 3 : 1 Multiplexer mit Steuerung 66 an, um eines der drei Eingangssignale (24-Bit-Farbpaletten-YUV, 24-Bit-Echtfarb-YUV oder 24-Bit-Live-Video-YUV), die an dem Multiplexer/Überblendregler 64 empfangen wurden, während jeder Pixelperiode als digitalisierte YUVgemischte Ausgangssignale auf einem Bus 65 auszugeben. Genauer bestimmt der 3 : 1 Multiplexer mit Steuerung 66 von den auf den Ausgängen ZEILEN 0, 1 und 2 von dem Pixelanordnungspuffer 52 empfangenen Bits 9 und 8, ob die Pixeldaten von dem Pixelanordnungspuffer 52 auf den Ausgängen ZEILEN 0, 1 und 2 Farbpalettendaten, Echtfarbdaten oder Daten (nicht gültige Daten) für ein Pixel, das nicht Teil eines Sprites, welches über ein Live-Videosignal überlagert werden soll, darstellen und daher das Live-Videosignal für jenes Pixel verwendet werden soll anstelle der Farbpaletten- oder Echtfarbdaten, die von dem Pixelanordnungspuffer 52 empfangen werden. Als Folge derartiger Steuerinformationen, die von Bits 9 und 8 der Ausgänge ZEILEN 0, 1 und 2 von dem Pixelanordnungspuffer 52 erhalten wurden, sendet der 3 : 1 Multiplexer mit Steuerung 66 Steuersignale über die Leitung 67 an den Multiplexer/Überblendregler 64, um die korrekten Eingabedaten für jedes Pixel eines Bilds, das auf einem fernen NTSC- oder PAL-Fernsehempfänger (nicht gezeigt) angezeigt werden soll, auszuwählen. Der Convolver 68 verwendet aufeinanderfolgende Sätze von drei Pixeldatenwerten, die im Signal von dem Multiplexer/Überblendregler 64 auf dem Bus 65 empfangen werden, um in einer 3 × 3-Matrix entsprechender Pixel in drei angrenzenden Zeilen eines Fernsehbilds einem zentralen Pixel ein 8-Bit gewichtetes Ausgangssignal bereitzustellen oder um das von dem Multiplexer/Überblendregler 64 auf Bus 65 empfangene Signal als ein YUV-Ausgangssignal auf dem Bus 47, je nach Steuersignalen von dem 3 : 1 Multiplexer mit Steuerung 66 über eine Leitung 69.
  • Mit Bezug auf 5 ist nun ein Blockschaltbild eines beispielhaften Multiplexer-/Überblendreglerschaltkreises 64 gezeigt (innerhalb einem ersten Rechteck mit gestrichelter Linie gezeigt), der einen 2 : 1 Multiplexer (MUXER) 72 und einen Überblendregler 74 (in einem zweiten Rechteck mit gestrichelter Linie gezeigt) beinhaltet. Der Überblendregier 74 beinhaltet einen A – B-Addierer 75, einen vorzeichenbehafteten Multiplikator (VORZEICHENBEHAFTETER MULT.) 77 und einen A + B-Addierer 78. Der 2 : 1 Multiplexer empfängt jedes der Grafikdatensignale von der Farbpalette 60 auf dem Bus 61 an einem ersten Eingangsanschluss (A) und die Grafikdatensignale von dem YC-YUV-Demultiplexer 62 auf dem Bus 63 an einem zweiten Eingangsanschluss (B). Ein Steuersignal auf einer Leitung 67 von dem 3 : 1 Multiplexer mit Steuerung 66 wählt aus, welche der beiden Grafikeingangssignale (von dem Eingangsanschluss A oder B) von dem 2 : 1 Multiplexer 72 an dem Ausgangsanschluss (0) ausgegeben werden. Pixelgrafik-Ausgangssignale (Y, U oder V) von einem Ausgangsanschluss (0) des 2 : 1 Multiplexers 72 (mit G gekennzeichnet) auf einem Bus 70 werden an einem ersten Eingangsanschluss (A) des A – B-Addierers 75 empfangen. Ein Live-Video-YUV-Signal (Y, U oder V) (mit L gekennzeichnet), wird von einem Bus 59 an einem zweiten Eingangsanschluss (B) des A – B-Addierers 75 empfangen. Die Pixeldatenwerte der A-Anschluss-Eingabedaten von dem 2 : 1 Multiplexer 72 weniger der Datenwerte der an dem B-Eingangsanschluss empfangenen Live-Video-YUV-Pixeldaten, werden als Ausgabe an dem Ausgangsanschluss (0) des A – B-Addierers 75 bereitgestellt. Der vorzeichenbehaftete Multiplikator 77 empfängt beispielsweise von einem Register (nicht gezeigt), einen 9-Bit, selektiv änderbaren Verhältnisregelungswert (R) auf einem Bus 71 an einem ersten Eingangsanschluss (A) und die Ausgabe von dem A – B-Addierer 75 auf einem Bus 76 an einem zweiten Eingangsanschluss (B). Der anfallende multiplizierte Wert des Verhältnisregelungswerts (R) auf dem Bus 71 und der Grafiksignal-Ausgabedaten von dem A-B-Addierer 75 auf dem Bus 76 wird an einem Ausgangsanschluss (0) auf einem Bus 79 an einen ersten Eingangsanschluss (A) des A + B-Addierers 78 ausgegeben. Das Live-Videosignal (Y, U oder V) auf dem Bus 59 wird an einem zweiten Eingangsanschluss (B) des A + B-Addierers 78 empfangen, und die Summe der beiden Eingangssignalwerte wird als ein Ausgangssignal (mit Q gekennzeichnet) auf dem Bus 65 einem Convolver 68 (in 3 gezeigt) bereitgestellt.
  • Der Überblendregler 74 funktioniert so, dass er ein Grafiksignal für ein Sprite aufblendet oder abblendet, so dass die Grafik nicht umgehend über das Live-Videosignal erscheint oder verschwindet. Mit anderen Worten bewirkt der Überblendregler 74 bei einem Aufblenden der Grafik, dass die Grafik mit zunehmender Intensität auf einem Fernsehempfänger erscheint, während das Live-Videosignal in dem Bereich der Grafik über eine kurze Zeitperiode an Intensität verliert, so dass die Grafik vollständig sichtbar ist. Ähnlicherweise bewirkt der Überblendregler 74 bei einem Abblenden der Grafik, dass die Grafik mit abnehmender Intensität auf einem Fernsehempfänger erscheint, während das Live-Videosignal in dem Bereich der Grafik über eine kurze Zeitperiode an Intensität zunimmt, bis die Grafik verschwindet. Die Funktionsweise des Überblendreglers 74 kann gemäß den folgenden Algorithmen erklärt werden. Für Folgendes ist ein beispielhafter 9-Bit-Überblendmultiplikator (R), der auf dem Bus 71 bereitgestellt ist, wie folgt definiert. R ist der Überblendsteuerwert und reicht von 0 bis 256. Aus oben stehenden Definitionen ist Q = [(R/256)*G] + [(1 – R/256)*L), und = L + [(G-L)*R]/256, Gl. 2wobei „L" ein Pixelwert des Live-Videos ist, „G" ein Pixelwert der Spriteüberlagerung ist und das Symbol „*" eine multiplizierende Funktion darstellt. Aus oben stehender Gleichung 2 ändert sich, während sich das Verhältnis für den Multiplikationswert R ändert, die Intensität der Grafikund Live-Videosignale in entgegengesetzten Richtungen.
  • Nun mit Bezug auf 6 wird ein Blockschaltbild des in 3 gezeigten Convolvers 68 gezeigt. Der Convolver 68 (in einem Rechteck mit gestrichelter Linie gezeigt) beinhaltet einen Nebenstromkreislauf 80, einen Convolverschaltkreis 82 und einen Multiplexer (MUXER) 84. Der Nebenstromkreislauf 80 empfängt aufeinanderfolgende Pixeldaten von dem Multiplexer/Überblendregler 64 (in 3 und 5 gezeigt) auf dem Bus 65 und erzeugt gleichzeitig davon Daten auf den Bussen 81 für drei Pixel in einer Vertikalen eines auf einem Fernsehempfänger anzuzeigenden Sprites. Genauer werden die drei Pixel von entsprechenden Pixeln in drei angrenzenden Zeilen beider Halbbilder eines Frames, der ein Spiritebild ausmacht, erhalten. Die drei Pixeldatenwerte werden durch eine beliebige geeignete Anordnung erhalten, wie etwa eine Vielzahl von Verzögerungsschaltkreisen, die von einem Pixeltaktgeber oder einem Dreimal-Pixeataktgeber funktionieren. Die drei Pixeldatenwerte werden über Busse 81 durch den Convolverschaltkreis 82 empfangen. Die aufeinanderfolgenden Pixeldaten von dem Multiplexer/Überblendregler 64 werden auf dem Bus 65 von dem Nebenstromkreislauf 80 empfangen. Die aufeinanderfolgenden Pixeldaten von dem Multiplexer/Überblendregler 64 gehen durch den Nebenstromkreislauf 80 und sind an einem ersten Eingang (A) des Multiplexers 84 über einen Bus 85 bereitgestellt. Außerdem überträgt der Nebenstromkreislauf 80 auch aufeinanderfolgende Sätze dreier Pixeldatenwerte von separaten Ausgängen davon an separate Eingänge des Convolverschaltkreüses 82 auf den Bussen 81. Der Convolverschaltkreis 82 stellt einem zweiten Eingang (B) des Multiplexers 84 über einen Bus 86 ein 8-Bit gewirhtetes Ausgangssignal für Pixeldaten für ein zentrales Pixel in einer 3 × 3-Matrix entsprechender Pixel in drei angrenzenden Zeilen eines Fernsehbilds an einem Ausgang davon bereit. Der Multiplexer 84 wählt die Signale an dem ersten (A) oder zweiten (B) Eingang zur Übertragung an dem Ausgangsanschluss (0) und auf dem Bus 47, je nach Steuersignalen von dem 3 : 1 Multiplexer mit Steuerung 66 über eine Leitung 69 aus.
  • Wie in der gleichzeitig schwebenden U.S. Patentanmeldung, Seriennr. 08/523,395 (US Patent Nr. 5,848,200) offenbart, die gleichzeitig wie die vorliegende Patentanmeldung und für dieselben Erfinder und denselben Rechtsnachfolger wie die vorliegende Erfindung eingereicht wurde, multipliziert der Convolverschaltkreis 82 (unter Verwendung von lediglich Addierern und Verzögerungen) die drei Pixel wirksam auf einer Vertikalen, die auf den Bussen 81 in einer 3 × 3-Matrix von Pixeln mit vorgegiebenen Gewichtswerten empfangen wird, und stellt einem zweiten Eingang (B) des Multiplexers 84 ein Bemitteltes Ausgangssignal für das zentrale Pixel der 3 × 3-Matrix bereit. Dieser Vorgang dauert für jedes Pixel einer zentralen Reihe (Ausgang ZEILE 1 des Pixelanordnungspuffers 52 aus 2) fort, während die Spritedaten für die entsprechenden Pixel der drei angrenzenden Zeilen als Pixeldaten drei angrenzende Zeilen lang horizontal über das Spritebild weitergehen (sich verschieben).
  • Nun mit Bezug auf 7 ist ein Blockschaltbild einer Pixelpuffer-Datenröhre mit Vergrößerungsschaltkreis 98, die Teil des in 2 gezeigten Datenrohrs 50 bildet, gezeigt, um in einer horizontalen Richtung selektive Vergrößerungen für Grafiken (Sprites) gemäß der vorliegenden Erfindung bereitzustellen. Das Pixelpuffer-Datenrohr mit Vergrößerungsschaltkreis 98 (auch als ein zweites Vergrößerung modifizierendes Mittel bezeichnet) beinhaltet einen Pixelauswahl-Festwertspeicher (PIXELAUSWAHL-ROM) 100, einen Multiplexer-Antriebs-Festwertspeicher (MUXER-ANTRIEBS-ROM) 102, einen Zyklussteuerungs-3-Bit-Zähler 104 (auch als Zyklussteuerungsmittel bezeichnet), einen Offsetsteuerungs-2-Bit-Addierer 106 (auch als ein Offsetsteuerungsmittel bezeichnet) und einen Pixelmultiplexer 108 (auch als Pixelmultiplexmittel bezeichnet). Ein Bus 45 stellt Steuerdaten bereit, die von einem Grafikspeicher 38 (in 2 gezeigt) über eine Speicherkontroller- und Spritezustand-Maschine 42 (in 2 gezeigt) als (a) ein 4-Bit horizontales gebrochenes Vergrößerungs-Steuersignal an einem F-Eingangsanschluss des Pixelauswahl-Festwertspeichers (ROM) 100, und ein (b) 2-Bit ganzzahliges Vergrößerungs-Steuersignal an einem 1-Eingangsanschluss des Multiplexer-Antriebs-ROMs 102 erhalten werden. Ein Bus 39 stellt einem A-Eingangsanschluss des Pixelmultiplexers 108 ein 32-Bit-Pixeldatensignal, einschließlich vier 8-Bit ankommender Grafikpixel, bereit. Der Pixelauswahl-ROM 100 empfängt auch ein Taktsignal an einem TAKT-Eingangsanschluss von dem Zyklussteuerungs-3-Bit-Zähler 104 über einen Leiter 111 und gibt ein 4-Bit-Pixelauswahl-Steuersignal von einem Ausgangssignal O an einen Eingangsanschluss B des Multiplexer-Antriebs-ROMs 102 über einen Bus 113 aus. Der Zyklussteuerungs-3-Bit-Zähler 104 empfängt ein Taktsignal über einen Leiter 110 an einem Eingangsanschluss C und stellt dem Pixelauswahl-ROM 100 über den Leiter 111 das Taktsignal bereit. Des Weiteren empfängt der Zyklussteuerungs-3-Bit-Zähler 104 selektiv auch ein „Halten-" Steuersignal von dem Multiplexer-Antriebs-ROM 102 an einem H-Eingangsanschluss über einen Leiter 118 und überträgt selektiv ein 3-Bit„Zyklus-" Steuersignal von einem CY-Ausgangsanschluss an ein CY-Eingangsanschluss des Multiplexer-Antriebs-ROMs 102 über einen Bus 117. Der Multiplexer-Antriebs-ROM 102 überträgt selektiv 2-Bit-„Anz. Pixel" Steuersignale von einem Ausgangsanschluss NP an einen Eingangsanschluss NP des Offsetsteuerungs-2-Bit-Addierers 106 über einen Bus 115, und ferner empfängt der Multiplexer-Antriebs-ROM 102 2-Bit-„Offset-" Steuersignale an einem Eingangsanschluss OS, die von einem OS-Ausgangsanschluss des Oftsetsteuerungs-2-Bit-Addierers 106 über einen Bus 116 gesendet werden. Außerdem gibt der Multiplexer-Antriebs-ROM 102 16-Bit-Steuersignale von einem Ausgangsanschluss 0 über einen Bus 120 an einen Eingangsanschluss B des Pixel-Multiplexers 108 aus. Der Pixel-Multiplexer 108 empfängt das Taktsignal an einem Eingangsanschluss C über den Leiter 110 und gibt 32-Bit-Wörter, einschließlich vier 8-Bit ausgehender Grafikpixel von einem Ausgangsanschluss 0 zur Übertragung an den Pixelanordnungspuffer 52 über einen Bus 49 aus.
  • Das Pixelpuffer-Datenrohr mit Vergrößerungsschaltkreis 98 erlaubt ein Schrumpfen oder Vergrößern von Videodaten während eines Transfers von dem Grafikspeicher 38 in den Pixelanordnungspuffer 52 und dann einen anschließenden Transfer auf einen Fernsehschirm. Der Vergrößerungsbereich des Pixelpuffer-Datenrohrs mit Vergrößerungsschaltkreis 98 weist einen bevorzugten Bereich von einem Sechzehntel bis zu viermal der normalen Größe in Schritten von einem Sechzehntel auf. Mit anderen Worten sind 0,5, fünf Sechzehntel und ein und drei Sechzehntel alle gültige Vergrößerungen. Es versteht sich, dass der bevorzugte oben erwähnte Bereich nach Bedarf erweitert oder verringert werden kann und dass das Pixelpuffer-Datenrohr mit Vergrößerungsschaltkreis 98 die Pixeldaten nachverarbeitet, nachdem sie den Grafikspeicher 38 verlassen haben, und den Inhalt des Grafikspeichers 38 nicht beeinträchtigt. Daher ist ein dynamisches Zoom möglich, indem die Speicherkontroller- und Spritezustand-Maschine 42 ein Vergrößerungs-Steuerwort ändert, das ein 4-Bit gebrochenes Vergrößerungs-Steuersignal und ein 2-Bit ganzzahliges Vergrößerungs-Steuersignal beinhaltet, ohne dass ein gespeichertes Bild in dem Grafikspeicher 38 berührt oder beeinträchtigt werden muss. Alles, was das Pixelpuffer-Datenrohr mit Vergrößerungsschaltkreis 98 in seiner einfachen Form vollbringt, ist, Pixel oder Zeilen in einem Verhältnis, das mit einer erforderlichen Vergrößerung konsistent ist, fallen zu lassen oder zu wiederholen.
  • Unter normalen Umständen kann das Fallen lassen von Pixeln inakzeptable Videoartefakte auf einem Fernsehschirm produzieren, da die Pixelfarben- und Luminanzübergänge die normalen Bandbreitengrenzen des Fernsehsystems überschreiten können. Genauer ist die maximale Bandbreite, die ein Fernseher anzeigen kann, 4 MHz. Beispielsweise wird ein Übergang von Schwarz zu Weiß über ungefähr drei Pixel bei typischen Abtastfrequenzen ausgeführt, weil eine Luminanzänderung nicht mit weniger Pixeln innerhalb der Bandbreite des Fernsehsystems gemacht werden kann. Wenn daher zwei mittlere Pixel eines Übergangs fallen gelassen werden, würde ein Schwarz-Weiß-Übergang, der bedeutend schneller als in der 4 MHz Bandbreitenspezifikation des Fernsehsystems erlaubt ist, effektiv existieren. Dies produziert einen „Reißverschluss-" (zippering) Zeilen Effekt entlang den Kanten oder Übergängen. Sehr abrupte Übergänge können auch erhalten werden, wenn zwei Sprites aufeinander oder überlappend gesetzt werden, da nicht umgehend bekannt wird, welche die beiden Farben in unmittelbar angrenzenden Pixeln sein werden. Dasselbe geschieht, wenn Pixel in dem Pixelpuffer-Datenrohr mit Vergrößerungsschaltkreis 98 in überlappenden Sprites entfernt oder gelöscht werden, um einen sehr abrupten Videoübergang herbeizuführen. Um daher die produzierten Artefakte zu umgehen, muss aufgrund der Nachbarschaft der Sprites eine Reduzierung der Bandbreite vorgenommen werden. Der Convolver 68 (in 3 und 6 gezeigt) ist bereitgestellt, um die Spritekanten zu filtern, indem die Bandbreite abrupter Übergänge in ihrer Frequenz einschränkenden Fähigkeit reduziert wird. Weil der zweidimensionale Convolver 68 die Artefakte, die aus dem Fallen lassen von Pixeln ersichtlich wären, „ausgleicht", ist eine bedeutende Reduzierung der Logik des Pixelpuffer-Datenrohrs mit Vergrößerungsschaltkreis 98 möglich. Die Arbeitslast wird gewissermaßen in dem Pixelauswahl-ROM 100 und dem Multiplexer-Antriebs-ROM 102, die kleine ROMs sind, implementiert. Oben stehende Beschreibung deutet an, dass Pixel in einer horizontalen Richtung einfach fallen gelassen oder wiederholt werden. Obgleich dies im Prinzip korrekt ist, muss es verständlich sein, dass Pixeldaten in 8-Bit farbpalettierten (256 Farben) oder 16-Bit YCrCb (YUV) Formaten gespeichert werden können und zur besseren Transferbandbreite in 32-Bit breiten Grafikspeichern 38 gepackt sind.
  • Für Vergrößerungen kleiner als Einheit und in dem Bereich von 1/16 bis 15/16 werden unterschiedliche Mengen von Pixeln von Transfers zwischen Pixeln einer Untergruppe von 4 ankommenden Pixeln und Pixeln einer Untergruppe von 4 ausgehenden Pixeln fallen gelassen und derartige Transfers werden auf einer Gesamtgruppe von 16 Pixeln durchgeführt. Unten stehende Tabelle 1 ist in dem Pixelauswahl-ROM 100 kodiert und gespeichert, um für Schritte einer Vergrößerung um einen Sechzehntel eine Auswahl, die so ausgeglichen wie möglich ist, bereitzustellen, damit am Fernsehempfänger eine verbesserte Bildqualität bereitgestellt wird. Eine „1" in einer Spalte der Tabelle 1 gibt an, dass das Pixel verwendet wird und eine „0" in einer Spalte gibt an, dass das Pixel fallen gelassen wird und nicht auf eine der ausgehenden Pixelgruppen transferiert wird.
  • TABELLE 1
    Figure 00420001
  • Beispielsweise wird nur Pixel 0 für eine Vergrößerung um 1/16 verwendet, nur Pixel 0, 5 und 10 werden für eine Vergrößerung um 3/16 verwendet und nur Pixel 0, 4, 8 und 12 werden für eine Vergrößerung um 4/16 verwendet. Daher ist der Pixelauswahl-ROM 100 insgesamt nur 256 Bits und ist sehr klein.
  • Bei Betrieb wird ein horizontales 4-Bit gebrochenes Vergrößerungs-Steuerwort an dem F-Eingangsanschluss des Pixelauswahl-ROMs 100 über den Bus 45 empfangen. Dieses horizontale 4-Bit gebrochene Vergrößerungs-Steuerwort wird verwendet, um in oben stehende Tabelle 1 eingetragen zu werden und das richtige 4-Bit-Steuerwort (für jedes der Pixel 0–3, 4–7, 8–11 oder 12–15), das über den Bus 113 zu jedem beliebigen Zeitpunkt auf den Multiplexer-Antriebs-ROM 102 übertragen werden soll, zu erhalten. Ein Zwei-Bit-Binärzähler existiert in dem Pixelauswahl-ROM 100, der einen der vier Sätze von ausgewählten 4-Bit-Pixeln auf jedem Vergrößerungsniveau aufeinanderfolgend auswählt. Dieser Zähler rechnet nach jeder Takteingabe von dem Bus 111 aufeinanderfolgend auf. Für eine Vergrößerung um 8/16 ist das empfangene horizontale 4-Bit gebrochene Vergrößerungs-Steuerwort ein binäres 1000 (Dezimal-8) und das übertragene 4-Bit-Steuerwort für jedes der vier Pixel 0–3, 4–7, 8–11 und 12–15 ist als binäres 0101 kodiert, um 8 „1" in den 16 Bits bereitzustellen. Jedes 4-Bit-Steuerwort ist an dem B-Eingangsanschluss des Multiplexer-Antriebs-ROMs 102 zur Verwendung, unter anderem, mit dem ganzzahligen Vergrößerungs-Steuersignal, das an dem I-Eingangsanschluss über den Bus 45 empfangen wird, um ein 16-Bit-Steuerwort zu erzeugen, das von dem O-Ausgangsanschluss auf den B-Eingangsanschluss des Pixelmultiplexers 108 über den Bus 120 übertragen wird, empfangen.
  • Für Vergrößerungen größer als Einheit werden vorgegebene Pixel mehr als einmal übertragen, um ein Erweiterungsmerkmal bereitzustellen. Genauer werden in dem Vergrößerungsbereich von 1 zu 1 und 15/16 alle Pixel einmal übertragen und gewisse Pixel werden ein zweites Mal übertragen, wie in der Tabelle 1 für einen beliebigen verwendeten gebrochenen Vergrößerungsabschnitt angegeben. Zum Beispiel werden für eine Vergrößerung um 1 und drei Sechzehntel alle Pixel einmal übertragen (für die Vergrößerung um 1) und die Pixel 0, 5 und 10 werden ein zweites Mal (für eine 3/16 Vergrößerung) übertragen. Ähnlicherweise wird für einen Vergrößerungsbereich von 2 zu 2 und 15/16 jedes Pixel für den ganzzahligen Abschnitt der Vergrößerung zwei mal übertragen und gewisse Pixel werden ein drittes Mal übertragen, wie in Tabelle 1 für einen beliebigen gebrochenen Abschnitt der Vergrößerung angegeben, übertragen. Außerdem wird auch für einen Vergrößerungsbereich von 3 zu 3 und 15/16 jedes Pixel mit einer vierten Pixelübertragung mindestens drei mal übertragen, je nach einem beliebigen gebrochenen Teil der Vergrößerung wie in Tabelle 1 gezeigt.
  • Nun mit Bezug auf 8, 9 und 10 wird ein Transfer von vier Pixeln zwischen einem 32-Bit-Eingabepuffer 130 und einem 32-Bit-Ausgabepuffer 131 während eines ersten Wort-Zeit 0 Zyklus und eines zweiten Wort-Zeit 1 Zyklus in Pixelmultiplexer 108 (in 7 gezeigt) für eine Vergrößerung um 1; 0,5 bzw. zweieinhalb gezeigt. Es versteht sich, dass der Pixelmultiplexer 108 nur einen einfachen Eingabepuffer 130 und einen einfachen Ausgabepuffer 131 beinhaltet und dass die Puffer 130 und 131 während jedes darauffolgenden Zyklus zur Ausführung von Multiplextransfers verwendet werden. Wie in 8 gezeigt, werden alle Pixel ohne jegliche gebrochene Vergrößerung nur einmal verwendet. Daher werden Daten für vier 8-Bit-Pixel 0, 1, 2 und 3 in dem Eingabepuffer 130 über den Bus 39 (in 7 gezeigt) während eines Wort-Zeit 0 Zyklus in die Pixelstellen P0, P1, P2 bzw. P3 eingegeben. Der Pixelmultiplexer 108 spricht auf das 16-Bit-Steuersignal auf dem Bus 120 von dem Multiplexer-Antriebs-ROM 102 (in 7 gezeigt) an, um zu bewirken, dass die Pixel 0, 1, 2 und 3 direkt auf die Pixelstellen P0, P1, P2 bzw. P3 in dem Ausgabepuffer 131 übertragen (gemultiplext) werden. Sobald der Ausgabepuffer 131 ausgefüllt ist, werden die 32 Bits Daten für die vier darin gespeicherten Pixel auf den Pixelanordnungspuffer 52 (in 2 gezeigt) über den Bus 51 übertragen und der Ausgabepuffer 131 ist für vier anschließende Transfers bereit. Ähnlicherweise werden während eines nächsten Wort-Zeit 1 Zyklus nächste vier 8-Bit-Pixel 4, 5, 6 und 7 in die Pixelstellen P0, P1, P2 bzw. P3 in dem Eingabepuffer 130 über den Bus 39 eingegeben und werden direkt auf die Pixelstellen P0, P1, P2 bzw. P3 in dem Ausgabepuffer 131 übertragen und auf den Pixelanordnungspuffer 52 übertragen. Dieser Vorgang fährt während der restlichen acht Pixel (Pixel 8–15) einer 16-Pixel-Gruppe während eines Wort-Zeit 2 Zyklus und eines Wort-Zeit 3 Zyklus fort, um eine Pixelübertragung von sechzehn Pixeln, die in Sätzen von vier Pixeln von dem Grafikspeicher 38 (in 2 gezeigt) über die Speicherkontroller- und Spritezustand-Maschine 42 (in 2 gezeigt) empfangen werden, auf den Pixelanordnungspuffer 52 zu vollenden.
  • Nun mit Bezug auf 9 werden Pixeltransfers für eine Vergrößerung um 0,5 während eines Wort-Zeit 0 und Wort-Zeit 1 Zyklus gezeigt. Da die erwünschte Vergrößerung weniger als Einheit ist, sind die einzigen Pixel, die verwendet werden, jene, die mit einer „1" in Tabelle 1 gekennzeichnet sind, die für eine Vergrößerung um 8/16 Pixel 0, 2, 4, 6, 8, 10, 12 und 14 sind. Daher werden während eines Wort-Zeit 0 Zyklus Daten für Pixel 0, 1, 2 und 3 einer Sechzehn-Pixel-Gruppe in die Pixelstellen P0, P1, P2 bzw. P3 des Eingabepuffers 130 eingegeben. Der Pixelmultiplexer 108 spricht auf das 16-Bit-Steuersignal auf dem Bus 120 von dem Multiplexer-Antriebs-ROM 102 (in 7 gezeigt) an, um zu bewirken, dass die Pixel 0 und 2 während des Wort-Zeit 0 Zyklus auf die Pixelstellen P0 bzw. P1 in dem Ausgabepuffer 131 übertragen werden. Während des nächsten Wort-Zeit 1 Zyklus werden nächste vier 8-Bit-Pixel 4, 5, 6 und 7 der 16-Pixel-Gruppe in die Pixelstellen P0, P1, P2 bzw. P3 in den Eingabepuffer 130 über den Bus 39 eingegeben und Pixel 4 (Stelle P0) und 6 (Stelle P2) werden auf die Pixelstellen P2 bzw. P3 in dem Ausgabepuffer 131 übertragen. Dieser letztgenannte Transfer von Pixeln 4 und 6 ist auch durch die gestrichelten Linien in dem Wort-Zeit 0 Zyklus gezeigt, da es tatsächlich zwischen der einzelnen Eingabe- und Ausgabepuffern 130 bzw. 131 während des Wort-Zeit 1 Zyklus geschieht. Wenn der Ausgabepuffer 131 gefüllt ist, werden die 32 Bits Daten für die vier darin gespeicherten Eingabepixel (0, 2, 4 und 6) während des Wort-Zeit 1 Zyklus über den Bus 51 auf den Pixelanordnungspuffer 52 (in 2 gezeigt) hinaus übertragen. Dieser Vorgang fährt auf entsprechende Weise während der restlichen acht Pixel (Pixel 8–11 und 12–15) der Sechzehn-Pixel-Gruppe während eines Wort-Zeit 2 Zyklus und eines Wort-Zeit 3 Zyklus fort, um eine Pixelübertragung der empfangenen Pixel 0, 2, 4, 6, 8, 10, 12 und 14 auf den Pixelanordnungspuffer 52 für die erwünschte Vergrößerung um 0,5 zu vollenden.
  • Nun mit Bezug auf 10 werden Pixeltransfers für eine Vergrößerung um zweieinhalb während des Wort-Zeit 0 und Wort-Zeit 1 Zyklus gezeigt. Mit der erwünschten Vergrößerung der ganzzahligen zwei wird jedes Pixel zwei mal verwendet, und für die gebrochenen Vergrößerungswert von 0,5 (8/16) sind die einzigen Pixel, die ein drittes Mal verwendet werden, jene Pixel, die mit einer „1" in Tabelle 1 angedeutet sind, welche für eine Vergrößerung um 8/16 Pixel 0, 2, 4, 6, 8, 10, 12 und 14 sind. Wo ein Pixel mehr als einmal verwendet wird, wird es zu nahe angrenzenden Pixelstellen des Ausgabepuffers 131 transferiert. Daher werden während eines Wort-Zeit 0 Zyklus Daten für Pixel 0, 1, 2 und 3 einer 16-Pixel-Gruppe in Pixelstellen P0, P1, P2 bzw. P3 des Eingabepuffers 130 eingegeben. Der Pixelmultiplexer 108 spricht auf das 16-Bit-Steuersignal auf dem Bus 120 von dem Multiplexer-Antriebs-ROM 102 (in 7 gezeigt) an, um zu bewirken, dass Pixel 0 während des Wort-Zeit 0 Zyklus für die ganzzahlige Vergrößerung um zwei auf die Pixelstellen P0 und P1 des Ausgabepuffers 131 übertragen wird und dass Pixel 0 auch auf Pixelstelle P2 des Ausgabepuffers 131 für den Vergrößerungsabschnitt von 0,5 übertragen wird. Daher wird Pixel 0 drei mal verwendet. Des Weiteren wird das Pixel 1 in der Pixelstelle P1 während des Wort-Zeit 0 Zyklus auch zu der Pixelstelle P3 in dem Ausgabepuffer 131 übertragen. Wenn der Ausgabepuffer 131 mit Daten für vier Pixel gefüllt ist, wird das 32-Bit-Wort über den Bus 51 auf den Pixelanordnungspuffer 52 übertragen und der Ausgabepuffer 131 ist bereit, weitere Transfers zu akzeptieren. Während des nächsten Wort-Zeit 1 Zyklus werden die Daten für Pixel 0–3, die bereits in dem Eingabepuffer 130 vorhanden sind, verwendet, weil nur ein Abschnitt der Pixel während des Wort-Zeit 0 Zyklus transferiert wurde. Genauer wurden die Daten für Pixel 1 an der Eingabepixelstelle P1 in dem Eingabepuffer 130 zu der Pixelstelle P0 in dem Ausgabepuffer 131 transferiert, um die zweimalige Verwendung von Pixel 1 für den Vergrößerungswertabschnitt 2 zu vollenden. Da Pixel 1 nicht für eine Vergrößerung um 8/16 verwendet wird, ist der Transfer von Eingabepixel 1 vollständig. Da der Eingabepixel 2 für eine Vergrößerung um zweieinhalb drei mal verwendet wird, wird das Pixel 2 an der Pixelstelle P2 des Eingabepuffers 130 an jede Pixelstelle P1–P3 des Ausgabepuffers 131 transferiert. Wenn der Ausgabepuffer 131 wiederum mit Daten für vier Pixel ausgefüllt ist, wird das 32-Bit-Wort über den Bus 51 auf den Pixelanordnungspuffer 52 übertragen. Der Transfer von Pixelstellen P1 und P2, die während des Wort-Zeit 1 tatsächlich vorkommen, ist mit gestrichelten Linien in dem Wort-Zeit 0 Zyklus dargestellt, da nur ein Eingabe- und Ausgabepuffer 130 bzw. 131 tatsächlich anwesend ist. Dieser Vorgang geht für die zweimalige Verwendung der bereits gespeicherten Eingabepixelstelle P3 und die zwei- oder dreimalige Verwendung jeder der anderen zwölf Pixel (Pixel 4–15) der Sechzehn-Pixel-Gruppe während des darauftolgenden Wort-Zeit-Zyklus zum richtigen Transferieren jedes der Pixel 3–15, die eine Gruppe von 16 Pixeln ausmachen, weiter.
  • Nun zurückkehrend zu 7, empfängt der Multiplexer-Antriebs-ROM 102 (a) den ganzzahligen Abschnitt des Vergrößerungswerts über den Bus 45, (b) ein Steuersignal, das angibt, welche Pixel in jeder 4-Pixel-Gruppe für den gebrochenen Abschnitt des Vergrößerungswerts von dem Pixelauswahl-ROM 100 über den Bus 113 verwendet werden sollen, (c) ein 2-Bit-Steuersignal von dem Offsetsteuerungs-2-Bit-Addieren 106, das eine Wortausrichtung (Offset) über den Bus 116 definiert, und (d) ein 3-Bit- Steuersignal von dem Zyklussteuerungs-3-Bit-Addierer 104 über den Bus 117. Aus diesen Eingangssignalen erzeugt der Multiplexer-Antriebs-ROM 102 ein 16-Bit-Ausgangssignal zur Übertragung auf den Pixelmultiplexer 108 über den Bus 120. Der Multiplexer-Antriebs-ROM 102 speichert eine Sequenz von 16-Bit-ROM-Codes, die jeweils eine separate, erwünschte ganzzahlige und/oder gebrochene Vergrößerung, eine Wortausrichtung (Offset) und einen Wort-Zeit-Zyklus, in dem einer der ROM-Codes während jedes Wort-Zeit-Zyklus als ein 16-Bit-Steuerwort an den Pixelmultiplexer 108 ausgegeben wird, definiert.
  • Nun mit Bezug auf 11 und 12 wird eine erste bzw. eine mittlere Seite einer mehrseitigen 3,5 Megabyte Excel-Kalkulationstabelle gezeigt, die die Funktionsweise des Multiplexer-Antriebs-ROMs 102 darstellt. Die Kalkulationstabelle beinhaltet vier Spalten, die als „Eingangscode" bezeichnet sind, die Codes für (a) einen 2-Bit „ganzzahligen" Code für einen ganzzahligen Vergrößerungscode, der eine 0, 1, 2 oder 3 ganzzahlige Vergrößerung, die über den Bus 45 empfangen wird, darstellt, (b) einen 2-Bit-„Offset-" Code, der einen 0, 1, 2 oder 3 Offset, der von dem Oftsetsteuerungs-2-Bit-Addierer 106 über den Bus 116 empfangen wird, darstellt, (c) einen 4-Bit-„Auswahl-"Code, der einen gebrochenen Vergrößerungswert in Schritten von einem Sechzehntel in dem Bereich von 0 bis 15/16, der von dem Pixelauswahl-ROM 100 über den Bus 113 empfangen wird, darstellt, und (d) einen 3-Bit „Zyklus-"Code, der einen von 0, 1, 2, 3, 4, 5, 6 oder 7 Wort-Zeit-Zyklen, der von dem Zyklussteuerungs-3-Bit-Addierer 104 über den Bus 117 empfangen wird, darstellt, angeben. Beispielsweise gibt der „ganzzahlige" Binärcode von 10 auf der Zeile, die in 12 als 135 bezeichnet wird, eine dezimale Vergrößerung um 2 an, der „Offset-"Binärcode von 11 gibt einen Offset von 3 Zählungen an, der „Auswahl-"Binärcode von 0000 gibt eine gebrochene Vergrößerung um 0 an und der „Zyklus-"Binärcode von 000 gibt einen Wort-Zeit-Zyklus von 0 an. Mit anderen Worten wird Zeile 135 verwendet, wenn die Eingangssignale während eines Wort-Zeit-Zyklus 0 mit einem Offset von 3 Zählungen eine Vergrößerung um genau 2,0 angeben.
  • Es versteht sich, dass ein Zustand existieren kann, bei dem der Ausgabepuffer 131 (in 810 gezeigt) nach dem vollständigen Transfer von vier Pixeln eines ersten 4-Pixel-Worts vielleicht nicht vollständig leer ist und ein zweites 32-Bit-Eingabewort von vier Pixeln auf einem Bus 39 empfangen wird. Dies kann das Verdrehen eines Pixels in dem zweiten Eingabewort, das sich in einer bestimmten Pixelstelle des Eingabepuffers 130 (in 810 gezeigt) befindet, zu einer anderen Pixelstelle in dem Ausgabepuffer 131 erfordern, wenn die vorhergehenden Transfers den Ausgabepuffer 131 nicht ausfüllten. Daher wird ein Eingabepixel an der Pixelstelle P0 des Eingabepuffers 130 (a) direkt an die Pixelstelle P0 des Ausgabepuffers 131 für einen Offset von 0 transferiert, (b) an die Pixelstelle P1 des Ausgabepuffers 131 für einen Offset von 1 transferiert, (c) an die Pixelstelle P2 des Ausgabepuffers 131 für einen Offset von 2 transferiert und (d) an eine Pixelstelle P3 des Ausgabepuffers 131 für einen Offset von 3 transferiert. Genauer würde die Zeile 135 aus 12 für Eingangssignale verwendet werden, die während eines Wort-Zeit-Zyklus 0 mit einem Offset von 3 Zählungen eine Vergrößerung um genau 2,0 angeben. Mit anderen Worten wird der Offsetcode verwendet, um die Eingabepixel in dem Eingabepuffer 130 an eine angegebene Ausgabepixelstelle in dem Ausgabepuffer 131 gleiten zu lassen. Daher bestimmen die vier Eingangssignale, welche Zeile der Kalkulationstabelle verwendet wird, um ein 16-Bit-Ausgangssignal (in der ROM-Code-Spalte gezeigt), das durch den Multiplexer-Antriebs-ROM 102 auf den Pixelmultiplexer 108 (in 7 gezeigt) über den Bus 120 übertragen wird, zu erzeugen. Sobald eine Zeile (z. B. Zeile 135 oder 138 in 12) der Kalkulationstabelle für eine bestimmte Vergrößerung, einen Offset und einen Wort-Zeit-Zyklus von 000 für den Beginn von Transfers für eine 4- Pixel-Gruppe verwendet wird, werden die darauffolgenden Zeilen (z. B. Zeilen 136137 oder 139140) der Kalkulationstabelle für darauffolgende Zyklen verwendet, bis der 4-Pixel-Transfer vollständig ist.
  • In der Mitte der Kalkulationstabelle sind 16 Multiplexerverbindungen [Muxer-Verbindungen (von-bis)) Spalten gezeigt, die angeben, welches Eingabepixel in dem Eingabepuffer 130 auf welche Ausgabepixelstelle in dem Ausgabepuffer 131 während eines Wort-Zeit-Zyklus transferiert wird. Die Zeile unmittelbar unter dem Titel Muxer-Verbindungen (von-bis) zeigt vier 0, vier 1, vier 2 und vier 3 in Folge von rechts nach links, wobei eine 0, 1, 2 oder 3 jeweils ein ankommendes Pixel 0, 1, 2 bzw. 3in dem Eingabepuffer 130 darstellt. Die nächste Zeile darunter zeigt vier Gruppen von 0, 1, 2 und 3 in Folge von rechts nach links, wobei eine 0, 1, 2 oder 3 jeweils ein ausgehendes Pixel 0, 1, 2 bzw. 3 in dem Ausgabepuffer 131 darstellt. Genauer ist auf Zeile 135 in 12 eine einzelne „1" in der Muxer-Verbindungen-Spalte gezeigt, die angibt, dass während eines Zyklus 0 mit einem Offset von 3 ein Transfer des ankommenden Pixels 0 in dem Eingabepuffer 130 zu dem ausgehenden Pixel 3 in dem Ausgabepuffer 131 gemacht wird. Ein derartiger Transfer füllt den Ausgabepuffer 131, der vorhergehend transferierte Pixel in den Pixelstellen P0–P2 speicherte, aus, und die gespeicherten Pixeldaten in dem Ausgabepuffer 131 werden auf den Pixelanordnungspuffer 52 über den Bus 49 übertragen. Somit wurde das von weit her ankommende Pixel 0 nur einmal in dem Wort-Zeit-Zyklus 0 für die Vergrößerung um 2 verwendet.
  • Während des nächsten Zyklus 1, der auf Zeile 136 der 12 gezeigt ist, geben die „1" in der Muxer-Verbindungen-Spalte an, dass das ankommende Pixel 0 auf das Ausgabepixel 0 transferiert wird, um die Verwendung des ankommenden Pixels 0 für die Vergrößerung um 2 zu vollenden, das ankommende Pixel 1 auf die ausgehenden Pixel 1 und 2 transferiert wird, um die doppelte Verwendung des ankommenden Pixels 1 zu vollenden und das ankommende Pixel 2 auf das ausgehende Pixel 3 transferiert wird. Ein derartiger Transfer füllt den Ausgabepuffer 131, und die gespeicherten Daten in dem Ausgabepuffer 131 werden dann über den Bus 51 auf den Pixelanordnungspuffer 52 übertragen. Während des nächsten Zyklus 2, der auf Zeile 137 der 12 gezeigt ist, geben die „1" in den Muxer-Verbindungen-Spalten an, dass das ankommende Pixel 2 auf das Ausgabepixel 0 transferiert wird, um die Verwendung des ankommenden Pixels 2 für die Vergrößerung um 2 zu vollenden, und das ankommende Pixel 3 wird auf die ausgehenden Pixel 1 und 2 transferiert, um die doppelte Verwendung des ankommenden Pixels 3 zu vollenden. Dies vollendet den Transfer der Pixel 0–3, die in dem Eingabepuffer 130 für Parameter einer Vergrößerung um 2 mit einem Offset von 3 gespeichert sind, wofür aufgrund des anfänglichen Offsets von 3 anstelle von 2 Zyklen 3 Zyklen zur Vollendung benötigt wurden. Da der Ausgabepuffer 131 immer noch Platz für ein weiteres Pixel in dem Ausgabepixel 3 des Ausgabepuffers 131 aufweist, wird das ausgehende Pixel 3 mit einem ersten Transfer eines zweiten 32-Bit-4-Pixel-Wort gefüllt, das in dem Eingabepuffer 130 über den Bus 45 empfangen wird, indem beispielsweise die Zeilen 135137 der 12 wieder verwendet werden oder eine andere Zeile in der Kalkulationstabelle mit einem Offset von 3 und einem Zyklus von 0 und einer vorgegebenen Vergrößerung. Es versteht sich, dass in der Kalkulationstabelle die Ausgabeseite nur maximal vier Pixel in einer beliebigen Reihe unterbringen kann, wobei das Maximum von vier Pixeln zu Ausgabepixelstellen 0, 1, 2 und 3 transferiert werden muss. Dies trifft zu, weil in einem beliebigen Zyklus nicht mehr als ein Pixel an eine beliebige der Ausgabepixelstellen des Ausgabepuffers 131 transferiert werden kann.
  • Die linke Spalte der Kalkulationstabelle stellt „ROM-Codes" bereit, die 16-Bit-Codes sind, welche von dem Multiplexer-Antriebs-ROM 102 während aufeinanderfolgenden Wort-Zeit-Zyklen ausgegeben werden. Der Pixelmultiplexer 108 verwendet ROM-Codes, um erwünschte Pixeltransfers von vier Pixeln, die gegenwärtig in einem 32-Bit-Pixeldatenwort in dem Eingabepuffer 130 gespeichert sind, auf den Ausgabepuffer 131 zu bewirken. Das 16-Bit-Ausgangs-Steuersignal von dem Multiplexer-Antriebs-ROM 102 steuert auch ein Zwischenspeichern der Ausgaben des Pixelmultiplexers 108 in einem endgültigen 32-Bit-Ausgabepuffer, wie hier später genauer erläutert werden wird. Genauer ist der ROM-Code auf jeder Zeile lediglich ein 16-Bit-Code, der die binäre Version der 16-Muxer-Verbindungen-Spalten der Kalkulationstabelle darstellt. Beispielsweise ist der ROM-Code auf Zeile 135 aus 12 als 0008 gezeigt, der ein hexadezimaler Code ist, der, von rechts nach links, einen Binärwert für die 4 Spalten der Muxer-Verbindungen für ankommende Pixel 3333, 2222, 1111 bzw. 0000 darstellt. Mit anderen Worten stellt eine „1000" in den vier am weitesten rechts liegenden Muxer-Verbindungen-Spalten für die vier ankommenden Pixel 0 Spalten auf Zeile 135 eine binäre 8 dar, welche die am weitesten rechts liegende hexadezimale Code-Zahl des 0008 ROM-Codes bildet. Ähnlicherweise sind alle anderen Muxer-Verbindungen-Spalten auf Zeile 135 Nullen für die vier ankommenden Pixel 1, 2 und 3 Spalten, um die 000 hexadezimalen Codes, welche die 000 hexadezimalen Codes, die den am weitesten links liegenden Rest des 0008 ROM-Codes bilden, bereitzustellen. Die ROM-Codes für jede der anderen Reihen der Kalkulationstabelle können auf eine selbe Weise von den damit verbundenen Muxer-Verbindungen-Spalten bestimmt werden. Es versteht sich, dass ein hexadezimaler Code von den Buchstaben A bis F reicht, wobei ein „C" in einem ROM-Code eine binäre 1100 (dezimale 12) angibt und ein „E" eine binäre 1110 (dezimale 14) angibt. Die Buchstaben A, B, C, D, E und F können an bestimmten Positionen eines ROM-Codes gefunden werden, um eine dezimale Zahl 10, 11, 12, 13, 14 bzw. 15 darzustellen.
  • Eine „Steuerwort-" Spalte und eine „Überlauf-" Spalte (ON-Spalte) in der Kalkulationstabelle geben an, ob mehr verfolgt werden muss, um einen Transfer von Pixeln in einem Vier-Pixel-32-Bit-Wort zu vollenden oder nicht. Genauer ist der Steuercode ein 2-Bit-Code, der auf den Offsetsteuerungs-2-Bit-Addierer 106 (in 7 gezeigt) über den Bus 115 übertragen wird, um den zu verwendenden Oftsetwert zu berechnen. Der Offsetsteuerungs-2-Bit-Addierer 106 überträgt dann den bestimmten 2-Bit-Offset-Code, der in der Offset-Eingabecodespalte der Kalkulationstabelle gezeigt ist, zurück auf den Multiplexer-Antriebs-ROM 102 über den Bus 116. Eine „4" in der Steuerungscodespalte gibt gewissermaßen an, dass nun nach dem/den angegebenen Transfers) in dem Ausgabepuffer 131 4 Pixel vorhanden sind. Auf Zeile 135 in 12 füllt daher der Transfer der 0 ankommenden Pixel auf die 3 ausgehenden Pixel (in der Muxer-Verbindungen-Spalte gezeigt) den Ausgabepuffer 131 mit „4" Pixeln aus. Auf Zeile 136 werden wiederum vier Pixel transferiert, um den Ausgabepuffer 131 zu füllen. Auf Zeile 137 werden drei Eingabepixel auf die Ausgabepixel 0, 1 und 2 transferiert, was das Ausgabepixel 3 für einen nächsten Satz Transfers verfügbar macht. Da dieser Zustand gefüllter Ausgabepixel in dem Ausgabepuffer 131 genau derselbe ist wie vor dem Beginn der Transfers auf Zeile 135, ändert sich der Offset nicht und der Steuercode gibt eine „0" an, was bedeutet, dass in dem Offset keine Änderung gemacht werden soll. Mit anderen Worten ändert sich dort, wo die gesamte Anzahl Transfers für ein 4-Pixel-Wort ein Vielfaches von 4 ist, der Offset für darauffolgende Transfers eines nächsten aufeinanderfolgenden 4-Pixel-Worts nicht. Auf Zeilen 135137 entspricht die gesamte Anzahl Transfers, die in den Muxer-Verbindungen-Spalten gezeigt sind, 8 Pixeltransfers. Daraus, dass diese Anzahl Pixeltransfers ein Vielfaches von 4 ist, resultiert, dass der Offset von 3 derselbe bleibt und dass eine „0" in der Steuercodespalte auf Zeile 137 ist. Auf Zeilen 138140 in 12 ist eine Gesamtzahl von 9 Pixeltransfers gezeigt, die in den Muxer-Verbindungen-Spalten gezeigt sind, um die Transfers des 4-Pixel- Worts während der Zyklen 0–2 zu vollenden. Demzufolge gibt eine „1" in dem Steuercode auf Zeile 140 an, dass der Oftsetcode, der in dem nächsten 4-Pixel-Wort zum Transfer von Pixeln verwendet werden soll, von dem gegenwärtigen 3 Offset zu einem neuen 0 Offset um „1" erhöht werden sollte.
  • Eine „1" in der „O/V-"Spalte (Überlauf-Spalte) gibt an, dass mehr Pixeltransfers nötig sind, um die 4-Pixel-Transfers zu vollenden, nachdem die in den Muxer-Verbindungen-Spalten auf jener Zeile gezeigten Transfers vollendet sind. Eine „0" in der „O/V-"Spalte gibt an, dass die Transfers, die nötig sind, um die 4-Pixel-Transfers zu vollenden, vollendet sind, nachdem die in den Muxer-Verbindungen-Spalten auf jener Zeile gezeigten Transfers vollendet sind. Die verbleibende am weitesten rechts liegende Spalte „Aktive Zeile" umfasst eine „1 ", wenn ein Zyklus mindestens einen Pixeltransfer umfasst, und eine „0", wenn ein Zyklus nicht mindestens einen Pixeltransfer umfasst. Es versteht sich, dass der Multiplexer-Antriebs-ROM 102 nur die ROM-Codes, die in den am weitesten links liegenden Spalten der Kalkulationstabelle gezeigt sind, speichert und die gleichzeitig empfangenen vier „Eingabecodes" verwendet, um in die Kalkulationstabelle zu schauen und zu bestimmen, welcher 16-Bit-Code während jedes Zyklus über den Bus 120 an den Pixel-Multiplexer 108 übertragen wird. Der Pixelmultiplexer 108 verwendet den 16-Bit-ROM-Code, der während jedes Zyklus bereitgestellt ist, um die angegebenen Pixeltransfers auszuführen. Es versteht sich, dass die Kalkulationstabelle Zeilen umfasst, die jede der möglichen Bedingungen für die vier Eingabecodespalten abdecken.
  • Nun zurück zu 7, wo der Zyklussteuerungs-3-Bit-Zähler 104 das Taktsignal am Eingangsanschluss C empfängt und einen 3-Bit „Zyklus-" Code, der in der Kalkulationstabelle zur Übertragung an den Multiplexer-Antriebs-ROM 102 über den Bus 117 gezeigt ist, erzeugt. Der Multiplexer- Antriebs-ROM 102 überträgt ein „Halten-" Signal zurück an den Zyklussteuerungs-3-Bit-Zähler 104 über den Leiter 118. Das „Halten-" Signal ist der in der O/V-Spalte in der Kalkulationstabelle gezeigte Code. Eine „1" in der O/V-Spalte erzeugt ein „Halten-" Signal und gibt an, dass die Eingabepixel, die in dem Eingabepuffer 130 gespeichert sind, gehalten werden sollen, weil mindestens noch ein Zyklus erforderlich ist, um die Transfers des gegenwärtigen 4-Pixel-Worts zu vollenden. Das „Halten-" Signal erlaubt es einem Zykluszähler in dem Zyklussteuerungs-3-Bit-Zähler 104 weiter zu laufen und hindert den Pixelauswahl-ROM 100 daran, dem Multiplexer-Antriebs-ROM 102 über den Bus 113 einen neuen gebrochenen Vergrößerungswert bereitzustellen. Dies hält den gebrochenen Vergrößerungswert bei, bis alle Transfers für ein 4-Pixel-Wort während der notwendigen Zyklen für einen bestimmten Vergrößerungswert vollendet sind.
  • Die Vergrößerungsverarbeitung wurde oben lediglich in der horizontalen oder X-Richtung beschrieben. Es versteht sich, dass die Vergrößerungsfaktoren in der X- und Y- (vertikalen) Richtung unabhängig voneinander eingestellt werden können. Die Verarbeitung der Vergrößerungsfaktoren in der vertikalen Richtung (Y-Richtung) ist unkomplizierter als die Verarbeitung der Vergrößerungsfaktoren in der horizontalen Richtung (X-Richtung). Die Verarbeitung der Vergrößerungsfaktoren in der vertikalen Richtung wird in der in 2 gezeigten Speicherkontroller- und Spritezustand-Maschine 42 durchgeführt.
  • Nun mit Bezug auf 13 ist ein Blockschaltbild einer vertikalen Logikschaltung 160 (in einem Rechteck mit gestrichelter Linie gezeigt) zur Verarbeitung von Vergrößerungsfaktoren in eine vertikale Richtung gemäß der vorliegenden Erfindung gezeigt. Die vertikale Logikschaltung 160 wird auch als ein erstes Vergrößerung modifizierendes Mittel bezeichnet. Die vertikale Logikschaltung 160 beinhaltet einen Subtrahieren 161, einen 1/Vergrößerungs-Festwertspeicher (1/VERGR.-ROM) 164 (auch als ein Vergrößerung umkehrendes Mittel bezeichnet) und einen Vervielfachungsschaltkreis (VERVIELFACHUNG) 168 (auch als Vervielfachungsmittel bezeichnet). Der Subtrahieren 161 empfängt ein Y-Zeilen-Zählsignal über einen Bus 162, welches angibt, auf welche der 525 horizontalen Zeilen in einem Standard-NTSC-Videobild zur Anzeige auf einem Fernsehempfänger gegenwärtig zugegriffen wird. Das Y-Zeilen-Zählsignal wird von einem Zeilenzähler (nicht gezeigt) in der Speicherkontroller- und Spritezustand-Maschine 42 erhalten. Der Subtrahierer 161 empfängt auch ein Y-Spritepositionssignal über einen Bus 163, das ursprünglich von den Spritesteuerungen in einem bestimmten Spriteeintrag, der in dem in 2 gezeigten Grafikspeicher 38 gespeichert ist, erhalten wird. Das Y-Spritepositionssignal gibt die Startzeilenzahl eines Sprites (einer Grafik), das (die) verarbeitet wird, an. Der Subtrahierer 161 subtrahiert einen Y-Spritepositionscode von dem Wert des gegenwärtig empfangenen Y-Zeilenzählsignals, um ein resultierendes Spritezeilenausgangssignal, das auf einem Bus 167 auf den Vervielfachungsschaltkreis 168 übertragen wird, zu erzeugen. Der 1/Vergrößerungs-ROM 164 wird als ein 1/Vergrößerungsfaktor kodiert und wird verwendet, um ein Ausgangssignal über einen Bus 166 zu erzeugen, das angibt, wie viele Zeilen übersprungen oder wiederholt werden sollen. Genauer empfängt der 1/Vergrößerungs-ROM 164 einen gegenwärtigen Vergrößerungsfaktor (VERGR.), der über einen Bus 165 verwendet werden soll, und wandelt diesen empfangenen Vergrößerungsfaktor zur Übertragung über den Bus 166 auf den Vervielfachungsschaltkreis 168 in einen umgekehrten davon (1/VERGR.) um. Auf diese Weise trennt die Logik des Vervielfachungsschaltkreises 168 das Spritezeilenzählungs-Ausgangssignal, das über den Bus 167 durch den Vergrößerungsfaktor empfangen wurde, der durch den 1/Vergrößerungs-ROM 164 über den Bus 165 empfangen wurde, tatsächlich. Eine Vergrößerung um 0,5, die auf dem Bus 165 empfangen wird, wird beispielsweise von dem 1/Vergrößerungs-ROM 164 in ein Ausgabevergrößerungssignal von 2,0 übersetzt, das auf dem Bus 166 auf den Vervielfachungsschaltkreis 168 übertragen wird. Gleichzeitig weist, wenn die Y-Zeilen-Zählung einen Wert von beispielsweise 110 aufweist und das Y-Sprite-Startpositionssignal eine Startzeile für das Sprite von beispielsweise 110 angibt, die Spritezeile, die von dem Subtrahierer 161 über den Bus 167 übertragen wurde, dann einen Wert von 0 auf. Der Vervielfachungsschaltkreis 168 multipliziert dann die Zahl 0 der Spritezeile, die über den Bus 167 empfangen wurde, mit der Vergrößerung von 2,0, die über den Bus 166 empfangen wurde, um über den Bus 169 ein Ausgabe-Spritezeilen-Adressensignal von 0 zu produzieren. In einer nächsten Zeitspanne liegt die Y-Zeilen-Zählung bei einem Wert von 111 und das Y-Spritezeilen-Startpositionssignal gibt immer noch eine Startzeile für das Sprite als 110 an, dann weist die Spritezeile, die von dem Subtrahierer 161 über den Bus 167 übertragen wurde, einen Wert von 1 auf. Der Vervielfachungsschaltkreis 168 multipliziert dann die Zahl 1 der Spritezeile, die über den Bus 167 empfangen wurde mit der Vergrößerung von 2,0, die über den Bus 166 empfangen wurde, um über den Bus 169 ein Ausgabe-Spritezeilen-Adressensignal von 2 zu produzieren. Während also die Y-Zeilen-Zählung auf dem Bus 167 während jeder darauffolgenden Spanne um eins zunimmt, nimmt das Ausgabe-Spritezeilen-Adressensignal über den Bus 169 um 2 zu. Ein derartiges Ausgabe-Spritezeilen-Adressensignal auf dem Bus 169 verursacht, dass jede zweite (geradzahlige) Zeile eines Sprites verwendet wird und dass die ungeraden Zeilen des Sprites übersprungen werden, um eine Spritegröße von einem halben Bild zu produzieren. Ähnlich wird eine Vergrößerung um 2, die auf dem Bus 165 empfangen wird, von dem 1/Vergrößerungs-ROM 164 in ein Ausgabevergrößerungssignal von 0,5 übersetzt, das auf dem Bus 166 auf den Vervielfachungsschaltkreis 168 übertragen wird. Daher erzeugen für den beispielhaften Zustand des Vervielfachungsschaltkreises 168, der aufeinanderfolgende Spritezeilenwerte von 0 und dann 1 von dem Subtrahierer 161 über den Bus 167 und eine Vergrößerung um 0,5 über den Bus 166 von dem 1/Vergrößerungs-ROM 164 empfängt, die anfallenden Vervielfachungen in der Vervielfachungsschaltung 168 Ausgabe-Spritezeilen-Adressensignale mit Werten von 0 und dann 0,5 auf dem Bus 169. Es versteht sich, dass der Vervielfachungsschaltkreis 168 nur den ganzzahligen Abschnitt einer anfallenden Vervielfachung ausgibt, wobei dies für den anfallenden Vervielfachungswert von 0,5 oben in einem Spritezeilen-Adressensignal mit einem Wert von 0 resultiert. Ähnlicherweise werden für Spritezeilen mit sukzessiven Werten von 2 und 3, die von dem Subtrahierer 161 über den Bus 167 empfangen wurden, und einer Vergrößerung um 0,5 über den Bus 166 von dem 1/Vergrößerungs-ROM 164, die beiden aufeinanderfolgenden Spritezeilen-Adressensignale, die während aufeinanderfolgenden Zyklen von dem Vervielfachungsschaltkreis 168 über den Bus 169 ausgegeben werden, jeweils einen Wert von 1 aufweisen. Deshalb wird für eine Vergrößerung um 2,0, die von dem 1/Vergrößerungs-ROM 164 über den Bus 165 empfangen wird, das Ausgabe-Spritezeilen-Adressensignal, das von dem Vervielfachungsschaltkreis 168 über den Bus 169 ausgegeben wird, stets zwei mal verwendet.
  • Nun mit Bezug auf 14 wird ein Stromlaufplan für die Implementierung eines ersten Abschnitts eines erfindungsgemäßen in 7 gezeigten Pixelpuffer-Datenrohrs und Vergrößerungsschaltkreises 98 gezeigt. Genauer zeigt 14 einen Pixelauswahl-Festwertspeicher (ROM) 100, einen Multiplexer-Antriebs-ROM 102, einen Zyklussteuerungs-3-Bit-Zähler 104 (in einem Rechteck mit gestrichelter Linie gezeigt), einen Offsetsteuerungs-2-Bit-Addierer 106 (in einem Rechteck mit gestrichelter Linie gezeigt), einen ersten Abschnitt eines Pixel-Multiplexers 108 (in einem Bereich mit gestrichelter Linie gezeigt) und einen Inverter 222.
  • Der Zyklussteuerungs-3-Bit-Zähler 104 beinhaltet einen ersten, zweiten, dritten, vierten und fünften D-Typ Flipflop, die als 200, 202, 204, 206 bzw. 208 bezeichnet sind, ein erstes und zweites 2-Eingabe-NAND-Glied, die als 210 bzw. 212 bezeichnet sind, und einen ersten, zweiten und dritten Inverter, die als 214, 216 bzw. 218 bezeichnet sind. Das extern erzeugte Taktsignal auf dem Leiter 110 ist mit einem Eingang des Inverters 214 gekoppelt, dessen Ausgang mit einem TAKT-Eingangsanschluss des Flipflops 200 gekoppelt ist. Der Flipflop 202 empfängt direkt das extern erzeugte Taktsignal über einen Leiter 110 an einem TAKT-Eingangsanschluss. Der Flipflop 200 empfängt ein „Halten-" Signal an dem D-Eingangsanschluss von einem Halten-Ausgangsanschluss des Multiplexer-Antriebs-ROMs 102. Ein Q-Ausgangsanschluss des ersten Flipflops 200 ist direkt mit einem D-Eingangsanschluss des zweiten Flipflops 202 gekoppelt. An NQ-Ausgangsanschlüssen des ersten und zweiten Flipflops 200 und 202 erzeugte Takt-Ausgangssignale sind jeweils mit einem separaten Eingang des ersten NAND-Glieds 210 verbunden. Der Ausgang des ersten NAND-Glieds 210, das ein „Nächstes-" Signal bereitstellt, ist mit einem Eingang des zweiten Inverters 216 gekoppelt, dessen Ausgang mit einem ersten Eingang des zweiten NAND-Glieds 212 und mit der Speicherkontroller- und Spritezustand-Maschine 42 gekoppelt ist. Das „Nächstes-"Signal gibt an, dass ein 4-Pixel-Transfer vollendet ist, um zu bewirken, dass ein nächstes 4-Pixel-Wort in den Pixel-Multiplexer 108 (in 7 gezeigt) über einen Bus 39 für anschließende Transfers, wie in 810 gezeigt, eingegeben wird. Das NAND-Glied 212 empfängt das Taktsignal an einem zweiten Eingang davon von dem Leiter 110. Ein Ausgang des NAND-Glieds 212 ist mit einem Eingang des Inverters 218 gekoppelt, dessen Ausgang mit einem TAKT-Eingang des Pixelauswahl-ROMs 100 und der Speicherkontroller- und Spritezustand-Maschine 42 (in 2 gezeigt) gekoppelt ist, um ein Anforderungssignal für ein nächstes Wort (WORT-ANF.) zu erzeugen, wenn der andere Eingang des NAND-Glieds 212 (von dem Inverter 216) hoch ist. Die Flipflops 200 und 202 empfangen jeweils ein umgekehrtes „TRANSFER-"Signal von einem Ausgang des Inverters 222 an einem deren R-Eingänge zum Rückstellen der Flipflops 200 und 202.
  • Der Flipflop 204 empfängt das Taktsignal von dem Leiter 110 an einem TAKT-Eingangsanschluss. Das Ausgangssignal von dem zweiten Inverter 216 ist mit R-Eingangsanschlüssen der Flipflops 204, 206 und 208 gekoppelt. (Q-Ausgänge der Flipflops 204, 206 und 208 sind über einen Bus 117 mit einem ZYKLUS-Eingang des Multiplexer-Antriebs-ROMs 102 verbunden. Die Flipflops 204, 206 und 208 erzeugen Bits 0, 1 bzw. 2 eines 3-Bit-Zykluscodes (binärer Bereich von 0–7) und übertragen das aufeinanderfolgend kodierte binäre Zyklusausgangssignal von ihren Q-Ausgangsanschlüssen auf einen ZYKLUS-Eingang des Multiplexer-Antriebs-ROMs über einen Bus 117. Ein D-Anschluss des Flipflops 204 ist mit einem NQ-Anschluss des Flipflops 204 und einem TAKT-Anschluss des Flipflops 206 verbunden. Ähnlicherweise ist ein D-Anschluss des Flipflops 206 mit einem NQ-Anschluss des Flipflops 206 und einem TAKT-Anschluss des Flipflops 208 verbunden. Ein D-Anschluss des Flipflops 208 ist mit einem NQ-Anschluss des Flipflops 208 verbunden. Die Flipflops 200 und 202, die NAND-Glieder 210 und 212 und die Inverter 214, 216 und 218 funktionieren so, dass sie einen gebrochenen Vergrößerungswert an dem Ausgang des Pixelauswahl-ROMs 100 halten, bis alle Transfers eines 32-Bit-4-Pixel-Worts in dem Pixelmultiplexer 108 vollendet sind. Außerdem stellen die Flipflops 204, 206 und 208 dem Multiplexer-Antriebs-ROM 102 auch die aufeinanderfolgenden Zyklussignale bereit, um die richtigen ROM-Codes (für 11 und 12 erläutert) während jedes Zyklus an den Pixelmultiplexer 108 zu senden.
  • Der Pixelauswahl-ROM 100 empfängt ein Taktsignal an einem TAKT-Eingangsanschluss von dem Zyklussteuerungs-3-Bit-Addierer 104 über ein den Bus 111, und ein Rücksteil-Signal (TRANSFER-Signal) an einem RÜCKSTELL-Eingangsanschluss über einen Inverter 222 und einen Leiter 224. Außerdem empfängt der Pixelauswahl-ROM 100 auch ein 4-Bit gebrochenes Vergrößerungssignal von der Speicherkontroller- und Spritezustand-Maschine an einem F-Eingangsanschluss über einen Bus 45. Ein 4-Bit-Ausgangssignal von einem Ausgangsanschluss (0) des Pixelauswahl-ROMs 100 wird auf einen B-Eingangsanschluss des Multiplexer-Antriebs-ROMs 102 über einen Bus 113 übertragen.
  • Der Offsetsteuerungs-2-Bit-Addieren 106 beinhaltet einen ersten und zweiten Addierer 230 und 232 und einen ersten und zweiten D-Typ-Flipflop 234 und 236. Die Addierer 230 und 232 empfangen jeweils Bits 0 und 1 eines 2-Bit „Anz. Pixel-" Signals an einem ersten Eingangsanschluss (A), das von einem NP-Ausgangsanschluss des Multiplexer-Antriebs-ROMs 102 über einen Bus 115 übertragen wurde. Einzelne Ausgangsanschlüsse (SUM) der Addierer 230 und 232 sind jeweils mit den D-Eingangsanschlüssen der Flipflops 234 und 236 gekoppelt. Die Ausgangssignale an den Ausganganschlüssen (Q) der Flipflops 234 und 236 stellen ein 0-Bit bzw. ein 1-Bit eines 2-Bit-Offsetsignals dar, das auf einen OFFSET-Eingangsanschluss des Multiplexer-Antriebs-ROMs 102 über einen Bus 116 übertragen wird. Des Weiteren werden auch die 1-Bit-Ausgangssignale des ersten und zweiten Flipflops 234 bzw. 236 in einen zweiten Eingangsanschluss (B) des ersten und zweiten Addierers 230 bzw. 232 rückgekoppelt. TAKT-Eingänge der Flipflops 234 und 236 sind mit dem Bus 111 gekoppelt, der mit dem Ausgang des Inverters 218 gekoppelt ist. Den Rückstell-Eingangsanschlüssen (R-Eingangsanschlüsse) jedes Flipflops 234 bzw. 236 wird auf dem Leiter 224 ein Rückstell-Signal (TRANSFER-Signal) bereitgestellt. Bei Betrieb empfangen der erste und zweite Addieren 230 bzw. 232 jeweils Bits 0 und 1 des 2-Bit-„Anz. Pixel-" Codes über den Bus 115 und erzeugen zusammen mit den Flipflops 234 und 236 Bits 0 bzw. 1 des 2-Bit-Offset-Signals. Der Offsetsteuerungs-2-Bit-Addierer 106 überträgt dann den bestimmten 2-Bit-Offset-Code (der in der Offset-Eingabecodespalte der Kalkulationstabelle von 11 und 12 gezeigt ist), zurück auf den Multiplexer-Antriebs-ROM 102 über den Bus 116.
  • Der Multiplexer-Antriebs-ROM 102 empfängt das 3-Bit-Zyklussignal von dem Zyklussteuerungs-3-Bit-Zähler an einem ZYKLUS-Eingangsanschluss über den Bus 117, das 4-Bit-Ausgangssignal an dem B-Eingangsanschluss von dem Pixelauswahl-ROM 100 über den Bus 113, das 2-Bit-Offset-Signal an dem OFFSET-Eingangsanschluss von dem Offsetsteuerungs-2-Bit-Addierer 106 über den Bus 116 und ein 2-Bit ganzzahliges Vergrößerungssignal (VERGR. <5:4>) an einem I-Eingangsanschluss von der Speicherkontroller- und Spritezustand-Maschine 42 über den Bus 45. Der Multiplexer-Antriebs-ROM 102 überträgt von einem O-Ausgang ein 16-Bit-ROM-Codewort auf den Pixelmultiplexer 108 über einen Bus 120, wie hier vorher für die Kalkulationstabelle aus 11 und 12 beschrieben wurde.
  • Ein erster Abschnitt (in einem Rechteck mit gestrichelter Linie gezeigt) des Pixelmultiplexers 108 beinhaltet ein erstes, zweites, drittes, viertes, fünftes, sechstes, siebtes, achtes und neuntes NOR-Glied, das als 250, 251, 252, 253, 254, 255, 256, 257 bzw. 258 bezeichnet ist, einen Inverter 260 und einen D-Typ Flipflop 262. Das NOR-Glied 250 empfängt Bits 0, 4, 8 und 12 des 16-Bit-ROM-Codeworts, das auf dem Bus 120 an separaten Eingängen empfangen wurde, das NOR-Glied 251 empfängt Bits 1, 5, 9 und 13 des 16-ROM-Codeworts an separaten Eingängen, das NOR-Glied 252 empfängt Bits 2, 6, 10 und 15 des 16-Bit-ROM-Codeworts an separaten Eingängen und das NOR-Glied 253 empfängt Bits 3, 7, 11 und 15 des 16-Bit-ROM-Codes an separaten Eingängen. Die Ausgangssignale von den NOR-Gliedern 250, 251, 252 und 253 werden an dem zweiten Eingangsanschluss (B) des NOR-Glieds 254, 255, 256 bzw. 257 empfangen. Der Ausgang des NOR-Glieds 253 ist auch über einen Leiter 264 mit einem Eingang des Inverters 260 gekoppelt, dessen Ausgang mit einem D-Eingangsanschluss des Flipflops 262 gekoppelt ist. Das Taktsignal des Leiters 110 wird an einen ersten Eingangsanschluss (A) jedes NOR-Glieds 254, 255, 256 und 257 angewandt. Einzelne, mit 0, 1, 2 und 3 nummerierte Bits werden von dem NOR-Glied 254, 255, 256 bzw. 257 ausgegeben und in ein 4-Bit-SCHREIB-Taktsignal kombiniert, das über einen Bus 268 übertragen wird. Das Taktsignal, das sich auf dem Leiter 110 ausbreitet, ist mit einem TAIiT-Eingangsanschluss des Flipflops 262 gekoppelt und mit einem B-Eingang des neunten NOR-Glieds 258. Das Transfer-/Rückstellsignal, das sich auf dem Leiter 224 ausbreitet, ist mit einem R-Eingangsanschluss des Flipflops 262 gekoppelt und das Ausgangssignal von einem NQ-Ausgangsanschluss des Flipflops 262 ist mit einem A-Eingangsanschluss des NOR-Glieds 258 gekoppelt. Das NOR-Glied 258 erzeugt ein LATCH-Ausgangssignal, das auf einem Leiter 266 gesendet wird.
  • Nun mit Bezug auf 15 wird ein Stromlaufplan für einen zweiten Abschnitt (in einem Rechteck mit gestrichelter Linie gezeigt) des erfindungsgemäßen in 7 gezeigten Pixelpuffer-Datenrohrs mit Vergrößerungsschaltkreis 108 gezeigt. Der zweite Abschnitt des Pixelpuffer-Datenrohrs mit Vergrößerungsschaltkreis 108 beinhaltet ein Quad-Oktal-Latch 300, einen Quad-Oktal-Multiplexer 304, eine erste, zweite, dritte, vierte, fünfte, sechste, siebte und achte Oktal-Verzögerung, die als 310, 311, 312, 313, 314, 315, 316 bzw. 317 bezeichnet ist, siebzehn Inverter, die als 330346 bezeichnet sind und ein 4-Eingangs-NAND-Glied 350. Das Quad-Oktal-Latch 300 empfängt ein 32-Bit-Wort (für vier 8-Bit-Pixel) an einem ersten Eingang (A) von der Speicherkontroller- und Spritezustand-Maschine 42 über einen Bus 39 und ein Wort-Latch-Signal auf einem Leiter 301 an einem Eingang B, um das 32-Bit-Wort einzufangen. Das Quad-Oktal-Latch 300 gibt an einem Ausgang O das eingefangene 32-Bit-Wort aus, so dass die 8-Bits für jeden der Pixel 0, 1, 2 und 3 des 32-Bit-Worts jeweils in A-, B-, C- und D-Eingänge des Quad-Oktal-Multiplexers 304 über einen Bus 302 eingegeben werden. Sechzehn Bits (Bits 0–15) eines Multiplexer-Antriebs-Signals (MUXER-ANTRIEBS-Signal) werden an separaten Eingängen (AUSW. 0–15) des Oktal-Multiplexers 304 von dem Multiplexer-Antriebs-ROM 102 (in 7 und 14 gezeigt) über den Bus 120 empfangen. Das 16-Bit-MUXER-ANTRIEBS-Signal stellt einen 16-Bit-ROM-Code dar, wie er in der Kalkulationstabelle der 11 und 12 zu finden ist, für einen bestimmten Satz Eingangsparameter (Vergrößerung, Offset und Zyklus), die dem Multiplexer-Antriebs-ROM 102 vorgelegt werden. Innerhalb des Quad-Oktal-Multiplexers 304 werden die vier 8-Bit-Pixel, die an den Eingängen A, B, C und D über den Bus 302 empfangen werden, gemäß dem ROM-Code, der in dem MUXER-ANTRIEBS-Signal über den Bus 120 empfangen wird, auf die richtigen Ausgänge 0, 1, 2 und 3 transferiert. Die Pixelsignale, die an den Ausgängen 0, 1, 2 und 3 des Quad-Oktal-Multiplexers 304 ausgegeben werden, werden in die D-Eingänge der Oktal-Verzögerungen, 310, 311, 312 bzw. 313 eingeklinkt.
  • Bits 0, 1, 2 und 3 eines 4-Bit-SCHREIB-Taktsignals, das jeweils von den NOR-Gliedern 254, 255, 256 und 257 von 14 über den Bus 268 übertragen wird, werden an dem Eingang der jeweiligen Inverter 330 und 332, Invertern 333 und 335, Invertern 336 und 338 und Inverter 339 und 341 empfangen. Genauer wird Bit 0 des SCHREIB-Taktsignals an einem Eingang der Inverter 330 und 332 empfangen. Der Ausgang von dem Inverter 330 ist mit einem Eingang des Inverters 331 gekoppelt, dessen Ausgang mit einem TAKTB-Eingang der ersten Oktal-Verzögerung 310 gekoppelt ist. Ein Ausgang des Inverters 332 ist mit einem TAKT-Eingang der ersten Oktal-Verzögerung 310 gekoppelt. Bit 1 des SCHREIB-Taktsignals wird an einem Eingang der Inverter 333 und 335 empfangen. Der Ausgang von dem Inverter 333 ist mit einem Eingang des Inverters 334 gekoppelt, dessen Ausgang mit einem TAKTB-Eingang der zweiten Oktal-Verzögerung 311 gekoppelt ist. Ein Ausgang des Inverters 335 ist mit einem TAKT-Eingang der zweiten Oktal-Verzögerung 311 gekoppelt. Bit 2 des SCHREIB-Taktsignals wird an einem Eingang der Inverter 336 und 338 empfangen. Der Ausgang von dem Inverter 336 ist mit einem Eingang des Inverters 337 gekoppelt, dessen Ausgang mit einem TAKTB-Eingang der dritten Oktal-Verzögerung 312 gekoppelt ist. Ein Ausgang des Inverters 338 ist mit einem TAKT-Eingang der dritten Oktal-Verzögerung 312 gekoppelt. Bit 3 des SCHREIB-Taktsignals wird an einem Eingang der Inverter 339 und 341 empfangen. Der Ausgang von dem Inverter 339 ist mit einem Eingang des Inverters 340 gekoppelt, dessen Ausgang mit einem TAKTB-Eingang der vierten Oktal-Verzögerung 313 gekoppelt ist. Ein Ausgang des Inverters 341 ist mit einem TAKT-Eingang der vierten Oktal-Verzögerung 313 gekoppelt. Die TAKT-Eingänge der Oktal-Verzögerungen 310313 sind mit separaten Eingängen des NAND-Glieds 350 gekoppelt und der Ausgang von dem NAND-Glied 350 ist mit einem Eingang des Inverters 345, dessen Ausgang mit einem Eingang des Inverters 346 gekoppelt ist, gekoppelt. Ein Ausgang des Inverters 346 ist mit einem TAKT-Eingang des Oktal-Multiplexers 304 gekoppelt.
  • Der Ausgang von den Oktal-Verzögerungen 310, 311, 312 und 313 ist mit einem D-Eingangsanschluss der Oktal-Verzögerung 314, 315, 316 bzw. 317 über den jeweiligen Bus 360, 361, 362 und 363 gekoppelt. Das Latch-Signal, das an dem Ausgang des NOR-Glieds 258 in 14 erzeugt wurde, wird an einem Eingang jedes Inverters 342 und 344 empfangen. Ein Ausgang von dem Inverter 342 ist mit einem Eingang des Inverters 343 gekoppelt, dessen Ausgang jeweils mit einem TAKTB-Eingang der Oktal-Verzögerungen 314, 315, 316 und 317 gekoppelt ist. Ein Ausgang des Inverters 344 ist jeweils mit einem TAKT-Eingang der Oktal-Verzögerungen 314, 315, 316 und 317 gekoppelt. Die Q-Ausgänge der Oktal-Verzögerungen 314, 315, 316 und 317 sind mit einem Bus 51 gekoppelt, um ein WORT-AUS-Signal bereitzustellen.
  • Bei Betrieb wird ein 32-Bit-Wort, das ein erstes, zweites, drittes und viertes 8-Bit-Pixel beinhaltet, jeweils an dem Eingang A, B, C und D des Oktal-Multiplexers 304 über den Bus 302 empfangen. Das erste, zweite, dritte und vierte 8-Bit-Pixel wird auf ausgewählte Ausgänge 0, 1, 2 und 3 des Oktal-Multiplexers 304 gemäß dem ROM-Code, der in dem MUXER-ANTRIEBS-Signal über den Bus 120 empfangen wurde, transferiert (gemultiplext), und dann in die Oktal-Verzögerungen 310, 311, 312 bzw. 313 durch Taktsignale, die über den Bus 268 empfangen wurden, eingeklinkt. Die temporär in den Oktal-Verzögerungen 310, 311, 312 und 313 gespeicherten Pixel werden nach Empfang eines LATCH-Signals auf dem Leiter 266 wiederum in die Oktal-Verzögerungen 314, 315, 316 bzw. 317 eingeklinkt. Die 8-Bit-Pixelwort-Ausgabe von jeder der Oktal-Verzögerungen 314, 315, 316 und 317 wird in ein 32-Bit-Ausgangswort (WORT AUS) gebildet, das über einen Bus 51 auf einen Pixelanordnungspuffer 52 (in 7 gezeigt) übertragen wird.
  • Nun mit Bezug auf 16 ist ein Blockschaltbild eines Quad-Oktal-Multiplexers 304 (in einem Rechteck mit gestrichelter Linie gezeigt), der innerhalb eines Pixel-Multiplexers 108, in 7 und 15 gezeigt, erfindungsgemäß verwendet wird, gezeigt. Der Quad-Oktal-Multiplexer 304 beinhaltet einen ersten, zweiten, dritten und vierten Oktal-Dynamik-Multiplexer, der als 400, 401, 402 bzw. 403 bezeichnet wird. Die Daten für die Pixel 0, 1, 2 und 3 eines 4-Pixel-Worts werden von dem Quad-Oktal-Latch 300 (nur in 15 gezeigt) über einen Bus 302 an den Eingängen A, B, C bzw. D des Oktal-Multiplexers 304 empfangen. Die Eingänge A, B, C und D sind jeweils mit den DATEN 0, DATEN 1, DATEN 2 bzw. DATEN 3 Eingängen des ersten, zweiten, dritten und vierten Oktal-Dynamik-Multiplexers 400, 401, 402 und 403 gekoppelt. Auswahl 0 (AUSW. 0), AUSW. 4, AUSW. 8 und AUSW. 12 Bits eines 16-Bit-ROM-Codes, der von einem Multiplexer-Antriebs-ROM 102 (in 7 und 14 gezeigt) über einen Bus 120 empfangen wird, werden mit einem AUSW.-Eingangsanschluss des ersten Oktal-Dynamik-Multiplexers 400 über einen Busteilabschnitt 410 gekoppelt. Auswahl 1 (AUSW. 1), AUSW. 5, AUSW. 9 und AUSW. 13 Bits des 16-Bit-ROM-Code-Wortes, das von einem Multiplexer-Antriebs-ROM 102 über einen Bus 120 empfangen wird, werden mit einem AUSW.-Eingangsanschluss des zweiten Oktal-Dynamik-Multiplexers 401 über einen Busteilabschnitt 411 gekoppelt. Auswahl 2 (AUSW. 2), AUSW. 6, AUSW. 10 und AUSW. 14 Bits des 16-Bit-ROM-Code-Wortes, das von einem Multiplexer-Antriebs-ROM 102 über einen Bus 120 empfangen wird, werden mit einem AUSW.-Eingangsanschluss des dritten Oktal-Dynamik-Multiplexers 402 über einen Busteilabschnitt 412 gekoppelt. Auswahl 3 (AUSW. 3), AUSW. 7, AUSW. 11 und AUSW. 15 Bits des 1.6-Bit-ROM-Code-Wortes, das von einem Multiplexer-Antriebs-ROM 102 über einen Bus 120 empfangen wird, werden mit einem AUSW.-Eingangsanschluss des vierten Oktal-Dynamik-Multiplexers 403 über einen Busteilabschnitt 413 gekoppelt. Jeder erste, zweite, dritte und vierte Oktal-Dynamik-Multiplexer 400, 401, 402 bzw. 403 empfängt auch ein extern erzeugtes Taktsignal an dem TAKT-Eingangsanschluss. Ein Ausgangsanschluss des ersten, zweiten, dritten und vierten Oktal-Dynamik-Multiplexers 400, 401, 402 bzw. 403 überträgt ein 8-Bit-Pixel AUS 0, AUS 1, AUS 2 bzw. AUS 3 Signal auf die jeweilige Oktal-Verzögerung 310, 311, 312 bzw. 313 (in 15 gezeigt).
  • Bei Betrieb empfängt jeder erste, zweite, dritte und vierte Okta-Dynamik-Multiplexer 400, 401, 402 bzw. 403 Daten für vier Pixel eines Datenworts an den Eingängen A, B, C und D über den Bus 302 und vier unterschiedliche vorgesehene Bits eines 16-Bit-ROM-Codes über den Bus 120. Der 16-Bit-ROM-Code ist aus der in 11 und 12 gezeigten Kalkulationstabelle abgeleitet. Der erste Oktal-Dynamik-Multiplexer 400 multiplexiert die 8-Bits Daten für eines oder keines der empfangenen vier Pixel, die über den Bus 302 empfangen wurden, auf seinen Ausgangsanschluss (AUS-Anschluss) als Reaktion auf eine binäre 1, die in einem der 0, 4, 8 und 12 Bits des ROM-Codes, der über den Bus 120 empfangen wird, existiert. Der zweite Oktal-Dynamik-Multiplexer 401 multiplexiert die 8-Bits Daten für eines oder keines der empfangenen vier Pixel, die über den Bus 302 empfangen wurden, auf seinen Ausgangsanschluss (AUS-Anschluss) als Reaktion auf eine binäre 1, die in einem der 1, 5, 9 und 13 Bits des ROM-Codes, der über den Bus 120 empfangen wird, existiert. Der dritte Oktal-Dynamik-Multiplexer 402 multiplexiert die 8-Bits Daten für eines oder keines der empfangenen vier Pixel, die über den Bus 302 empfangen wurden, auf seinen Ausgangsanschluss (AUS-Anschluss) als Reaktion auf eine binäre 1, die in einem der 2, 6, 10 und 14 Bits des ROM-Codes, der über den Bus 120 empfangen wird, existiert. Der vierte Oktal-Dynamik-Multiplexer 402 multiplexiert die 8-Bits Daten für eines oder keines der empfangenen vier Pixel, die über den Bus 302 empfangen wurden, auf seinen Ausgangsanschluss (AUS-Anschluss) als Reaktion auf eine binäre 1, die in einem der 3, 7, 11 und 15 Bits des ROM-Codes, der über den Bus 120 empfangen wird, existiert. Genauer funktioniert der erste, zweite, dritte und vierte Oktal-Dynamik-Multiplexer 400, 401, 402 bzw. 403 so, dass er die ankommenden Pixel 0, 1, 2 und 3 auf ausgehende Pixel 0, 1, 2 und 3 während jedes Zyklus, wie hier vorher für 8, 9 und 10 unter Verwendung des ROM-Codes beschrieben wurde, wie hier vorher für die Kalkulationstabelle, die in 11 und 12 gezeigt ist, beschrieben wurde, transferiert (gemultiplext).
  • Obwohl die vorliegende Erfindung hier oben für die Verwendung in einer Teilnehmer-Kabelboxeinheit 10 beschrieben wurde, versteht es sich, dass die vorliegende Erfindung zum Beispiel auch in einer Editierstation verwendet werden kann, bevor das Fernsehsignal rundgesendet wird. Anders ausgedrückt kann die vorliegende Erfindung bei Fernsehproduktionen zur Erzeugung von anfänglichen Produkten vor ihrer Rundsendung verwendet werden, anstatt das Fernsehsignal nachher an einem fernen Standort eines Teilnehmers zu manipulieren. Dies ist möglich, da die Qualität und die Auflösung des Bildes gleich sein wird, unabhängig davon, ob das Editieren während der Produktion oder danach am Standort des Teilnehmers durchgeführt wird. Es ist deshalb gleichgültig, ob die Qualität oder die Auflösung in einer nicht editierten Fernsehproduktion besser sein könnte, wenn das Editieren durchgeführt wird, irgendwann, bevor die Produktion auf dem verflochtenen Fernsehapparat des Teilnehmers betrachtet wird.
  • Querverweis auf verwandte Anmeldungen
  • Die vorliegende Erfindung ist mit drei anderen europäischen Patentanmeldungen verwandt, die alle im Namen der Anmelderin für die vorliegende Erfindung eingereicht worden sind, die gleichen Erfinder aufweisen und am selben Datum mit der vorliegenden Schrift eingereicht wurden, mit dem Titel „Method and Apparatus for Performing Two Dimensional Video Convolving", (Aktenzeichen: J24151 EP); „Apparatus for Processing Mixed YUV and Color Palettized Video Signals" (Aktenzeichen: J24152 EP) und „Apparatus Using Memory Control Tables Related to Video Graphics Processing for TV Receivers" (Aktenzeichen: J24154 EP). Diese europäischen Patentanmeldungen beanspruchen Vorrecht gegenüber den U.S. Patentanmeldungen Nr. 08/523,395, 08/523,396 bzw. 08/523,394. Hier gemachte spezifische Bezüge auf diese Vereinigte Staaten Patentanmeldungen umfassen Bezüge auf die entsprechenden europäischen Patentanmeldungen.

Claims (7)

  1. Vorrichtung (46) zur Modifikation der Vergrößerung einer Grafik vor der Anzeige des Grafikbilds auf einem Fernsehempfänger, die Folgendes beinhaltet: ein erstes Vergrößerung modifizierendes Mittel (42, 160) zur Modifikation der Vergrößerung einer Grafik durch einen ersten unabhängigen, vorgegebenen Vergrößerungsfaktor in eine vertikale Richtung durch das Erzeugen von grafischen Zeilenadressen-Ausgangssignalen zum selektiven Verhindern einer Übertragung vorgegebener horizontaler Zeilen der Grafik nach dem Empfang eines vertikalen Vergrößerungsfaktors, der kleiner als Einheit ist, und zum selektiven Wiederholen einer Übertragung vorgegebener horizontaler Zeilen der Grafik nach dem Empfang eines vertikalen Vergrößerungsfaktors, der größer als Einheit ist; und ein zweites Vergrößerung modifizierendes Mittel (98), das auf die Übertragungen der horizontalen Zeilen der Grafik anspricht, welche zur Übertragung durch die grafischen Zeilenadressen-Ausgangssignale des ersten Vergrößerung modifizierenden Mittels zur Modifikation der Vergrößerung der Grafik in eine horizontale Richtung durch einen zweiten unabhängigen vorgegebenen, horizontalen Vergrößerungsfaktor angezeigt sind, wobei das zweite Vergrößerung modifizierende Mittel N vorgegebene Pixel aus jeder empfangenen Gruppe von X Pixeln auswählt, welche in eine Übertragungsgruppe von X Pixeln zur Übertragung in jedem Ausgangssignal der Vorrichtung für einen horizontalen Vergrößerungsfaktor, der gleich oder weniger als Einheit ist, wobei N ≤ X, und zur Wiederholung von Pixeln aus jeder empfangenen Gruppe von X Pixeln um eine vorgegebene ganzzahlige Menge, die einem horizontalen, ganzzahligen Vergrößerungsfaktor, der größer als Einheit ist, zur Übertragung in jedem Ausgangssignal der Vorrichtung entspricht, gemultiplext werden.
  2. Vorrichtung gemäß Anspruch 1, wobei das erste Vergrößerung modifizierende Mittel Folgendes beinhaltet: ein Vergrößerung umkehrendes Mittel (164) zum Umkehren des Wertes des empfangenen ersten unabhängigen, vertikalen Vergrößerungsfaktors und zur Erzeugung eines Ausgangssignals, das für den umgekehrten vertikalen Vergrößerungsfaktor steht; und ein Vervielfachungsmittel (168), das auf das Ausgangssignal von dem Vergrößerung umkehrenden Mittel und ein Eingangssignal, das für eine Anzahl einer horizontalen Zeile der Grafik steht, auf die zum Vervielfachen des umgekehrten vertikalen Vergrößerungsfaktors um die Anzahl der horizontalen Zeile der Grafik gegenwärtig zugegriffen wird, um ein Ausgangssignal zu erzeugen, das für eine Zeilenanzahl der in einem vertikalen Vergrößerungsverfahren zu verwendenden Grafik steht, anspricht.
  3. Vorrichtung gemäß Anspruch 2, wobei das erste Vergrößerung modifizierende Mittel ferner einen Subtrahierer (161) zum Subtrahieren einer startenden horizontalen Zeilenanzahl einer Grafik, auf die von einer gegenwärtigen Zeilenanzahl zugegriffen wird, auf welche von einer Anzeige des Fernsehempfängers zugegriffen wird und ein Ausgangssignal an das Vervielfachungsmittel erzeugt, das für die Anzahl einer horizontalen Zeile einer Grafik steht, auf welche gegenwärtig gezeigt wird, beinhaltet.
  4. Vorrichtung gemäß Anspruch 1, wobei das zweite Vergrößerung modifizierende Mittel Folgendes beinhaltet: einen Pixelauswahl-Festwertspeicher (ROM) (100), der auf einen empfangenen horizontalen gebrochenen Vergrößerungswert zur Erzeugung eines horizontalen gebrochenen Vergrößerungs-Ausgangssignals, das anzeigt, welche Pixel aus einer Gruppe von X Pixeln zur Erzeugung eines Ausgangssignals der Vorrichtung verwendet werden sollen, anspricht; einen Multiplexer-Antriebs-ROM (102), der auf das horizontale gebrochene Vergrößerungs-Ausgangssignal und einen empfangenen-ganzzahligen, horizontalen Vergrößerungswert zur Erzeugung separater kodierter Ausgangssignale während der aufeinanderfolgenden Multiplexzyklen, die angeben, welche der empfangenen Pixel einer ankommenden Gruppe einer Vielzahl von Y Pixeln in welche Ausgabepixel einer ausgehenden Gruppe einer Vielzahl von Y Pixeln gemultiplext werden sollen, anspricht; und ein Pixel-Multiplexmittel (108), das auf die kodierten Ausgangssignale von dem Multiplexer-Antriebs-ROM und einen Empfang der ankommenden Gruppe der Vielzahl von Y Pixeln zum Multiplexen Vorgegebener der Vielzahl von Y Pixeln der ankommenden Gruppe in Vorgegebene der Vielzahl von Y Pixeln der ausgehenden Gruppe während jedes vorgegebenen Zyklus, um ein Vorrichtungs-Ausgangssignal zu bilden, anspricht.
  5. Vorrichtung gemäß Anspruch 4, die ferner Folgendes beinhaltet: ein Zyklussteuerungsmittel (104), das auf ein Taktsignal zur Erzeugung einer vorgegebenen Anzahl aufeinanderfolgender Zyklussignale zur Übertragung an den Multiplexer-Antriebs-ROM anspricht; und ein Offsetsteuerungsmittel (106), das auf eine Beendigung eines Multiplexens einer ankommenden Gruppe einer Vielzahl von Y Pixeln in Vorgegebene einer ausgehenden Gruppe einer Vielzahl von Y Pixeln während mindestens eines Zyklus zur Erzeugung eines Offsetsteuersignals an dero Multiplexer-Antriebs-ROM zum Verdrehen des Multiplexens einer nächsten ankommenden Gruppe einer Vielzahl von Y Pixeln, um damit zu beginnen, die Pixel der ausgehenden Gruppe von Y Pixeln auszufüllen, wenn ein beendetes Multiplexen einer früheren ankommenden Gruppe von Y Pixeln während eines letzten Zyklus nicht alle Pixel der ausgehenden Gruppe von Y Pixeln ausgefüllt hat, anspricht; und der Multiplexer-Antriebs-ROM auf jedes Zyklussignal und das Offsetsteuersignal zur Erzeugung eines separaten, vorgegebenen kodierten Ausgangssignals an das Pixel-Multiplexmittel anspricht.
  6. Vorrichtung gemäß Anspruch 4, wobei der Multiplexer-Antriebs-ROM auf eine Kombination aus dem horizontalen gebrochenen Vergrößerungs-Ausgangssignal von dem Pixelauswahl-ROM und dem empfangenen horizontalen ganzzahligen Vergrößerungswert anspricht, der eine horizontale Vergrößerung um weniger als Einheit zur Erzeugung kodierter Ausgangssignale, die bewirken, dass Vorgegebene der Pixel in der ankommenden Gruppe der Vielzahl von Y Pixeln wiederholt um so viele Male, wie durch den horizontalen ganzzahligen Vergrößerungswert angegeben, in aufeinanderfolgende Pixel in der ausgehenden Gruppe der Vielzahl von Y Pixeln in dem Pixelmultiplexer gemultiplext werden, und wobei der Multiplexer-Antriebs-ROM auf eine Kombination aus dem horizontalen gebrochenen Vergrößerungs-Ausgangssignal von dem Pixelauswahl-ROM und dem empfangenen horizontalen ganzzahligen Vergrößerungswert anspricht, was eine horizontale Vergrößerung größer als Einheit angibt, um kodierte Ausgangssignale zu erzeugen, die verursachen, dass alle Pixel in der ankommenden Gruppe der Vielzahl von Y Pixeln mehr als einmal in die aufeinanderfolgenden Pixel in der ausgehenden Gruppe der Vielzahl von Y Pixeln in dem Pixelmultiplexer gemultiplext werden, und andere Vorgegebene der Pixel in der ankommenden Gruppe der Vielzahl von Y Pixeln nur einmal in aufeinanderfolgende Pixel in der ausgehenden Gruppe der Vielzahl von Y Pixeln in dem Pixelmultiplexer gemultiplext werden, wie durch das horizontale gebrochene Vergrößerungs-Ausgangssignal angegeben.
  7. Vorrichtung gemäß Anspruch 4, wobei der Multiplexer-Antriebs-ROM ferner ein Haltesteuersignal erzeugt, um zu verhindern, dass der Pixelauswahl-ROM die gegenwärtig bereitgestellten, kodierten Ausgangssignale ändert und eine nächste ankommende Gruppe der Vielzahl von Y Pixeln empfängt, bevor ein Multiplexen einer gegenwärtig ankommenden Gruppe der Vielzahl von Y Pixeln beendet ist.
DE69630345T 1995-08-31 1996-08-02 Videovergrösserungsgerät Expired - Fee Related DE69630345T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/523,789 US5838296A (en) 1995-08-31 1995-08-31 Apparatus for changing the magnification of video graphics prior to display therefor on a TV screen
US523789 1995-08-31

Publications (2)

Publication Number Publication Date
DE69630345D1 DE69630345D1 (de) 2003-11-20
DE69630345T2 true DE69630345T2 (de) 2004-07-15

Family

ID=24086471

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69630345T Expired - Fee Related DE69630345T2 (de) 1995-08-31 1996-08-02 Videovergrösserungsgerät

Country Status (9)

Country Link
US (1) US5838296A (de)
EP (1) EP0762325B1 (de)
JP (2) JP3484298B2 (de)
KR (1) KR100249403B1 (de)
CA (1) CA2179783C (de)
DE (1) DE69630345T2 (de)
HK (1) HK1014068A1 (de)
MX (1) MX9603749A (de)
NO (1) NO963577L (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034689A (en) * 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
KR100283574B1 (ko) * 1996-08-27 2001-03-02 윤종용 모니터 화면 사이즈 제어 회로 및 그 제어방법
US6417866B1 (en) * 1997-02-26 2002-07-09 Ati Technologies, Inc. Method and apparatus for image display processing that reduces CPU image scaling processing
US6337717B1 (en) 1997-11-21 2002-01-08 Xsides Corporation Alternate display content controller
US6686936B1 (en) 1997-11-21 2004-02-03 Xsides Corporation Alternate display content controller
US6330010B1 (en) 1997-11-21 2001-12-11 Xsides Corporation Secondary user interface
US6018332A (en) * 1997-11-21 2000-01-25 Ark Interface Ii, Inc. Overscan user interface
US6639613B1 (en) 1997-11-21 2003-10-28 Xsides Corporation Alternate display content controller
US6263496B1 (en) 1998-02-03 2001-07-17 Amazing Media, Inc. Self modifying scene graph
US6243856B1 (en) * 1998-02-03 2001-06-05 Amazing Media, Inc. System and method for encoding a scene graph
US6437809B1 (en) 1998-06-05 2002-08-20 Xsides Corporation Secondary user interface
US6426762B1 (en) 1998-07-17 2002-07-30 Xsides Corporation Secondary user interface
DE69917489T2 (de) * 1998-11-09 2005-06-02 Broadcom Corp., Irvine Anzeigesystem zur mischung von graphischen daten und videodaten
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6396962B1 (en) * 1999-01-29 2002-05-28 Sony Corporation System and method for providing zooming video
US6590592B1 (en) 1999-04-23 2003-07-08 Xsides Corporation Parallel interface
US6788311B1 (en) * 1999-04-28 2004-09-07 Intel Corporation Displaying data on lower resolution displays
AU5276800A (en) 1999-05-21 2000-12-12 Xsides Corporation Parallel graphical user interface
US6630943B1 (en) 1999-09-21 2003-10-07 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US6515678B1 (en) * 1999-11-18 2003-02-04 Gateway, Inc. Video magnifier for a display of data
US6727918B1 (en) 2000-02-18 2004-04-27 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US20040226041A1 (en) * 2000-02-18 2004-11-11 Xsides Corporation System and method for parallel data display of multiple executing environments
US7445551B1 (en) 2000-05-24 2008-11-04 Nintendo Co., Ltd. Memory for video game system and emulator using the memory
US7305680B2 (en) * 2002-08-13 2007-12-04 Sharp Laboratories Of America, Inc. Listening module for asynchronous messages sent between electronic devices of a distributed network
US8063916B2 (en) 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
US8267780B2 (en) 2004-03-31 2012-09-18 Nintendo Co., Ltd. Game console and memory card
US11278793B2 (en) 2004-03-31 2022-03-22 Nintendo Co., Ltd. Game console
KR20090079517A (ko) 2008-01-18 2009-07-22 삼성전자주식회사 연료전지 및 연료전지 제어방법
US8325282B2 (en) * 2008-04-08 2012-12-04 Mitsubishi Electric Visual Solutions America, Inc. Television automatic geometry adjustment system
EP2113959B1 (de) 2008-04-25 2013-05-29 Samsung Electronics Co., Ltd. Brennstoffzellensystem und Steuerungsverfahren dafür
US20110242427A1 (en) * 2010-04-01 2011-10-06 Timothy Ramsdale Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory
US10077109B2 (en) * 2014-01-24 2018-09-18 Maxlinear, Inc. First-person viewer for unmanned vehicles
KR20230077016A (ko) * 2021-11-24 2023-06-01 삼성디스플레이 주식회사 표시 장치 및 표시 장치의 데이터 보상 방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA797059B (en) * 1979-03-23 1980-11-26 Ibm System for and method of reproducing an image
DE3177295D1 (de) * 1980-04-11 1993-02-04 Ampex Vordezimierungsfilter fuer bildveraenderungssystem.
US4420770A (en) * 1982-04-05 1983-12-13 Thomson-Csf Broadcast, Inc. Video background generation system
US4754270A (en) * 1984-02-16 1988-06-28 Nintendo Co., Ltd. Apparatus for varying the size and shape of an image in a raster scanning type display
US4580165A (en) * 1984-04-12 1986-04-01 General Electric Company Graphic video overlay system providing stable computer graphics overlayed with video image
GB8410596D0 (en) * 1984-04-25 1984-05-31 Quantel Ltd Video signal processing
JPS60254190A (ja) * 1984-05-31 1985-12-14 株式会社 アスキ− デイスプレイコントロ−ラ
US4631751A (en) * 1984-10-24 1986-12-23 Anderson Karen L Method for enlarging a binary image
US4656664A (en) * 1984-10-24 1987-04-07 International Business Machines Corporation Method for reducing a binary image
CA1243779A (en) * 1985-03-20 1988-10-25 Tetsu Taguchi Speech processing system
JPS62178069A (ja) * 1986-01-31 1987-08-05 Toshiba Corp フアクシミリ記録方式
JPH0810462B2 (ja) * 1986-05-08 1996-01-31 日本電気株式会社 画像処理装置
DE3702220A1 (de) * 1987-01-26 1988-08-04 Pietzsch Ibp Gmbh Verfahren und einrichtung zur darstellung eines gesamtbildes auf einem bildschirm eines bildschirmgeraetes
JPS63184879A (ja) * 1987-01-28 1988-07-30 Toshiba Corp 画像処理装置
US4951038A (en) * 1987-05-15 1990-08-21 Hudson Soft Co., Ltd. Apparatus for displaying a sprite on a screen
US5258843A (en) * 1987-09-04 1993-11-02 Texas Instruments Incorporated Method and apparatus for overlaying displayable information
US5179642A (en) * 1987-12-14 1993-01-12 Hitachi, Ltd. Image synthesizing apparatus for superposing a second image on a first image
US5185597A (en) * 1988-06-29 1993-02-09 Digital Equipment Corporation Sprite cursor with edge extension and clipping
US5065231A (en) * 1988-09-26 1991-11-12 Apple Computer, Inc. Apparatus and method for merging input RGB and composite video signals to provide both RGB and composite merged video outputs
US5323173A (en) * 1988-09-26 1994-06-21 Hitachi, Ltd. Display device
US5235677A (en) * 1989-06-02 1993-08-10 Atari Corporation Raster graphics color palette architecture for multiple display objects
US4965670A (en) * 1989-08-15 1990-10-23 Research, Incorporated Adjustable overlay display controller
US5027212A (en) * 1989-12-06 1991-06-25 Videologic Limited Computer based video/graphics display system
US5389947A (en) * 1991-05-06 1995-02-14 Compaq Computer Corporation Circuitry and method for high visibility cursor generation in a graphics display
KR940001439B1 (ko) * 1991-08-30 1994-02-23 삼성전자 주식회사 자막정보 중첩회로
US5258826A (en) * 1991-10-02 1993-11-02 Tandy Corporation Multiple extended mode supportable multimedia palette and multimedia system incorporating same
US5313231A (en) * 1992-03-24 1994-05-17 Texas Instruments Incorporated Color palette device having big/little endian interfacing, systems and methods
JP3059302B2 (ja) * 1992-06-03 2000-07-04 株式会社ハドソン 映像混合装置
JP3113090B2 (ja) * 1992-09-21 2000-11-27 松下電器産業株式会社 映像信号処理装置

Also Published As

Publication number Publication date
JP3484298B2 (ja) 2004-01-06
KR19980016383A (ko) 1998-05-25
KR100249403B1 (ko) 2000-03-15
NO963577D0 (no) 1996-08-27
MX9603749A (es) 1997-06-28
HK1014068A1 (en) 1999-09-17
EP0762325A3 (de) 1998-06-17
US5838296A (en) 1998-11-17
CA2179783C (en) 2000-03-14
NO963577L (no) 1997-03-03
JP2001169181A (ja) 2001-06-22
EP0762325B1 (de) 2003-10-15
EP0762325A2 (de) 1997-03-12
CA2179783A1 (en) 1997-03-01
JPH09149334A (ja) 1997-06-06
DE69630345D1 (de) 2003-11-20

Similar Documents

Publication Publication Date Title
DE69630345T2 (de) Videovergrösserungsgerät
DE69635970T2 (de) Schaltung und Verfahren zur Umwandlung eines Fernsehsignals
DE69839039T2 (de) Vorrichtung und verfahren zur skalierung und flickerreduktion mit dynamischer koeffizientengewichtung
DE69333475T2 (de) Verarbeitungseinrichtung für die Bilddatenumwandlung
DE4231158C5 (de) Verfahren und Einrichtung für die Zusammensetzung und Anzeige von Bildern
US6028589A (en) Method and apparatus for video scaling and convolution for displaying computer graphics on a conventional television monitor
DE10342977A1 (de) Vorrichtung und Verfahren zum Anzeigen eines Fernsehvideosignals und -daten in einem mobilen Endgerät gemäß dessen Modus
WO1995031873A1 (en) Computer teleconferencing method and apparatus
DE60015265T2 (de) Bildverarbeitungsgerät
DE60009140T2 (de) Verfahren und system zur dekodierung von videosequenzen und grafiken
US4879597A (en) Processing of video image signals
DE60023619T2 (de) Bildverarbeitungsvorrichtung zur Verringerung der Abtastfrequenz und zur Interpolation eines Bildsignals von einem Sensor mit Farbfilteranordnung
DE69839079T2 (de) System und verfahren für 2-abgriff/3-abgriff flimmerfiltern
US5010407A (en) Video effects system with recirculation video combine and output combine
EP0236943B1 (de) Vorrichtung zur Kombination von Videosignalen
DE69630264T2 (de) Gerät mit Speicherkontrolltabellen zur Videographikverarbeitung für TV-Empfänger
US5739868A (en) Apparatus for processing mixed YUV and color palettized video signals
EP0268360B1 (de) System zur Verarbeitung von Fernsehbildsignalen
MXPA96003750A (en) Apparatus for processing yuv video signals and mezcl color envelope
DE69332733T2 (de) Videobilderanzeigevorrichtung und Verfahren zum Steuern einer Videobilderanzeige
MXPA96003752A (es) Aparato que usa tablas de control de memoriarelacionadas con el procesamiento de graficos devideo para receptores de television
JPS60232787A (ja) 画像合成装置
JPS60256284A (ja) 動画像送受信方式
DE10052481C2 (de) Verfahren zur Synthetisierung von Farbdaten zur Durchführung in einer zentralen Verarbeitungseinheit, Gerät, Datenspeichermedium, Computerprogrammprodukt sowie Computersysteme
DE4447554C2 (de) Vorrichtung zur Bilddatenverarbeitung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee