Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.30 KB | None | 0 0
  1. from math import *
  2.  
  3. # Ce script permet de générer des timings videos en fonctions des paramètres entrés.
  4. # Il n'est en aucun cas optimisé mais fonctionne parfaitement.
  5. # Toutes les limites de paramètres ne sont pas gérées, faite attention à ce que vous faites.
  6. # Ce script peut etre utilisé comme vous le voulez, pas le licence/copyright ou autre machin du genre.
  7. # Donc forcement, aucune resposabilité concernant son utilisation...
  8.  
  9. # Les valeurs classiques à entrer sont la resolution verticale et la frequence.
  10. # La resolution honrizontal est fixée à 1920 pixels.
  11. #
  12. # 3 autres paramètres peuvent etre modifiés pour centrer la résolution.
  13. # H_Pos correspond à la position de l'écran horizontalement.
  14. # H_Zoom correspond à la taille de l'écran horizontalement.
  15. # V_Pos correspond à la position de l'écran verticalement.
  16. # Pas de zoom possible verticalement. Cela depend de la resolution et du mode 525/625 lignes.
  17.  
  18.  
  19. # Resolution Verticale. 50Hz:(192 à 288) - 60Hz:(192 à 256) - ex : 240
  20. V_Res=240
  21.  
  22. # Fréquence (47 a 62) - ex : 60
  23. R_Rate=60
  24.  
  25. # Position Horizontale (-x à +x) Depend du Zoom Horizontal
  26. H_Pos=6
  27.  
  28. # Zoom Horizontal (-50 à +12)
  29. H_Zoom=-25
  30.  
  31. # Position Verticale (0 à x) Depend du nombre de lignes et do mode 525/625 lignes
  32. V_Pos=5
  33.  
  34.  
  35. # Parametres stadard qui peuvent etre adptés pour certains moniteur recalcitrants.
  36. # Attention, scripts non optimisé pour la gestion des parametres modifés
  37. # Vous pouvez néanmoins modofier le V_Sync et le H_Freq sans probleme.
  38.  
  39. # Resolution Horizontale (ex : 1920)
  40. H_Res=1920
  41.  
  42. # Horizontal Front Porch (ex : 48)
  43. H_FP=48
  44.  
  45. # Horizontal Sync (ex : 192)
  46. H_Sync=192
  47.  
  48. # Horizontal Back Porch (ex : 240)
  49. H_BP=240
  50.  
  51. # Vertical Sync (ex : 6)
  52. V_Sync=6
  53.  
  54. # Horizontal Frequency to reach
  55. H_Freq=15720
  56.  
  57.  
  58. print "V_Res :  ",V_Res,"           * Résolution verticale, nombre de scanlines."
  59. print "R_Rate : ",R_Rate,"            * Fréquence de rafraichissement de l'écran."
  60. print "H_Pos :  ",H_Pos,"             * Position horizontale de la résolution."
  61. print "H_Zoom : ",H_Zoom,"           * Zoom de la resolution."
  62. print "V_Pos :  ",V_Pos,"             * Position verticale de la résolution."
  63. print " "
  64. print "H_Res :  ",H_Res,"          * Résolution horizontale de 1920 pixels."
  65. print "H_FP :   ",H_FP,"            * Front Porch Horizontal standard."
  66. print "H_Sync : ",H_Sync,"           * Synchronisation horizontale standard."
  67. print "H_BP :   ",H_BP,"           * Back Porch Horizontal standard."
  68. print "V_Sync : ",V_Sync,"             * Synchronisation verticale standard."
  69. print "H_Freq : ",H_Freq,"         * Fréquence horizontale de base pour le calcul des Timings."
  70. print " "
  71.  
  72.  
  73. # Mise à l'echelle des Front et back porch horizontax en fonctions des parametre de positio et de zoom
  74. H_FP=H_FP-(H_Zoom*4)-(H_Pos*4)
  75. H_BP=H_BP-(H_Zoom*4)+(H_Pos*4)
  76.  
  77. # Juste un petit control/correction pour ne pas avoir de valeur negative, sinon on torche le Rpi.
  78. if H_FP < 0 :
  79.   print "Attention : H_FP < 0. Correction appliquée."
  80.   H_FP = 0
  81.  
  82. if H_BP < 0 :
  83.   print "Attention : H_BP < 0. Correction appliquée."
  84.   H_BP = 0
  85.  
  86.  
  87. # *** Calcul de H_Total ***
  88. H_Total=(H_Res+H_FP+H_Sync+H_BP)
  89. print "H_Total : ",H_Total,"          H_Res + H_FP + H_Sync + H_BP."
  90. print "H_Total : ",H_Total,"         ",H_Res,"+",H_FP,"+",H_Sync,"+",H_BP
  91. print " "
  92.  
  93.  
  94. # *** Diviser H_Freq par le Framerate pour obtenir un nombre de lignes ***
  95. V_Total=H_Freq/R_Rate
  96. print "V_Total :     ",V_Total,"       (H_Freq / R_Rate)  ",H_Freq,"/",R_Rate
  97. V_Total=int(ceil(V_Total))
  98. print "V_Total :     ",V_Total,"       Lignes. Arrondi supérieur."
  99. print "                          Au dessus de 288 lignes, une TV PAL/NTSC passe en mode 625 lignes."
  100. print "                          Mode 525 lignes (NTSC), Environ 232 lignes visibles. Varie en fonction de la TV."
  101. print "                          Mode 625 lignes (PAL), Environ 272 lignes visibles. Varie en fonction de la TV."
  102. print ""
  103.  
  104.  
  105. # *** Multiplie le nombre entier de lignes par la frequence pour obtenir le Honrizontal ***
  106. Horizontal=V_Total*R_Rate
  107. print "Horizontal :  ",Horizontal,"     (V_Total * R_Rate)  ",V_Total,"*",R_Rate
  108. Horizontal=int(ceil(Horizontal))
  109. print "Horizontal :  ",Horizontal,"     Hertz. Arrondi supérieur."
  110. print " "
  111.  
  112.  
  113. # *** Multiplier le Honrizontal par le H_Total pour obtenir le pixel clock ***
  114. Pixel_Clock=Horizontal*H_Total
  115. print "Pixel Clock : ",Pixel_Clock,"  (Horizontal * H_Total)  ",Horizontal,"*",H_Total
  116. print "Pixel Clock : ",Pixel_Clock,"  Hertz."
  117.  
  118.  
  119. # Calcul de V_FP
  120. V_FP=V_Total-V_Res
  121. V_FP=V_FP-V_Sync
  122. V_FP=V_FP/2
  123. V_FP=int(floor(V_FP))
  124.  
  125. print " "
  126. print "V_FP :  ",V_FP,"               Front Porch vertical calculé. Voir formule dans le script."
  127. print "V_Pos : ",V_Pos,"               Correction à apporter (Offset Position verticale)"
  128.  
  129. if V_Pos > V_FP :
  130.   print "Attention : V_Pos > V_FP  Correction appliquée."
  131.   V_Pos = V_FP
  132.  
  133. # Ajustement de position
  134. V_FP=V_FP-V_Pos
  135.  
  136. print "V_FP :  ",V_FP,"               Front Porch vertical corrigé"
  137. print " "
  138.  
  139.  
  140. # Calcul de V_BP
  141. V_BP=V_Total-V_Res
  142. V_BP=V_BP-V_Sync
  143. V_BP=int(V_BP-V_FP)
  144.  
  145. print "V_BP :  ",V_BP,"               Back Porch vertical calculé"
  146.  
  147.  
  148. print " "
  149. print " "
  150. print "Timings générés : "
  151. 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