Fujifilm Digital Tele-Converter

Started by greybeard, March 03, 2024, 11:33:19 AM

Previous topic - Next topic

greybeard

This is a follow on to a post in this section from last May.

The most recent Fujifilm cameras with the 40MP sensor (X-Trans CMOS 5 HR) have an added crop function that Fujifilm calls the Digital Tele-Converter.

It has three options: 2.0x, 1.4x and OFF.

Tag 0x104d has been expanded to indicate that the crop mode has been used:
    0x104d => { #forum9634
        Name => 'CropMode',
        Writable => 'int16u',
        PrintConv => { # (perhaps this is a bit mask?)
            0 => 'n/a',
            1 => 'Full-frame on GFX', #IB
            2 => 'Sports Finder Mode', # (mechanical shutter)
            4 => 'Electronic Shutter 1.25x Crop', # (continuous high)
            8 => 'Digital Tele-Conv',
        },
    },

The crop only applies to the jpeg - it essentially create a Medium or Small jpeg file depending on whether 1.4x or 2.0x crop has been applied.

In the jpeg file tag 0x1050 (type 1 - single byte) is set to zero (for jpegs where the digital tele-converter hasn't been used this tag is completely missing).

When shooting raw (either raw+jpeg or raw alone) there are three additional tags:
0x1050 (type 1 - single byte) is set to 1
0x1051 (2 x type 4 long values) indicates the top left of the cropped area
0x1052 (2 x type 4 long values) indicates the centre of the cropped area

The camera (or Fujifilm X Raw Studio) can then recreate the cropped image from the raw file.

Phil Harvey

Sorry for the delay in responding.

I'll add the new value for 0x104d.

I'm confused about 0x1050.  Currently this is decoded as ShutterType.  It has a new meaning now?

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

greybeard

Apologies - don't know what I was thinking - the last part of the post should have been:

In the jpeg file tag 0x1051 (type 1 - single byte) is set to zero (for jpegs where the digital tele-converter hasn't been used this tag is completely missing).

When shooting raw (either raw+jpeg or raw alone) there are three additional tags:
0x1051 (type 1 - single byte) is set to 1
0x1052 (2 x type 4 long values) indicates the top left of the cropped area
0x1053 (2 x type 4 long values) indicates the centre of the cropped area

Phil Harvey

OK, thanks.

I'll fix this in the next release. (12.80 got released with incorrect definitions for 0x1051 and 0x1052)

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

greybeard

Thanks - I saw your update - the change to tag numbers will fix it - perhaps 0x1051 could be something like "Crop Indicator".

BTW - did you see my post about the change to "FujiFilm Focus Zone Area"? (Hopefully the change is clear)

Phil Harvey

Great, I'll make that change.

Yes, I saw that post, thanks.  I haven't forgotten.  I just haven't managed to catch up yet with all the old posts because I wanted to reduce the delay in releasing the last few versions.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

jxl

#6
I did some testing with this on files from a X100VI. I tested on the RAW, the JPEG and the Embedded Preview Image on files with 1.04 and 2.0 crops, and I have some observations:
  • I don't think Tag 0x1053 is the center of the crop. I believe it is the cropped size starting from CropTopLeft(0x1052).
  • Tags 0x1052 and 0x1053 are relative to the Preview Image only.
  • Tags 0x1052 and 0x1053 are NOT present on the JPEG and 0x1051 is 0. I believe 0x1051 is an indicator that Cropping is needed to match the in-camera crop.

I did some more digging and I think I found the same info, but relative to the full Raw image on Tags 0x117, 0x118 and 0x119:
======== ./1_4Crop-JPEG.JPG
[MakerNotes]    Crop Mode                      : Digital Tele-Conv
[MakerNotes]    Crop Tag 1051                  : 0
[Composite]    Image Size                      : 5472x3648
======== ./1_4Crop-RAW.RAF
[MakerNotes]    Crop Mode                      : Digital Tele-Conv
[MakerNotes]    Crop Tag 1051                  : 1
[MakerNotes]    Crop Top Left 1052              : 648 432
[MakerNotes]    Cropped Size 1053              : 3120 2080
[RAF]          Raw Crop Tag 117                : 1
[RAF]          Raw In Camera Crop Top Left 118 : 1128 752
[RAF]          Raw In Camera Cropped Size 119  : 5472 3648
[Composite]    Image Size                      : 7728x5152
======== ./1_4Crop_Preview.jpg
[MakerNotes]    Crop Mode                      : Digital Tele-Conv
[MakerNotes]    Crop Tag 1051                  : 1
[MakerNotes]    Crop Top Left 1052              : 648 432
[MakerNotes]    Cropped Size 1053              : 3120 2080
[Composite]    Image Size                      : 4416x2944
======== ./2_0Crop-JPEG.JPG
[MakerNotes]    Crop Mode                      : Digital Tele-Conv
[MakerNotes]    Crop Tag 1051                  : 0
[Composite]    Image Size                      : 3888x2592
======== ./2_0Crop-Preview.jpg
[MakerNotes]    Crop Mode                      : Digital Tele-Conv
[MakerNotes]    Crop Tag 1051                  : 1
[MakerNotes]    Crop Top Left 1052              : 1104 736
[MakerNotes]    Cropped Size 1053              : 2208 1472
[Composite]    Image Size                      : 4416x2944
======== ./2_0Crop-RAW.RAF
[MakerNotes]    Crop Mode                      : Digital Tele-Conv
[MakerNotes]    Crop Tag 1051                  : 1
[MakerNotes]    Crop Top Left 1052              : 1104 736
[MakerNotes]    Cropped Size 1053              : 2208 1472
[RAF]          Raw Crop Tag 117                : 1
[RAF]          Raw In Camera Crop Top Left 118 : 1920 1280
[RAF]          Raw In Camera Cropped Size 119  : 3888 2592
[Composite]    Image Size                      : 7728x5152

Note that 0x119 matches the ImageSize of the JPEG on each case.

greybeard

I agree:
0x1052 should be CropTopLeft
0x1053 should be CropSize

All coordinates within the jpg makernotes of a FujiFilm RAF file refer to the preview image (this includes face detection, focus point and subject detection) these crop values follow the same rule.

Phil Harvey

Thanks, I'll make this change for 12.81.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

greybeard

CropSize and CropTopLeft look good in 12.81

0x1051 as Cropped Yes/No might be confusing

If no cropping is involved then the tag is missing

If there is cropping and there is a cropped jpeg then 0x1051 exists and is set to 0
If there is cropping and there is a RAF file (uncropped but crop coordinates in the metadata) then 0x1051 exists and is set to 1

So both values of zero and one indicate that there is cropping

Given that there is really no way to explain all that in the tag value then it might be better just to leave it as an Integer rather than transforming to Yes/No

Phil Harvey

Thanks for the clarification.  So 0="Crop Done" and 1="Crop Needed" maybe?  And change the name to Cropping?

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

jxl

What about the same values but for the RAW Image (0x117, 0x118 and 0x119). I feel those are useful since the coordinates are relative to the full size of the image.

greybeard

Quote from: Phil Harvey on March 28, 2024, 08:19:09 PMThanks for the clarification.  So 0="Crop Done" and 1="Crop Needed" maybe?  And change the name to Cropping?

- Phil

I still think leaving the tag name as Cropped is ok and just display the numeric value - any short translation will be confusing - more details could be added to the tag description on the Exiftool web site

Phil Harvey

Ok.  Will do, but I'll change the name to CropFlag.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).