Je viens de faire quelques calculs rapides:
Sur mon MacBook, la résolution est de 2560x1440, multipliée par 24 bits. Pour les couleurs, nous obtenons 11,05 Mo pour une seule image ou 663 Mo par seconde à 60 ips .
J'imagine qu'il y a une certaine compression, mais par exemple lorsque je bouge avec trois doigts sur mon pavé tactile, c'est assez aléatoire, ce qui se passe ensuite à l'écran et presque tous les pixels changent. Identique à presque toutes les autres interactions.
Veuillez expliquer si mes calculs sont erronés et comment ces données sont-elles transférées de ma carte graphique à mon écran? Quelle est la largeur des bus entre ma carte graphique et mon écran? Peut-être expliquer en quelques mots comment un écran stocke des pixels? Registres à décalage? Cache?
la source
Réponses:
Vos calculs sont corrects en substance. Pour un signal 1440p60Hz, vous avez un débit de données de 5,8 Gbps une fois que vous avez également pris en compte le temps de suppression (bordure de pixel non visible dans la sortie d'image).
Pour HDMI / DVI, un codage 10 / 8b est utilisé, ce qui signifie que bien que vous ayez à dire 24 bits de données couleur par pixel, ce dernier est en fait envoyé lorsque les données sont codées et que des mots de contrôle de protocole sont ajoutés. Aucune compression n'est effectuée, les données brutes sont envoyées, ce qui signifie que vous avez besoin d'une bande passante de données de 7,25 Gbps .
Encore une fois en regardant HDMI / DVI. Il utilise la norme de signalisation "TDMS" pour le transfert de données. La norme HDMI V1.2 prescrit un maximum de 4,9 Gbps pour un lien unique (3 lignes de données série + 1 ligne d’horloge) ou, dans le cas du Dual-Link DVI, un maximum de 9,8 Gbps (6 lignes de données série, je pense ). La bande passante est donc plus que suffisante pour réaliser une résolution 1440p60 via un DVI Dual-Link, mais pas via une HDMI V1.2.
Dans la norme HDMI V1.3 (la plupart des appareils ont été passés à la V1.4a, qui correspond à la même bande passante que la 1.3), la bande passante a été doublée à environ 10 Gbps, ce qui prend en charge une résolution de 1440p60.
Par exemple, DisplayPort a 4 flux de données série, chacun capable (en V1.1) de 2,16 Gbps par flux (en tenant compte du codage). Ainsi, avec un lien V1.1, vous pouvez créer facilement 1440p60 avec les 4 flux. Ils ont également publié une norme plus récente, la V1.2, qui double ce nombre à 4,32 Gbps / flux, permettant ainsi un UHD à 60Hz. Il existe une version plus récente qu'ils ont encore poussée à 6.4 Gbps / flux .
Au départ, ces chiffres semblent énormes, mais en réalité moins quand on considère l’USB 3.0. Cela a été publié avec un débit de données de 5 Gbps sur un seul câble (en fait deux, un pour TX, un pour RX, mais je digresse). PCIe, que votre carte graphique utilise en interne, fonctionne actuellement à une vitesse allant jusqu'à 8 Gbit / s via une seule paire différentielle. Il n'est donc pas surprenant que les interfaces de données externes se rattrapent.
Mais la question demeure, comment fait-on? Lorsque vous pensez à VGA, il s’agit de fils simples pour les données R, V et B qui sont envoyés au format analogique. Comme nous le savons, l’analogique est très sensible au bruit, et le débit des DAC / ADC est également limité, ce qui limite énormément ce que vous pouvez faire passer (sachant que vous pouvez à peine faire 1440p60Hz sur VGA si vous êtes chanceux).
Cependant, avec les normes modernes, nous utilisons des normes numériques qui sont beaucoup plus insensibles au bruit (il suffit de distinguer le plus haut ou le plus bas plutôt que toutes les valeurs entre les deux), et vous supprimez également le besoin de conversion entre analogique et numérique.
De plus, l’avènement des standards différentiels sur les terminaisons simples aide beaucoup car vous comparez maintenant la valeur entre deux fils (différence + ve = 1, différence -ve = 0) plutôt que de comparer un seul fil avec un certain seuil. Cela signifie que l'atténuation est moins un problème, car elle affecte les deux fils de la même manière et s'atténue jusqu'à la tension du point médian - la "différence de tension" de l'œil devient plus petite, mais vous pouvez toujours savoir si elle est + ve ou -ve même si ce n'est que 100 mV ou moins. Les signaux asymétriques, une fois atténués, risquent de tomber en dessous de votre seuil et de devenir indiscernables, même si l'amplitude est toujours égale ou supérieure à 1V.
En utilisant une liaison série sur une liaison parallèle, nous pouvons également utiliser des débits de données plus rapides, car l’asymétrie cesse de poser problème. Dans un bus parallèle, disons large 32 bits, vous devez adapter parfaitement les caractéristiques de longueur et de propagation de 32 câbles afin que les signaux ne se décalent pas (décalage). Dans une liaison série, vous ne disposez que d’un seul câble, vous ne pouvez donc pas biaiser.
TL; DR Les données sont envoyées au débit binaire complet calculé (plusieurs Gbps), sans compression. Les techniques modernes de signalisation des liaisons numériques en série sur des paires différentielles rendent cela possible.
la source
Les ordinateurs modernes sont étonnamment rapides. Les gens chargeront volontiers des vidéos Full HD à 30 images par seconde sans se rendre compte que cela implique des milliards d'opérations arithmétiques par seconde. Les joueurs ont tendance à être un peu plus conscients de cela; une GTX 1060 vous rapportera 4,4 TFLOPS ( billion d’ opérations en virgule flottante par seconde).
Une autre réponse a abordé la nature multi-gigabits de HDMI, DisplayLink, etc.
L'écran lui-même ne stocke, en théorie, aucune donnée d'image.
(Certains écrans, notamment les téléviseurs, stockent une image ou deux pour appliquer le traitement des images. Cela augmente la latence et est impopulaire auprès des joueurs.)
Le sous-système graphique d’un ordinateur stocke les pixels dans une mémoire DRAM ordinaire. En règle générale, il ne redessine pas l'intégralité du processeur à chaque image, mais confie certaines fonctionnalités à des sous-systèmes dédiés et à un compositeur . Un compositeur permettra, par exemple, à chaque fenêtre du bureau d'être stockée sous la forme d'un ensemble distinct de pixels, qui peuvent ensuite être déplacés, défilés ou zoomés par le matériel dédié. Cela devient assez évident avec le défilement sur les appareils mobiles - vous pouvez aller très vite jusqu'à ce que vous manquiez de pixels pré-calculés "hors écran" et que le logiciel doive s'arrêter et en redonner un peu plus dans les tampons du compositeur.
Les jeux sont redessinés à chaque image, et il y a beaucoup de littérature sur la manière dont une scène est construite. Ceci est construit dans un framebuffer sur la carte graphique qui est ensuite transmis tandis que la trame suivante est dessinée dans une mémoire tampon différente.
Le décodage vidéo est généralement attribué également au matériel dédié, notamment H.264.
la source
La liaison entre la carte graphique et le panneau LCD est assurée par plusieurs paires différentielles à grande vitesse utilisant la signalisation TMDS , généralement appelée "voies". On utilise généralement quatre voies. On peut donc dire que le bus a une largeur de 4 bits. Pour plus de détails, il existe une réponse stackhexchange .
Chaque modèle de panneau LCD est généralement produit avec plusieurs interfaces incarnées. Il faut donc être prudent et regarder les suffixes lorsque vous essayez de remplacer un panneau endommagé. La liaison numérique la plus moderne (HDMI 1.4) a 10,2 Gbps, soit seulement 2,5 Gbps par voie. Dans vos calculs (663 Mbps), il totalise 1,2 Gbps par voie (en supposant 4 voies), ce qui n’est pas très élevé (par exemple, SATA3 a 6 Gbps).
ADDITION sur des panneaux LCD. L’écran à matrice active tente en réalité de stocker l’image de la trame (données de pixels) dans des condensateurs associés à des "cellules nématiques torsadées" (celles qui contrôlent la polarisation du film). Le problème est que la taille des limites de stockage analogique doit être un compromis entre la durée de stockage et la vitesse de commutation de pixels. Il ne peut donc pas être volumineux, perd rapidement son potentiel stocké et nécessite par conséquent un rafraîchissement périodique . Chaque cellule de pixel est connectée à des lignes de données et d’adresses via un transistor (élément "actif"), voir cet article de Tomshardware . Le pilote-contrôleur LCD multiplexe les lignes de données et d’adresses ligne par ligne, maintenant ainsi l’image affichée. L'image elle-même est stockée dans une mémoire tampon (RAM) à l'intérieur du contrôleur graphique.
la source