摘要 |
Gamma correction is performed by dividing the total gamma transfer function input value range into a plurality of segments. The source RGB data is then mapped into an associated x-position in a "standard" segment, and gamma correction is performed on the mapped value as if it was initially in that standard segment. The resulting corrected value is then de-mapped back into the original input value segment. Only the portion of the gamma correction curve which is within the "standard" segment is processable by the circuitry. The segments into which the input value range is divided may occupy ratiometrically increasing portions of the input value range, with the high-order half of the range designated as the standard segment. The lowest-order portion may be approximated linearly. Mapping into the standard segment then involves shifting the input value to the left until the highest order logic 1 is in the highest order bit position. A linear approximation of the gamma correction function within the standard segment, possibly with a non-linearity corrector, is then used to determine a gamma-corrected version of each mapped RGB value. These values are then de-mapped back to their original input value segments by multiplying the values by a respective scale factor responsive only to the respective input value segment. |