范氏霍夫曼編碼

范式霍夫曼编码（Canonical Huffman Code）是一种特殊的霍夫曼编码，最早由Schwartz（1964）所提出。
数据的编解码运作方式中，以霍夫曼编码来举例，编解码器的其中一方必须要知道霍夫曼树的结构信息，以便还原。所以其中一方必须存储或传输霍夫曼树。传统的霍夫曼编码使用树状模型编码，给出现机率或频率较高的符号（Symbol）较短的编码，以提高压缩率。但是这个方式造成两个极大的缺点，第一，每一个树的节点都要存储有关它的父节点与子节点等等相关信息，如果符号集合的数量包含许多不同机率的符号，存储器的负荷量会明显增大许多。第二，霍夫曼树的追踪需要耗费极大的运算量。所以基于以上两个论点，传统的霍夫曼编码是一种极为消耗存储空间且没有效率的方式。
而范式霍夫曼编码修正了这些缺点，借由一些原则以达成利用较少的数据便能还原霍夫曼编码的功能。范式霍夫曼编码要求相同长度编码必须是连续的，例如：长度为4的编码0001，其他相同长度的编码必须为0010、0011、0100...等等。为了尽可能降低存储空间，编码长度为 的第一个符号可以从编码长度为 的最后一个符号所得知，即 ，例如：从长度为3的最后一个编码100，可推知长度为4的第一个编码为1010。最后，最小编码长度的第一个编码必须从0开始。范式霍夫曼编码通过这些原则，便可以从每个编码还原整个霍夫曼编码树。