---
title: "TVID: De l'image a l'ecran"
date: 2021-11-17 14:00
categories: [Image S9, TVID]
tags: [Image, S9, TVID]
math: true
---
Lien de la [note Hackmd](https://hackmd.io/@lemasymasa/BJIwcdMdY)
# Cadences en pratique
:::warning
On a des problemes de precisions
:::
Tout est entier:
- PTS: temps image source
- STC: temps horloge affichage
Resolution d'increment: TIR
- TIR(PTS) = duree d'une seconde dans le flux video
- TIR(STC) = duree d'une seconde a l'affichage
Si TIR(PTS) non \% TIR(STC), probleme de $\color{red}{\text{fraction continue!}}$
## Exemple
TIR PTS = 90000 = 1 seconde
Supposons STC = timer hardware a 5 KHz
- TIR(STC) $=5000$
Pour un affichage a 50 fps:
- $\Delta STC=5000/50=100$ (TIR \%)
*Comment comparer STC avec TIR(STC) = 5000 vs PTS avec TIR(PTS) = 90000*
:::success
Produit en croix
:::
$$
STC' = STC \times TIR(PTS) / TIR(STC) = STC \times 18
$$
STC' comparable avec PTS
:::warning
Mais jitter de STC multiplie par $18$
:::
Adaptation source 59,97 ips -> affichage 60 ips
- Theoriquement: adaptation par repetition 1 image sur 1000
- En pratique: jitter PTS + jitter STC
- Tremblement du criteres PTS - STC
# Bufferisation
On veut envoyer a l'affichage une image a l'heure !
On fait de la bufferisation pour les jeux CGI realtime
:::info
**Bufferisation**: art de choisir l'image a afficher
:::
:::danger
Il faut qu'il y ait toujours une image a l'ecran
:::
## Bufferisation non VSYNC
:::info
Envoyer le backbuffer suivant des qu'il est pret
:::
Avantages:
- Un seul backbuffer
- Rapide
Inconvenient:
- $\color{red}{\text{Tearing back/front}}$
![](https://i.imgur.com/7iBgIHD.png)
## Bufferisation VSYNC
:::info
Permutter frontbuffer et back buffer
:::
Avantages
- Pas de tearing
Inconvenient
- $\color{red}{\text{Producteur aussi leant que l'afficheur}}$
![](https://i.imgur.com/SCL6MJI.png)
:::danger
Notre jeu/application va etre ralenti
:::
> C'est le meme phenomene que celui du passage des jeux japonais aux consoles europeennes avec des jeux $20\%$ plus lent
## Bufferisation triple + VSYNC
:::info
Deux backbuffers composes en alterance
:::
- Au VSYNC: envoyer le backbuffer pret en front buffer
- Avantages
- Pas de tearing
- Decouplage cadence production vs affichage
- Inconvenients
- $\color{red}{\text{Deux backbuffers}}$
- $\color{red}{\text{CPU/GPU a donf}}$
![](https://i.imgur.com/ed7inHw.png)
# Comment afficher ?
*Comment cadrer l'image dans l'ecran ?*
- En frequence
- En phase
En frequence:
- Pulses verticaux: VSYNC
- Pulses horizontaux: HSYNC
En phase:
- Palliers avant/arriere
Pulses et palliers normalises
VGA, DVI, HDMI: Display Data Channel => Extended Display Identification Data
Xorg: "Modelines"
## Cadrage d'une image
![](https://i.imgur.com/Gw6g3gQ.png)
- Vertical blanking
- Horizontal blanking
### DVI/HDMI
![](https://i.imgur.com/zjrY10D.png)
## HDMI 3D
*Comment afficher des images 3D ?*
- Plusieurs formats 3D numeriques
- Dans tous les cas, pixel clock $\times 2$
Checkerboard (NVIDIA):
- VBlank + VSync
- HSyncs + Lignes de pixels OG/OD en quinconce
- Lignes deux fois plus larges
![](https://i.imgur.com/8IcUffb.png)
Frame pack (HDMI 1.4A)
![](https://i.imgur.com/ClQovQL.png)
![](https://i.imgur.com/ktT5ZZK.png)
## Analogique
![](https://i.imgur.com/VVMnsar.png)