GPU Acceleration in Photoshop CS4

Adobe Photoshop is one of the most ubiquitous image editing programs on the planet, used not only by photo editors, but illustrators, graphic designers, web designers, VFX artists, and many others.  With the last few releases, Adobe has continued to push their most popular product into even more diverse applications, including 3D object support, video frame editing, and now medical imaging.  It would sometimes feel that the basics have been completed and then left dormant with all these new peripheral changes, but there one new set of features in the CS4 release that has the potential to improve the performance of the program in any possible imaging workflow.  This set of features would be the ones based on GPU acceleration from OpenGL supported graphics cards.  My recent review of the new NVIDIA Quadro CX gave me an opportunity to really explore the possibilities that these new features bring to the table.

Since the Quadro CX is one of the fastest professional GPU cards available in the world, combining it with Photoshop’s new GPU acceleration is the best way to highlight the advantages of each.  Photoshop is usually seen as a program for manipulating still images, and while it now has the capability of working with video and 3D models, still images remain its primary focus.  Since computer hardware has advanced so far in the last decade, basic image manipulation can be easily accomplished directly in a modern CPU.  But who wants “basic” when you can instead be fluidly rotating a 442 Megapixel image without any loss in quality, in 32bit floating point color space.  There are a number of new features that center around improving program responsiveness, especially with extremely large images.  When dealing with large images without GPU acceleration, any update to the display, including scrolling and zooming, is presented in a series of tiled segments, as the change in view is processed.  With the new OpenGL based acceleration, most basic changes to view, as well as many other operations are nearly instantaneous.  I believe much of these improvements are made possibe by caching a scaled down copy of the entire image as a texture in the GPU memory.  Anytime a new portion of image that is not currently in the frame buffer is needed, the lower resolution copy is referenced and displayed until the full resolution data is available from the system.  What this presents to the user is a much more fluid interaction with the image, but occasionally at a visibly lower resolution until the system catches up a second or two later.  While this scaled down copy cached as a texture is smaller than the original file, it must be higher resolution than the screen, since zooming to fit to screen is instantaneous, and looks visually perfect.  The new BirdEye view for quickly jumping to a different part of the image utilizes this capability to display the entire image onscreen instantly.

Other new features in Photoshop CS4 that require OpenGL acceleration will benefit work on even regular sized images.  Images viewed at magnification levels that are not even multiples (1/2, 1/4, etc.) are now displayed at much higher quality, as well as being much faster and more fluid, since the preview is being scaled in the graphics card.  You can smoothly zoom to any level instead of the previous default 100%, 50%, 33%, etc. and the image will look perfectly clear.  You can also rotate the previewing plane without permanently effecting the image quality or dimensions, and continue to interact with the image at that angle.  Although it initially seems trivial, after a bit of thought I can conjure up a variety of important but obscure uses for this capability, most of which relate more to art and design than video post-production.  There is also a new pixel grid that is available to clearly dilineating the boundaries between individual pixels at extremely close zoom levels (>600%)  I am honestly not sure why this requires GPU acceleration, but it is unavailable unless you have a supported OpenGL graphics card.  My only complaint about the new functionality and acceleration found in Photoshop CS4 is that Adobe saw fit to specifically skip its implementation in the 64bit version of Windows XP.  Since this is the highest performing version of Windows available, Adobe’s failure to directly support it will cause its users continued frusteration for some time to come.

The only possible relief on the horizon in that regard is that Windows 7 seems to have been fast-tracked by Microsoft due to the Vista issues.  Speaking of future developments, hopefully we will soon be able to display 10bit color from Photoshop onto a Dreamcolor LCD via DisplayPort.  I suspect that this may not be available until CS5, but I am sure it is coming, based on the increasing level of hardware support on products that are now coming to market, with the Quadro CX leading the way.

Leave a Reply

Your email address will not be published.