CN118174737A - 基于语义的哈夫曼编码方法、译码方法及相关设备 - Google Patents
基于语义的哈夫曼编码方法、译码方法及相关设备 Download PDFInfo
- Publication number
- CN118174737A CN118174737A CN202410090669.8A CN202410090669A CN118174737A CN 118174737 A CN118174737 A CN 118174737A CN 202410090669 A CN202410090669 A CN 202410090669A CN 118174737 A CN118174737 A CN 118174737A
- Authority
- CN
- China
- Prior art keywords
- synonymous
- sequence
- coding
- information
- huffman
- 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
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000013507 mapping Methods 0.000 claims abstract description 65
- 108091026890 Coding region Proteins 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000003860 storage Methods 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 23
- 230000006835 compression Effects 0.000 abstract description 23
- 238000007906 compression Methods 0.000 abstract description 23
- 230000008569 process Effects 0.000 abstract description 15
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本申请提供一种基于语义的哈夫曼编码方法、译码方法及相关设备,响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合。根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段。根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列,将对同义集合进行编码得到的编码序列替换传统哈夫曼编码方法,能够有效压缩编码序列的平均码长,提升编码过程中的压缩效率,继而提升编码序列的传输效率,有利于进一步提升通信技术的效率。将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于语义的哈夫曼编码方法、译码方法及相关设备。
背景技术
随着未来通信场景对超高速率传输的要求逐渐提升,如何对大量数据进行高效的压缩并可靠传输成为了目前通信技术的研究重点。然而,由于经典信息论的对于信息的描述是基于符号概率,即语法信息,因此其信源编码压缩的理论极限对应为语法信息的压缩极限。在该压缩极限下,无法进一步提升信源编码压缩效率,限制了通信技术的发展。
发明内容
有鉴于此,本申请的目的在于提出一种基于语义的哈夫曼编码方法、译码方法及相关设备,以进一步提升信源编码压缩效率。
基于上述目的,本申请的第一方面提供了一种基于语义的哈夫曼编码方法,应用于发送端,所述方法包括:
响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合;
根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段;
根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列;
将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码。
可选的,所述基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合,包括:
基于所述码字的语义信息,在所述同义映射码本中查询与所述语义信息对应的同义集合作为所述码字对应的同义集合,其中,在所述同义映射码本中,所述语义信息与所述同义集合具有一一对应关系。
可选的,在基于预先构建的同义映射码本对所述码字进行同义映射之前,所述方法包括:
根据所述信源的最小符号语法单元对所述信息序列进行分割处理。
可选的,构建所述同义映射码本,包括:
获取所述信源的全部信源符号,按照所述信源符号的语义信息对全部信源符号进行分类,将具有相同语义信息的信源符号组合为一个同义集合,基于所述信源符号与所述同义集合的映射关系构建所述同义映射码本。
可选的,构建所述语义哈夫曼码本,包括:
获取所述信源符号的先验概率;
基于所述先验概率计算得到所述同义集合的总概率;
将所述同义集合作为叶子节点,基于所述同义集合的总概率,采用哈夫曼树的构建方法构建哈夫曼树;
基于所述哈夫曼树,确定所述同义集合对应的编码字段;
基于所述同义集合与所述编码字段的对应关系构建所述语义哈夫曼码本。
可选的,所述基于所述先验概率计算得到所述同义集合的总概率,包括:
将所述同义集合中包含的所有信源符号的先验概率之和作为所述同义集合的总概率。
本申请的第二方面还提供了一种基于语义的哈夫曼译码方法,应用于接收端,所述方法包括:
响应于接收到发送端发送的编码序列,基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列;
从所述同义集合序列的每个同义集合中按照预设抽取方式抽取一个信源符号作为目标信源符号;
按照所述同义集合序列中同义集合的顺序,将所述目标信源符号依次排序得到所述编码序列对应的译码序列。
可选的,所述基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列,包括:
逐个读取所述编码序列中的每个编码,基于所述哈夫曼码本依次确定与已读取的编码字段对应的同义集合;
响应于所述编码序列读取完成后,按照依次确定的顺序将全部同义集合排序形成所述同义集合序列。
本申请的第三方面还提供了一种基于语义的哈夫曼编码装置,应用于发送端,包括:
第一确定模块,被配置为响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合;
第二确定模块,被配置为根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段;
编码模块,被配置为根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列;
发送模块,被配置为将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码。
本申请的第四方面还提供了一种基于语义的哈夫曼译码装置,应用于接收端,包括:
第三确定模块,被配置为响应于接收到发送端发送的编码序列,基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列;
抽取模块,被配置为从所述同义集合序列的每个同义集合中按照预设抽取方式抽取一个信源符号作为目标信源符号;
译码模块,被配置为按照所述同义集合序列中同义集合的顺序,将所述目标信源符号依次排序得到所述编码序列对应的译码序列。
本申请的第五方面还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如第一方面或第二方面所述的方法。
本申请的第六方面还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面或第二方面所述的方法。
本申请的第七方面还提供一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得所述计算机执行如第一方面或第二方面所述的方法。
从上面所述可以看出,本申请提供的基于语义的哈夫曼编码方法、译码方法及相关设备,响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合。根据语义将每个码字与同义集合进行关联,同义集合中包含的每个码字的语义均相同。根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段,每个同义集合对应一个编码字段,也即编码过程中同义集合中的每个码字对应的编码字段均相同。根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列,将对同义集合进行编码得到的编码序列替换传统哈夫曼编码方法,能够有效压缩编码序列的平均码长,提升编码过程中的压缩效率,继而提升编码序列的传输效率,有利于进一步提升通信技术的效率。将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码,得到的译码序列保留了信息序列的语义,确保传输过程不失真。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的基于语义的哈夫曼编码方法的流程示意图;
图2为本申请实施例的语义信息空间与语法信息空间的对应关系示意图;
图3为本申请实施例的构建语义哈夫曼码本的流程示意图;
图4为本申请实施例的构建哈夫曼树的过程示意图;
图5为本申请实施例的哈夫曼树的结构示意图;
图6为本申请另一实施例的基于语义的哈夫曼译码方法的流程示意图;
图7为本申请实施例的基于语义的哈夫曼编码装置的结构示意图;
图8为本申请另一实施例的基于语义的哈夫曼编码装置的结构示意图;
图9为本申请的电子设备硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术所述,随着未来通信场景对超高速率传输的要求逐渐提升,如何对大量数据进行高效的压缩并可靠传输成为了目前通信技术的研究重点。香农在1948年提出了经典信息论。在经典信息论中,香农引入了熵的概念,提出了在理论上达到的信息压缩极限,即通过编码来减少信息传输所需的平均比特数。此后,众多基于经典信息论的编码方案被设计使用。
信源编码技术是支持对信源进行高效压缩的重要技术。其中,无损信源编码的目标是在不损失原始数据信息的情况下减小数据的存储或传输需求。这种编码方法通常应用于数字音频、图像或文本等领域。对于离散信源的无损信源编码,通常采用的是熵编码方法。熵编码是一种根据符号出现概率分布进行编码的技术,其目标是使出现概率高的符号获得较短的编码,从而达到对数据的高效压缩。其中,哈夫曼编码是熵编码的一种特例。该算法主要用于将字符或符号按照它们在待压缩数据中出现的频率进行编码,以实现对数据的高效压缩。哈夫曼编码通过给频繁出现的符号分配较短的编码,以及给不太频繁出现的符号分配较长的编码,来实现对数据的高效编码。传统的哈夫曼编码的理论压缩极限为香农熵。对于有限长的消息,哈夫曼编码通常可以在实践中达到香农限。
随着语义通信技术的发展,越来越多的研究表明,在实际的通信场景下,引入语义域信息处理的语义通信方法能够获得比现有信源编码方法更高效的信源压缩方案。新提出的语义信息论将语义信息与语法信息之间的关系描述为一个一对多的函数映射关系。基于此发展出的语义信源编码定理证明了使用语义信源压缩编码可以获得比传统信源编码方案更高效的信源压缩编码方案。这说明,在信源压缩中引入语义信息论可以在不影响重建质量的前提下进一步对信源进行压缩。因此,基于语义信息论的语义哈夫曼编码具有比传统哈夫曼编码更高的压缩效率,有潜力成为高效率信源压缩问题的重要解决方法。
有鉴于此,本申请提出了一种基于语义的哈夫曼编码方法和译码方法,通过语义信息论指导,令发送端与接收端获取相同的同义集合,通过同义集合构建起语义与语法之间的联系。根据不同同义集合的先验概率构造语义哈夫曼码本。在发送端根据语义哈夫曼码本对信源符号序列进行编码。在接收端根据语义哈夫曼码本对编码符号序列进行译码,最终得到译码的信源序列。
需要说明的是,一般而言在进行信源编码时多使用二进制编码,因此在本申请中主要针对基于二进制编码的语义哈夫曼编码进行描述。若涉及多进制编码,则可在本申请的基础上进行简要变化即可。
以下结合附图来详细说明本申请的实施例。
本申请实施例提出了一种基于语义的哈夫曼编码方法,应用于发送端,参考图1,所述方法包括以下步骤:
步骤102、响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合。
具体的,信源是产生各类信息的实体。信源给出的符号是不确定的,可用随机变量及其统计特性描述。信息是抽象的,信源则是具体的。例如,人们交谈,人的发声系统就是语声信源;人们看书、读报,被光照的书和报纸本身就是文字信源;常见的信源还有图像信源、数字信源等等。当发送端接收到信源发送的信息序列后,需要对信息序列中的每个码字进行同义映射,也即将具有相同含义的码字映射到一个同义集合中。首先需要确定每个码字的语义信息,所述码字是信源对应的所有信源符号之一,以及每个同义集合的语义信息,将码字的语义信息与同义集合的语义信息进行比对,若相同,则将码字映射至该同义集合中。其中,同义码本是预先构建的,同义码本中规定了同义集合与语义信息一一对应关系,通过语义信息可以唯一确定一个同义集合。
在一具体示例中,信源发送的信息序列记作u=[u1,…,ui…,uM],ui表示第i个码字,信息序列长度为M。遍历信息序列中的每个码字ui,根据同义映射确定对应的同义集合完成对所述码字的映射后,得到了同义集合序列序列长度为M。
步骤104、根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段。
在本实施例中,语义哈夫曼码本是预先构建的,语义哈夫曼码本规定了同义集合与编码字段的一一对应关系。当确定了同义集合后,通过语义哈夫曼码本可以查询到与该同义集合唯一对应的编码字段。在一具体示例中,遍历同义集合序列U0,对于U0中的每个同义集合根据语义哈夫曼码本映射得到编码字段/>映射关系记为/>
步骤106、根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列。
确定了同义集合对应的编码字段后,也即确定了码字对应的编码字段,根据码字在信息序列中的顺序,将编码字段依次排列得到编码序列。也即将全部编码字段按顺序组合得到编码序列b,发送端完成对于信息序列的编码。相比于传统哈夫曼编码逐个对码字进行编码,本实施例中对码字映射得到的同义集合进行编码,能够缩短平均码长,实现对于编码字段的进一步压缩,提升编码的压缩效率,进而提升编码序列的传输效率。
步骤108、将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码。
发送端完成编码后,将编码序列发送至接收端,以使接收端对编码序列进行译码,译码后得到语义不失真的译码序列。译码过程也是根据语义哈夫曼码本进行译码。接收端逐个读取编码序列中的编码,遍历语义哈夫曼码本包含的编码字段,找到与已读取的编码相同的编码字段,并确定对应的同义集合。从同义集合中按照一定规则抽取一个信源符号作为编码字段对应的译码字段,将全部译码字段按顺序组合得到译码序列。
基于上述步骤102至步骤108,本实施例提供的基于语义的哈夫曼编码方法,包括响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合。根据语义将每个码字与同义集合进行关联,同义集合中包含的每个码字的语义均相同。根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段,每个同义集合对应一个编码字段,也即编码过程中同义集合中的每个码字对应的编码字段均相同。根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列,将对同义集合进行编码得到的编码序列替换传统哈夫曼编码方法,能够有效压缩编码序列的平均码长,提升编码过程中的压缩效率,继而提升编码序列的传输效率,有利于进一步提升通信技术的效率。将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码,得到的译码序列保留了信息序列的语义,确保传输过程不失真。
在一些实施例中,所述基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合,包括:
基于所述码字的语义信息,在所述同义映射码本中查询与所述语义信息对应的同义集合作为所述码字对应的同义集合,其中,在所述同义映射码本中,所述语义信息与所述同义集合具有一一对应关系。
具体的,确定码字的语义信息,在同义映射码本中找到该语义信息,并将语义信息对应的同义集合作为码字对应的同义集合,映射关系表示为语义信息与同义集合具有一一对应关系,同义集合中的所有信源符号均具有相同的语义信息。通过本实施例中的方法可以快速确定码字对应的同义集合,提升编码速度。
在一些实施例中,在基于预先构建的同义映射码本对所述码字进行同义映射之前,所述方法包括:根据所述信源的最小符号语法单元对所述信息序列进行分割处理。
具体的,对码字进行同义映射之前,需要对信息序列中的信息进行分割以得到码字。示例性的,若信源序列为一段英文文本,最小符号语法单元则为英文单词,将英文文本分割为一个个英文单词,将每个英文单词作为一个码字。若信源序列是一段无规则的英文字母序列,则最小符号语法单元则为英文字母,将英文字母序列分割为一个个英文字母,将每个英文字母作为一个码字。通过本实施例的方法可以将信息序列进行有效分割,便于后续对于信息序列进行编码。
在一些实施例中,构建所述同义映射码本,包括:
获取所述信源的全部信源符号,按照所述信源符号的语义信息对全部信源符号进行分类,将具有相同语义信息的信源符号组合为一个同义集合,基于所述信源符号与所述同义集合的映射关系构建所述同义映射码本。
具体的,在构建同义映射码本时,需要获取信源的全部信源符号,按照每个信源符号的语义信息对信源符号进行分类,将具有相同语义信息的信源符号划分至一个同义集合中,也即在一个同义集合中包含的所有信源符号具有相同的语义信息。如果一个信源符号没有对应的相同语义信息的其他信源符号,则将该信源符号单独划分为一个同义集合。将全部信源符号划分结束后,基于每个信源符号与同义集合之间的映射关系构建同义映射码本。
图2示出了语义信息空间与语法信息空间的对应关系图,如图2所示,语义信息空间中包含了6种不同的语义信息,具体包括v1、v2、v3、v4、v5、v6。语法信息空间中包含6个不同的同义子集,具体包括U1、U2、U3、U4、U5、U6,每个同义子集包含若干个信源符号,每个同义子集对应一个语义信息,根据语义信息将与v1与U1建立映射,将v2与U2建立映射关系,将v3与U3建立映射关系,将v4与U4建立映射关系,将v5与U5建立映射关系,将v6与U6建立映射关系。
在一具体示例中,从信源获取全部信源符号,并对全部信源符号编号排列,组成信源符号集合其中,Ni表示信源符号的数量。构建同义集合序列U,U中包含多个同义集合/>is表示同义集合的序号。对全部信源符号按照语义进行分类的过程如下:
1)初始化同义集合序列U为空,并初始化变量j=1;
2)对于信源符号uxi,对当前的同义集合序列U进行遍历,如果在U中存在与信源符号的语义信息相同的同义集合则将信源符号uxi划分至同义集合/>中,并结束遍历,将变量j加1;
3)如果在U中不存在与信源符号的语义信息相同的同义集合,则将信源符号单独分配至一个空的同义集合中,并将此同义集合放置在同义集合序列U的末尾,将变量j加1;
4)判断j是否小于Ni,若小于则返回步骤2),否则结束流程。
通过上述步骤1)至步骤4),完成对全部信源符号的分类,将当前的同义集合序列的长度记为每个同义集合中至少包含一个信源符号,不同同义集合之间互不相交,所有同义集合的并集与全部信源符号相同,即
在一些实施例中,参考图3,构建所述语义哈夫曼码本,包括以下步骤:
步骤202、获取所述信源符号的先验概率。
具体的,信源符号的先验概率分布可以通过统计分析获取。通过对大量的数据进行统计分析,可以估计信源中每个符号的出现频率。这种方法适用于已有大量样本的情况,例如文本、图像、音频等。通过对数据进行统计,可以得到每个信源符号的相对频率,从而估计其概率分布。此外,在某些情况下,可以使用概率模型对信源的分布进行拟合。例如,使用高斯分布、泊松分布或其他统计模型来描述信源的统计特性。对所有信源符号进行排列后,第i个信源符号uxi的先验概率记作p(uxi)。
步骤204、基于所述先验概率计算得到所述同义集合的总概率。
进一步的,基于所述先验概率计算得到所述同义集合的总概率包括:
将所述同义集合中包含的所有信源符号的先验概率之和作为所述同义集合的总概率。
确定了同义集合中包含的所有信源符号后,将每个信源符号的先验概率进行求和运算,得到该同义集合的总概率,也即
步骤206、将所述同义集合作为叶子节点,基于所述同义集合的总概率,采用哈夫曼树的构建方法构建哈夫曼树。
将所有同义集合的总概率作为哈夫曼树的叶子节点,选取其中总概率最小的两个叶子节点,将这两个叶子节点合作成为一个父节点,该父节点的总概率等于两个叶子节点的总概率之和。之后,将父节点与未经合并的叶子节点的总概率按照数值大小进行排序,再次选出总概率最小的两个节点进行合并,形成一个新的父节点,新的父节点的总概率等于合并的两个节点的总概率之和。以此类推,直至最后合并后形成的新的父节点的总概率等于1,该父节点作为根节点,得到哈夫曼树。
图4给出了构建哈夫曼树的示意图,如图4所示,同义集合序列U包含个同义集合,将每个同义集合作为哈夫曼树的叶子节点。首先,选取总概率最小的叶子节点U1和U2,节点U1的总概率为p(U1),节点U2的总概率为p(U2),合并得到父节点/>父节点/>的总概率为/>并为节点U1和U2分配路径符号,节点U1对应路径符号为0,节点U2对应路径符号为1,路径符号分配原则为左分支对应的路径符号均为0(或1),右分支对应的路径符号均为1(或0)。此时除去叶子节点U1和U2之外,总概率最小的两个节点为节点U3和U4,节点U3的总概率为p(U3),节点U4的总概率为p(U4),则将节点U3和U4合并得到父节点父节点/>的总概率为/>若除去叶子节点U1、U2、U3、U4之外,总概率最小的节点为/>和/>则将节点/>和节点/>再次合并,以此类推,合并得到最后的根节点UT,且根节点UT的总概率为1。
哈夫曼树的构建构建过程还可以通过下述流程进行描述:
1)初始化哈夫曼树;
2)在同义集合序列U中选取两个总概率最小的同义集合和/>作为子节点,is≠js,两个子节点合并为一个父节点,记为Ut。父节点Ut的总概率等于子节点/>和/>以及父节点Ut组成一个分支,将该分支插入到哈夫曼树中。具体插入方法包括:若现有的哈夫曼树中已存在节点/>和/>则根据节点和/>在哈夫曼树中向根部合并生成父节点Ut;若当前哈夫曼树中存在节点/>或/>则将不存在的节点插入作为当前哈夫曼树的叶节点,再根据节点/>和/>在哈夫曼树中向根部合并生成父节点Ut;若当前哈夫曼树中不存在节点/>和/>则将节点/>和/>均插入作为当前哈夫曼树的叶节点,再根据节点/>和/>在哈夫曼树中向根部合并生成父节点Ut;
3)将节点和/>从同义集合序列U中剔除,将节点Ut添加至同义集合序列U中,对当前的同义集合序列U中包含的全部同义集合按照总概率值进行重新排序;
4)判断同义集合序列U中是否只剩余一个同义集合,若不是,重复步骤2)至步骤3),若是,结束流程,完成哈夫曼树的构建。
步骤208、基于所述哈夫曼树,确定所述同义集合对应的编码字段。
图5示出了哈夫曼树的结构示意图。如图5所示,哈夫曼树中包括三个同义集合,分别为U1、U2、U3。在确定同义集合U1对应的编码字段时,从哈夫曼树的根节点出发,按照图示路径达到叶子节点U1,所经过的所有路径符号依次为00,也即同义集合U1对应的编码字段为00。同理,在确定同义集合U2对应的编码字段时,所经过的所有路径符号依次为1,也即同义集合U2对应的编码字段为1,在确定同义集合U2对应的编码字段时,所经过的所有路径符号依次为01,即同义集合U3对应的编码字段为01。根据本步骤的方法,可以基于哈夫曼树,得到每个同义集合对应的编码字段。
需要说明的是,每个同义集合中包含的信源符号对应的编码字段均为该同义集合对应的编码字段。在本申请中,通过同义集合的总概率构建哈夫曼树,在编码过程中则是针对同义集合进行编码,而不是对信源符号进行编码,能够有效减少编码后编码序列的平均码长,提升编码过程的压缩效率。
步骤210、基于所述同义集合与所述编码字段的对应关系构建所述语义哈夫曼码本。
通过上述步骤构建得到哈夫曼树后,确定了每个同义集合的编码字段,则将同义集合与编码字段形成映射关系,存储在语义哈夫曼码本中,便于后续可以根据哈夫曼码本快速确定每个同义集合对应的编码字段。
本申请还提供了一种基于语义的哈夫曼译码方法,应用于接收端,参考图6,所述方法包括以下步骤:
步骤302、响应于接收到发送端发送的编码序列,基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列。
具体的,接收到编码序列后,遍历编码序列中的每个编码,并同时根据哈夫曼码本确定已遍历的编码对应的同义集合,将遍历后得到的全部同义集合按确定的先后顺序组合为同义集合序列。本步骤中的哈夫曼码本的构建方法以及同义集合的构建方法与前述实施例相同,此处不再赘述。
步骤304、从所述同义集合序列的每个同义集合中按照预设抽取方式抽取一个信源符号作为目标信源符号。
具体的,同义集合中的每个信源符号均具有相同的语义信息,在确定了同义集合后,从同义集合中按照预设抽取方式抽取一个信源符号均可以准确表示编码序列中编码的语义信息。预设抽取方式可以包括随机选取、固定选取和最大概率选取等,具体抽取方式本实施例中不做具体限制。
步骤306、按照所述同义集合序列中同义集合的顺序,将所述目标信源符号依次排序得到所述编码序列对应的译码序列。
具体的,按照预设抽取方式抽取得到全部目标信源符号后,按照同义集合在同义集合序列中的顺序,将目标信源符号进行一次排序得到对应的译码序列,译码序列表示的语义信息与信息序列相同。
在一些实施例中,所述基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列,包括:
逐个读取所述编码序列中的每个编码,基于所述哈夫曼码本依次确定与已读取的编码字段对应的同义集合;
响应于所述编码序列读取完成后,按照依次确定的顺序将全部同义集合排序形成所述同义集合序列。
具体的,逐个读取编码序列中的每个编码符号,基于已读取的若干位编码符号利用哈夫曼码本确定对应的同义集合,每个同义集合对应一个编码码字,该编码码字包括若干个编码符号,示例性的,同义集合对应的编码码字为U,U包含三个编码符号001,即U=001。进一步的,对于已读取的若干位编码,根据哈夫曼码本找到与已读取的若干位编码相同的编码字段,再确定与编码字段对应的同义集合。
当读取结束后,按照之前确定的同义集合的先后顺序,将同义集合排序形成同义集合序列。译码时,通过编码确定同义集合,可以确保译码后的译码序列与编码序列具有相同的语义信息。
在一具体示例中,接收端的译码过程也可以通过下述流程进行描述:
1)初始化译码位置标识l=1,初始化序号is=1;
2)从编码序列b的第l位开始,根据第l位的当前码字0或1,从哈夫曼树的根节点开始沿路径依次开始寻找,每移动一个节点,译码位置标识l加1,直至寻找到叶节点,结束当前码字译码,将经过的路径的路径符号0或1按序依次排列组合得到当前的编码字段根据编码字段通过哈夫曼码本确定对应的同义集合/>序号is加1;
3)检测译码位置标识l是否达到编码序列b的长度,若没有达到,则返回步骤2),若达到则将同义集合按照序号顺次连接为同义集合序列;
4)从同义集合序列中的每个同义集合中按照预设抽取方式选取一个信源符号uxi,作为目标信源符号,将目标信源符号顺次连接得到译码序列c。
下面通过具体实施例说明本申请的编码译码过程。
本实施例中包含6种信源符号,对应的先验概率如表1所示,经计算得到信源熵H=2.1219bit。
表1信源先验概率表
信源符号 | 先验概率 |
u1 | 0.2 |
u2 | 0.4 |
u3 | 0.2 |
u4 | 0.1 |
u5 | 0.1 |
按照传统的哈夫曼编码方法构造码本可得表2:
表2信源符号编码表
/>
经表2计算得到的平均码长:
L1=0.2×3+0.4×1+0.2×3+0.1×3+0.1×3=2.2bit。
给定同义映射,同义集合U1={u1},同义集合U2={u2,u3},同义集合U3={u4,u5}。则同义集合的先验概率如表3所示:
表3同义集合先验概率表
信源符号 | 同义集合 | 先验概率 |
u1 | U1 | 0.2 |
u2,u3 | U2 | 0.6 |
u4,u5 | U3 | 0.2 |
按照图5所示的哈夫曼树,同义集合对应的编码字段如表4所示:
表4同义集合对应的编码字段表
信源符号 | 编码字段 |
U1 | 00 |
U2 | 1 |
U3 | 01 |
经表4计算得到的平均码长:
L2=0.2×2+0.6×1+0.2×2=1.4bit,相比于L1,L2明显缩短了平均码长。对于给定的信息序列[u1u3u2u2u5u2u1u3u4u2],按照传统哈夫曼编码的编码序列为[0100111100110100110001],码长为22bit。按照本申请中的语义哈夫曼编码得到的编码序列为[00111011001011],码长为14比特。在译码后,传统哈夫曼编码的译码序列为[u1u3u2u2u5u2u1u3u4u2],语义哈夫曼编码后的译码序列为[u1u2u3u3u4u2u1u2u4u3]。可以看到语义哈夫曼编码相较于传统哈夫曼编码具有更高的压缩效率,甚至可以突破信源的香农信息熵,这都得益于同义集合带来的额外信息。虽然语义哈夫曼编码的译码序列并不一定能完美匹配信源发出的信息序列,但是根据同义集合的定义,两者具有相同的语义信息,因此并不影响最终的传输判定结果。本实施例的结果表明,利用语义哈夫曼编码方法,相比于传统哈夫曼编码方案能够大幅提升信源的压缩效率,从而证明本申请提出的语义哈夫曼编码具有可行性以及较高的有效性。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种基于语义的哈夫曼编码装置。
参考图7,所述基于语义的哈夫曼编码装置,应用于发送端,包括:
第一确定模块402,被配置为响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合;
第二确定模块404,被配置为根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段;
编码模块406,被配置为根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列;
发送模块408,被配置为将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码。
在一些实施例中,所述第一确定模块402,还被配置为基于所述码字的语义信息,在所述同义映射码本中查询与所述语义信息对应的同义集合作为所述码字对应的同义集合,其中,在所述同义映射码本中,所述语义信息与所述同义集合具有一一对应关系。
在一些实施例中,在基于预先构建的同义映射码本对所述码字进行同义映射之前,所述第一确定模块402,还被配置为根据所述信源的最小符号语法单元对所述信息序列进行分割处理。
在一些实施例中,还包括构建模块,所述构建模块,被配置为获取所述信源的全部信源符号,按照所述信源符号的语义信息对全部信源符号进行分类,将具有相同语义信息的信源符号组合为一个同义集合,基于所述信源符号与所述同义集合的映射关系构建所述同义映射码本。
在一些实施例中,所述构建模块,还被配置为获取所述信源符号的先验概率;基于所述先验概率计算得到所述同义集合的总概率;将所述同义集合作为叶子节点,基于所述同义集合的总概率,采用哈夫曼树的构建方法构建哈夫曼树;基于所述哈夫曼树,确定所述同义集合对应的编码字段;基于所述同义集合与所述编码字段的对应关系构建所述语义哈夫曼码本。
在一些实施例中,所述构建模块,还被配置为将所述同义集合中包含的所有信源符号的先验概率之和作为所述同义集合的总概率。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种基于语义的哈夫曼编码装置。
参考图8,所述基于语义的哈夫曼译码装置,应用于接收端,包括:
第三确定模块502,被配置为响应于接收到发送端发送的编码序列,基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列;
抽取模块504,被配置为从所述同义集合序列的每个同义集合中按照预设抽取方式抽取一个信源符号作为目标信源符号;
译码模块506,被配置为按照所述同义集合序列中同义集合的顺序,将所述目标信源符号依次排序得到所述编码序列对应的译码序列。
在一些实施例中,所述第三确定模块502,还被配置为逐个读取所述编码序列中的每个编码,基于所述哈夫曼码本依次确定与已读取的编码字段对应的同义集合;响应于所述编码序列读取完成后,按照依次确定的顺序将全部同义集合排序形成所述同义集合序列。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的基于语义的哈夫曼编码方法或基于语义的哈夫曼译码方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于语义的哈夫曼编码方法或基于语义的哈夫曼译码方法。
图9示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于语义的哈夫曼编码方法或基于语义的哈夫曼译码方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于语义的哈夫曼编码方法或基于语义的哈夫曼译码方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于语义的哈夫曼编码方法或基于语义的哈夫曼译码方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一构思,与上述任意实施例方法相对应的,本申请还提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得所述计算机执行如上任一实施例所述的方法,具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于语义的哈夫曼编码方法,其特征在于,应用于发送端,所述方法包括:
响应于接收到信源发送的包含至少一个码字的信息序列,基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合;
根据预先构建的语义哈夫曼码本确定所述同义集合对应的编码字段;
根据所述码字在所述信息序列中的顺序,将所有编码字段依次排序得到所述信息序列对应的编码序列;
将所述编码序列发送至接收端,以使所述接收端对所述编码序列进行译码。
2.根据权利要求1所述的方法,其特征在于,所述基于预先构建的同义映射码本对所述码字进行同义映射,以确定所述码字对应的同义集合,包括:
基于所述码字的语义信息,在所述同义映射码本中查询与所述语义信息对应的同义集合作为所述码字对应的同义集合,其中,在所述同义映射码本中,所述语义信息与所述同义集合具有一一对应关系。
3.根据权利要求1所述的方法,其特征在于,在基于预先构建的同义映射码本对所述码字进行同义映射之前,所述方法包括:
根据所述信源的最小符号语法单元对所述信息序列进行分割处理。
4.根据权利要求1所述的方法,其特征在于,构建所述同义映射码本,包括:
获取所述信源的全部信源符号,按照所述信源符号的语义信息对全部信源符号进行分类,将具有相同语义信息的信源符号组合为一个同义集合,基于所述信源符号与所述同义集合的映射关系构建所述同义映射码本。
5.根据权利要求4所述的方法,其特征在于,构建所述语义哈夫曼码本,包括:
获取所述信源符号的先验概率;
基于所述先验概率计算得到所述同义集合的总概率;
将所述同义集合作为叶子节点,基于所述同义集合的总概率,采用哈夫曼树的构建方法构建哈夫曼树;
基于所述哈夫曼树,确定所述同义集合对应的编码字段;
基于所述同义集合与所述编码字段的对应关系构建所述语义哈夫曼码本。
6.根据权利要求5所述的方法,其特征在于,所述基于所述先验概率计算得到所述同义集合的总概率,包括:
将所述同义集合中包含的所有信源符号的先验概率之和作为所述同义集合的总概率。
7.一种基于语义的哈夫曼译码方法,其特征在于,应用于接收端,所述方法包括:
响应于接收到发送端发送的编码序列,基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列;
从所述同义集合序列的每个同义集合中按照预设抽取方式抽取一个信源符号作为目标信源符号;
按照所述同义集合序列中同义集合的顺序,将所述目标信源符号依次排序得到所述编码序列对应的译码序列。
8.根据权利要求7所述的方法,其特征在于,所述基于预先构建的哈夫曼码本确定所述编码序列对应的同义集合序列,包括:
逐个读取所述编码序列中的每个编码,基于所述哈夫曼码本依次确定与已读取的编码字段对应的同义集合;
响应于所述编码序列读取完成后,按照依次确定的顺序将全部同义集合排序形成所述同义集合序列。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6或如权利要求7至8任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至6或权利要求7至8任意一项所述方法。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118174737A true CN118174737A (zh) | 2024-06-11 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6616877B2 (ja) | Vlsiでの効率的なハフマン符号化を行う装置および方法 | |
US10902937B2 (en) | Lossless compression of DNA sequences | |
KR101515660B1 (ko) | 두 번의 패스를 통한 텍스트 스트링의 해시 추출 | |
TWI587640B (zh) | 用於音訊/視訊樣本向量之錐型向量量化檢索/解檢索之方法及裝置 | |
CN101783788A (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
CN111027656B (zh) | 二维码生成及识别方法、装置、电子设备、存储介质 | |
CN110019865B (zh) | 海量图片处理方法、装置、电子设备及存储介质 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
KR20120137235A (ko) | 유전자 데이터를 압축하는 방법 및 장치 | |
WO2013102818A1 (en) | Generating a code alphabet of symbols to generate codewords for words used with a program | |
KR100984234B1 (ko) | 벡터 코딩/디코딩 방법 및 장치 그리고 스트림 미디어플레이어 | |
US20100085219A1 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
US20120110025A1 (en) | Coding order-independent collections of words | |
CN106537914A (zh) | 通过限制的进位运算来执行算术编译的方法和设备 | |
CN112804029A (zh) | 基于ldpc码的bats码的传输方法、装置、设备及可读存储介质 | |
Wang et al. | smallWig: parallel compression of RNA-seq WIG files | |
CN108829872B (zh) | 无损压缩文件的快速处理方法、设备、系统及存储介质 | |
CN118174737A (zh) | 基于语义的哈夫曼编码方法、译码方法及相关设备 | |
US8976048B2 (en) | Efficient processing of Huffman encoded data | |
Gagie et al. | Efficient and compact representations of prefix codes | |
CN115765754A (zh) | 一种数据编码方法及一种编码数据比较方法 | |
JP2016170750A (ja) | データ管理プログラム、情報処理装置およびデータ管理方法 | |
US20130222159A1 (en) | Entropy method of binary-ternary lossless data coding | |
US8786471B1 (en) | Lossless data compression with variable width codes | |
CN112685404A (zh) | 应用于键树的编码方法、应用于键树的解码方法与电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |