一种数据处理方法、电子设备、存储介质及程序产品与流程
- 国知局
- 2024-08-02 15:00:27
本技术涉及数据处理,特别涉及一种数据处理方法、电子设备、存储介质及程序产品。
背景技术:
1、当前,前导零计数在多媒体编解码等数据处理领域应用广泛,例如可以应用于指数哥伦布算法中。其中,指数哥伦布算法是一种无损数据压缩方法。此外,前导零计数是指统计出二进制数据从高位(例如,左边第一位)开始到第一个1之间的0的个数。例如,当二进制数据为100100时,前导零计数结果为0;又例如,当二进制数据为0010时,前导零计数结果为2。
2、目前,电子设备通常采用循环计数的算法实现前导零计数。例如,电子设备可以从二进制数据的高位至低位依次读取数据。其中,每读取一位数据,电子设备都需要判断当前读取的数据是否为0。若为0,则电子设备可以将前导零计数结果累计加1;若为1,则结束循环计数算法。然而,当前导零计数结果较大时,电子设备通过循环计数的算法实现前导零计数,需要消耗大量时间和计算资源。例如,当二进制数据的前导零计数结果为20时,表示电子设备需要依次对二进制数据的高21位数据进行判断,当电子设备在第21次判断出读取的数据为1时,会结束循环计数算法。并且电子设备需要进行20次累加计算,以得出前导零计数结果20。如此,使得电子设备需要消耗大量时间和计算资源以获取前导零计数结果。
3、因此,如何提升前导零计数的效率,以便于提高电子设备对指数哥伦布等算法的处理效率,从而提高指数哥伦布算法对应的多媒体编解码等数据处理过程的处理效率,是当前亟需解决的问题。
技术实现思路
1、为解决上述问题,本技术实施例提供了一种数据处理方法、电子设备、存储介质及程序产品,能够提高前导零计数的处理效率。
2、第一方面,本技术提供了一种数据处理方法,应用于电子设备,方法包括:获取到待处理的n位二进制数据;基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,其中,m为前导零计数结果的二进制数据的位数,并且2m-1≤n≤2m-1;基于前导零计数结果对n位二进制数据进行数据处理。
3、在本技术实施例中,可以通过m位二进制数据表示n位待处理数据对应的前导零数量。其中,由于一个布尔函数的输出结果只有一位数据(二进制数据1或二进制数据0),因此,可以基于m个布尔函数获取待处理的n位二进制数据对应的m位前导零计数结果。例如,在m个布尔函数中,可以通过逻辑运算符(&、|、!)中的一种或多种逻辑运算符对待处理数据中的n位数据进行逻辑处理,从而得到m位前导零计数结果中的各位数据与待处理数据间的逻辑关系。最后,电子设备可以基于该m位前导零计数结果对待处理数据进行多媒体编码等数据处理。
4、在一些实施例中,由于可以直接对布尔函数进行程序编码,或者可以基于布尔函数建立出对应的逻辑电路。因此,可以在电子设备中预先存储布尔函数所对应的软件程序或算法代码等,通过处理器等执行相关代码以获取n位二进制数据对应的前导零计数结果。或者,还可以在电子设备中预先配置布尔函数所对应的逻辑电路,接收n位二进制数据作为输入数据,输出m位前导零计数结果。
5、如此,基于上述方法,可以快速获取待处理数据的前导零计数结果,且该数据处理方法效率高速度快。同时,若在多媒体编码等数据处理过程中存在前导零计数的计算过程,通过本技术提及的数据处理方法可以提高数据处理效率。
6、在上述第一方面的一种可能的实现中,上述基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,包括:对应于n为8,基于以下4个布尔函数,确定出n位二进制数据对应的前导零计数结果:
7、z0=!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7
8、z1=(!v0&!v1&!v2&!v3&!v4&!v5&v6)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
9、|(!v0&!v1&!v2&!v3&!v4&v5)|(!v0&!v1&!v2&!v3&v4)
10、z2=(!v0&!v1&!v2&!v3&!v4&!v5&v6)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
11、|(!v0&!v1&!v2&v3)|(!v0&!v1&v2)
12、z3=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)|(!v0&!v1&!v2&!v3&!v4&v5)
13、|(!v0&!v1&!v2&v3)|(!v0&v1)
14、其中,z0至z3分别为前导零计数结果从高位(如,左边第一位)至低位的4位数据。即,z0为前导零计数结果的第一位数据;z1为前导零计数结果的第二位数据;z2为前导零计数结果的第三位数据;z3为前导零计数结果的第四位数据;z0z1z2z3即为前导零计数结果。v0至v7分别为8位二进制数据从高位(如,左边第一位)至低位的8位数据。
15、在本技术实施例中,当待处理的n位二进制数据为8位二进制数据时,采用4位二进制数据即可表示出前导零计数结果。即,前导零计数结果可以为二进制数据0000~1000,表示前导零个数为0个~8个。其中,待处理的8位二进制数据从左往右依次可以由v0v1v2v3v4v5v6v7表示,4位前导零计数结果从左往右可以由z0z1z2z3表示。
16、在一些实施例中,由于一个布尔函数的输出结果只有一位数据,因此,可以通过上述4个布尔函数,获取到待处理的8位二进制数据对应的4位前导零计数结果。
17、如此,通过上述公式,即可对任意待处理的8位二进制数据进行前导零计数处理。例如,待处理的二进制数据为0000 1101时。则将待处理二进制数据对应的v0~v7代入上述公式,得到z0为0,z1为1,z2为0,z3为0。因此,可以通过上述公式得到待处理二进制数据00001101对应的前导零计数结果0100。
18、在上述第一方面的一种可能的实现中,上述基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,包括:对应于n为10,基于以下4个布尔函数,确定出n位二进制数据对应的前导零计数结果:
19、z0=!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7
20、z1=(!v0&!v1&!v2&!v3&!v4&!v5&v6)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
21、|(!v0&!v1&!v2&!v3&!v4&v5)|(!v0&!v1&!v2&!v3&v4)
22、z2=(!v0&!v1&!v2&!v4&!v5&!v8&!v9)|(!v0&!v1&!v2&!v3&!v4&!v5&v6)
23、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)|(!v0&!v1&!v2&v3)|(!v0&!v1&v2)
24、z3=(!v0&!v1&!v2&!v4&!v6&!v8&v9)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
25、|(!v0&!v1&!v2&!v3&!v4&v5)|(!v0&!v1&!v2&v3)|(!v0&v1)
26、其中,z0至z3分别为前导零计数结果从高位(如,左边第一位)至低位的4位数据。即,z0为前导零计数结果的第一位数据;z1为前导零计数结果的第二位数据;z2为前导零计数结果的第三位数据;z3为前导零计数结果的第四位数据;z0z1z2z3即为前导零计数结果。v0至v9分别为10位二进制数据从高位(如,左边第一位)至低位的10位数据。
27、在本技术实施例中,当待处理的n位二进制数据为10位二进制数据时,采用4位二进制数据即可表示出前导零计数结果。即,前导零计数结果可以为二进制数据0000~1010,表示前导零个数为0个~10个。其中,待处理的10位二进制数据从左往右依次可以由v0v1v2v3v4v5v6v7v8v9表示,4位前导零计数结果从左往右可以由z0z1z2z3表示。
28、在一些实施例中,由于一个布尔函数的输出结果只有一位数据,因此,可以通过上述4个布尔函数,获取到待处理的10位二进制数据对应的4位前导零计数结果。
29、如此,通过上述公式,即可对任意待处理的10位二进制数据进行前导零计数处理。例如,待处理的二进制数据为00010 11011时。则将待处理二进制数据对应的v0~v9代入上述公式,得到z0为0,z1为0,z2为1,z3为1。因此,可以通过上述公式得到待处理二进制数据00010 11011对应的前导零计数结果0011。
30、在上述第一方面的一种可能的实现中,上述基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,包括:对应于n为12,基于以下4个布尔函数,确定出n位二进制数据对应的前导零计数结果:
31、z0=!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7
32、z1=(!v0&!v1&!v2&!v3&!v8&!v9&!v10&!v11)
33、|(!v0&!v1&!v2&!v3&!v4&!v5&v6)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
34、|(!v0&!v1&!v2&!v3&!v4&v5)|(!v0&!v1&!v2&!v3&v4)
35、z2=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v8&!v9&!v10&v11)
36、|(!v0&!v1&!v2&!v4&!v5&!v8&!v9&v10)|(!v0&!v1&!v2&!v3&!v4&!v5&v6)
37、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
38、|(!v0&!v1&!v2&v3)|(!v0&!v1&v2)
39、z3=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v8&!v9&!v10&v11)
40、|(!v0&!v1&!v2&!v4&!v6&!v8&v9)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
41、|(!v0&!v1&!v2&!v3&!v4&v5)|(!v0&!v1&!v2&v3)|(!v0&v1)
42、其中,z0至z3分别为前导零计数结果从高位(如,左边第一位)至低位的4位数据。即,z0为前导零计数结果的第一位数据;z1为前导零计数结果的第二位数据;z2为前导零计数结果的第三位数据;z3为前导零计数结果的第四位数据;z0z1z2z3即为前导零计数结果。v0至v11分别为12位二进制数据从高位(如,左边第一位)至低位的12位数据。
43、在本技术实施例中,当待处理的n位二进制数据为12位二进制数据时,采用4位二进制数据即可表示出前导零计数结果。即,前导零计数结果可以为二进制数据0000~1100,表示前导零个数为0个~12个。其中,待处理的12位二进制数据从左往右依次可以由v0v1v2v3v4v5v6v7v8v9v10v11表示,4位前导零计数结果从左往右可以由z0z1z2z3表示。
44、在一些实施例中,由于一个布尔函数的输出结果只有一位数据,因此,可以通过上述4个布尔函数,获取到待处理的12位二进制数据对应的4位前导零计数结果。
45、如此,通过上述公式,即可对任意待处理的12位二进制数据进行前导零计数处理。例如,待处理的二进制数据为0000 0001 1101时。则将待处理二进制数据对应的v0~v11代入上述公式,得到z0为0,z1为1,z2为1,z3为1。因此,可以通过上述公式得到待处理二进制数据0000 0001 1101对应的前导零计数结果0111。
46、在上述第一方面的一种可能的实现中,上述基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,包括:对应于n为16,基于以下5个布尔函数,确定出n位二进制数据对应的前导零计数结果:
47、z0=!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&!v12&!v13&!v14&!v15
48、z1=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&!v12&!v13&
49、!v14&v15)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&
50、!v12&!v13&v14)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&
51、!v11&!v12&v13)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&
52、!v11&v12)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&v11)
53、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&v10)
54、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&v9)
55、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&v8)
56、z2=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&!v12&!v13&
57、!v14&v15)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&
58、!v12&!v13&v14)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&
59、!v11&!v12&v13)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&
60、!v11&v12)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)
61、|(!v0&!v1&!v2&!v3&!v4&!v5&v6)|(!v0&!v1&!v2&!v3&!v4&v5)
62、|(!v0&!v1&!v2&!v3&v4)
63、z3=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&!v12&!v13&
64、!v14&v15)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&
65、!v12&!v13&v14)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&v11)
66、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&v10)
67、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&v7)|(!v0&!v1&!v2&!v3&!v4&!v5&v6)
68、|(!v0&!v1&!v2&v3)|(!v0&!v1&v2)
69、z4=(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&!v12&!v13&
70、!v14&v15)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&!v11&
71、!v12&v13)|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&!v9&!v10&v11)
72、|(!v0&!v1&!v2&!v3&!v4&!v5&!v6&!v7&!v8&v9)|(!v0&!v1&!v2&!v3&!v4&
73、!v5&!v6&v7)|(!v0&!v1&!v2&!v3&!v4&v5)|(!v0&!v1&!v2&v3)|(!v0&v1)
74、其中,z0至z4分别为前导零计数结果从高位(如,左边第一位)至低位的5位数据。即,z0为前导零计数结果的第一位数据;z1为前导零计数结果的第二位数据;z2为前导零计数结果的第三位数据;z3为前导零计数结果的第四位数据;z4为前导零计数结果的第五位数据;z0z1z2z3z4即为前导零计数结果。v0至v15分别为16位二进制数据从高位(如,左边第一位)至低位的16位数据。
75、在本技术实施例中,当待处理的n位二进制数据为16位二进制数据时,采用5位二进制数据即可表示出前导零计数结果。即,前导零计数结果可以为二进制数据00000~10000,表示前导零个数为0个~16个。其中,待处理的16位二进制数据从左往右依次可以由v0v1v2v3v4v5v6v7v8v9v10v11v12v13v14v15表示,5位前导零计数结果从左往右可以由z0z1z2z3z4表示。
76、在一些实施例中,由于一个布尔函数的输出结果只有一位数据。因此,可以通过上述5个布尔函数,获取到待处理的16位二进制数据对应的5位前导零计数结果。
77、如此,通过上述公式,即可对任意待处理的16位二进制数据进行前导零计数处理。例如,待处理的二进制数据为0000 0000 0001 1101时。则将待处理二进制数据对应的v0~v15代入上述公式,得到z0为0,z1为1,z2为0,z3为1,z4为1。因此,可以通过上述公式得到待处理二进制数据0000 0000 0001 1101对应的前导零计数结果01011。
78、在上述第一方面的一种可能的实现中,电子设备中还可以包括上述m个布尔函数对应的处理电路;并且,上述基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,包括:将n位二进制数据输入到处理电路,得到n位二进制数据对应的前导零计数结果。
79、在本技术实施例中,由于一个逻辑运算符可以对应一个电路元件,电路元件接收高电平或低电平作为输入数据1或0,并且输出高电平或低电平作为输出数据1或0。因此,还可以将布尔函数通过逻辑电路表示,使得电子设备通过逻辑电路获取任意待处理的n位二进制数据中的前导零数量。例如,如图4所示,可以基于8位待处理数据对应的布尔函数构建出逻辑电路401。可以在电子设备中预先配置逻辑电路401,当逻辑电路401接收到8位待处理数据中的数据v0~v7时,即可输出对应的4位前导零计数结果z0~z3。如此,当电子设备接收到n位待处理数据时,即可通过m个布尔函数对应的逻辑电路接收n位二进制数据作为输入数据,以输出m位前导零计数结果。
80、在上述第一方面的一种可能的实现中,上述基于m个布尔函数,确定出n位二进制数据对应的前导零计数结果,包括:基于m个布尔函数对应的软件程序,确定出n位二进制数据对应的前导零计数结果。
81、在本技术实施例中,由于可以直接对布尔函数进行程序编码。因此,可以在电子设备中预先存储布尔函数所对应的软件程序或算法代码等,通过处理器等执行相关代码以获取n位二进制数据对应的前导零计数结果。如此,电子设备接收到待处理的n位二进制数据后,即可确定出n位二进制数据对应的前导零计数结果。
82、第二方面,本技术提供一种电子设备,包括:存储器和处理器,存储器用于存储电子设备的一个或多个处理器执行的指令,处理器是电子设备的一个或多个处理器之一,用于执行本技术提及的数据处理方法。
83、第三方面,本技术提供一种可读存储介质,可读存储介质上存储有指令,指令在电子设备上执行时使得电子设备执行本技术提及的数据处理方法。
84、第四方面,本技术提供一种计算机程序产品,包括:计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行本技术提及的数据处理方法。
85、上述第二方面至第四方面的有益效果,可以参考上述第一方面以及第一方面的各种可能的实现中的相关描述,在此不做赘述。
本文地址:https://www.jishuxx.com/zhuanli/20240801/244621.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表