Abstract:
The present invention is directed to take measures against linear scratches and improve the recording density per unit code length. That is, a coded image recording device which, in recording data on a recording medium as an optically readable coded image in which the contents of the data are imaged, interleaves the data, divides the interleaved data into equal amounts of data to produce a plurality of items of block data each having a predetermined amount of data, and arranges a plurality of blocks each having imaged contents of each block data in a given area to thereby record the coded image, comprises a dummy data generating unit for, when imaging each block data as a block, generating dummy data whose amount is less than the predetermined amount of data and which is not associated with the data to be recorded and inserting it into a block in which its block data amount is less than the predetermined amount of data.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to a coded image recording device and method for recording optically readable coded images on the surface of a recording medium such as paper. 
     As a conventional coded image recording device which records an optically readable coded image on a recording medium (paper in particular), there is a technique of recording a coded image comprising multiple blocks having a physical format on paper, which is disclosed in EP No. 0,670,555A1(U.S. Ser. No. 08/407,018) now U.S. Pat. No. 5,896,703 assigned to the same assignee as this invention. This recording device records multimedia information, such as sound, images, text, etc., as a coded image and can be adapted to varying amounts of data in input multimedia information by increasing the number of blocks, each of which constitutes a physical minimum storage unit, according to the data amount. 
     Each of the blocks has an ID number referred to as a block address. A coded image is recorded on paper by concatenation of a plurality of blocks. An increase in the number of blocks that can be concatenated leads to an increase in the amount of recordable information. However, the use of an optical reader of a manual scanning type will increase the probability of the occurrence of a read error due to meanderings of scanning attendant an increase in scanning range. Such a read error will produce frequently dropouts of blocks, i.e., so-called burst errors, which makes difficult a reliable read operation by manual scanning. 
     In view of the prior art problem, EP No. 0,713,914A1(U.S. Ser. No. 08/586,792) now U.S. Pat. No. 5,898,709 by way of example discloses a technique related to a logical data format that allows even a manual-scanning reader to read data recorded in blocks with more certainty and a coded image recording device that produces and records a coded image based on the logical data format. 
     Hereinafter, the arrangement of such a coded image recording device will be described with reference to FIG.  15 . 
     In this figure, the data input unit and the code printing unit are omitted because they are not directly related to the present invention to be described later. 
     In FIG. 15, digitized multimedia information is entered into a data compression unit  21 , which receives from a controller  29  identification information that represents the type of sound, images, or text. By this identification information, one of compressors in the data compression unit is selected, thereby subjecting the input multimedia information to compression corresponding to the identification information and producing desired compressed data. In the structure of the compressed data, a header is added which defines the data type, the compression scheme, and the compressed data amount. The amount of compressed data with such a header is presented to the controller  29 . 
     A dummy data generation unit  23  generates dummy data which is added so that supermacroblock data  191  shown in FIG. 16 is divisible by one macroblock data in a macroblock data group  193 . Here, a supermacroblock, a macroblock and block data used in the following description correspond to data, a first block, and a second block (or simply a block), respectively. In addition, macroblock user data and block user data correspond to first block data and second block data (or unit block data), respectively. All these expressions are used in the following description. 
     The compressed data and the dummy data are entered into an error correcting code generator  22 , which receives correction capability information from the controller  29 . The error correcting code generator  22  adds given error correcting and checking parity to the compressed data having a data amount determined according to the error capability information and generates correcting codes. The correcting code length and the parity length corresponding to the correction capability are sent to an interleave unit  24  and a macroblock header generator  25 . The correcting codes thus generated are entered into the interleave unit  24  and stored in sequence into a buffer memory (not shown) in the interleave unit on the basis of the input correcting code length. The logical data format of a group of the correcting codes thus stored has a two-dimensional structure as shown in supermacroblock data  191  of FIG.  16 . The number of the correcting codes corresponds to the interleave length. 
     EP No. 0,713,914A1(U.S. Ser. No. 08/586,792) describes that supermacroblock data is an integral multiple of macroblock data, but does not describe any specific structure of the supermacroblock data. A specific structure of the supermacroblock data is described in EP No. 0,703,580A2. In the technique disclosed in this publication, dummy data is appended to compressed data so that supermacroblock data is an integral multiple of macroblock data and correcting parity is affixed to the dummy data with the dummy data taken as part of the compressed data. 
     The supermacroblock data  191  has dummy data added to the end of compressed data to form a given size of supermacroblock data. Here, the dummy data may be a predetermined fixed value or a random number generated in accordance with a predetermined rule. The supermacroblock data  191  is written into the buffer in the direction of correcting code length and read from the buffer into a macroblock data generator  26  in the direction of the interleave length. Thereby, interleave processing is completed, so that logically one-dimensional supermacroblock data  192  is produced. The interleave length is presented to the macroblock header generator  25 . 
     The macroblock header generator  25  produces a header based on the input correcting code length, parity length, and interleave length, and the ID number of the supermacroblock and the ID number of a macroblock output from the controller  29 , i.e., information representing how the macroblocks are concatenated to form a supermacroblock. Error correcting parity is appended to produce a final macroblock header. The macroblock header is output to the macroblock data generator  26 . 
     In the macroblock data generator  26 , the one-dimensional supermacroblock data  192  after interleave is divided into pieces of macroblock user data each corresponding to macroblock data having a given data amount. Each piece of macroblock user data is assigned a macroblock header to produce a group of macroblock data  193 . The macroblock data group  193  is entered into a block data generator  27  where each macroblock data is divided into multiple pieces of block user data. 
     Each piece of block user data comprises data obtained by dividing each of the macroblock header and macroblock user data by the number of pieces of block data in each macroblock data. 
     A block header is appended to each piece of block user data, thus producing a block data group  194 . The block header contains block-related header information such as a block address. 
     The block data group  194  is entered into a coded image generator  28 , which converts each block data into a block comprised of markers  112 , pattern codes  113 , block headers  114 , and block user data  115  as shown in FIG. 3, and produces a code image in which multiple blocks are concatenated. The block user data  115  is recording modulated to discriminate between data  115  and markers  112  and recorded in black and white dots each for a bit. 
     The above-described conventional technique appends control information that makes each of the interleave length and the error correcting capability variable according to the amount of data in the input multimedia information, i.e., a macroblock header, for each macroblock by way of example and thereby checks an increase in the percentage of multimedia information of the control information, i.e., a reduction in recording density, to a minimum. Thus, the reader can detect the control information with more certainty. 
     Hereinafter, the reason will be described taking others than the above-described technique by way of example will be described. 
     First, in the conventional technique, when the control information is recorded in a given block, for example, a block whose block address is one, the importance of the block recorded with the control information increases very greatly as compared with the other blocks. With the manual scanning-based reader, the reading accuracy for a specific block cannot be increased and there is the possibility of misreading any of the blocks. 
     Thus, it cannot be said that the probability of the block recorded with the control information being misread is low enough. In other words, the frequency that a supermacroblock cannot be reconstructed increases. 
     Second, when each block contains the control information, the evenness of the importance of each block is achieved and the control information can be extracted with certainty even if some block is misread. However, this approach results in an increase in the percentage of multimedia information to be recorded relative to the control information. Thus, the recording density per unit code length is reduced. 
     In the conventional technique, the supermacroblock data  191  corresponds in size to an integral multiple of each block. Thus, data forming one correcting code in the simple two-dimensional supermacroblock data  191  may be recorded on the same location in each block  111 . This occurs in the case where the amount of data stored in each block in the supermacroblock data  191  corresponds to either a submultiple or a multiple of the interleave length. 
     If, under such a condition, a coded image is formed by multiple blocks into a rectangular shape, the error correcting code data are arranged in lines in the horizontal and vertical directions. If linear scratches should be produced in the vertical and horizontal directions, the probability that errors are produced in numbers beyond correcting capability in each correcting code would increase. That is, the reader becomes extremely affected by linear scratches in the horizontal and vertical directions. 
     In particular, when printing a coded image with a printing device in which the paper feeding accuracy is poor or the accuracy of scanning by a printing head is poor, unevenness of printing occurs in a direction perpendicular to the printing head scanning direction or the paper feeding direction. The unevenness of printing appears in the form of linear scratches  133  and  134  in the horizontal and vertical directions on a code  132  recorded on paper  131  as shown in FIG.  6 . Errors will be produced in data corresponding in location to the scratches  133  and  134 . With such a printing device, there arises a problem that a code cannot be read fully. 
     By making up a macroblock of as many blocks as possible, the amount of data in control information allocated to each block can be reduced to increase the recording density per unit code. On the other hand, when the amount of data in input multimedia information (after correcting parity has been appended) is not divisible by the amount of data that can be stored in each macroblock, much useless dummy data is inserted into supermacroblock data prior to interleaving. This is due to the premise that supermacroblock data corresponds in size to an integral multiple of macroblock data. The useless dummy data are scattered over a coded image after interleaving and are all recorded. That is, the dummy data will take up unnecessarily a recording medium, e.g., paper surface. This imposes a constraint on the restricted layout of paper. 
     BRIEF SUMMARY OF THE INVENTION 
     It is the object of the present invention to provide a coded image recording device and method which is resistant to linear scratches in the horizontal and vertical directions, eliminates useless dummy data, and keeps down the percentage taken up by control information for variable interleave length and variable correcting capability in multimedia information to thereby keep the recording density per unit code length from lowering. 
     According to a first aspect of the present invention there is provided a coded image recording device which, in recording data on a recording medium as an optically readable coded image in which the contents of the data are imaged, interleaves the data, divides the interleaved data into equal amounts of data to produce a plurality of items of block data each having a predetermined amount of data, and arranges a plurality of blocks each having imaged contents of each block data in a given area to thereby record the coded image, comprising: dummy data inserting means for, when imaging each block data as a block, inserting dummy data whose amount is less than the predetermined amount of data and which is not associated with the data to be recorded into a block in which its block data amount is less than the predetermined amount of data. 
     According to a second aspect of the present invention there is provided a coded image recording device which, in recording data on a recording medium as an optically readable coded image in which the contents of the data are imaged, interleaves the data, divides the interleaved data into equal amounts of data to produce a plurality of items of block data each having a predetermined amount of data, and arranges a plurality of blocks each having imaged contents of each block data in a given area to thereby record the coded image, comprising: first block producing means for producing a plurality of first blocks each containing a first predetermined amount of first block data, the first block data being obtained by dividing the data into equal amounts of data; dummy data inserting means for inserting dummy data whose amount is less than the first predetermined amount of data and which is not associated with the data to be recorded into a block, of the plurality of first blocks produced by the first block producing means, in which its block data amount is less than the first predetermined amount of data; second block producing means for producing a plurality of second blocks each containing a second predetermined amount of second block data, the first block data being obtained by dividing each first block data into equal amounts of data; block decision means for making a valid/invalid decision for each of the second blocks produced by the second block producing means, a second block whose second block data are all the dummy data being decided as an invalid block; and control means for keeping a second block or blocks for which the valid/invalid decision is invalid from being recorded and imaging the other second blocks for recording. 
     According to a third aspect of the present invention there is provided a coded image recording method which, in recording data on a recording medium as an optically readable coded image in which the contents of the data are imaged, interleaves the data, divides the interleaved data into equal amounts of data to produce a plurality of items of block data each having a predetermined amount of data, and arranges a plurality of blocks each having imaged contents of each block data in a given area to thereby record the coded image, comprising: 
     a dummy data inserting step for, when imaging each block data as a block, inserting dummy data whose amount is less than the predetermined amount of data and which is not associated with the data to be recorded into a block in which its block data amount is less than the predetermined amount of data. 
     According to a fourth aspect of the present invention there is provided a coded image recording method which, in recording data on a recording medium as an optically readable coded image in which the contents of the data are imaged, interleaves the data, divides the interleaved data into equal amounts of data to produce a plurality of items of block data each having a predetermined amount of data, and arranges a plurality of blocks each having imaged contents of each block data in a given area to thereby record the coded image, comprising: 
     a first step of producing a plurality of first blocks each containing a first predetermined amount of first block data, the first block data being obtained by dividing the data into equal amounts of data; 
     a second step of inserting dummy data whose amount is less than the first predetermined amount of data and which is not associated with the data to be recorded into a block, of the plurality of first blocks produced by the first step, in which its block data amount is less than the first predetermined amount of data; 
     a third step of producing a plurality of second blocks each containing a second predetermined amount of second block data, the first block data being obtained by dividing each first block data into equal amounts of data; 
     a fourth step of making a valid/invalid decision for each of the second blocks produced by the second step, a second block whose second block data are all the dummy data being decided as an invalid block; and 
     a fifth step of keeping a second block or blocks for which the valid/invalid decision is invalid from being recorded and imaging the other second blocks for recording. 
     Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out hereinafter. 
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING 
     The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate presently preferred embodiments of the invention, and together with the general description given above and the detailed description of the preferred embodiments given below, serve to explain the principles of the invention. 
     FIG. 1 is a block diagram of a first embodiment of the present invention; 
     FIG. 2 illustrates transitions of a logical data format used in the first embodiment; 
     FIG. 3 illustrates a physical data format of each block comprising a coded image; 
     FIG. 4 is a block diagram of the interleave unit of FIG. 1; 
     FIG. 5 is a flowchart for interleave processing of the present invention; 
     FIG. 6 illustrates scratches that occur when a coded image is printed on paper; 
     FIG. 7 is a block diagram of a second embodiment of the present invention; 
     FIG. 8 illustrates transitions of a logical data format when the supermacroblock is one in number in the second embodiment; 
     FIG. 9 illustrates transitions of a logical data format when there is multiple supermacroblocks in the second embodiment; 
     FIG. 10 is a block diagram of a third embodiment of the present invention; 
     FIG. 11 is a flowchart for processing of changing the macroblock size in the third embodiment; 
     FIG. 12 illustrates transitions of a logical data format used in the second embodiment; 
     FIG. 13 illustrates transitions of a first logical data format used in the third embodiment; 
     FIG. 14 illustrates transitions of a second logical data format used in the third embodiment; 
     FIG. 15 is a block diagram of a prior art technique; and 
     FIG. 16 illustrates transitions of a logical data format in the prior art technique. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to FIG. 1, a coded image recording device according to a first embodiment of the present invention comprises a data compression unit  1  for compressing multimedia information containing sound, images, text and so on, an error correcting code generator  2  for appending correcting parity to the compressed data to generate error correcting codes, an interleave unit  3  for interleaving the error correcting codes, a macroblock header generator  4  for generating macroblock headers with correcting codes appended using the interleave length, the correcting code length, the parity length, macroblock concatenation information used in constructing a supermacroblock and the error correcting check parity generated by the data, a dummy data generator  6  for generating dummy data, a macroblock data generator  5  for generating a group of macroblock data from supermacroblock data after interleaving, the macroblock headers, and the dummy data, a block data generator  7  for diving the generated macroblock data group into a plurality of pieces of block user data and appending a block header to each block user data to generate a group of block data, a coded image generator  8  for generating a coded image from the generated block data group according to the type of code array, and a controller  8  for performing overall control on the operation of the reading device. In the description below, it is assumed that the multimedia information is sound data, the error correcting code is an RS (Read Solomon) code, and a dot code is one in which a plurality of blocks  111  are arranged in concatenated form each of which comprises markers  112 , pattern codes  113 , block headers  114 , and block user data  115  as shown in FIG.  3 . Of course, these are not restrictive. 
     The operation of the first embodiment will be described hereinafter with reference to FIGS. 1 through 6. 
     FIG. 2 illustrates transitions of a logical data format in the first embodiment, FIG. 3 illustrates a physical format of each block comprising a coded image, FIG. 4 illustrates an arrangement of the interleave unit  3 , FIG. 5 is a flowchart for interleave processing, and FIG. 6 illustrates scratches that are produced when the coded image is recorded on paper. 
     Sound information from a sound input unit (not shown), such as a microphone, is converted by an analog-to-digital converter not shown into digital sound data. Since the sound entry and the analog-to-digital conversion are well known in the art, their illustration and description are omitted. The digital sound information is applied to the data compression unit  1  where it is subjected to analysis-synthesis coding such as CELP (code excited linear prediction) or waveform coding such as ADPCM (adaptive differential pulse code modulation) for compression so that coded data the amount of which is specified by the controller  9  is allocated for each frame having a predetermined period of, for example, 30 msec. The compressed data is stored in a buffer memory not shown in the data compression unit  1 . A header that defines the compression scheme and the amount of data is appended to the beginning of the compressed data. The compressed data with the header appended is applied to the error correcting code generator  2 . At the completion of outputting of all the compressed data with the header, an output completion signal is sent from the data compression unit  1  to the controller  9 . 
     Upon receipt of the compressed data with the header appended, the error correcting code generator  2  appends error correcting and checking parity to each sequence of data quantity of which corresponds to correcting capability specified by the controller  9 , thus producing a correcting code. For example, for every three frames each of 24 bytes, a ( 88 ,  72 ) RS code is generated with 16 bytes of checking parity appended. The correcting code thus generated, and its code length and parity length are provided to the interleave unit  3  and the macroblock header generator  4 . 
     The correcting code is stored in a buffer memory  123  in the interleave unit  3  via a memory controller  121  as shown in FIG.  4 . The memory controller informs an interleave length determination unit  122  of the reception of each correcting code. The interleave length determination unit counts the number of correcting codes that have been written into the buffer memory by the memory controller until a data completion signal is output from the controller  9 . 
     Here, the processing by the interleave unit  3  will be described with reference to a flowchart of FIG.  5 . In the interleave processing, the number of error correcting codes is first counted (step S 1 ). The total count of the error correcting codes corresponds to the interleave length. A decision is then made in step S 2  as to whether or not the interleave length is divisible by a given submultiple of (the amount of the block user data quantity)−(the amount of macroblock header data quantity distributed to each block defined). 
     If the interleave length is divisible, then the interleave length is incremented by one (step S 3 ). The memory controller  121  is instructed to record repeatedly the most recently stored correcting code into the buffer memory  123  (step S 4 ) and then the procedure returns to step S 2 . The correcting code repeatedly recorded is not limited to the most recently stored correcting code. It may be an optional correcting code which can be corrected. 
     On the other hand, if, in step S 2 , the interleave length is not divisible by the given submultiple, then an instruction is given to the memory controller  121  to perform interleaving based on an interleave length determined (step S 5 ). 
     Here, assuming that a macroblock is comprised of 12 blocks and the macroblock header comprises 24 bytes, the amount of macroblock header data distributed to each block is two bytes. 
     As described previously, in order not to allow data bytes forming one correcting code to be placed in the same offset location in each block user data to be described later, it is required that the interleave length be not divisible by a given submultiple of (the amount of the block user data quantity)−(the amount of macroblock header data quantity distributed to each block defined). By satisfying such a requirement, it becomes possible to minimize the effect of errors due to linear scratches produced in the horizontal and vertical directions on the code  105 . 
     Reference will be made next to FIG. 2 to describe transitions of the logical data format. 
     The memory controller  121  reads the logically two-dimensional supermacroblock data  101  defined by the interleave length determined by the above processing in the direction of interleave to thereby produce one-dimensional supermacroblock data  102 , which is in turn applied to the macroblock data generator  5 . 
     The macroblock header generator  4  generates a macroblock header, which comprises the interleave length sent from the interleave unit  3 , the error correcting code length and the parity length sent from the error correcting code generator  2 , the address number of the starting block in the code  105 , the number of macroblocks constituting the supermacroblock calculated from the interleave length, the correcting code length, and the data size of macroblock user data (MB_UD), and error correcting/checking parity. The macroblock headers are output to the macroblock data generator  5 . 
     The macroblock data generator  5  generates a group of macroblock data  103  from the input macroblock header and one-dimensional supermacroblock data  102 . The macroblock data group  103  comprises macroblock user data (MB_UD- 1 ,  2 ,  3 ,  4 ,  5 ) and the macroblock header. The macroblock header is the same for all the macroblock user data. Each macroblock user data is obtained by dividing the one-dimensional supermacroblock data by a predetermined amount of data. 
     If the last macroblock user data is less than the predetermined amount of data, it is padded with dummy data generated from the dummy data generator  6  so that all the macroblock user data will be of the same size. In the macroblock data group  103 , the latter-half part of MB_UD- 5  shown in cross-hatching indicates the dummy data padded to make the MB_UD- 5  equal in size to the other macroblock user data. 
     The macroblock data group  103  thus generated is output to the block data generator  7 , which split each macroblock data into much smaller blocks of data to obtain a group of block data  104 . The method of splitting will be described below. 
     First, the macroblock header is divided by the number of blocks constituting the macroblock to obtain block headers. Each block header is placed at the beginning of corresponding block user data. For example, assume that the macroblock header is 24 bytes and the number of blocks in each macroblock is 12. 
     Then, two bytes of block header are allocated to each block. Next, the macroblock user data is divided by the number of blocks in each macroblock to obtain a plurality of blocks of data. In the above description, each block header is placed at the beginning of the corresponding block user data; however, this is not restrictive. The block header may be placed in a different position for each block. 
     The block data group  104  thus produced is output to the coded image generator  8 , which converts each block data in the input block data group  104  into the block  111  shown in FIG.  3  and concatenates the resulting blocks according to a code array specified by the controller  9  to produce a code  105 . In the conversion from the block data to the block  111 , markers  112  and pattern codes  113  are stored in predetermined locations in a bit-mapped image, and black and white dots corresponding to the respective bits of the block header are stored in block headers  114 . Further, the user data in the block data is subjected to recording modulation and then stored in block user data  115  in the form of black and white dots corresponding to the respective bits in the resulting recording modulated code. In this example, the code  105  thus produced is delivered to a printer not shown and then printed on a recording medium such as paper. 
     As described so far, the coded image recording device according to the first embodiment determines the interleave length such that the byte data in the correcting codes are not arranged in lines in the horizontal and vertical directions in the code, not by making the supermacroblock data size an integral multiple of the macroblock user data size as in the conventional technique. Thus, as in the conventional technique, a data structure can be used which allows control information, including correcting capability and optional interleave length, to be stored in a very small amount in comparison with the data amount of multimedia information to be recorded and moreover the reproducing device to acquire the control information with certainty. For this reason, a code can be produced easily that has error resistance to linear scratches in the horizontal and vertical directions in the code. 
     In the first embodiment, in most cases, the supermacroblock data size which is structured by optional interleave length is not an integral multiple of the macroblock data size. In order to make the structures of data under supermacroblock data identical to the conventional ones, it is required only to insert dummy data into a macroblock user data area that is not filled with supermacroblock data. 
     A second embodiment of the present invention will be described next. 
     FIG. 7 illustrates, in block diagram form, an arrangement of a coded image recording device according to the second embodiment. The device comprises a data compression unit  1  for compressing multimedia information such as sound, images, text, and so on, an error correcting code generator  2  for adding correcting parity to the compressed data to generate error correcting codes, an interleave unit  3  for interleaving the error correcting codes, a macroblock header generator  4  for generating a macroblock header comprising the interleave length, error correcting code length, parity length, starting block address, and correcting parity and the error correcting check parity generated by the data, a macroblock data generator  10  for generating a group of macroblock data from one-dimensional supermacroblock data and the macroblock header, a block data generator  11  for generating a group of block data from the macroblock data, a valid/invalid block decision unit  12  for making a decision as to whether each block data is valid or invalid, a block data selector  13  for selecting block data which have been subjected to valid/invalid decision which are to be drawn in a coded image according to a code array, a coded image generator  8  for drawing selected block data in the coded image, and a controller  9  for controlling the overall operation of the device. 
     In the description below, it is assumed that the multimedia information is sound data, the error correcting code is an RS code, and a dot code is one in which a plurality of blocks  111  are arranged in concatenated form each of which comprises markers  112 , pattern codes  113 , block headers  114 , and block user data  115  as shown in FIG.  3 . Of course, these are not restrictive. The arrangement of FIG. 7 is distinct from that of FIG. 1 in that the valid/invalid block decision unit  12  and the block data selector  13  are added. 
     Hereinafter the operation of the coded image recording device according to the second embodiment will be described with reference to FIGS. 2,  3 ,  7 ,  8 , and  9 . 
     Sound information input from a microphone not shown is converted into digital sound information. In the data compression unit  1 , the digital sound information is compressed by means of analysis-synthesis coding such as CELP or waveform coding such as ADPCM in units of a frame having a period of 30 msec by way of example so that each frame contains an amount of coded data specified by the controller  9 . The processes from the compression to the interleaving of correcting codes by the interleave unit  3  and the generation of a macroblock header by the macroblock header generator  4  remain unchanged from those in the first embodiment. Thus, their detailed description is omitted here. 
     As in the first embodiment, the macroblock data generator  10  generates the macroblock data group  103  from the input one-dimensional supermacroblock data  102 , the dummy data, and the macroblock header. Here, the second embodiment is distinct from the first embodiment in that the data quantity of the one-dimensional supermacroblock data  102  is presented to the valid/invalid block decision unit  13 . 
     The block data generator  11  divides each macroblock data in the macroblock data group  103  into a group of smaller blocks of data  104 . This method remains unchanged from that in the first embodiment and the description thereof is therefore omitted. 
     Each block data thus generated is sent to the valid/invalid block decision unit  12 , which, using the data quantity of the input one-dimensional supermacroblock data  102  sent from the macroblock data generator  10 , decides whether the supermacroblock data is contained in data other than the macroblock header in the user data of block data. When it is decided that all the data other than the macroblock header in the user data of the block data is dummy data, that block data is considered as invalid. On the other hand, block data that contains some (e.g., no more than one byte) of supermacroblock data in addition to dummy data is decided to be valid. The result of decision is presented to the block data generator  11  where it is written into the corresponding block header. 
     In the block data group  141  of FIG. 8, there is shown valid/invalid decision information for each block data. The block data selector  13  selects block data to be drawn in response to a code array control signal from the controller  9 . 
     FIG. 8 shows two types of code array patterns: code array- 1  ( 142 ) and code array- 2  ( 143 ). The rules for selecting block data used in the block data selector  13  are as follows: 
     In the first place, valid blocks are selected without fail. Second, a minimum number of invalid blocks is selected if valid blocks alone are insufficient to form a rectangular code array. In the code array- 1  ( 142 ) of FIG. 8, the block  52  is a sample. Since three valid blocks  49 ,  50  and  51  alone cannot form a rectangular array, the block  52  is selected. Third, when the macroblock data is one in number, all the invalid blocks are selected. 
     Invalid blocks that do not satisfy the above conditions are not imaged as a coded image. That is, in the conventional technique and the first embodiment, the blocks through block  60  are imaged, whereas, in the code array- 1  ( 142 ), only the blocks through block  52  are imaged and, in the code array- 2  ( 143 ), only the blocks through block  51  are imaged. Thus, the second embodiment allows for shorter code length. 
     The significant data that non-imaged blocks hold is the distributed macroblock header. The same macroblock header is allocated for all the macroblock data. Thus, even if the macroblock header allocated for the last macroblock data is imperfect, there is no problem because the reading device has only to reproduce at least one of the macroblock headers allocated for the other macroblock data. On the other hand, if the macroblock data is one in number, which means that the macroblock header is also one in number, the perfect macroblock header cannot be reproduced on the reproduction side unless all the invalid blocks are selected. This is the reason for the third rule. 
     The block data selected by the block data selector  13  are concatenated in the form of the block  111  shown in FIG. 3 in the coded image generator  8  according to the code array specified by the controller  9 . The block data-to-block conversion is made in the same way as with the first embodiment. The information concerning valid/invalid blocks recorded in the block header is not needed on the reproduction side; thus, nothing about that information is recorded on the coded image. 
     FIG. 9 shows an example of recording two pieces of supermacroblock data in a code. A macroblock data group ( 1 )  152  produced from first supermacroblock data and a macroblock data group ( 2 )  154  produced from second supermacroblock data are divided into block data groups ( 1 )  152  and block data groups ( 2 )  154 , respectively. An valid/invalid decision is made for each block data. Each block data is assigned a unique block address. 
     Block data to be imaged are selected from the block data groups ( 1 )  152  and the block data groups ( 2 )  154  as shown in code array- 1  ( 155 ) and code array- 2  ( 156 ). The block addresses of block data that are not imaged are missing in the code arrays. 
     The starting block address described in the macroblock header, when there are more than one piece of supermacroblock data to be recorded, represents the starting block address of block data produced from each supermacroblock data. Therefore, the starting block address in the macroblock header assigned to the macroblock data group ( 1 )  151  is 1, while the starting block address in the macroblock header assigned to the macroblock data group ( 2 )  153  is 61. Thus, the reproduction side can easily recognize the starting position for reconstructing each supermacroblock data. 
     As described so far, according to the coded image recording device of the second embodiment, as in the conventional technique, a data structure can be used which allows control information, including correcting capability and interleave length, to be stored in as small an amount as possible in comparison with the data amount of multimedia information to be recorded and moreover the reproducing device to acquire the control information with certainty. Error resistance to linear scratches in the horizontal and vertical directions can be increased. There is no need of imaging useless dummy data as a coded image and a minimum code size can be obtained, providing greater freedom in layout on paper. 
     A third embodiment of the present invention will be described next. 
     FIG. 10 illustrates, in block diagram form, an arrangement of a coded image recording device according to the third embodiment. The device comprises a data compression unit  1  for compressing multimedia information such as sound, images, text, and so on, an error correcting code generator  2  for adding correcting parity to the compressed data to generate error correcting codes, an interleave unit  3  for interleaving the error correcting codes, a macroblock header generator  4  for generating a macroblock header comprising the interleave length, error correcting code length, parity length, starting block address, and the error correcting check parity generated by the data, a macroblock data generator  14  for generating a group of macroblock data from one-dimensional supermacroblock data and the macroblock header, a block data generator  15  for generating a group of block data from the group of macroblock data, a valid/invalid block decision unit  12  for making a decision as to whether each block data is valid or invalid, a macroblock size changing unit  16  for changing the macroblock size through a comparison between the number of macroblocks and the number of valid blocks and informing the macroblock data generator  14  and the block data generator  15  of the changed macroblock size, a block data selector  13  for selecting block data which have been subjected to valid/invalid decision which are to be drawn in a coded image according to a code array, a coded image generator  8  for drawing selected block data in the coded image, and a controller  9  for controlling the overall operation of the device. 
     In the description below, it is assumed that the multimedia information is sound data, the error correcting code is an RS code, and a dot code is one in which a plurality of blocks  111  are arranged in concatenated form each of which comprises markers  112 , pattern codes  113 , block headers  114 , and block user data  115  as shown in FIG.  3 . Of course, these are not restrictive. The third embodiment is distinct in arrangement from the second embodiment in that the macroblock size changing unit  16  is added. 
     Hereinafter, the operation of the third embodiment will be described with reference to FIGS. 10 though  14 . 
     FIG. 11 is a flowchart for macroblock size changing processing, FIG. 12 shows transitions of the logical data format, FIG. 13 shows transitions of a first logical data format, and FIG. 14 shows transitions of a second logical data format. 
     Sound information input from a microphone not shown is converted into digital sound information. In the data compression unit  1 , the digital sound information is compressed by means of analysis-synthesis coding, such as CELP, or waveform coding, such as ADPCM, in units of a frame having a period of 30 msec by way of example so that each frame contains an amount of coded data specified by the controller  9 . The processes from the process of compression to the process of interleaving correcting codes by the interleave unit  3  and generating a macroblock header by the macroblock header generator  4  and the process of selecting block data to be dot-coded by the block data selector  13  and imaging the code by the coded image generator  8  remain unchanged from those in the second embodiment. 
     In the macroblock data generator  14 , the input one-dimensional supermacroblock data is divided into pieces of macroblock data as in the first and second embodiments. At this point, each macroblock data is made up of a given number of pieces of block data. For example, each macroblock data is comprised of 12 pieces of block data. In the block data generator  15 , each macroblock data is divided into pieces of block data in the same way as in the first and second embodiments. 
     As in the second embodiment, in the valid/invalid block decision unit  12  a valid/invalid decision is made for each block data. 
     When, as shown in FIG. 12, generated macroblock data  161  is one in number, the block data selector  13  will not be able to discard invalid blocks as described in connection with the second embodiment. A problem still remains in that the minimum size of a coded image that can be produced is fixed at the macroblock data size. 
     As shown in FIG. 12, when coded-imaging a small amount of sound data, the macroblock size changer  16  reduces the number of blocks in the macroblock and requests the macroblock data generator  14  and the block data generator  15  to reproduce block data accordingly. The macroblock data generator  14  then divides one-dimensional supermacroblock data again into pieces of macroblock data smaller in size than predetermined. The resulting macroblock data is divided by the block data generator  15  as block data. The valid/invalid block decision unit  12  makes a valid/invalid decision for each block data and records the result of decision in the corresponding block header. 
     FIG. 14 shows the case where the one-dimensional supermacroblock data shown in FIG. 12 is divided into two pieces of macroblock data each of which is comprised of six pieces of block data. In this case, since two macroblock headers are present, blocks  11  and  12 , which are invalid, can be removed in the light of the same rules for selecting blocks as in the second embodiment. The final code  183  can therefore be made smaller than the code  163  in FIG.  12 . 
     Hereinafter, reference will be made to FIG. 11 to describe the macroblock size change processing. 
     The number of blocks that makes up a macroblock (the macroblock size) is set to an initial value (step S 11 ). A decision is then made as to whether the macroblock size is larger than the number of valid blocks (step S 12 ). When the macroblock size is larger than the number of valid blocks, the macroblock size is changed to a smaller value (step S 13 ) and the operation returns to step S 12 . On the other hand, when the macroblock size is equal to or less than the number of valid blocks, the macroblock size changer instructs the macroblock data generator  14  and the block data generator  15  to use that macroblock size (step S 14 ). Thus, the processing is terminated. 
     When instructed by the macroblock size changer, the macroblock data generator  14  and the block data generator  15  reproduce block data in accordance with the determined macroblock size. 
     With the above method, one of predetermined macroblock sizes that defines the number of blocks which makes up one macroblock is selected on the premise that the macroblock header is distributed to each block data quantity comprising macroblock data in equal data amounts. Alternatively, as in the block data group  172  shown in FIG. 13, the macroblock size may be changed successively to the number of blocks to which the macroblock header and the macroblock user data other than dummy data can be distributed. 
     In the case of FIG. 13, the macroblock size is changed from  12  to  9 . The user data in the last three blocks, BLK_UD  10 ,  11 , and  12 , is dummy data alone. These dummy data blocks are decided as invalid blocks and coded only when a code does not form a rectangular shape. 
     A problem is how to allow the reading device to recognize the number of pieces of block data that makes up macroblock data quantity (macroblock size). This can be solved by inserting anew a few bits of data representing the macroblock size into the block header. The block header is drawn in black and white dots in the block header  114  within the block pattern  111  of FIG. 3 except valid/invalid block information. 
     As described so far, according to the third embodiment, as in the conventional technique, a data structure can be used which allows control information, including correcting capability and interleave length, to be stored in as small an amount as possible in comparison with the data amount of multimedia information to be recorded and moreover the reproducing device to acquire the control information with certainty. Error resistance to linear scratches in the horizontal and vertical directions can be increased. There is no need of imaging useless dummy data as a coded image. By making the macroblock size variable, a minimum code size can be reduced even when the amount of sound information to be recorded is small. Thus, the code size can be minimized, providing greater freedom in layout on paper. 
     The present invention provides the following advantages: 
     According to claim  1 , by inserting an amount of dummy data less than a predetermined data amount into block data into which data to be recorded is divided after being interleaved, the data is allowed to have a free logical structure and a free size without imposing any constraint on the data structure, such as requires the data to be recorded and the block data to have some relationship therebetween. 
     According to claim  2 , by inserting an amount of dummy data less than a predetermined data amount into block data into which data to be recorded is divided after being interleaved, the data is allowed to have a free logical structure and a free size without imposing any constraint on the data structure, such as requires the data to be recorded and the block data to have some relationship therebetween. In addition, there is no need of imaging useless dummy data as a code, and the code size can be minimized, providing greater freedom in layout on paper. 
     According to claim  3  and claim  4 , by adding invalid block or blocks to recording blocks when blocks cannot be arranged into a given shape, a visually agreeable code shape can be formed. Thereby, the paper layout can be determined in advance. 
     According to claim  5 , by adding invalid block or blocks to recording blocks when blocks cannot be arranged into a given shape, a visually agreeable code of a rectangular shape can be formed. Thereby, the paper layout can be determined in advance. 
     According to claim  6  and claim  7 , control information distributed to invalid blocks as well can be read more reliably on the reproduction side, allowing data to be reproduced more reliably through the use of the control information. 
     According to claim  8 , in addition to allowing control information distributed to invalid blocks as well to be read more reliably on the reproduction side and allowing data to be reproduced more reliably, the code size can be minimized because more useless dummy data is not coded-imaged. This increases freedom in paper layout. 
     According to claim  9 , by inserting an amount of dummy data less than a predetermined data amount into block data into which data to be recorded is divided after being interleaved, the data is allowed to have a free logical structure and a free size without imposing any constraint on the data structure, such as requires the data to be recorded and the block data to have some relationship therebetween. In addition, there is no need of imaging useless dummy data as a code, and the code size can be minimized, providing greater freedom in layout on paper. 
     According to claim  10  and claim  11 , by adding invalid block or blocks to recording blocks when blocks cannot be arranged into a given shape, a visually agreeable code shape can be formed. Thereby, the paper layout can be determined in advance. 
     According to claim  12 , by adding invalid block or blocks to recording blocks when blocks cannot be arranged into a given shape, a visually agreeable code of a rectangular shape can be formed. Thereby, the paper layout can be determined in advance. 
     According to claim  13  and claim  14 , control information distributed to invalid blocks as well can be read more reliably on the reproduction side, allowing data to be reproduced more reliably through the use of the control information. 
     Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.