Estoy pensando en escribir algunos datos en un flujo de bits usando C. Hay dos maneras en que vienen a la mente. Uno es concatenar símbolos de longitud de bits variable en una secuencia de bits contigua, pero de esta manera mi decodificador probablemente tendrá un tiempo difícil separando esos símbolos de este flujo continuo de bits. Otra forma es distribuir la misma cantidad de bits para cada símbolo y de ese modo el decodificador puede recuperar fácilmente los datos originales, pero puede haber un desperdicio de bits ya que los símbolos tienen valores diferentes que a su vez causan muchos bits en la secuencia de bits. cero (estos bits de desecho, supongo).Cómo escribir un flujo de bits
¿Alguna pista de lo que debo hacer?
Soy nuevo en la programación. Cualquier ayuda será apreciada.
Aquí está mi respuesta a pregunta aquí: http: // stac koverflow.com/questions/11253123/how-can-i-print-a-bit-instead-of-byte-in-a-file/11253310#11253310 –
La forma habitual es empaquetar los bits, pero eso requiere lógica para saber la cuenta de bits en el otro lado. Puede terminar decodificando poco a poco para saber cuándo ha llegado al final de un símbolo. –
Su pregunta está relacionada con el campo de la codificación. La codificación de Huffman, como se menciona a continuación, es una opción. Pero hay otros, ya que la codificación de Huffman no es la única (pero sin duda es la más popular). Consulte el libro "Algoritmos de compresión y codificación" de Moffat y Turpin. La mayoría de los libros de compresión tienen algo sobre codificación; este libro se centra en la codificación. En términos de "separación de tiempo difícil", necesita un código que no tenga prefijos; ningún código es un prefijo de ningún otro. – Ray