-
Rechnergestütztes Bearbeitungsverfahren für ein über eine
Anzeigeeinrichtung an einen Betrachter ausgebbares Bild Die vorliegende
Erfindung betrifft ein rechnergestütztes Bearbeitungsverfahren für ein über eine
Anzeigeeinrichtung an einen Betrachter ausgebbares Bild,
- – wobei
einem Rechner eine Bilddatei zugeführt wird,
- – wobei
vom Rechner anhand der Bilddatei eine Anzahl von Zwischenblöcken ermittelt
wird,
- – wobei
vom Rechner für
jeden der Zwischenblöcke
ein korrespondierender Pixelblock ermittelt wird,
- – wobei
die Pixelblöcke
in ihrer Gesamtheit das Bild darstellen,
- – wobei
mindestens einer der Pixelblöcke
verändert
wird,
- – wobei
vom Rechner für
jeden veränderten
Pixelblock ein korrespondierender veränderter Zwischenblock ermittelt
wird,
- – wobei
vom Rechner eine geänderte
Bilddatei ermittelt und abgespeichert wird.
-
Ein
derartiges Bearbeitungsverfahren ist beispielsweise aus der Internetseite http://www.fags.org/fags/jpeg-faq/part1/
bekannt.
-
Digitale
Bilder im JPEG-Format erfreuen sich auf Grund ihrer relativ geringen
Dateigröße insbesondere
bei Internetanwendungen großer
Beliebtheit. Auch bei den marktüblichen
Digitalkameras ist das JPEG-Format ein weit verbreitetes Speicherformat
für die
Speicherung in einem Computer.
-
Der
geringe Speicherbedarf der JPEG-Bilder bei gleichzeitig relativ
hoher Bildqualität
beruht auf dem JPEG-spezifischen Kompressionsverfahren. Dieses Kompressionsverfahren
arbeitet aber nicht vollständig
reversibel bzw. verlustfrei. Die Abweichungen vom Originalbild hängen dabei
vom Kompressionsgrad ab. Technisch bedingt ist aber auch bei einem
Kompressions grad von Null, also der höchstmöglichen Qualität, in Folge
von Quantisierungsfehlern eine Bildverschlechterung nicht völlig zu vermeiden.
Bei einem Arbeitszyklus, der aus dem Laden eines JPEG-Bildes, gegebenenfalls
einem Verändern
des Bildes, und dem anschließenden
Speichern des Bildes im JPEG-Format
besteht, entstehen daher stets Qualitätsverluste.
-
Es
sind zwar schon verlustfreie Bearbeitungsverfahren für JPEG-Bilder
bekannt. Bei diesen Bearbeitungsverfahren sind aber nur einige wenige, ganz
spezielle Bearbeitungen möglich
wie beispielsweise das Verdrehen des Bildes um ganzzahlige Vielfache
von 90° oder
ein Spiegeln des Bildes. Allgemeine Bearbeitungen sind mit diesen
Bearbeitungsverfahren hingegen nicht möglich.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein rechnergestütztes Bearbeitungsverfahren
für ein über eine
Anzeigeeinrichtung an einen Betrachter ausgebbares Bild zu schaffen,
bei dem beliebige Bearbeitungen möglich sind und dennoch die
Qualitätsverluste
gering gehalten werden.
-
Die
Aufgabe wird bei einem gattungsgemäßen Bearbeitungsverfahren dadurch
gelöst,
dass vom Rechner für
jeden veränderten
Pixelblock zwar ein korrespondierender veränderter Zwischenblock ermittelt
wird, die übrigen
Zwischenblöcke
vom Rechner aber unverändert
beibehalten werden und die geänderte
Bilddatei vom Rechner anhand der Gesamtheit der veränderten
und der unverändert
beibehaltenen Zwischenblöcke
ermittelt wird.
-
Die
Aufgabe der vorliegenden Erfindung wird ferner durch ein auf einem
Datenträger
gespeichertes Computerprogramm zur Durchführung eines derartigen Bearbeitungsverfahrens
gelöst.
Schließlich wird
die Aufgabe auch noch durch einen Rechner gelöst, der derart programmiert
ist, dass mit ihm ein derartiges Bearbeitungsverfahren ausführbar ist.
-
In
einer ersten Ausführungsform
der vorliegenden Erfindung wird vom Rechner bei der Ermittlung der
Pixelblöcke
für jeden
der Zwischenblöcke zunächst ein
korrespondierender Nachblock und dann anhand des Nachblocks der
korrespondierende Pixelblock ermittelt. In diesem Fall wird vom
Rechner bei der Ermittlung der geänderten Bilddatei für jeden veränderten
Pixelblock zunächst
ein korrespondierender veränderter
Nachblock und anhand des veränderten
Nachblocks dann der korrespondierende veränderte Zwischenblock ermittelt.
Bei dieser Vorgehensweise können
die Qualitätsverluste
besonders gering gehalten werden.
-
In
einer zweiten Ausführungsform
der vorliegenden Erfindung wird vom Rechner bei der Ermittlung der
Zwischenblöcke
zunächst
anhand der Bilddatei für
jeden Zwischenblock ein korrespondierender Vorblock und anhand des
Vorblocks dann der betreffende Zwischenblock ermittelt. In diesem
Fall wird vom Rechner bei der Ermittlung der geänderten Bilddatei für jeden
Zwischenblock, unabhängig
davon, ob es sich um einen veränderten
oder um einen unverändert
beibehaltenen Zwischenblock handelt, zunächst ein korrespondierender
veränderter
Vorblock und anhand der Gesamtheit der veränderten Vorblöcke dann
die geänderte
Bilddatei ermittelt. Bei dieser Vorgehensweise können zwar größere Fehler
auftreten als bei der ersten Ausführungsform der vorliegenden
Erfindung, dafür
ist das Verfahren flexibler handhabbar.
-
Die
Umwandlung zwischen den Zwischenblöcken einerseits und den Vorblöcken bzw.
den Nachblöcken
andererseits erfolgt vorzugsweise anhand einer für alle Zwischenblöcke gültigen Umrechnungstabelle.
Die Umrechungstabelle wird dabei in beiden Umwandlungsrichtungen
beibehalten. In der Regel ist sie sogar Bestandteil der Bilddatei.
-
Vorzugsweise
führt der
Rechner zum Ermitteln der Zwischenblöcke aus der Bilddatei eine
Huffman-Decodierung durch. Denn diese Decodierung ist verlustfrei
umkehrbar.
-
Zum
Ermitteln der Pixelblöcke
aus den Zwischenblöcken
führt der
Rechner vorzugsweise eine inverse diskrete Cosinustransformation
durch. Denn diese Transformation ist zwar nicht verlustfrei invertierbar.
Dafür ist
mit ihr ein hoher Kompressionsgrad erreichbar.
-
Wenn
die Zwischenblöcke
und die Pixelblöcke
rechteckige Blöcke
mit einer Blockbreite und einer Blockhöhe sind und sowohl die Blockbreite
als auch die Blockhöhe
Zweierpotenzen sind, ist das Verfahren besonders recheneffizient
ausführbar.
Die Blockbreite und die Blockhöhe
betragen dabei in der Regel acht oder sechzehn.
-
Ein
häufiger
Anwendungsfall der vorliegenden Erfindung ist dadurch gegeben, dass
die Bilddatei eine JPEG-Datei ist.
-
Weitere
Vorteile und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung
eines Ausführungsbeispiels
in Verbin-dung mit
den Zeichnungen. Dabei zeigen in Prinzipdarstellung
-
1 schematisch einen Rechner,
-
2 ein Ablaufdiagramm,
-
3 und 4 Schaubilder und
-
5 und 6 Ablaufdiagramme.
-
Gemäß 1 weist ein Rechner eine
Zentraleinheit 1 auf. Die Zentraleinheit 1 ist
mit Eingabeeinrichtungen 2, 3, z. B. einer Tastatur 2 und
einer Maus 3, verbunden. Mittels der Eingabeeinrichtungen 2, 3 ist
ein Betrachter 4 in der Lage, dem Rechner Eingaben vorzugeben.
Die Zentraleinheit 1 ist ferner mit Ausgabeeinrichtungen 5, 6,
z. B. einer Anzeigeeinrichtung 5 und einem Drucker 6,
verbunden. Mittels der Ausgabeeinrichtungen 5, 6 ist
der Rechner in der Lage, Ausgaben an den Betrachter 4 auszugeben.
Die Zentraleinheit 1 kann ferner über eine Netzwerkverbindung 7 mit
einem Rechnernetz 8, z. B. dem Internet, verbunden sein.
-
Der
Rechner ist mit einem Computerprogramm 9 programmiert,
das dem Rechner über
einen Datenträger 10 zugeführt wird.
Beispiele eines derartigen Datenträgers 10 sind eine
Diskette oder eine CD-ROM. Auf dem Datenträger 10 ist das Computerprogramm 9 in
(ausschließlich)
maschinenlesbarer Form hinterlegt. Auf Grund der Programmierung
mit dem Computerprogramm 9 führt der Rechner ein nachfolgend
in Verbindung mit den 2 bis 6 näher beschriebenes Bearbeitungsverfahren
für ein
Bild aus.
-
Gemäß 2 – siehe ergänzend auch 3 und 4 – wird dem
Rechner – beispielsweise über das Rechnernetz 8 – eine Bilddatei 11 zugeführt. Die
Bilddatei 11 wird vom Rechner in einem Schritt S1 in einen
Arbeitsspeicher eingelesen. Gemäß den 3 und 4 ist die Bilddatei 11 eine
JPEG-Datei. Prinzipiell könnte
die Bilddatei 11 aber auch ein anderes Datenformat aufweisen.
-
In
einem Schritt S2 führt
der Rechner zunächst
eine Huffman-Decodierung
der Bilddatei 11 durch. Er generiert dadurch – siehe 3 und 4 – Erstblöcke 12.
-
Die
Bilddatei 11 enthält – zusätzlich zu
den eigentlichen Bilddaten – einen
Header, der unter anderem eine Gesamtbreite B und eine Gesamthöhe H des
darzustellenden Bildes festlegt. Sie enthält ferner eine Umrechungstabelle 13.
Unter Heranziehen dieser Umrechnungstabelle 13 ermittelt
der Rechner in einem Schritt S3 für jeden Erstblock 12 einen
korrespondierenden Zweitblock 14. Die Umrechnungstabelle 13 enthält dabei
Quantisierungsfaktoren, die für alle
Erstblöcke 12 gültig sind.
Für jeden
der Zweitblöcke 14 ermittelt
der Rechner sodann in einem Schritt S4 durch Durchführen einer
inversen Cosinustransformation Pixelblöcke 15.
-
Jeder
Pixelblock 15 weist gemäß den 3 und 4 eine Blockbreite b und eine Blockhöhe h auf. Die
Pixelblöcke 15 sind
daher rechteckige Blöcke. Die
Blockbreite b ist vorzugsweise eine Zweierpotenz, z. B. acht oder
sechzehn. Gleiches gilt für
die Blockhöhe
h. Die Blockbreite b und die Blockhöhe h können dabei alternativ gleiche
Werte oder voneinander verschiedene Werte aufweisen. Jeder Pixelblock 15 besteht
also vorzugsweise aus 8 × 8,
8 × 16,
16 × 8
oder 16 × 16
Pixeln P. Jedes Pixel P weist dabei eine Pixeltiefe von z. B. acht
Bit auf .
-
Wie
obenstehend ausgeführt,
korrespondiert jeder Pixelblock 15 mit genau einem Zweitblock 14 und
genau einem Erstblock 12. Die obigen Aussagen sind daher
nicht nur für
die Pixelblöcke 15,
sondern auch für
die Erstblöcke 12 und
die Zweitblöcke 14 gültig.
-
Die
Pixelblöcke 15 bilden
in ihrer Gesamtheit das darzustellende Bild. Dieses Bild kann beispielsweise
in einem Schritt S5 über
die Anzeigeeinrichtung 5 an den Betrachter 4 ausgegeben
werden.
-
In
einem Schritt S6 ist es möglich,
in an sich bekannter Weise durch die Eingabe entsprechender Änderungsbefehle über die
Eingabeeinrichtungen 2, 3 das Bild und damit mindestens
einen der Pixelblöcke 15 zu ändern. In
einem Schritt S7 wird in diesem Fall erfindungsgemäß vermerkt,
welche der Pixelblöcke 15 im
Schritt S6 geändert
wurden, nunmehr also veränderte
Pixelblöcke 15' sind.
-
Im
Schritt S8 überprüft der Rechner,
ob ihm vom Betrachter 4 ein Beendigungsbefehl vorgegeben
wurde. Wenn dies der Fall ist, verzweigt er zu einem Schritt S9,
anderenfalls springt er zum Schritt S6 zurück.
-
Im
Schritt S9 überprüft der Rechner,
ob ihm vom Betrachter 4 ein Speicherbefehl zum Abspeichern
des geänderten
Bildes vor gegeben wurde. Wenn dies der Fall ist, generiert er in
einem Schritt S10 eine mit dem geänderten Bild korrespondierende
geänderte
Bilddatei 11' und
speichert sie ab, beispielsweise auf einer Festplatte 16.
Anderenfalls beendet er das Computerprogramm 9 ohne Generieren und
Abspeichern einer solchen geänderten
Bilddatei 11'.
-
Soweit
das Bearbeitungsverfahren bisher in Verbindung mit 2 beschrieben wurde, entspricht es mit
Ausnahme des Schrittes S7 den bekannten Bearbeitungsverfahren. Der
erfindungsgemäße Unterschied
besteht im Schritt S7 und in der Ausgestaltung des Schrittes S10,
die nachfolgend in Verbindung mit den 5 und 6 näher erläutert wird.
-
Gemäß 5 ist der Schritt S10 in
drei Schritte S11 bis S13 aufgeteilt. Im Schritt S11 – siehe auch 3 – wird eine diskrete Cosinustransformation
durchgeführt.
Die diskrete Cosinustransformation wird dabei aber nur für die veränderten
Pixelblöcke 15' durchgeführt. Nur
für die
veränderten
Pixelblöcke 15' wird also im
Schritt S11 ein korrespondierender veränderter Zweitblock 14' ermittelt.
Im Schritt S12 werden dann anhand der – unverändert gebliebenen – Umrechnungstabelle 13 die
korrespondierenden veränderten
Erstblöcke 12' ermittelt.
Die Ermittlung der veränderten
Erstblöcke 12' erfolgt dabei
nur bezüglich
der im Schritt S11 ermittelten veränderten Zweitblöcke 14'. Die übrigen Erstblöcke 12 werden vom
Rechner unverändert
beibehalten. Anhand der Gesamtheit der veränderten Erstblöcke 12' und der unverändert beibehaltenen
Erstblöcke 12 ermittelt der
Rechner dann durch Durchführen
einer Huffman-Codierung im Schritt S13 die geänderte Bilddatei 11' und speichert
sie z. B. auf der Festplatte 16 ab.
-
Bei
der in Verbindung mit 5 beschriebenen
Ausführungsform
der vorliegenden Erfindung entsprechen die Erstblöcke 12, 12' also den Zwischenblöcken. Die
Zweitblöcke 14, 14' sind Nachblöcke, die
einer Zwischendarstellung entsprechen, die zwi schen den Zwischenblöcken 12, 12' und den Pixelblöcken 15, 15' angenommen
wird.
-
Im
Gegensatz hierzu entsprechen bei der Ausführungsform, die nachfolgend
in Verbindung mit 6 beschrieben
wird, die Zwischenblöcke
den Zweitblöcken 14, 14'. Die Erstblöcke 12, 12' entsprechen
einem Zwischenzustand, der zwischen den Bilddateien 11, 11' und den Zwischenblöcken 14, 14' angenommen
wird.
-
Bei
der Ausführungsform
gemäß 6 wird der Schritt S11 beibehalten.
Die Schritte S12 und S13 sind hingegen durch Schritte S14 und S15
ersetzt.
-
Im
Schritt S14 werden alle Zweitblöcke 14, 14', also sowohl
die veränderten
Zweitblöcke 14' als auch die
unverändert
beibehaltenen Zweitblöcke 14, anhand
einer Umrechnungstabelle 13' in
korrespondierende veränderte
Erstblöcke 12' umgerechnet. Die
Umrechnungstabelle 13' kann
dabei mit der Umrechnungstabelle 13 identisch sein. Die
Umrechnungstabelle 13' kann
aber auch andere Werte als die Umrechnungstabelle 13 enthalten.
-
Im
Schritt S15 führt
der Rechner analog zum Schritt S13 eine Huffman-Codierung aller
veränderten
Erstblöcke 12' aus und ermittelt
so die geänderte Bilddatei 11'. Auch in diesem
Fall erfolgt im Rahmen des Schrittes S15 selbstverständlich ein
Abspeichern der geänderten
Bilddatei 11',
z. B. auf der Festplatte 16.
-
Unabhängig davon,
welche der beiden in Verbindung mit den 5 und 6 beschriebenen
Ausführungsformen
realisiert wird, ermittelt der Rechner also anhand der Bilddatei 11 eine
Anzahl von Zwischenblöcken,
nämlich
entweder die Erstblöcke 12 oder
die Zweitblöcke 14.
Für jeden
der Zwischenblöcke 12, 14 ermittelt
der Rechner einen korrespondierenden Pixelblock 15. Ferner
ermittelt der Rechner für
jeden veränderten
Pixelblock 15' einen
korrespondierenden veränderten
Zwischenblock 12', 14', während die übrigen Zwischenblöcke 12, 14 unverändert beibehalten
werden. Anhand der Gesamtheit der veränderten und der unverändert beibehaltenen Zwischenblöcke 12, 12', 14, 14' ermittelt der
Rechner dann die geänderte
Bilddatei 11' und
speichert sie ab.
-
Die
obenstehend beschriebene Vorgehensweise ist diejenige, die für Schwarz/Weiß-Dateien
angewendet wird. Bei Farbdateien ist beispielsweise eine analoge
Anwendung für
die drei Farbkomponenten Rot, Grün
und Blau möglich.
Alternativ können auch
Luminanz und Chrominanz auf diese Weise verarbeitet werden.
-
Die
vorliegende Erfindung beruht also auf dem Umstand, dass zum Erstellen
der geänderten Bilddatei 11' soweit wie
möglich
auf die ursprünglichen
Daten, also auf die unverändert
gebliebenen Zwischenblöcke 12, 14,
zurückgegriffen
wird und gegebenenfalls auch die Umrechnungstabelle 13 beibehalten
wird. Denn dadurch können
die Qualitätsverluste
auf ein unvermeidbares Minimum beschränkt werden.
-
Mittels
des erfindungsgemäßen Bearbeitungsverfahrens
können
Qualitätsverluste
beim Bearbeiten von Bildern geringer gehalten werden als bisher
im Stand der Technik möglich.
Insbesondere bei der in Verbindung mit 5 beschriebenen Vorgehensweise können Qualitätsverluste
auf die veränderten
Pixelblöcke 15' beschränkt werden.
Die unverändert
gebliebenen Pixelblöcke 15 bleiben
ohne Qualitätsverlust
erhalten.
-
Das
erfindungsgemäße Bearbeitungsverfahren
bietet besonders große
Vorteile, wenn nur kleine Bereiche des Bildes geändert werden. Ein typisches Anwendungsbeispiel
ist das nachträgliche
Wegretuschieren des sogenannten Rote-Augen-Effekts, der bei Blitzlichtaufnahmen
von Personen auftritt. Wenn hingegen größere Bereiche des Bildes bearbeitet werden,
verringern sich die Vorteile des erfindungsgemäßen Verfahrens. Auch dann arbeitet
das erfindungsgemäße Bearbeitungsverfahren
aber immer noch ebenso gut wie die Bearbeitungsverfahren des Standes
der Technik.
-
In
der Regel wird das Bild vom Betrachter 4 interaktiv verändert. Prinzipiell
ist es aber auch möglich,
dass der Rechner anhand vorbestimmter Entscheidungskriterien selbsttätig die
zu ändernden
Pixel P und die neuen Werte der Pixel P bestimmt. In diesem Fall
kann das Bearbeitungsverfahren vollautomatisch, also ohne Benutzereingaben,
ablaufen.