Photoshop: A few enhacement tips

  • 1
  • Idea
  • Updated 7 years ago
I'm not going to create 9 topics, so I gather them here from what I find are the most urgent features PS needs. At least in my workflow:

-Dark GUI, or at least option for it.
-As for CS3 (what I use), JPEG decoding is wrong.
-More resizer Kernels, (lanczos, spline, etc)
-Dithering method for when going back to 8 bit from higher bitdepth.
-Ability to default save options, and screen mode (I have this last one in a script event, but still...)
-Layer styles; change default of stroke and glow.
-Faster brush resize alternatives (with left hand on the keyboard, or click-n-drag aka zbrush style)
-Eyedropper tool; option to bypass adjustment levels
-Antialiasing filters
-More working options (filters too) enabled when over 8bit depth.
Photo of pedro picapiedra

pedro picapiedra

  • 26 Posts
  • 0 Reply Likes

Posted 7 years ago

  • 1
Photo of Jeffrey Tranberry

Jeffrey Tranberry, Sr. Product Manager, Digital Imaging

  • 14049 Posts
  • 1735 Reply Likes
It's better to list these as individual requests to allow people to comment and vote on. Also, be sure to look for duplicate requests.

The following items are already implemented in CS5:

1. Layer styles; change default of stroke and glow
2. Faster brush resize alternatives (with left hand on the keyboard, or click-n-drag aka zbrush style)

The following topics are already been asked for:

http://feedback.photoshop.com/photosh...

http://feedback.photoshop.com/photosh...

http://feedback.photoshop.com/photosh...

http://feedback.photoshop.com/photosh...

You'd have to explain your other items better for us to understand.
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 812 Reply Likes
Dithering when converting from 32 or 16 bit to 8 bit has been in Photoshop for many years (controlled by a setting in Color Settings). There should not be a "method" to the dithering in that operation -- it's not like halftoning or indexed color dithering where the values are dramatically different -- it's only 1/2 pixel value.

We investigated other resampling kernels several times: lanczos and the common spline kernels gave markedly worse results than the existing bicubic kernels in Photoshop (visually, numerically, and when tested by users). If you have specific kernels that you believe give better results, let us know. But we constantly review research literature and other applications, and the other kernels haven't done well when tested.

And without details, I'm not sure what you find wrong with Photoshop's JPEG decoding.
Photo of pedro picapiedra

pedro picapiedra

  • 26 Posts
  • 0 Reply Likes
Yes sorry, I bet I did a search, I normally do, I don't know how I didn't find anything. All my suggestions are from CS3 that is the version I use but I also have slightly tried other versions and my biggest concern as I noted is performance, every version feels slower and heavier.

Before I just dropped some ideas from using only CS3, now after a deeper research I found:
-Dark GUI, or at least option for it. (in CS6)
-JPEG decoding is unusual.
-More resizer Kernels, (lanczos, spline, etc), (Argueable)
-Dithering method for when going back to 8 bit from higher bitdepth. (Argueable)
-Ability to default save options, and screen mode (I have this last one in a script event, but still...)
-Layer styles; change default of stroke and glow. (in CS5)
-Faster brush resize alternatives (with left hand on the keyboard, or click-n-drag aka zbrush style) (in CS5)
-Eyedropper tool; option to bypass adjustment levels (in CS5)
-Antialiasing filters
-More working options (filters too) enabled when over 8bit depth.

Notes:
Jpeg decoding. I compared images decoded with photoshop and other solutions like avisynth, imagemagick, and official jpeg tool. All of them are the same except photoshop's. That makes me to think. Just check the files, or test personally. http://www.mediafire.com/?j2xc7rk0822...

Another addition, an option to remember the last image format used for saving instead of same format.

The eyedropper tip is different from the link. What I meant is I have 3 layers, curve adjustment layer->transparent layer->background layer. All are visible and I'm on the transparent layer, I have the brush tool activated, and press alt to sample a color. The sampled color has the curve adjustment layer already embedded on it. So when you paint is like if you applied the curve 2 times. For this to be solved it would be very useful an option box just like the "Clone Tool". -edit: I see this is already included
-To note also is what Tee Hauser explains in the link, he meant showing "in samples/flattened samples" instead of "in samples/out samples", I second that as an option too.

About resizers this is very argueable, I did run some tests and I must say bicubic is very similar to an spline algorithm used in avisynth (although avisynth is known to apply some smoothing to the scaling). What I would find very useful is to add the 2 options for bicubic, so one can do Catmull-Rom, Robidoux, etc. I'm not too technical but in regards to upsizing there are better kernels, I use some in avisynth, good antialiasers as well. Photoshop needs at least one of these upsizer/antialiaser combo.

At last I made an action for the screen mode thanks to your link, it is way easier than the .jsx I had. Ok, so now I have 2 actions for when every image opens. Proof ON, and Screen Mode. Not only this is a hassle to setup everytime you install PS but, it annoyes everytime you open an image (or a bunch of them), and adds tw0001.dat in C:\. So couldn't these be added internally as options rather than actions?

Thanks for the replies.
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 812 Reply Likes
>> and official jpeg tool.

There is no such thing as an "official JPEG" tool or implementation.
Many applications use the Independent JPEG group implementation - so they do match results.
Many applications also use the Intel library, which gets different results.
JPEG has a lot of leeway in how the images are reconstructed, so images will differ slightly when decompressed.
And then when you add color management (which Photoshop does and many other apps do not), it further complicates the idea of matching JPEG output.

The differences you show are in the lowest bits (not visible), and easily explainable by different implementations using slightly different math.
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 812 Reply Likes
Interpolation kernels isn't too arguable if you compare results and understand the kernels. Many interpolation kernels are very, very similar - because they are trying to solve the same problems.

We've done the testing, and haven't found anything actually better. If you can give specific examples, please do and we'll take another look.

But offering more interpolation methods/kernels just for the sake of offering more would be counterproductive -- most of the kernels simply do not produce results as good as the bicubic kernels for image resampling.
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 812 Reply Likes
Antialiasing filters -- really, you can't do a great job of antialiasing without knowing the original high res or continuous vector source. Some filters do exist that try to post process images to reduce aliasing, with mixed success. Most of them are along the lines of "here's an edge, blur it".
Photo of pedro picapiedra

pedro picapiedra

  • 26 Posts
  • 0 Reply Likes
That was a possible theory, I think then I meant the "official" IJPEG group decoder. I will correct my misleading assumptions. At least it becomes something to learn.

About kernels I can't talk myself, I don't use matlab to test deeply, and avisynth's has a built-in kind of a smoother prepass so I can't fairly compare nude spline36 (3 lobe) against PS bicubic. I will trust you in that bit. My suggestion is for adding the 2 common parameters in bicubic, give at least that advanced option, so one can do Mitchell-Netravali, Hermite, Catmull-Rom... as s/he likes etc:
http://www.imagemagick.org/Usage/img_...
This must be very easy unless you are using another implementation I'm not aware of bicubic's kernel and this is not possible in the current state...

When you upsize an image more than a little it becomes easy to spot aliasing, even in bicubic. In this case for example I use a plugin in avs called nnedi3 by tritical, it can also be used for antialiasing (even when you don't know the aliasing factor), but its main purpose is to deinterlace. As you can see it can be used for many tasks. I think you could add a filter of this nature for upscaling/antialiasing, many times I stomp over an image I want to "clean" edges that are jaggered or not uniform, and this gives it a very natural feeling, nothing to do with blurring which I of course tried, or I should say not the common blur PS comes with. Just some examples:

Upscaling:
Original 2x
Photoshop Bicubic for Enlargement
Tritical's nnedi3

AA:
Original
Tritical's nnedi3

It would be very useful to have something similar in Photoshop so I don't need to switch programs constantly.
Photo of pedro picapiedra

pedro picapiedra

  • 26 Posts
  • 0 Reply Likes
To tackle the slowness of JPEG Decoding, and probably the artefacts I commented above it would be good that Photoshop replaced the old IJL with the newer Intel's IPP.

There should not be a "method" to the dithering in that operation -- it's not like halftoning or indexed color dithering where the values are dramatically different -- it's only 1/2 pixel value.

You mean rounding? Wouldn't it be more appropiate any error diffusion algorithm?
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 812 Reply Likes
Ah, you're looking just at the case of converting line art. Yes, Photoshop could use some additional methods for dealing with line art, since Photoshop's current kernels are designed to work with photographic images.

Photoshop has never used the IJL, and Intel's JPEG implementation is also not up to our quality standards. Photoshop's JPEG implementation has always been faster than the IJL.

No, not rounding - dithering. In some cases dithering needs error diffusion (like converting to indexed color), but when converting 32/16 to 8 bits that would lead to patterns in the noise -- it really does need to be a random value.