Hyperion Ambilight kalibrieren

Nach dem Aufbau meines Ambilight Klons stellte sich mir die Frage, wie eine systematische Kalibrierung der Farbwerte und -intensitäten für eine optimale Farbwiedergabe erfolgen könnte. Mein Vorgehen schildere ich im Folgenden.

Direkt nach der Installation von Hyperion fiel mir ein starker Farbstich auf. Ebenso war die Helligkeit im Vergleich zum Bildinhalt nicht immer optimal. Hyperion bietet für solche Fälle die Möglichkeit Color Transformations vorzunehmen. Dies wird im Hyperion Wiki recht ausführlich erklärt. Die meisten Parameter können für jeden Farbkanal (rot, grün, blau) separat eingestellt werden. Mir fehlte jedoch eine Anleitung, wie ich konkret eine optimale Kalibrierung durchführe.

Die Werte für die Color Transformations sind in der Datei hyperion.config.json abgelegt und können dort geändert werden. Nach einem Neustart von Hyperion wird die Datei neu eingelesen. Da es für Tests sehr aufwändig wäre, jedesmal die Datei zu ändern und Hyperion neu zu starten, bietet sich ein anderer Weg an. Die Android-App Hyperion erlaubt es, die Werte während der Laufzeit von Hyperion live zu ändern und die Auswirkungen direkt zu betrachten.

Die Einstellungen sind in der App über den Sidebar-Eintrag Color Transforms erreichbar:

Damit konnte ich durch ausprobieren konnte ich die Situation schon deutlich verbessern, jedoch fanden sich immer wieder Szenen im Fernsehen, bei denen das Ambilight eine abweichende Farb- oder Helligkeits aufwies.

Letztendlich habe ich mir einige Testbilder selbst erstellt, die ich im XBMC dann anzeigen konnte um die Werte Schritt für Schritt unter kontrollierten Bedingungen einstellen zu können. Die folgenden Testbilder biete ich auch zum Download an.

Schritt 1: Weißabgleich

Das weisse Bild hilft, den richtigen Weißabgleich zu finden. Sollte das Weiß der LED-Kette kälter oder wärmer wirken als das Weiß des Fernsehers, kann über die Regler des Bereichs Whitelevel eine Korrektur durchgeführt werden.

Schritt 2: Farbsättigung

Die farbigen Bilder in Rot, Grün und Blau helfen, die Farbsättigung zu bestimmen und den Weißabgleich zu überprüfen. Sollte es zu sichtbaren Abweichungen zwischen Farbe der LED-Kette und dem Fernsehbild kommen, sollten die Regler des Bereichs Whitelevel entsprechend angepasst werden. Ebenso kann über den Regler HSV Saturation Gain die Farbsättigung korrigiert werden.

Schritt 3: Gammaabgleich

Zuletzt sollten die Gammawerte über den Regler Gamma noch justiert werden. Dazu eigenen sich entsprechende Farbverläufe, die die drei Grundfarben Rot, Grün und Blau jeweils gegen Schwarz ausblenden (Rot-Schwarz-Verlauf, Grün-Schwarz-Verlauf, Blau-Schwarz-Verlauf). Durch den Gammawert wird festgelegt, auf welche Weise die Helligkeit im Verlauf von maximaler zu minimaler Helligkeit reduziert wird.

Schritt 4: Fertige Werte in der Hyperion-Konfiguration ablegen

Die resultierenden Werte können nun aus der Hyperion-App abgelesen und in der Konfigurationsdatei persisten abgelegt werden. Die Regler Threshold und Blacklevel habe ich dabei nicht verändert, da ich damit keine Verbesserungen erzielen konnte. In meinem Fall sieht dies dann so aus:

...
    "transform" :
    [
            {
                    "id"   : "default",
                    "leds" : "*",
                    "hsv" :
                    {
                            "saturationGain" : 0.9500,
                            "valueGain"      : 1.0000
                    },
                    "red" :
                    {
                            "threshold"  : 0.0000,
                            "gamma"      : 2.0000,
                            "blacklevel" : 0.0000,
                            "whitelevel" : 0.7200
                    },
                    "green" :
                    {
                            "threshold"  : 0.0000,
                            "gamma"      : 1.7000,
                            "blacklevel" : 0.0000,
                            "whitelevel" : 1.0000
                    },
                    "blue" :
                    {
                            "threshold"  : 0.0000,
                            "gamma"      : 1.4000,
                            "blacklevel" : 0.0000,
                            "whitelevel" : 0.3400
                    }
            }
    ],
...