It refers to normed numbers, https://github.com/JuliaMath/FixedPointNumbers.jl. In most image-processing frameworks the value of `white`

(for a grayscale pixel) is representation dependent:

```
white == 255 #= 8-bit camera =# == 65535 #= 16-bit camera =# == 4095 #= 12-bit camera =# == 1.0 #= floating-point representation =#
```

While many people who work with images have gotten used to thinking this way, it’s fair to say it’s rather bad mathematics: I’m not aware of any other domain of computation where the above equalities hold (255 == 1.0, seriously?). It also violates our general expectation that “meaning” is independent of “representation”: just do `convert(Float64, x)`

and suddenly you’re very confused. Particularly for cameras with 10-, 12-, and 14-bit depths, it’s very hard to automatically detect pixel-saturation because the maximum output is less than `typemax(UInt16)`

, unless you always carry around an extra bit of metadata about the camera.

We’ve gone to the trouble to fix this by introducing a set of numbers, the normed numbers, that allow you to represent `1.0`

with an 8-bit number, or a 16-bit number, or the first 10 bits of a 16-bit number, etc. These numbers are just reinterpretations of `UInt8`

, `UInt16`

, etc, but they provide consistent rules of arithmetic in which they behave like their floating-point cousins. Consequently, they fix image mathematics, and `white`

*always* means 1.0 no matter with what precision you choose to represent it.