Move-to-front transform

✍ dations ◷ 2025-11-15 12:19:26 #算法

MTF(Move-To-Front)是一种数据编码方式,作为一个额外的步骤,用于提高数据压缩技术效果。MTF主要使用的是数据“空间局部性”,也就是最近出现过的字符很可能在接下来的文本附近再次出现。

(1)首先维护一个文本字符集大小的栈表,“recently used symbols”(最近访问过的字符),其中每个不同的字符在其中占一个位置,位置从0开始编号。(2)扫描需要重新编码的文本数据,对于每个扫描到的字符,使用该字符在“recently used symbols”中的index替换,并将该字符提到“recently used symbols”的栈顶的位置(index为0的位置)。重复上一步骤,直到文本扫描结束。

以字符串“annbaa”为例(“annbaa”在这里为字符串“banana”经过BWT变换后的结果Bzip2 Burrows-Wheeler变换)。基于recently used symbols,设立一个栈表“abcdefghijklmnopqrstuvwxyz”。

a n n b a a
a n n b a a
a n n b a a
a n n b a a
a n n b a a
a n n b a a
结果
0
0,13
0,13,0
0,13,0,2
0,13,0,2,2
0,13,0,2,2,0
0,13,0,2,2,0
abcdefghijklmnopqrstuvwxyz
nabcdefghijklmopqrstuvwxyz
nabcdefghijklmopqrstuvwxyz
bnacdefghijklmopqrstuvwxyz
abncdefghijklmopqrstuvwxyz
abncdefghijklmopqrstuvwxyz
abncdefghijklmopqrstuvwxyz
Index of a = 0; record 0; a is on the top
Index of n = 13; record 13; move n to the top
Index of n = 0; record 0; n is on the top
Index of b = 2; record 2; move b to the top
Index of a = 2; record 2; move a to the top
Index of a = 0; record 0; a is on the top

MTF的压还原过程

以序列“0, 13, 0, 2, 2, 0”为例(“0, 13, 0, 2, 2, 0”在这里为字符串“aaabnn”经过MVT压缩后的结果)。基于栈表“nbacdefghijklmopqrstuvwxyz”,n的指数为0,z的指数为25。

相关

  • 心肌炎心肌炎(拉丁语:Myocarditis),也称为炎症性心肌病(Inflammatory Cardiomyopathy),是心肌的炎症。症状可表现为呼吸困难、胸口疼痛(英语:chest pain)、运动能力降低、心律不整等。发病时
  • 俄勒冈理工学院俄勒冈理工学院(Oregon Institute of Technology,简称:Oregon Tech或OIT)是俄勒冈大学系统内的七所大学之一,位于美国俄勒冈州克拉马斯福尔斯,此外在威尔逊维尔有一个分校区,在撒冷
  • 畜牧学畜牧学是研究家畜的饲养、管理、繁育以及其制品利用的科学,是畜牧业的基础学科。家畜是指人工饲养的动物,在古代的中国家畜主要指"六畜"(马、牛、羊、鸡、犬、猪),目前人工饲养的
  • 徐建中徐建中(1940年3月3日-),中国工程热物理专家。原籍辽宁北镇,生于江西吉安。1963年毕业于中国科学技术大学。1967年中国科学院力学研究所研究生毕业。中国科学院工程热物理研究所研
  • 结痂愈合伤口愈合或创伤愈合(Wound healing)是创伤后人体皮肤和表皮组织再生的自然过程。正常来说,皮肤的表皮(最外层)和真皮(内部或深层)存在于一个平衡的状态,以形成一个保护伤口的屏障。
  • 阿克兰省阿克兰省(Aklan Province)位于菲律宾米沙鄢群岛中部的班乃岛,是西米沙鄢区的一个省,成立于1956年,人口约45万(2000年),首府卡利博。
  • 甲酸钠甲酸钠(英语:sodium formate,化学式:HCOONa)又名蚁酸钠,是钠的甲酸盐。白色吸水性粉末或结晶,有轻微的甲酸气味。溶于水和甘油,微溶于乙醇,不溶于乙醚。有毒。1. 由一氧化碳与氢氧化
  • 日本岛屿列表日本岛屿列表列出所有现时日本政府主张领有权的岛屿在日本政府主张领有权的范围内,面积100 km2以上的岛屿共有25个(除去本州等四大岛)。
  • 280号州际公路280号州际公路是80号州际公路的辅助线。基于所在位置,这条公路可以指:
  • 嫩林铁路嫩林铁路自黑龙江嫩江经过加格达奇、塔河、漠河至古莲,全长680千米,是为大兴安岭林区建设的一条铁路。1958年7月开工,1974年8月交付运营。