home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_07 / RASX_GEN.LZH / RAST_GEN.TXT < prev    next >
Text File  |  1994-07-22  |  15KB  |  387 lines

  1. Modifizierter, beschleunigter  Rastergenerator für Calamus╛ SL
  2. ==============================================================
  3.  
  4.                      ╜ 1994 by Delirium Arts, Alvar Freude
  5.             Original ╜ by DMC GmbH
  6.  
  7.  
  8.  
  9. Unter der Voraussetzung, da₧ dieser Text unverändert und vollständig 
  10. übernommen wird, darf der beschleunigte Rastergenerator von Calamus╛ 
  11. SL-Anwendern kostenlos weitergegeben und genutzt werden. Der kosten- 
  12. pflichtige Vertrieb wie beispielsweise über PD-Versender o.ä. bedarf 
  13. meiner schriftlichen Genehmigung (Adresse siehe Ende des Textes)!
  14.  
  15.  
  16. Ich habe darauf geachtet, da₧ das Ergebnis dem des Originals 
  17. entspricht. Bei verschiedenen Belichtungen von Vierfarbsätzen habe ich 
  18. bisher noch keine Probleme gehabt.
  19.  
  20. Trotzdem ein wichtiger Hinweis:
  21.     Ich, Alvar Freude, übernehme keine Haftung für irgendwelche
  22.     direkten oder indirekten Schäden -- einschlie₧lich aber nicht
  23.     beschränkt auf materielle oder finanzielle -- die durch die
  24.     Benutzung dieses Calamus╛ SL-Modules oder seine Untauglichkeit 
  25.     für einen bestimmten Zweck entstehen.
  26.  
  27.  
  28.  
  29. Es handelt sich bei diesem Calamus╛-Modul um die disassemblierte und 
  30. modifizierte Variante des Originals von DMC. Die Verbreitung ist von 
  31. DMC gestattet worden.
  32.  
  33.  
  34.  
  35. Hardwarevorraussetzungen:
  36. =========================
  37.  
  38.   TOS-Rechner mit MC68020-Prozessor oder höher
  39.       sowie mind. MC68881 Coprozessor
  40.   
  41. Also: dieses Calamus╛-Modul ist auf TT, Medusa T40, Falcon 030 mit 
  42.       Coprozessor, diversen Beschleunigerboards mit Coprozessor usw. 
  43.       lauffähig.
  44.       Auf STs oder Falcons ohne Coprozessor lä₧t es sich nicht 
  45.       installieren.
  46.  
  47.  
  48.  
  49. So, nachdem das nun geklärt ist:
  50.  
  51. Installation:
  52. =============
  53.  
  54. Einfach RASX_GEN.CXM in dem Modulordner von Calamus╛ SL kopieren. Nun 
  55. Calamus╛ SL starten. Externe Modulliste aufrufen (ALT+X), den 
  56. "Rastergenerator" löschen und "RASX_GEN.CXM" laden.
  57. Dann die "Einstellungen Sichern".
  58. Damit lädt Calamus╛ SL bei jedem Start automatisch den beschleunigten 
  59. Rastergenerator nach.
  60.  
  61.  
  62. Was macht der beschleunigte Rastergenerator?
  63. ============================================
  64.  
  65. Die Generierung der *Rasterzellen* von Calamus wird etwa um den Faktor 
  66. 20-30 beschleunigt. Das hei₧t natürlich noch lange nicht, da₧ damit 
  67. auch das Belichten oder Ausdrucken eines Dokumentes 20-30 mal 
  68. schneller wird!
  69.  
  70. Wie diese Rasterzellen aussehen, wird im Rastergenerator eingestellt. 
  71. Diese werden bei der Ausgabe dann berechnet. Je nach Rasterwinkel sind 
  72. diese Raster (intern "Filter" genannt) unterschiedlich gro₧ -- dies 
  73. kann mit dem "Grö₧en-Faktor" neben der Rasterweite/Winkel eingestellt 
  74. werden. Je grö₧er ein Filter ist, desto länger braucht natürlich auch 
  75. seine Generierung.
  76. Wird nicht im Farbbereich gearbeitet, so wird in der Regel ein 
  77. 45°-Raster genommen. Für solche Raster kann der Filter sehr klein 
  78. sein, also geht auch die Generierung sehr schnell. Da macht es 
  79. natürlich auch kaum einen Unterschied, ob nun 5 Sekunden oder 0.2 
  80. Sekunden gebraucht werden.
  81.  
  82. Bei speziellen Rastern oder insbesondere im Farbbereich sieht das 
  83. ganze allerdings ganz anders aus. Dort werden die Filter schnell gro₧, 
  84. will man exakte Winkel erreichen. Bisher konnte es da passieren, da₧ 
  85. Calamus╛ bei der Ausgabe eines Vierfarbsatzes auch mal mehr als eine 
  86. Stunde an der Berechnung der Raster arbeitete. Dies wird jetzt auf 
  87. wenige Minuten reduziert.
  88.  
  89. Man kann übrigends beobachten, wann Calamus╛ mit dem Generieren der 
  90. Raster beschäftigt ist: die Maus verwandelt sich während des ersten 
  91. Teiles in einen animierten Rechenschieber, danach in die nette, 
  92. dampfende Kaffetasse. Übrigens: Beim beschleunigten Rastergenerator 
  93. habe ich die Animationsgeschwindigkeit der Maus herabgesetzt, zum 
  94. einen um etwas Rechenzeit zu sparen, zum anderen damit die Maus nicht 
  95. allzu "nervös" herumzappen zu lassen. Die Geschwindigkeit der 
  96. Mausanimation ist also nicht unbedingt beschleunigt worden...
  97.  
  98.  
  99. Weiterhin werden die Raster von Calamus╛ nach dem Generieren ins 
  100. Dokument eingebunden und auch mit abgespeichert. Ein einmal 
  101. generiertes Raster mu₧ in der Regel bei gleichem Dokument (!) also 
  102. nicht mehr neu generiert werden!
  103.  
  104.  
  105. Der Cachende Rastergenerator -- der in Deutschland von DIVIS in Köln 
  106. vertrieben wird -- speichert einmal generierte Raster ab. Wird das 
  107. gleiche Raster später nochmal benötigt, so mu₧ es nicht neu berechnet 
  108. sondern nur von Festplatte geladen werden. Das ist natürlich trotzdem 
  109. schneller als die Neuegenerierung mit dem modifizierten Raster- 
  110. generator von mir. Mu₧ der Cachende Rastergenerator die Raster 
  111. allerdings neu generieren, weil sie nicht gespeichert sind, so ist er  
  112. natürlich genauso langsam wie der alte, bei Calamus╛ SL mitgelieferte.
  113.  
  114.  
  115.  
  116. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  117. *                                                                         *
  118. *  Also nochmal:                                                          *
  119. *  =============                                                          *
  120. *  Dieser Rastergenerator bringt nur einen merklichen Geschwindigkeits-   * 
  121. *  gewinn bei komplexen Rastern, insbesondere im Farbbereich. Aber auch   *
  122. *  bei groben Effektrastern (2er-Raster oder so) wirkt sich der Ge-       *
  123. *  schwindigkeitsvorteil aus. Sind die Rasterzellen generiert, bleibt     *
  124. *  alles beim alten.                                                      *
  125. *  Der Cachende Rastergenerator ist schneller, wenn das Betreffende       *
  126. *  Raster bereits generiert und abgespeichert wurde.                      *
  127. *  Die direkte Bildausgabe wird mit diesem Modul NICHT beschleunigt,      *
  128. *  nur die GENERIERUNG der Rasterzellen.                                  *
  129. *                                                                         *
  130. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  131.  
  132.  
  133. Wenn jemand feststellt, da₧ der beschleunigte Rastergenerator nicht 
  134. schneller sein solle, dann liegt das daran, da₧ er entweder nur 
  135. einfache Raster verwendet, da₧ die Raster bereits im Dokument 
  136. gespeichert waren oder da₧ beim Testen irgendetwas falsch gemacht  
  137. wurde. Normalerweise ist der beschleunigte Rastergenerator rund 30-50 
  138. mal schneller als der originale (z.B. 8 Sekunden statt 6 Minuten).
  139.  
  140.  
  141. Will jemand den Geschwindigkeitsvorteil genau testen, kann er 
  142. folgenderma₧en vorgehen:
  143.  
  144. - Beschleunigten Rastergenerator laden.
  145.  
  146. - Grafikkarte auf 16 (oder 2) Farben stellen, denn nur da kann man 
  147.   die Raster auf dem Bildschirm auch sehen.
  148.  
  149. - Unter "Diverses" "Rasterung auf Bildschirm" anschalten.
  150.                              
  151. - Ein neues Dokument anlegen und einen Rasterflächenrahmen aufziehen 
  152.   (Farbe im CYMK-Modus, CYM nicht als Vollfläche, sondern z.B. je 25%)
  153.  
  154. - Im Rastergenerator z.B. ein beim Sommerupdate 1993 mitgelieferten 
  155.   Raster im Ordner RUEDIGER\ laden.
  156.  
  157. - Dokument Speichern.
  158.                    
  159. - Nun die Vergrö₧erung auf 1000% stellen (ALT+J); mit ALT+Mausclick in 
  160.   die Rasterfläche reinzoomen. Nun wird das Raster generiert, bei oben 
  161.   genanntem Raster braucht das rund 15 Sekunden (TT).
  162.  
  163. - Rastergenerator löschen und den Originalen ersetzen.
  164.  
  165. - Dokument Verwerfen; die alte Version des Dokumentes wird reingeladen, 
  166.   es sollten keine bereits generierten Raster mitgespeichert worden 
  167.   sein.
  168.  
  169. - Nun wieder mit ALT+Mausclick in die Rasterfläche Zoomen. Das braucht 
  170.   nun mehrere Minuten...
  171.  
  172. Hat man nur 2 Farben, wird nur das Raster für den Schwarz-Film 
  173. generiert. Da dies meist nicht sehr komplex ist, geht das auch so 
  174. schnell. Also stellt man z.B. ein 28er Raster, Winkel 45° ein. Dann 
  175. stellt man 20000-Fache Vergrö₧erung ein (ALT+J) und zoomed mit 
  176. ALT+Mausclick nah heran.
  177.  
  178. Kann jemand seine Grafikkarte nicht auf 16 oder 2 Farben stellen, so 
  179. kann er es auch mit einer Dummy-Belichtung probieren: Dokument wie 
  180. oben anlegen, kleinen Teiledruckrahmen aufziehen (1x1 cm), diesen 
  181. Teiledruckrahmen dummy-Belichten bei 1270 DPI (Farbauszüge anwählen).
  182.  
  183.  
  184.  
  185. Wieso ist der Rastergenerator schneller?
  186. ========================================
  187.  
  188. Dieser Rastergenerator ist von der Funktionsweise her völlig identisch 
  189. mit dem Original von DMC. Ich habe den alten Disassembliert (nach 
  190. Maschinensprache Rückübersetzt) und modifiziert. Da das Original in C 
  191. geschrieben ist und weder den Coprozessor noch die erweiterten Befehle 
  192. vom MC68030 (oder auch schon MC68020) ausnutzt, war der erste Schritt 
  193. das Ersetzen der Flie₧kommaemulation durch echte Flie₧komma- 
  194. operationen. Danach habe ich die Kernroutinen auf Assemblerebene 
  195. optimiert und um  MC68020er-Code ergäntzt. Viel schneller geht es ohne 
  196. Änderung des Algorithmus wohl kaum noch.
  197.                                                 
  198. Optimal beschleunigt wurde nur die Generierung der kreisförmigen 
  199. Rasterpunkte. Die Generierung der dreieckigen und quadratischen 
  200. Rasterpunkte könnte im ersten Teil (Rechenschieber) noch rund 2-5 mal 
  201. schneller gemacht werden, aber da das sowieso kaum jemand braucht, 
  202. habe ich mir das erspart. Es geht ja auch so schon relativ schnell.
  203.  
  204.  
  205. Die Assembleroptimierungen haben übrigens auch zur Folge, da₧ der 
  206. Programmcode nun etwas kürzer ist.
  207.  
  208.  
  209.  
  210. Entwicklungsumgebung:
  211.    TurboAss, mit Hilfe meiner Floatingpoint-"Library"
  212.    Pure Profiler
  213.  
  214.  
  215.  
  216. Noch ein paar Hinweise zum Rastergenerator allgemein:
  217. =====================================================
  218.  
  219. Wild durcheinandergewürfelt noch ein paar Tips ;-)
  220.  
  221. Ein weit verbreiteter Irrglaube ist, da₧ eine höhere Scannauflösung 
  222. als etwa die drei- bis fünffache Rasterweite in lpcm (also rund 
  223. 200-300 DPI bei einem 60er-Raster)nichts mehr an Bildschärfe bringt. 
  224. Das stimmt für Calamus╛ NICHT! Bei Calamus╛ werden, im Gegensatz zu 
  225. vielen (nicht allen) PostScript-RIPs die Rasterpunkte bei der Ausgabe 
  226. "angeschnitten". Erst wenn die Ausgabeauflösung überschritten wird, 
  227. bringt der ganze Spa₧ natürlich nichts mehr.
  228. Diesen Effekt kann man sich anschauen, wenn man sehr nah an ein Phoo 
  229. ranzoomed (ca. 10000-fache Vergrö₧erung oder mehr). Die Rasterpunkte 
  230. sind teilweise "Ausgefleddert", dies ist aber vollkommen korrekt.
  231.  
  232. Gute bis sehr gute Bilder erziehlt man mit rund 300 DPI Bildauflösung; 
  233. will man eine perfekte Qualität, kann man auch auf 400 DPI oder mehr 
  234. hochgegen, insbesondere bei Kontrastreichen Bildern. Allerdings 
  235. steigen dann natürlich die Datenmengen sowie die Belichtungszeiten 
  236. stark an.
  237.  
  238. Nimmt man nur ein 30er oder 40er-Raster (z.B. für Zeitungen), so kann 
  239. man mit der Bildauflösung etwas herunter gehen. Ist das Bild aber sehr 
  240. Kontrastreich (z.B. schwarzer Strich auf hellem Grund oder scharfe 
  241. Kanten) kann man auch bei niedriger Rasterweite die Pixel sehen. Aber 
  242. um das genau beurteilen zu können, kann man bei Calamus╛ SL ja in 
  243. Belichterauflösung (oder in der Hälfte, da kriegt man mehr auf den 
  244. Schirm) kontrollieren, ob irgendwo Treppen sichtbar sind...
  245.  
  246.  
  247. Mit Hilfe der "Punktverzerrung" kann man die Qualität der Raster 
  248. erhöhen. Bewährt hat sich dabei ein Wert von ca. 0.80 bzw. 1.25 
  249. (Kehrwert). Man erhält dann einen sog. "Kettenpunkt", d.h. der 
  250. Punktschlu₧ (da, wo sich benachbarte Punkte zum ersten mal berühren) 
  251. ist auf zwei verschiedene Tonwerte aufgeteilt. (Am besten mal einen 
  252. Verlauf anschauen, wenn die Rasterpunkte sehr gro₧ sind).
  253. So lä₧t sich der typische Tonwertsprung im 50%-Bereich bei rund/ 
  254. quadratischen Rastern eingrenzen bzw. auf zwei Bereiche verteilen. 
  255. Dies tritt verstärkt dann auf, wenn der Tonwertzuwahs relativ hoch 
  256. ist (feines Raster, nicht optimale Druckmaschine bzw. schlechtere 
  257. Papierqualität).
  258. Viele Postscript-RIPs verwenden übrigens einen durchgehend runden 
  259. Rasterpunkt. Dort tritt der Punktschlu₧ folglich erst bei knapp 80% 
  260. ein; in den Tiefen ist dies natürlich viel unschöner.
  261. PostScript Level 2 beherrscht allerdings schon die klassische 
  262. Rasterpunktform (Kreis->Quadrat), aber scheinbar keine Punktverzerrung!
  263.  
  264. In PAGE 12/91 Seite 164ff. wird der Vorteil der Punktverzerrung genauer 
  265. erläutert. Allerdings wird dort in keinem Wort Calamus╛ erwähnt, 
  266. sondern nur gejubelt, da₧ PostScript irgendwann den Anforderungen 
  267. "professoineller Repro- und Drucktechnik genügen" wird. Calamus╛ 
  268. konnte das schon damals...
  269.  
  270.  
  271.  
  272. Umrechnung von Rastern:
  273.  
  274. Die Raterwerte können für verschiedene Ausgabeauflösungen NICHT 
  275. beibehalten werden. Es kann ansonsten zu unschönen Moirees kommen.
  276. Zur Umrechnung werden die Rasterwinkel beibehalten, nur die 
  277. Rasterweiten werden angepasst. Dies mu₧ natürlich für jede Farbe extra 
  278. gemacht werden (die Rasterweiten sind meist unterschiedlich)!
  279.  
  280. Man geht nach folgender Formel vor:
  281.  
  282.   q_dpi:  Quell-DPI, Auflösung des Original-Ausgabegerätes
  283.   z_dpi:  Ziel-DPI, Auflösung des neuen Ausgabegerätes
  284.   alt_rw: alte Rasterweite
  285.   neu_rw: neue Rasterweite
  286.  
  287.  
  288.             z_dpi
  289.   neu_rw = ------- * alt_rw
  290.             q_dpi
  291.  
  292.  
  293. Beispiel:
  294.  
  295. Rasterwert für Linotype-Belichter, Auflösung 2540 DPI.
  296. Umrechnung auf AGFA-Belichter, Auflösung 2400 DPI.
  297.  
  298.   q_dpi=2540
  299.   z_dpi=2400
  300.   alt_rw=58.9     (Winkel: 45.0°)
  301.  
  302.             2400
  303.   neu_rw = ------ * 58.9  =  0.94488 * 58.9
  304.             2540
  305.  
  306.  
  307.   neu_rw = 55.65 lpcm
  308.            =====
  309.  
  310. Oder umgekehrt:
  311.  
  312.   q_dpi=2400
  313.   z_dpi=2540
  314.   alt_rw=60.74    (Winkel: 45.0°)
  315.  
  316.  
  317.             2540
  318.   neu_rw = ------ * 60.74  =  1.05833 * 60.74
  319.             2400
  320.  
  321.  
  322.   neu_rw = 64.28 lpcm
  323.            =====
  324.  
  325.  
  326. Die Werte 60.74 lpcm bzw. 55.65 lpcm (2400 DPI) und 58.9 lpcm bzw. 
  327. 64.28 lpcm (2540 DPI) haben sich in der Praxis bei s/w-Belichtungen 
  328. bewährt.
  329.  
  330. Die Rasterweite kann man in der Regel immer durch eine ganze Zahl 
  331. teilen, also z.B. die Hälfte oder ein Zehntel nehmen, ohne da₧ die 
  332. Rasterqualität schlecht wird; also z.B. 30.37 oder 6.07 bei 2400 DPI. 
  333. Letzteres ist natürlich für Effekte gedacht.
  334.  
  335.  
  336. Calamus╛ dreht bei gedrehter Ausgabe übrigens die Rasterwinkel NICHT 
  337. mit. Stellt man nun bei einer A4-Seite die Punktverzerrung auf 0.800, 
  338. so kommen die Kettenpunkte von links oben und gehen nach rechts unten. 
  339. Belichtet ist es aber oft anders herum: die Seite wurde beim Belichten 
  340. gedreht (spart Film), die Raster wurden aer nicht mitgedreht. Daher 
  341. sollte man dann den KEHRWERT der Punktverzerrung nehmen (bei 45.0°), 
  342. dann stimmt alles wieder (hier also 1.250), damit die "Richtung" 
  343. stimmt.
  344.  
  345.  
  346. Vielleicht werde ich in einer nächsten Version ein kleines 
  347. Beispiel-Dokument zu den Raster-Tips erstellen.
  348.  
  349.  
  350.  
  351. Zu guter letzt noch meine Anschrift, falls jemand Rückfragen oder 
  352. Probleme haben sollte. Bei Bugreports bitte immer komplette 
  353. Konfiguration angeben (Speicher, welcher Belichter bzw. Drucker, 
  354. Auflösung, Rasterkonfiguration usw. usf.).
  355.  
  356.  
  357.      Alvar Freude
  358.      Hoftstatt 23
  359.      74226 Nordheim
  360.      
  361.      MausNet:
  362.      Alvar Freude @ HN
  363.      Internet:
  364.      Alvar_Freude@hn.maus.de
  365.  
  366.  
  367. Bankverbindung (Spenden werden natürlich gerne angenommen... ;-) ):
  368.  
  369.      Kreissparkasse Heilbronn
  370.      BLZ 620 500 00
  371.      Konto 709 363
  372.  
  373.  
  374.  
  375. Viel Spa₧ und Erfolg weiterhin mit Calamus╛ SL!
  376.  
  377.  
  378.   Delirium Arts wünscht einen Schönen Tag.
  379.  
  380.  
  381.  
  382. ===
  383.  
  384. Calamus╛ ist eingetragenes Warenzeichen der Firma DMC GmbH, Walluf
  385.  
  386. PostScript ist das, was dem Manuskript folgt: meistens Chaos.
  387.