新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于C6000系列DSP的MPEG-4编码器实现

基于C6000系列DSP的MPEG-4编码器实现

作者: 时间:2008-11-27 来源:网络 收藏

  ·可以将两个16位数据或者四个8位数据合并成一个32位数据,以提高存取效率;

  ·必须静态地知道每条操作指令执行需要的时钟周期,这样才能取得该操作的正确结果;

  ·这种结构的处理器不能处理动态事件,例如Cache突然消失;

  ·对于多周期才能完成的指令,在正确计算的基础上,一定要提前执行,以免出现一条指令必须等上一条指令执行结束才能执行的情况。

  下面结合C6000系列的指令及其具体资源情况,以中的算法为例说明如何利用这两种结构设计出高效的代码。

  3.1 利用流水线结构设计程序

  流水线是指指令的处理可分为几个子操作,每个子操作由不同的单元完成。对每个单元来说,每隔一个时钟周期可进入一条新指令,在同一时间内不同单元可以同时处理多条指令。在C6000中B(.unit)lable是一条跳转指令,它的执行周期为7个时钟周期,也就是说,在安排这条指令之后6个时钟周期才能使程序转移到lable处执行,以程序1为例说明如何利用流水线结构设计程序。该程序的执行顺序如下:0000→0004→0008→000C-0010→0014→0008→000C...从程序执行顺序知道,要想在执行完0014处的指令后跳转到LOOP处,就应该在0014的前6个时钟周期处安排这条指令;如果不提前安排好这条指令,而是在0014后放置这条指令,就需要使CPU等待6个时钟周期才能跳到LOOP处,从而使程序运行效率降低。从这个程序的执行顺序可以看出,必须提前知道每一条指令的运行周期数,并提前安排该指令,才能达到减少等待周期、提高程序效率的效果。C6000系列指令集包括许多多时钟周期的指令,如跳转指令、数据访问指令等。编码算法需要频繁地访问大量数据,并且有很多循环,无论是数据访问还是循环都要用到多时钟周期指令。以MEPG-4的DCT算法为例,每一个8×8的块变换需要用16次的跳转指令和256次数据访问指令,由此可见流水线在程序优化中所起的作用。



关键词: DSP MPEG-4 视频编码

评论


相关推荐

技术专区

关闭