Compresor eficiente

NeO_PedritO

Buenas, tengo un problema xD

Estoy realizando junto con otro compañero una practica de programacion en C++ (orientado a objetos por supuesto) que consiste en crear un compresor. La teoria en metodos de compresion y demas no es problema, sino que para ahorrar el maximo espacio posible nos gustaria trabajar en binario.

El tipo de dato mas pequeño que encontramos es o un char o un bool, pero eso ya son 8bits por cifra. Lo ideal seria usar un tipo de dato que solo ocupase un bit. Existe algo por el estilo o pierdo el tiempo buscandolo?

Gracias ;)

B

El tipo de datos mas pequeño ocupa 1 byte.

LOc0

http://www.zator.com/Cpp/E4_6.htm

http://www.zator.com/Cpp/E4_9_3.htm

http://www.zator.com/Cpp/E9_4.htm

Salu2 ;)

NeO_PedritO

#3 Muchas gracias, eso era lo que buscaba :D

Ahora falta implementar xD

JuAn4k4

Lalala, no tenia nada que ver con lo que intentas hacer lo que yo habia pensado era que querias ahorrar espacio en memoria.

11 días después
NeO_PedritO

Por si alguien quiere ver el resultado, ya esta terminado:

TRU-Compressor

Aviso de que es un compresor solo para texto!

anikex

#6 no es capaz de comprimir una peli de 4 gb en 200 mb? pff valla un compresor... jaja no es coña ya me gustaria saber hacer cosas asi :( enorabuena por haber conseguido crear el compresor :)

NeO_PedritO

Coño, esta claro que no se le acerca a un compresor comercial, se ha hecho en menos de un mes xDDD

Es una practica de programacion, si no creo que nunca me hubiera puesto a mirar nada relacionado con esto. Y por cierto, se basa en el algoritmo LZW (como los gifs).

Dante88

LOL xD que casualidad, tengo una practica de compresion, en C++ y yo tampoco sabia como trabajar bit a bit xDDD

Soleil

Me gusta el código y la organización, es muy claro y limpio, hasta con readme y makefile. : -)
Buen trabajo!

Eso sí, sospecho que no lo habeis testeado en Windows... ("clear" no es portable)
He intentado comprimir TruCompressor.c con el propio compresor
y éste ha sido el resultado (tras descomprimir):
http://i41.tinypic.com/2lux75c.png

Ésta es la salida de g++ usando el Makefile...

g++ -c Diccionario.c -o Diccionario.o
g++ -c Lzw.c -o Lzw.o
Lzw.c: In member function void LZW::comprimir(char*, const std::string&)':
Lzw.c:36: warning: converting to
int' from double'
Lzw.c: In member function
void LZW::descomprimir(char*, const std::string&)':
Lzw.c:120: warning: converting to int' fromfloat'
g++ -c TRUcompressor.c -o TRUcompressor.o
g++ Diccionario.o Lzw.o TRUcompressor.o -o tru

NeO_PedritO

Si, cierto, se me olvido mencionarlo.

Como trabajamos sobre linux pues no hay nada de compatibilidad para windows, tienes razon.
Sobre linux no deberia haber problema alguno (o eso espero, porque ya fue entregado xD).

Usuarios habituales