Modifizierter, beschleunigter  Rastergenerator fr Calamus SL
==============================================================

                      1994 by Delirium Arts, Alvar Freude
            Original  by DMC GmbH



Unter der Voraussetzung, da dieser Text unverndert und vollstndig 
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 Vierfarbstzen habe ich 
bisher noch keine Probleme gehabt.

Trotzdem ein wichtiger Hinweis:
    Ich, Alvar Freude, bernehme keine Haftung fr irgendwelche
    direkten oder indirekten Schden -- einschlielich aber nicht
    beschrnkt auf materielle oder finanzielle -- die durch die
    Benutzung dieses Calamus SL-Modules oder seine Untauglichkeit 
    fr 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 hher
      sowie mind. MC68881 Coprozessor
  
Also: dieses Calamus-Modul ist auf TT, Medusa T40, Falcon 030 mit 
      Coprozessor, diversen Beschleunigerboards mit Coprozessor usw. 
      lauffhig.
      Auf STs oder Falcons ohne Coprozessor lt es sich nicht 
      installieren.



So, nachdem das nun geklrt ist:

Installation:
=============

Einfach RASX_GEN.CXM in dem Modulordner von Calamus SL kopieren. Nun 
Calamus SL starten. Externe Modulliste aufrufen (ALT+X), den 
"Rastergenerator" lschen und "RASX_GEN.CXM" laden.
Dann die "Einstellungen Sichern".
Damit ldt 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 heit natrlich 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 "Gren-Faktor" neben der Rasterweite/Winkel eingestellt 
werden. Je grer ein Filter ist, desto lnger braucht natrlich auch 
seine Generierung.
Wird nicht im Farbbereich gearbeitet, so wird in der Regel ein 
45-Raster genommen. Fr solche Raster kann der Filter sehr klein 
sein, also geht auch die Generierung sehr schnell. Da macht es 
natrlich 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 beschftigt ist: die Maus verwandelt sich whrend 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 "nervs" 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 Kln 
vertrieben wird -- speichert einmal generierte Raster ab. Wird das 
gleiche Raster spter nochmal bentigt, so mu es nicht neu berechnet 
sondern nur von Festplatte geladen werden. Das ist natrlich 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  
natrlich 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 
folgendermaen 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 Rasterflchenrahmen aufziehen 
  (Farbe im CYMK-Modus, CYM nicht als Vollflche, sondern z.B. je 25%)

- Im Rastergenerator z.B. ein beim Sommerupdate 1993 mitgelieferten 
  Raster im Ordner RUEDIGER\ laden.

- Dokument Speichern.
                   
- Nun die Vergrerung auf 1000% stellen (ALT+J); mit ALT+Mausclick in 
  die Rasterflche reinzoomen. Nun wird das Raster generiert, bei oben 
  genanntem Raster braucht das rund 15 Sekunden (TT).

- Rastergenerator lschen 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 Rasterflche Zoomen. Das braucht 
  nun mehrere Minuten...

Hat man nur 2 Farben, wird nur das Raster fr 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 Vergrerung 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 (Farbauszge anwhlen).



Wieso ist der Rastergenerator schneller?
========================================

Dieser Rastergenerator ist von der Funktionsweise her vllig identisch 
mit dem Original von DMC. Ich habe den alten Disassembliert (nach 
Maschinensprache Rckbersetzt) 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 Fliekommaemulation durch echte Fliekomma- 
operationen. Danach habe ich die Kernroutinen auf Assemblerebene 
optimiert und um  MC68020er-Code ergntzt. Viel schneller geht es ohne 
nderung des Algorithmus wohl kaum noch.
                                                
Optimal beschleunigt wurde nur die Generierung der kreisfrmigen 
Rasterpunkte. Die Generierung der dreieckigen und quadratischen 
Rasterpunkte knnte 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 krzer ist.



Entwicklungsumgebung:
   TurboAss, mit Hilfe meiner Floatingpoint-"Library"
   Pure Profiler



Noch ein paar Hinweise zum Rastergenerator allgemein:
=====================================================

Wild durcheinandergewrfelt noch ein paar Tips ;-)

Ein weit verbreiteter Irrglaube ist, da eine hhere Scannauflsung 
als etwa die drei- bis fnffache Rasterweite in lpcm (also rund 
200-300 DPI bei einem 60er-Raster)nichts mehr an Bildschrfe bringt. 
Das stimmt fr Calamus NICHT! Bei Calamus werden, im Gegensatz zu 
vielen (nicht allen) PostScript-RIPs die Rasterpunkte bei der Ausgabe 
"angeschnitten". Erst wenn die Ausgabeauflsung berschritten wird, 
bringt der ganze Spa natrlich nichts mehr.
Diesen Effekt kann man sich anschauen, wenn man sehr nah an ein Phoo 
ranzoomed (ca. 10000-fache Vergrerung oder mehr). Die Rasterpunkte 
sind teilweise "Ausgefleddert", dies ist aber vollkommen korrekt.

Gute bis sehr gute Bilder erziehlt man mit rund 300 DPI Bildauflsung; 
will man eine perfekte Qualitt, kann man auch auf 400 DPI oder mehr 
hochgegen, insbesondere bei Kontrastreichen Bildern. Allerdings 
steigen dann natrlich die Datenmengen sowie die Belichtungszeiten 
stark an.

Nimmt man nur ein 30er oder 40er-Raster (z.B. fr Zeitungen), so kann 
man mit der Bildauflsung 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 knnen, kann man bei Calamus SL ja in 
Belichterauflsung (oder in der Hlfte, da kriegt man mehr auf den 
Schirm) kontrollieren, ob irgendwo Treppen sichtbar sind...


Mit Hilfe der "Punktverzerrung" kann man die Qualitt der Raster 
erhhen. Bewhrt hat sich dabei ein Wert von ca. 0.80 bzw. 1.25 
(Kehrwert). Man erhlt dann einen sog. "Kettenpunkt", d.h. der 
Punktschlu (da, wo sich benachbarte Punkte zum ersten mal berhren) 
ist auf zwei verschiedene Tonwerte aufgeteilt. (Am besten mal einen 
Verlauf anschauen, wenn die Rasterpunkte sehr gro sind).
So lt sich der typische Tonwertsprung im 50%-Bereich bei rund/ 
quadratischen Rastern eingrenzen bzw. auf zwei Bereiche verteilen. 
Dies tritt verstrkt dann auf, wenn der Tonwertzuwahs relativ hoch 
ist (feines Raster, nicht optimale Druckmaschine bzw. schlechtere 
Papierqualitt).
Viele Postscript-RIPs verwenden brigens einen durchgehend runden 
Rasterpunkt. Dort tritt der Punktschlu folglich erst bei knapp 80% 
ein; in den Tiefen ist dies natrlich viel unschner.
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 
erlutert. Allerdings wird dort in keinem Wort Calamus erwhnt, 
sondern nur gejubelt, da PostScript irgendwann den Anforderungen 
"professoineller Repro- und Drucktechnik gengen" wird. Calamus 
konnte das schon damals...



Umrechnung von Rastern:

Die Raterwerte knnen fr verschiedene Ausgabeauflsungen NICHT 
beibehalten werden. Es kann ansonsten zu unschnen Moirees kommen.
Zur Umrechnung werden die Rasterwinkel beibehalten, nur die 
Rasterweiten werden angepasst. Dies mu natrlich fr jede Farbe extra 
gemacht werden (die Rasterweiten sind meist unterschiedlich)!

Man geht nach folgender Formel vor:

  q_dpi:  Quell-DPI, Auflsung des Original-Ausgabegertes
  z_dpi:  Ziel-DPI, Auflsung des neuen Ausgabegertes
  alt_rw: alte Rasterweite
  neu_rw: neue Rasterweite


            z_dpi
  neu_rw = ------- * alt_rw
            q_dpi


Beispiel:

Rasterwert fr Linotype-Belichter, Auflsung 2540 DPI.
Umrechnung auf AGFA-Belichter, Auflsung 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 
bewhrt.

Die Rasterweite kann man in der Regel immer durch eine ganze Zahl 
teilen, also z.B. die Hlfte oder ein Zehntel nehmen, ohne da die 
Rasterqualitt schlecht wird; also z.B. 30.37 oder 6.07 bei 2400 DPI. 
Letzteres ist natrlich fr 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 nchsten Version ein kleines 
Beispiel-Dokument zu den Raster-Tips erstellen.



Zu guter letzt noch meine Anschrift, falls jemand Rckfragen oder 
Probleme haben sollte. Bei Bugreports bitte immer komplette 
Konfiguration angeben (Speicher, welcher Belichter bzw. Drucker, 
Auflsung, Rasterkonfiguration usw. usf.).


     Alvar Freude
     Hoftstatt 23
     74226 Nordheim
     
     MausNet:
     Alvar Freude @ HN
     Internet:
     Alvar_Freude@hn.maus.de


Bankverbindung (Spenden werden natrlich gerne angenommen... ;-) ):

     Kreissparkasse Heilbronn
     BLZ 620 500 00
     Konto 709 363



Viel Spa und Erfolg weiterhin mit Calamus SL!


  Delirium Arts wnscht einen Schnen Tag.



===

Calamus ist eingetragenes Warenzeichen der Firma DMC GmbH, Walluf

PostScript ist das, was dem Manuskript folgt: meistens Chaos.
