Como dice Enan0, si quieres escribir tu propio algoritmo tal vez te resulte de muchísima utilidad bucar en google con estos términos:
- Códigos de Huffman
- LZ77
- LZSS
- LZRW1
- LZ78
- LZW
- LZJH
Ahora, si no tienes mucha noción de esos algoritmos, te recomiendo revisar los links de esta búsqueda realizaba en
google