projekte:vector_graphics_adapter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
projekte:vector_graphics_adapter [2015/12/12 19:01] da1l6projekte:vector_graphics_adapter [2015/12/15 22:55] ands
Zeile 4: Zeile 4:
  
 Eine Soundkarte ist im Prinzip ein Digital-Analog Wandler, hat jedoch Tiefpassfilter welche zwar die Audio-Qualität erhöhen, aber die Geschwindigkeit mit welcher der Elektronenstrahl bewegt werden kann eng limitiert. Außerdem sind in der Regel Koppelkondensatoren verbaut, welche den für Lautspecher schädlichen Gleichstromanteil entfernen. Eine Soundkarte ist im Prinzip ein Digital-Analog Wandler, hat jedoch Tiefpassfilter welche zwar die Audio-Qualität erhöhen, aber die Geschwindigkeit mit welcher der Elektronenstrahl bewegt werden kann eng limitiert. Außerdem sind in der Regel Koppelkondensatoren verbaut, welche den für Lautspecher schädlichen Gleichstromanteil entfernen.
-Dadurch verliert die Grafik jedoch den Nullpunkt und wabert um den Mittelpunkt aller Vektoren falls sie nicht gut auf diese Gegebenheiten angestimmt wird.+Dadurch verliert die Grafik jedoch den Nullpunkt und wabert um den Mittelpunkt aller Vektoren falls sie nicht gut auf diese Gegebenheiten angestimmt wird. 
  
 +{{ :projekte:vga-scope-hallo-welt.png?200|Mehr Vektorausgabe über VGA}}
 Doch der PC besitzt ja meist noch einen weiteren Digital-Analog-Wandler: Den VGA Anschluss. Eigendlich für Raster-Grafik ge gedacht, lässt er sich prima zur Ausgabe von Vektorgrafik zweckentfremden. Von den 3 Analogen Kanälen (Rot, Grün und Blau). Werden zwei genutzt um den Elektronenstrahl des Oszilloskops in X bzw. Y Richtug auszulenken. Doch der PC besitzt ja meist noch einen weiteren Digital-Analog-Wandler: Den VGA Anschluss. Eigendlich für Raster-Grafik ge gedacht, lässt er sich prima zur Ausgabe von Vektorgrafik zweckentfremden. Von den 3 Analogen Kanälen (Rot, Grün und Blau). Werden zwei genutzt um den Elektronenstrahl des Oszilloskops in X bzw. Y Richtug auszulenken.
 Der VGA-Port kann die Bilddaten auch mit sehr hoher Geschwindigkeit (> 100MHz) ausgeben, davon kann man bei Soundkarten nur träumen. Auch stöhrende Ausgangsfilter gibt es nicht. Damit ist er fast ideal für komplexe Vektor-Darstellungen geeignet. Der VGA-Port kann die Bilddaten auch mit sehr hoher Geschwindigkeit (> 100MHz) ausgeben, davon kann man bei Soundkarten nur träumen. Auch stöhrende Ausgangsfilter gibt es nicht. Damit ist er fast ideal für komplexe Vektor-Darstellungen geeignet.
Zeile 30: Zeile 31:
   * Beispiel "Vektor"-Bild zur Ausgabe auf dem VGA-Port: {{:projekte:vga-scope-vector-image.png?800|Ausgabe-Bild zur Anzeige auf dem "Vektor"-Bildschirm.}}   * Beispiel "Vektor"-Bild zur Ausgabe auf dem VGA-Port: {{:projekte:vga-scope-vector-image.png?800|Ausgabe-Bild zur Anzeige auf dem "Vektor"-Bildschirm.}}
  
-==== Benuntzung ====+==== Benutzung ====
   * Zunächst das VGA Timing so einstellen das möglichst wenig störende H-Blanks erzeugt werden: <code>xrandr --newmode scope 26.7  2048 2049 2060 2060 200 200 216 216 +hsync +vsync   * Zunächst das VGA Timing so einstellen das möglichst wenig störende H-Blanks erzeugt werden: <code>xrandr --newmode scope 26.7  2048 2049 2060 2060 200 200 216 216 +hsync +vsync
 xrandr --addmode VGA1 scope xrandr --addmode VGA1 scope
Zeile 42: Zeile 43:
     * Die optimalen werte für t1 (bzw. low) und t2 (bzw. high) können je nach Material variieren. Einfach ausprobieren.     * Die optimalen werte für t1 (bzw. low) und t2 (bzw. high) können je nach Material variieren. Einfach ausprobieren.
     * Der Canny-Algorithmus ist sehr Rechenintensiv, deshalb wird das Bild zuerst mit ''--vf scale:w:h'' herunterskaliert.     * Der Canny-Algorithmus ist sehr Rechenintensiv, deshalb wird das Bild zuerst mit ''--vf scale:w:h'' herunterskaliert.
 +
 +===== Cheating at Vector Graphics - Rastergrafik =====
 +{{ :projekte:vga-scope-raster.png?200|TV-Testbild Rastergrafik auf Scope ohne Z-Eingang}}
 +
 +Der bei der Vektorgrafik benutzte Trick zur Helligkeitsänderung kann benutzt werden um Rastergrafik auszugeben.
 +
 +Dabei werden die X/Y-Koordinaten (R/G-Farbkanäle) kontinuierlich so erhöht, das der Oszilloskop-Bildschirm zeilenweise überstrichen wird, wie bei einem Raster Monitor.
 +
 +Helligkeitsunterschiede werden mittels Geschwindigkeitsänderung erzeugt. Helle Breiche werden langsamer überstrichen als dunkle indem die entsprechnden Koordinaten im "Vektorbild" öfter wiederholt werden.
 +
 +==== Benutzung ====
 +<code>/pfad/zu/build/mpv --fs --geometry=<BREITE-HAUPTBILDSCHIRM>:0 --loop --vf scale=256:256,vectorraster:width=2048:height=300 <VIDEO></code>
 +
 +
 +==== Screen Capture ====
 +{{ :projekte:vga-scope-raster-smb1.jpg?200|Super Mario Bros. 1 auf Scope}} mpv kann mit hilfe von ffmpeg den Bildschirminhalt aufzeichnen. Damit lässt sich der Bildschirminhalt (z.B. Spiele) auf dem Oszilloskop darstellen.
 +
 +Das funktioniert prinzipiell sowohl im Raster als auch im reinen Vektorgrafikmodus. Das bild Rechts ist mit dem Rastergrafik modus entstanden.
 +
 +<code>/path/to/build/mpv av://x11grab::0 --demuxer-lavf-o='video_size=<BREITE>x<HÖHE>,grab_y=<XPOS>,grab_x=<YPOS>,framerate=30' ...</code>
 +
 +
 +===== Digitaloszilloskop =====
 +
 +Wer kein analoges Oszilloskop sein eigen nennt kann auch ein modernes digitales Oszilloskop verwenden, allerdings sind die Darstellungsergebnisse deutlich schlechter. Insbesondere der Rastergrafik-Modus ist kaum zu verwenden.
 +
 +Die Ursache liegt darin, dass digitale Oszilloskope periodisch das Eingangssignal abtasten und dann an der zu den gemessenen Spannungen passenden Stelle einen Punkt zeichnen, welcher aber immer die selbe Helligkeit hat. Da das Abtasten nicht synchron zum Pixeltakt des VGA-Ports ist, werden auch viele Zwischenwerte im Übergang zwischen zwei Pixeln gemessen. Dies führt zu starkem "Rauschen" auf dem Bild.
 +
 +{{:projekte:vga-scope-dso.png?250 |DSO zur Darstellung}}
 +{{:projekte:vga-scope-dso2.png?250 |DSO zur Darstellung}}
 +
 +===== Unsere anderen VGA-zu-Oszilloskop Projekte =====
 +  * [[https://github.com/ands/vga2scope|Ein auf OpenCV basierender Video Player/Webcam Streamer]]
  • projekte/vector_graphics_adapter.txt
  • Zuletzt geändert: 2017/03/01 19:19
  • von 127.0.0.1