CN1013631B - 通用变长码编译码方法和可编程电路 - Google Patents
通用变长码编译码方法和可编程电路Info
- Publication number
- CN1013631B CN1013631B CN 88109755 CN88109755A CN1013631B CN 1013631 B CN1013631 B CN 1013631B CN 88109755 CN88109755 CN 88109755 CN 88109755 A CN88109755 A CN 88109755A CN 1013631 B CN1013631 B CN 1013631B
- Authority
- CN
- China
- Prior art keywords
- code
- variable length
- length code
- source
- output
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
在信源编码领域广泛应用的变长码的一种通用编译码方法和可编程电路。通过在变长码中引人数学结构,使得这种变长码能够以少量特征参数和简单,规则的算法完全表征,不同概率特性的信源的变长码的编译码,只需改变少量的特征参数,利用统一的简单,规则的算法来实现。最长码长很长的变长码在一定条件下可分解成多个最长码长较短的变长码,从而可容易地实现其编译码,并保持平均码长不变。硬件电路简单,规则,可编程。
Description
本发明涉及一种通用变长码编译码的方法和可编程电路。
变长码或信源熵编码是信源编码中的信息保持型编码,广泛应用于话音,图象、传真,文字,遥感数据等信源的压缩编码中。德国专利DE3510-910,“Buffer circuit for re-encoding data signals”(译码数据信号的缓冲电路),DE3510-902,“circuitry for PCW encodad video data”,(PCW编码视频数据的电路)和DE3632-682“Data signals code converting circuitry”(数据信号码转换电路)涉及了一种变长码的编译码方法。IEEE信息理论学报33卷第1期第154-156页H·TANAKA发表的文章“Data Structure of Huffman Codes and its Application to efficient Encoding and Decoding”(霍夫曼码的数据结构和在有效编译码中的应用),也描述了一种变长码的编译码方法。所有这些变长码的编译码方法都与具体的变长码字和码长信息或码树结构有关。因此在变长码的编码和译码中必须存放每个变长码字和码长信息或码树结构信息。这需要较多的存储量。由于变长码的变长特性,译码时从码流中正确划分出变长码字,编码时从定长存储单元读出码字然后串行送出变长码都是困难的。以上编译码方法在这方面都花费了较多的代价来完成这些工作。变长码应用中的另一个重要难题就是通用性问
题,不论是香农码,还是费诺码,霍夫曼码都与被编码信源的统计特性紧密相关,不同统计特性找出的变长码可以完全不同,而且缺乏结构。因此这些变长码都不适合制作通用的变长码编译码集成电路。即使制做专用于某种信源统计特性的变长码编译码电路,当码字个数较多和/或码字长度较长时,硬件规模相当庞大。
以上原固造成至今没有研制出通用变长码编译码集成电路,使得长期以来使用者只能自己搭制硬件电路或编制复杂的计算机程序,甚至不得不降低变长码的编码效率,采用便于实现的,针对特定信源统计特性的准最佳变长码,例如威利(Wyle)码,线性码(A码),对数码(B码),截断霍夫曼码,修正霍夫曼码,分段修正霍夫曼码等。
本发明的目的是研制一种通用的变长码编译码方法,使其具有即不降低变长码的编码效率,又使电路实现简单、规则、适合制作通用可编程的变长码编译码集成电路,用软件实现具有编程简单,存储量小,平均运转次数少的优点。
本发明的总体构思是:在变长码中引入数学结构,使得这种变长码能以少量的特征参数和简单、规则的算法所完全表征。这样就不用存储码字和码长信息或码树结构信息,对不同的统计特性的信源,编程少量的特征参数,利用简单规则的算法就可实现不同信源统计特性变长码的编译码。
本发明的编译码方法是这样实现的:
其中,S0,S1,S2,…,SM-1是信源符号,P0,P1,P2,…PM-1是信源符号对应的概率。M是信源符号个数。
具有P0≥P1≥…≥PM-1。把信源写成它的同构形式:
称S′中的0、1、2,…M-1是S中S0,S1,S2,…,SM-1的代码。
应用霍夫曼算法(也可以是香农算法,费诺算法)于这些信源概率,找出这个信源的霍夫曼码(或香农码,费诺码)的码字长度和各个长度的码字个数,写成矢量形式:(n1,n2,…,nj,…,nL)
其中nj表示码长j的码字个数。称这个矢量是信源S的量化源。有关系式:
这样来确定量化源(n1,n2,……,nL)的满足字首条件的变长码字:信源代码i可以写成
若nj=0,则mj=∞,no=0,i=0,1,2,…W-1,它的变长码字长度是j,这样码字的十进制表示为:
这样确定的变长码满足字首码的条件,它与用霍夫曼算法(或香农算法、费诺算法)寻找出来的变长码具有同一个量化源,因而平均码长相同。这种引入了数学结构的变长码从短到长,码字数值从小到大排列,同样码长的码字连续、紧凑地排列在一起,同样码长码字的数值与对应信源代码的数值之差是常数,它的特征参数是一组门限和差值,由信源的量化源确定。
根据量化源,
门限
(3)
j=1,2,…,L
差值
(4)
规定Y1=0 j=2,3,…,L
这种引入了数学结构的变长码的译码算法如下:
(1)j=0,R=0,(j是码长指标,R是一个移位寄存器),
(2)接收码流串行输入一位到R中,
(3)j←j+1,若R<Tj(门限),转(4),否则转(2),
(4)i=R-Yj(差值),并行送出信源代码i,转(1),
这种引入了数学结构的变长码的编码算法如下:
(1)j=0,并行输入信源代码i,
(2)j←j+1,R=i+Yj,
(3)若R<Tj,转(4),否则转(2),
(4)输出R的第j位,
(5)j←j-1,
(6)若j=0,转(1),否则转(4)。
这种引入了数学结构的变长码的译码算法和编码算法都简单而且规则,适合硬件电路实现,也适合软件编程。在电路中制作少量可改写的存储器用于存储特征参数,即门限和差值,就能做成通用的可编程的引入了数学结构的变长码的编码电路和译码电路。
最长码长N大于1的引入了数学结构的变长码,当满足条件
时,可以分解成一个最长码长小于等于1的引入了数学结构的变长码和一个最长码长小于N的引入数字结构的变长码。如果不满足条件5,可增大L使之满足。第二个引入了数学结构的变长码的最长码长已经小于N,对它还可再做分解。这样,一个最长码长很长的引入了数学结构的变长码就可以用多个最长码长较短的变长码编译码器实现编译码。这种变长码的分解不对具体码字进行,只须对量化源进行。
量化源(n1,n2,…,nN,),N>L,满足以下两个条件:
①
1≤j≤L(6)
②
(7)
就可以分解成两个量化源:
(n1,n2,…,nj+1,nj+1,…,nj′,r′j′+1)(8)
(8)式量化源中的r′j′+1由下式确定:
j′=L(10)
(9)式量化源中各量分别是:
rj′+1-j=nj′+1-r′j′+1
rk=nk+jk=j′+2-j,…,N-j(11)
(9)式量化源中各量分别是:
rj′+1-j=nj′+1-r′j′+1
rk=nk+jk=j′+2-j,…,N-j(11)
(8)式的量化源的最长码长是r′j′+1由于当j′=L时,r′j′+1=0,所以(8)式量化源的最长码长小于等于1。(9)式的量化源的最长码长是经过分解后的量化源的最长码长已减小,还可以继续对(9)式的量化源做进一步分解,直到分解后的量化源的最长码长都小于等于1。在编译码时,(8)式量化源按前面叙述的编译码方法进行,而(9)式量化源在编译码之前有一个由(8)式量化源的编译码器编译出来的码长j的前缀码。这样分解后的编译码形成积木式的工作方式,而又丝毫不降低这个引入了数学结构的变长码的编码效率。
作为实施本发明涉及的编译码方法的手段之一,图1和图2分别给出了通用可编程变长码译码电路和通用可编程变长码编码电路。
图1的译码电路中,串行变长码字码流9在由控制脉冲产生器6产生的控制信号10的作用下,串行进入移位寄存器5,5的内容与存储器3输出的门限在比较器2做比较,2的状态输出送给控制脉冲产生器6。当2状态指示收到一个完整码字时,6产生一个控制脉冲,把5的内容和存储器4输出的差值内容在减法器1相减,并行送出译出的等长信源代码到数据总线11。
在图2的编码电路中,通过数据总线11送入的等长信源代码和存储器4输出的差值在加法器1相加后,与存储器3输出的门限在比较器2比较,2的状态输出送给控制脉冲产生器6。2的状态指示编出一个变长码字时,6产生一个打入脉冲,把
1的输出打入移位寄存器5,由6供给的移位脉冲10使5的内容左移,把编出的变长码字串行地输出。
图1、图2中的存储器3、4的门限和差值内容,在译码工作之前由数据总线11送入。地址信号12,片选信号13,以及读写信号14,内部工作时钟信号15都由外部提供。译码结束信号或编码结束信号16输出给外部电路。
最长码长很长的量化源分解后,它的编译码可以用多个最长码长较短的引入数学结构的变长码编译器实现,也可以在一个最长码长较短的引入数学结构的变长码编译码器中增加K组门限和差值,从而用一个这样的编译码器实现分解后的K个量化源的变长码的编译码,通过地址信号控制门限和差值组的选择。
本发明与现有技术比较,其主要优点是:
1.本发明提出的引入数学结构的变长码通过在变长码中引入数学结构,摆脱了长期以来最佳变长码的编译码都需要存储具体码字和码长信息或码树结构信息的束缚,同时又保持了最佳变长码的编码的编码效率和字首码条件。使这种引入了数学结构的变长码可以用少量的特征参数和简单,规则的算法完全表征。
2.引入数学结构的变长码与信源只通过信源量化源建立完整的联系。信源量化源可由霍夫曼算法或香农算法或费诺算法根据信源的统计特性求出。霍夫曼算法求出的量化源具有平均码长最短的特性,但每一个码字长度和计算都和整个概率集合有关,量化源的获取是一较复杂的运算。香农算法求出的量化源虽没有霍夫曼算法求出的量化源那么有效,但它的优点是可以直接从概率pi求出信源代码i的码长。引入数学结构的变长码可以分别利用这两个算法的优点。
3.引入数学结构的变长码具有按码长从短到长码字的数值从小到大排列,同样码长的码字连续紧凑地排列在一起,同样码长的码字数值和对应信源代码的数值之差值是常数的特性。利用这些特性,不同信源统计特性的引入数学结构的变长码的编译码,只需改变少量门限和少量差值,再利用统一的简单、规则的编译码算法而实现。使得引入数学结构的变长码的编译码具有很强的通用性。
4.一个最长码长很长的引入数学结构的变长码,在一定条件下可以分解成多个最长码长较短的变长码,从而可用多个较短码长的编译码器或一个存有多组门限和差值的编译码器来实现很长码长的引入数学结构的变长码的编译码,并且丝毫不损失编码效率。这种分解只需对量化源进行。这就允许大量制作最长码长较短的引入数学结构的变长码编译码集成电路和可以存储多组特征参数的较短码长的编译码集成电路。由于这一可分解性,许多过去认为实现很困难的变长码,例如码字个数很多和/或码长很长的变长码将能够实现。
5.引入数学结构的变长码的编码和译码算法,都是简单,规则的操作,只用到加法,比较、计数和移位运算。因此,引入数学结构的变长码的编码和译码适合硬件实现和软件编程,特别适合通用可编程变长码编译码集成电路的制做。根据不同的信源量化源,编程送入不同的门限和差值,实现不同信源统计特性的引入数学结构的变长码编译码。在信源统计特性随时间变化的应用中,根据变化的信源统计特性改变编译码器中的门限和差值,就可以自适应地进行最佳引入数学结构的变长码的编译码。
6.引入数学结构的变长码的编码和译码电路的复杂度与最长码长L成正比;现有技术的变长码编译码电路的复杂变与最大码字个数W成正比。就专用于某个确定信源的变长码的编译码而言,当码字个数较少时,现有技术的变长码编译码电路更简单;但当码字个数较多时,引入数学结构的变长码的编译码电路复杂度更小。
需要明确指出,只要遵循本发明涉及的编译码方法,还可设计出其它的变长码编译码电路。
本发明涉及的编译码方法也可以通过编制计算机程序来实现。
Claims (6)
1、一种变长码的编译码方法,按概率大小排序的信源S,按照霍夫曼算法(或香农算法)找出这个信源的变长码的码字长度和各个长度的字的个数,写成信源量化源(n1、n2…,nj…,)其中nj表示码长j的码字个数,其特征在于由信源量化源确定一组门限和差值,
门限
差值
这种变长码的编码过程是:
(1)j=0,并行输入信源代码i
(2)j←j+1,R=i+Yj
(3)若R<Tj,转(4),否则转(2)
(4)输出R的第j位
(5)j←j-1,若j=0,转(1),否则转(4)
这种变长码的译码过程是,
(1)j=0,R=0
(2)接收码流串行输入一位到R中
(3)j←j+1,若R<Tj,转(4),否则转(2)
(4)i=R-Yj,并行送出信源代码i,转(1)。
2、按照权利要求1的方法,其特征是对于信源量化源(n1、n2……,nN),N>L,当满足
可把量化源分解成一个最长码长小于等于L的量化源和一个最长码长小于N的量化源,这种分解还可继续下去,从而可用多个最长码长较短的变长码编译码器,或一个可存储多组门限和差值的最长码长较短的变长码编译码器、来实现最长码长等于N的变长码的编译码,并保持平均码长不变。
3、一种变长码译码电路,其特征在于由减法器(1)、比较器(2)、门限存储器(3),差值存储器(4),移位寄存器(5)和脉冲产生器(6)组成,接收码流串行进入(5),(5)的输出和(3)的输出在(2)比较,(2)的输出控制(6)产生控制脉冲,把(5)的输出和(4)的输出在(1)相减,其结果并行输出。
4、按照权利要求3所述的变长码译码电路,其特征是门限存储器(3)和差值存储器(4)上有编程数据线和读写控制线。
5、一种变长码的编码电路,其特征是由减法器(1),比较器(2),门限存储器(3),差值存储器(4),移位寄存器(5)和脉冲产生器(6)组成,并行输入的等长信源代码和(4)的输出在(1)相加,(1)的输出和(3)的输出在(2)比较,(2)的输出控制(6)产生控制脉冲,把(1)的输出送入(5),由(5)串行输出变长码字。
6、按照权利要求5所述的变长码编码电路,其特征是在门限存储器(3)和差值存储器(4)上有编程数据线和读写控制线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 88109755 CN1013631B (zh) | 1988-12-17 | 1988-12-17 | 通用变长码编译码方法和可编程电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 88109755 CN1013631B (zh) | 1988-12-17 | 1988-12-17 | 通用变长码编译码方法和可编程电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1043413A CN1043413A (zh) | 1990-06-27 |
CN1013631B true CN1013631B (zh) | 1991-08-21 |
Family
ID=4835470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 88109755 Expired CN1013631B (zh) | 1988-12-17 | 1988-12-17 | 通用变长码编译码方法和可编程电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1013631B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1098565C (zh) * | 1996-06-07 | 2003-01-08 | 大宇电子株式会社 | 译码变长码的方法和设备 |
CN102938685A (zh) * | 2012-11-15 | 2013-02-20 | 大连理工大学 | 一种基于变长编码的无线传感器网络数据压缩方法 |
-
1988
- 1988-12-17 CN CN 88109755 patent/CN1013631B/zh not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CN1043413A (zh) | 1990-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6909265B2 (ja) | オーディオ/ビデオサンプルベクトルのピラミッドベクトル量子化インデクシング及びデインデクシングの方法及び装置 | |
CN1183683C (zh) | 使用前缀预测的位自适应编码方法 | |
US5045852A (en) | Dynamic model selection during data compression | |
CN1139188C (zh) | 调色图象的压缩及其m阵符号集比特状态编码的二进制化 | |
JP5936687B2 (ja) | ツリー構造の適応的エントロピー符号化方法 | |
KR101353170B1 (ko) | 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더 | |
US7233266B2 (en) | Data compression/decompression device and data compression/decompression method | |
JP6923677B2 (ja) | ビデオ圧縮におけるエントロピーコーディングのための選択的ミキシング | |
US6100825A (en) | Cluster-based data compression system and method | |
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
JP3065981B2 (ja) | データ処理方法、データ処理システムおよび記録媒体 | |
CN1359196A (zh) | 快速联合图像专家组霍夫曼编码和解码方法 | |
KR20040005991A (ko) | 웨이블릿 변환 계수의 코딩을 위한 방법 및 장치 | |
KR920704494A (ko) | 적합한 블럭크기로 영상을 압축하는 방법 및 시스템 | |
CN1085461C (zh) | 数字编码装置及数字码解码装置 | |
CN1112799A (zh) | 数字信号的编码方法和设备,数字信号的解码方法和设备,以及编码信号的记录媒体 | |
JP2006502604A (ja) | 任意形状オブジェクトの画像圧縮方法 | |
CN1254921C (zh) | 改进的哈夫曼译码方法和装置 | |
CN1737791A (zh) | 一种对数据进行有限穷举优化的压缩方法 | |
CN1650625A (zh) | 用于将参数值映像到码字索引的自适应方法和系统 | |
JPH0556070B2 (zh) | ||
CN1013631B (zh) | 通用变长码编译码方法和可编程电路 | |
WO2020095706A1 (ja) | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム | |
CN116737716A (zh) | 时序数据压缩方法及装置 | |
JP2019047450A (ja) | 圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |