WO1998033279A1 - Method and system for compressing data based upon context tree algorithm - Google Patents

Method and system for compressing data based upon context tree algorithm Download PDF

Info

Publication number
WO1998033279A1
WO1998033279A1 PCT/EP1998/000521 EP9800521W WO9833279A1 WO 1998033279 A1 WO1998033279 A1 WO 1998033279A1 EP 9800521 W EP9800521 W EP 9800521W WO 9833279 A1 WO9833279 A1 WO 9833279A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
parameter
node
block
previous
Prior art date
Application number
PCT/EP1998/000521
Other languages
French (fr)
Inventor
Franciscus Maria Joannes Willems
Tjalling Jan Tjalkens
Original Assignee
Koninklijke Kpn N.V.
Technische Universiteit Eindhoven
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
Priority claimed from EP97200199A external-priority patent/EP0855803B1/en
Application filed by Koninklijke Kpn N.V., Technische Universiteit Eindhoven filed Critical Koninklijke Kpn N.V.
Priority to CA002278605A priority Critical patent/CA2278605C/en
Priority to AU62941/98A priority patent/AU727633B2/en
Priority to PCT/EP1998/000521 priority patent/WO1998033279A1/en
Publication of WO1998033279A1 publication Critical patent/WO1998033279A1/en

Links

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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code

Definitions

  • the invention relates to a method for constructing a tree for a context tree algorithm for coding symbols , which method comprises the steps of:
  • -x- in dependence of a value of a symbol to be coded, adapting a value of either a first parameter or a second parameter, which values correspond to a node of said tree, -y- in dependence of a value of a previous symbol, in case said node is preceded by a previous node, continuing with step -x- for said previous node , and
  • Such a method is disadvantageous because it needs a giant memory capacity.
  • the method according to the invention is characterised in that, in dependence of at least one value of said parameters, said other previous node is created or is not created.
  • said other previous node is created or is not created.
  • the invention is based, inter alia, on the insight that it is not necessary to create each possible node.
  • the problem of known methods needing a giant memory capacity is solved by making the creation of a node dependent upon at least one value of said parameters for preventing the creation of unnecessary nodes .
  • the method according to the invention is neither restricted to context tree weighting algoritms nor to binary tree sources, the method according to the invention can be used for constructing a tree for a context tree algorithm for coding symbols, which symbols each can have at least two symbol values.
  • a first embodiment of the method according to the invention is characterised in that the first parameter is a(n) and the second parameter is b(n) , the values of these parameters corresponding to said node n, said other previous node being created in case a(n) > 0 and b(n) > 0.
  • said other previous node is for example not created in case a(n) ⁇ 2 and b(n) ⁇ 2, or is for example not created in case a(n)/b(n) ⁇ 0.001 or a(n)/b(n) > 1000.
  • a second embodiment of the method according to the invention is characterised in that a third parameter i(n) defines said node being preceded or not being preceded by a previous node, said creation of said other previous node comprising the definition of a fourth parameter j being an index of the other previous node, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) .
  • a less efficient but accurate way of initiating a(j) and b(j) could for example be realised by using stored values of previous symbols .
  • a third embodiment of the method according to the invention is characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0.
  • a fourth embodiment of the method according to the invention is characterised in that the method comprises a step being situated between step -x- on the one hand and steps -y- and -z- on the other hand of: -w- a fifth parameter d being adapted for each further node and being compared with a threshold value D after each adaptation.
  • the invention further relates to a system for constructing a tree for a context tree algorithm for coding symbols , which system comprises processor means and memory means for storing at first locations belonging to a node values of parameters and for storing at second locations belonging to a previous node values of parameters and for storing at third locations belonging to an other previous node values of parameters, said processor means comprising
  • - adaptation means for, in dependence of a value of a symbol to be coded, adapting a value of either a first parameter or a second parameter, which values are stored at at least two of said first locations ,
  • - comparison means for, in dependence of a value of a previous symbol, comparing a value of a third parameter, which value is stored at at least one of said first locations, with a prefixed value, whereby, in case of a first comparison result, a value of either a first parameter or a second parameter is adapted, which values are stored at at least two of said second locations , in dependence of a value of a symbol to be coded, by using said adaptation means, and
  • - allocation means for, in case of a second comparison result, in dependence of a value of a previous symbol , allocating a value to a fourth parameter, which value is stored at at least one of said third locations, whereby, a value of either a first parameter or a second parameter is adapted, which values are stored at at least two of said third locations, in dependence of a value of a symbol to be coded, by using said adaptation means.
  • a system is disadvantageous because it needs a giant memory capacity.
  • - check means for checking at least one value of at least of said first and second parameters for, in case of a first check result, activating said allocation means and for, in case of a second check result, deactivating said allocation means.
  • a first embodiment of the system according to the invention is characterised in that the first parameter is a(n) and the second parameter is b(n) , the values of these parameters being stored at said at least two of said first locations, with a(n) > 0 and b(n) > 0 resulting in said first check result, and with other cases resulting in said second check result.
  • a second embodiment of the system according to the invention is characterised in that the third parameter is i(n) and the fourth parameter is j, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) .
  • a third embodiment of the system according to the invention is characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0.
  • figure 1 a flow chart illustrating the method according to the invention
  • figure 2 a flow chart illustrating a context tree algorithm based on the method according to the invention.
  • the flow chart depicted in figure 1 comprises blocks having the following meaning:
  • block 6 is d>D ? if yes , go to block 7 if no , go to block 8
  • block 7 stop further construction tree for x(t)
  • block 8 is x(t-d)-0 ? if yes , go to block 9 if no , go to block 14
  • block 10 is a(n)>0 and b(n)>0 ? if yes, go to block 11 if no, go to block 12
  • block 12 stop further construction tree for x(t)
  • block 15 is a(n)>0 and b(n)>0 ? if yes , go to block 16 if no, go to block 17
  • block 17 stop further construction tree for x(t)
  • x gets the value of x(t)
  • n gets the value one (indicating the root of the tree)
  • a fifth parameter d gets the value zero (block 1).
  • x(t) will have either the value one or the value zero.
  • a first parameter a(n) is increased with the value one
  • a second parameter b(n) is increased with the value one (blocks 2,3).
  • the fifth parameter d is increased with the value one (block 5) , after which the increased fifth parameter d is compared with a threshold value D (block 6).
  • the method is stopped (block 7), otherwise a value of a previous symbol x(t-d) is compared with the value zero (block 8).
  • a third parameter i 0 (n) is compared with the value zero (block 9) .
  • the values of the first parameter a(n) and of the second parameter b(n) are compared with the value zero (block 10) .
  • a fourth parameter j gets a value being an index of an other previous node (a new node)
  • the first parameter a(j ) gets the value zero
  • the second parameter b(j) gets the value zero
  • the third parameter i 0 (j) gets the value zero
  • the third parameter i ⁇ (j) gets the value zero (indicating that, due to the creation of the other previous node, this other previous node is not preceded by further nodes)
  • the third parameter i 0 (n) gets the value of the fourth parameter j (block 11) .
  • n gets the value of the third parameter i 0 (n) (block 13) .
  • i 0 (n)>0 indicating that said node is preceded by a previous node
  • n also gets the value of the third parameter i 0 (n) (block 13) , but without the adaptation of the fourth parameter j etc. Then the method is repeated, starting with block 2.
  • a fourth parameter j gets a value being an index of an other previous node (a new node)
  • the first parameter a(j) gets the value zero
  • the second parameter b(j) gets the value zero
  • the third parameter i 0 (j) gets the value zero
  • the third parameter i j ⁇ (j) gets the value zero (indicating that, due to the creation of the other previous node, this other previous node is not preceded by further nodes)
  • the third parameter i ⁇ (n) gets the value of the fourth parameter j (block 16) .
  • n gets the value of the third parameter i ⁇ (n) (block 18).
  • i ⁇ n ⁇ O indicating that said node is preceded by a previous node
  • n also gets the value of the third parameter i ⁇ n) (block 18), but without the adaptation of the fourth parameter j etc. Then the method is repeated, starting with block 2.
  • the method for constructing a tree for a context tree algorithm for coding symbols comprises the steps of: -x- in dependence of a value of a symbol x(t) to be coded, adapting a value of either a first parameter a(n) or a second parameter b(n) , which values correspond to a node of said tree (blocks 1,2,3,4,5), -y- in dependence of a value of a previous symbol x(t-d) , in case said node is preceded by a previous node, continuing with step -x- for said previous node (blocks 8,9,13 or 8,14,18), and -z- in dependence of a value of a previous symbol, in case said node is not preceded by a previous node, creating an other previous node and continuing with step -x- for said other previous node (blocks 8,9,11,13 or 8,14,16,18) , and is characterised in that, in dependence of at least one value of said parameters , said other previous previous no
  • the method is characterised in that said other previous node is created in case a(n) > 0 and b(n) > 0 (blocks 10,11 or 15,16).
  • said other previous node is for example not created in case a(n) ⁇ 2 and b(n) ⁇ 2, or is for example not created in case a(n)/b(n) ⁇ 0.001 or a(n)/b(n) > 1000.
  • a third parameter i(n) defines said node being preceded or not being preceded by a previous node, said creation of said other previous node comprising the definition of a fourth parameter j being an index of the other previous node, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) (blocks 9,11 or 14,16).
  • a less efficient but accurate way of initiating a(j) and b(j) could for example be realised by using stored values which have been found earlier.
  • the method is characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0 (block 11 or 16) . This is an efficient but less accurate way of initiating a(j ) and b(j).
  • the method is characterised in that the method comprises a step being situated between step -x- on the one hand and steps -y- and -z- on the other hand of: -w- a fifth parameter d being adapted for each further node and being compared with a threshold value D after each adaptation (block 6) .
  • the fifth parameter d By introducing the fifth parameter d and comparing it with the threshold value D the method for constructing a tree is limited for trees having a maximum depth being equal to the threshold value D.
  • block 22 is t>T ? if yes , go to block 23 if no, go to block 24
  • a sixth parameter t gets the value one (block 21) , after which the value of the sixth parameter t is compared with a further threshold value T (block 22): in case t>T, there are no more operations (block 23) , otherwise the statistical calculations and the coding of x(t) are performed (block 24) , which for example is disclosed in IEEE Transactions on INFORMATION THEORY, May 1995, Volume 41, Number 3, in particular "The Context-Tree

Abstract

Known methods for constructing a tree for a context tree algorithm for coding symbols construct trees by adding nodes need a giant memory capacity, which can be reduced in case unnecessary nodes are not added to the tree. This should be done in dependence of values of parameters belonging to a node and each defining the number of symbols received having a certain value.

Description

METHOD AND SYSTEM FOR COMPRESSING DATA BASED UPON CONTEXT TREE ALGORITHM.
A Background of the invention
The invention relates to a method for constructing a tree for a context tree algorithm for coding symbols , which method comprises the steps of:
-x- in dependence of a value of a symbol to be coded, adapting a value of either a first parameter or a second parameter, which values correspond to a node of said tree, -y- in dependence of a value of a previous symbol, in case said node is preceded by a previous node, continuing with step -x- for said previous node , and
-z- in dependence of a value of a previous symbol, in case said node is not preceded by a previous node, creating an other previous node and continuing with step -x- for said other previous node. Such a method is known from IEEE Transactions on INFORMATION
THEORY, May 1995, Volume 41, Number 3, in particular "The Context-Tree Weighting Method: Basic Properties", by F.M.J. Willems, Y.M. Shtarkov and T.J. Tjalkens, pages 653-664, which article discloses a sequential universal data compression procedure for binary tree sources. By using a context tree, this procedure weights in an efficient recursive way the coding distributions corresponding to all bounded memory tree sources, and achieves a desirable coding distribution for tree sources with an unknown model and unknown parameters.
Such a method is disadvantageous because it needs a giant memory capacity.
B Summary of the invention
It is an object of the invention, inter alia, to provide a method as defined in the preamble, which method needs less memory capacity.
Thereto, the method according to the invention is characterised in that, in dependence of at least one value of said parameters, said other previous node is created or is not created. By, in dependence of at least one value of said parameters, preventing the creation of said other previous node in case this is not necessary, a more efficient a tree is constructed, which saves memory capacity.
The invention is based, inter alia, on the insight that it is not necessary to create each possible node.
The problem of known methods needing a giant memory capacity is solved by making the creation of a node dependent upon at least one value of said parameters for preventing the creation of unnecessary nodes .
It should be observed that the method according to the invention is neither restricted to context tree weighting algoritms nor to binary tree sources, the method according to the invention can be used for constructing a tree for a context tree algorithm for coding symbols, which symbols each can have at least two symbol values.
A first embodiment of the method according to the invention is characterised in that the first parameter is a(n) and the second parameter is b(n) , the values of these parameters corresponding to said node n, said other previous node being created in case a(n) > 0 and b(n) > 0.
According to this first embodiment, in case at least either a(n) = 0 or b(n) = 0 said other previous node is not created, which saves memory capacity. According to an alternative embodiment, said other previous node is for example not created in case a(n) < 2 and b(n) < 2, or is for example not created in case a(n)/b(n) < 0.001 or a(n)/b(n) > 1000.
A second embodiment of the method according to the invention is characterised in that a third parameter i(n) defines said node being preceded or not being preceded by a previous node, said creation of said other previous node comprising the definition of a fourth parameter j being an index of the other previous node, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) .
A less efficient but accurate way of initiating a(j) and b(j) could for example be realised by using stored values of previous symbols .
A third embodiment of the method according to the invention is characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0.
An efficient but less accurate way of initiating a(j) and b(j) could for example be a(j) = b(j) = 0. A fourth embodiment of the method according to the invention is characterised in that the method comprises a step being situated between step -x- on the one hand and steps -y- and -z- on the other hand of: -w- a fifth parameter d being adapted for each further node and being compared with a threshold value D after each adaptation.
By introducing the fifth parameter d and comparing it with the threshold value D the method for constructing a tree is limited for trees having a maximum depth being equal to the threshold value D. The invention further relates to a system for constructing a tree for a context tree algorithm for coding symbols , which system comprises processor means and memory means for storing at first locations belonging to a node values of parameters and for storing at second locations belonging to a previous node values of parameters and for storing at third locations belonging to an other previous node values of parameters, said processor means comprising
- adaptation means for, in dependence of a value of a symbol to be coded, adapting a value of either a first parameter or a second parameter, which values are stored at at least two of said first locations ,
- comparison means for, in dependence of a value of a previous symbol, comparing a value of a third parameter, which value is stored at at least one of said first locations, with a prefixed value, whereby, in case of a first comparison result, a value of either a first parameter or a second parameter is adapted, which values are stored at at least two of said second locations , in dependence of a value of a symbol to be coded, by using said adaptation means, and
- allocation means for, in case of a second comparison result, in dependence of a value of a previous symbol , allocating a value to a fourth parameter, which value is stored at at least one of said third locations, whereby, a value of either a first parameter or a second parameter is adapted, which values are stored at at least two of said third locations, in dependence of a value of a symbol to be coded, by using said adaptation means. Such a system is disadvantageous because it needs a giant memory capacity.
It is a further object of the invention, inter alia, to provide a system as defined above, which system needs less memory capacity. Thereto, the system according to the invention is characterised in that said processor means comprise
- check means for checking at least one value of at least of said first and second parameters for, in case of a first check result, activating said allocation means and for, in case of a second check result, deactivating said allocation means.
A first embodiment of the system according to the invention is characterised in that the first parameter is a(n) and the second parameter is b(n) , the values of these parameters being stored at said at least two of said first locations, with a(n) > 0 and b(n) > 0 resulting in said first check result, and with other cases resulting in said second check result.
A second embodiment of the system according to the invention is characterised in that the third parameter is i(n) and the fourth parameter is j, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) .
A third embodiment of the system according to the invention is characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0.
A fourth embodiment of the system according to the invention is characterised in that said processor means comprise
- further adaptation means for adapting a fifth parameter d after each adaptation of said value of either said first parameter or said second parameter, and
- further comparison means for comparing said fifth parameter d with a threshold value D after each further adaptation.
References
IEEE Transactions on INFORMATION THEORY, May 1995, Volume 41, Number 3, in particular "The Context-Tree Weighting Method: Basic Properties", by F.M.J. Willems , Y.M. Shtarkov and T.J. Tjalkens, pages 653-664
EP 96202007.9 (priority/filing date July 15, 1996)
US 5,534,861 ■ EP 0 480 115
■ US 5,023,611
> US 5,025,258
■ US 4,286,256
■ US 4,494,108
■ US 5,357,250
All references are considered to be incorporated in this patent application.
D Embodiment
The invention will be explained at the hand of an embodiment shown in the figures : figure 1 a flow chart illustrating the method according to the invention, and figure 2 a flow chart illustrating a context tree algorithm based on the method according to the invention.
The flow chart depicted in figure 1 comprises blocks having the following meaning:
block 1 n:=l x:=x(t) d:=0 go to block 2
block 2 is x=0 ? if yes , go to block 3 if no, go to block 4
block 3 a(n) :=a(n)+l go to block 5 block 4 b (n) : =b (n)+l go to block 5
block 5 d : =d+l go to block 6
block 6 is d>D ? if yes , go to block 7 if no , go to block 8
block 7 stop further construction tree for x(t)
block 8 is x(t-d)-0 ? if yes , go to block 9 if no , go to block 14
block 9 is i0(n)=0 ? if yes, go to block 10 if no, go to block 13
block 10 is a(n)>0 and b(n)>0 ? if yes, go to block 11 if no, go to block 12
block 11 j :=index new node a(j):-0 b(j):-0 i0U) =0 i.U) =0 i0(n) -j go to block 13
block 12 stop further construction tree for x(t)
block 13 n:=i0(n) go to block 2
block 14 is i,(n)=0 ? if yes , go to block 15 if no, go to block 18
block 15 is a(n)>0 and b(n)>0 ? if yes , go to block 16 if no, go to block 17
block 16 j :=index new node a(j):=0 b(j):-0 i0U) =0 iι(j) =0 i,(n) -j go to block 18
block 17 stop further construction tree for x(t)
block 18 n:=i,(n) go to block 2
The method according to the invention, in view of the flow chart depicted in figure 1, operates as follows. In response to a received symbol x(t) , x gets the value of x(t) , n gets the value one (indicating the root of the tree) and a fifth parameter d gets the value zero (block 1). In case of a binary embodiment, x(t) will have either the value one or the value zero. In case x=0 , a first parameter a(n) is increased with the value one, and in case x=l a second parameter b(n) is increased with the value one (blocks 2,3). Then, the fifth parameter d is increased with the value one (block 5) , after which the increased fifth parameter d is compared with a threshold value D (block 6). In case d>D, the method is stopped (block 7), otherwise a value of a previous symbol x(t-d) is compared with the value zero (block 8). In case x(t-d)=0, a third parameter i0(n) is compared with the value zero (block 9) . In case i0(n)=0 (indicating that said node is not preceded by a previous node) the values of the first parameter a(n) and of the second parameter b(n) are compared with the value zero (block 10) . If it is not true that a(n)>0 and b(n)>0, the method is stopped (block 12), otherwise a fourth parameter j gets a value being an index of an other previous node (a new node) , the first parameter a(j ) gets the value zero, the second parameter b(j) gets the value zero, the third parameter i0(j) gets the value zero and the third parameter iι(j) gets the value zero (indicating that, due to the creation of the other previous node, this other previous node is not preceded by further nodes) , and the third parameter i0(n) gets the value of the fourth parameter j (block 11) . Then n gets the value of the third parameter i0(n) (block 13) . In case i0(n)>0 (indicating that said node is preceded by a previous node) (block 9) n also gets the value of the third parameter i0(n) (block 13) , but without the adaptation of the fourth parameter j etc. Then the method is repeated, starting with block 2. In case x(t-d)=l, a third parameter i^n) is compared with the value zero (block 14). In case i-^n^O (indicating that said node is not preceded by a previous node) the values of the first parameter a(n) and of the second parameter b(n) are compared with the value zero (block 15) . If it is not true that a(n)>0 and b(n)>0, the method is stopped (block 17), otherwise a fourth parameter j gets a value being an index of an other previous node (a new node) , the first parameter a(j) gets the value zero, the second parameter b(j) gets the value zero, the third parameter i0(j) gets the value zero and the third parameter ij^(j) gets the value zero (indicating that, due to the creation of the other previous node, this other previous node is not preceded by further nodes) , and the third parameter iχ(n) gets the value of the fourth parameter j (block 16) . Then n gets the value of the third parameter iχ(n) (block 18). In case i^n^O (indicating that said node is preceded by a previous node) (block 14) n also gets the value of the third parameter i^n) (block 18), but without the adaptation of the fourth parameter j etc. Then the method is repeated, starting with block 2. In general, the method for constructing a tree for a context tree algorithm for coding symbols comprises the steps of: -x- in dependence of a value of a symbol x(t) to be coded, adapting a value of either a first parameter a(n) or a second parameter b(n) , which values correspond to a node of said tree (blocks 1,2,3,4,5), -y- in dependence of a value of a previous symbol x(t-d) , in case said node is preceded by a previous node, continuing with step -x- for said previous node (blocks 8,9,13 or 8,14,18), and -z- in dependence of a value of a previous symbol, in case said node is not preceded by a previous node, creating an other previous node and continuing with step -x- for said other previous node (blocks 8,9,11,13 or 8,14,16,18) , and is characterised in that, in dependence of at least one value of said parameters , said other previous node is created or is not created (blocks 10,11,12 or 15,16,17), which will save memory capacity.
According to a first embodiment the method is characterised in that said other previous node is created in case a(n) > 0 and b(n) > 0 (blocks 10,11 or 15,16). According to an alternative embodiment, said other previous node is for example not created in case a(n) < 2 and b(n) < 2, or is for example not created in case a(n)/b(n) < 0.001 or a(n)/b(n) > 1000.
According to a second embodiment the method is characterised in that a third parameter i(n) defines said node being preceded or not being preceded by a previous node, said creation of said other previous node comprising the definition of a fourth parameter j being an index of the other previous node, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) (blocks 9,11 or 14,16). A less efficient but accurate way of initiating a(j) and b(j) could for example be realised by using stored values which have been found earlier.
According to a third embodiment the method is characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0 (block 11 or 16) . This is an efficient but less accurate way of initiating a(j ) and b(j).
According to a fourth embodiment the method is characterised in that the method comprises a step being situated between step -x- on the one hand and steps -y- and -z- on the other hand of: -w- a fifth parameter d being adapted for each further node and being compared with a threshold value D after each adaptation (block 6) . By introducing the fifth parameter d and comparing it with the threshold value D the method for constructing a tree is limited for trees having a maximum depth being equal to the threshold value D. The flow chart depicted in figure 2 comprises blocks having the following meaning: block 20 a(l):-0 b(l):=0 i0(D:=0 iιd):=0 go to block 21
block 21 t:-l go to block 22
block 22 is t>T ? if yes , go to block 23 if no, go to block 24
block 23 stop
block 24 statistical calculation and coding of x(t) go to 25
block 25 further construction of the tree for x(t) go to 26
block 26 t:=t+l go to block 22
In view of the flow chart depicted in figure 1, the following operations are performed. The first parameter a(l) and the second parameter b(l) get the value zero (n=l corresponding with the root of the tree), and the third parameter i0(l) and the third parameter iι(l) get the value zero (block 20) . Then a sixth parameter t gets the value one (block 21) , after which the value of the sixth parameter t is compared with a further threshold value T (block 22): in case t>T, there are no more operations (block 23) , otherwise the statistical calculations and the coding of x(t) are performed (block 24) , which for example is disclosed in IEEE Transactions on INFORMATION THEORY, May 1995, Volume 41, Number 3, in particular "The Context-Tree
Weighting Method: Basic Properties", by F.M.J. Willems , Y.M. Shtarkov and Tj.J. Tjalkens, pages 653-664 and in EP 96202007.9 (priority/filing date July 15, 1996). Then the tree is further constructed for the received symbol x(t) , which construction is further disclosed in figure 1 (block 25) .
Finally, the value of the sixth parameter t is increased with the value one (block 26) , after which said operations are repeated, starting with block 22.

Claims

E Claims
1. Method for constructing a tree for a context tree algorithm for coding symbols, which method comprises the steps of:
-x- in dependence of a value of a symbol to be coded, adapting a value of either a first parameter or a second parameter, which values correspond to a node of said tree,
-y- in dependence of a value of a previous symbol, in case said node is preceded by a previous node, continuing with step -x- for said previous node , and
-z- in dependence of a value of a previous symbol, in case said node is not preceded by a previous node, creating an other previous node and continuing with step -x- for said other previous node, characterised in that, in dependence of at least one value of said parameters, said other previous node is created or is not created.
2. Method according to claim 1, characterised in that the first parameter is a(n) and the second parameter is b(n) , the values of these parameters corresponding to said node n, said other previous node being created in case a(n) > 0 and b(n) > 0.
3. Method according to claim 2, characterised in that a third parameter i(n) defines said node being preceded or not being preceded by a previous node, said creation of said other previous node comprising the definition of a fourth parameter j being an index of the other previous node, with a(j) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) .
4. Method according to claim 3, characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0.
5. Method according to claim 1, 2, 3 or 4, characterised in that the method comprises a step being situated between step -x- on the one hand and steps -y- and -z- on the other hand of:
-w- a fifth parameter d being adapted for each further node and being compared with a threshold value D after each adaptation.
6. System for constructing a tree for a context tree algorithm for coding symbols, which system comprises processor means and memory means for storing at first locations belonging to a node values of parameters and for storing at second locations belonging to a previous node values of parameters and for storing at third locations belonging to an other previous node values of parameters , said processor means comprising
- adaptation means for, in dependence of a value of a symbol to be coded, adapting a value of either a first parameter or a second parameter, which values are stored at at least two of said first locations ,
- comparison means for, in dependence of a value of a previous symbol, comparing a value of a third parameter, which value is stored at at least one of said first locations, with a prefixed value, whereby, in case of a first comparison result, a value of either a first parameter or a second parameter is adapted, which values are stored at at least two of said second locations , in dependence of a value of a symbol to be coded, by using said adaptation means, and
- allocation means for, in case of a second comparison result, in dependence of a value of a previous symbol, allocating a value to a fourth parameter, which value is stored at at least one of said third locations, whereby, a value of either a first parameter or a second parameter is adapted, which values are stored at at least two of said third locations, in dependence of a value of a symbol to be coded, by using said adaptation means, characterised in that said processor means comprise
- check means for checking at least one value of at least of said first and second parameters for, in case of a first check result, activating said allocation means and for, in case of a second check result, deactivating said allocation means.
7. System according to claim 6, characterised in that the first parameter is a(n) and the second parameter is b(n) , the values of these parameters being stored at said at least two of said first locations, with a(n) > 0 and b(n) > 0 resulting in said first check result, and with other cases resulting in said second check result.
8. System according to claim 7, characterised in that the third parameter is i(n) and the fourth parameter is j, with a(j ) and b(j) being initiated, with i(j) getting the value 0, with i(n) getting the value j, and with n getting the value i(n) .
9. System according to claim 8, characterised in that, in the initiation, a(j) gets the value 0 and b(j) gets the value 0.
10. System according to claim 6, 7, 8 or 9 , characterised in that said processor means comprise - further adaptation means for adapting a fifth parameter d after each adaptation of said value of either said first parameter or said second parameter , and
- further comparison means for comparing said fifth parameter d with a threshold value D after each further adaptation.
PCT/EP1998/000521 1997-01-24 1998-01-22 Method and system for compressing data based upon context tree algorithm WO1998033279A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CA002278605A CA2278605C (en) 1997-01-24 1998-01-22 Method and system for compressing data based upon context tree algorithm
AU62941/98A AU727633B2 (en) 1997-01-24 1998-01-22 Method and system for compressing data based upon context tree algorithm
PCT/EP1998/000521 WO1998033279A1 (en) 1997-01-24 1998-01-22 Method and system for compressing data based upon context tree algorithm

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97200199A EP0855803B1 (en) 1997-01-24 1997-01-24 Method and system for compressing data based upon context tree algorithm
EP97200199.4 1997-01-24
PCT/EP1998/000521 WO1998033279A1 (en) 1997-01-24 1998-01-22 Method and system for compressing data based upon context tree algorithm

Publications (1)

Publication Number Publication Date
WO1998033279A1 true WO1998033279A1 (en) 1998-07-30

Family

ID=26070265

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1998/000521 WO1998033279A1 (en) 1997-01-24 1998-01-22 Method and system for compressing data based upon context tree algorithm

Country Status (1)

Country Link
WO (1) WO1998033279A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470347B1 (en) 1999-09-01 2002-10-22 International Business Machines Corporation Method, system, program, and data structure for a dense array storing character strings

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5298896A (en) * 1993-03-15 1994-03-29 Bell Communications Research, Inc. Method and system for high order conditional entropy coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5298896A (en) * 1993-03-15 1994-03-29 Bell Communications Research, Inc. Method and system for high order conditional entropy coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WILLEMS F M J ET AL: "THE CONTEXT-TREE WEIGHTING METHOD: BASIC PROPERTIES", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 41, no. 3, 1 May 1995 (1995-05-01), pages 653 - 664, XP000577288 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470347B1 (en) 1999-09-01 2002-10-22 International Business Machines Corporation Method, system, program, and data structure for a dense array storing character strings

Similar Documents

Publication Publication Date Title
JP3553106B2 (en) Text compression driver construction method and input text string compression method
Schweinsberg A necessary and sufficient condition for the Λ-coalescent to come down from infinity.
US5650783A (en) Data coding/decoding device and method
CN113011581B (en) Neural network model compression method and device, electronic equipment and readable storage medium
JP3410629B2 (en) Variable length coding circuit and variable length coding method
CN111814973B (en) Memory computing system suitable for neural ordinary differential equation network computing
WO1989009517A1 (en) Method and apparatus for statistically encoding digital data
US7079056B2 (en) Method of encoding and storing in a machine control computer a compressed data lookup table
US4967196A (en) Apparatus for decoding variable-length encoded data
Hartman et al. Optimal parsing of strings
EP0855803B1 (en) Method and system for compressing data based upon context tree algorithm
CN108880559B (en) Data compression method, data decompression method, compression equipment and decompression equipment
WO1998033279A1 (en) Method and system for compressing data based upon context tree algorithm
US5574826A (en) Memory organization method for a fuzzy logic controller and corresponding device
EP1488527A1 (en) Method and apparatus for lossless compression and decompression of data
US4736387A (en) Quantizing apparatus
Ginesta et al. Vector quantization of contextual information for lossless image compression
US5864308A (en) System, coding section, arrangement, coding apparatus, and method
WO2001061543A9 (en) Method for compression of small computer data files
JP2001188563A (en) Effective sectioning method for audio coding
CN116719476B (en) Compressed storage method and device for mobile phone numbers, electronic equipment and storage medium
CN117278056B (en) Social security information processing method and system
Ng et al. Incremental mining of association patterns on compressed data
Ryabko et al. Fast and Space-Efficient Adaptive Arithmetic Coding⋆
WO1998027657A1 (en) System and method for pre-entropic coding

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2278605

Country of ref document: CA

Ref country code: CA

Ref document number: 2278605

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 62941/98

Country of ref document: AU

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 1998531621

Format of ref document f/p: F

WWG Wipo information: grant in national office

Ref document number: 62941/98

Country of ref document: AU