diff --git a/doc/the_floatimg_hack.tex b/doc/the_floatimg_hack.tex index e9f9abf..ee244ae 100644 --- a/doc/the_floatimg_hack.tex +++ b/doc/the_floatimg_hack.tex @@ -124,7 +124,7 @@ dans les machin-trocs, et un grain d'image vraiment présent. Ah vous en voulez de la technique ? Oké, on y va. En fait, on va tripoter pleins de nombres, plus ou moins rangés dans -des champs de pixels, pour concrétiser l'existence perceptuelles de ces +des champs de pixels, pour concrétiser l'existence perceptuelle de ces grains de lumière chromatisés. \subsubsection*{quelques belles images / schémas polychromes en intro pour @@ -145,8 +145,8 @@ la glisser dans le capitalisme de surveillance. % XXX \layout \pagebreak % =================================================================== -\section{Théorie}\index{théorie} +\section{Théorie}\index{théorie} Pour le moment, seule la quête de l'empirisme absolu a été visée. Les justifications mathématiques attendront le retour @@ -659,8 +659,9 @@ aux bonnes dimensions (échange W et H). \subsection{Format du fichier \textsc{fimg}}\index{format}\label{formatfimg} D'un design très empirique, c'est certainement à revoir pour l'avenir. -Tout d'abord pour normaliser l'endianess et le packing dans les structs% -\footnote{Ce qui n'est pas encore fait}, et surtout l'ajout +La force du \textsl{legacy} va-t-elle dominer le monde ? +Il faudrait normaliser l'endianess et le packing dans les structs% +\footnote{Directives du compilateur ?}, et surtout l'ajout de données sur la prise de vue, du genre type de capteur, date et heure, réglages divers\dots @@ -673,14 +674,22 @@ typedef struct { Le champ \texttt{magic[8]} doit contenir une valeur magique~: -les quatre premier octets doivent contenir les quatre caractères -\texttt{'FIMG'}, et les quatre dernier doivent être à 0, sauf que, -voir plus bas. +les quatre premiers octets doivent contenir les quatre caractères +\texttt{'FIMG'}, et les quatre derniers doivent être à 0, sauf que, +voir plus bas, le cinquième vas vous étonner. Le champ \texttt{t} (le type de l'image) doit avoir les trois octets -de poids fort à 0. Vous trouverez les constantes de type dans le +de poids fort à 0\footnote{Pourquoi ? Je n'en sais rien.}. + +Ensuite, nous aurons (dans le cas courant) : 1, 2 ou 4 blocs +de WxH pixels sous forme de Float32. La première ligne lue +est la ligne du haut de l'image. Les valeurs négatives sont +tolérées. + +Vous trouverez les constantes de type pertinentes dans le fichier \texttt{floatimg.h}, et quelques informations (non-)essentielles qui ne vous serviront probablement à rien. + % ---------------------------------- % new février 2022 @@ -1714,16 +1723,43 @@ Par exemple pour choisir une image sur dix, le glob-pattern sera dans le manuel~: \texttt{glob(7)}, et \texttt{glob(3)} pour la fonction utilisée. +% ------------------------------------------------------------------- + \subsection{Interpolator}\index{interpolator} -Juste des calculs pas si simple que ça. Je pense qu'il faut +Pour le moment, juste des calculs pas si simple que ça. +Je pense qu'il faudra se lancer dans des calculs splinesques pour améliorer les choses dans la création des images intermédiaires. +Voyons d'abord le principe actuel. + +Nous avons une série de centaines, voire de milliers de photos. +En parcourant cette liste, nous allons en prélever une sur $N$, +et entre celle-ci et la +précédente prélevée, nous allons calculer par interpolation +\textbf{linéaire} $N - 1$ images intermédiaires, et les +intercaler entre nos deux sélections pour générer le +flux de sortie. + +\begin{verbatim} +usage: + interpolator [options] +options: + -E i:bla:k input filter chain + -F name:j output filter chain + -n make negative + -S nn mysterious sort + -L list available filters + -v increase verbosity +\end{verbatim} + +% ------------------------------------------------------------------- + \subsection{Singlepass} Ce programme \texttt{singlepass} prétend vous permettre de tester -tous les filtres disponibles, dont on peut avoir la liste +tous les filtres disponibles, et dont on peut avoir la liste avec l'option \texttt{-L}\footnote{liste hélas peu machinable.} \begin{verbatim} @@ -1740,9 +1776,11 @@ Il n'y a pas de moyenne mobile, pas d'interpolation, mais un facteur de répétition qui permet de dupliquer $N$ fois une image dans le flux de sortie. Si bous globez \texttt{frames/????[02468]}, vous prenez une image sur deux, alors un facteur de répétition à $2$ conservera -la 'vitesse' de la séquence, mais avec une petite sacade régulière +la 'vitesse' de la séquence, mais avec une petite saccade régulière de bon aloi \textit{:)} +% ------------------------------------------------------------------- + \subsection{Déviance} Là, nous tombons dans de la \textsl{troiD}\index{3d} de haut niveau, @@ -1753,6 +1791,21 @@ mais il y aura du zbuffer dedans. % =================================================================== +\section{Expérimentations} \index{experimental} + +Il m'arrive parfois d'avoir de vagues idées d'image, et donc de logiciel, +qui tournent dans un coin de la tête. +Parfois je songe à une fonction qui me +serait bien utile, mais j'ai des doutes sur son +\textsc{api}\footnote{Application Programming Interface}\index{api} +qui soit à la fois simple et complète. Je fais donc des essais. +Parfois j'imagine confusément un algorithme\index{algorithme} tordu +et sans but précis. Je le \textit{runne} et je le \textit{re-runne} +un gazillion de fois dans mon cerveau processique. +Quel va être son facteur $O$ ? Je fais donc des essais. + +% =================================================================== + \section{Et pour la suite ?} En fait, je fait de la photo par la méthode du « cumul »\index{cumul}