数据压缩编码的流水线并行加速方法及其系统架构的制作方法_3

文档序号:9551783阅读:来源:国知局
Area+l] [iffrite]置为 WRITABLE (可写)。
[0044]S304:判断缓冲块状态标志 blockState [iArea] [iRead]是否为 READABLE(可读),是则转S306,否则转S305。
[0045]S305:休眠等待一个短暂时间,该时间可设定、可调整,然后转S304。
[0046]S306:判断本环节是否已经没有更多需要编码处理的数据,是则转S307,否则转S308o
[0047]S307:做缓冲区收尾工作,包括填充数据、设置缓冲块标志位,然后本环节处理结束。
[0048]S308:判断当前读指针pRead是否达到缓冲块长度BL0CK_LENGTH[iArea],即当前缓冲块是否已经读取完数据,是则转S309,否则转S310。
[0049]S309:置缓冲块状态标志 blockState [iArea] [iRead]为 WRITABLE(可写),也就是上一环节可以写入数据到该缓冲块了。把本环节正在读取的缓冲块编号iRead切换到下一缓冲块(循环使用),即iRead=(iRead+l)%BLOCK_AMOUNT[iArea],同时把读指针pRead指向该缓冲块的开头,即pRead=0。然后转S304。
[0050]S310:读取缓冲块的数据,从block[iArea] [pRead]处开始读取,所取数据长度为iReadSize0
[0051]S311:移动当前读指针,即 pRead=pRead+iReadSize。
[0052]S312:对读取的数据进行本环节的编码处理,生成的数据长度为iWriteSize,数据暂存于临时内存buffer[iArea]。具体的编码操作由本环节的功能决定。
[0053]S313:把 buffer [iArea]中的数据写入缓冲块 block [iArea+1] [iffrite] [pffrite]处开始的区域,写入数据长度为iWriteSize。
[0054]S314:移动当前写指针,即 pWrite=pWrite+iWriteSize。
[0055]S315:判断当前写指针pWrite是否达到缓冲块长度BL0CK_LENGTH[iArea+Ι],即当前缓冲块是否已经写满数据,是则转S316,否则转S306。
[0056]S316:置缓冲块状态标志 blockState [iArea+1] [iffrite]为 READABLE (可读),也就是下一环节可以读取该缓冲块的数据了。把本环节正在写入的缓冲块编号iWrite切换到下一缓冲块(循环使用),即iWrite=(iWrite+l)%BLOCK_AMOUNT [iArea+Ι],同时把写指针pffrite指向该缓冲块的开头,即pWrite=0。然后转S317。
[0057]S317:判断缓冲块状态标志 blockState [iArea+1] [iWrite]是否为 WRITABLE (可写),是则转S304,否则转S318。
[0058]S318:休眠等待一个短暂时间,该时间可设定、可调整,然后转S317。
[0059]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【主权项】
1.一种数据压缩编码的流水线并行加速方法,其特征在于: 把数据压缩编码过程划分为7个能自由选择的环节,依次是SO原始数据输入、S1预处理过滤、S2模式匹配、S3指令解析、S4概率统计预测、S5熵编码、S6压缩数据输出; 7个环节之中的S1至S5分别对应5个流水线部件,依次是U1预处理过滤器、U2模式匹配编码器、U3指令解析器、U4概率预测器、U5熵编码器; 5个流水线部件允许任意选择采用其中的2个以上,并将所采用的部件以任意次序组合,并相应加入不同的数据缓冲区,最终形成1条编码流水线; 每个不同的数据缓冲区存放设定格式的中间数据,使编码流水线中的各部件即编码过程的各环节能够以并行流水线的方式对编码数据作并行处理,从而提高编码的速度; 编码流水线用于数据的无损压缩,或者用于有损压缩末段的无损压缩部分,实现并行加速编码且压缩率不受影响。2.根据权利要求1所述的数据压缩编码的流水线并行加速方法,其特征在于所述不同的数据缓冲区,具体包括: 字符缓冲区,在U1预处理过滤器与U2模式匹配编码器之间; 命令缓冲区,在U2模式匹配编码器与U3指令解析器之间; 二进制缓冲区,在U5熵编码器之后; 如有部分所述流水线部件缺失,则前述相应的数据缓冲区合并或取消; 每个数据缓冲区采用双缓冲块或多缓冲块,从而支持数据并行读写而不出现共享冲关ο3.根据权利要求1所述的数据压缩编码的流水线并行加速方法,其特征在于所述把数据压缩编码过程划分为7个环节,具体包括: 50.原始数据输入环节,即获取未压缩的数据; 51.预处理过滤环节,即根据数据源的不同类型特点,对未压缩数据作各种预处理编码,以便获得更高的压缩率或更快的压缩速度; 52.模式匹配环节,即对上一环节编码后的数据进行字符串匹配,生成含有索引、长度、单字符或指令信息的编码; 53.指令解析环节,即对上一环节编码后的数据进行解析,根据不同的字符串匹配长度、索引大小、单字符或指令属性的不同而进行分类,将数据分流到不同的概率统计模型中,以便提高概率预测的准确性; 54.概率统计预测环节,即对上一环节分流过来的数据,用不同的概率模型进行统计和预测,以便给下一环节的熵编码提供概率数据; 55.熵编码环节,即对上一环节提供的概率预测数据,以数学算法生成二进制压缩编码; 56.压缩数据输出环节,即把上一环节得到的二进制压缩数据输出。4.根据权利要求1所述的数据压缩编码的流水线并行加速方法,其特征在于所述的编码流水线中的各部件即编码过程的各环节能够并行处理,各部件是以串联方式组成流水线,同时运行;输入的数据依次通过编码流水线中各部件,每个部件只完成各自不同的处理环节,最后形成压缩数据即实现压缩环节之间的纵向并行。5.根据权利要求1所述的数据压缩编码的流水线并行加速方法,其特征在于所述的每个不同的数据缓冲区存放的设定格式的中间数据,包括以下缓冲区相对应的数据格式: 字符缓冲区,存放准备模式匹配的数据,并划分为2个以上无访问冲突的读写缓冲块; 命令缓冲区,存放专有的32位命令代码字,并划分为2个以上无访问冲突的读写缓冲块; 二进制缓冲区,存放准备输出的二进制压缩数据,并划分为2个以上无访问冲突的读写缓冲块。6.根据权利要求2或5所述的数据压缩编码的流水线并行加速方法,其特征在于所述的每个数据缓冲区采用双缓冲块或多缓冲块,或所述的字符缓冲区、命令缓冲区及二进制缓冲区所分别划分出来的2个以上无访问冲突的读写缓冲块中: 每个缓冲块都既可读出数据,又可写入数据,但同一时间的单个缓冲块状态要么可读,要么可写,不能同时有超过1种状态; 每个缓冲块都能在可读、可写2种状态之间切换; 缓冲块可循环使用,当缓冲块编号计数器达到缓冲块个数减1时,计数器再加1会重新变成编号0。7.根据权利要求5所述的数据压缩编码的流水线并行加速方法,其特征在于所述的命令缓冲区存放专有的32位命令代码字, 命令代码字以二进制32位为单位,按顺序存放压缩编码相关的信息,包括待压缩处理的单个字符、索引、长度和控制指令; 各种压缩编码相关的信息以统一的编码规则,组织成简化处理的32位命令代码字,编码规则包括: 0?Oxff:表示单个字符的ASCII编码值; 0x100?Oxlff:表示控制指令,后面跟32位的控制操作数; 0x80000000?0x80000fff:表示字符串长度编码值,后面跟32位的字符串索引编码值; 索引编码值的编码规则包括: 0?0x7fffffff:2GB以下索引编码值; 0x80000001?Oxffffffff:1TB以下索引编码值,后面跟低32位的索引编码值。8.一种实现权利要求1所述方法的数据压缩编码的流水线系统架构,其特征在于: 该架构包括5个可选的流水线部件,依次是U1预处理过滤器、U2模式匹配编码器、U3指令解析器、U4概率预测器、U5熵编码器,分别对应5个编码环节,依次是S1预处理过滤、S2模式匹配、S3指令解析、S4概率统计预测、S5熵编码; 5个流水线部件允许任意选择采用其中的2个以上,以任意次序组合,并在两个部件之间相应设置有不同的数据缓冲区,最终连接成1条编码流水线; 每个数据缓冲区采用双缓冲块或多缓冲块。9.根据权利要求8所述的数据压缩编码的流水线系统架构,其特征在于各流水线部件是以串联方式组成流水线。
【专利摘要】本发明公开了数据压缩编码的流水线并行加速方法及其系统架构,所述方法把数据压缩编码过程划分为7个可自由选择的环节;除了数据输入输出环节之外,中间的5个环节分别对应5个流水线部件;前后两个部件之间加入不同的数据缓冲区,形成1条编码流水线;每个数据缓冲区存放特定格式的中间数据,使编码流水线中的各部件能够并行处理,类似于CPU的并行流水线,从而提高编码的速度。本发明同时公开了数据压缩编码流水线的系统架构。本发明的方法、流水线系统及专用编码格式,能够在不影响压缩率的前提下,使数据压缩编码的速度比传统的单任务编码速度成倍数地提高。
【IPC分类】H04N19/436
【公开号】CN105306951
【申请号】CN201510653690
【发明人】覃健诚, 钟宇, 陆以勤
【申请人】华南理工大学
【公开日】2016年2月3日
【申请日】2015年10月11日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1