Log in

View Full Version : Video Synchronization question


hoozdapimp
13th July 2003, 02:19
Hello All,
I'm taking a class in basic multimedia and this question was given to me for homework...now he told all the class that the notes in class would not give us the answer and that we must use the "internet" to find the answer. Hence I pose this question to all of you :)

Assume that you are making a new TV standard called NEWTVSTD. This is different from NTSC in the sense that, instead of fixing the frame rate to be 29.97 frames per second, you have fixed it to be 29.89 frames per second. Now you want to propose a “drop frame” technique in which you drop some frame numbers from each minute to achieve synchronization with displays that run at 30Hz. Describe what frame numbers you will drop from which minute, and clearly show the reason for your answer.

Any help would be appreciated,
Scott

mpucoder
13th July 2003, 03:22
Is this the actual wording of the question? If so, your professor needs to take a course or two in NTSC.
The displays do not run at 30Hz, they refresh at the same rate (59.95 fields per second) as the video.
Dropped frame numbers are not for the purpose of synchronization to a 30Hz display. They are to allow a modulo 30 frame count to accomodate the 29.97 frame rate. For every 1000 frames the count must appear to be 1001 frames.
That would suggest that every 33 seconds and 10 frames that one frame number would be skipped. But that's not how it works, because the frame numbers are skipped in pairs, at the start of a new time code (second). ie frame numbers 0 and 1 are the frame numbers skipped. There is a scheme for skipping the numbers that is fairly accurate (drop 2 frame numbers on every minute except those evenly divisible by 10, yields 18 dropped frame numbers in 10 minutes, or 17982 frames, which is 600*29.97) but because 29.97 is not the exact framerate, there still is an error. (The true framerate of NTSC is determined by the color subcarrier frequency (3579450Hz) divided by the number of color clocks per line (227.5) and the number of lines per frame (525), or 29.96923077fps)

What the question asks is to devise a method of skipping 11 frame numbers every 3000 frames counts (or 2989 frames). Start by dividing 3000/11, and then determine on which minute a frame number should be dropped. Since it takes 100 seconds for 3000 frame numbers, you'll be dropping a lot of them. And you should continue until the LGM of 100 (the duration of 3000 frame numbers) and 60 (the duration of one minute), ie 300 seconds (5 minutes) in which time 33 frame numbers should have been dropped.

hoozdapimp
13th July 2003, 06:36
Wow, thank you for the reply....I still have a few questions for you though :) (and yes that was the exact wording of the question)

I have re-read your answer many times, but I'm a newbie at this stuff so maybe a little more detail would help? :)

1) Why do you divide 300/11 ? What does this tell you?
2) What do you mean when you say "and then determine on which minute a frame number should be dropped"?

Maybe could you draw the process out for me on exactly what calculations I need to make in order to answer the question.

I very much appreciate your response already and look forward to further information.
Scott

ppera2
13th July 2003, 07:10
This question is pretty nonsense:
You can not achieve syncronization with display by dropping frames - display is that what must syncronize self to video source.

Second problem: if framerate is lower, we need to INSERT and not to drop frames to achieve higher framerate.

Looking from angle of doom9 forum member it has sense in video editing. Something like AVISynth script, better said command: ChangeFPS(30), while source has 29.89 fps.

30*60=1800
29.89*60=1793.4

So answer would be: you need to drop -6.6 frames per minute to get 30 fps from 29.89. (Of course -6.6 means actually: insert 6.6 frames).

Because question says: displays that run at 30 Hz (btw. this is also nonsense, especially because he talked about NTSC, and not progressive scan).
Maybe whole thing has some sense by timebase correctors, when we need to get some exact fps to accomodate standard, but I don't know how them work.

mpucoder
13th July 2003, 17:02
No, I won't do the assignment for you :)
3000/11 tells you after how many frames a frame count needs to be dropped. You can also see that in terms of seconds (100/11) or, as the final paragraph said, in terms of frames over a period of time (33 frames every 5 minutes, or as ppera said, 6.6 frames per minute)

ppera may have misunderstood the question, I'm assuming by "making a new standard" that there are monitors/televisions which can sync to this framerate. But your teacher/professor is wrong in stating that drop frame is used to synchronize receivers. It is not, they run at whatever framerate the standard uses. Drop frame is part of a complete term "drop frame time code" - frames are not dropped, only the codes for certain frames are skipped to correct for the difference in true framerate, and the assumed rate of 30fps for purposes of counting.

@ppera: timebase correctors (TBCs). They come in two varieties, the true timebase correctors have no more than 2 lines of storage, usually analog, and are used to correct the short term instability, or wobble, of mechanical reproducers (VTRs and VCRs). Broadcast VTRs are mechanically synchronized to the station master clock, but they are mechanical, so there is some speeding up and slowing down as they do this.
The other kind is more correctly known as a DFS, or Digital Frame Sync. They use digital storage to hold entire frames. The storage rate is determined by the source, and the readout rate is controlled either by an internal time standard or the system timing, called "station black". The ones that sync to station black are called genlocking DFSs, as they lock onto an external timing signal.
How they work is pretty simple, its called chasing playback, using double buffering. So long as the next field to be displayed has been, or will be, completely written to the buffer prior to reaching the end of readout, it is used. Otherwise the same field from the previous frame is used. Logic ensures that time either moves forward or stands still, but never goes backward. Loss of signal can be handled in several ways, usually by replacing the lost video with the previously stored data. If you want to see DFSs handling loss-of-signal, just watch auto racing (NASCAR or CART), the in car cameras are all buffered through DFSs.

ppera2
13th July 2003, 19:41
Originally posted by mpucoder

ppera may have misunderstood the question, I'm assuming by "making a new standard" that there are monitors/televisions which can sync to this framerate....
@ppera: timebase correctors (TBCs). They come in two varieties, the true timebase correctors have no more than 2 lines of storage, usually analog, and are used to correct the short term instability, or wobble, of mechanical reproducers (VTRs and VCRs). Broadcast VTRs are mechanically synchronized to the station master clock, but they are mechanical, so there is some speeding up and slowing down as they do this.
The other kind is more correctly known as a DFS, or Digital Frame Sync...

I would not spend more time about question from school, it's really sad to see so little knowledge by teachers. It's more like some mathematic question.

Making new standard can't stay for monitors - so little difference in fps. can handle every monitor easy.

About TBC: sure that it must store frames and sometimes repeat them from memory to output (or drop if source is too fast). As I see by satellite transmissions if some error is by, they repeat (or hold) last valid frame to maintain video flow.
And as I see program Win DVR uses similar technique when frame drop happens.

hoozdapimp
14th July 2003, 01:33
Thank you all for your help, I am quite confident with my answer now that I have worked some of the math out. I also wrote my professor an email and he admitted the wording of the question is wrong. He did emphasize that no frames are dropped, but rather they are skipped to keep the time correct.
Thanks again,
Scott