En teoría de codificación , especialmente en telecomunicaciones , un código autosincronizante es un código decodificable de forma única en el que el flujo de símbolos formado por una porción de una palabra de código , o por la porción superpuesta de dos palabras de código adyacentes cualesquiera, no es una palabra de código válida. [1] Dicho de otro modo, un conjunto de cadenas (denominadas "palabras de código") sobre un alfabeto se denomina código autosincronizante si para cada cadena obtenida mediante la concatenación de dos palabras de código, la subcadena que comienza en el segundo símbolo y termina en el penúltimo símbolo no contiene ninguna palabra de código como subcadena. Todo código autosincronizante es un código de prefijo , pero no todos los códigos de prefijo son autosincronizantes.
Otros términos para el código autosincronizante son código sincronizado [2] o, ambiguamente, código sin comas . [3] Un código autosincronizante permite la estructuración adecuada de las palabras de código transmitidas siempre que no se produzcan errores no corregidos en el flujo de símbolos ; no se requiere sincronización externa . Los códigos autosincronizantes también permiten la recuperación de errores no corregidos en el flujo; con la mayoría de los códigos de prefijo, un error no corregido en un solo bit puede propagar errores más allá en el flujo y hacer que los datos posteriores se corrompan .
La importancia de los códigos de autosincronización no se limita a la transmisión de datos . La autosincronización también facilita algunos casos de recuperación de datos , por ejemplo, de un texto codificado digitalmente .
11xxxxxx
) y los bytes subsiguientes ( 10xxxxxx
) de un punto de código multibyte tienen patrones de bits diferentes.Contraejemplos: