Menú Principal

comprimir archivos

Iniciado por inma55, 6 Diciembre 2019, 10:52 AM

0 Miembros y 2 Visitantes están viendo este tema.

inma55

quiero saber si la manera de funcionar de un compresor (tanto a la hora de comprimir como descomprimir) de archivo es similar a la de un codec de audio y a un codec de video.
¿van en la misma linea?

Me suena haber leido que los compresores de archivos funcionan tipo "en lugar de poner la palabra que ponemos q y asi nos ahorramos 2 caracteres". ¿es así el funcionamiento?

gracias

EdePC

Saludos,

- Correcto es así, estas Diapositivas en ingles lo ilustran de forma sencilla: https://slideplayer.com/slide/15282157/

- Tan solo resaltar que hay compresión sin pérdida y con pérdida, en caso de compresores como  7-zip, WinRar, etc deben comprimir sin pérdida obviamente, sin embargo archivos de multimedia de Audio o Vídeo por lo general se comprimen con pérdida, quizá una pérdida de calidad imperceptible. Dependerá de cual sea el fin de la compresión o que se quiera obtener al final.

- Compresores de archivos como 7-zip, WinRar, etc utilizan un Tamaño de Palabra, un Tamaño de Diccionario y una Razón de Compresión, estos dependerán del algoritmo que utilicen, como puede ser LZMA, Deflate, Rar4, Rar5, etc.

-- El Tamaño de Palabra especifica eso mismo, el tamaño de la cadena de bytes máxima o patron: 123asd45rr123asd, en este caso un tamaño de palabra adecuado sería 3 bytes

-- El Tamaño de Diccionario especifica el Bloque de Memoria máxima a utilizar para agrupar los patrones hallados en el paso anterior, pues en el paso anterior se buscan palabras para ser agregas al diccionario para hacer ese reemplazo que comentas: 123asd45rr123asd => Diccionario:{123=>A, asd=>B, 45=>C, rr=>D}, quedando el comprimido a: ABCDAB.

-- La Razón de Compresión especificará lo minucioso que será el Algoritmo para hacer el trabajo, lo que necesitará más o menos Tiempo.

-- Al final el objetivo es tener esto en consideración y hacer los ajustes necesarios dependiendo del archivo a comprimir para obtener una buena compresión a un bajo coste de recursos.

- En caso de archivos multimedia se trabaja con conjuntos de frames o fotogramas del vídeo como si fueran Diccionarios, luego se comprimen los frames resultantes, esto en caso de compresión con pérdida, este vídeo lo explica claramente:

[youtube=640,360]https://youtu.be/6hQf_7UfLjw[/youtube]

Serapis

Cita de: inma55 en  6 Diciembre 2019, 10:52 AM
quiero saber si la manera de funcionar de un compresor (tanto a la hora de comprimir como descomprimir) de archivo es similar a la de un codec de audio y a un codec de video.
¿van en la misma linea?

Me suena haber leido que los compresores de archivos funcionan tipo "en lugar de poner la palabra que ponemos q y asi nos ahorramos 2 caracteres". ¿es así el funcionamiento?
Rotundamente NO.

Los códec de audio y vídeo utilizan compresión con pérdida de datos. Algo intolerable para ficheros comunes (como por ejemplo un texto).

Básicamente los compresores se dividen en dos tipos:
- Compresión con pérdida de datos: En ellos que algún dato se cambie ligeramente no tiene importancia, por ejemplo si en una foto hay un píxel aislado de color azul, y alrededor son verde, nadie notará qsi ese píxel también es verde como los de alrededor, igualmente tampoco nadie notará demasado si determinados verdes cambian ligeramente la tonalidad, para suprimir (o igualar), esos valores por los adhiacentes... a grosso modo.
- Compresión sin pérdida de datos: Así como en una imagen vídeo o sonido un cambio ligero de color, brillo, tono, etc... no tiene repercusión, sí puede ser inaceptable en otros tipos de datos.... imagina tu sueldo anual de 100.000 euros, comprimido como 000.000 ergo 6 ceros... es inaceptable. Al descomprimir debe mantenerse la integridad total de los datos, lo cual hace que sea más difícil y que en este caso el ratio de compresión sea menor, más lento y muy dependiente de los datos de entrada.

Partiendo de cada caso, hay diferentes técnicas en la reducción de datos. La compresión por diccionario es solo una de ellas...


MinusFour

Cita de: NEBIRE en  6 Diciembre 2019, 17:03 PM
Rotundamente NO.
Los códec de audio y vídeo utilizan compresión con pérdida de datos. Algo intolerable para ficheros comunes (como por ejemplo un texto).

Existen diferentes codecs con ambos tipos de compresión. De hecho, hay codecs inclusive que pueden operar con perdida y sin perdida de información. H.264 por ejemplo puede comprimir con perdida y sin perdida.

La compresión que utilizan los codecs para video y audio tiene más sentido para las aplicaciones de audio y de video que para almacenamiento en general.

inma55

Cita de: NEBIRE en  6 Diciembre 2019, 17:03 PM
Rotundamente NO.

Los códec de audio y vídeo utilizan compresión con pérdida de datos. Algo intolerable para ficheros comunes (como por ejemplo un texto).

Básicamente los compresores se dividen en dos tipos:
- Compresión con pérdida de datos: En ellos que algún dato se cambie ligeramente no tiene importancia, por ejemplo si en una foto hay un píxel aislado de color azul, y alrededor son verde, nadie notará qsi ese píxel también es verde como los de alrededor, igualmente tampoco nadie notará demasado si determinados verdes cambian ligeramente la tonalidad, para suprimir (o igualar), esos valores por los adhiacentes... a grosso modo.
- Compresión sin pérdida de datos: Así como en una imagen vídeo o sonido un cambio ligero de color, brillo, tono, etc... no tiene repercusión, sí puede ser inaceptable en otros tipos de datos.... imagina tu sueldo anual de 100.000 euros, comprimido como 000.000 ergo 6 ceros... es inaceptable. Al descomprimir debe mantenerse la integridad total de los datos, lo cual hace que sea más difícil y que en este caso el ratio de compresión sea menor, más lento y muy dependiente de los datos de entrada.

Partiendo de cada caso, hay diferentes técnicas en la reducción de datos. La compresión por diccionario es solo una de ellas...


me lio con las clasificaciones. Yo dentro de con perdida,haria dos subtipos
*perdida de calidad que es imperceptible
*perdida de calidad que es perceptible
¿es una buena subclasificacion?

me queda mucho mas claro,gracias

EdePC

Cita de: inma55 en  7 Diciembre 2019, 11:15 AM
me lio con las clasificaciones. Yo dentro de con perdida,haria dos subtipos
*perdida de calidad que es imperceptible
*perdida de calidad que es perceptible
¿es una buena subclasificacion?

me queda mucho mas claro,gracias

- Básicamente solo hay Lossless (sin pérdida) y Lossy (con pérdida), sin embargo depende de la finalidad, en caso de multimedia se usa lossless para backup o para edición cruda, tal es el caso de imágenes RAW, capturas en video lossless como los codecs que usan CamStudio, Camtasia Studio, etc. Pero para entregar al público estos archivos multimedia se suele utilizar un codec lossy.

- Los codecs o compresores multimedia evolucionan dependiendo a la demanda, ahora que es más común ver vídeos en 4K y BlueRay, los algoritmos de compresión tienen que evolucionar también para ofrecer una buena calidad al peso estándar de un BlueRay, o a la velocidad de Internet para vídeo Streaming, o a la capacidad de cómputo necesaria para descomprimir los archivos multimedia mientras que se reproducen.

-- La mayoría de los codecs tienen un parámetro ajustable de Calidad, y además también unos ajustes pre-establecidos que indican Visualmente Lossless, es decir, con pérdida de calidad imperceptible por la mayoría de la gente. Lo mismo en compresiones de imágenes para web como Pingo https://css-ig.net que por defecto trabaja en  Web Lossless.

-- Los desarrolladores de estos codecs o compresores se encargan de trabajar su algoritmo para hallar ese "Visualmente Lossless" o "Web Lossless" o "Audible Lossless".

MinusFour

Cita de: EdePC en  7 Diciembre 2019, 21:04 PM
- Básicamente solo hay Lossless (sin pérdida) y Lossy (con pérdida), sin embargo depende de la finalidad, en caso de multimedia se usa lossless para backup o para edición cruda, tal es el caso de imágenes RAW, capturas en video lossless como los codecs que usan CamStudio, Camtasia Studio, etc. Pero para entregar al público estos archivos multimedia se suele utilizar un codec lossy.

RAW es una bestia diferente. Los formatos RAW proveen información en crudo de los sensores de la cámara. Todavía necesita aplicarse un proceso de interpolación cromática del cual se pueden aplicar diferentes algoritmos para obtener imágenes diferentes. El filtro más común es el filtro de Bayer, que si vieras los colores tal cual lo ve la camara, verías la imagen en verde (por que el 50% de la información viene detrás de un filtro verde):

https://es.wikipedia.org/wiki/Mosaico_de_Bayer



Y de un solo filtro se puede usar diferentes algoritmos para llegar a diferentes resultados.

RAW también viene en diferentes variaciones, comprimido o no, con perdida y sin perdida. Sony y Canon por ejemplo soportan formatos comprimidos con perdida (al menos para imágenes). Realmente no me ha tocado ver cámaras que guarden RAW descomprimidas, pero debe haber. Las cámaras se quedan más cortos con velocidad de transferencia que en velocidad de procesamiento la verdad, aunque es una combinación de los dos (ahí es cuando las cámaras empiezan a hacer "Buffering"). Yo creo que ganas más como quiera comprimiendo sin perdida que sin comprimir, salvo en algunas excepciones.

inma55

he probado a comprimir con mi movil android y ha comprimido muy poco. de un archivo de 40mb ha pasado a 39mb
me imagino que es porque ese archivo ya estaba en una calidad muy mala.