忙(MPEG for Allegro 研究)

云风 1998.6.11

这两天的访问量又掉下去了, 其实也怪不了别人, 主页总是传不上去. 我半夜又不可能串到机房来上机, 结果经常丢半截页面在那里, 真是对不起大家了. 今天起了大早, 咬咬牙, 前两节课就算逃掉了, 跑来机房传我的主页 :-) 在 CERNET 上网就这样, 每天只有晚上零点到早上八点多一点的这一小段时间对其它网的速度快点...

这几天主页上又没添什么新东东了, 与其说是被 CET-4 给忙的, 还不如说是被这龟速的网络给气的, 当然, 近来时间也的确紧张. 复习 E 文? 那是蒙自己, 一拿起 E 文题就头大 :-( 总想去干点别的, 这不, 前两天搞到个Allegro 的 MPEG 解码包, 晚上刚看了没半小时英语书, 就坐到计算机前读程序去了 ;-)

怎么这么慢? 解码效率这么低? 我发现这个东东没有我想象的那么好, 真的很失望 :-( 不过算法都摆在那里了, 可以慢慢的折腾了 :D 暂时从图象写屏的部分入手, 就发现了问题. 这个作者明显对 Allegro 研究不够,竟然用 putpixel() 去画点 @#$%^&! 那能不慢吗? 然后我就动手改了, 可以参考 ex11.c 嘛, 那个程序里演示了 Allegro 的三种绘点写屏方法. 绘点函数写屏, 直接内存操作, 块复制. 那个用绘点函数的办法显然是最慢了, 老天, 播放 MPEG 怎么能使用这个方法呢? 结果我只修改了 7,8 行代码, 就使这个 Engine 提高了 15% 的速度 :-)(不过我现在只写了 16 bit 色的代码, 等我再有时间将 32 bit 色的代码加上, 就放到网页上来 ;)看来这个 Engine 尚有许多可以改进之处.

而且这个包本身制作的也很粗糙, 没有 makefile 文件, 包里还有个很大的垃圾文件 (我已经精简掉了) 编译好的库文件里竟然留有调试代码 @#$%^&! 看来真不能迷信老外的东东. 不过话说回来, 这个东东本身就是 alpha 版的, 又没有对外大肆宣扬, 我可是极其偶然才发现的. 相信出 beta 版的时候, 一切都会好的. :-)