CN1115783C - 高速可变长度码解码装置 - Google Patents

高速可变长度码解码装置 Download PDF

Info

Publication number
CN1115783C
CN1115783C CN96103500A CN96103500A CN1115783C CN 1115783 C CN1115783 C CN 1115783C CN 96103500 A CN96103500 A CN 96103500A CN 96103500 A CN96103500 A CN 96103500A CN 1115783 C CN1115783 C CN 1115783C
Authority
CN
China
Prior art keywords
length
code
latch
window
code word
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.)
Expired - Fee Related
Application number
CN96103500A
Other languages
English (en)
Other versions
CN1136236A (zh
Inventor
孙永硕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fengye Vision Technology Co., Ltd.
Original Assignee
Daewoo Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Daewoo Electronics Co Ltd filed Critical Daewoo Electronics Co Ltd
Publication of CN1136236A publication Critical patent/CN1136236A/zh
Application granted granted Critical
Publication of CN1115783C publication Critical patent/CN1115783C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

解码顺序的可变长度码字的可变长度码解码装置,包括响应窗口控制信号产生第一窗口输出序列的第一桶形移位器;响应解码码字长度产生第二窗口输出序列的第二桶形移位器;将第二窗口输出序列锁存半个时钟周期并提供其作为解码输出序列的中继电路;响应可变长度码字的前缀码产生解码的码字长度及一前缀码长度的第一查寻表存储器;响应前缀码长度产生一码值的第三移位器;响应解码的码字长度及该码值产生固定长度字的第二查寻表存储器;及产生窗口控制信号的累加单元。

Description

高速可变长度码解码装置
发明领域
本发明涉及可变长度码(VLC)解码装置,更具体地,涉及一种改进的VLC解码装置,它能通过在每个时钟周期上解码二个码字提供高速的解码操作。
背景技术
可变长度编码是一种常用于无损失数据压缩的技术。该技术基于数据的统计出现率将固定长度数据转换成可变长度码字。码字长度这样地选择,即较短的码字用来表示更频繁出现的数据,而较长的码字被选择来表示较少频繁出现的数据。通过对所有可能的源码字库适当地分配可变长度码字,使可变长度码字的平均字长变得短于原始数据的字长,由此使其可以获得数据压缩。
在这方面,霍夫曼(Huffman)码方案是一种在公知数据统计中通用的构成最小冗余可变长度码的方法。一般地,编码过程可以通过使用输入数据来对表寻址的查找表过程来实施。码字及字长信息作为表内容被存储,并通过使用缓冲器以恒定数据速率序贯地输出到数据通道中。
但是,在接收编码或压缩数据的接收端上,解码程度变得很复杂。由于可变的长度,每个码字在能被解码前必须由接收位串被分割成源符号。因此,可编长度解码器的设计比可变长度编码器困难得多。
具有多种公知的装置可用于对可变长度码字流解码。在其中,最常用的是使用树系搜索算法的VLC解码器,例如是在美国专利US4,889,149(公告日1990年2月6日授于Gary Kahan)中公开的一种解码器。在该装置中,可变长度码用码字作为树叶(也称端节点)的树来表示。解码处理开始于码树的根部并由接收到的位流引导以跟随在每个节点上两个树支中的一个。当达到一个树叶时,码字的端部被检测出来并从其余的位流中分割出来。这种类型的解码装置包括一个相应于树的逻辑电路及一个在码树上移动的控制电路。但是这种方案可能速度慢,尤其对于长码字,因为对于每个解码符号需要通过码树逐位地搜索。
基于查找表的VLC解码器公开在美国专利US.5,173,695(公告日1992年12月22日授于Ming-Ting Sun等人)中及US5,245,338(授于Ming-Ting Sun)中。这些解码器包括两个级联锁存器,每个具有等于最大码字长度的位容量,该电路存储由一个输入缓冲存储器提供的连续位,以便以固定长度数据段存储待被解码位流;连接两个锁存器的桶形移位器,用以提供其长度等于最大码字长度的滑动解码窗口;累加器,它累计按模计算的最大码字长度,序贯解码可变长度码字的长度;查找表存储装置,用于输出与包含在滑动解码窗口输出中的可变长度码字相对应的固定长度字及用于输出可变长度码字的长度。当在每个时钟周期期间码字被解码时,它的长度被累加及桶形移位器的解码窗口被移位以从下一待解码的码字的第一位开始。当在时钟周期中累计长度超过最大码字长度时,这将表示在第二锁存器中的所有位均被解码,在第一锁存器中的位被传送到第二锁存器中并从输入缓冲存储器将下一固定数据位段读入到第一锁存器中。
在上述的解码器结构中,操作速度被包括查找表存储器、桶形移位器及累加器的主要路径中的元件的操作延时所限制。并且,它的操作速度还被其在每个时钟周期上仅解码一个码字的有限能力进一步地受到阻碍。因此,本发明的主要目的是提供一种通过利用时钟信号的下降沿及上升沿能解码各时钟信号的两码字,从而提高其操作速度的VLC解码装置。
发明内容
根据本发明,提供一种用于以半时钟速率解码自一输入缓冲器提供的顺序的可变长度码字的可变长度码解码装置,其中该输入缓冲器存储待被以两倍于该可变长度码字的最大长度的长度进行解码的输入位流,所述装置包括:
第一及第二锁存器,用于存储输入缓冲器输入位流的连续固定长度段;
第一桶形移位器,被连接至第一及第二锁存器以及输入缓存器,并具有一用于产生来自第一及第二锁存器和输入缓存器提供的连续固定长度段中的位的第一窗口输出序列的第一输出窗口,该第一窗口输出序列的位长度等于可变长度码字的最大长度且该第一输出窗口直接响应于一窗口控制信号被移过该连续固定长度段中的比特数;
第二桶形移位器,被连接至第一桶形移位器并具有一用于产生来自包含在第一窗口输出序列及提供给其的先前解码输出序列中的位的第二窗口输出序列的第二输出窗口,该第二窗口输出序列的位长度等于可变长度码字的最大长度,所述第二输出窗口直接响应于码字长度被移位;
中继装置,用于将第二窗口输出序列锁存半个时钟周期并产生锁存的第二窗口输出序列作为解码输出序列,包括:锁存器,用于分别在时钟CLK的上升沿和下降沿锁存入该第二窗口输出序列;多路器,用于将交替地响应时钟下降沿来自锁存器及响应时钟上升沿来自锁存器的第二窗口输出序列提供给第一查询表及第二与第三桶形移位器;
第一查询表,被耦合至中继装置并用于响应一前缀码产生一码字长度和一前缀码长度,该前缀码由起始于解码输出序列的第一位位置的可变长度码字的高阶P位组成,P的最大值为一小于该可变长度码字的最大长度的整数;
第三桶形移位器,被连接至中继装置及第一查询表并具有一用于产生一来自解码输出序列中的位的第三窗口输出序列作为一码值的第三输出窗口,该第三窗口输出序列的位长度为一小于可变长度码字的最大长度的整数,所述第三输出窗口直接响应于前缀码长度被移位;
第二查询表,被连接至第一查询表及第三桶形移位器并用于响应码字长度及码值产生一固定长度字;及
累加装置,用于累加解码后的码字长度并产生窗口控制字,包括:
连接到第一查询表的加法单元,用于将码字长度与先前累加的码字长度相加以产生表示累加的码字长度的窗口控制信号,包括:锁存器,用于在互不相同的时钟沿锁存来自第一查询表的码字长度;运行在不同时钟沿的加法器;分别连接到加法器的多路器;
锁存单元,用于当累加的码字长度大于两倍的可变长度码字的长度时产生一读信号以便从输入缓冲器中读取下一个固定长度段,包括:累加锁存器,用于在与锁存器相同的时钟沿锁存来自多路器的先前累加的码字长度;锁存器,用于在与锁存器相同的时钟沿锁存来自多路器的先前累加的码字长度;
其中,加法器将来自加法单元的锁存器的码字长度与来自锁存单元的锁存器的先前累加的码字长度相加,并将得到的码字长度分别提供给多路器;多路器输出相加的码字长度作为一个窗口控制信号并将其提供给第一桶形移位器以控制滑动输出窗口的位置;及响应该相加的码字长度,累加锁存器产生一个读信号给所述的输入缓冲器。
附图说明
从下面结合附图给出的优选实施例的描述中,本发明的上述与其它目的与特征将是显而易见的,附图中:
图1示出了根据本发明的VLC解码装置的概图;
图2描绘了用于说明图1中所示的VLC解码装置的工作过程的所使用的输入位流;及
图3提供了用于说明图1中所示的VLC解码装置的工作过程的示范性图。
具体实施方式
参照图1,示有根据本发明的一优选实施例的VLC解码器的方框图。为说明的目的,假定待被解码的可变长度码字的最大长度为8位。该VLC解码器对一以连续的位流输入至其的连续的可变长度码字进行解码并在一固定的符号时钟输出与其相应的被解码的固定长度码字到引线213上。
在数据信道51上接收的串行数据流被输入至一输入缓冲存储器50,该输入缓冲存储器50以固定长度数据段的形式存储该可变长度码字的串行数据流并在一时钟瞬间,例如响应于引线411的读信号的一时钟信号CLK的上升时钟瞬间,顺序地输出固定长度数据段,例如,16位段到引线111上,其中该数据段的位长度两倍于可变长度码字的最大位长度且该时钟信号具有下降沿和上升沿的时钟瞬间类型。
锁存器101被连接至输入缓冲存储器50并用于顺序地接收来自缓冲存储器50的引线111上的固定长度数据段。锁存器102被连接至锁存器101并用于接收先前保存在锁存器101中的固定长度数据段。锁存器101和102是被控制的锁存器,仅在一CARRY(进位)信号出现在它们的控制输入端上时CLK的一时钟瞬间上的锁存在它们输入端上的数据,其中该被锁存的数据被保留在它们的输出端直至产生下一个CLK的时钟瞬间。在本发明的优选实施例中,输入缓冲存储器50、及锁存器101和102在时钟信号的不同的时钟瞬间类型上执行其操作。正如将要描述的那样,锁存器101和102在当累加单元500生成一CARRY信号到引321时,例如在CLK的下降时钟瞬间上读取在其输入端的数据。当需要提供一新数据段时,一READ信号在引线411上被激活。当在引线411上的该READ信号被激活时,下一个数据段在CLK的时钟信号的上升沿上自缓冲存储器50取出到引线111上。响应于一CARRY信号,并在下一个CLK的下降时钟瞬间,锁存器101锁存引线111上的下一个数据段;先前保存在锁存器101中的数据段被锁存入锁存器102中。锁存器102这样一直保留时间顺序早于保留在锁存器101中的数据段的数据段。
锁存器101及102的数据段及引线111上的输入缓冲存储器50的输出被输入至第一桶形移位器103,该第一桶形移位器103具有提供至其输入端的连续的48位的数据流,并具有跨越输入至其的该48位的一8位可滑动的输出窗口,该窗口由表示来自累加单元500的引线319上的累加的码字长度的一窗口控制信号所控制。当该窗口控制信号在引线319上被激活时,第一桶形移位器103的8位输出窗口被直接移位以将下一个序列数据段置入第一桶形移位器103中。在当第一桶形移位器103中的数据流的第一16位被读出至第二桶形移位器104时产生的在引线321上的CARRY信号被激活时,响应于下降沿的时钟瞬间,锁存器101中的先前的数据段被锁存入锁存器102作为一再先前数据段,且引线111上的当前数据段被锁存入锁存器101作为先前的数据段。而且,在下一个上升沿的时钟瞬间,下一个16位数据段被从输入缓冲存储器50取出以出现在第一桶形移位器103的输入位位置33-48上作为当前数据段。来自第一桶形移位器103的输出,即第一窗口输出序列是一8位序列的三个输入数据段,即自锁存器102和101输出的再先前数据段和先前数据段,和自缓冲存储器50输出的当前数据段;并经引线117被提供给16位输入第二桶形移位器104。在先前时钟瞬间产生的一解码输出序列也经引线127被馈至第二桶形移位器104以产生下一个输出序列。
具有跨越输入至其的16位的8位可滑动输出窗口并由来自存储装置200的引线211上的码字长度所控制的第二桶形移位器104用于通过利用其可滑动输出窗口输出一第二窗口输出序列到引线119上,该可滑动的输出窗口被滑动至由引线211上的码字长度所确定的是新的位置。来自第二桶形移位器104的第二窗口输出序列被提供至包括有两锁存器106和107,及一多路器(MUX)108的中继电路105。该中继电路105将第二窗口输出序列锁存半个时钟的持续时间并经引线127提供该锁存的第二窗口输出序列给存储装置200作为解码输出序列。更具体地,来自第二桶形移位器104的在一时钟瞬间产生的在引线119上的该第二窗口输出序列在下一个时钟瞬间被锁存入中继电路105中的锁存器106或107。锁存器106和107在时钟信号的不同的时钟瞬间类型上例如,分别在CLK的下降及上升时钟瞬间锁存入其输入端上的数据。中继电路105中的MUX108将交替地响应下降时钟瞬间来自锁存器106及响应上升时钟瞬间来自锁存器107的第二窗口输出序列作为解码输出序列经引线127提供给存储装置200和第二及第三桶形移位器104和203。
被耦合至中继电路105的存储装置200用于响应开始于该解码输出序列的第一位位置的可变长度码字产生一固定长度字,并用于产生对应于该被解码的可变长度码字的码字长度。在本发明的优选实施例中,存储装置200包括第一及第二查寻表201和202,各查寻表可由一可编程逻辑阵列(PLA)来实现。第一查寻表201被用于进行前缀解码以产生一码字长度和一前缀码长度,而第二查寻表202被用于进行后缀解码以产生一解码的字。第一查寻表201包括一前缀码表、一前缀码长度表及一被解码的字长度表。各可变长度码字的前缀码被表示为前缀码表中的一项,其中各前缀码由各码字的高阶P位组成,该高位P比特能表示各码字的长度且P的最大值为一小于可变长度码字的最大长度的一整数即8,前缀码表中的各表项具有一8位的长度,并以可变(即从1至P,如5位)长度的实际前缀码开始。由于具有5位的最大长度的代码库中的前缀码小于8位,跟随实际前缀码的表项中的位位置被指示为“不计较”位置。当来自中继电路中的MUX108的一序列与存储在前缀码表中的一个位模式相匹配时,一码字的长度被检测。这样,例如,如果前缀码表中的一个前缀码的位模式是“11”,其8位表项将为“11XXXXXX”,其中各“X”表示“不计较”。如果来自MUX108的8位序列具有一模式“1101 1010”则会在头两位上发生匹配。当引线127上的解码输出序列与前缀码表中的一项相匹配时,被解码的字长表及前缀码长度表中相应的项被激活。被解码的字长表和前缀码长度表分别提供码字长度和对应于前缀码表中与该可变长度码字匹配的前缀码的前缀码长度到引线211和215上。该在下一个时钟瞬间经引线211提供给第二桶形移位器104的码字长度被用于控制第二桶形移位器104的可滑动输出窗口的移位。引线215上的前缀码长度被提供给第三桶形移位器203。该第三桶形移位器203具有一跨越由引线127自MUX108输入其的8位的一3位可滑动输出窗口,并通过利用其位置由来自第一查寻表201在引线215上的前缀码长度所控制的该可滑动的输出窗口输出一第三窗口输出序列作为一码值到引线217上。该引线217上的码值被提供给第二查寻表202。引线211上的码字长度也被输入至第二查寻表202。该第二查寻表202包括一后缀码表、一码字长度表和一被解码字表,各可变长度码字的码字长度被表示为码字长度表中的一项;且各可变长度码字码字的后缀码被表示为后缀码表中的一项,其中各后缀码由各码字的低阶Q位组成,Q的最大值等于从可变长度码字的最大长度中减去P后的值。后缀码表中的各表项具有3位的长度,并从一可变的,即从1至Q比特长度的实际后缀码开始。如果实际后缀码具有一小于3位的长度,跟随该实际后缀码的表项中的位位置被指示为“不计较”位置。在本发明的优选实施例中,一可变长度码字由P位前缀码和Q位后缀码组成。当引线211上的码字长度和引线217上的码值与存储在各码字长度表和后缀码表中的一个位模式相匹配时,一个固定长度字被检测。例如,如果后缀码表中的一个后缀码的位模式为“01”,其3位表项将为“01X”,其中“X”表示“不计较”。如果引线217上的码值有一模式“011”,则在头两位上发生匹配。如上所述,当引线211上的码字长度和引线217上的码值分别与码字长度和后缀码表中的项相匹配时,被解码字表中的相应项被激活。该被解码字表输出与码字长度表及后缀码表中匹配的码字长度和后缀码相对应的固定长度字到引线213上。
同时,引线211上的码字长度被提供给累加单元500,该累加单元500用于累加被解码的码字长度并生成窗口控制信号到引线319上,该窗口控制信号表示累加的码字长度并被用于控制第一桶形移位器103。该累加单元500包括一加法单元300和一锁存单元400,其中加法单元300包括两个锁存器301及302,两个加法器303及304,和一MUX305,且锁存单元400包括一累加锁存器401和一锁存器402。在本发明的优选实施例中,锁存器301及302在彼此不同类型的时钟瞬间工作;累加锁存器401在与锁存器301相同类型的时钟瞬间工作;且锁存器402在与锁存器302相同类型的时钟瞬间执行其工作。因此,例如在各下降时钟瞬间,在加法器303,锁存在锁存器301中的在引线311上的码字长度被加至来自累加锁存器401在引线413上的先前累加的模16字长度且相加的5位码字长度经引线315被提供给MUX305,而在各上升时钟瞬间,在加法器304,锁存在锁存器302中的在引线313上的码字长度被加至锁存在锁存器402中在引线415上的先前累加的码字长度上并将相加的5位码字长度经引线317提供给MUX305。在MUX305,相加的5位码字长度作为窗口控制信号被依次输出至引线319上。该引线319上的5位窗口控制信号在各下降时钟瞬间被锁存入累加锁存器401并在各上升时钟瞬间被锁存入锁存器402。接收累加的码字长度的累加锁存器401在各下降时钟瞬间提供接收的数据的最高位(MSB)作为READ(读)信号到引线411上并经引线413将该数据的其它位作为先前累加的模16字长提供给加法器303。表示新的累加码字长度的窗口控制信号也被提供给第一桶形移位器103以控制其可滑动的输出窗口的位置。该5位窗口控制信号的最高位(MSB)在各上升和下降时钟瞬间作为CARRY信号通过引线321被提供给锁存器101及102。当累加的码字长度大于或等于“16”时,窗口控制信号的MSB为“1”且一CARRY信号出现在引线321上。在下一个下降时钟瞬间,该MSB“1”作为一READ信号出现在位于累加锁存器401的输出端上的引线411上。响应该READ信号,缓冲器50取出下一个数据段并输出其至引线111上。响应该CARRY信号,引线111上的数据段被输入锁存器101,且锁存器101的内容被传送入锁存器102。
参照图2及3中表格所示的例子可更易于理解图1中解码器的操作。如图2所示,假设图1中所示的自数据信道51输入至输入缓冲存储器50的数据流由位流“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii……”组成,如图2所示,其中“Aa”表示第一可变长度码字中的两位,“A”及“a”分别是该第一可变长度码字的前缀码和后缀码;“Bbb”表示第二可变长度码字中的三位,“B”及“b”分别是该第二可变长度码字的前缀码和后缀码。
参照图3,在下降沿的第一时钟瞬间之前,16比特锁存器101及102被以二进制数“11111111 11111111”初始化,中继电路105的输出被以“11111111”初始化且累加单元500被初始化以使CARRY信号和READ信号都为“1”。具体地,在该第一时钟之前的第二个时钟的下降沿时钟瞬间,引线211上的第一查寻表201的被初始化的输出为“8”以使第二桶形移位器104有一“8”的起始移位;且引线217上的前缀码长度输出被初始化为“0”,以便第三桶形移位器203有“0”的起始移位,累加锁存器401被以二进制数“11000”初始化,并且,因而READ信号为“1”及累加的的模16字长为8。由于锁存器402也被以“11000”初始化,累加的码字长度为“16”。由于锁存在锁存器301中的码字长度为初始化值“8”且累加的模16字长为“8”,引线319上的表示新累加的码字长度的窗口控制信号为“16”。在第一时钟瞬间之前的上升沿时钟瞬间,引线211及217上的第一查寻表201、累加锁存器401、锁存器301及402的输出保留它们的初始值,而通过将锁存在锁存器302中的初始化码字长度8与来自锁存器402的先前累加的码字长度“16”相加使窗口控制信号变为“24”。随着READ信号为“1”,由16位“AaBbbCcc cDDdddEE”组成的第一数据段被从输入缓冲存储器50取出到引线111上。在此时,锁存器101和102的输出。桶形移位器103和104的输出为初始化值,在图3中被表示为“11111111 11111111”和“11111111”,及第二查寻表202的输出为一在图3中表示为“X”的噪声值。
在下降沿的第一时钟瞬间,由于先前的CARRY信号为“1”,引线111的数据段“AaBbbCcc cDDdddEE”被锁存在锁存器101中。通过将锁存在锁存器301中的码字长度“8”加到来自累加锁存器401的先前累加的模数16字长“8”上,使窗口控制信号变为“16”。由于引线319上的窗口控制信号为“16”,CARRY信号仍保留为“1”,且第一桶形移位器103将输入至其的48位数据段,即“11111111 11111111 AaBbbCcc cDDdddEE AaBbbCcc cDDdddEE”中的一第17-24位的序列,即“AaBbbCcc”经引线117输出给第二桶形移位器104。自中继电路105的输出序列有其初始化值且第一查寻表201的码字长度输出仍保留初始的“8”,以使第二桶形移位器104将其输入数据段,即“11111111 AaBbbCcc”中的第一9-16位的序列,即“AaBbbCcc”通过引线119输出给中继电路105。锁存器102包含其初始化值,且第二查寻表202的被解码字包含噪声值。
在上升沿的第二时钟瞬间,READ信号保持为“1”,其中下一个数据段“EeeeFFFF fffGGGGG”自输入缓冲存储器50被输出至引线111上。通过将锁存在锁存器302中的码字长度“8”与锁存在锁存器402中的先前累加的码字长度“16”相加使窗口控制信号变为“24”。由于引线319上的窗口控制信号为“24”,CARRY信号保持“1”且第一桶形移位器103将自输入至其的数据段“11111111 11111111 AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG”中的序列“cDDdddEE”输出至第二桶形移位器104。在第一下降时钟瞬间先前被保存在中继电路105中的序列“AaBbbCcc”作为解码输出序列经引线127被提供给第一查寻表201,及第二和第三桶形移位器104和203。第一查寻表201识别头一位,即解码输出序列“AaBbbCcc”中的“A”并输出对应于在其中识别的前缀码项的前缀码长度,即“1”及被解码的码字长度,例如“2”到引线215和211。引线211上的解码的码字长度“2”然后被耦合至第二查寻表202和第二桶形移位器104,其中第二输出窗口被移位以包括输入数据段,即“AaBbbCcc cDDdddEE”中的第3-10位。因此,8位序列“BbbCcccD”被耦合至中继电路105。引线215上的前缀码长度“1”被耦合至第三桶形移位器203,该第三桶形移位器203将输入至其的解码输出序列,即“AaBbbCcc”中的3位序列“aBb”传送给第二查寻表202作为码值。第二查寻表202识别该解码的码字长度“2”和码值“aBb”,并将对应于识别的码字长度其中的后缀码项的固定长度及被解码字,例如“A”输出至引线213上。
在下降沿的第三时钟瞬间,由于先前的CARRY信号为“1”,引线111上的数据段“EeeeFFFF fffGGGGG”被锁存在锁存器101中;且先前保存在锁存器101中的数据段“AaBbbCcc cDDdddEE”被锁存在锁存器102中。通过将先前的解码码字长度“2”与先前累加的模16字长“8”相加使窗口控制信号变为“10”。由于引线319上的窗口控制信号为“10”,CARRY信号变为“0”,且第一桶形移位器103将数据段“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG EeeeFFFF fffGGGGG”中的序列“DdddEEEe”输出至第二桶形移位器104。在第二上升时钟瞬间被先前保存在中继电路105中的输出序列“BbbCcccD”被提供给第一查寻表201,及第二和第三桶形移位器104和203。第一查寻表201识别解码输出序列“BbbCcccD”中的头一位,即“B”并将对应于其中的识别的前缀码项的前缀码长度,即“1”和解码的码字长度,例如“3”输出至引线215和211。引线211上的解码的码字长度“3”然后被耦合至第二查寻表202和第二桶形移位器104,该第二桶形移位器104将“BbbCcccD DdddEEEe”中的序列“CcccDdd”输出至中继电路105。引线215上的前缀码长度“1”被耦合至第三桶形移位器203,其中第三输出窗口被移位以包含解码输出序列“BbbCcccD”中的第2-4位。因此,码值“bbC”被耦合至第二查寻表202。第二查寻表202识别解码的码字长度“3”及码值“bbc”,并将对应于识别的码字长度及其中的后缀码项的固定长度解码的字,例如“B”输出至引线213上。
在上升沿的第四个时钟瞬间,READ信号保持“1”,其中下一个数据段“gggHHHHH hhhIIiii”自输入缓冲存储器50被输出至引线111。通过将先前的解码的码字长度“3”与先前累加的码字长度“10”相加使窗口控制信号变为“13”。由于引线319上的窗口控制信号为“13”,CARRY信号保持“0”,且第一桶形移位器103自“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIii”产生序列“dEEEeeeF”至第二桶形移位器104。在第三下降时钟瞬间被先前保存在中继电路105中的输出序列“CcccDDdd”被耦合至第一查寻表201、及第二和第三桶形移位器104和203。第一查寻表201识别解码输出序列“CcccDDdd”中的头一位,即“C”并将解码的码字长度,例如“4”和与其中识别的前缀码项相对应的前缀码长度“1”输出至引线211和215上。引线211上的解码的码字长度“4”然后被耦合至第二查寻表202及第二桶形移位器104,该第二桶形移位器产生“CcccDDdd dEEEeeF”中的序列“DDdddEEE”给中继电路105。引线215上的前缀码长度“1”被耦合至第三桶形移位器203,该第三桶形移位器203自“CcccDDdd”产生码值“CCC”给第二查寻表202。第二查寻表202识别解码的码字长度“4”,及码值“CCC”。并将与识别的码字长度和其中的后缀码项相对应的固定长度解码字,例如“C”输出至引线213。
在下降沿的第五时钟瞬间,由于先前的CARRY信号为“0”,READ信号变为“0”且输入至第一桶形移位器103的三个数据段保持不变。通过将先前的解码的码字长度“4”与先前累加的模16字长“13”相加使窗口控制信号变为“17”。由于引线319上的窗口控制信号为“17”,CARRY信号变为“1”,且第一桶形移位器103将“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii”中的序列“eeeFFFFf”输出至第二桶形移位器104。在第四上升时钟瞬间被先前保存在中继电路105中的输出序列“DDdddEEE”被馈至第一查寻表201、及第二和第三桶形移位器104和203。第一查寻表201识别解码输出序列“DDdddEEE”中的头两位,即“DD”并将解码的码字长度,例如“5”及与其中的识别的前缀码项相对应的前缀码长“2”输出至引线211及215上。引线211上的解码的码字长度“5”然后被耦合至第二查寻表202及第二桶形移位器104,该第二桶形移位器104输出自“DDdddEEE eeeFFFFF”中的序列“EEEeeeFF”给中继电路105。引线215上的前缀码长度“2”被耦合至第三桶形移位器203,该第三桶形移位器203将“DDdddEEE”中的码值“ddd”传送给第二查寻表202。第二查寻表202识别解码的码字长度“5”及码值“ddd”,并将对应于识别的码字长度和其中的后缀码项的固定长度解码的字输出至引线213上。
在上升沿的第六时钟瞬间,READ信号保持“0”,其中输入至第一桶形移位器103的三个数据段保持不变。通过将先前的解码的码字长度“5”与先前累加的码字长度“17”相加使窗口控制信号变为“22”。由于引线319上的窗口控制信号为“22”,CARRY信号保持“1”,且第一桶形移位器103将“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii”中的序列“FFfffGGG”传送给第二桶形移位器104。在第五下降时钟瞬间被先前保存在中继电路105中的输出序列“EEEeeeFF”被提供给第一查寻表201、及第二和第三桶形移位器104和203。第一查寻表201识别解码输出序列“EEEeeeFF”中的头三位,即“EEE”并将解码的码字长度,例如“6”和与其中识别的前缀码项相对应的前缀码长“3”输出至引线211和215上,引线211上的解码的码字长度“6”然后被耦合至第二查寻表202及第二桶形移位器104,该第二桶形移位器104将“EEEeeeFF FFfffGGG”中的序列“FFFFfffG”输出至中继电路105。引线215上的前缀码长度“3”被耦合至第三桶形移位器203,该第三桶形移位器203将“EEEeeeFF”中的码值“eee”传送给第二查寻表202。第二查寻表202识别解码的码字长度“6”,及码值“eee”,并将与识别的码字长度和其中的后缀码项相对应的固定长度解码字,例如“E”输出至引线213上。
在下降沿的第七时钟瞬间,由于先前的CARRY信号为“1”,引线111上的数据段“gggHHHHH”被锁存在锁存器101中;且当前保存在锁存器101中的数据段“EeeeFFFF fffGGGGG”被锁存在锁存器102中。通过将先前的解码的码字长度“6”与先前累加的模16字长“6”相加使窗口控制信号变为12。由于引线319上的窗口控制信号为“12”,CARRY信号变为“0”,且第一桶形移位器103将数据段“EeeeFFFF fffGGGGGgggHHHHH hhhIIiii gggHHHHH hhhIIiii”中的序列“GGGGgggH”输出给第二桶形移位器104。在第六上升时钟瞬间,被保存在中继电路中的输出序列“FFFFfffG”被提供给第一查寻表201、及第二和第三桶形移位器104和203。第一查寻表201识别“FFFFfffG”中的头四位,即“FFFF”并将解码的码字长度,例如“7”和与其中识别的前缀码项对应的前缀码长度,即“4”输出至引线211和215上。引线211上的解码的码字长度“7”然后被耦合至第二查寻表202及第二桶形移位器104,该第二桶形移位器104将“FFFFfffG GGGGgggH”中的序列“GGGGggg”输出给中继电路105。前缀码长度“4”被提供给第三桶形移位器203,该第三桶形移位器203将“FFFFfffG”中的码值“fff”传送给第二查寻表202,第二查寻表202识别解码的码字长度“7”,及码值“fff”,并将与识别的码字长度及其中的后缀码项对应的固定长度解码的字,例如“F”输出到引线213上。
如上所看到的,容易理解到本发明的VLC解码装置各时钟信号的时钟瞬间执行解码操作,从而有利地实现了高速解码操作。
虽然已相对于特定的实施例描述了本发明,熟悉本技术的人员显而易见可以作出各种改变与修正,而不脱离下述权利要求书中所定义的本发明范围。

Claims (1)

1、一种用于以半时钟速率解码自一输入缓冲器提供的顺序的可变长度码字的可变长度码解码装置,其中该输入缓冲器存储待被以两倍于该可变长度码字的最大长度的长度进行解码的输入位流,所述装置包括:
第一及第二锁存器(101,102),用于存储输入缓冲器输入位流的连续固定长度段;
第一桶形移位器(103),被连接至第一及第二锁存器以及输入缓存器,并具有一用于产生来自第一及第二锁存器和输入缓存器提供的连续固定长度段中的位的第一窗口输出序列的第一输出窗口,该第一窗口输出序列的位长度等于可变长度码字的最大长度且该第一输出窗口直接响应于一窗口控制信号被移过该连续固定长度段中的比特数;
第二桶形移位器(104),被连接至第一桶形移位器并具有一用于产生来自包含在第一窗口输出序列及提供给其的先前解码输出序列中的位的第二窗口输出序列的第二输出窗口,该第二窗口输出序列的位长度等于可变长度码字的最大长度,所述第二输出窗口直接响应于码字长度被移位;
中继装置(105),用于将第二窗口输出序列锁存半个时钟周期并产生锁存的第二窗口输出序列作为解码输出序列,包括:
锁存器(106,107),用于分别在时钟(CLK)的上升沿和下降沿锁存入该第二窗口输出序列;
多路器(108),用于将交替地响应时钟下降沿来自锁存器(106)及响应时钟上升沿来自锁存器(107)的第二窗口输出序列提供给第一查询表(201)及第二与第三桶形移位器(104,203);
第一查询表(201),被耦合至中继装置并用于响应一前缀码产生一码字长度和一前缀码长度,该前缀码由起始于解码输出序列的第一位位置的可变长度码字的高阶P位组成,P的最大值为一小于该可变长度码字的最大长度的整数;
第三桶形移位器(203),被连接至中继装置及第一查询表并具有一用于产生一来自解码输出序列中的位的第三窗口输出序列作为一码值的第三输出窗口,该第三窗口输出序列的位长度为一小于可变长度码字的最大长度的整数,所述第三输出窗口直接响应于前缀码长度被移位;
第二查询表(202),被连接至第一查询表及第三桶形移位器并用于响应码字长度及码值产生一固定长度字;及
累加装置(500),用于累加解码后的码字长度并产生窗口控制字,包括:
连接到第一查询表的加法单元(300),用于将码字长度与先前累加的码字长度相加以产生表示累加的码字长度的窗口控制信号,包括:
锁存器(301,302),用于在互不相同的时钟沿锁存来自第一查询表的码字长度;
        运行在不同时钟沿的加法器(303,304);
        分别连接到加法器(303,304)的多路器(305);
锁存单元(400),用于当累加的码字长度大于两倍的可变长度码字的长度时产生一读信号以便从输入缓冲器中读取下一个固定长度段,包括:
累加锁存器(401),用于在与锁存器(301)相同的时钟沿锁存来自多路器(305)的先前累加的码字长度;
锁存器(402),用于在与锁存器(302)相同的时钟沿锁存来自多路器(305)的先前累加的码字长度;
其中,
加法器(303,304)将来自锁存器(301,302)的码字长度与来自锁存器(401,402)的先前累加的码字长度相加,并将得到的码字长度分别提供给多路器(305);
多路器(305)输出相加的码字长度作为一个窗口控制信号并将其提供给第一桶形移位器(103)以控制滑动输出窗口的位置;以及
响应该相加的码字长度,累加锁存器(401)产生一个读信号给所述的输入缓冲器。
CN96103500A 1995-03-16 1996-03-18 高速可变长度码解码装置 Expired - Fee Related CN1115783C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR5427/1995 1995-03-16
KR1019950005427A KR0154010B1 (ko) 1995-03-16 1995-03-16 가변길이 복호화 장치
KR5427/95 1995-03-16

Publications (2)

Publication Number Publication Date
CN1136236A CN1136236A (zh) 1996-11-20
CN1115783C true CN1115783C (zh) 2003-07-23

Family

ID=19409878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96103500A Expired - Fee Related CN1115783C (zh) 1995-03-16 1996-03-18 高速可变长度码解码装置

Country Status (5)

Country Link
US (1) US5677690A (zh)
JP (1) JP3442217B2 (zh)
KR (1) KR0154010B1 (zh)
CN (1) CN1115783C (zh)
IN (1) IN187497B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0178201B1 (ko) * 1995-08-31 1999-05-01 배순훈 가변 길이 복호화 장치
KR0179103B1 (ko) * 1995-11-15 1999-05-01 구자홍 고속 가변길이 디코더장치
KR100192269B1 (ko) * 1996-03-25 1999-06-15 구자홍 가변길이 코드 디코더
US5808570A (en) * 1996-06-28 1998-09-15 Philips Electronics North America Corp. Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same
DE19707974C2 (de) * 1997-02-27 1999-01-14 Siemens Ag Schaltungsanordnung zur Dekodierung von Codes variabler Länge
KR100292050B1 (ko) * 1997-11-08 2001-06-01 김영환 가변장복호기의 데이타 가변장치
US6414608B1 (en) 1999-06-09 2002-07-02 Matsushita Electric Industrial Co., Ltd. Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus
CN1331360C (zh) * 2004-02-24 2007-08-08 上海交通大学 可变长码解码方法
US7797701B1 (en) * 2004-08-13 2010-09-14 Xilinx, Inc. Method and apparatus for detecting a bit sequence in a data stream
JP4502384B2 (ja) * 2004-11-25 2010-07-14 キヤノン株式会社 可変長符号復号化装置及び可変長符号復号化方法
CN100356793C (zh) * 2005-06-09 2007-12-19 清华大学 多变长码并行解码器
US7439887B2 (en) * 2007-02-13 2008-10-21 Seiko Epson Corporation Method and apparatus for GIF decompression using fixed-size codeword table
US7769048B2 (en) * 2008-06-25 2010-08-03 Intel Corporation Link and lane level packetization scheme of encoding in serial links
JPWO2010095181A1 (ja) * 2009-02-23 2012-08-16 パナソニック株式会社 可変長復号化装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
US5245338A (en) * 1992-06-04 1993-09-14 Bell Communications Research, Inc. High-speed variable-length decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3136796B2 (ja) * 1992-09-24 2001-02-19 ソニー株式会社 可変長符号デコーダ
KR970002483B1 (ko) * 1993-11-29 1997-03-05 대우전자 주식회사 고속의 가변길이 복호화장치
US5572208A (en) * 1994-07-29 1996-11-05 Industrial Technology Research Institute Apparatus and method for multi-layered decoding of variable length codes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
US5245338A (en) * 1992-06-04 1993-09-14 Bell Communications Research, Inc. High-speed variable-length decoder

Also Published As

Publication number Publication date
JP3442217B2 (ja) 2003-09-02
JPH08265166A (ja) 1996-10-11
US5677690A (en) 1997-10-14
KR960036749A (ko) 1996-10-28
IN187497B (zh) 2002-05-04
KR0154010B1 (ko) 1998-11-16
CN1136236A (zh) 1996-11-20

Similar Documents

Publication Publication Date Title
CN1115783C (zh) 高速可变长度码解码装置
US5608396A (en) Efficient Ziv-Lempel LZI data compression system using variable code fields
US5561690A (en) High speed variable length code decoding apparatus
US5703581A (en) Method and apparatus for data compression and decompression
US5245338A (en) High-speed variable-length decoder
US4876541A (en) Stem for dynamically compressing and decompressing electronic data
US5901177A (en) High speed variable length code decoding apparatus and method
EP0543070A1 (en) Coding system and method using quaternary codes
CN1059525C (zh) 解码可变长度码的装置
US5874908A (en) Method and apparatus for encoding Lempel-Ziv 1 variants
WO2002019535A1 (en) Hardware implementation of a compression algorithm
JPH06224778A (ja) マッチングストリング探索およびハフマン符合化を用いたデータ圧縮装置および方法
KR940010433B1 (ko) 가변길이 코드 디코딩장치
CN1107383C (zh) 高速可变长度码解码装置
CN1107384C (zh) 高速可变长度码解码装置
US5736946A (en) High speed apparatus and method for decoding variable length code
US5432512A (en) Apparatus for decoding variable length codes
US5701126A (en) High speed variable length decoder
Khayrallah et al. Coding for channels with cost constraints
US6580377B1 (en) Huffman decoding using cascaded sub-table lookup method
KR100462060B1 (ko) 유니버셜 가변 길이 코드 부호어 다중 추출 방법 및 그를위한 룩-업 테이블 구성 방법
Mahapatra et al. Parallel implementation of a multialphabet arithmetic coding algorithm
Khachatrian et al. Practical implementation of the lossless compression algorithm
JPH08223056A (ja) 可変長コード復号化装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20030919

Patentee after: Daewoo Electronics Co., Ltd.

Patentee before: Daewoo Electronics Co., Ltd.

ASS Succession or assignment of patent right

Owner name: FENGYE VISION TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: DAEWOO ELECTRONICS CO., LTD.

Effective date: 20130416

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130416

Address after: Ontario

Patentee after: Fengye Vision Technology Co., Ltd.

Address before: Seoul, South Kerean

Patentee before: Daewoo Electronics Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030723

Termination date: 20150318

EXPY Termination of patent right or utility model