[rpihddevice] Automatische Mode-Umschaltung

  • Hallo Uwe


    Sollte er zumindest nicht, ausser du hast die Einstellung auf "immer" stehen. Kannst du das Problem auch nach einem Neustart nachvollziehen, oder gibt es evtl. Speicherleichen eines vorhergehenden Crashs? Oder hattest du beim Crash ein anderes, komplexeres OSD offen?


    Hallo Thomas,


    ich hatte das gestern auch getestet und bin mir sicher, der Advanced Deinterlacer ist auch bei HD immer aktiv. Kann man gut am Strich unterm ServusTV sehen


    Glatt = Advanced (oder TV Deinterlacer), Treppe = Fast Deinterlacer.


    Da der Advanced Deinterlacer mit 1080i auch bei einfachstem Skin nicht funktioniert, bzw. das OSD den VDR killt, bin ich wieder auf den TV-Deinterlacer zurück. Auch wenn das im RPiHDDevice im Hinblick auf die Formatumschaltung ziemlich buggy ist...


    Könnte man bei der Skalierung (Einrahmen) vielleicht die 16:9 / 4:3 Einstellung im VDR Setup berücksichtigen?
    Bei 4:3 ist alles (am entsprechenden PAL-TV) ok
    Bei 16:9 fehlt die korrekte Modus-Wahl zwischen:


    CEA[19]: 1280x 720@50p | 16:9 | 74.250MHz
    CEA[20]: 1920x1080@50i | 16:9 | 74.250MHz
    CEA[21]: 720x 576@50i | 4:3 | 27.000MHz
    CEA[22]: 720x 576@50i | 16:9 | 27.000MHz


    Eigentlich müßte das Plugin den Modus wie folgt wählen:


    rpihddevice: video stream started 1280x720@50p PAR(1:1) => 1280 / 1 * 1 = 1280 / 720p -> [19]
    rpihddevice: video stream started 720x576@50i PAR(64:45) => 720 / 45 * 64 = 1024 / 576i -> [22]
    rpihddevice: video stream started 1920x1080@50i PAR(1:1) => 1920 / 1 *1 = 1920 / 1080i -> [20]
    rpihddevice: video stream started 720x576@50i PAR(16:15) => 720 / 15 * 16 = 768 / 576i -> [21]


    Sonst passiert z.B. auf Anixe HD folgendes:
    rpihddevice: video stream started 1280x1080@50i PAR(3:2) => 1280 / 2 * 3 = 1920 / 1080i -> [20]
    rpihddevice: failed to set HDMI mode to 1280x1080@50i (den gibt es hier nicht)


    oder
    rpihddevice: video stream started 480x576@50i PAR(32:15) => 480 / 15 * 32 = 1024 / 576i -> [22]
    rpihddevice: failed to set HDMI mode to 480x576@50i


    und eine Sky Sonderbehandlung, weil Formatangabe 720x576, aber PAR nur zu 704x576 paßt
    rpihddevice: video stream started 720x576@50i PAR(16:11) => 704 / 11 * 16 = 1024 x 576i -> [22]
    rpihddevice: video stream started 720x576@50i PAR(12:11) => 704 / 11 * 12 = 768 x 576i -> [21]


    wobei bei Animax stimmt die Angabe:
    rpihddevice: video stream started 704x576@50i PAR(16:11)
    rpihddevice: failed to set HDMI mode to 704x576@50i


    Grüße,
    42

  • ich hatte das gestern auch getestet und bin mir sicher, der Advanced Deinterlacer ist auch bei HD immer aktiv. Kann man gut am Strich unterm ServusTV sehen


    Glatt = Advanced (oder TV Deinterlacer), Treppe = Fast Deinterlacer.

    Danke für den Hinweis, das muss ich mir in dem Fall nochmal genauer anschauen.


    Könnte man bei der Skalierung (Einrahmen) vielleicht die 16:9 / 4:3 Einstellung im VDR Setup berücksichtigen?

    Die Einstellungen im VDR DVB-Menü sind ein Relikt aus SD-FF-Zeiten und behandeln nur den Fall, ein 16:9-Bild auf einem 4:3-Fernseher darzustellen. Das Setup von rpihddevice ist hier universeller und ersetzt deshalb diese Einstellung.


    Bei 4:3 ist alles (am entsprechenden PAL-TV) ok
    Bei 16:9 fehlt die korrekte Modus-Wahl zwischen:


    CEA[19]: 1280x 720@50p | 16:9 | 74.250MHz
    CEA[20]: 1920x1080@50i | 16:9 | 74.250MHz
    CEA[21]: 720x 576@50i | 4:3 | 27.000MHz
    CEA[22]: 720x 576@50i | 16:9 | 27.000MHz

    Da hast du recht, die Logik des Plugins ignoriert schlicht das Pixelformat, und somit das korrekte Seitenverhältnis. Daran habe ich nicht gedacht, da muss ich mir eine Lösung überlegen.


    Gruss
    Thomas

  • ich hatte das gestern auch getestet und bin mir sicher, der Advanced Deinterlacer ist auch bei HD immer aktiv

    Da war tatsächlich noch ein Fehler drin, der ist nun gefixt.


    Auch wenn das im RPiHDDevice im Hinblick auf die Formatumschaltung ziemlich buggy ist

    Die Formatumschaltung war bis jetzt einfach sehr strikt, d.h. wenn die Auflösung nicht exakt gestimmt hat, wurde der Mode nicht ausgewählt. Mit angehängtem Patch wird in diesem Fall ein alternativer Mode gesucht, und dabei die Breite ignoriert - faktisch also ein anderes Pixelseitenverhältnis toleriert. In meinen Augen ist das nicht verkehrt, da schlussendlich die Zeilenanzahl entscheidend ist, wie gut sich das Bild darstellen lässt. Die horizontale Skalierung über eine Zeile sollte dabei keinen sichtbaren Qualitätsverlust darstellen. Kannst du die Änderung mal testen?


    Gruss
    Thomas

  • Die Formatumschaltung war bis jetzt einfach sehr strikt, d.h. wenn die Auflösung nicht exakt gestimmt hat, wurde der Mode nicht ausgewählt. Mit angehängtem Patch wird in diesem Fall ein alternativer Mode gesucht, und dabei die Breite ignoriert - faktisch also ein anderes Pixelseitenverhältnis toleriert. In meinen Augen ist das nicht verkehrt, da schlussendlich die Zeilenanzahl entscheidend ist, wie gut sich das Bild darstellen lässt. Die horizontale Skalierung über eine Zeile sollte dabei keinen sichtbaren Qualitätsverlust darstellen. Kannst du die Änderung mal testen?


    Jetzt wird leider nix mehr gesucht und der Modus auch nicht mehr gewechselt (OSD bleibt intakt)...


    Modi des TV:


    Umschaltlog:


    Hatte das mal im Dezember 2015 mit:


    getestet, aber dabei verlor man dann die/das rechte Hälfte/Drittel des OSD durch harten Abschnitt nach Anzahl der übergebenen Pixel.
    ... nicht gut. :)


    Grüße,
    Stefan

  • Hallo Stefan


    Jetzt wird leider nix mehr gesucht und der Modus auch nicht mehr gewechselt (OSD bleibt intakt)...

    Danke fürs Testen! Hätte wohl selber auch zuerst am richtigen TV testen sollen, konnte aber in meinem Testsetup nur auf fehlerfreies Kompillieren testen, da mein Monitor keine TV-Auflösungen kennt. Jedenfalls hat sich prompt ein Flüchtigkeitsfehler eingeschlichen, den ich nun korrigiert habe. Den Patch habe ich im vorherigen Post aktualisiert, dieser ist aber gänzlich ungetestet.


    Ich muss das am Wochenende mal selber in aller Ruhe am heimischen TV durchspielen - vielleicht mag ja trotzdem jemand den aktualisierten Patch bei sich ausprobieren.


    Gruss
    Thomas

  • Hallo Thomas,


    nach Deinem Patch-Fix funktionierte die Umschaltung im Hinblick auf die Vertikalauflösung.
    Was nicht funktionierte war der 16:9 <-> 4:3 Wechsel. Da wir Eierköpfe nicht mögen, hier anbei eine Erweiterung Deines Patches:


    modeselection_42.diff


    Was jetzt noch nicht funktioniert ist "Einrahmen" statt "Strecken" als Format, das macht nochmal Breitwandbalken an's 16:9 Bild... :D


    Grüße,
    Stefan

  • Hallo Stefan

    Was nicht funktionierte war der 16:9 <-> 4:3 Wechsel. Da wir Eierköpfe nicht mögen, hier anbei eine Erweiterung Deines Patches:


    modeselection_42.diff


    Was jetzt noch nicht funktioniert ist "Einrahmen" statt "Strecken" als Format, das macht nochmal Breitwandbalken an's 16:9 Bild... :D

    Danke für den Patch, den schau ich mir gerne an. Welche Einstellung verwendest du denn normalerweise für die Seitenverhältnis-Anpassung? Bei mir steht die auf "einrahmen", die Option "strecken" hat für mich keine praktische Bedeutung und ist eigentlich nur der Vollständigkeit halber implementiert.


    Gruss
    Thomas

  • Danke für den Patch, den schau ich mir gerne an. Welche Einstellung verwendest du denn normalerweise für die Seitenverhältnis-Anpassung? Bei mir steht die auf "einrahmen", die Option "strecken" hat für mich keine praktische Bedeutung und ist eigentlich nur der Vollständigkeit halber implementiert.


    Hallo Thomas,


    ich war der Ansicht, die "Seitenverhältnis-Anpassung" müßte sich ähnlich wie folgt verhalten:


    Dehnen:
    Eingangsmaterial auf Zielformat aufziehen


    Einrahmen:
    4:3 Monitor:
    - Quellformat 4:3 -> nicht ändern
    - Quellformat 16:9 -> Balken oben/unten


    16:9 Monitor:
    - Quellformat 4:3 -> Balken links/rechts
    - Quellformat 16:9 -> nicht ändern


    Zielbereich (z.B. Teil des OSD):
    - Bild proportional schrumpfen, bis Quellhöhe <= Zielhöhe und Quellbreite <= Zielbreite


    Abschneiden
    4:3 Monitor:
    - Quellformat 4:3 -> nicht ändern
    - Quellformat 16:9 -> rechts/links abschneiden, bis Höhe = Ziellhöhe proportional aufzoomen


    16:9 Monitor:
    - Quellformat 4:3 -> oben/unten abschneiden, bis Breite = Zielbreite proportional aufzoomen
    - Quellformat 16:9 -> nicht ändern


    Leider funktioniert jetzt nur "Dehnen", da Einrahmen hier am 16:9 Gerät ein 4:3 Ziel annimmt, warum auch immer...


    Grüße,
    Stefan

  • Hallo Stefan


    ich war der Ansicht, die "Seitenverhältnis-Anpassung" müßte sich ähnlich wie folgt verhalten:
    [...]
    Leider funktioniert jetzt nur "Dehnen", da Einrahmen hier am 16:9 Gerät ein 4:3 Ziel annimmt, warum auch immer...

    Deine Erwartungen sind richtig, so sollte die Anpassung funktionieren. Beim OSD bin ich mir nicht sicher: Grundsätzlich gibt das Plugin bei GetOsdSize() die eingestellte Bildschirmauflösung zurück und ich sehe keinen Grund da was anderes zurück zu geben.


    Was macht denn dein Fernseher, wenn der Plugin auf einen 4:3-Modus umstellt? Ich würde erwarten, dass er links und rechts schwarze Balken anfügt damit das Bild nicht verzerrt wird - ich könnte mir aber auch gut vorstellen, dass, je nach Einstellung am TV, er das Bild auf 16:9 dehnt, was dann aber falsch wäre.


    Gruss
    Thomas


    P.S. Sollten wir das Thema nicht lieber in einen eigenen Thread auslagern? Ich vermute, dass es hier noch ein paar Sachen zu diskutieren gibt.

  • Hallo Thomas,



    Was macht denn dein Fernseher, wenn der Plugin auf einen 4:3-Modus umstellt? Ich würde erwarten, dass er links und rechts schwarze Balken anfügt damit das Bild nicht verzerrt wird - ich könnte mir aber auch gut vorstellen, dass, je nach Einstellung am TV, er das Bild auf 16:9 dehnt, was dann aber falsch wäre.


    Na, der Fernseher macht, was er soll und skaliert ohne Benutzereingriff nicht am Bild rum:
    16:9 -> 16:9 -> keine Balken
    16:9 in 4:3 -> Balken rundrum
    4:3 -> 4:3 -> Balken rechts/links


    Beispiel RTL (SD)
    tvservice -s = state 0x12000a [HDMI CEA (22) RGB lim 16:9 x2], 720x576 @ 50.00Hz, interlaced
    Bei "Einrahmen" hab ich jetzt OSD auf 16:9 und hohe schwarze Balken oben/unten - örks.


    Code
    May  4 12:15:45 sara-hd vdr: [2570] switching to channel 4 (RTL Television)
    May  4 12:15:46 sara-hd vdr: [2595] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz
    May  4 12:15:46 sara-hd vdr: [8660] rpihddevice: set video codec to MPEG2
    May  4 12:15:46 sara-hd vdr: [2594] rpihddevice: video stream started 720x576@50i PAR(64:45)
    May  4 12:15:46 sara-hd vdr: [2594] rpihddevice: aspect-corrected picture size is 1024x576
    May  4 12:15:46 sara-hd vdr: [2594] rpihddevice: setting HDMI mode to 720x576@50i
    May  4 12:15:46 sara-hd vdr: [2596] rpihddevice: cOvgThread() thread reset
    May  4 12:15:46 sara-hd vdr: [2590] OSD size changed to 720x576 @ 1,25


    Beispiel SAT.1 Gold(SD) - mit meinem Patch
    tvservice -s = state 0x12000a [HDMI CEA (21) RGB lim 4:3 x2], 720x576 @ 50.00Hz, interlaced
    Das TV' macht entsprechend Modus Trauerränder rechts/links
    Bei "Einrahmen" hab ich jetzt OSD auf 4:3 und schmale schwarze Balken oben/unten - ebenso örks.


    Code
    May  4 12:23:56 sara-hd vdr: [2570] switching to channel 23 (SAT.1 Gold)
    May  4 12:23:56 sara-hd vdr: [2595] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz
    May  4 12:23:57 sara-hd vdr: [8666] rpihddevice: set video codec to MPEG2
    May  4 12:23:57 sara-hd vdr: [2594] rpihddevice: video stream started 720x576@50i PAR(16:15)
    May  4 12:23:57 sara-hd vdr: [2594] rpihddevice: aspect-corrected picture size is 768x576
    May  4 12:23:57 sara-hd vdr: [2594] rpihddevice: setting HDMI mode to 720x576@50i
    May  4 12:23:57 sara-hd vdr: [2596] rpihddevice: cOvgThread() thread reset
    May  4 12:23:57 sara-hd vdr: [2590] OSD size changed to 720x576 @ 1,25


    Ach ja, und in beiden Modi nette Deinterlace-Bänder (Z-artig), weil das Format von Plugin platt gedrückt wird, auf "Dehnen" ist dies weg.


    Bei allen HD-Formaten tritt der Fehler nicht auf, siehe z.B.

    Code
    May  4 12:43:33 sara-hd vdr: [2570] switching to channel 24 (ANIXE HD)
    May  4 12:43:34 sara-hd vdr: [8919] rpihddevice: set video codec to H264
    May  4 12:43:34 sara-hd vdr: [2595] rpihddevice: new audio codec: 2ch AC3
    May  4 12:43:35 sara-hd vdr: [2595] rpihddevice: set HDMI audio output format to 2ch AC3, 48.0kHz (pass-through)
    May  4 12:43:36 sara-hd vdr: [2594] rpihddevice: video stream started 1280x1080@50i PAR(3:2)
    May  4 12:43:36 sara-hd vdr: [2594] rpihddevice: aspect-corrected picture size is 1920x1080
    May  4 12:43:36 sara-hd vdr: [2594] rpihddevice: setting HDMI mode to 1920x1080@50i
    May  4 12:43:36 sara-hd vdr: [2596] rpihddevice: cOvgThread() thread reset
    May  4 12:43:36 sara-hd vdr: [2590] OSD size changed to 1920x1080 @ 1,77778


    ... keine Balken und "state 0x12000a [HDMI CEA (20) RGB lim 16:9], 1920x1080 @ 50.00Hz, interlaced"



    P.S. Sollten wir das Thema nicht lieber in einen eigenen Thread auslagern? Ich vermute, dass es hier noch ein paar Sachen zu diskutieren gibt.


    Gerne. Fragen wir den Admin?


    Grüße,
    Stefan

  • Hallo Thomas,


    beim Durchschalten zeigten sich noch folgende Fehler:


    Code
    May 20 14:04:27 sara-hd vdr: [9249] switching to channel 112 (kabel eins classics)
    May 20 14:04:29 sara-hd vdr: [9268] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz
    May 20 14:04:29 sara-hd vdr: [9530] rpihddevice: set video codec to MPEG2
    May 20 14:04:29 sara-hd vdr: [9267] rpihddevice: video stream started 480x576@50i, PAR=32/15
    May 20 14:04:29 sara-hd vdr: [9267] rpihddevice: failed to set HDMI mode to 480x576@50i (unknown)
    May 20 14:04:29 sara-hd vdr: [9267] rpihddevice: display PAR=1,422, setting video render PAR=3/2


    Das dürfte die Fallunterscheidung für y=576 statt Berechnung der 1024/768 'ziger Square-Pixel-Breite sein, Sender haben viele Format-Ideen...


    Code
    May 20 14:05:26 sara-hd vdr: [9249] switching to channel 122 (Animax)
    May 20 14:05:28 sara-hd vdr: [9576] rpihddevice: set video codec to H264
    May 20 14:05:29 sara-hd vdr: [9268] rpihddevice: new audio codec: 2ch MPEG
    May 20 14:05:29 sara-hd vdr: [9268] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz
    May 20 14:05:29 sara-hd vdr: [9267] rpihddevice: video stream started 704x576@25p, PAR=16/11
    May 20 14:05:29 sara-hd vdr: [9267] rpihddevice: failed to set HDMI mode to 704x576@25p (16:9)
    May 20 14:05:29 sara-hd vdr: [9267] rpihddevice: display PAR=1,000, setting video render PAR=16/11


    704x576@25p ... 25p, wenn ich groß bin, werde ich 50i :)


    Da weiß ich allerdings nicht, ob dies so gesendet, in der Firmware oder vom Plugin nicht richtig erkannt wird, da etwas später (beim Test "Einrahmen"):

    Code
    May 20 14:41:13 sara-hd vdr: [9249] switching to channel 122 (Animax)
    May 20 14:41:14 sara-hd vdr: [10038] rpihddevice: set video codec to H264
    May 20 14:41:15 sara-hd vdr: [9268] rpihddevice: new audio codec: 2ch MPEG
    May 20 14:41:15 sara-hd vdr: [9268] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz
    May 20 14:41:15 sara-hd vdr: [9267] rpihddevice: video stream started 704x576@50i, PAR=16/11
    May 20 14:41:15 sara-hd vdr: [9267] rpihddevice: setting HDMI mode to 720x576@50i (16:9)
    May 20 14:41:15 sara-hd vdr: [9267] rpihddevice: display PAR=1,422, setting video render PAR=45/44
    May 20 14:41:16 sara-hd vdr: [9269] rpihddevice: cOvgThread() thread reset


    PAL-TV muß ich noch testen...


    Grüße,
    Stefan

  • Hallo Stefan


    Wäre es möglich, dass du mir Ausschnitte dieser Aufnahmen zur Verfügung stellen könntest? Ich würde das gerne selber testen und bin froh um solche Spezialfälle für meine Test-Sammlung.


    Gruss
    Thomas

  • Hallo Thomas,



    Wäre es möglich, dass du mir Ausschnitte dieser Aufnahmen zur Verfügung stellen könntest? Ich würde das gerne selber testen und bin froh um solche Spezialfälle für meine Test-Sammlung.


    Ja, aber durch bescheidene Netzanbindung besser per SD-Card, wenn Du so etwas lesen kannst...


    Zu unserem Problem:
    Ich hab die Umschaltung (nach Durchsicht meiner Aufnahmen) noch etwas entrümpelt, damit auch bei "alten" Aufnahmen von anno 2001 alles richtig schaltet.
    Das 25p Problem liegt am Plugin oder der rpi-Firmware, da ich den Effekt auch bei einer alten 3sat Aufnahme des damals noch TT1.6 SD-VDR's hatte.


    Mein Patch:


    Unabhängig von dieser Umschaltung gibt es beim Einrahmen / Abschneiden / Zoomen noch eine Art Rundungsproblem,
    so rutschen die TV-Sender-Logos je nach eingestellten Verfahren ein paar Zeilen rauf oder runter, was auch auf dem PAL-TV(!)
    ein Problem mit dem "Deinterlacing" verursacht. Der Grund ist mir aber noch nicht wirklich klar...


    Grüße,
    Stefan

  • Hallo Stefan


    Ja, aber durch bescheidene Netzanbindung besser per SD-Card, wenn Du so etwas lesen kannst...

    Ich brauche ja nicht ganze Aufnahmen, ein paar Sekunden genügen. Das sollte nicht mehr als eine Hand voll Megabytes sein.


    Ich hab die Umschaltung (nach Durchsicht meiner Aufnahmen) noch etwas entrümpelt, damit auch bei "alten" Aufnahmen von anno 2001 alles richtig schaltet.

    Na ja, mit entrümpeln hat das wenig zu tun. Statt auf das Pixelformat zu schauen (was IMHO korrekt ist), betrachtest du alles was breiter als 800px ist als 16:9 - kann sein, dass das für gängige Formate passt, aber hübsch finde ich das nicht. Ausserdem vermischst du die Berechnung der Bildgrösse mit dem Setzen von Bildwiederholfrequenz und Abtastverfahren, das gehört hier definitiv nicht hin.


    Unabhängig von dieser Umschaltung gibt es beim Einrahmen / Abschneiden / Zoomen noch eine Art Rundungsproblem,
    so rutschen die TV-Sender-Logos je nach eingestellten Verfahren ein paar Zeilen rauf oder runter, was auch auf dem PAL-TV(!)
    ein Problem mit dem "Deinterlacing" verursacht. Der Grund ist mir aber noch nicht wirklich klar...

    Das Problem kann ich nicht nachvollziehen - die Formatanpassung geschieht automatisch durch den Video-Render, ich kann mir nicht vorstellen, wo da Rundungsfehler passieren können. Auch der Overscan sollte passen, wenn die Ausgabe dem Videoformat folgt, ausser du hast da in der config.txt was manuell eingetragen.


    Gruss
    Thomas

  • Ach Thomas,


    bevor wir uns hier gegenseitig ans Bein zu pinkeln versuchen:


    sagen Dir 15,625 kHz in Verbindung mit der "800" Unterscheidung,
    die ohne den Sky-Fehler eigentlich eine 768 sein müßte, etwas?


    Falls nicht, liefer ich Dir gerne die Erklärung nach. Dies erkärt dann auch,
    warum 576 / 480 Zeilen mit 50 / 60 Hz Zeilensprung verheiratet sind.


    Grüße,
    Stefan

  • Hallo Stefan

    Ach Thomas,


    bevor wir uns hier gegenseitig ans Bein zu pinkeln versuchen:

    Ich pinkle niemandem ans Bein, aber wenn du von "entrümpeln" schreibst und dabei scheinbar das Konzept des Codes nicht verstanden hast, muss ich das ja nicht gut finden.


    sagen Dir 15,625 kHz in Verbindung mit der "800" Unterscheidung,
    die ohne den Sky-Fehler eigentlich eine 768 sein müßte, etwas?

    Ich habe leider kein Sky und eine Bildbreite von 800px habe ich bisher eher mit VGA statt mit PAL oder NTSC in Verbindung gebracht. Aber ich lerne gerne dazu.


    Falls nicht, liefer ich Dir gerne die Erklärung nach. Dies erkärt dann auch,
    warum 576 / 480 Zeilen mit 50 / 60 Hz Zeilensprung verheiratet sind.

    Die gängigen Fernsehnormen sind mir bekannt, das ändert aber nichts an meiner Implementation, wo ich Auflösung und Wiederholfrequenz getrennt behandle und die Ausgangswerte grundsätzlich vom Decoder übernehme.


    Gruss
    Thomas

  • Hallo Thomas,



    Ich pinkle niemandem ans Bein, aber wenn du von "entrümpeln" schreibst und dabei scheinbar das Konzept des Codes nicht verstanden hast, muss ich das ja nicht gut finden.


    Natürlich habe ich Dein Konzept verstanden:
    Du prüfst anhand von (leider unvollständigen) Spezialfällen, ob Schrödinger' Katze nun gerade tot oder lebendig ist, weigerst Dich aber standhaft zu schauen, ob der Experimentator nun überhaupt eine lebende Katze mit einem giftigen Getränk in den undurchsichtigen Kasten sperrt. In Wirkichkeit nimmt er aus Tierschutzgründen (also hier die ITU-R BT 601) nur tote Katzen mit Giftbecher oder eben lebende mit sauberem Wasser...
    :D




    Ich habe leider kein Sky und eine Bildbreite von 800px habe ich bisher eher mit VGA statt mit PAL oder NTSC in Verbindung gebracht. Aber ich lerne gerne dazu.


    Und damit kommen wir zu den berühmt berüchtigten Anfangsbedingungen:
    Als man sich in den 1980'igern (nach der CD) Gedanken zur Digitalisierung des Videosignals für "Digitalchassis" in den Fernsehern machte, wurde die Horizontalauflösung nur durch die Videobandbreite, bei uns etwa 6,5 MHz (S/W), bei PAL durch den 4,43 MHz Farbträger etwas "gekämmt", bestimmt.
    Nach Shannon muß man dieses Signal mit mehr als 13 MHz abtasten, man wählte 13,5 MHz, was bei einer analogen Zeilenzeit von 52 µs zu 702 Pixel Zeilenbreite führte.
    Für einfachere Rechenoperationen hat man die Zeilen auf 704, bzw. 720 sichtbare Pixel verlängert (Synchronisierungsdaten sind im Datenstrom mit drin).


    Da Fernseher keine definierte "X-Auflösung in Pixeln" hatten, war es auch nicht weiter wichtig, diese quadratisch auszuführen, um native Pixel zu treffen.
    Für Framegrabber, wie die damalige FAST Screenmachine, waren natürlich quadratische Pixel, passend zur Grafikkarte, besser.
    Bei 576 Zeilen braucht man dann für 4:3 576 * 4 / 3 = 768 Pixel, für 16:9 576 * 16 / 9 = 1024 Pixel.
    Bei 480 Zeilen (die auch mit 13,5 MHz Pixeltakt abgetastet werden) entsprechend 640 Pixel (NTSC => VGA Auflösung), bzw. 853,3.. Pixel.


    Da sich bei den 16:9 Formaten der Pixeltakt nicht ändert, sondern die Ablenkung des Elektronenstrahls verändert wurde (amorph), kann man mal kurz rechnen:
    Maximale 4:3 Auflösung -> PAL, 576i -> 768 Pixel bei DAR 1:1
    Minimale 16:9 Auflösung -> NTSC, 480i -> 853 Pixel bei DAR 1:1
    (853 -768 )/2 + 768 = 810,5 => Pixelbreite > 815 ist 16:9, sonst 4:3 (bei PAL/NTSC SD)


    Und genau anhand dieser Bedingung schalte ich mit einem Vergleich zwischen 16:9 und 4:3 um.


    Bleibt ein Problem, die PixelAspectRatio bezieht sich auf die sichtbaren Pixel des Storage Containers. Nichts hindert einen daran, 704 in 720 Pixel Zeilenbreite zu versenden, also den analogen, schwarzen Rand mitzusenden. Dies macht Sky und - praktisch für Dich I24 News

    Code
    I24 NEWS;TSA:11067:VC56M2S0:S19.2E:22000:1081=27:1082=@4:0:0:31307:1:1040:0


    Dort kommt man mit bei 4:3 auf 720 * 12 / 11 auf 785, bzw 16:9 1047 Pixel. Stopft man dies so in den Scaler, skaliert er auch die Vertikale -> Kammeffekte.


    Damit er dies nicht tut, skaliere ich in diesem Fall auf die Standard-Formate (1920/1280/1024/863/768/640) um.


    Hier mein aktueller Patch:


    Das "FIXME" für das 25p Problem hilft nur bedingt, da das BottomFieldFirst / TopFieldFirst nicht gesetzt sind und daher 50p ausgegeben wird. Aber so schaltet weigstens das Panel.
    Meist ist die 50i Erkennung korrekt, wenn eine Aufnahme ab Beginn startet und nicht fortgesetzt wird...


    Grüße,
    Stefan

  • Hallo Stefan


    Natürlich habe ich Dein Konzept verstanden

    Ich bin mir nicht sicher. Wozu nicht-quadratische Pixel auf quadratische mappen? Mein Fernseher kennt keinen 1024x576px-Mode, sondern nur 720x576, und zwar einmal für 4:3 und 16:9. Ich muss im Fall von PAL/NTSC also nur unterscheiden zwischen (fast) quadratischen (4:3) und gestreckten Pixeln (16:9) um den richtigen Mode zu wählen.


    Nichts hindert einen daran, 704 in 720 Pixel Zeilenbreite zu versenden, also den analogen, schwarzen Rand mitzusenden. Dies macht Sky und - praktisch für Dich I24 News

    Code
    I24 NEWS;TSA:11067:VC56M2S0:S19.2E:22000:1081=27:1082=@4:0:0:31307:1:1040:0

    Danke für den Hinweis, ich werde mit dem Kanal mal testen.


    Das "FIXME" für das 25p Problem hilft nur bedingt, da das BottomFieldFirst / TopFieldFirst nicht gesetzt sind und daher 50p ausgegeben wird. Aber so schaltet weigstens das Panel.
    Meist ist die 50i Erkennung korrekt, wenn eine Aufnahme ab Beginn startet und nicht fortgesetzt wird...

    Wenn du Aufnahmen hast, bei denen die Frameratenerkennung nicht korrekt funktioniert, dann bitte ich dich, entweder auf github ein Issue zu erstellen oder mir einen Ausschnitt zukommen zu lassen, damit ich das tun kann.


    Gruss
    Thomas

Jetzt mitmachen!

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