mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik LTspice Schrift wird unleserlich durch ClearType


Autor: Alexander Schmidt (esko) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Seit ich Windows 7 benutze fällt mir gelegentlich auf, dass in LTspice 
die Schrift im Schaltplan unleserlich wird.
Dies passiert nur gelegentlich und das Problem ist behoben sobald man 
zoomt.

Ich führe dies auf einen Fehler in ClearType, LTSpice oder dem 
Zusammenspiel der Beiden zurück.

Hat jemand ähnliche Beobachtungen gemacht?
Oder sogar eine Lösung des Problems parat?

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und so sieht es normalerweise aus.

Autor: Yalu X. (yalu) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Dass mit Cleartype die Buchstaben manchmal in den herrlichsten Farben
schillern, ist normal. Besonders deutlich wird das bei einer Folge von
'l's in einer serifenlosen Schriftart und einer kleinen Schriftgröße. Da
Subpixel-Rendering oder allgemein Antialiasing vor allem dazu dient, die
"Treppenstufen" an schräg verlaufenden Kanten zu glätten, gibt es deswe-
gen bei einigen Subpixel-Algorithmen Parameter, über die man einstellen
kann, wie stark das Subpixel-Rendering an horizontalen oder vertikalen
Kanten reduziert wird, so dass dieser Schillereffekt kaum noch in Er-
scheinung tritt.

Im Screenshot "ltspice-cleartype.png" ist der Effekt aber schon sehr
heftig. Wenn man sich die für das Subpixel-Rendering verwendeten Farb-
werte genauer anschaut wird auch klar, warum:

Beim Übergang von der schwarzen Schrift mit RGB(0, 0, 0) zum grauen
Hintergrund mit RGB(192, 192, 192) werden in jedem der drei Farbkanäle
gerade einmal 3 Zwischenwerte (5, 32 und 85) verwendet. Der Abstand
zwischen 0 und 5 ist kaum wahrnehmbar, während zwischen 85 und 192 eine
riesige Lücke klafft. Deswegen wird oft auch die 192 als Zwischenwert
verwendet, was zu entprechend grellen Farben führt, die sehr unangenehm
ins Auge springen.

Im Bild "ltspice-cleartype-normal.png" hingegen gibt es immerhin 5 Werte
zwischen 0 und 192, nämlich 53, 87, 116, 143 und 168, was schon eine
deutlich bessere Glättung zulässt, zumal die Stufen mit wachsender
Intensität kleiner werden, was viel besser zum Gamma-Wert typischer
LCD-Bildschirme passt. Im Anhang habe ich die beiden Abstufungen
gegenübergestellt. Die rote Linie zeigt den hässlichen, die grüne den
besseren Fall.

Ich frage mich nur, warum Cleartype für das Subpixel-Rendering generell
nur einen kleinen Teil des zur Verfügung stehenden Farbraums nutzt, denn
auch 5 Zwischenwerte sind noch nicht wirklich viel. Entweder verwendet
der Algorithmus einen coolen Trick zur Geschwindigkeitssteigerung, der
keine feineren Abstufungen zulässt, oder die Stufigkeit ist einfach auf
unbeabsichtigte Rundungsfehler zurückzuführen. Irgendwie beschleicht
mich auch das Gefühl, dass von den in den vielen MS-Patenten¹ beschrie-
ben tollen Features die allerwenigsten in der aktuellen Implementation
tatsächlich umgesetzt worden sind.

Zur Ursprungsfrage: Irgendjemand oder -etwas hat also wohl an den Clear-
type-Parametern (sofern es solche gibt) und/oder an der Gamma-Korrektur
gedreht. Ob dieses Etwas "LTSpice" heißt, ist natürlich schwer zu sagen.

Ist denn das Verhalten wenigstens irgendwie reproduzierbar?

Ist von der hässlichen Schriftdarstellung nur LTSpice selbst, oder sind
auch andere offene Anwendungen auf dem gleichen Bildschirm davon betrof-
fen? Solche Parameter sollten ja sinnvollerweise bildschirm-, aber nicht
anwendungsspezifisch eingestellt werden können.

So, und jetzt mal kurz zum Fußball rüberschauen :)

———————————————
¹) Lt. Wikipedia sind es 10, die im Zusammenhang mit Cleartype stehen.



PS: Freut mich, dass schon jemand meinen Vorschlag für die strombegrenz-
    te Spannungsquelle ausprobiert :)

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Yalu X. schrieb:
> Ich frage mich nur, warum Cleartype für das Subpixel-Rendering generell
> nur einen kleinen Teil des zur Verfügung stehenden Farbraums nutzt, denn
> auch 5 Zwischenwerte sind noch nicht wirklich viel.

Das ist mir jetzt nicht ganz klar. Meinst du mit Abstufungen die Werte 
die ein Subpixel annehmen kann?


> Ist denn das Verhalten wenigstens irgendwie reproduzierbar?

Nein. Allerdings tritt der Fehler nur auf wenn das Fenster 
vergrößert/verkleinert wird, allerdings nicht immer. Sobald man dann 
zoomt ist die Darstellung wieder normal.

In allen anderen Anwendungen habe ich keine Probleme mit Cleartype, 
außer den hausgemachten. z.B. dass man einen Screenshot nicht mehr 
drehen kann ohne dass die Farben außer Rand und Band geraten (ein 
Screenshot mit nachträglich gedrehter Schrift im Anhang).  Auch 
Ausdrucke von Screenshots werden ausnahmslos hässlich.


> PS: Freut mich, dass schon jemand meinen Vorschlag für die strombegrenz-
>     te Spannungsquelle ausprobiert :)
Ja das habe ich. Danke dafür!

Autor: Simon Budig (nomis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hänge mich mal aus dem Fenster und behaupte, dass hier LTspice sein 
eigenes "Cleartype" implementiert, und dies naiv passiert ist (Bild in 
dreifacher horizontaler Auflösung rendern und dann "runterskalieren" 
indem man von drei nebeneinanderliegenden Pixelspalten jeweils den 
Rot/Grün/Blaukanal nimmt.

Habe ich vor 10 Jahren auch mal gemacht:
  http://www.home.unix-ag.org/simon/gimp/lcd-downscale.html

Das Problem dabei sind in der Tat verschärft auftretende Farbsäume, 
daher macht das originale Cleartype noch einen Filtering-Schritt, der 
auf dieser Seite gut erläutert wird:
  http://www.grc.com/cttech.htm

(dort gibt es auch noch ein paar mehr gute Seiten zu dem Thema)

Ok, das hilft noch nicht beim Beheben des Problems, ist aber ein 
spannendes Thema  :)

Viele Grüße,
        Simon

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Schmidt schrieb:
>> Ich frage mich nur, warum Cleartype für das Subpixel-Rendering generell
>> nur einen kleinen Teil des zur Verfügung stehenden Farbraums nutzt, denn
>> auch 5 Zwischenwerte sind noch nicht wirklich viel.
>
> Das ist mir jetzt nicht ganz klar. Meinst du mit Abstufungen die Werte
> die ein Subpixel annehmen kann?

Ja. Theoretisch müsste sich ja der Wert eines Subpixels daraus ergeben,
wieviel Prozent des Pixels auf das Zeichen und wieviel auf den Hinter-
grund entfallen. Damit könnten prinzipiell alle 256 möglichen Werte auf-
treten. Ok, bei Cleartype wird es wahrscheinlich so ähnlich gemacht, wie
Simon geschrieben hat;

> Bild in dreifacher horizontaler Auflösung rendern und dann
> "runterskalieren" indem man von drei nebeneinanderliegenden
> Pixelspalten jeweils den Rot/Grün/Blaukanal nimmt.

(evtl. auch mit höherer als dreifacher Auflösung) und

> noch einen Filtering-Schritt

Damit ergibt sich die Anzahl der Werte aus der verwendeter Auflösung und
dem Filteralgorithmus. Unter X11 scheinen aber alle (oder zumindest
wesentlich mehr) Werte verwendet zu werden.

Simon Budig schrieb:
> Ich hänge mich mal aus dem Fenster und behaupte, dass hier LTSpice sein
> eigenes "Cleartype" implementiert, und dies naiv passiert ist

Immerhin lässt es sich aber durch die Windows-Einstellung ein- und
ausschalten. Deswegen glaube ich eher, dass LTSpice keinen eigenen
Algorithmus für das Subpixel-Rendering verwendet.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schalte ClearType doch einfach ab. Mich hat das extrem gestört beim 
Lesen von PDF Dokumenten. Da sieht die Schrift "verwaschen" aus und 
nicht mehr schön kontrastreich, was meiner Meinung nach die 
"readability" nicht wirklich fördert.

Autor: Simon Budig (nomis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yalu X. schrieb:
> Immerhin lässt es sich aber durch die Windows-Einstellung ein- und
> ausschalten. Deswegen glaube ich eher, dass LTSpice keinen eigenen
> Algorithmus für das Subpixel-Rendering verwendet.

Guter Hinweis.

Aber das bringt mich auf eine Idee: Verwendet LTSpice eventuell einen 
Bitmap-Font für seinen Text? Dann könnte der Font-Rendering-Code kein 
Antialiasing machen und alles Filtern kann die Anzahl der verwendeten 
"Farbstufen" nicht hochtreiben...

Man sollte einen Vektor-Font (True-/Opentype) verwenden und 
(Graustufen-)Antialiasing verwenden, erst dann kann Cleartype sein 
Potential ausfahren.

Viele Grüße,
        Simon

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie man oben in ltspice-cleartype-normal.png sieht funktioniert 
Cleartype seht gut mit LTspice.
Es kommt nur manchmal zu dem oben beschriebenen Fehler.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.