Compresión de datos
En la teoría de la información, compresión de datos, codificación de fuentes o reducción de la tasa de bits es el proceso de codificación de información utilizando menos bits que el representación original. Cualquier compresión en particular es con pérdida o sin pérdida. La compresión sin pérdidas reduce los bits al identificar y eliminar la redundancia estadística. No se pierde información en la compresión sin pérdidas. La compresión con pérdida reduce los bits al eliminar información innecesaria o menos importante. Por lo general, un dispositivo que realiza la compresión de datos se denomina codificador y uno que realiza la inversión del proceso (descompresión) como decodificador.
El proceso de reducir el tamaño de un archivo de datos suele denominarse compresión de datos. En el contexto de la transmisión de datos, se denomina codificación de fuente; codificación realizada en la fuente de los datos antes de que se almacenen o transmitan. La codificación de fuente no debe confundirse con la codificación de canal, para la detección y corrección de errores o la codificación de línea, los medios para mapear datos en una señal.
La compresión es útil porque reduce los recursos necesarios para almacenar y transmitir datos. Los recursos computacionales se consumen en los procesos de compresión y descompresión. La compresión de datos está sujeta a una compensación de complejidad de espacio-tiempo. Por ejemplo, un esquema de compresión para video puede requerir un hardware costoso para que el video se descomprima lo suficientemente rápido como para verlo mientras se descomprime, y la opción de descomprimir el video por completo antes de verlo puede ser un inconveniente o requerir almacenamiento adicional. El diseño de esquemas de compresión de datos implica compensaciones entre varios factores, incluido el grado de compresión, la cantidad de distorsión introducida (cuando se usa compresión de datos con pérdida) y los recursos computacionales necesarios para comprimir y descomprimir los datos.
Sin pérdidas
Los algoritmos de compresión de datos sin pérdida suelen aprovechar la redundancia estadística para representar datos sin perder información, de modo que el proceso sea reversible. La compresión sin pérdidas es posible porque la mayoría de los datos del mundo real exhiben redundancia estadística. Por ejemplo, una imagen puede tener áreas de color que no cambian en varios píxeles; en lugar de codificar "píxel rojo, píxel rojo,..." los datos pueden estar codificados como "279 píxeles rojos". Este es un ejemplo básico de codificación de longitud de ejecución; hay muchos esquemas para reducir el tamaño del archivo eliminando la redundancia.
Los métodos de compresión Lempel-Ziv (LZ) se encuentran entre los algoritmos más populares para el almacenamiento sin pérdidas. DEFLATE es una variación de LZ optimizada para la velocidad de descompresión y la relación de compresión, pero la compresión puede ser lenta. A mediados de la década de 1980, siguiendo el trabajo de Terry Welch, el algoritmo Lempel-Ziv-Welch (LZW) se convirtió rápidamente en el método elegido para la mayoría de los sistemas de compresión de propósito general. LZW se utiliza en imágenes GIF, programas como PKZIP y dispositivos de hardware como módems. Los métodos LZ utilizan un modelo de compresión basado en tablas en el que las entradas de la tabla se sustituyen por cadenas de datos repetidas. Para la mayoría de los métodos LZ, esta tabla se genera dinámicamente a partir de datos anteriores en la entrada. La tabla en sí a menudo está codificada por Huffman. Los códigos basados en la gramática como este pueden comprimir entradas altamente repetitivas de manera extremadamente efectiva, por ejemplo, una recopilación de datos biológicos de la misma especie o de especies estrechamente relacionadas, una gran colección de documentos versionados, archivo de Internet, etc. La tarea básica de los códigos basados en la gramática es construir una gramática libre de contexto que deriva de una sola cadena. Otros algoritmos prácticos de compresión de gramática incluyen Sequitur y Re-Pair.
Los compresores sin pérdidas modernos más potentes utilizan modelos probabilísticos, como la predicción por coincidencia parcial. La transformada de Burrows-Wheeler también se puede ver como una forma indirecta de modelado estadístico. En un refinamiento adicional del uso directo de modelos probabilísticos, las estimaciones estadísticas se pueden acoplar a un algoritmo llamado codificación aritmética. La codificación aritmética es una técnica de codificación más moderna que utiliza los cálculos matemáticos de una máquina de estados finitos para producir una cadena de bits codificados a partir de una serie de símbolos de datos de entrada. Puede lograr una compresión superior en comparación con otras técnicas, como el conocido algoritmo de Huffman. Utiliza un estado de memoria interna para evitar la necesidad de realizar un mapeo uno a uno de símbolos de entrada individuales a distintas representaciones que usan un número entero de bits, y borra la memoria interna solo después de codificar la cadena completa de símbolos de datos.. La codificación aritmética se aplica especialmente bien a las tareas de compresión de datos adaptables donde las estadísticas varían y dependen del contexto, ya que se puede combinar fácilmente con un modelo adaptable de la distribución de probabilidad de los datos de entrada. Un ejemplo temprano del uso de la codificación aritmética fue una característica opcional (pero no muy utilizada) del estándar de codificación de imágenes JPEG. Desde entonces, se ha aplicado en varios otros diseños, incluidos H.263, H.264/MPEG-4 AVC y HEVC para la codificación de video.
El software de archivo normalmente tiene la capacidad de ajustar el "tamaño del diccionario", donde un tamaño más grande exige más memoria de acceso aleatorio durante la compresión y descompresión, pero comprime más fuerte, especialmente en patrones repetitivos en archivos' contenido.
Perdida
(feminine)A fines de la década de 1980, las imágenes digitales se volvieron más comunes y surgieron estándares para la compresión de imágenes sin pérdidas. A principios de la década de 1990, los métodos de compresión con pérdida comenzaron a utilizarse ampliamente. En estos esquemas, se acepta cierta pérdida de información, ya que eliminar detalles no esenciales puede ahorrar espacio de almacenamiento. Existe una compensación correspondiente entre preservar la información y reducir el tamaño. Los esquemas de compresión de datos con pérdida están diseñados por investigaciones sobre cómo las personas perciben los datos en cuestión. Por ejemplo, el ojo humano es más sensible a las sutiles variaciones de luminancia que a las variaciones de color. La compresión de imágenes JPEG funciona en parte al redondear bits de información no esenciales. Varios formatos de compresión populares aprovechan estas diferencias de percepción, incluidos los psicoacústicos para el sonido y los psicovisuales para imágenes y videos.
La mayoría de las formas de compresión con pérdida se basan en la codificación de transformada, especialmente la transformada de coseno discreta (DCT). Fue propuesto por primera vez en 1972 por Nasir Ahmed, quien luego desarrolló un algoritmo de trabajo con T. Natarajan y K. R. Rao en 1973, antes de presentarlo en enero de 1974. DCT es el método de compresión con pérdida más utilizado y se usa en formatos multimedia para imágenes (como JPEG y HEIF), video (como MPEG, AVC y HEVC) y audio (como MP3, AAC y Vorbis).
La compresión de imágenes con pérdida se utiliza en las cámaras digitales para aumentar la capacidad de almacenamiento. Del mismo modo, los DVD, Blu-ray y la transmisión de video utilizan formatos de codificación de video con pérdida. La compresión con pérdida se usa ampliamente en video.
En la compresión de audio con pérdida, se utilizan métodos psicoacústicos para eliminar los componentes no audibles (o menos audibles) de la señal de audio. La compresión del habla humana a menudo se realiza con técnicas aún más especializadas; la codificación de voz se distingue como una disciplina separada de la compresión de audio de propósito general. La codificación de voz se utiliza en la telefonía por Internet; por ejemplo, la compresión de audio se utiliza para copiar CD y los reproductores de audio la decodifican.
La compresión con pérdida puede causar pérdida de generación.
Teoría
La base teórica para la compresión la proporciona la teoría de la información y, más específicamente, la teoría algorítmica de la información para la compresión sin pérdidas y la teoría de distorsión de velocidad para la compresión con pérdidas. Estas áreas de estudio fueron creadas esencialmente por Claude Shannon, quien publicó artículos fundamentales sobre el tema a fines de la década de 1940 y principios de la de 1950. Otros temas asociados con la compresión incluyen la teoría de la codificación y la inferencia estadística.
Aprendizaje automático
Existe una estrecha conexión entre el aprendizaje automático y la compresión. Un sistema que predice las probabilidades posteriores de una secuencia dado su historial completo puede usarse para una compresión de datos óptima (mediante el uso de codificación aritmética en la distribución de salida). Por el contrario, se puede usar un compresor óptimo para la predicción (encontrando el símbolo que se comprime mejor, dado el historial anterior). Esta equivalencia se ha utilizado como justificación para usar la compresión de datos como punto de referencia para la "inteligencia general".
Una vista alternativa puede mostrar que los algoritmos de compresión asignan implícitamente cadenas en vectores de espacio de características implícitas, y las medidas de similitud basadas en compresión calculan la similitud dentro de estos espacios de características. Para cada compresor C(.) definimos un espacio vectorial asociado ℵ, tal que C(.) asigna una cadena de entrada x, correspondiente a la norma vectorial ||~x||. El espacio impide un examen exhaustivo de los espacios de características subyacentes a todos los algoritmos de compresión; en su lugar, los vectores de características optan por examinar tres métodos de compresión sin pérdida representativos, LZW, LZ77 y PPM.
Según la teoría AIXI, una conexión explicada más directamente en Hutter Prize, la mejor compresión posible de x es el software más pequeño posible que genera x. Por ejemplo, en ese modelo, el tamaño comprimido de un archivo zip incluye tanto el archivo zip como el software de descompresión, ya que no puede descomprimirlo sin ambos, pero puede haber una forma combinada aún más pequeña.
Diferenciación de datos
La compresión de datos puede verse como un caso especial de diferenciación de datos. La diferenciación de datos consiste en producir una diferencia dado un origen y un objetivo, con el parcheo reproduciendo el objetivo dado un origen y una diferencia. Dado que no hay un origen y un destino separados en la compresión de datos, uno puede considerar la compresión de datos como datos que se diferencian de los datos de origen vacíos, el archivo comprimido corresponde a una diferencia de la nada. Esto es lo mismo que considerar la entropía absoluta (correspondiente a la compresión de datos) como un caso especial de entropía relativa (correspondiente a la diferenciación de datos) sin datos iniciales.
El término compresión diferencial se usa para enfatizar la conexión de diferenciación de datos.
Usos
Imagen
La codificación de entropía se originó en la década de 1940 con la introducción de la codificación de Shannon-Fano, la base de la codificación de Huffman que se desarrolló en 1950. La codificación de transformación se remonta a finales de la década de 1960, con la introducción de la codificación de transformada rápida de Fourier (FFT) en 1968 y la transformación de Hadamard en 1969.
Una técnica importante de compresión de imágenes es la transformada de coseno discreta (DCT), una técnica desarrollada a principios de la década de 1970. DCT es la base de JPEG, un formato de compresión con pérdida que fue introducido por el Grupo Conjunto de Expertos Fotográficos (JPEG) en 1992. JPEG reduce en gran medida la cantidad de datos necesarios para representar una imagen a costa de una reducción relativamente pequeña en la calidad de la imagen y se ha convertido en el formato de archivo de imagen más utilizado. Su algoritmo de compresión basado en DCT altamente eficiente fue en gran parte responsable de la amplia proliferación de imágenes y fotografías digitales.
Lempel–Ziv–Welch (LZW) es un algoritmo de compresión sin pérdidas desarrollado en 1984. Se usa en el formato GIF, introducido en 1987. DEFLATE, un algoritmo de compresión sin pérdidas especificado en 1996, se usa en Portable Network Graphics (formato PNG).
La compresión wavelet, el uso de wavelets en la compresión de imágenes, comenzó después del desarrollo de la codificación DCT. El estándar JPEG 2000 se introdujo en 2000. En contraste con el algoritmo DCT utilizado por el formato JPEG original, JPEG 2000 utiliza algoritmos de transformación de ondas discretas (DWT). La tecnología JPEG 2000, que incluye la extensión Motion JPEG 2000, fue seleccionada como estándar de codificación de video para cine digital en 2004.
Sonido
La compresión de datos de audio, que no debe confundirse con la compresión de rango dinámico, tiene el potencial de reducir el ancho de banda de transmisión y los requisitos de almacenamiento de los datos de audio. Los algoritmos de compresión de audio se implementan en el software como códecs de audio. Tanto en la compresión con pérdida como en la sin pérdida, se reduce la redundancia de la información mediante el uso de métodos como la codificación, la cuantificación, la transformación discreta del coseno y la predicción lineal para reducir la cantidad de información utilizada para representar los datos sin comprimir.
Los algoritmos de compresión de audio con pérdida proporcionan una mayor compresión y se utilizan en numerosas aplicaciones de audio, incluidos Vorbis y MP3. Casi todos estos algoritmos se basan en la psicoacústica para eliminar o reducir la fidelidad de los sonidos menos audibles, reduciendo así el espacio necesario para almacenarlos o transmitirlos.
La compensación aceptable entre la pérdida de calidad de audio y el tamaño de transmisión o almacenamiento depende de la aplicación. Por ejemplo, un disco compacto (CD) de 640 MB contiene aproximadamente una hora de música de alta fidelidad sin comprimir, menos de 2 horas de música comprimida sin pérdidas o 7 horas de música comprimida en formato MP3 a una tasa de bits media. Una grabadora de sonido digital normalmente puede almacenar alrededor de 200 horas de voz claramente inteligible en 640 MB.
La compresión de audio sin pérdida produce una representación de datos digitales que se pueden decodificar en un duplicado digital exacto del original. Las proporciones de compresión son alrededor del 50-60% del tamaño original, que es similar a las de la compresión de datos genérica sin pérdidas. Los códecs sin pérdidas utilizan el ajuste de curvas o la predicción lineal como base para estimar la señal. Los parámetros que describen la estimación y la diferencia entre la estimación y la señal real se codifican por separado.
Existen varios formatos de compresión de audio sin pérdidas. Consulte la lista de códecs sin pérdidas para obtener una lista. Algunos formatos están asociados con un sistema distinto, como Direct Stream Transfer, utilizado en Super Audio CD y Meridian Lossless Packing, utilizado en DVD-Audio, Dolby TrueHD, Blu-ray y HD DVD.
Algunos formatos de archivo de audio presentan una combinación de un formato con pérdida y una corrección sin pérdida; esto permite eliminar la corrección para obtener fácilmente un archivo con pérdida. Dichos formatos incluyen MPEG-4 SLS (escalable a sin pérdidas), WavPack y OptimFROG DualStream.
Cuando se van a procesar archivos de audio, ya sea comprimiéndolos más o para editarlos, es conveniente trabajar a partir de un original sin cambios (sin comprimir o comprimido sin pérdidas). El procesamiento de un archivo comprimido con pérdida para algún propósito generalmente produce un resultado final inferior a la creación del mismo archivo comprimido a partir de un original sin comprimir. Además de la edición o mezcla de sonido, la compresión de audio sin pérdidas se usa a menudo para el almacenamiento de archivos o como copias maestras.
Compresión de audio con pérdida
La compresión de audio con pérdida se utiliza en una amplia gama de aplicaciones. Además de las aplicaciones independientes de solo audio de reproducción de archivos en reproductores de MP3 o computadoras, las secuencias de audio comprimidas digitalmente se utilizan en la mayoría de los DVD de video, televisión digital, transmisión de medios en Internet, radio satelital y por cable, y cada vez más en transmisiones de radio terrestre. La compresión con pérdida generalmente logra una compresión mucho mayor que la compresión sin pérdida, al descartar datos menos críticos basados en optimizaciones psicoacústicas.
La psicoacústica reconoce que el sistema auditivo humano no puede percibir todos los datos de una transmisión de audio. La mayor parte de la compresión con pérdida reduce la redundancia al identificar primero los sonidos perceptualmente irrelevantes, es decir, los sonidos que son muy difíciles de escuchar. Los ejemplos típicos incluyen frecuencias altas o sonidos que ocurren al mismo tiempo que sonidos más fuertes. Esos sonidos irrelevantes se codifican con menor precisión o no se codifican en absoluto.
Debido a la naturaleza de los algoritmos con pérdida, la calidad del audio sufre una pérdida de generación digital cuando un archivo se descomprime y se vuelve a comprimir. Esto hace que la compresión con pérdida no sea adecuada para almacenar los resultados intermedios en aplicaciones profesionales de ingeniería de audio, como la edición de sonido y la grabación multipista. Sin embargo, los formatos con pérdida, como el MP3, son muy populares entre los usuarios finales, ya que el tamaño del archivo se reduce entre un 5 y un 20 % del tamaño original y un megabyte puede almacenar alrededor de un minuto de música con la calidad adecuada.
Métodos de codificación
Para determinar qué información en una señal de audio es perceptiblemente irrelevante, la mayoría de los algoritmos de compresión con pérdida usan transformadas como la transformada de coseno discreta modificada (MDCT) para convertir formas de onda muestreadas en el dominio del tiempo en un dominio de transformación, generalmente el dominio de la frecuencia. Una vez transformadas, las frecuencias de los componentes se pueden priorizar según lo audibles que sean. La audibilidad de los componentes espectrales se evalúa utilizando el umbral absoluto de audición y los principios de enmascaramiento simultáneo, el fenómeno en el que una señal es enmascarada por otra señal separada por frecuencia y, en algunos casos, el enmascaramiento temporal, donde una señal es enmascarada por otra señal. separados por el tiempo. Los contornos de igual volumen también se pueden utilizar para sopesar la importancia perceptiva de los componentes. Los modelos de la combinación oído-cerebro humano que incorporan tales efectos se denominan a menudo modelos psicoacústicos.
Otros tipos de compresores con pérdida, como la codificación predictiva lineal (LPC) que se usa con el habla, son codificadores basados en fuentes. LPC utiliza un modelo del tracto vocal humano para analizar los sonidos del habla e inferir los parámetros utilizados por el modelo para producirlos momento a momento. Estos parámetros cambiantes se transmiten o almacenan y se utilizan para controlar otro modelo en el decodificador que reproduce el sonido.
Los formatos con pérdida se utilizan a menudo para la distribución de transmisión de audio o comunicación interactiva (como en las redes de telefonía celular). En dichas aplicaciones, los datos deben descomprimirse a medida que fluyen, en lugar de después de que se haya transmitido todo el flujo de datos. No todos los códecs de audio se pueden usar para aplicaciones de transmisión.
La latencia la introducen los métodos utilizados para codificar y decodificar los datos. Algunos códecs analizarán un segmento más largo, llamado marco, de los datos para optimizar la eficiencia y luego lo codificarán de una manera que requiera un segmento más grande de datos a la vez para decodificar. La latencia inherente del algoritmo de codificación puede ser crítica; por ejemplo, cuando hay una transmisión de datos bidireccional, como en una conversación telefónica, los retrasos significativos pueden degradar seriamente la calidad percibida.
A diferencia de la velocidad de compresión, que es proporcional al número de operaciones requeridas por el algoritmo, aquí la latencia se refiere al número de muestras que deben analizarse antes de que se procese un bloque de audio. En el caso mínimo, la latencia es cero muestras (por ejemplo, si el codificador/descodificador simplemente reduce la cantidad de bits utilizados para cuantificar la señal). Los algoritmos en el dominio del tiempo como LPC también suelen tener latencias bajas, de ahí su popularidad en la codificación de voz para telefonía. Sin embargo, en algoritmos como MP3, se debe analizar una gran cantidad de muestras para implementar un modelo psicoacústico en el dominio de la frecuencia, y la latencia es del orden de 23 ms.
Codificación de voz
La codificación de voz es una categoría importante de la compresión de datos de audio. Los modelos de percepción que se utilizan para estimar qué aspectos del habla puede oír un oído humano son, por lo general, algo diferentes de los que se utilizan para la música. El rango de frecuencias necesario para transmitir los sonidos de una voz humana normalmente es mucho más estrecho que el necesario para la música, y el sonido normalmente es menos complejo. Como resultado, el habla se puede codificar con alta calidad utilizando una tasa de bits relativamente baja.
Esto se logra, en general, mediante una combinación de dos enfoques:
- Sólo los sonidos de codificación que podrían ser hechos por una sola voz humana.
- Desechar más de los datos en la señal, manteniendo lo suficiente como para reconstruir una voz "inteligible" en lugar de la frecuencia completa de la audiencia humana.
Los primeros algoritmos utilizados en la codificación de voz (y la compresión de datos de audio en general) fueron el algoritmo de ley A y el algoritmo de ley μ.
Historia
Las primeras investigaciones sobre audio se realizaron en Bell Labs. Allí, en 1950, C. Chapin Cutler presentó la patente sobre la modulación de código de pulso diferencial (DPCM). En 1973, P. Cummiskey, Nikil S. Jayant y James L. Flanagan introdujeron Adaptive DPCM (ADPCM).
La codificación perceptual se utilizó por primera vez para la compresión de codificación de voz, con codificación predictiva lineal (LPC). Los conceptos iniciales de LPC se remontan al trabajo de Fumitada Itakura (Universidad de Nagoya) y Shuzo Saito (Nippon Telegraph and Telephone) en 1966. Durante la década de 1970, Bishnu S. Atal y Manfred R. Schroeder en Bell Labs desarrollaron una forma de LPC llamada La codificación predictiva adaptativa (APC), un algoritmo de codificación perceptual que explotaba las propiedades de enmascaramiento del oído humano, siguió a principios de la década de 1980 con el algoritmo de predicción lineal excitado por código (CELP), que logró una relación de compresión significativa para su época. Los formatos modernos de compresión de audio, como MP3 y AAC, utilizan la codificación perceptual.
La transformada de coseno discreta (DCT), desarrollada por Nasir Ahmed, T. Natarajan y K. R. Rao en 1974, proporcionó la base para la transformada de coseno discreta modificada (MDCT) utilizada por los formatos de compresión de audio modernos como MP3, Dolby Digital y CAA. La MDCT fue propuesta por J. P. Princen, A. W. Johnson y A. B. Bradley en 1987, siguiendo el trabajo anterior de Princen y Bradley en 1986.
Oscar Bonello, profesor de ingeniería de la Universidad de Buenos Aires, desarrolló el primer sistema de compresión de audio de automatización de transmisiones comerciales del mundo. En 1983, utilizando el principio psicoacústico del enmascaramiento de bandas críticas publicado por primera vez en 1967, comenzó a desarrollar una aplicación práctica basada en la computadora IBM PC recientemente desarrollada, y el sistema de automatización de transmisión se lanzó en 1987 con el nombre de Audicom. Veinte años después, casi todas las estaciones de radio del mundo usaban tecnología similar fabricada por varias empresas.
Se publicó un compendio de literatura para una gran variedad de sistemas de codificación de audio en el Journal on Selected Areas in Communications (JSAC) del IEEE en febrero de 1988. Si bien hubo algunos documentos anteriores a ese momento, esta colección documentó una variedad completa de codificadores de audio terminados y en funcionamiento, casi todos ellos utilizando técnicas de percepción y algún tipo de análisis de frecuencia y codificación sin ruido de back-end.
Vídeo
El video sin comprimir requiere una velocidad de datos muy alta. Aunque los códecs de compresión de video sin pérdida funcionan con un factor de compresión de 5 a 12, un video de compresión con pérdida H.264 típico tiene un factor de compresión entre 20 y 200.
Las dos técnicas clave de compresión de video utilizadas en los estándares de codificación de video son la transformada de coseno discreta (DCT) y la compensación de movimiento (MC). La mayoría de los estándares de codificación de video, como los formatos H.26x y MPEG, generalmente usan codificación de video DCT con compensación de movimiento (compensación de movimiento en bloque).
La mayoría de los códecs de video se usan junto con técnicas de compresión de audio para almacenar flujos de datos separados pero complementarios como un paquete combinado usando los llamados formatos de contenedor.
Teoría de la codificación
Los datos de video pueden representarse como una serie de fotogramas de imágenes fijas. Dichos datos suelen contener abundantes cantidades de redundancia espacial y temporal. Los algoritmos de compresión de video intentan reducir la redundancia y almacenar información de manera más compacta.
La mayoría de los códecs y formatos de compresión de video aprovechan la redundancia espacial y temporal (por ejemplo, a través de la codificación de diferencias con compensación de movimiento). Las similitudes se pueden codificar almacenando solo las diferencias entre, p. fotogramas temporalmente adyacentes (codificación entre fotogramas) o píxeles espacialmente adyacentes (codificación dentro de fotogramas). La compresión entre cuadros (una codificación delta temporal) (re)utiliza datos de uno o más cuadros anteriores o posteriores en una secuencia para describir el cuadro actual. La codificación intracuadro, por otro lado, utiliza solo datos dentro del cuadro actual, siendo efectivamente una compresión de imagen fija.
Los formatos de codificación de video dentro del cuadro que se usan en las videocámaras y la edición de video emplean una compresión más simple que usa solo la predicción dentro del cuadro. Esto simplifica el software de edición de video, ya que evita una situación en la que un cuadro comprimido se refiere a datos que el editor ha eliminado.
Por lo general, la compresión de video emplea además técnicas de compresión con pérdida, como la cuantificación, que reducen aspectos de los datos de origen que son (más o menos) irrelevantes para la percepción visual humana mediante la explotación de características perceptivas de la visión humana. Por ejemplo, las pequeñas diferencias de color son más difíciles de percibir que los cambios de brillo. Los algoritmos de compresión pueden promediar un color en estas áreas similares de manera similar a las que se utilizan en la compresión de imágenes JPEG. Como en toda compresión con pérdida, existe un compromiso entre la calidad del video y la tasa de bits, el costo de procesar la compresión y descompresión y los requisitos del sistema. El video altamente comprimido puede presentar artefactos visibles o que distraigan.
Otros métodos además de los formatos de transformación predominantes basados en DCT, como la compresión fractal, la búsqueda coincidente y el uso de una transformada wavelet discreta (DWT), han sido objeto de algunas investigaciones, pero normalmente no se utilizan en productos prácticos.. La compresión Wavelet se usa en codificadores de imágenes fijas y codificadores de video sin compensación de movimiento. El interés en la compresión fractal parece estar decayendo, debido a análisis teóricos recientes que muestran una falta comparativa de efectividad de tales métodos.
Codificación entre cuadros
En la codificación entre cuadros, los cuadros individuales de una secuencia de video se comparan de un cuadro al siguiente y el códec de compresión de video registra las diferencias con el cuadro de referencia. Si el marco contiene áreas en las que nada se ha movido, el sistema simplemente puede emitir un comando breve que copia esa parte del marco anterior en el siguiente. Si las secciones del marco se mueven de manera simple, el compresor puede emitir un comando (ligeramente más largo) que le dice al descompresor que cambie, gire, aclare u oscurezca la copia. Este comando más largo sigue siendo mucho más corto que los datos generados por la compresión dentro del cuadro. Por lo general, el codificador también transmitirá una señal residual que describe las diferencias más sutiles restantes con respecto a las imágenes de referencia. Usando la codificación de entropía, estas señales residuales tienen una representación más compacta que la señal completa. En áreas de video con más movimiento, la compresión debe codificar más datos para mantenerse al día con la mayor cantidad de píxeles que están cambiando. Por lo general, durante explosiones, llamas, bandadas de animales y en algunas tomas panorámicas, los detalles de alta frecuencia provocan disminuciones de calidad o aumentos en la tasa de bits variable.
Formatos de transformación híbridos basados en bloques
Hoy en día, casi todos los métodos de compresión de video comúnmente utilizados (por ejemplo, aquellos en estándares aprobados por ITU-T o ISO) comparten la misma arquitectura básica que se remonta a H.261, que fue estandarizado en 1988 por ITU-T. Se basan principalmente en la DCT, aplicada a bloques rectangulares de píxeles vecinos, y la predicción temporal mediante vectores de movimiento, así como también en la actualidad un paso de filtrado en bucle.
En la etapa de predicción, se aplican varias técnicas de desduplicación y codificación de diferencias que ayudan a descorrelacionar los datos y describir nuevos datos en función de los datos ya transmitidos.
Luego, los bloques rectangulares de datos de píxeles restantes se transforman al dominio de la frecuencia. En la etapa principal de procesamiento con pérdida, los datos del dominio de la frecuencia se cuantifican para reducir la información que es irrelevante para la percepción visual humana.
En la última etapa, la redundancia estadística se elimina en gran medida mediante un codificador de entropía que a menudo aplica alguna forma de codificación aritmética.
En una etapa adicional de filtrado en bucle, se pueden aplicar varios filtros a la señal de imagen reconstruida. Al calcular estos filtros también dentro del ciclo de codificación, pueden ayudar a la compresión porque se pueden aplicar al material de referencia antes de que se use en el proceso de predicción y se pueden guiar usando la señal original. El ejemplo más popular son los filtros de desbloqueo que desdibujan los artefactos de bloqueo de las discontinuidades de cuantificación en los límites del bloque de transformación.
Historia
En 1967, A.H. Robinson y C. Cherry propusieron un esquema de compresión de ancho de banda de codificación de longitud de ejecución para la transmisión de señales de televisión analógicas. La transformada de coseno discreta (DCT), que es fundamental para la compresión de video moderna, fue presentada por Nasir Ahmed, T. Natarajan y K. R. Rao en 1974.
H.261, que debutó en 1988, introdujo comercialmente la arquitectura básica predominante de la tecnología de compresión de video. Fue el primer formato de codificación de video basado en compresión DCT. H.261 fue desarrollado por varias empresas, incluidas Hitachi, PictureTel, NTT, BT y Toshiba.
Los estándares de codificación de video más populares utilizados para los códecs han sido los estándares MPEG. MPEG-1 fue desarrollado por Motion Picture Experts Group (MPEG) en 1991 y fue diseñado para comprimir video con calidad VHS. Le sucedió en 1994 MPEG-2/H.262, que fue desarrollado por varias empresas, principalmente Sony, Thomson y Mitsubishi Electric. MPEG-2 se convirtió en el formato de video estándar para la televisión digital DVD y SD. En 1999, fue seguido por MPEG-4/H.263. También fue desarrollado por varias empresas, principalmente Mitsubishi Electric, Hitachi y Panasonic.
H.264/MPEG-4 AVC fue desarrollado en 2003 por varias organizaciones, principalmente Panasonic, Godo Kaisha IP Bridge y LG Electronics. AVC introdujo comercialmente los algoritmos modernos de codificación aritmética binaria adaptable al contexto (CABAC) y codificación de longitud variable adaptable al contexto (CAVLC). AVC es el principal estándar de codificación de video para discos Blu-ray, y es ampliamente utilizado por sitios web para compartir videos y servicios de transmisión de Internet como YouTube, Netflix, Vimeo e iTunes Store, software web como Adobe Flash Player y Microsoft Silverlight, y varios Transmisiones HDTV a través de televisión terrestre y satelital.
Genética
Los algoritmos de compresión genética son la última generación de algoritmos sin pérdidas que comprimen datos (normalmente secuencias de nucleótidos) mediante algoritmos de compresión convencionales y algoritmos genéticos adaptados al tipo de datos específico. En 2012, un equipo de científicos de la Universidad Johns Hopkins publicó un algoritmo de compresión genética que no utiliza un genoma de referencia para la compresión. HAPZIPPER se diseñó para los datos de HapMap y logra una compresión de más de 20 veces (reducción del 95 % en el tamaño del archivo), lo que proporciona una compresión de 2 a 4 veces mejor y es menos intensivo desde el punto de vista computacional que las principales utilidades de compresión de propósito general. Para esto, Chanda, Elhaik y Bader introdujeron la codificación basada en MAF (MAFE), que reduce la heterogeneidad del conjunto de datos al clasificar los SNP por su frecuencia de alelo menor, homogeneizando así el conjunto de datos. Otros algoritmos desarrollados en 2009 y 2013 (DNAZip y GenomeZip) tienen relaciones de compresión de hasta 1200 veces, lo que permite almacenar 6 mil millones de genomas humanos diploides de pares base en 2,5 megabytes (en relación con un genoma de referencia o promediados sobre muchos genomas). Para obtener un punto de referencia en compresores de datos genéticos/genómicos, consulte
Perspectiva y potencial actualmente no utilizado
Se estima que la cantidad total de datos que se almacenan en los dispositivos de almacenamiento del mundo podría comprimirse aún más con los algoritmos de compresión existentes en un factor promedio restante de 4,5:1. Se estima que la capacidad tecnológica combinada del mundo para almacenar información proporciona 1.300 exabytes de dígitos de hardware en 2007, pero cuando el contenido correspondiente se comprime de manera óptima, esto solo representa 295 exabytes de información de Shannon.
Contenido relacionado
Esquema (lenguaje de programación)
Máquina universal de Turing
Loran-C