DE69924827T2 - Verfahren und Vorrichtung zur Verarbeitung von Bilddaten - Google Patents

Verfahren und Vorrichtung zur Verarbeitung von Bilddaten Download PDF

Info

Publication number
DE69924827T2
DE69924827T2 DE69924827T DE69924827T DE69924827T2 DE 69924827 T2 DE69924827 T2 DE 69924827T2 DE 69924827 T DE69924827 T DE 69924827T DE 69924827 T DE69924827 T DE 69924827T DE 69924827 T2 DE69924827 T2 DE 69924827T2
Authority
DE
Germany
Prior art keywords
image
coded
image areas
areas
image area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69924827T
Other languages
English (en)
Other versions
DE69924827D1 (de
Inventor
Yoav Epstein
Kirkpatrick William Norton
Hoang Nhu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE69924827D1 publication Critical patent/DE69924827D1/de
Application granted granted Critical
Publication of DE69924827T2 publication Critical patent/DE69924827T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf die Bildverarbeitung. Insbesondere bezieht sie sich auf die Manipulation digitalisierter Bilder, z.B. Drehen, Zuschneiden und Zoomen, die durchgeführt wird, bevor das Bild in einer endgültigen Form gedruckt oder angezeigt wird.
  • Hintergrund der Erfindung
  • Die Speicherung von Abbildungen und Bildern in einer computerlesbaren Form ist übliche Praxis. Scanner werden verwendet, um gedruckte Abbildungen oder graphische Druckvorlagen zu digitalisieren. Bei Digitalkameras wird Film als Medium zum Aufnehmen und Speichern von Photographien durch Flash-Speicherkarten ersetzt. Die durch Scanner, Digitalkameras und dergleichen erzeugten Datendateien können gespeichert und gesendet werden; beispielsweise per E-Mail oder indem sie in Webseiten für das Internet integriert werden.
  • Softwareprogramme übersetzen Datendateien, die Bilder darstellen, in eine Form, die auf Vorrichtungen wie z.B. einem Computermonitor oder dem LCD-Bildsucher in einer Digitalkamera angezeigt und anschließend in Form einer Druckkopie gedruckt werden kann.
  • Damit digitalisierte Bilder in großem Umfang ausgetauscht werden können und damit in großem Umfang auf dieselben zugegriffen werden kann, müssen die Bildinformationen in der Datendatei in einem vereinbarten Format gespeichert werden. Es wurden bereits viele derartige Formate entwickelt. Formate für Standbilder umfassen Bitmap, GIF, TIFF und JFIF; Formate für Laufbilder umfassen MPEG und AVI.
  • Es bedarf eines großen Umfangs an digitalem Speicher, um eine digitalisierte Photographie einer hohen Auflösung zu speichern, die aus Hunderttausenden einzelner Bildelemente, die als Pixel bekannt sind, besteht. Ein derartiger großer Speicherumfang ist notwendig, da jedes Pixel in der digitalisierten Photographie die Abwesenheit oder das Vorliegen eines Bildelements sowie unterstützender Informationen wie zum Beispiel bezüglich der Farbe und Helligkeit dieses Elements des Bildes, wenn vorhanden, darstellt. Digitalisierte Bilder werden sehr häufig in einem Zeilen- und -Spalten-Matrixformat von zumindest 1.024 Pixeln in einer Richtung (z.B. horizontal) mal 768 Pixeln in der anderen Richtung (z.B. vertikal) gespeichert, was insgesamt 786.432 Pixel für das Bild ergibt. Wenn das Bild farbig ist, werden mehrere Sätze von Informationen, die als Farbkanäle bezeichnet werden, benötigt, um sowohl die Helligkeit als auch die Farbe des Pixels aufzuzeichnen. Eine Art und Weise, Farbinformationen zu speichern, die als RGB-Format bekannt ist, verwendet getrennte Sätze für die Helligkeit von Rot, Grün und Blau, die, wenn sie zusammengemischt werden, die richtige Farbe des Pixels ergeben. Eine andere Möglichkeit, die als YCbCr-(oder YCC-)Format bekannt ist, besteht darin, Helligkeitsinformationen (oder Luminanzinformationen) in einem Satz zu speichern, und verwendet zwei Sätze, um Farbinformationen (Chrominanzinformationen) zu speichern.
  • Computerspeicher ist als eindimensionaler Block aufeinander folgender Speicherplätze, von denen jeder eine Adresse aufweist, logisch strukturiert. Die zweidimensionalen Bildinformationen werden bei diesem eindimensionalen Speicher in einer Reihenfolge, die durch das Bildformat festgelegt wird, gespeichert. Eine übliche Reihenfolge besteht darin, die Pixel in einer Zeilenreihenfolge von links nach rechts zu speichern, wobei bei der oberen Zeile des Bildes begonnen wird, dann bei der zweiten Zeile von oben von links nach rechts fortgefahren wird und diese Abfolge wiederholt wird, bis das ganze Bild gespeichert wurde.
  • Wenn digitalisierte Bilddaten in dem RGB- oder YCC-Format gespeichert werden, ist der Speicherumfang, der benötigt wird, um die Informationen für ein einziges Pixel festzuhalten, für alle Pixel derselbe, üblicherweise etwa 8 bis 12 Bits an Informationen. Da der Speicherumfang pro Pixel festgelegt ist und da die Reihenfolge, in der Pixel gespeichert werden, bekannt ist, kann ein Computerprogramm die Position eines beliebigen einzelnen Pixels in dem Speicher ohne weiteres berechnen. Manchmal werden rechteckige Pixelsätze in dem digitalisierten Bild zu einem Bildbereich gruppiert. Da die Anzahl von vertikalen und horizontalen Pixeln pro Bildbereich festgelegt ist, ist die Größe aller Bildbereiche dieselbe, und somit kann die Position eines beliebigen einzelnen Bildbereichs in dem Speicher desgleichen ohne weiteres berechnet werden. Wenn das digitalisierte Bild manipuliert werden soll, z.B. indem es gedreht, zugeschnitten oder gezoomt wird, müssen spezifische Bildbereiche in einer nicht-sequentiellen Reihenfolge positioniert werden. da die Position von Bildbereichen ohne weiteres berechnet werden kann, können die Bildbereiche auf rasche und effiziente Weise aus dem Speicher erhalten werden.
  • Jedoch weist das Speichern eines digitalisierten Bildes in dem beschriebenen Formattyp den Nachteil auf, dass ein großer Umfang an Speicher erforderlich ist. Je größer der erforderliche Speicherumfang pro Bild ist, desto geringer ist die Anzahl von Bildern, die in einer Speichervorrichtung einer gegebenen Speicherkapazität, z.B. einem Plattenlaufwerk oder der Flash-Speicherkarte in einer Digitalkamera, gespeichert werden können. Um die Anzahl von Dateien, die in einer gegebenen Speichervorrichtung gespeichert werden können, zu erhöhen, codieren viele Systeme das digitalisierte Bild, um die Bilddaten zu einer geringeren Größe zu komprimieren, bevor sie dieselben in dem Speicher speichern. Die Komprimierung transformiert die Daten, um den Speichermenge, der erforderlich ist, um das digitalisierte Bild zu halten, zu verringern. Eine üblicherweise verwendete Komprimierungstechnik, die als Variable-Länge-Codierung bzw. Entropiecodierung bekannt ist, führt dazu, dass die Bildbereiche nicht mehr dieselbe Größe aufweisen. Folglich kann die Position einzelner Bildbereiche nicht mehr berechnet werden, und es kann nicht auf eine nicht-sequentielle Weise auf Bildbereiche zugegriffen werden. Um einen gewünschten Bildbereich zu finden, muss das Bild vom Beginn des Bildes an bitweise sequentiell decodiert werden, bis der gewünschte Bildbereich lokalisiert wird.
  • Fachleuten sind mehrere Techniken zum Zugreifen auf einzelne Bildbereiche in einem digitalisierten Bild, das unter Verwendung der Entropiecodierung gespeichert wird, bekannt. Ein bekanntes Verfahren dekomprimiert die gesamte Bilddatei Bereich um Bereich in einen Pufferspeicher, wobei die Bildbereiche erneut zu einer festgelegten Größe vergrößert werden, so dass die Position von Bereichen ohne weiteres berechnet werden kann. Ein Nachteil dieses Verfahrens besteht darin, dass ein Pufferspeicher benötigt wird, der groß genug ist, um das gesamte Bild in einem nicht-komprimierten Format festzuhalten. Die Hinzufügung eines Speicherelements oder die Erhöhung der Größe eines vorhandenen Speicherelements, um große, nicht-komprimierte Bilddateien unterzubringen, kann die Kosten eines Druckers, einer Digitalkamera oder einer anderen Art von Computer-Peripheriegerät, das Bildmanipulationen an komprimierten Dateien durchführt, beträchtlich erhöhen.
  • Das Dokument US-A-5408328 beschreibt ein virtuelles Komprimiertes-Bild-Bearbeitungssystem, das ein typisches Bildkomprimierungsschema verwendet und jeder der vielen MCUs in einer komprimierten Bilddatei (MCU = minimum coded unit, minimalcodierte Einheit) ein Zeigerarray bereitstellt.
  • Ein weiteres bekanntes Verfahren scannt die Datei sequentiell, wobei Bereiche gezählt und verworfen werden, bis der Gewünschte angetroffen wird. Dieses Verfahren erfordert keinen großen Puffer, sondern erfordert stattdessen eine unverhältnismäßig lange Verarbeitungszeit, da dieses Ver fahren von dem Beginn der Datei an für jeden zu verarbeitenden Bildbereich wiederholt wird. Um die Bildmanipulation innerhalb eines akzeptablen Zeitraums abzuschließen, kann ein leistungsfähigerer Prozessor erforderlich sein, als er andernfalls nötig wäre, was die Kosten des Produkts ebenfalls beträchtlich erhöhen kann.
  • Ein weiteres bekanntes Verfahren speichert Positionsinformationen für die Bildbereiche vor einer Komprimierung zusammen mit den Bildbereichen selbst in der Datendatei. Jedoch führt ein Aufnehmen dieser zusätzlichen Informationen in die Bilddatei zu einer Vergrößerung und, was noch wichtiger ist, zu einem kundenspezifischen Bilddateiformat, das mit Industriestandards nicht mehr vereinbar ist. Dadurch wird verhindert, dass eine Vorrichtung, die dieses Verfahren verwendet, Dateien manipuliert, die in einem Standarddateiformat gespeichert sind, und dadurch wird der Austausch digitalisierter Bilder mit anderen blockiert.
  • Aus dem Vorstehenden ergibt sich, dass immer noch ein Bedarf an einer Möglichkeit besteht, auf einzelne Bereiche von Bildinformationen, die in einem entropiecodierten Format gespeichert sind, beliebig zuzugreifen, ohne dass ein großer Pufferspeicher, übermäßige Verarbeitungszeit oder -leistung oder die Verwendung eines nicht-standardmäßigen Bilddateiformat notwendig sind.
  • Zusammenfassung der Erfindung
  • Bei einem bevorzugten Ausführungsbeispiel umfasst eine Bildverarbeitungsvorrichtung einen Vorscanner, der Einzelne einer Mehrzahl codierter Bildbereiche, die in einem Datenbitstrom von digitalen Informationen eingebettet sind, sequentiell erfasst, und einen Decodierer, der zumindest manche der Erfassten der Mehrzahl codierter Bildbereiche, die vorübergehend gespeichert wurden, decodiert. Gemäß dem neuartigen Verarbeitungsverfahren der vorliegenden Erfindung, wie es in den beigefügten Patentansprüchen wie es in den beigefügten Patentansprüchen definiert ist, speichert der Vorscanner lediglich Positionsinformationen bezüglich eines ersten codierten Bildbereichwortes für jeden der Bildbereiche in dem digitalen Bild, das zu Bildmanipulationszwecken verarbeitet werden soll. Die vorübergehend gespeicherten Positionsinformationen werden durch den Decodierer auf nicht-sequentielle Weise selektiv wiedergewonnen und anschließend zu Zwecken einer Bildmanipulation gemäß herkömmlichen Bildmanipulationstechniken decodiert. Kurz gesagt lokalisiert und decodiert das neuartige Verfahren lediglich diese Bildbereiche, die bezüglich eines Bildmanipulationsprozesses von Interesse sind. Arten der Bildmanipulation umfassen ein Drehen, Zuschneiden oder Zoomen des Bildes. Für jeden Farbkanal in dem digitalisierten Bild können zusammen mit den Positionsinformationen optional Koeffizienten gespeichert werden, die ein Decodieren von Bildbereichen unterstützen, wenn auf nicht-sequentielle Weise auf dieselben zugegriffen wird. Auf Bildbereiche, für die keine Positionsinformationen gespeichert sind, kann auf effiziente Weise zugegriffen werden, indem auf einen vorherigen Bildbereich, für den Positionsinformationen gespeichert sind, auf nicht-sequentielle Weise zugegriffen wird und indem anschließend auf nachfolgende Bildbereiche sequentiell zugegriffen wird, bis der interessierende Bereich lokalisiert ist.
  • Bei einem weiteren bevorzugten Ausführungsbeispiel der vorliegenden Erfindung, wie sie durch die beigefügten Patentansprüche definiert ist, umfasst ein Bildverarbeitungssystem eine Bildverarbeitungsvorrichtung, die zwischen eine Datenbitstromquelle und eine Ausgabesichtungsanordnung gekoppelt ist. Die Bildverarbeitungsvorrichtung scannt sequentiell den durch die Datenbitstromquelle vorgesehenen Bitstrom, um Daten zu lokalisieren, die komprimierte Bildbereiche in einem digitalisierten Bild, das an der Ausgabesichtungsanordnung g angezeigt werden kann, angeben. Die Bildverarbeitungsvorrichtung speichert vorübergehend Positionsinformationen, die die Position jedes Bildbereichs in dem Datenbitstrom identifizieren, und gewinnt anschließend Ausgewählte der gespeicherten Positionsinformationen wieder, um die Bilddaten, die den wiedergewonnenen Informationen zugeordnet sind, vollständig zu decodieren, um ein manipuliertes Bild über die Ausgabesichtungsanordnung anzuzeigen oder zu drucken. Die Bildverarbeitungsvorrichtung umfasst eine Bildrestrukturierungsvorrichtung, die die decodierten Bildbereiche unter der Steuerung eines Bildverarbeitungs-Leitprogramms, das die zu decodierenden Bildbereiche und den durchzuführenden Bildmanipulationsvorgang bestimmt, manipuliert.
  • Andere Aspekte und Vorteile der vorliegenden Erfindung, die durch die beigefügten Patentansprüche definiert wird, ergeben sich aus der folgenden ausführlichen Beschreibung, die in Verbindung mit den beiliegenden Zeichnungen zu sehen ist, die die Prinzipien der Erfindung beispielhaft veranschaulichen. Allein die Patentansprüche, nicht die vorstehende Zusammenfassung oder die folgende ausführliche Beschreibung, definieren die Erfindung.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines Bildverarbeitungssystems, das die vorliegende Erfindung verkörpert.
  • 2 ist ein Blockdiagramm einer neuartigen Bildverarbeitungsvorrichtung, die bei dem Bildverarbeitungssystem der 1 eingesetzt wird.
  • 3 ist ein Flussdiagramm eines generischen Algorithmus für einen Vorscan-Vorgang gemäß der vorliegenden Erfindung.
  • 4 ist eine Darstellung eines digitalisierten Bildes, das die in der Vorscan-Tabelle gespeicherten Bildbereiche mittels des Betriebs des Vorscan- Algorithmus der 3 oder der 6 beispielhaft angibt.
  • 5 ist ein detaillierteres Flussdiagramm, das beschreibt, wie der Test in Bezug darauf, ob Positionsinformationen für einen bestimmten Bildbereich in 3 gespeichert werden sollen, durchgeführt wird.
  • 6 ist ein Flussdiagramm eines spezifischen Vorscan-Algorithmus des allgemeinen Typs der 3, der mit Bildern verwendet wird, die in einem JPEG-Format-Bitstrom gespeichert sind.
  • 7 veranschaulicht beispielhaft den Effekt des Ausführens des Algorithmus der 6, um eine Vorscan-Tabelle für einen JPEG-Format-Bitstrom zu erstellen.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Unter Bezugnahme auf die Zeichnungen veranschaulicht 1 ein Bildverarbeitungssystem 6, das gemäß der vorliegenden Erfindung aufgebaut ist. Das System 6 verarbeitet codierte Bitstromdaten 8, die ein digitalisiertes Bild darstellen, von einer Bitstromdatenquelle, um Bildmanipulationen zu ermöglichen, deren Ergebnisse unter Verwendung einer Bildausgabeanordnung gesichtet, gedruckt oder gesendet werden können. Das System 6 enthält eine zwischen die Bitstromquelle und die Sichtungsanordnung gekoppelte Bildverarbeitungsvorrichtung 10 zum Annehmen der codierten Bitstromdaten 8, zum Manipulieren des Bildes gemäß einem neuartigen Verfahren der vorliegenden Erfindung auf schnelle und effiziente Weise und zum Ausgeben der manipulierten Bilddaten 14.
  • Mittels einer Ausgewählten einer Vielzahl von Quellen werden die codierten Bitstromdaten 8 dem Vorscanner 210 der Vorrichtung 10 geliefert. Eine Netzwerkschnittstelle 105 kann über elektrische Verbindungen, die LAN, USB und andere serielle und parallele Verbindungen wie z.B. RS-232 oder Centronics umfassen, jedoch nicht auf diese beschränkt sind, und über drahtlose Verbindungen, die Infrarot oder HF umfassen, jedoch nicht auf diese beschränkt sind, ein zuvor erfasstes Bild von einem Computernetzwerk 110 an die Vorrichtung 10 liefern. Eine Massenspeicherungsschnittstelle 115, die stationäre oder entfernbare Massenspeicherungsmedien 120, einschließlich, aber nicht beschränkt auf, Magnetplatten oder -band, magnetooptische Platten und elektrische Speicherkarten, annimmt, kann der Vorrichtung 10 die Bitstromdaten 8 liefern. Eingabe-/Ausgabevorrichtungen wie z.B. eine Scanmaschine 125, ein photographisches Teilsystem 130 oder ein Faksimile-Empfänger 135, die mit der Vorrichtung 10 gekoppelt sind, können den Bitstrom 8 erzeugen.
  • Das manipulierte Bild 14 wird an eine Eingangs/Ausgangsvorrichtung gesendet, die mit der Bildverarbeitungsvorrichtung 10 gekoppelt ist, einschließlich, aber nicht beschränkt auf, eine Druckmaschine 140, eine Anzeigevorrichtung 145 oder einen Faksimile-Sender 150. Die Druckmaschine 140 ermöglicht die Erstellung einer Druckkopie des manipulierten digitalisierten Bildes 14 nach der Bildverarbeitung. Die Druckmaschine 140 kann eine beliebige Drucktechnologie aufweisen, einschließlich Laserstrahl, Tintenstrahl, Thermodrucken, Bubble-Drucken, piezoelektrisches Drucken, Farbstoff-Sublimation und dergleichen. Die Anzeigevorrichtung 145 wird verwendet, um das manipulierte digitalisierte Bild 14 nach der Bildverarbeitung anzuzeigen. Die Anzeigevorrichtung 145 kann ein Computermonitor, eine LCD-Anzeige, ein Flachbildschirm oder dergleichen sein.
  • Das Bildverarbeitungssystem 6 kann als Computersystem oder als Peripheriegerät, das einen Teilsatz der in 1 gezeigten Systemelemente beinhaltet, implementiert sein. In Betracht gezogene Peripheriegeräte, die die vorliegende Erfindung verkörpern, umfassen einen Drucker, der eine belie bige der zuvor aufgeführten Drucktechnologien beinhaltet; eine Alles-In-Einem-Einheit, die eine Kombination von Druck-, Scan-, Fax- und Kopierfähigkeiten liefert; und eine Digitalkamera. Eingabevorrichtungen wie z.B. ein Tastenfeld oder eine Zeigevorrichtung können in ein Peripheriegerät integriert sein, um das zu manipulierende digitalisierte Bild und den durchzuführenden Manipulationsvorgang zu spezifizieren. Peripheriegeräte wie z.B. die Digitalkamera können eine integrierte elektronische Anzeige zum Anzeigen des Bildes umfassen.
  • Unter ausführlicherer Bezugnahme auf die Bildverarbeitungsvorrichtung 10, wie sie in 2 gezeigt ist, umfasst die Bildverarbeitungsvorrichtung 10 allgemein einen Vorscanner 210, der den Bitstrom 8 vorverarbeitet, um Informationen zu identifizieren, die die Bildverarbeitungsvorgänge ermöglichen. Eine mit dem Vorscanner 210 gekoppelte Speichervorrichtung 215 speichert vorübergehend die Informationen, die während des Vorscan-Vorgangs identifiziert werden, in einer Vorscan-Tabelle 225. Ein Decodierer 220 gewinnt die in der Vorscan-Tabelle 225 gespeicherten Informationen wieder, um einzelne codierte Bereiche des Bildes in dem Bitstrom 8, die anhand des Bildverarbeitungsvorgangs verarbeitet werden, auf effiziente Weise zu lokalisieren und zu decodieren.
  • Bevor die Funktionsweise der Bildverarbeitungsvorrichtung 10 ausführlicher erörtert wird, kann es vorteilhaft sein, das Format des Datenbitstroms 8 kurz erneut zu betrachten, um die Vorteile der vorliegenden Erfindung zu verstehen. Diesbezüglich wird der Datenbitstrom 8 in einem komprimierten codierten Datenformat gesendet, um eine rasche Übertragung von Bildinformationen zu ermöglichen und um den Speicherraum, der benötigt wird, um dieselben festzuhalten, zu minimieren. Es gibt verschiedene Arten von Datencodierungsschemata, die in modernen Kommunikations- und Informationssystemen, z.B. dem Bildverarbeitungssystem 6, eingesetzt werden. Viele Codierungsschemata verwenden eine Entropieco dierungstechnik als eine Möglichkeit, die Größe der Daten zu komprimieren. Derartige Codierungsschemata umfassen Huffman-Codierung, adaptive Huffman-Codierung, Shannon-Fano-Codierung, arithmetische Codierung, Lauflängencodierung, Abwandlungen einer Lempel-Ziv-Codierung und andere. Diese Codierungsschemata oder -verfahren sowie die zugeordneten Decodierungsschemata sind Fachleuten hinreichend bekannt und in verschiedenen hinreichend bekannten Veröffentlichungen beschrieben. Da die Codierungs- und Decodierungsschemata hinreichend bekannt sind, wird keines im Folgenden ausführlich beschrieben. Für die vorliegende Erörterung genügt es, festzuhalten, dass die Art der Codierung häufig durch das Bildformat, in dem das Bild gespeichert wird, definiert wird, und somit besteht keine Absicht, den Schutzumfang der vorliegenden Erfindung auf ein bestimmtes Codierungs- und Decodierungsschema zu beschränken; die vorliegende Erfindung ist allgemein auf jegliche der oben erwähnten Arten von Codierungs- und Decodierungsschemata anwendbar.
  • Unter ausführlicherer Bezugnahme auf den Bilddatenbitstrom 8 stellen die in demselben enthaltenen Daten einen oder mehrere codierte Bildbereiche dar, die zusammengenommen das ganze zu verarbeitende digitalisierte Bild darstellen. Jeder codierte Bildbereich besteht aus einer Anzahl codierter Codewörter. Da der Bitstrom 8 unter Verwendung einer Entropiecodierung komprimiert wird, weisen die Codewörter und somit die Bildbereiche keine einheitliche Größe auf, und somit kann die Position in dem Bitstrom 8 eines jeglichen bestimmten codierten Bildbereichs nicht lediglich auf der Basis der Reihenfolge der Bildbereiche in dem Bitstrom 8 berechnet werden. Diesbezüglich verwenden bekannte Systeme des Standes der Technik herkömmliche Prozesse, um den gesamten Bitstrom 8 sequentiell zu decodieren, um jeden Bildbereich in einer decodierten und somit nicht-komprimierten Form zu speichern. Obwohl dieses Schema die Bestimmung der Position jedes Bildbereichs ermöglicht, geschieht dies zum Preis eines großen Speicherumfangs und einer übermäßig langen Verarbeitungszeit, was beides teuer ist.
  • Nun werde die Funktionsweise des Vorscanners 210 ausführlicher betrachtet. Der Vorscanner 210 vorverarbeitet Bitstrominformationen, indem er den Bitstrom 8 von seinem Anfang an sequentiell decodiert, um jeden einzelnen codierten Bildbereich zu identifizieren und zu lokalisieren. Diesbezüglich extrahiert der Vorscanner 210 Bitstrompositionsinformationen für Bezeichnete der codierten Bildbereiche, wodurch die Positionsinformationen in der Vorscan-Tabelle 225 gespeichert werden. Positionsinformationen umfassen üblicherweise einen Versatz in den Bitstrom 8, der die Anfangsposition in dem Bitstrom 8 des codierten Bildbereichs angibt. Der Vorscanner 210 speichert keine ganzen decodierten Bildbereiche.
  • Die bezeichneten codierten Bildbereiche, für die Bitstrompositionsinformationen gespeichert werden, können alle Bildbereiche in dem Bitstrom 8 umfassen, stellen jedoch üblicherweise lediglich einen Teilsatz derselben dar. Dies ist vorzuziehen, da ein Speichern von Positionsinformationen für weniger als alle Bildbereiche den für die Vorscan-Tabelle 225 erforderlichen Speicherumfang verringert, während gemäß der vorliegenden Erfindung immer noch auf effiziente Weise auf Bildbereiche zugegriffen werden kann, für die keine Positionsinformationen gespeichert werden. Somit kann die Größe der Vorscan-Tabelle 225 gegen die Effizienz eines Zugriffs auf codierte Bildbereiche abgewogen werden. Der Vorscan-Vorgang ist abgeschlossen, wenn der gesamte Bitstrom 8 vorverarbeitet wurde.
  • Nun wird der Vorscanner 210 ausführlicher betrachtet. Der Vorscanner 210 kann entweder in Hardware, beispielsweise durch eine anwendungsspezifische integrierte Schaltung, oder in Firmware, um durch einen Mikroprozessor oder eine Mikrosteuerung ausgeführt zu werden, implementiert sein. Dementsprechend ist die folgende Beschreibung von Firmware lediglich ein Implementierungsbeispiel und soll nicht den Schutzumfang der vorliegenden Erfindung einschränken.
  • Unter Bezugnahme auf 3 ist eine Softwareimplementierung des Vorscanners 210 veranschaulicht. Das Vorscan-Verfahren beginnt bei Schritt 310, indem das erste Codewort von dem Bitstrom 8 eingeholt wird. Wenn das Codewort das Erste ist, das zu einem Bildbereich gehört (Schritt 320), und wenn der Bildbereich ein Bildbereich ist, der zum Aufzeichnen benannt ist (Schritt 330), werden bei Schritt 340 Positionsinformationen in der Vorscan-Tabelle 225 gespeichert. Wenn entweder das Codewort nicht das Erste in einem Bildbereich ist oder wenn der Bildbereich nicht zum Aufzeichnen benannt ist, wird zu diesem Zeitpunkt nichts in der Vorscan-Tabelle 225 gespeichert. Wenn in dem Bitstrom 8 noch Codewörter verbleiben (Schritt 350), wird bei Schritt 360 das nächste Codewort erhalten, und das Verfahren geht mit diesem nächsten Codewort zu Schritt 320 über.
  • Wie eine Implementierung der vorliegenden Erfindung die erforderliche Größe der Speichervorrichtung 215 verringert, indem sie Positionsinformationen lediglich für benannte Bildbereiche speichert, ist in 4 beispielhaft veranschaulicht. Ein digitalisiertes Bild 400 besteht aus einer Mehrzahl einzelner Bildbereiche. Jeder einzelne Bildbereich, z.B. ein Bereich 402, stellt einen Satz von Pixeln in dem digitalisierten Bild dar. In einem nicht- komprimierten Format weisen die Bildbereiche eine einheitliche Größe auf. Die Bildbereiche sind in einem Zeilen- und -Spalten-Format logisch organisiert, um das ganze Bild zu bilden. Jeder Bildbereich ist in dem Bitstrom 8 in einem komprimierten Format in einer von links nach rechts verlaufenden Reihenfolge für jede Zeile gespeichert, wobei in dem obersten linken Bereich, der mit „al" 405 benannt ist, begonnen wird. Die Spalten schraffierter Bereiche (Spalten 1, 5 und 9) 410 stellen diejenigen Bildbereiche dar, für die Positionsinformationen in der Vorscan-Tabelle 225 gespeichert sind. Ein effizienter Zugriff erfordert, dass Positi onsinformationen für alle Bildbereiche in einer Spalte gespeichert werden; mit anderen Worten muss die Spaltenposition der Bildbereiche, für die Positionsinformationen gespeichert werden, für alle Zeilen identisch sein. Zusätzlich müssen sich alle Bildbereiche in der äußersten linken Spalte (Spalte 1) unter den Gespeicherten befinden.
  • Nun wird ein beispielhafter selektiver Positionsinformations-Speicherungsalgorithmus zum Ermöglichen einer Positionierung gewünschter Bildinformationen betrachtet. Der Vorscanner 210 erzielt dieses Muster einer Positionsinformationsspeicherung, indem er die Position jedes ersten Bildbereichs in einer Zeile (die Spalte 1 ist) speichert und anschließend eine Anzahl von Bildbereichen ohne Speichern überspringt. Wenn der erste Bildbereich in der nächsten Zeile während des Überspringens erfasst wird, werden dessen Positionsinformationen gespeichert; andernfalls werden Positionsinformationen für den Bildbereich, zu dem gesprungen wurde, gespeichert. Nachdem jede Positionsinformation gespeichert wurde, beginnt das Überspringen erneut. Die Anzahl von übersprungenen Bildbereichen kann entweder eine vorbestimmte Anzahl sein oder aus einer in einer Reihenfolge vorliegenden Sequenz ausgewählt werden, die immer dann von vorne beginnt, wenn der erste Bildbereich in der nächsten Zeile erfasst wird.
  • Eine Softwareimplementierung des selektiven Positionsinformations-Speicherungsalgorithmus, der soeben beschrieben wurde, ist in 5 gezeigt. Schritte 510 bis 540 beschreiben die Einzelheiten dessen, wie Schritt 330, der generisch die Entscheidung, ob Positionsinformationen gespeichert werden sollen oder nicht, angibt, durchgeführt wird. Wenn sich der Bildbereich am Anfang einer Zeile befindet (Schritt 510) oder wenn genügend Bereiche übersprungen wurden (Schritt 520), wird die Anzahl der Überspringungen zurückgesetzt (Schritt 530), und die Positionsinformationen werden über den Geh-Zu-Schritt 532 in der Vorscan-Tabelle 225 gespeichert. In allen anderen Fällen wird die Anzahl der Überspringungen inkrementiert 540, und die Positionsinformationen werden nicht über den Geh-Zu-Schritt 542 gespeichert.
  • Der Inhalt der für einen Bildbereich gespeicherten Positionsinformationen kann von dem zum Speichern des digitalisierten Bildes verwendeten komprimierten Bildformat abhängen. Ein übliches Format verwendet den JPEG-Komprimierungsstandard, der Fachleuten hinreichend bekannt ist; eine Erläuterung desselben findet sich bei „The JPEG Still Picture Compression Standard" von Gregory K. Wallace, das in Communications of the ACM, April 1991, veröffentlicht wurde. In der JPEG-Terminologie wird ein codierter Bildbereich als minimalcodierte Einheit (bzw. MCU) bezeichnet, und üblicherweise stellt er einen Acht-Mal-Acht-Block von Pixeln dar. Zusätzlich zu den komprimierten Pixeln enthält jede minimalcodierte Einheit ferner einen Koeffizientenwert für jeden Farbkanal, der auf den Koeffizientenwert des entsprechenden Farbkanals der vorherigen minimalcodierten Einheit bezogen ist. Der Zweck der Verwendung von relativen Koeffizienten besteht darin, die Größe des Bitstroms 8 zu verringern. Da auf minimalcodierte Einheiten in dem Bitstrom 8 auf nicht-sequentielle Weise zugegriffen werden kann, berechnet der Vorscanner 210 einen absoluten Koeffizientenwert für jeden Farbkanal der minimalcodierten Einheit und speichert ihn in der Vorscan-Tabelle 225. Dies eliminiert jegliche Abhängigkeit von vorherigen minimalcodierten Einheiten in dem Bitstrom 8. Der berechnete absolute Koeffizientenwert ist die Summe der relativen Koeffizientenwerte für alle vorherigen minimalcodierten Einheiten in dem Bitstrom 8.
  • Nachdem die Vorscan-Tabelle 225 erstellt und gespeichert wurde, wird sie seitens des Decodierers 220 verwendet, um spezifische codierte Bildbereiche ohne das Erfordernis, den Bitstrom 8 sequentiell erneut zu verarbeiten, zu lokalisieren und zu decodieren. Um die Vorteile, die die Vorscan- Tabelle 225 liefert, zu verstehen, betrachte man, wie die Bildverarbeitung durchgeführt wird.
  • Das Erstellen eines manipulierten Bildes besteht üblicherweise aus vielen sequentiellen Bildmanipulationsvorgängen. Veranschaulichenderweise, und nicht einschränkenderweise, sei angenommen, dass eine digitalisierte Photographie unter Verwendung eines Bildverarbeitungssoftwarepakets, das an einem Personal-Computer arbeitet, gedreht und zugeschnitten werden soll. Nachdem das zu verarbeitende Bild ausgewählt wurde, wird es gemäß dem vorliegenden Verfahren vorgescannt, um die codierten Bildbereiche zu lokalisieren. Dann muss es mindestens zweimal manipuliert werden: einmal, um es zu drehen, und ein weiteres Mal, um es zuzuschneiden. Häufig können diese Vorgänge auf iterative Weise durchgeführt werden, beispielsweise bis die Bedienperson überzeugt ist, dass sie den besten Zuschnitt gewählt hat. Alternativ dazu kann das Bild zuerst so zugeschnitten werden, dass es lediglich einen kleineren Abschnitt des ursprünglichen Bildes enthält, bevor an diesem kleinen Abschnitt eine weitere Manipulation, z.B. eine Drehung, des Bildes durchgeführt wird. Um ein Bild zu drehen, zuzuschneiden oder zu zoomen, werden die Bildbereiche in einer Reihenfolge verarbeitet, die sich von derjenigen, in der sie in dem Bitstrom 8 vorliegen, unterscheidet, so dass ein effizienter Zufallszugriff spezifizierter codierter Bildbereiche erforderlich ist, wenn die Bildverarbeitung auf effiziente Weise erfolgen soll. Wenn die Bildmanipulation gemäß der vorliegenden Erfindung durchgeführt wird, wird das sequentielle Vorscannen des gesamten digitalisierten Bildes lediglich einmal durchgeführt. Von da an verwendet jeder Bildmanipulationsvorgang die in der Vorscan-Tabelle 225 gespeicherten Positionsinformationen, um ausgewählte Bildbereiche in dem Bitstrom 8 auf effiziente Weise zu lokalisieren und zu decodieren und um den geforderten Bildmanipulationsvorgang an den betroffenen Bildbereichen durchzuführen.
  • Um einen ausgewählten codierten Bildbereich zu lokalisieren und zu decodieren, gewinnt der Decodierer 220 die Bitstrompositionsinformationen für den entsprechenden codierten Bildbereich von der Vorscan-Tabelle 225 wieder. Wenn der ausgewählte Bildbereich einer ist, für den Positionsinformationen gespeichert wurden, verwendet der Decodierer 220 die Bitstrompositionsinformationen, um die Position in dem Bitstrom 8 zu bestimmen, an der die codierten Bildbereichsdaten beginnen, erhält die codierten Bildbereichsdaten von dem Bitstrom 8, decodiert sie zu decodierten Bildbereichsdaten und speichert anschließend die decodierten Bildbereichsdaten in einen Bildspeicher 250. Nachdem sie gespeichert wurden, können die decodierten Bildbereichsdaten mittels nachfolgender Vorgänge manipuliert werden, entweder alleine oder in Kombination mit den Daten von anderen decodierten Bildbereichen.
  • Wenn der zu lokalisierende codierte Bildbereich nicht einer ist, für den Positionsinformationen in der Vorscan-Tabelle 225 gespeichert wurden, ist ein zusätzlicher Schritt erforderlich. In diesem Fall bestimmt die Bildverarbeitungsvorrichtung 10 ausgehend von der Abfolge, in der Zeilen und Spalten von Bildbereichen in dem Bitstrom 8 gespeichert sind, zunächst den nächstliegenden codierten, in der Vorscan-Tabelle 225 gespeicherten Bildbereich, der dem Bildbereich, der in dem Bitstrom 8 lokalisiert werden soll, vorausgeht. Der nächstliegende Bildbereich wird direkt lokalisiert, und anschließend wird der Bitstrom 8 von diesem Punkt an sequentiell gescannt, bis der gewünschte Bildbereich lokalisiert und decodiert wurde.
  • Um auf den Bildbereich c8 der 4, für den keine Positionsinformationen in der Vorscan-Tabelle 225 gespeichert sind, zuzugreifen, identifiziert die Vorrichtung 10, zur Veranschaulichung, einen Bildbereich c5 als den Nächstliegenden Vorausgehenden, für den Positionsinformationen gespeichert sind. Der Decodierer 220 lokalisiert den Bildbe reich c5 direkt in dem Bitstrom und scannt Bildbereiche c6 und c7 sequentiell, um den Bildbereich c8 zu lokalisieren.
  • Wenn die Vorrichtung 10 nun noch ausführlicher betrachtet wird, so enthält die Bildverarbeitungsvorrichtung 10 ferner einen Bildmanipulator 255, der mit der Speichervorrichtung 215 gekoppelt ist. Der Bildmanipulator 255 manipuliert den in dem Bildspeicher 250 gespeichert Bildbereich bzw. die in dem Bildspeicher 250 gespeicherten Bildbereiche, um manipulierte Bilddaten 14 als seine Ausgabe zu erzeugen. Die Vorrichtung 255 spricht auf einen Bildverarbeitungsbefehl an, der durch ein Bildverarbeitungs-Leitprogramm 270 geliefert wird. Mögliche Bildmanipulationsvorgänge umfassen, sind aber nicht beschränkt auf, ein Drehen eines rechteckigen Abschnitts des digitalisierten Bildes um ein Vielfaches von 90 Grad, ein Zuschneiden des Bildes auf die Abmessungen des rechteckigen Abschnitts des digitalisierten Bildes oder ein Zoomen des rechteckigen Abschnitts des digitalisierten Bildes auf verschiedene Abmessungen. Die Algorithmen, anhand derer digitalisierte Bilder decodiert und anschließend gedreht, zugeschnitten oder gezoomt werden, sind Fachleuten bekannt und werden in dem vorliegenden Dokument nicht näher erörtert.
  • Das Bildverarbeitungs-Leitprogramm 270 bestimmt die Art der durchzuführenden Bildmanipulationsbefehle und identifiziert die codierten Bildbereiche, die den zu manipulierenden Abschnitt des digitalisierten Bildes umfassen. Das Leitprogramm 270 kommuniziert dem Decodierer 220 die Identifizierer für die Bildbereiche, die lokalisiert und decodiert werden sollen, und nachdem diese Bereiche durch den Decodierer 220 decodiert und in dem Bildspeicher 250 gespeichert wurden, sendet das Leitprogramm 270 die Bildmanipulationsbefehle an die Bildmanipulationsvorrichtung 255, um die gewünschte Bildmanipulation zu bewerkstelligen.
  • Obwohl der Bitstrom 8 in Bildbereichen codiert wird, die üblicherweise einen Block von Pixeln umfassen, fallen die Grenzen des zu verarbeitenden Bereichs des digitalen Bildes eventuell nicht mit codierten Bildbereichsgrenzen zusammen. In diesem Fall identifiziert die Bildverarbeitungsvorrichtung 10 einen ersten rechteckigen Satz codierter Bildbereiche, der alle in den Grenzen enthaltenen Pixel umfasst. Ferner kann in vielen Fällen die erste Spalte jeder Zeile in dem ersten Satz von codierten Bildbereichen Bereiche darstellen, für die keine Informationen in der Vorscan-Tabelle 225 gespeichert sind. Falls dies der Fall ist, wird ein zweiter rechteckiger Satz von codierten Bildbereichen, der den ersten Satz umfasst, identifiziert, so dass die erste Spalte jeder Zeile in dem zweiten Satz ein codierter Bildbereich ist, für den eine Position gespeichert wurde. Folglich wird ein etwas größerer Bereich des digitalisierten Bildes als der durch die ursprünglichen Grenzen Festgelegte verarbeitet.
  • Nun betrachte man einen weiteren Vorscan-Algorithmus 600 (6) zum Implementieren des Vorscanners 210. Wie Fachleuten bekannt ist, wird bei Implementierungen des Standes der Technik der Minimalcodierte-Einheit-Bitstrom eines JPEG-Bildes durch einen Entropiedecodierer, der eine anfängliche Decodierung jedes codierten Bildbereichs lokalisiert und durchführt, sequentiell gescannt. Anschließend wird jeder Bildbereich weiter decodiert, indem er zuerst dequantisiert wird und indem anschließend eine inverse diskrete Cosinus-Transformation (IDCT) durchgeführt wird, die zu dem dekomprimierten digitalisierten Bild führt. Gemäß der vorliegenden Erfindung ist, nachdem der Vorscan-Vorgang durchgeführt wurde, ein sequentielles Scannen für jeglichen codierten Bildbereich, für den Positionsinformationen mittels des Vorscanners 210 in der Vorscan-Tabelle 225 gespeichert werden, nicht erforderlich, da direkt auf den Bildbereich zugegriffen werden kann. Die für die JPEG-Dekomprimierung erforderlichen Entropiedecodierungs-, Dequantisierungs- und Inverse-Diskrete-Cosinus-Transformation-Funktionen werden durch den Decodierer 220 ausgeführt.
  • Der Vorscan-Algorithmus 600 für einen JPEG-Bitstrom wird am besten unter Bezugnahme auf 6 verständlich. Nach einem Zurücksetzen vorübergehender Variablen, die absolute Koeffizienten für alle Farbkanäle, die aktuelle Bitposition in dem codierten Bitstrom 8 und die Anzahl der Überspringungen darstellen (Schritt 605), wird der Bitstrom sequentiell bitweise verarbeitet, wobei mit dem ersten Codewort begonnen wird (Schritt 610). Jedes Codewort in einem JPEG-Bitstrom verwendet zwischen 2 und 16 Bits. Wenn das aktuelle Codewort nicht das Erste in einer minimalcodierten Einheit ist („Nein"-Zweig des Schritts 615), springt der Vor-Scanalgorithmus zu Schritt 655, dessen Auswirkung nachfolgend beschrieben wird.
  • Wenn das aktuelle Codewort das erste Codewort in einer minimalcodierten Einheit ist („Ja"-Zweig des Schritts 615), so wird, wenn entweder das aktuelle Codewort am Anfang einer minimalcodierten Einheit positioniert ist, die einen Bildbereich am Anfang einer Zeile des Bildes darstellt („Ja"-Zweig des Schritts 620), oder wenn genügend minimalcodierte Einheiten übersprungen wurden, auf („Ja"-Zweig des Schritts 625), die Anzahl der Überspringungen zurückgesetzt (Schritt 635), und die aktuelle Bitposition wird zusammen mit den aktuellen absoluten Koeffizientenwerten für jeden Farbkanal in der Vorscan-Tabelle 225 aufgezeichnet (Schritt 640). Wenn das aktuelle Codewort nicht am Anfang einer minimalcodierten Einheit, die sich am Anfang einer Zeile des Bildes befindet, positioniert ist („Nein"-Zweig des Schritts 620), und wenn nicht genügend minimalcodierte Einheiten übersprungen wurden („Nein"-Zweig des Schritts 625), wird die Anzahl der Überspringungen inkrementiert (Schritt 630).
  • Wenn, bei Schritt 655, das aktuelle Codewort der erste relative Koeffizient für den aktuellen Farbkanal ist („Ja"-Zweig des Schritts 655), so wird der neue Wert des absoluten Koeffizienten für diesen Farbkanal berechnet (Schritt 660); wenn es nicht der erste relative Koeffizient ist („Nein"-Zweig des Schritts 655), wird Schritt 660 übersprungen. Der aktualisierte absolute Koeffizient wird bei Schritt 660 berechnet, indem der relative Koeffizient zu dem aktuellen Wert des absoluten Koeffizienten hinzuaddiert wird.
  • Als Nächstes bestimmt der Vorscan-Algorithmus, ob etwaige bis dahin ungelesene Codewörter in dem Bitstrom 8 verbleiben (Schritt 665). Wenn keine verbleibenden Codewörter vorliegen, ist der Vorscan-Algorithmus 600 abgeschlossen (Schritt 670). Andernfalls wird das nächste Codewort aus dem Bitstrom erhalten, und die Bitpositionsvariable wird entsprechend aktualisiert (Schritt 675). Dann kehrt der Algorithmus in der Schleife zu dem Schritt 615 zurück, um das bei dem Schritt 675 erhaltene Codewort zu verarbeiten.
  • 7 veranschaulicht beispielhaft, wie der Algorithmus 600 die Vorscan-Tabelle 225 erstellt. Ein vereinfachter Satz von Inhalten für eine minimalcodierte Einheit in dem bei 702 beschriebenen Format umfasst zwei erste relative Koeffizienten DC Y 704, die den Y-Farbkanal darstellen, einen ersten relativen Koeffizienten DC Cb 706, der den Cb-Farbkanal darstellt, und einen ersten relativen Koeffizienten DC Cr 708, der den Cr-Farbkanal darstellt. Auf jeden dieser vier ersten Koeffizienten folgt ein Satz zusätzlicher Codewörter 705, die nachfolgende relative Koeffizienten für diesen Farbkanal darstellen. Da lediglich der erste relative Koeffizient jedes Farbkanals für den Vorscan-Algorithmus von Interesse ist, werden diese nachfolgenden Koeffizienten hierin nicht näher erörtert und ihre Werte nicht gezeigt.
  • Ein Satz von vorübergehenden Variablen 709 zeichnet die Bitposition 710 des aktuellen Codeworts, den aktuellen Wert des absoluten Y-Koeffizienten 712 für den Y-Farbkanal, den aktuellen Wert des absoluten Cb-Koeffizienten 714 für den Cb-Farbkanal und den aktuellen Wert des absoluten Cr- Koeffizienten 716 für den Cr-Farbkanal auf. Jedes Mal, wenn ein Codewort erfasst wird, das einen relativen Koeffizienten darstellt, wird der Wert der entsprechenden Absoluter-Koeffizient-Variable mittels Schritt 660 aktualisiert, indem der relative Koeffizient zu dem aktuellen Wert des absoluten Koeffizienten hinzuaddiert wird. Der zu verarbeitende beispielhafte Bitstrom 701 besteht aus drei minimalcodierten Einheiten, die mit MCU0, die bei Bitposition Nr. 0 beginnt, MCU1, die bei Bitposition Nr. 208 beginnt, und MCU2, die bei Bitposition Nr. 418 beginnt, bezeichnet sind, wobei jede minimalcodierte Einheit relative Gleichstromkoeffizientenwerte aufweist, wie gezeigt ist. Jedes Mal, wenn der Vorscan-Vorgang den Beginn einer neuen minimalcodierten Einheit, für die Informationen gespeichert werden sollen, erfasst, wird der aktuelle Wert des Satzes von vorübergehenden Absoluter-Koeffizient-Variablen 709 mittels Schritt 640 des Vorscan-Algorithmus in die nächste verfügbare Position in der Vorscan-Tabelle 225 geschrieben. Für die Zwecke dieses vereinfachten Beispiels sei angenommen, dass jede minimalcodierte Einheit in dem beispielhaften Bitstrom 701 in der Vorscan-Tabelle 225 gespeichert werden soll; mit anderen Worten wird, wenn der Schritt 625 durchgeführt wird, immer der „Ja"-Zweig genommen.
  • Nun sei die Auswirkung des Vorscannens des beispielhaften Bitstroms 701 zu Beginn des Vorscan-Vorgangs betrachtet. Alle lokalen Variablen 709 werden auf Null zurückgesetzt, wie bei 718 angegeben ist. Der beispielhafte Bitstrom 701 wird dann beginnend bei Bitposition 0 verarbeitet. Da das Codewort bei der Bitposition Nr. 0 das Erste in der MCU0 ist, werden die aktuellen Werte der lokalen Variablen 720 (BitPos = 0, Y = 0, Cb = 0, Cr = 0) über Schritt 640 in die Index-0-Position 732 der Vorscan-Tabelle eingespeichert. Zu diesem Zeitpunkt entspricht der Inhalt der Vorscan-Tabelle dem bei 730 Gezeigten. Da dieses Codewort außerdem das erste in einem Satz von Koeffizienten für den Y-Farbkanal ist, wird der Wert der absoluten Y-Variable auf 0 + 5 = 5 eingestellt, wie bei 734 gezeigt ist.
  • Als Nächstes, während der Vorscanner die in den Bitpositionen Nr. 15 bis Nr. 82 enthaltenen Codewörter liest, wird lediglich die Bitpositionsvariable 710 aktualisiert (nicht gezeigt); Schritt 660 wird nicht ausgeführt, da keines dieser Codewörter das Erste in einem Satz von Koeffizienten für einen Farbkanal ist. Anschließend liest der Vorscan-Vorgang das Codewort bei Bitposition Nr. 83; da es das erste Codewort in dem zweiten Satz von Y-Koeffizienten für MCU0 darstellt, wird der Wert der lokalen Y-Variable auf 5 + 3 = 8 eingestellt, wie bei 736 gezeigt ist. Auf ähnliche Weise wird die lokale Cb-Variable auf 0 + 1 = 1 eingestellt, wie bei 738 gezeigt ist, wenn der Vorscanner 210 zu der Bitposition Nr. 124 liest und anschließend den DC Cb-Koeffizienten, der einen Wert von +1 aufweist, decodiert. Dann liest der Vorscan-Vorgang zu der Bitposition Nr. 177 und decodiert den DC Cr-Koeffizienten, der einen Wert von –2 aufweist, wodurch die lokale Cr-Variable auf 0 + (–2) = –2 eingestellt wird, wie bei 739 gezeigt ist.
  • Wenn der Vorscanner zu der Bitposition Nr. 208 liest und das erste Codewort von MCU1 erfasst, speichert Schritt 640 den aktuellen Wert des Satzes von lokalen Variablen (Bit-Pos = 208, Y = 8, Cb = 1, Cr = –2) 740 bei der Index-1-Position 741 in die Vorscan-Tabelle. Zu diesem Zeitpunkt lautet der Inhalt der Vorscan-Tabelle wie bei 742 gezeigt.
  • Der Prozess des Scannens, des Aktualisierens absoluter Koeffizienten und des Speicherns der lokalen Variablen in der Vorscan-Tabelle wird desgleichen für die verbleibenden minimalcodierten Einheiten wiederholt. Die Ergebnisse 743 des Scannens der MCU1 erzeugen absolute Koeffizientenwerte Y = 7, Cb = 4, Cr = –4, die bei der Index-2-Position 745 in der Vorscan-Tabelle gespeichert werden, wenn der Beginn von MCU2 bei der Bitposition Nr. 418 erfasst wird. Zu diesem Zeitpunkt lautet der Inhalt der Vorscan-Tabelle wie bei 746 gezeigt. Obwohl das nachfolgende Scannen von MCU2 zu den bei 748 gezeigten Werten der lokalen Variable führt, wird in der Vorscan-Tabelle nichts weiter gespeichert, da MCU2 die letzte minimalcodierte Einheit in dem beispielhaften Bitstrom 701 ist und somit keine Anfangsgrenze einer nachfolgenden minimalcodierten Einheit erfasst wird.
  • Nachdem das Vorscannen abgeschlossen ist, enthält die abgeschlossene Vorscan-Tabelle 746 3 Einträge, wobei einer die Startbitposition einer minimalcodierten Einheit sowie die Werte der absoluten Koeffizienten für die Farbkanäle an dieser Position in dem Bitstrom angibt.
  • Aus dem Vorstehenden geht hervor, dass die Erfindung ein neuartiges und vorteilhaftes Verfahren und eine neuartige und vorteilhafte Vorrichtung zum Manipulieren eines digitalisierten Bildes liefert, das in einem entropiecodierten Bitstromdatenformat gespeichert ist. Es muss nicht das gesamte Bild in einem nicht-komprimierten Format in einem Pufferspeicher gespeichert werden, um das Bild zu manipulieren, was den Umfang an Pufferspeicher, der in einem Computersystem oder einem Peripheriegerät, das die Erfindung verkörpert, erforderlich ist, beträchtlich verringert. Und da ein nicht-sequentieller Zugriff auf codierte Bildbereiche in einem Bitstrom auf effizientere Weise durchgeführt wird, ermöglicht er, dass Verarbeitungsvorrichtungen, die eine geringere Leistungsfähigkeit aufweisen und kostengünstiger sind, eine Bildmanipulation durchführen.
  • Obwohl mehrere spezifische Ausführungsbeispiele der Erfindung beschrieben und veranschaulicht wurden, soll die Erfindung nicht auf die spezifischen Verfahren, Formen oder Anordnungen von auf diese Weise beschriebenen und veranschaulichten Teilen beschränkt sein. Die Erfindung wird lediglich durch die Patentansprüche beschränkt.

Claims (9)

  1. Ein Verfahren zum Verarbeiten eines entropiecodierten binären Bitstroms (8), der ein digitalisiertes Bild angibt, wobei das Verfahren folgende Schritte umfasst: sequentielles Erfassen (320) jedes Einzelnen einer Mehrzahl von codierten Bildbereichen (402) in dem Bitstrom (8); Speichern (340) von Positionsinformationen (730) für Benannte Erfasste der Mehrzahl von codierten Bildbereichen (402); und Decodieren (220) zumindest mancher der Erfassten der Mehrzahl von codierten Bildbereichen (402) zu Zwecken einer Bildmanipulation (255); wobei die codierten Bildbereiche (402) in Zeilen und Spalten (400) organisiert sind und wobei der Schritt des Speicherns (340) von Positionsinformationen folgende Schritte umfasst: (a) Speichern der Position eines ersten als erste Spalte codierten Bildbereichs (405) in dem Bitstrom (8); (b) Überspringen (540) einer Anzahl von übersprungenen codierten Bildbereichen in dem Bitstrom (8), wenn nicht ein nächster als erste Spalte codierter Bildbereich während des Überspringens in dem Bitstrom (8) erfasst wird; (c) Anhalten (530) des Überspringens und Speicherns (340) der Position des nächsten als erste Spalte codierten Bildbereichs, wenn er bei Schritt (b) erfasst wurde, andernfalls Speichern (340) der Position des codierten Bildbereichs, zu dem gesprungen wurde; und (d) Wiederholen (350) der zwei zuletzt erwähnten Schritte des Überspringens und Anhaltens, bis ein letzter codierter Bildbereich in dem Bitstrom verarbeitet wird.
  2. Das Verfahren gemäß Anspruch 1, bei dem der Schritt des Decodierens folgende Schritte umfasst: Speichern (215) der Decodierten der codierten Bildbereiche (402), um die Manipulation des digitalisierten Bildes zu ermöglichen.
  3. Das Verfahren gemäß Anspruch 1 oder 2, bei dem der Schritt des Speicherns (340) ferner ein Speichern des berechneten absoluten Koeffizientenwerts (740) für die Benannten Erfassten der Mehrzahl von codierten Bildbereichen (402) umfasst.
  4. Das Verfahren gemäß Anspruch 3, bei dem jeder Einzelne der Mehrzahl von codierten Bildbereichen (402) eine minimalcodierte Einheit gemäß einem JPEG-Format ist.
  5. Das Verfahren gemäß Anspruch 3, bei dem jeder Einzelne der Mehrzahl von codierten Bildbereichen einen relativen Koeffizientenwert aufweist.
  6. Das Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die Positionsinformationen (730) einen Versatz in den Bitstrom (8) des Starts des codierten Bildbereichs (402) umfassen.
  7. Das Verfahren gemäß Anspruch 1, bei dem der Schritt des Decodierens (220) folgenden Schritt umfasst: sequentielles Zugreifen auf zumindest einen übersprungenen codierten Bildbereich (402), der auf zumindest einen codierten Bildbereich (402) folgt, auf den unter Verwendung der gespeicherten Positionsinformationen (225) zugegriffen wird.
  8. Das Verfahren gemäß Anspruch 1, das ferner folgende Schritte umfasst: Identifizieren eines Abschnitts des zu manipulierenden digitalisierten Bildes; Identifizieren eines ersten Satzes von codierten Bildbereichen, die den Abschnitt umfassen; Identifizieren eines zweiten Satzes von codierten Bildbereichen, die den ersten Satz umfassen, wobei die erste Spalte jeder Zeile in dem zweiten Satz einen codierten Bildbereich enthält, für den Positionsinformationen gespeichert wurden; Lokalisieren des zweiten Satzes von codierten Bildbereichen in dem Bitstrom (8); Decodieren des zweiten Satzes von codierten Bildbereichen; und Manipulieren des decodierten zweiten Satzes von Bildbereichen, um eine Manipulation des digitalisierten Bildes zu bewirken.
  9. Das Verfahren gemäß Anspruch 5, bei dem der berechnete absolute Koeffizientenwert (745) die Summe der relativen Koeffizientenwerte (660) für die sequentiell erfassten Einzelnen (402) der Mehrzahl von codierten Bildbereichen ist.
DE69924827T 1999-03-17 1999-11-11 Verfahren und Vorrichtung zur Verarbeitung von Bilddaten Expired - Fee Related DE69924827T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US271039 1999-03-17
US09/271,039 US6381371B1 (en) 1999-03-17 1999-03-17 Method and apparatus for processing image files

Publications (2)

Publication Number Publication Date
DE69924827D1 DE69924827D1 (de) 2005-05-25
DE69924827T2 true DE69924827T2 (de) 2006-02-23

Family

ID=23033941

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69924827T Expired - Fee Related DE69924827T2 (de) 1999-03-17 1999-11-11 Verfahren und Vorrichtung zur Verarbeitung von Bilddaten

Country Status (4)

Country Link
US (1) US6381371B1 (de)
EP (1) EP1037165B1 (de)
JP (1) JP2000278685A (de)
DE (1) DE69924827T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6621940B2 (en) * 1999-06-10 2003-09-16 Xerox Corporation Image rotation in opponent color space
US7146053B1 (en) 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
US6804373B1 (en) * 2000-06-15 2004-10-12 International Business Machines Corporation Method and system using renormalized pixels for public key and compressed images watermarks on prints
JP3614358B2 (ja) * 2000-09-28 2005-01-26 シャープ株式会社 画像符号化装置
US7224840B2 (en) * 2000-10-26 2007-05-29 International Business Machines Corporation Method, system, and program for error recovery while decoding compressed data
US6879725B2 (en) * 2001-01-26 2005-04-12 International Business Machine Corporation Method, system, and program for decoding a section from compressed data
JPWO2003034709A1 (ja) * 2001-10-17 2005-02-10 ナルテック株式会社 伸長方法およびデータ処理装置
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
US6940429B2 (en) * 2003-05-28 2005-09-06 Texas Instruments Incorporated Method of context based adaptive binary arithmetic encoding with decoupled range re-normalization and bit insertion
KR101089489B1 (ko) 2003-11-18 2011-12-02 스칼라도 아베 디지털 이미지 처리 방법 및 이미지 표현 포맷
SE0303085D0 (sv) * 2003-11-18 2003-11-18 Scalado Ab Method for creating a compressed digital image representation and image representation format
US7738710B2 (en) * 2004-08-02 2010-06-15 Electronics For Imaging, Inc. Methods and apparatus for communicating and displaying compressed image data
JP4770168B2 (ja) * 2004-12-17 2011-09-14 株式会社ニコン 走査変換装置、および電子カメラ
SE533185C2 (sv) * 2007-02-16 2010-07-13 Scalado Ab Metod för behandling av en digital bild samt bildrepresentationsformat
SE531398C2 (sv) * 2007-02-16 2009-03-24 Scalado Ab Generering av en dataström och identifiering av positioner inuti en dataström
WO2008122913A2 (en) * 2007-04-04 2008-10-16 Nxp B.V. Decoder for selectively decoding predetermined data units from a coded bit stream
KR101157654B1 (ko) * 2007-05-21 2012-06-18 삼성전자주식회사 화상형성장치에서 전자메일을 전송하는 방법 및 전자메일의전송이 가능한 화상형성장치
US8107754B2 (en) * 2007-12-07 2012-01-31 Mediatek Inc. Systems and methods for randomly accessing compressed images
KR20090132535A (ko) * 2008-06-20 2009-12-30 삼성전자주식회사 디지털 이미지 처리 방법 및 상기 방법을 수행하는 전자장치
WO2010027324A1 (en) * 2008-09-08 2010-03-11 Scalado Ab Method for indexing images and for reading an index of an image
WO2010082886A1 (en) * 2009-01-19 2010-07-22 Telefonaktiebolaget Lm Ericsson (Publ) Image processing
JP4848462B2 (ja) 2010-03-04 2011-12-28 株式会社モルフォ 圧縮画像の部分伸長方法および画像処理装置
JP5247793B2 (ja) * 2010-12-21 2013-07-24 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US8819525B1 (en) 2012-06-14 2014-08-26 Google Inc. Error concealment guided robustness
US9930354B2 (en) 2015-12-11 2018-03-27 Google Llc Skip scanlines on JPEG image decodes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5887652A (ja) 1981-11-19 1983-05-25 Ricoh Co Ltd 画像処理装置
JPS58134368A (ja) 1982-02-05 1983-08-10 Ricoh Co Ltd 文書画像処理装置
US4802229A (en) 1983-04-12 1989-01-31 Canon Kabushiki Kaisha Image processing system
US4628534A (en) * 1984-07-06 1986-12-09 Honeywell Information Systems Inc. Method for changing the resolution of compressed image data
US4723297A (en) 1984-09-27 1988-02-02 Siemens Aktiengesellschaft Method for automatic correction of character skew in the acquisition of a text original in the form of digital scan results
JPS61262982A (ja) 1985-05-17 1986-11-20 Casio Comput Co Ltd 画像情報認識装置
US4941189A (en) 1987-02-25 1990-07-10 Lundy Electronics & Systems, Inc. Optical character reader with skew recognition
US4876730A (en) 1987-02-25 1989-10-24 Lundy Electronics & Systems, Inc. Optical character reader with skew recognition
JP2829006B2 (ja) 1988-11-10 1998-11-25 株式会社リコー 画像処理装置
JP2940960B2 (ja) 1989-10-31 1999-08-25 株式会社日立製作所 画像の傾き検出方法および補正方法ならびに画像情報処理装置
US5187753A (en) 1989-12-08 1993-02-16 Xerox Corporation Method and apparatus for identification and correction of document skew
US5408328A (en) * 1992-03-23 1995-04-18 Ricoh Corporation, California Research Center Compressed image virtual editing system
US5452374A (en) 1992-04-06 1995-09-19 Ricoh Corporation Skew detection and correction of a document image representation
US5517587A (en) 1994-09-23 1996-05-14 International Business Machines Corporation Positioning method and apparatus for line scanned images
US5581635A (en) 1995-07-25 1996-12-03 United Parcel Service Of America, Inc. Method and system for fast rotation of run-length encoded images
US5751865A (en) 1996-09-26 1998-05-12 Xerox Corporation Method and apparatus for image rotation with reduced memory using JPEG compression

Also Published As

Publication number Publication date
JP2000278685A (ja) 2000-10-06
DE69924827D1 (de) 2005-05-25
EP1037165B1 (de) 2005-04-20
EP1037165A3 (de) 2002-11-20
US6381371B1 (en) 2002-04-30
EP1037165A2 (de) 2000-09-20

Similar Documents

Publication Publication Date Title
DE69924827T2 (de) Verfahren und Vorrichtung zur Verarbeitung von Bilddaten
DE69907798T2 (de) Umwandlungen von komprimierten Bildern
DE69132002T2 (de) Bildverarbeitungsgerät und -Verfahren
DE69919641T2 (de) Adaptive Videokompromierung mit variabler Quantisierung
DE69832411T2 (de) Speicherverwaltungssystem für bilddokumenten-datenbank
DE60016032T2 (de) Videoschnittarbeitsflussverfahren und -system
DE4428517C2 (de) Verfahren zum Behandeln eines Teiles eines komprimierten Bildes sowie Bildaufbereitungseinrichtung zur Durchführung dieses Verfahrens
DE69132625T2 (de) Gerät zur Bildverarbeitung
DE69520411T2 (de) Iterative Kompression digitaler Bilder
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE69119847T2 (de) Elektronische standbildkamera mit mehrformatspeicherung von bildern mit voller und beschränkter auflösung
DE69738515T2 (de) Vorrichtung und verfahren für hybride kompression von rasterdaten
DE69836432T2 (de) Bildcoder und -decoder
DE69838653T2 (de) Verfahren und Vorrichtung zum Komprimieren und Codieren von ein Farbbild darstellende Bilddaten
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69323022T2 (de) Verfahren zur Komprimierung, Verarbeitung und zum Speichern von Grautonbitmapbildern
DE3650764T2 (de) Bildverarbeitungsgerät
DE68922998T2 (de) Verfahren zur Digitalisierung von in Formblättern eingetragenen Informationen mittels Vergleich mit sehr grossen Symbolen.
DE60305573T2 (de) Verfahren zur Darstellung von gemischten Bildrasterinhaltsebenen
DE602004009591T2 (de) Differenz-codierung durch verwendung eines 3d-graphikprozessors
DE60025875T2 (de) Bildverarbeitung
DE69329525T2 (de) Verfahren und Vorrichtung zur Befestigung komprimierter Nachschlagtabellen-Wiedergaben von N zu M-dimensionnellen Transformationen auf Bilddaten und zur Verarbeitung von Bilddaten unter Verwendung der befestigten komprimierten Tabellen
DE69712694T2 (de) Segmentierung und Hintergrundunterdrückung in JPEG-komprimierten Bildern mit Anwendung von Kodierungskostendaten
DE69211227T2 (de) Umsetzungen für digitale Bilder in einer hierarchischen Umgebung
DE102006011225B4 (de) System und Verfahren zur Drucksteuerung

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee