2010-06-16 12 views
5

Jeśli mam wideo odtwarzane z prędkością 30 klatek na sekundę, czas trwania każdej klatki wynosi 1/30 sekundy lub 33.333333 ... milisekund.W jaki sposób obliczany jest czas trwania ramki dla powtarzania miejsc dziesiętnych?

Zakładając, że implementujesz odtwarzacz wideo, w jaki sposób poradzisz sobie z faktem, że czas trwania każdej klatki jest reprezentowany przez dziesiętną liczbę powtórzeń?

Na przykład, jeśli skrócimy czas trwania pierwszych 29 klatek do 33,33 milisekund, to czas trwania 30 klatki będzie musiał być nieco dłuższy, 33,43 milisekundy, aby utrzymać szybkość 30 klatek na sekundę.

Czy istnieje standardowy sposób, w jaki oprogramowanie do odtwarzania wideo obsługuje to?

+0

Wydawałoby się, że zaokrąglanie jest standardową metodą - w końcu nie ma znaczenia, czy klatka jest wyświetlana przez 33,33 lub 33,34 ms, o ile wszystko daje 30 klatek na sekundę. W każdym razie, z płaskimi panelami, setne części ms nie spowoduje zauważalnej różnicy, a granica wykrywalności człowieka wynosi co najwyżej gdzieś w ciągu jednego ms. Zakładając, że implementowałem odtwarzacz wideo, martwiłbym się bardziej o buforowanie i wydajne dekodowanie - pominięcia są * bardzo * zauważalne i powszechne. – Piskvor

Odpowiedz

2

Jeśli używasz podwójnej wątpliwości, powinieneś mieć jakiekolwiek problemy :) Nieważne, nigdy nie będziesz w stanie kontrolować tak precyzyjnie, że runda błędów w Twoim czasie spowoduje problemy. W implementacji odtwarzacza wideo jest znacznie więcej problemów.

+0

+1 Nie można się z tobą zgodzić więcej .... –

+0

Tak, pytanie wydaje się dość naiwne. Nigdy nie byłbyś w stanie narysować klatek dokładnie na 33.3333 ... na sekundę, powtarzając dziesiętnie lub nie. Każda klatka ma pewną zmienność. – Qwertie

Powiązane problemy