DE69609141T2 - Interaktive bildmanipulation - Google Patents
Interaktive bildmanipulationInfo
- Publication number
- DE69609141T2 DE69609141T2 DE69609141T DE69609141T DE69609141T2 DE 69609141 T2 DE69609141 T2 DE 69609141T2 DE 69609141 T DE69609141 T DE 69609141T DE 69609141 T DE69609141 T DE 69609141T DE 69609141 T2 DE69609141 T2 DE 69609141T2
- Authority
- DE
- Germany
- Prior art keywords
- macroblock
- image
- data
- macroblocks
- dct
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/23—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
- Die Erfindung bezieht sich auf die Änderung von Videobildern und insbesondere auf die Möglichkeit einer interaktiven Manipulation prädiktiv codierter Bilder in einer Decoderstufe.
- Nachstehend wird die Erfindung im Grunde in Termen des MPEG 1 Codierungsschemas, wie in ISO 11172 definiert, beschrieben, obschon erkannt wird, dass es ebenfalls auf andere hybrid-DCT ("discrete cosine transformation") basierte Codierungssysteme angewandt werden kann, wie auf die H.261-Norm für Video- Telephonie.
- MPEG und H.261 sind digitale Systeme, die herkömmlicherweise benutzt werden zur Speicherung und Komprimierung natürlicher Bildfolgen, wobei die Decoder dazu vorgesehen sind, solche codierte Daten zu interpretieren und dieselbe ursprüngliche Folge von Bildern wieder zu erzeugen. Das MPEG-System definiert ein Gitter von Makroblöcken, die je aus 16 Pixeln zu 16 Zeilen bestehen: diese Makroblöcke sind die Basiseinheit der Codierung. In MPEG werden drei Hauptbildtypen definiert, und zwar Intrabilder, vorhergesagte Bilder und interpolierte Bilder; diese werden im Allgemeinen als I-, P- bzw. B-Bilder bezeichnet.
- Innerhalb eines Bildtyps kann ein Makroblock verschiedenartig codiert werden: zwei Basis-Mokroblock-Codierungsmoden von der MPEG-Norm sind die Intra-Mode" und die "bewegungskompensierten, nicht codierten Moden". In der Intra- Mode beschreibt die Adresse die Makroblocks welcher Makroblock repräsentiert wird, mit dem nachfolgenden Makroblocktyp und den DCT-Koeffizientendaten für die Pixelwerte. In der bewegungskompensierten Mode ist die Information, die der Adressen- und der Typinformation folgt, ein Bewegungsvektor für den Makroblock. Der Bewegungsvektor schafft eine Verlagerung von der Adresse des aktuellen Makroblocks in dem aktuellen Bild zu einer Pixel-und-Zeilenadresse in einem vorhergehenden Bild von dem es in das aktuelle Bild kopiert wird. Intracodierte Makroblöcke kön nen bei vorhergesagten Bildern verwendet werden zum Einführen von Bildblöcken, die es in dem vorhergehenden Bild nicht gibt.
- Das MPEG-Codierungsschema ist entworfen zur effizienten Speicherung intracodierter Makroblöcke in einer minimalen Anzahl Bits, und die Spezifikation ist entworfen um den Codierern die Möglichkeit zu bieten Makroblöcke fest zusammenzupacken, ohne Beachtung von Byte-Ausrichtbedingungen. Differentielle Codierung wird ebenfalls angewandt zwischen benachbarten Makroblöcken zum Übertragen spezifischer codierter Werte.
- Eine der Probleme bei der Manipulation von Daten in Schemen, wie MPEG und H.261 werden anhand der Bildung zusammengesetzter Bildschirmen für Video-Konferenzen in einer Veröffentlichung mit dem Tutel: "Manipulation and Compositing of MC-DCT Compressed Video" von Shih-Fu Chang und David G. Messerschmitt, in "IEEE Journal on Selected Areas in Communications" Heft 13, Nr. 1, Januar 1995, Seiten 1-11. Deren Annäherung der Probleme der Zusammensetzung erfordert die Anwendung einer Kombinierstufe, welche die einzelnen bewegungskompensierten DCT-Signale empfängt, jedes Signal teilweise decodiert zum Entfernen der Bewegungskompensation, ein zusammengesetztes Bild formt innerhalb der Transformationsdomäne und danach einen Grad von Bewegungskompensation derart neu anwendet, dass ein geeignetes Signal für einen herkömmlichen MC-DCT-Decoder geschaffen wird (d. h. an einer Konferenzterminal). Das System wird weiterhin detailliert beschrieben in der Internationalen Patentanmeldung WO94/21079, von der Chang und Messerschmitt u. a. die Erfinder sind.
- Die durch Merkmale der Schemen, wie MPEG auferlegten Bedingungen haben den Nebeneffekt, dass diese es schwierig machen, die Bilddaten mit einer derartigen Geschwindigkeit zu manipulieren und zu editieren, dass der Benutzer in Echtzeit die Bilder kann manipulieren. So ist es beispielsweise keine einfache Angelegenheit, einen Makroblock aus nur einem Bild herauszuziehen und diesen durch einen anderen Block zu ersetzen, da dieser Makroblock in Termen von (u. a.) der Lage gegenüber anderen Makroblöcken des ursprünglichen Bildes codiert sein wird.
- Deswegen ist es u. a. eine Aufgabe der vorliegenden Erfindung, die Manipulation solcher Bilder zu vereinfachen. Es ist eine weitere Aufgabe der vorliegenden Erfindung eine derartige Manipulation in Echtzeit durchzuführen und in einem Decoder mit einer relativ beschränkten Verarbeitungsmöglichkeit, beispielsweise einem CD-I-Spieler.
- Nach der vorliegenden Erfindung wird eine interaktive Bildmanipulationsanordnung geschaffen mit einem Eingang für diskrete Kosinustransformation (DCT)-codierte Makroblöcke von Pixeldaten und mit: einem Cache-Speicher; einem Vorverarbeitungskontroller zum verarbeiten empfangener Makroblockdaten zum Erzeugen zweier verschiedener unabhängiger Repräsentationen jedes Makroblocks zum Gebrauch als erster Makroblock oder als ein Fortsetzungsmakroblock in einer Reihe von Makroblockdaten in einem zusammengesetzten Bild, zum Speichern der genannten Repräsentationen in dem Chache-Speicher, und zum Erzeugen eines DCT- codierten Bildes aus selektierten Repräsentationen der genannten Repräsentationen, ausgelesen aus dem Chache-Speicher; mit Benutzereingangsmitteln, die mit dem Kontroller gekoppelt sind, wobei die Selektion der gespeicherten Makroblockrepräsentationen in dem erzeugten Bild wenigstens teilweise durch Eingangssignale von den Benutzereingangsmitteln bestimmt wird; und mit einem Decoder zum Empfangen und Decodieren des erzeugten DCT-codierten Bildes. Auf geeignete Art und Weise ist ebenfalls eine Wiedergabeanordnung vorgesehen, die mit dem genannten Decoder gekoppelt ist und das decodierte Bild empfängt und wiedergibt.
- Ebenfalls entsprechend der vorliegenden Erfindung ist ein Verfahren geschaffen zur interaktiven Manipulation und Decodierung von DCT-codierten Makroblöcken von Pixeldaten mit den nachfolgenden Verfahrensschritten:
- - Vorverarbeitung der codierten Makoblockdaten zum Erzeugen einer Datei von makroblockdaten mit zwei verschiedenen unabhängigen Repräsentationen jedes Makroblocks zum Gebrauch als erster oder als Forsetzungsmakroblock in einer Reihe von Makroblockdaten in einem zusammengesetzten Bild;
- - das Zusammensetzen eines DCT-codierten Bildes aus selektierten Makroblockrepräsenttaionen der genannten Makroblockrepräsentationen, wobei die Selektion von Makroblöcken zum Formen des Bildes wenigstens teilweise in Reaktion auf den Benut zereingang gemacht wird; und
- - DCT-Decodierung des zusammengesetzten Bildes.
- Das Verfahren und die Anordnung benutzen die Verfügbarkeit von Makroblöcken zusammen mit der Bewegungskompensation, die innerhalb von Schemen, wie MPEG verfügbar sind, zum Erzeugen von Bildern unmittelbar vor der Decodierung zum Aktualisieren des Schirms. Das Verfahren ist effizient genug um die interaktive Animation von MPEG mit Laufzeit zu ermöglichen, sogar bei weniger kraftvollen Systemen wie CD-i. Dies kann typischerweise als die Animation von Bildspriten angesehen werden oder das Rollen eines großen MPEG-Hintergrundes. Im Wesentlichen wird dadurch ermöglicht, dass eine Varietät neuer Video-Spezialeffekte erzeugt wird durch eine geeignete Änderung von MPEG-Daten, wodurch Bilder interaktiv neu definiert werden.
- Der Vorteil der Durchführung von Bildmanipulation mit codierten Daten unmittelbar vor der Decodierung ist, dass eine dramatische Änderung an der Repräsentation des Schirms möglich wird durch die Variation oder Einführung einiger einfacher Codes innerhalb des Bildes. Im Falle von MPEG wird dies ermöglicht durch die Definition des MPEG-Codierungsschemas, das Bewegungsvektoren benutzt zum Kopieren von Daten aus vorhergehenden Frames statt explizite Codierung jedes einzelnen Frames.
- Weitere Merkmale der vorliegenden Erfindung werden in den Unteransprüchen definiert, deren Beschreibung durch Bezeichnung als hierin aufgenommen betrachtet wird, und worauf nun und in den nachfolgenden Ausführungsbeispielen Bezug genommen wird.
- Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben. Es zeigen:
- Fig. 1 eine blockschematische Darstellung einer die Erfindung verkörpernden Decoderanordnung,
- Fig. 2 die Bestimmung der Lage eines sich verlagernden Gegenstandes über aufeinanderfolgende Bilder,
- Fig. 3 eine Darstellung der Anwendung einer Makroblock-Sperrzone für sich verlagernde Gegenstände,
- Fig. 4 die Kompilation eines grossen rollenden Hintergrundes aus MPEG-Bildern,
- Fig. 5 die Struktur eines intracodierten Makroblocks, und
- Fig. 6 Makroblockdaten, formatiert für Bildkompilation.
- Die vorliegende Erfindung überwindet die Probleme von Makroblock- Manipulation durch Einführung einer Vorverarbeitungsschrittes. Dieses Schema funktioniert durch Neucodierung der intracodierten Makroblockdaten in einem Bild zum Erzeugen einer unabhängigen Darstellung mit Byte-Ausrichtung. Makroblockdaten werden in strukturierter Form gespeichert, so dass sie auf einfache Weise für eine schnelle Kopierung in andere Bilder indiziert werden können. Das Problem der differentiellen Codierung wird auch gelöst durch Anwendung einer Lösung die zwei einzelne Repräsentationen jedes zu verwendenden Makroblocks, wenn er als erster in einer Reihe von Makroblöcken benutzt wird oder als Teil einer Fortsetzung einer Reihe von Makroblöcken, wie dies nachstehend beschrieben wird. Das Vorverarbeitungschema kann verwendet werden zum Kombinieren einzeln codierter Bilder und ebenfalls zum Trennen von Sprites (Gegenstände mit einer definierten Begrenzung) von deren ursprünglichen MPEG-Szene.
- Das MPEG-System schafft eine Wiedergabeebene, die benutzt werden kann zum Wiedergeben von Folgen digital codierten Bildern. Die Änderung von Makroblöcken und die Verwendung der MPEG-Wiedergabeebene als graphische Steuersprache mit Laufzeit kann kraftvolle interaktive Videoeffekte herbeiführen. Dies ist möglich durch die Selektion und Manipulation der Bildformungsblöcke über eine Folge von Frames.
- Der Inhalt der Bilder kann mit Laufzeit dadurch geändert werden, dass Kombinationen von Makroblöcken in einer Folge von Bildern gewählt werden zum Erzeugen des gewünschten Effektes. Vorverarbeitete Makroblöcke werden in den Speicher als primitive Sprites oder als völlig codierte Bilder eingegeben zum Schaffen einer Datei von MPEG-Bilddaten, die interaktiv eingeführt und innerhalb einer MPEG-Folge verlagert werden können. Der Aufbau der Datei ermöglicht ein System zum Erzeugen einer Varietät interaktiver MPEG-Effekte, einschließlich der Einführung von MPEG-Sprites und anderer einzeln codierten Daten in die Szene, ermöglicht die Änderung von Bewegungsvektoren unmittelbar vor der Decodierung, wodurch Videoanimation innerhalb der Szene möglich ist, ermöglicht Laufzeitrollen großer Bildhintergründe, und das interaktive Kombinieren einzelner Teile von MPEG zu Mosaikbildern, die in eine animierte Folge eingebracht werden können. Die Erzeugung dieser Effekte wird nun detaillierter beschrieben.
- Eine Decoderanordnung mit einer Vorverarbeitungsstufe 10 ist in Fig. 1 dargestellt. Nebst der Vorverarbeitungsstufe umfasst die Anordnung eine Quelle von MPEG-Bilddaten (Festplatte 12 in diesem Beispiel), eine Decoderstufe 14 mit einem zugeordneten Wiedergabespeicher 16 und mit einem vorgeschalteten Puffer 18, und eine Wiedergabeanordnung 20, wie einen Elektronenstrahlröhrenmonitor. Die MPEG- Daten von der Quelle 12 werden über einen Datenbus 24 einem Vorverarbeitungskontroller 22 zugeführt. Nach der Vorverarbeitung (dies wird nachher noch detailliert beschrieben) lädt der Kontroller zwei unabhängige Repräsentationen jedes Makroblocks in einen Cache-Speicher 26 an Speicherstellen, die durch die Vorverarbeitung ermittelt worden sind, so dass der Cache-Speicher 26 eine Datei von MPEG-Bilddaten enthält.
- Im Gebrauch selektiert der Kontroller 22 die Makroblöcke aus der Datei zum Bilden eines wiedergegebenen Bildes in Abhängigkeit von dem gewünschten Effekt und unter Hinweis auf einen empfangenen Eingang von einer Benutzereingangsanordnung (UID) 28. Wenn der gewünschte Effekt das Laufzeitrollen eines großen Bildhintergrundes ist, sollte der Benutzereingang die Richtung und/oder die Geschwindigkeit der Rollbewegung bestimmen. Die UID ist auf geeignete Weise eine Maus oder eine Rollkugeleinrichtung, die über den Kontroller 22 einen beweglichen Cursor herbeiführen kann, der auf bekannte Art und Weise am Wiedergabeschirm 20 erscheint: andere Formen von UID, wie ein Tastenfeld mit Tasten für nach oben, nach unten, nach links, nach rechts, oder eine Graphikplatte mit einem Schreibstift können ebenfalls benutzt werden.
- Zum Wiedergeben von Gegenständen (Sprites) an einem Schirm und zum Verlagern derselben werden die Daten, die eine Anzahl Gegenstände repräsentie ren in MPEG-codierter Form in der oben genannten Datei gespeichert. Die Sprites können am Schirm dadurch gebildet werden, dass sie in eine Folge von MPEG-codierten Bildern gegen einen kahlen Hintergrund eingefügt werden und sie können bildweise von dem Schirm entfernt werden unter Verwendung der Vektor-aktualisierungsmodelle, die MPEG-Schafft. Es ist nur eine geringe Menge an Information, auf einfache Art und Weise unmittelbar vor der Decodierung berechnet, notwendig zum Aktualisieren des Schirms. Unter der Voraussetzung, dass bestimmte Beschränkungen über die Plazierung der Gegenstände am Schirm eingehalten werden (wird nachstehend noch beschrieben), ist es möglich Gegenstände interaktiv am Schirm beliebig zu verlagern.
- Zum Manipulieren eines einzigen Sprites am Schirm werden die zwei Moden (intra- und bewegungskompensiert, nicht codiert) wie folgt angewandt. Die Form und Pixelwerte eines Basisgegenstandes, wozu ein oder mehr Makroblöcke benutzt werden, werden identifiziert und diese Makroblöcke werden als Intra-Typ Makroblöcke in dem Cache-Speieger 26 gespeichert (Fig. 1). Bei nachfolgenden Bildern kann die Lage des Gegenstandes geändert werden, wie dies in Fig. 2 dargestellt ist. Die Figur zeugt aufeinanderfolgende Schirme zu der Zeit t = N - 1 und t = N. Die erforderliche neue Lage PN des Bezugspunktes X zu dem Zeitpunkt t = N wird bestimmt und die Verlagerung zwischen der Stelle des Bezugpunktes in dem letzten Bild (Verlagerungsvektor Vd zu dem Zeitpunkt t = N - 1) wird berechnet und in dem durch MPEG definierten Vektorformat codiert. Unter Anwendung der Tatsache, dass die Größe, die Form und die neue Lage des Bezugspunktes des Gegenstandes 30 (Fig. 3) bekannt sind, wird die Anzahl und die Lage der Makroblöcke 32, 34, 36, die sie teilweise einnehmen, berechnet. Diese Makroblöcke werden als bewegungskompensierte, nicht codierte Makroblöcke unter Verwendung des berechneten Verlagerungsvektors Vd in einem P-Bild codiert. In dieser Mode sind keine DCT-Daten erforderlich. Andere Makroblöcke in dem Bild können als "übergegriffene" Makroblöcke codiert werden für eine sehr große Effizienzaussicht für diejenigen Makroblöcke, die einen Teil eines Gegenstandes oder den ganzen Gegenstand in dem vorhergehenden Bild enthalten aber keinen Teil davon in dem aktuellen Bild enthalten. Diese Makroblöcke werden am einfachsten codiert als Intra-Makroblock, der die Hintergrundfarbe darstellt. Es gibt auch andere Codierungsmöglichkeiten für diese Blöcke.
- Mehrere Gegenstände können auf dieselbe Art und Weise wie einzelne Gegenstände verlagert werden, obschon es dabei einige zusätzliche Komplikationen gibt, die wegen etwaiger Interaktionen zwischen Gegenständen entstehen können. Da es nur möglich ist, einen Vektor zu übertragen, der zu dem vorhergehenden Bild je Makroblock zeigt, wobei dieser Vektor zu einem 16 · 16 Gebiet des vorhergehenden Bildes zeigt, soll bestimmt werden, dass Gegenstände nicht denselben Makroblock beaufschlagen. Diese Bedingung wird dadurch implementiert, dass eine Zone 38 um jeden Gegenstand 30 herum definiert wird, in die ein anderer Gegenstand nicht eintreten soll, wie in Fig. 3 dargestellt. Mit dieser Beschränkung können viele Gegenstände in der Szene auf dieselbe einfache Art und Weise manipuliert werden wie einzelne Gegenstände.
- Nachstehend wird die Laufzeit-Bildverschiebung einer MPEG-Video- Hintergrundszene näher beschrieben, wobei eine derartige Szene typischerweise aus einem festen Bild einer Landschaft hoher Auflösung genommen werden kann mit einem relativ hohen Detailpegel. Mit Hilfe aktueller MPEG-Codierer, die das Gebiet von Bildern abgrenzen, die codiert werden können (typischerweise bis 352 · 288 oder 768 · 144 Pixel) damit sie in Echtzeit decodiert werden können, wird ein großes und/oder detailliertes Bild auf geeignete Art und Weise in Abschnitten verarbeitet, und zwar mit der Vorverarbeitungsstufe, wobei die Erkenntnis angewandt wird, wie oben beschrieben. Es dürfte aber einleuchten, dass mit einem dazu zugeschnittenen Codierer ohne Bildgebietbegrenzung (oder wenigstens imstande, größere Bilder zu verarbeiten) kann der ganze Hintergrund als ein einziges Bild zum Herunterladen zu dem Cache- Speicher codiert werden.
- Die erste Stufe, in der es eine Codierungsgrenze an der Bildgröße gibt, ist das Hintergrundbild in geeignet bemessene Frames zur Codierung aufzuteilen. Da das ganze Bild nachher rekonstruiert werden soll, ist es wichtig, dass keine Daten verlorengehen oder an den Grenzen mit benachbarten Frames dupliziert werden. Die resultierenden Frames werden danach etikettiert zum Beibehalten deren betreffenden Lagen gegenüber dem ganzen Bild. Während des Codierungsprozesses wird ein Befehlsfile benutzt zum Instruieren des MPEG-Codierers, wie der codierte Ausgang erzeugt werden soll, wobei es spezielle Instruktionen gibt je nach dem verwendeten Codierer. Die Vorverarbeitungsstufe 10 (Fig. 1) erfordert eine Reihe von intracodierten Bildern, die jeden der Frames repräsentieren und folglich muss der Codierer- Befehlsfile nur I-Bilder spezifizieren. Da die Bildqualität für alle Teile des Hintergrundbildes konsistent sein soll, spezifiziert der Befehl einen festen Quantisierungspegel zum Codieren statt der typisch festen Bitraten-Bedingung.
- Fig. 4 illustriert vier Frames 40A, B, C, D die gegeneinander gelegt worden sind und die Vorverarbeitungsstufe wird typischerweise ein Schirmbild aus diesen Daten extrahieren, wie dies durch den gestrichelten Kasten 42 angegeben ist. In diesem Fall werden Daten von aalen vier Frames in dem schlussendlichen Bild benutzt. Jedes einzelne Frame, das unabhängig codiert ist, muss auseinandergenommen werden und danach müssen die zusammensetzenden Daten durch die Vorverarbeitungsstufe rekonstruiert werden zum Erzeugen eines zwischenliegenden File-Formats in dem Cache-Speicher 26, der das große einzelne Bild enthält. Das Zwischen-File- Format wird durch die Verarbeitung jedes der I-Bilder nacheinander erzeugt, wobei die Bilder in einer bestimmten Reihenfolge zur Verarbeitung gegliedert sind. Die I- Bildreihenfolge der eintreffenden Bilddaten ist derart entworfen, dass das Bild in Reihen von links nach rechts und von oben nach unten geformt wird.
- Jedes eintreffende intracodierte Frame besteht aus einer geschichteten Struktur von Daten, wie in der MPEG-Videospezifikation beschrieben, wobei in dieser Struktur jeder Makroblock zu sechs Stücken zerbrochen wird, von denen die vier ersten Leuchtdichtecodes und die zwei letzten Farbartcodes enthalten. Intracodierte Makroblöcke enthalten in dieser Anwendungsform keine Bewegungsinformation, da jeder Makroblock unabhängig codiert ist. Durch eine differentielle Codierung aber, wobei einige Parameter von dem vorhergehenden Makroblock übertragen werden, werden durch die inhärente Neugliederung von Makroblöcken als Ergebnis der vergrößerten Bildabmessungen Probleme entstehen.
- Fig. 5 zeigt die Struktur eines intracodierten Makroblocks (wobei der erste der sechs Blöcke dargestellt ist) mit einigen Beispielcodes. Der Makroblock hat eine Anzahl Parameter, die in einer bestimmten Reihenfolge erscheinen. Die Anzahl Bits, die jedem Parameter entspricht, ist variable und Daten sollen bitweise für jeden Parameter gesammelt werden und mit einer Tabelle erlaubter Werte in Einklang ge bracht werden. Tabellen mit Werten für jeden Parameter sind definiert auf Basis des Codesatzes, definiert in der MPEG-Video-Spezifikation.
- Ein passender Algorithmus wird benutzt zum Identifizieren des codierten Wertes jedes Parameters durch eines Eingeben der Bits und durch Durchführung eines Tests zum Überprüfen, ob die richtige Anzahl und die Anzahl Bits, durch die sie repräsentiert werden, den Werten in den betreffenden Parametertabellen entspricht. Dies ist erforderlich, da der Code durch eine Anzahl vorhergehender Nullen definiert sein kann. Wenn eine Übereinstimmung gefunden wird, geht die Makroblockdecodierung zu dem nächsten Parameter, bis alle codierten Parameter ausgelesen sind.
- Makroblöcke werden derart decodiert, dass sie leichter manipuliert werden können. Damit jeder Makroblock in einem Bild einzigartig adressiert wird innerhalb des Chach-Speichers 26 (Fig. 1), und daraus kopiert wird, werden die Makroblöcke derart formatiert, dass sie genau innerhalb Byt-Begrenzungen liegen. Dies kann auf geeignete Art und Weise erreicht werden durch Addierung der geeigneten Anzahl Bits von Stopfdaten zu dem Makroblock. Die Stopfdaten sind ein Code, der in Vielfachen von 11 Bits am Anfang des Makroblockadresscodes vorgesehen sein kann. Der Code wird das decodierte Bild nicht beeinträchtigen, da es erkannt und von dem Decoder ignoriert wird. Während der Vorverarbeitungsstufe, wenn jeder Makroblock decodiert wird, wird die Größe benutzt zum Bestimmen der Anzahl Stopfbits (zwischen 0 und 77) die zu der Front des Makroblocks hinzu addiert werden müssen um zu gewährleisten, dass der Makroblock an einer Byte-Begrenzung endet. Die Änderungen in der Makroblock-Codierung werden in einer copierten Version in dem Cache- Speicher durchgeführt, damit Änderungen an der Bitposition der Daten möglich sind, ohne dass dadurch die Eingangsdaten beeinträchtigt werden. Wenn die Decodierung des Makroblocks beendet ist, wird die neue Repräsentation in dem Chache-Speicher gespeichert zusammen mit der Größe in Bytes und ebenfalls die Lage gegenüber dem ganzen Bild. Die Bilddaten können deswegen in ein neues File-Formal umgewandelt werden, das Größe und Lageninformation enthält, wodurch jeder Makroblock unabhängig angeordnet und ggf. kopiert werden kann.
- Wie oben bereits erwähnt, werden beim Decodieren eines Bildes einige Parameter des vorhergehenden Makroblocks übertragen und benutzt zum Decodieren des aktuellen Makroblocks. Die Vergrößerung des Bildformats verursacht eine Neuaufzeichnung der Makroblöcke. Dies bedeutet, dass zum Rekonstruieren des kompletten Bildes die Vorverarbeitungsstufe bestimmte Änderungen an den Makroblockcodes durchführen muss und dass spezifischen zwei Probleme entstehen. Erstens werden zwischen Makroblöcken, die Diskrepanzen an den Bildbegrenzungen verursachen, differentielle Codes getragen und zweitens muss die einwandfreie Makroblock- Quantisierung für jeden Makroblock gesetzt werden.
- Als Teil des Bildcodierungsprozesses wird die Menge Daten, die erforderlich sind zum Repräsentieren jedes Makroblocks durch eine differentielle Codierung des DC-Anteils der DCT-Koeffizienten reduziert. Ausgehend von einem Ausgangswert (beispielsweise 128) an jedem Scheibenkopf wird jeder DC-Koeffizient durch Addierung des differentiellen Wertes, der in dem betreffenden Block eines Makroblocks gespeichert ist, bewertet. Danach wird dieser Laufwert zu dem nächsten Differential übertragen usw., wobei differentielle Werte für jeden der sechs Blöcke innerhalb jedes Makroblocks codiert werden.
- Wenn codierte Frames kombiniert werden, wird die Reihenfolge der Makroblöcke geändert, was ein Problem gibt wegen der Störung in den differentiellen Codes, die zwischen Makroblöcken von dem Ende der einen Zeile zu dem Anfang der nächsten Zeile passiert sind, was einen Zerfall in dem Bild herbeiführt. Eine Art und Weise zum Rückstellen der differentiellen Codes, die von vorhergehenden Makroblöcken übertragen worden sind, ist das Einführen eines Scheibenkopfes, wobei die differentiellen Werte auf 128 zurückgesetzt sind. Dies würde aber die Menge an Codes, erforderlich zum Repräsentieren des Bildes wesentlich steigern und eine zusätzliche Verarbeitung würde erforderlich sein zum Einfügen eines Codes in den Scheibenkopf, der die Zeilenposition angibt.
- Eine alternative Lösung ist, den richtigen DCT-Koeffizienten jedes Mekroblocks einzeln derart zu speichern, dass für jeden Makroblock am Anfang einer Zeile die DCT-Differentiale neu bewertet und in den Makroblock neu codiert werden können. Dies aber könnte zu einer Änderung der Anzahl Bits in dem Makroblock führen, und zwar derart, dass zusätzliche Arbeit erforderlich ist zum Verlagern aller Ma kroblockdaten der erforderlichen Anzahl Bits zum Unterbringen der neuen Codes vor der Hinzufügung von Stopfdaten zum Erzielen einer Byte-Synchronisation.
- Eine bevorzugte Lösung ist die Behandlung des ersten Makroblocks einer Zeile als Spezialfall. Da jeder Makroblock verfügbar sein muss zum Formen des ersten Makroblocks einer Zeile und ebenfalls als eine Fortsetzung einer Makroblock- Folge, wird er in zwei einzelnen Formen in dem Cache-Speicher gespeichert und, in der Rekonstruktion eines Bildes, kann die Vorverarbeitungsstufe zugreifen, welche der beiden Formen auch die geeignete sein mag.
- Die Vorverarbeitungsstufe tastet deswegen die Eingangs-Makroblock- Daten zweimal ab. Das erste Mal bewertet sie den aktuellen Wert jedes DCT-Codes in Bezug auf die Werte, die von dem vorhergehenden Makroblock übertragen worden sind, und die Differentiale werden danach neu bewertet und gegenüber dem Ausgangswert neu codiert. Die Makroblockdaten werden danach mit einem Scheibenkopf mit dem geeigneten Quantisierungswert für den Makroblock gespeichert. Bei dem zweiten Durchgang wird eine einzelne Repräsentation jedes Makroblocks gespeichert, wobei die differentiellen Werte ungeändert bleiben. Die zwei einzelnen Repräsentationen können danach in dem Anwendungsprogramm zur Bildung eines Schirmbildes benutzt werden zum Kopieren jeweils einer Zeile, anfangend beispielsweise mit einem Start-Makroblock, dem 21 Fortsetzungs-Makroblöcke folgen.
- Ein zweites Problem zusammenhängend mit der Neugliederung der Makroblöcke wird verursacht durch eine Änderung in der Makroblock-Quantisierung, die zwischen aufeinanderfolgenden Makroblöcken passiert ist. Dies wieder bildet andere Probleme, wenn Makroblöcke am Start einer Zeile gegenüber Makroblöcken im restlichen Teil einer Zeile betrachtet werden.
- Während die Makroblöcke hintereinander decodiert werden, wird ein Wert der aktuellen Quantisierung eingehalten. Dieser kann geändert werden, wenn Scheibenköpfen zwischen Makroblöcken begegnet werden oder wenn Quantisierung innerhalb eines Makroblocks definiert wird. Für Makroblöcke am Anfang einer Zeile ist es bequem einen Scheibenkopf vor jeden Makroblock zu setzen und wenn die aktuelle Quantisierung explizit in den Kopf eingefügt wird. Dies lässt sich während der Vorverarbeitung relativ einfach machen, weil es das DCT-Differential zurücksetzt und die einwandfreie Quantisierung einfügt. Was aber wichtiger ist, verschiebt es den Start des Makroblocks um eine Anzahl Bits (beispielsweise 6), was eine zeitaufwendige Angelegenheit wäre, wenn dies während der Laufzeit-Bildkompilation stattfinden sollte. Das Einfügen von Scheibenköpfe ermöglicht es ebenfalls, dass die Makroblockquantisierung innerhalb des etwaigen Makroblocks gelöscht wird. Für Makroblöcke, die in einer Fortsetzung einer Zeile benutzt werden sollen wird der Start- Makroblock die Ausgangsquantisierung setzen, so dass es nur notwendig ist, den codierten Wert zu ändern, wenn ein Scheibenkopf zwischen Makroblöcken vorhanden ist.
- Kehren wird nun zurück zu der Konstruktion von Frames, die dem Decoder 14 (Fig. 1) zugeführt werden sollen, so ist die erste Aufgabe, das erforderliche gültige MPEG-Bild möglichst schnell zu erzeugen. Aus diesem Grund werden möglichst viele Daten vorberechnet und gespeichert und eine On-Line-Konstruktion von Frames wird dadurch erzielt, dass die relevanten Daten kopiert und einige Parameter verbessert werden.
- Es ist wichtig, dass für die Video-Frames, die einem Zieldecoder zugeführt werden sollen, sie alle durch die MPEG-Video- und Systemspezifikationen auferlegten Bedingungen erfüllen. Dies bedeutet, dass die Frame-Daten nicht nur den einwandfreien Satz von Makroblöcken enthalten, sondern auch alle zusätzlichen Pegel von Daten, welche die erforderliche Zeit- und Multiplexinformation tragen, so dass sie auf einwandfreie Art und Weise decodiert und zur Wiedergabe angeboten werden können. Folglich werden die Frame-Daten in System- und Video-Schichten eingewickelt.
- Die Frame-Konstruktion wird in zwei Stufen erreicht: die Formation der Video-Daten und das Verpacken in der Systemschicht. In der ersten Stufe werden die erforderlichen Makroblock-Daten in Reaktion auf Eingaben vom Benutzer aus selektiert und aus den in dem Cache-Speicher gespeicherten vorverarbeiteten MPEG- Daten in den Puffer 18 geladen. Die Daten werden derart gegliedert, dass sie in Blöcken kopiert werden können und die Größeninformation wird benutzt zum Aufstellen einer Anordnung von Zeigern zu dem Start jedes Makroblocks in dem Bild. Dies Gate- Elektrodeeschieht für die Start-Makroblöcke sowie die Fortsetzungs-Makroblöcke, wie in Fig. 6 dargestellt. Es sei bemerkt, dass die Anordnung von Scheibenköpfen vor den Stopfbits und von Makroblockdaten für die Start-Makroblöcke, wie oben beschrieben. Da die erforderliche Bildgröße für eine bestimmte Applikation bekannt ist, wird ebenfalls eine zusätzliche Verarbeitung an den Fortsetzungs-Makroblockdaten durchgeführt zum Vorberechnen der Anzahl Bytes, erforderlich zum Kopieren einer Zeile mit dem Wert von Makroblöcken.
- In der Laufzeit muss jedes Frame mit Videodaten kompiliert werden um die MPEG-Videospezifikation zu erfüllen und deswegen muss es eine spezifische Struktur haben. Frames sind basiert auf einer festen Bildgröße, spezifiziert in einem Sequenz-Kopf und zusätzliche Information mit der Bitrate und der Strominformation wird ebenfalls geliefert. Dieser Information geht die Schicht der Gruppe von Bildern (GOP) vorher, die für diesen Anwendungsbereich nicht relevant ist. Die Bildschicht wird danach benutzt zum Trennen verschiedene Frames.
- Wenn die x- und y-Koordinaten für das nächste Bild (durch den UID- Eingang bestimmt) gegeben sind, werden die Makroblock-Daten in Zeilen kopiert. Am Anfang jeder Zeile gibt es einen Scheibenkopf, wie in Fig. 6, der zusammen mit dem Start-Makroblock kopiert wird, wobei der restliche Teil der Zeile aus den geeigneten Fortsetzungs-Makroblöcken kopiert wird.
- Wenn einmal ein MPEG-Video-Frame zur Wiedergabe in dem Puffer 18 kompiliert worden ist, muss dieses auf geeignete Art und Weise verpackt werden, so dass der MPEG-Decoder 14 es wiedergeben kann. Dies erfordert, dass die Daten zu Bündeln von Bytes (Video-Plattensektoren oder Pakete) verpackt werden sollen, die dies durch die Systemschicht definiert ist. Zusätzliche Information wird in Paketen zugeführt, die Zeit- und Datenrateninformation enthalten. Jedes Paket ist weiterhin in ein oder mehrere Unterpakete aufgeteilt, welche die MPEG-Daten enthalten. Auf diese Art und Weise kann ein Paket Unterpakete enthalten für verschiedene MPEG-Ströme. Zusätzlich zu dem Strom ID enthalten die Paketköpfe ebenfalls Datengrößeninformation und sie können Zeitinformation enthalten, die den Decoder intruiert, wenn er mit der Decodierung anfangen soll oder wenn er ein bestimmtes Frame mit Daten geben soll.
- Ein Paketkopf wird durch den Startcode identifiziert und erscheint am Anfang jedes Sektors. In dem Kopf gelieferte Zeitmerkmale ermöglichen es, dass der Decoder 14 das Eintreffen der enthaltenen Daten synchronisiert. Das erste Zeitmerkmal des ersten Pakets wird auf Null gesetzt, danach werden aufeinanderfolgende Pakete Zeitmerkmale haben, die mit zunehmenden Schritten größer werden. Diese Werte werden für jeden Paketkopf korrigiert, wenn jedes Paket mit Daten gefüllt wird. Das erste Paket enthält ebenfalls einen Systemkopf, der eine Varietät an Information enthält, die den Decoder über die Datenraten und die Arbeitsbedingungen, erforderlich zum Decodieren des Datenstroms informieren.
- Der Paketkopf ist der niedrigste Pegel des Systemkopfes, der die Daten eines bestimmten Stromes und einer bestimmten Größe enthält. Die MPEG-Daten werden über die Pakete der Systemschicht verteilt. Stopfpakete werden ebenfalls benutzt zum Ergänzen des restlichen Raums in dem letzten Sektor, der zum Speichern eines Bildes benutzt wird. Decodierungszeitmerkmale (DTS) und Präsentationszeitmerkmale (PTS) sind etwaige Zeitcodes der MPEG-Norm und teilen dem Decoder mit, wann er decodieren und das nächsten Bild präsentieren soll. In diesem Anwendungsbereich werden sie in dem ersten Datenpaket des ersten Pakets jedes Frams geliefert, wobei diese Felder mit einer Laufzeit geschrieben werden, da sie von dem aktuellen Zeitmerkmal und der Größe des kompilierten Bildes abhängig sind.
- Wenn eine Frame-Größe von 22 zu 18 Makroblöcken (was 352 zu 288 Pixel entspricht) vorausgesetzt wird, wird das erste Schirmbild kompiliert um mit dem linken oberen Teil des kompletten Bildes übereinzustimmen. Die erste Zeile wird von dem Start-Makroblock bei 0,0 kompiliert, wonach 21 Fortstezungsmakroblöcke von 1,0 folgen. Die restlichen 17 Zeilen werden auf gleich Art und Weise kopiert. Die Daten werden in dem Video-Puffer geformt, nachdem sie in der Systemschicht eingewickelt und zu Sektoren verpackt worden sind.
- Eine wichtige Bemerkung über die Systemschicht für diesen Anwendungsbereich ist, dass sie vorberechnet und in dem Speicher gespeichert werden kann. Während der On-Line-Bildkompilation kann Verarbeitungszeit dadurch eingespart werden, dass die Systemschichtköpfe unmittelbar aus dem Speicher kopiert werden.
- Wenn wir nun die Bildverschiebung des Hintergrundes näher betrachten, so wird die Lage der Maus (Eingang von UID 28) auf 0,0 initialisiert, damit dies mit dem ursprünglichen Schirmbild übereinstimmt und der Kontroller 22 empfängt über die Signalleitung 50 ein Signal, wenn der Decoder 14 das erste Bild decodiert hat. Wenn sich die Lage der Maus ändert, wird das nächste Bild kompiliert, ungeachtet davon, ob das letzte Bild bis an das Ende decodiert worden ist (d. h. bevor das Signal empfangen wird). Solange die Anzahl gespeicherter Frames in dem Puffer 18 nicht aufgebaut wird, profitiert die Anwendung von einer schnelleren Aktualisierungsrate, da die Bildkompilation und Decodierung parallel funktionieren dürfen, was für die erwünschte geschmeidige Bildverschiebung günstig ist.
- Zum Schaffen eines codierten Hintergrundes relativ hoher Qualität beim Einhalten einer befriedigenden Aktualisierungsrate können die Frame-Größen durch die Anwendung eines prädiktiven Kopierverfahrens reduziert werden. Die Möglichkeit der Verwendung von P Frames stützt auf die Tatsache, dass aufeinanderfolgende Frames des Hintergrundes einander sehr ähnlich sind, mit einer großen Menge Bilddaten von dem vorhergehenden Bild. Wenn das erste Frame einmal dargestellt ist, kann das prädiktive Kopieren unter Verwendung von P Frames benutzt werden zum Kompilieren aufeinanderfolgender Frames, wobei einige zusätzliche Daten erforderlich sind, je nach der Richtung der Bildverschiebung. Die grundsätzliche Differenz in Bezug auf die oben beschriebene Intra-Frame-Technik ist der Gebrauch des Decoders 14 zum Kopieren derjenigen Makroblöcke, die in dem vorhergehenden Bild vorhanden (und in dem Wiedergabespeicher 16 gespeichert) sind.
- Das Bild wird unter Verwendung einer Kombination von intracodierten Makroblöcken zusammen mit den erforderlichen Makroblockkopierbefehlen zum Aufsichen und den Neuanordnungsdaten von dem vorhergehenden Frame konstruiert. Der Decoder wird diese Information benutzen zum Durchführen der erforderlichen Kopiervorgänge zum Rekonstruieren des erforderlichen Bildes. Es soll bestimmt werden, wie das Bild gegenüber dem letzten Frame verschoben werden soll und für jede Zeile in dem Bild, ob neue Daten zu der Front oder zu dem Ende der Zeile hinzugefügt werden sollen. Der geeignete Makroblockkopierbefehl muss bewertet werden und es müssen Stopfdaten zum byteweisen Ausrichten der codierten Repräsentation hinzugefügt werden. Von dem einen Frame zu dem nächsten kann das Bild nach oben, nach unten, nach links oder nach rechts verschoben werden oder in einer kombinierten Bewegung, wobei es insgesamt 8 verschiedene Richtungen gibt mit verschiedenen Größen. Diese Fälle können durch 4 einzelne Fälle behandelt werden, die bestimmen, ob das Bild verschoben worden ist.
- Wenn das Frame nach oben verschoben worden ist, soll die entsprechende Anzahl Zeilen der intracodierten Makroblöcke, die der neuen Frame-Position entsprechen, verwendet werden zum Gestalten der ersten Zeilen des neuen Frames. In diesem Fall wird die Gestaltung des restlichen Teils des Frames abhängig sein von der Frage, ob das Frame ebenfalls in horizontaler Richtung verschoben worden ist.
- Wenn das Frame in horizontaler Richtung verschoben worden ist, müssen in jede Zeile des Bildes intracodierte Makroblöcke eingefügt werden. Wenn das Frame nach links verschoben wurde, werden die betreffenden intracodierten Makroblöcke am Anfang jeder Zeile erscheinen und sie werden am Ende jeder Zeile erscheinen, wenn das Bild nach rechts verschoben wurde. Auf jeden Fall wird der restliche Teil der Zeile aus Makroblöcken von dem vorhergehenden Frame aufgebaut. Der Decoder wird instruiert zum Kopieren dieser Daten durch eine codierte Folge, die sich auf andere Makroblöcke der Zeile bezieht und identifiziert, von woher die Daten kopiert werden sollen. Diese codierte Folge wird in Echtzeit formuliert.
- Wenn das Frame nicht horizontal verschoben wurde, kann eine codierte Folge ebenfalls bewertet werden zum Kopieren vieler Zeilen von Daten. Es ist wichtig, dass diese Instruktion in der ersten Datenzeile angewandt wird, wenn ein Scheibenkopf benutzt werden soll, dem ersten Makroblock vorherzugehen.
- Der letzte Fall ist, wenn das Frame nach unten verschoben wurde. Dies ist ein ähnlicher Fall wie bei der Verschiebung nach oben, ausgenommen, dass die neuen intracodierten Daten unten statt oben an das neue Frame gesetzt werden.
- Eine Komplikation des Gebrauchs von intracodierten Makroblöcken innerhalb P-Frames gegenüber I-Frames ist, dass die MPEG-Video-Spezifikation verschiedene Codes identifiziert um die I-Frame-Makroblock-Typen anzugeben. Um eine schnelle Makroblock-Kopierung zu ermöglichen ist es notwendig, dass man über einzelne Repräsentationen für Makroblöcke verfügt, die als Teil von P-Frames statt von I-Frames benutzt werden. Diese Daten müssen formatiert und Byte-ausgerichtet wer den, wobei, wie oben, Stopfdaten benutzt werden. Das Programm wird folglich ebenfalls einen anderen doppelten Satz (wie oben) brauchen für Start- und Fortsetzungsmakroblöcke, der erforderliche Cache-Speicher für eine doppelte Kopie des ganzen Bildes wird effektiv verdoppelt.
- Zusammenfassend lässt sich sagen, die Echtzeit-Kompilation und das Verschieben von MPEG-Frames ist eine komplexe Aufgabe, die Codierung, Vorverarbeitung, Echtzeit-Bilderzeugung und Steuerung zur Wiedergabe erfordert. Die Bilddaten werden derart vorbereitet, dass auf sie zugegriffen werden kann und dass sie schnell kopiert werden können. Die Vorverarbeitungsstufe funktioniert wie ein vereinfachter Hochgeschwindigkeits-Codierer und Multiplexer, wobei jedes Frame als Teil eines Datenstroms mit hoher Geschwindigkeit erzeugt wird, wobei dennoch die MPEG 1-Video- und Systemschichtspezifikationen eingehalten werden.
Claims (1)
1. Interaktive Bildmanipulationsanordnung mit einem Eingang für diskrete
Kosinustransformation (DCT)-codierte Makroblöcke von Pixeldaten und mit:
- einem Bilddaten-Cache-Speicher (26);
- einem Vorverarbeitungskontroller (22) zum Verarbeiten empfangener
Makroblockdaten zum Erzeugen zweier verschiedener unabhängiger Repräsentationen jedes
Makroblocks zum Gebrauch als erster Makroblock oder als ein Fortsetzungsmakroblock
in einer Zeile von Makroblockdaten in einem zusammengesetzten Bild, zum Speichern
der genannten Repräsentationen in dem Chache-Speicher (26), und zum Erzeugen
eines DCT-codierten Bildes aus selektierten Repräsentationen der genannten
Repräsentationen, ausgelesen aus dem Chache-Speicher;
- mit Benutzereingangsmitteln (28), die mit dem Kontroller (22) gekoppelt sind, wobei
die Selektion der gespeicherten Makroblockrepräsentationen in dem erzeugten Bild
wenigstens teilweise durch Eingangssignale von den Benutzereingangsmitteln
bestimmt wird; und
- mit einem Decoder (14) zum Empfangen und Decodieren des erzeugten DCT-
codierten Bildes.
2. Anordnung nach Anspruch 1, weiterhin mit einer
Wiedergabeanordnung (20), die mit dem genannten Decoder (14) gekoppelt ist und das decodierte Bild
empfängt und wiedergibt.
3. Anordnung nach Anspruch 1, wobei der Vorverarbeitungskontroller
(22) das genannte DCT-codierte Bild als Vordergrund-und-Hintergrundpaar von
Pixelebenen erzeugt und jede selektierte Makroblockrepräsentation einer einzigen Ebene
der genannten Ebenen zuordnet.
4. Anordnung nach Anspruch 3, wobei ein in einem oder mehreren
Makroblöcken von Pixeldaten definierte Bildsprite in dem Chache-Speicher (26)
gespei
chert wird und wobei die Benutzereingangsmittel (28) in Reaktion auf Eingaben vom
Benutzer Positionssignale erzeugen, wobei der Vorverarbeitungskontroller (22) derart
funktioniert, dass er das Sprite in einer der Pixelebenen des Bildes an einer Stelle
positioniert, die darin durch die Positionssignale bestimmt ist.
5. Verfahren zur interaktiven Manipulation und Decodierung von DCT-
codierten Makroblöcken von Pixeldaten mit den nachfolgenden Verfahrensschritten:
- Vorverarbeitung (22) der codierten Makoblockdaten zum Erzeugen einer Datei von
Makroblockdaten mit zwei verschiedenen unabhängigen Repräsentationen jedes
Makroblocks zum Gebrauch als erster oder als Forsetzungsmakroblock in einer Zeile von
Makroblockdaten in einem zusammengesetzten Bild;
- das Zusammensetzen eines DCT-codierten Bildes aus selektierten
Makroblockrepräsenttaionen der genannten Makroblockrepräsentationen, wobei die Selektion von
Makroblöcken zum Formen des Bildes wenigstens teilweise in Reaktion auf den
Benutzereingang (28) gemacht wird; und
- DCT-Decodierung (14) des zusammengesetzten Bildes.
6. Verfahren nach Anspruch 5, wobei der Verfahrensschritt der
Vorverarbeitung (22) das Bit-Stopfen umfasst, so dass jede Makroblockrepräsentation eine
ganze Zahl von Datenbytes enthält.
7. Verfahren nach Anspruch 5, wobei das DCT-codierte Bild als
überlagerte Vordergrund und Hintergrundbildebenen zusammengesetzt sind, wobei die
selektierten Makroblockrepräsentationen betreffenden Bildebenen zugeordnet sind und
die Lage eines oder mehrerer der genannten Makroblöcke in einer der Bildebenen
durch den benutzereingang (28) bestimmt wird.
8. Verfahren nach Anspruch 5, wobei, während die DCT-codierten
makroblockdaten eine Anzahl Bilder (A, B, C, D) enthalten, welche die betreffenden
Teile eines größeren Hintergrundbildes (40) schaffen, der Schritt der Vorverarbeitung
die Kompilation der genannten Bilder umfasst zum Neuerzeugen des genannten
Hintergrundbildes (40), und die in dem Schritt der Zusammensetzung eines
DCT-codierten Bildes benutzten selektierten Makroblockrepräsentationen diejenigen in einem
Fenster (42) sind, die einen selektierten Teil des genannten Hintergrundbildes (40)
identifizieren.
9. Verfahren nach Anspruch 8, wobei der Benutzereingang eine Richtung
der Bewegung spezifiziert und das Fenster (42) gegenüber dem genannten
Hintergrundbild (40) in Reaktion darauf verschoben wird.
TEXT IN DER ZEICHNUNG
Fig. 1
12 Festplatte
22 Steuerung
26 Cache-Speicher
18 Puffer
16 Wiedergabespeicher
14 Decoder
20 Wiedergabeanordnung
Fig. 5
Codierte Eingangsdaten
Decodiert Adresse
Typ
Quantisierung
Größe 1. Block (Leuchtdichte)
Differential
Koeffizient
Ende des Blocks
Größe nächster Block
Scheibenkopf Startmakroblöcke Fortsetzungsmakroblöcke Stopfen
Stopfen Zeiger () Zeiger () Makroblock
Makroblock Größe () Größe () Stopfen
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB9510093.9A GB9510093D0 (en) | 1995-05-18 | 1995-05-18 | Interactive image manipulation |
PCT/IB1996/000337 WO1996037074A2 (en) | 1995-05-18 | 1996-04-17 | Interactive image manipulation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69609141D1 DE69609141D1 (de) | 2000-08-10 |
DE69609141T2 true DE69609141T2 (de) | 2001-03-01 |
Family
ID=10774679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69609141T Expired - Fee Related DE69609141T2 (de) | 1995-05-18 | 1996-04-17 | Interaktive bildmanipulation |
Country Status (7)
Country | Link |
---|---|
US (1) | US5815604A (de) |
EP (1) | EP0771504B1 (de) |
JP (1) | JPH10503358A (de) |
KR (1) | KR100418147B1 (de) |
DE (1) | DE69609141T2 (de) |
GB (1) | GB9510093D0 (de) |
WO (1) | WO1996037074A2 (de) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9606680D0 (en) * | 1996-03-29 | 1996-06-05 | Philips Electronics Nv | Compressed audio signal processing |
US5870754A (en) * | 1996-04-25 | 1999-02-09 | Philips Electronics North America Corporation | Video retrieval of MPEG compressed sequences using DC and motion signatures |
US6067321A (en) * | 1997-04-03 | 2000-05-23 | Lsi Logic Corporation | Method and apparatus for two-row macroblock decoding to improve caching efficiency |
US6178203B1 (en) * | 1997-04-03 | 2001-01-23 | Lsi Logic Corporation | Method and apparatus for two-row decoding of MPEG video |
US6606746B1 (en) | 1997-10-16 | 2003-08-12 | Opentv, Inc. | Interactive television system and method for displaying a graphical user interface using insert pictures |
US5867208A (en) * | 1997-10-28 | 1999-02-02 | Sun Microsystems, Inc. | Encoding system and method for scrolling encoded MPEG stills in an interactive television application |
EP0936813A1 (de) * | 1998-02-16 | 1999-08-18 | CANAL+ Société Anonyme | Digitale Bildverarbeitung in einem Kodierer |
US6246801B1 (en) * | 1998-03-06 | 2001-06-12 | Lucent Technologies Inc. | Method and apparatus for generating selected image views from a larger image having dependent macroblocks |
US6337882B1 (en) * | 1998-03-06 | 2002-01-08 | Lucent Technologies Inc. | Method and apparatus for generating unlimited selected image views from a larger image |
US20020044599A1 (en) * | 1998-03-06 | 2002-04-18 | David Gray Boyer | Method and apparatus for generating selected image views from a larger image |
US6266369B1 (en) * | 1998-06-09 | 2001-07-24 | Worldgate Service, Inc. | MPEG encoding technique for encoding web pages |
US6697525B1 (en) * | 1998-10-02 | 2004-02-24 | Parthusceva Ltd. | System method and apparatus for performing a transform on a digital image |
US6675387B1 (en) * | 1999-04-06 | 2004-01-06 | Liberate Technologies | System and methods for preparing multimedia data using digital video data compression |
WO2000064183A1 (en) * | 1999-04-16 | 2000-10-26 | Koninklijke Philips Electronics N.V. | Video encoder and decoder |
US20020188440A1 (en) * | 2001-04-27 | 2002-12-12 | Foster Mark J. | Optimized MPEG-2 encoding for computer-generated output |
US6894690B2 (en) * | 2001-06-20 | 2005-05-17 | Engineering Technology Associates, Inc. | Method and apparatus for capturing and viewing a sequence of 3-D images |
US6919901B2 (en) * | 2002-01-15 | 2005-07-19 | International Business Machines Corporation | Graphics system register data generation |
EP1492351A1 (de) * | 2003-06-27 | 2004-12-29 | Sony NetServices GmbH | Methode und System zur Übertragung und zum Empfangen von Vordergrund/Hintergrund segmentierten Bildern in DVB/MHP Systemen |
US8170096B1 (en) * | 2003-11-18 | 2012-05-01 | Visible World, Inc. | System and method for optimized encoding and transmission of a plurality of substantially similar video fragments |
WO2005081948A2 (en) * | 2004-02-24 | 2005-09-09 | Hunter Douglas Inc. | Flexible glass fiber weave |
KR100780124B1 (ko) * | 2004-06-27 | 2007-11-27 | 애플 인크. | 이미지들의 인코딩 및 디코딩 |
US20060277457A1 (en) * | 2005-06-07 | 2006-12-07 | Salkind Carole T | Method and apparatus for integrating video into web logging |
US8074248B2 (en) | 2005-07-26 | 2011-12-06 | Activevideo Networks, Inc. | System and method for providing video content associated with a source image to a television in a communication network |
WO2008088772A2 (en) * | 2007-01-12 | 2008-07-24 | Ictv, Inc. | Mpeg objects and systems and methods for using mpeg objects |
US9826197B2 (en) | 2007-01-12 | 2017-11-21 | Activevideo Networks, Inc. | Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device |
JP5667364B2 (ja) * | 2010-02-10 | 2015-02-12 | 株式会社メガチップス | 画像符号化装置 |
US8824554B2 (en) | 2010-09-02 | 2014-09-02 | Intersil Americas LLC | Systems and methods for video content analysis |
JP5866125B2 (ja) | 2010-10-14 | 2016-02-17 | アクティブビデオ ネットワークス, インコーポレイテッド | ケーブルテレビシステムを使用したビデオ装置間のデジタルビデオストリーミング |
EP2695388B1 (de) | 2011-04-07 | 2017-06-07 | ActiveVideo Networks, Inc. | Latenzreduktion in videoverteilungsnetzwerken mit adaptiver bitrate |
US8831108B2 (en) | 2011-05-04 | 2014-09-09 | Cavium, Inc. | Low latency rate control system and method |
US10027982B2 (en) | 2011-10-19 | 2018-07-17 | Microsoft Technology Licensing, Llc | Segmented-block coding |
EP2815582B1 (de) | 2012-01-09 | 2019-09-04 | ActiveVideo Networks, Inc. | Wiedergabe einer interaktiven vereinfachten benutzerschnittstelle auf einem fernsehgerät |
US9800945B2 (en) | 2012-04-03 | 2017-10-24 | Activevideo Networks, Inc. | Class-based intelligent multiplexing over unmanaged networks |
US9123084B2 (en) | 2012-04-12 | 2015-09-01 | Activevideo Networks, Inc. | Graphical application integration with MPEG objects |
KR101400639B1 (ko) * | 2012-06-29 | 2014-05-29 | 인텔렉추얼디스커버리 주식회사 | 서브 이미지 쉐어링을 위한 이미지 처리 장치 및 방법 |
US10275128B2 (en) | 2013-03-15 | 2019-04-30 | Activevideo Networks, Inc. | Multiple-mode system and method for providing user selectable video content |
US9219922B2 (en) | 2013-06-06 | 2015-12-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
US9294785B2 (en) | 2013-06-06 | 2016-03-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
EP3005712A1 (de) | 2013-06-06 | 2016-04-13 | ActiveVideo Networks, Inc. | Überlagerte darstellung einer benutzerschnittstelle auf quellvideoinhalten |
US9788029B2 (en) | 2014-04-25 | 2017-10-10 | Activevideo Networks, Inc. | Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833625A (en) * | 1986-07-09 | 1989-05-23 | University Of Arizona | Image viewing station for picture archiving and communications systems (PACS) |
JP3358067B2 (ja) * | 1991-07-22 | 2002-12-16 | 株式会社ソニー・コンピュータエンタテインメント | 画像データを記録した記録媒体の製造方法、画像再生方法及び画像再生装置 |
JP3786716B2 (ja) * | 1991-07-23 | 2006-06-14 | 株式会社ソニー・コンピュータエンタテインメント | 画像データを記録した記録媒体の製造方法 |
JP3161017B2 (ja) * | 1992-04-16 | 2001-04-25 | ソニー株式会社 | 動画像復号化装置 |
EP0572024A2 (de) * | 1992-05-27 | 1993-12-01 | Kabushiki Kaisha Toshiba | Multimediaanzeige-Steuersystem zur Speicherung von Bilddaten in einem Rasterpufferspeicher |
US5253056A (en) * | 1992-07-02 | 1993-10-12 | At&T Bell Laboratories | Spatial/frequency hybrid video coding facilitating the derivatives of variable-resolution images |
US5497404A (en) * | 1992-07-14 | 1996-03-05 | General Instrument Corporation | Transmission error recovery for digital communication systems using variable length data packets where data is stored in header locations of memory |
US5444489A (en) * | 1993-02-11 | 1995-08-22 | Georgia Tech Research Corporation | Vector quantization video encoder using hierarchical cache memory scheme |
US5408274A (en) * | 1993-03-11 | 1995-04-18 | The Regents Of The University Of California | Method and apparatus for compositing compressed video data |
JP3463299B2 (ja) * | 1993-03-26 | 2003-11-05 | ソニー株式会社 | ディスク再生装置 |
US5422674A (en) * | 1993-12-22 | 1995-06-06 | Digital Equipment Corporation | Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof |
US5568598A (en) * | 1994-09-09 | 1996-10-22 | Intel Corporation | Displaying images using progressive fade-in |
-
1995
- 1995-05-18 GB GBGB9510093.9A patent/GB9510093D0/en active Pending
-
1996
- 1996-04-17 JP JP8534666A patent/JPH10503358A/ja not_active Ceased
- 1996-04-17 KR KR1019970700299A patent/KR100418147B1/ko not_active IP Right Cessation
- 1996-04-17 DE DE69609141T patent/DE69609141T2/de not_active Expired - Fee Related
- 1996-04-17 EP EP96907641A patent/EP0771504B1/de not_active Expired - Lifetime
- 1996-04-17 WO PCT/IB1996/000337 patent/WO1996037074A2/en active IP Right Grant
- 1996-04-19 US US08/635,340 patent/US5815604A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB9510093D0 (en) | 1995-07-12 |
KR100418147B1 (ko) | 2004-04-28 |
EP0771504A2 (de) | 1997-05-07 |
EP0771504B1 (de) | 2000-07-05 |
KR970705307A (ko) | 1997-09-06 |
US5815604A (en) | 1998-09-29 |
WO1996037074A3 (en) | 1997-02-13 |
JPH10503358A (ja) | 1998-03-24 |
DE69609141D1 (de) | 2000-08-10 |
WO1996037074A2 (en) | 1996-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69609141T2 (de) | Interaktive bildmanipulation | |
DE69908334T2 (de) | Eine mehrfachdatenstrom-schalterbasierte-videoeditierarchitektur | |
DE69516139T2 (de) | Komprimierter digitaler bildüberlagerungskontroller und methode | |
DE3814627C2 (de) | ||
DE69900639T2 (de) | Vorschau von hdtv schnitt und videoeffekten mit sdtv geräten | |
DE69712676T2 (de) | Verfahren zur Videokodierung | |
DE69917971T2 (de) | Verfahren und Vorrichtung zur Verarbeitung von komprimierten Videodatenströmen | |
DE69733007T2 (de) | Vorrichtung zur codierung und decodierung von bewegtbildern | |
DE69715239T2 (de) | Videokompressionsmethode und vorrichtung | |
DE69836893T2 (de) | Bewegtbildkompositionssystem | |
DE69813230T2 (de) | Verfahren zur markierung eines komprimierten digitalvideosignals | |
DE69810670T2 (de) | Verfahren zur rechnerischen Feindegradierung in einem audio-visuellen Kompressionssystem | |
DE69901018T2 (de) | Verfahren und Vorrichtung zur Erzeugung von OSD Daten in einem Videosignal mit kodiertem Format | |
DE69524896T2 (de) | Wiedergabe von Videobildern mit erhöhter Geschwindigkeit | |
DE69733527T2 (de) | Bildanzeigeeinheit, Bildanzeigesystem und Wiederauffindungssystem für bewegte Bilder | |
DE60123168T2 (de) | MPEG-Dekoder | |
DE3010988A1 (de) | Digitales videoverarbeitungssystem | |
DE69405740T2 (de) | Verfahren und anordnung für bewegungskompensierende interpolation | |
DE69835211T2 (de) | Umschaltung zwischen komprimierten videobitströmen | |
DE69521255T2 (de) | Verfahren zum betrieb eines interaktiven bildanzeigesystems und bildanzeigesystem zur durchführung des verfahrens | |
DE602004007928T2 (de) | Verfahren für lauflängenkodierung eines bitmapdatenstroms | |
DE19721032B4 (de) | Vorrichtung und Verfahren zur Datenkodierung | |
DE19816898A1 (de) | Vorrichtung und Verfahren zum adaptiven Codieren eines Bildsignals | |
DE69721873T2 (de) | Videobildverarbeitungsgerät und Verfahren dafür | |
DE4143074A1 (de) | Verfahren und einrichtung zum umformatieren verschachtelter videodaten zur darstellung auf einem computer-ausgabedisplay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |