CN100392983C - 可变长度编码打包体系结构 - Google Patents

可变长度编码打包体系结构 Download PDF

Info

Publication number
CN100392983C
CN100392983C CNB028164814A CN02816481A CN100392983C CN 100392983 C CN100392983 C CN 100392983C CN B028164814 A CNB028164814 A CN B028164814A CN 02816481 A CN02816481 A CN 02816481A CN 100392983 C CN100392983 C CN 100392983C
Authority
CN
China
Prior art keywords
buffer
mux
pointer
length
bit
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
CNB028164814A
Other languages
English (en)
Other versions
CN1545765A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1545765A publication Critical patent/CN1545765A/zh
Application granted granted Critical
Publication of CN100392983C publication Critical patent/CN100392983C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • 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

Landscapes

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

Abstract

本发明讨论了可变长度编码打包的实施例。使用了指针,并且可变长度位打包器减少或消除了通常被用于位打包的移位,从而潜在地减少了被用于控制电路的门的数量。

Description

可变长度编码打包体系结构
技术领域
本公开涉及打包(pack)可变长度二进制代码的体系结构。
背景技术
一致性编码法通常是几乎所有图像/视频/文本/数据压缩处理和国际标准的组成部分。大多数图像和视频压缩标准,包括例如用于静态连续色调图像压缩标准【ISO/IEC JTC1/SC29 IS 10918】的JPEG(联合图像专家组,Joint Photographic Experts Group)、用于二值图像压缩标准【ISO/IECJTC1/SC2/WG9,CD 11544】的JBIG(联合二值图像专家组,Joint Bi-Level Image Experts Group)、用于传真标准【Hunter,et.al,InternationalDigital Facsimile Coding,Standards,Proceedings of the IEEE,Vol.68,No.7,July 1980,pp.854-867(Hunter等所著的国际数字传真编码标准,发表于IEEE文集,第68卷,第7期,1980年7月,第854~867页)】的CCITT(国际电报电话咨询委员会)Group 3和Group 4、用于视频电话会议的视频压缩标准的ITU-T H.26x(例如H.261、H.163、H.263+)和用于适于存储的视频压缩标准的MPEG(运动图像专家组,Moving Picture ExpertsGroup)家族(例如MPEG1【ISO/IEC JTC1/SC29 IS 11172】、MPEG2【ISO/IEC JTC1/SC29 IS 13818】、MPEG4【ISO/IEC JTC1/SC29/WG11N1238】)等等,以及例如gzip、pkzip、UNLX压缩等等的其他文本/数据压缩处理,使用诸如霍夫曼编码的可变长度编码(VLC)。
众所周知,在VLC编码中,编码器将输入源数据映射到可变长度的二进制代码字中。使生成和/或输出这些代码字的处理变得便于或易于实现的硬件设备是我们所期望的。
发明内容
根据本发明的一个方面,提供了一种装置,包括:缓冲器;多个屏蔽多路选择器;和多个排序多路选择器。其中,所述缓冲器和所述屏蔽多路选择器及所述排序多路选择器耦合在一起,以便应用于所述屏蔽多路选择器及所述排序多路选择器的选择器信号将不同位串的具有变化的长度的部分排序和打包在所述缓冲器中。
附图说明
本发明的主旨在所附权利要求中被具体地指出和清楚地要求了。然而,关于结构和操作方法两者的所要求的主旨,连同其目的、特征和优点,当结合附图一同阅读时通过参考下面的详细描述可以最好地被理解,其中:
图1到图7示出位打包缓冲器的示例;
图8示出可变长度位打包器的一个实施例;
图9到图23更详细地示出图1到图7的示例;以及
图24更详细地示出图8的实施例的一个方面;
图25示出四个16×1 MUX的一种实现;以及
图26示出四个16×1 MUX的另一种实现。
具体实施方式
在下面的详细描述中,为了提供对于所要求的主旨的彻底理解,提出了许多特定的细节。但是,本领域的技术人员应当理解,所要求的主旨可以不用这些特定的细节而被实现。在其他情况中,为了不使所要求的主旨模糊,公知的方法、过程、部件和电路没有被详细描述。
如下文所更详细地描述的,公开了一种适于不同压缩处理和标准的用于可变长度位打包的有效、统一的超大规模集成电路体系结构的实施例。当然,应当理解,所要求的主旨并不限于该实施例的范围内,该特定实施例仅仅是用来提供按照所要求的主旨的一种可能的实现。举例来说,在具有多个压缩标准的系统体系结构中,该实施例可以例如是多路共用的或者与不同的其他模块相接口以遵守不同压缩标准或提供与之的兼容性。这将在下文更详细地讨论。
举例来说,将不同位串的具有变化的长度的选定部分打包成具有预定长度的单个位串的电路结构可以提供实现对于例如以下压缩标准的可变位率编码的能力:CCITT Group 3、Group 4、JPEG、MPEGx、H.26x或者其他文本/数据压缩标准。实现这一点的实施例在下文中描述。为了方便起见,这种电路结构在这里称作可变长度位打包器。
为了提供一些示例,诸如CCITT Group 3、Group 4以及JPEG的图像压缩标准使用每次最高16位的可变长度位打包,但是当然所要求的主旨当然不限于这一方面的范围内。例如在CCITT Group 3和Group 4的压缩中,要被打包的位可以包括模式代码字、终止代码字(terminating codeword)、霍夫曼类构成代码字(Huffman like make-up code word)、实际位值和标记。见例如Hunter等,国际数字传真编码标准,IEEE文集,第68卷,第7期,1980年7月,第854~867页。在CCITT Group 3和Group 4解压缩中,被打包的位可以被解压成二值图像单元,它们也可以为了高性能而使用可变长度打包。在基线JPEG中,要被打包的位可以包括某些形式的象素亮度、霍夫曼代码字、标记、位填充和零字节填充。类似的位打包也发生在视频和文本编码处理中。
下文中被更详细地描述的该特定实施例具有在一个时钟周期内位打包1到16之间任何数量的位的能力。而且,该特定实施例可以容易地扩大以允许每次打包多于16个位,或者被缩小。然而,所要求的主旨并不限于这些方面的范围内。
可变长度位打包器将不同长度的位串接合在一起。一旦已经接合了预定数量的位,则该数据块即将在系统中例如为了另外的或者进一步的处理而被进一步向前传输。位打包可以以大端(big endian)、小端(littleendian)或某些混合格式来进行,这取决于应用,例如CCITT Group 3和Group 4、GZIP、JPEG、MPEG等。下面的示例示出可以在该特定实施例中被实现的位打包功能。
在下面关于示例1被描述的实施例中,可变长度位打包器包括32位缓冲器,每次可以将最多16个位打包到其中。此外,本实施例中的打包自左向右发生,最重要位在左端。然而,该体系结构既可以成比例放大也可以缩小,并且能够容易地支持自右的打包。
示例1:
因为本示例是自左向右打包,所以缓冲器指针从图1中的缓冲器110的左端开始。最重要位在左端。位打包器的输入信号包括16位输入流(下面叫做“输入”)和要被打包的位的数量(下面叫做“长度”)。本示例中的指针起始值是31(16进制中的1F),并且递减到在右端的16进制00,在本特定实施例中在该处,指针(pointer)然后从00h回绕到1Fh。指针按照长度值递减。
1)输入=0000000000000100长度=3
pointer(4:0)=1Fh-03h=1Ch=十进制28
图2示出对代码“100”位打包之后缓冲器110的内容。
2)输入=0000001110010011长度=11
pointer(4:0)=1Ch-0Bh=11h=十进制17
图3示出接着对上面所表示的输入位打包之后缓冲器110的内容。
3)输入=0000000000000001长度=2
pointer(4:0)=11h-02h=0Fh=十进制15
图4示出接着对上面所表示的输入位打包之后缓冲器110的内容。
在本实施例中,如图4所示,指针跨越了16位分界线,指向缓冲器的低16位。在本实施例中,这种对分界线的跨越则可以触发对于高16位的有效指示或者信号。指针的高位跳变示意要输出有效数据,在本特定实施例中该高位是位4。这种情况下,该位是从1跳变到0,但是所要求的主旨当然不限于这一方面的范围内。
4)输入=0111110001000100长度=15
pointer(4:0)=0Fh-0Fh=00h=十进制0
图5示出接着对上面所表示的输入位打包之后缓冲器110的内容。
5)输入=0011111111111100长度=16
pointer(4:0)=00h-10h=10h=十进制16
如图6所示,当向缓冲器110应用以上输入之后,代码“0011111111111100”的第一位“0”导致指针跨越另一个16位分界线。其他15个位“011111111111100”被存储到缓冲器的开始的最重要位的位置。缓冲器指针pointer(4:0)现在指向位置10h(十进制的16)以指示下一个输入的代码字打包从该单元开始。pointer(4)从0跳变到1,发出缓冲器中的低16位有效的信号。现在,低16位从缓冲器被输出。
在本实施例中,开始的指针值至少部分地取决于格式。举例来说,如果在大端格式中打包,则索引值从缓冲器的最重要位的单元开始。在这种情况下,指针在31或十六进制1F开始,如示例中所示。对于本实施例,如下面所更详细说明的,指针的末4位可以作为被用来促进位打包的多路选择器(MUX)的选择信号来使用。
如前例所表明的,该用于实现可变长度位打包器的实施例减少或者消除了通常被用于位打包的移位操作,从而潜在地减少了控制电路所用的门的数量。当然,所要求的主旨并不限于这方面的范围之内,而在一些实施例中,这可以提供好处。同样地,如前面所表明的,本实施例还允许在写的过程中,指针沿缓冲器环绕,这样打包也沿缓冲器环绕进行,这使得缓冲器能够在每个时钟周期接受可变长度数据。环绕的指针还允许数据在每个时钟周期被写出。如下文中所更详细描述的,该体系结构还表现了可以被再次使用来潜在地减少门的数量的MUX对称性,但是,再次,所要求的主旨并不限于这一方面的范围之内。
图7示出可变长度位打包器的实施例700的框图,但是,当然这仅仅是一个示例。在该例中,vlc(可变长度代码)是要被打包的输入数据。这里,length(长度)是要被打包的vlc位的数量。vlc长度大于零将使图7中的pointer′与pointer不同,并且因而触发链的其余部分以打包规定数量的输入位,vlc,这里是(length-1:0)。新的指针值pointer′告诉MUX链710如何排序这些位。在本实施例中MUX链720然后至少部分地根据使能位来向缓冲器提供重新排序的vlc位或者重新循环当前数据。
在本实施例中,使能位建立了16位移动窗口,其降低了改写了有效的数据的风险,如下面所示。举例来说,在本实施例中,使能位至少部分地基于前一指针值pointer(4:0)由电路产生。例如,针对示例1,对于在图3中所示的上述的(2),使能信号enable(31:0)是:00011111111111111110000000000000。在本示例中,最重要的三位包括有效的数据,所以enable(31:29)=000。在本特定实施例中,使能位被用来提供MUX链720中的2选1多路选择器的选择信号。当然,再次,这仅仅是一个示例实现,而所要求的主旨并不限于这一方面的范围之内。在本实现中,如图8所示,举例来说,为零的使能位不允许对该缓冲器单元的写入。从而,对于本实施例,16个尾随零将减小并也许防止在有效的数据被输出之前对其改写的风险。
16位输出信号data_out(15:0)要么是缓冲器的上一半的内容,要么是缓冲器下一半的内容。再次,在本实施例中,是指针的最重要位pointer(4)决定缓冲器的哪一半被输出。所以,对于本实施例,如果pointer(4)是零,则缓冲器的上一半是被最后更新的。所以,上一半将被输出。
当图7中所示的数据有效信号data_valid变成高的时候,输出信号data_out(15:0)是有效的。在本实施例中,在当指针跨过16位分界线时的时钟周期,data_valid变成高。在图4中所示的上述示例1的(3)中,示出了指针跨过分界线和高16位有效的情况。
下面更详细地说明本特定实施例的细节。图8示出被用于组织数据并向缓冲器写入的多路选择器的操作。图24示出从缓冲器写出数据。图26示出在本特定实施例中使用MUX对称性。
图8的底部示出供给MUX链710的数据。在本特定实施例中,以i(n)标记的输入信号是16位输入信号或者vlc的n个位。例如i(15),它是输入信号的最重要位,被供给多路转换器15即m15的选择器单元15和m14的选择器单元14等等。由于图形大小限制,图8示出MUX链710中的5个多路选择器;当然,在本特定实施例中使用了更多的MUX。不过,下面的表1示出了对于全部16个多路转换器的输入信号以及给定任一指针值sel时它们的输出信号。图8中的多路转换器m15、m14、m8、m1和m0对应于表1中的列。
表1
  m15   m14   m13   m12   m11   m10   m9   m8   m7   m6   m5   m4   m3   m2   m1   m0
 sel=15   15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
 sel=14   0   15   14   13   12   11   10   9   8   7   6   5   4   3   2   1
 sel=13   1   0   15   14   13   12   11   10   9   8   7   6   5   4   3   2
 sel=12   2   1   0   15   14   13   12   11   10   9   8   7   6   5   4   3
 sel=11   3   2   1   0   15   14   13   12   11   10   9   8   7   6   5   4
 sel=10   4   3   2   1   0   15   14   13   12   11   10   9   8   7   6   5
 sel=9   5   4   3   2   1   0   15   14   13   12   11   10   9   8   7   6
 sel=8   6   5   4   3   2   1   0   15   14   13   12   11   10   9   8   7
 sel=7   7   6   5   4   3   2   1   0   15   14   13   12   11   10   9   8
  sel=6   8   7   6   5   4   3   2   1   0   15   14   13   12   11   10   9
  sel=5   9   8   7   6   5   4   3   2   1   0   15   14   13   12   11   10
  sel=4   10   9   8   7   6   5   4   3   2   2   0   15   14   13   12   11
  sel=3   11   10   9   8   7   6   5   4   3   2   1   0   15   14   13   12
  sel=2   12   11   10   9   8   7   6   5   4   3   2   1   0   15   14   13
  sel=1   13   12   11   10   9   8   7   6   5   4   3   2   1   0   15   14
  sel=0   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0   15
在本实施例中,通过MUX组织数据可以通过按照表1中所示的顺序从输入位耦合或连接到MUX的给定选择器单元来实现。因而,在本实施例中并不必须在输入数据和16选1多路选择器之间使用逻辑,但是,当然,所要求的主旨并不限于这一方面的范围之内。表1示出指针=sel=12时,MUX链710的输出信号时vlc(2:0,15:3)。
图8示出16选1的MUX的一个位输出信号被连接到32位缓冲器中的位n和n+16。例如,多路选择器15(m15)的输出信号被应用于缓冲器中的位单元15和31。图8示出m15通过MUX 830和840送往缓冲器单元15和31。如所示的,MUX的输出信号至少部分地通过使能屏蔽码的相应位被控制。用于缓冲器单元31的使能信号enable(31)使m15向缓冲器的位单元31写入。使能屏蔽码允许一次向32位缓冲器写入16位。在图8所示的示例中,是位31还是位15被使能,至少部分地取决于缓冲器指针的值。
在一个实施例中,生成使能信号或者使能屏蔽码的电路包括组合逻辑,其至少部分地基于缓冲器指针的值产生32位屏蔽码。当然,再次,所要求的主旨并不限于这一反面的范围之内。当输入长度是零的时候,屏蔽码变为全部是零。在本实施例中,这保证了向缓冲器的写入发生在长度不为零并且出现要被打包的输入数据的时候。使能屏蔽码不使能对于从pointer(4:0)开始的16个尾随的缓冲器单元。如果pointer(4:0)=24,则对于缓冲器单元25至31和0至8的使能屏蔽码是零,其余的是1。在本实施例中,允许一个MUX向缓冲器的两个单元中的一个写入节省了16个MUX。
在另一个实施例中,通过向在不良数据上改写不良数据的单元添加“不关心”代替零,生成使能信号的电路可以被进一步简化。例如,如果指针指向单元30,则缓冲器buffer(15:0)已经被输出并是过期数据,因此,要被保护的位是位buffer(31)。使能位可以是:01111111111111111111111111111111。如果指针=8,则buffer(31:16)已经被输出并且是过期数据,因此,buffer(15:9)要被保护。使能位可以是:11111111111111110000000111111111。这种实现可以导致更小的电路,但是在一些情况下可以潜在地比先前所描述的方法产生更多的切换。再次,所要求的主旨并不限于包括两者中任一个的任何特定实现。
下面的示例被提供来举例说明本特定实施例,但是,再次,所要求的主旨并不限于下面的示例或者实现的范围之内。
示例2:
本示例使用先前说明过的示例1的输入和长度数据。
1)输入=0000000000000100长度=3
pointer(3:0)=pointer(3:0)-length(3:0)=Fh-3h=十六进制C=十进制12
如前面所描述的,pointer′(3:0)被用作MUX链710的“sel”值。MUX链710的输出信号是如图9所示的重新排序的vlc输入信号。
图9示出对于pointer′(3:0)=sel=12,从MUX链710输出的重新排序的vlc位。从MUX链710输出的重新排序的vlc的位然后被写入缓冲器的上一半或者下一半,这取决于使能位。这里的使能位enable(31:0)至少部分地基于前一指针值pointer。因为这是第一次向缓冲器写,所以pointer(3:0)=31并且enable(31:16)全是1,enable(15:0)全是零。这示出在图10中。
对于上面的输入信号,输入位2是1,其余的位是0。使能位将允许缓冲器单元31到16被写入。buffer(31:16)被写入,buffer(15:0)被再次循环。图11中的阴影部分是过期数据或者是不关心的。
当这些位依时钟被输入到缓冲器中之后,使能总线被更新以屏蔽对此刻保存了有效数据的缓冲器单元31、30和29的写入,以及对缓冲器单元12到0的写,如果要被打包的当前vlc已经从缓冲器的下一半回绕并且已经达到16位长度,单元12到0会具有有效数据。使能位的值如图12所示。被使能写入的缓冲器单元用1表示。
2)输入=0000001110010011长度=11
pointer′(3:0)=Ch-Bh=十六进制1=十进制1
对于pointer′(3:0)=sel=1的重新排序的vlc位单元示于图13中。如前面图12中所示,使能位屏蔽对缓冲器单元31、30和29的写入,以保护先前写入的有效数据。缓冲器单元28-14写入了vlc的位10-0和位15-11,如图14所示。阴影区域代表不关心的数据。
当这些位依时钟被写入缓冲器中之后,使能总线被更新以屏蔽对缓冲器单元31:18的写入,这些单元此刻保存了来自上面的(1)和(2)的有效数据。使能位示于图15中。
3)输入=0000000000000001长度=2
pointer′(3:0)=1h-2h=十进制15
图16和图17示出对于上面的(3)的重新排序的vlc位和缓冲器的内容。pointer′(4)从1跳变到0,因而触发对于buffer(31:16)的有效信号。使能位被更新,如图18所示,以防止在(4)的进行期间对buffer(31:16)的改写。
4)输入=0111110001000100长度=15
pointer′(3:0)=Fh-Fh=十进制0
图19和图20示出对于(4)的重新排序的vlc位和缓冲器的内容。因为有效内容先前被输出了,所以buffer(31:16)是不关心的数据。因此,图21中所示的使能位的值允许向缓冲器单元0以及31:17写入。buffer(16)也包括过期数据,但是在本实施例中,一次最多可以写16个位,所以这里通过保持16位窗口简化了使能逻辑。当然,所要求的主旨并不限于这一方面的范围之内。
5)输入=0011111111111100长度=16
pointer′(3:0)=0h-0h=十进制0
图22和图23示出对于(5)的重新排序的vlc位和缓冲器的内容。pointer′(4)从0跳变到1,因而触发对于buffer(15:0)的有效信号。打包以这种方式继续进行。
本特定实施例的另一个问题涉及从缓冲器写出。这个具体示例采用16位输出总线,但是,当然,所要求的主旨并不限于这一个方面的范围之内。图24示出本实施例中的32位缓冲器的输出信号由指针的高位决定。如果指针位于缓冲器的末16位,指针的位4等于0,则高16位被使能作为输出信号。如果指针位于缓冲器的高16位,指针的位4等于1,则末16位被使能用于输出。如前面所表明的,对于本特定实施例,数据输出有效位产生于跨过16位分界线的时候,这在本实施例中由指针的位4改变状态来发出信号或者指示。这可以例如通过对位(4)和延迟一个时钟周期的位(4)应用XOR(异或)操作来检测。当然,这可以用多种方法来实现,所要求的主旨也并不限于所提出的该特定方法的范围之内。
如前面所提出的,在本实施例中,多路选择器的对称性也可以提供减少硬件的机会。通常,16个执行16选1的选择操作的MUX可以用80个执行4选1的选择操作的MUX来实现。但是,用于本特定实施例的这种体系结构的对称性将其减少到32个执行4选1选择的MUX。对于本实施例,由于输入数据的连续性质,该减少变为可能。MUX接收输入信号,但是是以不同的顺序。
图25示出使用4选1的MUX对具有16选1选择能力的4个MUX的传统实现。现在参考表1,对于sel=12的行,此时检查显示出图25中的MUX m15、m11、m7和m3的输出信号与图9所示的对于sel=1100的使能位相匹配。对于本特定实施例的任何sel值,表1和图25都相匹配。
然而,图26示出使用4选1的MUX实现4个16选1的MUX的方法。本实施例的m15、m11、m7和m3是从一系列或一组MUX产生的,这样将MUX的数量从图25中所示的20个减少到图26中所示的8个。这种多路选择器共享的实现也可以被用于例如被用来实现本可变长度位打包器实施例的剩余的三组MUX。图26使用图25中所示的示例,sel=1100。当然,再次,这仅仅是一个示例,所要求的主旨并不限于该特定示例或者实现的范围之内。
如前面所表明的,按照所要求的主旨的可变长度位打包器的实施例并不限于使用这种对称性的范围之内。然而,虽然所要求的主旨并不限于先前所描述的实施例的范围之内,但是已经证明了对比传统的方法可以潜在地达到较少的门数量。另外,至少一些实施例可以包括在每个时钟周期打包预定长度的位串以及在每个时钟周期将其写出的能力。另外,对于至少一些实施例,按照需要放大或者缩小该长度的大小的能力可以是一个特性。此外,实施例可以按照需要可替换地支持小端格式或者大端格式,并且可以被用来支持例如用于JPEG、CCITT Group 3和Group 4、MPEG、GZIP等的可变长度编码。当然,所要求的主旨并不限定于使用或者实现仅仅这些压缩方法的范围之内。另外,至少一些实施例可以按照需要具有多种用途。
此外,按照所要求的主旨,可变长度位率打包器的实施例可以被使用来实现将不同位串的所选部分打包到缓冲器中。例如,虽然所要求的主旨并不限于这一方面的范围之内,但是诸如图7和图8中示出的720的MUX可以被使用来选择要在缓冲器中被打包的不同位串的部分。此外,例如710的MUX可以被使用来排序用来在特定缓冲器单元打包的所选部分的位。在这样的实施例中,对用来打包的位进行排序的MUX可以至少部分地由例如pointer(3:0)的缓冲器单元指针来控制,该指针跟踪缓冲器的有效内容,但是,再次,所要求的主旨并不限于这一方面的范围之内。另外,用来选择要被打包的希望的部分的MUX可以至少部分地由一组屏蔽位来控制,例如前面所描述的使能位。
当然,应当理解,虽然已经描述了特定的实施例,但是所要求的主旨并不限于特定的实施例或者实现的范围之内。例如,一种实施例可以是硬件中的,而另一种实施例可以是固件中的,或者例如硬件和固件的任何组合。另外,一些实施例还可以包括软件作为实现的一部分。此外,计算机系统或者平台,例如数据压缩系统,可以使得按照所要求的主旨的某种方法的实施例被执行,例如前面所描述的将不同位串的所选部分打包到缓冲器中。
虽然所要求的主旨的某些特征在这里已经被示出和描述,但是本领域的技术人员现在会想到许多修改、置换、改变和等同物。所以,应当理解所附权利要求意思是覆盖所有落入所要求主旨的真实精神之内的修改和变化。

Claims (4)

1.一种装置,包括:
缓冲器;
多个屏蔽多路选择器;和
多个排序多路选择器;
其中,所述缓冲器和所述屏蔽多路选择器及所述排序多路选择器耦合在一起,以便应用于所述屏蔽多路选择器及所述排序多路选择器的选择器信号将不同位串的具有变化的长度的部分排序和打包在所述缓冲器中。
2.根据权利要求1所述的装置,其中,所述排序多路选择器耦合在一起,以便至少部分地由缓冲器单元指针控制,所述指针跟踪所述缓冲器的有效内容。
3.根据权利要求1所述的装置,其中,所述屏蔽多路选择器被耦合在一起,以便至少部分地由一组屏蔽位控制。
4.根据权利要求1所述的装置,其中,所述排序多路选择器耦合在一起,以便由共同的选择器信号控制。
CNB028164814A 2001-08-22 2002-07-18 可变长度编码打包体系结构 Expired - Fee Related CN100392983C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/935,524 2001-08-22
US09/935,524 US6653953B2 (en) 2001-08-22 2001-08-22 Variable length coding packing architecture

Publications (2)

Publication Number Publication Date
CN1545765A CN1545765A (zh) 2004-11-10
CN100392983C true CN100392983C (zh) 2008-06-04

Family

ID=25467295

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028164814A Expired - Fee Related CN100392983C (zh) 2001-08-22 2002-07-18 可变长度编码打包体系结构

Country Status (6)

Country Link
US (1) US6653953B2 (zh)
EP (1) EP1419581A1 (zh)
JP (1) JP4065425B2 (zh)
CN (1) CN100392983C (zh)
TW (1) TWI264202B (zh)
WO (1) WO2003019789A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4411691B2 (ja) * 1999-06-30 2010-02-10 パナソニック株式会社 非水電解液二次電池および非水電解液二次電池の充電制御システムおよびこれを用いた機器
US6636167B1 (en) 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US6563439B1 (en) 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
JP3415126B2 (ja) * 2001-09-04 2003-06-09 三菱電機株式会社 可変長符号多重化装置、可変長符号分離装置、可変長符号多重化方法及び可変長符号分離方法
US20040071171A1 (en) * 2002-08-06 2004-04-15 Ali Ghiasi Natural data ordering of a multiplexed high speed bit stream
KR100975062B1 (ko) 2003-12-27 2010-08-11 삼성전자주식회사 가변길이 부호화 장치 및 가변길이 부호화 방법
US20060123194A1 (en) * 2004-12-02 2006-06-08 Claudio Alex Cukierkopf Variable effective depth write buffer and methods thereof
US20060130352A1 (en) * 2004-12-20 2006-06-22 Index Measuring Tape Co, Ltd. Measuring tape for tape rule
US8949120B1 (en) 2006-05-25 2015-02-03 Audience, Inc. Adaptive noise cancelation
US9640194B1 (en) 2012-10-04 2017-05-02 Knowles Electronics, Llc Noise suppression for speech processing based on machine-learning mask estimation
US9536540B2 (en) 2013-07-19 2017-01-03 Knowles Electronics, Llc Speech signal separation and synthesis based on auditory scene analysis and speech modeling
US9236874B1 (en) * 2013-07-19 2016-01-12 Audience, Inc. Reducing data transition rates between analog and digital chips
DE112015003945T5 (de) 2014-08-28 2017-05-11 Knowles Electronics, Llc Mehrquellen-Rauschunterdrückung
US10775206B2 (en) 2016-05-24 2020-09-15 Quicklogic Corporation Sensor hub batch packing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321398A (en) * 1991-09-27 1994-06-14 Sony Corporation Variable length coder and data packing circuit
US5499382A (en) * 1993-09-20 1996-03-12 Nusinov; Eugene B. Circuit and method of bit-packing and bit-unpacking using a barrel shifter
US6065066A (en) * 1998-06-02 2000-05-16 Adaptec, Inc. System for data stream packer and unpacker integrated circuit which align data stored in a two level latch
US6195026B1 (en) * 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR17499E (fr) * 1911-06-29 1913-09-20 S T A R Systeme De Traction Auto-Regulateur Cessio Procédé pour le démarrage et le réglage de la vitesse des moteurs électriques alimentés par du courant continu, réalisant les couplages série et parallèle et permettant en outre la récupération au freinage, ainsi que son mode de réalisation pratique
US5119092A (en) * 1988-11-22 1992-06-02 Sharp Kabushiki Kaisha Apparatus for encoding, decoding, and storing waveforms
JP2827714B2 (ja) * 1992-06-09 1998-11-25 国際電信電話株式会社 ビデオ信号の高効率セル化方式
JPH09171038A (ja) * 1995-12-19 1997-06-30 Toshiba Syst Technol Kk 周波数検出方式
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
FR2772221B1 (fr) * 1997-12-10 1999-12-31 Alsthom Cge Alcatel Trame de transmission de donnees de longueur variable, et dispositifs d'emission et de reception de telles trames
US6125406A (en) * 1998-05-15 2000-09-26 Xerox Corporation Bi-directional packing data device enabling forward/reverse bit sequences with two output latches
WO2000035162A1 (en) * 1998-12-10 2000-06-15 Nokia Networks Oy Packet transmission method and apparatus
US6356212B1 (en) * 2000-02-18 2002-03-12 Sarnoff Corporation Single clock reference for compressed domain processing systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321398A (en) * 1991-09-27 1994-06-14 Sony Corporation Variable length coder and data packing circuit
US5499382A (en) * 1993-09-20 1996-03-12 Nusinov; Eugene B. Circuit and method of bit-packing and bit-unpacking using a barrel shifter
US6065066A (en) * 1998-06-02 2000-05-16 Adaptec, Inc. System for data stream packer and unpacker integrated circuit which align data stored in a two level latch
US6195026B1 (en) * 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding

Also Published As

Publication number Publication date
US6653953B2 (en) 2003-11-25
EP1419581A1 (en) 2004-05-19
US20030038736A1 (en) 2003-02-27
CN1545765A (zh) 2004-11-10
JP4065425B2 (ja) 2008-03-26
TWI264202B (en) 2006-10-11
WO2003019789A1 (en) 2003-03-06
JP2005501463A (ja) 2005-01-13

Similar Documents

Publication Publication Date Title
CN100392983C (zh) 可变长度编码打包体系结构
Ranganathan et al. High-speed VLSI designs for Lempel-Ziv-based data compression
EP0577330B1 (en) Improved variable length decoder
US6195026B1 (en) MMX optimized data packing methodology for zero run length and variable length entropy encoding
US9252805B1 (en) Parallel huffman decoder
US5675331A (en) Decoding device for decoding a variety of code signals
EP0546863A2 (en) Data compression apparatus
US7343542B2 (en) Methods and apparatuses for variable length encoding
Mukherjee et al. MARVLE: A VLSI chip for data compression using tree-based codes
KR20020075889A (ko) 보다 효율적인 데이터 압축
Lei et al. VLSI implementation of an entropy coder and decoder for advanced TV applications
Lin A hardware architecture for the LZW compression and decompression algorithms based on parallel dictionaries
US5754128A (en) Variable-length code encoding and segmenting apparatus having a byte alignment unit
Shah et al. A chip set for lossless image compression
US6781528B1 (en) Vector handling capable processor and run length encoding
US6707398B1 (en) Methods and apparatuses for packing bitstreams
US6144321A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
WO1999052294A1 (en) Method and apparatus for encoding/decoding a data stream using inferential techniques
US6496602B2 (en) Sorting device of variable-length code
KR100292050B1 (ko) 가변장복호기의 데이타 가변장치
Mukherjee et al. Multibit decoding/encoding of binary codes using memory based architectures
US6707397B1 (en) Methods and apparatus for variable length codeword concatenation
Lee et al. A memory-based architecture for very-high-throughput variable length codec design
CN1299561A (zh) 图象信息的编码方法及解码方法
US7072400B2 (en) Inverse zigzag scanning of a matrix of video data values and manipulation

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080604

Termination date: 20180718

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