| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | 数字 | 記号 | ||
桁溢れした時には、その飽和点を返す演算のこと。
ディジタル量の演算において、演算結果がオーバーフローする場合、自動的に値を最小値〜最大値の範囲に修正する機能をもった演算。
例えば16ビットで考えると、数値は0〜0xFFFFまでありうるが、0xFFFFに1を加えても溢れることはなく飽和点である0xFFFFを返す。このような加算を飽和加算という。
画像処理や音声処理では、加算を続けて飽和時には飽和点に戻すような処理が求められる。この飽和演算は、それを自動的に行なってくれる演算機能である。
たとえば、画面の輝度を上げる(下げる)処理の場合、一定以上の明るさでは真っ白(暗さでは真っ黒)より明るさが変わることはない。そういった上限(下限)付きの処理として、よく使われている。
DSPなどでは一般的な演算である。
最近ではx86系プロセッサーでも、マルチメディア命令セットにこのような演算が存在する。MMXなどがある。
たとえばMMXの飽和加算/減算の場合、次のような命令がある。
演算結果が127を超える場合は127に、-128を下回る場合は-128に丸め込む。
演算結果が32767を超える場合は32767に、-32768を下回る場合は-32768に丸め込む。
演算結果が255を超える場合は255に、0を下回る場合は0に丸め込む。
演算結果が65535を超える場合は65535に、0を下回る場合は0に丸め込む。
飽和時には返す値を飽和点に戻す処理が必要となる。
このため、それを行なわない演算(ラップアラウンド)よりも処理が遅くなりがちである。
CやC++などの場合、標準では飽和演算の関数や演算子が用意されていないので、マルチメディア命令の飽和演算命令を使うかどうかは、コンパイラー次第である。
全自動で飽和処理を判定するようなコンパイラーもあるが、うまく判定して処理を最適化できるかどうかもまたコンパイラー次第である。
この最適化技術に関連して、飽和演算の計算部分を自動判定するロジックは、特許となっているものもある。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます