OESF Portables Forum

Model Specific Forums => Astro Slide => Astro Slide - Hardware => Topic started by: Daniel W on February 02, 2023, 02:50:20 pm

Title: Pixel peeping (main screen closeups)
Post by: Daniel W on February 02, 2023, 02:50:20 pm
As OLED screens tends not do follow the RGB-stripe layout common to liquid crystal screens, I wanted to have a close enough look at the screen of my Astro, to see which subpixel pattern it uses. I blue-tacked a 30x magnifier to the screen, and took pictures through it with an old Sony digital compact. To my surprise, I could use a bit of optical zoom and still get a sharp image, even with the front lens of the camera almost touching the magnifier. To the extent permitted by law, I declare all pictures I upload to this thread as CC0 public domain, no rights reserved, no attribution required.

This is mostly an overview for context
 


Here, I've zoomed down on four characters in the center...
 


...and finally, this was as close as I could get
 
Title: Re: Pixel peeping (main screen closeups)
Post by: ZimbiX on February 25, 2023, 08:24:55 am
Thanks for this! Great photos. I'd been lamenting lacking the equipment to take photos like this myself.

PenTile is so ugly 😢
Title: Re: Pixel peeping (main screen closeups)
Post by: Daniel W on February 25, 2023, 05:09:20 pm
I'm glad you liked them. I'm glad I could capture them. My rudimentary equipment shouldn't be able to produce results like this.

Once upon a time I picked up a "30x triplet loupe", for a few tens of dollars. That is the round thing you can see a hint of in the first picture above. Here's a better picture of it.

For scale, the lens is about two centimeters or 4/5 of an inch.

I can attach it to the screen with small dabs of blu-tack (or similar from another brand). Then it turned out that a digital camera I have,

a (now) old Sony DSC-HX60V, which I got once to get real optical zoom, could lock focus onto that loupe, even when zoomed in almost 5x, from a much closer distance (the front lens is almost touching the loupe) that its technical specifications says, so it seems this camera and loupe, somehow, gets along better than one could expect.

To be fair, only a tiny portion on the image comes out actually sharp, while the rest is heavily distorted, but for things that either gives off its own light (like the screen) or things I can backlight (say, by putting them atop my phone, showing a white picture, at max brightness), I can get a few millimeters square reasonably magnified.

I agree that PenTile layouts tends to be ugly, since such screens (by design) has too few subpixels of one or more colours. As you can see in the last close-up above, the Astro screen appears NOT to be a PenTile variant. While its subpixels are arranged in a triangular pattern that reminds me of the phosphors in certain old CRT screens, there is an equal amount of red, green and blue subpixels. I guess they are arranged like that for practical reasons. I don't think it is feasible to make OLEDs into the narrow elongated strips one would typically find on an LCD.

As long as there's one full RGB triplet for each supposed pixel, the specific arrangement of them shouldn't matter much, provided the display driver knows what it's doing. I may have to draw some test images and (try to) take close-ups of, to verify that a full triplet per pixel is actually used.
Title: Re: Pixel peeping (main screen closeups)
Post by: ZimbiX on February 26, 2023, 05:40:46 am
I agree that PenTile layouts tends to be ugly, since such screens (by design) has too few subpixels of one or more colours. As you can see in the last close-up above, the Astro screen appears NOT to be a PenTile variant. While its subpixels are arranged in a triangular pattern that reminds me of the phosphors in certain old CRT screens, there is an equal amount of red, green and blue subpixels. I guess they are arranged like that for practical reasons. I don't think it is feasible to make OLEDs into the narrow elongated strips one would typically find on an LCD.

Oh wow, you're right! I didn't look closely enough to notice that there are an equal number of subpixels of each colour! 🤦

I'd complained about it within the low frequency PWM issue I filed (https://github.com/shymega/planet-devices/issues/52).

I'm having a lot of trouble finding out what this subpixel arrangement is called.

I found a catalog of subpixel geometry (https://geometrian.com/programming/reference/subpixelzoo/index.php). Although it does not include this one (yet - I'll point him here), it links to an image of PC CRT screen phosphor dots (https://en.wikipedia.org/wiki/File:CRT_phosphor_dots.png). As you mentioned, this arrangement is very similar - it's just not flipping every second triangular triplet.

I also found a patent describing the right arrangement (https://patents.google.com/patent/US5311337A/en), but disappointingly, does not refer to it with a name that yields good search results.

As long as there's one full RGB triplet for each supposed pixel, the specific arrangement of them shouldn't matter much, provided the display driver knows what it's doing.

Haha, you'd think, but I'm not so sure it does entirely know what it's doing. Or maybe the subpixel anti-aliasing (if any) isn't right. I find the edges of things displayed on the Astro to be a little blurry. I've seen some others mention this of the Astro too. Maybe I'm just not used to alternative subpixel arrangements, or maybe it's a result of the PWM, or an illusion from keeping the screen uncomfortably bright - the blurring is lessened if I cover all of the screen except one word. I find it's most noticeable for reduced contrast edges - e.g. black text on a grey background. It can be like it has a centered CSS drop shadow.

I may have to draw some test images and (try to) take close-ups of, to verify that a full triplet per pixel is actually used.

Please do! I eagerly await the results 😀
Title: Re: Pixel peeping (main screen closeups)
Post by: Daniel W on March 06, 2023, 07:54:35 pm
Getting anything useful out of my primitive gear wasn't easy for me. Here's my best attempt though, which seems to suggest there are shenanigans here. Let's, for starters have a look at a 12x12 pixel gray square. I'm not sure which of these pictures is the "best", so here's two:
 

This is the most magnification I've been able to eke out. Both pictures are rotated as if the phone is held in portrait mode. The first picture comes from pointing at the blu-tacked loupe with my $4 flea-market USB microscope. It is only 0.3MP and the usable part is even smaller in this case, so I have digitally scaled it to 200% to make it easier to see anything. The other image is from photographing the loupe with my handheld camera. That gave prettier colours and a few more pixels, but also more distorsion. In either case, I think these images starts looking a bit like "Alternating BGBR" described in the Catalog of Subpixel Geometry mentioned by Zimbix.

Had there been a full RGB triplet dedicated to each physical pixel, this layout would likely be fine, if hard to write subpixel anti-aliasing for, but there seems to be a bit of foul play. Along the vertical axis, one can indeed find twelve groups of a red subpixel atop a green subpixel, with a blue subpixel on the side, but as each such triplet is two subpixels wide, we'd need twenty-four columns of subpixels in total horizontally, to represent twelve pixels, but in the image, there are only fifteen fully lit subpixel columns and two weakly lit. I suppose this corresponds to about 16 subpixel columns instead of 24.

That would suggest that this screen, rather than having a true resolution of 1080x2340 square pixles, has a resolution of 720x2340 rectangular pixels, onto which a 1080 by 2340 pixel image gets mapped. Since the sample area I can capture like this is so small, there is room for error in my method, but let's look at some more tests. In the following, all pictures are taken with the Astro screen in its normal landscape mode. Here are some striped patterns of single pixel wide lines and some 8x8 pixel single colour blocks.
 


Well, that's a bit rubbish, isn't it. Now let's try a single pixel dot pattern (and some more single pixel lines)
 


It's just a mess. Here are just some single pixel lines.
 

The lines are a single pixel wide and eight pixels long, but gets weirdly spread over multiple rows or columns.

Here's some small text
 

Horizontally, we have the "correct" number of subpixels, but, say, five pixels would need to become ten subpixles vertically, with (a properly proportioned version of) this layout. Here, the case is rather seven.

In conclusion, it would be possible to make "true" RGB with this kind of layout, but the subpixels would need to be square and not rectangular for that to work. As an example, here's a closeup of my laptop (also OLED) screen. In the second image the horizontal lines are eight pixels wide, while the vertical are nine pixels tall.


Edit 2023-Mar-07: Added a second photo of my laptop screen.
Title: Re: Pixel peeping (main screen closeups)
Post by: Daniel W on March 07, 2023, 04:32:47 pm
While trying to sleep, I begun wondering, if - indeed - the Astro screen, in landscape mode, has a 2340 sets of RGB triplets horizontally, but "only" 720 of them vertically, wouldn't it then be possible to nicely depict a simple pattern consisting of every second pixel horizontally and every third pixel vertically? In theory, depending on the mapping algorithm, every second physical RGB triplet vertically should line up with every third logical pixel.

So, I drew this and took pictures.
 


That looks like a clean match to me. We're looking at the screen lighting up every second RGB triplet, both horizontally and vertically. If in any doubt, we could try to take exactly the same image with an off-black background, to see the in-between triplets. As that's beyond what I can reproduce, here I have digitally superimposed an approximation of how it would look like.

It should be evident that the black gaps are one triplet, both ways.

There should only be a 1/3 chance for things to line up this neatly vertically. In the other two cases, the logical pixels would be 2/3 of a physical RGB triplet off vertically, in which case this, too, should be blurry, depending on how, in particular, the mapping algorithm works.

One slightly weird thing I noticed, was that I could only get a "clean" match, while dragging the image around (which made getting a good photo of it even harder, with one hand of the camera and one on the phone) inside the image editor (Photo Editor by dev.macgyver) I was using to show the image at 100% (since it turned out that the regular Android photo album didn't show my test picture at exactly 100% on my Astro).

As soon as I let go of the image, it would settle in a slightly blurred state every time. I can't know for sure whether this is a behaviour in that app or not, but the app shouldn't (need to) know what type of display the device has, so my best guess is that the display driver tries to even things out by always making the image a tad blurry "at rest". Perhaps this is a tad too CPU intense to do while  something is being dragged around, but well, now I'm just guessing, so I think it's time to declare this little foray into the physical screen layout done.

We seem to have 2340 x 720 x 3 = 5054400 individual OLED segments on our Astro displays. I wish they were 2340 x 1080 x 3 = 7581600, but perhaps it isn't yet feasible to do at 400+ DPI at a reasonable cost? My laptop, that has a triplet per pixel "only" needs to do that at around 320 DPI, and even it has some funky offset business going on with its blue segments, so maybe "clean" OLED screens, at these densities, just aren't quite here yet?

Oh, before I leave, here's the "raw" test image I've been using, in case anyone would want to peep at their own pixels.


Edit: Added the "raw" test image.