译码变长码的方法和设备技术

技术编号:3424179 阅读:202 留言:0更新日期:2012-04-11 18:40
一种利用霍夫曼码树高速译码变长码字的方法和设备,其特征是利用霍夫曼码树结构的级的节点顺序来存储变长编码码字并利用预定计算操作来检测编码码字的节点顺序;译码时该节点顺序为译码码字的地址;当中央系统操作改变霍夫曼码树时,只在存储器和锁存器中存储变量而不改变硬件来实现变长码译码;利用并行计算和时钟处理编码码字而不考虑译码码字长度。其译码速度高于以位为单位的普通变长编码译码设备和方法的译码速度。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及译码变长码的方法和设备,特别涉及利用霍夫曼码树高速译码诸如数字图像信号这样的变长码字的方法和设备。一般来说,数字图像信号具有许多优点。例如,数字图像信号在图像质量方面优于模拟图像信号。因此,数字图像信号渐渐地被更加经常地使用,这是近来的趋向。另一方面,因为数字化的图像信息具有大量的信息容量,所以为了有效地传送图像信息,必需对其进行压缩和精减。因此,利用了图像特性的有效的图像压缩方法可被认为是图像通信的主要领域。在压缩图像数据的方法中,已知混合编码方法是组合了概率编码以及空间和时间压缩的最有效的方法。大多数混合编码方法利用差分脉码调制(DPCM)、离散余弦变换(DCT)、DCT系数的量化以及变长编码(VLC)。变长编码是经常用于无损失数据压缩的编码技术。根据这一技术,固定长度数据按照数据的统计资料被变换为可变长度码字。一般来说,这样选择码字的长度使较短的码字用来表示较经常出现的数据和较长的码字用来表示不那么经常出现的数据。通过恰当地将变长码字分配给所有可能源码字的库,变长码的平均字长度比原始数据的平均字长度短,因此,实现了数据压缩。霍夫曼代码设计是通常用来对于已知的数据统计资料构成最小冗余变长码的方法。一般来说,可以通过利用输入数据来寻址查阅表的查阅表查阅操作来实现编码操作。码字和字长作为表的内容被存储并以恒定的数据速率经缓冲器被顺序地输出至数据信道。但是,在接收端的译码操作较复杂。由于可变长度特性,在每一码字能够被译码成源符号之前不得不根据接收位串对每一码字进行分段。因此,可变长度译码器的设计总是难于可变长度编码器的设计。有若干种译码一连串变长码字的方法。最经常使用的一种称为树搜索算法。变长码总是可以用将码字作为树页(也称为终端节点)的树来表示。译码从码树的根开始,在接收位串的引导下沿着每一节点处的两条分支之一进行。一旦到达了终端节点,就检测到码字的结束并将其与剩余的位串分割开来。这种译码器包括相应于树的逻辑电路和通过码树的控制电路。由于对每一译码符号需要沿码树逐位进行搜索,所以这一方法会是很慢的,尤其对长的码字更是如此。在一般的应用中,一个输入符号用若干位来表示。接收位移入译码器的速度是译码数据平均速度的若干倍。因此,基于树搜索的译码器必需以是输出数据速率若干倍的速度进行操作。这种高速需求对于高清晰度电视(HDTV)信号的数字传输尤其重要。在这种HDTV系统中,总取样速率(组合了亮度和色度信号)很可能是100MHz。如果采用变长编码,最大长度的码字常为16位。逐位译码器于是将需要以是该取样速率16倍的速度、即以1.6千兆位/秒的速度进行移位来检测处于该取样速率的码字。这样高的速度用目前的IC技术来实现是非常困难的。还提出了各种设备来译码一连串变长码字。变长译码设备被分成顺序译码和并行译码。首先,顺序译码是按照在位串前端的顺序开始译码位串的方法,并且被分成正常速度输入结构、正常速度输出结构和可变输入/输出结构。顺序译码的设计很容易,但由于它具有每次一位地对输入位串进行处理的正常速度输入结构,所以它有速度慢的问题。Bell Core的M.T.Sun提出的正常速度输出结构的变长译码设备是在将输入位串压缩成与最长码字长度一般长之后将其输入到只读存储器/可编程逻辑阵列(ROM/PLA)表中的设备,该变长译码设备在码字的译码期间搜索存储在该表中的码字、将搜索到的码字长度移位到桶形移位器(barrel shifter)、以及搜索下一个码字(授权给Bell Core的美国专利5173695和5245338号)。即由于正常速度输出结构的变长译码设备在一周期内译码一个码字,所以它的译码速度比正常速度输入结构的变长译码设备的译码速度快。此后,普通译码器的操作可更容易地被理解。假定从数据信道107输入到缓冲器106的数据流由图3所示的位流a1-a8b1-b6C1-C15d1-d15e1-e12f1-f10g1-g9h1-h16......组成,a1-a8表示在第一变长码字中的8个位,b1-b6表示在第二变长码字中的6个位,等等。在第一时钟信号之前,锁存器131被初始化,所以“读”输出是“1”。锁存器121也被初始化,所以第一桶形移位器109具有“16”的初始移位。由于从锁存器121输入“16”给加法器130和还从锁存器131输入16模16(等于“0”)给加法器130,所以加法器130的输出、即第二桶形移位器127的移位是“16”,“进位”为“1”。由于“读”为“1”,所以由16位a1-a8b1-b6c1c2组成的第一数据段通过导线105输入给接口部分102。此时,全部锁存器、桶形移位器109和127的输出以及PLA 116的输出都是噪声值,在图2中用“X”来表示。在第一时钟周期信号时,先前“进位”“1”变成“读”“1”,这就从缓冲器106中检索下一数据段至导线105。但是,在这一时钟信号时,先前“进位”“1”使缓冲器106的先前输出被读入锁存器126。锁存器121仍初始化在“16”,所以第一桶形移位器109的移位的仍然是“16”,加法器130仍为“16”,“读”为“1”,“进位”为“1”。由于第二桶形移位器127的移位为“16”和第17-第32位是来自锁存器126的a1-a8b1-b6C1C2,所以该序列出现在第二桶形移位器127的输出端。锁存器100、111和125含有噪声,正如第一桶形移位器109的输出和PLA 116的译码字和码字长度输出也包含噪声一样。在第二时钟信号时,第二桶形移位器127的先前输出被锁存入锁存器111。由于“读”仍为“1”并且先前进位是“1”,所以从缓冲器106检索下一数据段(第三),在锁存器126中的数据段(第一)被锁存入锁存器125,第二数据段被锁存入锁存器126。锁存器121仍被初始化,所以第一桶形移位器109的移位是“16”。这就保持了加法器130的输出为“16”、“进位”和“读”为“1”。由于第二桶形移位器127的先前输出包括了第一数据段,所以在第二时钟信号时,该段出现在锁存器111中和在第一桶形移位器109的第17-第32输入位置上。在第一桶形移位器109移位输入端处的“16”于是通过导线112将该第一段传送至桶形移位器的输出端。在第二桶形移位器127移位输入端处的“16”将在锁存器126中的第二数据段C3-C5d1-d13传送至第二桶形移位器127的输出端。PLA 116中的码字表将在第一段中的最先8个位识别为码字“A”。译码字表119在导线103上输出这一定长译码字A。码字长度表118在导线120上输出该字的长度“8”。在第三时钟信号时,该第一数据段被锁存入锁存器110,并因此被锁存入第一桶形移位器109的第一16输入端。以前的译码长度“8”被锁存入锁存器121,它即是第一桶形移位器109的移位。第一桶形移位器109的输出移位到第9-第24个输入位,即序列b1-b6C1-C5d1-d5。第二时钟信号时的“进位”“1”在该第三时钟信号时变成“读”“1”,于是从缓冲器106检索下一数据段。一旦第三时钟信号出现,这一先前“进位”“1”就将以前的段从缓冲器106传送至锁存器126,并从锁存器126传送至锁存器125。在锁存器121输出端处的“8”被加法器1本文档来自技高网...

【技术保护点】
一种译码变长码的方法,所述方法包括以下步骤: a)接收具有多个基于霍夫曼码树结构的变长码字的用于译码的编码位串,按照多至最长的码字长度对接收的用于译码的编码位串进行压缩,输出被压缩的用于译码的编码位串; b)计算被压缩编码位串的节点位置值来进行步骤a)输出的最长码字长度的译码,以便检测来自被压缩编码位串的码字的边界线来进行多至最长码字长度的译码; c)根据步骤b)计算的节点位置值检测变长码字的码长; d)计算从级“0”至在相应于符合步骤c)的检测码长的码字的节点所位于的级之前的级的总终端节点数; e)将步骤b)中所计算的节点位置值中的相应于在步骤c)中检测的码长的节点位置值与在步骤d)中计算的总终端节点数相加,输出该相加值; f)读出具有作为根据译码码字的节点位置从正则霍夫曼码树的根起顺序地存储了译码码字的存储器的地址的步骤e)的相加值的待译码码字;以及 g)判断是否还有输入的待译码位串,如果没有输入的待译码位串,就结束程序,如果有输入的待译码位串,就返回到步骤a)。

【技术特征摘要】

【专利技术属性】
技术研发人员:南承铉
申请(专利权)人:大宇电子有限公司
类型:发明
国别省市:KR[韩国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1