Adobe Pixel Bender – image and video processing technology
Last Friday Adobe Labs released a new version (1.5.1) of Pixel Bender that fixes some issues with bytecode generation for Flash Player. But let’s start with the beginning: the Adobe® Pixel Bender™ technology is “an image and video processing infrastructure with runtime optimization on heterogeneous hardware”.
Pixel Bender technology is embedded in a toolkit that includes the Pixel Bender kernel language and graph language, the Pixel Bender Toolkit IDE, sample filters, and documentation. The Pixel Bender run-time engine is integrated into a number of Adobe applications, allowing you to add your Pixel Bender filters and effects to those already offered in those applications.
The Pixel Bender kernel language is a high-performance graphics programming language intended for image processing algorithms. This language provides several built-in functions that can be used for calculations of many specific cases: Mathematical, Geometric, Region, Sampling, Intrinsics.
The Pixel Bender graph language is an XML-based language that describes the structure of a graph used for combining individual pixel-processing operations (kernels) into more complex filters. It allows you to create more sophisticated image processing effects by connecting multiple Pixel Bender kernels into a processing graph that can be treated as a single filter.
The Pixel Bender Toolkit IDE is an interactive development environment in which you can create, compile and preview Pixel Bender kernels. The IDE allows you to edit and execute programs that use the Pixel Bender image-processing engine.
One important note is that the basic unit of image processing in Pixel Bender is the kernel. The job of a kernel is to produce a single output pixel. In addition to the samples and documentation, there is a command-line utility for converting a kernel file into a byte-code file that can be used in Flash Player 10. Pixel Bender defines three file formats: PBK, PBJ, and PBG.
The technology development offers many advantages such as:
- Low learning curve — Pixel Bender offers a small number of tools that are sufficient to write complex image-processing algorithms. Learning Pixel Bender is easier than learning C/C++ and each application’s plug-in SDK. You do not need to know any graphics shading language or multi-threading APIs.
- Parallel processing — Pixel Bender allows the same filter to run efficiently on different GPU and CPU architectures, including multi-core and multiprocessor systems. It delivers excellent image processing performance in Adobe products.
- Supports all bit-depths — The same kernel runs in 8-bit/16-bit/32-bit within the application.
- Support by multiple Adobe applications — Pixel Bender is integrated with multiple Adobe applications. It allows you to develop filters that are portable among various Adobe products.
You can use Pixel Bender in you graphic development like: filters, fills, blend modes, calculations (the built-in functions from the kernel language).
If you decide to dive into this Adobe technology you can read more in the Pixel Bender Developer’s Guide and download the Toolkit from Adobe Labs page.