Diffusion / Schärfen

Diffusion bezeichnet physikalische Prozesse, die, ausgehend von einer erzeugenden Quelle, Teilchen bewegt und mit der Zeit allmählich verteilt. Bei der Bildverarbeitung tritt Diffusion hauptsächlich an zwei Stellen auf:

  • Diffusion von Photonen durch Objektivgläser (Weichzeichnung) oder Luftfeuchtigkeit (Verschleierung),

  • Diffusion von Pigmenten in nasser Tinte oder Wasserfarben.

In beiden Fällen macht die Diffusion das Bild weniger scharf durch “entweichende” Partikel und durch Glätten lokaler Variationen.

Das Modul Diffussion / Schärfen nutzt zur Beschreibung unterschiedlicher Diffusionsarten ein verallgemeinertes physikalisches Model. Fotographen können es entweder zur Simulierung oder Umkehrung von Diffusionsprozessen nutzen.

Da es sich um ein hoch technisiertes Modul handelt, gibt es mehrere Voreinstellungen, die den Gebrauch für verschiedene Anwendungen demonstrieren.

Streuung kann entfernt werden, um:

  • Wiederherstellen des Originalbildes vom Sensor mit einem Glättungsfilter bzw. Abmildern der durch die meisten Entrasterungsalgorithmen erzeugten Unschärfe (eine Entrasterungs-Voreinstellungen Farbglättung waählen und das Modul in der Pipeline vor das Modul Eingabefarbprofil platzieren),

  • Reversiere statische Objektiv-Unschärfe/Falschfokussierung (nutze eine der Objektiv Schärfen Voreinstellungen),

  • Atmosphärischen Dunst zu entfernen (nutze die Dunstentfernen Einstellung),

  • Hinzufügen von zusätzlicher Konturenschärfe für bessere Lesbarkeit (benutze die Lokaler Kontrast Einstellung)

Beachte, dass Bewegungsunschärfe nicht rückgängig gemacht werden kann, da sie von Natur aus nicht diffus ist.

Diffusion kann hinzugefügt werden um:

  • einen Bloom oder einen Orton-Effekt zu erreichen (nutze die Voreinstellung Bloom)

  • modelliere fehlende oder beschädigte Teile des Bildes (nutze die Voreinstellung modelliere Lichter),

  • Entrausche mit einer Kanten erhaltenden Art (nutze die Voreinstellung Entrauchen)

  • bringe Unschärfe ein (nutze die Voreinstellung Oberflächen Unschärfe).

Weil der Prozess physikalisch ist, können selbst die Pannen für kreative Prozesse genutzt werden. So kannst du zum Beispiel:

  • Linien-Zeichnen simulieren oder Wasserfarben (nutze die Voreinstellungen simuliere Linien-Zeichnen und _ simuliere Wasserfarben_),

  • Kreiere Zufalls-Muster und Texturen durch Erhöhen des Rauschens (nach gewisser Zeit wird durch Iterationen das Rauschen mit Nachbarpixeln Zufalls-Flecken erzeugt).


Hinweis: Dieses Modul ist sehr ressourcen-intensiv, da es ein anisotroper, mehrskaliger, partieller Differenzialgleichungslöser ist. Die Laufzeiten des Moduls erhöht sich mit Anzahl der Iterationen und es wird dringend empfohlen OpenCL zu nutzen. Einige “schnelle” Voreinstellungen werden auch ohne OpenCL angeboten.


🔗Konzepte

🔗Zeit

Diffusion ist ein zeitabhängiger Prozess: Je mehr Zeit zur Verfügung steht, umso weiter können sich die Teilchen ausbreiten. In diesem Modul wird die Zeit mit der Anzahl der Iterationen simuliert (die Anzahl der Durchläufe des Algorithmus auf sich selber). Mehr Iterationen erlauben genauere Rekonstruktionen (Entschärfung, Rauschunterdrückung, Dunstentfernung), wenn diese richtig eingestellt sind, aber sie können diese auch verschlimmern.

🔗Richtung

Natürliche Diffusion befindet sich meistens zwischen Stellen mit einem hohen Potential (hohe Energie oder eine hohe Konzentration von Partikeln) zu solchen mit einem niedrigen Potential (niedrige Energie oder niedrige Konzentration von Partikeln. In einem Bild bedeutet das, dass Diffusion immer bei den hellsten Pixeln zu den Dunkelsten.

Diese spezielle Umsetzung kann natürliche Diffusion simulieren und verwendet eine sogenannte isotopische Diffusion, bei der alle Richtungen das gleiche Gewicht bekommen, wie z.B. bei Wärmediffusion (siehe Isotropie). Sie unterstützt aber auch eine gewichtete Orientierung parallel zu Gradienten, die zur Verstärkung der Diffusion an Objektkanten führt und “Geisterränder” erzeugt, oder senkrecht zu Gradienten, sogenannte Isophote, wobei die Diffusion von Rändern begrenzt wird, wie bei einem Farbtropfen im Wasser. Das relative Gewicht jeder Richtung (Gradient und Isophote) ist unter Richtung im Modul einstellbar.

🔗Geschwindigkeit

Abhängig davon wie fluide die Umgebung ist, können sich die Partikel mehr oder weniger frei bewegen und deshalb mehr oder weniger schnell. Die Geschwindigkeit der Diffusion kann im Teil Gechwindigkeit des Moduls eingestellt werden.

Bei der Rekonstruktion (Entrauschen, Schärfen, Dunstentfernung), ist es wichtig kleinere Geschwindigkeiten für größere Genauigkeiten anzuwenden. Das verhindert numerische Überschießen (und so Verschlechterungen der Lösung) und es kann mehr Iterationen erfordern. Für kleine Anzahlen von Iterationen müssen möglicherweise größere Geschwindigkeiten angewandt werden. Beachte, dass große Unschärfen für eine gute Rekonstruktion viele Iterationen erfordern können, so dass die Geschwindigkeit angepasst werden sollte, um eine Verschlimmerung zu vermeiden.

Alle Geschwindigkeiten werden addiert (von der ersten zur vierten Stufe), und die Summen “erste Stufe + zweite Stufe” und “dritte Stufe + vierte Stufe sollten nie ±100% überschreiten, außer du wünschst glitch art zu erstellen.

🔗Ausmaß

Natürliche Diffusion sollte nur in den allernächsten Koordinaten auftreten. Das heisst, bei jeder Iteration sollte jedes Pixel nur mit den 9 nächsten Pixeln interagieren.

Hier beschleunigen wir die Dinge etwas, um Zeit zu gewinnen, und verwenden das Mehrband-Wavelet-Schema aus dem Modul Kontrast-Equalizer, sodass wir in verschiedenen Bandbreiten streuen können. Die maximale Bandbreite der Streuung wird durch den Parameter Radius-Spanne definiert.

Unabhängig von der Diffusion erlaubt ein Schärfe-Parameter Details zu erhöhen oder zu vermindern, ähnlich zu Spline-Einstellungen des Kontrast-Equalizers. Zusammen mit dem Regler Kantenempfindlichkeit stellt dies die gleichen Möglichkeiten in einem szenenbezogenen RGB-Raum bereit wie das Modul Kontrast-Equalizer (mit den Registern Luminanz und Kanten).

🔗Moduleinstellungen

🔗Eigenschaften

Iterationen
Die Anzahl, die der Algorithmus nacheinander laufen soll. Hohe Werte verlangsamen das Modul, erlauben aber genauere Rekonstruktionen; vorausgesetzt, die Verteilungsgeschwindigkeiten sind niedrig genug.
Zentraler Radius
Die Hauptskala der Diffusion. Bei null reagiert die Diffusion fester in feinen Details (beim Schärfen und Entrauschen). Nicht-null Werte definieren die Größe der Details, die fest diffundiert werden (um den lokalen Kontrast zu erhöhen).
Radius Spannweite
Das erlaubt es dir, die Bandbreite der Radien, an denen gearbeitet werden sollen, rund um den Zentral-Radius. Die Spannweite definiert einen Bereich von Detail-Skalen (zwischen Zentrum - Spannweite und Zentrum + Spannweite), innerhalb welcher die Diffusion in einem großen Band Radien auf Kosten der Verarbeitungszeit. Kleine Werte diffundieren näher dem Zentral-Radius. Falls du Entwischen (schärfen) planst, dann sollte der Radius in etwa der Breite der Objektiv-Unschärfe und der Zentralradius sollte null sein. Falls du den lokalen Kontrast erhöhen, aber die Schärfe oder das Rauschen nicht beeinflussen willst, sollte die Spannweite etwa 3/4 des maximalen Zentralradius betragen.

Die Radien werden in Pixeln des Voll-Auflösungs Bildes ausgedrückt, so können kopieren+einsetzen Vorgänge zwischen Bildern mit verschiedener Auflösung zu leicht anderen Resultaten führen, außer bei Pixel-Niveau Schärfe.

Für Elektroingenieure - was hier gesetzt wird, ist ein Band-Pass Filter im Wavelets Raum mittels einem gaußschen Frequenz-Fenster, das um den zentralen Radius zentriert wird, mit einer rückläufigen (Standardabweichung) der Radius Spannweite. Die Wavelet Skalen sind analog zu harmonischen Frequenzen und jede Wavelet-Skala definiert den Radius der Details an denen gearbeitet werden soll.

🔗Geschwindigkeit (schärfen ↔ diffus machen)

In den folgenden Einstellungen erzeugen positive Werte Diffusion und negative Werte entfernen Diffusion (z.B. schärfen) und null erzeugt gar nichts.

Geschwindigkeit 1. Ordnung (Gradient)
Geschwindigkeit der Diffusion der niederfrequenten Wavelet-Ebenen in der durch die Einstellung Anisotropie 1. Ordnung definierten Richtung.
Geschwindigkeit 2. Ordnung (Laplace)
Geschwindigkeit der Diffusion der niederfrequenten Wavelet-Ebenen in der durch die Einstellung Anisotropie 2. Ordnung definierten Richtung.
3rd order Geschwindigkeit (Gradient von Laplacian)
Die Geschwindigkeit der Diffusion der hochfrequenten Wavelet-Lagen in Richtung, die durch die Einstellung 3rd order Anisotropie definiert ist.
4th order Geschwindigkeit (Laplacian von Laplacian)
Die Geschwindigkeit der Diffusion der hochfrequenten Wavelet-Lagen in Richtung, die durch die Einstellung 4th order Anisotropie definiert ist.

🔗Richtung

In den folgenden Einstellungen erzeugen positive Werte Diffusion, um Kanten(Isophoten) zu vermeiden, negative Werte bewirken, dass die Diffusion Gradienten genauer folgen, und Null beeinflusst beides gleich (isotropisch).

Anisotropie 1. Ordnung
Richtung der Diffusion der niederfrequenten Wavelet-Ebenen relativ zur Richtung des Gradienten der Niederfrequenz. (1. Ordnung Geschwindigkeit Einstellung).
Anisotropie 2. Ordnung
Richtung der Diffusion der niederfrequenten Wavelet-Ebenen relativ zur Richtung des Gradienten der Hochfrequenz. (2. Ordnung Geschwindigkeit_ Einstellung).
Anisotropie 3. Ordnung
Richtung der Diffusion der hochfrequenten Wavelet-Ebenen relativ zur Richtung des Gradienten der Niederfrequenz. Null ist isotrop (gleich in alle Richtungen). (3. Ordnung Geschwindigkeit Einstellung).
  1. Ordnung Anisotropie : Die Richtung der Diffusion der hochfrequenten Wavelet-Lagen relativ zur Richtung des Gradienten der Hoch-Frequenz. (4. Ordnung Geschwindigkeit_ Einstellung).

🔗Kantenbehandlung

Schärfe
Füge einen Gewinn für die Details der Wavelets hinzu, unabhängig der Eigenschaften, die oben eingestellt wurden. Null bewirkt nichts, positive Werte bewirken Schärfen, negative Verwischen. Das ist meistens eine nützliche Einstellung bei Blooming oder Unschärfe, um gewisse Schärfe zu erhalten und gleichzeitig ein Leuchten um die Kanten zu erzielen. Es sollte aber nicht zum ausschliesslichen Schärfen angewendet werden, da es nichts gibt, um Halos oder Ausfransen zu verhindern.
Kanten Empfindlichkeit
Fügt eine Restriktion der Diffusions-Geschwindigkeit hinzu, sobald Kanten gefunden werden. Um das zu finden, werden die lokalen Varianzen rund um jedes Pixel verwendet. Null hebt die Restriktion auf, höhere Werte erhöhen die Stärke der Restriktion und sind empfindlicher auf Kanten. Erhöhe sie, falls du Artefakte, wie Ausfransen oder Halos entdeckst.
Kanten Schwellwert
Definiere einen Schwellwert der Abweichung, welcher die Niedrig-Tonunterschiede Anteile (dunkle oder verschwommene Teile oder glatte Flächen). Positive Werte erhöhen die Restriktion für Niedrig-Tonunterschiede Anteile, was gut für das Schärfen oder die Anhebung des lokalen Kontrastes ist, ohne dass Schwarz zuläuft. Negative Werte werden die Restriktionen für Niedrig-Tonunterschiede Anteile vermindern, was wiederum einen maximalen Effekt ergibt für das Entrauschen oder Verwischen von schwarzen oder verschwommenen Anteilen.

🔗Diffusion Raumwirkung

Schwellenwert Luminanz-Maskierung
Diese Einstellung ist nützliche, wenn du Lichter einmalen willst. Für Werte größer als 0%, wird Diffusion nur in Bildteilen angewendet, die eine Luminanz größer als diese Einstellung. Beachte, dass in diesen Bildteilen gaußsches Rauschen zugefügt wird, um Partikel zu simulieren und das Einmalen auszulösen.

🔗Arbeitsablauf

Die Hauptschwierigkeit bei diesem Modul ist es, dass obwohl der Output, abhängig vom Input, dramatisch variieren kann, diese Parameter keine intuitive Verbindung zum normalen Leben haben. Nutzer sind überwältigt, es sei denn, dass sie sich mit partiellen Fourier Differentialgleichungen auskennen. Dieser Abschnitt schlägt einige Wege vor, an dieses Modul heranzugehen, ohne die Last der Grundtheorie zu verstehen.

🔗Generelle Hinweise

Falls du Unschärfen aus deinem Bild entfernen willst, solltest du stets damit beginnen, chromatische Aberrationen und Rauschen im Bild zu korrigieren, da das Entfernen von Unschärfen, diese Artefakte vervielfachen kann. Es ist auch wichtig, dass du keine beschnittenen schwarzen Pixel hast. Das kann mit der Schwarzwert-Korrektur im Modul Belichtung korrigiert werden.

Da es in separaten RGB Kanälen arbeitet, ist es besser dieses Modul nach der Farb Kalibrierung anzuwenden, sodass du mit einem völlig neutralen Ausgangs-Bild mit Weißabgleich beginnst. Beachte, dass Erhöhen des lokalen Kontrastes oder Schärfen auch zu einem leichten Farbkontrast und Sättigung führt, was normalerweise erwünscht ist. Da es auf einer “Tonwert-Unterschiede” basierten Regulierung der Kanten-Erkennung, ist es auch besser, dieses Modul vor irgendeinem nichtlinearen Arbeitsschritt anzuwenden.

🔗Bearbeiten von Voreinstellungen

Die angebotenen Voreinstellungen wurden vom Entwickler justiert und bei einer Reihe von geeigneten Bildern getestet. Am einfachsten beginnt man mit den Voreinstellungen und passt diese nach Bedarf an:

  • Wenn der Effekt zu stark erscheint, die Anzahl der Interationen verringern,

  • Wenn an den Kanten Artefakte erscheinen, die Kantenempfindlichkeit erhöhen,

  • Falls die Entfernung von Unschärfen wertvolle verwischte Teile zu zerstören (Bokeh), musst du den Radius reduzieren,

  • Falls die Entfernung von Unschärfen in hellen Teile korrekt erscheint, aber in dunklen Teile zu exzessiv wirkt, musst du den Schwellwert der Kanten erhöhen,

  • Falls die Entfernung von Unschärfen schwarze Pixel beschneidet, dann musst du die _Schwarzwert-Korrektur im Modul Belichtung verringern,

  • Schärfe nach persönlichem Geschmack anpassen

🔗von vorne beginnen

Die Grundeinstellungen des Moduls sind gänzlich neutral und haben keinen Effekt zu deinem Bild. Der Geist des Moduls ist es, dass jede Order die Textur des Bildes in einer bestimmten Art beeinflusst.

Beginne mit dem Einstellen des ersten Order Parameters (Geschwindigkeit und Anisotropie), um eine erste Basis zu erreichen. Dann stelle den Radius ein. Das wird auf gröbere Texturen wirken (entweder diese verwischen oder schärfen. Erinnere dich, dass der erste Order auf die niedrigen Frequenzen der Wavelet Skala und einer Richtung parallel oder rechtwinklig zum Gradienten der niedrigen Frequenzen wirkt.

Dann beginne mit dem Einstellen des zweiten Order Parameters (Geschwindigkeit und Anisotropie). Der zweite Order wirkt auch auf die niedrigen Frequenzen der Wavelet Skala, aber diesmal einer Richtung parallel oder rechtwinklig zum Gradienten der hohen Frequenzen wirkt, was entweder die Richtung der maximalen Schärfe oder Rauschen sein kann. Das kann entweder zur Entrauschung (durch Nutzen der zweiten Order im Diffusions-Modus, mit positiven Werten), wenn du den ersten Order im Schärfen-Modus angewendet hast (mit negativen Werten).

Diese zwei Schritte können in einem herausgezoomten Bild angewendet werden. Zur Erinnerung, auch wenn sehr viel darauf geachtet wurde, das visuelle Resultat des Algorithmus ziemlich Größen-unbeeinflusst zu machen, wird die Voransicht nur im Maßstab 1:1 genau angezeigt. Auf jeden Fall wird alles auf Pixelgröße (Radius <2px) in Zoomstufen unter 50% gar nicht sichtbar sein.

An dieser Stelle solltest du die Kanten Sensitivität optimieren, um Kantenartefakte anzugehen. In der Theorie sichert das Diffundieren in der Isephote-Richtung, dass die Diffusion innerhalb der Kanten behalten wird, aber das reicht nicht, wenn Ecken und scharfe konvexe Formen im Bild sind.

Wenn die Einstellung für die Kantensensitivität angepasst und gute Resultate erzielt wurden, wird das Bild oft recht weich. In den meisten Fällen wird es jetzt nötig sein, die Anzahl der Iterationen zum Ausgleich zu erhöhen. Das wird allerdings, abhängig von deiner Hardware, eine Verlangsamung der Verarbeitung zur Folge haben. Falls die Anzahl der Iterationen nicht erhöht werden kann, sollte die Geschwindigkeit der Diffusion erhöht werden.

Der letzte Schritt ist es, die dritte und vierte Order fein einzustellen, welche die hohen Frequenzen der Wavelet Skala beeinflussen. Du musst viel vorsichtiger mit diesen Einstellungen umgehen müssen im Vergleich zur ersten und zweiten Order, da diese sehr schnell Rauschen hervorrufen können.

Die dritte Order folgt dem Gradienten oder Isophote-Richtung der niedrigen Frequenz Lage, und kann so genutzt werden, die Hoch-Frequenz-Diffusion in einer Richtung, die eher klare Kanten legitimiert (und weniger anfällig für Rauschen ist).

Der vierte Order folgt dem Gradienten oder der Isophote-Richtung der Hochfrequenz-Lage und wird eher Rauschen verursachen. Diffusion an der vierten Order ist der beste Weg Rauschen zu reduzieren, ohne die Schärfe zu fest zu beeinflussen, sei es als alleinige Entrauschung oder als regulärer Schritt in einem Unschärfe-Entfernungs-Prozess.

🔗Brauchen von mehreren Instanzen für eine Bild-Rekonstruktion

Rauschen nachfiltern kann vom Anwenden eines Diffusions-Prozesses profitieren – das kann als Extraschritt nach dem Modul Entrauschen (Profil).

Umgekehrt können die folgenden optischen Schritte profitieren von der Rekonstruktion mittels Auflösen des Diffusionsprozesses:

  1. Unschärfe eingebracht durch einen Low-Pass-Filter des Sensors und/oder Anti-Aliasing ausgeführt mit dem Modul Entrastern,

  2. statische Objektivweichzeichnung,

  3. Dunst/Nebel,

  4. Lichtdiffusion (mit einem zu großen Diffusor) führt zu gleichmäßigem Licht und fehlendem lokalem Kontrast auf dem Motiv.

Während mehr als einer dieser Eingriffe das Bild gleichzeitig beeinflussen können, ist es sicher besser anzustreben, diese einzeln anzugehen mit mehreren Instanzen des Moduls. Wenn du das so angehst, stelle sicher, dass die Reihenfolge von der groben zur feinen Skala passiert, und dass Entrauschen immer am Anfang steht. Deine Instanzen sollten in der folgenden Pipe Reihenfolge:

  1. Entrauschen,

  2. Lokaler Kontrast,

  3. Dunstentfernung,

  4. Objektivkorrektur,

  5. Sensor und Entrasterungs-Korrektur.

Angefangen mit den gröberen Skalen der Rekonstruktion vermindert die Möglichkeit für Einbringen oder Vermehren des Rauschens, bei den feineren Skalen der Rekonstruktion. Das ist intuitiv, weil diese Prozesse nicht in dieser Reihenfolge bei der Entstehung des Bildes passieren. Aus dem gleichen Grund sollte Entrauschen auch immer vor jeglichen Schärfen oder Erhöhung der Kantenschärfe durchgeführt werden.

🔗Anmerkungen und Warnungen

Obwohl dieses Modul so geschaffen ist, dass es Skalen unempfindlich ist, kann der Output nur bei 100% Zoom und hoher Qualität oder beim Export in voller Größe garantiert werden. Die Resultate bei geringerer Zoom-Stufe oder geringeren Export Dimensionen können deine Erwartungen erfüllen oder nicht.

Beim Anwenden eines Schärfe-Algorithmus, musst du versuchen daran zu denken, dass viele der größten Bilder der Geschichte der Fotografie mit Objektiven aufgenommen wurden, die nicht auch nur annähernd so scharf waren, wie die heutigen. Obwohl es der gegenwärtige Trend ist, immer schärfere Objektive zu bauen und zu verkaufen, aber auch eine Software zur Verfügung zu haben, die zusätzlich ein ungesundes Nachschärfen erlaubt, wisse, dass diese Mode nicht zu besseren Bildern führt, aber es macht den Retuschen-Prozess langwieriger. Ein weicher Fokus und etwas Unschärfe haben auch gewisse poetische Werte, die klinisch aufbereitete HD-Bilder nicht rüberbringen können.

Es sollte bemerkt werden, dass der globale Kontrast (angewendet mit einfachen Tonwertkurven oder Schwarz/Weiß-Stufen) auch unsere Schärfewahrnehmung beeinflusst, was ein großer Unterschied zur optischen Schärfe (optische Auflösung) ist. Das menschliche Auge ist nur für den lokalen Kontrast sensitiv, die von der optischen Schärfe (z.B., Abwesenheit von Unschärfe, dünne Kanten), aber auch von verstärkten Tonwertübergängen kommen kann. Wenn ein gewisses Ton-Mapping zur Erhöhung des lokalen Kontrasts angewendet wurde, erscheint das Bild schärfer. Falls eine Dynamikkompression zur Verringerung des Kontrastes angewendet wurde, erscheint das Bild unschärfer. In keinem dieser Fälle werden Objektkanten in irgendeiner Weise verändert, und die wahrgenommenen Effekte sind reine Illusion.

Ein Teil des Alterungsprozesses ist eine Verminderung der Sehfähigkeit. Der Anteil von Schärfen, der Leuten über 50 gefällig erscheint, wird nicht der gleiche sein, wie der für Leuten in den Zwanzigern. Es ist es wert beim Schärfen einem plausiblen Resultat zu erhalten (das deiner täglichen Wahrnehmung entspricht) den Vorzug zu geben im Vergleich zu einem gefälligen Resultat, das nur für Leute mit dem n Sehvermögen, wie dem deinem, gut aussieht).

Die Beurteilung der Schärfe von Bildern bei einer 1:1-Vergrößerung (100%) oder größer ist unklug. In Museen, Ausstellungen oder sogar auf dem Bildschirm betrachtet das normale Publikum Bilder als Ganzes und nicht mit einem Vergrößerungsglas. Ferner benötigen in der Praxis Fotografien selten eine Auflösung von mehr als 3000 x 2000 Pixeln (ungefähr ein Ausdruck mit 300 DPI auf DIN A4-Größe), was für 24 Mpx-Sensoren 4-fache Verkleinerung bedeutet. Wenn man eine 24 Mpx-Datei also 1:1 betrachtet, sieht man ein Bild, das niemals existieren wird. Nachschärfen auf Pixelbasis ist in diesem Zusammenhang eine Vergeudung von Zeit und Rechnerleistung.

translations