2010-06-16 24 views
5

Si j'ai une vidéo qui joue à 30fps, alors la durée de chaque image est 1/30ème de seconde ou 33,333333 ... millisecondes.Comment la durée de trame est-elle calculée pour les décimales répétées?

Supposons que vous implémentiez un lecteur vidéo, comment gérez-vous le fait que la durée de chaque image est représentée par un nombre décimal répété? Par exemple, si vous tronquez la durée des 29 premières images à 33,33 millisecondes, la durée de la 30ème trame devra être légèrement plus longue, 33,43 millisecondes, afin de maintenir un taux de 30 images par seconde.

Existe-t-il un moyen standard que le logiciel de lecture vidéo gère cela?

+0

Je pense que l'arrondi est le moyen standard - après tout, peu importe si le cadre affiche 33,33 ou 33,34 ms, à condition que tout ajoute jusqu'à 30 fps. Quoi qu'il en soit, avec des panneaux plats, les centièmes de ms ne feront pas une différence notable, et la limite de détection humaine est au plus quelque part dans le ms simple. En supposant que je mettais en place un lecteur vidéo, je m'inquiéterais davantage de la mise en mémoire tampon et d'un décodage efficace - les sauts sont * très * visibles et communs. – Piskvor

Répondre

2

Si vous utilisez un double, je doute que vous ayez des problèmes :) Non, sérieusement, vous ne serez jamais capable de contrôler le chronométrage aussi précisément que la série d'erreurs dans votre timing causera des problèmes. Il y a beaucoup plus de problèmes dans l'implémentation d'un lecteur vidéo que cela.

+0

+1 Je ne suis pas d'accord avec vous plus .... –

+0

Oui, la question semble assez naïve. Vous ne seriez jamais capable de dessiner des images exactement à 33,3333 ... par seconde, répétant des décimales ou non. Il y a une variation à chaque image. – Qwertie