Chciałbym zaoferować alternatywę dla przemyślanej odpowiedzi Davida Postilla. W swojej odpowiedzi podszedł do pytania, że piksele mają kwadrat, tak jak sugerował tytuł. Jednak w odpowiedzi udzielił bardzo wnikliwego komentarza:
Niektórzy twierdzą, że nigdy nie są kwadratowe („Piksel jest próbką punktową. Istnieje tylko w jednym punkcie.”).
Ta pozycja może faktycznie zrodzić się z zupełnie innej odpowiedzi. Zamiast skupiać się na tym, dlaczego każdy piksel jest kwadratem (lub nie), może skupić się na tym, dlaczego mamy tendencję do organizowania próbkowania punktowego w prostokątne siatki. W rzeczywistości nie zawsze tak było!
Aby przedstawić ten argument, będziemy grać w tę iz powrotem między traktowaniem obrazu jako danych abstrakcyjnych (takich jak siatka punktów) a jego implementacją w sprzęcie. Czasami jeden widok jest bardziej znaczący niż drugi.
Na początek cofnijmy się dość daleko. Tradycyjna fotografia filmowa w ogóle nie miała „siatki”, co jest jednym z powodów, dla których zdjęcia zawsze wyglądały tak ostro w porównaniu z nowoczesnymi cyfrowymi. Zamiast tego miał „ziarno”, które było losowym rozkładem kryształów na filmie. Był z grubsza jednolity, ale nie był ładnym prostoliniowym układem. Organizacja tych ziaren wynikała z procesu produkcji folii, z wykorzystaniem właściwości chemicznych. W rezultacie film tak naprawdę nie miał „kierunku”. To było tylko 2d rozpryskiwania informacji.
Szybkie przejście do telewizora, w szczególności starych skanerów CRT. CRT potrzebowały czegoś innego niż zdjęcia: musieli być w stanie przedstawić swoją treść jako dane. W szczególności musiały to być dane, które mogłyby przesyłać strumieniowo, analogowo, przez drut (zwykle jako stale zmieniający się zestaw napięć). Zdjęcie było 2d, ale musieliśmy przekształcić je w strukturę 1d, aby mogło się zmieniać tylko w jednym wymiarze (czasie). Rozwiązaniem było pocięcie obrazu na linie (nie piksele!). Obraz był kodowany linia po linii. Każda linia była analogowym strumieniem danych, a nie cyfrowym próbkowaniem, ale linie były oddzielone od siebie. Tak więc dane były dyskretne w kierunku pionowym, ale ciągłe w kierunku poziomym.
Telewizory musiały renderować te dane przy użyciu fizycznych luminoforów, a telewizor kolorowy wymagał siatki, aby podzielić je na piksele. Każdy telewizor może robić to inaczej w kierunku poziomym, oferując więcej lub mniej pikseli, ale musiał mieć taką samą liczbę linii. Teoretycznie mogliby przesunąć co drugi rząd pikseli, dokładnie tak, jak sugerujesz. Jednak w praktyce nie było to konieczne. W rzeczywistości poszli jeszcze dalej. Szybko zorientowano się, że ludzkie oko poradziło sobie z ruchem w taki sposób, że faktycznie wysyłają tylko połowę obrazu na każdą klatkę! Na jednej klatce wysyłali nieparzyste linie, a na następnej wysyłali parzyste linie i łączyli je razem.
Od tego czasu digitalizacja tych obrazów z przeplotem jest trochę trudna. Gdybym miał obraz o linii 480, faktycznie mam tylko połowę danych w każdej ramce z powodu przeplotu. Rezultat tego jest bardzo widoczny, gdy próbujesz zobaczyć, jak coś szybko porusza się po ekranie: każda linia jest tymczasowo przesunięta o 1 klatkę od drugiej, tworząc poziome smugi w szybko poruszających się obiektach. Wspominam o tym, ponieważ jest to raczej zabawne: twoja sugestia przesuwa co drugi rząd na siatce o pół piksela w prawo, a przeplot przesuwa co drugi rząd na siatce o połowę czasu!
Szczerze mówiąc, łatwiej jest zrobić te ładne prostokątne siatki na rzeczy. Nie ma technicznych powodów, by robić coś lepszego, utknął. Potem wkroczyliśmy w erę komputerów. Komputery musiały generować te sygnały wideo, ale nie miały analogowych możliwości zapisania linii analogowej. Rozwiązanie było naturalne, dane podzielono na piksele. Teraz dane były dyskretne zarówno w pionie, jak i w poziomie. Pozostało tylko wybrać sposób wykonania siatki.
Wykonanie prostokątnej siatki było niezwykle naturalne. Po pierwsze, każdy telewizor już to robił! Po drugie, matematyka do rysowania linii na prostokątnej siatce jest znacznie prostsza niż rysowanie ich na sześciokątnej. Możesz powiedzieć „ale możesz narysować gładkie linie w 3 kierunkach na siatce sześciokątnej, ale tylko 2 w prostokątnej”. Jednak prostokątne siatki ułatwiły rysowanie linii poziomych i pionowych. Siatki sześciokątne można wykonać tylko w celu narysowania jednego lub drugiego. W tamtych czasach niewielu ludzi używało sześciokątnych kształtów do swoich działań niezwiązanych z komputerem (prostokątny papier, prostokątne drzwi, prostokątne domy ...). Zdolność do płynnego poziomego ipionowe linie znacznie przewyższały wartość robienia płynnych pełnokolorowych zdjęć ... zwłaszcza biorąc pod uwagę, że pierwsze wyświetlacze były monochromatyczne i upłynęło dużo czasu, zanim płynność obrazów odegrała znaczącą rolę w myśleniu.
Stąd masz bardzo silny precedens dla prostokątnej siatki. Sprzęt graficzny obsługuje to, co robi oprogramowanie (prostokątne siatki), a oprogramowanie jest ukierunkowane na sprzęt (prostokątne siatki). Teoretycznie część sprzętu mogła próbować stworzyć sześciokątną siatkę, ale oprogramowanie po prostu jej nie wynagrodziło i nikt nie chciał płacić za dwa razy więcej sprzętu!
Ten post przenosi nas do dziś. Nadal chcemy ładnych gładkich linii poziomych i pionowych, ale z wysokiej klasy wyświetlaczami siatkówki staje się to coraz łatwiejsze. Jednak programiści są nadal szkoleni, aby myśleć w kategoriach starej prostokątnej siatki. Widzimy, że niektóre nowe interfejsy API obsługują „logiczne współrzędne” i wykonujemy wygładzanie, aby wyglądało na to, że jest dostępna pełna ciągła przestrzeń 2d zamiast siatki sztywnych pikseli 2d, ale jest wolna. W końcu możemy zobaczyć sześciokątne siatki.
Widzimy je, ale nie na ekranach. W druku bardzo często stosuje się siatkę sześciokątną. Ludzkie oko akceptuje sześciokątną siatkę znacznie szybciej niż prostokątną siatkę. Ma to związek z liniami „aliasów” w różnych systemach. Sześciokątne siatki aliasów w mniej ostry sposób, z którymi oko jest bardziej wygodne (jeśli siatka heksadecymalna musi przechodzić o jeden rząd w górę lub w dół, robią to płynnie nad przejściem po przekątnej. Siatki prostokątne muszą przeskakiwać, tworząc bardzo wyraźna nieciągłość)