DE4428517A1 - Verfahren zum Behandeln eines Teils eines komprimierten Bildes, Bildaufbereitungseinrichtung und Bildaufbereitungssystem - Google Patents
Verfahren zum Behandeln eines Teils eines komprimierten Bildes, Bildaufbereitungseinrichtung und BildaufbereitungssystemInfo
- Publication number
- DE4428517A1 DE4428517A1 DE4428517A DE4428517A DE4428517A1 DE 4428517 A1 DE4428517 A1 DE 4428517A1 DE 4428517 A DE4428517 A DE 4428517A DE 4428517 A DE4428517 A DE 4428517A DE 4428517 A1 DE4428517 A1 DE 4428517A1
- Authority
- DE
- Germany
- Prior art keywords
- image
- block
- mcu
- blocks
- value
- 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.)
- Granted
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
Description
Die Erfindung betrifft ein Verfahren zum Behandeln eines Teils
eines komprimierten Bildes nach dem Oberbegriff des Anspruchs
1, 2 und 9, eine Bildaufbereitungseinrichtung sowie ein Bild
aufbereitungssystem. Die Erfindung betrifft somit das Gebiet
des Aufbereitens von komprimierten Bildern, und insbesondere
in einer Ausführungsform eine Einrichtung, um Teile von kom
primierten Bildern aufzubereiten, ohne das ganze Bild zu de
komprimieren.
Eine moderne Farbbilderzeugung in Kameras und Scanner erfor
dert eine gewaltige Speicherkapazität, um Bilddateien zu spei
chern, welche eine Datendarstellung des eingegebenen oder ge
scannten Bildes enthalten. Ein übliches Bild, wie es bei
spielsweise mit einem Farbkopierer erzeugt wird, der Papier
der Größe (216mm×297mm) verwendet und eine Auflösung von 400
Punkten pro Inch (15,75 pro mm) und 3 Bytes (24 Bits) hat, um
die Farbe fuhr jeden Punkt darzustellen, 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 bedeu
tet eine Bandbreite oder eine Datenrate von beinahe 90 Mega-
its/s. Diese beiden Anforderungen treiben die Kosten von Abbil
dungssystemen in die Höhe. Es sind Komprimiermethoden angewen
det worden, um sowohl das Bandbreiten- als auch das Speicher
problem 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 Ka
nal 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 kom
primierte 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 Dinge (edits) in der
Bilddatei gesichert werden, um die Pixels in diesem Bild zu ak
tualisieren. Wenn die zu verarbeitende Bilddatei komprimiert
wird, ist es bei der herkömmlichen Einrichtung, um einen belie
bigen Pixel-Zugriff zu erhalten, notwendig, das gesamte Bild in
einem Rahmenspeicher zu dekomprimieren, die Verarbeitung durch
zuführen und dann das Bild in einer neuen Bilddatei wieder zu
komprimieren. Die Schwierigkeit hierbei besteht darin, daß kein
Speicher durch Dekomprimieren eingespart wird, da der Speicher
für den Rahmenspeicher benötigt wird. Die Bandbreite wird eben
falls 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 Abbildungssystem das gesamte Bild mit voller Auflösung
nicht darstellen kann.
Komprimierverfahren zum Komprimieren von Bilddaten sind be
kannt. Ein derartiger Kornprimierstandard ist JPEG (Joint Photo
graphic 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 Bildelemen
ten oder Pixels dargestellt. Wenn das Bild Grauabstufungen hat,
wird jedes Pixel durch einen Intensitätswert dargestellt, und
wenn das Bild farbig ist, wird es in mehrere Komponenten aufge
teilt (nämlich in rote, grüne und blaue Komponenten für ein
Bild, das gemäß dem RGB Farbtrenn-Standard aufgeteilt ist), wo
bei jedes Pixel jedes Komponentenbildes durch einen Komponen
tenfarbwert 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 auf
geteilt (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 Kosinustransformation in 64
frequenzähnliche Basisfunktions-Amplituden transformiert, von
denen eine ein Gleichspannungswert und die anderen 63 Wechsel
spannungswerte sind. Diese Werte werden dann in komprimierte
Bilddaten codiert.
Um eine hohe Verdichtung zu erreichen, wird eine Differenz zwi
schen dem Gleichspannungswert eines Blockes und dem Gleichspan
nungswert eines vorhergehenden Blockes anstelle des absoluten
Gleichspannungswerts des Blockes verwendet. In Anbetracht des
sen, 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 Diffe
renzwerte.
Ein Unterabtasten (subsampling) von Farbe wird oft angewendet,
um die Kompressibilität eines Bildes zu erhöhen. Wenn ein Bild
in die drei Komponenten des YUV- (Y, Cr, Cb) Farbraums aufge
teilt wird, stellt die Y-Komponente die Luminanz (y), die U-
oder die Cr-Komponente, die (Rot - Grün)-Chrominanz und die V-
oder die Cb-Komponente stellt die (Blau - Grün)-Chraminanz dar.
Visuell ist die Luminanz-Komponente die wichtigste Komponente,
und die Auflösung der anderen beiden Komponenten kann oft redu
ziert werden, ohne unerwünschte Artefakte in ein Bild einzu
bringen. Dieses Reduzieren der Farbauflösung bezüglich der Lu
minanz-Auflösung ist als Unterabtasten bzw. Subsampling be
kannt. 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-Farbwerte vorgesehen ist. Ohne ein Unterabtasten
(1 : 1 : 1) wird eine Ein-Pixel-Fläche durch insgesamt drei Pixels
(1L, 1U, 1V) beschrieben, während mit 2 : 1 : 1-Unterabtasten
eine Zwei-Pixel-Fläche durch insgesamt vier Pixels (2L, 1U,
1V) 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 Bildda
ten-Dateigröße auf die Hälfte ergibt. Wenn ein Unterabtasten
angewendet wird, erstrecken sich die Blöcke verschiedener Farb
komponenten über verschieden große Flächen, so daß, um die Kom
ponentenblöcke zusammenzuhalten, alle Blöcke für einen kleinen
Bereich bei einem Codieren und Decodieren zusammengehalten wer
den. Beispielsweise werden bei einem 2 : 1 : 1-Unterabtasten vier
Blöcke, nämlich ein U- Block, ein V-Block und zwei Y-Blöcke be
nötigt, um einen Bereich von (8 Pixels×16 Pixels) zu be
decken, 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 (4Y, 1U, 1V), welche zu
sammengehalten werden. Diese kleinste Einheit von komprimierba
ren 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 Gruppie
ren von Blöcken in MCU-Einheiten in Multiblock-MCU-Einheiten
und dann ein Reduzieren der Anzahl Bits ein, die benötigt wer
den, um jede MCU-Einheit durch ein Entropie-Codieren zu be
schrieben. Die komprimierten MCU-Einheiten, welche ein kompri
miertes Bild bilden, werden dann mit Identifizierinformation
versehen, wie der MCU-Stelle in dem Bild, wenn es nicht-kompri
miert ist, wie Längendaten, um anzuzeigen, wieviele Bits in der
MCU-Einheit enthalten sind, u. a., und die MCU-Einheiten werden
nacheinander als eine komprimierte Bilddatei gespeichert. Län
gendaten werden benötigt, da die MCU-Einheiten eine variable
Länge haben, wobei die Länge eine Funktion der zu komprimieren
den Daten und des verwendeten Komprimiertyps sind. Der Prozeß
des Entropie-Codierens wird generell als Codieren bezeichnet,
während Komprimieren auf den Prozeß des Blockierens, Kosinus-
Transformierens und Codierens von Bilddaten hinweist.
Bezeichnenderweise können Differenz -Gleichspannungswerte für
Blöcke eines Bildes aus einem komprimierten Bild nach dem En
tropie-Decodieren der Bilddaten extrahiert werden, was weniger
mühsam ist als ein vollständiges Dekomprimieren des Bildes, was
zum einen den zusätzlichen Schritt des inversen Konsinus-Trans
formierens der Daten erfordert. Da ein Block nicht invers
transformiert werden muß, um dessen Gleichspannungswert zu er
halten, ist der Aufwand, der erforderlich ist, um den Gleich
spannungswert zu erhalten, viel geringer als der, den dekompri
mierten Block zu erhalten, da Kosinus- und inverse Transforma
tionen sehr rechenintensive Operationen sind.
Um ein Bild zu dekomprimieren, wird jede MCU-Einheit aus einer
Bilddatei in einen oder mehrere Bildblöcke durch die umgekehr
ten Operationen bezüglich der Operation komprimiert, die ver
wendet werden, um die Daten zu komprimieren. Ein Entropie-Deco
dieren wird bei einer komprimierten MCU-Einheit angewendet, und
das Ergebnis ist ein Differenz-Gleichspannungswert und 63 Wech
selspannungswerte für jeden Block. Als nächstes werden die Dif
ferenz - Gleichspannungswerte in absolute Gleichspannungswerte
durch Addieren des absoluten Gleichspannungswerts 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 ver
arbeitet werden. Als nächstes durchlaufen die Blöcke eine in
verse Kosinus-Transformation, wodurch sich nicht-komprimierte
Pixel-Farbwertdaten ergeben.
Obwohl ein differentielles Codieren von sich langsam ändernden
Werten von Block zu Block, beispielsweise des Gleichspannungs
wertes, 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 De
komprimieren, wenn das Teilbild aufgearbeitet und wieder kom
primiert wird, da der Verdichtungsgrad von der Regelmäßigkeit
der Bilddaten abhängt, und somit ändern MCU-Einheiten ihre Grö
ßer, wenn sich der Bildteil, welchen sie darstellen, ändert.
Folglich ist ein einfaches Austauschen der MCU-Einheiten von
dem Teilbild durch die MCU-Einheiten von dem aufbereiteten
Teilbild unpraktisch, wenn nicht das gesamte Bild dekompri
miert, aufbereitet und wieder komprimiert wird.
Aus den vorstehenden Ausführungen ist zu ersehen, daß ein ver
bessertes Verfahren zum Handhaben und Aufbereiten von verdich
teten Bildern benötigt wird.
Gemäß der Erfindung ist eine Pixel-Pegelhandhabung von Bildern
möglich, welche größtenteils in einer komprimierten Form ver
bleiben. In einem Bildkomprimiersystem mit einem typischen
Bildkomprimierschema ist eine Zeigeranordnung vorgesehen, in
welcher Zeiger auf die MCU-Einheiten in einer verdichteten
Bilddatei zeigen, und in einigen Ausführungsformen ist eine
Gleichspannungswert-Tabelle vorgesehen, damit ein absoluter
Gleichspannungswert für einen Block berechnet werden kann, ohne
daß ein Bezugnehmen auf Daten in irgendeinem anderen Block nö
tig ist. Von allen Blöcken eines Bildes wird eine Untermenge der
Blöcke als ein "virtuelles" Bild ausgewählt. In einigen Ausfüh
rungsformen wird das virtuelle Bild herumbewegt, um mehr Bild
fläche als ein virtuelles Bild zu bedecken, und in einigen Fäl
len bedeckt es nacheinander die ganze Bildfläche.
Das virtuelle Bild wird dekomprimiert/decodiert und aufberei
tet; jede aufbereitete MCU-Einheit (d. h. ein oder mehrere
Blöcke davon) wird in eine aufbereitete MCU-Einheit kompri
miert, und der Zeiger auf die ursprüngliche MCU-Einheit wird
entsprechend geändert, damit er auf die aufbereitete MCU-Ein
heit zeigt, welche in dem aufbereiteten Bilddaten-Bereich ge
speichert wird. Auf diese Weise kann die Zeigeranordnung modi
fiziert werden, um eine "Undo"-Operation durchzuführen, welche
in einer interaktiven Bildaufbereitungs-Anwendung verwendbar
ist. Natürlich könnte statt einer interaktiven Bildaufberei
tungs-Anwendung die gesamte eingegebene Bilddatei durch einen
seriellen Prozeß aufbereitet werden, wodurch eine gesonderte
Ausgabe-Bilddatei erzeugt wird.
Gemäß der Erfindung ist in vorteilhafter Weise eine Einrichtung
geschaffen, um differentiell codierte Werte in Blöcken zu be
handeln, wobei nicht alle Blöcke von komprimierten MCU-Einhei
ten decodiert werden. Eine Randtabelle ist vorgesehen, um Werte
zu halten, wobei jeder Wert, wenn er mit dem Differenzwert für
einen Block an dem Rand des virtuellen Bildes kombiniert wird,
einen Absolutwert für den Block schafft, ohne auf Blöcke über
den Rand des virtuellen Bildes hinaus Bezug zu nehmen. Die Ein
träge in der Randtabelle werden aus den komprimierten Blöcken
bestimmt, ohne daß die Blöcke vollständig dekomprimiert werden,
da die inverse Kosinus-Transformation nicht für das Erstellen
der Randtabellen notwendig ist. Mehr als eine Randtabelle kann
vorgesehen werden, um die Geschwindigkeit beim Berechnen von
Absolutwerten aus Differenzwerten zu verbessern, wobei die Ge
schwindigkeit wertvoller als die zusätzlichen Speichererforder
nisse ist. Das Berechnen von Absolutwerten ist im Durchschnitt
mit mehr Randtabellen schneller durchzuführen, da die Rechenge
schwindigkeit proportional dem Abstand von einem Block zu dem
nächsten Rand ist, welcher eine Randtabelle hat.
Wo Geschwindigkeit speziell ein Vorteil bezüglich der Speiche
rung für differentiell codierte Werte, wie den Gleichspannungs
wert für jeden Block ist, werden die Gleichspannungswerte für
alle die Blöcke, die ein Bild aufweisen, extrahiert und in
einer Gleichspannungswert - Anordnung gespeichert.
Wenn sowohl Geschwindigkeit als auch Speicherplatz vorteilhaft
sind, sind in einer weiteren Ausführungsform Differenz-Gleich
spannungswerte differenzierende relativ zu einem festen Gleich
spannungswert. Der Vorteil dieser Ausführungsform besteht dar
in, daß, obwohl nicht JPEG-kompatibel, jede MCU-Einheit geson
dert dekomprimierbar ist und keine Randtabellen oder Gleich
spannungswert-Anordnungen benötigt werden. Das Umwandeln eines
Bildes zwischen einer in dieser Ausführungsform verwendeten
Bilddatei und einer JPEG-kompatiblen Bilddatei ist eine ver
lustfreie reversible Operation, die rechnerisch einfach ist.
Gemäß der Erfindung ist noch eine Einrichtung vorgesehen, um
ein komprimiertes, aufbereitetes Bild zu reindexieren, um alle
MCU-Einheiten zurückzugreifen und um MCU-Einheiten aus dem ur
sprünglichen Bilddatenbereich gegen MCU-Einheiten aus dem auf
bereiteten Bilddatenbereich auszutauschen. Die beschriebene
Ausführungsform der Erfindung arbeitet mit Bilddaten, welche
entsprechend der JPEG-Norm komprimiert sind; jedoch ist die Er
findung auch bei irgendeinem Bildkomprimierschema anwendbar,
bei welchem Blöcke in variabel bemessene MCU-Einheiten verdich
tet oder wo die Daten mit Differenzwerten codiert werden, wobei
Bezug zu anderen MCU-Einheiten gemacht werden muß, um eine MCU-
Einheit vollständig zu decodieren.
In einer Bildaufbereitungseinrichtung gemäß der Erfindung wird
ein komprimiertes Bild in einen Hauptspeicherbereich geladen,
und ausgewählte, aufzubereitende MCU-Einheiten werden von dem
Hauptspeicherbereich aus dekomprimiert, zu der Aufbereitungs
einrichtung durchgelassen, aufbereitet und durch einen Verdich
ter rekomprimiert. Die rekomprimierten, aufbereiteten MCU-Ein
heiten werden dann in einem aufbereiteten Blockspeicher ange
ordnet. Eine Zeigeranordnung ist vorgesehen, um auf MCU-Einhei
ten entweder in dem Hauptspeicherbereich oder dem aufbereiteten
MCU-Speicher zu zeigen, so daß die Zeiger in der Anordnung auf
jede MCU-Einheit des Bildes nach einem Aufbereiten zeigen. Na
türlich können die ausgewählten MCU-Einheiten jede MCU-Einheit
des Bildes enthalten, wie es beispielsweise der Fall sein würde
in einem Prozeß, bei welchem alle MCU-Einheiten aufbereitet und
in serieller Form ausgetauscht werden.
Die Aufbereitungsfunktionen schließen, obwohl sie hierauf nicht
beschränkt sind, eine Rotation, eine Translation, ein Skalie
ren, ein Filtern, ein Abdecken und ein Mischen ein. Abdecken
ist der Prozeß, ein Bild gemäß einer Abdeckfunktion zu be
schneiden, welche einen Abdeckwert an jedem Pixel auswertet.
Mischen ist der Prozeß, zwei Bilder, Bildelement - für - Bild
element gemäß einer Mischfunktion zu kombinieren, welche einen
Wichtungswert an jedem Pixel für jedes zu mischende Bild bewer
tet.
Nachfolgend wird die Erfindung anhand von bevorzugten Ausfüh
rungsformen unter Bezugnahme auf die anliegenden Zeichnungen im
einzelnen 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 Maus 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 (216mm×297mm) großes Bild mit 400 Pixels pro Inch N
425 und M 550 für insgesamt 233 750 Blöcke pro Inch, wobei
eine einzige Komponente pro Pixel angenommen ist. Bei diesem
Beispiel würde ein komprimiertes Bild 19 233 750 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 MCU-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 233 750 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, sondern
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 extrahiert. 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 aufbereiteten 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.
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 (216mm×297mm) 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² * 160 000 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 233 750 Einträge von jeweils
4 Bytes haben, was 935 000 Bytes erfordert, und eine Gleichspan
nungswert-Anordnung 74 würde 467 500 Einträge von jeweils 2 By
tes haben, was 935 000 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. In 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 dem 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.
Zu Fig. 5
1 JPEG-Anwendungen markieren (2)
2 ID-Nummer (2) aufbereiten
4 Nächste Bit-Position (4)
5 Verdichteter Block (MCU) Daten (CBB)
6 Kopfteil Byte-Länge (2)
7 Vorherige Bit-Position (4)
8 Verdichteter Block (MCU) Bits (4)
1 JPEG-Anwendungen markieren (2)
2 ID-Nummer (2) aufbereiten
4 Nächste Bit-Position (4)
5 Verdichteter Block (MCU) Daten (CBB)
6 Kopfteil Byte-Länge (2)
7 Vorherige Bit-Position (4)
8 Verdichteter Block (MCU) Bits (4)
Zu Fig. 6
Kopfteil für jede aufbereitete MCU-Einheit
- Anwendungs-Marker für Abtast- und Block-ID-Zwecke
- Länge von Block + 2 in Bytes, um mit JPEG-Norm übereinzustimmen
- Aufbereiten von ID-Nummer für eindeutige ID-Signatur, wenn gesucht wird
- Vorherige Bit-Position von derselben vorher aufbereiteten MCU-Einheit
- Nächste Bit-Position von derselben nachträglich aufbereiteten MC-Einheit
- Anzahl von Bits, die die folgenden codierten Daten aufweisen
- Wiederverdichtete aufbereitete MCU-Bilddaten
Kopfteil für jede aufbereitete MCU-Einheit
- Anwendungs-Marker für Abtast- und Block-ID-Zwecke
- Länge von Block + 2 in Bytes, um mit JPEG-Norm übereinzustimmen
- Aufbereiten von ID-Nummer für eindeutige ID-Signatur, wenn gesucht wird
- Vorherige Bit-Position von derselben vorher aufbereiteten MCU-Einheit
- Nächste Bit-Position von derselben nachträglich aufbereiteten MC-Einheit
- Anzahl von Bits, die die folgenden codierten Daten aufweisen
- Wiederverdichtete aufbereitete MCU-Bilddaten
Zu Fig. 9
82 Eine Aufbeeitungsfunktion auswählen
84 Ausgegebenen Blockzeiger initialisieren
86 Basierend auf ausgewählter Aufbereitungsfunktion, die
eingegebenen Blockabängigkeiten bestimmen
88 Die eingegebenen Blöcke extrahieren und dekomprimieren, von
welchen der augenblicklich abgegebene Block abhängt
90 Abgegebenen Block aus den eingegebenen Blöcken und der
ausgewählten Aufbereitungsfunktion berechnen
92 Den berechneten Ausgabeblock abgeben
94 Ausgabeblock-Zeiter inkrementieren
96 Mehr Ausgabeblöcke?
82 Eine Aufbeeitungsfunktion auswählen
84 Ausgegebenen Blockzeiger initialisieren
86 Basierend auf ausgewählter Aufbereitungsfunktion, die
eingegebenen Blockabängigkeiten bestimmen
88 Die eingegebenen Blöcke extrahieren und dekomprimieren, von
welchen der augenblicklich abgegebene Block abhängt
90 Abgegebenen Block aus den eingegebenen Blöcken und der
ausgewählten Aufbereitungsfunktion berechnen
92 Den berechneten Ausgabeblock abgeben
94 Ausgabeblock-Zeiter inkrementieren
96 Mehr Ausgabeblöcke?
Claims (18)
1. Verfahren zum Behandeln eines Teils eines komprimierten
Bildes, um es aufzubereiten, wobei das Bild in Blöcke aufge
teilt 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 Bilddaten
datei bildet, dadurch gekennzeichnet, daß das Verfahren die
Schritte aufweist:
Erzeugen einer Zeiger-Anordnung, wobei jeder Zeiger in der Zeiger-Anordnung auf MCU-Einheit in der komprimierten Bildda tendatei zeigt, wobei eine komprimierte MCU-Einheit einen MCU- Kopfteil und einen MCU-Hauptteil aufweist, wobei der MCU-Kopf teil ferner zumindest 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 Qua litäten jedes Bildblocks in dem MCU-Hauptteil aufweist;
Auswählen von Blöcken aus dem Bild, um ein virtuelles Bild festzulegen;
Erzeugen einer Referenztabelle, wobei die Tabelle zumindest einen Wert aufweist, der verwendet wird, um den Relativwert eines Blockes in einen Absolutwert für diesen Block umzuwan deln;
Dekomprimieren einer Gruppe von MCU-Einheiten, welche den Blöcken des virtuellen Bildes entsprechen;
Aufbereiten des virtuellen Bildes, um zumindest eine aufberei tete MCU-Einheit zu bilden;
Komprimieren der aufbereiteten MCU-Einheit in eine aufbereite te MCU-Einheit;
Sichern der aufbereiteten MCU-Einheit in einem Speicher für aufbereitete Blöcke, und
Modifizieren eines Zeigers in der Zeiger-Anordnung, wobei der Zeiger der aufbereiteten MCU-Einheit entspricht und modifiziert wird, um auf die aufbereitete MCU-Einheit in dem Speicher für aufbereitete Blöcke zu zeigen,
wobei die MCU-Einheiten, auf welche durch die Zeiger der Zei ger-Anordnung gezeigt worden ist, die in dem Modifizierschritt modifiziert worden sind, kollektiv ein aufbereitetes Bild fest legen.
Erzeugen einer Zeiger-Anordnung, wobei jeder Zeiger in der Zeiger-Anordnung auf MCU-Einheit in der komprimierten Bildda tendatei zeigt, wobei eine komprimierte MCU-Einheit einen MCU- Kopfteil und einen MCU-Hauptteil aufweist, wobei der MCU-Kopf teil ferner zumindest 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 Qua litäten jedes Bildblocks in dem MCU-Hauptteil aufweist;
Auswählen von Blöcken aus dem Bild, um ein virtuelles Bild festzulegen;
Erzeugen einer Referenztabelle, wobei die Tabelle zumindest einen Wert aufweist, der verwendet wird, um den Relativwert eines Blockes in einen Absolutwert für diesen Block umzuwan deln;
Dekomprimieren einer Gruppe von MCU-Einheiten, welche den Blöcken des virtuellen Bildes entsprechen;
Aufbereiten des virtuellen Bildes, um zumindest eine aufberei tete MCU-Einheit zu bilden;
Komprimieren der aufbereiteten MCU-Einheit in eine aufbereite te MCU-Einheit;
Sichern der aufbereiteten MCU-Einheit in einem Speicher für aufbereitete Blöcke, und
Modifizieren eines Zeigers in der Zeiger-Anordnung, wobei der Zeiger der aufbereiteten MCU-Einheit entspricht und modifiziert wird, um auf die aufbereitete MCU-Einheit in dem Speicher für aufbereitete Blöcke zu zeigen,
wobei die MCU-Einheiten, auf welche durch die Zeiger der Zei ger-Anordnung gezeigt worden ist, die in dem Modifizierschritt modifiziert worden sind, kollektiv ein aufbereitetes Bild fest legen.
2. Verfahren zum Behandeln eines Teils eines komprimierten Bil
des, um es aufzubereiten, wobei das Bild in Blöcke aufgeteilt
wird, wobei jeder Block durch digitale Daten dargestellt ist,
und wobei die digitalen Daten für zumindest einen Block durch
eine minimal codierte Einheit (MCU) dargestellt werden, eine
Anzahl der MCU-Einheiten, wenn sie komprimiert sind, eine kom
primierte Bilddatendatei bilden, und ein Block zumindest einen
differentiell codierten Wert für eine Qualität des Blockes ent
hält, dadurch gekennzeichnet, daß das Verfahren die Schritte
aufweist:
Erzeugen einer Zeiger-Anordnung, wobei jeder Zeiger in der Zei ger-Anordnung auf eine MCU-Einheit in der komprimierten Bildda tendatei zeigt;
Auswählen von Blöcken aus dem Bild, um ein virtuelles Bild festzulegen;
Bestimmen eines Absolutwertes für die Qualität, welche diffe rentiell für jeden der ausgewählten Blöcke codiert wird;
Dekomprimieren einer Gruppe von MCU-Einheiten, die den ausge wählten Blöcken des virtuellen Bildes entsprechen, wobei Daten in der Gruppe MCU-Einheiten und der Absolutwert verwendet wer den;
Aufbereiten des virtuellen Bildes, um zumindest einen aufberei teten Block zu bilden;
Komprimieren des aufbereiteten Blocks in eine aufbereitete MCU- Einheit;
Sichern der aufbereiteten MCU-Einheit in einem Speicher für aufbereitete Blöcke, und
Modifizieren eines Zeigers in der Zeiger-Anordnung, wobei der Zeiger der aufbereiteten MCU-Einheit entspricht und modifiziert wird, um auf die aufbereitete MCU-Einheit in dem Speicher für aufbereitete Blöcke zu zeigen,
wobei die MCU-Einheiten, auf welche durch die Zeiger der Zei ger-Anordnung gezeigt wird, die bei dem Modifizierschritt modi fiziert worden sind, kollektiv ein aufbereitetes Bild festle gen.
Erzeugen einer Zeiger-Anordnung, wobei jeder Zeiger in der Zei ger-Anordnung auf eine MCU-Einheit in der komprimierten Bildda tendatei zeigt;
Auswählen von Blöcken aus dem Bild, um ein virtuelles Bild festzulegen;
Bestimmen eines Absolutwertes für die Qualität, welche diffe rentiell für jeden der ausgewählten Blöcke codiert wird;
Dekomprimieren einer Gruppe von MCU-Einheiten, die den ausge wählten Blöcken des virtuellen Bildes entsprechen, wobei Daten in der Gruppe MCU-Einheiten und der Absolutwert verwendet wer den;
Aufbereiten des virtuellen Bildes, um zumindest einen aufberei teten Block zu bilden;
Komprimieren des aufbereiteten Blocks in eine aufbereitete MCU- Einheit;
Sichern der aufbereiteten MCU-Einheit in einem Speicher für aufbereitete Blöcke, und
Modifizieren eines Zeigers in der Zeiger-Anordnung, wobei der Zeiger der aufbereiteten MCU-Einheit entspricht und modifiziert wird, um auf die aufbereitete MCU-Einheit in dem Speicher für aufbereitete Blöcke zu zeigen,
wobei die MCU-Einheiten, auf welche durch die Zeiger der Zei ger-Anordnung gezeigt wird, die bei dem Modifizierschritt modi fiziert worden sind, kollektiv ein aufbereitetes Bild festle gen.
3. Verfahren nach Anspruch 2, bei welchem der Bestimmungsschritt
ferner die Schritte aufweist:
Bezugnehmen auf eine Tabelle von versetzten Einträgen durch Zeigen auf einen versetzten Eintrag, welcher einem ausgewählten Block entspricht, und
Addieren des angezeigten versetzten Eintrags zu einem differen tiell codierten Wert, wodurch sich der Absolutwert für die Qua lität des ausgewählten Blockes ergibt.
Bezugnehmen auf eine Tabelle von versetzten Einträgen durch Zeigen auf einen versetzten Eintrag, welcher einem ausgewählten Block entspricht, und
Addieren des angezeigten versetzten Eintrags zu einem differen tiell codierten Wert, wodurch sich der Absolutwert für die Qua lität des ausgewählten Blockes ergibt.
4. Verfahren nach Anspruch 2, bei welchem der Bestimmungs
schritt ferner die Schritte aufweist:
Bezugnehmen auf eine Tabelle von absoluten Einträgen, indem auf einen absoluten Eintrag gezeigt wird, welcher einem ausgewähl ten Block entspricht, und
Verwenden des angezeigten Werts bei einem absoluten Eintrag als den absoluten Wert für die Qualität des ausgewählten Blockes.
Bezugnehmen auf eine Tabelle von absoluten Einträgen, indem auf einen absoluten Eintrag gezeigt wird, welcher einem ausgewähl ten Block entspricht, und
Verwenden des angezeigten Werts bei einem absoluten Eintrag als den absoluten Wert für die Qualität des ausgewählten Blockes.
5. Verfahren nach Anspruch 2, bei welchem der Bestimmungs
schritt ferner den Schritt aufweist, einen konstanten Versatz
zu einem differentiell codierten Wert zu addieren, um den Abso
lutwert für die Qualität des ausgewählten Blockes zu erreichen.
6. Verfahren nach Anspruch 2, bei welchem der Bestimmungs
schritt für alle aufzuarbeitenden Blöcke vor dem Aufbereitungs
schritt durchgeführt wird und der Bestimmungsschritt ferner den
Schritt aufweist, die differentiell codierten Werte durch abso
lute Werte vor dem Aufbereitungsschritt zu ersetzen.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die
Absolutwerte durch Differenzwerte nach einem Aufbereiten er
setzt werden, um eine JPEG-kompatible Bilddatei zu erhalten.
8. Verfahren nach Anspruch 2, bei welchem die differentiell
codierte Qualität eines Blockes ein Gleichspannungswert ist,
welcher sich aus einer Kosinustransformation von Pixel-Farbwer
ten für eine Farbkomponente von Pixels ergibt, welche durch den
Block abgedeckt sind.
9. Verfahren zum Behandeln eines Teils eines komprimierten Bil
des, um es aufzubereiten, wobei das Bild in Blöcke aufgeteilt
wird, wobei jeder Block durch digitale Daten dargestellt ist,
die zumindest einen relativen Wert enthalten, wobei ein Abso
lutwert für einen Block durch Bezugnahme auf relative Werte für
andere Blöcke bestimmt wird, dadurch gekennzeichnet, daß das
Verfahren die Schritte aufweist:
Auswählen von Blöcken aus dem Bild, um ein virtuelles Bild festzulegen, das dem Teil des komprimierten Bildes entspricht;
Bestimmen eines absoluten Werts für-jeden einer Anzahl Blöcke, welche auswählbar sind;
Erzeugen einer Versatztabelle zum Halten der absoluten Werte, und
Verwenden der Versatz-Tabelle, um absolute Werte für Blöcke zu bestimmen, die dekomprimiert und zu dem virtuellen Bild addiert sind.
Auswählen von Blöcken aus dem Bild, um ein virtuelles Bild festzulegen, das dem Teil des komprimierten Bildes entspricht;
Bestimmen eines absoluten Werts für-jeden einer Anzahl Blöcke, welche auswählbar sind;
Erzeugen einer Versatztabelle zum Halten der absoluten Werte, und
Verwenden der Versatz-Tabelle, um absolute Werte für Blöcke zu bestimmen, die dekomprimiert und zu dem virtuellen Bild addiert sind.
10. Bildaufbereitungseinrichtung, gekennzeichnet durch
einen Eingabespeicher, um eine verdichtete Bilddaten-Datei zu
speichern, die eine Anzahl minimal codierter Einheiten (MCU)
aufweist, wobei jede MCU-Einheit der komprimierten Bilddatenda
tei adressierbar und gesondert dekomprimierbar ist, wobei eine
MCU-Einheit Pixel-Farbwerte für zumindest einen Block von min
destens einer Farbkomponente einer Gruppe von Pixels codiert,
welche durch Blöcke in der MCU-Einheit gedeckt sind, und wobei
ein Block, wenn er komprimiert ist, zumindest einen relativen
Wert für eine Qualität mindestens eines Pixels enthält, welches
durch den Block abgedeckt ist;
einen Ausgabespeicher zum Speichern einer komprimierten Ausgabe datendatei;
eine Zeiger-Anordnung, die eine Anzahl Zeiger enthält, welche, wenn sie initialisiert sind, jeweils auf eine MCU-Einheit ent weder in dem Eingabespeicher oder in dem Ausgabespeicher zei gen;
eine Referenztabelle, welche zumindest einen Wert enthält, der für eine Umwandlung zumindest des einen relativen Werts in einen absoluten Wert für die Qualität eines Blockes verwendet ist;
eine Auswähleinrichtung, welche mit der Zeiger-Anordnung und dem Eingabespeicher verbunden ist, um komprimierte MCU-Einhei ten aus dem Eingabespeicher an Stellen zu lesen, welche durch Zeiger in der Zeiger-Anordnung angezeigt worden sind;
eine Dekomprimiereinrichtung, die mit der Auswähleinrichtung und der Referenztabelle verbunden ist, um zumindest MCU-Einheit in zumindest einem Block von Pixel-Farbwerten basierend auf dem Inhalt einer komprimierten MCU-Einheit und um zumindest einen Wert zu dekomprimieren, welcher aus der Referenztabelle gelesen ist, und
eine Bildaufbereitungseinrichtung, welche mit der Dekomprimier einrichtung verbunden ist, um Pixels einer MCU-Einheit aufzube reiten, welche durch den Dekompressor geschaffen ist, wobei die Bildaufbereitungseinrichtung auch eine Einrichtung zum Abgeben einer aufbereiteten MCU-Einheit enthält.
einen Ausgabespeicher zum Speichern einer komprimierten Ausgabe datendatei;
eine Zeiger-Anordnung, die eine Anzahl Zeiger enthält, welche, wenn sie initialisiert sind, jeweils auf eine MCU-Einheit ent weder in dem Eingabespeicher oder in dem Ausgabespeicher zei gen;
eine Referenztabelle, welche zumindest einen Wert enthält, der für eine Umwandlung zumindest des einen relativen Werts in einen absoluten Wert für die Qualität eines Blockes verwendet ist;
eine Auswähleinrichtung, welche mit der Zeiger-Anordnung und dem Eingabespeicher verbunden ist, um komprimierte MCU-Einhei ten aus dem Eingabespeicher an Stellen zu lesen, welche durch Zeiger in der Zeiger-Anordnung angezeigt worden sind;
eine Dekomprimiereinrichtung, die mit der Auswähleinrichtung und der Referenztabelle verbunden ist, um zumindest MCU-Einheit in zumindest einem Block von Pixel-Farbwerten basierend auf dem Inhalt einer komprimierten MCU-Einheit und um zumindest einen Wert zu dekomprimieren, welcher aus der Referenztabelle gelesen ist, und
eine Bildaufbereitungseinrichtung, welche mit der Dekomprimier einrichtung verbunden ist, um Pixels einer MCU-Einheit aufzube reiten, welche durch den Dekompressor geschaffen ist, wobei die Bildaufbereitungseinrichtung auch eine Einrichtung zum Abgeben einer aufbereiteten MCU-Einheit enthält.
11. Bildaufbereitungseinrichtung nach Anspruch 10, bei welcher
die Referenztabelle einen einzigen Eintrag enthält, und der
Eintrag einen konstanten Wert hält, welchen der Dekompressor zu
einem relativen Wert eines Blockes addiert, um einen Absolut
wert für die Qualität des Blockes zu finden.
12. Bildaufbereitungseinrichtung nach Anspruch 10, bei welcher
die Referenztabelle einen Eintrag pro Block in der Bilddatenda
tei enthält, und der Dekompressor einen in dem Eintrag gespei
cherten Wert zu einem relativen Wert eines Blockes addiert, um
einen absoluten Wert für die Qualität des Blockes zu finden.
13. Bildaufbereitungseinrichtung nach Anspruch 10, bei welcher
die Referenztabelle einen Eintrag pro Block in der Bilddatenda
tei enthält und der Dekompressor einen in dem Eintrag gespei
cherten Wert als einen absoluten Wert für die Qualität des
Blockes verwendet.
14. Bildaufbereitungseinrichtung nach Anspruch 10, bei welcher
die Referenztabelle, sobald sie erzeugt ist, in dem Eingabe
speicher gespeichert wird, wobei jeder Eintrag der Referenzta
belle einem Block in einer MCU-Einheit in dem Eingabespeicher
zugeordnet ist.
15. Bildaufbereitungseinrichtung nach Anspruch 14, bei welcher
die Einträge der Referenztabelle die relativen Werte jedes
Blockes in dem Eingabespeicher ersetzen.
16. Bildaufbereitungssystem, bei welchem 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, wo
bei 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:
Erzeugen einer linken Randtabelle, welche M Einträge enthält, wobei jeder Eintrag einem Gleichspannunsgwert 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 Bil des nachgeführt wird.
Erzeugen einer linken Randtabelle, welche M Einträge enthält, wobei jeder Eintrag einem Gleichspannunsgwert 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 Bil des nachgeführt wird.
17. Bildaufbereitungssystem, bei welchem 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 darge
stellt ist, welche einen Gleichspannungs-Versatzwert 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.
18. Bildaufbereitungseinrichtung, bei welcher ein volles Bild
ein Muster von Pixels aufweist, und jedes Pixel durch einen di
gitalen Wert in einer Bilddatei dargestellt ist, und wobei die
Bilddatei minimal codierte Einheiten (MCU) aufweist, wobei jede
MCE-Einheit die digitalen Werte für jedes Pixel in einer Gruppe
von Pixels darstellt, gekennzeichnet durch
einen Kompressor, um die MCE-Einheiten einer Bilddatei in kom primierte MCE-Einheiten zu komprimieren;
einen Dekompressor, um die komprimierten MCE-Einheiten in de komprimierte MCE-Einheiten zu dekomprimieren;
einen Speicher für Originalblöcke, um MCE-Einheiten aus der Bilddatei zu halten;
einen Editor zum Handhaben von Daten in den dekomprimierten MCE-Einheiten;
einen Speicher für aufbereitete Blöcke, um aufbereitete MCE- Einheiten zu halten, die sich von dem Kompressor als wieder komprimierte MCE-Einheiten ergeben, die durch den Editor aufbe reitet worden sind;
ein Array von Zeigern, um die MCE-Einheiten in dem Speicher für Originalblöcke und die wieder komprimierten, aufbereiteten MCE- Einheiten in dem Bild anzuordnen,
wobei der Editor ausgewählte dekomprimierte MCE-Einheiten schafft, wie wenn die gesamte Bilddatei dekomprimiert wurde.
einen Kompressor, um die MCE-Einheiten einer Bilddatei in kom primierte MCE-Einheiten zu komprimieren;
einen Dekompressor, um die komprimierten MCE-Einheiten in de komprimierte MCE-Einheiten zu dekomprimieren;
einen Speicher für Originalblöcke, um MCE-Einheiten aus der Bilddatei zu halten;
einen Editor zum Handhaben von Daten in den dekomprimierten MCE-Einheiten;
einen Speicher für aufbereitete Blöcke, um aufbereitete MCE- Einheiten zu halten, die sich von dem Kompressor als wieder komprimierte MCE-Einheiten ergeben, die durch den Editor aufbe reitet worden sind;
ein Array von Zeigern, um die MCE-Einheiten in dem Speicher für Originalblöcke und die wieder komprimierten, aufbereiteten MCE- Einheiten in dem Bild anzuordnen,
wobei der Editor ausgewählte dekomprimierte MCE-Einheiten schafft, wie wenn 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 true DE4428517A1 (de) | 1995-03-23 |
DE4428517C2 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 |
JP4949037B2 (ja) * | 2003-11-18 | 2012-06-06 | スカラド、アクチボラグ | ディジタル画像を処理するための方法および画像表現形式 |
US7889792B2 (en) * | 2003-12-24 | 2011-02-15 | Apple Inc. | Method and system for video encoding using a variable number of B frames |
US7869503B2 (en) | 2004-02-06 | 2011-01-11 | Apple Inc. | Rate and quality controller for H.264/AVC video coder and scene analyzer therefor |
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 |
US7986731B2 (en) * | 2004-02-06 | 2011-07-26 | Apple Inc. | H.264/AVC coder incorporating rate and quality controller |
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021891A (en) * | 1990-02-27 | 1991-06-04 | Qualcomm, Inc. | Adaptive block size image compression method and system |
EP0528642A2 (de) * | 1991-08-15 | 1993-02-24 | International Business Machines Corporation | Datenstromgenerator |
US5235430A (en) * | 1990-04-17 | 1993-08-10 | Casio Computer Co., Ltd. | Facsimile system with simplified detection of changing points to realize high speed MR coding operation |
Family Cites Families (4)
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 |
-
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
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021891A (en) * | 1990-02-27 | 1991-06-04 | Qualcomm, Inc. | Adaptive block size image compression method and system |
US5235430A (en) * | 1990-04-17 | 1993-08-10 | Casio Computer Co., Ltd. | Facsimile system with simplified detection of changing points to realize high speed MR coding operation |
EP0528642A2 (de) * | 1991-08-15 | 1993-02-24 | International Business Machines Corporation | Datenstromgenerator |
Non-Patent Citations (4)
Title |
---|
US-B.: RABBANI, Majid et al.: Digital imnage compression techniques, Bellingham, Washington USA SPIE Optical Engineering Press, 1991, S.113-121 * |
US-Z.: ARAZAKI, S. et al.: Image data com- pression by DCT with adaptive run-lenghth coding. In: IEEE Transactions on Consumer Electronics, >Nov.1991, Vol.37, No.4, S.860-866 * |
US-Z.: NAM, J.Y. et al.: Image coding using a classified DCT / VQ based on two-channel conjugate vector quantization. In: IEEE Trans- actions on Circuits and Systems for video technology, Dec.1991, Vol.1, No.4, S.325-336 * |
US-Z.: WALLACE, G.K.: The JPEG still picture compresion standard. In: IEEE Transactions on Consumer Electronics, Feb.1992, Vo..38, No.1, S.XVIII-XXXIV * |
Also Published As
Publication number | Publication date |
---|---|
US5408328A (en) | 1995-04-18 |
JP3504978B2 (ja) | 2004-03-08 |
JPH07170390A (ja) | 1995-07-04 |
DE4428517C2 (de) | 1997-01-09 |
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 | |
DE69837017T2 (de) | Zoomen mit vorbestimmten Grössen von Indexbildern | |
DE10120644B4 (de) | Bilddatenverdichtungsverfahren und -vorrichtung, welche Bilddaten separat durch Modifizieren der Farbe verdichten | |
DE3446898C2 (de) | ||
DE69730713T2 (de) | Bildkoder und -dekoder | |
DE69733007T2 (de) | Vorrichtung zur codierung und decodierung von bewegtbildern | |
DE69937785T2 (de) | Verfahren zur Selektion von Farbblockpunkten für die Blockkodierung | |
DE19983253B4 (de) | Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt | |
DE69723550T2 (de) | Kodierung und dekodierung von grafischen symbolen | |
DE69813230T2 (de) | Verfahren zur markierung eines komprimierten digitalvideosignals | |
DE19531004C2 (de) | Verfahren und Vorrichtung zur wahrnehmungsoptimierten Übertragung von Video- und Audio-Daten | |
DE69926469T2 (de) | Filterung von Bilddaten bei der Verarbeitung zusammengesetzter Dokumente | |
DE19739266B4 (de) | Verfahren und Vorrichtung zum Kodieren binärer Formen | |
DE19623318C2 (de) | Teilpixelcodierungs- und Decodierungsverfahren | |
DE69532025T2 (de) | Farbbildverarbeitungsverfahren und -Vorrichtung | |
DE10295968T5 (de) | Verbunddokumentbildkompression unter Verwendung eines Mehrfachregion-Zweischichtformats | |
EP1374559B1 (de) | Verfahren zur komprimierung und dekomprimierung von bilddaten | |
DE69934385T2 (de) | Bilddatenkompression für Verarbeitung zusammengesetzter Dokumente | |
DE69936304T2 (de) | Bereichsbasierte skalierbare bildkodierung | |
DE69918980T2 (de) | Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung | |
EP1034511B1 (de) | Verfahren zur umsetzung digitaler daten im raster einer ersten auflösung in digitale zieldaten einer zweiten auflösung | |
DE69934774T2 (de) | Videoverarbeitung in pc verwendet statistisch abgestimmte farbwürfel | |
DE19944213C1 (de) | Verfahren zum Komprimieren eines digitalen Bildes mit mehreren Bit-Ebenen | |
EP0786186B1 (de) | Segmentadaptive zweidimensionale orthogonale transformationskodierung für ein digitales fernsehsystem |
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 |