Combien de fois peut-on un fichier compressé?
Je pensais à la compression, et il semble qu'il y aurait à être une sorte de limite à la compression, qui peut être appliquée à elle, autrement, il s'agit d'un seul octet.
Donc ma question est, combien de fois puis-je compresser un fichier avant de l':
- Il ne peut pas faire plus petit?
- Le fichier est corrompu?
Sont ces deux points, le même ou différent?
D'où vient le point de rendements décroissants apparaissent?
Comment ces points soient trouvés?
Je ne parle pas de tout algorithme spécifique ou un fichier en particulier, il suffit en général.
- vous devez préciser si vous demandez sans perte, à perte, ou les deux, la compression de données.
- J'ai entendu parler d'un algorithme de compression, que si courir plus et plus encore par la suite réduit la taille du fichier sur 1 octet. En l'utilisant, j'ai réussi à stocker tous les fichiers jamais créé dans un seul fichier zip - et il était plus petit que 1 KO! Certaines personnes disent que l'algorithme a un peu de perte de qualité. - Je dire, cependant, que le gain de place a plus que compensé la légère perte de précision. 😉
- Combien de routes un homme doit descendre?
- Pourriez-vous parler de Matt Mahoney du BARF compresseur? mattmahoney.net/dc/barf.html
- on dirait qu'ils ont parcouru un long chemin dans la technologie de compression!
- si vous faites référence à BARF compresseur, puis je tiens à mentionner que le compresseur est un tricheur. Il ne fait pas les compresser les données, mais plutôt commence à retirer les octets de données réelles et de les placer dans
File Name
donc de réduire la taille du fichier, mais la vérité est ses en augmentant le nom du fichier à 3 fois plus que le fichier d'origine.
Vous devez vous connecter pour publier un commentaire.
Pour la compression sans perte, la seule façon, vous pouvez savoir combien de fois vous pouvez gagner par le recompresser ensuite un fichier est de l'essayer. Il dépendra de l'algorithme de compression et le fichier à compresser.
Deux fichiers peuvent ne jamais compresser à la même sortie, de sorte que vous ne pouvez pas aller vers le bas pour un octet. Comment pourrait-on octets représentent tous les fichiers que vous pourriez décompresser à l'?
La raison que la deuxième compression fonctionne parfois est un algorithme de compression ne peut pas faire omniscient compression parfaite. Il y a un compromis à faire entre le travail qu'il a à faire et le temps qu'il faut pour le faire. Votre fichier est modifié à partir de toutes les données à une combinaison de données relatives à vos données et les données elles-mêmes.
Exemple
Prendre run-length encoding (probablement le plus simple utile de compression) par exemple.
04 04 04 04 43 43 43 43 51 52 11 octets
Cette série d'octets peut être compressé:
[4] 04 [4] 43 [-2] 51 52 7 octets (je suis en train de méta-données dans les parenthèses)
Où le positif numéro entre parenthèses correspond à un nombre de répétitions et le nombre négatif entre parenthèses est une commande à émettre de la prochaine -n caractères qu'ils sont trouvés.
Dans ce cas, nous pourrions essayer un de plus de compression:
[3] 04 [-4] 43 fe 51 52 7 octets (fe est votre -2 considéré comme complément à deux de données)
Nous avons rien gagné, et nous allons commencer de plus en plus sur la prochaine itération:
[-7] 03 04 fc 43 fe 51 52 8 octets
Nous allons grandir par un octet par itération pour un certain temps, mais il sera en fait qu'empirer. Un octet peut contenir uniquement des nombres négatifs -128. Nous allons commencer de plus en plus par deux octets lorsque le fichier dépasse 128 octets de longueur. La croissance sera encore pire que le fichier est plus gros.
Il y a un vent de face, soufflant contre le programme de compression--les méta-données. Et aussi, pour réel compresseurs, l'en-tête ajouté au début du fichier. Cela signifie que, finalement, le fichier va commencer de plus en plus avec chaque compression supplémentaire.
RLE est un point de départ. Si vous voulez en savoir plus, regardez LZ77 (qui regarde en arrière dans le fichier afin de trouver des modèles) et LZ78 (qui construit un dictionnaire). Les compresseurs de type zip souvent essayer plusieurs algorithmes et de les utiliser au mieux.
Voici quelques cas, je pense, d'où de multiples compression a travaillé.
Généralement la limite est d'une compression. Certains algorithmes résultats dans un rapport de compression plus élevé, et à l'aide d'un mauvais algorithme de suivi par un bon algorithme se traduit souvent par des améliorations. Mais en utilisant le bon algorithme, en premier lieu est la bonne chose à faire.
Il y a une limite théorique à quel point un ensemble de données peuvent être compressées. Pour en savoir plus à propos de cela, vous aurez à étudier la théorie de l'information.
En général pour la plupart des algorithmes de compression plus d'une fois n'est pas utile. Il y a un cas particulier cependant.
Si vous avez un grand nombre de fichiers en double, le zip format zip chacun indépendamment, et vous pouvez ensuite le zip de la première fichier zip pour supprimer les doublons de zip de l'information. Plus précisément, pour les 7 à l'identique les fichiers Excel de taille moyenne à 108kb, les compresser avec 7-zip résultats dans un 120kb archive. La compression à nouveau les résultats dans un 18kb archive. Aller au-delà de ce que vous obtenez des rendements décroissants.
Supposons que nous avons un fichier de N bits, et nous voulons le compresser sans perte, afin que nous puissions récupérer le fichier original. Il y a 2^N possible fichiers de N bits, et donc de notre algorithme de compression a pour modifier l'un de ces fichiers à l'un des 2^N autres possibles. Cependant, nous ne pouvons pas exprimer 2^N fichiers différents en moins de N bits.
Par conséquent, si nous pouvons prendre quelques fichiers et de les compresser, nous avons certains des fichiers de longueur sous la compression, à la solde de ceux qui se raccourcir.
Cela signifie qu'un algorithme de compression ne peut compresser certains fichiers, et il a réellement rallonger de quelques. Cela signifie que, en moyenne, compresser un fichier aléatoire ne peut pas raccourcir, mais pourrait l'allonger.
Pratique des algorithmes de compression de travail parce que nous n'avons pas l'habitude d'utiliser les fichiers aléatoires. La plupart des fichiers que nous utilisons ont une sorte de structure ou d'autres propriétés, qu'il s'agisse de texte ou des programmes exécutables ou de sens des images. À l'aide d'un bon algorithme de compression, nous pouvons réduire de façon significative les fichiers de types que nous utilisons habituellement.
Cependant, le fichier compressé n'est pas un de ces types. Si l'algorithme de compression est bonne, la plupart de la structure et de la redondance ont été évincés, et ce qui est à gauche ressemble plutôt aléatoire.
Pas d'algorithme de compression, comme nous l'avons vu, peut compresser un fichier aléatoire, et qui s'applique à un hasard-à la recherche de fichiers aussi. Donc, en essayant de re-compresser un fichier compressé de ne pas la raccourcir de manière significative, et qui risque d'allonger certains.
Donc, le nombre de fois qu'un algorithme de compression peut être profitable run est une.
La Corruption ne se produit que lorsque nous parlons de la compression avec perte. Par exemple, vous ne pouvez pas récupérer une image avec précision à partir d'un fichier JPEG. Cela signifie que d'un compresseur JPEG fiable pour raccourcir un fichier image, mais seulement au prix de ne pas être en mesure de le récupérer exactement. Nous sommes souvent prêts à le faire pour les images, mais pas pour le texte, et surtout pas de fichiers exécutables.
Dans ce cas, il n'y a pas d'étape à laquelle le début de la corruption. Il commence quand vous commencez à le compresser, et s'aggrave comme vous le compresser plus. C'est pourquoi une bonne image, les programmes de traitement permettent de spécifier le niveau de compression que vous voulez, quand vous faites un JPEG: vous pouvez donc l'équilibre de la qualité de l'image par rapport à la taille du fichier. Vous trouver le point d'arrêt en considérant le coût de la taille du fichier (ce qui est plus important pour les connexions de stockage, en général) par rapport au coût de la baisse de la qualité. Il n'est pas évident de trouver la bonne réponse.
Habituellement une fois la compression est assez bon si l'algorithme est bon.
En fait, la compression de plusieurs fois, pourrait conduire à une augmentation de la taille
Vos deux points sont différents.
on s'attend à un théorique condition
est susceptible d'être une erreur dans la mise en œuvre (ou peut-être que l'algorithme lui-même)
Maintenant regardons quelques exceptions ou des variations,
(en fait à la fois l'augmentation de la taille) pour le but de l'augmentation de la sécurité
va perdre des données (effectivement être "corrompu" dans un sens)
Vous pouvez compresser un fichier autant de fois que vous le souhaitez. Mais pour la plupart des algorithmes de compression la compression qui en résulte partir de la deuxième fois sur sera négligeable.
De Compression (je pense lossless) en fait, est d'exprimer quelque chose de plus concise. Par exemple
pourrait être plus consisely exprimé en
Cela s'appelle run-length encoding. Une autre méthode que l'ordinateur puisse utiliser est de trouver un modèle qui est régulièrement répétée dans un fichier.
Il y a clairement une limite à combien ces techniques peuvent être utilisées, par exemple le codage n'est pas d'effet sur
car il n'y a pas de motifs répétés. De même, si le motif de méthodes de remplacement convertit des schémas de 3 char ceux, de le réappliquer aura peu d'effet, parce que la seule répétition de motifs sera de 3 ou de longueur plus courte. Généralement appliquer une compression à un déjà un fichier compressé le rend légèrement plus grand, en raison de divers frais généraux. Appliquer de bonnes méthodes de compression pour un mal de fichier compressé est généralement moins efficace que d'appliquer simplement la bonne compression.
En général, même pas un. Quel que soit l'algorithme de compression que vous utilisez, il doit toujours existe un fichier qui n'est pas comprimée, sinon vous risquez de toujours compresser plusieurs reprises jusqu'à ce que vous atteindre 1 octet, par le même argument.
Si le programme que vous utilisez pour compresser le fichier fait son travail, le fichier ne sera jamais corrompu (bien sûr, je pense à lossless de compression).
Vous pouvez compresser un nombre infini de fois. Cependant, la deuxième et plus de compressions, généralement, seulement de produire un fichier de taille supérieure à la précédente. Donc, il n'y a pas de point de compression plus d'une fois.
Ici est le summum de l'algorithme de compression (en Python) qui, par l'utilisation répétée de compresser n'importe quelle chaîne de chiffres à taille 0 (il est laissé en exercice au lecteur comment les appliquer à une chaîne d'octets).
Le programme des sorties 12 11 10 09 08 07 06 05 04 03 02 01 00 9 8 7 6 5 4 3 2 1 0 alors une chaîne vide. Il ne compresse pas la chaîne à chaque passage mais il avec assez de passes compresser les chiffres de la chaîne à une chaîne de longueur zéro. Assurez-vous que vous écrivez combien de fois vous l'envoyer par le compresseur, sinon vous ne serez pas en mesure de le récupérer.
C'est une très bonne question. Vous pouvez afficher à un fichier de point de vue différent. Vous savez peut-être a priori que ce fichier contient l'arithmétique de la série.
Permet d'afficher comme datastream des "octets", "symboles", ou "échantillons".
Certaines réponses peuvent vous donner "la théorie de l'information" et "mathématiques et statistiques"
Veuillez vérifier monographie des chercheurs pour une pleine compréhension profonde:
A. Kolmogorov
S. Kullback
С. Shannon
N. Wiener
L'un des principaux concept dans la théorie de l'information est l'entropie.
Si vous avez un flux de "octets"....L'entropie de cette octets ne dépend pas des valeurs de votre "octets", ou "échantillons"...
S'il a été défini que par les fréquences avec lesquelles octets restauration des valeurs différentes.
L'entropie maximale a lieu de plein aléatoire datastream.
Minimum d'entropie, ce qui égale à zéro, a endroit à être pour le cas où votre "octets" a une valeur identique.
Donc l'entropie est le nombre minimum de bits par votre "octet", que vous devez utiliser lors de l'écriture des données sur le disque. Bien sûr, il est donc, si vous utilisez l'algorithme de dieu. La vraie vie de compression sans perte des algorithmes heuristiques ne le sont pas.
Je ne comprends pas le sens de la question. Vous pouvez écrire n'bits sur le disque et vous allez écrire un fichier endommagé sur le disque avec une taille égale à 0 bits. Bien sûr, il est corrompu, mais sa taille est de zéro bits.
Exemple plus avancé de la technique de compression à l'aide de "un double tableau, ou de la croix de la matrice"
Aussi elimiates extrenous unnessacry symboles dans l'algorithme
[EXEMPLE PRÉCÉDENT]
Prenez run-length encoding (probablement le plus simple utile de compression) par exemple.
04 04 04 04 43 43 43 43 51 52 11 octets
Cette série d'octets peut être compressé:
[4] 04 [4] 43 [-2] 51 52 7 octets (je suis en train de méta-données dans les parenthèses)
[DEVIENT]
04.43.51.52 VALEURS
4.4.**-2 COMPRESSION
Compression à l'Aide de Rajouter des Symboles comme des valeurs de substitution
04.Un.B.LES VALEURS DE C
4.4.**-2 COMPRESSION
En théorie, nous ne le saurons jamais, c'est un interminable chose:
(source)
Tout dépend de l'algorithme. En d'autres termes, la question peut être combien de fois un fichier peut être compressé à l'aide de cet algorithme d'abord, puis de ce côté...