Jump to content

Vertical interval timecode

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 71.41.210.146 (talk) at 14:13, 7 April 2011 (Slight revision.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Vertical Interval TimeCode (VITC, pronounced "vitsee") is a form of SMPTE timecode embedded as a pair of black-and-white bars in a video signal. These lines are typically inserted into the vertical blanking interval of the video signal. There can be more than one VITC pair in a single frame of video: this can be used to encode extra data that will not fit in a standard timecode frame.

VITC contains the same payload as SMPTE linear timecode frame embedded in a new frame structure with extra synchronization bits and an error-detection checksum. The VITC code is always repeated on two adjacent video lines, one in each field. This internal redundancy is exploited by VITC readers, in addition to the standard timecode "flywheel" algorithm.

A video frame may contain more than one VITC code if necessary, recorded on different line-pairs. This is often used in production, where different entities may want to encode different sets of time-code metadata on the same tape.

As a practical matter, VITC can be more 'frame-accurate' than Linear timecode (LTC), particularly at very slow tape speeds on analog formats. LTC readers can lose track of code at slow jog speeds whereas VITC can be read frame-by-frame if need be. At high speeds (FF/REW), the VITC is often unreadable due to image distortions, so the LTC is often used instead. Some VCRs have an auto selection between the two formats to provide the highest accuracy.

VITC is 90 bits long: 32 bits of time code, 32 bits of user data, 18 synchronization bits, and 8 bits of checksum:

SMPTE vertical interval timecode[1][2]
Field Sync Timecode User bits
Bit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
0x 1 0 1 2 4 8 User bits 1
Frame number
(0–23, 24, or 29)
1x 1 0 User bits 2
10 20 D C
2x 1 0 1 2 4 8 User bits 3
Seconds
(0–59)
3x 1 0 User bits 4
10 20 40 P
4x 1 0 1 2 4 8 User bits 5
Minutes
(0–59)
5x 1 0 User bits 6
10 20 40 F1
6x 1 0 1 2 4 8 User bits 7
Hours
(0–23)
7x 1 0 User bits 8
10 20 0 F2
8x  1   0  Vertical parity (g(x) = x8+1)
  • Bit 14 is set to 1 if drop frame numbering is in use; frame numbers 0 and 1 are skipped during the first second of every minute, except multiples of 10 minutes. This converts 30 frame/second time code to the 29.97 frame/second NTSC standard.
  • Bit 15 is set to 1 if the time code is synchronized to a (color) video signal.
  • Bit 35, the "bi-phase mark-correction bit" is set the same as in linear timecode, providing odd parity over the 64 time code and user bits.
  • Bits 55 and 75, the "binary group flag" bits, indicate the format of the user bits. Their weighted sum is a number from 0 to 3. 0 indicates no (or unspecified) format, while 1 indicates 4 8-bit characters. Values of 2 and 3 (i.e. bit 75 set) are reserved.
  • Bit 74 is unassigned, should always be transmitted as zero, and ignored on reception.
  • The CRC in bits 82–89 is a simple bytewise XOR of the previous 82 bits (including the sync bits), which can be described as a CRC with generator polynomial x8+1.

See also

Related technologies and standards

References

  1. ^ Timecode bit assignment table, Charles Poynton
  2. ^ Timecode, Barney Wol