Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Sättigungsarithmetik

Sättigungsarithmetik oder Saturationsarithmetik ist eine Arithmetik, in der alle Operationen (wie Addition oder Multiplikation) in einem festen Intervall …

Inhalt4 Abschnitte
  1. 1. Grundprinzip und Bedeutung
  2. 2. Rechenbeispiele und Rechengesetze
  3. 3. Einsatz bei Bildern und Farben
  4. 4. Umsetzung in Software und Hardware

Grundprinzip und Bedeutung

Sättigungsarithmetik, auch Saturationsarithmetik, ist eine Arithmetik mit einem festen Werteintervall zwischen Minimum und Maximum. Alle Operationen, etwa Addition und Multiplikation, liefern nur Werte innerhalb dieses Intervalls: Ist ein Ergebnis größer als das Maximum, wird es auf das Maximum gesetzt; liegt es unter dem Minimum, wird es auf das Minimum gesetzt. Der Wert überschreitet die Grenze also nicht, sondern bleibt dort „gesättigt“.

Anders als bei Modulo-Arithmetik wird ein Über- oder Unterlauf nicht in einen Wert auf der anderen Seite des Intervalls umgewandelt. In der abstrakten Mathematik ist diese Arithmetik von untergeordneter Bedeutung, weil Assoziativ- und Distributivgesetz nicht gelten. Für digitale Rechenanlagen und Algorithmen ist sie jedoch wichtig.

Rechenbeispiele und Rechengesetze

Für das Intervall von −100 bis 100 gelten zum Beispiel:

  • 60 + 43 = 100
  • (60 + 43) − 150 = −50
  • 43 − 150 = −100
  • 60 + (43 − 150) = −40
  • 10 × 11 = 100
  • 99 × 99 = 100
  • 30 × (5 − 1) = 100
  • 30 × 5 − 30 × 1 = 70

Die unterschiedlichen Ergebnisse bei umgeklammerten oder umgeformten Rechnungen zeigen: Das Assoziativgesetz und das Distributivgesetz gelten in der Sättigungsarithmetik nicht.

Einsatz bei Bildern und Farben

Eine wichtige Anwendung ist die Bildbearbeitung. Ein Pixel kann als 4-Tupel (R,G,B,A) dargestellt werden. R, G und B stehen für die Rot-, Grün- und Blau-Anteile; ihre ganzzahligen Werte liegen jeweils im Intervall [0,255]. Ein höherer Wert bedeutet eine höhere Farbsättigung. A ist der Alpha-Kanal für die Undurchsichtigkeit: 0 bedeutet vollständig transparent, 255 vollständig solide und undurchsichtig.

Beim Übereinanderlegen von Bildern werden beispielsweise die R-Komponenten entsprechender Pixel addiert. Aus 100 und 50 wird 150. Bei 150 + 200 ergäbe sich jedoch R = 350. Modulo 256 gerechnet wäre das 94; die Kombination wäre damit weniger rot als die Ausgangspixel. Das ist für diesen Anwendungsfall nicht sinnvoll.

Mit Sättigungsarithmetik wird der Rot-Kanal bei 255 begrenzt, denn er kann nicht röter als „total rot“ werden. Daher gilt 150 + 200 = 255 und 255 + x = 255 für alle nicht-negativen x. Entsprechend ergibt 255 − 300 nicht 211 wie bei Modulo-Arithmetik, sondern 0; außerdem gilt 0 − x = 0 für alle nicht-negativen x. Die gleichen Überlegungen gelten auch für G, B und A.

Umsetzung in Software und Hardware

In Software kann zunächst ein Ergebnis WertIn := a + b berechnet werden. Anschließend wird es auf das Intervall begrenzt: Ist WertIn > max, wird WertAus := max gesetzt; ist WertIn < min, wird WertAus := min gesetzt; andernfalls gilt WertAus := WertIn. Der gezeigte Pseudo-Code ist nicht praxistauglich, weil er eine Arithmetik mit hinreichender Genauigkeit voraussetzt, bevor das Ergebnis auf das eigentliche Intervall eingegrenzt wird.

Für die Hardware-Addition von n-Bit-Zahlen kann ein gewöhnlicher n-Bit-Addierer mit einem 2-Wege-n-Bit-Multiplexer verwendet werden. Das Carry-Bit des Addierers steuert den Multiplexer. An einem Eingang liegt das Addierergebnis, am anderen die Konstante 1 in der Breite n Bit. Bei gesetztem Carry-Bit, also bei Überlauf, schaltet der Multiplexer die Konstante durch und das Ergebnis bleibt an der oberen Intervallgrenze. Ohne gesetztes Carry-Bit wird das Addierergebnis ausgegeben.

Weiterlesen