DE69816185T2 - Bildverarbeitungsverfahren und -vorrichtung - Google Patents

Bildverarbeitungsverfahren und -vorrichtung Download PDF

Info

Publication number
DE69816185T2
DE69816185T2 DE69816185T DE69816185T DE69816185T2 DE 69816185 T2 DE69816185 T2 DE 69816185T2 DE 69816185 T DE69816185 T DE 69816185T DE 69816185 T DE69816185 T DE 69816185T DE 69816185 T2 DE69816185 T2 DE 69816185T2
Authority
DE
Germany
Prior art keywords
fields
image
field
sensor
navigation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69816185T
Other languages
English (en)
Other versions
DE69816185D1 (de
Inventor
Stephen Bernard Nr. Dursley Pollard
Richard Oliver Bradley Stoke Kahn
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=8229372&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69816185(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69816185D1 publication Critical patent/DE69816185D1/de
Publication of DE69816185T2 publication Critical patent/DE69816185T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/04Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa
    • H04N1/047Detection, control or error compensation of scanning velocity or position
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/04Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa
    • H04N1/10Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa using flat picture-bearing surfaces
    • H04N1/107Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa using flat picture-bearing surfaces with manual scanning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/024Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted
    • H04N2201/02406Arrangements for positioning elements within a head
    • H04N2201/02425Self-adjusting arrangements, e.g. compensating for temperature fluctuations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/024Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted
    • H04N2201/02406Arrangements for positioning elements within a head
    • H04N2201/02439Positioning method
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/024Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted
    • H04N2201/028Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted for picture information pick-up
    • H04N2201/03Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted for picture information pick-up deleted
    • H04N2201/031Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted for picture information pick-up deleted deleted
    • H04N2201/03104Integral pick-up heads, i.e. self-contained heads whose basic elements are a light source, a lens and a photodetector supported by a single-piece frame
    • H04N2201/0315Details of integral heads not otherwise provided for
    • H04N2201/03162Original guide plate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/0471Detection of scanning velocity or position using dedicated detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04729Detection of scanning velocity or position in the main-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04731Detection of scanning velocity or position in the sub-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04734Detecting at frequent intervals, e.g. once per line for sub-scan control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04737Detection of scanning velocity or position by detecting the scanned medium directly, e.g. a leading edge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04758Control or error compensation of scanning position or velocity by controlling the position of the scanned image area
    • H04N2201/04787Control or error compensation of scanning position or velocity by controlling the position of the scanned image area by changing or controlling the addresses or values of pixels, e.g. in an array, in a memory, by interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04789Control or error compensation of scanning position or velocity in the main-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04791Control or error compensation of scanning position or velocity in the sub-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04794Varying the control or compensation during the scan, e.g. using continuous feedback or from line to line

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf Bildverarbeitungsverfahren und zugeordnete Vorrichtungen, die sich auf die Rekonstruktion eines als Bilddaten aufgenommenen Bildes beziehen. Die vorliegende Erfindung ist insbesondere auf Bilder anwendbar, die durch einen Scanner aufgenommen werden, vor allem einen Handscanner, der für eine Bewegung über eine Oberfläche in einer uneingeschränkten Weise ausgelegt ist.
  • Stand der Technik
  • Scanner zum elektronischen Erzeugen eines Bildes eines Originals sind bekannt. In der Regel ist das durch einen Scanner bereitgestellte aufgenommene Bild ein Pixeldatenarray, das in einem digitalen Format in einem Speicher gespeichert ist. Ein verzerrungsfreies Bild erfordert ein getreues Abbilden des ursprünglichen Bildes auf das Pixeldatenarray. Während des Bildaufnahmevorgangs verwenden Scanner in der Regel eine mechanische Beschränkung, um die Wahrscheinlichkeit eines getreuen Abbildens zu maximieren. Die in der Technik bekannten Scannertypen umfassen Trommelscanner, Flachbettscanner, Zweidimensional-Array-Scanner, Blattzufuhrscanner und Handscanner. Die vorliegende Erfindung ist vor allem auf Handscanner anwendbar.
  • Herkömmliche Handscanner erfordern, daß ein Benutzer ein lineares Array aus elektrooptischen Sensorelementen über ein Original bewegt. Die Bewegung erfolgt allgemein durch Manipulation von Hand, ist jedoch bei manchen Ausführungs beispielen motorbetrieben. Unter Verwendung von Methoden wie beispielsweise denjenigen, die beim Betrieb einer Computer-„Maus" verwendet werden, werden Arraypositionsinformationen ermittelt. Während ein lineares Sensorarray bewegt wird, wird die Drehung von Rädern, Kugeln oder Rollen, die sich in Kontakt mit dem Original befinden, erfaßt, und die Positionsinformationen werden aus den mechanischen Details der Drehung ermittelt. Allgemein weist die Oberfläche des mechanischen Elements, das sich in Kontakt mit dem Original befindet, einen hohen Reibungseffizienten auf, z. B. Gummi, um einem Weggleiten und Verschieben zu widerstehen. Eine zylindrische Rolle oder zwei Räder, die durch eine starre Achse verbunden sind, können verwendet werden, um während des Scanvorgangs einen einzelnen translatorischen Freiheitsgrad durchzusetzen. Eine Geradkanten- oder andere Halterung wird oft verwendet, um die Scanrichtung bezüglich des Originals festzulegen und um die durch das Paar von Rädern oder die Rolle gelieferte translatorische Einschränkung weiter durchzusetzen. Trotzdem ist der Positionscodierer-Lösungsansatz einer, der oft für ein Weggleiten und Verrutschen empfänglich ist, so daß das Pixeldatenarray seine Entsprechung mit dem Bild auf dem Original verliert.
  • Handscanner sind in der Regel zur Bilddatenspeicherung, -verarbeitung und -verwendung direkt mit einem separaten Computer verbunden. Der Scanner liefert dem Benutzer eine Rückkopplung, in der Regel mittels grünes oder rotes Licht emittierender Dioden, um die geeignete Geschwindigkeit für die gewünschte Bildauflösung aufrechtzuerhalten. Manche Handscanner verwenden elektromagnetische Bremsen, um zu verhindern, daß der Benutzer den Scanner zu schnell über das Bild zieht, wobei der mechanische Widerstand mit zunehmender Scangeschwindigkeit zunimmt.
  • Handscanner verwenden relativ kleine Bilderzeugungsarrays und können allgemein Dokumente, die größer sind als A6, nicht in einem einzigen Durchlauf bewältigen. Dies erfordert Zusammensetzungsalgorithmen, um mehrere Bänder eines größeren Dokuments zusammenzusetzen. Ein Bandzusammensetzen kann in einem separaten Vorgang durch einen separaten Computer durchgeführt werden. Ein Scannen eines mehrseitigen Geschäftsdokuments oder -berichts mit einem Handscanner ist ein mühseliger Prozeß, der oft Ergebnisse geringer Qualität liefert. Techniken zum Zusammensetzen von Bildbändern sind auf dem Gebiet des Scanners bekannt. Diese Techniken erfordern in der Regel ein Paar von vollständigen Bildbändern und erzeugen eine einzige globale Transformation, die die beiden Bänder in eine Ausrichtung bringt. Verbesserte Techniken werden in der internationalen Patentanmeldung mit der Veröffentlichungsnr. WO 96/27257 gelehrt.
  • Wie zuvor erwähnt wurde, wird bei einem Handscanner in der Regel irgendeine Art von Halterung verwendet. Bei Abwesenheit einer Halterung besteht eine Tendenz, eine gewisse Drehung zu bewirken, wenn der Handscanner über ein Original bewegt wird. Falls der Ellbogen des Benutzers während der Bewegung des Scanners auf einer flachen Oberfläche ruht, ist es wahrscheinlich, daß die Drehung einen durch die Entfernung zwischen dem Scanner und dem Ellbogen des Benutzers definierten Radius aufweist. Folglich wird das gescannte elektronische Bild verzerrt sein. Andere krummlinige Bewegungen während eines Bandes des Scanners verursachen ebenfalls Verzerrungen.
  • Beim Erzeugen eines gescannten elektronischen Bildes ist es notwendig, Navigationsinformationen zu erfassen, die zusammen mit Bilddaten erfaßt werden. Ein Handscanner, bei dem Navigationsinformationen ohne eine Kompromittierung der Leichtigkeit der Verwendung des Scanners erhalten werden, ist in der US-Patentschrift Nr. 5578813 beschrieben. Die Navigationsinformationen werden mittels zumindest eines Navigationssensors erfaßt, der inhärente strukturbezogene Eigenschaften eines gescannten Originals erfaßt. Eine Bewegung eines Bildsensors entlang des Originals wird nachverfolgt, indem Variationen der inhärenten strukturbezogenen Eigenschaften überwacht werden, während der Bildsensor re lativ zu dem Original bewegt wird. Die überwachten inhärenten strukturbezogenen Eigenschaften sind inhärente strukturelle Merkmale, beispielsweise Papierfasern, oder andere einen festen Bestandteil bildende Komponenten des Originals. Die Navigation kann alternativ dazu auf Maserungen beruhen, wobei eine Bewegung des Bildsensors entlang dem Original durch ein Überwachen von Variationen von Maserungsmustern nachverfolgt wird, die unter Verwendung einer kohärenten Beleuchtung zum Erfassen der Navigationsinformationen erzeugt werden. Eine Bewegung des Scanners über die Oberfläche des zu scannenden Bildes kann somit im wesentlichen willkürlich sein, da sie nicht eingeschränkt ist.
  • „Inhärente strukturbezogene Eigenschaften" sind Eigenschaften des Originals, die auf Faktoren zurückzuführen sind, die unabhängig von einem Erzeugen von Bilddaten und/oder systemischen Ausrichtdaten auf dem Original sind. Die Navigationsinformationen können durch Erzeugen eines Positionssignals gebildet werden, das auf eine Erfassung inhärenter strukturbezogener Eigenschaften anspricht, beispielsweise ein Positionssignal von Maserungsinformationen oder ein Positionssignal, das ein Nachverfolgen individueller inhärenter struktureller Merkmale erlaubt. „Inhärente strukturelle Merkmale" sind diejenigen Merkmale eines Originals, die für Verfahren zum Erzeugen des Originals charakteristisch und unabhängig von einem Erzeugen von Bilddaten und/oder systematischen Ausrichtdaten auf dem Original sind. Wenn das ursprüngliche aufgezeichnete Medium beispielsweise ein Papierprodukt ist, können die interessierenden inhärenten strukturellen Merkmale Papierfasern sein. Als weiteres Beispiel kann eine Navigation des Bildsensors über ein glänzendes Original oder eine Overhead-Transparentfolie durch ein Nachverfolgen von Oberflächentexturvariationen, die spiegelnde Felder beeinflussen, ermittelt werden. In der Regel sind die inhärenten strukturellen Merkmale mikroskopische Merkmale der Oberflächentextur, z. B. zwischen 10 und 40 μm.
  • Die vorliegende Erfindung ist direkt auf Handscanner anwendbar, wie sie in der internationalen Patentanmeldung mit der Veröffentlichungsnr. WO 96/27257 und in der US-Patentschrift Nr. 5578813 gelehrt werden, wobei beide diese Anmeldungen in dem Umfang, der durch nationales Recht zulässig ist, durch Bezugnahme in das vorliegende Dokument aufgenommen sind.
  • Verarbeitungsprobleme werden durch die Uneingeschränktheit der Eingabe bei vielen der Ausführungsbeispiele, die bei den obengenannten Dokumenten des Standes der Technik dargelegt sind, verursacht. Um sicherzugehen, daß das Pixelarray für das rekonstruierte Bild in der Lage sein wird, alle aufgenommenen Daten darzustellen, muß es notwendigerweise ziemlich groß sein. Da eine Datenaufnahme an einem beliebigen Punkt auf dem Bild beginnen könnte, wäre es bei herkömmlichen Strukturen notwendig, ein Pixelgitter zu verwenden, das um ein Vielfaches größer ist als das aufzunehmende Bild. Bei einem derartigen Lösungsansatz ist es notwendig, einen beträchtlichen Speicher der Speicherung von Pixelarraydaten zuzuweisen, was die Ausgaben beträchtlich erhöht.
  • Die vorliegende Erfindung zielt darauf ab, ein Verfahren zu schaffen, das die Speichererfordernisse zum Speichern eines auf eine derartige uneingeschränkte Weise aufgenommenen Bildes beträchtlich verringert. In bezug auf bestimmte Aspekte liefert die Erfindung eine Reduktion der Rechenkosten und erhöht die Geschwindigkeit des Erzeugens eines rekonstruierten Bildes von einem willkürlich erhaltenen aufgenommenen Bild. Das Verfahren richtet sich besonders auf ein freihändiges Scannen und Freihand-Scanvorrichtungen.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Erfindung schaffen wir ein Verfahren zum Rekonstruieren eines Bildes aus einer Mehrzahl von Bildelementen, wobei jedes Bildelement Bilddaten, die in einem Bildsensor aufgenommen werden, und Positionsdaten, die eine Position dieses Bildelements bezüglich anderer der Bildelemente anzeigen, umfaßt, dadurch gekennzeichnet, daß das Verfahren folgende Schritte umfaßt: Rekonstruieren des Bildes in Form einer Mehrzahl von Feldern, die auf der Basis der Bildelemente erzeugt werden, wobei jedes Feld ein Pixelgitter einer vorbestimmten Abmessung, das eine spezifische räumliche Region des Bildes darstellt, aufweist, und Erzeugen eines Feldindexes, der jedes Feld, das mit seiner spezifischen räumlichen Region des Bildes erzeugt wird, indexiert.
  • Diese Positionsdaten können von einer Navigationseinrichtung abgeleitet werden, die die Positionsdaten für ein Bildelement auf ein Aufnehmen dieses Bildelements durch einen Bildsensor hin liefert. Dies ist besonders vorteilhaft, wenn ein linearer Sensor zum Aufnehmen von Daten verwendet wird. Bezüglich anderer Aspekte der Erfindung werden die Positionsdaten von einem vorhergehenden Schritt eines Bestimmens, von Merkmalen der Bildelemente, einer relativen Position für jedes Bildelement bezüglich anderer der Bildelemente abgeleitet. Dies ist besonders vorteilhaft, wenn Daten mit einem Flächensensor aufgenommen werden, und es wird möglich, relative Positionen aufgenommener Daten durch eine Bewertung überlappender Bereiche zu bewerten.
  • Vorteilhafterweise sind die Felder zusammenhängend, überlappen einander nicht und sind ausgelegt, um in zwei Richtungen tesselliert zu werden. Das Verfahren ist besonders geeignet, wenn das Bild in Form eines Stroms von Sensorablesungen aufgenommen wird, wobei jede Sensorablesung Bilddaten und entsprechende Positionsdaten umfaßt. Eine derartige Datenaufnahme findet im Fall eines freihändigen Scannens mit einem linearen Sensor, der über eine Bildoberfläche bewegt wird, statt.
  • Das Verfahren eignet sich besonders für eine uneingeschränkte Eingabe, die von einem willkürlichen Scanweg über das Bild erhalten wird. Der Grund hierfür ist, daß Felder bei jeglicher erforderlichen Position erzeugt werden können, jedoch nicht erzeugt werden müssen, bevor sie tatsächlich benötigt werden. Bei einem bevorzugten Ausführungsbeispiel weist das Verfahren folgende Schritte auf: Verwalten von Feldern durch ein Bestimmen, von den Positionsdaten, ob Felder existieren, die den räumlichen Positionen einer oder mehrerer eingegebener Sensorablesungen in dem Bild entsprechen, und durch ein Erzeugen eines oder mehrerer neuer Felder nach Bedarf, so daß Felder, die den räumlichen Positionen der Gruppe entsprechen, existieren; und Schreiben in Felder durch ein Zuweisen von Pixelwerten zu den Pixeln von Feldern, die den räumlichen Positionen der eingegebenen Sensorablesungen der Gruppe entsprechen, auf der Basis der Bilddaten und der Positionsdaten; wobei die Schritte für aufeinanderfolgende Gruppen von Sensorablesungen wiederholt werden.
  • Vorteilhafterweise wird der Feldindex als Baum bereitgestellt, wobei jeder Knoten des Baumes auf eine Mehrzahl von Stellen bei einem Vielfachen der räumlichen Auflösung dieses Knotens zeigt.
  • Bei einem weiteren vorteilhaften Aspekt der Erfindung können Felder, in die geschrieben wurde, komprimiert werden, während die Bildaufnahme noch vonstatten geht. Vorteilhafterweise werden die Felder, die den räumlichen Positionen der vorhergehenden Gruppe, bezüglich derer gearbeitet wird, entsprechen, in dem Feldverwaltungsschritt mit den Feldern, die den räumlichen Positionen der aktuellen Gruppe entsprechen, verglichen, wobei neu benötigte Felder erzeugt werden und wobei Felder der vorhergehenden Gruppe, die nicht in der aktuellen Gruppe vorliegen, komprimiert werden. Die Felder, die komprimiert werden, werden in einen Komprimierte-Felder-Speicherbereich geschrieben und aus einem Aktive-Felder-Puffer, der Felder der aktuellen Gruppe hält, gelöscht.
  • Die Erfindung weist ferner Scanvorrichtungen auf, die ausgelegt sind, um Verfahren, wie sie oben dargelegt wurden, durchzuführen. Wenn die vorliegende Erfindung in einem Handscanner implementiert wird, der eine ausreichende Rechenleistung aufweist, um die gesamte Verarbeitung durchzuführen, umfaßt das Verfahren die Verwendung von Fehlerschätzungen, um Korrekturen an die Navigationsvorrichtung rückzukoppeln. Eine beispielhafte Form dieser Fehlerschätzungen und ihrer Anwendung wird in bezug auf ein Ausführungsbeispiel der Erfindung nachfolgend ausführlich erläutert. Somit werden Fehler in Echtzeit identifiziert und verwendet, um die Navigationsvorrichtung selbst zu korrigieren sowie um Fehler in dem Bild, das rekonstruiert wird, zu korrigieren. Alternativ dazu kann die vorliegende Erfindung in einer Scanvorrichtung zum Sammeln von Bilddaten implementiert sein, die zum Zweck einer Verbindung mit einem Computersystem zum Ausführen eines Verfahrens gemäß der vorliegenden Erfindung entworfen ist.
  • Es wird nun eine Scanvorrichtung gemäß der Erfindung beschrieben. Die Vorrichtung kann die Rechenleistung aufweisen, um die durch ein Verfahren gemäß der vorliegenden Erfindung erforderliche Verarbeitung durchzuführen, oder alternativ dazu kann die Vorrichtung für eine Verbindung mit einem Computersystem zum Durchführen eines Verfahrens gemäß der vorliegenden Erfindung entworfen sein.
  • Bei dem zu beschreibenden Ausführungsbeispiel umfaßt die Rekonstruktion eines aufgenommenen Bildes eine Verwendung von Navigationsinformationen, die zusammen mit Bilddaten erfaßt werden, und ein anschließendes Berichtigen der Bilddaten auf der Basis der Navigations- und Bildinformationen. Eine Berichtigung ist ein Vorgang einer Nutzung von Navigationsdaten, um erfaßte Bilddaten anzuordnen, um eine Übereinstimmung zwischen Original und ausgegebenen Bildern zu erzielen. Bei einem bevorzugten Ausführungsbeispiel werden die Navigationsinformationen mittels zumindest eines Navigationssensors erfaßt, der inhärente strukturbezogene Ei genschaften eines gescannten Originals erfaßt. Eine Bewegung eines Bildsensors entlang des Originals kann nachverfolgt werden, indem Variationen der inhärenten strukturbezogenen Eigenschaften überwacht werden, während der Bildsensor relativ zu dem Original bewegt wird. Die überwachten inhärenten strukturbezogenen Eigenschaften sind inhärente strukturelle Merkmale, beispielsweise Papierfasern, oder andere einen festen Bestandteil bildende Komponenten des Originals. Die Navigation kann auch auf Maserungen beruhen, wobei eine Bewegung des Bildsensors entlang dem Original durch ein Überwachen von Variationen von Maserungsmustern nachverfolgt wird, die unter Verwendung einer kohärenten Beleuchtung zum Erfassen der Navigationsinformationen erzeugt werden.
  • Somit variieren die betrachteten Lösungsansätze bezüglich eines Erfassens von Navigationsinformationen in bezug auf ihren Schutzumfang. Bei dem am breitesten gefaßten Lösungsansatz besteht keine Einschränkung der Quellen von Navigationsinformationen, die verwendet werden sollen, um Verzerrungsartefakte einer krummlinigen und Drehbewegung der Scanvorrichtung entlang eines Scanwegs zu beseitigen. Das Navigationssignal kann deshalb in Form eines Positionssignals vorliegen, das auf eine Erfassung von Bilddaten auf dem Original anspricht (z. B. Identifizierung von Rändern von Textschriftzeichen), wobei das Positionssignal dann bei der Manipulation eines Bildsignals verwendet wird. Ein zweiter Lösungsansatz ist einer, bei dem ein Positionssignal auf eine Erfassung von inhärenten strukturbezogenen Eigenschaften, beispielsweise die Eigenschaften, die Maserungsmuster bestimmen, anspricht. Der dritte Lösungsansatz besteht darin, eine Navigation der Scanvorrichtung nachzuverfolgen, indem die Positionen individueller inhärenter struktureller Merkmale (z. B. Papierfasern) über die Zeit überwacht werden.
  • Bei den zu beschreibenden Ausführungsbeispielen ist der Bildsensor ein lineares Array aus optoelektronischen Ele menten, während der Navigationslösungsansatz zumindest ein zweidimensionales Array aus Navigationssensorelementen verwendet. Durch Plazieren eines getrennten zweidimensionalen Navigationsarrays an jedem Ende des Bildsensors werden dem Scanner drei Bewegungsfreiheitsgrade geliefert. Falls das Original planar ist, sind zwei der Freiheitsgrade translatorisch und sind in der Ebene des Originals senkrecht zueinander, während der dritte Freiheitsgrad um die Normale zu der Ebene des Originals drehbar ist. Die Genauigkeit der Drehnachverfolgung wird durch die Verwendung zweier Navigationsarrays verbessert, wobei jedes Array einen geringeren Arrayumfang aufweist als notwendig wäre, wenn nur ein einziges Navigationsarray verwendet würde. Während das beschriebene Ausführungsbeispiel eines ist, bei dem ein Navigationssensor ein zweidimensionales Array ist, können auch lineare Arrays verwendet werden. Navigationsinformationen zum Berichtigen von Bilddaten könnten zweckmäßigerweise dadurch erfaßt werden, daß eine andere Positionsnachverfolgungseinrichtung auf eine Weise, die von jeglichen inhärenten strukturbezogenen Eigenschaften des Originals unabhängig ist, an der Scanvorrichtung befestigt wird.
  • Die Navigationssensoren befinden sich relativ zu dem Bildsensor in einer bekannten Position. Vorzugsweise befinden sich die Navigationssensoren so nahe wie möglich an den Endpunkten des Bilderzeugungssensors, so daß die Navigationssensoren weniger anfällig dafür sind, über den Rand eines Originals hinauszuwandern, wenn das Bildarray bewegt wird. Der Bildsensor erzeugt ein Signal, das repräsentativ für ein interessierendes Bild ist. Gleichzeitig erzeugt jeder Navigationssensor ein Signal, das für die inhärenten strukturbezogenen Eigenschaften des Originals repräsentativ ist. Die Scanvorrichtung kann in einem mäanderförmigen Freihandmuster bewegt werden, beispielsweise in einem, das durch abwechselnde Bewegungen von links nach rechts und rechts nach links mit einem Gefälle entlang des Originals gekennzeichnet ist, wobei die Vorrichtung in Kontakt mit dem Original bleibt. Jedes der Seite-Zu-Seite-Bänder sollte einen Abschnitt des vorherigen Bandes überlappen, so daß das Bild bezüglich der Position manipuliert und entweder während oder anschließend an den Scanvorgang zusammengesetzt werden kann. Die Manipulation des Bildsignals ist eine Berichtigung von Bilddaten, wobei die Berichtigung auf der relativen Bewegung zwischen dem Navigationssensor oder Navigationssensoren und den durch die Navigationssensoren erfaßten inhärenten strukturbezogenen Eigenschaften basiert. Das Zusammensetzen ist ein Vorgang, der verwendet wird, um Bilddaten, die während aufeinanderfolgender Bänder erfaßt werden, derart zu verbinden, daß die positionsmäßige Beziehung zwischen Daten in separaten Bändern nach dem Zusammensetzen mit der positionsmäßigen Beziehung zwischen diesen Bilddaten in dem Originalbild übereinstimmt.
  • Weitere Aspekte von Sensorentwurfs- und Bildverarbeitungsverfahren, mit denen die vorliegende Erfindung verwendet werden kann, sind in der internationalen Patentanmeldung mit der Veröffentlichungsnummer WO 96/27257 und in der US-Patentschrift Nr. 5578813 erörtert.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine perspektivische Ansicht einer in der Hand zu haltenden Scanvorrichtung, die einem mäanderförmigen Pfad auf einem Original gemäß der Erfindung folgt.
  • 2 ist eine Rückansicht von Bilderzeugungs- und Navigationssensoren der Scanvorrichtung der 1.
  • 3 ist eine perspektivische Ansicht der Scanvorrichtung der 1, wobei die Bilderzeugungs- und Navigationssensoren in der Darstellung freiliegend sind.
  • 4 ist eine schematische Seitenansicht eines Beleuchtungssystems für einen der Navigationssensoren der 3.
  • 5 ist eine schematische Seitenansicht einer lichtemittierenden Diode und optischer Elemente zum Bereitstellen der unter Bezugnahme auf 4 beschriebenen Beleuchtung.
  • 6 ist eine konzeptionelle Ansicht der Bildaufnahmeoperation der Scanvorrichtung der 1.
  • 7 ist eine Betriebsansicht eines Ausführungsbeispiels der Navigationsverarbeitung der Scanvorrichtung der 1.
  • 8 ist eine schematische Ansicht ausgewählter Schritte der 7.
  • 9 ist ein Blockdiagramm der Komponenten zum Durchführen der Schritte der 8.
  • 10a ist eine Darstellung eines Inkrements eines positionsmarkierten Datenstroms, der für den Ausgang aus dem Navigationsprozessor der 9 typisch ist.
  • 10b ist eine Darstellung eines Puffers, der eine Mehrzahl von positionsmarkierten Dateninkrementen speichert.
  • 11 ist eine Darstellung eines Fliesen- bzw. Feldeinteilungsschemas gemäß einem Ausführungsbeispiel der Erfindung.
  • 12a ist eine räumliche Darstellung eines Feldindizes gemäß dem Schema der 11.
  • 12b zeigt einen Indexbaum, der dem Feldindex der 12a entspricht.
  • 13 zeigt einen Indexbaum wie in 12b, der als Array aus Vierergruppen dargestellt ist.
  • 14 zeigt eine schematische Darstellung eines Verfahrens zum Verfliesen, Berichtigen und Komprimieren von gescannten Daten gemäß Ausführungsbeispielen der Erfindung.
  • 15 zeigt den Aufbau einer Tabelle von Aktive-Felder-Indizes im Kontext des in 14 veranschaulichten Verfahrens.
  • 16 zeigt den Aufbau eines Feld-Cachespeichers gemäß dem in 14 veranschaulichten Verfahren.
  • 17 zeigt einen geradlinigen Bildraum, der den geometrischen Ort der Endpunkte der Abtastwerte von dem Lineares-Bild-Sensor zeigt.
  • 18 zeigt einen Abschnitt des geradlinigen Bildraums der 17, der das gescannte Bild definiert, wobei zwei Lineares-Bild-Sensor-Positionen auf denselben abgebildet sind.
  • 19 zeigt das Rückabbilden eines Pixels in dem geradlinigen Raum der 18 auf einen durch die zwei Lineares-Bild-Sensor-Positionen definierten Raum.
  • 20 zeigt einen Abschnitt des geradlinigen Bildraums der 17, der das gescannte Bild definiert, wobei eine Reihe von Lineares-Bild-Sensor-Positionen auf denselben abgebildet sind.
  • 21 zeigt das Rückabbilden eines Pixels in dem geradlinigen Raum der 20 auf einen durch die Lineares-Bild-Sensor-Positionen definierten Raum.
  • 22 zeigt eine Sammlung von Bändern durch die Scanvorrichtung der 1.
  • 23 zeigt die Puffer, die bei einem zweistufigen Prozeß zum Zusammensetzen aufeinanderfolgender Bänder verwendet werden.
  • 24 veranschaulicht Bänder, die gesammelt werden, wenn der zweistufige Prozeß der 23 verwendet wird.
  • Bester Modus zum Durchführen der Erfindung
  • Unter Bezugnahme auf 1 ist eine tragbare, in der Hand zu haltende Scanvorrichtung 10 gezeigt, die einem mäanderförmig verlaufenden Pfad 12 entlang einem Original 14 gefolgt ist. Das Original kann ein Stück Papier, eine Overhead-Transparentfolie oder eine beliebige andere bildtragende Oberfläche sein. Die inhärenten strukturbezogenen Eigenschaften des Originals können verwendet werden, um während der Navigation entlang dem mäanderförmigen Pfad Positionsinformationen zu liefern. Bei diesem Lösungsansatz werden die Positionen inhärenter struktureller Merkmale nachverfolgt, und die Positionsinformationen werden verwendet, um Bilddaten zu berichtigen, es werden jedoch auch andere Ausführungsbeispiele beschrieben. Die Scanvorrichtung ist vorzugsweise in sich abgeschlossen und batteriebetrieben, kann jedoch auch eine Verbindung mit einer externen Leistungsquelle oder mit Datentoren von Computern oder Netzwerken umfassen.
  • Die Scanvorrichtung 10 der 1 umfaßt eine Bildanzeige 16, um ein Betrachten eines aufgenommenen Bildes zu ermög lichen. Für die Verwendung der Scanvorrichtung ist eine Anzeige jedoch nicht wesentlich.
  • Unter Bezugnahme auf 1 bis 3 umfaßt die Vorwärtsseite 18 der Scanvorrichtung 10 ein Drehbauglied 20, das ein Aufrechterhalten eines ordnungsgemäßen Kontaktes zwischen dem Original 14 und einem Bilderzeugungssensor 22 unterstützt. Der Bilderzeugungssensor 22 weist ein lineares Array aus Bildsensorelementen auf. Navigationssensoren 24 und 26 sind an den gegenüberliegenden Enden des Bilderzeugungssensors positioniert. Die Navigationssensoren 24, 26 sind an dem Drehbauglied angebracht, und somit befinden sich die Navigationssensoren bezüglich des Bilderzeugungssensors in einer feststehenden Position.
  • Die Scanvorrichtung 10 ermöglicht drei Freiheitsgrade, wobei zwei auf die Übersetzung und einer auf die Drehung bezogen sind. Der erste Grad ist die Seite-Zu-Seite-Bewegung (X-Achsen-Bewegung) entlang des Originals 14. Der zweite Freiheitsgrad ist eine nach oben und nach unten erfolgende Bewegung entlang des Originals (Y-Achsen-Bewegung). Der dritte Freiheitsgrad ist die Fähigkeit, die Vorrichtung mit einer Drehfehlausrichtung des Bilderzeugungssensors 22 relativ zu einem Rand des Originals 14 zu betreiben. Das heißt, daß der Bilderzeugungssensor 22 einen Angriffswinkel aufweisen kann, der zu der Richtung der Vorrichtungstranslation nicht senkrecht ist.
  • Aus Gründen der physischen Kompaktheit ist der Bilderzeugungssensor 22 vorzugsweise eine Kontaktbildvorrichtung, bei Anwendungen, in denen die Kompaktheit von geringerer Bedeutung ist oder ein kleineres Bild gewünscht ist, können jedoch auch Sensoren verwendet werden, die eine Projektionsoptik verwenden, wobei die Vergrößerung weniger als Eins beträgt. Bei derartigen Anwendungen sollten die Elemente des Bilderzeugungssensors 22 kleiner und enger beisammen gepackt sein. Kontaktbilderzeugungsvorrichtungen verwenden in der Regel Linsen, die unter dem Markenzeichen SELFOC, das ein Markenzeichen von Nippon Sheet Glass Company Limited ist, vertrieben werden. Weniger herkömmlich ist, daß ein Kontaktbilderzeugen erhalten werden kann, indem verschachtelte Arrayelemente aus Quellen und proximalen Sensoren ohne jegliche Bilderzeugungslinsen verwendet werden. Es können herkömmliche Bilderzeugungssensoren für Scananwendungen verwendet werden. Der Bilderzeugungssensor kann Teil einer Einheit sein, die ferner eine Beleuchtungsquelle, eine Beleuchtungsoptik und eine Bildtransferoptik umfaßt.
  • Der Bilderzeugungssensor 22 ist als lineares Array aus diskreten optisch empfindlichen Elementen gezeigt. Die Beabstandung der Elemente spielt eine Rolle beim Bestimmen der räumlichen Auflösung des Scanners 10. Beispielsweise erfordert ein lineares Array mit einer Länge von 101,6 mm 1200 Sensorelemente, um eine Auflösung von 300 dpi zu erreichen. Der Sensor kann eine ladungsgekoppelte Vorrichtung, ein Amorphes-Silizium-Photodiodenarray oder eine beliebige andere Art von linearem Arraysensor, die in der Technik bekannt ist, sein.
  • Eine wesentliche Überlegung beim Entwurf der Bilderzeugungssensoreinheit ist die Geschwindigkeit. Der Bilderzeugungssensor 22 ist vorzugsweise in der Lage, jedes Pixel bei etwa 5K Abtastwerten pro Sekunde abzubilden. Lineare Bilderzeugungsarrays erzeugen allgemein einen seriellen Datenstrom, bei dem Pixelwerte, d. h. Ladungen, in ein Schieberegister plaziert und dann hinausverschoben werden. Ein Erzielen der gewünschten Geschwindigkeit erfordert entweder sehr schnelle serielle Transferraten aus dem gesamten Bildarray oder mehrere Abgriffe, so daß Pixelwerte durch weniger Zellen hindurch verschoben werden können. Dies bringt einen Parallelismus ein, der bei einem digitalen Verarbeiten von Vorteil ist.
  • Eine weitere Folge der Geschwindigkeitsanforderung besteht darin, daß die Produkte von Pixelbereichen an der Oberfläche des Originals und ihre Raumwinkel von emittiertem Licht, das aufgefangen und an jedes Arrayelement befördert wird, ausreichend groß sein sollten, um innerhalb von Integrationszeiten in der Größenordnung von 200 Mikrosekunden ein erfaßbares Signal zu erzeugen. Eine Verbesserungsoption besteht darin, zu dem Sensor ein optisches Element hinzuzufügen, um den effektiven Bruchteil des Sensorabstands, auf den jedes Erfassungselement anspricht, zu erhöhen. Da in der Arraymatrix in der Regel eine ein ungenutzter Bereich vorliegt, erhöht eine derartige Lichtauffangoptik die Empfindlichkeit.
  • Eine unkomplizierte Modifikation des Bilderzeugungssensors 22 ermöglicht ein Erfassen von Farbbildern. Drei lineare Arrays, die zueinander parallel sind, wobei jedes zumindest ein eingebettetes Filterelement aufweist, das selektiv rote, grüne bzw. blaue Komponenten des einfallenden Lichts weiterleitet, würden eine Farbbilderzeugung ermöglichen. Alternativ kann ein einzelnes Array, das eine Breitbandempfindlichkeit aufweist, sequentiell durch rote, grüne und blaue Lichtquellen beleuchtet werden.
  • In bezug auf die Beleuchtung zum Verbessern des Betriebs des Bilderzeugungssensors 22 kann ein lineares Array aus Dioden, die ein Licht der Bernstein-Wellenlänge, das eine hohe Intensität aufweist, emittieren, verwendet werden. Jedoch ist die Auswahl der bevorzugten Beleuchtungsquelle und jeglicher optischen Elemente von dem Medium des Originals abhängig. Die Wellenlänge des Lichts wird so gewählt, daß sie die Kontrastbilddaten, die während des Scanvorgangs eines gegebenen Bereichs des Originals 14 erfaßt werden, maximiert und dabei unerwünschte Signale mißachtet. Eine Beleuchtungsoptik kann aus LED-Kuppellinsen bestehen oder kann ein Lichtleitkabel umfassen, das aus einem präzisionsgeformten optischen Element besteht, das die Beleuchtung mit einem minimalen Lichtverlust auf das Original kanalisiert. Ein derartiger Entwurf kann eine relativ gleichmäßige Beleuchtung eines Zielbereichs des Originals bei einer großen Bandbreite von Winkeln liefern, blockiert jedoch senkrechte einfallende Strahlen, um Oberflächen-Spiegelreflexionen zu vermeiden.
  • In der Darstellung der 1 ist der mäanderförmige Pfad 12 mit vier Bändern, d. h. Seite-Zu-Seite-Durchläufe über das Original 14, und einem Bruchteil gezeigt. Ein für die meisten Anwendungsgelegenheiten nützlicher Bilderzeugungssensor 22 weist eine Länge zwischen 25,4 mm und 101,6 mm auf . Falls der Sensor 22 eine Länge von 63,5 mm aufweist, kann ein A4-Papier in vier oder fünf Bändern gescannt werden. Wie nachfolgend ausführlicher erläutert wird, sollten die Bänder Überlappungsregionen aufweisen, so daß ein Zusammensetzvorgang verwendet werden kann, um eine getreue Reproduktion des Originalbildes zu erzeugen.
  • Die Scanvorrichtung 10 umfaßt in der Regel zumindest einen Navigationssensor 24 oder 26. Bei bevorzugten Ausführungsbeispielen umfaßt die Vorrichtung ein Paar von Navigationssensoren, wobei sich die Sensoren an entgegengesetzten Enden des Bilderzeugungssensors 22 befinden. Während ein eindimensionales Array aus optoelektronischen Elementen verwendet werden kann, ist bei dem bevorzugten Ausführungsbeispiel, jeder Navigationssensor ein zweidimensionales Array aus Elementen. Die Navigationssensoren 24 und 26 werden verwendet, um eine Bewegung der Scanvorrichtung 10 relativ zu dem Original 14 nachzuverfolgen.
  • Bei bevorzugten Ausführungsbeispielen nimmt jeder Navigationssensor 24 und 26 Bilder, die auf inhärente strukturbezogene Eigenschaften des Originals bezogen sind, auf, um Informationen, die sich auf die Position der Scanvorrichtung 10 beziehen, zu erzeugen. Bei den meisten bekannten Scanvorrichtungen wird als inhärente strukturelle Merkmale ein Rauschen angesehen. Für die Scanvorrichtung 10 der 1 bis 3 sind derartige Merkmale Rauschen bezüglich des Bilderzeugungssensors 22, können jedoch verwendet werden, um eine Basis dafür zu schaffen, daß die Navigationssensoren 24 und 26 Positionsinformationen erzeugen. Durch Erfassen struktureller Variationen, die dem Medium inhärent sind oder auf dem Medium gebildet sind, z. B. Text, können einen starken Kontrast aufweisende nützliche Bilder der Oberflächentextur erzeugt werden. Beispielsweise können Bilder auf der Basis des Kontrastes zwischen Schatten in Tälern und hellen Punkten an den Spitzen inhärenter struktureller Merkmale erzeugt werden. Derartige Merkmale sind in der Regel mikroskopischer Natur und weisen bei üblichen bedruckten Medien oft eine Größe zwischen 10 μm und 40 μm auf. Als Alternative kann eine Maserung verwendet werden, da eine Spiegelreflexion eines kohärenten Strahls ein Kontrastmuster von hellen und dunklen Bereichen erzeugt. Eine dritte Quelle von Kontrastinformationen ist Farbe. Farbkontrast ist von der Oberflächentextur unabhängig. Auch wenn die texturfreie Oberfläche mit Licht im sichtbaren Bereich beleuchtet wird, besteht ein Farbkontrast zwischen Regionen unterschiedlicher Farben, z. B. zwischen unterschiedlichen Grauschattierungen.
  • Es wird jedoch in Betracht gezogen, die Erfindung für Anwendungen zu verwenden, bei denen Navigationsinformationen von inhärenten strukturbezogenen Eigenschaften des Originals unabhängig sind. Es können auch Nicht-Bilderzeugungslösungsansätze verwendet werden, um X-, Yund Winkelpositionsinformationen zu erfassen und zu verarbeiten. Derartige Alternativen werden in der US-Patentschrift Nr. 557813 erläutert.
  • Die Navigationssensoren 24 und 26 der 2 beobachten effektiv sich bewegende Fenster auf dem Bild des Originals 14 und erzeugen eine Angabe der Verschiebung in zwei planaren Dimensionen zwischen aufeinanderfolgenden Beobachtungen. Wie nachfolgend ausführlicher erläutert wird, werden Pixelwerte von den Navigationssensoren verarbeitet, um ein ordnungsgemäßes Abbilden von Bilddaten von dem Bilderzeugungssensor 22 zu bestimmen. Werte eines bestimmten Pixels und seiner nächstgelegenen Nachbarn werden verwendet, um ein Array aus Korrelationswerten bei jeder Pixelposition zu er zeugen. Die Korrelationswerte beruhen auf Vergleichen zwischen einem aktuellen Bild der Oberflächenstruktur und einem gespeicherten Bild, das eine bekannte Position inhärenter struktureller Merkmale darstellt, wobei das gespeicherte Bild als Positionsreferenz dient. Beim Manipulieren der Eingangsbilddaten zum Erzeugen des Ausgangsbildes können jedoch auch andere Operationen als der Korrelationsprozeß verwendet werden.
  • In der Veranschaulichung der 4 und 5 ist der Navigationssensor 24 wirksam einer Beleuchtungsoptik zugeordnet. Falls das Original 14 ein Papierprodukt ist, für das durch den Navigationssensor 24 Papierfasern erfaßt werden sollen, ist die Einbringung von Licht bei einem Streifeinfallswinkel bevorzugt. Es können eine oder mehrere lichtemittierende Dioden (LEDs) 28 verwendet werden, obwohl dies nicht unbedingt notwendig ist. Der Streifwinkel 30, der die Ergänzung zu dem Einfallswinkel ist, liegt vorzugsweise im Bereich zwischen null Grad und fünfzehn Grad, dies kann sich jedoch in Abhängigkeit von den Eigenschaften des Originals 14 ändern. Bei 5 ist die Quelle 28 mit einer Beleuchtungsoptik 34 gezeigt. Die Optik kann ein einziges Element oder eine Kombination von Linsen, Filtern und/oder holographischen Elementen umfassen, um eine geeignete kollimierte und allgemein gleichmäßige Beleuchtung der Zieloberfläche zu bewerkstelligen. Die Wellenlänge des durch die Quelle 28 emittierten Lichtes sollte so ausgewählt sein, daß sie die Raumfrequenzinformationen, die zur Navigation zur Verfügung stehen, verbessert. Ein Festmusterrauschen in dem Beleuchtungsfeld sollte minimiert werden. Der Ausgang der Quelle 28 kann eine Einstellung erfordern, um große Dynamikbereiche eines Reflexionsvermögens des Mediums zu berücksichtigen, während sich die Scanvorrichtung über bedruckte Materialien mit absorbierenden oder reflektierenden Tinten oder anderen Markierungsmitteln weiter fortbewegt.
  • In 4 wird Licht von einer Quelle 35 bei der Beleuchtungsoptik 36 kollimiert und anschließend durch einen am plitudenteilenden Strahlteiler 37 umgelenkt. Derjenige Abschnitt der Lichtenergie von der LED, der zu dem und durch den Strahlteiler gelenkt bzw. übertragen wird, ist in 4 nicht gezeigt. Die Lichtenergie von dem Strahlteiler beleuchtet das Original 14 entlang der Normalen zu der Oberfläche.
  • Ebenfalls in 4 dargestellt ist der Abschnitt der Lichtenergie, der von dem Original 14 reflektiert oder gestreut und durch den Strahlteiler 37 zum Öffnungsbilden und Filtern bei einem Element 38 und zum Fokussieren auf ein Bild bei einem Element 39 geleitet wird. Der Abschnitt der Lichtenergie, der von dem Original zu dem Strahlteiler geleitet wird und von dem Strahlteiler reflektiert wird, ist nicht gezeigt. Die Vergrößerung der Navigationsbilderzeugungsoptik sollte über das Sichtfeld des zweidimensionalen Sensorarrays 24, das das fokussierte Licht erfaßt, konstant sein. Bei vielen Anwendungen müssen die Modulationstransferfunktionen, d. h. die Amplitudenmaßzahl der optischen Frequenzantwort der Navigationsoptik so sein, daß eine Dämpfung vor der Nyquist-Frequenz geliefert wird, die durch den Abstand der Sensorelemente des Navigationssensors und durch die Vergrößerung der optischen Elemente bestimmt wird. Die optischen Elemente sollten ferner entworfen sein, um zu verhindern, daß eine Hintergrundbeleuchtung ein Rauschen erzeugt. Man beachte, daß auch ein wellenfrontteilender Strahlteiler verwendet werden könnte.
  • Die Auswahl des Einfallswinkels hängt von den Materialeigenschaften des Originals ab. Beleuchtungsstreifwinkel erzeugen längere Schatten und einen deutlicheren Kontrast, oder ein Wechselstromsignal, wenn die Oberfläche des Originals nicht glänzend ist. Der Gleichstromsignalpegel erhöht sich jedoch mit zunehmender Annäherung des Beleuchtungswinkels an die Senkrechte des Originals.
  • Ein Beleuchten der Zielregion des Originals 14 bei einem Streifwinkel 30 funktioniert gut bei Anwendungen, bei denen die Oberfläche des Originals auf der mikroskopischen Ebene eines hohes Maß an Unebenheit aufweist. Beispielsweise liefert eine Einführung von Licht von der Quelle 28 bei einem Streifwinkel ein hohes Signal/Rausch-Verhältnis von Daten, die auf inhärente strukturelle Merkmale bezogen sind, wenn das Original ein Schreibwarenartikel, Karton, Stoff oder die menschliche Haut ist. Andererseits kann die Verwendung von inkohärentem Licht bei einem normalen Einfallswinkel bei Anwendungen bevorzugt werden, bei denen Positionsdaten benötigt werden, um eine Scannerbewegung entlang solcher Originale wie Photographien, Glanzmagazinseiten und Overhead-Transparentfolien nachzuverfolgen. Bei einer normalen Beleuchtung unter Verwendung von inkohärentem Licht liefert ein Betrachten des Originals in dem spiegelnd reflektierten Feld ein Bild, das einen ausreichend hohen Texturgehalt aufweist, um eine bild- und korrelationsbasierte Navigation zu ermöglichen. Die Oberfläche des Originals weist ein mikroskopisches Relief auf, derart, daß die Oberfläche Licht reflektiert, als ob die Oberfläche ein Mosaik aus Feldern bzw. Facetten wäre. Viele der „Felder" eines Originals reflektieren Licht in Richtungen, die leicht von der Normalen abweichen. Ein Sichtfeld, das das gestreute Licht und das spiegelnd reflektierte Licht umfaßt, kann somit modelliert werden, als ob die Oberfläche aus vielen derartigen Feldern zusammengesetzt wäre, wobei jedes bezüglich der Normalen etwas anders geneigt ist. Diese Modellierung ist ähnlich derjenigen von W. W. Barkas in einem Artikel mit dem Titel „Analysis of Light Scattered from a Surface of Low Gloss into Its Specular and Diffuse Components", in Proc. Phys. Soc., Bd. 51, S. 274–292 (1939).
  • 4 zeigt eine Beleuchtung durch eine Quelle 35 von inkohärentem Licht, das an der Normalen der Oberfläche des Originals 14 entlanggeleitet wird. 5 beschreibt eine Beleuchtung bei einem Streifwinkel 30. Bei einem dritten Ausführungsbeispiel wird keine Beleuchtung geliefert. Statt dessen werden die Navigationsinformationen unter Verwendung von Hintergrundlicht, d. h. Licht aus der Umgebung, akkumuliert.
  • Bei einem vierten Ausführungsbeispiel wird eine kohärente Beleuchtung bei einem normalen Einfall eingebracht, um eine maserungsbasierte Navigation zu erlauben. Eine relative Bewegung zwischen einer Scanvorrichtung und einem Original kann nachverfolgt werden, indem eine Bewegung einer Maserung relativ zu den Navigationssensoren nachverfolgt wird. Falls eine kohärente Beleuchtung ohne Verwendung einer Bilderzeugungsoptik verwendet wird, so sind die sich ergebenden vorherrschenden Maserungszellgrößen mit einer kohärenten Beleuchtung durch das Auswählen einer kleinen Beleuchtungsfläche und dadurch, daß zwischen der Oberfläche des Originals und dem Photodetektorarray des Navigationssensors 24 eine relativ große Trennung vorliegt, ausreichend groß, um das Nyquist-Abtastkriterium zu erfüllen. Die Verwendung eines Strahlteilers ermöglicht, daß die Richtung sowohl der einfallenden Beleuchtung als auch der erfaßten Streuung nahezu senkrecht zu der Oberfläche des Originals ist, wie auf ähnliche Weise in 4 bewerkstelligt wird.
  • Unter. Bezugnahme auf 6 wird der Scanner 10 in der Darstellung über ein Original 44 bewegt, das einen auf eine Oberfläche des Originals aufgedruckten Block 46 aufweist. Da der Scanner 10 keinerlei kinematischen Einschränkungen in der Ebene des Originals unterworfen ist, besteht eine Tendenz, daß ein Benutzer einem krummlinigen Pfad über das Original folgt, wie wenn sich die Hand und der Vorderarm des Benutzers um den Ellbogen drehen. Bei 6 folgt die Scanvorrichtung in der Darstellung einem gebogenen Pfad 48 über den Block 46. Falls die untere Kante der Scanvorrichtung diejenige Kante ist, die sich näher an dem Ellbogen befindet, der die Drehachse definiert, weist die untere Kante einen kürzeren Radius auf. Folglich variieren Bilderzeugungselemente eines Bilderzeugungssensors bezüglich der Zeit und der Entfernung, die erforderlich ist, um den Block 46 zu passieren. Ein verzerrtes Bild 50 des Blocks wird aufgenommen, während die Vorrichtung zu der zweiten Position 52 bewegt wird, in gestrichelter Linie gezeigt.
  • Das aufgenommene Bild 50 wäre in der Abwesenheit eines Verarbeitens das gespeicherte Bild, was nachstehend beschrieben wird. Während jedoch der Bilderzeugungssensor Daten aufnimmt, die auf den Block 46 bezogen sind, werden Navigationsinformationen erfaßt. Bei dem beschriebenen Ausführungsbeispiel erfaßt bzw. erfassen ein oder mehrere Navigationssensoren Daten, die auf inhärente strukturelle Merkmale des Originals 44 bezogen sind. Eine Bewegung der inhärenten strukturellen Merkmale relativ zu der Scanvorrichtung 10 wird nachverfolgt, um eine Verschiebung des Bilderzeugungssensors relativ zu dem Block 46 zu ermitteln. Ein getreues aufgenommenes Bild 54 kann anschließend erzeugt werden. Das Bild 54 wird hierin als das „berichtigte" Bild definiert.
  • In 7 ist ein Ausführungsbeispiel eines Navigationsverarbeitens gezeigt. Das Navigationsverarbeiten wird durchgeführt, indem aufeinanderfolgende Rahmen von Navigationsinformationen, beispielsweise Daten, die auf inhärente strukturelle Merkmale bezogen sind, korreliert werden. Die Korrelationen vergleichen die Positionen der inhärenten strukturellen Merkmale in aufeinanderfolgenden Rahmen, um Informationen zu liefern, die auf die Position eines Navigationssensors zu einem bestimmten Zeitpunkt bezogen sind. Die Navigationsinformationen werden anschließend verwendet, um Bilddaten zu berichtigen. Die Verarbeitung der 7 wird in der Regel für jeden Navigationssensor durchgeführt.
  • Bei einem ersten Schritt 56 wird ein Referenzrahmen erfaßt. Tatsächlich ist der Referenzrahmen eine Startposition. Die Position eines Navigationssensors zu einem späteren Zeitpunkt kann bestimmt werden, indem ein Abtastrahmen von Positionsdaten von dem Navigationssensor zu dem späteren Zeitpunkt erfaßt wird 58 und anschließend Korrelationen 60 zwischen dem Referenzrahmen und dem später erfaßten Abtastrahmen berechnet werden.
  • Das Erfassen des anfänglichen Referenzrahmens 56 kann auf eine Einleitung des Bilderzeugungsprozesses hin stattfinden. Beispielsweise kann die Erfassung durch ein bloßes Inkontaktbringen der Scanvorrichtung mit dem Original ausgelöst werden. Alternativ dazu kann die Scanvorrichtung eine Starttaste umfassen, die den Bilderzeugungsprozeß und den Navigationsprozeß einleitet. Eine Einleitung bzw. Initiierung kann auch durch ein periodisches Pulsieren des Beleuchtungssystems jedes Navigators stattfinden. Falls ein reflektiertes Signal vorliegt, das eine vorgeschriebene Reflexionsschwelle oder ein Korrelationssignal, das eine Bewegung angibt, überschreitet, wird anschließend der Referenzrahmen erfaßt.
  • Obwohl das Navigationsverarbeiten rechentechnisch durchgeführt wird, können die Konzepte dieses Ausführungsbeispiels unter Bezugnahme auf 7 und 8 beschrieben werden. In der Darstellung weist ein Referenzrahmen 62 ein Bild eines T-förmigen inhärenten strukturellen Merkmals 64 auf. Die Größe des Referenzrahmens hängt von Faktoren wie beispielsweise der maximalen Scangeschwindigkeit der Scanvorrichtung, den vorherrschenden Raumfrequenzen beim Abbilden der strukturellen Merkmale sowie der Bildauflösung des Sensors ab. Eine praktische Größe des Referenzrahmens für einen Navigationssensor, der zweiunddreißig Pixel (N) mal vierundsechzig Pixel (M) aufweist, beträgt 24 × 56 Pixel.
  • Zu einem späteren Zeitpunkt (dt) erfaßt ein Navigationssensor einen Abtastrahmen 66, der bezüglich des Rahmens 62 verschoben ist, der jedoch im wesentlichen dieselben inhärenten strukturellen Merkmale zeigt. Die Dauer dt ist vorzugsweise so eingestellt, daß die relative Verschiebung des T-förmigen Merkmals 64 geringer ist als ein Pixel des Navigationssensors bei der Translationsgeschwindigkeit der Scanvorrichtung. Für Geschwindigkeiten von 0,45 Metern/sek. bei 600 dpi ist ein akzeptabler Zeitraum 50 μs. Diese relative Verschiebung wird hierin als „Mikroschritt" bezeichnet.
  • Falls sich die Scanvorrichtung während des Zeitraums zwischen dem Erfassen 56 des Referenzrahmens 62 und dem Erfassen 58 des Abtastrahmens 66 bewegt hat, so sind das erste und das zweite Bild des T-förmigen Merkmals diejenigen, in denen sich das Merkmal verschoben hat. Während das bevorzugte Ausführungsbeispiel eines ist, bei dem dt geringer ist als die Zeit, die eine Bewegung eines vollständigen Pixels erlaubt, ist die schematische Darstellung der 8 eine, bei der sich das Merkmal 64 um ein Pixel nach oben und nach rechts verschieben darf. Die Annahme einer Verschiebung um ein vollständiges Pixel dient hier lediglich der Vereinfachung der Veranschaulichung.
  • Element 70 in 8 stellt ein sequentielles Verschieben der Pixelwerte des Rahmens 68 in die acht Nächster-Nachbar-Pixel dar. Das heißt, Schritt „0" umfaßt keine Verschiebung, Schritt „1" ist eine diagonale Verschiebung nach oben und nach links, Schritt „2" ist eine Verschiebung nach oben usw. Auf diese Weise können die pixelverschobenen Rahmen mit dem Abtastrahmen 66 kombiniert werden, um das Array 72 aus Positionsrahmen zu erzeugen. Der als „Position 0" bezeichnete Positionsrahmen umfaßt keine Verschiebung, so daß das Ergebnis lediglich eine Kombination der Rahmen 66 und 68 ist. „Position 3" weist die minimale Anzahl von schraffierten Pixeln auf und ist somit der Rahmen mit der höchsten Korrelation. Auf der Basis der Korrelationsergebnisse wird bestimmt, daß die Position des T-förmigen Merkmals 64 in dem Abtastrahmen 66 eine diagonale Verschiebung nach rechts und nach oben relativ zu der Position desselben Merkmals bei einem früher erfaßten Referenzrahmen 62 ist, was bedeutet, daß sich die Scanvorrichtung während des Zeitraums dt nach links und nach unten bewegt hat.
  • Obwohl andere Korrelationslösungsansätze verwendet werden können, ist ein akzeptabler Lösungsansatz eine Korrelation der „Summe der quadrierten Differenzen". Für das Ausführungsbeispiel der 8 sind neun Korrelationskoeffizienten (Ck = C0, C1 ... C8) aus neun Versätzen bei einem Element 70 gebildet, wobei die Korrelationskoeffizienten durch folgende Gleichung ermittelt werden: Ck = ΣiΣj(sij – R(ij)+k)2 wobei Sij den navigationssensorgemessenen Wert bei der Position ij des Abtastrahmens 66 bezeichnet und Rij den navigationssensorgemessenen Wert an dem Rahmen 68, wie er bei dem Element 70 in der k-Richtung verschoben ist, bezeichnet, wobei k der Identifizierer der Verschiebung bei dem Element 70 ist. In 8 liefert k = 3 den Korrelationskoeffizienten mit dem niedrigsten Wert.
  • Korrelationen werden verwendet, um die Positionen identischer Merkmale in aufeinanderfolgenden Rahmen zu finden, um die Verschiebungen der Merkmale von Rahmen zu Rahmen zu ermitteln. Ein Summieren oder Integrieren dieser Verschiebungen und ein Korrigieren in bezug auf Skalierungsfaktoren, die durch den Entwurf der relevanten Optik eingebracht werden, bestimmen die Verschiebungen des Bilderzeugungssensors, während eine Scanprozedur vonstatten geht.
  • Wie zuvor erwähnt wurde, werden die Rahmen-zu-Rahmen-Korrelationen als „Mikroschritte" bezeichnet, da Rahmenraten so gewählt werden, daß sie ausreichend hoch sind, um zu gewährleisten, daß die Verschiebungen die Abmessung eines einzelnen Pixels nicht überschreiten. Eine Überabtastung kann eine Teilpixel-Verschiebungspräzision liefern. Unter Bezugnahme auf 7 wird anschließend an jede Berechnung 64 der Korrelationen eine Bestimmung 74 durchgeführt, ob ein Mikroschritt unternommen werden soll. Falls ein Mikroschritt erforderlich ist, wird der Referenzrahmen bei 76 verschoben. Bei diesem Schritt wird der Abtastrahmen 66 der 8 zum Referenzrahmen, und es wird ein neuer Abtastrahmen erfaßt. Die Korrelationsberechnung wird anschließend wiederholt.
  • Während der Prozeß ein hohes Maß an Korrelationsübereinstimmung liefert, akkumulieren jegliche Fehler, die auftreten, mit jeder nachfolgenden Verschiebung 76 eines Abtastrahmens 66 zu der Referenzrahmenbezeichnung. Um der Wachstumsrate dieses „Zufallsbewegungs"-Fehlers eine Beschränkung aufzuerlegen, wird ein Abtastrahmen in einem separaten Pufferspeicher gespeichert. Dieser separat gespeicherte Abtastrahmen wird zu einem neuen Referenzrahmen für eine nachfolgende Serie von Korrelationsberechnungen. Die letztgenannte Korrelation wird als „Makroschritt" bezeichnet.
  • Durch Verwendung von Makroschritten kann eine präzisere Bestimmung einer Scannerverschiebung über eine Entfernung von m Bildrahmenverschiebungen, d. h. m Mikroschritten, erhalten werden. Der Fehler bei einem Makroschritt ist ein Ergebnis einer einzelnen Korrelationsberechnung, wohingegen der äquivalente Fehler von m Mikroschritten das m1/2-fache des Fehlers in einem einzelnen Mikroschritt ist. Obwohl sich der Mittelwert an Fehlern bei m Mikroschritten mit zunehmendem m an null annähert, nimmt die Standardabweichung des Mittelwerts von Fehlern als m1/2 zu. Somit ist es vorteilhaft, die Standardabweichung eines akkumulierten Fehlers zu verringern, indem Makroschritte verwendet werden, die ein m aufweisen, das so groß wie praktisch möglich ist, solange die beiden Rahmen, die einen Makroschritt definieren, nicht so weit voneinander beabstandet sind, daß sie keine beträchtliche Region eines gemeinsamen Bildinhalts aufweisen.
  • Die Abtastperiode dt muß nicht konstant sein. Die Abtastperiode kann als Funktion vorheriger Messungen ermittelt werden. Ein Verfahren, das eine Variable dt verwendet, besteht darin, die Genauigkeit einer Verschiebungsberechnung zu verbessern, indem die relative Verschiebung zwischen auf einanderfolgenden Referenzrahmen innerhalb bestimmter Grenzen gehalten wird. Beispielsweise kann die Obergrenze eine Ein-Pixel-Verschiebung sein, während die Untergrenze durch numerische Abrundungsüberlegungen beim Verarbeiten der Navigationsdaten bestimmt wird.
  • Unter Bezugnahme auf 9a kann das bei dem Bilderzeugungssensor 22 erzeugte Bildsignal dann auf der Basis der Navigationsdaten „positionsmarkiert" werden. Bei einem Ausführungsbeispiel werden Pixelwerte von den Navigationssensoren 24 und 26 durch einen Navigationsprozessor 80 zum Durchführen der Operationen der 7 und 8 empfangen. Auf der Basis der berechneten Korrelationen werden Koordinaten für die aktuelle Position des ersten Navigationssensors 24 und des zweiten Navigationssensors 26 ermittelt.
  • In einem Makroschritt stellt der Navigationsprozessor 80 direkt die translatorische Komponente der Bewegung jedes Navigationssensors wieder her. Die Daten von beiden Navigationssensoren müssen integriert werden, um eine Absolute-Position-Schätzung zu erhalten, die ferner jegliche Drehung des Scankopfes berücksichtigt. Der Prozessor 80 erhält ein Modell der aktuellen Orientierung des Scankopfes bezüglich seiner anfänglichen Orientierung aufrecht. Die einzelnen Schätzungen der Translation jedes Navigationssensors werden bezüglich dieses Modells interpretiert. Dagegen wird die Orientierung des Scannermodells selbst periodisch aktualisiert.
  • Bei einem Ausführungsbeispiel sind die Mikroschritte jedes Navigationssensors so synchronisiert, daß, wenn der Navigationssensorprozessor 80 einen Makroschritt bei einem Navigationssensor erfordert, er ferner einen Makroschritt in dem anderen auslöst. Dies vereinfacht die Interpretation der durch jeden Navigationssensor aufgezeichneten Translationen. Falls die Orientierung des Scanners bei einem Makroschritt T θ Grad von der Vertikalen beträgt, so wird die aufgezeichnete Translation in dem Mikroschritt jedes Navigationssensors wie folgt interpretiert.
  • 9b zeigt die Bewegung der Navigationssensoren als Paar. Für jeden haben wir Translationen bezüglich eines Koordinatenrahmens (mit als u und v markierten Einheitsvektoren) aufgezeichnet, der die Orientierung des Scanners beschreibt. Diese weisen eine Größe (u1, v1) und (u2, v2) für den ersten bzw. den zweiten Navigationssensor auf. Das Ziel besteht darin, diese Translationen zu interpretieren, um die aktualisierten Positionen der Navigationssensoren bezüglich des globalen Koordinatenrahmens zu ergeben. Im Prinzip rekonstruieren wir den Pfad von einer stückweisen linearen Annäherung desselben, wobei die Größe der linearen Abschnitte durch die Größe des Makroschritts bestimmt wird.
  • Jeder Einheitsvektor ist auf die Orientierung des Scanners θ gemäß den folgenden standardmäßigen trigonometrischen Beziehungen v = (sinθ, cosθ) u = (cosθ, –sinθ)bezogen, wie wir jedoch sehen werden, können auch Schätzungen von u und v ohne eine rechentechnisch aufwendige trigonometrische Berechnung aufrechterhalten werden.
  • In 9b stellen P1 und P2 die Navigationssensorpositionen bezüglich des globalen Rahmens zu Beginn des Makroschritts dar; sie weisen Werte (x1, y1) bzw. (x2, y2) auf. Die aktualisierten Positionen bezüglich desselben globalen Rahmens, einige Navigationssensorrahmen später, werden durch P1' und P2' wiedergegeben, die die Werte (x1', y1') bzw. (x2', y2') aufweisen.
  • Bezüglich des Grenzwerts (von dem wir annehmen, daß wir ihm nahe sind, um eine genaue Integration durchzuführen) muß die v-Komponente der Translation jedes Navigationssensors dieselbe sein (ein Scheren beeinflußt jedes Ende gleichermaßen, und bezüglich des Grenzwerts bewirkt eine Drehung keinerlei v-Komponente). Somit können wir v1 und v2 auf ihren Mittelwert v = (v1 + v2)/2einstellen. In diesem Fall werden die aktualisierten Endpunktpositionen durch P1' = P1 + u1u + vv und P2' = P2 + u2u + vvwiedergegeben. An diesem Punkt ist es ferner zweckmäßig, die Positionsschätzungen zum Zweck einer Entsprechung bezüglich der physischen Endpunkte des Bildsensors statt der einzelnen Navigationssensoren zu translatieren. Dies erfolgt unter Verwendung von Kalibrierungsdaten, die die physischen Positionen der Navigations- und Bildsensoren miteinander in Beziehung setzen. Der Einfachheit halber sollen die Endpunktpositionen den Mitten der ersten und letzten Sensorelemente des Bildsensors entsprechen.
  • Wir müssen den Trägheitsrahmen periodisch aktualisieren. Dies sollte nur am Ende eines Makroschritts oder zu Beginn des nächsten stattfinden. Es erfordert, daß die Makroschritte synchronisiert werden: das heißt, falls ein Navigationssensor einen neuen Makroschritt auslöst, da er die maximale Anzahl von Mikroschritten überschritten hat, sollte auch in dem anderen Navigationssensor ein Makroschritt ausgelöst werden, auch wenn er durchwegs ortsfest geblieben war. Dieser Lösungsansatz weist den zusätzlichen Vorteil auf, daß die Drehung des Navigationsrahmens immer gering ist, während die maximal erfahrene Drehung immer geringer sein muß als die maximale Anzahl von Mikroschritten dividiert durch die Basislinie zwischen Navigationssensoren.
  • Das Aktualisieren des Trägheitsrahmens weist den Effekt des Zurückaddierens der verlorenen Drehkomponente der Bewegung des Scanners auf. Dies wird implizit aus den Differentialtranslationen bestimmt, die die einzelnen Navigationssensoren erfahren. Statt die Drehkomponente der Bewegung explizit zu berechnen, wird der Trägheitskoordinatenrahmen direkt aus seiner Beziehung zu der Hauptachse des Scanners (der Linie, die die Navigationssensorpositionen verbindet) aktualisiert. Die v-Achse des Trägheitsrahmens ist ein Einheitsvektor entlang der Hauptachse, die von dem Navigationssensor 1 zu dem Navigationssensor 2 verläuft, und die u-Achse ist der zu derselben orthogonale Einheitsvektor, der die 2D-Basis abschließt.
  • Der aktualisierte Wert für v wird durch v' = (v'x, v'y) = (P2' – P1')/|P2' – P1'| = (P2' – P1')/Dgegeben, und der orthogonale Vektor u wird durch gegeben. Die Länge |P2' – P1| ist die konstante (Modulo-Navigationsfehler) Länge des Scanners, in 9b mit D gekennzeichnet. Dies vereinfacht die Berechnung des Trägheitsrahmens stark, da es das Erfordernis, die Quadratwurzel der Summe von Quadraten für jeden Makroschritt zu berechnen, vermeidet.
  • Der Navigationsprozessor 80 empfängt ferner N Pixelwerte des Bilderzeugungssensors 22 über einen Pixelverstärker 82 und einen Analog-Digital-Wandler 84. Obwohl 9 lediglich einen einzigen Abgriff von dem Bildsensor 22 und einen einzigen A/D-Wandler 84 zeigt, befinden sich mehrere Abgriffe, jeder bei einem A/D-Wandler, innerhalb des Schutzbereichs der Erfindung. Die Koordinaten der aktuellen Position sind an den Enden einer Linie von Daten, die der Anzahl von Pixeln in dem Bilderzeugungssensor entsprechen, „markiert". Der Ausgang 86 des Navigationsprozessors 80 ist somit ein positionsmarkierter Datenstrom.
  • Der Navigationsprozessor 80 muß Pixeldaten von dem Bilderzeugungssensor 22 und Positionsinformationen von den Navigationssensoren 24, 26 nicht unbedingt bei derselben Rahmenrate empfangen. Der Strom von Positionsdaten kann verwendet werden, um die Schätzung der Position der Endpunkte des linearen Sensors, was generell bei einer höheren räumlichen Auflösung liegt als der Pixelabstand des linearen Sensorarrays, zu aktualisieren. Die optimale Taktungsfrequenz des Lineares-Bild-Sensors wird allgemein durch die Bewegungsrate des Scanners ermittelt, damit das sich am schnellsten bewegende Ende bei einem Betrag abgetastet wird, der knapp unter dem Pixelabstand des linearen Sensors selbst liegt – andernfalls resultiert ein Überabtasten oder Unterabtasten. Ein Überabtasten führt zu erhöhten Rechen- und Datenverarbeitungserfordernissen an einem späteren Punkt der Bildverarbeitungs-Pipeline mit geringer oder ohne jegliche Verbesserung der Bildqualität, während ein Unterabtasten zu einer definitiven Verringerung der Bildqualität führt.
  • Eine Lösung besteht darin, den linearen Sensor bei einer feststehenden Frequenz abzutasten, die immer zu einem Überabtasten führt, das heißt sie würde die Abtasterfordernisse der schnellstmöglichen Scangeschwindigkeit überschreiten. Wenn sich der Scanner dann langsamer bewegt als bei der maximalen Scangeschwindigkeit, werden unerwünschte Abtastwerte durch den Navigationsprozessor auf der Basis der aktuellen Endpunktpositionsschätzungen verworfen. Das heißt, der Betrag der relativen Position jedes Endpunktes seit dem letzten Mal, als ein gültiges Inkrement von linearen Sensorabtastwerten und markierten Positionsdaten aus dem Navigationsprozessor 80 ausgegeben wurde, verwendet wird, um die Ausgabe weiterer Inkremente tormäßig zu steuern. Der einfachste Lösungsansatz besteht darin, eine Ausgabe nur dann zu erlauben, wenn der ein oder andere Betrag dem Pixelabstand (oder einem beträchtlichen Bruchteil desselben) streng gleichkommt oder denselben überschreitet. Dieser Lö sungsansatz führt wahrscheinlich zu einem Unterabtasten, insbesondere wenn bei knapp unter der maximalen Scangeschwindigkeit gescannt wird. Um ein Unterabtasten zu verhindern, könnte der aktuelle Abtastwert alternativ dazu ausgegeben werden, wenn eine Vorhersage der relativen Endpunktpositionen des nächsten linearen Sensorabtastwerts den Pixelabstand überschreitet, wobei die Vorhersage auf der Rate der Änderung (oder auf numerischen Derivaten einer höheren Ordnung) der Endpunktposition beruht. Ein dritter Lösungsansatz, der ebenfalls ein Unterabtasten verhindert, besteht darin, ein Inkrementpuffer in den Navigationsprozessor 80 einzubringen, so daß das vorhergehende Inkrement übertragen werden kann, wenn die Relative-Position-Daten des aktuellen Inkrements den Pixelabstand überschreiten.
  • Jede der oben genannten Abtaststrategien beruht auf einem synchronen Abtasten und führt allgemein zu einem bestimmten Grad an Über- oder Unterabtasten. Eine bessere Gesamtlösung, die näher an ein ideales räumliches Abtasten herankommt, besteht darin, daß der Navigationsprozessor 80 die Aufnahme des linearen Sensors auf asynchrone Weise auslöst. Ein Lösungsansatz besteht darin, daß die relative Endpunktposition seit der letzten gültigen Aufnahme (oder eine zukünftige Vorhersage derselben) direkt verwendet wird, um den besten Zeitpunkt zu identifizieren, um die Aufnahme und das Abtasten des linearen Sensors auszulösen.
  • Bei 10a weist ein Inkrement 88 des Datenstroms in der Darstellung Positionskoordinatenzellen 90, 92, 94 und 96 an den gegenüberliegenden Enden von N Pixelzellen auf, obwohl diese Reihenfolge nicht wesentlich ist.
  • Der Bilderzeugungssensor 22 wird getaktet, während sich die Scanvorrichtung über ein Original bewegt. Wie oben erörtert wurde, gewährleistet das Takten, daß das sich am schnellsten bewegende Element des Sensors zumindest einmal pro Pixelverschiebung abtastet.
  • Der positionsmarkierte Datenstrom an dem Ausgang 8b des Navigationsprozessors 80 ist gepuffert, wie in 10b gezeigt ist. Ein Puffer B hält eine Mehrzahl von Inkrementen 88 der 10a. Der Puffer B kann verwendet werden, um einen gesamten Scanvorgang zu berücksichtigen, wobei in diesem Fall eine Datenkomprimierung verwendet werden kann. Diese Daten werden dann auf geradlinige Koordinaten abgebildet, um ein endgültiges berichtigtes rekonstruiertes Bild gemäß einem Verfahren gemäß der Erfindung zu bilden, wie nun beschrieben wird.
  • Bei dem in der internationalen Patentanmeldung Veröffentlichungsnummer WO 96/27257 und in der US-Patentschrift Nr. 5578813 gelehrten bekannten Verfahren wird das Abbilden auf geradlinige Koordinaten durch ein Abbilden auf ein geradliniges Gitter einer vorbestimmten Größe erreicht. Ein derartiges Darstellen des geradlinigen Bildes als einzelnes zweidimensionales Array weist die doppelten Nachteile auf, daß es eine große Menge an Arbeitsspeicher erfordert und den Scanweg so einschränkt, daß er in eine vordefinierte Seite paßt. Dementsprechend liefern Ausführungsbeispiele der Erfindung ein verbessertes Verfahren, das ein dynamisches Verfliesungssystem liefert. Bei einem derartigen System wird der Bildraum als eine Anzahl von diskreten Feldern dargestellt, die zur Laufzeit auf Bedarfsbasis zugewiesen werden.
  • Bei einer derartigen feldbasierten Darstellung muß der tatsächliche Weg der Datenaufnahme (in dem Fall des oben beschriebenen Scanner-Ausführungsbeispiels ein Scanvorgang) nicht vor der Zeit begrenzt werden. Unter Verwendung eines generischen Feldindexierungsschemas, wie es nachstehend ausführlich beschrieben wird, ist es möglich, mit einem Handscanner, wie er oben beschrieben wurde, jegliche geformte Region zu scannen: die Gesamtabmessungen des Scanvorganges werden lediglich durch die Gesamtfläche unter dem Scanvorgang, die den verfügbaren Speicher überschreitet, eingeschränkt. Wenn ferner bei Ausführungsbeispielen der Erfindung Felder „inaktiv" werden und nicht mehr das Verarbeiten anderer Felder bestimmen müssen (d. h. wenn sie zum Zweck der Berichtigung nicht mehr benötigt werden), können diese Felder während des Betriebs („on the fly") komprimiert werden, während eine Datenaufnahme fortgesetzt wird. Dies ermöglicht, daß der gesamte Arbeitsspeicher, der erforderlich ist, um das geradlinige Bild während des Verarbeitens zu speichern, stark verringert ist.
  • Bei einem bevorzugten Verfahren wird jedes aktive Feld als zweidimensionales Array aus Bytes dargestellt, wobei jedes Byte ein Pixel darstellt. Andere Pixeldarstellungen, wobei entweder mehrere Pixel als ein einzelnes Byte oder mehrere Bytes pro Pixel dargestellt sind, könnten ohne weiteres berücksichtigt werden. Der Zweckmäßigkeit halber sind die Felder so gewählt, daß sie quadratisch sind und eine Abmessung (Höhe und Breite) aufweisen, die eine Potenz von 2 ist. 64 × 64 ist eine besonders geeignete Wahl: die nachstehend erläuterten Ausführungsbeispiele verwenden diese Abmessung. Die der oberen linken Ecke jedes Feldes zugeordnete Geradliniges-Bild-Position ist von der Geometrie des Schemas her ein Vielfaches der Feldgröße. Felder überlappen einander nicht; sie sind bezüglich des geradlinigen Bildes, das sie darstellen, zusammenhängend.
  • Einzelne Felder liegen in einem von drei Zuständen vor:
    leer was darauf hindeutet, daß das Feld derzeit nicht existiert
    aktiv ein derzeit aktives Feld, das durch ein zweidimensionales Array dargestellt wird
    komprimiert ein abgeschlossenes Feld, das bereits komprimiert wurde
  • Ein Indexieren von Feldern ist zum Zweck einer effektiven Operation eines derartigen Verfahrens wichtig. Diesbezüglich weist der durch ein bevorzugtes Verfliesungsschema angewandte Lösungsansatz zwei Hauptkomponenten auf:
    • – ein Indexierungsschema, das die Liste von Feldern, die das gescannte Bild darstellt, aufrechterhält und ein Verfahren zum räumlichen Indexieren einzelner Felder liefert; und
    • – einen schnellen lokalen Index in derzeit aktive Felder, der die Mehrkosten der Verwendung des Feldes auf der Basis der Darstellung für den häufigen Zugriff auf das Bild, der während des Berichtigungsvorgangs stattfindet, minimiert.
  • Jede Koordinate eines geradlinigen Bildes wird als zwei nicht mit Vorzeichen versehene 16-Bit-Werte dargestellt; einer für x und einer für y. Für den Fall von 64 × 64 großen Feldern liefern die oberen zehn Bits von x und y den Feldindex, der verwendet wird, um das Feld, in dem das geradlinige Pixel positioniert ist, zu identifizieren. Die unteren 6 Bits von x und y ergeben die Pixelposition innerhalb des Feldes und werden als Indizes für das zweidimensionale Array verwendet, das ein aktives Feld darstellt. Falls das durch die oberen zehn Bits identifizierte Feld leer ist oder bereits komprimiert wurde, so ist es nicht möglich, die unteren 6 Bits zu verwenden, um das betreffende Pixel direkt zu indexieren. In diesen beiden Fällen muß dem Feld Speicher zugewiesen werden bzw. muß das Feld dekomprimiert werden. Eine Alternative zur Dekomprimierung ist die Zuweisung eines zusätzlichen Feldes, das später mit dem zuvor gebildeten Feld vereinigt werden muß. Die Komprimierung und Vereinigung sind rechentechnisch aufwendige Operationen und sollten zum Zweck eines effizienten Betriebs so wenig wie möglich eingesetzt werden.
  • 10 Bits erlauben ein Indexieren eines Feldraums, der 1024 Felder auf einer Seite aufweist. Jedes 64 × 64-Feld ist ungefähr 1/5 eines Zolls auf jeder Seite bei 300 dpi, was einen adressierbaren Raum erzeugt, der über 200 Zoll breit und hoch ist. Diese virtuelle Bildgröße erfüllt die anspruchsvollste Scanaufgabe, falls beispielsweise der Ursprung eines Scanwegs nahe der Mitte des Adreßraums positioniert ist, ist es möglich, in einer beliebigen Richtung bis zu 100 Zoll zu scannen, bevor einem der Feldraum ausgeht. Die Probleme eines Erschöpfens des Arbeitsspeichers oder eines langfristigen Speicherns sind somit bedeutender: diese werden nachstehend ausführlicher erläutert.
  • Eine besonders zweckmäßige Art und Weise, den Feldindex darzustellen, ist ein zweidimensionales Array. Diese Form des Feldindizes erfordert weniger Speicher als ein vollkommen flaches Array, um flache Bilder derselben Größe zu indexieren (wobei die Bildspeicherung selbst ignoriert wird). Falls jedoch alle zehn Bits verwendet würden, würde auch dieser Lösungsansatz 2 MB an Arbeitsspeicher nur für den Index erfordern (wobei für jeden Feldeintrag 16 Bits veranschlagt werden). Bei Anwendungen wie beispielsweise einem Handhalte-Scannen ist die Verwendung derartiger großer Speichermengen derzeit sehr nachteilhaft. Es ist somit wünschenswert, einen alternativen Lösungsansatz zu finden, der weniger Arbeitsspeicher verbraucht.
  • Man hat festgestellt, daß ein Einsetzen eines kleineren Arrays, das lediglich 8 Bits verwendet, um die Felder zu indexieren, möglich ist. Dies erfordert lediglich 130 KB an Arbeitsspeicher und ermöglicht Scanvorgänge mit einer Breite und Höhe von bis zu etwa 25 Zoll. Die folgende Beschreibung gibt an, wie ein Indexierungsschema auf diese Weise aufgebaut werden kann. 11 veranschaulicht ein derartiges Array 201 (wobei jedoch lediglich vier Indexbits gezeigt sind). Jeder 16-Bit-Eintrag in dem Feldindexarray ist entweder auf null eingestellt (was impliziert, daß es leer ist, wie bei Arrayeinträgen 202) oder enthält einen Index (diejenigen Arrayeinträge 203, die in 11 schraffiert gezeigt sind) in ein Feldverzeichnis 211. Eine Verwendung von 16 Bits als Index in das Feldverzeichnis 211 ermöglicht einen Zugriff auf bis zu 64K Felder, was die Gesamtfläche des Scanvorgangs auf höchstens 2560 Quadratzoll für Handscanner-Ausführungsbeispiele bei 300 dpi beschränkt. Angesichts der Tatsache, daß eine Seite der Größe „Letter" die Größenordnung von 100 Quadratzoll (2500 Felder) aufweist, stellt dies kein Problem dar, so daß in der Praxis sogar die Verwendung eines kleineren Feldverzeichnisses möglich ist.
  • Jeder Feldverzeichniseintrag enthält ein Flag, um anzugeben, ob es komprimiert wurde oder nicht, einen Zeiger auf seine Startadresse und einen Längenparameter, der die Anzahl von Bytes angibt, die verwendet werden, um die komprimierte Version zu speichern. Es ist zweckmäßig, aktive und komprimierte Datenblöcke in separaten Speicherpaketen aufzubewahren. Auf einen Abschluß des Scanvorgangs hin werden schließlich alle Blöcke komprimiert, so daß ein getrenntes Aufbewahren der komprimierten Daten von dem Arbeitsspeicher ein zusätzliches Verarbeiten, das erforderlich ist, um den komprimierten Speicher zusammenzusetzen und ihn an einen Langzeitspeicher zu transferieren, minimiert. Ein Zeiger nextAvailableDirectoryEntry (nächsterVerfügbarerVerzeichnisEintrag) gibt an, welche Verzeichniseinträge verwendet wurden. Sie werden sequentiell zugewiesen, während jedes neue Feld angetroffen wird, und sie werden jeweils verwendet, um ein einzelnes Feld pro Scanvorgang darzustellen.
  • Ein besonders bevorzugter Lösungsansatz besteht darin, den Index als teilweisen Viererbaum (Quad-Tree) darzustellen. Dies wird für den Fall einer Verwendung von zehn Bits eines Feldindexes erörtert. Jeder Knoten in dem Viererbaum kann lediglich vier Kinder aufweisen: von denen keine, manche oder alle auf null eingestellt sein können. Der Knoten weist Zeiger auf diese Kinder auf. Die vier Kinder (mit 0, 1, 2 und 3 numeriert) entsprechen Raumpositionen: oben links, oben rechts, unten links bzw. unten rechts. Jede Ebene in dem Baum stellt somit eine räumliche Auflösung dar, die doppelt so hoch ist wie die der vorherigen höheren Ebene in dem Baum. In diesem Fall gibt es zehn Ebenen in dem Baum – eine für jedes der zehn Bits des bereitgestellten Feldindizes, separat, sowohl in der x- als auch der y-Dimension. Auf jeder Ebene gibt das entsprechende Bit von dem y-Index oben oder unten an (jeweils 0/1), und das entsprechende Bit von dem x-Index gibt links oder rechts an (jeweils 0/1). Auf diese Weise ergibt die durch das y-Bit, gefolgt von dem x-Bit, gebildete 2-Bit-Zahl die Kindknotennummer auf der aktuellen Ebene in dem Baum an. „Blattknoten" des Baumes (diejenigen auf der niedrigsten Ebene, Ebene zehn) sind entweder leer (auf null eingestellt) oder zeigen auf ein Feldverzeichnis, das wie oben unter Bezugnahme auf 11 beschrieben dargestellt ist.
  • 12a und 12b zeigen einen 4-Bit-Baum, der die in 11 für den einfachen zweidimensionalen Feldindex, der oben beschrieben wurde, gezeigten aktiven und komprimierten Felder darstellt. 12a ist eine räumliche Darstellung des Feldindizes, die den unterschiedlichen Grad einer räumlichen Auflösung zeigt, die für durch den Index abgedeckte unterschiedliche Regionen existiert. Nur diejenigen Regionen, die gescannte Regionen darstellen (oder zu denselben benachbart sind) und entweder aktive oder komprimierte Felder aufweisen, werden mit der höchsten Auflösung in dem Index dargestellt. 12(b) zeigt den Indexbaum, der dem Raumindex entspricht. Gefüllte Blattknoten, die auf Feldverzeichniseinträge zeigen, sind durch eine vertikale Linie unter dem entsprechenden Blattknoten in dem Baum angegeben. Der Feldeintrag 224 mit einem binären 4-Bit-y-Index 0101 und einem binären 4-Bit-x-Index 1000 ist in 12a durchgehend gezeigt: die entsprechende Arrayzelle ist in 11 als Zelle 204 gezeigt. Der zugeordnete Blattknoten 225 ist in 12b angegeben. Wie zu sehen ist, ergeben die binären Zahlen, die aus jedem aufeinanderfolgenden Paar von Bits aus den beiden Indizes gebildet sind (wobei das y-Bit in jedem Fall zuerst angegeben ist) die Knotennummer auf jeder Ebene in dem Baum, die zu diesem Blattknoten führen. Dies liegt in der Reihenfolge 01 (Knoten Nummer 1), dann 10 (Knoten Nummer 2), dann 00 (Knoten Nummer 0) und schließlich wieder 10 (Knoten Nummer 1) vor.
  • 13 zeigt eine geeignete Darstellung des Baums als Array aus Vierern 214: praktische Ausführungsbeispiele weisen 16 Bits auf (d. h. 10 Indexbits, sowohl für die x- als auch für die y-Abmessung), obwohl in 13 der Zweckmäßigkeit halber der 4-Bit-Fall veranschaulicht ist. Der erste Vierer in dem Array ist immer der Wurzelknoten des Baumes. Die Positionen in dem Array aller anderen Knoten in dem aktuellen Baum sind von der Reihenfolge, in der der Baum aufgebaut wurde, abhängig. Der Aufbau des Baumes wird nachstehend beschrieben. Zuvor, als wir das Indexieren des Baumes beschrieben, wurde angenommen, daß der Baum ordnungsgemäß aufgebaut wurde und daß sich das Feld, das wir zu adressieren wünschten, bereits in dem Baum befand.
  • 12 zeigt die Bits, die verwendet werden, um den Baum zu indexieren, der vertikal angeordnet ist, wobei sich der y-Koordinate-Index auf der linken Seite befindet. Wie oben erörtert wurde, bildet jedes Paar von entsprechenden y- und x-Koordinatenbits eine Zweibitadresse, die einem Kind eines Knotens in dem Baum entspricht. Das erste Paar stellt immer ein Kind des Wurzelknotens (des ersten Knotens in dem Viererarray) dar. Die aus dem ersten Paar von Bits gebildete Zweibitadresse gibt die Nummer (0, 1, 2, 3) des 16-Bit-Elements in dem Vierer an, das das Kind des Wurzelknotens darstellt. Der an dieser 16-Bit-Position gespeicherte Wert gibt den Viererarrayindex des Vierers an, der die Kinder jenes Knotens darstellt: es liegen wiederum deutlich vier derartige Kinder vor. Das zweite Paar von Bits identifiziert das Kind auf dieser Ebene. Dieser Prozeß setzt sich auf dieselbe Weise bis zum zehnten Bitpaar fort (bei dem in 13 gezeigten stärker eingeschränkten Fall bis zum vierten Bitpaar), wobei der Viererwert nun statt dessen eine Feldverzeichniseintragsnummer angibt – dieser letzte Knoten in dem Baum ist ein Blattknoten.
  • Die Viererbaumstruktur liefert eine sehr effiziente Darstellung des Feldindizes. Jeder Blattknoten des Baums stellt 4 Feldverzeichniseinträge dar. Ein Baum von 700 Viererknoten erfordert lediglich 700*(4 Kinder)*(2 Bytes), um ihn darzustellen; dies ist weniger als 6 KB für den gesamten Baum. Die meisten Knoten in dem Baum sind Blattknoten, da jeder Satz von vier Knoten lediglich ein Elternteil aufweist: es liegen 1/4 der Anzahl von Elternteilknoten als Blattknoten vor; 1/16 der Anzahl von Großelternknoten (im Sinne von Elternteilen von Elternteilen von Blattknoten); und 1164 Urgroßelternknoten usw. vor. Diese „Vorfahrenknoten" können als Serie summiert werden: die Serie konvergiert zu einer Anzahl von Gesamtvorfahrenknoten, die geringer ist als 3/8 der Anzahl von Blattknoten. In diesem Fall von 700 Gesamtviererknoten haben wir somit mehr als 500 Blattknoten, die 2000 Felder darstellen: im Fall eines Scanners, der bei 300 dpi arbeitet, ist dies mehr als genug, um die Fläche einer gesamten Seite der Größe „Letter" zu scannen. Ein besonderer Vorteil, den diese Datenstruktur liefert, besteht darin, daß diese Fläche in jeder Richtung gescannt werden kann. Wo größere Arrays verwendet werden, um den Viererbaum darzustellen, nimmt die Fläche, die gescannt werden kann, ferner linear zu.
  • Im folgenden wird der Aufbau des Viererbaums beschrieben. Dieser ist nicht komplex: alles, was benötigt wird, ist ein zusätzlicher Zeiger, nextAvailableQuad (nächsterVerfügbarerVierer), der gerade über den höchsten Viererarrayeintrag, der derzeit verwendet wird, hinauszeigt. Anfänglich wird lediglich der Wurzelknoten zugewiesen, alle Zeiger auf seine Kinder sind null (durch einen Viererarrayindexwert 0 dargestellt), und nextAvailableQuad zeigt auf einen Viererarrayeintrag 1. Beim Bauen des Baumes beginnen wir uns an dem Baum nach unten vorzuarbeiten, als ob wir ihn indexie ren würden. Falls der aus entsprechenden Paaren von y-Index- und x-Index-Bits zusammengesetzte Zweibitwert auf irgendeiner Ebene einen Nullzeiger angibt, so wird der aktuelle Wert von nextAvailableQuad substituiert, und nextAvailableQuad wird zu der nächsten Viererarrayposition inkrementiert. Die vier -Einträge für die Kinder des neu erstellten Knotens müssen selbstverständlich auf null eingestellt werden. Auf diese Weise wächst der Baum lediglich während seines Aufbaus, und es muß kein Verfahren, eine Löschung von Knoten in dem Baum zu unterstützen, enthalten sein.
  • Ein Verfahren zum Verfliesen im Zusammenhang mit einem Hand-Scannen ist in dem Flußdiagramm der 14 gezeigt. Dies umfaßt den Vorgang der Berichtigung, der zusammen mit dem Verfliesen stattfindet: Einzelheiten von Berichtigungsprozessen werden jedoch nicht hier, sondern vielmehr an einem späteren Punkt in dieser Beschreibung erörtert. Endpunktpositionsinformationen werden durch den Feldverwalter 231 aus dem Strom von Inkrementdaten 230 vor dem Punkt, an dem sie zur Berichtigung verwendet werden, gelesen. Die entsprechende Verzögerung zwischen dem Feldverwalter 231 und der Berichtigungseinheit 237 wird durch einen Inkrementhaltepuffer 232 eingebracht. Dieser wird verwendet, um eine vorbestimmte Anzahl von Inkrementen, die durch den Feldverwalter untersucht, jedoch nicht berichtigt wurden, zu halten. Wie aus der nachfolgenden Erläuterung klar wird, lautet eine geeignete Anzahl von Inkrementen, die zu halten sind, (2n + 1), wobei n eine Ganzzahl ist (in der Regel 33 Inkremente, bei bestimmten bevorzugten Ausführungsbeispielen). Wenn der Inkrementhaltepuffer 232 voll ist, wird die Feldverwaltung suspendiert, bis alle Inkremente in dem Haltepuffer 232 berichtigt wurden. Das letzte Inkrement eines derartigen Pakets von Inkrementen wird zu dem ersten Inkrement des nächsten Pakets (somit schreitet der kombinierte Verfliesungs- und Berichtigungsprozeß in 32 Inkrementschritten für einen 33-Inkremente-Haltepuffer 232 fort).
  • Während jeder Runde der Feldverwaltung wird die den Inkrementen in dem Inkrementhaltepuffer 232 (einschließlich dem wiederholten Inkrement von der vorherigen Runde) zugeordnete Endpunktgeometrie analysiert, um den Satz von aktuell aktiven Feldern zu identifizieren. Dies kann erfolgen, indem der Satz von Feldern betrachtet wird, durch den eine Linie, die zwischen die Endpunkte jedes Inkrements in dem Paket gezogen ist, verläuft. Der Supersatz aller derartigen Felder (d. h. die kombinierte Gruppe aller Felder, die durch ein Inkrement in dem Paket geschnitten werden) sind diejenigen, die während der Berichtigungsrunde, die folgen wird, wenn der Inkrementhaltepuffer 232 abgeschlossen ist, aktiv sind. Der Satz von Feldern, durch die die Linie zwischen den Endpunktpositionen verläuft, kann unter Verwendung einer Standardrahmenpufferlinienzeichnungstechnik ermittelt werden: ein Beispiel einer derartigen Technik ist in „Computer Graphics: Principles and Practice", James D. Foley, Andries van Dam, Steven K. Feiner and John F. Hughes, zweite Ausgabe, Addision-Wesley Publishing Company, Reading, Massachusetts, 1990, S. 72–81, erörtert. 15 zeigt einen Teil des Raumes möglicher Felder und den Teilsatz aktiver Felder, die die zwischen Endpunktpositionen eines Inkrements gezogene Linie schneiden.
  • Bevor eine derartige Linie durch den Raum möglicher Felder gezogen werden kann, müssen die Endpunktpositionsdaten von Geradliniges-Bild-Pixeleinheiten zu Feldindexeinheiten skaliert werden. Im Fall von 64 × 64-Feldern, wie sie als für ein Hand-Scannen geeignet angegeben wurden, beinhaltet dies eine Teilung durch 64. In der Praxis ist es sehr wünschenswert, die gesamte Bruchgenauigkeit, die in den Endpunktpositionsdaten vorliegt, aufrechtzuerhalten, um zu gewährleisten, daß genau derselbe Satz von Feldern, wie er während des bevorstehenden Berichtigungsvorgangs angetroffen werden wird, aktiv gemacht wird.
  • Hier sei angenommen, daß der Raum zwischen zwei Inkrementen nicht groß genug ist, um zu ermöglichen, daß ein ganzes Feld zwischen denselben liegt. Bei dem Ausführungsbeispiel des Handscannens, das mit der Verwendung von 64 × 64-Feldern betrachtet wird, wird diese Annahme sicher standhalten, da der Umfang der Trennung zwischen Inkrementen in der Regel höchstens zwei Ausgangspixeleinheiten beträgt. In der Praxis kann es sogar möglich sein, den Satz von Inkrementen (z. B. um zu diesem Zweck lediglich jedes Vierte zu berücksichtigen), die verwendet werden, um aktive Felder ohne einen Generalitätsverlust zu identifizieren, unterabzutasten, um verringerte rechentechnische Mehrkosten zu erzielen.
  • Während jedes aktive Feld auf diese Weise explizit gemacht wird, wird es zu einer Feldindextabelle N von Aktive-Felder-Indizes hinzugefügt. Während ein Feld während des Linienziehvorgangs angetroffen wird, werden dann die Indizes dieses Feldes mit jenen verglichen, die in der Tabelle N von Aktive-Felder-Indizes vorliegen. Falls bereits ein kompatibler Eintrag vorliegt, werden die neuen Feldindizes ignoriert; andernfalls werden sie zum Ende der Tabelle hinzugefügt, und die Tabellengröße wird um eins inkrementiert. Jedes Feldindexpaar erfordert 10 Bits für den y-Index und 10 Bits für den x-Index. Bei bevorzugten Ausführungsbeispielen wird aus nachstehend erörterten Gründen ein Paar von nicht mit Vorzeichen versehenen 16-Bit-Ganzzahlen verwendet, um das Feldindexpaar darzustellen, wobei der y-Index wiederum zuerst kommt und wobei auf denselben der x-Index folgt.
  • Die Tabelle N von Indizes derzeit aktiver Felder wird als Basis einer Anzahl von wichtigen Feldverwaltungsaktivitäten verwendet. Diese sind:
    • – Identifizierung von zuvor aktiven Feldern, die nicht mehr aktiv sind und nun komprimiert werden können;
    • – Aktualisieren des Feldindizes 214, um zu gewährleisten, daß neue aktive Felder vorliegen und daß ihnen Speicher zugewiesen ist; und
    • – Aufbauen eines Feld-Cachespeichers 236, der durch die Berichtigungseinheit 237 verwendet werden soll, um einen raschen Zugriff auf den Aktive-Felder-Datenspeicher zu gewähren, ohne ein Erfordernis einer Bezugnahme auf den Feldindex selbst.
  • Bei einem besonders bevorzugten Ausführungsbeispiel des Verfahrens wird ein Vorrat bzw. Pool von Feldern in dem Aktive-Felder-Datenspeicherpuffer 212 zugewiesen. Dieser besteht aus den zweidimensionalen Arrays aus Bytedaten, die den durch jedes Feld dargestellten Teil des Bildes darstellen. Der Aktive-Felder-Datenspeicher ist in zusammenhängende Bereiche unterteilt, wobei jeder groß genug ist, um ein Bildfeld darzustellen. Die minimale Anzahl erforderlicher aktiver Felder ist gleich der größten Anzahl von Feldern, die zu jeweils einem Zeitpunkt als aktiv angegeben werden können. Dies wird wiederum aus der größten Anzahl von Feldern bestimmt, die unter dem Paket von Inkrementen in dem Inkrementhaltepuffer 232 liegen können. Angenommen, daß die Beabstandung zwischen Inkrementen weniger als 2 Ausgangspixel beträgt, wie es bei dem betrachteten Handscanner-Ausführungsbeispiel der Fall sein sollte, so könnte die Gesamtbeabstandung des Pakets höchstens 32*2: 64 Ausgangspixeleinheiten betragen. Wenn bei 45 Grad bezüglich des geradlinigen Bildes gescannt wird, beträgt die maximale horizontale Ausdehnung 64*√2: 90 Pixel. Im schlimmsten Fall erstrecken sich diese über 3 Felder auf jeder Reihe. Die maximale Anzahl von Feldern entlang des Scanners wird durch die Länge des Scanners in Ausgangspixeleinheiten L, geteilt durch die Feldgröße und gerundet + 2, um Teilfelder zu berücksichtigen (1, falls L ein exaktes Vielfaches der Teilgröße ist), gegeben. Dies ergibt eine großzügig bemessene (da der Scanner nicht seine gesamte Länge bei 45 Grad aufspannt) maximale Anzahl von aktiven Feldern von maxActiveTiles (maximaleAnzahlAktiverFelder) = 3*(L/64 + 2)
  • Für einen 2,5-Zoll-Scanner ergibt dies maxActiveTiles2,5 = 3*(750/64 + 2) = 39 Felderfür einen 5-Zoll-Scanner ergibt dies maxActiveTiles5 = 3*(1500/64 + 2) = 75 Felderund für einen 11-Zoll-Scanner ergibt es maxActiveTiles11 = 90*(3300/64 + 2) = 159 Felderwobei jeweils eine Ausgangsauflösung von 300 dpi angenommen wird. Man beachte, daß in der Division eine Rundung angenommen wird.
  • Wenn man, wie bei dem hier erörterten Ausführungsbeispiel, ein Byte aufweist, das für Grauskalapegel vorgesehen ist, erfordert ein 64 × 64-Feld 4 KB an Speicher, erfordern 2,5-, ein 5- und ein 11-Zoll-Scanner bei 300 dpi ein Minimum von 156 kB, 300 KB bzw. 636 KB eines Aktive-Felder-Datenspeichers (unterschiedliche Auflösungspegel und folglich unterschiedliche Speichererfordernisse sind innerhalb des Schutzumfangs der Erfindung natürlich absolut möglich). Diese Zahlen gehen davon aus, daß alle zuvor aktiven Felder, die nicht mehr aktiv sind, vor der Erstellung neuer Felder kopiert, komprimiert und in dem Komprimierte-Felder-Datenpuffer 213 gespeichert werden. Folglich werden die Speicherressourcen von dem Aktive-Felder-Datenpuffer 212, der Felder darstellte, die nicht mehr durch das aktuelle Paket von Inkrementen geschnitten wurden, zu dem Pool aktiver Felder zurückgegeben. Dies ermöglicht die Neuzuweisung eines Aktive-Felder-Datenspeichers zu neuen aktiven Feldern über den Feldindex und zugeordnete Feldverzeichniseinträge. Dieser Lösungsansatz erfordert, daß die Komprimierungs- und Berichtigungsprozesse in einer Abfolge arbeiten, wobei die Komprimierung vor der Berichtigung stattfindet. In der Praxis wird eine parallele Implementierung bevorzugt. Bei einem bevorzugten Ausführungsbeispiel wird die Anzahl aktiver Felder (und somit die Größe des Aktive-Felder-Datenpuffers 212) bezüglich der minimalen Anforderung, eine Dualprozessorimplementierung zu ermöglichen, erhöht. Ein Prozessor und unterstützende Hardwareeinheiten führen eine Berichtigung durch, während ein(e) andere(r) eine Komprimierung durchführt. Die Zunahme der erforderlichen Anzahl aktiver Felder wird durch den minimalen Überlappungsgrad, der zwischen den aufeinanderfolgenden Paketen vorliegen muß, bestimmt.
  • Wir beschreiben nun, wie der Feldverwalter 231 den Feldindex 214 aktualisiert, um zu gewährleisten, daß neuen aktiven Feldern Speicher zugewiesen wird. Zu Beginn des Scannens geben die Einträge des Feldindizes 214 und Feldverzeichnisses 211 einen leeren Viererbaum an. An diesem Punkt weist das Array aus Vierern, das den Feldindex 214 darstellt, einen einzigen Wurzeleintrag bei einer Arrayposition 0 auf, wobei alle vier Kinderknotenzeiger für den Wurzeleintrag null sind und wobei nextAvailableQuad auf ein Viererarrayelement 1 zeigt. Ein Index nextAvailableDirectoryEntry zeigt auf den ersten Eintrag in dem Feldverzeichnis 211. Ein Aktive-Felder-Datenversatz-FIFO 233 wird initialisiert, um einen Eintrag für jeden Block von Felddaten in dem Aktive-Felder-Datenpuffer 212 zu enthalten. Wenn das Scannen beginnt, wird jeder Eintrag in der neuen Tabelle von Aktive-Felder-Indizes N untersucht, und es wird auf den Feldindex, der seiner Position zugeordnet ist, durch den Viererbaum-Feldindex 214 zugegriffen. Falls der Viererbaum-Feldindex einen neuen Eintrag erfordert, um dieses Feld darzustellen, wird ein solcher neuer Eintrag wie oben unter Bezugnahme auf 13 erörtert wurde erstellt. Falls sich ein Eintrag in der Indextabelle auf einen Blattknoten des Baums bezieht, der derzeit null ist, gibt dies an, daß der Scanweg in ein neues Feld eingetreten ist. In diesem Fall wird der betreffende Blattknoten dazu gebracht, auf den nächsten Eintrag des Feldverzeichnisses 211 an der Stelle Bezug zu nehmen, auf die durch nextAvailabeDirectoryEntry gezeigt wird: nextAvailabeDirectoryEntry wird dann inkrementiert. Dieser neue Verzeichniseintrag wird markiert, um anzugeben, daß er nicht komprimiert wurde, und er wird dazu gebracht, durch sein Versatzfeld zu dem Aktive-Felder-Datenversatz-Wert zu zeigen, der aus dem Aktive-Felder-Datenversatz-FIFO 233 extrahiert wurde. Die dem Feldbild in dem Aktive-Felder-Datenpuffer 212 zugeordneten Daten werden anschließend auf einen Hintergrundwert initialisiert. Dieser Hintergrundwert wird so gewählt, daß er die hellste 8-Bit-Weißintensität ist, die für die verwendete Grauskala zur Verfügung steht.
  • An dieser Stelle kann bestimmt werden, welche Felder in der letzten Scanrunde (in dem bei dieser Beschreibung verwendeten Fall, in der letzten Tranche von 33 Inkrementen) aktiv waren, in der aktuellen Runde aber nicht mehr aktiv sind. Die Indizes derartiger Felder werden bei einer bevorzugten Version des Verfahrens zu dem Abgeschlossene-Felder-Index-FIFO 234 hinzugefügt. Dieser Lösungsansatz erfordert einen zusätzlichen Speicher in dem Feldverwalter 231, um die Tabelle von Aktive-Felder-Indizes für das vorhergehende Paket von 33 Inkrementen zurückzuhalten. Zu Beginn des Scanvorgangs wird diese Tabelle leer sein. Jeder Eintrag in der „veralteten" Tabelle von Feldindizes wird mit der neu erfaßten aktiven Tabelle von Indizes für die aktuellen 33 Inkremente des Inkrementhaltepuffers 232 verglichen. Jegliche Einträge, die in der alten Tabelle vorhanden sind, die nicht auch in der neuen Tabelle vorhanden sind, werden zu dem Abgeschlossene-Felder-Index-FIFO 234 hinzugefügt, um anzugeben, daß sie durch die Feldkomprimierungseinrichtung 238 komprimiert werden sollten.
  • Die Feldkomprimierungseinrichtung 238 extrahiert der Reihe nach Feldindizes von dem Abgeschlossene-Felder-Index-FIFO 234 und komprimiert diese Felder. Eine Komprimierung kann eine beliebige geeignete Form eines Verarbeitens zum Verringern der durch ein Feld verbrauchten Speichermenge umfassen, einschließlich des Verlustes etwaiger Komponenten in denjenigen Daten, deren Rückhaltung nicht als notwendig erachtet wird, um eine Darstellung der gewünschten Qualität oder Form zu erzielen. Eine Komprimierung könnte somit Änderungen der Darstellung und/oder der räumlichen oder Grauskala-Auflösung umfassen. Ein geeigneter Lösungsansatz, der in der Technik hinreichend bekannt ist, ist eine Binärisierung infolge der Anwendung eines Schwellwertbestimmungsschemas (ein derartiges Schema wird in „Digital Image Processing", William K. Pratt, John Wiley & Sons, Inc. New York, 1991, S. 597–600 erörtert). Es könnte ein beliebiges einer Anzahl von standardmäßigen Komprimierungsschemata für Grauskala- oder Binärdaten verwendet werden, beispielsweise eine Gruppen-4-Fax-Komprimierung für binäre Daten oder LZW für Grauskala.
  • Während der Komprimierungsstufe bleibt das ursprüngliche Feld von dem Aktive-Felder-Datenpuffer 212 unbehelligt. Eine neue Kopie des Feldes in einer komprimierten (oder auf andere Weise veränderten) Form wird in einer Position des Komprimierte-Felder-Datenpuffers 213 erstellt, die durch einen nextAvailableCompressedData-Zeiger (nextAvailableCompressedData = nächsteVerfügbareKomprimierteDaten) angegeben ist. Dieser Puffer wird in der Reihenfolge, in der die Felder zur Komprimierung markiert sind, sequentiell gefüllt. Der Eintrag des Feldverzeichnisses 211, der dem nunmehr komprimierten (von dem Feldindex 235 erhaltenen) Feld zugeordnet ist, wird anschließend aktualisiert, um auf die entsprechende Position in dem Komprimierte-Felder-Datenpuffer 213 zu zeigen, und sowohl sein Längenfeld als auch sein Komprimierungszustand werden abgeändert. Der Versatz in dem Aktive-Felder-Datenpuffer 212, der der aktiven Version des nunmehr komprimierten Feldes zugeordnet ist, wird anschließend an das hintere Ende des Aktive-Felder-Datenversatz-FIFO 233, der bei Bedarf verwendet werden soll, um ein weiteres aktives Feld darzustellen, zurückgegeben. Schließlich wird der nextAvailableCompressedData-Zeiger gemäß der Länge in Bytes des komprimierten Feldes inkrementiert. Allgemein wird jedes Feld zu einer unterschiedlichen Anzahl von Bytes komprimiert, je nach dem Inhalt des Feldes und dem verwendeten Komprimierungsschema.
  • Wie oben beschrieben wurde, wird ein Feld-Cachespeicher 236 zum Zweck einer rechentechnischen Effizienz bei dem Berichtigungsvorgang bereitgestellt. 16 zeigt den durch den Feldverwalter 231 gebauten Feld-Cachespeicher. Um ein spezifisches Pixel bei einer Position (x, y) zu adressieren, wobei y und x jeweils 16-Bit-Reihen- und -Spaltenpositionen sind, muß jede Koordinate zunächst in ihre Feldindexkomponente und ihre „in dem Feld befindliche" Positionskomponente aufgeschlüsselt werden. Diese werden durch die oberen 10 Bits bzw. die unteren 6 Bits jeder Koordinate geliefert. Die Art und Weise, auf die die y- und x-10-Bit-Feldindizes verwendet werden, um unter Verwendung des Feld-Cachespeichers auf die Feldarraydaten in dem Aktive-Felder-Datenspeicherpuffer 212 zuzugreifen, ist in 16 gezeigt. Der y-Index-Versatz, der dem minimalen y-Index unter den derzeit aktiven Feldern entspricht, wird von dem y-Index der betrachteten Koordinate subtrahiert, um einen lokalen y-Index zu ergeben, der verwendet wird, um sowohl auf eine x-Index-Versatztabelle 241 als auch eine Felddatenversatztabelle 242 zuzugreifen. Die x-Index-Versatztabelle 241 ist eine lineare Tabelle von x-Feldversätzen, die den minimalen x-Index für jede Reihe (und somit y-Feldindexwert) des Feldindizes nach der y-Versatzreihe bis zu einer maximalen Reihe, die durch die Länge des Scanners bestimmt wird, enthält (diese „max. Reihe wird ein y-Index-Versatz + (L/64) + 2 sein, wobei sich wiederum der hinzuaddierte Faktor 2 aus der Division und der folgenden Auswirkung von teilweise gefüllten Feldern und einer Rundung ergibt). Die Felddatenversatztabelle 242 ist ein Array aus Tripeln, von denen jedes Element einen 16-Bit-Index zu dem Aktive-Felder-Speicherpuffer 212 enthält. Der Eintrag in der x-Index-Versatztabelle 241 ist in dem Fall gegeben, der durch ein Hinzufügen des lokalen y-Indizes zu einer Tabellenbasisadresse gezeigt ist (unter der Annahme, daß eine Arithmetik in x-Index-Versatztabellenzelleneinheiten durchgeführt wird: bei dieser Implementierung sind dies 16 Bits). Desgleichen wird das relevante Tripel in der Felddatenversatztabelle 242 durch ein Hinzufügen des Dreifachen des lokalen y-Indizes zu der Basisadresse der Felddatenversatztabelle gegeben. Der Index in die Felddatenversatztabelle 242 wird ferner abgeändert, um den relevanten Feldindex durch ein Addieren des lokalen x-Versatzes für die relevante Reihe zu adressieren: dies wird durch die Differenz zwischen dem ursprünglichen x-Feldindex und dem Eintrag für diese Reihe von der x-Index-Versatztabelle 241 gegeben.
  • Der Inhalt der relevanten Zelle in der Felddatenversatztabelle 242 liefert einen Zeiger auf die Basisadresse des Arrays aus Bilddaten, die das Feld in dem Aktive-Felder-Datenspeicherpuffer 212 darstellt. Die unteren 6 Bits von jeder Koordinate werden dann verwendet, um auf die übliche Weise eine Adresse in dem Feld zu bilden. Nicht alle Zellen in der Felddatenversatztabelle 242 sind gültig: diejenigen, die es nicht sind, weisen einen Null-Zeiger auf. Die Tabelle ist so aufgebaut, daß sie groß genug für das Schlimmster-Fall-Szenario ist (in Feldern, die von einem Paket von, hier, 33 Inkrementen benötigt werden, angegeben), und häufig sind derzeit weniger Felder aktiv als durch die Felddatenversatztabelle 242 indexiert werden können.
  • Nachfolgend werden Berichtigungsprozesse erörtert, die zur Verwendung bei dem oben unter Bezugnahme auf 14 erörterten kombinierten Verfliesungs- und Berichtigungsschema geeignet sind. Es wäre möglich, einen Bresenham-Algorithmus-Lösungsansatz zu verwenden, um eine Berichtigung zu erreichen, wie in der internationalen Patentanmeldung Veröffentlichungsnummer WO 96/27257 und in der US-Patentschrift Nr. 5578813 erörtert wird. Jedoch sind ausgereiftere Lösungsansätze wie diejenigen, die in der europäi schen Patentanmeldung Nr. 97302519.0 erörtert sind, deren Inhalt in dem durch nationales Gesetz erlaubten Umfang in die vorliegende Anmeldung aufgenommen ist, bevorzugt.
  • 17 zeigt einen Koordinatenrahmen, der durch das Array aus Feldern bereitgestellt wird, auf das der Strom von Inkrementen 88 abgebildet wird, um das abschließende geradlinige Bild zu erzeugen. Es gibt keinen Geradliniges-Bild-Puffer einer vorbestimmten Abmessung, wie bei den Verfahren der internationalen Patentanmeldung Veröffentlichungsnummer WO 96/27257 und der US-Patentschrift Nr. 5578813, sondern vielmehr einen verfliesten geradlinigen Bildraum einer unbestimmten Gesamtabmessung, jedoch mit einer vorbestimmten Skala. Die X- und Y-Koordinaten der Positionsmarkierungen, die jedem Inkrement zugeordnet sind, entsprechen horizontalen und vertikalen Abmessungen (Spalten- und Reihenindizes) in dem geradlinigen Bildraum. Ferner sind die geometrischen Orte von Positionsmarkierungen (in der verworfenen Ansicht für einen kurzen Abschnitt auf der rechten Seite vergrößert gezeigt) für jeden Endpunkt des Lineares-Bild-Sensors, der einem Strom von Inkrementen zugeordnet ist, gezeigt. Bei diesen sind ein Paar von Inkrementen (Inkrement Nr. 1 und Inkrement Nr. 2) hervorgehoben, indem ihre Positionsmarkierungen mit geraden Linien verbunden sind. Diese sind so gewählt, daß sie sich in der Überlappungsregion, wo der Scanvorgang kehrtmacht, fast schneiden.
  • Es ist möglich, daß sich die Auflösung des Geradliniges-Bild-Puffers, die durch die von dem Scanner benötigte Ausgangsauflösung bestimmt wird (in der Regel entweder 200 oder 300 dpi), von der, in der die Endpunktpositionsdaten gemessen werden, unterscheidet. Dies wird wiederum durch die Auflösung der Navigationssensoren 24 (die von der räumlichen Ausdehnung der Merkmale, z. B. Papierfasern, die während der Navigation abgebildet werden, abhängig ist) bestimmt. Um derartige Differenzen zu berücksichtigen, ist es notwendig, daß die Endpunktpositionsdaten zu der Ausgangspixelauflösung skaliert werden.
  • Der nächste Vorgang besteht darin, die positionsmarkierten Bildinkremente in einem Band in den verfliesten geradlinigen Bildraum abzubilden. Es ist besonders wichtig, daß bei diesem Vorgang eine ausreichende Bildqualität aufrechterhalten wird. Ein Lösungsansatz besteht einfach darin, die Elemente in jedem Inkrement auf die Pixel des geradlinigen Bild-Arrays, durch die die zwischen die Endpunktpositionen gezogene gerade Linie verläuft, abzubilden. Das Abbilden könnte entweder zu dem nächstgelegenen linearen Sensorelement für jedes Bildpixel erfolgen oder eine Interpolation zwischen Sensorelementen beinhalten. Verfahren einer linearen oder kubischen Interpolation, die sich für eine Anwendung in diesem Zusammenhang eignen, sind bei Wolberg, „Digital Image Warping", S. 127–131, IEEE Computer Society Press, Los Alamitos, CA, 1992, beschrieben.
  • Ein Durchführen einer Berichtigung auf diese Art und Weise bringt unweigerlich Abtastartefakte ein, weil jedes Inkrement eine spezifische Auswirkung hat. Überdies ist es in der Praxis notwendig, daß das ursprüngliche Band von positionsmarkierten Bilddaten bezüglich des geradlinigen Pixelgitters (das der Zweckmäßigkeit halber eine höhere räumliche Auflösung aufweisen kann als der Pixelabstand des linearen Sensors selbst) streng überabgetastet wird; andernfalls tritt bei dem geradlinigen Bild ein Pixelausfall („Dropout") auf. Eine Lösung ist in 18 veranschaulicht. Bei dieser Figur definieren die Endpunktpositionen eines Paars von Inkrementen I1 und I2 eine Region. Diese Inkremente können ein aufeinanderfolgendes Paar von Linearer-Sensor-Ablesungen sein – die Verwendung aufeinanderfolgender Ablesungen wird hier als der PAARWEISE Lösungsansatz bezeichnet. Alternativ dazu können die Inkremente I1 und I2 das Begrenzungspaar einer größeren Gruppe von Sensorinkrementen sein – die Verwendung derartiger Inkremente wird hier als der PAKETWEISE Lösungsansatz bezeichnet. Es wird gezeigt werden, daß bei dem PAKETWEISEN Lösungsansatz ein rechentechnischer Vorteil zu gewinnen sein wird, indem eine Gruppe von Inkrementen auf Kosten einer geringen Verringerung der Bildqualität im Vergleich zu dem PAARWEISEN Lösungsansatz behandelt wird.
  • Pixelpositionen in dem verfliesten geradlinigen Bildraum sind Ganzzahlpositionen zugeordnet. Für jedes derartige Pixel in der durch ein Paar von Inkrementen definierten Region wird dann ein Intensitätswert berechnet, indem eine Anzahl von Linearer-Sensor-Pixeln, die auf eine Region um denselben abbilden, integriert wird. Bei bestimmten bevorzugten Ausführungsbeispielen werden verschiedene Formen einer bilinearen Interpolation verwendet, um bestimmte vier Linearer-Sensor-Pixel zu integrieren, die von dem Paar von aufeinanderfolgenden Inkrementen, die die Pixelpositionen umspannen, genommen sind: zwei Sensorpixel von dem Inkrement, das auf eine Linie abbildet, die auf einer Seite des geradlinigen Arraypixels liegt, und weitere zwei Sensorpixel von dem benachbarten Inkrement, das auf eine Linie auf der gegenüberliegenden Seite des geradlinigen Arraypixels abbildet.
  • In 18 ist ein Paar von Inkrementen I1 und I2 in einen Abschnitt des geradlinigen Raums, der das gescannte Bild definiert, abgebildet gezeigt. Der Einfachheit halber sind die Endpunktpositionen P1, P2 und P1', P2' so beschaffen, daß sie der Mitte des ersten und des letzten Sensorelements der Inkremente I1 bzw. I2 entsprechen. Zwischensensorelemente, wie beispielsweise A1, A2 und B1, B2, sind ebenfalls gezeigt. Pixelpositionen in dem Geradliniges-Bild-Array sind so gewählt, daß sie ganzzahligen Positionen bezüglich der Endpunktpositionsgeometrie entsprechen. Die Auflösung des ausgegebenen geradlinigen Bildes ist eventuell nicht dieselbe wie die des Lineares-Bild-Sensors. Ungeachtet der tatsächlichen Auflösung bilden N Sensorpixel jedoch entlang der Linie ab, die die Endpunkte jedes Inkrements verbindet. Der Einfachheit der Erklärung halber gilt bei 18: N = 8, das heißt jeder lineare Sensor weist lediglich 8 Elemente in demselben auf, und die Länge jedes Inkrements beträgt N – 1 = 7 mal den Pixelabstand des linearen Sensors, wie er bei ausgegebenen Geradliniges-Pixel-Auflösungseinheiten gemessen wird.
  • Spezifische Pixel, die in der durch ein Begrenzungspaar von Inkrementen definierten Region liegen, können aus dem Intervall identifiziert werden, das durch die x Komponenten der Durchschneidungen jeder Geradliniges-Bild-Reihe mit den beiden Inkrementen gegeben ist. Ein Beispiel wird durch Pixel C1 und C2 auf der Geradliniges-Bild-Reihe D in 18 geliefert. Von einer einfachen Geometrie her betrachtet gilt: Falls das Inkrement I1 Endpunktkoordinaten (x1, y1) und (x2, y2) aufweist, so wird die x-Koordinate seiner Durchschneidung mit der Reihe D, die einen Ganzzahlwert yD aufweist, durch xD = (yD – y1)*(x2 – x1)/y2 –y1)wiedergegeben. Es folgt, daß die Durchschneidung mit der Reihe D + 1 durch x(D + 1) = xD + (x2 – x1)/(y2 – y1) = xD + xIncgegeben wird, wobei xInc ein konstantes Inkrement für jede aufeinanderfolgende Reihe ist. Desgleichen gilt: Falls das Inkrement I2 Endpunktkoordinaten (x1', y1') und (x2', y2') aufweist, so wird die x-Koordinate seiner Durchschneidung mit der Reihe D, die einen Ganzzahlwert yD aufweist, durch xD' = (yD – y1')*(x2' – x1')/(y2' – y1')wiedergegeben. Es folgt, daß für die Durchschneidung der Reihe D + 1 x(D + 1)' = xD' + (x2' – x1'')/(y2' – y1') = xD' + xInc'gilt. Dies liefert eine rechentechnisch effektive Art und Weise, die Durchschneidungsbandbreite für jede Reihe nach einander zu berechnen. Die Durchschneidungen mit der aktuellen Reihe werden durch ein einfaches Inkrementieren der Durchschneidungen mit der vorherigen Reihe berechnet.
  • Als erstes müssen wir den Bereich der Reihen, die in der Region liegen, spezifizieren. Dies wird durch den Bereich von ganzzahligen y-Werten vorgegeben, die beiden Inkrementen gemein sind. Dies sind die ganzzahligen Werte im Bereich [Obergrenze(Max(y1, y1')), Untergrenze(Min(y2, y2'))] = [Y1, Y2]wobei angenommen wird, daß die Orientierung des Scanners bezüglich des Papiers in etwa vertikal bleibt. Dieser Lösungsansatz kann ohne weiteres dahingehend ausgedehnt werden, daß ermöglicht wird, daß der Scanner eine willkürliche Orientierung bezüglich der Seite annimmt. Wenn der Scanner beispielsweise invertiert ist, können die Linearer-Sensor-Daten umgekehrt werden, und die Polarität der Endpunktpositionsdaten kann umgekehrt werden. Falls der Winkel des Scanners ferner mehr als 45 Grad von der Vertikalen abweicht, kann eine korrekte Berichtigung erzielt werden, indem die Polarität sowohl der x-/y-Position-Koordinaten als auch der Reihen und Spalten des Bildes umgekehrt wird. Der Einfachheit der Erläuterung halber befaßt sich die Erörterung der Ausführungsbeispiele lediglich mit dem in etwa vertikalen Fall, für Fachleute ist jedoch eine Erweiterung auf die oben angegebenen allgemeineren Fälle eine umkomplizierte Angelegenheit.
  • Die aktiven Pixel in der Region können der Reihe nach unter Verwendung des folgenden Pseudocodes identifiziert werden TRANSFORMATIONSSCHLEIFE 1
    Figure 00580001
    wobei Unter- und Obergrenze von Bedienpersonen ihre üblichen mathematischen Interpretationen aufweisen. Die eigentlichen Details der Initialisierung und inneren Schleife sind für die unten beschriebenen verschiedenen Verfahren spezifisch. Der Einfachheit der Darstellung in den Ausführungsbeispielen der gezeigten TRANSFORMATIONSSCHLEIFE halber sei angenommen, daß xD immer geringer sei als xD'. Es ist unkompliziert, dies auf den generischen Fall auszudehnen, indem die Reihenfolge von xD und xD' auf jeder Reihe getestet wird.
  • Der nächste Schritt besteht darin, zu bestimmen, welche Linearer-Sensor-Pixel zu welchen Anteilen einen Beitrag zu jedem geradlinigen Gitterpixel leisten. Ein Ausführungsbeispiel des PAARWEISE-Ansatzes wird nun beschrieben.
  • Bei diesem Ausführungsbeispiel des PAARWEISE-Ansatzes zu dem Verfahren gemäß der Erfindung basiert die Berichtigung auf einem inversen Abbilden, wie es bei der Computergraphiktextur-Abbildung (siehe beispielsweise Wolberg, auf den oben auf Seite 188 verwiesen wurde) verwendet wird, wodurch jedes Pixel in dem Intervall, das durch die beiden Linien, die die Endpunktpositionen der Inkremente I1 und I2 verbinden, begrenzt ist, rückwärts in eine Teilpixelposition in einem zwischen dem Paar von Inkrementen selbst definierten Koordinatenraum abgebildet wird. Diese Situation ist in 19 veranschaulicht, wo das Paar von Inkrementen I1 und I2, das in 18 in das geradlinige Bild abgebildet gezeigt ist, auch einen einfachen Inkrementraum definiert, bei dem Einheiten eine Linearer-Sensor-Pixelbeabstandung sind, die Inkremente mit der y-Achse ausgerichtet sind und die Inkremente ein Einheitspixel voneinander beabstandet sind. In diesem Raum weist das obere Sensorelement des linken Inkrements Koordinaten (0, 0) auf.
  • Das Pixel C1 von dem geradlinigen Bild ist zwischen die Inkremente I1 und I2 abgebildet gezeigt. Es weist Teilpixelkoordinaten (x, Y·y) auf, wobei Y die ganzzahlige Komponente der Koordinate entlang des Inkrements ist, und x und y der Teilpixelversatz sind. Ein repräsentativer Pixelwert kann dann unter Verwendung einer bilinearen Interpolation der vier umgebenden Pixel ermittelt werden. Das heißt: BiLinear(I1, I2, Y, y, x) = I1[Y]*(1 – x)*(1 – y) + I2[Y]*(1 – y)*x + I1[Y + 1]*(1 – x)*y + I2[Y + 1]*x*y
  • Die beste Annäherung an die Transformierte von dem geradlinien Bild zu dem Raum zwischen Inkrementen beinhaltet die Lösung einer quadratischen Gleichung für jedes Pixel. Aufgrund des damit verbundenen Rechenaufwands ist dies keine zufriedenstellende praktische Lösung. Während es möglich ist, ungefähre lineare homogene Abbildungen von Geradliniges-Bild-Koordinaten zu dem durch ein Paar von Inkrementen definierten Koordinatenraum abzuleiten, ist eine nicht-homogene Lösung vorzuziehen. Bei einer derartigen nicht-homogenen Lösung sind keine Annahmen bezüglich des Wesens der lokalen Transformation erforderlich. Ferner ist es möglich, ohne weiteres nach Eckfällen aufzulösen, beispielsweise wenn die Projektion eines benachbarten Paars von Inkrementen eine Überkreuzung in dem geradlinigen Bildraum beinhaltet.
  • Bei einem derartigen nicht-homogenen Verfahren ist eine unterschiedliche Abbildung für jede Reihe des geradlinigen Bildes in dem Intervall [Y1, Y2] definiert. Dies wird wiederum aus dem Schnittpunkt dieser Reihe mit den Linien, die die Endpunktpositionen verbinden, ermittelt. In diesem Fall wird die Entfernung des Schnittpunktes entlang der Linie selbst wiederhergestellt. Dies entspricht nach jeglichem Skalieren, das für die Auflösungsunterschiede erforderlich ist, einer physischen Position entlang des linearen Sensors. Bei 19 sind aD und aD' der Schnittpunkt entlang der Inkremente I1 bzw. I2 für die geradlinie Reihe D; wobei aus der einfachen Geometrie aD = (yD – y1)*(N – 1)/(y2 – y1)und aD' = (yD – y1')*(N – 1)/(y2' – y1') für den Schnittpunkt der Reihe D + 1 a(D + 1) = aD + (N – 1)/(y2 – y1) = aD + aRowInc(row = Reihe)und a(D + 1') = aD' + (N – 1)/(y2' – y1') = aD + aRowInc' folgt, was wiederum eine einfache Wiederholungsbeziehung für jede aufeinanderfolgende Reihe zum Zweck einer effizienten seriellen Implementierung ergibt.
  • Jedes Pixel in dem geradlinien Bild entlang der Reihe D in dem Intervall [X1, X2] bildet auf einen anderen Punkt entlang einer Linie in dem Inkrementraum ab, die die beiden Schnittpunkte bei (0, aD) bzw. (1, aD') verbindet. Wenn man von einem linearen Abbilden entlang dieser Reihe ausgeht, bildet das Pixel bei der Position (xE, yD) in dem geradlinigen Bild auf die Position (aE, bE) in dem Inkrementraum ab, wobei: aE = aD + (xE – xD)*(aD' – aD)/(xD' – xD)und bE =(xE – xD)/(xD' – xD)und wiederum für das nächste Pixel entlang der Reihe D folgt, daß a(E + 1) = aE + (aD' – aD)/(xD' – xD) = aE + aIncund b(E + 1) = bE + 1/(xD' – xD) = bE + bIncwobei die Intensität bei (aE, bE) durch die bilineare Interpolation bestimmt wird.
  • Die zusätzliche Initialisierung und modifizierte innere Schleife der TRANSFORMATIONSSCHLEIFE lauten TRANSFORMATIONSSCHLEIFE 2
    Figure 00620001
    Figure 00630001
  • Bei anderen Ausführungsbeispielen des Verfahrens gemäß der Erfindung zum Durchführen einer PAARWEISEN geradlinigen Pixelinterpolation kann auch eine direktere geometrische Interpretation verwendet werden. Derartige Verfahren erfordern nicht das explizite Abbilden von Geradliniges-Bild-Pixeln zurück in einen Inkrementkoordinatenraum.
  • Ein besonders einfaches Ausführungsbeispiel, das verringerte Rechenanforderungen bezüglich des Rückprojektionslösungsansatzes aufweist, besteht darin, eine Interpolation entlang jedes Inkrements durchzuführen und diese Werte anschließend direkt in dem geradlinigen Bild zu interpolieren. Auf Kosten eines erhöhten Rechenaufwands kann eine bessere Bildqualität erzielt werden, indem jedes Geradliniges-Bild-Pixel auf den nächstgelegenen Punkt auf jedem der Inkremente abgebildet wird. Dies sind die Punkte auf den Inkrementen, deren interpolierte (entlang des linearen Sensors) Intensität die Intensität des zur Debatte stehenden geradlinigen Pixels am besten reflektiert. Das Paar von interpolierten Inkrementintensitätswerten wird anschließend wiederum unter Verwendung einer linearen Interpolation kombiniert, um die beste repräsentative Intensität für das Pixel zu ergeben. Derartige Ausführungsbeispiele sind in der europäischen Patentanmeldung Nr. 97302519.0 beschrieben.
  • Als nächstes werden weitere Ausführungsbeispiele eines Berichtigungsansatzes unter Verwendung des PAKETWEISEN Verfahrens eines geradlinigen Abbildens präsentiert. Der PAKETWEISE Lösungsansatz weist die doppelten Vorteile auf, daß die äußere Schleife der entsprechenden Version der TRANSFORMATIONSSCHLEIFE weniger häufig berechnet wird und daß auf größere Anzahlen von Ausgangspixeln sequentiell zugegriffen wird, was direkt (ohne das Erfordernis eines Ca chespeichers) zu einer verbesserten Speicherbandbreite führt.
  • 20 zeigt ein Paket, das aus M, in diesem Fall 4, Inkrementen besteht. Das äußere Paar von Inkrementen, als I1 und I2 markiert, wird wiederum durch die äußere Schleife der TRANSFORMATIONSSCHLEIFE verwendet, um gültige Pixel, die in dem Paket abbilden, zu identifizieren. Bevorzugte Ausführungsbeispiele bestimmen geradlinige Arraypixelwerte mit einer erweiterten Form eines nicht-homogenen Rückprojektionsalgorithmus, wie er zuvor für den PAARWEISE-Fall beschrieben wurde. 21 zeigt die Transformation einer in 20 als D markierten Reihe zu einem Inkrementraum, der die durch I1 und I2 begrenzten 4 Inkremente enthält. Sie verbindet die Schnittpunkte der Reihe D mit jedem der äußeren Inkremente. Als Weiterführung des PAARWEISE-Falles weisen, wie in 19 gezeigt ist, diese Schnittpunkte Versatzentfernungen entlang des linearen Sensors von aD bzw. aD' für I1 und I2 auf. Die Koordinaten der Schnittpunkte in dem Inkrementraum lauten somit (0, aD) bzw. ((M – 1), aD').
  • Jedes Pixel in dem geradlinigen Bild entlang der Reihe D in dem Intervall [X1, X2] bildet auf einen anderen Punkt entlang einer Linie in dem Inkrementraum ab, die die beiden Schnittpunkte bei (0, aD) bzw. ((M – 1), aD') verbindet. Wenn man von einer linearen Abbildung entlang dieser Reihe ausgeht, bildet das Pixel bei der Position (xE, yD) in dem geradlinigen Bild auf die Position (aE, bE) in dem Inkrementraum ab, wobei: aE = aD + (xE – xD)*(aD' – aD)/(xD' – xD)und bE = (M – 1)*(xE – xD)/(xD' – xD) und wiederum folgt für das nächste Pixel entlang der Reihe D, daß a(E + 1) = aE + (aD' – aD)/(xD' – xD) = aE + aIncund b(E + 1) = bE + (M – 1)/(xD' – xD) = bE + bIncwobei die Intensität bei (aE, bE) durch die bilineare Interpolation bestimmt wird.
  • Hier lautet die TRANSFORMATIONSSCHLEIFE wie folgt: TRANSFORMATIONSSCHLEIFE 3
    Figure 00650001
    Figure 00660001
    wobei IB das B. (Bte) Inkrement in dem Paket ist und IB + 1 das (B + 1). Inkrement in dem Paket ist.
  • Das PAKETWEISE Verfahren stützt sich auf die Tatsache, daß ein Scanweg fast gleichmäßig ist und sich nur fließend verändert. Dies muß sowohl räumlich gelten (der Scanbereich sollte eine gleichmäßige Form aufweisen) als auch in bezug auf die Abtastfrequenz entlang des Scanwegs (der Scanbereich sollte gleichmäßig abgetastet werden). Das PAKETWEISE Verfahren ist besonders gut für eine Verwendung mit dem in 14 veranschaulichten Verfliesungsverfahren ausgelegt. Falls der Inkrementhaltepuffer 232 ausgelegt ist, um (S + 1) Inkremente zu halten, können gleichmäßige Pakete mit (T + 1) Inkrementen verwendet werden, wobei T ein Ganzzahlfaktor von S ist. Falls in dem Inkrementhaltepuffer 232 beispielsweise 33 Inkremente gehalten werden, können gleichmäßige Berichtigungspakete aus jeglichen von 2 (die PAARWEISE-Grenze), 3, 5, 9, 17 oder 33 Inkrementen gebildet werden. Der Berichtigungsschritt findet dann zwischen jeder anschließenden Wiederauffüllung des Inkrementhaltepuffers 232 S/T Male statt.
  • Ferner ist die Erweiterung des PAKETWEISEN Verfahrens durch Variieren der Paketgröße, die dynamisch von dem Grad der Gleichmäßigkeit des Scanwegs abhängt, möglich. Dort, wo eine hohe Gleichmäßigkeit vorliegt, kann ein großes Paket ohne die Einführung einer Bildverzerrung berücksichtigt werden, dort, wo der Scanweg oder die Abtast-Betriebsbedingungen stark variieren, könnte lediglich eine kleine Paketgröße berücksichtigt werden, ohne Artefakte einzubringen. Im Grenzfall greifen derartige Ausführungsbeispiele auf ein PAARWEISES Verfahren zurück.
  • Wie oben erörtert wurde, kann der geradlinige Bildraum, der dem Speicher zur Verfügung steht, ohne weiteres eine einzelne Seite der Größe Letter oder A4 bei der Auflösung des linearen Sensors (in der Regel entweder 200 oder 300 dpi) aufnehmen. Da keine abmessungsbezogene Einschränkung des geradlinigen Bildraums besteht, wird das endgültige Bild unabhängig von der anfänglichen Startposition des Scanwegs gut gebildet werden. Um eine ordnungsgemäße Ausrichtung zu erhalten, muß der Scanvorgang entweder bei der angenommenen Orientierung (z. B. immer parallel zu der Seite des Blattes) beginnen, oder die Orientierung muß aus dem Inhalt des Scanbereichs wiederhergestellt werden und verwendet werden, um das endgültige Bild neu zu orientieren. Verfahren zum automatischen Bestimmen der dominanten Orientierung von Text auf einer Seite, die als Basis für Letztere verwendet werden können, sind in der Literatur bekannt, z. B. „The Skew Angle of Printed Documents" von H. S. Baird. Proc 4th SPSE Conference Symposium on Hybrid Image Systems, Rochester, New York 1987.
  • Der nächste Schritt besteht darin, aufeinanderfolgende Bildbänder in ihrer Überlappungsregion zusammenzusetzen. Das Ziel besteht darin, mehrere Bänder zu kombinieren, so daß das Ergebnis ein abschließendes berichtigtes rekonstruiertes Bild ist, das in einer verfliesten Form gespeichert wird – vorteilhafterweise wird dieses Bild auch komprimiert sein. Dies sollte so erfolgen, daß der Großteil des akkumulierten Navigationsfehlers identifiziert und korrigiert und jeglicher verbleibende Fehler maskiert wird.
  • Bei den zu beschreibenden Ausführungsbeispielen liefert der Strom von Navigationsdaten die zum Zusammensetzen benötigten Registrationsinformationen. Da das Navigationssignal dazu tendiert, Fehler zu akkumulieren, wird es kontinuierlich abgeändert, indem ein aus einer Analyse von Merkmalsversätzen abgeleitetes Korrektursignal rückgekoppelt wird.
  • Jedoch wird zuerst ein Verfahren zum Zusammensetzen von Bildbändern beschrieben, bei dem angenommen wird, daß keine Navigationsfehler vorliegen.
  • Ein gewisser Überlappungsbereich ist notwendig, um zwei Bildbänder zusammenzusetzen. Bänder werden durch eine Umkehr bezüglich des Wegs der Scanvorrichtung über eine Region des Originals, von der lediglich ein Teil gescannt wurde, begrenzt. Ein Band weist die Bilddaten auf, die während eines Scandurchlaufs über ein gescanntes Original aufgenommen werden. In der folgenden Beschreibung wird der Begriff „Band" manchmal auch für den Teil des rekonstruierten Bildes verwendet, der aus einem Abbilden solcher Daten gebildet wird.
  • Der durch die geometrischen Orte von Endpunkten von Inkrementen in 17 dargestellte Scanbereich erzeugt zwei überlappende Bänder. Bei 22 wird derjenige in den geradlinigen Bildraum abgebildete Abschnitt, der Band Nr. 1 aufweist, bei der Rückkehr teilweise durch denjenigen Abschnitt des Scanbereichs abgebildet, der Band Nr. 2 entspricht, wobei der Überlappungsbereich 102 gefüllt gezeigt ist. Bei einem Zeitpunkt T wurde ein Teilband soweit gescannt. Ein zufriedenstellendes Zusammensetzen kann in die sem Fall dadurch erzielt werden, daß einfach damit fortgefahren wird, das Band Nr. 2 auf den geradlinigen Bildraum auf dem Band Nr. 1 abzubilden. Unter erneuter Bezugnahme auf 17 kann das Inkrement Nr. 2 entlang seiner gesamten Länge auf genau dieselbe Weise wie für Inkrement Nr. 1 und desgleichen für jedes Pixel in der Überlappungsregion 102 in 22 abgebildet werden. Die endgültige Wiedergabe in dem geradlinigen Bildraum, die sich aus Band Nr. 1 ergab, wird einfach durch diejenige, die sich aus Band Nr. 2 ergibt, ersetzt.
  • In diesem Fall muß das unter Bezugnahme auf 14 dargelegte Verfahren nicht abgeändert werden, um zu ermöglichen, daß der Inhalt eines nicht mehr aktiven und somit komprimierten Feldes ersetzt wird – dies erfordert wahrscheinlich zusätzlichen Speicherplatz für die Speicherung komprimierter Felder, so als ob ein Speicher durch die Feldkomprimierungseinrichtung 238 gemäß dem durch jedes Feld erforderlichen Speicher komprimierten Feldern zugewiesen wird, wobei Schwierigkeiten entstehen, wenn die zweite Version des Feldes nach der Komprimierung mehr Speicher erfordert als die erste Version. Schwierigkeiten können auch in dem Fall auftreten, daß Felder in dem ersten Band lediglich teilweise gefüllt sind, aber inaktiv gemacht werden (Felder an der Kante des linearen Sensors). Falls diese beim ersten Durchlauf komprimiert werden, nimmt eine zweite, „vollständige" Version deutlich mehr Speicherraum ein. Ein möglicher Lösungsansatz besteht darin, ein Feld, das nicht gefüllt ist, niemals zu komprimieren – teilweise gefüllte Felder können durch Auswertung jeder Ecke des Feldes geprüft werden, um zu bestimmen, ob bei der Komprimierungsstufe Informationen in dasselbe geschrieben wurden. Teilweise gefüllte Felder könnten dann gelöscht werden, wenn sie inaktiv werden (wobei man sich auf eine Bandüberlappung stützt, um ein vollständiges Bild zu erhalten), oder sie können in einem separaten Speicherbereich gespeichert werden.
  • Ein Schema, bei dem Pixel in dem Überlappungsbereich 102, die als gefüllte Felder in Band Nr. 1 abgebildet sind, nicht durch diejenigen, die durch Band Nr. 2 abgebildet sind, ersetzt werden, bereitet weniger Schwierigkeiten beim Verfliesungslösungsansatz, vorausgesetzt, daß alle durch das Band Nr. 2 abgebildeten Pixel, die nicht Bestandteil der Überlappung sind (d. h. die also auch nicht durch Band Nr. 1 abgebildet sind) ordnungsgemäß abgebildet sind. Das heißt, daß die durch Band Nr. 1 abgebildete Region verwendet wird, um die durch Band Nr. 2 abgebildete Region abzuschneiden. Vorausgesetzt, daß Band Nr. 1 und Band Nr. 2 alle Pixel, die außerhalb der Überlappungsregion liegen, korrekt abbilden, können die Pixel in der Überlappungsregion im Prinzip gleichermaßen entweder von Band Nr. 1 oder Band Nr. 2 oder einer Kombination erhalten werden.
  • Aufgrund der Akkumulierung von Fehlern zwischen den Positionsmarkierungen des Bandes Nr. und des Bandes Nr. 2 liefert dieser einfache Lösungsansatz, der keine Navigationsfehler annimmt, in der Praxis keine sehr guten Ergebnisse.
  • Ein Ausführungsbeispiel eines Lösungsansatzes eines Zusammensetzens gemäß der vorliegenden Erfindung wird nun unter Bezugnahme auf 23 und 24 beschrieben. 23 gibt die beteiligten Verfahrensstufen und Datenpuffer an, während sich 24 auf den bezüglich Band Nr. 1 und Band Nr. 2 verwendeten Prozeß bezieht. Die Bildinkrementdaten werden, wie zuvor beschrieben, auf den verfliesten geradlinigen Bildraum abgebildet. 24 zeigt die Verwendung des in Band Nr. 1 aufgenommenen Bildes beim Abbilden auf den geradlinigen Bildraum des Rückkehrdurchlaufs, Band Nr. 2. Eine Navigationskorrektur wird durch korrelierende Merkmale in dem Überlappungsbereich zwischen Band Nr. 1 und Band Nr. 2 berechnet.
  • 24 stellt diesen Überlappungsbereich heraus, der in zwei Teile 104 und 105 aufgeteilt ist. Wie in 24 gezeigt ist, werden während der Sammlung des Bandes Nr. 1 vierseitige Bildsegmente 130 (im nachfolgenden als „Registrierungsfelder" bezeichnet) periodisch entlang dem unteren Rand des Bandes in dem Überlappungsbereich 105 markiert. Bei einem späteren Durchlauf (Band Nr. 2) wird der Überlappungsbereich 104 des Bandes Nr. 2 über dem Bereich 105, der die Registrierungsfelder 130 des Bandes 1 enthält, abgeschnitten, d. h. verworfen, während Band Nr. 2 erfaßt wird, indem nicht erlaubt wird, daß die durch das Band Nr. 1 bereitgestellten gefüllten Felder überschrieben werden. Die Registrierungsfelder 130 von Band Nr. 1 sind im oberen Teil dessen, was von Band Nr. 2 übrig bleibt, positioniert, nachdem der Überlappungsbereich 104 abgeschnitten wurde. Wenn die Navigationsdaten perfekt sind, liegt kein Versatz zwischen der Position eines Registrierungsfeldes 130 und der Position des erneut gescannten Bildes dieses Feldes in Band Nr. 2 vor. Es ist jedoch realistischer, daß sich seit der Durchführung der letzten Registrierung einige Navigationsfehler angesammelt haben. Der Versatz zwischen dem Erscheinungsbild dieses Feldes in den beiden Bändern erzeugt einen Korrekturfaktor, der dann verwendet wird, um zukünftige den Bilddaten zugeordnete Navigationspositionsmarkierungen zu aktualisieren, um den akkumulierten Gesamtfehler zu minimieren. Auf diese Weise wird verhindert, daß der akkumulierte Gesamtfehler in den Navigationsdaten so groß wird, daß er in der Region, in der sich die Bänder überlappen, eine offensichtliche Verzerrung einbringt.
  • Ein Navigationsfehler kann minimiert werden, indem man beginnt, ab dem Punkt, an dem sich diese Bänder in dem Strom von Inkrementen am nächsten beieinander befinden, Band Nr. 2 und Band Nr. 1 zusammenzusetzen. Die Navigationsfehler sollten zumindest zwischen diesen eng beabstandeten Inkrementen bei einem Scanabtastwert vorliegen. Eine fortgesetzte Verwendung einer Abstimmung um einen „Umkehrpunkt" zwischen aufeinanderfolgenden Bändern (wo sie vorteilhafterweise gemäß dem in 1 gezeigten Aufnahmelösungsansatz erhalten werden), zusammen mit einer fortlaufenden Verwendung erfaßter Fehler zwischen Bändern, die zusammengesetzt werden, um Fehler vorherzusagen und weiter entlang der Bänder zu verarbeiten, ermöglicht eine sich selbst führende Steuerung des Zusammensetzens auf eine Weise, die zum Verschließen eines Reißverschlusses im wesentlichen analog ist.
  • Die Verarbeitungsstufen für ein Zusammensetzen von Band Nr. 1 und Band Nr. 2 wird nun unter Bezugnahme auf 23 und 24 beschrieben. 23 zeigt den Bildinkrementpuffer B und den verfliesten geradlinigen Bildraum 100. 23 zeigt ferner einen Merkmalpositionspuffer 131 und einen Bildpuffer 132. Eine Anordnung dieses Typs ist in der internationalen Patentanmeldung Veröffentlichungsnummer WO/27257 gezeigt. Bei dem hier beschriebenen verfliesten Schema ist jedoch ein zusätzlicher Merkmalsdatenpuffer 135 erforderlich. Wenn ein Registrierungsfeld 130 aufgebaut wird, ist es notwendig, eine Kopie des Bildfeldes, das das Registrierungsfeld enthält, zu erhalten. Dies liegt daran, daß, wenn derartige Bildfelder inaktiv werden, sie durch die Komprimierungseinrichtung 238 komprimiert werden, und die Daten, die sie enthalten, nicht mehr ohne weiteres für ein Zusammensetzen zur Verfügung stehen. Es ist somit vorteilhaft, diese Felder in einer nicht-komprimierten Form zu dem zusätzlichen Merkmalsfeldpuffer zu kopieren, mit einem Zeiger auf jedes relevante Feld in dem zusätzlichen Merkmalsdatenpuffer 135 von dem Merkmalspositionspuffer 131. Die Verarbeitungsstufen lauten wie folgt:
    • 1. Wie oben erwähnt wurde, werden Registrierungsfelder (130) während der Sammlung des Bandes Nr. 1 periodisch entlang des unteren Randes des Bandes in dem Überlappungsbereich 105 markiert. Für die oben beschriebene Korrelation könnte ein ganzes Registrierungsfeld verwendet werden, bei dem bevorzugten Ausführungsbeispiel ist jedoch ein kleiner Bereich eines Hochfrequenzkontrastes (im folgenden als „Registrierungsmerkmal" bezeichnet), der aus einem rechteckigen Feld (z. B. 15 × 15 Pixel) eines Grauskalenbildes besteht, in einem Registrierungsfeld angeordnet, das einen Bestandteil des Bildes bildet, das in dem verfliesten geradlinigen Bildraum 100 infolge der Aufnahme des Bandes Nr. 1 rekonstruiert wird. Bei Ausführungsbeispielen, bei denen eine Komprimierung wie in dem Verfahren der 14 angegeben vorgesehen ist, werden Bildfelder, die diese Registrierungsfelder 130 enthalten, zu dem zusätzlichen Merkmalsdatenpuffer 135 kopiert, bevor derartige Bildfelder komprimiert werden.
    • 2. Die Positionsmarkierungen der Registrierungsmerkmale (die die Position jedes Registrierungsmerkmals in dem verfliesten geradlinigen Bildraum 100 definieren) werden vor dem Beginn der Abbildung des Bandes Nr. 2 in den geradlinigen Bildraum 100 in dem Merkmalspositionspuffer 131 gesichert.
    • 3. Während Band Nr. 2 abgebildet wird, werden Registrierungsmerkmalspositionen identifiziert, bevor durch Band Nr. 2 diese Region des geradlinigen Bildraums beschrieben wird. Dies wird dadurch erreicht, daß ein rechteckiges Aufnahmefenster 107 definiert wird, das in 24 mit einer Länge, die gleich einem Bildinkrement ist, und mit einer Breite einiger weniger Pixel angegeben ist und dem Bildinkrement des Bandes Nr. 2 vorausgeht, das derzeit einer Abbildung in den geradlinigen Bildraum 100 unterzogen wird. Wenn eine in dem Merkmalspositionspuffer 131 gespeicherte Registrierungsmerkmalsposition in das Aufnahmefenster 107 fällt, wird die Registrierungsmerkmalsposition ausgewählt (zu jeglichem Zeitpunkt kann immer nur eine Registrierungsmerkmalsposition ausgewählt werden).
    • 4. Die ausgewählte Registrierungsmerkmalsposition wird verwendet, um die vorausgesagte Position des Registrierungsmerkmals zu definieren, wenn Band Nr. 2 in den geradlinigen Bildraum abgebildet wird. Navigationsfehler, die bezüglich vorheriger Registrierungsmerkmale gefunden werden, werden berücksichtigt, indem die aktuelle Fehlerschätzung (in einem Fehlerpuffer 134 gespeichert) verwendet wird, um die Position des aktuellen Registrierungsmerkmals vorherzusagen. Somit muß der zum Lokalisieren des aktuellen Registrierungsmerkmals verwendete Suchbereich dann lediglich groß genug sein, um das mögliche Fehlerinkrement zu berücksichtigen.
    • 5. Der spezielle Bildpuffer 132 wird verwendet, um direkt von dem Inkrementpuffer B eine Geradliniges-Bild-Abbildung der Bilddaten des Bandes Nr. 2, das um die ausgewählte Registrierungsmerkmalposition angeordnet ist, vorübergehend zu speichern, sowie um die Registrierungsmerkmalsposition zu speichern. Mit anderen Worten wird zu einem Zeitpunkt T das in 24 gezeigte Bildinkrement 138 in den Puffer 132 abgebildet. Die Größe des speziellen Bildpuffers 132 muß ausreichend sein, um das Registrierungsmerkmal plus den erforderlichen Suchbereich zu speichern, dessen Größe gemäß bekannter Fehlerschätzalgorithmen berechnet wird.
    • 6. Das Bildfragment aus Band Nr. 2, das in dem speziellen Bildpuffer 132 gespeichert ist, wird dann mit dem entsprechenden Bildfragment verglichen, das in dem Merkmalsdatenpuffer 135 gespeichert ist, auf den durch den Merkmalspositionspuffer 131 für das relevante Registrierungsfeld 130 gezeigt wird. Auf diese Weise wird ein Versatz erhalten, der, wenn er mit der vorherigen Fehlerschätzung akkumuliert wird, eine aktualisierte Schätzung des Navigationsfehlers ergibt. Diese aktualisierte Schätzung wird zusammen mit einer Positionsmarkierung in dem Fehlerpuffer 134 gespeichert.
  • Die Positionsmarkierung der Fehlerschätzung ist einfach die Position, bezüglich des geradlinigen Bildraums, der Mitte des aktuellen Registrierungsmerkmals. Sie wird wiederum verwendet, um das Inkrement in dem Inkrementpuffer B, auf das sich die Fehlerschätzung bezieht (z. B. das erste Inkrement, das Band Nr. 2 entspricht, das auf diese Bildposition abbildet) zu ermitteln. Dies gibt das Inkrement an, das die Gemessene-Fehler-Schätzung vollständig berücksichtigen sollte.
  • Während auch andere Korrelationslösungsansätze verwendet werden könnten, ist ein akzeptabler Lösungsansatz für eine Berechnung des Versatzes zwischen zwei Bildfragmenten eine Korrelation der „Summe der quadrierten Differenz". Ein kleiner Suchbereich ist um die ursprüngliche Position des Merkmals definiert, und Korrelationskoeffizienten werden durch die folgende Gleichung ermittelt: Ck,l = ΣiΣj(Tij – Ii+k,j+l)2 wobei Tij die Grauskalenwerte des Merkmals von Band Nr. 1 bezeichnet, und Ii+k,j+l die Grauskalenwerte des neu erfaßten Merkmals von Band Nr. 2 bezeichnet. Die Indizes i und j spezifizieren Pixelpositionen in den Merkmalen, während k und l den Betrag des vorgeschlagenen translatorischen Versatzes (der darauf beschränkt ist, innerhalb des Suchraums zu verbleiben) spezifizieren. Das kleinste Element in dem sich ergebenden Koorelationsarray bezeichnet den Versatz zwischen den beiden Merkmalen. Das Registrierungsmerkmal in dem Registrierungsfeld ist so gewählt, daß es die Bildvarianz maximiert, da dies die Genauigkeit des Korrelationsverfahrens verbessert. Einzelheiten der Anwendung dieses Lösungsansatzes sind in der internationalen Patentanmeldung Veröffentlichungsnr. WO 96/27257 näher erörtert.
  • In einer zweiten Verarbeitungsphase werden die Bilddaten von Band Nr. 2 in den geradlinigen Bildraum geschrieben, wobei die Fehlerschätzungen bei den aufgezeichneten Positionen berücksichtigt werden, um diese Fehler aus dem endgültigen rekonstruierten Bild zu entfernen. Dies erfolgt durch Modifizieren der Positionsdaten, die den Endpunkten der einzelnen Bildinkremente von Sensordaten zugeordnet sind. Diese Verarbeitung wird in dem Kontext des Verfahrens der 14 vorteilhafterweise abgeschlossen, bevor ermit telt wird, welche Felder als aktive Felder in einer „Runde" eines Verfliesens, einer Berichtigung und einer Komprimierung erforderlich sind.
  • Dieser bevorzugte Lösungsansatz liefert ein verbessertes Zusammensetzen, da Fehler in den Positionen des Navigationssensors, der sich durch die Überlappungsregion zwischen Bändern bewegt, identifiziert und korrigiert werden, bevor das endgültige Bild rekonstruiert wird. Ferner können Fehler zwischen den berechneten Positionen des oberen Werts und des unteren Werts der Bildinkremente, die sich während der Sammlung des vorherigen Bandes akkumuliert haben, zu Beginn des nächsten Bandes auf einmal absorbiert werden, ohne unerwünschte Artefakte einzubringen. Dies wird in 24 durch die Diskontinuität zwischen den rechten Rändern des Umkehrpunktes zwischen Band Nr. 1 und Band Nr. 2 angegeben, die von der oben beschriebenen ersten und zweiten Verarbeitungsphase abgeleitet ist.
  • Der Zusammensetzschritt kann bezüglich der Beschaffenheit der erforderlichen Bildaufnahme (insbesondere, jedoch nicht ausschließlich, des Scannens) auf unterschiedliche Weise implementiert werden. Eine Alternative besteht darin, zu erfordern, daß ein Scannen von dem oberen Ende einer Seite zu dem unteren Ende verläuft, wobei das Zusammensetzen in diesem Fall immer nur zwischen dem unteren Ende eines Bandes und dem oberen Ende des nächsten durchgeführt werden muß. Ein weiterer Lösungsansatz besteht darin, zu ermöglichen, daß das Scannen an einem beliebigen Teil der Seite beginnt, jedoch zu erfordern, daß die anfängliche Scanrichtung beibehalten wird. In diesem Fall muß die Fähigkeit vorliegen, Registrierungsmerkmale an beiden Rändern von Bändern zu identifizieren, nachdem die Scanrichtung eingerichtet ist, müssen Fehlerschätzungen jedoch nur für eine Seite des aktuellen Bandes gehalten werden. Bei einem weiteren Lösungsansatz kann ein Scannen in einer beliebigen Richtung erlaubt sein, und Änderungen der Scanrichtung können ebenfalls ermöglicht werden, beispielsweise ein spiral förmiges Scannen. Bei diesem dritten Lösungsansatz muß nicht nur die Fähigkeit vorliegen, Registrierungsmerkmale an beiden Rändern von Bändern zu identifizieren, sondern Fehlerschätzungen müssen sowohl für das obere Ende als auch das untere Ende jedes Bandes gehalten werden, falls sich die Scanrichtung ändern sollte. Der letztgenannte Lösungsansatz liefert die größte Flexibilität für den Benutzer, ist jedoch mit einem höheren Rechenaufwand verbunden.
  • Bei einem bevorzugten Ausführungsbeispiel ist die Verarbeitungselektronik für eine Bildrekonstruktion, Zusammensetzung und Bildverwaltung in dem Gehäuse enthalten, das die Scanvorrichtung 10 der 1 definiert. Somit kann das gescannte Bild unmittelbar an der Bildanzeige 16 präsentiert werden. Die Scanvorrichtung kann jedoch einen Speicher enthalten, um die positionsmarkierten Bilddaten zu speichern, jedoch ohne eine Verarbeitungs- und Dateiverwaltungselektronik und -Firmware.
  • Wie unter Bezugnahme auf 3 erwähnt wurde, sind die Navigations- und Bilderzeugungssensoren 22, 24 und 26 vorzugsweise an einem Drehbauglied 20 angebracht. Bei einem Ausführungsbeispiel ist das Drehbauglied durch zumindest ein Elastomer mit dem Rest des Gehäuses verbunden, wobei ein Ende des Elastomers mit dem ortsfesten Abschnitt des Gehäuses verbunden ist und das andere Ende mit dem Drehbauglied verbunden ist. Das Elastomer dient als Scharnier. Somit wird ermöglicht, daß der sich drehende Abschnitt ohne die Verwendung von Reibungselementen „schwebt". Strom, Steuerung und Datensignale können über flexible Kabel, die abgeschirmt sind, um elektromagnetische Störungen zu minimieren, an die Sensoren geleitet werden. Andere Verfahren eines drehbaren Befestigens des Drehbauglieds können verwendet werden. Falls das Drehbauglied weggelassen wird und sich die Sensoren in einer feststehenden Position an dem Gehäuse befinden, muß darauf geachtet werden, die Scanvorrichtung 10 während einer Bildaufnahme nicht übermäßig zu neigen. Bei diesem Ausführungsbeispiel muß dem Entwurf von Beleuchtungs- und optischen Elementen erhöhte Aufmerksamkeit gewidmet werden.
  • Obwohl die Erfindung als eine beschrieben und veranschaulicht wurde, bei der ein planares Original gescannt wird, ist dies nicht kritisch. In der Tat werden Fachleute ohne weiteres erkennen, daß viele der Techniken zum Scannen von dreidimensionalen Bildern verwendet werden können. Jedoch ist das bevorzugte Ausführungsbeispiel eines, bei dem das interessierende Bild auf einem Medium gebildet ist, beispielsweise einem Stück Papier, einem Transparent oder einer Photographie, und bei dem die Scanvorrichtung in Kontakt mit dem Medium steht.
  • Wie oben angegeben wurde, ist die Erfindung bezüglich eines anderen Aspekts jedoch gleichermaßen auf eine Bildaufnahme einer anderen Art anwendbar. Die Erfindung kann gleichermaßen auf die Aufnahme von Bilddaten mit einem Bereichssensor wie beispielsweise einer herkömmlichen Digitalkamera angewandt werden. Bezüglich einer Aufnahme eines großen Bildes bei einer erhöhten Auflösung mit einer Digitalkamera besteht ein effektiver Lösungsansatz darin, über das Bild abzutasten, wobei eine Serie von Bildrahmen genommen wird, die jeweils einen Teil des großen Bildes aufnehmen, wobei eine Überabtastung stattfindet, so daß zwischen verschiedenen durch die Digitalkamera aufgenommenen Bildrahmen Überlappungsbereiche vorliegen, und anschließend relative Positionen zwischen den unterschiedlichen Elementen durch Verwenden dieser Überlappungsbereiche zu etablieren. Ausgehend von diesen relativen Positionen kann das Bild anschließend gemäß dem Verfahren der Erfindung rekonstruiert werden – somit ist kein separater Positionssensor erforderlich. Es wäre selbstverständlich möglich, einen Positionssensor mit einem Bereichsbildsensor zu liefern, in diesem Fall ist jedoch der bezüglich des bevorzugten Ausführungsbeispiels beschriebene erste Aspekt der Erfindung vollständig anwendbar – bei manchen Aufnahmebetriebsbedingungen kann die Verwen dung eines derartigen Positionssensors kostspielig, unzweckmäßig oder sogar unmöglich sein.
  • Im folgenden wird der Schritt des Bestimmens relativer Positionen erörtert. Während Fachleute erkennen werden, daß es möglich ist, komplexere Situationen zu adressieren, beziehen sich die unkompliziertesten Anwendungen dieses Lösungsansatzes auf Situationen, bei denen eine einzelne globale Transformation mit lediglich einigen wenigen Parametern verwendet werden kann, um die Position eines Bildes in einer Sequenz zu benachbarten Bildern in einer Sequenz in Bezug zu setzen. Dies gilt, wenn das aufzunehmende Bild planar (beispielsweise ein flaches Dokument oder eine Bildschirmtafel) oder effektiv planar ist (Landschaften, bei denen Merkmale bezüglich der Bewegung des Bereichssensors sehr weit entfernt sind). Dies gilt ferner ungeachtet des Inhalts der gescannten Szene, falls die Bewegung des Sensors eine Drehung um das optische Zentrum der Bilderzeugungsvorrichtung ist (oder einer derartigen Drehung sehr nahe kommt) – wie dies oft bei einer Aufnahme eines Panoramas aus einer Sequenz von einzelnen Schnappschüssen der Fall ist. Wie oben angegeben ist, werden bei der Aufnahme keine Positionsdaten benötigt – es ist lediglich angebracht, zu wissen, welche Bildrahmen räumlich benachbart sind (obwohl dies, falls notwendig, durch einen umfassenderen Merkmalsabstimmschritt berechnet werden könnte).
  • Bei jeder der obigen Situationen können relative Positionen ermittelt werden, beispielsweise durch die Klasse von planaren 2D-Projektivtransformationen. Die generische Transformation weist 8 Parameter und die folgende Form auf:
    Figure 00790001
    wobei (x, y) die Koordinaten eines ersten Bildes sind, (x', y') die Koordinaten des zweiten Bildes sind, und (m0, m1, m2, m3, m4, m5, m6, m7) die Parameter der Transformierten sind.
  • Wie Fachleute erkennen werden, finden sich in der technischen Literatur über die Bildverarbeitung zahlreiche Verfahren zum Bestimmen dieser Transformation. Wie oben angegeben wurde, ist das zentrale Konzept die Verwendung des Überlappungsabschnitts zwischen einem Paar von Bildern, um die relative Transformation, die zwischen den Bildern als Ganzes existiert, zu ermitteln. Aufeinanderfolgende Bilder können anschließend transformiert und bezüglich eines einzelnen globalen Koordinatenrahmens zusammengesetzt werden. Ein Beispiel dieses Lösungsansatzes wird in „Video Mosaics for Virtual Environments" von Richard Szeleski, IEEE Computer Graphics and Applications, März 1996, Seiten 22–30, und in den den darin zitierten Referenzen geliefert.
  • Nachdem die Bildrahmen bezüglich eines globalen Koordinatenrahmens zusammengesetzt wurden, ist es anschließend möglich, einfach das oben angegebene Verfliesungsschema und ein Verfahren, wie es im wesentlichen in 14 angegeben ist, zu verwenden, um ein verfliestes Bild zu erzielen.

Claims (21)

  1. Ein Verfahren zum Rekonstruieren eines Bildes aus einer Mehrzahl von Bildelementen, wobei jedes Bildelement Bilddaten, die in einem Bildsensor aufgenommen werden, und Positionsdaten, die eine Position dieses Bildelements bezüglich anderer der Bildelemente anzeigen, umfaßt, dadurch gekennzeichnet, daß das Verfahren folgende Schritte umfaßt: Rekonstruieren des Bildes in Form einer Mehrzahl von Feldern, die auf der Basis der Bildelemente erzeugt werden, wobei jedes Feld ein Pixelgitter einer vorbestimmten Abmessung, das eine spezifische räumliche Region des Bildes darstellt, aufweist, und Erzeugen eines Feldindexes, der jedes Feld, das mit seiner spezifischen räumlichen Region des Bildes erzeugt wird, indexiert.
  2. Ein Verfahren gemäß Anspruch 1, bei dem die Positionsdaten von einer Navigationseinrichtung abgeleitet werden, die die Positionsdaten für ein Bildelement auf ein Aufnehmen dieses Bildelements durch den Bildsensor hin liefert.
  3. Ein Verfahren gemäß Anspruch 1, bei dem die Positionsdaten von einem vorhergehenden Schritt eines Bestimmens, von Merkmalen der Bildelemente, einer relativen Position für jedes Bildelement bezüglich anderer der Bildelemente abgeleitet werden.
  4. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem die Felder zusammenhängend sind und einander nicht überlappen.
  5. Ein Verfahren gemäß Anspruch 4, bei dem die Felder ausgelegt sind, um in zwei Richtungen tesselliert zu werden.
  6. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem das Bild in Form eines Stroms von Sensorablesungen aufgenommen wird, wobei jede Sensorablesung Bilddaten und entsprechende Positionsdaten umfaßt.
  7. Ein Verfahren gemäß Anspruch 6, das folgende wiederholte Schritte aufweist: Verwalten von Feldern durch ein Bestimmen, von den Positionsdaten, ob Felder existieren, die den räumlichen Positionen einer oder mehrerer eingegebener Sensorablesungen in dem Bild entsprechen, und durch ein Erzeugen eines oder mehrerer neuer Felder nach Bedarf, so daß Felder, die den räumlichen Positionen der einen oder der mehreren Sensorablesungen entsprechen, existieren; und Schreiben in Felder durch ein Zuweisen von Pixelwerten zu den Pixeln von Feldern, die den räumlichen Positionen der einen oder der mehreren eingegebenen Sensorablesungen entsprechen, auf der Basis der Bilddaten und der Positionsdaten.
  8. Ein Verfahren gemäß Anspruch 7, bei dem die eine oder die mehreren Sensorablesungen eine Gruppe von Sensorablesungen umfaßt beziehungsweise umfassen und bei dem die Schritte des Verwaltens von Feldern und des Schreibens in Felder für aufeinanderfolgende Gruppen von Sensorablesungen wiederholt werden.
  9. Ein Verfahren gemäß Anspruch 8, bei dem der Schritt des Verwaltens von Feldern für N aufeinanderfolgende Sensorablesungen vor dem Schritt des Schreibens in Felder stattfindet und bei dem der Schritt des Schreibens in Felder für Gruppen von M aufeinanderfolgenden Sensorablesungen stattfindet, wobei N und M positive Ganzzahlen sind, die größer sind als 1, (N – 1)/(M – 1) eine positive Ganzzahl ist, und bei dem der Schritt des Schreibens in Felder (N – 1)/(M – 1) vor einem weiteren Feldverwaltungsschritt stattfindet.
  10. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem der Feldindex als Baum bereitgestellt wird, wobei jeder Knoten des Baums auf eine Mehrzahl von Stellen bei einem Vielfachen der räumlichen Auflösung dieses Knotens zeigt.
  11. Ein Verfahren gemäß Anspruch 10, bei dem jeder Knoten auf vier Stellen bei der doppelten räumlichen Auflösung dieses Knotens zeigt.
  12. Ein Verfahren gemäß Anspruch 7 oder 8, bei dem ein aktiver Feldpuffer zur Speicherung von Feldern in dem Feldverwaltungsschritt für Felder, die den räumlichen Positionen der einen oder der mehreren Sensorablesungen, bezüglich derer in dem Feldverwaltungsschritt gearbeitet wird, entsprechen, vorgesehen ist.
  13. Ein Verfahren gemäß einem der Ansprüche 7, 8 oder 12, bei dem bei dem Feldverwaltungsschritt manche oder alle existierenden Felder, die nicht den räumlichen Positionen der einen oder der mehreren Sensorablesungen entsprechen, komprimiert werden.
  14. Ein Verfahren gemäß Anspruch 13, wenn derselbe von Anspruch 8 abhängt, wobei die Felder, die den räumlichen Positionen der vorhergehenden Gruppe, bezüglich derer gearbeitet wird, entsprechen, in dem Feldverwaltungs schritt mit den Feldern, die den räumlichen Positionen der aktuellen Gruppe entsprechen, verglichen werden und wobei neu benötigte Felder erzeugt werden und wobei Felder der vorhergehenden Gruppe, die nicht in der aktuellen Gruppe vorliegen, komprimiert werden.
  15. Ein Verfahren gemäß einem der Ansprüche 12 bis 14, bei dem die Felder, die komprimiert werden, in einen Komprimierte-Felder-Speicherbereich geschrieben werden.
  16. Ein Verfahren gemäß Anspruch 12, bei dem ein Aktive-Felder-Index zum Zweck einer Bezugnahme auf Felder in dem Feldschreibschritt vorgesehen ist.
  17. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem die Navigationseinrichtung einen oder mehrere Sensoren zum Erfassen inhärenter strukturbezogener Eigenschaften eines Mediums, das das aufgenommene Bild trägt, umfaßt.
  18. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem der Sensor in einer Scanvorrichtung enthalten ist.
  19. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem das Verfahren zur Verwendung mit einem Sensor, der zu einer unbeschränkten Bewegung über das aufgenommene Bild in der Lage ist, ausgelegt ist.
  20. Eine Scanvorrichtung zum Implementieren eines Verfahrens gemäß einem der Ansprüche 1 bis 19.
  21. Eine Scanvorrichtung zum Sammeln von Bilddaten, die für eine Verbindung mit einem Computersystem zum Durchführen eines Verfahrens gemäß einem der Ansprüche 1 bis 19 entworfen ist.
DE69816185T 1997-06-12 1998-04-28 Bildverarbeitungsverfahren und -vorrichtung Expired - Lifetime DE69816185T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP97304101 1997-06-12
EP97304101 1997-06-12

Publications (2)

Publication Number Publication Date
DE69816185D1 DE69816185D1 (de) 2003-08-14
DE69816185T2 true DE69816185T2 (de) 2004-04-15

Family

ID=8229372

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69816185T Expired - Lifetime DE69816185T2 (de) 1997-06-12 1998-04-28 Bildverarbeitungsverfahren und -vorrichtung

Country Status (4)

Country Link
US (1) US6259826B1 (de)
JP (1) JP3862414B2 (de)
CN (1) CN1310495C (de)
DE (1) DE69816185T2 (de)

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3616256B2 (ja) * 1998-07-03 2005-02-02 シャープ株式会社 画像処理装置
US6549679B1 (en) * 1998-09-10 2003-04-15 Arcsoft, Inc. Automated picture montage method and apparatus
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US6812935B1 (en) * 2000-03-30 2004-11-02 Intel Corporation Scaling images for display
JP2001357398A (ja) * 2000-06-12 2001-12-26 Advantest Corp 画像検出方法及び測長装置
JP3817119B2 (ja) 2000-06-30 2006-08-30 株式会社リコー 画像入力装置
US7027072B1 (en) 2000-10-13 2006-04-11 Silicon Graphics, Inc. Method and system for spatially compositing digital video images with a tile pattern library
US7358974B2 (en) * 2001-01-29 2008-04-15 Silicon Graphics, Inc. Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
US7065258B2 (en) * 2001-05-21 2006-06-20 Mitutoyo Corporation Systems and methods for reducing accumulated systematic errors in image correlation displacement sensing systems
US6720775B2 (en) * 2001-06-12 2004-04-13 General Electric Company Pulsed eddy current two-dimensional sensor array inspection probe and system
US6911826B2 (en) * 2001-06-12 2005-06-28 General Electric Company Pulsed eddy current sensor probes and inspection methods
US6831653B2 (en) * 2001-07-31 2004-12-14 Sun Microsystems, Inc. Graphics pixel packing for improved fill rate performance
US6978052B2 (en) 2002-01-28 2005-12-20 Hewlett-Packard Development Company, L.P. Alignment of images for stitching
US7343049B2 (en) * 2002-03-07 2008-03-11 Marvell International Technology Ltd. Method and apparatus for performing optical character recognition (OCR) and text stitching
JP2004221633A (ja) * 2003-01-09 2004-08-05 Ricoh Co Ltd 画像処理装置、画像処理用プログラム及び記憶媒体
US20040165224A1 (en) * 2003-02-21 2004-08-26 Allen Ross R. Compact optical scanner
US20040202357A1 (en) * 2003-04-11 2004-10-14 Perz Cynthia B. Silhouette image acquisition
US7034837B2 (en) * 2003-05-05 2006-04-25 Silicon Graphics, Inc. Method, system, and computer program product for determining a structure of a graphics compositor tree
US7612803B2 (en) * 2003-06-10 2009-11-03 Zoran Corporation Digital camera with reduced image buffer memory and minimal processing for recycling through a service center
US7586075B1 (en) * 2004-03-01 2009-09-08 Raytheon Company Method for analyzing output data of array subelements of an imaging segmented array
TW200531724A (en) * 2004-03-17 2005-10-01 Zeroplus Technology Co Ltd Game controlling system with displacement detecting capability
US20050226503A1 (en) * 2004-04-07 2005-10-13 Bailey James R Scanned image content analysis
US7653260B2 (en) * 2004-06-17 2010-01-26 Carl Zeis MicroImaging GmbH System and method of registering field of view
US7701463B2 (en) * 2005-05-09 2010-04-20 Autodesk, Inc. Accelerated rendering of images with transparent pixels using a spatial index
WO2006125342A1 (fr) * 2005-05-25 2006-11-30 Lin, Hui Procede de compression d'information pour fichier audio numerique
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US20070031043A1 (en) * 2005-08-02 2007-02-08 Perz Cynthia B System for and method of intelligently directed segmentation analysis for automated microscope systems
US7460730B2 (en) * 2005-08-04 2008-12-02 Microsoft Corporation Video registration and image sequence stitching
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7500732B2 (en) * 2005-09-30 2009-03-10 Lexmark International, Inc. Maintenance and docking station for a hand-held printer
US20070076082A1 (en) * 2005-09-30 2007-04-05 Lexmark International, Inc. Methods and apparatuses for measuring print area using hand-held printer
US7735951B2 (en) * 2005-11-15 2010-06-15 Lexmark International, Inc. Alignment method for hand-operated printer
US20070120937A1 (en) * 2005-11-30 2007-05-31 Lexmark International, Inc. System and method for hand-held printing
US7524051B2 (en) * 2005-12-20 2009-04-28 Lexmark International, Inc. Hand-operated printer having a user interface
US7399129B2 (en) * 2005-12-20 2008-07-15 Lexmark International, Inc. User interface for a hand-operated printer
US8509563B2 (en) 2006-02-02 2013-08-13 Microsoft Corporation Generation of documents from images
US20070237561A1 (en) * 2006-04-11 2007-10-11 Lexmark International Inc. Methods and apparatuses for sensing a print area using a hand-held printer
US7748839B2 (en) * 2006-05-09 2010-07-06 Lexmark International, Inc. Handheld printing with reference indicia
US7682017B2 (en) * 2006-05-10 2010-03-23 Lexmark International, Inc. Handheld printer minimizing printing defects
US7787145B2 (en) * 2006-06-29 2010-08-31 Lexmark International, Inc. Methods for improving print quality in a hand-held printer
US20080030534A1 (en) * 2006-08-02 2008-02-07 Adam Jude Ahne Hand Held Micro-fluid Ejection Devices Configured to Eject Fluid without Referential Position Information and Method of Ejecting Fluid
US7389206B2 (en) * 2006-08-10 2008-06-17 General Electric Company Inspection systems and methods of operation
JP4798582B2 (ja) * 2006-08-22 2011-10-19 株式会社リコー 画像処理装置、画像処理方法およびプログラム
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20080079956A1 (en) * 2006-09-21 2008-04-03 Mahesan Chelvayohan Hand-Held Printer Having An Integrated Digital Camera Scanner
US20080075513A1 (en) * 2006-09-26 2008-03-27 Douglas Laurence Robertson Methods for a Maintenance Algorithm in Hand Held Printers
US7938531B2 (en) 2006-09-27 2011-05-10 Lexmark International, Inc. Methods and apparatus for handheld printing with optical positioning
US7748840B2 (en) * 2006-09-27 2010-07-06 Lexmark International, Inc. Methods and apparatus for handheld printing with optical positioning
US7918519B2 (en) 2006-09-27 2011-04-05 Lexmark International, Inc. Methods and apparatus for handheld printing with optical positioning
US9411431B2 (en) * 2006-12-29 2016-08-09 Marvell World Trade Ltd. Tracking a position in relation to a surface
US8043015B1 (en) * 2007-01-02 2011-10-25 Marvell International Ltd. Detecting edge of a print medium with a handheld image translation device
US8226194B1 (en) 2007-01-02 2012-07-24 Marvell International Ltd. Printing on planar or non-planar print surface with handheld printing device
US8077343B1 (en) 2007-01-03 2011-12-13 Marvell International Ltd. Determining end of print job in handheld image translation device
US8632266B1 (en) 2007-01-03 2014-01-21 Marvell International Ltd. Printer for a mobile device
US9826197B2 (en) * 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US9355681B2 (en) * 2007-01-12 2016-05-31 Activevideo Networks, Inc. MPEG objects and systems and methods for using MPEG objects
US7938532B2 (en) 2007-02-16 2011-05-10 Lexmark International, Inc. Hand held printer with vertical misalignment correction
US20080219737A1 (en) * 2007-03-07 2008-09-11 Michael David Stilz Hand Held Printer Having A Doppler Position Sensor
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8092006B2 (en) 2007-06-22 2012-01-10 Lexmark International, Inc. Handheld printer configuration
US20080319664A1 (en) * 2007-06-25 2008-12-25 Tidex Systems Ltd. Navigation aid
WO2009015414A1 (en) * 2007-08-01 2009-02-05 Silverbrook Research Pty Ltd Two dimensional contact image sensor with backlighting
US20090040286A1 (en) * 2007-08-08 2009-02-12 Tan Theresa Joy L Print scheduling in handheld printers
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010019757A1 (en) * 2008-08-14 2010-02-18 Remotereality Corporation Three-mirror panoramic camera
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
CA2814070A1 (en) 2010-10-14 2012-04-19 Activevideo Networks, Inc. Streaming digital video between video devices using a cable television system
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8989492B2 (en) * 2011-06-03 2015-03-24 Apple Inc. Multi-resolution spatial feature extraction for automatic handwriting recognition
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8730264B1 (en) 2011-09-26 2014-05-20 Google Inc. Determining when image elements intersect
WO2013106390A1 (en) 2012-01-09 2013-07-18 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US8786732B2 (en) * 2012-10-31 2014-07-22 Pixon Imaging, Inc. Device and method for extending dynamic range in an image sensor
US8885951B1 (en) * 2012-12-14 2014-11-11 Tony Cristofano System and method for data identification and extraction of forms
KR20230137475A (ko) 2013-02-07 2023-10-04 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
WO2014197879A1 (en) 2013-06-06 2014-12-11 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3937002A1 (de) 2013-06-09 2022-01-12 Apple Inc. Vorrichtung, verfahren und grafische benutzeroberfläche für gesprächspersistenz über zwei oder mehrere instanzen eines digitalen assistenten
KR101809808B1 (ko) 2013-06-13 2017-12-15 애플 인크. 음성 명령에 의해 개시되는 긴급 전화를 걸기 위한 시스템 및 방법
JP6163266B2 (ja) 2013-08-06 2017-07-12 アップル インコーポレイテッド リモート機器からの作動に基づくスマート応答の自動作動
JP2015154324A (ja) 2014-02-17 2015-08-24 キヤノン株式会社 撮像システム、撮像装置、画像処理装置
US9501826B2 (en) * 2014-05-06 2016-11-22 Intel Corporation Rectification techniques for heterogeneous camera arrays
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
EP3480811A1 (de) 2014-05-30 2019-05-08 Apple Inc. Verfahren zur eingabe von mehreren befehlen mit einer einzigen äusserung
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US9264575B1 (en) 2015-05-20 2016-02-16 Xerox Corporation Real time correlation mark images for low memory devices
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
CN106603884A (zh) * 2015-10-14 2017-04-26 东友科技股份有限公司 影像提取方法
TWI558163B (zh) * 2015-10-14 2016-11-11 東友科技股份有限公司 影像擷取方法
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
KR102433227B1 (ko) 2016-02-09 2022-08-18 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 효율적인 감소성 또는 효율적인 랜덤 액세스를 허용하는 픽처/비디오 데이터 스트림들에 대한 개념
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
CN111292232B (zh) * 2018-12-06 2023-08-15 成都微晶景泰科技有限公司 透镜阵列图像拼接方法、装置及存储介质
CN109948581B (zh) * 2019-03-28 2023-05-05 腾讯科技(深圳)有限公司 图文渲染方法、装置、设备及可读存储介质
CN110335671B (zh) * 2019-07-12 2023-03-24 四川明峰医疗科技有限公司 一种可调制的ct探测器数据压缩采集方法
CN114494082B (zh) * 2022-04-02 2022-07-08 成都理工大学工程技术学院 一种基于图像识别的影像地图瓦片图处理方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6042990B2 (ja) 1978-05-22 1985-09-26 株式会社日立製作所 パタ−ン認識方法
JPH0727540B2 (ja) 1985-08-21 1995-03-29 シャープ株式会社 手動掃引イメ−ジ読み取り装置
US4947447A (en) * 1986-04-24 1990-08-07 Hitachi, Ltd. Method for data coding
US4797544A (en) 1986-07-23 1989-01-10 Montgomery James R Optical scanner including position sensors
EP0267456B1 (de) 1986-10-16 1992-09-09 Sharp Kabushiki Kaisha Bildlesegerät
US4944023A (en) * 1987-05-19 1990-07-24 Ricoh Company, Ltd. Method of describing image information
JPS6418187A (en) 1987-07-13 1989-01-20 Sharp Kk Pseudo font input system
US4984287A (en) 1988-11-15 1991-01-08 Msc Technologies, Inc. Method for orienting a dual mouse optical scanner
FR2644263B1 (fr) 1989-03-13 1991-06-14 Matra Sep Imagerie Inf Procede et dispositif d'acquisition et de stockage numerique de cartes geographiques en couleurs et de restitution de ces cartes
JP2917155B2 (ja) 1989-12-18 1999-07-12 株式会社日立製作所 画像結合装置及び方法
US5355146A (en) 1990-03-05 1994-10-11 Bmc Micro-Industries Ltd. Multi-directional hand scanner and mouse
US5675672A (en) 1990-06-26 1997-10-07 Seiko Epson Corporation Two dimensional linker for character string data
US5228098A (en) * 1991-06-14 1993-07-13 Tektronix, Inc. Adaptive spatio-temporal compression/decompression of video image signals
CA2101932A1 (en) 1991-12-10 1993-06-11 Dominique Pitteloud Apparatus and methods for automerging images
US5686960A (en) 1992-01-14 1997-11-11 Michael Sussman Image input device having optical deflection elements for capturing multiple sub-images
US5306908A (en) 1993-03-15 1994-04-26 Hewlett-Packard Company Manually operated hand-held optical scanner with tactile speed control assembly
US5732162A (en) 1993-10-28 1998-03-24 Xerox Corporation Two dimensional linearity and registration error correction in a hyperacuity printer
GB2288512B (en) 1994-04-14 1998-08-26 Matsushita Electric Ind Co Ltd Image processing apparatus
EP0698991A2 (de) 1994-08-24 1996-02-28 International Business Machines Corporation Abtaster
US5578813A (en) 1995-03-02 1996-11-26 Allen; Ross R. Freehand image scanning device which compensates for non-linear movement
US5999189A (en) * 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US5729008A (en) 1996-01-25 1998-03-17 Hewlett-Packard Company Method and device for tracking relative movement by correlating signals from an array of photoelements
US5787889A (en) 1996-12-18 1998-08-04 University Of Washington Ultrasound imaging with real time 3D image reconstruction and visualization

Also Published As

Publication number Publication date
CN1310495C (zh) 2007-04-11
CN1203490A (zh) 1998-12-30
JPH1173494A (ja) 1999-03-16
US6259826B1 (en) 2001-07-10
DE69816185D1 (de) 2003-08-14
JP3862414B2 (ja) 2006-12-27

Similar Documents

Publication Publication Date Title
DE69816185T2 (de) Bildverarbeitungsverfahren und -vorrichtung
DE69737495T2 (de) Verfahren und Vorrichtung zur Bildabtastung
DE69924936T2 (de) Positionierungs-System für Hand-Scanner
Russ The image processing handbook
DE69735488T2 (de) Verfahren und vorrichtung zum ausrichten von bildern
DE60027529T2 (de) Bilderzeugungssystem für dokumente
DE69629235T2 (de) Gerät zur automatischen Detektion der Anwesenheit, der Breite und der Phasenverschiebung eines Dokumentes innerhalb eines Dokumentenabtasters
DE69924827T2 (de) Verfahren und Vorrichtung zur Verarbeitung von Bilddaten
DE19816123A1 (de) Mehrfachbildabtastvorrichtung
EP1169847A1 (de) Verfahren und system zum erhöhen der auflösung
DE69632108T2 (de) Informationsauslesegerät
DE10157456A1 (de) Anzeigevorrichtung mit Bilderfassungsfähigkeiten und Verfahren zur Verwendung derselben
DE69935392T2 (de) Dokumentverarbeitung
DE102008008360A1 (de) Scaneinrichtung, Vorrichtung und Verfahren zur Bildverarbeitung
DE112018004592T5 (de) Wiedergabevorrichtung und -verfahren und erzeugungsvorrichtung und -verfahren
DE19730157A1 (de) Bildlesepositionsfehler-Meßeinrichtung
EP1333402A1 (de) Redundanter zweidimensionaler Code und Decodierverfahren
EP1358536B1 (de) Vorrichtung zum digitalen abbilden und speichern eines dokumentes
DE69829800T2 (de) Abtastvorrichtungen mit beweglichem Fenster
EP0884890B1 (de) Bildverarbeitungsverfahren und -vorrichtung
US6906708B1 (en) Image processing method and apparatus, and storage medium
DE112018000128B4 (de) Verfahren und Vorrichtung zum Generieren und Codieren eines projektionsbasierten Rahmens mit 360-Grad-Inhalt, der durch eine Basisprojektionsfläche und Seitenprojektionsflächen repräsentiert wird, die in einer Pyramidenprojektionsanordnung gepackt sind
DE112017005123B4 (de) Verfahren und Vorrichtung zum Generieren und Codieren eines projektionsbasierten Rahmens mit 360-Grad-Inhalt, der durch rechteckige Projektionsflächen repräsentiert wird, die in einer Viewport-basierten Würfelprojektionsanordnung gepackt sind
CN86105366A (zh) 摄像装置
CA2024475A1 (en) System and method for collecting and transmitting pictorial information

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 884890

Country of ref document: EP

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER & PARTNER