Export to .tif introduces artifacts...
Moderators: XnTriq, helmut, xnview
Export to .tif introduces artifacts...
When I open a .jpg and save uncompressed to .tif, I'm getting artifacts in the .tif
Linux Mint 18, XnViewMp .90
1. Original: https://unsplash.com/photos/pHANr-CpbYM
2. Filename: wil-stewart-18242-unsplash.jpg
3. Export to uncompressed .tif (Below: XnViewMP v.90)
Compare: (With ImageMagick http://www.imagemagick.org/)...
$ compare wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash.tif wil_Result_XnviewMP.png
Result of Compare XnViewMp .jpg to .tif: (Red indicates differences);
https://biz.kwamsook.com/ImageMagick/wi ... viewMP.png
When I save as .tif with imagemagick vs. XnViewMP, no differences exist between the .jpg and the exported .tif,
but the exported XnViewMp .tif does.
For example, open .jpg and save as .tif with imagemagick;
$ convert wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash.tif
$ compare wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash.tif wil_Result_XnviewMP.png
Result of Compare using imagemagick's .tif;
https://biz.kwamsook.com/ImageMagick/wil_Result_im6.png
It's clean, no differences indicated in red.
Question: Isn't the export to .tif in XnViewMP from a .jpg supposed to result in an identical unaltered .tif ?
Thank you.
Linux Mint 18, XnViewMp .90
1. Original: https://unsplash.com/photos/pHANr-CpbYM
2. Filename: wil-stewart-18242-unsplash.jpg
3. Export to uncompressed .tif (Below: XnViewMP v.90)
Compare: (With ImageMagick http://www.imagemagick.org/)...
$ compare wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash.tif wil_Result_XnviewMP.png
Result of Compare XnViewMp .jpg to .tif: (Red indicates differences);
https://biz.kwamsook.com/ImageMagick/wi ... viewMP.png
When I save as .tif with imagemagick vs. XnViewMP, no differences exist between the .jpg and the exported .tif,
but the exported XnViewMp .tif does.
For example, open .jpg and save as .tif with imagemagick;
$ convert wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash.tif
$ compare wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash.tif wil_Result_XnviewMP.png
Result of Compare using imagemagick's .tif;
https://biz.kwamsook.com/ImageMagick/wil_Result_im6.png
It's clean, no differences indicated in red.
Question: Isn't the export to .tif in XnViewMP from a .jpg supposed to result in an identical unaltered .tif ?
Thank you.
Re: Export to .tif introduces artifacts...
the difference comes with ICC profile, is it enabled on XnView?
Pierre.
Re: Export to .tif introduces artifacts...
Thanks for your reply Pierre.
General > ICC : Use ICC profile for montor (slower) = off
CMYK Profile used when embedded profile doesn't exist = off
Rendering Intent: Relative colorimetric
I've changed the above parameters... is that correct ?
Also, If I open a .webp image and export as .tif (uncompressed, no profile)... should the 2 images be identical ?
Best regards.
General > ICC : Use ICC profile for montor (slower) = off
CMYK Profile used when embedded profile doesn't exist = off
Rendering Intent: Relative colorimetric
I've changed the above parameters... is that correct ?
Also, If I open a .webp image and export as .tif (uncompressed, no profile)... should the 2 images be identical ?
Best regards.
Re: Export to .tif introduces artifacts...
do you have a change? ImageMagick by default use icc profile?
Pierre.
Re: Export to .tif introduces artifacts...
Maybe I'm doing something incorrect Pierre.
1. Save .jpg image to disk
2. Export .jpg in XnViewMP 0.90 to .tif (settings per image in 1st post)
Is it true that XnViewMP should not have any change in pixels between #1 and #2 above ?
Thank you.
1. Save .jpg image to disk
2. Export .jpg in XnViewMP 0.90 to .tif (settings per image in 1st post)
Is it true that XnViewMP should not have any change in pixels between #1 and #2 above ?
Thank you.
Re: Export to .tif introduces artifacts...
Hello Pierre.
I might have identified the problem.
Problem: Although all options for write export are checked, the profile is not written to the .tif file,
which will cause a difference in exported .jpg to .tif when compared to each other.
Supporting tests;
1. Start With Original: wil-stewart-18242-unsplash.jpg
2. XnViewMP settings for Write (Export) to .tif
3. Export (#1) With XnViewMP to .tif (Same Settings As 1st Example In Original Post), Filename: wil-stewart-18242-unsplash-Export-Xn.tif
4. Check with 'exiftool' If ICC or Profile Was Saved From Export;
Note: Results Were No ICC or Profile Exist
4.a Check again with imagemagick's 'identify' if ICC or Profile Was Saved from Export;
$ $ identify -verbose wil-stewart-18242-unsplash-Export-Xn.tif | grep -i -E "icc|profile"
Note: No ICC or Profile
5. The original Metadata from wil-stewart-18242-unsplash.jpg
I'm wondering if the ICC and/or Profile from the Original .jpg was preserved in the Exported .tif, the comparison
of the .jpg to the Exported .tif would be identical pixels ?
Thank you.
I might have identified the problem.
Problem: Although all options for write export are checked, the profile is not written to the .tif file,
which will cause a difference in exported .jpg to .tif when compared to each other.
Supporting tests;
1. Start With Original: wil-stewart-18242-unsplash.jpg
2. XnViewMP settings for Write (Export) to .tif
3. Export (#1) With XnViewMP to .tif (Same Settings As 1st Example In Original Post), Filename: wil-stewart-18242-unsplash-Export-Xn.tif
4. Check with 'exiftool' If ICC or Profile Was Saved From Export;
Note: Results Were No ICC or Profile Exist
4.a Check again with imagemagick's 'identify' if ICC or Profile Was Saved from Export;
$ $ identify -verbose wil-stewart-18242-unsplash-Export-Xn.tif | grep -i -E "icc|profile"
Note: No ICC or Profile
5. The original Metadata from wil-stewart-18242-unsplash.jpg
I'm wondering if the ICC and/or Profile from the Original .jpg was preserved in the Exported .tif, the comparison
of the .jpg to the Exported .tif would be identical pixels ?
Thank you.
Re: Export to .tif introduces artifacts...
@Pierre: Could it be that HP's “known incorrect sRGB profile” (sRGB IEC61966-2.1) is the culprit (again)?
############ PS ############
JPEGsnoop: “Profile not embedded” & “Profile can't be used independently of embedded”
Stuffware Photo Studio:
ICC Profile Inspector:
I extracted the profile embedded in wil-stewart-18242-unsplash.jpg…
… and compared it to AdobeICCProfiles_end-user.zip\RGB Profiles\sRGB Color Space Profile.icm. They're 100% identical.
- Forum search
- Web search
############ PS ############
- QImage doesn't read JPEGs saved from Photoshop (regression from 5.4 to 5.5)
- Wrong color order in TIFF if color profile used
- Using ImageIO results in pixel errors with Adobe (1998) and sRGB IEC61966-2.1
JPEGsnoop: “Profile not embedded” & “Profile can't be used independently of embedded”
Code: Select all
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00000014
Length = 3160
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 3144 bytes
Preferred CMM Type : 'Lino' (0x4C696E6F)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1998-02-09 06:49:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Microsoft Corporation ('MSFT' (0x4D534654))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'IEC ' (0x49454320)
Device Model : 'sRGB' (0x73524742)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'HP ' (0x48502020)
Profile ID : 0x00000000_00000000_00000000_00000000
Stuffware Photo Studio:
Code: Select all
┌───────────┬────────┬────────┬──────┬───────────────────────────────────────────────┐
│ Signature │ Offset │ Size │ Type │ Value │
├───────────┼────────┼────────┼──────┼───────────────────────────────────────────────┤
│ cprt │ 0x0150 │ 0x0033 │ text │ Copyright (c) 1998 Hewlett-Packard Company │
│ desc │ 0x0184 │ 0x006c │ desc │ sRGB IEC61966-2.1 │
│ wtpt │ 0x01f0 │ 0x0014 │ XYZ │ X:0000f351 Y:00010000 Z:000116cc │
│ bkpt │ 0x0204 │ 0x0014 │ XYZ │ X:00000000 Y:00000000 Z:00000000 │
│ rXYZ │ 0x0218 │ 0x0014 │ XYZ │ X:00006fa2 Y:000038f5 Z:00000390 │
│ gXYZ │ 0x022c │ 0x0014 │ XYZ │ X:00006299 Y:0000b785 Z:000018da │
│ bXYZ │ 0x0240 │ 0x0014 │ XYZ │ X:000024a0 Y:00000f84 Z:0000b6cf │
│ dmnd │ 0x0254 │ 0x0070 │ desc │ IEC http://www.iec.ch │
│ dmdd │ 0x02c4 │ 0x0088 │ desc │ IEC 61966-2.1 Default RGB colour space - sRGB │
│ vued │ 0x034c │ 0x0086 │ desc │ Reference Viewing Condition in IEC61966-2.1 │
│ view │ 0x03d4 │ 0x0024 │ view │ Unknown │
│ lumi │ 0x03f8 │ 0x0014 │ XYZ │ X:004c0956 Y:00500000 Z:00571fe7 │
│ meas │ 0x040c │ 0x0024 │ meas │ Unknown │
│ tech │ 0x0430 │ 0x000c │ sig │ CRT │
│ rTRC │ 0x043c │ 0x080c │ curv │ Unknown │
│ gTRC │ 0x043c │ 0x080c │ curv │ Unknown │
│ bTRC │ 0x043c │ 0x080c │ curv │ Unknown │
└───────────┴────────┴────────┴──────┴───────────────────────────────────────────────┘
ICC Profile Inspector:
I extracted the profile embedded in wil-stewart-18242-unsplash.jpg…
… and compared it to AdobeICCProfiles_end-user.zip\RGB Profiles\sRGB Color Space Profile.icm. They're 100% identical.
Re: Export to .tif introduces artifacts...
if you don't use 'settings>General>Icc>use ICC', the icc profile will be saved in tiff file
Pierre.
Re: Export to .tif introduces artifacts...
Hello again.
Unresolved Problems;
XnViewMP 0.90 Linux export original .jpg to .tif does not export icc profile.
1. Start Image - (1st message in thread): wil-stewart-18242-unsplash.jpg (md5 = 72eed6fa2c4bdbd7ca4d3d28536fb8a3 )
2. XnViewMP Export .jpg to .tif ( All available options checked for export )
Result - wil-stewart-18242-unsplash_Xn-Export-Orig-Jpg.tif (md5 = 7932a14110894b2c26774f968e8a39b6 )
Link (Large File) : https://biz.kwamsook.com/ImageMagick/wi ... ig-Jpg.tif
3. XnviewMP view Exiftool tab;
a) Original Jpeg : https://biz.kwamsook.com/ImageMagick/Xn ... G_Win7.jpg
b) XnViewMP Export to Tif: https://biz.kwamsook.com/ImageMagick/Xn ... _Win7b.png
Questions;
a) How Can I preserve the same exported exif and profile metadata Exporting in XnViewMP from .jpg to .tif ?
b) What is the reason why the image comparison programs in Linux all show non-identical pixels after XnViewMP export from .jpg to .tif ?
c) Should the results of tests I've done in this thread be different in Windows 7 Pro or later, vs. Linux ?
Thank you for your attention to this matter.
Best regards.
Unresolved Problems;
XnViewMP 0.90 Linux export original .jpg to .tif does not export icc profile.
1. Start Image - (1st message in thread): wil-stewart-18242-unsplash.jpg (md5 = 72eed6fa2c4bdbd7ca4d3d28536fb8a3 )
2. XnViewMP Export .jpg to .tif ( All available options checked for export )
Result - wil-stewart-18242-unsplash_Xn-Export-Orig-Jpg.tif (md5 = 7932a14110894b2c26774f968e8a39b6 )
Link (Large File) : https://biz.kwamsook.com/ImageMagick/wi ... ig-Jpg.tif
3. XnviewMP view Exiftool tab;
a) Original Jpeg : https://biz.kwamsook.com/ImageMagick/Xn ... G_Win7.jpg
b) XnViewMP Export to Tif: https://biz.kwamsook.com/ImageMagick/Xn ... _Win7b.png
Questions;
a) How Can I preserve the same exported exif and profile metadata Exporting in XnViewMP from .jpg to .tif ?
b) What is the reason why the image comparison programs in Linux all show non-identical pixels after XnViewMP export from .jpg to .tif ?
c) Should the results of tests I've done in this thread be different in Windows 7 Pro or later, vs. Linux ?
Thank you for your attention to this matter.
Best regards.
Re: Export to .tif introduces artifacts...
Do you get the same result with Save as…, Export…, and Batch convert…, Katamara?
Re: Export to .tif introduces artifacts...
XnTriq,
Per your request;
md5sums:
803994d7e93da5359db11dc7ac514eb5 Compared_Original-Jpeg-to-Tif_BatchConvert.tif
803994d7e93da5359db11dc7ac514eb5 Compared_Original-Jpeg-to-Tif_SaveAs.tif
a57a565a4ac2a962dbfdb2418ab84cb7 Compared_Results-of-SaveAs-to-BatchConvert.tif
322d82fa45d7668238d32734d01a8ecf wil-stewart-18242-unsplash_Xn_BatchConvert.tif
322d82fa45d7668238d32734d01a8ecf wil-stewart-18242-unsplash_Xn_SaveAs.tif
Original Jpeg: 72eed6fa2c4bdbd7ca4d3d28536fb8a3 wil-stewart-18242-unsplash.jpg
https://biz.kwamsook.com/ImageMagick/Co ... splash.jpg
1) XnViewMP "Save As" Original Jpeg Saved To Tiff;
a) Result: https://biz.kwamsook.com/ImageMagick/Co ... SaveAs.tif
b) Compared To Original [Red Colors Are Non Identical Pixels]; https://biz.kwamsook.com/ImageMagick/Co ... SaveAs.tif
2) XnViewMP "Batch Convert" Original Jpeg Saved To Tiff;
a) Result: https://biz.kwamsook.com/ImageMagick/Co ... SaveAs.tif
b) Compared To Original [Red Colors Are Non Identical Pixels]; https://biz.kwamsook.com/ImageMagick/Co ... onvert.tif
Settings a)
Setting b)
3) Compare 1b) to 2b) = Identical [No Red Pixels]: https://biz.kwamsook.com/ImageMagick/Co ... onvert.tif
All methods produce the same results.
Best Regards.
Per your request;
md5sums:
803994d7e93da5359db11dc7ac514eb5 Compared_Original-Jpeg-to-Tif_BatchConvert.tif
803994d7e93da5359db11dc7ac514eb5 Compared_Original-Jpeg-to-Tif_SaveAs.tif
a57a565a4ac2a962dbfdb2418ab84cb7 Compared_Results-of-SaveAs-to-BatchConvert.tif
322d82fa45d7668238d32734d01a8ecf wil-stewart-18242-unsplash_Xn_BatchConvert.tif
322d82fa45d7668238d32734d01a8ecf wil-stewart-18242-unsplash_Xn_SaveAs.tif
Original Jpeg: 72eed6fa2c4bdbd7ca4d3d28536fb8a3 wil-stewart-18242-unsplash.jpg
https://biz.kwamsook.com/ImageMagick/Co ... splash.jpg
1) XnViewMP "Save As" Original Jpeg Saved To Tiff;
a) Result: https://biz.kwamsook.com/ImageMagick/Co ... SaveAs.tif
b) Compared To Original [Red Colors Are Non Identical Pixels]; https://biz.kwamsook.com/ImageMagick/Co ... SaveAs.tif
Code: Select all
$ compare wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash_Xn_SaveAs.tif Compared_Original-Jpeg-to-Tif_SaveAs.tif
2) XnViewMP "Batch Convert" Original Jpeg Saved To Tiff;
a) Result: https://biz.kwamsook.com/ImageMagick/Co ... SaveAs.tif
b) Compared To Original [Red Colors Are Non Identical Pixels]; https://biz.kwamsook.com/ImageMagick/Co ... onvert.tif
Code: Select all
$ compare wil-stewart-18242-unsplash.jpg wil-stewart-18242-unsplash_Xn_BatchConvert.tif Compared_Original-Jpeg-to-Tif_BatchConvert.tif
Settings a)
Setting b)
3) Compare 1b) to 2b) = Identical [No Red Pixels]: https://biz.kwamsook.com/ImageMagick/Co ... onvert.tif
Code: Select all
$ compare Compared_Original-Jpeg-to-Tif_SaveAs.tif Compared_Results-of-SaveAs-to-BatchConvert.tif Compared_Results-of-SaveAs-to-BatchConvert.tif
Best Regards.
Re: Export to .tif introduces artifacts...
Thanks for your detailed tests, Katamara!
Perhaps these differences are the result of errors or gamut clipping during color space conversion from YCbCr (JPEG) to sRGB (TIFF)?
Links of interest:
- SourceForge.net
- Little CMS
- ArgyllCMS
- CodeProject
- Johannes Bildstein: Colorspaces and Conversions
- Photography Stack Exchange
- Losslessly batch convert many JPEGs to sRGB?
It is normally the responsibility of the viewing software to convert from the color-space of the file to that of the display. From what I understand, you want to do the conversion yourself because you use programs that simply assume sRGB as a color-space.
A lossless conversion is not possible for this. On a properly calibrated system you will also make things worse because you will lose accuracy by converting to sRGB and then lose accuracy when converting to your monitor's color-space.
Nconvert can perform a lossy conversion for you:
Assuming all files are in the same directory, for example you can on Linux:Code: Select all
nconvert -icc_out sRGB.icc -o <output-filename> <input-filename>
For this you need nconvert and an icc profile for sRGB.Code: Select all
foreach x (*.jpg) nconvert -icc_out sRGB.icc -o $x:r_srgb.jpg $x
On Windows you will use the FOR statement. I believe there is built-in help to get the proper syntax.
- Losslessly batch convert many JPEGs to sRGB?
Re: Export to .tif introduces artifacts...
XnTiq thanks for your replies.
I am unclear however why you provided many links, the issue has been stated by Pierre...,
I 'should' be able to save an opened .jpg in XnViewMP 0.90 Linux and save by some method to a .tif file with identical pixels...
Unanswered Questions;
a) How Can I preserve the same exported exif and profile metadata Exporting in XnViewMP from .jpg to .tif ?
b) What is the reason why the image comparison programs in Linux all show non-identical pixels after XnViewMP export from .jpg to .tif ?
c) Should the results of tests I've done in this thread be different in Windows 7 Pro or later, vs. Linux ?
Best regards.
I am unclear however why you provided many links, the issue has been stated by Pierre...,
I 'should' be able to save an opened .jpg in XnViewMP 0.90 Linux and save by some method to a .tif file with identical pixels...
I believe there is no conversion from sRGB profile in the original .jpg, to the exported/saved/batch converted .tifPost by Katamara » Tue Aug 07, 2018 10:53 am
Maybe I'm doing something incorrect Pierre.
1. Save .jpg image to disk
2. Export .jpg in XnViewMP 0.90 to .tif (settings per image in 1st post)
Is it true that XnViewMP should not have any change in pixels between #1 and #2 above ?
Thank you.
---------------------------------------------------------------------------------------------------------------
Answer;
Post by xnview » Thu Aug 09, 2018 9:29 am
Katamara wrote: ↑
Tue Aug 07, 2018 10:53 am
Is it true that XnViewMP should not have any change in pixels between #1 and #2 above ?
if you don't use icc profile, yes
Pierre.
Unanswered Questions;
a) How Can I preserve the same exported exif and profile metadata Exporting in XnViewMP from .jpg to .tif ?
b) What is the reason why the image comparison programs in Linux all show non-identical pixels after XnViewMP export from .jpg to .tif ?
c) Should the results of tests I've done in this thread be different in Windows 7 Pro or later, vs. Linux ?
Best regards.
Re: Export to .tif introduces artifacts...
Hi Katamara (-:
The results of your tests have shown that the conversion with XnView MP v0.90 isn't (fully) lossless, although it should be. Your settings seem to be correct. As you've pointed out, “no differences exist between the .jpg and the exported .tif” with ImageMagick. This tells me that we're dealing with a bug.
Software like XnView often incorporates code from 3rd-party libraries:
Sometimes, issues stem from such libraries. Case in point: libpng & sRGB IEC61966-2.1
Unfortunately, I'm far from an expert when it comes to color management, which is why I'm hoping that users with calibrated systems – be it on Linux, Windows or Mac – will eventually share some insight.
PS: Could you please post a screenshot of Tools → Settings… → General → ICC?
The results of your tests have shown that the conversion with XnView MP v0.90 isn't (fully) lossless, although it should be. Your settings seem to be correct. As you've pointed out, “no differences exist between the .jpg and the exported .tif” with ImageMagick. This tells me that we're dealing with a bug.
Software like XnView often incorporates code from 3rd-party libraries:
\XnViewMP\plugins\imageformats\qtiff.dll is based on LibTIFF.XnView MP (Help → About → Credits) wrote:This software is based on:
* libjpeg, http://www.ijg.org
* libjpeg-turbo,http://www.libjpeg-turbo.org/, http://www.libjpeg-turbo.org
* libpng, http://www.libpng.org/pub/png/libpng.html, http://www.libpng.org/pub/png/libpng.html
* Little CMS, http://www.littlecms.com/, http://www.littlecms.com
* zlib, http://www.zlib.net/, http://www.zlib.net
* jxrlib, https://jxrlib.codeplex.com/, https://jxrlib.codeplex.com
RAW function is based on dcraw from Dave Coffin - http://www.cybercom.net/~dcoffin/dcraw/
Sometimes, issues stem from such libraries. Case in point: libpng & sRGB IEC61966-2.1
Unfortunately, I'm far from an expert when it comes to color management, which is why I'm hoping that users with calibrated systems – be it on Linux, Windows or Mac – will eventually share some insight.
PS: Could you please post a screenshot of Tools → Settings… → General → ICC?