Compactación de datos

From Wikipedia, the free encyclopedia

En telecomunicaciones, la compactación de datos es la reducción de la cantidad de elementos de datos, ancho de banda, costo y tiempo para la generación, transmisión y almacenamiento de datos sin pérdida de información mediante la eliminación de redundancia innecesaria, la eliminación de la irrelevancia o el uso de codificación.

Ejemplos de métodos de compactación de datos son el uso de bandas de tolerancia fija, bandas de tolerancia variable, puntos clave de pendiente, cambios de muestra, patrones de curvas, ajuste de curvas, codificación de precisión variable, análisis de frecuencia y análisis de probabilidad.

Simplemente, comprimir datos no compactados en un espacio más pequeño, por ejemplo, aumentando la densidad de empaque mediante la transferencia de imágenes de papel periódico mediante la transferencia de datos a cinta magnética, no es compactación de datos. 

El término compresión de datos se usa comúnmente para significar lo mismo, la compresión permite la pérdida de información mientras la compactación es sin pérdidas. Los efectos de la compactación son reversibles.

Generalmente, en el contexto de sistemas discretos y continuos, la salida de los sistemas discretos, si se abrevia, se compacta sin pérdidas. La compactación de datos es apropiada, a modo de ejemplo, para archivos que contienen texto (incluidos los programas fuente) y código de máquina.

Algoritmos de compactación

La compactación de datos puede realizarse de manera probabilística o estadística. Un algoritmo de compactación de datos puede ser más o menos efectivo (alta relación de compactación) y más o menos eficiente (economía del tiempo para codificar y decodificar). La codificación de Huffman es efectiva cuando no está restringida, pero puede requerir una gran extensión de la fuente y necesita que el flujo de salida tenga un alfabeto pequeño (como el binario), pudiendo ser muy ineficiente. Por otro lado, la compactación Lempel-Ziv es muy eficiente y, dentro de las limitaciones de tiempo dadas, puede ser más efectiva que un código de Huffman con restricciones similares.[1]

Para llevar a cabo la compactación es necesario mover procesos ya ubicados de unas zonas de memoria a otras, lo cual exige que los procesos sean reubicables en tiempo de ejecución. Existen dos algoritmos de compactación:

  • Compactar fragmentos hasta conseguir un hueco de memoria lo suficientemente grande para el nuevo proceso.
  • Compactar fragmentos hasta conseguir que toda la memoria libre se quede de forma consecutiva en un único hueco.

Los algoritmos de compactación suelen tener un alto coste computacional.[2]

Ejemplos

Véase también

Referencias

Related Articles

Wikiwand AI