Hacker News new | past | comments | ask | show | jobs | submit login

But pixels aren't just points. By sensible arguments, they are usually squares in the sense that a 10*10 pixel area will be square. Otherwise they are non-square rectangles. After all, pixels are actually arranged in a rectangular fashion. They could be arranged like hexagons, but we settled on a square filling. They could have also been arranged randomly, like ink droplets on paper, but no, they are pretty square.



I think, a better way of putting it may be, pixels are samples at points, rather than representing actual point samples. Meaning, while they are sampled at a specific location, these are not actual values, as this would require ideal sensor technology that will probably never be achieved. So we have to account for all kinds of diffusion, reflection, sensor surfaces, shapes of optical channels, fall-off thereof, etc – and may wonder (probably to no definitive end) at what shape and to what extent to model them best.

Edit: Moreover, even when it comes to simply filling an area, things aren't that simple. E.g., when this was written (1995), this was still the era of CRTs, and CRTs are analog devices with analog response. A sole pixel may never reach full phosphor activation, while a stretch of them will, and there are also signal flanks.

If we wanted to represent a scanline information as

  0.0 1.0 1.0 1.0 0.5 0.5
we may have to actually write for a true representation (letting go of the idea of full phosphor activation),

  0.0 1.0 0.8 0.8 0.0 0.4
So, for this specific purpose, not every pixel is the same, but rather relies on context…


> while they are sampled at a specific location, these are not actual values, as this would require ideal sensor technology that will probably never be achievedwhile they are sampled at a specific location, these are not actual values, as this would require ideal sensor technology that will probably never be achieved

Indeed; hence why they're a useful abstraction

> So we have to account for all kinds of diffusion, reflection, sensor surfaces, shapes of light channels, fall-off thereof, etc – and may wonder at what shape and to what extent to model them best.

Whilst 'shapes' can give particularly simple models (like nearest-neighbour voronoi cells), that's still quite a limiting assumption. For example, models which take multiple neighbours into account, like bicubic interpolation (and pretty much everything except pixel-art editors), don't fit the concept of "shape" very well. In particular, the influence/extent of the pixels "overlap", which requires a separate notion of composition/interaction; and some areas may even have negative influence!


> In particular, the influence/extent of the pixels "overlap", which requires a separate notion of composition/interaction; and some areas may even have negative influence!

Indeed! Compare the edit. (Sorry for this other overlap in the temporal domain.)


This entire conversation (not just picking on you!) is missing the point. Pixels are a context-sensitive abstraction that mean different things depending on what exactly you’re trying to accomplish. They can be point samples in a grid, they can be rectangular uniformly illuminated regions, they can be bytes in an array. We don’t need one single definition, which is good because there isn’t one.


> By sensible arguments, they are usually squares in the sense that a 10*10 pixel area will be square

My first computers were Amigas, whose display elements ("screen pixels") were rectangles, but certainly non-square ;)


Over here in Europe (PAL) land, Amiga low resolution (320x256) was actually a mode with square pixels!

It seems [1] the aspect ratio for the NTSC low-res was 44:52 = 22:26 = 11:13 which is a bit off but teenage demo-coder me would probably not have cared much (not that I ever saw an NTSC Amiga). :)

[1]: http://amigadev.elowar.com/read/ADCD_2.1/AmigaMail_Vol2_guid...


Yeah, that's why I continued

> Otherwise they are non-square rectangles.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: