SHA256
1
0
forked from pool/dcraw

Accepting request 30743 from graphics

Copy from graphics/dcraw based on submit request 30743 from user coolo

OBS-URL: https://build.opensuse.org/request/show/30743
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dcraw?expand=0&rev=9
This commit is contained in:
OBS User autobuild 2010-01-29 15:00:03 +00:00 committed by Git OBS Bridge
parent 8080802bd1
commit 1469ce6cf9
7 changed files with 1070 additions and 1037 deletions

442
README
View File

@ -2,15 +2,14 @@ http://www.cybercom.net/~dcoffin/dcraw/:
[1]Back to Dave Coffin's Home Page [1]Back to Dave Coffin's Home Page
[2]en Esperanto [2]Live free or die / DCRAW / New Hampshire
[3]em Portugues
[4]na russkom
Thanks to everyone who came to [5]Wrocl/aw and [6]Barcelona this year! [3]en Esperanto
__________________________________________________________________ [4]em Portugues
[5]na russkom
Welcome! If you are wondering how to connect your digital camera and Welcome! If you are wondering how to connect your digital camera and
download images to a Linux PC, go to the [7]gPhoto homepage. My download images to a Linux PC, go to the [6]gPhoto homepage. My
software is for processing those images after downloading them. software is for processing those images after downloading them.
If you're downloading JPEG files, you don't need my software at all. If you're downloading JPEG files, you don't need my software at all.
@ -35,14 +34,14 @@ http://www.cybercom.net/~dcoffin/dcraw/:
decodes any raw image from any digital camera on any computer running decodes any raw image from any digital camera on any computer running
any operating system. any operating system.
That program is called [8]dcraw (pronounced "dee-see-raw"), and it's That program is called [7]dcraw (pronounced "dee-see-raw"), and it's
become a standard tool within and without the Open Source world. It's become a standard tool within and without the Open Source world. It's
small (about 8000 lines), portable (standard C libraries only), free small (about 8000 lines), portable (standard C libraries only), free
(both "gratis" and "libre"), and when used skillfully, produces (both "gratis" and "libre"), and when used skillfully, produces
[9]better quality [10]output than the tools provided by the camera [8]better quality [9]output than the tools provided by the camera
vendor. vendor.
[11]Here's my resume. I do freelance consulting related to dcraw, and [10]Here's my resume. I do freelance consulting related to dcraw, and
I'm also available for full-time software work in the Northeast USA. I'm also available for full-time software work in the Northeast USA.
I can be reached by sending e-mail to cybercom dot net with the I can be reached by sending e-mail to cybercom dot net with the
@ -50,9 +49,10 @@ http://www.cybercom.net/~dcoffin/dcraw/:
News and Interviews News and Interviews
[12]Essay for Digital Outback Photo, 25 April 2003 [11]Essay for Digital Outback Photo, 25 April 2003
[13]Article in News.com, 21 April 2005 [12]Article in News.com, 21 April 2005
[14]Interview with Digital Photography Review, 27 April 2005 [13]Interview with Digital Photography Review, 27 April 2005
[14]Dcraw mentioned in Editors Guild magazine, July/August 2005
[15]Interview with Thorsten Schnebeck, 10 June 2006 [15]Interview with Thorsten Schnebeck, 10 June 2006
[16]Interview with Ladinamo, 16 June 2006 [16]Interview with Ladinamo, 16 June 2006
@ -70,7 +70,7 @@ http://www.cybercom.net/~dcoffin/dcraw/:
execute permission. execute permission.
* [17]dcraw.c -- decodes raw photos, extracts thumbnails, and * [17]dcraw.c -- decodes raw photos, extracts thumbnails, and
displays metadata displays metadata
Supports 306 cameras at last count. Compile with "gcc -o dcraw -O4 Supports 336 cameras at last count. Compile with "gcc -o dcraw -O4
dcraw.c -lm -ljpeg -llcms" or "gcc -o dcraw -O4 dcraw.c -lm dcraw.c -lm -ljpeg -llcms" or "gcc -o dcraw -O4 dcraw.c -lm
-DNO_JPEG -DNO_LCMS". Run with no arguments to see a usage message. -DNO_JPEG -DNO_LCMS". Run with no arguments to see a usage message.
Don't complain that 16-bit output is too dark -- read the [18]FAQ! Don't complain that 16-bit output is too dark -- read the [18]FAQ!
@ -165,92 +165,97 @@ http://www.cybercom.net/~dcoffin/dcraw/:
* [64]EasyRaw Studio * [64]EasyRaw Studio
* [65]GraphicConverter by Thorsten Lemke * [65]GraphicConverter by Thorsten Lemke
* [66]GVBox from JCO Consulting * [66]GVBox from JCO Consulting
* [67]ImageLab from Aragon System * [67]HDR Shop
* [68]IrfanView by Irfan Skiljan * [68]ImageLab from Aragon System
* [69]IRIS image processor for astronomers * [69]Imagina by Rob Baker
* [70]KA Photoservice * [70]IrfanView by Irfan Skiljan
* [71]Lightbox by Josh Anon * [71]IRIS image processor for astronomers
* [72]LightZone by Anton Kast * [72]KA Photoservice
* [73]LRViewer by Marc Rochkind * [73]Lightbox by Josh Anon
* [74]MediaRECOVER File Recovery Software * [74]LightZone by Anton Kast
* [75]Mixpo by Mixpo Portfolio Broadcasting Inc. * [75]LRViewer by Marc Rochkind
* [76]Photo Companion by Jeff Moore * [76]MediaRECOVER File Recovery Software
* [77]Photo Jockey by Davie Lee Reed who also wrote a [78]dcraw * [77]Mixpo by Mixpo Portfolio Broadcasting Inc.
* [78]Photo Acute by Almalence
* [79]Photo Companion by Jeff Moore
* [80]Photo Jockey by Davie Lee Reed who also wrote a [81]dcraw
interface for Delphi programmers. interface for Delphi programmers.
* [79]Photo Organizer by Balint Kis * [82]Photo Organizer by Balint Kis
* [80]PhotoRescue from DataRescue * [83]PhotoRescue from DataRescue
* [81]PhotoReviewer by Ben Haller * [84]PhotoReviewer by Ben Haller
* [82]Photovault by Harri Kaimio * [85]Photovault by Harri Kaimio
* [83]Picasa from Google * [86]Picasa from Google
* [84]Picture Arena by Felix Schwarz * [87]Picture Arena by Felix Schwarz
* [85]PixInsight by Pleiades Software * [88]PixInsight by Pleiades Software
* [86]PiXPO by PiXPO Inc. * [89]PiXPO by PiXPO Inc.
* [87]PolyView by Polybytes * [90]PolyView by Polybytes
* [88]PowerShovel-II by Luc Minnebo * [91]PowerShovel-II by Luc Minnebo
* [89]RAW Developer by Iridient Digital * [92]RAW Developer by Iridient Digital
* [90]Raw Magick * [93]Raw Magick
* [91]RawConvert by Jason Swain * [94]RawConvert by Jason Swain
* [92]RawDrop by Frank Siegert * [95]RawDrop by Frank Siegert
* [93]RawShooter from pixmantec * [96]RawShooter from pixmantec
* [94]RawView by Jari Savolainen * [97]RawTherapee by RT Team
* [95]Serif PhotoPlus, PanoramaPlus, and AlbumPlus * [98]RawView by Jari Savolainen
* [96]SharpRaw by Duane DeSieno * [99]Serif PhotoPlus, PanoramaPlus, and AlbumPlus
* [97]SilverFast DCPro by LaserSoft Imaging * [100]SharpRaw by Duane DeSieno
* [98]StudioLine Photo by H&M Software * [101]SilverFast DCPro by LaserSoft Imaging
* [99]ViewIt by Zdzislaw Losvik * [102]StudioLine Photo by H&M Software
* [100]Viewer n5 by Dmitry Fedorov * [103]ViewIt by Zdzislaw Losvik
* [101]VueScan by Ed Hamrick * [104]Viewer n5 by Dmitry Fedorov
* [102]Xara Xtreme Pro * [105]VueScan by Ed Hamrick
* [106]Xara Xtreme Pro
Frequently Asked Questions Frequently Asked Questions
I don't have a C compiler. Could you send me an executable? I don't have a C compiler. Could you send me an executable?
No, but Francisco Montilla provides Mac OS and Windows No, but Francisco Montilla provides Mac OS and Windows
executables [103]on his website. And Benjamin Lebsanft has executables [107]on his website. And Benjamin Lebsanft has
volunteered to maintain [104]Windows executables optimized for volunteered to maintain [108]Windows executables optimized for
specific CPUs. Dcraw has also been ported to [105]Amiga, specific CPUs. Dcraw has also been ported to [109]Amiga,
[106]MorphOS, [107]BeOS, [108]OS/2, and [109]RISC OS. [110]MorphOS, [111]BeOS, [112]OS/2, and [113]RISC OS.
If you're familiar with the DOS command line but don't know C, If you're familiar with the DOS command line but don't know C,
you can install this [110]free C compiler for Windows and you can install this [114]free C compiler for Windows and
compile dcraw.c quite easily. compile dcraw.c quite easily.
Why does dcraw say "Out of memory" in Windows Vista? Why does dcraw say "Out of memory" in Windows Vista?
This is an arbitrary limitation of Windows Vista that will be This is an arbitrary limitation of Windows Vista that will be
fixed in Service Pack 1. Thomas Nicely (of Pentium FDIV fame) fixed in Service Pack 1. Thomas Nicely (of Pentium FDIV fame)
has a [111]page describing the problem. At the moment, the only has a [115]page describing the problem. At the moment, the only
workaround is to build dcraw.exe with a Microsoft compiler workaround is to build dcraw.exe with a Microsoft compiler
instead of a GNU compiler. instead of a GNU compiler.
How can I read the EXIF data (shutter speed, aperture, etc.)? How can I read the EXIF data (shutter speed, aperture, etc.)?
[112]Phil Harvey's ExifTool provides a unified Perl-based EXIF [116]Phil Harvey's ExifTool provides a unified Perl-based EXIF
reader (and editor!) for all cameras and file formats. "dcraw -i reader (and editor!) for all cameras and file formats. "dcraw -i
-v" is much faster, but provides less information. -v" is much faster, but provides less information.
How can I read NEF files from Nikon scanners? How can I read NEF files from Nikon scanners?
Dcraw only supports cameras. Try [113]this simple program for Dcraw only supports cameras. Try [117]this simple program for
scanners. scanners.
How can I read Nikon Dust Off images (NDF files)? How can I read Nikon Dust Off images (NDF files)?
[114]Use this program. [118]Use this program.
Do you have any specifications describing raw photo formats? Do you have any specifications describing raw photo formats?
Yes, but they tend to omit important details, like how to Yes, but they tend to omit important details, like how to
decompress the raw image or decrypt private metadata. See the decompress the raw image or decrypt private metadata. See the
[115]TIFF spec, the [116]TIFF/EP spec, the [117]Adobe DNG spec, [119]TIFF spec, the [120]TIFF/EP spec, the [121]Adobe DNG spec,
the [118]CIFF (CRW) spec, and the [119]X3F spec. the [122]CIFF (CRW) spec, and the [123]X3F spec.
Where can I get an assortment of raw photos to test my software? Where can I get an assortment of raw photos to test my software?
Try [120]raw.fotosite.pl, [121]www.rawsamples.ch, and [122]Glass Try [124]raw.fotosite.pl, [125]www.rawsamples.ch, and [126]Glass
Lantern RAWpository. For the complete dcraw test suite (every Lantern RAWpository. A "full review" at [127]Imaging Resource
camera supported by dcraw), I sell a 2-DVD set for $600 and usually includes a few raw shots. For the complete dcraw test
web-based updates for $300/year. suite (every camera supported by dcraw), I sell a 3-DVD set for
$700 and web-based updates for $300/year.
I'm designing a digital camera. How do I convert its raw photos into I'm designing a digital camera. How do I convert its raw photos into
something that dcraw and Adobe Photoshop can open? something that dcraw and Adobe Photoshop can open?
Download [123]LibTIFF v3.8.2 and apply [124]this patch. Then use Download [128]LibTIFF v3.8.2 and apply [129]this patch. Then use
[125]this C program as a template for converting your photos to [130]this C program as a template for converting your photos to
valid [126]Adobe DNG files. valid [131]Adobe DNG files.
Why are dcraw output images larger than camera JPEGs? Why are dcraw output images larger than camera JPEGs?
Any algorithm that combines each pixel with its neighbors is Any algorithm that combines each pixel with its neighbors is
@ -261,9 +266,8 @@ http://www.cybercom.net/~dcoffin/dcraw/:
I shot a raw photo with no light. Why does it appear all noisy, when it I shot a raw photo with no light. Why does it appear all noisy, when it
should be solid black? should be solid black?
No matter how dark an image is, dcraw's auto-exposure stretches No matter how dark an image is, dcraw's auto-exposure stretches
it so that one percent of its pixels appear white. The "-b" it so that one percent of its pixels appear white. The "-W"
option adjusts this behavior, while "-4" (16-bit output) avoids option avoids this behavior.
it entirely.
I bracket plus/minus two stops, but all five shots look almost the same I bracket plus/minus two stops, but all five shots look almost the same
in dcraw. Why? in dcraw. Why?
@ -272,11 +276,11 @@ http://www.cybercom.net/~dcoffin/dcraw/:
Why is 16-bit output dark / unreadable? Why is 16-bit output dark / unreadable?
If you want pretty pictures straight out of dcraw, stay with If you want pretty pictures straight out of dcraw, stay with
8-bit output. 16-bit linear output is the best raw material for 8-bit output. 16-bit linear output is the best raw material for
professional image editors such as [127]Photoshop and professional image editors such as [132]Photoshop and
[128]CinePaint, but it's no good for most image viewers. [133]CinePaint, but it's no good for most image viewers.
What does the "-f" (four color RGB) option do? What does the "-f" (four color RGB) option do?
If you see patterns like [129]this or [130]this in your output If you see patterns like [134]this or [135]this in your output
images, first try "dcraw -a". If these patterns persist, use images, first try "dcraw -a". If these patterns persist, use
"dcraw -f" to get rid of them. "dcraw -f" to get rid of them.
@ -290,8 +294,8 @@ dcraw -c crw_0001.crw | pnmtopng > crw_0001.png
dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp
dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
I used the [131]Netpbm toolkit in these examples. I used the [136]Netpbm toolkit in these examples.
[132]ImageMagick also does command-line format conversions. Both [137]ImageMagick also does command-line format conversions. Both
are free. are free.
Why don't you implement dcraw as a library? Why don't you implement dcraw as a library?
@ -305,7 +309,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
formats that change every day. formats that change every day.
There's a simpler way to make dcraw modular and thread-safe: Run There's a simpler way to make dcraw modular and thread-safe: Run
it as a separate process. Eric Raymond [133]explains this it as a separate process. Eric Raymond [138]explains this
technique here. technique here.
Why are there false colors along edges within the image? Why are there false colors along edges within the image?
@ -321,7 +325,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
Variable Number of Gradients (VNG), Patterned Pixel Grouping Variable Number of Gradients (VNG), Patterned Pixel Grouping
(PPG), and Adaptive Homogeneity-Directed (AHD). (PPG), and Adaptive Homogeneity-Directed (AHD).
[134]The Foveon X3 Capture chip requires a different kind of [139]The Foveon X3 Capture chip requires a different kind of
interpolation. Unlike CCD arrays, it captures three colors at interpolation. Unlike CCD arrays, it captures three colors at
every pixel location. But the colors are not well separated, so every pixel location. But the colors are not well separated, so
the raw data looks very gray. Much processing is needed to the raw data looks very gray. Much processing is needed to
@ -329,32 +333,48 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
How do I get my camera to take raw photos? How do I get my camera to take raw photos?
For Canon PowerShots that don't output CRW or CR2, you need the For Canon PowerShots that don't output CRW or CR2, you need the
[135]CHDK hack. [140]CHDK hack.
For some Nikon Coolpix cameras, you need to enable a For some Nikon Coolpix cameras, you need to enable a
[136]special "DIAG RAW" mode. [141]special "DIAG RAW" mode.
For Casio cameras, see [137]Maurice Delaney's website or read For Casio cameras, see [142]Maurice Delaney's website or read
[138]this discussion on dpreview. [143]this discussion on dpreview.
For the Minolta DiMAGE G400, G500, G530, or G600, go [139]here For the Minolta DiMAGE G400, G500, G530, or G600, go [144]here
(in Russian) or [140]here (in English). (in Russian) or [145]here (in English).
For the Minolta DiMAGE Z2 and Nikon Coolpix 2100/3100/3700, For the Minolta DiMAGE Z2 and Nikon Coolpix 2100/3100/3700,
[141]go here. [146]go here.
For SMaL cameras, see the [142]camerahacking Forum. For SMaL cameras, see the [147]camerahacking Forum.
For Agfa and Samsung cameras, [148]go here.
For other cameras, refer to the User's Manual. For other cameras, refer to the User's Manual.
Does dcraw work with my camera? Does dcraw work with my camera?
Most likely, yes. If your camera is not on the list below, try Most likely, yes. If your camera is not on the Supported list,
dcraw anyway. If it doesn't work, post a raw image to a website try dcraw anyway. If it doesn't work, post a raw image to a
and e-mail me the URL. If you don't have a website, use website and e-mail me the URL. If you don't have a website, use
[143]Dropload or [144]YouSendIt. [149]YouSendIt, [150]RapidShare, [151]Sendshack, [152]ShareFile,
[153]sendspace, [154]File-Upload, or [155]Megaupload.
Ideally, your sample image should show a standard white card or Before choosing a photo to send, read the next question:
color chart in direct sunlight, with other colors in the
background. Why does dcraw output have a green tint and weak color?
Because dcraw doesn't have a color matrix for your camera model,
it outputs raw color instead of sRGB. To fix this, I need a
photo of a [156]Wolf Faust, [157]Calibr8, [158]CMP,
[159]GretagMacbeth, or other calibrated color chart. Follow this
checklist:
+ Use a real chart, not a printout or screen image.
+ Wait for sunny weather, local noon +- two hours.
+ Carefully brush any dust off the chart.
+ Tilt the chart 90DEG to the camera and 45DEG to the sun to
avoid specular reflections.
+ Set the camera two meters away and use telephoto zoom.
+ Use the lowest ISO setting.
Supported Cameras Supported Cameras
* Adobe Digital Negative (DNG) * Adobe Digital Negative (DNG)
* AgfaPhoto DC-833m
* Apple QuickTake 100 * Apple QuickTake 100
* Apple QuickTake 150 * Apple QuickTake 150
* Apple QuickTake 200 * Apple QuickTake 200
@ -369,6 +389,8 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Canon PowerShot A50 * Canon PowerShot A50
* Canon PowerShot A460 (CHDK hack) * Canon PowerShot A460 (CHDK hack)
* Canon PowerShot A530 (CHDK hack) * Canon PowerShot A530 (CHDK hack)
* Canon PowerShot A570 (CHDK hack)
* Canon PowerShot A590 (CHDK hack)
* Canon PowerShot A610 (CHDK hack) * Canon PowerShot A610 (CHDK hack)
* Canon PowerShot A620 (CHDK hack) * Canon PowerShot A620 (CHDK hack)
* Canon PowerShot A630 (CHDK hack) * Canon PowerShot A630 (CHDK hack)
@ -378,6 +400,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Canon PowerShot A720 IS (CHDK hack) * Canon PowerShot A720 IS (CHDK hack)
* Canon PowerShot Pro70 * Canon PowerShot Pro70
* Canon PowerShot Pro90 IS * Canon PowerShot Pro90 IS
* Canon PowerShot Pro1
* Canon PowerShot G1 * Canon PowerShot G1
* Canon PowerShot G2 * Canon PowerShot G2
* Canon PowerShot G3 * Canon PowerShot G3
@ -385,6 +408,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Canon PowerShot G6 * Canon PowerShot G6
* Canon PowerShot G7 (CHDK hack) * Canon PowerShot G7 (CHDK hack)
* Canon PowerShot G9 * Canon PowerShot G9
* Canon PowerShot G10
* Canon PowerShot S2 IS (CHDK hack) * Canon PowerShot S2 IS (CHDK hack)
* Canon PowerShot S3 IS (CHDK hack) * Canon PowerShot S3 IS (CHDK hack)
* Canon PowerShot S5 IS (CHDK hack) * Canon PowerShot S5 IS (CHDK hack)
@ -395,18 +419,22 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Canon PowerShot S50 * Canon PowerShot S50
* Canon PowerShot S60 * Canon PowerShot S60
* Canon PowerShot S70 * Canon PowerShot S70
* Canon PowerShot Pro1 * Canon PowerShot SX1 IS
* Canon PowerShot SX110 IS (CHDK hack)
* Canon EOS D30 * Canon EOS D30
* Canon EOS D60 * Canon EOS D60
* Canon EOS 5D * Canon EOS 5D
* Canon EOS 5D Mark II
* Canon EOS 10D * Canon EOS 10D
* Canon EOS 20D * Canon EOS 20D
* Canon EOS 30D * Canon EOS 30D
* Canon EOS 40D * Canon EOS 40D
* Canon EOS 50D
* Canon EOS 300D / Digital Rebel / Kiss Digital * Canon EOS 300D / Digital Rebel / Kiss Digital
* Canon EOS 350D / Digital Rebel XT / Kiss Digital N * Canon EOS 350D / Digital Rebel XT / Kiss Digital N
* Canon EOS 400D / Digital Rebel XTi / Kiss Digital X * Canon EOS 400D / Digital Rebel XTi / Kiss Digital X
* Canon EOS 450D / Digital Rebel XSi / Kiss Digital X2 * Canon EOS 450D / Digital Rebel XSi / Kiss Digital X2
* Canon EOS 500D / Digital Rebel T1i / Kiss Digital X3
* Canon EOS 1000D / Digital Rebel XS / Kiss Digital F * Canon EOS 1000D / Digital Rebel XS / Kiss Digital F
* Canon EOS D2000C * Canon EOS D2000C
* Canon EOS-1D * Canon EOS-1D
@ -424,6 +452,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Casio QV-R41 * Casio QV-R41
* Casio QV-R51 * Casio QV-R51
* Casio QV-R61 * Casio QV-R61
* Casio EX-S20
* Casio EX-S100 * Casio EX-S100
* Casio EX-Z4 * Casio EX-Z4
* Casio EX-Z50 * Casio EX-Z50
@ -456,15 +485,16 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Fuji IS-1 * Fuji IS-1
* Hasselblad CFV * Hasselblad CFV
* Hasselblad H3D * Hasselblad H3D
* Hasselblad V96C
* Imacon Ixpress 16-megapixel * Imacon Ixpress 16-megapixel
* Imacon Ixpress 22-megapixel * Imacon Ixpress 22-megapixel
* Imacon Ixpress 39-megapixel * Imacon Ixpress 39-megapixel
* ISG 2020x1520 * ISG 2020x1520
* Kodak DC20 (see [145]Oliver Hartman's page) * Kodak DC20 (see [160]Oliver Hartman's page)
* Kodak DC25 (see [146]Jun-ichiro Itoh's page) * Kodak DC25 (see [161]Jun-ichiro Itoh's page)
* Kodak DC40 * Kodak DC40
* Kodak DC50 * Kodak DC50
* Kodak DC120 (also try [147]kdc2tiff) * Kodak DC120 (also try [162]kdc2tiff)
* Kodak DCS200 * Kodak DCS200
* Kodak DCS315C * Kodak DCS315C
* Kodak DCS330C * Kodak DCS330C
@ -495,9 +525,11 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Kodak C603 * Kodak C603
* Kodak P850 * Kodak P850
* Kodak P880 * Kodak P880
* Kodak Z1015
* Kodak KAI-0340 * Kodak KAI-0340
* Konica KD-400Z * Konica KD-400Z
* Konica KD-510Z * Konica KD-510Z
* Leaf AFi 7
* Leaf Aptus 17 * Leaf Aptus 17
* Leaf Aptus 22 * Leaf Aptus 22
* Leaf Aptus 54S * Leaf Aptus 54S
@ -517,6 +549,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Leica Digilux 3 * Leica Digilux 3
* Leica D-LUX2 * Leica D-LUX2
* Leica D-LUX3 * Leica D-LUX3
* Leica D-LUX4
* Leica V-LUX1 * Leica V-LUX1
* Logitech Fotoman Pixtura * Logitech Fotoman Pixtura
* Mamiya ZD * Mamiya ZD
@ -536,6 +569,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Minolta DiMAGE Z2 * Minolta DiMAGE Z2
* Minolta Alpha/Dynax/Maxxum 5D * Minolta Alpha/Dynax/Maxxum 5D
* Minolta Alpha/Dynax/Maxxum 7D * Minolta Alpha/Dynax/Maxxum 7D
* Motorola PIXL
* Nikon D1 * Nikon D1
* Nikon D1H * Nikon D1H
* Nikon D1X * Nikon D1X
@ -544,6 +578,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Nikon D2X * Nikon D2X
* Nikon D2Xs * Nikon D2Xs
* Nikon D3 * Nikon D3
* Nikon D3X
* Nikon D40 * Nikon D40
* Nikon D40X * Nikon D40X
* Nikon D50 * Nikon D50
@ -551,6 +586,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Nikon D70 * Nikon D70
* Nikon D70s * Nikon D70s
* Nikon D80 * Nikon D80
* Nikon D90
* Nikon D100 * Nikon D100
* Nikon D200 * Nikon D200
* Nikon D300 * Nikon D300
@ -574,6 +610,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Nikon E8400 * Nikon E8400
* Nikon E8700 * Nikon E8700
* Nikon E8800 * Nikon E8800
* Nikon Coolpix P6000
* Nikon Coolpix S6 ("DIAG RAW" hack) * Nikon Coolpix S6 ("DIAG RAW" hack)
* Nokia N95 * Nokia N95
* Olympus C3030Z * Olympus C3030Z
@ -588,6 +625,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Olympus E-3 * Olympus E-3
* Olympus E-10 * Olympus E-10
* Olympus E-20 * Olympus E-20
* Olympus E-30
* Olympus E-300 * Olympus E-300
* Olympus E-330 * Olympus E-330
* Olympus E-400 * Olympus E-400
@ -603,15 +641,21 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Olympus SP510UZ * Olympus SP510UZ
* Olympus SP550UZ * Olympus SP550UZ
* Olympus SP560UZ * Olympus SP560UZ
* Olympus SP570UZ
* Panasonic DMC-FZ8 * Panasonic DMC-FZ8
* Panasonic DMC-FZ18 * Panasonic DMC-FZ18
* Panasonic DMC-FZ28
* Panasonic DMC-FZ30 * Panasonic DMC-FZ30
* Panasonic DMC-FZ50 * Panasonic DMC-FZ50
* Panasonic DMC-FX150
* Panasonic DMC-G1
* Panasonic DMC-GH1
* Panasonic DMC-L1 * Panasonic DMC-L1
* Panasonic DMC-L10 * Panasonic DMC-L10
* Panasonic DMC-LC1 * Panasonic DMC-LC1
* Panasonic DMC-LX1 * Panasonic DMC-LX1
* Panasonic DMC-LX2 * Panasonic DMC-LX2
* Panasonic DMC-LX3
* Pentax *ist D * Pentax *ist D
* Pentax *ist DL * Pentax *ist DL
* Pentax *ist DL2 * Pentax *ist DL2
@ -622,6 +666,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Pentax K100D * Pentax K100D
* Pentax K100D Super * Pentax K100D Super
* Pentax K200D * Pentax K200D
* Pentax K2000/K-m
* Pentax Optio S * Pentax Optio S
* Pentax Optio S4 * Pentax Optio S4
* Pentax Optio 33WR * Pentax Optio 33WR
@ -634,12 +679,15 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Phase One P 25 * Phase One P 25
* Phase One P 30 * Phase One P 30
* Phase One P 45 * Phase One P 45
* Phase One P 45+
* Pixelink A782 * Pixelink A782
* Polaroid x530 * Polaroid x530
* Rollei d530flex * Rollei d530flex
* RoverShot 3320af * RoverShot 3320af
* Samsung GX-1S * Samsung GX-1S
* Samsung GX-10 * Samsung GX-10
* Samsung S85 (hacked)
* Samsung S850 (hacked)
* Sarnoff 4096x5440 * Sarnoff 4096x5440
* Sigma SD9 * Sigma SD9
* Sigma SD10 * Sigma SD10
@ -659,6 +707,7 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
* Sony DSLR-A300 * Sony DSLR-A300
* Sony DSLR-A350 * Sony DSLR-A350
* Sony DSLR-A700 * Sony DSLR-A700
* Sony DSLR-A900
* Sony XCD-SX910CR * Sony XCD-SX910CR
* STV680 VGA * STV680 VGA
__________________________________________________________________ __________________________________________________________________
@ -666,19 +715,19 @@ dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
References References
1. http://www.cybercom.net/~dcoffin/ 1. http://www.cybercom.net/~dcoffin/
2. http://www.cybercom.net/~dcoffin/dcraw/index_eo.html 2. http://www.cybercom.net/~dcoffin/dcraw/plate_large.jpg
3. http://www.cybercom.net/~dcoffin/dcraw/index_pt.html 3. http://www.cybercom.net/~dcoffin/dcraw/index_eo.html
4. http://www.cybercom.net/~dcoffin/dcraw/index_ru.html 4. http://www.cybercom.net/~dcoffin/dcraw/index_pt.html
5. http://www.libregraphicsmeeting.org/2008/ 5. http://www.cybercom.net/~dcoffin/dcraw/index_ru.html
6. http://www.jornadespl.org/ 6. http://gphoto.sourceforge.net/
7. http://gphoto.sourceforge.net/ 7. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
8. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c 8. http://www.insflug.org/raw/
9. http://www.insflug.org/raw/ 9. http://www.aim-dtp.net/aim/digicam/dcraw/
10. http://www.aim-dtp.net/aim/digicam/dcraw/ 10. http://www.cybercom.net/~dcoffin/resume.html
11. http://www.cybercom.net/~dcoffin/resume.html 11. http://www.outbackphoto.com/artofraw/raw_07/essay.html
12. http://www.outbackphoto.com/artofraw/raw_07/essay.html 12. http://news.com.com/Nikons+photo+encryption+reported+broken/2100-1030_3-5679848.html
13. http://news.com.com/Nikons+photo+encryption+reported+broken/2100-1030_3-5679848.html 13. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp
14. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp 14. http://www.editorsguild.com/v2/magazine/archives/0705/cover_story.htm
15. http://www.schnebeck.de/interview-with-dave-coffin-creator-of-dcraw 15. http://www.schnebeck.de/interview-with-dave-coffin-creator-of-dcraw
16. http://www.ladinamo.org/english/raw-format-the-captive-photo.php 16. http://www.ladinamo.org/english/raw-format-the-captive-photo.php
17. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c 17. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
@ -731,84 +780,99 @@ References
64. http://www.easyraw.com/ 64. http://www.easyraw.com/
65. http://www.lemkesoft.com/ 65. http://www.lemkesoft.com/
66. http://jcoconsulting.com/index.asp?Section=GVOCX 66. http://jcoconsulting.com/index.asp?Section=GVOCX
67. http://www.aragonsystem.com/ 67. http://www.hdrshop.com/
68. http://www.irfanview.com/ 68. http://www.aragonsystem.com/
69. http://www.astrosurf.com/buil/us/iris/iris.htm 69. http://www.planetimagina.com/
70. http://www.kaorg.com/photoservice.asp 70. http://www.irfanview.com/
71. http://www.lightboxsoftware.com/ 71. http://www.astrosurf.com/buil/us/iris/iris.htm
72. http://sonic.net/~rat/lightcrafts/ 72. http://www.kaorg.com/photoservice.asp
73. http://imageingester.com/ 73. http://www.lightboxsoftware.com/
74. http://www.mediarecover.com/ 74. http://sonic.net/~rat/lightcrafts/
75. http://www.mixpo.com/ 75. http://imageingester.com/
76. http://www.wildcape.com/ 76. http://www.mediarecover.com/
77. http://photojockey.com/ 77. http://www.mixpo.com/
78. http://smatters.com/dcraw/ 78. http://www.photoacute.com/
79. http://www.k-i-s.net/ 79. http://www.wildcape.com/
80. http://www.datarescue.com/photorescue/ 80. http://photojockey.com/
81. http://www.sticksoftware.com/software/PhotoReviewer.html 81. http://smatters.com/dcraw/
82. http://www.photovault.org/ 82. http://www.k-i-s.net/
83. http://www.picasa.com/ 83. http://www.datarescue.com/photorescue/
84. http://www.picturearena.com/ 84. http://www.sticksoftware.com/software/PhotoReviewer.html
85. http://pleiades-astrophoto.com/ 85. http://www.photovault.org/
86. http://www.pixpo.com/ 86. http://www.picasa.com/
87. http://www.polybytes.com/ 87. http://www.picturearena.com/
88. http://lens.liteserv.com/download/powershovel2.php 88. http://pleiades-astrophoto.com/
89. http://www.iridientdigital.com/ 89. http://www.pixpo.com/
90. http://www.rawmagick.com/ 90. http://www.polybytes.com/
91. http://www.i-graph.com/ 91. http://lens.liteserv.com/download/powershovel2.php
92. http://www.wizards.de/rawdrop 92. http://www.iridientdigital.com/
93. http://www.pixmantec.com/ 93. http://www.rawmagick.com/
94. http://www.through-the-lens.net/ 94. http://www.i-graph.com/
95. http://www.serif.com/ 95. http://www.wizards.de/rawdrop
96. http://www.logicaldesigns.com/ 96. http://www.pixmantec.com/
97. http://www.silverfast.com/ 97. http://www.rawtherapee.com/
98. http://www.studioline.net/ 98. http://www.through-the-lens.net/
99. http://www.hexcat.com/viewit/ 99. http://www.serif.com/
100. http://www.dimin.net/software/viewer/ 100. http://www.logicaldesigns.com/
101. http://www.hamrick.com/ 101. http://www.silverfast.com/
102. http://www.xara.com/products/xtreme/ 102. http://www.studioline.net/
103. http://www.insflug.org/raw/ 103. http://www.hexcat.com/viewit/
104. http://www.lebsanft.org/blog/?tag=dcraw 104. http://www.dimin.net/software/viewer/
105. http://aminet.net/search?query=dcraw 105. http://www.hamrick.com/
106. http://amis.flatrate.ru/dcraw/ 106. http://www.xara.com/products/xtreme/
107. http://www.pidcock.co.uk/beos/index.html 107. http://www.insflug.org/raw/
108. http://hobbes.nmsu.edu/cgi-bin/h-search?key=dcraw 108. http://www.lebsanft.org/?tag=dcraw
109. http://www.riscos.info/unix/indexes/graphics.html 109. http://aminet.net/search?query=dcraw
110. http://www.delorie.com/djgpp/ 110. http://amis.flatrate.ru/dcraw/
111. http://www.trnicely.net/misc/vista.html 111. http://www.pidcock.co.uk/beos/index.html
112. http://www.sno.phy.queensu.ca/~phil/exiftool/ 112. http://hobbes.nmsu.edu/h-search.php?key=dcraw
113. http://www.cybercom.net/~dcoffin/dcraw/scan.c 113. http://www.riscos.info/unix/indexes/graphics.html
114. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c 114. http://www.delorie.com/djgpp/
115. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf 115. http://www.trnicely.net/misc/vista.html
116. http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf 116. http://www.sno.phy.queensu.ca/~phil/exiftool/
117. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf 117. http://www.cybercom.net/~dcoffin/dcraw/scan.c
118. http://xyrion.org/ciff/ 118. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c
119. http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf 119. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
120. http://raw.fotosite.pl/ 120. http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf
121. http://www.rawsamples.ch/ 121. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf
122. http://www.glasslantern.com/RAWpository/ 122. http://xyrion.org/ciff/
123. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz 123. http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf
124. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch 124. http://raw.fotosite.pl/
125. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c 125. http://www.rawsamples.ch/
126. http://www.adobe.com/products/dng/main.html 126. http://www.glasslantern.com/RAWpository/
127. http://www.adobe.com/products/photoshop/main.html 127. http://www.imaging-resource.com/MFR1.HTM
128. http://cinepaint.sourceforge.net/ 128. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz
129. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png 129. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch
130. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png 130. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c
131. http://netpbm.sourceforge.net/ 131. http://www.adobe.com/products/dng/main.html
132. http://www.imagemagick.org/ 132. http://www.adobe.com/products/photoshop/main.html
133. http://www.faqs.org/docs/artu/multiprogramchapter.html 133. http://cinepaint.sourceforge.net/
134. http://www.dpreview.com/news/0202/02021101foveonx3.asp 134. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png
135. http://digicanon.narod.ru/ 135. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png
136. http://e2500.narod.ru/raw_format_e.htm 136. http://netpbm.sourceforge.net/
137. http://www.inweb.ch/foto/rawformat.html 137. http://www.imagemagick.org/
138. http://forums.dpreview.com/forums/read.asp?forum=1015&message=4961779 138. http://www.faqs.org/docs/artu/multiprogramchapter.html
139. http://myfototest.narod.ru/ 139. http://www.dpreview.com/news/0202/02021101foveonx3.asp
140. http://forums.dpreview.com/forums/read.asp?forum=1024&message=11773287 140. http://digicanon.narod.ru/
141. http://tester13.nm.ru/nikon/ 141. http://e2500.narod.ru/raw_format_e.htm
142. http://www.camerahacking.com/ 142. http://www.inweb.ch/foto/rawformat.html
143. http://dropload.com/ 143. http://forums.dpreview.com/forums/read.asp?forum=1015&message=4961779
144. http://yousendit.com/ 144. http://myfototest.narod.ru/
145. http://www.planet-interkom.de/oliver.hartmann/dc20secr.htm 145. http://forums.dpreview.com/forums/read.asp?forum=1024&message=11773287
146. http://www.itojun.org/diary/19961113/index.eng.html 146. http://tester13.nm.ru/nikon/
147. http://kdc2tiff.sourceforge.net/ 147. http://camerahacks.10.forumer.com/
148. http://forums.dpreview.com/forums/read.asp?forum=1001&message=28484239
149. http://yousendit.com/
150. http://rapidshare.com/
151. http://sendshack.com/
152. http://www.sharefile.com/
153. http://www.sendspace.com/
154. http://www.file-upload.eu/
155. http://www.megaupload.com/
156. http://www.targets.coloraid.de/
157. http://www.calibr8.com/Current%20Products/50-Current%20Technology%20/59-ColorCharts?Products=
158. http://www.cmp-color.fr/eng%20digital%20target.html
159. http://www.xrite.com/product_overview.aspx?ID=820
160. http://www.planet-interkom.de/oliver.hartmann/dc20secr.htm
161. http://www.itojun.org/diary/19961113/index.eng.html
162. http://kdc2tiff.sourceforge.net/

View File

@ -1,6 +1,6 @@
--- dcraw.c.orig 2008-02-19 00:30:12.000000000 +0100 --- dcraw.c.omp 2009-07-06 23:28:36.000000000 +0200
+++ dcraw.c 2008-02-19 00:30:44.000000000 +0100 +++ dcraw.c 2009-11-15 16:39:25.856106000 +0100
@@ -212,7 +212,7 @@ @@ -217,7 +217,7 @@
#define BAYER2(row,col) \ #define BAYER2(row,col) \
image[((row) >> shrink)*iwidth + ((col) >> shrink)][fc(row,col)] image[((row) >> shrink)*iwidth + ((col) >> shrink)][fc(row,col)]
@ -9,7 +9,7 @@
{ {
static const char filter[16][16] = static const char filter[16][16] =
{ { 2,1,1,3,2,3,2,0,3,2,3,0,1,2,1,0 }, { { 2,1,1,3,2,3,2,0,3,2,3,0,1,2,1,0 },
@@ -268,7 +268,7 @@ @@ -273,7 +273,7 @@
data_error = 1; data_error = 1;
} }
@ -18,7 +18,7 @@
{ {
if (order == 0x4949) /* "II" means little-endian */ if (order == 0x4949) /* "II" means little-endian */
return s[0] | s[1] << 8; return s[0] | s[1] << 8;
@@ -276,14 +276,14 @@ @@ -281,14 +281,14 @@
return s[0] << 8 | s[1]; return s[0] << 8 | s[1];
} }
@ -35,7 +35,7 @@
{ {
if (order == 0x4949) if (order == 0x4949)
return s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24; return s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24;
@@ -292,26 +292,26 @@ @@ -297,26 +297,26 @@
} }
#define sget4(s) sget4((uchar *)s) #define sget4(s) sget4((uchar *)s)
@ -66,7 +66,7 @@
{ {
union { char c[8]; double d; } u; union { char c[8]; double d; } u;
int i, rev; int i, rev;
@@ -335,7 +335,7 @@ @@ -340,7 +340,7 @@
} }
} }
@ -75,43 +75,25 @@
{ {
if (fread (pixel, 2, count, ifp) < count) derror(); if (fread (pixel, 2, count, ifp) < count) derror();
if ((order == 0x4949) == (ntohs(0x1234) == 0x1234)) if ((order == 0x4949) == (ntohs(0x1234) == 0x1234))
@@ -554,7 +554,7 @@ @@ -883,7 +883,7 @@
getbits(-1) initializes the buffer
getbits(n) where 0 <= n <= 25 returns an n-bit integer
*/
-unsigned CLASS getbits (int nbits)
+static unsigned CLASS getbits (int nbits)
{
static unsigned bitbuf=0;
static int vbits=0, reset=0;
@@ -853,7 +853,7 @@
return zero_after_ff = 1;
}
-int CLASS ljpeg_diff (struct decode *dindex)
+static int CLASS ljpeg_diff (struct decode *dindex)
{
int len, diff;
@@ -868,7 +868,7 @@
return diff; return diff;
} }
-ushort * CLASS ljpeg_row (int jrow, struct jhead *jh) -ushort * CLASS ljpeg_row (int jrow, struct jhead *jh)
+static ushort * CLASS ljpeg_row (int jrow, struct jhead *jh) +static ushort * CLASS ljpeg_row (int jrow, struct jhead *jh)
{ {
int col, c, diff, pred; int col, c, diff, pred, spred=0;
ushort mark=0, *row[3]; ushort mark=0, *row[3];
@@ -904,7 +904,7 @@ @@ -922,7 +922,7 @@
return row[2]; return row[2];
} }
-void CLASS lossless_jpeg_load_raw() -void CLASS lossless_jpeg_load_raw()
+static void CLASS lossless_jpeg_load_raw() +static void CLASS lossless_jpeg_load_raw()
{ {
int jwide, jrow, jcol, val, jidx, i, j, row=0, col=0; int jwide, jrow, jcol, val, jidx, i, j, row=0, col=0, nblack=0;
struct jhead jh; double dark[2] = { 0,0 };
@@ -3753,6 +3753,8 @@ @@ -3770,6 +3770,8 @@
fputc ('\n', stderr); fputc ('\n', stderr);
} }
size = iheight*iwidth; size = iheight*iwidth;
@ -120,7 +102,7 @@
for (i=0; i < size*4; i++) { for (i=0; i < size*4; i++) {
val = image[0][i]; val = image[0][i];
if (!val) continue; if (!val) continue;
@@ -3822,7 +3824,7 @@ @@ -3839,7 +3841,7 @@
if (half_size) filters = 0; if (half_size) filters = 0;
} }
@ -129,26 +111,7 @@
{ {
unsigned row, col, y, x, f, c, sum[8]; unsigned row, col, y, x, f, c, sum[8];
@@ -4110,10 +4112,18 @@ @@ -4127,6 +4129,7 @@
if (verbose) fprintf (stderr,_("AHD interpolation...\n"));
+#pragma omp parallel \
+ default(none) \
+ shared(stderr, cbrt, colors, xyz_cam, rgb_cam, height, width, image, filters) \
+ private(top, left, row, col, pix, rix, lix, c, xyz, val, d, tc, tr, i, j, k, ldiff, abdiff, leps, abeps, hm, buffer, rgb, lab, homo, r)
+ {
+#pragma omp for schedule(static) nowait
for (i=0; i < 0x10000; i++) {
r = i / 65535.0;
cbrt[i] = r > 0.008856 ? pow(r,1/3.0) : 7.787*r + 16/116.0;
}
+
+#pragma omp for
for (i=0; i < 3; i++)
for (j=0; j < colors; j++)
for (xyz_cam[i][j] = k=0; k < 3; k++)
@@ -4126,6 +4136,7 @@
lab = (short (*)[TS][TS][3])(buffer + 12*TS*TS); lab = (short (*)[TS][TS][3])(buffer + 12*TS*TS);
homo = (char (*)[TS][TS]) (buffer + 24*TS*TS); homo = (char (*)[TS][TS]) (buffer + 24*TS*TS);
@ -156,15 +119,7 @@
for (top=2; top < height-5; top += TS-6) for (top=2; top < height-5; top += TS-6)
for (left=2; left < width-5; left += TS-6) { for (left=2; left < width-5; left += TS-6) {
@@ -4219,6 +4230,7 @@ @@ -7994,8 +7997,14 @@
}
}
free (buffer);
+ }
}
#undef TS
@@ -7698,8 +7710,14 @@
_("Converting to %s colorspace...\n"), name[output_color-1]); _("Converting to %s colorspace...\n"), name[output_color-1]);
memset (histogram, 0, sizeof histogram); memset (histogram, 0, sizeof histogram);
@ -181,7 +136,7 @@
if (!raw_color) { if (!raw_color) {
out[0] = out[1] = out[2] = 0; out[0] = out[1] = out[2] = 0;
FORCC { FORCC {
@@ -7711,8 +7729,12 @@ @@ -8007,8 +8016,12 @@
} }
else if (document_mode) else if (document_mode)
img[0] = img[FC(row,col)]; img[0] = img[FC(row,col)];
@ -195,14 +150,3 @@
if (colors == 4 && output_color) colors = 3; if (colors == 4 && output_color) colors = 3;
if (document_mode && filters) colors = 1; if (document_mode && filters) colors = 1;
} }
@@ -7814,6 +7836,10 @@
if (white < val) white = val;
}
white *= 8 / bright;
+#pragma omp parallel for \
+ default(none) \
+ shared(use_gamma, white, lut) \
+ private(i, r, val)
for (i=0; i < 0x10000; i++) {
r = i / white;
val = 256 * ( !use_gamma ? r :

17
dcraw.1
View File

@ -1,7 +1,7 @@
.\" .\"
.\" Man page for dcraw .\" Man page for dcraw
.\" .\"
.\" Copyright (c) 2008 by David Coffin .\" Copyright (c) 2009 by David Coffin
.\" .\"
.\" You may distribute without restriction. .\" You may distribute without restriction.
.\" .\"
@ -9,7 +9,7 @@
.\" dcoffin a cybercom o net .\" dcoffin a cybercom o net
.\" http://www.cybercom.net/~dcoffin .\" http://www.cybercom.net/~dcoffin
.\" .\"
.TH dcraw 1 "February 6, 2008" .TH dcraw 1 "May 14, 2009"
.LO 1 .LO 1
.SH NAME .SH NAME
dcraw - command-line decoder for raw digital photos dcraw - command-line decoder for raw digital photos
@ -213,8 +213,19 @@ Use a fixed white level, ignoring the image histogram.
.B -b brightness .B -b brightness
Divide the white level by this number, 1.0 by default. Divide the white level by this number, 1.0 by default.
.TP .TP
.B -g power toe_slope
Set the gamma curve, by default BT.709
.RB ( -g\ 2.222\ 4.5 ).
If you prefer sRGB gamma, use
.BR -g\ 2.4\ 12.92 .
For a simple power curve, set the toe slope to zero.
.TP
.B -6
Write sixteen bits per sample instead of eight.
.TP
.B -4 .B -4
Write 16-bit linear samples (fixed white level, no gamma). Linear 16-bit, same as
.BR -6\ -W\ -g\ 1\ 1 .
.TP .TP
.B -T .B -T
Write TIFF with metadata instead of PGM/PPM/PAM. Write TIFF with metadata instead of PGM/PPM/PAM.

1363
dcraw.c

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Sun Nov 15 16:39:58 CET 2009 - meissner@suse.de
- rediffed OMP patch to get fuzz-0
-------------------------------------------------------------------
Thu Aug 6 16:11:05 CEST 2009 - postadal@suse.cz
- updated to RCS 1.425
* Support the Phase One P45+, Casio EX-S20, Samsung S850, Agfa DC-833m,
Panasonic DMC-GH1, Canon SX1, SX110,, EOS 500D/Rebel T1i/Kiss X3,
Motorola PIXL, Kodak Z1015, Olympus E-30, Pentax K2000/K-m, Hasselblad V96C,
Samsung S85, Leaf AFi 7, Panasonic FX150 and G1, Canon PowerShot G10,
Panasonics LX3 and FZ28, Nikons D90 and P6000, Canon EOS 50D, Sony A900,
* When sampling dark pixels, don't get too close to the light pixels
* Linearize the Apple Quicktake, Kodak DC40/DC50, and Logitech Fotoman Pixtura
* Added "-g" option for custom gamma curves
* Support 3672 x 2486 images from the Panasonic DMC-FZ50
* Correctly handle negative pixels in split NEF files
* Support GPS-tagged ORFs and anonymous DNGs
* Support the sRAW1 and sRAW2 modes of the Canon EOS 50D and 5D Mark II
- updated omp.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Sep 7 22:40:44 CEST 2008 - postadal@suse.cz Sun Sep 7 22:40:44 CEST 2008 - postadal@suse.cz

View File

@ -1,7 +1,7 @@
# #
# spec file for package dcraw (Version 1.404) # spec file for package dcraw (Version 1.425)
# #
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -20,9 +20,9 @@
Name: dcraw Name: dcraw
BuildRequires: libjpeg-devel liblcms-devel BuildRequires: libjpeg-devel liblcms-devel
Version: 1.404 Version: 1.425
Release: 1 Release: 1
License: Any permissive License: PERMISSIVE-OSI-COMPLIANT
Group: Productivity/Graphics/Convertors Group: Productivity/Graphics/Convertors
Url: http://www.cybercom.net/~dcoffin/dcraw/ Url: http://www.cybercom.net/~dcoffin/dcraw/
Summary: Raw Digital Photo Decoding Summary: Raw Digital Photo Decoding
@ -88,151 +88,3 @@ rm -rf $RPM_BUILD_ROOT
%doc %_mandir/man*/* %doc %_mandir/man*/*
%changelog %changelog
* Mon Sep 08 2008 postadal@suse.cz
- updated to RCS 1.404
* Support the Kodak C603, Nikon D700, Canon EOS 1000D,
Canon PowerShot SD300, and Olympus E-520, SONY A300
* Removed useless code from ppg_interpolate()
* Don't crash on corrupt CR2 files
* Extract the largest JPEG from any X3F file
* Fixed camera WB on the A200
* Set model-specific saturation levels in adobe_coeff()
* Mon Apr 14 2008 postadal@suse.cz
- updated to RCS 1.401
* Copy GPS data into thumbnails and TIFF output
* Support the Apple QuickTake 200, Fuji IS-1, Sony DSLR-A350,
Pentax K20D, Nokia N95, and Canon PowerShots A460, A530, and A650
Canon EOS 450D, Nikon D60, and Fuji S100FS, Olympus E-420
* Copied new matrices from Adobe DNG Converter 4.4
* fixed sRAW support (broke Fuji DNG files)
- added omp.patch to speed up decoding (-fomp disabled by default)
* Tue Feb 12 2008 postadal@suse.cz
- updated to RCS 1.398
* Added the "-P" and "-S" options
* Support the Sony DSLR-A200 and the PowerShots A720 and S5 IS
* Support the Panasonic DMC-L10, added the "-W" option
* Cropped four columns from the Nikon D3
* Abolished the getrat() macro, support the Hasselblad H3D
* Added the Olympus E-3 and adjusted a few maximums
* Support the AVT F-080C, Canon EOS 40D, Canon EOS-1Ds Mark III,
Canon PowerShot G9, Nikon Coolpix S6, Nikon D3, Nikon D300,
Panasonic DMC-FZ18, and Sony DSLR-A700
* Support the new Canon sRAW CR2 format
* Added median filtering after interpolation
* Use fseeko() and ftello() only when needed
* Reject TIFF files with unsupported Compression tags
* Fri Aug 03 2007 postadal@suse.cz
- updated to RCS 1.390
* Added Patterned Pixel Grouping interpolation
* Support 3096x2103 mode for the Panasonic DMC-FZ8.
* Added "-C" option to correct chromatic aberration.
* Support the Hasselblad CFV, Kodak EasyShare C330, and Nikon D40X.
* Use a switch statement for Leica and Panasonic models.
* Output seven new TIFF tags, including ImageDescription and Artist.
* Generated color matrices for the Apple QuickTake and Phase One H 20.
* Copied new matrices from Adobe DNG Converter 4.1.
* Added "-M" option and improved PPG interpolation.
* Reports of corruption in 16-bit linear DNGs were false.
* Support all Lossless JPEG predictors.
* Reject 8-bit grayscale TIFFs.
* Decode raw CINE files, which may exceed 2GB.
* Error-check the "-s" option, and enable "-s all".
* Support camera WB for the Canon EOS-1D and EOS-1DS.
* Use full output range for "-H 2".
* Added color matrix for the Canon PowerShot A640.
* When they differ, use DateTimeOriginal instead of DateTime.
* Thu May 03 2007 postadal@suse.cz
- updated to RCS 1.379
* Offer blended highlights with the "-H 2" option
* Set "shot_order" for ORF and CR2 files
* Added "-A" option to select a rectangle for white balance
* Protect against overflow attacks on malloc() or calloc()
* Nucore raw formats are not used outside Nucore, so drop them
* Support the Canon PowerShots A630 and A640, Panasonic DMC-FZ8,
* Sigma SD14, Apple QuickTake 100 & 150, Mamiya ZD, Casio QV-R41,
Olympus E-410 and Pentax Optio 750Z
- fixed doc permissions
* Wed Apr 25 2007 postadal@suse.cz
- updated to RCS 1.377
* Added a color matrix for the Fuji S6000fd
* Set aspect ratio for the Kodak DC20 and DC25
* Replaced bilateral filter with wavelet denoising
* Fixed incompatibility between "-f" and "-p"
* Fixed strange color casts with the Polaroid x530
* Added Adobe matrices for the Nikon D40 and Pentax K10D
* Found larger JPEG thumbs for Nikon D100,D1H,D1X,D2H,D2X,E5000,E5700
* Support the Canon EOS-1D Mark III, Olympus SP550UZ, Fuji FinePix S5Pro
* Use the "a trous" wavelet transform instead of the JPEG2000 method
* Apply sqrt() to denoise highlights and shadows evenly
* Optimized AHD interpolation to take 22%% less time
* Better detect and reject non-raw TIFFs
- fixed dcraw permission
* Thu Feb 08 2007 postadal@suse.cz
- updated to RCS 1.364
* Built a color matrix for Canon PowerShot S3 IS, Canon PowerShot A610
* Added Olympus SP510UZ, Panasonic DMC-L1, Leica Digilux 3,
Casio EX-Z4, Kodak DCS200, Canon PowerShots A620, S3 IS, Pentax K10D,
Canon PowerShot A610
* Suport Olympus E-400, Sinar 4-shot and Sinar IA file format
* Added "-K" option for dark-frame subtraction
* Get the Olympus black level from the ORF metadata.
* Found a more reliable way to identify 4775936-byte images
* Tue Oct 17 2006 postadal@suse.cz
- updated to RCS 1.353
* added support for Pentax K100D, Nikon D200, D80, E3200,
Canon EOS 400D, Panasonic DMC-LX2, DMC-FZ50
* correctly display long exposure times for CRW files
* added color matrices from Adobe DNG Converter 3.5
* display the focal length of Canon CRW images
* Thu Aug 17 2006 postadal@suse.cz
- updated to RCS 1.340
* improved support for the Olympus E-330
* Wed Aug 02 2006 postadal@suse.cz
- updated to RCS 1.338
* added "-H 2" option for rudimentary highlight recovery
* new "-T" option provides TIFF output with metadata and ICC profile
* replaced "-r" and "-l" options with raw white balance
* added support for Imacon Ixpress 22-Mp, Leaf Aptus 75, Leica D-Lux 2,
Sony DSLR-A100, Minolta DiMAGE G530, Sinar 4080x4080, Samsung GX-1S
* fixed camera WB for Canon EOS 10D, 300D, and clones
* added camera WB for the Kodak DCS Pro SLR models, Imacon Ixpress,
Kodak P850/P880
* Sun Mar 26 2006 postadal@suse.cz
- updated to RCS 1.319
* new color matrix for the Nikon E700, E800, and E950
* new "-D" option to output unscaled raw pixels (totally raw)
* fixed defective pixels and columns in Phase One images
* Fri Feb 10 2006 dmueller@suse.de
- update to RCS 1.315 (#112733)
* Wed Feb 08 2006 dmueller@suse.de
- update to RCS 1.314:
Updated color matrices based on Adobe DNG Converter 3.3.
Added Kodak ProPhoto D65 as an output option.
* Thu Jan 26 2006 sbrabec@suse.cz
- Updated to dcraw v8, RCS 1.313.
- Added simple update_dcraw script.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Wed Jan 11 2006 adrian@suse.de
- add stack protector compiler flag
* Thu Oct 13 2005 postadal@suse.cz
- update to RCS 1.290
* added as default new interpolation algorithm AHD
(Adaptive homogeneity-directed demosaicing algorithm)
* new Bilateral filtering to remove color noises in CIELAB space
- update dcraw.1, fujiturn, dcparse (parse.c)
- removed crwfixdates (fixdates.c) superseded by "dcraw -z"
* Tue Jun 07 2005 adrian@suse.de
- update to RCS 1.263
- compile with -fno-strict-aliasing to avoid compiler errors
* Fri Jun 03 2005 postadal@suse.cz
- Updated to current version on maintainers website.
RCS version 1.262.
* Fri Feb 04 2005 meissner@suse.de
- Updated to current version on maintainers website.
RCS version 1.234.
* Thu Aug 26 2004 sbrabec@suse.cz
- Updated to dcraw RCS version 1.200.
- Added more tools and documentation.
* Wed Jun 16 2004 adrian@suse.de
- initial package of version 1.194

16
parse.c
View File

@ -5,8 +5,8 @@
This program displays raw metadata for all raw photo formats. This program displays raw metadata for all raw photo formats.
It is free for all uses. It is free for all uses.
$Revision: 1.66 $ $Revision: 1.68 $
$Date: 2008/01/19 06:01:47 $ $Date: 2009/03/10 00:58:51 $
*/ */
#include <stdio.h> #include <stdio.h>
@ -239,7 +239,7 @@ void parse_makernote (int base, int level)
fseek (ifp, -10, SEEK_CUR); fseek (ifp, -10, SEEK_CUR);
entries = get2(); entries = get2();
if (entries > 100) return; if (entries > 127) return;
puts(" MakerNote:"); puts(" MakerNote:");
while (entries--) { while (entries--) {
save = ftell(ifp); save = ftell(ifp);
@ -247,8 +247,10 @@ void parse_makernote (int base, int level)
type = get2(); type = get2();
count= get4(); count= get4();
tiff_dump (base, tag, type, count, level); tiff_dump (base, tag, type, count, level);
if ((tag == 0x11 && !strncmp(make,"NIKON",5)) || type == 13) { if ((tag == 0x11 && !strncmp(make,"NIKON",5)) ||
fseek (ifp, get4()+base, SEEK_SET); (tag >> 8 == 0x20 && !strncmp(buf ,"OLYMP",5)) || type == 13) {
if (count == 1)
fseek (ifp, get4()+base, SEEK_SET);
parse_tiff_ifd (base, level+1); parse_tiff_ifd (base, level+1);
} }
if (tag == 0x1d) if (tag == 0x1d)
@ -262,8 +264,6 @@ void parse_makernote (int base, int level)
fread (buf98, sizeof buf98, 1, ifp); fread (buf98, sizeof buf98, 1, ifp);
if (tag == 0xa7) if (tag == 0xa7)
key = fgetc(ifp)^fgetc(ifp)^fgetc(ifp)^fgetc(ifp); key = fgetc(ifp)^fgetc(ifp)^fgetc(ifp)^fgetc(ifp);
if (!strcmp (buf,"OLYMP") && tag >> 8 == 0x20)
parse_tiff_ifd (base, level+1);
if (tag == 0xe01) if (tag == 0xe01)
parse_nikon_capture_note (count); parse_nikon_capture_note (count);
if (tag == 0xb028) { if (tag == 0xb028) {
@ -564,7 +564,7 @@ void parse_riff (int level)
end = ftell(ifp) + size; end = ftell(ifp) + size;
fread (type, 4, 1, ifp); fread (type, 4, 1, ifp);
printf (" type %.4s:\n", type); printf (" type %.4s:\n", type);
while (ftell(ifp) < end) while (ftell(ifp)+7 < end)
parse_riff (level+1); parse_riff (level+1);
} else { } else {
save = ftell(ifp); save = ftell(ifp);