多核处理器构架的高速JPEG解码算法

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8595

文章摘要: 在IDCT的实现上,目前有多种算法。传统的方法是行-列法,即先对每行(列)进行一维IDCT计算,再对每列(行)进行一维IDCT计算。还有多项式变换法和三角函数公式法,这两种方法的加法次数与行-列法相当,乘法次数仅为行-列法的一半。但这两种方法的问题在于实现方法复杂,对于目标平台(VLIW)来说,这样的结构难以提高指令的并行性,并且对于目标平台来说,乘法指令的执行时间与加法指令相当,因此减少了行-列法实现的代价。2 多核处理器构架 FRl000是Fujitsu公司生产的主要应用于嵌入式系统的多核处理器。FRl000将4个处理器核(processorelement)集成在1枚芯片上,

多核处理器构架的高速JPEG解码算法,标签:电子小制作,http://www.88dzw.com

    在IDCT的实现上,目前有多种算法。传统的方法是行-列法,即先对每行(列)进行一维IDCT计算,再对每列(行)进行一维IDCT计算。还有多项式变换法和三角函数公式法,这两种方法的加法次数与行-列法相当,乘法次数仅为行-列法的一半。但这两种方法的问题在于实现方法复杂,对于目标平台(VLIW)来说,这样的结构难以提高指令的并行性,并且对于目标平台来说,乘法指令的执行时间与加法指令相当,因此减少了行-列法实现的代价。

2 多核处理器构架
    FRl000是Fujitsu公司生产的主要应用于嵌入式系统的多核处理器。FRl000将4个处理器核(processorelement)集成在1枚芯片上,各个处理器核之间共享内存和其他外部设备。4个处理器核分别叫作PM(PE0)、PE1、PE2、PE3。其中,每个处理器内核均为一个独立的VLIW(超长指令集)型架构的处理器,每个处理器核上都设置有独立的高速二级缓存,以减小多核处理器在并行访问内存时的瓶颈效应。FRl000多核处理器的硬件结构如图2所示。

    FR1000在每一个处理器核上都运行一个独立的实时操作系统(RTOS),而各个处理器核之间通过并行扩展库(MP extended library)进行通信。通过并行扩展库的扩展,运行在一个处理器核上的任务不仅能和运行在同一处理器核上的任务通信,还能和运行在不同处理器核上的任务通信。这样,任务间就可以通过协同通信来完成特定的应用。而通过将应用划分为不同的可以并行运行的任务而运行在不同的处理器核上,就可以并行地处理数据,从而达到提高系统性能的目的。

    FRl000系统的结构框图如图3所示。

    从FRl000的构架可以看出,为了提升对于图形和多媒体数据的处理速度,处理器着重于扩展其并行处理数据的能力。这样的扩展主要表现在两个方面:一方面使用VLlW构架的处理器核(这样的处理器核一次最多能够并行执行8条指令,这样的并行性主要由编译器支持,这是一种指令的并行性);另一方面使用多核处理器(CMP)的构架,使针对应用划分的任务能够真正并行地运行在多个处理器核上。(这样的并行性需要由应用支持,通过恰当的划分任务来实现)


3 JPEG解码算法在多核处理器上的实现
    针对FRl000处理器的特点,需要对JPEG图像的解码划分为适当的可以并行执行的任务进行处理。比较直观的想法是,将JPEG图像划分为4个部分,分别在4个处理器核上进行解码。但由于JPEG图像的数据流是变长编码,根据现有的数据流,难以将其划分为4个能并行解码的图像。(这样的划分付出的时间代价过大)


    根据前面所叙述的JPEG图像解码原理可以看出,解码的基本单位是MCU,因此在第一步熵解码之后生成的MCU是可以并行解码的最小单元。因此对一个JPEG图像在多核处理器上进行并行解码的关键在于,将此,JPEG图像所包含的MCU负载均衡地分配到各个处理器核上进行并行解码处理。

    由此,处理方法有两种:一种是以一个MCU作为任务分配的单位,由PM通过熵解码生成MCU,然后将MCU均匀地分配到各个处理器核(PE)上,由各个处理器核在完成MCU的解码之后再写入到位图的相应位置。这样做的好处有两点:①可以做到很好的负载均衡,使每一个处理器核都承担几乎相同的负载。②可以使熵解码和MCU的解码并行进行。但这种做法的一个很大问题在于处理器核之间通信所消耗的时间代价过大。因为这可以抽象为一种生产者与消费者的模型,生产者在每次生产出一个MCU的时候都需要与消费者进行一次通信或者说更新消费者端的数据输入。经过实测以后发现,这种做法所带来的通信开销过大,占到解码程序运行时间的20%以上。这种做法的另外一个问题在于内存的读写,由于各个处理器核需要交错地写入内存的同一块区域,导致对于此块内存的写入不能使用写回(copy back)模式。因为如果各个处理器核使用写回模式,会导致各个处理器核中cache的数据与内存中的数据不一致而出现错误。

上一页  [1] [2] [3] [4]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《多核处理器构架的高速JPEG解码算法》相关文章