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 VerfahrensInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical 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.
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.
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.
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.
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.
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.
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.
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)
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)
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 |
-
1993
- 1993-09-20 US US08/124,250 patent/US5408328A/en not_active Expired - Lifetime
-
1994
- 1994-08-11 DE DE4428517A patent/DE4428517C2/de not_active Expired - Lifetime
- 1994-09-12 JP JP21682894A patent/JP3504978B2/ja not_active Expired - Fee Related
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 |