Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lesson_01/index.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ Bienvenue dans la FFmpeg School of Assembly Language. Vous avez fait le premier

**Qu'est ce que l'assembleur?**

L'assembleur est un langage de programmation où le code que vous écrivez correponds direction à des instructions compréhensible par un CPU. L'assembleur lisible par l'Homme est, comme son nom l'indique, *assemblé* en données binaires, connu sous le nom de *langage machine*, que le CPU peut comprendre. Le code assembleur est souvent appelé "assembleur" ou "asm" en ambrégé.
L'assembleur est un langage de programmation où le code que vous écrivez correspond directement à des instructions compréhensibles par un CPU. L'assembleur lisible par l'Homme est, comme son nom l'indique, *assemblé* en données binaires, connues sous le nom de *langage machine*, que le CPU peut comprendre. Le code assembleur est souvent appelé "assembleur" ou "asm" en ambrégé.

La grand majorité de l'assembleur de FFmpeg est ce que l'on appelle *SIMD, Single Instruction Multiple Data (instruction unique, données multiples)*. SIMD est parfois désigné sous le terme de programmation vectorielle. Cela signifie qu'une instruction particulière opère sur plusieurs éléments de données simultanément. La plupart des langages de programmation traitent un seul élément de données à la fois, ce que l'on appelle la programmation scalaire.

Comme vous l'avez peut-être deviné, SIMD se prête bien au traitement d'images, des vidéos et de l'audio, qui contiennent une grande quantité de données organisées séquentiellement en mémoire. Des instructions spécialisées dans le processeur nous aideront à traiter ces données séquentielles.

Dans FFmpeg, vous verrez que les termes `fonction en assembleur`, `SIMD`, `vectorisation` sont utilisés de manière interchangeable. Ils désignent tous la même chose: écrire une fonction en assembleur à la main pour traiter plusieurs éléments de données en une seule fois. Certains projets peuvent aussi faire référence à des `noyaux en assembleur`.

Tout cela peut sembler compliqué, mais il est important de rappeler que des lycééns ont écrit de l'assembleur dans FFmpeg. Comme partout, l'apprentissage c'est 50% du jargon et 50% d'apprentissage réel.
Tout cela peut sembler compliqué, mais il est important de rappeler que des lycéens ont écrit de l'assembleur dans FFmpeg. Comme partout, l'apprentissage, c'est 50% de jargon et 50% d'apprentissage réel.

**Pourquoi écrivons en assembleur ?**

Expand Down Expand Up @@ -215,4 +215,4 @@ RET

Comme vous le verrez dans l'exercice, nous créerons des pointeurs de fonction vers des fonctions en assembleur et les utiliserons lorsque cela est possible.

[Leçon suivante](../lesson_02/index.fr.md)
[Leçon suivante](../lesson_02/index.fr.md)