Updated: September 4, 2009
These release notes document known issues related to the prerelease versions of the Adobe® Pixel Bender™ Toolkit and the Pixel Bender Plug-in for Adobe Photoshop® CS4.
This is the seventh prerelease of PixelBender and is labeled as version 1.5.1.
Overview
The Adobe Pixel Bender technology delivers a common image and video processing infrastructure which provides automatic runtime optimization on heterogeneous hardware. You can use the Pixel Bender kernel language to implement image processing algorithms (filters or effects) in a hardware-independent manner.
The Pixel Bender Toolkit includes the Pixel Bender kernel language and graph language, the Pixel Bender Toolkit IDE (an integrated development environment for Pixel Bender), sample filters, and documentation.
Installation instructions are detailed below.
System Requirements
The Pixel Bender Plug-in adheres to the same system requirements as Photoshop CS4 on Mac OS and Windows.
The minimum system requirements for the Pixel Bender Toolkit and Pixel Bender Utility are:
Windows
- Pentium 4 or greater Processor
- 512 MB of Memory
- 50 MB of Disk Space
- Windows XP SP2 or greater
Mac OS
- G4/G5/Intel Processor
- 512 MB of Memory
- 80 MB of Disk Space
- OS X 10.4.10 or greater
Supported Graphics Cards
The following table lists the graphics cards supported by the Pixel Bender Toolkit and Pixel Bender Plug-in for Photoshop CS4. The Pixel Bender Toolkit and Plug-in support filter execution on the GPU and the CPU. For correct GPU processing, check the NVidia or ATI website for the latest graphics card drivers.
| Manufacturer | Series | Model Numbers |
|---|---|---|
| NVIDIA | QuadroFX Series | FX 5500 SDI, FX 4500 SDI, FX 5600, FX 5500, FX 4600, FX 4500 X2, FX 4500, FX 4400 (discontinued, replaced by the FX 4500), FX 4000 SDI, FX 3500, FX 3450, FX 1700, FX 1500, FX GO 1400, FX 1400, FX 1300, FX 570, FX 560, FX 550, FX 540, FX 370, FX 350 |
| 200 Series | GTX 295, GTX 285 | |
| 9 Series | 9800, 9600, 9500, 9400, 9300, GeForce 9800 GTX, GeForce 9800 GX2 | |
| 8 Series | GeForce 8800 GTS/GTX/Ultra, GeForce 8600M GT, GeForce 8500 GT | |
| 7 Series | GeForce 7950 GT/GS, GeForce 7900, GeForce 7800, GeForce 7600, GeForce 7300, GeForce 7200 GS, GeForce 7100 | |
| 6 Series | 6800 Ultra, 6800 GT, 6800 GS, 6800, 6800 XT, 6600, 6500, 6200, 6200 TurboCache, 6200 LE, 6100, 6150 | |
| AMD/ATI | Radeon HD4000 series | HD4870, HD4850 |
| Radeon HD3800 series | ||
| Radeon HD2000 Series | HD2900, HD2600, HD2400 | |
| Radeon X1000 Series | X1950, X1900, X1800, X1650, X1600, X1300, "All In Wonder" X1900 (X1900 GPU), "All In Wonder" 2006 PCI Express cards (Based on X1300 GPU) | |
| FireGL | Avivo PCI Express, V8650, V8600, V7600, V7350, V7300, V7200, V5600, V5200, V3600, V3300, V3400 |
Installation and Setup
Pixel Bender Toolkit
To install the Pixel Bender Toolkit in Windows:
- Download the Pixel Bender Toolkit ZIP file
- Unzip the package, navigate to the unzipped location, and run Setup.exe. The Pixel Bender Toolkit files are installed into your Program Files folder under Program Files\Adobe\Adobe Utilities\Pixel Bender Toolkit.
- Launch the Adobe Pixel Bender Toolkit IDE from the Start > All Programs menu.
- Load a Pixel Bender file into the IDE by choosing the File > Open Filter menu or by pressing Ctrl-O.
- To try the filter, click on the Run button on the bottom right corner, underneath the code editor window.
- If the filter requires an image for processing, you will be prompted to open an image file. If the filter has parameters, you will see editing controls in the panel on the right edge of the application.
To install the Pixel Bender Toolkit in Mac OS:
- Download the Pixel Bender Toolkit DMG file
- Double-click on the DMG item to mount the installer virtual disk.
- In that virtual disk, double-click to launch the Setup application. The Pixel Bender Toolkit files are installed into your Applications folder under /Applications/Utilities/Adobe Utilities/Pixel Bender Toolkit.
- Launch the Pixel Bender Toolkit IDE from the Applications Folder: /Applications/Utilities/Adobe Utilities/Pixel Bender Toolkit.
- Load a Pixel Bender file into the IDE by choosing the File > Open Filter menu or by pressing Cmd-O.
- To try the filter, click on the Run button on the bottom right corner underneath the code editor window.
- If the filter requires an image for processing, you will be prompted to open an image file. If the filter has parameters, you will see editing controls in the panel on the right edge of the application.
To uninstall the Pixel Bender Toolkit:
- Windows — Use the Add or Remove Programs helper from the Control Panel.
- Mac OS — Use the uninstaller application for the Pixel Bender Toolkit under /Applications/Utilities/Adobe Installers.
Pixel Bender Plug-in for Photoshop CS4
The Pixel Bender Plug-in installer is provided as an Extension Manager CS4 installer; Extension Manager CS4 is required for proper installation.
To install the Pixel Bender Plug-in in Windows and Mac OS:
- Download the Pixel Bender Plug-in MXP file
Note: If you are running on a 64-bit Windows system, download the 64-bit installer. - Navigate to the download location and double-click on the MXP file.
- Extension Manager CS4 is launched and the Pixel Bender Plug-in is installed once you accept the licensing terms.
Note: The Pixel Bender Plug-in requires Extension Manager CS4. If Extension Manager CS3 is launched when you double-click the MXP file, you need to launch Extension Manager CS4 from the Start > All Programs menu on Windows and Applications/Adobe Extension Manager CS4 on the Mac OS. Select the File > Install Extension menu and navigate to the location of the MXP file.
Note: If you are installing on Windows Vista you’ll need to run the Extension Manager as an Administrator.
- Close Extension Manager CS4 once the installation is completed.
- Review the Pixel Bender Plug-in ReadMe located in the Photoshop CS4 install folder.
- Launch Photoshop CS4.
- Open an image.
-
Choose Filter > Pixel Bender > Pixel Bender Gallery.
The Pixel Bender Gallery is initially populated with Pixel Bender filters that are installed with the Plug-in. If you would like to add other filters, close the plug-in dialog and copy the filter files into the folder \Adobe Photoshop CS4\Pixel Bender Files\. The new filters will then appear in the Pixel Bender Gallery the next time the Plug-in is opened in Photoshop.
The Plug-in supports non-destructive rendering on Smart Objects. To create a Smart Object:
- Open an image.
- Select a layer.
- From the Layer fly-out menu, choose Convert to Smart Object.
The rendering of the filter is stored in a layer separate from the original image, and can be subsequently modified if the filter is available.
To uninstall the Pixel Bender Plug-in on Windows:
- Launch Extension Manager CS4 from Start>All Programs.
- Select Remove button next to Adobe Photoshop CS4 Pixel Bender Plugin.
- Select Yes to continue with uninstall or No to cancel.
- Close Extension Manager CS4 once the un-installation is completed.
To uninstall the Pixel Bender Plug-in on Mac OS:
- Launch Extension Manager CS4 from Applications/Adobe Extension Manager CS4.
- Select Remove button next Adobe Photoshop CS4 Pixel Bender Plugin.
- Select Yes to continue with uninstall or No to cancel.
- Close Extension Manager CS4 once the un-installation is completed.
What's New
This section outlines the changes included in each of the Pixel Bender Toolkit postings.
What’s New in Prerelease 7
Pixel Bender Toolkit Release 7 fixes some issues with bytecode generation for Flash Player.
What's New in Prerelease 6
Pixel Bender Toolkit Release 6 expands on previous releases with the ability to create, compile, and preview Pixel Bender graphs in the Pixel Bender IDE.
What's New in Prerelease 5
Pixel Bender Toolkit Release 5 includes some bug fixes to the Pixel Bender Toolkit IDE as well as the addition of the Pixel Bender Plug-in for Photoshop CS4 and the Pixel Bender Utility. This release contains expanded documentation in a Pixel Bender Developer’s Guide and a Pixel Bender Reference. The Reference now provides a complete specification for the Pixel Bender graph language in addition to the kernel language.
What's New in Prerelease 4
Pixel Bender Toolkit Release 4 included some bug fixes to the Pixel Bender Toolkit IDE as well as the final icons for the Pixel Bender Toolkit application, installer, and files.
What's New in Prerelease 2
Pixel Bender Toolkit Release 2 included the following changes, some of which will break existing Pixel Bender programs.
- Supports both GPU and CPU execution of Pixel Bender filters. A filter will automatically run on the CPU if your graphics card is not supported by the application.
- Supports user preferences and their persistence across application launches. The preferences include:
- Flash Warnings and Errors — with this preference checked, Pixel Bender code will be checked for validity against the subset of Pixel Bender that Flash Player supports.
- Render on Idle — this setting determines if the toolkit should try to render as often as possible. You may choose to turn off this setting to conserve power when running using battery power on a laptop.
- Force filters — this setting forces your Pixel Bender code to run on the CPU even if your graphics card is supported by the application.
- Supports exporting a Pixel Bender filter as Pixel Bender Byte Code for future use with Flash Player 10.
- Installs to a new location on your hard drive. Any pre-existing symlinks or shortcuts created against Pixel Bender Toolkit Preview Release 1 will stop working.
- There have been some changes and additions to the Pixel Bender language. Details of the changes and additions:
- Conditionals are supported in Flash-compatible Pixel Bender - you are now able to use 'if' statements in your Pixel Bender for Flash programs.
- A languageVersion statement is now compulsory in Pixel Bender files - the language version must be the first interpreted line in a Hydra file(comments excepted). This change requires updates to any existing filters. Examples of usage:
<languageVersion : 1.0;> kernel SingleDefringe <languageVersion : 1.0;> library PSBlendModes
-
Images are now parameters — images are now available by name in the kernel scope instead of the evaluatePixel scope. That means that they can be used more easily in the per-frame functions like evaluateDependents and the region reasoning functions.
In addition, the function signatures for the needed() and changed() functions have been simplified. The input_index has been replaced by an imageRef and the domain of definition array is no longer passed in. There is a new built-in function — dod() — that returns the domain of definition of an image. These changes require updates to any existing filters.
Here's an example of the old and new syntax:
kernel OldSyntax { parameter float k; void evaluatePixel( in image4 foreground, in image4 background, out pixel4 result) { pixel4 fp = sample( foreground, outCoord() ); pixel4 bp = sample( background, outCoord() ); result = mix( fp, bp, k ); } region needed( region output_region, int input_index, region input_DOD[]) { if (input_index == imageIndex( background )) return input_DOD[ imageIndex( background ) ]; else return output_region; } } <languageVersion : 1.0;> kernel NewSyntax { parameter float k; input image4 foreground; input image4 background; output pixel4 result; void evaluatePixel() { pixel4 fp = sample( foreground, tCoord() ); pixel4 bp = sample( background, tCoord() ); result = mix( fp, bp, k ); } region needed( region output_region, imageRef input_image) { if( input_image == background ) ) return dod( background ); else return output_region; } } -
There are two new built-in functions in Pixel Bender to support pixel aspect ratio (PAR):
float2 pixelSize(image) float pixelAspectRatio(image)
You can use these functions anywhere inside the kernel, as long as the image parameters to both functions are the declared global input or output image variables. Here are a few examples:
<languageVersion : 1.0;> kernel Test { input image4 src; output float4 dst; void evaluatePixel() { float2 srcSize = pixelSize( src ); float2 dstSize = pixelSize( dst ); float srcPar = pixelAspectRatio( src ); dst = sample( src, outCoord() ); } } ============================= <languageVersion : 1.0;> kernel PixelSize { input image4 src; output pixel4 dst; dependent float2 srcSize; dependent float2 dstSize; dependent float srcPAR; void evaluateDependents() { srcSize = pixelSize(src); dstSize = pixelSize(dst); srcPAR = pixelAspectRatio(src); } void evaluatePixel() { dst = sample( src, outCoord() ); dst.xy = srcSize; float temp = srcPAR; } } ============================= <languageVersion : 1.0;> kernel Test { input image4 src; output float4 dst; region changed(region output_region, imageRef i ) { float2 size = pixelSize(i); float par = pixelAspectRatio(i); return dod( i ); } void evaluatePixel() { dst = sample(src, outCoord()); } }