8ビットピクセルを処理するために、情報を失うことなくガンマ補正などを行うには、通常、値をアップサンプリングし、16ビットなどで処理してから、8ビットにダウンサンプリングします。
さて、これは私にとっては少し新しい分野ですので、間違った用語などを許してください。
私のニーズのために、私は「非標準」Q15で作業することを選択しました。ここでは、範囲の上半分(0.0-1.0)のみを使用し、0x8000は-1.0ではなく1.0を表します。これにより、Cでの計算がはるかに簡単になります。
しかし、SSSE3で問題が発生しました。Q15の数値を乗算するPMULHRSW命令がありますが、Q15の「標準」範囲は[-1,1-2⁻¹⁵]であるため、(my)0x8000(1.0)に0x4000(0.5)を乗算すると0xC000(- 0.5)、0x8000は-1であると見なすため。これはかなり迷惑です。
私は何が間違っているのですか?ピクセル値を0000〜7FFFの範囲に保つ必要がありますか?この種の固定点フォーマットであるという目的を打ち負かしませんか?これを回避する方法はありますか?多分いくつかのトリック?
Q15には、これらすべてについて論じているある種の決定的な論文がありますか?