Hello,
mon problème est relativement simple, et doit sans doute découler de mes connaissances parcellaires du monde du code (ce monde étrange plein de tentacules visqueux, de gens méchants, et de lignes de texte ressemblant à des insultes lues à voix haute).
Je suis en train de bosser avec Matlab sur du traitement d'image, et vu que j'ai pas encore réussi à résoudre tous mes problèmes, j'ai pris le sujet d'un autre coté. à savoir plutot que de faire un code simple et fonctionnel au lieu de mon "machin" qui nécessiterait un serveur Cray pour tourner, j'incrimine Matlab, qui me fait des matrices d'entrée en format "Single" là ou de "l'int 16" suffirait, a priori, ce qui double ma quantité de mémoire vive nécessaire à l'éxecution.
Modifier la taille des données, j'y arrive à peu près, mais j'aurais besoin d'un renseignement sur le fond: où est-il préférable de l'introduire? Schématiquement j'ai quelque chose ressemblant à:
Voilà grosso modo à quoi ca ressemble (pour ceux qui lisent pas le code et le copient/collent dans Matlab, je crains que ce que j'ai inscrit ci dessus ne tourne pas ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 load entree %typiquement un film, de 12 bits en noir et blanc boucles=size(entrée,1)*0.1; sortie_reduite=cell(1,boucles); %préalloc For i=1:boucles image_interessante=entree(:,:,i); [...] des lignes de codes avec des +, des -, des *, bref des maths compliquées [...] image_traitee=*résultat des actions précédentes* video_retaillee{i}=image_traitee; end sortie_reduite=cat(3,video_retaillee{1,:}); %pour pouvoir le lire comme un film sortie16=int16(sortie_reduite);
Le fond du code est pas intéressant en soi, c'est plutot une question sur la forme.
Le passage de Single a int16 est effectué en fin de code, alors qu'il me semblerait plus optimisé de le faire en début (moins de place en mémoire, moins d'octet à considérer pour les calculs, etc...)
Si je détemine le type de ma sortie lors de la préalloc, c'est écrasé quand j'y introduis les données du tableau de cellules.
Comment puis-je faire pour que le type int16 soit pris définitivement en compte, et ce le plus tot possible dans mon code?
Merci d'avance.
Partager