发明内容
本发明要解决的技术问题之一,在于提供一种基于优先级对数据流中数据进行选择操作的方法,能使系统中的硬件代码可扩展性容易实现,同时硬件级数减少,硬件频率极限得到提高。
本发明问题之一是这样实现的:一种基于优先级对数据流中数据进行选择操作的方法,其特征在于:所述方法需提供N个加法器和一比较控制器;所述N为大于1的自然数;所述方法具体为:使用N个加法器对输入的一串数据流中的每个比特位的数据从1到k进行加法处理;k为数据流的个数且N>k,得到sum(k),预设要获得数据流中第M个为1的数值,则利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,该第几比特位作为索引值,该索引值即为对应的数据流中第M个为1的数值。
进一步地,所述利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,具体为:利用比较控制器对sum(0)到sum(k)中相邻的两个sum值进行比较,即比较sum(j)与sum(j-1),其中j=1到k,在M数值范围内,如果sum(j)=i&&sum(j-1)=(i-1),那么输出j值,该j值即为要找的第几比特位;将j值作为索引值,从而完成选择操作。
本发明要解决的技术问题之二,在于提供一种基于优先级对数据流中数据进行选择操作的系统,能使系统中的硬件代码可扩展性容易实现,同时硬件级数减少,硬件频率极限得到提高。
本发明问题之二是这样实现的:一种基于优先级对数据流中数据进行选择操作的系统,所述系统包括N个加法器和一比较控制器,所述N为大于1的自然数,各个加法器与所述比较控制器连接;使用N个加法器对输入的一串数据流中的每个比特位的数据从1到k进行加法处理;k为数据流的个数且N>k,得到sum(k),预设要获得数据流中第M个为1的数值,则利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,该第几比特位作为索引值,该索引值即为对应的数据流中第M个为1的数值。
进一步地,所述利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,具体为:利用比较控制器对sum(0)到sum(k)中相邻的两个sum值进行比较,即比较sum(j)与sum(j-1),其中j=1到k,在M数值范围内,如果sum(j)=i&&sum(j-1)=(i-1),那么输出j值,该j值即为要找的第几比特位;将j值作为索引值,从而完成选择操作。
本发明具有如下优点:本发明采用了加法器和比较控制器,该比较控制器具有比较和选择功能,通过加法器和比较控制器来实现可扩展的硬件N选M的硬件架构。从而快速地对一串数据流中选择出需要的内容并确认出其对应索引位置。
具体实施方式
请参阅图1所示,本发明的一种基于优先级对数据流中数据进行选择操作的方法,所述方法需提供N个加法器和一比较控制器;所述N为大于1的自然数;所述方法具体为:使用N个加法器对输入的一串数据流中的每个比特位的数据从1到k进行加法处理;k为数据流的个数且N>k,得到sum(k),预设要获得数据流中第M个为1的数值,则利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,该第几比特位作为索引值,该索引值即为对应的数据流中第M个为1的数值。
其中,所述利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,具体为:利用比较控制器对sum(0)到sum(k)中相邻的两个sum值进行比较,即比较sum(j)与sum(j-1),其中j=1到k,在M数值范围内,如果sum(j)=i&&sum(j-1)=(i-1),那么输出j值,该j值即为要找的第几比特位;将j值作为索引值,从而完成选择操作。
下面结合一具体实施例对本发明作进一步说明:
假设M的值是2,即要得到数据流中第2个为1的数值;如输入的一串数据流为00111,则k为数据流为5个数位;N可以为大于5的数据,如6,则利用6个加法器进行运算;
那么其实我们的目的就是在00111这串数据中找到第二个值为1对应的位置,这个例子中00111倒数第二个1这个1就是要找的。则位置是第三bit。这样就找到了这个我们需要索引的值3.
做法:输入数据流00111
sum(0)=0;
sum(1)=0+0;
sum(2)=0+0+1=1;
sum(3)=0+0+1+1=2;
sum(4)=0+0+1+1+1=3;
一一判断:sum(0)sum(1)sum(2)sum(3)sum(4)sum(5)判断到sum(3)=2(这里的2是指定的需要找到的第二个1的位子)而且sum(2)=1。(即sum(j)=i&&sum(j-1)=(i-1))这就表示我们已经找到需要的位子了,也就是3。
请参阅图2所示,本发明应用于一实施例的原理框图。
在实际专利实施例中的应用场景为:HEVC视频编解码器设计中,重构数据模块、去方块模块、样点自适应模块之间的控制命令交互。
重构数据模块输出视频流数据给去方块模块(deblocking)之前会有相应的控制命令,这些控制命令需要等到特定命令之后后级去方块模块deblocking才能进行数据去方块操作,也就是假如有100个命令,现在需要等待其中的第30个有效命令到达就可以开始进行后级处理,对于deblocking与样点自适应模块SAO的操作是一样的道理。
那么这个时候就需要识别控制命令需要的第30个命令缓存到哪里了,就需要判断第30个有效命令的位置,便于索引缓存读取相应控制信息。这个时候就可以用到本发明提供的思路的方法来解决问题。
表1
如上表1,buff_context放的就是控制命令,现在需要找到里面第8个(假设第8个)的位置,以便于后续读出该控制信息进行后级去方块模块deblocking的数据流操作。
现在的做法就是对buff的每一行索引,如果为A,那么sum就加1,否则保持不变,直到sum(j)=8,sum(j-1)=7,这个时候找到的j=19,这个19就是我们需要的索引值,后续缓存控制模块到19这个位置取数据即可。
这个M就是等于8。当然可以通过配置M的值,来表示我们需要的是第几个A的位置。M的取值范围只能是0~N之间。因为j的值是0~N,N个1相加最多是N,也就是M是sum的最大值为N。
请参阅图3所示,本发明的一种基于优先级对数据流中数据进行选择操作的系统,所述系统包括N个加法器和一比较控制器,所述N为大于1的自然数,各个加法器与所述比较控制器连接;使用N个加法器对输入的一串数据流中的每个比特位的数据从1到k进行加法处理;k为数据流的个数且N>k,得到sum(k),预设要获得数据流中第M个为1的数值,则利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,该第几比特位作为索引值,该索引值即为对应的数据流中第M个为1的数值。其中,所述利用比较控制器对sum(0)到sum(k)进行比较判断获得数据流中第几比特位,具体为:利用比较控制器对sum(0)到sum(k)中相邻的两个sum值进行比较,即比较sum(j)与sum(j-1),其中j=1到k,在M数值范围内,如果sum(j)=i&&sum(j-1)=(i-1),那么输出j值,该j值即为要找的第几比特位;将j值作为索引值,从而完成选择操作。
总之,本发明采用了加法器和比较控制器,该比较控制器具有比较和选择功能,通过加法器和比较控制器来实现可扩展的硬件N选M的硬件架构。从而快速地对一串数据流中选择出需要的内容并确认出其对应索引位置。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。