基于高速实时解码平台的并行解码快速排序方法技术

技术编号:19551098 阅读:36 留言:0更新日期:2018-11-24 21:54
本发明专利技术公开了一种基于高速解码平台的并行解码图像排序方法,解决了现有技术中并行解码图像序列乱序的问题。实现步骤包括:重新定义系统接收到的码流帧号;给处理器设置标志位数组;构建映射函数将帧号范围缩小:设置图像链表,并设置指导图像有序发送的全局变量;接收端处理器依据其并行解码策略进行码流解码;非接收端处理器依据其并行解码策略进行码流解码;通过标志位数组的下标对图像链表中的节点地址进行排序;处理器依据其图像发送策略发送图像。本发明专利技术采用取模映射的方式,减少了并行解码后图像排序时延,能够满足实时性要求,节省了内存空间,可用于实现对JPEG2000图像的实时解码。

A Fast Sorting Method for Parallel Decoding Based on High Speed Real-time Decoding Platform

The invention discloses a parallel decoding image sorting method based on a high-speed decoding platform, which solves the problem of disorder of parallel decoding image sequence in the prior art. The implementation steps include: redefining the frame number of the code stream received by the system; setting up the array of flag bits for the processor; constructing mapping function to narrow the frame number range: setting up the image link list and setting the global variable to guide the orderly transmission of the image; decoding the code stream by the receiver processor according to its parallel decoding strategy; decoding the code stream at the non-receiver side The processor decodes the code stream according to its parallel decoding strategy; sorts the nodes'addresses in the image list by the subscripts of the number of flags; and transmits the image according to its image sending strategy. The invention adopts the mode-taking mapping method, reduces the image sorting delay after parallel decoding, meets the real-time requirements, saves memory space, and can be used to realize the real-time decoding of JPEG2000 images.

【技术实现步骤摘要】
基于高速实时解码平台的并行解码快速排序方法
本专利技术属于视频和图像处理
,更进一步涉及快速排序方法,具体是一种基于高速实时解码平台的并行解码快速排序方法,可用于多核系统架构下数字设备的视频和图像实时解码显示与传输。
技术介绍
伴随着数据传输技术的飞速发展,导致网络的数据带宽越来越大。随之而来的问题是:如何实时处理高速传输的大量数据。普通的单核处理系统已经远远不能满足用户对于大量数据实时处理的需求。基于多核架构的多处理器高速并行处理系统框架正是在这样的背景下产生的。目前,基于多核架构的多处理器高速并行处理系统的数据处理速度基本能够匹配数据的传输速率,满足实时性要求。但是,由于处理器的核数增加和处理器的个数增加,如何有效的完成多个核,以及多个处理器之间的通信显得尤为重要。另外,由于针对于处理完的数据的大多数后续处理需要保证数据的时间一致性。例如,对于实时高清视频处理系统,乱序的输出数据是无法容忍的。因此,如何快速对处理后的数据进行排序已经成为制约并行系统实时性的关键问题。根据木桶原理,在一个串行实时系统中,决定该系统处理速率的决定性因素是速度最慢的一环。基于多核架构的多处理器系统,在同一时刻同时有多个核在并行化处理数据。由于各个核的计算能力的差异,导致单核的处理时间有所差异。因此,导致数据处理完成的顺序与该系统接收到的数据顺序不同,从而造成乱序的情况。如果采用传统的排序算法的乱序的数据进行处理,将有以下两个难点:1.考虑到链表的存储方式能够有效的应对多个链表节点的插入和删除操作,具有灵活性高、对内存空间限制低的优点,传统的基于多核架构的多处理器高速并行处理系统均采用链表的存储方式。对于一个拥有n个核的处理器,使用传统的排序算法,其时间复杂度一般是O(n2)和O(nlogn)。对于一个拥有m个处理器的架构,相当于两层排序架构,其复杂度将大幅度增加。基于传统的排序算法,该系统的排序时间复杂度为O((m*n)2)和O((m*n)log(m*n))。对于一个高要求的实时处理系统,这样的处理效率是很难满足实时性要求的。如果排序过程消耗的时间太长,则内存会因为源源不断的接收数据而被占满。一方面,会导致系统崩溃;另一方面,会导致新来的数据无法接收,进一步会造成数据丢失的情况。如果数据发生了严重的丢失,则会造成系统效率低下,无法满足用户的需求;2.基于传统排序算法的多核架构的多处理器系统需要为排序算法设置排序空间和缓存空间。排序算法将在排序空间内进行完全排序,等到完全排序结束后,将顺序的数据发送出去。然后再从缓存空间读取数据进行下一轮排序。对于高速处理系统,数据接收速率比较高,短时间内会接受大量数据。如果缓存空间容量太小,新来的数据会覆盖掉缓存空间中原有的数据,造成数据的丢失,从而对数据的后续处理产生不利的影响。相反的,如果缓存空间设置的过大,会造成内存空间的浪费。如何合理的设置缓存空间的容量大小,将是一个比较棘手的问题。另外,对于实时处理系统,如何在保证系统的效率的基础上制定合理的策略,使得从缓存空间中取出的数据为时间上相似的数据也是一个算法设计的难点。考虑到传统的排序算法的排序过程会引起处理效率低而难以满足实时性要求;以及为排序算法设置合理容量大小的缓存空间有困难,因此传统的排序算法无法满足基于多核架构的多处理器高速并行处理系统在视频和图像实时解码显示与传输处理上的要求。
技术实现思路
本专利技术的目的在于针对上述已有技术的不足,提出一种更加节省空间和实时性更好的基于高速实时解码平台的并行解码快速排序方法。本专利技术是一种基于高速实时解码平台的并行解码快速排序方法,在解码平台上运行,形成一个完整的系统,系统涉及到配置的若干处理器,包括接收端处理器和非接收端处理器,其特征在于,包括有如下步骤:(1)重新定义系统接收到的码流帧号:系统在接收到码流后,需要确定图像或视频中帧号的正确顺序。定义一个全局变量,用来表示码流的全局帧号,体现系统从压缩码流发送源接收到的图像和视频的码流顺序,再在存储码流和解码后图像的节点中分别定义两个变量,用来临时保存映射帧号,即映射函数的结果,这两个变量保存的帧号值相同;(2)给处理器设置标志位数组:假设系统中有n个并行工作的处理器,给第i个处理器设置i+1个标志位数组,其中,i=0,1,2,...,n-1。所设置的标志位数组中的每个元素具备两个属性,即指向图像节点的指针和指示元素内是否含有图像的标志位,每个标志位数组对应一个数组长度,同时给第i个处理器的i+1个数组定义一个数组总长度,即每个处理器均定义有一个数组总长度;(3)构建映射函数:将全局帧号映射到当前数组总长度所对应的范围,得到一个映射后的码流帧号,即映射帧号。在映射范围内,保证相应的解码视频序列与输入码流序列保持时间一致性。每当连续映射的全局帧个数等于数组总长度时,称为完成一次映射循环;(4)设置图像链表,并设置指导图像有序发送的全局变量:给n个并行工作的处理器i设置i+1个图像链表,用来保证其发送的解码后的图像为完全排序的图像序列。同时,设置一个指导图像有序发送的全局变量,用来表示发送帧号。每当成功发送一帧图像,对该指导图像有序发送的全局变量进行更新;(5)接收端处理器依据其并行解码策略进行码流解码:接收端处理器通过网络从压缩码流发送源接收压缩码流,成功接收码流后,依据接收端处理器的并行解码的策略,对满足本级处理器要求的码流进行多核并行解码,并将解码后得到的图像与标志位数组进行关联,将其余的码流通过另一个内核线程发送给下一级处理器;(6)非接收端处理器依据其并行解码策略进行码流解码:非接收端处理器通过网络从上一级处理器接收码流,成功接收码流后,依据非接收端处理器的并行解码的策略,对满足本级处理器要求的码流进行多核并行解码,得到解码后的图像,将其余的码流通过另一个内核线程发送给下一级处理器。此外,非接收端处理器将从上一级处理器接收到的解码后图像,根据映射帧号分别放置到相对应的图像链表中,为下一步的图像排序做准备;(7)各处理器依据其图像排序策略进行图像排序:查看各处理器相对应的图像链表中对应节点的标志位数组,确定是否包含图像。如果包含图像,则进一步确认是否包含将要发送的图像。如果包含将要发送的图像,则退出临界区,重新竞争链表资源;反之,先对该节点进行剔除,然后从空闲链表中取下一个空闲节点并向图像链表中插入新的图像节点。如果不包含图像,则将标志位数组先修改为包含图像,然后从空闲链表中取下一个空闲节点并向图像链表中插入新的图像节点,完成对解码后图像的排序;(8)各处理器依据其图像发送策略发送图像:根据发送帧号确定图像链表,并计算出待发送帧在标志位数组中的索引,然后查看由此所确定的节点中是否包含图像,如果该节点在给定的时间内持续没有图像,则视为解码错误,跳过该帧,更新发送帧号;反之,解码正确,则从图像链表中取下发送帧号对应的图像节点,将节点中的图像数据取出,打包发送给下一个处理器或输出端,并更新发送帧号;(9)各处理器具体处理流程:处理器从上一级接收到码流和解码后的图像,首先处理器依据其并行解码策略进行多核并行码流解码。其中,将不满足自身处理要求的码流发送给下一级处理器。然后,依据其图像排序策略将解码图像存在图像链表中。最后,将图像链本文档来自技高网
...

【技术保护点】
1.一种基于高速实时解码平台的并行解码快速排序方法,在解码平台上运行,形成一个完整的系统,系统涉及到配置的若干处理器,包括接收端处理器和非接收端处理器,其特征在于,包括有如下步骤:(1)重新定义系统接收到的码流帧号:系统在接收到码流后,需要确定图像或视频中帧号的正确顺序。定义一个全局变量,用来表示码流的全局帧号,体现系统从压缩码流发送源接收到的图像和视频的码流顺序,再在存储码流和解码后图像的节点中分别定义两个变量,用来临时保存映射帧号,即映射函数的结果,这两个变量保存的帧号值相同;(2)给处理器设置标志位数组:假设系统中有n个并行工作的处理器,给第i个处理器设置i+1个标志位数组,其中,i=0,1,2,...,n‑1。所设置的标志位数组中的每个元素具备两个属性,即指向图像节点的指针和指示元素内是否含有图像的标志位,每个标志位数组对应一个数组长度,同时给第i个处理器的i+1个数组定义一个数组总长度,即每个处理器均定义有一个数组总长度;(3)构建映射函数:将全局帧号映射到当前数组总长度所对应的范围,得到一个映射后的码流帧号,即映射帧号。在映射范围内,保证相应的解码视频序列与输入码流序列保持时间一致性。每当连续映射的全局帧个数等于数组总长度时,称为完成一次映射循环;(4)设置图像链表,并设置指导图像有序发送的全局变量:给n个并行工作的处理器i设置i+1个图像链表,用来保证其发送的解码后的图像为完全排序的图像序列。同时,设置一个指导图像有序发送的全局变量,用来表示发送帧号。每当成功发送一帧图像,对该指导图像有序发送的全局变量进行更新;(5)接收端处理器依据其并行解码策略进行码流解码:接收端处理器通过网络从压缩码流发送源接收压缩码流,成功接收码流后,依据接收端处理器的并行解码的策略,对满足本级处理器要求的码流进行多核并行解码,并将解码后得到的图像与标志位数组进行关联,将其余的码流通过另一个内核线程发送给下一级处理器;(6)非接收端处理器依据其并行解码策略进行码流解码:非接收端处理器通过网络从上一级处理器接收码流,成功接收码流后,依据非接收端处理器的并行解码的策略,对满足本级处理器要求的码流进行多核并行解码,得到解码后的图像,将其余的码流通过另一个内核线程发送给下一级处理器。此外,非接收端处理器将从上一级处理器接收到的解码后图像,根据映射帧号分别放置到相对应的图像链表中,为下一步的图像排序做准备;(7)各处理器依据其图像排序策略进行图像排序:查看各处理器相对应的图像链表中对应节点的标志位数组,确定是否包含图像。如果包含图像,则进一步确认是否包含将要发送的图像。如果包含将要发送的图像,则退出临界区,重新竞争链表资源;反之,先对该节点进行剔除,然后从空闲链表中取下一个空闲节点并向图像链表中插入新的图像节点。如果不包含图像,则将标志位数组先修改为包含图像,然后从空闲链表中取下一个空闲节点并向图像链表中插入新的图像节点,完成对解码后图像的排序;(8)各处理器依据其图像发送策略发送图像:根据发送帧号确定图像链表,并计算出待发送帧在标志位数组中的索引,然后查看由此所确定的节点中是否包含图像,如果该节点在给定的时间内持续没有图像,则视为解码错误,跳过该帧,更新发送帧号;反之,解码正确,则从图像链表中取下发送帧号对应的图像节点,将节点中的图像数据取出,打包发送给下一个处理器或输出端,并更新发送帧号;(9)各处理器具体处理流程:处理器从上一级接收到码流和解码后的图像,首先处理器依据其并行解码策略进行多核并行码流解码。其中,将不满足自身处理要求的码流发送给下一级处理器。然后,依据其图像排序策略将解码图像存在图像链表中。最后,将图像链表中的图像依据其图像发送策略发送给下一级处理器。各处理器保持并行工作,最后一级处理器的图像链表所发送图像的顺序即为最终的排序结果。...

【技术特征摘要】
1.一种基于高速实时解码平台的并行解码快速排序方法,在解码平台上运行,形成一个完整的系统,系统涉及到配置的若干处理器,包括接收端处理器和非接收端处理器,其特征在于,包括有如下步骤:(1)重新定义系统接收到的码流帧号:系统在接收到码流后,需要确定图像或视频中帧号的正确顺序。定义一个全局变量,用来表示码流的全局帧号,体现系统从压缩码流发送源接收到的图像和视频的码流顺序,再在存储码流和解码后图像的节点中分别定义两个变量,用来临时保存映射帧号,即映射函数的结果,这两个变量保存的帧号值相同;(2)给处理器设置标志位数组:假设系统中有n个并行工作的处理器,给第i个处理器设置i+1个标志位数组,其中,i=0,1,2,...,n-1。所设置的标志位数组中的每个元素具备两个属性,即指向图像节点的指针和指示元素内是否含有图像的标志位,每个标志位数组对应一个数组长度,同时给第i个处理器的i+1个数组定义一个数组总长度,即每个处理器均定义有一个数组总长度;(3)构建映射函数:将全局帧号映射到当前数组总长度所对应的范围,得到一个映射后的码流帧号,即映射帧号。在映射范围内,保证相应的解码视频序列与输入码流序列保持时间一致性。每当连续映射的全局帧个数等于数组总长度时,称为完成一次映射循环;(4)设置图像链表,并设置指导图像有序发送的全局变量:给n个并行工作的处理器i设置i+1个图像链表,用来保证其发送的解码后的图像为完全排序的图像序列。同时,设置一个指导图像有序发送的全局变量,用来表示发送帧号。每当成功发送一帧图像,对该指导图像有序发送的全局变量进行更新;(5)接收端处理器依据其并行解码策略进行码流解码:接收端处理器通过网络从压缩码流发送源接收压缩码流,成功接收码流后,依据接收端处理器的并行解码的策略,对满足本级处理器要求的码流进行多核并行解码,并将解码后得到的图像与标志位数组进行关联,将其余的码流通过另一个内核线程发送给下一级处理器;(6)非接收端处理器依据其并行解码策略进行码流解码:非接收端处理器通过网络从上一级处理器接收码流,成功接收码流后,依据非接收端处理器的并行解码的策略,对满足本级处理器要求的码流进行多核并行解码,得到解码后的图像,将其余的码流通过另一个内核线程发送给下一级处理器。此外,非接收端处理器将从上一级处理器接收到的解码后图像,根据映射帧号分别放置到相对应的图像链表中,为下一步的图像排序做准备;(7)各处理器依据其图像排序策略进行图像排序:查看各处理器相对应的图像链表中对应节点的标志位数组,确定是否包含图像。如果包含图像,则进一步确认是否包含将要发送的图像。如果包含将要发送的图像,则退出临界区,重新竞争链表资源;反之,先对该节点进行剔除,然后从空闲链表中取下一个空闲节点并向图像链表中插入新的图像节点。如果不包含图像,则将标志位数组先修改为包含图像,然后从空闲链表中取下一个空闲节点并向图像链表中插入新的图像节点,完成对解码后图像的排序;(8)各处理器依据其图像发送策略发送图像:根据发送帧号确定图像链表,并计算出待发送帧在标志位数组中的索引,然后查看由此所确定的节点中是否包含图像,如果该节点在给定的时间内持续没有图像,则视为解码错误,跳过该帧,更新发送帧号;反之,解码正确,则从图像链表中取下发送帧号对应的图像节点,将节点中的图像数据取出,打包发送给下一个处理器或输出端,并更新发送帧号;(9)各处理器具体处理流程:处理器从上一级接收到码流和解码后的图像,首先处理器依据其并行解码策略进行多核并行码流解码。其中,将不满足自身处理要求的码流发送给下一级处理器。然后,依据其图像排序策略将解码图像存在图像链表中。最后,将图像链表中的图像依据其图像发送策略发送给下一级处理器。各处理器保持并行工作,最后一级处理器的图像链表所发送图像的顺序即为最终的排序结果。2.根据权利要求1所述的基于高速实时解码平台的并行解码快速排序方法,其特征在于,步骤(2)中所述给处理器设置标志位数组,具体包括:2.1设置标志位数组并定义其属性:设置标志位数组arr_sign时,其元素需要具备两个属性,一个是指向图像节点的指针p_frame,另一个是指示元素内是否含有图像的标志位sign,元素的结构定义如下:structsign_flag{ListNode*p_frameboolsign}2.2定义标志位数组总长度:标志位数组arr_sign(i)所对应的数组总长度设置为:List(i)_length=α*m(i),其中α>1,表示系统解码容错性,m(i)表示第i个处理器的并行解码速度。3.根据权利要求1所述的基于高速实时解码平台的并...

【专利技术属性】
技术研发人员:张静孔孟行胡锐李云松
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1