C # melhor compactação para aplicativo de transmissão de área de trabalho remota

Estou no processo de criar umTCP aplicativo de transmissão de área de trabalho remota. (Algo como o Team Viewer ou VNC), o aplicativo do servidor

1. run on a PC listening for multiple clients on one Thread
2. and on another thread it will record the desktop every second
3. and it will broadcast the desktop for each connected client.

Eu preciso tornar esse aplicativo possível para rodar em uma conexão com um upload de 12KBps e uma conexão DSL de download de 50KBps (cliente e servidor).

então .. eu tenho que reduzir o tamanho dos dados / imagem que eu envio por segundo.

Eu tentei reduzir fazendo o seguinte.

I. first i send a Bitmap frame of the desktop and each other time i send only the difference of the previously sent frame.

II. the second way i tried was, each time i send a JPEG frame.

Não foi possível enviar um quadro JPEG e, a seguir, enviar a diferença do quadro JPEG enviado anteriormente.

eu tentei usarlzma compressão (7zip SDK) para quando eu estava transmitindo a diferença do Bitmap.

Mas não consegui reduzir os dados em 12KBps. o máximo que consegui atingir foi em torno de 50KBps.

Alguém pode me aconselhar um algoritmo / procedimento para fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion