DE60022610T2 - Verfahren zur Animationskodierung in einer Bilddatei - Google Patents

Verfahren zur Animationskodierung in einer Bilddatei Download PDF

Info

Publication number
DE60022610T2
DE60022610T2 DE60022610T DE60022610T DE60022610T2 DE 60022610 T2 DE60022610 T2 DE 60022610T2 DE 60022610 T DE60022610 T DE 60022610T DE 60022610 T DE60022610 T DE 60022610T DE 60022610 T2 DE60022610 T2 DE 60022610T2
Authority
DE
Germany
Prior art keywords
image
layer
display
image layer
succession
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 - Lifetime
Application number
DE60022610T
Other languages
English (en)
Other versions
DE60022610D1 (de
Inventor
Andrew James East Blaxland Dorrell
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.)
Canon Inc
Original Assignee
Canon Inc
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
Priority claimed from AUPQ4415A external-priority patent/AUPQ441599A0/en
Priority claimed from AUPQ7724A external-priority patent/AUPQ772400A0/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of DE60022610D1 publication Critical patent/DE60022610D1/de
Application granted granted Critical
Publication of DE60022610T2 publication Critical patent/DE60022610T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/25Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Description

  • Die Erfindung bezieht sich auf Mehrschichten-Bilddateien, die zum Beispiel dazu bestimmt sind, als eine Animation oder wahlweise als ein mehrschichtiges zusammengesetztes Bild angezeigt zu werden.
  • Stand der Technik
  • Mehrschichten- (oder Mehrseiten-) Bilder können als ein Satz von Bildern betrachtet werden, alle typischerweise, aber nicht notwendigerweise, von der gleichen Größe, die für den Zweck des Anzeigens auf einer Ausgabeanzeigevorrichtung irgendwie kombiniert sind. Demnach bezieht sich „mehrschichtig" auf mehrere Bilder in einer einzigen Datei. Jedes Bild in der Datei wird als eine Schicht bezeichnet. Momentan gibt es zwei bedeutende Anwendungsbereiche, für die Mehrschichtenbilder verwendet werden, und diese umfassen:
    • – Bildbearbeitung und graphisches Design; und
    • – Animation, besonders Animation auf Webseiten im Internet.
  • Im Bereich von Bildbearbeitung und graphischem Design ermöglichen Mehrschichtenbilder eine Zusammenstellung komplexer Szenen, indem unterschiedliche Bilder übereinander geschichtet werden. In diesem Fall ist es für jede Schicht üblich, einen mit ihr in Zusammenhang stehenden Opazitäts- bzw. Lichtundurchlässigkeits- (oder Alpha-) Kanal aufzuweisen. Um die verschiedenen Schichten (Bilder) auf einer Anzeigevorrichtung anzuzeigen, wird eine erste Schicht (typischerweise ein Hintergrundbild) wiedergegeben und wird dann eine nachfolgende Schicht zum Beispiel gemäß den folgenden Gleichungen auf die erste Schicht gesetzt. Ac = 1 – (1 – At)(1 – Ab) (1) s = At/Ac (2) t = (1 – At)Ab/Ac (3) Rc = sRt + tRb (4) Gc = sGt + tGb (5) Bc = sBt + tBb (6)
  • Bei den vorstehenden Gleichungen gilt: Das Hintergrundbild ist im RGBA- (Rot, Grün, Blau und Alpha) Farbraum als (Rb, Gb, Bb, Ab) angegeben; ein Vordergrund- oder oberes) Bild ist im RGBA-Farbraum als (Rt, Gt, Bt, At) angegeben; und das Ausgabe- oder zusammengesetzte Bild ist im RGBA-Farbraum als (Rc, Gc, Bc, Ac) angegeben. Jede nachfolgende (oder neue) Schicht wird als ein Vordergrundbild genommen, bis sie mit einer vorhergehenden Schicht kombiniert (zusammengesetzt) wird, wobei die Kombination dann als ein (neues) Hintergrundbild genommen wird. Auf diese Art und Weise ist es möglich, eine Anzahl von Schichten durch sequenzielle Anwendungen von Gleichungen (4–6) der Reihe nach auf jede neue Schicht zu kombinieren, um ein endgültiges zusammengesetztes Bild zu bilden. Andere Zusammensetzungsvorgänge sind ebenfalls möglich, der hierin vorstehend mit Bezug auf Gleichungen (1) bis (6) beschriebene ist jedoch der am Häufigsten verwendete.
  • Die andere nennenswerte Anwendung von Mehrschichtenbildern, die vorstehend genannt ist, ist die Animation. Zu diesem Zweck ist das am Meisten verwendete Dateiformat momentan das Graphikaustauschformat (GIF: "Graphics Interchange Format"). Das GIF enthält ebenfalls Schichten (oder mehrere Bilder), die in Sequenz- bzw. Ablaufreihenfolge zusammengesetzt sind. Jede Schicht einer GIF-Datei kann von unterschiedlicher Größe sein, und wird unter Verwendung von Versatz- bzw. Verschiebungskoordinaten positioniert, um in Fällen, bei denen nur kleine Bereiche Änderungen von einer Schicht zur nächsten enthalten, die Speichereffizienz zu verbessern. Der GIF-Standard definiert einen virtuellen Schirm, auf den jede Schicht gesetzt wird. Er verwendet eine Steuerblockstruktur, um anzugeben, wie die Schichten in der Datei anzuzeigen sind. Jeder Schicht des Dateiformats geht ein Steuerblock voraus, der enthält: Informationen über den Ort der oberen linken Ecke im virtuellen Schirm; Informationen darüber, wie lang die Schicht angezeigt werden soll, bevor zu der nächsten Schicht in der Datei fortgeschritten wird; und, ob die Schicht vor einer Anzeige einer nächsten Schicht in der Datei entfernt werden soll. Diese (Steuerblock-basierte) Struktur ermöglicht eine besonders einfache Softwareimplementierung des Decodierers. In der Tat ist sehr wenig zusätzliche Codierung erforderlich, um einen GIF-Decodierer zu implementieren, der zum korrekten Anzeigen von animierten mehrschichtigen GIF-Bildern fähig ist.
  • Das von GIF eingesetzte Animationsschema wurde in einem sehr kurzen Zeitraum weit verbreitet übernommen. Der hauptsächliche Grund dafür ist das einfache und eingeschränkte Design. Diese Merkmale machen es für eine große Anzahl unabhängiger Entwickler einfach, Dateibetrachter zu implementieren, die zum Handhaben von GIF-Animationen fähig sind. Die Einfachheit von GIF wird jedoch zum Preis einer Effizienz beim Codieren erlangt. Da jede Schicht in einer animierten GIF-Datei einem einzelnen Anzeigerahmen entspricht, wird zum Beispiel eine Animation unter Verwendung von Sprites und Überlagerungen bzw. Einblendungen nicht effizient codiert. Dies ist deshalb so, weil jeder Rahmen als eine separate Bildschicht vorhanden sein muss. Bilder, die im Verlauf einer Animation wiederverwendet werden, müssen in der Datei für jeden Rahmen auftauchen, in dem sie erscheinen.
  • In jüngerer Zeit hat das Mehrfachbild-Netzwerkgraphik- (MNG: "Multiple Image Network Graphics") Dateiformat, das sich noch in Entwicklung befindet, versucht, dieses Problem anzugehen. MNG definiert ein Animationsrahmensystem, das auf Erweiterungen des Portablen Netzwerkgraphik- (PNG: "Portable Network Graphics") Dateiformats beruht. Während MNG die Wiederverwendung von Schichten erlaubt, ist jedoch viel von der Einfachheit verloren gegangen, die den Erfolg von GIF gekennzeichnet hat. Zusätzlich führen die Methoden, die von MNG zum Beschreiben der Animation verwendet werden, nicht selbstverständlich zu einem Implementierungsmodell. Dies macht die Entwicklung von Betrachtern für MNG-Animationen beträchtlich schwieriger zu implementieren. Um zu helfen, dieses Problem anzugehen, haben die Erschaffer von MNG Untermengen geringer Komplexität und sehr geringer Komplexität des vollen MNG-Standards vorgeschlagen. Das Problem bei diesen besteht jedoch darin, dass die Untermengen geringer Komplexität wenig mehr Funktionalität erreichen als GIF und die gleichen Codierungseffizienzprobleme aufweisen.
  • „SWF File Format Specification, Concise Guide to the SWF File Format", 6. Oktober 1999 (1999-10-06), Seiten 1 bis 7, XP002266717, <URL:http://web.archive.org/web/19991006013357/homepages.tig.com.au/~dkl/swf/ SWFfileformat.html> legt das SWF-Dateiformat offen, das zum Liefern von Graphiken und Animation über das Internet ausgelegt ist. Dem Nachrichtenkopf bzw. Kopffeld folgt eine Reihe von markierten bzw. gekennzeichneten Datenblöcken. Definitionsmarken bzw. -tags werden verwendet, um Zeicheninformationen zu dem Verzeichnis hinzuzufügen. Definitionsmarken bzw. -tags definieren Daten, die in einer Datei wiederverwendet werden können, wie etwa Formen, Bitmaps, Schaltflächen, Text, Schriftarten und Töne. Steuermarken bzw. -tags manipulieren Zeichen und stellen verwaltungstechnische Funktionen bereit. Steuermarken bzw. -tags werden zum Beispiel verwendet, um Objekte auf dem Schirm zu bewegen, Rahmen zu zeigen und Töne zu starten. Marken können in der Datei in jeder beliebigen Reihenfolge auftreten. Die Reihenfolge von Steuermarken bzw. -tags definiert die Reihenfolge der Animation. Diese Reihung von Marken ist so, wie das SWF-Dateiformat Streaming unterstützt. Die Vorschrift besteht darin, dass eine bestimmte Marke nur von Marken abhängen sollte, die vor dieser kommen. Eine Marke sollte niemals von einer Marke abhängen, die später in der Datei kommt. Konzeptionell kann das SWF-Dateiformat als zwei verschachtelte bzw. verschränkte Datenströme betrachtet werden. Der Definitionsstrom fügt Zeichen zu dem Verzeichnis hinzu und der Steuerstrom führt Arbeitsvorgänge auf der Anzeigeliste unter Verwendung der Zeichen durch, die in dem Verzeichnis definiert wurden. Das Modell zur Verarbeitung eine Stroms ist, dass alle Marken in einem Strom verarbeitet werden, bis eine Marke „ZeigeRahmen" angetroffen wird. An dieser Stelle wird die Anzeigeliste auf den Schirm kopiert und ist der Abspieler bzw. Player im Leerlauf, bis es Zeit ist, den nächsten Rahmen zu verarbeiten.
  • „SWF File Reference, The Swiff Info Center", 6. Oktober 1999 (1999-10-06), Seiten 1 bis 46, XP002266718, <URL:http://web.archive.org/web/19991006000759/http://homepages.tig.com.au/~dkl/swf/SWFfilereference.html> beschreibt die grundlegenden Datentypen, die zum Definieren der komplexeren Datenstrukturen verwendet werden, aus denen das neue SWF-Dateiformat besteht. Bezug nehmend auf die SWF-Dateimarken bzw. -tags gibt es zwei Kategorien von Marken: Definition und Steuerung. Definitionsmarken bzw. -tags verwalten ein Verzeichnis von Ressourcen wie etwa Formen, Text, Bitmap und Schaltflächen, die an jeder beliebigen Stelle in der Animation verwendet werden können. Steuermarken bzw. -tags steuern die Anzeigeliste und ermöglichen Handlungen wie etwa ein Anhalten oder Starten der Animation. Definitionsmarken bzw. -tags werden verwendet, um Animationszeichen wie etwa Formen, Text, Bitmap und Schaltflächen zu erzeugen. Die folgenden Abschnitte beschreiben die Datentypen und mit jedem Zeichentyp in Zusammenhang stehende Marken. Steuermarken bzw. -tags können in drei Kategorien unterteilt werden: Anzeigeliste, Steuerung und Handlung. Anzeigelistemarken steuern die Inhalte der Anzeigeliste. Steuerungsmarken verwalten einige allgemeine Aspekte von Dateien und Rahmen. Das SWF-Dateiformat definiert ein einfaches Handlungsmodell. Eine Handlungsliste kann einem Schaltflächenzustandsübergang zugeordnet oder in den Marken angeordnet werden, die für einen bestimmten Rahmen verarbeitet werden. Wird eine Handlung angetroffen, wird sie zu einer zu verarbeitenden Liste hinzugefügt. Die Liste wird bei einer Marke „ZeigeRahmen" oder nachdem sich ein Schaltflächenzustand geändert hat verarbeitet.
  • Gemäß der Erfindung ist ein Verfahren zum Verarbeiten einer Aufeinanderfolge von Bildschichten gemäß einer Aufeinanderfolge von Anzeigeanweisungen wie gemäß Anspruch 1 dargelegt bereitgestellt.
  • Die Erfindung stellt auch eine Vorrichtung zum Verarbeiten einer Aufeinanderfolge von Bildschichten gemäß einer Aufeinanderfolge von Anzeigeanweisungen wie gemäß Anspruch 5 dargelegt bereit.
  • Die Erfindung stellt auch einen Träger bereit, der eine Vielzahl von Bildschichten und eine Aufeinanderfolge von Anzeigeanweisungen definierende Bilddaten trägt, wie gemäß Anspruch 8 dargelegt.
  • Die Erfindung stellt auch ein Speichermedium bereit, das Computerprogrammanweisungen speichert, wie gemäß Anspruch 9 dargelegt.
  • Die Erfindung stellt des Weiteren ein Signal bereit, das Computerprogrammanweisungen trägt, wie gemäß Anspruch 10 dargelegt.
  • Optionale Merkmale sind in den anderen Ansprüchen dargelegt.
  • Es wird nun eine Anzahl von Ausführungsbeispielen der Erfindung unter Bezugnahme auf die Zeichnungen beschrieben, bei den zeigen:
  • 1 ein schematisches Blockschaltbild eines Universalcomputers, mit dem Ausführungsbeispiele der Erfindung ausgeübt werden können;
  • 2 eine Bilddateistruktur gemäß einem Ausführungsbeispiel der Erfindung;
  • 3 einen virtuellen Schirm, auf dem ein Segment einer Schicht wiederzugeben ist;
  • 4 eine Speicheranordnung zum Unterstützen eines Anzeigens animierter Bildaufeinanderfolgen gemäß einem Ausführungsbeispiel der Erfindung;
  • 5 ein Ablaufdiagramm von Verfahrensschritten, das einen Animationsprozess gemäß einem Ausführungsbeispiel der Erfindung zeigt;
  • 6 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt zum Lesen von Kopffeld- und Animationssteuerblockinformationen gemäß 5;
  • 7 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt zum Zuweisen von einem Schirmspeicher und Unterstützungsstrukturen gemäß 5;
  • 8 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt einer Initialisierung von einem Speicher und Unterstützungsstrukturen gemäß 5;
  • 9 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt einer Anweisungsbestimmung gemäß 5;
  • 10 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt einer Bestimmung einer Bildschicht gemäß 5;
  • 11 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt zum Wiedergeben von Bildschichten gemäß 5;
  • 12 ein Ablaufdiagramm von Verfahrensschritten in Bezug auf den Schritt zum Leeren eines wiedergegebenen Rechtecks auf dem Schirm gemäß 5;
  • 13 ein Beispiel einer Bilddateistruktur gemäß einem Ausführungsbeispiel, die mit einer Animationsaufeinanderfolge in Zusammenhang steht; und
  • 14 die Animationsaufeinanderfolge gemäß 13.
  • Wo in einer oder mehreren der begleitenden Zeichnungen Bezug genommen wird auf Schritte und/oder Merkmale, die die gleichen Bezugszeichen aufweisen, haben diese Schritte und/oder Merkmale zum Zweck dieser Beschreibung die gleiche(n) Funktion(en) oder den (die) gleiche(n) Arbeitsablauf(-abläufe), sofern nicht die entgegengesetzte Absicht in Erscheinung tritt.
  • Ein Ausführungsbeispiel der Erfindung wird vorzugsweise unter Verwendung eines Universalcomputers ausgeübt, wie etwa dem gemäß 1. gezeigten, wobei die Prozesse gemäß 5 bis 12 als auf dem Computer ausgeführte Software implementiert werden können. Insbesondere werden die Schritte der Codierungs-, Decodierungsverfahren durch Anweisungen in der Software bewirkt, die von dem Computer ausgeführt werden. Der Codierungsalgorithmus zum Bereitstellen einer Signalisierung der Struktur eines Codestroms, der ein digitales Bild darstellt, kann ebenfalls durch Anweisungen in Software implementiert werden, die von dem Computer ausgeführt werden. Die Software kann auf einem Computer-lesbaren Medium einschließlich zum Beispiel der nachfolgend beschriebenen Speichereinheiten gespeichert werden. Die Software wird von dem Computer-lesbaren Medium in den Computer geladen und dann von dem Computer ausgeführt. Ein Computer-lesbares Medium, auf dem eine derartige Software oder ein derartiges Computerprogramm aufgezeichnet ist, ist ein Computerprogrammprodukt. Die Verwendung des Computerprogrammprodukts im Computer bewerkstelligt eine vorteilhafte Vorrichtung zum Codieren digitaler Bilder, Decodieren oder Signalisieren der Struktur-codierten Darstellungen von digitalen Bildern gemäß den Ausführungsbeispielen der Erfindung.
  • Das Computersystem 100 besteht aus dem Computer 101, einer Videoanzeige 114 und Eingabevorrichtungen 102, 103. Zusätzlich kann das Computersystem 100 beliebige einer Anzahl von anderen Ausgabevorrichtungen 115 aufweisen, einschließlich von an dem Computer 101 angeschlossenen Zeilendruckern, Laserdruckern, Plottern und anderen Reproduktionsvorrichtungen. Das Computersystem 100 kann unter Verwendung eines geeigneten Kommunikationskanals über ein Modem 116, ein Computernetzwerk 120 oder dergleichen mit einem oder mehreren anderen Computern verbunden werden. Das Computernetzwerk kann ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), ein Intranet und/oder das Internet umfassen.
  • Der Computer 101 selbst besteht aus einer Zentralverarbeitungseinheit (bzw. -einheiten) (hierin nachstehend einfach als Prozessor bezeichnet) 105, einem Speicher 106, der einen Direktzugriffsspeicher (RAM) und einen Festwertspeicher (ROM) umfassen kann, einer Eingabe/Ausgabe- (EA) Schnittstelle 108, einer Videoschnittstelle 107 und einer oder mehreren Speichereinheiten, die gemäß 1 allgemein durch einen Block 109 dargestellt sind. Die Speichereinheit(-en) 109 kann (können) bestehen aus zumindest: einer Diskette 111, einem Festplattenlaufwerk 110, einem magneto-optischen Plattenlaufwerk, einer CD-ROM, einem Magnetband und/oder einer beliebigen anderen einer Vielzahl von nicht flüchtigen Speichereinheiten, die dem Fachmann wohl bekannt sind. Jede der Komponenten 105 bis 113 ist typischerweise über einen Bus 104, der wiederum aus Daten-, Adress- und Steuerbussen bestehen kann, mit einer oder mehreren der anderen Vorrichtungen verbunden.
  • Die Videoschnittstelle 107 ist mit der Videoanzeige 114 verbunden und stellt Videosignale von dem Computer 101 zur Anzeige auf der Videoanzeige 114 bereit. Nutzeingaben zum Betreiben bzw. Bedienen des Computers 101 können durch eine oder mehrere Eingabevorrichtungen bereitgestellt werden. Ein Bediener kann zum Beispiel die Tastatur 102 und/oder eine Zeigevorrichtung wie etwa die Maus 103 zum Bereitstellen einer Eingabe an den Computer 101 verwenden.
  • Das System 100 ist lediglich zu veranschaulichenden Zwecken bereitgestellt und es können andere Konfigurationen eingesetzt werden.
  • Beispielhafte Computer, auf denen Ausführungsbeispiele ausgeübt werden können, umfassen IBM-PC/ATs oder -kompatible, einen der Macintosh- (TM) PC-Familie, Sun Sparcstation (TM) oder dergleichen. Die vorhergehenden sind lediglich beispielhaft für die Computertypen, mit denen Ausführungsbeispiele der Erfindung ausgeübt werden können. Typischerweise sind die Prozesse der Ausführungsbeispiele, die hierin nachstehend beschrieben sind, als Software oder als ein Programm vorhanden bzw. resident, das auf einem (gemäß 1 allgemein als Block 110 dargestellten) Festplattenlaufwerk als das Computer-lesbare Medium aufgezeichnet ist, und werden unter Verwendung des Prozessors 105 gelesen und gesteuert. Eine Zwischenspeicherung von dem Programm und Bildelementdaten sowie jeglichen Daten, die von dem Netzwerk abgerufen werden, kann unter Verwendung des Halbleiterspeichers 106, möglicherweise in Zusammenarbeit mit dem Festplattenlaufwerk 110, durchgeführt werden.
  • Unter bestimmten Umständen kann das Programm dem Nutzer auf einer CD-ROM oder einer Diskette (beide allgemein durch Block 109 dargestellt) codiert geliefert werden oder könnte wahlweise von dem Nutzer zum Beispiel über eine mit dem Computer verbundene Modemvorrichtung aus dem Netzwerk gelesen werden. Des Weiteren kann die Software auch von einem anderen Computer-lesbaren Medium einschließlich eines Magnetbands, eines ROM oder einer integrierten Schaltung, einer magneto-optischen Platte, einem Funk- oder Infrarot-Übertragungskanal zwischen dem Computer und einer anderen Vorrichtung, einer Computer-lesbaren Karte wie etwa einer PCMCIA-Karte und dem Internet sowie Intranets einschließlich E-Mail-Übertragungen und auf Webseiten aufgezeichneten Informationen und dergleichen in das Computersystem 100 geladen werden. Das Vorhergehende ist lediglich beispielhaft für einschlägige Computer-lesbare Medien. Es können auch andere Computer-lesbare Medien ausgenutzt werden.
  • Ausführungsbeispiele des Codierungsverfahrens können wahlweise in dedizierter Hardware wie etwa einer oder mehreren integrierten Schaltungen implementiert werden, die die Funktionen oder Unterfunktionen der Codierungs-, Decodierungs- oder Signalisierungsprozesse durchführen. Eine solche dedizierte Hardware kann ASICs und assoziierte auf dem Chip integrierte Speicher umfassen.
  • 2 zeigt eine Bilddateistruktur bei einem Ausführungsbeispiel der Erfindung. Die Datei 1000 weist eine Anzahl von Elementen 1002 bis 1008 auf, die sequenziell in eine Binärdatei gepackt sind. Vorne in der Datei vorkommende Elemente enthalten Kopffeldinformationen 1002, die den Dateityp festlegende Informationen ebenso wie Parameter der in der Datei 1000 enthaltenen Bilddaten beschreibende Informationen umfassen können. Ein Element kann ebenso eine Erweiterung der grundlegenden Dateisyntax beschreiben, die nicht notwendigerweise von allen Dateilesern verstanden wird.
  • Bei dem Ausführungsbeispiel hat jede Anweisung eine identische Parametrisierung und als Folge davon eine feste Länge. Diese Tatsache kann von einem Dateileser verwendet werden, um die Anweisungsgrenzen und, wenn die Länge des Anweisungssatzes bekannt ist, die Anzahl von Anweisungen zu bestimmen. Der Animationssteuerblock 1004 verwendet die Syntax der Datei 1000, in der der Block eingebettet ist. Üblicherweise stellt dies einen Mechanismus bereit, mittels dem der Dateileser den Startpunkt und die Länge des Steuerblocks 1004 als Ganzes bestimmen kann. Jeder Anweisungssatz, z.B. 1020, (einschließlich des anführenden Wiederholungsparameters 1028) ist derart abgegrenzt, dass der Dateileser den Startpunkt und die Länge jedes Satzes 1020 auf eine direkte Art und Weise bestimmen kann. Bei dem vorliegenden Ausführungsbeispiel ist jeder Anweisungssatz angehängt an (i) eine 32 Bit-Ganzzahl ohne Vorzeichen, die die Länge des Anweisungssatzes angibt, und (ii) eine 4 Byte-Marke, die angibt, dass die darauf folgenden Daten ein Satz von Animationsanweisungen sind. Dieses Strukturierungsschema ist veranschaulichend und eine andere Struktur kann gleichermaßen verwendet werden, wie etwa eine Tabelle, die die Startverschiebungen jedes Anweisungssatzes auflistet.
  • Die Datei 1000 enthält ein oder mehrere Elemente, die Bilddaten 1006 oder Verweise auf Bilddaten enthalten. In einer Datei können mehrere verschiedene Stehbilder 1006 bis 1008 enthalten oder referenziert sein und jedes dieser wird als eine Schicht bezeichnet. Einige dieser Schichten können visuell unvollständig sein, wenn sie separat betrachtet werden, da sie dazu bestimmt sind, zu Anzeigezwecken mit anderen Bildschichten in der Datei überlagert oder anderweitig kombiniert zu werden. Jede ist jedoch ein vollständiger Codestrom oder Satz von Codeströmen, die fähig sind, unabhängig decodiert zu werden, und innerhalb des Umfangs dieser Beschreibung nach wie vor als verschieden betrachtet werden. Eine Animation kann unter Verwendung einer oder mehrerer der Bildschichten 1006 bis 1008 alleine oder in Kombination durchgeführt werden.
  • Jede Bildschicht, z.B. 1006, weist einen oder mehrere Kanäle auf, die als ein oder mehrere in der Datei 1000 enthaltene Codeströme vorhanden sein oder von der Datei referenziert oder durch Abbildung von Bildelementen über eine Nachschlagetabelle hergeleitet werden können. Jeder Codestrom oder jede Referenz, der/die in der Datei 1000 enthalten ist, ist in einem oder mehreren Dateielementen vorhanden. Informationen in Kopffeldelementen werden von dem Dateileser verwendet, um die vollständigen Codeströme wiederherzustellen und diese zu Bildschichten zu decodieren.
  • Die Kanäle jeder Schicht umfassen Felder von Bildelementwerten. Diese können Abtastwerten von Farbinformationen entsprechen, die für einen Farbraum spezifisch sind, der in Kopffeldelementen 1002 der Datei definiert ist. Ein einzelner Kanal kann auch Intensitäts- bzw. Helligkeitsabtastwerten wie bei einem Graustufenbild entsprechen. Einer oder mehrere Kanäle können auch Abtastwerte von Opazitäts- bzw. Lichtundurchlässigkeitsinformationen zur Verwendung bei Wiedergabe anderer Kanäle in der Schicht enthalten. Dieser Kanal wird landläufig als der Alphakanal bezeichnet. Alphakanaldaten können binär (oder zweistufig) sein, wobei jeder Abtastwert nur einen von zwei möglichen Werten annimmt, die völlig durchsichtig und völlig undurchsichtig entsprechen. Binäre Alphadaten können mit den Farbkanälen codiert werden, indem allen Bildelementen, die völlig durchsichtig sind, eine eindeutige Farbe zugeordnet wird.
  • Diese Spezifikation offenbart ein Verfahren zum Beschreiben der Animation, die eine Datei oder einen Codestrom 1000 aufwiest, die/der ein Kopffeld 1002 mit globalen Parametern enthält, die umfassen, aber nicht beschränkt sind auf: (i) den Schirmbereich (z.B. 1532 gemäß 3), der zum Anzeigen der in der Datei enthaltenen Animation erforderlich ist, (ii) einen Block von Animationssteuerinformationen 1004, und (iii) eine Aufeinanderfolge von Bildschichten 1006 bis 1008, die unter Verwendung irgendeines geeigneten Verfahrens codiert sind.
  • Die Animationssteuerinformationen 1004 (die auch als der Animationssteuerblock bezeichnet werden) umfassen, wie es in einer erweiterten Darstellung 1016 gezeigt ist, eine mit „TICKEN" bezeichnete Ganzzahl 1014, die die Dauer eines Zeitgebertickens definiert. Die Animationssteuerinformationen 1004 enthalten auch eine mit „SCHLEIFE" bezeichnete Ganzzahl 1018, die definiert, wie oft die Animation als Ganzes angezeigt werden soll. Die Animationssteuerinformationen 1004 enthalten ferner einen oder mehrere Sätze 1020 bis 1022 von Rahmensteueranweisungen. Die Struktur des Animationssteuerblocks 1004 ist unter Bezugnahme auf Tabelle 1 beschrieben.
  • Figure 00150001
  • Figure 00160001
    Tabelle 1. In dem Animationssteuerblock enthaltene Felder mit Beschreibungen.
  • Ein vorbestimmter Wert von „SCHLEIFE" 1018 kann verwendet werden, um sicherzustellen, dass die Animation unendlich oft wiederholt wird.
  • Jeder der Sätze 1020 bis 1022 von Rahmensteueranweisungen enthält, wie es in einer erweiterten Darstellung 1032 gezeigt ist, eine anführende mit „WIEDERHOLUNG" bezeichnete Ganzzahl 1028, die angibt, wie oft der zugehörige Satz von Anweisungen 1030 bis 1036 ausgeführt werden soll, und einen Satz von Anweisungen, die von dem Leser in sequenzieller Reihenfolge auszuführen sind. Ein vorbestimmter Wert von „WIEDERHOLUNG" wird verwendet, um sicherzustellen, dass die Animationsanweisungssequenz unendlich oft ausgeführt wird. Tabelle 2 fasst die Form der Anweisungssätze 1020 bis 1022 zusammen.
  • Figure 00170001
    Tabelle 2. In jedem der „Anweisungssätze" des Animationssteuerblocks enthaltene Felder mit Beschreibungen.
  • Jede Anweisung, z.B. 1034, umfasst, wie es in einer erweiterten Darstellung 1042 gezeigt ist (welche zwei Abschnitte 1058 und 1064 hintereinander aufweist, wie es durch gestrichelte Pfeile 1060, 1062 dargestellt ist), eine mit „LEBENSDAUER" bezeichnete Ganzzahl 1044, die die Anzahl von Zeitgeberticks definiert, die sich (idealerweise) zwischen Abschluss einer Ausführung der aktuellen Anweisung und Abschluss einer Ausführung der nächsten Anweisung ereignen sollten. Die Anweisung umfasst ferner einen mit „FORTBESTAND" bezeichneten binären Bitschalter 1046, der definiert, ob die als Folge einer Ausführung der aktuellen Anweisung auf einen Schirm wiedergegebenen Bildelemente erscheinen sollten, um auf dem Anzeigehintergrund fortzubestehen, oder erscheinen sollten, um auf den Hintergrund vor Ausführung zurückgesetzt zu werden. Außerdem definiert eine mit „NÄCHSTE" bezeichnete Ganzzahl 1048 die Anzahl von Anweisungen, die auszuführen sind, bevor die aktuelle Schicht wiederverwendet wird, wobei ein Wert von Null impliziert, dass die Schicht ungeachtet einer Ausführung einer globalen Schleife als Folge einer „SCHLEIFE"-Steuerung ungleich Null für keine darauf folgende Anweisungen wiederverwendet werden soll.
  • Die erste Anweisung 1030 wirkt auf die erste Schicht 1006 in der Datei 1000 und jede nachfolgende Anweisung wirkt auf die Schicht, die für diese Anweisung in dem „NÄCHSTE"-Feld einer vorhergehenden Anweisung festgelegt ist, oder auf die nächste Schicht, die in der Datei folgt, falls keine derartige Festlegung erfolgt ist.
  • Ein Wert von Null für „LEBENSDAUER" (d.h. 1044) und ein unwahrer Wert für „FORTBESTAND" (d.h. 1046) geben an, dass die Schicht, auf die diese Anweisung wirkt, von dieser Anweisung in keiner Weise wiedergegeben wird.
  • Ein Wert von Null für „LEBENSDAUER" (d.h. 1044) und ein wahrer Wert für „FORTBESTAND" (d.h. 1046) geben an, dass die Schicht, auf die die aktuelle Anweisung wirkt, als ein Teil einer Rahmendefinitionssequenz zu betrachten ist. Eine derartige Sequenz wird bei Ausführung der nächsten Anweisung mit einem Wert für „LEBENSDAUER" ungleich Null beendet. Eine Beendigung der Rahmendefinitionssequenz führt derart zu der Zusammenstellung und Anzeige von allen denjenigen Schichten, auf die die Rahmendefinitionssequenz wirkt, dass die „FORTBESTAND"- und „LEBENSDAUER"-Werte für die Beendigungsanweisung kollektiv angewandt werden. Aus Sicht einer Anzeige sollten alle Anweisungen in einer Rahmendefinitionssequenz als in einer einzigen Anweisung ausgeführt erscheinen.
  • Ein vorbestimmter Höchstwert von „LEBENSDAUER" (d.h. 1044) wird verwendet, um zu implizieren, dass die Animation nach Ausführung dieser Anweisung unbegrenzt ausgesetzt wird. In solchen Fällen kann eine Ausführung als Folge einer höheren Interaktionsebene fortgesetzt werden.
  • Jede Anweisung (1030) kann zusätzlich ein mit „(x, y)" bezeichnetes Ganzzahlenpaar 1050, 1052 umfassen, das den Ort zum Platzieren der oberen linken Ecke innerhalb des Anzeigebereichs für das gesamte Bild der Schicht definiert, auf die diese Anweisung wirkt. Die Anweisung 1030 kann auch einen mit „(Cx, Cy, Cw, Ch)" bezeichneten Ganzzahlensatz 1066 bis 1072 umfassen, der die obere linke Ecke, die Breite und die Höhe eines Bereichs definiert, der aus der Schicht auszuschneiden ist, auf die diese Anweisung wirkt. Der ausgeschnittene Bereich wird betrachtet, die Schicht, auf die gewirkt wird, nur innerhalb des Umfangs bzw. Gültigkeitsbereichs dieser Anweisung zu ersetzen.
  • Jede Anweisung kann zusätzlich ein mit „(w, h)" bezeichnetes Ganzzahlenpaar 1054, 1056 umfassen, das die Breite und die Höhe des Bereichs innerhalb des Anzeigebereichs definiert, in den Schicht wiedergegeben werden soll, auf die diese Anweisung wirkt. Dieser Schritt umfasst ein erneutes Abtasten der Schicht, falls die Breite und die Höhe der Schicht anders sind als die in der Anweisung festgelegten Werte. Die Form der Anweisungen 1034 bis 1036 ist gemäß Tabelle 3 dargelegt.
  • Figure 00190001
  • Figure 00200001
  • Figure 00210001
    Tabelle 3. In den Anweisungm-Feldern des Animationssteuerblocks enthaltene Felder mit Beschreibungen.
  • Die Interpretation der Anweisungsparameter wird unter Bezugnahme auf 3 weiter erläutert.
  • 3 zeigt einen virtuellen Schirm 1526, auf dem ein ausgeschnittenes Segment 1510 einer Schicht 1504 wiederzugeben ist, wobei die Durchführung der Wiedergabe durch einen gestrichelten Pfeil 1520 dargestellt ist. Der virtuelle Schirm 1526 hat eine Breite 1524 und eine Höhe 1540, wobei diese Abmessungen bezogen sind auf einen (x, y)-Ausgangspunkt bzw. -Ursprung 1522, der durch einen dunklen Punkt dargestellt ist. Ein Segment 1532 des virtuellen Schirms 1526, auf das ein Segment 1510 einer Schicht 1504 wiederzugeben ist, hat eine Breite 1530 und eine Höhe 1534, die gemäß 2 mit 1054 und 1056 bezeichnet sind, wobei diese Abmessungen auf einen (x, y)-Ausgangspunkt bzw. -Ursprung 1528 bezogen sind, der gemäß 2 mit 1050, 1052 bezeichnet ist. Das Segment 1510 der Schicht 1504, das auf den virtuellen Schirm 1526 wiederzugeben ist, hat eine Breite 1512 und eine Höhe 1514, die gemäß 2 mit 1070 beziehungsweise 1072 bezeichnet sind, und wobei diese Abmessungen auf einen (x, y)-Ausgangspunkt bzw. -Ursprung 1508 bezogen sind, der gemäß 2 mit 1066, 1068 bezeichnet ist. Die Schicht 1504 selbst hat eine Breite 1506 und eine Höhe 1518, wobei diese Abmessungen auf einen (x, y)-Ausgangspunkt bzw. -Ursprung 1502 bezogen sind.
  • 4 zeigt eine Speicheranordnung 1100 zum Anzeigen animierter Bildaufeinanderfolgen. Der Speicher umfasst einen sichtbaren Speicherbereich 1102 mit einer Kapazität, die größenmäßig gleich einem Schirmbereich ist, der in dem Dateikopffeld 1002 definiert ist, und einen Nichtschirm-Arbeitsbereich 1104, der größenmäßig zumindest gleich dem größten Bereich ist, der auf einmal auf den Schirm wiederzugeben ist (was aus der Ausführung einer einzigen Anweisung oder der letzten Anweisung einer Rahmendefinitionssequenz resultiert). Der Speicher umfasst ferner einen Nichtschirm-Hilfsspeicher 1106, der wiederum größenmäßig zumindest gleich dem größten Bereich ist, der auf einmal auf den Schirm wiederzugeben ist (was aus der Ausführung einer einzigen Anweisung oder der letzten Anweisung einer Rahmendefinitionssequenz resultiert). Der Speicher umfasst ferner einen Speicher 1108 für eine Liste von Schichten, der als der „Schichtenspeicher" bezeichnet wird, der zum Abrufen einer decodierten Version jeder Schicht verwendet werden kann, die explizit in dieser Liste angeordnet ist. Die Vorrichtung umfasst ferner einen Speicher 1110 für eine Liste von Ganzzahlen, die den Einträgen im Schichtenspeicher entsprechen und die Anzahl von Anweisungen enthalten, die noch auszuführen sind, bevor auf die entsprechende Schicht (im Schichtenspeicher) zu wirken ist.
  • 5 zeigt eine höchste Ebene einer Ausführung eines Ausführungsbeispiels 372 des Animationsprozesses. Eine Ausführung beginnt in einem Schritt 300. Eine Mehrschichtendatei (1000, siehe 2) wird in Schritt 305 geöffnet und Kopffeld- und Animationssteuerinformationen werden in Schritt 310 gelesen, wobei dies unter Bezugnahem auf 6 ausführlicher beschrieben ist. Die Kopffeldinformationen werden verwendet, um in Schritt 315 Anzeigeressourcen und Unterstützungsstrukturen zuzuweisen, wobei dies unter Bezugnahme auf 7 ausführlicher beschrieben ist. Der Speicher und die Unterstützungsstrukturen werden in Schritt 320 initialisiert, wobei dies unter Bezugnahme auf 8 ausführlicher beschrieben ist. Eine Bestimmung erforderlicher Anweisungen wird in Schritt 325 durchgeführt, wobei dies unter Bezugnahme auf 9 ausführlicher beschrieben ist. Eine Bestimmung einer erforderlichen Bildschicht wird in Schritt 335 durchgeführt, wobei dies unter Bezugnahme auf 10 ausführlicher beschrieben ist. Wiedergeben einer Schicht gemäß einer Anweisung wird in Schritt 345 durchgeführt, wobei dies unter Bezugnahme auf 11(a) und 11(b) ausführlicher beschrieben ist. Leeren des wiedergegebenen Rechtecks auf dem Schirm wird in Schritt 367 durchgeführt, wobei dies unter Bezugnahme auf 12 ausführlicher beschrieben ist.
  • Die Hauptanimationsschleife des Prozesses 372 beginnt in Schritt 325. In diesem Schritt bestimmt der Abspieler bzw. Player die zu verwendende Anzeigeanweisung aus den Sätzen von Anweisungen, die in dem Animationssteuerblock bereitgestellt sind. Die bestimmte Anweisung wird in Schritt 330 geprüft, um zu bestimmen, ob die Anweisung einen speziellen Wert aufweist, der angibt, dass keine weiteren Anweisungen verfügbar sind. Dieser spezielle Wert ist mit „HALT" bezeichnet. Wird eine andere Anweisung als „HALT" gefunden, bewegt sich die Ausführung des Prozesses 372 zu Schritt 335, in dem der Abspieler bzw. Player die Bildschicht bestimmt, auf die die Anweisung zu wirken hat. Die bestimmte Schicht wird in Schritt 340 geprüft, um zu bestimmen, ob die bestimmte Schicht einen speziellen Wert aufweist, bezeichnet mit „LEER", der angibt, dass keine Schicht gefunden werden konnte.
  • Gibt es eine zu verwendende Schicht, bewegt sich die Ausführung des Prozesses 372 zu Schritt 345, in dem die Schicht gemäß der Anweisung wiedergegeben wird. In einem folgenden Schritt 350 wird das „NÄCHSTE"-Feld der Anweisung auf einen von Null verschiedenen Wert geprüft, der angeben würde, dass die Schicht erneut zu verwenden ist. Wird ein von Null verschiedener Wert gefunden, werden die Schicht und der Wert des „NÄCHSTE"-Felds in Schritt 355 in einen Schichtenspeicher gebracht. Der Schichtenspeicher kann zur Implementierung mehrere unterschiedliche, aber funktional äquivalente Formen annehmen. Bei einem Ausführungsbeispiel speichert jeder Eintrag im Schichtenspeicher die decodierten Bildabtastwerte. Bei einem anderen Ausführungsbeispiel wird der komprimierte Codestrom im Schichtenspeicher beibehalten. Bei einem weiteren Ausführungsbeispiel wird ein Zeiger auf das erste Byte der Schicht in der Datei zusammen mit beliebigen Hilfsdaten gespeichert, die erforderlich sind, um die Daten zu lesen und zu decodieren. In allen Fällen stellt der Schichtenspeicher ausreichende Informationen bereit, um dem Leser zu ermöglichen, die Bildelemente der darin gespeicherten Schicht zu einem beliebigen zukünftigen Zeitpunkt zu regenerieren.
  • Ist das „NÄCHSTE"-Feld (d.h. 1048) der aktuellen Anweisung Null, wodurch impliziert wird, dass die Schicht nach Ausführung dieser Anweisung nicht benötigt wird, kann jeglicher Speicher freigegeben werden, der mit einer Beibehaltung der Bildelementdaten dieser Schicht oder einem Decodiererzustand in Zusammenhang steht. In jedem Fall kehrt die Ausführung des Prozesses 372 anschließend zu Schritt 325 zurück, in dem die nächste Anweisung bestimmt wird, dann die nächste Schicht bestimmt und wiedergegeben wird, und so weiter.
  • Wird in irgendeiner Phase keine Anweisung gefunden (d.h. der Schritt 330, der prüft, ob „Anweisung ist „HALT"" gilt, gibt einen „JA"-Wert zurück) oder keine Schicht gefunden (d.h. der Schritt 340, der prüft, ob „Schicht ist „LEER"" gilt, gibt einen „JA"-Wert zurück), wird angenommen, dass die Animationsaufeinanderfolge 372 beendet ist und bewegt sich die Ausführung zu Schritt 360.
  • Ist der in Schritt 360 geprüfte Wert des Schleifenfelds Null, wird die Ausführung des Animationsprozesses 372 beendet. Hatte die letzte ausgeführte Anweisung jedoch ein Lebensdauerfeld von Null, können nicht angezeigte Bilddaten vorhanden sein, die darauf warten, im Wiedergabebild wiedergegeben zu werden. Um die Animation (oder wahlweise die unbewegte Zusammenstellung) logisch abzuschließen, wird das wiedergegebene Rechteck des Wiedergabebilds in Schritt 367 auf den Schirm geleert, bevor eine Beendigung zum Schritt 370 erfolgt. Bei einem alternativen Ausführungsbeispiel kann der Leerungsschritt 367 vor dem Entscheidungsschritt 360 durchgeführt werden. Ist das Schleifenfeld in Schritt 360 nicht Null, wird der Schleifenfeldwert in Schritt 365 dekrementiert, bevor Speicher und Unterstützungsstrukturen (in Schritt 320) neu initialisiert und die Animationsschleife neu gestartet wird.
  • Schritt 310 gemäß 5 ist unter Bezugnahme auf 6 ausführlich beschrieben. Eine Ausführung beginnt in einem Schritt 1610. In einem nachfolgenden Schritt 1620 werden eine Breite und eine Höhe des Schirmbereichs, der zum Wiedergeben der Animation verwendet wird, zusammen mit anderen Kopffeldinformationen gelesen, die für die Wiederherstellung von Bilddaten aus der Datei wichtig sind. Jedoch spielen bei dem Animationsprozess nur der Breite- und der Höhe-Parameter eine integrale bzw. wesentliche Rolle. In einem folgenden Schritt 1630 werden Animationssteuerungen der höchsten Ebene gelesen, wobei diese „TICKEN"- und „SCHLEIFE"-Parameter wie gemäß Tabelle 1 definiert umfassen. Anschließend werden in Schritt 1640 die Animationsanweisungssätze gelesen. In der Praxis können die Anweisungssätze vollständig gelesen werden oder es kann ein Zeiger in die Datei gelesen werden, die zum Lesen während einer Ausführung der Hauptanimationsschleife beibehalten wird. Die Kopffeldinformationen 1002 wie in Bezug auf 2 beschrieben stelle nur die erforderliche Minimalmenge von Kopffeldinformationen dar, die zum Implementieren des Ausführungsbeispiels erforderlich sind. Weitere Ausführungsbeispiele können beliebige zusätzliche Kopffeldinformationen einbeziehen. Schließlich endet die Ausführung in Schritt 1650.
  • Schritt 315 gemäß 5 ist unter Bezugnahme auf 7 ausführlich beschrieben. Eine Ausführung beginnt in einem Schritt 1710 und fährt basierend auf aus der Datei 1000 (siehe 2) in Schritt 310 gemäß 5 gelesenen Informationen fort. In Schritt 1720 wird ein Speicher für einen Hilfsspeicher zugewiesen. Der Zweck des Hilfsspeichers besteht darin, Bereiche des Schirms zu speichern, die nach der Anzeige von nicht fortbestehenden Rahmen wiederhergestellt werden müssen, d.h. wo das Fortbestandsfeld der Animationsanweisung den Wert „UNWAHR" hat. Die Größe des Hilfsspeichers kann durch Analysieren der Anweisungen berechnet werden, um den größten Bereich zu bestimmen, der eine Wiederherstellung erfordern wird. Wahlweise kann der Hilfsspeicher einfach von der gleichen Größe gemacht werden wie der zum Anzeigen der Animation verwendete Schirmbereich. In diesem letztgenannten Fall ist keine Anweisungsanalyse erforderlich.
  • Enthält die Animation nur fortbestehende Rahmen, ist kein Hilfsspeicher erforderlich, und der Schritt 1720 hat keine Wirkung. Es wird bemerkt, dass Informationen mit Bezug auf die Hilfsspeichergröße als Teil des Dateikopffelds gespeichert werden können. In Schritt 1730 wird ein Speicher für ein Wiedergabebild zugewiesen. Der Zweck des Wiedergabebilds besteht darin, als ein Nichtschirm-Arbeitsbereich zu fungieren, in dem Rahmen zusammengestellt werden können, bevor sie in einen Schirmspeicher kopiert werden. Bei dem Ausführungsbeispiel hat das Wiedergabebild die gleiche Größe wie der zum Anzeigen der Animation verwendete Schirmbereich. In der Praxis kann das Wiedergabebild kleiner sein, aber es wird üblicherweise zumindest die gleiche Größe haben wie der größte Schirmbereich, der zu irgendeinem beliebigen Zeitpunkt aktualisiert wird, wobei dies die Größe des größten „wiedergegebenen Rechtecks" ist, das aus einer Ausführung der Anweisungen resultiert. Wahlweise kann dies im Sinne von zumindest gleicher Größe wie der größte Bereich betrachtet werden, der auf einmal auf den Schirm wiederzugeben ist (was aus der Ausführung einer einzigen Anweisung oder der letzten Anweisung einer Rahmendefinitionssequenz resultiert).
  • Es wird bemerkt, dass eine Zuweisung eines Hintergrundspeichers nicht erforderlich ist, falls die erste Schicht der Datei völlig undurchsichtig ist und den gesamten Bildanzeigebereich abdeckt (der durch das Breiten- und das Höhenfeld des Kopffelds festgelegt ist). Zusätzlich ist der Hilfsspeicher nicht erforderlich, falls alle Anweisungen in dem Animationssteuerblock einen Fortbestandswert „WAHR" haben. In Schritt 1740 wird Speicher für den Schichtenspeicher zugewiesen. Ein Schichtenspeicher dient einem doppelten Zweck, indem er einen Zwischenspeicher für Bilddaten bereitstellt, die bereits decodiert und wiedergegeben wurden, aber in einem anschließenden Rahmen wiederverwendet werden, und er auch den Mechanismus zum Verfolgen bereitstellt, wenn die darin enthaltenen Schichten wiederzuverwenden sind.
  • Um diese Ziele zu erreichen, umfasst jeder Eintrag im Schichtenspeicher ein Handle bzw. einen Zugriffspunkt, mittels dessen/dem die Bilddaten für diese Schicht abgerufen werden können, sowie eine mit „NÄCHSTE" benannte Variable, die die Anzahl von Anweisungen aufzeichnet, die vor einer Wiederverwendung der Schicht auszuführen sind.
  • Schließlich wird in Schritt 1750 eine Prüfung durchgeführt, um zu bestimmen, ob der Wert des „SCHLEIFE"-Felds im Animationssteuerblock Null ist. Ist dies falsch (d.h. der Schritt 1750 gibt „NEIN" zurück), ist die gesamte Animationsaufeinanderfolge 372 (siehe 5) zu wiederholen. Um dies zu unterstützen, wird in Schritt 1760 ein zusätzlicher Hintergrundspeicher zugewiesen und wird der ursprüngliche Schirmhintergrund in Schritt 1770 in diesen Hintergrundspeicher kopiert. Ist der Wert von „SCHLEIFE" Null (d.h. der Schritt 1750 gibt „JA" zurück), besteht kein Erfordernis für diese Hintergrundspeicherstruktur und wird die Ausführung in Schritt 1780 direkt beendet.
  • Schritt 320 gemäß 5 ist unter Bezugnahme auf 8 ausführlich beschrieben. Eine Ausführung beginnt bei 1800 und in Schritt 1802 wird eine Anzahl von Variablen initialisiert. Insbesondere wird „WIEDERHERSTELLEN" auf „UNWAHR" gesetzt. Diese Variable gibt an, wenn der Hintergrund aus dem Hilfsspeicher wiederhergestellt werden soll. Der Wert von „ERSTER RAHMEN" wird auf wahr gesetzt, wodurch angegeben wird, dass der erste Rahmen der Animationsaufeinanderfolge gerade davor steht, verarbeitet zu werden. Der „ZEITGEBER" wird mit der aktuellen Zeit initialisiert. Diese Variable wird verwendet, um die Zeit zu bestimmen, zu der einzelne Rahmen der Animationsaufeinanderfolge auf dem Schirm erscheinen sollen. Schließlich wird eine mit „WIEDERGEGEBENES RECHTECK" benannte Variable so initialisiert, dass sie vier Nullen enthält. Das wiedergegebene Rechteck enthält den Ursprung (x und y) und die Größe (Breite und Höhe) des Bereichs im wiedergegebenen Bild, der sich relativ zu der Anzeige auf dem Schirm verändert hat. Dies wird während Schirmaktualisierungen verwendet.
  • In Schritt 1804 wird jedes Element im Schichtenspeicher angesteuert und das „NÄCHSTE"-Feld des Elements auf einen Wert Null zurückgesetzt. Dieser Wert ist dazu bestimmt, sicherzustellen, dass der zugehörige Bildzugriffspunkt freigegeben wird. In Schritt 1806 wird eine Prüfung durchgeführt, um zu bestimmen, ob gerade ein Hintergrundspeicher verwendet wird, was implizieren würde, dass die Animationsaufeinanderfolge 372 (siehe 5) zumindest eine Schleife ausführt. Gibt der Schritt 1806 "NEIN" zurück, kann das Schirmbild in Schritt 1808 einfach in den Hilfsspeicher kopiert werden. Gibt der Schritt 1806 „JA" zurück, muss die in dem Hintergrundspeicher enthaltene Kopie des Hintergrunds verwendet werden, da der Schirmhintergrund durch die Ausgabe einer vorhergehenden Schleifenausführung beschädigt sein kann. Dieser wird in Schritt 1812 in den Hilfsspeicher kopiert. So oder so wird die Ausführung dann in Schritt 1810 beendet.
  • Schritt 325 gemäß 5 ist unter Bezugnahme auf 9 ausführlich beschrieben. Eine Ausführung beginnt in einem Schritt 1900. In einem folgenden Schritt 1905 wird eine Prüfung durchgeführt, um zu bestimmen, ob der Wert der Variablen „ERSTER RAHMEN" wahr ist, was angibt, dass der Animationsprozess 372 (siehe 5) ganz am Anfang der Animationsaufeinanderfolge steht. Gibt Schritt 1905 „JA" zurück, wird eine Variable „AKTUELLER SATZ" in Schritt 1910 gesetzt, auf den ersten Satz von im Animationssteuerblock definierten Anweisungen zu zeigen, und wird die Variable „ZÄHLUNG" in einem folgenden Schritt 1915 auf den Wert des Wiederholungsfelds in dem vorstehend erwähnten aktuellen Satz initialisiert. In Schritt 1960 wird die Variable „ANWEISUNG" gesetzt, auf die erste Anweisung im aktuellen Satz zu zeigen, bevor die Ausführung in Schritt 1965 endet.
  • Gibt der Schritt 1905 „NEIN" zurück, wodurch angegeben wird, dass gerade ein auf den ersten Rahmen folgender Rahmen animiert wird, ist eine Anzahl zusätzlicher Prüfungen erforderlich, um zu bestimmen, welche Anweisung verwendet werden soll. In Schritt 1920 wird eine Prüfung durchgeführt, um zu bestimmen, ob „ANWEISUNG" bereits auf die letzte Anweisung im aktuellen Satz zeigt.
  • Gibt der Schritt 1920 „NEIN" zurück, wodurch angegeben wird, dass das Ende des aktuellen Satzes nicht erreicht wurde, wird „ANWEISUNG" in Schritt 1940 inkrementiert, um auf die nächste Anweisung im aktuellen Satz in Sequenzreihenfolge zu zeigen, bevor in Schritt 1965 ein Ende eintritt.
  • Gibt der Schritt 1920 „JA" zurück, wodurch angegeben wird, dass die letzte Anweisung im aktuellen Satz durchgeführt wurde, wird die Zählvariable in Schritt 1925 geprüft, um zu bestimmen, ob die Zählvariable Null ist. Gibt der Schritt 1925 „NEIN" zurück, wodurch angegeben wird, dass die Anweisungen in diesem Satz wiederholt werden sollen, wird der Wert von „ZÄHLUNG" in Schritt 1945 dekrementiert, wird „ANWEISUNG" in Schritt 1960 gesetzt, um auf die erste Anweisung im aktuellen Satz zu zeigen, und wird die Ausführung anschließend in Schritt 1965 beendet.
  • Gibt der Schritt 1925 „JA" zurück, wodurch angegeben wird, dass alle Wiederholungen dieses Anweisungssatzes abgeschlossen wurden und dass eine Ausführung mit der ersten Anweisung des nächsten Anweisungssatzes fortfahren soll, wird in Schritt 1930 eine Prüfung durchgeführt, um zu bestimmen, ob der aktuelle Satz der letzte Anweisungssatz ist, der im Animationssteuerblock definiert ist. Gibt Schritt 1930 „JA" zurück – wodurch angegeben wird, dass der aktuelle Satz der letzte Satz ist – wird die variable „ANWEISUNG" auf einen speziellen vorbestimmten Wert gesetzt, wodurch angegeben wird, dass keine weiteren Anweisungen verfügbar sind. Gemäß 9 ist dieser Wert mit „HALT" bezeichnet. Gibt der Schritt 1930 „NEIN" zurück, wodurch angegeben wird, dass es weitere noch zu verarbeitende Anweisungssätze gibt, die durch den Animationssteuerblock definiert sind, wird die Variable „AKTUELLER SATZ" in Schritt 1950 gesetzt, um auf den nächsten Anweisungssatz in Sequenzreihenfolge zu zeigen, und wird die Variable „ZÄHLUNG" in Schritt 1955 auf den Wert des „WIEDERHOLUNG"-Felds für diesen Anweisungssatz initialisiert. Anschließend wird die Variable „ANWEISUNG" in Schritt 1960 gesetzt, um auf die erst Anweisung im neuen aktuellen Satz zu zeigen, bevor die Ausführung in Schritt 1965 endet.
  • Schritt 335 gemäß 5 ist unter Bezugnahme auf 10 ausführlich beschrieben. Eine Ausführung beginnt in einem Schritt 2000. In einem folgenden Schritt 2005 wird eine mit „AKTUELLE SCHICHT" benannte Variable auf einen speziellen Wert initialisiert, der mit „LEER" bezeichnet ist, und wird eine mit „N" benannte Variable auf die Anzahl von Einträgen im Schichtenspeicher initialisiert.
  • Diese Variable (N) wird bei folgenden Schleifenanweisungen verwendet, um jeden Eintrag im Schichtenspeicher zu verarbeiten. Die Schleifenausführung beginnt in einem nachfolgenden Schritt 2010, in dem eine Prüfung durchgeführt wird, um zu bestimmen, ob der Wert von „N" Null ist. Gibt der Schritt 2010 „JA" zurück, wird die Schleife beendet und wird der Prozess 335 zu einem Schritt 2015 geführt, in dem eine Prüfung durchgeführt wird, um zu bestimmen, ob der Wert von „AKTUELLE SCHICHT" auf etwas anderes als den speziellen Wert „LEER" gesetzt wurde. Gibt der Schritt 2015 „JA" zurück, werden die mit der aktuellen Schicht in Zusammenhang stehenden Bildelement- bzw. Pixeldaten in einem anschließenden Schritt 2020 abgerufen. So oder so wird die Ausführung anschließend in Schritt 2060 beendet.
  • Gibt der Schritt 2010 „NEIN" zurück, wodurch angegeben wird, dass nicht alle Einträge im Schichtenspeicher angesteuert wurden, wird der Hauptkörper der Schleife ausgeführt. In Schritt 2025 wird eine Variable L gesetzt, um auf den N-ten Eintrag im Schichtenspeicher zu zeigen. In einem anschließenden Schritt 2030 wird der Wert des „NÄCHSTE"-Felds in diesem Eintrag geprüft, um zu sehen, ob sein Wert Null ist. Gibt der Schritt 2030 „JA" zurück, wird die Schicht in Schritt 2035 aus dem Schichtenspeicher entfernt. Dies ist ein Säuberungsschritt. Gibt der Schritt 2030 „NEIN" zurück, wird in einem folgenden Schritt 2040 eine Prüfung durchgeführt, um zu bestimmen, ob der Wert des „NÄCHSTE"-Felds von Eintrag „L" gleich eins ist und der Wert der aktuellen Schicht gleich dem mit „LEER" bezeichneten speziellen Wert ist.
  • Gibt der Schritt 2040 „JA" zurück, wird die aktuelle Schicht auf die in dem Eintrag „L" enthaltene Schicht eingestellt und wird das „NÄCHSTE"-Feld in diesem Eintrag auf den Wert des „NÄCHSTE"-Felds in der aktuellen Anweisung gesetzt. Der Wert von „N" wird anschließend in Schritt 2055 dekrementiert und die Ausführung des Prozesses 335 führt eine Schleife zurück zu Schritt 2010 aus. Gibt der Schritt 2040 „NEIN" zurück, wird der Wert des „NÄCHSTE"-Felds im Eintrag „L" in Schritt 2050 dekrementiert, bevor in Schritt 2055 „N" dekrementiert wird und eine Schleife zurück zu Schritt 2010 ausgeführt wird.
  • Schritt 345 gemäß 5 ist unter Bezugnahem auf 11(a) und 11(b) ausführlich beschrieben. Eine Ausführung beginnt in einem Schritt 900 gemäß 11(a). Ein folgender Schritt 905 prüft auf den Spezialfall eines nicht fortbestehenden Rahmens mit null Lebensdauer. Gibt der Schritt 905 „JA" zurück, wodurch angegeben wird, dass diese Bedingung besteht, wird die Ausführung des Prozesses 345 in Schritt 995 (siehe 11(b)) unverzüglich beendet. Gibt der Schritt 905 „NEIN" zurück, wird der Wert des wiedergegebenen Rechtecks in einem folgenden Schritt 910 aktualisiert, um die Verbindung des aktuellen Werts des wiedergegebenen Rechtecks und des durch die aktuelle Anweisung definierten Schirmrechtecks zu enthalten. In einem folgenden Schritt 915 wird eine Prüfung durchgeführt, um zu bestimmen, ob von der aktuellen Anweisung ein Ausschneidevorgang benötigt wird. Gibt der Schritt 915 „JA" zurück, wodurch angegeben wird, dass der Ausschneidevorgang erforderlich ist, wird die aktuelle Schicht bei einem Ausführungsbeispiel in Schritt 920 nur für den Umfang bzw. Gültigkeitsbereich der aktuellen Anweisung durch den ausgeschnittenen Bereich ersetzt. Jedenfalls bewegt sich die Ausführung dann zu einem folgenden Schritt 925.
  • In Schritt 925 wird eine Prüfung durchgeführt, um zu bestimmen, ob von der aktuellen Anweisung eine Neuskalierung benötigt wird. Gibt der Schritt 925 „JA" zurück, wodurch angegeben wird, dass eine Neuskalierung erforderlich ist, wird die aktuelle Schicht in Schritt 930 nur für den Umfang bzw. Gültigkeitsbereich der aktuellen Anweisung durch eine Version der aktuellen Schicht ersetzt, die auf eine Breite von w_SCHIRM und eine Höhe von h_SCHIRM wie in der aktuellen Anweisung definiert skaliert ist. In jedem Fall bewegt sich die Ausführung des Prozesses 345 dann zu einem Schritt 935, in dem die aktuelle Schicht über das Wiedergabebild gesetzt wird, wobei sich die obere linke Ecke des aktuellen Bilds an der Stelle (x_SCHIRM, y_SCHIRM) befindet, die durch die aktuelle Anweisung festgelegt ist. Die Schritte 920, 930 und 935 können im Umfang des vorliegenden Ausführungsbeispiels auf eine optimiertere Art und Weise kombiniert werden. In der Praxis ist es wahrscheinlich, dass ein optimierter Arbeitsvorgang verwendet wird, der eine oder mehrere dieser Aufgaben kombiniert. Die Unterteilung in einzelne eindeutige Verarbeitungsschritte, die in dieser Beschreibung verwendet werden, erfolgt rein aus Gründen der Klarheit.
  • In einem folgenden Schritt 940 (siehe 11(b)) wird eine Prüfung durchgeführt, um zu bestimmen, ob die Schicht fortbestehend ist und eine Lebensdauer von mehr als null Zeitgeberticks hat. Gibt der Schritt 940 einen „JA"-Wert zurück, impliziert dies, dass das Wiedergabebild ausreichend Informationen enthält, um den nächsten Rahmen in Kombination mit der aktuellen Anzeige zu definieren, und bewegt sich die Ausführung zu einem Prüfschritt 955, in dem ein Wert der Variablen „WIEDERHERSTELLEN" geprüft wird. Wird ein Wert „WAHR" zurückgegeben, wird der Prozess 345 gemäß einem „JA"- Pfeil zu Schritt 965 geführt, in dem der von dem wiedergegebenen Rechteck festgelegte Bereich vom Wiedergabebild in das Schirmbild kopiert wird. Gibt der Prüfschritt 955 einen „UNWAHR"-Wert zurück, wird der Prozess 345 gemäß einem „NEIN"-Pfeil zu Schritt 960 geführt, in dem der aktuelle Schirm in den Hilfsspeicher kopiert wird, und wird der Prozess 345 danach zu Schritt 965 geführt.
  • Folgend auf Schritt 965 wird der Prozess 345 zu Schritt 970 geführt, in dem der von dem wiedergegebenen Rechteck festgelegte Bereich vom Hilfsspeicher in das Wiedergabebild kopiert wird, woraufhin das wiedergegebene Rechteck in Schritt 975 auf (0,0,0,0) gesetzt wird und die Variable „WIEDERHERSTELLEN" auf „WAHR" gesetzt wird. Der Prozess 345 wird dann zu einem Schritt 980 geführt, der den Prozess 345 anweist, zu warten, bis die „aktuelle Zeit" größer ist als ein Wert im Zeitgeber.
  • Zurückkehrend zu Schritt 940 wird der Prozess 345, falls ein Wert „UNWAHR" von dem Schritt zurückgegeben wird, gemäß einem „NEIN"-Pfeil zu Schritt 945 geführt, in dem der von dem wiedergegebenen Rechteck festgelegte Bereich vom Wiedergabebild in das Schirmbild kopiert wird. Daraufhin wird der Wert von „WIEDERHERSTELLEN" in Schritt 950 auf „UNWAHR" gesetzt und wird der Prozess 345 zu Schritt 980 geführt.
  • Nach dem Schritt 980 wird der Prozess 345 zu einem Schritt 985 geführt, in dem der von dem wiedergegebenen Rechteck festgelegte Schirmbereich aktualisiert wird. Daraufhin wird der Zeitgeber in Schritt 990 auf einen Wert gesetzt, der gleich „aktuelle Zeit" plus „LEBENSDAUER" ist, woraufhin der Prozess 345 in Schritt 995 beendet wird.
  • Schritt 367 gemäß 5 ist unter Bezugnahme auf 12 ausführlich beschrieben. Nach einem Anfangsschritt 1300 wird der Prozess 367 zu Schritt 1310 geführt, in dem der von dem wiedergegebenen Rechteck festgelegte Bereich vom Wiedergabebild in das Schirmbild kopiert wird. Daraufhin wird der von dem wiedergegebenen Rechteck festgelegte Schirmbereich in Schritt 1320 aktualisiert, woraufhin der Prozess 367 in Schritt 1330 beendet wird.
  • Das Verfahren zum Bereitstellen einer Animation kann wahlweise in dedizierter Hardware wie etwa einer oder mehreren integrierten Schaltungen implementiert werden, die die Funktionen oder Unterfunktionen zum Bereitstellen einer Animation durchführen. Derartige dedizierte Hardware kann Grafikprozessoren, digitale Signalprozessoren oder einen oder mehrere Mikroprozessoren und assoziierte Speicher umfassen.
  • 13 stellt ein Beispiel eines Anweisungssatzes bereit, der mit einer Animationsaufeinanderfolge in Zusammenhang steht, durch die ein erstes Bild auf ein zweites Hindergrundbild „geschoben" wird. Die Figur zeigt einen Anweisungssatz 1200 mit neun Spalten 1208 bis 1224 mit Ganzzahlen und zwei Dateibezeichnungen 1226 und 1228. Die obersten Ganzzahlen 1202 bis 1206 der ersten drei Spalten 1208 bis 1212 stellen Kopffeldinformationen bereit, die sich jeweils auf eine Breite und eine Höhe des Hintergrundbildes und die Anzahl von Schichten (d.h. Bildern) beziehen, die bei der Animation verwendet werden. Die neun Spalten 1208 bis 1224 (mit der Ausnahme der ersten Reihe mit 3) beziehen sich jeweils auf die Variablen x_SCHIRM, y_SCHIRM, x_AUSSCHNITT, y_AUSSCHNITT, w_AUSSCHNITT, h_AUSSCHHNITT, „LEBENSDAUER", „FORTBESTAND" und „NÄCHSTE". Abgesehen von den Kopffeldinformationen weisen die Spalten 11 Zeilen auf, wodurch angegeben wird, dass die Animation in elf Schritten durchgeführt wird. Jede Reihe stellt eine Anweisung dar und die 11 Reihen stellen einen einzelnen Anweisungssatz dar.
  • 14 stellt die Animationsaufeinanderfolge gemäß 13 bildlich dar. Die Figur zeigt das Hintergrundbild 1408 einer Scheibe auf einem leeren Hintergrund (d.h. Datei 1228 gemäß 13). Die Abmessungen des Bildes 1408 sind 675 (d.h. 1202 gemäß 13) Breite (dargestellt durch einen Pfeil 1410) und 450 (d.h. 1204 gemäß 13) Höhe (dargestellt durch einen Pfeil 1406). Die Figur zeigt auch ein Bild 1404 (d.h. 1226 gemäß 13), das auf das Hintergrundbild 1408 zu schieben ist. Das Bild 1404 hat eine Breite und eine Höhe, die jeweils durch Pfeile 1400 und 1402 dargestellt sind. Es sind vier weitere Ansichten des Hintergrundbildes bereitgestellt, wobei das Bild 1404 schrittweise weiter auf das Hintergrundbild geschoben wird.
  • Eine erste Reihe 1230 des Anweisungssatzes 1200 (siehe 13) legt das Hintergrundbild 1412 fest. Die ersten beiden Ganzzahlen von links der Reihe 1230, welche die Werte von x_SCHIRM und y_SCHIRM sind, geben an, dass das Bild mit seiner oberen linken Ecke an der oberen linken Ecke des Anzeigebereichs zu positionieren ist. Da der „NÄCHSTE"-Wert dieser Reihe 1230, d.h. die Ganzzahl ganz rechts, einen Wert von „0" aufweist, gibt dies an, dass dieses vorliegende Bild, oder diese Schicht, nicht wiederverwendet werden wird, und dass das nachfolgende Bild, in diesem Fall das Bild 1404, das nächste zur Verarbeitung ist.
  • Die nächste Reihe 1232 verarbeitet folglich das Bild 1404. Die ersten beiden Ganzzahlen von links der Reihe 1232, welche die Werte von x_SCHIRM und y_SCHIRM sind, geben an, dass das Bild 1404 mit seiner oberen linken Ecke an der oberen linken Ecke des Anzeigebereichs zu positionieren ist. Die dritte und die fünfte Ganzzahl von links dieser Reihe, d.h. y_AUSSCHNITT und w_AUSSCHNITT, bezeichnen den Teil des Bildes 1404, der für die vorliegende Anweisung in der x-Richtung zu „erhalten" ist. Dies wird durchgeführt, indem x_AUSSCHNITT (d.h. 400) weit von links entlang des Bildes 1404 bewegt wird und die nächsten w_AUSSCHNITT (d.h. 45) des Bildes erhalten werden. Gleichermaßen geben die vierte und die sechste Ganzzahl von links der Reihe, d.h. y_AUSSCHNITT und h_AUSSCHNITT, den Teil des Bildes 1404 an, der für die vorliegende Anweisung in der y_Richtung zu „erhalten" ist. Dies wird durchgeführt, indem das Bild 1404 y_AUSSCHNITT (d.h. 000) weit von oben herunter bewegt wird und die nächsten h_AUSSCHNITT, d.h. 124, erhalten werden, was im vorliegenden Fall das gesamte Bild ist. Dementsprechend sind die rechten „45" zu erhalten, wobei die volle Höhe „124" des Bildes durchlaufen wird, und dies wird bei x_SCHIRM, y_SCHIRM positioniert, d.h. bei einer (0,0)-Verschiebung vom oberen linken Ausgangspunkt. Das Ergebnis hiervon ist gemäß 13 mit 1414 dargestellt, was das teilweise auf das Hintergrundbild geschobene Bild 1404 zeigt. Weiter die Reihe 1232 betrachtend hat die siebte Ganzzahl von links, d.h. „LEBENSDAUER", einen Wert von 1, wodurch angegeben wird, dass zwischen Abschluss einer Ausführung der vorliegenden Anweisung und Abschluss einer Ausführung der nächsten Anweisung ein einziger Tick erfolgen soll. Dieser Wert von „LEBENSDAUER" führt zu einer gleichmäßigen Gleitbewegung des Bildes 1404.
  • Immer noch die Reihe 1232 betrachtend hat die achte Ganzzahl von links, d.h. „FORTBESTAND", einen Wert von 0, was bedeutet, dass der Schirmwert vor der Ausführung der nächsten Anweisung auf den Hintergrund vor der Ausführung zurückgesetzt wird.
  • Die Spalte ganz rechts der Anweisungsreihe 1232 gibt an, dass der Wert von „NÄCHSTE" 1 ist, was bedeutet, dass die aktuelle Schicht (Bild 1404) mit der nächsten Anweisung zu verwenden ist, wo ein geringfügig längerer Bereich ausgeschnitten und über der oberen linken Ecke des Hintergrunds wiedergegeben wird.
  • Gemäß 1416 und 1418 sind fortschreitende Phasen des gerade auf das Bild 1408 geschobenen Bildes 1404 gezeigt.
  • Aus dem Vorstehenden ist es offensichtlich, dass Ausführungsbeispiele der Erfindung auf die Computer- und die Datenverarbeitungsindustrie und insbesondere auf Segmente dieser Industrien anwendbar ist. Außerdem sind Ausführungsbeispiele der Erfindung ebenso auf die Werbe- und die Unterhaltungsindustrie anwendbar.
  • Das Vorangehende beschreibt nur einige Ausführungsbeispiele der Erfindung und Abweichungen und/oder Veränderungen können an dieser durchgeführt werden, ohne vom Umfang der Erfindung abzuweichen, wobei die Ausführungsbeispiele veranschaulichend und nicht ein- bzw. beschränkend sind.

Claims (10)

  1. Verfahren zum Verarbeiten einer Aufeinanderfolge von Bildschichten (2: 1006, 1008) gemäß einer Aufeinanderfolge von Anzeigeanweisungen (2: 1030, 1034, 1036) zum Erzeugen von Bilddaten zum Anzeigen, mit den Schritten: (a) Anwenden einer aktuellen Anzeigeanweisung der Aufeinanderfolge von Anzeigeanweisungen auf eine aktuelle Bildschicht der Aufeinanderfolge von Bildschichten (5: 325 bis 345); dadurch gekennzeichnet, dass jede Anzeigeanweisung einen Bildschichten-Wiederverwendungsparameter (NÄCHSTE) umfasst, der definiert, ob und wann eine aktuelle Bildschicht, auf die die Anzeigeanweisung angewandt wird, erneut zu verarbeiten ist; und das Verfahren zusätzlich die Schritte aufweist (5: 350, 355 und 10 mit Schleife zu 325 in 5): (b) Lesen des Bildschichten-Wiederverwendungsparameters der aktuellen Anzeigeanweisung und Bestimmen daraus, ob die aktuelle Bildschicht erneut zu verarbeiten ist; (c) falls die aktuelle Bildschicht nicht erneut zu verarbeiten ist (NÄCHSTE = 0), Anwenden einer nachfolgenden Anzeigeanweisung der Aufeinanderfolge von Anzeigeanweisungen auf eine nachfolgende Bildschicht der Aufeinanderfolge von Bildschichten; (d) falls die aktuelle Bildschicht erneut zu verarbeiten ist (NÄCHSTE ≠ 0): (i) Aufeinander folgendes Anwenden einer Anzahl von Anzeigeanweisungen aus der Aufeinanderfolge von Anzeigeanweisungen auf Bildschichten aus der Aufeinanderfolge von Bildschichten, wobei die Anzahl von dem in Schritt (b) gelesenen Bildschichten-Wiederverwendungsparameter bestimmt ist; und danach (ii) Anwenden einer Anzeigeanweisung auf die vorhergehend in Schritt (a) verarbeitete Bildschicht.
  2. Verfahren gemäß Anspruch 1, bei dem die Verfahrensschritte etliche Male wiederholt werden.
  3. Verfahren gemäß Anspruch 1 oder Anspruch 2, bei dem die erzeugten Bilddaten als eine Animation angezeigt werden.
  4. Verfahren gemäß Anspruch 1 oder Anspruch 2, bei dem die erzeugten Bilddaten als ein zusammengesetztes Bild angezeigt werden.
  5. Vorrichtung (101) zum Verarbeiten einer Aufeinanderfolge von Bildschichten (2: 1006, 1008) gemäß einer Aufeinanderfolge von Anzeigeanweisungen (2: 1030, 1034, 1036), die mit den Bildschichten einhergehen, zum Erzeugen von Bilddaten zum Anzeigen, mit: einer Anzeigeanweisungsverarbeitungseinrichtung (105, 109) zum Anwenden einer Anzeigeanweisung der Aufeinanderfolge von Anzeigeanweisungen auf eine Bildschicht der Aufeinanderfolge von Bildschichten; dadurch gekennzeichnet, dass jede Anzeigeanweisung einen Bildschichten-Wiederverwendungsparameter (NÄCHSTE) umfasst, der definiert, ob und wann eine aktuelle Bildschicht, auf die die Anzeigeanweisung angewandt wird, erneut zu verarbeiten ist; die Vorrichtung zusätzlich einen Bildschichten-Wiederverwendungsparameter-Verarbeitungseinrichtung (105, 109) aufweist zum Lesen des Bildschichten-Wiederverwendungsparameters der aktuellen Anzeigeanweisung und Bestimmen daraus, ob die aktuelle Bildschicht erneut zu verarbeiten ist; und die Anzeigeanweisungsverarbeitungseinrichtung (105, 109) eingerichtet ist, die Bildschichten in Übereinstimmung mit dem Ergebnis der Verarbeitung durch die Bildschichten-Wiederverwendungsparameter-Verarbeitungseinrichtung derart zu verarbeiten, dass: falls die aktuelle Bildschicht nicht erneut zu verarbeiten ist (NÄCHSTE = 0), eine nachfolgende Anzeigeanweisung der Aufeinanderfolge von Anzeigeanweisungen auf eine nachfolgende Bildschicht der Aufeinanderfolge von Bildschichten angewandt wird; falls die aktuelle Bildschicht erneut zu verarbeiten ist (NÄCHSTE ≠ 0): (i) eine Anzahl von Anzeigeanweisungen aus der Aufeinanderfolge von Anzeigeanweisungen aufeinander folgend auf Bildschichten aus der Aufeinanderfolge von Bildschichten angewandt wird, wobei die Anzahl von dem Bildschichten-Wiederverwendungsparameter bestimmt ist, der von der Bildschichten-Wiederverwendungsparameter-Verarbeitungseinrichtung gelesen wird; und danach (ii) eine Anzeigeanweisung auf die erneut zu verarbeitende aktuelle Bildschicht angewandt wird.
  6. Vorrichtung gemäß Anspruch 5, wobei die Vorrichtung betriebsfähig ist, die erzeugten Bilddaten als eine Animation anzuzeigen.
  7. Vorrichtung gemäß Anspruch 5, wobei die Vorrichtung betriebsfähig ist, die erzeugten Bilddaten als ein zusammengesetztes Bild anzuzeigen.
  8. Träger, der eine Vielzahl von Bildschichten (2: 1006, 1008) und eine Aufeinanderfolge von Anzeigeanweisungen (2: 1030, 1034, 1036) definierende Bilddaten zur Verarbeitung durch eine Vorrichtung gemäß einem der Ansprüche 5 bis 7 trägt, dadurch gekennzeichnet, dass jede Anzeigeanweisung einen Bildschichten-Wiederverwendungsparameter (NÄCHSTE) zur Verwendung durch die Vorrichtung umfasst, der definiert, ob und wann eine Bildschicht, auf die die Anzeigeanweisung angewandt wird, erneut zu verarbeiten ist.
  9. Speichermedium, das Computerprogrammanweisungen zum Programmieren einer programmierbaren Verarbeitungsvorrichtung speichert, damit diese betriebsfähig wird, ein Verfahren gemäß zumindest einem der Ansprüche 1 bis 4 durchzuführen.
  10. Signal, das Computerprogrammanweisungen zum Programmieren einer programmierbaren Verarbeitungsvorrichtung trägt, damit diese betriebsfähig wird, ein Verfahren gemäß zumindest einem der Ansprüche 1 bis 4 durchzuführen.
DE60022610T 1999-12-02 2000-12-01 Verfahren zur Animationskodierung in einer Bilddatei Expired - Lifetime DE60022610T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AUPQ4415A AUPQ441599A0 (en) 1999-12-02 1999-12-02 A method for providing a loop-back mechanism in a multi-layer digital image file
AUPQ441599 1999-12-02
AUPQ7724A AUPQ772400A0 (en) 2000-05-24 2000-05-24 A method for encoding animation in an image file
AUPQ772400 2000-05-24

Publications (2)

Publication Number Publication Date
DE60022610D1 DE60022610D1 (de) 2005-10-20
DE60022610T2 true DE60022610T2 (de) 2006-03-16

Family

ID=25646213

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60022610T Expired - Lifetime DE60022610T2 (de) 1999-12-02 2000-12-01 Verfahren zur Animationskodierung in einer Bilddatei

Country Status (5)

Country Link
US (1) US6714202B2 (de)
EP (1) EP1107605B1 (de)
JP (1) JP2001229391A (de)
AT (1) ATE304778T1 (de)
DE (1) DE60022610T2 (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001258787A1 (en) * 2000-12-04 2002-06-18 Rice Village L.L.C Unit for generating display image control information, image display, image information distribution system, and image data distribution system
JP2002208022A (ja) * 2001-01-10 2002-07-26 Reile:Kk 表示制御方法、情報表示装置および媒体
US7602847B1 (en) 2001-03-27 2009-10-13 Vixs Systems, Inc. Device and method for compression of a video stream
US20070053428A1 (en) * 2001-03-30 2007-03-08 Vixs Systems, Inc. Managed degradation of a video stream
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US7372472B1 (en) * 2001-04-09 2008-05-13 Matrox Electronic Systems Ltd. Method and apparatus for graphically defining a video particle explosion effect
US6957389B2 (en) * 2001-04-09 2005-10-18 Microsoft Corp. Animation on-object user interface
FR2828054B1 (fr) * 2001-07-27 2003-11-28 Thomson Licensing Sa Procede et dispositif de codage d'une scene
US6959348B1 (en) * 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US20030039226A1 (en) * 2001-08-24 2003-02-27 Kwak Joseph A. Physical layer automatic repeat request (ARQ)
US7139330B1 (en) 2001-10-31 2006-11-21 Vixs Systems, Inc. System for signal mixing and method thereof
US7596127B1 (en) 2001-10-31 2009-09-29 Vixs Systems, Inc. System for allocating data in a communications system and method thereof
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7165180B1 (en) 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
US7467351B1 (en) * 2002-01-31 2008-12-16 Adobe Systems Incorporated Layered master pages
US7310679B1 (en) 2002-04-29 2007-12-18 Vixs Systems Inc. Method and system for transmitting video content while preventing other transmissions in a contention-based network
US7120253B2 (en) * 2002-05-02 2006-10-10 Vixs Systems, Inc. Method and system for protecting video data
JP3704515B2 (ja) * 2002-08-30 2005-10-12 Necアクセステクニカ株式会社 画像伸張装置及びその方法
GB2393803A (en) * 2002-10-01 2004-04-07 Hewlett Packard Co Two mode creature simulaton
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7408989B2 (en) * 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
KR100573685B1 (ko) * 2003-03-07 2006-04-25 엘지전자 주식회사 대화형 광디스크의 애니메이션 데이터 재생방법 및 장치
KR100574823B1 (ko) * 2003-03-07 2006-04-28 엘지전자 주식회사 대화형 광디스크의 애니메이션 천크 데이터 및 그속성정보 관리방법
CN100531292C (zh) 2003-02-20 2009-08-19 株式会社理光 图像处理方法及装置
US7606305B1 (en) 2003-02-24 2009-10-20 Vixs Systems, Inc. Method and system for transcoding video data
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7327784B2 (en) * 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
US7130350B1 (en) 2003-02-28 2006-10-31 Vixs Systems, Inc. Method and system for encoding and decoding data in a video stream
JP4032355B2 (ja) * 2003-03-27 2008-01-16 カシオ計算機株式会社 表示処理装置、表示制御方法および表示処理プログラム
US7739105B2 (en) * 2003-06-13 2010-06-15 Vixs Systems, Inc. System and method for processing audio frames
US7668396B2 (en) * 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
US20050168485A1 (en) * 2004-01-29 2005-08-04 Nattress Thomas G. System for combining a sequence of images with computer-generated 3D graphics
US7406598B2 (en) * 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
EP1739525A4 (de) * 2004-03-31 2011-08-10 Sharp Kk Elektronische einrichtung
US8035585B2 (en) * 2004-12-17 2011-10-11 Sony Ericsson Mobile Communications Ab Graphic data files including illumination control and related methods and computer program products
US9329827B2 (en) * 2004-12-29 2016-05-03 Funmobility, Inc. Cropping of images for display on variably sized display devices
US7421048B2 (en) * 2005-01-20 2008-09-02 Vixs Systems, Inc. System and method for multimedia delivery in a wireless environment
US7609766B2 (en) * 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
US8949920B2 (en) * 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system
US7400869B2 (en) * 2005-03-22 2008-07-15 Vixs Systems Inc. System and method for adaptive DC offset compensation in wireless transmissions
US11232768B2 (en) 2005-04-12 2022-01-25 Douglas G. Richardson Embedding animation in electronic mail, text messages and websites
GB0512260D0 (en) * 2005-06-16 2005-07-27 Gamze Ltd Image display system and method
US8077179B2 (en) * 2005-07-11 2011-12-13 Pandoodle Corp. System and method for creating animated video with personalized elements
US7707485B2 (en) 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
CN1960490B (zh) * 2005-11-04 2010-08-18 腾讯科技(深圳)有限公司 一种将gif文件转换为swf文件的方法
KR100717050B1 (ko) * 2005-11-05 2007-05-14 삼성전자주식회사 움직이는 그래픽 이미지 생성 장치 및 방법, 및 이에사용되는 이펙트 핸들러
US20070112826A1 (en) * 2005-11-10 2007-05-17 Vixs Systems, Inc. Multimedia transcoding based on remaining storage capacity
US8131995B2 (en) * 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
US20080177776A1 (en) * 2007-01-22 2008-07-24 Stallings Richard W Animation object shell system and method
US7996756B2 (en) * 2007-09-12 2011-08-09 Vistaprint Technologies Limited System and methods for displaying user modifiable server-rendered images
US8339403B2 (en) 2008-04-16 2012-12-25 Microsoft Corporation Multi-layered slide transitions
US9589381B2 (en) * 2008-06-12 2017-03-07 Microsoft Technology Licensing, Llc Copying of animation effects from a source object to at least one target object
US10943030B2 (en) * 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
CN101882321B (zh) * 2009-05-08 2012-09-05 上海科泰世纪科技有限公司 动画用户界面渲染系统及方法
EP2439603A1 (de) * 2010-09-18 2012-04-11 Electrolux Home Products Corporation N.V. Benutzeroberfläche und Haushalts- oder Industriegerät
CN101976194A (zh) * 2010-10-29 2011-02-16 中兴通讯股份有限公司 一种设置用户界面的方法及装置
US8842131B2 (en) * 2012-01-10 2014-09-23 Fanhattan Llc System and method for framework clipping
JP6010744B2 (ja) * 2012-05-31 2016-10-19 株式会社Pfu 文書作成システム、文書作成装置、文書作成方法、及びプログラム
US10317989B2 (en) * 2016-03-13 2019-06-11 Logitech Europe S.A. Transition between virtual and augmented reality
CN108021366B (zh) * 2017-12-04 2020-10-16 携程旅游信息技术(上海)有限公司 界面动画实现方法、装置、电子设备、存储介质
CN110166842B (zh) * 2018-11-19 2020-10-16 深圳市腾讯信息技术有限公司 一种视频文件操作方法、装置和存储介质
CN112150587A (zh) * 2019-06-11 2020-12-29 腾讯科技(深圳)有限公司 动画数据编码、解码方法、装置、存储介质和计算机设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2246933A (en) * 1990-06-13 1992-02-12 Rank Cintel Ltd Production of multi-layered video composite
JP3263443B2 (ja) * 1992-09-07 2002-03-04 富士通株式会社 アニメーション編集装置
US5502807A (en) * 1992-09-21 1996-03-26 Tektronix, Inc. Configurable video sequence viewing and recording system
US5619639A (en) * 1994-10-04 1997-04-08 Mast; Michael B. Method and apparatus for associating an image display area with an application display area
EP0856174A4 (de) * 1995-10-13 2000-03-08 James B Roseborough Technik zum animieren und simulieren von geschöpfen
JP3729920B2 (ja) * 1996-03-18 2005-12-21 パイオニア株式会社 情報記録媒体並びにその記録装置及び再生装置
JPH10312468A (ja) * 1997-05-13 1998-11-24 Nippon Telegr & Teleph Corp <Ntt> シナリオ記述方式
US6433784B1 (en) * 1998-02-26 2002-08-13 Learn2 Corporation System and method for automatic animation generation
JPH11298784A (ja) * 1998-04-08 1999-10-29 Fuji Photo Film Co Ltd 電子カメラおよびその動作制御方法ならびにアニメーションgif生成装置および方法

Also Published As

Publication number Publication date
EP1107605A2 (de) 2001-06-13
DE60022610D1 (de) 2005-10-20
JP2001229391A (ja) 2001-08-24
US6714202B2 (en) 2004-03-30
US20010026277A1 (en) 2001-10-04
ATE304778T1 (de) 2005-09-15
EP1107605A3 (de) 2004-03-10
EP1107605B1 (de) 2005-09-14

Similar Documents

Publication Publication Date Title
DE60022610T2 (de) Verfahren zur Animationskodierung in einer Bilddatei
DE69820093T2 (de) Hierarchisches verfahren und system für objektbasierte audiovisuelle deskriptiveetikettierung von bildern für die informationswiedergewinnung, -editierung und -manipulation
DE69936264T2 (de) Verfahren und vorrichtung zur verwaltung einer multimediadatei
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE4225872C2 (de) Verfahren zum Kennzeichnen und Identifizieren ausgewählter Gebiete in Bildern
DE69828974T2 (de) Verfahren und system zur veränderung und aufbereitung dreidimensionaler animationen in einer nicht-linearen editionsumgebung
DE3714172C2 (de)
DE60016032T2 (de) Videoschnittarbeitsflussverfahren und -system
DE69825851T2 (de) Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
DE10234137B4 (de) System und Verfahren, um Benutzern zu ermöglichen, graphische Bilder zu editieren
DE69434370T2 (de) Strukturiertes Bildformat zur Beschreibung eines Komplexfarbrasterbilds
DE60109434T2 (de) Systeme und verfahren zur erzeugung von visuellen darstellungen von graphischen daten
DE69836790T2 (de) Suchen von Videobildern, Produktion von Videoinformationen und Speichermedium zur Speicherung eines Verarbeitungsprogramms dafür
DE69534558T2 (de) Effizientes Verfahren, Gerät und Rechnerprogramm zur Auswertung graphischer Programmiersprache
DE69817029T2 (de) Mischung von komprimierten rasterbildern in einem drucksystem
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE60025406T2 (de) Laufbilderinformationsanzeigeverfahren und -gerät
DE69835570T2 (de) Digitales Videoschnittsystem und -verfahren
DE602004001896T2 (de) Gerät und Verfahren zur Umwandlung von Multimedia-Inhalten
DE3729023C2 (de) Bildbearbeitungsgerät
DE3335162C2 (de) Vorrichtung und Verfahren für graphische Darstellungen mittels Computer
DE60020957T2 (de) Verfahren und vorrichtung zur abstimmung von natürlichen farben
DE69629120T2 (de) Lesehilfe
DE102008004815B4 (de) Verfahren und Vorrichtung zum grafischen Angeben des Fortschritts mehrerer Teile einer Aufgabe
DE19531004C2 (de) Verfahren und Vorrichtung zur wahrnehmungsoptimierten Übertragung von Video- und Audio-Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition