WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for providing maximum rate modulation or compression encoding and decoding    
United States Patent5099237   
Link to this pagehttp://www.wikipatents.com/5099237.html
Inventor(s)Fitingof; Boris (Tucson, AZ)
AbstractA method and apparatus for providing maximum rate modulation or compression encoding and decoding for use with magnetic and optical recording and optical fiber communications is disclosed in which primarily two algorithms are utilized which satisfy the conditions that encoding and decoding require only a small constant number of elementary operations, without multiplications or divisions and that only a small amount of memory space for a small number of integers is required. Thus, the present invention operates with only linear time complexity and only linear memory complexity. The invention utilizes a direct enumeration algorithm to accomplish a mapping and an inverse enumeration algorithm to accomplish an inverse mapping back to enumeration.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5099237
Method and apparatus for providing maximum rate modulation or

     compression encoding and decoding - US Patent 5099237 Drawing
Method and apparatus for providing maximum rate modulation or compression encoding and decoding
Inventor     Fitingof; Boris (Tucson, AZ)
Owner/Assignee     Research Corporation Technologies, Inc. (Tucson, AZ)
Patent assignment
All assignments
Publication Date     March 24, 1992
Application Number     07/550,505
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 10, 1990
US Classification     341/59 341/67 341/106
Int'l Classification     H03M 007/42 H03M 007/46
Examiner     Pellinen; A. D.
Assistant Examiner     Logan; Sharon D.
Attorney/Law Firm     Dickstein, Shapiro & Morin
Address
Parent Case    
Priority Data    
USPTO Field of Search     341/59 341/67 341/106 341/50
Patent Tags     providing maximum rate modulation or compression encoding decoding
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4833470
Iketani
341/59
May,1989

[0 after 0 votes]
4816805
Vojir
341/83
Mar,1989

[0 after 0 votes]
4804959
Makansi
341/59
Feb,1989

[0 after 0 votes]
4707681
Eggenberger
341/59
Nov,1987

[0 after 0 votes]
4547890
Gindi
375/292
Oct,1985

[0 after 0 votes]
4517552
Shirota
341/58
May,1985

[0 after 0 votes]
4413251
Adler
341/59
Nov,1983

[0 after 0 votes]
4146909
Beckenhauer
360/39
Mar,1979

[0 after 0 votes]
4115768
Eggenberger
341/59
Sep,1978

[0 after 0 votes]
4075622
Lawrence
341/67
Feb,1978

[0 after 0 votes]
3925780
Van Voorhis
341/63
Dec,1975

[0 after 0 votes]
3689899
Peter A. Franaszek (Mt. Kisco, NY)
341/59
Sep,1972

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. Apparatus for providing modulation decoding of a modulation encoded codeword having an L plurality of bits comprising:

means for receiving each of said bits of said modulated encoded codeword for producing a signal representative of the state of each bit of at least one codeword;

storage means connected to receive said signal representative of the state of each bit of said at least one codeword, as well as a signal representative of a number of such bits that have been processed, said storage means producing a signal representative of an element in a predetermined array of accumulated numbers held in said storage means;

first adding means connected to receive said signal representative of an element in said predetermined array as well as each of the bits of said modulation encoded codeword;

means for storing an output of said first adding means; means connecting an output of said means for storing to inputs of said first adding means; and

means for receiving the output of said first adding means and said signal representative of the number of bits that have been processed, and outputting the desired modulation decoded codeword.

2. The apparatus of claim 1, further including second adding means adding said signal representative of an element in said predetermined array to a signal representative of the bit to which said signal representative of an element in said predetermined array corresponds and having an output connected to the inputs of said first adding means.

3. The apparatus of claim 2, wherein the output of said second adding means and the output of said means for storing are connected to adjacent inputs of said first adding means.

4. The apparatus of claim 1, wherein said first adding means comprises a parallel adder.

5. The apparatus cf claim 1, wherein said means for storing the output of said first adding means comprises a parallel load and clear register.

6. The apparatus of claim 1, wherein said storage means comprises a read-only memory.

7. Apparatus for providing encoding of a block of user data of length N, which block of user data is formed by a plurality of codewords each of length L, comprising:

means for receiving bits of each of said codewords of said block of user data for producing a signal representative of the state of each bit of at least one codeword;

storage means connected to receive said signal representative of the state of each bit of said at least one codeword, as well as a signal representative of the number of such bits that have been processed, said storage means producing a signal representative of an element in a predetermined array of accumulated numbers held in said storage means;

first adding means connected to receive said signal representative of an element in said predetermined array;

first means for storing connected to the output of said first adding means for storing and then outputting to said first adding means said stored output of said first adding means;

second means for storing connected to receive each of said plurality of codewords which form said block of user data, as well as said signal representative of the number of bits that have been processed; and

comparator means connected to receive the output from said first adding means and said second means for comparing said outputs and providing an encoded codeword whenever said output of said first adding means is less than or equal to the output of said second means for storing.

8. The apparatus of claim 7, wherein said first adding means comprises a parallel adder.

9. The apparatus of claim 7, wherein said first and second storage means comprise parallel load and clear registers.

10. The apparatus of claim 7, wherein said storage means comprises a read-only memory.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention relates generally to a method of and apparatus for providing encoding and decoding for either modulation coding or data compression for the storage and communication of digital data. Particularly, the present invention relates to a method of and apparatus for providing modulation coding of digital data for use with magnetic and optical recording and optical fiber communication and to a method of and apparatus for providing data compression for storage of text information in natural or programming languages.

The present invention provides a practical way in which to approach Shannon's theoretical rate limit for constraints on encoded data for modulation coding and for constraints on data to be encoded by data compression, where such constraints are defined by any state transition table. In the case of modulation coding, Shannon's theoretical limit is the capacity of his noiseless constrained channel. See: C.E. Shannon, "Mathematical Theory of Communications," University of Illinois Press, 1963. The present invention provides a particularly effective method and apparatus for modulation coding for any run-length-limiting (d,k) constraints, or any (d,k;c) constraints, as well as for any (d,k) or (d,k;c) constraints used with a synchronization word. The present invention may also be used with simple post modulation error-control codes incorporated into the state transition table of the invention itself.

The use of modulation codes in magnetic and optical data storage systems is widespread and the advantages of modulation coding are well known. For example, in U. S. Pat. No. 3,689,899, a run-length limited variable length code is disclosed.

In magnetic and optical binary recording, a 1 is usually represented by a transition between the up and down states of the recording waveform, while a 0 is represented by no change or transition in the waveform. However, an unconstrained sequence of 1's and 0's is not desirable in practice. For example, physical factors, such as the separation between successive transitions on the recording medium and the gap-width of the magnetic recording head or the wavelength of light in optical recording, determine the minimum allowed number of zeroes (d) between successive ones. On the other hand, a long sequence of uninterrupted 0's results in a loss of synchronization when the data is self-clocking. This synchronization problem determines the maximum number of zeroes (k) between successive ones. Modulation codes satisfying these run length limiting constraints are known as run-length-limited (RLL) modulation (d,k) codes.

Also, the imbalance between the up and down states of the recording waveform may result in a significant charge accumulation in the electronic circuitry which results in forcing the system beyond acceptable levels of operation. Therefore, the implementation of such run-length-limited codes can require, as additional constraints, a maximum allowed absolute value (c) of the difference between the number of zeroes and ones in any sequence of bits to be recorded. Run-length-limited (RLL) codes satisfying such additional constraints are known as (d,k,c) codes.

The objective of any modulation coding is to create a one-to-one correspondence between sequences of user data, which are usually streams of binary digits, and constrained binary sequences. The nature of the constraints imposed upon the modulation signal must be determined by the system designer and is dependent upon the particular characteristics of the system under consideration.

If a synchronization word is used, then additional constraints are placed on the modulation code such that the synchronization word cannot occur in successive bits of data unless those bits constitute the synchronization word in its intended location.

If there are no constraints on the minimum run-length of 0's, that is, if d equals 0, then each modulation bit will occupy one interval of length .DELTA., where .DELTA. is the minimum allowed distance between transitions. Since the number of modulation bits is always greater than the number of data bits, the overall recording density will become less than 1 data bit per .DELTA.. If, on the other hand, d is not equal to 0, then d+1 modulation bits can be packed in every interval of length .DELTA..

When the code parameters are properly chosen, the higher density of modulation bits can translate into a higher density recording of data bits. In that manner, the overall density can become greater than 1 data bit per .DELTA.. However, the cost of such an increase in capacity is the reduced period of time available to each modulation bit. If t is defined as the time that the read/write head dwells on an interval of length .DELTA., then the time window available to each modulation bit will be t/(d+1).

Any of the sets of constraints discussed above, or all of them together, and any other modulation constraints can be represented by a corresponding state transition table. A state transition table is an .vertline.S.vertline..times..vertline.B .vertline. matrix, where .vertline.S.vertline. is the number of states of a finite automation and .vertline.B.vertline. is the number of possible transition symbols. Each element z.sub.s,b of that matrix is either the state to which the automation goes by the transition symbol b from the state s or is a symbol signifying that the transition described by the symbol b is forbidden; that is, the transition by symbol b from state s is not permitted by the modulation constraints. FIG. 1 shows an example of such a state transition table for (2,5) RLL constraints where a state is equal to the number of zeroes after the last "1" bit.

The constrained noiseless channel discussed above has been defined by Shannon as any set of constraints on encoded data (which need not necessarily be binary) characterized by any state transition diagram; the notion of constraints defined by such transition diagram is equivalent to the notion of constraints defined by the state transition table mentioned above. Shannon defined the capacity of such a channel as the theoretical limit of the rate N/L of coding for those constraints, for an information source block of length N and a codeword of length L.fwdarw..infin.. He also proposed a way in which to calculate that capacity for any state transition diagram. However, prior to the present invention, general nonexponentional complexity methods of modulation coding with a rate approaching that capacity have not been known.

The present invention provides a method of and apparatus for encoding and decoding with only linear complexity with a rate approaching Shannon's capacity for any constrained noiseles channel; that is, for modulation constraints defined by any state transition table or by any state transition function.

While run-length-limited (d,k) codes and (d,k;c) codes in general are known, they are only known for few (d,k;c) combinations. Some such codes, and probably the most practical ones, are characterized in Table 1. See the Chapter by Arvind M. Patel in C. Denis Mee and Eric D. Daniel's "Magnetic Recording," Vol. II, McGraw-Hill Book Company, 1988, p. 247.

TABLE 1 ______________________________________ Rates of some known run-length-limited (d,k) and (d,k;c) codes in comparison to Shannon's information capacities of noiseless channels with corresponding run-length-limiting (d,k) or (d,k;c) constraints. d k c Capacity .gtoreq. rate ______________________________________ 0 3 -- 0.947 > 8/9 1 3 -- 0.552 > 1/2 1 3 3 0.500 = 1/2 1 6 -- 0.699 > 2/3 1 7 -- 0.679 > 2/3 1 7 10 0.668 > 2/3 2 7 -- 0.517 > 1/2 2 7 8 0.501 > 1/2 2 8 7 0.503 > 1/2 3 7 -- 0.406 > 2/5 4 9 -- 0.362 > 1/3 5 17 -- 0.337 > 1/3 ______________________________________

Furthermore, only a small number of known (d,k) and (d,k,c) codes have been used commercially. For example, the effective (2,7) RLL code is known and is extensively utilized, but effective (2,7;c) RLL codes are not known. Very few of those utilized (d,k) combinations are optimal. In addition, these known codes from Table 1 are of very different natures. For example, the (2,7) RLL code is defined by a small table of variable-to-variable length coding (but with a fixed rate), whereas the (0,3) RLL code is defined by a large table of fixed-to-fixed length coding. See U.S. Pat. No. 3,689,899, referenced above and Patel, A.M., "Improved Encoder and Decoder for a Byte-Oriented (0,3) 8/9 Code," IBM Technical Disclosures, Vol.28, 546 (1985). An (1,7) RLL code is defined by two mappings. See Horiguchi, T. and K. Morita, "An Optimization of Modulation Codes in Digital Recording," IEEE Trans. on Magn., MAG-12, 740 (1976).

The absence of a systematic and effective way for finding modulation codes has been a major obstacle to the development of systems of magnetic and optical recording with higher storage densities. That obstacle is overcome by the present invention which, in contrast with the prior art, provides an efficient way of producing modulation encoding for modulation constraints defined by any state transition table with maximum possible rate for the given modulation requirements. In particular, the present invention provides such kind of modulation encoding and decoding for any (d,k) and (d,k;c) constrains, any (d,k) and (d,k;c) constraints with an arbitrary synchronization word, or for both of those cases using simple error-correcting codes incorporated in the state transition table. The application of the present invention is similar for use in both magnetic and optical recording and in optical fiber communication.

If modulation encoding is used as decoding and modulation decoding is used as encoding, then the method and apparatus of the present invention provide effective data compression for the general case of information source data constraints defined by an arbitrary state transition table, instead of modulation coding for modulation constraints defined by the same state transition table. While in the past general methods of effective data compression for information source constraints have not been known, the present invention discloses general methods of effective data compression for information source constraints defined by any state transition table.

For the objectives described above the present invention utilizes the first known algorithms both for enumeration of any set of words described by constraints defined by any state transition table and for inverse mapping. An enumeration algorithm forms the main part of the modulation decoding algorithm and of the data compression encoding algorithm. Conversely, the inverse mapping algorithm forms the main part of the modulation encoding algorithm and of the data compression decoding algorithm. Algorithms which provide either enumeration or inverse mapping for any given state transition table (or for a broad class of such tables) and a given initial state were not known prior to this invention. Particularly, algorithms which provide such functions for a class of state transition tables corresponding to (d,k) codes were not known prior to the instant invention.

According to one main method of this invention, after the state transition table corresponding to a given set of constraints has been constructed, the block length L of the modulation codewords is determined. The present invention can handle any choice of L, although longer codewords are preferred since they yield a capacity which is arbitrarily close to Shannon's noiseless channel capacity for the given set of constraints. The main encoding and decoding algorithms cf the present invention are based upon enumeration and mapping blocks of user data of fixed length N to modulation codewords of fixed length L.

The instant invention provides many advantages over known methods for encoding and decoding information on optical and magnetic disks. For example, information rates using the present invention, and hence storage densities, are arbitrarily close to capacity (the theoretical rate limit approached by growing lengths of codewords) for practically any set of constraints on allowed encoded sequences. These constraints can be entered as input in the form of a state transition table. Such closeness to capacity is achieved for all sets of constraints using the invention disclosed herein. Any new or additional set of constraints are entered as a new or additional input in the form of a state transition table without changing the method of the present invention.

If synchronization properties are required, then they can be easily and independently introduced with a negligible decrease in the information rate. That can be accomplished by adding a set of new constraints which correspond to the addition of a synchronization word.

Run-length-limiting and practically any other constraints that define modulation codes without error-correcting properties (or with simple error-correcting properties) can be described by state transition tables of size 2S where S denotes the number of states. For a (d,k) code, .vertline.S.vertline.=k+1. An array of size L.times..vertline.S.vertline..times.2, where L is the codeword length, is produced from this table a single time for all codings and decodings corresponding to this table. It is an advantage of the present invention that this is almost the only memory used by the invention for coding and decoding and that it can be stored in ROM. In contrast, the memory required by a lookup code table is much larger, being of the order of 2.sup.L. In addition, the method and apparatus of the present invention uses only a few operations per bit of data, both for encoding and decoding, and does not require multiplication or division.

In order to implement the synchronization properties of the present invention, an additional state transition table of size 2.vertline.S'.vertline., determined by the properties of a desired synchronization word, can be implemented. That will produce an array of size L.times..vertline.S.vertline..times..vertline.S'.vertline..times.2, which again need only be produced once for all encodings and decodings that use that synchronization word. If the synchronization word is taken as a sequence of k+1 zeroes for (d,k) codes, then the (d,k) code with such synchronization word becomes a (d,k+1) code.

SUMMARY AND OBJECTS OF THE INVENTION

In view of the foregoing, it should be apparent that there still exists a need in the art for a method of and apparatus for providing more effective modulation coding or data compression of digital data for use with magnetic and optical recording and optical fiber communication. It is, therefore, a primary object of this invention to provide a method of and apparatus for effective modulation coding for any run-length-limiting (d,k) constraints or (d,k;c) constraints.

It is an object of this invention to provide a method of and apparatus for coding-decoding which can be used to provide effective data compression of information source data defined by an arbitrary state transition table.

It is also an object of the present invention to provide a method of and apparatus for the enumeration of any set of words described by constraints defined by any state transition table and for inverse mapping.

Another object of the present invention is to provide a method of and apparatus for modulation coding which is reliable and relatively inexpensive to implement.

A further object of the present invention is to provide a method of and apparatus for producing and utilizing encoding-decoding pairs for modulation coding whose rates approach Shannon's theoretical limit for constraints defined on encoded data by any state transition table or state transition function.

Another object of the present invention is to provide

such encoding-decoding pairs for modulation of any run-length-limiting (d,k) constraints or (d,k;c) constraints, for any (d,k) pairs or (d,k;c) combinations, and especially for optimal (d,k) pairs and (d,k,c) combinations.

Another object of the invention is to provide such encoding-decoding pairs with any arbitrary synchronization word.

It is a further object of the present invention to provide such a method of and apparatus for encoding and decoding that require only a small constant number of elementary operations, without multiplications or divisions, and which require memory storage for only a small number of integers.

It is a still further object of the present invention to provide such a method of and apparatus for producing the modulation coding of maximum rate possible for any given fixed length L of codewords with modulation and other constraints defined by any state transition table, so that coding is of the fixed-to-fixed length type without error propagation, utilizing the same initial and final state.

It is another object of the present invention to provide a method of and apparatus for producing the modulation coding of maximum rate possible for any given fixed length L of codewords, with constraints defined by any state transition table so that coding is of the fixed-to-fixed length type with error propagation, and in which the initial state of the following codeword is not equal to the final state of the previous codeword.

It is yet another object of the present invention to provide a method of and apparatus for producing the modulation coding of maximum rate possible for any given length of information source blocks to be encoded, with constraints defined by any state transition table, so that coding is of the fixed-to-variable length type with error propagation, in which the initial state of a following codeword is equal to the final state of the previous codeword and in which codewords of the same initial state are of fixed length.

It is a still further object of the present invention to provide a method of and apparatus for producing fixed-to-fixed or fixed-to-variable length data compression encoding-decoding for constraints defined on data to be encoded by any state transition table, with the maximum possible rate for a given length of information source blocks.

It is yet another object of the present invention to provide a method for the calculation of the rate for all cases of modulation coding or data compression coding and for calculating the rate limit when the length of coding increases.

Briefly described, these and other objects of the invention are accomplished in accordance with the method and apparatus of the invention which utilize primarily two algorithms (enumeration and inverse enumeration) which satisfy the requirements that encoding and decoding require only a small constant number of elementary operations, without multiplications or divisions, and that only memory space for storage of a small number of integers is required. Furthermore, the invention operates with only linear time complexity and only linear memory complexity with respect to the length of codewords.

The first of these two algorithms, which is described later, is called the direct enumeration algorithm, and accomplishes a mapping, called enumeration. The second algorithm, called the inverse enumeration algorithm, accomplishes the inverse mapping.

In operation, the present invention assumes that the symbols of words have an alphabetic ordering. The enumeration maps any word satisfying certain requirements (especially modulation constraints) to its lexicographic (alphabetic, dictionary) number in the set of all words satisfying those requirements. For two main versions of the invention, those requirements may be defined by all of the following: a) any fixed alphabet of G symbols (G=2 in modulation coding), b) any fixed length L of those words, c) any fixed state transition table with S states and transition symbols from that alphabet, d) any fixed initial state from those S states, and e) either the requirement that the final state coincide with the initial state or the requirement that all final states be permitted.

With these and other objects, advantages and features of the invention that may become hereinafter apparent, the nature of the invention may be more clearly understood by reference to the following detailed description of the invention, the appended claims and the several drawings attached herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a state transition table for the states s=0,1, ..., .vertline.S.vertline.-1 for tun-length-limiting (d, k) constraints assuming a state to be equal to the number of zeroes after the last "1" bit (S=k+1) and where d=2 and k=5;

FIG. 2 is a table showing maximum rate modulation code mapping for the state transition table of FIG. 1, in which the initial state is equal to the final state which is equal to 0, and for a codeword length L=12;

FIG. 3 is a tree in which any sequence of edges from the root to a terminal node represents one of the 12 words from column 2 of the table of FIG. 2, in which a left directed edge for any node indicates a "0" and a right directed edge indicates a "1";

FIG. 4 a table showing an array of natural numbers of size L.times..vertline.S.vertline., called an array of accumulated numbers, which may be stored in a ROM or other memory of the apparatus of the present invention and is used for the encoding and decoding of both the modulation coding and data compression functions of the present invention;

FIG. 5 is a table illustrating how, for the data shown in FIG. 2, lexicographic numbers of codewords are calculated and used for the enumeration algorithm (decoding for modulation coding and encoding for data compression) provided by the method and apparatus of the present invention;

FIG. 6a is a brief flow chart showing how the method and apparatus of the present invention operate as an encoder and a decoder for use for modulation coding;

FIG. 6b shows a brief flow chart showing how the method and apparatus of the present invention can be utilized for data compression;

FIG. 7 shows a flow chart of the method of the present invention when used for decoding corresponding to fixed-to-fixed length modulation coding in which the initial state is equal to the final state, which is equal to zero, and with state transition of finite automation as shown in FIGS. 8 or 9;

FIG. 8 shows a flow chart of state transition of the finite automation of FIG. 7 for the general case of an arbitrary state transition table stored in a ROM or other memory;

FIG. 9 shows a flow chart of state transition of the finite automation of FIG. 7 for the specific case of run-length-limiting (d,k) constraints;

FIG. 10 shows a flow chart of encoding corresponding to the decoding of FIG. 7 with state transition of finite automation as shown in FIGS. 8 or 9;

FIG. 11 shows a block diagram of the apparatus of the present invention for use in the decoding corresponding to fixed-to-fixed length modulation coding in which the initial state is equal to the final state and is equal to zero;

FIG. 12 is a schematic block diagram of the common part of the encoder and decoder illustrated in FIGS. 11 and 16, with a finite automation illustrated in FIG. 13, for the general case of constraints defined by any state transition table and for the specific case of run-length-limiting (d, k) constraints shown in FIG. 14;

FIG. 13 shows a block diagram of the finite automation of FIG. 12 for the general case of an arbitrary state transition table stored in a ROM or other memory;

FIG. 14 shows a block diagram of the finite automation of FIG. 12 for the specific case of run-length-limiting (d,k) constraints;

FIGS. 15a-h show time diagrams for the clock, codeword, codeword signal, state, initiating, enable, counter, least significant counterbit, signal after NOR and output waveforms used with and produced by the circuitry of FIG. 11;

FIG. 16 shows a block diagram of an encoder corresponding to the decoder of FIG. 11 and which utilizes the common part of the encoder and decoder shown in FIG. 12;

FIG. 17 is a table showing the results of experiments conducted by the inventor on the calculation of a rate for using the method of the present invention for various values of the parameters d, k and L, as well as a comparison of those results with capacities for corresponding (d,k) constraints with rates of known (d,k) codes; and

FIG. 18 is a table showing the corresponding optimal values of d for different k's for fixed distances between transitions of modified non-return-to-zero (NRZI) waveforms commonly used in connection with recording on magnetic tapes, magnetic or optical discs and in fiber communication channels.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

We refer now in detail to the drawings wherein like parts are designated by like reference numerals throughout. Before explaining the mathematical basis of the present invention in more detail, it is believed advantageous to set forth a number of definitions and notations which will assist the understanding of the invention. During the course of this description, references will be made to many of the drawings attached herein.

Definition 1. An alphabet A is a finite fixed set of not less than two symbols with a given order, which is called alphabetic order. A word over an alphabet is a finite sequence of the symbols of that alphabet.

Notation 1. .vertline.1.vertline. denotes the number of elements in a set (size) or in a sequence (length). Hence, for any word u over an alphabet, 0.ltoreq..vertline.u.vertline.<.infin..

Notation 2. B denotes an arbitrary but fixed alphabet of symbols 0, 1, ..., B-1, written in their alphabetical order and where 2.vertline.B.vertline.<.infin..

Definition 2. A state transition table (STT) with transition symbols from the alphabet B and with a finite non-empty set S of states is a matrix with .vertline.S.vertline. rows, designated by states from S, and with .vertline.B.vertline. columns, designated by transition symbols from the alphabet B, and where the entries z.sub.s,b have as values either these states or a symbol (different from any state from S) indicating forbidden transitions. Each entry of the state transition table in any column b and in any row shows the state resulting from state s by the transition symbol b, as clarified by Definition 3. The state transition function of arguments s and b is defined as the function e(s,b) having as values the corresponding entries.

Notation 3. Z denotes an arbitrary but fixed state transition table with states designated by 0,1, ...,s,..., .vertline.S.vertline.-1; F is the symbol for a forbidden transition; and z.sub.s,b denote the entries of Z corresponding to state s and symbol b through the state transition function e(s,b). FIG. 1 shows a state transition table Z in which B=(0, 1), .vertline.S.vertline.=6, and F indicates a forbidden transition. This state transition table describes (2,5) runlength-limiting (d,k) constraints as set forth below.

Definition 3. The empty word (a word of length zero) is permitted by the state transition table Z for any initial state and with the final state equal to the initial state. A word u having the last symbol b is permitted for the state transition table Z for an initial state sin with a final state s.sub.fin, if its prefix of length .vertline.u.vertline.-1 is permitted by the state transition table Z for the same initial state s.sub.in, has final state s, and e(s,b)=s.sub.fin.

Definition 4.

(a) The set of words of length L (over the alphabet B), defined by a state transition table Z and by the initial state s.sub.in, is the set of words of length L over the alphabet B permitted by the state transition table Z for the initial state s.sub.in with arbitrary final states.

(b) The set of words of length L (over the alphabet B), defined by a state transition table Z and by the same initial and final state s.sub.in =s.sub.fin, is the set of words of length L over the alphabet B permitted by the state transition table Z for the initial state s.sub.in and with final state s.sub.fin =s.sub.in. The second column of FIG. 2 shows the set of words for this definition for the state transition table shown in FIG. 1, in which s.sub.in =s.sub.fin= 0 and L=12.

Definition 5. If we let Q be any set of words over an alphabet, for example the alphabet B of Notation 2, then the enumeration of Q is a one-to-one mapping of Q to the set {0, 1, ..., Q-1}, such that each word is assigned its lexicographic (alphabet, dictionary) number in the set Q. For example, the third column of FIG. 2 shows the enumeration of the set of words of the second column of that figure.

Definition 6. If we let Q be a set of words of length L over the alphabet B as set forth in Definitions 4 (a) or (b) and we let Z be a state transition table with .vertline.S.vertline. states and transition symbols from B, then, for the cases of Definitions 4 (a) and (b), respectively:

(a) An array C of sub-tree sizes for the state transition table Z for words of length L and for an initial state sin is an L.times..vertline.S.vertline. matrix having entries c.sub.l,s, where 0 .ltoreq.1.ltoreq.L-1 and 0.ltoreq.s.ltoreq..vertline.S.vertline.-1. These entries are numbers given by the formula c.sub.l,s =.vertline.{u.SIGMA.Q such that w is a prefix of u}.vertline., where w is any word of length l permitted by the state transition table Z for the initial state s.sub.in with final state s and Q is the set of words of Definition 4 (a).

(b) An array C of sub-tree sizes for the state transition table Z for words of length L and the same initial and final state s.sub.in =s.sub.fin is an L.times..vertline.S.vertline. matrix having entries c.sub.l,s, where 0.ltoreq.1.ltoreq.L-1, and 0.ltoreq.s.ltoreq.S-1. These entries are numbers given by the formula c.sub.l,s =.vertline.{u.SIGMA.Q such that w is a prefix of u}.vertline., where w is any word of length 1 permitted by the state transition table Z for the initial state s.sub.in with final state s, and Q is the set of words of Definition 4 (b).

Definition 7. If we let Q be a set of words of length L over the alphabet B as set forth in Definition 4 (a) or (b) and we let Z be a state transition table with the set S of states and transition symbols from B, then, for the cases of Definitions 4 (a) and (b), respectively:

(a) An array of accumulated numbers A for the state transition table Z for words of length L and for initial state s.sub.in is an L.times..vertline.S.vertline..times.(.vertline.B.vertline.-1) matrix with entries a.sub.l,s,b, where 0.ltoreq.1.ltoreq.L-1, 0.ltoreq.s.ltoreq..vertline.S.vertline.-1, 1.ltoreq.b.ltoreq..vertline.B.vertline.-1, and where the entries are numbers given by the formula ##EQU1## where w is any word of length 1 permitted by the state transition table Z for an initial states s.sub.in with final state s, and Q is the set of words of Definition 4 (a). Using definition 6, this formula can be written as ##EQU2## where b=1, 2, ..., .vertline.B.vertline.-1.

(b) An array of accumulated numbers A for the state transition table Z with words of length L and the same initial and final state s.sub.in =s.sub.fin is an L.times..vertline.S.vertline..times.(.vertline.B.vertline.-1) matrix with entries al,s,b, where 0.ltoreq.1.ltoreq.L-1, 0.ltoreq. s.ltoreq..vertline.S.vertline.-1, 1.ltoreq.b.ltoreq..vertline.B.vertline.-1, and where the entries are numbers given by the formula ##EQU3## where w is any word of length 1 permitted by the state transition table Z for the same initial and final state s.sub.in =s.sub.fin of the word u and for the final state s of the prefix w, and Q is the set of words of Definition 4 (b). Using definition 6, this formula can be written as ##EQU4## where b