title: FourCC
text: # FourCC
  
  Un identifiant FourCC (Four Character Code, séquence de quatre caractères) est une séquence de quatre octets utilisée pour identifier un format de données informatiques. Historiquement, ce système a été créé pour le format de fichier IFF de Amiga. Il a ensuite été repris dans le même but par Apple pour son format AIFF et par Microsoft pour son format RIFF.
  
  Les fichiers AVI étant un exemple de fichier RIFF, ils comportent des identifiants FourCC pour indiquer les codecs vidéo utilisés, notamment DivX, Xvid ou H264. C'est cette utilisation qui est aujourd'hui la plus connue. Pour les codecs audio, les fichiers AVI et WAV utilisent un identifiant de seulement deux octets, généralement codés en hexadécimal. Par exemple, le très répandu codec MP3 est identifié par le code 0055.
  
  ## Détails techniques
  
  La séquence de caractères se compose habituellement de caractères imprimables, du code ASCII, sensibles à la casse. Cependant, certaines implémentations acceptent des caractères de contrôle (des jeux C0 et C1), ou des caractères accentués du jeu étendu Latin1 (ISO 8859-1). Dans tous les cas, seuls les caractères codés sur un seul octet sont acceptés)
  
  L'identifiant fourCC peut être sensible au boutisme (endianess en anglais). En effet, les quatre octets constituent un mot de trente-deux bits, mot géré comme tel lors de la lecture et l'écriture d'identifiants fourCC. La composition d'un mot de 32 bits à partir de quatre octets est sensible au boutisme. Ainsi, pour un identifiant fourCC désiré : ABCD (c.-à-d. la séquence de caractères 'A', 'B', 'C', 'D', donc, en hexadécimal, les octets 0x41, 0x42, 0x43, 0x44), sa représentation interne, dans un mot de 32 bits, sera différente selon l'architecture :
  
  * pour un environnement gros-boutiste (big-endian) : 0x41424344 ;
  * pour un environnement petit-boutiste (little-endian) : 0x44434241.
  
  Cependant, dans les deux cas, le code fourCC désiré est bien constitué de la séquence des caractères 'A', 'B', 'C' et 'D' dans le fichier généré, ou lu (à condition que ce soit le mot de 32 bits qui est écrit, ou lu).
  
  