Digital data storage in video format
First Claim
1. Apparatus for correcting errors in digital data stored on a storage medium and recovered therefrom, said apparatus comprising:
- means for arranging the bytes of data to be stored on the storage medium into a plurality of code blocks each having a first predetermined number of columns and a second predetermined number of rows of bytes;
first order means for generating a parity block of first order parity bytes, said parity block having a number of columns and a number of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, such that the first order parity bits in said parity block correspond to the computed parity of the combined corresponding bits in each of said code blocks;
second order means for generating a parity row of second order parity bytes for each of said data blocks and said parity block, such that each bit of each said second order parity byte corresponds to the computed parity of the combined corresponding bits in each byte in the column of the block associated with that parity row, said second order means adding each said row to its associated block; and
means for generating a correction control word for each byte of all of said blocks, and for adding each said correction control word to each said byte for which said correction control word is generated, to form a composite word.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for encoding a plurality of bytes of digital data into a further plurality of bits suitable for storage in a storage medium, and for recovery therefrom, and for decoding the stored bits retrieved from the storage medium, for the recovery of the encoded bytes. The digital data bytes are arranged into a plurality of code blocks, each having a first predetermined number of columns and a second predetermined number of rows of bytes. A parity block of bytes of data is generated having a number of columns and a number of rows of bytes corresponding to the first predetermined number of columns and to the second predetermined number of rows of bytes, respectively, of the code blocks, the bits of data in the parity block corresponding to the computed parity of the combined corresponding bits in each of the code blocks. Secondly, a parity row of bytes of data are generated for each of the data blocks such that each bit in each byte in the parity row corresponds to the computed parity of the combined corresponding bits in each byte in the column of the associated data block of that parity row. Each such row of parity bytes is added to its associated block. Thirdly, a correction control word is generated for each 8 bit byte of data blocks, parity rows and parity blocks, and is added to its associated byte to form a composite word. The bits of data of all such composite words for all of the blocks are interleaved according to a matrix having a third predetermined number of rows and a fourth predetermined number of columns, and the interleaved data is provided in serial arrangement for storage.
120 Citations
25 Claims
-
1. Apparatus for correcting errors in digital data stored on a storage medium and recovered therefrom, said apparatus comprising:
-
means for arranging the bytes of data to be stored on the storage medium into a plurality of code blocks each having a first predetermined number of columns and a second predetermined number of rows of bytes; first order means for generating a parity block of first order parity bytes, said parity block having a number of columns and a number of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, such that the first order parity bits in said parity block correspond to the computed parity of the combined corresponding bits in each of said code blocks; second order means for generating a parity row of second order parity bytes for each of said data blocks and said parity block, such that each bit of each said second order parity byte corresponds to the computed parity of the combined corresponding bits in each byte in the column of the block associated with that parity row, said second order means adding each said row to its associated block; and means for generating a correction control word for each byte of all of said blocks, and for adding each said correction control word to each said byte for which said correction control word is generated, to form a composite word. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An error correction apparatus for detecting and correcting errors in digital information recovered from a storage medium, said apparatus comprising:
-
means for arranging the information to be stored on the storage medium in blocks of a selected number of bits b; means for generating a group of n first order parity bits by computing parity for each sequence of every nth bit of the b bits of the block, where b is an integer multiple of n; means for generating b/n+1 further groups of m second order parity bits by computing parity for each sequence of every mth bit in each sub-block of n bits of the b bits of the block and the n first order parity bits, where n is an integer multiple of m; means for generating error correction bits for each group of c bits of the b bits of the block and the n first order parity bits and the (b/n+1)m second order parity bits, each group of c bits and its associated error correction bits, forming a composite word; means for sequentially feeding to the storage media each composite word formed from the bits of each sub-block of n data bits and its associated second order parity bits, followed by each composite word formed from the parity bits of the n first order parity bits and their associated second order parity bits. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. Apparatus for encoding a plurality of bytes of digital data into further plurality of bits suitable for storage in a storage medium and for recovery therefrom, comprising;
-
(a) means for arranging said bytes of data into a plurality of data blocks each having a first predetermined number of columns and a second predetermined number of rows of bytes; (b) means for generating a parity block of bytes of data having a number of columns and a number of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, such that the bits of data in said parity block correspond to the computed parity of the combined corresponding bits in each of said data blocks; (c) means for generating a parity row of bytes of data for each of said data blocks and said parity block such that each bit of said parity bytes in said parity rows corresponds to the computed parity of the combined corresponding bits in each byte in the respective column of the associated block of that parity row, and for adding each said row to its associated block; (d) means for generating a correction control word for each byte of all said data blocks and said parity block for adding each said correction control word to each said byte for which said correction control word is generated, to form a composite word; and (e) means for interleaving the bits of said composite words of data for each of said blocks according to a matrix having a third predetermined number of rows and a fourth predetermined number of columns, and for providing said interleaved bits in serial arrangement.
-
-
23. Apparatus for decoding into recovered data bytes a plurality of bits, wherein said bits are generated from said data bytes by the steps of arranging said bytes of data into a plurality of data blocks each having a first predetermined number of columns and a second predetermined number of rows of bytes;
- generating a parity block of bytes of data having a number of columns and of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, the bits of data in said parity block corresponding to the computed parity of the combined corresponding bits in each of said data blocks;
generating a parity row of bytes of data for each of said data blocks and said parity block such that each bit of each of said parity bytes in said parity rows corresponds to the computed parity of the combined corresponding bits in each byte in the respective column of the associated block of that parity row, and adding each said row to its associated block;
generating a correction control word for each byte of all of said data blocks and said parity block, and adding said correction control word to said bytes for each said correction control word was generated, to form a composite word;
interleaving the bits of said composite words of data for each of said blocks according to a matrix having a third predetermined number of rows and a fourth predetermined number of columns, and providing said interleaved bits in serial arrangement;
comprising;(a) means for disinterleaving said bits of data according to the reverse of said matrix into said composite words; (b) means for determining if a bit error exists in one of said composite words and for applying a first correction step using said correction control word to correct said erroneous bit; (c) means for determing if more than one bit error exists in at least one of said composite words and for applying a second correction step using said row of parity bytes of data to correct said erroneous bits; and (d) means for determining if said more than one bit errors cannot be corrected using said first determining means and for applying a third correction step using said parity block of bytes to correct said errors.
- generating a parity block of bytes of data having a number of columns and of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, the bits of data in said parity block corresponding to the computed parity of the combined corresponding bits in each of said data blocks;
-
24. Method for encoding a plurality of bytes of digital data into a further plurality of bits suitable for storage in a storage medium and for recovery therefrom, comprising the steps of:
-
(a) arranging said bytes of data into a plurality of data blocks each having a first predetermined number of columns and a second predetermined number of rows of bytes; (b) generating a parity block of bytes of data having a number of columns and a number of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, such that the bits of data in said parity block correspond to the computed parity of the combined corresponding bits in each of said data blocks; (c) generating a parity row of bytes of data for each of said data blocks and said parity block such that each bit of each of said parity bytes in said parity rows corresponds to the computed parity of the combined corresponding bits in each byte in the respective column of the associated block of that parity row, and for adding each said row to its associated block; (d) generating a correction control word for each byte of all said data blocks and said parity block, and for adding each said correction control word to each said byte for which said correction control word is generated, to form a composite word; and (e) interleaving the bits of said composite words of data for each of said blocks according to a matrix having a third predetermined number of rows and a fourth predetermined number of columns, and for providing said interleaved bits in serial arrangement.
-
-
25. Method for decoding into recovered data bytes a plurality of bits, wherein said bits are generated from said data bytes by the steps of arranging said bytes of data into a plurality of data blocks each having a first predetermined number of columns and a second predetermined number of rows of bytes;
- generating a parity block of bytes of data having a number of columns and of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, the bits of data in said parity block corresponding to the computed parity of the combined corresponding bits in each of said data blocks;
generating a parity row of bytes of data for each of said data blocks and said parity block such that each bit of each of said parity bytes in said parity rows corresponds to the computed parity of the combined corresponding bits in each byte in the respective column of the associated block of that parity row, and adding each said row to its associated block;
generating a correction control word for each byte of all of said data blocks and said parity block, and adding said correction control word to said bytes for which said correction control word was generated, to form a composite word;
interleaving the bits of said composite words of data for each of said blocks according to a matrix having a third predetermined number of rows and a fourth predetermined number of columns, and providing said interleaved bits in serial arrangement;
said method comprising the steps of;(a) disinterleaving said bits of data according to the reverse of said matrix into said composite words; (b) determining if a bit error exists in one of said composite words and for applying a first correction step using said correction control word to correct said erroneous bit; (c) determining if more than one bit error exists in at least one of said composite words and for applying a second correction step using said row of parity bytes of data to correct said erroneous bits; and (d) determining if said more than one bit errors cannot be corrected using said first determining means and for applying a third correction step using said parity block of bytes to correct said errors.
- generating a parity block of bytes of data having a number of columns and of rows of bytes corresponding to said first predetermined number and said second predetermined number, respectively, the bits of data in said parity block corresponding to the computed parity of the combined corresponding bits in each of said data blocks;
Specification