有没有压缩控件?(50分)

  • 主题发起人 主题发起人 sunwork
  • 开始时间 开始时间
S

sunwork

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编一个程序,将教师机屏幕的内容广播出去给多个学生机,具体是用屏幕拷贝,然后将图片
发送出去,图片截取下来后压缩然后发送出去,我压缩成JPG图片虽然压缩比例理想,
但是占用CPU资源太多了,系统反映缓慢,不适合要求,有没有
压缩比高,占用资源低,图象失真小这样的控件或者算法程序可用呢,
我是用BCB编程的,所以要的控件是for BCB5.0。
 
我有一个可以打包压缩的控件,只不过是在DELPHI下的,它带有源码。另外,
你可以到DELPHI深度历险上去看一下,上面有许多控件,符合你要求,比如:
TZLIB.ZIPTZlib 类提供 C++Builder 压缩及解压缩 .ZIP 格式的文件,
并可以搭配 TFileStream 或 TBlobStream 使用 ( beta 版,
附源码 C++Builder 适用
 
没有必要采用 Jpeg 的。
而采用 Zip 用的 Lzw 算法虽然压缩比较高,但在时间消耗上比Jpeg 的压缩还慢。
建议你采用 Lzh 或 Rle 方法。关键是提高处理的速度. 你既然是在 局域网上进行
广播发送,带宽应保持在 300 KB/S 以上。所以对于 800x600 的一般屏幕,可实现
2f/s 的效果。你不是在教 PhotoShop 一类的软件吧,那种屏幕还是用Jpeg 好了。
 
zcy:给我一份好么(最好负源码)----我上不了升度历险!
 
http://delphi.twart.com/
 
zyy04,你要那一种的,是DLEPHI下的,还是BCB下的?
 
Ha,我又发现一个
LZHBLOB.ZIPTLZHDBMemo 及 TLZHDBImage 构件是加强版的 TDBMemo及 TDBImage 构件,
能够将储存的文字或图像数据先以 LZH 的算法加以压缩,再储存至PARADOX 数据库中
( 1.0 版 ,附源码 )
 
我需要的是C++BUILDER版本的控件,DELPHI的控件我不适合用。
zcy,你有好的建议吗?
 
To:zyy04,东西已发出去了,注意查收。

关于sunwork的软件,我觉得要从根本上想办法,如果只是采用了压缩办法,
那么在机器上压缩和解压缩恐怕也会占用不少资源。
 
我查过了,for BCB5.0的比较少,我都找不到适合用的。
 
TO SunWork:
还是用 rle 压缩吧,我试了一下。(C333/64M/WIN2000)
在 800*600*16 bit 时 ,对于一般屏幕,
Rle 可达到 10:1 压缩,处理速度 30 ms ;
Lzh 为 5:1 ,处理速度 130 ms; //很奇怪吧,事实就是这样
Lzw 为 20:1 ,处理速度 1.6 s ;
而抓一幅屏幕并进行 DIB 的转换也要 80 ms;
所以要达到 2fps 以上的广播速度,只有采用 rle 的方法了。
好在 rle 十分的简单。而且是解压速度高于压缩的。
关键是提高抓屏速度,因为 RLE 压缩的算法因为简单,可以用汇编完成,速度还会提高。
而抓屏的速度我就是提不高,尤其是在屏幕上正在进行输入时(如notepad )更慢。
你对此有何经验体会,共同研究?
 
to GGCAT
你是如何测试程序的速度的?我使用了一个lzw的控件,在深度历险下的,
我在程序里面加入代码后,觉得也不是很理想,系统的反应还是比较缓慢。
我在找另外的控件什么的,看有什么更好的解决方法。你有什么建议吗?
 
在你的程序段前加上 T:=getTickcount;
该段结束后 GetTickCOunt-T 就是执行的ms 数.
另外使用控件不是好办法,因为速度是地一的,直接获取Dib数据并压缩吧。

另外:你的分太少了,不是很有时间细说,哈哈.
 
如果我求的是压缩程序的源代码是有点少,如果有压缩算法的源代码,200分。
 
我给......请期待,分数是不能少的哦.....
 
to GGCAT:
我使用的是BCB5.0,因为C++怎么说都比delphi稳定,所以我要的是C源代码,
如果程序通过,200分,
决不食言。
 
我的E地址:sunwork@cmmail.com
 
Sorry ,我只用Delphi,因为在对图象的处理中,Delphi比C要来的快.
既然你用C ,我只好表示遗憾了.

(另:在我的无数实践中表明:C++绝对没有Delphi稳定.
并非C++的编译质量问题,而是C++的编程风格问题,
体现在实际操作中,完成同样工作,C++要麻烦多了,
也就是说,C++的编程中容易产生更多的人为错误)
 
用VCLZIP,我在用,不错。
 
后退
顶部