Ximagic Graydither

All non-XnView related: softwares, formats, imaging, photography...

Moderators: XnTriq, helmut, xnview

eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Ximagic Graydither

Post by eL_PuSHeR »

Hello.

I am opening this thread to post everything about Ximagic Graydither.

I have created some pseudo-diagonal screen halftones. Check them out.

Download (< 1KB)

Skin tones appear weird but they can be cool for line-art.
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Hi, could you check this dithered test against the original vga256c png file? Is colour dithering accurate?

I have noticed some banding. Filenames starting with Alchemy are created using Image Alchemy 1.11 - There are two different halftone screens available (type 20 and 22), the difference between them is the smooth/coarse screen. They are just for comparison purposes. When printed, at least for some tests I have done, those screens appear less grainy than the 8x8 45º or 8x8 45º Ulichney ones.

Thanks for your efforts and patience.

Link -> http://www.megaupload.com/?d=VZYIFZSA
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

I have also found a new bug in the Graydither.

Calculated Circle 90º B doesn't work for me anymore. It just crashes to desktop. All others (A, C, D, E) work fine. By the way, why C, D, and E screens don't resemble CIRCLES AT ALL?
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
brodriguez
Posts: 64
Joined: Sun Feb 01, 2009 2:15 am

Re: Ximagic Graydither

Post by brodriguez »

Hello I didn't notice your posts until today.
eL_PuSHeR wrote:I have created some pseudo-diagonal screen halftones. Check them out.
Skin tones appear weird but they can be cool for line-art.
I test it and looks well.
It seems you have discovered how to create screens. :D
eL_PuSHeR wrote:Hi, could you check this dithered test against the original vga256c png file? Is colour dithering accurate?
I'll analyze the Alchemy results.
eL_PuSHeR wrote:I have also found a new bug in the Graydither.

Calculated Circle 90º B doesn't work for me anymore. It just crashes to desktop. All others (A, C, D, E) work fine. By the way, why C, D, and E screens don't resemble CIRCLES AT ALL?
Confirmed the crash in B, and the wrong shape in C D and E. I suspect the bug could be the same in all the 4 cases. :(

I'll publish a corrected version ASAP.
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Thank you very much!
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Hello.

I have been doing some tests and I have a question: How come printing an orthogonal 8x8 image is outputted okay but a 8x8 ulichney one is outputted like crap (like the mesh was smaller), both at the same resolution (1200dpi)? Is because the angle difference? This makes no sense at all.

PS - It would be nice if plugin would take Lines per Inch (LPI) into account.
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
brodriguez
Posts: 64
Joined: Sun Feb 01, 2009 2:15 am

Re: Ximagic Graydither

Post by brodriguez »

I think we talk about that previously.

There are two variables which control the quality of the result, the lpi and the gray levels

For 90º patterns (one point in each cell)
lpi = dpi / cellsize
levels = cellsize^2

For 45º patterns (two points in each cell)
lpi = dpi / sqrt(2*((cellsize/2)^2)))
levels = (cellsize^2)/2

Thus (for a 1200 dpi printer)
4x4 45º -> lpi = dpi / 2,83 = 424 (levels = 8 )
6x6 45º -> lpi = dpi / 4,24 = 283 (levels = 18)
8x8 45º -> lpi = dpi / 5,66 = 212 (levels = 32)
16x16 45º -> lpi = dpi / 11,31 = 106 (levels = 128)

4x4 90º -> lpi = dpi / 4 = 300 (levels = 16)
6x6 90º -> lpi = dpi / 6 = 200 (levels = 36)
8x8 90º -> lpi = dpi / 8 = 150 (levels = 64)
16x16 90º -> lpi = dpi / 16 = 75 (levels = 256)

8x8 45º quality should be better than 4x4 90º and worse than 6x6 90º.

Does this explanation answer your question :?:
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Interesting. Thank you very much. I must study and ponder on this.

By the way. What does have to do error-diffusion (Ulichney) with the 45º cell halftones?
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
brodriguez
Posts: 64
Joined: Sun Feb 01, 2009 2:15 am

Re: Ximagic Graydither

Post by brodriguez »

eL_PuSHeR wrote:By the way. What does have to do error-diffusion (Ulichney) with the 45º cell halftones?
Both, the Ulichney error diffusion dither and the Ulichney clustered-dot threshold matrices comes from a book authored by Robert Ulichney.

Ulichney, Robert; "Digital Halftoning"; The MIT Press; 1987.
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Thank you very much. Learning something new everyday.
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Hello. Could you please check this image? When printed at 600dpi using a 6x6 or 8x8 45º Ulichney, I get lots of border artifacts. When printed using a common printer driver (at 45º too), it prints okay. Using a 6x6 orthogonal halftone, gives a good printout.

Image
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

I am still getting heavy artifacts/banding on other images too, only when using the Ulichney 45º filters. Normal 45º filters print better.

Well those bands are also present with 45º non-Ulichney, but less noticeable. The only way to mitigate them is to reduce the number of final grays before.

E.g. if you a are using a 45º 8x8 cell, reduce grays to 32 levels first.
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
brodriguez
Posts: 64
Joined: Sun Feb 01, 2009 2:15 am

Re: Ximagic Graydither

Post by brodriguez »

Hello.

I test the image you post, comparing Ulichney 45 8x8 and Halftone 45 8x8. I get very similar results on screen, but I can't test it on a B/W printer.
eL_PuSHeR wrote:The only way to mitigate them is to reduce the number of final grays before.
E.g. if you a are using a 45º 8x8 cell, reduce grays to 32 levels first.
How do you reduce gray levels :?:
eL_PuSHeR
Posts: 267
Joined: Sat Apr 25, 2009 9:23 am

Re: Ximagic Graydither

Post by eL_PuSHeR »

Glad to hear you are alive and kicking. :D

Doing a grayscale + error diffussion filter before, if the bitmap is a photographic image. The previous image was 16 colours already.

Anyway, after more testing, I have found out that 8x8 90º filter does a good job on my printer (1200dpi -> 150lpi). I don't know why the 45º filters do a worse job (maybe because there is no 10x10 or 12x12 45º). Using 8x8 45º for a 1200dpi printer goes beyond the scope the lpi for black & white I think.

If I am not mistaken, 8x8 45º for a 1200dpi printer would yield more than 200lpi. Too much contrast for everyday work.

Regarding my printer, the postscript driver seems to do the best job using 45º patterns. Too bad it can't be configured.

This is the test image I was getting a lot of banding on her leg. You don't need to print it. The effect is perfectly noticeable on screen. Apply a 45º 8x8 Ulichney filter for instance, BUT resample image to something like 16 cm (width) at 1200dpi grayscale. Sorry for the 1,7MB filesize. I do not use JPEG when working with images.

http://img7.imageshack.us/img7/6336/ana ... osio00.png
Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
GeForce GTX 970 (Gigabyte)
brodriguez
Posts: 64
Joined: Sun Feb 01, 2009 2:15 am

Re: Ximagic Graydither

Post by brodriguez »

brodriguez wrote:Doing a grayscale + error diffussion filter before, if the bitmap is a photographic image. The previous image was 16 colours already.
If you apply several grayscale transformations, the results are very difficult to analyze. Resolution and gray levels of the resulting image can't be calculated with a simple formula.
brodriguez wrote:This is the test image I was getting a lot of banding on her leg. You don't need to print it. The effect is perfectly noticeable on screen. Apply a 45º 8x8 Ulichney filter for instance, BUT resample image to something like 16 cm (width) at 1200dpi grayscale. Sorry for the 1,7MB filesize. I do not use JPEG when working with images.
:( The resample add another level of complexity. Dithered images works badly when resampled.

Anyway, I suspect that the banding is more related with the number of graylevels than with the lpi.