欢迎来到天天文库
浏览记录
ID:26929778
大小:469.00 KB
页数:15页
时间:2018-11-30
《《实验2构建基于》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验2构建基于SoCLib的MPSoC报告人:颜晓星杨奇MJPEG解码程序Contents1实验结果及性能分析2www.themegallery.comLogoMJPEG解码程序1.FETCH:创建fetch线程:主要用于哈弗曼解码,反锯齿,反量化处理。pthread_create(&fetchThread,NULL,fetch_process,fetch_channel);2.Compute:创建compute线程,主要是处理MJPEG中最费时间的任务,反离散余弦变换。for(uint32_ti=0;i2、ate(&idctThread[i],NULL,idct_process,idct_channel[i]);3.DISPATCH:(创建dispatch线程,负责接收从不同的compute任务计算完成的块,并且对这些块重新排列,最终生成图像帧并传送到帧缓存Framebuffer里面)pthread_create(&dispatchThread,NULL,dispatch_process,dispatch_channel);4.挂起主线程的函数:各个线程的处理时间不一致,当IDCT的各个线程都处理完毕后,DIPATCH线程全部接收过来进行整合并存储,此时3、的,主进程一直处于阻塞等待状态。一直到IDCT都计算完,且DIPATCH把收来的东西都处理发送好,主线程的阻塞状态才解除,这个时候所有的主从线程在时间都在同一个起点,然后再次处理下一帧数据,依次循环下去。pthread_join(dispatchThread,NULL);显然这个函数是阻塞的。www.themegallery.comLogoMJPEG解码程序5.任务分配过程:www.themegallery.comLogoMJPEG解码程序6.线程间通信:fetch_channel[0]=channel[0];dispatch_channel[0]=c4、hannel[0];for(uint32_ti=0;i5、_channel[1]dispatch_channel[i]fetch_channel[0]fetch_channel[1]fetch_channel[i]通过赋值,channel上的奇数块共享给了fetch和idct二维数组参数里的0号位,channel上的偶数块共享给了dispatch和idct二维数组参数里的1号位。www.themegallery.comLogoMJPEG解码程序整个并行的过程:主线程创建一个子线程fetchThread运行fetch_process处理程序,参数是fetch_channel,即把fetch的处理结果分块后放到f6、etch_channel上;创建N个子线程idctThread,并行运行idct_process计算程序,参数是idct_channel[i],即第i个子线程运行idct_process程序,从dict_channel[i][0]上取出fetch的某块运行结果,然后将自己处理后的结果放到dict_channel[i][1]上;创建子线程dispatchThread运行dispatch_process程序,参数为dispatch_channel,即从disptch_channel上取出idct的结果,重新组合后,等待diptch_process运行结束后7、得出最后结果进行输出。www.themegallery.comLogo注意:top.cppsoclib::caba::VciMultiramDirWtvcimultiram("vcimultiram",IntTab(2),IntTab(2),maptab,2,loader,DATA_BLOCK_SIZE);//specifyherethenumberofcpus/caches第一幅图:2个核3个线程第二幅图:3个核3个线程www.themegallery.comLogo结果及性能分析1.实验结果2mips3mips4mipswww8、.themegallery.comLogo结果及性能分析性能分析上图中mips数域与线程数相同
2、ate(&idctThread[i],NULL,idct_process,idct_channel[i]);3.DISPATCH:(创建dispatch线程,负责接收从不同的compute任务计算完成的块,并且对这些块重新排列,最终生成图像帧并传送到帧缓存Framebuffer里面)pthread_create(&dispatchThread,NULL,dispatch_process,dispatch_channel);4.挂起主线程的函数:各个线程的处理时间不一致,当IDCT的各个线程都处理完毕后,DIPATCH线程全部接收过来进行整合并存储,此时
3、的,主进程一直处于阻塞等待状态。一直到IDCT都计算完,且DIPATCH把收来的东西都处理发送好,主线程的阻塞状态才解除,这个时候所有的主从线程在时间都在同一个起点,然后再次处理下一帧数据,依次循环下去。pthread_join(dispatchThread,NULL);显然这个函数是阻塞的。www.themegallery.comLogoMJPEG解码程序5.任务分配过程:www.themegallery.comLogoMJPEG解码程序6.线程间通信:fetch_channel[0]=channel[0];dispatch_channel[0]=c
4、hannel[0];for(uint32_ti=0;i5、_channel[1]dispatch_channel[i]fetch_channel[0]fetch_channel[1]fetch_channel[i]通过赋值,channel上的奇数块共享给了fetch和idct二维数组参数里的0号位,channel上的偶数块共享给了dispatch和idct二维数组参数里的1号位。www.themegallery.comLogoMJPEG解码程序整个并行的过程:主线程创建一个子线程fetchThread运行fetch_process处理程序,参数是fetch_channel,即把fetch的处理结果分块后放到f6、etch_channel上;创建N个子线程idctThread,并行运行idct_process计算程序,参数是idct_channel[i],即第i个子线程运行idct_process程序,从dict_channel[i][0]上取出fetch的某块运行结果,然后将自己处理后的结果放到dict_channel[i][1]上;创建子线程dispatchThread运行dispatch_process程序,参数为dispatch_channel,即从disptch_channel上取出idct的结果,重新组合后,等待diptch_process运行结束后7、得出最后结果进行输出。www.themegallery.comLogo注意:top.cppsoclib::caba::VciMultiramDirWtvcimultiram("vcimultiram",IntTab(2),IntTab(2),maptab,2,loader,DATA_BLOCK_SIZE);//specifyherethenumberofcpus/caches第一幅图:2个核3个线程第二幅图:3个核3个线程www.themegallery.comLogo结果及性能分析1.实验结果2mips3mips4mipswww8、.themegallery.comLogo结果及性能分析性能分析上图中mips数域与线程数相同
5、_channel[1]dispatch_channel[i]fetch_channel[0]fetch_channel[1]fetch_channel[i]通过赋值,channel上的奇数块共享给了fetch和idct二维数组参数里的0号位,channel上的偶数块共享给了dispatch和idct二维数组参数里的1号位。www.themegallery.comLogoMJPEG解码程序整个并行的过程:主线程创建一个子线程fetchThread运行fetch_process处理程序,参数是fetch_channel,即把fetch的处理结果分块后放到f
6、etch_channel上;创建N个子线程idctThread,并行运行idct_process计算程序,参数是idct_channel[i],即第i个子线程运行idct_process程序,从dict_channel[i][0]上取出fetch的某块运行结果,然后将自己处理后的结果放到dict_channel[i][1]上;创建子线程dispatchThread运行dispatch_process程序,参数为dispatch_channel,即从disptch_channel上取出idct的结果,重新组合后,等待diptch_process运行结束后
7、得出最后结果进行输出。www.themegallery.comLogo注意:top.cppsoclib::caba::VciMultiramDirWtvcimultiram("vcimultiram",IntTab(2),IntTab(2),maptab,2,loader,DATA_BLOCK_SIZE);//specifyherethenumberofcpus/caches第一幅图:2个核3个线程第二幅图:3个核3个线程www.themegallery.comLogo结果及性能分析1.实验结果2mips3mips4mipswww
8、.themegallery.comLogo结果及性能分析性能分析上图中mips数域与线程数相同
此文档下载收益归作者所有