avards ist zu hektisch

  • Hi,


    ich habe mir mal das avards Plugin installiert und muss sagen die ersten Ergebnisse sehen vielversprechend aus.
    Das Umschalten der einzelnen Zoomstufen funktoniert wunderbar.


    Leider schaltet avards z.B. bei laufendem L16:9 immer mal wieder auf andere Zoomstufen um.
    Der Film läuft mal 5 Minuten mit dem korrekten Zoom, schaltet dann für ein par Sekunden um wieder zurück.
    Ich habe mal ein wenig mit den Parametern gespielt, aber keine wirklich brauchbare gefunden.


    Wie sehen denn Eure Settings aus ? Oder liegt es gar an etwas anderem ?


    Edit: Ich nutze den atmo-avards-patch

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

    Einmal editiert, zuletzt von pinky666 ()

  • kann auch an der Firmware des TVs liegen. Mein Loewe Xelos hatte auch sporadisch zwischen 4:3 und 16:9 hin- und hergeschaltet. War nach einem FW-update behoben.


    Funktioniert es mit Stand-alone DVD Playern denn richtig?

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Hallo Pinky666,


    Avards hat eine eingebaute Verzögerung bevor das Signal umgeschaltet wird. Sie setzt sich aus der Zeit zwischen zwei Tests und der Mindestanzahl des neuen Formats zusammen ("Poll Rate", z.B. 80ms und "Verzögerung in Polls", z.B. 2).


    Wenn Du z.B. 2,5 Sek Verzögerung benötigst, dann heißt das bei 80ms Poll Rate sollen 32 gleiche Erkennungen hintereinander benötigt werden bis umgeschaltet wird.


    Alternativ kannst Du das Format in den Einstellungen auch fest auf ein Format stellen.


    Die Analyse verwendet Graustufenbilder für die Erkennung der Letterboxen. Ob das Bild in 4:3 oder 16:9 gesendet wird kommt aus dem MPEG-Stream selbst.

  • Moment !
    Ich habe verstanden, dass alle "avards.PollRate" ein Bild analysiert wird und erst wenn "avards.Delay" mal das gleiche raus kommt wird umgeschaltet.
    Das Beudeutet doch in Deinem Beispiel, dass nach minimal 160ms umgeschaltet wird.


    Ich habe auch irgendwie die Vermutung, das das Phänomen nur auftritt, wenn das Bild insgesamt dunkel ist, Aber auch das Spielen mit "avards.PanToneBlackMax" und "avards.PanToneTolerance" ergeben keine Besserung.


    Vllt. Postet ja mal jemdand der mit der Erkennung zufrieden ist seine Settings, sollten sie vom Default abweichen.

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

  • Zitat

    Original von pinky666
    Moment !
    Das Beudeutet doch in Deinem Beispiel, dass nach minimal 160ms umgeschaltet wird.


    Ja, mit 80ms - 2 kommt 160ms raus (Mein Fernseher hat auch noch eine Verzögerung von mehreren Sekunden, deshalb benutze ich nur 2)


    Wenn Du 2,5 Sek haben willst, dann musst Du z.B. 80ms x 32 = 2560ms einstellen.


    Zitat

    Original von pinky666
    Ich habe auch irgendwie die Vermutung, das das Phänomen nur auftritt, wenn das Bild insgesamt dunkel ist, Aber auch das Spielen mit "avards.PanToneBlackMax" und "avards.PanToneTolerance" ergeben keine Besserung.


    Das ist dann aber ein grundsätzliches Problem, dass in Nachtszenen die Letterbox-Ränder teilweise nicht mehr erkannt werden .... Da hilft dann nur das Format fest einzustellen (falls nicht jemand mit besseren Werten aushilft - die würde ich dann auch als neuen Default einbauen ;D)


    PS: setzt Du die Werte immer direkt in der setup.conf ?? :schiel Die Bezeichnungen lassen darauf schließen ....

  • Zitat

    Original von FireFly
    Das ist dann aber ein grundsätzliches Problem, dass in Nachtszenen die Letterbox-Ränder teilweise nicht mehr erkannt werden


    Bei dunklen Bildern (Nachtszenen hast Du ja erwähnt), versteh ich das. Ich meine den Effekt aber auch schon beim totalen Gegenteil gesehen zu haben, z.B. wenn das Fernsehstudio / Hintergrund ganz weiß ist.
    Ich weiß nicht, wie genau diese Analyse von statten geht, aber vll kann man da bezüglich Farbe oder Helligkeit der Balken noch etwas optimieren?

  • Zitat

    Original von hampelratte
    Ich weiß nicht, wie genau diese Analyse von statten geht, aber vll kann man da bezüglich Farbe oder Helligkeit der Balken noch etwas optimieren?


    Wie oben geschrieben werden Graubilder zur Analyse benutzt. Den Algorithmus habe ich mir aber nicht ausgedacht, da bräuchte ich die Hilfe von habichthugo...


    Oder diese bescheuerten Sender schaffen endlich das 4:3 Letterbox-Format ab !

  • Zitat

    Original von FireFly
    PS: setzt Du die Werte immer direkt in der setup.conf ?? :schiel Die Bezeichnungen lassen darauf schließen ....


    It depends ;) Wollte mich eigentlich unmissverständlich audrücken und wie geht es besser als mit setup.conf Parametern ?


    Zum eigentlichen Problem:


    IMHO liegt es an der Erkennung des gesendeten Streams. Vllt. würden ja auch Farbraumanalysen a la atmo weiterhelfen, was die beiden Plugins in eins verschmelzen lassen würde und man nicht zwei Plugins mit fast der selben Aufgabe und doppelter CPU Laust benötigt.

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

  • Hi,


    ich habe mir die Sequenz mal angeschaut und solange an meinen Einstellungen geschraubt, bis ich unerwünschte Umschaltungen bekomme.


    Zuerst mal, im Plugin ist noch ein Bug. Im File director.c gehört die Variable iAspectInfo in der Funktion cDetector::AnalyzeFrame() als static deklariert.


    Damit Avards überhaupt funktionieren kann, muß irgendwie die Helligkeit der schwarzen Balken bei Letterbox-Ausstrahlung bekannt sein. Um den Wert zu bekommen gibt es zwei Möglichkeiten:


    1.) Der Wert wird über den Parameter 'Pan Tone max. Schwarzwert' vorgegeben.


    2.) Der Wert wird aus dem Overscan Bereich ermittelt. Auch bei Sendungen ohne Letterbox gibt es einen Overscan-Bereich von wenigen Pixeln am Rand. Avards ermittelt den hellsten Wert am Rand vom Overscan-Bereich.


    Ich vermute mal, das 'Pan Tone max. Schwarzwert' auf 0 und 'Overscan (%)' auf 3 steht. Dann wird der max. Schwarzwert für die Letterbox-Erkennung aus einer aktiven Bildzeile am oberen Rand ermittelt. Wenn diese jetzt sehr hell wird, ordnet Avards größere Bereiche vom Bild den schwarzen Balken der Letterbox zu. In Deiner Aufnahme geschieht das, wenn der Bildhintergrund weiß wird. Wenn Du 'Overscan (%)' auf 1 setzt, sollte an dieser Stelle nicht mehr umgeschaltet werden.


    Gruß
    e9hack

  • Zitat

    Original von e9hack
    Zuerst mal, im Plugin ist noch ein Bug. Im File director.c gehört die Variable iAspectInfo in der Funktion cDetector::AnalyzeFrame() als static deklariert.


    Hallo e9hack,


    schön, dass mal jemand den Code durchsieht, aber ich verstehe nicht, warum das ein Bug sein soll. Die Variable wird doch nicht über einen Aufruf hinaus benötigt (wird ja immer neu initialisiert) und der Returncode wird ja auf dem Stack übergeben, oder?


    FireFly

  • Zitat

    Original von FireFly


    aber ich verstehe nicht, warum das ein Bug sein soll. Die Variable wird doch nicht über einen Aufruf hinaus benötigt (wird ja immer neu initialisiert) und der Returncode wird ja auf dem Stack übergeben, oder?


    In der Funktion steht am Anfang:
    int iAspectInfo = 0;


    später dann:
    if (iAspectInfo == 0) {
    bFormatChanged = true;
    } else {
    ...
    }


    Damit wird bFormatChanged immer auf true gesetzt. Der Code im else-Zweig wird nie abgearbeitet. Im else-Zweig gibts auch eine Abfrage auf iAspectInfo. Die Abfrage auf 0 ist nur die Initialbedingung, wenn iAspectInfo noch nicht ermittelt wurde.


    [EDIT] So wie es aussieht, ist beim Auslagern in eine Funktion noch deutlich mehr in die Hose gegangen.[/EDIT]


    [EDIT2] Kommando zurück, ich bin im else-Zweig verrutscht. Static reicht.[/EDIT2]


    Gruß
    e9hack

  • Stimmt, der else-Teil wir eigentlich nie aufgerufen .... das muss ich mir wohl noch mal ansehen (Hoffentlich habe ich demnächst mal Zeit dafür)


    Du meinst also, dass iAspectInfo static sein sollte, damit es zwischen verschiedenen Aufrufen "überlebt"? Eigentlich sollte nur ein Frame analysiert werden und mehr nicht (die History wird in Action() verwaltet)

  • Zitat

    Original von FireFly
    Stimmt, der else-Teil wir eigentlich nie aufgerufen .... das muss ich mir wohl noch mal ansehen (Hoffentlich habe ich demnächst mal Zeit dafür)


    Du meinst also, dass iAspectInfo static sein sollte, damit es zwischen verschiedenen Aufrufen "überlebt"? Eigentlich sollte nur ein Frame analysiert werden und mehr nicht (die History wird in Action() verwaltet)


    Der else-Zweig soll verhindern, daß das Format neu ermittelt wird, wenn die aktuelle Bildhöhe gerinfügig um die zum Format gehörende schwankt.


    Gruß
    e9hack

  • Hi

    Zitat

    Original von e9hack
    Zuerst mal, im Plugin ist noch ein Bug. Im File director.c gehört die Variable iAspectInfo in der Funktion cDetector::AnalyzeFrame() als static deklariert.


    und

    Zitat

    Wenn Du 'Overscan (%)' auf 1 setzt, sollte an dieser Stelle nicht mehr umgeschaltet werden.


    scheint die ganze Sache schon mal merklich zu beruhigen. Ich beobachte das mal.

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

    Einmal editiert, zuletzt von pinky666 ()

Jetzt mitmachen!

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