Scroll to navigation

sane-bh(5) SANE Scanner Access Now Easy sane-bh(5)

BEZEICHNUNG

sane-bh - SANE-Backend für Dokumentenscanner der Bell+Howell Copiscan II-Serie

BESCHREIBUNG

Die Bibliothek sane-bh implementiert ein SANE- (Scanner Access Now Easy-) Backend, das Zugriff auf Dokumentenscanner der Bell+Howell Copiscan II-Serie ermöglicht. Während der Entwicklung und des Testens war der Copiscan II 6338 das primäre Scanner-Modell, aber da die Programmierschnittstelle für die gesamte Serie konsistent ist, sollte es für die folgenden Scanner-Modelle funktionieren:

COPISCAN II 6338 Duplex-Scanner mit ACE
COPISCAN II 2135 Simplex-Scanner
COPISCAN II 2137(A) Simplex-Scanner (mit ACE)
COPISCAN II 2138A Simplex-Scanner mit ACE
COPISCAN II 3238 Simplex-Scanner
COPISCAN II 3338(A) Simplex-Scanner (mit ACE)

Falls Sie einen Bell+Howell-Scanner haben und in der Lage sind, ihn mit diesem Backend zu testen, informieren Sie bitte (auf Englisch) sane-devel@alioth-lists.debian.net mit der Modellnummer und den Testergebnissen. Schauen Sie auf http://www.sane-project.org/mailing-lists.html bezüglich des Abonnements von Sane-devel. Zusätzlich ist der Autor bezüglich der Wahrscheinlichkeit, dieses Backend mit den neueren Scannern der 4000- und 8000-Serie zu verwenden, neugierig. Falls Sie so ein Teil haben, lassen Sie es mich wissen.

Die Dokumentenscanner der Bell+Howell Copiscan II-Serie sind für Dokumenten-Scan-Anwendungen für große Mengen und hohen Durchsatz entwickelt. Daher sind sie Lineart-/Graustufen-Scanner, die eine feste Anzahl an relativ geringen Auflösungen unterstützen (z.B. 200/240/300 DPI). Allerdings verfügen sie über eine Reihe von interessanten und nützlichen Funktionalitäten, die für die Bedürfnisse von Dokumentdarstellungsanwendungen geeignet sind. Dieses Backend versucht, so viele dieser Funktionalitäten wie möglich zu unterstützen.

Die beim Schreiben dieses Backends verwendete zentrale technische Referenz war das Technical Manual Version 1.5 des Bell and Howell Copiscan II Remote SCSI Controller (RSC) OEM. Das Linux-SCSI-Programmier-HOWTO, die SANE-API-Dokumentation und der SANE-Quellcode waren auch extrem wertvolle Ressourcen.

Die neuste Backend-Veröffentlichung, zusätzliche Informationen und hilfreiche Tipps sind von der Backend-Homepage verfügbar:

GERÄTENAMEN

Dieses Backend erwartet Gerätenamen der folgenden Form:

Spezialdatei

Die angegebene Spezialdatei ist der Pfadname eines Spezialgeräts, das einem SCSI-Scanner entspricht. Für SCSI-Scanner muss der Name des Spezialgeräts ein generisches SCSI-Gerät oder ein symbolischer Link zu so einem Gerät sein. Unter Linux hat ein solcher Gerätename beispielsweise das Format /dev/sga oder /dev/sg0. Siehe sane-scsi(5) für Details.

KONFIGURATION

Der Inhalt der Datei bh.conf ist eine Liste von Dateinamen, die Bell+Howell-Scannern entsprechen. Siehe sane-scsi(5) bezüglich der Details, wie ein gültiger Dateiname aufgebaut ist. Zusätzlich können Optionen angegeben werden; diese Zeilen beginnen mit dem Wort »option«. Jede Option wird im Detail nachfolgend beschrieben. Leere Zeilen und solche, die mit einer Raute (#) beginnen, werden ignoriert.

OPTIONEN

Die folgenden Optionen können in der Datei bh.conf festgelegt werden:

Diese Option verhindert, dass das Backend optionale Rahmen sendet. Diese Option kann nützlich sein, wenn Oberflächen ins Spiel kommen, die diese zusätzlichen Rahmen nicht unterstützen. Wenn diese Option wirksam ist, werden die Daten in einem SANE_FRAME_GRAY-Rahmen gesendet. Die von diesem Backend optional gesendeten Rahmen sind: SANE_FRAME_G31D, SANE_FRAME_G32D, SANE_FRAME_G42D und SANE_FRAME_TEXT. Diese Rahmen werden basierend auf den Komprimierungs- und Barcode-Optionen gesendet. Diese Rahmen werden niemals im Vorschaumodus gesendet.
Diese Option ist im Fehlersuchmodus nützlich und wird nicht empfohlen. Im Kern erlaubt sie es dem Backend, sich auch ohne vorhandenen Scanner zu initialisieren. Dies ist nur zu Entwicklungszwecken nützlich. Diese Option muss vor den Geräten, die fingiert werden sollen, in der Konfigurationsdatei festgelegt werden.

DATEIEN

/etc/sane.d/bh.conf
Die Backend-Konfigurationsdatei (siehe auch die nachfolgende Beschreibung von SANE_CONFIG_DIR).
/usr/lib/x86_64-linux-gnu/sane/libsane-bh.a
Die statische Bibliothek, die dieses Backend implementiert.
/usr/lib/x86_64-linux-gnu/sane/libsane-bh.so
Die dynamische Bibliothek, die dieses Backend implementiert (auf Systemen verfügbar, die dynamisches Laden unterstützen).

UMGEBUNGSVARIABLEN

Diese Umgebungsvariable gibt eine Liste von Verzeichnissen an, die die Konfigurationsdatei enthalten können. Unter UNIX sind die Verzeichnisse durch Doppelpunkte (:) getrennt, unter OS/2 durch Semikola (;). Falls diese Variable nicht gesetzt ist, wird in zwei Standardverzeichnissen nach der Konfigurationsdatei gesucht: zuerst im aktuellen Arbeitsverzeichnis (.) und dann in /etc/sane.d. Falls der Wert der Umgebungsvariable mit dem Verzeichnis-Trennzeichen endet, dann werden die Standardverzeichnisse nach den explizit angegebenen Verzeichnissen durchsucht. Wenn Sie beispielsweise SANE_CONFIG_DIR auf »/tmp/config:« setzen, wird in den Verzeichnissen »tmp/config«, ».« und »/etc/sane.d« gesucht (in dieser Reihenfolge).
Falls die Bibliothek mit Debug-Unterstützung kompiliert wurde, steuert diese Umgebungsvariable die Debug-Stufe für dieses Backend. Beispielsweise bewirkt ein Wert von 255 die Anzeige sämtlicher Debug-Ausgaben. Kleinere Werte reduzieren die Ausführlichkeit.

UNTERSTÜTZTE FUNKTIONEN

Bei Dokumentenscannern ist die Unterstützung des automatische Dokumenteneinzugs (ADF) eine Kernfunktionalität. Das Backend unterstützt standardmäßig ADF und liefert SANE_STATUS_NO_DOCS zurück, wenn die »Papier leer«-Bedingung aufgetreten ist. Die SANE-Oberfläche scanadf(1) ist eine Befehlszeilenoberfläche, die Mehrseiten-Scans unterstützt. Sie wurde mit diesem Backend erfolgreich verwendet. Die SANE-Oberfläche xsane(1) ist eine verbesserte GUI-Oberfläche von Oliver Rauch. Die Unterstützung für Mehrseiten-Scans ist in Xsane seit Version 0.35 enthalten.

Einige Modelle, wie der COPISCAN II 6338, unterstützen das Duplex-Scannen. Das bedeutet, sie können während eines einzelnen Durchlaufs durch den Scanner beide Seiten eines Dokuments scannen (der Scanner hat zwei Kameras). Dieses Backend unterstützt Duplex-Scannen (mit der Option --duplex). Die Bilder der Vorder- und Rückseite werden nacheinander ausgeliefert, als ob sie separat gescannte Seiten wären.

Der Scanner ist in der Lage, die Daten in einer Reihe von Industriestandardformaten (CCITT G3, CCITT G3-2D, CCITT G4) zu komprimieren. Dies führt zu erhöhter Leistung, da weniger Daten vom Scanner über den SCSI-Bus an den Rechner weitergegeben werden müssen. Das Backend unterstützt diese Komprimierungen über die jeweiligen Optionen --g31d, --g32d, --g42d. Allerdings sind viele SANE-Oberflächen nicht dazu ausgerüstet, mit diesen Formaten umzugehen. Die SANE-Oberfläche scanadf(1) unterstützt diese optionalen Rahmenformate. Die komprimierten Bilddaten werden in eine Datei geschrieben und können dann über ein Scan-Skript mit der Option --scan-script weiterverarbeitet werden. Beispiele hierfür finden Sie auf der Homepage von scanadf(1).

Der Scanner kann automatisch die Papiergröße erkennen und die Scan-Fenster-Geometrie entsprechend anpassen. Das Backend unterstützt diese nützliche Funktionalität mit der Option --autoborder. Sie ist standardmäßig aktiviert.

Der Stapelmodus-Scan erlaubt maximalen Durchsatz. Die »Set Window«-Parameter müssen während des gesamten Durchlaufs konstant bleiben.

Die Icon-Funktion erstellt ein Miniaturbild des vollständigen Seitenabbilds, das übertragen werden kann, als ob es eine getrennte Seite wäre. Dies ermöglicht es dem Rechner, während des Scannens schnell ein Miniaturbild anzuzeigen. Vielleicht wäre dies eine großartige Art, einen Vorschau-Scan zu implementieren, da aber der normale Scan so schnell ist, könnte dies den Arbeitsaufwand nicht rechtfertigen.

Mehrere Abschnitte (Scan-Teilfenster) können für die Vorder- und Rückseiten definiert werden. Jeder Abschnitt kann über andere Charakteristiken (z.B. Geometrie, Komprimierung) verfügen. Die Abschnitte werden zurückgeliefert, als ob sie getrennt gescannte Bilder wären. Zusätzliche Abschnitte können zur massiven Verbesserung der Genauigkeit und Effizienz des Barcode-/Patchcode-Dekodierungsprozesses verwendet werden, indem der Suchbereich auf einen kleinen Teil der Seite reduziert wird. Die meisten Scanner der Copiscan II-Serie unterstützen bis zu 8 benutzerdefinierte Abschnitte.

Die RSC-Einheit kann Bar- und Patch-Codes verschiedener Typen erkennen, die in die Seite eingebettet sind. Die Codes werden dekodiert und die Daten an die Oberfläche als Textrahmen zurückgeliefert. Der Text ist in XML kodiert und enthält einen großen Umfang an Informationen über die dekodierten Daten, wie den Ort, wo sie gefunden wurden, die Orientierung und die Zeit, die zum Finden benötigt wurde. Weitere Informationen über den Inhalt dieses Textrahmens sowie ein paar Barcode-Dekodier-Beispiele können auf der Homepage des Backends gefunden werden.

EINSCHRÄNKUNGEN

Die RSC-Einheit kann nach bis zu sechs verschiedenen Barcode-Typen pro Scan auf einmal suchen. Während der Code dies im Allgemeinen gut unterstützt, erlaubt die Option --barcode-search-bar nur die Angabe eines einzelnen Barcode-Typs. Vielleicht könnte eine weitere Option hinzugefügt werden, die dem Benutzer die Angabe einer Kommata-getrennten Liste an Barcode-Typen erlauben würde, um das zu erreichen.
Die Trennung von Backend- und Oberflächenfunktionalität in SANE stellt ein Problem dar, die Funktionalität »Stapelverarbeitung abbrechen« beim Scanner zu unterstützen. Im Stapelverarbeitungsmodus ist der Scanner dem Rechner immer eine Seite voraus. Der Rechner, der vorab weiß, welche Seite die letzte sein wird, kann den Stapelverarbeitungsmodus abbrechen, bevor er den letzten Scan-Befehl initiiert. Derzeit ist für die Oberfläche kein Mechanismus verfügbar, um dieses Wissen an das Backend weiterzugeben. Falls der Stapelverarbeitungsmodus aktiviert ist und --end-count eine Scanadf-Sitzung abbricht, wird eine zusätzliche Seite durch den Scanner gezogen, die aber weder gelesen noch an die Oberfläche ausgeliefert wird. Dieses Problem kann vermieden werden, indem --batch=no beim Scannen einer festen Seitenanzahl verwendet wird.
Es gibt einen erweiterten Patchcode-Erkennungsalgorithmus, der in der RSC mit Version 1.2 oder höher verfügbar ist, der schneller und zuverlässiger als der Standard Bar-/Patchcode-Dekodierer ist. Dies wird derzeit nicht unterstützt.

OPTIONEN

fordert einen Scan in Vorschau-Qualität an. Wenn --preview auf »yes« gesetzt ist, wird die Bildkomprimierung deaktiviert und das Bild wird in einem SANE_FRAME_GRAY-Rahmen geliefert.
wählt den Scan-Modus (z.B. lineart, monochrome oder color).
wählt die Auflösung des gescannten Bildes. Jedes Scanner-Modell unterstützt eine Reihe von Standardauflösungen; nur diese Auflösungen können verwendet werden.
setzt den Kompressionsmodus des Scanners. Bestimmt die Art der Daten, die vom Scanner zurückgeliefert werden. Werte sind:

none - unkomprimierte Daten - ausgeliefert in einem SANE_FRAME_GRAY-Rahmen
g31d - CCITT G3 1 dimension (MH) - ausgeliefert in einem SANE_FRAME_G31D-Rahmen
g32d - CCITT G3 2 dimensions (MR, K=4) - ausgeliefert in einem SANE_FRAME_G32D-Rahmen
g42d - CCITT G4 (MMR) - ausgeliefert in einem SANE_FRAME_G42D-Rahmen
HINWEIS: Die Verwendung der Kompressionswerte g31d, g32d und g42d führt dazu, dass das Backend optionale Rahmenformate erstellt, die nicht von allen SANE-Oberflächen unterstützt werden könnten.

aktiviert/deaktiviert die automatische Bildkantenerkennung. Die RSC-Einheit wird automatisch den Bildbereich erkennen und die passende Fenstergeometrie setzen, wenn diese Option aktiviert ist.
gibt die Scanfenster-Geometrie an, indem die Papiergröße der einzuscannenden Dokumente angegeben wird.
Obere linke x-Position des Scanbereichs.
Obere linke y-Position des Scanbereichs.
Untere rechte x-Position des Scan-Bereichs.
Untere rechte y-Position des Scan-Bereichs.
wählt die Scan-Quelle (wie einen Dokumenteneinzug). Diese Option wird bereitgestellt, um mehrfache Bildscans mit xsane(1) zu erlauben, sie hat keinerlei anderen Zweck.
aktiviert/deaktiviert Stapelmodusscannen. Stapelmodus erlaubt das Scannen bei maximalem Durchsatz durch Puffern innerhalb der RSC-Einheit. Diese Option wird empfohlen, wenn mehrere Seiten-Scans durchgeführt werden, bis die Zuführung leer ist.
aktiviert Duplex- (doppelseitiges) Scannen. Der Scanner nimmt ein Bild von jeder Seite des Dokuments auf, während eines einzigen Durchlaufs durch den Scanner. Die Vorderseite wird ausgeliefert, gefolgt von der Rückseite. Die meisten Optionen, wie Komprimierung, betreffen sowohl die Vorder- als auch die Rückseite.
setzt die Zeitüberschreitung in Sekunden für den automatischen Dokumenteneinzug (ADF). Der Wert 0 legt die Hardware-Vorgabe fest, die vom Scanner-Modell abhängt.
setzt die Zeitüberschreitung in Sekunden für semi-automatische Dokumentenzuführungen. Der Wert 0 legt die Hardware-Vorgabe fest, die vom Scanner-Modell abhängt.
prüft vor dem Starten des Scans den ADF-Status mittels des Befehls »OBJECT POSITION«. Beachten Sie, dass diese Funktionalität die RSC-Firmwarestufe 1.5 oder höher benötigt und der Kippschalter 4 in der Ein-Position sein muss. Beachten Sie: Diese Option wurde nicht ausführlich getestet und könnte unerwünschte Ergebnisse liefern.
aktiviert das Steuerfeld des Scanners zur Auswahl von Bildverbesserungsparametern. Wenn die Option auf »no« gesetzt ist, werden die folgenden Optionen zur Steuerung der Bildverbesserung verwendet. Siehe die Benutzeranleitung der Bell+Howell-Scanner für die vollständigen Informationen über die ACE-Funktionalität.
legt die automatische Kontrastverbesserungs- (ACE-)Funktion fest.
legt die Empfindlichkeit der Kontrastverbesserung (ACE) fest.
steuert die Helligkeit des aufgenommenen Bildes. Für ACE-fähige Scanner wird dies ignoriert.
wählt die minimale Helligkeit, um einen Weißpunkt zu erhalten. Für ACE-fähige Scanner wird dies ignoriert.
steuert den Kontrast des aufgenommenen Bildes. Diese Option wird derzeit vom Scanner nicht verwendet (und wird dies wahrscheinlich auch nie).
tauscht schwarz und weiß, führt zu einem invertierten Bild.
Breite des Icons (Minibildes) in Pixel.
Länge des Icons (Minibildes) in Pixel.
legt den Barcodetyp fest, nach dem gesucht werden soll. Falls diese Option nicht oder mit einem Wert »none« angegeben ist, dann wird die Barcode-Dekodierfunktionalität komplett deaktiviert. Die gültigen Barcodetypen sind:

none
ean-8
ean-13
reserved-ean-add
code39
code2-5-interleaved
code2-5-3lines-matrix
code2-5-3lines-datalogic
code2-5-5lines-industrial
patchcode
codabar
codabar-with-start-stop
code39ascii
code128
code2-5-5lines-iata
Anzahl, wie oft der RSC den Dekodieralgorithmus durchführen soll. Um die Leistung zu erhöhen, geben Sie den kleinstmöglichen Wert an. Falls Probleme beim Erkennen des Barcodes auftreten, wird empfohlen, dass Sie diese Option auf ihren Maximalwert (7) erhöhen.
wählt die Orientierung der Barcodes, nach denen gesucht werden soll. Die gültigen Orientierungen sind:

horiz-vert
horizontal
vertical
vert-horiz
setzt die minimale Höhe des Barcodes in Millimetern (größere Werte erhöhen die Erkennungsgeschwindigkeit). Natürlich müssen die tatsächlichen Barcodes im Dokument von geeigneter Größe sein.
setzt die Zeitüberschreitung für die Barcode-Suche in Millisekunden. Wenn die Zeitüberschreitung abgelaufen ist, wird der Dekoder aufhören zu versuchen, nach Barcodes zu suchen.
legt eine Reihe von Bildabschnitten fest. Ein Abschnitt kann zum Erfassen eines Teilbildes oder eines kleineren Bereichs für die Suche nach Barcodes verwendet werden. Jeder Abschnitt wird in dem folgenden Format angegeben (Einheiten sind Millimeter):

<Breite>x<Höhe>+<obere-linke-x>+<obere-linke-y>[:Funktionscode]

Mehrere Abschnitte können angegeben werden, indem sie durch Kommata getrennt werden.

Zum Beispiel identifiziert 76.2x25.4+50.8+0:frontbar einen 3 Zoll breiten und 1 Zoll hohen Bereich, wo sich die obere linke Ecke oben an der Seite und zwei Zoll von der linken Seite des Papiers befindet. Dieser Abschnitt wird nur für die Barcode-Dekodierung auf der Titelseite verwendet.

Zum Beispiel identifiziert 50.8x25.4+25.4+0:frontbar:front:g42d einen 2 Zoll breiten und 1 Zoll hohen Bereich, wo sich die obere linke Ecke oben an der Seite und einen Zoll von der linken Seite des Papiers befindet. Dieser Abschnitt wird für die Barcode-Dekodierung auf der Titelseite sowie zur Erstellung eines mit g42d komprimierten Bildes verwendet.

Normalerweise werden Barcodes im gesamten Bild gesucht. Wenn Sie allerdings einen Abschnitt festlegen, erfolgt die gesamte Suche innerhalb des gekennzeichneten Abschnitts. Dies kann den Dekodierprozess deutlich beschleunigen.

Die folgenden Funktions-Codes sind verfügbar:


front - erstellt ein Bild für den Titelseitenabschnitt
back - erstellt ein Bild für den Rückseitenabschnitt
frontbar - führt die Barcode-Suche im Titelseitenabshnitt durch
backbar - führt die Barcode-Suche im Rückseitenabschnitt durch
frontpatch - führt die Patchcode-Suche im Titelseitenabschnitt durch
backpatch - führt die Patchcode-Suche im Rückseitenabschnitt durch
none - verwendet keine Bildkomprimierung
g31d - verwendet eindimensionale Gruppe 3-Bild-Komprimierung
g32d - verwendet zweidimensionale Gruppe 3-Bildkomprimierung
g42d - verwendet zweidimensionale Gruppe 4-Bildkomprimierung

Falls Sie keinen Funktions-Code für die Komprimierung angeben, wird die Einstellung für ganzseitige Komprimierung verwendet. Falls Sie mehrere Komprimierungs-Funktions-Codes angeben, wird der letzte verwendet.

legt die maximale Beziehung vom breitesten zum schmalsten Balken fest.
legt die minimale Anzahl an Balken in Bar-/Patch-Code fest.
legt die maximale Anzahl an Balken in Bar-/Patch-Code fest.
legt den beim Dekodieren verwendeten Bildkontrast fest. Verwenden Sie höhere Werte, wenn es mehr weiße Pixel im Code gibt.
steuert die Erkennung des Patch-Codes.

FEHLER

Dies ist ein neues Backend, detaillierte Fehlerberichte (auf Englisch) werden begrüßt und erwartet ;)

Falls Sie glauben, einen Fehler gefunden zu haben, versuchen Sie ihn zu reproduzieren, nachdem Sie die Umgebungsvariable SANE_DEBUG_BH auf 255 gesetzt haben und schicken Sie auf Englisch einen Bericht mit den detaillierten Bedingungen rund um den Fehler an sane-devel@alioth-lists.debian.net.

SIEHE AUCH

sane(7), sane-scsi(5), scanimage(1), scanadf(1)

AUTOR

Das Backend sane-bh wurde von Tom Martone, basierend auf dem Backend sane-ricoh(5) von Feico W. Dillema und dem Programm Bnhscan von Sean Reifschneider von tummy.com ltd. geschrieben. Mark Temple fügte rund 8000 Verbesserungen hinzu.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

10. Juli 2008