Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import *
- # Ce script permet de générer des timings videos en fonctions des paramètres entrés.
- # Il n'est en aucun cas optimisé mais fonctionne parfaitement.
- # Toutes les limites de paramètres ne sont pas gérées, faite attention à ce que vous faites.
- # Ce script peut etre utilisé comme vous le voulez, pas le licence/copyright ou autre machin du genre.
- # Donc forcement, aucune resposabilité concernant son utilisation...
- # Les valeurs classiques à entrer sont la resolution verticale et la frequence.
- # La resolution honrizontal est fixée à 1920 pixels.
- #
- # 3 autres paramètres peuvent etre modifiés pour centrer la résolution.
- # H_Pos correspond à la position de l'écran horizontalement.
- # H_Zoom correspond à la taille de l'écran horizontalement.
- # V_Pos correspond à la position de l'écran verticalement.
- # Pas de zoom possible verticalement. Cela depend de la resolution et du mode 525/625 lignes.
- # Resolution Verticale. 50Hz:(192 à 288) - 60Hz:(192 à 256) - ex : 240
- V_Res=240
- # Fréquence (47 a 62) - ex : 60
- R_Rate=60
- # Position Horizontale (-x à +x) Depend du Zoom Horizontal
- H_Pos=6
- # Zoom Horizontal (-50 à +12)
- H_Zoom=-25
- # Position Verticale (0 à x) Depend du nombre de lignes et do mode 525/625 lignes
- V_Pos=5
- # Parametres stadard qui peuvent etre adptés pour certains moniteur recalcitrants.
- # Attention, scripts non optimisé pour la gestion des parametres modifés
- # Vous pouvez néanmoins modofier le V_Sync et le H_Freq sans probleme.
- # Resolution Horizontale (ex : 1920)
- H_Res=1920
- # Horizontal Front Porch (ex : 48)
- H_FP=48
- # Horizontal Sync (ex : 192)
- H_Sync=192
- # Horizontal Back Porch (ex : 240)
- H_BP=240
- # Vertical Sync (ex : 6)
- V_Sync=6
- # Horizontal Frequency to reach
- H_Freq=15720
- print "V_Res : ",V_Res," * Résolution verticale, nombre de scanlines."
- print "R_Rate : ",R_Rate," * Fréquence de rafraichissement de l'écran."
- print "H_Pos : ",H_Pos," * Position horizontale de la résolution."
- print "H_Zoom : ",H_Zoom," * Zoom de la resolution."
- print "V_Pos : ",V_Pos," * Position verticale de la résolution."
- print " "
- print "H_Res : ",H_Res," * Résolution horizontale de 1920 pixels."
- print "H_FP : ",H_FP," * Front Porch Horizontal standard."
- print "H_Sync : ",H_Sync," * Synchronisation horizontale standard."
- print "H_BP : ",H_BP," * Back Porch Horizontal standard."
- print "V_Sync : ",V_Sync," * Synchronisation verticale standard."
- print "H_Freq : ",H_Freq," * Fréquence horizontale de base pour le calcul des Timings."
- print " "
- # Mise à l'echelle des Front et back porch horizontax en fonctions des parametre de positio et de zoom
- H_FP=H_FP-(H_Zoom*4)-(H_Pos*4)
- H_BP=H_BP-(H_Zoom*4)+(H_Pos*4)
- # Juste un petit control/correction pour ne pas avoir de valeur negative, sinon on torche le Rpi.
- if H_FP < 0 :
- print "Attention : H_FP < 0. Correction appliquée."
- H_FP = 0
- if H_BP < 0 :
- print "Attention : H_BP < 0. Correction appliquée."
- H_BP = 0
- # *** Calcul de H_Total ***
- H_Total=(H_Res+H_FP+H_Sync+H_BP)
- print "H_Total : ",H_Total," H_Res + H_FP + H_Sync + H_BP."
- print "H_Total : ",H_Total," ",H_Res,"+",H_FP,"+",H_Sync,"+",H_BP
- print " "
- # *** Diviser H_Freq par le Framerate pour obtenir un nombre de lignes ***
- V_Total=H_Freq/R_Rate
- print "V_Total : ",V_Total," (H_Freq / R_Rate) ",H_Freq,"/",R_Rate
- V_Total=int(ceil(V_Total))
- print "V_Total : ",V_Total," Lignes. Arrondi supérieur."
- print " Au dessus de 288 lignes, une TV PAL/NTSC passe en mode 625 lignes."
- print " Mode 525 lignes (NTSC), Environ 232 lignes visibles. Varie en fonction de la TV."
- print " Mode 625 lignes (PAL), Environ 272 lignes visibles. Varie en fonction de la TV."
- print ""
- # *** Multiplie le nombre entier de lignes par la frequence pour obtenir le Honrizontal ***
- Horizontal=V_Total*R_Rate
- print "Horizontal : ",Horizontal," (V_Total * R_Rate) ",V_Total,"*",R_Rate
- Horizontal=int(ceil(Horizontal))
- print "Horizontal : ",Horizontal," Hertz. Arrondi supérieur."
- print " "
- # *** Multiplier le Honrizontal par le H_Total pour obtenir le pixel clock ***
- Pixel_Clock=Horizontal*H_Total
- print "Pixel Clock : ",Pixel_Clock," (Horizontal * H_Total) ",Horizontal,"*",H_Total
- print "Pixel Clock : ",Pixel_Clock," Hertz."
- # Calcul de V_FP
- V_FP=V_Total-V_Res
- V_FP=V_FP-V_Sync
- V_FP=V_FP/2
- V_FP=int(floor(V_FP))
- print " "
- print "V_FP : ",V_FP," Front Porch vertical calculé. Voir formule dans le script."
- print "V_Pos : ",V_Pos," Correction à apporter (Offset Position verticale)"
- if V_Pos > V_FP :
- print "Attention : V_Pos > V_FP Correction appliquée."
- V_Pos = V_FP
- # Ajustement de position
- V_FP=V_FP-V_Pos
- print "V_FP : ",V_FP," Front Porch vertical corrigé"
- print " "
- # Calcul de V_BP
- V_BP=V_Total-V_Res
- V_BP=V_BP-V_Sync
- V_BP=int(V_BP-V_FP)
- print "V_BP : ",V_BP," Back Porch vertical calculé"
- print " "
- print " "
- print "Timings générés : "
- print "hdmi_timings",H_Res,"1",H_FP,H_Sync,H_BP,V_Res,"1",V_FP,V_Sync,V_BP,"0 0 0",R_Rate,"0",Pixel_Clock,"1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement