J'essaie de concevoir un tissu qui, du point de vue d'une caméra, est très difficile à compresser avec JPG, ce qui produit des fichiers de grande taille (ou une qualité d'image médiocre si la taille du fichier est fixe).
Cela doit fonctionner même si le tissu est éloigné de l'appareil photo ou tourné (disons que l'échelle peut varier de 1x à 10x).
Le bruit est assez bon (difficile à compresser), mais il devient gris lorsqu'on regarde de loin et devient facile à compresser. Un bon motif serait une sorte de fractale , ressemblant à toutes les échelles.
Le feuillage est meilleur (feuilles, petites branches, petites branches, grandes branches), mais il utilise trop peu de couleurs.
Voici un premier essai:
Je suis sûr qu'il y a plus de modèles optimaux.
Peut-être que les mosaïques hexagonales ou triangulaires donneraient de meilleurs résultats.
JPG utilise l’ espace colorimétrique Y ′ Cb Cr . Je pense que Cb Cr peut être généré de la même manière, mais j’imagine qu’il est préférable de ne pas utiliser uniformément toute la portée de Y '(luminosité) car la caméra saturera les zones claires ou sombres ( l'éclairage n'est jamais parfait).
QUESTION: Quel est le modèle de tissu optimal pour ce problème?
la source
Réponses:
Eh bien, il y a un bruit fractal . Je pense que le bruit brownien est fractal et ressemble à celui que vous zoomez dessus. Wikipedia parle d'ajouter du bruit Perlin à lui-même à différentes échelles pour produire un bruit fractal, qui est peut-être identique, je ne suis pas sûr:
Je ne pense pas que ce serait difficile à compresser, cependant. Le bruit est difficile pour une compression sans perte, mais JPEG est une perte, alors il va simplement jeter les détails au lieu de lutter. Je ne sais pas s'il est possible de créer quelque chose de "difficile à compresser pour JPEG", car il ignorera tout ce qui est trop difficile à compresser à ce niveau de qualité.
Quelque chose avec des bords durs à n'importe quelle échelle serait probablement mieux, comme l'avion en damier infini:
Aussi quelque chose avec beaucoup de couleurs. Peut-être regarder les fractales réelles au lieu du bruit fractal. Peut-être une fractale de Mondrian ? :)
la source
Si nous parlions d'images générées par ordinateur, le bruit serait la bonne approche. Mais ici, il y a l'étape de capture de la caméra.
Le bit fractal est très important en raison de la question de l'invariance d'échelle. Il n'est pas nécessaire que ce soit vraiment une fractale, si vous considérez qu'il y a une distance limitée à laquelle la personne va être photographiée. Je veux dire, si la personne qui porte le tissu est à l'arrière-plan d'une photo, cela n'aura pas beaucoup d'impact de toute façon ...
Je pense que la meilleure façon de tromper le codeur JPEG serait d’avoir des blocs avec des coefficients haute fréquence très élevés qui survivront à la quantification = beaucoup de détails et des arêtes vives; il faut donc écrire explicitement toute la séquence de coefficients (au lieu d’un EOB au 15ème coefficient environ). Les motifs en damier sont un bon moyen d'y parvenir. Le seul inconvénient que je vois, c’est que la faible résolution de l’objectif + les filtres antialiasing de la caméra ont de bonnes chances de brouiller ça! Tout devrait arriver dans les blocs 8x8 (ou 16x16 en chroma) car JPEG ne fait pas grand chose à l'échelle macro. Vous devez rendre vos blocs 8x8 aussi désordonnés que possible, même si l'objectif est flou.
Voici une suggestion:
Vous vous demandez peut-être ce que les blocs moins contrastés font ici, mais ils aident à garder la zone contrastée lorsque la chose est zoomée. Le défi ici est d’avoir quelque chose avec un motif contrasté quelle que soit l’échelle de visualisation.
Je n'ai pas formellement évalué cela. Le meilleur moyen serait d'avoir un script qui prenne l'image, applique une douzaine de recadrage / redimensionnement / flou avec divers paramètres et scinde la taille totale des fichiers JPEG.
la source
Il y a une différence entre JPEG exploitable et Transform Compressible.
Prenez le bruit granuleux blanc du téléviseur, par exemple.
Un bruit blanc général s'étale au maximum sur la fréquence et il n'y a donc pas de meilleur exemple que le bruit blanc qu'une technique de codage par domaine de transformation ne peut pas compresser. Si vous prenez un tel bruit et prenez DCT (ou DFT si nécessaire), nous verrons que le domaine de fréquence est également étendu et que tous les coefficients auront une importance.
Cependant, toujours personne ne vous empêche d'être agressif de la quantification. De cette façon, vous pouvez toujours ignorer une quantité importante des régions à haute fréquence. Le résultat aura une grosse erreur moyenne. Cependant, perceptuellement ce serait toujours du bruit. Il pourrait être très flou cependant.
De l’autre côté, prenez maintenant des images où les bords sont nets.
Les arêtes vives se seront également étendues dans la fréquence la plus élevée (mais il se peut que cela soit juste un peu moins que dans le cas précédent). Cependant, en essayant de le compresser et en chutant de haute fréquence, il y aura maintenant plusieurs obstacles visuels. Cela entraînera un flou sur les bords, un effet de sonnerie, etc. Bien que la largeur de bande pour de telles images ne soit pas la plus grande possible, pour JPEG ou toute compression équivalente, il sera difficile de conserver de telles images de qualité égale.
Quelle que soit la compression avec perte, la complexité dépend du degré et du type de distorsion tolérés.
la source
La composition ci-dessous montre une structure de type fractale du motif. Chaque image suivante est le résultat de la moyenne de chaque bloc de 2x2 pixels du précédent. Le caractère total du motif reste le même mais le contraste de l’image diminue progressivement. Comme cela a été dit tout à l'heure, l'image devient grise lorsque nous effectuons un zoom arrière.
Mais en utilisant la propriété fractale, nous pourrions superposer ensemble plusieurs motifs de résolution différente afin de maintenir le contraste de l'image stable dans la plage souhaitée. L'exemple ci-dessous illustre un motif à 4 couches (512x512 GIF). Ce résultat est plus proche du bruit brownien et aussi difficilement compressible en JPEG.
la source
Mon hypothèse est que le pire modèle compressible serait le bruit blanc (avec une distribution uniforme). Il doit sembler bruyant sur différentes résolutions, de sorte que vous puissiez créer les images bruitées dans un espace d'échelle et les assembler:
Une meilleure façon de construire une telle image serait peut-être de travailler directement dans le domaine fréquentiel, ainsi:
Le résultat serait le modèle compressible le plus compressé pour JPEG, car il présente la plus grande entropie dans le domaine DCT. Mais je ne suis pas sûr de savoir comment cela se comportera avec différentes résolutions.
la source
IIRC, l'algorithme de décompression JPEG est spécifié, mais pas l'algorithme de compression exact. Différents algorithmes peuvent produire un fichier JPEG légal. Il vous faudra donc tester ceci sur le ou les compresseurs d’image choisis.
Tout peut être compressé du même montant par un compresseur avec perte, tel que JPEG. C'est simplement que, à tout niveau de compression fixe, la qualité de la compression peut varier (le bruit ou l'erreur dans le résultat décompressé augmentera) en fonction de l'image. Vous voulez donc quelque chose qui ajoute une quantité maximale de bruit au résultat décompressé. Pour cela, vous voulez l'erreur maximale pour supprimer les coefficients de macrobloc haute fréquence et pour quantifier tous les coefficients.
Ce qui signifie probablement des piquets variés et à haute fréquence, ainsi que des échelles de gris et de couleurs variables entre les niveaux de quantification possibles du compresseur donné à un réglage donné.
Puisque vous voulez que cela fonctionne à n’importe quelle distance, peu importe la luminosité, vous devrez faire varier la fréquence des piquets de grève (peut-être fractale, ou peut-être simplement avec une modulation de fréquence aléatoire), ainsi que les niveaux de couleur et de gris (de manière non cohérente, par exemple: couleurs et les niveaux indépendamment). La variance des teintes dépend moins de la distance, vous devez donc sélectionner celles-ci, ce qui sera pire pour le ou les quantificateurs sélectionnés. La taille moyenne des motifs de couleur peut être deux fois supérieure à celle des motifs de luminance pour correspondre à la composition de macrobloc YUV 4: 1: 1 (surface).
Je commencerais par une série de motifs moirés très colorés à différentes échelles superposées et / ou rapiécés de manière fractale.
la source
Permettez-moi de partager le motif à spectre très plat (comme le bruit blanc). Il est donc très difficile de compresser ce motif avec JPG. L'image échantillon ci-dessous est agrandie 4 fois.
Le motif lui-même est régulier, mais non périodique, et pourrait être facilement généré par l’algorithme déterministe. Il a également une propriété fractale.
Vu de loin:
la source
Le bruit aléatoire compresse très mal. Vous pouvez le produire en couleur en générant des valeurs R, V, B indépendantes.
Regarder à distance effacera effectivement le bruit (par filtrage passe-bas), et vous pouvez l'éviter en générant des images de bruit à différentes résolutions, c'est-à-dire en utilisant des pixels de plus en plus grands et en les superposant.
Lorsque vous ajoutez des images, vous êtes confronté au problème de la plage de valeurs, qui augmente avec le nombre d'images. Laissez N. Si vous ne faites que les moyenaliser, l'amplitude du bruit diminuera de 1 / N.
Si vous choisissez un bruit uniforme non corrélé, la superposition produira une distribution quasi-gaussienne avec un écart-type √N. Ainsi, au lieu de diviser par N, vous pouvez diviser par √N (avec un recentrage approprié) pour limiter la réduction d'amplitude.
Enfin, je suppose qu'il est préférable de laisser les valeurs enveloppantes plutôt que de les saturer, car les valeurs saturées formeront de grandes zones uniformes.
la source
Voici une autre approche permettant de gagner du bruit brownien RVB (4096x4096 GIF).
la source
Question étonnante! En principe, le bruit blanc est un signal qui ne change pas lorsqu'il est mis à l'échelle temporelle. De la même manière, une fractale ne change pas lorsqu'elle est redimensionnée. Un processus de compression avec perte ne prend que le plus important du spectre (la durée ou la taille), mais pas tous, donc les fractales et le bruit ont une odeur de biscuit. Par conséquent, vous devez jouer avec les couleurs et les motifs de votre tissu. Ils doivent être des fractales et leur comportement doit être blanc et généré aléatoirement. Vous devriez obtenir un tissu qui semble noir (dans l’espace couleur CMJ) mais qui, dans le monde réel, présente un motif coloré.
Bonne chance! , et si vous obtenez la réponse, merci de la poster !!!.
la source