NEON (aka Advanced SIMD extension or "MPE" Media Processing Engine) is an ARM instruction set extension, meant for vector processing. Neon is used for multimedia data processing as an optional co-processor (for the ARM Cortex-A series processors).
ARM NEON general-purpose 128-bit SIMD (Single Instruction, Multiple Data) engine processes current and future multimedia formats, accelerating multimedia and signal processing algorithms such as video encode/decode, 2D/3D graphics, gaming, audio and speech processing, image processing, telephony, and sound synthesis by at least 3x the performance of ARMv5 and at least 2x the performance of ARMv6 SIMD. So, its main feature is fast videos playback.
NEON technology works seamlessly with its own independent pipeline and register file. It has 32 registers, 64-bits wide (dual view as 16 registers, 128-bits wide).
ProjectNe10 is ARM's first open source project (from its inception). The Ne10 library is a set of common, useful functions written in both NEON and C (for compatibility). The library was created to allow developers to use NEON optimizations without learning NEON but it also serves as a set of highly optimized NEON intrinsic and assembly code examples for common DSP, arithmetic and image processing routines. The code is available on GitHub.
NEON is currently supported in Android with the next NEON optimizations : Skia library, S32A_D565_Opaque is 5x faster using NEON.