在BF561上实现h264编码的几种方案

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

本文适用于

ADSP-BF561

优视BF561EVB开发板

uclinux-2008r1.5-rc3 (smp patch)

Visual DSP++ 5.0(update 5)

欢迎转载,但请保留作者信息

欢迎到http://www.bfin-tools.org/bbs/viewthread.php?tid=28&extra=对本文进行讨论。

1.1 裸奔

由于VDSP在编译信号处理相关代码时效率较高,而且用户程序可以控制所有的资源,因而采用这种方法的运行效率最高。当然这种方法的缺点也是显而易见的,它的附加功能较难实现,比如网络功能等。

关于此法,网上有一篇流传甚广的文章《基于ADSP-BF561H.264视频编码器的实现》(作者:崔海燕,王卿),颇具参考价值。当然这篇文章并没有讨论cache的问题,这是其不足之处。

ADI有一个评估版在其网站上,这大概是裸奔的极致了。可以同时做4CIF@25fps或者1D1@22fps。当然这是在只开PPI中断的情况下得到的数据。

1.2 半系统,半裸奔

此法应用甚广,其基本思想是用A核跑uclinuxB核裸奔一个h264的编码器。A核的程序使用GNU Toolchain进行开发,B核的程序可以采用vdsp进行开发,由uclinux在运行时动态加载。

采用这种方法,既可以发挥uclinux系统的好处,又可以兼具VDSP的高效。其技术点主要在于双核之间的同步。

1.3 全系统

目前的uclinux已经具备smp的能力,因此可以只跑一个系统管理两个核,直接在此基础上采用GNU toolchain进行开发,但由于很难使用DMAL1L2 SRAM等资源,在先天上就对此算法有所限制。当然由于只需要使用gnu toolchain,其开发难度较低。

1.4 让编码成为内核的一部分

此法开发难度较高,其基本思想是让编码算法做为内核线程来运行,好处是基本可以使用裸奔时用到的所有优化方法,也可以使用所有的系统资源,且可以使用vdsp编译。采用这种方法,可以达到D1 @ 15fps,由此可见uclinux频繁的时钟中断(CONFIG_HZ = 250)对编码算法的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值