Looking for Lossless JPEG Batch File Convert

(10 posts)
  • LV_Bill
    Member

    This issue pertains to Jpegs edited non-destructively with Develop in Pro 3.0.

    I just discovered that Batch File Convert does NOT re-create the image on-the-fly (as would be the case with a Raw image).  Instead, it uses the newly Developed output Jpeg, effectively re-compressing it.  Ouch.

    The only alternative that I am aware of to get the job done losslessly, is to perform a manual Save As in Process to Png or Tiff.  Is this the only way to avoid Jpeg re-compression?  Anyone know how to do a mass Save As to preserve the integrity of Developed Jpegs?

    Bill

    p.s.   I know I have the option of converting all the Jpegs to Pngs or Tiffs before launching Develop.  I was hoping to avoid that as Jpegs run the fastest of all the image formats - but only if it can be done losslessly.

    Posted On October 14, 2009 - 05:00 PM (1 month ago) (Permalink to this post)
  • Marc Sabatella
    Moderator

    Not sure how you've determined that batch convert recompresses, and it sort of surprises me that it would, but then, not enough to doubt you :-)

    I suppose if I wanted to get a batch PNG or TIFF output from my original JPEG's, I'd try the following:

    - Batch edit instead of batch convert, with no processing applied.  I know, if batch convert works from the developed jpeg, no reason to expect this wouldn't as well, but worth a shot, because if it did work, t would be a simple three-keystroke process.

    - You could try creating a "null" Develop preset - one that does as close to nothing as you can figure out how to do - and then running Batch Develop with this preset and the option to export to another format while you're at it.  This one I really think will work, if you can get a suitable null preset. Saving a preset seems to require you to select at least on checkbox, so the trick would be selecting one that would not be likely to affect your image.  It's possible the WB setting would be safe if you left it on As Shot, but it's also possible apply this would reset any custom WB you had performed, so I'd test this.  In my case, I'd probably use Perspective with all settings zero, since the chances of me using this particular tool for any other purpose are close to zero.  Or you could see about using Color Profile.

    - One more oddball thought, probably not revelant here but could be some other time: I have occasionally had success tricking ACDSee into doing something for one format that it would normally do for another by simply renaming my files.  For example, ACDSee normally embeds XMP metadata into DNG but generates sidecar XMP files for proprietary RAW files like PEF, and for various reasons, I once wanted ACDSee to generate some sidecars for me on my DNG files.  By renaming my DNG files to end in ".pef" and then trying to perform some otherwise meaningless operation that required updating the XMP metadata, ACDSee was fooled into creating sidecars, but still otherwise continued to correctly.  So who knows what would happen if you renamed your JPEG's to your favorite RAW format extension?  You could have worlds of fun exploring the possibilities (renaming before developing, after, dng versus proprietary, etc)!

    Posted On October 16, 2009 - 05:42 PM (1 month ago) (Permalink to this post)
  • LV_Bill
    Member

    Marc -   "Re-compressed" may have not been the best choice of words to use in my question.  What I should have said was "lossless".  Here's what I was trying to accomplish.

    The workflow is to serially Develop a batch of Jpegs, review the output and return to Develop as many times as necessary.  When I'm satisfied with the entire batch, I want to mass convert the Developed images to Pngs.  This makes the entire Jpeg Develop operation lossless.  How exactly to accomplish the PNG conversion, is my question.

    Naturally, all during the Develop process, Pro3 has been busy creating output Jpeg files.  But, I have no interest in these as they are second generation Jpegs.  And, every Jpeg Save is effectively a re-compression with resulting quality loss.  I need Png's to go into the next step in my workflow which is the EDIT heal/clone step.

    What I was originally hoping for was that Batch File Convert would read the original Jpegs plus the XMP files, and re-create the developed images on-the-fly - just like Develop does.  But, it turned out it doesn't work that way.  Here's another instance where "Treat Jpegs like Raw" sure would have helped.  Any clever ideas?  Or, should I just mass convert the Jpegs to Png's before I start?

    Bill

    p.s.   I loved it when you "fooled" the software into making XMP files for you.  Now, that's my kind of thinking.

    Posted On October 17, 2009 - 05:15 AM (1 month ago) (Permalink to this post)
  • Marc Sabatella
    Moderator

    LV_Bill said:

    The workflow is to serially Develop a batch of Jpegs, review the output and return to Develop as many times as necessary.  When I'm satisfied with the entire batch, I want to mass convert the Developed images to Pngs.  This makes the entire Jpeg Develop operation lossless.  How exactly to accomplish the PNG conversion, is my question.

    Unless I'm missing something - which is entirely possible - that's exactly what I understood in the first palce, and I do think at least one of the options in my original answer should do what you want.  I'd probably go for the Batch Develop using a null preset and the option to export.  Seems that would do exactly what you want, no?  A first generation PNG copy made from the original, with all your existing processing applied as well as the "null" preset.

    Posted On October 19, 2009 - 04:44 AM (1 month ago) (Permalink to this post)
  • LV_Bill
    Member

    Marc -    My mistake was in believing the message I got when I tried your NUL Batch Develop trick:   "Some of the selected Items have been developed or edited.  These changes will be lost.  Do you want to continue?"   After much testing, I found that the message was apparently false.  Nul Batch Develop did seem to preserve prior Develop edits.  Have you seen this same message?

    So, now the big question in my mind is "what exactly is Pro3 using for input for this Export operation?"   Is it really using the original + XMP on the fly?  Or, is it doing what Batch File Convert does and simply reading Developed output file.  My fear is that it's the latter, and this would defeat the lossless goal.  So, how can we test this

    FYI, I proved that Batch File Convert actually uses the developed output Jpegs as input.  I defaced several with black X's while leaving their originals + XMP's alone.  When I clicked Process, I saw the black X's for a second, then the regenerated Orig + XMP image took over.  Exactly as you would expect.  But, when I ran a Batch File Convert, black X's prove that the previous output was used as input.  

    I need a similar test to find out exactly what Batch Develop is Exporting.  For users trying to stay lossless with Jpeg input, this is a very big deal.  Any test ideas?  Got any contacts inside ACD Development?

    Posted On October 19, 2009 - 05:07 PM (1 month ago) (Permalink to this post)
  • Marc Sabatella
    Moderator

    I haven't actually tried this.  The message wouldn't surprise me - the batch develop routine is probably worried that the new preset you are applying will clobber something you had already set - after all, it doesn't know the null preset doesn't do anything.

    As for what is being used for input to the export operation, I suppose it's possible it is using the newly-generated review. That possibility hadn't occurred to me.  Doesn't strike me as likely, but certainly possible.  And also tough to test for - your idea for batch convert is clever but obviously doesn't help here!  I don't have any special connections, sorry, but maybe someone at ACD will see this and comment?

    This isn't a foolproof test, but here's how I'd try it: I'd generate the PNG file both ways (batch convert and null batch develop) and see if you can see a difference.  I'd also try doing a null batch develop of an image that had had no processing of any kind applied, and see if I could tell the difference between the generate png and the original.  I'd do as many of these types of comparisons as it took to convince myself I'd be able to spot the compression artifacts that resulted from doing it the wrong way.

    Posted On October 21, 2009 - 02:44 AM (1 month ago) (Permalink to this post)
  • I'd do as many of these types of comparisons as it took to convince myself I'd be able to spot the compression artifacts that resulted from doing it the wrong way.

    If you have an editor available that uses layers (even humble Photoshop Elements will do fine), then I'd recommend comparing images as layers. Just open both images, copy and paste one on to the other as a new layer, and then set the layer "blending mode" to "Difference".

    Posted On October 21, 2009 - 01:08 PM (1 month ago) (Permalink to this post)
  • LV_Bill
    Member

    John Radcliffe -   Good suggestion.  I had previously done "brute force" Jpeg comparisons with two ACDsee's both set to zoom 5000%.......crude but effective.  My rule when starting with Jpeg source media has always been to keep intermediate working copies as Png's using Save As.  Then, I make a final Jpeg output image.  This keeps things as lossless as possible.   BTW, I love your expression "Chain Editing".  Hope you don't mind if I use it.

    Marc Sabatella -   Update on the question of "What does Nul Batch Develop use as input for its Export?".  First, I did another black X's test, this time defacing the originals, but not the output images.  By watching Nul Batch Develop in action, it appears to do all the developing first, then do all the exporting.  It looks exactly like a Batch Develop with an appended Batch File Convert......not what I was hoping for.

    Also, I sent this question directly to one of the ACD Developers (Erin) who happened to e-mail me with a Canon Raw question.  No reply yet.  Stay tuned.

    Posted On October 21, 2009 - 03:22 PM (1 month ago) (Permalink to this post)
  • BTW, I love your expression "Chain Editing".  Hope you don't mind if I use it.

    Not at all, Bill. They say that imitation is the sincerest form of flattery.

    When I'm obliged to re-edit a Jpeg, I've generally found that the quality of the end result depends on the quality of the original. With a good original (well exposed, in good light, not over-sharpened or compressed too much, etc) a extra save (or two) may not noticeably degrade the final image. But where artefacts already exist (from noise, its attempted reduction, sharpening, heavy Jpeg compression, etc), then those artefacts just attract even more, and a single re-save may make it completely unacceptable.

    Posted On October 22, 2009 - 12:54 PM (4 weeks ago) (Permalink to this post)
  • Erin
    Developer, ACD Systems

    After having a private discussion with Bill, I would like to explain what is happening when using Export in ACDSee.

    When using Export from within Batch Develop, images are created by taking the original image, applying the current develop settings + the settings selected in Batch Develop, and then writing the data to the desired output format (TIFF, PNG).

    There are no unnecessary re-compression steps.

    Erin

    Posted On October 22, 2009 - 10:15 PM (4 weeks ago) (Permalink to this post)

Subscribe to this topic via RSS

Reply

You must log in to post.