Storing raw images in memory requires storing a color for each pixel that composes the image. In general, the color will be represented using multiple numbers, each with a different meaning. For example, a number for red, another number for green, and another for blue in the RGB pixel format. There are multiple ways to store these different numbers in memory. One method is to store them interleaved, and another is to use a multi-planar format. For the RGB example, a multi-planar format would have all the red values in one section of memory, all the green values in another, and all the blue values in yet another. (In practice, RGB is almost always interleaved, but YUV formats are frequently multi-planar.) Keeping track of multi-planar image formats in code usually requires a different pointer for each plane. Many software libraries that work with raw images will have this in their raw image structures. Each plane may also require a different stride value, so the raw image structures can get fairly complex to handle all of the different cases. Usually these structures will include a format identifier that specifies exactly how many planes the image has and the meaning of each number in those planes.