请教一个问题:我用wince5.0定制了一个28M的系统,我的开发板FLASH为32M,SDRAM为64M,主频为260M。
我要实现音视频传输,已经实现,可是,总死机,而且声音滞后很大,基本听不清。
我想可能是
1,屏是800*480的,4字节深度。是不是刷新太多,占用CPU太多资源。此屏是自己改得,原来是支持320*240的
2,程序有BUG,缓存等安排不当?
3,或者是WINCE5.0运行时,占用CPU资源太大?也会导致我的CPU处理不过来?我是不是换为LINUX操作系统会好些?
补充:视频采用硬件解码,音频采用软件编解码!我的系统会接收视频,接受和发送音频。是不是因为软件解码音频相对视频慢?
写了这么多,麻烦各位了!
请指点一下从何下手解决这种问题啊?
怎么没人指点一下呢?
难道我的问题不对?有没说明白的地方?
“视频采用硬件解码”,但是LCD的刷新还是得CPU来控制吧?
LCD一般都是60Hz,而你是800*480,偏偏还是4字节的,也就是32bit的。LCD的BUFFER肯定得在外部SDRAM了。SDRAM是100M的吧?不过CPU只有266MHz。
没有具体平台不好乱说,只能猜测一下:你的LCD已经将你的CPU性能发挥到极致了,系统已经没有太多时间处理别的事务了。你可以试试将LCD换回以前的240*320,然后再试试音频。
你写的不清楚:
1.实现音视频传输,通过什么方式传输?用什么格式传输?
2.你的这个系统是完成什么功能?只是传输,还是边传输边播放?因为你说“我的系统会接收视频,接受和发送音频。”又说道声音滞后,听不清楚。
关键是音频的格式,是否压缩,266的CPU在处理完其它任务后,还有没有空闲去处理音频的压缩?
但是不压缩的话,传输肯定是个问题。
lz所谓的“传输”应该就是播放吧?不会再通过什么接口传输给另外一个芯片或者设备吧?
考察一下所采用音频编解码的性能是否达到你的要求?有可能是音频编码没有达到实时的缘故。
谢谢各位关注!
小妹接触这方面不久,对各位提的一些问题了解还不是很深刻,待我研究两天,明白点再回来向各位请教!
1:TO shuiyan:
处理器用的Z228,LCD的刷新应该是CPU从SDRAM取数据然后经过CPU的LCD控制器向LCD送数据,所以,这样就会占用CPU。
但是刷新频率怎么确定呢?我的帧率是30,是不是刷新频率就应该是30啊?60是怎么得来的?由LCD决定吗?
顺便问一下,若想让LCD刷新不占用CPU,除了外加图形加速芯片,还有什么方法实现?软件可以实现吗?
2,TO yashi:
音视频通过100M网线传输,传输时视频采用MEPG4,音频采用CAT压缩格式。
要把收到的音视频均解压后实时播放出来,实现可视对话。
3,to bzjing:
不太明白你的意思,能说说怎么做吗?音频解码通过软件实现,你的意思是软件的问题导致不实时吗?
LCD的刷新频率人为定义,定义好之后,再计算Pixel/Line/Frame分别的频率。
一般TFT LCD刷新定为60Hz。30帧一般是指视频的帧率。
视频刷新想尽快,常用的就2种了,LCD的BUFFER放在内部RAM里面,这个速度最快,因为不需要操作外部SDRAM,不过你LCD 800x480,32bit,估计内部SRAM不会够用的。其次就是你说的外部视频加速芯片了。
Z228看过,不错,功能挺强的,不知道性能是不是也是那么强。
自带MPEG4硬解码,那解码就不需要占用CPU了。
那现在可以认为是你们系统中的网络传输部分的问题,检查网卡驱动程序。
LCD的刷新频率人为定义,定义好之后,再计算Pixel/Line/Frame分别的频率。
一般TFT LCD刷新定为60Hz。30帧一般是指视频的帧率。
视频刷新想尽快,常用的就2种了,LCD的BUFFER放在内部RAM里面,这个速度最快,因为不需要操作外部SDRAM,不过你LCD 800x480,32bit,估计内部SRAM不会够用的。其次就是你说的外部视频加速芯片了。
Z228看过,不错,功能挺强的,不知道性能是不是也是那么强。
自带MPEG4硬解码,那解码就不需要占用CPU了。
那现在可以认为是你们系统中的网络传输部分的问题,检查网卡驱动程序。