Image processing apparatus, image processing system and computer readable medium storing program

An image processing apparatus includes: a recognition unit that recognizes a layout of a line including a character string in an image read from an original; a determination unit that determines a size of a region in which additional information is embedded so as to include at least a part of a line including a character string in the region, based on the layout recognized by the recognition unit; a dividing unit that divides the image read from the original based on the size of the region determined by the determination unit; and an embedding unit that embeds the additional information in the image divided by the dividing unit.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2008-231643 filed Sep. 10, 2008

BACKGROUND

Technical Field

The present invention relates to an image processing apparatus, an image processing system and a computer readable medium storing a program.

SUMMARY

According to an aspect of the invention, there is provided an image processing apparatus including: a recognition unit that recognizes a layout of a line including a character string in an image read from an original; a determination unit that determines a size of a region in which additional information is embedded so as to include at least a part of a line including a character string in the region, based on the layout recognized by the recognition unit; a dividing unit that divides the image read from the original based on the size of the region determined by the determination unit; and an embedding unit that embeds the additional information in the image divided by the dividing unit.

DETAILED DESCRIPTION

Background

First, to assist understanding of the present invention, its background will be described.

Generally, illegal duplication of image data can be prohibited by embedding additional information in the image data. For example, as shown inFIG. 1, when additional information “1” is embedded, a dot is placed on the upper side in the vicinity of a black region, and when additional information “0” is embedded, a dot is placed on the lower side in the vicinity of a black region. To detect the additional information from the image data where the additional information is embedded in this manner, it is recognized whether each dot is on the upper side or lower side in the vicinity of a black region.

In the exemplary embodiment of the present invention described below, an image forming apparatus embeds additional information by placing a dot by block and detects the additional information by recognizing a dot position by block, as described above.

Next, the exemplary embodiment of the present invention will be described in detail with reference to the drawings. Note that the following description is merely an example upon implementation of the present invention. The present invention is not limited to the following example, and appropriate changes can be made in accordance with necessity.

[Exemplary Embodiment of the Present Invention]

InFIG. 2, the image forming apparatus10has a print unit12and a scan unit14. The print unit12has e.g. three-stage recording medium supply trays16. The three-stage trays16are respectively provided with a supply head18. When one of the recording medium supply trays16is selected, the supply head18is actuated and a recording medium is supplied from the selected recording medium supply tray16via a recording medium supply passage20to a print engine22.

The print engine22, which is an e.g. color-and-monochromatic xerography print engine, is provided with yellow, magenta, cyan and black photoreceptors24, and provided with an intermediate transfer belt26. A charging device, an illumination device, a developing device, a first transfer device, a cleaning device (none shown) and the like are arranged around each photoreceptor24, Toner images formed with the respective photoreceptors24are transferred onto the intermediate transfer belt26. In the case of monochrome printing, only the black photoreceptor24is operative. The toner image on the intermediate transfer belt26is transferred onto a supplied recording medium with a second transfer roller, and fixed to the recording medium by a fixing device30. Then recording medium on which the toner image has been fixed is output through a recording medium output passage32to a output tray34.

Note that when double-sided printing is set, the recording medium, where the toner image has been fixed to its surface by the fixing device30, is sent from the recording medium output passage32to a reversing device36. Then the recording medium is reversed by the reversing device36, sent to a recording medium reverse passage38, again returned to the recording medium supply passage20, sent to the print engine22, and printing is performed on the reverse side.

The scan unit14has an automatic document feeder40such as a DADF capable of reading a double-sided original. An original is fed by the automatic document feeder40to a platen42, and an original image is read by a reading part44having a CCD and the like on the platen42. Further, the scan unit14is provided with an original set status detector46to detect whether or not the original has been set on the automatic document feeder40. Further, as the automatic document feeder40also functions as a platen cover, the platen cover is opened and the original can be placed on the platen42. The opening/closing of the platen cover can be detected by a platen cover open/close detector48. Further, the image forming apparatus10is provided with a modem connected to a public line for facsimile communication and a network communication device connected to a network such as a LAN.

A user interface device50(hereinbelow referred to as a “UI device50”), provided integrally with the image forming apparatus10or via a network, selects a process in the image forming apparatus10and displays the selected process.

FIG. 3shows a control circuitry in the image forming apparatus10. In addition to the above-described UI device50, a CPU52, a system memory54, an image memory56, an input/output interface58, a scan interface60, a print interface62, a network communication interface64and a modem interface66for facsimile communication are interconnected via a bus. The CPU52controls the respective circuits in accordance with a program written on the system memory54(or written on an external storage medium (not shown) such as a CD-ROM). Operation input data from the UT device50is transmitted to the CPU52, and display image data from the CPU52is transmitted to the UT device50. The image memory56temporarily holds an image read in the image processing apparatus10. The input/output interface58inputs an original set detection signal from the above-described original set status detector46and a platen cover open/close signal from the platen cover open/close detector48to detect open/close status of the platen cover.

FIG. 4shows the configuration of an embedding program operating on the image forming apparatus10. As shown inFIG. 4, the embedding program has an image data input part68, a layout recognition part70, a block size determination part72, an image data dividing part74, an embedding position determination part76, an additional information encoding part78, and an additional information embedding part80. The embedding program having this configuration embeds additional information in image data.

When a user scans image data and additional information and operates the above-described UT device50so as to embed the additional information in the image data, the above-described CPU52reads the embedding program from the system memory54(or the external storage medium) and executes the program. Note that it may be arranged such that the image data and the additional information are previously stored in the system memory54.

The image data input part68receives input of the image data stored in the system memory54or the image memory56, and outputs the image data to the layout recognition part70and the image data dividing part74. The layout recognition part70performs general projection process on the image data received from the image data input part68, thereby recognizes a layout, i.e., a format such as a text direction (vertical writing or horizontal writing), a region including a large number of characters (line), and a region including no character (line space, margin and the like). The layout recognition part70outputs layout information to the block size determination part72and the image data dividing part74. The block size determination part72determines a block size based on the layout information from the layout recognition part70, and outputs the block size to the image data dividing part74. For example, when the text direction is horizontal writing, the block size determination part72determines a block height using a line height or a value obtained by adding a half value of the line space to the line height, and determines a block width using a predetermined value. The image data dividing part74divides the image data from the image data input part68based on the layout information from the layout recognition part70and the block size determined by the block size determination part72, in block unit. The embedding position determination part76determines positions in which the additional information is embedded (hereinbelow, “embedding positions”) in the image data divided in block unit by the image data dividing part74, and outputs the divided image data to the additional information embedding part80. The additional information encoding part78adds information for detection and correction of error to the additional information stored on the system memory54or the image memory56, encodes the additional information (performs error correction encoding), and outputs the additional information to the additional information embedding part80. The information for detection and correction of error is an error correction bit based on BCH (56, 38, 7) code, or the like. Note that a conversion process based on the Reed-Solomon code may be performed on the additional information. The additional information embedding part80embeds the error-correction encoded additional information from the additional information encoding part78in the embedding positions determined by the embedding position determination part76, and outputs the image data to an interface such as the print interface62.

The block size is determined in e.g. a format shown inFIGS. 5A to 5C.

FIG. 5Ashows an example where the above-described layout recognition part70recognizes a format, a line and line space.FIG. 5Bshows an example where the above-described block size determination part72determines a block height using a line height based on the format and the line recognized inFIG. 5Aand determines a block width using a predetermined value.FIG. 5Cshows an example where the block size determination part72determines the block height using a value obtained by adding a half value of the line space to the line height based on the format, the line and the line space recognized inFIG. 5Aand determines the block width using the predetermined value.

In the image data, for example, block delimiters are recognized using e.g. a format shown inFIG. 6, and divided in block unit using a format shown inFIG. 7.

FIG. 6shows an example where the above-described image data dividing part74recognizes the center of the line space recognized inFIG. 5Aas a block delimiter.

FIG. 7shows an example where the above-described image data dividing part74divides the image data in block unit based on the block size determined inFIG. 5Cand the block delimiters inFIG. 6.

The embedding positions are determined using e.g. the format shown inFIGS. 8A to 8D.FIGS. 8A to 8Dshow an example where the above-described embedding position determination part76determines the embedding positions in the image data divided in block unit inFIG. 7.

As shown inFIG. 8A, the embedding position determination part76scans a macro block on the image data inFIG. 7while moving the macro block by block, and determines a position where the number of blank blocks in which the additional information cannot be embedded is equal to or less than a predetermined value, as an embedding position. InFIG. 8A, since the format of the image data is horizontal writing, the embedding position determination part76scans the macro block from an upper left position of the image data toward a lower right position. When the format of the image data is columnar writing, the embedding position determination part76scans the macro block from an upper right position of the image data toward a lower left position.

Note that the macro block has a predetermined number of the blocks determined inFIG. 5C. In this example, the macro block has vertical 8 blocks×horizontal 7 blocks, i.e., total 56 blocks, in correspondence with the error-correction coding method (BCH (56, 38, 7) code) used in the additional information encoding part78. In the macro block, in correspondence with error-correctable three bits in the BCH (56, 38, 7) code, a position in which the number of blank blocks in the macro block is equal to or less than three is an embedding position. It may be arranged such that the macro block has e.g. a vertical 1 block×horizontal 8 blocks, i.e., total 8 blocks in correspondence with the layout recognized by the layout recognition part70.

FIG. 8Bshows an example of a position where the number of blank blocks in the macro block is equal to or less than three and the additional information is embedded. The blank block shown inFIG. 8Bis caused by hyphenation.FIG. 8Cshows an example of positions where the number of blank blocks in the macro block is more than three and the additional information is not embedded. The blank blocks shown inFIG. 8Care caused with line feed and margin of the image data.

FIG. 8Dshows an example where the above-described additional information embedding part80embeds the additional information in the position inFIG. 5B. As shown inFIG. 5D, dots are embedded as the additional information in the respective blocks except the blank block.

FIG. 9is a flowchart showing the operation flow of the above-described embedding program.

At step S100, the image data input part68receives input of image data stored on the system memory54or the image memory56, and the process proceeds to step S102.

At step S102, the layout recognition part70recognizes the layout of the image data received from step S100, and the process proceeds to step S104.

At step S104, the block size determination part72determines a block size based on the layout recognized at step S102, and the process proceeds to step S106.

At step S106, the image data dividing part74divides the image data encoded at step S100in block unit based on the layout recognized at step S102and the block size determined at step S104, and the process proceeds to step S108.

At step S108, the embedding position determination part76determines embedding positions on the image data divided in block unit at step S106, and the process proceeds to step S110.

At step S110, the additional information encoding part78performs error correction encoding on the additional information stored on the system memory54or the image memory56, and the process proceeds to step S112.

At step S112, the additional information embedding part80embeds the additional information error-correction encoded at step S110in the embedding positions determined at step S108, and the embedding program ends.

As described above, the embedding program is executed on the image forming apparatus according to the present exemplary embodiment, thereby a block size is determined based on the layout (format, line, line space and the like) of image data in which additional information is to be embedded, and the additional information is embedded by block based on error-correctable positions.

As the block size is determined based on the layout of the image data, one block often includes a character or a part of a character. For example, on image data having a layout as shown inFIG. 10where the line space is wider than a block height, in comparison with a case where a macro block having fixed sized blocks is scanned, the number of blank blocks in which the additional information is not embedded is smaller. In this manner, for example, as shown inFIG. 11, in the image data, since blocks where additional information is embedded are adjacent to each other at a high rate, a block where the additional information is embedded can be easily detected in detection of the additional information. Further, when a block where the additional information is not embedded includes noise (image roughness), the possibility of erroneous detection of the noise as the additional information can be reduced.

FIG. 12shows the configuration of a detection program operating on the image forming apparatus10. As shown inFIG. 12, the detection program has the image data input part68, the layout recognition part70, the block size determination part72, the image data dividing part74, the embedding position determination part76, an additional information detection part82, and an additional information decoding part84. The detection program having this configuration detects additional information from image data in which the additional information is embedded.

When a user scans image data in which additional information is embedded and operates the above-described UT device50so as to detect the additional information from the image data, the above-described CPU52reads the detection program from the system memory54(or the external storage medium) and executes the program. Note that it may be arranged such that the image data in which the additional information is embedded is previously stored in the system memory54.

The image data dividing part74divides the image data received from the image data input part68in block unit based on a block size determined by the block size determination part72such that each block includes a dot.

The embedding position determination part76scans a macro block on the image data divided in block unit by the image data dividing part74while moving the macro block by block, and determines a position in which a character or a part of a character is not included and the number of blocks in which the additional information is not embedded is equal to or less than a predetermined value in the macro block, as an embedding position.

The additional information detection part82detects the additional information in the embedding position determined by the embedding position determination part76as a position in which the additional information is embedded, and outputs the additional information to the additional information decoding part84.

The additional information decoding part84performs error correction decoding on the additional information detected by the additional information detection part82and outputs the additional information to an interface such as the print interface62.

FIG. 13is a flowchart showing the operation flow of the above-described detection program.

At steps S200to S204, the same processes as that at steps S100to S104in the operation flow of the above-described embedding program are performed.

At step S206, the image data received from step S200is divided in block unit such that each block includes a dot, based on the block size determined at step S204, and the process proceeds to step S208.

At step S208, a macro block is scanned on the image data divided in block unit at step S206while the macro block is moved by block, and a position, in which the number of blocks where a character or a part of a character is not included and the additional information is not embedded is equal to or less than a predetermined value in the macro block, is determined as an embedding position.

At step S210, the additional information detection part82detects the additional information in the embedding position determined at step S208, and the process proceeds to step S212.

At step S212, the additional information decoding part84error-correction decodes the additional information detected at step S212, and the detection program ends.

In the above-described exemplary embodiment, additional information is embedded in image data including character strings, and the additional information is detected. However, the present invention is not limited to this arrangement. For example, it may be arranged such that the additional information is embedded in image data including other images which are easily binarized (e.g., ruled lines) and the additional information is detected.

Further, in the above-described exemplary embodiment, the present invention is applied to the image forming apparatus10provided with the system memory54for storage of additional information, the CPU52to execute the embedding program and the detection program, and the print engine22to output processed image data. Further, the present invention can be similarly applied to a system in which these constituent elements are provided in plural apparatuses (for example, a system including an image forming apparatus having the system memory54and the CPU52and a print server having the print engine22). In such system, the apparatuses having the respective constituent elements are interconnected via a network for mutual communication.