Thursday, April 4, 2013

ProEXR 1.8

Eagle-eyed Adobe watchers who have read through the list of features in the next version of After Effects have seen that it will include version 1.8 of the ProEXR plug-ins. Yes, such a thing does exist, and I'm releasing it today. The next AE may not ship for a little while, but you can grab these plug-ins now and use them in whichever version you've got, all the way back to CS3.

This is a modest release, befitting a 0.1 version upgrade. The flashiest new feature is found in After Effects, something called channel caching. The quick explanation is that an EXR with many channels will read much faster if you turn it on (go to the Interpret Footage dialog and click the More Options button). More details in this blog post.

Version 1.8 also contains a year's worth of minor bug fixes, optimizations, and other improvements to all the plug-ins in ProEXR. And yet they are completely compatible with the previous versions, so fear not.

The update is free, as always. I recommend you upgrade ASAP.

Enjoy!

How to read an OpenEXR file quickly

Over the past few years I've spent quite a bit of effort figuring out how to read OpenEXR files quickly, particularly files containing many channels. The short answer is that for maximum speed, all the channels in an EXR should be loaded using a single read operation. ProEXR for Photoshop has been doing this for a while; now with the channel cache, After Effects can do it too.

Continue reading for more than any sane person would ever want to know about the channel cache in AE.

Wednesday, January 16, 2013

DCI Converter

When I released a JPEG 2000 plug-in for Premiere that had an option to perform XYZ color space conversions for DCI, I managed to open a little can of worms.

My goal was to match the conversion done in After Effects when using the "DCDM X'Y'Z'(Gamma 2.6) 5900K (by Adobe)" profile, but other programs seem to perform this conversion differently. Rather than debate whether I was doing it right or wrong, I decided the best thing to do was make my code visible and open for commentary and include a document describing the steps I was taking. You can see it here on GitHub.

Because a snippet of color conversion code isn't very interesting by itself, the repository also includes a plug-in for After Effects and Premiere Pro (CS5 and above) that you can download below. It can also convert from XYZ back to RGB, so that will let you view your DCI files properly in Premiere. (If you use this plug-in to convert to XYZ in Premiere, make sure you turn off the XYZ conversion in j2k.)

Update: It has been called to my attention that a step was missing from my conversion process: XYZ normalization. Hooray for open source! You can learn about it in the ReadMe, but a new parameter has been added and I'm leaving it on by default. This means DCI Converter's default settings no longer exactly match Adobe's. I've also spread the change to j2k in Premiere.

Update: Been talking with Adobe, and it's becoming more clear that using the Rec. 709 response curve is not the right choice for most people. According to BT.1886, a professional HDTV broadcast monitor has a simple gamma 2.4. So if you approve the final look of your video on such a monitor, that's the transfer function you should be using. If you approved it on an sRGB computer monitor, than use that curve. For now I'm not going to change the plug-in's defaults, which would introduce some technical issues in AE. We'll still adhere to the original design goal of matching Adobe's profile even as we cast doubt upon it, but I suggest you at least try using gamma 2.4.

Download
Version: 0.8
Date: 27 April 2022
Mac | Win

Wednesday, October 3, 2012

Magic Export for Lightroom


ImageMagick is a swell open source package that can do all manor of things to images, including save them in many different file formats. I was asked for a way to save files out of Lightroom into production-oriented formats like DPX, so I wired ImageMagick into a Lightroom plug-in that you can download for free.

So far it just lets you save into six additional file formats and pick the bit depth. ImageMagick has many more formats and other capabilities that could be added in the future, so let me hear your requests!

Version: 0.5
Date: 11 November 2014
Download
(includes Mac & Win)

Friday, June 22, 2012

DPX Plus

Occasionally I hear an After Effects user asking how they can read a DPX that doesn't conform to AE's expectation of a 10-bit RGB file. The DPX spec allows for 8, 10, 12, or 16-bit images, and also supports alpha channels. Since even After Effects CS6 can't read these files, I decided enough was enough and pushed out a free plug-in, which I'm calling DPX Plus. Fortunately this was a pretty easy project thanks to Patrick Palmer's open source DPX library.

When DPX Plus is installed, it becomes AE's default DPX reader, which is not ideal. I'd rather you had to go out of the way to use DPX Plus, but as it stands you have to manually designate AE's internal reader if you don't want your project to rely on a 3rd party plug-in. If you're worried about this, perhaps just use DPX Plus to convert your DPXs to 16-bit PNG or some other format AE can read natively and then remove the plug-in when done.

Enjoy!

Update: DPX Plus now includes Photoshop and Premiere Pro plug-ins as well.

Update 2: DPX Plus can now write DPX files out of Premiere and After Effects.

Update 3: After Effects CC is now shipping with read support for all the DPX varieties that DPX Plus can read. It can also write specific varieties of 8, 10, 12, and 16-bit DPX. Premiere Pro CC can read 16-bit DPX too.

Version: 0.8
Date: 20 December 2012
Mac | Win

Monday, June 4, 2012

dataWindow and displayWindow in OpenEXR files

All OpenEXR files contain two required attributes, dataWindow and displayWindow. Each gives the coordinates for a rectangle, the former describing the pixels stored in the file and the latter describing the viewer that the pixel data lives in. You can see these and other OpenEXR file attributes by viewing the ProEXR File Description in Photoshop.

For a standard OpenEXR file (including all files written by the ProEXR plug-ins), the dataWindow and displayWindow are the same, so you simply have pixels filling the view as you would for regular image files like JPEG or PNG.

But in some cases the dataWindow and the displayWindow may not match. For example, a 3D program with only a small object in the middle of frame might only have to store a 400x400 image within a full 1920x1080 frame, so the dataWindow will be smaller than the displayWindow.

Or an image may be rendered overscan, with pixels that stretch beyond the area you normally view. These pixels might be used if camera shake is added or to provide real edge pixels to use if the image is blurred. So you could have a 2120x1280 image and a 1920x1080 view.
(images borrowed from the Technical Introduction to OpenEXR on OpenEXR.com)

Neither Photoshop nor After Effects have the notion of a display window from the perspective of a file importer, so ProEXR always reads in the full dataWindow, giving you access to all the pixels in the file. But once the file is imported, you can match the displayWindow by floating the Photoshop or After Effects layer inside a differently sized comp. ProEXR includes a Photoshop script and an After Effects plug-in to do the math for you and set this up automatically and precisely.

In Photoshop, run the "ProEXR displayWindow" script, included with ProEXR. It will scan the ProEXR File Description for the window data and automatically enter it into the dialog for you. If you have this information through some other method, you can enter it manually. When you click OK, the Photoshop canvas will be resized so that the original layer floats properly within it, all the original pixels maintained.

In After Effects with the ProEXR AE plug-in installed, select the EXR file and run File > Create ProEXR Layer Comps. In addition to everything this command usually does, a "display comp" will be created that matches the displayWindow and contains the assemble comp floating within it. A display comp will only be created if the displayWindow is different from the dataWindow.

If you have an image sequence in After Effects where the dataWindow changes every frame (perhaps because a small object is being animated), this presents a problem for After Effects, which usually expects every image in a sequence to be the same size. The easiest thing to do is force your renderer to store the whole frame if possible. Otherwise, the way to deal with it is to import the sequence as individual files—select all the files and uncheck the "OpenEXR Sequence" checkbox in the Import Dialog. Then select all these files in your project, hold down option/alt, and go back to the Comp Creator command which will now be renamed "ProEXR DisplayWindow Comp". The result will be a comp with all the files lined up in time, placed inside the comp appropriately. Use this comp as you would a piece of footage.

Update: ProEXR 1.9 for After Effects will handle displayWindow for you without using the Comp Creator.

If you'd like a sample of displayWindow behavior to experiment with, download the file at the bottom of the fnord OpenEXR page.

Thursday, May 31, 2012

j2k 2.7

Now that I've figured out how to make a Premiere plug-in, someone suggested I add JPEG 2000 support to that program as well. Good idea. So that's what's new in j2k 2.7: a plug-in for Premiere Pro and Media Encoder. Just like in After Effects, the Premiere plug-in supports auto-proxy, so working at a lower resolution in Premiere can dramatically speed up frame load times. It also supports the choose-your-own bit depth and DCI features found in Photoshop and AE.

There are a few other optimizations and minor bug fixes for the other plug-ins too, so everyone should update. Yes, it's free. Enjoy!