CN1099766C - 数据压缩方法、数据复原方法及信息处理装置 - Google Patents
数据压缩方法、数据复原方法及信息处理装置 Download PDFInfo
- Publication number
- CN1099766C CN1099766C CN94120709.9A CN94120709A CN1099766C CN 1099766 C CN1099766 C CN 1099766C CN 94120709 A CN94120709 A CN 94120709A CN 1099766 C CN1099766 C CN 1099766C
- Authority
- CN
- China
- Prior art keywords
- dictionary
- data
- data compression
- string
- character
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
Abstract
本发明提出一种数据压缩、复原方法和信息处理装置。利用与编目号相关连地登记编目数据的辞典、将二个以上数据串的组合置换该编目号来进行数据压缩。在步骤A1、A2中形成、更新辞典,在步骤A3判断是否达到最佳辞典。这里的辞典更新中利用增量分析法、增加分解法等。然后如步骤A4、 A5所示,在生成最佳辞典时,将该辞典作为最后的复原用的静态辞典输出,同时利用该静态辞典进行数据压缩,将经压缩的数据串作为最后的复原用的压缩数据输出。
Description
本发明是关于利用能与编目号相关地登记编目数据串的辞典进行数据压缩的方法、为将压缩数据复原的数据复原方法及信息处理装置。
近来,在打印机等的信息处理装置中,由于提供各种打印尺寸的位映象字形和轮廓字形而使得付加价格增高,而且对在这种字形尺寸仍要保持高的打印质量的要求亦很高。因此,在打印机等领域内近来对为能高效率地存贮由这些字形数据构成的大量信息而使用的数据压缩技术得到很大的注意。
为用尽可能少的容量来存贮或传送大量信息而提出的数据压缩的现有技术中已知的有,像霍夫曼码那样将定长比特位数据变换成可变长比特位编码的技术、所谓的Lempel-Ziv专利(见美国专利No.4464650说明书)及LZW专利(见美国专利No.4558302说明书)那样的利用先前出现的数据串与欲由其压缩的数据串的一致来进行压缩的技术等。
可是,这些现有技术均是采用所谓的动态辞典进行数据压缩的方法。亦就是说,是对欲预压缩的对象数据进行分析,一边检验出现频率等一边按辞典的结构形式登记数据,同时利用该辞典来压缩数据的方法。这种情况下的特征在于,辞典是实时地改变的。在利用这种动态辞典压缩数据时,虽然仅只将被执行过压缩处理的对象数据作为产生物留下,但在对数据进行复原时要检验压缩时的历史数据的特性,再次重新编制辞典并同时进行下一数据的复原。从而,就存在有必须从被压缩的对象数据的初始进行依次处理的问题。
而在打印机等中的字形数据压缩中,被压缩的字形数据被存放在打印机或主计算机侧的存储装置中。然后,在打印时由存储装置中取出所需的压缩字形数据,将此压缩字形数据复原为普通的数据来形成打印数据。因此,在这样的条件下采用数据压缩的情况中,如何来快速复原存放在存贮器的数据以形成打印数据是必需要考虑的。
此外,在打印机等中对字形数据进行压缩时另一个重要问题是,要具有能够以哪种顺序输出哪样的打印数据(字符)的灵活性。也就是说,打印机等中对所存贮的数据要求能随机地存取、随机地产生打印数据。
一般压缩率较之霍夫曼码等压缩方法更高的Lempel-Ziv和LZW等的数据压缩方法,被认为是今后压缩技术的主流。然而,在这方面由于这些压缩技术是采用动态辞典的数据压缩,在进行数据复原时必须检验以往的数据特性来进行更新,因而存在着复位时的时间花费问题。
而且Lempel-Ziv和LZW等数据压缩方法,在复原时不得不从数据的起始依次来将数据加以复原,因而就无法实现在必要时仅仅只取出必须的打印字形数据的自由的处理。
再者,在采用LZW等中所用的被称之为增量分析法的压缩方法中,由于只能将可登记在辞典中的数据串的个数逐个地增加,例如在许多相同的数据相连续的情况下,就不可能再一次提高数据压缩率。
本发明就是为解决上述这些问题,目的在于提供既保持Lempel-Ziv和LZW数据压缩方法那样的高压缩率,又能以较短的时间来完成对应的原复处理,而只能自由地仅对必需的数据串进行复原处理的数据压缩方法,以及能对所压缩的数据串进行数据复原的方法和信息处理装置。
另外,本发明还有一目的是提供一种比增量分解法更高的压缩率的方法,从而能减少为存放被压缩的数据串及此时所生成的辞典所必需的存贮容量的数据压缩方法,以及能复原被压缩数据串的数据复原方法和信息处理装置。
为解决上述问题,本发明所提出利用能与编目号相关地登记编目数据串的辞典,将二个以上数据串的组合来置换该编目号来进行数据压缩的数据压缩方法。为此,对辞典进行更新直到形成最适于作为压缩对象的数据串的数据压缩的辞典,在形成了该最适宜辞典时期将其作为最后用于复原的静态辞典输出,同时利用该静态辞典对作为压缩对象的数据串进行数据压缩,再将经压缩的数据串作为最后用于复原的压缩数据输出。
在本发明中,编目数据串是与编目号相关连地登记在辞典中的。然后,再将二个以上的数据串的组合来置换其编目号,进行数据压缩。这样进行数据压缩,就可能在复原时,依靠由该编目号读出所述编目数据串来复原原始数据串。此时,辞典被加以更新,直至形成最适于作为压缩对象的数据串的数据压缩的辞典。即,对辞典加以更新直到例如压缩数据的数据量、辞典的数据量等成为最合适时为止。然后,在形成了最合适的辞典时即将其作为最后用于复原的静态辞典输出。并利用该静态辞典时作为压缩对象的数据串数据压缩,将经过压缩的数据串作为最后用于复原的压缩数据输出。然后,将所输出的最后的静态辞典、压缩数据存入例如存贮装置、存贮媒体中,利用打印机、计算机等信息处理装置加以复原,从而恢复该原始数据串。这样,在本发明中是对辞典进行更新直至形成最适宜的辞典,将此最适宜辞典作为静态辞典利用来作数据压缩。因此,就能保证所输出的静态辞典及压缩数据的数据量最适宜。而且,由于在被输出之前辞典并不必须是静态辞典,所以就有可能依靠利用例如数据压缩率非常高的动态辞典的数据压缩算法等进行数据更新,作数据压缩。由此就可能使最后的压缩数据的数据压缩率大大增加。另一方面,因为所输出的辞典为静态辞典,就可能利用这一静态辞典灵活地对必要的数据串加以复原。
而在前述的形成最适宜的辞典之前对所述辞典的更新中,可根据优先登记组合个数多的数据串组合的原则,在辞典的登记数达到规定数量时,由所形成的辞典中消除使用频率低的编目数据串的登记数。
这样,将组合个数多的数据串的组合优先加以登记来产生辞典,其具体作法之一是,可以采用被称之为滑尺辞典的方法。在利用这一滑尺辞典方法的情况下,利用滑尺辞典方法查寻出以往的数据串与作为对象的数据串之间最相一致的数据串,将此最相一致的数据串登记进辞典中,由此来形成辞典。因而就可能形成由将组合个数多的数据串组成优先登记而成的辞典。而后,依靠使用这样的辞典,由于组合个数多的数据串的组合被优先地置换到辞典的编码号,就可能使得数据压缩率成为最满意状态。另一方面,这样形成的辞典其登记数量会很大。因而,由这样形成的辞典中削除使用频率低的编目数据串的登记来进行辞典更新,如辞典登记数达到规定数而结束更新时,就能形成压缩率优良、亦就是说数据量很少的最适当的辞典。
再者,在前述对辞典更新以形成最适当的辞典的过程中,按照对出现概率高的数据串的组合作优先登记的原则,由所形成的辞典中削除使用频率低的编目数据串的登记直至辞典的登记数到达规定数为止。
此时是根据优先登记出现概率高的数据串组合的原则来形成辞典,这种数据串组合的出现概率,例如说可由对作为压缩对象的全部数据串的出现概率进行的检验中来求得。然后,由利用这样形成的辞典,出现概率高的数据串组合被优先地置换到编目号,就能使数据压缩率达到最满意。再由所形成的辞典削除使用频率低的编目数据串的登记进行辞典更新,在辞典的登记数成为规定的数量而结束更新操作时,就可能形成数据量少的最满意的辞典。
另外,在前述对辞典加以更新直至形成最满意辞典的过程中,在数据压缩时一边按照动态变化的数据压缩算法进行辞典更新一边对作为压缩对象的全部数据串作数据压缩处理,利用由这种处理所更新的辞典再次一边按照前述数据压缩算法更新辞典一边对作为压缩对象的全部数据串进行数据压缩处理,反复进行前述处理直至数据压缩率成为最满意为止。
此时,在进行数据压缩时,按照动态变化的数据压缩算法,例如增量分析算法、增加分解算法等对辞典加以更新,同时进行对全部压缩对象数据串的数据压缩处理。然后利用经这种处理所更新的辞典再次按照前述数据压缩算法更新辞典同时对全部压缩对象数据串进行数据压缩处理。从而反复进行这种处理直到数据压缩成为最满意,以形成最佳辞典。根据本发明,依靠采用数据压缩率高的动态辞典的数据压缩算法进行数据压缩,而且在数据压缩率成为最佳阶段结束辞典的更新,因而可大大提高数据压缩率。另一方面,由于输出的辞典成为静态辞典,所以可能利用此静态辞典灵活地复原必要的数据串。
本发明中的利用可能与编目号相关连地登记编目数据串的辞典、将二个以上数据串的组合置换该编目号来进行数据压缩的数据压缩方法包括下列步骤:
(A)由作为压缩对象的数据串中取出规定数的数据串存入具有规定数缓存器的工作区;
(B)判断前述工作区内相邻缓存器中所存放的数据串组合是否已被登记在辞典中,在被登记于辞典中的情况下,将该数据串组合置换到辞典中前述编目号,同时为填满由这种置换所产生的空的缓存器而使数据串在工作区内移位,将后续的数据串取入在工作区端部所产生的空缓存器中,再次判断工作区内相邻缓存器中所存放的数据串组合是否已被登记在辞典中;
(C)根据上述步骤(B)的判断,在工作区内相邻缓存器中存放的数据串组合哪一个也没有被登记在辞典中的情况下,将由工作区起始的第1、第2缓存器中所存放的数据串组合在辞典中加以登记,同时消除第一数据串,并为填充由此消除操作所形成的空缓存器而使数据串在工作区内作位移,再将后续数据串取入由于上述移位而在工作区末端所产生的空缓存器中;
重复进行上述步骤(B)、(C),直至作为压缩对象的所有数据串均被存入所述工作区内。
这样,就先对工作区内相邻缓存器中所存放的数据串组合是否被登记在辞典中进行分析,在已被登记的情况下就置换到辞典的编码号。然后在由此而产生的空缓存器中装入后续的数据串,再次对数据串组合是否被登记在辞典中进行分析。 在判断数据组合未被登记在辞典中时,就由头开始将第一、第二数据串组合加以登记,并将后续的数据串取入由此所产生的空缓存器中。就这样重复进行这些处理,直至全部数据串被存放工作区内,由此来进行数据压缩。如根据本发明,设置一定容量的工作区,在此工作区内存在有与所关注的数据串相同的数据串时就执行利用辞典的置换处理。因此,特别是在对同一数据串进行压缩处理的情况下,辞典的登记数就可能比过去的增量分析法要少得多,同时,由该辞典的编目号进行置换施加的压缩数据本身,也可能比之过去的增量分析法数据量少得多。
在上述的对作为压缩对象的全部数据串被加以处理之前通过重复一次上述步骤(B)、(C)的情况下,就利用前次过程中被更新的辞典来进行当前过程中的数据压缩。
在当前过程中前述(B)、(C)步骤重复的次数小于前次过程中的重复次数的情况下就转移到下一过程,而在当前过程中前述步骤(B)、(C)的重复次数比前次过程中重复的次数还大的情况下,就将在前次过程中更新的辞典作为最后复原用的静态辞典输出,同时利用该静态辞典进行一次过程的数据压缩,并将压缩所得的数据串作为最后的用于复原的压缩数据输出。
这就是说,将当前过程中处理重复次数与前次过程的处理重复次数加以比较,判断是否达到最佳数据压缩率。而在达到最佳数据压缩率时将该辞典作为最后的静态辞典,并将此静态辞典及利用此静态辞典压缩的数据输出。从而,有可能利用压缩率很高的增加分解算法作数据压缩来大大提高数据压缩率,同时由于输出的辞典成为静态辞典,也就有可能利用该静态辞典灵活地复原必要的数据串。
此外,在前述方法中还将编目号、编目数据串以及使用频率信息一同存贮在前述辞典中,并依次削除使用频率低的编目数据。
这就是说,由于依次削除使用频率低的编目数据串的登记,在辞典的可能登记的量有一定的限制时,就可能将辞典的数据量安排成最理想的大小。
在前述的削除使用频率低的编码数据串操作中,逐渐顺次减少辞典中登记的编目数据串的使用频率数,对使用频率数据先成为规定数目以下的编码数据串优先进行削除。
由于这种依次减少辞典中所登记的编目数据串的使用频率数,而对使用频率数最好成为规定数以下的编目数据串优先削除,就使得在辞典的可能登记数有限时,能得到辞典的登记量的最佳状态。由于是优先削除使用频率成为规定数目以下的编目数据串,能够在辞典中保留使用频率高的编码数据串,形成最佳辞典。
在本发明的上述处理过程中,作为压缩对象的数据串是字符打印时所必须的字形数据。
在这些作为压缩对象的字符打印所需字形数据中包括有位映象字形数据、轮廓字形数据等。在压缩位映象字形数据时,例如可以纵向、横向排列的规定数量单位(例如一个字节单位、一个字单位)的点数据作为压缩对象。而在轮廓字形数据压缩的场合,则可以例如构成字符轮廓的各点的属性信息、有关控制各点的向量座标的信息等作为压缩对象。
在本发明中的上述处理中,上述的字形数据中仅仅一部分成为所述的压缩对象数据,而对其他一部分则以另外的数据压缩方法进行压缩处理。
为此,根据构成字形数据的数据特性,一部分数据由采用静态辞典、增量分析算法、增加分解算法等的数据压缩方法进行压缩,向另外一部分则以例如霍夫曼编码技术进行压缩。这样,按照数据特性来更换相适应的压缩方法,就可能进一步提高数据压缩率。
另外,在本发明的方法中,针对具有共同字形的所述字符采用共同的所述辞典来进行数据压缩。
在这种对具有共同字形的字符以共同的辞典进行的压缩中,例如说,针对明体字符时,对全部采用专用明体字符的辞典进行更新和数据压缩,以得到最后的静态辞典和压缩数据。而针对黑体字字符串,则对全部采用专用黑体字的辞典进行数据更新和数据压缩,以得到最后的静态辞典和压缩数据。这样针对各种字形使辞典共同化,就能改善数据压缩频率。
在本发明中作为压缩对象的数据串是字符串。
利用字符串作为压缩对象,能够节省例如存贮字符所需要的容量等。
在前述本发明的数据压缩方法中,根据最后形成的辞典中所包含的编目号及编目数据串,形成包含有将前述编目数据串变换成专用于复原的数据形式的复原专用编目数据串、该复原专用编目数据串的长度、及该复原专用编目数据串的起始地址的信息的专用于复原的辞典。
在形成这种包含有复原专用编目数据串、该复原专用编目数据串的数据长度、及该复原专用编目数据串的起始地址的信息的专用于复原的辞典后,就可在进行复原时利用这一复原专用辞典来将数据加以复原。亦即,由前述起始地址所指定的位置读出所述数据长度所指明的长度的前述复原专用编目数据串,而将数据由辞典中读出进行复原处理。在这种情况下,复原专用编目数据被变换成复原专用的数据形式。因而,就可能以较之采用一般的辞典的情况快得多的速度进行复原处理。
上述本发明的数据压缩方法还包括,利用由所述数据压缩方法形成的压缩数据及最后的辞典,依靠与该数据压缩方法相对应的复原处理将作为压缩对象的数据串加以复原。
利用所述压缩方法形成的压缩数据及最后的辞典复原原始数据串,就能用这样复原的数据串来进行规定处理,例如说字符的打印处理等。
此外,本发明还包括有,利用上述压缩方法所形成的压缩数据及最后的辞典,依靠与该压缩方法相应的复原处理来对作为压缩对象的数据串进行复原的装置。
这种利用上述数据压缩方法所形成的压缩数据及最后的辞典来复原原始数据的复原装置可以是例如计算机、打印机等信息处理装置中的内装设施。
下面对本发明的最佳实施例进行说明。在下面第1、第2实施例中,为说明简单起见,采用主要以字符串作为数据串加以压缩的情况举例进行说明。不过,本发明中的数据串并不仅仅指这样的字符串,而是包括例如为组成字形数据的字节串、字串等所有种类的数据串。
对本说明书中所列附图的简单说明:
图1为说明本发明第一实施例的数据压缩方法的流程图;
图2为采用另一实施例数据压缩方法的数据压缩装置12的结构示例方框图;
图3(A)~(E)为对滑尺辞典方法的概略说明图;
图4为说明利用滑尺辞典方法取得最佳辞典的手法的流程图;
图5为说明利用增量分析算法取得最佳辞典的手法的流程图;
图6为对产生静态辞典及压缩数据的过程所作的图形说明;
图7为对本发明第一实施例中所用的数据压缩方法作模式说明的概略说明图;
图8(A)、(B)为增量分析法与增加分解法处理之间的差别的模式说明图;
图9为说明增量分析法的流程图;
图10(A)、(B)为表明增量分析法与增加分解法处理的差异的模式图;
图11为说明增加分解法进行一次处理过程的流程图;
图12为说明辞典最佳化的多次处理过程的流程图;
图13(A)为表示包含使用频率信息的辞典结构的图示;图13(B)为说明根据使用频率作削除编目处理的流程图;
图14(A)为说明复原专用辞典的结构的图示;图14(B)为说明按字符起始地址及字符串长度指定字符串的核心部分的图示;
图15为采用复原专用辞典时的复原处理流程图;
图16(A)、(B)为对位映象数据作概略说明的图示;
图17为对字符的位映象图形作概略说明的图示;
图18为对轮廓字形概略说明的图示;
图19(A)、(B)为对轮廓字形数据的压缩作概略说明的图示;图19(C)为这一压缩数据的复原处理流程图;
图20为利用实施例的数据压缩方法的状态。
图1中所示为说明本发明第一实施例的数据压缩方法的流程图。在本实施例的数据压缩方法中,采用可能与编目号相关地登记编目数据的辞典。而后,将二个以上的数据串的组合置换该编目号,由此来进行数据压缩。首先,由作为压缩对象的全部数据串(例如字符串)来形成辞典(步骤A1),对辞典反复进行更新直至形成对数据压缩最佳的辞典(步骤A2、A3)。然后,在生成最佳辞典的时期即将该辞典看作为最后的用于复原的静态辞典,并根据这一静态辞典对作为压缩对象的数据串进行数据压缩(步骤A4)。再将由此压缩得到的最后的专用于复原的压缩数据及最后的专用于复原的静态辞典输出,存贮进屏蔽型ROM、EEPROM等的存储装置、存储媒体中。然后,利用这些存储装置等中存放的静态辞典及压缩数据,在打印机或主计算机等信息处理装置内部进行数据复原处理。
在形成、更新辞典的过程中,对何时成为数据压缩的最佳辞典的判定技术,可以有后面介绍的种种技术。
图2中示出了采用本实施例的数据压缩方法的数据压缩装置12的结构示例。首先,作为压缩对象的全部数据串11被输入选辞典形成、更新机构13,由其进行对辞典的形成、更新处理。而后,在形成对数据压缩最佳的辞典时期,将该辞典作为静态辞典14保持在静态辞典保持机构15中。然后,该被保持的最佳静态辞典14由输出机构16输出外部存储机构(图中未示出),另一方面,在数据压缩机构17中被用于对全部数据串11进行数据压缩。这一压缩由将二个以上的数据串的组合置换到辞典的编目号来进行。然后将其结果所得的压缩数据19,由压缩数据输出机构18输出到外部存储机构。
下面对本实施例中辞典的结构予以说明。例如,考虑对数据串(字符串)"Static-String-dictionary"的压缩情况。此时,在辞典中被登记有像:"St"、"at"、"ic"、"_"、"st"、"ring-d"、"ic"、"tionary"这样的8个数据串组合。在这种情况下,这些数据串组合,例如像下述所示的那样与编目号相关连地被加以登记:
0:St,
1:at
2:iC
3:_
4:ring-d
5:tionary。
这样,整个的"Static-String-dictionary"数据串,就可能利用这些编目号置换成为如同0、1、2、3、0、4、2、5那样,由此而将数据进行了压缩。
下面对形成最佳辞典的种种技术加以说明。在本实施例中,最后将静态辞典和压缩数据两者输出,并将它们存放在存储装置中。因此,为节省存储装置的使用容量,就必须降低最后的静态辞典和压缩数据的数据量,将这些数据量作成很少的辞典就可以看作为最佳辞典。亦即,为实现最佳辞典,就希望辞典本身的数据量能很小,或者,希望压缩数据的数据量能很小。为此目的,本实施例中采用了例如以下的四种技术。
(A)为取得最佳辞典的第一种技术
在这种技术中,利用称之为滑尺辞典的技术,将组合个数多的数据串的组合优先地加以登记来形成辞典。然后按照使用频率信息依次逐渐地削除所形成的辞典的登记数量,来获得最佳辞典。
首先,对所谓的滑尺辞典利用图3(A)~(E)加以说明。采用这一技术时,将作为压缩对象的整个字符串41由头开始依次取作对象字符串43存入作为工作区的存储器空间。然后,对早先的字符串42(由头开始至对象字符串43前)检查其中是否存在与该对象字符串43相同的字符串。如果在早先的字符串42中不存在有相同的字符串,就将该对象字符串43的最先一字符由对象字符串43向早先的字符串42作位移(进行滑动)。另一方面,如果在早先字符串中存在有相同字符时,检验下一字符串是否也一致,重复这样的过程以找出对象字符串43与早先的字符串42之间的最长的一致字符串(字符串的组合个数最多的)。
例如在作为压缩对象的字符串为ABCABCDEF的情况下,首先,A成为对象字符串43,由于早先没有相同的字符串,A就向作为早先的字符串42的滑尺辞典移动(见图3(B))。然后,B、C由于同样在早先的字符串中没有同样的字符串而向滑尺辞典位移(见图3(C))。再后,又一次A成为对象字符串43,在这种情况下,由于A在滑尺辞典中存在有,由检验下一个B是否一致(图3(D))。由于这时也为一致,故对下一个C检验其一致性(见图3(E))。接着下面检验D是否一致,D在滑尺辞典中不存在。因而在这种情况下,ABC成为最长一致的字符串。
这样,在这种称之为滑尺辞典的技术中,籍助这样查找出的最长一致字符串ABC,就将例如ABCABCDEF字符串压缩成「A」、「B」、「C」与前面三个相同三个字符、「D」、「E」、「F」。具体说,在不存在一致的情况下,以「无一致标志=1及其字符码」来表示该字符串;而在存在有一致的情况下,则依靠由「无一致标志=0及一致地点和一致长」来表示该最长一致的字符串,进行数据压缩。
不过在本实施例中,滑尺辞典技术并不用于实际的数据压缩,而仅仅是用来求取压缩对象字符串中的最长一致字符串。而在本实施例中,一旦查找出最长一致字符串,就将此最长一致字符串与编目号相关连地登记到辞典中。在上述例子中,ABC就被登记到辞典中。就这样,在全部压缩对象字符串中查找出出现两次以上的最长一致字符,并将它们登记在辞典中。在上述例子中,ABC就被登记到辞典中。就这样,在全部压缩对象字符串中查找出出现两次以上的最长一致字符,并将它们登记在辞典中。据此,组合个数多的字符串就被优先地登记在辞典中。
在采用滑尺辞典的场合需要将早先的字符串存放在存储器中。但是,如图3(A)中所示那样,存储器容量有限时,可能存进存储器的范围也就有限。因而,在这种情况下,在早先的字符串42中只有能存放进存储器的范围内的才构成辞典。
在图4中示出了为说明利用滑尺辞典技术来得到最佳辞典的技术的流程图。如图4中所示,首先,利用滑尺辞典技术查找出压缩对象字符串中出现两次以上的最长一致字符,将它们登记进辞典从而形成辞典(步骤B1)。接着,利用所形成的辞典由全部压缩对象字符串中查找出与辞典编目字符串最长一致的字符串组合,在查找出的时刻将其编目字符串的使用频率逐次增加(步骤B2)。例如在压缩对象字符串为ABCDEF,而编目字符串为AB和ABC的情况下,编目字符串ABC的使用频率就被加1。
就这样在计算使用频率之后,依次由使用频率低的编目字符串中削除例如100个限度的登记(步骤B3)。此时,可能登记到辞典的数据例如为4096-256=3840个时,对登记进行消除应使得整个登记数保持为3840个。具体说,例如在削除前的辞典的整个登记数为3900个时仅削除60个。
接着,判断整个登记数是否低于3840个(规定数)(步骤B4),在多于3840个时返回到步骤B2计算再次使用频率,在步骤B3削除100个限度的登记。就这样重复步骤B2-B4,依次逐个减少辞典的登记。然后,在登记数3840时转移到步骤B5。如上所述因为能在辞典中登记例如3840个,所以在登记数成为3840个时就使得该辞典成为最佳辞典。
最后,将此最佳辞典作为静态辞典,利用此静态辞典对全部压缩对象字符串进行压缩,再将最后的静态辞典及压缩数据输出。
(B)为取得最佳辞典的第二种技术
在这一技术中,利用优先登记出现频率高的字符串组合来形成辞典。然后,根据使用频率信息依次削除所形成的辞典的登记数来达到最佳辞典。
首先,对作为压缩对象的全部字符串例如进行一次分析来计算各字符串的出现概率。此后根据这一出现概率来求得字符串的组合的出现概率。
例如,利用上述分析、计算求得a,b,c,d的出现概率为:
a:50%,b:20%,c:10%,d:5%。这样,计算得的aa等的字符串组合的出现率为:
aa:25%,aaa:12.5%,ab:10%,ba:10%,ac:5%,ca:5%,
aab:5%,aba:5%,baa:5%,ad:2.5%…但是,这里字符间的出现概率无相关的联系,是一种假定情况中的预料值。
就这样在求得字符串组合的出现概率后,由这些出现概率高的字符串的组合中优先地进行登记来形成辞典。接着借助例如图4的步骤B2-B4同样的做法,削除使用频率低的字符串的编目,直至辞典的编目数成为规定数例如3840个,以形成最佳辞典。然后采取与步骤B5、B6的同样做法,将利用其最后的静态辞典压缩的压缩数据输出。采用以上的做法,具有一次扫描就能完成最初的分析的优点。
(C)为取得最佳辞典的第三种技术
在这种技术中,利用增量分析算法来得到最佳辞典。关于增量分析算法的细节,将在后述的第二实施例中对增加分析算法的对比中说明。
图5示出了说明利用增量分析算法求取最佳辞典的技术的流程图。在这一技术中,首先进行辞典的初始化(步骤C1)。由此使得成为仅在辞典的编目号0-255中登记有编目字符串的状态。具体说是在0-255中存放ASC11码的字符。其次将表示压缩数据的输出次数的NUM0设置为NUMO=0(步骤C2)。然后利用增量分析算法更新辞典并同时对所有压缩对象字符串进行数据压缩,而在需要输出压缩数据时将上述NUM0值增加1(步骤C3)。此时压缩数据本身并不输出到外部。步骤C3的处理是为更新辞典的目的进行的处理。
接着将NUM1设置为NUM1=0(步骤C4)。此后应用在步骤C3最后得到的辞典,进行与步骤C3同样的处理。亦即,利用增量分析算法更新辞典同时对全部压缩对象字符串进行数据压缩,在需要输出压缩数据时将上述NUM1值增加1(步骤C5)。此时压缩数据本身亦不输出到外部。
接着,判断NUM1是否大于NUMO(步骤C6)。由此来判断步骤C5的处理数据压缩率是否成为最佳状态,亦即是否达到最佳的辞典。此时,如果NUM1≤NUM0,就作为尚未成为最佳辞典,使NUM0=NUM1(步骤7),重复步骤C4、C5的处理。NUM0、NUM1表示压缩数据的输出次数,这些数小也就意味着压缩数据的数据量亦少。因此,NUM1≤NUM0就意味着步骤C5的处理使数据压缩率增加。因此,在这种情况下就需要再次重复步骤C4、C5。然后在步骤C6,当成为NUM1>NUM0时,判定为数据压缩中的最佳辞典。
接着,将该最佳辞典作为静态辞典,依靠此静态辞典对所有压缩对象字符串进行压缩(步骤C8)。但是,在这一数据压缩时,不进行辞典更新。最后将此最后的静态辞典及由其进行压缩的压缩数据输出(步骤C9)。
图6中对上述处理作出了图形表示。全部压缩对象字符串21首先接收第一次分析,由此来形成暂时的辞典22(这一辞典为动态辞典)。接着再对全部压缩对象字符串21进行第二次分析,产生更新版次1的辞典23。再次同样操作以产生更新版次2的辞典24。就这样重复地更新辞典,判定数据压缩率在得到最佳辞典时期,将其作为最后版次的静态辞典25。然后,利用此静态辞典再次对全部压缩对象字符串21进行压缩。但是这时静态辞典25是静态地保持原样,不进行辞典更新。然后,将此静态辞典25及所压缩的数据输出到外部,存放进存储装置。
图5、图6所示的作法与LZW的主要区别如下述那样。即就是,在LZW中,在数据压缩后最终仅以压缩数据作为生成物加以输出,辞典是动态辞典不予输出。LZW是通过电话线路的数据通信中所采用的数据压缩技术,在发送端输出以LZW压缩的数据,在接收端将其复原。而在这种复原时,分析压缩数据的特性,由压缩数据再次重新形成动态辞典并同时必须进行数据的复原。因而就必须从存储数据的开头依次进行处理,复原速度很慢,并且不能随意地存取所需的数据串加以复原。因此,要将采用LZW压缩所得的数据应用于打印机等的字形数据中就很困难。
针对这种情况,在图5、图6所示的技术中,与LZW不同,将最后所得的压缩数据及静态辞典二者均输出。因而在作数据复原时就无必要再次产生辞典而使复原速度加快。而且由于采用了静态辞典,就有可能随意地访问压缩数据中所希望的数据串。这样的复原速度快和能随机访问数据的优点,不仅为此第三种技术所具备而且是在前述的第一、第二及后述的第四种技术中均能取得的优点。
(D)为取得最佳辞典的第四种技术
这一技术中采用增加分解算法来取得最佳辞典。对增加分解算法将在第二实施例中详细说明。不过处理过程本身,除步骤C3、C5中的数据压缩是利用增加分解算法进行此外,大致与图5相同。
在上述第三种技术中,由于利用增量分析算法进行数据压缩而能获得高压缩率的压缩数据,但因存在着一个一个字符的登记步骤,就决不能说处理速度很快,而且与增加分解算法相比压缩率亦不很高。因此,在要提高压缩率的场合,最好能采用利用增加分解算法的第四种技术。
在上述第一至第四种技术中,都是以固定比特位长的编码输出压缩数据。这种编码,例如或者是12(比特)位,或者是16位的一个字。但是,在16位字的情况下虽然具有处理速度得到改善的优点,但另一面,也具有压缩率比12位字时降低的缺点。
像以上那样,如采用本实施例,为实现最佳的静态辞典要根据使用频率削除辞典编目,因而需要在压缩过程中多次对数据进行扫描,所以处理时间很长。不过这对用户来说根本不是问题。亦就是说,进行压缩处理有必要将数据置入例如不能重写的存储装置、存储媒体(ROM等)的时间,这就是为在压缩后的复原时的处理时间不受任何影响。具体说就是,在用户利用装载有存放用此压缩方法压缩的数据的存储媒体的打印机进行打印时,尽管看来在生产者方面完成压缩数据的时间似乎很长,而用户在用其打印时进行复原处理的速度却不会特别慢。
图7中示出了对本发明第二实施例中所使用的数据压缩方法(后面称之为增加分解法或增加分解算法)作说明的模式图。
作为压缩对象的字符串数据1,其中部分开头的数据首先被存放进作为操作用的存储设施的工作缓存器2中。接着进行对在该工作缓存器2中是否存在有辞典3中所登记的数据串的比较,当存在有时对辞典3中的信息加以更新,并同时将该工作缓存器2中的字符串以编目号置换,而将该工作缓存器2中补充进下一对象字符串。另一方面,如果不存在有被登记的字符串,则将该工作缓存器2中的起始二个字符登记到该辞典3中,并将起始的一字符作为压缩数据4输出。然后将该工作缓存器2作为压缩数据4输出。然后将该工作缓存器2中补充下一对象字符串,再次对该工作缓存器2中的字符串中是否存在有辞典3中所登记的字符串进行比较。反复进行上述处理过程来对数据进行压缩。
下面,对用增加分解法对下列所示字符串数据作为压缩对象进行处理,以得到静态辞典和压缩数据的情况作详细说明。这里作为压缩对象的字符串数据是「ABCEBCHA、BBCCDBCH、ABCABEHD、ABBCGABK…」。不过,此时在由可改善存储单元构成的辞典的0-255号中正登记有ASC11码的字符。并将16字节容量的缓存器用作工作存储设施。
(1)开始时,由作为压缩对象的字符串数据的起始取入工作缓存器容量部分(16字节)的数据。这样,工作缓存器中的字符串就成为:「ABCEBCHA、BBCCDBCH」。在此,各字符分别为以一字节表示的数值数据,它们如前述那样遵循ASC11表。例如,"A"为65,"B"为66,"C"为67。
(2)接着,检验该工作缓存器中是否存在有已登记在辞典中的二个字符以上的字符串(字符串的组合)。但是,由于未登记有这样的字符串,所以就将开始的二个字符"AB"作为长度为2(字符单位)数据栏中的65+66("A"与"B的ASC11码)登记在辞典的例如第256位,此"256"号的使用频率为1次。并将工作缓存器中最前的一字符"A"的编目号"65"作为压缩数据输出,在工作缓存器中将其消去。然后,为填满由此形成的工作缓存器上空白的一字节,使其后的字符串全体向前方位移,这一结果所形成的工作缓存器末端的一字节空白中则由对象字符串数据的后续部分取进一个字符部分"A"。最后工作缓存器的字符串就成为「BCEBCHAB、BCCDBCHA」。
(3)再现检验该工作缓存器中是否存在有已在辞典中登记的二个以上字符的字符串。由于工作缓存器中第7、8个字符为"AB"字符串,将二字节的该字符"AB"置换成256的字符,将辞典"256"号的字符串的使用频率更次为2次。由于经过这一置换在工作缓存器中产生一字节的空白,为将其填满而将其后面的字符串一齐向前位移,在由此形成的工作缓存器的末端的一字节空白中由后续对象字符串输入一字符"B"。这样,工作缓存器中的字符串就成为「BCEBCH256B、CCDBCHAB」。
(4)再次检验工作缓存器中是否存在有已在辞典中登记的二个字符以上的字符串。此时由于工作缓存器15、 16号字符中为"AB"字符串,将此二字节的字符串"AB"置换成256的字符,将辞典的"256"号字符串的使用频率更新为3次。因为这一置换在工作缓存器中产生一字节的空栏,为将其填满而将其后面的字符串一齐向前位移,将此结果所产生的工作缓存器的末端的一空白字节由后续的对象字符串数据取入一字"C"。这样,工作缓冲器中的字符串就成为「BCEBC256B、CCDBCH256C」。
(5)再次检验该工作缓存器中是否存在有辞典中已登记着的二个字符以上的字符串。但是由于此时没有登记那样的字符串,就将起头的二字符"BC"作为长度2(字符)数据栏中的66+67登记进辞典的例如第257项中,并将该"257"号的使用频率作为1次。而在将工作缓存器中的起始一字符"B"的编目号"66"作为压缩数据输出,并由工作缓存器中消去,为填充由此生成的工作缓存器中的一字节的空栏而使其后面的字符串整个向前方位移,并在此结果产生的工作缓存器的末端的一字节的空白中取进后续对象字符串数据串的一字"A"。这样,工作缓存器中的字符串就成为「CEBCH256BC、CDBCH256CA」。
(6)再次检验该工作缓存器中是否存在有辞典中已登记着的二字符以上的字符串。此时,工作缓存器的第3、4字符、第7、8字符、和第11、12字符中存在有"BC"字符串,所以将总共六字节的此字符串"BC"分别置换为257的字符,而将辞典"257"项的字符串的使用频率更新为4次。因此置换而在工作缓存器中产生3字节的空栏,为将其填充而将其后的字符串整个地向前方位移,并在这一结果所产生的工作缓存器末端的三字节的空白中由后续字符串数据中取入三字符"BEH"。这样,工作缓存器中的字符串就成为「CE257H256257CD、257H256CABEH」。
(7)再次检验工作缓存器中是否存在有辞典中已登记着的二字符以上的字符串。此时,由于在工作缓存器的第13、14字符中存在着"AB"的字符串,将此二字节的字符串"AB"以256的字符置换,并将辞典"256"项的字符串的使用频率更新为4次。由这一置换在工作缓器中产生一字节的空栏,为使其填满将其后的字符串整个地向前方位移,在此结果生成的工作缓存器末端的一字节的空白中取入后续对象字符串数据中一个字符"D"。这样,工作缓存器中的字符串就成为「CE257H256257CD、257H256C256EHD」。
(8)再次检验工作缓存器中是否存在有辞典中已登记着的二个字符以上的字符串。不过,由于没有登记那样的字符串,就将最前的二字符"CE"作为长度2(字符)的在数据栏中的67+69登记到辞典的例如第258项中,将此"258"项的使用频率作为1次。而后将工作缓存器中的起头字符"C"的编目号"67"作为压缩数据输出,并由缓存器上消去,为填充因此产生的工作缓存器上的一字节的空栏将其后的字符串整体向前方作位移,并在结果所产生的工作缓存器末端的一字节的空白中由后续对象字符串数据中取入一字符"A"。这样,工作缓存器中的字符串就成为「E257H256257CD257、H256C256EHDA」。
(9)再次检验工作缓存器中是否存在有辞典中已登记表的二字符以上的字符串。不过因此时未登记有那样的字符串,就将开头的二字符"E257"作为长度2(字符)的数据栏中的69+257登记到辞典的例如第259项中,将此"259"号的使用频率作为1次。并将工作缓存器的起始字符"E"的编目号"69"作为压缩数据输出,且由工作缓存器上消去,为填充由此产生的工作缓存器上的一字节的空栏将其后的字符串整个地向前方位移,而在结果所生成的工作缓存器的末端的一字节空白的中取入后续对象字符串数据的一个字符"B"。这样,工作缓存器的字符串就成为「257H256257CD257、H256C256EHDAB」。
(10)再次检验工作缓存器中是否存在有已经在辞典中登记着的二个以上的字符的字符串。此时由于在工作寄存器的第15、16字符上存在有"AB"字符串,将此二字节的字符串"AB"以256的字符置换,并更新辞典的"256"项的字符串的使用频率为4次。因这一置换在工作缓存器中产生一字节的空栏,为将其填满使其后的字符串整体向前方位移,而在由此结果所生成的工作缓存器的末端的一字节的空白中由后续对象字符串数据由取入一个字符"B"。这样,工作缓存器中的字符串就成为「257H256257CD257、H256C256EHD256B」。
(11)再次检验工作缓存器中是否存在有已在辞典中登记着的二个以上字符的字符串。由于此时未登记有那样的字符串,就将起头的二字符"257H"作为长度2(字符)的数据栏中的257+72登记到辞典的例如第260编目,并将此"260"项的使用频率作为1次。而将工作缓存器中起头的字符"257"作为压缩数据输出,为填补由此生成的工作缓存器上的一字节的空栏使其后的字符串整体向前方位移,并在该结果所产生的工作缓存器的终端一字节的空白中取入后续对象字符串数据中一字符"C"。这样工作缓存器中的字符串就成为「H256257CD257H、256C256EHD256BC」。
(12)再次检验工作缓存器中是否存在有已在辞典中登记着的二个以上字符的字符串。此时工作缓存器的第7、8字符为"257H"字符串,第15、16字符为"BC"字符串,就将总共为四字节的字符串"257H"置换为260、"BC"置换为"257",并分别将辞典的"260"和"257 "的使用频率更新的2次和5次。这一置换在工作缓存器中生成二字节的空栏,为将其填满使其后的字符串整体向前方位移,并在此结果所生成的工作缓存器的末端的二字节空白中取入后续对象字符串数据中的两个字符"GA"。这样,工作缓存器中的字符串就成为「H256257CD260256C、256EHD256257GA」。
(13)再次检验该工作缓存器中是否存在有已在辞典中登记着的二个字符以上的字符串。此时由于未登记那样的字符串,将起头的二字符"H256"作为长度2(字符)的数据栏中的72+256登记到辞典的例如第261项中。而将工作缓存器中起始一字符"H"的编目号"72"作为压缩数据输出,并从工作缓存器上消除,为填充由此生成的工作缓存器上的一字节的空栏使其后的字符串作整个向前方位移,在此结果生成的工作缓存器的末端一字节空白中取入后续对象字符串数串的一个字符"B"。这样,工作缓存器中的字符串就成为「256257CD260256C256、EHD256257GAB」。
(14)再次检验工作缓存器中是否存在有已在辞典中登记着的二字符以上的字符串。此时由于未登记有那些字符串,就将起始的二字符"256257"作为长度4(字符)的数据栏中的256+257登记到辞典的例如第262项,并将此"262"项的使用频率作为1次。而同时将工作缓存器的起始字符"256"作为压缩数据输出,在工作缓存器上消除,为填充由此产生的工作缓存器上的一字节的空栏而使后面的字符串整个地向前方位移,在该结果所生成的工作缓存器的末端的一字节空白中取入后续对象串数据中一字符"K"。这样,工作缓存器的字符串就成为「257CD260256C256E、HD256257GABK 。
(15)再次检验工作缓存器中是否存在有已在辞典中登记着的二字符以上的字符串。此时,由于工作缓存器的第11、12字符为"256257"字符串,将此"256257"置换为262,并将辞典的"262"的使用频率更新为2次。由于这种置换在工作缓存器中生成一字节的空栏,为将其填充而使其后的字符串整个地向前方位移,并在此结果产生的工作缓存器的末端一字节空白中取入后续对象字符串数据一个字符。这样,工作缓存器的字符串就成为「257CD260256C256E、HD262GABK.」。
就这样如采用本实施例的增加分解法,为使工作缓存器中总是保持一定的长度,而依次由压缩对象字符串数据中取入数据。然后,如果由该工作缓存器中的起头开始的相邻结合成的字符串组合已被登记在辞典中时,就将其置换为辞典中的编目号,以此来实现压缩。而且,如果在工作缓存器的中间包含着这一字符串的组合时,也将其置换为辞典的编目号作进一步的压缩。因而,较之历来的增量分析法的情况压缩数据的数据量得到削减,结果就可能以较少的存储容量来存放压缩数据。而在工作缓存器内由起头开始的相邻结合成字符串的组合未在辞典中登记的情况下,在将该字符串组合于辞典中登记后,再将压缩数据输出。
用树形结构对上述处理作模式表达就成为图8(A)中所示。在图8(A)中,加以与上述说明中所用的(1)-(15)相一致的编号。但是,关于(1)、(10)、(12)、(15)图8(A)中未予表示。
例如,将"AB"登记在辞典中,输出"A"的上述(2)的工序在图8(A)中呈如下状态。亦即,在图8(A)中以向上箭头指到"AB"来表示辞典的登记。而以向下箭头指向"A"表示该字符作为压缩数据加以输出。而在这些向上箭头向下箭头的附近加以工序号"2"来表示该处理为工序(2)的处理。
另外,按上述(3)的工序在工作缓存器中发现登记在辞典中的字符"AB"并将其以编目号置换时,将该应于置换的字符串上面加以括线,并在该处加以所进行处理步骤的序号"3"。
顺便指出,本实施例的情况下,经压缩的输出数据结果如下:「A、B、C、 E、257、 H、256、257、C、……」。
而在辞典中所登记的结果字符串为: 0-255 ASC11码
256 AB
257 BC
258 CE
259 E257
260 257H
261 H256
262 256 257
.. ……
下面对采用历来的增量分析法的方法,来处理与前述举例相同的以下的字符串,以得到辞典及压缩数据的情况加以说明。但这里也在辞典中自开始即已在0-255项登记有ASC11码字符:「ABCEBCHA、BBCCDBCH、ABCABEHD、ABBCGABK……」
(1)被送来的字符串如上述的增加分解法那样,并非以一定的字节量一次存入工作缓存器中,而是将起始部分的仅仅必需范围内的字符串被取进工作缓存器。于是,检验工作缓存器中的第一字符"A"是否被登记在辞典中。此时由于这一"A"已被登记在辞典65号,故将其使用频率计数置为1。
(2)接着加入第二字符,检验该工作缓存器中的字符"AB"是否被登记在辞典中。可是,没有看到以二个字符以上的字符串已在辞典被登记的情况。因此,将起始的二字符"AB"作为长度2(字符)的数据栏中的65+66登记到编号256的项中,并将辞典的"256"的使用频率记为1次。接着,将工作缓存器中的起始的这一"A"作为压缩数据输出,下面再注目于成为对象的字符串数据为第二字符"B"。
(3)检验新字符项"B"是否已在辞典中登记。由于此时"B"已登记在辞典的第66项中,其使用频率计数为1。
(4)接着将新的第二字符"C"加入,检验工作缓存器中的字符"BC"是否被登记在辞典中。此时在已登记于辞典中的字符串还未发现有二个字符串以上的字符串。因此将起始的二字符"BC"作为长度2(字符)的数据栏中的66+67存入编号为第257的项中,并将辞典的"257"的使用频率记为1次。接着将工作缓存器中的起始的"B"作为压缩数据输出,再来看对象字符串数据的第三字符"C"。
(5)由头开始至第4字符E接续与上述同样操作,在将"EB"登记之后,再对工作缓存器中的新的第一字符项"B"进行检验看其是否被登记在辞典中。由于此时"B"已被登记在辞典的第66项中,现在其使用频率计数成为2。
(6)将新的第二字符"C"加入,检验此工作缓存器中的数据串"BC"是否被登记在辞典中。 由于现在辞典的第"257"项中登记有"BC"的字符,就将其使用频率记为2次,然后对加入新的第三字符的字符串"BCH"进行检验看其是否已在辞典中登记。
(7)由于它未被登记,就将此作为长度为3(字符)的数据栏中的257+72的二字符串"BCH"登记到编号为260的项,并将辞典的"260"的使用频率为1次。接着,将起始的"BC"的编目号"257"作为压缩数据输出,再来处理对象字符串数据的第7字符"H"。
图9中列示了为说明上述增量分析法的操作的参考流程图。
这样所进行的增量分析法与本实施例的增加分解法之间很大的差别在于,对处理对象的字符串数据是由头开始逐个字符地取入再进行检查与辞典的一致。
采用与上述图8(A)的示例同样的树结构来对上述处理作模式表示时就得到图8(B)那样的结果。不过图中1-8的编号并不按照上述工序中所用的编号。这里,例如将"AB"登记到辞典并将"A"输出的1工序中,是以向上箭头指向"AB"表示辞典登记,而以向下箭头指向"A"来表示将此字符作为压缩数据输出。
因此,由图8(B)可理解到,在历来的增量分析法中,不可能有像图8(A)中的(3)工序那样地在工作缓存器的开头以外的中途寻找登记于辞典中的字符"AB"并将其以编目号置换的工作程序。有可能的是,如图8(B)的工序5所示那样,仅仅是将辞典中所登记的字符串的右侧增加新的一字符,在其上加以括号以形成新的字符串。
顺便指出,由这一增量分析法所压缩得的输出数据成为如下所示:
「A、B、C、E、257;H、256、257、C、D、257、H、256……」
而辞典中所登记的结果所形成的字符串则为
0-255 ASC11码
256 AB
257 BC
258 CE
259 EB
260 257H
261 NA
262 256B
263 257C
264 CD
265 DB
266 260A
.. ……
将图8(A)及图8(B)相比较,在例示范围由其输出的压缩数据虽然相同,但辞典中所登记的字符串则很不相同,所关注的字符在压缩对象字符串数据之后的差错逐渐显著。
因此,由于采用历来的增量分析法时只能逐个字符地增加,对于特别是如图10(A)、(B)所示那样的同样字符串相连续的字符串数据,尽管本实施例的增加分解法产生较大的误差,但在增加分解法方面可能采用较小的存储容量加以存储。
在图10(A)中,列示了利用本实施例的增加分解法对连续的字符串进行压缩的情况,而在图10(B)中示出了利用增量分析法对连续的字符串进行压缩的情况。在图10(B)的增量分析法的情况中,因为要在辞典中以A,AA,AAA,AAA,AAAAA,AAAAAA,……的状态顺次进行登记,就要以A字符的16字节的单位进行压缩处理,因而必须进行16次输出和17次的辞典登记。另一方面,在图10(A)的本实施例的增加分解法的情况中,为在辞典中以A,AA,AAAA,AAAAAAAA,AAAAAAAAAAAAAAAA…的状态顺次登记,不以A字符的6字节为单位进行压缩处理,只进行5次输出和6次辞典登记就足够了。
由此可见,在相同字符相连续的字符串数据的情况下,本实施例的增加分解法效果很显著,其压缩率比之历来的增量分析法高得多。换言之就是意味着,对相同数据量的字符串数据进行处理,很少的输出次数就可以完成。因而,输出当中的字符串在必须置换为辞典编目号的定长字节并予以输出时,较少的输出次数就表示较少的字节数,并意味着较少量的压缩数据。
采用上述的增加分解法的处理与前述图6相同,对全部压缩对象字符串执行多次,由此来生成能以最佳效率压缩字符串数据的最佳辞典。下面利用图11、图12对此辞典的最佳化处理加以说明。
图11的流程图表明为进行辞典最佳化利用增加分解法进行的一次处理过程。这里的一次处理过程是指将全部字符串存入工作缓存器、对全部字符串进行完处理为止的过程。在图11中,首先使NUM=0(步骤E1)。接着检验存放在buf1、buf2(缓存器中的第1号、第2号)中的字符串组合(即AB)是否在登记在辞典中(步骤E2)。在判定为登记着的情况时,就将此buf1、buf2中存放的字符串组合置换为辞典的编目号,而将由此置换所产生的空buf16中存进下一字符串(即B)(步骤E3)。此后,返回到步骤E2,再次检验buf1、buf2中的字符串组合是否登记在辞典中。
另一方面,在步骤E2,如果判断buf1、buf2的字符串组合未在辞典中登记,则就要检验buf2、buf3中的字符串组合是否已在辞典中登记(步骤E4)。而后,在登记有的情况时转移到步骤5,然后再返回步骤E2。如未被登记,则向下一步前进。
就这样一直检验至buf15、buf16的字符串组合(步骤E8),在该字符串组合未被登记的情况下,由最后过程标志检验当前的过程是否为最后的过程(步骤E10)。此时如不是最后过程,就转移到步骤11,重新将buf1、buf2的字符串组合登记进辞典。然后消法buf1中存放的字符串,同时将工作缓存器中的字符串左移,为填充由此产生的空缺而将下一字符串存入buf16。同时使NUM=NUM+1,NUM值增加1,然后返回步骤E2。另一方面,在步骤10中判断为最后过程的情况下,则将buf1的字符串作为压缩数据向外部输出,消除buf1的字符向左挪动一字符,并将空的buf16中输入下一字符串(步骤E12)。
而在图11中,例如步骤E8、E9之后,虽然要返回到步骤E2,但在本发明中也不一定必需要返回到步骤E2为止。亦即在这种情况下,由于所置换的字符串是全都被存入buf15、buf16中的字符串,所以只要返回到对判断产生影响的步骤E6就足够了。这对步骤E6等以外的步骤也是同样的。
反复进行以上的处理,在全部压缩对象字符串均被存进工作缓存器、结束第一次的过程后,就像图12所示那样设定NUM2=NUM(步骤F2)。在此,NUM通过图11的步骤E11每次被增加1,相当于表示压缩数据的输出次数(实际上就如步骤E11、E12那样,直至最后的过程压缩数据是不向外输出的)。
接着如步骤F3所示,进行第二次过程。在此第二次过程中,使用第一次过程中所更新的辞典,以此来使辞典完善化。此第二次过程与第一次过程同样,对全部压缩对象字符串进行图11中所示的处理。然后在步骤F4中,判断是否为NUM>NUM2。在NUM≤NUM2时,就是说在步骤F3中的压缩数据输出次数NUM比步骤F1中的压缩数据输出次数NUM2还小,并表明数据压缩率增加。因而在这种情况下返回步骤F2,重复处理直至得到最佳辞典。此时当NUM>NUM2时即判断为形成了最佳辞典,将最后的过程标志设置为等于1(步骤F5),进行最后过程的压缩操作(步骤F6)。
在此最后过程压缩动作中,因为最后过程标志等于1,图11的步骤E10的判断总是YES方向,亦即总是向步骤E12转移。亦即,此时每次通过步骤E12,buf1中存放的字符串就被作为压缩数据向外部输出。而在步骤E12中,像步骤E11那样,辞典中不登记新的字符串,辞典仍像前次过程中的辞典那样,未被更新。这样,此未被更新的辞典就被作为静态辞典与压缩数据一齐输出到外部,存放进存储装置等之中。
在进行上述这样处理,实现最佳辞典的过程中,辞典的编目数达到极限时,就形成不能再进行将使用频率高的字符串登记进辞典的登记操作的情况。在这种情况下,削除使用频率低的编目字符串,以使得能在削除而形成的空缺部分中写入希望登记的字符串。
在图13(A)中,列示出包含这样的使用频率的信息的辞典的结构,而在图13(B)中则示出了根据该使用频率进行登记削除处理的流程图。
其中,P表示重新登记的辞典的编目号,P的初始值为256。如图13(A)中所示,在辞典的登记位置中,被分配以256-4095的编目号。各编目号的信号中具有放置第一字符的项号的位置,放置第二字符的项号的位置,及放置使用频率的位置。使用频率的初始值全为"0",即使用频率=0,这时表明没有登记任何编目字符串。
开始,在第一字符+第二字符相结合成的字符串进行登记时,如图13(B)步骤G1所示,在辞典中P的位置(图13(A)中第258项的位置)中,写入第一字符、第二字符的字符串。接着使P=P+1(步骤G2),查找下一位置(第259项的位置)。这时在P=4096时,设定P=256(步骤G3、G4)。下面,检验P位置(第259项的位置)的使用频率(步骤G5),如使用频率>1,就将P的位置的使用频率减1(步骤G7)。然后再返回到步骤G2,查找P=P+1的下一位置(第260项的位置)。
例如,现在考虑在辞典的256-4095的位置中一个也不空的情况。此时,直至使用频率=0的情况,重复步骤G2-G5的处理。然后将最初成为使用频率=0的位置的登记削除(步骤G6)。然后在重新进行辞典登记时,就在此被削除的位置上加以辞典登记。
由此上的处理,在编目号256-4095中,可以削除使用频率最低的编目字符串,在此被削除登记的位置上,就可能重新登记其他的字符串。这样,就可能形成优先登记使用频率高的编码字符串的辞典。
由本实施例所生成的辞典如以下所示的树结构:
(辞典)
256:30+56
257:80+16
259:256+257
260:259+257。
因此,由此辞典例如将编目号256-260中所登记的编目字符串加以复原,就成为下列所示:
(字符串复原)
256=30+56
257=80+16
258=256+40
=30+56+40 (因256=30+56)
259=256+257
=30+56+257 (因256=30+56)
=30+56+80+16 (因257=80+16)
260=259+257
=256+257+257 (因259=256+257)
=30+56+257+257 (因256=30+56)
=30+56+80+16+257 (因257=80+16)
=30+56+80+16+80+16 (因257=80+16)。
因此在对按本实施例压缩的字符串进行复原时,就必须将构成编目字符串的全部字符串加以分解处理直到成为小于256。但是在复原时,进行上述的分解处理中存在有字符串的复原速度非常缓慢的问题。因此,为解决这一问题,由所形成的辞典产生下述那样的复原专用辞典,并将此复原专用辞典存入ROM等存储媒体中,以期在复原时使用。
图14(A)中,列示了该复原专用辞典的结构。在此复原专用辞典的起始部分按编目号256-4095顺序排列存放字符串长度(数据长)及字符串的起始地址。其后由存放串的核心部分(字符串的罗列)。此字符核心部分,如上述所示,是由构成编目字符串的全部字符串进行分解处理直至小于256时所形成的,这些字符串就成为复原专用的编目字符串。
在进行复原处理时,如图14(B)中所示,由编目号256-4095的位置中所存放的字符串起始地址指定字符串的核心中的对应起始地址。然后,根据此起始地址取出字符串长度所指定长度的字符串(复原专用编目字符串),以此来进行数据复原。在这种情况下,字符串的核心部分因为预先进行了上述那样的分解处理,因而就可能使复原处理速度比树结构辞典要快得多。
在图15中作出了表示利用此复原专用辞典时的复原处理的流程图。首先,在步骤H2,读出12毕特位的代码,在此代码为结束标记时就结束处理(步骤H4),而在非结束标记时就转移到步骤H5。在此,按照代码的编号由辞典得到复原的字符串起始地址和字符串长度信息。然后按照所得到的字符串起始地址将该字符串长度内的字符串写入复原缓存器(步骤H6)。重复进行上述处理直至检测到结束标记,即能将数据复原。
本发明的第三实施例是利用以上第一、第二实施例中说明的数据压缩技术对所谓的字形数据进行压缩。
首先对位映象字形数据进行压缩的情况给予说明。位映象字形的数据通常作光栅方向的排列。不过,采用本实施例对位映象字形的数据压缩时,在纵向压缩方向压缩率得到相当的改善。为此,如图16(A)中所示那样,在纵向对数据进行压缩。当然不必说,在横方向上对数据进行压缩也是可以的。
如图16(A)中所示,位映象字形数据(40点×40点)由5个并列的40字节固定长度的数据块组成。在本实施例中,各数据块每一个均由第一、第二实施例所述的压缩方法加以压缩。但在通常那样地进行数据压缩中将复原速度比压缩率更优先考虑的场合,不以图16(A)那样的字节串作为单位,可以图16(B)所示那样横向排列的二字节作为一个字,以字串为单位进行数据压缩。由此,虽然可以提高复原速度,但与之相反的是,存在着辞典中可能必须登记高达32768数量的字符串的问题。
图17中,例如将字符「
」,以位映象图形来表示。在图17中,写入"1"的部分呈黑色。而其他部分写入"0",这部分呈白色。由图17可清楚看到,第0-7、12、13、30-39项的字节串为00h(十六进制表示)。而第10、11、14-16、27-29项的字节串为01h。第8项字节串为02h。9、17-26项则为03h。这样,如对位映象字形数据在纵方向压缩,相同值的字节串就相连接。从而就可理解到采用第一、第二实施例的数据压缩技术的压缩高效率。
轮廓字形是以与某一点连接的直线、曲线来表示的字符轮廓。通常对于大尺寸的字符(例如10点)虽然采用上述的位映象字形进行打印,但亦存在用户希望以32点等的大尺寸进行打印的情形。在这种情况下,要预先为各种尺寸的位映象字形数据作准备,在数据容量的关系上具有困难。因此,在这种情况下,借助对各种字符设置其根本性的轮廓字形,以这种轮廓字形来描述字符的轮廓,对其换算放大,再将其变换成图17所示那样的位映象图形数据。由此就可能打印所希望尺寸的字符。
例如,按照轮廓字形的「2」字符的轮廓,如图18中所示,可以连接点A、B、C、D、E、F、G、……的直线、曲线来表示。在本实施例中,将对这种轮廓字形的数据以称之为NSI格式的数据形式来叙还。
在本实施例中,将这种以NSI格式描述的轮廓字形数据如图19(A)所示那样分成三部分,即FLG部分、DAT部分、和VCT部分,来加以压缩。
这里,VCT部分为表示各点中射出方向的向量座标的信息,包括有X、Y向量座标信息。向这些X、Y向量座标并不表明座标的绝对值,而只表示与前一点的相对值。
而FLG部分为表示各点的属性的信息,例如,包含有表示「A点为起点」、「A点与B点直线连接」、「B点与D点以C点为中心点作曲线(贝塞曲线)连接」、「D点与E点直线连接」、「E点与G点以F点为中间点作曲线(贝塞曲线)连接」等等的信息。在DAT部分,则为表示字符特性的信息,包括表示字符的大小的信息,或者表示字符线宽的信息等。在本实施例中,对VCT部分以霍夫曼编码法进行压缩。与此相反,对于FLG部分、DAT部分,由于相同数据相连续等的具有一定程度的规律性,而采用上述第一第二实施例中所说明的数据压缩方法进行压缩。借助对这样地组成轮廓字形数据的成分,将它们各自分开地进行压缩,就可能使压缩率大幅度地提高。压缩后的数据结构,如图19(B)所示那样,首先装入FLG部分的压缩数据、接着加入DAT部分的压缩数据,再装入VCT部分的压缩数据,组成所示的结构。而且备置了分别对应于FLG部分、DAT部分、VCT部分的专用于复原的辞典。
在对此压缩数据进行复原时,复原FLG部分,DAT部分,然后以此为基础对VCT部分进行复原。在图19(C)中,表示了这种复原处理的流程图。首先,在步骤工2,以FLG专用静态辞典复原FLG部分,将其暂时写入为FLG设置的缓存器中。接着在步骤I3,以DAT专用静态辞典将DAT部分复原,将其暂时写入为DAT设置的缓存器中。在这种情况下,读出数据用的指针,如图19(B)所示那样,指向被压缩的VCT部分的起头。
接着,如步骤I4所示,将DAT部分和FLG部分按照NSI格式的规则由上述缓存器中读出,在输出后,按照此读出的FLG部分的毕特位0-3(这些比特位的细节将在下面说明)来将VCT部分复原成霍夫曼代码。由此就可能得到按NSI格式的顺序返回到原来的轮廓字形数据。
这样,在本实施例中为使数据压缩率进一步提高,将上述的FLG部分、VCT部分变更成为以下述座标点控制段、座标点定义段表示的格式后,再进行压缩。
这里,座标点控制段的比特位4~7与原先的FLG部分的比特位4~7相同,由这些比特位4~7来指定各点的属性,亦即指定各自的起点、中点、和终点,或移动插值、直线插值、曲线插值等等。而座标点控制段的比特位0-3表明座标点定义段中所定义的向量座标值代表如下的含意。即,比特位0表示X向量座标值为非零值,比特位1表明Y向量座标值为非零值。而比特位2则表明X向量座标值为负值,比特位3则表明Y向量座标值为负值。
座标点定义段中设置10比特位编码(0-1023)。在此,这些编码,按照座标点控制段的比特位0-3的指定,能表示
-1024≤X向量座标≤1024
-1024≤y向量座标≤1024范围内的向量座标值。
例如,比特位0=1时,表示座标点定义段中存在有X-1的数据;而在比特位1=1时,表示座标定义段存在有Y-1的数据。在字符中具有纵划、横划等时,或者X向量座标=0,或者Y向量座标=0,在这种情况下,就没有必要将X向量座标、Y向量座标作为压缩数据输出。因而,在这种情况下,如能借助座标点控制段的比特位0、1的控制,指定座标定义没有元X向量座标、Y向量座标的话,就可能进一步提高数据压缩率。而且如上述那样由座标点控制段的比特位2、3也指定X向量座标、Y向量座标的正负,由此就可能再次提高数据压缩率。
如上面说过的那样,采用本实施例能有效地压缩位映象字形数据、轮廓字形数据。在进行这种压缩当中,采用第一、第二实施例中说明的静态辞典。这种情况下,静态辞典对共同字体(字型)最好为共同的静态辞典。例如,对明体字符,全部采用专用于明体的辞典进行辞典更新、数据压缩,以得到最后的静态辞典、压缩数据。而对于黑体字符,则全部采用黑体字专用辞典进行辞典更新、数据压缩,以得到最后的静态辞典、压缩数据。这样,针对各种字体使辞典共同化,就可能高效率压缩数据。这里,如字体是共同的,则由于例如字符轮廓的变化方法(线的上跳等方面)、轮廓的粗细等各字符间均成为共同的,字符本身的特性信息、各轮廓点的属性信息等也就是相同的,这样就使得利用共同的辞典压缩数据变得很方便。在这种情况下,输出的静态辞典、压缩数据均按字体加以分类存进存储装置中。
在图20中,举出了利用以上说明的本实施例的数据压缩方法的状态。压缩对象数据串(字形数据)被输入到数据压缩装置31,利用本实施例的数据压缩方法进行数据压缩。而后这样所形成的静态辞典及压缩数据被存进数据复原设备32中的存储装置(ROM等)中。此数据复原设备32被装设在信息处理装置、例如打印机33及计算机等的内部(也可将复原设备分割成2个装置分开内设)。
在历来的打印机等中,字形数据等不作数据压缩处理按原样被存放在存储装置中,由对各个压缩数据的存储地址控制而随时输出所需要的字符,来进行字符打印。对这些如按照本实施例,将静态辞典及压缩数据存入存储装置中,由对各个压缩数据的存储地址及静态字符串辞典的控制就可能随时输出所需的字符。由此就能减少存储装置中所存放的数据量,从而降低装置的费用。这样的优点不仅特别对必须要有很大存储容量的汉字字符及Sapeaku(ゃハングル)字符等有效,对其他语言的字符也有很大效果。
本发明并不限定于上述实施例,在本发明的主题范围内有可能实现各种变型。
例如在本实施例中虽然主要是说明对字符串数据的处理,但对于其他的符号数据亦均可应用。
另外,作为利用本发明压缩的数据串可能包括不仅限于字符串、字节串、字串的各种数据串,还包括例如构成二维、三维图形所需的数据串等。
而且在本发明中的编目号中还包括完成与该编目号实质上同样功能的信息。
如采用本发明,由于利用成为最佳辞典的静态辞典进行数据压缩,因而就能使所输出的静态辞典和压缩的数据量最理想。由此而能减小存放该静态辞典、压缩数据的存储装置、存储媒体的容量,而节省费用。 而且由于有可能利用例如采用数据压缩率高的动态辞典的数据压缩算法等,使得能大大提高数据压缩率。另外,利用该静态辞典可灵活地复原所需的数据串,也就有可能在由信息处理装置复原所被压缩的数据串时随意地取出所需的数据串。再之,利用本发明,虽然在辞典最佳化、直至得到最后的辞典和压缩数据的时间可能较长,但却具有复原速度不特别慢的效果。
由于优先将组合个数多的数据串组合置换为辞典的编目号,能使数据压缩率达到最佳状态。另一方面,由于消除使用频率低的编登记、在编目数达到规定值时结束更新,就可能形成数据量很少的最佳辞典。并且因采取了被称之为滑尺辞典的技术而具有使辞典形成简易的优点。而此时的规定数,在输出数据的毕特位数例如为12位时,即为辞典的编目数能处在此12毕特区间内的数量。
由于优先将出现概率高的数据串组合置换为编目号而能使数据压缩率最理想。另一方向,削除使用频率低的编目数据串的登记、在编目数成为规定数时结束更新,就能形成数据量少的最佳辞典。而且由于开始的辞典的形成能采取一次分析,故具有能使处理大为简单的优点。
由于依靠利用数据压缩率高的动态辞典的数据压缩算法进行数据压缩、而在数据压缩率为最佳时期结束辞典的更新,就可能极大地提高数据压缩率。另一方面,由于输出的辞典成为静态辞典,而能利用此静态辞典灵活地复原所需的数据串。
特别是在相同数据串的压缩处理情况下,能使辞典的编目数较之历来的增量分析法少得多,并以辞典编目号的置换来进行数据压缩,也就能使压缩数据本身比历来的增量分析法具有少得多的数据量。
在大大提高数据压缩率的同时,还能利用静态辞典灵活地复原所需的数据串。并且还具有能够仅以处理的重复次数来判断是否达到最佳压缩率的优点。
辞典的可能登记数据有限时,可能以很简单的方法使辞典的数据量成为最佳大小。
在使辞典数据量成为最佳的同时,还能在辞典中保留使用频率高的编目数据串,以形成最佳辞典。
能进行位映象字形数据、轮廓字形数据的压缩,并以减少存放这些字形数据的存储装置、存储媒体的容量。因而就可能减少内装有该存储装置、存储媒体的打印机、计算机等的费用。
能按照数据特性来更换适用的压缩方法,从而有可能进一步提高数据压缩率。
能针对明体、黑体字等的各种字体使辞典共同化。例如由于字符的轮廓的变化方法、轮廓的粗细等相同的字体这种共同的场合很多,利用本发明就可能更高效率地压缩数据。
可节省存储字符中所需的容量等。
在进行复原专用编目数据串被变换成复原专用数据形式时,例如增量分析法、增加分解法中,无需树结构来进行编目数据串的分解。从而就可能比应用通常辞典的场合以高得多的速度进行复原处理。
能利用经复原的数据串进行规定的处理、例如字符打印等的处理。
利用复原设备可复原原始数据串,这种复原设备可被内装在例如计算机、打印机等的信息处理装置中。
附图中的代号为:
1作为压缩对象的字符串数据;
2工作缓存器;
3辞典;
4压缩数据;
5所完成的辞典;
11作为压缩对象的全部数据串;
12数据压缩装置;
13辞典形成设施;
14静态辞典;
15静态辞典保持设施;
16静态辞典输出设施;
17数据压缩设施;
18压缩数据输出设施;
19压缩数据。
Claims (15)
1.一种利用能与编目号相关地登记编目数据串的辞典、将二个以上数据串的组合置换该编目号来进行数据压缩的数据压缩方法,其特征是:
对作为压缩对象的数据串进行数据压缩对辞典进行更新直到产生最佳的辞典为止;
在产生该最佳辞典的阶段,将该辞典作为最后用于复原的静态辞典输出;
利用该辞典对作为压缩对象的数据串进行数据压缩;和
将被压缩的数据串作为最后用于复原的压缩数据输出,
所述对辞典进行更新以形成所达最佳辞典的步骤在于,由依据优先登记组合个数多的数据串组合的原则形成的辞典中去除作用频率低的编目串的登记,直至辞典的编目数达到规定的数量。
2.一种利用能与编目号相关地登记编目数据串的辞典、将二个以上数据串的组合置换该编目号来进行数据压缩的数据压缩方法,其特征是:
对作为压缩对象的数据串进行数据压缩对辞典进行更新直到产生最佳的辞典为止;
在产生该最佳辞典的阶段,将该辞典作为最后用于复原的静态辞典输出;
利用该辞典对作为压缩对象的数据串进行数据压缩;和
将被压缩的数据串作为最后用于复原的压缩数据输出,
所述对辞典进行更新以形成所述最适宜辞典的步骤在于,由依据优先登记出现概率高的数据串组合的原则形成的辞典中去除使用频率低的编目数据串的登记,直至辞典的编目数达到规定的数量。
3.一种利用能与编目号相关地登记编目数据串的辞典、将二个以上数据串的组合置换该编目号来进行数据压缩的数据压缩方法,其特征是:
对作为压缩对象的数据串进行数据压缩对辞典进行更新直到产生最佳的辞典为止;
在产生该最佳辞典的阶段,将该辞典作为最后用于复原的静态辞典输出;
利用该辞典对作为压缩对象的数据串进行数据压缩;和
将被压缩的数据串作为最后用于复原的压缩数据输出,
所述对辞典进行更新以形成所最适宜辞典的步骤在于,在作数据压缩时一边根据辞典动态变化的数据压缩算法更新辞典,一边对作为压缩对象的所有数据串进行数据压缩处理;利用经这样处理更新的辞典再次根据所述数据压缩算法更新辞典,同时进行对作为压缩对象的全部数据串作数据压缩处理;反复执行所述处理过程直到数据压缩率成为最适宜为止。
4.一种利用能与编目号相关地登记编目数据串的辞典、以替换二个以上数据串的组合到该编目号来进行数据压缩的数据压缩方法,其特征在于包括下列步骤:
(A)由作为压缩对象的数据串取出规定数量的数据串存入具有规定数量缓存器的工作区中;
(B)检验存入在所述工作区中相邻缓存器内的数据串组合是否登记在辞典中,在已被登记于辞典中的情况下,将该数据串组合置换所述编目号,同时在工作区内进行数据串移位以便填满因该置换所产生的空缓存器,将随后的数据送入这样所得的在工作区末端的形成的空缓存器中,再次检验工作区内相邻缓存器中所存放的数据串组合是否已在辞典中登记;
(C)由上述步骤(B)中的检验在判定工作区内相邻缓存器中所存放的数据串组合没有哪一个登记在辞典中的情况下,将由工作区起端开始的第一、第二缓存器中所存放的数据串组合登记进辞典中,同时,将第一数据串消去,为填满由消除该数据串所形成的空缓存器在工作区内作数据串移位,将后续的数据串送入这样最后在工作区末端所产生的空缓存器,
反复进行上述步骤(B)、(C),直至作为压缩对象的所有数据串均被存入所述工作区内。
5.如权利要求4中所述的数据压缩方法,其特征是:
在重复执行上述步骤(B)、(C)一次完成对作为压缩对象的全部数据串的处理之后,利用前次处理所更新的辞典来进行当前的数据压缩处理中,如果当前过程中的重复执行前述步骤(B)、(C)的次数少于前一过程中重复执行的次数,就转移到下一个过程;如果当前过程中重复执行前步骤(B)、(C)的次数大于前次重复执行的次数,就将前次过程中所更新的辞典作为最后用于复原的静态辞典输出,同时利用该静态辞典进行一次过程的数据压缩,将经过压缩的数据串作为最后复原用的压缩数据输出。
6.如权利要求1至5中任一项所述的数据压缩方法,其特征是包括有步骤:
在所述辞典中存放编目号、编目数据串以及使用频率信息,并依次去除使用频率低的编目数据串。
7.如权利要求6中所述的数据压缩方法,其特征是在去除所述使用频率低的编目数据串过程中,依次减小辞典中所述记录的编目数据串的使用频率数,优先去除使用频率最先成为规定数目以下的编码数据。
8.如权利要求1至5中任一项所述的数据压缩方法,其特征是作为压缩对象的数据串是字符打印时所需的字形数据。
9.如权利要求8中所述的数据压缩方法,其特征是所述字形数据中仅仅一部分成为所述压缩对象的数据串,而其他部分由其他数据压缩方法进行数据压缩。
10.如权利要求8所述的数据压缩方法,其特征是对具有共同字形的所述字符采用共同的所述辞典进行数据压缩。
11.如权利要求9所述的数据压缩方法,其特征是对具有共同字形的所述字符采用共同的所述辞典进行数据压缩。
12.如权利要求1至5中任一项所述的数据压缩方法,其特征是作为压缩对象的数据串为字符串。
13.如权利要求1至5中任一项所述的数据压缩方法,其特征是由最后形成的辞典中所包含的编目号及编目数据串的信息,形成包含有将所述编目数据串变换成专用于复原的数据形式而得的复原专用编目数据串及该复原专用编目数据串的数据长度以及该复原专用编目数据串的起始地址的信息的专用于复原的辞典。
14.一种数据复原方法,其特征是利用由权利要求1至5中任一项所述的数据压缩方法所形成的压缩数据及最后的辞典,通过按照该数据压缩方法的复原处理来复原成为压缩对象的数据串。
15.一种信息处理装置,其特征是包含有利用由权利要求1至5中任一项所述的数据压缩方法所形成的压缩数据和最后的辞典,通过按照该数据处理方法的复原处理来复原成为压缩对象的数据串的复原机构。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP158099/94 | 1994-06-16 | ||
JP158099/1994 | 1994-06-16 | ||
JP15809994A JP3132293B2 (ja) | 1993-06-22 | 1994-06-16 | データ圧縮方法、データ復元方法及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1115524A CN1115524A (zh) | 1996-01-24 |
CN1099766C true CN1099766C (zh) | 2003-01-22 |
Family
ID=15664287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94120709.9A Expired - Fee Related CN1099766C (zh) | 1994-06-16 | 1994-12-22 | 数据压缩方法、数据复原方法及信息处理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5646617A (zh) |
EP (1) | EP0687995B1 (zh) |
KR (1) | KR100260827B1 (zh) |
CN (1) | CN1099766C (zh) |
DE (1) | DE69433620T2 (zh) |
SG (1) | SG52323A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100448289B1 (ko) * | 1997-12-20 | 2004-11-16 | 주식회사 대우일렉트로닉스 | 스트링매칭모듈을갖는데이터압축시스템 |
KR19990076303A (ko) * | 1998-03-31 | 1999-10-15 | 전주범 | 모뎀용 데이터 부호화 및 복호화 방법 |
JP3566111B2 (ja) * | 1998-11-30 | 2004-09-15 | 松下電器産業株式会社 | 記号辞書作成方法及び記号辞書検索方法 |
US6320523B1 (en) * | 1999-07-30 | 2001-11-20 | Unisys Corporation | Method and apparatus for reducing the time required for compressing data |
US7130314B2 (en) * | 2000-10-11 | 2006-10-31 | Broadcom Corporation | Efficiently transmitting RTP protocol in a network that guarantees in order delivery of packets |
US6649567B2 (en) * | 2001-10-11 | 2003-11-18 | Isp Investments Inc. | Controlled release microbiocide for porous surfaces |
US20020118885A1 (en) * | 2001-02-27 | 2002-08-29 | Bernard Smeets | Font compression and retrieval |
GB0210604D0 (en) * | 2002-05-09 | 2002-06-19 | Ibm | Method and arrangement for data compression |
JP5106768B2 (ja) * | 2005-09-29 | 2012-12-26 | 富士通株式会社 | アウトラインフォント圧縮方法 |
JP4909003B2 (ja) * | 2006-10-03 | 2012-04-04 | キヤノン株式会社 | 画像処理装置及び方法 |
US7724164B2 (en) * | 2007-01-24 | 2010-05-25 | Samsung Electronics Co., Ltd. | Apparatus and method of dynamically caching symbols to manage a dictionary in a text image coding and decoding system |
CN101847159A (zh) * | 2010-05-11 | 2010-09-29 | 中兴通讯股份有限公司 | 终端设备及其词库更新的方法 |
US8228216B2 (en) * | 2010-09-08 | 2012-07-24 | Hewlett-Packard Development Company, L.P. | Systems and methods for data compression |
US8902087B1 (en) | 2013-08-27 | 2014-12-02 | International Business Machines Corporation | Data decompression utilizing pre-expanded dictionaries during decompression |
JP6256883B2 (ja) * | 2015-03-25 | 2018-01-10 | 国立大学法人 筑波大学 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
CN108494409B (zh) * | 2018-03-14 | 2021-07-13 | 电子科技大学 | 基于小字典的随钻中子测井仪井下高速实时压缩方法 |
JP7406915B2 (ja) * | 2018-11-02 | 2023-12-28 | 三菱重工業株式会社 | 単位空間更新装置、単位空間更新方法、及びプログラム |
US11122095B2 (en) * | 2019-09-23 | 2021-09-14 | Netapp, Inc. | Methods for dictionary-based compression and devices thereof |
CN116610265B (zh) * | 2023-07-14 | 2023-09-29 | 济南玖通志恒信息技术有限公司 | 一种商务信息咨询系统的数据存储方法 |
CN116915260B (zh) * | 2023-09-13 | 2023-11-24 | 无锡市明通动力工业有限公司 | 一种风电电机冷却风机故障数据优化采集方法 |
CN116975312B (zh) * | 2023-09-22 | 2023-12-19 | 山东五棵松电气科技有限公司 | 一种智慧校园教育数据管理系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4843389A (en) * | 1986-12-04 | 1989-06-27 | International Business Machines Corp. | Text compression and expansion method and apparatus |
US5087913A (en) * | 1990-08-27 | 1992-02-11 | Unisys Corporation | Short-record data compression and decompression system |
US5243341A (en) * | 1992-06-01 | 1993-09-07 | Hewlett Packard Company | Lempel-Ziv compression scheme with enhanced adapation |
US5442350A (en) * | 1992-10-29 | 1995-08-15 | International Business Machines Corporation | Method and means providing static dictionary structures for compressing character data and expanding compressed data |
US5323155A (en) * | 1992-12-04 | 1994-06-21 | International Business Machines Corporation | Semi-static data compression/expansion method |
JP2505980B2 (ja) * | 1993-04-16 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 静的辞書作成方法及びコンピュ―タ実行システム |
US5488365A (en) * | 1994-03-01 | 1996-01-30 | Hewlett-Packard Company | Method and apparatus for compressing and decompressing short blocks of data |
-
1994
- 1994-12-22 DE DE69433620T patent/DE69433620T2/de not_active Expired - Fee Related
- 1994-12-22 EP EP94309663A patent/EP0687995B1/en not_active Expired - Lifetime
- 1994-12-22 CN CN94120709.9A patent/CN1099766C/zh not_active Expired - Fee Related
- 1994-12-22 SG SG1996002756A patent/SG52323A1/en unknown
- 1994-12-22 US US08/362,019 patent/US5646617A/en not_active Expired - Fee Related
- 1994-12-22 KR KR1019940035931A patent/KR100260827B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5646617A (en) | 1997-07-08 |
DE69433620T2 (de) | 2004-08-12 |
DE69433620D1 (de) | 2004-04-22 |
EP0687995B1 (en) | 2004-03-17 |
CN1115524A (zh) | 1996-01-24 |
EP0687995A2 (en) | 1995-12-20 |
EP0687995A3 (en) | 1996-05-01 |
KR100260827B1 (ko) | 2000-07-01 |
SG52323A1 (en) | 1998-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1099766C (zh) | 数据压缩方法、数据复原方法及信息处理装置 | |
CN1027472C (zh) | 文字生成方法及其装置 | |
CN1096752C (zh) | 自适应编码方法 | |
CN1232127C (zh) | 使用可逆子波变换和嵌入代码流进行压缩的方法和装置 | |
CN1265627C (zh) | 图像数据处理方法和图像数据处理电路 | |
CN1133937C (zh) | 打印控制装置及方法 | |
CN1174616C (zh) | 可逆子波变换和嵌入代码流处理 | |
CN1098515C (zh) | 字符发生装置及其实现方法 | |
CN1177482C (zh) | 编码方法,解码方法,编码装置以及解码装置 | |
CN101039422A (zh) | 图像编码装置、图像解码装置及它们的控制方法 | |
CN1424849A (zh) | 图像处理装置、图像处理方法、程序以及存储介质 | |
CN1379366A (zh) | 图像处理装置和方法 | |
CN1494767A (zh) | 压缩/解压缩结构化文档的方法 | |
CN1252646C (zh) | 图像处理方法和图像处理装置 | |
CN1835548A (zh) | 解码装置、解码方法及其程序产品 | |
CN1320768C (zh) | 编码方法和编码装置 | |
CN1649274A (zh) | 可变长度解码装置和可变长度解码方法以及再现系统 | |
CN1848692A (zh) | 编码设备、解码设备、编码方法、解码方法和程序 | |
CN1728093A (zh) | 生成比特块传输函数的交叉平台运行时间代码 | |
CN1160667C (zh) | 轮廓平滑化处理方法及其装置 | |
CN1314208C (zh) | 可扩展标记语言数据流压缩器及其压缩方法 | |
CN1289509A (zh) | 数据处理方法、数据处理装置和程序记录媒体 | |
CN1295310A (zh) | 正交变换图像的分辨率变换装置和方法 | |
CN1271846C (zh) | 图像处理方法及图像处理装置 | |
CN1282069C (zh) | 打印装置和打印指示终端、打印系统及其方法 |
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 | ||
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 |