Re: [Inkscape-devel] New anti aliasing techniques for 2d rendering
On 5 June 2010 18:06, Juan Vuletich <juan@...2357...> wrote:
Hi Michal,
Michal Suchanek wrote:
On 3 June 2010 18:45, Juan Vuletich <juan@...2357...> wrote:
Ok. Did it. Take a look at http://www.jvuletich.org/Morphic3/tigerWholePixel.png . I think it is closer to the subpixel rendered version than to Inkscape.
But I did something else. I opened the web page on several displays. Tried it in 3 LCD screens, with both DVI and VGA interfaces, and at native resolution and at lower resolution. In all cases the subpixel rendered version shows less pixellation and less color artifacts. Then I tried on 2 15" CRT screens, one Trinitron and the other regular, at 1024x768 and at 800x600. The whole pixel version looks consistently better than the Inkscape rendering, although both show some colored shadows that are due to the misalignment between logical pixels, the display's color mask and the actual colored phosphor on the screen. The subpixel version looks less pixellated and also with a slight colored shadow, but in different places. Overall, I find the subpixel version to also look better in these 2 CRT displays! Finally, I tried on an OLPC XO, both in color and b/w modes. There, all alternatives look equally good and it is hard to declare a winner.
So I say that given that the majority of displays sold and in use are RGB LCDs, given that it makes sense to obtain the highest possible quality from the best and most used displays, and given that the subpixel version looks better even in CRTs and doesn't hurt in the XO; it is advisable to use the subpixel version on any display, at least as a default.
I beg to differ.
I use a rotated screen and the subpixel rendered images look odd and the color shadows make examining the images quite hard on the eyes, even more than the pixelation present in the Inkscape images. This is the reason I don't use subpixel rendering. No sftware I know can do vertical subpixel rendering or even switch the subpixel direction as the window is moved to a different screen or the screen is rotated differently.
Thanks
Michal
I see you answered just to me, so I'll do the same. Anyway, it is ok for me to have any of these discussions in public, as others might have things to say...
Sorry, I meant to reply to the list and as the list does not provide reply-to headers and my mail client is not capable of processing list headers the message went only to you.
I see your points, they are valid issues. However, to me, avoiding subpixel rendering is perfectly ok as a personal choice to live with an unfortunate state of affairs, but there are better options for thechnology to evolve. I mean:
- WRT rotated screens and nonstandard subpixel geometries, ideally the
software should be able to query the hardware, do adjust the rendering as appropriate. My code can do vertical subpixel, as well as adapt to BGR or OLPC XO with just a few parameter tweaks.
Yes, that would be nice option to have. Actually the geometry is known (for most LCDs it is RGB) and the direction can be determined by examining xrandr and window position. It's just not done, and cannot be done for prerendered images.
- WRT to examining the images, I guess new tools are needed. The image zoom
software considers images as made of pixel as having the R, G and B
I intentionally did not use zooming for the comparison, only displayed the page as-is on two screens, one with the expected RGB direction and one rotated. The reason for crude zooming in bitmap viewers is speed I guess, few people want to wait tens of seconds for their image to show in the viewer. Also without additional information you cannot know how the image was rendered and how it should be scaled or resampled for different subpixel positions and different resolutions.
components on the same point. My claim is that this is not true. Thinking about it like digital audio, we have "the real thing", a continuous image not made of pixels, and sampled as appropriate for the current target device. So the idea of images made of rgb pixels is dead. And for examining and editing images, no music producer works with individual samples, although in the old times all of them did work cutting and gluing magnetic tape. The same
Working with pixels directly makes sense for very small low resolution images which are more akin to ASCII-art than actual pictures. As the resolution of display devices increases and images are getting more realistic the need for such low-level manipulation decreases as well. Still the low-res images strike back in the form of font glyphs and icons for pocket devices.
Actually there is real a problem of converting fonts from vector outlines to some bitmap form which can be used for simple drawing operations (in this particular case for use in a bootloader which should not be concerned with rendering vector graphics).
The current method freetype uses fails miserably for conversion to b&w (not grayscale) bitmaps but maybe there is no way how that can be done reasonably. Grayscale is the next thing on the list of things to try but I have not seen the results yet.
If your software can render some CJK/Indic/whatever TrueType/OpenType/whatever font glyphs that would be another thing where good antialiasing could be useful. Rendering of Latin or such is also of use but there drawing all the bitmaps by hand is less of an issue and many bitmap fonts already exist.
Thanks
Michal
(snipped some parts...)
Michal Suchanek wrote:
... I intentionally did not use zooming for the comparison, only displayed the page as-is on two screens, one with the expected RGB direction and one rotated.
I see. My mistake.
The reason for crude zooming in bitmap viewers is speed I guess, few people want to wait tens of seconds for their image to show in the viewer. Also without additional information you cannot know how the image was rendered and how it should be scaled or resampled for different subpixel positions and different resolutions.
Of course.
components on the same point. My claim is that this is not true. Thinking about it like digital audio, we have "the real thing", a continuous image not made of pixels, and sampled as appropriate for the current target device. So the idea of images made of rgb pixels is dead. And for examining and editing images, no music producer works with individual samples, although in the old times all of them did work cutting and gluing magnetic tape. The same
Working with pixels directly makes sense for very small low resolution images which are more akin to ASCII-art than actual pictures. As the resolution of display devices increases and images are getting more realistic the need for such low-level manipulation decreases as well. Still the low-res images strike back in the form of font glyphs and icons for pocket devices.
Agreed.
Actually there is real a problem of converting fonts from vector outlines to some bitmap form which can be used for simple drawing operations (in this particular case for use in a bootloader which should not be concerned with rendering vector graphics).
The current method freetype uses fails miserably for conversion to b&w (not grayscale) bitmaps but maybe there is no way how that can be done reasonably. Grayscale is the next thing on the list of things to try but I have not seen the results yet.
If your software can render some CJK/Indic/whatever TrueType/OpenType/whatever font glyphs that would be another thing where good antialiasing could be useful. Rendering of Latin or such is also of use but there drawing all the bitmaps by hand is less of an issue and many bitmap fonts already exist.
Freetype does already a wonderful work there.
Thanks
Michal
Cheers, Juan Vuletich
On 6 June 2010 23:35, Juan Vuletich <juan@...2357...> wrote:
(snipped some parts...)
Michal Suchanek wrote:
Actually there is real a problem of converting fonts from vector outlines to some bitmap form which can be used for simple drawing operations (in this particular case for use in a bootloader which should not be concerned with rendering vector graphics).
The current method freetype uses fails miserably for conversion to b&w (not grayscale) bitmaps but maybe there is no way how that can be done reasonably. Grayscale is the next thing on the list of things to try but I have not seen the results yet.
If your software can render some CJK/Indic/whatever TrueType/OpenType/whatever font glyphs that would be another thing where good antialiasing could be useful. Rendering of Latin or such is also of use but there drawing all the bitmaps by hand is less of an issue and many bitmap fonts already exist.
Freetype does already a wonderful work there.
Not really. Last time I looked the subpixel positions weren't really configurable for screen rendering but it might be a limitation of the toolkits using freetype rather than freetype itself.
For this particular case subpixel rendering is not required, though.
Thanks
Michal
Michal Suchanek wrote:
On 6 June 2010 23:35, Juan Vuletich <juan@...2357...> wrote:
(snipped some parts...)
Michal Suchanek wrote:
Actually there is real a problem of converting fonts from vector outlines to some bitmap form which can be used for simple drawing operations (in this particular case for use in a bootloader which should not be concerned with rendering vector graphics).
The current method freetype uses fails miserably for conversion to b&w (not grayscale) bitmaps but maybe there is no way how that can be done reasonably. Grayscale is the next thing on the list of things to try but I have not seen the results yet.
If your software can render some CJK/Indic/whatever TrueType/OpenType/whatever font glyphs that would be another thing where good antialiasing could be useful. Rendering of Latin or such is also of use but there drawing all the bitmaps by hand is less of an issue and many bitmap fonts already exist.
Freetype does already a wonderful work there.
Not really. Last time I looked the subpixel positions weren't really configurable for screen rendering but it might be a limitation of the toolkits using freetype rather than freetype itself.
I don't know. Anyway, fixing that should be relatively easy, I guess. What I was trying to say, is that given the anti aliasing quality FreeType can do with subpixel and auto hinting, I don't expect to be able to do it any better.
For this particular case subpixel rendering is not required, though.
Thanks
Michal
Cheers, Juan Vuletich
components on the same point. My claim is that this is not true. Thinking about it like digital audio, we have "the real thing", a continuous image not made of pixels, and sampled as appropriate for the current target device. So the idea of images made of rgb pixels is dead. And for
examining
and editing images, no music producer works with individual samples, although in the old times all of them did work cutting and gluing magnetic tape. The same
The glaring difference between audio & image is that audio is almost always sampled at a rate far higher than humans are capable of hearing (44Khz even for commercial CD audio), whereas our screens are still far from that point. Even the highest-res screens still have easily distinguishable pixels. And even where you can't see the pixels, you still need a significantly higher resolution to prevent common artifacts.
All I'm saying is technology's not quite at the point where we can start ignoring individual samples. I think it'll be a good few years yet :-)
- Bryan
Bryan Hoyt | Brush Technology wrote:
> components on the same point. My claim is that this is not true. Thinking > about it like digital audio, we have "the real thing", a continuous image > not made of pixels, and sampled as appropriate for the current target > device. So the idea of images made of rgb pixels is dead. And for examining > and editing images, no music producer works with individual samples, > although in the > old times all of them did work cutting and gluing magnetic tape. The same
The glaring difference between audio & image is that audio is almost always sampled at a rate far higher than humans are capable of hearing (44Khz even for commercial CD audio), whereas our screens are still far from that point. Even the highest-res screens still have easily distinguishable pixels. And even where you can't see the pixels, you still need a significantly higher resolution to prevent common artifacts.
All I'm saying is technology's not quite at the point where we can start ignoring individual samples. I think it'll be a good few years yet :-)
- Bryan
Well, in the book and magazine printing industry, the only ones who care about the smallest printable dots are the people working on the low level software. Everybody else works at a higher level. I think the same should be done for displays. The same model should be used by both. I mean, the time for Display Postscript like system has come. And software like Inkscape is already pretty close!
Cheers, Juan Vuletich
Well, in the book and magazine printing industry, the only ones who care
about the smallest printable dots are the people working on the low level software. Everybody else works at a higher level. I think the same should be done for displays. The same model should be used by both. I mean, the time for Display Postscript like system has come. And software like Inkscape is already pretty close!
Fair point.
In principle, I agree. I'm the author of the PixelSnap extension, which probably indicates the level at which I still care about the pixels.
- Bryan
Bryan Hoyt | Brush Technology wrote:
Well, in the book and magazine printing industry, the only ones who care about the smallest printable dots are the people working on the low level software. Everybody else works at a higher level. I think the same should be done for displays. The same model should be used by both. I mean, the time for Display Postscript like system has come. And software like Inkscape is already pretty close!
Fair point.
In principle, I agree. I'm the author of the PixelSnap extension, which probably indicates the level at which I still care about the pixels.
- Bryan
Oh, PixelSnap. I see. It seems we have very different views on what is the "correct" thing to do in those cases!
Cheers, Juan Vuletich
participants (3)
-
Bryan Hoyt | Brush Technology
-
Juan Vuletich
-
Michal Suchanek