PROJET AUTOBLOG


Korben

Site original : Korben

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

JXL et AVIF – Les nouveaux champions des formats d’image

lundi 19 février 2024 à 09:00

On est tous là avec nos formats d’images d’avant la guerre, à savoir le JPEG, le PNG et le WebP alors qu’il existe des trucs beaucoup plus efficaces aujourd’hui en 2024. L’objectif de cet article est donc de vous les présenter.

Le premier s’appelle AVIF (AV1 Image File Format) qui est basé sur le codec vidéo AV1, très connu pour son efficacité en termes de compression. L’AVIF est très adapté pour tout ce qui est images pour les sites web, mais également pour tout ce qui est images animées. Ça en fait donc une bonne alternative aux GIF animés et surtout, de très nombreux navigateurs modernes le supportent déjà.

L’autre format c’est le JXL qui n’est ni plus ni moins que la contraction de JPEG et de XL. Celui-ci est conçu pour compresser efficacement les photos avec ou sans perte selon ce que vous choisissez, tout en préservant une très haute résolution (au-delà du milliard de pixels si ça vous chante) avec plein dé détails. L’algo qui permet d’encoder les images en JXL est d’ailleurs jusqu’à 10 fois plus rapide que celui d’AVIF.

Ces deux formats qui supportent tous les deux la transparence, sont sortis vers 2019 et sont open source et non commerciaux. Alors c’est bien beau tout ça, mais comment on fait pour convertir nos images dans ces formats ? Et bien logiquement, n’importe quel outil de traitement d’image un peu récent peu le faire, mais autrement, y’a des outils.

Pour l’AVIF, vous pouvez utiliser les outils cavif-rs ou encore FFMPEG. Cavif-rs ce sera plus pour les images statiques et FFMPEG pour les gifs animés.

Prenons cette image PNG pour un beau fond d’écran de 1,9 Mo et d’une résolution de 1456 × 816 pixels :

En la convertissant en AVIF à l’aide de la commande suivante :

cavif Downloads/wallpaper.png -o Downloads/wallavif.avif -f

On obtient la même image, avec la même résolution sauf qu’elle pèse maintenant 77 ko. Je vous l’intégre dans mon WordPress pour que vous voyiez que c’est bien supporté par votre navigateur, mais comme WordPress ne supporte pas encore nativement ce format, le rendu est un peu cra-cra :

Je ne vous avais pas menti, c’est sacrément efficace. Dommage pour moi, ce format n’est pas supporté par mon WordPress, donc je ne peux pas encore l’intégrer à mon article.

Passons maintenant à une image animée avec FFMPEG. Je prends ce GIF de 1,1 Mo :

Avec FFMPEG, je dois d’abord convertir le format des pixels en yuv420p qui est un format de couleur très utilisé pour la vidéo et compatible AVIF :

ffmpeg -i happy.gif -pix_fmt yuv420p -f yuv4mpegpipe happy.y4m

Ensuite, il faut installer la lib avif comme ceci sous Linux :

sudo apt install libavif-bin

Comme ça sous mac :

brew install libavif

Ensuite armé de ce fichier y4m, je peux alors appeler l’outil d’encodage avifenc qui va alors le convertir en AVIF animé :

avifenc happy.y4m happy.avif

Et voilà, je me retrouve avec la même image animée sauf qu’elle pèse 45 ko. C’est magique.

Pour le format JXL c’est encore plus simple, puisqu’il y a un outil officiel à télécharger ici. Si vous êtes sous mac, vous pouvez même l’installer comme ceci :

brew install jpeg-xl

Ensuite, y’a plus qu’à appeler la commande comme ceci avec le paramètre lossless afin de n’avoir aucune perte :

cjxl wallpaper.png wallpaper.jxl --lossless_jpeg=0

Je passe donc d’un fond d’écran de 1,9 Mo en PNG au même fond d’écran de 202 Ko. Voici l’incrustation de ce JXL :

Après si vous avez la flemme de jouer avec tous ces outils sachez que ezgif dont je vous ai déjà parlé ici, propose des convertisseurs pour l’AVIF et le JXL.

D’ailleurs, si vous vous demandez comment je l’ai intégré, et bien, il existe une astuce qui permet d’avoir un rendu de JXL ou d’AVIF avec une image PNG en secours pour les anciens navigateurs qui ne supporteraient ni le AVIF ni le JXL.

Voici le code :

<picture>
      <source type="image/jxl" srcset="https://korben.info/wallpaper.jxl" />
      <img src="./media/3e6d9b8b.wallpaper.png" data-original-source="https://korben.info/wallpaper.png" />
</picture>

Et pour de l’AVIF ce sera comme ça :

<picture>
      <source type="image/avif" srcset="https://korben.info/wallpaper.avif" />
      <img src="./media/3e6d9b8b.wallpaper.png" data-original-source="https://korben.info/wallpaper.png" />
</picture>

Bref, tout ça pour dire que les résultats en matière de qualité et de compression avec JXL et AVIF sont assez phénoménaux que ce soit avec perte ou non de qualité. Je vous encourage fortement à adopter ces futurs standards même si pour le moment, c’est encore un peu roots, mais c’est déjà bien supporté sur les navigateurs récents du marché, donc pourquoi s’en priver. J’espère que WordPress le supportera également nativement rapidement, comme ils l’ont fait pour le webp.

Changement climatique – Quel sera le climat de votre ville dans 20 ans ?

dimanche 18 février 2024 à 09:00

Le changement climatique est déjà là et avec lui son lot de surprises, notamment avec un climat qui vient taper dans les extrêmes un peu plus souvent qu’avant, parce que totalement déréglé. Et comme on n’est pas spécialement scientifique, difficile de savoir à quoi ressemblera notre chez nous dans 20 ans, dans 50 ans.

Afin de nous aider à y voir un peu plus clair sur ce nouveau climat qui arrive, l’INRAE (Institut national de recherche pour l’agriculture, l’alimentation et l’environnement) a mis au point une carte nommée Climate Change Explorer qui vous permet de savoir quelles seront les températures moyennes et la pluviométrie chez vous entre 2041 et 2060.

Vous saisissez votre ville et Climate Change Explorer vous indiquera une ville jumelle dont le climat actuel est celui que vous aurez entre 2041-2060.

Donc par exemple, moi c’est Clermont-Ferrand et dans 20/30/40 ans, son climat sera comparable à la ville d’Ancona en Italie, avec des températures moyennes max de 28,5°C, min de 1,4°C et 722 mm de pluie à l’année. Les autres points jaunes sur la carte sont d’autres villes analogues. Dont pour Clermont-Ferrand, c’est également Venise, Canberra ou d’autres villes en Turquie et Afrique du Sud.

Évidemment, ce sont des projections et d’ici là, ça a encore le temps de partir encore plus en couille. Mais je trouve ça quand même bien de savoir à quelle sauce climatique on risque d’être mangé. La retraite au soleil quoi…

Par contre, je pense aux gens qui habitent dans des endroits où il fait déjà extrêmement chaud et humide. Eux n’auront d’autre choix que de partir et devenir ce qu’on appelle maintenant des réfugiés climatiques. Espérons que nous saurons les aider le moment venu.

À découvrir ici.

Magika, le détecteur de fichiers ultra-rapide de Google

samedi 17 février 2024 à 12:26

La dernière nouveauté dans le domaine de l’IA c’est la détection des types de fichiers. Hé ouais ! Google a récemment ouvert les sources de Magika, un système d’identification de types de fichiers basé sur l’IA, qui a pour but de nous aider (enfin, nos outils) à détecter avec précision les types de fichiers binaires et textuels.

Depuis longtemps maintenant, les systèmes Linux sont équipés de libmagic et de l’utilitaire file, qui ont servi de norme de facto pour l’identification des types de fichiers, et ce pendant plus de 50 ans !!

Les navigateurs web, les éditeurs de code et d’innombrables autres logiciels s’appuient sur la détection des types de fichiers pour décider comment afficher correctement un fichier. Par exemple, les IDE modernes utilisent la détection des types de fichiers pour choisir le schéma de coloration syntaxique à utiliser lorsque le développeur commence à taper dans un nouveau fichier.

La détection précise des types de fichiers est un problème difficile, car chaque format de fichier a une structure différente, ou pas de structure du tout. Et c’est encore plus dur pour les formats textuels et les langages de programmation, car ils ont des constructions très similaires. Jusqu’à présent, libmagic et la plupart des autres logiciels d’identification des types de fichiers s’appuyaient sur une collection plutôt artisanale (hmm hmm) d’heuristiques et de règles personnalisées pour détecter chaque format de fichier.

Cette approche manuelle étant à la fois longue et sujette aux erreurs, ce n’est pas forcément l’idéal notamment pour les applications de sécurité où la création d’une détection fiable est particulièrement difficile, car les attaquants tentent constamment de tromper la détection avec des payloads maison 🙂

Pour résoudre ce problème et fournir une détection rapide et précise des types de fichiers, Google a donc développé Magika, un nouveau détecteur de types de fichiers basé sur l’IA.

Sous le capot, Magika utilise un modèle de deep learning personnalisé et hautement optimisé conçu et formé à l’aide de Keras qui ne pèse environ que 1 Mo. Magika utilise aussi Onnx comme moteur d’inférence pour garantir que les fichiers soient identifiés en quelques millisecondes, presque aussi rapidement qu’un outil non basé sur l’IA, même sur un CPU.

En termes de performances, Magika, grâce à son modèle d’IA et son grand ensemble de données d’apprentissage, est capable de surpasser d’autres outils existants d’environ 20 % lorsqu’il est évalué sur un benchmark de 1 million de fichiers englobant plus de 100 types de fichiers. En décomposant par type de fichier, comme indiqué dans le tableau ci-dessous, on observe des gains de performance encore plus importants sur les fichiers textuels, notamment les fichiers de code et les fichiers de configuration avec lesquels d’autres outils peuvent avoir des difficultés.

Magika est utilisé en interne chez Google à grande échelle pour aider à améliorer la sécurité des utilisateurs de leurs services notamment pour l’acheminement des fichiers au sein de Gmail, Drive ou encore Safe Browsing vers des scanners de sécurité et des filtres de contenu.

En examinant une moyenne hebdomadaire de centaines de milliards de fichiers, Google a constaté que Magika améliorait la précision de l’identification des types de fichiers de 50 % par rapport à leur système précédent basé sur de simples règles. Cette augmentation de la précision leur a permis d’analyser 11 % de fichiers en plus avec leurs scanners de documents malveillants spécialisés en IA et ils ont ainsi pu réduire le nombre de fichiers non identifiés à 3 %.

La prochaine intégration de Magika se fera dans VirusTotal et viendra ainsi compléter la fonctionnalité Code Insight existante de la plateforme, qui utilise l’IA générative de Google pour analyser et détecter les codes malveillants. Magika agira alors comme un pré-filtre avant que les fichiers ne soient analysés par Code Insight, améliorant ainsi l’efficacité et la précision de la plateforme. Cette intégration, en raison de la nature collaborative de VirusTotal, contribue directement à l’écosystème cyber, et ça c’est plutôt une bonne nouvelle pour tout le monde.

En ouvrant les sources de Magika, l’objectif de Google est d’aider d’autres éditeurs de logiciels à améliorer leur précision d’identification des fichiers et d’offrir aux chercheurs une méthode fiable pour identifier les types de fichiers à très grande échelle. Le code et le modèle de Magika sont disponibles gratuitement sur Github sous la licence Apache2.

Si vous êtes intéressé, vous pouvez essayer la démo web de Magika.

Magika peut également être rapidement installé en tant qu’utilitaire autonome et bibliothèque python via le gestionnaire de paquets pypi en tapant simplement :

pip install magika

Et pas besoin de GPU !

Pour en savoir plus sur la façon de l’utiliser, je vous invite à vous rendre sur la documentation de Magika.

Merci à Letsar pour l’info !

Uiverse – Plus de 3500 éléments d’interface utilisateur à copier coller dans vos projets web

samedi 17 février 2024 à 09:00

On n’a pas tous la chance d’être suffisamment en souffrance dans nos vies pour aimer faire de la CSS. Sauf que voilà, à un moment, y’en a forcément besoin. Surtout quand on veut mettre en place des éléments d’interfaces sympas et compatibles avec tous les navigateurs.

Que ce soit en CSS pure ou en Tailwind, sachez que vous trouverez forcement votre bonheur sur Uiverse (jeu de moooots), un site qui regroupe des milliers d’éléments d’interface que vous n’aurez plus qu’à copier coller, et éventuellement modifier un peu, avant de les mettre sur votre site web.

On y retrouve donc des boutons, des checkbox, des champs de saisie, des boutons radio, des éléments de formulaires, des animations de chargement et j’en passe. Et le plus beau là-dedans, c’est que tout ça est filtrable / triable par type de techno (CSS / Tailwind) mais également par thème ou nombre de téléchargements…etc.

Une fois que vous cliquez sur un élément UI qui vous intéresse, vous pouvez alors récupérer son code, la mettre en favoris pour plus tard ou carrément le balancer dans un de vos projets Figma.

Elle n’est pas belle la vie ?

Bref, si vous cherchez de quoi agrémenter vos interfaces gratuitement, ça se passe par ici.

Tart – La virtualisation Apple Silicon à pleine puissance

vendredi 16 février 2024 à 09:00

Les amis, aujourd’hui je vais vous parler de Tart.

Rien à voir avec la pâtisserie ou la grosse baffe dans la tronche. C’est plutôt virtualisation dont on va causer. Si vous êtes équipé d’un Mac sur architecture Silicon, donc un M1, M2 ou M3, vous avez dû vous rendre compte que côté virtualisation, ce n’était pas forcement le pied avec Virtualbox, Parallel, UTM, ou encore Vmware.

Concrètement, avec ces outils, ça fonctionne, mais c’est plus lent. Avec Tart, on monte d’un cran puisque l’outil utilise le framework de virtualisation natif d’Apple. Cela signifie que les performances sont natives et ça, c’est dingue.

Je l’ai testé, pour lancer du macOS ou du Linux en ARM64 sur un iMac M3 et ça dépote. On ne sent aucun ralentissement. Selon le benchmark de Tart, on est d’ailleurs à 97% de perf par rapport à une véritable machine.

Bref, c’est très cool pour vous monter des VM et c’est même conçu pour être intégré dans vos process CI/CD et être totalement orchestré via Orchad pour ceux qui connaissent.

Pour l’installer, c’est hyper simple :

brew install cirruslabs/cli/tart

Ensuite, vous pouvez cloner une machine depuis un dépôt officiel de Tart comme ceci :

tart clone ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base

Voici les images actuellement disponibles, mais vous pouvez aussi créer les vôtres :

Et une fois que c’est téléchargé, y’a plus qu’à lancer tout ça :

tart run sonoma-base

C’est tellement fluide… Et tout est supporté… Le son, la vidéo…etc. Bref, de quoi bidouiller en toute sécurité.

Mais le mieux c’est que je vous laisse regarder le tutoriel que j’ai réalisé sur Tart pour mes Patreons d’amour ! Rejoignez-nous !