home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_01
/
RASX_GEN.LZH
/
RAST_GEN.TXT
< prev
next >
Wrap
Text File
|
1994-07-22
|
15KB
|
387 lines
Modifizierter, beschleunigter Rastergenerator für Calamus╛ SL
==============================================================
╜ 1994 by Delirium Arts, Alvar Freude
Original ╜ by DMC GmbH
Unter der Voraussetzung, da₧ dieser Text unverändert und vollständig
übernommen wird, darf der beschleunigte Rastergenerator von Calamus╛
SL-Anwendern kostenlos weitergegeben und genutzt werden. Der kosten-
pflichtige Vertrieb wie beispielsweise über PD-Versender o.ä. bedarf
meiner schriftlichen Genehmigung (Adresse siehe Ende des Textes)!
Ich habe darauf geachtet, da₧ das Ergebnis dem des Originals
entspricht. Bei verschiedenen Belichtungen von Vierfarbsätzen habe ich
bisher noch keine Probleme gehabt.
Trotzdem ein wichtiger Hinweis:
Ich, Alvar Freude, übernehme keine Haftung für irgendwelche
direkten oder indirekten Schäden -- einschlie₧lich aber nicht
beschränkt auf materielle oder finanzielle -- die durch die
Benutzung dieses Calamus╛ SL-Modules oder seine Untauglichkeit
für einen bestimmten Zweck entstehen.
Es handelt sich bei diesem Calamus╛-Modul um die disassemblierte und
modifizierte Variante des Originals von DMC. Die Verbreitung ist von
DMC gestattet worden.
Hardwarevorraussetzungen:
=========================
TOS-Rechner mit MC68020-Prozessor oder höher
sowie mind. MC68881 Coprozessor
Also: dieses Calamus╛-Modul ist auf TT, Medusa T40, Falcon 030 mit
Coprozessor, diversen Beschleunigerboards mit Coprozessor usw.
lauffähig.
Auf STs oder Falcons ohne Coprozessor lä₧t es sich nicht
installieren.
So, nachdem das nun geklärt ist:
Installation:
=============
Einfach RASX_GEN.CXM in dem Modulordner von Calamus╛ SL kopieren. Nun
Calamus╛ SL starten. Externe Modulliste aufrufen (ALT+X), den
"Rastergenerator" löschen und "RASX_GEN.CXM" laden.
Dann die "Einstellungen Sichern".
Damit lädt Calamus╛ SL bei jedem Start automatisch den beschleunigten
Rastergenerator nach.
Was macht der beschleunigte Rastergenerator?
============================================
Die Generierung der *Rasterzellen* von Calamus wird etwa um den Faktor
20-30 beschleunigt. Das hei₧t natürlich noch lange nicht, da₧ damit
auch das Belichten oder Ausdrucken eines Dokumentes 20-30 mal
schneller wird!
Wie diese Rasterzellen aussehen, wird im Rastergenerator eingestellt.
Diese werden bei der Ausgabe dann berechnet. Je nach Rasterwinkel sind
diese Raster (intern "Filter" genannt) unterschiedlich gro₧ -- dies
kann mit dem "Grö₧en-Faktor" neben der Rasterweite/Winkel eingestellt
werden. Je grö₧er ein Filter ist, desto länger braucht natürlich auch
seine Generierung.
Wird nicht im Farbbereich gearbeitet, so wird in der Regel ein
45°-Raster genommen. Für solche Raster kann der Filter sehr klein
sein, also geht auch die Generierung sehr schnell. Da macht es
natürlich auch kaum einen Unterschied, ob nun 5 Sekunden oder 0.2
Sekunden gebraucht werden.
Bei speziellen Rastern oder insbesondere im Farbbereich sieht das
ganze allerdings ganz anders aus. Dort werden die Filter schnell gro₧,
will man exakte Winkel erreichen. Bisher konnte es da passieren, da₧
Calamus╛ bei der Ausgabe eines Vierfarbsatzes auch mal mehr als eine
Stunde an der Berechnung der Raster arbeitete. Dies wird jetzt auf
wenige Minuten reduziert.
Man kann übrigends beobachten, wann Calamus╛ mit dem Generieren der
Raster beschäftigt ist: die Maus verwandelt sich während des ersten
Teiles in einen animierten Rechenschieber, danach in die nette,
dampfende Kaffetasse. Übrigens: Beim beschleunigten Rastergenerator
habe ich die Animationsgeschwindigkeit der Maus herabgesetzt, zum
einen um etwas Rechenzeit zu sparen, zum anderen damit die Maus nicht
allzu "nervös" herumzappen zu lassen. Die Geschwindigkeit der
Mausanimation ist also nicht unbedingt beschleunigt worden...
Weiterhin werden die Raster von Calamus╛ nach dem Generieren ins
Dokument eingebunden und auch mit abgespeichert. Ein einmal
generiertes Raster mu₧ in der Regel bei gleichem Dokument (!) also
nicht mehr neu generiert werden!
Der Cachende Rastergenerator -- der in Deutschland von DIVIS in Köln
vertrieben wird -- speichert einmal generierte Raster ab. Wird das
gleiche Raster später nochmal benötigt, so mu₧ es nicht neu berechnet
sondern nur von Festplatte geladen werden. Das ist natürlich trotzdem
schneller als die Neuegenerierung mit dem modifizierten Raster-
generator von mir. Mu₧ der Cachende Rastergenerator die Raster
allerdings neu generieren, weil sie nicht gespeichert sind, so ist er
natürlich genauso langsam wie der alte, bei Calamus╛ SL mitgelieferte.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Also nochmal: *
* ============= *
* Dieser Rastergenerator bringt nur einen merklichen Geschwindigkeits- *
* gewinn bei komplexen Rastern, insbesondere im Farbbereich. Aber auch *
* bei groben Effektrastern (2er-Raster oder so) wirkt sich der Ge- *
* schwindigkeitsvorteil aus. Sind die Rasterzellen generiert, bleibt *
* alles beim alten. *
* Der Cachende Rastergenerator ist schneller, wenn das Betreffende *
* Raster bereits generiert und abgespeichert wurde. *
* Die direkte Bildausgabe wird mit diesem Modul NICHT beschleunigt, *
* nur die GENERIERUNG der Rasterzellen. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Wenn jemand feststellt, da₧ der beschleunigte Rastergenerator nicht
schneller sein solle, dann liegt das daran, da₧ er entweder nur
einfache Raster verwendet, da₧ die Raster bereits im Dokument
gespeichert waren oder da₧ beim Testen irgendetwas falsch gemacht
wurde. Normalerweise ist der beschleunigte Rastergenerator rund 30-50
mal schneller als der originale (z.B. 8 Sekunden statt 6 Minuten).
Will jemand den Geschwindigkeitsvorteil genau testen, kann er
folgenderma₧en vorgehen:
- Beschleunigten Rastergenerator laden.
- Grafikkarte auf 16 (oder 2) Farben stellen, denn nur da kann man
die Raster auf dem Bildschirm auch sehen.
- Unter "Diverses" "Rasterung auf Bildschirm" anschalten.
- Ein neues Dokument anlegen und einen Rasterflächenrahmen aufziehen
(Farbe im CYMK-Modus, CYM nicht als Vollfläche, sondern z.B. je 25%)
- Im Rastergenerator z.B. ein beim Sommerupdate 1993 mitgelieferten
Raster im Ordner RUEDIGER\ laden.
- Dokument Speichern.
- Nun die Vergrö₧erung auf 1000% stellen (ALT+J); mit ALT+Mausclick in
die Rasterfläche reinzoomen. Nun wird das Raster generiert, bei oben
genanntem Raster braucht das rund 15 Sekunden (TT).
- Rastergenerator löschen und den Originalen ersetzen.
- Dokument Verwerfen; die alte Version des Dokumentes wird reingeladen,
es sollten keine bereits generierten Raster mitgespeichert worden
sein.
- Nun wieder mit ALT+Mausclick in die Rasterfläche Zoomen. Das braucht
nun mehrere Minuten...
Hat man nur 2 Farben, wird nur das Raster für den Schwarz-Film
generiert. Da dies meist nicht sehr komplex ist, geht das auch so
schnell. Also stellt man z.B. ein 28er Raster, Winkel 45° ein. Dann
stellt man 20000-Fache Vergrö₧erung ein (ALT+J) und zoomed mit
ALT+Mausclick nah heran.
Kann jemand seine Grafikkarte nicht auf 16 oder 2 Farben stellen, so
kann er es auch mit einer Dummy-Belichtung probieren: Dokument wie
oben anlegen, kleinen Teiledruckrahmen aufziehen (1x1 cm), diesen
Teiledruckrahmen dummy-Belichten bei 1270 DPI (Farbauszüge anwählen).
Wieso ist der Rastergenerator schneller?
========================================
Dieser Rastergenerator ist von der Funktionsweise her völlig identisch
mit dem Original von DMC. Ich habe den alten Disassembliert (nach
Maschinensprache Rückübersetzt) und modifiziert. Da das Original in C
geschrieben ist und weder den Coprozessor noch die erweiterten Befehle
vom MC68030 (oder auch schon MC68020) ausnutzt, war der erste Schritt
das Ersetzen der Flie₧kommaemulation durch echte Flie₧komma-
operationen. Danach habe ich die Kernroutinen auf Assemblerebene
optimiert und um MC68020er-Code ergäntzt. Viel schneller geht es ohne
Änderung des Algorithmus wohl kaum noch.
Optimal beschleunigt wurde nur die Generierung der kreisförmigen
Rasterpunkte. Die Generierung der dreieckigen und quadratischen
Rasterpunkte könnte im ersten Teil (Rechenschieber) noch rund 2-5 mal
schneller gemacht werden, aber da das sowieso kaum jemand braucht,
habe ich mir das erspart. Es geht ja auch so schon relativ schnell.
Die Assembleroptimierungen haben übrigens auch zur Folge, da₧ der
Programmcode nun etwas kürzer ist.
Entwicklungsumgebung:
TurboAss, mit Hilfe meiner Floatingpoint-"Library"
Pure Profiler
Noch ein paar Hinweise zum Rastergenerator allgemein:
=====================================================
Wild durcheinandergewürfelt noch ein paar Tips ;-)
Ein weit verbreiteter Irrglaube ist, da₧ eine höhere Scannauflösung
als etwa die drei- bis fünffache Rasterweite in lpcm (also rund
200-300 DPI bei einem 60er-Raster)nichts mehr an Bildschärfe bringt.
Das stimmt für Calamus╛ NICHT! Bei Calamus╛ werden, im Gegensatz zu
vielen (nicht allen) PostScript-RIPs die Rasterpunkte bei der Ausgabe
"angeschnitten". Erst wenn die Ausgabeauflösung überschritten wird,
bringt der ganze Spa₧ natürlich nichts mehr.
Diesen Effekt kann man sich anschauen, wenn man sehr nah an ein Phoo
ranzoomed (ca. 10000-fache Vergrö₧erung oder mehr). Die Rasterpunkte
sind teilweise "Ausgefleddert", dies ist aber vollkommen korrekt.
Gute bis sehr gute Bilder erziehlt man mit rund 300 DPI Bildauflösung;
will man eine perfekte Qualität, kann man auch auf 400 DPI oder mehr
hochgegen, insbesondere bei Kontrastreichen Bildern. Allerdings
steigen dann natürlich die Datenmengen sowie die Belichtungszeiten
stark an.
Nimmt man nur ein 30er oder 40er-Raster (z.B. für Zeitungen), so kann
man mit der Bildauflösung etwas herunter gehen. Ist das Bild aber sehr
Kontrastreich (z.B. schwarzer Strich auf hellem Grund oder scharfe
Kanten) kann man auch bei niedriger Rasterweite die Pixel sehen. Aber
um das genau beurteilen zu können, kann man bei Calamus╛ SL ja in
Belichterauflösung (oder in der Hälfte, da kriegt man mehr auf den
Schirm) kontrollieren, ob irgendwo Treppen sichtbar sind...
Mit Hilfe der "Punktverzerrung" kann man die Qualität der Raster
erhöhen. Bewährt hat sich dabei ein Wert von ca. 0.80 bzw. 1.25
(Kehrwert). Man erhält dann einen sog. "Kettenpunkt", d.h. der
Punktschlu₧ (da, wo sich benachbarte Punkte zum ersten mal berühren)
ist auf zwei verschiedene Tonwerte aufgeteilt. (Am besten mal einen
Verlauf anschauen, wenn die Rasterpunkte sehr gro₧ sind).
So lä₧t sich der typische Tonwertsprung im 50%-Bereich bei rund/
quadratischen Rastern eingrenzen bzw. auf zwei Bereiche verteilen.
Dies tritt verstärkt dann auf, wenn der Tonwertzuwahs relativ hoch
ist (feines Raster, nicht optimale Druckmaschine bzw. schlechtere
Papierqualität).
Viele Postscript-RIPs verwenden übrigens einen durchgehend runden
Rasterpunkt. Dort tritt der Punktschlu₧ folglich erst bei knapp 80%
ein; in den Tiefen ist dies natürlich viel unschöner.
PostScript Level 2 beherrscht allerdings schon die klassische
Rasterpunktform (Kreis->Quadrat), aber scheinbar keine Punktverzerrung!
In PAGE 12/91 Seite 164ff. wird der Vorteil der Punktverzerrung genauer
erläutert. Allerdings wird dort in keinem Wort Calamus╛ erwähnt,
sondern nur gejubelt, da₧ PostScript irgendwann den Anforderungen
"professoineller Repro- und Drucktechnik genügen" wird. Calamus╛
konnte das schon damals...
Umrechnung von Rastern:
Die Raterwerte können für verschiedene Ausgabeauflösungen NICHT
beibehalten werden. Es kann ansonsten zu unschönen Moirees kommen.
Zur Umrechnung werden die Rasterwinkel beibehalten, nur die
Rasterweiten werden angepasst. Dies mu₧ natürlich für jede Farbe extra
gemacht werden (die Rasterweiten sind meist unterschiedlich)!
Man geht nach folgender Formel vor:
q_dpi: Quell-DPI, Auflösung des Original-Ausgabegerätes
z_dpi: Ziel-DPI, Auflösung des neuen Ausgabegerätes
alt_rw: alte Rasterweite
neu_rw: neue Rasterweite
z_dpi
neu_rw = ------- * alt_rw
q_dpi
Beispiel:
Rasterwert für Linotype-Belichter, Auflösung 2540 DPI.
Umrechnung auf AGFA-Belichter, Auflösung 2400 DPI.
q_dpi=2540
z_dpi=2400
alt_rw=58.9 (Winkel: 45.0°)
2400
neu_rw = ------ * 58.9 = 0.94488 * 58.9
2540
neu_rw = 55.65 lpcm
=====
Oder umgekehrt:
q_dpi=2400
z_dpi=2540
alt_rw=60.74 (Winkel: 45.0°)
2540
neu_rw = ------ * 60.74 = 1.05833 * 60.74
2400
neu_rw = 64.28 lpcm
=====
Die Werte 60.74 lpcm bzw. 55.65 lpcm (2400 DPI) und 58.9 lpcm bzw.
64.28 lpcm (2540 DPI) haben sich in der Praxis bei s/w-Belichtungen
bewährt.
Die Rasterweite kann man in der Regel immer durch eine ganze Zahl
teilen, also z.B. die Hälfte oder ein Zehntel nehmen, ohne da₧ die
Rasterqualität schlecht wird; also z.B. 30.37 oder 6.07 bei 2400 DPI.
Letzteres ist natürlich für Effekte gedacht.
Calamus╛ dreht bei gedrehter Ausgabe übrigens die Rasterwinkel NICHT
mit. Stellt man nun bei einer A4-Seite die Punktverzerrung auf 0.800,
so kommen die Kettenpunkte von links oben und gehen nach rechts unten.
Belichtet ist es aber oft anders herum: die Seite wurde beim Belichten
gedreht (spart Film), die Raster wurden aer nicht mitgedreht. Daher
sollte man dann den KEHRWERT der Punktverzerrung nehmen (bei 45.0°),
dann stimmt alles wieder (hier also 1.250), damit die "Richtung"
stimmt.
Vielleicht werde ich in einer nächsten Version ein kleines
Beispiel-Dokument zu den Raster-Tips erstellen.
Zu guter letzt noch meine Anschrift, falls jemand Rückfragen oder
Probleme haben sollte. Bei Bugreports bitte immer komplette
Konfiguration angeben (Speicher, welcher Belichter bzw. Drucker,
Auflösung, Rasterkonfiguration usw. usf.).
Alvar Freude
Hoftstatt 23
74226 Nordheim
MausNet:
Alvar Freude @ HN
Internet:
Alvar_Freude@hn.maus.de
Bankverbindung (Spenden werden natürlich gerne angenommen... ;-) ):
Kreissparkasse Heilbronn
BLZ 620 500 00
Konto 709 363
Viel Spa₧ und Erfolg weiterhin mit Calamus╛ SL!
Delirium Arts wünscht einen Schönen Tag.
===
Calamus╛ ist eingetragenes Warenzeichen der Firma DMC GmbH, Walluf
PostScript ist das, was dem Manuskript folgt: meistens Chaos.