« I would like, if I may, to take you on a strange journey ». Plus précisément, je voudrais vous inviter dans un étrange voyage entre le logiciel et le matériel... S'il arrive souvent de coder en C tout en « pensant en assembleur », je vous propose ici l'exercice de coder en JavaScript tout en pensant en VHDL. Évidemment, l'assembleur n'est pas loin non plus, car si nous traitons nos données avec des opérations primitives et soigneusement enchaînées, nous pouvons créer du code machine très efficace.
La destination de ce voyage est un codeur/décodeur d'images aussi rapide et compact que possible, que ce soit en matériel (avec des portes logiques dans un FPGA) ou en logiciel. Le taux de compression est un critère secondaire. Les deux versions sont intimement liées et co-développées afin que des données puissent être codées et décodées aussi bien en matériel qu'en logiciel. Il se trouve que cette approche a permis de déceler des optimisations qui n'auraient...
