CN115104305A - 用于图压缩的多上下文熵编码 - Google Patents
用于图压缩的多上下文熵编码 Download PDFInfo
- Publication number
- CN115104305A CN115104305A CN202080096330.9A CN202080096330A CN115104305A CN 115104305 A CN115104305 A CN 115104305A CN 202080096330 A CN202080096330 A CN 202080096330A CN 115104305 A CN115104305 A CN 115104305A
- Authority
- CN
- China
- Prior art keywords
- data
- graph
- entropy encoder
- compressing
- context entropy
- 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
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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3079—Context modeling
-
- 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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- 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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
-
- 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
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- 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
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
- H03M7/6094—Selection strategies according to reasons other than compression rate or data type
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
示例实施例涉及使用多上下文熵编码器来编码邻接列表。***可以获得具有数据的图(或多个图)并且可以使用多上下文熵编码器来压缩图的数据。多上下文熵编码器可以对数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。例如,操作多上下文熵编码器可以涉及使用算术编码、霍夫曼编码和ANS的组合。整数到概率分布的分配可以取决于每个整数的角色和/或类似种类的先前值。通过使用多上下文熵编码,计算***可以增加压缩率,同时保持相似的处理速度。
Description
相关申请的交叉引用
本申请要求于2020年2月12日提交的美国临时专利申请第62/975,722号的优先权,其全部内容通过引用并入本文。
背景技术
数据压缩技术用于将数字数据编码为具有比原始数据少的比特的替代压缩形式,然后在需要原始数据时解码(即,解压缩)该压缩形式。特定数据压缩***的压缩率是编码的输出数据的大小(在存储或传输期间)与原始数据的大小的比率。随着在许多不同领域中以数字形式获得、传输和存储的数据量显著增加,数据压缩技术被越来越多地使用。这些技术可以帮助减少存储和传输数据所需的资源。
通常,数据压缩技术可以被分类为无损或有损的。无损压缩通过识别和消除统计冗余来减少比特。无损压缩中不丢失信息。有损压缩涉及通过去除不必要或不太重要的信息来减少比特。
发明内容
本文呈现的示例实施例涉及用于使用多上下文熵编码来压缩诸如图(graph)数据的数据的***和方法。
在第一示例实施例中,提供了一种方法。该方法涉及在计算***处获得具有数据的图并通过计算***使用多上下文熵编码器来压缩图的数据。多上下文熵编码器对数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。
在第二示例实施例中,提供了一种***。该***包括计算***、非暂时性计算机可读介质和存储在非暂时性计算机可读介质上的程序指令,该程序指令可由计算***执行以执行操作。该操作包括获得具有数据的图并使用多上下文熵编码器压缩图的数据。多上下文熵编码器对数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。
在第三示例实施例中,提供了一种被配置为存储指令的非暂时性计算机可读介质。该程序指令可以存储在数据存储装置中,并且在由计算***执行时可以使计算***执行根据第一示例实施例和第二示例实施例的操作。
在第四示例实施例中,一种***可以包括用于执行上述示例实施例的每个操作的各种装置。
通过阅读以下详细描述并在适当的情况下参考附图,这些以及其他实施例、方面、优点和替代方案对于本领域普通技术人员将变得显而易见。此外,应当理解,本文提供的该发明内容和其他描述以及附图旨在仅通过示例的方式来说明实施例,并且因此,许多变化是可能的。例如,结构元素和过程步骤可以被重新布置、组合、分布、消除或以其他方式改变,而仍然在所要求保护的实施例的范围内。
附图说明
图1是根据一个或多个示例实施例的计算***的框图。
图2描绘了根据一个或多个示例实施例的基于云的服务器集群。
图3描绘了根据一个或多个示例实施例的非对称数字***实施方式。
图4描绘了根据一个或多个示例实施例的霍夫曼编码实施方式。
图5示出了根据一个或多个示例实施例的方法的流程图。
图6示出了根据示例实施例的计算机程序的示意图。
具体实施方式
本文描述了示例方法、设备和***。应当理解,本文使用词语“示例”和“示例性”是指“用作示例、实例或说明”。在本文描述为“示例”或“示例性”的任何实施例或特征不一定被解释为比其他实施例或特征优选或有利。可以使用其他实施例,并且可以做出其他改变,而不背离本文提出的主题的范围。
因此,本文描述的示例实施例并不意味着是限制性的。可以以各种不同的配置来布置、替换、组合、分离和设计本文总体上描述并在图中示出的本公开的各方面,所有这些都在本文中被考虑。此外,除非上下文另有说明,否则每个图中示出的特征可以相互组合使用。因此,附图一般应被视为一个或多个整体实施例的组成方面,但应理解并非所有示出的特征对于每个实施例来说都是必需的。
1、概述
由现代计算***处理的图具有越来越大的大小,通常比可用于处理它们的资源增长得更快。这可能需要实施允许在不解压缩完整图的情况下访问数据的压缩方案。
这样的结构的当前实施方式通过使用其他列表作为参考来存储邻接列表(adjacency list)来压缩图。边可以从该参考复制或使用通用整数码进行编码。虽然这种方案可能会实现有用的压缩率,但它不能很好地适应源数据的变化。
示例实施例可以涉及使用多上下文熵编码来编码邻接列表。多上下文熵编码可以涉及使用多种压缩模式(schema),诸如算术编码、霍夫曼编码或非对称数字***(ANS)。例如,***可以使用霍夫曼编码和ANS的组合。霍夫曼编码可用于创建支持访问任何节点的邻域的文件,而ANS可用于创建只能以其整体被解码的文件。此外,该***可以使要编码的符号能够被分割成多个上下文。对于每个上下文,***可以使用不同的概率分布,当假设符号属于不同的概率分布时,这可以允许进行更精确的编码。
在一些实施例中,***可以使用多上下文熵编码,使得每个整数根据其角色被分配给不同的(存储的)概率分布。例如,多上下文熵编码可以使块的长度能够从参考列表被复制而不是被跳过。多上下文熵编码还可以涉及根据类似种类的先前值将每个整数分配给不同的概率分布。例如,可以根据先前增量(delta)的幅度为给定增量选择不同的概率分布。使用多上下文熵编码可以使***能够实现对于现有技术的压缩率改进,同时还具有相似的处理速度。本文描述了进一步的示例。
2、示例***
图1是例示了计算***100的简化框图,示出了可以包括在被布置成根据本文的实施例操作的计算设备中的一些组件。计算***100可以是客户端设备(例如,由用户主动操作的设备)、服务器设备(例如,向客户端设备提供计算服务的设备)或某个其他类型的计算平台。一些服务器设备可以不时地作为客户端设备进行操作以执行特定操作,并且一些客户端设备可以结合服务器特征。
在该示例中,计算***100包括处理器102、存储器104、网络接口106和输入/输出单元108,所有这些都可以通过***总线110或类似机制联接。在一些实施例中,计算***100可以包括其他组件和/或***设备(例如,可拆卸存储装置、打印机等)。
处理器102可以是任何类型的计算机处理元件中的一个或多个,诸如中央处理单元(CPU)、协处理器(例如,数学、图形或加密协处理器)、数字信号处理器(DSP)、网络处理器和/或执行处理器操作的集成电路或控制器的形式。在一些情况下,处理器102可以是一个或多个单核处理器。在其他情况下,处理器102可以是一个或多个具有多个独立处理单元的多核处理器。处理器102还可以包括用于临时存储正在被执行的指令和相关数据的寄存器存储器,以及用于临时存储最近使用的指令和数据的高速缓冲存储器。
存储器104可以是任何形式的计算机可用存储器,包括但不限于随机存取存储器(RAM)、只读存储器(ROM)和非易失性存储器。这可以包括闪存、硬盘驱动器、固态驱动器、可重写紧凑式盘(CD)、可重写数字视频盘(DVD)和/或带存储装置,仅作为几个示例。
计算***100可以包括固定存储器以及一个或多个可移动存储器单元,后者包括但不限于各种类型的安全数字(SD)卡。因此,存储器104表示主存储器单元,也表示长期存储装置。其他类型的存储器可以包括生物存储器。
存储器104可以存储程序指令和/或程序指令可以对其进行操作的数据。举例来说,存储器104可以将这些程序指令存储在非暂时性计算机可读介质上,使得指令可由处理器102执行以执行本说明书或附图中公开的任何方法、过程或操作。
如图1所示,存储器104可以包括固件104A、内核104B和/或应用104C。固件104A可以是用于引导或以其他方式启动计算***100的一些或全部的程序代码。内核104B可以是操作***,包括用于存储器管理、进程的调度和管理、输入/输出以及通信的模块。内核104B还可以包括允许操作***与计算***100的硬件模块(例如,存储器单元、网络接口、端口和总线)通信的设备驱动器。应用104C可以是一个或多个用户空间软件程序,诸如web浏览器或电子邮件客户端,以及这些程序使用的任何软件库。在一些示例中,应用104C可以包括一个或多个神经网络应用。存储器104还可以存储由这些和其他程序和应用使用的数据。
网络接口106可以采用一个或多个有线接口的形式,诸如以太网(例如,快速以太网、千兆比特以太网等)。网络接口106还可以支持通过一个或多个非以太网介质(诸如同轴电缆或电力线)或通过广域介质(诸如同步光网络(SONET)或数字订户线(DSL)技术)的通信。网络接口106可以附加地采用一个或多个无线接口的形式,诸如IEEE 802.11(Wifi)、全球定位***(GPS)或广域无线接口。然而,可以在网络接口106上使用其他形式的物理层接口和其他类型的标准或专有通信协议。此外,网络接口106可以包括多个物理接口。例如,计算***100的一些实施例可以包括以太网、 和Wifi接口。
输入/输出单元108可以促进用户和***设备与计算***100和/或其他计算***的交互。输入/输出单元108可以包括一种或多种类型的输入设备,诸如键盘、鼠标、一个或多个触摸屏、传感器、生物计量传感器等。类似地,输入/输出单元108可以包括一种或多种类型的输出设备,诸如屏幕、监视器、打印机和/或一个或多个发光二极管(LED)。附加地或替代地,计算***100可以例如使用通用串行总线(USB)或高清多媒体接口(HDMI)端口接口与其他设备通信。
编码器112表示一个或多个编码器,计算***100可以使用其来执行本文描述的压缩技术,诸如多上下文熵编码。在一些示例中,编码器112可以包括被配置为顺序地和/或同时地执行的多个编码器。编码器112也可以是能够同时编码来自多个数据结构(例如,数据)的数据的单个编码器。在一些示例中,编码器112可以表示远离计算***100定位的一个或多个编码器。
解码器114表示一个或多个编码器,计算***100可以使用其来执行本文描述的解压缩技术。在一些示例中,解码器114可以包括被配置为顺序地和/或同时地执行的多个解码器。解码器114也可以是能够同时解码来自多个压缩数据源的数据的单个解码器。在一些示例中,解码器114可以表示远离计算***100定位的一个或多个编码器。
编码器112和解码器114可以与计算***100的其他组件(诸如存储器104)通信。此外,编码器112和解码器114可以在一些实施例中表示软件和/或硬件。
在一些实施例中,可以部署计算***100的一个或多个实例以支持集群架构。这些计算设备的确切物理位置、连接性和配置对于客户端设备来说可能是未知的和/或不重要的。因此,计算设备可以被称为“基于云的”设备,其可以安置在各种远程数据中心位置。此外,计算***100可以实现本文描述的实施例的执行,包括使用神经网络和实施神经光传输。
图2描绘了根据示例实施例的基于云的服务器集群200。在图2中,计算设备(例如,计算***100)的一个或多个操作可以分布在服务器设备202、数据存储装置204和路由器206之间,服务器设备202、数据存储装置204和路由器206全部都可以通过本地集群网络208连接。服务器集群200中的服务器设备202、数据存储装置204和路由器206的数量可以取决于分配给服务器集群200的(一个或多个)计算任务和/或应用。在一些示例中,服务器集群200可以执行本文描述的一个或多个操作,包括神经网络的使用和神经光传输功能的实现。
服务器设备202可以被配置为执行计算***100的各种计算任务。例如,一个或多个计算任务可以分布在一个或多个服务器设备202之中。在这些计算任务可以并行执行的程度内,这样的任务分配可以减少完成这些任务并返回结果的总时间。为了简单起见,服务器集群200和单独的服务器设备202都可以被称为“服务器设备”。该命名法应被理解为暗示服务器设备操作中可能涉及一个或多个不同的服务器设备、数据存储设备和集群路由器。此外,服务器设备202可以被配置为执行本文描述的操作,包括多上下文熵编码。
数据存储装置204可以是包括被配置为管理对硬盘驱动器和/或固态驱动器组的读和写访问的驱动器阵列控制器的数据存储阵列。驱动器阵列控制器,单独地或与服务器设备202结合,还可以被配置为管理存储在数据存储装置204中的数据的备份或冗余副本,以防止驱动器故障或阻止一个或多个服务器设备202访问集群数据存储装置204的单元的其他类型的故障。可以使用除驱动器之外的其他类型的存储器。
路由器206可以包括被配置为为服务器集群200提供内部和外部通信的网络设备。例如,路由器206可以包括一个或多个分组交换和/或路由设备(包括交换机和/或网关),其被配置为(i)经由集群网络208提供服务器设备202和数据存储装置204之间的网络通信,和/或(ii)经由到网络212的通信链路210提供服务器集群200和其他设备之间的网络通信。
此外,集群路由器206的配置可以至少部分地基于服务器设备202和数据存储装置204的数据通信要求、本地集群网络208的时延和吞吐量、通信链路210的时延、吞吐量和成本、和/或可能促成***架构的成本、速度、容错性、弹性、效率和/或其他设计目标的其他因素。
作为一个可能的示例,数据存储装置204可以包括任何形式的数据库,诸如结构化查询语言(SQL)数据库。各种类型的数据结构可以将信息存储在这样的数据库中,包括但不限于表、数组、列表、树和元组。此外,数据存储装置204中的任何数据库可以是单体的或跨多个物理设备分布。
服务器设备202可以被配置为向集群数据存储装置204传输数据和从集群数据存储装置204接收数据。这种传输和获取可以分别采取SQL查询或其他类型的数据库查询以及这样的查询的输出的形式。也可以包括附加的文本、图像、视频和/或音频。此外,服务器设备202可以将接收的数据组织成网页表示。这样的表示可以采取标记语言的形式,诸如超文本标记语言(HTML)、可扩展标记语言(XML)或某个其他标准化或专有格式。此外,服务器设备202可以具有执行各种类型的计算机化脚本语言(诸如但不限于Perl、Python、PHP超文本预处理器(PHP)、活动服务器页面(ASP)、JavaScript等)的能力。以这些语言编写的计算机程序代码可以促进向客户端设备提供网页,以及与网页的客户端设备交互。
3、熵编码
熵编码是通过用少量比特表示频繁出现的图案(pattern)和用很多比特表示很少出现的图案来压缩数字数据的一种类型的无损编码。因此,熵编码技术可以是不依赖于介质的特定特性的无损数据压缩方案。
熵编码(EC)的过程可以分为建模和编码。建模可以涉及将概率分配给符号,而编码可以涉及从这些概率产生比特序列。正如香农的源编码定理中所确立的,符号的概率与其对应的比特序列之间存在关系。例如,概率为p的符号被分配长度为-log(p)的比特序列。为了实现良好的压缩率(compression rate),可以使用概率估计。特别地,由于模型负责每个符号的概率,因此建模可能是数据压缩中的关键任务。
一种熵编码技术可以涉及为输入中出现的每个独特符号创建和分配唯一的无前缀码。然后,这些熵编码器可以通过用对应的可变长度无前缀输出码字替换每个固定长度输入符号来压缩数据。每个码字的长度近似与概率的负对数成比例。在一些示例中,符号的最优码长度是-logbP,其中,b是用于形成输出码的符号数量,并且P是输入符号的概率。
熵编码可以通过不同的编码方案来实现。对每个符号使用离散数量的比特的常见方案是霍夫曼编码。一种不同的方法是算术编码,其可以输出表示区间(interval)内点的比特序列。该区间可以通过被编码符号的概率递归地构建。
另一种压缩方案是非对称数字***(Asymmetric Numeral System,ANS)。ANS是一种无损压缩算法或模式,其输入来自某个有限集的符号列表并输出一个或多个有限数。每个符号s具有在列表中出现的固定的已知概率ps。ANS模式尝试为每个列表分配唯一的整数,以便更有可能的列表获得更小的整数。计算***100可以使用ANS,其可以将算术编码的压缩率与类似于霍夫曼编码的处理成本的处理成本组合。
图3描绘了根据一个或多个示例实施例的非对称数字***实施方式。ANS 300可以涉及将信息编码为单个自然数x,该自然数x可以被解释为包含log2(x)个比特的信息。添加来自概率p的符号的信息将信息内容增加到结果,包含这两个信息的新数可以对应于如下等式302:
x′=x/p. [1]
如图3所示,***300可以使用等式302按编码规则添加最低有效位置中的信息,该编码规则指定“x去往与当前被编码符号对应的自然数的子集的第x次出现。”在图3所示的示例中,图表304示出将序列(01111)编码为自然数18,该自然数小于使用标准二进制***会获得的47。由于与要编码的序列的频率更好的一致性,***300可以实现更小的自然数18。这样,***300可以允许将信息存储在单个自然数中,而不是限定范围的两个数中,如图3中进一步示出的X子图表306所示。
图4描绘了根据一个或多个示例实施例的霍夫曼编码实施方式。如上所讨论的,霍夫曼编码可以与整数长度码一起使用并且可以经由霍夫曼树来描绘。***400可以使用霍夫曼编码来构造最小冗余码。这样,***400可以使用霍夫曼编码来进行最小化用于将数据从一个地方传输到另一地方的成本、时间、带宽和存储空间的数据压缩。
在图4所示的实施例中,***400示出了图表402,其包括根据值和对应频率布置的节点。***400可以被配置为在图表402内搜索具有最低频率且还没有被分配给父节点的两个节点。这两个节点可以一起联接到新的内部节点,并且频率可以由***400添加以将总数分配给新的内部节点。***400可以重复搜索尚未分配给父节点的具有最低频率的下两个节点的过程,直到所有节点在根节点中组合在一起。
***400最初可以根据霍夫曼编码技术以频率的升序排列所有值。例如,这些值可以按以下顺序重新排列:“E,A,C,F,D,B”。在重新排序之后,***400可以随后***具有最小频率的前两个值(即,E和A)作为霍夫曼树404的第一部分。如图所示,E:4和A:5的频率相加,如霍夫曼树404所示,总频率为9(即EA:9)。
接下来,***400可以涉及组合具有随后的最小频率的节点,其与C:7和EA:9对应。将这些加在一起创建CEA:16,如霍夫曼树404中所示。***400随后可以创建具有最小频率的下两个节点(它们是F:12和D:15)的子树。如图所示,这导致FD:27。***400然后可以组合与CEA:16和B:25对应的下两个最小节点以产生CEAB:41。最后,***400可以将子树FD:27和CEAB:41组合在一起以创建频率为68的值FDCEAB,如图4中表示的霍夫曼树404总计所示。
尽管霍夫曼编码和ANS都提供了压缩益处,但存在计算***在数据压缩期间可能会受益于使用组合的某些情形。特别地,计算***100可以使用多上下文熵编码来对邻接列表进行编码。多上下文熵编码可以涉及使用多种模式,诸如算术编码、霍夫曼编码或ANS。例如,计算***100可以在创建支持对任何节点的邻域的访问的文件时使用霍夫曼编码,并且可以在创建只能以其整体被解码的文件时使用ANS。在这两种情况下,要编码的符号都可以分割成多个上下文。对于每个上下文,可以使用不同的概率分布,当假设符号属于不同的概率分布时,这可以允许进行更精确的编码。
计算***100可以使用多上下文熵编码,使得每个整数根据其角色被分配给不同的(存储的)概率分布。例如,多上下文熵编码可以使块的长度能够从参考列表被复制而不是被跳过。多上下文熵编码还可以涉及根据类似种类的先前值将每个整数分配给不同的概率分布。例如,可以根据先前增量的幅度为给定增量选择不同的概率分布。使用多上下文熵编码可以使计算***100能够实现对于现有技术的压缩率改进,同时还具有相似的处理速度。
在一些情况下,计算***100可以在多上下文熵编码期间使用ANS的变体。ANS的变体可以基于在特定格式中频繁使用的变体,诸如JPEG XL。与其他变体不同,这种选择可以允许每个上下文的存储器使用与可以由流编码的最大符号数量成比例,这可能需要与每个分布的量化概率大小成比例的存储器。结果,当由计算***100执行解码时,该技术可以实现更好的高速缓存局部性。
当涉及对单个邻接列表的访问时,可以使用每个被编码符号非整数比特数(例如算术编码)的ANS和其他编码方案的一个潜在缺点可能是可能需要使用ANS的***保持内部状态。为了使解码能够成功地从比特流中的给定位置恢复,可能还需要能够恢复熵编码器在比特流的该点的状态,这可能会导致巨大的每节点开销。因此,当需要随机访问邻接列表时,计算***100可以切换到使用霍夫曼编码而不是ANS。因此,当使用多上下文熵编码时在模式之间进行切换的能力可以帮助计算***100避免与单独的模式关联的弊端。
霍夫曼编码和ANS都可以利用缩减的字母表大小。当计算***100正在执行涉及对任意长度的整数进行编码的任务时,由于所需的资源,对每个整数使用不同的符号可能是不可行的。结果,***100可以选择使用混合整数编码,其可以由两个参数h和k定义。特别地,在定义这两个参数时,k可以大于或等于h,并且h可以大于或等于1(k≥h≥1)。
在一些实施例中,计算***100可以将[0,2k)范围内的每个整数直接存储为符号。此外,任何其他整数然后可以通过以数的底数-2表示将最高比特(x)的索引编码到符号中以及编码h-1个随后比特(b),然后通过在不使用任何熵编码的情况下将所有剩余比特直接存储在比特流中来进行存储。因此,所得符号可以表示如下:
2k+(x-k-1)·2h-1+b [2]
计算***100可以使用等式1来用最多2k+(r-k-1)·2h-1个符号表示r比特数。为了说明示例,当k=4且h=2时,计算***100可以具有高达15的数,这些数可以在不使用额外比特的情况下被编码为对应符号。此外,可以将23编码为符号16(最高设置比特在位置5,后面的比特为0),然后是值为111的三个额外的比特。作为进一步的示例,值33可以编码为符号18然后是值为0001的四个额外的比特。
4、示例图压缩方法
计算***100可以使用多上下文编码码来执行图压缩。该格式可以通过采用节点n的邻接列表的以下表示来实现期望的压缩率。在下文中,窗口大小(W)和最小区间长度(L)可以用作全局参数。每个列表可以以n的度数开始。如果度数是严格为正的,则其后面可以跟随参考数r,其可以是[1,W)中的数。这可以指示该列表是通过参考节点n-r的邻接列表(称为参考列表,或0,意味着该列表是在不参考任何其他列表的情况下表示的)来表示的。
此外,如果r是严格为正的,则其后面可以跟随整数列表,这些整数指示应当分割参考列表以获得连续块的索引。偶数位置的块可以表示应当被复制到当前列表的边。该格式按此顺序包含块的数量、第一块的长度以及所有随后块的长度减1(因为除了第一块之外,没有块可能是空的)。最后一个块可以不被存储,因为其长度可以从参考列表的长度推断。区间列表可以在后面,其中每个区间由对s,l表示。这可以意味着应当存在朝向区间[s,l+L)中的所有节点的边。
此外,可以对残差列表进行编码。例如,可以对残差列表进行隐式长度的编码,因为其长度可以通过度数、被复制边的数量以及由区间表示的边的数量推断。该列表可以表示没有使用其他方案编码的所有边,并且也可以被增量编码。特别地,第一残差可以被编码为相对于当前节点的增量,并且所有后续残差可以被表示为相对于先前残差减1的增量。
在某些情况下,第一残差的表示可能会产生负数。为了解决这个问题,计算***100可以对第一残差进行如下编码:
这是整数和自然数之间的易于反转的双射。为了能够快速访问单个邻接列表,该模式可以限制每个节点的参考链的长度。特别地,参考链可以是节点序列(例如,n1,....,nr),使得节点ni+1使用节点ni作为参考,其中,r表示参考链的长度。该模式可以使每个参考链能够具有最多为R的长度,其中,R是全局参数。
该模式可以使用ζ码(诸如特别适合表示服从幂律分布的整数的一组通用码)表示所得的非负整数序列。
在一些实施例中,计算***100可以使用具有一个或多个修改的上述模式。如本文先前所指出的,计算***100可以使用熵编码来表示非负整数。
在实施例中,计算***100可以使用具有经由增量编码表示的度数的模式。可以使用增量编码,因为节点度数的表示在最终压缩文件中可能占用大量比特。由于这可能会产生负数,因此可以使用上面所示的等式1的变换来表示增量。
跨多个邻接列表的增量编码可能不利于使得能够在不首先解码图的其余部分的情况下访问任何邻接列表。鉴于此潜在问题,当请求访问单个列表时,该模式可以将图分割为组块(chunk)。每个组块可以具有固定长度“C”。结果,然后可以在单个组块内执行度数的增量编码。
计算***100还可以修改模式使用的残差表示。例如,模式中的残差经由使用增量编码进行编码,但是所选择的表示没有利用边可能已经由块副本表示的事实。
为了说明示例,考虑邻接列表包含节点2、3、4、6、7并且边3、4和6已经由块副本表示的情况。然后,残差将是2和7,并且第二残差将被表示如下:7-2-1=4。但是,在该示例中,从压缩文件读取0、1或3可能会导致边值为3、4或6,这将是多余的。因此,计算***100可以通过从间隙的长度去除已知存在的边来修改残差的增量编码。在这种情况下,残差边7将被表示为2。
此外,作为简化形式,区间的表示可以被去除并用零间隙的游程编码代替。通过本文先前描述的熵编码改进使这种改变成为可能。
特别地,当读取残差时,只要读取恰好Z个零间隙的序列,就会读取另一整数来表示零间隙的后续数量,要不然这些零间隙在压缩表示中不被表示。由于ANS可能不需要每个符号整数的比特,并且还可以实现零序列的高效表示,因此如果不需要访问单个邻接列表,则***可以设置Z=∞。
计算***100的编码器可以使用一个或多个算法来选择用于在压缩期间使用的参考列表。在某些情况下,不需要访问单列表。在这种情况下,单个节点使用的参考链的长度可能没有限制,因此***可以安全地从当前窗口中可用的所有列表(即,W个在前节点的所有邻接列表)中选择给出最优压缩的参考列表。
***可以估计算法可以使用以使用给定参考来压缩邻接列表的比特数。由于***可以使用适应性熵模型,因此估计可能会受到影响,因为对一个列表的选择可能会影响所有其他选项的概率。
因此,***可以使用该模式所使用的相同的迭代方法。这可以涉及使用简单的固定模块初始化符号概率(例如,所有符号具有相等概率),然后选择参考列表,假设这些将是最终成本。然后,***可以计算由选择的参考列表给出的符号概率,并使用新的概率分布重复该过程。然后,该过程可以重复恒定的次数。
当请求访问单列表时,可能需要更加小心地正确选择参考列表,同时避免太长的参考链。简单的解决方案可以是丢弃窗口中会产生太长参考链的所有列表,而不改变先前节点中考虑的决策。
***可以使用不同的策略,这可以涉及最初构建参考树T。参考树T可以无视最大参考链长度约束,其中,每个树边用通过使用父节点作为子节点的参考而保存的比特数来加权。在某些情况下,可以通过在不需要访问单列表时使用的贪婪算法轻松构造最优树。然后,***100可以在所得的树上解决动态规划问题。这可以产生指示包含在该树中并不具有长度为R+1的路径的子森林F的最大权重的结果。如果该过程导致比R短的一些路径,则***可以尝试以某种方式扩展它们。
可以证明上述技术提供对要保存的最大比特数的以下近似,如下所示:
首先,可以大于或等于因为T是约束较少的问题的最优解。如果则***可以根据其与根模R+1的距离将T的边分割成R+1个组,则明显的是,删除一个这样的组足以满足最大路径长度的约束。特别地,通过擦除最小总权重的边集获得的森林将具有至少的权重。由于可以是满足最大路径长度约束的最优森林,因此其权重可以至少相应地大。这给出了如下近似界限:
图5是根据一个或多个示例实施例的方法的流程图。方法300表示可以包括框502和504中的一个或多个描绘的一个或多个操作、功能或动作的示例方法,其中,每个操作、功能或动作可以由图1-4中所示的任何***、其他可能的***执行。
本领域技术人员将理解,本文描述的流程图示出了本公开的某些实施方式的功能和操作。在这点上,流程图的每个框可以表示程序代码的模块、段或部分,其包括可由一个或多个处理器执行以实现过程中的特定逻辑功能或步骤的一个或多个指令。程序代码可以存储在任何类型的计算机可读介质(例如,诸如包括盘或硬盘驱动器的存储设备)上。
此外,每个框可以表示被连线以执行过程中的特定逻辑功能的电路。替代实施方式包括在本申请的示例实施方式的范围内,其中,如本领域普通技术人员将理解的,取决于所涉及的功能,可以按照与所示或讨论的顺序不同的顺序执行功能,包括基本上同时或以相反的顺序执行功能。
在框502处,方法500涉及获得具有数据的图。例如,计算***可以获得各种类型的图。图可以从不同的源获得,诸如其他计算***、内部存储器和/或外部存储器。
在框504处,方法500涉及使用多上下文熵编码器来压缩图的数据。多上下文熵编码器对数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。
在一些示例中,压缩数据可以涉及使用多上下文熵编码器来压缩图的数据以存储在存储器中。此外,压缩数据可以涉及使用多上下文熵编码器压缩图的数据以传输到至少一个计算设备。在一些示例中,压缩图的数据可以涉及使用霍夫曼编码和ANS的组合。
在另外的示例中,方法500还可以涉及获得具有第二数据的第二图和使用多上下文熵编码器来压缩图的第二数据。在一些情况下,压缩图的第二数据与压缩图的所述数据同时执行。
在一些实施例中,方法500还可以涉及使用解码器解压缩图的被压缩数据。解码器可以被配置为对由多上下文熵编码器编码的数据进行解码。在某些情况下,可以使用多个解码器。解码器和/或编码器可以在不同类型的设备(诸如服务器、CPU、GPU等)之间传输和接收。
在一些实施例中,方法500还可以涉及,在使用多上下文熵编码器压缩图的数据的同时,确定与多上下文熵编码器关联的处理速度。方法500还可以涉及将处理速度与阈值处理速度进行比较,并基于将处理速度与阈值处理速度进行比较,调整多上下文熵编码器的操作。例如,***可以确定处理速度低于阈值处理速度,并基于确定处理速度低于阈值处理速度,降低多上下文熵编码器的操作速率(operation rate)。
在其他实施例中,计算***100可以在压缩或解压缩一个或多个图时确定和应用不同的权重。例如,计算***100可以向使用霍夫曼压缩的压缩分配比分配给经由ANS压缩的压缩的权重大的权重。压缩还可以涉及在每种压缩技术之间切换或同时执行这些技术。
图6是示出根据本文呈现的至少一些实施例布置的示例计算机程序产品的概念性局部视图的示意图,该示例计算机程序产品包括用于在计算设备上执行计算机过程的计算机程序。在一些实施例中,所公开的方法可以被实现为计算机程序指令,该计算机程序指令以机器可读格式编码在非暂时性计算机可读存储介质上,或在其他非暂时性介质或制品上。
在一个实施例中,示例计算机程序产品600使用信号承载介质602提供,该信号承载介质602可以包括一个或多个编程指令604,该一个或多个编程指令604在由一个或多个处理器执行时可以提供上述关于图1-5描述的功能或部分功能。在一些示例中,信号承载介质602可以涵盖非暂时性计算机可读介质606,诸如但不限于硬盘驱动器、紧凑式盘(CD)、数字视频盘(DVD)、数字带、存储器等。在一些实施方式中,信号承载介质602可以涵盖计算机可记录介质608,诸如但不限于存储器、读/写(R/W)CD、R/W DVD等。
在一些实施方式中,信号承载介质602可以涵盖通信介质610,诸如但不限于数字和/或模拟通信介质(例如,光纤缆、波导、有线通信链路、无线通信链路等)。因此,例如,信号承载介质602可以通过无线形式的通信介质610来传送。
一个或多个编程指令604可以是例如计算机可执行指令和/或逻辑实现的指令。在一些示例中,图1的计算***100可以被配置为响应于通过计算机可读介质606、计算机可记录介质608和/或通信介质610中的一个或多个传送到计算***100的编程指令604来提供各种操作、功能或动作。
非暂时性计算机可读介质还可以分布在多个数据存储元件之中,这些数据存储元件可以彼此远程地定位。替代地,执行一些或所有存储的指令的计算设备可以是另一计算设备,诸如服务器。
5、结论
本公开的实施方式提供了特定于计算机技术的技术改进,例如,涉及分析具有数千个参数的大规模数据文件的技术改进。计算机特定的技术问题,诸如能够将数据格式化为用于参数合理性分析的标准化形式,可以通过本公开的实施方式全部或部分地解决。例如,本公开的实施方式允许从许多不同类型的传感器接收的数据被格式化并以非常高效的方式针对准确性和合理性被检查,而不是使用人工检查。包括来自不同类型传感器的输出(诸如在单个文件中级联在一起的输出)的源数据文件可以由一个计算设备在一个计算处理事务中一起处理,而不是每个传感器输出由单独的设备或通过单独的计算事务处理。这也非常有利于实现不同传感器的输出的组合的检查和比较,以进一步提供在单独地处理传感器输出时无法执行的对数据的合理性的洞悉。因此,本公开的实施方式可以以通过选择性地将适当的转换图应用于数据以进行传感器输出的批处理来在分析数据的方式中引入新的和高效的改进。
本公开的***和方法还解决了特定于计算机网络的问题,例如,涉及处理(一个或多个)源文件的问题,该源文件包括从各种传感器接收的用于与在多个数据库内找到的预期数据(作为对每个传感器读数的因果分析的结果而生成)进行比较的数据。这些计算网络特定的问题可以通过本公开的实施方式来解决。例如,通过识别转换图并将该图应用于数据,可以将公共格式与多个源文件关联,以进行更高效的合理性检查。可以使用比当前手动执行的资源少得多的资源来处理源文件,并且由于使用了原本可以应用于标准化数据的参数规则数据库,因此提高了准确性级别。本公开的实施方式因此在数据库可以应用于源数据文件中的数据的方式中引入了新的和高效的改进,以提高被配置为支持或利用数据库的一个或多个基于处理器的***的速度和/或效率。
本公开在本申请中描述的特定实施例方面不受限制,特定实施例旨在作为对各个方面的说明。可以在不脱离其范围的情况下进行许多修改和变化,这对本领域技术人员来说将是显而易见的。根据前面的描述,除了在此列举的那些之外,在本公开的范围内的功能等效方法和装置对于本领域技术人员来说将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围。
以上详细描述参考附图描述了所公开的***、设备和方法的各种特征和功能。本文和附图中描述的示例实施例并不意味着进行限制。可以利用其他实施例,并且可以做出其他改变,而不背离本文呈现的主题的范围。将容易理解的是,如本文一般地描述的和在图中示出的本公开的各方面可以以各种不同的配置被布置、替换、组合、分离和设计,所有这些都在本文被明确考虑。
关于在图中以及如本文所讨论的任何或所有消息流图、场景和流程图,每个步骤、框和/或通信可以表示根据示例实施例的对信息的处理和/或对信息的传输。替代实施例被包括在这些示例实施例的范围内。在这些替代实施例中,例如,被描述为步骤、框、传输、通信、请求、响应和/或消息的功能可以与所示或讨论的顺序不同的顺序执行,包括基本上同时或以相反的顺序执行,这取决于所涉及的功能。此外,更多或更少的框和/或功能可以与本文讨论的梯形图、场景和流程图中的任何一个一起使用,并且这些梯形图、场景和流程图可以部分地或全部地彼此组合。
表示信息处理的步骤或框可以与可以被配置为执行本文描述的方法或技术的特定逻辑功能的电路对应。替代地或附加地,表示信息处理的步骤或框可以与程序代码的模块、段或部分(包括相关数据)对应。程序代码可以包括可由处理器执行以实现所述方法或技术中的特定逻辑功能或动作的一个或多个指令。程序代码和/或相关数据可以存储在任何类型的计算机可读介质(诸如包括盘、硬盘驱动器或其他存储介质的存储设备)上。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如在短时间段内存储数据的计算机可读介质,比如寄存器存储器、处理器高速缓存和随机存取存储器(RAM)。计算机可读介质还可以包括将程序代码和/或数据存储更长的时间段的非暂时性计算机可读介质。因此,例如,计算机可读介质可以包括辅助或持久性长期存储装置,比如只读存储器(ROM)、光盘或磁盘、紧凑式盘只读存储器(CD-ROM)。计算机可读介质也可以是任何其他易失性或非易失性存储***。例如,计算机可读介质可以被认为是计算机可读存储介质或有形存储设备。
此外,表示一个或多个信息传输的步骤或框可以与同一物理设备中的软件和/或硬件模块之间的信息传输对应。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间。
图中所示的特定布置不应被视为进行限制。应当理解,其他实施例可以包括更多或更少的给定图中所示的每个元素。此外,一些示出的元素可以被组合或省略。此外,示例实施例可以包括图中未示出的元素。
此外,本说明书或权利要求中的元素、框或步骤的任何列举都是为了清楚的目的。因此,这样的列举不应被解释为要求或暗示这些元素、框或步骤遵循特定布置或以特定顺序执行。
虽然本文已经公开了各个方面和实施例,但其他方面和实施例对于本领域技术人员来说将是显而易见的。本文公开的各个方面和实施例是出于说明的目的而不旨在进行限制,真实范围由所附权利要求指示。
Claims (20)
1.一种方法,包括:
在计算***处获得具有数据的图;和
通过所述计算***使用多上下文熵编码器压缩所述图的数据,其中,所述多上下文熵编码器对所述数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。
2.根据权利要求1所述的方法,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用所述多上下文熵编码器压缩所述图的数据以存储在存储器中。
3.根据权利要求1所述的方法,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用所述多上下文熵编码器压缩所述图的数据以传输到至少一个计算设备。
4.根据权利要求1所述的方法,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用霍夫曼编码和非对称数字***(ANS)的组合来压缩所述图的数据。
5.根据权利要求1所述的方法,还包括:
获得具有第二数据的第二图;以及
使用所述多上下文熵编码器压缩所述图的第二数据,其中,压缩所述图的第二数据与压缩所述图的数据同时执行。
6.根据权利要求1所述的方法,还包括:
使用解码器解压缩所述图的被压缩数据,其中,所述解码器被配置为解码由所述多上下文熵编码器编码的数据。
7.一种***,包括:
计算***;
非暂时性计算机可读介质;以及
存储在所述非暂时性计算机可读介质上的程序指令,其中,所述程序指令可由所述计算***执行以执行操作,所述操作包括:
获得具有数据的图;以及
使用多上下文熵编码器压缩所述图的数据,其中,所述多上下文熵编码器对所述数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。
8.根据权利要求7所述的***,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用所述多上下文熵编码器压缩所述图的数据以存储在存储器中。
9.根据权利要求7所述的***,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用所述多上下文熵编码器压缩所述图的数据以传输到至少一个计算设备。
10.根据权利要求7所述的***,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用霍夫曼编码和非对称数字***(ANS)的组合来压缩所述图的数据。
11.根据权利要求7所述的***,其中,所述操作还包括:
获得具有第二数据的第二图;以及
使用所述多上下文熵编码器压缩所述图的第二数据,其中,压缩所述图的第二数据与压缩所述图的数据同时执行。
12.根据权利要求7所述的***,还包括:
使用解码器解压缩所述图的被压缩数据,其中,所述解码器被配置为解码由所述多上下文熵编码器编码的数据。
13.一种非暂时性计算机可读介质,其中存储有指令,所述指令可由一个或多个处理器执行以使计算***执行功能,所述功能包括:
获得具有数据的图;以及
使用多上下文熵编码器压缩所述图的数据,其中,所述多上下文熵编码器对所述数据内的邻接列表进行编码,使得每个整数被分配给不同的概率分布。
14.根据权利要求13所述的非暂时性计算机可读介质,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用所述多上下文熵编码器压缩所述图的数据以存储在存储器中。
15.根据权利要求13所述的非暂时性计算机可读介质,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用所述多上下文熵编码器压缩所述图的数据以传输到至少一个计算设备。
16.根据权利要求13所述的非暂时性计算机可读介质,其中,使用所述多上下文熵编码器压缩所述图的数据包括:
使用霍夫曼编码和非对称数字***(ANS)的组合来压缩所述图的数据。
17.根据权利要求13所述的非暂时性计算机可读介质,还包括:
获得具有第二数据的第二图;以及
使用所述多上下文熵编码器压缩所述图的第二数据,其中,压缩所述图的第二数据与压缩所述图的数据同时执行。
18.根据权利要求13所述的非暂时性计算机可读介质,还包括:
使用解码器解压缩所述图的被压缩数据,其中,所述解码器被配置为解码由所述多上下文熵编码器编码的数据。
19.根据权利要求13所述的非暂时性计算机可读介质,还包括:
在使用所述多上下文熵编码器压缩所述图的数据时,确定与所述多上下文熵编码器关联的处理速度;
将所述处理速度与阈值处理速度进行比较;以及
基于将所述处理速度与所述阈值处理速度进行比较来调整所述多上下文熵编码器的操作。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,基于将所述处理速度与所述阈值处理速度进行比较来调整所述多上下文熵编码器的操作包括:
确定所述处理速度低于所述阈值处理速度;以及
基于确定所述处理速度低于所述阈值处理速度,降低所述多上下文熵编码器的操作速率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062975722P | 2020-02-12 | 2020-02-12 | |
US62/975,722 | 2020-02-12 | ||
PCT/US2020/030870 WO2021162722A1 (en) | 2020-02-12 | 2020-04-30 | Multi-context entropy coding for compression of graphs |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115104305A true CN115104305A (zh) | 2022-09-23 |
Family
ID=77292551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080096330.9A Pending CN115104305A (zh) | 2020-02-12 | 2020-04-30 | 用于图压缩的多上下文熵编码 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230042018A1 (zh) |
EP (1) | EP4078957A4 (zh) |
CN (1) | CN115104305A (zh) |
WO (1) | WO2021162722A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155407A (zh) * | 2023-10-31 | 2023-12-01 | 博洛尼智能科技(青岛)有限公司 | 一种智慧镜柜消毒日志数据优化存储方法 |
CN117394866A (zh) * | 2023-10-07 | 2024-01-12 | 广东图为信息技术有限公司 | 一种基于环境自适应的智能拍门*** |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240022260A1 (en) * | 2022-07-12 | 2024-01-18 | Samsung Display Co., Ltd. | Low complexity optimal parallel huffman encoder and decoder |
CN116600135B (zh) * | 2023-06-06 | 2024-02-13 | 广州大学 | 基于无损压缩的溯源图压缩方法及*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549666B1 (en) * | 1994-09-21 | 2003-04-15 | Ricoh Company, Ltd | Reversible embedded wavelet system implementation |
US7545293B2 (en) * | 2006-11-14 | 2009-06-09 | Qualcomm Incorporated | Memory efficient coding of variable length codes |
ES2906869T3 (es) * | 2011-06-16 | 2022-04-20 | Ge Video Compression Llc | Inicialización de contexto en codificación entrópica |
WO2013132408A1 (en) * | 2012-03-04 | 2013-09-12 | Jeffries Adam | Data systems processing |
GB2513111A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
US10735736B2 (en) * | 2017-08-29 | 2020-08-04 | Google Llc | Selective mixing for entropy coding in video compression |
FI3514968T3 (fi) * | 2018-01-18 | 2023-05-25 | Blackberry Ltd | Menetelmiä ja laitteita pistepilvien entropiakoodausta varten |
CN112771541A (zh) * | 2018-09-27 | 2021-05-07 | 谷歌有限责任公司 | 使用整数神经网络的数据压缩 |
-
2020
- 2020-04-30 EP EP20919163.4A patent/EP4078957A4/en not_active Withdrawn
- 2020-04-30 US US17/758,851 patent/US20230042018A1/en not_active Abandoned
- 2020-04-30 CN CN202080096330.9A patent/CN115104305A/zh active Pending
- 2020-04-30 WO PCT/US2020/030870 patent/WO2021162722A1/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117394866A (zh) * | 2023-10-07 | 2024-01-12 | 广东图为信息技术有限公司 | 一种基于环境自适应的智能拍门*** |
CN117394866B (zh) * | 2023-10-07 | 2024-04-02 | 广东图为信息技术有限公司 | 一种基于环境自适应的智能拍门*** |
CN117155407A (zh) * | 2023-10-31 | 2023-12-01 | 博洛尼智能科技(青岛)有限公司 | 一种智慧镜柜消毒日志数据优化存储方法 |
CN117155407B (zh) * | 2023-10-31 | 2024-04-05 | 博洛尼智能科技(青岛)有限公司 | 一种智慧镜柜消毒日志数据优化存储方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4078957A1 (en) | 2022-10-26 |
EP4078957A4 (en) | 2024-01-03 |
WO2021162722A1 (en) | 2021-08-19 |
US20230042018A1 (en) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230042018A1 (en) | Multi-context entropy coding for compression of graphs | |
US10187081B1 (en) | Dictionary preload for data compression | |
US10680645B2 (en) | System and method for data storage, transfer, synchronization, and security using codeword probability estimation | |
US10666289B1 (en) | Data compression using dictionary encoding | |
US10476519B2 (en) | System and method for high-speed transfer of small data sets | |
US10706018B2 (en) | Bandwidth-efficient installation of software on target devices using reference code libraries | |
US8751671B2 (en) | Hierarchical bitmasks for indicating the presence or absence of serialized data fields | |
KR100484137B1 (ko) | 개선된 허프만 디코딩 방법 및 장치 | |
CN116018647A (zh) | 通过基于可配置机器学习的算术编码进行的基因组信息压缩 | |
US11928335B2 (en) | System and method for data compaction utilizing mismatch probability estimation | |
US20230107760A1 (en) | System and method for multiple pass data compaction utilizing delta encoding | |
US7796059B2 (en) | Fast approximate dynamic Huffman coding with periodic regeneration and precomputing | |
CN117811586A (zh) | 数据编码方法及装置、数据处理***、设备及介质 | |
US20240020006A1 (en) | System and method for compaction of floating-point numbers within a dataset | |
Wang et al. | A simplified variant of tabled asymmetric numeral systems with a smaller look-up table | |
US11700013B2 (en) | System and method for data compaction and security with extended functionality | |
Williams | Performance Overhead of Lossless Data Compression and Decompression Algorithms: A Qualitative Fundamental Research Study | |
GB2607923A (en) | Power-aware transmission of quantum control signals | |
Baidoo | Comparative analysis of the compression of text data using huffman, arithmetic, run-length, and lempel ziv welch coding algorithms | |
Jiancheng et al. | Block‐Split Array Coding Algorithm for Long‐Stream Data Compression | |
US20220404887A1 (en) | Power-aware transmission of quantum control signals | |
US11967974B2 (en) | System and method for data compression with protocol adaptation | |
US20240080040A1 (en) | System and method for data storage, transfer, synchronization, and security using automated model monitoring and training | |
US20240202163A1 (en) | System and method for random-access manipulation of compacted data files | |
US20230169042A1 (en) | System and method for computer data type identification |
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 |