Overscan-Kompensation mit den neuen nVidia-Treibern

  • Hallo,
    da die Änderungen bei der Einstellung der Overscan-Kompensation in den nVidia-Treibern >= 302.07 vermutlich einige mit TV-Geräten betrifft, bei denen sich der Overscan nicht abstellen lässt, versuche ich mal ein bisschen was dazu zu schreiben.

    Zitat

    Removed overscan compensation configurability from NV-CONTROL and nvidia-settings. This can be configured, with finer granularity, through the ViewPortIn and ViewPortOut MetaMode attributes. See "Configuring Multiple Display Devices on One X Screen" in the README for details.


    Das klingt erst mal komplizierter als die alte Prozent-Einstellung für den Overscan, bietet aber tatsächlich die Möglichkeit sehr genau zu justieren wo das Bild auf dem Bildschirm dargestellt wird :)


    Der ViewPortIn entspricht dem Bild, das gerendert werden soll. Normalerweise wählt man dafür die eigentlich gewünschte Ausgabeauflösung (viele Skins des VDR sind ja auf 1080p oder 720p optimiert). Der ViewPortOut gibt die Größe und Position des dargestellten Bildes innerhalb der gewählten Auflösung des aktiven Mode an, und das in der Syntax <X>x<Y>+<x>+<y>, wobei <X> und <Y> der Größe des Skalierten Bildes entsprechen und <x> und <y> den Abstand von der linken oberen Ecke darstellen.

    Mit den nvidia-settings lässt sich der Overscan beim laufenden X-Server anpassen (was sich gut zum ausprobieren eignet):

    Code
    nvidia-settings --assign CurrentMetaMode="DFP-0: 1280x720_50 { ViewPortIn=1280x720, ViewPortOut=1200x675+39+24}"


    Hier wird also für einen Monitor mit 720p Ausgabe das Bild auf 1200x675 Pixel innerhalb der Ausgabeauflösung von 1280x270 skaliert und die linke obere Ecke des Skalierten Bildes ist 39 Pixel nach rechts und 24 Pixel nach unten gegenüber der linken oberen Ecke des kompletten Bildes verschoben.


    In der xorg.conf kann das dann so aussehen:


    Zum Ermitteln der Parameter bietet es sich an, ein helles Bild anzeigen zu lassen, dann den ViewPortOut so zu verschieben, bis die linke obere Ecke richtig dargestellt wird und zuletzt die Skalierung (<X> und <Y>) so anzupassen, dass die rechte untere Ecke passt. Vermutlich könnte man das auch halbautomatisiert visuell lösen, wenn man die Mauskoordinaten an der linken oberen und rechten unteren Ecke ermittelt (falls jemand da gute Ideen hat immer her damit :))


    Ich hoffe, ich konnte das halbwegs verständlich beschreiben...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Moin,


    Erklärung ist klasse.


    Könntest Du noch was zu der Zeile

    Code
    Option         "CustomEDID" "DFP-0:/etc/X11/edid.0.yavdr"

    sagen?


    Ich habe es inzwischen auch geschafft, auf den neuen Treiber zu wexeln.
    Hat mich gut nen halben Tag gekostet :(
    Manches tut doch noch nicht so, wie im Readme beschrieben ...
    ... und bis man dann die richtigen Dips im Universum der netten Inder findet :O


    Ich habe es bei mir nur zum Fliegen bekommen, indem ich

    Code
    Option         "UseEdidDpi" "FALSE"

    verwendet und die DPI fix vergeben habe.
    Davor hatte ich Eierköppe, so schlimm hat man es noch nicht gesehen.


    Mit den neuen Treibern kann man sicher manche Parameter feiner einstellen, aber man kann sein System auch schneller in den Wind schießen.
    Da ist sicher noch Verbesserungsbedarf bei nvidia-settings.


    Gruß Gero

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

  • Könntest Du noch was zu der Zeile

    Code
    Option         "CustomEDID" "DFP-0:/etc/X11/edid.0.yavdr"


    sagen?


    Da der TV/Reveiver ja nicht immer zwangsläufig beim Starten des VDR an ist und dann seine Daten ausliefern kann, speichern wir die edid bei yaVDR auf der Platte und bitten den Treiber sie beim Start des X-Servers zu benutzen.
    Das ganze Machwerk sieht dann so aus: http://paste.ubuntu.com/1251502/


    Hat mich gut nen halben Tag gekostet


    Mit Ubuntu/yaVDR lief das innerhalb von ein paar Minuten mit händischen Einstellungen (das integrieren in unsere Templates/WFE dauert allerdings etwas länger) :P

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Super, danke für die Ausführung!


    Genau das Thema Overscan habe ich dies Wochenende auf dem Zettel.
    Also ran an die "Arbeit"


    Verständnissfrage: Wie gehe ich sicher das ich das Bild oben links in der Ecke nicht aus dem sichtbaren (ViewPartOut) Bereich rausschiebe ?


    Habe die ViewPartOut Auflösung erstmal relativ klein gewählt und mich nach und nach ran zu tasten. Dann x und y an der Ecke oben links angepasst.
    Abschließend mit X und Y das Bild wieder aufgefüllt.


    Danke.


    Munter bleiben, Rossi

  • Verständnissfrage: Wie gehe ich sicher das ich das Bild oben links in der Ecke nicht aus dem sichtbaren (ViewPartOut) Bereich rausschiebe ?


    Keine Werte wählen, die größer als die Bildschirmauflösung sind... aber ich verstehe das Problem nicht ganz, man sieht ja was passiert und kann es jederzeit korrigieren...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ok, ich versuche es genauer zu erklären:


    Mit groß X und Y definiere ich erstmal eine relativ kleines Bild. Was ich dann mit klein x und y oben links ausrichte.
    Wenn ich klein x oder y zu gering wähle, schiebe ich das Bild ja wieder aus dem sichtbaren Bereich oben links raus.


    Das meine ich. In der Praxis habe mich in 5er Schritten ran getastet - Augenmaß das passt schon. Sehe jetzt endlich die Uhrzeit oben Rechts mit Sekunden.


    Munter bleiben, Rossi

  • Mit groß X und Y definiere ich erstmal eine relativ kleines Bild.


    Ich würde da erst mal die alten Werte behalten, wenn es nur um die linke ober Ecke geht, und sie erst verändern, wenn es darum geht dass es auch rechts unter passt...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das ist es ja, ich habe keinen alten Werte.


    Lebe schon ewig mit einem ringsum abgeschnittenen Bild, weil mein 40" NEC Monitor eben kein Overscan kann.
    Nachdem gesehen habe das ich das im WFE anpassen kann, bin ich da ran gegangen - das passte super.


    Das ermitteln des ViewPartOut Bereiches war nicht schwierig. Der Tip sich an der Ecke oben links zu orientieren ist auch gut.
    Nur das ich da unter Umständen das Bild wieder aus dem Bereich justiere...


    Munter bleiben, Rossi

  • Lebe schon ewig mit einem ringsum abgeschnittenen Bild, weil mein 40" NEC Monitor eben kein Overscan kann.
    Nachdem gesehen habe das ich das im WFE anpassen kann, bin ich da ran gegangen - das passte super.


    Das ging aber schon immer, nur eben mit einer Prozentzahl.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Das ist es ja, ich habe keinen alten Werte.


    Ok, war wohl missverständlich formuliert, ich meinte du sollst für <X> und <Y> die Werte des ViewPortIn benutzen, während du die linke obere Ecke ausrichtest...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Da der TV/Reveiver ja nicht immer zwangsläufig beim Starten des VDR an ist und dann seine Daten ausliefern kann, speichern wir die edid bei yaVDR auf der Platte und bitten den Treiber sie beim Start des X-Servers zu benutzen.

    Danke, aber das konnte ich mir schon vorstellen.
    Hättest Du mal ein Beispiel für so eine edid-Datei?


    Zitat

    Mit Ubuntu/yaVDR lief das innerhalb von ein paar Minuten


    Lach - ja, es kommt immer drauf an, wie man(n) sich auskennt.
    Du hast vielleicht etwas mehr mit Konfiguration am Hut, als ich - und dann ist mein Setup auch geringfügig komplexer ...
    Egal - letztlich zählt doch nur, dass es wieder löppt :D


    Gruß Gero

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

  • Hättest Du mal ein Beispiel für so eine edid-Datei?


    Die kannst du für deine Monitore/TVs selbst mit nvidia-settings auslesen

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hättest Du mal ein Beispiel für so eine edid-Datei?


    Eine EDID-Datei von uns würde dir nicht viel helfen. Das ist nur ein binärer Blob fester Länge, wohl direkt aus dem ROM des Bildschirms.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Ich habe mal hier etwas dazu gepostet:


    Danke für den Hinweis.


    [OT]Habe gelesen, dass Du auch mehrere Monitore betreibst.
    Betreibst Du die landscape (also normal) oder portrait (hochkant)?
    Mit einer Graka oder mit mehreren?[/OT]


    Gruß Gero

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!