quantization if too few levels of gray, (e.g. decrease halftone spot size to increase spatial...
Post on 21-Dec-2015
215 views
TRANSCRIPT
Quantization
• If too few levels of gray, (e.g. decrease halftone spot size to increase spatial resolution), then boundaries between adjacent gray levels become apparent. This can happen in color halftoning also.
• See demo at http://www.ctr.columbia.edu/~sfchang/course/dip/demos/Quat.html
Saturation
• Distance from white point
• Adding white desaturates but does not change hue or perceptual brightness.
• HSB model is approximate representative of this. See PhotoShop
Device Independence
• Calibration to standard space– typically CIE XYZ
• Coordinate transforms through standard space
• Gamut mapping
Device independence
• Stone et. al. “Color Gamut Mapping and the Printing of Digital Color Images”, ACM Transactions on Graphics, 7(4) October 1998, pp. 249-292.
• The following slides refer to their techniques.
Device to XYZ
• Sample gamut in device space on 8x8x8 mesh (7x7x7 = 343 cubes).
• Measure (or model) device on mesh.
• Interpolate with trilinear interpolation – for small mesh and reasonable function
XYZ=f(device1, device2, device3) this approximates interpolating to tangent.
XYZ to Device
• Invert function XYZ=f(device1, device2, device3)
– hard to do in general if f is ill behaved– At least make f monotonic by throwing out
distinct points with same XYZ.
• e.g. CMY device:– (continued)
XYZ to CMY
• Invert function XYZ=f(c,m,y)– Given XYZ=[x,y,z] want to find CMY=[c,m,y]
such that f(CMY)=XYZ– Consider X(c,m,y), Y(c,m,y), Z(c,m,y)– A continuous function on a closed region has
max and min on the region boundaries, here the cube vertices. Also, if a continuous function has opposite signs on two boundary points, it is zero somewhere in between.
XYZ to CMY
– Given X0, find [c,m,y] such that f(c,m,y) = X0
– if [ci,mi,yi] [cj,mj,yj] are vertices on a given cube, and U=X(c,m,y)- X0 has opposite sign on them, then it is zero in the cube. Similarly Y, Z. If find such vertices for all of X0,Y0,Z0, then the found cube contains the desired point. (and use interpolation). Doing this recursively will find the desired point if there is one.
Gamut Mapping
• Criteria:– preserve gray axis of original image– maximum luminance contrast– few colors map outside destination gamut– hue, saturation shifts minimized– increase, rather than decrease saturation– do not violate color knowledge, e.g. sky is blue,
fruit colors, skin colors
Gamut Mapping
• Special colors and problems– Highlights: this is a luminance issue so is about
the gray axis– Colors near black: locus of these colors in
image gamut must map into something reasonably similar shape else contrast and saturation is wrong
Gamut Mapping
• Special colors and problems– Highly saturated colors (far from white point):
printers often incapable.– Colors on the image gamut boundary
occupying large parts of the image. Should map inside target gamut else have to project them all on target boundary.
CRT
Printer
Gamuts
Gamut Mapping
• First try: map black points and fill destination gamut.
device gamutimage gamut
translate Bito Bddevice gamut
image gamut
bs (black shift)
translate Bito Bd
scale by csf
device gamutimage gamut
translate Bito Bd
scale by csf rotate
device gamutimage gamut
Gamut Mapping
Xd = Bd + csf R (Xi - Bi)
Bi = image black, Bd = destination black
R = rotation matrix
csf = contrast scaling factor
Xi = image color, Xd = destination color
Problems:Image colors near black outside of destination are
especially bad: loss of detail, hue shifts due to quantization error, ...
shift and scale alongdestination gray
Xd = Bd + csf R (Xi - Bi) + bs (Wd - Bd)
Fig 14a, bs>0, csf small, image gamut maps entirelyinto printer gamut, but contrast is low.
Fig 14b, bs=0, csf large, more contrast, more colors inside printer gamut, butalso more outside.
Saturation control
• “Umbrella transformation”[Rs Gs Bs] = monitor whitepoint
[Rn Gn Bn] new RGB coordinates such that Rs + Gs + Bs = Rn + Gn + Bn
and [Rn Gn Bn] maps inside destination gamut
First map R Rs+G Gs+B Bs to R Rn+G Gn+B Bn Then map into printer coordinatesMakes minor hue changes, but “relative” colors
preserved. Achromatic remain achromatic.
Projective Clipping
• After all, some colors remain outside printer gamut
• Project these onto the gamut surface:– Try a perpendicular projection to nearest
triangular face in printer gamut surface.– If none, find a perpendicular projection to the
nearest edge on the surface– If none, use closest vertex
Projective Clipping
• This is the closest point on the surface to the given color
• Result is continuous projection if gamut is convex, but not else.– Bad: want nearby image colors to be nearby in
destination gamut.
Projective Clipping
• Problems– Printer gamuts have worst concavities near
black point, giving quantization errors.– Nearest point projection uses Euclidean
distance in XYZ space, but that is not perceptually uniform.
• Try CIELAB? SCIELAB? • Keep out of gamut distances small at cost of use of
less than full printer gamut use.