Compare commits

..

No commits in common. "af103abdcf6bb940a626418e14abe5e331f8d4cf" and "1ad4b406d7263ba3ccfa68c17d66d57186845135" have entirely different histories.

4 changed files with 25 additions and 44 deletions

View File

@ -25,7 +25,6 @@
% \usepackage{url} % \usepackage{url}
\usepackage{xspace} \usepackage{xspace}
\usepackage[verbose]{layout} \usepackage[verbose]{layout}
\usepackage{ulem}
\setlength \parskip {0.35em} \setlength \parskip {0.35em}
@ -770,9 +769,8 @@ int fimg_save_as_png(FloatImg *src, char *outname, int flags);
Tous les flags doivent être à zéro. Sinon, ça foire parfois. Tous les flags doivent être à zéro. Sinon, ça foire parfois.
Et en fait (mars 2021) je ne suis pas très content de Et en fait (mars 2021) je ne suis pas très content de
\texttt{pnglite}, donc un de ces jours, je prendrais \texttt{pnglite}, donc un de ces jours, je prendrais cinq jours pour
\sout{cinq} quelques jours pour régler ce souci en passant à la bibliothèque canonique
régler ce souci en passant à la bibliothèque canonique.
\subsubsection{Vers TIFF}\index{TIFF} \subsubsection{Vers TIFF}\index{TIFF}
@ -818,7 +816,6 @@ fichier de configuration.
int parse_WxH(char *str, int *pw, int *ph) int parse_WxH(char *str, int *pw, int *ph)
int parse_double(char *str, double *dptr) int parse_double(char *str, double *dptr)
\end{lstlisting} \end{lstlisting}
% XXX rjouter quelques explication, please !
La fonction \texttt{int format\_from\_extension(char *fname)} examine un La fonction \texttt{int format\_from\_extension(char *fname)} examine un
nom de fichier tel que \texttt{lena.xxx}, et retourne, si la partie nom de fichier tel que \texttt{lena.xxx}, et retourne, si la partie
@ -826,7 +823,7 @@ nom de fichier tel que \texttt{lena.xxx}, et retourne, si la partie
déclarées dans floatimg.h déclarées dans floatimg.h
le valeureux. le valeureux.
Les extensions actuellement connues sont : Les extensions actuellement connues sont :
fimg, png, pnm, pgm, fits et tiff. Le bmp est plus ou moins prévu\dots fimg, png, pnm, pgm, fits et tiff.
To be continued\index{XXX}\dots To be continued\index{XXX}\dots
@ -854,7 +851,7 @@ J'ai commencé à étudier ces objets étranges quand j'ai commencé
à travailler sur l'interpolator\index{interpolator} à l'automne 2020. à travailler sur l'interpolator\index{interpolator} à l'automne 2020.
Hélas, j'ai vite réalisé que c'était assez délicat. Hélas, j'ai vite réalisé que c'était assez délicat.
Pour ce genre de \textsl{usecase}, le numérique est pitoyable si on Pour ce genre de \textsl{usecase}, le numérique est pitoyable si on
le compare au (hélas défunt) \textsc{Betamax}\index{Betamax}. le compare au \textsc{Betamax}\index{Betamax}.
% ============================================================= % =============================================================
@ -1013,11 +1010,7 @@ error in 'fimg_create_from_png' : read png -> -1 File error
png2fimg : err -1, abort. png2fimg : err -1, abort.
\end{verbatim} \end{verbatim}
Il faut peut-être envisager le passage à \texttt{libpng}\index{libpng}, Il faut peut-être envisager le passage à \texttt{libpng}\index{libpng}.
la bibliothèque actuellement utilisée (\texttt{pnglite}) ayant tendance
à borker en lecture sur certains fichiers pourtant corrects.
% ---------------------
\subsection{fimgstats}\index{fimgstats}\label{fimgstats} \subsection{fimgstats}\index{fimgstats}\label{fimgstats}
@ -1067,9 +1060,7 @@ sera lisible avec le sélecteur \texttt{-L}.
Et pour les aventureux, la commande \texttt{xper} (abréviation Et pour les aventureux, la commande \texttt{xper} (abréviation
de \textsl{expérimental}) permet de tester la plus récente tentative de \textsl{expérimental}) permet de tester la plus récente tentative
de friture du moment. D'autre part un set bien plus complet d'effets de friture du moment.
àlc est disponible dans les logiciels de flou temporel, décrits
plus loin dans ce document.
% --------------------- % ---------------------
@ -1296,7 +1287,7 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable,
surtout dans un contexte artistique à grande porosité. surtout dans un contexte artistique à grande porosité.
C'est par ces frottements de techniques ayant du sens que les C'est par ces frottements de techniques ayant du sens que les
choses seront acquises, pour le pire, le meilleur et la choses seront acquises, pour le pire, le meilleur et la
techno-futilité du monde futur.. futilité du monde futur..
\begin{itemize} \begin{itemize}
\item Import/export au format \textsc{tiff}\index{TIFF} à continuer. \item Import/export au format \textsc{tiff}\index{TIFF} à continuer.
@ -1306,7 +1297,7 @@ techno-futilité du monde futur..
\item Formaliser les codes d'erreur. \textbf{Urgent}. \item Formaliser les codes d'erreur. \textbf{Urgent}.
\item Faire une passe complète de Valgrind\index{valgrind}. \item Faire une passe complète de Valgrind\index{valgrind}.
\item Intégrer la fonderie, l'interpolator et le singlepass. \item Intégrer la fonderie, l'interpolator et le singlepass.
\item Vérifier le gestion des images mono-canal et de la transparence. \item Vérifier le gestion des images mono-canal.
\end{itemize} \end{itemize}
% =================================================================== % ===================================================================
@ -1320,7 +1311,7 @@ jamais négliger le traitement des éventuelles erreurs.
Nous savons générer une image contenant des pixels aux valeurs Nous savons générer une image contenant des pixels aux valeurs
probablement aléatoires, avec la commande \texttt{mkfimg}, probablement aléatoires, avec la commande \texttt{mkfimg},
qui utilise le \texttt{drand48}\index{drand48} de \textsc{posix}\index{POSIX}. qui utilise le \texttt{drand48}\index{drand48} de \textsc{posix}\index{POSIX}.
Maintenant, posons-nous une question de statisticien : que se passe-t-il si Maintenant, posons-nous une question de statisticien : ue se passe-t-il si
nous faisons la somme de plusieurs centaines de ces images ? nous faisons la somme de plusieurs centaines de ces images ?
\begin{lstlisting} \begin{lstlisting}
@ -1408,12 +1399,10 @@ OFFS=$(( NBRE / 4 ))
\end{verbatim} \end{verbatim}
Dans ce préliminaire logiciel, nous avons nommé le répertoire Dans ce préliminaire logiciel, nous avons nommés le répertoire
\textsc{srcdir} contenant les captures d'image au format fimg, le répertoire \textsc{srcdir} contenant les captures d'image au format fimg, le répertoire
\textsc{dstdir} dans lequel seront rangées les images calculées, \textsc{dstdir} dans lequel seront rangées les images calculées,
et l'emplacement de deux fichiers de travail, placés dans ce qui et l'emplacement de deux fichiers de travail.
peut être vu comme un \textsl{ramdisk}\index{ramdisk}\index{/dev/shm/}
et qui accélère un peu les opérations.
Les quelques lignes suivantes, qui semble bien magiques, ne sont en fait Les quelques lignes suivantes, qui semble bien magiques, ne sont en fait
que de la magie Unix\index{Unix}. Elles nous permettent d'avoir que de la magie Unix\index{Unix}. Elles nous permettent d'avoir
@ -1459,12 +1448,12 @@ $sin(idx/16)$ afin d'avoir une oscillation du coefficient entre
\begin{verbatim} \begin{verbatim}
# do the hard floating computation # do the hard floating computation
# #
fimgfx -v cos010 ${imgB} ${FTMP} fimgfx -v cos010 ${imgB} ${FTMP}
fimgops -k ${K} ${FTMP} ${imgA} mix ${FDST} fimgops -k ${K} ${FTMP} ${imgA} mix ${FDST}
\end{verbatim} \end{verbatim}
Étape suivante, étape cruciale : le brassage d'une multitude de Étape suivante, étape cruciale : le brassage d'une multitude de
pixels flottants. pixels flottants.
Tout d'abord, nous faisons subir à l'image-echo Tout d'abord, nous faisons subir à l'image-echo
(\texttt{imgB}, définie au début du script) un distorsion (\texttt{imgB}, définie au début du script) un distorsion
@ -1482,8 +1471,8 @@ done
\end{verbatim} \end{verbatim}
Et en fin de boucle, nous convertissons le résultat de nos Et en fin de boucle, nous convertissons le résultat de nos
savants calculs au format PNG, et nous écrivons le fichier dans le savants calculs au format PNG, et écrivons le fichier dans le répertoire
répertoire de destination fixé au début. de destination fixé au début.
C'est le moment de passer la main à ffmpeg\index{ffmpeg}. C'est le moment de passer la main à ffmpeg\index{ffmpeg}.
C'est juste une POC\index{POC}, et une implémentation bien plus C'est juste une POC\index{POC}, et une implémentation bien plus
@ -1491,9 +1480,6 @@ complète écrite en \textbf{C}\index{C} est déja en chantier,
avec une complexité prévue à un niveau assez réjouissant. avec une complexité prévue à un niveau assez réjouissant.
% =================================================================== % ===================================================================
%
% V4L2 is a trap.
%
\section{Video for Linux}\index{v4l2} \section{Video for Linux}\index{v4l2}
Donc, maintenant, nous savons un peu tripoter ces images flottantes. Donc, maintenant, nous savons un peu tripoter ces images flottantes.
@ -1549,8 +1535,8 @@ vaguement expliqué page \pageref{contraste}.
L'option \texttt{-X} me permet d'intégrer des \textit{fritures} L'option \texttt{-X} me permet d'intégrer des \textit{fritures}
expérimentales dans le binaire, et ne doit donc pas être expérimentales dans le binaire, et ne doit donc pas être
utilisée dans des scripts si on a des visions à long utilisée dans des scripts si on a des visions à long (ou même)
(ou même moyen) terme. terme.
\subsubsection{Upscaling}\index{upscaling}\label{upscaling} \subsubsection{Upscaling}\index{upscaling}\label{upscaling}
@ -1590,8 +1576,6 @@ des choses essentielles comme la liste des résolutions disponibles.
Ajustement \textsl{Brightness Contrast Saturation Hue\dots} Ajustement \textsl{Brightness Contrast Saturation Hue\dots}
Probablement pilotable au joystick\index{joystick}.
% =================================================================== % ===================================================================
\section{À l'extérieur} \section{À l'extérieur}

View File

@ -20,7 +20,7 @@
* https://git.tetalab.org/tTh/FloatImg * https://git.tetalab.org/tTh/FloatImg
*/ */
#define FIMG_VERSION (212) #define FIMG_VERSION (210)
#define RELEASE_NAME ("noname") #define RELEASE_NAME ("noname")
/* XXX add a test for stdint.h / uint32_t XXX */ /* XXX add a test for stdint.h / uint32_t XXX */

View File

@ -55,9 +55,9 @@ int xs, ys, loop9;
int xp, yp; int xp, yp;
float rgb[3]; float rgb[3];
#if DEBUG_LEVEL // #if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, sfimg, dfimg, index); fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, sfimg, dfimg, index);
#endif // #endif
if ( (index<0) || (index>8)) { if ( (index<0) || (index>8)) {
fprintf(stderr, " %s: bad index %d\n", __func__, index); fprintf(stderr, " %s: bad index %d\n", __func__, index);
@ -75,7 +75,7 @@ for (ys=1; ys<sfimg->height-1; ys++) {
xp = xs + deltas[loop9].x; xp = xs + deltas[loop9].x;
yp = ys + deltas[loop9].y; yp = ys + deltas[loop9].y;
fimg_get_rgb(sfimg, xp, yp, rgb); fimg_get_rgb(sfimg, xp, yp, rgb);
pixels[loop9].fgris = rgb[0] + rgb[1] + rgb[2]; pixels[loop9].fgris = rgb[0];
pixels[loop9].rang = loop9; pixels[loop9].rang = loop9;
} }
qsort(&pixels, 9, sizeof(fpixel), comparaison_fgris); qsort(&pixels, 9, sizeof(fpixel), comparaison_fgris);

View File

@ -22,10 +22,8 @@ static int check_boundaries(FloatImg *from, FloatImg *to, FimgArea51 *a51)
fprintf(stderr, ">>> %s ( %p %p %p )\n", __func__, from, to, a51); fprintf(stderr, ">>> %s ( %p %p %p )\n", __func__, from, to, a51);
#endif #endif
if (verbosity > 1) { fimg_printdims("from", from);
fimg_printdims("from", from); fimg_printdims("to ", to);
fimg_printdims("to ", to);
}
/* just a small molly-guard */ /* just a small molly-guard */
if ( (a51->w < 0) || (a51->h < 0) ) { if ( (a51->w < 0) || (a51->h < 0) ) {
@ -83,8 +81,7 @@ if (foo) {
if ( (xpos < 0) || (xpos > pdst->width - psrc->width) || if ( (xpos < 0) || (xpos > pdst->width - psrc->width) ||
(ypos < 0) || (ypos > pdst->height - psrc->height) ) { (ypos < 0) || (ypos > pdst->height - psrc->height) ) {
fprintf(stderr, "%s: boudary error, x=%d y=%d\n", __func__, fprintf(stderr, "%s: boudary error\n", __func__);
xpos, ypos);
return -2; return -2;
} }