Shooting raw with the Google Pixel 6

Thanks for the explanation and your PR against Darktable. That opencamera raw looks very similar to the raws I got from the Pixel 6 and also my old Nokia 7 Plus. It’s fixable but having the gainmap applied automatically probably helps.

I’ve since played with the settings in the Google app as well and found the option where it saves the raw file. Those are indeed a bit nicer. I wonder if there’s any benefit at night with combining multiple layers for noise.

It’s not only the fact they’re claiming calibration under D55, but their color matrices (input profile) are significantly different (and not due to illuminant alone). This is what Google claims:

ColorMatrix1                    : 1.3289 -0.7855 0.0859 -0.2413 1.0662 0.2018 0.029 0.067 0.618
ColorMatrix2                    : 1.3931 -0.7011 -0.136 -0.3008 1.1519 0.1674 -0.0191 0.1523 0.5599
CalibrationIlluminant1          : Standard Light A
CalibrationIlluminant2          : D65

while OpenCamera have this:

ColorMatrix1                    : 1.03125 -0.4921875 -0.15625 -0.96875 1.875 0.0390625 0.0625 -0.2265625 1.1796875
ColorMatrix2                    : 1.5859375 -0.75 -0.2421875 -0.96875 1.875 0.0390625 0.046875 -0.1640625 0.8359375
CalibrationIlluminant1          : D55
CalibrationIlluminant2          : Standard Light A

So even for the same illuminant (A, i.e. tungsten), those are significantly different to cause what you’re seeing. No idea where OpenCamera gets their matrices from.

To make it interesting, it seems Google actually embeds the “Adobe Standard” profile, seems it is identical to Adobe/CameraRaw/CameraProfiles/Adobe Standard\Google Pixel 3 XL Rear Camera Adobe Standard.dcp

This was for your 3 XL, I presume the situation is also similar for the 6?

1 Like

Thanks for sharing these comments (and for the raw file as well). I have also enjoyed the rest of the thread, very informative.

When I get home I will compare your files with those from my googlephone (Pixel 4a) because last time I checked, the raw were very disappointing and I wasnt able to make them any better or comparable to the jpeg. So what I’ve done is to carry one making snapshots etc with my phone but in jpeg mode – yes, they are a bit too harsh and overprocessed but the raws gave me the usual feeling of “why bother” that I always have when playing with tiny sensors.

I should point out that I haven’t tried these gainmaps yet, so maybe I will change my mind?

It would be nice to see examples taken during the day, taken both with opencamera and the default camera app to see how’s the combination lens+sensor has improved from 4a to 6.

For the OpenCamera RAW, the OpenCamera app doesn’t explicitly do anything with the color matrix or illuminant. The camera driver from the hardware vendor provides those, which are included as metadata in the raw image provided by the Android camera API to the app. The app then passes the raw image and metadata to the Android API’s DngCreator, which writes out the DNG containing the single image capture and color matrix.

For the older Pixel phones it was suspected that this color matrix from the camera driver might be invalid. Older versions of the Google Camera app were embedding this matrix, until the app switched to using the Adobe DCP profile instead.

2 Likes

I made a color match icc profile some time ago…it was on a sunny day but introducing that seems to help the open cl shots a lot. I just stumbled on that the other day when messing around as I found in ART that selecting no profile was the best option for the open camera files. I’ll dig it up and share it and you can try it on a few of your open camera pics…it might not work being from my 3a but you could see.

It might be a true hack but for DT try the lens correction for the Huawei P10…it doesn’t distort the image but does a really nice job on that heavy vignette and actually gives a result that looks a lot like having the gain mapping…

1 Like

If the .dcp provides context and further technical help in applying F/OSS tools to the process then I’d say it’s perfectly fine to include here! :wink:

1 Like

As an example of the impact this has:
When Google launched the 4/4XL, they shipped hardware a bit early, so many people (including myself) got hardware the day before official launch.

Google Camera shots taken that day had a bogus/broken embedded profile. A Google Camera app update the next day changed the color profile significantly.

The performance of the computationally-stacked raw is very impressive, although unfortunately it appears to be generated using the legacy HDR+ align-and-merge algorithm, and not Google’s newer multiframe superresolution algorithm. (This is most noticeable if you zoom in beyond the switchover point from the wide to tele lens on a Pixel 4XL - the JPEGs are clearly from MFSR, but the DNGs are just cropped.)

If you have concerns about licensing of Adobe’s DCP profiles, you can alternatively take a shot with GCam, and extract its profile then save it to a DCP for use in shots from other applications. I did this to fix color in my few “day -1” shots from GCam.

I’m not sure if Google ever fixed the color profile in the OS - I’m a bit annoyed they basically haxed around it in GCam.


open_01.dng.xmp (11.4 KB)

Welcome I see this is your first post…well it is common practice for users on this forum to present version of their edits and share the xmp files. Much of the discussion was around my experience with a different pixel and the format created by the native camera app and open camera…this was my interpretation… I suggest this is one of the true assets of the forum so if you are that averse to exchanging files then perhaps choose not to but be aware that others will…

EDIT:

The comment that this reply was written for seems to have disappeared??

On a different note Shout out to @paolod for taking the time and effort to get gainmaps supported by darktable…this will improve the starting point for raw images on many smartphones for those that do process them…

1 Like

Thanks for posting, my try with BW
dartktable 3.8.1

IMG_20220507_221258_03.dng.xmp (19.2 KB)