Closed cassiersg closed 7 years ago
Pour l'ordre, je ferais quelque chose comme ça:
Ce qui est moins intéressant selon (car commun à tout le monde) : touch detection, lecture de l'accéléromètre, etc. Ça doit vraiment être très bref car c'est pas très intéressant...
Tout à fait d'accord avec ça. J'ai updaté mon premier message, avec un peu plus de détails et un essai pour le timing. Ca te semble mieux ? Je t'envoie tout de suite quelques ébauches de schéma-blocs (à la main :()
Proposition de plan. @anpar qu'en penses-tu ?
Client
Intro (1'30'')
Démonstration (screencast) + explication des fonctionalités :
Fonctionnement global (2'00'')
Pipeline de rendu (1'00'')
Affichage (device)
Contraintes (1'30'')
Taille de l'image (12 bits par pixel, precision de notre système): 4.6 Mbits, at 25 FPS: 115 Mbits/sec
Chaque frame est parfaite -> double buffering => seulement 250 kbits disponible par frame
En résumé, on a besoin d'un système de compression qui
Solution 1: codage des répétitions de pixels (1'00'')
Image représentée par
transformée en
(c_i, l_i)
:Solution 2: codage de Huffman (2'00'')
Encodage naïf:
P <-> {0, 1}^{24}
. On peut faire mieux: codage de HuffmanPour les longeurs: on peut faire de même:
Ce qui donne (en concaténant les codes):
On a donc deux arbres de Huffman distincts.
Taille des arbres de Huffman: longueurs
Longueurs possibles: entre 1 et > 50 000 => arbres très profond, et codes très rares. Difficile à implementer (taille de code source, nombre de LE FPGA, très longs mots de codes), et difficile d'estimer les probabilités. On peut donc limiter les longueurs des blocs, quitte à avoir
..., (c_0, 100), (c_0, 8),...
. Mais mauvais taux de compression pour des zones uniformes => On ajoute des grandes valeurs. Expérimentalement,donne un bon compromis (mots de code de max 6 bits).
Taille des arbres de Huffman: quantization des couleurs
Même problème si on veut supporter toutes les couleurs de l'écran: $256^3 > 16e6$. On veut pouvoir représenter toutes les couleurs (photos...) => on réduit la profondeur de couleur à 4 bits, ce qui donne 12 bits / pixel => codewords plus courts, et taille de la logique raisonnable.
Résultats (0'30'')
Implémentation (1'30'')
Interface HW desktop (0'30'')
Interface HW device
SPI protocol / state machine (1'00'')
augmenter le débit utile du SPI:
Entrées (1'00'')
Photos des joueurs (1'30'')
Questions non-résolues