CN113346911A - 压缩编码方法、电子设备和存储介质 - Google Patents
压缩编码方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113346911A CN113346911A CN202110679049.4A CN202110679049A CN113346911A CN 113346911 A CN113346911 A CN 113346911A CN 202110679049 A CN202110679049 A CN 202110679049A CN 113346911 A CN113346911 A CN 113346911A
- Authority
- CN
- China
- Prior art keywords
- data
- binary
- preset range
- encoding
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007906 compression Methods 0.000 title claims abstract description 108
- 230000006835 compression Effects 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012545 processing Methods 0.000 claims description 69
- 230000015654 memory Effects 0.000 claims description 35
- 239000000126 substance Substances 0.000 claims 2
- 238000006243 chemical reaction Methods 0.000 abstract description 26
- 230000008569 process Effects 0.000 abstract description 20
- 230000002829 reductive effect Effects 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 10
- 238000010295 mobile communication Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 230000009471 action Effects 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及数据编码与解码技术领域,具体涉及一种压缩编码方法、电子设备和存储介质,其中,压缩编码方法包括:获取待编码数据;确定待编码数据所属的预设范围;采用与确定的预设范围对应的编码方式对待编码数据进行二进制编码,其中,不同预设范围对应的编码方式进行二进制编码所采用的二进制位数不同。本申请通过对待处理的大规模统计数据根据数据离散情况合理设定预设范围进行分类,对于设定的预设范围内外的数据分别采用不同位数的二进制编码方式进行编码转换操作,进而实现在二进制编码过程中压缩得到的二进制数列位数,最终有效减少编码转换后得到的二进制数列的总位长,稳定降低带宽。
Description
技术领域
本申请涉及数据编码与解码技术领域,具体涉及一种压缩编码方法、电子设备和存储介质。
背景技术
随着大数据分析技术的不断进步和发展,越来越多的技术领域需要应用大规模统计数据技术进行大批量数据的处理识别,以提高数据处理的效率。现有技术中,对于大规模统计数据而言,在将其录入计算机进行处理或分析的情况下,如图1所示,往往都是将上述大规模统计数据经统计模块101处理后,以一维数组或是多维数组的形式进行录入,再由编码模块102将上述一维数组或是多维数组进行压缩编码转换为计算机可以读取且可以识别的二进制数列,最后由处理模块103根据获得的二进制数列执行进一步的处理动作。其中,单行或单列的数组成为一维数组,多行或多列(包括2行2列)的数组称为多维数组(例如,2行2列的数组称为二维数组)。
而为了使编码模块102顺利读取一维数组或是多维数组中的每个数据,编码模块102往往采用统一的多位数二进制编码方式。然而,若是在大规模统计数据中出现了一些离群数据(例如是极大值数据或是极小值数据),则需要对其中的每个统计数据均采用能够满足离群数据转换为二进制数列的多位数二进制编码进行编码转换操作,在不采用压缩算法的情况下上述编码转换操作得到的二进制数列占用带宽较大,势必会导致计算机读取和/或处理数据的速度或效率降低,而如果在上述编码转换操作过程中采用无损压缩算法(例如哈夫曼算法等)进行压缩以降低带宽,则又会由于无损压缩算法的运算复杂度高,会增加运算压力从而导致硅晶片功耗的增加,为了保障计算机***的高速运行,则必然会导致硅晶片体积的增加。
如此,目前在对大规模统计数据进行处理的过程中,尤其对于包含一些离群数据的大规模统计数据进行处理时,亟需一种既能够压缩编码后得到的二进制数列位数降低带宽,又不会增加硅晶片功耗及体积的压缩编码方法来解决上述问题。
发明内容
本申请实施例提供了一种压缩编码方法、电子设备和存储介质,通过对待处理的大规模统计数据根据数据离散情况合理设定预设范围进行分类,对于设定的预设范围内外的数据分别采用不同位数的二进制编码方式进行编码转换操作,进而实现在二进制编码过程中压缩得到的二进制数列位数,最终有效减少编码转换后得到的二进制数列的总位长,既能够降低带宽又不会增加硅晶片功耗和体积。
第一方面,本申请实施例提供了一种压缩编码方法,该方法包括:获取待编码数据;确定待编码数据所属的预设范围;采用与确定的预设范围对应的编码方式对待编码数据进行二进制编码,其中,不同预设范围对应的编码方式进行二进制编码所采用的二进制位数不同。
即对获取的待编码数据在进行二进制编码之前,先判断或者确定待编码数据是不是处于预设范围内的数据,例如在设定一个预设范围的情况下,对处于预设范围内的待编码数据采用二进制位数较少的二进制编码方式进行编码,对不处于预设范围内的待编码数据(即下文实施例所描述的预设范围之外的离散数据)采用二进制位数较多的二进制编码方式进行编码。可以理解,对待编码数据进行二进制编码的过程是按照获取待编码数据的顺序依次进行编码的,编码后得到的二进制数列的序列依次对应于获取的待编码数据。
可以理解,待编码数据即下文实施例中所描述的原始数据,依次读取的待编码数据所形成的数据流即为下文描述的原始数据流。
在上述第一方面的一种可能的实现中,预设范围包括第一预设范围和第二预设范围,其中,第一预设范围的最大值和最小值的绝对值,均小于第二预设范围的最大值和最小值的绝对值。
即预设范围可以设定为两个,第一预设范围所覆盖数据的绝对值较小,第二预设范围为排除第一预设范围内数据的范围,第二预设范围所覆盖数据的绝对值较大,可以理解,上述设定的预设范围应当根据待编码数据的离散分布情况设定,通常待编码数据中处于第一预设范围内的数据占比较大,处于第二预设范围内的数据占比较少,即为下文所描述的离散数据。例如,第一预设范围设置为[-15,15],能够覆盖80%或者90%的较小的待编码数据;第二预设范围设置为[-127,-15]∪[15,127],即对应于下文实施例中所描述的处于[-15,15]之外的离群数据处于[-127,127]内,能够覆盖其余20%或10%的较大的待编码数据。
在另一些实施例中,预设范围也可以设置为多个,例如预设范围包括第一预设范围、第二预设范围、第三预设范围以及第N预设范围等,并且第一预设范围的最大值和最小值的绝对值均小于第二预设范围的最大值和最小值的绝对值、第二预设范围的最大值和最小值的绝对值均小于第三预设范围的最大值和最小值的绝对值,以此类推。例如,下文实施例中图5所描述的第一预设范围内、第二预设范围等相应的预设范围。
在上述第一方面的一种可能的实现中,采用与确定的预设范围对应的编码方式对待编码数据进行二进制编码,包括:采用第一编码方式对处于第一预设范围内的待编码数据进行二进制编码;采用第二编码方式对处于第二预设范围内的待编码数据进行二进制编码;其中,第二编码方式进行二进制编码所采用的二进制位数大于第一编码方式进行二进制编码所采用的二进制位数。
即对于不同预设范围内的待编码数据采用不同二进制位数的二进制编码方式进行编码,例如对于第一预设范围所覆盖的绝对值较小的待编码数据相应地采用二进制位数较少的二进制编码方式进行编码,对于第二预设范围所覆盖的绝对值较大的待编码数据相应地采用二进制位数较多的二进制编码方式进行编码。
例如对于前述例子,第一预设范围设置为[-15,15],第二预设范围设置为[-127,-15]∪[15,127],则对于[-15,15]所覆盖的绝对值较小的待编码数据相应地采用五位二进制编码,对于[-127,-15]∪[15,127]所覆盖的绝对值较大的待编码数据相应地采用八位二进制编码。
在上述第一方面的一种可能的实现中,待编码数据经过二进制编码得到的二进制数列的首位字符为表征待编码数据正负状态的符号位;并且当待编码数据为正数时,符号位为0;当待编码数据为正数时,符号位为1。
即对于待编码数据进行二进制编码所得到的二进制数列中,首位字符是0则该二进制数列所表示的待编码数据为正数,例如是正整数;首位字符是1则该二进制数列所表示的待编码数据为负数,例如是负整数。
在上述第一方面的一种可能的实现中,采用第二编码方式对处于第二预设范围内的待编码数据进行二进制编码,还包括:在符号位之前添加标志位;其中,标志位用于识别采用第二编码方式进行二进制编码得到的二进制序列。
即为了便于计算机读取以及处理二进制编码后的待压缩数据,可以在对待编码数据进行二进制编码时,对处于第二预设范围内的待编码数据(例如占比较少但绝对值较大的待编码数据)先添加标志位,再在该标志位之后添加对应于该待编码数据的二进制数列,以用于识别第二预设范围内的待编码数据所对应的较多位数的二进制数列。
例如对于前述例子,第一预设范围设置为[-15,15],第二预设范围设置为[-127,-15]∪[15,127],则对处于[-127,-15]∪[15,127]范围内的待编码数据进行二进制编码时,可以先添加“-16”所对应的二进制数列“10000”作为标志位,再在该标志位之后添加[-127,-15]∪[15,127]范围内的各待编码数据所对应的八位二进制数列,参考下文实施例中所示出的“127”所对应的添加了标志位的二进制数列表示为“10000_01111111”,在此不再赘述。
在上述第一方面的一种可能的实现中,在待编码数据为实时获取的在线数据的情况下,上述方法还包括:基于上一处理周期内获取的待编码数据确定预设范围;其中,处理周期对应于对指定数量的待编码数据进行二进制编码的时间跨度。
在线数据包括实时获取的一维数组、多维数组或者采用RGB值表示的图像数据。
即对于实时获取的一维数组、多维数组或者采用RGB值表示的图像数据等在线数据,由于该在线数据中的待压缩数据获取是连续不间断的,因此,可以对指定数量的待编码数据进行二进制编码的时间跨度设置为处理周期,例如,设置对100个待编码数据进行二进制编码的时间跨度作为一个处理周期,那在线数据中连续的1000个待编码数据需要经过10个处理周期完成二进制编码。通常连续的两个处理周期内的待编码数据的离散分布情况较为相似,因此,对于即将进行二进制编码处理的待编码数据,预设范围可以根据上一个处理周期内获取的待编码数据的离散分布情况进行设定或实时更新,以确保预设范围能够针对待编码数据合理设定,保证本申请的压缩编码方法对待编码数据进行二进制编码过程能够稳定的降低编码后二进制数列的总位长,稳定降低带宽。
第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;一个或多个存储器;一个或多个存储器存储有一个或多个程序,当一个或者多个程序被一个或多个处理器执行时,使得电子设备执行上述压缩编码方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,存储介质上存储有指令,指令在计算机上执行时使计算机执行权利要求上述压缩编码方法。
第四方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述压缩编码方法。
附图说明
图1示出了计算机***内处理大规模统计数据的流程示意图;
图2a示出了本申请实施例所提供的一种压缩编码***的结构示意图;
图2b基于图1所示的压缩编码***,示出了本申请实施例所提供的适用于在线编码场景的一种压缩编码***的结构示意图;
图3示出了本申请实施例所提供的基于图2a所示压缩编码***的一种压缩编码方法的实施流程示意图;
图4示出了本申请实施例所提供的采用图3所示的压缩编码方法进行编码转换得到的二进制数列示意图;
图5示出了本申请实施例所提供的另一种压缩编码***的结构示意图;
图6示出了本申请实施例所提供的对应于上述图2a所示压缩编码***的解码***结构示意图;
图7示出了本申请实施例所提供的一种解码方法的实施流程示意图;
图8示出了本申请实施例所提供的计算机的硬件结构示意框图;
图9示出了本申请实施例所提供的计算机***的一种结构示意框图;
图10示出了本申请实施例所提供的片上***的一种结构示意框图。
具体实施方式
下面结合具体实施例和附图对本申请做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本申请,而非对本申请的限定。此外,为了便于描述,附图中仅示出了与本申请相关的部分而非全部的结构或过程。应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项。
本申请的说明性实施例包括但不限于压缩编码方法、电子设备和存储介质等。
如前所述,背景技术中提及目前在处理包括部分离群数据的大规模统计数据时,如果采用能够满足离群数据转换为二进制数列的多位数二进制编码进行编码转换操作,在不采用压缩算法的情况下上述编码转换操作得到的二进制数列总位数过多,故而在计算机读取和/或处理数据的过程中占用带宽较大导致数据读取效率以及数据处理效率低下。例如需要处理的1000个大规模统计数据(十进制)中,90%的数据集中于[-15,15]区间内,另10%的数据包括明显偏离上述取值区间[-15,15]的离群数据,例如另10%的数据中所包括的极大值或极小值可以包含在[-127,127]区间内,因此,若采用满足离群数据转换为二进制数列的多位数二进制编码进行编码转换操作,则需要采用对应于[-127,127]区间内数据转换为二进制数列的八位二进制编码进行编码转换操作,最终1000个统计数据转换后得到的二进制数列的总位长为8(位)*1000=8000位。在不考虑采用任何压缩算法的情况下,这样大规模统计数据的处理将极大的占用带宽,成为提高计算机读取数据以及处理数据速度的一大技术瓶颈。
为了解决上述问题,本申请提供了一种压缩编码方法,通过对待处理的大规模统计数据根据数据离散情况合理设定预设范围进行分类,对于设定的预设范围内外的数据分别采用不同位数的二进制编码方式进行编码转换操作,进而实现在二进制编码过程中压缩得到的二进制数列位数,最终有效减少编码转换后得到的二进制数列的总位长。例如,对于上述示例的1000个大规模统计数据(十进制),可以合理设定90%的数据所集中的数值区间[-15,15]作为预设范围,对于预设范围[-15,15]内的90%的数据采用五位二进制编码方式,而对于预设范围[-15,15]外的10%的数据则可以采用八位二进制编码方式进行编码转换操作,最终得到的1000个统计数据转换后得到的二进制数列的总位长则为5(位)*1000*90%(处于预设范围内的原始数据占比90%)+8*1000*10%(处于预设范围外的原始数据占比10%)=5300位,相较于上述统一采用八位二进制编码方式得到的二进制数列的总位长8000位,本申请所提供的压缩编码方法得到的二进制数列总位长明显减少。
可见,在不采用哈夫曼算法等无损压缩算法的情况下,本申请所提供的压缩编码方法在处理包括有离群数据的大规模统计数据方面能够达到明显的数据压缩效果,也就是说,本申请所提供的压缩编码方法既能够在二进制编码过程中压缩数据降低带宽,又不会增加计算机的运算压力,从而不会增加硅晶片的功耗及体积。
可以理解的是,本申请技术方案可以适用于在各种不同进制表达的各个数据向二进制数进行压缩编码转换,例如将十进制数向二进制转换编码、将八进制数向二进制转换编码、将十六进制数向二进制转换编码等等。为了便于说明,下文将以十进制数(以下均默认十进制数为整数)向二进制数进行转换编码为例进行描述。
可以理解,在一些实施例中,采用本申请所提供的压缩编码方法进行压缩编码时,可以预设一个预设范围对待处理的大规模统计数据进行二分类分别进行压缩编码,也可以设置多个预设范围对待处理的大规模统计数据划分为多类数据分别进行压缩编码,预设范围的设置可以基于待处理的大规模统计数据的离散情况以及各数据的数值范围确定,在此不做限制。
此外,可以理解的是,适用于本申请技术方案的应用场景可以涵盖数据编码、数据压缩、大数据处理、大数据分析等应用领域:例如通过机器学习(Machine Learning)技术对某一领域的大规模统计数据进行场景模型建立、通过人工智能(ArtificialIntelligence,AI)技术对某一领域的大规模统计数据进行事件影响因素的权重计算等等。于上述应用场景中,大规模统计数据在录入计算机进行处理或分析时,往往都是将上述大规模统计数据以一维数组或者多维数组的形式进行录入,再由计算机的编码模块102将多维数组进行压缩编码转换为计算机可读的二进制数列,而后由计算机的其他处理模块执行进一步的处理动作。为了便于说明,下文将以对一维数组进行转换编码为例进行描述。
为了便于描述,下面以对十进制表示的一维数组进行转换编码得到与之对应的二进制数列为例,详细介绍本申请的压缩编码***的具体结构以及对应的压缩编码方法。
作为示例,图2a示出了用于实施本申请提供的压缩编码方法的一种压缩编码***的结构示意图。
具体地,图2a示出的压缩编码***可以包括划分单元200、第一编码单元201和第二编码单元202。可以理解,本申请所提供的压缩编码***可以应用于上述图1所示的计算机中的编码模块102,即计算机的编码模块102采用本申请的压缩编码***对待压缩的数据流进行压缩编码,能够大大提高压缩率,有效降低压缩后的数据所需的内存空间。
其中,划分单元200用于接收待压缩编码的原始数据流,并对原始数据流中的原始数据进行划分。在本申请的一些实施例中,在原始数据流为十进制表示的一维数组的情况下,原始数据可以是一维数组中的每个十进制数,划分单元200可以对每个十进制数依次进行识别,判断其是否位于预设范围内:若当前进行识别的十进制数处于上述预设范围内,则将该十进制数划分为“处于预设范围内的原始数据”并执行输出;若当前进行识别的十进制数不处于上述预设范围内,则将该十进制数划分为“处于预设范围外的原始数据”并执行输出。
可以理解的是,上述预设范围可以是十进制下的取值区间,例如预设范围[-15,15]表示大于或等于-15且小于或等于15的取值区间,划分单元200可以通过判断原始数据中每个十进制数处于[-15,15]区间内来判断原始数据是否处于预设范围。有关预设范围如何进行确定将于下文中进行具体描述,在此不再赘述。
第一编码单元201用于接收处于预设范围内的原始数据,并基于预先设置的能够满足预设范围内数据转换为二进制数列的第一编码方式对处于预设范围内的原始数据进行压缩编码。例如,对于上述预设范围[-15,15],第一编码方式为五位二进制编码方式;如果预设范围为[-32,31],则对应的第一编码方式为六位二进制编码方式。可以理解的是,第一编码方式基于预设范围确定,第一编码方式是能够满足预设范围内全部原始数据转换为二进制数列的二进制编码方式。相应地,第一编码单元201输出的压缩编码数据为依次对应于预设范围内各原始数据的二进制数列。
第二编码单元202用于接收处于预设范围外的原始数据,并基于预先设置的能够满足预设范围外的离群数据转换为二进制数列的第二编码方式对处于预设范围外的原始数据进行压缩编码。例如,对于上述预设范围[-15,15],处于[-15,15]之外的离群数据如果处于[-127,127]内则可以对上述离群数据采用八位二进制编码;如果处于[-15,15]之外的离群数据处于[-64,63]内则可以对上述离群数据采用七位二进制编码。可以理解的是,第二编码方式基于离群数据的数值大小确定,第二编码方式是能够满足预设范围外的全部离散数据转换为二进制数列的二进制编码方式。相应地,第二编码单元202输出的压缩编码数据为依次对应于预设范围外各离散数据的二进制数列。
可以理解的是,第一编码方式和第二编码方式均为二进制编码方式,为了尽可能地对得到的二进制数进行位数上的压缩,在本申请的一些实施例中,第一编码方式和第二编码方式仅是在编码位数的设定上存在差异。
例如,在预设范围被设定为[-15,15]的情况下,第一编码单元201需要处理的十进制原始数据均处于[-15,15]区间内,对于这些原始数据均可以采用五位二进制方式进行编码。可以理解,在向二进制数列进行编码转换的过程中,正整数可以直接进行转换,例如十进制数“7”可以转换为二进制数列“00111”表示;而负整数在计算机中是以补码形式存储的,而补码的表示需要先引入反码的概念,所谓反码是将负整数的绝对值所对应的二进制数列(又称负整数的原码)中的各个数位按位取反,也就是将每个数位上的“1”替换为“0”、将每个数位上的“0”替换为“1”,而补码则是在上述得到的反码基础上向前补一位。例如,“-6”的五位二进制原码是“00110”,则该原码的反码则是“11001”,得到的该反码中的末位码向前补一位,则可以得到“-6”的二进制数列表示为“11010”。其中可以理解,五位二进制数的首位作为符号位,用于表示原始数据的正负(“0”代表正数,“1”代表负数),其余四位用于表示原始数据的具体数值。
而对于处于预设范围[-15,15]外的原始数据,即上述离散数据,则需要通过第二编码单元202来处理,如果这些离散数据处于[-127,127]范围内,则第二编码单元202对这些离散数据可以采用八位二进制编码方式进行编码。同样地,其中八位二进制数的首位作为符号位,用于表示原始数据的正负(“0”代表正数,“1”代表负数),其余七位用于表示原始数据的具体数值。对于负整数统一采用补码的形式进行表示,例如十进制数“127”可以采用二进制数“01111111”表示,十进制数“-16”的原码为“00010000”,则该原码的反码则是“11101111”,在反码基础上向前补一位得到十进制数“-16”的二进制表示为“11110000”。
可以理解的是,相较于第二编码单元202对预设范围外数据采用八位二进制编码方式压缩编码得到的二进制数据,第一编码单元201对预设范围内数据采用五位二进制编码方式压缩编码得到的二进制数据的位数更少。因此,当处于预设范围内的原始数据相较于原始数据流整体的占比较大时,采用本申请技术方案进行编码转换所得到的二进制数列的总位长就会减少,因而能够有效压缩二进制编码数列。
进一步地,考虑到在现有技术中,在采用统一的八位二进制编码的情况下,计算机中的处理模块103在对获得的二进制数列执行进一步分析处理时,会基于计算机上设定的读取规则自动把每八位二进制数作为一个整体对象加以识别。而在采用本申请的上述压缩编码***的情况下,计算机中的处理模块103基于计算机上设定的读取规则可能会出现对上述压缩编码转换后得到的二进制数列读取错误的情况。例如,待压缩编码的一维数组为(6,7,-128,9)时,采用本申请的上述图2a所示压缩编码***对该一维数组中的每个数据进行压缩编码,例如预设范围设定为[-15,15],则上述一维数组中的数据“6”、“7”和“9”均处于该预设范围,因此采用五位二进制编码方式进行压缩编码,得到对应于数据“6”的五位二进制数列为“00110”、对应于数据“7”的五位二进制数列为“00111”、对应于数据“9”的五位二进制数列为“01001”;而上述一维数组中的数据-128不处于该预设范围,因此采用能够覆盖该数据“-128”的八位二进制编码方式进行压缩编码,得到对应于数据“-128”的八位二进制数列为“10000000”,按照原一维数组中各数据的排列顺序输入上述各二进制数列,则可以得到压缩编码转换后的二进制数列“00110_00111_10000000_01001”。
然而,对于上述过程得到的二进制数列“00110_00111_10000000_01001”,无论处理模块103基于计算机读取规则将五位二进制数作为一个整体对象进行识别,还是将八位二进制数作为一个整体对象进行识别,都无法准确地对获得的二进制数列进行识别。故而需要在通过第一编码方式或是第二编码方式所得到的二进制数列中增加一标志位,该标志位作为计算机识别第一编码方式或是第二编码方式所得到的二进制数列的标记符号,例如对第二编码方式所得到的二进制数列添加该标志位后,计算机的处理模块103在读取二进制数列进行处理时,便可以根据该标志位区别读取该标志位后的二进制数列,从而使得计算机的处理模块103能够准确识别并读取计算机的编码模块102基于本申请所提供的压缩编码***压缩编码得到的二进制数列。
作为示例,例如上述第二编码单元202采用八位二进制编码方式,在压缩编码时,可以在每个八位二进制编码得到的二进制数列前添加上述标志位。例如,依旧是在预设范围被设定为[-15,15]的情况下,第二编码单元202需要处理的十进制原始数据为预设范围外的数据,例如是处于[-127,127]且不处于[-15,15]的数据,因此可以选择十进制数“-16”所对应的二进制数“10000”作为标志位。加入了上述标志位后,十进制数“127”采用八位二进制编码得到的二进制数列则为“10000_01111111”(其中“10000”是标志位,“_”仅用作分隔示意,无实际含义,下同),而十进制数“-16”采用八进制二进制编码得到的二进制数列则为“10000_11110000”。因此上述一维数组(6,7,-128,9)采用本申请所提供的压缩编码***进行压缩编码时加入上述标志位得到的二进制数列则为“00110_00111_10000_10000000_01001”,其中的“10000”是标志位。
相应地,计算机上的处理模块103在对上述压缩编码得到的二进制数列进行识别读取时,可以采用将五位二进制数作为一个整体对象进行读取的预设读码规则,同时基于标志位“10000”识别上述压缩编码得到的二进制数列中的八位二进制数。也就是说,计算机的处理模块103默认将每五位二进制数作为一个整体对象进行识别,当处理模块103识别到“10000”标志位时,则将该标志位“10000”后的八位二进制数作为一个整体对象进行识别,而识别该八位二进制数据之后,处理模块103继续按每五位二进制数作为一个整体对象进行识别读取。因此,计算机能够对采用本申请的压缩编码***得到的二进制数列进行准确识别。
可以理解的是,上述标志位的选择与前述预设范围的选取相关联。由于计算机能够读取的数据对象是二进制数据,所以在设定预设范围的过程中需要考虑到对预设范围内和预设范围外的数据分别采用不同的编码方式进行压缩编码转换后,得到的二进制数列的总位长相对于传统的统一编码方式得到的二进制数列的总位长是否发生变化。在本申请的一些实施例中,设定预设范围时可以参考如下表达式(1):
[-(2n-1),2n-1] (1)
其中,n为正整数。可以理解,预设范围可以是人为设定的参数,也可以是计算机基于预置的设定规则根据待压缩编码的数据范围确定的预设范围,在此不做限制。
可以理解,在上述预设范围内的全部十进制数,均可以用n+1位二进制数(其中1位作为符号位)进行表示。可以理解,n+1位二进制数对应的十进制数的范围在[-2n,2n-1]区间内,为了能够尽可能覆盖支持n+1位二进制编码形式的全部原始数据,预设范围可以根据上述表达式进行确定。同时,在预设范围为[-(2n-1),2n-1]的情况下,标志位可以设定为“-2n”对应的二进制数。这是因为“-2n”同样可以用n+1位二进制编码形式进行表示:若设定的标志位小于-2n或是大于2n-1,则需要采用更多的二进制编码才能进行表示;若设定的标志位小于2n-1且大于-2n+1,则会与预设范围内的原始数据产生矛盾冲突,计算机中的处理模块103无法判断检测到的二进制数代表的是标志位还是原始数据。在预设范围依照上述表达式(1)设定的情况下,可以将标志位设定为“-2n”对应的二进制数,能够在尽可能减小编码转换后二进制数列的位数的同时实现计算机中的处理模块103对于二进制数列的准确识别。
例如,设定一维数组中包含1000个处于[-127,127]的十进制数,其中90%的十进制数平均分布于区间[-10,12]时,可以将预设范围设定为[-15,15]并将标志位设置为“-16”对应的二进制数“10000”,能够采用五位二进制编码形式对上述一维数组中的绝大多数十进制数进行转换编码,相较于统一采用八位二进制编码形式进行转换编码有效压缩了转换后二进制数列的位数长度。又例如,设定一维数组中包含1000个处于[-127,127]的十进制数,其中80%的十进制数正态分布于区间[-30,25]时,可以将预设范围设定为[-31,31]并将标志位设置为“-32”对应的二进制数“100000”,能够采用六位二进制编码形式对上述一维数组中的绝大多数十进制数进行转换编码,相较于统一采用八位二进制编码形式进行转换编码有效压缩了转换后二进制数列的位数长度。
可以理解,上述添加的标志位仅为标记符号,计算机在存储或读取带有标志位的二进制数列时,不对上述标志位做任何处理,另外,添加上述标志位进行编码的待编码数据在原始数据流中占比甚少,因而所添加的标志位对压缩编码得到的二进制数列总位长的增加影响也甚小,也就是说,即便在压缩编码过程添加了标志位,采用本申请所提供的压缩编码***对原始数据流进行压缩编码仍能够大大压缩得到的二进制数列的总位长。
在本申请的一些实施例中,在上述压缩编码***在计算机离线状态下应用于该计算机的编码模块102进行压缩编码的应用场景中,待处理的原始数据流是固定不变的,参考上述图2a所示,划分单元200可以对待处理的原始数据流进行遍历,根据原始数据流中原始数据的分布情况来确定预设范围,需要采用位数尽可能少的二进制编码方式对尽可能多的原始数据进行编码转换。例如,设定一维数组中包含1000个处于[-127,127]的十进制数,其中80%的十进制数平均分布于区间[-16,13]时,可以将预设范围设定为[-15,15]并将标志位设置为“-16”对应的二进制数“10000”,从而能够采用五位二进制编码方式涵盖一维数组中的大部分原始数据。
在本申请的另一些实施例中,对于在线编码应用场景中,计算机的编码模块102应用上述压缩编码***进行压缩编码的情况下,待处理的原始数据流是连续输入且动态变化的,此时基于上述图2a所示的压缩编码***,可以参考图2b所示,在线编码应用场景中,本申请所提供的压缩编码***还可以包括在线统计单元210,该在线统计单元210通过获取输入划分单元200的原始数据流进行统计分析,并基于统计分析结果确定适合于该原始数据流的合理预设范围输出给划分单元200,划分单元200则基于在线统计单元210提供的预设范围对原始数据流中的待编码数据判断是否处于预设范围内,完成对原始数据流的划分。可以理解,对于上述在线统计单元210确定预设范围的过程,可以预先设定处理一定数量的数据所耗用的处理时长作为一个处理周期,在线统计单元210上可以预置初始预设范围,作为划分单元200在初始处理周期(即第一个处理周期)内所依据的预设范围;在之后的处理周期中,在线统计单元210可以根据上一处理周期中原始数据的分布情况来确定当前处理周期内划分单元200所依据的预设范围。可以理解,在线统计单元210在确定预设范围的过程中,也需要遵循采用位数尽可能少的二进制编码方式对尽可能多的原始数据进行编码转换这一压缩规则。例如,设定一维数组中包含1000个处于[-127,127]的十进制数,且将每100个十进制数处理量作为处理周期;若在前一处理周期中80%以上的原始数据集中在[-8,12]的区间中时,那么可以将后一处理周期中的预设范围设定为[-15,15]并将标志位设置为“-16”对应的二进制数“10000”。
可以理解,于图2a所示的压缩编码***中,划分单元200、第一编码单元201和第二编码单元202可以集成于计算机的编码模块102中,编码模块102可以根据接收的原始数据的离散情况不同而选择不同的压缩编码方式,在此不做赘述。
基于上述图2a所示的压缩编码***,图3示出了一种压缩编码方法的实施流程示意图,该压缩编码方法具体包括以下步骤:
步骤301:计算机的编码模块102接收原始数据流。其中,原始数据流可以是一维数组或是多维数组,也可以是其他形式的数据内容,例如采用RGB值表示的图像数据等,在此不做限定。
步骤302:计算机的编码模块102对原始数据流进行划分,将原始数据流划分为处于预设范围内的原始数据和处于预设范围外的原始数据。其中,预设范围可以是根据当前待处理原始数据流的数据分布情况进行预先设置的固定范围,也可以是根据前一个处理周期中待压缩编码的原始数据的分布情况进行适应性的调整的动态范围。
步骤303:计算机的编码模块102对于处于预设范围内的原始数据,按照第一编码方式对原始数据进行压缩编码。可以理解,在需要对十进制数压缩编码转换为二进制数的情况下,第一编码方式可以是支持预设范围内全部原始数据的最少位数的二进制编码方式。例如,当预设范围为[-15,15]区间内的十进制数时,第一编码方式可以是五位二进制编码方式(其中包含符号位)。
步骤304:计算机的编码模块102对于处于预设范围外的原始数据,按照第二编码方式对原始数据进行压缩编码。可以理解,在需要对十进制数压缩编码转换为二进制数的情况下,第二编码方式可以是支持全部原始数据的最少位数的二进制编码方式。例如,当原始数据均为[-127,127]区间内的十进制数时,第二编码方式可以是八位二进制编码方式(其中包含符号位)。
步骤305:计算机的编码模块102输出原始数据流对应的压缩编码数据流。压缩编码数据流中的压缩编码数据按照与之对应的原始数据于原始数据流中的排列顺序依次排列。
例如,设定一维数组中包含的原始数据均为处于[-127,127]范围内的十进制数,预设范围被设定为[-15,15],相应地标志位被设定为-16对应的二进制数“10000”。图4示出了在上述预设场景下,采用图3所示的压缩编码方法,对于一位数组(6,7,8,-128,127,-16,9)进行编码转换得到的二进制数列示意图。
如图4所示,处于预设范围内的原始数据“6”、“7”、“8”和“9”均采用五位二进制编码方式得到的五位二进制数列表示;而对于处于预设范围外的原始数据“-128”、“127”和“-16”,则采用八位二进制编码方式进行编码并对每个数据所对应的八位二进制数列采用“标志位+八位二进制数列”的形式表示。
可以理解的是,设定一维数组中包含1000个处于[-127,127]的十进制数,其中90%的十进制数处于[-15,15]:在采用现有技术中的统一编码方式的情况下,得到的二进制数列的位长为8(位)*1000=8000位;而在采用上述压缩编码方法的情况下,可以设定预设范围为[-15,15],标志位为“-16”对应的二进制数“10000”,得到的二进制数列的位数为5(位)*1000*90%(处于预设范围内的原始数据占比)+5(位,标志位)*1000*10%(处于预设范围外的原始数据占比)+8(位)*1000*10%(处于预设范围外的原始数据占比)=5800位,取得了显著的位长压缩效果。
进一步地,采用如图3所示的压缩编码方法得到的二进制数列的平均位长可以用如下公式(2)计算得到:
CL=P(L0)*L0+P(L1)*(L0+L1) (2)
其中,CL为采用如图3所示的压缩编码方法得到的二进制数列的平均位长,P(L0)为位于预设范围内的原始数据的数量与原始数据流中全部原始数据的数量的比值,L0为第一编码方式对应的二进制数列的位数(例如,五位二进制编码方式对应的二进制数列的位数为五位),P(L1)为位于预设范围外的原始数据的数量与原始数据流中全部原始数据的数量的比值,L1为第二编码方式对应的二进制数列的位数(例如,八位二进制编码方式对应的二进制数列的位数为八位),L0+L1为带有标志位的第二编码方式对应的二进制位数。基于上述公式(2)计算得到的平均位长乘以原始数据流中全部原始数据的数量,则可以确定采用本申请的压缩编码方法所得到的对应于原始数据流的二进制数列的总位长,进而确定上述压缩编码过程中对二进制数列的压缩效果。
作为示例,图5示出了用于实施本申请提供的压缩编码方法的另一种压缩编码***的结构示意图。
具体地,图5所示的压缩编码***可以包括划分单元200、第一编码单元201、第二编码单元202、……、第N编码单元20N和全编码单元210,其中N为大于2的正整数,下同。
与上述图2a示出的压缩编码***不同的是,在图5示出的压缩编码***中,于划分单元200中设定了多个预设范围,并根据每个预设范围设定了与之对应的编码单元201至20N。其中第一编码单元201用于接收处于第一预设范围内的原始数据,并基于预先设置的能够满足第一预设范围内数据转换为二进制数列的第一编码方式对处于第一预设范围内的原始数据进行压缩编码。以此类推,第二编码单元202至第N编码单元20N分别对处于相应的预设范围内的原始数据进行压缩编码,在此不再赘述。
在上述图5示出的压缩编码***中,全编码单元210用于对处于所有预设范围外的原始数据进行编码处理,全编码单元210可以采用多位二进制编码方式,能够满足原始数据流中全部原始数据的编码需求。例如,设定原始数据流中包含1000个十进制数,其中999个原始数据均处于[-127,127]的区间内,另外一个原始数据为十进制的1022,则相应地全编码单元210可以采用11位二进制编码方式对数据“1022”进行二进制编码转换。可以理解,于图5所示的压缩编码***中,全编码单元210能够覆盖的数据范围最大,原始数据流中的全部原始数据均可以经全编码单元210进行编码转换。
可以理解的是,于如图5所示的压缩编码***中,第一预设范围至第N预设范围的选取均可参照前述实施例中的相关描述,在此不做限定。同样地,划分单元200可以根据原始数据流中原始数据的离散分布情况来确定各个预设范围,需要采用位数尽可能少的二进制编码方式对尽可能多的原始数据进行编码转换。例如,对于包含1000个处于[-127,127]的十进制数的一维数组,其中90%的十进制数分布于区间[-10,12],80%的十进制数分布于区间[-6,5]时,可以设定第一预设范围为[-7,7],并设置标志位为“-8”对应的二进制数“1000”以识别[-7,7]外的数据对应的五位二进制数列;另外可以设定第二预设范围为[-15,15],并设置标志位为“-16”对应的二进制数“10000”以识别[-15,15]外的数据对应的八位二进制数列。
在本申请的一些实施例中,于图5所示的压缩编码***中,第一编码单元201至第N编码单元20N均可以集成于计算机拥有的编码模块102中,编码模块102可以根据接收原始数据的路径不同选择不同的压缩编码方式,在此不做赘述。
在本申请的一些实施例中,图6示出了一种与上述图2a所示的压缩编码***相对应的解码***。具体地,图6示出的解码***可以包括识别单元600、第一解码单元601和第二解码单元602。可以理解,图6所示的解码***可以应用于计算机的输出设备或显示设备,用于将计算机处理后的二进制数据转换为用户可识别的原始数据形式,在此不再赘述。
识别单元600用于接收待解码处理的压缩编码数据流,并对压缩编码数据流中的压缩编码数据进行识别。在本申请的一些实施例中,压缩编码数据流采用如图3示出的压缩编码方法所得到,识别单元600对压缩编码数据流中的每个压缩编码数据对应的二进制数进行识别,并判断其是否具有标志位:若当前进行识别的二进制数不具有标志位,则将该二进制数划分为“不具有标志位的压缩编码数据”并输出给第一解码单元601;若当前进行识别的二进制数具有标志位,则将该二进制数划分为“具有标志位的压缩编码数据”并输出第二解码单元602。
第一解码单元601用于接收不具有标志位的压缩编码数据,并基于预先设置的第一解码方式对不具有标志位的压缩编码数据进行解码,输出与压缩编码数据对应的解码数据。可以理解的是,第一解码方式可以是前述第一编码方式的逆操作,在此不做赘述。
第二解码单元602用于接收具有标志位的压缩编码数据,并给予预先设置的第二解码方式对具有标志位的压缩编码数据进行解码,输出与压缩编码数据对应的解码数据。可以理解的是,第一解码方式可以是前述第一编码方式的逆操作,在此不做赘述。
在本申请的一些实施例中,根据前述图6所示的解码***,图7示出了一种解码方法,包括:
步骤701:接收压缩编码数据流。其中,压缩编码数据流可以是二进制数列,也可以是其他形式的数据内容,例如二进制多维数组等,在此不做限定。
步骤702:对压缩编码数据流进行划分,将压缩编码数据流划分为具有标志位的压缩编码数据和不具有标志位的压缩编码数据。
在本申请的一些实施例中,具有标志位的压缩编码数据可以对应于如图3所示的压缩编码方法中根据第二编码方式获得的压缩编码数据,不具有标志位的压缩编码数据可以对应于如图3所示的压缩编码方法中根据第一编码方式获得的压缩编码数据。
步骤703:对于不具有标志位的压缩编码数据,按照第一解码方式对压缩编码数据进行解码。可以理解的是,第一解码方式可以是前述第一编码方式的逆操作,在此不做赘述。
步骤704:对于具有标志位的压缩编码数据,按照第二编码方式对压缩编码数据进行解码。可以理解的是,第二解码方式可以是前述第二编码方式的逆操作,在此不做赘述。
步骤705:输出压缩编码数据流对应的解码数据流。解码数据流中的解码数据按照与之对应的压缩编码数据于压缩编码数据流中的排列顺序依次排列。
例如,设定一维数组中包含的原始数据均为处于[-127,127]范围内的十进制数,预设范围被设定为[-15,15],相应地标志位被设定为-16对应的二进制数“10000”。图4示出了在上述预设场景下,采用图7所示的解码方法,对于二进制数列“00110_00111_01000_10000_100000000_10000_01111111_10000_11110000_01001”进行解码的示意图。
如图4所示,针对上述二进制数列,可以将每五位二进制数视为一个十进制数进行依次进行识别和解码操作,并当识别到标志位“10000”的情况下,将之后的八位二进制数视为一个十进制数进行识别和解码操作。例如,依次识别获得“00110”、“00111”和“01000”对应的十进制数“6”、“7”、“8”之后,当识别到作为标志位的“10000”时,可以将之后的八位二进制数“100000000”进行识别转换为十进制数“-128”。
现在参考图8,所示为根据本申请的一个实施例的计算机800的硬件结构示意框图。
如图8所示,计算机800可以包括处理器810、无线通信模块820、移动通信模块830、电源模块840、音频模块850、接口模块860、摄像头870、存储器880、传感器模块890、按键801以及显示屏802等。
可以理解的是,本发明实施例示意的结构并不构成对计算机800的具体限定。在本申请另一些实施例中,计算机800可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器810可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP、微处理器MCU(Micro-programmed Control Unit)、AI(ArtificialIntelligence,人工智能)处理器或可编程逻辑器件FPGA(Field Programmable GateArray)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器810中可以设置存储单元,用于存储指令和数据。在一些实施例中,处理器810中的存储单元为高速缓冲存储器880。
无线通信模块820可以包括天线,并经由天线实现对电磁波的收发。无线通信模块820可以提供应用在计算机800上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(blue tooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。计算机800可以通过无线通信技术与网络以及其他设备进行通信。
移动通信模块830可以包括但不限于天线、功率放大器、滤波器、LNA(Low noiseamplify,低噪声放大器)等。移动通信模块830可以提供应用在计算机800上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块830可以由天线接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块830还可以对经调制解调处理器调制后的信号放大,经天线转为电磁波辐射出去。在一些实施例中,移动通信模块830的至少部分功能模块可以被设置于处理器810中。在一些实施例中,移动通信模块830至少部分功能模块可以与处理器810的至少部分模块被设置在同一个器件中。无线通信技术可以包括全球移动通讯***(globalsystem for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE),蓝牙(blue tooth,BT),全球导航卫星***(globalnavigation satellite system,GNSS),无线局域网(wireless local area networks,WLAN),近距离无线通信技术(near field communication,NFC),调频(frequencymodulation,FM)和/或field communication,NFC),红外技术(infrared,IR)技术等。所述GNSS可以包括全球卫星定位***(globalpositioning system,GPS),全球导航卫星***(global navigation satellite system,GLONASS),北斗卫星导航***(beidounavigation satellite system,BDS),准天顶卫星***(quasi-zenith satellitesystem,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
在一些实施例中,计算机800的移动通信模块830和无线通信模块820也可以位于同一模块中。
电源模块840可以包括电源、电源管理部件等。电源可以为电池。电源管理部件用于管理电源的充电和电源向其他模块的供电。在一些实施例中,电源管理部件包括充电管理模块和电源管理模块。充电管理模块用于从充电器接收充电输入;电源管理模块用于连接电源,充电管理模块与处理器810。电源管理模块接收电源和/或充电管理模块的输入,向处理器810,显示屏802,摄像头870,及无线通信模块820等供电。
音频模块850用于将数字音频信息转换成模拟音频信号输出,或者将模拟音频输入转换为数字音频信号。音频模块850还可以用于对音频信号编码和解码。在一些实施例中,音频模块850可以设置于处理器810中,或将音频模块850的部分功能模块设置于处理器810中。在一些实施例中,音频模块850可以包括扬声器、听筒、麦克风以及耳机接口。
接口模块860包括外部存储器接口、通用串行总线(universal serialbus,USB)接口及用户标识模块(subscriber identification module,SIM)卡接口等。其中外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展计算机800的存储能力。外部存储卡通过外部存储器接口与处理器810通信,实现数据存储功能。通用串行总线接口用于计算机800和其他电子设备进行通信。用户标识模块卡接口用于与安装至计算机800的SIM卡进行通信,例如读取SIM卡中存储的电话号码,或将电话号码写入SIM卡中。
摄像头870用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP(Image SignalProcessing,图像信号处理)转换成数字图像信号。计算机800可以通过ISP,摄像头870,视频编解码器,GPU(Graphic ProcessingUnit,图形处理器),显示屏802以及应用处理器等实现拍摄功能。
传感器模块890可以包括接近光传感器、压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
显示屏802用于显示人机交互界面、图像、视频等。显示屏802包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organiclight-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flexlight-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
在一些实施例中,计算机800还包括按键801、马达以及指示器等。其中,按键801可以包括音量键、开/关机键等。马达用于使计算机800产生振动效果,例如在用户的计算机800被呼叫的时候产生振动,以提示用户接听计算机800来电。指示器可以包括激光指示器、射频指示器、LED指示器等。
现在参考图9,所示为根据本申请的一个实施例的***1100的结构示意框图。
如图9所示,***1100可以包括一个或多个处理器1104,与处理器1104中的至少一个连接的***控制逻辑1108,与***控制逻辑1108连接的***内存1112,与***控制逻辑1108连接的非易失性存储器(NVM)1116,以及与***控制逻辑1108连接的网络接口1120。
在一些实施例中,处理器1104可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1104可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。处理器1104可以被配置为执行各种符合的实施例,例如,如图1-7所示的实施例。
在一些实施例中,***控制逻辑1108可以包括任意合适的接口控制器,以向处理器1104中的至少一个和/或与***控制逻辑1108通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,***控制逻辑1108可以包括一个或多个存储器控制器,以提供连接到***内存1112的接口。***内存1112可以用于加载以及存储数据和/或指令。在一些实施例中***1100的内存1112可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器1116可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机存储介质。在一些实施例中,NVM/存储器1116可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(DigitalVersatile Disc,数字通用光盘)驱动器中的至少一个。NVM/存储器1116可以包括安装***1100的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1120通过网络访问NVM/存储1116。
特别地,***内存1111和NVM/存储器1116可以分别包括:指令1124的暂时副本和永久副本。指令1124可以包括:由处理器1104中的至少一个执行时导致***1100实施如图1-10所示的功能的指令。在一些实施例中,指令1124、硬件、固件和/或其软件组件可另外地/替代地置于***控制逻辑1108,网络接口1120和/或处理器1104中。
网络接口1120可以包括收发器,用于为***1100提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1120可以集成于***1100的其他组件。例如,网络接口1120可以集成于处理器1104的,***内存1112,NVM/存储器1116,和具有指令的固件设备(未示出)中的至少一种,当处理器1104中的至少一个执行所述指令时,***1100实现如图1-10所示的功能。
网络接口1120可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1120可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器1104中的至少一个可以与用于***控制逻辑1108的一个或多个控制器的逻辑封装在一起,以形成***封装(SiP)。在一个实施例中,处理器1104中的至少一个可以与用于***控制逻辑1108的一个或多个控制器的逻辑集成在同一管芯上,以形成片上***(SoC)。
***1100可以进一步包括:输入/输出(I/O)设备1132。I/O设备1132可以包括用户界面,使得用户能够与***1100进行交互;***组件接口的设计使得***组件也能够与***1100交互。在一些实施例中,***1100还包括传感器,用于确定与***1100相关的环境条件和位置信息的至少一种。
根据本申请的实施例,图10示出了一种SoC(SystemonChip,片上***)1200的框图。在图10中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图10中,SoC 1200包括:互连单元1250,其被耦合至应用处理器1210;***代理单元1270;总线控制器单元1280;集成存储器控制器单元1240;一组或一个或多个协处理器1220,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1230;直接存储器存取(DMA)单元1260。在一个实施例中,协处理器1220包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何***。程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机存储介质分发。因此,机器存储介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器存储介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器存储介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而且,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、资源项或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、资源项或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、资源项或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (9)
1.一种压缩编码方法,其特征在于,包括:
获取待编码数据;
确定待编码数据所属的预设范围;
采用与确定的预设范围对应的编码方式对所述待编码数据进行二进制编码,其中,不同预设范围对应的编码方式进行二进制编码所采用的二进制位数不同。
2.根据权利要求1所述的方法,其特征在于,所述预设范围包括第一预设范围和第二预设范围,其中,所述第一预设范围的最大值和最小值的绝对值,均小于所述第二预设范围的最大值和最小值的绝对值。
3.根据权利要求2所述的方法,其特征在于,所述采用与确定的预设范围对应的编码方式对所述待编码数据进行二进制编码,包括:
采用第一编码方式对处于所述第一预设范围内的待编码数据进行二进制编码;
采用第二编码方式对处于所述第二预设范围内的待编码数据进行二进制编码;其中,
所述第二编码方式进行二进制编码所采用的二进制位数大于所述第一编码方式进行二进制编码所采用的二进制位数。
4.根据权利要求3中任一项所述的方法,其特征在于,所述待编码数据经过二进制编码得到的二进制数列的首位字符为表征所述待编码数据正负状态的符号位;并且
当所述待编码数据为正数时,所述符号位为0;
当所述待编码数据为正数时,所述符号位为1。
5.根据权利要求4所述的方法,其特征在于,所述采用第二编码方式对处于所述第二预设范围内的待编码数据进行二进制编码,还包括:
在所述符号位之前添加标志位;其中,所述标志位用于识别采用所述第二编码方式进行二进制编码得到的二进制序列。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述待编码数据为实时获取的在线数据的情况下,所述方法还包括:
基于上一处理周期内获取的所述待编码数据确定所述预设范围;其中,
所述处理周期对应于对指定数量的所述待编码数据进行二进制编码的时间跨度。
7.根据权利要求6所述的方法,其特征在于,所述在线数据包括实时获取的一维数组、多维数组或者采用RGB值表示的图像数据。
8.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至7中任一项所述的压缩编码方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时使所述计算机执行权利要求1至7中任一项所述的压缩编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110679049.4A CN113346911A (zh) | 2021-06-18 | 2021-06-18 | 压缩编码方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110679049.4A CN113346911A (zh) | 2021-06-18 | 2021-06-18 | 压缩编码方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113346911A true CN113346911A (zh) | 2021-09-03 |
Family
ID=77477406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110679049.4A Pending CN113346911A (zh) | 2021-06-18 | 2021-06-18 | 压缩编码方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113346911A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923262A (zh) * | 2021-10-28 | 2022-01-11 | 四川诺成科技有限公司 | 基于缓存的数据通信实时动态压缩方法 |
CN114125072A (zh) * | 2021-11-24 | 2022-03-01 | 中国银行股份有限公司 | 一种数据处理方法及装置 |
CN115955513A (zh) * | 2023-03-10 | 2023-04-11 | 湖南洛普洛科技有限公司 | 一种物联网数据优化传输方法 |
WO2023088021A1 (zh) * | 2021-11-18 | 2023-05-25 | 深圳智慧林网络科技有限公司 | 一种基于预设规则的数据压缩方法、装置、设备和介质 |
CN117155404A (zh) * | 2023-11-01 | 2023-12-01 | 青岛鼎信通讯股份有限公司 | 一种数据处理的方法、装置、电能表及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758756A (zh) * | 2005-11-03 | 2006-04-12 | 浙江大学 | 一种用于将待编码数据进行二进制化编码的方法和装置 |
CN1984336A (zh) * | 2005-12-05 | 2007-06-20 | 华为技术有限公司 | 一种二进制化方法及装置 |
CN103560803A (zh) * | 2013-11-18 | 2014-02-05 | 武汉大学 | 基于ovsf码的跳码直扩通信方法及*** |
CN104618729A (zh) * | 2007-06-14 | 2015-05-13 | 三星电子株式会社 | 用于对视频数据进行熵编码和熵解码的方法和设备 |
CN107483941A (zh) * | 2016-06-08 | 2017-12-15 | 上海天荷电子信息有限公司 | 划分取值范围进行串位移矢量编码的数据压缩方法和装置 |
CN110896483A (zh) * | 2018-09-12 | 2020-03-20 | 阿诺德和里克特电影技术公司 | 压缩和解压缩图像数据的方法 |
-
2021
- 2021-06-18 CN CN202110679049.4A patent/CN113346911A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758756A (zh) * | 2005-11-03 | 2006-04-12 | 浙江大学 | 一种用于将待编码数据进行二进制化编码的方法和装置 |
CN1984336A (zh) * | 2005-12-05 | 2007-06-20 | 华为技术有限公司 | 一种二进制化方法及装置 |
CN104618729A (zh) * | 2007-06-14 | 2015-05-13 | 三星电子株式会社 | 用于对视频数据进行熵编码和熵解码的方法和设备 |
CN103560803A (zh) * | 2013-11-18 | 2014-02-05 | 武汉大学 | 基于ovsf码的跳码直扩通信方法及*** |
CN107483941A (zh) * | 2016-06-08 | 2017-12-15 | 上海天荷电子信息有限公司 | 划分取值范围进行串位移矢量编码的数据压缩方法和装置 |
CN110896483A (zh) * | 2018-09-12 | 2020-03-20 | 阿诺德和里克特电影技术公司 | 压缩和解压缩图像数据的方法 |
Non-Patent Citations (2)
Title |
---|
何义辉: "基于小波变换的医学图像压缩技术的研究与应用", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
刘琳琳: "管道泄漏检测数据的压缩方法研究", 《中国优秀硕士学位论文全文数据库(工程科技Ⅰ辑)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923262A (zh) * | 2021-10-28 | 2022-01-11 | 四川诺成科技有限公司 | 基于缓存的数据通信实时动态压缩方法 |
CN113923262B (zh) * | 2021-10-28 | 2024-05-14 | 四川诺成科技有限公司 | 基于缓存的数据通信实时动态压缩方法 |
WO2023088021A1 (zh) * | 2021-11-18 | 2023-05-25 | 深圳智慧林网络科技有限公司 | 一种基于预设规则的数据压缩方法、装置、设备和介质 |
CN114125072A (zh) * | 2021-11-24 | 2022-03-01 | 中国银行股份有限公司 | 一种数据处理方法及装置 |
CN115955513A (zh) * | 2023-03-10 | 2023-04-11 | 湖南洛普洛科技有限公司 | 一种物联网数据优化传输方法 |
CN115955513B (zh) * | 2023-03-10 | 2023-05-05 | 湖南洛普洛科技有限公司 | 一种物联网数据优化传输方法 |
CN117155404A (zh) * | 2023-11-01 | 2023-12-01 | 青岛鼎信通讯股份有限公司 | 一种数据处理的方法、装置、电能表及介质 |
CN117155404B (zh) * | 2023-11-01 | 2024-02-09 | 青岛鼎信通讯股份有限公司 | 一种数据处理的方法、装置、电能表及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113346911A (zh) | 压缩编码方法、电子设备和存储介质 | |
US11190715B2 (en) | System and method for event camera data processing | |
CN111178546B (zh) | 机器学习模型的搜索方法及相关装置、设备 | |
US9524536B2 (en) | Compression techniques for dynamically-generated graphics resources | |
CN104915916A (zh) | 使用选择性色彩变换的色彩压缩 | |
US9323653B2 (en) | Apparatus and method for processing data | |
EP4328852A1 (en) | Method for expanding dynamic range of image and electronic device | |
CN112887608A (zh) | 图像处理方法、装置、图像处理芯片和电子设备 | |
CN117687772A (zh) | 一种算法调度方法及电子设备 | |
CN112203086A (zh) | 图像处理方法、装置、终端和存储介质 | |
CN110876062A (zh) | 用于特征图的高速压缩处理的电子设备及其控制方法 | |
CN116052701A (zh) | 一种音频处理方法及电子设备 | |
US10846142B2 (en) | Graphics processor workload acceleration using a command template for batch usage scenarios | |
CN113918246A (zh) | 功能控制方法、功能控制装置、存储介质与电子设备 | |
CN114793283A (zh) | 图像编码方法、图像解码方法、终端设备及可读存储介质 | |
CN113419702B (zh) | 一种数据累加方法、处理器、电子设备及可读介质 | |
CN113761464B (zh) | 数据处理方法、介质及电子设备 | |
CN116993619B (zh) | 图像处理方法及相关设备 | |
CN113596472B (zh) | 数据处理方法及装置 | |
CN117130765B (zh) | 计算资源的配置方法和电子设备 | |
CN115841098B (zh) | 基于数据识别的交互式批量填充方法与*** | |
CN116664630B (zh) | 一种图像处理方法和电子设备 | |
CN113127072B (zh) | 控制电子设备的显示器的方法及显示器控制装置 | |
CN116737097B (zh) | 一种投屏图像处理方法及电子设备 | |
CN114401405A (zh) | 一种视频编码方法、介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210903 |