Właśnie wykonałem kilka szybkich obliczeń:
Na moim MacBooku mam rozdzielczość 2560 x 1440 pomnożoną przez 24 bity dla kolorów, otrzymujemy 11,05 MB na pojedyncze zdjęcie lub 663 MB na sekundę przy 60 fps .
Wydaje mi się, że istnieje pewna kompresja, ale na przykład, kiedy poruszam trzema palcami po tabliczce dotykowej, co jest dość losowe, co dzieje się potem na ekranie i zmienia się prawie każdy piksel. Tak samo jak w przypadku prawie każdej innej interakcji.
Proszę wyjaśnić, czy moje obliczenia są nieprawidłowe i jak te dane są przenoszone z mojej karty graficznej na ekran? Jak szerokie są autobusy między moją kartą graficzną a ekranem? Być może wyjaśnić w skrócie, w jaki sposób wyświetlacz przechowuje piksele? Przesunięcie rejestrów? Pamięć podręczna?
źródło
Odpowiedzi:
Twoje obliczenia są w istocie poprawne. W przypadku sygnału 1440p60Hz szybkość danych wynosi 5,8 Gb / s, jeśli uwzględnisz także czas wygaszania (niewidoczna ramka pikselowa na wyjściu obrazu).
W przypadku HDMI / DVI stosowane jest kodowanie 10 / 8b, co oznacza, że chociaż powiedziano 24-bitowe dane koloru na piksel, w rzeczywistości 30-bitowe przesyłane jest w miarę kodowania danych i dodawania słów kontrolnych protokołu. Kompresja nie jest wykonywana, surowe dane są wysyłane, co oznacza, że potrzebujesz przepustowości danych 7,25 Gb / s.
Ponownie patrząc na HDMI / DVI. Wykorzystuje standard sygnalizacji „TDMS” do przesyłania danych. Standard HDMI V1.2 wymaga maksymalnej prędkości 4,9 Gb / s dla pojedynczego łącza (3 linie danych szeregowych + 1 linia zegara), aw przypadku podwójnego łącza DVI maksymalnie 9,8 Gb / s (6 linii danych szeregowych, tak myślę ). Jest więc wystarczająca przepustowość, aby zrobić 1440p60 przez DVI Dual-Link, ale nie przez HDMI V1.2.
W standardzie HDMI V1.3 (większość urządzeń faktycznie przeskoczyła do wersji 1.4a, która ma tę samą szerokość pasma co 1.3), przepustowość została podwojona do około 10 Gb / s, co obsługiwałoby 1440p60, a także wystarczająca szerokość pasma dla UHD przy 30 Hz (2160p30).
DisplayPort jako kolejny przykład ma 4 szeregowe strumienie danych, każdy zdolny (w wersji 1.1) do 2,16 Gb / s na strumień (uwzględniający kodowanie), więc z linkiem w wersji 1.1 można łatwo zrobić 1440p60 ze wszystkimi 4 strumieniami. Wydali także nowszy standard, V1.2, który podwaja to do 4,32 Gbps / strumień, pozwalając na UHD @ 60Hz. Istnieje jeszcze nowsza wersja, którą jeszcze bardziej przesunęli do 6,4 Gb / s .
Początkowo liczby te brzmią ogromnie, ale w rzeczywistości nie tak bardzo, jeśli wziąć pod uwagę USB 3.0. Zostało to wydane z prędkością transmisji 5 Gb / s za pomocą jednego kabla (właściwie dwa, jeden dla TX, jeden dla RX, ale dygresję). PCIe, którego obecnie używa Twoja karta graficzna, działa z prędkością do 8 Gb / s za pośrednictwem pojedynczej pary różnic, więc nie jest zaskakujące, że nadrabiają zaległości zewnętrzne interfejsy danych.
Pozostaje jednak pytanie, jak to się robi? Kiedy myślisz o VGA, składa się z pojedynczych przewodów dla danych R, G i B, które są wysyłane w formacie analogowym. Analogowe, jak wiemy, jest bardzo podatne na zakłócenia, a przepustowość przetworników DAC / ADC jest również ograniczona, co znacznie ogranicza to, co można przez nie przepchnąć (mówiąc, że jeśli masz szczęście, ledwo możesz zrobić 1440p60Hz przez VGA).
Jednak przy nowoczesnych standardach stosujemy standardy cyfrowe, które są znacznie bardziej odporne na szumy (wystarczy rozróżnić wysokie lub niskie, a nie wszystkie wartości pośrednie), a także eliminuje potrzebę konwersji między analogowym i cyfrowym.
Ponadto pojawienie się stosowania standardów różnicowych w stosunku do pojedynczych końców znacznie pomaga, ponieważ porównujesz teraz wartość między dwoma drutami (różnica + ve = 1, różnica -ve = 0) zamiast porównywania pojedynczego drutu z pewnym progiem. Oznacza to, że tłumienie jest mniejszym problemem, ponieważ wpływa na oba przewody jednakowo i tłumi się do napięcia w punkcie środkowym - „oko” (różnica napięć) maleje, ale nadal można stwierdzić, czy jest to + ve czy -ve nawet jeśli jest to tylko 100 mV lub mniej. Pojedyncze sygnały zakończone po osłabieniu sygnału mogą spaść poniżej progu i stać się nie do odróżnienia, nawet jeśli nadal mają amplitudę 1 V lub większą.
Używając łącza szeregowego w stosunku do łącza równoległego, możemy również przejść do wyższych prędkości transmisji danych, ponieważ odchylenie przestaje być problemem. W równoległej magistrali, powiedzmy 32-bitowej, musisz idealnie dopasować długość i właściwości propagacyjne 32 kabli, aby sygnały nie wychodziły z fazy między sobą (pochylenie). W łączu szeregowym masz tylko jeden kabel, więc przekrzywienie nie może się zdarzyć.
TL; DR Dane są wysyłane z obliczoną przez Ciebie pełną przepływnością (kilka Gb / s), bez kompresji. Umożliwiają to nowoczesne techniki sygnalizacji szeregowanych łączy cyfrowych za pomocą par różnicowych.
źródło
Nowoczesne komputery są zaskakująco szybkie. Ludzie z przyjemnością załadują filmy Full HD 30 klatek na sekundę, nie zdając sobie sprawy, że wymaga to miliardów operacji arytmetycznych na sekundę. Gracze są nieco bardziej świadomi tego; GTX 1060 da ci 4,4 TFLOPS ( trylion operacji zmiennoprzecinkowych na sekundę).
Inna odpowiedź dotyczy wielogigabitowego charakteru HDMI, DisplayLink itp.
Sam wyświetlacz przechowuje teoretycznie brak danych obrazu.
(Niektóre wyświetlacze, zwłaszcza telewizory, przechowują klatkę lub dwie w celu zastosowania przetwarzania obrazu. Zwiększa to opóźnienie i jest niepopularne wśród graczy).
Podsystem graficzny komputera przechowuje piksele w zwykłej pamięci DRAM. Zwykle nie przerysowuje całego procesu od każdej klatki, ale przekazuje część funkcjonalności dedykowanym podsystemom i kompozytorowi . Kompozytor pozwoli np. Przechowywać każde okno na pulpicie jako odrębny zestaw pikseli, które następnie można przesuwać, przewijać lub powiększać za pomocą dedykowanego sprzętu. Staje się to dość oczywiste przy przewijaniu na urządzeniach mobilnych - możesz przejść krótką drogę, aż zabraknie wstępnie obliczonych pikseli „poza ekranem”, a oprogramowanie będzie musiało się zatrzymać i renderować nieco więcej w buforach kompozytora.
Gry są przerysowywane co każdą klatkę, a literatura na temat budowania sceny. Jest to wbudowane w bufor ramki na karcie graficznej, który jest następnie przesyłany, gdy następna ramka jest wciągana do innego bufora.
Dekodowanie wideo jest zwykle przekazywane także dedykowanemu sprzętowi, zwłaszcza H.264.
źródło
Połączenie między kartą graficzną a panelem LCD jest przenoszone przez kilka szybkich par różnicowych z wykorzystaniem sygnalizacji TMDS , zwykle nazywanej „liniami”. Zazwyczaj stosuje się cztery pasy, więc można powiedzieć, że autobus ma szerokość 4 bitów. Aby uzyskać więcej informacji, istnieje odpowiedź Stackhexchange .
Każdy model panelu LCD jest zwykle produkowany z kilkoma inkarnacjami interfejsu, więc należy zachować ostrożność i spojrzeć na przyrostki, próbując wymienić uszkodzony panel. Większość nowoczesnych łączy cyfrowych (HDMI 1.4) ma 10,2 Gb / s lub zaledwie 2,5 Gb / s na linię. W twoich obliczeniach (663 MB / s) wynosi to 1,2 Gb / s na linię (przy założeniu 4 linii), co nie jest aż tak duże (na przykład SATA3 ma 6 Gb / s).
DODATEK na panelach LCD. Aktywna matryca LCD faktycznie próbuje przechowywać obraz klatki (dane w pikselach) w kondensatorach związanych z „Twisted Nematic Cells” (tym, który kontroluje polaryzację filmu). Problem polega na tym, że rozmiar czapek pamięci analogowej musi być kompromisem między czasem przechowywania a prędkością przełączania pikseli. Dlatego nie można go powiększyć, szybko traci potencjał i dlatego wymaga okresowego odświeżania . Każda komórka pikselowa jest połączona z liniami danych i adresu przez tranzystor (element „aktywny”), zobacz ten artykuł Tomshardware . Sterownik LCD-sterownik mulipleksuje linie danych i adresy wiersz po wierszu, utrzymując w ten sposób wyświetlany obraz. Sam obraz jest przechowywany w buforze ramek (RAM) wewnątrz kontrolera grafiki.
źródło