Patent ID: 6944803

Claim:
An encoder adapted to encode a sequence of source data elements to produce a sequence of primary coded data elements satisfying a first set of constraints, the first set of constraints being equivalent to a set of constraints implemented by another encoder, the another encoder comprising a data organization component, a linear state sequencer and a state-to-data-elements converter, wherein: the data organization component is adapted to receive the sequence of source data elements and to receive a sequence of state-derived data elements from the stat-to-data-elements converter and to output a data organization output sequence which includes every data element of the sequence of source data elements and which on an ongoing basis includes inserted data elements, each inserted data element comprising a state-derived data element output by the state-to-data elements converter; the linear state sequencer being adapted to maintain a state consisting of state data elements and to perform linear state sequencing as a function of the data organization output sequence, which is provided as input to the linear state sequencer, and as a function of the state data elements; the state-to-data-elements converter being adapted to produce said sequence of state-derived data elements, wherein each state-derived data element is a linear combination of the state data elements; wherein the linear state sequencer is configured to satisfy the following specifications: a) if the linear state sequencer state is zero at a time i, any on-zero data organization output sequence data element at time i will result in a non-zero state time i+1; b) if the linear state sequencer state is zero at a time i, non-zero at time i+1, bat again zero at a later time k>i+1, then necessarily there must be a non-zero data organization output sequence data element at some time j, with i<j<k; and wherein the data organization component and the state-to-data-elements converter are configured in relation to the linear state sequencer to satisfy the following specifications: c) if the linear state sequencer state is non-zero at a time x, non-zero at a later time z>x, and non-zero for all times between x and z, the time z cannot be advanced indefinitely, in so doing increasing the duration of the time interval [x,z] during which the linear state sequencer state is always non-zero, without necessitating a non-zero data organization output sequence data element at some time y, with x≦y<z; d) data element insertion by the data organization component into the sequence of source data elements to produce the data organization output sequence does not render any linear state sequencer state unreachable; the sequence of primary coded data elements being equal to the data organization output sequence.