miércoles, 5 de abril de 2023

Codificador texto QR (compresión)

 Idea para un codificador texto para comprimir texto plano que quepa en QR y códigos matriz

Para codificar eficientemente sin pérdida has de saber lo que codificas y el texto se debería codificar bastante bien.

Se puede usar un codificador genérico que simplemente reduzca las palabras a 16 bits

De acuero a la RAE hay unas 100000 palabras

Con 16 bits tienes 66536 no llega a 100000 pero para haceros una idea con unos pocos miles de palabras ya tienes un competencia alta en un idioma y un hablante nativo pues... No llega ni de lejos a 100000...

Por otra parte se puede usar un diccionario añadido que especifique que palabras usa el texto por ejemplo, si usas menos de 256 palabras diferentes; porque usar 16 bit usa 8 e indica al final su correspondencia de los códigos 8 bit a los códigos 16 bit.

Por otra parte los verbos y los prefijos etc pues se pueden descomponer

Los verbos no necesitarían 16 bit...

Un QR o un data matrix podrian contener bastante texto plano y luego si quieres lo cifras...

El diccionario más grande podría tener 2^17 bits de indice por cadena de texto (palabras) es decir 131872 mucho es eso... Pero pongamos que las palabras ocupan arrays 10 bytes (caracteres entre 256 valores) el diccionario ocuparía 1.3 megabytes es poco una canción en mp3 ocupa más...

 Eso sería la versión más completa del diccionario.

Lo cual me recuerda lo mal que va el teclado del móvil con las corrección ortográfica (el navegador tampoco lo hace muy bien) pues tira de conectarse a google e internet... (Sin ni falta que hace espiar lo que escribes para corregir; pues hace 20 años los correctores de editores de texto offline iban bastante mejor)

El algoritmo según el texto, ocuparía menos.

Seguramente para que os hagaís una idea en un texto de 255 palabras no usas 255 palabras diferentes... 

Un diccionario general pequeño tal vez para todos los textos y un hecho para el tuyo si usas algunas palabras raras.

En un libro tampoco usarás las 100000 palabras del idioma (ni de cerca) pero la idea es codificar textos largos en QR

Según indican 4296 carácteres que al menos serán de 8 bit supongo en la mas grande 177*177

El modelo 1 puede tener 707 caracteres

Lo que es interesante es que los QR tienen redundancia para eludir errores.

El modelo 2 4296 caracteres máximo

El micro QR 21 caracteres máximo

Cada caracter podría ser una palabra

Un caracter podría indicar el diccionario de compresion del QR o el idioma.(o ambos)

En 21 caracteres: 

Supercalifragilisticoespiralidoso

Lo excede

Pero comprimienolo podrías usar 20 palabras.

255 palabras ocuparian poniendo de media 8 caracteres: al menos 2040 bytes; está bien

Pero en 2040 bytes puedes meter 2040 palabras de un diccionario de 255 palabras

Lo que sería: 

16320 carácteres para esas 2040 palabras.

La compresión puede ser mejor si usas pocas palabras diferentes y usando dos diccionarios uno para vervos pronombres determinates etc

Y otro para nombres...

para aumentar aun mas la compresion podria tener errores pero se podria pasar el texto a un modelo de ia que complete textos

Antes de mostrar el QR tendría que comprobar que ese modelo ia diccionario lo puede inflar de nuevo.

No creo que ocupase mucho una IA entrenada para recomponer textos, la idea seria no tener la IA online, para esa y estando ya entrenada no hace ninguna falta.


No hay comentarios:

Publicar un comentario