SMPTE timecode ( or ) is a set of cooperating standards to label individual frames of video or film with a timecode. The system is defined by the Society of Motion Picture and Television Engineers in the SMPTE 12M specification. SMPTE revised the standard in 2008, turning it into a two-part document: SMPTE 12M-1 and SMPTE 12M-2, including new explanations and clarifications. A further revision, SMPTE 12M-3, expanded the standard to higher frame rates. Timecodes are added to film, video or audio material, and have also been adapted to synchronize music and theatrical production. They provide a time reference for editing, synchronization and identification. Timecode is a form of media metadata. The invention of timecode made modern videotape editing possible and led eventually to the creation of non-linear editing systems.
Basic concepts
SMPTE timecode is presented in hour:minute:second:frame format and is typically represented in 32 bits using binary-coded decimal. There are also drop-frame and color framing flags and three extra binary group flag bits used for defining the use of the user bits. The formats of other varieties of SMPTE timecode are derived from that of the linear timecode. More complex timecodes such as vertical interval timecode can also include extra information in a variety of encodings. Sub-second timecode time values are expressed in terms of frames. Common supported frame rates include:
23.98 (24 ÷ 1.001) frame/s (North American HDTV), sometimes also more precisely specified as 23.976. 24 frame/s (film, ATSC, 2K, 4K, 6K) 25 frame/s (PAL (Europe, Uruguay, Argentina, Australia), SECAM, DVB, ATSC) 29.97 (30 ÷ 1.001) frame/s (NTSC American System (U.S., Canada, Mexico, Colombia, et al.), ATSC, PAL-M (Brazil)) 30 frame/s (ATSC) In general, SMPTE timecode frame rate information is implicit, known from the rate of arrival of the timecode from the medium. It may also be specified in other metadata encoded in the medium. The interpretation of several bits, including the color framing and drop frame bits, depends on the underlying data rate. In particular, the drop frame bit is only valid for 29.97 and 30 frame/s
Discontinuous timecode, and flywheel processing Timecodes are generated as a continuous stream of sequential data values. In some applications wall-clock time is used, in others the time encoded is a notional time with more arbitrary reference. After making a series of recordings, recorded timecodes typically consist of discontinuous segments. For systems using real-time video and audio signals, timecode frames start at or around the vertical sync of a video frame, so it is not possible to know the linear timecode of the current frame until the frame has already gone by. Practical real-time timecode decoders use a "flywheel" algorithm follows the ascending sequence of timecodes, and infer the time of the current frame from that, something which is also useful to skip over bit errors or dropouts in the timecode stream. However, this requires a series of good timecodes to establish the ascending sequence in the first place, and thus a boundary between discontinuous timecode ranges cannot be determined by this algorithm until several subsequent frames have passed. This restriction does not apply to systems that can access both previous and subsequent timecodes to establish a particular frame's timecode. Modern non-linear editing systems are not subject to any of these restrictions, because their video streams are contained within compressed data streams, with timecode information held as metadata.
Drop-frame timecode Drop-frame timecode originates from a compromise introduced when color NTSC video was invented. The NTSC designers wanted to retain compatibility with existing monochrome televisions. To minimize subcarrier visibility on a monochrome receiver it was necessary to make the color subcarrier an odd multiple of half the line scan frequency; the multiple originally chosen was 495. With a 30 Hz frame rate the line scan frequency is (30 × 525) = 15750 Hz. So the subcarrier frequency would have been 495/2 × 15750 = 3.898125 MHz. This was the subcarrier frequency originally chosen, but tests showed that on some monochrome receivers an interference pattern caused by the beat between the color subcarrier and the 4.5 MHz sound intercarrier could be seen. The visibility of this pattern could be greatly reduced by lowering the subcarrier frequency multiple to 455 (thus increasing the beat frequency from approximately 600 kHz to approximately 920 kHz) and by making the beat frequency also equal to an odd multiple of half the line scan frequency. This latter change could have been achieved by raising the sound intercarrier by 0.1% to 4.5045 MHz, but the designers, concerned that this might cause problems with some existing receivers, decided instead to reduce the color subcarrier frequency, and thus both the line scan frequency and the frame rate, by 0.1% instead. Thus the NTSC color subcarrier ended up as 3.57954 MHz (315/88 MHz), the line scan frequency as 15.734265 kHz (9/572 MHz) and the frame rate 29.970029 Hz (30/1.001 Hz). The altered frame rate meant that an hour of timecode at a nominal frame rate of 29.97 frame/s was longer than an hour of wall-clock time by 3.6 seconds (for 29.97 non-drop timecode of 01:00:00:00 drop-frame timecode is 01:00:03;18 and for non-drop 00:59:56:12 drop-frame is 01:00:00;00), leading to an error of almost a minute and a half over a day. To correct this, drop-frame SMPTE timecode was invented. In spite of what the name implies, no video frames are dropped or skipped when using drop-frame timecode. Rather, some of the timecodes are dropped. In order to make an hour of timecode match an hour on the clock, drop-frame timecode skips frame numbers 0 and 1 of the first second of every minute, except when the number of minutes is divisible by ten. This causes timecode to skip 18 frames each ten minutes (18,000 frames @ 30 frame/s) and almost perfectly compensates for the difference in rate (but still accumulates 1 frame every 9 hours 15 minutes). For example, the sequence when frame counts are dropped:
01:08:59:28 01:08:59:29 01:09:00:02 01:09:00:03 For each tenth minute
… excerpt ends here. Continue reading the full article.



