DE4428517C2 - Verfahren zum Behandeln eines Teiles eines komprimierten Bildes sowie Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens - Google Patents

Verfahren zum Behandeln eines Teiles eines komprimierten Bildes sowie Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens

Info

Publication number
DE4428517C2
DE4428517C2 DE4428517A DE4428517A DE4428517C2 DE 4428517 C2 DE4428517 C2 DE 4428517C2 DE 4428517 A DE4428517 A DE 4428517A DE 4428517 A DE4428517 A DE 4428517A DE 4428517 C2 DE4428517 C2 DE 4428517C2
Authority
DE
Germany
Prior art keywords
image
block
mcu
value
blocks
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
DE4428517A
Other languages
English (en)
Other versions
DE4428517A1 (de
Inventor
Martin Paul Boliek
Robert Frank Miller
Steven Michael Blonstein
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE4428517A1 publication Critical patent/DE4428517A1/de
Application granted granted Critical
Publication of DE4428517C2 publication Critical patent/DE4428517C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Processing Or Creating Images (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

Die Erfindung betrifft ein Verfahren zum Behandeln eines Teils eines kompri­ mierten Bildes, um es aufzubereiten, nach dem Oberbegriff des Anspruches 1, sowie eine Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens nach Anspruch 9.
Aus der US 5,235,430 ist eine Zeigeranordnung bekannt, bei der die Zeiger dazu verwendet werden, um die Lage von sich ändernden Punkten anzuzeigen, die bei einem MR-Fax-Kompressionsstandard verwendet werden. Dadurch kann die Geschwindigkeit beim Kodieren und Dekodieren von MR-Daten erhöht werden. Dabei können die Zeiger auch abgespeichert werden.
Aus der US-Zeitschrift: ARAZAKI, S. et al.: Image data compression by DCT with adaptive run-length coding. In: IEEE Transactions on Consumer Electronics,
Nov. 1991, Vol. 37, No. 4, S. 860-866, ist ein JPEG-ähnliches System bekannt. Dabei erfolgt jedoch kein wahlfreier Zugriff zu irgendwelchen Daten. Das hier beschriebene Markiersystem liegt innerhalb des Codierungsbereiches eines einzel­ nen 8 × 8-Blockes und arbeitet sehr ähnlich dem bekannten JPEG-Algorithmus. Es handelt sich hierbei aber nicht um eine sog. MCU-Einheit.
Aus der EP 528 642 A2 ist ein System bekannt, um Markierer einer komprimier­ ten Datendatei hinzuzufügen, um dadurch einen Zugriff zu der Datei zu ermögli­ chen. Dabei müssen jedoch die Markierer in der Datei selbst enthalten sein und es wird keinerlei Anleitung vermittelt, wie dies bei einer JPEG-kompatiblen Datei ermöglicht werden könnte.
Aus der US-Literaturstelle: RABBANI, Majid et al.: Digital image compression techniques. Bellingham, Washington USA, SPIE Optical Engineering Press, 1991, S. 113-121, ist der JPEG-Algorithmus beschrieben. Dabei wird aber keinerlei wahlfreier Zugriff realisiert.
Aus der US-Zeitschrift: WALLACE, G.K.: The JPEG still picture compression standard. In: IEEE Transactions on Consumer Electronics, Feb. 1992, Vol. 38, No. 1, S. XVIII-XXXIV, ist ebenfalls ein JPEG-Kompressionsstandard bekannt.
Eine moderne Farbbilderzeugung in Kameras und Scannern erfordert eine gewalti­ ge Speicherkapazität, um Bilddateien zu speichern, welche eine Datendarstellung des eingegebenen oder gescannten Bildes enthalten. Ein übliches Bild, wie es beispielsweise mit einem Farbkopierer erzeugt wird, der Papier der Größe (216 mm × 297 mm) verwendet und eine Auflösung von 400 Punkten pro Inch (15,75 pro mm) und 3 Bytes (24 Bits) hat, um die Farbe für jeden Punkt darzu­ stellen, würde 44,88 Megabytes des Speichers belegen. Zusätzlich zu der Größe des Speichers müßte dieser eine große Bandbreite für Echtzeit-Anwendungen haben, wie beispielsweise bei einem Farbkopierer, bei welchem 15 Seiten pro Minute eine typische Forderung sind. Dies bedeutet eine Bandbreite oder eine Datenrate von beinahe 90 Megabits/s. Diese beiden Anforderungen treiben die Kosten von Abbildungssystemen in die Höhe. Es sind Komprimiermethoden angewendet worden, um sowohl das Bandbreiten- als auch das Speicherproblem für eine Zeitlang zu lösen. Mit dem Komprimieren kann eine Bilddatei in einem kleineren Speicher gespeichert werden, und das Bild kann über einen in der Bandbreite begrenzten Kanal schneller bewegt werden, da weniger Bits zum Darstellen des Bildes verwendet werden. Ein Komprimieren schließt ein Durch­ laufen der Rohbilddaten in einen Verdichter ein, welcher die Muster in den Rohdaten kombiniert und analysiert, um eine komprimierte Bilddatei zu erzeugen, in welcher das ursprüngliche Bild ohne ein entsprechendes Dekomprimieren nicht ohne weiteres erkennbar ist.
Wenn ein Bild aufzubereiten, zu skalieren, zu drehen oder auf andere Weise zu verarbeiten ist, ist ein wahlweiser Zugriff auf einige oder alle Pixels erforderlich. Sobald die Verarbeitung beendet ist, müssen die aufbereiteten Daten in der Bilddatei gesichert werden, um die Pixels in diesem Bild zu aktualisieren. Wenn die zu verarbeitende Bilddatei komprimiert wird, ist es bei der herkömmlichen Einrichtung, um einen beliebigen Pixel-Zugriff zu erhalten, notwendig, das gesamte Bild in einem Rahmenspeicher zu dekomprimieren, die Verarbeitung durchzuführen und dann das Bild in einer neuen Bilddatei wieder zu komprimie­ ren. Die Schwierigkeit hierbei besteht darin, daß kein Speicher durch Dekom­ primieren eingespart wird, da der Speicher für den Rahmenspeicher benötigt wird. Die Bandbreite wird ebenfalls geringer, da Komprimieren und Dekomprimieren von ganzen Bildern Zeit kostet. Diese zusätzliche Verarbeitungszeit und der Speicher sind oft nutzlos, da selbst die teuerste Anzeige in einem Abbildungs­ system das gesamte Bild mit voller Auflösung nicht darstellen kann.
Komprimierverfahren zum Komprimieren von Bilddaten sind bekannt. Ein der­ artiger Komprimierstandard ist der bereits erwähnte JPEG (Joint Photographic Experts Group). Andere Standards schließen JBIG, Fax G3 oder G4 und GIF ein. Bei JPEG wird, um ein Beispiel zu geben, ein Bild durch eine zweidimensionale Anordnung von Bildelementen oder Pixels dargestellt. Wenn das Bild Grauabstu­ fungen hat, wird jedes Pixel durch einen Intensitätswert dargestellt, und wenn das Bild farbig ist, wird es in mehrere Komponenten aufgeteilt (nämlich in rote, grüne und blaue Komponenten für ein Bild, das gemäß dem RGB Farbtrenn-Standard aufgeteilt ist), wobei jedes Pixel jedes Komponentenbildes durch einen Kom­ ponentenfarbwert dargestellt ist.
Bevor Bilddaten (die hier als eine Bilddatei bezeichnet sind, welche die Daten eines Bildes enthält) in eine komprimierte Bilddatei komprimiert werden, wird das Bild in Komponenten aufgeteilt (wenn das Bild nicht monochrom ist, da es in diesem Fall nur eine Komponente gibt) und dann wird jede Komponente in Blöcke unterteilt, die jeweils eine Bildfläche eines Quadrats von (8 × 8) oder 64 Pixels bedecken. In jedem Block werden die 64 Pixels mit Hilfe einer diskreten Kosinus­ transformation in 64 frequenzähnliche Basisfunktions-Amplituden transformiert, von denen eine ein Gleichspannungswert und die anderen 64 Wechselspannungs­ werte sind. Diese Werte werden dann in komprimierte Bilddaten codiert.
Um eine hohe Verdichtung zu erreichen, wird eine Differenz zwischen dem Gleichspannungswert eines Blockes und dem Gleichspannungswert eines vorherge­ henden Blockes anstelle des absoluten Gleichspannungswerts des Blockes ver­ wendet. In Anbetracht dessen, daß in den meisten Bildern weniger Bits benötigt werden, um die Differenzwerte als die Absolutwerte darzustellen, können höhere Gesamtverdichtungsverhältnisse der Bilddaten erhalten werden. Aus diesem Grund benutzen viele Bildkompressionsschemen außer IPEG ähnliche Methoden zum Komprimieren und die Differenzwerte.
Ein Unterabtasten (subsampling) von Farbe wird oft angewendet, um die Kom­ pressibilität eines Bildes zu erhöhen. Wenn ein Bild in die drei Komponenten des YUV-(Y, Cr, Cb)Farbraums aufgeteilt wird, stellt die Y-Komponente die Lumi­ nanz (y), die U- oder die Cr-Komponente die (Rot - Grün)-Chrominanz und die V- oder die Cb-Komponente stellt die (Blau - Grün)-Chrominanz dar. Visuell ist die Luminanz-Komponente die wichtigste Komponente, und die Auflösung der anderen beiden Komponenten kann oft reduziert werden, ohne unerwünschte Artefakte in ein Bild einzubringen. Dieses Reduzieren der Farbauflösung be­ züglich der Luminanz-Auflösung ist als Unterabtasten bzw. Subsampling bekannt. Ein Reduzieren der Auflösung jeder Farbkomponente (U und V) auf die Hälfte wird als 2 : 1 : 1-Unterabtasten bezeichnet, da für jeweils zwei Luminanz-(Y) Pixel- Farbwerte nur ein Paar von (U, V) Pixel-Farbwerten vorgesehen ist. Ohne ein Unterabtasten (1 : 1 : 1) wird eine Ein-Pixel-Fläche durch insgesamt drei Pixels (1 L, 1 U, 1 V) beschrieben, während mit 2 : 1 : 1-Unterabtasten eine Zwei-Pixel- Fläche durch insgesamt vier Pixels (2 L, 1 U, 1 V) beschrieben wird, wodurch sich eine Verkleinerung der Bilddaten-Dateigröße auf ein Drittel ergibt. Mit einem 4 : 1 : 1-Unterabtasten wird eine Vier-Pixel-Fläche durch sechs Pixels und nicht durch zwölf bedeckt, was eine Reduzierung der Bilddaten-Dateigröße auf die Hälfte ergibt. Wenn ein Unterabtasten angewendet wird, erstrecken sich die Blöcke verschiedener Farbkomponenten über verschieden große Flächen, so daß, um die Komponentenblöcke zusammenzuhalten, alle Blöcke für einen kleinen Bereich bei einem Codieren und Decodieren zusammengehalten werden. Bei­ spielsweise werden bei einem 2 : 1: 1-Unterabtasten vier Blöcke, nämlich ein U- Block, ein V-Block und zwei Y-Blöcke benötigt, um einen Bereich von (8 Pixels × 16 Pixels) zu bedecken, so daß diese vier Blöcke zusammengehalten werden. Bei einem 4 : 1 : 1-Unterabtasten wird ein Bereich von (16 Pixels × 16 Pixels) von sechs Blöcken bedeckt (4 Y, 1 U, 1 V), welche zusammengehalten werden. Diese kleinste Einheit von komprimierbaren und dekomprimierbaren Daten ist als eine "minimal codierte Einheit" oder eine "MCU"-Einheit bekannt. Gemäß der JPEG- Norm können Daten aus einer komprimierten Datendatei als eine MCU-Einheit zu einer bestimmten Zeit extrahiert werden.
Der Komprimierprozeß schließt ein Umformen jedes der 64 Pixel-Farbwerte, die einem Block zugeordnet sind, in einen Differenz-Gleichspannungswert und 63 Wechselspannungswerte, ein Gruppieren von Blöcken in MCU-Einheiten in Multi­ block-MCU-Einheiten und dann ein Reduzieren der Anzahl Bits ein, die benötigt werden, um jede MCU-Einheit durch ein Entropie-Codieren zu beschreiben. Die komprimierten MCU-Einheiten, welche ein komprimiertes Bild bilden, werden dann mit Identifizierinformation versehen, wie der MCU-Stelle in dem Bild, wenn es nicht-komprimiert ist, wie Längendaten, um anzuzeigen, wieviele Bits in der MCU-Einheit enthalten sind, u.ä., und die MCU-Einheiten werden nacheinander als eine komprimierte Bilddatei gespeichert. Längendaten werden benötigt, da die MCU-Einheiten eine variable Länge haben, wobei die Länge eine Funktion der zu komprimierenden Daten und des verwendeten Komprimiertyps sind. Der Prozeß des Entropie-Codierens wird generell als Codieren bezeichnet, während Kom­ primieren auf den Prozeß des Blockierens, Kosinus-Transformierens und Codie­ rens von Bilddaten hinweist.
Bezeichnenderweise können Differenz-Gleichspannungswerte für Blöcke eines Bildes aus einem komprimierten Bild nach dem Entropie-Decodieren der Bild­ daten extrahiert werden, was weniger mühsam ist als ein vollständiges Dekom­ primieren des Bildes, was zum einen den zusätzlichen Schritt des inversen Kosi­ nus-Transformierens der Daten erfordert. Da ein Block nicht invers transformiert werden muß, um dessen Gleichspannungswert zu erhalten, ist der Aufwand, der erforderlich ist, um den Gleichspannungswert zu erhalten, viel geringer als der, den dekomprimierten Block zu erhalten, da Kosinus- und inverse Transformatio­ nen sehr rechenintensive Operationen sind.
Um ein Bild zu dekomprimieren, wird jede MCU-Einheit aus einer Bilddatei in einen oder mehrere Bildblöcke durch die umgekehrten Operationen bezüglich der Operation komprimiert, die verwendet werden, um die Daten zu komprimieren. Ein Entropie-Decodieren wird bei einer komprimierten MCU-Einheit angewendet, und das Ergebnis ist ein Differenz-Gleichspannungswert und 63 Wechselspan­ nungswerte für jeden Block. Als nächstes werden die Differenz-Gleichspannungs­ werte in absolute Gleichspannungswerte durch Addieren des absoluten Gleich­ spannungswerts des Blocks links von dem interessierenden Block umgewandelt. Natürlich müssen, um für diesen Gleichspannungswert-Regenerierprozeß zu arbeiten, alle Blöcke links von dem interessierenden Block verarbeitet werden. Als nächstes durchlaufen die Blöcke eine inverse Kosinus-Transformation, wo­ durch sich nicht-komprimierte Pixel-Farbwertdaten ergeben.
Obwohl ein differentielles Codieren von sich langsam ändernden Werten von Block zu Block, beispielsweise des Gleichspannungswertes, das Komprimieren erhöht, nimmt auch die Schwierigkeit zu, weniger als alles von einem Bild zu dekomprimieren, da ein Dekomprimieren einiger Blöcke in dem Teilbild einen Bezug zu Blöcken erfordert, welche nicht in dem Teilbild vorhanden sind.
Weitere Schwierigkeiten ergeben sich bei einem partiellen Dekomprimieren, wenn das Teilbild aufgearbeitet und wieder komprimiert wird, da der Verdichtungsgrad von der Regelmäßigkeit der Bilddaten abhängt, und somit ändern MCU-Einheiten ihre Größe, wenn sich der Bildteil, welchen sie darstellen, ändert. Folglich ist ein einfaches Austauschen der MCU-Einheiten von dem Teilbild durch die MCU- Einheiten vom dem aufbereiteten Teilbild unpraktisch, wenn nicht das gesamte Bild dekomprimiert aufbereitet und wieder komprimiert wird.
Aus den vorstehenden Ausführungen ist zu ersehen, daß ein verbessertes Ver­ fahren zum Handhaben und Aufbereiten von verdichteten Bildern benötigt wird.
Die der Erfindung zugrundeliegende Aufgabe besteht darin, ein Verfahren zum Behandeln eines Teiles eines komprimierten Bildes der angegebenen Art sowie eine Bildaufbereitungseinrichtung zur Durchführung des Verfahrens zu schaffen, welches bzw. welche die Möglichkeit bietet, einen wahlfreien Zugriff zu ge­ wünschten Bildabschnitten oder Bildausschnitten eines Gesamtbildes bei ver­ gleichsweise geringer erforderlicher Speicherkapazität zu realisieren.
Diese Aufgabe wird hinsichtlich des Verfahrensaspektes erfindungsgemäß durch die im Kennzeichnungsteil des Anspruches 1 aufgeführten Merkmale gelöst.
Besonders vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens erge­ ben sich aus den Ansprüchen 2 bis 8, 15 und 16.
Eine Bildaufbereitungseinrichtung zur Durchführung des erfindungsgemäßen Verfahrens ergibt sich aus dem Anspruch 9.
Besonders vorteilhafte Ausgestaltungen und Weiterbildungen der Bildaufberei­ tungseinrichtung ergeben sich aus den Ansprüchen 10 bis 14 und 17.
Im folgenden wird die Erfindung anhand von bevorzugten Ausführungsformen unter Hinweis auf die beigefügten Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Aufbereitungssystems gemäß der Erfindung;
Fig. 2 eine Speicherabbildung eines Display-Speichers und eines komprimierten Bildes in einer zweidimensiona­ len Anordnung;
Fig. 3 eine Bilddatei, welche MCU-Einheiten und eine Zei­ ger-Anordnung, jeweils in einer linearen Anordnung mit einer der Fig. 2 entsprechenden Nummerierung ent­ hält, wenn das Bild Einblock-MCU-Einheiten verwen­ det;
Fig. 4 ein virtuelles Bild und entsprechende Randtabellen, wobei das Benutzen der Randtabellen erläutert ist;
Fig. 5 einen Zeiger einer Zeiger-Anordnung;
Fig. 6 die Felder eines Aufbereitungskopfes für eine aufbe­ reitete MCU-Einheit;
Fig. 7 eine Darstellung, wie eine Gleichspannungswert-An­ ordnung und eine Zeiger-Anordnung verwendet werden, um einen Teil eines virtuellen Bildes aus einer kom­ primierten Bilddatendatei zu extrahieren, wobei Pfeile jeweils in Beziehung stehende Einträge zei­ gen;
Fig. 8 eine der Fig. 7 ähnliche Darstellung, wobei die Gleichspannungswert-Anordnung durch einen einzigen festen Gleichspannungs-Offset-Wert ersetzt wird;
Fig. 9 ein Ablaufdiagramm eines Aufbereitungsprozesses ge­ mäß der Erfindung;
Fig. 10 ein Blockdiagramm einer Bildaufbereitungseinrichtung gemäß der Erfindung, welche in einer Ausführungsform entsprechend dem anhand von Fig. 9 beschriebenen Ab­ laufdiagramm arbeitet, und
Fig. 11 ein Blockdiagramm einer Codierschaltung, die verwen­ det wird, um Gleichspannungswerte für zusammenzuset­ zende Blöcke in ein komprimiertes Bild zu codieren.
In Fig. 1 ist funktionell eine Ausführungsform eines Aufberei­ tungssystems 10 gemäß der Erfindung dargestellt. Das Aufberei­ tungssystem 10 weist einen komprimierten Bildspeicher 12, einen Bildprozessor 14 und einen Bildspeicher 16 auf. Der komprimier­ te Bildspeicher 12 enthält einen Originalbild-Datenbereich 18, der ein komprimiertes Bild 19 enthält und einen aufbereiteten Bilddatenbereich 20, um aufbereitete MCU-Einheiten 21 zu hal­ ten. Der Bildprozessor 14 enthält einen Zeiger-Generator 22, einen Block/MCU-Decodierer 24, einen Randwert-Kalkulator 26, eine Bildaufbereitungseinheit 28, eine Bildverschiebeeinheit (scroller) 30 und einen Bild-Updater 32. Diese Elemente des Bildprozessors 14 können als diskrete Hardware, Software-Sub­ routines, welche über den Prozessor laufen oder eine Kombina­ tion der beiden sein. Das Aufbereitungssystem 10 ist als eine interaktive Anwendung verwendbar, wenn beispielsweise ein Be­ nutzer Aufbereitungsbefehle mit Hilfe einer aus und/oder eines Tastenfelds eingibt, während er einen Teil des Bildes betrach­ tet; jedoch ist das Aufbereitungssystem 10 auch als eine Kompo­ nente in einem Bildverarbeitungssystem verwendbar, in welchem Bilder und Befehle dem Aufbereitungssystem 10 ohne eine Beein­ flussung durch den Benutzer zugeführt werden.
Der Bildspeicher 16 enthält eine Zeiger-Anordnung 34, einen Display-Speicher 36, eine linke Randtabelle 38 und eine rechte Randtabelle 40. Der Speicher 12 für komprimierte Bilder ist ein digitaler Speicher, wie ein Random-Speicher (RAM), eine Magnet­ platte oder ein anderes Speichermedium.
Bevor ein Aufbereiten an einem komprimierten Bild 12 vorgenom­ men wird, ist der Bereich 20 für aufbereitete Bilddaten leer und enthält keine aufbereiteten MCU-Einheiten 21. Der Speicher­ platz, der dem Bereich 20 für aufbereitete Bilddaten zugeordnet ist, kann entsprechend den Erfordernissen des Benutzers oder entsprechend der Anwendung, die auf der vorzunehmenden Aufberei­ tungsmenge basiert, und entsprechend der Notwendigkeit für mehrfache Undo-Operationen geändert werden. Das Initialisieren des Bildspeichers 16 wird nunmehr beschrieben.
Der Bildspeicher 16 wird beim Start einer Aufbereitungsession initialisiert, oder wenn ein neues komprimiertes Bild in den Speicher 12 für komprimierte Bilder geladen wird. Ein Bild weist eine zweidimensionale Anordnung von Blöcken auf. Für Farbbilder wird das Bild in mehrere Farbkomponenten-Schichten unterteilt, und jede Farbkomponente wird als ein einzelnes Bild behandelt. In der folgenden Beschreibung wird nur ein Bild mit einer einzigen Farbkomponente beschrieben; jedoch können die erörterten Prinzipien auch ganz normal auf Mehrfarben-Komponen­ ten und auf "unterabgetastete" Farbkomponenten ausgedehnt wer­ den. Ein Block enthält üblicherweise ein (acht Pixel mal acht Pixel) Quadrat mit 64 Intensitätswerten, wenn es nicht-kompri­ miert ist, und ein Bild wird durch eine (N mal M)Anordnung sol­ cher Blöcke gebildet. Da jeder Block (8 × 8) Pixels ist, ist für ein (216 mm × 297 mm) großes Bild mit 400 Pixels pro Inch N 425 und M 550 für insgesamt 233750 Blöcke pro Inch, wobei eine einzige Komponente pro Pixel angenommen ist. Bei diesem 1 Beispiel würde ein komprimiertes Bild 19 233750 Blöcke ent­ halten, die komprimierte Daten enthalten. Die Minimalcode-Ein­ heit oder die MCU-Einheit würde bei diesem Beispiel ein Block sein.
Wenn das Bild in dem Speicher 12 für komprimierte Bilder aufbe­ reitet worden und nicht reindexiert worden ist, enthält der Be­ reich 20 für aufbereitete Bilddaten MCU-Einheiten von kompri­ mierten Daten, wobei jede MCU-Einheit in dem Bereich 20 eine MCU-Einheit in dem Bereich 18 für Originalbilddaten ersetzt. Wenn ein Block mehr als einmal aufbereitet worden ist, enthält der Bereich 20 mehr als eine MUC-Einheit, welche eine MCU-Ein­ heit in dem Bereich 18 ersetzen kann. Jedoch ersetzt nur eine aufbereitete MCU-Einheit tatsächlich den Block in dem Bereich 18. Ein Zeiger-Generator 22 tastet den Bereich 18 ab und pla­ ziert einen Zeiger an dem Start jeder MCU-Einheit in der Zei­ ger -Anordnung 34. Wegen Eins - zu - Eins - Zuordnung zwischen Blöcken, MCU-Einheiten und Zeigern enthält die Anordnung 34 (N × M) oder 233750 Einträge.
Fig. 2 und 3 veranschaulichen besser, wie die Zeiger in der Zei­ ger-Anordnung 34 angeordnet sind. Ein erster Zeiger 35 zeigt auf die erste MCU-Einheit eines komprimierten Bildes 19. Andere Zeiger sind ebenfalls ihren entsprechenden MCU-Einheiten zuge­ ordnet. Die Zeiger-Anordnung 34 kann logisch in einer zweidi­ mensionalen Anordnung angeordnet sein, wie in Fig. 1 angeordnet ist, um der Anordnung von MCU-Einheiten in dem Bild zu entspre­ chen, oder sie kann in einer eindimensionalen Anordnung ange­ ordnet sein, wie in Fig. 3 dargestellt ist. Jeder Zeiger zeigt auf eine MCU-Einheit in dem Bereich 18 oder, wie im Fall des Zeigers (n+3), auf einen MCU-Einheit im Bereich 20. Bei der Block-Nummerierung in Fig. 2 und 3 ist ein Block pro MCU-Einheit angenommen; jedoch kann das Beispiel ohne weiteres auf Multi­ block-MCU-Einheiten ausgedehnt werden.
In Fig. 1 tastet, sobald jede MCU-Einheit im Bereich abgetastet wird, der Zeiger-Generator 22 den Bereich 20 für aufbereitete Bilddaten ab. Jede MCU-Einheit im Bereich 20 enthält Bilddaten, welche die Daten in einer anderen MCU-Einheit ersetzen. Die MCU-Einheit im Bereich 20 ersetzt entweder eine MCU-Einheit im Bereich 18, wenn es das erste Mal ist, daß eine original MCU- Einheit aufbereitet wird, oder ersetzt eine andere MCU-Einheit im Bereich 20, wenn die MCU-Einheit bereits aufbereitet worden ist. Jede MCU-Einheit im Bereich 20 enthält einen Zeiger zu der MCU-Einheit, welche ersetzt wird. Folglich tastet der Zeiger- Generator 22 einfach jede MCU-Einheit im Bereich 20 ab und ak­ tualisiert die Zeiger in der Zeiger-Anordnung 34. Der Zeiger- Generator 22 tastet den Bereich 20 von älteren Aufbereitungs­ werten zu den neuesten Aufbereitungswerten ab, so daß, wenn mehrere Aufbereitungswerte in dem Bereich 20 für eine einzige MCU-Einheit vorhanden sind, nur auf die letzte MCU-Einheit durch einen Zeiger in der Zeiger-Anordnung 34 gezeigt wird.
Sobald eine Zeiger-Anordnung 34 initialisiert ist, verwendet der Decodierer 24 die Zeiger in der Anordnung 34, um ausgewähl­ te MCU-Einheiten im Bereich 18 zu finden; in anderen Ausfüh­ rungsformen lokalisiert der Decodierer 24 MCU-Einheiten im Be­ reich 18 ohne Bezugnahme auf die Zeiger-Anordnung 34. Jedoch wird ein Verwenden der Zeiger-Anordnung 34 bevorzugt, da da­ durch eine Verdopplung der Mühe vermieden wird. Der Decodierer 24 könnte das gesamte Bild decodieren, das in dem Speicher 12 für komprimierte Bilder gespeichert ist; jedoch würden mehrere Vorteile der Erfindung dadurch verlorengehen.
Üblicherweise betrifft eine Bildaufbereitung nur einen kleinen Teil des vollen Bildes zu einem bestimmten Zeitpunkt. Dieser Teil, ein "virtuelles Bild", wird decodiert und dann von der Aufbereitungseinrichtung 28 als ein vollständiges Bild behan­ delt. Fig. 2 veranschaulicht, wie ein virtuelles Bild 44 zu einem vollen Bild 42 in Beziehung steht. Fig. 2 mißt das volle Bild 42 (N × M) Blöcke, während das virtuelle Bild 44 (4 × 4) Blöcke mißt.
In Fig. 1 ist das virtuelle Bild 44, das für ein Aufbereiten ausgewählte virtuelle Bild, und der Decodierer 24 decodiert nur die sechzehn Blöcke des virtuellen Bildes 44 und plaziert die sich ergebenden Blöcke in dem Display-Speicher 36. Von dem Dis­ play-Speicher 36 aus kann das virtuelle Bild 34 bearbeitet, dargestellt oder gerade gespeichert werden. Bezeichnenderweise braucht der Bildprozessor 14 keine Verarbeitungs-Resourcen und Zeit zu opfern, um das ganze volle Bild dekomprimieren, sonde­ ren nur die MCU-Einheiten, die in Beziehung zu Blöcken in dem virtuellen Bild 44 stehen, da Randtabellen oder Gleichspan­ nungswert-Anordnungen in der Erfindung verfügbar sind.
Während der Initialisierung arbeitet der Decodierer 34 parallel zu einem Randwert-Kalkulator 26, obwohl in anderen Ausführungs­ formen deren Arbeitsweise seriell erfolgt oder vollständig un­ abhängig voneinander ist. Der Randwert-Kalkulator 26 tastet die Blöcke in dem Speicher 12 für komprimierte Bilder ab, indem er nur die Differenzwerte in jedem Block auswertet, welcher unter­ schiedlich ist und eine Bezugnahme zu einem Referenzblock er­ fordert. Für eine Norm, die JPEG-Norm enthält jeder Block einen Differenzwert für eine Gleichspannungsintensität und der Refe­ renzblock ist der Block links von dem zu decodierenden Block. Um beispielsweise den absoluten Gleichspannungswert für Block (n+2) zu finden (siehe Fig. 2), wird ein Differenzwert vom Block (n+2) extrahiert, und der absolute Gleichspannungswert für Block (n+1) wird von dem extrahierten Wert subtrahiert. Da je­ doch Block (n+1) nicht dekomprimiert wird (er ist nicht in einem virtuellen Bild 44), wird nur der Gleichspannungswert aus diesem Block durch den Randwert-Kalkulator 26 extahiert. Um die Verzögerung zu vermeiden, wenn ein virtuelles Bild quer über ein volles Bild schwenkt, sind linke und rechte Randtabellen 38 und 40 vorgesehen.
Anhand von Fig. 4 läßt sich die Beziehung zwischen den Randta­ bellen und dem virtuellen Bild 44 besser erläutern, welches in dem Display-Speicher 36 gespeichert wird. Das virtuelle Bild 44 ist anfangs durch Blöcke A, B, C und D begrenzt. Die linke Randtabelle 38 enthält einen Eintrag für jede Zeile des vollen Bildes 42, und die Tabelle reicht oft über die Grenzen des vir­ tuellen Bildes 44 hinaus. Der Eintrag für jede Zeile enthält einen absoluten Gleichspannungswert für den Block in dieser Zeile und unmittelbar links von der weitesten links liegenden Spalte von Blöcken in dem virtuellen Bild 44. Beispielsweise ist der Eintrag Y in der linken Randtabelle der absolute Gleichspannungswert für den Block in dem vollen Bild, welches links von dem Block D sein würde. Ebenso enthält die rechte Randtabelle 40 Einträge für die absoluten Gleichspannungswerte von Blöcken in den am weitesten rechts liegenden Spalten des virtuellen Bildes 44. Folglich enthalten die Tabellen 38, 40 jeweils M Einträge.
Wenn das virtuelle Bild 44 horizontal quer über das volle Bild 42 verschoben wird, werden neue Blöcke in einem Update-Bereich 100 dekomprimiert und in den Display-Speicher 36 gebracht. Um einen Block vollständig zu dekomprimieren, müssen die Gleich­ spannungs-Differenzwerte für jeden Block links von den zu deco­ dierenden summiert werden, wenn nicht die Randtabellen verwen­ det werden. Statt dessen wird mit Hilfe der rechten Randtabelle nur eine Summe oder Subtraktion benötigt. Wenn beispielsweise Block E dekomprimiert wird, wird der absolute Gleichspannungs­ wert für den Block E von dem Differenz-Gleichspannungswert im Block E und von dem absoluten Gleichspannungswert für den Block B aus gefunden, welcher in der rechten Randtabelle gespeichert ist. Wenn jede neue Spalte in das virtuelle Bild eingefügt wird, werden die Randtabellen mit den absoluten Gleichspan­ nungswerten für die neuen Spalten aktualisiert. Beispielsweise würde der Eintrag, welcher den absoluten Gleichspannungswert für den Block B hielt, den absoluten Gleichspannungswert für den Block E nach einem Verschieben einer Spalte nach links ent­ halten. Bei anderen Komprimierschemen kann eine obere und eine untere Randtabelle verwendet werden, wobei Differenzwerte Bezug zu Blöcken oberhalb und unterhalb eines zu decodierenden Blocks haben. Das sich ergebende virtuelle Bild 104 und die sich erge­ benden Randtabellen L′ und R′ sind dargestellt.
Zwei Randtabellen sind nicht unbedingt notwendig; jedoch für größere virtuelle Bilder ist während des Verschiebens weniger Berechnung erforderlich, wenn zwei Tabellen verwendet werden. Wenn beispielsweise die rechte Randtabelle 40 nicht vorhanden ist, könnte der absolute Gleichspannungswert vom Block E von der linken Randtabelle aus bestimmt werden, indem die Diffe­ renz-Gleichspannungswerte für jeden Block in der oberen Zeile des virtuellen Bildes 44 summiert werden. Sogar mit einer Rand­ tabelle wird die Anzahl an erforderlichen Summen durch die An­ zahl Blöcke zwischen dem Rand des virtuellen Bildes, das die Randtabelle hat und dem Rand des vollen Bildes reduziert. Da der Randwert-Kalkulator 26 die absoluten Gleichspannungswerte für Blöcke einschließlich denen in dem virtuellen Bild 44 be­ stimmt, können diese Werte an dem Decodierer 24 vorgesehen wer­ den, welcher die Werte dazu benutzt, Blöcke zu decodieren.
Wenn ein virtuelles Bild verschoben wird, benutzt die Verschie­ beeinheit (scroller) 30 die Gleichspannungswerte in den Randta­ bellen, um Versetzungen für Blöcke zu schaffen, welche in das virtuelle Bild zu verschieben sind. Wenn beispielsweise das virtuelle Bild so geschwenkt bzw. nachgeführt wird, daß der linke Rand des virtuellen Bildes von der 205-ten Spalte des vollen Bildes zu der 204-ten Spalte bewegt wird, müßten Blöcke in der 204-ten Spalte, welche in dem neuen virtuellen Bild vor­ handen sind decodiert und in den Display-Speicher 36 plaziert werden. Statt 203 Subtraktionen durchzuführen, um den absoluten Gleichspannungswert eines Blockes in der 204-ten Spalte zu fin­ den, können die absoluten Gleichspannungswerte für jeden Block in der 204-ten Spalte von dem entsprechenden Eintrag der linken Randtabelle ausgelesen werden. Die linke Randtabelle wird dann aktualisiert, um die absoluten Gleichspannungswerte der 203-ten Spalte zu erhalten, welche aus den absoluten Gleichspannungs­ werten der 204-ten Spalte und den Gleichspannungs-Differenzwer­ ten der 204-ten Spalte berechnet werden.
Ebenso enthält, wenn der rechte Rand des virtuellen Bildes die 204-te Spalte ist, die rechte Randtabelle 40 die absoluten Gleichspannungswerte für die 205-te Spalte. Beim Verschieben um eine Spalte nach rechts lenkt die Verschiebeeinheit 30 den De­ codierer 24, um die MCU-Einheiten zu decodieren, welche den Blöcken des neuen virtuellen Bildes entsprechen. Die neuen Blöcke befinden sich in der 205-ten Spalte, so daß die absolu­ ten Gleichspannungswerte für diese Blöcke ohne weiteres in der rechten Randtabelle 40 verfügbar sind. Die rechte Randtabelle wird dann aktualisiert, indem jeder Eintrag durch den Diffe­ renz-Gleichspannungswert der Blöcke in der 205-ten Spalte geän­ dert wird, wodurch sich die Gleichspannungswerte für Blöcke in der 206-ten Spalte ergeben.
Wenn das virtuelle Bild verschoben wird, ändern sich die Rand­ tabellen nicht sondern es werden verschiedene Einträge verwen­ det. Da die Randtabellen sich über die Länge des vollen Bildes 42 erstrecken, kann das virtuelle Bild von dem oberen Teil zu dem unteren Teil des vollen Bildes verschoben werden, ohne daß irgendwelche Einträge in den Randtabellen geändert werden müs­ sen.
Eine Bildaufbereitungseinheit 28 kann eine interaktive Vorrich­ tung sein, in welcher eine Person das Bild aufbereitet, während sie den Inhalt des Display-Speichers 36 betrachtet, oder eine Bildaufbereitungseinheit 28 kann ein automatisierter Prozeß sein. Eine Anwendung ist die Modifizierung eines Bildes in einem Kopierer entsprechend Befehlen, welche von einem Benutzer eingegeben worden sind, indem der Benutzer den Inhalt des Dis­ play-Speichers 36 betrachtet oder auch nicht. Wenn ein Aufbe­ reitungsvorgang gesichert wird, komprimiert der Bild-Updater 32 die aufbereitete MCU-Einheit wieder, speichert die aufbereitete MCU-Einheit an einer verfügbaren Stelle in dem Bereich 20 für aufbereitete Bilddaten und aktualisiert den Zeiger in der Zei­ geranordnung 34, welcher dieser MCU-Einheit zugeordnet ist, um auf die gerade gesicherte, aufbereitete MCU-Einheit zu zeigen. Der Bild-Updater 32 sichert auch ein Referenzfeld mit Hilfe der aufbereiteten MCU-Einheit, welche anzeigt, welche MCU-Einheit durch die aufbereitete MCU-Einheit ersetzt wird. Wenn auf diese Weise eine Bild-Aufbereitungseinheit 28 eine "Undo"-Operation initialisiert, kann der Bild-Updater 32 einfach den Zeiger än­ dern, um auf die MCU-Einheit zu zeigen, auf welche durch die kürzlich gesicherte MCU-Einheit verwiesen worden ist, um da­ durch wirksam den vorherigen Aufbereitungsvorgang zu streichen. Der Bild-Updater 32 und die Bild-Aufbereitungseinheit 28 können auch mehr als eine MCU-Einheit gleichzeitig betreiben. Da der Bild-Updater 32 eine Zeiger-Anordnung 34 für jede aufbereitete MCU-Einheit aktualisiert, wird auch die Zeiger-Anordnung 34 ak­ tualisiert, und der Speicher 12 für komprimierte Bilder braucht nicht von dem Zeiger-Generator 22 abgetastet zu werden, bis ein neues komprimiertes Bild in den Speicher 12 geladen wird.
Fig. 5 zeigt einen Zeiger 35 der Zeiger-Anordnung 34. In der be­ schriebenen Ausführungsform hat der Zeiger 32 Bits, wobei das höchtswertige Bit zum Halten eines Aufbereitungsflags 50 dient, während die verbleibenden 31 Bits eine MCU-Adresse 52 bilden. Eine "virtuelle Aufbereitung" wird mit Hilfe von Werkzeugen er­ reicht, um die Bilddaten in dem Display-Speicher 32 zu ändern. Wenn Pixels in einem Block aufbereitet werden, wird das Aufbe­ reitungsflag in den Zeiger für diese Block-MCU-Einheit gesetzt. Da ein Aufbereiten den absoluten Gleichspannungswert für den aufbereiteten Block beeinflussen könnte, wird auch das Aufbe­ reitungsflag in dem Zeiger für den Block rechts von dem aufbe­ reiteten Block gesetzt, da der Differenz-Gleichspannungswert für den Block auf der rechten Seite sich mit dem absoluten Gleichspannungswert für den Block auf der linken Seite ändert. Sobald eine Aufbereitungssession beendet ist, wird die Zeiger- Anordnung 34 bezüglich Aufbereitungsflags abgetastet, welche gesetzt werden. Für jeden mit einem Flag gekennzeichneten Be­ reich werden Blöcke aus dem komprimierten Bild 12 decodiert, wobei von dem linken sichtbaren Block für jede Zeile von Blöcken des durch ein Flag gekennzeichneten Bereichs gestartet wird, um die Gleichspannungswerte für Blöcke links von jedem aufbereiteten Block zu bestimmen. Wenn ein aufbereiteter Block in den am weitesten links oder am weitesten rechts liegenden Rand fällt, wird die Gleichspannungs-Randtabelle mit dem neuen Wert aktualisiert.
Wie in Fig. 6 dargestellt, werden die neuen Aufbereitungsdaten an dem Bereich 18 für Originalbilddaten in dem Bereich 20 für aufbereitete Bilddaten angehängt. Folglich kann die Zeigeran­ ordnung 34 den Speicher 12 für komprimierte Bilder als einen einzelnen linearen Speicher adressieren. Sobald die aufbereite­ te MCU-Einheit erzeugt ist, werden die in Fig. 6 dargestellten Aufbereitungskopf-Felder initialisiert, die aufbereitete MCU- Einheit wird im Bereich 20 gespeichert, und der Zeiger in der Zeigeranordnung wird initialisiert um auf den Start des Aufbe­ reitungskopfes in der kürzlich gespeicherte MCU-Einheit zu zei­ gen.
Die MRKR- und HLEN-Felder sind vorgesehen, so daß die aufberei­ teten MCU-Einheiten mit der JPEG-Norm übereinstimmen. DAS PBP- Feld zeigt auf die vorherige Version der MCU-Einheit. Die vor­ herige Version ist ein Bereich 18 für die erste aufbereitete MCU-Einheit; wenn jedoch eine aufbereitete MCU-Einheit wieder aufbereitet wird, zeigt das PBP-Feld der zweiten MCU-Einheit auf die erste aufbereitete MCU-Einheit. Das NBP-Feld in der er­ sten aufbereiteten MCU-Einheit wird dann gesetzt, um vorwärts auf die zweite aufbereitete MCU-Einheit zu zeigen, wodurch dann eine verbundene Liste gebildet ist. Das CBB-Feld zeigt die Anzahl von Bilddaten-Bits an, so daß die Bilddatei durch Sprin­ gen von einem Kopfteil zum anderen abgetastet werden kann, bis der gewünschte Kopfteil gefunden ist. Das CBD-Feld enthält die Bilddaten selbst. Da die Daten in dem CBD-Feld entropie-codiert sind, ändert sich wieder die Anzahl Bits von MCU- zu MCU-Ein­ heit. Diese Felder lassen es zu, daß eine aufbereitete Bildda­ tei sequentiell in eine neue Bilddatei gelesen wird, indem die MCU-Einheiten in dem auf-bereiteten Bereich in der Bilddatei wieder geordnet werden, wobei die aufbereiteten MCU-Einheiten in den Originaldaten-Bereich der neuen Bilddateien aufgenommen werden, und der aufbereitete Bereich der neuen Bilddatei leer ist.
Anhand von Fig. 7 bis 11 wird eine weitere Ausführungsform eines Aufbereitungssystems erläutert. In dem Aufbereitungssystem 100 (siehe insbesondere Fig. 10) werden die eingegebenen Blöcke ent­ sprechend einer Aufbereitungsfunktion verarbeitet, und das Auf­ bereitungssystem 100 benutzt entweder eine Gleichspannungswert- Anordnung oder eine konstante Gleichspannungs-Versetzung, um die Notwendigkeit von Randtabellen zu vermeiden. Das Aufberei­ tungssystem 100 ist durchaus in der Lage das interaktive Aufbe­ reiten und Undo-Merkmale des in Fig. 1 dargestellten Aufberei­ tungssystems 10 zu halten. Das Aufbereitungssystem 10 ist auch anwendbar, um statt Randtabellen eine Gleichspannungswert-An­ ordnung oder eine in Fig. 7 und 8 dargestellte konstante Verset­ zung zu verwenden.
Fig. 7 veranschaulicht die Verwendung einer Zeigeranordnung-Ta­ belle 72 und eine Gleichspannungswert-Anordnungstabelle 74, um einen Teil 71 eines virtuellen Bildes 70 aus einer komprimier­ ten Datendatei 76 zu extrahieren, welche das Bild enthält, wel­ ches durch das virtuelle Bild 70 dargestellt ist. Wenn ein Block, wie beispielsweise der untere rechte Block des Teils 71 aus der komprimierten Datendatei 76 zu extrahieren ist, wird die Block-Stelle in dem virtuellen Bild 70 dazu verwendet, in die Zeigerarray-Tabelle 72 zu indizieren, einen Zeiger in die MCU-Einheit zurückzubringen, welche diesen Block enthält und um in die Gleichspannungswert-Anordnung 74 zu indizieren, um einen Gleichspannungswert für den Block zurückzuführen. Der zurückge­ brachte Zeiger wird verwendet, um die komprimierte MCU-Einheit für den Block in der Datendatei 76 zu lokalisieren, und der zu­ rückgeführte Gleichspannungswert wird als die Gleichspannungs- Versetzung des Blockes nach rechts verwendet, entsprechend JPEG-Norm. Folglich wird, wenn der wieder aufgefundene Block dekomprimiert wird, der Gleichspannungswert in der inversen Ko­ sinus-Transformation gefunden, um den zurückgeführten Gleich­ spannungswert und den gespeicherten Differenz-Gleichspannungs­ wert zu der komprimierten MCU-Einheit zu addieren. Anderer­ seits, um einen Schritt zu sparen, könnte die Gleichspannungs­ wert-Anordnung die absoluten Gleichspannungswerte für jeden Block enthalten, so daß der Gleichspannungswert für die inverse Kosinus-Transformation direkt aus der Gleichspannungswert-An­ ordnung 74 gelesen werden könnte, um nicht einen Wert von der Anordnung mit einem Wert von dem Block kombinieren zu müssen.
Anhand von Fig. 8 wird die Verwendung einer festen Gleichspan­ nungs-Versetzung 78 anstelle der Gleichspannungswert-Anordnung 74 erläutert. Die Versetzung 78 schafft einen einzigen Wert, welcher zu allen Differenz-Gleichspannungswerte addiert wird, welche aus Blöcken in einem komprimierten Bild gelesen worden sind, während die Gleichspannungswert-Anordnung 74 unabhängige Werte für jeden Block schafft. Der Vorteil bei der Benutzung der Versetzung 78 ist die Reduzierung des für Gleichspannungs­ werte erforderlichen Speichers auf einen einzigen Wert. In sol­ chen Fällen ist ein Versetzwert von null geeignet; in diesem Fall kann die Versetzung 78 und der Addierschritt zusammen ent­ fallen.
1 Selbst bei Berücksichtigen des zusätzlichen Raums für eine vol­ le Gleichspannungswert-Anordnung nimmt ein komprimiertes Bild weniger Raum ein als das gesamte Bild einnehmen würde. Bei dem vorherigen Beispiel eines (216 mm × 297 mm) großen Bildes mit einer Auflösung von 400 Pixels/Inch einer 2 : 1 : 1-Abtastung und einer 1 Byte/Komponente würde ein nicht-komprimiertes Bild 93,5 Inch² * 160000 Pixels/Inch² * 3 Komponenten/Pixel * 1 Byte/Kom­ ponente oder 44,88 Mb belegen. Wenn jede MCU-Einheit zwei Blöcke ist und einen 4 Byte-Zeiger sowie zwei 2-Byte-Gleich­ spannungswerte (einen für jeden Block der MCU-Einheit) erfor­ dert, würde die Zeiger-Anordnung 72 233750 Einträge von jeweils 4 Bytes haben, was 965000 Bytes erfordert, und eine Gleichspan­ nungswert-Anordnung 74 würde 467500 Einträge von jeweils 2 By­ tes haben, was 935000 Bytes erfordert. Bei einem 10 : 1-Gesamt­ kompressions-Verhältnis belegen das komprimierte Bild, das in der Datei 76 gespeichert ist (4488 Mb), die Zeiger-Anordnung 72 und die Gleichspannungswert-Anordnung 74 nur 6358 Mb, was noch ein Kompressionsverhältnis von 44,88 : 6358 oder etwa 7 : 1 ist.
Fig. 9 zeigt ein Ablaufdiagramm eines Aufbereitungsprozesses, welcher mit dem in Fig. 10 dargestellten Aufbereitungssystem 100 durchgeführt werden könnte. Der dargestellte Prozeß startet mit einem Schritt 80 und geht bis zu einem Schritt 98. Vom Schritt 80 geht das Aufbereitungssystem 100 auf den Schritt 82 über. Beim Schritt 82 wählt das System 100 eine Aufbereitungsfunktion und geht auf Schritt 84 über. Typische Aufbereitungsfunktionen sind Nachführen, Skalieren, Drehen und Abdecken. In einigen Ausführungsformen ist diese Aufbereitungsfunktion vorherbe­ stimmt, während in anderen Ausführungsformen ein Benutzer eine Aufbereitungsfunktion auswählt, indem üblicherweise entweder einen Teil des eingegebenen oder des ausgegebenen Bildes be­ trachtet hat. Beim Schritt 84 initialisiert das System 100 einen ausgegebenen Blockzeiger, um auf den ersten zu verarbei­ tetenden Ausgabeblock zu zeigen und geht dann auf Schritt 86 über. Beim Schritt 86 bestimmt das System 100, welche eingege­ benen Blöcke zu verarbeiten sind, um den augenblicklichen Aus­ gabeblock zu erzeugen und geht auf Schritt 88 über. Die einge­ gebenen Blöcke werden basierend auf dem augenblicklichen Ausga­ beblock-Zeiger und der speziellen Aufbereitungsfunktion be­ stimmt. Wenn beispielsweise die Aufbereitungsfunktion nur eine Farbänderung war, dann ist der Ausgabeblock eine Funktion der Aufbereitungsfunktion und eines einzigen Eingabeblocks, wäh­ rend, wenn die Aufbereitungsfunktion eine Translation ist, der Ausgabeblock eine Funktion von bis zu vier Eingabeblöcken sein kann.
Beim Schritt 88 extrahiert und dekomprimiert das Aufbereitungs­ system 100 die eingegebenen Blöcke, die notwendig sind, um den Ausgabeblock zu erzeugen, und geht auf Schritt 90 über. Die zu extrahierenden eingegebenen Blöcke können dadurch gefunden wer­ den, daß die Zeiger für die MCU-Einheiten lokalisiert werden, welche die Blöcke in einer Zeiger-Anordnung enthalten, indem die Zeiger dazu verwendet werden, die MCU-Einheiten in einem komprimierten Bild zu adressieren. Bei dem Prozeß des Dekompri­ mierens der eingegebenen Blöcke werden die Gleichspannungswerte (entweder die absoluten Werte oder eine relative Versetzung) für die eingegebenen Blöcke aus einer Gleichspannungswert-An­ ordnung gelesen. Bei diesem Schritt kann ein Cache-Speicher in dem Aufbereitungssystem 100 vorgesehen werden, um dekomprimier­ te eingegebene Blöcke zu speichern, die mit anderen Ausgabe­ blöcken zu verwenden sind, welche von demselben eingegebenen Block abhängen können.
Beim Schritt 90 berechnet das Aufbereitungsprogramm 100 Pixel- Werte für den Ausgabeblock basierend auf den eingegebenen Blöcken der Aufbereitungsfunktion und geht auf Schritt 92 über, bei welchem der Ausgabeblock ausgegeben wird, um eine Ausgabe- Bilddatei zu bilden.
Als nächstes wird beim Schritt 94 der ausgegebene Blockzeiger inkrementiert, um auf den nächsten Ausgabeblock zu zeigen, und dann wird beim Schritt 96 in Abhängigkeit davon, ob noch mehr Ausgabeblöcke zu berechnen sind oder nicht, in dem Ablaufdia­ gramm zurück auf Schritt 96 für den nächsten Ausgabeblock ge­ gangen oder die Verarbeitung endet beim Schritt 98.
Anhand von Fig. 10 wird ein Aufbereitungssystem 100 gemäß der Erfindung dargestellt, welches ein komprimiertes eingegebenes Bild 101 in ein komprimiertes Ausgabebild 102 aufbereitet. Die ein- und ausgegebenen Bilder in einigen Ausführungsformen wer­ den zusammen als eine Sammlung-von eingegebenen MCU-Einheiten gespeichert, wobei Ausgabe-MCU-Einheiten entweder eingegebene MCU-Einheiten ersetzen oder an die eingegebenen MCU-Einheiten angehängt werden, wie durch Bild 12 in Fig. 1 dargestellt ist.
In Fig. 10 weist das Aufbereitungssystem 100 einen Eingabeblock- Selektor 106, einen Block-Dekompressor 108, einen auf einem Block basierenden Bildprozessor 110, ein Register 112, einen optionalen Cache-Speicher 114 und einen Speicher 118 auf. Ein Array-Generator 120 ist vorgesehen, um eine Zeiger-Anordnung 72 mit Zeigern zu versehen, um Blöcke einzugeben, und ein Speicher 118 ist entweder mit einer Gleichspannungswert-Anordnung oder einem festen Gleichspannungs-Versatzwert versehen. Eine Benut­ zer-Ein/Ausgabe-Einheit 130 ist ebenfalls vorgesehen, damit ein Benutzer des Aufbereitungssystems 100 Aufbereitungsfunktionen auswählen kann und eingegebene und/oder ausgegebene Bildblöcke betrachten kann.
Ein Selektor 106 erhält eine Eingabe über eine Leitung 104, auf welcher eine Anzeige einer Aufbereitungsfunktion von einer Be­ nutzer-Ein/Ausgabe-Einheit 130 oder einer anderen Quelle vorge­ sehen wird, und einen Eingang von dem Register 112, welches eine Anzeige des augenblicklich zu verarbeitenden Ausgabeblocks schafft. Der Selektor 106 hat einen Ausgang, um anzuzeigen, welche eingegebenen Blöcke über die Blockauswählleitung 122 ausgewählt werden. Die Leitung 122 wird dazu verwendet, eine Zeiger-Anordnung 72 zu adressieren, und wenn eine Gleichspan­ nungswert-Anordnung verwendet wird, den Speicher 118 zu adres­ sieren. Der Selektor 106 hat auch einen Eingang, um die ausge­ wählten Blöcke/MCU-Einheiten von einem eingegebenen Bild 101 aufzunehmen, einen Eingang, um eine Gleichspannungsversetzung von dem Speicher 118 über die Leitung 124 aufzunehmen und einen Ausgang, welcher mit dem Dekompressor 108 verbunden ist, um die ausgewählten Blöcke/MCU-Einheiten an dem Dekompressor 108 zu schaffen. In einer weiteren Ausführungsform ist die Leitung 124 direkt mit dem Dekompressor 108 verbunden, und der Selektor 110 berechnet nicht Gleichspannungswerte.
Der Dekompressor 108 hat einen Ausgang, um dekomprimierte Blöcke an den Bildprozessor 110 abzugeben, und weist in einigen Ausführungsformen einen Ausgang zu einem Cache-Speicher 114 zum Abgeben von dekomprimierten Blöcken und einen Eingang auf, um dekomprimierte Blöcke von dem Cache-Speicher 114 abzurufen. Ein Cache-Speicher wird verwendet, wobei Geschwindigkeit wichtiger ist als eine Schaltungsgröße, und wobei die Aufbereitungsfunk­ tionen bekannt sind, um wiederholt eingegebene Blöcke zu benut­ zen.
Der Bildprozessor 110 weist einen Eingang, um die Anzeige der ausgewählten Aufbereitungsfunktion über die Leitung 104 aufzu­ nehmen, und einen Ausgang auf, um einen Ausgabeblock abzugeben. Der Inhalt des Registers 112 ist vorgesehen, um eine Bilddatei 102 abzugeben, so daß der von dem Bildprozessor 110 abgegebene Block an der richtigen Stelle gespeichert wird; jedoch ist in einigen Ausführungsformen der Inhalt an dem Bildprozessor 110 vorgesehen, welcher dann eine Anzeige der Adresse an dem Block anbringt, welcher an die Bilddatei 102 abzugeben ist. In noch weiteren Ausführungsformen ergibt sich die Adresse des abgege­ benen Blocks durch die Reihenfolge, in welcher der Block abge­ geben wird.
Der Array-Generator 120 hat einen Eingang, um Information von einer eingegebenen Bilddatei 101 zu erhalten, und zwei Ausgän­ ge, nämlich einen zum Abgeben von Zeigerwerten an die Zeiger- Anordnung 72 und einen zum Abgeben von Gleichspannungswerten an den Speicher 118. Leitungen, welche den Array-Generator 120 mit anderen Komponenten verbinden, sind gestrichelt, um anzuzeigen, daß diese Leitungen nur während einer Initialisierung der Zei­ ger-Anordnung 72 des Speichers 118 verwendet werden und nach der Initialisierung nicht mehr benötigt werden. Das bedeutet jedoch nicht, daß die Zeiger-Anordnung 72 und der Speicher 118 nicht aktualisiert werden. Wenn sie als ein Teil eines Aufbe­ reitungssystems implementiert sind, wobei das abgegebene und das eingegebene Bild kombiniert werden, ist ein (in Fig. 10 nicht dargestellter) Mechanismus vorgesehen, um die Zeiger-An­ ordnung und den Speicher 118 zu aktualisieren, wenn Blöcke auf­ bereitet werden und in die Eingangs-Bilddatei gebracht werden.
Während des Betriebs wird das Register 112 mit einem Zeiger an dem ersten interessierenden Ausgabeblock initialisiert und wird programmiert, um über Zeiger alle anderen interessierenden Blöcke abzutasten. Wenn beispielsweise der Teil 71 des Bilds 70 (siehe Fig. 7 und 8) durch eine Aufbereitungsfunktion zu bear­ beiten ist, dann zeigt das Register 112 nacheinander auf jeden der 16 Blöcke im Teil 71. Von der speziellen Aufbereitungsfunk­ tion, die auf der Leitung 104 angezeigt ist, und von dem abge­ gebenen Block, welcher durch das Register 112 angezeigt ist, kann der Selektor 106 bestimmen, welcher Block einzugeben ist. Wenn beispielsweise die ausgewählte Aufbereitungsfunktion eine Reflexion über ein Pixel in der Mitte des Bildes 70 war und der gerade abgegebene Block das Pixel an der unteren linken Ecke war, dann würde der auszuwählende eingegebene Block das Pixel an der oberen rechten Ecke sein. Bei anderen Aufbereitungsfunk­ tionen wie Drehen, Skalieren und Teilblock-Translationen, kön­ nen mehr als ein eingegebener Block für den gerade abgegebenen Block ausgewählt werden.
Sobald die eingegebenen Blöcke ausgewählt sind, werden sie aus der eingegebenen Bilddatei 101 extrahiert, (wenn nicht der Se­ lektor auch mit dem Cache-Speicher 114 verbunden ist und die ausgewählten Blöcke bereits dort gespeichert sind). Um einen Block zu finden, gibt der Selektor 106 eine MCU-Adresse für die MCU-Einheit, die den Block enthält, an eine Block-Auswähllei­ tung 122 ab, und die Zeiger-Anordnung 72 erzeugt einen Zeiger zu der ausgewählten MCU-Einheit. Die ausgewählte MCU-Einheit wird zusammen mit dem Gleichspannungswert-Versatz für den aus­ gewählten Block an dem Dekompressor 108 vorgesehen. Iii einigen Ausführungsformen wird der Gleichspannungswert mit dem Gleich­ spannungs-Differenzwert kombiniert, welcher zusammen mit dem Block in der Eingangs-Bilddatei 101 gespeichert ist, bevor der Block an den Dekompressor abgegeben wird.
Sobald die ausgewählten Blöcke durch den Dekompressor 108 de­ komprimiert werden, werden die dekomprimierten Blöcke an dem Bildprozessor 110 vorgesehen. Jedoch besteht eine Verbesserung bei dem Aufbereitungssystem 100 gegenüber dem Stand der Technik darin, daß, selbst wenn das ganze Bild zu verarbeiten ist, die gesamte eingegebene Bilddatei nicht auf einmal dekomprimiert zu werden braucht, da nur eine kleine Untergruppe des Bildes übli­ cherweise für eine vorgegebene Operation des Bildprozessors 110 benötigt wird. Der Bildprozessor 110 gibt den Ausgabeblock ab, welcher gemäß der Operation des Aufbereitungssystem 100 nur eine Funktion der ausgewählten Eingangsblöcke und der ausge­ wählten Aufbereitungsfunktion ist. Eine weitere Verbesserung des Aufbereitungssystems 100 besteht darin, daß, sobald der Speicher 118 richtig initialisiert ist, die ausgewählten MCU- Einheiten aus der eingegebenen Bilddatei 101 ohne Bezugnahme auf irgendwelche MCU-Einheiten außer den ausgewählten extra­ hiert werden. Da Randtabellen oder Gleichspannungswert-Anord­ nungen nicht verwendet werden, müssen Blöcke über die ausge­ wählten Blöcke hinaus oft wieder aufgefunden werden, um den richtigen Gleichspannungswert-Versatz der ausgewählten Blöcke zu bestimmen.
Fig. 11 ist ein Blockdiagramm einer Gleichspannungs-Differenz­ wert-Berechnungsschaltung 140, welche ein Register 142, ein Re­ gister 144, einen 2-zu-1-Multiplexer 146 und einen Differenz- Addierer 148 aufweist. Das Register 142 hat eine Verzögerung von einem Zyklus und hält folglich den vorher angelegten Gleichspannungswert, außer wenn ein Signal "Ende einer Reihe" an einem LCR-Eingang des Registers geltend gemacht wird. In diesem Fall hält es einen Null-Wert. Eine Eingangsleitung 150 wird verwendet, um einen Gleichspannungswert eines Blockes an einem Eingang des Registers 42 und um einen additiven Eingang am Addierer 148 zu schaffen. Die Ausgänge der Register 142 und 144 werden mit entsprechenden Eingängen am Multiplexer 146 ver­ bunden, und der Ausgang des Multiplexers 146 ist als ein sub­ traktiver Eingang am Addierer 148 vorgesehen. Der Multiplexer 146 weist einen Mode-Auswähl-Eingang auf, welcher einen JPEG- kompatiblen Mode oder einen festen Gleichspannungswert-Mode an­ zeigt.
Die Schaltung 140 wird verwendet, um den Gleichspannungs-Diffe­ renzwert zu berechnen, welcher mit einem zu komprimierenden Block gespeichert wird. Wenn der Multiplexer 146 in den JPEG- Kompatibilitäts-Mode gebracht ist, dann wird der Wert von dem Register 142 an den subtraktiven Eingang des Addierers 148 an­ gelegt. Folglich ist ein Gleichspannungs-Differenzwert, der von dem Addierer 148 abgegeben wird, der Gleichspannungswert eines Blockes, der kleiner als der Gleichspannungswert des vorherge­ henden Blockes oder null ist, wenn der Block der erste Block in einer Zeile ist. Wenn der Multiplexer 146 auf den festen Gleichspannungswert-Mode gesetzt ist, wird der Wert von dem Re­ gister 144 an den subtraktiven Eingang des Addierers 148 ange­ legt. In diesem Fall wird der in dem Register 144 gespeicher­ te, konstante Wert von dem Gleichspannungswert jedes Blocks subtrahiert, bevor er ausgegeben wird. Der konstante Wert kann auf verschiedene Weise gewählt werden; er kann beispielsweise ein Mittelwert aller absoluter Gleichspannungswerte der Blöcke in einem Bild sein. Wenn die ausgewählte Konstante nicht nur eine Funktion von Daten ist, die in deine komprimierten Bild ent­ halten sind, kann ein zusätzliches Feld dem Bild hinzugefügt werden, um die Konstante für die spätere Extraktion durch den Array-Generator 120, welcher den Wert extrahieren würde, in einen Speicher 118 zu speichern.
Im Rahmen der Erfindung sind verschiedene Änderungen und Modi­ fikationen möglich. Beispielsweise könnten die gesondert iden­ tifizierten Einheiten des Bildprozessors als eines oder mehrere Software-Programme, die in einem Computer laufen, implementiert werden, oder die Funktionalität der Einheit könnte kombiniert oder weiter unterteilt werden.

Claims (17)

1. Verfahren zum Behandeln eines Teils eines komprimierten Bildes, um es aufzubereiten, wobei das Bild in Blöcke aufgeteilt wird, wobei jeder Block durch digitale Daten dargestellt ist, und wobei die digitalen Daten von zumindest einem Block in einer minimal codierten Einheit (MCU) dargestellt werden und eine Anzahl der MCU-Einheiten eine komprimierte Bilddatendatei bildet, dadurch gekennzeichnet, daß anhand einer Software-Zeigeranordnung ein Zugriff in die komprimierte Bilddatendatei in einer Auflösung entsprechend der minimal codier­ ten Einheit (MCU) erfolgt, wobei eine komprimierte MCU-Einheit einen MCU- Kopfteil und einen MCU-Hauptteil aufweist und der MCU-Kopfteil ferner zu­ mindest eine Bildblock-Identifiziereinheit und ein Längenfeld aufweist, welches die Anzahl an Bits in der MCU-Einheit anzeigt und wobei der MCU-Hauptteil zumindest einen relativen Wert und eine Anzahl absoluter Werte für zumindest eine Positionsdefinition jedes Bildblocks in dem MCU-Hauptteil aufweist, aus dem Bild ein gewünschter Bildblock oder mehrere Bildblöcke ausge­ wählt werden, um ein virtuelles Bild festzulegen,
eine Referenztabelle erzeugt wird, die zumindest einen Wert aufweist, der verwendet wird, um den die Position des Blockes innerhalb des virtuellen Bildes angebenden Relativwert des Blockes in einen eine gewünschte neue Position des Blockes angebenden Absolutwert für diesen Block umzuwandeln, eine Gruppe von MCU-Einheiten dekomprimiert wird, welche den Blöcken des virtuellen Bildes entsprechen,
das virtuelle Bild aufbereitet wird, um zumindest eine aufbereitete MCU- Einheit zu bilden,
die aufbereitete MCU-Einheit in eine aufbereitete MCU-Einheit kompri­ miert wird,
die aufbereitete MCU-Einheit in einem Speicher für aufbereitete Blöcke gesichert wird, und
ein Software-Zeiger in der Software-Zeigeranordnung modifiziert wird, wobei der Zeiger der aufbereiteten MCU-Einheit entspricht und modifiziert wird,
um auf die aufbereitete MCU-Einheit(en) in dem Speicher für aufbereitete Blöcke zu zeigen,
wobei die MCU-Einheit(en), die in dem Modifizierschritt modifiziert worden ist bzw. sind, kollektiv ein aufbereitetes Bild festlegen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein Absolutwert für die Qualität bestimmt wird, mit welcher differentiell für jeden der ausgewähl­ ten Blöcke eine Codierung durchgeführt wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß beim Bestim­ mungsvorgang auf eine Tabelle von Versatzeinträgen durch Zeigen auf einen Versatzeintrag zugegriffen wird, welcher einem ausgewählten Block entspricht, und der angezeigte Versatzeintrag zu einem differentiell codierten Wert addiert wird, wodurch sich der Absolutwert für die Qualität des ausgewählten Blockes ergibt.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß beim Bestim­ mungsvorgang auf eine Tabelle von absoluten Einträgen zugegriffen wird, indem auf einen absoluten Eintrag gezeigt wird, welcher einem ausgewählten Block entspricht, und der angezeigte Wert eines absoluten Eintrags als der absolute Wert für die Qualität des ausgewählten Blockes verwendet wird.
5. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß beim Bestim­ mungsvorgang ein konstanter Versatzwert zu einem differentiell codierten Wert addiert wird, um den Absolutwert für die Qualität des ausgewählten Blockes zu erreichen.
6. Verfahren nach Anspruch 2, bei welchem der Bestimmungsvorgang für alle aufzuarbeitenden Blöcke vor dem Aufbereitungsschritt durchgeführt wird und beim Bestimmungsvorgang ferner die differentiell codierten Werte durch absolute Werte vor dem Aufbereitungsschritt ersetzt werden.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die Absolutwer­ te durch Differenzwerte nach einem Aufbereitungsvorgang ersetzt werden, um eine JPEG-kompatible Bilddatei zu erhalten.
8. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die differentielle Codierungsqualität eines Blockes durch einen Gleichspannungswert angegeben ist, welcher sich aus einer Kosinustransformation von Pixel-Farbwerten für eine Farbkomponente von Pixels ergibt, welche durch den Block abgedeckt sind.
9. Bildaufbereitungseinrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 8, gekennzeichnet durch einen Eingabespeicher (16), um eine verdichtete Bilddaten-Datei zu speichern, die eine Anzahl minimal codierter Einheiten (MCU) aufweist,
einen Ausgabespeicher (12) zum Speichern einer komprimierten Ausgabe­ datendatei;
eine Zeiger-Anordnung (34), die eine Anzahl Zeiger enthält, welche, wenn sie initialisiert sind, jeweils auf eine MCU-Einheit entweder in dem Eingabespei­ cher (16) oder in dem Ausgabespeicher (12) zeigen;
eine Referenztabelle (38), welche zumindest einen Wert enthält, der für eine Umwandlung zumindest des einen relativen Wertes in einen absoluten Wert für die Qualität eines Blockes verwendet ist;
eine Auswählleinrichtung (32), welche mit der Zeiger-Anordnung (34) und dem Eingabespeicher (16) verbunden ist, um komprimierte MCU-Einheiten aus dem Eingabespeicher an Stellen zu lesen, welche durch Zeiger in der Zeiger- Anordnung angezeigt worden sind;
eine Dekomprimiereinrichtung (24), die mit der Auswähleinrichtung (32) und der Referenztabelle (38) verbunden ist, um zumindest eine MCU-Einheit in zumindest einen Block von Pixel-Farbwerten basierend auf dem Inhalt einer komprimierten MCU-Einheit und um zumindest einen Wert zu dekomprimieren, welcher aus der Referenztabelle gelesen wurde, und
eine Bildaufbereitungseinrichtung (28), welche mit der Dekomprimier­ einrichtung (24) verbunden ist, um Pixels einer MCU-Einheit aufzubereiten, welche durch die Dekomprimiereinrichtung (24) geschaffen ist, wobei die Bild­ aufbereitungseinrichtung auch eine Einrichtung zum Abgeben einer aufbereiteten MCU-Einheit enthält.
10. Bildaufbereitungseinrichtung nach Anspruch 9, bei welcher die Referenzta­ belle (38) einen einzigen Eintrag enthält, und der Eintrag einen konstanten Wert hält, welchen die Dekomprimiereinrichtung zu einem relativen Wert eines Blockes addiert, um einen Absolutwert für die Qualität des Blockes zu finden.
11. Bildaufbereitungseinrichtung nach Anspruch 9, bei welcher die Referenzta­ belle einen Eintrag pro Block in der Bilddatendatei enthält, und die Dekompri­ miereinrichtung einen in dem Eintrag gespeicherten Wert zu einem relativen Wert eines Blockes addiert, um einen absoluten Wert für die Qualität des Blockes zu finden.
12. Bildaufbereitungseinrichtung nach Anspruch 9, bei welcher die Referenzta­ belle einen Eintrag pro Block in der Bilddatendatei enthält und die Dekomprimier­ einrichtung einen in dem Eintrag gespeicherten Wert als einen absoluten Wert für die Qualität des Blockes verwendet.
13. Bildaufbereitungseinrichtung nach Anspruch 9, bei welcher die Referenzta­ belle (38), sobald sie erzeugt ist, in dem Eingabespeicher (16) gespeichert wird, wobei jeder Eintrag der Referenztabelle einem Block in einer MCU-Einheit in dem Eingabespeicher (16) zugeordnet ist.
14. Bildaufbereitungseinrichtung nach Anspruch 13, bei welcher die Einträge der Referenztabelle (38) die relativen Werte jedes Blockes in dem Eingabespeicher (16) ersetzen.
15. Verfahren nach Anspruch 1, wonach ein volles Bild in M Zeilen und N Spalten von Blöcken aufgeteilt wird und das Bild in jedem Block als ein Satz digitaler Werte dargestellt wird, die einen Gleichspannungs-Versatzwert enthalten, welcher eine Differenz zwischen einem Gleichspannungswert für den Block und einen Gleichspannungswert für einen Block links von dem Block anzeigt, und wobei ein virtuelles Bild, das Y Zeilen und X Spalten von Blöcken aufweist, auf einem Display dargestellt wird, das virtuelle Bild auf dem Display durch eine obere Zeile von Blöcken, eine untere Zeile von Blöcken, eine linke Spalte von Blöcken und eine rechte Spalte Blöcken festgelegt ist, wobei Y kleiner als M und X kleiner als N ist, die Y Zeilen aus den M Zeilen und die X Spalten aus den N Spalten ausgewählt werden, wobei ein Verfahren, um das virtuelle Bild über das volle Bild nachzuführen, die Schritte aufweist:
Erzeugung einer linken Randtabelle, welche M Einträge enthält, wobei jeder Eintrag einem Gleichspannungswert eines Blockes in einer Spalte entspricht, die auf der linken Seite an die linke Spalte des virtuellen Bildes angrenzt; Erzeugen einer rechten Randtabelle, welche M Einträge enthält, wobei jeder Eintrag einem Gleichspannungswert eines Blockes in einer Spalte entspricht, welcher auf der rechten Seite an die rechte Spalte des virtuellen Bildes angrenzt;
Verwenden der linken Randtabelle, um Gleichspannungswerte für Blöcke zu berechnen, die zu dem virtuellen Bild hinzugefügt worden sind, wenn das virtuelle Bild links bezüglich des vollen Bildes nachgeführt wird, und
Verwenden der rechten Randtabelle, um Gleichspannungswerte für Blöcke zu berechnen, die dem virtuellen Bild hinzugefügt worden sind, wenn das virtuelle Bild rechts bezüglich des vollen Bildes nachgeführt wird.
16. Verfahren nach Anspruch 1, wonach ein volles Bild in M Zeilen von Blöcken aufgeteilt wird und der Teil des Bildes, der in jedem Block liegt, als ein Satz von digitalen Werten dargestellt wird, welche einen Gleichspannungs-Ver­ satzwert enthalten, welcher eine Differenz zwischen einem Gleichspannungswert für den Block und einem Gleichspannungswert für einen Block links von dem Block anzeigt, wobei ein virtuelles Bild, das Y Zeilen der Blöcke aufweist, auf einem Display dargestellt wird, wobei das virtuelle Bild auf dem Display eine linke Spalte von Blöcken aufweist, wobei ein Verfahren, um das virtuelle Bild über dem Bild nachzuführen, die Schritte aufweist:
Erzeugen einer linken Randtabelle, welche M Einträge enthält, wobei jeder Eintrag einem Gleichspannungswert eines Blockes in einer Spalte entspricht, die auf der linken Seite an die linke Spalte des virtuellen Bildes angrenzt, und Verwenden der linken Randtabelle, um Gleichspannungswerte für Blöcke zu berechnen, die zu dem virtuellen Bild hinzugefügt worden sind, wenn das virtuelle Bild links bezüglich des vollen Bildes nachgeführt wird.
17. Bildaufbereitungseinrichtung nach Anspruch 9, bei welcher ein volles Bild ein Muster von Pixels aufweist, und jedes Pixel durch einen digitalen Wert in einer Bilddatei dargestellt ist, und wobei die Bilddatei minimal codierte Einheiten (MCU) aufweist, wobei jede MCU-Einheit die digitalen Werte für jedes Pixel in einer Gruppe von Pixels darstellt, gekennzeichnet durch
einen Kompressor, um die MCU-Einheiten einer Bilddatei in komprimierte MCU-Einheiten zu komprimieren;
einen Dekompressor (24), um die komprimierten MCU-Einheiten in de­ komprimierte MCU-Einheiten zu dekomprimieren; einen Speicher (in 16) für Originalblöcke, um MCU-Einheiten aus der Bilddatei zu halten;
einen Editor (28) zum Handhaben von Daten in den dekomprimierten MCU-Einheiten;
einen Speicher (in 16) für aufbereitete Blöcke, um aufbereitete MCU- Einheiten zu halten, die sich von dem Kompressor als wieder komprimierte MCU-Einheiten ergeben, die durch den Editor (28) aufbereitet worden sind; ein Array (34) von Zeigern, um die MCU-Einheiten in dem Speicher für Originalblöcke und die wieder komprimierten, aufbereiteten MCU-Einheiten in dem Bild anzuordnen,
wobei der Editor (28) ausgewählte dekomprimierte MCU-Einheiten schafft, so als ob die gesamte Bilddatei dekomprimiert wurde.
DE4428517A 1993-09-20 1994-08-11 Verfahren zum Behandeln eines Teiles eines komprimierten Bildes sowie Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens Expired - Lifetime DE4428517C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/124,250 US5408328A (en) 1992-03-23 1993-09-20 Compressed image virtual editing system

Publications (2)

Publication Number Publication Date
DE4428517A1 DE4428517A1 (de) 1995-03-23
DE4428517C2 true DE4428517C2 (de) 1997-01-09

Family

ID=22413722

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4428517A Expired - Lifetime DE4428517C2 (de) 1993-09-20 1994-08-11 Verfahren zum Behandeln eines Teiles eines komprimierten Bildes sowie Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens

Country Status (3)

Country Link
US (1) US5408328A (de)
JP (1) JP3504978B2 (de)
DE (1) DE4428517C2 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0665513B1 (de) * 1994-01-31 2002-11-20 Canon Kabushiki Kaisha System und Verfahren zum Editieren bewegter Bilder
US6091460A (en) * 1994-03-31 2000-07-18 Mitsubishi Denki Kabushiki Kaisha Video signal encoding method and system
US6501853B1 (en) * 1994-06-27 2002-12-31 International Business Machines Corporation Apparatus and method for processing video data
JP3752694B2 (ja) * 1995-04-07 2006-03-08 ソニー株式会社 圧縮映像信号編集装置、編集方法、及び復号化装置
WO1996033575A1 (en) * 1995-04-18 1996-10-24 Advanced Micro Devices, Inc. Video decoder using block oriented data structures
US5768481A (en) * 1995-06-05 1998-06-16 Apple Computer, Inc. Method and apparatus for compression of digitized image data using a dynamic band recompression scheme
US5793647A (en) * 1995-08-15 1998-08-11 Diffracto, Ltd. System and method for graphical image data acquistion, storage, and retrieval
US5682441A (en) * 1995-11-08 1997-10-28 Storm Technology, Inc. Method and format for storing and selectively retrieving image data
JP3408923B2 (ja) * 1996-05-28 2003-05-19 シャープ株式会社 画像表示装置
US6108459A (en) * 1996-06-11 2000-08-22 Canon Kabushiki Kaisha Method and apparatus for processing an image
JP3211676B2 (ja) * 1996-08-27 2001-09-25 日本電気株式会社 画像処理方法および装置
US5838831A (en) * 1996-09-26 1998-11-17 Xerox Corporation Compression of image data with retaining cost data for each compressed image block
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6233356B1 (en) 1997-07-08 2001-05-15 At&T Corp. Generalized scalability for video coder based on video objects
US6993201B1 (en) 1997-07-08 2006-01-31 At&T Corp. Generalized scalability for video coder based on video objects
US6104441A (en) * 1998-04-29 2000-08-15 Hewlett Packard Company System for editing compressed image sequences
US6078328A (en) * 1998-06-08 2000-06-20 Digital Video Express, Lp Compressed video graphics system and methodology
US6523134B2 (en) 1998-09-18 2003-02-18 International Business Machines Corporation Selective undo
JP2000151974A (ja) * 1998-11-11 2000-05-30 Sony Corp 信号編集装置、信号編集方法
US6381371B1 (en) * 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
US7286724B2 (en) * 1999-12-06 2007-10-23 Hyundai Curitel, Inc. Method and apparatus for searching, browsing and summarizing moving image data using fidelity for tree-structure moving image hierarchy
WO2002007000A2 (en) 2000-07-13 2002-01-24 The Belo Company System and method for associating historical information with sensory data and distribution thereof
DE10064860A1 (de) * 2000-12-23 2002-06-27 Claas Selbstfahr Erntemasch Einrichtung zur Optimierung der Überladung von Erntegut an landwirtschaftlichen Fahrzeugen
GB2370741A (en) * 2000-12-29 2002-07-03 Nokia Mobile Phones Ltd Display of selected part of compressed image
JP3938534B2 (ja) 2002-09-19 2007-06-27 株式会社リコー 画像処理装置及び方法、画像形成装置、並びにプログラム
CN100477788C (zh) * 2003-09-16 2009-04-08 富士通微电子株式会社 图像处理显示装置和图像处理显示方法
US7391913B2 (en) * 2003-09-18 2008-06-24 Arcsoft, Inc. JPEG processing engine for low profile systems
SE0303085D0 (sv) * 2003-11-18 2003-11-18 Scalado Ab Method for creating a compressed digital image representation and image representation format
WO2005050567A1 (en) * 2003-11-18 2005-06-02 Scalado Ab Method for processing a digital image and image representation format
US7889792B2 (en) * 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
US7986731B2 (en) * 2004-02-06 2011-07-26 Apple Inc. H.264/AVC coder incorporating rate and quality controller
US7492820B2 (en) * 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
US7453938B2 (en) * 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
US20050286629A1 (en) * 2004-06-25 2005-12-29 Adriana Dumitras Coding of scene cuts in video sequences using non-reference frames
US7738710B2 (en) * 2004-08-02 2010-06-15 Electronics For Imaging, Inc. Methods and apparatus for communicating and displaying compressed image data
JP2006086579A (ja) * 2004-09-14 2006-03-30 Ricoh Co Ltd 画像処理装置、プログラム、及び記憶媒体
US7643694B2 (en) * 2004-12-31 2010-01-05 Zoran Corporation Method and apparatus for processing a compressed image in an order other than the order in which it was compressed
US8937997B2 (en) 2006-03-16 2015-01-20 Apple Inc. Scalable video coding/multiplexing compatible with non-scalable decoders
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
EP2077038B1 (de) * 2006-10-18 2013-01-30 Apple Inc. Skalierbare videokodierung mit filterung unterer schichten
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
US7987162B2 (en) * 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
US8271544B2 (en) * 2009-05-01 2012-09-18 Creative Technology Ltd Data file having more than one mode of operation
US8976856B2 (en) 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
US10311609B2 (en) * 2012-12-17 2019-06-04 Clinton B. Smith Method and system for the making, storage and display of virtual image edits
US9496893B1 (en) * 2015-10-29 2016-11-15 Yahoo! Inc. Content compression and/or decompression

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4851906A (en) * 1986-11-04 1989-07-25 Nec Corporation Data compression using orthogonal transform and vector quantization
DE3721074A1 (de) * 1986-12-24 1988-07-07 Licentia Gmbh Schaltungsanordnung zur verschiebungsvektorsuche in der digitalen bildanalyse
JP2527350B2 (ja) * 1987-02-25 1996-08-21 富士写真フイルム株式会社 ベクトル量子化による画像デ―タの圧縮および再構成装置
US4868570A (en) * 1988-01-15 1989-09-19 Arthur D. Little, Inc. Method and system for storing and retrieving compressed data
US5021891A (en) * 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
JPH04868A (ja) * 1990-04-17 1992-01-06 Casio Comput Co Ltd ファクシミリ符号化装置
US5349348A (en) * 1991-08-15 1994-09-20 International Business Machines Corporation Multi-mode data stream generator

Also Published As

Publication number Publication date
JPH07170390A (ja) 1995-07-04
JP3504978B2 (ja) 2004-03-08
US5408328A (en) 1995-04-18
DE4428517A1 (de) 1995-03-23

Similar Documents

Publication Publication Date Title
DE4428517C2 (de) Verfahren zum Behandeln eines Teiles eines komprimierten Bildes sowie Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens
DE4309105C2 (de) Verfahren zum Behandeln eines Teils eines verdichteten Bildes für eine Aufbereitung
DE69631792T2 (de) Apparat und verfahren für die zweidimensionale datenkompression
DE19983253B4 (de) Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt
DE3005775C2 (de) Kodierverfahren für ein Farbbild
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE69907798T2 (de) Umwandlungen von komprimierten Bildern
DE10120644B4 (de) Bilddatenverdichtungsverfahren und -vorrichtung, welche Bilddaten separat durch Modifizieren der Farbe verdichten
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE69837017T2 (de) Zoomen mit vorbestimmten Grössen von Indexbildern
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69833085T2 (de) Verfahren und Vorrichtung für die reversible Farbumwandlung
DE69733007T2 (de) Vorrichtung zur codierung und decodierung von bewegtbildern
DE69924827T2 (de) Verfahren und Vorrichtung zur Verarbeitung von Bilddaten
DE19531004C2 (de) Verfahren und Vorrichtung zur wahrnehmungsoptimierten Übertragung von Video- und Audio-Daten
DE19919600B4 (de) Einrichtung und Verfahren zum Komprimieren von Bilddaten, die von einem Bildsensor empfangen werden, der ein Bayer-Muster aufweist
DE19819198A1 (de) Reversible DCT für verlustfreie/verlustbehaftete Kompression
DE69926469T2 (de) Filterung von Bilddaten bei der Verarbeitung zusammengesetzter Dokumente
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DD260378A5 (de) Bildwiedergabeanordnung
DE60203850T2 (de) System und Verfahren zum Verarbeiten von Bildern mit aufgelöster Mosaikstruk- tur, um durch Farb-Aliasing hervorgerufenen Artefakte zu verringern.
DE60211171T2 (de) Verarbeitung von einem komprimierten mediensignal
DE69934385T2 (de) Bilddatenkompression für Verarbeitung zusammengesetzter Dokumente
DE69936304T2 (de) Bereichsbasierte skalierbare bildkodierung
EP0336510B1 (de) Prädiktiver Standbildcodierer

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
R071 Expiry of right
R071 Expiry of right