Wie Spotify im Einzelnen funktioniert

Spotify verwendet eine Kombination mehrerer Techniken, um ein zufriedenstellendes Ergebnis zu erzeugen:

  • Identifiziert den Bereich im Bild, der ignoriert werden soll
  • behandelt Artefakte, entweder durch Anti-Aliasing entstanden, Artefakte durch JPEG-Kompression oder einfach"Unreinheiten" im Bild selbst
  • findet die festgelegte Anzahl von einzelnen Farben für das Bild
  • weist die am Besten passenden Farben für jedes Pixel zu (oder lässt es transparent durch Ausmaskierung)

Zu ignorierende Bereiche

Bereiche im Bild können aufgrund verschiedener Ursachen bei der Analyse ignoriert werden:

  • in den meisten Fällen, werden weiße Bereiche ignoriert; dies schließt auch Bereiche ein, die 'nahezu weiß' sind.
  • beinahe immer, werden vollständig transparente Bereiche ignoriert; manchmal gilt dies auch für "fast vollständig transparente" Bereiche
  • in seltenen Fällen, werden graue auch ignoriert (dies ist nur verfügbar beim Spotify Modus in der CLI Version)
  • in seltenen Fällen, werden auch schwarze Bereiche ignoriert (dies ist nur verfügbar beim Spotify Modus in der CLI Version)

Vor der eigentlichen Verarbeitung und je nach Einstellung der Parameter werden Pixel in bestimmten Bereichen nicht berücksichtigt (und später ausmaskiert).

Artefakte

Selbst bei digital erstellten - und scheinbar sehr "sauberen" - Bildern gibt es Artefakte, die vor allem auf Antialiasing und - bei JPEG-Kompression - auf JPEG-Kompressionsblock-Artefakte zurückzuführen sind.

Das größte Problem bei beiden ist, dass in diesen Bereichen Farben vorhanden sind, die nicht repräsentativ für das Erscheinungsbild des Bildes sind. Stellen Sie sich einfach ein Bild mit einem blauen Quadrat neben einem gelben Quadrat vor. Wenn die Antialisierung einsetzt, werden die Pixel an der Grenze zwischen den beiden einen oder mehrere Grüntöne verwenden. Nichtsdestotrotz sind die repräsentativen Farben für beide Bereiche immer noch blau und gelb, und nicht grün.

Stellen Sie sich nun einen gelben Hintergrund vor, auf dem ein sehr dünner Text (z. B. mit Helvetice Neue Light) in Blau steht: Es wird viele gelbe Pixel geben (vom Hintergrund), einige, aber nicht viele blaue Pixel (für den Text) - und eine manchmal überraschend große Anzahl von grünen (oder grünlichen) Pixeln - für die Grenze zwischen dem blauen Text und dem gelben Hintergrund. In einigen realen Dateien kann die Anzahl der grünen Pixel größer sein als die Anzahl der einfachen blauen Pixel.

Spotify verfügt über Optionen - basierend auf Kantenerkennungsalgorithmen -, die es ermöglichen, solche Randpixel bei der Suche nach den am besten passenden Farben zu ignorieren, diese Pixel aber dennoch bei der Zuweisung der am besten passenden Farben zu berücksichtigen (und in diesem Beispiel den grünen oder grünlichen Pixeln entweder Blau oder Gelb zuzuweisen).

Die am meisten geeigneten Farben ermitteln

Spotify verwendet "k-means Clustering"-Algorithmen, um die (meist wenigen) Farben zu identifizieren, die ein Bild am besten repräsentieren.
Interne Untersuchungen haben gezeigt, dass die Suche nach mehr Farben als benötigt und das anschließende Verdichten der Liste der gefundenen Farben zu einer kleineren Liste mit nur den wenigen gewünschten Farben fast immer bessere Ergebnisse liefert als die direkte Suche nach der gewünschten Anzahl von Farben.

Da das "k-means Clustering" naturgemäß Zufallsaspekte aufweist, wird die zweimalige (oder auch häufigere) Ausführung des Algorithmus auf demselben Datensatz jedes Mal leicht (oder auch gar nicht so leicht) unterschiedliche Ergebnisse liefern. Folglich durchläuft Spotify mehrere Iterationen und wählt die Iteration mit der geringsten aggregierten Differenz zwischen dem Originalbild und dem durch die Ergebnisfarben repräsentierten Bild aus.

Zuweisen von Schmuckfarben zu Pixeln

Unabhängig davon, ob Spotify auf Bilder oder PDFs angewendet wird, die nicht nur Bilder, sondern auch Text und Vektor enthalten, wird das Ergebnis immer ein Bild auf einer PDF-Seite sein, wobei sich dieses Bild über den gesamten Seitenbereich erstreckt. Dieses Bild

  • hat einen Kanal für jede Schmuckfarbe
  • Jeder Kanal ist bitonal, d. h. er entspricht entweder 100 % der angegebenen Schmuckfarbe oder 0 %.
  • für jedes Pixel wird nur einer der Kanäle auf 100 % gesetzt
  • für jedes Pixel, bei dem alle Kanäle auf 0 % gesetzt sind, wird eine Maske angewendet, um das Bild an diesem bestimmten Pixel transparent zu machen.

Da die einzige Möglichkeit, solche Bilder in PDF zu kodieren, die Verwendung eines DeviceN-Farbraums ist, wird das erzeugte Bild ein DeviceN-farbiges mehrkanaliges bitonales Bild sein.

Die Namen für die Schmuckfarben werden entweder aus einer vom Benutzer bereitgestellten Schmuckfarbenbibliothek entnommen oder aus den RGB-Werten generiert, die das Aussehen der Schmuckfarbe darstellen.

Der Alternativraum für die Schmuckfarben ist standardmäßig mit sRGB kodiert. Für den Spotify-Modus auf der Befehlszeile ist es auch möglich, DeviceRGB oder Lab als alternativen Raum zu verwenden. Die Verwendung von Lab hat zumindest bei einigen Viewern zu Rendering-Problemen geführt.

0 Kommentare

Geben SIe Ihren Kommentar ein

E-Mail senden, wenn jemand auf diesen Kommentar antwortet