Compare commits

..

2 Commits

Author SHA1 Message Date
tTh
af103abdcf minor tweaks 2023-01-31 00:14:56 +01:00
tTh
1ef877d947 small tweaking 2023-01-28 19:31:50 +01:00
4 changed files with 44 additions and 25 deletions

View File

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

View File

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

View File

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

View File

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