
Los códigos basados en gramática o la compresión basada en gramática son algoritmos de compresión que se basan en la idea de construir una gramática libre de contexto (GLC) para la cadena que se va a comprimir. Algunos ejemplos incluyen algoritmos de compresión de datos universales sin pérdida . [ 1 ] Para comprimir una secuencia de datos, una transformación de código basada en gramáticaen una gramática libre de contextoEl problema de encontrar la gramática más pequeña para una secuencia de entrada ( problema de la gramática más pequeña ) es conocido por ser NP-difícil, [ 2 ] por lo que se han propuesto muchos algoritmos de transformación de gramáticas desde puntos de vista teóricos y prácticos. Generalmente, la gramática producidase comprime aún más mediante codificadores estadísticos como la codificación aritmética .
Ejemplos y características
La clase de códigos basados en gramática es muy amplia. Incluye códigos de bloques , el algoritmo de coincidencia de patrones multinivel (MPM), [ 3 ] variaciones del código de análisis incremental Lempel-Ziv , [ 4 ] y muchos otros nuevos algoritmos de compresión universal sin pérdidas. Los códigos basados en gramática son universales en el sentido de que pueden alcanzar asintóticamente la tasa de entropía de cualquier fuente estacionaria y ergódica con un alfabeto finito.
Algoritmos prácticos
Los programas de compresión que se describen a continuación están disponibles a través de enlaces externos.
- Sequitur [ 5 ] es un algoritmo clásico de compresión de gramática que traduce secuencialmente un texto de entrada a una CFG, y luego la CFG producida es codificada por un codificador aritmético.
- Re-Pair [ 6 ] es un algoritmo voraz que utiliza la estrategia de sustitución del elemento más frecuente primero. Su rendimiento de compresión es potente, aunque requiere un gran espacio de memoria principal.
- GLZA , [ 7 ] que construye una gramática que puede ser reducible, es decir, que contiene repeticiones, donde el costo de codificación entrópica de "deletrear" las repeticiones es menor que el costo de crear y codificar entrópicamente una regla para capturarlas. (En general, la SLG óptima para compresión no es irreducible, y el Problema de la Gramática Más Pequeña es diferente del problema real de compresión de SLG).
Véase también
Referencias
- ↑ Kieffer, JC; Yang, E.-H. (2000), "Códigos basados en gramática: una nueva clase de códigos fuente universales sin pérdidas", IEEE Trans. Inf. Theory , 46 (3): 737– 754, Bibcode : 2000ITIT...46..737K , doi : 10.1109/18.841160
- ↑ Charikar, M.; Lehman, E.; Liu, D.; Panigrahy, R.; Prabharakan, M.; Sahai, A.; Shelat, A. (2005), "The Smallest Grammar Problem", IEEE Trans. Inf. Theory , 51 (7): 2554– 2576, Bibcode : 2005ITIT...51.2554C , doi : 10.1109/tit.2005.850116 , S2CID 6900082
- ↑ Kieffer, JC; Yang, E.-H.; Nelson, G.; Cosman, P. (2000), "Compresión universal sin pérdidas mediante coincidencia de patrones multinivel" , IEEE Trans. Inf. Theory , 46 (4): 1227–1245 , Bibcode : 2000ITIT...46.1227K , doi : 10.1109/18.850665 , S2CID 8191526
- ↑ Ziv, J.; Lempel, A. (1978), "Compresión de secuencias individuales mediante codificación de tasa variable", IEEE Trans. Inf. Theory , 24 (5): 530– 536, Bibcode : 1978ITIT...24..530Z , doi : 10.1109/TIT.1978.1055934 , hdl : 10338.dmlcz/142945
- ↑ Nevill-Manning, CG; Witten, IH (1997), "Identifying Hierarchical Structure in Sequences: A linear-time algorithm", Journal of Artificial Intelligence Research , 7 (4): 67– 82, arXiv : cs/9709102 , doi : 10.1613/jair.374 , hdl : 10289/1186 , S2CID 2957960
- ↑ Larsson, NJ; Moffat, A. (2000), "Compresión basada en diccionario sin conexión" (PDF) , Actas del IEEE , 88 (11): 1722– 1732, Bibcode : 2000IEEEP..88.1722L , doi : 10.1109/5.892708
- ↑ Conrad, Kennon J.; Wilson, Paul R. (2016). "Compresión gramatical Ziv-Lempel: Logrando índices de compresión de texto de clase PPM con velocidad de descompresión de clase LZ". Conferencia de compresión de datos de 2016 (DCC) . pág. 586. doi : 10.1109/DCC.2016.119 . ISBN 978-1-5090-1853-6. S2CID 3116024 .
Enlaces externos
- Discusión y documento de GLZA
- Descripción de códigos basados en gramática con un ejemplo
- Códigos Sequitur Archivados el 13/10/2008 en Wayback Machine
- Códigos de reparación
- Re-Pair codifica una versión de Gonzalo Navarro.
- GrammarViz 2.0 : implementación de Sequitur, Re-Pair y Re-Pair paralelo en Java.
- Compresión de datos
- Teoría de la codificación
- teoría de la información