In a java image, each pixel is represented by a series of bands. In RGB there is a band for red, green and blue. In CMYK there are bands for cyan, magenta, yellow and black.
There are a few basic classes used in Java2D:
Renderable Layer is a layer that has no specific context and can be run through a series of operations that contain parameters. It can be rendered once is it called upon by some specific context like a screen display or printer. The parameters for filters are editable.
Any object that falls in this layer is expected to adapt to a RenderContext.
Rendered Layer is a layer that does have a specific context. It can also be pulled through a chain of operations, but the operations must be context specific. The parameters for filter are not editable.
RenderableImageOps are filters that operate within the Renderable Layer and must implement RenderableImage as its output will conform to that interface.