# Timecode (indicateur)

Un timecode, ou code temporel$^,$, est une référence temporelle utilisée dans les domaines du son et de l'image, pour la synchronisation et le marquage de matériaux enregistrés. Le timecode (TC) s'exprime en heures, minutes, secondes et images. Pour les enregistrements sur bande magnétique ou sur film, il est enregistré parallèlement au son et à l'image, sur une piste dédiée. Dans les fichiers numériques, le code indiquant le temps au début de l'enregistrement est inclus dans les métadonnées. Développé à l'origine aux États-Unis pour la télévision à l'époque du noir et blanc, il sert autant pour la vidéo que pour le son, ainsi que dans le cinéma.

## Historique

Après une longue période de transition et de perfectionnement, il faut attendre 1932 pour voir apparaître au cinéma les techniques permettant d’enregistrer le son et l’image sur des supports différents puis de les synchroniser par la suite.
Aux États-Unis, même avant le développement du premier enregistreur vidéo sur bande magnétique par la société Ampex en 1956 (l'Ampex VR-1000), les contraintes de fuseau horaire pour la diffusion télévisuelle nationale exigeaient un moyen d'identifier l'heure de l'enregistrement des programmes. Le kinéscopage d'émissions vidéo tournées en direct sur la côte Est permettait (et permet toujours, via le timecode) d'en décaler la diffusion sur la côte Ouest.
En 1956, le développement de l'Ampex VR-1000 a été aussi le début de nombreux problèmes propres au montage et à la postproduction vidéo. Pour le montage, un nouveau procédé devait être développé, permettant de positionner la bande vidéo exactement au début et à la fin du programme. C'est la naissance du timecode, standardisé en 1969 par la SMPTE (Society of Motion Picture and Television Engineers) pour le format NTSC, puis adopté par l'EBU en 1972 pour le format PAL.
Trois phases caractérisent le développement du montage vidéo :
* le montage physique sur bande (coupe) ;
* le montage par transfert électronique (copie) ;
* le montage numérique non linéaire sur ordinateur (virtuel).
Développé à l'origine pour la télévision en noir et blanc, le timecode a de sérieuses limites. En septembre 2009, les deux organisation SMPTE et EBU se sont unies pour réfléchir à une alternative ou à des améliorations des normes du timecode, en tenant compte des développements récents (informatique et Internet).

## Qu'est-ce que le timecode ?
### Structure

Le timecode s'appuie sur le comptage du temps dérivé des comptages de l'heure, dérivé et initiés par le SI, Système international d'unités. En audiovisuel, au tournage, il est généré à la prise de vues, pour l'image et pour le son.
Le timecode est une référence temporelle attribuée à chaque image d'une vidéo sous forme d'une séquence de chiffres générée à intervalle régulier par un système temporel. Les données sont enregistrées parallèlement à chaque image ou à chaque son.
À chaque image, le timecode est composé de 4 informations :
* Le timecode, proprement dit : il s'exprime en heures, minutes, secondes et images (25 par seconde en PAL et 30 par seconde en NTSC) et subframes (la plus petite unité de comptage - Il y a 80 ou 100 subframes par image). Dans l'absolu, le timecode commence à 00:00:00:00 (heures:minutes:secondes:images) et ne peut dépasser 23:59:59:24 (24 images pour l'EBU ou 29 pour le SMPTE) ;
* Le userbits : enregistré dans le code temporel à chaque image. Il est composé d'un « mot » de 32 bits, qui permet de mieux identifier l'enregistrement par un mot de 4 caractères, ou 8 digits hexadécimaux (par exemple : la date du jour) ;
* Le contrôle d'erreurs (controlbits) ;
* Le contrôle de synchronisation (synchronisation word).
L'usage traditionnel en postproduction, est de débuter par 01:00:00:00 pour la première image d'un programme audiovisuel, par 02:00:00:00 pour la seconde, et ainsi de suite. Afin de permettre la synchronisation, il faut y ajouter un preroll ou une amorce définie par un start et un décompte avant cette première image. Conventionnellement, l'amorce de mixage en France a une durée de 10 secondes. Le timecode de début (start) est donc à 00:59:50:00 (heure:minute:seconde:image) pour aboutir à l'adresse temporelle de la première image (01:00:00:00).

### Catégories

* Audio : LTC, pour Longitudinal Timecode (« enregistré sur une piste audio ») Il est utilisé en vitesse de lecture normale et accélérée.
* Vidéo : VITC, pour Vertical Interval Timecode (incrusté dans l'image vidéo) une amélioration du LTC qui permet l'utilisation en lecture ralentie ainsi qu'à l'arrêt.
* MIDI : Midi Time Code, pour Musical Instrument Digital Interface (c'est un TC simplifié à l'image près (les subframes sont remplacés par des quarts d'image) utilisé depuis 1987 en musique, pour synchroniser des séquenceurs par exemple). Ce format est une passerelle entre le timecode et le midi.
* Optique : Piste TC optique sur le film au cinéma (utilisée par le système DTS pour synchroniser un lecteur CD-ROM audio).
* Code barre : Keykode une façon d'inscrire visuellement des repères temporels sur une bande magnétique ou une image 35mm photochimique.

## Synchronisation par timecode

Synchroniser plusieurs machines (défileurs, enregistreurs, automation de console, station audio-numérique (DAW : digital audio workstation), etc., a introduit le concept d'asservissement par maître et esclaves.
Le maître génère et distribue son timecode qui servira de référence aux timecodes des esclaves. Les esclaves n'ont pas obligatoirement le même timecode que le maître, dans ce cas là, on leur attribue un offset, « une compensation ». Cette façon de procéder qui fonctionne correctement dans le domaine analogique (au prix d'un supplément de pleurage et scintillement, ne peut s'appliquer au domaine du numérique. La vitesse de défilement d'une machine numérique est assujettie à sa fréquence d'échantillonnage word clock. Pour résoudre cette antinomie, le système de synchronisation va assumer l'adressage (c'est-à-dire : que les différents timecodes du maître et des esclaves sont calés en position de synchronisme), puis le maître relâche toutes les machines esclaves numériques qui défilent alors sur leur propre référence. Pour éviter des glissements entre les machines il faudra introduire impérativement un générateur de word clock, lequel sera capable de distribuer des références propres à chaque famille (vidéo SD et HD, audio numérique (fichiers), consoles automatisée, etc.). Dans le cas où le maitre, lui-même, est capable de pleurage, la solution est alors d'inventer un « maître virtuel ».

## L'avenir du timecode

Le problème du timecode est que ce procédé ne peut assumer une synchronisation qu'à « l'image près ». En numérique, et entre plusieurs machines audio (machines linéaires, ordinateur, etc.), il est nécessaire d'assumer une synchronisation précise au « sample » près. Il faudra alors utiliser d'autres méthodes, encore plus complexes, comme celles utilisant des protocoles d'asservissement et de communication via les liaisons Ethernet (GigaBit) et des protocoles propriétaires.

## Timecode et MXF

Le timecode est incorporé dans l'entête du fichier MXF pour différentes utilisations.

## Timecode et BWF

Le standard BWF (Broadcast Wave Format) publié par l'EBU permet entre autres choses d'embarquer du timecode dans un fichier audio wav. Cet ajout se fait via le chunk d'extension broadcast bext et/ou le chunk iXML.
L'information de timecode est alors renseignée sous forme d'horodatage (timestamp) appelé Sample Count Since Midnight, permettant une précision à l'échantillon près.
Cette valeur codée sur 64 bits, indique le nombre de samples passés depuis minuit (minuit étant un TC de référence 00:00:00:00) au moment du début de l'enregistrement. Ainsi, pour un nombre d'images par seconde et une fréquence d'échantillonnage donné, il est possible de retrouver le timecode de départ au sample près.