Skip to main content
QUICK REVIEW

[论文解读] Interleaved entropy coders

F. Giesen|arXiv (Cornell University)|Feb 14, 2014
Computability, Logic, AI Algorithms参考文献 5被引用 26
一句话总结

本文提出一种方法,可在无需元数据的情况下,将多个熵编码器——特别是 ANS(非对称数字符号系统)编码器——交织到单个比特流中,利用其对称状态行为。通过利用编码器和解码器在编码/解码过程中保持相同内部状态的特性,该方法实现了高度高效的 SIMD 和 GPU 并行化,相较于标量实现,解压缩性能最高可提升 2.7 倍。

ABSTRACT

The ANS family of arithmetic coders developed by Jarek Duda has the unique property that encoder and decoder are completely symmetric in the sense that a decoder reading bits will be in the exact same state that the encoder was in when writing those bits---all "buffering" of information is explicitly part of the coder state and identical between encoder and decoder. As a consequence, the output from multiple ABS/ANS coders can be interleaved into the same bitstream without any additional metadata. This allows for very efficient encoding and decoding on CPUs supporting superscalar execution or SIMD instructions, as well as GPU implementations. We also show how interleaving without additional metadata can be implemented for any entropy coder, at some increase in encoder complexity.

研究动机与目标

  • 实现利用 SIMD 和 GPU 架构对熵编码数据流进行高效并行解码。
  • 利用 ANS 编码器的对称状态行为,即编码器和解码器保持相同的内部状态,以实现无需元数据的多个编码器交织。
  • 证明该特性可推广至任意熵编码器,通过一种新颖的仪器化编码技术。
  • 通过利用超标量 CPU 执行和向量化 GPU 内核,实现高吞吐量和低延迟解码。
  • 提供一种实用且兼容的实现方案,适用于标量、SIMD 和 GPU 平台,且使用相同的比特流格式。

提出的方法

  • 利用 ANS 编码器的独特对称性:每次符号写入后,解码器的状态与编码器的状态完全一致,从而实现状态保持的交织。
  • 采用流式 ANS 公式,将状态变量 x 保持在归一化区间 I 内,以限制状态增长并支持高效的固定宽度算术运算。
  • 在编码器和解码器中均采用重归一化机制,基于状态 x 同步位 I/O 操作,确保多个编码器之间行为一致。
  • 通过并行运行多个独立的 ANS 编码器实现向量化执行,利用相同的状态演化规则将输出交织到单个比特流中。
  • 使用 GPU 优化技术,如线程束级投票指令或原子操作,生成指示哪些线程需要重归一化的掩码,从而实现合并的内存访问。
  • 通过在编码时模拟多流解码器,将该方法推广至任意熵编码器,以预测并对齐多个编码器之间的状态转换。

实验结果

研究问题

  • RQ1是否可以无需额外元数据将多个 ANS 编码器交织到单个比特流中?若可以,其条件是什么?
  • RQ2如何利用 ANS 编码器的对称状态行为,实现高效的 SIMD 和 GPU 并行解码?
  • RQ3在现代超标量 CPU 和 GPU 架构上,通过交织解码可获得多大的性能提升?
  • RQ4ANS 的无元数据交织特性是否可推广至 ANS 以外的其他熵编码器?
  • RQ5在使用交织、向量化熵编码时,编码器复杂度与解码器性能之间的实际权衡是什么?

主要发现

  • 在 CPU 上实现 2 路交织解码,相较于非交织的标量解码,性能提升 1.6× 至 2.8×,且在多种数据集上表现一致。
  • 使用 SSE4.1 的 8 路交织 SIMD 解码器,相较于标量基线,最高可实现 2.7× 的性能提升,表明在超标量处理器上具有良好的可扩展性。
  • 该 SIMD 实现为无分支,性能几乎恒定,不受输入数据影响,而标量解码器则存在可变吞吐量问题。
  • 相同的比特流格式在标量、SIMD 和 GPU 实现中均兼容,可无缝集成到异构解压缩流水线中。
  • 基于 GPU 的解码使用线程束级投票指令或原子操作,实现合并的内存访问和高效向量化,支持高吞吐量解码。
  • 通过在编码时仪器化多流解码器,该方法可推广至任意熵编码器,实现无元数据交织,代价是编码器复杂度增加。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。