掌桥专利:专业的专利平台
掌桥专利
首页

信息编码方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:45:49


信息编码方法、装置、电子设备及存储介质

技术领域

本公开涉及通信技术领域,尤其涉及一种信息编码方法、装置、电子设备及存储介质。

背景技术

随着通信技术的发展,出现了大量的APP(application,应用程序),通常为了满足用户社交需求以及提高访问流量,大部分的APP服务端都会主动向用户端推送各类消息。

相关技术中,为了方便评估消息的送达率,一般会在推送消息时附带上一些其它信息,比如消息编号、消息类别(例如点赞、评论等)、用户标识、版本编号等,从而在用户端的反馈信息中加入类似的信息。

然而,由于APP的用户端与服务端相互之间传输信息的大小受到严格限制,因此,如何在受限的情况下在传输信息中尽量多的放入需要的数据是亟需解决的问题。

发明内容

本公开提供一种信息编码方法、装置、电子设备及存储介质,以至少解决相关技术中因传输信息的大小受限而无法放入较多数据的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种信息编码方法,包括:

获取待推送信息,所述待推送信息中携带有分隔符;

基于所述分隔符对所述待推送信息进行分割,得到分割后的多个字符串;

基于预设的编码规则采用编码表中不同区域的编码内容对所述多个字符串分别进行编码,得到每一个字符串的编码信息;

对所述多个字符串分别对应的编码信息进行拼接,得到与所述待推送信息对应的目标编码信息;

向客户端推送所述目标编码信息,所述目标编码信息用于指示所述客户端返回对应的反馈信息。

在其中一个实施例中,向客户端推送所述目标编码信息之后,所述方法还包括:接收所述客户端返回的与所述目标编码信息对应的反馈信息;基于接收的反馈信息以及推送的目标编码信息,确定所述待推送信息的送达率。

在其中一个实施例中,所述基于预设的编码规则采用编码表中不同区域的编码内容对所述多个字符串分别进行编码,得到每一个字符串的编码信息,包括:对于所述多个字符串中的任意字符串,若所述任意字符串不为零,则根据预设值对所述任意字符串进行取模运算,得到取模后的第一余数值,所述预设值为预设编码表长度的一半,用于对所述任意字符串进行取模运算后,获得所述任意字符串对应的编码信息中最后一位编码对应于所述预设编码表中的区域范围;将所述预设编码表中与所述取模后的第一余数值对应位的下一位编码,作为所述任意字符串对应的编码信息中的最后一位编码;计算所述任意字符串与所述预设值之间的整数商,若所述整数商为零,则将所述最后一位编码确定为所述任意字符串的编码信息。

在其中一个实施例中,所述计算所述任意字符串与所述预设值之间的整数商之后,所述方法还包括:若所述整数商不为零,则将所述整数商赋值给对应的任意字符串;根据所述预设值对所述赋值进行取模运算,得到取模后的第二余数值;计算所述第二余数值与所述预设值的和,获取所述预设编码表中与所述和对应位的下一位编码;根据所述下一位编码更新所述任意字符串的编码信息;计算所述赋值与所述预设值之间的整数商;若所述整数商为零,则将更新后的编码信息确定为所述任意字符串的编码信息。

在其中一个实施例中,所述计算所述赋值与所述预设值之间的整数商之后,所述方法还包括:若所述整数商不为零,则重复上述将所述整数商赋值给对应的任意字符串的步骤,直到所述整数商为零时,将更新后的编码信息确定为所述任意字符串的编码信息。

在其中一个实施例中,所述根据所述下一位编码更新所述任意字符串的编码信息,包括:将所述下一位编码与所述最后一位编码进行拼接,将拼接后的信息确定为更新后的编码信息。

在其中一个实施例中,所述基于预设的编码规则采用编码表中不同区域的编码内容对所述多个字符串分别进行编码,得到每一个字符串的编码信息,包括:对于所述多个字符串中的任意字符串,若所述任意字符串为零,则将所述零确定为所述任意字符串的编码信息。

根据本公开实施例的第二方面,提供一种信息编码装置,包括:

信息获取模块,被配置为执行获取待推送信息,所述待推送信息中携带有分隔符;

分割模块,被配置为执行基于所述分隔符对所述待推送信息进行分割,得到分割后的多个字符串;

编码模块,被配置为执行基于预设的编码规则采用编码表中不同区域的编码内容对所述多个字符串分别进行编码,得到每一个字符串的编码信息

拼接模块,被配置为执行对所述多个字符串分别对应的编码信息进行拼接,得到与所述待推送信息对应的目标编码信息;

信息推送模块,被配置为执行向客户端推送所述目标编码信息,所述目标编码信息用于指示所述客户端返回对应的反馈信息。

在其中一个实施例中,所述装置还包括信息送达率确定模块,被配置为执行:接收所述客户端返回的与所述目标编码信息对应的反馈信息;基于接收的反馈信息以及推送的目标编码信息,确定所述待推送信息的送达率。

在其中一个实施例中,所述编码模块包括:第一运算单元,被配置为执行对于所述多个字符串中的任意字符串,若所述任意字符串不为零,则根据预设值对所述任意字符串进行取模运算,得到取模后的第一余数值,所述预设值为预设编码表长度的一半,用于对所述任意字符串进行取模运算后,获得所述任意字符串对应的编码信息中最后一位编码对应于所述预设编码表中的区域范围;编码确定单元,被配置为执行将所述预设编码表中与所述取模后的第一余数值对应位的下一位编码,作为所述任意字符串对应的编码信息中的最后一位编码;编码信息确定单元,被配置为执行计算所述任意字符串与所述预设值之间的整数商,若所述整数商为零,则将所述最后一位编码确定为所述任意字符串的编码信息。

在其中一个实施例中,所述编码信息确定单元还被配置为执行:若所述整数商不为零,则将所述整数商赋值给对应的任意字符串;根据所述预设值对所述赋值进行取模运算,得到取模后的第二余数值;计算所述第二余数值与所述预设值的和,获取所述预设编码表中与所述和对应位的下一位编码;根据所述下一位编码更新所述任意字符串的编码信息;计算所述赋值与所述预设值之间的整数商;若所述整数商为零,则将更新后的编码信息确定为所述任意字符串的编码信息。

在其中一个实施例中,所述编码信息确定单元还被配置为执行:若所述整数商不为零,则重复上述将所述整数商赋值给对应的任意字符串的步骤,直到所述整数商为零时,将更新后的编码信息确定为所述任意字符串的编码信息。

在其中一个实施例中,所述编码信息确定单元还被配置为执行:将所述下一位编码与所述最后一位编码进行拼接,将拼接后的信息确定为更新后的编码信息。

在其中一个实施例中,所述编码模块还被配置为执行:对于所述多个字符串中的任意字符串,若所述任意字符串为零,则将所述零确定为所述任意字符串的编码信息。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,使得电子设备执行第一方面的任一项实施例中所述的信息编码方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面的任一项实施例中所述的信息编码方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的信息编码方法。

本公开的实施例提供的技术方案至少带来以下有益效果:通过获取待推送信息,基于分隔符对待推送信息进行分割,得到分割后的多个字符串,基于预设的编码规则采用编码表中不同区域的编码内容对多个字符串分别进行编码,得到每一个字符串的编码信息,进而对多个字符串分别对应的编码信息进行拼接,以得到待推送信息进行压缩编码后的目标编码信息,并向客户端推送该目标编码信息。上述信息编码方法由于采用编码表中不同区域的编码内容对字符串进行编码,从而能够提高对待推送信息进行压缩编码的压缩效果,且在信息长度受限的情况下可以尽量多的放入需要的数据。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种信息编码方法的应用环境图。

图2是根据一示例性实施例示出的一种信息编码方法的流程图。

图3是根据另一示例性实施例示出的一种信息编码方法的流程图。

图4是根据一示例性实施例示出的对字符串进行编码步骤的流程图。

图5是根据另一示例性实施例示出的对字符串进行编码步骤的流程图。

图6是根据又一示例性实施例示出的对字符串进行编码步骤的流程图。

图7是根据一示例性实施例示出的一种信息编码装置的框图。

图8是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开所提供的信息编码方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行交互,服务器120可以主动向终端110推送各类消息,通常为了衡量和评价消息的送达率,会在推送消息时附带上一些其它信息,比如消息编号、消息类别(例如点赞、评论等)、用户标识、版本编号等,从而在终端110的反馈信息中加入类似的信息,以便于评估推送消息的送达率。又由于传统技术中终端110与服务器120之间相互传输信息的大小受到渠道商的严格限制,基于此,在本公开中,服务器120在向终端110在推送信息之前,可以先对待推送信息进行压缩编码处理,从而降低待推送信息的大小,使得可以在待推送信息中尽量多的放入需要的数据。其中,终端110可以是但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

图2是根据一示例性实施例示出的一种信息编码方法的流程图,如图2所示,以该方法应用于图1中的服务器为例进行说明,包括以下步骤。

在步骤S210中,获取待推送信息。

其中,待推送信息是服务器将要向终端进行推送的信息。具体的,待推送信息通常包括消息编号、消息类别(例如点赞、评论等)、用户标识、版本编号等。在本实施例中,由于待推送信息中包含了多种不同含义的信息,因此,为了提高对待推送信息的辨识度,通常在两个不同含义的信息之间通过分隔符连接。其中,分隔符可以是约定的特殊字符,如“-”或“.”等,且对于同一含义的信息中也可能存在分隔符,因此,待推送信息中通常携带有分隔符。例如,对于版本号为8.16.25.15的信息,其存在分隔符“.”。若某一待推送消息中包括的用户编号为11、版本号为8.16.25.15,则其对应的待推送信息可以为11-8.16.25.15。因此,在本实施例中,当服务端向终端推送待推送信息之前,可以采用下述步骤对待推送信息进行压缩编码处理。

在步骤S220中,基于分隔符对待推送信息进行分割,得到分割后的多个字符串。

由于传统的Base62编码技术是直接对数字进行编码,例如,对于上述待推送信息11-8.16.25.15(总长度为13),在采用Base62编码技术对其进行编码后的结果为b-8.g.p.f(总长度为9)。由此可知,在采用Base62编码技术进行压缩后,由于待推送信息中的分隔符占用了较大的比重,其长度只减少了30.78%,其压缩效果并不理想。基于此,在本实施例中,基于待推送信息中的分隔符对待推送信息进行分割,从而得到分割后的多个字符串,进而采用后续步骤对每一个字符串进行编码,并在编码过程中充分考虑分隔符的含义,并与字符串一起压缩,从而进一步提高了压缩效果。

在步骤S230中,基于预设的编码规则采用编码表中不同区域的编码内容对多个字符串分别进行编码,得到每一个字符串的编码信息。

其中,编码表是在编码过程中的参考依据,例如,编码表可以是现有的base62编码或base64编码等,也可以是对字母、数字以及符号按一定顺序进行编排后得到的编码表。编码表中不同区域的编码内容则是指记录于编码表中不同区域的字母、数字以及符号等,例如,编码表中第一页的编码内容是指记录在编码表第一页中的字母、数字以及符号,编码表中前50个编码内容是指记录在编码表中的前50个字母、数字以及符号。而后续的“进行编码”中的编码则是将信息从一种形式或格式转换为另一种形式的过程。编码信息则是对上述分割后的某一字符串采用编码表进行编码后得到的新的信息。本实施例中预设的编码规则是指具体采用编码表中的哪个区域的编码内容对字符串进行编码的规则。

在本实施例中,基于预设的编码规则通过采用编码表中不同区域的编码内容对某一字符串进行编码,使得得到的编码信息中最后一位编码与该编码信息中除最后一位编码之外的其他位编码分别来自于编码表中的不同区域,从而使得对某一字符串进行编码后的编码信息具有明确的结束位(即最后一位),即考虑了字符串与字符串之间分隔符的含义,且得到的编码结果中分隔符并不占用数据长度,从而在不影响对压缩后信息辨识的情况下提升了压缩效果。

在步骤S240中,对多个字符串分别对应的编码信息进行拼接,得到与待推送信息对应的目标编码信息。

其中,目标编码信息是指对待推送信息进行编码后得到的最终的压缩后的结果。具体地,通过上述步骤对待推送信息进行分割后得到的每一个字符串分别进行编码,从而得到每一个字符串的编码信息,进而依据每个字符串的顺序将其对应的编码信息按序进行拼接,从而得到拼接字符串,该拼接字符串则为对应待推送信息的目标编码信息,也即是对待推送信息进行压缩后的压缩结果。举例来说,以上述待推送信息为11-8.16.25.15(总长度为13)为例来说,在采用上述方法进行编码后,其得到的编码结果为b8gpf(总长度为9),其长度相较于原待推送信息的长度减少了60.54%,从而具有较好的压缩效果。

在步骤S250中,向客户端推送目标编码信息。

其中,目标编码信息用于指示客户端返回对应的反馈信息,而反馈信息则是客户端基于服务端的推送而生成并反馈的消息,其可以用于评估对应待推送信息的推送送达率。具体地,在本实施例中,当通过上述步骤得到与待推送信息对应的目标编码信息之后,则向客户端推送该目标编码信息,以使得客户端能够返回对应的反馈信息。

上述信息编码方法,通过获取待推送信息,基于分隔符对待推送信息进行分割,得到分割后的多个字符串,基于预设的编码规则采用编码表中不同区域的编码内容对多个字符串分别进行编码,得到每一个字符串的编码信息,进而对多个字符串分别对应的编码信息进行拼接,以得到对待推送信息进行压缩编码后的目标编码信息,并向客户端推送该目标编码信息。上述信息编码方法由于采用编码表中不同区域的编码内容对字符串进行编码,从而能够提高对待推送信息进行压缩编码的压缩效果,且在信息长度受限的情况下可以尽量多的放入需要的数据。

在一示例性实施例中,如图3所示,在向客户端推送目标编码信息之后,上述方法还包括如下步骤:

在步骤S260中,接收客户端返回的与目标编码信息对应的反馈信息。

其中,反馈信息是客户端基于服务端的推送而生成并向服务端反馈的消息,其可以用于服务端评估对应待推送信息的推送送达率。在本实施例中,当客户端接收到服务端的推送信息后,则可以生成与该推送信息对应的反馈信息,并将该反馈信息返回给服务端,因此,服务端可以接收到客户端返回的与目标编码信息对应的反馈信息。具体地,反馈信息可以是从服务端推送的消息中提取的,通常包括消息编号、消息类别(例如点赞、评论等)、用户标识、版本编号等。

在步骤S270中,基于接收的反馈信息以及推送的目标编码信息,确定待推送信息的送达率。

其中,送达率是接收信息的数量与发送信息的数量的比值。在本实施例中,待推送信息的送达率是指接收到待推送信息的数量与发送该待推送信息的数量的比值。由于待推送信息是由服务端发送的,因此,其发送信息的数量已知。又由于客户端接收到服务端的推送信息后,可以基于该推送信息生成反馈信息并返回给服务端,因此,服务端可以基于接收到反馈信息的数量来衡量客户端接收信息的数量。具体地,通过计算服务端接收到对待推送信息的反馈信息的数量与服务端发送待推送信息的数量的比值,可以得到待推送信息的送达率。

由于本申请中的待推送信息是通过压缩编码后发出,因此,其对应的反馈信息也可以采用同样的方式进行压缩编码,从而可以尽量多的放入需要的数据,以便于服务端可以进一步对数据进行分析处理,如可以更加方便、灵活地评估整体或某些场景下推送信息的送达效果。

在一示例性实施例中,如图4所示,在步骤S230中,基于预设的编码规则采用编码表中不同区域的编码内容对多个字符串分别进行编码,得到每一个字符串的编码信息,具体可以通过以下步骤实现:

在步骤S231中,对于多个字符串中的任意字符串,检测任意字符串是否为零。

需要说明的是,本实施例是为了说明对分割后的字符串进行编码的过程,可以理解的是,在对待推送信息进行分割时,可以记录分割的每一个字符串在待推送信息中的位置,进而在对每个字符串对应的编码信息进行拼接时,可以基于对应字符串在待推送信息中的位置而按序拼接。在本实施例中,当要对待推送信息中的任意字符串进行编码时,首先检测该字符串是否为零,若该字符串不为零,则执行步骤S232,若该字符串为零,则执行步骤S235。

在步骤S232中,若任意字符串不为零,则根据预设值对任意字符串进行取模运算,得到取模后的第一余数值。

其中,预设值为预设编码表长度的一半,用于对任意字符串进行取模运算后,获得任意字符串对应的编码信息中最后一位编码对应于预设编码表中的区域范围。例如,若预设编码表为base62编码,由于该编码表由10个数字、26个大写英文字母和26个小写英文字母组成,其长度一共为62个字节,则预设编码表长度的一半为31。在本实施例中,根据预设值对任意字符串进行取模运算,从而得到取模后的第一余数值,即得到字符串除以预设值的模,也即两者相除的余数值。由取模运算的定义可知,得到的余数是小于该预设值的,因此基于该余数值可以对应到预设编码表中前半部分的区域范围。

在步骤S233中,将预设编码表中与取模后的第一余数值对应位的下一位编码,作为任意字符串对应的编码信息中的最后一位编码。

在本实施例中,为了在编码过程中考虑到字符串与字符串之间的分隔符,因此,通过采用编码表中的不同区域的编码内容分别得到编码信息中的最后一位和其他位,从而使得对某一字符串进行编码后的编码信息具有明确的结束位(即最后一位),即考虑了字符串与字符串之间分隔符的含义。又由于在对字符串进行编码时,并不清楚该字符串对应的编码信息的长度,因此,在本实施例中,在编码过程中首先考虑分隔符的含义,即首先确定字符串对应的编码信息的最后一位。具体地,将预设编码表中与取模后的第一余数值对应位的下一位编码,作为任意字符串对应的编码信息中的最后一位编码。举例来说,若使用的预设编码表为(0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),其长度为62位,则预设值为其长度的一半即31,通过计算字符串除以预设值的模,即得到第一余数值,基于该第一余数值从预设编码表中确定字符串对应的编码信息的最后一位编码。例如,若得到的第一余数值为15,则将预设编码表中第16位(即第一余数值15的下一位)对应的编码作为字符串对应的编码信息的最后一位编码。

在步骤S234中,计算任意字符串与预设值之间的整数商,若整数商为零,则将最后一位编码确定为任意字符串的编码信息。

具体地,通过上述步骤得到字符串对应的编码信息的最后一位编码后,则进一步确定是否需要对该字符串进行多轮编码,即确定该字符串对应的编码信息是否存在多位。在本实施例中,通过计算该字符串与预设值之间的整数商,即将该字符串除以预设值,得到对应的整数商,若整数商为零,则表示不需要对该字符串进行多轮编码,也即确定该字符串对应的编码信息只有一位,因此,可以将上述得到的最后一位编码确定为该字符串的编码信息,即完成对该字符串的编码。

在步骤S235中,若任意字符串为零,则将零确定为任意字符串的编码信息。

具体地,在本实施例中,对于为零的字符串,则其对应的编码信息同样为零。

上述实施例中,在对字符串进行编码时,通过检测字符串是否为零,若字符串为零,则将零确定为该字符串的编码信息;若字符串不为零,则根据预设值对任意字符串进行取模运算,得到取模后的第一余数值,并将预设编码表中与取模后的第一余数值对应位的下一位编码,作为该字符串对应的编码信息中的最后一位编码,进而计算该字符串与预设值之间的整数商,若整数商为零,则将最后一位编码确定为该字符串的编码信息。由于其在编码过程中充分考虑了字符串与字符串之间分隔符的含义,且将分隔符的含义与字符串一起进行编码,从而极大的提高了编码的压缩效果。

在一个实施例中,如图5所示,在步骤S234中,计算任意字符串与预设值之间的整数商之后,上述方法还包括如下步骤:

在步骤S510中,若整数商不为零,则将整数商赋值给对应的任意字符串。

具体地,若整数商不为零,则表示还需要对该字符串进行多轮编码,也即可以确定该字符串对应的编码信息存在多位。又由于通过上述步骤已经得到了该字符串对应的编码信息中的最后一位编码,因此,可以进一步确定该字符串对应的编码信息中的其他位编码。在本实施例中,若字符串除以预设值得到的整数商不为零,则将该整数商赋值给对应的字符串,以进一步进行编码。

在步骤S520中,根据预设值对赋值进行取模运算,得到取模后的第二余数值。

具体地,根据预设值对赋值进行取模运算,得到取模后的第二余数值,即得到赋值除以预设值的模,也即两者相除的余数值。在本实施例中,为了区分原字符串除以预设值的模以及赋值除以预设值的模,将原字符串除以预设值的模定义为第一余数值,将赋值除以预设值的模定义为第二余数值。

在步骤S530中,计算第二余数值与预设值的和,获取预设编码表中与和对应位的下一位编码。

由于预设值是预设编码表长度的一半,且由上述实施例可知,基于第一余数值确定的字符串对应的编码信息中的最后一位编码,取自于预设编码表中的前半部分区域。因此,在本实施例中,字符串对应的编码信息中除最后一位编码的其他位编码则由预设编码表中后半部分区域中的编码内容确定。具体地,通过计算第二余数值与预设值的和,获取预设编码表中与和对应位的下一位编码。举例来说,若预设值为31,得到的第二余数值为15,则获取预设编码表中第47(即15+31+1)位(即第二余数值与预设值的和的下一位)对应的编码。

在步骤S540中,根据下一位编码更新任意字符串的编码信息。

其中,编码信息是指对字符串进行编码过程中得到的中间结果,由于字符串对应的最终编码信息有多位时,而每一次编码只能得到其中的一位编码,因此,在每得到一位编码后可以对该字符串的编码信息进行更新。具体地,由于通过图4所示的方法已经得到了字符串对应的编码信息中的最后一位编码,而通过上述步骤又得到了该字符串对应的编码信息中其他位的一位编码,因此,将上述步骤得到的编码(即预设编码表中与和对应位的下一位编码)与该字符串对应的编码信息中的最后一位编码进行拼接,即得到更新后的编码信息。举例来说,若得到某一字符串对应的编码信息中的最后一位编码为1,通过上述步骤得到该字符串对应的编码信息中其他位的第一位编码为2,则更新该字符串对应的编码信息为21。

在步骤S550中,计算赋值与预设值之间的整数商。

具体地,通过计算赋值与预设值之间的整数商,从而可以进一步确定是否需要对该字符串进行下一轮编码。具体来说,若赋值与预设值之间的整数商为零,则表示不需要对该字符串进行下一轮编码;若赋值与预设值之间的整数商不为零,则表示还需要对该字符串进行下一轮编码。

在步骤S560中,若整数商为零,则将更新后的编码信息确定为任意字符串的编码信息。

具体地,若赋值与预设值之间的整数商为零,则表示不需要对该字符串进行下一轮编码,因此,可以将上述更新后的编码信息确定为对应字符串的编码信息,即得到该字符串对应的最终编码信息。

若整数商不为零,则重复执行上述步骤S510至步骤S550,直到计算得到的整数商为零时,将更新后的编码信息确定为任意字符串的编码信息。

上述实施例中,由于在编码过程中充分考虑了字符串与字符串之间分隔符的含义,且将分隔符的含义与字符串一起进行编码,即通过预设编码表中的不同区域的编码内容得到编码信息中的最后一位编码和其他位编码,从而极大的提高了编码的压缩效果。

在一个实施例中,如图6所示,以下通过一个具体的实施例进一步说明对字符串进行编码而得到编码信息的具体编码过程,在本实施例中,以待编码字符串为m,预设编码表为下述内容为例进行说明,预设编码表为:(0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),其长度为62位,则预设值为其长度的一半即31。其编码过程具体包括如下步骤:

步骤602,获取待编码字符串m。

步骤604,判断待编码字符串m是否等于0。

步骤606,若待编码字符器m等于0,则将0作为m的编码信息。

步骤608,若m不等于0,则计算m除以31的第一余数。

当m不等于0时,则开始对m进行编码,首先计算m除以31的余数,并将结果赋值给函数index,即index=m%31。

步骤610,判断是否为对m的第一轮编码。

即确定编码时所参考预设编码表中的具体区域的编码内容,也即确定是否为对m对应的编码信息中的最后一位进行编码。

步骤612,若是对m的第一轮编码,则通过第一方式确定本轮编码得到的值c。

具体地,若是对m的第一轮编码,则从预设编码表中查找第(index+1)个字符,将该字符作为本轮编码得到的值c,即得到m对应的编码信息中的最后一位编码,也即m对应的编码信息中的最后一位编码从预设编码表中的前半部分的编码内容中确定。

步骤614,若不是对m的第一轮编码,则通过第二方式确定本轮编码得到的值c。

具体地,若不是对m的第一轮编码,则更新上述确定的index(上述index=m%31),则更新后的index=index+31,即新的index=m%31+31。则本轮编码得到的值c为从预设编码表中查找第(index+1)个字符,即将第(m%31+31+1)个字符作为本轮编码得到的值c,即得到m对应的编码信息中除最后一位编码的其他位编码,也即m对应的编码信息中的其他位编码从预设编码表中的后半部分的编码内容中确定,其与编码信息中最后一位编码所在区域的编码内容不同。也即在编码过程中考虑了字符串与字符串之间分隔符的含义,从而进一步提高了编码压缩效果。

步骤616,基于c更新m的编码信息。

在本实施例中,假设m的编码信息为rst,其初始值为空值,上述第一轮编码得到的值为c,则基于c更新m的编码信息,得到新的编码信息rst为c。举例来说,当存在多轮编码时,若第一轮的编码结果c为1,则本轮更新的编码信息rst为1,若第二轮得到的编码结果为2,则本轮更新的编码信息rst为21,若第三轮得到的编码结果为3,则本轮更新的编码信息rst为321。

步骤618,计算m除以31的整数商。

即进一步确定是否需要对该字符串m进行多轮编码,即确定字符串m对应的编码信息是否存在多位。在本实施例中,通过计算字符串m与预设值31之间的整数商,即将该m除以31,得到对应的整数商,若整数商为零,则表示不需要对字符串m进行多轮编码,若整数商不为零,则表示需要对字符串m进行多轮编码,因此,进一步确定该整数商是否为零。

步骤620,判断整数商是否为零。

若整数商为零,也即确定字符串m对应的编码信息只有一位,则执行步骤622,将上述得到的最后一位编码确定为该字符串的编码信息,也即将上述更新的编码信息rst确定为该字符串的编码信息,即完成对该字符串的编码。若整数商不为零,则确定字符串m对应的编码信息不止一位,则执行步骤624,将该整数商赋值给该字符串m,并进行下一轮的编码。

步骤622,将最后一位编码确定为该字符串的编码信息。

步骤624,将该整数商赋值给字符串m,并返回执行步骤604进行下一轮的编码。直到计算得到的整数商为零时,将更新后的编码信息rst确定为字符串m的编码信息。

上述实施例中,在对待推送信息进行编码压缩过程中,由于考虑了字符串与字符串之间分隔符的含义,因此,将与字符串对应的编码信息中最后一位编码位于预设编码表中所在的区域范围与其他位编码位于预设编码表中所在的区域范围设置为不同,从而极大地提高了编码压缩效果。

应该理解的是,虽然图1-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

图7是根据一示例性实施例示出的一种待推送信息处理装置框图。参照图7,该装置包括信息获取模块702,分割模块704、编码模块706、拼接模块708和信息推送模块710。

信息获取模块702,被配置为执行获取待推送信息,所述待推送信息中携带有分隔符;

分割模块704,被配置为执行基于所述分隔符对所述待推送信息进行分割,得到分割后的多个字符串;

编码模块706,被配置为执行基于预设的编码规则采用编码表中不同区域的编码内容对所述多个字符串分别进行编码,得到每一个字符串的编码信息

拼接模块708,被配置为执行对所述多个字符串分别对应的编码信息进行拼接,得到与所述待推送信息对应的目标编码信息;

信息推送模块710,被配置为执行向客户端推送所述目标编码信息,所述目标编码信息用于指示所述客户端返回对应的反馈信息。

在一示例性实施例中,所述装置还包括:信息送达率确定模块,被配置为执行接收所述客户端返回的与所述目标编码信息对应的反馈信息;基于接收的反馈信息以及推送的目标编码信息,确定所述待推送信息的送达率。

在一示例性实施例中,所述编码模块包括:第一运算单元,被配置为执行对于所述多个字符串中的任意字符串,若所述任意字符串不为零,则根据预设值对所述任意字符串进行取模运算,得到取模后的第一余数值,所述预设值为预设编码表长度的一半,用于对所述任意字符串进行取模运算后,获得所述任意字符串对应的编码信息中最后一位编码对应于所述预设编码表中的区域范围;编码确定单元,被配置为执行将所述预设编码表中与所述取模后的第一余数值对应位的下一位编码,作为所述任意字符串对应的编码信息中的最后一位编码;编码信息确定单元,被配置为执行计算所述任意字符串与所述预设值之间的整数商,若所述整数商为零,则将所述最后一位编码确定为所述任意字符串的编码信息。

在一示例性实施例中,所述编码信息确定单元还被配置为执行:若所述整数商不为零,则将所述整数商赋值给对应的任意字符串;根据所述预设值对所述赋值进行取模运算,得到取模后的第二余数值;计算所述第二余数值与所述预设值的和,获取所述预设编码表中与所述和对应位的下一位编码;根据所述下一位编码更新所述任意字符串的编码信息;计算所述赋值与所述预设值之间的整数商;若所述整数商为零,则将更新后的编码信息确定为所述任意字符串的编码信息。

在一示例性实施例中,所述编码信息确定单元还被配置为执行:若所述整数商不为零,则重复上述将所述整数商赋值给对应的任意字符串的步骤,直到所述整数商为零时,将更新后的编码信息确定为所述任意字符串的编码信息。

在一示例性实施例中,所述编码信息确定单元还被配置为执行:将所述下一位编码与所述最后一位编码进行拼接,将拼接后的信息确定为更新后的编码信息。

在一示例性实施例中,所述编码模块还被配置为执行:对于所述多个字符串中的任意字符串,若所述任意字符串为零,则将所述零确定为所述任意字符串的编码信息。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图8是根据一示例性实施例示出的一种用于信息编码设备Z00的框图。例如,设备Z00可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。

参照图8,设备Z00可以包括以下一个或多个组件:处理组件Z02、存储器Z04、电源组件Z06、多媒体组件Z08、音频组件Z10、输入/输出(I/O)的接口Z12、传感器组件Z14以及通信组件Z16。

处理组件Z02通常控制设备Z00的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件Z02可以包括一个或多个处理器Z20来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件Z02可以包括一个或多个模块,便于处理组件Z02和其他组件之间的交互。例如,处理组件Z02可以包括多媒体模块,以方便多媒体组件Z08和处理组件Z02之间的交互。

存储器Z04被配置为存储各种类型的数据以支持在设备Z00的操作。这些数据的示例包括用于在设备Z00上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器Z04可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘。

电源组件Z06为设备Z00的各种组件提供电力。电源组件Z06可以包括电源管理系统,一个或多个电源,及其他与为设备Z00生成、管理和分配电力相关联的组件。

多媒体组件Z08包括在所述设备Z00和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件Z08包括一个前置摄像头和/或后置摄像头。当设备Z00处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件Z10被配置为输出和/或输入音频信号。例如,音频组件Z10包括一个麦克风(MIC),当设备Z00处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器Z04或经由通信组件Z16发送。在一些实施例中,音频组件Z10还包括一个扬声器,用于输出音频信号。

I/O接口Z12为处理组件Z02和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件Z14包括一个或多个传感器,用于为设备Z00提供各个方面的状态评估。例如,传感器组件Z14可以检测到设备Z00的打开/关闭状态,组件的相对定位,例如所述组件为设备Z00的显示器和小键盘,传感器组件Z14还可以检测设备Z00或设备Z00一个组件的位置改变,用户与设备Z00接触的存在或不存在,设备Z00方位或加速/减速和设备Z00的温度变化。传感器组件Z14可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件Z14还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件Z14还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。

通信组件Z16被配置为便于设备Z00和其他设备之间有线或无线方式的通信。设备Z00可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件Z16经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件Z16还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,设备Z00可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器Z04,上述指令可由设备Z00的处理器Z20执行以完成上述方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行如上所述的信息编码方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 信息编码方法、装置、电子设备及存储介质
  • 化学品信息编码方法、装置、计算机可读存储介质及电子设备
技术分类

06120113043499