DPX format status
Bob Friesenhahn <[email protected]> Tue, 17 May 2005 23:16:36 -0500 (CDT)
| Newsgroups | gmane.comp.video.graphicsmagick.core |
|---|---|
| Message-ID | <[email protected]> |
As some of you know, I have been working for the past couple of months to support the SMPTE DPX format, which is used uncompressed motion film images. Sometimes these are used for "digital intermediates", which are used to as the master for the final film print (film -> DPX image -> film) and other times they are used to master DVDs. Information on typical equipment which produces these images may be found at "http://www.grassvalley.com/products/film/spirit_4k/" or "http://www.filmlight.ltd.uk/northlight.html". Progress has gone well. The work is just about completed. The latest GraphicsMagick 1.2 snapshot quite possibly supports more of the specification than any other available software. Since the image data is uncompressed, and uses 10, 12, or 16 bits per sample, the images can be quite large. Typical file sizes range from 12MB to 131MB. Most other image formats (except for perhaps TIFF) that GraphicsMagick deals with are compressed so more time is spent decompressing than reading the file data. With DPX, the physical I/O rate to disk is the limiting factor. Images are always growing larger. Typical working image size has been 2K pixels across, but now 4K images are starting to be used, and some equipment can produce 6K images. Experts say that a 4K image is sufficient to capture all the detail a 35mm negative can produce. GraphicsMagick uses memory-mapped access when reading files. In the case of DPX, reading is also "zero copy" access since the data is not double-buffered while reading. When a file is read for the first time, the data rate may be only 6M pixels/second (or 1.2M pixels/second if the file is on a network) but it may read at 20M pixels/second thereafter. Unfortunately, when processing thousands of files, it is more typical for each image to be read one time. Some efficient and portable means needs to be found to cause the data to be read into memory as quickly as possible while allowing the GraphicsMagick read operation to turn it into useful pixels. In other words, the data should be available in RAM shortly before GraphicsMagick accesses it so that the CPU is always busy. The system should discard the data as soon as possible when it is no longer needed so the RAM can be used for the next image. Bob ====================================== Bob Friesenhahn [email protected], http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer, http://www.GraphicsMagick.org/ ------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click