新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于ADSP-BF5619处理的H.264视频编码器设计

基于ADSP-BF5619处理的H.264视频编码器设计

作者:时间:2009-12-02来源:网络收藏

2.1 P帧编码流程的优化
由于H.264编码算法比较庞大,对程序细节上进行优化事实上不能带来明显的效率提高,所以应对程序流程本身进行调整。在H.264JM86版本中,I帧、P帧的编码采用同一模块,这样就有大量帧内、帧间宏块的重复判断,故使编码速度受限。Micro_h264编码软件模型针对这一缺点进行了,将I帧、P帧的编码提取出来分别独立编码。但是遗憾的是,micro_h264编码软件模型对一帧图像的宏块进行编码是按照宏块在图像中的光栅扫描顺序一一进行的,没有考虑到宏块在一帧图像中的不同位置有着不同的特性,而且对这些宏块采用统一模式进行编码,也会产生很多判断条件,这不但不利于DSP的流水操作,也不利于模块的优化。本文针对这一个缺点对micro h264的P帧编码流程进行优化。
根据宏块在一帧图像中位置的不同,可以对不同位置的宏块分别独立进行编码。同时,根据子块在宏块中的不同位置,也可以对其进行独立编码。
一帧图像被分成多个宏块时,不同位置的宏块有不同的特性。因此,可以根据宏块在一帧图像中的不同位置来对宏块进行分类,以将具有相同编码特性的宏块归为一类,这样,可以将帧图像的宏块分成五类。图3所示是其宏块分类图。
通过对宏块进行分类,可对不同的宏块调用不同的函数来对其独立编码,从而减少很多不必要的判断,这样就不会打断DSP的流水操作,达到提高速度之目的,同时在进行优化时也更具针对性。
在P帧编码时,只用了一帧参考帧,并且改进了micro_h264软件模型所使用的对宏块编码模式逐一遍历的算法,而是采用宏块编码模式快速选择算法。P帧编码的流程图如图4所示。

本文引用地址:http://www.eepw.com.cn/article/166848.htm

运行平台的不同,软件结构也应该根据各自的特点做些调整。较低复杂度的编码器可将多个不同类宏块独立出来单独,这样可以省去许多中间的重复判断,不仅能提高编码速度,同时程序结构也显得更为清晰,而且,由于各个模块的相对独立,也有利于程序的扩展。虽然这样在一定程度上增加了代码量,但却能有效地提高编码速度。
2.2 ADSP-BF561双核系统的优化
为了保证编码器的稳定工作,本文把内核定位在600 MHz,如果能在600 MHz的基础上实现4CIF格式的实时编码,那么,提高内核处理频率就能支持更高质量的4CIF格式的编码处理。为了实现25帧图像的实时编码,每帧需要的时钟周期数为600 MHz/25=24MHz,即需要在24 MHz时钟周期数内编码一帧。大约相当于在6 MHz内进行一帧CIF格式的处理,显然,如果使用一个核是很难做到实时编码处理的。本文不同于大多数双核系统的一个核运行操作系统,而另一个核运行其它软件的工作方式,是将编码器放在两个核内同时进行处理。



评论


相关推荐

技术专区

关闭