Xvid 在2410 上面实现

【mpeg4解码在2410上的实现】 | 2007-04-27 17:26:43

先讲讲一个有趣的故事        当初mpeg4的标准提出来后,微软最先实现了它。不过微软的代码不公开,并且只用在他自家的media player上。mpeg4视频压缩比大,图像质量好,非常适合盗版及网络共享。微软的做法激怒了广大人民。人民群众的力量是伟大的,大家发起了一个名叫divx的开源组织,破解了微软的mpeg4核心,于是乎网上铺天盖地的出现了divx格式的盗版电影。divx到版本3.11后已经占据了绝大部分的市场份额,这个时候divx的一些创办者露出了真面目,他们不再公开后继版本,并推出divx5.1收取许可费。愤怒和失望过后,开源社区剩下的人和divx的另一些创办者没有放弃,他们采用完全开源的协议,开始了重新实现mpeg4的工作。于是诞生了xvid。

       我这儿就选择了xvid代码做为基础。

目标:2410在300M主频时解码352*288的mpeg4标准码流速度达到 25帧

第一步精简xvid程序         xvid的代码可以到http://www.xvid.org/下载,上面还提供了许多测试码流。 1. 在PC上编译代码       代码的大部分修改调试工作先在PC上调试好。流媒体世界论坛http://bbs.lmtw.com/上有一些有用的资料。        我用的vc7.0。 先下载个nasm-0.98.36-win32,解压后将里面的nasmw.exe改成nasm.exe,然后将nasm.exe拷贝到Microsoft Visual Studio .NET 2003Vc7in目录下。        工程文件在xvidcoreuildwin32下,打开它。文件视图中右健点中一个asm文件,选中属性-自定义生成步骤-常规-命令行,将里面的内容改为nasm -f win32 -DPREFIX -o $(IntDir)$(InputName).obj $(InputPath)。  所有的asm文件都要改。因为nasm的命令行格式与微软定义的不同。             改过来之后就可以编译了。 运行buildwin32in下的xvid_decraw.exe 可以测试下效果。当然要先到http://www.xvid.org/上下载些测试视频。       命令格式是: xvid_decraw -i test.mp4u -d -c rgb24 -f tga

2.剔除多余代码      代码中有很多是编码部分的,解码部分更本不需要。

3.移植到arm平台    2410对程序的限制和普通cpu差不多,所以代码基本没什么需要修改的。不过2410上还没有操作系统,所以将所有的window头文件都去掉。有些函数要自己实现,如memcpy , memset ,strncmp 等。也没有动态分配内存,需要将程序中的malloc和free去掉,改成预先在内存中分配空间。

现在有了一个可以在2410上跑的基本程序了,不过速度很慢,需要优化。我在200M的主频下测试解码352*288码流只有11.5帧。离老大提出的要求很远,后面还任重道远呀。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值