ence block matching, luma/chroma motion vector matching and methods based on deriving chrominance motion from luminance motion. Shape coding is also known as object coding. The MPEG 4 standard describes how video objects can be described in terms of their shape. Video objects in an image stream make up a video object sequence (VOS) that is made up of video object layers (VOL). The video object layers grade the importance of the coded information and help to support 'graceful degradation' algorithms, sometimes also described as enhancement layer encoding. Video object layers can be described within video object planes (VOP) that can be built into video object groupings (VOG). Shapes can be opaque or transparent and 2D or 3D. They can also be described in terms of their 'texture' (texture coding), in which picture gradients (consisting of AC/DC coefficients) can be combined with horizontal and vertical prediction algorithms to reduce the overall code rate. Most of the remaining algorithmic effort then gets focused on eliminating the 'compression artifacts' - the unwanted effects of compression. These include 'blocking' in which the borders of each macroblock become visible in the reconstructed frame and 'ringing', which creates distortion near the edge of image features. Blocking is reduced by using a low-pass filter. Deringing depends on being able to detect the edges of image features. A 2D filter is then applied to smooth out areas near the edges but with little or no filtering on the edge pixels (which would cause blurring). Finally, there are various error-resilience techniques used to hide the fact that 'the channel' (which for a camera phone includes the radio channel) is highly variable with high and unevenly distributed errors and frame erasures. Error resilience depends on the use of resynchronisation and motion markers, the use of extender header codes, data partitioning and reversible length coding also known as forward decoding/backward decoding, also known as bidirectional coding. User-Centric Softwar